summaryrefslogtreecommitdiff
path: root/src/math/i386/log1p.s
diff options
context:
space:
mode:
Diffstat (limited to 'src/math/i386/log1p.s')
-rw-r--r--src/math/i386/log1p.s9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/math/i386/log1p.s b/src/math/i386/log1p.s
index 9971e53c..6b6929c7 100644
--- a/src/math/i386/log1p.s
+++ b/src/math/i386/log1p.s
@@ -7,9 +7,18 @@ log1p:
fldl 4(%esp)
cmp $0x3fd28f00,%eax
ja 1f
+ cmp $0x00100000,%eax
+ jb 2f
fyl2xp1
ret
1: fld1
faddp
fyl2x
ret
+ # subnormal x, return x with underflow
+2: fnstsw %ax
+ and $16,%ax
+ jnz 1f
+ fsts 4(%esp)
+ fstp %st(1)
+1: ret