Interface LoadInstruction
- All Superinterfaces:
ClassFileElement
,CodeElement
,Instruction
Models a local variable load instruction in the
where
code
array of a
Code
attribute. Corresponding opcodes have a kind of Opcode.Kind.LOAD
. Delivered as a CodeElement
when traversing the elements of a CodeModel
.
A local variable load instruction is composite:
LoadInstruction
(
TypeKind typeKind
,
int slot
)
TypeKind
is computational, and slot
is within [0, 65535]
.- Since:
- 24
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionstatic LoadInstruction
Returns a local variable load instruction.static LoadInstruction
Returns a local variable load instruction.int
slot()
Returns the local variable slot to load from.typeKind()
Returns the computational type of the value to be loaded.Methods declared in interface java.lang.classfile.Instruction
opcode, sizeInBytes
-
Method Details
-
slot
int slot()Returns the local variable slot to load from. The value is within[0, 65535]
.- Returns:
- the local variable slot to load from
-
typeKind
TypeKind typeKind()Returns the computational type of the value to be loaded.- Returns:
- the computational type of the value to be loaded
-
of
Returns a local variable load instruction.kind
is converted to its computational type.slot
must be within[0, 65535]
.- Parameters:
kind
- the type of the value to be loadedslot
- the local variable slot to load from- Returns:
- a local variable load instruction
- Throws:
IllegalArgumentException
- ifkind
isvoid
orslot
is out of range
-
of
Returns a local variable load instruction.The range of
slot
is restricted by theop
and its size:- If
op
has size 1,slot
must be exactly the slot value implied by the opcode. - If
op
has size 2,slot
must be within[0, 255]
. - If
op
has size 4,slot
must be within[0, 65535]
.
- API Note:
- The explicit
op
argument allows creatingwide
or regular load instructions when theslot
can be encoded with more optimized load instructions. - Parameters:
op
- the opcode for the specific type of load instruction, which must be of kindOpcode.Kind.LOAD
slot
- the local variable slot to load from- Returns:
- a local variable load instruction
- Throws:
IllegalArgumentException
- if the opcode kind is notOpcode.Kind.LOAD
orslot
is out of range
- If
-