Package ghidra.program.model.listing
Class InstructionPcodeOverride
- java.lang.Object
-
- ghidra.program.model.listing.InstructionPcodeOverride
-
- All Implemented Interfaces:
PcodeOverride
public class InstructionPcodeOverride extends java.lang.Object implements PcodeOverride
-
-
Field Summary
Fields Change Modifier and Type Field Description protected Instructioninstr
-
Constructor Summary
Constructors Change Constructor Description InstructionPcodeOverride(Instruction instr)This constructor caches the primary and overriding "from" references ofinstr.
-
Method Summary
All Methods Instance Methods Concrete Methods Change Modifier and Type Method Description InjectPayloadgetCallFixup(Address callDestAddr)Returns the call-fixup for a specified call destination.AddressgetFallThroughOverride()Get the fall-through override address which may have been applied to the current instruction.FlowOverridegetFlowOverride()Get the flow override which may have been applied to the current instruction.AddressgetInstructionStart()NEW AddressgetOverridingReference(RefType type)Get the primary overriding reference address ofRefTypetypefrom the current instructionAddressgetPrimaryCallReference()Get the primary call reference address from the current instructionbooleanhasCallFixup(Address callDestAddr)Returns the call-fixup for a specified call destination.NEW booleanhasPotentialOverride()Returns a boolean indicating whether there are any primary overriding references at the current instructionNEW booleanisCallOtherCallOverrideRefApplied()Returns a boolean indicating whether a callother call override has been applied at the current instructionNEW booleanisCallOtherJumpOverrideApplied()Returns a boolean indicating whether a callother jump override has been applied at the current instructionNEW booleanisCallOverrideRefApplied()Returns a boolean indicating whether a call override has been applied at the current instructionNEW booleanisJumpOverrideRefApplied()Returns a boolean indicating whether a jump override has been applied at the current instructionNEW voidsetCallOtherCallOverrideRefApplied()Register that a callother call override has been applied at the current instructionNEW voidsetCallOtherJumpOverrideRefApplied()Register that a callother jump override has been applied at the current instructionNEW voidsetCallOverrideRefApplied()Register that a call override has been applied at the current instruction.NEW voidsetJumpOverrideRefApplied()Register that a jump override has been applied at the current instruction
-
-
-
Field Detail
-
instr
protected Instruction instr
-
-
Constructor Detail
-
InstructionPcodeOverride
public InstructionPcodeOverride(Instruction instr)
This constructor caches the primary and overriding "from" references ofinstr. This cache is never updated; the assumption is that this object is short-lived (duration ofPcodeEmit)- Parameters:
instr- the instruction
-
-
Method Detail
-
getFallThroughOverride
public Address getFallThroughOverride()
Description copied from interface:PcodeOverrideGet the fall-through override address which may have been applied to the current instruction.- Specified by:
getFallThroughOverridein interfacePcodeOverride- Returns:
- fall-through override address or null
-
getFlowOverride
public FlowOverride getFlowOverride()
Description copied from interface:PcodeOverrideGet the flow override which may have been applied to the current instruction.- Specified by:
getFlowOverridein interfacePcodeOverride- Returns:
- flow override or null
-
getInstructionStart
public Address getInstructionStart()
- Specified by:
getInstructionStartin interfacePcodeOverride- Returns:
- current instruction address
-
getOverridingReference NEW
public Address getOverridingReference(RefType type)
Description copied from interface:PcodeOverrideGet the primary overriding reference address ofRefTypetypefrom the current instruction- Specified by:
getOverridingReferencein interfacePcodeOverride- Parameters:
type- type of reference- Returns:
- call reference address or null
-
getPrimaryCallReference
public Address getPrimaryCallReference()
Description copied from interface:PcodeOverrideGet the primary call reference address from the current instruction- Specified by:
getPrimaryCallReferencein interfacePcodeOverride- Returns:
- call reference address or null
-
hasCallFixup
public boolean hasCallFixup(Address callDestAddr)
Description copied from interface:PcodeOverrideReturns the call-fixup for a specified call destination.- Specified by:
hasCallFixupin interfacePcodeOverride- 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:PcodeOverrideReturns 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:
getCallFixupin interfacePcodeOverride- 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 NEW
public void setCallOverrideRefApplied()
Description copied from interface:PcodeOverrideRegister that a call override has been applied at the current instruction.- Specified by:
setCallOverrideRefAppliedin interfacePcodeOverride
-
isCallOverrideRefApplied NEW
public boolean isCallOverrideRefApplied()
Description copied from interface:PcodeOverrideReturns a boolean indicating whether a call override has been applied at the current instruction- Specified by:
isCallOverrideRefAppliedin interfacePcodeOverride- Returns:
- has call override been applied
-
setJumpOverrideRefApplied NEW
public void setJumpOverrideRefApplied()
Description copied from interface:PcodeOverrideRegister that a jump override has been applied at the current instruction- Specified by:
setJumpOverrideRefAppliedin interfacePcodeOverride
-
isJumpOverrideRefApplied NEW
public boolean isJumpOverrideRefApplied()
Description copied from interface:PcodeOverrideReturns a boolean indicating whether a jump override has been applied at the current instruction- Specified by:
isJumpOverrideRefAppliedin interfacePcodeOverride- Returns:
- has jump override been applied
-
setCallOtherCallOverrideRefApplied NEW
public void setCallOtherCallOverrideRefApplied()
Description copied from interface:PcodeOverrideRegister that a callother call override has been applied at the current instruction- Specified by:
setCallOtherCallOverrideRefAppliedin interfacePcodeOverride
-
isCallOtherCallOverrideRefApplied NEW
public boolean isCallOtherCallOverrideRefApplied()
Description copied from interface:PcodeOverrideReturns a boolean indicating whether a callother call override has been applied at the current instruction- Specified by:
isCallOtherCallOverrideRefAppliedin interfacePcodeOverride- Returns:
- has callother call override been applied
-
setCallOtherJumpOverrideRefApplied NEW
public void setCallOtherJumpOverrideRefApplied()
Description copied from interface:PcodeOverrideRegister that a callother jump override has been applied at the current instruction- Specified by:
setCallOtherJumpOverrideRefAppliedin interfacePcodeOverride
-
isCallOtherJumpOverrideApplied NEW
public boolean isCallOtherJumpOverrideApplied()
Description copied from interface:PcodeOverrideReturns a boolean indicating whether a callother jump override has been applied at the current instruction- Specified by:
isCallOtherJumpOverrideAppliedin interfacePcodeOverride- Returns:
- has callother jump override been applied
-
hasPotentialOverride NEW
public boolean hasPotentialOverride()
Description copied from interface:PcodeOverrideReturns a boolean indicating whether there are any primary overriding references at the current instruction- Specified by:
hasPotentialOverridein interfacePcodeOverride- Returns:
- are there primary overriding references
-
-