You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.1 KiB
36 lines
1.1 KiB
7 years ago
|
commit 196f456b842ee96e1bf1e5ae6ed21ba427dee3f3
|
||
|
Author: Marcus Shawcroft <marcus.shawcroft@linaro.org>
|
||
|
Date: Tue Jan 7 16:16:35 2014 +0000
|
||
|
|
||
|
[AArch64] Fix FP_ROUNDMODE.
|
||
|
|
||
|
[BZ #16387] Fix FP_ROUNDMODE to extract the correct bits from FPCR.
|
||
|
|
||
|
diff --git a/ports/sysdeps/aarch64/fpu/fpu_control.h b/ports/sysdeps/aarch64/fpu/fpu_control.h
|
||
|
index 79ab5fb..6a265e8 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 d21d00a..9bb94e5 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
|