Accelerator Manual (G06.27+, H06.04+, J06.03+)

Preparing Your Program for TNS/R Systems
Accelerator Manual527303-003
2-4
Supported Operating System Release
Supported Operating System Release
TNS/R systems support C30.06 and later releases of the operating system. If a
program that ran correctly on a TNS system prior to the C30 release runs incorrectly
on a TNS/R system, verify that changes made in the C30 operating system release do
not produce the incorrect behavior before checking TNS/R system-specific variances.
(This incorrect behavior most likely results from a previously undetected program bug.)
For a summary of the changes made in the C30 operating system release, refer to the
C30 Installation Guide and product softdocs.
Variances in TNS and Accelerated Code
This section describes the variances between TNS and TNS/R systems that apply to
TNS object code and accelerated object code. The majority of these variances affect
programs with user-written trap handlers or TAL programs with CODE statements.
Additionally, these variances point out program bugs that can be detected on one
system type and not on another. Check your programs for variances in:
Trap handlers that use the register stack
Trap handlers that use the P register
Reserved instructions
Passing the address of P-relative objects
Nonprivileged references to system global data
Stack wrapping
Odd-byte references
Shift instructions with dynamic shift counts
Trap Handlers That Use the Register Stack
During program execution, the trap mechanism handles all error and exception
conditions not related to input or output. User-written trap handlers differ on TNS and
TNS/R systems because the register stack contents are imprecise at the moment of a
trap. (The register stack consists of registers R0 through R7.)
On TNS systems, trap handlers can be declared as functions (return a value to a
caller) and they can modify the register stack.
On TNS/R systems, trap handlers cannot be declared as functions and they can
reliably examine and change only certain registers. User-written trap handlers must
not alter the register stack.
User-written trap handlers on TNS/R systems can:
Print error messages and abend