public abstract class ConditionalJumpInstruction extends JumpInstruction implements DeferableInstruction
markerUnit, targetInstructioncodeAddress, instruction, lineNumber, unit| Constructor and Description |
|---|
ConditionalJumpInstruction(Instruction instruction,
int codeAdress) |
| Modifier and Type | Method and Description |
|---|---|
void |
deferredJimplify(DexBody body)
Jimplify this instruction with the guarantee that every other
(non-deferred) instruction has been jimplified.
|
protected ConditionExpr |
getComparisonExpr(DexBody body,
int reg)
Get comparison expression depending on opcode against zero or null.
|
protected ConditionExpr |
getComparisonExpr(Immediate one,
Immediate other)
Get comparison expression depending on opcode between two immediates
|
protected abstract IfStmt |
ifStatement(DexBody body)
Return an if statement depending on the instruction.
|
void |
jimplify(DexBody body)
Jimplify this instruction.
|
getTargetInstructionaddTags, getInstruction, getLineNumber, getUnit, getUsedRegistersNums, getUsedRegistersNums, introducedTypes, setLineNumber, setUnitpublic ConditionalJumpInstruction(Instruction instruction,
int codeAdress)
protected abstract IfStmt ifStatement(DexBody body)
public void jimplify(DexBody body)
DexlibAbstractInstructionjimplify in class DexlibAbstractInstructionbody - to jimplify into.public void deferredJimplify(DexBody body)
DeferableInstructiondeferredJimplify in interface DeferableInstructionbody - to jimplify intoprotected ConditionExpr getComparisonExpr(DexBody body, int reg)
body - the containing DexBodyreg - the register to compare against zero.protected ConditionExpr getComparisonExpr(Immediate one, Immediate other)
one - first immediateother - second immediatejava.lang.RuntimeException - if this is not a IfTest or IfTestz instruction.