| ... | ... | @@ -1423,8 +1423,10 @@ pub const Value = extern union { |
| 1423 | 1423 | .float_16 => @rem(self.castTag(.float_16).?.data, 1) != 0, |
| 1424 | 1424 | .float_32 => @rem(self.castTag(.float_32).?.data, 1) != 0, |
| 1425 | 1425 | .float_64 => @rem(self.castTag(.float_64).?.data, 1) != 0, |
| 1426 | | .float_80 => @rem(self.castTag(.float_80).?.data, 1) != 0, |
| 1427 | | .float_128 => @rem(self.castTag(.float_128).?.data, 1) != 0, |
| 1426 | //.float_80 => @rem(self.castTag(.float_80).?.data, 1) != 0, |
| 1427 | .float_80 => @panic("TODO implement __remx in compiler-rt"), |
| 1428 | //.float_128 => @rem(self.castTag(.float_128).?.data, 1) != 0, |
| 1429 | .float_128 => @panic("TODO implement fmodl in compiler-rt"), |
| 1428 | 1430 | |
| 1429 | 1431 | else => unreachable, |
| 1430 | 1432 | }; |
| ... | ... | @@ -2819,11 +2821,17 @@ pub const Value = extern union { |
| 2819 | 2821 | return Value.Tag.float_64.create(arena, @rem(lhs_val, rhs_val)); |
| 2820 | 2822 | }, |
| 2821 | 2823 | 80 => { |
| 2824 | if (true) { |
| 2825 | @panic("TODO implement compiler_rt __remx"); |
| 2826 | } |
| 2822 | 2827 | const lhs_val = lhs.toFloat(f80); |
| 2823 | 2828 | const rhs_val = rhs.toFloat(f80); |
| 2824 | 2829 | return Value.Tag.float_80.create(arena, @rem(lhs_val, rhs_val)); |
| 2825 | 2830 | }, |
| 2826 | 2831 | 128 => { |
| 2832 | if (true) { |
| 2833 | @panic("TODO implement compiler_rt fmodl"); |
| 2834 | } |
| 2827 | 2835 | const lhs_val = lhs.toFloat(f128); |
| 2828 | 2836 | const rhs_val = rhs.toFloat(f128); |
| 2829 | 2837 | return Value.Tag.float_128.create(arena, @rem(lhs_val, rhs_val)); |
| ... | ... | @@ -2850,11 +2858,17 @@ pub const Value = extern union { |
| 2850 | 2858 | return Value.Tag.float_64.create(arena, @mod(lhs_val, rhs_val)); |
| 2851 | 2859 | }, |
| 2852 | 2860 | 80 => { |
| 2861 | if (true) { |
| 2862 | @panic("TODO implement compiler_rt __modx"); |
| 2863 | } |
| 2853 | 2864 | const lhs_val = lhs.toFloat(f80); |
| 2854 | 2865 | const rhs_val = rhs.toFloat(f80); |
| 2855 | 2866 | return Value.Tag.float_80.create(arena, @mod(lhs_val, rhs_val)); |
| 2856 | 2867 | }, |
| 2857 | 2868 | 128 => { |
| 2869 | if (true) { |
| 2870 | @panic("TODO implement compiler_rt fmodl"); |
| 2871 | } |
| 2858 | 2872 | const lhs_val = lhs.toFloat(f128); |
| 2859 | 2873 | const rhs_val = rhs.toFloat(f128); |
| 2860 | 2874 | return Value.Tag.float_128.create(arena, @mod(lhs_val, rhs_val)); |
| ... | ... | @@ -3113,6 +3127,9 @@ pub const Value = extern union { |
| 3113 | 3127 | return Value.Tag.float_64.create(arena, lhs_val / rhs_val); |
| 3114 | 3128 | }, |
| 3115 | 3129 | 80 => { |
| 3130 | if (true) { |
| 3131 | @panic("TODO implement compiler_rt __divxf3"); |
| 3132 | } |
| 3116 | 3133 | const lhs_val = lhs.toFloat(f80); |
| 3117 | 3134 | const rhs_val = rhs.toFloat(f80); |
| 3118 | 3135 | return Value.Tag.float_80.create(arena, lhs_val / rhs_val); |
| ... | ... | @@ -3150,6 +3167,9 @@ pub const Value = extern union { |
| 3150 | 3167 | return Value.Tag.float_64.create(arena, @divFloor(lhs_val, rhs_val)); |
| 3151 | 3168 | }, |
| 3152 | 3169 | 80 => { |
| 3170 | if (true) { |
| 3171 | @panic("TODO implement compiler_rt __floorx"); |
| 3172 | } |
| 3153 | 3173 | const lhs_val = lhs.toFloat(f80); |
| 3154 | 3174 | const rhs_val = rhs.toFloat(f80); |
| 3155 | 3175 | return Value.Tag.float_80.create(arena, @divFloor(lhs_val, rhs_val)); |
| ... | ... | @@ -3187,6 +3207,9 @@ pub const Value = extern union { |
| 3187 | 3207 | return Value.Tag.float_64.create(arena, @divTrunc(lhs_val, rhs_val)); |
| 3188 | 3208 | }, |
| 3189 | 3209 | 80 => { |
| 3210 | if (true) { |
| 3211 | @panic("TODO implement compiler_rt __truncx"); |
| 3212 | } |
| 3190 | 3213 | const lhs_val = lhs.toFloat(f80); |
| 3191 | 3214 | const rhs_val = rhs.toFloat(f80); |
| 3192 | 3215 | return Value.Tag.float_80.create(arena, @divTrunc(lhs_val, rhs_val)); |
| ... | ... | @@ -3224,6 +3247,9 @@ pub const Value = extern union { |
| 3224 | 3247 | return Value.Tag.float_64.create(arena, lhs_val * rhs_val); |
| 3225 | 3248 | }, |
| 3226 | 3249 | 80 => { |
| 3250 | if (true) { |
| 3251 | @panic("TODO implement compiler_rt __mulxf3"); |
| 3252 | } |
| 3227 | 3253 | const lhs_val = lhs.toFloat(f80); |
| 3228 | 3254 | const rhs_val = rhs.toFloat(f80); |
| 3229 | 3255 | return Value.Tag.float_80.create(arena, lhs_val * rhs_val); |