summaryrefslogtreecommitdiff
path: root/sysdeps/x86_64/fpu/s_expm1l.S
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2008-08-29 07:42:08 +0000
committerJakub Jelinek <jakub@redhat.com>2008-08-29 07:42:08 +0000
commit315a43aa949b25896c511fa6e2efd6be57e2e01d (patch)
tree625aa5d40df04b92dcd3bd8128d30e52a45975ac /sysdeps/x86_64/fpu/s_expm1l.S
parent2fb513c60061821c7e5e7fb6014d2afd0308b7e9 (diff)
Updated to fedora-glibc-20080828T1623cvs/fedora-glibc-2_8_90-12
Diffstat (limited to 'sysdeps/x86_64/fpu/s_expm1l.S')
-rw-r--r--sysdeps/x86_64/fpu/s_expm1l.S7
1 files changed, 6 insertions, 1 deletions
diff --git a/sysdeps/x86_64/fpu/s_expm1l.S b/sysdeps/x86_64/fpu/s_expm1l.S
index b4f5a3efda..05a1bfcce1 100644
--- a/sysdeps/x86_64/fpu/s_expm1l.S
+++ b/sysdeps/x86_64/fpu/s_expm1l.S
@@ -1,5 +1,5 @@
/* ix87 specific implementation of exp(x)-1.
- Copyright (C) 1996, 1997, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1996, 1997, 2001, 2002, 2008 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
Based on code by John C. Bowman <bowman@ipp-garching.mpg.de>.
@@ -48,6 +48,11 @@ l2e: .tfloat 1.442695040888963407359924681002
.text
ENTRY(__expm1l)
+ movzwl 8+8(%rsp), %eax // load sign bit and 15-bit exponent
+ xorb $0x80, %ah // invert sign bit (now 1 is "positive")
+ cmpl $0xc006, %eax // is num positive and exp >= 6 (number is >= 128.0)?
+ jae __ieee754_expl // (if num is denormal, it is at least >= 64.0)
+
fldt 8(%rsp) // x
fxam // Is NaN or +-Inf?
fstsw %ax