NJMCDecoder Class Reference

#include <include/decoder.h>

Inheritance diagram for NJMCDecoder:

PentiumDecoder PPCDecoder SparcDecoder ST20Decoder List of all members.

Detailed Description

Definition at line 103 of file decoder.h.

Public Member Functions

void computedCall (const char *name, int size, Exp *dest, ADDRESS pc, std::list< Statement * > *stmts, DecodeResult &result)
void computedJump (const char *name, int size, Exp *dest, ADDRESS pc, std::list< Statement * > *stmts, DecodeResult &result)
virtual int decodeAssemblyInstruction (ADDRESS pc, int delta)=0
virtual DecodeResultdecodeInstruction (ADDRESS pc, int delta)=0
ProggetProg ()
RTLInstDictgetRTLDict ()
 NJMCDecoder (Prog *prog)
virtual ~NJMCDecoder ()

Protected Member Functions

Expdis_Num (unsigned num)
Expdis_Reg (int regNum)
std::list< Statement * > * instantiate (ADDRESS pc, const char *name,...)
ExpinstantiateNamedParam (char *name,...)
void substituteCallArgs (char *name, Exp *&exp,...)
void unconditionalJump (const char *name, int size, ADDRESS relocd, int delta, ADDRESS pc, std::list< Statement * > *stmts, DecodeResult &result)

Protected Attributes

char constrName [84]
Progprog
RTLInstDict RTLDict


Constructor & Destructor Documentation

NJMCDecoder::NJMCDecoder Prog prog  ) 
 

Definition at line 52 of file njmcDecoder.cpp.

virtual NJMCDecoder::~NJMCDecoder  )  [inline, virtual]
 

Definition at line 111 of file decoder.h.


Member Function Documentation

void NJMCDecoder::computedCall const char *  name,
int  size,
Exp dest,
ADDRESS  pc,
std::list< Statement * > *  stmts,
DecodeResult result
 

Definition at line 268 of file njmcDecoder.cpp.

References RTL::appendStmt(), DecodeResult::numBytes, result, DecodeResult::rtl, GotoStatement::setDest(), GotoStatement::setIsComputed(), and SHOW_ASM.

Referenced by PPCDecoder::decodeInstruction().

void NJMCDecoder::computedJump const char *  name,
int  size,
Exp dest,
ADDRESS  pc,
std::list< Statement * > *  stmts,
DecodeResult result
 

Definition at line 246 of file njmcDecoder.cpp.

References RTL::appendStmt(), DecodeResult::numBytes, result, DecodeResult::rtl, GotoStatement::setDest(), GotoStatement::setIsComputed(), and SHOW_ASM.

Referenced by PPCDecoder::decodeInstruction().

int NJMCDecoder::decodeAssemblyInstruction ADDRESS  pc,
int  delta
[pure virtual]
 

Implemented in PentiumDecoder, PPCDecoder, SparcDecoder, and ST20Decoder.

Definition at line 380 of file disassembler.2.m.

References _assembly, ADDIL(), addr(), astr, b_06_names, BL(), BLR(), BREAK(), BV(), constrName, COPY(), cr_06_names, ct_06_names, getDword(), killDot(), LDIL(), LDSID(), MFIA(), MFSP(), MTCTL(), MTSP(), NOP, r_06_names, r_11_names, s2_16_names, s3_16_names, t_06_names, t_11_names, t_27_names, to, and x_11_names.

virtual DecodeResult& NJMCDecoder::decodeInstruction ADDRESS  pc,
int  delta
[pure virtual]
 

Implemented in PentiumDecoder, PPCDecoder, SparcDecoder, and ST20Decoder.

Referenced by decodeRtl().

Exp * NJMCDecoder::dis_Num unsigned  num  )  [protected]
 

Definition at line 212 of file njmcDecoder.cpp.

Referenced by SparcDecoder::decodeInstruction(), and PentiumDecoder::decodeInstruction().

Exp * NJMCDecoder::dis_Reg int  regNum  )  [protected]
 

Definition at line 200 of file njmcDecoder.cpp.

References Location::regOf().

Referenced by ST20Decoder::decodeInstruction(), PentiumDecoder::dis_Eaddr(), and PentiumDecoder::dis_Mem().

Prog* NJMCDecoder::getProg  )  [inline]
 

Definition at line 132 of file decoder.h.

References prog.

RTLInstDict& NJMCDecoder::getRTLDict  )  [inline]
 

Definition at line 124 of file decoder.h.

References RTLDict.

Referenced by PentiumFrontEnd::decodeInstruction(), FrontEnd::getRegName(), and FrontEnd::getRegSize().

std::list< Statement * > * NJMCDecoder::instantiate ADDRESS  pc,
const char *  name,
  ...
[protected]
 

Definition at line 65 of file njmcDecoder.cpp.

References DEBUG_DECODER, RTLInstDict::getSignature(), and RTLDict.

Referenced by ST20Decoder::decodeInstruction(), SparcDecoder::decodeInstruction(), PPCDecoder::decodeInstruction(), and PentiumDecoder::decodeInstruction().

Exp * NJMCDecoder::instantiateNamedParam char *  name,
  ...
[protected]
 

Definition at line 111 of file njmcDecoder.cpp.

References RTLInstDict::ParamSet, and RTLDict.

void NJMCDecoder::substituteCallArgs char *  name,
Exp *&  exp,
  ...
[protected]
 

Definition at line 150 of file njmcDecoder.cpp.

References RTLInstDict::ParamSet, and RTLDict.

void NJMCDecoder::unconditionalJump const char *  name,
int  size,
ADDRESS  relocd,
int  delta,
ADDRESS  pc,
std::list< Statement * > *  stmts,
DecodeResult result
[protected]
 

Definition at line 225 of file njmcDecoder.cpp.

References RTL::appendStmt(), DecodeResult::numBytes, result, DecodeResult::rtl, GotoStatement::setDest(), and SHOW_ASM.

Referenced by ST20Decoder::decodeInstruction(), PPCDecoder::decodeInstruction(), and PentiumDecoder::decodeInstruction().


Member Data Documentation

char NJMCDecoder::constrName[84] [protected]
 

Definition at line 167 of file decoder.h.

Referenced by decodeAssemblyInstruction().

Prog* NJMCDecoder::prog [protected]
 

Definition at line 105 of file decoder.h.

Referenced by PentiumDecoder::addReloc(), SparcDecoder::decodeInstruction(), PPCDecoder::decodeInstruction(), PentiumDecoder::decodeInstruction(), PentiumDecoder::getDword(), getProg(), SparcDecoder::isFuncPrologue(), and PentiumDecoder::isFuncPrologue().

RTLInstDict NJMCDecoder::RTLDict [protected]
 

Definition at line 176 of file decoder.h.

Referenced by getRTLDict(), instantiate(), instantiateNamedParam(), PentiumDecoder::PentiumDecoder(), PPCDecoder::PPCDecoder(), SparcDecoder::SparcDecoder(), ST20Decoder::ST20Decoder(), and substituteCallArgs().


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