Interface IInstructionAugmenter
- All Known Subinterfaces:
INativeCodeModel<InsnType>
public interface IInstructionAugmenter
Provide additional elements for
instructions
, resulting from program
analysis.-
Method Summary
Modifier and TypeMethodDescriptiongetDynamicBranchResolution
(long instructionAddress) This routine can be called on any instruction: a regular or seemingly regular instruction; a flow breaker; a call-to-sub.getRegisterValueResolution
(long instructionAddress) This routine can be called on any instruction.boolean
isArtificialEndOfBlock
(long instructionAddress) Force the end of a basic block, regardless of flow information.boolean
isReversedBranchSemantic
(long instructionAddress) Determine whether the branching instruction at the provided address, if there is one, should have its branch semantics reversed, that is, a flow-breaker should be interpreted as a call-to-sub, whereas a call-to-sub should be interpreted as flow-breaker.
-
Method Details
-
isArtificialEndOfBlock
boolean isArtificialEndOfBlock(long instructionAddress) Force the end of a basic block, regardless of flow information.- Parameters:
instructionAddress
-- Returns:
-
isReversedBranchSemantic
boolean isReversedBranchSemantic(long instructionAddress) Determine whether the branching instruction at the provided address, if there is one, should have its branch semantics reversed, that is, a flow-breaker should be interpreted as a call-to-sub, whereas a call-to-sub should be interpreted as flow-breaker.- Parameters:
instructionAddress
-- Returns:
-
getDynamicBranchResolution
This routine can be called on any instruction: a regular or seemingly regular instruction; a flow breaker; a call-to-sub. It is used to provide or augment the list of targets in case of a branching operation. This method may provide a resolved target or a list of candidate targets for the callsite.- Parameters:
instructionAddress
-- Returns:
-
getRegisterValueResolution
This routine can be called on any instruction. It is used to provide candidate values for the registers defined and used by the instruction.- Parameters:
instructionAddress
-- Returns:
-