BZ $X,YZ | PBZ $X,YZ | (Probable) Branch if zero |
BNZ $X,YZ | PBNZ $X,YZ | (Probable) Branch if nonzero |
BN $X,YZ | PBN $X,YZ | (Probable) Branch if negative |
BNN $X,YZ | PBNN $X,YZ | (Probable) Branch if nonnegative |
BP $X,YZ | PBP $X,YZ | (Probable) Branch if positive |
BNP $X,YZ | PBNP $X,YZ | (Probable) Branch if nonpositive |
BOD $X,YZ | PBOD $X,YZ | (Probable) Branch if odd |
BEV $X,YZ | PBEV $X,YZ | (Probable) Branch if even |
Specification:
With RA ← @+4*YZ for forward branches
and RA ← @+4*(YZ-216) for backward branches, we have:
BZ: @ | ← RA, | if s($X) = 0 |
BNZ:@ | ← RA, | if s($X)≠0 |
BN: @ | ← RA, | if s($X) < 0 |
BNN:@ | ← RA, | if s($X) ≥ 0 |
BP: @ | ← RA, | if s($X) > 0 |
BNP: @ | ← RA, | if s($X) ≤ 0 |
BOD: @ | ← RA, | if s($X) mod 2 = 1, d.h. s($X) odd |
BEV: @ | ← RA, | if s($X) mod 2 = 0, d.h. s($X) even |
Timing:
1υ, in case the branch prediction logic makes a correct prediction (good guess), and 3υ otherwise (bad guess).
Description:
Conditional Branches. The assembler determines automatically, whether the branch is forward or backward and chooses the appropriate instruction. Probable branches, with the prefix "P" are a hint for the processor that the branch is probably taken, directing the instruction fetch to the target address.