[AArch64] Fix FP_ROUNDMODE.
authorMarcus Shawcroft <marcus.shawcroft@linaro.org>
Tue, 7 Jan 2014 16:16:35 +0000 (16:16 +0000)
committerMarcus Shawcroft <marcus.shawcroft@linaro.org>
Tue, 7 Jan 2014 16:17:52 +0000 (16:17 +0000)
[BZ #16387] Fix FP_ROUNDMODE to extract the correct bits from FPCR.

NEWS
ports/ChangeLog.aarch64
ports/sysdeps/aarch64/fpu/fpu_control.h
ports/sysdeps/aarch64/soft-fp/sfp-machine.h

diff --git a/NEWS b/NEWS
index a3030eb163344ec1e18190dd61c50ab4947f86da..d674772247e2ee7510725221fbfa85d4a393554d 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -24,7 +24,7 @@ Version 2.19
   16103, 16112, 16143, 16144, 16146, 16150, 16151, 16153, 16167, 16172,
   16195, 16214, 16245, 16271, 16274, 16283, 16289, 16293, 16314, 16316,
   16330, 16337, 16338, 16356, 16365, 16366, 16369, 16372, 16375, 16379,
-  16384, 16385, 16386, 16390, 16400.
+  16384, 16385, 16386, 16387, 16390, 16400.
 
 * Slovenian translations for glibc messages have been contributed by the
   Translation Project's Slovenian team of translators.
index 53ec5357b85341a15fa00aadd76c3ce73fc26c98..3867810f40cc5155eaef49902d1b5265e63a5cbf 100644 (file)
@@ -1,3 +1,10 @@
+2014-01-07  Marcus Shawcroft  <marcus.shawcroft@linaro.org>
+
+       [BZ #16387]
+       * sysdeps/aarch64/fpu/fpu_control.h (_FPU_FPCR_RM_MASK): Define.
+       * sysdeps/aarch64/soft-fp/sfp-machine.h (FP_ROUNDMODE): Adjust
+       rounding mode mask.
+
 2014-01-07  Marcus Shawcroft  <marcus.shawcroft@linaro.org>
 
        * sysdeps/aarch64/libm-test-ulps: Drop sqrt ULPs.
index 79ab5fb95d7f640155e77bc3c26146ee58740a6c..6a265e89b5e11706d8f01b07fbec8d2a519a9bd2 100644 (file)
@@ -59,6 +59,9 @@
                    E E D D
                        E E
  */
+
+#define _FPU_FPCR_RM_MASK  0xc00000
+
 #define _FPU_FPCR_MASK_IXE 0x1000
 #define _FPU_FPCR_MASK_UFE 0x0800
 #define _FPU_FPCR_MASK_OFE 0x0400
index d21d00a934451dd8e6b72ea32961a4917f5b093a..9bb94e5ccc76895087fe17c22f5e0b2aaf012e0c 100644 (file)
@@ -47,7 +47,7 @@
 
 #define _FP_DECL_EX            fpu_control_t _fcw
 
-#define FP_ROUNDMODE           (_fcw & 0x3)
+#define FP_ROUNDMODE           (_fcw & _FPU_FPCR_RM_MASK)
 
 #define FP_RND_NEAREST         FE_TONEAREST
 #define FP_RND_ZERO            FE_TOWARDZERO