projects
/
musl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix i386 fegetround and make fesetround faster
[musl]
/
src
/
fenv
/
i386
/
fenv.s
diff --git
a/src/fenv/i386/fenv.s
b/src/fenv/i386/fenv.s
index
34101d5
..
ee2eae6
100644
(file)
--- a/
src/fenv/i386/fenv.s
+++ b/
src/fenv/i386/fenv.s
@@
-8,6
+8,7
@@
ret
.global feclearexcept
ret
.global feclearexcept
+.type feclearexcept,@function
feclearexcept:
xor %eax,%eax
mov 4(%esp),%ecx
feclearexcept:
xor %eax,%eax
mov 4(%esp),%ecx
@@
-17,6
+18,7
@@
feclearexcept:
ret
.global feraiseexcept
ret
.global feraiseexcept
+.type feraiseexcept,@function
feraiseexcept:
xor %eax,%eax
mov 4(%esp),%edx
feraiseexcept:
xor %eax,%eax
mov 4(%esp),%edx
@@
-26,27
+28,30
@@
feraiseexcept:
ret
.global fesetround
ret
.global fesetround
+.type fesetround,@function
fesetround:
mov 4(%esp),%ecx
xor %eax,%eax
fesetround:
mov 4(%esp),%ecx
xor %eax,%eax
- sub $
32
,%esp
- fnst
env
(%esp)
+ sub $
4
,%esp
+ fnst
cw
(%esp)
andb $0xf3,1(%esp)
andb $0xf3,1(%esp)
- or %
e
cx,(%esp)
- fld
env
(%esp)
- add $
32
,%esp
+ or %cx,(%esp)
+ fld
cw
(%esp)
+ add $
4
,%esp
ret
.global fegetround
ret
.global fegetround
+.type fegetround,@function
fegetround:
fegetround:
- sub $
28
,%esp
- fnst
env
(%esp)
- mov
4(%esp),%e
ax
- add $
28
,%esp
- and $0xc
,%ah
+ sub $
4
,%esp
+ fnst
cw
(%esp)
+ mov
(%esp),%
ax
+ add $
4
,%esp
+ and $0xc
00,%eax
ret
.global fegetenv
ret
.global fegetenv
+.type fegetenv,@function
fegetenv:
mov 4(%esp),%ecx
xor %eax,%eax
fegetenv:
mov 4(%esp),%ecx
xor %eax,%eax
@@
-54,6
+59,7
@@
fegetenv:
ret
.global fesetenv
ret
.global fesetenv
+.type fesetenv,@function
fesetenv:
mov 4(%esp),%ecx
xor %eax,%eax
fesetenv:
mov 4(%esp),%ecx
xor %eax,%eax
@@
-73,6
+79,7
@@
fesetenv:
ret
.global fetestexcept
ret
.global fetestexcept
+.type fetestexcept,@function
fetestexcept:
mov 4(%esp),%ecx
fnstsw %ax
fetestexcept:
mov 4(%esp),%ecx
fnstsw %ax