Stack Unwind Directives Usage Guidelines

Follow these guidelines when using the stack unwind directives:

— Use one of the following frame directives if the procedure creates a new stack frame: .fframe, .vframe, or .vframesp.

— Use each of the .save directives only once. For example: .save rp, ar.pfs, ar.unat, ar.lc, and pr.

— Multiple usage of the directives, .save.g, .save.f, .save.b, and .save.gf is allowed. The number of bits set in the bit-mask operand  specifies the number of the consecutive save instructions that immediately follow the directive.

— A single unwind record is built for one or more occurrences of the following directives: .save.g, .save.f, .save.b, and .save.gf. The bit-mask field of the record is a bitwise OR of all the masks that appear in the directives.

— Use only one .save.b with the gr-location operand.

— Use only one .spill directive.

— The .prologue <imm_mask> directive with the psp bit set and the .vframe directive both define the psp location. Use only one of them.