diff options
author | Andreas Jaeger <aj@suse.de> | 2001-05-15 08:00:22 +0000 |
---|---|---|
committer | Andreas Jaeger <aj@suse.de> | 2001-05-15 08:00:22 +0000 |
commit | 33996419cd20e1815e40f109cb45302498418761 (patch) | |
tree | f01e9f571af704c6dbb7bf85bab75aa751832c8a /sysdeps/i386/fpu/e_expl.S | |
parent | ef25b29e9a1fd54625c98af36d767f353cd45488 (diff) | |
download | glibc-33996419cd20e1815e40f109cb45302498418761.tar.gz glibc-33996419cd20e1815e40f109cb45302498418761.tar.xz 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.S | 43 |
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) |