summary refs log tree commit diff
path: root/sysdeps/libm-i387/s_cexpl.S
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/libm-i387/s_cexpl.S')
-rw-r--r--sysdeps/libm-i387/s_cexpl.S13
1 files changed, 8 insertions, 5 deletions
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.  */