|
gem5
v19.0.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 Trace::TarmacBaseRecord::RegEntry | |
| RegEntry ()=default | |
| RegEntry (ArmISA::PCState pc) | |
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... | |
Public Attributes inherited from Trace::TarmacBaseRecord::RegEntry | |
| RegType | type |
| RegIndex | index |
| ISetState | isetstate |
| std::vector< uint64_t > | values |
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) |
Additional Inherited Members | |
Public Types inherited from Trace::TarmacBaseRecord::RegEntry | |
| enum | RegElement { Lo = 0, Hi = 1, Max = 32 } |
Register Entry.
Definition at line 118 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.
Definition at line 449 of file tarmac_record.cc.
References ccprintf(), curTick(), Trace::TarmacBaseRecord::RegEntry::Lo, regName, regValid, and Trace::TarmacBaseRecord::RegEntry::values.
| 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, regClass, regRel, updateCC(), updateFloat(), updateInt(), updateMisc(), updatePred(), updateVec(), VecPredRegClass, and VecRegClass.
|
protectedvirtual |
Definition at line 222 of file tarmac_record.cc.
References ArmISA::ccRegName, Trace::TarmacBaseRecord::RegEntry::Lo, ThreadContext::readCCReg(), regName, regValid, Trace::InstRecord::thread, Trace::TarmacContext::thread, and Trace::TarmacBaseRecord::RegEntry::values.
Referenced by update().
|
protectedvirtual |
Definition at line 235 of file tarmac_record.cc.
References bitsToFloat32(), Trace::TarmacBaseRecord::RegEntry::Lo, ThreadContext::readFloatReg(), regName, regValid, Trace::InstRecord::thread, Trace::TarmacContext::thread, sc_dt::to_string(), and Trace::TarmacBaseRecord::RegEntry::values.
Referenced by update().
|
protectedvirtual |
Definition at line 248 of file tarmac_record.cc.
References AlphaISA::FramePointerReg, Trace::TarmacBaseRecord::RegEntry::Lo, ArmISA::MISCREG_CPSR, ArmISA::mode, ArmISA::MODE_USER, Trace::opModeToStr(), ArmISA::PCReg, ThreadContext::readIntReg(), ThreadContext::readMiscRegNoEffect(), regName, regValid, AlphaISA::ReturnAddressReg, AlphaISA::StackPointerReg, Trace::InstRecord::thread, Trace::TarmacContext::thread, sc_dt::to_string(), and Trace::TarmacBaseRecord::RegEntry::values.
Referenced by update(), and Trace::TarmacTracerRecordV8::TraceRegEntryV8::updateInt().
|
protectedvirtual |
Register update functions.
Definition at line 195 of file tarmac_record.cc.
References ArmISA::CCREG_C, ArmISA::CCREG_GE, ArmISA::CCREG_NZ, ArmISA::CCREG_V, Trace::TarmacBaseRecord::RegEntry::Lo, ArmISA::MISCREG_CPSR, ArmISA::miscRegName, ThreadContext::readCCReg(), ThreadContext::readMiscRegNoEffect(), regName, regValid, Trace::InstRecord::thread, Trace::TarmacContext::thread, and Trace::TarmacBaseRecord::RegEntry::values.
Referenced by update(), and Trace::TarmacTracerRecordV8::TraceRegEntryV8::updateMisc().
|
inlineprotectedvirtual |
Definition at line 156 of file tarmac_record.hh.
References Sinic::regValid().
Referenced by update().
|
inlineprotectedvirtual |
Definition at line 153 of file tarmac_record.hh.
Referenced by update().
| RegClass Trace::TarmacTracerRecord::TraceRegEntry::regClass |
| std::string Trace::TarmacTracerRecord::TraceRegEntry::regName |
Register name to be printed.
Definition at line 166 of file tarmac_record.hh.
Referenced by print(), updateCC(), updateFloat(), updateInt(), and updateMisc().
| RegIndex Trace::TarmacTracerRecord::TraceRegEntry::regRel |
| bool Trace::TarmacTracerRecord::TraceRegEntry::regValid |
True if register entry is valid.
Definition at line 156 of file tarmac_record.hh.
Referenced by print(), updateCC(), updateFloat(), updateInt(), and updateMisc().