Interface BranchInstruction
- All Superinterfaces:
ClassFileElement
,CodeElement
,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 java.lang.classfile.Instruction
opcode, sizeInBytes
-
Method Details
-
target
Label target()Returns the branch target of this instruction.- Returns:
- the branch target of this instruction
-
of
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
-