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