| author | |
| committer | |
| log | 5fbc1c28121c1030de5ba8ca106a3dd8516cfd87 |
| tree | a5ca2b5d1e739e7c52df2609c30d6929c9317f7c |
| parent | 3247fd7862bc5277a2c931f56b41f4f7c085611c |
4 files changed, 62 insertions(+), 70 deletions(-)
lib/std/special/compiler_rt.zig+10-10| ... | @@ -226,18 +226,18 @@ comptime { | ... | @@ -226,18 +226,18 @@ comptime { |
| 226 | @export(@import("compiler_rt/divsf3.zig").__aeabi_fdiv, .{ .name = "__aeabi_fdiv", .linkage = linkage }); | 226 | @export(@import("compiler_rt/divsf3.zig").__aeabi_fdiv, .{ .name = "__aeabi_fdiv", .linkage = linkage }); |
| 227 | @export(@import("compiler_rt/divdf3.zig").__aeabi_ddiv, .{ .name = "__aeabi_ddiv", .linkage = linkage }); | 227 | @export(@import("compiler_rt/divdf3.zig").__aeabi_ddiv, .{ .name = "__aeabi_ddiv", .linkage = linkage }); |
| 228 | 228 | ||
| 229 | @export(@import("compiler_rt/arm/aeabi_fcmp.zig").__aeabi_fcmpeq, .{ .name = "__aeabi_fcmpeq", .linkage = linkage }); | 229 | @export(@import("compiler_rt/compareXf2.zig").__aeabi_fcmpeq, .{ .name = "__aeabi_fcmpeq", .linkage = linkage }); |
| 230 | @export(@import("compiler_rt/arm/aeabi_fcmp.zig").__aeabi_fcmplt, .{ .name = "__aeabi_fcmplt", .linkage = linkage }); | 230 | @export(@import("compiler_rt/compareXf2.zig").__aeabi_fcmplt, .{ .name = "__aeabi_fcmplt", .linkage = linkage }); |
| 231 | @export(@import("compiler_rt/arm/aeabi_fcmp.zig").__aeabi_fcmple, .{ .name = "__aeabi_fcmple", .linkage = linkage }); | 231 | @export(@import("compiler_rt/compareXf2.zig").__aeabi_fcmple, .{ .name = "__aeabi_fcmple", .linkage = linkage }); |
| 232 | @export(@import("compiler_rt/arm/aeabi_fcmp.zig").__aeabi_fcmpge, .{ .name = "__aeabi_fcmpge", .linkage = linkage }); | 232 | @export(@import("compiler_rt/compareXf2.zig").__aeabi_fcmpge, .{ .name = "__aeabi_fcmpge", .linkage = linkage }); |
| 233 | @export(@import("compiler_rt/arm/aeabi_fcmp.zig").__aeabi_fcmpgt, .{ .name = "__aeabi_fcmpgt", .linkage = linkage }); | 233 | @export(@import("compiler_rt/compareXf2.zig").__aeabi_fcmpgt, .{ .name = "__aeabi_fcmpgt", .linkage = linkage }); |
| 234 | @export(@import("compiler_rt/compareXf2.zig").__aeabi_fcmpun, .{ .name = "__aeabi_fcmpun", .linkage = linkage }); | 234 | @export(@import("compiler_rt/compareXf2.zig").__aeabi_fcmpun, .{ .name = "__aeabi_fcmpun", .linkage = linkage }); |
| 235 | 235 | ||
| 236 | @export(@import("compiler_rt/arm/aeabi_dcmp.zig").__aeabi_dcmpeq, .{ .name = "__aeabi_dcmpeq", .linkage = linkage }); | 236 | @export(@import("compiler_rt/compareXf2.zig").__aeabi_dcmpeq, .{ .name = "__aeabi_dcmpeq", .linkage = linkage }); |
| 237 | @export(@import("compiler_rt/arm/aeabi_dcmp.zig").__aeabi_dcmplt, .{ .name = "__aeabi_dcmplt", .linkage = linkage }); | 237 | @export(@import("compiler_rt/compareXf2.zig").__aeabi_dcmplt, .{ .name = "__aeabi_dcmplt", .linkage = linkage }); |
| 238 | @export(@import("compiler_rt/arm/aeabi_dcmp.zig").__aeabi_dcmple, .{ .name = "__aeabi_dcmple", .linkage = linkage }); | 238 | @export(@import("compiler_rt/compareXf2.zig").__aeabi_dcmple, .{ .name = "__aeabi_dcmple", .linkage = linkage }); |
| 239 | @export(@import("compiler_rt/arm/aeabi_dcmp.zig").__aeabi_dcmpge, .{ .name = "__aeabi_dcmpge", .linkage = linkage }); | 239 | @export(@import("compiler_rt/compareXf2.zig").__aeabi_dcmpge, .{ .name = "__aeabi_dcmpge", .linkage = linkage }); |
| 240 | @export(@import("compiler_rt/arm/aeabi_dcmp.zig").__aeabi_dcmpgt, .{ .name = "__aeabi_dcmpgt", .linkage = linkage }); | 240 | @export(@import("compiler_rt/compareXf2.zig").__aeabi_dcmpgt, .{ .name = "__aeabi_dcmpgt", .linkage = linkage }); |
| 241 | @export(@import("compiler_rt/compareXf2.zig").__aeabi_dcmpun, .{ .name = "__aeabi_dcmpun", .linkage = linkage }); | 241 | @export(@import("compiler_rt/compareXf2.zig").__aeabi_dcmpun, .{ .name = "__aeabi_dcmpun", .linkage = linkage }); |
| 242 | } | 242 | } |
| 243 | 243 |
lib/std/special/compiler_rt/arm/aeabi_dcmp.zig deleted-30| ... | @@ -1,30 +0,0 @@ | ||
| 1 | // Ported from: | ||
| 2 | // | ||
| 3 | // https://github.com/llvm/llvm-project/commit/d674d96bc56c0f377879d01c9d8dfdaaa7859cdb/compiler-rt/lib/builtins/arm/aeabi_dcmp.S | ||
| 4 | |||
| 5 | const comparedf2 = @import("../comparedf2.zig"); | ||
| 6 | |||
| 7 | pub fn __aeabi_dcmpeq(a: f64, b: f64) callconv(.AAPCS) i32 { | ||
| 8 | @setRuntimeSafety(false); | ||
| 9 | return @boolToInt(@call(.{ .modifier = .always_inline }, comparedf2.__eqdf2, .{ a, b }) == 0); | ||
| 10 | } | ||
| 11 | |||
| 12 | pub fn __aeabi_dcmplt(a: f64, b: f64) callconv(.AAPCS) i32 { | ||
| 13 | @setRuntimeSafety(false); | ||
| 14 | return @boolToInt(@call(.{ .modifier = .always_inline }, comparedf2.__ltdf2, .{ a, b }) < 0); | ||
| 15 | } | ||
| 16 | |||
| 17 | pub fn __aeabi_dcmple(a: f64, b: f64) callconv(.AAPCS) i32 { | ||
| 18 | @setRuntimeSafety(false); | ||
| 19 | return @boolToInt(@call(.{ .modifier = .always_inline }, comparedf2.__ledf2, .{ a, b }) <= 0); | ||
| 20 | } | ||
| 21 | |||
| 22 | pub fn __aeabi_dcmpge(a: f64, b: f64) callconv(.AAPCS) i32 { | ||
| 23 | @setRuntimeSafety(false); | ||
| 24 | return @boolToInt(@call(.{ .modifier = .always_inline }, comparedf2.__gedf2, .{ a, b }) >= 0); | ||
| 25 | } | ||
| 26 | |||
| 27 | pub fn __aeabi_dcmpgt(a: f64, b: f64) callconv(.AAPCS) i32 { | ||
| 28 | @setRuntimeSafety(false); | ||
| 29 | return @boolToInt(@call(.{ .modifier = .always_inline }, comparedf2.__gtdf2, .{ a, b }) > 0); | ||
| 30 | } | ||
lib/std/special/compiler_rt/arm/aeabi_fcmp.zig deleted-30| ... | @@ -1,30 +0,0 @@ | ||
| 1 | // Ported from: | ||
| 2 | // | ||
| 3 | // https://github.com/llvm/llvm-project/commit/d674d96bc56c0f377879d01c9d8dfdaaa7859cdb/compiler-rt/lib/builtins/arm/aeabi_fcmp.S | ||
| 4 | |||
| 5 | const comparesf2 = @import("../comparesf2.zig"); | ||
| 6 | |||
| 7 | pub fn __aeabi_fcmpeq(a: f32, b: f32) callconv(.AAPCS) i32 { | ||
| 8 | @setRuntimeSafety(false); | ||
| 9 | return @boolToInt(@call(.{ .modifier = .always_inline }, comparesf2.__eqsf2, .{ a, b }) == 0); | ||
| 10 | } | ||
| 11 | |||
| 12 | pub fn __aeabi_fcmplt(a: f32, b: f32) callconv(.AAPCS) i32 { | ||
| 13 | @setRuntimeSafety(false); | ||
| 14 | return @boolToInt(@call(.{ .modifier = .always_inline }, comparesf2.__ltsf2, .{ a, b }) < 0); | ||
| 15 | } | ||
| 16 | |||
| 17 | pub fn __aeabi_fcmple(a: f32, b: f32) callconv(.AAPCS) i32 { | ||
| 18 | @setRuntimeSafety(false); | ||
| 19 | return @boolToInt(@call(.{ .modifier = .always_inline }, comparesf2.__lesf2, .{ a, b }) <= 0); | ||
| 20 | } | ||
| 21 | |||
| 22 | pub fn __aeabi_fcmpge(a: f32, b: f32) callconv(.AAPCS) i32 { | ||
| 23 | @setRuntimeSafety(false); | ||
| 24 | return @boolToInt(@call(.{ .modifier = .always_inline }, comparesf2.__gesf2, .{ a, b }) >= 0); | ||
| 25 | } | ||
| 26 | |||
| 27 | pub fn __aeabi_fcmpgt(a: f32, b: f32) callconv(.AAPCS) i32 { | ||
| 28 | @setRuntimeSafety(false); | ||
| 29 | return @boolToInt(@call(.{ .modifier = .always_inline }, comparesf2.__gtsf2, .{ a, b }) > 0); | ||
| 30 | } | ||
lib/std/special/compiler_rt/compareXf2.zig+52| ... | @@ -183,11 +183,63 @@ pub fn __unordtf2(a: f128, b: f128) callconv(.C) i32 { | ... | @@ -183,11 +183,63 @@ pub fn __unordtf2(a: f128, b: f128) callconv(.C) i32 { |
| 183 | return @call(.{ .modifier = .always_inline }, unordcmp, .{ f128, a, b }); | 183 | return @call(.{ .modifier = .always_inline }, unordcmp, .{ f128, a, b }); |
| 184 | } | 184 | } |
| 185 | 185 | ||
| 186 | // ARM EABI intrinsics | ||
| 187 | |||
| 188 | pub fn __aeabi_fcmpeq(a: f32, b: f32) callconv(.AAPCS) i32 { | ||
| 189 | @setRuntimeSafety(false); | ||
| 190 | return @boolToInt(@call(.{ .modifier = .always_inline }, __eqsf2, .{ a, b }) == 0); | ||
| 191 | } | ||
| 192 | |||
| 193 | pub fn __aeabi_fcmplt(a: f32, b: f32) callconv(.AAPCS) i32 { | ||
| 194 | @setRuntimeSafety(false); | ||
| 195 | return @boolToInt(@call(.{ .modifier = .always_inline }, __ltsf2, .{ a, b }) < 0); | ||
| 196 | } | ||
| 197 | |||
| 198 | pub fn __aeabi_fcmple(a: f32, b: f32) callconv(.AAPCS) i32 { | ||
| 199 | @setRuntimeSafety(false); | ||
| 200 | return @boolToInt(@call(.{ .modifier = .always_inline }, __lesf2, .{ a, b }) <= 0); | ||
| 201 | } | ||
| 202 | |||
| 203 | pub fn __aeabi_fcmpge(a: f32, b: f32) callconv(.AAPCS) i32 { | ||
| 204 | @setRuntimeSafety(false); | ||
| 205 | return @boolToInt(@call(.{ .modifier = .always_inline }, __gesf2, .{ a, b }) >= 0); | ||
| 206 | } | ||
| 207 | |||
| 208 | pub fn __aeabi_fcmpgt(a: f32, b: f32) callconv(.AAPCS) i32 { | ||
| 209 | @setRuntimeSafety(false); | ||
| 210 | return @boolToInt(@call(.{ .modifier = .always_inline }, __gtsf2, .{ a, b }) > 0); | ||
| 211 | } | ||
| 212 | |||
| 186 | pub fn __aeabi_fcmpun(a: f32, b: f32) callconv(.AAPCS) i32 { | 213 | pub fn __aeabi_fcmpun(a: f32, b: f32) callconv(.AAPCS) i32 { |
| 187 | @setRuntimeSafety(false); | 214 | @setRuntimeSafety(false); |
| 188 | return @call(.{ .modifier = .always_inline }, __unordsf2, .{ a, b }); | 215 | return @call(.{ .modifier = .always_inline }, __unordsf2, .{ a, b }); |
| 189 | } | 216 | } |
| 190 | 217 | ||
| 218 | pub fn __aeabi_dcmpeq(a: f64, b: f64) callconv(.AAPCS) i32 { | ||
| 219 | @setRuntimeSafety(false); | ||
| 220 | return @boolToInt(@call(.{ .modifier = .always_inline }, __eqdf2, .{ a, b }) == 0); | ||
| 221 | } | ||
| 222 | |||
| 223 | pub fn __aeabi_dcmplt(a: f64, b: f64) callconv(.AAPCS) i32 { | ||
| 224 | @setRuntimeSafety(false); | ||
| 225 | return @boolToInt(@call(.{ .modifier = .always_inline }, __ltdf2, .{ a, b }) < 0); | ||
| 226 | } | ||
| 227 | |||
| 228 | pub fn __aeabi_dcmple(a: f64, b: f64) callconv(.AAPCS) i32 { | ||
| 229 | @setRuntimeSafety(false); | ||
| 230 | return @boolToInt(@call(.{ .modifier = .always_inline }, __ledf2, .{ a, b }) <= 0); | ||
| 231 | } | ||
| 232 | |||
| 233 | pub fn __aeabi_dcmpge(a: f64, b: f64) callconv(.AAPCS) i32 { | ||
| 234 | @setRuntimeSafety(false); | ||
| 235 | return @boolToInt(@call(.{ .modifier = .always_inline }, __gedf2, .{ a, b }) >= 0); | ||
| 236 | } | ||
| 237 | |||
| 238 | pub fn __aeabi_dcmpgt(a: f64, b: f64) callconv(.AAPCS) i32 { | ||
| 239 | @setRuntimeSafety(false); | ||
| 240 | return @boolToInt(@call(.{ .modifier = .always_inline }, __gtdf2, .{ a, b }) > 0); | ||
| 241 | } | ||
| 242 | |||
| 191 | pub fn __aeabi_dcmpun(a: f64, b: f64) callconv(.AAPCS) i32 { | 243 | pub fn __aeabi_dcmpun(a: f64, b: f64) callconv(.AAPCS) i32 { |
| 192 | @setRuntimeSafety(false); | 244 | @setRuntimeSafety(false); |
| 193 | return @call(.{ .modifier = .always_inline }, __unorddf2, .{ a, b }); | 245 | return @call(.{ .modifier = .always_inline }, __unorddf2, .{ a, b }); |