@@ -4,7 +4,7 @@ version: 2024Q2
44date-of-issue: 21 June 2024
55# LaTeX specific variables
66copyright-text: "Copyright: see section \\texorpdfstring{\\nameref{copyright}}{Copyright}."
7- draftversion: false
7+ draftversion: true
88# Jekyll specific variables
99header_counter: true
1010toc: true
@@ -394,6 +394,10 @@ Armv8.4-A [[ARMARMv84]](#ARMARMv84). Support is added for the Dot Product intrin
394394* Added [**Alpha**](#current-status-and-anticipated-changes)
395395 support for SVE2.1 (FEAT_SVE2p1).
396396
397+ #### Changes for next release
398+
399+ * Fixed incorrect system register dependencies in Function Multi Versioning.
400+
397401### References
398402
399403This document refers to the following documents.
@@ -2593,66 +2597,66 @@ The following table lists the architectures feature mapping for AArch64
25932597 | **Priority** | **Architecture name** | **Name** | **Dependent feature registers** |
25942598 | ------------- | ------------------------ | ------------- | ----------------------------------------- |
25952599 | 0 | N/A | default | N/A |
2596- | 10 | `FEAT_RNG` | rng | ```ID_AA64ISAR0_EL1.RNDR = = 0b0001``` |
2597- | 20 | `FEAT_FlagM` | flagm | ```ID_AA64ISAR0_EL1.TS == 0b0001 OR ``` <br> ```ID_AA64ISAR0_EL1.TS == 0b0010``` |
2598- | 30 | `FEAT_FlagM2` | flagm2 | ```ID_AA64ISAR0_EL1.TS = = 0b0010``` |
2599- | 80 | `FEAT_LSE` | lse | ```ID_AA64ISAR0_EL1.Atomic == 0b0001 ``` |
2600+ | 10 | `FEAT_RNG` | rng | ```ID_AA64ISAR0_EL1.RNDR > = 0b0001``` |
2601+ | 20 | `FEAT_FlagM` | flagm | ```ID_AA64ISAR0_EL1.TS >= 0b0001``` |
2602+ | 30 | `FEAT_FlagM2` | flagm2 | ```ID_AA64ISAR0_EL1.TS > = 0b0010``` |
2603+ | 80 | `FEAT_LSE` | lse | ```ID_AA64ISAR0_EL1.Atomic >= 0b0010 ``` |
26002604 | 90 | Floating-point | fp | ```ID_AA64PFR0_EL1.FP != 0b1111``` |
26012605 | 100 | `FEAT_AdvSIMD` | simd | ```ID_AA64PFR0_EL1.AdvSIMD != 0b1111``` |
2602- | 104 | `FEAT_DotProd` | dotprod | ```ID_AA64ISAR0_EL1.DP = = 0b0001``` |
2603- | 106 | `FEAT_SM3`, `FEAT_SM4` | sm4 | ```ID_AA64ISAR0_EL1.SM4 == 0b0001 AND ``` <br> ```ID_AA64ISAR0_EL1.SM3 == 0b0001``` |
2604- | 108 | `FEAT_RDM` | rdm, rdma | ```ID_AA64ISAR0_EL1.RDM = = 0b0001``` |
2605- | 110 | `FEAT_CRC32` | crc | ```ID_AA64ISAR0_EL1.CRC32 = = 0b0001``` |
2606- | 120 | `FEAT_SHA1` | sha1 | ```ID_AA64ISAR0_EL1.SHA1 = = 0b0001``` |
2607- | 130 | `FEAT_SHA256` | sha2 | ```ID_AA64ISAR0_EL1.SHA2 = = 0b0001``` |
2608- | 140 | `FEAT_SHA512`,`FEAT_SHA3`| sha3 | ```ID_AA64ISAR0_EL1.SHA3 != 0b0000 ``` |
2606+ | 104 | `FEAT_DotProd` | dotprod | ```ID_AA64ISAR0_EL1.DP > = 0b0001``` |
2607+ | 106 | `FEAT_SM3`, `FEAT_SM4` | sm4 | ```ID_AA64ISAR0_EL1.SM4 >= 0b0001``` |
2608+ | 108 | `FEAT_RDM` | rdm, rdma | ```ID_AA64ISAR0_EL1.RDM > = 0b0001``` |
2609+ | 110 | `FEAT_CRC32` | crc | ```ID_AA64ISAR0_EL1.CRC32 > = 0b0001``` |
2610+ | 120 | `FEAT_SHA1` | sha1 | ```ID_AA64ISAR0_EL1.SHA1 > = 0b0001``` |
2611+ | 130 | `FEAT_SHA256` | sha2 | ```ID_AA64ISAR0_EL1.SHA2 > = 0b0001``` |
2612+ | 140 | `FEAT_SHA512`,`FEAT_SHA3`| sha3 | ```ID_AA64ISAR0_EL1.SHA3 >= 0b0001 ``` |
26092613 | 150 | `FEAT_AES` | aes | ```ID_AA64ISAR0_EL1.AES >= 0b0001``` |
2610- | 160 | `FEAT_PMULL` | pmull | ```ID_AA64ISAR0_EL1.AES = = 0b0010``` |
2614+ | 160 | `FEAT_PMULL` | pmull | ```ID_AA64ISAR0_EL1.AES > = 0b0010``` |
26112615 | 170 | `FEAT_FP16` | fp16 | ```ID_AA64PFR0_EL1.FP == 0b0001``` |
2612- | 175 | `FEAT_FHM` | fp16fml | ```ID_AA64ISAR0_EL1.FHM = = 0b0001``` |
2613- | 180 | `FEAT_DIT` | dit | ```ID_AA64PFR0_EL1.DIT = = 0b0001``` |
2616+ | 175 | `FEAT_FHM` | fp16fml | ```ID_AA64ISAR0_EL1.FHM > = 0b0001``` |
2617+ | 180 | `FEAT_DIT` | dit | ```ID_AA64PFR0_EL1.DIT > = 0b0001``` |
26142618 | 190 | `FEAT_DPB` | dpb | ```ID_AA64ISAR1_EL1.DPB >= 0b0001``` |
2615- | 200 | `FEAT_DPB2` | dpb2 | ```ID_AA64ISAR1_EL1.DPB == 0b0010``` |
2616- | 210 | `FEAT_JSCVT` | jscvt | ```ID_AA64ISAR1_EL1.JSCVT = = 0b0001``` |
2617- | 220 | `FEAT_FCMA` | fcma | ```ID_AA64ISAR1_EL1.FCMA = = 0b0001``` |
2618- | 230 | `FEAT_LRCPC` | rcpc | ```ID_AA64ISAR1_EL1.LRCPC != 0b0000 ``` |
2619- | 240 | `FEAT_LRCPC2` | rcpc2 | ```ID_AA64ISAR1_EL1.LRCPC = = 0b0010``` |
2620- | 241 | `FEAT_LRCPC3` | rcpc3 | ```ID_AA64ISAR1_EL1.LRCPC = = 0b0011``` |
2621- | 250 | `FEAT_FRINTTS` | frintts | ```ID_AA64ISAR1_EL1.FRINTTS = = 0b0001``` |
2622- | 260 | `FEAT_DGH` | dgh | ```ID_AA64ISAR1_EL1.DGH = = 0b0001``` |
2623- | 270 | `FEAT_I8MM` | i8mm | ```ID_AA64ISAR1_EL1.I8MM = = 0b0001``` |
2624- | 280 | `FEAT_BF16` | bf16 | ```ID_AA64ISAR1_EL1.BF16 != 0b0000 ``` |
2625- | 290 | `FEAT_EBF16` | ebf16 | ```ID_AA64ISAR1_EL1.BF16 = = 0b0010``` |
2626- | 300 | `FEAT_RPRES` | rpres | ```ID_AA64ISAR2_EL1.RPRES = = 0b0001``` |
2627- | 310 | `FEAT_SVE` | sve | ```ID_AA64PFR0_EL1.SVE != 0b0000 AND ``` <br> ```ID_AA64ZFR0_EL1.SVEver == 0b0000``` |
2628- | 320 | `FEAT_BF16` | sve-bf16 | ```ID_AA64ZFR0_EL1.BF16 != 0b0000 ``` |
2629- | 330 | `FEAT_EBF16` | sve-ebf16 | ```ID_AA64ZFR0_EL1.BF16 = = 0b0010``` |
2630- | 340 | `FEAT_I8MM` | sve-i8mm | ```ID_AA64ZFR0_EL1.I8MM = = 0b00001``` |
2631- | 350 | `FEAT_F32MM` | f32mm | ```ID_AA64ZFR0_EL1.F32MM = = 0b00001``` |
2632- | 360 | `FEAT_F64MM` | f64mm | ```ID_AA64ZFR0_EL1.F64MM = = 0b00001``` |
2633- | 370 | `FEAT_SVE2` | sve2 | ```ID_AA64PFR0_EL1.SVE != 0b0000 AND ``` <br> ``` ID_AA64ZFR0_EL1.SVEver == 0b0001``` |
2634- | 380 | `FEAT_SVE_AES` | sve2-aes | ```ID_AA64ZFR0_EL1.AES == 0b0001 OR ``` <br> ```ID_AA64ZFR0_EL1.AES == 0b0010``` |
2635- | 390 | `FEAT_SVE_PMULL128` | sve2-pmull128 | ```ID_AA64ZFR0_EL1.AES = = 0b0010``` |
2636- | 400 | `FEAT_SVE_BitPerm` | sve2-bitperm | ```ID_AA64ZFR0_EL1.BitPerm = = 0b0001``` |
2637- | 410 | `FEAT_SVE_SHA3` | sve2-sha3 | ```ID_AA64ZFR0_EL1.SHA3 = = 0b0001``` |
2638- | 420 | `FEAT_SM3`,`FEAT_SVE_SM4`| sve2-sm4 | ```ID_AA64ZFR0_EL1.SM4 = = 0b0001``` |
2639- | 430 | `FEAT_SME` | sme | ```ID_AA64PFR1_EL1.SME = = 0b0001``` |
2619+ | 200 | `FEAT_DPB2` | dpb2 | ```ID_AA64ISAR1_EL1.DPB >= 0b0010``` |
2620+ | 210 | `FEAT_JSCVT` | jscvt | ```ID_AA64ISAR1_EL1.JSCVT > = 0b0001``` |
2621+ | 220 | `FEAT_FCMA` | fcma | ```ID_AA64ISAR1_EL1.FCMA > = 0b0001``` |
2622+ | 230 | `FEAT_LRCPC` | rcpc | ```ID_AA64ISAR1_EL1.LRCPC >= 0b0001 ``` |
2623+ | 240 | `FEAT_LRCPC2` | rcpc2 | ```ID_AA64ISAR1_EL1.LRCPC > = 0b0010``` |
2624+ | 241 | `FEAT_LRCPC3` | rcpc3 | ```ID_AA64ISAR1_EL1.LRCPC > = 0b0011``` |
2625+ | 250 | `FEAT_FRINTTS` | frintts | ```ID_AA64ISAR1_EL1.FRINTTS > = 0b0001``` |
2626+ | 260 | `FEAT_DGH` | dgh | ```ID_AA64ISAR1_EL1.DGH > = 0b0001``` |
2627+ | 270 | `FEAT_I8MM` | i8mm | ```ID_AA64ISAR1_EL1.I8MM > = 0b0001``` |
2628+ | 280 | `FEAT_BF16` | bf16 | ```ID_AA64ISAR1_EL1.BF16 >= 0b0001 ``` |
2629+ | 290 | `FEAT_EBF16` | ebf16 | ```ID_AA64ISAR1_EL1.BF16 > = 0b0010``` |
2630+ | 300 | `FEAT_RPRES` | rpres | ```ID_AA64ISAR2_EL1.RPRES > = 0b0001``` |
2631+ | 310 | `FEAT_SVE` | sve | ```ID_AA64PFR0_EL1.SVE >= 0b0001 ``` |
2632+ | 320 | `FEAT_BF16` | sve-bf16 | ```ID_AA64ZFR0_EL1.BF16 >= 0b0001 ``` |
2633+ | 330 | `FEAT_EBF16` | sve-ebf16 | ```ID_AA64ZFR0_EL1.BF16 > = 0b0010``` |
2634+ | 340 | `FEAT_I8MM` | sve-i8mm | ```ID_AA64ZFR0_EL1.I8MM > = 0b00001``` |
2635+ | 350 | `FEAT_F32MM` | f32mm | ```ID_AA64ZFR0_EL1.F32MM > = 0b00001``` |
2636+ | 360 | `FEAT_F64MM` | f64mm | ```ID_AA64ZFR0_EL1.F64MM > = 0b00001``` |
2637+ | 370 | `FEAT_SVE2` | sve2 | ```ID_AA64ZFR0_EL1.SVEver >= 0b0001``` |
2638+ | 380 | `FEAT_SVE_AES` | sve2-aes | ```ID_AA64ZFR0_EL1.AES >= 0b0001``` |
2639+ | 390 | `FEAT_SVE_PMULL128` | sve2-pmull128 | ```ID_AA64ZFR0_EL1.AES > = 0b0010``` |
2640+ | 400 | `FEAT_SVE_BitPerm` | sve2-bitperm | ```ID_AA64ZFR0_EL1.BitPerm > = 0b0001``` |
2641+ | 410 | `FEAT_SVE_SHA3` | sve2-sha3 | ```ID_AA64ZFR0_EL1.SHA3 > = 0b0001``` |
2642+ | 420 | `FEAT_SM3`,`FEAT_SVE_SM4`| sve2-sm4 | ```ID_AA64ZFR0_EL1.SM4 > = 0b0001``` |
2643+ | 430 | `FEAT_SME` | sme | ```ID_AA64PFR1_EL1.SME > = 0b0001``` |
26402644 | 440 | `FEAT_MTE` | memtag | ```ID_AA64PFR1_EL1.MTE >= 0b0001``` |
26412645 | 450 | `FEAT_MTE2` | memtag2 | ```ID_AA64PFR1_EL1.MTE >= 0b0010``` |
26422646 | 460 | `FEAT_MTE3` | memtag3 | ```ID_AA64PFR1_EL1.MTE >= 0b0011``` |
2643- | 470 | `FEAT_SB` | sb | ```ID_AA64ISAR1_EL1.SB = = 0b0001``` |
2644- | 480 | `FEAT_SPECRES` | predres | ```ID_AA64ISAR1_EL1.SPECRES = = 0b0001``` |
2645- | 490 | `FEAT_SSBS` | ssbs | ```ID_AA64PFR1_EL1.SSBS = = 0b0001``` |
2646- | 500 | `FEAT_SSBS2` | ssbs2 | ```ID_AA64PFR1_EL1.SSBS = = 0b0010``` |
2647- | 510 | `FEAT_BTI` | bti | ```ID_AA64PFR1_EL1.BT = = 0b0001``` |
2647+ | 470 | `FEAT_SB` | sb | ```ID_AA64ISAR1_EL1.SB > = 0b0001``` |
2648+ | 480 | `FEAT_SPECRES` | predres | ```ID_AA64ISAR1_EL1.SPECRES > = 0b0001``` |
2649+ | 490 | `FEAT_SSBS` | ssbs | ```ID_AA64PFR1_EL1.SSBS > = 0b0001``` |
2650+ | 500 | `FEAT_SSBS2` | ssbs2 | ```ID_AA64PFR1_EL1.SSBS > = 0b0010``` |
2651+ | 510 | `FEAT_BTI` | bti | ```ID_AA64PFR1_EL1.BT > = 0b0001``` |
26482652 | 520 | `FEAT_LS64` | ls64 | ```ID_AA64ISAR1_EL1.LS64 >= 0b0001``` |
26492653 | 530 | `FEAT_LS64_V` | ls64_v | ```ID_AA64ISAR1_EL1.LS64 >= 0b0010``` |
26502654 | 540 | `FEAT_LS64_ACCDATA` | ls64_accdata | ```ID_AA64ISAR1_EL1.LS64 >= 0b0011``` |
2651- | 550 | `FEAT_WFxT` | wfxt | ```ID_AA64ISAR2_EL1.WFxT == 0b0001 ``` |
2652- | 560 | `FEAT_SME_F64F64` | sme-f64f64 | ```ID_AA64SMFR0_EL1.F64F64 == 0b0001 ``` |
2653- | 570 | `FEAT_SME_I16I64` | sme-i16i64 | ```ID_AA64SMFR0_EL1.I16I64 == 0b1111``` |
2654- | 580 | `FEAT_SME2` | sme2 | ```ID_AA64PFR1_EL1.SME == 0b0010 ``` |
2655- | 650 | `FEAT_MOPS` | mops | ```ID_AA64ISAR2_EL1.MOPS = = 0b0001``` |
2655+ | 550 | `FEAT_WFxT` | wfxt | ```ID_AA64ISAR2_EL1.WFxT >= 0b0010 ``` |
2656+ | 560 | `FEAT_SME_F64F64` | sme-f64f64 | ```ID_AA64SMFR0_EL1.F64F64 == 0b1 ``` |
2657+ | 570 | `FEAT_SME_I16I64` | sme-i16i64 | ```ID_AA64SMFR0_EL1.I16I64 == 0b1111``` |
2658+ | 580 | `FEAT_SME2` | sme2 | ```ID_AA64PFR1_EL1.SMEver >= 0b0001 ``` |
2659+ | 650 | `FEAT_MOPS` | mops | ```ID_AA64ISAR2_EL1.MOPS > = 0b0001``` |
26562660
26572661### Selection
26582662
0 commit comments