summaryrefslogtreecommitdiff
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. */