17.35 LDRAA, LDRAB, LDRAB

Load Register, with pointer authentication.

Syntax

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

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

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

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

Where:

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

Usage

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 ARMv8, for ARMv8-A architecture profile.

Non-ConfidentialPDF file icon PDF versionARM 100069_0608_00_en
Copyright © 2014–2017 ARM Limited or its affiliates. All rights reserved.