diff options
Diffstat (limited to 'sysdeps/i386/fpu')
-rw-r--r-- | sysdeps/i386/fpu/e_scalb.S | 4 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_scalbf.S | 4 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_scalbl.S | 4 |
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) |