Assembler Directives and Pseudo-Operations

.CALLINFO Directive

CALLER or

Indicates that this procedure calls other routines, so it

CALLS

 

requires space in the stack for a frame marker and a

 

fixed argument list. (When a program is assembled

 

using the -foption, this becomes the default case.)

 

The Assembler allocates stack space when it

 

encounters an .ENTER pseudo-operation and

 

deallocates this space when it encounters a .LEAVE

 

pseudo-operation. The Assembler allocates 48 bytes for

 

the PA-RISC 32-bit mode and 80 bytes for the PA-RISC

 

64-bit (2.0W) mode.

 

The frame marker and fixed argument list area occur

 

at the top of the stack so you must take this space into

 

account when locating local variables on the stack. You

 

must allocate an area (using FRAME=) for a variable

 

argument list when this area is needed.

 

CALLER does not imply the existence of the parameter

 

SAVE_RP.

 

The CALLER and CALLS parameters are equivalent.

NO_CALLS

Indicates that the procedure does not call other

 

procedures and, therefore, does not require a frame

 

marker on the stack. This is the default case unless the

 

program is assembled using the -foption.

CLEANUP

Indicates that this procedure requires cleanup during

 

unwind.

ENTRY_FR=

 

register

Specifies the high end boundary of the Entry/Save

 

floating-point register partition. The partition includes

 

%fr12 through %fr15 for PA-RISC 1.0 and %fr12

 

through %fr21 for PA-RISC 1.1. The Assembler

 

automatically saves these registers when it encounters

 

an .ENTER pseudo-operation and restores them when it

 

encounters a .LEAVE pseudo-operation.

ENTRY_GR=

 

register

Specifies the high end boundary of the Entry/Save

 

register partition. The partition may extend over

 

registers %r3 through %r18. If you omit this

 

parameter, no registers are saved.

68

Chapter 4