Cortex -A53 MPCore Processor Advanced SIMD and Floating-point Extension ARM. Technical Reference Manual. Revision: r0p4

Similar documents
Media Processing Engine. Cortex -A7 NEON. Technical Reference Manual. Revision: r0p5

Cortex -A53 MPCore Processor Cryptography Extension ARM. Technical Reference Manual. Revision: r0p4

ARM Cortex -A5 Floating-Point Unit

Revision: r0p0 Technical Reference Manual

Cortex -A9 Floating-Point Unit

Floating-Point Unit. Cortex-A5. Technical Reference Manual. Revision: r0p1. Copyright 2009, 2010 ARM. All rights reserved. ARM DDI 0449B (ID101810)

ARM CoreLink DPE-400 Data Parity Extension for NIC-400

GPU Shader Library. Mali. User Guide. Version: 1.0. Copyright 2009 ARM. All rights reserved. ARM DUI 0510A (ID101409)

Offline Shader Compiler. Mali. User Guide. Version: 3.0. Copyright ARM. All rights reserved. ARM DUI 0513B (ID032912)

GPU Offline Shader Compiler. Mali. User Guide. Version: 2.2. Copyright 2009 ARM. All rights reserved. ARM DUI 0513A (ID101409)

ARMv8-M processor power management

Vector Floating-point Coprocessor VFP11. Technical Reference Manual. for ARM1136JF-S processor r1p5

OpenGL ES 2.0 SDK for Android. Mali. User Guide. Version: Copyright 2011 ARM. All rights reserved. ARM DUI 0587A (ID120411)

Design Simulation Model ARM. User Guide. for SystemC. Copyright 2016 ARM. All rights reserved. ARM ARM DUI 1031B (ID111116)

ARM TrustZone True Random Number Generator

Arm Design Simulation Model

Designer ADR-400 AMBA. User Guide. Revision: r3p2. Copyright ARM. All rights reserved. ARM DUI 0333M (ID011213)

Integrator /CP Board Support Package for Microsoft Windows CE.NET

Cortex -A9 Floating-Point Unit

Vector Floating-point Coprocessor VFP9-S. Technical Reference Manual. r0p2

ETM -A5. CoreSight. Technical Reference Manual. Revision: r0p2. Copyright 2009, 2010 ARM. All rights reserved. ARM DDI 0435C (ID072915)

ARM. Compiler toolchain v4.1 for. Creating Static Software Libraries with armar. Copyright 2011 ARM. All rights reserved. ARM DUI 0590A (ID061811)

Coprocessors. Outline: the ARM coprocessor interface floating-point support MOVE coprocessor CP15, CP14. hands-on: system software - semaphores

Fault Handling and Detection

Fault Handling and Detection

ARM. Streamline. Performance Analyzer. Using ARM Streamline. Copyright 2010 ARM Limited. All rights reserved. ARM DUI 0482A (ID100210)

ARM. System Memory Management Unit Architecture Specification. 64KB Translation Granule Supplement

GPU Shader Development Studio. Mali. User Guide. Version: Copyright ARM. All rights reserved. DUI0504B (ID072410)

AMBA Remap and Pause. Technical Reference Manual. Revision: r0p0. Copyright 1997 ARM Limited. All rights reserved. ARM DDI 0048AC

PrimeCell Infrastructure AMBA 3 AXI File Reader Master (BP144)

CoreLink MMU-500 System Memory Management Unit ARM. Technical Reference Manual. Revision: r2p2

GPU Shader Development Studio. Mali. User Guide. Version: Beta. Copyright ARM. All rights reserved. DUI0504C (ID011412)

MOVE. Coprocessor. Technical Reference Manual. Copyright 2001, 2002, ARM Limited. All rights reserved. ARM DDI 0235C

Single Master DMA Controller (PL081) PrimeCell. Technical Reference Manual. Revision: r1p2

ARM. Mali GPU. OpenGL ES Application Optimization Guide. Version: 2.0. Copyright 2011, 2013 ARM. All rights reserved. ARM DUI 0555B (ID051413)

DS-5 ARM. Using Eclipse. Version Copyright ARM. All rights reserved. ARM DUI 0480L (ID100912)

ARM. Mali GPU. OpenGL ES Application Optimization Guide. Version: 3.0. Copyright 2011, 2013 ARM. All rights reserved. ARM DUI 0555C (ID102813)

STM32F4 Core, DSP, FPU & Library

NEON. Programmer s Guide. Version: 1.0. Copyright 2013 ARM. All rights reserved. ARM DEN0018A (ID071613)

The Scalable Vector Extension (SVE), for ARMv8-A

ETM -R4. CoreSight. Technical Reference Manual. Revision: r2p1. Copyright ARM. All rights reserved. ARM DDI 0367D (ID072915)

PrimeCell AHB SRAM/NOR Memory Controller (PL241)

CoreLink MMU-400 System Memory Management Unit ARM. Technical Reference Manual. Revision: r0p1

Component Architecture Debug Interface

ARMv8-A Synchronization primitives. primitives. Version 0.1. Version 1.0. Copyright 2017 ARM Limited or its affiliates. All rights reserved.

ARM. Cortex -A15 MPCore. Processor. Technical Reference Manual. Revision: r4p0. Copyright ARM. All rights reserved. ARM DDI 0438I (ID062913)

Cortex -A15 MPCore. Technical Reference Manual. Revision: r3p0. Copyright ARM. All rights reserved. ARM DDI 0438E (ID040512)

AArch64 Virtualization

TrustZone Address Space Controller TZC-380. CoreLink. Technical Reference Manual. Revision: r0p1

Trace Debug Tools Version 1.2 Installation Guide

ARM DS-5. Eclipse for DS-5 User Guide. Version 5. Copyright ARM. All rights reserved. ARM DUI0480Q

ARM DS-5. Eclipse for DS-5 User Guide. Version 5. Copyright ARM Limited or its affiliates. All rights reserved.

Compute Subsystem SCP ARM. Message Interface Protocols. Version: 1.2

AMBA Keyboard/Mouse PS/2 Interface

Secure software guidelines for ARMv8-M. for ARMv8-M. Version 0.1. Version 2.0. Copyright 2017 ARM Limited or its affiliates. All rights reserved.

ARM AMBA. Designer ADR-400. User Guide. Revision: r3p7

Cortex -R5. Technical Reference Manual. Revision: r1p2. Copyright ARM. All rights reserved. ARM DDI 0460D (ID092411)

Network Interconnect NIC-301. CoreLink. Technical Reference Manual. Revision: r2p3

NIC-400 Network Interconnect. CoreLink. Technical Reference Manual. Revision: r0p0. Copyright 2012 ARM. All rights reserved. ARM DDI 0475A (ID081712)

ARM v8-m Processor Debug

