ce426f
commit 196f456b842ee96e1bf1e5ae6ed21ba427dee3f3
ce426f
Author: Marcus Shawcroft <marcus.shawcroft@linaro.org>
ce426f
Date:   Tue Jan 7 16:16:35 2014 +0000
ce426f
ce426f
    [AArch64] Fix FP_ROUNDMODE.
ce426f
    
ce426f
    [BZ #16387] Fix FP_ROUNDMODE to extract the correct bits from FPCR.
ce426f
ce426f
diff --git a/ports/sysdeps/aarch64/fpu/fpu_control.h b/ports/sysdeps/aarch64/fpu/fpu_control.h
ce426f
index 79ab5fb..6a265e8 100644
ce426f
--- a/ports/sysdeps/aarch64/fpu/fpu_control.h
ce426f
+++ b/ports/sysdeps/aarch64/fpu/fpu_control.h
ce426f
@@ -59,6 +59,9 @@
ce426f
                    E E D D
ce426f
                        E E
ce426f
  */
ce426f
+
ce426f
+#define _FPU_FPCR_RM_MASK  0xc00000
ce426f
+
ce426f
 #define _FPU_FPCR_MASK_IXE 0x1000
ce426f
 #define _FPU_FPCR_MASK_UFE 0x0800
ce426f
 #define _FPU_FPCR_MASK_OFE 0x0400
ce426f
diff --git a/ports/sysdeps/aarch64/soft-fp/sfp-machine.h b/ports/sysdeps/aarch64/soft-fp/sfp-machine.h
ce426f
index d21d00a..9bb94e5 100644
ce426f
--- a/ports/sysdeps/aarch64/soft-fp/sfp-machine.h
ce426f
+++ b/ports/sysdeps/aarch64/soft-fp/sfp-machine.h
ce426f
@@ -47,7 +47,7 @@
ce426f
 
ce426f
 #define _FP_DECL_EX		fpu_control_t _fcw
ce426f
 
ce426f
-#define FP_ROUNDMODE		(_fcw & 0x3)
ce426f
+#define FP_ROUNDMODE		(_fcw & _FPU_FPCR_RM_MASK)
ce426f
 
ce426f
 #define FP_RND_NEAREST		FE_TONEAREST
ce426f
 #define FP_RND_ZERO		FE_TOWARDZERO