Refactoring idioms into objects with match/action methods
This commit is contained in:
@@ -50,7 +50,19 @@ bool CIcodeRec::labelSrch(dword target, dword &pIndex)
|
||||
}
|
||||
return false;
|
||||
}
|
||||
CIcodeRec::iterator CIcodeRec::labelSrch(dword target)
|
||||
{
|
||||
Int i;
|
||||
|
||||
for (i = 0; i < size(); i++)
|
||||
{
|
||||
if (at(i).ic.ll.label == target)
|
||||
{
|
||||
return begin()+i;
|
||||
}
|
||||
}
|
||||
return end();
|
||||
}
|
||||
ICODE * CIcodeRec::GetIcode(int ip)
|
||||
{
|
||||
return &at(ip);
|
||||
|
||||
1483
src/idioms.cpp
1483
src/idioms.cpp
File diff suppressed because it is too large
Load Diff
@@ -18,16 +18,15 @@ static void displayDfs(BB * pBB);
|
||||
void Function::buildCFG()
|
||||
{
|
||||
if(flg & PROC_ISLIB)
|
||||
return; /* Ignore library functions */
|
||||
return; // Ignore library functions
|
||||
createCFG();
|
||||
if (option.VeryVerbose)
|
||||
displayCFG();
|
||||
/* Remove redundancies and add in-edge information */
|
||||
compressCFG();
|
||||
|
||||
/* Print 2nd pass assembler listing */
|
||||
compressCFG(); // Remove redundancies and add in-edge information
|
||||
|
||||
if (option.asm2)
|
||||
disassem(2, this);
|
||||
disassem(2, this); // Print 2nd pass assembler listing
|
||||
|
||||
/* Idiom analysis and propagation of long type */
|
||||
lowLevelAnalysis();
|
||||
|
||||
Reference in New Issue
Block a user