xpaclri
Strip PAC from Instruction Address
XPACLRI
Removes the pointer authentication code from an instruction address.
Details
Strips the pointer authentication code from the instruction address held in LR, clearing the PAC bits but retaining the address bits. Used after an indirect branch to remove authentication metadata. No condition flags are affected. AArch64-only; requires PAC extension; no operands.
Pseudocode Operation
LR ← StripPAC(LR)
Example
XPACLRI
Encoding
Binary Layout
11010101000000110010
0000
111
11111
Operands
Reference (Arm A64 ISA)
Instruction Forms
| Encoding | Instruction | ISA | Bit pattern | ||
|---|---|---|---|---|---|
| 0xD50320FF | XPACLRI | A64 | 11010101000000110010 | 0000 | 111 | 11111 |
Description
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.
Operation
if IsFeatureImplemented(FEAT_PAuth) then
X[d, 64] = Strip(X[d, 64], data);