Class InstructionPcodeOverride

  • All Implemented Interfaces:
    PcodeOverride

    public class InstructionPcodeOverride
    extends java.lang.Object
    implements PcodeOverride
    • Constructor Detail

      • 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 Detail

      • 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
      • 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
      • 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
      • 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