# Interface: com.pnfsoftware.jeb.core.units.code.asm.analyzer.IInstructionAugmenter

Provide additional elements for [instructions](IInstruction), resulting from program analysis.

## Method: getDynamicBranchResolution
- parameter: `instructionAddress`, type: `long`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.analyzer.IBranchResolution`

Description: 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.
parameter: instructionAddress: instruction address
return: branch resolution, or null

## Method: getRegisterValueResolution
- parameter: `instructionAddress`, type: `long`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.analyzer.IRegistersResolution`

Description: This routine can be called on any instruction. It is used to provide candidate values for the registers defined and used by the instruction.
parameter: instructionAddress: instruction address
return: register value resolution, or null

## Method: isArtificialEndOfBlock
- parameter: `instructionAddress`, type: `long`
- return type: `boolean`

Description: Force the end of a basic block, regardless of flow information.
parameter: instructionAddress: instruction address
return: true if the instruction must end a basic block

## Method: isReversedBranchSemantic
- parameter: `instructionAddress`, type: `long`
- return type: `boolean`

Description: 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.
parameter: instructionAddress: instruction address
return: true if branch semantics should be reversed

