|
gem5 [DEVELOP-FOR-25.0]
|
#include <exetrace.hh>
Public Member Functions | |
| ExeTracerRecord (Tick _when, ThreadContext *_thread, const StaticInstPtr _staticInst, const PCStateBase &_pc, const ExeTracer &_tracer, const StaticInstPtr _macroStaticInst=NULL) | |
| void | traceInst (const StaticInstPtr &inst, bool ran) |
| void | dump () |
Public Member Functions inherited from gem5::trace::InstRecord | |
| InstRecord (Tick _when, ThreadContext *_thread, const StaticInstPtr _staticInst, const PCStateBase &_pc, const StaticInstPtr _macroStaticInst=nullptr) | |
| virtual | ~InstRecord () |
| void | setWhen (Tick new_when) |
| void | setMem (Addr a, Addr s, unsigned f) |
| template<typename T, size_t N> | |
| void | setData (std::array< T, N > d) |
| void | setData (uint64_t d) |
| void | setData (uint32_t d) |
| void | setData (uint16_t d) |
| void | setData (uint8_t d) |
| void | setData (int64_t d) |
| void | setData (int32_t d) |
| void | setData (int16_t d) |
| void | setData (int8_t d) |
| void | setData (double d) |
| void | setData (const RegClass ®_class, RegVal val) |
| void | setData (const RegClass ®_class, const void *val) |
| void | setFetchSeq (InstSeqNum seq) |
| void | setCPSeq (InstSeqNum seq) |
| void | setPredicate (bool val) |
| void | setFaulting (bool val) |
| Tick | getWhen () const |
| ThreadContext * | getThread () const |
| StaticInstPtr | getStaticInst () const |
| const PCStateBase & | getPCState () const |
| StaticInstPtr | getMacroStaticInst () const |
| Addr | getAddr () const |
| Addr | getSize () const |
| unsigned | getFlags () const |
| bool | getMemValid () const |
| uint64_t | getIntData () const |
| double | getFloatData () const |
| int | getDataStatus () const |
| InstSeqNum | getFetchSeq () const |
| bool | getFetchSeqValid () const |
| InstSeqNum | getCpSeq () const |
| bool | getCpSeqValid () const |
| bool | getFaulting () const |
Protected Attributes | |
| const ExeTracer & | tracer |
| int64_t | vectorLengthInBytes |
Protected Attributes inherited from gem5::trace::InstRecord | |
| Tick | when |
| ThreadContext * | thread |
| StaticInstPtr | staticInst |
| std::unique_ptr< PCStateBase > | pc |
| StaticInstPtr | macroStaticInst |
| Addr | addr = 0 |
| The address that was accessed. | |
| Addr | size = 0 |
| The size of the memory request. | |
| unsigned | flags = 0 |
| The flags that were assigned to the request. | |
| union gem5::trace::InstRecord::Data | data |
| InstSeqNum | fetch_seq = 0 |
| InstSeqNum | cp_seq = 0 |
| enum gem5::trace::InstRecord::DataStatus | dataStatus = DataInvalid |
| bool | mem_valid = false |
| Are the memory fields in the record valid? | |
| bool | fetch_seq_valid = false |
| Are the fetch sequence number fields valid? | |
| bool | cp_seq_valid = false |
| Are the commit sequence number fields valid? | |
| bool | predicate = true |
| is the predicate for execution this inst true or false (not execed)? | |
| bool | faulting = false |
| Did the execution of this instruction fault? | |
Additional Inherited Members | |
Protected Types inherited from gem5::trace::InstRecord | |
| enum | DataStatus { DataInvalid = 0 , DataInt8 = 1 , DataInt16 = 2 , DataInt32 = 4 , DataInt64 = 8 , DataDouble = 3 , DataReg = 5 } |
| What size of data was written? More... | |
Definition at line 59 of file exetrace.hh.
|
inline |
Definition at line 62 of file exetrace.hh.
References gem5::ThreadContext::getIsaPtr(), gem5::trace::InstRecord::InstRecord(), tracer, and vectorLengthInBytes.
Referenced by gem5::trace::NativeTraceRecord::NativeTraceRecord().
|
virtual |
Implements gem5::trace::InstRecord.
Reimplemented in gem5::trace::NativeTraceRecord.
Definition at line 158 of file exetrace.cc.
References gem5::trace::InstRecord::macroStaticInst, gem5::trace::InstRecord::staticInst, and traceInst().
| void gem5::trace::ExeTracerRecord::traceInst | ( | const StaticInstPtr & | inst, |
| bool | ran ) |
Definition at line 61 of file exetrace.cc.
References gem5::trace::InstRecord::addr, gem5::ccprintf(), gem5::trace::InstRecord::cp_seq, gem5::trace::InstRecord::cp_seq_valid, gem5::trace::InstRecord::data, gem5::trace::InstRecord::DataInvalid, gem5::trace::InstRecord::DataReg, gem5::trace::InstRecord::dataStatus, gem5::loader::debugSymbolTable, gem5::trace::Logger::dprintf_flag(), gem5::BaseMMU::Execute, gem5::trace::InstRecord::fetch_seq, gem5::trace::InstRecord::fetch_seq_valid, gem5::FullSystem, gem5::trace::getDebugLogger(), gem5::trace::InstRecord::getMemValid(), gem5::StaticInst::isMicroop(), gem5::StaticInst::isVector(), gem5::StaticInst::opClass(), gem5::trace::InstRecord::pc, gem5::trace::InstRecord::predicate, gem5::StaticInst::printFlags(), gem5::trace::InstRecord::thread, tracer, vectorLengthInBytes, and gem5::trace::InstRecord::when.
Referenced by gem5::trace::ArmNativeTrace::check(), and dump().
|
protected |
Definition at line 77 of file exetrace.hh.
Referenced by ExeTracerRecord(), and traceInst().
|
protected |
Definition at line 78 of file exetrace.hh.
Referenced by ExeTracerRecord(), and traceInst().