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 DecodeResultdecodeInstruction (ADDRESS pc, int delta)
bool isRestore (ADDRESS hostPC)
 SparcDecoder (Prog *prog)

Private Member Functions

RTLcreateBranchRtl (ADDRESS pc, std::list< Statement * > *stmts, const char *name)
Expdis_Eaddr (ADDRESS pc, int size=0)
Expdis_RegImm (ADDRESS pc)
Expdis_RegLhs (unsigned r)
Expdis_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