Name Type Description
TargetLostException Exception Thrown by InstructionList.remove() when one or multiple disposed instruction are still being referenced by a InstructionTargeter object.
ClassGenException Exception Thrown on internal errors.
Visitor Interface Interface implementing the Visitor pattern programming style.
VariableLengthInstruction Interface Denotes an instruction to be a variable length instruction, such as GOTO, JSR, LOOKUPSWITCH and TABLESWITCH.
UnconditionalBranch Interface Denotes an instruction to perform an unconditional branch, i.e., GOTO, JSR.
TypedInstruction Interface Get the type associated with an instruction, int for ILOAD, or the type of the field of a PUTFIELD instruction, e.g..
StackProducer Interface Denote an instruction that may produce a value on top of the stack (this excludes DUP_X1, e.g.)
StackConsumer Interface Denote an instruction that may consume a value from the stack.
PushInstruction Interface Denotes an unparameterized instruction to produce a value on top of the stack, such as ILOAD, LDC, SIPUSH, DUP, ICONST, etc.
PopInstruction Interface Denotes an unparameterized instruction to pop a value on top from the stack, such as ISTORE, POP, PUTSTATIC.
NamedAndTyped Interface Denote entity that has both name and type.
MethodObserver Interface Implement this interface if you're interested in changes to a MethodGen object and register yourself with addObserver().
LoadClass Interface Denotes that an instruction may start the process of loading and resolving the referenced class in the Virtual Machine.
InstructionTargeter Interface Denote that a class targets InstructionHandles within an InstructionList.
InstructionListObserver Interface Implement this interface if you're interested in changes to an InstructionList object and register yourself with addObserver().
InstructionConstants Interface This interface contains shareable instruction objects.
InstructionConstants.Clinit Class No description provided.
InstructionComparator Interface Equality of instructions isn't clearly to be defined.
IndexedInstruction Interface Denote entity that refers to an index, e.g.
FieldObserver Interface Imnplement this interface if you're interested in changes to a FieldGen object and register yourself with addObserver().
ExceptionThrower Interface Denote an instruction that may throw a run-time or a linking exception (or both) during execution.
ConstantPushInstruction Interface Denotes a push instruction that produces a literal on the stack such as SIPUSH, BIPUSH, ICONST, etc.
CompoundInstruction Interface Wrapper class for `compound' operations, virtual instructions that don't exist as byte code, but give a useful meaning.
ClassObserver Interface Implement this interface if you're interested in changes to a ClassGen object and register yourself with addObserver().
AllocationInstruction Interface Denote family of instructions that allocates space in the heap.
Type Class Abstract super class for all possible java types, namely basic types such as int, object types like String and array types, e.g.
TABLESWITCH Class TABLESWITCH - Switch within given range of values, i.e., low..high
SWITCH Class SWITCH - Branch depending on int value, generates either LOOKUPSWITCH or TABLESWITCH instruction, depending on whether the match values (int[]) can be sorted with no gaps between the numbers.
SWAP Class SWAP - Swa top operand stack word
StoreInstruction Class Denotes an unparameterized instruction to store a value into a local variable, e.g.
StackInstruction Class Super class for stack operations like DUP and POP.
SIPUSH Class SIPUSH - Push short
Select Class Select - Abstract super class for LOOKUPSWITCH and TABLESWITCH instructions.
SASTORE Class SASTORE - Store into short array
SALOAD Class SALOAD - Load short from array
ReturnInstruction Class Super class for the xRETURN family of instructions.
ReturnaddressType Class Returnaddress, the type JSR or JSR_W instructions push upon the stack.
RETURN Class RETURN - Return from void method
RET Class RET - Return from subroutine
ReferenceType Class Super class for object and array types.
PUTSTATIC Class PUTSTATIC - Put static field in class
PUTFIELD Class PUTFIELD - Put field in object
PUSH Class Wrapper class for push operations, which are implemented either as BIPUSH, LDC or xCONST_n instructions.
POP2 Class POP2 - Pop two top operand stack words
POP Class POP - Pop top operand stack word
ObjectType Class Denotes reference such as java.lang.String.
NOP Class NOP - Do nothing
NEWARRAY Class NEWARRAY - Create new array of basic type (int, short, ...)
NEW Class NEW - Create new object
MULTIANEWARRAY Class MULTIANEWARRAY - Create new mutidimensional array of references
MONITOREXIT Class MONITOREXIT - Exit monitor for object
MONITORENTER Class MONITORENTER - Enter monitor for object
MethodGen Class Template class for building up a method.
LXOR Class LXOR - Bitwise XOR long
LUSHR Class LUSHR - Logical shift right long
LSUB Class LSUB - Substract longs
LSTORE Class LSTORE - Store long into local variable
LSHR Class LSHR - Arithmetic shift right long
LSHL Class LSHL - Arithmetic shift left long
LRETURN Class LRETURN - Return long from method
LREM Class LREM - Remainder of long
LOR Class LOR - Bitwise OR long
LOOKUPSWITCH Class LOOKUPSWITCH - Switch with unordered set of values
LocalVariableInstruction Class Abstract super class for instructions dealing with local variables.
LocalVariableGen Class This class represents a local variable within a method.
LoadInstruction Class Denotes an unparameterized instruction to load a value from a local variable, e.g.
LNEG Class LNEG - Negate long
LMUL Class LMUL - Multiply longs
LLOAD Class LLOAD - Load long from local variable
LineNumberGen Class This class represents a line number within a method, i.e., give an instruction a line number corresponding to the source code line.
LDIV Class LDIV - Divide longs
LDC_W Class LDC_W - Push item from constant pool (wide index)
LDC2_W Class LDC2_W - Push long or double from constant pool
LDC Class LDC - Push item from constant pool.
LCONST Class LCONST - Push 0 or 1, other values cause an exception
LCMP Class LCMP - Compare longs:
LASTORE Class LASTORE - Store into long array
LAND Class LAND - Bitwise AND longs
LALOAD Class LALOAD - Load long from array
LADD Class LADD - Add longs
L2I Class L2I - Convert long to int
L2F Class L2F - Convert long to float
L2D Class L2D - Convert long to double
JSR_W Class JSR_W - Jump to subroutine
JsrInstruction Class Super class for JSR - Jump to subroutine
JSR Class JSR - Jump to subroutine
IXOR Class IXOR - Bitwise XOR int
IUSHR Class IUSHR - Logical shift right int
ISUB Class ISUB - Substract ints
ISTORE Class ISTORE - Store int from stack into local variable
ISHR Class ISHR - Arithmetic shift right int
ISHL Class ISHL - Arithmetic shift left int
IRETURN Class IRETURN - Return int from method
IREM Class IREM - Remainder of int
IOR Class IOR - Bitwise OR int
INVOKEVIRTUAL Class INVOKEVIRTUAL - Invoke instance method; dispatch based on class
INVOKESTATIC Class INVOKESTATIC - Invoke a class (static) method
INVOKESPECIAL Class INVOKESPECIAL - Invoke instance method; special handling for superclass, private and instance initialization method invocations
INVOKEINTERFACE Class INVOKEINTERFACE - Invoke interface method
InvokeInstruction Class Super class for the INVOKE family of instructions.
InstructionList Class This class is a container for a list of Instruction objects.
InstructionHandle Class Instances of this class give users a handle to the instructions contained in an InstructionList.
InstructionFactory Class Instances of this class may be used, e.g., to generate typed versions of instructions.
Instruction Class Abstract super class for all Java byte codes.
INSTANCEOF Class INSTANCEOF - Determine if object is of given type
INEG Class INEG - Negate int
IMUL Class IMUL - Multiply ints
IMPDEP2 Class IMPDEP2 - Implementation dependent
IMPDEP1 Class IMPDEP1 - Implementation dependent
ILOAD Class ILOAD - Load int from local variable onto stack
IINC Class IINC - Increment local variable by constant
IF_ICMPNE Class IF_ICMPNE - Branch if int comparison doesn't succeed
IF_ICMPLT Class IF_ICMPLT - Branch if int comparison succeeds
IF_ICMPLE Class IF_ICMPLE - Branch if int comparison succeeds
IF_ICMPGT Class IF_ICMPGT - Branch if int comparison succeeds
IF_ICMPGE Class IF_ICMPGE - Branch if int comparison succeeds
IF_ICMPEQ Class IF_ICMPEQ - Branch if int comparison succeeds
IF_ACMPNE Class IF_ACMPNE - Branch if reference comparison doesn't succeed
IF_ACMPEQ Class IF_ACMPEQ - Branch if reference comparison succeeds
IFNULL Class IFNULL - Branch if reference is not null
IFNONNULL Class IFNONNULL - Branch if reference is not null
IFNE Class IFNE - Branch if int comparison with zero succeeds
IFLT Class IFLT - Branch if int comparison with zero succeeds
IFLE Class IFLE - Branch if int comparison with zero succeeds
IfInstruction Class Super class for the IF family of instructions.
IFGT Class IFGT - Branch if int comparison with zero succeeds
IFGE Class IFGE - Branch if int comparison with zero succeeds
IFEQ Class IFEQ - Branch if int comparison with zero succeeds
IDIV Class IDIV - Divide ints
ICONST Class ICONST - Push value between -1, ..., 5, other values cause an exception
IASTORE Class IASTORE - Store into int array
IAND Class IAND - Bitwise AND int
IALOAD Class IALOAD - Load int from array
IADD Class IADD - Add ints
I2S Class I2S - Convert int to short
I2L Class I2L - Convert int to long
I2F Class I2F - Convert int to float
I2D Class I2D - Convert int to double
I2C Class I2C - Convert int to char
I2B Class I2B - Convert int to byte
GOTO_W Class GOTO_W - Branch always (to relative offset, not absolute address)
GotoInstruction Class Super class for GOTO
GOTO Class GOTO - Branch always (to relative offset, not absolute address)
GETSTATIC Class GETSTATIC - Fetch static field from class
GETFIELD Class GETFIELD - Fetch field from object
FSUB Class FSUB - Substract floats
FSTORE Class FSTORE - Store float into local variable
FRETURN Class FRETURN - Return float from method
FREM Class FREM - Remainder of floats
FNEG Class FNEG - Negate float
FMUL Class FMUL - Multiply floats
FLOAD Class FLOAD - Load float from local variable
FieldOrMethod Class Super class for InvokeInstruction and FieldInstruction, since they have some methods in common!
FieldInstruction Class Super class for the GET/PUT family of instructions.
FieldGenOrMethodGen Class Super class for FieldGen and MethodGen objects, since they have some methods in common!
FieldGen Class Template class for building up a field.
FDIV Class FDIV - Divide floats
FCONST Class FCONST - Push 0.0, 1.0 or 2.0, other values cause an exception
FCMPL Class FCMPL - Compare floats: value1 < value2
FCMPG Class FCMPG - Compare floats: value1 > value2
FASTORE Class FASTORE - Store into float array
FALOAD Class FALOAD - Load float from array
FADD Class FADD - Add floats
F2L Class F2L - Convert float to long
F2I Class F2I - Convert float to int
F2D Class F2D - Convert float to double
EmptyVisitor Class Supplies empty method bodies to be overridden by subclasses.
DUP_X2 Class DUP_X2 - Duplicate top operand stack word and put three down
DUP_X1 Class DUP_X1 - Duplicate top operand stack word and put two down
DUP2_X2 Class DUP2_X2 - Duplicate two top operand stack words and put four down
DUP2_X1 Class DUP2_X1 - Duplicate two top operand stack words and put three down
DUP2 Class DUP2 - Duplicate two top operand stack words
DUP Class DUP - Duplicate top operand stack word
DSUB Class DSUB - Substract doubles
DSTORE Class DSTORE - Store double into local variable
DRETURN Class DRETURN - Return double from method
DREM Class DREM - Remainder of doubles
DNEG Class DNEG - Negate double
DMUL Class DMUL - Multiply doubles
DLOAD Class DLOAD - Load double from local variable
DDIV Class DDIV - Divide doubles
DCONST Class DCONST - Push 0.0 or 1.0, other values cause an exception
DCMPL Class DCMPL - Compare doubles: value1 < value2
DCMPG Class DCMPG - Compare doubles: value1 > value2
DASTORE Class DASTORE - Store into double array
DALOAD Class DALOAD - Load double from array
DADD Class DADD - Add doubles
D2L Class D2L - Convert double to long
D2I Class D2I - Convert double to int
D2F Class D2F - Convert double to float
CPInstruction Class Abstract super class for instructions that use an index into the constant pool such as LDC, INVOKEVIRTUAL, etc.
ConversionInstruction Class Super class for the x2y family of instructions.
ConstantPoolGen Class This class is used to build up a constant pool.
CodeExceptionGen Class This class represents an exception handler, i.e., specifies the region where a handler is active and an instruction where the actual handling is done.
ClassGen Class Template class for building up a java class.
CHECKCAST Class CHECKCAST - Check whether object is of given type
CASTORE Class CASTORE - Store into char array
CALOAD Class CALOAD - Load char from array
BREAKPOINT Class BREAKPOINT, JVM dependent, ignored by default
BranchInstruction Class Abstract super class for branching instructions like GOTO, IFEQ, etc..
BranchHandle Class BranchHandle is returned by specialized InstructionList.append() whenever a BranchInstruction is appended.
BIPUSH Class BIPUSH - Push byte on stack
BASTORE Class BASTORE - Store into byte or boolean array
BasicType Class Denotes basic type such as int.
BALOAD Class BALOAD - Load byte or boolean from array
ATHROW Class ATHROW - Throw exception
ASTORE Class ASTORE - Store reference into local variable
ArrayType Class Denotes array type, such as int[][]
ARRAYLENGTH Class ARRAYLENGTH - Get length of array
ArrayInstruction Class Super class for instructions dealing with array access such as IALOAD.
ArithmeticInstruction Class Super class for the family of arithmetic instructions.
ARETURN Class ARETURN - Return reference from method
ANEWARRAY Class ANEWARRAY - Create new array of references
ALOAD Class ALOAD - Load reference from local variable
ACONST_NULL Class ACONST_NULL - Push null reference
AASTORE Class AASTORE - Store into reference array
AALOAD Class AALOAD - Load reference from array