summaryrefslogtreecommitdiffstats
path: root/libc-top-half/musl/src/math/i386/log1p.s
diff options
context:
space:
mode:
Diffstat (limited to 'libc-top-half/musl/src/math/i386/log1p.s')
-rw-r--r--libc-top-half/musl/src/math/i386/log1p.s25
1 files changed, 25 insertions, 0 deletions
diff --git a/libc-top-half/musl/src/math/i386/log1p.s b/libc-top-half/musl/src/math/i386/log1p.s
new file mode 100644
index 0000000..f3c95f8
--- /dev/null
+++ b/libc-top-half/musl/src/math/i386/log1p.s
@@ -0,0 +1,25 @@
+.global log1p
+.type log1p,@function
+log1p:
+ mov 8(%esp),%eax
+ fldln2
+ and $0x7fffffff,%eax
+ fldl 4(%esp)
+ cmp $0x3fd28f00,%eax
+ ja 1f
+ cmp $0x00100000,%eax
+ jb 2f
+ fyl2xp1
+ fstpl 4(%esp)
+ fldl 4(%esp)
+ ret
+1: fld1
+ faddp
+ fyl2x
+ fstpl 4(%esp)
+ fldl 4(%esp)
+ ret
+ # subnormal x, return x with underflow
+2: fsts 4(%esp)
+ fstp %st(1)
+ ret