Interface IncrementInstruction
- All Superinterfaces:
ClassFileElement, CodeElement, Instruction
Models a local variable increment instruction in the
where
code array of a
Code attribute. Corresponding opcodes have a kind of Opcode.Kind.INCREMENT. Delivered as a CodeElement when
traversing the elements of a CodeModel.
A local variable increment instruction is composite:
IncrementInstruction(
int slot,
int constant
)
slotmust beu2.constantmust be within[-32768, 32767].
- See Java Virtual Machine Specification:
-
6.5.iinc iinc
- Since:
- 24
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionintconstant()Returns the value to increment by.static IncrementInstructionof(int slot, int constant) Returns an increment instruction.static IncrementInstructionReturns an increment instruction.intslot()Returns the local variable slot to increment.Methods declared in interface Instruction
opcode, sizeInBytesModifier and TypeMethodDescriptionopcode()Returns the operation of this instruction.intReturns the size in bytes of this instruction.
-
Method Details
-
slot
int slot()Returns the local variable slot to increment.- Returns:
- the local variable slot to increment
-
constant
int constant()Returns the value to increment by.- Returns:
- the value to increment by
-
of
Returns an increment instruction.slotmust beu2.constantmust be within[-32768, 32767].
- Parameters:
slot- the local variable slot to incrementconstant- the value to increment by- Returns:
- an increment instruction
- Throws:
IllegalArgumentException- ifslotorconstantis out of range
-
of
Returns an increment instruction.slotmust beu1andconstantmust be within[-128, 127]foriinc, orslotmust beu2andconstantmust be within[-32768, 32767]forwide iinc.- API Note:
- The explicit
opargument allows creatingwideor regular increment instructions whenslotandconstantcan be encoded with more optimized increment instructions. - Parameters:
op- the opcode for the specific type of increment instruction, which must be of kindOpcode.Kind.INCREMENTslot- the local variable slot to incrementconstant- the increment constant- Returns:
- an increment instruction
- Throws:
IllegalArgumentException- if the opcode kind is notOpcode.Kind.INCREMENTorslotorconstantis out of range- Since:
- 27
-