提交 9cb6878e 编写于 作者: R Rich Felker

fix x86_64 fe[gs]etround, analogous to nsz's x86 changes

上级 d5e576c7
......@@ -32,18 +32,19 @@ feraiseexcept:
.global fesetround
.type fesetround,@function
fesetround:
push %rax
xor %eax,%eax
sub $32,%rsp
fnstenv (%rsp)
mov %edi,%ecx
fnstcw (%rsp)
andb $0xf3,1(%rsp)
or %edi,(%rsp)
fldenv (%rsp)
or %ch,1(%rsp)
fldcw (%rsp)
stmxcsr (%rsp)
shl $3,%edi
shl $3,%ch
andb $0x9f,1(%rsp)
or %edi,(%rsp)
or %ch,1(%rsp)
ldmxcsr (%rsp)
add $32,%rsp
pop %rcx
ret
.global fegetround
......@@ -53,7 +54,7 @@ fegetround:
stmxcsr (%rsp)
pop %rax
shr $3,%eax
and $0xc,%ah
and $0xc00,%eax
ret
.global fegetenv
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册