aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Senoner <seda18@rolmail.net>2025-08-27 21:53:16 +0200
committerDavid Senoner <seda18@rolmail.net>2025-08-28 20:09:07 +0200
commit70e22d79a4d7aedcc76a00f123837d387545c3c6 (patch)
treeb01caace5dd72d3db8848d42e1e38035d4869260
parentf707de15a14e4400e99d5260d6d7af98aa2a69cd (diff)
downloadzig-70e22d79a4d7aedcc76a00f123837d387545c3c6.tar.gz
zig-70e22d79a4d7aedcc76a00f123837d387545c3c6.zip
libc: delete superfluous c and assembly trunc implementations
-rw-r--r--lib/libc/mingw/math/truncl.c25
-rw-r--r--lib/libc/musl/src/math/aarch64/trunc.c7
-rw-r--r--lib/libc/musl/src/math/aarch64/truncf.c7
-rw-r--r--lib/libc/musl/src/math/i386/floor.s31
-rw-r--r--lib/libc/musl/src/math/i386/trunc.s1
-rw-r--r--lib/libc/musl/src/math/i386/truncf.s1
-rw-r--r--lib/libc/musl/src/math/i386/truncl.s1
-rw-r--r--lib/libc/musl/src/math/powerpc64/trunc.c15
-rw-r--r--lib/libc/musl/src/math/powerpc64/truncf.c15
-rw-r--r--lib/libc/musl/src/math/s390x/trunc.c15
-rw-r--r--lib/libc/musl/src/math/s390x/truncf.c15
-rw-r--r--lib/libc/musl/src/math/s390x/truncl.c15
-rw-r--r--lib/libc/musl/src/math/trunc.c19
-rw-r--r--lib/libc/musl/src/math/truncf.c19
-rw-r--r--lib/libc/musl/src/math/truncl.c34
-rw-r--r--lib/libc/musl/src/math/x32/floorl.s17
-rw-r--r--lib/libc/musl/src/math/x32/truncl.s1
-rw-r--r--lib/libc/musl/src/math/x86_64/floorl.s17
-rw-r--r--lib/libc/musl/src/math/x86_64/truncl.s1
-rw-r--r--src/libs/mingw.zig1
-rw-r--r--src/libs/musl.zig18
-rw-r--r--src/libs/wasi_libc.zig1
22 files changed, 0 insertions, 276 deletions
diff --git a/lib/libc/mingw/math/truncl.c b/lib/libc/mingw/math/truncl.c
deleted file mode 100644
index a28fed3dcb..0000000000
--- a/lib/libc/mingw/math/truncl.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
-
-#include <math.h>
-
-long double
-truncl (long double _x)
-{
-#if __SIZEOF_LONG_DOUBLE__ == __SIZEOF_DOUBLE__
- return trunc(_x);
-#else
- long double retval = 0.0L;
- unsigned short saved_cw;
- unsigned short tmp_cw;
- __asm__ __volatile__ ("fnstcw %0;" : "=m" (saved_cw)); /* save FPU control word */
- tmp_cw = saved_cw | 0xc00; /* round towards zero */
- __asm__ __volatile__ ("fldcw %0;" : : "m" (tmp_cw));
- __asm__ __volatile__ ("frndint;" : "=t" (retval) : "0" (_x)); /* round towards zero */
- __asm__ __volatile__ ("fldcw %0;" : : "m" (saved_cw) ); /* restore saved control word */
- return retval;
-#endif /* defined(_ARM_) || defined(__arm__) || defined(_ARM64_) || defined(__aarch64__) */
-}
diff --git a/lib/libc/musl/src/math/aarch64/trunc.c b/lib/libc/musl/src/math/aarch64/trunc.c
deleted file mode 100644
index e592147a0c..0000000000
--- a/lib/libc/musl/src/math/aarch64/trunc.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-
-double trunc(double x)
-{
- __asm__ ("frintz %d0, %d1" : "=w"(x) : "w"(x));
- return x;
-}
diff --git a/lib/libc/musl/src/math/aarch64/truncf.c b/lib/libc/musl/src/math/aarch64/truncf.c
deleted file mode 100644
index 20ef30f128..0000000000
--- a/lib/libc/musl/src/math/aarch64/truncf.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-
-float truncf(float x)
-{
- __asm__ ("frintz %s0, %s1" : "=w"(x) : "w"(x));
- return x;
-}
diff --git a/lib/libc/musl/src/math/i386/floor.s b/lib/libc/musl/src/math/i386/floor.s
deleted file mode 100644
index 7495e2d8c4..0000000000
--- a/lib/libc/musl/src/math/i386/floor.s
+++ /dev/null
@@ -1,31 +0,0 @@
-/* zig patch: removed `floorl`, `floorf`, `ceil`, `ceilf` and `ceill` in favor of using zig compiler_rt's implementations */
-
-1: fstcw 4(%esp)
- mov 5(%esp),%ah
- mov %al,5(%esp)
- fldcw 4(%esp)
- frndint
- mov %ah,5(%esp)
- fldcw 4(%esp)
- ret
-
-.global trunc
-.type trunc,@function
-trunc:
- fldl 4(%esp)
- mov $0xf,%al
- jmp 1b
-
-.global truncf
-.type truncf,@function
-truncf:
- flds 4(%esp)
- mov $0xf,%al
- jmp 1b
-
-.global truncl
-.type truncl,@function
-truncl:
- fldt 4(%esp)
- mov $0xf,%al
- jmp 1b
diff --git a/lib/libc/musl/src/math/i386/trunc.s b/lib/libc/musl/src/math/i386/trunc.s
deleted file mode 100644
index bc29f15ce7..0000000000
--- a/lib/libc/musl/src/math/i386/trunc.s
+++ /dev/null
@@ -1 +0,0 @@
-# see floor.s
diff --git a/lib/libc/musl/src/math/i386/truncf.s b/lib/libc/musl/src/math/i386/truncf.s
deleted file mode 100644
index bc29f15ce7..0000000000
--- a/lib/libc/musl/src/math/i386/truncf.s
+++ /dev/null
@@ -1 +0,0 @@
-# see floor.s
diff --git a/lib/libc/musl/src/math/i386/truncl.s b/lib/libc/musl/src/math/i386/truncl.s
deleted file mode 100644
index bc29f15ce7..0000000000
--- a/lib/libc/musl/src/math/i386/truncl.s
+++ /dev/null
@@ -1 +0,0 @@
-# see floor.s
diff --git a/lib/libc/musl/src/math/powerpc64/trunc.c b/lib/libc/musl/src/math/powerpc64/trunc.c
deleted file mode 100644
index 57918548b8..0000000000
--- a/lib/libc/musl/src/math/powerpc64/trunc.c
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <math.h>
-
-#ifdef _ARCH_PWR5X
-
-double trunc(double x)
-{
- __asm__ ("friz %0, %1" : "=d"(x) : "d"(x));
- return x;
-}
-
-#else
-
-#include "../trunc.c"
-
-#endif
diff --git a/lib/libc/musl/src/math/powerpc64/truncf.c b/lib/libc/musl/src/math/powerpc64/truncf.c
deleted file mode 100644
index 94e638fb77..0000000000
--- a/lib/libc/musl/src/math/powerpc64/truncf.c
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <math.h>
-
-#ifdef _ARCH_PWR5X
-
-float truncf(float x)
-{
- __asm__ ("friz %0, %1" : "=f"(x) : "f"(x));
- return x;
-}
-
-#else
-
-#include "../truncf.c"
-
-#endif
diff --git a/lib/libc/musl/src/math/s390x/trunc.c b/lib/libc/musl/src/math/s390x/trunc.c
deleted file mode 100644
index 3e5d8862e6..0000000000
--- a/lib/libc/musl/src/math/s390x/trunc.c
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <math.h>
-
-#if defined(__HTM__) || __ARCH__ >= 9
-
-double trunc(double x)
-{
- __asm__ ("fidbra %0, 5, %1, 4" : "=f"(x) : "f"(x));
- return x;
-}
-
-#else
-
-#include "../trunc.c"
-
-#endif
diff --git a/lib/libc/musl/src/math/s390x/truncf.c b/lib/libc/musl/src/math/s390x/truncf.c
deleted file mode 100644
index 9097bacd0c..0000000000
--- a/lib/libc/musl/src/math/s390x/truncf.c
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <math.h>
-
-#if defined(__HTM__) || __ARCH__ >= 9
-
-float truncf(float x)
-{
- __asm__ ("fiebra %0, 5, %1, 4" : "=f"(x) : "f"(x));
- return x;
-}
-
-#else
-
-#include "../truncf.c"
-
-#endif
diff --git a/lib/libc/musl/src/math/s390x/truncl.c b/lib/libc/musl/src/math/s390x/truncl.c
deleted file mode 100644
index 4eb920a519..0000000000
--- a/lib/libc/musl/src/math/s390x/truncl.c
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <math.h>
-
-#if defined(__HTM__) || __ARCH__ >= 9
-
-long double truncl(long double x)
-{
- __asm__ ("fixbra %0, 5, %1, 4" : "=f"(x) : "f"(x));
- return x;
-}
-
-#else
-
-#include "../truncl.c"
-
-#endif
diff --git a/lib/libc/musl/src/math/trunc.c b/lib/libc/musl/src/math/trunc.c
deleted file mode 100644
index d13711b501..0000000000
--- a/lib/libc/musl/src/math/trunc.c
+++ /dev/null
@@ -1,19 +0,0 @@
-#include "libm.h"
-
-double trunc(double x)
-{
- union {double f; uint64_t i;} u = {x};
- int e = (int)(u.i >> 52 & 0x7ff) - 0x3ff + 12;
- uint64_t m;
-
- if (e >= 52 + 12)
- return x;
- if (e < 12)
- e = 1;
- m = -1ULL >> e;
- if ((u.i & m) == 0)
- return x;
- FORCE_EVAL(x + 0x1p120f);
- u.i &= ~m;
- return u.f;
-}
diff --git a/lib/libc/musl/src/math/truncf.c b/lib/libc/musl/src/math/truncf.c
deleted file mode 100644
index 1a7d03c3bc..0000000000
--- a/lib/libc/musl/src/math/truncf.c
+++ /dev/null
@@ -1,19 +0,0 @@
-#include "libm.h"
-
-float truncf(float x)
-{
- union {float f; uint32_t i;} u = {x};
- int e = (int)(u.i >> 23 & 0xff) - 0x7f + 9;
- uint32_t m;
-
- if (e >= 23 + 9)
- return x;
- if (e < 9)
- e = 1;
- m = -1U >> e;
- if ((u.i & m) == 0)
- return x;
- FORCE_EVAL(x + 0x1p120f);
- u.i &= ~m;
- return u.f;
-}
diff --git a/lib/libc/musl/src/math/truncl.c b/lib/libc/musl/src/math/truncl.c
deleted file mode 100644
index f07b193409..0000000000
--- a/lib/libc/musl/src/math/truncl.c
+++ /dev/null
@@ -1,34 +0,0 @@
-#include "libm.h"
-
-#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
-long double truncl(long double x)
-{
- return trunc(x);
-}
-#elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
-
-static const long double toint = 1/LDBL_EPSILON;
-
-long double truncl(long double x)
-{
- union ldshape u = {x};
- int e = u.i.se & 0x7fff;
- int s = u.i.se >> 15;
- long double y;
-
- if (e >= 0x3fff+LDBL_MANT_DIG-1)
- return x;
- if (e <= 0x3fff-1) {
- FORCE_EVAL(x + 0x1p120f);
- return x*0;
- }
- /* y = int(|x|) - |x|, where int(|x|) is an integer neighbor of |x| */
- if (s)
- x = -x;
- y = x + toint - toint - x;
- if (y > 0)
- y -= 1;
- x += y;
- return s ? -x : x;
-}
-#endif
diff --git a/lib/libc/musl/src/math/x32/floorl.s b/lib/libc/musl/src/math/x32/floorl.s
deleted file mode 100644
index fb27880436..0000000000
--- a/lib/libc/musl/src/math/x32/floorl.s
+++ /dev/null
@@ -1,17 +0,0 @@
-/* zig patch: removed `floorl` and `ceill` in favor of using zig compiler_rt's implementations */
-
-1: fstcw 8(%esp)
- mov 9(%esp),%ah
- mov %al,9(%esp)
- fldcw 8(%esp)
- frndint
- mov %ah,9(%esp)
- fldcw 8(%esp)
- ret
-
-.global truncl
-.type truncl,@function
-truncl:
- fldt 8(%esp)
- mov $0xf,%al
- jmp 1b
diff --git a/lib/libc/musl/src/math/x32/truncl.s b/lib/libc/musl/src/math/x32/truncl.s
deleted file mode 100644
index f5cfa3b307..0000000000
--- a/lib/libc/musl/src/math/x32/truncl.s
+++ /dev/null
@@ -1 +0,0 @@
-# see floorl.s
diff --git a/lib/libc/musl/src/math/x86_64/floorl.s b/lib/libc/musl/src/math/x86_64/floorl.s
deleted file mode 100644
index d6b0bc1848..0000000000
--- a/lib/libc/musl/src/math/x86_64/floorl.s
+++ /dev/null
@@ -1,17 +0,0 @@
-/* zig patch: removed `floorl` and `ceill` in favor of using zig compiler_rt's implementations */
-
-1: fstcw 8(%rsp)
- mov 9(%rsp),%ah
- mov %al,9(%rsp)
- fldcw 8(%rsp)
- frndint
- mov %ah,9(%rsp)
- fldcw 8(%rsp)
- ret
-
-.global truncl
-.type truncl,@function
-truncl:
- fldt 8(%rsp)
- mov $0xf,%al
- jmp 1b
diff --git a/lib/libc/musl/src/math/x86_64/truncl.s b/lib/libc/musl/src/math/x86_64/truncl.s
deleted file mode 100644
index f5cfa3b307..0000000000
--- a/lib/libc/musl/src/math/x86_64/truncl.s
+++ /dev/null
@@ -1 +0,0 @@
-# see floorl.s
diff --git a/src/libs/mingw.zig b/src/libs/mingw.zig
index bb3c9cc8e2..bf234191a9 100644
--- a/src/libs/mingw.zig
+++ b/src/libs/mingw.zig
@@ -911,7 +911,6 @@ const mingw32_x86_src = [_][]const u8{
"math" ++ path.sep_str ++ "rintl.c",
"math" ++ path.sep_str ++ "roundl.c",
"math" ++ path.sep_str ++ "tgammal.c",
- "math" ++ path.sep_str ++ "truncl.c",
"math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "_chgsignl.S",
"math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "acoshl.c",
"math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "acosl.c",
diff --git a/src/libs/musl.zig b/src/libs/musl.zig
index 1202c0e9a1..9c10e71e1e 100644
--- a/src/libs/musl.zig
+++ b/src/libs/musl.zig
@@ -853,8 +853,6 @@ const src_files = [_][]const u8{
"musl/src/math/aarch64/roundf.c",
"musl/src/math/aarch64/sqrt.c",
"musl/src/math/aarch64/sqrtf.c",
- "musl/src/math/aarch64/trunc.c",
- "musl/src/math/aarch64/truncf.c",
"musl/src/math/acos.c",
"musl/src/math/acosf.c",
"musl/src/math/acosh.c",
@@ -954,7 +952,6 @@ const src_files = [_][]const u8{
"musl/src/math/i386/exp_ld.s",
"musl/src/math/i386/expl.s",
"musl/src/math/i386/expm1l.s",
- "musl/src/math/i386/floor.s",
"musl/src/math/i386/fmod.c",
"musl/src/math/i386/fmodf.c",
"musl/src/math/i386/fmodl.c",
@@ -1000,9 +997,6 @@ const src_files = [_][]const u8{
"musl/src/math/i386/sqrt.c",
"musl/src/math/i386/sqrtf.c",
"musl/src/math/i386/sqrtl.c",
- "musl/src/math/i386/truncf.s",
- "musl/src/math/i386/truncl.s",
- "musl/src/math/i386/trunc.s",
"musl/src/math/ilogb.c",
"musl/src/math/ilogbf.c",
"musl/src/math/ilogbl.c",
@@ -1098,8 +1092,6 @@ const src_files = [_][]const u8{
"musl/src/math/powerpc64/roundf.c",
"musl/src/math/powerpc64/sqrt.c",
"musl/src/math/powerpc64/sqrtf.c",
- "musl/src/math/powerpc64/trunc.c",
- "musl/src/math/powerpc64/truncf.c",
"musl/src/math/powerpc/fma.c",
"musl/src/math/powerpc/fmaf.c",
"musl/src/math/powerpc/sqrt.c",
@@ -1157,9 +1149,6 @@ const src_files = [_][]const u8{
"musl/src/math/s390x/sqrt.c",
"musl/src/math/s390x/sqrtf.c",
"musl/src/math/s390x/sqrtl.c",
- "musl/src/math/s390x/trunc.c",
- "musl/src/math/s390x/truncf.c",
- "musl/src/math/s390x/truncl.c",
"musl/src/math/scalb.c",
"musl/src/math/scalbf.c",
"musl/src/math/scalbln.c",
@@ -1196,9 +1185,6 @@ const src_files = [_][]const u8{
"musl/src/math/tgamma.c",
"musl/src/math/tgammaf.c",
"musl/src/math/tgammal.c",
- "musl/src/math/trunc.c",
- "musl/src/math/truncf.c",
- "musl/src/math/truncl.c",
"musl/src/math/x32/acosl.s",
"musl/src/math/x32/asinl.s",
"musl/src/math/x32/atan2l.s",
@@ -1206,7 +1192,6 @@ const src_files = [_][]const u8{
"musl/src/math/x32/exp2l.s",
"musl/src/math/x32/expl.s",
"musl/src/math/x32/expm1l.s",
- "musl/src/math/x32/floorl.s",
"musl/src/math/x32/fma.c",
"musl/src/math/x32/fmaf.c",
"musl/src/math/x32/fmodl.s",
@@ -1226,7 +1211,6 @@ const src_files = [_][]const u8{
"musl/src/math/x32/sqrtf.s",
"musl/src/math/x32/sqrtl.s",
"musl/src/math/x32/sqrt.s",
- "musl/src/math/x32/truncl.s",
"musl/src/math/x86_64/acosl.s",
"musl/src/math/x86_64/asinl.s",
"musl/src/math/x86_64/atan2l.s",
@@ -1234,7 +1218,6 @@ const src_files = [_][]const u8{
"musl/src/math/x86_64/exp2l.s",
"musl/src/math/x86_64/expl.s",
"musl/src/math/x86_64/expm1l.s",
- "musl/src/math/x86_64/floorl.s",
"musl/src/math/x86_64/fma.c",
"musl/src/math/x86_64/fmaf.c",
"musl/src/math/x86_64/fmodl.c",
@@ -1255,7 +1238,6 @@ const src_files = [_][]const u8{
"musl/src/math/x86_64/sqrt.c",
"musl/src/math/x86_64/sqrtf.c",
"musl/src/math/x86_64/sqrtl.c",
- "musl/src/math/x86_64/truncl.s",
"musl/src/misc/a64l.c",
"musl/src/misc/basename.c",
"musl/src/misc/dirname.c",
diff --git a/src/libs/wasi_libc.zig b/src/libs/wasi_libc.zig
index 4d165e2acc..0279e1bc85 100644
--- a/src/libs/wasi_libc.zig
+++ b/src/libs/wasi_libc.zig
@@ -886,7 +886,6 @@ const libc_top_half_src_files = [_][]const u8{
"musl/src/math/tgamma.c",
"musl/src/math/tgammaf.c",
"musl/src/math/tgammal.c",
- "musl/src/math/truncl.c",
"musl/src/misc/a64l.c",
"musl/src/misc/basename.c",
"musl/src/misc/dirname.c",