Accelerator Manual (G06.24+, H06.03+)

Preparing Your Program for the Accelerator
Accelerator Manual527303-002
3-8
Non-Standard Procedure Call or Return RP Values
The Accelerator issues Error 70:
Error 70: The following procedure has two exit points that
leave different size values on the register stack:
Procedure '<proc name>' returns <value> words at offset
<address> and returns <value> words at offset <address>.
The Accelerator cannot optimize this code because it cannot determine what size
value to expect at each call site. Check your source to determine the correct return
value or values.
Required Changes
For TAL programs:
Recode your program. HP recommends that you remove this coding practice from
your programs because it will not be supported in future software releases.
Change your programs to pass parameters using the proper TAL syntax, if
possible. You can also use the ReturnValSize option.
For C programs:
Recompile your C program if it contains functions that return the type “void *” and it
was compiled with a version of the HP C compiler released prior to 01DEC90. You
can also use the ReturnValSize option.
Recompile your C program if it contains functions that return a struct by value and
it was compiled with a version of the HP C compiler released prior to 15JUN91.
You can also use the ReturnValSize option.
For TAL or C programs:
Use the Accelerator ReturnValSize option to specify the correct return values.
For procedures with one return value size, specify:
ReturnValSize procedure-name value
where procedure-name is the name of the procedure, and value is the number
of 16-bit words returned by the procedure. Use this option for functions whose
return values cannot be declared in TAL, such as 48-bit integers. You can also
use this option for C functions that return the type “void *” or return a struct by
value. Specify 1 word for NOXMEM (small-memory model) and 2 words for
XMEM (large-memory model).
For procedures with more than one possible return value size (depending on
the exit taken from the procedure), specify:
ReturnValSize procedure-name UNKNOWN
where procedure-name is the name of the procedure, and UNKNOWN tells the
Accelerator to check the return value size for each procedure call. Use this