| Package | Description |
|---|---|
| gov.nasa.jpf.jvm | |
| gov.nasa.jpf.jvm.bytecode | |
| gov.nasa.jpf.listener |
| Class and Description |
|---|
| InstructionVisitorAcceptor |
| Class and 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]
|
| ArrayElementInstruction
abstract class for operations that access elements of arrays
|
| ArrayInstruction
abstraction for all array instructions
|
| 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
|
| FADD
Add float
..., value1, value2 => ..., result
|
| FALOAD
Load float from array
..., arrayref, index => ..., value
|
| FASTORE
Store into float array
..., arrayref, index, value => ...
|
| FCMPL
Compare float
..., value1, value2 => ..., result
|
| FCONST
Push float
...
|
| FDIV
divide float
..., value1, value2 => ..., result
|
| FieldInstruction
parent class for PUT/GET FIELD/STATIC insns
<2do> there is a inheritance level missing to deal with instance/static
fields - w/o the instance/static helper methods we would have to duplicate
code in the getters/setters
|
| 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
|
| 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
DOCUMENT ME!
|
| 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
|
| InstanceFieldInstruction
class abstracting instructions that access instance fields
|
| InstanceInvocation
base class for INVOKEVIRTUAL, INVOKESPECIAL and INVOLEINTERFACE
|
| INSTANCEOF
Determine if object is of given type
..., objectref => ..., result
|
| InstructionVisitor |
| InstructionVisitorAcceptor |
| 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
|
| InvokeInstruction
abstraction for all invoke instructions
|
| 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)
...
|
| 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)
...
|
| LDC.Type |
| LDC2_W
Push long or double from runtime constant pool (wide index)
...
|
| LDC2_W.Type |
| LDIV
Divide long
..., value1, value2 => ..., result
|
| LLOAD
Load long from local variable
...
|
| LMUL
Multiply long
..., value1, value2 => ..., result
|
| LNEG
Negate long
..., value => ..., result
|
| LocalVariableInstruction
class abstracting instructions that access local variables, to keep
track of slot/varname mapping
|
| 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 => ...
|
| PUTSTATIC
Set static field in class
..., value => ...
|
| RET
Return from subroutine
No change
|
| RETURN
Return void from method
...
|
| ReturnInstruction
abstraction for the various return instructions
|
| 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
|
| StoreInstruction
abstraction for various store instructions
|
| 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 => ...
|
| VariableAccessor
abstraction for instrauctions that access local variables
|
| 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):
|
| Class and Description |
|---|
| 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
|
| FieldInstruction
parent class for PUT/GET FIELD/STATIC insns
<2do> there is a inheritance level missing to deal with instance/static
fields - w/o the instance/static helper methods we would have to duplicate
code in the getters/setters
|
| InvokeInstruction
abstraction for all invoke instructions
|
| LockInstruction
common root for MONITORENTER/EXIT
|