Compute Subsystem SCP ARM. Message Interface Protocols. Version: 1.0. Copyright 2015 ARM. All rights reserved. ARM DUI 0922B (ID050115)

GPU Performance Analysis. Mali. User Guide. Version: 2.2. Copyright 2009 ARM. All rights reserved. DUI 0502A (ID101409)

PrimeCell AHB SDR and SRAM/NOR Memory Controller (PL243)

ARM Cortex -M3 DesignStart Eval

LogiCORE IP Floating-Point Operator v6.2

Mali -T600 Series GPU OpenCL ARM. Developer Guide. Version 2.0. Copyright ARM. All rights reserved. DUI0538F (ID012914)

AHB Trace Macrocell (HTM) AMBA. Technical Reference Manual. Revision: r0p4. Copyright ARM Limited. All rights reserved.

Texture Compression Tool. Mali. User Guide. Version: Copyright 2009, ARM. All rights reserved. DUI 0503E (ID092912)

Software Delegated Exception Interface (SDEI)

CoreLink GIC-500 Generic Interrupt Controller ARM. Technical Reference Manual. Revision: r0p0

Versatile Express. Boot Monitor. Reference Manual. Copyright ARM. All rights reserved. ARM DUI 0465F (ID110612)

Cortex -A9 MPCore. Technical Reference Manual. Revision: r2p2. Copyright ARM. All rights reserved. ARM DDI 0407F (ID050110)

AMBA Peripheral Bus Controller

TrustZone technology for ARM v8-m Architecture

ARM Firmware Suite v1.4 Installation Guide

ARM DS-5. Using the Debugger. Copyright 2010 ARM. All rights reserved. ARM DUI 0446A (ID070310)

FP_IEEE_DENORM_GET_ Procedure

AMBA 3 AXI. Protocol Checker. User Guide. r0p1. Copyright 2005, 2006, 2009 ARM. All rights reserved. ARM DUI 0305C (ID071309)

L220 Cache Controller

ARM RealView Versatile/PB926EJ-S Board Support Package for Microsoft Windows CE.NET

Arm CoreLink MMU-600 System Memory Management Unit

Platform Developer s Kit. Pipelined Floating-point Library Manual

Compilation Tools. RealView. Assembler Guide. Version 4.0. Copyright ARM. All rights reserved. ARM DUI 0204J (ID101213)

ARM Cortex processors

MicroLogix 1200 Programmable Controllers

PTM -A9. CoreSight. Technical Reference Manual. Revision: r0p0. Copyright 2008 ARM Limited. All rights reserved. ARM DDI 0401A

Arm Compiler. armar User Guide. Version 6.9. Copyright Arm Limited (or its affiliates). All rights reserved.

Embedded Trace Buffer

DMA Controller (PL330) PrimeCell. Technical Reference Manual. Revision: r0p0. Copyright 2007 ARM Limited. All rights reserved.

Chapter 2 Float Point Arithmetic. Real Numbers in Decimal Notation. Real Numbers in Decimal Notation

Arm Cortex -M33 Devices

L210 Cache Controller

ARMv8-A Memory Systems. Systems. Version 0.1. Version 1.0. Copyright 2016 ARM Limited or its affiliates. All rights reserved.

UNIVERSITY OF MASSACHUSETTS Dept. of Electrical & Computer Engineering. Digital Computer Arithmetic ECE 666

CSCI 402: Computer Architectures

ARM968E-S. Technical Reference Manual. Revision: r0p1. Copyright 2004, 2006 ARM Limited. All rights reserved. ARM DDI 0311D

Intel Platform Innovation Framework for EFI SMBus Host Controller Protocol Specification. Version 0.9 April 1, 2004

Itanium Processor Floatingpoint Software Assistance and Floating-point Exception Handling

Cisco TEO Adapter Guide for

Application Note 133. Using VFP with RVDS. Document number: ARM DAI 0133C Issued: July 2008 Copyright ARM Limited

Transcription:

ARM Cortex -A53 MPCore Processor Advanced SIMD and Floating-point Extension Revision: r0p4 Technical Reference Manual Copyright 2013-2016 ARM. All rights reserved. ARM DDI 0502G ()

ARM Cortex-A53 MPCore Processor Advanced SIMD and Floating-point Extension Technical Reference Manual Copyright 2013-2016 ARM. All rights reserved. Release Information The following changes have been made to this book. Change history Date Issue Confidentiality Change 09 August 2013 A Confidential Release for r0p0 04 November 2013 B Confidential Release for r0p1 13 December 2013 C Confidential Release for r0p2 14 February 2014 D Second release for r0p2 30 April 2014 E Release for r0p3 29 July 2014 F Release for r0p4 06 January 2016 G Second release for r0p4 Proprietary Notice Words and logos marked with or are registered trademarks or trademarks of ARM in the EU and other countries, except as otherwise stated below in this proprietary notice. Other brands and names mentioned herein may be the trademarks of their respective owners. Neither the whole nor any part of the information contained in, or the product described in, this document may be adapted or reproduced in any material form except with the prior written permission of the copyright holder. The product described in this document is subject to continuous developments and improvements. All particulars of the product and its use contained in this document are given by ARM in good faith. However, all warranties implied or expressed, including but not limited to implied warranties of merchantability, or fitness for purpose, are excluded. This document is intended only to assist the reader in the use of the product. ARM shall not be liable for any loss or damage arising from the use of any information in this document, or any error or omission in such information, or any incorrect use of the product. Where the term ARM is used it means ARM or any of its subsidiaries as appropriate. Confidentiality Status This document is. 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. Web Address http://www.arm.com ARM DDI 0502G Copyright 2013-2016 ARM. All rights reserved. ii

Contents ARM Cortex-A53 MPCore Processor Advanced SIMD and Floating-point Extension Technical Reference Manual Preface About this book... v Feedback... vii Chapter 1 Chapter 2 Appendix A Introduction 1.1 About the Cortex-A53 Advanced SIMD and Floating-point Extension... 1-2 1.2 Floating-point support... 1-3 Programmers Model 2.1 Accessing the feature identification registers... 2-2 2.2 AArch64 register summary... 2-3 2.3 AArch64 register descriptions... 2-4 2.4 AArch32 register summary... 2-13 2.5 AArch32 register descriptions... 2-14 Revisions ARM DDI 0502G Copyright 2013-2016 ARM. All rights reserved. iii

Preface This preface introduces the ARM Cortex -A53 MPCore Processor Advanced SIMD and Floating-point Extension Technical Reference Manual. It contains the following sections: About this book on page v. Feedback on page vii. ARM DDI 0502G Copyright 2013-2016 ARM. All rights reserved. iv

