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 u2. 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 Summary
Nested classes/interfaces declared in interface DiscontinuedInstruction
DiscontinuedInstruction.JsrInstruction, DiscontinuedInstruction.RetInstruction | Modifier and Type | Interface | Description |
|---|---|---|
static interface |
DiscontinuedInstruction.JsrInstruction |
|
static interface |
DiscontinuedInstruction.RetInstruction |
Method Summary
| Modifier and Type | Method | Description |
|---|---|---|
static DiscontinuedInstruction.RetInstruction |
of |
Returns a return from subroutine instruction. |
static DiscontinuedInstruction.RetInstruction |
of |
Returns a return from subroutine instruction. |
int |
slot() |
Returns the local variable slot with return address. |
Methods declared in interface Instruction
opcode, sizeInBytes | Modifier and Type | Method | Description |
|---|---|---|
Opcode |
opcode() |
Returns the operation of this instruction. |
int |
sizeInBytes() |
Returns the size in bytes of this instruction. |
Method Details
slot
int slot()
Returns the local variable slot with return address. It is a
u2 value.- Returns:
- the local variable slot with return address
of
static DiscontinuedInstruction.RetInstruction of(Opcode op, int slot)
- 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 kindOpcode.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 notOpcode.Kind.DISCONTINUED_RETor ifslotis out of range
of
static DiscontinuedInstruction.RetInstruction of(int slot)
Returns a return from subroutine instruction.
slot must be u2.
- Parameters:
-
slot- the local variable slot to load return address from - Returns:
- a return from subroutine instruction
- Throws:
-
IllegalArgumentException- ifslotis notu2
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.