diff options
Diffstat (limited to 'sysdeps/x86_64/fpu')
-rw-r--r-- | sysdeps/x86_64/fpu/e_expl.S | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/sysdeps/x86_64/fpu/e_expl.S b/sysdeps/x86_64/fpu/e_expl.S index 36d30c26d3..338527b3de 100644 --- a/sysdeps/x86_64/fpu/e_expl.S +++ b/sysdeps/x86_64/fpu/e_expl.S @@ -109,8 +109,14 @@ ENTRY(IEEE754_EXPL) movzwl 8+8(%rsp), %eax andl $0x7fff, %eax cmpl $0x400d, %eax - jle 3f - /* Overflow, underflow or infinity or NaN as argument. */ + jg 5f + cmpl $0x3fbc, %eax + jge 3f + /* Argument's exponent below -67, result rounds to 1. */ + fld1 + faddp + jmp 2f +5: /* Overflow, underflow or infinity or NaN as argument. */ fstsw %ax movb $0x45, %dh andb %ah, %dh |