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:
Method Summary
Methods declared in interface Instruction
opcode, sizeInBytes | Modifier and Type | Method | Description |
|---|---|---|
Opcode |
opcode() |
Returns the operation of this instruction. |
int |
sizeInBytes() |
Returns the size in bytes of this instruction. |
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 kindOpcode.Kind.BRANCH -
target- the target of the branch - Returns:
- a branch instruction
- Throws:
-
IllegalArgumentException- if the opcode kind is notOpcode.Kind.BRANCH
© 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.