* sysdeps/ieee754/ldbl-96/e_asinl.c: Correct handling of +-Inf.
	* sysdeps/i386/fpu/e_asinl.S: Removed.  Too inaccurate.
This commit is contained in:
Ulrich Drepper 2001-04-05 17:20:49 +00:00
parent f128331c35
commit 626fb8866b
3 changed files with 4 additions and 23 deletions

View File

@ -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>

View File

@ -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)

View File

@ -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 */