mirror of
git://git.musl-libc.org/musl
synced 2025-03-11 06:07:29 +00:00
math: fix expm1l on x86_64 (avoid underflow for large negative x)
copy the fix from i386: return -1 instead of exp2l(x)-1 when x <= -65
This commit is contained in:
parent
e5937885de
commit
0234394621
@ -1 +1 @@
|
||||
# see floor.s
|
||||
# see floorl.s
|
||||
|
@ -4,8 +4,18 @@ expm1l:
|
||||
fldt 8(%rsp)
|
||||
fldl2e
|
||||
fmulp
|
||||
movl $0xc2820000,-4(%rsp)
|
||||
flds -4(%rsp)
|
||||
fucomp %st(1)
|
||||
fnstsw %ax
|
||||
sahf
|
||||
fld1
|
||||
fld %st(1)
|
||||
jb 1f
|
||||
# x*log2e <= -65, return -1 without underflow
|
||||
fstp %st(1)
|
||||
fchs
|
||||
ret
|
||||
1: fld %st(1)
|
||||
fabs
|
||||
fucom %st(1)
|
||||
fnstsw %ax
|
||||
|
@ -1 +1 @@
|
||||
# see floor.s
|
||||
# see floorl.s
|
||||
|
Loading…
Reference in New Issue
Block a user