diff options
Diffstat (limited to 'sysdeps/i386/fpu/s_asinh.S')
-rw-r--r-- | sysdeps/i386/fpu/s_asinh.S | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/sysdeps/i386/fpu/s_asinh.S b/sysdeps/i386/fpu/s_asinh.S index e4c0c676a6..7123772dee 100644 --- a/sysdeps/i386/fpu/s_asinh.S +++ b/sysdeps/i386/fpu/s_asinh.S @@ -100,7 +100,16 @@ ENTRY(__asinh) 4: fld %st // x : x faddl MO(huge) // huge+x : x fstp %st(0) // x - ret + cmpl $0x00100000, %eax + jae 8f + subl $8, %esp + cfi_adjust_cfa_offset (8) + fld %st(0) + fmul %st(0) + fstpl (%esp) + addl $8, %esp + cfi_adjust_cfa_offset (-8) +8: ret // |x| > 2^28 => y = sign(x) * (log(|x|) + log(2)) .align ALIGNARG(4) |