Note: Some 2022 Architecture features are not yet included.
Feature Name | Short description |
---|---|
FEAT_ABLE | Address Breakpoint Linking extension |
FEAT_ADERR, FEAT_ANERR | RASv2 Additional Error syndrome reporting, for Device and Normal memory |
FEAT_AIE | Memory Attribute Index Enhancement |
FEAT_B16B16 | Non-widening BFloat16 to BFloat16 arithmetic for SVE2.1 and SME2.1 |
FEAT_CLRBHB | A new instruction CLRBHB is added in HINT space |
FEAT_CSSC | Common Short Sequence Compression scalar integer instructions |
FEAT_CSV2_3 | New identification mechanism for Branch History information |
FEAT_D128 | 128-bit Translation Tables, 56 bit PA |
FEAT_Debugv8p9 | Debug 2022 |
FEAT_ECBHB | Imposes restrictions on branch hisory speculation around exceptions |
FEAT_ETEv1p3 | ETE support for v9.3 |
FEAT_FGT2 | Fine-grained traps 2 |
FEAT_HAFT | Hardware managed Access Flag for Table descriptors |
FEAT_ITE | Instrumentation trace extension |
FEAT_LRCPC3 | Load-Acquire RCpc instructions version 3 |
FEAT_LSE128 | 128-bit Atomics |
FEAT_LVA3 | 56-bit VA |
FEAT_MEC | Memory Encryption Contexts |
FEAT_MTE4, FEAT_MTE_CANONICAL_TAGS, FEAT_MTE_TAGGED_FAR, FEAT_MTE_STORE_ONLY, FEAT_MTE_NO_ADDRESS_TAGS | Support for Canonical tag checking, reporting of all non-address bits on a fault, Store-only Tag checking, Memory tagging with Address tagging disabled |
FEAT_MTE_ASYM_FAULT | Asymmetric Tag Check Fault handling |
FEAT_MTE_ASYNC | Asynchronous Tag Check Fault handling |
FEAT_MTE_PERM | Allocation tag access permission |
FEAT_PCSRv8p9 | PCSR disable control |
FEAT_PIE, FEAT_POE, FEAT_S1PIE, FEAT_S2PIE, FEAT_S1POE, FEAT_S2POE | Permission model enhancements |
FEAT_PMUv3p9 | EL0 access controls for PMU event counters |
FEAT_PMUv3_EDGE | PMU event edge detection |
FEAT_PMUv3_ICNTR | PMU instruction counter |
FEAT_PMUv3_SS | PMU snapshot |
FEAT_PRFMSLC | Prefetching enhancements |
FEAT_RASv2 | Reliability, Availability, and Serviceability (RAS) Extension version 2 |
FEAT_RPRFM | RPRFM range prefetch hint instruction |
FEAT_SCTLR2 | Extension to SCTLR_ELx |
FEAT_SEBEP | Synchronous Exception-based event profiling |
FEAT_SME_F16F16 | Non-widening half-precision FP16 to FP16 arithmetic for SME2.1 |
FEAT_SME2, FEAT_SME2p1 | Scalable Matrix Extension versions SME2 and SME2.1 |
FEAT_SPECRES | Adds new Clear Other Speculative Predictions instruction |
FEAT_SPMU | System PMU |
FEAT_SPEv1p4 | Addtional SPE events |
FEAT_SPE_FDS | SPE filtering by data source |
FEAT_SVE2p1 | Scalable Vector Extension version SVE2.1 |
FEAT_SYSINSTR128 | 128-bit System instructions |
FEAT_SYSREG128 | 128-bit System registers |
FEAT_TCR2 | Extension to TCR_ELx |
FEAT_THE | Translation Hardening Extension |
FEAT_TRBE_EXT | TRBE external mode |
Feature Name | Short description |
---|---|
FEAT_CMOW | Control for cache maintenance permission |
FEAT_CONSTPACFIELD | PAC Algorithm enhancement |
FEAT_Debugv8p8 | Debug v8.8 |
FEAT_HBC | Hinted conditional branches |
FEAT_HPMN0 | Setting of MDCR_EL2.HPMN to zero |
FEAT_NMI, FEAT_GICv3_NMI | Non-maskable Interrupts |
FEAT_MOPS | Standardization of memory operations |
FEAT_PACQARMA3 | Pointer authentication - QARMA3 algorithm |
FEAT_PMUv3_TH | Event counting threshold |
FEAT_PMUv3p8 | Armv8.8 PMU Extensions |
FEAT_PMUv3_EXT64 | Optional 64-bit external interface to the Performance Monitors |
FEAT_PMUv3_EXT32 | Represents the original mostly 32-bit external interface to the Performance Monitors |
FEAT_RNG_TRAP | Trapping support for RNDR and RNDRRS |
FEAT_SPEv1p3 | Armv8.8 Statistical Profiling Extensions |
FEAT_TIDCP1 | EL0 use of IMPLEMENTATION DEFINED functionality |
FEAT_BRBEv1p1 | Branch Record Buffer Extensions version 1.1 |
Feature Name | Short description |
---|---|
FEAT_AFP | Alternate floating-point behavior |
FEAT_HCX | Support for the HCRX_EL2 register |
FEAT_LPA2 | Larger physical address for 4KB and 16KB translation granules |
FEAT_LS64 | Support for 64 byte loads/stores without return |
FEAT_LS64_V | Support for 64-byte stores with return |
FEAT_LS64_ACCDATA | Support for 64-byte EL0 stores with return |
FEAT_MTE3 | MTE Asymmetric Fault Handling |
FEAT_PAN3 | Support for SCTLR_ELx.EPAN |
FEAT_PMUv3p7 | Armv8.7 PMU Extensions |
FEAT_RPRES | Increased precision of Reciprocal Estimate and Reciprocal Square Root Estimate |
FEAT_RME | Realm Management Extension |
FEAT_SME_FA64, FEAT_SME_F64F64, FEAT_SME_I16I64, FEAT_EBF16 | Additional instructions for the SME Extension |
FEAT_SPEv1p2 | Armv8.7 SPE |
FEAT_WFxT | WFE and WFI instructions with timeout |
FEAT_XS | XS attribute |
FEAT_BRBE | Branch Record Buffer Extensions |
Prior to June 2020, features names did not follow the FEAT_ convention. The table below lists old (ARMv8.x-) and new feature (FEAT_) names. Note that some names have been split into two; for example, ARMv8.0-AES is split into AES and PMULL
Old name | New name | Short description | Comments | |
---|---|---|---|---|
ARMv8.0-AdvSIMD | FEAT_AdvSIMD | Advanced SIMD Extension | ||
ARMv8.0-AES | FEAT_AES | Advanced SIMD AES instructions | ||
ARMv8.0-AES | FEAT_PMULL | Advanced SIMD PMULL instructions | ARMv8.0-AES is split into AES and PMULL | |
ARMv8.0-CP15SDISABLE2 | FEAT_CP15SDISABLE2 | CP15DISABLE2 | ||
ARMv8.0-CSV2 | FEAT_CSV2 | Cache Speculation Variant 2 | ||
- | FEAT_CSV2_1p1 | Cache Speculation Variant 2 version 1.1 | ||
- | FEAT_CSV2_1p2 | Cache Speculation Variant 2 version 1.2 | ||
ARMv8.0-CSV2_2 | FEAT_CSV2 | Cache Speculation Variant 2 version 2 | ||
ARMv8.0-CSV3 | FEAT_CSV3 | Cache Speculation Variant 3 | ||
ARMv8.0-DGH | FEAT_DGH | Data Gathering Hint | ||
ARMv8.0-DoubleLock | FEAT_DoubleLock | Double Lock | ||
ARMv8.0-ETS | FEAT_ETS | Enhanced Translation Synchronization | ||
ARMv8.0-FP | FEAT_FP | Floating point extension | ||
- | FEAT_IVIPT | The IVIPT Extension | ||
ARMv8.0-PCSample | FEAT_PCSRv8 | PC Sample-base Profiling extension (not EL3 and EL2) | ||
ARMv8.0-PredInv | FEAT_SPECRES | Speculation restriction instructions | ||
RAS | FEAT_RAS | Reliability, Availability, and Serviceability (RAS) Extension | ||
ARMv8.0-SB | FEAT_SB | Speculation barrier | ||
ARMv8.0-SHA | FEAT_SHA1 | Advanced SIMD SHA1 instructions | ||
ARMv8.0-SHA | FEAT_SHA256 | Advanced SIMD SHA256 instructions | Split ARMv8.2-SHA into SHA-256, SHA-512 and SHA-3 | |
ARMv8.0-SSBS | FEAT_SSBS | Speculative Store Bypass Safe Instruction | ARMv8.0-SSBS is split into SSBS and SSBS2 | |
ARMv8.0-SSBS | FEAT_SSBS2 | MRS and MSR instructions for SSBS | ARMv8.0-SSBS is split into SSBS and SSBS2 | |
- | FEAT_CRC32 | CRC32 instructions | ||
- | FEAT_nTLBPA | No intermediate caching by output address in TLB | ||
ARMv8.1-Debug | FEAT_Debugv8p1 | Debug with VHE | ||
ARMv8.1-HPD | FEAT_HPDS | Hierarchical permission disables in translation tables | ||
ARMv8.1-LOR | FEAT_LOR | Limited ordering regions | ||
ARMv8.1-LSE | FEAT_LSE | Large System Extensions | ||
ARMv8.1-PAN | FEAT_PAN | Privileged access-never | ||
ARMv8.1-PMU | FEAT_PMUv3p1 | PMU extensions version 3.1 | ||
ARMv8.1-RDMA | FEAT_RDM | Rounding double multiply accumulate | ||
ARMv8.1-TTHM | FEAT_HAFDBS | Hardware updates to access flag and dirty state in translation tables | ||
ARMv8.1-VHE | FEAT_VHE | Virtualization Host Extensions | ||
ARMv8.1-VMID16 | FEAT_VMID16 | 16-bit VMID | ||
ARMv8.2-AA32BF16 | FEAT_AA32BF16 | AArch32 BFloat16 instructions | ||
ARMv8.2-AA32HPD | FEAT_AA32HPD | AArch32 Hierarchical permission disables | ||
ARMv8.2-AA32I8MM | FEAT_AA32I8MM | AArch32 Int8 Matrix Multiplication | ||
ARMv8.2-ATS1E1 | FEAT_PAN2 | AT S1E1R and AT S1E1W instruction variants for PAN | ||
ARMv8.2-BF16 | FEAT_BF16 | AARch64 BFloat16 instructions | ||
ARMv8.2-DCCVADP | FEAT_DPB2 | DC CVADP instruction | ||
ARMv8.2-DCPoP | FEAT_DPB | DC CVAP instruction | ||
ARMv8.2-Debug | FEAT_Debugv8p2 | ARMv8.2 Debug | ||
ARMv8.2-DotProd | FEAT_DotProd | Advanced SIMD Int8 dot product instructions | ||
ARMv8.2-EVT | FEAT_EVT | Enhanced Virtualization Traps | ||
ARMv8.2-F32MM | FEAT_F32MM | SVE single-precision floating-point matrix multiply instruction | ||
ARMv8.2-F64MM | FEAT_F64MM | SVE double-precision floating-point matrix multiply instruction | ||
ARMv8.2-FHM | FEAT_FHM | Half-precision floating-point FMLAL instructions | ||
ARMv8.2-FP16 | FEAT_FP16 | Half-precision floating-point data processing | ||
ARMv8.2-I8MM | FEAT_I8MM | Int8 Matrix Multiplication | ||
ARMv8.2-IESB | FEAT_IESB | Implicit Error synchronization event | ||
ARMv8.2-LPA | FEAT_LPA | Large PA and IPA support | ||
ARMv8.2-LSMAOC | FEAT_LSMAOC | Load/Store instruction multiple atomicity and ordering controls | ||
ARMv8.2-LVA | FEAT_LVA | Large VA support | ||
MPAM | FEAT_MPAM | Memory Partitioning and Monitoring | ||
ARMv8.2-PCSample | FEAT_PCSRv8p2 | PC Sample-based profiling version 8.2 | ||
ARMv8.2-SHA | FEAT_SHA3 | Advanced SIMD EOR3, RAX1, XAR, and BCAX instructions | Split ARMv8.2-SHA into SHA-256, SHA-512 and SHA-3 | |
ARMv8.2-SHA | FEAT_SHA512 | Advanced SIMD SHA512 instructions | Split ARMv8.2-SHA into SHA-256, SHA-512 and SHA-3 | |
ARMv8.2-SM | FEAT_SM3 | Advanced SIMD SM3 instructions | Split into SM3 and SM4 | |
ARMv8.2-SM | FEAT_SM4 | Advanced SIMD SM4 instructions | Split into SM3 and SM4 | |
SPE | FEAT_SPE | Statistical Profiling Extension | ||
SVE | FEAT_SVE | Scalable Vector Extension | ||
ARMv8.2-TTCNP | FEAT_TTCNP | Common not private translations | ||
ARMv8.2-TTPBHA | FEAT_HPDS2 | Heirarchical permission disables in translation tables 2 | ||
ARMv8.2-TTS2UXN | FEAT_XNX | Execute-never control distinction by Exception level at stage 2 | ||
ARMv8.2-UAO | FEAT_UAO | Unprivileged Access Override control | ||
ARMv8.2-VPIPT | FEAT_VPIPT | VMID-aware PIPT instruction cache | ||
ARMv8.3-CCIDX | FEAT_CCIDX | Extended cache index | ||
ARMv8.3-CompNum | FEAT_FCMA | Floating-point FCMLA and FCADD instructions | ||
ARMv8.3-DoPD | FEAT_DoPD | Debug over Powerdown | ||
- | FEAT_EPAC | Enhanced Pointer authentication | ||
ARMv8.3-FPAC | FEAT_FPAC | Faulting on pointer authentication instructions | ||
- | FEAT_FPACCOMBINE | Faulting on combined pointer authentication instructions | ||
ARMv8.3-JSConv | FEAT_JSCVT | JavaScript FJCVTS conversion instruction | ||
ARMv8.3-RCpc | FEAT_LRCPC | Load-acquire RCpc instructions | ||
ARMv8.3-NV | FEAT_NV | Nested virtualization | ||
- | FEAT_PACQARMA5 | Pointer authentication - QARMA5 algorithm | ||
- | FEAT_PACIMP | Pointer authentication - IMPLEMENTATION DEFINED algorithm | ||
ARMv8.3-TPAuth | FEAT_PAuth | Pointer authentication | ||
ARMv8.3-PAuth2 | FEAT_PAuth2 | Enhancements to pointer authentication | ||
ARMv8.3-SPE | FEAT_SPEv1p1 | Statistical Profiling Extensions version 1.1 | ||
AMUv1 | FEAT_AMUv1 | Activity Monitors Extension | ||
ARMv8.4-CNTSC | FEAT_CNTSC | Generic Counter Scaling | ||
ARMv8.4-Debug | FEAT_Debugv8p4 | Debug relaxations and extensions version 8.4 | ||
ARMv8.4-DFE | FEAT_DoubleFault | Double Fault Extension | ||
ARMv8.4-DIT | FEAT_DIT | Data Independent Timing instructions | ||
ARMv8.4-CondM | FEAT_FlagM | Condition flag manipulation | ||
ARMv8.4-IDST | FEAT_IDST | ID space trap handling | ||
ARMv8.4-RCpc | FEAT_LRCPC2 | Load-acquire RCpc instructions version 2 | ||
ARMv8.4-LSE | FEAT_LSE2 | Large System Extensions version 2 | ||
ARMv8.4-NV | FEAT_NV2 | Enhanced support for nested virtualization | ||
ARMv8.4-PMU | FEAT_PMUv3p4 | PMU extension version 3.4 | ||
ARMv8.4-RAS | FEAT_RASv1p1 | Reliability, Availability, and Serviceability (RAS) Extension version 1.1 | ||
ARMv8.4-S2FWB | FEAT_S2FWB | Stage 2 forced write-back | ||
ARMv8.4-SecEL2 | FEAT_SEL2 | Secure EL2 | ||
ARMv8.4-TLBI | FEAT_TLBIOS | TLB invalidate outer-shared instructions | Split into TLBIOS and TLBIRANGE | |
ARMv8.4-TLBI | FEAT_TLBIRANGE | TLB range invalidate range instructions | Split into TLBIOS and TLBIRANGE | |
ARMv8.4-Trace | FEAT_TRF | Self hosted Trace Extensions | ||
ARMv8.4-TTL | FEAT_TTL | Translation Table Level | ||
ARMv8.4-TTRem | FEAT_BBM | Translation table break before make levels | ||
ARMv8.4-TTST | FEAT_TTST | Small translation tables | ||
ARMv8.5-BTI | FEAT_BTI | Branch target identification | ||
ARMv8.5-CondM | FEAT_FlagM2 | Condition flag manipulation version 2 | ||
ARMv8.5-CSEH | FEAT_ExS | Disabling context synchronizing exception entry and exit | ||
ARMv8.5-E0PD | FEAT_E0PD | Preventing EL0 access to halves of address maps | ||
ARMv8.5-FRINT | FEAT_FRINTTS | FRINT32Z, FRINT32X, FRINT64Z, and FRINT64X instructions | ||
ARMv8.5-GTG | FEAT_GTG | Guest translation granule size | ||
ARMv8.5-MemTag | FEAT_MTE | Instruction-only Memory Tagging Extension | ||
ARMv8.5-MemTag | FEAT_MTE2 | Full Memory Tagging Extension | ||
ARMv8.5-PMU | FEAT_PMUv3p5 | PMU Extension version 3.5 | ||
ARMv8.5-RNG | FEAT_RNG | Random number generator | ||
ARMv8.6-AMU | FEAT_AMUv1p1 | Activity Monitors Extension version 1.1 | ||
ARMv8.6-ECV | FEAT_ECV | Enhanced counter virtualization | ||
ARMv8.6-FGT | FEAT_FGT | Fine Grain Traps | ||
ARMv8.6-MPAM | FEAT_MPAMv0p1 | Memory Partitioning and Monitoring version 0.1 | ||
ARMv8.6-MPAM | FEAT_MPAMv1p1 | Memory Partitioning and Monitoring version1.1 | ||
ARMv8.6-MTPMU | FEAT_MTPMU | Multi-threaded PMU Extensions | ||
ARMv8.6-TWED | FEAT_TWED | Delayed trapping of WFE | ||
ETMv4 | FEAT_ETMv4 | Embedded Trace Macrocell version4 | ||
ETMv4.1 | FEAT_ETMv4p1 | Embedded Trace Macrocell version 4.1 | ||
ETMv4.2 | FEAT_ETMv4p2 | Embedded Trace Macrocell version 4.2 | ||
ETMv4.3 | FEAT_ETMv4p3 | Embedded Trace Macrocell version 4.3 | ||
ETMv4.4 | FEAT_ETMv4p4 | Embedded Trace Macrocell version 4.3 | ||
ETMv4.5 | FEAT_ETMv4p5 | Embedded Trace Macrocell version 4.4 | ||
ETMv4.6 | FEAT_ETMv4p6 | Embedded Trace Macrocell version 4.5 | ||
GICv3 | FEAT_GICv3 | Generic Interrupt Controller version 3 | ||
GICv3.1 | FEAT_GICv3p1 | Generic Interrupt Controller version 3.1 | ||
- | FEAT_GICv3_TDIR | Trapping Non-secure EL1 writes to ICV_DIR | ||
GICv4 | FEAT_GICv4 | Generic Interrupt Controller version 4 | ||
GICv4.1 | FEAT_GICv4p1 | Generic Interrupt Controller version 4.1 | ||
PMUv3 | FEAT_PMUv3 | PMU extension version 3 | ||
ETE | FEAT_ETE | Embedded Trace Extension | ||
ETEv1.1 | FEAT_ETEv1p1 | Embedded Trace Extension, version 1.1 | ||
SVE2 | FEAT_SVE2 | SVE version 2 | ||
SVE2-AES | FEAT_SVE_AES | SVE AES instructions | ||
SVE2-AES | FEAT_SVE_PMULL128 | SVE PMULL instructions | SVE2-AES is split into AES and PMULL support | |
SVE2-BitPerm | FEAT_SVE_BitPerm | SVE Bit Permute | ||
SVE2-SHA3 | FEAT_SVE_SHA3 | SVE SHA-3 instructions | ||
SVE2-SM4 | FEAT_SVE_SM4 | SVE SM4 instructions | ||
TME | FEAT_TME | Transactional Memory Extension | ||
TRBE | FEAT_TRBE | Trace Buffer Extension | ||
- | FEAT_SME | Scalable Matrix Extension |