pacdb
Pointer Authentication Code (Data B)
PACDB <Xd>, <Xn|SP>
Signs a data pointer using Key B.
Details
Signs the data pointer in Xd using the Data key B and a modifier from Xn or SP, storing the Pointer Authentication Code (PAC) in the high bits of Xd. The instruction does not modify the condition flags and operates only in AArch64 execution state with PAC support. The operation is implementation-defined and typically used for signing data pointers rather than instruction pointers.
Pseudocode Operation
modifier ← Xn | SP
Xd ← AddPAC(Xd, modifier, key_b, data_key)
Example
PACDB x0, x1
Encoding
Binary Layout
1
1
0
11010110
00001
00
0
011
Rn
Rd
Operands
-
Xd
Ptr -
Xn
Modifier
Reference (Arm A64 ISA)
Instruction Forms
| Encoding | Instruction | ISA | Bit pattern | ||
|---|---|---|---|---|---|
| 0xDAC10C00 | PACDB <Xd>, <Xn|SP> | A64 | 1 | 1 | 0 | 11010110 | 00001 | 00 | 0 | 011 | Rn | Rd |
Description
Pointer Authentication Code for Data address, using key B. This instruction computes and inserts a pointer authentication code for a data address, using a modifier and key B.
The address is in the general-purpose register that is specified by <Xd>.
The modifier is:
Operation
if source_is_sp then
X[d, 64] = AddPACDB(X[d, 64], SP[]);
else
X[d, 64] = AddPACDB(X[d, 64], X[n, 64]);