use type directives for fenv asm functions
[musl] / src / fenv / i386 / fenv.s
index 72d2ed7..8148a30 100644 (file)
@@ -8,6 +8,7 @@
        ret
 
 .global feclearexcept
+.type feclearexcept,@function
 feclearexcept: 
        xor %eax,%eax
        mov 4(%esp),%ecx
@@ -17,6 +18,7 @@ feclearexcept:
        ret
 
 .global feraiseexcept
+.type feraiseexcept,@function
 feraiseexcept: 
        xor %eax,%eax
        mov 4(%esp),%edx
@@ -26,13 +28,20 @@ feraiseexcept:
        ret
 
 .global fesetround
+.type fesetround,@function
 fesetround:
+       mov 4(%esp),%ecx
        xor %eax,%eax
-       mov $0xc00,%ecx
-       mov 4(%esp),%edx
-       jmp 2b
+       sub $32,%esp
+       fnstenv (%esp)
+       andb $0xf3,1(%esp)
+       or %ecx,(%esp)
+       fldenv (%esp)
+       add $32,%esp
+       ret
 
 .global fegetround
+.type fegetround,@function
 fegetround:
        sub $28,%esp
        fnstenv (%esp)
@@ -42,6 +51,7 @@ fegetround:
        ret
 
 .global fegetenv
+.type fegetenv,@function
 fegetenv:
        mov 4(%esp),%ecx
        xor %eax,%eax
@@ -49,6 +59,7 @@ fegetenv:
        ret
 
 .global fesetenv
+.type fesetenv,@function
 fesetenv:
        mov 4(%esp),%ecx
        xor %eax,%eax
@@ -68,6 +79,7 @@ fesetenv:
        ret
 
 .global fetestexcept
+.type fetestexcept,@function
 fetestexcept:
        mov 4(%esp),%ecx
        fnstsw %ax