aboutsummaryrefslogtreecommitdiff
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));
}