Preface About this book This book is for the Cortex-A53 processor Advanced SIMD and Floating-point Extension. Product revision status The rmpn identifier indicates the revision status of the product described in this book, for example, r1p2, where: rm Identifies the major revision of the product, for example, r1. pn Identifies the minor revision or modification status of the product, for example, p2. Intended audience This book is written for system designers, system integrators, and programmers who are designing or programming a System-on-Chip (SoC) that uses the Cortex-A53 processor with the optional Advanced SIMD and Floating-point Extension. Using this book This book is organized into the following chapters: Chapter 1 Introduction Read this for an introduction to the optional Cortex-A53 Advanced SIMD and Floating-point Extension, and a description of its features. Chapter 2 Programmers Model Read this for a description of the programmers model for the Cortex-A53 Advanced SIMD and Floating-point Extension. Appendix A Revisions Read this for a description of the technical changes between released issues of this book. Glossary The ARM Glossary is a list of terms used in ARM documentation, together with definitions for those terms. The ARM Glossary does not contain terms that are industry standard unless the ARM meaning differs from the generally accepted meaning. See ARM Glossary http://infocenter.arm.com/help/topic/com.arm.doc.aeg0014-/index.html. Conventions This book uses the conventions that are described in: Typographical conventions on page vi. ARM DDI 0502G Copyright 2013-2016 ARM. All rights reserved. v

Preface Typographical conventions The following table describes the typographical conventions: Typographical conventions Style italic bold monospace monospace monospace italic monospace bold <and> SMALL CAPITALS Purpose Introduces special terminology, denotes cross-references, and citations. Highlights interface elements, such as menu names. Denotes signal names. Also used for terms in descriptive lists, where appropriate. Denotes text that you can enter at the keyboard, such as commands, file and program names, and source code. Denotes a permitted abbreviation for a command or option. You can enter the underlined text instead of the full command or option name. Denotes arguments to monospace text where the argument is to be replaced by a specific value. Denotes language keywords when used outside example code. Encloses replaceable terms for assembler syntax where they appear in code or code fragments. For example: MRC p15, 0 <Rd>, <CRn>, <CRm>, <Opcode_2> Used in body text for a few terms that have specific technical meanings, that are defined in the ARM glossary. For example, IMPLEMENTATION DEFINED, IMPLEMENTATION SPECIFIC, UNKNOWN, and UNPREDICTABLE. Additional reading This section lists publications by ARM and by third parties. See Infocenter http://infocenter.arm.com, for access to ARM documentation. ARM publications This book contains information that is specific to this product. See the following documents for other relevant information: ARM Cortex -A53 MPCore Processor Technical Reference Manual (ARM DDI 0500). ARM Architecture Reference Manual, ARMv8, for ARMv8-A architecture profile (ARM DDI 0487). ARM Cortex -A Series Programmer s Guide (ARM DEN0013B). The following confidential books are only available to licensees: ARM Cortex -A53 MPCore Processor Cryptography Extension Technical Reference Manual (ARM DDI 0501). ARM Cortex -A53 MPCore Processor Configuration and Sign-off Guide (ARM DII 0281). ARM Cortex -A53 MPCore Processor Integration Manual (ARM DIT 0036). Other publications This section lists relevant documents published by third parties: ANSI/IEEE Std 754-2008, IEEE Standard for Floating-Point Arithmetic. ARM DDI 0502G Copyright 2013-2016 ARM. All rights reserved. vi

Preface Feedback ARM welcomes feedback on this product and its documentation. Feedback on this product If you have any comments or suggestions about this product, contact your supplier and give: The product name. The product revision or version. An explanation with as much information as you can provide. Include symptoms and diagnostic procedures if appropriate. Feedback on content If you have comments on content then send an e-mail to errata@arm.com. Give: The title. The number, ARM DDI 0502G. The page numbers to which your comments apply. A concise explanation of your comments. ARM also welcomes general suggestions for additions and improvements. Note ARM tests the PDF only in Adobe Acrobat and Acrobat Reader, and cannot guarantee the quality of the represented document when used with any other PDF reader. ARM DDI 0502G Copyright 2013-2016 ARM. All rights reserved. vii

Chapter 1 Introduction This chapter introduces the optional Advanced SIMD and Floating-point Extension. It contains the following sections: About the Cortex-A53 Advanced SIMD and Floating-point Extension on page 1-2. Floating-point support on page 1-3. ARM DDI 0502G Copyright 2013-2016 ARM. All rights reserved. 1-1

Introduction 1.1 About the Cortex-A53 Advanced SIMD and Floating-point Extension The Cortex-A53 processor supports the Advanced SIMD and Scalar Floating-point instructions in the A64 instruction set, and the Advanced SIMD and VFP instructions in the A32 and T32 instruction sets. The ARMv8 architecture eliminates the concept of version numbers for Advanced SIMD and Floating-point in the AArch64 execution state. ARM DDI 0502G Copyright 2013-2016 ARM. All rights reserved. 1-2

Introduction 1.2 Floating-point support The Cortex-A53 floating-point implementation: Does not support floating-point exception trapping. Implements all scalar operations in hardware, with support for all combinations of: Rounding modes. Flush-to-zero. Default Not a Number (NaN) modes. ARM DDI 0502G Copyright 2013-2016 ARM. All rights reserved. 1-3

Chapter 2 Programmers Model This section describes the programmers model for the Cortex-A53 processor Advanced SIMD and Floating-point Extension in: Accessing the feature identification registers on page 2-2. AArch64 register summary on page 2-3. AArch64 register descriptions on page 2-4. AArch32 register summary on page 2-13. AArch32 register descriptions on page 2-14. ARM DDI 0502G Copyright 2013-2016 ARM. All rights reserved. 2-1

2.1 Accessing the feature identification registers Software can identify the Advanced SIMD and Floating-point features using the feature identification registers in the AArch64 and AArch32 execution states. You can access the feature identification registers in the AArch64 execution state using the MRS instructions, for example: MRS <Xt>, ID_AA64PFR0_ ; Read ID_AA64PFR0_ into Xt MRS <Xt>, MVFR0_ ; Read MVFR0_ into Xt MRS <Xt>, MVFR1_ ; Read MVFR1_ into Xt MRS <Xt>, MVFR2_ ; Read MVFR2_ into Xt You can access the feature identification registers in the AArch32 execution state using the VMRS instructions, for example: VMRS <Rt>, FPSID ; Read FPSID into Rt VMRS <Rt>, MVFR0 ; Read MVFR0 into Rt VMRS <Rt>, MVFR1 ; Read MFFR1 into Rt VMRS <Rt>, MVFR2 ; Read MVFR2 into Rt Table 2-1 lists the feature identification registers for the Advanced SIMD and Floating-point Extension. AArch64 name AArch32 name Description Table 2-1 Advanced SIMD and Scalar Floating-point feature identification registers ID_AA64PFR0_ - Gives additional information about implemented processor features in AArch64. See the ARM Cortex -A53 MPCore Processor Technical Reference Manual. - FPSID See Floating-Point System ID Register on page 2-14. MVFR0_ MVFR0 See: Media and Floating-point Feature Register 0 on page 2-7 (AArch64). Media and Floating-point Feature Register 0 on page 2-17 (AArch32). MVFR1_ MVFR1 See: Media and Floating-point Feature Register 1 on page 2-8 (AArch64). Media and Floating-point Feature Register 1 on page 2-18 (AArch32). MVFR2_ MVFR2 See: Media and Floating-point Feature Register 2 on page 2-9 (AArch64). Media and Floating-point Feature Register 2 on page 2-20 (AArch32). ARM DDI 0502G Copyright 2013-2016 ARM. All rights reserved. 2-2

