#include <OpClass.h>
Public メソッド | |
OpClassCode::OpClassCode | GetCode () const |
bool | IsAddr () const |
bool | IsBranch () const |
bool | IsCall () const |
bool | IsConditionalBranch () const |
bool | IsFloat () const |
bool | IsIFConversion () const |
bool | IsIndirectJump () const |
bool | IsInt () const |
bool | IsLoad () const |
bool | IsMem () const |
bool | IsNop () const |
bool | IsReturn () const |
bool | IsStore () const |
bool | IsSubroutine () const |
bool | IsSyscall () const |
bool | IsUnconditionalBranch () const |
OpClass (OpClassCode::OpClassCode code) | |
const std::string | ToString () const |
~OpClass () | |
Static Public メソッド | |
static int | GetMaxCode () |
Onikiri::OpClass::OpClass | ( | OpClassCode::OpClassCode | code | ) | [inline] |
参照先 Onikiri::OpClassCode::IsAddr()・Onikiri::OpClassCode::IsBranch()・Onikiri::OpClassCode::IsCall()・Onikiri::OpClassCode::IsConditionalBranch()・Onikiri::OpClassCode::IsFloat()・Onikiri::OpClassCode::IsIFConversion()・Onikiri::OpClassCode::IsIndirectJump()・Onikiri::OpClassCode::IsInt()・Onikiri::OpClassCode::IsLoad()・Onikiri::OpClassCode::IsMem()・Onikiri::OpClassCode::IsNop()・Onikiri::OpClassCode::IsReturn()・Onikiri::OpClassCode::IsStore()・Onikiri::OpClassCode::IsSubroutine()・Onikiri::OpClassCode::IsSyscall()・Onikiri::OpClassCode::IsUnconditionalBranch().
00077 : m_code(code) 00078 { 00079 m_opClassBits = 0; 00080 m_opClassBits |= OpClassCode::IsBranch( code ) ? MASK_BRANCH : 0; 00081 m_opClassBits |= OpClassCode::IsConditionalBranch( code ) ? MASK_CONDITIONAL_BRANCH : 0; 00082 m_opClassBits |= OpClassCode::IsUnconditionalBranch( code ) ? MASK_UNCONDITIONAL_BRANCH : 0; 00083 m_opClassBits |= OpClassCode::IsIndirectJump( code ) ? MASK_INDIRECT_JUMP : 0; 00084 m_opClassBits |= OpClassCode::IsCall( code ) ? MASK_CALL : 0; 00085 m_opClassBits |= OpClassCode::IsReturn( code ) ? MASK_RETURN : 0; 00086 m_opClassBits |= OpClassCode::IsSubroutine( code ) ? MASK_SUBROUTINE : 0; 00087 m_opClassBits |= OpClassCode::IsMem( code ) ? MASK_MEM : 0; 00088 m_opClassBits |= OpClassCode::IsLoad( code ) ? MASK_LOAD : 0; 00089 m_opClassBits |= OpClassCode::IsStore( code ) ? MASK_STORE : 0; 00090 m_opClassBits |= OpClassCode::IsAddr( code ) ? MASK_ADDR : 0; 00091 m_opClassBits |= OpClassCode::IsInt( code ) ? MASK_INT : 0; 00092 m_opClassBits |= OpClassCode::IsFloat( code ) ? MASK_FLOAT : 0; 00093 m_opClassBits |= OpClassCode::IsIFConversion( code ) ? MASK_IFCONV : 0; 00094 m_opClassBits |= OpClassCode::IsSyscall( code ) ? MASK_SYSCALL : 0; 00095 m_opClassBits |= OpClassCode::IsNop( code ) ? MASK_NOP : 0; 00096 }
関数の呼び出しグラフ:
OpClassCode::OpClassCode Onikiri::OpClass::GetCode | ( | ) | const [inline] |
参照元 Onikiri::MemExecUnit::GetLatency()・Onikiri::ExecUnitBase::GetLatency().
Here is the caller graph for this function:
static int Onikiri::OpClass::GetMaxCode | ( | ) | [inline, static] |
bool Onikiri::OpClass::IsAddr | ( | ) | const [inline] |
bool Onikiri::OpClass::IsBranch | ( | ) | const [inline] |
参照元 Onikiri::BPred::Commit()・Onikiri::BPred::Finished()・Onikiri::Core::IsRequiredCheckpointAfter()・Onikiri::BranchTypeUtility::OpClassToBranchType()・Onikiri::InorderSystem::Run().
Here is the caller graph for this function:
bool Onikiri::OpClass::IsCall | ( | ) | const [inline] |
bool Onikiri::OpClass::IsConditionalBranch | ( | ) | const [inline] |
参照元 Onikiri::BPred::Commit()・Onikiri::BPred::Finished()・Onikiri::BranchTypeUtility::OpClassToBranchType()・Onikiri::BTB::Update().
Here is the caller graph for this function:
bool Onikiri::OpClass::IsFloat | ( | ) | const [inline] |
bool Onikiri::OpClass::IsIFConversion | ( | ) | const [inline] |
bool Onikiri::OpClass::IsIndirectJump | ( | ) | const [inline] |
bool Onikiri::OpClass::IsInt | ( | ) | const [inline] |
bool Onikiri::OpClass::IsLoad | ( | ) | const [inline] |
参照元 Onikiri::MemOrderManager::Allocate()・Onikiri::MemOrderManager::Commit()・Onikiri::CacheSystem::Commit()・Onikiri::MemOrderManager::Delete()・Onikiri::MemOrderManager::Finished()・Onikiri::MemOrderManager::GetConsumerLoad()・Onikiri::MemExecUnit::GetLatency()・Onikiri::DataPredMissRecovery::IsRequiredAfterCheckpoint()・Onikiri::DataPredMissRecovery::IsRequiredBeforeCheckpoint()・Onikiri::DebugStub::OnExec()・Onikiri::LatPred::Predict()・Onikiri::PerfectMemDepPred::Resolve()・Onikiri::InorderSystem::Run().
Here is the caller graph for this function:
bool Onikiri::OpClass::IsMem | ( | ) | const [inline] |
参照元 Onikiri::MemOrderManager::Allocate()・Onikiri::CacheSystem::Commit()・Onikiri::MemExecUnit::GetLatency()・Onikiri::MemExecUnit::GetLatencyCount()・Onikiri::ForwardEmulator::OnCommit()・Onikiri::PerfectMemDepPred::Resolve().
Here is the caller graph for this function:
bool Onikiri::OpClass::IsNop | ( | ) | const [inline] |
bool Onikiri::OpClass::IsReturn | ( | ) | const [inline] |
bool Onikiri::OpClass::IsStore | ( | ) | const [inline] |
参照元 Onikiri::Retirer::CanCommitOp()・Onikiri::MemOrderManager::Commit()・Onikiri::MemOrderManager::Delete()・Onikiri::MemOrderManager::Finished()・Onikiri::Op::GetFirstConsumer()・Onikiri::MemExecUnit::GetLatency()・Onikiri::MemExecUnit::GetLatencyCount()・Onikiri::DataPredMissRecovery::IsRequiredAfterCheckpoint()・Onikiri::DataPredMissRecovery::IsRequiredBeforeCheckpoint()・Onikiri::DebugStub::OnExec()・Onikiri::ForwardEmulator::OnFetch()・Onikiri::PerfectMemDepPred::Resolve()・Onikiri::InorderSystem::Run().
Here is the caller graph for this function:
bool Onikiri::OpClass::IsSubroutine | ( | ) | const [inline] |
bool Onikiri::OpClass::IsSyscall | ( | ) | const [inline] |
参照元 Onikiri::Fetcher::IsSerializingRequired()・Onikiri::ForwardEmulator::OnCommit()・Onikiri::ForwardEmulator::OnFetch().
Here is the caller graph for this function:
bool Onikiri::OpClass::IsUnconditionalBranch | ( | ) | const [inline] |
const std::string Onikiri::OpClass::ToString | ( | ) | const [inline] |
参照先 Onikiri::OpClassCode::ToString().
00180 { 00181 return OpClassCode::ToString( m_code ); 00182 }
関数の呼び出しグラフ:
Here is the caller graph for this function: