diff options
Diffstat (limited to 'sysdeps/x86_64')
-rw-r--r-- | sysdeps/x86_64/fpu/s_truncl.S | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/sysdeps/x86_64/fpu/s_truncl.S b/sysdeps/x86_64/fpu/s_truncl.S index c37cf00241..0b46efec53 100644 --- a/sysdeps/x86_64/fpu/s_truncl.S +++ b/sysdeps/x86_64/fpu/s_truncl.S @@ -21,13 +21,16 @@ ENTRY(__truncl) fldt 8(%rsp) - fstcw -4(%rsp) + fnstenv -28(%rsp) movl $0xc00, %edx - orl -4(%rsp), %edx - movl %edx, -8(%rsp) - fldcw -8(%rsp) + orl -28(%rsp), %edx + movl %edx, -32(%rsp) + fldcw -32(%rsp) frndint - fldcw -4(%rsp) + fnstsw + andl $0x1, %eax + orl %eax, -24(%rsp) + fldenv -28(%rsp) ret END(__truncl) weak_alias (__truncl, truncl) |