mirror of
https://github.com/ziglang/zig.git
synced 2025-12-06 14:23:09 +00:00
update zig1.wasm
Needed because the compiler used the now removed `@fabs` builtin and instead depends on the new `@abs` builtin.
This commit is contained in:
parent
8191199951
commit
9763573ebb
41
stage1/zig.h
41
stage1/zig.h
@ -946,6 +946,24 @@ typedef unsigned long zig_Builtin64;
|
||||
typedef unsigned long long zig_Builtin64;
|
||||
#endif
|
||||
|
||||
#define zig_builtin8_rev(name, val) __builtin_##name(val)
|
||||
|
||||
#define zig_builtin16_rev(name, val) __builtin_##name(val)
|
||||
|
||||
#if INT_MIN <= INT32_MIN
|
||||
#define zig_builtin32_rev(name, val) __builtin_##name(val)
|
||||
#elif LONG_MIN <= INT32_MIN
|
||||
#define zig_builtin32_rev(name, val) __builtin_l##name(val)
|
||||
#endif
|
||||
|
||||
#if INT_MIN <= INT64_MIN
|
||||
#define zig_builtin64_rev(name, val) __builtin_##name(val)
|
||||
#elif LONG_MIN <= INT64_MIN
|
||||
#define zig_builtin64_rev(name, val) __builtin_l##name(val)
|
||||
#elif LLONG_MIN <= INT64_MIN
|
||||
#define zig_builtin64_rev(name, val) __builtin_ll##name(val)
|
||||
#endif
|
||||
|
||||
static inline uint8_t zig_byte_swap_u8(uint8_t val, uint8_t bits) {
|
||||
return zig_wrap_u8(val >> (8 - bits), bits);
|
||||
}
|
||||
@ -1141,6 +1159,24 @@ zig_builtin_clz(16)
|
||||
zig_builtin_clz(32)
|
||||
zig_builtin_clz(64)
|
||||
|
||||
#if zig_has_builtin(abs) || defined(zig_gnuc)
|
||||
#define zig_builtin_abs(w) \
|
||||
static inline int##w##_t zig_abs_i##w(int##w##_t val) { \
|
||||
return zig_builtin##w##_rev(abs, val); \
|
||||
}
|
||||
#else
|
||||
#define zig_builtin_abs(w) \
|
||||
static inline int##w##_t zig_abs_i##w(int##w##_t val) { \
|
||||
if (val == INT##w##_MIN) return val; \
|
||||
int##w##_t tmp = val >> (w - 1); \
|
||||
return (val ^ tmp) - tmp; \
|
||||
}
|
||||
#endif
|
||||
zig_builtin_abs(8)
|
||||
zig_builtin_abs(16)
|
||||
zig_builtin_abs(32)
|
||||
zig_builtin_abs(64)
|
||||
|
||||
/* ======================== 128-bit Integer Support ========================= */
|
||||
|
||||
#if !defined(zig_has_int128)
|
||||
@ -1466,6 +1502,11 @@ static inline zig_i128 zig_mulw_i128(zig_i128 lhs, zig_i128 rhs, uint8_t bits) {
|
||||
return zig_wrap_i128(zig_bitCast_i128(zig_mul_u128(zig_bitCast_u128(lhs), zig_bitCast_u128(rhs))), bits);
|
||||
}
|
||||
|
||||
static inline zig_u128 zig_abs_i128(zig_i128 val) {
|
||||
zig_i128 tmp = zig_shr_i128(val, 127);
|
||||
return zig_bitCast_u128(zig_sub_i128(zig_xor_i128(val, tmp), tmp));
|
||||
}
|
||||
|
||||
#if zig_has_int128
|
||||
|
||||
static inline bool zig_addo_u128(zig_u128 *res, zig_u128 lhs, zig_u128 rhs, uint8_t bits) {
|
||||
|
||||
BIN
stage1/zig1.wasm
BIN
stage1/zig1.wasm
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user