According to NEG and NEGU definitions,
NEG $X,Y,$Z (negate signed): s($X) := Y - s($Z).
NEGU $X,Y,$Z (negate unsigned): u($X) := (Y - u($Z)) mod 2^64.
Let's suppose $Z = s(-1) or u(2^64 - 1). Then the first opcode is going to put value 1 into the $X register when Y = 0, and the recent one will give the same result because u(-(2^64 - 1)) mod 2^64 = 1. Am i correct? Should NEG instruction raise overflow exception when $Z = -2^63?