fmulp
movl $0xc2820000,-4(%esp)
flds -4(%esp)
- fucomp %st(1)
- fnstsw %ax
- sahf
+ fucomip %st(1),%st
fld1
jb 1f
# x*log2e <= -65, return -1 without underflow
ret
1: fld %st(1)
fabs
- fucom %st(1)
- fnstsw %ax
+ fucomip %st(1),%st
fstp %st(0)
- fstp %st(0)
- sahf
ja 1f
f2xm1
ret
fld %st(1)
fsub %st(1)
faddp
- fucomp %st(1)
- fnstsw
- sahf
+ fucomip %st(1),%st
je 2f # x - 0x1p63 + 0x1p63 == x
movl $1,(%esp)
flds (%esp) # 0x1p-149