Allocate Registers

The .vreg.allocatable directive assigns registers for allocation, thereby making them available for VRAL from this point in this procedure. There can be more than one allocation directive in each procedure. Values of these registers are not ensured preserved across calls. This directive has the following syntax:

.vreg.allocatable reg_range

where

reg_range can be a single register, a range of registers, or both.

In the following example, integer registers 14 through 26, and register 30 are assigned:

.vreg.allocatable r14-26, r305

Alternatively, the .vreg.safe_across_calls directive informs the assembler that the named registers are preserved across calls. This directive assurs the assembler that branches to external procedures following this directive do not access or corrupt the named registers. The directive has the following syntax:

.vreg.safe_across_calls reg_range

where

reg_range is not restricted to the registers allocated in the .vreg.allocatable directive.

Example:

.vreg.safe_across_calls f16, f18-f21