Hello Gabor Dozsa,

I'd like you to do a code review. Please visit

    https://gem5-review.googlesource.com/c/public/gem5/+/19176

to review the following change.


Change subject: sim: Add getter to fault virtual address
......................................................................

sim: Add getter to fault virtual address

Change-Id: Ifd493aee9e78b0b4ddcc71e90f48679543acb861
Signed-off-by: Giacomo Gabrielli <[email protected]>
---
M src/sim/faults.cc
M src/sim/faults.hh
2 files changed, 24 insertions(+), 1 deletion(-)



diff --git a/src/sim/faults.cc b/src/sim/faults.cc
index 0606080..6523834 100644
--- a/src/sim/faults.cc
+++ b/src/sim/faults.cc
@@ -49,6 +49,11 @@
     }
 }

+bool FaultBase::getFaultVAddr(Addr &va) const
+{
+    return false;
+}
+
 void UnimpFault::invoke(ThreadContext * tc, const StaticInstPtr &inst)
 {
     panic("Unimpfault: %s\n", panicStr.c_str());
@@ -76,7 +81,22 @@

 }

-void GenericAlignmentFault::invoke(ThreadContext *tc, const StaticInstPtr &inst)
+bool
+GenericPageTableFault::getFaultVAddr(Addr &va) const
+{
+    va = vaddr;
+    return true;
+}
+
+void
+GenericAlignmentFault::invoke(ThreadContext *tc, const StaticInstPtr &inst)
 {
     panic("Alignment fault when accessing virtual address %#x\n", vaddr);
 }
+
+bool
+GenericAlignmentFault::getFaultVAddr(Addr &va) const
+{
+    va = vaddr;
+    return true;
+}
diff --git a/src/sim/faults.hh b/src/sim/faults.hh
index 7475971..f4ba81f 100644
--- a/src/sim/faults.hh
+++ b/src/sim/faults.hh
@@ -47,6 +47,7 @@
     virtual FaultName name() const = 0;
     virtual void invoke(ThreadContext * tc, const StaticInstPtr &inst =
                         StaticInst::nullStaticInstPtr);
+    virtual bool getFaultVAddr(Addr &va) const;

     virtual ~FaultBase() {};
 };
@@ -99,6 +100,7 @@
     GenericPageTableFault(Addr va) : vaddr(va) {}
     void invoke(ThreadContext * tc, const StaticInstPtr &inst =
                 StaticInst::nullStaticInstPtr);
+    bool getFaultVAddr(Addr &va) const override;
 };

 class GenericAlignmentFault : public FaultBase
@@ -110,6 +112,7 @@
     GenericAlignmentFault(Addr va) : vaddr(va) {}
     void invoke(ThreadContext * tc, const StaticInstPtr &inst =
                 StaticInst::nullStaticInstPtr);
+    bool getFaultVAddr(Addr &va) const override;
 };

 #endif // __FAULTS_HH__

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/19176
To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings

Gerrit-Project: public/gem5
Gerrit-Branch: master
Gerrit-Change-Id: Ifd493aee9e78b0b4ddcc71e90f48679543acb861
Gerrit-Change-Number: 19176
Gerrit-PatchSet: 1
Gerrit-Owner: Giacomo Gabrielli <[email protected]>
Gerrit-Reviewer: Gabor Dozsa <[email protected]>
Gerrit-MessageType: newchange
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to