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 u2.- 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 Instruction
opcode, sizeInBytesModifier and TypeMethodDescriptionopcode()Returns the operation of this instruction.intReturns the size in bytes of this instruction.
-
Method Details
-
slot
int slot()Returns the local variable slot to load from. It is au2value.- 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 au2value.- 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 notu2
-
of
Returns a local variable load instruction.The range of
slotis restricted by theopand its size:- 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
-