summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMitch Hayenga <mitch.hayenga@arm.com>2014-09-20 17:17:45 -0400
committerMitch Hayenga <mitch.hayenga@arm.com>2014-09-20 17:17:45 -0400
commit4f0e3cd4d70a2f852c9ca50fcfdc2684787c8771 (patch)
tree9f5ccdf0b187ea2021a4e5f501d252f9d1e1267a /src
parent3e5bf0c922a88736915f0ea49cf0597d79b8ada1 (diff)
downloadgem5-4f0e3cd4d70a2f852c9ca50fcfdc2684787c8771.tar.xz
cpu: Add ExecFlags debug flag
Adds a debug flag to print out the flags a instruction is tagged with.
Diffstat (limited to 'src')
-rw-r--r--src/cpu/SConscript3
-rw-r--r--src/cpu/exetrace.cc6
2 files changed, 8 insertions, 1 deletions
diff --git a/src/cpu/SConscript b/src/cpu/SConscript
index 5d9a48716..df29f6c73 100644
--- a/src/cpu/SConscript
+++ b/src/cpu/SConscript
@@ -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' ])
diff --git a/src/cpu/exetrace.cc b/src/cpu/exetrace.cc
index b3b6e6a60..9709466b7 100644
--- a/src/cpu/exetrace.cc
+++ b/src/cpu/exetrace.cc
@@ -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 << ")";
+ }
}
//