SparcDecoder Class Reference

#include <frontend/sparcdecoder.h>

Inheritance diagram for SparcDecoder:

NJMCDecoder List of all members.

Detailed Description

Definition at line 30 of file sparcdecoder.h.

Public Member Functions

virtual int decodeAssemblyInstruction (ADDRESS pc, int delta)
virtual DecodeResult & decodeInstruction (ADDRESS pc, int delta)
bool isRestore (ADDRESS hostPC)
 SparcDecoder (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_RegImm (ADDRESS pc)
Exp * dis_RegLhs (unsigned r)
Exp * dis_RegRhs (unsigned r)
DWord getDword (ADDRESS lc)
bool isFuncPrologue (ADDRESS hostPC)
void unused (int x)


Constructor & Destructor Documentation

SparcDecoder::SparcDecoder (  Prog *  prog  ) 
 

Definition at line 802 of file sparc/decoder.m.

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


Member Function Documentation

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

Definition at line 80 of file sparc/decoder.m.

References RTL::appendStmt(), BRANCH_JE, BRANCH_JMI, BRANCH_JNE, BRANCH_JPOS, BRANCH_JSG, BRANCH_JSGE, BRANCH_JSL, BRANCH_JSLE, BRANCH_JUG, BRANCH_JUGE, BRANCH_JUL, BRANCH_JULE, NULL, and BranchStatement::setCondType().

Referenced by decodeInstruction().

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

Implements NJMCDecoder.

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

Implements NJMCDecoder.

Definition at line 202 of file sparc/decoder.m.

References addr(), RTL::appendStmt(), createBranchRtl(), DD, DEBUG_STMTS, DIS_ADDR, dis_Eaddr(), DIS_FDD, DIS_FDQ, DIS_FDS, DIS_FS1D, DIS_FS1Q, DIS_FS1S, DIS_FS2D, DIS_FS2Q, DIS_FS2S, NJMCDecoder::dis_Num(), DIS_RD, DIS_RDR, DIS_ROI, DIS_RS1, RTL::getList(), NJMCDecoder::instantiate(), NCT, NO_ADDRESS, NOP, NULL, DecodeResult::numBytes, NJMCDecoder::prog, DecodeResult::reset(), result, DecodeResult::rtl, SCD, SCDAN, SD, GotoStatement::setDest(), CallStatement::setDestProc(), GotoStatement::setIsComputed(), Prog::setNewProc(), SHOW_ASM, SKIP, SU, to, DecodeResult::type, unused(), and DecodeResult::valid.

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

Definition at line 713 of file sparc/decoder.m.

References opPlus, Location::regOf(), and to.

Referenced by decodeInstruction().

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

Exp * SparcDecoder::dis_RegLhs (  unsigned  r  )  [private]
 

Definition at line 666 of file sparc/decoder.m.

References Location::regOf().

Exp * SparcDecoder::dis_RegRhs (  unsigned  r  )  [private]
 

Definition at line 679 of file sparc/decoder.m.

References Location::regOf().

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

Definition at line 790 of file sparc/decoder.m.

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

Definition at line 742 of file sparc/decoder.m.

References InstructionPatterns::new_reg_win(), InstructionPatterns::new_reg_win_large(), NULL, NJMCDecoder::prog, InstructionPatterns::same_reg_win(), and InstructionPatterns::same_reg_win_large().

bool SparcDecoder::isRestore (  ADDRESS  hostPC  ) 
 

Definition at line 768 of file sparc/decoder.m.

References to, and unused().

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

Definition at line 69 of file sparc/decoder.m.

Referenced by decodeInstruction(), and isRestore().


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