Spec-Zone.ru › OpenJDK 24

Интерфейс DiscontinuedInstruction.JsrInstruction

Все суперинтерфейсы:
ClassFileElement, CodeElement, DiscontinuedInstruction, Instruction
Включающий интерфейс:
DiscontinuedInstruction
public static sealed interface DiscontinuedInstruction.JsrInstruction extends DiscontinuedInstruction
Моделирует инструкции перехода к подпрограммам, исключённые из массива code атрибута Code начиная с версии .class major 51 (JVMS 4.9.1). Соответствующие опера коды имеют вид Opcode.Kind.DISCONTINUED_JSR. Передаётся как CodeElement при обходе элементов CodeModel.

Инструкция перехода к подпрограмме является составной:

JsrInstruction(Label target)

Из-за физических ограничений, инструкции jsr не могут кодировать метки, находящиеся слишком далеко в списке элементов кода. В таких случаях, ClassFile.ShortJumpsOption управляет тем, как CodeBuilder моделирует недействительную инструкцию jsr.

Инструкции перехода к подпрограмме помещают значение returnAddress в стек операндов, и серия инструкций astore затем может сохранить это значение в ячейку локальной переменной.

Примечание API:
Инструкции перехода к подпрограммам приостановлены для обеспечения проверки с помощью проверки типов (JVMS 4.10.1) с использованием атрибута StackMapTable.
С тех пор:
24
См. также:
  • Opcode.Kind.DISCONTINUED_JSR
  • StackMapTableAttribute

Краткое описание вложенных классов

Вложенные классы/интерфейсы, объявленные в интерфейсе java.lang.classfile.instruction.DiscontinuedInstruction

DiscontinuedInstruction.JsrInstruction, DiscontinuedInstruction.RetInstruction

Краткое описание методов

Модификатор и тип Метод Описание
static DiscontinuedInstruction.JsrInstruction of(Label target)
Возвращает инструкцию перехода к подпрограмме.
static DiscontinuedInstruction.JsrInstruction of(Opcode op, Label target)
Возвращает инструкцию перехода к подпрограмме.
Label target()
Возвращает цель инструкции перехода к подпрограмме.

Методы, объявленные в интерфейсе java.lang.classfile.Instruction

opcode, sizeInBytes

Подробное описание методов

target

Label target()
Возвращает цель инструкции перехода к подпрограмме.
Возвращает:
цель инструкции перехода к подпрограмме

of

static DiscontinuedInstruction.JsrInstruction of(Opcode op, Label target)
Возвращает инструкцию перехода к подпрограмме.
Примечание API:
Явное аргумент op позволяет создавать инструкции jsr_w для избежания коротких переходов.
Параметры:
op - опера-код для конкретного типа инструкции перехода к подпрограмме, который должен быть вида Opcode.Kind.DISCONTINUED_JSR
target - целевая метка подпрограммы
Возвращает:
инструкцию перехода к подпрограмме
Исключения:
IllegalArgumentException - если вид опера-кода не Opcode.Kind.DISCONTINUED_JSR.

of

static DiscontinuedInstruction.JsrInstruction of(Label target)
Возвращает инструкцию перехода к подпрограмме.
Параметры:
target - целевая метка подпрограммы
Возвращает:
инструкцию перехода к подпрограмме

© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/lang/classfile/instruction/DiscontinuedInstruction.JsrInstruction.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API