2.2 AArch64 register summary Table 2-2 gives a summary of the Cortex-A53 processor Advanced SIMD and Floating-point system registers in the AArch64 execution state. Table 2-2 AArch64 Advanced SIMD and Floating-point system registers Name Type Reset Description FPCR RW 0x00000000 See Floating-point Control Register on page 2-4 FPSR RW 0x00000000 See Floating-point Status Register on page 2-5 MVFR0_ RO 0110222 See Media and Floating-point Feature Register 0 on page 2-7 MVFR1_ RO 2111111 See Media and Floating-point Feature Register 1 on page 2-8 MVFR2_ RW 0x00000043 See Media and Floating-point Feature Register 2 on page 2-9 FPEXC32_EL2 RW 0x00000700 See Floating-point Exception Control Register on page 2-11 ARM DDI 0502G Copyright 2013-2016 ARM. All rights reserved. 2-3

2.3 AArch64 register descriptions This section describes the Cortex-A53 processor Advanced SIMD and Floating-point system registers. Table 2-2 on page 2-3 provides cross-references to individual registers. 2.3.1 Floating-point Control Register The FPCR characteristics are: Purpose Controls floating-point extension behavior. Usage constraints The accessibility to the FPCR by exception level is: EL2 (SCR.NS = 1) (SCR.NS = 0) RW RW RW RW RW RW Configurations Attributes The named fields in this register map to the equivalent fields in the AArch32 FPSCR. See Floating-Point Status and Control Register on page 2-15. FPCR is a 32-bit register. Figure 2-1 shows the FPCR bit assignments. 31 27 26 25 24 23 22 21 0 RES0 RES0 AHP DN FZ RMode Figure 2-1 FPCR bit assignments Table 2-3 shows the FPCR bit assignments. Table 2-3 FPCR bit assignments Bits Name Function [31:27] - Reserved, RES0. [26] AHP Alternative half-precision control bit. The possible values are: 0 IEEE half-precision format selected. 1 Alternative half-precision format selected. [25] DN Default NaN mode control bit. The possible values are: 0 NaN operands propagate through to the output of a floating-point operation. 1 Any operation involving one or more NaNs returns the Default NaN. ARM DDI 0502G Copyright 2013-2016 ARM. All rights reserved. 2-4

Table 2-3 FPCR bit assignments (continued) Bits Name Function [24] FZ Flush-to-zero mode control bit. The possible values are: 0 Flush-to-zero mode disabled. Behavior of the floating-point system is fully compliant with the IEEE 754 standard. 1 Flush-to-zero mode enabled. [23:22] RMode Rounding Mode control field. The encoding of this field is: 0b00 Round to Nearest (RN) mode. 0b01 Round towards Plus Infinity (RP) mode. 0b10 Round towards Minus Infinity (RM) mode. 0b11 Round towards Zero (RZ) mode. [21:0] - Reserved, RES0. To access the FPCR: MRS <Xt>, FPCR ; Read FPCR into Xt MSR FPCR, <Xt> ; Write Xt to FPCR Table 2-4 shows the register access encoding. Table 2-4 FPCR access encoding op0 op1 CRn CRm op2 11 011 0100 0100 000 2.3.2 Floating-point Status Register The FPSR characteristics are: Purpose Provides floating-point system status information. Usage constraints This register is accessible as follows: EL2 (SCR.NS = 1) (SCR.NS = 0) RW RW RW RW RW RW Configurations Attributes The named fields in this register map to the equivalent fields in the AArch32 FPSCR. See Floating-Point Status and Control Register on page 2-15. FPSR is a 32-bit register. Note AArch64 floating-point comparisons set flags in the PSTATE register instead. Figure 2-2 on page 2-6 shows the FPSR bit assignments. ARM DDI 0502G Copyright 2013-2016 ARM. All rights reserved. 2-5

31 30 29 28 27 26 8 7 6 5 4 3 2 1 0 RES0 QC V C Z N IDC RES0 IXC UFC OFC DZC IOC Figure 2-2 FPSR bit assignments Table 2-5 shows the FPSR bit assignments. Table 2-5 FPSR bit assignments Bits Name Function [31] N Negative condition flag for AArch32 floating-point comparison operations. [30] Z Zero condition flag for AArch32 floating-point comparison operations. [29] C Carry condition flag for AArch32 floating-point comparison operations. [28] V Overflow condition flag for AArch32 floating-point comparison operations. [27] QC Cumulative saturation bit. This bit is set to 1 to indicate that an Advanced SIMD integer operation has saturated since a 0 was last written to this bit. [26:8] - Reserved, RES0. [7] IDC Input Denormal cumulative exception bit. This bit is set to 1 to indicate that the Input Denormal exception has occurred since 0 was last written to this bit. [6:5] - Reserved, RES0. [4] IXC Inexact cumulative exception bit. This bit is set to 1 to indicate that the Inexact exception has occurred since 0 was last written to this bit. [3] UFC Underflow cumulative exception bit. This bit is set to 1 to indicate that the Underflow exception has occurred since 0 was last written to this bit. [2] OFC Overflow cumulative exception bit. This bit is set to 1 to indicate that the Overflow exception has occurred since 0 was last written to this bit. [1] DZC Division by Zero cumulative exception bit. This bit is set to 1 to indicate that the Division by Zero exception has occurred since 0 was last written to this bit. [0] IOC Invalid Operation cumulative exception bit. This bit is set to 1 to indicate that the Invalid Operation exception has occurred since 0 was last written to this bit. To access the FPSR: MRS <Xt>, FPSR; Read FPSR into Xt MSR FPSR, <Xt>; Write Xt to FPSR ARM DDI 0502G Copyright 2013-2016 ARM. All rights reserved. 2-6

