aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/i386
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/i386')
-rw-r--r--sysdeps/i386/fpu/e_atan2l.S17
-rw-r--r--sysdeps/i386/fpu/e_atan2l.c18
-rw-r--r--sysdeps/i386/fpu/e_fmodl.S21
-rw-r--r--sysdeps/i386/fpu/e_fmodl.c22
4 files changed, 40 insertions, 38 deletions
diff --git a/sysdeps/i386/fpu/e_atan2l.S b/sysdeps/i386/fpu/e_atan2l.S
deleted file mode 100644
index f58eaa94a9..0000000000
--- a/sysdeps/i386/fpu/e_atan2l.S
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Written by J.T. Conklin <jtc@netbsd.org>.
- * Public domain.
- *
- * Adapted for `long double' by Ulrich Drepper <drepper@cygnus.com>.
- */
-
-#include <machine/asm.h>
-
-RCSID("$NetBSD: $")
-
-ENTRY(__ieee754_atan2l)
- fldt 4(%esp)
- fldt 16(%esp)
- fpatan
- ret
-END (__ieee754_atan2l)
diff --git a/sysdeps/i386/fpu/e_atan2l.c b/sysdeps/i386/fpu/e_atan2l.c
new file mode 100644
index 0000000000..19a2a60621
--- /dev/null
+++ b/sysdeps/i386/fpu/e_atan2l.c
@@ -0,0 +1,18 @@
+/*
+ * Written by J.T. Conklin <jtc@netbsd.org>.
+ * Public domain.
+ *
+ * Adapted for `long double' by Ulrich Drepper <drepper@cygnus.com>.
+ */
+
+#include <math_private.h>
+
+long double
+__ieee754_atan2l (long double y, long double x)
+{
+ long double res;
+
+ asm ("fpatan" : "=t" (res) : "u" (y), "0" (x) : "st(1)");
+
+ return res;
+}
diff --git a/sysdeps/i386/fpu/e_fmodl.S b/sysdeps/i386/fpu/e_fmodl.S
deleted file mode 100644
index 7ae63a40ab..0000000000
--- a/sysdeps/i386/fpu/e_fmodl.S
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Written by J.T. Conklin <jtc@netbsd.org>.
- * Public domain.
- *
- * Adapted for `long double' by Ulrich Drepper <drepper@cygnus.com>.
- */
-
-#include <machine/asm.h>
-
-RCSID("$NetBSD: $")
-
-ENTRY(__ieee754_fmodl)
- fldt 16(%esp)
- fldt 4(%esp)
-1: fprem
- fstsw %ax
- sahf
- jp 1b
- fstp %st(1)
- ret
-END (__ieee754_fmodl)
diff --git a/sysdeps/i386/fpu/e_fmodl.c b/sysdeps/i386/fpu/e_fmodl.c
new file mode 100644
index 0000000000..c7c9a60456
--- /dev/null
+++ b/sysdeps/i386/fpu/e_fmodl.c
@@ -0,0 +1,22 @@
+/*
+ * Written by J.T. Conklin <jtc@netbsd.org>.
+ * Public domain.
+ *
+ * Adapted for `long double' by Ulrich Drepper <drepper@cygnus.com>.
+ */
+
+#include <math_private.h>
+
+long double
+__ieee754_fmodl (long double x, long double y)
+{
+ long double res;
+
+ asm ("1:\tfprem\n"
+ "fstsw %%ax\n"
+ "sahf\n"
+ "jp 1b\n"
+ "fstp %%st(1)"
+ : "=t" (res) : "0" (x), "u" (y) : "ax", "st(1)");
+ return res;
+}