Update.
authorAndreas Jaeger <aj@suse.de>
Sun, 6 May 2001 17:03:45 +0000 (17:03 +0000)
committerAndreas Jaeger <aj@suse.de>
Sun, 6 May 2001 17:03:45 +0000 (17:03 +0000)
2001-05-06  Andreas Jaeger  <aj@suse.de>

* sysdeps/i386/fpu/e_acosl.c: New, rewrite of e_acos.S.
* sysdeps/i386/fpu/s_atanl.c: New, rewrite of e_atanl.S.
* sysdeps/i386/fpu/e_sqrtl.c: New, rewrite of e_sqrt.S.
* sysdeps/i386/fpu/e_acosl.S: Removed.
* sysdeps/i386/fpu/s_atanl.S: Removed.
* sysdeps/i386/fpu/e_sqrtl.S: Removed.

ChangeLog
sysdeps/i386/fpu/e_acosl.S [deleted file]
sysdeps/i386/fpu/e_acosl.c [new file with mode: 0644]
sysdeps/i386/fpu/e_sqrtl.S [deleted file]
sysdeps/i386/fpu/e_sqrtl.c [new file with mode: 0644]
sysdeps/i386/fpu/s_atanl.c [moved from sysdeps/i386/fpu/s_atanl.S with 51% similarity]

index ba21e2c..1dce8ec 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2001-05-06  Andreas Jaeger  <aj@suse.de>
+
+       * sysdeps/i386/fpu/e_acosl.c: New, rewrite of e_acos.S.
+       * sysdeps/i386/fpu/s_atanl.c: New, rewrite of e_atanl.S.
+       * sysdeps/i386/fpu/e_sqrtl.c: New, rewrite of e_sqrt.S.
+       * sysdeps/i386/fpu/e_acosl.S: Removed.
+       * sysdeps/i386/fpu/s_atanl.S: Removed.
+       * sysdeps/i386/fpu/e_sqrtl.S: Removed.
+
 2001-05-05  Mark Kettenis  <kettenis@gnu.org>
 
        * sysdeps/mach/hurd/bits/environments.h: Add comment from
diff --git a/sysdeps/i386/fpu/e_acosl.S b/sysdeps/i386/fpu/e_acosl.S
deleted file mode 100644 (file)
index d69f056..0000000
+++ /dev/null
@@ -1,22 +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>
-
-
-/* acosl = atanl (sqrtl(1 - x^2) / x) */
-ENTRY(__ieee754_acosl)
-       fldt    4(%esp)                 /* x */
-       fld     %st
-       fmul    %st(0)                  /* x^2 */
-       fld1
-       fsubp                           /* 1 - x^2 */
-       fsqrt                           /* sqrtl (1 - x^2) */
-       fxch    %st(1)
-       fpatan
-       ret
-END (__ieee754_acosl)
diff --git a/sysdeps/i386/fpu/e_acosl.c b/sysdeps/i386/fpu/e_acosl.c
new file mode 100644 (file)
index 0000000..0c3e039
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+ * 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_acosl (long double x)
+{
+  long double res;
+
+  /* acosl = atanl (sqrtl(1 - x^2) / x) */
+  asm (        "fld    %%st\n"
+       "fmul   %%st(0)\n"              /* x^2 */
+       "fld1\n"
+       "fsubp\n"                       /* 1 - x^2 */
+       "fsqrt\n"                       /* sqrtl (1 - x^2) */
+       "fxch   %%st(1)\n"
+       "fpatan"
+       : "=t" (res) : "0" (x) : "st(1)");
+  return res;
+}
diff --git a/sysdeps/i386/fpu/e_sqrtl.S b/sysdeps/i386/fpu/e_sqrtl.S
deleted file mode 100644 (file)
index d47aae5..0000000
+++ /dev/null
@@ -1,16 +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_sqrtl)
-       fldt    4(%esp)
-       fsqrt
-       ret
-END (__ieee754_sqrtl)
diff --git a/sysdeps/i386/fpu/e_sqrtl.c b/sysdeps/i386/fpu/e_sqrtl.c
new file mode 100644 (file)
index 0000000..85f61bb
--- /dev/null
@@ -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_sqrtl (long double x)
+{
+  long double res;
+
+  asm ("fsqrt" : "=t" (res) : "0" (x));
+
+  return res;
+}
similarity index 51%
rename from sysdeps/i386/fpu/s_atanl.S
rename to sysdeps/i386/fpu/s_atanl.c
index 8b07272..b7dba88 100644 (file)
@@ -5,14 +5,18 @@
  * Adapted for `long double' by Ulrich Drepper <drepper@cygnus.com>.
  */
 
-#include <machine/asm.h>
+#include <math_private.h>
 
-RCSID("$NetBSD: $")
+long double
+__atanl (long double x)
+{
+  long double res;
+
+  asm ("fld1\n"
+       "fpatan"
+       : "=t" (res) : "0" (x));
+
+  return res;
+}
 
-ENTRY(__atanl)
-       fldt    4(%esp)
-       fld1
-       fpatan
-       ret
-END (__atanl)
 weak_alias (__atanl, atanl)