| author | |
| committer | |
| log | 332668cd6ea35ac3865b088a6345c7c1c171599a |
| tree | 54c4bfeded721768c4b4fbbf56a3402514291afc |
| parent | ea475556756d5afbaf88d472e9b223ab2a1ca1f4 |
| signature | Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM |
19 files changed, 33 insertions(+), 21 deletions(-)
lib/compiler_rt.zig+8| ... | ... | @@ -394,6 +394,14 @@ fn complexAbi(comptime Float: type, comptime float: type) type { |
| 394 | 394 | }; |
| 395 | 395 | } |
| 396 | 396 | |
| 397 | pub const have_c_longdouble = if (builtin.target.cTypeBitSize(.longdouble)) |bits| switch (bits) { | |
| 398 | else => true, | |
| 399 | 80 => switch (std.zig.target.compilerRtFloatAbi(&builtin.target, bits)) { | |
| 400 | .soft => false, | |
| 401 | .hard => true, | |
| 402 | }, | |
| 403 | } else false; | |
| 404 | ||
| 397 | 405 | pub fn Complex(comptime Float: type) type { |
| 398 | 406 | return struct { real: Float, imag: Float }; |
| 399 | 407 | } |
lib/compiler_rt/cos.zig+4-2| ... | ... | @@ -25,8 +25,10 @@ comptime { |
| 25 | 25 | symbol(&cos, "cos"); |
| 26 | 26 | symbol(&__cosx, "__cosx"); |
| 27 | 27 | symbol(&cosq, "cosf128"); |
| 28 | symbol(&cosl, "cosl"); | |
| 29 | symbol(&cosl, "__cosl"); // required by musl | |
| 28 | if (compiler_rt.have_c_longdouble) { | |
| 29 | symbol(&cosl, "cosl"); | |
| 30 | symbol(&cosl, "__cosl"); // required by musl | |
| 31 | } | |
| 30 | 32 | } |
| 31 | 33 | |
| 32 | 34 | fn __cosh(x: compiler_rt.f16.Abi) callconv(.c) compiler_rt.f16.Abi { |
lib/compiler_rt/exp.zig+1-1| ... | ... | @@ -22,7 +22,7 @@ comptime { |
| 22 | 22 | symbol(&exp, "exp"); |
| 23 | 23 | symbol(&__expx, "__expx"); |
| 24 | 24 | symbol(&expq, "expf128"); |
| 25 | symbol(&expl, "expl"); | |
| 25 | if (compiler_rt.have_c_longdouble) symbol(&expl, "expl"); | |
| 26 | 26 | } |
| 27 | 27 | |
| 28 | 28 | fn __exph(x: compiler_rt.f16.Abi) callconv(.c) compiler_rt.f16.Abi { |
lib/compiler_rt/exp2.zig+1-1| ... | ... | @@ -20,7 +20,7 @@ comptime { |
| 20 | 20 | symbol(&exp2, "exp2"); |
| 21 | 21 | symbol(&__exp2x, "__exp2x"); |
| 22 | 22 | symbol(&exp2q, "exp2f128"); |
| 23 | symbol(&exp2l, "exp2l"); | |
| 23 | if (compiler_rt.have_c_longdouble) symbol(&exp2l, "exp2l"); | |
| 24 | 24 | } |
| 25 | 25 | |
| 26 | 26 | fn __exp2h(x: compiler_rt.f16.Abi) callconv(.c) compiler_rt.f16.Abi { |
lib/compiler_rt/fabs.zig+1-1| ... | ... | @@ -10,7 +10,7 @@ comptime { |
| 10 | 10 | symbol(&fabs, "fabs"); |
| 11 | 11 | symbol(&__fabsx, "__fabsx"); |
| 12 | 12 | symbol(&fabsq, "fabsf128"); |
| 13 | symbol(&fabsl, "fabsl"); | |
| 13 | if (compiler_rt.have_c_longdouble) symbol(&fabsl, "fabsl"); | |
| 14 | 14 | } |
| 15 | 15 | |
| 16 | 16 | fn __fabsh(a: compiler_rt.f16.Abi) callconv(.c) compiler_rt.f16.Abi { |
lib/compiler_rt/floor_ceil.zig+2-2| ... | ... | @@ -24,7 +24,7 @@ comptime { |
| 24 | 24 | symbol(&floor, "floor"); |
| 25 | 25 | symbol(&__floorx, "__floorx"); |
| 26 | 26 | symbol(&floorq, "floorf128"); |
| 27 | symbol(&floorl, "floorl"); | |
| 27 | if (compiler_rt.have_c_longdouble) symbol(&floorl, "floorl"); | |
| 28 | 28 | |
| 29 | 29 | // ceil |
| 30 | 30 | symbol(&__ceilh, "__ceilh"); |
| ... | ... | @@ -32,7 +32,7 @@ comptime { |
| 32 | 32 | symbol(&ceil, "ceil"); |
| 33 | 33 | symbol(&__ceilx, "__ceilx"); |
| 34 | 34 | symbol(&ceilq, "ceilf128"); |
| 35 | symbol(&ceill, "ceill"); | |
| 35 | if (compiler_rt.have_c_longdouble) symbol(&ceill, "ceill"); | |
| 36 | 36 | } |
| 37 | 37 | |
| 38 | 38 | fn __floorh(x: compiler_rt.f16.Abi) callconv(.c) compiler_rt.f16.Abi { |
lib/compiler_rt/fma.zig+1-1| ... | ... | @@ -18,7 +18,7 @@ comptime { |
| 18 | 18 | symbol(&fma, "fma"); |
| 19 | 19 | symbol(&__fmax, "__fmax"); |
| 20 | 20 | symbol(&fmaq, "fmaf128"); |
| 21 | symbol(&fmal, "fmal"); | |
| 21 | if (compiler_rt.have_c_longdouble) symbol(&fmal, "fmal"); | |
| 22 | 22 | } |
| 23 | 23 | |
| 24 | 24 | fn __fmah(x: compiler_rt.f16.Abi, y: compiler_rt.f16.Abi, z: compiler_rt.f16.Abi) callconv(.c) compiler_rt.f16.Abi { |
lib/compiler_rt/fmax.zig+1-1| ... | ... | @@ -11,7 +11,7 @@ comptime { |
| 11 | 11 | symbol(&fmax, "fmax"); |
| 12 | 12 | symbol(&__fmaxx, "__fmaxx"); |
| 13 | 13 | symbol(&fmaxq, "fmaxf128"); |
| 14 | symbol(&fmaxl, "fmaxl"); | |
| 14 | if (compiler_rt.have_c_longdouble) symbol(&fmaxl, "fmaxl"); | |
| 15 | 15 | } |
| 16 | 16 | |
| 17 | 17 | fn __fmaxh(x: compiler_rt.f16.Abi, y: compiler_rt.f16.Abi) callconv(.c) compiler_rt.f16.Abi { |
lib/compiler_rt/fmin.zig+1-1| ... | ... | @@ -11,7 +11,7 @@ comptime { |
| 11 | 11 | symbol(&fmin, "fmin"); |
| 12 | 12 | symbol(&__fminx, "__fminx"); |
| 13 | 13 | symbol(&fminq, "fminf128"); |
| 14 | symbol(&fminl, "fminl"); | |
| 14 | if (compiler_rt.have_c_longdouble) symbol(&fminl, "fminl"); | |
| 15 | 15 | } |
| 16 | 16 | |
| 17 | 17 | fn __fminh(x: compiler_rt.f16.Abi, y: compiler_rt.f16.Abi) callconv(.c) compiler_rt.f16.Abi { |
lib/compiler_rt/fmod.zig+1-1| ... | ... | @@ -13,7 +13,7 @@ comptime { |
| 13 | 13 | symbol(&fmod, "fmod"); |
| 14 | 14 | symbol(&__fmodx, "__fmodx"); |
| 15 | 15 | symbol(&fmodq, "fmodf128"); |
| 16 | symbol(&fmodl, "fmodl"); | |
| 16 | if (compiler_rt.have_c_longdouble) symbol(&fmodl, "fmodl"); | |
| 17 | 17 | } |
| 18 | 18 | |
| 19 | 19 | fn __fmodh(a: compiler_rt.f16.Abi, b: compiler_rt.f16.Abi) callconv(.c) compiler_rt.f16.Abi { |
lib/compiler_rt/log.zig+1-1| ... | ... | @@ -19,7 +19,7 @@ comptime { |
| 19 | 19 | symbol(&log, "log"); |
| 20 | 20 | symbol(&__logx, "__logx"); |
| 21 | 21 | symbol(&logq, "logf128"); |
| 22 | symbol(&logl, "logl"); | |
| 22 | if (compiler_rt.have_c_longdouble) symbol(&logl, "logl"); | |
| 23 | 23 | } |
| 24 | 24 | |
| 25 | 25 | fn __logh(a: compiler_rt.f16.Abi) callconv(.c) compiler_rt.f16.Abi { |
lib/compiler_rt/log10.zig+1-1| ... | ... | @@ -19,7 +19,7 @@ comptime { |
| 19 | 19 | symbol(&log10, "log10"); |
| 20 | 20 | symbol(&__log10x, "__log10x"); |
| 21 | 21 | symbol(&log10q, "log10f128"); |
| 22 | symbol(&log10l, "log10l"); | |
| 22 | if (compiler_rt.have_c_longdouble) symbol(&log10l, "log10l"); | |
| 23 | 23 | } |
| 24 | 24 | |
| 25 | 25 | fn __log10h(a: compiler_rt.f16.Abi) callconv(.c) compiler_rt.f16.Abi { |
lib/compiler_rt/log2.zig+1-1| ... | ... | @@ -20,7 +20,7 @@ comptime { |
| 20 | 20 | symbol(&log2, "log2"); |
| 21 | 21 | symbol(&__log2x, "__log2x"); |
| 22 | 22 | symbol(&log2q, "log2f128"); |
| 23 | symbol(&log2l, "log2l"); | |
| 23 | if (compiler_rt.have_c_longdouble) symbol(&log2l, "log2l"); | |
| 24 | 24 | } |
| 25 | 25 | |
| 26 | 26 | fn __log2h(a: compiler_rt.f16.Abi) callconv(.c) compiler_rt.f16.Abi { |
lib/compiler_rt/round.zig+1-1| ... | ... | @@ -19,7 +19,7 @@ comptime { |
| 19 | 19 | symbol(&round, "round"); |
| 20 | 20 | symbol(&__roundx, "__roundx"); |
| 21 | 21 | symbol(&roundq, "roundf128"); |
| 22 | symbol(&roundl, "roundl"); | |
| 22 | if (compiler_rt.have_c_longdouble) symbol(&roundl, "roundl"); | |
| 23 | 23 | } |
| 24 | 24 | |
| 25 | 25 | fn __roundh(x: compiler_rt.f16.Abi) callconv(.c) compiler_rt.f16.Abi { |
lib/compiler_rt/sin.zig+4-2| ... | ... | @@ -25,8 +25,10 @@ comptime { |
| 25 | 25 | symbol(&sin, "sin"); |
| 26 | 26 | symbol(&__sinx, "__sinx"); |
| 27 | 27 | symbol(&sinq, "sinf128"); |
| 28 | symbol(&sinl, "sinl"); | |
| 29 | symbol(&sinl, "__sinl"); // required by musl | |
| 28 | if (compiler_rt.have_c_longdouble) { | |
| 29 | symbol(&sinl, "sinl"); | |
| 30 | symbol(&sinl, "__sinl"); // required by musl | |
| 31 | } | |
| 30 | 32 | } |
| 31 | 33 | |
| 32 | 34 | fn __sinh(x: compiler_rt.f16.Abi) callconv(.c) compiler_rt.f16.Abi { |
lib/compiler_rt/sincos.zig+1-1| ... | ... | @@ -19,7 +19,7 @@ comptime { |
| 19 | 19 | symbol(&sincos, "sincos"); |
| 20 | 20 | symbol(&sincosx, "__sincosx"); |
| 21 | 21 | symbol(&sincosq, "sincosf128"); |
| 22 | symbol(&sincosl, "sincosl"); | |
| 22 | if (compiler_rt.have_c_longdouble) symbol(&sincosl, "sincosl"); | |
| 23 | 23 | } |
| 24 | 24 | |
| 25 | 25 | fn sincosh(x: compiler_rt.f16.Abi, r_sin: *compiler_rt.f16.Abi, r_cos: *compiler_rt.f16.Abi) callconv(.c) void { |
lib/compiler_rt/sqrt.zig+1-1| ... | ... | @@ -23,7 +23,7 @@ comptime { |
| 23 | 23 | } else if (compiler_rt.want_sparc32_abi) { |
| 24 | 24 | symbol(&sqrtq, "_Q_sqrt"); |
| 25 | 25 | } |
| 26 | symbol(&sqrtl, "sqrtl"); | |
| 26 | if (compiler_rt.have_c_longdouble) symbol(&sqrtl, "sqrtl"); | |
| 27 | 27 | } |
| 28 | 28 | |
| 29 | 29 | fn __sqrth(x: compiler_rt.f16.Abi) callconv(.c) compiler_rt.f16.Abi { |
lib/compiler_rt/tan.zig+1-1| ... | ... | @@ -29,7 +29,7 @@ comptime { |
| 29 | 29 | symbol(&tan, "tan"); |
| 30 | 30 | symbol(&__tanx, "__tanx"); |
| 31 | 31 | symbol(&tanq, "tanf128"); |
| 32 | symbol(&tanl, "tanl"); | |
| 32 | if (compiler_rt.have_c_longdouble) symbol(&tanl, "tanl"); | |
| 33 | 33 | } |
| 34 | 34 | |
| 35 | 35 | fn __tanh(x: compiler_rt.f16.Abi) callconv(.c) compiler_rt.f16.Abi { |
lib/compiler_rt/trunc.zig+1-1| ... | ... | @@ -18,7 +18,7 @@ comptime { |
| 18 | 18 | symbol(&trunc, "trunc"); |
| 19 | 19 | symbol(&__truncx, "__truncx"); |
| 20 | 20 | symbol(&truncq, "truncf128"); |
| 21 | symbol(&truncl, "truncl"); | |
| 21 | if (compiler_rt.have_c_longdouble) symbol(&truncl, "truncl"); | |
| 22 | 22 | } |
| 23 | 23 | |
| 24 | 24 | fn __trunch(x: compiler_rt.f16.Abi) callconv(.c) compiler_rt.f16.Abi { |