diff options
author | Siddhesh Poyarekar <siddhesh@redhat.com> | 2013-06-05 13:56:19 +0530 |
---|---|---|
committer | Siddhesh Poyarekar <siddhesh@redhat.com> | 2013-06-05 13:56:19 +0530 |
commit | 4c60cb0c8329dd498e9cce3735e5ee6212ad28f4 (patch) | |
tree | 34449764655642b4e2736978a865a28c79911e64 | |
parent | 96df079a42018f92a609a69b236c1184c9928b99 (diff) | |
download | glibc-4c60cb0c8329dd498e9cce3735e5ee6212ad28f4.tar.gz glibc-4c60cb0c8329dd498e9cce3735e5ee6212ad28f4.tar.xz glibc-4c60cb0c8329dd498e9cce3735e5ee6212ad28f4.zip |
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.
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | sysdeps/generic/math_private.h | 12 |
2 files changed, 15 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog index aeec81fd74..69f3b9f0fc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2013-06-05 Siddhesh Poyarekar <siddhesh@redhat.com> + + * sysdeps/generic/math_private.h + (libc_feholdexcept_setround_53bit): Replace with + libc_feholdsetround_53bit. + (libc_feupdateenv_53bit): Replace with + libc_feresetround_53bit. + (SET_RESTORE_ROUND_53BIT): Adjust. + 2013-06-03 Siddhesh Poyarekar <siddhesh@redhat.com> * string/test-strchrnul.c: Add copyright header. diff --git a/sysdeps/generic/math_private.h b/sysdeps/generic/math_private.h index 9d6ecade68..e98360dd47 100644 --- a/sysdeps/generic/math_private.h +++ b/sysdeps/generic/math_private.h @@ -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)) |