Class BranchInstruction

    • Field Detail

      • index

        protected int index
      • position

        protected int position
    • Constructor Detail

      • BranchInstruction

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

      • dump

        public void dump​(java.io.DataOutputStream out)
                  throws java.io.IOException
        Dump instruction as byte code to stream out.
        Overrides:
        dump in class Instruction
        Parameters:
        out - Output stream
        Throws:
        java.io.IOException
      • 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 java.lang.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 java.io.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:
        java.io.IOException
        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