Uses of Package
org.apache.bcel.generic
Package
Description
Classes that describe the structure of a Java class file and a class file parser.
Generic part of the Apache Byte Code Engineering Library (BCEL), classes to dynamically modify class objects
and byte code instructions.
Utility classes for the Apache Byte Code Engineering Library (BCEL), namely:
Collection classes for JavaClass objects
A converter for class files to HTML
A tool to find instructions patterns via regular expressions
A class to find classes as defined in the CLASSPATH
A class loader that allows to create classes at run time
PassVerifier classes used internally by JustIce.
A PassVerifier class mostly used internally by JustIce, yielding a control flow graph for public use as a nice side effect.
-
ClassDescriptionAbstract super class for all possible Java types, namely basic types such as int, object types like String and array types, e.g.
-
ClassDescriptionAALOAD - Load reference from arrayAASTORE - Store into reference arrayACONST_NULL - Push null referenceDenote family of instructions that allocates space in the heap.ALOAD - Load reference from local variableANEWARRAY - Create new array of referencesARETURN - Return reference from methodSuper class for the family of arithmetic instructions.Super class for instructions dealing with array access such as IALOAD.ARRAYLENGTH - Get length of arrayDenotes array type, such as int[][]ASTORE - Store reference into local variableATHROW - Throw exceptionBALOAD - Load byte or boolean from arrayDenotes basic type such as int.BASTORE - Store into byte or boolean arrayBIPUSH - Push byte on stackBranchHandle is returned by specialized InstructionList.append() whenever a BranchInstruction is appended.Abstract super class for branching instructions like GOTO, IFEQ, etc..BREAKPOINT, JVM dependent, ignored by defaultCALOAD - Load char from arrayCASTORE - Store into char arrayCHECKCAST - Check whether object is of given typeTemplate class for building up a java class.Thrown on internal exceptions.Implement this interface if you're interested in changes to a ClassGen object and register yourself with addObserver().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.Wrapper class for 'compound' operations, virtual instructions that don't exist as byte code, but give a useful meaning.This class is used to build up a constant pool.Denotes a push instruction that produces a literal on the stack such as SIPUSH, BIPUSH, ICONST, etc.Super class for the x2y family of instructions.Abstract super class for instructions that use an index into the constant pool such as LDC, INVOKEVIRTUAL, etc.D2F - Convert double to floatD2I - Convert double to intD2L - Convert double to longDADD - Add doublesDALOAD - Load double from arrayDASTORE - Store into double arrayDCMPG - Compare doubles: value1 > value2DCMPL - Compare doubles: value1 < value2DCONST - Push 0.0 or 1.0, other values cause an exceptionDDIV - Divide doublesDLOAD - Load double from local variableDMUL - Multiply doublesDNEG - Negate doubleDREM - Remainder of doublesDRETURN - Return double from methodDSTORE - Store double into local variableDSUB - Substract doublesDUP - Duplicate top operand stack wordDUP_X1 - Duplicate top operand stack word and put two downDUP_X2 - Duplicate top operand stack word and put three downDUP2 - Duplicate two top operand stack wordsDUP2_X1 - Duplicate two top operand stack words and put three downDUP2_X2 - Duplicate two top operand stack words and put four downDenote an instruction that may throw a run-time or a linking exception (or both) during execution.F2D - Convert float to doubleF2I - Convert float to intF2L - Convert float to longFADD - Add floatsFALOAD - Load float from arrayFASTORE - Store into float arrayFCMPG - Compare floats: value1 > value2FCMPL - Compare floats: value1 < value2FCONST - Push 0.0, 1.0 or 2.0, other values cause an exceptionFDIV - Divide floatsTemplate class for building up a field.Super class for FieldGen and MethodGen objects, since they have some methods in common!Super class for the GET/PUTxxx family of instructions.Imnplement this interface if you're interested in changes to a FieldGen object and register yourself with addObserver().Super class for InvokeInstruction and FieldInstruction, since they have some methods in common!FLOAD - Load float from local variableFMUL - Multiply floatsFNEG - Negate floatFREM - Remainder of floatsFRETURN - Return float from methodFSTORE - Store float into local variableFSUB - Substract floatsGETFIELD - Fetch field from objectGETSTATIC - Fetch static field from classGOTO - Branch always (to relative offset, not absolute address)GOTO_W - Branch always (to relative offset, not absolute address)Super class for GOTOI2B - Convert int to byteI2C - Convert int to charI2D - Convert int to doubleI2F - Convert int to floatI2L - Convert int to longI2S - Convert int to shortIADD - Add intsIALOAD - Load int from arrayIAND - Bitwise AND intIASTORE - Store into int arrayICONST - Push value between -1, ..., 5, other values cause an exceptionIDIV - Divide intsIF_ACMPEQ - Branch if reference comparison succeedsIF_ACMPNE - Branch if reference comparison doesn't succeedIF_ICMPEQ - Branch if int comparison succeedsIF_ICMPGE - Branch if int comparison succeedsIF_ICMPGT - Branch if int comparison succeedsIF_ICMPLE - Branch if int comparison succeedsIF_ICMPLT - Branch if int comparison succeedsIF_ICMPNE - Branch if int comparison doesn't succeedIFEQ - Branch if int comparison with zero succeedsIFGE - Branch if int comparison with zero succeedsIFGT - Branch if int comparison with zero succeedsSuper class for the IFxxx family of instructions.IFLE - Branch if int comparison with zero succeedsIFLT - Branch if int comparison with zero succeedsIFNE - Branch if int comparison with zero succeedsIFNONNULL - Branch if reference is not nullIFNULL - Branch if reference is not nullIINC - Increment local variable by constantILOAD - Load int from local variable onto stackIMPDEP1 - Implementation dependentIMPDEP2 - Implementation dependentIMUL - Multiply intsDenote entity that refers to an index, e.g.INEG - Negate intINSTANCEOF - Determine if object is of given typeAbstract super class for all Java byte codes.Equality of instructions isn't clearly to be defined.Deprecated.(since 6.0) Do not use.Deprecated.Deprecated, consider private and ignore.Instances of this class give users a handle to the instructions contained in an InstructionList.This class is a container for a list of Instruction objects.Implement this interface if you're interested in changes to an InstructionList object and register yourself with addObserver().Denotes that a class targets InstructionHandles within an InstructionList.Class for INVOKEDYNAMIC.Super class for the INVOKExxx family of instructions.INVOKEINTERFACE - Invoke interface methodINVOKESPECIAL - Invoke instance method; special handling for superclass, private and instance initialization method invocationsINVOKESTATIC - Invoke a class (static) methodINVOKEVIRTUAL - Invoke instance method; dispatch based on classIOR - Bitwise OR intIREM - Remainder of intIRETURN - Return int from methodISHL - Arithmetic shift left intISHR - Arithmetic shift right intISTORE - Store int from stack into local variableISUB - Substract intsIUSHR - Logical shift right intIXOR - Bitwise XOR intJSR - Jump to subroutineJSR_W - Jump to subroutineSuper class for JSR - Jump to subroutineL2D - Convert long to doubleL2F - Convert long to floatL2I - Convert long to intLADD - Add longsLALOAD - Load long from arrayLAND - Bitwise AND longsLASTORE - Store into long arrayLCMP - Compare longs:LCONST - Push 0 or 1, other values cause an exceptionLDC - Push item from constant pool.LDC2_W - Push long or double from constant poolLDIV - Divide longsThis class represents a line number within a method, i.e., give an instruction a line number corresponding to the source code line.LLOAD - Load long from local variableLMUL - Multiply longsLNEG - Negate longDenotes that an instruction may start the process of loading and resolving the referenced class in the Virtual Machine.Denotes an unparameterized instruction to load a value from a local variable, e.g.Represents a local variable within a method.Abstract super class for instructions dealing with local variables.LOOKUPSWITCH - Switch with unordered set of valuesLOR - Bitwise OR longLREM - Remainder of longLRETURN - Return long from methodLSHL - Arithmetic shift left longLSHR - Arithmetic shift right longLSTORE - Store long into local variableLSUB - Substract longsLUSHR - Logical shift right longLXOR - Bitwise XOR longTemplate class for building up a method.Implement this interface if you're interested in changes to a MethodGen object and register yourself with addObserver().MONITORENTER - Enter monitor for objectMONITOREXIT - Exit monitor for objectMULTIANEWARRAY - Create new mutidimensional array of referencesDenote entity that has both name and type.NEW - Create new objectNEWARRAY - Create new array of basic type (int, short, ...)NOP - Do nothingDenotes reference such as
String
.POP - Pop top operand stack wordPOP2 - Pop two top operand stack wordsDenotes an unparameterized instruction to pop a value on top from the stack, such as ISTORE, POP, PUTSTATIC.Denotes an unparameterized instruction to produce a value on top of the stack, such as ILOAD, LDC, SIPUSH, DUP, ICONST, etc.PUTFIELD - Put field in objectPUTSTATIC - Put static field in classSuper class for object and array types.RET - Return from subroutineRETURN - Return from void methodReturnaddress, the type JSR or JSR_W instructions push upon the stack.Super class for the xRETURN family of instructions.SALOAD - Load short from arraySASTORE - Store into short arraySelect - Abstract super class for LOOKUPSWITCH and TABLESWITCH instructions.SIPUSH - Push shortDenote an instruction that may consume a value from the stack.Super class for stack operations like DUP and POP.Denotes an instruction that may produce a value on top of the stack (this excludes DUP_X1, e.g.)Denotes an unparameterized instruction to store a value into a local variable, e.g.SWAP - Swa top operand stack wordTABLESWITCH - Switch within given range of values, i.e., low..highThrown byInstructionList
when one or multiple disposed instructions are still being referenced by anInstructionTargeter
object.Abstract super class for all possible Java types, namely basic types such as int, object types like String and array types, e.g.Gets the type associated with an instruction, int for ILOAD, or the type of the field of a PUTFIELD instruction, e.g..Denotes an instruction to perform an unconditional branch, i.e., GOTO, JSR.Denotes an instruction to be a variable length instruction, such as GOTO, JSR, LOOKUPSWITCH and TABLESWITCH.Interface implementing the Visitor pattern programming style. -
ClassDescriptionInstances of this class give users a handle to the instructions contained in an InstructionList.This class is a container for a list of Instruction objects.
-
ClassDescriptionAbstract super class for all possible Java types, namely basic types such as int, object types like String and array types, e.g.
-
ClassDescriptionAALOAD - Load reference from arrayAASTORE - Store into reference arrayACONST_NULL - Push null referenceALOAD - Load reference from local variableANEWARRAY - Create new array of referencesARETURN - Return reference from methodARRAYLENGTH - Get length of arrayASTORE - Store reference into local variableATHROW - Throw exceptionBALOAD - Load byte or boolean from arrayBASTORE - Store into byte or boolean arrayBIPUSH - Push byte on stackBREAKPOINT, JVM dependent, ignored by defaultCALOAD - Load char from arrayCASTORE - Store into char arrayCHECKCAST - Check whether object is of given typeThis class is used to build up a constant pool.Abstract super class for instructions that use an index into the constant pool such as LDC, INVOKEVIRTUAL, etc.D2F - Convert double to floatD2I - Convert double to intD2L - Convert double to longDADD - Add doublesDALOAD - Load double from arrayDASTORE - Store into double arrayDCMPG - Compare doubles: value1 > value2DCMPL - Compare doubles: value1 < value2DCONST - Push 0.0 or 1.0, other values cause an exceptionDDIV - Divide doublesDLOAD - Load double from local variableDMUL - Multiply doublesDNEG - Negate doubleDREM - Remainder of doublesDRETURN - Return double from methodDSTORE - Store double into local variableDSUB - Substract doublesDUP - Duplicate top operand stack wordDUP_X1 - Duplicate top operand stack word and put two downDUP_X2 - Duplicate top operand stack word and put three downDUP2 - Duplicate two top operand stack wordsDUP2_X1 - Duplicate two top operand stack words and put three downDUP2_X2 - Duplicate two top operand stack words and put four downSupplies empty method bodies to be overridden by subclasses.F2D - Convert float to doubleF2I - Convert float to intF2L - Convert float to longFADD - Add floatsFALOAD - Load float from arrayFASTORE - Store into float arrayFCMPG - Compare floats: value1 > value2FCMPL - Compare floats: value1 < value2FCONST - Push 0.0, 1.0 or 2.0, other values cause an exceptionFDIV - Divide floatsSuper class for the GET/PUTxxx family of instructions.FLOAD - Load float from local variableFMUL - Multiply floatsFNEG - Negate floatFREM - Remainder of floatsFRETURN - Return float from methodFSTORE - Store float into local variableFSUB - Substract floatsGETFIELD - Fetch field from objectGETSTATIC - Fetch static field from classGOTO - Branch always (to relative offset, not absolute address)GOTO_W - Branch always (to relative offset, not absolute address)I2B - Convert int to byteI2C - Convert int to charI2D - Convert int to doubleI2F - Convert int to floatI2L - Convert int to longI2S - Convert int to shortIADD - Add intsIALOAD - Load int from arrayIAND - Bitwise AND intIASTORE - Store into int arrayICONST - Push value between -1, ..., 5, other values cause an exceptionIDIV - Divide intsIF_ACMPEQ - Branch if reference comparison succeedsIF_ACMPNE - Branch if reference comparison doesn't succeedIF_ICMPEQ - Branch if int comparison succeedsIF_ICMPGE - Branch if int comparison succeedsIF_ICMPGT - Branch if int comparison succeedsIF_ICMPLE - Branch if int comparison succeedsIF_ICMPLT - Branch if int comparison succeedsIF_ICMPNE - Branch if int comparison doesn't succeedIFEQ - Branch if int comparison with zero succeedsIFGE - Branch if int comparison with zero succeedsIFGT - Branch if int comparison with zero succeedsIFLE - Branch if int comparison with zero succeedsIFLT - Branch if int comparison with zero succeedsIFNE - Branch if int comparison with zero succeedsIFNONNULL - Branch if reference is not nullIFNULL - Branch if reference is not nullIINC - Increment local variable by constantILOAD - Load int from local variable onto stackIMPDEP1 - Implementation dependentIMPDEP2 - Implementation dependentIMUL - Multiply intsINEG - Negate intINSTANCEOF - Determine if object is of given typeInstances of this class give users a handle to the instructions contained in an InstructionList.Class for INVOKEDYNAMIC.Super class for the INVOKExxx family of instructions.INVOKEINTERFACE - Invoke interface methodINVOKESPECIAL - Invoke instance method; special handling for superclass, private and instance initialization method invocationsINVOKESTATIC - Invoke a class (static) methodINVOKEVIRTUAL - Invoke instance method; dispatch based on classIOR - Bitwise OR intIREM - Remainder of intIRETURN - Return int from methodISHL - Arithmetic shift left intISHR - Arithmetic shift right intISTORE - Store int from stack into local variableISUB - Substract intsIUSHR - Logical shift right intIXOR - Bitwise XOR intJSR - Jump to subroutineJSR_W - Jump to subroutineL2D - Convert long to doubleL2F - Convert long to floatL2I - Convert long to intLADD - Add longsLALOAD - Load long from arrayLAND - Bitwise AND longsLASTORE - Store into long arrayLCMP - Compare longs:LCONST - Push 0 or 1, other values cause an exceptionLDC - Push item from constant pool.LDC_W - Push item from constant pool (wide index)LDC2_W - Push long or double from constant poolLDIV - Divide longsLLOAD - Load long from local variableLMUL - Multiply longsLNEG - Negate longDenotes that an instruction may start the process of loading and resolving the referenced class in the Virtual Machine.Denotes an unparameterized instruction to load a value from a local variable, e.g.Abstract super class for instructions dealing with local variables.LOOKUPSWITCH - Switch with unordered set of valuesLOR - Bitwise OR longLREM - Remainder of longLRETURN - Return long from methodLSHL - Arithmetic shift left longLSHR - Arithmetic shift right longLSTORE - Store long into local variableLSUB - Substract longsLUSHR - Logical shift right longLXOR - Bitwise XOR longTemplate class for building up a method.MONITORENTER - Enter monitor for objectMONITOREXIT - Exit monitor for objectMULTIANEWARRAY - Create new mutidimensional array of referencesNEW - Create new objectNEWARRAY - Create new array of basic type (int, short, ...)NOP - Do nothingDenotes reference such as
String
.POP - Pop top operand stack wordPOP2 - Pop two top operand stack wordsPUTFIELD - Put field in objectPUTSTATIC - Put static field in classSuper class for object and array types.RET - Return from subroutineRETURN - Return from void methodSuper class for the xRETURN family of instructions.SALOAD - Load short from arraySASTORE - Store into short arraySIPUSH - Push shortDenote an instruction that may consume a value from the stack.Super class for stack operations like DUP and POP.Denotes an instruction that may produce a value on top of the stack (this excludes DUP_X1, e.g.)Denotes an unparameterized instruction to store a value into a local variable, e.g.SWAP - Swa top operand stack wordTABLESWITCH - Switch within given range of values, i.e., low..highAbstract super class for all possible Java types, namely basic types such as int, object types like String and array types, e.g.Interface implementing the Visitor pattern programming style.