Просмотр исходного кода

Merge branch 'master' of git://git.etalabs.net/musl

nsz 13 лет назад
Родитель
Сommit
0627e58af8

+ 9 - 0
src/math/i386/exp.s

@@ -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)

+ 12 - 1
src/math/i386/expm1.s

@@ -14,12 +14,23 @@ expm1l:
 .type expm1,@function
 expm1:
 	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:	fldl2e
 	fmulp
 	fld %st(0)
 	frndint
 	fldz
-	fcompi
+	fcomp
+	fnstsw %ax
+	sahf
 	jnz 1f
 	fstp %st(0)
 	f2xm1

+ 8 - 0
src/math/i386/llrint.s

@@ -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

+ 9 - 0
src/math/i386/llrintf.s

@@ -0,0 +1,9 @@
+.global llrintf
+.type llrintf,@function
+llrintf:
+	sub $8,%esp
+	flds 12(%esp)
+	fistpq (%esp)
+	pop %eax
+	pop %edx
+	ret

+ 8 - 0
src/math/i386/llrintl.s

@@ -0,0 +1,8 @@
+.global llrintl
+.type llrintl,@function
+llrintl:
+	fldt 4(%esp)
+	fistpl 4(%esp)
+	mov 4(%esp),%eax
+	mov 8(%esp),%edx
+	ret

+ 7 - 0
src/math/i386/log.s

@@ -0,0 +1,7 @@
+.global log
+.type log,@function
+log:
+	fldln2
+	fldl 4(%esp)
+	fyl2x
+	ret

+ 7 - 0
src/math/i386/log10.s

@@ -0,0 +1,7 @@
+.global log10
+.type log10,@function
+log10:
+	fldlg2
+	fldl 4(%esp)
+	fyl2x
+	ret

+ 7 - 0
src/math/i386/log10f.s

@@ -0,0 +1,7 @@
+.global log10f
+.type log10f,@function
+log10f:
+	fldlg2
+	flds 4(%esp)
+	fyl2x
+	ret

+ 7 - 0
src/math/i386/log10l.s

@@ -0,0 +1,7 @@
+.global log10l
+.type log10l,@function
+log10l:
+	fldlg2
+	fldt 4(%esp)
+	fyl2x
+	ret

+ 7 - 0
src/math/i386/logf.s

@@ -0,0 +1,7 @@
+.global logf
+.type logf,@function
+logf:
+	fldln2
+	flds 4(%esp)
+	fyl2x
+	ret

+ 7 - 0
src/math/i386/logl.s

@@ -0,0 +1,7 @@
+.global logl
+.type logl,@function
+logl:
+	fldln2
+	fldt 4(%esp)
+	fyl2x
+	ret

+ 7 - 0
src/math/i386/lrint.s

@@ -0,0 +1,7 @@
+.global lrint
+.type lrint,@function
+lrint:
+	fldl 4(%esp)
+	fistpl 4(%esp)
+	mov 4(%esp),%eax
+	ret

+ 7 - 0
src/math/i386/lrintf.s

@@ -0,0 +1,7 @@
+.global lrintf
+.type lrintf,@function
+lrintf:
+	flds 4(%esp)
+	fistpl 4(%esp)
+	mov 4(%esp),%eax
+	ret

+ 7 - 0
src/math/i386/lrintl.s

@@ -0,0 +1,7 @@
+.global lrintl
+.type lrintl,@function
+lrintl:
+	fldt 4(%esp)
+	fistpl 4(%esp)
+	mov 4(%esp),%eax
+	ret