gem5
[DEVELOP-FOR-23.0]
|
#include <insttracer.hh>
Classes | |
union | Data |
Public Member Functions | |
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) |
virtual void | dump ()=0 |
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 Types | |
enum | DataStatus { DataInvalid = 0, DataInt8 = 1, DataInt16 = 2, DataInt32 = 4, DataInt64 = 8, DataDouble = 3, DataReg = 5 } |
Protected Attributes | |
Tick | when |
ThreadContext * | thread |
StaticInstPtr | staticInst |
std::unique_ptr< PCStateBase > | pc |
StaticInstPtr | macroStaticInst |
Addr | addr = 0 |
The address that was accessed. More... | |
Addr | size = 0 |
The size of the memory request. More... | |
unsigned | flags = 0 |
The flags that were assigned to the request. More... | |
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 |
bool | fetch_seq_valid = false |
bool | cp_seq_valid = false |
bool | predicate = true |
is the predicate for execution this inst true or false (not execed)? More... | |
bool | faulting = false |
Did the execution of this instruction fault? (requires ExecFaulting to be enabled) More... | |
Definition at line 60 of file insttracer.hh.
|
inline |
Definition at line 159 of file insttracer.hh.
|
inlinevirtual |
Definition at line 166 of file insttracer.hh.
References gem5::trace::InstRecord::Data::asReg, data, DataReg, and dataStatus.
|
pure virtual |
Implemented in gem5::trace::TarmacBaseRecord, gem5::trace::TarmacTracerRecord, gem5::trace::TarmacParserRecord, gem5::trace::InstPBTraceRecord, gem5::trace::NativeTraceRecord, gem5::trace::ExeTracerRecord, and gem5::trace::IntelTraceRecord.
Referenced by gem5::BaseSimpleCPU::postExecute(), and gem5::Checker< gem5::RefCountingPtr >::verify().
|
inline |
Definition at line 271 of file insttracer.hh.
References addr.
Referenced by gem5::trace::TarmacTracerRecordV8::addMemEntry(), gem5::trace::TarmacTracerRecord::addMemEntry(), and gem5::trace::InstPBTraceRecord::dump().
|
inline |
Definition at line 283 of file insttracer.hh.
References cp_seq.
|
inline |
Definition at line 284 of file insttracer.hh.
References cp_seq_valid.
|
inline |
Definition at line 278 of file insttracer.hh.
References dataStatus.
|
inline |
Definition at line 286 of file insttracer.hh.
References faulting.
|
inline |
Definition at line 280 of file insttracer.hh.
References fetch_seq.
|
inline |
Definition at line 281 of file insttracer.hh.
References fetch_seq_valid.
|
inline |
Definition at line 273 of file insttracer.hh.
References flags.
Referenced by gem5::trace::InstPBTraceRecord::dump().
|
inline |
Definition at line 277 of file insttracer.hh.
References gem5::trace::InstRecord::Data::asDouble, and data.
|
inline |
Definition at line 276 of file insttracer.hh.
References gem5::trace::InstRecord::Data::asInt, and data.
Referenced by gem5::trace::TarmacTracerRecordV8::addMemEntry(), and gem5::trace::TarmacTracerRecord::addMemEntry().
|
inline |
Definition at line 269 of file insttracer.hh.
References macroStaticInst.
Referenced by gem5::trace::ArmNativeTrace::check().
|
inline |
Definition at line 274 of file insttracer.hh.
References mem_valid.
Referenced by gem5::trace::TarmacTracerRecordV8::addMemEntry(), gem5::trace::TarmacTracerRecord::addMemEntry(), gem5::trace::InstPBTraceRecord::dump(), and gem5::trace::ExeTracerRecord::traceInst().
|
inline |
Definition at line 268 of file insttracer.hh.
References pc.
|
inline |
Definition at line 272 of file insttracer.hh.
References size.
Referenced by gem5::trace::TarmacTracerRecordV8::addMemEntry(), gem5::trace::TarmacTracerRecord::addMemEntry(), and gem5::trace::InstPBTraceRecord::dump().
|
inline |
Definition at line 267 of file insttracer.hh.
References staticInst.
Referenced by gem5::trace::X86NativeTrace::check(), and gem5::trace::ArmNativeTrace::check().
|
inline |
Definition at line 266 of file insttracer.hh.
References thread.
Referenced by gem5::trace::SparcNativeTrace::check(), gem5::trace::X86NativeTrace::check(), and gem5::trace::ArmNativeTrace::check().
|
inline |
Definition at line 265 of file insttracer.hh.
References when.
|
inline |
Definition at line 252 of file insttracer.hh.
References cp_seq, and cp_seq_valid.
|
inline |
Definition at line 238 of file insttracer.hh.
References gem5::trace::InstRecord::Data::asReg, data, DataReg, dataStatus, and gem5::X86ISA::val.
Definition at line 231 of file insttracer.hh.
References gem5::trace::InstRecord::Data::asReg, data, DataReg, dataStatus, and gem5::X86ISA::val.
|
inline |
Definition at line 224 of file insttracer.hh.
References gem5::trace::InstRecord::Data::asDouble, gem5::ArmISA::d, data, DataDouble, and dataStatus.
|
inline |
Definition at line 220 of file insttracer.hh.
References gem5::ArmISA::d, and setData().
Referenced by setData().
|
inline |
Definition at line 219 of file insttracer.hh.
References gem5::ArmISA::d, and setData().
Referenced by setData().
|
inline |
Definition at line 218 of file insttracer.hh.
References gem5::ArmISA::d, and setData().
Referenced by setData().
|
inline |
Definition at line 221 of file insttracer.hh.
References gem5::ArmISA::d, and setData().
Referenced by setData().
|
inline |
Definition at line 184 of file insttracer.hh.
References gem5::trace::InstRecord::Data::asInt, gem5::ArmISA::d, data, DataInt16, DataInt32, DataInt64, DataInt8, and dataStatus.
Referenced by gem5::amoMemAtomic(), gem5::X86ISA::getMem(), gem5::getMem(), gem5::X86ISA::readMemAtomic(), gem5::readMemAtomic(), gem5::writeMemAtomic(), gem5::X86ISA::writeMemAtomic(), gem5::writeMemTiming(), and gem5::X86ISA::writeMemTiming().
|
inline |
Definition at line 206 of file insttracer.hh.
References gem5::trace::InstRecord::Data::asInt, gem5::ArmISA::d, data, DataInt16, and dataStatus.
|
inline |
Definition at line 200 of file insttracer.hh.
References gem5::trace::InstRecord::Data::asInt, gem5::ArmISA::d, data, DataInt32, and dataStatus.
|
inline |
Definition at line 194 of file insttracer.hh.
References gem5::trace::InstRecord::Data::asInt, gem5::ArmISA::d, data, DataInt64, and dataStatus.
|
inline |
Definition at line 212 of file insttracer.hh.
References gem5::trace::InstRecord::Data::asInt, gem5::ArmISA::d, data, DataInt8, and dataStatus.
|
inline |
Definition at line 260 of file insttracer.hh.
References faulting, and gem5::X86ISA::val.
Referenced by gem5::BaseSimpleCPU::traceFault().
|
inline |
Definition at line 245 of file insttracer.hh.
References fetch_seq, and fetch_seq_valid.
Definition at line 174 of file insttracer.hh.
References gem5::ArmISA::a, addr, gem5::VegaISA::f, flags, mem_valid, gem5::VegaISA::s, and size.
Referenced by gem5::AtomicSimpleCPU::amoMem(), gem5::TimingSimpleCPU::htmSendAbortSignal(), gem5::TimingSimpleCPU::initiateMemAMO(), gem5::TimingSimpleCPU::initiateMemMgmtCmd(), gem5::TimingSimpleCPU::initiateMemRead(), gem5::AtomicSimpleCPU::readMem(), gem5::AtomicSimpleCPU::writeMem(), and gem5::TimingSimpleCPU::writeMem().
|
inline |
Definition at line 258 of file insttracer.hh.
References predicate, and gem5::X86ISA::val.
Referenced by gem5::SimpleExecContext::setPredicate(), and gem5::o3::DynInst::setPredicate().
|
inline |
Definition at line 172 of file insttracer.hh.
References when.
|
protected |
The address that was accessed.
Definition at line 85 of file insttracer.hh.
Referenced by gem5::trace::IntelTraceRecord::dump(), getAddr(), gem5::trace::TarmacTracerRecordV8::TraceInstEntryV8::print(), gem5::trace::TarmacTracerRecord::TraceInstEntry::print(), gem5::trace::TarmacTracerRecordV8::TraceMemEntryV8::print(), gem5::trace::TarmacTracerRecord::TraceMemEntry::print(), gem5::trace::TarmacParserRecord::readMemNoEffect(), setMem(), gem5::trace::ExeTracerRecord::traceInst(), gem5::trace::TarmacTracerRecordV8::TraceInstEntryV8::TraceInstEntryV8(), and gem5::trace::TarmacTracerRecordV8::TraceMemEntryV8::TraceMemEntryV8().
|
protected |
Definition at line 118 of file insttracer.hh.
Referenced by getCpSeq(), setCPSeq(), and gem5::trace::ExeTracerRecord::traceInst().
|
protected |
Referenced by gem5::trace::TarmacParserRecord::advanceTrace(), getFloatData(), getIntData(), gem5::trace::TarmacTracerRecordV8::TraceMemEntryV8::print(), gem5::trace::TarmacTracerRecord::TraceMemEntry::print(), gem5::trace::TarmacParserRecord::readMemNoEffect(), setData(), gem5::trace::ExeTracerRecord::traceInst(), and ~InstRecord().
|
protected |
Did the execution of this instruction fault? (requires ExecFaulting to be enabled)
Definition at line 156 of file insttracer.hh.
Referenced by getFaulting(), and setFaulting().
|
protected |
Definition at line 112 of file insttracer.hh.
Referenced by getFetchSeq(), setFetchSeq(), and gem5::trace::ExeTracerRecord::traceInst().
|
protected |
The flags that were assigned to the request.
Definition at line 87 of file insttracer.hh.
Referenced by getFlags(), gem5::trace::TarmacParserRecord::readMemNoEffect(), and setMem().
|
protected |
Definition at line 72 of file insttracer.hh.
Referenced by gem5::trace::ExeTracerRecord::dump(), gem5::trace::InstPBTraceRecord::dump(), gem5::trace::TarmacTracerRecord::dump(), and getMacroStaticInst().
|
protected |
Definition at line 71 of file insttracer.hh.
Referenced by gem5::trace::IntelTraceRecord::dump(), gem5::trace::InstPBTraceRecord::dump(), gem5::trace::TarmacParserRecord::dump(), gem5::trace::TarmacTracerRecord::dump(), getPCState(), gem5::trace::TarmacBaseRecord::pcToISetState(), and gem5::trace::ExeTracerRecord::traceInst().
|
protected |
is the predicate for execution this inst true or false (not execed)?
Definition at line 150 of file insttracer.hh.
Referenced by gem5::trace::TarmacTracerRecordV8::addInstEntry(), gem5::trace::TarmacTracerRecord::addInstEntry(), setPredicate(), and gem5::trace::ExeTracerRecord::traceInst().
|
protected |
The size of the memory request.
Definition at line 86 of file insttracer.hh.
Referenced by getSize(), gem5::trace::TarmacTracerRecordV8::TraceMemEntryV8::print(), gem5::trace::TarmacTracerRecord::TraceMemEntry::print(), gem5::trace::TarmacParserRecord::readMemNoEffect(), and setMem().
|
protected |
Definition at line 70 of file insttracer.hh.
Referenced by gem5::trace::TarmacTracerRecordV8::addRegEntry(), gem5::trace::TarmacTracerRecord::addRegEntry(), gem5::trace::IntelTraceRecord::dump(), gem5::trace::ExeTracerRecord::dump(), gem5::trace::NativeTraceRecord::dump(), gem5::trace::InstPBTraceRecord::dump(), gem5::trace::TarmacParserRecord::dump(), gem5::trace::TarmacTracerRecord::dump(), and getStaticInst().
|
protected |
Definition at line 67 of file insttracer.hh.
Referenced by gem5::trace::InstPBTraceRecord::dump(), gem5::trace::TarmacParserRecord::dump(), gem5::trace::TarmacTracerRecord::dump(), getThread(), gem5::trace::TarmacBaseRecord::InstEntry::InstEntry(), gem5::trace::TarmacParserRecord::readMemNoEffect(), gem5::trace::ExeTracerRecord::traceInst(), gem5::trace::TarmacTracerRecordV8::TraceInstEntryV8::TraceInstEntryV8(), gem5::trace::TarmacTracerRecordV8::TraceMemEntryV8::TraceMemEntryV8(), gem5::trace::TarmacTracerRecord::TraceRegEntry::updateCC(), gem5::trace::TarmacTracerRecord::TraceRegEntry::updateInt(), gem5::trace::TarmacTracerRecord::TraceRegEntry::updateMisc(), gem5::trace::TarmacTracerRecordV8::TraceRegEntryV8::updatePred(), and gem5::trace::TarmacTracerRecordV8::TraceRegEntryV8::updateVec().
|
protected |
Definition at line 63 of file insttracer.hh.
Referenced by gem5::trace::IntelTraceRecord::dump(), getWhen(), setWhen(), and gem5::trace::ExeTracerRecord::traceInst().