diff options
author | Siddhesh Poyarekar <siddhesh@redhat.com> | 2013-01-18 14:16:25 +0530 |
---|---|---|
committer | Siddhesh Poyarekar <siddhesh@redhat.com> | 2013-01-18 14:16:25 +0530 |
commit | 0b57daebab36f59af1d2a02616ee636a7b13ba12 (patch) | |
tree | cbc2cf9636fc92436d62ce5a99179715615d8a19 | |
parent | caa99d06e7f1403887294442af520b0f8c6f3de0 (diff) | |
download | glibc-0b57daebab36f59af1d2a02616ee636a7b13ba12.tar.gz glibc-0b57daebab36f59af1d2a02616ee636a7b13ba12.tar.xz glibc-0b57daebab36f59af1d2a02616ee636a7b13ba12.zip |
Fix application of the exception mask
Fixes BZ #14496.
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | sysdeps/i386/fpu/fenv_private.h | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog index 52a95426d1..647ce1d496 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 03f4c97a9c..1f8336cf96 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. */ |