authorgravatar for mlugg@mlugg.co.ukMatthew Lugg <mlugg@mlugg.co.uk> 2023-08-19 02:45:57+01:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-08-20 12:40:10-07:00
log3e1b676ac14efd70f0e8af95bf742bf9625b28e3
tree1fb0b1c5e22efef9a15abc887fb6d743d37ae641
parent7a85ad151daece3d0bba3c8d23081502a0956c95
signaturelock-open Commit is signed but in an unrecognized format.

stage1: update zig1

This is necessary due to the CBE fixes in the previous commit. Signed-off-by: Andrew Kelley <andrew@ziglang.org>

2 files changed, 76 insertions(+), 13 deletions(-)

stage1/zig.h+76-13
...@@ -1176,10 +1176,10 @@ typedef signed __int128 zig_i128;...@@ -1176,10 +1176,10 @@ typedef signed __int128 zig_i128;
11761176
1177#if zig_little_endian1177#if zig_little_endian
1178typedef struct { zig_align(16) uint64_t lo; uint64_t hi; } zig_u128;1178typedef struct { zig_align(16) uint64_t lo; uint64_t hi; } zig_u128;
1179typedef struct { zig_align(16) uint64_t lo; int64_t hi; } zig_i128;1179typedef struct { zig_align(16) uint64_t lo; int64_t hi; } zig_i128;
1180#else1180#else
1181typedef struct { zig_align(16) uint64_t hi; uint64_t lo; } zig_u128;1181typedef struct { zig_align(16) uint64_t hi; uint64_t lo; } zig_u128;
1182typedef struct { zig_align(16) int64_t hi; uint64_t lo; } zig_i128;1182typedef struct { zig_align(16) int64_t hi; uint64_t lo; } zig_i128;
1183#endif1183#endif
11841184
1185#define zig_make_u128(hi, lo) ((zig_u128){ .h##i = (hi), .l##o = (lo) })1185#define zig_make_u128(hi, lo) ((zig_u128){ .h##i = (hi), .l##o = (lo) })
...@@ -3197,11 +3197,9 @@ zig_convert_builtin(zig_compiler_rt_f16, zig_f16, trunc, zig_f64,...@@ -3197,11 +3197,9 @@ zig_convert_builtin(zig_compiler_rt_f16, zig_f16, trunc, zig_f64,
3197zig_convert_builtin(zig_f16, zig_f16, trunc, zig_f80, zig_f80, 2)3197zig_convert_builtin(zig_f16, zig_f16, trunc, zig_f80, zig_f80, 2)
3198zig_convert_builtin(zig_f16, zig_f16, trunc, zig_f128, zig_f128, 2)3198zig_convert_builtin(zig_f16, zig_f16, trunc, zig_f128, zig_f128, 2)
3199zig_convert_builtin(zig_f32, zig_f32, extend, zig_compiler_rt_f16, zig_f16, 2)3199zig_convert_builtin(zig_f32, zig_f32, extend, zig_compiler_rt_f16, zig_f16, 2)
3200zig_convert_builtin(zig_f32, zig_f32, trunc, zig_f64, zig_f64, 2)
3201zig_convert_builtin(zig_f32, zig_f32, trunc, zig_f80, zig_f80, 2)3200zig_convert_builtin(zig_f32, zig_f32, trunc, zig_f80, zig_f80, 2)
3202zig_convert_builtin(zig_f32, zig_f32, trunc, zig_f128, zig_f128, 2)3201zig_convert_builtin(zig_f32, zig_f32, trunc, zig_f128, zig_f128, 2)
3203zig_convert_builtin(zig_f64, zig_f64, extend, zig_compiler_rt_f16, zig_f16, 2)3202zig_convert_builtin(zig_f64, zig_f64, extend, zig_compiler_rt_f16, zig_f16, 2)
3204zig_convert_builtin(zig_f64, zig_f64, extend, zig_f32, zig_f32, 2)
3205zig_convert_builtin(zig_f64, zig_f64, trunc, zig_f80, zig_f80, 2)3203zig_convert_builtin(zig_f64, zig_f64, trunc, zig_f80, zig_f80, 2)
3206zig_convert_builtin(zig_f64, zig_f64, trunc, zig_f128, zig_f128, 2)3204zig_convert_builtin(zig_f64, zig_f64, trunc, zig_f128, zig_f128, 2)
3207zig_convert_builtin(zig_f80, zig_f80, extend, zig_f16, zig_f16, 2)3205zig_convert_builtin(zig_f80, zig_f80, extend, zig_f16, zig_f16, 2)
...@@ -3213,6 +3211,21 @@ zig_convert_builtin(zig_f128, zig_f128, extend, zig_f32,...@@ -3213,6 +3211,21 @@ zig_convert_builtin(zig_f128, zig_f128, extend, zig_f32,
3213zig_convert_builtin(zig_f128, zig_f128, extend, zig_f64, zig_f64, 2)3211zig_convert_builtin(zig_f128, zig_f128, extend, zig_f64, zig_f64, 2)
3214zig_convert_builtin(zig_f128, zig_f128, extend, zig_f80, zig_f80, 2)3212zig_convert_builtin(zig_f128, zig_f128, extend, zig_f80, zig_f80, 2)
32153213
3214#ifdef __ARM_EABI__
3215
3216zig_extern zig_callconv(pcs("aapcs")) zig_f32 __aeabi_d2f(zig_f64);
3217static inline zig_f32 zig_truncdfsf(zig_f64 arg) { return __aeabi_d2f(arg); }
3218
3219zig_extern zig_callconv(pcs("aapcs")) zig_f64 __aeabi_f2d(zig_f32);
3220static inline zig_f64 zig_extendsfdf(zig_f32 arg) { return __aeabi_f2d(arg); }
3221
3222#else /* __ARM_EABI__ */
3223
3224zig_convert_builtin(zig_f32, zig_f32, trunc, zig_f64, zig_f64, 2)
3225zig_convert_builtin(zig_f64, zig_f64, extend, zig_f32, zig_f32, 2)
3226
3227#endif /* __ARM_EABI__ */
3228
3216#define zig_float_negate_builtin_0(w, c, sb) \3229#define zig_float_negate_builtin_0(w, c, sb) \
3217 zig_expand_concat(zig_xor_, zig_repr_f##w)(arg, zig_make_f##w(-0x0.0p0, c sb))3230 zig_expand_concat(zig_xor_, zig_repr_f##w)(arg, zig_make_f##w(-0x0.0p0, c sb))
3218#define zig_float_negate_builtin_1(w, c, sb) -arg3231#define zig_float_negate_builtin_1(w, c, sb) -arg
...@@ -3255,17 +3268,11 @@ zig_float_negate_builtin(128, zig_make_u128, (UINT64_C(1) << 63, UINT64_C(0)))...@@ -3255,17 +3268,11 @@ zig_float_negate_builtin(128, zig_make_u128, (UINT64_C(1) << 63, UINT64_C(0)))
3255 return lhs operator rhs; \3268 return lhs operator rhs; \
3256 }3269 }
32573270
3258#define zig_float_builtins(w) \3271#define zig_common_float_builtins(w) \
3259 zig_convert_builtin( int32_t, int32_t, fix, zig_f##w, zig_f##w, ) \
3260 zig_convert_builtin(uint32_t, uint32_t, fixuns, zig_f##w, zig_f##w, ) \
3261 zig_convert_builtin( int64_t, int64_t, fix, zig_f##w, zig_f##w, ) \3272 zig_convert_builtin( int64_t, int64_t, fix, zig_f##w, zig_f##w, ) \
3262 zig_convert_builtin(uint64_t, uint64_t, fixuns, zig_f##w, zig_f##w, ) \
3263 zig_convert_builtin(zig_i128, zig_i128, fix, zig_f##w, zig_f##w, ) \3273 zig_convert_builtin(zig_i128, zig_i128, fix, zig_f##w, zig_f##w, ) \
3264 zig_convert_builtin(zig_u128, zig_u128, fixuns, zig_f##w, zig_f##w, ) \3274 zig_convert_builtin(zig_u128, zig_u128, fixuns, zig_f##w, zig_f##w, ) \
3265 zig_convert_builtin(zig_f##w, zig_f##w, float, int32_t, int32_t, ) \
3266 zig_convert_builtin(zig_f##w, zig_f##w, floatun, uint32_t, uint32_t, ) \
3267 zig_convert_builtin(zig_f##w, zig_f##w, float, int64_t, int64_t, ) \3275 zig_convert_builtin(zig_f##w, zig_f##w, float, int64_t, int64_t, ) \
3268 zig_convert_builtin(zig_f##w, zig_f##w, floatun, uint64_t, uint64_t, ) \
3269 zig_convert_builtin(zig_f##w, zig_f##w, float, zig_i128, zig_i128, ) \3276 zig_convert_builtin(zig_f##w, zig_f##w, float, zig_i128, zig_i128, ) \
3270 zig_convert_builtin(zig_f##w, zig_f##w, floatun, zig_u128, zig_u128, ) \3277 zig_convert_builtin(zig_f##w, zig_f##w, floatun, zig_u128, zig_u128, ) \
3271 zig_expand_concat(zig_float_less_builtin_, zig_has_f##w)(f##w, cmp) \3278 zig_expand_concat(zig_float_less_builtin_, zig_has_f##w)(f##w, cmp) \
...@@ -3309,12 +3316,68 @@ zig_float_negate_builtin(128, zig_make_u128, (UINT64_C(1) << 63, UINT64_C(0)))...@@ -3309,12 +3316,68 @@ zig_float_negate_builtin(128, zig_make_u128, (UINT64_C(1) << 63, UINT64_C(0)))
3309 static inline zig_f##w zig_mod_f##w(zig_f##w lhs, zig_f##w rhs) { \3316 static inline zig_f##w zig_mod_f##w(zig_f##w lhs, zig_f##w rhs) { \
3310 return zig_sub_f##w(lhs, zig_mul_f##w(zig_div_floor_f##w(lhs, rhs), rhs)); \3317 return zig_sub_f##w(lhs, zig_mul_f##w(zig_div_floor_f##w(lhs, rhs), rhs)); \
3311 }3318 }
3319zig_common_float_builtins(16)
3320zig_common_float_builtins(32)
3321zig_common_float_builtins(64)
3322zig_common_float_builtins(80)
3323zig_common_float_builtins(128)
3324
3325#define zig_float_builtins(w) \
3326 zig_convert_builtin( int32_t, int32_t, fix, zig_f##w, zig_f##w, ) \
3327 zig_convert_builtin(uint32_t, uint32_t, fixuns, zig_f##w, zig_f##w, ) \
3328 zig_convert_builtin(uint64_t, uint64_t, fixuns, zig_f##w, zig_f##w, ) \
3329 zig_convert_builtin(zig_f##w, zig_f##w, float, int32_t, int32_t, ) \
3330 zig_convert_builtin(zig_f##w, zig_f##w, floatun, uint32_t, uint32_t, ) \
3331 zig_convert_builtin(zig_f##w, zig_f##w, floatun, uint64_t, uint64_t, )
3312zig_float_builtins(16)3332zig_float_builtins(16)
3313zig_float_builtins(32)
3314zig_float_builtins(64)
3315zig_float_builtins(80)3333zig_float_builtins(80)
3316zig_float_builtins(128)3334zig_float_builtins(128)
33173335
3336#ifdef __ARM_EABI__
3337
3338zig_extern zig_callconv(pcs("aapcs")) int32_t __aeabi_f2iz(zig_f32);
3339static inline int32_t zig_fixsfsi(zig_f32 arg) { return __aeabi_f2iz(arg); }
3340
3341zig_extern zig_callconv(pcs("aapcs")) uint32_t __aeabi_f2uiz(zig_f32);
3342static inline uint32_t zig_fixunssfsi(zig_f32 arg) { return __aeabi_f2uiz(arg); }
3343
3344zig_extern zig_callconv(pcs("aapcs")) uint64_t __aeabi_f2ulz(zig_f32);
3345static inline uint64_t zig_fixunssfdi(zig_f32 arg) { return __aeabi_f2ulz(arg); }
3346
3347zig_extern zig_callconv(pcs("aapcs")) zig_f32 __aeabi_i2f(int32_t);
3348static inline zig_f32 zig_floatsisf(int32_t arg) { return __aeabi_i2f(arg); }
3349
3350zig_extern zig_callconv(pcs("aapcs")) zig_f32 __aeabi_ui2f(uint32_t);
3351static inline zig_f32 zig_floatunsisf(uint32_t arg) { return __aeabi_ui2f(arg); }
3352
3353zig_extern zig_callconv(pcs("aapcs")) zig_f32 __aeabi_ul2f(uint64_t);
3354static inline zig_f32 zig_floatundisf(uint64_t arg) { return __aeabi_ul2f(arg); }
3355
3356zig_extern zig_callconv(pcs("aapcs")) int32_t __aeabi_d2iz(zig_f64);
3357static inline int32_t zig_fixdfsi(zig_f64 arg) { return __aeabi_d2iz(arg); }
3358
3359zig_extern zig_callconv(pcs("aapcs")) uint32_t __aeabi_d2uiz(zig_f64);
3360static inline uint32_t zig_fixunsdfsi(zig_f64 arg) { return __aeabi_d2uiz(arg); }
3361
3362zig_extern zig_callconv(pcs("aapcs")) uint64_t __aeabi_d2ulz(zig_f64);
3363static inline uint64_t zig_fixunsdfdi(zig_f64 arg) { return __aeabi_d2ulz(arg); }
3364
3365zig_extern zig_callconv(pcs("aapcs")) zig_f64 __aeabi_i2d(int32_t);
3366static inline zig_f64 zig_floatsidf(int32_t arg) { return __aeabi_i2d(arg); }
3367
3368zig_extern zig_callconv(pcs("aapcs")) zig_f64 __aeabi_ui2d(uint32_t);
3369static inline zig_f64 zig_floatunsidf(uint32_t arg) { return __aeabi_ui2d(arg); }
3370
3371zig_extern zig_callconv(pcs("aapcs")) zig_f64 __aeabi_ul2d(uint64_t);
3372static inline zig_f64 zig_floatundidf(uint64_t arg) { return __aeabi_ul2d(arg); }
3373
3374#else /* __ARM_EABI__ */
3375
3376zig_float_builtins(32)
3377zig_float_builtins(64)
3378
3379#endif /* __ARM_EABI__ */
3380
3318/* ============================ Atomics Support ============================= */3381/* ============================ Atomics Support ============================= */
33193382
3320/* Note that atomics should be implemented as macros because most3383/* Note that atomics should be implemented as macros because most
stage1/zig1.wasm
Binary files a/stage1/zig1.wasm and b/stage1/zig1.wasm differ