Class VariableInstruction


  • public class VariableInstruction
    extends Instruction
    This Instruction represents an instruction that refers to a variable on the local variable stack.
    • Field Detail

      • wide

        public boolean wide
      • variableIndex

        public int variableIndex
      • constant

        public int constant
    • Constructor Detail

      • VariableInstruction

        public VariableInstruction()
        Creates an uninitialized VariableInstruction.
      • VariableInstruction

        public VariableInstruction​(boolean wide)
      • VariableInstruction

        public VariableInstruction​(byte opcode)
      • VariableInstruction

        public VariableInstruction​(byte opcode,
                                   int variableIndex)
      • VariableInstruction

        public VariableInstruction​(byte opcode,
                                   int variableIndex,
                                   int constant)
    • Method Detail

      • copy

        public VariableInstruction copy​(VariableInstruction variableInstruction)
        Copies the given instruction into this instruction.
        Parameters:
        variableInstruction - the instruction to be copied.
        Returns:
        this instruction.
      • isStore

        public boolean isStore()
        Returns whether this instruction stores the value of a variable. The value is false for the ret instruction, but true for the iinc instruction.
      • isLoad

        public boolean isLoad()
        Returns whether this instruction loads the value of a variable. The value is true for the ret instruction and for the iinc instruction.
      • canonicalOpcode

        public byte canonicalOpcode()
        Description copied from class: Instruction
        Returns the canonical opcode of this instruction, i.e. typically the opcode whose extension has been removed.
        Overrides:
        canonicalOpcode in class Instruction
      • shrink

        public Instruction shrink()
        Description copied from class: Instruction
        Shrinks this instruction to its shortest possible form.
        Specified by:
        shrink in class Instruction
        Returns:
        this instruction.
      • isWide

        protected boolean isWide()
        Description copied from class: Instruction
        Returns whether the instruction is wide, i.e. preceded by a wide opcode. With the current specifications, only variable instructions can be wide.
        Overrides:
        isWide in class Instruction
      • readInfo

        protected void readInfo​(byte[] code,
                                int offset)
        Description copied from class: Instruction
        Reads the data following the instruction opcode.
        Specified by:
        readInfo in class Instruction
      • writeInfo

        protected void writeInfo​(byte[] code,
                                 int offset)
        Description copied from class: Instruction
        Writes data following the instruction opcode.
        Specified by:
        writeInfo in class Instruction
      • length

        public int length​(int offset)
        Description copied from class: Instruction
        Returns the length in bytes of the instruction.
        Specified by:
        length in class Instruction
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object o)
        Specified by:
        equals in class Instruction