The behavior of LCR, LNR and LPR have not changed since the
introduction of the S/360.  Here are some quotes from GA22-6821 "IBM
System/360 Principles of Operation:"

For LCR:
"An overflow condition occurs when the maximum negative number is
complemented; the number remains unchanged."

For LNR:
"The operation complements positive numbers; negative numbers remain
unchanged.  The number zero remains unchanged."

For LPR:
"An overflow condition occurs when the maximum negative number is
complemented; the number remains unchanged."

The description of the behavior of these instructions as found in
SA22-7832 "z/Architecture Principles of Operation" when the operands
are both the same size (both are 32-bits or both are 64-bits)
matches the S/360 behavior.

For LCGFR and LPGFR the first operand is 64-bits and the second
operand is 32-bits.  These instructions process the maximum 32-bit
negative number without recognizing an overflow, i.e., the maximum
negative 32-bit number can be complemented and represented correctly
as a 64-bit result.

Reply via email to