ネームスペース Onikiri::OpClassCode


列挙型

enum  OpClassCode {
  CALL = 0, CALL_JUMP, RET, RETC,
  INT_BEGIN, iBC = INT_BEGIN, iBU, iJUMP,
  iLD, iST, iIMM, iMOV,
  iALU, iSFT, iMUL, iDIV,
  iBYTE, INT_END = iBYTE, FLOAT_BEGIN, fBC = FLOAT_BEGIN,
  fLD, fST, fMOV, fNEG,
  fADD, fMUL, fDIV, fCONV,
  fELEM, FLOAT_END = fELEM, ifCONV, syscall,
  syscall_branch, ADDR, iNOP, fNOP,
  UNDEF, other, Code_MAX = other
}

関数

int FromString (const char *s)
bool IsAddr (int code)
bool IsBranch (int code)
bool IsCall (int code)
bool IsConditionalBranch (int code)
bool IsFloat (int code)
bool IsIFConversion (int code)
bool IsIndirectJump (int code)
bool IsInt (int code)
bool IsLoad (int code)
bool IsMem (int code)
bool IsNop (int code)
bool IsReturn (int code)
bool IsStore (int code)
bool IsSubroutine (int code)
bool IsSyscall (int code)
bool IsUnconditionalBranch (int code)
const char * ToString (int c)


列挙型

enum Onikiri::OpClassCode::OpClassCode

列挙型の値:
CALL 
CALL_JUMP 
RET 
RETC 
INT_BEGIN 
iBC 
iBU 
iJUMP 
iLD 
iST 
iIMM 
iMOV 
iALU 
iSFT 
iMUL 
iDIV 
iBYTE 
INT_END 
FLOAT_BEGIN 
fBC 
fLD 
fST 
fMOV 
fNEG 
fADD 
fMUL 
fDIV 
fCONV 
fELEM 
FLOAT_END 
ifCONV 
syscall 
syscall_branch 
ADDR 
iNOP 
fNOP 
UNDEF 
other 
Code_MAX 

OpClassCode.h42 行で定義されています。

00043         {
00044             CALL = 0,           //  subroutine call
00045             CALL_JUMP,          //  indirect subroutine call
00046             RET,                //  return from subroutine
00047             RETC,               //  return from subroutine conditional
00048 
00049             INT_BEGIN,
00050             iBC = INT_BEGIN,    //  integer conditional branch
00051             iBU,                //  integer unconditional branch
00052             iJUMP,              //  integer unconditional jump
00053 
00054             iLD,                //  integer  load
00055             iST,                //  integer  store
00056             iIMM,               //  integer  set immediate
00057             iMOV,               //  integer  move
00058             iALU,               //  integer  Arithmetic/Logic
00059             iSFT,               // (integer) shift
00060             iMUL,               //  integer  multiply
00061             iDIV,               //  integer  divide
00062             iBYTE,              // (integer) byte ops
00063             INT_END = iBYTE,
00064 
00065             FLOAT_BEGIN,
00066             fBC = FLOAT_BEGIN,  //  FP branch (conditional)
00067             fLD,                //  FP load
00068             fST,                //  FP store
00069             fMOV,               //  FP move
00070             fNEG,               //  FP negate
00071             fADD,               //  FP add/sub
00072             fMUL,               //  FP multiply
00073             fDIV,               //  FP divide
00074             fCONV,              //  FP convert
00075             fELEM,              //  FP elementary functions (SQRT, SIN, COS, etc)
00076             FLOAT_END = fELEM,
00077 
00078             ifCONV,             // INT <-> FP conversion
00079 
00080             syscall,            //  system call
00081             syscall_branch,     //  system call with branch
00082 
00083             ADDR,               // address calculation
00084 
00085             // EXEC_END = ADDR, // タsinsncode
00086 
00087             iNOP,               // NOP
00088             fNOP,               // floating NOP
00089 
00090             UNDEF,              // undefined operation
00091 
00092             other,              //  ???
00093             
00094             Code_MAX = other
00095         };


