cpu: Add a NotAnInst flag to the BaseDynInst class.
authorGabe Black <gabeblack@google.com>
Fri, 5 Jan 2018 23:40:47 +0000 (15:40 -0800)
committerGabe Black <gabeblack@google.com>
Tue, 9 Jan 2018 03:03:04 +0000 (03:03 +0000)
This flag means that the instruction isn't an actual instruction, it's
just a placeholder to carry a fault down a pipeline, for instance.

Change-Id: I1cc12b068662dbd3d3b089c9941a07b6e88b57e3
Reviewed-on: https://gem5-review.googlesource.com/7123
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Gabe Black <gabeblack@google.com>

src/cpu/base_dyn_inst.hh

index 127b0629c6bfe865404de8509214e2252d962063..ae408e3fbd0d620e271c3eacfbfdad244009ff63 100644 (file)
@@ -124,6 +124,7 @@ class BaseDynInst : public ExecContext, public RefCounted
     };
 
     enum Flags {
+        NotAnInst,
         TranslationStarted,
         TranslationCompleted,
         PossibleLoadViolation,
@@ -274,6 +275,9 @@ class BaseDynInst : public ExecContext, public RefCounted
     bool memOpDone() const { return instFlags[MemOpDone]; }
     void memOpDone(bool f) { instFlags[MemOpDone] = f; }
 
+    bool notAnInst() const { return instFlags[NotAnInst]; }
+    void setNotAnInst() { instFlags[NotAnInst] = true; }
+
 
     ////////////////////////////////////////////
     //