authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-04-28 12:02:15+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-05-01 21:36:19+02:00
log0209c68fcca22ffe1ab359096f6f3aeb477043e2
tree866141445bc9a7d9750bd481f4d8fd38f7f22f1b
parentaea1272a3f7d9b291382f11239aaa27f68920c8a
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

compiler-rt: Add missing _Qp_sqrt export for sparc64.

https://github.com/ziglang/zig/issues/23716

1 files changed, 6 insertions(+), 0 deletions(-)

lib/compiler_rt/sqrt.zig+6
...@@ -13,6 +13,8 @@ comptime {...@@ -13,6 +13,8 @@ comptime {
13 @export(&__sqrtx, .{ .name = "__sqrtx", .linkage = common.linkage, .visibility = common.visibility });13 @export(&__sqrtx, .{ .name = "__sqrtx", .linkage = common.linkage, .visibility = common.visibility });
14 if (common.want_ppc_abi) {14 if (common.want_ppc_abi) {
15 @export(&sqrtq, .{ .name = "sqrtf128", .linkage = common.linkage, .visibility = common.visibility });15 @export(&sqrtq, .{ .name = "sqrtf128", .linkage = common.linkage, .visibility = common.visibility });
16 } else if (common.want_sparc_abi) {
17 @export(&_Qp_sqrt, .{ .name = "_Qp_sqrt", .linkage = common.linkage, .visibility = common.visibility });
16 }18 }
17 @export(&sqrtq, .{ .name = "sqrtq", .linkage = common.linkage, .visibility = common.visibility });19 @export(&sqrtq, .{ .name = "sqrtq", .linkage = common.linkage, .visibility = common.visibility });
18 @export(&sqrtl, .{ .name = "sqrtl", .linkage = common.linkage, .visibility = common.visibility });20 @export(&sqrtl, .{ .name = "sqrtl", .linkage = common.linkage, .visibility = common.visibility });
...@@ -242,6 +244,10 @@ pub fn sqrtq(x: f128) callconv(.C) f128 {...@@ -242,6 +244,10 @@ pub fn sqrtq(x: f128) callconv(.C) f128 {
242 return sqrt(@floatCast(x));244 return sqrt(@floatCast(x));
243}245}
244246
247fn _Qp_sqrt(c: *f128, a: *f128) callconv(.c) void {
248 c.* = sqrt(@floatCast(a.*));
249}
250
245pub fn sqrtl(x: c_longdouble) callconv(.C) c_longdouble {251pub fn sqrtl(x: c_longdouble) callconv(.C) c_longdouble {
246 switch (@typeInfo(c_longdouble).float.bits) {252 switch (@typeInfo(c_longdouble).float.bits) {
247 16 => return __sqrth(x),253 16 => return __sqrth(x),