gem5 v24.0.0.0
Loading...
Searching...
No Matches
gem5::trace::InstRecord Class Referenceabstract

#include <insttracer.hh>

Inheritance diagram for gem5::trace::InstRecord:
gem5::trace::ExeTracerRecord gem5::trace::InstPBTraceRecord gem5::trace::IntelTraceRecord gem5::trace::TarmacBaseRecord gem5::trace::NativeTraceRecord gem5::trace::TarmacParserRecord gem5::trace::TarmacTracerRecord gem5::trace::TarmacTracerRecordV8

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 &reg_class, RegVal val)
 
void setData (const RegClass &reg_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
 
ThreadContextgetThread () const
 
StaticInstPtr getStaticInst () const
 
const PCStateBasegetPCState () 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
}
 What size of data was written? More...
 

Protected Attributes

Tick when
 
ThreadContextthread
 
StaticInstPtr staticInst
 
std::unique_ptr< PCStateBasepc
 
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? (requires ExecFaulting to be enabled)
 

Detailed Description

Definition at line 61 of file insttracer.hh.

Constructor & Destructor Documentation

◆ InstRecord()

gem5::trace::InstRecord::InstRecord ( Tick _when,
ThreadContext * _thread,
const StaticInstPtr _staticInst,
const PCStateBase & _pc,
const StaticInstPtr _macroStaticInst = nullptr )
inline

Definition at line 160 of file insttracer.hh.

◆ ~InstRecord()

virtual gem5::trace::InstRecord::~InstRecord ( )
inlinevirtual

Definition at line 167 of file insttracer.hh.

References gem5::trace::InstRecord::Data::asReg, data, DataReg, and dataStatus.

Member Function Documentation

◆ dump()

◆ getAddr()

Addr gem5::trace::InstRecord::getAddr ( ) const
inline

◆ getCpSeq()

InstSeqNum gem5::trace::InstRecord::getCpSeq ( ) const
inline

Definition at line 308 of file insttracer.hh.

References cp_seq.

◆ getCpSeqValid()

bool gem5::trace::InstRecord::getCpSeqValid ( ) const
inline

Definition at line 309 of file insttracer.hh.

References cp_seq_valid.

◆ getDataStatus()

int gem5::trace::InstRecord::getDataStatus ( ) const
inline

Definition at line 303 of file insttracer.hh.

References dataStatus.

◆ getFaulting()

bool gem5::trace::InstRecord::getFaulting ( ) const
inline

Definition at line 311 of file insttracer.hh.

References faulting.

◆ getFetchSeq()

InstSeqNum gem5::trace::InstRecord::getFetchSeq ( ) const
inline

Definition at line 305 of file insttracer.hh.

References fetch_seq.

◆ getFetchSeqValid()

bool gem5::trace::InstRecord::getFetchSeqValid ( ) const
inline

Definition at line 306 of file insttracer.hh.

References fetch_seq_valid.

◆ getFlags()

unsigned gem5::trace::InstRecord::getFlags ( ) const
inline

Definition at line 298 of file insttracer.hh.

References flags.

Referenced by gem5::trace::InstPBTraceRecord::dump().

◆ getFloatData()

double gem5::trace::InstRecord::getFloatData ( ) const
inline

Definition at line 302 of file insttracer.hh.

References gem5::trace::InstRecord::Data::asDouble, and data.

◆ getIntData()

uint64_t gem5::trace::InstRecord::getIntData ( ) const
inline

◆ getMacroStaticInst()

StaticInstPtr gem5::trace::InstRecord::getMacroStaticInst ( ) const
inline

Definition at line 294 of file insttracer.hh.

References macroStaticInst.

Referenced by gem5::trace::ArmNativeTrace::check().

◆ getMemValid()

◆ getPCState()

const PCStateBase & gem5::trace::InstRecord::getPCState ( ) const
inline

Definition at line 293 of file insttracer.hh.

References pc.

◆ getSize()

Addr gem5::trace::InstRecord::getSize ( ) const
inline

◆ getStaticInst()

StaticInstPtr gem5::trace::InstRecord::getStaticInst ( ) const
inline

Definition at line 292 of file insttracer.hh.

References staticInst.

Referenced by gem5::trace::ArmNativeTrace::check(), and gem5::trace::X86NativeTrace::check().

◆ getThread()

ThreadContext * gem5::trace::InstRecord::getThread ( ) const
inline

◆ getWhen()

