| Interface | Description |
|---|---|
| JVMFieldInstruction |
common type for all GET/PUT insns
|
| JVMInstruction |
common type for all JVM instructions
this can't be a abstract class since this would not allow us to
have machine independent instruction types
|
| JVMInstructionVisitor |
| Class | Description |
|---|---|
| AALOAD |
Load reference from array
..., arrayref, index => ..., value
|
| AASTORE |
Store into reference array
..., arrayref, index, value => ...
|
| ACONST_NULL |
Push null
...
|
| ALOAD |
Load reference from local variable
...
|
| ANEWARRAY |
Create new array of reference
..., count => ..., arrayref
|
| ARETURN |
Return reference from method
..., objectref => [empty]
|
| ARRAYLENGTH |
Get length of array
..., arrayref => ..., length
|
| ArrayLoadInstruction |
abstraction for all array load instructions
..., array, index => ..., value
|
| ArrayStoreInstruction |
abstraction for all array store instructions
...
|
| ASTORE |
Store reference into local variable
..., objref => ...
|
| ATHROW |
Throw exception or error
..., objectref => objectref
|
| BALOAD |
Load byte or boolean from array
..., arrayref, index => ..., value
|
| BASTORE |
Store into byte or boolean array
..., arrayref, index, value => ...
|
| BIPUSH |
Push byte
...
|
| CALOAD |
Load char from array
..., arrayref, index => ..., value
|
| CASTORE |
Store into char array
..., arrayref, index, value => ...
|
| CHECKCAST |
Check whether object is of given type
..., objectref => ..., objectref
|
| D2F |
Convert double to float
..., value => ..., result
|
| D2I |
Convert double to int
..., value => ..., result
|
| D2L |
Convert double to long
..., value => ..., result
|
| DADD |
Add double
..., value1, value2 => ..., result
|
| DALOAD |
Load double from array
..., arrayref, index => ..., value
|
| DASTORE |
Store into double array
..., arrayref, index, value => ...
|
| DCMPG |
Compare double
..., value1, value2 => ..., result
|
| DCMPL |
Compare double
..., value1, value2 => ..., result
|
| DCONST |
Push double
...
|
| DDIV |
Divide double
..., value1, value2 => ..., result
|
| DIRECTCALLRETURN |
this is used to return from a DirectCallStackFrame
Note that it is NOT a ReturnInstruction, in case listeners monitor these
and expect corresponding InvokeInstructions.
|
| DLOAD |
Load double from local variable
...
|
| DMUL |
Multiply double
..., value1, value2 => ..., result
|
| DNEG |
Negate double
..., value => ..., result
|
| DoubleCompareInstruction |
base class for double double compare instructions
|
| DREM |
Remainder double
..., value1, value2 => ..., result
|
| DRETURN |
Return double from method
..., value => [empty]
|
| DSTORE |
Store double into local variable
..., value => ...
|
| DSUB |
Subtract double
..., value1, value2 => ..., result
|
| DUP |
duplicate topmost stack entry
.., value -> .., value, value
|
| DUP_X1 |
Duplicate the top operand stack value and insert two values down
..., value2, value1 => ..., value1, value2, value1
|
| DUP_X2 |
DOCUMENT ME!
|
| DUP2 |
Duplicate the top one or two operand stack values
..., value2, value1 => ..., value2, value1, value2, value1
|
| DUP2_X1 |
DOCUMENT ME!
|
| DUP2_X2 |
Duplicate the top operand stack value and insert two or three values down
...
|
| EXECUTENATIVE |
this is a synthetic instruction to (re-)execute native methods
Note that StackFrame and lock handling has to occur from within
the corresponding NativeMethodInfo
|
| F2D |
Convert float to double
..., value => ..., result
|
| F2I |
Convert float to int
..., value => ..., result
|
| F2L |
Convert float to long
..., value => ..., result
|
| FADD |
Add float
..., value1, value2 => ..., result
|
| FALOAD |
Load float from array
..., arrayref, index => ..., value
|
| FASTORE |
Store into float array
..., arrayref, index, value => ...
|
| FCMPG |
Compare float
..., value1, value2 => ..., result
|
| FCMPL |
Compare float
..., value1, value2 => ..., result
|
| FCONST |
Push float
...
|
| FDIV |
divide float
..., value1, value2 => ..., result
|
| FINISHCLINIT |
artificial bytecode to defer class status changes of classes that don't have
a
|
| FLOAD |
Load float from local variable
...
|
| FMUL |
Multiply float
..., value1, value2 => ..., result
|
| FNEG |
Negate float
..., value => ..., result
|
| FREM |
Remainder float
..., value1, value2 => ..., result
|
| FRETURN |
Return float from method
..., value => [empty]
|
| FSTORE |
Store float into local variable
..., value => ...
|
| FSUB |
Subtract float
..., value1, value2 => ..., result
|
| GETFIELD |
Fetch field from object
..., objectref => ..., value
|
| GetHelper |
helper class to factor out common GET code
<2do> This is going to be moved into a Java 8 interface with default methods
|
| GETSTATIC |
Get static fieldInfo from class
..., => ..., value
|
| GOTO |
Branch always
No change
<2do> store this as code insnIndex, not as bytecode position
|
| GOTO_W | |
| I2B |
Convert int to byte
..., value => ..., result
|
| I2C |
Convert int to char
..., value => ..., result
|
| I2D |
Convert int to double
..., value => ..., result
|
| I2F |
Convert int to float
..., value =>..., result
|
| I2L |
Convert int to long
..., value => ..., result
|
| I2S |
Convert int to short
..., value => ..., result
|
| IADD |
Add int
..., value1, value2 =>..., result
|
| IALOAD |
Load int from array
..., arrayref, index => ..., value
|
| IAND |
Boolean AND int
..., value1, value2 => ..., result
|
| IASTORE |
Store into int array
..., arrayref, index, value => ...
|
| ICONST |
Push int constant
...
|
| IDIV |
Divide int
..., value1, value2 =>..., result
|
| IF_ACMPEQ |
Branch if reference comparison succeeds
..., value1, value2 => ...
|
| IF_ACMPNE |
Branch if reference comparison does not succeed
..., value1, value2 => ...
|
| IF_ICMPEQ |
Branch if int comparison succeeds
..., value1, value2 => ...
|
| IF_ICMPGE |
Branch if int comparison succeeds
..., value1, value2 => ...
|
| IF_ICMPGT |
Branch if int comparison succeeds
..., value1, value2 => ...
|
| IF_ICMPLE |
Branch if int comparison succeeds
..., value1, value2 => ...
|
| IF_ICMPLT |
Branch if int comparison succeeds
..., value1, value2 => ...
|
| IF_ICMPNE |
Branch if int comparison succeeds
..., value1, value2 => ...
|
| IFEQ |
Branch if int comparison with zero succeeds
..., value => ...
|
| IFGE |
Branch if int comparison with zero succeeds
..., value => ...
|
| IFGT |
Branch if int comparison with zero succeeds
..., value => ...
|
| IfInstruction |
abstraction for all comparison instructions
|
| IFLE |
Branch if int comparison with zero succeeds
..., value => ...
|
| IFLT |
Branch if int comparison with zero succeeds
..., value => ...
|
| IFNE |
Branch if int comparison with zero succeeds
..., value => ...
|
| IFNONNULL |
Branch if reference not null
..., value => ..., result
|
| IFNULL |
branch instruction for null values
|
| IINC |
Increment local variable by constant
No change
|
| ILOAD |
Load int from local variable
...
|
| IMUL |
Multiply int
..., value1, value2 => ..., result
|
| INEG |
Negate int
..., value => ..., result
|
| InstanceInvocation |
base class for INVOKEVIRTUAL, INVOKESPECIAL and INVOLEINTERFACE
|
| INSTANCEOF |
Determine if object is of given type
..., objectref => ..., result
|
| InstructionFactory |
this is the new JVMInstructionFactory
|
| INVOKECG |
a sytnthetic INVOKE instruction that gets it's parameters from an
InvocationCG.
|
| INVOKECLINIT |
this is an artificial bytecode that we use to deal with the particularities of
|
| INVOKEDYNAMIC | |
| INVOKEINTERFACE |
Invoke interface method
..., objectref, [arg1, [arg2 ...]] => ...
|
| INVOKESPECIAL |
Invoke instance method; special handling for superclass, private,
and instance initialization method invocations
..., objectref, [arg1, [arg2 ...]] => ...
|
| INVOKESTATIC |
Invoke a class (static) method
..., [arg1, [arg2 ...]] => ...
|
| INVOKEVIRTUAL |
Invoke instance method; dispatch based on class
..., objectref, [arg1, [arg2 ...]] => ...
|
| IOR |
Boolean OR int
..., value1, value2 => ..., result
|
| IREM |
Remainder int
..., value1, value2 => ..., result
|
| IRETURN |
Return int from method
..., value => [empty]
|
| ISHL |
Shift left int
..., value1, value2 => ..., result
|
| ISHR |
Arithmetic shift right int
..., value1, value2 => ..., result
|
| ISTORE |
Store int into local variable
..., value => ...
|
| ISUB |
Subtract int
..., value1, value2 => ..., result
|
| IUSHR |
Logical shift right int
..., value1, value2 => ..., result
|
| IXOR |
Boolean XOR int
..., value1, value2 => ..., result
|
| JSR |
Jump subroutine
...
|
| JSR_W |
Jump subroutine (wide insnIndex)
...
|
| JVMArrayElementInstruction |
abstract class for operations that access elements of arrays
|
| JVMInstanceFieldInstruction |
common super type of GETFIELD, PUTFIELD
|
| JVMInstructionVisitorAdapter | |
| JVMInvokeInstruction |
abstraction for all invoke instructions
|
| JVMLocalVariableInstruction |
class abstracting instructions that access local variables, to keep
track of slot/varname mapping
|
| JVMReturnInstruction |
abstraction for the various return instructions
|
| JVMStaticFieldInstruction |
common super type of GETSTATIC and PUTSTATIC
|
| L2D |
Convert long to double
..., value => ..., result
|
| L2F |
Convert long to float
..., value => ..., result
|
| L2I |
Convert long to int
..., value => ..., result
|
| LADD |
Add long
..., value1, value2 => ..., result
|
| LALOAD |
Load long from array
..., arrayref, index => ..., value
|
| LAND |
Boolean AND long
..., value1, value2 => ..., result
|
| LASTORE |
Store into long array
..., arrayref, index, value => ...
|
| LCMP |
Compare long
..., value1, value2 => ..., result
|
| LCONST |
Push long constant
...
|
| LDC |
Push item from runtime constant pool
...
|
| LDC_W |
Push item from runtime constant pool (wide index)
...
|
| LDC2_W |
Push long or double from runtime constant pool (wide index)
...
|
| LDIV |
Divide long
..., value1, value2 => ..., result
|
| LLOAD |
Load long from local variable
...
|
| LMUL |
Multiply long
..., value1, value2 => ..., result
|
| LNEG |
Negate long
..., value => ..., result
|
| LockInstruction |
common root for MONITORENTER/EXIT
|
| LongArrayLoadInstruction |
abstraction for long array loads
|
| LongArrayStoreInstruction |
absraction for long array stores
...
|
| LongReturn |
common base for DRETURN and LRETURN
|
| LOOKUPSWITCH |
Access jump table by key match and jump
..., key => ...
|
| LOR |
Boolean OR long
..., value1, value2 => ..., result
|
| LREM |
Remainder long
..., value1, value2 => ..., result
|
| LRETURN |
Return long from method
..., value => [empty]
|
| LSHL |
Shift left
..., value1, value2 =>..., result
|
| LSHR |
Arithmetic shift right long
..., value1, value2 =>..., result
|
| LSTORE |
Store long into local variable
..., value => ...
|
| LSUB |
Subtract long
..., value1, value2 => ..., result
|
| LUSHR |
Logical shift right long
..., value1, value2 =>..., result
|
| LXOR |
Boolean XOR long
..., value1, value2 => ..., result
|
| MONITORENTER |
Enter monitor for object
..., objectref => ...
|
| MONITOREXIT |
Exit monitor for object
..., objectref => ...
|
| MULTIANEWARRAY |
Create new multidimensional array
..., count1, [count2, ...] => ..., arrayref
|
| NATIVERETURN |
synthetic return instruction for native method invocations, so that
we don't have to do special provisions to copy the caller args in case
a post exec listener wants them.
|
| NEW |
Create new object
...
|
| NEWARRAY |
Create new array
..., count => ..., arrayref
|
| NewArrayInstruction | |
| NOP |
Do nothing
No change
|
| POP |
Pop the top operand stack value
..., value => ...
|
| POP2 |
Pop the top two operand slots
..., value2, value1 => ...
|
| PUTFIELD |
Set field in object
..., objectref, value => ...
|
| PutHelper |
helper class to factor out common PUT code
<2do> This is going to be moved into a Java 8 interface with default methods
|
| PUTSTATIC |
Set static field in class
..., value => ...
|
| RET |
Return from subroutine
No change
|
| RETURN |
Return void from method
...
|
| RUNSTART |
this is an artificial instruction that is automatically prepended to
a run()/main() method call.
|
| SALOAD |
Load short from array
..., arrayref, index => ..., value
|
| SASTORE |
Store into short array
..., array, index, value => ...
|
| SIPUSH |
Push short
...
|
| StaticFieldInstruction |
class to abstract instructions accessing static fields
|
| SWAP |
Swap the top two operand stack values
..., value2, value1 => ..., value1, value2
|
| SwitchInstruction |
common root class for LOOKUPSWITCH and TABLESWITCH insns
<2do> this is inefficient.
|
| TABLESWITCH |
Access jump table by index and jump
..., index => ...
|
| VirtualInvocation |
a base class for virtual call instructions
|
| WIDE |
modifies following insn, no stack manipulation
NOTE: transparently handled by BCEL, we should never receive this
(1):
|
| Enum | Description |
|---|---|
| LDC.Type | |
| LDC2_W.Type |