| ... | @@ -1764,8 +1764,8 @@ static inline zig_i128 zig_bit_reverse_i128(zig_i128 val, zig_u8 bits) { | ... | @@ -1764,8 +1764,8 @@ static inline zig_i128 zig_bit_reverse_i128(zig_i128 val, zig_u8 bits) { |
| 1764 | #define __builtin_infl() zig_msvc_flt_infl | 1764 | #define __builtin_infl() zig_msvc_flt_infl |
| 1765 | #endif | 1765 | #endif |
| 1766 | | 1766 | |
| 1767 | | 1767 | #define zig_has_float_builtins (zig_has_builtin(nan) && zig_has_builtin(nans) && zig_has_builtin(inf)) || defined(__GNUC__) |
| 1768 | #if (zig_has_builtin(nan) && zig_has_builtin(nans) && zig_has_builtin(inf)) || defined(__GNUC__) | 1768 | #if zig_has_float_builtins |
| 1769 | #define zig_as_special_f16(sign, name, arg, repr) sign zig_as_f16(__builtin_##name, )(arg) | 1769 | #define zig_as_special_f16(sign, name, arg, repr) sign zig_as_f16(__builtin_##name, )(arg) |
| 1770 | #define zig_as_special_f32(sign, name, arg, repr) sign zig_as_f32(__builtin_##name, )(arg) | 1770 | #define zig_as_special_f32(sign, name, arg, repr) sign zig_as_f32(__builtin_##name, )(arg) |
| 1771 | #define zig_as_special_f64(sign, name, arg, repr) sign zig_as_f64(__builtin_##name, )(arg) | 1771 | #define zig_as_special_f64(sign, name, arg, repr) sign zig_as_f64(__builtin_##name, )(arg) |
| ... | @@ -1773,16 +1773,6 @@ static inline zig_i128 zig_bit_reverse_i128(zig_i128 val, zig_u8 bits) { | ... | @@ -1773,16 +1773,6 @@ static inline zig_i128 zig_bit_reverse_i128(zig_i128 val, zig_u8 bits) { |
| 1773 | #define zig_as_special_f128(sign, name, arg, repr) sign zig_as_f128(__builtin_##name, )(arg) | 1773 | #define zig_as_special_f128(sign, name, arg, repr) sign zig_as_f128(__builtin_##name, )(arg) |
| 1774 | #define zig_as_special_c_longdouble(sign, name, arg, repr) sign zig_as_c_longdouble(__builtin_##name, )(arg) | 1774 | #define zig_as_special_c_longdouble(sign, name, arg, repr) sign zig_as_c_longdouble(__builtin_##name, )(arg) |
| 1775 | #else | 1775 | #else |
| 1776 | #define zig_float_from_repr(Type, ReprType) \ | | |
| 1777 | static inline zig_##Type zig_float_from_repr_##Type(zig_##ReprType repr) { \ | | |
| 1778 | return *((zig_##Type*)&repr); \ | | |
| 1779 | } | | |
| 1780 | zig_float_from_repr(f16, u16) | | |
| 1781 | zig_float_from_repr(f32, u32) | | |
| 1782 | zig_float_from_repr(f64, u64) | | |
| 1783 | zig_float_from_repr(f80, u128) | | |
| 1784 | zig_float_from_repr(f128, u128) | | |
| 1785 | zig_float_from_repr(c_longdouble, u128) | | |
| 1786 | #define zig_as_special_f16(sign, name, arg, repr) zig_float_from_repr_f16(repr) | 1776 | #define zig_as_special_f16(sign, name, arg, repr) zig_float_from_repr_f16(repr) |
| 1787 | #define zig_as_special_f32(sign, name, arg, repr) zig_float_from_repr_f32(repr) | 1777 | #define zig_as_special_f32(sign, name, arg, repr) zig_float_from_repr_f32(repr) |
| 1788 | #define zig_as_special_f64(sign, name, arg, repr) zig_float_from_repr_f64(repr) | 1778 | #define zig_as_special_f64(sign, name, arg, repr) zig_float_from_repr_f64(repr) |
| ... | @@ -1984,6 +1974,19 @@ typedef zig_i128 zig_c_longdouble; | ... | @@ -1984,6 +1974,19 @@ typedef zig_i128 zig_c_longdouble; |
| 1984 | #define zig_as_special_constant_c_longdouble(sign, name, arg, repr) repr | 1974 | #define zig_as_special_constant_c_longdouble(sign, name, arg, repr) repr |
| 1985 | #endif | 1975 | #endif |
| 1986 | | 1976 | |
| | 1977 | #if !zig_has_float_builtins |
| | 1978 | #define zig_float_from_repr(Type, ReprType) \ |
| | 1979 | static inline zig_##Type zig_float_from_repr_##Type(zig_##ReprType repr) { \ |
| | 1980 | return *((zig_##Type*)&repr); \ |
| | 1981 | } |
| | 1982 | zig_float_from_repr(f16, u16) |
| | 1983 | zig_float_from_repr(f32, u32) |
| | 1984 | zig_float_from_repr(f64, u64) |
| | 1985 | zig_float_from_repr(f80, u128) |
| | 1986 | zig_float_from_repr(f128, u128) |
| | 1987 | zig_float_from_repr(c_longdouble, u128) |
| | 1988 | #endif |
| | 1989 | |
| 1987 | #define zig_cast_f16 (zig_f16) | 1990 | #define zig_cast_f16 (zig_f16) |
| 1988 | #define zig_cast_f32 (zig_f32) | 1991 | #define zig_cast_f32 (zig_f32) |
| 1989 | #define zig_cast_f64 (zig_f64) | 1992 | #define zig_cast_f64 (zig_f64) |