| commit 4c60cb0c8329dd498e9cce3735e5ee6212ad28f4 |
| Author: Siddhesh Poyarekar <siddhesh@redhat.com> |
| Date: Wed Jun 5 13:56:19 2013 +0530 |
| |
| Skip modifying exception mask and flags in SET_RESTORE_ROUND_53BIT |
| |
| We only need to set/restore rounding mode to ensure correct |
| computation for non-default rounding modes. |
| |
| diff --git glibc-2.17-c758a686/sysdeps/generic/math_private.h glibc-2.17-c758a686/sysdeps/generic/math_private.h |
| index 9d6ecad..e98360d 100644 |
| |
| |
| @@ -446,8 +446,8 @@ default_libc_feholdexcept_setround (fenv_t *e, int r) |
| # define libc_feholdexcept_setroundl default_libc_feholdexcept_setround |
| #endif |
| |
| -#ifndef libc_feholdexcept_setround_53bit |
| -# define libc_feholdexcept_setround_53bit libc_feholdexcept_setround |
| +#ifndef libc_feholdsetround_53bit |
| +# define libc_feholdsetround_53bit libc_feholdsetround |
| #endif |
| |
| #ifndef libc_fetestexcept |
| @@ -492,8 +492,8 @@ default_libc_feupdateenv (fenv_t *e) |
| # define libc_feupdateenvl default_libc_feupdateenv |
| #endif |
| |
| -#ifndef libc_feupdateenv_53bit |
| -# define libc_feupdateenv_53bit libc_feupdateenv |
| +#ifndef libc_feresetround_53bit |
| +# define libc_feresetround_53bit libc_feresetround |
| #endif |
| |
| static __always_inline int |
| @@ -580,8 +580,8 @@ default_libc_feupdateenv_test (fenv_t *e, int ex) |
| |
| /* Like SET_RESTORE_ROUND, but also set rounding precision to 53 bits. */ |
| #define SET_RESTORE_ROUND_53BIT(RM) \ |
| - fenv_t __libc_save_rm __attribute__((cleanup(libc_feupdateenv_53bit))); \ |
| - libc_feholdexcept_setround_53bit (&__libc_save_rm, (RM)) |
| + fenv_t __libc_save_rm __attribute__((cleanup(libc_feresetround_53bit))); \ |
| + libc_feholdsetround_53bit (&__libc_save_rm, (RM)) |
| |
| #define __nan(str) \ |
| (__builtin_constant_p (str) && str[0] == '\0' ? NAN : __nan (str)) |