Virtual registers allocation (Vral) allows use of symbolic names instead of register names. This feature replaces registers or groups of registers with meaningful names, making code
simpler to write
faster to read
easier to maintain
When Vral is activated, the assembler analyzes control flow and data flow, builds life ranges for each register, and replaces symbolic names with the user-allocated registers.
With one directive, Vral can assign one name to a group of registers, allowing the assembler to handle the use of individual registers within the group. Vral is then responsible for ensuring safe reuse of registers.
To allocate symbolic names to registers, use these directives:
.vreg.allocatable
.vreg.safe_across_calls
To declare register variables, use these directives:
.vreg.var Family, Xcounter
.vreg.family LocalIntFamily, reg_range
To undefine or redefine variables, use these directives:
.vreg.undef Xcounter
.vreg.redef Xcounter
The following annotations are useful when using Vral:
.br.target annotation
.entry annotation
.bank switch annotation
This section includes: