decompiler  1.0.0
Public Member Functions | Private Member Functions | Private Attributes | List of all members
PcodeEmitFd Class Reference

A p-code emitter for building PcodeOp objects. More...

#include <funcdata.hh>

Inheritance diagram for PcodeEmitFd:
PcodeEmit

Public Member Functions

void setFuncdata (Funcdata *f)
 Establish the container for this emitter.
 
- Public Member Functions inherited from PcodeEmit
virtual ~PcodeEmit (void)
 Virtual destructor.
 
void restoreXmlOp (const Element *el, const AddrSpaceManager *trans)
 Emit pcode directly from an XML tag. More...
 
const uint1 * restorePackedOp (const Address &addr, const uint1 *ptr, const AddrSpaceManager *trans)
 Emit pcode directly from a packed byte stream. More...
 

Private Member Functions

virtual void dump (const Address &addr, OpCode opc, VarnodeData *outvar, VarnodeData *vars, int4 isize)
 The main pcode emit method. More...
 

Private Attributes

Funcdatafd
 The Funcdata container to emit to.
 

Additional Inherited Members

- Public Types inherited from PcodeEmit
enum  {
  unimpl_tag = 0x20, inst_tag = 0x21, op_tag = 0x22, void_tag = 0x23,
  spaceid_tag = 0x24, addrsz_tag = 0x25, end_tag = 0x60
}
 
- Static Public Member Functions inherited from PcodeEmit
static const uint1 * unpackOffset (const uint1 *ptr, uintb &off)
 Helper function for unpacking an offset from a pcode byte stream. More...
 
static const uint1 * unpackVarnodeData (const uint1 *ptr, VarnodeData &v, const AddrSpaceManager *trans)
 Helper function for unpacking a varnode from a pcode byte stream. More...
 

Detailed Description

A p-code emitter for building PcodeOp objects.

The emitter is attached to a specific Funcdata object. Any p-code generated (by FlowInfo typically) will be instantiated as PcodeOp and Varnode objects and placed in the Funcdata dead list.

Member Function Documentation

void PcodeEmitFd::dump ( const Address addr,
OpCode  opc,
VarnodeData outvar,
VarnodeData vars,
int4  isize 
)
privatevirtual

The main pcode emit method.

A single pcode instruction is returned to the application via this method. Particular applications override it to tailor how the operations are used.

Parameters
addris the Address of the machine instruction
opcis the opcode of the particular pcode instruction
outvarif not null is a pointer to data about the output varnode
varsis a pointer to an array of VarnodeData for each input varnode
isizeis the number of input varnodes

Implements PcodeEmit.

References PcodeOp::clearAdditionalFlag(), PcodeOp::getAddr(), PcodeOp::getTime(), Funcdata::glb, PcodeOp::isCodeRef(), PcodeOp::isModified(), PcodeOp::modified, VarnodeData::offset, PcodeOp::printDebug(), PcodeOp::setAdditionalFlag(), VarnodeData::size, Funcdata::size, and VarnodeData::space.


The documentation for this class was generated from the following files: