diff options
Diffstat (limited to 'sysdeps/i386/fpu')
-rw-r--r-- | sysdeps/i386/fpu/fedisblxcpt.c | 2 | ||||
-rw-r--r-- | sysdeps/i386/fpu/feenablxcpt.c | 2 | ||||
-rw-r--r-- | sysdeps/i386/fpu/feholdexcpt.c | 2 |
3 files changed, 3 insertions, 3 deletions
diff --git a/sysdeps/i386/fpu/fedisblxcpt.c b/sysdeps/i386/fpu/fedisblxcpt.c index 754d20d4c8..6e337d388a 100644 --- a/sysdeps/i386/fpu/fedisblxcpt.c +++ b/sysdeps/i386/fpu/fedisblxcpt.c @@ -46,7 +46,7 @@ fedisableexcept (int excepts) /* Get the current control word. */ __asm__ ("stmxcsr %0" : "=m" (*&xnew_exc)); - xnew_exc |= excepts; + xnew_exc |= excepts << 7; __asm__ ("ldmxcsr %0" : : "m" (*&xnew_exc)); } diff --git a/sysdeps/i386/fpu/feenablxcpt.c b/sysdeps/i386/fpu/feenablxcpt.c index 65a0a2944c..0f841caad9 100644 --- a/sysdeps/i386/fpu/feenablxcpt.c +++ b/sysdeps/i386/fpu/feenablxcpt.c @@ -46,7 +46,7 @@ feenableexcept (int excepts) /* Get the current control word. */ __asm__ ("ldmxcsr %0" : "=m" (*&xnew_exc)); - xnew_exc &= ~excepts; + xnew_exc &= ~(excepts << 7); __asm__ ("stmxcsr %0" : : "m" (*&xnew_exc)); } diff --git a/sysdeps/i386/fpu/feholdexcpt.c b/sysdeps/i386/fpu/feholdexcpt.c index bdbf9107e6..5d622ada15 100644 --- a/sysdeps/i386/fpu/feholdexcpt.c +++ b/sysdeps/i386/fpu/feholdexcpt.c @@ -44,7 +44,7 @@ feholdexcept (fenv_t *envp) __asm__ ("stmxcsr %0" : "=m" (*&xwork)); /* Set all exceptions to non-stop. */ - work |= 0x1f80; + xwork |= 0x1f80; __asm__ ("ldmxcsr %0" : : "m" (*&xwork)); } |