PentiumDecoder Class Reference

#include <frontend/pentiumdecoder.h>

Inheritance diagram for PentiumDecoder:

NJMCDecoder List of all members.

Detailed Description

Definition at line 29 of file pentiumdecoder.h.

Public Member Functions

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

Private Member Functions

Exp * addReloc (Exp *e)
Exp * dis_Eaddr (ADDRESS pc, int size=0)
Exp * dis_Mem (ADDRESS ps)
Byte getByte (unsigned lc)
DWord getDword (unsigned lc)
SWord getWord (unsigned lc)
bool isFuncPrologue (ADDRESS hostPC)
void unused (int x)

Private Attributes

unsigned lastDwordLc


Constructor & Destructor Documentation

PentiumDecoder::PentiumDecoder (  Prog *  prog  ) 
 

Definition at line 2321 of file pentium/decoder.m.

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


Member Function Documentation

Exp * PentiumDecoder::addReloc (  Exp *  e  )  [private]
 

Definition at line 2438 of file pentium/decoder.m.

References Prog::addReloc(), lastDwordLc, and NJMCDecoder::prog.

Referenced by dis_Mem().

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

Implements NJMCDecoder.

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

Implements NJMCDecoder.

Definition at line 101 of file pentium/decoder.m.

References RTL::appendStmt(), BRANCH_JE, BRANCH_JMI, BRANCH_JNE, BRANCH_JPAR, BRANCH_JPOS, BRANCH_JSG, BRANCH_JSGE, BRANCH_JSL, BRANCH_JSLE, BRANCH_JUG, BRANCH_JUGE, BRANCH_JUL, BRANCH_JULE, CALL, COND_JUMP, count, DIS_COUNT, dis_Eaddr(), DIS_EADDR16, DIS_EADDR32, DIS_EADDR8, DIS_I16, DIS_I32, DIS_I8, DIS_IDX, DIS_IDXP1, DIS_MEM, DIS_MEM16, DIS_MEM32, DIS_MEM64, DIS_MEM80, NJMCDecoder::dis_Num(), DIS_OFF, DIS_R16, DIS_R32, DIS_R8, DIS_REG16, DIS_REG32, DIS_REG8, FABS(), FADD(), FCHS, FDIV(), FSQRT(), FSUB(), genBSFR(), Const::getInt(), Assign::getRight(), NJMCDecoder::instantiate(), Exp::isIntConst(), NO_ADDRESS, NOP, NULL, DecodeResult::numBytes, opMinus, opPlus, NJMCDecoder::prog, PUSH(), Location::regOf(), DecodeResult::reset(), result, RET, RSM(), DecodeResult::rtl, GotoStatement::setDest(), CallStatement::setDestProc(), Const::setInt(), GotoStatement::setIsComputed(), Prog::setNewProc(), SETS, STR, to, NJMCDecoder::unconditionalJump(), unused(), and DecodeResult::valid.

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

Definition at line 2230 of file pentium/decoder.m.

References dis_Mem(), NJMCDecoder::dis_Reg(), mem, and to.

Referenced by decodeInstruction().

Exp * PentiumDecoder::dis_Mem (  ADDRESS  ps  )  [private]
 

Definition at line 2144 of file pentium/decoder.m.

References addReloc(), NJMCDecoder::dis_Reg(), lastDwordLc, Location::memOf(), NULL, opMult, opPlus, and to.

Referenced by dis_Eaddr().

Byte PentiumDecoder::getByte (  unsigned  lc  )  [private]
 

Definition at line 2283 of file pentium/decoder.m.

DWord PentiumDecoder::getDword (  unsigned  lc  )  [private]
 

Definition at line 2307 of file pentium/decoder.m.

References Prog::getTextDelta(), lastDwordLc, and NJMCDecoder::prog.

SWord PentiumDecoder::getWord (  unsigned  lc  )  [private]
 

Definition at line 2295 of file pentium/decoder.m.

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

Definition at line 2255 of file pentium/decoder.m.

References NULL, NJMCDecoder::prog, and regs.

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

Definition at line 83 of file pentium/decoder.m.

Referenced by decodeInstruction().


Member Data Documentation

unsigned PentiumDecoder::lastDwordLc [private]
 

Definition at line 64 of file pentiumdecoder.h.

Referenced by addReloc(), dis_Mem(), and getDword().


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