projects
/
musl
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
d5e576c
)
fix x86_64 fe[gs]etround, analogous to nsz's x86 changes
author
Rich Felker
<dalias@aerifal.cx>
Sat, 17 Mar 2012 22:02:20 +0000
(18:02 -0400)
committer
Rich Felker
<dalias@aerifal.cx>
Sat, 17 Mar 2012 22:02:20 +0000
(18:02 -0400)
src/fenv/x86_64/fenv.s
patch
|
blob
|
history
diff --git
a/src/fenv/x86_64/fenv.s
b/src/fenv/x86_64/fenv.s
index
8226b52
..
11aa3da
100644
(file)
--- a/
src/fenv/x86_64/fenv.s
+++ b/
src/fenv/x86_64/fenv.s
@@
-32,18
+32,19
@@
feraiseexcept:
.global fesetround
.type fesetround,@function
fesetround:
.global fesetround
.type fesetround,@function
fesetround:
+ push %rax
xor %eax,%eax
xor %eax,%eax
- sub $32,%rsp
- fnst
env
(%rsp)
+ mov %edi,%ecx
+ fnst
cw
(%rsp)
andb $0xf3,1(%rsp)
andb $0xf3,1(%rsp)
- or %
edi,
(%rsp)
- fld
env
(%rsp)
+ or %
ch,1
(%rsp)
+ fld
cw
(%rsp)
stmxcsr (%rsp)
stmxcsr (%rsp)
- shl $3,%
edi
+ shl $3,%
ch
andb $0x9f,1(%rsp)
andb $0x9f,1(%rsp)
- or %
edi,
(%rsp)
+ or %
ch,1
(%rsp)
ldmxcsr (%rsp)
ldmxcsr (%rsp)
- add $32,%rsp
+ pop %rcx
ret
.global fegetround
ret
.global fegetround
@@
-53,7
+54,7
@@
fegetround:
stmxcsr (%rsp)
pop %rax
shr $3,%eax
stmxcsr (%rsp)
pop %rax
shr $3,%eax
- and $0xc
,%ah
+ and $0xc
00,%eax
ret
.global fegetenv
ret
.global fegetenv