7.5.2. FRAME POP

Use the FRAME POP directive to inform the assembler when the callee reloads registers. You can only use it within functions with FUNCTION and ENDFUNC or PROC and ENDP directives.

You need not do this after the last instruction in a function.

Syntax

There are two alternative syntaxes for FRAME POP:

FRAME POP {reglist}
FRAME POP n

where:

reglist

is a list of registers restored to the values they had on entry to the function. There must be at least one register in the list.

n

is the number of bytes that the stack pointer moves.

Usage

FRAME POP is equivalent to a FRAME ADDRESS and a FRAME RESTORE directive. You can use it when a single instruction loads registers and alters the stack pointer.

You must use FRAME POP immediately after the instruction it refers to.

The assembler calculates the new offset for the canonical frame address. It assumes that:

  • each ARM register popped occupied 4 bytes on the stack

  • each FPA floating-point register popped occupied 12 bytes on the stack

  • each VFP single-precision register popped occupied 4 bytes on the stack, plus an extra 4-byte word for each list.

See FRAME ADDRESS and FRAME RESTORE.

Copyright © 2000, 2001 ARM Limited. All rights reserved.ARM DUI 0068B
Non-Confidential