Load Register, with pointer authentication.


LDRAA Xt, [Xn|SP{, #simm}] ; LDRAA

LDRAA Xt, [Xn|SP{, #simm}]! ; LDRAA

LDRAB Xt, [Xn|SP{, #simm}] ; LDRAB

LDRAB Xt, [Xn|SP{, #simm}]! ; LDRAB


Is the 64-bit name of the general-purpose register to be transferred.
Is the 64-bit name of the general-purpose base register or stack pointer.
Is the optional signed immediate byte offset, in the range -512 to 511, defaulting to 0.

Architectures supported

Supported in the Arm®v8.2-A architecture and later.


Load Register, with pointer authentication. This instruction authenticates an address from a base register using a modifier of zero and the specified key, adds an immediate offset to the authenticated address, and loads a 64-bit doubleword from memory at this resulting address into a register.

Key A is used for LDRAA, and key B is used for LDRAB.

If the authentication passes, the PE behaves the same as for an LDR instruction. If the authentication fails, a Translation fault is generated.

The authenticated address is not written back to the base register, unless the pre-indexed variant of the instruction is used. In this case, the address that is written back to the base register does not include the pointer authentication code.

For information about memory accesses, see Load/Store addressing modes in the Arm® Architecture Reference Manual Arm®v8, for Arm®v8‑A architecture profile.

Non-ConfidentialPDF file icon PDF versionDUI0801J
Copyright © 2014–2017, 2019 Arm Limited or its affiliates. All rights reserved.