#include <BranchType.h>
Public メソッド | |
size_t | GetTypeCount () const |
String | GetTypeName (size_t index) const |
BranchType | OpClassToBranchType (const OpClass &opClass) const |
BranchType.h の 54 行で定義されています。
size_t BranchTypeUtility::GetTypeCount | ( | ) | const |
BranchType.cpp の 37 行で定義されています。
参照先 Onikiri::BT_CONDITIONAL・Onikiri::BT_END.
00038 { 00039 return BT_END - BT_CONDITIONAL; 00040 }
String BranchTypeUtility::GetTypeName | ( | size_t | index | ) | const |
BranchType.cpp の 59 行で定義されています。
参照先 Onikiri::BT_END・name・THROW_RUNTIME_ERROR.
00060 { 00061 const char* name[] = 00062 { 00063 "Conditional", 00064 "Unconditional", 00065 "Call", 00066 "Return", 00067 "Conditional return", 00068 "Not branch" 00069 }; 00070 00071 BranchType type = (BranchType)index; 00072 if(type == BT_END){ 00073 THROW_RUNTIME_ERROR("BT_END is invalid."); 00074 } 00075 return name[type]; 00076 }
BranchType BranchTypeUtility::OpClassToBranchType | ( | const OpClass & | opClass | ) | const |
BranchType.cpp の 42 行で定義されています。
参照先 Onikiri::BT_CALL・Onikiri::BT_CONDITIONAL・Onikiri::BT_CONDITIONAL_RETURN・Onikiri::BT_NON・Onikiri::BT_RETURN・Onikiri::BT_UNCONDITIONAL・Onikiri::OpClass::IsBranch()・Onikiri::OpClass::IsCall()・Onikiri::OpClass::IsConditionalBranch()・Onikiri::OpClass::IsReturn().
参照元 Onikiri::BPred::Commit()・Onikiri::BTB::Update().
00043 { 00044 if(!opClass.IsBranch()) 00045 return BT_NON; 00046 00047 bool conditinal = opClass.IsConditionalBranch(); 00048 00049 if( opClass.IsCall() ) 00050 return BT_CALL; 00051 else if( opClass.IsReturn() ) 00052 return conditinal ? BT_CONDITIONAL_RETURN : BT_RETURN; 00053 else if( conditinal ) 00054 return BT_CONDITIONAL; 00055 else 00056 return BT_UNCONDITIONAL; 00057 }
関数の呼び出しグラフ:
Here is the caller graph for this function: