Authenticate instruction address, using key A
This instruction authenticates an instruction address, using two modifiers and key A. The address is in X17. The 64-bit value of modifier1 is the value in X16. The 64-bit value of modifier2 is the value in X15.
If the authentication passes, the upper bits of the address are restored to enable subsequent use of the address. For information on behavior if the authentication fails, see Faulting on pointer authentication.
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
1 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
sf | S | opcode2 | opcode | Rn | Rd |
if !IsFeatureImplemented(FEAT_PAuth_LR) then EndOfDecode(Decode_UNDEF);
constant boolean is_combined = FALSE; X[17, 64] = AuthIA2(X[17, 64], X[16, 64], X[15, 64], is_combined);
Internal version only: aarchmrs v2025-03_rel, pseudocode v2025-03_rel ; Build timestamp: 2025-03-21T17:41
Copyright © 2010-2025 Arm Limited or its affiliates. All rights reserved. This document is Non-Confidential.