自 2020 年 6 月开始,Arm A-profile 架构的 feature name 全部更改为标准的格式,都以 FEAT_ 前缀打头。从 feature name 上已经无法分辨是那个 archtecture 版本引入的功能了。
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 | ||
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 | ||
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 | |||
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_DotProd2 | 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 | ||
ARMv8.3-FPAC | FEAT_FPAC | Faulting on pointer authentication instructions | ||
ARMv8.3-JSConv | FEAT_JSCVT | JavaScript FJCVTS conversion instruction | ||
ARMv8.3-NV | FEAT_NV | Nested virtualization | ||
ARMv8.3-PAuth | FEAT_PAuth | Pointer authentication | ||
ARMv8.3-PAuth2 | FEAT_PAuth2 | Pointer authentication version 2 | ||
ARMv8.3-RCpc | FEAT_LRCPC | Load-acquire RCpc instructions | ||
AMUv1 | FEAT_AMUv1 | Activity Monitors Extension | ||
ARMv8.4-CNTSC | FEAT_CNTSC | Generic Counter Scaling | ||
ARMv8.4-CondM | FEAT_FlagM | Condition flag manipulation | ||
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-IDST | FEAT_IDST | ID space trap handling | ||
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-RCpc | FEAT_LRCPC2 | Load-acquire RCpc instructions version 2 | ||
ARMv8.4-S2FWB | FEAT_S2FWB | Stage 2 forced write-back | ||
ARMv8.4-SecEL2 | FEAT_SEL2 | Secure EL2 | ||
ARMv8.3-SPE | FEAT_SPEv1p1 | Statistical Profiling Extensions version 1.1 | ||
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 | ||
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 | FAT - Embedded Trace Extension | ||
ETEv1.1 | FEAT_ETEv1p1 | FAT - Embedded Trace Extension, version 1.1 | ||
SVE2 | FEAT_SVE2 | FAT - SVE version 2 | ||
SVE2-AES | FEAT_SVE_AES | FAT - SVE AES instructions | ||
SVE2-AES | FEAT_SVE_PMULL | FAT - SVE PMULL instructions | SVE2-AES is split into AES and PMULL support | |
SVE2-BitPerm | FEAT_SVE_BitPerm | FAT - SVE Bit Permute | ||
SVE2-SHA3 | FEAT_SVE_SHA3 | FAT - SVE SHA-3 instructions | ||
SVE2-SM4 | FEAT_SVE_SM4 | FAT - SVE SM4 instructions | ||
TME | FEAT_TME | FAT - Transactional Memory Extension | ||
TRBE | FEAT_TRBE | FAT - Trace Buffer Extension | ||
NA | FEAT_AFP | Alternate floating-point behavior | ||
NA | FEAT_HCX | Support for the HCRX_EL2 register | ||
NA | FEAT_LPA2 | Larger physical address for 4KB and 16KB translation granules | ||
NA | FEAT_LS64 | Support for 64 byte loads/stores without return | ||
NA | FEAT_LS64_V | Support for 64 byte stores with return | ||
NA | FEAT_LS64_ACCDATA | Support for 64 byte EL0 stores with return | ||
NA | FEAT_MTE3 | MTE Asymmetric Fault Handling | ||
NA | FEAT_PAN3 | Support for SCTLR_ELx.EPAN | ||
NA | FEAT_PMUv3p7 | Armv8.7 PMU Extensions | ||
NA | FEAT_RPRES | Increased precison of Reciprocal Estimate and Reciprocal Square Root Estimate | ||
NA | FEAT_SPEv1p2 | Armv8.7 SPE | ||
NA | FEAT_WFxT | WFE and WFI instructions with timeout | ||
NA | FEAT_XS | XS attribute | ||
NA | FEAT_BRBE | Branch Record Buffer Extensions | ||
NA | FEAT_CSV2_1p1 | Cache Speculation Variant 2 version 1.1 | ||
NA | FEAT_CSV2_1p2 | Cache Speculation Variant 2 version 1.2 | ||
NA | FEAT_nTLBPA | No intermediate caching by output address in TLB |
Reference: https://developer.arm.com/architectures/cpu-architecture/a-profile/exploration-tools/feature-names-for-a-profile