列挙型 | |
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) |
OpClassCode.h の 42 行で定義されています。
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.cpp の 107 行で定義されています。
参照先 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.cpp の 200 行で定義されています。
参照先 ADDR.
参照元 Onikiri::OpClass::OpClass().
Here is the caller graph for this function:
bool Onikiri::OpClassCode::IsBranch | ( | int | code | ) |
OpClassCode.cpp の 123 行で定義されています。
参照先 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.cpp の 158 行で定義されています。
参照元 IsSubroutine()・IsUnconditionalBranch()・Onikiri::OpClass::OpClass().
Here is the caller graph for this function:
bool Onikiri::OpClassCode::IsConditionalBranch | ( | int | code | ) |
OpClassCode.cpp の 131 行で定義されています。
参照元 IsBranch()・Onikiri::OpClass::OpClass().
Here is the caller graph for this function:
bool Onikiri::OpClassCode::IsFloat | ( | int | code | ) |
OpClassCode.cpp の 214 行で定義されています。
参照先 FLOAT_BEGIN・FLOAT_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.cpp の 222 行で定義されています。
参照先 ifCONV.
参照元 Onikiri::OpClass::OpClass().
Here is the caller graph for this function:
bool Onikiri::OpClassCode::IsIndirectJump | ( | int | code | ) |
OpClassCode.cpp の 150 行で定義されています。
参照元 Onikiri::OpClass::OpClass().
Here is the caller graph for this function:
bool Onikiri::OpClassCode::IsInt | ( | int | code | ) |
OpClassCode.cpp の 206 行で定義されています。
参照元 Onikiri::OpClass::OpClass().
Here is the caller graph for this function:
bool Onikiri::OpClassCode::IsLoad | ( | int | code | ) |
OpClassCode.cpp の 188 行で定義されています。
参照元 Onikiri::MemOrderManager::CanAllocate()・IsMem()・Onikiri::OpClass::OpClass().
Here is the caller graph for this function:
bool Onikiri::OpClassCode::IsMem | ( | int | code | ) |
OpClassCode.cpp の 182 行で定義されています。
参照元 Onikiri::OpClass::OpClass().
関数の呼び出しグラフ:
Here is the caller graph for this function:
bool Onikiri::OpClassCode::IsNop | ( | int | code | ) |
OpClassCode.cpp の 238 行で定義されています。
参照元 Onikiri::OpClass::OpClass()・Onikiri::Renamer::Update().
Here is the caller graph for this function:
bool Onikiri::OpClassCode::IsReturn | ( | int | code | ) |
OpClassCode.cpp の 166 行で定義されています。
参照元 Onikiri::OpClass::OpClass().
Here is the caller graph for this function:
bool Onikiri::OpClassCode::IsStore | ( | int | code | ) |
OpClassCode.cpp の 194 行で定義されています。
参照元 Onikiri::MemOrderManager::CanAllocate()・IsMem()・Onikiri::OpClass::OpClass().
Here is the caller graph for this function:
bool Onikiri::OpClassCode::IsSubroutine | ( | int | code | ) |
bool Onikiri::OpClassCode::IsSyscall | ( | int | code | ) |
OpClassCode.cpp の 230 行で定義されています。
参照先 syscall・syscall_branch・UNDEF.
参照元 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.cpp の 139 行で定義されています。
参照先 iBU・iJUMP・IsCall()・RET・syscall_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.cpp の 93 行で定義されています。
参照元 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: