TAL Reference Manual
Compiler Directives
TAL Reference Manual—526371-001
16-53
Usage Considerations
Usage Considerations
This directive can appear in the compilation command or anywhere in the source code.
INNERLIST turns the innerlisting setting on and lists mnemonics for subsequent
statements and can be turned on and off within procedures. (By contrast, ICODE lists
mnemonics for entire procedures and cannot be turned on and off within procedures.)
It has no effect if NOLIST or SUPPRESS is in effect.
NOINNERLIST turns the innerlisting setting off for subsequent statements.
PUSHINNERLIST pushes the current innerlisting setting onto the directive stack
without changing the current setting.
POPINNERLIST removes the top value from the directive stack and sets the current
innerlisting setting to that value.
INNERLIST Listing
INNERLIST lists mnemonics after each statement for which INNERLIST is in effect,
rather than at the end of the procedure.
For global variables declared within a named data block, the G+ addresses shown are
relative to the start of the data block and are not the final addresses. At the end of
compilation, BINSERV determines the final G+ addresses of such global variables and
the code locations of items such as PCAL instructions and global read-only arrays.
The INNERLIST listing is less complete than the ICODE listing. Because the compiler
is a one-pass compiler, many instructions appear with skeleton or space-holder images
that the compiler or BINSERV modifies later.
If OPTIMIZE and INNERLIST are in effect, the compiler first lists the original code, then
reports “Optimizer replacing the last n instructions,” and lists the optimized code. If
INNERLIST is switched off too soon, only the original code might show.
Example of INNERLIST Considerations
This example lists instruction code mnemonics after certain statements:
PROC any;
BEGIN
INT x, y, z; !No innerlisting here
!Statements that initialize variables
?INNERLIST !Start innerlisting here
!Statements that manipulate variables
?NOINNERLIST !Stop innerlisting here
END;