ChampSim
ooo_model_instr Struct Reference

#include <instruction.h>

Public Member Functions

 ooo_model_instr (uint8_t cpu, input_instr instr)
 
 ooo_model_instr (uint8_t, cloudsuite_instr instr)
 
std::size_t num_mem_ops () const
 

Static Public Member Functions

static bool program_order (const ooo_model_instr &lhs, const ooo_model_instr &rhs)
 

Public Attributes

uint64_t instr_id = 0
 
uint64_t ip = 0
 
uint64_t event_cycle = 0
 
bool is_branch = 0
 
bool branch_taken = 0
 
bool branch_prediction = 0
 
bool branch_mispredicted = 0
 
std::array< uint8_t, 2 > asid = {std::numeric_limits<uint8_t>::max(), std::numeric_limits<uint8_t>::max()}
 
uint8_t branch_type = NOT_BRANCH
 
uint64_t branch_target = 0
 
uint8_t dib_checked = 0
 
uint8_t fetched = 0
 
uint8_t decoded = 0
 
uint8_t scheduled = 0
 
uint8_t executed = 0
 
unsigned completed_mem_ops = 0
 
int num_reg_dependent = 0
 
std::vector< uint8_t > destination_registers = {}
 
std::vector< uint8_t > source_registers = {}
 
std::vector< uint64_t > destination_memory = {}
 
std::vector< uint64_t > source_memory = {}
 
std::vector< std::reference_wrapper< ooo_model_instr > > registers_instrs_depend_on_me
 

Private Member Functions

template<typename T >
 ooo_model_instr (T instr, std::array< uint8_t, 2 > local_asid)
 

Constructor & Destructor Documentation

◆ ooo_model_instr() [1/3]

template<typename T >
ooo_model_instr::ooo_model_instr ( instr,
std::array< uint8_t, 2 >  local_asid 
)
inlineprivate

◆ ooo_model_instr() [2/3]

ooo_model_instr::ooo_model_instr ( uint8_t  cpu,
input_instr  instr 
)
inline

◆ ooo_model_instr() [3/3]

ooo_model_instr::ooo_model_instr ( uint8_t  ,
cloudsuite_instr  instr 
)
inline

Member Function Documentation

◆ num_mem_ops()

std::size_t ooo_model_instr::num_mem_ops ( ) const
inline

◆ program_order()

static bool ooo_model_instr::program_order ( const ooo_model_instr lhs,
const ooo_model_instr rhs 
)
inlinestatic

Member Data Documentation

◆ asid

std::array<uint8_t, 2> ooo_model_instr::asid = {std::numeric_limits<uint8_t>::max(), std::numeric_limits<uint8_t>::max()}

◆ branch_mispredicted

bool ooo_model_instr::branch_mispredicted = 0

◆ branch_prediction

bool ooo_model_instr::branch_prediction = 0

◆ branch_taken

bool ooo_model_instr::branch_taken = 0

◆ branch_target

uint64_t ooo_model_instr::branch_target = 0

◆ branch_type

uint8_t ooo_model_instr::branch_type = NOT_BRANCH

◆ completed_mem_ops

unsigned ooo_model_instr::completed_mem_ops = 0

◆ decoded

uint8_t ooo_model_instr::decoded = 0

◆ destination_memory

std::vector<uint64_t> ooo_model_instr::destination_memory = {}

◆ destination_registers

std::vector<uint8_t> ooo_model_instr::destination_registers = {}

◆ dib_checked

uint8_t ooo_model_instr::dib_checked = 0

◆ event_cycle

uint64_t ooo_model_instr::event_cycle = 0

◆ executed

uint8_t ooo_model_instr::executed = 0

◆ fetched

uint8_t ooo_model_instr::fetched = 0

◆ instr_id

uint64_t ooo_model_instr::instr_id = 0

◆ ip

uint64_t ooo_model_instr::ip = 0

◆ is_branch

bool ooo_model_instr::is_branch = 0

◆ num_reg_dependent

int ooo_model_instr::num_reg_dependent = 0

◆ registers_instrs_depend_on_me

std::vector<std::reference_wrapper<ooo_model_instr> > ooo_model_instr::registers_instrs_depend_on_me

◆ scheduled

uint8_t ooo_model_instr::scheduled = 0

◆ source_memory

std::vector<uint64_t> ooo_model_instr::source_memory = {}

◆ source_registers

std::vector<uint8_t> ooo_model_instr::source_registers = {}

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