関数

int Onikiri::OpClassCode::FromString ( const char *  s  ) 

OpClassCode.cpp107 行で定義されています。

参照先 THROW_RUNTIME_ERROR.

参照元 Onikiri::ExecUnitBase::Initialize()Onikiri::ExecLatencyInfo::Initialize().

00108         {
00109             for (const CodeStrElem* e = CodeStrBegin; e != CodeStrEnd; ++e) {
00110                 if (strcmp(e->str, s) == 0)
00111                     return e->code;
00112             }
00113 
00114             THROW_RUNTIME_ERROR("unknown code (%s).", s);
00115             return -1;
00116         }

Here is the caller graph for this function:

bool Onikiri::OpClassCode::IsAddr ( int  code  ) 

OpClassCode.cpp200 行で定義されています。

参照先 ADDR.

参照元 Onikiri::OpClass::OpClass().

00201         {
00202             return code == ADDR;
00203         }

Here is the caller graph for this function:

bool Onikiri::OpClassCode::IsBranch ( int  code  ) 

OpClassCode.cpp123 行で定義されています。

参照先 IsConditionalBranch()IsUnconditionalBranch().

参照元 Onikiri::OpClass::OpClass().

00124         {
00125             return IsConditionalBranch(code) || IsUnconditionalBranch(code);
00126         }

関数の呼び出しグラフ:

Here is the caller graph for this function:

bool Onikiri::OpClassCode::IsCall ( int  code  ) 

OpClassCode.cpp158 行で定義されています。

参照先 CALLCALL_JUMP.

参照元 IsSubroutine()IsUnconditionalBranch()Onikiri::OpClass::OpClass().

00159         {
00160             return 
00161                 code == CALL || 
00162                 code == CALL_JUMP;
00163         }

Here is the caller graph for this function:

bool Onikiri::OpClassCode::IsConditionalBranch ( int  code  ) 

OpClassCode.cpp131 行で定義されています。

参照先 fBCiBCRETC.

参照元 IsBranch()Onikiri::OpClass::OpClass().

00132         {
00133             return
00134                 code == iBC ||
00135                 code == fBC || 
00136                 code == RETC;
00137         }

Here is the caller graph for this function:

bool Onikiri::OpClassCode::IsFloat ( int  code  ) 

OpClassCode.cpp214 行で定義されています。

参照先 FLOAT_BEGINFLOAT_END.

参照元 Onikiri::OpClass::OpClass().

00215         {
00216             return 
00217                 (code >= FLOAT_BEGIN) && 
00218                 (code <= FLOAT_END);
00219         }

Here is the caller graph for this function:

bool Onikiri::OpClassCode::IsIFConversion ( int  code  ) 

OpClassCode.cpp222 行で定義されています。

参照先 ifCONV.

参照元 Onikiri::OpClass::OpClass().

00223         {
00224             return code == ifCONV;
00225         }

Here is the caller graph for this function:

bool Onikiri::OpClassCode::IsIndirectJump ( int  code  ) 

OpClassCode.cpp150 行で定義されています。

参照先 CALL_JUMPiJUMP.

参照元 Onikiri::OpClass::OpClass().

00151         {
00152             return
00153                 code == CALL_JUMP || 
00154                 code == iJUMP;
00155         }

Here is the caller graph for this function:

bool Onikiri::OpClassCode::IsInt ( int  code  ) 

OpClassCode.cpp206 行で定義されています。

参照先 INT_BEGININT_END.

参照元 Onikiri::OpClass::OpClass().

00207         {
00208             return 
00209                 (code >= INT_BEGIN) &&
00210                 (code <= INT_END);
00211         }

Here is the caller graph for this function:

bool Onikiri::OpClassCode::IsLoad ( int  code  ) 

OpClassCode.cpp188 行で定義されています。

