Package sootup.apk.frontend.instruction
Class ConditionalJumpInstruction
java.lang.Object
sootup.apk.frontend.instruction.DexLibAbstractInstruction
sootup.apk.frontend.instruction.JumpInstruction
sootup.apk.frontend.instruction.ConditionalJumpInstruction
- All Implemented Interfaces:
DeferableInstruction
- Direct Known Subclasses:
IfTestInstruction
,IfTestzInstruction
public abstract class ConditionalJumpInstruction
extends JumpInstruction
implements DeferableInstruction
-
Field Summary
Fields inherited from class sootup.apk.frontend.instruction.JumpInstruction
markerUnit, targetInstruction
Fields inherited from class sootup.apk.frontend.instruction.DexLibAbstractInstruction
codeAddress, instruction, lineNumber, stmt
-
Constructor Summary
ConstructorDescriptionConditionalJumpInstruction
(org.jf.dexlib2.iface.instruction.Instruction instruction, int codeAddress) -
Method Summary
Modifier and TypeMethodDescriptionvoid
deferredJimplify
(DexBody body) Jimplify this instruction with the guarantee that every other (non-deferred) instruction has been jimplified.protected AbstractConditionExpr
getComparisonExpr
(DexBody body, int reg) protected AbstractConditionExpr
getComparisonExpr
(Immediate one, Immediate other) Get comparison expression depending on opcode between two immediatesprotected abstract JIfStmt
ifStatement
(DexBody dexBody) void
Jimplify this instruction.Methods inherited from class sootup.apk.frontend.instruction.JumpInstruction
getTargetInstruction
Methods inherited from class sootup.apk.frontend.instruction.DexLibAbstractInstruction
getInstruction, getLineNumber, getStmt, getUsedRegistersNums, getUsedRegistersNums, setLineNumber, setStmt
-
Constructor Details
-
ConditionalJumpInstruction
public ConditionalJumpInstruction(org.jf.dexlib2.iface.instruction.Instruction instruction, int codeAddress) - Parameters:
instruction
- the underlying dexlib instructioncodeAddress
- the bytecode address of this instruction
-
-
Method Details
-
ifStatement
-
jimplify
Description copied from class:DexLibAbstractInstruction
Jimplify this instruction.- Specified by:
jimplify
in classDexLibAbstractInstruction
- Parameters:
body
- to jimplify into.
-
getComparisonExpr
-
getComparisonExpr
Get comparison expression depending on opcode between two immediates- Parameters:
one
- first immediateother
- second immediate- Returns:
- the conditional expression statement based on the opcode fromm the given instruction
- Throws:
RuntimeException
- if this is not a IfTest or IfTestz instruction.
-
deferredJimplify
Description copied from interface:DeferableInstruction
Jimplify this instruction with the guarantee that every other (non-deferred) instruction has been jimplified.- Specified by:
deferredJimplify
in interfaceDeferableInstruction
- Parameters:
body
- to jimplify into
-