Load reference from local variable.
Load reference from local variable.
Create new array of reference.
Store reference into local variable.
An instruction that stores the top-most stack value with computational type reference value OR return address in a local variable.
An instruction that adds two primitive values.
An arithmetic instruction as defined by the JVM specification.
An instruction that loads or stores a value in an array.
An instruction that loads a value stored in an array.
An instruction that stores a value in an array.
Push byte.
Push byte.
BIPUSH instructions are inherently cached; two BIPUSH instructions that push the same value are always reference identical.
An instruction that performs a manipulation of a value's bits.
Check whether object is of given type.
An instruction that compares two primitive values.
Common super class of all compound conditional branch instructions (switch instructions!).
Common super class of all conditional branch instructions.
Common interface of all instructions that have a fixed length (including operands!).
Common interface of all instructions that have a fixed length (including operands!).
Hence, instructions that may be modified by wide or where the length depends on
the position in the code array are never ConstantLengthInstructions.
Common superclass of all control transfer instructions.
An instruction to create a new array.
An instruction to create a new one-dimensional array.
Represents an invokedynamic instruction where we have no further, immediately usable
information regarding the target.
Represents an invokedynamic instruction where we have no further, immediately usable
information regarding the target.
This is the bootstrap method that needs to be executed in order to resolve the instruction's target.
This is the name of the method that this invokedynamic instruction intends
to invoke.
This is the descriptor belonging to the instruction's intended invocation target.
Load double from local variable.
Load double from local variable.
Store double into local variable.
Store long into local variable.
An instruction that divides two primitive values.
Trait that can be mixed in if the local variable index of a load or store instruction ((a,i,l,...)load/store_X) is not predefined as part of the instruction.
Characterizes the result of evaluating an expression with respect to the place where the result is stored.
Load float from local variable.
Load float from local variable.
Store float into local variable.
Store float into local variable.
Instructions that access a class' field.
Common superclass of all field read instructions.
Common superclass of all FieldWriteAccess instructions.
An instruction that divides two primitive floating point values.
An instruction that calculates the remainder of two primitive floating point values.
Fetch field from object.
Fetch field from object.
Getting an Array's length is translated to the special arraylength instruction.
E.g., in the following case:
Object[] os = ...; os.lengthos.length is determined using the special arraylength instruction.
org.opalj.br.instructions.FieldAccess for additional pattern matching support.
Getstatic field from class.
Getstatic field from class.
org.opalj.br.instructions.FieldAccess for additional pattern matching support.
Branch always.
Branch always.
Super class of the Goto instructions.
Common superclass of all instructions that perform a comparison of an integer value
against the constant value 0.
Common superclass of all instructions that perform a conditional jump based on the comparison of reference values.
Branch if int comparison with zero succeeds; succeeds if and only if value = 0.
Branch if int comparison with zero succeeds; succeeds if and only if value ≥ 0.
Branch if int comparison with zero succeeds; succeeds if and only if value > 0.
Common superclass of all instructions that perform a conditional jump based on the comparison of two integer values.
Branch if int comparison with zero succeeds; succeeds if and only if value ≤ 0.
Branch if int comparison with zero succeeds; succeeds if and only if value < 0.
Branch if int comparison with zero succeeds; succeeds if and only if value ≠ 0.
Branch if reference is not null.
Branch if reference is null.
Common superclass of all instructions that perform a conditional jump based on
an explicit comparison with null.
Branch if reference comparison succeeds; succeeds if and only if value1 == value2.
Branch if reference comparison succeeds; succeeds if and only if value1 ≠ value2.
Branch if int comparison succeeds; succeeds if and only if value1 = value2.
Branch if int comparison succeeds; succeeds if and only if value1 ≥ value2.
Branch if int comparison succeeds; succeeds if and only if value1 > value2.
Branch if int comparison succeeds; succeeds if and only if value1 ≤ value2.
Branch if int comparison succeeds; succeeds if and only if value1 < value2.
Branch if int comparison succeeds; succeeds if and only if value1 ≠ value2.
Increment local variable by constant.
Load int from local variable.
Load int from local variable.
Determine if object is of given type.
Represents an invokedynamic instruction.
Invoke interface method.
Invoke instance method; special handling for superclass, private, and instance initialization method invocations.
Invoke a class (static) method.
Invoke instance method; dispatch based on class.
Store int into local variable.
Trait that is mixed in if the local variable index of a load or store instruction ((a,i,l,...)load/store_X) is predefined.
Trait that can be mixed in if the value of a instruction is implicitly defined.
Common superclass of all instructions which are in their final form.
Common superclass of all instructions.
Common superclass of all instructions.
In general, we distinguish between a finally assembled Instruction where all jump targets are resolved to concrete branchoffsets and LabeledInstructions where the jump target(s) are identified using symbols which need to replaced by concrete branchoffsets before a class file object can be generated.
An instruction that divides two primitive integer values (long or in).
An instruction that the remainder of an integer values (long or in).
An instruction that "invokes" something.
An instruction that "invokes" something. This can be, e.g., the invocation of a method or – using INCOMPLETE_INVOKEDYNAMIC – the read of a field value.
Jump subroutine.
Jump subroutine.
Jump subroutine.
Push item from runtime constant pool.
Push long or double from runtime constant pool.
Push item from runtime constant pool.
Load long from local variable.
Load long from local variable.
Access jump table by key match and jump.
Access jump table by key match and jump.
A list of tuples where the first value is the match/case value and the second value is the jump offset.
Access jump table by key match and jump.
Store long into local variable.
Store long into local variable.
An instruction where the jump targets are identified using Symbols associated with the
instructions which should be executed in case of a jump.
An instruction where the jump targets are identified using Symbols associated with the
instructions which should be executed in case of a jump.
The labels are standard Scala Symbol.
Represents a LOOKUPSWITCH instruction with unresolved jump targets represented as Symbols.
An conditional branch instruction where the jump target is identified using a Symbol.
An instruction where the jump target is identified using a Symbol associated with the
instruction which should be executed in case of a jump.
An instruction where the jump target is identified using a Symbol associated with the
instruction which should be executed in case of a jump.
The label is a standard Scala Symbol.
Represents a TABLESWITCH instruction with unresolved jump targets represented as Symbols.
Super class of all labeled bytecode instructions that always jump to a specific target instruction.
To match LoadClass and LoadClass_W instructions you can use LDCClass.
Puts a constant value on the stack.
To match LoadFloat and LoadFloat_W instructions you can use LDCFloat.
An instruction that loads a local variable and puts it on top of the stack.
To match LoadMethodHandle and LoadMethodHandle_W instructions you can use LDCMethodHandle.
To match LoadMethodType and LoadMethodType_W instructions you can use LDCMethodType.
To match LoadString and LoadString_W instructions you can use LDCString.
Create new multidimensional array.
Create new multidimensional array.
The type of the array to be created.
The number of dimensions of the specified array that should be initialized.
An instruction that invokes another method (does not consider invokedynamic instructions.)
An instruction that multiplies two primitive values.
Create new object.
Create new array handler.
An instruction that negates a primitive value.
Invocation of a method where the target method is statically resolved.
An instruction that converts between a numeric value of primitive type A and primitive type B.
Set field in object.
Set field in object.
org.opalj.br.instructions.FieldAccess for additional pattern matching support.
Set static field in class.
Set static field in class.
org.opalj.br.instructions.FieldAccess for additional pattern matching support.
Pops the (two) top operand stack value(s).
Trait that can be mixed in if the value of a instruction is implicitly defined.
An instruction that stores a primitive value in an array of primitive values.
Return from subroutine.
Return from subroutine.
A RET instruction always returns to an instruction immediately following a JSR(_W) instruction.
An instruction that calculates the remainder of a value.
An instruction that returns from a method.
An instruction that returns a value calculated by the method.
Push short.
An instruction that adds two primitive values.
Common superclass of all instructions that perform a conditional jump.
An arithmetic instruction that takes all its operands from the stack and, hence, the constant length "1"; i.e., only one byte is needed to encode the instruction.
Implemented by all arithmetic instructions that have two (runtime-dependent) operands.
Implemented by all arithmetic instructions that have two (runtime-dependent) operands.
IINC is considered a special binary instruction since it does not operate on operand stack values!
An instruction that directly manipulates the operand stack by popping, swapping or duplicating values.
An instruction that stores the top-most stack value in a local variable.
An instruction that subtracts two primitive values.
A synchronization related instruction.
Access jump table by index and jump.
Implemented by all arithmetic instructions that have one (runtime-dependent) operand; i.e.
Implemented by all arithmetic instructions that have one (runtime-dependent) operand; i.e. the NegateInstructions.
Super class of all bytecode instructions that always jump to a specific target instruction.
Common superclass of all Invoke instructions that require virtual method resolution.
Load reference from array.
Store into reference array.
Push null.
Load reference from local variable with index 0.
Load reference from local variable with index 1.
Load reference from local variable with index 2.
Load reference from local variable with index 3.
General information and factory methods.
Return reference from method.
Get length of array.
Store reference into local variable with index 0.
Store reference into local variable with index 1.
Store reference into local variable with index 2.
Store reference into local variable with index 3.
Throw exception or error.
Defines values and methods common to arithmetic instructions.
Defines common properties of instructions that load values stored in arrays.
Load byte or boolean from array.
Store into byte or boolean array.
Load char from array.
Store into char array.
General information and factory methods.
Provides helper methods to facilitate the generation of classes.
Provides helper methods to facilitate the generation of classes. In particular, functionality to create transparent proxy classes is provided.
Convert double to float.
Convert double to int.
Convert double to long.
Add double.
Load double from array.
Store into double array.
Compare double.
Compare double.
Push the double constant 0.0 onto the operand stack.
Push the double constant 1.0 onto the operand stack.
Divide double.
Load double from local variable with index 0.
Load double from local variable with index 1.
Load double from local variable with index 2.
Load double from local variable with index 3.
Multiply double.
Negate double.
Remainder double.
Return double from method.
Store double into local variable with index 0.
Store double into local variable with index 1.
Store double into local variable with index 2.
Store double into local variable with index 3.
Subtract double.
Duplicate the top operand stack value.
Duplicate the top one or two operand stack values.
Duplicate the top one or two operand stack values and insert two or three values down.
Duplicate the top one or two operand stack values and insert two, three, or four values down.
Duplicate the top operand stack value and insert two values down.
Duplicate the top operand stack value and insert two or three values down.
Convert float to double.
Convert float to int.
Convert float to long.
Add float.
Load float from array.
Store into float array.
Compare float.
Compare float.
Push the float constant 0.0 onto the operand stack.
Push the float constant 1.0 onto the operand stack.
Push the float constant 2.0 onto the operand stack.
Divide float.
Load float from local variable with index 0.
Load float from local variable with index 1.
Load float from local variable with index 2.
Load float from local variable with index 3.
Multiply float.
Negate float.
Remainder float.
Return float from method.
Store float into local variable with index 0.
Store float into local variable with index 1.
Store float into local variable with index 2.
Store float into local variable with index 3.
Subtract float.
Defines an extractor to facilitate pattern matching on field access instructions.
Defines an extractor to facilitate pattern matching on field read access instructions.
Defines an extractor to facilitate pattern matching on field write access instructions.
General information and factory methods.
General information and factory methods.
Defines constants and factory methods.
Defines constants and factory methods.
Convert int to byte.
Convert int to char.
Convert int to double.
Convert int to float.
Convert int to long.
Convert int to short.
Add int.
Load int from array.
Boolean AND int.
Store into int array.
Push int constant value 0.
Push int constant value 1.
Push int constant value 2.
Push int constant value 3.
Push int constant value 4.
Push int constant value 5.
Push int constant.
Divide int.
Defines constants and factory methods.
Defines constants and factory methods.
Defines constants and factory methods.
Defines constants and factory methods.
Defines constants and factory methods.
Defines constants and factory methods.
Defines constants and factory methods.
Defines constants and factory methods.
Defines constants and factory methods.
Defines constants and factory methods.
Defines constants and factory methods.
Defines constants and factory methods.
Defines constants and factory methods.
Defines constants and factory methods.
Defines constants and factory methods.
Load int from local variable with index 0.
Load int from local variable with index 1.
Load int from local variable with index 2.
Load int from local variable with index 3.
Multiply int.
Represents an "incomplete" invoke dynamic instruction.
Represents an "incomplete" invoke dynamic instruction. Here, incomplete refers
to the fact that not all information is yet available because it is not
yet loaded. In case of invokedynamic instructions it is necessary
to read a class file's attributes which are read in at the very end. This requires
to resolve INVOKEDYNAMIC instructions in a two step process.
Negate int.
General information and factory methods.
Common constants and extractor methods related to INVOKEDYNAMIC instructions.
General information and factory methods.
General information and factory methods.
General information and factory methods.
General information and factory methods.
Boolean OR int.
Remainder int.
Return int from method.
Shift left int.
Arithmetic shift right int.
Store int into local variable with index 0.
Store int into local variable with index 1.
Store int into local variable with index 2.
Store int into local variable with index 3.
Subtract int.
Logical shift right int.
Boolean XOR int.
Functionality common to instructions.
Defines constants and factory methods.
Defines constants and factory methods.
Convert long to double.
Convert long to float.
Convert long to int.
Add long.
Load long from array.
Boolean AND long.
Store into long array.
Compare long.
Push the long constant 0 onto the operand stack.
Push the long constant 1 onto the operand stack.
Defines factory and extractor methods for LDC instructions.
Defines factory and extractor methods for LDC2_W instructions.
Defines factory and extractor methods for LDC_W instructions.
Divide long.
Load long from local variable with index 0.
Load long from local variable with index 1.
Load long from local variable with index 2.
Load long from local variable with index 3.
Multiply long.
Negate long.
Defines constants and factory methods.
Boolean OR long.
Remainder long.
Return long from method.
Shift left long.
Arithmetic shift right long.
Store long into local variable with index 0.
Store long into local variable with index 1.
Store long into local variable with index 2.
Store long into local variable with index 3.
Subtract long.
Logical shift right long.
Boolean XOR long.
Defines factory methods for LoadConstantInstructions.
Defines a factory method for LoadLocalVariableInstructions.
Defines an extractor to determine the local variable index accessed by the instruction.
Enter monitor for object.
Exit monitor for object.
General information and factory methods.
Defines commonly used constants and an extractor method to match MethodInvocationInstruction instructions.
General information and factory methods.
Do nothing.
Pop the top operand stack value.
Pops the top computational type category 2 value or the two top operand stack values if both have computational type category 1.
General information and factory methods.
General information and factory methods.
Return void from method.
Defines common values and a factory method to create a ReturnInstruction based
on the expected type.
Defines extractor methods related to return instructions.
Load short from array.
Store into short array.
Swap the top two operand stack values.
Extractor for SimpleConditionalBranchInstructions.
Factory for StoreLocalVariableInstructions.
Extractor for SwitchInstructions.
Defines constants and factory methods.
Extractor for UnconditionalBranchInstructions.
Extend local variable index by additional bytes.
Common instruction sequences.