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.
Implemented by all arithmetic instructions that have two (runtime-dependent) operands.
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 ConstantLengthInstruction
s.
Common superclass of all control transfer instructions.
An instruction to create a new array.
An instruction to create a new one-dimensional array.
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.
Load reference from array.
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.length
os.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.
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 invokedynamic
– the read of a field value.
Represents an invokedynamic
instruction that is a product of Oracle's JDK8 compiler.
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 value and the second value is the jump offset.
Store long into local variable.
Store long into local variable.
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.
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.
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.
Represents an invokedynamic
instruction where we have no further, immediately usable
information regarding the target.
Implemented by all arithmetic instructions that have one (runtime-dependent) operand.
Implemented by all arithmetic instructions that have one (runtime-dependent) operand. E.g. the NegateInstruction and IINC instructions.
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.
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.
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.
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.
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.
Helper methods needed for the resolution of invokedynamic
instructions.
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.
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.
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 LoadConstantInstruction
s.
Defines a factory method for LoadLocalVariableInstruction
s.
Enter monitor for object.
Exit monitor for object.
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.
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.
Factory for StoreLocalVariableInstruction
s.
Extend local variable index by additional bytes.
Common instruction sequences.