@@ -34,6 +34,15 @@ exp:
.type exp2,@function
exp2:
fldl 4(%esp)
+1: fxam
+ fnstsw %ax
+ sahf
+ jnp 1f
+ jnc 1f
+ fstps 4(%esp)
+ mov $0xfe,%al
+ and %al,7(%esp)
+ flds 4(%esp)
1: fld %st(0)
frndint
fxch %st(1)
@@ -14,12 +14,23 @@ expm1l:
.type expm1,@function
expm1:
1: fldl2e
fmulp
fld %st(0)
fldz
- fcompi
+ fcomp
jnz 1f
fstp %st(0)
f2xm1
@@ -0,0 +1,8 @@
+.global llrint
+.type llrint,@function
+llrint:
+ fldl 4(%esp)
+ fistpl 4(%esp)
+ mov 4(%esp),%eax
+ mov 8(%esp),%edx
+ ret
@@ -0,0 +1,9 @@
+.global llrintf
+.type llrintf,@function
+llrintf:
+ sub $8,%esp
+ flds 12(%esp)
+ fistpq (%esp)
+ pop %eax
+ pop %edx
+.global llrintl
+.type llrintl,@function
+llrintl:
+ fldt 4(%esp)
@@ -0,0 +1,7 @@
+.global log
+.type log,@function
+log:
+ fldln2
+ fyl2x
+.global log10
+.type log10,@function
+log10:
+ fldlg2
+.global log10f
+.type log10f,@function
+log10f:
+.global log10l
+.type log10l,@function
+log10l:
+.global logf
+.type logf,@function
+logf:
+.global logl
+.type logl,@function
+logl:
+.global lrint
+.type lrint,@function
+lrint:
+.global lrintf
+.type lrintf,@function
+lrintf:
+.global lrintl
+.type lrintl,@function
+lrintl: