diff options
Diffstat (limited to 'sysdeps/i386/fpu/s_nearbyintl.S')
-rw-r--r-- | sysdeps/i386/fpu/s_nearbyintl.S | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/sysdeps/i386/fpu/s_nearbyintl.S b/sysdeps/i386/fpu/s_nearbyintl.S index 819af63a8d..b260ab5914 100644 --- a/sysdeps/i386/fpu/s_nearbyintl.S +++ b/sysdeps/i386/fpu/s_nearbyintl.S @@ -8,22 +8,20 @@ ENTRY(__nearbyintl) fldt 4(%esp) - pushl %eax - cfi_adjust_cfa_offset (4) - pushl %ecx - cfi_adjust_cfa_offset (4) - fnstcw (%esp) - movl (%esp), %eax + subl $32, %esp + cfi_adjust_cfa_offset (32) + fnstenv 4(%esp) + movl 4(%esp), %eax orl $0x20, %eax - movl %eax, 4(%esp) - fldcw 4(%esp) - frndint - fclex + movl %eax, (%esp) fldcw (%esp) - popl %ecx - cfi_adjust_cfa_offset (-4) - popl %eax - cfi_adjust_cfa_offset (-4) + frndint + fnstsw + andl $0x1, %eax + orl %eax, 8(%esp) + fldenv 4(%esp) + addl $32, %esp + cfi_adjust_cfa_offset (-32) ret END (__nearbyintl) weak_alias (__nearbyintl, nearbyintl) |