Copyright © 2013-2022 Arm Limited or its affiliates. All rights reserved.
ARM DDI 0487I.a (ID081822)
Arm
®
Architecture Reference Manual
for A-profile architecture
ii Copyright © 2013-2022 Arm Limited or its affiliates. All rights reserved. ARM DDI 0487I.a
Non-Confidential ID081822
Arm Architecture Reference Manual
Copyright © 2013-2022 Arm Limited or its affiliates. All rights reserved.
Release Information
The following releases of this document have been made.
Release history
Date Issue Confidentiality Change
30 April 2013 A.a-1 Confidential-Beta Draft Beta draft of first issue, limited circulation
12 June 2013 A.a-2 Confidential-Beta Draft Second beta draft of first issue, limited circulation
04 September 2013 A.a Non-Confidential Beta Beta release
24 December 2013 A.b Non-Confidential Beta Second beta release
18 July 2014 A.c Non-Confidential Beta Third beta release
09 October 2014 A.d Non-Confidential Beta Fourth beta release
17 December 2014 A.e Non-Confidential Beta Fifth beta release
25 March 2015 A.f Non-Confidential Beta Sixth beta release
10 July 2015 A.g Non-Confidential Beta Seventh beta release
30 September 2015 A.h Non-Confidential Beta Eighth beta release
28 January 2016 A.i Non-Confidential Beta Ninth beta release
03 June 2016 A.j Non-Confidential EAC EAC release
30 September 2016 A.k Non-Confidential Armv8.0 EAC Updated EAC release
31 March 2017 B.a Non-Confidential Armv8.1 EAC, v8.2 Beta Initial release incorporating Armv8.1 and Armv8.2
26 September 2017 B.b Non-Confidential Armv8.2 EAC Initial Armv8.2 EAC release, incorporating SPE
20 December 2017 C.a Non-Confidential Armv8.3 EAC Initial Armv8.3 EAC release
31 October 2018 D.a Non-Confidential Armv8.4 EAC Initial Armv8.4 EAC release
29 April 2019 D.b Non-Confidential Armv8.4 EAC Updated Armv8.4 EAC release incorporating accessibility changes
05 July 2019 E.a Non-Confidential Armv8.5 EAC Initial Armv8.5 EAC release
20 February 2020 F.a Non-Confidential Armv8.6 Beta Initial Armv8.6 Beta release
31 March 2020 F.b Non-Confidential Armv8.5 EAC, v8.6 Beta Armv8.5 EAC release, initial Armv8.6 Beta release
17 July 2020 F.c Non-Confidential Armv8.6 EAC Initial Armv8.6 EAC release
22 January 2021 G.a Non-Confidential Armv8.7 EAC Initial Armv8.7 EAC release
22 July 2021 G.b Non-Confidential Armv8.7 EAC Updated Armv8.7 EAC release
04 February 2022 H.a Non-Confidential Armv9 EAC Initial Armv9 EAC release
19 August 2022 I.a Non-Confidential Armv9 EAC release Updated Armv9 EAC release incorporating BRBE, ETE, and TRBE
ARM DDI 0487I.a Copyright © 2013-2022 Arm Limited or its affiliates. All rights reserved. iii
ID081822 Non-Confidential
Proprietary Notice
This document is protected by copyright and other related rights and the practice or implementation of the information contained
in this document may be protected by one or more patents or pending patent applications. No part of this document may be
reproduced in any form by any means without the express prior written permission of Arm. No license, express or implied, by
estoppel or otherwise to any intellectual property rights is granted by this document unless specifically stated.
Your access to the information in this document is conditional upon your acceptance that you will not use or permit others to use
the information for the purposes of determining whether implementations infringe any third party patents.
THIS DOCUMENT IS PROVIDED “AS IS”. ARM PROVIDES NO REPRESENTATIONS AND NO WARRANTIES,
EXPRESS, IMPLIED OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
MERCHANTABILITY, SATISFACTORY QUALITY, NON-INFRINGEMENT OR FITNESS FOR A PARTICULAR
PURPOSE WITH RESPECT TO THE DOCUMENT. For the avoidance of doubt, Arm makes no representation with respect to,
and has undertaken no analysis to identify or understand the scope and content of, patents, copyrights, trade secrets, or other rights.
This document may include technical inaccuracies or typographical errors.
TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL ARM BE LIABLE FOR ANY DAMAGES,
INCLUDING WITHOUT LIMITATION ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, PUNITIVE, OR
CONSEQUENTIAL DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING
OUT OF ANY USE OF THIS DOCUMENT, EVEN IF ARM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
This document consists solely of commercial items. You shall be responsible for ensuring that any use, duplication or disclosure
of this document complies fully with any relevant export laws and regulations to assure that this document or any portion thereof
is not exported, directly or indirectly, in violation of such export laws. Use of the word “partner” in reference to Arm’s customers
is not intended to create or refer to any partnership relationship with any other company. Arm may make changes to this document
at any time and without notice.
This document may be translated into other languages for convenience, and you agree that if there is any conflict between the
English version of this document and any translation, the terms of the English version of the Agreement shall prevail.
The Arm corporate logo and words marked with
®
or
™
are registered trademarks or trademarks of Arm Limited (or its affiliates)
in the US and/or elsewhere. All rights reserved. Other brands and names mentioned in this document may be the trademarks of
their respective owners. You must follow the Arm’s trademark usage guidelines
http://www.arm.com/company/policies/trademarks.
Copyright © 2013-2022 Arm Limited (or its affiliates). All rights reserved.
Arm Limited. Company 02557590 registered in England.
110 Fulbourn Road, Cambridge, England CB1 9NJ.
(LES-PRE-20349 version 21.0)
In this document, where the term Arm is used to refer to the company it means “Arm or any of its affiliates as appropriate”.
Note
The term Arm can refer to versions of the Arm architecture, for example Armv8 refers to version 8 of the Arm architecture. The
context makes it clear when the term is used in this way.
Confidentiality Status
This document is Non-Confidential. The right to use, copy and disclose this document may be subject to license restrictions in
accordance with the terms of the agreement entered into by Arm and the party that Arm delivered this document to.
Product Status
The information in this document is final, that is for a developed product.
The information in this manual is at EAC quality, which means that all features of the specification are described in the manual.
Web Address
http://www.arm.com
iv Copyright © 2013-2022 Arm Limited or its affiliates. All rights reserved. ARM DDI 0487I.a
Non-Confidential ID081822
Limitations of this issue
This issue of the Arm Architecture Reference Manual contains many improvements and corrections. Validation of this document
has identified the following issues that Arm will address in future issues:
• Some diagrams in the register descriptions chapter have long field names that split over several lines. These are not wrong,
and the descriptions list the field name correctly.
•The Performance Monitors external register descriptions on page I5-10753 do not include updates to registers or fields
that change as a result of the optional 64-bit external access feature.
• Appendix K16 Arm Pseudocode Definition requires further review and update. Since this appendix is informative, rather
than being part of the architecture specification, this does not affect the quality status of this release.
• For a list of the known issues in this Manual, please refer to the Known Issues document on
https://developer.arm.com/documentation/102105/latest
.
• For a list of the known issues in the System register and instruction XML content, please refer to the Release Notes on
https://developer.arm.com/architectures/cpu-architecture/a-profile/exploration-tools
.
ARM DDI 0487I.a Copyright © 2013-2022 Arm Limited or its affiliates. All rights reserved. v
ID081822 Non-Confidential
Contents
Arm Architecture Reference Manual for A-profile
architecture
Preface
About this Manual ................................................................................................... xviii
Using this Manual ...................................................................................................... xx
Conventions ........................................................................................................... xxvii
Additional reading .................................................................................................... xxx
Feedback ............................................................................................................... xxxii
Part A Arm Architecture Introduction and Overview
Chapter A1 Introduction to the Arm Architecture
A1.1 About the Arm architecture ................................................................................. A1-36
A1.2 Architecture profiles ............................................................................................ A1-38
A1.3 Arm architectural concepts .................................................................................. A1-39
A1.4 Supported data types .......................................................................................... A1-42
A1.5 Floating-point support ......................................................................................... A1-55
A1.6 The Arm memory model ...................................................................................... A1-69
Chapter A2 Armv8-A Architecture Extensions
A2.1 Armv8.0 architecture extensions ......................................................................... A2-72
A2.2 Architectural features within Armv8.0 architecture .............................................. A2-76
A2.3 The Armv8 Cryptographic Extension ................................................................... A2-80
A2.4 The Armv8.1 architecture extension .................................................................... A2-82
A2.5 The Armv8.2 architecture extension .................................................................... A2-86
A2.6 The Armv8.3 architecture extension .................................................................... A2-96
A2.7 The Armv8.4 architecture extension .................................................................. A2-101
A2.8 The Armv8.5 architecture extension .................................................................. A2-107