From 885f5974cdf65b59415837ae97f5a14ef1350670 Mon Sep 17 00:00:00 2001 From: Kacper Date: Tue, 9 Dec 2025 19:20:15 +0100 Subject: feat: add gzip and new headers --- lib/libm/aarch64/ceil.c | 7 +++++++ lib/libm/aarch64/ceilf.c | 7 +++++++ lib/libm/aarch64/fabs.c | 7 +++++++ lib/libm/aarch64/fabsf.c | 7 +++++++ lib/libm/aarch64/floor.c | 7 +++++++ lib/libm/aarch64/floorf.c | 7 +++++++ lib/libm/aarch64/fma.c | 7 +++++++ lib/libm/aarch64/fmaf.c | 7 +++++++ lib/libm/aarch64/fmax.c | 7 +++++++ lib/libm/aarch64/fmaxf.c | 7 +++++++ lib/libm/aarch64/fmin.c | 7 +++++++ lib/libm/aarch64/fminf.c | 7 +++++++ lib/libm/aarch64/llrint.c | 10 ++++++++++ lib/libm/aarch64/llrintf.c | 10 ++++++++++ lib/libm/aarch64/llround.c | 8 ++++++++ lib/libm/aarch64/llroundf.c | 8 ++++++++ lib/libm/aarch64/lrint.c | 10 ++++++++++ lib/libm/aarch64/lrintf.c | 10 ++++++++++ lib/libm/aarch64/lround.c | 8 ++++++++ lib/libm/aarch64/lroundf.c | 8 ++++++++ lib/libm/aarch64/nearbyint.c | 7 +++++++ lib/libm/aarch64/nearbyintf.c | 7 +++++++ lib/libm/aarch64/rint.c | 7 +++++++ lib/libm/aarch64/rintf.c | 7 +++++++ lib/libm/aarch64/round.c | 7 +++++++ lib/libm/aarch64/roundf.c | 7 +++++++ lib/libm/aarch64/sqrt.c | 7 +++++++ lib/libm/aarch64/sqrtf.c | 7 +++++++ lib/libm/aarch64/trunc.c | 7 +++++++ lib/libm/aarch64/truncf.c | 7 +++++++ 30 files changed, 226 insertions(+) create mode 100644 lib/libm/aarch64/ceil.c create mode 100644 lib/libm/aarch64/ceilf.c create mode 100644 lib/libm/aarch64/fabs.c create mode 100644 lib/libm/aarch64/fabsf.c create mode 100644 lib/libm/aarch64/floor.c create mode 100644 lib/libm/aarch64/floorf.c create mode 100644 lib/libm/aarch64/fma.c create mode 100644 lib/libm/aarch64/fmaf.c create mode 100644 lib/libm/aarch64/fmax.c create mode 100644 lib/libm/aarch64/fmaxf.c create mode 100644 lib/libm/aarch64/fmin.c create mode 100644 lib/libm/aarch64/fminf.c create mode 100644 lib/libm/aarch64/llrint.c create mode 100644 lib/libm/aarch64/llrintf.c create mode 100644 lib/libm/aarch64/llround.c create mode 100644 lib/libm/aarch64/llroundf.c create mode 100644 lib/libm/aarch64/lrint.c create mode 100644 lib/libm/aarch64/lrintf.c create mode 100644 lib/libm/aarch64/lround.c create mode 100644 lib/libm/aarch64/lroundf.c create mode 100644 lib/libm/aarch64/nearbyint.c create mode 100644 lib/libm/aarch64/nearbyintf.c create mode 100644 lib/libm/aarch64/rint.c create mode 100644 lib/libm/aarch64/rintf.c create mode 100644 lib/libm/aarch64/round.c create mode 100644 lib/libm/aarch64/roundf.c create mode 100644 lib/libm/aarch64/sqrt.c create mode 100644 lib/libm/aarch64/sqrtf.c create mode 100644 lib/libm/aarch64/trunc.c create mode 100644 lib/libm/aarch64/truncf.c (limited to 'lib/libm/aarch64') diff --git a/lib/libm/aarch64/ceil.c b/lib/libm/aarch64/ceil.c new file mode 100644 index 00000000..44f4cc19 --- /dev/null +++ b/lib/libm/aarch64/ceil.c @@ -0,0 +1,7 @@ +#include + +double ceil(double x) +{ + __asm__("frintp %d0, %d1" : "=w"(x) : "w"(x)); + return x; +} diff --git a/lib/libm/aarch64/ceilf.c b/lib/libm/aarch64/ceilf.c new file mode 100644 index 00000000..a449bf7b --- /dev/null +++ b/lib/libm/aarch64/ceilf.c @@ -0,0 +1,7 @@ +#include + +float ceilf(float x) +{ + __asm__("frintp %s0, %s1" : "=w"(x) : "w"(x)); + return x; +} diff --git a/lib/libm/aarch64/fabs.c b/lib/libm/aarch64/fabs.c new file mode 100644 index 00000000..96c336dd --- /dev/null +++ b/lib/libm/aarch64/fabs.c @@ -0,0 +1,7 @@ +#include + +double fabs(double x) +{ + __asm__("fabs %d0, %d1" : "=w"(x) : "w"(x)); + return x; +} diff --git a/lib/libm/aarch64/fabsf.c b/lib/libm/aarch64/fabsf.c new file mode 100644 index 00000000..dd652781 --- /dev/null +++ b/lib/libm/aarch64/fabsf.c @@ -0,0 +1,7 @@ +#include + +float fabsf(float x) +{ + __asm__("fabs %s0, %s1" : "=w"(x) : "w"(x)); + return x; +} diff --git a/lib/libm/aarch64/floor.c b/lib/libm/aarch64/floor.c new file mode 100644 index 00000000..53170a83 --- /dev/null +++ b/lib/libm/aarch64/floor.c @@ -0,0 +1,7 @@ +#include + +double floor(double x) +{ + __asm__("frintm %d0, %d1" : "=w"(x) : "w"(x)); + return x; +} diff --git a/lib/libm/aarch64/floorf.c b/lib/libm/aarch64/floorf.c new file mode 100644 index 00000000..633fd2a2 --- /dev/null +++ b/lib/libm/aarch64/floorf.c @@ -0,0 +1,7 @@ +#include + +float floorf(float x) +{ + __asm__("frintm %s0, %s1" : "=w"(x) : "w"(x)); + return x; +} diff --git a/lib/libm/aarch64/fma.c b/lib/libm/aarch64/fma.c new file mode 100644 index 00000000..858a6f04 --- /dev/null +++ b/lib/libm/aarch64/fma.c @@ -0,0 +1,7 @@ +#include + +double fma(double x, double y, double z) +{ + __asm__("fmadd %d0, %d1, %d2, %d3" : "=w"(x) : "w"(x), "w"(y), "w"(z)); + return x; +} diff --git a/lib/libm/aarch64/fmaf.c b/lib/libm/aarch64/fmaf.c new file mode 100644 index 00000000..9f80e065 --- /dev/null +++ b/lib/libm/aarch64/fmaf.c @@ -0,0 +1,7 @@ +#include + +float fmaf(float x, float y, float z) +{ + __asm__("fmadd %s0, %s1, %s2, %s3" : "=w"(x) : "w"(x), "w"(y), "w"(z)); + return x; +} diff --git a/lib/libm/aarch64/fmax.c b/lib/libm/aarch64/fmax.c new file mode 100644 index 00000000..4d094507 --- /dev/null +++ b/lib/libm/aarch64/fmax.c @@ -0,0 +1,7 @@ +#include + +double fmax(double x, double y) +{ + __asm__("fmaxnm %d0, %d1, %d2" : "=w"(x) : "w"(x), "w"(y)); + return x; +} diff --git a/lib/libm/aarch64/fmaxf.c b/lib/libm/aarch64/fmaxf.c new file mode 100644 index 00000000..34779718 --- /dev/null +++ b/lib/libm/aarch64/fmaxf.c @@ -0,0 +1,7 @@ +#include + +float fmaxf(float x, float y) +{ + __asm__("fmaxnm %s0, %s1, %s2" : "=w"(x) : "w"(x), "w"(y)); + return x; +} diff --git a/lib/libm/aarch64/fmin.c b/lib/libm/aarch64/fmin.c new file mode 100644 index 00000000..d49d80cc --- /dev/null +++ b/lib/libm/aarch64/fmin.c @@ -0,0 +1,7 @@ +#include + +double fmin(double x, double y) +{ + __asm__("fminnm %d0, %d1, %d2" : "=w"(x) : "w"(x), "w"(y)); + return x; +} diff --git a/lib/libm/aarch64/fminf.c b/lib/libm/aarch64/fminf.c new file mode 100644 index 00000000..8a7166c4 --- /dev/null +++ b/lib/libm/aarch64/fminf.c @@ -0,0 +1,7 @@ +#include + +float fminf(float x, float y) +{ + __asm__("fminnm %s0, %s1, %s2" : "=w"(x) : "w"(x), "w"(y)); + return x; +} diff --git a/lib/libm/aarch64/llrint.c b/lib/libm/aarch64/llrint.c new file mode 100644 index 00000000..a1862927 --- /dev/null +++ b/lib/libm/aarch64/llrint.c @@ -0,0 +1,10 @@ +#include + +long long llrint(double x) +{ + long long n; + __asm__("frintx %d1, %d1\n" + "fcvtzs %x0, %d1\n" + : "=r"(n), "+w"(x)); + return n; +} diff --git a/lib/libm/aarch64/llrintf.c b/lib/libm/aarch64/llrintf.c new file mode 100644 index 00000000..6a3d5068 --- /dev/null +++ b/lib/libm/aarch64/llrintf.c @@ -0,0 +1,10 @@ +#include + +long long llrintf(float x) +{ + long long n; + __asm__("frintx %s1, %s1\n" + "fcvtzs %x0, %s1\n" + : "=r"(n), "+w"(x)); + return n; +} diff --git a/lib/libm/aarch64/llround.c b/lib/libm/aarch64/llround.c new file mode 100644 index 00000000..ae5972d3 --- /dev/null +++ b/lib/libm/aarch64/llround.c @@ -0,0 +1,8 @@ +#include + +long long llround(double x) +{ + long long n; + __asm__("fcvtas %x0, %d1" : "=r"(n) : "w"(x)); + return n; +} diff --git a/lib/libm/aarch64/llroundf.c b/lib/libm/aarch64/llroundf.c new file mode 100644 index 00000000..8c2d391d --- /dev/null +++ b/lib/libm/aarch64/llroundf.c @@ -0,0 +1,8 @@ +#include + +long long llroundf(float x) +{ + long long n; + __asm__("fcvtas %x0, %s1" : "=r"(n) : "w"(x)); + return n; +} diff --git a/lib/libm/aarch64/lrint.c b/lib/libm/aarch64/lrint.c new file mode 100644 index 00000000..70c5cebd --- /dev/null +++ b/lib/libm/aarch64/lrint.c @@ -0,0 +1,10 @@ +#include + +long lrint(double x) +{ + long n; + __asm__("frintx %d1, %d1\n" + "fcvtzs %x0, %d1\n" + : "=r"(n), "+w"(x)); + return n; +} diff --git a/lib/libm/aarch64/lrintf.c b/lib/libm/aarch64/lrintf.c new file mode 100644 index 00000000..aee60614 --- /dev/null +++ b/lib/libm/aarch64/lrintf.c @@ -0,0 +1,10 @@ +#include + +long lrintf(float x) +{ + long n; + __asm__("frintx %s1, %s1\n" + "fcvtzs %x0, %s1\n" + : "=r"(n), "+w"(x)); + return n; +} diff --git a/lib/libm/aarch64/lround.c b/lib/libm/aarch64/lround.c new file mode 100644 index 00000000..a22e0970 --- /dev/null +++ b/lib/libm/aarch64/lround.c @@ -0,0 +1,8 @@ +#include + +long lround(double x) +{ + long n; + __asm__("fcvtas %x0, %d1" : "=r"(n) : "w"(x)); + return n; +} diff --git a/lib/libm/aarch64/lroundf.c b/lib/libm/aarch64/lroundf.c new file mode 100644 index 00000000..a823024b --- /dev/null +++ b/lib/libm/aarch64/lroundf.c @@ -0,0 +1,8 @@ +#include + +long lroundf(float x) +{ + long n; + __asm__("fcvtas %x0, %s1" : "=r"(n) : "w"(x)); + return n; +} diff --git a/lib/libm/aarch64/nearbyint.c b/lib/libm/aarch64/nearbyint.c new file mode 100644 index 00000000..6a186039 --- /dev/null +++ b/lib/libm/aarch64/nearbyint.c @@ -0,0 +1,7 @@ +#include + +double nearbyint(double x) +{ + __asm__("frinti %d0, %d1" : "=w"(x) : "w"(x)); + return x; +} diff --git a/lib/libm/aarch64/nearbyintf.c b/lib/libm/aarch64/nearbyintf.c new file mode 100644 index 00000000..d61b07b8 --- /dev/null +++ b/lib/libm/aarch64/nearbyintf.c @@ -0,0 +1,7 @@ +#include + +float nearbyintf(float x) +{ + __asm__("frinti %s0, %s1" : "=w"(x) : "w"(x)); + return x; +} diff --git a/lib/libm/aarch64/rint.c b/lib/libm/aarch64/rint.c new file mode 100644 index 00000000..2cf91f05 --- /dev/null +++ b/lib/libm/aarch64/rint.c @@ -0,0 +1,7 @@ +#include + +double rint(double x) +{ + __asm__("frintx %d0, %d1" : "=w"(x) : "w"(x)); + return x; +} diff --git a/lib/libm/aarch64/rintf.c b/lib/libm/aarch64/rintf.c new file mode 100644 index 00000000..e1d92fa8 --- /dev/null +++ b/lib/libm/aarch64/rintf.c @@ -0,0 +1,7 @@ +#include + +float rintf(float x) +{ + __asm__("frintx %s0, %s1" : "=w"(x) : "w"(x)); + return x; +} diff --git a/lib/libm/aarch64/round.c b/lib/libm/aarch64/round.c new file mode 100644 index 00000000..27b8e63f --- /dev/null +++ b/lib/libm/aarch64/round.c @@ -0,0 +1,7 @@ +#include + +double round(double x) +{ + __asm__("frinta %d0, %d1" : "=w"(x) : "w"(x)); + return x; +} diff --git a/lib/libm/aarch64/roundf.c b/lib/libm/aarch64/roundf.c new file mode 100644 index 00000000..155aaba1 --- /dev/null +++ b/lib/libm/aarch64/roundf.c @@ -0,0 +1,7 @@ +#include + +float roundf(float x) +{ + __asm__("frinta %s0, %s1" : "=w"(x) : "w"(x)); + return x; +} diff --git a/lib/libm/aarch64/sqrt.c b/lib/libm/aarch64/sqrt.c new file mode 100644 index 00000000..33c32ddb --- /dev/null +++ b/lib/libm/aarch64/sqrt.c @@ -0,0 +1,7 @@ +#include + +double sqrt(double x) +{ + __asm__("fsqrt %d0, %d1" : "=w"(x) : "w"(x)); + return x; +} diff --git a/lib/libm/aarch64/sqrtf.c b/lib/libm/aarch64/sqrtf.c new file mode 100644 index 00000000..8a7961d3 --- /dev/null +++ b/lib/libm/aarch64/sqrtf.c @@ -0,0 +1,7 @@ +#include + +float sqrtf(float x) +{ + __asm__("fsqrt %s0, %s1" : "=w"(x) : "w"(x)); + return x; +} diff --git a/lib/libm/aarch64/trunc.c b/lib/libm/aarch64/trunc.c new file mode 100644 index 00000000..e5aa908d --- /dev/null +++ b/lib/libm/aarch64/trunc.c @@ -0,0 +1,7 @@ +#include + +double trunc(double x) +{ + __asm__("frintz %d0, %d1" : "=w"(x) : "w"(x)); + return x; +} diff --git a/lib/libm/aarch64/truncf.c b/lib/libm/aarch64/truncf.c new file mode 100644 index 00000000..10389ca0 --- /dev/null +++ b/lib/libm/aarch64/truncf.c @@ -0,0 +1,7 @@ +#include + +float truncf(float x) +{ + __asm__("frintz %s0, %s1" : "=w"(x) : "w"(x)); + return x; +} -- cgit v1.2.3