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
1
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
XPACD <Xd>
0
XPACI <Xd>
if !IsFeatureImplemented(FEAT_PAuth) then UNDEFINED;
constant integer d = UInt(Rd);
constant boolean data = (D == '1');
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
XPACLRI
if !IsFeatureImplemented(FEAT_PAuth) then ExecuteAsNOP();
constant integer d = 30;
constant boolean data = FALSE;
<Xd>
Is the 64-bit name of the general-purpose destination register, encoded in the "Rd" field.
X[d, 64] = Strip(X[d, 64], data);