aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSiddhesh Poyarekar <siddhesh@redhat.com>2013-01-18 14:16:25 +0530
committerSiddhesh Poyarekar <siddhesh@redhat.com>2013-01-18 14:16:25 +0530
commit0b57daebab36f59af1d2a02616ee636a7b13ba12 (patch)
treecbc2cf9636fc92436d62ce5a99179715615d8a19
parentcaa99d06e7f1403887294442af520b0f8c6f3de0 (diff)
downloadglibc-0b57daebab36f59af1d2a02616ee636a7b13ba12.zip
glibc-0b57daebab36f59af1d2a02616ee636a7b13ba12.tar.gz
glibc-0b57daebab36f59af1d2a02616ee636a7b13ba12.tar.bz2
Fix application of the exception mask
Fixes BZ #14496.
-rw-r--r--ChangeLog4
-rw-r--r--sysdeps/i386/fpu/fenv_private.h2
2 files changed, 5 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 52a9542..647ce1d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
2013-01-18 Siddhesh Poyarekar <siddhesh@redhat.com>
+ [BZ #14496]
+ * sysdeps/i386/fpu/fenv_private.h (libc_feupdateenv_test_sse):
+ Fix application of SIMD FP exception mask.
+
* sysdeps/ieee754/dbl-64/mpa.h (__pow_mp): New function to get an
mp_no from a power of two.
* sysdeps/ieee754/dbl-64/mpexp.c (__mpexp): Remove
diff --git a/sysdeps/i386/fpu/fenv_private.h b/sysdeps/i386/fpu/fenv_private.h
index 03f4c97..1f8336c 100644
--- a/sysdeps/i386/fpu/fenv_private.h
+++ b/sysdeps/i386/fpu/fenv_private.h
@@ -176,7 +176,7 @@ libc_feupdateenv_test_sse (fenv_t *e, int ex)
/* Raise SIGFPE for any new exceptions since the hold. Expect that
the normal environment has all exceptions masked. */
- if (__builtin_expect ((old_mxcsr >> 7) & cur_ex, 0))
+ if (__glibc_unlikely (~(old_mxcsr >> 7) & cur_ex))
__feraiseexcept (cur_ex);
/* Test for exceptions raised since the hold. */