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
(FEAT_PAuth)

313029282726252423222120191817161514131211109876543210
110110101100000101000D11111Rd
Rn

XPACD (D == 1)

XPACD <Xd>

XPACI (D == 0)

XPACI <Xd>

boolean data = (D == '1'); integer d = UInt(Rd); integer n = UInt(Rn); if !HavePACExt() then UNDEFINED; if n != 31 then UNDEFINED;

System
(FEAT_PAuth)

313029282726252423222120191817161514131211109876543210
11010101000000110010000011111111

XPACLRI

integer d = 30; boolean data = FALSE;

Assembler Symbols

Operation

if HavePACExt() then X[d] = Strip(X[d], data);


Internal version only: isa v33.11seprel, AdvSIMD v29.05, pseudocode v2021-09_rel, sve v2021-09_rc3d ; Build timestamp: 2021-10-06T11:41

Copyright © 2010-2021 Arm Limited or its affiliates. All rights reserved. This document is Non-Confidential.