Skip modifying exception mask and flags in SET_RESTORE_ROUND_53BIT
authorSiddhesh Poyarekar <siddhesh@redhat.com>
Wed, 5 Jun 2013 08:26:19 +0000 (13:56 +0530)
committerSiddhesh Poyarekar <siddhesh@redhat.com>
Wed, 5 Jun 2013 08:26:19 +0000 (13:56 +0530)
We only need to set/restore rounding mode to ensure correct
computation for non-default rounding modes.

ChangeLog
sysdeps/generic/math_private.h

index aeec81f..69f3b9f 100644 (file)
--- 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.
index 9d6ecad..e98360d 100644 (file)
@@ -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))