Class VarnodeOperation

java.lang.Object
ghidra.program.model.pcode.Varnode
ghidra.util.state.VarnodeOperation

public class VarnodeOperation extends Varnode
  • Constructor Details

    • VarnodeOperation

      public VarnodeOperation(PcodeOp pcodeOp, Varnode[] inputValues)
  • Method Details

    • isSimplified

      public boolean isSimplified()
    • setSimplified

      public void setSimplified(boolean simplified)
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Varnode
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Varnode
    • getPCodeOp

      public PcodeOp getPCodeOp()
    • getInputValues

      public Varnode[] getInputValues()
    • toString

      public String toString()
      Overrides:
      toString in class Varnode
    • toString

      public String toString(Language language)
      Description copied from class: Varnode
      Convert this varnode to an alternate String representation based on a specified language.
      Overrides:
      toString in class Varnode
      Parameters:
      language - is the specified Language
      Returns:
      string representation
    • isAddress

      public boolean isAddress()
      Overrides:
      isAddress in class Varnode
      Returns:
      true if this varnode exists in a Memory space (vs. register etc...). Keep in mind this varnode may also correspond to a defined register if true is returned and Varnode.isRegister() return false. Memory-based registers may be indirectly addressed which leads to the distinction with registers within the register space.
    • isAddrTied

      public boolean isAddrTied()
      Overrides:
      isAddrTied in class Varnode
      Returns:
      is mapped to an address
    • isConstant

      public boolean isConstant()
      Overrides:
      isConstant in class Varnode
      Returns:
      true if this varnode is just a constant number
    • isFree

      public boolean isFree()
      Overrides:
      isFree in class Varnode
    • isInput

      public boolean isInput()
      Overrides:
      isInput in class Varnode
      Returns:
      is input to a pcode op
    • isPersistent

      public boolean isPersistent()
      Overrides:
      isPersistent in class Varnode
      Returns:
      is persistent
    • isRegister

      public boolean isRegister()
      Overrides:
      isRegister in class Varnode
      Returns:
      true if this varnode exists in a Register type space. If false is returned, keep in mind this varnode may still correspond to a defined register within a memory space. Memory-based registers may be indirectly addressed which leads to the distinction with registers within the register space.
    • isUnaffected

      public boolean isUnaffected()
      Overrides:
      isUnaffected in class Varnode
    • isUnique

      public boolean isUnique()
      Overrides:
      isUnique in class Varnode
      Returns:
      true if this varnode doesn't exist anywhere. A temporary variable.
    • trim

      public void trim()
      Description copied from class: Varnode
      Trim a varnode in a constant space to the correct starting offset. Constant handles may contain constants of indeterminate size. This is where the size gets fixed, i.e. we mask off the constant to its proper size. A varnode that is ends up in pcode should call this method to ensure that varnodes always contains raw data. On the other hand, varnodes in handles are allowed to have offsets that violate size restrictions.
      Overrides:
      trim in class Varnode