summaryrefslogtreecommitdiff
path: root/sysdeps/i386/fpu
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/i386/fpu')
-rw-r--r--sysdeps/i386/fpu/e_scalb.S4
-rw-r--r--sysdeps/i386/fpu/e_scalbf.S4
-rw-r--r--sysdeps/i386/fpu/e_scalbl.S4
3 files changed, 9 insertions, 3 deletions
diff --git a/sysdeps/i386/fpu/e_scalb.S b/sysdeps/i386/fpu/e_scalb.S
index 20d489efde..6a01aa64d6 100644
--- a/sysdeps/i386/fpu/e_scalb.S
+++ b/sysdeps/i386/fpu/e_scalb.S
@@ -65,8 +65,10 @@ ENTRY(__ieee754_scalb)
fstp %st
fstp %st
andl $0x80000000, %edx
+ andl $0x0228, %eax
+ cmpl $0x0028, %eax
+ je 4f
andl $8, %eax
- jnz 4f
shrl $27, %edx
addl %edx, %eax
fldl MOX(zero_nan, %eax, 1)
diff --git a/sysdeps/i386/fpu/e_scalbf.S b/sysdeps/i386/fpu/e_scalbf.S
index b6dd02122a..12b25159ac 100644
--- a/sysdeps/i386/fpu/e_scalbf.S
+++ b/sysdeps/i386/fpu/e_scalbf.S
@@ -67,8 +67,10 @@ ENTRY(__ieee754_scalbf)
fstp %st
fstp %st
andl $0x80000000, %edx
+ andl $0x0228, %eax
+ cmpl $0x0028, %eax
+ je 4f
andl $8, %eax
- jnz 4f
shrl $27, %edx
addl %edx, %eax
fldl MOX(zero_nan, %eax, 1)
diff --git a/sysdeps/i386/fpu/e_scalbl.S b/sysdeps/i386/fpu/e_scalbl.S
index 83f17b233b..d10b22ea83 100644
--- a/sysdeps/i386/fpu/e_scalbl.S
+++ b/sysdeps/i386/fpu/e_scalbl.S
@@ -67,8 +67,10 @@ ENTRY(__ieee754_scalbl)
fstp %st
fstp %st
andl $0x8000, %edx
+ andl $0x0228, %eax
+ cmpl $0x0028, %eax
+ je 4f
andl $8, %eax
- jnz 4f
shrl $11, %edx
addl %edx, %eax
fldl MOX(zero_nan, %eax, 1)