|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.android.dx.rop.code.Rops
public final class Rops
Standard instances of Rop.
| Field Summary | |
|---|---|
static Rop |
ADD_CONST_DOUBLE
r,x,c: double :: r = x + c; |
static Rop |
ADD_CONST_FLOAT
r,x,c: float :: r = x + c; |
static Rop |
ADD_CONST_INT
r,x,c: int :: r = x + c; |
static Rop |
ADD_CONST_LONG
r,x,c: long :: r = x + c; |
static Rop |
ADD_DOUBLE
r,x,y: double :: r = x + y; |
static Rop |
ADD_FLOAT
r,x,y: float :: r = x + y; |
static Rop |
ADD_INT
r,x,y: int :: r = x + y; |
static Rop |
ADD_LONG
r,x,y: long :: r = x + y; |
static Rop |
AGET_BOOLEAN
r: boolean; x: boolean[]; y: int :: r = x[y] |
static Rop |
AGET_BYTE
r: byte; x: byte[]; y: int :: r = x[y] |
static Rop |
AGET_CHAR
r: char; x: char[]; y: int :: r = x[y] |
static Rop |
AGET_DOUBLE
r: double; x: double[]; y: int :: r = x[y] |
static Rop |
AGET_FLOAT
r: float; x: float[]; y: int :: r = x[y] |
static Rop |
AGET_INT
r,y: int; x: int[] :: r = x[y] |
static Rop |
AGET_LONG
r: long; x: long[]; y: int :: r = x[y] |
static Rop |
AGET_OBJECT
r: Object; x: Object[]; y: int :: r = x[y] |
static Rop |
AGET_SHORT
r: short; x: short[]; y: int :: r = x[y] |
static Rop |
AND_CONST_INT
r,x,c: int :: r = x & c; |
static Rop |
AND_CONST_LONG
r,x,c: long :: r = x & c; |
static Rop |
AND_INT
r,x,y: int :: r = x & y; |
static Rop |
AND_LONG
r,x,y: long :: r = x & y; |
static Rop |
APUT_BOOLEAN
x: boolean; y: boolean[]; z: int :: y[z] = x |
static Rop |
APUT_BYTE
x: byte; y: byte[]; z: int :: y[z] = x |
static Rop |
APUT_CHAR
x: char; y: char[]; z: int :: y[z] = x |
static Rop |
APUT_DOUBLE
x: double; y: double[]; z: int :: y[z] = x |
static Rop |
APUT_FLOAT
x: float; y: float[]; z: int :: y[z] = x |
static Rop |
APUT_INT
x,z: int; y: int[] :: y[z] = x |
static Rop |
APUT_LONG
x: long; y: long[]; z: int :: y[z] = x |
static Rop |
APUT_OBJECT
x: Object; y: Object[]; z: int :: y[z] = x |
static Rop |
APUT_SHORT
x: short; y: short[]; z: int :: y[z] = x |
static Rop |
ARRAY_LENGTH
T: any type; r: int; x: T[]; :: r = x.length |
static Rop |
CHECK_CAST
T: any non-array object type; x: Object :: (T) x (can
throw ClassCastException) |
static Rop |
CMPG_DOUBLE
r: int; x,y: double :: r = cmpg(x, y); |
static Rop |
CMPG_FLOAT
r: int; x,y: float :: r = cmpg(x, y); |
static Rop |
CMPL_DOUBLE
r: int; x,y: double :: r = cmpl(x, y); |
static Rop |
CMPL_FLOAT
r: int; x,y: float :: r = cmpl(x, y); |
static Rop |
CMPL_LONG
r: int; x,y: long :: r = cmp(x, y); |
static Rop |
CONST_DOUBLE
r, literal: double :: r = literal; |
static Rop |
CONST_FLOAT
r, literal: float :: r = literal; |
static Rop |
CONST_INT
r, literal: int :: r = literal; |
static Rop |
CONST_LONG
r, literal: long :: r = literal; |
static Rop |
CONST_OBJECT
r, literal: Object :: r = literal; |
static Rop |
CONST_OBJECT_NOTHROW
r, literal: Object :: r = literal; |
static Rop |
CONV_D2F
r: float; x: double :: r = (float) x |
static Rop |
CONV_D2I
r: int; x: double :: r = (int) x |
static Rop |
CONV_D2L
r: long; x: double :: r = (long) x |
static Rop |
CONV_F2D
r: double; x: float :: r = (double) x |
static Rop |
CONV_F2I
r: int; x: float :: r = (int) x |
static Rop |
CONV_F2L
r: long; x: float :: r = (long) x |
static Rop |
CONV_I2D
r: double; x: int :: r = (double) x |
static Rop |
CONV_I2F
r: float; x: int :: r = (float) x |
static Rop |
CONV_I2L
r: long; x: int :: r = (long) x |
static Rop |
CONV_L2D
r: double; x: long :: r = (double) x |
static Rop |
CONV_L2F
r: float; x: long :: r = (float) x |
static Rop |
CONV_L2I
r: int; x: long :: r = (int) x |
static Rop |
DIV_CONST_DOUBLE
r,x,c: double :: r = x / c; |
static Rop |
DIV_CONST_FLOAT
r,x,c: float :: r = x / c; |
static Rop |
DIV_CONST_INT
r,x,c: int :: r = x / c; |
static Rop |
DIV_CONST_LONG
r,x,c: long :: r = x / c; |
static Rop |
DIV_DOUBLE
r,x,y: double :: r = x / y; |
static Rop |
DIV_FLOAT
r,x,y: float :: r = x / y; |
static Rop |
DIV_INT
r,x,y: int :: r = x / y; |
static Rop |
DIV_LONG
r,x,y: long :: r = x / y; |
static Rop |
FILL_ARRAY_DATA
T: Any primitive type; v0..vx: T :: {v0, ..., vx} |
static Rop |
GET_FIELD_BOOLEAN
r: boolean; x: Object; f: instance field spec of
type boolean :: r = x.f |
static Rop |
GET_FIELD_BYTE
r: byte; x: Object; f: instance field spec of
type byte :: r = x.f |
static Rop |
GET_FIELD_CHAR
r: char; x: Object; f: instance field spec of
type char :: r = x.f |
static Rop |
GET_FIELD_DOUBLE
r: double; x: Object; f: instance field spec of
type double :: r = x.f |
static Rop |
GET_FIELD_FLOAT
r: float; x: Object; f: instance field spec of
type float :: r = x.f |
static Rop |
GET_FIELD_INT
r: int; x: Object; f: instance field spec of
type int :: r = x.f |
static Rop |
GET_FIELD_LONG
r: long; x: Object; f: instance field spec of
type long :: r = x.f |
static Rop |
GET_FIELD_OBJECT
r: Object; x: Object; f: instance field spec of
type Object :: r = x.f |
static Rop |
GET_FIELD_SHORT
r: short; x: Object; f: instance field spec of
type short :: r = x.f |
static Rop |
GET_STATIC_BOOLEAN
r: boolean; f: static field spec of type boolean :: r = f |
static Rop |
GET_STATIC_BYTE
r: byte; f: static field spec of type byte :: r = f |
static Rop |
GET_STATIC_CHAR
r: char; f: static field spec of type char :: r = f |
static Rop |
GET_STATIC_DOUBLE
r: double; f: static field spec of type double :: r = f |
static Rop |
GET_STATIC_FLOAT
r: float; f: static field spec of type float :: r = f |
static Rop |
GET_STATIC_INT
r: int; f: static field spec of type int :: r = f |
static Rop |
GET_STATIC_LONG
r: long; f: static field spec of type long :: r = f |
static Rop |
GET_STATIC_OBJECT
r: Object; f: static field spec of type Object :: r = f |
static Rop |
GET_STATIC_SHORT
r: short; f: static field spec of type short :: r = f |
static Rop |
GOTO
goto label |
static Rop |
IF_EQ_INT
x,y: int :: if (x == y) goto label |
static Rop |
IF_EQ_OBJECT
x,y: Object :: if (x == y) goto label |
static Rop |
IF_EQZ_INT
x: int :: if (x == 0) goto label |
static Rop |
IF_EQZ_OBJECT
x: Object :: if (x == null) goto label |
static Rop |
IF_GE_INT
x,y: int :: if (x >= y) goto label |
static Rop |
IF_GEZ_INT
x: int :: if (x >= 0) goto label |
static Rop |
IF_GT_INT
x,y: int :: if (x > y) goto label |
static Rop |
IF_GTZ_INT
x: int :: if (x > 0) goto label |
static Rop |
IF_LE_INT
x,y: int :: if (x <= y) goto label |
static Rop |
IF_LEZ_INT
x: int :: if (x <= 0) goto label |
static Rop |
IF_LT_INT
x,y: int :: if (x < y) goto label |
static Rop |
IF_LTZ_INT
x: int :: if (x < 0) goto label |
static Rop |
IF_NE_INT
x,y: int :: if (x != y) goto label |
static Rop |
IF_NE_OBJECT
x,y: Object :: if (x != y) goto label |
static Rop |
IF_NEZ_INT
x: int :: if (x != 0) goto label |
static Rop |
IF_NEZ_OBJECT
x: Object :: if (x != null) goto label |
static Rop |
INSTANCE_OF
T: any non-array object type; x: Object :: x instanceof
T. |
static Rop |
MARK_LOCAL_DOUBLE
x: Double :: local variable begins in x |
static Rop |
MARK_LOCAL_FLOAT
x: Float :: local variable begins in x |
static Rop |
MARK_LOCAL_INT
x: Int :: local variable begins in x |
static Rop |
MARK_LOCAL_LONG
x: Long :: local variable begins in x |
static Rop |
MARK_LOCAL_OBJECT
x: Object :: local variable begins in x |
static Rop |
MONITOR_ENTER
x: Object :: monitorenter(x) |
static Rop |
MONITOR_EXIT
x: Object :: monitorexit(x) |
static Rop |
MOVE_DOUBLE
r,x: double :: r = x; |
static Rop |
MOVE_FLOAT
r,x: float :: r = x; |
static Rop |
MOVE_INT
r,x: int :: r = x; |
static Rop |
MOVE_LONG
r,x: long :: r = x; |
static Rop |
MOVE_OBJECT
r,x: Object :: r = x; |
static Rop |
MOVE_PARAM_DOUBLE
r,param(x): double :: r = param(x); |
static Rop |
MOVE_PARAM_FLOAT
r,param(x): float :: r = param(x); |
static Rop |
MOVE_PARAM_INT
r,param(x): int :: r = param(x); |
static Rop |
MOVE_PARAM_LONG
r,param(x): long :: r = param(x); |
static Rop |
MOVE_PARAM_OBJECT
r,param(x): Object :: r = param(x); |
static Rop |
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 |
MUL_CONST_DOUBLE
r,x,c: double :: r = x * c; |
static Rop |
MUL_CONST_FLOAT
r,x,c: float :: r = x * c; |
static Rop |
MUL_CONST_INT
r,x,c: int :: r = x * c; |
static Rop |
MUL_CONST_LONG
r,x,c: long :: r = x * c; |
static Rop |
MUL_DOUBLE
r,x,y: double :: r = x * y; |
static Rop |
MUL_FLOAT
r,x,y: float :: r = x * y; |
static Rop |
MUL_INT
r,x,y: int :: r = x * y; |
static Rop |
MUL_LONG
r,x,y: long :: r = x * y; |
static Rop |
NEG_DOUBLE
r,x: double :: r = -x; |
static Rop |
NEG_FLOAT
r,x: float :: r = -x; |
static Rop |
NEG_INT
r,x: int :: r = -x; |
static Rop |
NEG_LONG
r,x: long :: r = -x; |
static Rop |
NEW_ARRAY_BOOLEAN
r: boolean[]; x: int :: r = new boolean[x] |
static Rop |
NEW_ARRAY_BYTE
r: byte[]; x: int :: r = new byte[x] |
static Rop |
NEW_ARRAY_CHAR
r: char[]; x: int :: r = new char[x] |
static Rop |
NEW_ARRAY_DOUBLE
r: double[]; x: int :: r = new double[x] |
static Rop |
NEW_ARRAY_FLOAT
r: float[]; x: int :: r = new float[x] |
static Rop |
NEW_ARRAY_INT
r: int[]; x: int :: r = new int[x] |
static Rop |
NEW_ARRAY_LONG
r: long[]; x: int :: r = new long[x] |
static Rop |
NEW_ARRAY_SHORT
r: short[]; x: int :: r = new short[x] |
static Rop |
NEW_INSTANCE
T: any non-array object type :: r =
alloc(T) (allocate heap space for an object) |
static Rop |
NOP
nop() |
static Rop |
NOT_INT
r,x: int :: r = ~x; |
static Rop |
NOT_LONG
r,x: long :: r = ~x; |
static Rop |
OR_CONST_INT
r,x,c: int :: r = x | c; |
static Rop |
OR_CONST_LONG
r,x,c: long :: r = x | c; |
static Rop |
OR_INT
r,x,y: int :: r = x | y; |
static Rop |
OR_LONG
r,x,y: long :: r = x | y; |
static Rop |
PUT_FIELD_BOOLEAN
x: int; y: Object; f: instance field spec of type
boolean :: y.f = x |
static Rop |
PUT_FIELD_BYTE
x: int; y: Object; f: instance field spec of type
byte :: y.f = x |
static Rop |
PUT_FIELD_CHAR
x: int; y: Object; f: instance field spec of type
char :: y.f = x |
static Rop |
PUT_FIELD_DOUBLE
x: double; y: Object; f: instance field spec of type
double :: y.f = x |
static Rop |
PUT_FIELD_FLOAT
x: float; y: Object; f: instance field spec of type
float :: y.f = x |
static Rop |
PUT_FIELD_INT
x: int; y: Object; f: instance field spec of type
int :: y.f = x |
static Rop |
PUT_FIELD_LONG
x: long; y: Object; f: instance field spec of type
long :: y.f = x |
static Rop |
PUT_FIELD_OBJECT
x: Object; y: Object; f: instance field spec of type
Object :: y.f = x |
static Rop |
PUT_FIELD_SHORT
x: int; y: Object; f: instance field spec of type
short :: y.f = x |
static Rop |
PUT_STATIC_BOOLEAN
f: static field spec of type boolean; x: boolean :: f =
x |
static Rop |
PUT_STATIC_BYTE
f: static field spec of type byte; x: byte :: f = x |
static Rop |
PUT_STATIC_CHAR
f: static field spec of type char; x: char :: f = x |
static Rop |
PUT_STATIC_DOUBLE
f: static field spec of type double; x: double :: f = x |
static Rop |
PUT_STATIC_FLOAT
f: static field spec of type float; x: float :: f = x |
static Rop |
PUT_STATIC_INT
f: static field spec of type int; x: int :: f = x |
static Rop |
PUT_STATIC_LONG
f: static field spec of type long; x: long :: f = x |
static Rop |
PUT_STATIC_OBJECT
f: static field spec of type Object; x: Object :: f = x |
static Rop |
PUT_STATIC_SHORT
f: static field spec of type short; x: short :: f = x |
static Rop |
REM_CONST_DOUBLE
r,x,c: double :: r = x % c; |
static Rop |
REM_CONST_FLOAT
r,x,c: float :: r = x % c; |
static Rop |
REM_CONST_INT
r,x,c: int :: r = x % c; |
static Rop |
REM_CONST_LONG
r,x,c: long :: r = x % c; |
static Rop |
REM_DOUBLE
r,x,y: double :: r = x % y; |
static Rop |
REM_FLOAT
r,x,y: float :: r = x % y; |
static Rop |
REM_INT
r,x,y: int :: r = x % y; |
static Rop |
REM_LONG
r,x,y: long :: r = x % y; |
static Rop |
RETURN_DOUBLE
x: double; return x |
static Rop |
RETURN_FLOAT
x: float; return x |
static Rop |
RETURN_INT
x: int; return x |
static Rop |
RETURN_LONG
x: long; return x |
static Rop |
RETURN_OBJECT
x: Object; return x |
static Rop |
RETURN_VOID
return void |
static Rop |
SHL_CONST_INT
r,x,c: int :: r = x << c; |
static Rop |
SHL_CONST_LONG
r,x: long; c: int :: r = x << c; |
static Rop |
SHL_INT
r,x,y: int :: r = x << y; |
static Rop |
SHL_LONG
r,x: long; y: int :: r = x << y; |
static Rop |
SHR_CONST_INT
r,x,c: int :: r = x >> c; |
static Rop |
SHR_CONST_LONG
r,x: long; c: int :: r = x >> c; |
static Rop |
SHR_INT
r,x,y: int :: r = x >> y; |
static Rop |
SHR_LONG
r,x: long; y: int :: r = x >> y; |
static Rop |
SUB_CONST_DOUBLE
r,x,c: double :: r = x - c; |
static Rop |
SUB_CONST_FLOAT
r,x,c: float :: r = x - c; |
static Rop |
SUB_CONST_INT
r,x,c: int :: r = x - c; |
static Rop |
SUB_CONST_LONG
r,x,c: long :: r = x - c; |
static Rop |
SUB_DOUBLE
r,x,y: double :: r = x - y; |
static Rop |
SUB_FLOAT
r,x,y: float :: r = x - y; |
static Rop |
SUB_INT
r,x,y: int :: r = x - y; |
static Rop |
SUB_LONG
r,x,y: long :: r = x - y; |
static Rop |
SWITCH
x: int :: goto switchtable[x] |
static Rop |
THROW
x: Throwable :: throw(x) |
static Rop |
TO_BYTE
r,x: int :: r = (x << 24) >> 24 (Java-style
convert int to byte) |
static Rop |
TO_CHAR
r,x: int :: r = x & 0xffff (Java-style
convert int to char) |
static Rop |
TO_SHORT
r,x: int :: r = (x << 16) >> 16 (Java-style
convert int to short) |
static Rop |
USHR_CONST_INT
r,x,c: int :: r = x >>> c; |
static Rop |
USHR_CONST_LONG
r,x: long; c: int :: r = x >>> c; |
static Rop |
USHR_INT
r,x,y: int :: r = x >>> y; |
static Rop |
USHR_LONG
r,x: long; y: int :: r = x >>> y; |
static Rop |
XOR_CONST_INT
r,x,c: int :: r = x ^ c; |
static Rop |
XOR_CONST_LONG
r,x,c: long :: r = x ^ c; |
static Rop |
XOR_INT
r,x,y: int :: r = x ^ y; |
static Rop |
XOR_LONG
r,x,y: long :: r = x ^ y; |
| Method Summary | |
|---|---|
static Rop |
opAdd(TypeList types)
Returns the appropriate add rop for the given
types. |
static Rop |
opAget(TypeBearer type)
Returns the appropriate aget rop for the given type. |
static Rop |
opAnd(TypeList types)
Returns the appropriate and rop for the given
types. |
static Rop |
opAput(TypeBearer type)
Returns the appropriate aput rop for the given type. |
static Rop |
opCmpg(TypeBearer type)
Returns the appropriate cmpg rop for the given type. |
static Rop |
opCmpl(TypeBearer type)
Returns the appropriate cmpl rop for the given type. |
static Rop |
opConst(TypeBearer type)
Returns the appropriate const rop for the given
type. |
static Rop |
opConv(TypeBearer dest,
TypeBearer source)
Returns the appropriate conv rop for the given types. |
static Rop |
opDiv(TypeList types)
Returns the appropriate div rop for the given
types. |
static Rop |
opFilledNewArray(TypeBearer arrayType,
int count)
Returns the appropriate filled-new-array rop for the given
type. |
static Rop |
opGetField(TypeBearer type)
Returns the appropriate get-field rop for the given
type. |
static Rop |
opGetStatic(TypeBearer type)
Returns the appropriate get-static rop for the given
type. |
static Rop |
opIfEq(TypeList types)
Returns the appropriate if-eq rop for the given
sources. |
static Rop |
opIfGe(TypeList types)
Returns the appropriate if-ge rop for the given
sources. |
static Rop |
opIfGt(TypeList types)
Returns the appropriate if-gt rop for the given
sources. |
static Rop |
opIfLe(TypeList types)
Returns the appropriate if-le rop for the given
sources. |
static Rop |
opIfLt(TypeList types)
Returns the appropriate if-lt rop for the given
sources. |
static Rop |
opIfNe(TypeList types)
Returns the appropriate if-ne rop for the given
sources. |
static Rop |
opInvokeDirect(Prototype meth)
Returns the appropriate invoke-direct rop for the
given type. |
static Rop |
opInvokeInterface(Prototype meth)
Returns the appropriate invoke-interface rop for the
given type. |
static Rop |
opInvokeStatic(Prototype meth)
Returns the appropriate invoke-static rop for the
given type. |
static Rop |
opInvokeSuper(Prototype meth)
Returns the appropriate invoke-super rop for the
given type. |
static Rop |
opInvokeVirtual(Prototype meth)
Returns the appropriate invoke-virtual rop for the
given type. |
static Rop |
opMarkLocal(TypeBearer type)
Returns the appropriate mark-local rop for the given type. |
static Rop |
opMove(TypeBearer type)
Returns the appropriate move rop for the given type. |
static Rop |
opMoveException(TypeBearer type)
Returns the appropriate move-exception rop for the
given type. |
static Rop |
opMoveParam(TypeBearer type)
Returns the appropriate move-param rop for the
given type. |
static Rop |
opMoveResult(TypeBearer type)
Returns the appropriate move-result rop for the
given type. |
static Rop |
opMoveResultPseudo(TypeBearer type)
Returns the appropriate move-result-pseudo rop for the
given type. |
static Rop |
opMul(TypeList types)
Returns the appropriate mul rop for the given
types. |
static Rop |
opNeg(TypeBearer type)
Returns the appropriate neg rop for the given type. |
static Rop |
opNewArray(TypeBearer arrayType)
Returns the appropriate new-array rop for the given
type. |
static Rop |
opNot(TypeBearer type)
Returns the appropriate not rop for the given type. |
static Rop |
opOr(TypeList types)
Returns the appropriate or rop for the given
types. |
static Rop |
opPutField(TypeBearer type)
Returns the appropriate put-field rop for the given
type. |
static Rop |
opPutStatic(TypeBearer type)
Returns the appropriate put-static rop for the given
type. |
static Rop |
opRem(TypeList types)
Returns the appropriate rem rop for the given
types. |
static Rop |
opReturn(TypeBearer type)
Returns the appropriate return rop for the given type. |
static Rop |
opShl(TypeList types)
Returns the appropriate shl rop for the given
types. |
static Rop |
opShr(TypeList types)
Returns the appropriate shr rop for the given
types. |
static Rop |
opSub(TypeList types)
Returns the appropriate sub rop for the given
types. |
static Rop |
opUshr(TypeList types)
Returns the appropriate ushr rop for the given
types. |
static Rop |
opXor(TypeList types)
Returns the appropriate xor rop for the given
types. |
static Rop |
ropFor(int opcode,
TypeBearer dest,
TypeList sources,
Constant cst)
Returns the appropriate rop for the given opcode, destination, and sources. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final Rop NOP
nop()
public static final Rop MOVE_INT
r,x: int :: r = x;
public static final Rop MOVE_LONG
r,x: long :: r = x;
public static final Rop MOVE_FLOAT
r,x: float :: r = x;
public static final Rop MOVE_DOUBLE
r,x: double :: r = x;
public static final Rop MOVE_OBJECT
r,x: Object :: r = x;
public static final Rop 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.
public static final Rop MOVE_PARAM_INT
r,param(x): int :: r = param(x);
public static final Rop MOVE_PARAM_LONG
r,param(x): long :: r = param(x);
public static final Rop MOVE_PARAM_FLOAT
r,param(x): float :: r = param(x);
public static final Rop MOVE_PARAM_DOUBLE
r,param(x): double :: r = param(x);
public static final Rop MOVE_PARAM_OBJECT
r,param(x): Object :: r = param(x);
public static final Rop CONST_INT
r, literal: int :: r = literal;
public static final Rop CONST_LONG
r, literal: long :: r = literal;
public static final Rop CONST_FLOAT
r, literal: float :: r = literal;
public static final Rop CONST_DOUBLE
r, literal: double :: r = literal;
public static final Rop CONST_OBJECT
r, literal: Object :: r = literal;
public static final Rop CONST_OBJECT_NOTHROW
r, literal: Object :: r = literal;
public static final Rop GOTO
goto label
public static final Rop IF_EQZ_INT
x: int :: if (x == 0) goto label
public static final Rop IF_NEZ_INT
x: int :: if (x != 0) goto label
public static final Rop IF_LTZ_INT
x: int :: if (x < 0) goto label
public static final Rop IF_GEZ_INT
x: int :: if (x >= 0) goto label
public static final Rop IF_LEZ_INT
x: int :: if (x <= 0) goto label
public static final Rop IF_GTZ_INT
x: int :: if (x > 0) goto label
public static final Rop IF_EQZ_OBJECT
x: Object :: if (x == null) goto label
public static final Rop IF_NEZ_OBJECT
x: Object :: if (x != null) goto label
public static final Rop IF_EQ_INT
x,y: int :: if (x == y) goto label
public static final Rop IF_NE_INT
x,y: int :: if (x != y) goto label
public static final Rop IF_LT_INT
x,y: int :: if (x < y) goto label
public static final Rop IF_GE_INT
x,y: int :: if (x >= y) goto label
public static final Rop IF_LE_INT
x,y: int :: if (x <= y) goto label
public static final Rop IF_GT_INT
x,y: int :: if (x > y) goto label
public static final Rop IF_EQ_OBJECT
x,y: Object :: if (x == y) goto label
public static final Rop IF_NE_OBJECT
x,y: Object :: if (x != y) goto label
public static final Rop SWITCH
x: int :: goto switchtable[x]
public static final Rop ADD_INT
r,x,y: int :: r = x + y;
public static final Rop ADD_LONG
r,x,y: long :: r = x + y;
public static final Rop ADD_FLOAT
r,x,y: float :: r = x + y;
public static final Rop ADD_DOUBLE
r,x,y: double :: r = x + y;
public static final Rop SUB_INT
r,x,y: int :: r = x - y;
public static final Rop SUB_LONG
r,x,y: long :: r = x - y;
public static final Rop SUB_FLOAT
r,x,y: float :: r = x - y;
public static final Rop SUB_DOUBLE
r,x,y: double :: r = x - y;
public static final Rop MUL_INT
r,x,y: int :: r = x * y;
public static final Rop MUL_LONG
r,x,y: long :: r = x * y;
public static final Rop MUL_FLOAT
r,x,y: float :: r = x * y;
public static final Rop MUL_DOUBLE
r,x,y: double :: r = x * y;
public static final Rop DIV_INT
r,x,y: int :: r = x / y;
public static final Rop DIV_LONG
r,x,y: long :: r = x / y;
public static final Rop DIV_FLOAT
r,x,y: float :: r = x / y;
public static final Rop DIV_DOUBLE
r,x,y: double :: r = x / y;
public static final Rop REM_INT
r,x,y: int :: r = x % y;
public static final Rop REM_LONG
r,x,y: long :: r = x % y;
public static final Rop REM_FLOAT
r,x,y: float :: r = x % y;
public static final Rop REM_DOUBLE
r,x,y: double :: r = x % y;
public static final Rop NEG_INT
r,x: int :: r = -x;
public static final Rop NEG_LONG
r,x: long :: r = -x;
public static final Rop NEG_FLOAT
r,x: float :: r = -x;
public static final Rop NEG_DOUBLE
r,x: double :: r = -x;
public static final Rop AND_INT
r,x,y: int :: r = x & y;
public static final Rop AND_LONG
r,x,y: long :: r = x & y;
public static final Rop OR_INT
r,x,y: int :: r = x | y;
public static final Rop OR_LONG
r,x,y: long :: r = x | y;
public static final Rop XOR_INT
r,x,y: int :: r = x ^ y;
public static final Rop XOR_LONG
r,x,y: long :: r = x ^ y;
public static final Rop SHL_INT
r,x,y: int :: r = x << y;
public static final Rop SHL_LONG
r,x: long; y: int :: r = x << y;
public static final Rop SHR_INT
r,x,y: int :: r = x >> y;
public static final Rop SHR_LONG
r,x: long; y: int :: r = x >> y;
public static final Rop USHR_INT
r,x,y: int :: r = x >>> y;
public static final Rop USHR_LONG
r,x: long; y: int :: r = x >>> y;
public static final Rop NOT_INT
r,x: int :: r = ~x;
public static final Rop NOT_LONG
r,x: long :: r = ~x;
public static final Rop ADD_CONST_INT
r,x,c: int :: r = x + c;
public static final Rop ADD_CONST_LONG
r,x,c: long :: r = x + c;
public static final Rop ADD_CONST_FLOAT
r,x,c: float :: r = x + c;
public static final Rop ADD_CONST_DOUBLE
r,x,c: double :: r = x + c;
public static final Rop SUB_CONST_INT
r,x,c: int :: r = x - c;
public static final Rop SUB_CONST_LONG
r,x,c: long :: r = x - c;
public static final Rop SUB_CONST_FLOAT
r,x,c: float :: r = x - c;
public static final Rop SUB_CONST_DOUBLE
r,x,c: double :: r = x - c;
public static final Rop MUL_CONST_INT
r,x,c: int :: r = x * c;
public static final Rop MUL_CONST_LONG
r,x,c: long :: r = x * c;
public static final Rop MUL_CONST_FLOAT
r,x,c: float :: r = x * c;
public static final Rop MUL_CONST_DOUBLE
r,x,c: double :: r = x * c;
public static final Rop DIV_CONST_INT
r,x,c: int :: r = x / c;
public static final Rop DIV_CONST_LONG
r,x,c: long :: r = x / c;
public static final Rop DIV_CONST_FLOAT
r,x,c: float :: r = x / c;
public static final Rop DIV_CONST_DOUBLE
r,x,c: double :: r = x / c;
public static final Rop REM_CONST_INT
r,x,c: int :: r = x % c;
public static final Rop REM_CONST_LONG
r,x,c: long :: r = x % c;
public static final Rop REM_CONST_FLOAT
r,x,c: float :: r = x % c;
public static final Rop REM_CONST_DOUBLE
r,x,c: double :: r = x % c;
public static final Rop AND_CONST_INT
r,x,c: int :: r = x & c;
public static final Rop AND_CONST_LONG
r,x,c: long :: r = x & c;
public static final Rop OR_CONST_INT
r,x,c: int :: r = x | c;
public static final Rop OR_CONST_LONG
r,x,c: long :: r = x | c;
public static final Rop XOR_CONST_INT
r,x,c: int :: r = x ^ c;
public static final Rop XOR_CONST_LONG
r,x,c: long :: r = x ^ c;
public static final Rop SHL_CONST_INT
r,x,c: int :: r = x << c;
public static final Rop SHL_CONST_LONG
r,x: long; c: int :: r = x << c;
public static final Rop SHR_CONST_INT
r,x,c: int :: r = x >> c;
public static final Rop SHR_CONST_LONG
r,x: long; c: int :: r = x >> c;
public static final Rop USHR_CONST_INT
r,x,c: int :: r = x >>> c;
public static final Rop USHR_CONST_LONG
r,x: long; c: int :: r = x >>> c;
public static final Rop CMPL_LONG
r: int; x,y: long :: r = cmp(x, y);
public static final Rop CMPL_FLOAT
r: int; x,y: float :: r = cmpl(x, y);
public static final Rop CMPL_DOUBLE
r: int; x,y: double :: r = cmpl(x, y);
public static final Rop CMPG_FLOAT
r: int; x,y: float :: r = cmpg(x, y);
public static final Rop CMPG_DOUBLE
r: int; x,y: double :: r = cmpg(x, y);
public static final Rop CONV_L2I
r: int; x: long :: r = (int) x
public static final Rop CONV_F2I
r: int; x: float :: r = (int) x
public static final Rop CONV_D2I
r: int; x: double :: r = (int) x
public static final Rop CONV_I2L
r: long; x: int :: r = (long) x
public static final Rop CONV_F2L
r: long; x: float :: r = (long) x
public static final Rop CONV_D2L
r: long; x: double :: r = (long) x
public static final Rop CONV_I2F
r: float; x: int :: r = (float) x
public static final Rop CONV_L2F
r: float; x: long :: r = (float) x
public static final Rop CONV_D2F
r: float; x: double :: r = (float) x
public static final Rop CONV_I2D
r: double; x: int :: r = (double) x
public static final Rop CONV_L2D
r: double; x: long :: r = (double) x
public static final Rop CONV_F2D
r: double; x: float :: r = (double) x
public static final Rop TO_BYTE
r,x: int :: r = (x << 24) >> 24 (Java-style
convert int to byte)
public static final Rop TO_CHAR
r,x: int :: r = x & 0xffff (Java-style
convert int to char)
public static final Rop TO_SHORT
r,x: int :: r = (x << 16) >> 16 (Java-style
convert int to short)
public static final Rop RETURN_VOID
return void
public static final Rop RETURN_INT
x: int; return x
public static final Rop RETURN_LONG
x: long; return x
public static final Rop RETURN_FLOAT
x: float; return x
public static final Rop RETURN_DOUBLE
x: double; return x
public static final Rop RETURN_OBJECT
x: Object; return x
public static final Rop ARRAY_LENGTH
T: any type; r: int; x: T[]; :: r = x.length
public static final Rop THROW
x: Throwable :: throw(x)
public static final Rop MONITOR_ENTER
x: Object :: monitorenter(x)
public static final Rop MONITOR_EXIT
x: Object :: monitorexit(x)
public static final Rop AGET_INT
r,y: int; x: int[] :: r = x[y]
public static final Rop AGET_LONG
r: long; x: long[]; y: int :: r = x[y]
public static final Rop AGET_FLOAT
r: float; x: float[]; y: int :: r = x[y]
public static final Rop AGET_DOUBLE
r: double; x: double[]; y: int :: r = x[y]
public static final Rop AGET_OBJECT
r: Object; x: Object[]; y: int :: r = x[y]
public static final Rop AGET_BOOLEAN
r: boolean; x: boolean[]; y: int :: r = x[y]
public static final Rop AGET_BYTE
r: byte; x: byte[]; y: int :: r = x[y]
public static final Rop AGET_CHAR
r: char; x: char[]; y: int :: r = x[y]
public static final Rop AGET_SHORT
r: short; x: short[]; y: int :: r = x[y]
public static final Rop APUT_INT
x,z: int; y: int[] :: y[z] = x
public static final Rop APUT_LONG
x: long; y: long[]; z: int :: y[z] = x
public static final Rop APUT_FLOAT
x: float; y: float[]; z: int :: y[z] = x
public static final Rop APUT_DOUBLE
x: double; y: double[]; z: int :: y[z] = x
public static final Rop APUT_OBJECT
x: Object; y: Object[]; z: int :: y[z] = x
public static final Rop APUT_BOOLEAN
x: boolean; y: boolean[]; z: int :: y[z] = x
public static final Rop APUT_BYTE
x: byte; y: byte[]; z: int :: y[z] = x
public static final Rop APUT_CHAR
x: char; y: char[]; z: int :: y[z] = x
public static final Rop APUT_SHORT
x: short; y: short[]; z: int :: y[z] = x
public static final Rop NEW_INSTANCE
T: any non-array object type :: r =
alloc(T) (allocate heap space for an object)
public static final Rop NEW_ARRAY_INT
r: int[]; x: int :: r = new int[x]
public static final Rop NEW_ARRAY_LONG
r: long[]; x: int :: r = new long[x]
public static final Rop NEW_ARRAY_FLOAT
r: float[]; x: int :: r = new float[x]
public static final Rop NEW_ARRAY_DOUBLE
r: double[]; x: int :: r = new double[x]
public static final Rop NEW_ARRAY_BOOLEAN
r: boolean[]; x: int :: r = new boolean[x]
public static final Rop NEW_ARRAY_BYTE
r: byte[]; x: int :: r = new byte[x]
public static final Rop NEW_ARRAY_CHAR
r: char[]; x: int :: r = new char[x]
public static final Rop NEW_ARRAY_SHORT
r: short[]; x: int :: r = new short[x]
public static final Rop CHECK_CAST
T: any non-array object type; x: Object :: (T) x (can
throw ClassCastException)
public static final Rop INSTANCE_OF
T: any non-array object type; x: Object :: x instanceof
T. Note: This is listed as throwing Error
explicitly because the op can throw, but there are no
other predefined exceptions for it.
public static final Rop GET_FIELD_INT
r: int; x: Object; f: instance field spec of
type int :: r = x.f
public static final Rop GET_FIELD_LONG
r: long; x: Object; f: instance field spec of
type long :: r = x.f
public static final Rop GET_FIELD_FLOAT
r: float; x: Object; f: instance field spec of
type float :: r = x.f
public static final Rop GET_FIELD_DOUBLE
r: double; x: Object; f: instance field spec of
type double :: r = x.f
public static final Rop GET_FIELD_OBJECT
r: Object; x: Object; f: instance field spec of
type Object :: r = x.f
public static final Rop GET_FIELD_BOOLEAN
r: boolean; x: Object; f: instance field spec of
type boolean :: r = x.f
public static final Rop GET_FIELD_BYTE
r: byte; x: Object; f: instance field spec of
type byte :: r = x.f
public static final Rop GET_FIELD_CHAR
r: char; x: Object; f: instance field spec of
type char :: r = x.f
public static final Rop GET_FIELD_SHORT
r: short; x: Object; f: instance field spec of
type short :: r = x.f
public static final Rop GET_STATIC_INT
r: int; f: static field spec of type int :: r = f
public static final Rop GET_STATIC_LONG
r: long; f: static field spec of type long :: r = f
public static final Rop GET_STATIC_FLOAT
r: float; f: static field spec of type float :: r = f
public static final Rop GET_STATIC_DOUBLE
r: double; f: static field spec of type double :: r = f
public static final Rop GET_STATIC_OBJECT
r: Object; f: static field spec of type Object :: r = f
public static final Rop GET_STATIC_BOOLEAN
r: boolean; f: static field spec of type boolean :: r = f
public static final Rop GET_STATIC_BYTE
r: byte; f: static field spec of type byte :: r = f
public static final Rop GET_STATIC_CHAR
r: char; f: static field spec of type char :: r = f
public static final Rop GET_STATIC_SHORT
r: short; f: static field spec of type short :: r = f
public static final Rop PUT_FIELD_INT
x: int; y: Object; f: instance field spec of type
int :: y.f = x
public static final Rop PUT_FIELD_LONG
x: long; y: Object; f: instance field spec of type
long :: y.f = x
public static final Rop PUT_FIELD_FLOAT
x: float; y: Object; f: instance field spec of type
float :: y.f = x
public static final Rop PUT_FIELD_DOUBLE
x: double; y: Object; f: instance field spec of type
double :: y.f = x
public static final Rop PUT_FIELD_OBJECT
x: Object; y: Object; f: instance field spec of type
Object :: y.f = x
public static final Rop PUT_FIELD_BOOLEAN
x: int; y: Object; f: instance field spec of type
boolean :: y.f = x
public static final Rop PUT_FIELD_BYTE
x: int; y: Object; f: instance field spec of type
byte :: y.f = x
public static final Rop PUT_FIELD_CHAR
x: int; y: Object; f: instance field spec of type
char :: y.f = x
public static final Rop PUT_FIELD_SHORT
x: int; y: Object; f: instance field spec of type
short :: y.f = x
public static final Rop PUT_STATIC_INT
f: static field spec of type int; x: int :: f = x
public static final Rop PUT_STATIC_LONG
f: static field spec of type long; x: long :: f = x
public static final Rop PUT_STATIC_FLOAT
f: static field spec of type float; x: float :: f = x
public static final Rop PUT_STATIC_DOUBLE
f: static field spec of type double; x: double :: f = x
public static final Rop PUT_STATIC_OBJECT
f: static field spec of type Object; x: Object :: f = x
public static final Rop PUT_STATIC_BOOLEAN
f: static field spec of type boolean; x: boolean :: f =
x
public static final Rop PUT_STATIC_BYTE
f: static field spec of type byte; x: byte :: f = x
public static final Rop PUT_STATIC_CHAR
f: static field spec of type char; x: char :: f = x
public static final Rop PUT_STATIC_SHORT
f: static field spec of type short; x: short :: f = x
public static final Rop MARK_LOCAL_INT
x: Int :: local variable begins in x
public static final Rop MARK_LOCAL_LONG
x: Long :: local variable begins in x
public static final Rop MARK_LOCAL_FLOAT
x: Float :: local variable begins in x
public static final Rop MARK_LOCAL_DOUBLE
x: Double :: local variable begins in x
public static final Rop MARK_LOCAL_OBJECT
x: Object :: local variable begins in x
public static final Rop FILL_ARRAY_DATA
T: Any primitive type; v0..vx: T :: {v0, ..., vx}
| Method Detail |
|---|
public static Rop ropFor(int opcode,
TypeBearer dest,
TypeList sources,
Constant cst)
Note: This method does not do complete error checking on its arguments, and so it may return an instance which seemed "right enough" even though in actuality the passed arguments don't quite match what is returned. TODO: Revisit this issue.
opcode - the opcodedest - non-null; destination (result) type, or
Type.VOID if nonesources - non-null; list of source typescst - null-ok; associated constant, if any
non-null; an appropriate instancepublic static Rop opMove(TypeBearer type)
move rop for the given type. The
result is a shared instance.
type - non-null; type of value being moved
non-null; an appropriate instancepublic static Rop opMoveParam(TypeBearer type)
move-param rop for the
given type. The result is a shared instance.
type - non-null; type of value being moved
non-null; an appropriate instancepublic static Rop opMoveException(TypeBearer type)
move-exception rop for the
given type. The result may be a shared instance.
type - non-null; type of the exception
non-null; an appropriate instancepublic static Rop opMoveResult(TypeBearer type)
move-result rop for the
given type. The result may be a shared instance.
type - non-null; type of the parameter
non-null; an appropriate instancepublic static Rop opMoveResultPseudo(TypeBearer type)
move-result-pseudo rop for the
given type. The result may be a shared instance.
type - non-null; type of the parameter
non-null; an appropriate instancepublic static Rop opConst(TypeBearer type)
const rop for the given
type. The result is a shared instance.
type - non-null; type of the constant
non-null; an appropriate instancepublic static Rop opIfEq(TypeList types)
if-eq rop for the given
sources. The result is a shared instance.
types - non-null; source types
non-null; an appropriate instancepublic static Rop opIfNe(TypeList types)
if-ne rop for the given
sources. The result is a shared instance.
types - non-null; source types
non-null; an appropriate instancepublic static Rop opIfLt(TypeList types)
if-lt rop for the given
sources. The result is a shared instance.
types - non-null; source types
non-null; an appropriate instancepublic static Rop opIfGe(TypeList types)
if-ge rop for the given
sources. The result is a shared instance.
types - non-null; source types
non-null; an appropriate instancepublic static Rop opIfGt(TypeList types)
if-gt rop for the given
sources. The result is a shared instance.
types - non-null; source types
non-null; an appropriate instancepublic static Rop opIfLe(TypeList types)
if-le rop for the given
sources. The result is a shared instance.
types - non-null; source types
non-null; an appropriate instancepublic static Rop opAdd(TypeList types)
add rop for the given
types. The result is a shared instance.
types - non-null; types of the sources
non-null; an appropriate instancepublic static Rop opSub(TypeList types)
sub rop for the given
types. The result is a shared instance.
types - non-null; types of the sources
non-null; an appropriate instancepublic static Rop opMul(TypeList types)
mul rop for the given
types. The result is a shared instance.
types - non-null; types of the sources
non-null; an appropriate instancepublic static Rop opDiv(TypeList types)
div rop for the given
types. The result is a shared instance.
types - non-null; types of the sources
non-null; an appropriate instancepublic static Rop opRem(TypeList types)
rem rop for the given
types. The result is a shared instance.
types - non-null; types of the sources
non-null; an appropriate instancepublic static Rop opAnd(TypeList types)
and rop for the given
types. The result is a shared instance.
types - non-null; types of the sources
non-null; an appropriate instancepublic static Rop opOr(TypeList types)
or rop for the given
types. The result is a shared instance.
types - non-null; types of the sources
non-null; an appropriate instancepublic static Rop opXor(TypeList types)
xor rop for the given
types. The result is a shared instance.
types - non-null; types of the sources
non-null; an appropriate instancepublic static Rop opShl(TypeList types)
shl rop for the given
types. The result is a shared instance.
types - non-null; types of the sources
non-null; an appropriate instancepublic static Rop opShr(TypeList types)
shr rop for the given
types. The result is a shared instance.
types - non-null; types of the sources
non-null; an appropriate instancepublic static Rop opUshr(TypeList types)
ushr rop for the given
types. The result is a shared instance.
types - non-null; types of the sources
non-null; an appropriate instancepublic static Rop opNeg(TypeBearer type)
neg rop for the given type. The
result is a shared instance.
type - non-null; type of value being operated on
non-null; an appropriate instancepublic static Rop opNot(TypeBearer type)
not rop for the given type. The
result is a shared instance.
type - non-null; type of value being operated on
non-null; an appropriate instancepublic static Rop opCmpl(TypeBearer type)
cmpl rop for the given type. The
result is a shared instance.
type - non-null; type of value being compared
non-null; an appropriate instancepublic static Rop opCmpg(TypeBearer type)
cmpg rop for the given type. The
result is a shared instance.
type - non-null; type of value being compared
non-null; an appropriate instance
public static Rop opConv(TypeBearer dest,
TypeBearer source)
conv rop for the given types. The
result is a shared instance.
dest - non-null; target value typesource - non-null; source value type
non-null; an appropriate instancepublic static Rop opReturn(TypeBearer type)
return rop for the given type. The
result is a shared instance.
type - non-null; type of value being returned
non-null; an appropriate instancepublic static Rop opAget(TypeBearer type)
aget rop for the given type. The
result is a shared instance.
type - non-null; element type of array being accessed
non-null; an appropriate instancepublic static Rop opAput(TypeBearer type)
aput rop for the given type. The
result is a shared instance.
type - non-null; element type of array being accessed
non-null; an appropriate instancepublic static Rop opNewArray(TypeBearer arrayType)
new-array rop for the given
type. The result is a shared instance.
arrayType - non-null; array type of array being created
non-null; an appropriate instance
public static Rop opFilledNewArray(TypeBearer arrayType,
int count)
filled-new-array rop for the given
type. The result may be a shared instance.
arrayType - non-null; type of array being createdcount - >= 0; number of elements that the array should have
non-null; an appropriate instancepublic static Rop opGetField(TypeBearer type)
get-field rop for the given
type. The result is a shared instance.
type - non-null; type of the field in question
non-null; an appropriate instancepublic static Rop opPutField(TypeBearer type)
put-field rop for the given
type. The result is a shared instance.
type - non-null; type of the field in question
non-null; an appropriate instancepublic static Rop opGetStatic(TypeBearer type)
get-static rop for the given
type. The result is a shared instance.
type - non-null; type of the field in question
non-null; an appropriate instancepublic static Rop opPutStatic(TypeBearer type)
put-static rop for the given
type. The result is a shared instance.
type - non-null; type of the field in question
non-null; an appropriate instancepublic static Rop opInvokeStatic(Prototype meth)
invoke-static rop for the
given type. The result is typically a newly-allocated instance.
meth - non-null; descriptor of the method
non-null; an appropriate instancepublic static Rop opInvokeVirtual(Prototype meth)
invoke-virtual rop for the
given type. The result is typically a newly-allocated instance.
meth - non-null; descriptor of the method, including the
this parameter
non-null; an appropriate instancepublic static Rop opInvokeSuper(Prototype meth)
invoke-super rop for the
given type. The result is typically a newly-allocated instance.
meth - non-null; descriptor of the method, including the
this parameter
non-null; an appropriate instancepublic static Rop opInvokeDirect(Prototype meth)
invoke-direct rop for the
given type. The result is typically a newly-allocated instance.
meth - non-null; descriptor of the method, including the
this parameter
non-null; an appropriate instancepublic static Rop opInvokeInterface(Prototype meth)
invoke-interface rop for the
given type. The result is typically a newly-allocated instance.
meth - non-null; descriptor of the method, including the
this parameter
non-null; an appropriate instancepublic static Rop opMarkLocal(TypeBearer type)
mark-local rop for the given type.
The result is a shared instance.
type - non-null; type of value being marked
non-null; an appropriate instance
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||