xpaci
Strip Pointer Authentication Code (Inst)
XPACI <Xd>
Removes the PAC signature from an instruction pointer.
Details
Strips the Pointer Authentication Code from a 64-bit instruction pointer in Xd without verifying the signature. This instruction is AArch64-only and requires the PAC extension. The condition flags (N, Z, C, V) are not affected, and the operation is not privileged.
Pseudocode Operation
Xd ← StripPAC(Xd, InstructionPointer)
Example
XPACI x0
Encoding
Binary Layout
1
1
0
11010110
00001
01000
0
11111
Rd
Operands
-
Xd
Ptr
Reference (Arm A64 ISA)
Instruction Forms
| Encoding | Instruction | ISA | Bit pattern | ||
|---|---|---|---|---|---|
| 0xDAC143E0 | XPACI <Xd> | A64 | 1 | 1 | 0 | 11010110 | 00001 | 01000 | 0 | 11111 | Rd |
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);