Reference Guide
Chapter 4 69
Assembler Directives and Pseudo-Operations
.CALLINFO Directive
When a procedure uses these registers, the Assembler
saves their values when it encounters an .ENTER
pseudo-operation and restores these values when it
encounters a .LEAVE pseudo-operation. The called
routine saves these registers upon entry and restores
them upon exit, so values in Entry/Save registers are
preserved across a procedure call.
Note: See the description of the FRAME parameter
regarding the use of %r3.
ENTRY_SR=
register Specifies the high end boundary of the space register
partition. The partition currently contains only %sr3.
When the .CALLINFO directive includes this
parameter, the Assembler automatically saves the
Space Register when it encounters an .ENTER
pseudo-operation and restores this register when it
encounters a .LEAVE pseudo-operation.
FRAME=number Defines the combined size (in bytes) of the local
variable area and variable argument area needed by
the procedure. The .ENTER pseudo-operation allocates
the desired space for local variables below the frame
marker and the .LEAVE pseudo-operation deallocates
that space.
The number parameter must be a multiple of eight
bytes. If a .CALLINFO directive lacks this parameter,
the Assembler assumes a default frame size of zero.
The stack frame includes space for local variables and
the variable argument area. The size specified for the
frame should not include space for the stack frame
marker or the fixed argument area. Allocation of these
areas is controlled by the CALLER and NO_CALLS
parameters. The inclusion of the CALLER parameter
always allocates space for the stack frame marker and
the fixed argument area. (See Table 4-1 on page 53)
A frame marker is required if the assembly routine
calls another routine.