| Package | Description |
|---|---|
| com.android.dx.rop.code |
Classes relating to a register-based opcode system.
|
| com.android.dx.ssa |
| Modifier and Type | Field and Description |
|---|---|
static Rop |
Rops.ADD_CONST_DOUBLE
r,x,c: double :: r = x + c; |
static Rop |
Rops.ADD_CONST_FLOAT
r,x,c: float :: r = x + c; |
static Rop |
Rops.ADD_CONST_INT
r,x,c: int :: r = x + c; |
static Rop |
Rops.ADD_CONST_LONG
r,x,c: long :: r = x + c; |
static Rop |
Rops.ADD_DOUBLE
r,x,y: double :: r = x + y; |
static Rop |
Rops.ADD_FLOAT
r,x,y: float :: r = x + y; |
static Rop |
Rops.ADD_INT
r,x,y: int :: r = x + y; |
static Rop |
Rops.ADD_LONG
r,x,y: long :: r = x + y; |
static Rop |
Rops.AGET_BOOLEAN
r: boolean; x: boolean[]; y: int :: r = x[y] |
static Rop |
Rops.AGET_BYTE
r: byte; x: byte[]; y: int :: r = x[y] |
static Rop |
Rops.AGET_CHAR
r: char; x: char[]; y: int :: r = x[y] |
static Rop |
Rops.AGET_DOUBLE
r: double; x: double[]; y: int :: r = x[y] |
static Rop |
Rops.AGET_FLOAT
r: float; x: float[]; y: int :: r = x[y] |
static Rop |
Rops.AGET_INT
r,y: int; x: int[] :: r = x[y] |
static Rop |
Rops.AGET_LONG
r: long; x: long[]; y: int :: r = x[y] |
static Rop |
Rops.AGET_OBJECT
r: Object; x: Object[]; y: int :: r = x[y] |
static Rop |
Rops.AGET_SHORT
r: short; x: short[]; y: int :: r = x[y] |
static Rop |
Rops.AND_CONST_INT
r,x,c: int :: r = x & c; |
static Rop |
Rops.AND_CONST_LONG
r,x,c: long :: r = x & c; |
static Rop |
Rops.AND_INT
r,x,y: int :: r = x & y; |
static Rop |
Rops.AND_LONG
r,x,y: long :: r = x & y; |
static Rop |
Rops.APUT_BOOLEAN
x: boolean; y: boolean[]; z: int :: y[z] = x |
static Rop |
Rops.APUT_BYTE
x: byte; y: byte[]; z: int :: y[z] = x |
static Rop |
Rops.APUT_CHAR
x: char; y: char[]; z: int :: y[z] = x |
static Rop |
Rops.APUT_DOUBLE
x: double; y: double[]; z: int :: y[z] = x |
static Rop |
Rops.APUT_FLOAT
x: float; y: float[]; z: int :: y[z] = x |
static Rop |
Rops.APUT_INT
x,z: int; y: int[] :: y[z] = x |
static Rop |
Rops.APUT_LONG
x: long; y: long[]; z: int :: y[z] = x |
static Rop |
Rops.APUT_OBJECT
x: Object; y: Object[]; z: int :: y[z] = x |
static Rop |
Rops.APUT_SHORT
x: short; y: short[]; z: int :: y[z] = x |
static Rop |
Rops.ARRAY_LENGTH
T: any type; r: int; x: T[]; :: r = x.length |
static Rop |
Rops.CHECK_CAST
T: any non-array object type; x: Object :: (T) x (can
throw ClassCastException) |
static Rop |
Rops.CMPG_DOUBLE
r: int; x,y: double :: r = cmpg(x, y); |
static Rop |
Rops.CMPG_FLOAT
r: int; x,y: float :: r = cmpg(x, y); |
static Rop |
Rops.CMPL_DOUBLE
r: int; x,y: double :: r = cmpl(x, y); |
static Rop |
Rops.CMPL_FLOAT
r: int; x,y: float :: r = cmpl(x, y); |
static Rop |
Rops.CMPL_LONG
r: int; x,y: long :: r = cmp(x, y); |
static Rop |
Rops.CONST_DOUBLE
r, literal: double :: r = literal; |
static Rop |
Rops.CONST_FLOAT
r, literal: float :: r = literal; |
static Rop |
Rops.CONST_INT
r, literal: int :: r = literal; |
static Rop |
Rops.CONST_LONG
r, literal: long :: r = literal; |
static Rop |
Rops.CONST_OBJECT
r, literal: Object :: r = literal; |
static Rop |
Rops.CONST_OBJECT_NOTHROW
r, literal: Object :: r = literal; |
static Rop |
Rops.CONV_D2F
r: float; x: double :: r = (float) x |
static Rop |
Rops.CONV_D2I
r: int; x: double :: r = (int) x |
static Rop |
Rops.CONV_D2L
r: long; x: double :: r = (long) x |
static Rop |
Rops.CONV_F2D
r: double; x: float :: r = (double) x |
static Rop |
Rops.CONV_F2I
r: int; x: float :: r = (int) x |
static Rop |
Rops.CONV_F2L
r: long; x: float :: r = (long) x |
static Rop |
Rops.CONV_I2D
r: double; x: int :: r = (double) x |
static Rop |
Rops.CONV_I2F
r: float; x: int :: r = (float) x |
static Rop |
Rops.CONV_I2L
r: long; x: int :: r = (long) x |
static Rop |
Rops.CONV_L2D
r: double; x: long :: r = (double) x |
static Rop |
Rops.CONV_L2F
r: float; x: long :: r = (float) x |
static Rop |
Rops.CONV_L2I
r: int; x: long :: r = (int) x |
static Rop |
Rops.DIV_CONST_DOUBLE
r,x,c: double :: r = x / c; |
static Rop |
Rops.DIV_CONST_FLOAT
r,x,c: float :: r = x / c; |
static Rop |
Rops.DIV_CONST_INT
r,x,c: int :: r = x / c; |
static Rop |
Rops.DIV_CONST_LONG
r,x,c: long :: r = x / c; |
static Rop |
Rops.DIV_DOUBLE
r,x,y: double :: r = x / y; |
static Rop |
Rops.DIV_FLOAT
r,x,y: float :: r = x / y; |
static Rop |
Rops.DIV_INT
r,x,y: int :: r = x / y; |
static Rop |
Rops.DIV_LONG
r,x,y: long :: r = x / y; |
static Rop |
Rops.FILL_ARRAY_DATA
T: Any primitive type; v0..vx: T :: {v0, ..., vx} |
static Rop |
Rops.GET_FIELD_BOOLEAN
r: boolean; x: Object; f: instance field spec of
type boolean :: r = x.f |
static Rop |
Rops.GET_FIELD_BYTE
r: byte; x: Object; f: instance field spec of
type byte :: r = x.f |
static Rop |
Rops.GET_FIELD_CHAR
r: char; x: Object; f: instance field spec of
type char :: r = x.f |
static Rop |
Rops.GET_FIELD_DOUBLE
r: double; x: Object; f: instance field spec of
type double :: r = x.f |
static Rop |
Rops.GET_FIELD_FLOAT
r: float; x: Object; f: instance field spec of
type float :: r = x.f |
static Rop |
Rops.GET_FIELD_INT
r: int; x: Object; f: instance field spec of
type int :: r = x.f |
static Rop |
Rops.GET_FIELD_LONG
r: long; x: Object; f: instance field spec of
type long :: r = x.f |
static Rop |
Rops.GET_FIELD_OBJECT
r: Object; x: Object; f: instance field spec of
type Object :: r = x.f |
static Rop |
Rops.GET_FIELD_SHORT
r: short; x: Object; f: instance field spec of
type short :: r = x.f |
static Rop |
Rops.GET_STATIC_BOOLEAN
r: boolean; f: static field spec of type boolean :: r = f |
static Rop |
Rops.GET_STATIC_BYTE
r: byte; f: static field spec of type byte :: r = f |
static Rop |
Rops.GET_STATIC_CHAR
r: char; f: static field spec of type char :: r = f |
static Rop |
Rops.GET_STATIC_DOUBLE
r: double; f: static field spec of type double :: r = f |
static Rop |
Rops.GET_STATIC_FLOAT
r: float; f: static field spec of type float :: r = f |
static Rop |
Rops.GET_STATIC_INT
r: int; f: static field spec of type int :: r = f |
static Rop |
Rops.GET_STATIC_LONG
r: long; f: static field spec of type long :: r = f |
static Rop |
Rops.GET_STATIC_OBJECT
r: Object; f: static field spec of type Object :: r = f |
static Rop |
Rops.GET_STATIC_SHORT
r: short; f: static field spec of type short :: r = f |
static Rop |
Rops.GOTO
goto label |
static Rop |
Rops.IF_EQ_INT
x,y: int :: if (x == y) goto label |
static Rop |
Rops.IF_EQ_OBJECT
x,y: Object :: if (x == y) goto label |
static Rop |
Rops.IF_EQZ_INT
x: int :: if (x == 0) goto label |
static Rop |
Rops.IF_EQZ_OBJECT
x: Object :: if (x == null) goto label |
static Rop |
Rops.IF_GE_INT
x,y: int :: if (x >= y) goto label |
static Rop |
Rops.IF_GEZ_INT
x: int :: if (x >= 0) goto label |
static Rop |
Rops.IF_GT_INT
x,y: int :: if (x > y) goto label |
static Rop |
Rops.IF_GTZ_INT
x: int :: if (x > 0) goto label |
static Rop |
Rops.IF_LE_INT
x,y: int :: if (x <= y) goto label |
static Rop |
Rops.IF_LEZ_INT
x: int :: if (x <= 0) goto label |
static Rop |
Rops.IF_LT_INT
x,y: int :: if (x < y) goto label |
static Rop |
Rops.IF_LTZ_INT
x: int :: if (x < 0) goto label |
static Rop |
Rops.IF_NE_INT
x,y: int :: if (x != y) goto label |
static Rop |
Rops.IF_NE_OBJECT
x,y: Object :: if (x != y) goto label |
static Rop |
Rops.IF_NEZ_INT
x: int :: if (x != 0) goto label |
static Rop |
Rops.IF_NEZ_OBJECT
x: Object :: if (x != null) goto label |
static Rop |
Rops.INSTANCE_OF
T: any non-array object type; x: Object :: x instanceof
T. |
static Rop |
Rops.MARK_LOCAL_DOUBLE
x: Double :: local variable begins in x |
static Rop |
Rops.MARK_LOCAL_FLOAT
x: Float :: local variable begins in x |
static Rop |
Rops.MARK_LOCAL_INT
x: Int :: local variable begins in x |
static Rop |
Rops.MARK_LOCAL_LONG
x: Long :: local variable begins in x |
static Rop |
Rops.MARK_LOCAL_OBJECT
x: Object :: local variable begins in x |
static Rop |
Rops.MONITOR_ENTER
x: Object :: monitorenter(x) |
static Rop |
Rops.MONITOR_EXIT
x: Object :: monitorexit(x) |
static Rop |
Rops.MOVE_DOUBLE
r,x: double :: r = x; |
static Rop |
Rops.MOVE_FLOAT
r,x: float :: r = x; |
static Rop |
Rops.MOVE_INT
r,x: int :: r = x; |
static Rop |
Rops.MOVE_LONG
r,x: long :: r = x; |
static Rop |
Rops.MOVE_OBJECT
r,x: Object :: r = x; |
static Rop |
Rops.MOVE_PARAM_DOUBLE
r,param(x): double :: r = param(x); |
static Rop |
Rops.MOVE_PARAM_FLOAT
r,param(x): float :: r = param(x); |
static Rop |
Rops.MOVE_PARAM_INT
r,param(x): int :: r = param(x); |
static Rop |
Rops.MOVE_PARAM_LONG
r,param(x): long :: r = param(x); |
static Rop |
Rops.MOVE_PARAM_OBJECT
r,param(x): Object :: r = param(x); |
static Rop |
Rops.MOVE_RETURN_ADDRESS
r,x: ReturnAddress :: r = x;
Note that this rop-form instruction has no dex-form equivilent and
must be removed before the dex conversion. |
static Rop |
Rops.MUL_CONST_DOUBLE
r,x,c: double :: r = x * c; |
static Rop |
Rops.MUL_CONST_FLOAT
r,x,c: float :: r = x * c; |
static Rop |
Rops.MUL_CONST_INT
r,x,c: int :: r = x * c; |
static Rop |
Rops.MUL_CONST_LONG
r,x,c: long :: r = x * c; |
static Rop |
Rops.MUL_DOUBLE
r,x,y: double :: r = x * y; |
static Rop |
Rops.MUL_FLOAT
r,x,y: float :: r = x * y; |
static Rop |
Rops.MUL_INT
r,x,y: int :: r = x * y; |
static Rop |
Rops.MUL_LONG
r,x,y: long :: r = x * y; |
static Rop |
Rops.NEG_DOUBLE
r,x: double :: r = -x; |
static Rop |
Rops.NEG_FLOAT
r,x: float :: r = -x; |
static Rop |
Rops.NEG_INT
r,x: int :: r = -x; |
static Rop |
Rops.NEG_LONG
r,x: long :: r = -x; |
static Rop |
Rops.NEW_ARRAY_BOOLEAN
r: boolean[]; x: int :: r = new boolean[x] |
static Rop |
Rops.NEW_ARRAY_BYTE
r: byte[]; x: int :: r = new byte[x] |
static Rop |
Rops.NEW_ARRAY_CHAR
r: char[]; x: int :: r = new char[x] |
static Rop |
Rops.NEW_ARRAY_DOUBLE
r: double[]; x: int :: r = new double[x] |
static Rop |
Rops.NEW_ARRAY_FLOAT
r: float[]; x: int :: r = new float[x] |
static Rop |
Rops.NEW_ARRAY_INT
r: int[]; x: int :: r = new int[x] |
static Rop |
Rops.NEW_ARRAY_LONG
r: long[]; x: int :: r = new long[x] |
static Rop |
Rops.NEW_ARRAY_SHORT
r: short[]; x: int :: r = new short[x] |
static Rop |
Rops.NEW_INSTANCE
T: any non-array object type :: r =
alloc(T) (allocate heap space for an object) |
static Rop |
Rops.NOP
nop() |
static Rop |
Rops.NOT_INT
r,x: int :: r = ~x; |
static Rop |
Rops.NOT_LONG
r,x: long :: r = ~x; |
static Rop |
Rops.OR_CONST_INT
r,x,c: int :: r = x | c; |
static Rop |
Rops.OR_CONST_LONG
r,x,c: long :: r = x | c; |
static Rop |
Rops.OR_INT
r,x,y: int :: r = x | y; |
static Rop |
Rops.OR_LONG
r,x,y: long :: r = x | y; |
static Rop |
Rops.PUT_FIELD_BOOLEAN
x: int; y: Object; f: instance field spec of type
boolean :: y.f = x |
static Rop |
Rops.PUT_FIELD_BYTE
x: int; y: Object; f: instance field spec of type
byte :: y.f = x |
static Rop |
Rops.PUT_FIELD_CHAR
x: int; y: Object; f: instance field spec of type
char :: y.f = x |
static Rop |
Rops.PUT_FIELD_DOUBLE
x: double; y: Object; f: instance field spec of type
double :: y.f = x |
static Rop |
Rops.PUT_FIELD_FLOAT
x: float; y: Object; f: instance field spec of type
float :: y.f = x |
static Rop |
Rops.PUT_FIELD_INT
x: int; y: Object; f: instance field spec of type
int :: y.f = x |
static Rop |
Rops.PUT_FIELD_LONG
x: long; y: Object; f: instance field spec of type
long :: y.f = x |
static Rop |
Rops.PUT_FIELD_OBJECT
x: Object; y: Object; f: instance field spec of type
Object :: y.f = x |
static Rop |
Rops.PUT_FIELD_SHORT
x: int; y: Object; f: instance field spec of type
short :: y.f = x |
static Rop |
Rops.PUT_STATIC_BOOLEAN
f: static field spec of type boolean; x: boolean :: f =
x |
static Rop |
Rops.PUT_STATIC_BYTE
f: static field spec of type byte; x: byte :: f = x |
static Rop |
Rops.PUT_STATIC_CHAR
f: static field spec of type char; x: char :: f = x |
static Rop |
Rops.PUT_STATIC_DOUBLE
f: static field spec of type double; x: double :: f = x |
static Rop |
Rops.PUT_STATIC_FLOAT
f: static field spec of type float; x: float :: f = x |
static Rop |
Rops.PUT_STATIC_INT
f: static field spec of type int; x: int :: f = x |
static Rop |
Rops.PUT_STATIC_LONG
f: static field spec of type long; x: long :: f = x |
static Rop |
Rops.PUT_STATIC_OBJECT
f: static field spec of type Object; x: Object :: f = x |
static Rop |
Rops.PUT_STATIC_SHORT
f: static field spec of type short; x: short :: f = x |
static Rop |
Rops.REM_CONST_DOUBLE
r,x,c: double :: r = x % c; |
static Rop |
Rops.REM_CONST_FLOAT
r,x,c: float :: r = x % c; |
static Rop |
Rops.REM_CONST_INT
r,x,c: int :: r = x % c; |
static Rop |
Rops.REM_CONST_LONG
r,x,c: long :: r = x % c; |
static Rop |
Rops.REM_DOUBLE
r,x,y: double :: r = x % y; |
static Rop |
Rops.REM_FLOAT
r,x,y: float :: r = x % y; |
static Rop |
Rops.REM_INT
r,x,y: int :: r = x % y; |
static Rop |
Rops.REM_LONG
r,x,y: long :: r = x % y; |
static Rop |
Rops.RETURN_DOUBLE
x: double; return x |
static Rop |
Rops.RETURN_FLOAT
x: float; return x |
static Rop |
Rops.RETURN_INT
x: int; return x |
static Rop |
Rops.RETURN_LONG
x: long; return x |
static Rop |
Rops.RETURN_OBJECT
x: Object; return x |
static Rop |
Rops.RETURN_VOID
return void |
static Rop |
Rops.SHL_CONST_INT
r,x,c: int :: r = x << c; |
static Rop |
Rops.SHL_CONST_LONG
r,x: long; c: int :: r = x << c; |
static Rop |
Rops.SHL_INT
r,x,y: int :: r = x << y; |
static Rop |
Rops.SHL_LONG
r,x: long; y: int :: r = x << y; |
static Rop |
Rops.SHR_CONST_INT
r,x,c: int :: r = x >> c; |
static Rop |
Rops.SHR_CONST_LONG
r,x: long; c: int :: r = x >> c; |
static Rop |
Rops.SHR_INT
r,x,y: int :: r = x >> y; |
static Rop |
Rops.SHR_LONG
r,x: long; y: int :: r = x >> y; |
static Rop |
Rops.SUB_CONST_DOUBLE
r,x,c: double :: r = x - c; |
static Rop |
Rops.SUB_CONST_FLOAT
r,x,c: float :: r = x - c; |
static Rop |
Rops.SUB_CONST_INT
r,x,c: int :: r = x - c; |
static Rop |
Rops.SUB_CONST_LONG
r,x,c: long :: r = x - c; |
static Rop |
Rops.SUB_DOUBLE
r,x,y: double :: r = x - y; |
static Rop |
Rops.SUB_FLOAT
r,x,y: float :: r = x - y; |
static Rop |
Rops.SUB_INT
r,x,y: int :: r = x - y; |
static Rop |
Rops.SUB_LONG
r,x,y: long :: r = x - y; |
static Rop |
Rops.SWITCH
x: int :: goto switchtable[x] |
static Rop |
Rops.THROW
x: Throwable :: throw(x) |
static Rop |
Rops.TO_BYTE
r,x: int :: r = (x << 24) >> 24 (Java-style
convert int to byte) |
static Rop |
Rops.TO_CHAR
r,x: int :: r = x & 0xffff (Java-style
convert int to char) |
static Rop |
Rops.TO_SHORT
r,x: int :: r = (x << 16) >> 16 (Java-style
convert int to short) |
static Rop |
Rops.USHR_CONST_INT
r,x,c: int :: r = x >>> c; |
static Rop |
Rops.USHR_CONST_LONG
r,x: long; c: int :: r = x >>> c; |
static Rop |
Rops.USHR_INT
r,x,y: int :: r = x >>> y; |
static Rop |
Rops.USHR_LONG
r,x: long; y: int :: r = x >>> y; |
static Rop |
Rops.XOR_CONST_INT
r,x,c: int :: r = x ^ c; |
static Rop |
Rops.XOR_CONST_LONG
r,x,c: long :: r = x ^ c; |
static Rop |
Rops.XOR_INT
r,x,y: int :: r = x ^ y; |
static Rop |
Rops.XOR_LONG
r,x,y: long :: r = x ^ y; |
| Modifier and Type | Method and Description |
|---|---|
Rop |
Insn.getOpcode()
Gets the opcode.
|
static Rop |
Rops.opAdd(TypeList types)
Returns the appropriate
add rop for the given
types. |
static Rop |
Rops.opAget(TypeBearer type)
Returns the appropriate
aget rop for the given type. |
static Rop |
Rops.opAnd(TypeList types)
Returns the appropriate
and rop for the given
types. |
static Rop |
Rops.opAput(TypeBearer type)
Returns the appropriate
aput rop for the given type. |
static Rop |
Rops.opCmpg(TypeBearer type)
Returns the appropriate
cmpg rop for the given type. |
static Rop |
Rops.opCmpl(TypeBearer type)
Returns the appropriate
cmpl rop for the given type. |
static Rop |
Rops.opConst(TypeBearer type)
Returns the appropriate
const rop for the given
type. |
static Rop |
Rops.opConv(TypeBearer dest,
TypeBearer source)
Returns the appropriate
conv rop for the given types. |
static Rop |
Rops.opDiv(TypeList types)
Returns the appropriate
div rop for the given
types. |
static Rop |
Rops.opFilledNewArray(TypeBearer arrayType,
int count)
Returns the appropriate
filled-new-array rop for the given
type. |
static Rop |
Rops.opGetField(TypeBearer type)
Returns the appropriate
get-field rop for the given
type. |
static Rop |
Rops.opGetStatic(TypeBearer type)
Returns the appropriate
get-static rop for the given
type. |
static Rop |
Rops.opIfEq(TypeList types)
Returns the appropriate
if-eq rop for the given
sources. |
static Rop |
Rops.opIfGe(TypeList types)
Returns the appropriate
if-ge rop for the given
sources. |
static Rop |
Rops.opIfGt(TypeList types)
Returns the appropriate
if-gt rop for the given
sources. |
static Rop |
Rops.opIfLe(TypeList types)
Returns the appropriate
if-le rop for the given
sources. |
static Rop |
Rops.opIfLt(TypeList types)
Returns the appropriate
if-lt rop for the given
sources. |
static Rop |
Rops.opIfNe(TypeList types)
Returns the appropriate
if-ne rop for the given
sources. |
static Rop |
Rops.opInvokeDirect(Prototype meth)
Returns the appropriate
invoke-direct rop for the
given type. |
static Rop |
Rops.opInvokeInterface(Prototype meth)
Returns the appropriate
invoke-interface rop for the
given type. |
static Rop |
Rops.opInvokePolymorphic(Prototype meth)
Returns the appropriate
invoke-polymorphic rop for the
given type. |
static Rop |
Rops.opInvokeStatic(Prototype meth)
Returns the appropriate
invoke-static rop for the
given type. |
static Rop |
Rops.opInvokeSuper(Prototype meth)
Returns the appropriate
invoke-super rop for the
given type. |
static Rop |
Rops.opInvokeVirtual(Prototype meth)
Returns the appropriate
invoke-virtual rop for the
given type. |
static Rop |
Rops.opMarkLocal(TypeBearer type)
Returns the appropriate
mark-local rop for the given type. |
static Rop |
Rops.opMove(TypeBearer type)
Returns the appropriate
move rop for the given type. |
static Rop |
Rops.opMoveException(TypeBearer type)
Returns the appropriate
move-exception rop for the
given type. |
static Rop |
Rops.opMoveParam(TypeBearer type)
Returns the appropriate
move-param rop for the
given type. |
static Rop |
Rops.opMoveResult(TypeBearer type)
Returns the appropriate
move-result rop for the
given type. |
static Rop |
Rops.opMoveResultPseudo(TypeBearer type)
Returns the appropriate
move-result-pseudo rop for the
given type. |
static Rop |
Rops.opMul(TypeList types)
Returns the appropriate
mul rop for the given
types. |
static Rop |
Rops.opNeg(TypeBearer type)
Returns the appropriate
neg rop for the given type. |
static Rop |
Rops.opNewArray(TypeBearer arrayType)
Returns the appropriate
new-array rop for the given
type. |
static Rop |
Rops.opNot(TypeBearer type)
Returns the appropriate
not rop for the given type. |
static Rop |
Rops.opOr(TypeList types)
Returns the appropriate
or rop for the given
types. |
static Rop |
Rops.opPutField(TypeBearer type)
Returns the appropriate
put-field rop for the given
type. |
static Rop |
Rops.opPutStatic(TypeBearer type)
Returns the appropriate
put-static rop for the given
type. |
static Rop |
Rops.opRem(TypeList types)
Returns the appropriate
rem rop for the given
types. |
static Rop |
Rops.opReturn(TypeBearer type)
Returns the appropriate
return rop for the given type. |
static Rop |
Rops.opShl(TypeList types)
Returns the appropriate
shl rop for the given
types. |
static Rop |
Rops.opShr(TypeList types)
Returns the appropriate
shr rop for the given
types. |
static Rop |
Rops.opSub(TypeList types)
Returns the appropriate
sub rop for the given
types. |
static Rop |
Rops.opUshr(TypeList types)
Returns the appropriate
ushr rop for the given
types. |
static Rop |
Rops.opXor(TypeList types)
Returns the appropriate
xor rop for the given
types. |
static Rop |
Rops.ropFor(int opcode,
TypeBearer dest,
TypeList sources,
Constant cst)
Returns the appropriate rop for the given opcode, destination,
and sources.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
TranslationAdvice.hasConstantOperation(Rop opcode,
RegisterSpec sourceA,
RegisterSpec sourceB)
Returns an indication of whether the target can directly represent an
instruction with the given opcode operating on the given arguments,
where the last source argument is used as a constant.
|
boolean |
DexTranslationAdvice.hasConstantOperation(Rop opcode,
RegisterSpec sourceA,
RegisterSpec sourceB)
Returns an indication of whether the target can directly represent an
instruction with the given opcode operating on the given arguments,
where the last source argument is used as a constant.
|
boolean |
ConservativeTranslationAdvice.hasConstantOperation(Rop opcode,
RegisterSpec sourceA,
RegisterSpec sourceB)
Returns an indication of whether the target can directly represent an
instruction with the given opcode operating on the given arguments,
where the last source argument is used as a constant.
|
boolean |
TranslationAdvice.requiresSourcesInOrder(Rop opcode,
RegisterSpecList sources)
Returns true if the translation target requires the sources of the
specified opcode to be in order and contiguous (eg, for an invoke-range)
|
boolean |
DexTranslationAdvice.requiresSourcesInOrder(Rop opcode,
RegisterSpecList sources)
Returns true if the translation target requires the sources of the
specified opcode to be in order and contiguous (eg, for an invoke-range)
|
boolean |
ConservativeTranslationAdvice.requiresSourcesInOrder(Rop opcode,
RegisterSpecList sources)
Returns true if the translation target requires the sources of the
specified opcode to be in order and contiguous (eg, for an invoke-range)
|
| Constructor and Description |
|---|
CstInsn(Rop opcode,
SourcePosition position,
RegisterSpec result,
RegisterSpecList sources,
Constant cst)
Constructs an instance.
|
FillArrayDataInsn(Rop opcode,
SourcePosition position,
RegisterSpecList sources,
java.util.ArrayList<Constant> initValues,
Constant cst)
Constructs an instance.
|
Insn(Rop opcode,
SourcePosition position,
RegisterSpec result,
RegisterSpecList sources)
Constructs an instance.
|
InvokePolymorphicInsn(Rop opcode,
SourcePosition position,
RegisterSpecList sources,
TypeList catches,
CstMethodRef callSiteMethod)
Constructs an instance.
|
PlainCstInsn(Rop opcode,
SourcePosition position,
RegisterSpec result,
RegisterSpecList sources,
Constant cst)
Constructs an instance.
|
PlainInsn(Rop opcode,
SourcePosition position,
RegisterSpec result,
RegisterSpec source)
Constructs a single-source instance.
|
PlainInsn(Rop opcode,
SourcePosition position,
RegisterSpec result,
RegisterSpecList sources)
Constructs an instance.
|
SwitchInsn(Rop opcode,
SourcePosition position,
RegisterSpec result,
RegisterSpecList sources,
IntList cases)
Constructs an instance.
|
ThrowingCstInsn(Rop opcode,
SourcePosition position,
RegisterSpecList sources,
TypeList catches,
Constant cst)
Constructs an instance.
|
ThrowingInsn(Rop opcode,
SourcePosition position,
RegisterSpecList sources,
TypeList catches)
Constructs an instance.
|
| Modifier and Type | Method and Description |
|---|---|
abstract Rop |
SsaInsn.getOpcode()
Returns the Rop opcode for this insn, or null if this is a phi insn.
|
Rop |
NormalSsaInsn.getOpcode() |
Rop |
PhiInsn.getOpcode()
Returns the Rop opcode for this insn, or null if this is a phi insn.
|
Copyright © 2020. All Rights Reserved.