You copied the Doc URL to your clipboard.

BLRAA, BLRAAZ, BLRAB, BLRABZ

Branch with Link to Register, with pointer authentication.

Syntax

BLRAA Xn, Xm|SP ; BLRAA general registers

BLRAAZ Xn ; BLRAAZ general registers

BLRAB Xn, Xm|SP ; BLRAB general registers

BLRABZ Xn ; BLRABZ general registers

Where:

Xn
Is the 64-bit name of the general-purpose register holding the address to be branched to.
Xm|SP
Is the 64-bit name of the general-purpose source register or stack pointer holding the modifier.

Architectures supported

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

Usage

Branch with Link to Register, with pointer authentication. This instruction authenticates the address in the general-purpose register that is specified by Xn, using a modifier and the specified key, and calls a subroutine at the authenticated address, setting register X30 to PC+4.

The modifier is:

  • In the general-purpose register or stack pointer that is specified by Xm|SP for BLRAA and BLRAB.
  • The value zero, for BLRAAZ and BLRABZ.

Key A is used for BLRAA and BLRAAZ, and key B is used for BLRAB and BLRABZ.

If the authentication passes, the PE continues execution at the target of the branch. If the authentication fails, a Translation fault is generated.

The authenticated address is not written back to the general-purpose register.

Was this page helpful? Yes No