BC16 110011 |
offset |
6 |
10 |
BC16 offset |
microMIPS Release 6 |
Unconditional Branch Compact (16-bit instr size) |
Unconditional Branch Compact (16-bit instr size)
To do an unconditional 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.
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.
target_offset = sign_extend(offset || 01) PC = PC + 2 + target_offset
None
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.