PPCDecoder Class Reference

#include <frontend/ppcdecoder.h>

Inheritance diagram for PPCDecoder:

NJMCDecoder List of all members.

Detailed Description

Definition at line 29 of file ppcdecoder.h.

Public Member Functions

virtual int decodeAssemblyInstruction (ADDRESS pc, int delta)
virtual DecodeResult & decodeInstruction (ADDRESS pc, int delta)
 PPCDecoder (Prog *prog)

Private Member Functions

RTL * createBranchRtl (ADDRESS pc, std::list< Statement * > *stmts, const char *name)
Exp * dis_Eaddr (ADDRESS pc, int size=0)
Exp * dis_RAmbz (unsigned r)
Exp * dis_Reg (unsigned r)
Exp * dis_RegImm (ADDRESS pc)
DWord getDword (ADDRESS lc)
bool isFuncPrologue (ADDRESS hostPC)
void unused (int x)


Constructor & Destructor Documentation

PPCDecoder::PPCDecoder (  Prog *  prog  ) 
 

Definition at line 435 of file ppc/decoder.m.

References file, Boomerang::get(), Boomerang::getProgPath(), RTLInstDict::readSSLFile(), and NJMCDecoder::RTLDict.


Member Function Documentation

RTL* PPCDecoder::createBranchRtl (  ADDRESS  pc,
std::list< Statement * > *  stmts,
const char *  name
)  [private]
 

virtual int PPCDecoder::decodeAssemblyInstruction (  ADDRESS  pc,
int  delta
)  [virtual]
 

Implements NJMCDecoder.

DecodeResult & PPCDecoder::decodeInstruction (  ADDRESS  pc,
int  delta
)  [virtual]
 

Implements NJMCDecoder.

Definition at line 109 of file ppc/decoder.m.

References RTL::appendStmt(), BRANCH_JE, BRANCH_JNE, BRANCH_JSG, BRANCH_JSGE, BRANCH_JSL, BRANCH_JSLE, NJMCDecoder::computedCall(), NJMCDecoder::computedJump(), DIS_BEG, DIS_CRBA, DIS_CRBB, DIS_CRBD, DIS_CRFD, DIS_DISP, DIS_END, DIS_FA, DIS_FB, DIS_FD, DIS_FS, DIS_INDEX, DIS_NZRA, DIS_NZRB, DIS_RA, DIS_RAZ, DIS_RB, DIS_RD, DIS_RD_NUM, DIS_RELADDR, DIS_RS, DIS_RS_NUM, DIS_SIMM, DIS_UIMM, end(), NJMCDecoder::instantiate(), NO_ADDRESS, NULL, DecodeResult::numBytes, opMachFtr, PPC_COND_JUMP, NJMCDecoder::prog, DecodeResult::reset(), result, DecodeResult::rtl, GotoStatement::setDest(), CallStatement::setDestProc(), GotoStatement::setIsComputed(), Prog::setNewProc(), SHOW_ASM, to, NJMCDecoder::unconditionalJump(), unused(), and DecodeResult::valid.

Exp* PPCDecoder::dis_Eaddr (  ADDRESS  pc,
int  size = 0
)  [private]
 

Exp * PPCDecoder::dis_RAmbz (  unsigned  r  )  [private]
 

Definition at line 390 of file ppc/decoder.m.

References Location::regOf().

Exp * PPCDecoder::dis_Reg (  unsigned  r  )  [private]
 

Definition at line 379 of file ppc/decoder.m.

References Location::regOf().

Exp* PPCDecoder::dis_RegImm (  ADDRESS  pc  )  [private]
 

DWord PPCDecoder::getDword (  ADDRESS  lc  )  [private]
 

Definition at line 423 of file ppc/decoder.m.

bool PPCDecoder::isFuncPrologue (  ADDRESS  hostPC  )  [private]
 

Definition at line 406 of file ppc/decoder.m.

void PPCDecoder::unused (  int  x  )  [private]
 

Definition at line 87 of file ppc/decoder.m.

Referenced by decodeInstruction().


The documentation for this class was generated from the following files:
Generated on Tue Sep 19 21:18:44 2006 for Boomerang by  doxygen 1.4.6