MMIX LOGO

MMIX Instruction Set

Table of Content

Content

Bitwise Operations with 16-Bit Immediate values

Name:
ORH $X,YZ, ORMH $X,YZ, ORML $X,YZ, ORL $X,YZ
ANDNH $X,YZ,ANDNMH $X,YZ,ANDNML $X,YZ,ANDNL $X,YZ

Specification:

Below, operator ⊙ stands either for the And-Not (\) operation or the Or (|) operation:
ANDNH or ORH: $X ← $X ⊙ YZ×248
ANDNMH or ORMH: $X ← $X ⊙ YZ×232
ANDNML or ORML: $X ← $X ⊙ YZ×216
ANDNL or ORL: $X ← $X ⊙ YZ

Timing:

Description:

Bitwise operation on a 16-bit immediate value. Before the immediate wyde operand is used, it is shifted into one of the four possible positions of an octabyte.

ORH | ORMH | ORML | ORLThe 16-bit unsigned number YZ is shifted left by either 48 or 32 or 16 or 0 bits, respectively, and ored with register $X; the result is placed back into register $X.

Notice: Any desired 4-wyde constant GH IJ KL MN can be inserted into a register with a sequence of four instructions such as

SETH $X,GH; ORMH $X,IJ; ORML $X,KL; ORL $X,MN;

any of these OR instructions could also be replaced by INC.
ANDNH | ANDNMH | ANDNML | ANDNLThe 16-bit unsigned number YZ is shifted left by either 48 or 32 or 16 or 0 bits, respectively, then complemented and anded with register $X; the result is placed back into register $X.

If YZ is the hexadecimal constant #8000, the command ANDNH $X,YZ forces the most significant bit of register $X to be 0. This can be used to compute the absolute value of a floating point number.

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