fix fesetround - it was writing to status word instead of control word
authorRich Felker <dalias@aerifal.cx>
Mon, 13 Jun 2011 17:37:16 +0000 (13:37 -0400)
committerRich Felker <dalias@aerifal.cx>
Mon, 13 Jun 2011 17:37:16 +0000 (13:37 -0400)
src/fenv/i386/fenv.s

index 72d2ed7..34101d5 100644 (file)
@@ -27,10 +27,15 @@ feraiseexcept:
 
 .global fesetround
 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
 fegetround: