gem5
v22.1.0.0
|
Register Entry. More...
#include <tarmac_record.hh>
Public Member Functions | |
TraceRegEntry (const TarmacContext &tarmCtx, const RegId ®) | |
void | update (const TarmacContext &tarmCtx) |
This updates the register entry using the update table. More... | |
virtual void | print (std::ostream &outs, int verbosity=0, const std::string &prefix="") const override |
Public Member Functions inherited from gem5::trace::TarmacBaseRecord::RegEntry | |
RegEntry ()=default | |
RegEntry (const PCStateBase &pc) | |
Public Member Functions inherited from gem5::Printable | |
Printable () | |
virtual | ~Printable () |
Public Attributes | |
bool | regValid |
True if register entry is valid. More... | |
RegId | regId |
Register ID. More... | |
std::string | regName |
Register name to be printed. More... | |
Public Attributes inherited from gem5::trace::TarmacBaseRecord::RegEntry | |
RegType | type |
RegIndex | index |
ISetState | isetstate |
std::vector< uint64_t > | values |
Protected Member Functions | |
virtual void | updateMisc (const TarmacContext &tarmCtx) |
Register update functions. More... | |
virtual void | updateCC (const TarmacContext &tarmCtx) |
virtual void | updateFloat (const TarmacContext &tarmCtx) |
virtual void | updateInt (const TarmacContext &tarmCtx) |
virtual void | updateVec (const TarmacContext &tarmCtx) |
virtual void | updatePred (const TarmacContext &tarmCtx) |
Additional Inherited Members | |
Public Types inherited from gem5::trace::TarmacBaseRecord::RegEntry | |
enum | RegElement { Lo = 0 , Hi = 1 , Max = 32 } |
Register Entry.
Definition at line 121 of file tarmac_record.hh.
gem5::trace::TarmacTracerRecord::TraceRegEntry::TraceRegEntry | ( | const TarmacContext & | tarmCtx, |
const RegId & | reg | ||
) |
Definition at line 156 of file tarmac_record.cc.
|
overridevirtual |
Implements gem5::Printable.
Reimplemented in gem5::trace::TarmacTracerRecordV8::TraceRegEntryV8.
Definition at line 435 of file tarmac_record.cc.
References gem5::ccprintf(), gem5::curTick(), gem5::MipsISA::int_reg::Lo, and gem5::sinic::regValid().
void gem5::trace::TarmacTracerRecord::TraceRegEntry::update | ( | const TarmacContext & | tarmCtx | ) |
This updates the register entry using the update table.
It is a required step after the register entry generation. If unupdated, the entry will be marked as invalid. The entry update cannot be done automatically at TraceRegEntry construction: the entries are extended by consequent Tarmac Tracer versions (like V8), and virtual functions should be avoided during construction.
Definition at line 166 of file tarmac_record.cc.
References gem5::CCRegClass, gem5::FloatRegClass, gem5::IntRegClass, gem5::MiscRegClass, gem5::VecPredRegClass, and gem5::VecRegClass.
|
protectedvirtual |
Definition at line 221 of file tarmac_record.cc.
References gem5::ThreadContext::getReg(), gem5::MipsISA::int_reg::Lo, gem5::ArmISA::cc_reg::RegName, gem5::sinic::regValid(), gem5::trace::TarmacContext::thread, and gem5::trace::InstRecord::thread.
|
protectedvirtual |
Definition at line 231 of file tarmac_record.cc.
References panic, gem5::sinic::regValid(), and sc_dt::to_string().
|
protectedvirtual |
Reimplemented in gem5::trace::TarmacTracerRecordV8::TraceRegEntryV8.
Definition at line 239 of file tarmac_record.cc.
References gem5::ArmISA::FramePointerReg, gem5::ThreadContext::getReg(), gem5::MipsISA::int_reg::Lo, gem5::ArmISA::MISCREG_CPSR, gem5::ArmISA::mode, gem5::ArmISA::MODE_USER, gem5::trace::opModeToStr(), gem5::ArmISA::int_reg::Pc, gem5::ThreadContext::readMiscRegNoEffect(), gem5::sinic::regValid(), gem5::ArmISA::ReturnAddressReg, gem5::ArmISA::StackPointerReg, gem5::trace::TarmacContext::thread, gem5::trace::InstRecord::thread, and sc_dt::to_string().
Referenced by gem5::trace::TarmacTracerRecordV8::TraceRegEntryV8::updateInt().
|
protectedvirtual |
Register update functions.
Reimplemented in gem5::trace::TarmacTracerRecordV8::TraceRegEntryV8.
Definition at line 197 of file tarmac_record.cc.
References gem5::ArmISA::cc_reg::C, gem5::ArmISA::cc_reg::Ge, gem5::ThreadContext::getReg(), gem5::MipsISA::int_reg::Lo, gem5::ArmISA::MISCREG_CPSR, gem5::ArmISA::miscRegName, gem5::ArmISA::cc_reg::Nz, gem5::ThreadContext::readMiscRegNoEffect(), gem5::sinic::regValid(), gem5::trace::TarmacContext::thread, gem5::trace::InstRecord::thread, and gem5::ArmISA::cc_reg::V.
Referenced by gem5::trace::TarmacTracerRecordV8::TraceRegEntryV8::updateMisc().
|
inlineprotectedvirtual |
Reimplemented in gem5::trace::TarmacTracerRecordV8::TraceRegEntryV8.
Definition at line 148 of file tarmac_record.hh.
|
inlineprotectedvirtual |
Reimplemented in gem5::trace::TarmacTracerRecordV8::TraceRegEntryV8.
Definition at line 147 of file tarmac_record.hh.
RegId gem5::trace::TarmacTracerRecord::TraceRegEntry::regId |
Register ID.
Definition at line 154 of file tarmac_record.hh.
std::string gem5::trace::TarmacTracerRecord::TraceRegEntry::regName |
Register name to be printed.
Definition at line 156 of file tarmac_record.hh.
bool gem5::trace::TarmacTracerRecord::TraceRegEntry::regValid |
True if register entry is valid.
Definition at line 152 of file tarmac_record.hh.