summaryrefslogtreecommitdiffstats
path: root/libc-top-half/musl/src/math/riscv64
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 13:54:38 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 13:54:38 +0000
commit8c1ab65c0f548d20b7f177bdb736daaf603340e1 (patch)
treedf55b7e75bf43f2bf500845b105afe3ac3a5157e /libc-top-half/musl/src/math/riscv64
parentInitial commit. (diff)
downloadwasi-libc-8c1ab65c0f548d20b7f177bdb736daaf603340e1.tar.xz
wasi-libc-8c1ab65c0f548d20b7f177bdb736daaf603340e1.zip
Adding upstream version 0.0~git20221206.8b7148f.upstream/0.0_git20221206.8b7148f
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'libc-top-half/musl/src/math/riscv64')
-rw-r--r--libc-top-half/musl/src/math/riscv64/copysign.c15
-rw-r--r--libc-top-half/musl/src/math/riscv64/copysignf.c15
-rw-r--r--libc-top-half/musl/src/math/riscv64/fabs.c15
-rw-r--r--libc-top-half/musl/src/math/riscv64/fabsf.c15
-rw-r--r--libc-top-half/musl/src/math/riscv64/fma.c15
-rw-r--r--libc-top-half/musl/src/math/riscv64/fmaf.c15
-rw-r--r--libc-top-half/musl/src/math/riscv64/fmax.c15
-rw-r--r--libc-top-half/musl/src/math/riscv64/fmaxf.c15
-rw-r--r--libc-top-half/musl/src/math/riscv64/fmin.c15
-rw-r--r--libc-top-half/musl/src/math/riscv64/fminf.c15
-rw-r--r--libc-top-half/musl/src/math/riscv64/sqrt.c15
-rw-r--r--libc-top-half/musl/src/math/riscv64/sqrtf.c15
12 files changed, 180 insertions, 0 deletions
diff --git a/libc-top-half/musl/src/math/riscv64/copysign.c b/libc-top-half/musl/src/math/riscv64/copysign.c
new file mode 100644
index 0000000..c785417
--- /dev/null
+++ b/libc-top-half/musl/src/math/riscv64/copysign.c
@@ -0,0 +1,15 @@
+#include <math.h>
+
+#if __riscv_flen >= 64
+
+double copysign(double x, double y)
+{
+ __asm__ ("fsgnj.d %0, %1, %2" : "=f"(x) : "f"(x), "f"(y));
+ return x;
+}
+
+#else
+
+#include "../copysign.c"
+
+#endif
diff --git a/libc-top-half/musl/src/math/riscv64/copysignf.c b/libc-top-half/musl/src/math/riscv64/copysignf.c
new file mode 100644
index 0000000..a125611
--- /dev/null
+++ b/libc-top-half/musl/src/math/riscv64/copysignf.c
@@ -0,0 +1,15 @@
+#include <math.h>
+
+#if __riscv_flen >= 32
+
+float copysignf(float x, float y)
+{
+ __asm__ ("fsgnj.s %0, %1, %2" : "=f"(x) : "f"(x), "f"(y));
+ return x;
+}
+
+#else
+
+#include "../copysignf.c"
+
+#endif
diff --git a/libc-top-half/musl/src/math/riscv64/fabs.c b/libc-top-half/musl/src/math/riscv64/fabs.c
new file mode 100644
index 0000000..5290b6f
--- /dev/null
+++ b/libc-top-half/musl/src/math/riscv64/fabs.c
@@ -0,0 +1,15 @@
+#include <math.h>
+
+#if __riscv_flen >= 64
+
+double fabs(double x)
+{
+ __asm__ ("fabs.d %0, %1" : "=f"(x) : "f"(x));
+ return x;
+}
+
+#else
+
+#include "../fabs.c"
+
+#endif
diff --git a/libc-top-half/musl/src/math/riscv64/fabsf.c b/libc-top-half/musl/src/math/riscv64/fabsf.c
new file mode 100644
index 0000000..f5032e3
--- /dev/null
+++ b/libc-top-half/musl/src/math/riscv64/fabsf.c
@@ -0,0 +1,15 @@
+#include <math.h>
+
+#if __riscv_flen >= 32
+
+float fabsf(float x)
+{
+ __asm__ ("fabs.s %0, %1" : "=f"(x) : "f"(x));
+ return x;
+}
+
+#else
+
+#include "../fabsf.c"
+
+#endif
diff --git a/libc-top-half/musl/src/math/riscv64/fma.c b/libc-top-half/musl/src/math/riscv64/fma.c
new file mode 100644
index 0000000..99b0571
--- /dev/null
+++ b/libc-top-half/musl/src/math/riscv64/fma.c
@@ -0,0 +1,15 @@
+#include <math.h>
+
+#if __riscv_flen >= 64
+
+double fma(double x, double y, double z)
+{
+ __asm__ ("fmadd.d %0, %1, %2, %3" : "=f"(x) : "f"(x), "f"(y), "f"(z));
+ return x;
+}
+
+#else
+
+#include "../fma.c"
+
+#endif
diff --git a/libc-top-half/musl/src/math/riscv64/fmaf.c b/libc-top-half/musl/src/math/riscv64/fmaf.c
new file mode 100644
index 0000000..f9dc47e
--- /dev/null
+++ b/libc-top-half/musl/src/math/riscv64/fmaf.c
@@ -0,0 +1,15 @@
+#include <math.h>
+
+#if __riscv_flen >= 32
+
+float fmaf(float x, float y, float z)
+{
+ __asm__ ("fmadd.s %0, %1, %2, %3" : "=f"(x) : "f"(x), "f"(y), "f"(z));
+ return x;
+}
+
+#else
+
+#include "../fmaf.c"
+
+#endif
diff --git a/libc-top-half/musl/src/math/riscv64/fmax.c b/libc-top-half/musl/src/math/riscv64/fmax.c
new file mode 100644
index 0000000..023709c
--- /dev/null
+++ b/libc-top-half/musl/src/math/riscv64/fmax.c
@@ -0,0 +1,15 @@
+#include <math.h>
+
+#if __riscv_flen >= 64
+
+double fmax(double x, double y)
+{
+ __asm__ ("fmax.d %0, %1, %2" : "=f"(x) : "f"(x), "f"(y));
+ return x;
+}
+
+#else
+
+#include "../fmax.c"
+
+#endif
diff --git a/libc-top-half/musl/src/math/riscv64/fmaxf.c b/libc-top-half/musl/src/math/riscv64/fmaxf.c
new file mode 100644
index 0000000..863d2bd
--- /dev/null
+++ b/libc-top-half/musl/src/math/riscv64/fmaxf.c
@@ -0,0 +1,15 @@
+#include <math.h>
+
+#if __riscv_flen >= 32
+
+float fmaxf(float x, float y)
+{
+ __asm__ ("fmax.s %0, %1, %2" : "=f"(x) : "f"(x), "f"(y));
+ return x;
+}
+
+#else
+
+#include "../fmaxf.c"
+
+#endif
diff --git a/libc-top-half/musl/src/math/riscv64/fmin.c b/libc-top-half/musl/src/math/riscv64/fmin.c
new file mode 100644
index 0000000..a4e3b06
--- /dev/null
+++ b/libc-top-half/musl/src/math/riscv64/fmin.c
@@ -0,0 +1,15 @@
+#include <math.h>
+
+#if __riscv_flen >= 64
+
+double fmin(double x, double y)
+{
+ __asm__ ("fmin.d %0, %1, %2" : "=f"(x) : "f"(x), "f"(y));
+ return x;
+}
+
+#else
+
+#include "../fmin.c"
+
+#endif
diff --git a/libc-top-half/musl/src/math/riscv64/fminf.c b/libc-top-half/musl/src/math/riscv64/fminf.c
new file mode 100644
index 0000000..32156e8
--- /dev/null
+++ b/libc-top-half/musl/src/math/riscv64/fminf.c
@@ -0,0 +1,15 @@
+#include <math.h>
+
+#if __riscv_flen >= 32
+
+float fminf(float x, float y)
+{
+ __asm__ ("fmin.s %0, %1, %2" : "=f"(x) : "f"(x), "f"(y));
+ return x;
+}
+
+#else
+
+#include "../fminf.c"
+
+#endif
diff --git a/libc-top-half/musl/src/math/riscv64/sqrt.c b/libc-top-half/musl/src/math/riscv64/sqrt.c
new file mode 100644
index 0000000..867a504
--- /dev/null
+++ b/libc-top-half/musl/src/math/riscv64/sqrt.c
@@ -0,0 +1,15 @@
+#include <math.h>
+
+#if __riscv_flen >= 64
+
+double sqrt(double x)
+{
+ __asm__ ("fsqrt.d %0, %1" : "=f"(x) : "f"(x));
+ return x;
+}
+
+#else
+
+#include "../sqrt.c"
+
+#endif
diff --git a/libc-top-half/musl/src/math/riscv64/sqrtf.c b/libc-top-half/musl/src/math/riscv64/sqrtf.c
new file mode 100644
index 0000000..610c2cf
--- /dev/null
+++ b/libc-top-half/musl/src/math/riscv64/sqrtf.c
@@ -0,0 +1,15 @@
+#include <math.h>
+
+#if __riscv_flen >= 32
+
+float sqrtf(float x)
+{
+ __asm__ ("fsqrt.s %0, %1" : "=f"(x) : "f"(x));
+ return x;
+}
+
+#else
+
+#include "../sqrtf.c"
+
+#endif