Spec-Zone.ru › OpenJDK 25

Интерфейс StoreInstruction

Все суперинтерфейсы:
ClassFileElement, CodeElement, Instruction
public sealed interface StoreInstruction extends Instruction
Моделирует инструкцию сохранения локальной переменной в массиве code атрибута Code. Соответствующие коды операций имеют тип Opcode.Kind.STORE. Передаётся как CodeElement при обходе элементов CodeModel.

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

StoreInstruction(
    TypeKind typeKind,
    int slot
)
где TypeKind является вычислительным типом, а slot находится в пределах [0, 65535].

astore последовательность инструкций или инструкции сохранения типа reference также могут работать с типом returnAddress из устаревших инструкций перехода к подпрограмме.

Начиная с:
24
См. также:
  • Opcode.Kind.STORE
  • CodeBuilder::storeLocal

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

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

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

opcode, sizeInBytes

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

slot

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

typeKind

TypeKind typeKind()
Возвращает вычислительный тип сохраняемого значения. Инструкции сохранения типа reference также работают с типом returnAddress, в отличие от инструкций загрузки типа reference.
Возвращает:
вычислительный тип сохраняемого значения

of

static StoreInstruction of(TypeKind kind, int slot)
Возвращает инструкцию сохранения локальной переменной. kind преобразуется в свой вычислительный тип. slot должно находиться в пределах [0, 65535].
Параметры:
kind — тип сохраняемого значения
slot — слот локальной переменной, в который выполняется сохранение
Возвращает:
инструкцию сохранения локальной переменной
Выбрасывает:
IllegalArgumentException — если kind имеет значение void или slot выходит за допустимый диапазон

of

static StoreInstruction of(Opcode op, int slot)
Возвращает инструкцию сохранения локальной переменной.

Диапазон slot ограничен op и его размером:

  • Если размер op равен 1, slot должен точно соответствовать значению слота, заданному кодом операции.
  • Если размер op равен 2, slot должен находиться в пределах [0, 255].
  • Если размер op равен 4, slot должен находиться в пределах [0, 65535].
Примечание к API:
Явный аргумент op позволяет создавать инструкции wide или обычные инструкции сохранения, если slot можно закодировать с помощью более оптимизированных инструкций сохранения.
Параметры:
op — код операции для инструкции сохранения конкретного типа; он должен иметь тип Opcode.Kind.STORE
slot — слот локальной переменной, в который выполняется сохранение
Возвращает:
инструкцию сохранения локальной переменной
Выбрасывает:
IllegalArgumentException — если тип кода операции не является Opcode.Kind.STORE или slot выходит за допустимый диапазон

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, включая концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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/StoreInstruction.html

Spec-Zone.ru

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