| java.lang.Object | ||
| ↳ | java.lang.Enum<E extends java.lang.Enum<E>> | |
| ↳ | com.pnfsoftware.jeb.core.units.code.android.ir.DOpcodeType | |
This enumeration defines the opcode types of the intermediate representation (IR)
instructions used by dexdec. An IR instruction has two optional
operands, noted opnd1 and opnd2.
Note that the IR_STORE_EXCEPTION opcode can only be the first instruction of an
exception handler block. The IR_JUMP, IR_JCOND, IR_SWITCH,
IR_RETURN, IR_THROW can only be the last instruction of a basic block.
| Enum Values | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| DOpcodeType | IR_ASSIGN | Assignment. | |||||||||
| DOpcodeType | IR_INVOKE | General method invocation - opnd1: null - opnd2: an IDInvokeInfo expression (call, new,
new-array, alloc-object)
|
|||||||||
| DOpcodeType | IR_JCOND | Conditional jump - opnd1: the IDTarget, branched to if the conditional expression is true- opnd2: the conditional expression, IDPredicate
|
|||||||||
| DOpcodeType | IR_JUMP | Unconditional jump - opnd1: the IDTarget- opnd2: null |
|||||||||
| DOpcodeType | IR_MONITOR_ENTER | Notify the beginning of a synchronized block of code. | |||||||||
| DOpcodeType | IR_MONITOR_EXIT | Notify the end of a synchronized block of code. | |||||||||
| DOpcodeType | IR_NOP | No-operation instruction - opnd1: null - opnd2: null |
|||||||||
| DOpcodeType | IR_RETURN | Method return - opnd1: null - opnd2: optional IDExpression return value (may be null)
|
|||||||||
| DOpcodeType | IR_STORE_EXCEPTION | Store a caught typed exception to a variable Very restrictive opcode, to be used only at the beginning of exception handlers blocks. |
|||||||||
| DOpcodeType | IR_SWITCH | Switch (n-way conditional jump) - opnd1: the IDSwitchData- opnd2: the switched-on IDExpression
|
|||||||||
| DOpcodeType | IR_THROW | Raise an error or exception - opnd1: null - opnd2: non-null throwable, an IDExpression (should be typed as
java.lang.Throwable or any of its sub-types)
|
|||||||||
| Public Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| final int |
indexOf(DOpcodeType... candidates)
Determine whether this opcode matches one of the provided candidate opcodes.
| ||||||||||
| final boolean |
isAnyOf(DOpcodeType... candidates)
Determine whether this opcode matches one of the provided candidate opcodes.
| ||||||||||
| static DOpcodeType | valueOf(String name) | ||||||||||
| final static DOpcodeType[] | values() | ||||||||||
|
[Expand]
Inherited Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.lang.Enum
| |||||||||||
From class
java.lang.Object
| |||||||||||
From interface
java.lang.Comparable
| |||||||||||
Assignment.
- opnd1: destination (left) member, IDExpression
- opnd2: source (right) member, IDExpression
General method invocation
- opnd1: null
- opnd2: an IDInvokeInfo expression (call, new,
new-array, alloc-object)
Conditional jump
- opnd1: the IDTarget, branched to if the conditional expression is true
- opnd2: the conditional expression, IDPredicate
Notify the beginning of a synchronized block of code.
Ideally, should not be translated to opcodes: instead the structurer should combine these
opcodes with try-catch block to build synchronized code blocks.
However, if this is not possible, invalid statements (similar to 'goto') should be
issued.
- opnd1: null
- opnd2: the lock object IDExpression
Notify the end of a synchronized block of code.
Ideally, should not be translated to opcodes: instead the structurer should combine these
opcodes with try-catch block to build synchronized code blocks.
However, if this is not possible, invalid statements (similar to 'goto') should be
issued.
- opnd1: null
- opnd2: the lock object IDExpression
Method return
- opnd1: null
- opnd2: optional IDExpression return value (may be null)
Store a caught typed exception to a variable
Very restrictive opcode, to be used only at the beginning of exception handlers blocks.
(equivalent to Dalvik's move-exception.)
- opnd1: IDVar
- opnd2: null
Switch (n-way conditional jump)
- opnd1: the IDSwitchData
- opnd2: the switched-on IDExpression
Raise an error or exception
- opnd1: null
- opnd2: non-null throwable, an IDExpression (should be typed as
java.lang.Throwable or any of its sub-types)
Determine whether this opcode matches one of the provided candidate opcodes.
| candidates | candidate opcodes |
|---|
Determine whether this opcode matches one of the provided candidate opcodes.
| candidates | candidate opcodes |
|---|