authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-09-22 15:28:57+02:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-09-23 21:20:00-07:00
logd3ba5f397d3270047bcf05c7ed21c5bd6b97e75b
tree9d451e1e2e202c5a0e0960523c1545e565958611
parent5daf47a212e0651bb1159cc8e5afab83cc241b09

compiler-rt: Export extra soft float libcall names for thumb-windows-gnu.


9 files changed, 42 insertions(+), 0 deletions(-)

lib/compiler_rt/common.zig+2
...@@ -28,6 +28,8 @@ pub const want_aeabi = switch (builtin.abi) {...@@ -28,6 +28,8 @@ pub const want_aeabi = switch (builtin.abi) {
28 },28 },
29 else => false,29 else => false,
30};30};
31pub const want_mingw_arm_abi = builtin.cpu.arch.isArmOrThumb() and builtin.target.isMinGW();
32
31pub const want_ppc_abi = builtin.cpu.arch.isPowerPC();33pub const want_ppc_abi = builtin.cpu.arch.isPowerPC();
3234
33pub const want_float_exceptions = !builtin.cpu.arch.isWasm();35pub const want_float_exceptions = !builtin.cpu.arch.isWasm();
lib/compiler_rt/fixdfdi.zig+5
...@@ -1,3 +1,4 @@...@@ -1,3 +1,4 @@
1const builtin = @import("builtin");
1const common = @import("./common.zig");2const common = @import("./common.zig");
2const intFromFloat = @import("./int_from_float.zig").intFromFloat;3const intFromFloat = @import("./int_from_float.zig").intFromFloat;
34
...@@ -8,6 +9,10 @@ comptime {...@@ -8,6 +9,10 @@ comptime {
8 @export(&__aeabi_d2lz, .{ .name = "__aeabi_d2lz", .linkage = common.linkage, .visibility = common.visibility });9 @export(&__aeabi_d2lz, .{ .name = "__aeabi_d2lz", .linkage = common.linkage, .visibility = common.visibility });
9 } else {10 } else {
10 @export(&__fixdfdi, .{ .name = "__fixdfdi", .linkage = common.linkage, .visibility = common.visibility });11 @export(&__fixdfdi, .{ .name = "__fixdfdi", .linkage = common.linkage, .visibility = common.visibility });
12
13 if (common.want_mingw_arm_abi) {
14 @export(&__fixdfdi, .{ .name = "__dtoi64", .linkage = common.linkage, .visibility = common.visibility });
15 }
11 }16 }
12}17}
1318
lib/compiler_rt/fixsfdi.zig+5
...@@ -1,3 +1,4 @@...@@ -1,3 +1,4 @@
1const builtin = @import("builtin");
1const common = @import("./common.zig");2const common = @import("./common.zig");
2const intFromFloat = @import("./int_from_float.zig").intFromFloat;3const intFromFloat = @import("./int_from_float.zig").intFromFloat;
34
...@@ -8,6 +9,10 @@ comptime {...@@ -8,6 +9,10 @@ comptime {
8 @export(&__aeabi_f2lz, .{ .name = "__aeabi_f2lz", .linkage = common.linkage, .visibility = common.visibility });9 @export(&__aeabi_f2lz, .{ .name = "__aeabi_f2lz", .linkage = common.linkage, .visibility = common.visibility });
9 } else {10 } else {
10 @export(&__fixsfdi, .{ .name = "__fixsfdi", .linkage = common.linkage, .visibility = common.visibility });11 @export(&__fixsfdi, .{ .name = "__fixsfdi", .linkage = common.linkage, .visibility = common.visibility });
12
13 if (common.want_mingw_arm_abi) {
14 @export(&__fixsfdi, .{ .name = "__stoi64", .linkage = common.linkage, .visibility = common.visibility });
15 }
11 }16 }
12}17}
1318
lib/compiler_rt/fixunsdfdi.zig+5
...@@ -1,3 +1,4 @@...@@ -1,3 +1,4 @@
1const builtin = @import("builtin");
1const common = @import("./common.zig");2const common = @import("./common.zig");
2const intFromFloat = @import("./int_from_float.zig").intFromFloat;3const intFromFloat = @import("./int_from_float.zig").intFromFloat;
34
...@@ -8,6 +9,10 @@ comptime {...@@ -8,6 +9,10 @@ comptime {
8 @export(&__aeabi_d2ulz, .{ .name = "__aeabi_d2ulz", .linkage = common.linkage, .visibility = common.visibility });9 @export(&__aeabi_d2ulz, .{ .name = "__aeabi_d2ulz", .linkage = common.linkage, .visibility = common.visibility });
9 } else {10 } else {
10 @export(&__fixunsdfdi, .{ .name = "__fixunsdfdi", .linkage = common.linkage, .visibility = common.visibility });11 @export(&__fixunsdfdi, .{ .name = "__fixunsdfdi", .linkage = common.linkage, .visibility = common.visibility });
12
13 if (common.want_mingw_arm_abi) {
14 @export(&__fixunsdfdi, .{ .name = "__dtou64", .linkage = common.linkage, .visibility = common.visibility });
15 }
11 }16 }
12}17}
1318
lib/compiler_rt/fixunssfdi.zig+5
...@@ -1,3 +1,4 @@...@@ -1,3 +1,4 @@
1const builtin = @import("builtin");
1const common = @import("./common.zig");2const common = @import("./common.zig");
2const intFromFloat = @import("./int_from_float.zig").intFromFloat;3const intFromFloat = @import("./int_from_float.zig").intFromFloat;
34
...@@ -8,6 +9,10 @@ comptime {...@@ -8,6 +9,10 @@ comptime {
8 @export(&__aeabi_f2ulz, .{ .name = "__aeabi_f2ulz", .linkage = common.linkage, .visibility = common.visibility });9 @export(&__aeabi_f2ulz, .{ .name = "__aeabi_f2ulz", .linkage = common.linkage, .visibility = common.visibility });
9 } else {10 } else {
10 @export(&__fixunssfdi, .{ .name = "__fixunssfdi", .linkage = common.linkage, .visibility = common.visibility });11 @export(&__fixunssfdi, .{ .name = "__fixunssfdi", .linkage = common.linkage, .visibility = common.visibility });
12
13 if (common.want_mingw_arm_abi) {
14 @export(&__fixunssfdi, .{ .name = "__stou64", .linkage = common.linkage, .visibility = common.visibility });
15 }
11 }16 }
12}17}
1318
lib/compiler_rt/floatdidf.zig+5
...@@ -1,3 +1,4 @@...@@ -1,3 +1,4 @@
1const builtin = @import("builtin");
1const common = @import("./common.zig");2const common = @import("./common.zig");
2const floatFromInt = @import("./float_from_int.zig").floatFromInt;3const floatFromInt = @import("./float_from_int.zig").floatFromInt;
34
...@@ -8,6 +9,10 @@ comptime {...@@ -8,6 +9,10 @@ comptime {
8 @export(&__aeabi_l2d, .{ .name = "__aeabi_l2d", .linkage = common.linkage, .visibility = common.visibility });9 @export(&__aeabi_l2d, .{ .name = "__aeabi_l2d", .linkage = common.linkage, .visibility = common.visibility });
9 } else {10 } else {
10 @export(&__floatdidf, .{ .name = "__floatdidf", .linkage = common.linkage, .visibility = common.visibility });11 @export(&__floatdidf, .{ .name = "__floatdidf", .linkage = common.linkage, .visibility = common.visibility });
12
13 if (common.want_mingw_arm_abi) {
14 @export(&__floatdidf, .{ .name = "__i64tod", .linkage = common.linkage, .visibility = common.visibility });
15 }
11 }16 }
12}17}
1318
lib/compiler_rt/floatdisf.zig+5
...@@ -1,3 +1,4 @@...@@ -1,3 +1,4 @@
1const builtin = @import("builtin");
1const common = @import("./common.zig");2const common = @import("./common.zig");
2const floatFromInt = @import("./float_from_int.zig").floatFromInt;3const floatFromInt = @import("./float_from_int.zig").floatFromInt;
34
...@@ -8,6 +9,10 @@ comptime {...@@ -8,6 +9,10 @@ comptime {
8 @export(&__aeabi_l2f, .{ .name = "__aeabi_l2f", .linkage = common.linkage, .visibility = common.visibility });9 @export(&__aeabi_l2f, .{ .name = "__aeabi_l2f", .linkage = common.linkage, .visibility = common.visibility });
9 } else {10 } else {
10 @export(&__floatdisf, .{ .name = "__floatdisf", .linkage = common.linkage, .visibility = common.visibility });11 @export(&__floatdisf, .{ .name = "__floatdisf", .linkage = common.linkage, .visibility = common.visibility });
12
13 if (common.want_mingw_arm_abi) {
14 @export(&__floatdisf, .{ .name = "__i64tos", .linkage = common.linkage, .visibility = common.visibility });
15 }
11 }16 }
12}17}
1318
lib/compiler_rt/floatundidf.zig+5
...@@ -1,3 +1,4 @@...@@ -1,3 +1,4 @@
1const builtin = @import("builtin");
1const common = @import("./common.zig");2const common = @import("./common.zig");
2const floatFromInt = @import("./float_from_int.zig").floatFromInt;3const floatFromInt = @import("./float_from_int.zig").floatFromInt;
34
...@@ -8,6 +9,10 @@ comptime {...@@ -8,6 +9,10 @@ comptime {
8 @export(&__aeabi_ul2d, .{ .name = "__aeabi_ul2d", .linkage = common.linkage, .visibility = common.visibility });9 @export(&__aeabi_ul2d, .{ .name = "__aeabi_ul2d", .linkage = common.linkage, .visibility = common.visibility });
9 } else {10 } else {
10 @export(&__floatundidf, .{ .name = "__floatundidf", .linkage = common.linkage, .visibility = common.visibility });11 @export(&__floatundidf, .{ .name = "__floatundidf", .linkage = common.linkage, .visibility = common.visibility });
12
13 if (common.want_mingw_arm_abi) {
14 @export(&__floatundidf, .{ .name = "__u64tod", .linkage = common.linkage, .visibility = common.visibility });
15 }
11 }16 }
12}17}
1318
lib/compiler_rt/floatundisf.zig+5
...@@ -1,3 +1,4 @@...@@ -1,3 +1,4 @@
1const builtin = @import("builtin");
1const common = @import("./common.zig");2const common = @import("./common.zig");
2const floatFromInt = @import("./float_from_int.zig").floatFromInt;3const floatFromInt = @import("./float_from_int.zig").floatFromInt;
34
...@@ -8,6 +9,10 @@ comptime {...@@ -8,6 +9,10 @@ comptime {
8 @export(&__aeabi_ul2f, .{ .name = "__aeabi_ul2f", .linkage = common.linkage, .visibility = common.visibility });9 @export(&__aeabi_ul2f, .{ .name = "__aeabi_ul2f", .linkage = common.linkage, .visibility = common.visibility });
9 } else {10 } else {
10 @export(&__floatundisf, .{ .name = "__floatundisf", .linkage = common.linkage, .visibility = common.visibility });11 @export(&__floatundisf, .{ .name = "__floatundisf", .linkage = common.linkage, .visibility = common.visibility });
12
13 if (common.want_mingw_arm_abi) {
14 @export(&__floatundisf, .{ .name = "__u64tos", .linkage = common.linkage, .visibility = common.visibility });
15 }
11 }16 }
12}17}
1318