| ... | @@ -559,15 +559,6 @@ typedef ptrdiff_t intptr_t; | ... | @@ -559,15 +559,6 @@ typedef ptrdiff_t intptr_t; |
| 559 | | 559 | |
| 560 | #endif | 560 | #endif |
| 561 | | 561 | |
| 562 | #define zig_make_small_i8(val) INT8_C(val) | | |
| 563 | #define zig_make_small_u8(val) UINT8_C(val) | | |
| 564 | #define zig_make_small_i16(val) INT16_C(val) | | |
| 565 | #define zig_make_small_u16(val) UINT16_C(val) | | |
| 566 | #define zig_make_small_i32(val) INT32_C(val) | | |
| 567 | #define zig_make_small_u32(val) UINT32_C(val) | | |
| 568 | #define zig_make_small_i64(val) INT64_C(val) | | |
| 569 | #define zig_make_small_u64(val) UINT64_C(val) | | |
| 570 | | | |
| 571 | #define zig_minInt_i8 INT8_MIN | 562 | #define zig_minInt_i8 INT8_MIN |
| 572 | #define zig_maxInt_i8 INT8_MAX | 563 | #define zig_maxInt_i8 INT8_MAX |
| 573 | #define zig_minInt_u8 UINT8_C(0) | 564 | #define zig_minInt_u8 UINT8_C(0) |
| ... | @@ -1360,9 +1351,6 @@ typedef struct { zig_align(16) int64_t hi; uint64_t lo; } zig_i128; | ... | @@ -1360,9 +1351,6 @@ typedef struct { zig_align(16) int64_t hi; uint64_t lo; } zig_i128; |
| 1360 | | 1351 | |
| 1361 | #endif /* zig_has_int128 */ | 1352 | #endif /* zig_has_int128 */ |
| 1362 | | 1353 | |
| 1363 | #define zig_make_small_u128(val) zig_make_u128(0, val) | | |
| 1364 | #define zig_make_small_i128(val) zig_make_i128((val) < 0 ? -INT64_C(1) : INT64_C(0), val) | | |
| 1365 | | | |
| 1366 | #define zig_minInt_u128 zig_make_u128(zig_minInt_u64, zig_minInt_u64) | 1354 | #define zig_minInt_u128 zig_make_u128(zig_minInt_u64, zig_minInt_u64) |
| 1367 | #define zig_maxInt_u128 zig_make_u128(zig_maxInt_u64, zig_maxInt_u64) | 1355 | #define zig_maxInt_u128 zig_make_u128(zig_maxInt_u64, zig_maxInt_u64) |
| 1368 | #define zig_minInt_i128 zig_make_i128(zig_minInt_i64, zig_minInt_u64) | 1356 | #define zig_minInt_i128 zig_make_i128(zig_minInt_i64, zig_minInt_u64) |
| ... | @@ -3148,10 +3136,6 @@ typedef float zig_f16; | ... | @@ -3148,10 +3136,6 @@ typedef float zig_f16; |
| 3148 | typedef double zig_f16; | 3136 | typedef double zig_f16; |
| 3149 | #define zig_make_f16(fp, repr) fp | 3137 | #define zig_make_f16(fp, repr) fp |
| 3150 | #elif LDBL_MANT_DIG == 11 | 3138 | #elif LDBL_MANT_DIG == 11 |
| 3151 | #define zig_bitSizeOf_c_longdouble 16 | | |
| 3152 | #ifndef ZIG_TARGET_ABI_MSVC | | |
| 3153 | typedef zig_repr_f16 zig_repr_c_longdouble; | | |
| 3154 | #endif | | |
| 3155 | typedef long double zig_f16; | 3139 | typedef long double zig_f16; |
| 3156 | #define zig_make_f16(fp, repr) fp##l | 3140 | #define zig_make_f16(fp, repr) fp##l |
| 3157 | #elif FLT16_MANT_DIG == 11 && (zig_has_builtin(inff16) || defined(zig_gnuc)) | 3141 | #elif FLT16_MANT_DIG == 11 && (zig_has_builtin(inff16) || defined(zig_gnuc)) |
| ... | @@ -3163,7 +3147,6 @@ typedef __fp16 zig_f16; | ... | @@ -3163,7 +3147,6 @@ typedef __fp16 zig_f16; |
| 3163 | #else | 3147 | #else |
| 3164 | #undef zig_has_f16 | 3148 | #undef zig_has_f16 |
| 3165 | #define zig_has_f16 0 | 3149 | #define zig_has_f16 0 |
| 3166 | #define zig_bitSizeOf_repr_f16 16 | | |
| 3167 | typedef zig_repr_f16 zig_f16; | 3150 | typedef zig_repr_f16 zig_f16; |
| 3168 | #define zig_make_f16(fp, repr) repr | 3151 | #define zig_make_f16(fp, repr) repr |
| 3169 | #undef zig_make_special_f16 | 3152 | #undef zig_make_special_f16 |
| ... | @@ -3176,7 +3159,6 @@ typedef zig_repr_f16 zig_compiler_rt_f16; | ... | @@ -3176,7 +3159,6 @@ typedef zig_repr_f16 zig_compiler_rt_f16; |
| 3176 | #else | 3159 | #else |
| 3177 | typedef zig_f16 zig_compiler_rt_f16; | 3160 | typedef zig_f16 zig_compiler_rt_f16; |
| 3178 | #endif | 3161 | #endif |
| 3179 | #define zig_compiler_rt_abbrev_zig_compiler_rt_f16 zig_compiler_rt_abbrev_zig_f16 | | |
| 3180 | | 3162 | |
| 3181 | #define zig_has_f32 1 | 3163 | #define zig_has_f32 1 |
| 3182 | #define zig_bitSizeOf_f32 32 | 3164 | #define zig_bitSizeOf_f32 32 |
| ... | @@ -3194,10 +3176,6 @@ typedef float zig_f32; | ... | @@ -3194,10 +3176,6 @@ typedef float zig_f32; |
| 3194 | typedef double zig_f32; | 3176 | typedef double zig_f32; |
| 3195 | #define zig_make_f32(fp, repr) fp | 3177 | #define zig_make_f32(fp, repr) fp |
| 3196 | #elif LDBL_MANT_DIG == 24 | 3178 | #elif LDBL_MANT_DIG == 24 |
| 3197 | #define zig_bitSizeOf_c_longdouble 32 | | |
| 3198 | #ifndef ZIG_TARGET_ABI_MSVC | | |
| 3199 | typedef zig_repr_f32 zig_repr_c_longdouble; | | |
| 3200 | #endif | | |
| 3201 | typedef long double zig_f32; | 3179 | typedef long double zig_f32; |
| 3202 | #define zig_make_f32(fp, repr) fp##l | 3180 | #define zig_make_f32(fp, repr) fp##l |
| 3203 | #elif FLT32_MANT_DIG == 24 | 3181 | #elif FLT32_MANT_DIG == 24 |
| ... | @@ -3206,7 +3184,6 @@ typedef _Float32 zig_f32; | ... | @@ -3206,7 +3184,6 @@ typedef _Float32 zig_f32; |
| 3206 | #else | 3184 | #else |
| 3207 | #undef zig_has_f32 | 3185 | #undef zig_has_f32 |
| 3208 | #define zig_has_f32 0 | 3186 | #define zig_has_f32 0 |
| 3209 | #define zig_bitSizeOf_repr_f32 32 | | |
| 3210 | typedef zig_repr_f32 zig_f32; | 3187 | typedef zig_repr_f32 zig_f32; |
| 3211 | #define zig_make_f32(fp, repr) repr | 3188 | #define zig_make_f32(fp, repr) repr |
| 3212 | #undef zig_make_special_f32 | 3189 | #undef zig_make_special_f32 |
| ... | @@ -3220,16 +3197,10 @@ typedef zig_repr_f32 zig_f32; | ... | @@ -3220,16 +3197,10 @@ typedef zig_repr_f32 zig_f32; |
| 3220 | typedef uint64_t zig_repr_f64; | 3197 | typedef uint64_t zig_repr_f64; |
| 3221 | #define zig_libc_name_f64(name) name | 3198 | #define zig_libc_name_f64(name) name |
| 3222 | #if _MSC_VER | 3199 | #if _MSC_VER |
| 3223 | #ifdef ZIG_TARGET_ABI_MSVC | | |
| 3224 | #define zig_bitSizeOf_c_longdouble 64 | | |
| 3225 | #ifndef ZIG_TARGET_ABI_MSVC | | |
| 3226 | typedef zig_repr_f64 zig_repr_c_longdouble; | | |
| 3227 | #endif | | |
| 3228 | #endif | | |
| 3229 | #define zig_init_special_f64(sign, name, arg, repr) sign zig_make_f64(zig_msvc_flt_##name, ) | 3200 | #define zig_init_special_f64(sign, name, arg, repr) sign zig_make_f64(zig_msvc_flt_##name, ) |
| 3230 | #else /* _MSC_VER */ | 3201 | #else |
| 3231 | #define zig_init_special_f64(sign, name, arg, repr) zig_make_special_f64(sign, name, arg, repr) | 3202 | #define zig_init_special_f64(sign, name, arg, repr) zig_make_special_f64(sign, name, arg, repr) |
| 3232 | #endif /* _MSC_VER */ | 3203 | #endif |
| 3233 | #if FLT_MANT_DIG == 53 | 3204 | #if FLT_MANT_DIG == 53 |
| 3234 | typedef float zig_f64; | 3205 | typedef float zig_f64; |
| 3235 | #define zig_make_f64(fp, repr) fp##f | 3206 | #define zig_make_f64(fp, repr) fp##f |
| ... | @@ -3237,10 +3208,6 @@ typedef float zig_f64; | ... | @@ -3237,10 +3208,6 @@ typedef float zig_f64; |
| 3237 | typedef double zig_f64; | 3208 | typedef double zig_f64; |
| 3238 | #define zig_make_f64(fp, repr) fp | 3209 | #define zig_make_f64(fp, repr) fp |
| 3239 | #elif LDBL_MANT_DIG == 53 | 3210 | #elif LDBL_MANT_DIG == 53 |
| 3240 | #define zig_bitSizeOf_c_longdouble 64 | | |
| 3241 | #ifndef ZIG_TARGET_ABI_MSVC | | |
| 3242 | typedef zig_repr_f64 zig_repr_c_longdouble; | | |
| 3243 | #endif | | |
| 3244 | typedef long double zig_f64; | 3211 | typedef long double zig_f64; |
| 3245 | #define zig_make_f64(fp, repr) fp##l | 3212 | #define zig_make_f64(fp, repr) fp##l |
| 3246 | #elif FLT64_MANT_DIG == 53 | 3213 | #elif FLT64_MANT_DIG == 53 |
| ... | @@ -3252,7 +3219,6 @@ typedef _Float32x zig_f64; | ... | @@ -3252,7 +3219,6 @@ typedef _Float32x zig_f64; |
| 3252 | #else | 3219 | #else |
| 3253 | #undef zig_has_f64 | 3220 | #undef zig_has_f64 |
| 3254 | #define zig_has_f64 0 | 3221 | #define zig_has_f64 0 |
| 3255 | #define zig_bitSizeOf_repr_f64 64 | | |
| 3256 | typedef zig_repr_f64 zig_f64; | 3222 | typedef zig_repr_f64 zig_f64; |
| 3257 | #define zig_make_f64(fp, repr) repr | 3223 | #define zig_make_f64(fp, repr) repr |
| 3258 | #undef zig_make_special_f64 | 3224 | #undef zig_make_special_f64 |
| ... | @@ -3273,10 +3239,6 @@ typedef float zig_f80; | ... | @@ -3273,10 +3239,6 @@ typedef float zig_f80; |
| 3273 | typedef double zig_f80; | 3239 | typedef double zig_f80; |
| 3274 | #define zig_make_f80(fp, repr) fp | 3240 | #define zig_make_f80(fp, repr) fp |
| 3275 | #elif LDBL_MANT_DIG == 64 | 3241 | #elif LDBL_MANT_DIG == 64 |
| 3276 | #define zig_bitSizeOf_c_longdouble 80 | | |
| 3277 | #ifndef ZIG_TARGET_ABI_MSVC | | |
| 3278 | typedef zig_repr_f80 zig_repr_c_longdouble; | | |
| 3279 | #endif | | |
| 3280 | typedef long double zig_f80; | 3242 | typedef long double zig_f80; |
| 3281 | #define zig_make_f80(fp, repr) fp##l | 3243 | #define zig_make_f80(fp, repr) fp##l |
| 3282 | #elif FLT80_MANT_DIG == 64 | 3244 | #elif FLT80_MANT_DIG == 64 |
| ... | @@ -3291,7 +3253,6 @@ typedef __float80 zig_f80; | ... | @@ -3291,7 +3253,6 @@ typedef __float80 zig_f80; |
| 3291 | #else | 3253 | #else |
| 3292 | #undef zig_has_f80 | 3254 | #undef zig_has_f80 |
| 3293 | #define zig_has_f80 0 | 3255 | #define zig_has_f80 0 |
| 3294 | #define zig_bitSizeOf_repr_f80 128 | | |
| 3295 | typedef zig_repr_f80 zig_f80; | 3256 | typedef zig_repr_f80 zig_f80; |
| 3296 | #define zig_make_f80(fp, repr) repr | 3257 | #define zig_make_f80(fp, repr) repr |
| 3297 | #undef zig_make_special_f80 | 3258 | #undef zig_make_special_f80 |
| ... | @@ -3312,10 +3273,6 @@ typedef float zig_f128; | ... | @@ -3312,10 +3273,6 @@ typedef float zig_f128; |
| 3312 | typedef double zig_f128; | 3273 | typedef double zig_f128; |
| 3313 | #define zig_make_f128(fp, repr) fp | 3274 | #define zig_make_f128(fp, repr) fp |
| 3314 | #elif LDBL_MANT_DIG == 113 | 3275 | #elif LDBL_MANT_DIG == 113 |
| 3315 | #define zig_bitSizeOf_c_longdouble 128 | | |
| 3316 | #ifndef ZIG_TARGET_ABI_MSVC | | |
| 3317 | typedef zig_repr_f128 zig_repr_c_longdouble; | | |
| 3318 | #endif | | |
| 3319 | typedef long double zig_f128; | 3276 | typedef long double zig_f128; |
| 3320 | #define zig_make_f128(fp, repr) fp##l | 3277 | #define zig_make_f128(fp, repr) fp##l |
| 3321 | #elif FLT128_MANT_DIG == 113 | 3278 | #elif FLT128_MANT_DIG == 113 |
| ... | @@ -3332,36 +3289,48 @@ typedef __float128 zig_f128; | ... | @@ -3332,36 +3289,48 @@ typedef __float128 zig_f128; |
| 3332 | #else | 3289 | #else |
| 3333 | #undef zig_has_f128 | 3290 | #undef zig_has_f128 |
| 3334 | #define zig_has_f128 0 | 3291 | #define zig_has_f128 0 |
| 3335 | #define zig_bitSizeOf_repr_f128 128 | 3292 | #undef zig_make_special_f128 |
| | 3293 | #undef zig_init_special_f128 |
| | 3294 | #if __APPLE__ || defined(__aarch64__) |
| | 3295 | typedef __attribute__((__vector_size__(16))) uint64_t zig_f128; |
| | 3296 | #define zig_make_f128_zig_make_u128(hi, lo) (zig_f128){ lo, hi } |
| | 3297 | #define zig_make_f128_zig_init_u128 zig_make_f128_zig_make_u128 |
| | 3298 | #define zig_make_f128(fp, repr) zig_make_f128_##repr |
| | 3299 | #define zig_make_special_f128(sign, name, arg, repr) zig_make_f128_##repr |
| | 3300 | #define zig_init_special_f128(sign, name, arg, repr) zig_make_f128_##repr |
| | 3301 | #else |
| 3336 | typedef zig_repr_f128 zig_f128; | 3302 | typedef zig_repr_f128 zig_f128; |
| 3337 | #define zig_make_f128(fp, repr) repr | 3303 | #define zig_make_f128(fp, repr) repr |
| 3338 | #undef zig_make_special_f128 | | |
| 3339 | #define zig_make_special_f128(sign, name, arg, repr) repr | 3304 | #define zig_make_special_f128(sign, name, arg, repr) repr |
| 3340 | #undef zig_init_special_f128 | | |
| 3341 | #define zig_init_special_f128(sign, name, arg, repr) repr | 3305 | #define zig_init_special_f128(sign, name, arg, repr) repr |
| 3342 | #endif | 3306 | #endif |
| | 3307 | #endif |
| 3343 | | 3308 | |
| 3344 | #ifdef zig_bitSizeOf_c_longdouble | 3309 | #if _MSC_VER && !defined(ZIG_TARGET_ABI_MSVC) |
| 3345 | | 3310 | // Use gnu abi with the msvc compiler |
| 3346 | #define zig_has_c_longdouble 1 | 3311 | #define zig_bitSizeOf_c_longdouble 128 |
| 3347 | #ifdef ZIG_TARGET_ABI_MSVC | 3312 | typedef zig_repr_f128 zig_repr_c_longdouble; |
| 3348 | #undef zig_bitSizeOf_c_longdouble | 3313 | typedef zig_f128 zig_c_longdouble; |
| | 3314 | #else |
| | 3315 | #if LDBL_MANT_DIG == 11 |
| | 3316 | #define zig_bitSizeOf_c_longdouble 16 |
| | 3317 | typedef zig_repr_f16 zig_repr_c_longdouble; |
| | 3318 | #elif LDBL_MANT_DIG == 24 |
| | 3319 | #define zig_bitSizeOf_c_longdouble 32 |
| | 3320 | typedef zig_repr_f32 zig_repr_c_longdouble; |
| | 3321 | #elif LDBL_MANT_DIG == 53 |
| 3349 | #define zig_bitSizeOf_c_longdouble 64 | 3322 | #define zig_bitSizeOf_c_longdouble 64 |
| 3350 | typedef zig_f64 zig_c_longdouble; | | |
| 3351 | typedef zig_repr_f64 zig_repr_c_longdouble; | 3323 | typedef zig_repr_f64 zig_repr_c_longdouble; |
| 3352 | #else | 3324 | #elif LDBL_MANT_DIG == 64 |
| | 3325 | #define zig_bitSizeOf_c_longdouble 80 |
| | 3326 | typedef zig_repr_f80 zig_repr_c_longdouble; |
| | 3327 | #elif LDBL_MANT_DIG == 113 |
| | 3328 | #define zig_bitSizeOf_c_longdouble 128 |
| | 3329 | typedef zig_repr_f128 zig_repr_c_longdouble; |
| | 3330 | #endif |
| 3353 | typedef long double zig_c_longdouble; | 3331 | typedef long double zig_c_longdouble; |
| 3354 | #endif | 3332 | #endif |
| 3355 | | 3333 | |
| 3356 | #else /* zig_bitSizeOf_c_longdouble */ | | |
| 3357 | | | |
| 3358 | #define zig_has_c_longdouble 0 | | |
| 3359 | #define zig_bitSizeOf_repr_c_longdouble 128 | | |
| 3360 | typedef zig_f128 zig_c_longdouble; | | |
| 3361 | typedef zig_repr_f128 zig_repr_c_longdouble; | | |
| 3362 | | | |
| 3363 | #endif /* zig_bitSizeOf_c_longdouble */ | | |
| 3364 | | | |
| 3365 | #if !zig_has_float_builtins | 3334 | #if !zig_has_float_builtins |
| 3366 | #define zig_float_from_repr(Type) \ | 3335 | #define zig_float_from_repr(Type) \ |
| 3367 | static inline zig_##Type zig_float_from_repr_##Type(zig_repr_##Type repr) { \ | 3336 | static inline zig_##Type zig_float_from_repr_##Type(zig_repr_##Type repr) { \ |
| ... | @@ -3413,20 +3382,17 @@ zig_convert_builtin(zig_f128, extend, zig_f32, 2) | ... | @@ -3413,20 +3382,17 @@ zig_convert_builtin(zig_f128, extend, zig_f32, 2) |
| 3413 | zig_convert_builtin(zig_f128, extend, zig_f64, 2) | 3382 | zig_convert_builtin(zig_f128, extend, zig_f64, 2) |
| 3414 | zig_convert_builtin(zig_f128, extend, zig_f80, 2) | 3383 | zig_convert_builtin(zig_f128, extend, zig_f80, 2) |
| 3415 | | 3384 | |
| 3416 | #define zig_float_negate_builtin_0(w) \ | 3385 | #define zig_float_negate_builtin_0(w, r, c, sb) zig_xor_u##r(arg, zig_make_f##w(-0x0.0p0, c sb)) |
| 3417 | static inline zig_f##w zig_neg_f##w(zig_f##w arg) { \ | 3386 | #define zig_float_negate_builtin_1(w, r, c, sb) -arg |
| 3418 | return zig_expand_concat(zig_xor_u, zig_bitSizeOf_repr_f##w)( \ | 3387 | #define zig_float_negate_builtin(w, r, c, sb) \ |
| 3419 | arg, \ | | |
| 3420 | zig_expand_concat(zig_shl_u, zig_bitSizeOf_repr_f##w)( \ | | |
| 3421 | zig_expand_concat(zig_make_small_u, zig_bitSizeOf_repr_f##w)(1), \ | | |
| 3422 | UINT8_C(w - 1) \ | | |
| 3423 | ) \ | | |
| 3424 | ); \ | | |
| 3425 | } | | |
| 3426 | #define zig_float_negate_builtin_1(w) \ | | |
| 3427 | static inline zig_f##w zig_neg_f##w(zig_f##w arg) { \ | 3388 | static inline zig_f##w zig_neg_f##w(zig_f##w arg) { \ |
| 3428 | return -arg; \ | 3389 | return zig_expand_concat(zig_float_negate_builtin_, zig_has_f##w)(w, r, c, sb); \ |
| 3429 | } | 3390 | } |
| | 3391 | zig_float_negate_builtin(16, 16, , UINT16_C(1) << 15 ) |
| | 3392 | zig_float_negate_builtin(32, 32, , UINT32_C(1) << 31 ) |
| | 3393 | zig_float_negate_builtin(64, 64, , UINT64_C(1) << 63 ) |
| | 3394 | zig_float_negate_builtin(80, 128, zig_make_u128, (UINT64_C(1) << 15, UINT64_C(0))) |
| | 3395 | zig_float_negate_builtin(128, 128, zig_make_u128, (UINT64_C(1) << 63, UINT64_C(0))) |
| 3430 | | 3396 | |
| 3431 | #define zig_float_less_builtin_0(Type, operation) \ | 3397 | #define zig_float_less_builtin_0(Type, operation) \ |
| 3432 | zig_extern int32_t zig_expand_concat(zig_expand_concat(__##operation, \ | 3398 | zig_extern int32_t zig_expand_concat(zig_expand_concat(__##operation, \ |