SPRUI04F july 2015 – april 2023
Partition Registers Directly
.rega symbol1 [, symbol2 , …]
.regb symbol1 [, symbol2 , …]
Registers can be directly partitioned through two directives. The .rega directive is used to constrain a symbol name to A-side registers. The .regb directive is used to constrain a symbol name to B-side registers. For example:
.REGA y
.REGB u, v, w
MV x, y
LDW *u, v:w
The .rega and .regb directives are valid within procedures only; that is, within occurrences of the .proc and .endproc directive pair or the .cproc and .endproc directive pair.
When a symbol is declared with the .rega or .regb directive, it is not necessary to declare that symbol with the .reg directive.
The old method of partitioning registers indirectly by partitioning instructions can still be used. Side and functional unit specifiers can still be used on instructions. However, functional unit specifiers (.L/.S/.D/.M) and crosspath information are ignored. Side specifiers are translated into partitioning constraints on the corresponding symbol names, if any. For example:
MV .1X z, y ; translated to .REGA y
LDW .D2T2 *u, v:w ; translated to .REGB u, v, w