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.