Spec-Zone.ru › OpenJDK 24

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

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

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

RetInstruction(int slot)
где slot должно быть в пределах [0, 65535].

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

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

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

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

DiscontinuedInstruction.JsrInstruction, DiscontinuedInstruction.RetInstruction

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

Модификатор и тип Метод Описание
static DiscontinuedInstruction.RetInstruction of(int slot)
Возвращает инструкцию возврата из подпрограммы.
static DiscontinuedInstruction.RetInstruction of(Opcode op, int slot)
Возвращает инструкцию возврата из подпрограммы.
int slot()
Возвращает слот локальной переменной с адресом возврата.

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

opcode, sizeInBytes

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

slot

int slot()
Возвращает слот локальной переменной с адресом возврата. Значение находится в пределах [0, 65535].
Возвращает:
слот локальной переменной с адресом возврата

of

static DiscontinuedInstruction.RetInstruction of(Opcode op, int slot)
Возвращает инструкцию возврата из подпрограммы.

slot должно быть в закрытом диапазоне [0, 255] для ret, или в пределах [0, 65535] для wide ret.

Примечание API:
Явный аргумент op позволяет создавать инструкции wide ret с slot в диапазоне обычных инструкций ret.
Параметры:
op - операционный код для конкретного типа инструкции возврата из подпрограммы, который должен быть типа Opcode.Kind.DISCONTINUED_RET
slot - слот локальной переменной для загрузки адреса возврата
Возвращает:
инструкцию возврата из подпрограммы
Исключения:
IllegalArgumentException - если тип операционного кода не Opcode.Kind.DISCONTINUED_RET или если slot вне диапазона

of

static DiscontinuedInstruction.RetInstruction of(int slot)
Возвращает инструкцию возврата из подпрограммы.

slot должно быть в пределах [0, 65535].

Параметры:
slot - слот локальной переменной для загрузки адреса возврата
Возвращает:
инструкцию возврата из подпрограммы
Исключения:
IllegalArgumentException - если slot вне диапазона

© 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.RetInstruction.html

Spec-Zone.ru

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