Table 2-6 shows the register access encoding. Table 2-6 FPSR access encoding op0 op1 CRn CRm op2 11 011 0100 0100 001 2.3.3 Media and Floating-point Feature Register 0 The MVFR0_ characteristics are: Purpose Describes the features provided by the Advanced SIMD and Floating-point Extension. Usage constraints This register is accessible as follows: EL2 (SCR.NS = 1) (SCR.NS = 0) - RO RO RO RO RO Configurations Attributes MVFR0_ is architecturally mapped to AArch32 register MVFR0. See Media and Floating-point Feature Register 0 on page 2-17. MVFR0_ is a 32-bit register. Figure 2-3 shows the MVFR0_ bit assignments. 31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0 FPRound FPShVec FPSqrt FPDivide FPTrap FPDP FPSP SIMDReg Figure 2-3 MVFR0_ bit assignments Table 2-7 shows the MVFR0_ bit assignments. Table 2-7 MVFR0_ bit assignments Bits Name Function [31:28] FPRound Indicates the rounding modes supported by the floating-point hardware: All rounding modes supported. [27:24] FPShVec Indicates the hardware support for floating-point short vectors: 0x0 Not supported. [23:20] FPSqrt Indicates the hardware support for floating-point square root operations: Supported. [19:16] FPDivide Indicates the hardware support for floating-point divide operations: Supported. [15:12] FPTrap Indicates whether the floating-point hardware implementation supports exception trapping: 0x0 Not supported. ARM DDI 0502G Copyright 2013-2016 ARM. All rights reserved. 2-7

Table 2-7 MVFR0_ bit assignments (continued) Bits Name Function [11:8] FPDP Indicates the hardware support for floating-point double-precision operations: 0x2 Supported, VFPv3 or greater. See the ARM Architecture Reference Manual, ARMv8 for more information. [7:4] FPSP Indicates the hardware support for floating-point single-precision operations: 0x2 Supported, VFPv3 or greater. See the ARM Architecture Reference Manual, ARMv8 for more information. [3:0] SIMDReg Indicates support for the Advanced SIMD register bank: 0x2 Supported, 32 x 64-bit registers supported. See the ARM Architecture Reference Manual, ARMv8 for more information. To access the MVFR0_: MRS <Xt>, MVFR0_ ; Read MVFR0_ into Xt Table 2-8 shows the register access encoding. Table 2-8 MVFR0_ access encoding op0 op1 CRn CRm op2 11 000 0000 0011 000 2.3.4 Media and Floating-point Feature Register 1 The MVFR1_ characteristics are: Purpose Describes the features provided by the Advanced SIMD and Floating-point extensions. Usage constraints This register is accessible as follows: EL2 (SCR.NS = 1) (SCR.NS = 0) - RO RO RO RO RO Configurations Attributes MVFR1_ is architecturally mapped to AArch32 register MVFR1. See Media and Floating-point Feature Register 1 on page 2-18. MVFR1_ is a 32-bit register. Figure 2-4 shows the MVFR1_ bit assignments. 31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0 SIMDFMAC FPHP SIMDHP SIMDSP SIMDInt SIMDLS FPDNaN FPFtZ Figure 2-4 MVFR1_ bit assignments ARM DDI 0502G Copyright 2013-2016 ARM. All rights reserved. 2-8

Table 2-9 shows the MVFR1_ bit assignments. Table 2-9 MVFR1_ bit assignments Bits Name Function [31:28] SIMDFMAC Indicates whether the Advanced SIMD and Floating-point Extension supports fused multiply accumulate operations: Implemented. [27:24] FPHP Indicates whether the Advanced SIMD and Floating-point Extension supports half-precision floating-point conversion instructions: 0x2 Instructions to convert between half-precision and single-precision, and between half-precision and double-precision, implemented. [23:20] SIMDHP Indicates whether the Advanced SIMD and Floating-point extension supports half-precision floating-point conversion operations: Implemented. [19:16] SIMDSP Indicates whether the Advanced SIMD and Floating-point extension supports single-precision floating-point operations: Implemented. [15:12] SIMDInt Indicates whether the Advanced SIMD and Floating-point extension supports integer operations: Implemented. [11:8] SIMDLS Indicates whether the Advanced SIMD and Floating-point extension supports load/store instructions: Implemented. [7:4] FPDNaN Indicates whether the floating-point hardware implementation supports only the Default NaN mode: Hardware supports propagation of NaN values. [3:0] FPFtZ Indicates whether the floating-point hardware implementation supports only the Flush-to-Zero mode of operation: Hardware supports full denormalized number arithmetic. To access the MVFR1_: MRS <Xt>, MVFR1_ ; Read MVFR1_ into Xt Table 2-10 shows the register access encoding. Table 2-10 MVFR1_ access encoding op0 op1 CRn CRm op2 11 000 0000 0011 001 2.3.5 Media and Floating-point Feature Register 2 The MVFR2_ characteristics are: Purpose Describes the features provided by the Advanced SIMD and Floating-point extensions. ARM DDI 0502G Copyright 2013-2016 ARM. All rights reserved. 2-9

Usage constraints This register is accessible as follows: EL2 (SCR.NS = 1) (SCR.NS = 0) - RO RO RO RO RO Configurations Attributes MVFR2_ is architecturally mapped to AArch32 register MVFR2. See Media and Floating-point Feature Register 2 on page 2-20. MVFR2_ is a 32-bit register. Figure 2-5 shows the MVFR2_ bit assignments. 31 8 7 4 3 0 RES0 FPMisc SIMDMisc Figure 2-5 MVFR2_ bit assignments Table 2-11 shows the MVFR2_ bit assignments. Table 2-11 MVFR2_ bit assignments Bits Name Function [31:8] - Reserved, RES0. [7:4] FPMisc Indicates support for miscellaneous VFP features. 0x4 Supports: Floating-point selection. Floating-point Conversion to Integer with Directed Rounding modes. Floating-point Round to Integral Floating-point. Floating-point MaxNum and MinNum. [3:0] SIMDMisc Indicates support for miscellaneous Advanced SIMD features. 0x3 Supports: Floating-point Conversion to Integer with Directed Rounding modes. Floating-point Round to Integral Floating-point. Floating-point MaxNum and MinNum. To access the MVFR2_: MRS <Xt>, MVFR2_ ; Read MVFR2_ into Xt Table 2-12 shows the register access encoding. Table 2-12 MVFR2_ access encoding op0 op1 CRn CRm op2 11 000 0000 0011 010 ARM DDI 0502G Copyright 2013-2016 ARM. All rights reserved. 2-10

