Spec-Zone.ru › OpenJDK 25

Interface BranchInstruction

All Superinterfaces:
ClassFileElement, CodeElement, Instruction
public sealed interface BranchInstruction extends Instruction
Models a branching instruction (conditional or unconditional) in the code array of a Code attribute. Corresponding opcodes have a kind of Opcode.Kind.BRANCH. Delivered as a CodeElement when traversing the elements of a CodeModel.

A branch instruction is composite:

BranchInstruction(
    Opcode opcode,
    Label target
)

Due to physical restrictions, some types of instructions cannot encode labels too far away in the list of code elements. In such cases, the ClassFile.ShortJumpsOption controls how an invalid branch instruction model is written by a CodeBuilder.

Since:
24
See Also:
  • Opcode.Kind.BRANCH
  • CodeBuilder::branch
  • ClassFile.ShortJumpsOption

Method Summary

Modifier and Type Method Description
static BranchInstruction of(Opcode op, Label target)
Returns a branch instruction.
Label target()
Returns the branch target of this instruction.

Methods declared in interface Instruction

opcode, sizeInBytes

Method Details

target

Label target()
Returns the branch target of this instruction.
Returns:
the branch target of this instruction

of

static BranchInstruction of(Opcode op, Label target)
Returns a branch instruction.
Parameters:
op - the opcode for the specific type of branch instruction, which must be of kind Opcode.Kind.BRANCH
target - the target of the branch
Returns:
a branch instruction
Throws:
IllegalArgumentException - if the opcode kind is not Opcode.Kind.BRANCH

Report a bug or suggest an enhancement
For further API reference and developer documentation see the Java SE Documentation, which contains more detailed, developer-targeted descriptions with conceptual overviews, definitions of terms, workarounds, and working code examples. Other versions.
Java is a trademark or registered trademark of Oracle and/or its affiliates in the US and other countries.
Copyright © 1993, 2025, Oracle and/or its affiliates, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
All rights reserved. Use is subject to license terms and the documentation redistribution policy.

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

Spec-Zone.ru

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