authorgravatar for koachan@protonmail.comKoakuma <koachan@protonmail.com> 2021-05-12 20:09:40+07:00
committergravatar for koachan@protonmail.comKoakuma <koachan@protonmail.com> 2021-05-12 20:13:29+07:00
log9e67c062c40292f02334111a4784bd60907b5d0e
tree2ec4fdf953f0aeb607fee474fcd3dfd6933fa9ae
parentf24d0fbb073e8c8795294bbc2727d6360b4bb4dd

Add missing f128 compiler-rt shim


2 files changed, 51 insertions(+), 1 deletions(-)

lib/std/special/compiler_rt.zig+10
......@@ -294,7 +294,17 @@ comptime {
294294 @export(@import("compiler_rt/sparc.zig")._Qp_fgt, .{ .name = "_Qp_fgt", .linkage = linkage });
295295 @export(@import("compiler_rt/sparc.zig")._Qp_fge, .{ .name = "_Qp_fge", .linkage = linkage });
296296
297 @export(@import("compiler_rt/sparc.zig")._Qp_itoq, .{ .name = "_Qp_itoq", .linkage = linkage });
298 @export(@import("compiler_rt/sparc.zig")._Qp_uitoq, .{ .name = "_Qp_uitoq", .linkage = linkage });
299 @export(@import("compiler_rt/sparc.zig")._Qp_xtoq, .{ .name = "_Qp_xtoq", .linkage = linkage });
300 @export(@import("compiler_rt/sparc.zig")._Qp_uxtoq, .{ .name = "_Qp_uxtoq", .linkage = linkage });
301 @export(@import("compiler_rt/sparc.zig")._Qp_stoq, .{ .name = "_Qp_stoq", .linkage = linkage });
297302 @export(@import("compiler_rt/sparc.zig")._Qp_dtoq, .{ .name = "_Qp_dtoq", .linkage = linkage });
303 @export(@import("compiler_rt/sparc.zig")._Qp_qtoi, .{ .name = "_Qp_qtoi", .linkage = linkage });
304 @export(@import("compiler_rt/sparc.zig")._Qp_qtoui, .{ .name = "_Qp_qtoui", .linkage = linkage });
305 @export(@import("compiler_rt/sparc.zig")._Qp_qtox, .{ .name = "_Qp_qtox", .linkage = linkage });
306 @export(@import("compiler_rt/sparc.zig")._Qp_qtoux, .{ .name = "_Qp_qtoux", .linkage = linkage });
307 @export(@import("compiler_rt/sparc.zig")._Qp_qtos, .{ .name = "_Qp_qtos", .linkage = linkage });
298308 @export(@import("compiler_rt/sparc.zig")._Qp_qtod, .{ .name = "_Qp_qtod", .linkage = linkage });
299309 }
300310
lib/std/special/compiler_rt/sparc.zig+41-1
......@@ -68,12 +68,52 @@ pub fn _Qp_fge(a: *f128, b: *f128) callconv(.C) bool {
6868 return cmp == @enumToInt(FCMP.Greater) or cmp == @enumToInt(FCMP.Equal);
6969}
7070
71// Casting
71// Conversion
72
73pub fn _Qp_itoq(c: *f128, a: i32) callconv(.C) void {
74 c.* = @import("floatsiXf.zig").__floatsitf(a);
75}
76
77pub fn _Qp_uitoq(c: *f128, a: u32) callconv(.C) void {
78 c.* = @import("floatunsitf.zig").__floatunsitf(a);
79}
80
81pub fn _Qp_xtoq(c: *f128, a: i64) callconv(.C) void {
82 c.* = @import("floatditf.zig").__floatditf(a);
83}
84
85pub fn _Qp_uxtoq(c: *f128, a: u64) callconv(.C) void {
86 c.* = @import("floatunditf.zig").__floatunditf(a);
87}
88
89pub fn _Qp_stoq(c: *f128, a: f32) callconv(.C) void {
90 c.* = @import("extendXfYf2.zig").__extendsftf2(a);
91}
7292
7393pub fn _Qp_dtoq(c: *f128, a: f64) callconv(.C) void {
7494 c.* = @import("extendXfYf2.zig").__extenddftf2(a);
7595}
7696
97pub fn _Qp_qtoi(a: *f128) callconv(.C) i32 {
98 return @import("fixtfsi.zig").__fixtfsi(a.*);
99}
100
101pub fn _Qp_qtoui(a: *f128) callconv(.C) u32 {
102 return @import("fixunstfsi.zig").__fixunstfsi(a.*);
103}
104
105pub fn _Qp_qtox(a: *f128) callconv(.C) i64 {
106 return @import("fixtfdi.zig").__fixtfdi(a.*);
107}
108
109pub fn _Qp_qtoux(a: *f128) callconv(.C) u64 {
110 return @import("fixunstfdi.zig").__fixunstfdi(a.*);
111}
112
113pub fn _Qp_qtos(a: *f128) callconv(.C) f32 {
114 return @import("truncXfYf2.zig").__trunctfsf2(a.*);
115}
116
77117pub fn _Qp_qtod(a: *f128) callconv(.C) f64 {
78118 return @import("truncXfYf2.zig").__trunctfdf2(a.*);
79119}