Package serp.bytecode

Class JumpInstruction

    • Constructor Detail

      • JumpInstruction

        JumpInstruction​(Code owner,
                        int opcode)
    • Method Detail

      • getTarget

        public Instruction getTarget()
        Get the current target instruction to jump to, if it has been set.
      • setTarget

        public JumpInstruction setTarget​(Instruction instruction)
        Set the instruction to jump to; the instruction must already be added to the code block.
        Returns:
        this instruction, for method chaining
      • equalsInstruction

        public boolean equalsInstruction​(Instruction other)
        JumpInstructions are equal if they represent the same operation and the instruction they jump to is the same, or if the jump Instruction of either is unset.
        Overrides:
        equalsInstruction in class Instruction
      • updateTargets

        public void updateTargets()
        Description copied from interface: InstructionPtr
        Use the byte indexes read from the class file to calculate and set references to the target instruction(s) for this ptr. This method will be called after the byte code has been read in for the first time and before it is written after modification.
        Specified by:
        updateTargets in interface InstructionPtr
      • replaceTarget

        public void replaceTarget​(Instruction oldTarget,
                                  Instruction newTarget)
        Description copied from interface: InstructionPtr
        Replace the given old, likely invalid, target with a new target. The new target Instruction is guaranteed to be in the same code block as this InstructionPtr.
        Specified by:
        replaceTarget in interface InstructionPtr
      • acceptVisit

        public void acceptVisit​(BCVisitor visit)
        Description copied from interface: VisitAcceptor
        Accept a visit from a BCVisitor, calling the appropriate methods to notify the visitor that it has entered this entity, and to provide it with the proper callbacks for each sub-entity owned by this one.
        Specified by:
        acceptVisit in interface VisitAcceptor
        Overrides:
        acceptVisit in class Instruction
      • read

        void read​(java.io.DataInput in)
           throws java.io.IOException
        Description copied from class: Instruction
        Read the arguments for this opcode from the given stream. This method should be overridden by opcodes that take arguments.
        Overrides:
        read in class Instruction
        Throws:
        java.io.IOException
      • write

        void write​(java.io.DataOutput out)
            throws java.io.IOException
        Description copied from class: Instruction
        Write the arguments for this opcode to the given stream. This method should be overridden by opcodes that take arguments.
        Overrides:
        write in class Instruction
        Throws:
        java.io.IOException
      • setOffset

        public void setOffset​(int offset)
      • getOffset

        public int getOffset()