参照先 fLDiLD.

参照元 Onikiri::MemOrderManager::CanAllocate()IsMem()Onikiri::OpClass::OpClass().

00189         {
00190             return code == iLD || code == fLD;
00191         }

Here is the caller graph for this function:

bool Onikiri::OpClassCode::IsMem ( int  code  ) 

OpClassCode.cpp182 行で定義されています。

参照先 IsLoad()IsStore().

参照元 Onikiri::OpClass::OpClass().

00183         {
00184             return IsLoad(code) || IsStore(code);
00185         }

関数の呼び出しグラフ:

Here is the caller graph for this function:

bool Onikiri::OpClassCode::IsNop ( int  code  ) 

OpClassCode.cpp238 行で定義されています。

参照先 fNOPiNOP.

参照元 Onikiri::OpClass::OpClass()Onikiri::Renamer::Update().

00239         {
00240             return
00241                 code == iNOP ||
00242                 code == fNOP;
00243         }

Here is the caller graph for this function:

bool Onikiri::OpClassCode::IsReturn ( int  code  ) 

OpClassCode.cpp166 行で定義されています。

参照先 RETRETC.

参照元 Onikiri::OpClass::OpClass().

00167         {
00168             return 
00169                 code == RET || 
00170                 code == RETC;
00171         }

Here is the caller graph for this function:

bool Onikiri::OpClassCode::IsStore ( int  code  ) 

OpClassCode.cpp194 行で定義されています。

参照先 fSTiST.

参照元 Onikiri::MemOrderManager::CanAllocate()IsMem()Onikiri::OpClass::OpClass().

00195         {
00196             return code == iST || code == fST;
00197         }

Here is the caller graph for this function:

bool Onikiri::OpClassCode::IsSubroutine ( int  code  ) 

OpClassCode.cpp173 行で定義されています。

参照先 IsCall()RETRETC.

参照元 Onikiri::OpClass::OpClass().

00174         {
00175             return 
00176                 IsCall(code) || 
00177                 code == RET ||
00178                 code == RETC;       
00179         }

関数の呼び出しグラフ:

Here is the caller graph for this function:

bool Onikiri::OpClassCode::IsSyscall ( int  code  ) 

OpClassCode.cpp230 行で定義されています。

参照先 syscallsyscall_branchUNDEF.

参照元 Onikiri::OpClass::OpClass().

00231         {
00232             return 
00233                 code == syscall ||
00234                 code == syscall_branch || 
00235                 code == UNDEF;  
00236         }

Here is the caller graph for this function:

bool Onikiri::OpClassCode::IsUnconditionalBranch ( int  code  ) 

OpClassCode.cpp139 行で定義されています。

参照先 iBUiJUMPIsCall()RETsyscall_branch.

参照元 IsBranch()Onikiri::OpClass::OpClass().

00140         {
00141             return
00142                 IsCall(code) || 
00143                 code == RET ||
00144                 code == iBU || 
00145                 code == iJUMP || 
00146                 code == syscall_branch;
00147         }

関数の呼び出しグラフ:

Here is the caller graph for this function:

const char * Onikiri::OpClassCode::ToString ( int  c  ) 

OpClassCode.cpp93 行で定義されています。

参照元 Onikiri::ParamExchangeBase::ChainParamMap()Onikiri::ResourceBuilder::LoadStructureSection()Onikiri::OpClass::ToString().

00094         {
00095             CodeStrElem cs;
00096             cs.code = c;
00097             const CodeStrElem* e = lower_bound(CodeStrBegin, CodeStrEnd, cs);
00098             
00099             if (e == CodeStrEnd || e->code != c) {
00100                 return "(unknown OpClassCode)";
00101             }
00102             else {
00103                 return e->str;
00104             }
00105         }

Here is the caller graph for this function:


Onikiri2に対してTue Jun 18 15:32:35 2013に生成されました。  doxygen 1.4.7