← Home

XPACD, XPACI, XPACLRI

Strip Pointer Authentication Code

This instruction removes the Pointer Authentication Code from an address. The address is in the specified general-purpose register for XPACI and XPACD, and is in LR for XPACLRI.

The XPACD instruction is used for data addresses, and XPACI and XPACLRI are used for instruction addresses.

It has encodings from 2 classes: Integer and System

Integer class

(FEAT_PAuth)

313029282726252423222120191817161514131211109876543210
110110101100000101000D11111Rd
sfSopcode2Rn

XPACD encoding

(D == 1)

XPACD <Xd>

XPACI encoding

(D == 0)

XPACI <Xd>

Decode (all encodings)

if !IsFeatureImplemented(FEAT_PAuth) then EndOfDecode(Decode_UNDEF); constant integer d = UInt(Rd); constant boolean data = (D == '1');

System class

(FEAT_PAuth)

313029282726252423222120191817161514131211109876543210
11010101000000110010000011111111
CRmop2

Encoding

XPACLRI

Decode

if !IsFeatureImplemented(FEAT_PAuth) then EndOfDecode(Decode_NOP); constant integer d = 30; constant boolean data = FALSE;

Assembler Symbols

<Xd>

Is the 64-bit name of the general-purpose destination register, encoded in the "Rd" field.

Operation

X[d, 64] = Strip(X[d, 64], data);


Version 2025.09 — Copyright © 2010-2025 Arm Limited or its affiliates.

This site is provided as a community resource and is NOT affiliated with nor endorsed by Arm Limited.