about summary refs log tree commit diff
path: root/sysdeps/i386
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/i386')
-rw-r--r--sysdeps/i386/fpu/fedisblxcpt.c2
-rw-r--r--sysdeps/i386/fpu/feenablxcpt.c2
-rw-r--r--sysdeps/i386/fpu/feholdexcpt.c2
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));
     }