summaryrefslogtreecommitdiff
path: root/sim/faults.cc
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2006-03-07 04:42:06 -0500
committerGabe Black <gblack@eecs.umich.edu>2006-03-07 04:42:06 -0500
commitab67095b2a43b5f2d44d1e1a517d1079ddf9f104 (patch)
tree6e0cf0ec7d23cd9516d5b6486d47a10849375dc1 /sim/faults.cc
parentfd69f40e209d1b77ce167bf59c189e513a6815f3 (diff)
parent5aa0669b52cb1a1e5fdb6a372d6b481ebb46b02a (diff)
downloadgem5-ab67095b2a43b5f2d44d1e1a517d1079ddf9f104.tar.xz
Merge gblack@m5.eecs.umich.edu:/bk/multiarch
into ewok.(none):/home/gblack/m5/multiarch --HG-- extra : convert_revision : ead388289742233b5e4f0b37d979e54852cc99b2
Diffstat (limited to 'sim/faults.cc')
-rw-r--r--sim/faults.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/sim/faults.cc b/sim/faults.cc
index 9b4a0ea7f..2b93353ce 100644
--- a/sim/faults.cc
+++ b/sim/faults.cc
@@ -28,10 +28,19 @@
#include "sim/faults.hh"
#include "cpu/exec_context.hh"
+#include "cpu/base.hh"
#if !FULL_SYSTEM
void FaultBase::invoke(ExecContext * xc)
{
fatal("fault (%s) detected @ PC 0x%08p", name(), xc->readPC());
}
+#else
+void FaultBase::invoke(ExecContext * xc)
+{
+ DPRINTF(Fault, "Fault %s at PC: %#x\n", name(), xc->regs.pc);
+ xc->cpu->recordEvent(csprintf("Fault %s", name()));
+
+ assert(!xc->misspeculating());
+}
#endif