SPRUI04F july 2015 – april 2023
In the output assembly file, register operands contain your symbolic name. This aids you in debugging your linear assembly files and in gluing snippets of linear assembly output into assembly files.
A .map directive (see the .map topic) at the beginning of an assembly function associates the symbolic name with the actual register. In other words, the symbolic name becomes an alias for the actual register. The .map directive can be used in assembly and linear assembly code.
When the compiler splits a user symbol into two symbols and each is mapped to distinct machine register, a suffix is appended to instances of the symbolic name to generate unique names so that each unique name is associated with one machine register.
For example, if the compiler associated the symbolic name y with A5 in some instructions and B6 in some others, the output assembly code might look like:
.MAP y/A5
.MAP y'/B6
...
ADD .S2X y, 4, y' ; Equivalent to add A5, 4, B6
To disable this format with symbolic names and display assembly instructions with actual registers instead, compile with the --machine_regs option.