User`s guide

How the MACRO Compiler Functions on Different Platforms
2.2 Itanium Architecture, Calling Standard, and Register Mapping
First, the compiler maps the registers in the Macro-32 source program to different
registers on the I64 hardware. This allows existing programs to use ‘‘MOVL SS$_
NORMAL, R0’’ and have the generated code return the value in R8 as prescribed
by the calling standard. Table 2–1 shows the register mappings for OpenVMS
VAX/OpenVMS Alpha to OpenVMS I64.
Table 2–1 Register Mapping Table for OpenVMS VAX/OpenVMS Alpha to
OpenVMS I64
OpenVMS VAX/OpenVMS Alpha
register in source code OpenVMS I64 register used in generated code
R0 R8
R1 R9
R2 R28
R3 R3
R4 R4
R5 R5
R6 R6
R7 R7
R8 R26
R9 R27
R10 R10
R11 R11
R12 R30
R13 R31
R14 R20
R15 R21
R16 R14
R17 R15
R18 R16
R19 R17
R20 R18
R21 R19
R22 R22
R23 R23
R24 R24
R25 R25
R26 Itanium stacked register
R27 Itanium stacked register
R28 Itanium stacked register
R29 R29
R30 R12
R31 R0
How the MACRO Compiler Functions on Different Platforms 2–3