Accelerator Manual Data Alignment Addendum
Misalignments in TNS and Accelerated Modes
Accelerator Manual Data Alignment Addendum—524963-001
4-2
The varying behaviors and symptoms that misalignment errors cause can be
confusing, for the following reasons:
•
A source program can produce erroneous TNS object code that seems to execute
correctly until you change the source program in an apparently innocent way.
•
The program might behave differently in TNS mode than it does in accelerated
mode. (Neither mode is better at avoiding alignment problems.)
•
The debugger might display a different value for a variable than the program sees,
because the debugger never “rounds down” addresses.
•
The program might “round down” addresses for storage operations but not for
subsequent retrieval operations of the same misaligned operand (or the reverse).
To avoid these confusing behaviors:
•
Use pointer conversions as recommended for the source code language so that
TNS word instructions are never applied to odd-byte addresses.
•
Set the system’s SCF attribute TNSMISALIGN to either FAIL or NOROUND (see
Table 3-1 on page 3-1). FAIL can be unsafe on production systems, but is
recommended on test systems.