Package serp.bytecode

Class GotoInstruction

All Implemented Interfaces:
BCEntity, InstructionPtr, VisitAcceptor

public class GotoInstruction extends JumpInstruction
An instruction that specifies a position in the code block to jump to. Examples include go2, jsr, etc.
  • Constructor Details

    • GotoInstruction

      GotoInstruction(Code owner, int opcode)
  • Method Details

    • getStackChange

      public int getStackChange()
      Description copied from class: Instruction
      Return the number of stack positions this instruction pushes or pops during its execution.
      Overrides:
      getStackChange in class Instruction
      Returns:
      0 if the stack is not affected by this instruction, a positive number if it pushes onto the stack, and a negative number if it pops from the stack
    • getLength

      int getLength()
      Description copied from class: Instruction
      Return the length in bytes of this opcode, including all arguments. For many opcodes this method relies on an up-to-date byte index.
      Overrides:
      getLength in class Instruction
    • setOffset

      public void setOffset(int offset)
      Overrides:
      setOffset in class JumpInstruction
    • calculateOpcode

      private void calculateOpcode()
      Calculate our opcode based on the offset size.