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_remainder.S2
-rw-r--r--sysdeps/libm-i387/e_remainderf.S2
-rw-r--r--sysdeps/libm-i387/e_remainderl.S1
-rw-r--r--sysdeps/libm-i387/s_cexp.S3
-rw-r--r--sysdeps/libm-i387/s_cexpl.S13
5 files changed, 13 insertions, 8 deletions
diff --git a/sysdeps/libm-i387/e_remainder.S b/sysdeps/libm-i387/e_remainder.S
index 06cdddc9d1..2f43cb894c 100644
--- a/sysdeps/libm-i387/e_remainder.S
+++ b/sysdeps/libm-i387/e_remainder.S
@@ -14,6 +14,6 @@ ENTRY(__ieee754_remainder)
 	fstsw	%ax
 	sahf
 	jp	1b
-	fstpl	%st(1)
+	fstp	%st(1)
 	ret
 END (__ieee754_remainder)
diff --git a/sysdeps/libm-i387/e_remainderf.S b/sysdeps/libm-i387/e_remainderf.S
index d313a55382..79f821993b 100644
--- a/sysdeps/libm-i387/e_remainderf.S
+++ b/sysdeps/libm-i387/e_remainderf.S
@@ -14,6 +14,6 @@ ENTRY(__ieee754_remainderf)
 	fstsw	%ax
 	sahf
 	jp	1b
-	fstpl	%st(1)
+	fstp	%st(1)
 	ret
 END (__ieee754_remainderf)
diff --git a/sysdeps/libm-i387/e_remainderl.S b/sysdeps/libm-i387/e_remainderl.S
index 90a8da7633..5f50b626a2 100644
--- a/sysdeps/libm-i387/e_remainderl.S
+++ b/sysdeps/libm-i387/e_remainderl.S
@@ -16,5 +16,6 @@ ENTRY(__ieee754_remainderl)
 	fstsw	%ax
 	sahf
 	jp	1b
+	fstp	%st(1)
 	ret
 END (__ieee754_remainderl)
diff --git a/sysdeps/libm-i387/s_cexp.S b/sysdeps/libm-i387/s_cexp.S
index 5630d3cb65..61158d9540 100644
--- a/sysdeps/libm-i387/s_cexp.S
+++ b/sysdeps/libm-i387/s_cexp.S
@@ -237,8 +237,9 @@ ENTRY(__cexp)
 
 	fldl	MOX(huge_nan_null_null,%edx,1)
 	fldl	MOX(huge_nan_null_null+8,%edx,1)
-	fstpl	8(%eax)
+	fxch
 	fstpl	(%eax)
+	fstpl	8(%eax)
 	ret	$4
 
 	/* The real part is NaN.  */
diff --git a/sysdeps/libm-i387/s_cexpl.S b/sysdeps/libm-i387/s_cexpl.S
index 11c05c52e6..203a7ee779 100644
--- a/sysdeps/libm-i387/s_cexpl.S
+++ b/sysdeps/libm-i387/s_cexpl.S
@@ -161,8 +161,9 @@ ENTRY(__cexpl)
 	jnz	5f
 	fldl	MOX(huge_nan_null_null,%edx,1)
 	movl	4(%esp), %edx		/* Pointer to memory for result.  */
-	fstl	8(%edx)
-	fstpl	(%edx)
+	fld	%st
+	fstpt	12(%edx)
+	fstpt	(%edx)
 	ftst
 	fnstsw
 	shll	$7, %eax
@@ -188,8 +189,9 @@ ENTRY(__cexpl)
 	fsincos
 	fldl	MOX(huge_nan_null_null,%edx,1)
 	movl	4(%esp), %edx		/* Pointer to memory for result.  */
-	fstl	8(%edx)
-	fstpl	(%edx)
+	fld	%st
+	fstpt	12(%edx)
+	fstpt	(%edx)
 	ftst
 	fnstsw
 	shll	$7, %eax
@@ -237,8 +239,9 @@ ENTRY(__cexpl)
 
 	fldl	MOX(huge_nan_null_null,%edx,1)
 	fldl	MOX(huge_nan_null_null+8,%edx,1)
-	fstpt	12(%eax)
+	fxch
 	fstpt	(%eax)
+	fstpt	12(%eax)
 	ret	$4
 
 	/* The real part is NaN.  */