aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/i386/fpu/e_expl.S
diff options
context:
space:
mode:
authorAndreas Jaeger <aj@suse.de>2001-05-15 08:00:22 +0000
committerAndreas Jaeger <aj@suse.de>2001-05-15 08:00:22 +0000
commit33996419cd20e1815e40f109cb45302498418761 (patch)
treef01e9f571af704c6dbb7bf85bab75aa751832c8a /sysdeps/i386/fpu/e_expl.S
parentef25b29e9a1fd54625c98af36d767f353cd45488 (diff)
downloadglibc-33996419cd20e1815e40f109cb45302498418761.tar
glibc-33996419cd20e1815e40f109cb45302498418761.tar.gz
glibc-33996419cd20e1815e40f109cb45302498418761.tar.bz2
glibc-33996419cd20e1815e40f109cb45302498418761.zip
Update.
2001-05-15 Andreas Jaeger <aj@suse.de> * sysdeps/ieee754/ldbl-128/s_expm1l.c: New file, contributed by Stephen L Moshier <moshier@mediaone.net>. * sysdeps/i386/fpu/libm-test-ulps: Adjust for change. * math/libm-test.inc: Add comment with ToDo. * sysdeps/i386/fpu/e_expl.c: Rewritten to C and using a more accurate algorithm. Patch by Stephen L Moshier <moshier@mediaone.net>. * sysdeps/i386/fpu/e_expl.S: Removed.
Diffstat (limited to 'sysdeps/i386/fpu/e_expl.S')
-rw-r--r--sysdeps/i386/fpu/e_expl.S43
1 files changed, 0 insertions, 43 deletions
diff --git a/sysdeps/i386/fpu/e_expl.S b/sysdeps/i386/fpu/e_expl.S
deleted file mode 100644
index 2bcdf58c58..0000000000
--- a/sysdeps/i386/fpu/e_expl.S
+++ /dev/null
@@ -1,43 +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: $")
-
-/* e^x = 2^(x * log2l(e)) */
-ENTRY(__ieee754_expl)
- fldt 4(%esp)
-/* I added the following ugly construct because expl(+-Inf) resulted
- in NaN. The ugliness results from the bright minds at Intel.
- For the i686 the code can be written better.
- -- drepper@cygnus.com. */
- fxam /* Is NaN or +-Inf? */
- fstsw %ax
- movb $0x45, %dh
- andb %ah, %dh
- cmpb $0x05, %dh
- je 1f /* Is +-Inf, jump. */
- fldl2e
- fmulp /* x * log2(e) */
- fld %st
- frndint /* int(x * log2(e)) */
- fsubr %st,%st(1) /* fract(x * log2(e)) */
- fxch
- f2xm1 /* 2^(fract(x * log2(e))) - 1 */
- fld1
- faddp /* 2^(fract(x * log2(e))) */
- fscale /* e^x */
- fstp %st(1)
- ret
-
-1: testl $0x200, %eax /* Test sign. */
- jz 2f /* If positive, jump. */
- fstp %st
- fldz /* Set result to 0. */
-2: ret
-END (__ieee754_expl)