projects
/
gem5.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Faults: Get rid of the unused isAlignmentFault and isMachineCheckFault.
[gem5.git]
/
src
/
sim
/
faults.cc
diff --git
a/src/sim/faults.cc
b/src/sim/faults.cc
index 6149a8335c1dd564d1a70dc8e07c82622464a32b..bd05df8343a31aaae5b7225603d6a075f3b71fa2 100644
(file)
--- a/
src/sim/faults.cc
+++ b/
src/sim/faults.cc
@@
-31,43
+31,48
@@
#include "arch/isa_traits.hh"
#include "base/misc.hh"
#include "arch/isa_traits.hh"
#include "base/misc.hh"
-#include "cpu/thread_context.hh"
#include "cpu/base.hh"
#include "cpu/base.hh"
+#include "cpu/thread_context.hh"
+#include "debug/Fault.hh"
+#include "mem/page_table.hh"
#include "sim/faults.hh"
#include "sim/process.hh"
#include "sim/faults.hh"
#include "sim/process.hh"
-#include "mem/page_table.hh"
#if !FULL_SYSTEM
#if !FULL_SYSTEM
-void FaultBase::invoke(ThreadContext * tc)
+void FaultBase::invoke(ThreadContext * tc
, StaticInstPtr inst
)
{
{
- panic("fault (%s) detected @ PC %
p", name(), tc->readPC
());
+ panic("fault (%s) detected @ PC %
s", name(), tc->pcState
());
}
#else
}
#else
-void FaultBase::invoke(ThreadContext * tc)
+void FaultBase::invoke(ThreadContext * tc
, StaticInstPtr inst
)
{
{
- DPRINTF(Fault, "Fault %s at PC: %#x\n", name(), tc->readPC());
- tc->getCpuPtr()->recordEvent(csprintf("Fault %s", name()));
-
+ DPRINTF(Fault, "Fault %s at PC: %s\n", name(), tc->pcState());
assert(!tc->misspeculating());
}
#endif
assert(!tc->misspeculating());
}
#endif
-void UnimpFault::invoke(ThreadContext * tc)
+void UnimpFault::invoke(ThreadContext * tc
, StaticInstPtr inst
)
{
panic("Unimpfault: %s\n", panicStr.c_str());
}
{
panic("Unimpfault: %s\n", panicStr.c_str());
}
+void ReExec::invoke(ThreadContext *tc, StaticInstPtr inst)
+{
+ tc->pcState(tc->pcState());
+}
+
+
#if !FULL_SYSTEM
#if !FULL_SYSTEM
-void GenericPageTableFault::invoke(ThreadContext *tc)
+void GenericPageTableFault::invoke(ThreadContext *tc
, StaticInstPtr inst
)
{
Process *p = tc->getProcessPtr();
{
Process *p = tc->getProcessPtr();
- if (!p->
checkAndAllocNextPage
(vaddr))
+ if (!p->
fixupStackFault
(vaddr))
panic("Page table fault when accessing virtual address %#x\n", vaddr);
}
panic("Page table fault when accessing virtual address %#x\n", vaddr);
}
-void GenericAlignmentFault::invoke(ThreadContext *tc)
+void GenericAlignmentFault::invoke(ThreadContext *tc
, StaticInstPtr inst
)
{
panic("Alignment fault when accessing virtual address %#x\n", vaddr);
}
{
panic("Alignment fault when accessing virtual address %#x\n", vaddr);
}