gem5
v20.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 Printable | |
Printable () | |
virtual | ~Printable () |
Public Attributes | |
bool | regValid |
True if register entry is valid. More... | |
RegClass | regClass |
Register class. More... | |
RegIndex | regRel |
Register arch number. More... | |
std::string | regName |
Register name to be printed. More... | |
Protected Member Functions | |
virtual void | updateMisc (const TarmacContext &tarmCtx, RegIndex regRelIdx) |
Register update functions. More... | |
virtual void | updateCC (const TarmacContext &tarmCtx, RegIndex regRelIdx) |
virtual void | updateFloat (const TarmacContext &tarmCtx, RegIndex regRelIdx) |
virtual void | updateInt (const TarmacContext &tarmCtx, RegIndex regRelIdx) |
virtual void | updateVec (const TarmacContext &tarmCtx, RegIndex regRelIdx) |
virtual void | updatePred (const TarmacContext &tarmCtx, RegIndex regRelIdx) |
Register Entry.
Definition at line 116 of file tarmac_record.hh.
Trace::TarmacTracerRecord::TraceRegEntry::TraceRegEntry | ( | const TarmacContext & | tarmCtx, |
const RegId & | reg | ||
) |
Definition at line 151 of file tarmac_record.cc.
|
overridevirtual |
Implements Printable.
Reimplemented in Trace::TarmacTracerRecordV8::TraceRegEntryV8.
Definition at line 449 of file tarmac_record.cc.
References ccprintf(), curTick(), and Sinic::regValid().
void 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 162 of file tarmac_record.cc.
References CCRegClass, FloatRegClass, IntRegClass, MiscRegClass, VecPredRegClass, and VecRegClass.
|
protectedvirtual |
Definition at line 222 of file tarmac_record.cc.
References ArmISA::ccRegName, ThreadContext::readCCReg(), Sinic::regValid(), Trace::InstRecord::thread, and Trace::TarmacContext::thread.
|
protectedvirtual |
Definition at line 235 of file tarmac_record.cc.
References bitsToFloat32(), ThreadContext::readFloatReg(), Sinic::regValid(), Trace::InstRecord::thread, Trace::TarmacContext::thread, and sc_dt::to_string().
|
protectedvirtual |
Reimplemented in Trace::TarmacTracerRecordV8::TraceRegEntryV8.
Definition at line 248 of file tarmac_record.cc.
References ArmISA::FramePointerReg, ArmISA::MISCREG_CPSR, ArmISA::mode, ArmISA::MODE_USER, Trace::opModeToStr(), ArmISA::PCReg, ThreadContext::readIntReg(), ThreadContext::readMiscRegNoEffect(), Sinic::regValid(), ArmISA::ReturnAddressReg, ArmISA::StackPointerReg, Trace::InstRecord::thread, Trace::TarmacContext::thread, and sc_dt::to_string().
Referenced by Trace::TarmacTracerRecordV8::TraceRegEntryV8::updateInt().
|
protectedvirtual |
Register update functions.
Reimplemented in Trace::TarmacTracerRecordV8::TraceRegEntryV8.
Definition at line 195 of file tarmac_record.cc.
References ArmISA::CCREG_C, ArmISA::CCREG_GE, ArmISA::CCREG_NZ, ArmISA::CCREG_V, ArmISA::MISCREG_CPSR, ArmISA::miscRegName, ThreadContext::readCCReg(), ThreadContext::readMiscRegNoEffect(), Sinic::regValid(), Trace::InstRecord::thread, and Trace::TarmacContext::thread.
Referenced by Trace::TarmacTracerRecordV8::TraceRegEntryV8::updateMisc().
|
inlineprotectedvirtual |
Reimplemented in Trace::TarmacTracerRecordV8::TraceRegEntryV8.
Definition at line 154 of file tarmac_record.hh.
|
inlineprotectedvirtual |
Reimplemented in Trace::TarmacTracerRecordV8::TraceRegEntryV8.
Definition at line 151 of file tarmac_record.hh.
RegClass Trace::TarmacTracerRecord::TraceRegEntry::regClass |
Register class.
Definition at line 160 of file tarmac_record.hh.
std::string Trace::TarmacTracerRecord::TraceRegEntry::regName |
Register name to be printed.
Definition at line 164 of file tarmac_record.hh.
RegIndex Trace::TarmacTracerRecord::TraceRegEntry::regRel |
Register arch number.
Definition at line 162 of file tarmac_record.hh.
bool Trace::TarmacTracerRecord::TraceRegEntry::regValid |
True if register entry is valid.
Definition at line 154 of file tarmac_record.hh.