summaryrefslogtreecommitdiff
path: root/src/math/i386/log1pf.s
diff options
context:
space:
mode:
Diffstat (limited to 'src/math/i386/log1pf.s')
-rw-r--r--src/math/i386/log1pf.s10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/math/i386/log1pf.s b/src/math/i386/log1pf.s
index 2680a8a6..c0bcd30f 100644
--- a/src/math/i386/log1pf.s
+++ b/src/math/i386/log1pf.s
@@ -7,9 +7,19 @@ log1pf:
flds 4(%esp)
cmp $0x3e940000,%eax
ja 1f
+ cmp $0x00800000,%eax
+ jb 2f
fyl2xp1
ret
1: fld1
faddp
fyl2x
ret
+ # subnormal x, return x with underflow
+2: fnstsw %ax
+ and $16,%ax
+ jnz 1f
+ fxch
+ fmul %st(1)
+ fstps 4(%esp)
+1: ret