クラス Onikiri::BranchTypeUtility

#include <BranchType.h>

すべてのメンバ一覧

Public メソッド

size_t GetTypeCount () const
String GetTypeName (size_t index) const
BranchType OpClassToBranchType (const OpClass &opClass) const


説明

BranchType.h54 行で定義されています。


関数

size_t BranchTypeUtility::GetTypeCount (  )  const

BranchType.cpp37 行で定義されています。

参照先 Onikiri::BT_CONDITIONALOnikiri::BT_END.

00038 {
00039     return BT_END - BT_CONDITIONAL;
00040 }

String BranchTypeUtility::GetTypeName ( size_t  index  )  const

BranchType.cpp59 行で定義されています。

参照先 Onikiri::BT_ENDnameTHROW_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.cpp42 行で定義されています。

参照先 Onikiri::BT_CALLOnikiri::BT_CONDITIONALOnikiri::BT_CONDITIONAL_RETURNOnikiri::BT_NONOnikiri::BT_RETURNOnikiri::BT_UNCONDITIONALOnikiri::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:


このクラスの説明は次のファイルから生成されました:
Onikiri2に対してTue Jun 18 14:51:36 2013に生成されました。  doxygen 1.4.7