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 DecodeResultdecodeInstruction (ADDRESS pc, int delta)
 PentiumDecoder (Prog *prog)

Private Member Functions

ExpaddReloc (Exp *e)
Expdis_Eaddr (ADDRESS pc, int size=0)
Expdis_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

Implements NJMCDecoder.

DecodeResult & PentiumDecoder::decodeInstruction ADDRESS  pc,
int  delta

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

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