changeset 8b5bc1a777bc in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=8b5bc1a777bc
description:
        O3: Add flag to control whether faulting instructions are traced.
        When enabled, faulting instructions appear in the trace twice
        (once when they fault and again when they're re-executed).
        This flag is set by the Exec compound flag for backwards compatibility.

diffstat:

2 files changed, 8 insertions(+), 5 deletions(-)
src/cpu/SConscript        |    5 +++--
src/cpu/o3/commit_impl.hh |    8 +++++---

diffs (38 lines):

diff -r 3199397fd905 -r 8b5bc1a777bc src/cpu/SConscript
--- a/src/cpu/SConscript        Sat Sep 26 10:50:50 2009 -0700
+++ b/src/cpu/SConscript        Sat Sep 26 10:50:50 2009 -0700
@@ -160,6 +160,7 @@
 TraceFlag('ExecEnable')
 TraceFlag('ExecCPSeq')
 TraceFlag('ExecEffAddr')
+TraceFlag('ExecFaulting', 'Trace faulting instructions')
 TraceFlag('ExecFetchSeq')
 TraceFlag('ExecOpClass')
 TraceFlag('ExecRegDelta')
@@ -176,6 +177,6 @@
 TraceFlag('Quiesce')
 
 CompoundFlag('Exec', [ 'ExecEnable', 'ExecTicks', 'ExecOpClass', 'ExecThread',
-    'ExecEffAddr', 'ExecResult', 'ExecSymbol', 'ExecMicro' ])
+    'ExecEffAddr', 'ExecResult', 'ExecSymbol', 'ExecMicro', 'ExecFaulting' ])
 CompoundFlag('ExecNoTicks', [ 'ExecEnable', 'ExecOpClass', 'ExecThread',
-    'ExecEffAddr', 'ExecResult', 'ExecMicro' ])
+    'ExecEffAddr', 'ExecResult', 'ExecMicro', 'ExecFaulting' ])
diff -r 3199397fd905 -r 8b5bc1a777bc src/cpu/o3/commit_impl.hh
--- a/src/cpu/o3/commit_impl.hh Sat Sep 26 10:50:50 2009 -0700
+++ b/src/cpu/o3/commit_impl.hh Sat Sep 26 10:50:50 2009 -0700
@@ -1076,9 +1076,11 @@
         commitStatus[tid] = TrapPending;
 
         if (head_inst->traceData) {
-            head_inst->traceData->setFetchSeq(head_inst->seqNum);
-            head_inst->traceData->setCPSeq(thread[tid]->numInst);
-            head_inst->traceData->dump();
+            if (DTRACE(ExecFaulting)) {
+                head_inst->traceData->setFetchSeq(head_inst->seqNum);
+                head_inst->traceData->setCPSeq(thread[tid]->numInst);
+                head_inst->traceData->dump();
+            }
             delete head_inst->traceData;
             head_inst->traceData = NULL;
         }
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to