summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/cpu/inorder/resource.cc12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/cpu/inorder/resource.cc b/src/cpu/inorder/resource.cc
index 8bc355f5c..dfca83a8f 100644
--- a/src/cpu/inorder/resource.cc
+++ b/src/cpu/inorder/resource.cc
@@ -348,10 +348,14 @@ Resource::squashThenTrap(int stage_num, DynInstPtr inst)
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();
+ if (inst->traceData) {
+ if (inst->staticInst &&
+ inst->fault != NoFault && DTRACE(ExecFaulting)) {
+ inst->traceData->setStageCycle(stage_num, curTick());
+ inst->traceData->setFetchSeq(inst->seqNum);
+ inst->traceData->dump();
+ }
+
delete inst->traceData;
inst->traceData = NULL;
}