diff options
author | Andrew Bardsley <Andrew.Bardsley@arm.com> | 2014-05-09 18:58:47 -0400 |
---|---|---|
committer | Andrew Bardsley <Andrew.Bardsley@arm.com> | 2014-05-09 18:58:47 -0400 |
commit | bf78299f04f0a99a72a4a2977777ee67877784cb (patch) | |
tree | 3383e056aaf54fd4707cab9b005556f2beeb58b8 /src/cpu/static_inst.cc | |
parent | 8087d2622d4c7c55def5a0f2daec4be951f1929b (diff) | |
download | gem5-bf78299f04f0a99a72a4a2977777ee67877784cb.tar.xz |
cpu: Add flag name printing to StaticInst
This patch adds a the member function StaticInst::printFlags to allow all
of an instruction's flags to be printed without using the individual
is... member functions or resorting to exposing the 'flags' vector
It also replaces the enum definition StaticInst::Flags with a
Python-generated enumeration and adds to the enum generation mechanism
in src/python/m5/params.py to allow Enums to be placed in namespaces
other than Enums or, alternatively, in wrapper structs allowing them to
be inherited by other classes (so populating that class's name-space
with the enumeration element names).
Diffstat (limited to 'src/cpu/static_inst.cc')
-rw-r--r-- | src/cpu/static_inst.cc | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/cpu/static_inst.cc b/src/cpu/static_inst.cc index 2a7b584eb..387cf0575 100644 --- a/src/cpu/static_inst.cc +++ b/src/cpu/static_inst.cc @@ -92,3 +92,20 @@ StaticInst::disassemble(Addr pc, const SymbolTable *symtab) const return *cachedDisassembly; } + +void +StaticInst::printFlags(std::ostream &outs, + const std::string &separator) const +{ + bool printed_a_flag = false; + + for (unsigned int flag = IsNop; flag < Num_Flags; flag++) { + if (flags[flag]) { + if (printed_a_flag) + outs << separator; + + outs << FlagsStrings[flag]; + printed_a_flag = true; + } + } +} |