Class BranchInstruction

    • Field Detail

      • index

        @Deprecated
        protected int index
        Deprecated.
        (since 6.0) will be made private; do not access directly, use getter/setter
      • target

        @Deprecated
        protected InstructionHandle target
        Deprecated.
        (since 6.0) will be made private; do not access directly, use getter/setter
      • position

        @Deprecated
        protected int position
        Deprecated.
        (since 6.0) will be made private; do not access directly, use getter/setter
    • Constructor Detail

      • BranchInstruction

        protected BranchInstruction​(short opcode,
                                    InstructionHandle target)
        Common super constructor
        Parameters:
        opcode - Instruction opcode
        target - instruction to branch to
    • Method Detail

      • getTargetOffset

        protected int getTargetOffset​(InstructionHandle _target)
        Parameters:
        _target - branch target
        Returns:
        the offset to `target' relative to this instruction
      • getTargetOffset

        protected int getTargetOffset()
        Returns:
        the offset to this instruction's target
      • updatePosition

        protected int updatePosition​(int offset,
                                     int max_offset)
        Called by InstructionList.setPositions when setting the position for every instruction. In the presence of variable length instructions `setPositions' performs multiple passes over the instruction list to calculate the correct (byte) positions and offsets by calling this function.
        Parameters:
        offset - additional offset caused by preceding (variable length) instructions
        max_offset - the maximum offset that may be caused by these instructions
        Returns:
        additional offset caused by possible change of this instruction's length
      • toString

        public String toString​(boolean verbose)
        Long output format: <position in byte code> <name of opcode> "["<opcode number>"]" "("<length of instruction>")" "<"<target instruction>">" "@"<branch target offset>
        Overrides:
        toString in class Instruction
        Parameters:
        verbose - long/short format switch
        Returns:
        mnemonic for instruction
      • initFromFile

        protected void initFromFile​(ByteSequence bytes,
                                    boolean wide)
                             throws IOException
        Read needed data (e.g. index) from file. Conversion to a InstructionHandle is done in InstructionList(byte[]).
        Overrides:
        initFromFile in class Instruction
        Parameters:
        bytes - input stream
        wide - wide prefix?
        Throws:
        IOException - may be thrown if the implementation needs to read data from the file
        See Also:
        InstructionList
      • getIndex

        public final int getIndex()
        Returns:
        target offset in byte code
      • getTarget

        public InstructionHandle getTarget()
        Returns:
        target of branch instruction
      • setTarget

        public void setTarget​(InstructionHandle target)
        Set branch target
        Parameters:
        target - branch target
      • getPosition

        protected int getPosition()
        Returns:
        the position
        Since:
        6.0
      • setPosition

        protected void setPosition​(int position)
        Parameters:
        position - the position to set
        Since:
        6.0
      • setIndex

        protected void setIndex​(int index)
        Parameters:
        index - the index to set
        Since:
        6.0