Интерфейс 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
- См. также:
Краткое описание вложенных классов
Вложенные классы и интерфейсы, объявленные в интерфейсе DiscontinuedInstruction
DiscontinuedInstruction.JsrInstruction, DiscontinuedInstruction.RetInstruction
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static DiscontinuedInstruction.RetInstruction |
of |
Возвращает инструкцию возврата из подпрограммы. |
static DiscontinuedInstruction.RetInstruction |
of |
Возвращает инструкцию возврата из подпрограммы. |
int |
slot() |
Возвращает слот локальной переменной с адресом возврата. |
Методы, объявленные в интерфейсе 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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/classfile/instruction/DiscontinuedInstruction.RetInstruction.html