SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
Indirect Branch Using a Register
B(cc) dst
Functional unit = D
16 bit
15 | 13 | 12 | 11 | 10 | 9 | 0 |
dst | x | x | x | opcode |
3 | 10 |
Syntax | Opcode |
---|---|
B dst | 00 0111 1110 |
BLT dst | 01 0111 1110 |
BGT dst | 10 1111 1110 |
BEQ dst | 01 1111 1110 |
BLE dst | 11 0111 1110 |
BGE dst | 11 1111 1110 |
BNE dst | 10 0111 1110 |
Performs a branch to the address specified by the dst register. The contents of dst is treated as a byte address, it is converted to a halfword address before assigning to the PC. Note that the PC always contains a halfword address.
This instruction has one delay slot. See Section 8.2.A.3.1 for restrictions on scheduling an instruction in this delay slot.
For conditional branches, if the associated conditional (cc) bit is set in the control status register (CSR), the branch is taken; otherwise, the PC is incremented by 1. Valid values for cc are:
None
if (cond) PC = (*dst >> 1)
else PC = PC + 1