Accelerator Manual (G06.24+, H06.03+)
Preparing Your Program for the Accelerator
Accelerator Manual—527303-002
3-3
Passing Parameters in Registers
The condition codes N, Z, and K are undefined for traps that occur when executing 
accelerated object code. Do not write trap handlers that:
•
Base their decisions on these register values
•
Resume to points that expect these register values to be valid
Refer to the Trap Handlers That Use the Register Stack on page 2-4 for guidelines on 
writing trap handlers.
Detection Guideline
•
Examine your programs to determine if their trap handlers comply with the 
preceding restrictions. Find trap handlers by looking for calls to the system 
procedure ARMTRAP with parameters (address of label, address of data area). 
ARMTRAP specifies an entry point into the application program where execution is 
to begin if a trap occurs. You do not need to change ARMTRAP (-1,-1) procedures 
that cause programs to abend on traps. Trap handlers are usually small enough in 
both size and number to check visually.
Required Change
•
Change your programs to comply with the preceding restrictions.
Passing Parameters in Registers
When processing a TAL program, the Accelerator assumes that only those registers 
that contain an explicit value to pass or return hold meaningful values for procedure 
calls and returns. Procedures can pass values implicitly using TNS registers with 
CODE and STACK statements or the misuse of USE and DROP statements. A 
procedure inherits a register if it is passed a register by a calling procedure. A 
procedure returns a register if it returns a register to a calling procedure. To get a 
correctly accelerated program in these cases, you must use the InheritsR or ReturnsR 
options to specify which registers are used to pass parameters to or from a specified 
procedure.
For a discussion of TNS registers, refer to the appropriate system description manual.
Detection Guidelines
•
The Accelerator emits Warning 34 if it suspects that a procedure uses a register 
that is implicitly set by another procedure.
Warning 34: The following procedures unexpectedly inherit
registers:
 '<proc name>' at offsets(s): <address>
Warning 34 can be a false warning if:










