Encoding:

BC16

110011

offset

6

10

Format:

BC16 offset 

microMIPS Release 6

Unconditional Branch Compact (16-bit instr size)

Purpose:

Unconditional Branch Compact (16-bit instr size)

To do an unconditional branch

Description: branch

A 11-bit signed offset (the 10-bit offset field shifted left 1 bits) is added to the address of the instruction following the branch (not the branch itself) to form a PC-relative effective target address.

Compact branches do not have delay slots. The instruction after the branch is NOT executed when the branch is taken.

Restrictions:

Any instruction, including a branch or jump, may immediately follow a branch or jump, that is, delay slot restrictions do not apply in Release 6.

Operation:

   target_offset = sign_extend(offset || 01)
   PC = PC + 2 + target_offset

Exceptions:

None

Programming Notes:

With the 11-bit signed instruction offset, the branch range is ± 1 Kbytes. Use jump (JRC16 or JIC) or 32-bit branch instructions to branch to addresses outside this range.