summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKorey Sewell <ksewell@umich.edu>2011-06-19 21:43:38 -0400
committerKorey Sewell <ksewell@umich.edu>2011-06-19 21:43:38 -0400
commit4c979f9325f0c82f3284ce0fb0cc118d77268cb5 (patch)
tree3478c09c7cd78d2b51bb7fd7585a996844a996f8 /src
parent22ba1718c4c36b5abd5fdc8ce32792f5dfdd4fc1 (diff)
downloadgem5-4c979f9325f0c82f3284ce0fb0cc118d77268cb5.tar.xz
inorder: optionally track faulting instructions
Diffstat (limited to 'src')
-rw-r--r--src/cpu/inorder/resources/graduation_unit.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/cpu/inorder/resources/graduation_unit.cc b/src/cpu/inorder/resources/graduation_unit.cc
index 641d7b5ad..d34e1b512 100644
--- a/src/cpu/inorder/resources/graduation_unit.cc
+++ b/src/cpu/inorder/resources/graduation_unit.cc
@@ -72,6 +72,15 @@ GraduationUnit::execute(int slot_num)
inst->instName());
inst->setSquashInfo(stage_num);
setupSquash(inst, stage_num, tid);
+
+ if (inst->traceData && DTRACE(ExecFaulting)) {
+ inst->traceData->setStageCycle(stage_num, curTick());
+ inst->traceData->setFetchSeq(inst->seqNum);
+ inst->traceData->dump();
+ delete inst->traceData;
+ inst->traceData = NULL;
+ }
+
cpu->trapContext(inst->fault, tid, inst);
grad_req->done(false);
return;