|
||||||||||
| PREV NEXT | FRAMES NO FRAMES | |||||||||
synchronized; has no effect on
execution (other than inspecting this flag, per se)
strictfp)
behavior
invokespecial for superclass
method access
native
methods
T: any numeric type; r,x,y: T :: r = x + y
r,x,c: double :: r = x + c;
r,x,c: float :: r = x + c;
r,x,c: int :: r = x + c;
r,x,c: long :: r = x + c;
r,x,y: double :: r = x + y;
r,x,y: float :: r = x + y;
r,x,y: int :: r = x + y;
r,x,y: long :: r = x + y;
DexFile with items from within this instance.
DexFile with items from within this instance.
DexFile with items from within this instance.
DexFile with items from within this instance.
DexFile with items from within this instance.
DexFile with items from within this instance.
DexFile with items from within this instance.
DexFile with items from within this instance.
DexFile with items from within this instance.
DexFile with items from within this instance.
DexFile with items from within this instance.
DexFile with items from within this instance.
DexFile with items from within this instance.
DexFile with items from within this instance.
DexFile with items from within this instance.
DexFile with items from within this instance.
DexFile with items from within this instance.
DexFile with items from within this instance.
DexFile with items from within this instance.
DexFile with items from within this instance.
DexFile with items from within this instance.
DexFile with items from within this instance.
DexFile with items from within this instance.
DexFile with items from within this instance.
DexFile with items from within this instance.
addContents() methods, which adds
contents for a particular Annotation, calling itself
recursively should it encounter a nested annotation.
addContents() methods, which adds
contents for a particular constant, calling itself recursively
should it encounter a CstArray and calling ValueEncoder.addContents(DexFile,Annotation) recursively should it
encounter a CstAnnotation.
static and/or private) method.
static and/or private) method.
regV to the live-in list for this block.
regV to the live-out list for this block.
ints.T: any type; r: T; x: T[]; y: int :: r = x[y]
r: boolean; x: boolean[]; y: int :: r = x[y]
r: byte; x: byte[]; y: int :: r = x[y]
r: char; x: char[]; y: int :: r = x[y]
r: double; x: double[]; y: int :: r = x[y]
r: float; x: float[]; y: int :: r = x[y]
r,y: int; x: int[] :: r = x[y]
r: long; x: long[]; y: int :: r = x[y]
r: Object; x: Object[]; y: int :: r = x[y]
r: short; x: short[]; y: int :: r = x[y]
0) to
force alignment of the output cursor as given.
0) to
force alignment of the output cursor as given.
T: any integral type; r,x,y: T :: r = x & y
r,x,c: int :: r = x & c;
r,x,c: long :: r = x & c;
r,x,y: int :: r = x & y;
r,x,y: long :: r = x & y;
non-null; instance representing
java.lang.annotation.Annotation
Annotation instances.AnnotationSetItem.Annotations instances.true in the
specified range.
T: any type; x: T; y: T[]; z: int :: x[y] = z
x: boolean; y: boolean[]; z: int :: y[z] = x
x: byte; y: byte[]; z: int :: y[z] = x
x: char; y: char[]; z: int :: y[z] = x
x: double; y: double[]; z: int :: y[z] = x
x: float; y: float[]; z: int :: y[z] = x
x,z: int; y: int[] :: y[z] = x
x: long; y: long[]; z: int :: y[z] = x
x: Object; y: Object[]; z: int :: y[z] = x
x: short; y: short[]; z: int :: y[z] = x
T: any type; r: int; x: T[]; :: r = x.length
T: any type; r: int; x: T[]; :: r = x.length
CodeCursor.BasicBlock instances.(-(insertion point) - 1) if the value is not present.
true in the given bit set.
int[]s as bit sets.CodeAddress instances associated with
the blocks of a particular method.non-null; instance corresponding to the class Boolean
non-null; instance representing boolean
non-null; instance corresponding to the type boolean[]
non-null; instance representing boolean[]
non-null; instance representing java.lang.Boolean; the
suffix on the name helps disambiguate this from the instance
representing a primitive type
non-null; the list [boolean[], int]
BRANCH_* value
BRANCH_* value
boolean
byte
char
double
float
int
long
Object
short
void
non-null; instance corresponding to the class Byte
non-null; instance representing byte
non-null; instance corresponding to the type byte[]
non-null; instance representing byte[]
non-null; instance representing java.lang.Byte; the
suffix on the name helps disambiguate this from the instance
representing a primitive type
non-null; the list [byte[], int]
byte[], which provides read-only access and
can "reveal" a partial slice of the underlying array.byte[].
ByteArray.makeDataInputStream().ByteArray.makeInputStream(), which implements the
stream functionality.AnnotatedOutput which stores the written data
into a byte[].size.
PhiInsns.
CatchTable instances.non-null; instance representing char
non-null; instance corresponding to the type char[]
non-null; instance representing char[]
non-null; instance corresponding to the class Character
non-null; instance representing java.lang.Character; the
suffix on the name helps disambiguate this from the instance
representing a primitive type
non-null; the list [char[], int]
T: any object type; x: Object :: (T) x (can
throw ClassCastException)
T: any non-array object type; x: Object :: (T) x (can
throw ClassCastException)
non-null; instance representing java.lang.Class
.dex file.false.
non-null; instance representing java.lang.Cloneable
T: any floating point type; r: int; x,y: T :: r = (x == y) ? 0
: (x < y) ? -1 : 1 (Java-style "cmpg" where a NaN is
considered "greater than" all other values)
r: int; x,y: double :: r = cmpg(x, y);
r: int; x,y: float :: r = cmpg(x, y);
T: any numeric type; r: int; x,y: T :: r = (x == y) ? 0
: (x > y) ? 1 : -1 (Java-style "cmpl" where a NaN is
considered "less than" all other values; also used for integral
comparisons)
r: int; x,y: double :: r = cmpl(x, y);
r: int; x,y: float :: r = cmpl(x, y);
r: int; x,y: long :: r = cmp(x, y);
dex file.OffsettedItem.compareTo0(com.android.dx.dex.file.OffsettedItem) deciding same-class comparisons.
TypeBearers, and local info.
TranslationAdvice which conservatively answers
false to all methods.T: any type; r, literal: T :: r = literal;
r, literal: double :: r = literal;
r, literal: float :: r = literal;
r, literal: int :: r = literal;
r, literal: long :: r = literal;
r, literal: Object :: r = literal;
r, literal: Object :: r = literal;
Constant objects.SsaBasicBlock instances and
returning an interference graph.
Insn.equals() is defined
to be an identity compare.
Insn.equals() is defined
to be an identity compare.
InsnList with another.
Insn.equals() is defined
to be an identity compare.
T: any numeric type; U: any numeric type; r: T; x: U ::
r = (T) x (numeric type conversion between the four
"real" numeric types)
r: float; x: double :: r = (float) x
r: int; x: double :: r = (int) x
r: long; x: double :: r = (long) x
r: double; x: float :: r = (double) x
r: int; x: float :: r = (int) x
r: long; x: float :: r = (long) x
r: double; x: int :: r = (double) x
r: float; x: int :: r = (float) x
r: long; x: int :: r = (long) x
r: double; x: long :: r = (double) x
r: float; x: long :: r = (float) x
r: int; x: long :: r = (int) x
Constant instances.boolean.byte.char.CONSTANT_Double_info.CONSTANT_Fieldref_info.CONSTANT_Float_info.CONSTANT_Integer_info.CONSTANT_InterfaceMethodref_info.null value.CONSTANT_Long_info.CONSTANT_*ref_info.CONSTANT_Methodref_info.CONSTANT_NameAndType_info.short.CstInsn
in human form.
CONSTANT_Utf8_info or CONSTANT_String_info.String.
DalvCode.assignIndices(com.android.dx.dex.code.DalvCode.AssignIndicesCallback).DalvInsn instances.in into out until a delimiter 0x00 is
encountered.
.dex file inside an
application or library .jar file
.dex (Dalvik EXecutable)
file, which itself consists of a set of Dalvik classes..dex
files, and helper methods for same.TranslationAdvice which represents what
the dex format will be able to represent.T: any numeric type; r,x,y: T :: r = x / y
r,x,c: double :: r = x / c;
r,x,c: float :: r = x / c;
r,x,c: int :: r = x / c;
r,x,c: long :: r = x / c;
r,x,y: double :: r = x / y;
r,x,y: float :: r = x / y;
r,x,y: int :: r = x / y;
r,x,y: long :: r = x / y;
null-ok; the dominance frontier set indexed by
block index
Dop and utility methods for getting
them.non-null; instance corresponding to the class Double
non-null; the list [double]
non-null; instance representing double
non-null; instance corresponding to the type double[]
non-null; instance representing double[]
non-null; instance representing java.lang.Double; the
suffix on the name helps disambiguate this from the instance
representing a primitive type
non-null; the list [double, double]
non-null; the list [double, double[], int]
non-null; the list [double, Object]
non-null; the list [double[], int]
byte[].
non-null; empty instance
non-null; empty instance
non-null; empty instance
non-null; empty instance
non-null; immutable empty instance
non-null; immutable empty instance
non-null; no-element instance
non-null; no-element instance
non-null; no-element instance
non-null; immutable, no-element instance
non-null; instance representing "", that is, the
empty string
s into dst, starting at offset.
s.
ClassDataItem.END_SIMPLY.
OffsettedItem.compareTo0(com.android.dx.dex.file.OffsettedItem) deciding same-type comparisons.
equals, but only consider the simple types of the
registers.
0 (storing the result, if any, in register
0 as well).
.dex file.T: Any primitive type; v0..vx: T :: {v0, ..., vx}
T: Any primitive type; v0..vx: T :: {v0, ..., vx}
packed-switch instruction.T: any array type; r: T; x: int; v0..vx: T :: r = new T[x]
{v0, ..., vx}
int.
null if there is
none.
DalvInsnList.
int.
int.
int.
int.
InsnFormat methods to write themselves.non-null; instance corresponding to the class Float
non-null; the list [float]
non-null; instance representing float
non-null; instance corresponding to the type float[]
non-null; instance representing float[]
non-null; instance representing java.lang.Float; the
suffix on the name helps disambiguate this from the instance
representing a primitive type
non-null; the list [float, float]
non-null; the list [float, float[], int]
non-null; the list [float, Object]
non-null; the list [float[], int]
10t.10x.11n.11x.12x.20t.21c.21h.21s.21t.22b.22c.22s.22t.22x.23x.30t.31c.31i.31t.32s.32x.33x.35c.3rc.41c.51l.52c.5rc.Dop for the given opcode value.
Constant.
Constant.
Constant.
Constant.
Constant.
Constant.
Constant.
Constant.
@Info for the given opcode value.
nth entry in the constant pool, which must
be valid.
nth entry in the constant pool, which must
be valid.
nth entry in the constant pool, which must
be valid unless n == 0, in which case null
is returned.
nth entry in the constant pool, which must
be valid unless n == 0, in which case null
is returned.
T: any type; r: T; x: Object; f: instance field spec of
type T :: r = x.f
r: boolean; x: Object; f: instance field spec of
type boolean :: r = x.f
r: byte; x: Object; f: instance field spec of
type byte :: r = x.f
r: char; x: Object; f: instance field spec of
type char :: r = x.f
r: double; x: Object; f: instance field spec of
type double :: r = x.f
r: float; x: Object; f: instance field spec of
type float :: r = x.f
r: int; x: Object; f: instance field spec of
type int :: r = x.f
r: long; x: Object; f: instance field spec of
type long :: r = x.f
r: Object; x: Object; f: instance field spec of
type Object :: r = x.f
r: short; x: Object; f: instance field spec of
type short :: r = x.f
T: any type; r: T; f: static field spec of type T :: r =
f
r: boolean; f: static field spec of type boolean :: r = f
r: byte; f: static field spec of type byte :: r = f
r: char; f: static field spec of type char :: r = f
r: double; f: static field spec of type double :: r = f
r: float; f: static field spec of type float :: r = f
r: int; f: static field spec of type int :: r = f
r: long; f: static field spec of type long :: r = f
r: Object; f: static field spec of type Object :: r = f
r: short; f: static field spec of type short :: r = f
0
if handed null.
byte[] of this instance, which
may be larger than the number of bytes written
signed byte value at a particular offset.
byte[] at the given offset.
Class).
CstFieldRef that corresponds with this instance.
OutputFinisher.
InstructionCodec) for the given opcode
value.
IndexType for the given opcode value.
signed int value at a particular offset.
int bits.
int bits.
int bits.
int bits.
signed long value at a particular offset.
long bits.
long bits.
long bits.
long bits.
0 (storing
the result, if any, in register 0 as well).
Dop in the instruction fitting chain after the
given instance, if any.
nth entry in the constant pool, or
null if the index is in-range but invalid.
nth entry in the constant pool, or
null if the index is in-range but invalid.
nulls to be
returned.
static or instance method.
getResult().
signed short value at a particular offset.
getSources().
CstArray corresponding to ClassDataItem.staticValues if
it contains any non-zero non-null values.
unsigned byte value at a particular offset.
unsigned short value at a particular offset.
boolean value.
byte value.
char value.
double value.
float value.
int value.
long value.
short value.
goto label
goto label
fileName names a .zip, .jar, or .apk.
.dex file..dex file.move* instructions to move a set of registers into
registers starting at 0 sequentially.>= 0 after run(); the index of the immediate dominator
T: int or Object; x,y: T :: if (x == y) goto
label
x,y: int :: if (x == y) goto label
x,y: Object :: if (x == y) goto label
x: int :: if (x == 0) goto label
x: Object :: if (x == null) goto label
x,y: int :: if (x >= y) goto label
x,y: int :: if (x >= y) goto label
x: int :: if (x >= 0) goto label
x,y: int :: if (x > y) goto label
x,y: int :: if (x > y) goto label
x: int :: if (x > 0) goto label
x,y: int :: if (x <= y) goto label
x,y: int :: if (x <= y) goto label
x: int :: if (x <= 0) goto label
x,y: int :: if (x < y) goto label
x,y: int :: if (x < y) goto label
x: int :: if (x < 0) goto label
T: int or Object; x,y: T :: if (x != y) goto
label
x,y: int :: if (x != y) goto label
x,y: Object :: if (x != y) goto label
x: int :: if (x != 0) goto label
x: Object :: if (x != null) goto label
PositionList.make(com.android.dx.dex.code.DalvInsnList, int) to indicate that only "important" position
information should be returned.
Z between
this block (A) and a current successor block
(B).
Insn.Visitor, which has empty method
bodies for all methods.Insn instances.T: any object type; x: Object :: x instanceof T
T: any non-array object type; x: Object :: x instanceof
T.
DecodedInstruction.non-null; the list [int]
non-null; instance representing int
non-null; instance corresponding to the type int[]
non-null; instance representing int[]
non-null; the list [int, boolean[], int]
non-null; the list [int, byte[], int]
non-null; the list [int, char[], int]
non-null; the list [int, int]
non-null; the list [int, int[], int]
non-null; the list [int, Object]
non-null; the list [int, short[], int]
non-null; the list [int[], int]
non-null; instance corresponding to the class Integer
non-null; instance representing java.lang.Integer; the
suffix on the name helps disambiguate this from the instance
representing a primitive type
oldReg interferes
with what currently maps to newReg.
oldReg interferes
with what currently maps to newReg.
ints along with the given return type
"V" to return the type
for void.
ints.ACC_ABSTRACT is on in the given
flags.
ACC_ANNOTATION is on in the given
flags.
true if this instance is a category-2 constant,
meaning it takes up two slots in the constant pool, or
false if this instance is category-1.
true if this instance is a category-2 constant,
meaning it takes up two slots in the constant pool, or
false if this instance is category-1.
true if this instance is a category-2 constant,
meaning it takes up two slots in the constant pool, or
false if this instance is category-1.
true if this instance is a category-2 constant,
meaning it takes up two slots in the constant pool, or
false if this instance is category-1.
true if this instance is a category-2 constant,
meaning it takes up two slots in the constant pool, or
false if this instance is category-1.
true if this instance is a category-2 constant,
meaning it takes up two slots in the constant pool, or
false if this instance is category-1.
true if this instance is a category-2 constant,
meaning it takes up two slots in the constant pool, or
false if this instance is category-1.
true if this instance is a category-2 constant,
meaning it takes up two slots in the constant pool, or
false if this instance is category-1.
true if this instance is a category-2 constant,
meaning it takes up two slots in the constant pool, or
false if this instance is category-1.
true if this instance is a category-2 constant,
meaning it takes up two slots in the constant pool, or
false if this instance is category-1.
ACC_DECLARED_SYNCHRONIZED is
on in the given flags.
true.
true) or not (false) the given
opcode value is an "extended" opcode (not counting the nop-like
payload opcodes).
int.
ACC_NATIVE is on in the given
flags.
ACC_PRIVATE is on in the given
flags.
ACC_PROTECTED is on in the given
flags.
ACC_PUBLIC is on in the given
flags.
ACC_STATIC is on in the given
flags.
true if this is a static method.
ACC_SYNCHRONIZED is on in
the given flags.
non-null; instance representing a known-null
non-null; comparator for instances of this class that
just compares block labels
PositionList.make(com.android.dx.dex.code.DalvInsnList, int) to indicate that only line number
transitions should be returned
non-null; the list [java.lang.Error]
non-null; the list
non-null; the list
non-null; the list [java.lang.Error,
java.lang.NegativeArraySizeException]
non-null; the list [java.lang.Error,
java.lang.NullPointerException,
java.lang.ArrayIndexOutOfBoundsException,
java.lang.ArrayStoreException]
non-null; the list [java.lang.Error,
java.lang.NullPointerException,
java.lang.ArrayIndexOutOfBoundsException]
non-null; the list [java.lang.Error,
java.lang.NullPointerException,
java.lang.IllegalMonitorStateException]
non-null; the list [java.lang.Error,
java.lang.NullPointerException]
DalvInsn.listingString(java.lang.String, int, boolean), which returns the string
form of this instance suitable for inclusion in a
human-oriented listing dump, not including the instruction
address and without respect for any output formatting.
DalvInsn.listingString(java.lang.String, int, boolean), which returns the string
form of this instance suitable for inclusion in a
human-oriented listing dump, not including the instruction
address and without respect for any output formatting.
DalvInsn.listingString(java.lang.String, int, boolean), which returns the string
form of this instance suitable for inclusion in a
human-oriented listing dump, not including the instruction
address and without respect for any output formatting.
DalvInsn.listingString(java.lang.String, int, boolean), which returns the string
form of this instance suitable for inclusion in a
human-oriented listing dump, not including the instruction
address and without respect for any output formatting.
DalvInsn.listingString(java.lang.String, int, boolean), which returns the string
form of this instance suitable for inclusion in a
human-oriented listing dump, not including the instruction
address and without respect for any output formatting.
DalvInsn.listingString(java.lang.String, int, boolean), which returns the string
form of this instance suitable for inclusion in a
human-oriented listing dump, not including the instruction
address and without respect for any output formatting.
DalvInsn.listingString(java.lang.String, int, boolean), which returns the string
form of this instance suitable for inclusion in a
human-oriented listing dump, not including the instruction
address and without respect for any output formatting.
DalvInsn.listingString(java.lang.String, int, boolean), which returns the string
form of this instance suitable for inclusion in a
human-oriented listing dump, not including the instruction
address and without respect for any output formatting.
DalvInsn.listingString(java.lang.String, int, boolean), which returns the string
form of this instance suitable for inclusion in a
human-oriented listing dump, not including the instruction
address and without respect for any output formatting.
DalvInsn.listingString(java.lang.String, int, boolean), which returns the string
form of this instance suitable for inclusion in a
human-oriented listing dump, not including the instruction
address and without respect for any output formatting.
reg.null if there is none.
RopMethod.SsaMethod.non-null; instance corresponding to the class Long
non-null; the list [long]
non-null; instance representing long
non-null; instance corresponding to the type long[]
non-null; instance representing long[]
non-null; instance representing java.lang.Long; the
suffix on the name helps disambiguate this from the instance
representing a primitive type
non-null; the list [long, int]
non-null; the list [long, long]
non-null; the list [long, long[], int]
non-null; the list [long, Object]
non-null; the list [long[], int]
-1 if the given array is not a well-formed dex file
magic number.
int value.
int value.
int value.
int value.
AnnotationDefault annotation.
DataInputStream that reads from this instance,
with the cursor starting at the beginning of this instance's data.
EnclosingClass annotation.
EnclosingMethod annotation.
InnerClass annotation.
InputStream that reads from this instance,
with the cursor starting at the beginning of this instance's data.
MemberClasses annotation.
GOTO.
Signature annotation.
Throws annotation.
T0: any type; name: local variable name :: mark(name,T0)
(mark beginning or end of local variable name)
x: Double :: local variable begins in x
x: Float :: local variable begins in x
x: Int :: local variable begins in x
x: Long :: local variable begins in x
x: Object :: local variable begins in x
RegisterSpec.equalsUsingSimpleType(com.android.dx.rop.code.RegisterSpec) but ignoring the register number.
.dex file.other into this set, so this set becomes the
union of the two.
.dex file..dex file which consists of a sequence of
OffsettedItem objects, which may each be of a different concrete
class and/or size.x: Object :: monitorenter(x)
x: Object :: monitorenter(x)
x: Object :: monitorexit(x)
x: Object :: monitorexit(x)
T: any type; r,x: T :: r = x;
r,x: double :: r = x;
T: Throwable; r: T :: r = caught_exception.
r,x: float :: r = x;
r,x: int :: r = x;
r,x: long :: r = x;
r,x: Object :: r = x;
T: any type; r,param(x): T :: r = param(x)
r,param(x): double :: r = param(x);
r,param(x): float :: r = param(x);
r,param(x): int :: r = param(x);
r,param(x): long :: r = param(x);
r,param(x): Object :: r = param(x);
T: Any type; r: T :: r = return_type.
T: Any type; r: T :: r = return_type.
r,x: ReturnAddress :: r = x;
Note that this rop-form instruction has no dex-form equivilent and
must be removed before the dex conversion.
T: any numeric type; r,x,y: T :: r = x * y
r,x,c: double :: r = x * c;
r,x,c: float :: r = x * c;
r,x,c: int :: r = x * c;
r,x,c: long :: r = x * c;
r,x,y: double :: r = x * y;
r,x,y: float :: r = x * y;
r,x,y: int :: r = x * y;
r,x,y: long :: r = x * y;
T: any numeric type; r,x: T :: r = -x
r,x: double :: r = -x;
r,x: float :: r = -x;
r,x: int :: r = -x;
r,x: long :: r = -x;
T: any array type; r: T; x: int :: r = new T[x]
r: boolean[]; x: int :: r = new boolean[x]
r: byte[]; x: int :: r = new byte[x]
r: char[]; x: int :: r = new char[x]
r: double[]; x: int :: r = new double[x]
r: float[]; x: int :: r = new float[x]
r: int[]; x: int :: r = new int[x]
r: long[]; x: int :: r = new long[x]
r: short[]; x: int :: r = new short[x]
T: any non-array object type :: r =
alloc(T) (allocate heap space for an object)
T: any non-array object type :: r =
alloc(T) (allocate heap space for an object)
non-null; convenient "no information known" instance
PositionList.make(com.android.dx.dex.code.DalvInsnList, int) to indicate that no actual position
information should be returned
nop()
nop()
T: any integral type; r,x: T :: r = ~x
r,x: int :: r = ~x;
r,x: long :: r = ~x;
non-null; instance corresponding to the class Object
non-null; the list [Object]
non-null; instance representing java.lang.Object
non-null; instance representing Object[]
non-null; the list [Object, Object]
non-null; the list [Object, Object[], int]
non-null; the list [Object[], int]
nop or
nothingness, in order to make the subsequent instruction have an
even address.add rop for the given
types.
aget rop for the given type.
and rop for the given
types.
aput rop for the given type.
cmpg rop for the given type.
cmpl rop for the given type.
const rop for the given
type.
conv rop for the given types.
div rop for the given
types.
filled-new-array rop for the given
type.
get-field rop for the given
type.
get-static rop for the given
type.
if-eq rop for the given
sources.
if-ge rop for the given
sources.
if-gt rop for the given
sources.
if-le rop for the given
sources.
if-lt rop for the given
sources.
if-ne rop for the given
sources.
invoke-direct rop for the
given type.
invoke-interface rop for the
given type.
invoke-static rop for the
given type.
invoke-super rop for the
given type.
invoke-virtual rop for the
given type.
mark-local rop for the given type.
move rop for the given type.
move-exception rop for the
given type.
move-param rop for the
given type.
move-result rop for the
given type.
move-result-pseudo rop for the
given type.
mul rop for the given
types.
neg rop for the given type.
new-array rop for the given
type.
not rop for the given type.
or rop for the given
types.
put-field rop for the given
type.
put-static rop for the given
type.
rem rop for the given
types.
return rop for the given type.
shl rop for the given
types.
shr rop for the given
types.
sub rop for the given
types.
ushr rop for the given
types.
xor rop for the given
types.
T: any integral type; r,x,y: T :: r = x | y
b into bit array a.
r,x,c: int :: r = x | c;
r,x,c: long :: r = x | c;
r,x,y: int :: r = x | y;
r,x,y: long :: r = x | y;
Section.items() will yield a
so-ordered collection.
Section.items() will yield a
so-ordered collection.
Section.items() will yield a
so-ordered collection.
Section.items() will yield a
so-ordered collection.
Section.items() will yield a
so-ordered collection.
Section.items() will yield a
so-ordered collection.
Section.items() will yield a
so-ordered collection.
DalvInsn instances being output.DalvInsnList instance.packed-switch instruction.byte[]
corresponding to the text.
reg as an operand register.
non-null; string to prefix register numbers with
Section.prepare().
Section.prepare().
Section.prepare().
non-null; the instance for name TYPE and descriptor
java.lang.Class, which is useful when dealing with
wrapped primitives
PrintWriter for the given Writer,
returning the given writer if it already happens to be the right
class.
.dex file.T: any type; x: T; y: Object; f: instance field spec of type
T :: y.f = x
x: int; y: Object; f: instance field spec of type
boolean :: y.f = x
x: int; y: Object; f: instance field spec of type
byte :: y.f = x
x: int; y: Object; f: instance field spec of type
char :: y.f = x
x: double; y: Object; f: instance field spec of type
double :: y.f = x
x: float; y: Object; f: instance field spec of type
float :: y.f = x
x: int; y: Object; f: instance field spec of type
int :: y.f = x
x: long; y: Object; f: instance field spec of type
long :: y.f = x
x: Object; y: Object; f: instance field spec of type
Object :: y.f = x
x: int; y: Object; f: instance field spec of type
short :: y.f = x
T: any type; f: static field spec of type T; x: T :: f = x
f: static field spec of type boolean; x: boolean :: f =
x
f: static field spec of type byte; x: byte :: f = x
f: static field spec of type char; x: char :: f = x
f: static field spec of type double; x: double :: f = x
f: static field spec of type float; x: float :: f = x
f: static field spec of type int; x: int :: f = x
f: static field spec of type long; x: long :: f = x
f: static field spec of type Object; x: Object :: f = x
f: static field spec of type short; x: short :: f = x
IOException to a
RuntimeException of some sort.
IOException to a
RuntimeException of some sort.
int.
long.
in.
in.
RegisterSpec instances.RegisterSpec instances, where a given register number
may appear only once in the set.T: any numeric type; r,x,y: T :: r = x % y
(Java-style remainder)
r,x,c: double :: r = x % c;
r,x,c: float :: r = x % c;
r,x,c: int :: r = x % c;
r,x,c: long :: r = x % c;
r,x,y: double :: r = x % y;
r,x,y: float :: r = x % y;
r,x,y: int :: r = x % y;
r,x,y: long :: r = x % y;
T: return type for the method; x: T; return x
non-null; the list [ReturnAddress]
non-null; instance representing a subroutine return address
x: double; return x
x: float; return x
x: int; return x
x: long; return x
x: Object; return x
return void
Rop.isCallLike).
Rop.Insn instances to corresponding
Dop instances.RopMethod to DalvCode.int as a 1-byte signed hex value.
int as a 2-byte signed hex value.
int as a 4-byte signed hex value.
long as an 8-byte signed hex value.
addMoveToEnd during
phi removal so that results don't overwrite sources that are used.
.dex file.non-null; instance representing java.io.Serializable
true.
visitor as the visitor for all instructions.
visitor as the visitor for all instructions not
otherwise handled.
visitor as the visitor for all field instructions.
visitor as the visitor for all method instructions.
visitor as the visitor for all string instructions.
visitor as the visitor for all type instructions.
T: any integral type; r,x: T; y: int :: r = x << y
r,x,c: int :: r = x << c;
r,x: long; c: int :: r = x << c;
r,x,y: int :: r = x << y;
r,x: long; y: int :: r = x << y;
non-null; instance corresponding to the class Short
non-null; instance representing short
non-null; instance corresponding to the type short[]
non-null; instance representing short[]
non-null; instance representing java.lang.Short; the
suffix on the name helps disambiguate this from the instance
representing a primitive type
non-null; the list [short[], int]
CodeInput that reads from a short[].CodeOutput that writes to a short[].T: any integral type; r,x: T; y: int :: r = x >> y
(signed right-shift)
r,x,c: int :: r = x >> c;
r,x: long; c: int :: r = x >> c;
r,x,y: int :: r = x >> y;
r,x: long; y: int :: r = x >> y;
null) elements, leaving the remaining elements in
their original order.
packed-switch instruction.CatchTable instances from RopMethod
and associated data.ConstantPool, which directly stores
an array of Constant objects and can be made immutable.TypeList.non-null; instance representing java.lang.String
.dex file.T: any numeric type; r,x,y: T :: r = x - y
r,x,c: double :: r = x - c;
r,x,c: float :: r = x - c;
r,x,c: int :: r = x - c;
r,x,c: long :: r = x - c;
r,x,y: double :: r = x - y;
r,x,y: float :: r = x - y;
r,x,y: int :: r = x - y;
r,x,y: long :: r = x - y;
x: int :: goto table[x]
x: int :: goto switchtable[x]
non-null; unique instance of this class
non-null; unique instance of this class
non-null; unique instance of this class
non-null; unique instance of this class
non-null; unique instance of this class
non-null; unique instance of this class
non-null; unique instance of this class
non-null; unique instance of this class
non-null; unique instance of this class
non-null; unique instance of this class
non-null; unique instance of this class
non-null; unique instance of this class
non-null; unique instance of this class
non-null; unique instance of this class
non-null; unique instance of this class
non-null; unique instance of this class
non-null; unique instance of this class
non-null; unique instance of this class
non-null; unique instance of this class
non-null; unique instance of this class
non-null; unique instance of this class
non-null; unique instance of this class
non-null; unique instance of this class
non-null; unique instance of this class
non-null; unique instance of this class
non-null; unique instance of this class
non-null; unique instance of this class
non-null; unique instance of this class
non-null; unique instance of this class
non-null; unique instance of this class
non-null; standard instance of this class
non-null; standard instance of this class
non-null; unique instance of this class
x: Throwable :: throw(x)
x: Throwable :: throw(x)
non-null; the list [Throwable]
non-null; instance representing java.lang.Throwable
MutabilityException if this instance is
immutable.
MutabilityException if this instance is mutable.
Section.prepare() has not been
called on this instance.
Section.prepare() has already been called
on this instance.
r,x: int :: r = (x << 24) >> 24 (Java-style
convert int to byte)
r,x: int :: r = (x << 24) >> 24 (Java-style
convert int to byte)
r,x: int :: r = x & 0xffff (Java-style convert int to char)
r,x: int :: r = x & 0xffff (Java-style
convert int to char)
r,x: int :: r = (x << 16) >> 16 (Java-style
convert int to short)
r,x: int :: r = (x << 16) >> 16 (Java-style
convert int to short)
byte[] that contains
the written contents exactly (that is, with no extra unwritten
bytes at the end).
.dex file,
in byte[] form.
CstMethodRef that corresponds to
this instance.
RopMethod.
non-null; the type java.lang.ArithmeticException
non-null; the type
java.lang.ArrayIndexOutOfBoundsException
non-null; the type java.lang.ArrayStoreException
non-null; the type java.lang.ClassCastException
non-null; the type java.lang.Error
non-null; the type
java.lang.IllegalMonitorStateException
non-null; the type java.lang.NegativeArraySizeException
non-null; the type java.lang.NullPointerException
TypeBearer..dex file.Type instances (or of things that contain types).int as a 1-byte unsigned hex value.
int as a 2-byte unsigned hex value.
int as either a 2-byte unsigned hex value
(if the value is small enough) or a 4-byte unsigned hex value (if
not).
int as a 3-byte unsigned hex value.
int as a 4-byte unsigned hex value.
long as an 8-byte unsigned hex value.
int as a 4-bit unsigned hex nibble.
.dex file which consists of a sequence of
Item objects.T: any integral type; r,x: T; y: int :: r = x >>> y
(unsigned right-shift)
r,x,c: int :: r = x >>> c;
r,x: long; c: int :: r = x >>> c;
r,x,y: int :: r = x >>> y;
r,x: long; y: int :: r = x >>> y;
non-null; the value 0 as an instance of this class
non-null; the value 0 as an instance of this class
non-null; instance representing 0
non-null; instance representing 0
non-null; instance representing 0
non-null; instance representing 0
non-null; the value 0 as an instance of this class
non-null; instance representing 1
non-null; instance representing 1
non-null; instance representing 1
non-null; instance representing 1
non-null; instance representing 2
non-null; instance representing 2
non-null; instance representing 3
non-null; instance representing 4
non-null; instance representing 5
non-null; instance representing false
non-null; instance representing -1
non-null; instance representing true
encoded_values and parts
thereof.non-null; version string
FillArrayDataInsn.
FillArrayDataInsn.
PlainCstInsn.
PlainCstInsn.
PlainInsn.
PlainInsn.
SwitchInsn.
SwitchInsn.
ThrowingCstInsn.
ThrowingCstInsn.
ThrowingInsn.
ThrowingInsn.
non-null; instance corresponding to the class Void
non-null; instance representing void
non-null; instance representing java.lang.Void; the
suffix on the name helps disambiguate this from the instance
representing a primitive type
int and emitted
in little-endian order.
int and emitted
in little-endian order.
int and emitted
in little-endian order.
long
and emitted in little-endian order.
ByteArray to this instance.
byte[] to this instance.
byte[] to this instance.
ByteArray to this instance.
byte[] to this instance.
byte[] to this instance.
encoded_annotation and not including a
value_type prefix.
encoded_array and not including a
value_type prefix.
byte to this instance.
byte to this instance.
int, little-endian.
int to this instance.
int to this instance.
long, little-endian.
long to this instance.
long to this instance.
Writers.short to this instance.
short to this instance.
value as a signed integer to out, starting at
offset.
DexFile to look things up as needed.
DexFile to look things up as needed.
DexFile to look things up as needed.
DexFile to look things up as needed.
DexFile to look things up as needed.
DexFile to look things up as needed.
DexFile to look things up as needed.
DexFile to look things up as needed.
value as an unsigned integer to out, starting at
offset.
0 bytes.
0 bytes.
T: any integral type; r,x,y: T :: r = x ^ y
r,x,c: int :: r = x ^ c;
r,x,c: long :: r = x ^ c;
r,x,y: int :: r = x ^ y;
r,x,y: long :: r = x ^ y;
null) value for the given type.
|
||||||||||
| PREV NEXT | FRAMES NO FRAMES | |||||||||