2.3.6 Floating-point Exception Control Register The FPEXC32_EL2 characteristics are: Purpose Provides access to the AArch32 register FPEXC from AArch64 state only. Its value has no effect on execution in AArch64 state. Usage constraints This register is accessible as follows: EL2 (SCR.NS = 1) (SCR.NS = 0) - - - RW RW RW Configurations Attributes FPEXC32_EL2 is architecturally mapped to AArch32 register FPEXC. See Floating-Point Exception Control register on page 2-21. FPEXC32_EL2 is a 32-bit register. Figure 2-6 shows the FPEXC32_EL2 bit assignments. 31 30 29 11 10 8 7 0 RES0 RES1 RES0 EN EX Table 2-13 shows the FPEXC32_EL2 Register bit assignments. Figure 2-6 FPEXC32_EL2 bit assignments Table 2-13 FPEXC32_EL2 bit assignments Bits Name Function [31] EX Exception bit. RES0 The Cortex-A53 processor implementation does not generate asynchronous VFP exceptions. [30] EN Enable bit. A global enable for the Advanced SIMD and VFP extensions: [29:11] - Reserved, RES0. [10:8] - Reserved, RES1. [7:0] - Reserved, RES0. 0 The Advanced SIMD and VFP extensions are disabled. This is the reset value. 1 The Advanced SIMD and VFP extensions are enabled and operate normally. This bit applies only to AArch32 execution, and only when is not AArch64. To access the FPEXC_EL2: MRS <Xt>, FPEXC32_EL2 ; Read FPEXC32_EL2 into Xt MSR FPEXC32_EL2, <Xt> ; Write Xt to FPEXC32_EL2 See also Accessing the feature identification registers on page 2-2. ARM DDI 0502G Copyright 2013-2016 ARM. All rights reserved. 2-11

Table 2-14 shows the register access encoding. Table 2-14 FPEXC_EL2 access encoding op0 op1 CRn CRm op2 11 100 0101 0011 000 ARM DDI 0502G Copyright 2013-2016 ARM. All rights reserved. 2-12

2.4 AArch32 register summary Table 2-15 gives a summary of the Cortex-A53 processor Advanced SIMD and Floating-point system registers in the AArch32 execution state. Table 2-15 AArch32 Advanced SIMD and Floating-point system registers Name Type Reset Description FPSID RO 0x41034034 See Floating-Point System ID Register on page 2-14 FPSCR RW 0x00000000 See Floating-Point Status and Control Register on page 2-15 MVFR0 RO 0110222 See Media and Floating-point Feature Register 0 on page 2-17 MVFR1 RO 2111111 See Media and Floating-point Feature Register 1 on page 2-18 MVFR2 RW 0x00000043 See Media and Floating-point Feature Register 2 on page 2-20 FPEXC RW 0x00000700 See Floating-Point Exception Control register on page 2-21 Note The Floating-Point Instruction Registers, FPINST and FPINST2 are not implemented, and any attempt to access them is UNPREDICTABLE. See the ARM Architecture Reference Manual, ARMv8 for information on permitted accesses to the Advanced SIMD and Floating-point system registers. ARM DDI 0502G Copyright 2013-2016 ARM. All rights reserved. 2-13

2.5 AArch32 register descriptions This section describes the Cortex-A53 processor Advanced SIMD and Floating-point system registers. Table 2-15 on page 2-13 provides cross-references to individual registers. 2.5.1 Floating-Point System ID Register The FPSID characteristics are: Purpose Provides top-level information about the floating-point implementation. Usage constraints This register is accessible as follows: EL2 (SCR.NS = 1) (SCR.NS = 0) - - Config RO Config Config RO Configurations Attributes Access to this register depends on the values of CPACR.{cp10,cp11}, NSACR.{cp10,cp11}, and HCPTR.{TCP10,TCP11}. For details of which field values permit access at specific exception levels, see the ARM Architecture Reference Manual, ARMv8. This register largely duplicates information held in the MIDR. ARM deprecates use of it. FPSID is a 32-bit register. Figure 2-7 shows the FPSID bit assignments. 31 24 23 22 16 15 8 7 4 3 0 Implementer Subarchitecture Part number Variant Revision SW Figure 2-7 FPSID bit assignments Table 2-16 shows the FPSID bit assignments. Table 2-16 FPSID bit assignments Bits Name Function [31:24] Implementer Indicates the implementer: 0x41 ARM Limited. [23] SW Software bit. This bit indicates that a system provides only software emulation of the floating-point instructions: 0 The system includes hardware support for floating-point operations. [22:16] Subarchitecture Subarchitecture version number: 0x03 VFPv3 architecture, or later, with no subarchitecture. The entire floating-point implementation is in hardware, and requires no software support code. The MVFR0, MVFR1 and MVFR2 registers indicate the VFP architecture version. ARM DDI 0502G Copyright 2013-2016 ARM. All rights reserved. 2-14

Table 2-16 FPSID bit assignments (continued) Bits Name Function [15:8] Part number Indicates the part number for the floating-point implementation: 0x40 Cortex-A53 processor. [7:4] Variant Indicates the variant number: 0x3 Cortex-A53 processor. [3:0] Revision Indicates the revision number for the floating-point implementation: 0x4 r0p4. To access the FPSID: VMRS <Rt>, FPSID ; Read FPSID into Rt 2.5.2 Floating-Point Status and Control Register The FPSCR characteristics are: Purpose Provides floating-point system status information and control. Usage constraints This register is accessible as follows: EL2 (SCR.NS = 1) (SCR.NS = 0) Config RW Config RW Config Config RW Access to this register depends on the values of CPACR.{cp10,cp11}, NSACR.{cp10,cp11}, HCPTR.{TCP10,TCP11} and FPEXC.EN. For details of which values of these fields allow access at which exception levels, see the ARM Architecture Reference Manual, ARMv8. Configurations Attributes There is one copy of this register that is used in both Secure and Nonsecure states. The named fields in this register map to the equivalent fields in the AArch64 FPCR and FPSR. See Floating-point Control Register on page 2-4 and Floating-point Status Register on page 2-5. FPSCR is a 32-bit register. Figure 2-8 shows the FPSCR bit assignments. 31 30 29 28 27 26 25 24 23 22 21 20 19 18 16 15 8 7 6 5 4 3 2 1 0 N Z C V Len RES0 QC AHP DN FZ RMode Stride RES0 IDC RES0 IXC UFC OFC DZC IOC Figure 2-8 FPSCR bit assignments ARM DDI 0502G Copyright 2013-2016 ARM. All rights reserved. 2-15

