about summary refs log tree commit diff
path: root/ports
diff options
context:
space:
mode:
authorMarcus Shawcroft <marcus.shawcroft@linaro.org>2014-01-07 16:16:35 +0000
committerMarcus Shawcroft <marcus.shawcroft@linaro.org>2014-01-07 16:17:52 +0000
commit196f456b842ee96e1bf1e5ae6ed21ba427dee3f3 (patch)
treefb882be8637c0d895494c60e71d6c1c3025847e0 /ports
parent07d55c6c3777499bdc0228ef820d5b647f2af71c (diff)
downloadglibc-196f456b842ee96e1bf1e5ae6ed21ba427dee3f3.tar.gz
glibc-196f456b842ee96e1bf1e5ae6ed21ba427dee3f3.tar.xz
glibc-196f456b842ee96e1bf1e5ae6ed21ba427dee3f3.zip
[AArch64] Fix FP_ROUNDMODE.
[BZ #16387] Fix FP_ROUNDMODE to extract the correct bits from FPCR.
Diffstat (limited to 'ports')
-rw-r--r--ports/ChangeLog.aarch647
-rw-r--r--ports/sysdeps/aarch64/fpu/fpu_control.h3
-rw-r--r--ports/sysdeps/aarch64/soft-fp/sfp-machine.h2
3 files changed, 11 insertions, 1 deletions
diff --git a/ports/ChangeLog.aarch64 b/ports/ChangeLog.aarch64
index 53ec5357b8..3867810f40 100644
--- a/ports/ChangeLog.aarch64
+++ b/ports/ChangeLog.aarch64
@@ -1,5 +1,12 @@
 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.
 
 2014-01-07  Marcus Shawcroft  <marcus.shawcroft@linaro.org>
diff --git a/ports/sysdeps/aarch64/fpu/fpu_control.h b/ports/sysdeps/aarch64/fpu/fpu_control.h
index 79ab5fb95d..6a265e89b5 100644
--- a/ports/sysdeps/aarch64/fpu/fpu_control.h
+++ b/ports/sysdeps/aarch64/fpu/fpu_control.h
@@ -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
diff --git a/ports/sysdeps/aarch64/soft-fp/sfp-machine.h b/ports/sysdeps/aarch64/soft-fp/sfp-machine.h
index d21d00a934..9bb94e5ccc 100644
--- a/ports/sysdeps/aarch64/soft-fp/sfp-machine.h
+++ b/ports/sysdeps/aarch64/soft-fp/sfp-machine.h
@@ -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