MMIX LOGO

MMIX Instruction Set

Table of Content

Content

Branches

Name:
BZ $X,YZ PBZ $X,YZ (Probable) Branch if zero
BNZ $X,YZPBNZ $X,YZ(Probable) Branch if nonzero
BN $X,YZ PBN $X,YZ (Probable) Branch if negative
BNN $X,YZPBNN $X,YZ(Probable) Branch if nonnegative
BP $X,YZ PBP $X,YZ (Probable) Branch if positive
BNP $X,YZPBNP $X,YZ(Probable) Branch if nonpositive
BOD $X,YZPBOD $X,YZ(Probable) Branch if odd
BEV $X,YZPBEV $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.

See also:

General Information

Please help to keep this site up to date! If you want to point out important material or projects that are not listed here, if you find errors or want to suggest improvements, please send email to email