Package ghidra.program.model.pcode

# Interface PcodeOverride

All Known Implementing Classes:
  `InstructionPcodeOverride`

public interface PcodeOverride

- ## Method Summary

  Modifier and Type
  Method
  Description
  `InjectPayload`
  `getCallFixup(Address callDestAddr)`
  Returns the call-fixup for a specified call destination.
  `Address`
  `getFallThroughOverride()`
  Get the fall-through override address which may have been applied to the current instruction.
  `FlowOverride`
  `getFlowOverride()`
  Get the flow override which may have been applied to the current instruction.
  `Address`
  `getInstructionStart()`
  `Address`
  `getOverridingReference(RefType type)`
  Get the primary overriding reference address of `RefType` `type` from the current instruction
  `Address`
  `getPrimaryCallReference()`
  Deprecated.
  `boolean`
  `hasCallFixup(Address callDestAddr)`
  Returns the call-fixup for a specified call destination.
  `boolean`
  `hasPotentialOverride()`
  Returns a boolean indicating whether there are any primary overriding references at the current instruction
  `boolean`
  `isCallOtherCallOverrideRefApplied()`
  Returns a boolean indicating whether a callother call override has been applied at the current instruction
  `boolean`
  `isCallOtherJumpOverrideApplied()`
  Returns a boolean indicating whether a callother jump override has been applied at the current instruction
  `boolean`
  `isCallOverrideRefApplied()`
  Returns a boolean indicating whether a call override has been applied at the current instruction
  `boolean`
  `isJumpOverrideRefApplied()`
  Returns a boolean indicating whether a jump override has been applied at the current instruction
  `void`
  `setCallOtherCallOverrideRefApplied()`
  Register that a callother call override has been applied at the current instruction
  `void`
  `setCallOtherJumpOverrideRefApplied()`
  Register that a callother jump override has been applied at the current instruction
  `void`
  `setCallOverrideRefApplied()`
  Register that a call override has been applied at the current instruction.
  `void`
  `setJumpOverrideRefApplied()`
  Register that a jump override has been applied at the current instruction

- ## Method Details

  - ### getInstructionStart

    Address getInstructionStart()
    Returns:
      current instruction address

  - ### getFlowOverride

    FlowOverride getFlowOverride()
    Get the flow override which may have been applied to the current instruction.
    Returns:
      flow override or null

  - ### getOverridingReference

    Address getOverridingReference(RefType type)
    Get the primary overriding reference address of `RefType` `type` from the current instruction
    Parameters:
      `type` - type of reference
    Returns:
      call reference address or null

  - ### getFallThroughOverride

    Address getFallThroughOverride()
    Get the fall-through override address which may have been applied to the current instruction.
    Returns:
      fall-through override address or null

  - ### hasCallFixup

    boolean hasCallFixup(Address callDestAddr)
    Returns the call-fixup for a specified call destination.
    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

    InjectPayload getCallFixup(Address callDestAddr)
    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.
    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

    void setCallOverrideRefApplied()
    Register that a call override has been applied at the current instruction.

  - ### isCallOverrideRefApplied

    boolean isCallOverrideRefApplied()
    Returns a boolean indicating whether a call override has been applied at the current instruction
    Returns:
      has call override been applied

  - ### setJumpOverrideRefApplied

    void setJumpOverrideRefApplied()
    Register that a jump override has been applied at the current instruction

  - ### isJumpOverrideRefApplied

    boolean isJumpOverrideRefApplied()
    Returns a boolean indicating whether a jump override has been applied at the current instruction
    Returns:
      has jump override been applied

  - ### setCallOtherCallOverrideRefApplied

    void setCallOtherCallOverrideRefApplied()
    Register that a callother call override has been applied at the current instruction

  - ### isCallOtherCallOverrideRefApplied

    boolean isCallOtherCallOverrideRefApplied()
    Returns a boolean indicating whether a callother call override has been applied at the current instruction
    Returns:
      has callother call override been applied

  - ### setCallOtherJumpOverrideRefApplied

    void setCallOtherJumpOverrideRefApplied()
    Register that a callother jump override has been applied at the current instruction

  - ### isCallOtherJumpOverrideApplied

    boolean isCallOtherJumpOverrideApplied()
    Returns a boolean indicating whether a callother jump override has been applied at the current instruction
    Returns:
      has callother jump override been applied

  - ### hasPotentialOverride

    boolean hasPotentialOverride()
    Returns a boolean indicating whether there are any primary overriding references at the current instruction
    Returns:
      are there primary overriding references

  - ### getPrimaryCallReference

    @Deprecated Address getPrimaryCallReference()
    Deprecated.
    Get the primary call reference address from the current instruction
    Returns:
      call reference address or null