#include <frontend/pentiumfrontend.h>
Inheritance diagram for PentiumFrontEnd:
Definition at line 16 of file pentiumfrontend.h.
Public Member Functions | |
virtual std::vector< Exp * > & | getDefaultParams () |
virtual std::vector< Exp * > & | getDefaultReturns () |
virtual platform | getFrontEndId () |
virtual ADDRESS | getMainEntryPoint (bool &gotMain) |
PentiumFrontEnd (BinaryFile *pBF, Prog *prog, BinaryFileFactory *pbff) | |
virtual bool | processProc (ADDRESS uAddr, UserProc *pProc, std::ofstream &os, bool frag=false, bool spec=false) |
virtual | ~PentiumFrontEnd () |
Protected Member Functions | |
virtual DecodeResult & | decodeInstruction (ADDRESS pc) |
virtual void | extraProcessCall (CallStatement *call, std::list< RTL * > *BB_rtls) |
Private Member Functions | |
void | bumpRegisterAll (Exp *e, int min, int max, int delta, int mask) |
void | emitSet (std::list< RTL * > *pRtls, std::list< RTL * >::iterator &itRtl, ADDRESS uAddr, Exp *pLHS, Exp *cond) |
unsigned | fetch4 (unsigned char *ptr) |
bool | helperFunc (ADDRESS dest, ADDRESS addr, std::list< RTL * > *lrtl) |
bool | isAssignFromTern (Statement *s) |
bool | isDecAh (RTL *r) |
bool | isSetX (Statement *e) |
bool | isStoreFsw (Statement *s) |
void | processFloatCode (PBB pBB, int &tos, Cfg *pCfg) |
void | processFloatCode (Cfg *pCfg) |
void | processOverlapped (UserProc *proc) |
void | processStringInst (UserProc *proc) |
bool | processStsw (std::list< RTL * >::iterator &rit, std::list< RTL * > *pRtls, PBB pBB, Cfg *pCfg) |
void | State25 (Exp *pLHS, Exp *pRHS, std::list< RTL * > *pRtls, std::list< RTL * >::iterator &rit, ADDRESS uAddr) |
Private Attributes | |
int | idPF |
|
Definition at line 570 of file pentiumfrontend.cpp. References FrontEnd::decoder, and FrontEnd::prog. |
|
Definition at line 41 of file testStmtStubs.cpp. |
|
Definition at line 141 of file pentiumfrontend.cpp. References Exp::doSearch(), opWild, Location::regOf(), and Const::setInt(). |
|
Reimplemented from FrontEnd. Definition at line 1007 of file pentiumfrontend.cpp. References RTL::appendStmt(), FrontEnd::decoder, Prog::getLibraryProc(), NJMCDecoder::getRTLDict(), NCT, DecodeResult::numBytes, FrontEnd::pBF, FrontEnd::prog, BinaryFile::readNative1(), DecodeResult::reDecode, RTLInstDict::RegMap, Location::regOf(), DecodeResult::reset(), DecodeResult::rtl, CallStatement::setDestProc(), DecodeResult::type, and DecodeResult::valid. |
|
Definition at line 460 of file pentiumfrontend.cpp. References RTL::appendStmt(), and opTern. |
|
Reimplemented from FrontEnd. Definition at line 1045 of file pentiumfrontend.cpp. References Type::asCompound(), Type::asPointer(), CallStatement::getDestProc(), CompoundType::getNumTypes(), Signature::getParamType(), PointerType::getPointsTo(), Proc::getSignature(), CompoundType::getType(), NULL, Type::resolvesToCompound(), Type::resolvesToFunc(), and Type::resolvesToPointer(). |
|
|
|
Implements FrontEnd. Definition at line 197 of file pentiumfrontend.cpp. References Location::memOf(), and Location::regOf(). |
|
Implements FrontEnd. Definition at line 214 of file pentiumfrontend.cpp. References opPC, and Location::regOf(). |
|
Implements FrontEnd. Definition at line 26 of file pentiumfrontend.h. References PLAT_PENTIUM. |
|
Implements FrontEnd. Definition at line 46 of file testStmtStubs.cpp. |
|
Reimplemented from FrontEnd. Definition at line 485 of file pentiumfrontend.cpp. References RTL::appendStmt(), LOG, NO_ADDRESS, NULL, opFtoi, opMinus, opShiftR, opTruncs, FrontEnd::pBF, FrontEnd::prog, Location::regOf(), Prog::removeProc(), BinaryFile::SymbolByAddress(), and Location::tempOf(). |
|
Definition at line 121 of file pentiumfrontend.cpp. References Exp::getOper(), Assign::getRight(), Statement::isAssign(), and opTern. |
|
Definition at line 80 of file pentiumfrontend.cpp. References RTL::elementAt(), RTL::getNumStmt(), Assign::getRight(), Statement::isAssign(), opMinus, opSize, and Location::regOf(). |
|
Definition at line 100 of file pentiumfrontend.cpp. References Assignment::getLeft(), Exp::getOper(), Assign::getRight(), Exp::getSubExp2(), Exp::getSubExp3(), Statement::isAssign(), Exp::isIntConst(), Exp::isRegOf(), and opTern. |
|
Definition at line 67 of file pentiumfrontend.cpp. References FSW, Statement::isAssign(), Location::regOf(), result, and Exp::search(). |
|
Definition at line 341 of file pentiumfrontend.cpp. References BasicBlock::getRTLs(). |
|
Definition at line 239 of file pentiumfrontend.cpp. References Cfg::getFirstBB(), Cfg::getNextBB(), Statement::isFpush(), Location::regOf(), and Location::tempOf(). Referenced by processProc(). |
|
Definition at line 748 of file pentiumfrontend.cpp. References Exp::addUsedLocs(), LocationSet::begin(), StatementList::begin(), LocationSet::end(), StatementList::end(), and UserProc::getStatements(). Referenced by processProc(). |
|
Reimplemented from FrontEnd. Definition at line 168 of file pentiumfrontend.cpp. References UserProc::getCFG(), UserProc::getEntryBB(), processFloatCode(), processOverlapped(), FrontEnd::processProc(), processStringInst(), UserProc::setEntryBB(), and Cfg::unTraverse(). |
|
Definition at line 706 of file pentiumfrontend.cpp. References Cfg::begin(), Cfg::end(), UserProc::getCFG(), BasicBlock::getRTLs(), Exp::getSubExp1(), Exp::isMachFtr(), LOG, NULL, and toBranches(). Referenced by processProc(). |
|
|
|
|
|
Definition at line 60 of file pentiumfrontend.h. |