Interface DiscontinuedInstruction.RetInstruction
- All Superinterfaces:
- ClassFileElement, CodeElement, DiscontinuedInstruction, Instruction
- Enclosing interface:
- DiscontinuedInstruction
public static sealed interface DiscontinuedInstruction.RetInstruction
extends DiscontinuedInstruction
Models return from subroutine instructions discontinued from the 
where 
code array of a Code attribute since class file major version
51 (JVMS 4.9.1).
Corresponding opcodes have a kind of
Opcode.Kind.DISCONTINUED_RET.  Delivered as a CodeElement
when traversing the elements of a CodeModel.
A return from subroutine instruction is composite:
RetInstruction(int slot)
slot must be within [0, 65535].
astore series of instructions store a returnAddress value to a local variable slot,
making the slot usable by a return from subroutine instruction.
- API Note:
- Return from subroutine instructions are discontinued to enforce
verification by type checking (JVMS 4.10.1) using the StackMapTableattribute.
- See Java Virtual Machine Specification:
- 
6.5.ret ret
- Since:
- 24
- See Also:
- 
Nested Class SummaryNested classes/interfaces declared in interface DiscontinuedInstructionDiscontinuedInstruction.JsrInstruction, DiscontinuedInstruction.RetInstruction
- 
Method SummaryMethods declared in interface Instructionopcode, sizeInBytes
- 
Method Details- 
slotint slot()Returns the local variable slot with return address. The value is within[0, 65535].- Returns:
- the local variable slot with return address
 
- 
ofReturns a return from subroutine instruction.slotmust be in the closed range of[0, 255]forret, or within[0, 65535]forwide ret.- API Note:
- The explicit opargument allows creatingwide retinstructions withslotin the range of regularretinstructions.
- Parameters:
- op- the opcode for the specific type of return from subroutine instruction, which must be of kind- Opcode.Kind.DISCONTINUED_RET
- slot- the local variable slot to load return address from
- Returns:
- a return from subroutine instruction
- Throws:
- IllegalArgumentException- if the opcode kind is not- Opcode.Kind.DISCONTINUED_RETor if- slotis out of range
 
- 
ofReturns a return from subroutine instruction.slotmust be within[0, 65535].- Parameters:
- slot- the local variable slot to load return address from
- Returns:
- a return from subroutine instruction
- Throws:
- IllegalArgumentException- if- slotis out of range
 
 
-