diff --git a/src/fenv/i386/fenv.s b/src/fenv/i386/fenv.s index 8148a30d384286588f82df36927ea4fc8c8ad2e9..ee2eae6e464516ef7753ec3c27656495f7d015ce 100644 --- a/src/fenv/i386/fenv.s +++ b/src/fenv/i386/fenv.s @@ -32,22 +32,22 @@ feraiseexcept: fesetround: mov 4(%esp),%ecx xor %eax,%eax - sub $32,%esp - fnstenv (%esp) + sub $4,%esp + fnstcw (%esp) andb $0xf3,1(%esp) - or %ecx,(%esp) - fldenv (%esp) - add $32,%esp + or %cx,(%esp) + fldcw (%esp) + add $4,%esp ret .global fegetround .type fegetround,@function fegetround: - sub $28,%esp - fnstenv (%esp) - mov 4(%esp),%eax - add $28,%esp - and $0xc,%ah + sub $4,%esp + fnstcw (%esp) + mov (%esp),%ax + add $4,%esp + and $0xc00,%eax ret .global fegetenv