Syntax for the .save.x Directives

The directives, .save.f, .save.g, .save.gf, and .save.b, define 2-bit fields for each save operation in the imask descriptor. The assembler interprets the instruction that immediately follows a save directive as a save instruction.

Example Code Sequence Using the .save.g Directive illustrates the use of the .save.g directive. Each .save.g directive describes the subsequent store instruction. The operand is a mask where only one bit is set. This bit specifies the preserved saved register. The assembler produces a gr_mem descriptor with a 0x5 mask. In addition, the assembler marks the 2-bit fields of the imask descriptor, corresponding to the slots of the two store instructions.

Example: Code Sequence Using the .save.g Directive

.save.g 0x1
st8... = r4
...
.save.g 0x4
st8... = r6

Example Code Sequence Using the .save.gf Directive illustrates the use of the .save.gf directive. The .save.gf directive describes the subsequent store instruction. The operands is a mask where only one bit is set. This bit specifies the preserved saved register. The assembler produces a frgr_mem descriptor with a 0x42 mask for the floating-point registers and a 0x2 mask for the general-purpose registers. In addition, the assembler marks the 2-bit fields of the imask descriptor, corresponding to the slots of the three store instructions.

Example: Code Sequence Using the .save.gf Directive

.save.gf 0, 0x2
fst... = f3
...
.save.gf 0, 0x40
fst... = f18
...
.save.gf 0x2, 0
st8... = r5