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.
This commit is contained in:
parent
96df079a42
commit
4c60cb0c83
@ -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.
|
||||
|
@ -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))
|
||||
|
Loading…
Reference in New Issue
Block a user