PACIBSPPC

Pointer Authentication Code for return address, using key B. This instruction computes and inserts a pointer authentication code for an instruction address, using two modifiers and key B.

The address is in X30.

The first modifier is in SP.

The second modifier is the 64-bit value of PC.

A PACIBSPPC instruction has an implicit BTI instruction. The implicit BTI instruction of a PACIBSPPC instruction is always compatible with PSTATE.BTYPE == 0b01 and PSTATE.BTYPE == 0b10. Controls in SCTLR_ELx configure whether the implicit BTI instruction of a PACIBSPPC instruction is compatible with PSTATE.BTYPE == 0b11. For more information, see PSTATE.BTYPE.

Integer
(FEAT_PAuth_LR)

313029282726252423222120191817161514131211109876543210
11011010110000011010011111111110
sfSopcode2opcodeRnRd

PACIBSPPC

if !IsFeatureImplemented(FEAT_PAuth_LR) then UNDEFINED; if IsFeatureImplemented(FEAT_BTI) then // Check for branch target compatibility between PSTATE.BTYPE // and implicit branch target of PACIxSPPC instruction. SetBTypeCompatible(BTypeCompatible_PACIXSP());

Operation

X[30, 64] = AddPACIB2(X[30, 64], SP[], PC64);


Internal version only: aarchmrs v2023-12_rel, pseudocode v2023-12_rel, sve v2023-12_rel ; Build timestamp: 2023-12-15T16:46

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