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

Preparing Your Program for the Accelerator
Accelerator Manual527303-003
3-2
Binder and Inspect Symbols Regions
that assumes that the function returns an INT value. In most cases, the Accelerator
can process object files compiled without C/C++ function prototypes, but the resulting
accelerated object code is often inefficient and makes numerous transitions into
executing TNS code. Use C/C++ function prototypes for all of your C/C++ routines, if
possible.
Binder and Inspect Symbols Regions
The Accelerator uses information from the Binder region and the Inspect symbols
region of an object file to help perform control-flow analysis and optimizations. The
Accelerator can process most files without this information, but the resulting
accelerated object code is often inefficient and makes numerous transitions into
executing TNS code. Accelerate object files that contain the Binder and Inspect
symbols regions, if possible. After accelerating a program, you can strip the symbols
region from it without affecting performance.
Variances in Accelerated Code
This section describes the variances between TNS and TNS/R systems that apply to
accelerated object code. Check your programs for variances in:
Trap handlers that use the ENV register
Passing parameters in registers
The arithmetic left-shift sign bit
Non-standard procedure call or return RP values
The relationship between the global and local data blocks
Procedure name conflicts
In addition to these variances, the Accelerator elementary options control whether or
not the Accelerator produces code to account for five other variances found only in
accelerated code. When the Common super option is set (the default), the Accelerator
generates code to account for variances in overflow checking, truncation in address
calculations, and aliasing rules. It does not generate code to account for the atomicity
of instructions and the inheritance of condition codes. These last two variances only
affect TAL programs. Refer to Section 5, Setting Accelerator Options for details on
these accelerated code variances. Refer to Section 4, Using the Accelerator for
information about Accelerator options.
Trap Handlers Using the ENV Registers
The value of ENV.RP is undefined for accelerated programs. For compatibility with
TNS processors, your trap handlers must set ENV.RP to 7 if they resume execution
from a trap to a global restart point.