Spec-Zone.ru › OpenJDK 24

Интерфейс 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()
Возвращает вычислительный тип значения, которое нужно сохранить.

Методы, объявленные в интерфейсе java.lang.classfile.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 США.
Все права защищены. Использование регулируется условиями лицензии и политикой перераспределения документации.
DRAFT 24-ea+36-Debian-1

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

Spec-Zone.ru

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