Table 2-17 shows the FPSCR bit assignments. Table 2-17 FPSCR bit assignments Bits Field Function [31] N Floating-point Negative condition code flag. Set to 1 if a floating-point comparison operation produces a less than result. [30] Z Floating-point Zero condition code flag. Set to 1 if a floating-point comparison operation produces an equal result. [29] C Floating-point Carry condition code flag. Set to 1 if a floating-point comparison operation produces an equal, greater than, or unordered result. [28] V Floating-point Overflow condition code flag. Set to 1 if a floating-point comparison operation produces an unordered result. [27] QC Cumulative saturation bit. This bit is set to 1 to indicate that an Advanced SIMD integer operation has saturated after 0 was last written to this bit. [26] AHP Alternative Half-Precision control bit: 0 IEEE half-precision format selected. 1 Alternative half-precision format selected. [25] DN Default NaN mode control bit: 0 NaN operands propagate through to the output of a floating-point operation. 1 Any operation involving one or more NaNs returns the Default NaN. The value of this bit only controls floating-point arithmetic. AArch32 Advanced SIMD arithmetic always uses the Default NaN setting, regardless of the value of the DN bit. [24] FZ Flush-to-zero mode control bit: 0 Flush-to-zero mode disabled. Behavior of the floating-point system is fully compliant with the IEEE 754 standard. 1 Flush-to-zero mode enable. The value of this bit only controls floating-point arithmetic. AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, regardless of the value of the FZ bit. [23:22] RMode Rounding Mode control field: 0b00 Round to Nearest (RN) mode. 0b01 Round towards Plus Infinity (RP) mode. 0b10 Round towards Minus Infinity (RM) mode. 0b11 Round towards Zero (RZ) mode. The specified rounding mode is used by almost all floating-point instructions. AArch32 Advanced SIMD arithmetic always uses the Round to Nearest setting, regardless of the value of the RMode bits. [21:20] Stride RES0. [19] - Reserved, RES0. [18:16] Len RES0. [15:8] - Reserved, RES0. [7] IDC Input Denormal cumulative exception bit. This bit is set to 1 to indicate that the Input Denormal exception has occurred since 0 was last written to this bit. [6:5] - Reserved, RES0. ARM DDI 0502G Copyright 2013-2016 ARM. All rights reserved. 2-16

Table 2-17 FPSCR bit assignments (continued) Bits Field Function [4] IXC Inexact cumulative exception bit. This bit is set to 1 to indicate that the Inexact exception has occurred since 0 was last written to this bit. [3] UFC Underflow cumulative exception bit. This bit is set to 1 to indicate that the Underflow exception has occurred since 0 was last written to this bit. [2] OFC Overflow cumulative exception bit. This bit is set to 1 to indicate that the Overflow exception has occurred since 0 was last written to this bit. [1] DZC Division by Zero cumulative exception bit. This bit is set to 1 to indicate that the Division by Zero exception has occurred since 0 was last written to this bit. [0] IOC Invalid Operation cumulative exception bit. This bit is set to 1 to indicate that the Invalid Operation exception has occurred since 0 was last written to this bit. To access the FPSCR: VMRS <Rt>, FPSCR ; Read FPSCR into Rt VMSR FPSCR, <Rt> ; Write Rt to FPSCR Note The Cortex-A53 processor implementation does not support the deprecated VFP short vector feature. Attempts to execute VFP data-processing instructions result in an Undefined Instruction exception. 2.5.3 Media and Floating-point Feature Register 0 The MVFR0 characteristics are: Purpose Describes the features provided by the Advanced SIMD and Floating-point Extension. Usage constraints This register is accessible as follows: EL2 (SCR.NS = 1) (SCR.NS = 0) - - Config RO Config Config RO Access to this register depends on the values of CPACR.{cp10,cp11}, NSACR.{cp10,cp11}, HCPTR.{TCP10,TCP11}, and FPEXC.EN. For details of which values of these fields allow access at which exception levels, see the ARM Architecture Reference Manual, ARMv8. Must be interpreted with MVFR1 and MVFR2.See Media and Floating-point Feature Register 1 on page 2-18 and Media and Floating-point Feature Register 2 on page 2-20. Configurations Attributes MVFR0 is architecturally mapped to AArch64 register MVFR0_. See Media and Floating-point Feature Register 0 on page 2-7. There is one copy of this register that is used in both Secure and Non-secure states. MVFR0 is a 32-bit register. ARM DDI 0502G Copyright 2013-2016 ARM. All rights reserved. 2-17

Figure 2-9 shows the MVFR0 bit assignments. 31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0 FPRound FPShVec FPSqrt FPDivide FPTrap FPDP FPSP SIMDReg Figure 2-9 MVFR0 bit assignments Table 2-18 shows the MVFR0 bit assignments. Table 2-18 MVFR0 bit assignments Bits Name Function [31:28] FPRound Indicates the rounding modes supported by the floating-point hardware: All rounding modes supported. [27:24] FPShVec Indicates the hardware support for floating-point short vectors: 0x0 Not supported. [23:20] FPSqrt Indicates the hardware support for floating-point square root operations: Supported. [19:16] FPDivide Indicates the hardware support for floating-point divide operations: Supported. [15:12] FPTrap Indicates whether the floating-point hardware implementation supports exception trapping: 0x0 Not supported. [11:8] FPDP Indicates the hardware support for floating-point double-precision operations: 0x2 Supported, VFPv3 or greater. See the ARM Architecture Reference Manual, ARMv8 for more information. [7:4] FPSP Indicates the hardware support for floating-point single-precision operations: 0x2 Supported, VFPv3 or greater. See the ARM Architecture Reference Manual, ARMv8 for more information. [3:0] SIMDReg Indicates support for the Advanced SIMD register bank: 0x2 Supported, 32 x 64-bit registers supported. See the ARM Architecture Reference Manual, ARMv8 for more information. To access the MVFR0: VMRS <Rt>, MVFR0 ; Read MVFR0 into Rt 2.5.4 Media and Floating-point Feature Register 1 The MVFR1 characteristics are: Purpose Describes the features provided by the Advanced SIMD and Floating-point extensions. Usage constraints This register is accessible as follows: EL2 (SCR.NS = 1) (SCR.NS = 0) - - Config RO Config Config RO ARM DDI 0502G Copyright 2013-2016 ARM. All rights reserved. 2-18

