Package ghidra.app.plugin.processors.sleigh

# Class PcodeEmit

java.lang.Object
ghidra.app.plugin.processors.sleigh.PcodeEmit

Direct Known Subclasses:
  `PcodeEmitObjects`, `PcodeEmitPacked`

public abstract class PcodeEmit extends Object
Class for converting ConstructTpl into a pcode ops given a particular InstructionContext

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected VarnodeData[]`
  `incache`
  `protected ArrayList<Integer>`
  `labeldef`
  `protected int`
  `numOps`

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `PcodeEmit()`
  Pcode emitter constructor for empty or unimiplemented instructions
  ``
  `PcodeEmit(ParserWalker walk, InstructionContext ictx, int fallOffset, PcodeOverride override)`
  Pcode emitter constructor

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `build(ConstructTpl construct, int secnum)`
  `int`
  `getFallOffset()`
  `Address`
  `getStartAddress()`
  `ParserWalker`
  `getWalker()`
  `abstract void`
  `resolveRelatives()`
  Now that we have seen all label templates and references convert the collected references into full relative addresses

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### incache

    protected VarnodeData[] incache

  - ### labeldef

    protected ArrayList<Integer> labeldef

  - ### numOps

    protected int numOps

- ## Constructor Details

  - ### PcodeEmit

    protected PcodeEmit()
    Pcode emitter constructor for empty or unimiplemented instructions

  - ### PcodeEmit

    public PcodeEmit(ParserWalker walk, InstructionContext ictx, int fallOffset, PcodeOverride override)
    Pcode emitter constructor
    Parameters:
      `walk` - is the ParserWalker state for the tree that needs to be walked to generate pcode
      `ictx` - is the InstructionContext interface to resolve requests for context
      `fallOffset` - default instruction fall offset (i.e., instruction length including delay slotted instructions)
      `override` - required if pcode overrides are to be utilized

- ## Method Details

  - ### getStartAddress

    public Address getStartAddress()

  - ### getFallOffset

    public int getFallOffset()

  - ### getWalker

    public ParserWalker getWalker()

  - ### resolveRelatives

    public abstract void resolveRelatives()
    Now that we have seen all label templates and references convert the collected references into full relative addresses

  - ### build

    public void build(ConstructTpl construct, int secnum) throws UnknownInstructionException, MemoryAccessException, IOException
    Throws:
      `UnknownInstructionException`
      `MemoryAccessException`
      `IOException`