Class InstructionPcodeOverride

java.lang.Object
ghidra.program.model.listing.InstructionPcodeOverride
All Implemented Interfaces:
PcodeOverride

public class InstructionPcodeOverride extends Object implements PcodeOverride
  • Field Details

  • Constructor Details

    • InstructionPcodeOverride

      public InstructionPcodeOverride(Instruction instr)
      This constructor caches the primary and overriding "from" references of instr. This cache is never updated; the assumption is that this object is short-lived (duration of PcodeEmit)
      Parameters:
      instr - the instruction
  • Method Details

    • getFallThroughOverride

      public Address getFallThroughOverride()
      Description copied from interface: PcodeOverride
      Get the fall-through override address which may have been applied to the current instruction.
      Specified by:
      getFallThroughOverride in interface PcodeOverride
      Returns:
      fall-through override address or null
    • getFlowOverride

      public FlowOverride getFlowOverride()
      Description copied from interface: PcodeOverride
      Get the flow override which may have been applied to the current instruction.
      Specified by:
      getFlowOverride in interface PcodeOverride
      Returns:
      flow override or null
    • getInstructionStart

      public Address getInstructionStart()
      Specified by:
      getInstructionStart in interface PcodeOverride
      Returns:
      current instruction address
    • getOverridingReference

      public Address getOverridingReference(RefType type)
      Description copied from interface: PcodeOverride
      Get the primary overriding reference address of RefType type from the current instruction
      Specified by:
      getOverridingReference in interface PcodeOverride
      Parameters:
      type - type of reference
      Returns:
      call reference address or null
    • getPrimaryCallReference

      public Address getPrimaryCallReference()
      Description copied from interface: PcodeOverride
      Get the primary call reference address from the current instruction
      Specified by:
      getPrimaryCallReference in interface PcodeOverride
      Returns:
      call reference address or null
    • hasCallFixup

      public boolean hasCallFixup(Address callDestAddr)
      Description copied from interface: PcodeOverride
      Returns the call-fixup for a specified call destination.
      Specified by:
      hasCallFixup in interface PcodeOverride
      Parameters:
      callDestAddr - call destination address. This address is used to identify a function which may have been tagged with a CallFixup.
      Returns:
      true if call destination function has been tagged with a call-fixup
    • getCallFixup

      public InjectPayload getCallFixup(Address callDestAddr)
      Description copied from interface: PcodeOverride
      Returns the call-fixup for a specified call destination. If the destination function has not be tagged or was tagged with an unknown CallFixup name this method will return null.
      Specified by:
      getCallFixup in interface PcodeOverride
      Parameters:
      callDestAddr - call destination address. This address is used to identify a function which may have been tagged with a CallFixup.
      Returns:
      call fixup object or null
    • setCallOverrideRefApplied

      public void setCallOverrideRefApplied()
      Description copied from interface: PcodeOverride
      Register that a call override has been applied at the current instruction.
      Specified by:
      setCallOverrideRefApplied in interface PcodeOverride
    • isCallOverrideRefApplied

      public boolean isCallOverrideRefApplied()
      Description copied from interface: PcodeOverride
      Returns a boolean indicating whether a call override has been applied at the current instruction
      Specified by:
      isCallOverrideRefApplied in interface PcodeOverride
      Returns:
      has call override been applied
    • setJumpOverrideRefApplied

      public void setJumpOverrideRefApplied()
      Description copied from interface: PcodeOverride
      Register that a jump override has been applied at the current instruction
      Specified by:
      setJumpOverrideRefApplied in interface PcodeOverride
    • isJumpOverrideRefApplied

      public boolean isJumpOverrideRefApplied()
      Description copied from interface: PcodeOverride
      Returns a boolean indicating whether a jump override has been applied at the current instruction
      Specified by:
      isJumpOverrideRefApplied in interface PcodeOverride
      Returns:
      has jump override been applied
    • setCallOtherCallOverrideRefApplied

      public void setCallOtherCallOverrideRefApplied()
      Description copied from interface: PcodeOverride
      Register that a callother call override has been applied at the current instruction
      Specified by:
      setCallOtherCallOverrideRefApplied in interface PcodeOverride
    • isCallOtherCallOverrideRefApplied

      public boolean isCallOtherCallOverrideRefApplied()
      Description copied from interface: PcodeOverride
      Returns a boolean indicating whether a callother call override has been applied at the current instruction
      Specified by:
      isCallOtherCallOverrideRefApplied in interface PcodeOverride
      Returns:
      has callother call override been applied
    • setCallOtherJumpOverrideRefApplied

      public void setCallOtherJumpOverrideRefApplied()
      Description copied from interface: PcodeOverride
      Register that a callother jump override has been applied at the current instruction
      Specified by:
      setCallOtherJumpOverrideRefApplied in interface PcodeOverride
    • isCallOtherJumpOverrideApplied

      public boolean isCallOtherJumpOverrideApplied()
      Description copied from interface: PcodeOverride
      Returns a boolean indicating whether a callother jump override has been applied at the current instruction
      Specified by:
      isCallOtherJumpOverrideApplied in interface PcodeOverride
      Returns:
      has callother jump override been applied
    • hasPotentialOverride

      public boolean hasPotentialOverride()
      Description copied from interface: PcodeOverride
      Returns a boolean indicating whether there are any primary overriding references at the current instruction
      Specified by:
      hasPotentialOverride in interface PcodeOverride
      Returns:
      are there primary overriding references