Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

Alphadis Class Reference

#include <alphadis.h>

Inheritance diagram for Alphadis:

Disassembler Object List of all members.

Public Member Functions

 Alphadis ()
virtual ~Alphadis ()
int load (ht_object_stream *f)
virtual dis_insndecode (byte *code, int maxlen, CPU_ADDR addr)
virtual dis_insnduplicateInsn (dis_insn *disasm_insn)
virtual void getOpcodeMetrics (int &min_length, int &max_length, int &min_look_ahead, int &avg_look_ahead, int &addr_align)
virtual byte getSize (dis_insn *disasm_insn)
virtual char * getName ()
virtual void store (ht_object_stream *f)
virtual char * str (dis_insn *disasm_insn, int style)
virtual char * strf (dis_insn *disasm_insn, int style, char *format)
virtual OBJECT_ID object_id () const
virtual bool validInsn (dis_insn *disasm_insn)

Protected Attributes

char insnstr [256]
alphadis_insn insn

Constructor & Destructor Documentation

Alphadis::Alphadis  ) 
 

Definition at line 62 of file alphadis.cc.

References insn, and alphadis_insn::valid.

Alphadis::~Alphadis  )  [virtual]
 

Definition at line 67 of file alphadis.cc.


Member Function Documentation

dis_insn * Alphadis::decode byte *  code,
int  maxlen,
CPU_ADDR  addr
[virtual]
 

Implements Disassembler.

Definition at line 83 of file alphadis.cc.

References CPU_ADDR::addr32, ALPHA_EXTENSION_10, ALPHA_EXTENSION_11, ALPHA_EXTENSION_12, ALPHA_EXTENSION_13, ALPHA_EXTENSION_14, ALPHA_EXTENSION_15, ALPHA_EXTENSION_16, ALPHA_EXTENSION_17, ALPHA_EXTENSION_18, ALPHA_EXTENSION_1A, ALPHA_EXTENSION_1C, ALPHA_GROUP1, ALPHA_GROUP2, ALPHA_GROUP3, ALPHA_GROUP4, ALPHA_GROUP_BRA, ALPHA_GROUP_F2I, ALPHA_GROUP_FBR, ALPHA_GROUP_FLD, ALPHA_GROUP_FST, ALPHA_GROUP_I2F, ALPHA_GROUP_JMP, ALPHA_GROUP_PAL, alpha_instr_tbl, alpha_instr_tbl_ext10, alpha_instr_tbl_ext11, alpha_instr_tbl_ext12, alpha_instr_tbl_ext13, alpha_instr_tbl_ext14, alpha_instr_tbl_ext15, alpha_instr_tbl_ext16, alpha_instr_tbl_ext17, alpha_instr_tbl_ext18, alpha_instr_tbl_ext1a, alpha_instr_tbl_ext1c, BITS_BDISP, BITS_BSIGN, BITS_FFUN, BITS_HINT, BITS_IFUN, BITS_IMMED, BITS_ISLIT, BITS_JFUN, BITS_MDISP, BITS_MFUN, BITS_MSIGN, BITS_OPC, BITS_PAL, BITS_REGA, BITS_REGB, BITS_REGC, alphadis_insn::code, alphadis_insn::data, dis_insn, dword, find_alpha_instruction(), insn, REG_FLOAT, REG_LIT, REG_ZERO, alphadis_insn::regA, alphadis_insn::regB, alphadis_insn::regC, alphadis_insn::size, alphadis_insn::table, alpha_opcode_tab_entry::type, UNALIGNED_MOVE, and alphadis_insn::valid.

dis_insn * Alphadis::duplicateInsn dis_insn disasm_insn  )  [virtual]
 

Implements Disassembler.

Definition at line 247 of file alphadis.cc.

References dis_insn, insn, and malloc().

char * Alphadis::getName  )  [virtual]
 

Implements Disassembler.

Definition at line 263 of file alphadis.cc.

void Alphadis::getOpcodeMetrics int &  min_length,
int &  max_length,
int &  min_look_ahead,
int &  avg_look_ahead,
int &  addr_align
[virtual]
 

Implements Disassembler.

Definition at line 254 of file alphadis.cc.

byte Alphadis::getSize dis_insn disasm_insn  )  [virtual]
 

Implements Disassembler.

Definition at line 268 of file alphadis.cc.

References byte, and dis_insn.

int Alphadis::load ht_object_stream f  )  [virtual]
 

loads object from object stream.

Returns:
ht_stream errorcode

Reimplemented from Object.

Definition at line 71 of file alphadis.cc.

References Object::load().

OBJECT_ID Alphadis::object_id  )  const [virtual]
 

Returns:
unique object id.

Reimplemented from Object.

Definition at line 273 of file alphadis.cc.

References ATOM_DISASM_ALPHA.

void Alphadis::store ht_object_stream f  )  [virtual]
 

stores object.

Reimplemented from Object.

Definition at line 278 of file alphadis.cc.

References Object::store().

char * Alphadis::str dis_insn disasm_insn,
int  style
[virtual]
 

Reimplemented from Disassembler.

Definition at line 283 of file alphadis.cc.

References dis_insn, and strf().

char * Alphadis::strf dis_insn disasm_insn,
int  style,
char *  format
[virtual]
 

Implements Disassembler.

Definition at line 293 of file alphadis.cc.

References A_NAME, A_REG_A, A_REG_B, A_REG_C, CPU_ADDR::addr32, addr_sym_func, addr_sym_func_context, ALPHA_GROUP1, ALPHA_GROUP2, ALPHA_GROUP3, ALPHA_GROUP4, ALPHA_GROUP_BRA, ALPHA_GROUP_F2I, ALPHA_GROUP_FBR, ALPHA_GROUP_FLD, ALPHA_GROUP_FST, ALPHA_GROUP_I2F, ALPHA_GROUP_JMP, ALPHA_GROUP_PAL, assert, alphadis_insn::code, alphadis_insn::data, dis_insn, DIS_STYLE_HIGHLIGHT, Disassembler::disable_highlighting(), dword, e_cs_default, e_cs_number, e_cs_symbol, Disassembler::enable_highlighting(), Disassembler::get_cs(), insnstr, REG_LIT, alphadis_insn::regB, alphadis_insn::size, alphadis_insn::table, and alphadis_insn::valid.

Referenced by str().

bool Alphadis::validInsn dis_insn disasm_insn  )  [virtual]
 

Implements Disassembler.

Definition at line 389 of file alphadis.cc.

References dis_insn.


Member Data Documentation

alphadis_insn Alphadis::insn [protected]
 

Definition at line 46 of file alphadis.h.

Referenced by Alphadis(), decode(), and duplicateInsn().

char Alphadis::insnstr[256] [protected]
 

Definition at line 45 of file alphadis.h.

Referenced by strf().


The documentation for this class was generated from the following files:
Generated on Fri May 7 21:15:54 2004 by doxygen 1.3.5