about summary refs log tree commit diff
path: root/src/math/i386/expm1.s
diff options
context:
space:
mode:
authornsz <nsz@port70.net>2012-03-19 08:01:21 +0100
committernsz <nsz@port70.net>2012-03-19 08:01:21 +0100
commit0627e58af8514967372a8ff703e7a86c2571acc2 (patch)
treef37eb7417f107ee34277eb58be20d129dfe8b790 /src/math/i386/expm1.s
parentdbdec9722ee604969dddf51e81f8c9e4a9ce064a (diff)
parent495a52ae7bb581aac2942d7cb095cca2ff53ca3c (diff)
downloadmusl-0627e58af8514967372a8ff703e7a86c2571acc2.tar.gz
musl-0627e58af8514967372a8ff703e7a86c2571acc2.tar.xz
musl-0627e58af8514967372a8ff703e7a86c2571acc2.zip
Merge branch 'master' of git://git.etalabs.net/musl
Diffstat (limited to 'src/math/i386/expm1.s')
-rw-r--r--src/math/i386/expm1.s13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/math/i386/expm1.s b/src/math/i386/expm1.s
index d6d511ef..bbb5d12e 100644
--- a/src/math/i386/expm1.s
+++ b/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