authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2025-05-30 13:02:29-04:00
committergravatar for mlugg@mlugg.co.ukMatthew Lugg <mlugg@mlugg.co.uk> 2025-06-01 12:10:57+01:00
logcc047fdd959edb260f7a6e305ccad53f185ece66
tree0b5906ecac05c60a1a7e5731c1922d079d1b1df9
parent493e37fa50e59b6fb8db086ea8b2f896d455314f
signaturelock-open Commit is signed but in an unrecognized format.

stage1: update zig1.wasm

Compiler needs cbe reserved identifier change. This also allows us to delete the old `@intCast` panic handler declarations from the standard library.

2 files changed, 21 insertions(+), 11 deletions(-)

stage1/zig.h+21-11
...@@ -481,6 +481,7 @@...@@ -481,6 +481,7 @@
481481
482zig_extern void *memcpy (void *zig_restrict, void const *zig_restrict, size_t);482zig_extern void *memcpy (void *zig_restrict, void const *zig_restrict, size_t);
483zig_extern void *memset (void *, int, size_t);483zig_extern void *memset (void *, int, size_t);
484zig_extern void *memmove (void *, void const *, size_t);
484485
485/* ================ Bool and 8/16/32/64-bit Integer Support ================= */486/* ================ Bool and 8/16/32/64-bit Integer Support ================= */
486487
...@@ -1114,14 +1115,15 @@ static inline bool zig_mulo_i16(int16_t *res, int16_t lhs, int16_t rhs, uint8_t...@@ -1114,14 +1115,15 @@ static inline bool zig_mulo_i16(int16_t *res, int16_t lhs, int16_t rhs, uint8_t
1114\1115\
1115 static inline uint##w##_t zig_shls_u##w(uint##w##_t lhs, uint##w##_t rhs, uint8_t bits) { \1116 static inline uint##w##_t zig_shls_u##w(uint##w##_t lhs, uint##w##_t rhs, uint8_t bits) { \
1116 uint##w##_t res; \1117 uint##w##_t res; \
1117 if (rhs >= bits) return lhs != UINT##w##_C(0) ? zig_maxInt_u(w, bits) : lhs; \1118 if (rhs < bits && !zig_shlo_u##w(&res, lhs, rhs, bits)) return res; \
1118 return zig_shlo_u##w(&res, lhs, (uint8_t)rhs, bits) ? zig_maxInt_u(w, bits) : res; \1119 return lhs == INT##w##_C(0) ? INT##w##_C(0) : zig_maxInt_u(w, bits); \
1119 } \1120 } \
1120\1121\
1121 static inline int##w##_t zig_shls_i##w(int##w##_t lhs, int##w##_t rhs, uint8_t bits) { \1122 static inline int##w##_t zig_shls_i##w(int##w##_t lhs, uint##w##_t rhs, uint8_t bits) { \
1122 int##w##_t res; \1123 int##w##_t res; \
1123 if ((uint##w##_t)rhs < (uint##w##_t)bits && !zig_shlo_i##w(&res, lhs, (uint8_t)rhs, bits)) return res; \1124 if (rhs < bits && !zig_shlo_i##w(&res, lhs, rhs, bits)) return res; \
1124 return lhs < INT##w##_C(0) ? zig_minInt_i(w, bits) : zig_maxInt_i(w, bits); \1125 return lhs == INT##w##_C(0) ? INT##w##_C(0) : \
1126 lhs < INT##w##_C(0) ? zig_minInt_i(w, bits) : zig_maxInt_i(w, bits); \
1125 } \1127 } \
1126\1128\
1127 static inline uint##w##_t zig_adds_u##w(uint##w##_t lhs, uint##w##_t rhs, uint8_t bits) { \1129 static inline uint##w##_t zig_adds_u##w(uint##w##_t lhs, uint##w##_t rhs, uint8_t bits) { \
...@@ -1850,15 +1852,23 @@ static inline bool zig_shlo_i128(zig_i128 *res, zig_i128 lhs, uint8_t rhs, uint8...@@ -1850,15 +1852,23 @@ static inline bool zig_shlo_i128(zig_i128 *res, zig_i128 lhs, uint8_t rhs, uint8
18501852
1851static inline zig_u128 zig_shls_u128(zig_u128 lhs, zig_u128 rhs, uint8_t bits) {1853static inline zig_u128 zig_shls_u128(zig_u128 lhs, zig_u128 rhs, uint8_t bits) {
1852 zig_u128 res;1854 zig_u128 res;
1853 if (zig_cmp_u128(rhs, zig_make_u128(0, bits)) >= INT32_C(0))1855 if (zig_cmp_u128(rhs, zig_make_u128(0, bits)) < INT32_C(0) && !zig_shlo_u128(&res, lhs, (uint8_t)zig_lo_u128(rhs), bits)) return res;
1854 return zig_cmp_u128(lhs, zig_make_u128(0, 0)) != INT32_C(0) ? zig_maxInt_u(128, bits) : lhs;1856 switch (zig_cmp_u128(lhs, zig_make_u128(0, 0))) {
1855 return zig_shlo_u128(&res, lhs, (uint8_t)zig_lo_u128(rhs), bits) ? zig_maxInt_u(128, bits) : res;1857 case 0: return zig_make_u128(0, 0);
1858 case 1: return zig_maxInt_u(128, bits);
1859 default: zig_unreachable();
1860 }
1856}1861}
18571862
1858static inline zig_i128 zig_shls_i128(zig_i128 lhs, zig_i128 rhs, uint8_t bits) {1863static inline zig_i128 zig_shls_i128(zig_i128 lhs, zig_u128 rhs, uint8_t bits) {
1859 zig_i128 res;1864 zig_i128 res;
1860 if (zig_cmp_u128(zig_bitCast_u128(rhs), zig_make_u128(0, bits)) < INT32_C(0) && !zig_shlo_i128(&res, lhs, (uint8_t)zig_lo_i128(rhs), bits)) return res;1865 if (zig_cmp_u128(rhs, zig_make_u128(0, bits)) < INT32_C(0) && !zig_shlo_i128(&res, lhs, (uint8_t)zig_lo_u128(rhs), bits)) return res;
1861 return zig_cmp_i128(lhs, zig_make_i128(0, 0)) < INT32_C(0) ? zig_minInt_i(128, bits) : zig_maxInt_i(128, bits);1866 switch (zig_cmp_i128(lhs, zig_make_i128(0, 0))) {
1867 case -1: return zig_minInt_i(128, bits);
1868 case 0: return zig_make_i128(0, 0);
1869 case 1: return zig_maxInt_i(128, bits);
1870 default: zig_unreachable();
1871 }
1862}1872}
18631873
1864static inline zig_u128 zig_adds_u128(zig_u128 lhs, zig_u128 rhs, uint8_t bits) {1874static inline zig_u128 zig_adds_u128(zig_u128 lhs, zig_u128 rhs, uint8_t bits) {
stage1/zig1.wasm
Binary files a/stage1/zig1.wasm and b/stage1/zig1.wasm differ