aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2001-04-05 17:20:49 +0000
committerUlrich Drepper <drepper@redhat.com>2001-04-05 17:20:49 +0000
commit626fb8866b961836edb83dc2d25b80e9c5bab71d (patch)
tree83ecf31b8b6a43b106c2740ab418bb894d364a57
parentf128331c351b7a369aa39ac61241f1aae6f71841 (diff)
downloadglibc-626fb8866b961836edb83dc2d25b80e9c5bab71d.tar
glibc-626fb8866b961836edb83dc2d25b80e9c5bab71d.tar.gz
glibc-626fb8866b961836edb83dc2d25b80e9c5bab71d.tar.bz2
glibc-626fb8866b961836edb83dc2d25b80e9c5bab71d.zip
Update.
* sysdeps/ieee754/ldbl-96/e_asinl.c: Correct handling of +-Inf. * sysdeps/i386/fpu/e_asinl.S: Removed. Too inaccurate.
-rw-r--r--ChangeLog3
-rw-r--r--sysdeps/i386/fpu/e_asinl.S22
-rw-r--r--sysdeps/ieee754/ldbl-96/e_asinl.c2
3 files changed, 4 insertions, 23 deletions
diff --git a/ChangeLog b/ChangeLog
index 775e23fe44..7628b4f8ea 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2001-04-05 Ulrich Drepper <drepper@redhat.com>
+ * sysdeps/ieee754/ldbl-96/e_asinl.c: Correct handling of +-Inf.
+ * sysdeps/i386/fpu/e_asinl.S: Removed. Too inaccurate.
+
* login/tst-utmp.c: Make file usable again in tst-utmpx.c.
2001-04-04 Ulrich Drepper <drepper@redhat.com>
diff --git a/sysdeps/i386/fpu/e_asinl.S b/sysdeps/i386/fpu/e_asinl.S
deleted file mode 100644
index 3919fbcf58..0000000000
--- a/sysdeps/i386/fpu/e_asinl.S
+++ /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>
-
-RCSID("$NetBSD: $")
-
-/* asinl = atanl (x / sqrtl(1 - x^2)) */
-ENTRY(__ieee754_asinl)
- fldt 4(%esp) /* x */
- fld %st
- fmul %st(0) /* x^2 */
- fld1
- fsubp /* 1 - x^2 */
- fsqrt /* sqrt (1 - x^2) */
- fpatan
- ret
-END (__ieee754_asinl)
diff --git a/sysdeps/ieee754/ldbl-96/e_asinl.c b/sysdeps/ieee754/ldbl-96/e_asinl.c
index f5d817b53a..202e245a41 100644
--- a/sysdeps/ieee754/ldbl-96/e_asinl.c
+++ b/sysdeps/ieee754/ldbl-96/e_asinl.c
@@ -92,7 +92,7 @@ __ieee754_asinl (x)
ix = (ix << 16) | (i0 >> 16);
if (ix >= 0x3fff8000)
{ /* |x|>= 1 */
- if (((i0 - 0x80000000) | i1) == 0)
+ if (ix < 0x7fff0000 && ((i0 - 0x80000000) | i1) == 0)
/* asin(1)=+-pi/2 with inexact */
return x * pio2_hi + x * pio2_lo;
return (x - x) / (x - x); /* asin(|x|>1) is NaN */