Access to this register depends on the values of CPACR.{cp10,cp11}, NSACR.{cp10,cp11}, HCPTR.{TCP10,TCP11}, and FPEXC.EN. For details of which values of these fields allow access at which exception levels, see the ARM Architecture Reference Manual, ARMv8. Must be interpreted with MVFR0 and MVFR2.See Media and Floating-point Feature Register 0 on page 2-17 and Media and Floating-point Feature Register 2 on page 2-20 Configurations Attributes MVFR1 is architecturally mapped to AArch64 register MVFR1_. See Media and Floating-point Feature Register 1 on page 2-8. There is one copy of this register that is used in both Secure and Non-secure states. MVFR1 is a 32-bit register. Figure 2-10 shows the MVFR1 bit assignments. 31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0 SIMDFMAC FPHP SIMDHP SIMDSP SIMDInt SIMDLS FPDNaN FPFtZ Figure 2-10 MVFR1 bit assignments Table 2-19 shows the MVFR1 bit assignments. Table 2-19 MVFR1 bit assignments Bits Name Function [31:28] SIMDFMAC Indicates whether the Advanced SIMD and Floating-point Extension supports fused multiply accumulate operations: Implemented. [27:24] FPHP Indicates whether the Advanced SIMD and Floating-point Extension supports half-precision floating-point conversion instructions: 0x2 Instructions to convert between half-precision and single-precision, and between half-precision and double-precision, implemented. [23:20] SIMDHP Indicates whether the Advanced SIMD and Floating-point extension supports half-precision floating-point conversion operations: Implemented. [19:16] SIMDSP Indicates whether the Advanced SIMD and Floating-point extension supports single-precision floating-point operations: Implemented. [15:12] SIMDInt Indicates whether the Advanced SIMD and Floating-point extension supports integer operations: Implemented. [11:8] SIMDLS Indicates whether the Advanced SIMD and Floating-point extension supports load/store instructions: Implemented. [7:4] FPDNaN Indicates whether the floating-point hardware implementation supports only the Default NaN mode: Hardware supports propagation of NaN values. [3:0] FPFtZ Indicates whether the floating-point hardware implementation supports only the Flush-to-Zero mode of operation: Hardware supports full denormalized number arithmetic. ARM DDI 0502G Copyright 2013-2016 ARM. All rights reserved. 2-19

To access the MVFR1: VMRS <Rt>, MVFR1 ; Read MVFR1 into Rt 2.5.5 Media and Floating-point Feature Register 2 The MVFR2 characteristics are: Purpose Describes the features provided by the Advanced SIMD and Floating-point extensions. Usage constraints This register is accessible as follows: EL2 (SCR.NS = 1) (SCR.NS = 0) - - Config RO Config Config RO Access to this register depends on the values of CPACR.{cp10,cp11}, NSACR.{cp10,cp11}, HCPTR.{TCP10,TCP11}, and FPEXC.EN. For details of which values of these fields allow access at which exception levels, see the ARM Architecture Reference Manual, ARMv8. Must be interpreted with MVFR0 and MVFR1. See Media and Floating-point Feature Register 0 on page 2-17 and Media and Floating-point Feature Register 1 on page 2-18 Configurations Attributes MVFR2 is architecturally mapped to AArch64 register MVFR2_. See Media and Floating-point Feature Register 2 on page 2-9. There is one copy of this register that is used in both Secure and Non-secure states. MVFR2 is a 32-bit register. Figure 2-11 shows the MVFR2 bit assignments. 31 8 7 4 3 0 RES0 FPMisc SIMDMisc Figure 2-11 MVFR2 bit assignments ARM DDI 0502G Copyright 2013-2016 ARM. All rights reserved. 2-20

Table 2-20 shows the MVFR2 bit assignments. Table 2-20 MVFR2 bit assignments Bits Name Function [31:8] - Reserved, RES0. [7:4] FPMisc Indicates support for miscellaneous VFP features. 0x4 Supports: Floating-point selection. Floating-point Conversion to Integer with Directed Rounding modes. Floating-point Round to Integral Floating-point. Floating-point MaxNum and MinNum. [3:0] SIMDMisc Indicates support for miscellaneous Advanced SIMD features. 0x3 Supports: Floating-point Conversion to Integer with Directed Rounding modes. Floating-point Round to Integral Floating-point. Floating-point MaxNum and MinNum. To access the MVFR2: VMRS <Rt>, MVFR2 ; Read MVFR2 into Rt 2.5.6 Floating-Point Exception Control register The FPEXC characteristics are: Purpose Provides a global enable for the Advanced SIMD and Floating-point extension, and indicates how the state of this extension is recorded. Usage constraints This register is accessible as follows: EL2 (SCR.NS = 1) (SCR.NS = 0) - - Config RW Config Config RW Access to this register depends on the values of CPACR.{cp10,cp11}, NSACR.{cp10,cp11}, and HCPTR.{TCP10,TCP11}. For details of which values of these fields allow access at which exception levels, see the ARM Architecture Reference Manual, ARMv8. Configurations Attributes FPEXC is architecturally mapped to AArch64 register FPEXC32_EL2. See Floating-point Exception Control Register on page 2-11. There is one copy of this register that is used in both Secure and Non-secure states. FPEXC is a 32-bit register. Figure 2-12 on page 2-22 shows the FPEXC bit assignments. ARM DDI 0502G Copyright 2013-2016 ARM. All rights reserved. 2-21

31 30 29 11 10 8 7 0 RES0 RES1 RES0 EN EX Figure 2-12 FPEXC bit assignments Table 2-21 shows the FPEXC Register bit assignments. Table 2-21 FPEXC bit assignments Bits Name Function [31] EX Exception bit. The Cortex-A53 processor implementation does not generate asynchronous VFP exceptions, therefore this bit is RES0. [30] EN Enable bit. A global enable for the Advanced SIMD and VFP extensions: 0 The Advanced SIMD and VFP extensions are disabled. [29:11] - Reserved, RES0. [10:8] - Reserved, RES1. [7:0] - Reserved, RES0. 1 The Advanced SIMD and VFP extensions are enabled and operate normally. The EN bit is cleared at reset. This bit applies only to AArch32 execution, and only when is not AArch64. To access the FPEXC register: VMRS <Rt>, FPEXC ; Read FPEXC into Rt See also Accessing the feature identification registers on page 2-2. ARM DDI 0502G Copyright 2013-2016 ARM. All rights reserved. 2-22

Appendix A Revisions This appendix describes the technical changes between released issues of this book. Table A-1 Issue A Change Location Affects First Release - - Table A-2 Differences between Issue A and Issue B Change Location Affects FPSID register updated Table 2-15 on page 2-13 Table 2-16 on page 2-14 r0p1 Table A-3 Differences between Issue B and Issue C Change Location Affects FPSID register updated Table 2-15 on page 2-13 Table 2-16 on page 2-14 r0p2 ARM DDI 0502G Copyright 2013-2016 ARM. All rights reserved. A-1

Revisions Table A-4 Differences between Issue C and Issue D Change Location Affects There are no technical changes. - - Table A-5 Differences between Issue C and Issue D Change Location Affects FPSID register updated Table 2-15 on page 2-13 Table 2-16 on page 2-14 r0p3 Table A-6 Differences between Issue D and Issue E Change Location Affects There are no technical changes. - - Table A-7 Differences between Issue E and Issue F Change Location Affects FPSID register updated Table 2-15 on page 2-13 Table 2-16 on page 2-14 r0p4 Table A-8 Differences between Issue F and Issue G Change Location Affects Clarify FP exceptions and exception trapping Floating-point support on page 1-3 r0p4 ARM DDI 0502G Copyright 2013-2016 ARM. All rights reserved. A-2