arm: enable DCZVA by default in SE mode
authorGiacomo Gabrielli <Giacomo.Gabrielli@arm.com>
Tue, 5 May 2015 07:22:42 +0000 (03:22 -0400)
committerGiacomo Gabrielli <Giacomo.Gabrielli@arm.com>
Tue, 5 May 2015 07:22:42 +0000 (03:22 -0400)
src/arch/arm/miscregs.cc

index 2ad25627374a3c050cfb651a94153136c52f00f0..07d938f6aabac979e5d7f5f4ed6e8ba3cb338d0f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010-2013 ARM Limited
+ * Copyright (c) 2010-2013, 2015 ARM Limited
  * All rights reserved
  *
  * The license below extends only to copyright in the software and shall
@@ -43,6 +43,7 @@
 #include "arch/arm/miscregs.hh"
 #include "base/misc.hh"
 #include "cpu/thread_context.hh"
+#include "sim/full_system.hh"
 
 namespace ArmISA
 {
@@ -2138,7 +2139,9 @@ canWriteAArch64SysReg(MiscRegIndex reg, SCR scr, CPSR cpsr, ThreadContext *tc)
         if (el == EL0 && !sctlr.uma)
             return false;
     }
-    if (reg == MISCREG_DC_ZVA_Xt) {
+    if (FullSystem && reg == MISCREG_DC_ZVA_Xt) {
+        // In syscall-emulation mode, this test is skipped and DCZVA is always
+        // allowed at EL0
         SCTLR sctlr = tc->readMiscReg(MISCREG_SCTLR_EL1);
         if (el == EL0 && !sctlr.dze)
             return false;