Интерфейс 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 должно быть u2. Серия инструкций astore сохраняет значение returnAddress в слот локальной переменной, делая этот слот доступным для инструкции возврата из подпрограммы.
- Примечание API:
- Инструкции возврата из подпрограмм исключены, чтобы обеспечить проверку типов (JVMS §4.10.1) с помощью атрибута
StackMapTable. - См. Спецификация виртуальной машины Java:
- 6.5.ret ret
- Начиная с:
- 24
- См. также:
Краткое описание вложенных классов
Вложенные классы и интерфейсы, объявленные в интерфейсе DiscontinuedInstruction
DiscontinuedInstruction.JsrInstruction, DiscontinuedInstruction.RetInstruction | Модификатор и тип | Интерфейс | Описание |
|---|---|---|
static interface |
DiscontinuedInstruction.JsrInstruction |
|
static interface |
DiscontinuedInstruction.RetInstruction |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static DiscontinuedInstruction.RetInstruction |
of |
Возвращает инструкцию возврата из подпрограммы. |
static DiscontinuedInstruction.RetInstruction |
of |
Возвращает инструкцию возврата из подпрограммы. |
int |
slot() |
Возвращает слот локальной переменной, содержащий адрес возврата. |
Методы, объявленные в интерфейсе Instruction
opcode, sizeInBytes | Модификатор и тип | Метод | Описание |
|---|---|---|
Opcode |
opcode() |
Возвращает операцию этой инструкции. |
int |
sizeInBytes() |
Возвращает размер этой инструкции в байтах. |
Подробное описание методов
slot
int slot()
Возвращает слот локальной переменной, содержащий адрес возврата. Это значение
u2.- Возвращает:
- слот локальной переменной, содержащий адрес возврата
of
static DiscontinuedInstruction.RetInstruction of(Opcode op, int slot)
- Примечание 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 должно быть u2.
- Параметры:
-
slot— слот локальной переменной, из которого загружается адрес возврата - Возвращает:
- инструкцию возврата из подпрограммы
- Вызывает исключение:
-
IllegalArgumentException— еслиslotне являетсяu2
© 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.