NEG and NEGU

Name:
NEG $X,Y,$Z NEG $X,Y,Z
NEGU $X,Y,$ZNEGU $X,Y,Z

Specification:
NEG: s($X) ← Y - s($Z)
NEGU: u($X) ← (Y - u($Z)) mod 264

Timing:

Description:

Y is a nonnegative constant, usually zero. If Y has the value zero, it can be omitted. The instruction is used to negate $Z.

NEG:The value Y - $Z or Y - Z is placed into register $X using signed, two's complement arithmetic. An integer overflow exception occurs if the result is greater than 263 - 1. (Notice that in this case MMIX works with the "immediate" constant Y, not register $Y. NEG commands are analogous to the immediate variants of other commands, because they save us from having to put one-byte constants into a register. When Y = 0, overflow occurs if and only if $Z = -263 . The instruction NEG $X,1,2 has exactly the same effect as NEG $X,0,1)
NEGU:The value (Y - $Z) mod 264 or (Y - Z) mod 264 is placed into register $X. NEGU instructions are the same as NEG instructions, except that no test for overflow is made.