cpu: Add ExecFlags debug flag
authorMitch Hayenga <mitch.hayenga@arm.com>
Sat, 20 Sep 2014 21:17:45 +0000 (17:17 -0400)
committerMitch Hayenga <mitch.hayenga@arm.com>
Sat, 20 Sep 2014 21:17:45 +0000 (17:17 -0400)
Adds a debug flag to print out the flags a instruction is tagged with.

src/cpu/SConscript
src/cpu/exetrace.cc

index 5d9a48716e14fb65df88abf9e806960337a116c7..df29f6c73d0e7adac0feb397f2c6293f70a9650b 100644 (file)
@@ -96,6 +96,7 @@ DebugFlag('ExecMacro', 'Filter: Include macroops')
 DebugFlag('ExecUser', 'Filter: Trace user mode instructions')
 DebugFlag('ExecKernel', 'Filter: Trace kernel mode instructions')
 DebugFlag('ExecAsid', 'Format: Include ASID in trace')
+DebugFlag('ExecFlags', 'Format: Include instruction flags in trace')
 DebugFlag('Fetch')
 DebugFlag('IntrControl')
 DebugFlag('O3PipeView')
@@ -106,7 +107,7 @@ CompoundFlag('ExecAll', [ 'ExecEnable', 'ExecCPSeq', 'ExecEffAddr',
     'ExecFaulting', 'ExecFetchSeq', 'ExecOpClass', 'ExecRegDelta',
     'ExecResult', 'ExecSpeculative', 'ExecSymbol', 'ExecThread',
     'ExecTicks', 'ExecMicro', 'ExecMacro', 'ExecUser', 'ExecKernel',
-    'ExecAsid' ])
+    'ExecAsid', 'ExecFlags' ])
 CompoundFlag('Exec', [ 'ExecEnable', 'ExecTicks', 'ExecOpClass', 'ExecThread',
     'ExecEffAddr', 'ExecResult', 'ExecSymbol', 'ExecMicro', 'ExecFaulting',
     'ExecUser', 'ExecKernel' ])
index b3b6e6a6017ae231db3f9e44367f82f6a73f0a16..9709466b720514ff71b91fbaacc3087e705a6a21 100644 (file)
@@ -131,6 +131,12 @@ Trace::ExeTracerRecord::traceInst(StaticInstPtr inst, bool ran)
 
         if (Debug::ExecCPSeq && cp_seq_valid)
             outs << "  CPSeq=" << dec << cp_seq;
+
+        if (Debug::ExecFlags) {
+            outs << "  flags=(";
+            inst->printFlags(outs, "|");
+            outs << ")";
+        }
     }
 
     //