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 LoadInstructionReturns a local variable load instruction.static LoadInstructionReturns a local variable load instruction.intslot()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.kindis converted to its computational type.slotmust 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- ifkindisvoidorslotis out of range
-
of
Returns a local variable load instruction.The range of
slotis restricted by theopand its size:- If
ophas size 1,slotmust be exactly the slot value implied by the opcode. - If
ophas size 2,slotmust be within[0, 255]. - If
ophas size 4,slotmust be within[0, 65535].
- API Note:
- The explicit
opargument allows creatingwideor regular load instructions when theslotcan be encoded with more optimized load instructions. - Parameters:
op- the opcode for the specific type of load instruction, which must be of kindOpcode.Kind.LOADslot- the local variable slot to load from- Returns:
- a local variable load instruction
- Throws:
IllegalArgumentException- if the opcode kind is notOpcode.Kind.LOADorslotis out of range
- If
-