4.5 Predeclared core register names in AArch64 state

In AArch64 state, the predeclared core registers are different from those in AArch32 state.

The following table shows the predeclared core registers in AArch64 state:

Table 4-1 Predeclared core registers in AArch64 state

Register names

Meaning

W0-W30

32-bit general purpose registers.

X0-X30

64-bit general purpose registers.

WZR

32-bit RAZ/WI register. This is the name for register 31 when it is used as the zero register in a 32-bit context.

XZR

64-bit RAZ/WI register. This is the name for register 31 when it is used as the zero register in a 64-bit context.

WSP

32-bit stack pointer. This is the name for register 31 when it is used as the stack pointer in a 32-bit context.

SP

64-bit stack pointer. This is the name for register 31 when it is used as the stack pointer in a 64-bit context.

LR

Link register. This is a synonym for X30.

You can write the register names either in all upper case or all lower case.

Note:

In AArch64 state, the PC is not a general purpose register and you cannot access it by name.
Non-ConfidentialPDF file icon PDF versionDUI0801J
Copyright © 2014–2017, 2019 Arm Limited or its affiliates. All rights reserved.