|
@@ -6,9 +6,7 @@ expm1l:
|
|
fmulp
|
|
fmulp
|
|
movl $0xc2820000,-4(%esp)
|
|
movl $0xc2820000,-4(%esp)
|
|
flds -4(%esp)
|
|
flds -4(%esp)
|
|
- fucomp %st(1)
|
|
|
|
- fnstsw %ax
|
|
|
|
- sahf
|
|
|
|
|
|
+ fucomip %st(1)
|
|
fld1
|
|
fld1
|
|
jb 1f
|
|
jb 1f
|
|
# x*log2e <= -65, return -1 without underflow
|
|
# x*log2e <= -65, return -1 without underflow
|
|
@@ -17,11 +15,8 @@ expm1l:
|
|
ret
|
|
ret
|
|
1: fld %st(1)
|
|
1: fld %st(1)
|
|
fabs
|
|
fabs
|
|
- fucom %st(1)
|
|
|
|
- fnstsw %ax
|
|
|
|
|
|
+ fucomip %st(1)
|
|
fstp %st(0)
|
|
fstp %st(0)
|
|
- fstp %st(0)
|
|
|
|
- sahf
|
|
|
|
ja 1f
|
|
ja 1f
|
|
f2xm1
|
|
f2xm1
|
|
ret
|
|
ret
|
|
@@ -53,9 +48,7 @@ exp2l:
|
|
fld %st(1)
|
|
fld %st(1)
|
|
fsub %st(1)
|
|
fsub %st(1)
|
|
faddp
|
|
faddp
|
|
- fucomp %st(1)
|
|
|
|
- fnstsw
|
|
|
|
- sahf
|
|
|
|
|
|
+ fucomip %st(1)
|
|
je 2f # x - 0x1p63 + 0x1p63 == x
|
|
je 2f # x - 0x1p63 + 0x1p63 == x
|
|
movl $1,(%esp)
|
|
movl $1,(%esp)
|
|
flds (%esp) # 0x1p-149
|
|
flds (%esp) # 0x1p-149
|