arch-arm: Rename SelfDebug member variables
authorGiacomo Travaglini <giacomo.travaglini@arm.com>
Wed, 12 Aug 2020 14:12:58 +0000 (15:12 +0100)
committerGiacomo Travaglini <giacomo.travaglini@arm.com>
Tue, 18 Aug 2020 13:04:58 +0000 (13:04 +0000)
* enableFlag -> mde
The "enableFlag" variable, enabling the Breakpoint, Watchpoint, Vector
Catch exceptions is actually the cached version of MDSCR_EL1.MDE. The
"enableFlag" name looks too general as it's not covering the Software
Step exception case.

* bKDE -> kde
* bSDD -> sdd

The b prefix was likely referring to "breakpoint". However these bitfields
are actually used by watchpoints as well.

Change-Id: I48b762b32b2d763f4c4ceb7dcc28968cfb470fc1
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/32775
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Richard Cooper <richard.cooper@arm.com>
src/arch/arm/self_debug.cc
src/arch/arm/self_debug.hh

index 21ad84c3717f46d06b60d81f1fef7fb51a8c1915..e55df64ad6bb71eaf9d2e7d4b0d4734e5eed4b96 100644 (file)
@@ -72,7 +72,7 @@ SelfDebug::testDebug(ThreadContext *tc, const RequestPtr &req,
 Fault
 SelfDebug::testBreakPoints(ThreadContext *tc, Addr vaddr)
 {
-    if (!enableFlag)
+    if (!mde)
         return NoFault;
 
     setAArch32(tc);
@@ -127,7 +127,7 @@ SelfDebug::testWatchPoints(ThreadContext *tc, Addr vaddr, bool write,
     to32 = targetAArch32(tc);
     if (!initialized)
         init(tc);
-    if (!isDebugEnabled(tc) || !enableFlag)
+    if (!isDebugEnabled(tc) || !mde)
         return NoFault;
 
     ExceptionLevel el = (ExceptionLevel) currEL(tc);
@@ -168,12 +168,12 @@ SelfDebug::isDebugEnabledForEL64(ThreadContext *tc, ExceptionLevel el,
                          (!secure || HaveSecureEL2Ext(tc)) && enableTdeTge;
 
     ExceptionLevel target_el = route_to_el2 ? EL2 : EL1;
-    if (oslk || (bSDD && secure && ArmSystem::haveEL(tc, EL3))) {
+    if (oslk || (sdd && secure && ArmSystem::haveEL(tc, EL3))) {
         return false;
     }
 
     if (el == target_el) {
-        return bKDE  && !mask;
+        return kde  && !mask;
     } else {
         return target_el > el;
     }
@@ -720,7 +720,7 @@ SelfDebug::testVectorCatch(ThreadContext *tc, Addr addr,
     to32 = targetAArch32(tc);
     if (!initialized)
         init(tc);
-    if (!isDebugEnabled(tc) || !enableFlag || !aarch32)
+    if (!isDebugEnabled(tc) || !mde || !aarch32)
         return NoFault;
 
     ExceptionLevel el = (ExceptionLevel) currEL(tc);
index c9afa609fb4261571feb44504e7be837c0a35a4d..2ae2f8ec7ecd2c41b2bef0215aa0504e2a5771de 100644 (file)
@@ -167,8 +167,7 @@ class WatchPoint
     inline Addr
     getAddrfromReg(ThreadContext *tc)
     {
-       return bits(tc->readMiscReg(valRegIndex), maxAddrSize, 0);
-
+        return bits(tc->readMiscReg(valRegIndex), maxAddrSize, 0);
     }
 
     inline bool
@@ -282,11 +281,9 @@ class SelfDebug
     bool initialized;
     bool enableTdeTge; // MDCR_EL2.TDE || HCR_EL2.TGE
 
-    // THIS is MDSCR_EL1.MDE in aarch64 and DBGDSCRext.MDBGen in aarch32
-    bool enableFlag;
-
-    bool bSDD; // MDCR_EL3.SDD
-    bool bKDE; // MDSCR_EL1.KDE
+    bool mde; // MDSCR_EL1.MDE, DBGDSCRext.MDBGen
+    bool sdd; // MDCR_EL3.SDD
+    bool kde; // MDSCR_EL1.KDE
     bool oslk; // OS lock flag
 
     bool aarch32; // updates with stage1 aarch64/32
@@ -295,7 +292,7 @@ class SelfDebug
   public:
     SelfDebug()
       : initialized(false), enableTdeTge(false),
-        enableFlag(false), bSDD(false), bKDE(false), oslk(false)
+        mde(false), sdd(false), kde(false), oslk(false)
     {
         softStep = new SoftwareStep(this);
     }
@@ -320,6 +317,8 @@ class SelfDebug
   public:
     Fault testVectorCatch(ThreadContext *tc, Addr addr, ArmFault* flt);
 
+    bool enabled() const { return mde || softStep->bSS; };
+
     inline BrkPoint*
     getBrkPoint(uint8_t index)
     {
@@ -373,21 +372,21 @@ class SelfDebug
     inline void
     setbSDD(RegVal val)
     {
-        bSDD = bits(val, 16);
+        sdd = bits(val, 16);
     }
 
     inline void
     setMDSCRvals(RegVal val)
     {
-        enableFlag = bits(val, 15);
-        bKDE = bits(val, 13);
+        mde = bits(val, 15);
+        kde = bits(val, 13);
         softStep->bSS = bits(val, 0);
     }
 
     inline void
     setMDBGen(RegVal val)
     {
-        enableFlag = bits(val, 15);
+        mde = bits(val, 15);
     }
 
     inline void