Assembler Directives and
.CALLINFO Directive
| For |
| the Stack Pointer by 48 bytes because the frame |
| marker contains 32 bytes and the fixed argument list |
| contains 16 bytes, when both of these areas are |
| present. |
| For |
| offset from the Stack Pointer by 80 bytes because the |
| frame marker contains 16 bytes and the fixed |
| argument list contains 64 bytes. |
| However, the Assembler does not allocate space for the |
| frame marker and fixed argument list if the procedure |
| does not call any other routines (see the NO_CALLS |
| parameter). |
| If the total frame size for a procedure exceeds 8191 |
| bytes, the Assembler uses %r3 to locate the previous |
| frame marker when it encounters an .ENTER or |
| .LEAVE |
| changing the value of %r3 can cause serious |
| consequences. |
HPUX_INT | Specifies that this procedure is an interrupt procedure. |
| This is necessary for the stack unwind mechanism. |
MILLICODE | Indicates to the unwind mechanism that this is a |
| millicode routine and it should follow the millicode |
| calling conventions. |
NO_UNWIND | This is to be used only in the context of |
| code or any procedure that does not need to be reliably |
| unwound. |
RP_IN_R31 | Indicates that the return pointer has been moved to |
| register %r31 in order to make local millicode calls. |
| This parameter is only valid for the |
| |
SAVE_MRP | Indicates that this millicode procedure saves the |
| Millicode Return Pointer (MRP) in its frame marker at |
| |
SAVE_RP | Specifies that the frame marker of the previous routine |
| stores the value of the Return Pointer (RP). The |
| Assembler automatically saves the Return Pointer |
| when it encounters an .ENTER |
70 | Chapter 4 |