Tick gem5::trace::InstRecord::getWhen ( ) const
inline

Definition at line 290 of file insttracer.hh.

References when.

◆ setCPSeq()

void gem5::trace::InstRecord::setCPSeq ( InstSeqNum seq)
inline

Definition at line 277 of file insttracer.hh.

References cp_seq, and cp_seq_valid.

◆ setData() [1/12]

void gem5::trace::InstRecord::setData ( const RegClass & reg_class,
const void * val )
inline

◆ setData() [2/12]

void gem5::trace::InstRecord::setData ( const RegClass & reg_class,
RegVal val )
inline

◆ setData() [3/12]

void gem5::trace::InstRecord::setData ( double d)
inline

◆ setData() [4/12]

void gem5::trace::InstRecord::setData ( int16_t d)
inline

Definition at line 221 of file insttracer.hh.

References gem5::ArmISA::d, and setData().

Referenced by setData().

◆ setData() [5/12]

void gem5::trace::InstRecord::setData ( int32_t d)
inline

Definition at line 220 of file insttracer.hh.

References gem5::ArmISA::d, and setData().

Referenced by setData().

◆ setData() [6/12]

void gem5::trace::InstRecord::setData ( int64_t d)
inline

Definition at line 219 of file insttracer.hh.

References gem5::ArmISA::d, and setData().

Referenced by setData().

◆ setData() [7/12]

void gem5::trace::InstRecord::setData ( int8_t d)
inline

Definition at line 222 of file insttracer.hh.

References gem5::ArmISA::d, and setData().

Referenced by setData().

◆ setData() [8/12]

◆ setData() [9/12]

void gem5::trace::InstRecord::setData ( uint16_t d)
inline

◆ setData() [10/12]

void gem5::trace::InstRecord::setData ( uint32_t d)
inline

◆ setData() [11/12]

void gem5::trace::InstRecord::setData ( uint64_t d)
inline

◆ setData() [12/12]

void gem5::trace::InstRecord::setData ( uint8_t d)
inline

◆ setFaulting()

void gem5::trace::InstRecord::setFaulting ( bool val)
inline

Definition at line 285 of file insttracer.hh.

References faulting, and gem5::X86ISA::val.

Referenced by gem5::BaseSimpleCPU::traceFault().

◆ setFetchSeq()

void gem5::trace::InstRecord::setFetchSeq ( InstSeqNum seq)
inline

Definition at line 270 of file insttracer.hh.

References fetch_seq, and fetch_seq_valid.

◆ setMem()

◆ setPredicate()

void gem5::trace::InstRecord::setPredicate ( bool val)
inline

◆ setWhen()

void gem5::trace::InstRecord::setWhen ( Tick new_when)
inline

Definition at line 173 of file insttracer.hh.

References when.

Member Data Documentation

◆ addr

◆ cp_seq

InstSeqNum gem5::trace::InstRecord::cp_seq = 0
protected

Definition at line 119 of file insttracer.hh.

Referenced by getCpSeq(), setCPSeq(), and gem5::trace::ExeTracerRecord::traceInst().

◆ data

◆ faulting

bool gem5::trace::InstRecord::faulting = false
protected

Did the execution of this instruction fault? (requires ExecFaulting to be enabled)

Definition at line 157 of file insttracer.hh.

Referenced by getFaulting(), and setFaulting().

◆ fetch_seq

InstSeqNum gem5::trace::InstRecord::fetch_seq = 0
protected

◆ flags

unsigned gem5::trace::InstRecord::flags = 0
protected

The flags that were assigned to the request.

Definition at line 88 of file insttracer.hh.

Referenced by getFlags(), gem5::trace::TarmacParserRecord::readMemNoEffect(), and setMem().

◆ macroStaticInst

StaticInstPtr gem5::trace::InstRecord::macroStaticInst
protected

◆ pc

◆ predicate

bool gem5::trace::InstRecord::predicate = true
protected

is the predicate for execution this inst true or false (not execed)?

Definition at line 151 of file insttracer.hh.

Referenced by gem5::trace::TarmacTracerRecord::addInstEntry(), gem5::trace::TarmacTracerRecordV8::addInstEntry(), setPredicate(), and gem5::trace::ExeTracerRecord::traceInst().

◆ size

◆ staticInst

◆ thread

◆ when

Tick gem5::trace::InstRecord::when
protected

The documentation for this class was generated from the following file:

Generated on Tue Jun 18 2024 16:24:24 for gem5 by doxygen 1.11.0