diff mbox

[2/2] Aarch64: Cleanup math_private.h

Message ID 001501cf769e$864dcdf0$92e969d0$@com
State New
Headers show

Commit Message

Wilco May 23, 2014, 3:49 p.m. UTC
Hi,

This is a series of patches to cleanup the aarch64 fenv implementation. The second uses
_FPU_FPCR_RM_MASK for the rounding mask instead of FE_TOWARDZERO.

Ok for commit?

Wilco

ChangeLog:
2014-05-23  Wilco  <wdijkstr@arm.com>

	* sysdeps/aarch64/fpu/math_private.h (libc_fesetround_aarch64)
	 (libc_feholdexcept_setround_aarch64) (libc_feholdsetround_aarch64)
	 (libc_feresetround_aarch64) (libc_feholdsetround_aarch64_ctx):
	Use _FPU_FPCR_RM_MASK for rounding mask rather than FE_TOWARDZERO.
	* sysdeps/aarch64/fpu/get-rounding-mode.h (get_rounding_mode):
	Use _FPU_FPCR_RM_MASK for rounding mask rather than FE_TOWARDZERO.
---
 sysdeps/aarch64/fpu/get-rounding-mode.h |  2 +-
 sysdeps/aarch64/fpu/math_private.h      | 10 +++++-----
 2 files changed, 6 insertions(+), 6 deletions(-)
diff mbox

Patch

diff --git a/sysdeps/aarch64/fpu/get-rounding-mode.h b/sysdeps/aarch64/fpu/get-rounding-mode.h
index 5c1615d..425b50e 100644
--- a/sysdeps/aarch64/fpu/get-rounding-mode.h
+++ b/sysdeps/aarch64/fpu/get-rounding-mode.h
@@ -32,7 +32,7 @@  get_rounding_mode (void)
   fpu_control_t fpcr;
 
   _FPU_GETCW (fpcr);
-  return fpcr & FE_TOWARDZERO;
+  return fpcr & _FPU_FPCR_RM_MASK;
 }
 
 #endif /* get-rounding-mode.h */
diff --git a/sysdeps/aarch64/fpu/math_private.h b/sysdeps/aarch64/fpu/math_private.h
index a3f466b..023c9d0 100644
--- a/sysdeps/aarch64/fpu/math_private.h
+++ b/sysdeps/aarch64/fpu/math_private.h
@@ -58,7 +58,7 @@  libc_fesetround_aarch64 (int round)
   _FPU_GETCW (fpcr);
 
   /* Check whether rounding modes are different.  */
-  round = (fpcr ^ round) & FE_TOWARDZERO;
+  round = (fpcr ^ round) & _FPU_FPCR_RM_MASK;
 
   /* Set new rounding mode if different.  */
   if (__glibc_unlikely (round != 0))
@@ -84,7 +84,7 @@  libc_feholdexcept_setround_aarch64 (fenv_t *envp, int round)
 
   /* Clear exception flags, set all exceptions to non-stop,
      and set new rounding mode.  */
-  new_fpcr = fpcr & ~((FE_ALL_EXCEPT << FE_EXCEPT_SHIFT) | FE_TOWARDZERO);
+  new_fpcr = fpcr & ~((FE_ALL_EXCEPT << FE_EXCEPT_SHIFT) | _FPU_FPCR_RM_MASK);
   new_fpcr |= round;
   new_fpsr = fpsr & ~FE_ALL_EXCEPT;
 
@@ -190,7 +190,7 @@  libc_feholdsetround_aarch64 (fenv_t *envp, int round)
   envp->__fpsr = fpsr;
 
   /* Check whether rounding modes are different.  */
-  round = (fpcr ^ round) & FE_TOWARDZERO;
+  round = (fpcr ^ round) & _FPU_FPCR_RM_MASK;
 
   /* Set new rounding mode if different.  */
   if (__glibc_unlikely (round != 0))
@@ -210,7 +210,7 @@  libc_feresetround_aarch64 (fenv_t *envp)
   _FPU_GETCW (fpcr);
 
   /* Check whether rounding modes are different.  */
-  round = (envp->__fpcr ^ fpcr) & FE_TOWARDZERO;
+  round = (envp->__fpcr ^ fpcr) & _FPU_FPCR_RM_MASK;
 
   /* Restore the rounding mode if it was changed.  */
   if (__glibc_unlikely (round != 0))
@@ -236,7 +236,7 @@  libc_feholdsetround_aarch64_ctx (struct rm_ctx *ctx, int r)
   ctx->env.__fpsr = fpsr;
 
   /* Check whether rounding modes are different.  */
-  round = (fpcr ^ r) & FE_TOWARDZERO;
+  round = (fpcr ^ r) & _FPU_FPCR_RM_MASK;
   ctx->updated_status = round != 0;
 
   /* Set the rounding mode if changed.  */