diff --git a/lib/std/target/aarch64.zig b/lib/std/target/aarch64.zig index b7a6283f86..b907d96b7d 100644 --- a/lib/std/target/aarch64.zig +++ b/lib/std/target/aarch64.zig @@ -887,573 +887,6 @@ pub const feature_zczGp = Feature{ }, }; -pub const feature_v81a = Feature{ - .name = "v8.1a", - .description = "Support ARM v8.1a instructions", - .subfeatures = &[_]*const Feature { - &feature_lor, - &feature_pan, - &feature_lse, - &feature_rdm, - &feature_vh, - &feature_crc, - }, -}; - -pub const feature_v82a = Feature{ - .name = "v8.2a", - .description = "Support ARM v8.2a instructions", - .subfeatures = &[_]*const Feature { - &feature_ccpp, - &feature_lor, - &feature_pan, - &feature_lse, - &feature_rdm, - &feature_vh, - &feature_ras, - &feature_crc, - &feature_uaops, - }, -}; - -pub const feature_v83a = Feature{ - .name = "v8.3a", - .description = "Support ARM v8.3a instructions", - .subfeatures = &[_]*const Feature { - &feature_ccpp, - &feature_lor, - &feature_pan, - &feature_lse, - &feature_rdm, - &feature_ras, - &feature_vh, - &feature_fpArmv8, - &feature_uaops, - &feature_rcpc, - &feature_ccidx, - &feature_crc, - &feature_pa, - }, -}; - -pub const feature_v84a = Feature{ - .name = "v8.4a", - .description = "Support ARM v8.4a instructions", - .subfeatures = &[_]*const Feature { - &feature_ccpp, - &feature_lor, - &feature_dotprod, - &feature_fpArmv8, - &feature_crc, - &feature_fmi, - &feature_tracev84, - &feature_tlbRmi, - &feature_rdm, - &feature_ccidx, - &feature_mpam, - &feature_pan, - &feature_lse, - &feature_rcpc, - &feature_uaops, - &feature_sel2, - &feature_nv, - &feature_am, - &feature_dit, - &feature_vh, - &feature_ras, - &feature_pa, - }, -}; - -pub const feature_v85a = Feature{ - .name = "v8.5a", - .description = "Support ARM v8.5a instructions", - .subfeatures = &[_]*const Feature { - &feature_ccpp, - &feature_lor, - &feature_dotprod, - &feature_fpArmv8, - &feature_ssbs, - &feature_crc, - &feature_fmi, - &feature_bti, - &feature_tracev84, - &feature_tlbRmi, - &feature_fptoint, - &feature_rdm, - &feature_sb, - &feature_ccidx, - &feature_mpam, - &feature_pan, - &feature_lse, - &feature_predres, - &feature_rcpc, - &feature_uaops, - &feature_sel2, - &feature_nv, - &feature_am, - &feature_dit, - &feature_specrestrict, - &feature_vh, - &feature_altnzcv, - &feature_ras, - &feature_ccdp, - &feature_pa, - }, -}; - -pub const feature_a35 = Feature{ - .name = "a35", - .description = "Cortex-A35 ARM processors", - .subfeatures = &[_]*const Feature { - &feature_fpArmv8, - &feature_perfmon, - &feature_crc, - }, -}; - -pub const feature_a53 = Feature{ - .name = "a53", - .description = "Cortex-A53 ARM processors", - .subfeatures = &[_]*const Feature { - &feature_useAa, - &feature_balanceFpOps, - &feature_fuseAes, - &feature_usePostraScheduler, - &feature_perfmon, - &feature_fpArmv8, - &feature_customCheapAsMove, - &feature_crc, - }, -}; - -pub const feature_a55 = Feature{ - .name = "a55", - .description = "Cortex-A55 ARM processors", - .subfeatures = &[_]*const Feature { - &feature_fuseAes, - &feature_ccpp, - &feature_lor, - &feature_dotprod, - &feature_perfmon, - &feature_pan, - &feature_lse, - &feature_rdm, - &feature_ras, - &feature_vh, - &feature_fpArmv8, - &feature_uaops, - &feature_rcpc, - &feature_crc, - }, -}; - -pub const feature_a57 = Feature{ - .name = "a57", - .description = "Cortex-A57 ARM processors", - .subfeatures = &[_]*const Feature { - &feature_fuseLiterals, - &feature_balanceFpOps, - &feature_predictableSelectExpensive, - &feature_fuseAes, - &feature_usePostraScheduler, - &feature_perfmon, - &feature_fpArmv8, - &feature_customCheapAsMove, - &feature_crc, - }, -}; - -pub const feature_a65 = Feature{ - .name = "a65", - .description = "Cortex-A65 ARM processors", - .subfeatures = &[_]*const Feature { - &feature_rcpc, - &feature_ccpp, - &feature_lor, - &feature_dotprod, - &feature_pan, - &feature_lse, - &feature_rdm, - &feature_vh, - &feature_fpArmv8, - &feature_uaops, - &feature_ras, - &feature_ssbs, - &feature_crc, - }, -}; - -pub const feature_a72 = Feature{ - .name = "a72", - .description = "Cortex-A72 ARM processors", - .subfeatures = &[_]*const Feature { - &feature_fpArmv8, - &feature_fuseAes, - &feature_crc, - &feature_perfmon, - }, -}; - -pub const feature_a73 = Feature{ - .name = "a73", - .description = "Cortex-A73 ARM processors", - .subfeatures = &[_]*const Feature { - &feature_fpArmv8, - &feature_fuseAes, - &feature_crc, - &feature_perfmon, - }, -}; - -pub const feature_a75 = Feature{ - .name = "a75", - .description = "Cortex-A75 ARM processors", - .subfeatures = &[_]*const Feature { - &feature_fuseAes, - &feature_ccpp, - &feature_lor, - &feature_dotprod, - &feature_perfmon, - &feature_pan, - &feature_lse, - &feature_rdm, - &feature_ras, - &feature_vh, - &feature_fpArmv8, - &feature_uaops, - &feature_rcpc, - &feature_crc, - }, -}; - -pub const feature_a76 = Feature{ - .name = "a76", - .description = "Cortex-A76 ARM processors", - .subfeatures = &[_]*const Feature { - &feature_ccpp, - &feature_lor, - &feature_dotprod, - &feature_pan, - &feature_lse, - &feature_rdm, - &feature_ras, - &feature_vh, - &feature_fpArmv8, - &feature_uaops, - &feature_rcpc, - &feature_ssbs, - &feature_crc, - }, -}; - -pub const feature_cyclone = Feature{ - .name = "cyclone", - .description = "Cyclone", - .subfeatures = &[_]*const Feature { - &feature_zczFpWorkaround, - &feature_fuseAes, - &feature_zcm, - &feature_arithCbzFusion, - &feature_perfmon, - &feature_alternateSextloadCvtF32Pattern, - &feature_arithBccFusion, - &feature_disableLatencySchedHeuristic, - &feature_zczGp, - &feature_fuseCryptoEor, - &feature_fpArmv8, - &feature_zczFp, - }, -}; - -pub const feature_exynosm1 = Feature{ - .name = "exynosm1", - .description = "Samsung Exynos-M1 processors", - .subfeatures = &[_]*const Feature { - &feature_useReciprocalSquareRoot, - &feature_fuseAes, - &feature_usePostraScheduler, - &feature_slowMisaligned128store, - &feature_perfmon, - &feature_fpArmv8, - &feature_customCheapAsMove, - &feature_force32bitJumpTables, - &feature_zczFp, - &feature_crc, - &feature_slowPaired128, - }, -}; - -pub const feature_exynosm2 = Feature{ - .name = "exynosm2", - .description = "Samsung Exynos-M2 processors", - .subfeatures = &[_]*const Feature { - &feature_fuseAes, - &feature_usePostraScheduler, - &feature_slowMisaligned128store, - &feature_perfmon, - &feature_fpArmv8, - &feature_customCheapAsMove, - &feature_force32bitJumpTables, - &feature_zczFp, - &feature_crc, - &feature_slowPaired128, - }, -}; - -pub const feature_exynosm3 = Feature{ - .name = "exynosm3", - .description = "Samsung Exynos-M3 processors", - .subfeatures = &[_]*const Feature { - &feature_fuseLiterals, - &feature_predictableSelectExpensive, - &feature_fuseAes, - &feature_fuseAddress, - &feature_fuseCsel, - &feature_usePostraScheduler, - &feature_perfmon, - &feature_fpArmv8, - &feature_customCheapAsMove, - &feature_lslFast, - &feature_force32bitJumpTables, - &feature_zczFp, - &feature_crc, - }, -}; - -pub const feature_exynosm4 = Feature{ - .name = "exynosm4", - .description = "Samsung Exynos-M4 processors", - .subfeatures = &[_]*const Feature { - &feature_fuseLiterals, - &feature_fuseAes, - &feature_ccpp, - &feature_lor, - &feature_dotprod, - &feature_fpArmv8, - &feature_customCheapAsMove, - &feature_lslFast, - &feature_crc, - &feature_fuseAddress, - &feature_arithCbzFusion, - &feature_perfmon, - &feature_arithBccFusion, - &feature_zczGp, - &feature_rdm, - &feature_force32bitJumpTables, - &feature_pan, - &feature_lse, - &feature_fuseCsel, - &feature_uaops, - &feature_fuseArithLogic, - &feature_usePostraScheduler, - &feature_vh, - &feature_ras, - &feature_zczFp, - }, -}; - -pub const feature_falkor = Feature{ - .name = "falkor", - .description = "Qualcomm Falkor processors", - .subfeatures = &[_]*const Feature { - &feature_predictableSelectExpensive, - &feature_usePostraScheduler, - &feature_perfmon, - &feature_slowStrqroStore, - &feature_rdm, - &feature_zczGp, - &feature_fpArmv8, - &feature_customCheapAsMove, - &feature_lslFast, - &feature_zczFp, - &feature_crc, - }, -}; - -pub const feature_kryo = Feature{ - .name = "kryo", - .description = "Qualcomm Kryo processors", - .subfeatures = &[_]*const Feature { - &feature_predictableSelectExpensive, - &feature_usePostraScheduler, - &feature_perfmon, - &feature_zczGp, - &feature_fpArmv8, - &feature_customCheapAsMove, - &feature_lslFast, - &feature_zczFp, - &feature_crc, - }, -}; - -pub const feature_neoversee1 = Feature{ - .name = "neoversee1", - .description = "Neoverse E1 ARM processors", - .subfeatures = &[_]*const Feature { - &feature_ccpp, - &feature_lor, - &feature_dotprod, - &feature_pan, - &feature_lse, - &feature_rdm, - &feature_ras, - &feature_vh, - &feature_fpArmv8, - &feature_uaops, - &feature_rcpc, - &feature_ssbs, - &feature_crc, - }, -}; - -pub const feature_neoversen1 = Feature{ - .name = "neoversen1", - .description = "Neoverse N1 ARM processors", - .subfeatures = &[_]*const Feature { - &feature_ccpp, - &feature_lor, - &feature_dotprod, - &feature_spe, - &feature_pan, - &feature_lse, - &feature_rdm, - &feature_ras, - &feature_vh, - &feature_fpArmv8, - &feature_uaops, - &feature_rcpc, - &feature_ssbs, - &feature_crc, - }, -}; - -pub const feature_saphira = Feature{ - .name = "saphira", - .description = "Qualcomm Saphira processors", - .subfeatures = &[_]*const Feature { - &feature_ccpp, - &feature_lor, - &feature_dotprod, - &feature_fpArmv8, - &feature_customCheapAsMove, - &feature_lslFast, - &feature_crc, - &feature_fmi, - &feature_predictableSelectExpensive, - &feature_tracev84, - &feature_tlbRmi, - &feature_perfmon, - &feature_zczGp, - &feature_rdm, - &feature_ccidx, - &feature_mpam, - &feature_pan, - &feature_lse, - &feature_rcpc, - &feature_uaops, - &feature_sel2, - &feature_usePostraScheduler, - &feature_nv, - &feature_am, - &feature_spe, - &feature_dit, - &feature_vh, - &feature_ras, - &feature_zczFp, - &feature_pa, - }, -}; - -pub const feature_tsv110 = Feature{ - .name = "tsv110", - .description = "HiSilicon TS-V110 processors", - .subfeatures = &[_]*const Feature { - &feature_fuseAes, - &feature_usePostraScheduler, - &feature_ccpp, - &feature_lor, - &feature_dotprod, - &feature_uaops, - &feature_perfmon, - &feature_spe, - &feature_pan, - &feature_lse, - &feature_rdm, - &feature_vh, - &feature_fpArmv8, - &feature_customCheapAsMove, - &feature_ras, - &feature_crc, - }, -}; - -pub const feature_thunderx = Feature{ - .name = "thunderx", - .description = "Cavium ThunderX processors", - .subfeatures = &[_]*const Feature { - &feature_predictableSelectExpensive, - &feature_usePostraScheduler, - &feature_perfmon, - &feature_fpArmv8, - &feature_crc, - }, -}; - -pub const feature_thunderx2t99 = Feature{ - .name = "thunderx2t99", - .description = "Cavium ThunderX2 processors", - .subfeatures = &[_]*const Feature { - &feature_predictableSelectExpensive, - &feature_usePostraScheduler, - &feature_lor, - &feature_lse, - &feature_pan, - &feature_arithBccFusion, - &feature_rdm, - &feature_aggressiveFma, - &feature_vh, - &feature_fpArmv8, - &feature_crc, - }, -}; - -pub const feature_thunderxt81 = Feature{ - .name = "thunderxt81", - .description = "Cavium ThunderX processors", - .subfeatures = &[_]*const Feature { - &feature_predictableSelectExpensive, - &feature_usePostraScheduler, - &feature_perfmon, - &feature_fpArmv8, - &feature_crc, - }, -}; - -pub const feature_thunderxt83 = Feature{ - .name = "thunderxt83", - .description = "Cavium ThunderX processors", - .subfeatures = &[_]*const Feature { - &feature_predictableSelectExpensive, - &feature_usePostraScheduler, - &feature_perfmon, - &feature_fpArmv8, - &feature_crc, - }, -}; - -pub const feature_thunderxt88 = Feature{ - .name = "thunderxt88", - .description = "Cavium ThunderX processors", - .subfeatures = &[_]*const Feature { - &feature_predictableSelectExpensive, - &feature_usePostraScheduler, - &feature_perfmon, - &feature_fpArmv8, - &feature_crc, - }, -}; - pub const features = &[_]*const Feature { &feature_aes, &feature_am, @@ -1578,55 +1011,24 @@ pub const features = &[_]*const Feature { &feature_zczFp, &feature_zczFpWorkaround, &feature_zczGp, - &feature_v81a, - &feature_v82a, - &feature_v83a, - &feature_v84a, - &feature_v85a, - &feature_a35, - &feature_a53, - &feature_a55, - &feature_a57, - &feature_a65, - &feature_a72, - &feature_a73, - &feature_a75, - &feature_a76, - &feature_cyclone, - &feature_exynosm1, - &feature_exynosm2, - &feature_exynosm3, - &feature_exynosm4, - &feature_falkor, - &feature_kryo, - &feature_neoversee1, - &feature_neoversen1, - &feature_saphira, - &feature_tsv110, - &feature_thunderx, - &feature_thunderx2t99, - &feature_thunderxt81, - &feature_thunderxt83, - &feature_thunderxt88, }; pub const cpu_appleLatest = Cpu{ .name = "apple-latest", .llvm_name = "apple-latest", .subfeatures = &[_]*const Feature { - &feature_zczFpWorkaround, - &feature_fuseAes, - &feature_zcm, &feature_arithCbzFusion, - &feature_perfmon, &feature_alternateSextloadCvtF32Pattern, - &feature_arithBccFusion, - &feature_disableLatencySchedHeuristic, - &feature_zczGp, + &feature_zczFpWorkaround, &feature_fuseCryptoEor, - &feature_fpArmv8, + &feature_disableLatencySchedHeuristic, + &feature_zcm, &feature_zczFp, - &feature_cyclone, + &feature_perfmon, + &feature_fpArmv8, + &feature_fuseAes, + &feature_arithBccFusion, + &feature_zczGp, }, }; @@ -1637,7 +1039,6 @@ pub const cpu_cortexA35 = Cpu{ &feature_fpArmv8, &feature_perfmon, &feature_crc, - &feature_a35, }, }; @@ -1645,15 +1046,14 @@ pub const cpu_cortexA53 = Cpu{ .name = "cortex-a53", .llvm_name = "cortex-a53", .subfeatures = &[_]*const Feature { - &feature_useAa, - &feature_balanceFpOps, - &feature_fuseAes, &feature_usePostraScheduler, - &feature_perfmon, - &feature_fpArmv8, - &feature_customCheapAsMove, &feature_crc, - &feature_a53, + &feature_perfmon, + &feature_fuseAes, + &feature_useAa, + &feature_fpArmv8, + &feature_balanceFpOps, + &feature_customCheapAsMove, }, }; @@ -1661,21 +1061,20 @@ pub const cpu_cortexA55 = Cpu{ .name = "cortex-a55", .llvm_name = "cortex-a55", .subfeatures = &[_]*const Feature { - &feature_fuseAes, - &feature_ccpp, - &feature_lor, + &feature_crc, &feature_dotprod, - &feature_perfmon, - &feature_pan, + &feature_ccpp, + &feature_uaops, + &feature_rcpc, &feature_lse, + &feature_lor, + &feature_pan, &feature_rdm, + &feature_perfmon, &feature_ras, &feature_vh, &feature_fpArmv8, - &feature_uaops, - &feature_rcpc, - &feature_crc, - &feature_a55, + &feature_fuseAes, }, }; @@ -1683,16 +1082,15 @@ pub const cpu_cortexA57 = Cpu{ .name = "cortex-a57", .llvm_name = "cortex-a57", .subfeatures = &[_]*const Feature { - &feature_fuseLiterals, - &feature_balanceFpOps, - &feature_predictableSelectExpensive, - &feature_fuseAes, &feature_usePostraScheduler, - &feature_perfmon, - &feature_fpArmv8, - &feature_customCheapAsMove, &feature_crc, - &feature_a57, + &feature_fuseLiterals, + &feature_perfmon, + &feature_fuseAes, + &feature_fpArmv8, + &feature_balanceFpOps, + &feature_customCheapAsMove, + &feature_predictableSelectExpensive, }, }; @@ -1700,20 +1098,19 @@ pub const cpu_cortexA65 = Cpu{ .name = "cortex-a65", .llvm_name = "cortex-a65", .subfeatures = &[_]*const Feature { - &feature_rcpc, - &feature_ccpp, - &feature_lor, + &feature_ssbs, &feature_dotprod, - &feature_pan, + &feature_crc, + &feature_uaops, + &feature_rcpc, &feature_lse, + &feature_lor, + &feature_pan, &feature_rdm, + &feature_ras, &feature_vh, &feature_fpArmv8, - &feature_uaops, - &feature_ras, - &feature_ssbs, - &feature_crc, - &feature_a65, + &feature_ccpp, }, }; @@ -1721,20 +1118,19 @@ pub const cpu_cortexA65ae = Cpu{ .name = "cortex-a65ae", .llvm_name = "cortex-a65ae", .subfeatures = &[_]*const Feature { - &feature_rcpc, - &feature_ccpp, - &feature_lor, + &feature_ssbs, &feature_dotprod, - &feature_pan, + &feature_crc, + &feature_uaops, + &feature_rcpc, &feature_lse, + &feature_lor, + &feature_pan, &feature_rdm, + &feature_ras, &feature_vh, &feature_fpArmv8, - &feature_uaops, - &feature_ras, - &feature_ssbs, - &feature_crc, - &feature_a65, + &feature_ccpp, }, }; @@ -1744,9 +1140,8 @@ pub const cpu_cortexA72 = Cpu{ .subfeatures = &[_]*const Feature { &feature_fpArmv8, &feature_fuseAes, - &feature_crc, &feature_perfmon, - &feature_a72, + &feature_crc, }, }; @@ -1756,9 +1151,8 @@ pub const cpu_cortexA73 = Cpu{ .subfeatures = &[_]*const Feature { &feature_fpArmv8, &feature_fuseAes, - &feature_crc, &feature_perfmon, - &feature_a73, + &feature_crc, }, }; @@ -1766,21 +1160,20 @@ pub const cpu_cortexA75 = Cpu{ .name = "cortex-a75", .llvm_name = "cortex-a75", .subfeatures = &[_]*const Feature { - &feature_fuseAes, - &feature_ccpp, - &feature_lor, + &feature_crc, &feature_dotprod, - &feature_perfmon, - &feature_pan, + &feature_ccpp, + &feature_uaops, + &feature_rcpc, &feature_lse, + &feature_lor, + &feature_pan, &feature_rdm, + &feature_perfmon, &feature_ras, &feature_vh, &feature_fpArmv8, - &feature_uaops, - &feature_rcpc, - &feature_crc, - &feature_a75, + &feature_fuseAes, }, }; @@ -1788,20 +1181,19 @@ pub const cpu_cortexA76 = Cpu{ .name = "cortex-a76", .llvm_name = "cortex-a76", .subfeatures = &[_]*const Feature { - &feature_ccpp, - &feature_lor, + &feature_crc, + &feature_ssbs, &feature_dotprod, - &feature_pan, + &feature_uaops, + &feature_rcpc, &feature_lse, + &feature_lor, + &feature_pan, &feature_rdm, &feature_ras, &feature_vh, &feature_fpArmv8, - &feature_uaops, - &feature_rcpc, - &feature_ssbs, - &feature_crc, - &feature_a76, + &feature_ccpp, }, }; @@ -1809,20 +1201,19 @@ pub const cpu_cortexA76ae = Cpu{ .name = "cortex-a76ae", .llvm_name = "cortex-a76ae", .subfeatures = &[_]*const Feature { - &feature_ccpp, - &feature_lor, + &feature_crc, + &feature_ssbs, &feature_dotprod, - &feature_pan, + &feature_uaops, + &feature_rcpc, &feature_lse, + &feature_lor, + &feature_pan, &feature_rdm, &feature_ras, &feature_vh, &feature_fpArmv8, - &feature_uaops, - &feature_rcpc, - &feature_ssbs, - &feature_crc, - &feature_a76, + &feature_ccpp, }, }; @@ -1830,19 +1221,18 @@ pub const cpu_cyclone = Cpu{ .name = "cyclone", .llvm_name = "cyclone", .subfeatures = &[_]*const Feature { - &feature_zczFpWorkaround, - &feature_fuseAes, - &feature_zcm, &feature_arithCbzFusion, - &feature_perfmon, &feature_alternateSextloadCvtF32Pattern, - &feature_arithBccFusion, - &feature_disableLatencySchedHeuristic, - &feature_zczGp, + &feature_zczFpWorkaround, &feature_fuseCryptoEor, - &feature_fpArmv8, + &feature_disableLatencySchedHeuristic, + &feature_zcm, &feature_zczFp, - &feature_cyclone, + &feature_perfmon, + &feature_fpArmv8, + &feature_fuseAes, + &feature_arithBccFusion, + &feature_zczGp, }, }; @@ -1851,17 +1241,16 @@ pub const cpu_exynosM1 = Cpu{ .llvm_name = "exynos-m1", .subfeatures = &[_]*const Feature { &feature_useReciprocalSquareRoot, - &feature_fuseAes, &feature_usePostraScheduler, + &feature_crc, + &feature_zczFp, + &feature_slowPaired128, + &feature_force32bitJumpTables, &feature_slowMisaligned128store, &feature_perfmon, &feature_fpArmv8, + &feature_fuseAes, &feature_customCheapAsMove, - &feature_force32bitJumpTables, - &feature_zczFp, - &feature_crc, - &feature_slowPaired128, - &feature_exynosm1, }, }; @@ -1869,17 +1258,16 @@ pub const cpu_exynosM2 = Cpu{ .name = "exynos-m2", .llvm_name = "exynos-m2", .subfeatures = &[_]*const Feature { - &feature_fuseAes, &feature_usePostraScheduler, + &feature_crc, + &feature_zczFp, + &feature_slowPaired128, + &feature_force32bitJumpTables, &feature_slowMisaligned128store, &feature_perfmon, &feature_fpArmv8, + &feature_fuseAes, &feature_customCheapAsMove, - &feature_force32bitJumpTables, - &feature_zczFp, - &feature_crc, - &feature_slowPaired128, - &feature_exynosm2, }, }; @@ -1887,20 +1275,19 @@ pub const cpu_exynosM3 = Cpu{ .name = "exynos-m3", .llvm_name = "exynos-m3", .subfeatures = &[_]*const Feature { - &feature_fuseLiterals, - &feature_predictableSelectExpensive, - &feature_fuseAes, &feature_fuseAddress, - &feature_fuseCsel, &feature_usePostraScheduler, + &feature_crc, + &feature_zczFp, + &feature_fuseLiterals, + &feature_lslFast, + &feature_fuseCsel, + &feature_force32bitJumpTables, &feature_perfmon, &feature_fpArmv8, + &feature_fuseAes, &feature_customCheapAsMove, - &feature_lslFast, - &feature_force32bitJumpTables, - &feature_zczFp, - &feature_crc, - &feature_exynosm3, + &feature_predictableSelectExpensive, }, }; @@ -1909,31 +1296,30 @@ pub const cpu_exynosM4 = Cpu{ .llvm_name = "exynos-m4", .subfeatures = &[_]*const Feature { &feature_fuseLiterals, - &feature_fuseAes, - &feature_ccpp, - &feature_lor, - &feature_dotprod, - &feature_fpArmv8, - &feature_customCheapAsMove, - &feature_lslFast, - &feature_crc, - &feature_fuseAddress, - &feature_arithCbzFusion, - &feature_perfmon, + &feature_uaops, + &feature_fuseCsel, + &feature_force32bitJumpTables, + &feature_fuseArithLogic, + &feature_vh, &feature_arithBccFusion, &feature_zczGp, - &feature_rdm, - &feature_force32bitJumpTables, - &feature_pan, - &feature_lse, - &feature_fuseCsel, - &feature_uaops, - &feature_fuseArithLogic, &feature_usePostraScheduler, - &feature_vh, + &feature_dotprod, + &feature_lse, + &feature_pan, &feature_ras, + &feature_fuseAes, + &feature_fuseAddress, + &feature_rdm, + &feature_arithCbzFusion, + &feature_crc, &feature_zczFp, - &feature_exynosm4, + &feature_lslFast, + &feature_lor, + &feature_perfmon, + &feature_fpArmv8, + &feature_ccpp, + &feature_customCheapAsMove, }, }; @@ -1942,31 +1328,30 @@ pub const cpu_exynosM5 = Cpu{ .llvm_name = "exynos-m5", .subfeatures = &[_]*const Feature { &feature_fuseLiterals, - &feature_fuseAes, - &feature_ccpp, - &feature_lor, - &feature_dotprod, - &feature_fpArmv8, - &feature_customCheapAsMove, - &feature_lslFast, - &feature_crc, - &feature_fuseAddress, - &feature_arithCbzFusion, - &feature_perfmon, + &feature_uaops, + &feature_fuseCsel, + &feature_force32bitJumpTables, + &feature_fuseArithLogic, + &feature_vh, &feature_arithBccFusion, &feature_zczGp, - &feature_rdm, - &feature_force32bitJumpTables, - &feature_pan, - &feature_lse, - &feature_fuseCsel, - &feature_uaops, - &feature_fuseArithLogic, &feature_usePostraScheduler, - &feature_vh, + &feature_dotprod, + &feature_lse, + &feature_pan, &feature_ras, + &feature_fuseAes, + &feature_fuseAddress, + &feature_rdm, + &feature_arithCbzFusion, + &feature_crc, &feature_zczFp, - &feature_exynosm4, + &feature_lslFast, + &feature_lor, + &feature_perfmon, + &feature_fpArmv8, + &feature_ccpp, + &feature_customCheapAsMove, }, }; @@ -1974,18 +1359,17 @@ pub const cpu_falkor = Cpu{ .name = "falkor", .llvm_name = "falkor", .subfeatures = &[_]*const Feature { - &feature_predictableSelectExpensive, &feature_usePostraScheduler, - &feature_perfmon, + &feature_crc, + &feature_zczFp, + &feature_lslFast, &feature_slowStrqroStore, &feature_rdm, - &feature_zczGp, + &feature_perfmon, &feature_fpArmv8, + &feature_zczGp, &feature_customCheapAsMove, - &feature_lslFast, - &feature_zczFp, - &feature_crc, - &feature_falkor, + &feature_predictableSelectExpensive, }, }; @@ -2007,16 +1391,15 @@ pub const cpu_kryo = Cpu{ .name = "kryo", .llvm_name = "kryo", .subfeatures = &[_]*const Feature { - &feature_predictableSelectExpensive, &feature_usePostraScheduler, - &feature_perfmon, - &feature_zczGp, - &feature_fpArmv8, - &feature_customCheapAsMove, - &feature_lslFast, - &feature_zczFp, &feature_crc, - &feature_kryo, + &feature_zczFp, + &feature_lslFast, + &feature_perfmon, + &feature_fpArmv8, + &feature_zczGp, + &feature_customCheapAsMove, + &feature_predictableSelectExpensive, }, }; @@ -2024,20 +1407,19 @@ pub const cpu_neoverseE1 = Cpu{ .name = "neoverse-e1", .llvm_name = "neoverse-e1", .subfeatures = &[_]*const Feature { - &feature_ccpp, - &feature_lor, + &feature_crc, + &feature_ssbs, &feature_dotprod, - &feature_pan, + &feature_uaops, + &feature_rcpc, &feature_lse, + &feature_lor, + &feature_pan, &feature_rdm, &feature_ras, &feature_vh, &feature_fpArmv8, - &feature_uaops, - &feature_rcpc, - &feature_ssbs, - &feature_crc, - &feature_neoversee1, + &feature_ccpp, }, }; @@ -2045,21 +1427,20 @@ pub const cpu_neoverseN1 = Cpu{ .name = "neoverse-n1", .llvm_name = "neoverse-n1", .subfeatures = &[_]*const Feature { - &feature_ccpp, - &feature_lor, + &feature_ssbs, &feature_dotprod, - &feature_spe, - &feature_pan, + &feature_crc, + &feature_uaops, + &feature_rcpc, &feature_lse, + &feature_spe, + &feature_lor, + &feature_pan, &feature_rdm, &feature_ras, &feature_vh, &feature_fpArmv8, - &feature_uaops, - &feature_rcpc, - &feature_ssbs, - &feature_crc, - &feature_neoversen1, + &feature_ccpp, }, }; @@ -2067,37 +1448,36 @@ pub const cpu_saphira = Cpu{ .name = "saphira", .llvm_name = "saphira", .subfeatures = &[_]*const Feature { - &feature_ccpp, - &feature_lor, - &feature_dotprod, - &feature_fpArmv8, - &feature_customCheapAsMove, - &feature_lslFast, - &feature_crc, - &feature_fmi, - &feature_predictableSelectExpensive, - &feature_tracev84, - &feature_tlbRmi, - &feature_perfmon, + &feature_uaops, + &feature_vh, + &feature_nv, &feature_zczGp, + &feature_mpam, + &feature_predictableSelectExpensive, + &feature_am, + &feature_usePostraScheduler, + &feature_dotprod, + &feature_rcpc, + &feature_lse, + &feature_pan, + &feature_ras, + &feature_tlbRmi, + &feature_sel2, &feature_rdm, &feature_ccidx, - &feature_mpam, - &feature_pan, - &feature_lse, - &feature_rcpc, - &feature_uaops, - &feature_sel2, - &feature_usePostraScheduler, - &feature_nv, - &feature_am, - &feature_spe, &feature_dit, - &feature_vh, - &feature_ras, + &feature_crc, &feature_zczFp, + &feature_lslFast, + &feature_fmi, + &feature_spe, + &feature_lor, + &feature_perfmon, + &feature_fpArmv8, + &feature_ccpp, + &feature_tracev84, + &feature_customCheapAsMove, &feature_pa, - &feature_saphira, }, }; @@ -2105,12 +1485,11 @@ pub const cpu_thunderx = Cpu{ .name = "thunderx", .llvm_name = "thunderx", .subfeatures = &[_]*const Feature { - &feature_predictableSelectExpensive, &feature_usePostraScheduler, + &feature_crc, &feature_perfmon, &feature_fpArmv8, - &feature_crc, - &feature_thunderx, + &feature_predictableSelectExpensive, }, }; @@ -2118,18 +1497,17 @@ pub const cpu_thunderx2t99 = Cpu{ .name = "thunderx2t99", .llvm_name = "thunderx2t99", .subfeatures = &[_]*const Feature { - &feature_predictableSelectExpensive, &feature_usePostraScheduler, - &feature_lor, + &feature_crc, &feature_lse, - &feature_pan, - &feature_arithBccFusion, - &feature_rdm, + &feature_lor, &feature_aggressiveFma, + &feature_pan, + &feature_rdm, &feature_vh, &feature_fpArmv8, - &feature_crc, - &feature_thunderx2t99, + &feature_arithBccFusion, + &feature_predictableSelectExpensive, }, }; @@ -2137,12 +1515,11 @@ pub const cpu_thunderxt81 = Cpu{ .name = "thunderxt81", .llvm_name = "thunderxt81", .subfeatures = &[_]*const Feature { - &feature_predictableSelectExpensive, &feature_usePostraScheduler, + &feature_crc, &feature_perfmon, &feature_fpArmv8, - &feature_crc, - &feature_thunderxt81, + &feature_predictableSelectExpensive, }, }; @@ -2150,12 +1527,11 @@ pub const cpu_thunderxt83 = Cpu{ .name = "thunderxt83", .llvm_name = "thunderxt83", .subfeatures = &[_]*const Feature { - &feature_predictableSelectExpensive, &feature_usePostraScheduler, + &feature_crc, &feature_perfmon, &feature_fpArmv8, - &feature_crc, - &feature_thunderxt83, + &feature_predictableSelectExpensive, }, }; @@ -2163,12 +1539,11 @@ pub const cpu_thunderxt88 = Cpu{ .name = "thunderxt88", .llvm_name = "thunderxt88", .subfeatures = &[_]*const Feature { - &feature_predictableSelectExpensive, &feature_usePostraScheduler, + &feature_crc, &feature_perfmon, &feature_fpArmv8, - &feature_crc, - &feature_thunderxt88, + &feature_predictableSelectExpensive, }, }; @@ -2176,23 +1551,22 @@ pub const cpu_tsv110 = Cpu{ .name = "tsv110", .llvm_name = "tsv110", .subfeatures = &[_]*const Feature { - &feature_fuseAes, &feature_usePostraScheduler, - &feature_ccpp, - &feature_lor, + &feature_crc, &feature_dotprod, + &feature_ccpp, &feature_uaops, - &feature_perfmon, + &feature_lse, + &feature_lor, &feature_spe, &feature_pan, - &feature_lse, &feature_rdm, + &feature_perfmon, + &feature_ras, &feature_vh, &feature_fpArmv8, + &feature_fuseAes, &feature_customCheapAsMove, - &feature_ras, - &feature_crc, - &feature_tsv110, }, }; diff --git a/lib/std/target/amdgpu.zig b/lib/std/target/amdgpu.zig index e6eec35ab3..5f6fe8dcf6 100644 --- a/lib/std/target/amdgpu.zig +++ b/lib/std/target/amdgpu.zig @@ -312,43 +312,6 @@ pub const feature_gfx8Insts = Feature{ }, }; -pub const feature_gfx9 = Feature{ - .name = "gfx9", - .description = "GFX9 GPU generation", - .subfeatures = &[_]*const Feature { - &feature_fp64, - &feature_vop3p, - &feature_sMemrealtime, - &feature_gfx8Insts, - &feature_dpp, - &feature_sdwaSdst, - &feature_ciInsts, - &feature_apertureRegs, - &feature_scalarStores, - &feature_intClampInsts, - &feature_gcn3Encoding, - &feature_flatScratchInsts, - &feature_gfx7Gfx8Gfx9Insts, - &feature_wavefrontsize64, - &feature_scalarAtomics, - &feature_sdwaScalar, - &feature_fastFmaf, - &feature_vgprIndexMode, - &feature_scalarFlatScratchInsts, - &feature_sdwa, - &feature_sdwaOmod, - &feature_localmemorysize65536, - &feature_flatAddressSpace, - &feature_addNoCarryInsts, - &feature_flatInstOffsets, - &feature_inv2piInlineImm, - &feature_gfx9Insts, - &feature_flatGlobalInsts, - &feature_BitInsts16, - &feature_r128A16, - }, -}; - pub const feature_gfx9Insts = Feature{ .name = "gfx9-insts", .description = "Additional instructions for GFX9+", @@ -356,47 +319,6 @@ pub const feature_gfx9Insts = Feature{ }, }; -pub const feature_gfx10 = Feature{ - .name = "gfx10", - .description = "GFX10 GPU generation", - .subfeatures = &[_]*const Feature { - &feature_registerBanking, - &feature_fp64, - &feature_vop3p, - &feature_sMemrealtime, - &feature_gfx8Insts, - &feature_dpp, - &feature_sdwaSdst, - &feature_ciInsts, - &feature_apertureRegs, - &feature_intClampInsts, - &feature_flatScratchInsts, - &feature_sdwaScalar, - &feature_fastFmaf, - &feature_pkFmacF16Inst, - &feature_vscnt, - &feature_movrel, - &feature_fmaMixInsts, - &feature_noSramEccSupport, - &feature_sdwa, - &feature_sdwaOmod, - &feature_vop3Literal, - &feature_dpp8, - &feature_gfx10Insts, - &feature_localmemorysize65536, - &feature_mimgR128, - &feature_flatAddressSpace, - &feature_addNoCarryInsts, - &feature_noDataDepHazard, - &feature_flatInstOffsets, - &feature_inv2piInlineImm, - &feature_gfx9Insts, - &feature_flatGlobalInsts, - &feature_BitInsts16, - &feature_noSdstCmpx, - }, -}; - pub const feature_gfx10Insts = Feature{ .name = "gfx10-insts", .description = "Additional instructions for GFX10+", @@ -684,39 +606,6 @@ pub const feature_scalarStores = Feature{ }, }; -pub const feature_seaIslands = Feature{ - .name = "sea-islands", - .description = "SEA_ISLANDS GPU generation", - .subfeatures = &[_]*const Feature { - &feature_trigReducedRange, - &feature_noSramEccSupport, - &feature_fp64, - &feature_movrel, - &feature_ciInsts, - &feature_localmemorysize65536, - &feature_mimgR128, - &feature_wavefrontsize64, - &feature_flatAddressSpace, - &feature_gfx7Gfx8Gfx9Insts, - }, -}; - -pub const feature_southernIslands = Feature{ - .name = "southern-islands", - .description = "SOUTHERN_ISLANDS GPU generation", - .subfeatures = &[_]*const Feature { - &feature_localmemorysize32768, - &feature_trigReducedRange, - &feature_noSramEccSupport, - &feature_fp64, - &feature_movrel, - &feature_ldsbankcount32, - &feature_noXnackSupport, - &feature_mimgR128, - &feature_wavefrontsize64, - }, -}; - pub const feature_trapHandler = Feature{ .name = "trap-handler", .description = "Trap handler support", @@ -794,35 +683,6 @@ pub const feature_vcmpxPermlaneHazard = Feature{ }, }; -pub const feature_volcanicIslands = Feature{ - .name = "volcanic-islands", - .description = "VOLCANIC_ISLANDS GPU generation", - .subfeatures = &[_]*const Feature { - &feature_fp64, - &feature_sMemrealtime, - &feature_gfx8Insts, - &feature_dpp, - &feature_ciInsts, - &feature_scalarStores, - &feature_intClampInsts, - &feature_gcn3Encoding, - &feature_gfx7Gfx8Gfx9Insts, - &feature_wavefrontsize64, - &feature_movrel, - &feature_vgprIndexMode, - &feature_trigReducedRange, - &feature_noSramEccSupport, - &feature_sdwa, - &feature_sdwaMav, - &feature_sdwaOutModsVopc, - &feature_localmemorysize65536, - &feature_mimgR128, - &feature_flatAddressSpace, - &feature_inv2piInlineImm, - &feature_BitInsts16, - }, -}; - pub const feature_vscnt = Feature{ .name = "vscnt", .description = "Has separate store vscnt counter", @@ -910,9 +770,7 @@ pub const features = &[_]*const Feature { &feature_gcn3Encoding, &feature_gfx7Gfx8Gfx9Insts, &feature_gfx8Insts, - &feature_gfx9, &feature_gfx9Insts, - &feature_gfx10, &feature_gfx10Insts, &feature_instFwdPrefetchBug, &feature_intClampInsts, @@ -954,8 +812,6 @@ pub const features = &[_]*const Feature { &feature_scalarAtomics, &feature_scalarFlatScratchInsts, &feature_scalarStores, - &feature_seaIslands, - &feature_southernIslands, &feature_trapHandler, &feature_trigReducedRange, &feature_unalignedBufferAccess, @@ -967,7 +823,6 @@ pub const features = &[_]*const Feature { &feature_vop3p, &feature_vcmpxExecWarHazard, &feature_vcmpxPermlaneHazard, - &feature_volcanicIslands, &feature_vscnt, &feature_wavefrontsize16, &feature_wavefrontsize32, @@ -983,17 +838,16 @@ pub const cpu_bonaire = Cpu{ &feature_codeObjectV3, &feature_noXnackSupport, &feature_ldsbankcount32, - &feature_trigReducedRange, &feature_noSramEccSupport, + &feature_flatAddressSpace, + &feature_mimgR128, + &feature_trigReducedRange, + &feature_gfx7Gfx8Gfx9Insts, + &feature_ciInsts, + &feature_wavefrontsize64, &feature_fp64, &feature_movrel, - &feature_ciInsts, &feature_localmemorysize65536, - &feature_mimgR128, - &feature_wavefrontsize64, - &feature_flatAddressSpace, - &feature_gfx7Gfx8Gfx9Insts, - &feature_seaIslands, }, }; @@ -1005,29 +859,28 @@ pub const cpu_carrizo = Cpu{ &feature_fastFmaf, &feature_ldsbankcount32, &feature_unpackedD16Vmem, - &feature_fp64, - &feature_sMemrealtime, - &feature_gfx8Insts, - &feature_dpp, - &feature_ciInsts, - &feature_scalarStores, - &feature_intClampInsts, - &feature_gcn3Encoding, - &feature_gfx7Gfx8Gfx9Insts, - &feature_wavefrontsize64, - &feature_movrel, - &feature_vgprIndexMode, - &feature_trigReducedRange, - &feature_noSramEccSupport, - &feature_sdwa, - &feature_sdwaMav, - &feature_sdwaOutModsVopc, - &feature_localmemorysize65536, &feature_mimgR128, - &feature_flatAddressSpace, &feature_inv2piInlineImm, + &feature_ciInsts, + &feature_vgprIndexMode, + &feature_scalarStores, + &feature_gcn3Encoding, + &feature_fp64, + &feature_dpp, + &feature_trigReducedRange, + &feature_gfx7Gfx8Gfx9Insts, + &feature_sMemrealtime, + &feature_movrel, + &feature_localmemorysize65536, + &feature_noSramEccSupport, + &feature_gfx8Insts, + &feature_flatAddressSpace, &feature_BitInsts16, - &feature_volcanicIslands, + &feature_sdwaMav, + &feature_sdwa, + &feature_sdwaOutModsVopc, + &feature_wavefrontsize64, + &feature_intClampInsts, &feature_xnack, &feature_halfRate64Ops, }, @@ -1041,29 +894,28 @@ pub const cpu_fiji = Cpu{ &feature_noXnackSupport, &feature_ldsbankcount32, &feature_unpackedD16Vmem, - &feature_fp64, - &feature_sMemrealtime, - &feature_gfx8Insts, - &feature_dpp, - &feature_ciInsts, - &feature_scalarStores, - &feature_intClampInsts, - &feature_gcn3Encoding, - &feature_gfx7Gfx8Gfx9Insts, - &feature_wavefrontsize64, - &feature_movrel, - &feature_vgprIndexMode, - &feature_trigReducedRange, - &feature_noSramEccSupport, - &feature_sdwa, - &feature_sdwaMav, - &feature_sdwaOutModsVopc, - &feature_localmemorysize65536, &feature_mimgR128, - &feature_flatAddressSpace, &feature_inv2piInlineImm, + &feature_ciInsts, + &feature_vgprIndexMode, + &feature_scalarStores, + &feature_gcn3Encoding, + &feature_fp64, + &feature_dpp, + &feature_trigReducedRange, + &feature_gfx7Gfx8Gfx9Insts, + &feature_sMemrealtime, + &feature_movrel, + &feature_localmemorysize65536, + &feature_noSramEccSupport, + &feature_gfx8Insts, + &feature_flatAddressSpace, &feature_BitInsts16, - &feature_volcanicIslands, + &feature_sdwaMav, + &feature_sdwa, + &feature_sdwaOutModsVopc, + &feature_wavefrontsize64, + &feature_intClampInsts, }, }; @@ -1092,41 +944,40 @@ pub const cpu_gfx1010 = Cpu{ &feature_dlInsts, &feature_noXnackSupport, &feature_flatSegmentOffsetBug, - &feature_registerBanking, - &feature_fp64, - &feature_vop3p, - &feature_sMemrealtime, - &feature_gfx8Insts, - &feature_dpp, - &feature_sdwaSdst, - &feature_ciInsts, - &feature_apertureRegs, - &feature_intClampInsts, - &feature_flatScratchInsts, - &feature_sdwaScalar, - &feature_fastFmaf, - &feature_pkFmacF16Inst, - &feature_vscnt, - &feature_movrel, - &feature_fmaMixInsts, - &feature_noSramEccSupport, - &feature_sdwa, - &feature_sdwaOmod, - &feature_vop3Literal, - &feature_dpp8, - &feature_gfx10Insts, - &feature_localmemorysize65536, &feature_mimgR128, - &feature_flatAddressSpace, &feature_addNoCarryInsts, - &feature_noDataDepHazard, - &feature_flatInstOffsets, - &feature_inv2piInlineImm, + &feature_dpp8, &feature_gfx9Insts, + &feature_ciInsts, + &feature_inv2piInlineImm, + &feature_fastFmaf, + &feature_registerBanking, + &feature_apertureRegs, &feature_flatGlobalInsts, - &feature_BitInsts16, + &feature_fp64, + &feature_vscnt, + &feature_flatScratchInsts, + &feature_dpp, + &feature_sMemrealtime, + &feature_vop3p, + &feature_flatInstOffsets, + &feature_sdwaScalar, + &feature_sdwaSdst, + &feature_movrel, + &feature_localmemorysize65536, &feature_noSdstCmpx, - &feature_gfx10, + &feature_pkFmacF16Inst, + &feature_noSramEccSupport, + &feature_vop3Literal, + &feature_gfx8Insts, + &feature_flatAddressSpace, + &feature_BitInsts16, + &feature_gfx10Insts, + &feature_sdwa, + &feature_intClampInsts, + &feature_noDataDepHazard, + &feature_fmaMixInsts, + &feature_sdwaOmod, &feature_instFwdPrefetchBug, &feature_ldsbankcount32, &feature_ldsBranchVmemWarHazard, @@ -1157,41 +1008,40 @@ pub const cpu_gfx1011 = Cpu{ &feature_dot5Insts, &feature_dot6Insts, &feature_flatSegmentOffsetBug, - &feature_registerBanking, - &feature_fp64, - &feature_vop3p, - &feature_sMemrealtime, - &feature_gfx8Insts, - &feature_dpp, - &feature_sdwaSdst, - &feature_ciInsts, - &feature_apertureRegs, - &feature_intClampInsts, - &feature_flatScratchInsts, - &feature_sdwaScalar, - &feature_fastFmaf, - &feature_pkFmacF16Inst, - &feature_vscnt, - &feature_movrel, - &feature_fmaMixInsts, - &feature_noSramEccSupport, - &feature_sdwa, - &feature_sdwaOmod, - &feature_vop3Literal, - &feature_dpp8, - &feature_gfx10Insts, - &feature_localmemorysize65536, &feature_mimgR128, - &feature_flatAddressSpace, &feature_addNoCarryInsts, - &feature_noDataDepHazard, - &feature_flatInstOffsets, - &feature_inv2piInlineImm, + &feature_dpp8, &feature_gfx9Insts, + &feature_ciInsts, + &feature_inv2piInlineImm, + &feature_fastFmaf, + &feature_registerBanking, + &feature_apertureRegs, &feature_flatGlobalInsts, - &feature_BitInsts16, + &feature_fp64, + &feature_vscnt, + &feature_flatScratchInsts, + &feature_dpp, + &feature_sMemrealtime, + &feature_vop3p, + &feature_flatInstOffsets, + &feature_sdwaScalar, + &feature_sdwaSdst, + &feature_movrel, + &feature_localmemorysize65536, &feature_noSdstCmpx, - &feature_gfx10, + &feature_pkFmacF16Inst, + &feature_noSramEccSupport, + &feature_vop3Literal, + &feature_gfx8Insts, + &feature_flatAddressSpace, + &feature_BitInsts16, + &feature_gfx10Insts, + &feature_sdwa, + &feature_intClampInsts, + &feature_noDataDepHazard, + &feature_fmaMixInsts, + &feature_sdwaOmod, &feature_instFwdPrefetchBug, &feature_ldsbankcount32, &feature_ldsBranchVmemWarHazard, @@ -1221,41 +1071,40 @@ pub const cpu_gfx1012 = Cpu{ &feature_dot5Insts, &feature_dot6Insts, &feature_flatSegmentOffsetBug, - &feature_registerBanking, - &feature_fp64, - &feature_vop3p, - &feature_sMemrealtime, - &feature_gfx8Insts, - &feature_dpp, - &feature_sdwaSdst, - &feature_ciInsts, - &feature_apertureRegs, - &feature_intClampInsts, - &feature_flatScratchInsts, - &feature_sdwaScalar, - &feature_fastFmaf, - &feature_pkFmacF16Inst, - &feature_vscnt, - &feature_movrel, - &feature_fmaMixInsts, - &feature_noSramEccSupport, - &feature_sdwa, - &feature_sdwaOmod, - &feature_vop3Literal, - &feature_dpp8, - &feature_gfx10Insts, - &feature_localmemorysize65536, &feature_mimgR128, - &feature_flatAddressSpace, &feature_addNoCarryInsts, - &feature_noDataDepHazard, - &feature_flatInstOffsets, - &feature_inv2piInlineImm, + &feature_dpp8, &feature_gfx9Insts, + &feature_ciInsts, + &feature_inv2piInlineImm, + &feature_fastFmaf, + &feature_registerBanking, + &feature_apertureRegs, &feature_flatGlobalInsts, - &feature_BitInsts16, + &feature_fp64, + &feature_vscnt, + &feature_flatScratchInsts, + &feature_dpp, + &feature_sMemrealtime, + &feature_vop3p, + &feature_flatInstOffsets, + &feature_sdwaScalar, + &feature_sdwaSdst, + &feature_movrel, + &feature_localmemorysize65536, &feature_noSdstCmpx, - &feature_gfx10, + &feature_pkFmacF16Inst, + &feature_noSramEccSupport, + &feature_vop3Literal, + &feature_gfx8Insts, + &feature_flatAddressSpace, + &feature_BitInsts16, + &feature_gfx10Insts, + &feature_sdwa, + &feature_intClampInsts, + &feature_noDataDepHazard, + &feature_fmaMixInsts, + &feature_sdwaOmod, &feature_instFwdPrefetchBug, &feature_ldsbankcount32, &feature_ldsBranchVmemWarHazard, @@ -1282,14 +1131,13 @@ pub const cpu_gfx600 = Cpu{ &feature_noXnackSupport, &feature_fastFmaf, &feature_ldsbankcount32, - &feature_localmemorysize32768, - &feature_trigReducedRange, &feature_noSramEccSupport, + &feature_mimgR128, + &feature_trigReducedRange, + &feature_wavefrontsize64, + &feature_localmemorysize32768, &feature_fp64, &feature_movrel, - &feature_mimgR128, - &feature_wavefrontsize64, - &feature_southernIslands, &feature_halfRate64Ops, }, }; @@ -1301,14 +1149,13 @@ pub const cpu_gfx601 = Cpu{ &feature_codeObjectV3, &feature_noXnackSupport, &feature_ldsbankcount32, - &feature_localmemorysize32768, - &feature_trigReducedRange, &feature_noSramEccSupport, + &feature_mimgR128, + &feature_trigReducedRange, + &feature_wavefrontsize64, + &feature_localmemorysize32768, &feature_fp64, &feature_movrel, - &feature_mimgR128, - &feature_wavefrontsize64, - &feature_southernIslands, }, }; @@ -1319,17 +1166,16 @@ pub const cpu_gfx700 = Cpu{ &feature_codeObjectV3, &feature_noXnackSupport, &feature_ldsbankcount32, - &feature_trigReducedRange, &feature_noSramEccSupport, + &feature_flatAddressSpace, + &feature_mimgR128, + &feature_trigReducedRange, + &feature_gfx7Gfx8Gfx9Insts, + &feature_ciInsts, + &feature_wavefrontsize64, &feature_fp64, &feature_movrel, - &feature_ciInsts, &feature_localmemorysize65536, - &feature_mimgR128, - &feature_wavefrontsize64, - &feature_flatAddressSpace, - &feature_gfx7Gfx8Gfx9Insts, - &feature_seaIslands, }, }; @@ -1341,17 +1187,16 @@ pub const cpu_gfx701 = Cpu{ &feature_noXnackSupport, &feature_fastFmaf, &feature_ldsbankcount32, - &feature_trigReducedRange, &feature_noSramEccSupport, + &feature_flatAddressSpace, + &feature_mimgR128, + &feature_trigReducedRange, + &feature_gfx7Gfx8Gfx9Insts, + &feature_ciInsts, + &feature_wavefrontsize64, &feature_fp64, &feature_movrel, - &feature_ciInsts, &feature_localmemorysize65536, - &feature_mimgR128, - &feature_wavefrontsize64, - &feature_flatAddressSpace, - &feature_gfx7Gfx8Gfx9Insts, - &feature_seaIslands, &feature_halfRate64Ops, }, }; @@ -1364,17 +1209,16 @@ pub const cpu_gfx702 = Cpu{ &feature_noXnackSupport, &feature_fastFmaf, &feature_ldsbankcount16, - &feature_trigReducedRange, &feature_noSramEccSupport, + &feature_flatAddressSpace, + &feature_mimgR128, + &feature_trigReducedRange, + &feature_gfx7Gfx8Gfx9Insts, + &feature_ciInsts, + &feature_wavefrontsize64, &feature_fp64, &feature_movrel, - &feature_ciInsts, &feature_localmemorysize65536, - &feature_mimgR128, - &feature_wavefrontsize64, - &feature_flatAddressSpace, - &feature_gfx7Gfx8Gfx9Insts, - &feature_seaIslands, }, }; @@ -1385,17 +1229,16 @@ pub const cpu_gfx703 = Cpu{ &feature_codeObjectV3, &feature_noXnackSupport, &feature_ldsbankcount16, - &feature_trigReducedRange, &feature_noSramEccSupport, + &feature_flatAddressSpace, + &feature_mimgR128, + &feature_trigReducedRange, + &feature_gfx7Gfx8Gfx9Insts, + &feature_ciInsts, + &feature_wavefrontsize64, &feature_fp64, &feature_movrel, - &feature_ciInsts, &feature_localmemorysize65536, - &feature_mimgR128, - &feature_wavefrontsize64, - &feature_flatAddressSpace, - &feature_gfx7Gfx8Gfx9Insts, - &feature_seaIslands, }, }; @@ -1406,17 +1249,16 @@ pub const cpu_gfx704 = Cpu{ &feature_codeObjectV3, &feature_noXnackSupport, &feature_ldsbankcount32, - &feature_trigReducedRange, &feature_noSramEccSupport, + &feature_flatAddressSpace, + &feature_mimgR128, + &feature_trigReducedRange, + &feature_gfx7Gfx8Gfx9Insts, + &feature_ciInsts, + &feature_wavefrontsize64, &feature_fp64, &feature_movrel, - &feature_ciInsts, &feature_localmemorysize65536, - &feature_mimgR128, - &feature_wavefrontsize64, - &feature_flatAddressSpace, - &feature_gfx7Gfx8Gfx9Insts, - &feature_seaIslands, }, }; @@ -1428,29 +1270,28 @@ pub const cpu_gfx801 = Cpu{ &feature_fastFmaf, &feature_ldsbankcount32, &feature_unpackedD16Vmem, - &feature_fp64, - &feature_sMemrealtime, - &feature_gfx8Insts, - &feature_dpp, - &feature_ciInsts, - &feature_scalarStores, - &feature_intClampInsts, - &feature_gcn3Encoding, - &feature_gfx7Gfx8Gfx9Insts, - &feature_wavefrontsize64, - &feature_movrel, - &feature_vgprIndexMode, - &feature_trigReducedRange, - &feature_noSramEccSupport, - &feature_sdwa, - &feature_sdwaMav, - &feature_sdwaOutModsVopc, - &feature_localmemorysize65536, &feature_mimgR128, - &feature_flatAddressSpace, &feature_inv2piInlineImm, + &feature_ciInsts, + &feature_vgprIndexMode, + &feature_scalarStores, + &feature_gcn3Encoding, + &feature_fp64, + &feature_dpp, + &feature_trigReducedRange, + &feature_gfx7Gfx8Gfx9Insts, + &feature_sMemrealtime, + &feature_movrel, + &feature_localmemorysize65536, + &feature_noSramEccSupport, + &feature_gfx8Insts, + &feature_flatAddressSpace, &feature_BitInsts16, - &feature_volcanicIslands, + &feature_sdwaMav, + &feature_sdwa, + &feature_sdwaOutModsVopc, + &feature_wavefrontsize64, + &feature_intClampInsts, &feature_xnack, &feature_halfRate64Ops, }, @@ -1465,29 +1306,28 @@ pub const cpu_gfx802 = Cpu{ &feature_ldsbankcount32, &feature_sgprInitBug, &feature_unpackedD16Vmem, - &feature_fp64, - &feature_sMemrealtime, - &feature_gfx8Insts, - &feature_dpp, - &feature_ciInsts, - &feature_scalarStores, - &feature_intClampInsts, - &feature_gcn3Encoding, - &feature_gfx7Gfx8Gfx9Insts, - &feature_wavefrontsize64, - &feature_movrel, - &feature_vgprIndexMode, - &feature_trigReducedRange, - &feature_noSramEccSupport, - &feature_sdwa, - &feature_sdwaMav, - &feature_sdwaOutModsVopc, - &feature_localmemorysize65536, &feature_mimgR128, - &feature_flatAddressSpace, &feature_inv2piInlineImm, + &feature_ciInsts, + &feature_vgprIndexMode, + &feature_scalarStores, + &feature_gcn3Encoding, + &feature_fp64, + &feature_dpp, + &feature_trigReducedRange, + &feature_gfx7Gfx8Gfx9Insts, + &feature_sMemrealtime, + &feature_movrel, + &feature_localmemorysize65536, + &feature_noSramEccSupport, + &feature_gfx8Insts, + &feature_flatAddressSpace, &feature_BitInsts16, - &feature_volcanicIslands, + &feature_sdwaMav, + &feature_sdwa, + &feature_sdwaOutModsVopc, + &feature_wavefrontsize64, + &feature_intClampInsts, }, }; @@ -1499,29 +1339,28 @@ pub const cpu_gfx803 = Cpu{ &feature_noXnackSupport, &feature_ldsbankcount32, &feature_unpackedD16Vmem, - &feature_fp64, - &feature_sMemrealtime, - &feature_gfx8Insts, - &feature_dpp, - &feature_ciInsts, - &feature_scalarStores, - &feature_intClampInsts, - &feature_gcn3Encoding, - &feature_gfx7Gfx8Gfx9Insts, - &feature_wavefrontsize64, - &feature_movrel, - &feature_vgprIndexMode, - &feature_trigReducedRange, - &feature_noSramEccSupport, - &feature_sdwa, - &feature_sdwaMav, - &feature_sdwaOutModsVopc, - &feature_localmemorysize65536, &feature_mimgR128, - &feature_flatAddressSpace, &feature_inv2piInlineImm, + &feature_ciInsts, + &feature_vgprIndexMode, + &feature_scalarStores, + &feature_gcn3Encoding, + &feature_fp64, + &feature_dpp, + &feature_trigReducedRange, + &feature_gfx7Gfx8Gfx9Insts, + &feature_sMemrealtime, + &feature_movrel, + &feature_localmemorysize65536, + &feature_noSramEccSupport, + &feature_gfx8Insts, + &feature_flatAddressSpace, &feature_BitInsts16, - &feature_volcanicIslands, + &feature_sdwaMav, + &feature_sdwa, + &feature_sdwaOutModsVopc, + &feature_wavefrontsize64, + &feature_intClampInsts, }, }; @@ -1531,29 +1370,28 @@ pub const cpu_gfx810 = Cpu{ .subfeatures = &[_]*const Feature { &feature_codeObjectV3, &feature_ldsbankcount16, - &feature_fp64, - &feature_sMemrealtime, - &feature_gfx8Insts, - &feature_dpp, - &feature_ciInsts, - &feature_scalarStores, - &feature_intClampInsts, - &feature_gcn3Encoding, - &feature_gfx7Gfx8Gfx9Insts, - &feature_wavefrontsize64, - &feature_movrel, - &feature_vgprIndexMode, - &feature_trigReducedRange, - &feature_noSramEccSupport, - &feature_sdwa, - &feature_sdwaMav, - &feature_sdwaOutModsVopc, - &feature_localmemorysize65536, &feature_mimgR128, - &feature_flatAddressSpace, &feature_inv2piInlineImm, + &feature_ciInsts, + &feature_vgprIndexMode, + &feature_scalarStores, + &feature_gcn3Encoding, + &feature_fp64, + &feature_dpp, + &feature_trigReducedRange, + &feature_gfx7Gfx8Gfx9Insts, + &feature_sMemrealtime, + &feature_movrel, + &feature_localmemorysize65536, + &feature_noSramEccSupport, + &feature_gfx8Insts, + &feature_flatAddressSpace, &feature_BitInsts16, - &feature_volcanicIslands, + &feature_sdwaMav, + &feature_sdwa, + &feature_sdwaOutModsVopc, + &feature_wavefrontsize64, + &feature_intClampInsts, &feature_xnack, }, }; @@ -1565,37 +1403,36 @@ pub const cpu_gfx900 = Cpu{ &feature_codeObjectV3, &feature_noSramEccSupport, &feature_noXnackSupport, - &feature_fp64, - &feature_vop3p, - &feature_sMemrealtime, - &feature_gfx8Insts, - &feature_dpp, - &feature_sdwaSdst, - &feature_ciInsts, - &feature_apertureRegs, - &feature_scalarStores, - &feature_intClampInsts, - &feature_gcn3Encoding, - &feature_flatScratchInsts, - &feature_gfx7Gfx8Gfx9Insts, - &feature_wavefrontsize64, - &feature_scalarAtomics, - &feature_sdwaScalar, - &feature_fastFmaf, - &feature_vgprIndexMode, - &feature_scalarFlatScratchInsts, - &feature_sdwa, - &feature_sdwaOmod, - &feature_localmemorysize65536, - &feature_flatAddressSpace, + &feature_r128A16, &feature_addNoCarryInsts, - &feature_flatInstOffsets, &feature_inv2piInlineImm, &feature_gfx9Insts, + &feature_ciInsts, + &feature_vgprIndexMode, + &feature_fastFmaf, + &feature_scalarStores, + &feature_gcn3Encoding, + &feature_apertureRegs, + &feature_scalarAtomics, &feature_flatGlobalInsts, + &feature_fp64, + &feature_flatScratchInsts, + &feature_dpp, + &feature_scalarFlatScratchInsts, + &feature_gfx7Gfx8Gfx9Insts, + &feature_sMemrealtime, + &feature_vop3p, + &feature_flatInstOffsets, + &feature_sdwaScalar, + &feature_sdwaSdst, + &feature_localmemorysize65536, + &feature_gfx8Insts, + &feature_flatAddressSpace, &feature_BitInsts16, - &feature_r128A16, - &feature_gfx9, + &feature_sdwa, + &feature_wavefrontsize64, + &feature_intClampInsts, + &feature_sdwaOmod, &feature_ldsbankcount32, &feature_madMixInsts, }, @@ -1607,37 +1444,36 @@ pub const cpu_gfx902 = Cpu{ .subfeatures = &[_]*const Feature { &feature_codeObjectV3, &feature_noSramEccSupport, - &feature_fp64, - &feature_vop3p, - &feature_sMemrealtime, - &feature_gfx8Insts, - &feature_dpp, - &feature_sdwaSdst, - &feature_ciInsts, - &feature_apertureRegs, - &feature_scalarStores, - &feature_intClampInsts, - &feature_gcn3Encoding, - &feature_flatScratchInsts, - &feature_gfx7Gfx8Gfx9Insts, - &feature_wavefrontsize64, - &feature_scalarAtomics, - &feature_sdwaScalar, - &feature_fastFmaf, - &feature_vgprIndexMode, - &feature_scalarFlatScratchInsts, - &feature_sdwa, - &feature_sdwaOmod, - &feature_localmemorysize65536, - &feature_flatAddressSpace, + &feature_r128A16, &feature_addNoCarryInsts, - &feature_flatInstOffsets, &feature_inv2piInlineImm, &feature_gfx9Insts, + &feature_ciInsts, + &feature_vgprIndexMode, + &feature_fastFmaf, + &feature_scalarStores, + &feature_gcn3Encoding, + &feature_apertureRegs, + &feature_scalarAtomics, &feature_flatGlobalInsts, + &feature_fp64, + &feature_flatScratchInsts, + &feature_dpp, + &feature_scalarFlatScratchInsts, + &feature_gfx7Gfx8Gfx9Insts, + &feature_sMemrealtime, + &feature_vop3p, + &feature_flatInstOffsets, + &feature_sdwaScalar, + &feature_sdwaSdst, + &feature_localmemorysize65536, + &feature_gfx8Insts, + &feature_flatAddressSpace, &feature_BitInsts16, - &feature_r128A16, - &feature_gfx9, + &feature_sdwa, + &feature_wavefrontsize64, + &feature_intClampInsts, + &feature_sdwaOmod, &feature_ldsbankcount32, &feature_madMixInsts, &feature_xnack, @@ -1652,37 +1488,36 @@ pub const cpu_gfx904 = Cpu{ &feature_noSramEccSupport, &feature_noXnackSupport, &feature_fmaMixInsts, - &feature_fp64, - &feature_vop3p, - &feature_sMemrealtime, - &feature_gfx8Insts, - &feature_dpp, - &feature_sdwaSdst, - &feature_ciInsts, - &feature_apertureRegs, - &feature_scalarStores, - &feature_intClampInsts, - &feature_gcn3Encoding, - &feature_flatScratchInsts, - &feature_gfx7Gfx8Gfx9Insts, - &feature_wavefrontsize64, - &feature_scalarAtomics, - &feature_sdwaScalar, - &feature_fastFmaf, - &feature_vgprIndexMode, - &feature_scalarFlatScratchInsts, - &feature_sdwa, - &feature_sdwaOmod, - &feature_localmemorysize65536, - &feature_flatAddressSpace, + &feature_r128A16, &feature_addNoCarryInsts, - &feature_flatInstOffsets, &feature_inv2piInlineImm, &feature_gfx9Insts, + &feature_ciInsts, + &feature_vgprIndexMode, + &feature_fastFmaf, + &feature_scalarStores, + &feature_gcn3Encoding, + &feature_apertureRegs, + &feature_scalarAtomics, &feature_flatGlobalInsts, + &feature_fp64, + &feature_flatScratchInsts, + &feature_dpp, + &feature_scalarFlatScratchInsts, + &feature_gfx7Gfx8Gfx9Insts, + &feature_sMemrealtime, + &feature_vop3p, + &feature_flatInstOffsets, + &feature_sdwaScalar, + &feature_sdwaSdst, + &feature_localmemorysize65536, + &feature_gfx8Insts, + &feature_flatAddressSpace, &feature_BitInsts16, - &feature_r128A16, - &feature_gfx9, + &feature_sdwa, + &feature_wavefrontsize64, + &feature_intClampInsts, + &feature_sdwaOmod, &feature_ldsbankcount32, }, }; @@ -1697,37 +1532,36 @@ pub const cpu_gfx906 = Cpu{ &feature_dot1Insts, &feature_dot2Insts, &feature_fmaMixInsts, - &feature_fp64, - &feature_vop3p, - &feature_sMemrealtime, - &feature_gfx8Insts, - &feature_dpp, - &feature_sdwaSdst, - &feature_ciInsts, - &feature_apertureRegs, - &feature_scalarStores, - &feature_intClampInsts, - &feature_gcn3Encoding, - &feature_flatScratchInsts, - &feature_gfx7Gfx8Gfx9Insts, - &feature_wavefrontsize64, - &feature_scalarAtomics, - &feature_sdwaScalar, - &feature_fastFmaf, - &feature_vgprIndexMode, - &feature_scalarFlatScratchInsts, - &feature_sdwa, - &feature_sdwaOmod, - &feature_localmemorysize65536, - &feature_flatAddressSpace, + &feature_r128A16, &feature_addNoCarryInsts, - &feature_flatInstOffsets, &feature_inv2piInlineImm, &feature_gfx9Insts, + &feature_ciInsts, + &feature_vgprIndexMode, + &feature_fastFmaf, + &feature_scalarStores, + &feature_gcn3Encoding, + &feature_apertureRegs, + &feature_scalarAtomics, &feature_flatGlobalInsts, + &feature_fp64, + &feature_flatScratchInsts, + &feature_dpp, + &feature_scalarFlatScratchInsts, + &feature_gfx7Gfx8Gfx9Insts, + &feature_sMemrealtime, + &feature_vop3p, + &feature_flatInstOffsets, + &feature_sdwaScalar, + &feature_sdwaSdst, + &feature_localmemorysize65536, + &feature_gfx8Insts, + &feature_flatAddressSpace, &feature_BitInsts16, - &feature_r128A16, - &feature_gfx9, + &feature_sdwa, + &feature_wavefrontsize64, + &feature_intClampInsts, + &feature_sdwaOmod, &feature_ldsbankcount32, &feature_halfRate64Ops, }, @@ -1747,37 +1581,36 @@ pub const cpu_gfx908 = Cpu{ &feature_dot5Insts, &feature_dot6Insts, &feature_fmaMixInsts, - &feature_fp64, - &feature_vop3p, - &feature_sMemrealtime, - &feature_gfx8Insts, - &feature_dpp, - &feature_sdwaSdst, - &feature_ciInsts, - &feature_apertureRegs, - &feature_scalarStores, - &feature_intClampInsts, - &feature_gcn3Encoding, - &feature_flatScratchInsts, - &feature_gfx7Gfx8Gfx9Insts, - &feature_wavefrontsize64, - &feature_scalarAtomics, - &feature_sdwaScalar, - &feature_fastFmaf, - &feature_vgprIndexMode, - &feature_scalarFlatScratchInsts, - &feature_sdwa, - &feature_sdwaOmod, - &feature_localmemorysize65536, - &feature_flatAddressSpace, + &feature_r128A16, &feature_addNoCarryInsts, - &feature_flatInstOffsets, &feature_inv2piInlineImm, &feature_gfx9Insts, + &feature_ciInsts, + &feature_vgprIndexMode, + &feature_fastFmaf, + &feature_scalarStores, + &feature_gcn3Encoding, + &feature_apertureRegs, + &feature_scalarAtomics, &feature_flatGlobalInsts, + &feature_fp64, + &feature_flatScratchInsts, + &feature_dpp, + &feature_scalarFlatScratchInsts, + &feature_gfx7Gfx8Gfx9Insts, + &feature_sMemrealtime, + &feature_vop3p, + &feature_flatInstOffsets, + &feature_sdwaScalar, + &feature_sdwaSdst, + &feature_localmemorysize65536, + &feature_gfx8Insts, + &feature_flatAddressSpace, &feature_BitInsts16, - &feature_r128A16, - &feature_gfx9, + &feature_sdwa, + &feature_wavefrontsize64, + &feature_intClampInsts, + &feature_sdwaOmod, &feature_ldsbankcount32, &feature_maiInsts, &feature_mfmaInlineLiteralBug, @@ -1792,37 +1625,36 @@ pub const cpu_gfx909 = Cpu{ .llvm_name = "gfx909", .subfeatures = &[_]*const Feature { &feature_codeObjectV3, - &feature_fp64, - &feature_vop3p, - &feature_sMemrealtime, - &feature_gfx8Insts, - &feature_dpp, - &feature_sdwaSdst, - &feature_ciInsts, - &feature_apertureRegs, - &feature_scalarStores, - &feature_intClampInsts, - &feature_gcn3Encoding, - &feature_flatScratchInsts, - &feature_gfx7Gfx8Gfx9Insts, - &feature_wavefrontsize64, - &feature_scalarAtomics, - &feature_sdwaScalar, - &feature_fastFmaf, - &feature_vgprIndexMode, - &feature_scalarFlatScratchInsts, - &feature_sdwa, - &feature_sdwaOmod, - &feature_localmemorysize65536, - &feature_flatAddressSpace, + &feature_r128A16, &feature_addNoCarryInsts, - &feature_flatInstOffsets, &feature_inv2piInlineImm, &feature_gfx9Insts, + &feature_ciInsts, + &feature_vgprIndexMode, + &feature_fastFmaf, + &feature_scalarStores, + &feature_gcn3Encoding, + &feature_apertureRegs, + &feature_scalarAtomics, &feature_flatGlobalInsts, + &feature_fp64, + &feature_flatScratchInsts, + &feature_dpp, + &feature_scalarFlatScratchInsts, + &feature_gfx7Gfx8Gfx9Insts, + &feature_sMemrealtime, + &feature_vop3p, + &feature_flatInstOffsets, + &feature_sdwaScalar, + &feature_sdwaSdst, + &feature_localmemorysize65536, + &feature_gfx8Insts, + &feature_flatAddressSpace, &feature_BitInsts16, - &feature_r128A16, - &feature_gfx9, + &feature_sdwa, + &feature_wavefrontsize64, + &feature_intClampInsts, + &feature_sdwaOmod, &feature_ldsbankcount32, &feature_madMixInsts, &feature_xnack, @@ -1836,14 +1668,13 @@ pub const cpu_hainan = Cpu{ &feature_codeObjectV3, &feature_noXnackSupport, &feature_ldsbankcount32, - &feature_localmemorysize32768, - &feature_trigReducedRange, &feature_noSramEccSupport, + &feature_mimgR128, + &feature_trigReducedRange, + &feature_wavefrontsize64, + &feature_localmemorysize32768, &feature_fp64, &feature_movrel, - &feature_mimgR128, - &feature_wavefrontsize64, - &feature_southernIslands, }, }; @@ -1855,17 +1686,16 @@ pub const cpu_hawaii = Cpu{ &feature_noXnackSupport, &feature_fastFmaf, &feature_ldsbankcount32, - &feature_trigReducedRange, &feature_noSramEccSupport, + &feature_flatAddressSpace, + &feature_mimgR128, + &feature_trigReducedRange, + &feature_gfx7Gfx8Gfx9Insts, + &feature_ciInsts, + &feature_wavefrontsize64, &feature_fp64, &feature_movrel, - &feature_ciInsts, &feature_localmemorysize65536, - &feature_mimgR128, - &feature_wavefrontsize64, - &feature_flatAddressSpace, - &feature_gfx7Gfx8Gfx9Insts, - &feature_seaIslands, &feature_halfRate64Ops, }, }; @@ -1879,29 +1709,28 @@ pub const cpu_iceland = Cpu{ &feature_ldsbankcount32, &feature_sgprInitBug, &feature_unpackedD16Vmem, - &feature_fp64, - &feature_sMemrealtime, - &feature_gfx8Insts, - &feature_dpp, - &feature_ciInsts, - &feature_scalarStores, - &feature_intClampInsts, - &feature_gcn3Encoding, - &feature_gfx7Gfx8Gfx9Insts, - &feature_wavefrontsize64, - &feature_movrel, - &feature_vgprIndexMode, - &feature_trigReducedRange, - &feature_noSramEccSupport, - &feature_sdwa, - &feature_sdwaMav, - &feature_sdwaOutModsVopc, - &feature_localmemorysize65536, &feature_mimgR128, - &feature_flatAddressSpace, &feature_inv2piInlineImm, + &feature_ciInsts, + &feature_vgprIndexMode, + &feature_scalarStores, + &feature_gcn3Encoding, + &feature_fp64, + &feature_dpp, + &feature_trigReducedRange, + &feature_gfx7Gfx8Gfx9Insts, + &feature_sMemrealtime, + &feature_movrel, + &feature_localmemorysize65536, + &feature_noSramEccSupport, + &feature_gfx8Insts, + &feature_flatAddressSpace, &feature_BitInsts16, - &feature_volcanicIslands, + &feature_sdwaMav, + &feature_sdwa, + &feature_sdwaOutModsVopc, + &feature_wavefrontsize64, + &feature_intClampInsts, }, }; @@ -1912,17 +1741,16 @@ pub const cpu_kabini = Cpu{ &feature_codeObjectV3, &feature_noXnackSupport, &feature_ldsbankcount16, - &feature_trigReducedRange, &feature_noSramEccSupport, + &feature_flatAddressSpace, + &feature_mimgR128, + &feature_trigReducedRange, + &feature_gfx7Gfx8Gfx9Insts, + &feature_ciInsts, + &feature_wavefrontsize64, &feature_fp64, &feature_movrel, - &feature_ciInsts, &feature_localmemorysize65536, - &feature_mimgR128, - &feature_wavefrontsize64, - &feature_flatAddressSpace, - &feature_gfx7Gfx8Gfx9Insts, - &feature_seaIslands, }, }; @@ -1933,17 +1761,16 @@ pub const cpu_kaveri = Cpu{ &feature_codeObjectV3, &feature_noXnackSupport, &feature_ldsbankcount32, - &feature_trigReducedRange, &feature_noSramEccSupport, + &feature_flatAddressSpace, + &feature_mimgR128, + &feature_trigReducedRange, + &feature_gfx7Gfx8Gfx9Insts, + &feature_ciInsts, + &feature_wavefrontsize64, &feature_fp64, &feature_movrel, - &feature_ciInsts, &feature_localmemorysize65536, - &feature_mimgR128, - &feature_wavefrontsize64, - &feature_flatAddressSpace, - &feature_gfx7Gfx8Gfx9Insts, - &feature_seaIslands, }, }; @@ -1954,17 +1781,16 @@ pub const cpu_mullins = Cpu{ &feature_codeObjectV3, &feature_noXnackSupport, &feature_ldsbankcount16, - &feature_trigReducedRange, &feature_noSramEccSupport, + &feature_flatAddressSpace, + &feature_mimgR128, + &feature_trigReducedRange, + &feature_gfx7Gfx8Gfx9Insts, + &feature_ciInsts, + &feature_wavefrontsize64, &feature_fp64, &feature_movrel, - &feature_ciInsts, &feature_localmemorysize65536, - &feature_mimgR128, - &feature_wavefrontsize64, - &feature_flatAddressSpace, - &feature_gfx7Gfx8Gfx9Insts, - &feature_seaIslands, }, }; @@ -1975,14 +1801,13 @@ pub const cpu_oland = Cpu{ &feature_codeObjectV3, &feature_noXnackSupport, &feature_ldsbankcount32, - &feature_localmemorysize32768, - &feature_trigReducedRange, &feature_noSramEccSupport, + &feature_mimgR128, + &feature_trigReducedRange, + &feature_wavefrontsize64, + &feature_localmemorysize32768, &feature_fp64, &feature_movrel, - &feature_mimgR128, - &feature_wavefrontsize64, - &feature_southernIslands, }, }; @@ -1993,14 +1818,13 @@ pub const cpu_pitcairn = Cpu{ &feature_codeObjectV3, &feature_noXnackSupport, &feature_ldsbankcount32, - &feature_localmemorysize32768, - &feature_trigReducedRange, &feature_noSramEccSupport, + &feature_mimgR128, + &feature_trigReducedRange, + &feature_wavefrontsize64, + &feature_localmemorysize32768, &feature_fp64, &feature_movrel, - &feature_mimgR128, - &feature_wavefrontsize64, - &feature_southernIslands, }, }; @@ -2012,29 +1836,28 @@ pub const cpu_polaris10 = Cpu{ &feature_noXnackSupport, &feature_ldsbankcount32, &feature_unpackedD16Vmem, - &feature_fp64, - &feature_sMemrealtime, - &feature_gfx8Insts, - &feature_dpp, - &feature_ciInsts, - &feature_scalarStores, - &feature_intClampInsts, - &feature_gcn3Encoding, - &feature_gfx7Gfx8Gfx9Insts, - &feature_wavefrontsize64, - &feature_movrel, - &feature_vgprIndexMode, - &feature_trigReducedRange, - &feature_noSramEccSupport, - &feature_sdwa, - &feature_sdwaMav, - &feature_sdwaOutModsVopc, - &feature_localmemorysize65536, &feature_mimgR128, - &feature_flatAddressSpace, &feature_inv2piInlineImm, + &feature_ciInsts, + &feature_vgprIndexMode, + &feature_scalarStores, + &feature_gcn3Encoding, + &feature_fp64, + &feature_dpp, + &feature_trigReducedRange, + &feature_gfx7Gfx8Gfx9Insts, + &feature_sMemrealtime, + &feature_movrel, + &feature_localmemorysize65536, + &feature_noSramEccSupport, + &feature_gfx8Insts, + &feature_flatAddressSpace, &feature_BitInsts16, - &feature_volcanicIslands, + &feature_sdwaMav, + &feature_sdwa, + &feature_sdwaOutModsVopc, + &feature_wavefrontsize64, + &feature_intClampInsts, }, }; @@ -2046,29 +1869,28 @@ pub const cpu_polaris11 = Cpu{ &feature_noXnackSupport, &feature_ldsbankcount32, &feature_unpackedD16Vmem, - &feature_fp64, - &feature_sMemrealtime, - &feature_gfx8Insts, - &feature_dpp, - &feature_ciInsts, - &feature_scalarStores, - &feature_intClampInsts, - &feature_gcn3Encoding, - &feature_gfx7Gfx8Gfx9Insts, - &feature_wavefrontsize64, - &feature_movrel, - &feature_vgprIndexMode, - &feature_trigReducedRange, - &feature_noSramEccSupport, - &feature_sdwa, - &feature_sdwaMav, - &feature_sdwaOutModsVopc, - &feature_localmemorysize65536, &feature_mimgR128, - &feature_flatAddressSpace, &feature_inv2piInlineImm, + &feature_ciInsts, + &feature_vgprIndexMode, + &feature_scalarStores, + &feature_gcn3Encoding, + &feature_fp64, + &feature_dpp, + &feature_trigReducedRange, + &feature_gfx7Gfx8Gfx9Insts, + &feature_sMemrealtime, + &feature_movrel, + &feature_localmemorysize65536, + &feature_noSramEccSupport, + &feature_gfx8Insts, + &feature_flatAddressSpace, &feature_BitInsts16, - &feature_volcanicIslands, + &feature_sdwaMav, + &feature_sdwa, + &feature_sdwaOutModsVopc, + &feature_wavefrontsize64, + &feature_intClampInsts, }, }; @@ -2078,29 +1900,28 @@ pub const cpu_stoney = Cpu{ .subfeatures = &[_]*const Feature { &feature_codeObjectV3, &feature_ldsbankcount16, - &feature_fp64, - &feature_sMemrealtime, - &feature_gfx8Insts, - &feature_dpp, - &feature_ciInsts, - &feature_scalarStores, - &feature_intClampInsts, - &feature_gcn3Encoding, - &feature_gfx7Gfx8Gfx9Insts, - &feature_wavefrontsize64, - &feature_movrel, - &feature_vgprIndexMode, - &feature_trigReducedRange, - &feature_noSramEccSupport, - &feature_sdwa, - &feature_sdwaMav, - &feature_sdwaOutModsVopc, - &feature_localmemorysize65536, &feature_mimgR128, - &feature_flatAddressSpace, &feature_inv2piInlineImm, + &feature_ciInsts, + &feature_vgprIndexMode, + &feature_scalarStores, + &feature_gcn3Encoding, + &feature_fp64, + &feature_dpp, + &feature_trigReducedRange, + &feature_gfx7Gfx8Gfx9Insts, + &feature_sMemrealtime, + &feature_movrel, + &feature_localmemorysize65536, + &feature_noSramEccSupport, + &feature_gfx8Insts, + &feature_flatAddressSpace, &feature_BitInsts16, - &feature_volcanicIslands, + &feature_sdwaMav, + &feature_sdwa, + &feature_sdwaOutModsVopc, + &feature_wavefrontsize64, + &feature_intClampInsts, &feature_xnack, }, }; @@ -2113,14 +1934,13 @@ pub const cpu_tahiti = Cpu{ &feature_noXnackSupport, &feature_fastFmaf, &feature_ldsbankcount32, - &feature_localmemorysize32768, - &feature_trigReducedRange, &feature_noSramEccSupport, + &feature_mimgR128, + &feature_trigReducedRange, + &feature_wavefrontsize64, + &feature_localmemorysize32768, &feature_fp64, &feature_movrel, - &feature_mimgR128, - &feature_wavefrontsize64, - &feature_southernIslands, &feature_halfRate64Ops, }, }; @@ -2134,29 +1954,28 @@ pub const cpu_tonga = Cpu{ &feature_ldsbankcount32, &feature_sgprInitBug, &feature_unpackedD16Vmem, - &feature_fp64, - &feature_sMemrealtime, - &feature_gfx8Insts, - &feature_dpp, - &feature_ciInsts, - &feature_scalarStores, - &feature_intClampInsts, - &feature_gcn3Encoding, - &feature_gfx7Gfx8Gfx9Insts, - &feature_wavefrontsize64, - &feature_movrel, - &feature_vgprIndexMode, - &feature_trigReducedRange, - &feature_noSramEccSupport, - &feature_sdwa, - &feature_sdwaMav, - &feature_sdwaOutModsVopc, - &feature_localmemorysize65536, &feature_mimgR128, - &feature_flatAddressSpace, &feature_inv2piInlineImm, + &feature_ciInsts, + &feature_vgprIndexMode, + &feature_scalarStores, + &feature_gcn3Encoding, + &feature_fp64, + &feature_dpp, + &feature_trigReducedRange, + &feature_gfx7Gfx8Gfx9Insts, + &feature_sMemrealtime, + &feature_movrel, + &feature_localmemorysize65536, + &feature_noSramEccSupport, + &feature_gfx8Insts, + &feature_flatAddressSpace, &feature_BitInsts16, - &feature_volcanicIslands, + &feature_sdwaMav, + &feature_sdwa, + &feature_sdwaOutModsVopc, + &feature_wavefrontsize64, + &feature_intClampInsts, }, }; @@ -2167,14 +1986,13 @@ pub const cpu_verde = Cpu{ &feature_codeObjectV3, &feature_noXnackSupport, &feature_ldsbankcount32, - &feature_localmemorysize32768, - &feature_trigReducedRange, &feature_noSramEccSupport, + &feature_mimgR128, + &feature_trigReducedRange, + &feature_wavefrontsize64, + &feature_localmemorysize32768, &feature_fp64, &feature_movrel, - &feature_mimgR128, - &feature_wavefrontsize64, - &feature_southernIslands, }, }; diff --git a/lib/std/target/arm.zig b/lib/std/target/arm.zig index c28ece032f..73f2d3ead9 100644 --- a/lib/std/target/arm.zig +++ b/lib/std/target/arm.zig @@ -1,481 +1,6 @@ const Feature = @import("std").target.Feature; const Cpu = @import("std").target.Cpu; -pub const feature_armv2 = Feature{ - .name = "armv2", - .description = "ARMv2 architecture", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_armv2a = Feature{ - .name = "armv2a", - .description = "ARMv2a architecture", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_armv3 = Feature{ - .name = "armv3", - .description = "ARMv3 architecture", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_armv3m = Feature{ - .name = "armv3m", - .description = "ARMv3m architecture", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_armv4 = Feature{ - .name = "armv4", - .description = "ARMv4 architecture", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_armv4t = Feature{ - .name = "armv4t", - .description = "ARMv4t architecture", - .subfeatures = &[_]*const Feature { - &feature_v4t, - }, -}; - -pub const feature_armv5t = Feature{ - .name = "armv5t", - .description = "ARMv5t architecture", - .subfeatures = &[_]*const Feature { - &feature_v4t, - }, -}; - -pub const feature_armv5te = Feature{ - .name = "armv5te", - .description = "ARMv5te architecture", - .subfeatures = &[_]*const Feature { - &feature_v4t, - }, -}; - -pub const feature_armv5tej = Feature{ - .name = "armv5tej", - .description = "ARMv5tej architecture", - .subfeatures = &[_]*const Feature { - &feature_v4t, - }, -}; - -pub const feature_armv6 = Feature{ - .name = "armv6", - .description = "ARMv6 architecture", - .subfeatures = &[_]*const Feature { - &feature_v4t, - &feature_dsp, - }, -}; - -pub const feature_armv6j = Feature{ - .name = "armv6j", - .description = "ARMv7a architecture", - .subfeatures = &[_]*const Feature { - &feature_v4t, - &feature_dsp, - }, -}; - -pub const feature_armv6k = Feature{ - .name = "armv6k", - .description = "ARMv6k architecture", - .subfeatures = &[_]*const Feature { - &feature_v4t, - }, -}; - -pub const feature_armv6kz = Feature{ - .name = "armv6kz", - .description = "ARMv6kz architecture", - .subfeatures = &[_]*const Feature { - &feature_v4t, - &feature_trustzone, - }, -}; - -pub const feature_armv6M = Feature{ - .name = "armv6-m", - .description = "ARMv6m architecture", - .subfeatures = &[_]*const Feature { - &feature_db, - &feature_mclass, - &feature_thumbMode, - &feature_strictAlign, - &feature_noarm, - &feature_v4t, - }, -}; - -pub const feature_armv6sM = Feature{ - .name = "armv6s-m", - .description = "ARMv6sm architecture", - .subfeatures = &[_]*const Feature { - &feature_db, - &feature_mclass, - &feature_thumbMode, - &feature_strictAlign, - &feature_noarm, - &feature_v4t, - }, -}; - -pub const feature_armv6t2 = Feature{ - .name = "armv6t2", - .description = "ARMv6t2 architecture", - .subfeatures = &[_]*const Feature { - &feature_thumb2, - &feature_dsp, - &feature_v4t, - }, -}; - -pub const feature_armv7A = Feature{ - .name = "armv7-a", - .description = "ARMv7a architecture", - .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, - &feature_fpregs, - &feature_thumb2, - &feature_v7clrex, - &feature_aclass, - &feature_perfmon, - &feature_v4t, - &feature_d32, - }, -}; - -pub const feature_armv7eM = Feature{ - .name = "armv7e-m", - .description = "ARMv7em architecture", - .subfeatures = &[_]*const Feature { - &feature_db, - &feature_mclass, - &feature_hwdiv, - &feature_dsp, - &feature_thumbMode, - &feature_thumb2, - &feature_v7clrex, - &feature_perfmon, - &feature_noarm, - &feature_v4t, - }, -}; - -pub const feature_armv7k = Feature{ - .name = "armv7k", - .description = "ARMv7a architecture", - .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, - &feature_fpregs, - &feature_thumb2, - &feature_v7clrex, - &feature_aclass, - &feature_perfmon, - &feature_v4t, - &feature_d32, - }, -}; - -pub const feature_armv7M = Feature{ - .name = "armv7-m", - .description = "ARMv7m architecture", - .subfeatures = &[_]*const Feature { - &feature_db, - &feature_mclass, - &feature_hwdiv, - &feature_thumbMode, - &feature_thumb2, - &feature_v7clrex, - &feature_perfmon, - &feature_noarm, - &feature_v4t, - }, -}; - -pub const feature_armv7R = Feature{ - .name = "armv7-r", - .description = "ARMv7r architecture", - .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, - &feature_hwdiv, - &feature_rclass, - &feature_thumb2, - &feature_v7clrex, - &feature_perfmon, - &feature_v4t, - }, -}; - -pub const feature_armv7s = Feature{ - .name = "armv7s", - .description = "ARMv7a architecture", - .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, - &feature_fpregs, - &feature_thumb2, - &feature_v7clrex, - &feature_aclass, - &feature_perfmon, - &feature_v4t, - &feature_d32, - }, -}; - -pub const feature_armv7ve = Feature{ - .name = "armv7ve", - .description = "ARMv7ve architecture", - .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, - &feature_hwdivArm, - &feature_hwdiv, - &feature_trustzone, - &feature_fpregs, - &feature_thumb2, - &feature_v7clrex, - &feature_aclass, - &feature_mp, - &feature_perfmon, - &feature_v4t, - &feature_d32, - }, -}; - -pub const feature_armv8A = Feature{ - .name = "armv8-a", - .description = "ARMv8a architecture", - .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, - &feature_hwdivArm, - &feature_hwdiv, - &feature_trustzone, - &feature_fpregs, - &feature_v4t, - &feature_thumb2, - &feature_v7clrex, - &feature_aclass, - &feature_crc, - &feature_mp, - &feature_acquireRelease, - &feature_fp16, - &feature_perfmon, - &feature_d32, - }, -}; - -pub const feature_armv8Mbase = Feature{ - .name = "armv8-m.base", - .description = "ARMv8mBaseline architecture", - .subfeatures = &[_]*const Feature { - &feature_db, - &feature_mclass, - &feature_hwdiv, - &feature_thumbMode, - &feature_strictAlign, - &feature_v7clrex, - &feature_msecext8, - &feature_acquireRelease, - &feature_noarm, - &feature_v4t, - }, -}; - -pub const feature_armv8Mmain = Feature{ - .name = "armv8-m.main", - .description = "ARMv8mMainline architecture", - .subfeatures = &[_]*const Feature { - &feature_db, - &feature_mclass, - &feature_hwdiv, - &feature_thumbMode, - &feature_thumb2, - &feature_v7clrex, - &feature_msecext8, - &feature_acquireRelease, - &feature_perfmon, - &feature_noarm, - &feature_v4t, - }, -}; - -pub const feature_armv8R = Feature{ - .name = "armv8-r", - .description = "ARMv8r architecture", - .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, - &feature_hwdivArm, - &feature_hwdiv, - &feature_rclass, - &feature_fpregs, - &feature_v4t, - &feature_dfb, - &feature_thumb2, - &feature_v7clrex, - &feature_perfmon, - &feature_crc, - &feature_mp, - &feature_acquireRelease, - &feature_fp16, - &feature_d32, - }, -}; - -pub const feature_armv81A = Feature{ - .name = "armv8.1-a", - .description = "ARMv81a architecture", - .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, - &feature_hwdivArm, - &feature_hwdiv, - &feature_trustzone, - &feature_fpregs, - &feature_v4t, - &feature_thumb2, - &feature_v7clrex, - &feature_aclass, - &feature_crc, - &feature_mp, - &feature_acquireRelease, - &feature_fp16, - &feature_perfmon, - &feature_d32, - }, -}; - -pub const feature_armv81Mmain = Feature{ - .name = "armv8.1-m.main", - .description = "ARMv81mMainline architecture", - .subfeatures = &[_]*const Feature { - &feature_db, - &feature_mclass, - &feature_hwdiv, - &feature_lob, - &feature_thumbMode, - &feature_thumb2, - &feature_ras, - &feature_v7clrex, - &feature_msecext8, - &feature_acquireRelease, - &feature_perfmon, - &feature_noarm, - &feature_v4t, - }, -}; - -pub const feature_armv82A = Feature{ - .name = "armv8.2-a", - .description = "ARMv82a architecture", - .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, - &feature_hwdivArm, - &feature_hwdiv, - &feature_trustzone, - &feature_fpregs, - &feature_v4t, - &feature_thumb2, - &feature_ras, - &feature_v7clrex, - &feature_aclass, - &feature_crc, - &feature_mp, - &feature_acquireRelease, - &feature_fp16, - &feature_perfmon, - &feature_d32, - }, -}; - -pub const feature_armv83A = Feature{ - .name = "armv8.3-a", - .description = "ARMv83a architecture", - .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, - &feature_hwdivArm, - &feature_hwdiv, - &feature_trustzone, - &feature_fpregs, - &feature_v4t, - &feature_thumb2, - &feature_ras, - &feature_v7clrex, - &feature_aclass, - &feature_crc, - &feature_mp, - &feature_acquireRelease, - &feature_fp16, - &feature_perfmon, - &feature_d32, - }, -}; - -pub const feature_armv84A = Feature{ - .name = "armv8.4-a", - .description = "ARMv84a architecture", - .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, - &feature_hwdivArm, - &feature_hwdiv, - &feature_trustzone, - &feature_fpregs, - &feature_v4t, - &feature_thumb2, - &feature_ras, - &feature_v7clrex, - &feature_aclass, - &feature_crc, - &feature_mp, - &feature_acquireRelease, - &feature_fp16, - &feature_perfmon, - &feature_d32, - }, -}; - -pub const feature_armv85A = Feature{ - .name = "armv8.5-a", - .description = "ARMv85a architecture", - .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, - &feature_hwdivArm, - &feature_hwdiv, - &feature_trustzone, - &feature_fpregs, - &feature_v4t, - &feature_thumb2, - &feature_ras, - &feature_sb, - &feature_aclass, - &feature_crc, - &feature_mp, - &feature_v7clrex, - &feature_fp16, - &feature_acquireRelease, - &feature_d32, - &feature_perfmon, - }, -}; - pub const feature_msecext8 = Feature{ .name = "8msecext", .description = "Enable support for ARMv8-M Security Extensions", @@ -643,9 +168,9 @@ pub const feature_fpArmv8 = Feature{ .name = "fp-armv8", .description = "Enable ARMv8 FP", .subfeatures = &[_]*const Feature { + &feature_fp16, &feature_fpregs, &feature_d32, - &feature_fp16, }, }; @@ -653,8 +178,8 @@ pub const feature_fpArmv8d16 = Feature{ .name = "fp-armv8d16", .description = "Enable ARMv8 FP with only 16 d-registers", .subfeatures = &[_]*const Feature { - &feature_fpregs, &feature_fp16, + &feature_fpregs, }, }; @@ -672,8 +197,8 @@ pub const feature_fpArmv8sp = Feature{ .description = "Enable ARMv8 FP with no double precision", .subfeatures = &[_]*const Feature { &feature_fp16, - &feature_d32, &feature_fpregs, + &feature_d32, }, }; @@ -1119,8 +644,8 @@ pub const feature_vfp4 = Feature{ .description = "Enable VFP4 instructions", .subfeatures = &[_]*const Feature { &feature_fp16, - &feature_d32, &feature_fpregs, + &feature_d32, }, }; @@ -1147,8 +672,8 @@ pub const feature_vfp4sp = Feature{ .description = "Enable VFP4 instructions with no double precision", .subfeatures = &[_]*const Feature { &feature_fp16, - &feature_d32, &feature_fpregs, + &feature_d32, }, }; @@ -1163,8 +688,8 @@ pub const feature_virtualization = Feature{ .name = "virtualization", .description = "Supports Virtualization extension", .subfeatures = &[_]*const Feature { - &feature_hwdivArm, &feature_hwdiv, + &feature_hwdivArm, }, }; @@ -1175,472 +700,7 @@ pub const feature_zcz = Feature{ }, }; -pub const feature_mvefp = Feature{ - .name = "mve.fp", - .description = "Support M-Class Vector Extension with integer and floating ops", - .subfeatures = &[_]*const Feature { - &feature_dsp, - &feature_fpregs, - &feature_v4t, - &feature_thumb2, - &feature_v7clrex, - &feature_perfmon, - &feature_fp16, - }, -}; - -pub const feature_mve = Feature{ - .name = "mve", - .description = "Support M-Class Vector Extension with integer ops", - .subfeatures = &[_]*const Feature { - &feature_dsp, - &feature_fpregs, - &feature_thumb2, - &feature_v7clrex, - &feature_perfmon, - &feature_v4t, - }, -}; - -pub const feature_v4t = Feature{ - .name = "v4t", - .description = "Support ARM v4T instructions", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_v5te = Feature{ - .name = "v5te", - .description = "Support ARM v5TE, v5TEj, and v5TExp instructions", - .subfeatures = &[_]*const Feature { - &feature_v4t, - }, -}; - -pub const feature_v5t = Feature{ - .name = "v5t", - .description = "Support ARM v5T instructions", - .subfeatures = &[_]*const Feature { - &feature_v4t, - }, -}; - -pub const feature_v6k = Feature{ - .name = "v6k", - .description = "Support ARM v6k instructions", - .subfeatures = &[_]*const Feature { - &feature_v4t, - }, -}; - -pub const feature_v6m = Feature{ - .name = "v6m", - .description = "Support ARM v6M instructions", - .subfeatures = &[_]*const Feature { - &feature_v4t, - }, -}; - -pub const feature_v6 = Feature{ - .name = "v6", - .description = "Support ARM v6 instructions", - .subfeatures = &[_]*const Feature { - &feature_v4t, - }, -}; - -pub const feature_v6t2 = Feature{ - .name = "v6t2", - .description = "Support ARM v6t2 instructions", - .subfeatures = &[_]*const Feature { - &feature_thumb2, - &feature_v4t, - }, -}; - -pub const feature_v7 = Feature{ - .name = "v7", - .description = "Support ARM v7 instructions", - .subfeatures = &[_]*const Feature { - &feature_thumb2, - &feature_v7clrex, - &feature_v4t, - &feature_perfmon, - }, -}; - -pub const feature_v8m = Feature{ - .name = "v8m", - .description = "Support ARM v8M Baseline instructions", - .subfeatures = &[_]*const Feature { - &feature_v4t, - }, -}; - -pub const feature_v8mmain = Feature{ - .name = "v8m.main", - .description = "Support ARM v8M Mainline instructions", - .subfeatures = &[_]*const Feature { - &feature_thumb2, - &feature_v7clrex, - &feature_v4t, - &feature_perfmon, - }, -}; - -pub const feature_v8 = Feature{ - .name = "v8", - .description = "Support ARM v8 instructions", - .subfeatures = &[_]*const Feature { - &feature_thumb2, - &feature_v7clrex, - &feature_acquireRelease, - &feature_perfmon, - &feature_v4t, - }, -}; - -pub const feature_v81mmain = Feature{ - .name = "v8.1m.main", - .description = "Support ARM v8-1M Mainline instructions", - .subfeatures = &[_]*const Feature { - &feature_thumb2, - &feature_v7clrex, - &feature_v4t, - &feature_perfmon, - }, -}; - -pub const feature_v81a = Feature{ - .name = "v8.1a", - .description = "Support ARM v8.1a instructions", - .subfeatures = &[_]*const Feature { - &feature_thumb2, - &feature_v7clrex, - &feature_acquireRelease, - &feature_perfmon, - &feature_v4t, - }, -}; - -pub const feature_v82a = Feature{ - .name = "v8.2a", - .description = "Support ARM v8.2a instructions", - .subfeatures = &[_]*const Feature { - &feature_thumb2, - &feature_v7clrex, - &feature_acquireRelease, - &feature_perfmon, - &feature_v4t, - }, -}; - -pub const feature_v83a = Feature{ - .name = "v8.3a", - .description = "Support ARM v8.3a instructions", - .subfeatures = &[_]*const Feature { - &feature_thumb2, - &feature_v7clrex, - &feature_acquireRelease, - &feature_perfmon, - &feature_v4t, - }, -}; - -pub const feature_v84a = Feature{ - .name = "v8.4a", - .description = "Support ARM v8.4a instructions", - .subfeatures = &[_]*const Feature { - &feature_fpregs, - &feature_thumb2, - &feature_v7clrex, - &feature_acquireRelease, - &feature_perfmon, - &feature_v4t, - &feature_d32, - }, -}; - -pub const feature_v85a = Feature{ - .name = "v8.5a", - .description = "Support ARM v8.5a instructions", - .subfeatures = &[_]*const Feature { - &feature_fpregs, - &feature_thumb2, - &feature_sb, - &feature_v7clrex, - &feature_acquireRelease, - &feature_perfmon, - &feature_v4t, - &feature_d32, - }, -}; - -pub const feature_iwmmxt = Feature{ - .name = "iwmmxt", - .description = "ARMv5te architecture", - .subfeatures = &[_]*const Feature { - &feature_v4t, - }, -}; - -pub const feature_iwmmxt2 = Feature{ - .name = "iwmmxt2", - .description = "ARMv5te architecture", - .subfeatures = &[_]*const Feature { - &feature_v4t, - }, -}; - -pub const feature_softFloat = Feature{ - .name = "soft-float", - .description = "Use software floating point features.", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_thumbMode = Feature{ - .name = "thumb-mode", - .description = "Thumb mode", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_a5 = Feature{ - .name = "a5", - .description = "Cortex-A5 ARM processors", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_a7 = Feature{ - .name = "a7", - .description = "Cortex-A7 ARM processors", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_a8 = Feature{ - .name = "a8", - .description = "Cortex-A8 ARM processors", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_a9 = Feature{ - .name = "a9", - .description = "Cortex-A9 ARM processors", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_a12 = Feature{ - .name = "a12", - .description = "Cortex-A12 ARM processors", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_a15 = Feature{ - .name = "a15", - .description = "Cortex-A15 ARM processors", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_a17 = Feature{ - .name = "a17", - .description = "Cortex-A17 ARM processors", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_a32 = Feature{ - .name = "a32", - .description = "Cortex-A32 ARM processors", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_a35 = Feature{ - .name = "a35", - .description = "Cortex-A35 ARM processors", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_a53 = Feature{ - .name = "a53", - .description = "Cortex-A53 ARM processors", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_a55 = Feature{ - .name = "a55", - .description = "Cortex-A55 ARM processors", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_a57 = Feature{ - .name = "a57", - .description = "Cortex-A57 ARM processors", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_a72 = Feature{ - .name = "a72", - .description = "Cortex-A72 ARM processors", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_a73 = Feature{ - .name = "a73", - .description = "Cortex-A73 ARM processors", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_a75 = Feature{ - .name = "a75", - .description = "Cortex-A75 ARM processors", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_a76 = Feature{ - .name = "a76", - .description = "Cortex-A76 ARM processors", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_exynos = Feature{ - .name = "exynos", - .description = "Samsung Exynos processors", - .subfeatures = &[_]*const Feature { - &feature_useAa, - &feature_hwdivArm, - &feature_zcz, - &feature_hwdiv, - &feature_expandFpMlx, - &feature_slowVdup32, - &feature_fpregs, - &feature_slowVgetlni32, - &feature_profUnpr, - &feature_wideStrideVfp, - &feature_retAddrStack, - &feature_fuseAes, - &feature_fuseLiterals, - &feature_crc, - &feature_slowfpvmlx, - &feature_slowFpBrcc, - &feature_dontWidenVmovs, - &feature_d32, - }, -}; - -pub const feature_krait = Feature{ - .name = "krait", - .description = "Qualcomm Krait processors", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_kryo = Feature{ - .name = "kryo", - .description = "Qualcomm Kryo processors", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_m3 = Feature{ - .name = "m3", - .description = "Cortex-M3 ARM processors", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_r4 = Feature{ - .name = "r4", - .description = "Cortex-R4 ARM processors", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_r5 = Feature{ - .name = "r5", - .description = "Cortex-R5 ARM processors", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_r7 = Feature{ - .name = "r7", - .description = "Cortex-R7 ARM processors", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_r52 = Feature{ - .name = "r52", - .description = "Cortex-R52 ARM processors", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_swift = Feature{ - .name = "swift", - .description = "Swift ARM processors", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_xscale = Feature{ - .name = "xscale", - .description = "ARMv5te architecture", - .subfeatures = &[_]*const Feature { - &feature_v4t, - }, -}; - pub const features = &[_]*const Feature { - &feature_armv2, - &feature_armv2a, - &feature_armv3, - &feature_armv3m, - &feature_armv4, - &feature_armv4t, - &feature_armv5t, - &feature_armv5te, - &feature_armv5tej, - &feature_armv6, - &feature_armv6j, - &feature_armv6k, - &feature_armv6kz, - &feature_armv6M, - &feature_armv6sM, - &feature_armv6t2, - &feature_armv7A, - &feature_armv7eM, - &feature_armv7k, - &feature_armv7M, - &feature_armv7R, - &feature_armv7s, - &feature_armv7ve, - &feature_armv8A, - &feature_armv8Mbase, - &feature_armv8Mmain, - &feature_armv8R, - &feature_armv81A, - &feature_armv81Mmain, - &feature_armv82A, - &feature_armv83A, - &feature_armv84A, - &feature_armv85A, &feature_msecext8, &feature_aclass, &feature_aes, @@ -1734,63 +794,12 @@ pub const features = &[_]*const Feature { &feature_vmlxForwarding, &feature_virtualization, &feature_zcz, - &feature_mvefp, - &feature_mve, - &feature_v4t, - &feature_v5te, - &feature_v5t, - &feature_v6k, - &feature_v6m, - &feature_v6, - &feature_v6t2, - &feature_v7, - &feature_v8m, - &feature_v8mmain, - &feature_v8, - &feature_v81mmain, - &feature_v81a, - &feature_v82a, - &feature_v83a, - &feature_v84a, - &feature_v85a, - &feature_iwmmxt, - &feature_iwmmxt2, - &feature_softFloat, - &feature_thumbMode, - &feature_a5, - &feature_a7, - &feature_a8, - &feature_a9, - &feature_a12, - &feature_a15, - &feature_a17, - &feature_a32, - &feature_a35, - &feature_a53, - &feature_a55, - &feature_a57, - &feature_a72, - &feature_a73, - &feature_a75, - &feature_a76, - &feature_exynos, - &feature_krait, - &feature_kryo, - &feature_m3, - &feature_r4, - &feature_r5, - &feature_r7, - &feature_r52, - &feature_swift, - &feature_xscale, }; pub const cpu_arm1020e = Cpu{ .name = "arm1020e", .llvm_name = "arm1020e", .subfeatures = &[_]*const Feature { - &feature_v4t, - &feature_armv5te, }, }; @@ -1798,8 +807,6 @@ pub const cpu_arm1020t = Cpu{ .name = "arm1020t", .llvm_name = "arm1020t", .subfeatures = &[_]*const Feature { - &feature_v4t, - &feature_armv5t, }, }; @@ -1807,8 +814,6 @@ pub const cpu_arm1022e = Cpu{ .name = "arm1022e", .llvm_name = "arm1022e", .subfeatures = &[_]*const Feature { - &feature_v4t, - &feature_armv5te, }, }; @@ -1816,8 +821,6 @@ pub const cpu_arm10e = Cpu{ .name = "arm10e", .llvm_name = "arm10e", .subfeatures = &[_]*const Feature { - &feature_v4t, - &feature_armv5te, }, }; @@ -1825,8 +828,6 @@ pub const cpu_arm10tdmi = Cpu{ .name = "arm10tdmi", .llvm_name = "arm10tdmi", .subfeatures = &[_]*const Feature { - &feature_v4t, - &feature_armv5t, }, }; @@ -1834,9 +835,7 @@ pub const cpu_arm1136jS = Cpu{ .name = "arm1136j-s", .llvm_name = "arm1136j-s", .subfeatures = &[_]*const Feature { - &feature_v4t, &feature_dsp, - &feature_armv6, }, }; @@ -1844,9 +843,7 @@ pub const cpu_arm1136jfS = Cpu{ .name = "arm1136jf-s", .llvm_name = "arm1136jf-s", .subfeatures = &[_]*const Feature { - &feature_v4t, &feature_dsp, - &feature_armv6, &feature_slowfpvmlx, &feature_fpregs, &feature_vfp2, @@ -1857,10 +854,8 @@ pub const cpu_arm1156t2S = Cpu{ .name = "arm1156t2-s", .llvm_name = "arm1156t2-s", .subfeatures = &[_]*const Feature { - &feature_thumb2, &feature_dsp, - &feature_v4t, - &feature_armv6t2, + &feature_thumb2, }, }; @@ -1868,10 +863,8 @@ pub const cpu_arm1156t2fS = Cpu{ .name = "arm1156t2f-s", .llvm_name = "arm1156t2f-s", .subfeatures = &[_]*const Feature { - &feature_thumb2, &feature_dsp, - &feature_v4t, - &feature_armv6t2, + &feature_thumb2, &feature_slowfpvmlx, &feature_fpregs, &feature_vfp2, @@ -1882,9 +875,7 @@ pub const cpu_arm1176jS = Cpu{ .name = "arm1176j-s", .llvm_name = "arm1176j-s", .subfeatures = &[_]*const Feature { - &feature_v4t, &feature_trustzone, - &feature_armv6kz, }, }; @@ -1892,9 +883,7 @@ pub const cpu_arm1176jzS = Cpu{ .name = "arm1176jz-s", .llvm_name = "arm1176jz-s", .subfeatures = &[_]*const Feature { - &feature_v4t, &feature_trustzone, - &feature_armv6kz, }, }; @@ -1902,9 +891,7 @@ pub const cpu_arm1176jzfS = Cpu{ .name = "arm1176jzf-s", .llvm_name = "arm1176jzf-s", .subfeatures = &[_]*const Feature { - &feature_v4t, &feature_trustzone, - &feature_armv6kz, &feature_slowfpvmlx, &feature_fpregs, &feature_vfp2, @@ -1915,8 +902,6 @@ pub const cpu_arm710t = Cpu{ .name = "arm710t", .llvm_name = "arm710t", .subfeatures = &[_]*const Feature { - &feature_v4t, - &feature_armv4t, }, }; @@ -1924,8 +909,6 @@ pub const cpu_arm720t = Cpu{ .name = "arm720t", .llvm_name = "arm720t", .subfeatures = &[_]*const Feature { - &feature_v4t, - &feature_armv4t, }, }; @@ -1933,8 +916,6 @@ pub const cpu_arm7tdmi = Cpu{ .name = "arm7tdmi", .llvm_name = "arm7tdmi", .subfeatures = &[_]*const Feature { - &feature_v4t, - &feature_armv4t, }, }; @@ -1942,8 +923,6 @@ pub const cpu_arm7tdmiS = Cpu{ .name = "arm7tdmi-s", .llvm_name = "arm7tdmi-s", .subfeatures = &[_]*const Feature { - &feature_v4t, - &feature_armv4t, }, }; @@ -1951,7 +930,6 @@ pub const cpu_arm8 = Cpu{ .name = "arm8", .llvm_name = "arm8", .subfeatures = &[_]*const Feature { - &feature_armv4, }, }; @@ -1959,7 +937,6 @@ pub const cpu_arm810 = Cpu{ .name = "arm810", .llvm_name = "arm810", .subfeatures = &[_]*const Feature { - &feature_armv4, }, }; @@ -1967,8 +944,6 @@ pub const cpu_arm9 = Cpu{ .name = "arm9", .llvm_name = "arm9", .subfeatures = &[_]*const Feature { - &feature_v4t, - &feature_armv4t, }, }; @@ -1976,8 +951,6 @@ pub const cpu_arm920 = Cpu{ .name = "arm920", .llvm_name = "arm920", .subfeatures = &[_]*const Feature { - &feature_v4t, - &feature_armv4t, }, }; @@ -1985,8 +958,6 @@ pub const cpu_arm920t = Cpu{ .name = "arm920t", .llvm_name = "arm920t", .subfeatures = &[_]*const Feature { - &feature_v4t, - &feature_armv4t, }, }; @@ -1994,8 +965,6 @@ pub const cpu_arm922t = Cpu{ .name = "arm922t", .llvm_name = "arm922t", .subfeatures = &[_]*const Feature { - &feature_v4t, - &feature_armv4t, }, }; @@ -2003,8 +972,6 @@ pub const cpu_arm926ejS = Cpu{ .name = "arm926ej-s", .llvm_name = "arm926ej-s", .subfeatures = &[_]*const Feature { - &feature_v4t, - &feature_armv5te, }, }; @@ -2012,8 +979,6 @@ pub const cpu_arm940t = Cpu{ .name = "arm940t", .llvm_name = "arm940t", .subfeatures = &[_]*const Feature { - &feature_v4t, - &feature_armv4t, }, }; @@ -2021,8 +986,6 @@ pub const cpu_arm946eS = Cpu{ .name = "arm946e-s", .llvm_name = "arm946e-s", .subfeatures = &[_]*const Feature { - &feature_v4t, - &feature_armv5te, }, }; @@ -2030,8 +993,6 @@ pub const cpu_arm966eS = Cpu{ .name = "arm966e-s", .llvm_name = "arm966e-s", .subfeatures = &[_]*const Feature { - &feature_v4t, - &feature_armv5te, }, }; @@ -2039,8 +1000,6 @@ pub const cpu_arm968eS = Cpu{ .name = "arm968e-s", .llvm_name = "arm968e-s", .subfeatures = &[_]*const Feature { - &feature_v4t, - &feature_armv5te, }, }; @@ -2048,8 +1007,6 @@ pub const cpu_arm9e = Cpu{ .name = "arm9e", .llvm_name = "arm9e", .subfeatures = &[_]*const Feature { - &feature_v4t, - &feature_armv5te, }, }; @@ -2057,8 +1014,6 @@ pub const cpu_arm9tdmi = Cpu{ .name = "arm9tdmi", .llvm_name = "arm9tdmi", .subfeatures = &[_]*const Feature { - &feature_v4t, - &feature_armv4t, }, }; @@ -2066,16 +1021,14 @@ pub const cpu_cortexA12 = Cpu{ .name = "cortex-a12", .llvm_name = "cortex-a12", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, &feature_fpregs, - &feature_thumb2, - &feature_v7clrex, - &feature_aclass, - &feature_perfmon, - &feature_v4t, + &feature_db, &feature_d32, - &feature_armv7A, + &feature_perfmon, + &feature_dsp, + &feature_aclass, + &feature_v7clrex, + &feature_thumb2, &feature_avoidPartialCpsr, &feature_retAddrStack, &feature_mp, @@ -2083,10 +1036,9 @@ pub const cpu_cortexA12 = Cpu{ &feature_fp16, &feature_vfp4, &feature_vmlxForwarding, - &feature_hwdivArm, &feature_hwdiv, + &feature_hwdivArm, &feature_virtualization, - &feature_a12, }, }; @@ -2094,16 +1046,14 @@ pub const cpu_cortexA15 = Cpu{ .name = "cortex-a15", .llvm_name = "cortex-a15", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, &feature_fpregs, - &feature_thumb2, - &feature_v7clrex, - &feature_aclass, - &feature_perfmon, - &feature_v4t, + &feature_db, &feature_d32, - &feature_armv7A, + &feature_perfmon, + &feature_dsp, + &feature_aclass, + &feature_v7clrex, + &feature_thumb2, &feature_avoidPartialCpsr, &feature_vldnAlign, &feature_dontWidenVmovs, @@ -2114,10 +1064,9 @@ pub const cpu_cortexA15 = Cpu{ &feature_trustzone, &feature_fp16, &feature_vfp4, - &feature_hwdivArm, &feature_hwdiv, + &feature_hwdivArm, &feature_virtualization, - &feature_a15, }, }; @@ -2125,16 +1074,14 @@ pub const cpu_cortexA17 = Cpu{ .name = "cortex-a17", .llvm_name = "cortex-a17", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, &feature_fpregs, - &feature_thumb2, - &feature_v7clrex, - &feature_aclass, - &feature_perfmon, - &feature_v4t, + &feature_db, &feature_d32, - &feature_armv7A, + &feature_perfmon, + &feature_dsp, + &feature_aclass, + &feature_v7clrex, + &feature_thumb2, &feature_avoidPartialCpsr, &feature_retAddrStack, &feature_mp, @@ -2142,10 +1089,9 @@ pub const cpu_cortexA17 = Cpu{ &feature_fp16, &feature_vfp4, &feature_vmlxForwarding, - &feature_hwdivArm, &feature_hwdiv, + &feature_hwdivArm, &feature_virtualization, - &feature_a17, }, }; @@ -2153,23 +1099,21 @@ pub const cpu_cortexA32 = Cpu{ .name = "cortex-a32", .llvm_name = "cortex-a32", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, - &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, &feature_fpregs, - &feature_v4t, - &feature_thumb2, - &feature_v7clrex, - &feature_aclass, - &feature_crc, - &feature_mp, + &feature_db, &feature_acquireRelease, - &feature_fp16, - &feature_perfmon, &feature_d32, - &feature_armv8A, + &feature_perfmon, + &feature_mp, + &feature_hwdivArm, + &feature_dsp, + &feature_aclass, + &feature_fp16, + &feature_v7clrex, + &feature_crc, + &feature_thumb2, &feature_crypto, }, }; @@ -2178,25 +1122,22 @@ pub const cpu_cortexA35 = Cpu{ .name = "cortex-a35", .llvm_name = "cortex-a35", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, - &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, &feature_fpregs, - &feature_v4t, - &feature_thumb2, - &feature_v7clrex, - &feature_aclass, - &feature_crc, - &feature_mp, + &feature_db, &feature_acquireRelease, - &feature_fp16, - &feature_perfmon, &feature_d32, - &feature_armv8A, + &feature_perfmon, + &feature_mp, + &feature_hwdivArm, + &feature_dsp, + &feature_aclass, + &feature_fp16, + &feature_v7clrex, + &feature_crc, + &feature_thumb2, &feature_crypto, - &feature_a35, }, }; @@ -2204,16 +1145,14 @@ pub const cpu_cortexA5 = Cpu{ .name = "cortex-a5", .llvm_name = "cortex-a5", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, &feature_fpregs, - &feature_thumb2, - &feature_v7clrex, - &feature_aclass, - &feature_perfmon, - &feature_v4t, + &feature_db, &feature_d32, - &feature_armv7A, + &feature_perfmon, + &feature_dsp, + &feature_aclass, + &feature_v7clrex, + &feature_thumb2, &feature_retAddrStack, &feature_slowfpvmlx, &feature_mp, @@ -2222,7 +1161,6 @@ pub const cpu_cortexA5 = Cpu{ &feature_fp16, &feature_vfp4, &feature_vmlxForwarding, - &feature_a5, }, }; @@ -2230,26 +1168,23 @@ pub const cpu_cortexA53 = Cpu{ .name = "cortex-a53", .llvm_name = "cortex-a53", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, - &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, &feature_fpregs, - &feature_v4t, - &feature_thumb2, - &feature_v7clrex, - &feature_aclass, - &feature_crc, - &feature_mp, + &feature_db, &feature_acquireRelease, - &feature_fp16, - &feature_perfmon, &feature_d32, - &feature_armv8A, + &feature_perfmon, + &feature_mp, + &feature_hwdivArm, + &feature_dsp, + &feature_aclass, + &feature_fp16, + &feature_v7clrex, + &feature_crc, + &feature_thumb2, &feature_crypto, &feature_fpao, - &feature_a53, }, }; @@ -2257,26 +1192,23 @@ pub const cpu_cortexA55 = Cpu{ .name = "cortex-a55", .llvm_name = "cortex-a55", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, - &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, &feature_fpregs, - &feature_v4t, - &feature_thumb2, - &feature_ras, - &feature_v7clrex, - &feature_aclass, - &feature_crc, - &feature_mp, + &feature_db, &feature_acquireRelease, - &feature_fp16, - &feature_perfmon, &feature_d32, - &feature_armv82A, + &feature_perfmon, + &feature_mp, + &feature_ras, + &feature_hwdivArm, + &feature_dsp, + &feature_aclass, + &feature_fp16, + &feature_v7clrex, + &feature_crc, + &feature_thumb2, &feature_dotprod, - &feature_a55, }, }; @@ -2284,28 +1216,25 @@ pub const cpu_cortexA57 = Cpu{ .name = "cortex-a57", .llvm_name = "cortex-a57", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, - &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, &feature_fpregs, - &feature_v4t, - &feature_thumb2, - &feature_v7clrex, - &feature_aclass, - &feature_crc, - &feature_mp, + &feature_db, &feature_acquireRelease, - &feature_fp16, - &feature_perfmon, &feature_d32, - &feature_armv8A, + &feature_perfmon, + &feature_mp, + &feature_hwdivArm, + &feature_dsp, + &feature_aclass, + &feature_fp16, + &feature_v7clrex, + &feature_crc, + &feature_thumb2, &feature_avoidPartialCpsr, &feature_cheapPredicableCpsr, &feature_crypto, &feature_fpao, - &feature_a57, }, }; @@ -2313,16 +1242,14 @@ pub const cpu_cortexA7 = Cpu{ .name = "cortex-a7", .llvm_name = "cortex-a7", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, &feature_fpregs, - &feature_thumb2, - &feature_v7clrex, - &feature_aclass, - &feature_perfmon, - &feature_v4t, + &feature_db, &feature_d32, - &feature_armv7A, + &feature_perfmon, + &feature_dsp, + &feature_aclass, + &feature_v7clrex, + &feature_thumb2, &feature_retAddrStack, &feature_slowfpvmlx, &feature_vmlxHazards, @@ -2332,10 +1259,9 @@ pub const cpu_cortexA7 = Cpu{ &feature_fp16, &feature_vfp4, &feature_vmlxForwarding, - &feature_hwdivArm, &feature_hwdiv, + &feature_hwdivArm, &feature_virtualization, - &feature_a7, }, }; @@ -2343,25 +1269,22 @@ pub const cpu_cortexA72 = Cpu{ .name = "cortex-a72", .llvm_name = "cortex-a72", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, - &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, &feature_fpregs, - &feature_v4t, - &feature_thumb2, - &feature_v7clrex, - &feature_aclass, - &feature_crc, - &feature_mp, + &feature_db, &feature_acquireRelease, - &feature_fp16, - &feature_perfmon, &feature_d32, - &feature_armv8A, + &feature_perfmon, + &feature_mp, + &feature_hwdivArm, + &feature_dsp, + &feature_aclass, + &feature_fp16, + &feature_v7clrex, + &feature_crc, + &feature_thumb2, &feature_crypto, - &feature_a72, }, }; @@ -2369,25 +1292,22 @@ pub const cpu_cortexA73 = Cpu{ .name = "cortex-a73", .llvm_name = "cortex-a73", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, - &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, &feature_fpregs, - &feature_v4t, - &feature_thumb2, - &feature_v7clrex, - &feature_aclass, - &feature_crc, - &feature_mp, + &feature_db, &feature_acquireRelease, - &feature_fp16, - &feature_perfmon, &feature_d32, - &feature_armv8A, + &feature_perfmon, + &feature_mp, + &feature_hwdivArm, + &feature_dsp, + &feature_aclass, + &feature_fp16, + &feature_v7clrex, + &feature_crc, + &feature_thumb2, &feature_crypto, - &feature_a73, }, }; @@ -2395,26 +1315,23 @@ pub const cpu_cortexA75 = Cpu{ .name = "cortex-a75", .llvm_name = "cortex-a75", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, - &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, &feature_fpregs, - &feature_v4t, - &feature_thumb2, - &feature_ras, - &feature_v7clrex, - &feature_aclass, - &feature_crc, - &feature_mp, + &feature_db, &feature_acquireRelease, - &feature_fp16, - &feature_perfmon, &feature_d32, - &feature_armv82A, + &feature_perfmon, + &feature_mp, + &feature_ras, + &feature_hwdivArm, + &feature_dsp, + &feature_aclass, + &feature_fp16, + &feature_v7clrex, + &feature_crc, + &feature_thumb2, &feature_dotprod, - &feature_a75, }, }; @@ -2422,28 +1339,25 @@ pub const cpu_cortexA76 = Cpu{ .name = "cortex-a76", .llvm_name = "cortex-a76", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, - &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, &feature_fpregs, - &feature_v4t, - &feature_thumb2, - &feature_ras, - &feature_v7clrex, - &feature_aclass, - &feature_crc, - &feature_mp, + &feature_db, &feature_acquireRelease, - &feature_fp16, - &feature_perfmon, &feature_d32, - &feature_armv82A, + &feature_perfmon, + &feature_mp, + &feature_ras, + &feature_hwdivArm, + &feature_dsp, + &feature_aclass, + &feature_fp16, + &feature_v7clrex, + &feature_crc, + &feature_thumb2, &feature_crypto, &feature_dotprod, &feature_fullfp16, - &feature_a76, }, }; @@ -2451,28 +1365,25 @@ pub const cpu_cortexA76ae = Cpu{ .name = "cortex-a76ae", .llvm_name = "cortex-a76ae", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, - &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, &feature_fpregs, - &feature_v4t, - &feature_thumb2, - &feature_ras, - &feature_v7clrex, - &feature_aclass, - &feature_crc, - &feature_mp, + &feature_db, &feature_acquireRelease, - &feature_fp16, - &feature_perfmon, &feature_d32, - &feature_armv82A, + &feature_perfmon, + &feature_mp, + &feature_ras, + &feature_hwdivArm, + &feature_dsp, + &feature_aclass, + &feature_fp16, + &feature_v7clrex, + &feature_crc, + &feature_thumb2, &feature_crypto, &feature_dotprod, &feature_fullfp16, - &feature_a76, }, }; @@ -2480,16 +1391,14 @@ pub const cpu_cortexA8 = Cpu{ .name = "cortex-a8", .llvm_name = "cortex-a8", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, &feature_fpregs, - &feature_thumb2, - &feature_v7clrex, - &feature_aclass, - &feature_perfmon, - &feature_v4t, + &feature_db, &feature_d32, - &feature_armv7A, + &feature_perfmon, + &feature_dsp, + &feature_aclass, + &feature_v7clrex, + &feature_thumb2, &feature_retAddrStack, &feature_slowfpvmlx, &feature_vmlxHazards, @@ -2497,7 +1406,6 @@ pub const cpu_cortexA8 = Cpu{ &feature_slowFpBrcc, &feature_trustzone, &feature_vmlxForwarding, - &feature_a8, }, }; @@ -2505,16 +1413,14 @@ pub const cpu_cortexA9 = Cpu{ .name = "cortex-a9", .llvm_name = "cortex-a9", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, &feature_fpregs, - &feature_thumb2, - &feature_v7clrex, - &feature_aclass, - &feature_perfmon, - &feature_v4t, + &feature_db, &feature_d32, - &feature_armv7A, + &feature_perfmon, + &feature_dsp, + &feature_aclass, + &feature_v7clrex, + &feature_thumb2, &feature_avoidPartialCpsr, &feature_vldnAlign, &feature_expandFpMlx, @@ -2527,7 +1433,6 @@ pub const cpu_cortexA9 = Cpu{ &feature_preferVmovsr, &feature_trustzone, &feature_vmlxForwarding, - &feature_a9, }, }; @@ -2536,12 +1441,9 @@ pub const cpu_cortexM0 = Cpu{ .llvm_name = "cortex-m0", .subfeatures = &[_]*const Feature { &feature_db, - &feature_mclass, - &feature_thumbMode, &feature_strictAlign, &feature_noarm, - &feature_v4t, - &feature_armv6M, + &feature_mclass, }, }; @@ -2550,12 +1452,9 @@ pub const cpu_cortexM0plus = Cpu{ .llvm_name = "cortex-m0plus", .subfeatures = &[_]*const Feature { &feature_db, - &feature_mclass, - &feature_thumbMode, &feature_strictAlign, &feature_noarm, - &feature_v4t, - &feature_armv6M, + &feature_mclass, }, }; @@ -2564,12 +1463,9 @@ pub const cpu_cortexM1 = Cpu{ .llvm_name = "cortex-m1", .subfeatures = &[_]*const Feature { &feature_db, - &feature_mclass, - &feature_thumbMode, &feature_strictAlign, &feature_noarm, - &feature_v4t, - &feature_armv6M, + &feature_mclass, }, }; @@ -2577,17 +1473,14 @@ pub const cpu_cortexM23 = Cpu{ .name = "cortex-m23", .llvm_name = "cortex-m23", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_mclass, &feature_hwdiv, - &feature_thumbMode, - &feature_strictAlign, - &feature_v7clrex, &feature_msecext8, + &feature_db, + &feature_strictAlign, &feature_acquireRelease, &feature_noarm, - &feature_v4t, - &feature_armv8Mbase, + &feature_v7clrex, + &feature_mclass, &feature_noMovt, }, }; @@ -2596,21 +1489,17 @@ pub const cpu_cortexM3 = Cpu{ .name = "cortex-m3", .llvm_name = "cortex-m3", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_mclass, &feature_hwdiv, - &feature_thumbMode, - &feature_thumb2, - &feature_v7clrex, + &feature_db, &feature_perfmon, &feature_noarm, - &feature_v4t, - &feature_armv7M, + &feature_v7clrex, + &feature_mclass, + &feature_thumb2, &feature_noBranchPredictor, &feature_loopAlign, &feature_useAa, &feature_useMisched, - &feature_m3, }, }; @@ -2618,18 +1507,15 @@ pub const cpu_cortexM33 = Cpu{ .name = "cortex-m33", .llvm_name = "cortex-m33", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_mclass, &feature_hwdiv, - &feature_thumbMode, - &feature_thumb2, - &feature_v7clrex, &feature_msecext8, + &feature_db, &feature_acquireRelease, &feature_perfmon, &feature_noarm, - &feature_v4t, - &feature_armv8Mmain, + &feature_v7clrex, + &feature_mclass, + &feature_thumb2, &feature_dsp, &feature_fp16, &feature_fpregs, @@ -2646,18 +1532,15 @@ pub const cpu_cortexM35p = Cpu{ .name = "cortex-m35p", .llvm_name = "cortex-m35p", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_mclass, &feature_hwdiv, - &feature_thumbMode, - &feature_thumb2, - &feature_v7clrex, &feature_msecext8, + &feature_db, &feature_acquireRelease, &feature_perfmon, &feature_noarm, - &feature_v4t, - &feature_armv8Mmain, + &feature_v7clrex, + &feature_mclass, + &feature_thumb2, &feature_dsp, &feature_fp16, &feature_fpregs, @@ -2674,17 +1557,14 @@ pub const cpu_cortexM4 = Cpu{ .name = "cortex-m4", .llvm_name = "cortex-m4", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_mclass, &feature_hwdiv, - &feature_dsp, - &feature_thumbMode, - &feature_thumb2, - &feature_v7clrex, + &feature_db, &feature_perfmon, &feature_noarm, - &feature_v4t, - &feature_armv7eM, + &feature_dsp, + &feature_v7clrex, + &feature_mclass, + &feature_thumb2, &feature_noBranchPredictor, &feature_slowfpvmlx, &feature_loopAlign, @@ -2700,19 +1580,16 @@ pub const cpu_cortexM7 = Cpu{ .name = "cortex-m7", .llvm_name = "cortex-m7", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_mclass, &feature_hwdiv, - &feature_dsp, - &feature_thumbMode, - &feature_thumb2, - &feature_v7clrex, + &feature_db, &feature_perfmon, &feature_noarm, - &feature_v4t, - &feature_armv7eM, - &feature_fpregs, + &feature_dsp, + &feature_v7clrex, + &feature_mclass, + &feature_thumb2, &feature_fp16, + &feature_fpregs, &feature_fpArmv8d16, }, }; @@ -2721,18 +1598,15 @@ pub const cpu_cortexR4 = Cpu{ .name = "cortex-r4", .llvm_name = "cortex-r4", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, &feature_hwdiv, &feature_rclass, - &feature_thumb2, - &feature_v7clrex, + &feature_db, &feature_perfmon, - &feature_v4t, - &feature_armv7R, + &feature_dsp, + &feature_v7clrex, + &feature_thumb2, &feature_avoidPartialCpsr, &feature_retAddrStack, - &feature_r4, }, }; @@ -2740,22 +1614,19 @@ pub const cpu_cortexR4f = Cpu{ .name = "cortex-r4f", .llvm_name = "cortex-r4f", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, &feature_hwdiv, &feature_rclass, - &feature_thumb2, - &feature_v7clrex, + &feature_db, &feature_perfmon, - &feature_v4t, - &feature_armv7R, + &feature_dsp, + &feature_v7clrex, + &feature_thumb2, &feature_avoidPartialCpsr, &feature_retAddrStack, &feature_slowfpvmlx, &feature_slowFpBrcc, &feature_fpregs, &feature_vfp3d16, - &feature_r4, }, }; @@ -2763,15 +1634,13 @@ pub const cpu_cortexR5 = Cpu{ .name = "cortex-r5", .llvm_name = "cortex-r5", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, &feature_hwdiv, &feature_rclass, - &feature_thumb2, - &feature_v7clrex, + &feature_db, &feature_perfmon, - &feature_v4t, - &feature_armv7R, + &feature_dsp, + &feature_v7clrex, + &feature_thumb2, &feature_avoidPartialCpsr, &feature_hwdivArm, &feature_retAddrStack, @@ -2779,7 +1648,6 @@ pub const cpu_cortexR5 = Cpu{ &feature_slowFpBrcc, &feature_fpregs, &feature_vfp3d16, - &feature_r5, }, }; @@ -2787,27 +1655,24 @@ pub const cpu_cortexR52 = Cpu{ .name = "cortex-r52", .llvm_name = "cortex-r52", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, - &feature_hwdivArm, &feature_hwdiv, &feature_rclass, &feature_fpregs, - &feature_v4t, - &feature_dfb, - &feature_thumb2, - &feature_v7clrex, - &feature_perfmon, - &feature_crc, - &feature_mp, + &feature_db, &feature_acquireRelease, - &feature_fp16, &feature_d32, - &feature_armv8R, + &feature_perfmon, + &feature_mp, + &feature_dfb, + &feature_hwdivArm, + &feature_dsp, + &feature_fp16, + &feature_v7clrex, + &feature_crc, + &feature_thumb2, &feature_fpao, &feature_useAa, &feature_useMisched, - &feature_r52, }, }; @@ -2815,15 +1680,13 @@ pub const cpu_cortexR7 = Cpu{ .name = "cortex-r7", .llvm_name = "cortex-r7", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, &feature_hwdiv, &feature_rclass, - &feature_thumb2, - &feature_v7clrex, + &feature_db, &feature_perfmon, - &feature_v4t, - &feature_armv7R, + &feature_dsp, + &feature_v7clrex, + &feature_thumb2, &feature_avoidPartialCpsr, &feature_fp16, &feature_hwdivArm, @@ -2833,7 +1696,6 @@ pub const cpu_cortexR7 = Cpu{ &feature_slowFpBrcc, &feature_fpregs, &feature_vfp3d16, - &feature_r7, }, }; @@ -2841,15 +1703,13 @@ pub const cpu_cortexR8 = Cpu{ .name = "cortex-r8", .llvm_name = "cortex-r8", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, &feature_hwdiv, &feature_rclass, - &feature_thumb2, - &feature_v7clrex, + &feature_db, &feature_perfmon, - &feature_v4t, - &feature_armv7R, + &feature_dsp, + &feature_v7clrex, + &feature_thumb2, &feature_avoidPartialCpsr, &feature_fp16, &feature_hwdivArm, @@ -2866,23 +1726,21 @@ pub const cpu_cyclone = Cpu{ .name = "cyclone", .llvm_name = "cyclone", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, - &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, &feature_fpregs, - &feature_v4t, - &feature_thumb2, - &feature_v7clrex, - &feature_aclass, - &feature_crc, - &feature_mp, + &feature_db, &feature_acquireRelease, - &feature_fp16, - &feature_perfmon, &feature_d32, - &feature_armv8A, + &feature_perfmon, + &feature_mp, + &feature_hwdivArm, + &feature_dsp, + &feature_aclass, + &feature_fp16, + &feature_v7clrex, + &feature_crc, + &feature_thumb2, &feature_avoidMovsShop, &feature_avoidPartialCpsr, &feature_crypto, @@ -2893,7 +1751,6 @@ pub const cpu_cyclone = Cpu{ &feature_useMisched, &feature_vfp4, &feature_zcz, - &feature_swift, }, }; @@ -2901,8 +1758,6 @@ pub const cpu_ep9312 = Cpu{ .name = "ep9312", .llvm_name = "ep9312", .subfeatures = &[_]*const Feature { - &feature_v4t, - &feature_armv4t, }, }; @@ -2910,37 +1765,34 @@ pub const cpu_exynosM1 = Cpu{ .name = "exynos-m1", .llvm_name = "exynos-m1", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, - &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, &feature_fpregs, - &feature_v4t, - &feature_thumb2, - &feature_v7clrex, - &feature_aclass, - &feature_crc, - &feature_mp, + &feature_db, &feature_acquireRelease, - &feature_fp16, - &feature_perfmon, &feature_d32, - &feature_armv8A, - &feature_useAa, - &feature_zcz, - &feature_expandFpMlx, + &feature_perfmon, + &feature_mp, + &feature_hwdivArm, + &feature_dsp, + &feature_aclass, + &feature_fp16, + &feature_v7clrex, + &feature_crc, + &feature_thumb2, &feature_slowVdup32, + &feature_expandFpMlx, &feature_slowVgetlni32, - &feature_profUnpr, - &feature_wideStrideVfp, - &feature_retAddrStack, - &feature_fuseAes, &feature_fuseLiterals, - &feature_slowfpvmlx, + &feature_wideStrideVfp, &feature_slowFpBrcc, + &feature_retAddrStack, &feature_dontWidenVmovs, - &feature_exynos, + &feature_zcz, + &feature_fuseAes, + &feature_slowfpvmlx, + &feature_profUnpr, + &feature_useAa, }, }; @@ -2948,37 +1800,34 @@ pub const cpu_exynosM2 = Cpu{ .name = "exynos-m2", .llvm_name = "exynos-m2", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, - &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, &feature_fpregs, - &feature_v4t, - &feature_thumb2, - &feature_v7clrex, - &feature_aclass, - &feature_crc, - &feature_mp, + &feature_db, &feature_acquireRelease, - &feature_fp16, - &feature_perfmon, &feature_d32, - &feature_armv8A, - &feature_useAa, - &feature_zcz, - &feature_expandFpMlx, + &feature_perfmon, + &feature_mp, + &feature_hwdivArm, + &feature_dsp, + &feature_aclass, + &feature_fp16, + &feature_v7clrex, + &feature_crc, + &feature_thumb2, &feature_slowVdup32, + &feature_expandFpMlx, &feature_slowVgetlni32, - &feature_profUnpr, - &feature_wideStrideVfp, - &feature_retAddrStack, - &feature_fuseAes, &feature_fuseLiterals, - &feature_slowfpvmlx, + &feature_wideStrideVfp, &feature_slowFpBrcc, + &feature_retAddrStack, &feature_dontWidenVmovs, - &feature_exynos, + &feature_zcz, + &feature_fuseAes, + &feature_slowfpvmlx, + &feature_profUnpr, + &feature_useAa, }, }; @@ -2986,37 +1835,34 @@ pub const cpu_exynosM3 = Cpu{ .name = "exynos-m3", .llvm_name = "exynos-m3", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, - &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, &feature_fpregs, - &feature_v4t, - &feature_thumb2, - &feature_v7clrex, - &feature_aclass, - &feature_crc, - &feature_mp, + &feature_db, &feature_acquireRelease, - &feature_fp16, - &feature_perfmon, &feature_d32, - &feature_armv8A, - &feature_useAa, - &feature_zcz, - &feature_expandFpMlx, + &feature_perfmon, + &feature_mp, + &feature_hwdivArm, + &feature_dsp, + &feature_aclass, + &feature_fp16, + &feature_v7clrex, + &feature_crc, + &feature_thumb2, &feature_slowVdup32, + &feature_expandFpMlx, &feature_slowVgetlni32, - &feature_profUnpr, - &feature_wideStrideVfp, - &feature_retAddrStack, - &feature_fuseAes, &feature_fuseLiterals, - &feature_slowfpvmlx, + &feature_wideStrideVfp, &feature_slowFpBrcc, + &feature_retAddrStack, &feature_dontWidenVmovs, - &feature_exynos, + &feature_zcz, + &feature_fuseAes, + &feature_slowfpvmlx, + &feature_profUnpr, + &feature_useAa, }, }; @@ -3024,40 +1870,37 @@ pub const cpu_exynosM4 = Cpu{ .name = "exynos-m4", .llvm_name = "exynos-m4", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, - &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, &feature_fpregs, - &feature_v4t, - &feature_thumb2, - &feature_ras, - &feature_v7clrex, - &feature_aclass, - &feature_crc, - &feature_mp, + &feature_db, &feature_acquireRelease, - &feature_fp16, - &feature_perfmon, &feature_d32, - &feature_armv82A, + &feature_perfmon, + &feature_mp, + &feature_ras, + &feature_hwdivArm, + &feature_dsp, + &feature_aclass, + &feature_fp16, + &feature_v7clrex, + &feature_crc, + &feature_thumb2, &feature_dotprod, &feature_fullfp16, - &feature_useAa, - &feature_zcz, - &feature_expandFpMlx, &feature_slowVdup32, + &feature_expandFpMlx, &feature_slowVgetlni32, - &feature_profUnpr, - &feature_wideStrideVfp, - &feature_retAddrStack, - &feature_fuseAes, &feature_fuseLiterals, - &feature_slowfpvmlx, + &feature_wideStrideVfp, &feature_slowFpBrcc, + &feature_retAddrStack, &feature_dontWidenVmovs, - &feature_exynos, + &feature_zcz, + &feature_fuseAes, + &feature_slowfpvmlx, + &feature_profUnpr, + &feature_useAa, }, }; @@ -3065,40 +1908,37 @@ pub const cpu_exynosM5 = Cpu{ .name = "exynos-m5", .llvm_name = "exynos-m5", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, - &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, &feature_fpregs, - &feature_v4t, - &feature_thumb2, - &feature_ras, - &feature_v7clrex, - &feature_aclass, - &feature_crc, - &feature_mp, + &feature_db, &feature_acquireRelease, - &feature_fp16, - &feature_perfmon, &feature_d32, - &feature_armv82A, + &feature_perfmon, + &feature_mp, + &feature_ras, + &feature_hwdivArm, + &feature_dsp, + &feature_aclass, + &feature_fp16, + &feature_v7clrex, + &feature_crc, + &feature_thumb2, &feature_dotprod, &feature_fullfp16, - &feature_useAa, - &feature_zcz, - &feature_expandFpMlx, &feature_slowVdup32, + &feature_expandFpMlx, &feature_slowVgetlni32, - &feature_profUnpr, - &feature_wideStrideVfp, - &feature_retAddrStack, - &feature_fuseAes, &feature_fuseLiterals, - &feature_slowfpvmlx, + &feature_wideStrideVfp, &feature_slowFpBrcc, + &feature_retAddrStack, &feature_dontWidenVmovs, - &feature_exynos, + &feature_zcz, + &feature_fuseAes, + &feature_slowfpvmlx, + &feature_profUnpr, + &feature_useAa, }, }; @@ -3113,8 +1953,6 @@ pub const cpu_iwmmxt = Cpu{ .name = "iwmmxt", .llvm_name = "iwmmxt", .subfeatures = &[_]*const Feature { - &feature_v4t, - &feature_armv5te, }, }; @@ -3122,16 +1960,14 @@ pub const cpu_krait = Cpu{ .name = "krait", .llvm_name = "krait", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, &feature_fpregs, - &feature_thumb2, - &feature_v7clrex, - &feature_aclass, - &feature_perfmon, - &feature_v4t, + &feature_db, &feature_d32, - &feature_armv7A, + &feature_perfmon, + &feature_dsp, + &feature_aclass, + &feature_v7clrex, + &feature_thumb2, &feature_avoidPartialCpsr, &feature_vldnAlign, &feature_fp16, @@ -3141,7 +1977,6 @@ pub const cpu_krait = Cpu{ &feature_muxedUnits, &feature_vfp4, &feature_vmlxForwarding, - &feature_krait, }, }; @@ -3149,25 +1984,22 @@ pub const cpu_kryo = Cpu{ .name = "kryo", .llvm_name = "kryo", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, - &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, &feature_fpregs, - &feature_v4t, - &feature_thumb2, - &feature_v7clrex, - &feature_aclass, - &feature_crc, - &feature_mp, + &feature_db, &feature_acquireRelease, - &feature_fp16, - &feature_perfmon, &feature_d32, - &feature_armv8A, + &feature_perfmon, + &feature_mp, + &feature_hwdivArm, + &feature_dsp, + &feature_aclass, + &feature_fp16, + &feature_v7clrex, + &feature_crc, + &feature_thumb2, &feature_crypto, - &feature_kryo, }, }; @@ -3175,8 +2007,6 @@ pub const cpu_mpcore = Cpu{ .name = "mpcore", .llvm_name = "mpcore", .subfeatures = &[_]*const Feature { - &feature_v4t, - &feature_armv6k, &feature_slowfpvmlx, &feature_fpregs, &feature_vfp2, @@ -3187,8 +2017,6 @@ pub const cpu_mpcorenovfp = Cpu{ .name = "mpcorenovfp", .llvm_name = "mpcorenovfp", .subfeatures = &[_]*const Feature { - &feature_v4t, - &feature_armv6k, }, }; @@ -3196,24 +2024,22 @@ pub const cpu_neoverseN1 = Cpu{ .name = "neoverse-n1", .llvm_name = "neoverse-n1", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, - &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, &feature_fpregs, - &feature_v4t, - &feature_thumb2, - &feature_ras, - &feature_v7clrex, - &feature_aclass, - &feature_crc, - &feature_mp, + &feature_db, &feature_acquireRelease, - &feature_fp16, - &feature_perfmon, &feature_d32, - &feature_armv82A, + &feature_perfmon, + &feature_mp, + &feature_ras, + &feature_hwdivArm, + &feature_dsp, + &feature_aclass, + &feature_fp16, + &feature_v7clrex, + &feature_crc, + &feature_thumb2, &feature_crypto, &feature_dotprod, }, @@ -3224,12 +2050,9 @@ pub const cpu_sc000 = Cpu{ .llvm_name = "sc000", .subfeatures = &[_]*const Feature { &feature_db, - &feature_mclass, - &feature_thumbMode, &feature_strictAlign, &feature_noarm, - &feature_v4t, - &feature_armv6M, + &feature_mclass, }, }; @@ -3237,20 +2060,16 @@ pub const cpu_sc300 = Cpu{ .name = "sc300", .llvm_name = "sc300", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_mclass, &feature_hwdiv, - &feature_thumbMode, - &feature_thumb2, - &feature_v7clrex, + &feature_db, &feature_perfmon, &feature_noarm, - &feature_v4t, - &feature_armv7M, + &feature_v7clrex, + &feature_mclass, + &feature_thumb2, &feature_noBranchPredictor, &feature_useAa, &feature_useMisched, - &feature_m3, }, }; @@ -3258,7 +2077,6 @@ pub const cpu_strongarm = Cpu{ .name = "strongarm", .llvm_name = "strongarm", .subfeatures = &[_]*const Feature { - &feature_armv4, }, }; @@ -3266,7 +2084,6 @@ pub const cpu_strongarm110 = Cpu{ .name = "strongarm110", .llvm_name = "strongarm110", .subfeatures = &[_]*const Feature { - &feature_armv4, }, }; @@ -3274,7 +2091,6 @@ pub const cpu_strongarm1100 = Cpu{ .name = "strongarm1100", .llvm_name = "strongarm1100", .subfeatures = &[_]*const Feature { - &feature_armv4, }, }; @@ -3282,7 +2098,6 @@ pub const cpu_strongarm1110 = Cpu{ .name = "strongarm1110", .llvm_name = "strongarm1110", .subfeatures = &[_]*const Feature { - &feature_armv4, }, }; @@ -3290,16 +2105,14 @@ pub const cpu_swift = Cpu{ .name = "swift", .llvm_name = "swift", .subfeatures = &[_]*const Feature { - &feature_db, - &feature_dsp, &feature_fpregs, - &feature_thumb2, - &feature_v7clrex, - &feature_aclass, - &feature_perfmon, - &feature_v4t, + &feature_db, &feature_d32, - &feature_armv7A, + &feature_perfmon, + &feature_dsp, + &feature_aclass, + &feature_v7clrex, + &feature_thumb2, &feature_avoidMovsShop, &feature_avoidPartialCpsr, &feature_hwdivArm, @@ -3320,7 +2133,6 @@ pub const cpu_swift = Cpu{ &feature_wideStrideVfp, &feature_fp16, &feature_vfp4, - &feature_swift, }, }; @@ -3328,8 +2140,6 @@ pub const cpu_xscale = Cpu{ .name = "xscale", .llvm_name = "xscale", .subfeatures = &[_]*const Feature { - &feature_v4t, - &feature_armv5te, }, }; diff --git a/lib/std/target/avr.zig b/lib/std/target/avr.zig index 4ca020d897..79cbb04dc4 100644 --- a/lib/std/target/avr.zig +++ b/lib/std/target/avr.zig @@ -1,227 +1,6 @@ const Feature = @import("std").target.Feature; const Cpu = @import("std").target.Cpu; -pub const feature_avr0 = Feature{ - .name = "avr0", - .description = "The device is a part of the avr0 family", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_avr1 = Feature{ - .name = "avr1", - .description = "The device is a part of the avr1 family", - .subfeatures = &[_]*const Feature { - &feature_lpm, - &feature_avr0, - }, -}; - -pub const feature_avr2 = Feature{ - .name = "avr2", - .description = "The device is a part of the avr2 family", - .subfeatures = &[_]*const Feature { - &feature_ijmpcall, - &feature_sram, - &feature_addsubiw, - &feature_lpm, - &feature_avr0, - }, -}; - -pub const feature_avr3 = Feature{ - .name = "avr3", - .description = "The device is a part of the avr3 family", - .subfeatures = &[_]*const Feature { - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, - &feature_addsubiw, - &feature_lpm, - &feature_avr0, - }, -}; - -pub const feature_avr4 = Feature{ - .name = "avr4", - .description = "The device is a part of the avr4 family", - .subfeatures = &[_]*const Feature { - &feature_spm, - &feature_lpmx, - &feature_ijmpcall, - &feature_sram, - &feature_addsubiw, - &feature_mul, - &feature_break, - &feature_lpm, - &feature_avr0, - &feature_movw, - }, -}; - -pub const feature_avr5 = Feature{ - .name = "avr5", - .description = "The device is a part of the avr5 family", - .subfeatures = &[_]*const Feature { - &feature_spm, - &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, - &feature_addsubiw, - &feature_mul, - &feature_break, - &feature_lpm, - &feature_avr0, - &feature_movw, - }, -}; - -pub const feature_avr6 = Feature{ - .name = "avr6", - .description = "The device is a part of the avr6 family", - .subfeatures = &[_]*const Feature { - &feature_spm, - &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, - &feature_addsubiw, - &feature_elpm, - &feature_mul, - &feature_break, - &feature_lpm, - &feature_elpmx, - &feature_avr0, - &feature_movw, - }, -}; - -pub const feature_avr25 = Feature{ - .name = "avr25", - .description = "The device is a part of the avr25 family", - .subfeatures = &[_]*const Feature { - &feature_spm, - &feature_lpmx, - &feature_ijmpcall, - &feature_sram, - &feature_addsubiw, - &feature_break, - &feature_lpm, - &feature_avr0, - &feature_movw, - }, -}; - -pub const feature_avr31 = Feature{ - .name = "avr31", - .description = "The device is a part of the avr31 family", - .subfeatures = &[_]*const Feature { - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, - &feature_addsubiw, - &feature_elpm, - &feature_lpm, - &feature_avr0, - }, -}; - -pub const feature_avr35 = Feature{ - .name = "avr35", - .description = "The device is a part of the avr35 family", - .subfeatures = &[_]*const Feature { - &feature_spm, - &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, - &feature_addsubiw, - &feature_break, - &feature_lpm, - &feature_avr0, - &feature_movw, - }, -}; - -pub const feature_avr51 = Feature{ - .name = "avr51", - .description = "The device is a part of the avr51 family", - .subfeatures = &[_]*const Feature { - &feature_spm, - &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, - &feature_addsubiw, - &feature_elpm, - &feature_mul, - &feature_break, - &feature_lpm, - &feature_elpmx, - &feature_avr0, - &feature_movw, - }, -}; - -pub const feature_avrtiny = Feature{ - .name = "avrtiny", - .description = "The device is a part of the avrtiny family", - .subfeatures = &[_]*const Feature { - &feature_avr0, - &feature_sram, - &feature_tinyencoding, - &feature_break, - }, -}; - -pub const feature_xmega = Feature{ - .name = "xmega", - .description = "The device is a part of the xmega family", - .subfeatures = &[_]*const Feature { - &feature_spm, - &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, - &feature_addsubiw, - &feature_elpm, - &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, - &feature_elpmx, - &feature_avr0, - &feature_movw, - &feature_spmx, - }, -}; - -pub const feature_xmegau = Feature{ - .name = "xmegau", - .description = "The device is a part of the xmegau family", - .subfeatures = &[_]*const Feature { - &feature_spm, - &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, - &feature_rmw, - &feature_addsubiw, - &feature_elpm, - &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, - &feature_elpmx, - &feature_avr0, - &feature_movw, - &feature_spmx, - }, -}; - pub const feature_addsubiw = Feature{ .name = "addsubiw", .description = "Enable 16-bit register-immediate addition and subtraction instructions", @@ -334,29 +113,6 @@ pub const feature_sram = Feature{ }, }; -pub const feature_special = Feature{ - .name = "special", - .description = "Enable use of the entire instruction set - used for debugging", - .subfeatures = &[_]*const Feature { - &feature_spm, - &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_rmw, - &feature_sram, - &feature_elpm, - &feature_addsubiw, - &feature_eijmpcall, - &feature_elpmx, - &feature_break, - &feature_lpm, - &feature_mul, - &feature_movw, - &feature_spmx, - }, -}; - pub const feature_smallstack = Feature{ .name = "smallstack", .description = "The device has an 8-bit stack pointer", @@ -372,20 +128,6 @@ pub const feature_tinyencoding = Feature{ }; pub const features = &[_]*const Feature { - &feature_avr0, - &feature_avr1, - &feature_avr2, - &feature_avr3, - &feature_avr4, - &feature_avr5, - &feature_avr6, - &feature_avr25, - &feature_avr31, - &feature_avr35, - &feature_avr51, - &feature_avrtiny, - &feature_xmega, - &feature_xmegau, &feature_addsubiw, &feature_break, &feature_des, @@ -402,7 +144,6 @@ pub const features = &[_]*const Feature { &feature_spm, &feature_spmx, &feature_sram, - &feature_special, &feature_smallstack, &feature_tinyencoding, }; @@ -411,14 +152,12 @@ pub const cpu_at43usb320 = Cpu{ .name = "at43usb320", .llvm_name = "at43usb320", .subfeatures = &[_]*const Feature { - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, &feature_addsubiw, - &feature_elpm, + &feature_jmpcall, &feature_lpm, - &feature_avr0, - &feature_avr31, + &feature_elpm, + &feature_sram, + &feature_ijmpcall, }, }; @@ -426,13 +165,11 @@ pub const cpu_at43usb355 = Cpu{ .name = "at43usb355", .llvm_name = "at43usb355", .subfeatures = &[_]*const Feature { - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, &feature_addsubiw, + &feature_jmpcall, &feature_lpm, - &feature_avr0, - &feature_avr3, + &feature_sram, + &feature_ijmpcall, }, }; @@ -440,13 +177,11 @@ pub const cpu_at76c711 = Cpu{ .name = "at76c711", .llvm_name = "at76c711", .subfeatures = &[_]*const Feature { - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, &feature_addsubiw, + &feature_jmpcall, &feature_lpm, - &feature_avr0, - &feature_avr3, + &feature_sram, + &feature_ijmpcall, }, }; @@ -454,12 +189,10 @@ pub const cpu_at86rf401 = Cpu{ .name = "at86rf401", .llvm_name = "at86rf401", .subfeatures = &[_]*const Feature { - &feature_ijmpcall, - &feature_sram, &feature_addsubiw, &feature_lpm, - &feature_avr0, - &feature_avr2, + &feature_sram, + &feature_ijmpcall, &feature_lpmx, &feature_movw, }, @@ -469,12 +202,10 @@ pub const cpu_at90c8534 = Cpu{ .name = "at90c8534", .llvm_name = "at90c8534", .subfeatures = &[_]*const Feature { - &feature_ijmpcall, - &feature_sram, &feature_addsubiw, &feature_lpm, - &feature_avr0, - &feature_avr2, + &feature_sram, + &feature_ijmpcall, }, }; @@ -482,20 +213,18 @@ pub const cpu_at90can128 = Cpu{ .name = "at90can128", .llvm_name = "at90can128", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_elpm, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, + &feature_break, + &feature_mul, + &feature_elpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr51, }, }; @@ -503,18 +232,16 @@ pub const cpu_at90can32 = Cpu{ .name = "at90can32", .llvm_name = "at90can32", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -522,18 +249,16 @@ pub const cpu_at90can64 = Cpu{ .name = "at90can64", .llvm_name = "at90can64", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -541,17 +266,15 @@ pub const cpu_at90pwm1 = Cpu{ .name = "at90pwm1", .llvm_name = "at90pwm1", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, &feature_break, &feature_lpm, - &feature_avr0, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr4, }, }; @@ -559,18 +282,16 @@ pub const cpu_at90pwm161 = Cpu{ .name = "at90pwm161", .llvm_name = "at90pwm161", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -578,17 +299,15 @@ pub const cpu_at90pwm2 = Cpu{ .name = "at90pwm2", .llvm_name = "at90pwm2", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, &feature_break, &feature_lpm, - &feature_avr0, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr4, }, }; @@ -596,18 +315,16 @@ pub const cpu_at90pwm216 = Cpu{ .name = "at90pwm216", .llvm_name = "at90pwm216", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -615,17 +332,15 @@ pub const cpu_at90pwm2b = Cpu{ .name = "at90pwm2b", .llvm_name = "at90pwm2b", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, &feature_break, &feature_lpm, - &feature_avr0, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr4, }, }; @@ -633,17 +348,15 @@ pub const cpu_at90pwm3 = Cpu{ .name = "at90pwm3", .llvm_name = "at90pwm3", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, &feature_break, &feature_lpm, - &feature_avr0, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr4, }, }; @@ -651,18 +364,16 @@ pub const cpu_at90pwm316 = Cpu{ .name = "at90pwm316", .llvm_name = "at90pwm316", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -670,17 +381,15 @@ pub const cpu_at90pwm3b = Cpu{ .name = "at90pwm3b", .llvm_name = "at90pwm3b", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, &feature_break, &feature_lpm, - &feature_avr0, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr4, }, }; @@ -688,17 +397,15 @@ pub const cpu_at90pwm81 = Cpu{ .name = "at90pwm81", .llvm_name = "at90pwm81", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, &feature_break, &feature_lpm, - &feature_avr0, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr4, }, }; @@ -706,7 +413,6 @@ pub const cpu_at90s1200 = Cpu{ .name = "at90s1200", .llvm_name = "at90s1200", .subfeatures = &[_]*const Feature { - &feature_avr0, }, }; @@ -714,12 +420,10 @@ pub const cpu_at90s2313 = Cpu{ .name = "at90s2313", .llvm_name = "at90s2313", .subfeatures = &[_]*const Feature { - &feature_ijmpcall, - &feature_sram, &feature_addsubiw, &feature_lpm, - &feature_avr0, - &feature_avr2, + &feature_sram, + &feature_ijmpcall, }, }; @@ -727,12 +431,10 @@ pub const cpu_at90s2323 = Cpu{ .name = "at90s2323", .llvm_name = "at90s2323", .subfeatures = &[_]*const Feature { - &feature_ijmpcall, - &feature_sram, &feature_addsubiw, &feature_lpm, - &feature_avr0, - &feature_avr2, + &feature_sram, + &feature_ijmpcall, }, }; @@ -740,12 +442,10 @@ pub const cpu_at90s2333 = Cpu{ .name = "at90s2333", .llvm_name = "at90s2333", .subfeatures = &[_]*const Feature { - &feature_ijmpcall, - &feature_sram, &feature_addsubiw, &feature_lpm, - &feature_avr0, - &feature_avr2, + &feature_sram, + &feature_ijmpcall, }, }; @@ -753,12 +453,10 @@ pub const cpu_at90s2343 = Cpu{ .name = "at90s2343", .llvm_name = "at90s2343", .subfeatures = &[_]*const Feature { - &feature_ijmpcall, - &feature_sram, &feature_addsubiw, &feature_lpm, - &feature_avr0, - &feature_avr2, + &feature_sram, + &feature_ijmpcall, }, }; @@ -766,12 +464,10 @@ pub const cpu_at90s4414 = Cpu{ .name = "at90s4414", .llvm_name = "at90s4414", .subfeatures = &[_]*const Feature { - &feature_ijmpcall, - &feature_sram, &feature_addsubiw, &feature_lpm, - &feature_avr0, - &feature_avr2, + &feature_sram, + &feature_ijmpcall, }, }; @@ -779,12 +475,10 @@ pub const cpu_at90s4433 = Cpu{ .name = "at90s4433", .llvm_name = "at90s4433", .subfeatures = &[_]*const Feature { - &feature_ijmpcall, - &feature_sram, &feature_addsubiw, &feature_lpm, - &feature_avr0, - &feature_avr2, + &feature_sram, + &feature_ijmpcall, }, }; @@ -792,12 +486,10 @@ pub const cpu_at90s4434 = Cpu{ .name = "at90s4434", .llvm_name = "at90s4434", .subfeatures = &[_]*const Feature { - &feature_ijmpcall, - &feature_sram, &feature_addsubiw, &feature_lpm, - &feature_avr0, - &feature_avr2, + &feature_sram, + &feature_ijmpcall, }, }; @@ -805,12 +497,10 @@ pub const cpu_at90s8515 = Cpu{ .name = "at90s8515", .llvm_name = "at90s8515", .subfeatures = &[_]*const Feature { - &feature_ijmpcall, - &feature_sram, &feature_addsubiw, &feature_lpm, - &feature_avr0, - &feature_avr2, + &feature_sram, + &feature_ijmpcall, }, }; @@ -818,12 +508,10 @@ pub const cpu_at90s8535 = Cpu{ .name = "at90s8535", .llvm_name = "at90s8535", .subfeatures = &[_]*const Feature { - &feature_ijmpcall, - &feature_sram, &feature_addsubiw, &feature_lpm, - &feature_avr0, - &feature_avr2, + &feature_sram, + &feature_ijmpcall, }, }; @@ -831,18 +519,16 @@ pub const cpu_at90scr100 = Cpu{ .name = "at90scr100", .llvm_name = "at90scr100", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -850,20 +536,18 @@ pub const cpu_at90usb1286 = Cpu{ .name = "at90usb1286", .llvm_name = "at90usb1286", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_elpm, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, + &feature_break, + &feature_mul, + &feature_elpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr51, }, }; @@ -871,20 +555,18 @@ pub const cpu_at90usb1287 = Cpu{ .name = "at90usb1287", .llvm_name = "at90usb1287", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_elpm, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, + &feature_break, + &feature_mul, + &feature_elpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr51, }, }; @@ -892,17 +574,15 @@ pub const cpu_at90usb162 = Cpu{ .name = "at90usb162", .llvm_name = "at90usb162", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr35, }, }; @@ -910,18 +590,16 @@ pub const cpu_at90usb646 = Cpu{ .name = "at90usb646", .llvm_name = "at90usb646", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -929,18 +607,16 @@ pub const cpu_at90usb647 = Cpu{ .name = "at90usb647", .llvm_name = "at90usb647", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -948,17 +624,15 @@ pub const cpu_at90usb82 = Cpu{ .name = "at90usb82", .llvm_name = "at90usb82", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr35, }, }; @@ -966,13 +640,11 @@ pub const cpu_at94k = Cpu{ .name = "at94k", .llvm_name = "at94k", .subfeatures = &[_]*const Feature { - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, &feature_addsubiw, + &feature_jmpcall, &feature_lpm, - &feature_avr0, - &feature_avr3, + &feature_sram, + &feature_ijmpcall, &feature_lpmx, &feature_movw, &feature_mul, @@ -983,16 +655,14 @@ pub const cpu_ata5272 = Cpu{ .name = "ata5272", .llvm_name = "ata5272", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, &feature_break, &feature_lpm, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr25, }, }; @@ -1000,17 +670,15 @@ pub const cpu_ata5505 = Cpu{ .name = "ata5505", .llvm_name = "ata5505", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr35, }, }; @@ -1018,18 +686,16 @@ pub const cpu_ata5790 = Cpu{ .name = "ata5790", .llvm_name = "ata5790", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -1037,18 +703,16 @@ pub const cpu_ata5795 = Cpu{ .name = "ata5795", .llvm_name = "ata5795", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -1056,17 +720,15 @@ pub const cpu_ata6285 = Cpu{ .name = "ata6285", .llvm_name = "ata6285", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, &feature_break, &feature_lpm, - &feature_avr0, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr4, }, }; @@ -1074,17 +736,15 @@ pub const cpu_ata6286 = Cpu{ .name = "ata6286", .llvm_name = "ata6286", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, &feature_break, &feature_lpm, - &feature_avr0, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr4, }, }; @@ -1092,17 +752,15 @@ pub const cpu_ata6289 = Cpu{ .name = "ata6289", .llvm_name = "ata6289", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, &feature_break, &feature_lpm, - &feature_avr0, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr4, }, }; @@ -1110,14 +768,12 @@ pub const cpu_atmega103 = Cpu{ .name = "atmega103", .llvm_name = "atmega103", .subfeatures = &[_]*const Feature { - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, &feature_addsubiw, - &feature_elpm, + &feature_jmpcall, &feature_lpm, - &feature_avr0, - &feature_avr31, + &feature_elpm, + &feature_sram, + &feature_ijmpcall, }, }; @@ -1125,20 +781,18 @@ pub const cpu_atmega128 = Cpu{ .name = "atmega128", .llvm_name = "atmega128", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_elpm, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, + &feature_break, + &feature_mul, + &feature_elpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr51, }, }; @@ -1146,20 +800,18 @@ pub const cpu_atmega1280 = Cpu{ .name = "atmega1280", .llvm_name = "atmega1280", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_elpm, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, + &feature_break, + &feature_mul, + &feature_elpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr51, }, }; @@ -1167,20 +819,18 @@ pub const cpu_atmega1281 = Cpu{ .name = "atmega1281", .llvm_name = "atmega1281", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_elpm, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, + &feature_break, + &feature_mul, + &feature_elpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr51, }, }; @@ -1188,20 +838,18 @@ pub const cpu_atmega1284 = Cpu{ .name = "atmega1284", .llvm_name = "atmega1284", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_elpm, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, + &feature_break, + &feature_mul, + &feature_elpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr51, }, }; @@ -1209,20 +857,18 @@ pub const cpu_atmega1284p = Cpu{ .name = "atmega1284p", .llvm_name = "atmega1284p", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_elpm, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, + &feature_break, + &feature_mul, + &feature_elpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr51, }, }; @@ -1230,20 +876,18 @@ pub const cpu_atmega1284rfr2 = Cpu{ .name = "atmega1284rfr2", .llvm_name = "atmega1284rfr2", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_elpm, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, + &feature_break, + &feature_mul, + &feature_elpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr51, }, }; @@ -1251,20 +895,18 @@ pub const cpu_atmega128a = Cpu{ .name = "atmega128a", .llvm_name = "atmega128a", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_elpm, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, + &feature_break, + &feature_mul, + &feature_elpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr51, }, }; @@ -1272,20 +914,18 @@ pub const cpu_atmega128rfa1 = Cpu{ .name = "atmega128rfa1", .llvm_name = "atmega128rfa1", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_elpm, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, + &feature_break, + &feature_mul, + &feature_elpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr51, }, }; @@ -1293,20 +933,18 @@ pub const cpu_atmega128rfr2 = Cpu{ .name = "atmega128rfr2", .llvm_name = "atmega128rfr2", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_elpm, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, + &feature_break, + &feature_mul, + &feature_elpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr51, }, }; @@ -1314,18 +952,16 @@ pub const cpu_atmega16 = Cpu{ .name = "atmega16", .llvm_name = "atmega16", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -1333,13 +969,11 @@ pub const cpu_atmega161 = Cpu{ .name = "atmega161", .llvm_name = "atmega161", .subfeatures = &[_]*const Feature { - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, &feature_addsubiw, + &feature_jmpcall, &feature_lpm, - &feature_avr0, - &feature_avr3, + &feature_sram, + &feature_ijmpcall, &feature_lpmx, &feature_movw, &feature_mul, @@ -1351,18 +985,16 @@ pub const cpu_atmega162 = Cpu{ .name = "atmega162", .llvm_name = "atmega162", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -1370,13 +1002,11 @@ pub const cpu_atmega163 = Cpu{ .name = "atmega163", .llvm_name = "atmega163", .subfeatures = &[_]*const Feature { - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, &feature_addsubiw, + &feature_jmpcall, &feature_lpm, - &feature_avr0, - &feature_avr3, + &feature_sram, + &feature_ijmpcall, &feature_lpmx, &feature_movw, &feature_mul, @@ -1388,18 +1018,16 @@ pub const cpu_atmega164a = Cpu{ .name = "atmega164a", .llvm_name = "atmega164a", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -1407,18 +1035,16 @@ pub const cpu_atmega164p = Cpu{ .name = "atmega164p", .llvm_name = "atmega164p", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -1426,18 +1052,16 @@ pub const cpu_atmega164pa = Cpu{ .name = "atmega164pa", .llvm_name = "atmega164pa", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -1445,18 +1069,16 @@ pub const cpu_atmega165 = Cpu{ .name = "atmega165", .llvm_name = "atmega165", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -1464,18 +1086,16 @@ pub const cpu_atmega165a = Cpu{ .name = "atmega165a", .llvm_name = "atmega165a", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -1483,18 +1103,16 @@ pub const cpu_atmega165p = Cpu{ .name = "atmega165p", .llvm_name = "atmega165p", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -1502,18 +1120,16 @@ pub const cpu_atmega165pa = Cpu{ .name = "atmega165pa", .llvm_name = "atmega165pa", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -1521,18 +1137,16 @@ pub const cpu_atmega168 = Cpu{ .name = "atmega168", .llvm_name = "atmega168", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -1540,18 +1154,16 @@ pub const cpu_atmega168a = Cpu{ .name = "atmega168a", .llvm_name = "atmega168a", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -1559,18 +1171,16 @@ pub const cpu_atmega168p = Cpu{ .name = "atmega168p", .llvm_name = "atmega168p", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -1578,18 +1188,16 @@ pub const cpu_atmega168pa = Cpu{ .name = "atmega168pa", .llvm_name = "atmega168pa", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -1597,18 +1205,16 @@ pub const cpu_atmega169 = Cpu{ .name = "atmega169", .llvm_name = "atmega169", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -1616,18 +1222,16 @@ pub const cpu_atmega169a = Cpu{ .name = "atmega169a", .llvm_name = "atmega169a", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -1635,18 +1239,16 @@ pub const cpu_atmega169p = Cpu{ .name = "atmega169p", .llvm_name = "atmega169p", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -1654,18 +1256,16 @@ pub const cpu_atmega169pa = Cpu{ .name = "atmega169pa", .llvm_name = "atmega169pa", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -1673,18 +1273,16 @@ pub const cpu_atmega16a = Cpu{ .name = "atmega16a", .llvm_name = "atmega16a", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -1692,18 +1290,16 @@ pub const cpu_atmega16hva = Cpu{ .name = "atmega16hva", .llvm_name = "atmega16hva", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -1711,18 +1307,16 @@ pub const cpu_atmega16hva2 = Cpu{ .name = "atmega16hva2", .llvm_name = "atmega16hva2", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -1730,18 +1324,16 @@ pub const cpu_atmega16hvb = Cpu{ .name = "atmega16hvb", .llvm_name = "atmega16hvb", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -1749,18 +1341,16 @@ pub const cpu_atmega16hvbrevb = Cpu{ .name = "atmega16hvbrevb", .llvm_name = "atmega16hvbrevb", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -1768,18 +1358,16 @@ pub const cpu_atmega16m1 = Cpu{ .name = "atmega16m1", .llvm_name = "atmega16m1", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -1787,17 +1375,15 @@ pub const cpu_atmega16u2 = Cpu{ .name = "atmega16u2", .llvm_name = "atmega16u2", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr35, }, }; @@ -1805,18 +1391,16 @@ pub const cpu_atmega16u4 = Cpu{ .name = "atmega16u4", .llvm_name = "atmega16u4", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -1824,20 +1408,18 @@ pub const cpu_atmega2560 = Cpu{ .name = "atmega2560", .llvm_name = "atmega2560", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_elpm, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, + &feature_break, + &feature_mul, + &feature_elpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr6, }, }; @@ -1845,20 +1427,18 @@ pub const cpu_atmega2561 = Cpu{ .name = "atmega2561", .llvm_name = "atmega2561", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_elpm, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, + &feature_break, + &feature_mul, + &feature_elpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr6, }, }; @@ -1866,20 +1446,18 @@ pub const cpu_atmega2564rfr2 = Cpu{ .name = "atmega2564rfr2", .llvm_name = "atmega2564rfr2", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_elpm, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, + &feature_break, + &feature_mul, + &feature_elpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr6, }, }; @@ -1887,20 +1465,18 @@ pub const cpu_atmega256rfr2 = Cpu{ .name = "atmega256rfr2", .llvm_name = "atmega256rfr2", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_elpm, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, + &feature_break, + &feature_mul, + &feature_elpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr6, }, }; @@ -1908,18 +1484,16 @@ pub const cpu_atmega32 = Cpu{ .name = "atmega32", .llvm_name = "atmega32", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -1927,18 +1501,16 @@ pub const cpu_atmega323 = Cpu{ .name = "atmega323", .llvm_name = "atmega323", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -1946,18 +1518,16 @@ pub const cpu_atmega324a = Cpu{ .name = "atmega324a", .llvm_name = "atmega324a", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -1965,18 +1535,16 @@ pub const cpu_atmega324p = Cpu{ .name = "atmega324p", .llvm_name = "atmega324p", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -1984,18 +1552,16 @@ pub const cpu_atmega324pa = Cpu{ .name = "atmega324pa", .llvm_name = "atmega324pa", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2003,18 +1569,16 @@ pub const cpu_atmega325 = Cpu{ .name = "atmega325", .llvm_name = "atmega325", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2022,18 +1586,16 @@ pub const cpu_atmega3250 = Cpu{ .name = "atmega3250", .llvm_name = "atmega3250", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2041,18 +1603,16 @@ pub const cpu_atmega3250a = Cpu{ .name = "atmega3250a", .llvm_name = "atmega3250a", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2060,18 +1620,16 @@ pub const cpu_atmega3250p = Cpu{ .name = "atmega3250p", .llvm_name = "atmega3250p", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2079,18 +1637,16 @@ pub const cpu_atmega3250pa = Cpu{ .name = "atmega3250pa", .llvm_name = "atmega3250pa", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2098,18 +1654,16 @@ pub const cpu_atmega325a = Cpu{ .name = "atmega325a", .llvm_name = "atmega325a", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2117,18 +1671,16 @@ pub const cpu_atmega325p = Cpu{ .name = "atmega325p", .llvm_name = "atmega325p", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2136,18 +1688,16 @@ pub const cpu_atmega325pa = Cpu{ .name = "atmega325pa", .llvm_name = "atmega325pa", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2155,18 +1705,16 @@ pub const cpu_atmega328 = Cpu{ .name = "atmega328", .llvm_name = "atmega328", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2174,18 +1722,16 @@ pub const cpu_atmega328p = Cpu{ .name = "atmega328p", .llvm_name = "atmega328p", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2193,18 +1739,16 @@ pub const cpu_atmega329 = Cpu{ .name = "atmega329", .llvm_name = "atmega329", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2212,18 +1756,16 @@ pub const cpu_atmega3290 = Cpu{ .name = "atmega3290", .llvm_name = "atmega3290", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2231,18 +1773,16 @@ pub const cpu_atmega3290a = Cpu{ .name = "atmega3290a", .llvm_name = "atmega3290a", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2250,18 +1790,16 @@ pub const cpu_atmega3290p = Cpu{ .name = "atmega3290p", .llvm_name = "atmega3290p", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2269,18 +1807,16 @@ pub const cpu_atmega3290pa = Cpu{ .name = "atmega3290pa", .llvm_name = "atmega3290pa", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2288,18 +1824,16 @@ pub const cpu_atmega329a = Cpu{ .name = "atmega329a", .llvm_name = "atmega329a", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2307,18 +1841,16 @@ pub const cpu_atmega329p = Cpu{ .name = "atmega329p", .llvm_name = "atmega329p", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2326,18 +1858,16 @@ pub const cpu_atmega329pa = Cpu{ .name = "atmega329pa", .llvm_name = "atmega329pa", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2345,18 +1875,16 @@ pub const cpu_atmega32a = Cpu{ .name = "atmega32a", .llvm_name = "atmega32a", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2364,18 +1892,16 @@ pub const cpu_atmega32c1 = Cpu{ .name = "atmega32c1", .llvm_name = "atmega32c1", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2383,18 +1909,16 @@ pub const cpu_atmega32hvb = Cpu{ .name = "atmega32hvb", .llvm_name = "atmega32hvb", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2402,18 +1926,16 @@ pub const cpu_atmega32hvbrevb = Cpu{ .name = "atmega32hvbrevb", .llvm_name = "atmega32hvbrevb", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2421,18 +1943,16 @@ pub const cpu_atmega32m1 = Cpu{ .name = "atmega32m1", .llvm_name = "atmega32m1", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2440,17 +1960,15 @@ pub const cpu_atmega32u2 = Cpu{ .name = "atmega32u2", .llvm_name = "atmega32u2", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr35, }, }; @@ -2458,18 +1976,16 @@ pub const cpu_atmega32u4 = Cpu{ .name = "atmega32u4", .llvm_name = "atmega32u4", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2477,18 +1993,16 @@ pub const cpu_atmega32u6 = Cpu{ .name = "atmega32u6", .llvm_name = "atmega32u6", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2496,18 +2010,16 @@ pub const cpu_atmega406 = Cpu{ .name = "atmega406", .llvm_name = "atmega406", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2515,17 +2027,15 @@ pub const cpu_atmega48 = Cpu{ .name = "atmega48", .llvm_name = "atmega48", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, &feature_break, &feature_lpm, - &feature_avr0, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr4, }, }; @@ -2533,17 +2043,15 @@ pub const cpu_atmega48a = Cpu{ .name = "atmega48a", .llvm_name = "atmega48a", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, &feature_break, &feature_lpm, - &feature_avr0, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr4, }, }; @@ -2551,17 +2059,15 @@ pub const cpu_atmega48p = Cpu{ .name = "atmega48p", .llvm_name = "atmega48p", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, &feature_break, &feature_lpm, - &feature_avr0, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr4, }, }; @@ -2569,17 +2075,15 @@ pub const cpu_atmega48pa = Cpu{ .name = "atmega48pa", .llvm_name = "atmega48pa", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, &feature_break, &feature_lpm, - &feature_avr0, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr4, }, }; @@ -2587,18 +2091,16 @@ pub const cpu_atmega64 = Cpu{ .name = "atmega64", .llvm_name = "atmega64", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2606,18 +2108,16 @@ pub const cpu_atmega640 = Cpu{ .name = "atmega640", .llvm_name = "atmega640", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2625,18 +2125,16 @@ pub const cpu_atmega644 = Cpu{ .name = "atmega644", .llvm_name = "atmega644", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2644,18 +2142,16 @@ pub const cpu_atmega644a = Cpu{ .name = "atmega644a", .llvm_name = "atmega644a", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2663,18 +2159,16 @@ pub const cpu_atmega644p = Cpu{ .name = "atmega644p", .llvm_name = "atmega644p", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2682,18 +2176,16 @@ pub const cpu_atmega644pa = Cpu{ .name = "atmega644pa", .llvm_name = "atmega644pa", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2701,18 +2193,16 @@ pub const cpu_atmega644rfr2 = Cpu{ .name = "atmega644rfr2", .llvm_name = "atmega644rfr2", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2720,18 +2210,16 @@ pub const cpu_atmega645 = Cpu{ .name = "atmega645", .llvm_name = "atmega645", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2739,18 +2227,16 @@ pub const cpu_atmega6450 = Cpu{ .name = "atmega6450", .llvm_name = "atmega6450", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2758,18 +2244,16 @@ pub const cpu_atmega6450a = Cpu{ .name = "atmega6450a", .llvm_name = "atmega6450a", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2777,18 +2261,16 @@ pub const cpu_atmega6450p = Cpu{ .name = "atmega6450p", .llvm_name = "atmega6450p", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2796,18 +2278,16 @@ pub const cpu_atmega645a = Cpu{ .name = "atmega645a", .llvm_name = "atmega645a", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2815,18 +2295,16 @@ pub const cpu_atmega645p = Cpu{ .name = "atmega645p", .llvm_name = "atmega645p", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2834,18 +2312,16 @@ pub const cpu_atmega649 = Cpu{ .name = "atmega649", .llvm_name = "atmega649", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2853,18 +2329,16 @@ pub const cpu_atmega6490 = Cpu{ .name = "atmega6490", .llvm_name = "atmega6490", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2872,18 +2346,16 @@ pub const cpu_atmega6490a = Cpu{ .name = "atmega6490a", .llvm_name = "atmega6490a", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2891,18 +2363,16 @@ pub const cpu_atmega6490p = Cpu{ .name = "atmega6490p", .llvm_name = "atmega6490p", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2910,18 +2380,16 @@ pub const cpu_atmega649a = Cpu{ .name = "atmega649a", .llvm_name = "atmega649a", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2929,18 +2397,16 @@ pub const cpu_atmega649p = Cpu{ .name = "atmega649p", .llvm_name = "atmega649p", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2948,18 +2414,16 @@ pub const cpu_atmega64a = Cpu{ .name = "atmega64a", .llvm_name = "atmega64a", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2967,18 +2431,16 @@ pub const cpu_atmega64c1 = Cpu{ .name = "atmega64c1", .llvm_name = "atmega64c1", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -2986,18 +2448,16 @@ pub const cpu_atmega64hve = Cpu{ .name = "atmega64hve", .llvm_name = "atmega64hve", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -3005,18 +2465,16 @@ pub const cpu_atmega64m1 = Cpu{ .name = "atmega64m1", .llvm_name = "atmega64m1", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -3024,18 +2482,16 @@ pub const cpu_atmega64rfr2 = Cpu{ .name = "atmega64rfr2", .llvm_name = "atmega64rfr2", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -3043,17 +2499,15 @@ pub const cpu_atmega8 = Cpu{ .name = "atmega8", .llvm_name = "atmega8", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, &feature_break, &feature_lpm, - &feature_avr0, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr4, }, }; @@ -3061,12 +2515,10 @@ pub const cpu_atmega8515 = Cpu{ .name = "atmega8515", .llvm_name = "atmega8515", .subfeatures = &[_]*const Feature { - &feature_ijmpcall, - &feature_sram, &feature_addsubiw, &feature_lpm, - &feature_avr0, - &feature_avr2, + &feature_sram, + &feature_ijmpcall, &feature_lpmx, &feature_movw, &feature_mul, @@ -3078,12 +2530,10 @@ pub const cpu_atmega8535 = Cpu{ .name = "atmega8535", .llvm_name = "atmega8535", .subfeatures = &[_]*const Feature { - &feature_ijmpcall, - &feature_sram, &feature_addsubiw, &feature_lpm, - &feature_avr0, - &feature_avr2, + &feature_sram, + &feature_ijmpcall, &feature_lpmx, &feature_movw, &feature_mul, @@ -3095,17 +2545,15 @@ pub const cpu_atmega88 = Cpu{ .name = "atmega88", .llvm_name = "atmega88", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, &feature_break, &feature_lpm, - &feature_avr0, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr4, }, }; @@ -3113,17 +2561,15 @@ pub const cpu_atmega88a = Cpu{ .name = "atmega88a", .llvm_name = "atmega88a", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, &feature_break, &feature_lpm, - &feature_avr0, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr4, }, }; @@ -3131,17 +2577,15 @@ pub const cpu_atmega88p = Cpu{ .name = "atmega88p", .llvm_name = "atmega88p", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, &feature_break, &feature_lpm, - &feature_avr0, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr4, }, }; @@ -3149,17 +2593,15 @@ pub const cpu_atmega88pa = Cpu{ .name = "atmega88pa", .llvm_name = "atmega88pa", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, &feature_break, &feature_lpm, - &feature_avr0, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr4, }, }; @@ -3167,17 +2609,15 @@ pub const cpu_atmega8a = Cpu{ .name = "atmega8a", .llvm_name = "atmega8a", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, &feature_break, &feature_lpm, - &feature_avr0, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr4, }, }; @@ -3185,17 +2625,15 @@ pub const cpu_atmega8hva = Cpu{ .name = "atmega8hva", .llvm_name = "atmega8hva", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, &feature_break, &feature_lpm, - &feature_avr0, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr4, }, }; @@ -3203,17 +2641,15 @@ pub const cpu_atmega8u2 = Cpu{ .name = "atmega8u2", .llvm_name = "atmega8u2", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr35, }, }; @@ -3221,11 +2657,9 @@ pub const cpu_attiny10 = Cpu{ .name = "attiny10", .llvm_name = "attiny10", .subfeatures = &[_]*const Feature { - &feature_avr0, + &feature_break, &feature_sram, &feature_tinyencoding, - &feature_break, - &feature_avrtiny, }, }; @@ -3233,11 +2667,9 @@ pub const cpu_attiny102 = Cpu{ .name = "attiny102", .llvm_name = "attiny102", .subfeatures = &[_]*const Feature { - &feature_avr0, + &feature_break, &feature_sram, &feature_tinyencoding, - &feature_break, - &feature_avrtiny, }, }; @@ -3245,11 +2677,9 @@ pub const cpu_attiny104 = Cpu{ .name = "attiny104", .llvm_name = "attiny104", .subfeatures = &[_]*const Feature { - &feature_avr0, + &feature_break, &feature_sram, &feature_tinyencoding, - &feature_break, - &feature_avrtiny, }, }; @@ -3258,8 +2688,6 @@ pub const cpu_attiny11 = Cpu{ .llvm_name = "attiny11", .subfeatures = &[_]*const Feature { &feature_lpm, - &feature_avr0, - &feature_avr1, }, }; @@ -3268,8 +2696,6 @@ pub const cpu_attiny12 = Cpu{ .llvm_name = "attiny12", .subfeatures = &[_]*const Feature { &feature_lpm, - &feature_avr0, - &feature_avr1, }, }; @@ -3277,16 +2703,14 @@ pub const cpu_attiny13 = Cpu{ .name = "attiny13", .llvm_name = "attiny13", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, &feature_break, &feature_lpm, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr25, }, }; @@ -3294,16 +2718,14 @@ pub const cpu_attiny13a = Cpu{ .name = "attiny13a", .llvm_name = "attiny13a", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, &feature_break, &feature_lpm, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr25, }, }; @@ -3312,8 +2734,6 @@ pub const cpu_attiny15 = Cpu{ .llvm_name = "attiny15", .subfeatures = &[_]*const Feature { &feature_lpm, - &feature_avr0, - &feature_avr1, }, }; @@ -3321,17 +2741,15 @@ pub const cpu_attiny1634 = Cpu{ .name = "attiny1634", .llvm_name = "attiny1634", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr35, }, }; @@ -3339,17 +2757,15 @@ pub const cpu_attiny167 = Cpu{ .name = "attiny167", .llvm_name = "attiny167", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr35, }, }; @@ -3357,11 +2773,9 @@ pub const cpu_attiny20 = Cpu{ .name = "attiny20", .llvm_name = "attiny20", .subfeatures = &[_]*const Feature { - &feature_avr0, + &feature_break, &feature_sram, &feature_tinyencoding, - &feature_break, - &feature_avrtiny, }, }; @@ -3369,12 +2783,10 @@ pub const cpu_attiny22 = Cpu{ .name = "attiny22", .llvm_name = "attiny22", .subfeatures = &[_]*const Feature { - &feature_ijmpcall, - &feature_sram, &feature_addsubiw, &feature_lpm, - &feature_avr0, - &feature_avr2, + &feature_sram, + &feature_ijmpcall, }, }; @@ -3382,16 +2794,14 @@ pub const cpu_attiny2313 = Cpu{ .name = "attiny2313", .llvm_name = "attiny2313", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, &feature_break, &feature_lpm, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr25, }, }; @@ -3399,16 +2809,14 @@ pub const cpu_attiny2313a = Cpu{ .name = "attiny2313a", .llvm_name = "attiny2313a", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, &feature_break, &feature_lpm, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr25, }, }; @@ -3416,16 +2824,14 @@ pub const cpu_attiny24 = Cpu{ .name = "attiny24", .llvm_name = "attiny24", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, &feature_break, &feature_lpm, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr25, }, }; @@ -3433,16 +2839,14 @@ pub const cpu_attiny24a = Cpu{ .name = "attiny24a", .llvm_name = "attiny24a", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, &feature_break, &feature_lpm, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr25, }, }; @@ -3450,16 +2854,14 @@ pub const cpu_attiny25 = Cpu{ .name = "attiny25", .llvm_name = "attiny25", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, &feature_break, &feature_lpm, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr25, }, }; @@ -3467,12 +2869,10 @@ pub const cpu_attiny26 = Cpu{ .name = "attiny26", .llvm_name = "attiny26", .subfeatures = &[_]*const Feature { - &feature_ijmpcall, - &feature_sram, &feature_addsubiw, &feature_lpm, - &feature_avr0, - &feature_avr2, + &feature_sram, + &feature_ijmpcall, &feature_lpmx, }, }; @@ -3481,16 +2881,14 @@ pub const cpu_attiny261 = Cpu{ .name = "attiny261", .llvm_name = "attiny261", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, &feature_break, &feature_lpm, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr25, }, }; @@ -3498,16 +2896,14 @@ pub const cpu_attiny261a = Cpu{ .name = "attiny261a", .llvm_name = "attiny261a", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, &feature_break, &feature_lpm, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr25, }, }; @@ -3516,8 +2912,6 @@ pub const cpu_attiny28 = Cpu{ .llvm_name = "attiny28", .subfeatures = &[_]*const Feature { &feature_lpm, - &feature_avr0, - &feature_avr1, }, }; @@ -3525,11 +2919,9 @@ pub const cpu_attiny4 = Cpu{ .name = "attiny4", .llvm_name = "attiny4", .subfeatures = &[_]*const Feature { - &feature_avr0, + &feature_break, &feature_sram, &feature_tinyencoding, - &feature_break, - &feature_avrtiny, }, }; @@ -3537,11 +2929,9 @@ pub const cpu_attiny40 = Cpu{ .name = "attiny40", .llvm_name = "attiny40", .subfeatures = &[_]*const Feature { - &feature_avr0, + &feature_break, &feature_sram, &feature_tinyencoding, - &feature_break, - &feature_avrtiny, }, }; @@ -3549,16 +2939,14 @@ pub const cpu_attiny4313 = Cpu{ .name = "attiny4313", .llvm_name = "attiny4313", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, &feature_break, &feature_lpm, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr25, }, }; @@ -3566,16 +2954,14 @@ pub const cpu_attiny43u = Cpu{ .name = "attiny43u", .llvm_name = "attiny43u", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, &feature_break, &feature_lpm, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr25, }, }; @@ -3583,16 +2969,14 @@ pub const cpu_attiny44 = Cpu{ .name = "attiny44", .llvm_name = "attiny44", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, &feature_break, &feature_lpm, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr25, }, }; @@ -3600,16 +2984,14 @@ pub const cpu_attiny44a = Cpu{ .name = "attiny44a", .llvm_name = "attiny44a", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, &feature_break, &feature_lpm, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr25, }, }; @@ -3617,16 +2999,14 @@ pub const cpu_attiny45 = Cpu{ .name = "attiny45", .llvm_name = "attiny45", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, &feature_break, &feature_lpm, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr25, }, }; @@ -3634,16 +3014,14 @@ pub const cpu_attiny461 = Cpu{ .name = "attiny461", .llvm_name = "attiny461", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, &feature_break, &feature_lpm, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr25, }, }; @@ -3651,16 +3029,14 @@ pub const cpu_attiny461a = Cpu{ .name = "attiny461a", .llvm_name = "attiny461a", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, &feature_break, &feature_lpm, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr25, }, }; @@ -3668,16 +3044,14 @@ pub const cpu_attiny48 = Cpu{ .name = "attiny48", .llvm_name = "attiny48", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, &feature_break, &feature_lpm, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr25, }, }; @@ -3685,11 +3059,9 @@ pub const cpu_attiny5 = Cpu{ .name = "attiny5", .llvm_name = "attiny5", .subfeatures = &[_]*const Feature { - &feature_avr0, + &feature_break, &feature_sram, &feature_tinyencoding, - &feature_break, - &feature_avrtiny, }, }; @@ -3697,16 +3069,14 @@ pub const cpu_attiny828 = Cpu{ .name = "attiny828", .llvm_name = "attiny828", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, &feature_break, &feature_lpm, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr25, }, }; @@ -3714,16 +3084,14 @@ pub const cpu_attiny84 = Cpu{ .name = "attiny84", .llvm_name = "attiny84", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, &feature_break, &feature_lpm, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr25, }, }; @@ -3731,16 +3099,14 @@ pub const cpu_attiny84a = Cpu{ .name = "attiny84a", .llvm_name = "attiny84a", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, &feature_break, &feature_lpm, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr25, }, }; @@ -3748,16 +3114,14 @@ pub const cpu_attiny85 = Cpu{ .name = "attiny85", .llvm_name = "attiny85", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, &feature_break, &feature_lpm, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr25, }, }; @@ -3765,16 +3129,14 @@ pub const cpu_attiny861 = Cpu{ .name = "attiny861", .llvm_name = "attiny861", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, &feature_break, &feature_lpm, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr25, }, }; @@ -3782,16 +3144,14 @@ pub const cpu_attiny861a = Cpu{ .name = "attiny861a", .llvm_name = "attiny861a", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, &feature_break, &feature_lpm, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr25, }, }; @@ -3799,16 +3159,14 @@ pub const cpu_attiny87 = Cpu{ .name = "attiny87", .llvm_name = "attiny87", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, &feature_break, &feature_lpm, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr25, }, }; @@ -3816,16 +3174,14 @@ pub const cpu_attiny88 = Cpu{ .name = "attiny88", .llvm_name = "attiny88", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, &feature_break, &feature_lpm, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr25, }, }; @@ -3833,11 +3189,9 @@ pub const cpu_attiny9 = Cpu{ .name = "attiny9", .llvm_name = "attiny9", .subfeatures = &[_]*const Feature { - &feature_avr0, + &feature_break, &feature_sram, &feature_tinyencoding, - &feature_break, - &feature_avrtiny, }, }; @@ -3845,23 +3199,21 @@ pub const cpu_atxmega128a1 = Cpu{ .name = "atxmega128a1", .llvm_name = "atxmega128a1", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmega, }, }; @@ -3869,24 +3221,22 @@ pub const cpu_atxmega128a1u = Cpu{ .name = "atxmega128a1u", .llvm_name = "atxmega128a1u", .subfeatures = &[_]*const Feature { - &feature_spm, - &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, &feature_rmw, + &feature_lpmx, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmegau, }, }; @@ -3894,23 +3244,21 @@ pub const cpu_atxmega128a3 = Cpu{ .name = "atxmega128a3", .llvm_name = "atxmega128a3", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmega, }, }; @@ -3918,24 +3266,22 @@ pub const cpu_atxmega128a3u = Cpu{ .name = "atxmega128a3u", .llvm_name = "atxmega128a3u", .subfeatures = &[_]*const Feature { - &feature_spm, - &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, &feature_rmw, + &feature_lpmx, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmegau, }, }; @@ -3943,24 +3289,22 @@ pub const cpu_atxmega128a4u = Cpu{ .name = "atxmega128a4u", .llvm_name = "atxmega128a4u", .subfeatures = &[_]*const Feature { - &feature_spm, - &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, &feature_rmw, + &feature_lpmx, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmegau, }, }; @@ -3968,24 +3312,22 @@ pub const cpu_atxmega128b1 = Cpu{ .name = "atxmega128b1", .llvm_name = "atxmega128b1", .subfeatures = &[_]*const Feature { - &feature_spm, - &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, &feature_rmw, + &feature_lpmx, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmegau, }, }; @@ -3993,24 +3335,22 @@ pub const cpu_atxmega128b3 = Cpu{ .name = "atxmega128b3", .llvm_name = "atxmega128b3", .subfeatures = &[_]*const Feature { - &feature_spm, - &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, &feature_rmw, + &feature_lpmx, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmegau, }, }; @@ -4018,24 +3358,22 @@ pub const cpu_atxmega128c3 = Cpu{ .name = "atxmega128c3", .llvm_name = "atxmega128c3", .subfeatures = &[_]*const Feature { - &feature_spm, - &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, &feature_rmw, + &feature_lpmx, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmegau, }, }; @@ -4043,23 +3381,21 @@ pub const cpu_atxmega128d3 = Cpu{ .name = "atxmega128d3", .llvm_name = "atxmega128d3", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmega, }, }; @@ -4067,23 +3403,21 @@ pub const cpu_atxmega128d4 = Cpu{ .name = "atxmega128d4", .llvm_name = "atxmega128d4", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmega, }, }; @@ -4091,23 +3425,21 @@ pub const cpu_atxmega16a4 = Cpu{ .name = "atxmega16a4", .llvm_name = "atxmega16a4", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmega, }, }; @@ -4115,24 +3447,22 @@ pub const cpu_atxmega16a4u = Cpu{ .name = "atxmega16a4u", .llvm_name = "atxmega16a4u", .subfeatures = &[_]*const Feature { - &feature_spm, - &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, &feature_rmw, + &feature_lpmx, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmegau, }, }; @@ -4140,24 +3470,22 @@ pub const cpu_atxmega16c4 = Cpu{ .name = "atxmega16c4", .llvm_name = "atxmega16c4", .subfeatures = &[_]*const Feature { - &feature_spm, - &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, &feature_rmw, + &feature_lpmx, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmegau, }, }; @@ -4165,23 +3493,21 @@ pub const cpu_atxmega16d4 = Cpu{ .name = "atxmega16d4", .llvm_name = "atxmega16d4", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmega, }, }; @@ -4189,23 +3515,21 @@ pub const cpu_atxmega16e5 = Cpu{ .name = "atxmega16e5", .llvm_name = "atxmega16e5", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmega, }, }; @@ -4213,23 +3537,21 @@ pub const cpu_atxmega192a3 = Cpu{ .name = "atxmega192a3", .llvm_name = "atxmega192a3", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmega, }, }; @@ -4237,24 +3559,22 @@ pub const cpu_atxmega192a3u = Cpu{ .name = "atxmega192a3u", .llvm_name = "atxmega192a3u", .subfeatures = &[_]*const Feature { - &feature_spm, - &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, &feature_rmw, + &feature_lpmx, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmegau, }, }; @@ -4262,24 +3582,22 @@ pub const cpu_atxmega192c3 = Cpu{ .name = "atxmega192c3", .llvm_name = "atxmega192c3", .subfeatures = &[_]*const Feature { - &feature_spm, - &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, &feature_rmw, + &feature_lpmx, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmegau, }, }; @@ -4287,23 +3605,21 @@ pub const cpu_atxmega192d3 = Cpu{ .name = "atxmega192d3", .llvm_name = "atxmega192d3", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmega, }, }; @@ -4311,23 +3627,21 @@ pub const cpu_atxmega256a3 = Cpu{ .name = "atxmega256a3", .llvm_name = "atxmega256a3", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmega, }, }; @@ -4335,23 +3649,21 @@ pub const cpu_atxmega256a3b = Cpu{ .name = "atxmega256a3b", .llvm_name = "atxmega256a3b", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmega, }, }; @@ -4359,24 +3671,22 @@ pub const cpu_atxmega256a3bu = Cpu{ .name = "atxmega256a3bu", .llvm_name = "atxmega256a3bu", .subfeatures = &[_]*const Feature { - &feature_spm, - &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, &feature_rmw, + &feature_lpmx, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmegau, }, }; @@ -4384,24 +3694,22 @@ pub const cpu_atxmega256a3u = Cpu{ .name = "atxmega256a3u", .llvm_name = "atxmega256a3u", .subfeatures = &[_]*const Feature { - &feature_spm, - &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, &feature_rmw, + &feature_lpmx, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmegau, }, }; @@ -4409,24 +3717,22 @@ pub const cpu_atxmega256c3 = Cpu{ .name = "atxmega256c3", .llvm_name = "atxmega256c3", .subfeatures = &[_]*const Feature { - &feature_spm, - &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, &feature_rmw, + &feature_lpmx, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmegau, }, }; @@ -4434,23 +3740,21 @@ pub const cpu_atxmega256d3 = Cpu{ .name = "atxmega256d3", .llvm_name = "atxmega256d3", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmega, }, }; @@ -4458,23 +3762,21 @@ pub const cpu_atxmega32a4 = Cpu{ .name = "atxmega32a4", .llvm_name = "atxmega32a4", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmega, }, }; @@ -4482,24 +3784,22 @@ pub const cpu_atxmega32a4u = Cpu{ .name = "atxmega32a4u", .llvm_name = "atxmega32a4u", .subfeatures = &[_]*const Feature { - &feature_spm, - &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, &feature_rmw, + &feature_lpmx, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmegau, }, }; @@ -4507,24 +3807,22 @@ pub const cpu_atxmega32c4 = Cpu{ .name = "atxmega32c4", .llvm_name = "atxmega32c4", .subfeatures = &[_]*const Feature { - &feature_spm, - &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, &feature_rmw, + &feature_lpmx, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmegau, }, }; @@ -4532,23 +3830,21 @@ pub const cpu_atxmega32d4 = Cpu{ .name = "atxmega32d4", .llvm_name = "atxmega32d4", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmega, }, }; @@ -4556,23 +3852,21 @@ pub const cpu_atxmega32e5 = Cpu{ .name = "atxmega32e5", .llvm_name = "atxmega32e5", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmega, }, }; @@ -4580,23 +3874,21 @@ pub const cpu_atxmega32x1 = Cpu{ .name = "atxmega32x1", .llvm_name = "atxmega32x1", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmega, }, }; @@ -4604,24 +3896,22 @@ pub const cpu_atxmega384c3 = Cpu{ .name = "atxmega384c3", .llvm_name = "atxmega384c3", .subfeatures = &[_]*const Feature { - &feature_spm, - &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, &feature_rmw, + &feature_lpmx, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmegau, }, }; @@ -4629,23 +3919,21 @@ pub const cpu_atxmega384d3 = Cpu{ .name = "atxmega384d3", .llvm_name = "atxmega384d3", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmega, }, }; @@ -4653,23 +3941,21 @@ pub const cpu_atxmega64a1 = Cpu{ .name = "atxmega64a1", .llvm_name = "atxmega64a1", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmega, }, }; @@ -4677,24 +3963,22 @@ pub const cpu_atxmega64a1u = Cpu{ .name = "atxmega64a1u", .llvm_name = "atxmega64a1u", .subfeatures = &[_]*const Feature { - &feature_spm, - &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, &feature_rmw, + &feature_lpmx, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmegau, }, }; @@ -4702,23 +3986,21 @@ pub const cpu_atxmega64a3 = Cpu{ .name = "atxmega64a3", .llvm_name = "atxmega64a3", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmega, }, }; @@ -4726,24 +4008,22 @@ pub const cpu_atxmega64a3u = Cpu{ .name = "atxmega64a3u", .llvm_name = "atxmega64a3u", .subfeatures = &[_]*const Feature { - &feature_spm, - &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, &feature_rmw, + &feature_lpmx, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmegau, }, }; @@ -4751,24 +4031,22 @@ pub const cpu_atxmega64a4u = Cpu{ .name = "atxmega64a4u", .llvm_name = "atxmega64a4u", .subfeatures = &[_]*const Feature { - &feature_spm, - &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, &feature_rmw, + &feature_lpmx, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmegau, }, }; @@ -4776,24 +4054,22 @@ pub const cpu_atxmega64b1 = Cpu{ .name = "atxmega64b1", .llvm_name = "atxmega64b1", .subfeatures = &[_]*const Feature { - &feature_spm, - &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, &feature_rmw, + &feature_lpmx, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmegau, }, }; @@ -4801,24 +4077,22 @@ pub const cpu_atxmega64b3 = Cpu{ .name = "atxmega64b3", .llvm_name = "atxmega64b3", .subfeatures = &[_]*const Feature { - &feature_spm, - &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, &feature_rmw, + &feature_lpmx, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmegau, }, }; @@ -4826,24 +4100,22 @@ pub const cpu_atxmega64c3 = Cpu{ .name = "atxmega64c3", .llvm_name = "atxmega64c3", .subfeatures = &[_]*const Feature { - &feature_spm, - &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, &feature_rmw, + &feature_lpmx, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmegau, }, }; @@ -4851,23 +4123,21 @@ pub const cpu_atxmega64d3 = Cpu{ .name = "atxmega64d3", .llvm_name = "atxmega64d3", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmega, }, }; @@ -4875,23 +4145,21 @@ pub const cpu_atxmega64d4 = Cpu{ .name = "atxmega64d4", .llvm_name = "atxmega64d4", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmega, }, }; @@ -4899,23 +4167,21 @@ pub const cpu_atxmega8e5 = Cpu{ .name = "atxmega8e5", .llvm_name = "atxmega8e5", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmega, }, }; @@ -4924,8 +4190,6 @@ pub const cpu_avr1 = Cpu{ .llvm_name = "avr1", .subfeatures = &[_]*const Feature { &feature_lpm, - &feature_avr0, - &feature_avr1, }, }; @@ -4933,12 +4197,10 @@ pub const cpu_avr2 = Cpu{ .name = "avr2", .llvm_name = "avr2", .subfeatures = &[_]*const Feature { - &feature_ijmpcall, - &feature_sram, &feature_addsubiw, &feature_lpm, - &feature_avr0, - &feature_avr2, + &feature_sram, + &feature_ijmpcall, }, }; @@ -4946,16 +4208,14 @@ pub const cpu_avr25 = Cpu{ .name = "avr25", .llvm_name = "avr25", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, &feature_break, &feature_lpm, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr25, }, }; @@ -4963,13 +4223,11 @@ pub const cpu_avr3 = Cpu{ .name = "avr3", .llvm_name = "avr3", .subfeatures = &[_]*const Feature { - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, &feature_addsubiw, + &feature_jmpcall, &feature_lpm, - &feature_avr0, - &feature_avr3, + &feature_sram, + &feature_ijmpcall, }, }; @@ -4977,14 +4235,12 @@ pub const cpu_avr31 = Cpu{ .name = "avr31", .llvm_name = "avr31", .subfeatures = &[_]*const Feature { - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, &feature_addsubiw, - &feature_elpm, + &feature_jmpcall, &feature_lpm, - &feature_avr0, - &feature_avr31, + &feature_elpm, + &feature_sram, + &feature_ijmpcall, }, }; @@ -4992,17 +4248,15 @@ pub const cpu_avr35 = Cpu{ .name = "avr35", .llvm_name = "avr35", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr35, }, }; @@ -5010,17 +4264,15 @@ pub const cpu_avr4 = Cpu{ .name = "avr4", .llvm_name = "avr4", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, &feature_break, &feature_lpm, - &feature_avr0, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr4, }, }; @@ -5028,18 +4280,16 @@ pub const cpu_avr5 = Cpu{ .name = "avr5", .llvm_name = "avr5", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; @@ -5047,20 +4297,18 @@ pub const cpu_avr51 = Cpu{ .name = "avr51", .llvm_name = "avr51", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_elpm, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, + &feature_break, + &feature_mul, + &feature_elpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr51, }, }; @@ -5068,20 +4316,18 @@ pub const cpu_avr6 = Cpu{ .name = "avr6", .llvm_name = "avr6", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_elpm, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, + &feature_break, + &feature_mul, + &feature_elpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr6, }, }; @@ -5089,11 +4335,9 @@ pub const cpu_avrtiny = Cpu{ .name = "avrtiny", .llvm_name = "avrtiny", .subfeatures = &[_]*const Feature { - &feature_avr0, + &feature_break, &feature_sram, &feature_tinyencoding, - &feature_break, - &feature_avrtiny, }, }; @@ -5101,23 +4345,21 @@ pub const cpu_avrxmega1 = Cpu{ .name = "avrxmega1", .llvm_name = "avrxmega1", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmega, }, }; @@ -5125,23 +4367,21 @@ pub const cpu_avrxmega2 = Cpu{ .name = "avrxmega2", .llvm_name = "avrxmega2", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmega, }, }; @@ -5149,23 +4389,21 @@ pub const cpu_avrxmega3 = Cpu{ .name = "avrxmega3", .llvm_name = "avrxmega3", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmega, }, }; @@ -5173,23 +4411,21 @@ pub const cpu_avrxmega4 = Cpu{ .name = "avrxmega4", .llvm_name = "avrxmega4", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmega, }, }; @@ -5197,23 +4433,21 @@ pub const cpu_avrxmega5 = Cpu{ .name = "avrxmega5", .llvm_name = "avrxmega5", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmega, }, }; @@ -5221,23 +4455,21 @@ pub const cpu_avrxmega6 = Cpu{ .name = "avrxmega6", .llvm_name = "avrxmega6", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmega, }, }; @@ -5245,23 +4477,21 @@ pub const cpu_avrxmega7 = Cpu{ .name = "avrxmega7", .llvm_name = "avrxmega7", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_des, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, + &feature_jmpcall, + &feature_lpm, + &feature_break, + &feature_mul, &feature_elpm, &feature_eijmpcall, - &feature_mul, - &feature_break, - &feature_lpm, &feature_elpmx, - &feature_avr0, + &feature_sram, + &feature_des, + &feature_ijmpcall, &feature_movw, &feature_spmx, - &feature_xmega, }, }; @@ -5269,18 +4499,16 @@ pub const cpu_m3000 = Cpu{ .name = "m3000", .llvm_name = "m3000", .subfeatures = &[_]*const Feature { - &feature_spm, &feature_lpmx, - &feature_ijmpcall, - &feature_jmpcall, - &feature_sram, + &feature_spm, &feature_addsubiw, - &feature_mul, - &feature_break, + &feature_jmpcall, &feature_lpm, - &feature_avr0, + &feature_break, + &feature_mul, + &feature_sram, + &feature_ijmpcall, &feature_movw, - &feature_avr5, }, }; diff --git a/lib/std/target/hexagon.zig b/lib/std/target/hexagon.zig index 0219b88815..3051f3273a 100644 --- a/lib/std/target/hexagon.zig +++ b/lib/std/target/hexagon.zig @@ -1,111 +1,6 @@ const Feature = @import("std").target.Feature; const Cpu = @import("std").target.Cpu; -pub const feature_v5 = Feature{ - .name = "v5", - .description = "Enable Hexagon V5 architecture", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_v55 = Feature{ - .name = "v55", - .description = "Enable Hexagon V55 architecture", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_v60 = Feature{ - .name = "v60", - .description = "Enable Hexagon V60 architecture", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_v62 = Feature{ - .name = "v62", - .description = "Enable Hexagon V62 architecture", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_v65 = Feature{ - .name = "v65", - .description = "Enable Hexagon V65 architecture", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_v66 = Feature{ - .name = "v66", - .description = "Enable Hexagon V66 architecture", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_hvx = Feature{ - .name = "hvx", - .description = "Hexagon HVX instructions", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_hvxLength64b = Feature{ - .name = "hvx-length64b", - .description = "Hexagon HVX 64B instructions", - .subfeatures = &[_]*const Feature { - &feature_hvx, - }, -}; - -pub const feature_hvxLength128b = Feature{ - .name = "hvx-length128b", - .description = "Hexagon HVX 128B instructions", - .subfeatures = &[_]*const Feature { - &feature_hvx, - }, -}; - -pub const feature_hvxv60 = Feature{ - .name = "hvxv60", - .description = "Hexagon HVX instructions", - .subfeatures = &[_]*const Feature { - &feature_hvx, - }, -}; - -pub const feature_hvxv62 = Feature{ - .name = "hvxv62", - .description = "Hexagon HVX instructions", - .subfeatures = &[_]*const Feature { - &feature_hvx, - }, -}; - -pub const feature_hvxv65 = Feature{ - .name = "hvxv65", - .description = "Hexagon HVX instructions", - .subfeatures = &[_]*const Feature { - &feature_hvx, - }, -}; - -pub const feature_hvxv66 = Feature{ - .name = "hvxv66", - .description = "Hexagon HVX instructions", - .subfeatures = &[_]*const Feature { - &feature_zreg, - &feature_hvx, - }, -}; - -pub const feature_zreg = Feature{ - .name = "zreg", - .description = "Hexagon ZReg extension instructions", - .subfeatures = &[_]*const Feature { - }, -}; - pub const feature_duplex = Feature{ .name = "duplex", .description = "Enable generation of duplex instruction", @@ -179,20 +74,6 @@ pub const feature_smallData = Feature{ }; pub const features = &[_]*const Feature { - &feature_v5, - &feature_v55, - &feature_v60, - &feature_v62, - &feature_v65, - &feature_v66, - &feature_hvx, - &feature_hvxLength64b, - &feature_hvxLength128b, - &feature_hvxv60, - &feature_hvxv62, - &feature_hvxv65, - &feature_hvxv66, - &feature_zreg, &feature_duplex, &feature_longCalls, &feature_mem_noshuf, @@ -209,9 +90,6 @@ pub const cpu_generic = Cpu{ .name = "generic", .llvm_name = "generic", .subfeatures = &[_]*const Feature { - &feature_v5, - &feature_v55, - &feature_v60, &feature_duplex, &feature_memops, &feature_packets, @@ -225,7 +103,6 @@ pub const cpu_hexagonv5 = Cpu{ .name = "hexagonv5", .llvm_name = "hexagonv5", .subfeatures = &[_]*const Feature { - &feature_v5, &feature_duplex, &feature_memops, &feature_packets, @@ -239,8 +116,6 @@ pub const cpu_hexagonv55 = Cpu{ .name = "hexagonv55", .llvm_name = "hexagonv55", .subfeatures = &[_]*const Feature { - &feature_v5, - &feature_v55, &feature_duplex, &feature_memops, &feature_packets, @@ -254,9 +129,6 @@ pub const cpu_hexagonv60 = Cpu{ .name = "hexagonv60", .llvm_name = "hexagonv60", .subfeatures = &[_]*const Feature { - &feature_v5, - &feature_v55, - &feature_v60, &feature_duplex, &feature_memops, &feature_packets, @@ -270,10 +142,6 @@ pub const cpu_hexagonv62 = Cpu{ .name = "hexagonv62", .llvm_name = "hexagonv62", .subfeatures = &[_]*const Feature { - &feature_v5, - &feature_v55, - &feature_v60, - &feature_v62, &feature_duplex, &feature_memops, &feature_packets, @@ -287,11 +155,6 @@ pub const cpu_hexagonv65 = Cpu{ .name = "hexagonv65", .llvm_name = "hexagonv65", .subfeatures = &[_]*const Feature { - &feature_v5, - &feature_v55, - &feature_v60, - &feature_v62, - &feature_v65, &feature_duplex, &feature_mem_noshuf, &feature_memops, @@ -306,12 +169,6 @@ pub const cpu_hexagonv66 = Cpu{ .name = "hexagonv66", .llvm_name = "hexagonv66", .subfeatures = &[_]*const Feature { - &feature_v5, - &feature_v55, - &feature_v60, - &feature_v62, - &feature_v65, - &feature_v66, &feature_duplex, &feature_mem_noshuf, &feature_memops, diff --git a/lib/std/target/mips.zig b/lib/std/target/mips.zig index 3d02746606..17582a9313 100644 --- a/lib/std/target/mips.zig +++ b/lib/std/target/mips.zig @@ -19,14 +19,14 @@ pub const feature_cnmips = Feature{ .name = "cnmips", .description = "Octeon cnMIPS Support", .subfeatures = &[_]*const Feature { - &feature_mips3_32r2, - &feature_mips3_32, + &feature_fp64, &feature_mips4_32r2, &feature_mips1, - &feature_fp64, - &feature_mips5_32r2, &feature_gp64, &feature_mips4_32, + &feature_mips5_32r2, + &feature_mips3_32r2, + &feature_mips3_32, }, }; @@ -142,11 +142,11 @@ pub const feature_mips3 = Feature{ .name = "mips3", .description = "MIPS III ISA Support [highly experimental]", .subfeatures = &[_]*const Feature { + &feature_fp64, + &feature_mips1, + &feature_gp64, &feature_mips3_32r2, &feature_mips3_32, - &feature_mips1, - &feature_fp64, - &feature_gp64, }, }; @@ -168,13 +168,13 @@ pub const feature_mips4 = Feature{ .name = "mips4", .description = "MIPS IV ISA Support", .subfeatures = &[_]*const Feature { - &feature_mips3_32r2, - &feature_mips3_32, + &feature_fp64, &feature_mips4_32r2, &feature_mips1, - &feature_fp64, &feature_gp64, &feature_mips4_32, + &feature_mips3_32r2, + &feature_mips3_32, }, }; @@ -196,14 +196,14 @@ pub const feature_mips5 = Feature{ .name = "mips5", .description = "MIPS V ISA Support [highly experimental]", .subfeatures = &[_]*const Feature { - &feature_mips3_32r2, - &feature_mips3_32, + &feature_fp64, &feature_mips4_32r2, &feature_mips1, - &feature_fp64, - &feature_mips5_32r2, &feature_gp64, &feature_mips4_32, + &feature_mips5_32r2, + &feature_mips3_32r2, + &feature_mips3_32, }, }; @@ -235,12 +235,12 @@ pub const feature_mips32r2 = Feature{ .name = "mips32r2", .description = "Mips32r2 ISA Support", .subfeatures = &[_]*const Feature { - &feature_mips3_32r2, - &feature_mips3_32, &feature_mips4_32r2, &feature_mips1, - &feature_mips5_32r2, &feature_mips4_32, + &feature_mips5_32r2, + &feature_mips3_32r2, + &feature_mips3_32, }, }; @@ -248,12 +248,12 @@ pub const feature_mips32r3 = Feature{ .name = "mips32r3", .description = "Mips32r3 ISA Support", .subfeatures = &[_]*const Feature { - &feature_mips3_32r2, - &feature_mips3_32, &feature_mips4_32r2, &feature_mips1, - &feature_mips5_32r2, &feature_mips4_32, + &feature_mips5_32r2, + &feature_mips3_32r2, + &feature_mips3_32, }, }; @@ -261,12 +261,12 @@ pub const feature_mips32r5 = Feature{ .name = "mips32r5", .description = "Mips32r5 ISA Support", .subfeatures = &[_]*const Feature { - &feature_mips3_32r2, - &feature_mips3_32, &feature_mips4_32r2, &feature_mips1, - &feature_mips5_32r2, &feature_mips4_32, + &feature_mips5_32r2, + &feature_mips3_32r2, + &feature_mips3_32, }, }; @@ -274,15 +274,15 @@ pub const feature_mips32r6 = Feature{ .name = "mips32r6", .description = "Mips32r6 ISA Support [experimental]", .subfeatures = &[_]*const Feature { - &feature_mips3_32r2, - &feature_mips3_32, - &feature_nan2008, - &feature_mips4_32r2, - &feature_mips1, &feature_abs2008, &feature_fp64, - &feature_mips5_32r2, + &feature_mips4_32r2, + &feature_nan2008, + &feature_mips1, &feature_mips4_32, + &feature_mips5_32r2, + &feature_mips3_32r2, + &feature_mips3_32, }, }; @@ -290,14 +290,14 @@ pub const feature_mips64 = Feature{ .name = "mips64", .description = "Mips64 ISA Support", .subfeatures = &[_]*const Feature { - &feature_mips3_32r2, - &feature_mips3_32, + &feature_fp64, &feature_mips4_32r2, &feature_mips1, - &feature_fp64, - &feature_mips5_32r2, &feature_gp64, &feature_mips4_32, + &feature_mips5_32r2, + &feature_mips3_32r2, + &feature_mips3_32, }, }; @@ -305,14 +305,14 @@ pub const feature_mips64r2 = Feature{ .name = "mips64r2", .description = "Mips64r2 ISA Support", .subfeatures = &[_]*const Feature { - &feature_mips3_32r2, - &feature_mips3_32, + &feature_fp64, &feature_mips4_32r2, &feature_mips1, - &feature_fp64, - &feature_mips5_32r2, &feature_gp64, &feature_mips4_32, + &feature_mips5_32r2, + &feature_mips3_32r2, + &feature_mips3_32, }, }; @@ -320,14 +320,14 @@ pub const feature_mips64r3 = Feature{ .name = "mips64r3", .description = "Mips64r3 ISA Support", .subfeatures = &[_]*const Feature { - &feature_mips3_32r2, - &feature_mips3_32, + &feature_fp64, &feature_mips4_32r2, &feature_mips1, - &feature_fp64, - &feature_mips5_32r2, &feature_gp64, &feature_mips4_32, + &feature_mips5_32r2, + &feature_mips3_32r2, + &feature_mips3_32, }, }; @@ -335,14 +335,14 @@ pub const feature_mips64r5 = Feature{ .name = "mips64r5", .description = "Mips64r5 ISA Support", .subfeatures = &[_]*const Feature { - &feature_mips3_32r2, - &feature_mips3_32, + &feature_fp64, &feature_mips4_32r2, &feature_mips1, - &feature_fp64, - &feature_mips5_32r2, &feature_gp64, &feature_mips4_32, + &feature_mips5_32r2, + &feature_mips3_32r2, + &feature_mips3_32, }, }; @@ -350,16 +350,16 @@ pub const feature_mips64r6 = Feature{ .name = "mips64r6", .description = "Mips64r6 ISA Support [experimental]", .subfeatures = &[_]*const Feature { - &feature_mips3_32r2, - &feature_mips3_32, - &feature_nan2008, - &feature_mips4_32r2, - &feature_mips1, &feature_abs2008, &feature_fp64, - &feature_mips5_32r2, + &feature_mips4_32r2, + &feature_mips1, &feature_gp64, + &feature_mips5_32r2, &feature_mips4_32, + &feature_nan2008, + &feature_mips3_32r2, + &feature_mips3_32, }, }; @@ -451,12 +451,12 @@ pub const feature_p5600 = Feature{ .name = "p5600", .description = "The P5600 Processor", .subfeatures = &[_]*const Feature { - &feature_mips3_32r2, - &feature_mips3_32, &feature_mips4_32r2, &feature_mips1, - &feature_mips5_32r2, &feature_mips4_32, + &feature_mips5_32r2, + &feature_mips3_32r2, + &feature_mips3_32, }, }; @@ -534,11 +534,11 @@ pub const cpu_mips3 = Cpu{ .name = "mips3", .llvm_name = "mips3", .subfeatures = &[_]*const Feature { + &feature_fp64, + &feature_mips1, + &feature_gp64, &feature_mips3_32r2, &feature_mips3_32, - &feature_mips1, - &feature_fp64, - &feature_gp64, &feature_mips3, }, }; @@ -558,12 +558,12 @@ pub const cpu_mips32r2 = Cpu{ .name = "mips32r2", .llvm_name = "mips32r2", .subfeatures = &[_]*const Feature { - &feature_mips3_32r2, - &feature_mips3_32, &feature_mips4_32r2, &feature_mips1, - &feature_mips5_32r2, &feature_mips4_32, + &feature_mips5_32r2, + &feature_mips3_32r2, + &feature_mips3_32, &feature_mips32r2, }, }; @@ -572,12 +572,12 @@ pub const cpu_mips32r3 = Cpu{ .name = "mips32r3", .llvm_name = "mips32r3", .subfeatures = &[_]*const Feature { - &feature_mips3_32r2, - &feature_mips3_32, &feature_mips4_32r2, &feature_mips1, - &feature_mips5_32r2, &feature_mips4_32, + &feature_mips5_32r2, + &feature_mips3_32r2, + &feature_mips3_32, &feature_mips32r3, }, }; @@ -586,12 +586,12 @@ pub const cpu_mips32r5 = Cpu{ .name = "mips32r5", .llvm_name = "mips32r5", .subfeatures = &[_]*const Feature { - &feature_mips3_32r2, - &feature_mips3_32, &feature_mips4_32r2, &feature_mips1, - &feature_mips5_32r2, &feature_mips4_32, + &feature_mips5_32r2, + &feature_mips3_32r2, + &feature_mips3_32, &feature_mips32r5, }, }; @@ -600,15 +600,15 @@ pub const cpu_mips32r6 = Cpu{ .name = "mips32r6", .llvm_name = "mips32r6", .subfeatures = &[_]*const Feature { - &feature_mips3_32r2, - &feature_mips3_32, - &feature_nan2008, - &feature_mips4_32r2, - &feature_mips1, &feature_abs2008, &feature_fp64, - &feature_mips5_32r2, + &feature_mips4_32r2, + &feature_nan2008, + &feature_mips1, &feature_mips4_32, + &feature_mips5_32r2, + &feature_mips3_32r2, + &feature_mips3_32, &feature_mips32r6, }, }; @@ -617,13 +617,13 @@ pub const cpu_mips4 = Cpu{ .name = "mips4", .llvm_name = "mips4", .subfeatures = &[_]*const Feature { - &feature_mips3_32r2, - &feature_mips3_32, + &feature_fp64, &feature_mips4_32r2, &feature_mips1, - &feature_fp64, &feature_gp64, &feature_mips4_32, + &feature_mips3_32r2, + &feature_mips3_32, &feature_mips4, }, }; @@ -632,14 +632,14 @@ pub const cpu_mips5 = Cpu{ .name = "mips5", .llvm_name = "mips5", .subfeatures = &[_]*const Feature { - &feature_mips3_32r2, - &feature_mips3_32, + &feature_fp64, &feature_mips4_32r2, &feature_mips1, - &feature_fp64, - &feature_mips5_32r2, &feature_gp64, &feature_mips4_32, + &feature_mips5_32r2, + &feature_mips3_32r2, + &feature_mips3_32, &feature_mips5, }, }; @@ -648,14 +648,14 @@ pub const cpu_mips64 = Cpu{ .name = "mips64", .llvm_name = "mips64", .subfeatures = &[_]*const Feature { - &feature_mips3_32r2, - &feature_mips3_32, + &feature_fp64, &feature_mips4_32r2, &feature_mips1, - &feature_fp64, - &feature_mips5_32r2, &feature_gp64, &feature_mips4_32, + &feature_mips5_32r2, + &feature_mips3_32r2, + &feature_mips3_32, &feature_mips64, }, }; @@ -664,14 +664,14 @@ pub const cpu_mips64r2 = Cpu{ .name = "mips64r2", .llvm_name = "mips64r2", .subfeatures = &[_]*const Feature { - &feature_mips3_32r2, - &feature_mips3_32, + &feature_fp64, &feature_mips4_32r2, &feature_mips1, - &feature_fp64, - &feature_mips5_32r2, &feature_gp64, &feature_mips4_32, + &feature_mips5_32r2, + &feature_mips3_32r2, + &feature_mips3_32, &feature_mips64r2, }, }; @@ -680,14 +680,14 @@ pub const cpu_mips64r3 = Cpu{ .name = "mips64r3", .llvm_name = "mips64r3", .subfeatures = &[_]*const Feature { - &feature_mips3_32r2, - &feature_mips3_32, + &feature_fp64, &feature_mips4_32r2, &feature_mips1, - &feature_fp64, - &feature_mips5_32r2, &feature_gp64, &feature_mips4_32, + &feature_mips5_32r2, + &feature_mips3_32r2, + &feature_mips3_32, &feature_mips64r3, }, }; @@ -696,14 +696,14 @@ pub const cpu_mips64r5 = Cpu{ .name = "mips64r5", .llvm_name = "mips64r5", .subfeatures = &[_]*const Feature { - &feature_mips3_32r2, - &feature_mips3_32, + &feature_fp64, &feature_mips4_32r2, &feature_mips1, - &feature_fp64, - &feature_mips5_32r2, &feature_gp64, &feature_mips4_32, + &feature_mips5_32r2, + &feature_mips3_32r2, + &feature_mips3_32, &feature_mips64r5, }, }; @@ -712,16 +712,16 @@ pub const cpu_mips64r6 = Cpu{ .name = "mips64r6", .llvm_name = "mips64r6", .subfeatures = &[_]*const Feature { - &feature_mips3_32r2, - &feature_mips3_32, - &feature_nan2008, - &feature_mips4_32r2, - &feature_mips1, &feature_abs2008, &feature_fp64, - &feature_mips5_32r2, + &feature_mips4_32r2, + &feature_mips1, &feature_gp64, + &feature_mips5_32r2, &feature_mips4_32, + &feature_nan2008, + &feature_mips3_32r2, + &feature_mips3_32, &feature_mips64r6, }, }; @@ -730,14 +730,14 @@ pub const cpu_octeon = Cpu{ .name = "octeon", .llvm_name = "octeon", .subfeatures = &[_]*const Feature { - &feature_mips3_32r2, - &feature_mips3_32, + &feature_fp64, &feature_mips4_32r2, &feature_mips1, - &feature_fp64, - &feature_mips5_32r2, &feature_gp64, &feature_mips4_32, + &feature_mips5_32r2, + &feature_mips3_32r2, + &feature_mips3_32, &feature_cnmips, &feature_mips64r2, }, @@ -747,12 +747,12 @@ pub const cpu_p5600 = Cpu{ .name = "p5600", .llvm_name = "p5600", .subfeatures = &[_]*const Feature { - &feature_mips3_32r2, - &feature_mips3_32, &feature_mips4_32r2, &feature_mips1, - &feature_mips5_32r2, &feature_mips4_32, + &feature_mips5_32r2, + &feature_mips3_32r2, + &feature_mips3_32, &feature_p5600, }, }; diff --git a/lib/std/target/powerpc.zig b/lib/std/target/powerpc.zig index 212a604a4a..e8c9d98a1c 100644 --- a/lib/std/target/powerpc.zig +++ b/lib/std/target/powerpc.zig @@ -261,8 +261,8 @@ pub const feature_power9Altivec = Feature{ .name = "power9-altivec", .description = "Enable POWER9 Altivec instructions", .subfeatures = &[_]*const Feature { - &feature_hardFloat, &feature_isaV30Instructions, + &feature_hardFloat, }, }; @@ -270,8 +270,8 @@ pub const feature_power9Vector = Feature{ .name = "power9-vector", .description = "Enable POWER9 vector instructions", .subfeatures = &[_]*const Feature { - &feature_hardFloat, &feature_isaV30Instructions, + &feature_hardFloat, }, }; diff --git a/lib/std/target/sparc.zig b/lib/std/target/sparc.zig index 75c824c8bc..d302c28063 100644 --- a/lib/std/target/sparc.zig +++ b/lib/std/target/sparc.zig @@ -1,13 +1,6 @@ const Feature = @import("std").target.Feature; const Cpu = @import("std").target.Cpu; -pub const feature_detectroundchange = Feature{ - .name = "detectroundchange", - .description = "LEON3 erratum detection: Detects any rounding mode change request: use only the round-to-nearest rounding mode", - .subfeatures = &[_]*const Feature { - }, -}; - pub const feature_hardQuadFloat = Feature{ .name = "hard-quad-float", .description = "Enable quad-word floating point instructions", @@ -92,50 +85,7 @@ pub const feature_vis3 = Feature{ }, }; -pub const feature_fixallfdivsqrt = Feature{ - .name = "fixallfdivsqrt", - .description = "LEON erratum fix: Fix FDIVS/FDIVD/FSQRTS/FSQRTD instructions with NOPs and floating-point store", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_insertnopload = Feature{ - .name = "insertnopload", - .description = "LEON3 erratum fix: Insert a NOP instruction after every single-cycle load instruction when the next instruction is another load/store instruction", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_hasleoncasa = Feature{ - .name = "hasleoncasa", - .description = "Enable CASA instruction for LEON3 and LEON4 processors", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_leoncyclecounter = Feature{ - .name = "leoncyclecounter", - .description = "Use the Leon cycle counter register", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_hasumacsmac = Feature{ - .name = "hasumacsmac", - .description = "Enable UMAC and SMAC for LEON3 and LEON4 processors", - .subfeatures = &[_]*const Feature { - }, -}; - -pub const feature_popc = Feature{ - .name = "popc", - .description = "Use the popc (population count) instruction", - .subfeatures = &[_]*const Feature { - }, -}; - pub const features = &[_]*const Feature { - &feature_detectroundchange, &feature_hardQuadFloat, &feature_leon, &feature_noFmuls, @@ -148,12 +98,6 @@ pub const features = &[_]*const Feature { &feature_vis, &feature_vis2, &feature_vis3, - &feature_fixallfdivsqrt, - &feature_insertnopload, - &feature_hasleoncasa, - &feature_leoncyclecounter, - &feature_hasumacsmac, - &feature_popc, }; pub const cpu_at697e = Cpu{ @@ -161,7 +105,6 @@ pub const cpu_at697e = Cpu{ .llvm_name = "at697e", .subfeatures = &[_]*const Feature { &feature_leon, - &feature_insertnopload, }, }; @@ -170,7 +113,6 @@ pub const cpu_at697f = Cpu{ .llvm_name = "at697f", .subfeatures = &[_]*const Feature { &feature_leon, - &feature_insertnopload, }, }; @@ -193,7 +135,6 @@ pub const cpu_gr712rc = Cpu{ .llvm_name = "gr712rc", .subfeatures = &[_]*const Feature { &feature_leon, - &feature_hasleoncasa, }, }; @@ -203,9 +144,6 @@ pub const cpu_gr740 = Cpu{ .subfeatures = &[_]*const Feature { &feature_leon, &feature_leonpwrpsr, - &feature_hasleoncasa, - &feature_leoncyclecounter, - &feature_hasumacsmac, }, }; @@ -229,7 +167,6 @@ pub const cpu_leon3 = Cpu{ .llvm_name = "leon3", .subfeatures = &[_]*const Feature { &feature_leon, - &feature_hasumacsmac, }, }; @@ -238,8 +175,6 @@ pub const cpu_leon4 = Cpu{ .llvm_name = "leon4", .subfeatures = &[_]*const Feature { &feature_leon, - &feature_hasleoncasa, - &feature_hasumacsmac, }, }; @@ -248,7 +183,6 @@ pub const cpu_ma2080 = Cpu{ .llvm_name = "ma2080", .subfeatures = &[_]*const Feature { &feature_leon, - &feature_hasleoncasa, }, }; @@ -257,7 +191,6 @@ pub const cpu_ma2085 = Cpu{ .llvm_name = "ma2085", .subfeatures = &[_]*const Feature { &feature_leon, - &feature_hasleoncasa, }, }; @@ -266,7 +199,6 @@ pub const cpu_ma2100 = Cpu{ .llvm_name = "ma2100", .subfeatures = &[_]*const Feature { &feature_leon, - &feature_hasleoncasa, }, }; @@ -275,7 +207,6 @@ pub const cpu_ma2150 = Cpu{ .llvm_name = "ma2150", .subfeatures = &[_]*const Feature { &feature_leon, - &feature_hasleoncasa, }, }; @@ -284,7 +215,6 @@ pub const cpu_ma2155 = Cpu{ .llvm_name = "ma2155", .subfeatures = &[_]*const Feature { &feature_leon, - &feature_hasleoncasa, }, }; @@ -293,7 +223,6 @@ pub const cpu_ma2450 = Cpu{ .llvm_name = "ma2450", .subfeatures = &[_]*const Feature { &feature_leon, - &feature_hasleoncasa, }, }; @@ -302,7 +231,6 @@ pub const cpu_ma2455 = Cpu{ .llvm_name = "ma2455", .subfeatures = &[_]*const Feature { &feature_leon, - &feature_hasleoncasa, }, }; @@ -311,7 +239,6 @@ pub const cpu_ma2480 = Cpu{ .llvm_name = "ma2480", .subfeatures = &[_]*const Feature { &feature_leon, - &feature_hasleoncasa, }, }; @@ -320,7 +247,6 @@ pub const cpu_ma2485 = Cpu{ .llvm_name = "ma2485", .subfeatures = &[_]*const Feature { &feature_leon, - &feature_hasleoncasa, }, }; @@ -329,7 +255,6 @@ pub const cpu_ma2x5x = Cpu{ .llvm_name = "ma2x5x", .subfeatures = &[_]*const Feature { &feature_leon, - &feature_hasleoncasa, }, }; @@ -338,7 +263,6 @@ pub const cpu_ma2x8x = Cpu{ .llvm_name = "ma2x8x", .subfeatures = &[_]*const Feature { &feature_leon, - &feature_hasleoncasa, }, }; @@ -347,7 +271,6 @@ pub const cpu_myriad2 = Cpu{ .llvm_name = "myriad2", .subfeatures = &[_]*const Feature { &feature_leon, - &feature_hasleoncasa, }, }; @@ -356,7 +279,6 @@ pub const cpu_myriad21 = Cpu{ .llvm_name = "myriad2.1", .subfeatures = &[_]*const Feature { &feature_leon, - &feature_hasleoncasa, }, }; @@ -365,7 +287,6 @@ pub const cpu_myriad22 = Cpu{ .llvm_name = "myriad2.2", .subfeatures = &[_]*const Feature { &feature_leon, - &feature_hasleoncasa, }, }; @@ -374,7 +295,6 @@ pub const cpu_myriad23 = Cpu{ .llvm_name = "myriad2.3", .subfeatures = &[_]*const Feature { &feature_leon, - &feature_hasleoncasa, }, }; @@ -397,7 +317,6 @@ pub const cpu_niagara2 = Cpu{ &feature_v9, &feature_vis, &feature_vis2, - &feature_popc, }, }; @@ -409,7 +328,6 @@ pub const cpu_niagara3 = Cpu{ &feature_v9, &feature_vis, &feature_vis2, - &feature_popc, }, }; @@ -422,7 +340,6 @@ pub const cpu_niagara4 = Cpu{ &feature_vis, &feature_vis2, &feature_vis3, - &feature_popc, }, }; @@ -489,8 +406,6 @@ pub const cpu_ut699 = Cpu{ &feature_leon, &feature_noFmuls, &feature_noFsmuld, - &feature_fixallfdivsqrt, - &feature_insertnopload, }, };