ClassFileElement, CodeElement, DiscontinuedInstruction, InstructionDiscontinuedInstructionpublic static sealed interface DiscontinuedInstruction.JsrInstruction 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_JSR. Delivered as a CodeElement when traversing the elements of a CodeModel. A jump subroutine instruction is composite:
JsrInstruction(Label target)
Due to physical restrictions, jsr instructions cannot encode labels too far away in the list of code elements. In such cases, the ClassFile.ShortJumpsOption controls how an invalid jsr instruction model is written by a CodeBuilder.
Jump subroutine instructions push a returnAddress value to the operand stack, and astore series of instructions can then store this value to a local variable slot.
StackMapTable attribute.DiscontinuedInstruction.JsrInstruction, DiscontinuedInstruction.RetInstruction
| Modifier and Type | Method | Description |
|---|---|---|
static DiscontinuedInstruction.JsrInstruction |
of |
Returns a jump subroutine instruction. |
static DiscontinuedInstruction.JsrInstruction |
of |
Returns a jump subroutine instruction. |
Label |
target() |
Returns the target of the jump subroutine instruction. |
opcode, sizeInBytes
Label target()
static DiscontinuedInstruction.JsrInstruction of(Opcode op, Label target)
op argument allows creating jsr_w instructions to avoid short jumps.op - the opcode for the specific type of jump subroutine instruction, which must be of kind Opcode.Kind.DISCONTINUED_JSR
target - target label of the subroutineIllegalArgumentException - if the opcode kind is not Opcode.Kind.DISCONTINUED_JSR.static DiscontinuedInstruction.JsrInstruction of(Label target)
target - target label of the subroutine
© 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.JsrInstruction.html