ClassFileElement, CodeElement, DiscontinuedInstruction, InstructionDiscontinuedInstructionpublic static sealed interface DiscontinuedInstruction.RetInstruction extends DiscontinuedInstruction
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.
StackMapTable attribute.DiscontinuedInstruction.JsrInstruction, DiscontinuedInstruction.RetInstruction
| 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. |
opcode, sizeInBytes
int slot()
[0, 65535].static DiscontinuedInstruction.RetInstruction of(Opcode op, int slot)
slot must be in the closed range of [0, 255] for ret, or within [0, 65535] for wide ret.
op argument allows creating wide ret instructions with slot in the range of regular ret instructions.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 fromIllegalArgumentException - if the opcode kind is not Opcode.Kind.DISCONTINUED_RET or if slot is out of rangestatic DiscontinuedInstruction.RetInstruction of(int slot)
slot must be within [0, 65535].
slot - the local variable slot to load return address fromIllegalArgumentException - if slot is out of range
© 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/classfile/instruction/DiscontinuedInstruction.RetInstruction.html