diff options
Diffstat (limited to 'sysdeps/i386/fpu/s_truncl.S')
-rw-r--r-- | sysdeps/i386/fpu/s_truncl.S | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/sysdeps/i386/fpu/s_truncl.S b/sysdeps/i386/fpu/s_truncl.S index f92b474d49..f5ba372976 100644 --- a/sysdeps/i386/fpu/s_truncl.S +++ b/sysdeps/i386/fpu/s_truncl.S @@ -21,17 +21,20 @@ ENTRY(__truncl) fldt 4(%esp) - subl $8, %esp - cfi_adjust_cfa_offset (8) - fstcw 4(%esp) + subl $32, %esp + cfi_adjust_cfa_offset (32) + fnstenv 4(%esp) movl $0xc00, %edx orl 4(%esp), %edx movl %edx, (%esp) fldcw (%esp) frndint - fldcw 4(%esp) - addl $8, %esp - cfi_adjust_cfa_offset (-8) + fnstsw + andl $0x1, %eax + orl %eax, 8(%esp) + fldenv 4(%esp) + addl $32, %esp + cfi_adjust_cfa_offset (-32) ret END(__truncl) weak_alias (__truncl, truncl) |