about summary refs log tree commit diff
path: root/sysdeps/libm-i387
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/libm-i387')
-rw-r--r--sysdeps/libm-i387/e_pow.S2
-rw-r--r--sysdeps/libm-i387/e_powf.S2
-rw-r--r--sysdeps/libm-i387/s_expm1.S8
-rw-r--r--sysdeps/libm-i387/s_expm1f.S8
-rw-r--r--sysdeps/libm-i387/s_expm1l.S8
5 files changed, 17 insertions, 11 deletions
diff --git a/sysdeps/libm-i387/e_pow.S b/sysdeps/libm-i387/e_pow.S
index ab6b454339..e665326438 100644
--- a/sysdeps/libm-i387/e_pow.S
+++ b/sysdeps/libm-i387/e_pow.S
@@ -308,7 +308,7 @@ ENTRY(__ieee754_pow)
 	andb	$1, %al
 	jz	24f		// jump if not odd
 	cmpl	$0xffe00000, %edx
-	jbe	24f		// does not fit in mantissa bits
+	jae	24f		// does not fit in mantissa bits
 	// It's an odd integer.
 	fldl	MO(mzero)
 	ret
diff --git a/sysdeps/libm-i387/e_powf.S b/sysdeps/libm-i387/e_powf.S
index 48316464ef..102cd4e3af 100644
--- a/sysdeps/libm-i387/e_powf.S
+++ b/sysdeps/libm-i387/e_powf.S
@@ -300,7 +300,7 @@ ENTRY(__ieee754_powf)
 	testb	$1, %dl
 	jz	24f		// jump if not odd
 	cmpl	$0xff000000, %edx
-	jbe	24f		// does not fit in mantissa bits
+	jae	24f		// does not fit in mantissa bits
 	// It's an odd integer.
 	fldl	MO(mzero)
 	ret
diff --git a/sysdeps/libm-i387/s_expm1.S b/sysdeps/libm-i387/s_expm1.S
index e1b198d604..92beaf0776 100644
--- a/sysdeps/libm-i387/s_expm1.S
+++ b/sysdeps/libm-i387/s_expm1.S
@@ -51,15 +51,17 @@ ENTRY(__expm1)
 	fldl	4(%esp)		// x
 	fxam			// Is NaN or +-Inf?
 	fstsw	%ax
+	movb	$0x45, %ch
+	andb	%ah, %ch
+	cmpb	$0x40, %ch
+	je	3f		// If +-0, jump.
 #ifdef	PIC
 	call	1f
 1:	popl	%edx
 	addl	$_GLOBAL_OFFSET_TABLE_+[.-1b], %edx
 #endif
-	movb	$0x45, %ch
-	andb	%ah, %ch
 	cmpb	$0x05, %ch
-	je	2f		// Is +-Inf, jump.
+	je	2f		// If +-Inf, jump.
 
 	fldt	MO(l2e)		// log2(e) : x
 	fmulp			// log2(e)*x
diff --git a/sysdeps/libm-i387/s_expm1f.S b/sysdeps/libm-i387/s_expm1f.S
index 8626fee45d..45a60fe010 100644
--- a/sysdeps/libm-i387/s_expm1f.S
+++ b/sysdeps/libm-i387/s_expm1f.S
@@ -51,15 +51,17 @@ ENTRY(__expm1f)
 	flds	4(%esp)		// x
 	fxam			// Is NaN or +-Inf?
 	fstsw	%ax
+	movb	$0x45, %ch
+	andb	%ah, %ch
+	cmpb	$0x40, %ch
+	je	3f		// If +-0, jump.
 #ifdef	PIC
 	call	1f
 1:	popl	%edx
 	addl	$_GLOBAL_OFFSET_TABLE_+[.-1b], %edx
 #endif
-	movb	$0x45, %ch
-	andb	%ah, %ch
 	cmpb	$0x05, %ch
-	je	2f		// Is +-Inf, jump.
+	je	2f		// If +-Inf, jump.
 
 	fldt	MO(l2e)		// log2(e) : x
 	fmulp			// log2(e)*x
diff --git a/sysdeps/libm-i387/s_expm1l.S b/sysdeps/libm-i387/s_expm1l.S
index 46290ca4a9..13fa698cc7 100644
--- a/sysdeps/libm-i387/s_expm1l.S
+++ b/sysdeps/libm-i387/s_expm1l.S
@@ -51,15 +51,17 @@ ENTRY(__expm1l)
 	fldt	4(%esp)		// x
 	fxam			// Is NaN or +-Inf?
 	fstsw	%ax
+	movb	$0x45, %ch
+	andb	%ah, %ch
+	cmpb	$0x40, %ch
+	je	3f		// If +-0, jump.
 #ifdef	PIC
 	call	1f
 1:	popl	%edx
 	addl	$_GLOBAL_OFFSET_TABLE_+[.-1b], %edx
 #endif
-	movb	$0x45, %ch
-	andb	%ah, %ch
 	cmpb	$0x05, %ch
-	je	2f		// Is +-Inf, jump.
+	je	2f		// If +-Inf, jump.
 
 	fldt	MO(l2e)		// log2(e) : x
 	fmulp			// log2(e)*x