Class AbstractAssemblyState

java.lang.Object
ghidra.app.plugin.assembler.sleigh.sem.AbstractAssemblyState
Direct Known Subclasses:
AssemblyConstructState, AssemblyNopState, AssemblyOperandState

public abstract class AbstractAssemblyState extends Object
Base for a node in an assembly prototype
  • Field Details

    • DBG

      protected static final DbgTimer DBG
    • resolver MODIFIED

      protected final AbstractAssemblyTreeResolver<?> resolver
      type: AssemblyTreeResolver → AbstractAssemblyTreeResolver
      -ghidra.app.plugin.assembler.sleigh.sem.AssemblyTreeResolver resolver
      +ghidra.app.plugin.assembler.sleigh.sem.AbstractAssemblyTreeResolver<?> resolver
    • factory NEW

      protected final AbstractAssemblyResolutionFactory<?,?> factory
    • path

      protected final List<AssemblyConstructorSemantic> path
    • shift

      protected final int shift
    • length

      protected final int length
    • hasHash NEW

      protected volatile boolean hasHash
    • hash

      protected volatile int hash
  • Constructor Details

    • AbstractAssemblyState

      protected AbstractAssemblyState(AbstractAssemblyTreeResolver<?> resolver, List<AssemblyConstructorSemantic> path, int shift, int length)
      Construct a node
      Parameters:
      resolver - the resolver
      path - the path to this node for diagnostics
      shift - the (right) shift in bytes for this operand
      length - the length of this operand
  • Method Details

    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • computeHash

      public abstract int computeHash()
      Pre compute this nodes hash
      Returns:
      the hash
    • equals

      public abstract boolean equals(Object obj)
      Overrides:
      equals in class Object
    • resolve

      Generate machine (partial) code for this node
      Parameters:
      fromRight - the accumulated patterns thus far, from the right sibling or left-most child
      errors - a place to collect error reports
      Returns:
      the stream of generated patterns, as accumulated
    • getResolver NEW

      public AbstractAssemblyTreeResolver<?> getResolver()
    • getPath NEW

      public List<AssemblyConstructorSemantic> getPath()
    • getShift NEW

      public int getShift()
    • getLength

      public int getLength()
      Get the length in bytes of the operand represented by this node
      Returns:
      the length