summaryrefslogtreecommitdiff
path: root/sysdeps/libm-i387/s_asinh.S
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/libm-i387/s_asinh.S')
-rw-r--r--sysdeps/libm-i387/s_asinh.S11
1 files changed, 7 insertions, 4 deletions
diff --git a/sysdeps/libm-i387/s_asinh.S b/sysdeps/libm-i387/s_asinh.S
index 45153fe2d3..a4c52cb67c 100644
--- a/sysdeps/libm-i387/s_asinh.S
+++ b/sysdeps/libm-i387/s_asinh.S
@@ -49,14 +49,14 @@ ENTRY(__asinh)
movl $0x7fffffff, %eax
andl %ecx, %eax
andl $0x80000000, %ecx
+ movl %eax, %edx
+ orl $0x800fffff, %edx
+ incl %edx
+ jz 7f // x in ħInf or NaN
xorl %ecx, 8(%esp)
fldl 4(%esp) // |x|
- movl %eax, %edx
cmpl $0x3e300000, %eax
jb 2f // |x| < 2^-28
- orl $0x800fffff, %edx
- incl %edx
- jz 4f // x in ħInf or NaN
fldln2 // log(2) : |x|
cmpl $0x41b00000, %eax
fxch // |x| : log(2)
@@ -87,6 +87,9 @@ ENTRY(__asinh)
fchs
4: ret
+7: fldl 4(%esp)
+ ret
+
6: faddl MO(one)
fyl2x
jecxz 4f