|
||||||||||
| 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]
DalvInsnList with 64-bit registers aligned at best.
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
nth primary argument.
T: any type; r: int; x: T[]; :: r = x.length
T: any type; r: int; x: T[]; :: r = x.length
AnnotationDefault attributes.Code attributes.ConstantValue attributes.Deprecated attributes.EnclosingMethod
attributes.Exceptions attributes.InnerClasses attributes.LineNumberTable attributes.LocalVariableTable attributes.LocalVariableTypeTable attributes.non-null; attribute name for attributes of this type
non-null; attribute name for attributes of this type
non-null; attribute name for attributes of this type
non-null; attribute name for attributes of this type
non-null; attribute name for attributes of this type
non-null; attribute name for attributes of this type
non-null; attribute name for attributes of this type
non-null; attribute name for attributes of this type
non-null; attribute name for attributes of this type
non-null; attribute name for attributes of this type
non-null; attribute name for attributes of this type
non-null; attribute name for attributes of this type
non-null; attribute name for attributes of this type
non-null; attribute name for attributes of this type
non-null; attribute name for attributes of this type
non-null; attribute name for attributes of this type
non-null; attribute name for attributes of this type
Attribute subclasses
depending on the context and name.RuntimeInvisibleAnnotations
attributes.RuntimeInvisibleParameterAnnotations attributes.RuntimeVisibleAnnotations
attributes.RuntimeVisibleParameterAnnotations
attributes.Signature attributes.SourceFile attributes.Synthetic attributes.int, with the given value.
int, with the given value.
switch* table.
switch* table.
Attribute, which directly stores
the attribute name but leaves the rest up to subclasses.CodeCursor.LocalVariableTable
and LocalVariableTypeTable attributes.Machine.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.
ByteBlock instances.Code attribute.Code attribute.BytecodeArray.Visitor, which has empty method
bodies for all methods.Code attribute.
Code attribute.
PhiInsns.
CatchTable instances.byte[]s containing Java
classfiles into ClassDefItem 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.null-ok; the class file object being constructed;
becomes non-null during BlockDumper.dump(byte[], java.io.PrintStream, java.lang.String, boolean, com.android.dx.command.dump.Args)
ClassOpener.ClassOpener.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.cf.iface.* based on a direct representation
of class files as byte[]s.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_Class_info
CONSTANT_Double_info
CONSTANT_Fieldref_info
CONSTANT_Float_info
CONSTANT_Integer_info
CONSTANT_InterfaceMethodref_info
CONSTANT_InvokeDynamic
CONSTANT_Long_info
CONSTANT_MethodHandle
CONSTANT_Methodref_info
CONSTANT_MethodType
CONSTANT_NameAndType_info
CONSTANT_String_info
CONSTANT_Utf8_info
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
ConcreteMethod to a RopMethod.
Class
Double
Fieldref
Float
Integer
InterfaceMethodref
Long
Methodref
String
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..dex (Dalvik EXecutable)
file, which itself consists of a set of Dalvik classes.TranslationAdvice which represents what
the dex format will be able to represent.byte[] or slice thereof.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[].
System.out and
System.err but they can be changed to link to other
PrintStream.non-null; convenient zero-entry instance
non-null; zero-size instance
non-null; zero-size instance
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
BytecodeArray.Visitor
.class files
to process
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.non-null after Main.Arguments.parse(java.lang.String[]); file name arguments
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]
op target target
op #cpi #cpi; constant restricted as specified
invokeinterface cpi cpi count 0
ldc #cpi; constant restricted as specified
op #byte (bipush and
newarray)
op local; category-1 local; implies
max_locals is at least two more than the given
local number
op local; category-2 local; implies
max_locals is at least two more than the given
local number
lookupswitch ...
multianewarray cpi cpi dims
op
op; implies max_locals >= 1
op; implies max_locals >= 2
op; implies max_locals >= 3
op; implies max_locals >= 4
op; implies max_locals >= 5
sipush #byte #byte
tableswitch ...
wide ...
op target target target target
10t.10x.11n.11x.12x.20t.21c.21h.21s.21t.22b.22c.22s.22t.22x.23x.30t.31c.31i.31t.32x.35c.3rc.51l.nth attribute.
nth field.
nth method.
nth attribute.
nth field.
nth method.
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.
access_flags.
access_flags.
access_flags.
access_flags.
access_flags.
ACC_SUPER.
byte[] of this instance, which
may be larger than the number of bytes written
attributes (along with
attributes_count).
attributes (along with
attributes_count).
attributes (along with
attributes_count).
attributes (along with
attributes_count).
attributes (along with
attributes_count).
int auxiliary argument.
signed byte value at a particular offset.
ByteArray that this instance's data comes from.
bytes to process.
byte[] at the given offset.
Class).
constant_pool (along with
constant_pool_count).
constant_pool (along with
constant_pool_count).
descriptor_index of the member.
descriptor_index of the member.
descriptor_index of the member.
this parameter.
this parameter.
this parameter.
byte[]
which it came from.
CstFieldRef that corresponds with this instance.
fields (along with
fields_count).
fields (along with
fields_count).
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.
interfaces (along with
interfaces_count).
interfaces (along with
interfaces_count).
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).
magic.
magic.
magic, but without doing any
checks or parsing first.
major_version.
major_version.
major_version, but
without doing any checks or parsing first.
methods (along with
methods_count).
methods (along with
methods_count).
minor_version.
minor_version.
minor_version, but
without doing any checks or parsing first.
name_index of the member.
name_index of the member.
name_index of the member.
Dop in the instruction fitting chain after the
given instance, if any.
null
if the given local is uninitialized / invalid.
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.
SourceFile attribute of this
file, if any.
SourceFile attribute of this
file, if any.
getSources().
CstArray corresponding to ClassDataItem.staticValues if
it contains any non-zero non-null values.
super_class, interpreted as a type constant
if non-zero.
super_class, interpreted as a type constant
if non-zero.
this_class, interpreted as a type constant.
this_class, interpreted as a type constant.
non-null; Error message for too many method/field/type ids.
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
.dex file..dex file.BaseDumper.bytes.
move* instructions to move a set of registers into
registers starting at 0 sequentially.null-ok; output file name for human-oriented dump
>= 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.
InnerClasses attributes.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_CONSTRUCTOR is on in
the given flags.
ACC_DECLARED_SYNCHRONIZED is
on in the given flags.
true.
ACC_ENUM is on in the given flags.
ACC_INTERFACE is on in
the given flags.
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.
LocalVariableList.Item
in all respects but the type descriptor and signature, if any.
.jar file
instead of a plain .dex
.jar file, whether to still
keep the .class files
non-null; instance representing a known-null
non-null; comparator for instances of this class that
just compares block labels
LineNumberTable attributes.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.
reg.null if there is none.
RopMethod.SsaMethod.LocalVariableTable and LocalVariableTypeTable
attributes, as well as combinations of the two.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]
Frame.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.
SourcePosition instance corresponding to the
given bytecode offset.
Throws annotation.
TypeList whose
data comes from the bytes of this instance, interpreted as a
list of constant pool indices for classes, which are in turn
translated to type constants.
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.
other into this set, so this set becomes the
union of the two.
predLabel.
LocalsSet from a subroutine
caller.
LocalsSet from a subroutine
caller.
.dex file.null-ok; particular method to dump
.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.
null-ok; output file name for binary file
DalvInsn instances being output.DalvInsnList instance.packed-switch instruction.byte[]
corresponding to the text.
element_value) attribute.
nth element down from the top of the stack.
nth element down from the top of the
stack, returning whether or not it has local info.
nth element down from the top of the
stack, returning the type per se, as opposed to the
type-bearer.
Prototype (popped in reverse of the argument
order, so the first prototype argument type is for the deepest
element of the stack), and store them in the arguments area,
indicating that there are now that many arguments.
Prototype (popped in reverse of the argument
order, so the first prototype argument type is for the deepest
element of the stack), and store them in the arguments area,
indicating that there are now that many arguments.
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
ByteArray.
int.
long.
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;
nth result value.
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.AttributeFactory, which knows how to parse
all the standard attribute types.AttributeList, which directly stores
an array of Attribute objects and can be made immutable.CatchTable instances from RopMethod
and associated data.ConstantPool, which directly stores
an array of Constant objects and can be made immutable.Field, which directly stores
all the associated data.FieldList, which directly stores
an array of Field objects and can be made immutable.Member, which directly stores
all the associated data.Method, which directly stores
all the associated data.MethodList, which directly stores
an array of Method objects and can be made immutable.TypeList.non-null; instance representing java.lang.String
.dex file."(none)"
(rather than "null") for null.
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]
tableswitch or lookupswitch instruction.non-null; shared 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.
byte[], interprets it as a Java classfile, and
translates it into a ClassDefItem.
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
Machine which keeps track of known values but does not do
smart/realistic reference type calculations.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
mapper.
mapper.
mapper.
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.
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.
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 | |||||||||