diff options
| author | Layne Gustafson <lgustaf1@binghamton.edu> | 2019-12-20 20:07:29 -0500 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2020-01-19 20:53:19 -0500 |
| commit | c8f1e0d6d8f3ccfa952e9612903783baa9b2c12f (patch) | |
| tree | bf2d3b89fb8475715caa14d5e2b3cffcf85b3a92 /lib | |
| parent | c131e50ea7ea0fb95d188c3d0f71ef77bcc96952 (diff) | |
| download | zig-c8f1e0d6d8f3ccfa952e9612903783baa9b2c12f.tar.gz zig-c8f1e0d6d8f3ccfa952e9612903783baa9b2c12f.zip | |
Remove llvm_name from features
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/std/target.zig | 1 | ||||
| -rw-r--r-- | lib/std/target/aarch64.zig | 981 | ||||
| -rw-r--r-- | lib/std/target/amdgpu.zig | 1190 | ||||
| -rw-r--r-- | lib/std/target/arm.zig | 1311 | ||||
| -rw-r--r-- | lib/std/target/avr.zig | 3223 | ||||
| -rw-r--r-- | lib/std/target/bpf.zig | 3 | ||||
| -rw-r--r-- | lib/std/target/hexagon.zig | 24 | ||||
| -rw-r--r-- | lib/std/target/mips.zig | 290 | ||||
| -rw-r--r-- | lib/std/target/msp430.zig | 4 | ||||
| -rw-r--r-- | lib/std/target/nvptx.zig | 25 | ||||
| -rw-r--r-- | lib/std/target/powerpc.zig | 55 | ||||
| -rw-r--r-- | lib/std/target/riscv.zig | 9 | ||||
| -rw-r--r-- | lib/std/target/sparc.zig | 19 | ||||
| -rw-r--r-- | lib/std/target/systemz.zig | 35 | ||||
| -rw-r--r-- | lib/std/target/wasm.zig | 10 | ||||
| -rw-r--r-- | lib/std/target/x86.zig | 128 |
16 files changed, 3241 insertions, 4067 deletions
diff --git a/lib/std/target.zig b/lib/std/target.zig index c911311810..ad2ca59ee8 100644 --- a/lib/std/target.zig +++ b/lib/std/target.zig @@ -861,7 +861,6 @@ pub const x86 = @import("target/x86.zig"); pub const Feature = struct { name: []const u8, description: []const u8, - llvm_name: []const u8, subfeatures: []*const Feature, }; diff --git a/lib/std/target/aarch64.zig b/lib/std/target/aarch64.zig index ca87c33bbb..b7a6283f86 100644 --- a/lib/std/target/aarch64.zig +++ b/lib/std/target/aarch64.zig @@ -4,7 +4,6 @@ const Cpu = @import("std").target.Cpu; pub const feature_aes = Feature{ .name = "aes", .description = "Enable AES support", - .llvm_name = "aes", .subfeatures = &[_]*const Feature { &feature_fpArmv8, }, @@ -13,7 +12,6 @@ pub const feature_aes = Feature{ pub const feature_am = Feature{ .name = "am", .description = "Enable v8.4-A Activity Monitors extension", - .llvm_name = "am", .subfeatures = &[_]*const Feature { }, }; @@ -21,7 +19,6 @@ pub const feature_am = Feature{ pub const feature_aggressiveFma = Feature{ .name = "aggressive-fma", .description = "Enable Aggressive FMA for floating-point.", - .llvm_name = "aggressive-fma", .subfeatures = &[_]*const Feature { }, }; @@ -29,7 +26,6 @@ pub const feature_aggressiveFma = Feature{ pub const feature_altnzcv = Feature{ .name = "altnzcv", .description = "Enable alternative NZCV format for floating point comparisons", - .llvm_name = "altnzcv", .subfeatures = &[_]*const Feature { }, }; @@ -37,7 +33,6 @@ pub const feature_altnzcv = Feature{ pub const feature_alternateSextloadCvtF32Pattern = Feature{ .name = "alternate-sextload-cvt-f32-pattern", .description = "Use alternative pattern for sextload convert to f32", - .llvm_name = "alternate-sextload-cvt-f32-pattern", .subfeatures = &[_]*const Feature { }, }; @@ -45,7 +40,6 @@ pub const feature_alternateSextloadCvtF32Pattern = Feature{ pub const feature_arithBccFusion = Feature{ .name = "arith-bcc-fusion", .description = "CPU fuses arithmetic+bcc operations", - .llvm_name = "arith-bcc-fusion", .subfeatures = &[_]*const Feature { }, }; @@ -53,7 +47,6 @@ pub const feature_arithBccFusion = Feature{ pub const feature_arithCbzFusion = Feature{ .name = "arith-cbz-fusion", .description = "CPU fuses arithmetic + cbz/cbnz operations", - .llvm_name = "arith-cbz-fusion", .subfeatures = &[_]*const Feature { }, }; @@ -61,7 +54,6 @@ pub const feature_arithCbzFusion = Feature{ pub const feature_balanceFpOps = Feature{ .name = "balance-fp-ops", .description = "balance mix of odd and even D-registers for fp multiply(-accumulate) ops", - .llvm_name = "balance-fp-ops", .subfeatures = &[_]*const Feature { }, }; @@ -69,7 +61,6 @@ pub const feature_balanceFpOps = Feature{ pub const feature_bti = Feature{ .name = "bti", .description = "Enable Branch Target Identification", - .llvm_name = "bti", .subfeatures = &[_]*const Feature { }, }; @@ -77,7 +68,6 @@ pub const feature_bti = Feature{ pub const feature_ccidx = Feature{ .name = "ccidx", .description = "Enable v8.3-A Extend of the CCSIDR number of sets", - .llvm_name = "ccidx", .subfeatures = &[_]*const Feature { }, }; @@ -85,7 +75,6 @@ pub const feature_ccidx = Feature{ pub const feature_ccpp = Feature{ .name = "ccpp", .description = "Enable v8.2 data Cache Clean to Point of Persistence", - .llvm_name = "ccpp", .subfeatures = &[_]*const Feature { }, }; @@ -93,7 +82,6 @@ pub const feature_ccpp = Feature{ pub const feature_crc = Feature{ .name = "crc", .description = "Enable ARMv8 CRC-32 checksum instructions", - .llvm_name = "crc", .subfeatures = &[_]*const Feature { }, }; @@ -101,7 +89,6 @@ pub const feature_crc = Feature{ pub const feature_ccdp = Feature{ .name = "ccdp", .description = "Enable v8.5 Cache Clean to Point of Deep Persistence", - .llvm_name = "ccdp", .subfeatures = &[_]*const Feature { }, }; @@ -109,7 +96,6 @@ pub const feature_ccdp = Feature{ pub const feature_callSavedX8 = Feature{ .name = "call-saved-x8", .description = "Make X8 callee saved.", - .llvm_name = "call-saved-x8", .subfeatures = &[_]*const Feature { }, }; @@ -117,7 +103,6 @@ pub const feature_callSavedX8 = Feature{ pub const feature_callSavedX9 = Feature{ .name = "call-saved-x9", .description = "Make X9 callee saved.", - .llvm_name = "call-saved-x9", .subfeatures = &[_]*const Feature { }, }; @@ -125,7 +110,6 @@ pub const feature_callSavedX9 = Feature{ pub const feature_callSavedX10 = Feature{ .name = "call-saved-x10", .description = "Make X10 callee saved.", - .llvm_name = "call-saved-x10", .subfeatures = &[_]*const Feature { }, }; @@ -133,7 +117,6 @@ pub const feature_callSavedX10 = Feature{ pub const feature_callSavedX11 = Feature{ .name = "call-saved-x11", .description = "Make X11 callee saved.", - .llvm_name = "call-saved-x11", .subfeatures = &[_]*const Feature { }, }; @@ -141,7 +124,6 @@ pub const feature_callSavedX11 = Feature{ pub const feature_callSavedX12 = Feature{ .name = "call-saved-x12", .description = "Make X12 callee saved.", - .llvm_name = "call-saved-x12", .subfeatures = &[_]*const Feature { }, }; @@ -149,7 +131,6 @@ pub const feature_callSavedX12 = Feature{ pub const feature_callSavedX13 = Feature{ .name = "call-saved-x13", .description = "Make X13 callee saved.", - .llvm_name = "call-saved-x13", .subfeatures = &[_]*const Feature { }, }; @@ -157,7 +138,6 @@ pub const feature_callSavedX13 = Feature{ pub const feature_callSavedX14 = Feature{ .name = "call-saved-x14", .description = "Make X14 callee saved.", - .llvm_name = "call-saved-x14", .subfeatures = &[_]*const Feature { }, }; @@ -165,7 +145,6 @@ pub const feature_callSavedX14 = Feature{ pub const feature_callSavedX15 = Feature{ .name = "call-saved-x15", .description = "Make X15 callee saved.", - .llvm_name = "call-saved-x15", .subfeatures = &[_]*const Feature { }, }; @@ -173,7 +152,6 @@ pub const feature_callSavedX15 = Feature{ pub const feature_callSavedX18 = Feature{ .name = "call-saved-x18", .description = "Make X18 callee saved.", - .llvm_name = "call-saved-x18", .subfeatures = &[_]*const Feature { }, }; @@ -181,7 +159,6 @@ pub const feature_callSavedX18 = Feature{ pub const feature_complxnum = Feature{ .name = "complxnum", .description = "Enable v8.3-A Floating-point complex number support", - .llvm_name = "complxnum", .subfeatures = &[_]*const Feature { &feature_fpArmv8, }, @@ -190,7 +167,6 @@ pub const feature_complxnum = Feature{ pub const feature_crypto = Feature{ .name = "crypto", .description = "Enable cryptographic instructions", - .llvm_name = "crypto", .subfeatures = &[_]*const Feature { &feature_fpArmv8, }, @@ -199,7 +175,6 @@ pub const feature_crypto = Feature{ pub const feature_customCheapAsMove = Feature{ .name = "custom-cheap-as-move", .description = "Use custom handling of cheap instructions", - .llvm_name = "custom-cheap-as-move", .subfeatures = &[_]*const Feature { }, }; @@ -207,7 +182,6 @@ pub const feature_customCheapAsMove = Feature{ pub const feature_dit = Feature{ .name = "dit", .description = "Enable v8.4-A Data Independent Timing instructions", - .llvm_name = "dit", .subfeatures = &[_]*const Feature { }, }; @@ -215,7 +189,6 @@ pub const feature_dit = Feature{ pub const feature_disableLatencySchedHeuristic = Feature{ .name = "disable-latency-sched-heuristic", .description = "Disable latency scheduling heuristic", - .llvm_name = "disable-latency-sched-heuristic", .subfeatures = &[_]*const Feature { }, }; @@ -223,7 +196,6 @@ pub const feature_disableLatencySchedHeuristic = Feature{ pub const feature_dotprod = Feature{ .name = "dotprod", .description = "Enable dot product support", - .llvm_name = "dotprod", .subfeatures = &[_]*const Feature { }, }; @@ -231,7 +203,6 @@ pub const feature_dotprod = Feature{ pub const feature_ete = Feature{ .name = "ete", .description = "Enable Embedded Trace Extension", - .llvm_name = "ete", .subfeatures = &[_]*const Feature { &feature_trbe, }, @@ -240,7 +211,6 @@ pub const feature_ete = Feature{ pub const feature_exynosCheapAsMove = Feature{ .name = "exynos-cheap-as-move", .description = "Use Exynos specific handling of cheap instructions", - .llvm_name = "exynos-cheap-as-move", .subfeatures = &[_]*const Feature { &feature_customCheapAsMove, }, @@ -249,7 +219,6 @@ pub const feature_exynosCheapAsMove = Feature{ pub const feature_fmi = Feature{ .name = "fmi", .description = "Enable v8.4-A Flag Manipulation Instructions", - .llvm_name = "fmi", .subfeatures = &[_]*const Feature { }, }; @@ -257,7 +226,6 @@ pub const feature_fmi = Feature{ pub const feature_fp16fml = Feature{ .name = "fp16fml", .description = "Enable FP16 FML instructions", - .llvm_name = "fp16fml", .subfeatures = &[_]*const Feature { &feature_fpArmv8, }, @@ -266,7 +234,6 @@ pub const feature_fp16fml = Feature{ pub const feature_fpArmv8 = Feature{ .name = "fp-armv8", .description = "Enable ARMv8 FP", - .llvm_name = "fp-armv8", .subfeatures = &[_]*const Feature { }, }; @@ -274,7 +241,6 @@ pub const feature_fpArmv8 = Feature{ pub const feature_fptoint = Feature{ .name = "fptoint", .description = "Enable FRInt[32|64][Z|X] instructions that round a floating-point number to an integer (in FP format) forcing it to fit into a 32- or 64-bit int", - .llvm_name = "fptoint", .subfeatures = &[_]*const Feature { }, }; @@ -282,7 +248,6 @@ pub const feature_fptoint = Feature{ pub const feature_force32bitJumpTables = Feature{ .name = "force-32bit-jump-tables", .description = "Force jump table entries to be 32-bits wide except at MinSize", - .llvm_name = "force-32bit-jump-tables", .subfeatures = &[_]*const Feature { }, }; @@ -290,7 +255,6 @@ pub const feature_force32bitJumpTables = Feature{ pub const feature_fullfp16 = Feature{ .name = "fullfp16", .description = "Full FP16", - .llvm_name = "fullfp16", .subfeatures = &[_]*const Feature { &feature_fpArmv8, }, @@ -299,7 +263,6 @@ pub const feature_fullfp16 = Feature{ pub const feature_fuseAes = Feature{ .name = "fuse-aes", .description = "CPU fuses AES crypto operations", - .llvm_name = "fuse-aes", .subfeatures = &[_]*const Feature { }, }; @@ -307,7 +270,6 @@ pub const feature_fuseAes = Feature{ pub const feature_fuseAddress = Feature{ .name = "fuse-address", .description = "CPU fuses address generation and memory operations", - .llvm_name = "fuse-address", .subfeatures = &[_]*const Feature { }, }; @@ -315,7 +277,6 @@ pub const feature_fuseAddress = Feature{ pub const feature_fuseArithLogic = Feature{ .name = "fuse-arith-logic", .description = "CPU fuses arithmetic and logic operations", - .llvm_name = "fuse-arith-logic", .subfeatures = &[_]*const Feature { }, }; @@ -323,7 +284,6 @@ pub const feature_fuseArithLogic = Feature{ pub const feature_fuseCsel = Feature{ .name = "fuse-csel", .description = "CPU fuses conditional select operations", - .llvm_name = "fuse-csel", .subfeatures = &[_]*const Feature { }, }; @@ -331,7 +291,6 @@ pub const feature_fuseCsel = Feature{ pub const feature_fuseCryptoEor = Feature{ .name = "fuse-crypto-eor", .description = "CPU fuses AES/PMULL and EOR operations", - .llvm_name = "fuse-crypto-eor", .subfeatures = &[_]*const Feature { }, }; @@ -339,7 +298,6 @@ pub const feature_fuseCryptoEor = Feature{ pub const feature_fuseLiterals = Feature{ .name = "fuse-literals", .description = "CPU fuses literal generation operations", - .llvm_name = "fuse-literals", .subfeatures = &[_]*const Feature { }, }; @@ -347,7 +305,6 @@ pub const feature_fuseLiterals = Feature{ pub const feature_jsconv = Feature{ .name = "jsconv", .description = "Enable v8.3-A JavaScript FP conversion enchancement", - .llvm_name = "jsconv", .subfeatures = &[_]*const Feature { &feature_fpArmv8, }, @@ -356,7 +313,6 @@ pub const feature_jsconv = Feature{ pub const feature_lor = Feature{ .name = "lor", .description = "Enables ARM v8.1 Limited Ordering Regions extension", - .llvm_name = "lor", .subfeatures = &[_]*const Feature { }, }; @@ -364,7 +320,6 @@ pub const feature_lor = Feature{ pub const feature_lse = Feature{ .name = "lse", .description = "Enable ARMv8.1 Large System Extension (LSE) atomic instructions", - .llvm_name = "lse", .subfeatures = &[_]*const Feature { }, }; @@ -372,7 +327,6 @@ pub const feature_lse = Feature{ pub const feature_lslFast = Feature{ .name = "lsl-fast", .description = "CPU has a fastpath logical shift of up to 3 places", - .llvm_name = "lsl-fast", .subfeatures = &[_]*const Feature { }, }; @@ -380,7 +334,6 @@ pub const feature_lslFast = Feature{ pub const feature_mpam = Feature{ .name = "mpam", .description = "Enable v8.4-A Memory system Partitioning and Monitoring extension", - .llvm_name = "mpam", .subfeatures = &[_]*const Feature { }, }; @@ -388,7 +341,6 @@ pub const feature_mpam = Feature{ pub const feature_mte = Feature{ .name = "mte", .description = "Enable Memory Tagging Extension", - .llvm_name = "mte", .subfeatures = &[_]*const Feature { }, }; @@ -396,7 +348,6 @@ pub const feature_mte = Feature{ pub const feature_neon = Feature{ .name = "neon", .description = "Enable Advanced SIMD instructions", - .llvm_name = "neon", .subfeatures = &[_]*const Feature { &feature_fpArmv8, }, @@ -405,7 +356,6 @@ pub const feature_neon = Feature{ pub const feature_nv = Feature{ .name = "nv", .description = "Enable v8.4-A Nested Virtualization Enchancement", - .llvm_name = "nv", .subfeatures = &[_]*const Feature { }, }; @@ -413,7 +363,6 @@ pub const feature_nv = Feature{ pub const feature_noNegImmediates = Feature{ .name = "no-neg-immediates", .description = "Convert immediates and instructions to their negated or complemented equivalent when the immediate does not fit in the encoding.", - .llvm_name = "no-neg-immediates", .subfeatures = &[_]*const Feature { }, }; @@ -421,7 +370,6 @@ pub const feature_noNegImmediates = Feature{ pub const feature_pa = Feature{ .name = "pa", .description = "Enable v8.3-A Pointer Authentication enchancement", - .llvm_name = "pa", .subfeatures = &[_]*const Feature { }, }; @@ -429,7 +377,6 @@ pub const feature_pa = Feature{ pub const feature_pan = Feature{ .name = "pan", .description = "Enables ARM v8.1 Privileged Access-Never extension", - .llvm_name = "pan", .subfeatures = &[_]*const Feature { }, }; @@ -437,7 +384,6 @@ pub const feature_pan = Feature{ pub const feature_panRwv = Feature{ .name = "pan-rwv", .description = "Enable v8.2 PAN s1e1R and s1e1W Variants", - .llvm_name = "pan-rwv", .subfeatures = &[_]*const Feature { &feature_pan, }, @@ -446,7 +392,6 @@ pub const feature_panRwv = Feature{ pub const feature_perfmon = Feature{ .name = "perfmon", .description = "Enable ARMv8 PMUv3 Performance Monitors extension", - .llvm_name = "perfmon", .subfeatures = &[_]*const Feature { }, }; @@ -454,7 +399,6 @@ pub const feature_perfmon = Feature{ pub const feature_usePostraScheduler = Feature{ .name = "use-postra-scheduler", .description = "Schedule again after register allocation", - .llvm_name = "use-postra-scheduler", .subfeatures = &[_]*const Feature { }, }; @@ -462,7 +406,6 @@ pub const feature_usePostraScheduler = Feature{ pub const feature_predres = Feature{ .name = "predres", .description = "Enable v8.5a execution and data prediction invalidation instructions", - .llvm_name = "predres", .subfeatures = &[_]*const Feature { }, }; @@ -470,7 +413,6 @@ pub const feature_predres = Feature{ pub const feature_predictableSelectExpensive = Feature{ .name = "predictable-select-expensive", .description = "Prefer likely predicted branches over selects", - .llvm_name = "predictable-select-expensive", .subfeatures = &[_]*const Feature { }, }; @@ -478,7 +420,6 @@ pub const feature_predictableSelectExpensive = Feature{ pub const feature_uaops = Feature{ .name = "uaops", .description = "Enable v8.2 UAO PState", - .llvm_name = "uaops", .subfeatures = &[_]*const Feature { }, }; @@ -486,7 +427,6 @@ pub const feature_uaops = Feature{ pub const feature_ras = Feature{ .name = "ras", .description = "Enable ARMv8 Reliability, Availability and Serviceability Extensions", - .llvm_name = "ras", .subfeatures = &[_]*const Feature { }, }; @@ -494,7 +434,6 @@ pub const feature_ras = Feature{ pub const feature_rasv8_4 = Feature{ .name = "rasv8_4", .description = "Enable v8.4-A Reliability, Availability and Serviceability extension", - .llvm_name = "rasv8_4", .subfeatures = &[_]*const Feature { &feature_ras, }, @@ -503,7 +442,6 @@ pub const feature_rasv8_4 = Feature{ pub const feature_rcpc = Feature{ .name = "rcpc", .description = "Enable support for RCPC extension", - .llvm_name = "rcpc", .subfeatures = &[_]*const Feature { }, }; @@ -511,7 +449,6 @@ pub const feature_rcpc = Feature{ pub const feature_rcpcImmo = Feature{ .name = "rcpc-immo", .description = "Enable v8.4-A RCPC instructions with Immediate Offsets", - .llvm_name = "rcpc-immo", .subfeatures = &[_]*const Feature { &feature_rcpc, }, @@ -520,7 +457,6 @@ pub const feature_rcpcImmo = Feature{ pub const feature_rdm = Feature{ .name = "rdm", .description = "Enable ARMv8.1 Rounding Double Multiply Add/Subtract instructions", - .llvm_name = "rdm", .subfeatures = &[_]*const Feature { }, }; @@ -528,7 +464,6 @@ pub const feature_rdm = Feature{ pub const feature_rand = Feature{ .name = "rand", .description = "Enable Random Number generation instructions", - .llvm_name = "rand", .subfeatures = &[_]*const Feature { }, }; @@ -536,7 +471,6 @@ pub const feature_rand = Feature{ pub const feature_reserveX1 = Feature{ .name = "reserve-x1", .description = "Reserve X1, making it unavailable as a GPR", - .llvm_name = "reserve-x1", .subfeatures = &[_]*const Feature { }, }; @@ -544,7 +478,6 @@ pub const feature_reserveX1 = Feature{ pub const feature_reserveX2 = Feature{ .name = "reserve-x2", .description = "Reserve X2, making it unavailable as a GPR", - .llvm_name = "reserve-x2", .subfeatures = &[_]*const Feature { }, }; @@ -552,7 +485,6 @@ pub const feature_reserveX2 = Feature{ pub const feature_reserveX3 = Feature{ .name = "reserve-x3", .description = "Reserve X3, making it unavailable as a GPR", - .llvm_name = "reserve-x3", .subfeatures = &[_]*const Feature { }, }; @@ -560,7 +492,6 @@ pub const feature_reserveX3 = Feature{ pub const feature_reserveX4 = Feature{ .name = "reserve-x4", .description = "Reserve X4, making it unavailable as a GPR", - .llvm_name = "reserve-x4", .subfeatures = &[_]*const Feature { }, }; @@ -568,7 +499,6 @@ pub const feature_reserveX4 = Feature{ pub const feature_reserveX5 = Feature{ .name = "reserve-x5", .description = "Reserve X5, making it unavailable as a GPR", - .llvm_name = "reserve-x5", .subfeatures = &[_]*const Feature { }, }; @@ -576,7 +506,6 @@ pub const feature_reserveX5 = Feature{ pub const feature_reserveX6 = Feature{ .name = "reserve-x6", .description = "Reserve X6, making it unavailable as a GPR", - .llvm_name = "reserve-x6", .subfeatures = &[_]*const Feature { }, }; @@ -584,7 +513,6 @@ pub const feature_reserveX6 = Feature{ pub const feature_reserveX7 = Feature{ .name = "reserve-x7", .description = "Reserve X7, making it unavailable as a GPR", - .llvm_name = "reserve-x7", .subfeatures = &[_]*const Feature { }, }; @@ -592,7 +520,6 @@ pub const feature_reserveX7 = Feature{ pub const feature_reserveX9 = Feature{ .name = "reserve-x9", .description = "Reserve X9, making it unavailable as a GPR", - .llvm_name = "reserve-x9", .subfeatures = &[_]*const Feature { }, }; @@ -600,7 +527,6 @@ pub const feature_reserveX9 = Feature{ pub const feature_reserveX10 = Feature{ .name = "reserve-x10", .description = "Reserve X10, making it unavailable as a GPR", - .llvm_name = "reserve-x10", .subfeatures = &[_]*const Feature { }, }; @@ -608,7 +534,6 @@ pub const feature_reserveX10 = Feature{ pub const feature_reserveX11 = Feature{ .name = "reserve-x11", .description = "Reserve X11, making it unavailable as a GPR", - .llvm_name = "reserve-x11", .subfeatures = &[_]*const Feature { }, }; @@ -616,7 +541,6 @@ pub const feature_reserveX11 = Feature{ pub const feature_reserveX12 = Feature{ .name = "reserve-x12", .description = "Reserve X12, making it unavailable as a GPR", - .llvm_name = "reserve-x12", .subfeatures = &[_]*const Feature { }, }; @@ -624,7 +548,6 @@ pub const feature_reserveX12 = Feature{ pub const feature_reserveX13 = Feature{ .name = "reserve-x13", .description = "Reserve X13, making it unavailable as a GPR", - .llvm_name = "reserve-x13", .subfeatures = &[_]*const Feature { }, }; @@ -632,7 +555,6 @@ pub const feature_reserveX13 = Feature{ pub const feature_reserveX14 = Feature{ .name = "reserve-x14", .description = "Reserve X14, making it unavailable as a GPR", - .llvm_name = "reserve-x14", .subfeatures = &[_]*const Feature { }, }; @@ -640,7 +562,6 @@ pub const feature_reserveX14 = Feature{ pub const feature_reserveX15 = Feature{ .name = "reserve-x15", .description = "Reserve X15, making it unavailable as a GPR", - .llvm_name = "reserve-x15", .subfeatures = &[_]*const Feature { }, }; @@ -648,7 +569,6 @@ pub const feature_reserveX15 = Feature{ pub const feature_reserveX18 = Feature{ .name = "reserve-x18", .description = "Reserve X18, making it unavailable as a GPR", - .llvm_name = "reserve-x18", .subfeatures = &[_]*const Feature { }, }; @@ -656,7 +576,6 @@ pub const feature_reserveX18 = Feature{ pub const feature_reserveX20 = Feature{ .name = "reserve-x20", .description = "Reserve X20, making it unavailable as a GPR", - .llvm_name = "reserve-x20", .subfeatures = &[_]*const Feature { }, }; @@ -664,7 +583,6 @@ pub const feature_reserveX20 = Feature{ pub const feature_reserveX21 = Feature{ .name = "reserve-x21", .description = "Reserve X21, making it unavailable as a GPR", - .llvm_name = "reserve-x21", .subfeatures = &[_]*const Feature { }, }; @@ -672,7 +590,6 @@ pub const feature_reserveX21 = Feature{ pub const feature_reserveX22 = Feature{ .name = "reserve-x22", .description = "Reserve X22, making it unavailable as a GPR", - .llvm_name = "reserve-x22", .subfeatures = &[_]*const Feature { }, }; @@ -680,7 +597,6 @@ pub const feature_reserveX22 = Feature{ pub const feature_reserveX23 = Feature{ .name = "reserve-x23", .description = "Reserve X23, making it unavailable as a GPR", - .llvm_name = "reserve-x23", .subfeatures = &[_]*const Feature { }, }; @@ -688,7 +604,6 @@ pub const feature_reserveX23 = Feature{ pub const feature_reserveX24 = Feature{ .name = "reserve-x24", .description = "Reserve X24, making it unavailable as a GPR", - .llvm_name = "reserve-x24", .subfeatures = &[_]*const Feature { }, }; @@ -696,7 +611,6 @@ pub const feature_reserveX24 = Feature{ pub const feature_reserveX25 = Feature{ .name = "reserve-x25", .description = "Reserve X25, making it unavailable as a GPR", - .llvm_name = "reserve-x25", .subfeatures = &[_]*const Feature { }, }; @@ -704,7 +618,6 @@ pub const feature_reserveX25 = Feature{ pub const feature_reserveX26 = Feature{ .name = "reserve-x26", .description = "Reserve X26, making it unavailable as a GPR", - .llvm_name = "reserve-x26", .subfeatures = &[_]*const Feature { }, }; @@ -712,7 +625,6 @@ pub const feature_reserveX26 = Feature{ pub const feature_reserveX27 = Feature{ .name = "reserve-x27", .description = "Reserve X27, making it unavailable as a GPR", - .llvm_name = "reserve-x27", .subfeatures = &[_]*const Feature { }, }; @@ -720,7 +632,6 @@ pub const feature_reserveX27 = Feature{ pub const feature_reserveX28 = Feature{ .name = "reserve-x28", .description = "Reserve X28, making it unavailable as a GPR", - .llvm_name = "reserve-x28", .subfeatures = &[_]*const Feature { }, }; @@ -728,7 +639,6 @@ pub const feature_reserveX28 = Feature{ pub const feature_sb = Feature{ .name = "sb", .description = "Enable v8.5 Speculation Barrier", - .llvm_name = "sb", .subfeatures = &[_]*const Feature { }, }; @@ -736,7 +646,6 @@ pub const feature_sb = Feature{ pub const feature_sel2 = Feature{ .name = "sel2", .description = "Enable v8.4-A Secure Exception Level 2 extension", - .llvm_name = "sel2", .subfeatures = &[_]*const Feature { }, }; @@ -744,7 +653,6 @@ pub const feature_sel2 = Feature{ pub const feature_sha2 = Feature{ .name = "sha2", .description = "Enable SHA1 and SHA256 support", - .llvm_name = "sha2", .subfeatures = &[_]*const Feature { &feature_fpArmv8, }, @@ -753,7 +661,6 @@ pub const feature_sha2 = Feature{ pub const feature_sha3 = Feature{ .name = "sha3", .description = "Enable SHA512 and SHA3 support", - .llvm_name = "sha3", .subfeatures = &[_]*const Feature { &feature_fpArmv8, }, @@ -762,7 +669,6 @@ pub const feature_sha3 = Feature{ pub const feature_sm4 = Feature{ .name = "sm4", .description = "Enable SM3 and SM4 support", - .llvm_name = "sm4", .subfeatures = &[_]*const Feature { &feature_fpArmv8, }, @@ -771,7 +677,6 @@ pub const feature_sm4 = Feature{ pub const feature_spe = Feature{ .name = "spe", .description = "Enable Statistical Profiling extension", - .llvm_name = "spe", .subfeatures = &[_]*const Feature { }, }; @@ -779,7 +684,6 @@ pub const feature_spe = Feature{ pub const feature_ssbs = Feature{ .name = "ssbs", .description = "Enable Speculative Store Bypass Safe bit", - .llvm_name = "ssbs", .subfeatures = &[_]*const Feature { }, }; @@ -787,7 +691,6 @@ pub const feature_ssbs = Feature{ pub const feature_sve = Feature{ .name = "sve", .description = "Enable Scalable Vector Extension (SVE) instructions", - .llvm_name = "sve", .subfeatures = &[_]*const Feature { }, }; @@ -795,7 +698,6 @@ pub const feature_sve = Feature{ pub const feature_sve2 = Feature{ .name = "sve2", .description = "Enable Scalable Vector Extension 2 (SVE2) instructions", - .llvm_name = "sve2", .subfeatures = &[_]*const Feature { &feature_sve, }, @@ -804,7 +706,6 @@ pub const feature_sve2 = Feature{ pub const feature_sve2Aes = Feature{ .name = "sve2-aes", .description = "Enable AES SVE2 instructions", - .llvm_name = "sve2-aes", .subfeatures = &[_]*const Feature { &feature_fpArmv8, &feature_sve, @@ -814,7 +715,6 @@ pub const feature_sve2Aes = Feature{ pub const feature_sve2Bitperm = Feature{ .name = "sve2-bitperm", .description = "Enable bit permutation SVE2 instructions", - .llvm_name = "sve2-bitperm", .subfeatures = &[_]*const Feature { &feature_sve, }, @@ -823,7 +723,6 @@ pub const feature_sve2Bitperm = Feature{ pub const feature_sve2Sha3 = Feature{ .name = "sve2-sha3", .description = "Enable SHA3 SVE2 instructions", - .llvm_name = "sve2-sha3", .subfeatures = &[_]*const Feature { &feature_fpArmv8, &feature_sve, @@ -833,7 +732,6 @@ pub const feature_sve2Sha3 = Feature{ pub const feature_sve2Sm4 = Feature{ .name = "sve2-sm4", .description = "Enable SM4 SVE2 instructions", - .llvm_name = "sve2-sm4", .subfeatures = &[_]*const Feature { &feature_fpArmv8, &feature_sve, @@ -843,7 +741,6 @@ pub const feature_sve2Sm4 = Feature{ pub const feature_slowMisaligned128store = Feature{ .name = "slow-misaligned-128store", .description = "Misaligned 128 bit stores are slow", - .llvm_name = "slow-misaligned-128store", .subfeatures = &[_]*const Feature { }, }; @@ -851,7 +748,6 @@ pub const feature_slowMisaligned128store = Feature{ pub const feature_slowPaired128 = Feature{ .name = "slow-paired-128", .description = "Paired 128 bit loads and stores are slow", - .llvm_name = "slow-paired-128", .subfeatures = &[_]*const Feature { }, }; @@ -859,7 +755,6 @@ pub const feature_slowPaired128 = Feature{ pub const feature_slowStrqroStore = Feature{ .name = "slow-strqro-store", .description = "STR of Q register with register offset is slow", - .llvm_name = "slow-strqro-store", .subfeatures = &[_]*const Feature { }, }; @@ -867,7 +762,6 @@ pub const feature_slowStrqroStore = Feature{ pub const feature_specrestrict = Feature{ .name = "specrestrict", .description = "Enable architectural speculation restriction", - .llvm_name = "specrestrict", .subfeatures = &[_]*const Feature { }, }; @@ -875,7 +769,6 @@ pub const feature_specrestrict = Feature{ pub const feature_strictAlign = Feature{ .name = "strict-align", .description = "Disallow all unaligned memory access", - .llvm_name = "strict-align", .subfeatures = &[_]*const Feature { }, }; @@ -883,7 +776,6 @@ pub const feature_strictAlign = Feature{ pub const feature_tlbRmi = Feature{ .name = "tlb-rmi", .description = "Enable v8.4-A TLB Range and Maintenance Instructions", - .llvm_name = "tlb-rmi", .subfeatures = &[_]*const Feature { }, }; @@ -891,7 +783,6 @@ pub const feature_tlbRmi = Feature{ pub const feature_tme = Feature{ .name = "tme", .description = "Enable Transactional Memory Extension", - .llvm_name = "tme", .subfeatures = &[_]*const Feature { }, }; @@ -899,7 +790,6 @@ pub const feature_tme = Feature{ pub const feature_tracev84 = Feature{ .name = "tracev8.4", .description = "Enable v8.4-A Trace extension", - .llvm_name = "tracev8.4", .subfeatures = &[_]*const Feature { }, }; @@ -907,7 +797,6 @@ pub const feature_tracev84 = Feature{ pub const feature_trbe = Feature{ .name = "trbe", .description = "Enable Trace Buffer Extension", - .llvm_name = "trbe", .subfeatures = &[_]*const Feature { }, }; @@ -915,7 +804,6 @@ pub const feature_trbe = Feature{ pub const feature_taggedGlobals = Feature{ .name = "tagged-globals", .description = "Use an instruction sequence for taking the address of a global that allows a memory tag in the upper address bits", - .llvm_name = "tagged-globals", .subfeatures = &[_]*const Feature { }, }; @@ -923,7 +811,6 @@ pub const feature_taggedGlobals = Feature{ pub const feature_useAa = Feature{ .name = "use-aa", .description = "Use alias analysis during codegen", - .llvm_name = "use-aa", .subfeatures = &[_]*const Feature { }, }; @@ -931,7 +818,6 @@ pub const feature_useAa = Feature{ pub const feature_tpidrEl1 = Feature{ .name = "tpidr-el1", .description = "Permit use of TPIDR_EL1 for the TLS base", - .llvm_name = "tpidr-el1", .subfeatures = &[_]*const Feature { }, }; @@ -939,7 +825,6 @@ pub const feature_tpidrEl1 = Feature{ pub const feature_tpidrEl2 = Feature{ .name = "tpidr-el2", .description = "Permit use of TPIDR_EL2 for the TLS base", - .llvm_name = "tpidr-el2", .subfeatures = &[_]*const Feature { }, }; @@ -947,7 +832,6 @@ pub const feature_tpidrEl2 = Feature{ pub const feature_tpidrEl3 = Feature{ .name = "tpidr-el3", .description = "Permit use of TPIDR_EL3 for the TLS base", - .llvm_name = "tpidr-el3", .subfeatures = &[_]*const Feature { }, }; @@ -955,7 +839,6 @@ pub const feature_tpidrEl3 = Feature{ pub const feature_useReciprocalSquareRoot = Feature{ .name = "use-reciprocal-square-root", .description = "Use the reciprocal square root approximation", - .llvm_name = "use-reciprocal-square-root", .subfeatures = &[_]*const Feature { }, }; @@ -963,7 +846,6 @@ pub const feature_useReciprocalSquareRoot = Feature{ pub const feature_vh = Feature{ .name = "vh", .description = "Enables ARM v8.1 Virtual Host extension", - .llvm_name = "vh", .subfeatures = &[_]*const Feature { }, }; @@ -971,7 +853,6 @@ pub const feature_vh = Feature{ pub const feature_zcm = Feature{ .name = "zcm", .description = "Has zero-cycle register moves", - .llvm_name = "zcm", .subfeatures = &[_]*const Feature { }, }; @@ -979,7 +860,6 @@ pub const feature_zcm = Feature{ pub const feature_zcz = Feature{ .name = "zcz", .description = "Has zero-cycle zeroing instructions", - .llvm_name = "zcz", .subfeatures = &[_]*const Feature { &feature_zczGp, &feature_zczFp, @@ -989,7 +869,6 @@ pub const feature_zcz = Feature{ pub const feature_zczFp = Feature{ .name = "zcz-fp", .description = "Has zero-cycle zeroing instructions for FP registers", - .llvm_name = "zcz-fp", .subfeatures = &[_]*const Feature { }, }; @@ -997,7 +876,6 @@ pub const feature_zczFp = Feature{ pub const feature_zczFpWorkaround = Feature{ .name = "zcz-fp-workaround", .description = "The zero-cycle floating-point zeroing instruction has a bug", - .llvm_name = "zcz-fp-workaround", .subfeatures = &[_]*const Feature { }, }; @@ -1005,7 +883,6 @@ pub const feature_zczFpWorkaround = Feature{ pub const feature_zczGp = Feature{ .name = "zcz-gp", .description = "Has zero-cycle zeroing instructions for generic registers", - .llvm_name = "zcz-gp", .subfeatures = &[_]*const Feature { }, }; @@ -1013,127 +890,121 @@ pub const feature_zczGp = Feature{ pub const feature_v81a = Feature{ .name = "v8.1a", .description = "Support ARM v8.1a instructions", - .llvm_name = "v8.1a", .subfeatures = &[_]*const Feature { - &feature_rdm, - &feature_lse, &feature_lor, - &feature_crc, &feature_pan, + &feature_lse, + &feature_rdm, &feature_vh, + &feature_crc, }, }; pub const feature_v82a = Feature{ .name = "v8.2a", .description = "Support ARM v8.2a instructions", - .llvm_name = "v8.2a", .subfeatures = &[_]*const Feature { - &feature_rdm, &feature_ccpp, + &feature_lor, + &feature_pan, &feature_lse, + &feature_rdm, + &feature_vh, &feature_ras, - &feature_lor, &feature_crc, - &feature_pan, &feature_uaops, - &feature_vh, }, }; pub const feature_v83a = Feature{ .name = "v8.3a", .description = "Support ARM v8.3a instructions", - .llvm_name = "v8.3a", .subfeatures = &[_]*const Feature { - &feature_rdm, - &feature_pa, &feature_ccpp, - &feature_uaops, - &feature_lse, - &feature_fpArmv8, - &feature_ras, &feature_lor, &feature_pan, - &feature_crc, + &feature_lse, + &feature_rdm, + &feature_ras, + &feature_vh, + &feature_fpArmv8, + &feature_uaops, &feature_rcpc, &feature_ccidx, - &feature_vh, + &feature_crc, + &feature_pa, }, }; pub const feature_v84a = Feature{ .name = "v8.4a", .description = "Support ARM v8.4a instructions", - .llvm_name = "v8.4a", .subfeatures = &[_]*const Feature { - &feature_am, - &feature_nv, &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_ccidx, - &feature_vh, - &feature_tracev84, - &feature_rdm, - &feature_fpArmv8, + &feature_sel2, + &feature_nv, + &feature_am, &feature_dit, - &feature_mpam, + &feature_vh, &feature_ras, - &feature_tlbRmi, - &feature_fmi, - &feature_crc, &feature_pa, - &feature_sel2, - &feature_lor, - &feature_pan, }, }; pub const feature_v85a = Feature{ .name = "v8.5a", .description = "Support ARM v8.5a instructions", - .llvm_name = "v8.5a", .subfeatures = &[_]*const Feature { - &feature_am, - &feature_nv, - &feature_specrestrict, &feature_ccpp, + &feature_lor, &feature_dotprod, - &feature_lse, - &feature_ccdp, + &feature_fpArmv8, + &feature_ssbs, + &feature_crc, + &feature_fmi, + &feature_bti, + &feature_tracev84, + &feature_tlbRmi, + &feature_fptoint, + &feature_rdm, &feature_sb, - &feature_rcpc, &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_tracev84, - &feature_rdm, - &feature_ssbs, - &feature_fpArmv8, - &feature_dit, - &feature_mpam, &feature_ras, - &feature_tlbRmi, - &feature_fmi, - &feature_crc, - &feature_predres, + &feature_ccdp, &feature_pa, - &feature_sel2, - &feature_lor, - &feature_fptoint, - &feature_bti, - &feature_pan, }, }; pub const feature_a35 = Feature{ .name = "a35", .description = "Cortex-A35 ARM processors", - .llvm_name = "a35", .subfeatures = &[_]*const Feature { &feature_fpArmv8, &feature_perfmon, @@ -1144,15 +1015,14 @@ pub const feature_a35 = Feature{ pub const feature_a53 = Feature{ .name = "a53", .description = "Cortex-A53 ARM processors", - .llvm_name = "a53", .subfeatures = &[_]*const Feature { - &feature_usePostraScheduler, - &feature_customCheapAsMove, - &feature_fuseAes, + &feature_useAa, &feature_balanceFpOps, - &feature_fpArmv8, + &feature_fuseAes, + &feature_usePostraScheduler, &feature_perfmon, - &feature_useAa, + &feature_fpArmv8, + &feature_customCheapAsMove, &feature_crc, }, }; @@ -1160,38 +1030,36 @@ pub const feature_a53 = Feature{ pub const feature_a55 = Feature{ .name = "a55", .description = "Cortex-A55 ARM processors", - .llvm_name = "a55", .subfeatures = &[_]*const Feature { - &feature_rdm, &feature_fuseAes, &feature_ccpp, - &feature_lse, - &feature_fpArmv8, - &feature_perfmon, - &feature_ras, - &feature_dotprod, &feature_lor, + &feature_dotprod, + &feature_perfmon, &feature_pan, - &feature_crc, - &feature_rcpc, - &feature_uaops, + &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", - .llvm_name = "a57", .subfeatures = &[_]*const Feature { - &feature_usePostraScheduler, - &feature_customCheapAsMove, - &feature_fuseAes, + &feature_fuseLiterals, &feature_balanceFpOps, - &feature_fpArmv8, - &feature_perfmon, &feature_predictableSelectExpensive, - &feature_fuseLiterals, + &feature_fuseAes, + &feature_usePostraScheduler, + &feature_perfmon, + &feature_fpArmv8, + &feature_customCheapAsMove, &feature_crc, }, }; @@ -1199,352 +1067,335 @@ pub const feature_a57 = Feature{ pub const feature_a65 = Feature{ .name = "a65", .description = "Cortex-A65 ARM processors", - .llvm_name = "a65", .subfeatures = &[_]*const Feature { - &feature_rdm, + &feature_rcpc, &feature_ccpp, - &feature_lse, - &feature_fpArmv8, - &feature_ras, - &feature_dotprod, &feature_lor, + &feature_dotprod, &feature_pan, - &feature_crc, - &feature_rcpc, - &feature_uaops, + &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", - .llvm_name = "a72", .subfeatures = &[_]*const Feature { &feature_fpArmv8, - &feature_perfmon, - &feature_crc, &feature_fuseAes, + &feature_crc, + &feature_perfmon, }, }; pub const feature_a73 = Feature{ .name = "a73", .description = "Cortex-A73 ARM processors", - .llvm_name = "a73", .subfeatures = &[_]*const Feature { &feature_fpArmv8, - &feature_perfmon, - &feature_crc, &feature_fuseAes, + &feature_crc, + &feature_perfmon, }, }; pub const feature_a75 = Feature{ .name = "a75", .description = "Cortex-A75 ARM processors", - .llvm_name = "a75", .subfeatures = &[_]*const Feature { - &feature_rdm, &feature_fuseAes, &feature_ccpp, - &feature_lse, - &feature_fpArmv8, - &feature_perfmon, - &feature_ras, - &feature_dotprod, &feature_lor, + &feature_dotprod, + &feature_perfmon, &feature_pan, - &feature_crc, - &feature_rcpc, - &feature_uaops, + &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", - .llvm_name = "a76", .subfeatures = &[_]*const Feature { - &feature_rdm, &feature_ccpp, - &feature_lse, - &feature_fpArmv8, - &feature_ras, - &feature_dotprod, &feature_lor, + &feature_dotprod, &feature_pan, - &feature_crc, - &feature_rcpc, - &feature_uaops, + &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", - .llvm_name = "cyclone", .subfeatures = &[_]*const Feature { - &feature_zczGp, - &feature_arithBccFusion, - &feature_fuseAes, - &feature_zczFp, &feature_zczFpWorkaround, - &feature_fpArmv8, - &feature_perfmon, - &feature_disableLatencySchedHeuristic, + &feature_fuseAes, &feature_zcm, &feature_arithCbzFusion, - &feature_fuseCryptoEor, + &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", - .llvm_name = "exynosm1", .subfeatures = &[_]*const Feature { + &feature_useReciprocalSquareRoot, + &feature_fuseAes, &feature_usePostraScheduler, &feature_slowMisaligned128store, - &feature_customCheapAsMove, - &feature_fuseAes, - &feature_zczFp, - &feature_fpArmv8, &feature_perfmon, - &feature_slowPaired128, - &feature_useReciprocalSquareRoot, + &feature_fpArmv8, + &feature_customCheapAsMove, &feature_force32bitJumpTables, + &feature_zczFp, &feature_crc, + &feature_slowPaired128, }, }; pub const feature_exynosm2 = Feature{ .name = "exynosm2", .description = "Samsung Exynos-M2 processors", - .llvm_name = "exynosm2", .subfeatures = &[_]*const Feature { + &feature_fuseAes, &feature_usePostraScheduler, &feature_slowMisaligned128store, - &feature_customCheapAsMove, - &feature_fuseAes, - &feature_zczFp, - &feature_fpArmv8, &feature_perfmon, - &feature_slowPaired128, + &feature_fpArmv8, + &feature_customCheapAsMove, &feature_force32bitJumpTables, + &feature_zczFp, &feature_crc, + &feature_slowPaired128, }, }; pub const feature_exynosm3 = Feature{ .name = "exynosm3", .description = "Samsung Exynos-M3 processors", - .llvm_name = "exynosm3", .subfeatures = &[_]*const Feature { - &feature_usePostraScheduler, - &feature_customCheapAsMove, + &feature_fuseLiterals, + &feature_predictableSelectExpensive, &feature_fuseAes, &feature_fuseAddress, - &feature_zczFp, - &feature_fpArmv8, + &feature_fuseCsel, + &feature_usePostraScheduler, &feature_perfmon, - &feature_predictableSelectExpensive, - &feature_fuseLiterals, + &feature_fpArmv8, + &feature_customCheapAsMove, + &feature_lslFast, &feature_force32bitJumpTables, + &feature_zczFp, &feature_crc, - &feature_lslFast, - &feature_fuseCsel, }, }; pub const feature_exynosm4 = Feature{ .name = "exynosm4", .description = "Samsung Exynos-M4 processors", - .llvm_name = "exynosm4", .subfeatures = &[_]*const Feature { + &feature_fuseLiterals, + &feature_fuseAes, &feature_ccpp, - &feature_perfmon, + &feature_lor, &feature_dotprod, - &feature_fuseArithLogic, - &feature_force32bitJumpTables, - &feature_lslFast, - &feature_zczGp, + &feature_fpArmv8, &feature_customCheapAsMove, - &feature_fuseAes, + &feature_lslFast, + &feature_crc, &feature_fuseAddress, - &feature_lse, &feature_arithCbzFusion, - &feature_uaops, + &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_rdm, - &feature_fpArmv8, &feature_ras, - &feature_fuseLiterals, - &feature_crc, - &feature_usePostraScheduler, - &feature_arithBccFusion, &feature_zczFp, - &feature_lor, - &feature_pan, }, }; pub const feature_falkor = Feature{ .name = "falkor", .description = "Qualcomm Falkor processors", - .llvm_name = "falkor", .subfeatures = &[_]*const Feature { - &feature_rdm, + &feature_predictableSelectExpensive, &feature_usePostraScheduler, - &feature_zczGp, + &feature_perfmon, &feature_slowStrqroStore, + &feature_rdm, + &feature_zczGp, + &feature_fpArmv8, &feature_customCheapAsMove, + &feature_lslFast, &feature_zczFp, - &feature_fpArmv8, - &feature_perfmon, - &feature_predictableSelectExpensive, &feature_crc, - &feature_lslFast, }, }; pub const feature_kryo = Feature{ .name = "kryo", .description = "Qualcomm Kryo processors", - .llvm_name = "kryo", .subfeatures = &[_]*const Feature { + &feature_predictableSelectExpensive, &feature_usePostraScheduler, + &feature_perfmon, &feature_zczGp, + &feature_fpArmv8, &feature_customCheapAsMove, + &feature_lslFast, &feature_zczFp, - &feature_fpArmv8, - &feature_perfmon, - &feature_predictableSelectExpensive, &feature_crc, - &feature_lslFast, }, }; pub const feature_neoversee1 = Feature{ .name = "neoversee1", .description = "Neoverse E1 ARM processors", - .llvm_name = "neoversee1", .subfeatures = &[_]*const Feature { - &feature_rdm, &feature_ccpp, - &feature_lse, - &feature_fpArmv8, - &feature_ras, - &feature_dotprod, &feature_lor, + &feature_dotprod, &feature_pan, - &feature_crc, - &feature_rcpc, - &feature_uaops, + &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", - .llvm_name = "neoversen1", .subfeatures = &[_]*const Feature { - &feature_rdm, &feature_ccpp, - &feature_lse, - &feature_fpArmv8, - &feature_ras, - &feature_dotprod, &feature_lor, + &feature_dotprod, &feature_spe, &feature_pan, - &feature_crc, - &feature_rcpc, - &feature_uaops, + &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", - .llvm_name = "saphira", .subfeatures = &[_]*const Feature { - &feature_am, - &feature_nv, &feature_ccpp, - &feature_predictableSelectExpensive, - &feature_perfmon, + &feature_lor, &feature_dotprod, - &feature_spe, + &feature_fpArmv8, + &feature_customCheapAsMove, &feature_lslFast, + &feature_crc, + &feature_fmi, + &feature_predictableSelectExpensive, + &feature_tracev84, + &feature_tlbRmi, + &feature_perfmon, &feature_zczGp, - &feature_customCheapAsMove, + &feature_rdm, + &feature_ccidx, + &feature_mpam, + &feature_pan, &feature_lse, &feature_rcpc, &feature_uaops, - &feature_ccidx, - &feature_vh, - &feature_tracev84, - &feature_rdm, - &feature_fpArmv8, + &feature_sel2, + &feature_usePostraScheduler, + &feature_nv, + &feature_am, + &feature_spe, &feature_dit, - &feature_mpam, + &feature_vh, &feature_ras, - &feature_tlbRmi, - &feature_fmi, - &feature_crc, - &feature_usePostraScheduler, - &feature_pa, &feature_zczFp, - &feature_sel2, - &feature_lor, - &feature_pan, + &feature_pa, }, }; pub const feature_tsv110 = Feature{ .name = "tsv110", .description = "HiSilicon TS-V110 processors", - .llvm_name = "tsv110", .subfeatures = &[_]*const Feature { - &feature_rdm, - &feature_usePostraScheduler, - &feature_customCheapAsMove, &feature_fuseAes, + &feature_usePostraScheduler, &feature_ccpp, - &feature_lse, - &feature_fpArmv8, - &feature_perfmon, - &feature_ras, - &feature_dotprod, &feature_lor, + &feature_dotprod, + &feature_uaops, + &feature_perfmon, &feature_spe, - &feature_crc, &feature_pan, - &feature_uaops, + &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", - .llvm_name = "thunderx", .subfeatures = &[_]*const Feature { - &feature_usePostraScheduler, &feature_predictableSelectExpensive, - &feature_fpArmv8, + &feature_usePostraScheduler, &feature_perfmon, + &feature_fpArmv8, &feature_crc, }, }; @@ -1552,31 +1403,29 @@ pub const feature_thunderx = Feature{ pub const feature_thunderx2t99 = Feature{ .name = "thunderx2t99", .description = "Cavium ThunderX2 processors", - .llvm_name = "thunderx2t99", .subfeatures = &[_]*const Feature { - &feature_rdm, - &feature_usePostraScheduler, - &feature_arithBccFusion, - &feature_lse, - &feature_fpArmv8, &feature_predictableSelectExpensive, + &feature_usePostraScheduler, &feature_lor, - &feature_crc, + &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", - .llvm_name = "thunderxt81", .subfeatures = &[_]*const Feature { - &feature_usePostraScheduler, &feature_predictableSelectExpensive, - &feature_fpArmv8, + &feature_usePostraScheduler, &feature_perfmon, + &feature_fpArmv8, &feature_crc, }, }; @@ -1584,12 +1433,11 @@ pub const feature_thunderxt81 = Feature{ pub const feature_thunderxt83 = Feature{ .name = "thunderxt83", .description = "Cavium ThunderX processors", - .llvm_name = "thunderxt83", .subfeatures = &[_]*const Feature { - &feature_usePostraScheduler, &feature_predictableSelectExpensive, - &feature_fpArmv8, + &feature_usePostraScheduler, &feature_perfmon, + &feature_fpArmv8, &feature_crc, }, }; @@ -1597,12 +1445,11 @@ pub const feature_thunderxt83 = Feature{ pub const feature_thunderxt88 = Feature{ .name = "thunderxt88", .description = "Cavium ThunderX processors", - .llvm_name = "thunderxt88", .subfeatures = &[_]*const Feature { - &feature_usePostraScheduler, &feature_predictableSelectExpensive, - &feature_fpArmv8, + &feature_usePostraScheduler, &feature_perfmon, + &feature_fpArmv8, &feature_crc, }, }; @@ -1767,18 +1614,18 @@ pub const cpu_appleLatest = Cpu{ .name = "apple-latest", .llvm_name = "apple-latest", .subfeatures = &[_]*const Feature { - &feature_zczGp, - &feature_arithBccFusion, - &feature_fuseAes, - &feature_zczFp, &feature_zczFpWorkaround, - &feature_fpArmv8, - &feature_perfmon, - &feature_disableLatencySchedHeuristic, + &feature_fuseAes, &feature_zcm, &feature_arithCbzFusion, - &feature_fuseCryptoEor, + &feature_perfmon, &feature_alternateSextloadCvtF32Pattern, + &feature_arithBccFusion, + &feature_disableLatencySchedHeuristic, + &feature_zczGp, + &feature_fuseCryptoEor, + &feature_fpArmv8, + &feature_zczFp, &feature_cyclone, }, }; @@ -1798,13 +1645,13 @@ pub const cpu_cortexA53 = Cpu{ .name = "cortex-a53", .llvm_name = "cortex-a53", .subfeatures = &[_]*const Feature { - &feature_usePostraScheduler, - &feature_customCheapAsMove, - &feature_fuseAes, + &feature_useAa, &feature_balanceFpOps, - &feature_fpArmv8, + &feature_fuseAes, + &feature_usePostraScheduler, &feature_perfmon, - &feature_useAa, + &feature_fpArmv8, + &feature_customCheapAsMove, &feature_crc, &feature_a53, }, @@ -1814,20 +1661,20 @@ pub const cpu_cortexA55 = Cpu{ .name = "cortex-a55", .llvm_name = "cortex-a55", .subfeatures = &[_]*const Feature { - &feature_rdm, &feature_fuseAes, &feature_ccpp, - &feature_lse, - &feature_fpArmv8, - &feature_perfmon, - &feature_ras, - &feature_dotprod, &feature_lor, + &feature_dotprod, + &feature_perfmon, &feature_pan, - &feature_crc, - &feature_rcpc, - &feature_uaops, + &feature_lse, + &feature_rdm, + &feature_ras, &feature_vh, + &feature_fpArmv8, + &feature_uaops, + &feature_rcpc, + &feature_crc, &feature_a55, }, }; @@ -1836,14 +1683,14 @@ pub const cpu_cortexA57 = Cpu{ .name = "cortex-a57", .llvm_name = "cortex-a57", .subfeatures = &[_]*const Feature { - &feature_usePostraScheduler, - &feature_customCheapAsMove, - &feature_fuseAes, + &feature_fuseLiterals, &feature_balanceFpOps, - &feature_fpArmv8, - &feature_perfmon, &feature_predictableSelectExpensive, - &feature_fuseLiterals, + &feature_fuseAes, + &feature_usePostraScheduler, + &feature_perfmon, + &feature_fpArmv8, + &feature_customCheapAsMove, &feature_crc, &feature_a57, }, @@ -1853,19 +1700,19 @@ pub const cpu_cortexA65 = Cpu{ .name = "cortex-a65", .llvm_name = "cortex-a65", .subfeatures = &[_]*const Feature { - &feature_rdm, + &feature_rcpc, &feature_ccpp, - &feature_lse, - &feature_fpArmv8, - &feature_ras, - &feature_dotprod, &feature_lor, + &feature_dotprod, &feature_pan, - &feature_crc, - &feature_rcpc, - &feature_uaops, + &feature_lse, + &feature_rdm, &feature_vh, + &feature_fpArmv8, + &feature_uaops, + &feature_ras, &feature_ssbs, + &feature_crc, &feature_a65, }, }; @@ -1874,19 +1721,19 @@ pub const cpu_cortexA65ae = Cpu{ .name = "cortex-a65ae", .llvm_name = "cortex-a65ae", .subfeatures = &[_]*const Feature { - &feature_rdm, + &feature_rcpc, &feature_ccpp, - &feature_lse, - &feature_fpArmv8, - &feature_ras, - &feature_dotprod, &feature_lor, + &feature_dotprod, &feature_pan, - &feature_crc, - &feature_rcpc, - &feature_uaops, + &feature_lse, + &feature_rdm, &feature_vh, + &feature_fpArmv8, + &feature_uaops, + &feature_ras, &feature_ssbs, + &feature_crc, &feature_a65, }, }; @@ -1896,9 +1743,9 @@ pub const cpu_cortexA72 = Cpu{ .llvm_name = "cortex-a72", .subfeatures = &[_]*const Feature { &feature_fpArmv8, - &feature_perfmon, - &feature_crc, &feature_fuseAes, + &feature_crc, + &feature_perfmon, &feature_a72, }, }; @@ -1908,9 +1755,9 @@ pub const cpu_cortexA73 = Cpu{ .llvm_name = "cortex-a73", .subfeatures = &[_]*const Feature { &feature_fpArmv8, - &feature_perfmon, - &feature_crc, &feature_fuseAes, + &feature_crc, + &feature_perfmon, &feature_a73, }, }; @@ -1919,20 +1766,20 @@ pub const cpu_cortexA75 = Cpu{ .name = "cortex-a75", .llvm_name = "cortex-a75", .subfeatures = &[_]*const Feature { - &feature_rdm, &feature_fuseAes, &feature_ccpp, - &feature_lse, - &feature_fpArmv8, - &feature_perfmon, - &feature_ras, - &feature_dotprod, &feature_lor, + &feature_dotprod, + &feature_perfmon, &feature_pan, - &feature_crc, - &feature_rcpc, - &feature_uaops, + &feature_lse, + &feature_rdm, + &feature_ras, &feature_vh, + &feature_fpArmv8, + &feature_uaops, + &feature_rcpc, + &feature_crc, &feature_a75, }, }; @@ -1941,19 +1788,19 @@ pub const cpu_cortexA76 = Cpu{ .name = "cortex-a76", .llvm_name = "cortex-a76", .subfeatures = &[_]*const Feature { - &feature_rdm, &feature_ccpp, - &feature_lse, - &feature_fpArmv8, - &feature_ras, - &feature_dotprod, &feature_lor, + &feature_dotprod, &feature_pan, - &feature_crc, - &feature_rcpc, - &feature_uaops, + &feature_lse, + &feature_rdm, + &feature_ras, &feature_vh, + &feature_fpArmv8, + &feature_uaops, + &feature_rcpc, &feature_ssbs, + &feature_crc, &feature_a76, }, }; @@ -1962,19 +1809,19 @@ pub const cpu_cortexA76ae = Cpu{ .name = "cortex-a76ae", .llvm_name = "cortex-a76ae", .subfeatures = &[_]*const Feature { - &feature_rdm, &feature_ccpp, - &feature_lse, - &feature_fpArmv8, - &feature_ras, - &feature_dotprod, &feature_lor, + &feature_dotprod, &feature_pan, - &feature_crc, - &feature_rcpc, - &feature_uaops, + &feature_lse, + &feature_rdm, + &feature_ras, &feature_vh, + &feature_fpArmv8, + &feature_uaops, + &feature_rcpc, &feature_ssbs, + &feature_crc, &feature_a76, }, }; @@ -1983,18 +1830,18 @@ pub const cpu_cyclone = Cpu{ .name = "cyclone", .llvm_name = "cyclone", .subfeatures = &[_]*const Feature { - &feature_zczGp, - &feature_arithBccFusion, - &feature_fuseAes, - &feature_zczFp, &feature_zczFpWorkaround, - &feature_fpArmv8, - &feature_perfmon, - &feature_disableLatencySchedHeuristic, + &feature_fuseAes, &feature_zcm, &feature_arithCbzFusion, - &feature_fuseCryptoEor, + &feature_perfmon, &feature_alternateSextloadCvtF32Pattern, + &feature_arithBccFusion, + &feature_disableLatencySchedHeuristic, + &feature_zczGp, + &feature_fuseCryptoEor, + &feature_fpArmv8, + &feature_zczFp, &feature_cyclone, }, }; @@ -2003,17 +1850,17 @@ pub const cpu_exynosM1 = Cpu{ .name = "exynos-m1", .llvm_name = "exynos-m1", .subfeatures = &[_]*const Feature { + &feature_useReciprocalSquareRoot, + &feature_fuseAes, &feature_usePostraScheduler, &feature_slowMisaligned128store, - &feature_customCheapAsMove, - &feature_fuseAes, - &feature_zczFp, - &feature_fpArmv8, &feature_perfmon, - &feature_slowPaired128, - &feature_useReciprocalSquareRoot, + &feature_fpArmv8, + &feature_customCheapAsMove, &feature_force32bitJumpTables, + &feature_zczFp, &feature_crc, + &feature_slowPaired128, &feature_exynosm1, }, }; @@ -2022,16 +1869,16 @@ pub const cpu_exynosM2 = Cpu{ .name = "exynos-m2", .llvm_name = "exynos-m2", .subfeatures = &[_]*const Feature { + &feature_fuseAes, &feature_usePostraScheduler, &feature_slowMisaligned128store, - &feature_customCheapAsMove, - &feature_fuseAes, - &feature_zczFp, - &feature_fpArmv8, &feature_perfmon, - &feature_slowPaired128, + &feature_fpArmv8, + &feature_customCheapAsMove, &feature_force32bitJumpTables, + &feature_zczFp, &feature_crc, + &feature_slowPaired128, &feature_exynosm2, }, }; @@ -2040,19 +1887,19 @@ pub const cpu_exynosM3 = Cpu{ .name = "exynos-m3", .llvm_name = "exynos-m3", .subfeatures = &[_]*const Feature { - &feature_usePostraScheduler, - &feature_customCheapAsMove, + &feature_fuseLiterals, + &feature_predictableSelectExpensive, &feature_fuseAes, &feature_fuseAddress, - &feature_zczFp, - &feature_fpArmv8, + &feature_fuseCsel, + &feature_usePostraScheduler, &feature_perfmon, - &feature_predictableSelectExpensive, - &feature_fuseLiterals, + &feature_fpArmv8, + &feature_customCheapAsMove, + &feature_lslFast, &feature_force32bitJumpTables, + &feature_zczFp, &feature_crc, - &feature_lslFast, - &feature_fuseCsel, &feature_exynosm3, }, }; @@ -2061,31 +1908,31 @@ pub const cpu_exynosM4 = Cpu{ .name = "exynos-m4", .llvm_name = "exynos-m4", .subfeatures = &[_]*const Feature { + &feature_fuseLiterals, + &feature_fuseAes, &feature_ccpp, - &feature_perfmon, + &feature_lor, &feature_dotprod, - &feature_fuseArithLogic, - &feature_force32bitJumpTables, - &feature_lslFast, - &feature_zczGp, + &feature_fpArmv8, &feature_customCheapAsMove, - &feature_fuseAes, + &feature_lslFast, + &feature_crc, &feature_fuseAddress, - &feature_lse, &feature_arithCbzFusion, - &feature_uaops, + &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_rdm, - &feature_fpArmv8, &feature_ras, - &feature_fuseLiterals, - &feature_crc, - &feature_usePostraScheduler, - &feature_arithBccFusion, &feature_zczFp, - &feature_lor, - &feature_pan, &feature_exynosm4, }, }; @@ -2094,31 +1941,31 @@ pub const cpu_exynosM5 = Cpu{ .name = "exynos-m5", .llvm_name = "exynos-m5", .subfeatures = &[_]*const Feature { + &feature_fuseLiterals, + &feature_fuseAes, &feature_ccpp, - &feature_perfmon, + &feature_lor, &feature_dotprod, - &feature_fuseArithLogic, - &feature_force32bitJumpTables, - &feature_lslFast, - &feature_zczGp, + &feature_fpArmv8, &feature_customCheapAsMove, - &feature_fuseAes, + &feature_lslFast, + &feature_crc, &feature_fuseAddress, - &feature_lse, &feature_arithCbzFusion, - &feature_uaops, + &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_rdm, - &feature_fpArmv8, &feature_ras, - &feature_fuseLiterals, - &feature_crc, - &feature_usePostraScheduler, - &feature_arithBccFusion, &feature_zczFp, - &feature_lor, - &feature_pan, &feature_exynosm4, }, }; @@ -2127,17 +1974,17 @@ pub const cpu_falkor = Cpu{ .name = "falkor", .llvm_name = "falkor", .subfeatures = &[_]*const Feature { - &feature_rdm, + &feature_predictableSelectExpensive, &feature_usePostraScheduler, - &feature_zczGp, + &feature_perfmon, &feature_slowStrqroStore, + &feature_rdm, + &feature_zczGp, + &feature_fpArmv8, &feature_customCheapAsMove, + &feature_lslFast, &feature_zczFp, - &feature_fpArmv8, - &feature_perfmon, - &feature_predictableSelectExpensive, &feature_crc, - &feature_lslFast, &feature_falkor, }, }; @@ -2160,15 +2007,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_fpArmv8, - &feature_perfmon, - &feature_predictableSelectExpensive, &feature_crc, - &feature_lslFast, &feature_kryo, }, }; @@ -2177,19 +2024,19 @@ pub const cpu_neoverseE1 = Cpu{ .name = "neoverse-e1", .llvm_name = "neoverse-e1", .subfeatures = &[_]*const Feature { - &feature_rdm, &feature_ccpp, - &feature_lse, - &feature_fpArmv8, - &feature_ras, - &feature_dotprod, &feature_lor, + &feature_dotprod, &feature_pan, - &feature_crc, - &feature_rcpc, - &feature_uaops, + &feature_lse, + &feature_rdm, + &feature_ras, &feature_vh, + &feature_fpArmv8, + &feature_uaops, + &feature_rcpc, &feature_ssbs, + &feature_crc, &feature_neoversee1, }, }; @@ -2198,20 +2045,20 @@ pub const cpu_neoverseN1 = Cpu{ .name = "neoverse-n1", .llvm_name = "neoverse-n1", .subfeatures = &[_]*const Feature { - &feature_rdm, &feature_ccpp, - &feature_lse, - &feature_fpArmv8, - &feature_ras, - &feature_dotprod, &feature_lor, + &feature_dotprod, &feature_spe, &feature_pan, - &feature_crc, - &feature_rcpc, - &feature_uaops, + &feature_lse, + &feature_rdm, + &feature_ras, &feature_vh, + &feature_fpArmv8, + &feature_uaops, + &feature_rcpc, &feature_ssbs, + &feature_crc, &feature_neoversen1, }, }; @@ -2220,36 +2067,36 @@ pub const cpu_saphira = Cpu{ .name = "saphira", .llvm_name = "saphira", .subfeatures = &[_]*const Feature { - &feature_am, - &feature_nv, &feature_ccpp, - &feature_predictableSelectExpensive, - &feature_perfmon, + &feature_lor, &feature_dotprod, - &feature_spe, + &feature_fpArmv8, + &feature_customCheapAsMove, &feature_lslFast, + &feature_crc, + &feature_fmi, + &feature_predictableSelectExpensive, + &feature_tracev84, + &feature_tlbRmi, + &feature_perfmon, &feature_zczGp, - &feature_customCheapAsMove, + &feature_rdm, + &feature_ccidx, + &feature_mpam, + &feature_pan, &feature_lse, &feature_rcpc, &feature_uaops, - &feature_ccidx, - &feature_vh, - &feature_tracev84, - &feature_rdm, - &feature_fpArmv8, + &feature_sel2, + &feature_usePostraScheduler, + &feature_nv, + &feature_am, + &feature_spe, &feature_dit, - &feature_mpam, + &feature_vh, &feature_ras, - &feature_tlbRmi, - &feature_fmi, - &feature_crc, - &feature_usePostraScheduler, - &feature_pa, &feature_zczFp, - &feature_sel2, - &feature_lor, - &feature_pan, + &feature_pa, &feature_saphira, }, }; @@ -2258,10 +2105,10 @@ pub const cpu_thunderx = Cpu{ .name = "thunderx", .llvm_name = "thunderx", .subfeatures = &[_]*const Feature { - &feature_usePostraScheduler, &feature_predictableSelectExpensive, - &feature_fpArmv8, + &feature_usePostraScheduler, &feature_perfmon, + &feature_fpArmv8, &feature_crc, &feature_thunderx, }, @@ -2271,17 +2118,17 @@ pub const cpu_thunderx2t99 = Cpu{ .name = "thunderx2t99", .llvm_name = "thunderx2t99", .subfeatures = &[_]*const Feature { - &feature_rdm, - &feature_usePostraScheduler, - &feature_arithBccFusion, - &feature_lse, - &feature_fpArmv8, &feature_predictableSelectExpensive, + &feature_usePostraScheduler, &feature_lor, - &feature_crc, + &feature_lse, &feature_pan, + &feature_arithBccFusion, + &feature_rdm, &feature_aggressiveFma, &feature_vh, + &feature_fpArmv8, + &feature_crc, &feature_thunderx2t99, }, }; @@ -2290,10 +2137,10 @@ pub const cpu_thunderxt81 = Cpu{ .name = "thunderxt81", .llvm_name = "thunderxt81", .subfeatures = &[_]*const Feature { - &feature_usePostraScheduler, &feature_predictableSelectExpensive, - &feature_fpArmv8, + &feature_usePostraScheduler, &feature_perfmon, + &feature_fpArmv8, &feature_crc, &feature_thunderxt81, }, @@ -2303,10 +2150,10 @@ pub const cpu_thunderxt83 = Cpu{ .name = "thunderxt83", .llvm_name = "thunderxt83", .subfeatures = &[_]*const Feature { - &feature_usePostraScheduler, &feature_predictableSelectExpensive, - &feature_fpArmv8, + &feature_usePostraScheduler, &feature_perfmon, + &feature_fpArmv8, &feature_crc, &feature_thunderxt83, }, @@ -2316,10 +2163,10 @@ pub const cpu_thunderxt88 = Cpu{ .name = "thunderxt88", .llvm_name = "thunderxt88", .subfeatures = &[_]*const Feature { - &feature_usePostraScheduler, &feature_predictableSelectExpensive, - &feature_fpArmv8, + &feature_usePostraScheduler, &feature_perfmon, + &feature_fpArmv8, &feature_crc, &feature_thunderxt88, }, @@ -2329,22 +2176,22 @@ pub const cpu_tsv110 = Cpu{ .name = "tsv110", .llvm_name = "tsv110", .subfeatures = &[_]*const Feature { - &feature_rdm, - &feature_usePostraScheduler, - &feature_customCheapAsMove, &feature_fuseAes, + &feature_usePostraScheduler, &feature_ccpp, - &feature_lse, - &feature_fpArmv8, - &feature_perfmon, - &feature_ras, - &feature_dotprod, &feature_lor, + &feature_dotprod, + &feature_uaops, + &feature_perfmon, &feature_spe, - &feature_crc, &feature_pan, - &feature_uaops, + &feature_lse, + &feature_rdm, &feature_vh, + &feature_fpArmv8, + &feature_customCheapAsMove, + &feature_ras, + &feature_crc, &feature_tsv110, }, }; diff --git a/lib/std/target/amdgpu.zig b/lib/std/target/amdgpu.zig index 80563b4d02..e6eec35ab3 100644 --- a/lib/std/target/amdgpu.zig +++ b/lib/std/target/amdgpu.zig @@ -4,7 +4,6 @@ const Cpu = @import("std").target.Cpu; pub const feature_BitInsts16 = Feature{ .name = "16-bit-insts", .description = "Has i16/f16 instructions", - .llvm_name = "16-bit-insts", .subfeatures = &[_]*const Feature { }, }; @@ -12,7 +11,6 @@ pub const feature_BitInsts16 = Feature{ pub const feature_addNoCarryInsts = Feature{ .name = "add-no-carry-insts", .description = "Have VALU add/sub instructions without carry out", - .llvm_name = "add-no-carry-insts", .subfeatures = &[_]*const Feature { }, }; @@ -20,7 +18,6 @@ pub const feature_addNoCarryInsts = Feature{ pub const feature_apertureRegs = Feature{ .name = "aperture-regs", .description = "Has Memory Aperture Base and Size Registers", - .llvm_name = "aperture-regs", .subfeatures = &[_]*const Feature { }, }; @@ -28,7 +25,6 @@ pub const feature_apertureRegs = Feature{ pub const feature_atomicFaddInsts = Feature{ .name = "atomic-fadd-insts", .description = "Has buffer_atomic_add_f32, buffer_atomic_pk_add_f16, global_atomic_add_f32, global_atomic_pk_add_f16 instructions", - .llvm_name = "atomic-fadd-insts", .subfeatures = &[_]*const Feature { }, }; @@ -36,7 +32,6 @@ pub const feature_atomicFaddInsts = Feature{ pub const feature_autoWaitcntBeforeBarrier = Feature{ .name = "auto-waitcnt-before-barrier", .description = "Hardware automatically inserts waitcnt before barrier", - .llvm_name = "auto-waitcnt-before-barrier", .subfeatures = &[_]*const Feature { }, }; @@ -44,7 +39,6 @@ pub const feature_autoWaitcntBeforeBarrier = Feature{ pub const feature_ciInsts = Feature{ .name = "ci-insts", .description = "Additional instructions for CI+", - .llvm_name = "ci-insts", .subfeatures = &[_]*const Feature { }, }; @@ -52,7 +46,6 @@ pub const feature_ciInsts = Feature{ pub const feature_codeObjectV3 = Feature{ .name = "code-object-v3", .description = "Generate code object version 3", - .llvm_name = "code-object-v3", .subfeatures = &[_]*const Feature { }, }; @@ -60,7 +53,6 @@ pub const feature_codeObjectV3 = Feature{ pub const feature_cumode = Feature{ .name = "cumode", .description = "Enable CU wavefront execution mode", - .llvm_name = "cumode", .subfeatures = &[_]*const Feature { }, }; @@ -68,7 +60,6 @@ pub const feature_cumode = Feature{ pub const feature_dlInsts = Feature{ .name = "dl-insts", .description = "Has v_fmac_f32 and v_xnor_b32 instructions", - .llvm_name = "dl-insts", .subfeatures = &[_]*const Feature { }, }; @@ -76,7 +67,6 @@ pub const feature_dlInsts = Feature{ pub const feature_dpp = Feature{ .name = "dpp", .description = "Support DPP (Data Parallel Primitives) extension", - .llvm_name = "dpp", .subfeatures = &[_]*const Feature { }, }; @@ -84,7 +74,6 @@ pub const feature_dpp = Feature{ pub const feature_dpp8 = Feature{ .name = "dpp8", .description = "Support DPP8 (Data Parallel Primitives) extension", - .llvm_name = "dpp8", .subfeatures = &[_]*const Feature { }, }; @@ -92,7 +81,6 @@ pub const feature_dpp8 = Feature{ pub const feature_noSramEccSupport = Feature{ .name = "no-sram-ecc-support", .description = "Hardware does not support SRAM ECC", - .llvm_name = "no-sram-ecc-support", .subfeatures = &[_]*const Feature { }, }; @@ -100,7 +88,6 @@ pub const feature_noSramEccSupport = Feature{ pub const feature_noXnackSupport = Feature{ .name = "no-xnack-support", .description = "Hardware does not support XNACK", - .llvm_name = "no-xnack-support", .subfeatures = &[_]*const Feature { }, }; @@ -108,7 +95,6 @@ pub const feature_noXnackSupport = Feature{ pub const feature_dot1Insts = Feature{ .name = "dot1-insts", .description = "Has v_dot4_i32_i8 and v_dot8_i32_i4 instructions", - .llvm_name = "dot1-insts", .subfeatures = &[_]*const Feature { }, }; @@ -116,7 +102,6 @@ pub const feature_dot1Insts = Feature{ pub const feature_dot2Insts = Feature{ .name = "dot2-insts", .description = "Has v_dot2_f32_f16, v_dot2_i32_i16, v_dot2_u32_u16, v_dot4_u32_u8, v_dot8_u32_u4 instructions", - .llvm_name = "dot2-insts", .subfeatures = &[_]*const Feature { }, }; @@ -124,7 +109,6 @@ pub const feature_dot2Insts = Feature{ pub const feature_dot3Insts = Feature{ .name = "dot3-insts", .description = "Has v_dot8c_i32_i4 instruction", - .llvm_name = "dot3-insts", .subfeatures = &[_]*const Feature { }, }; @@ -132,7 +116,6 @@ pub const feature_dot3Insts = Feature{ pub const feature_dot4Insts = Feature{ .name = "dot4-insts", .description = "Has v_dot2c_i32_i16 instruction", - .llvm_name = "dot4-insts", .subfeatures = &[_]*const Feature { }, }; @@ -140,7 +123,6 @@ pub const feature_dot4Insts = Feature{ pub const feature_dot5Insts = Feature{ .name = "dot5-insts", .description = "Has v_dot2c_f32_f16 instruction", - .llvm_name = "dot5-insts", .subfeatures = &[_]*const Feature { }, }; @@ -148,7 +130,6 @@ pub const feature_dot5Insts = Feature{ pub const feature_dot6Insts = Feature{ .name = "dot6-insts", .description = "Has v_dot4c_i32_i8 instruction", - .llvm_name = "dot6-insts", .subfeatures = &[_]*const Feature { }, }; @@ -156,7 +137,6 @@ pub const feature_dot6Insts = Feature{ pub const feature_DumpCode = Feature{ .name = "DumpCode", .description = "Dump MachineInstrs in the CodeEmitter", - .llvm_name = "DumpCode", .subfeatures = &[_]*const Feature { }, }; @@ -164,7 +144,6 @@ pub const feature_DumpCode = Feature{ pub const feature_dumpcode = Feature{ .name = "dumpcode", .description = "Dump MachineInstrs in the CodeEmitter", - .llvm_name = "dumpcode", .subfeatures = &[_]*const Feature { }, }; @@ -172,7 +151,6 @@ pub const feature_dumpcode = Feature{ pub const feature_enableDs128 = Feature{ .name = "enable-ds128", .description = "Use ds_{read|write}_b128", - .llvm_name = "enable-ds128", .subfeatures = &[_]*const Feature { }, }; @@ -180,7 +158,6 @@ pub const feature_enableDs128 = Feature{ pub const feature_loadStoreOpt = Feature{ .name = "load-store-opt", .description = "Enable SI load/store optimizer pass", - .llvm_name = "load-store-opt", .subfeatures = &[_]*const Feature { }, }; @@ -188,7 +165,6 @@ pub const feature_loadStoreOpt = Feature{ pub const feature_enablePrtStrictNull = Feature{ .name = "enable-prt-strict-null", .description = "Enable zeroing of result registers for sparse texture fetches", - .llvm_name = "enable-prt-strict-null", .subfeatures = &[_]*const Feature { }, }; @@ -196,7 +172,6 @@ pub const feature_enablePrtStrictNull = Feature{ pub const feature_siScheduler = Feature{ .name = "si-scheduler", .description = "Enable SI Machine Scheduler", - .llvm_name = "si-scheduler", .subfeatures = &[_]*const Feature { }, }; @@ -204,7 +179,6 @@ pub const feature_siScheduler = Feature{ pub const feature_unsafeDsOffsetFolding = Feature{ .name = "unsafe-ds-offset-folding", .description = "Force using DS instruction immediate offsets on SI", - .llvm_name = "unsafe-ds-offset-folding", .subfeatures = &[_]*const Feature { }, }; @@ -212,7 +186,6 @@ pub const feature_unsafeDsOffsetFolding = Feature{ pub const feature_fmaf = Feature{ .name = "fmaf", .description = "Enable single precision FMA (not as fast as mul+add, but fused)", - .llvm_name = "fmaf", .subfeatures = &[_]*const Feature { }, }; @@ -220,7 +193,6 @@ pub const feature_fmaf = Feature{ pub const feature_fp16Denormals = Feature{ .name = "fp16-denormals", .description = "Enable half precision denormal handling", - .llvm_name = "fp16-denormals", .subfeatures = &[_]*const Feature { &feature_fp64, }, @@ -229,7 +201,6 @@ pub const feature_fp16Denormals = Feature{ pub const feature_fp32Denormals = Feature{ .name = "fp32-denormals", .description = "Enable single precision denormal handling", - .llvm_name = "fp32-denormals", .subfeatures = &[_]*const Feature { }, }; @@ -237,7 +208,6 @@ pub const feature_fp32Denormals = Feature{ pub const feature_fp64 = Feature{ .name = "fp64", .description = "Enable double precision operations", - .llvm_name = "fp64", .subfeatures = &[_]*const Feature { }, }; @@ -245,7 +215,6 @@ pub const feature_fp64 = Feature{ pub const feature_fp64Denormals = Feature{ .name = "fp64-denormals", .description = "Enable double and half precision denormal handling", - .llvm_name = "fp64-denormals", .subfeatures = &[_]*const Feature { &feature_fp64, }, @@ -254,7 +223,6 @@ pub const feature_fp64Denormals = Feature{ pub const feature_fp64Fp16Denormals = Feature{ .name = "fp64-fp16-denormals", .description = "Enable double and half precision denormal handling", - .llvm_name = "fp64-fp16-denormals", .subfeatures = &[_]*const Feature { &feature_fp64, }, @@ -263,7 +231,6 @@ pub const feature_fp64Fp16Denormals = Feature{ pub const feature_fpExceptions = Feature{ .name = "fp-exceptions", .description = "Enable floating point exceptions", - .llvm_name = "fp-exceptions", .subfeatures = &[_]*const Feature { }, }; @@ -271,7 +238,6 @@ pub const feature_fpExceptions = Feature{ pub const feature_fastFmaf = Feature{ .name = "fast-fmaf", .description = "Assuming f32 fma is at least as fast as mul + add", - .llvm_name = "fast-fmaf", .subfeatures = &[_]*const Feature { }, }; @@ -279,7 +245,6 @@ pub const feature_fastFmaf = Feature{ pub const feature_flatAddressSpace = Feature{ .name = "flat-address-space", .description = "Support flat address space", - .llvm_name = "flat-address-space", .subfeatures = &[_]*const Feature { }, }; @@ -287,7 +252,6 @@ pub const feature_flatAddressSpace = Feature{ pub const feature_flatForGlobal = Feature{ .name = "flat-for-global", .description = "Force to generate flat instruction for global", - .llvm_name = "flat-for-global", .subfeatures = &[_]*const Feature { }, }; @@ -295,7 +259,6 @@ pub const feature_flatForGlobal = Feature{ pub const feature_flatGlobalInsts = Feature{ .name = "flat-global-insts", .description = "Have global_* flat memory instructions", - .llvm_name = "flat-global-insts", .subfeatures = &[_]*const Feature { }, }; @@ -303,7 +266,6 @@ pub const feature_flatGlobalInsts = Feature{ pub const feature_flatInstOffsets = Feature{ .name = "flat-inst-offsets", .description = "Flat instructions have immediate offset addressing mode", - .llvm_name = "flat-inst-offsets", .subfeatures = &[_]*const Feature { }, }; @@ -311,7 +273,6 @@ pub const feature_flatInstOffsets = Feature{ pub const feature_flatScratchInsts = Feature{ .name = "flat-scratch-insts", .description = "Have scratch_* flat memory instructions", - .llvm_name = "flat-scratch-insts", .subfeatures = &[_]*const Feature { }, }; @@ -319,7 +280,6 @@ pub const feature_flatScratchInsts = Feature{ pub const feature_flatSegmentOffsetBug = Feature{ .name = "flat-segment-offset-bug", .description = "GFX10 bug, inst_offset ignored in flat segment", - .llvm_name = "flat-segment-offset-bug", .subfeatures = &[_]*const Feature { }, }; @@ -327,7 +287,6 @@ pub const feature_flatSegmentOffsetBug = Feature{ pub const feature_fmaMixInsts = Feature{ .name = "fma-mix-insts", .description = "Has v_fma_mix_f32, v_fma_mixlo_f16, v_fma_mixhi_f16 instructions", - .llvm_name = "fma-mix-insts", .subfeatures = &[_]*const Feature { }, }; @@ -335,7 +294,6 @@ pub const feature_fmaMixInsts = Feature{ pub const feature_gcn3Encoding = Feature{ .name = "gcn3-encoding", .description = "Encoding format for VI", - .llvm_name = "gcn3-encoding", .subfeatures = &[_]*const Feature { }, }; @@ -343,7 +301,6 @@ pub const feature_gcn3Encoding = Feature{ pub const feature_gfx7Gfx8Gfx9Insts = Feature{ .name = "gfx7-gfx8-gfx9-insts", .description = "Instructions shared in GFX7, GFX8, GFX9", - .llvm_name = "gfx7-gfx8-gfx9-insts", .subfeatures = &[_]*const Feature { }, }; @@ -351,7 +308,6 @@ pub const feature_gfx7Gfx8Gfx9Insts = Feature{ pub const feature_gfx8Insts = Feature{ .name = "gfx8-insts", .description = "Additional instructions for GFX8+", - .llvm_name = "gfx8-insts", .subfeatures = &[_]*const Feature { }, }; @@ -359,45 +315,43 @@ pub const feature_gfx8Insts = Feature{ pub const feature_gfx9 = Feature{ .name = "gfx9", .description = "GFX9 GPU generation", - .llvm_name = "gfx9", .subfeatures = &[_]*const Feature { - &feature_gfx9Insts, + &feature_fp64, + &feature_vop3p, + &feature_sMemrealtime, + &feature_gfx8Insts, + &feature_dpp, + &feature_sdwaSdst, &feature_ciInsts, - &feature_sdwa, - &feature_localmemorysize65536, + &feature_apertureRegs, &feature_scalarStores, - &feature_sdwaScalar, - &feature_sdwaSdst, + &feature_intClampInsts, &feature_gcn3Encoding, - &feature_apertureRegs, &feature_flatScratchInsts, - &feature_r128A16, - &feature_flatAddressSpace, - &feature_dpp, - &feature_addNoCarryInsts, - &feature_inv2piInlineImm, - &feature_fp64, - &feature_BitInsts16, - &feature_vgprIndexMode, + &feature_gfx7Gfx8Gfx9Insts, &feature_wavefrontsize64, - &feature_gfx8Insts, - &feature_flatGlobalInsts, - &feature_scalarFlatScratchInsts, &feature_scalarAtomics, - &feature_flatInstOffsets, - &feature_gfx7Gfx8Gfx9Insts, - &feature_vop3p, - &feature_sMemrealtime, - &feature_intClampInsts, + &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+", - .llvm_name = "gfx9-insts", .subfeatures = &[_]*const Feature { }, }; @@ -405,49 +359,47 @@ pub const feature_gfx9Insts = Feature{ pub const feature_gfx10 = Feature{ .name = "gfx10", .description = "GFX10 GPU generation", - .llvm_name = "gfx10", .subfeatures = &[_]*const Feature { - &feature_movrel, - &feature_gfx9Insts, - &feature_ciInsts, - &feature_noSramEccSupport, - &feature_noSdstCmpx, - &feature_fmaMixInsts, - &feature_sdwa, - &feature_localmemorysize65536, - &feature_sdwaScalar, + &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_noDataDepHazard, + &feature_movrel, + &feature_fmaMixInsts, + &feature_noSramEccSupport, + &feature_sdwa, + &feature_sdwaOmod, + &feature_vop3Literal, + &feature_dpp8, + &feature_gfx10Insts, + &feature_localmemorysize65536, + &feature_mimgR128, &feature_flatAddressSpace, - &feature_dpp, &feature_addNoCarryInsts, + &feature_noDataDepHazard, + &feature_flatInstOffsets, &feature_inv2piInlineImm, - &feature_fp64, - &feature_dpp8, - &feature_BitInsts16, - &feature_registerBanking, - &feature_gfx8Insts, + &feature_gfx9Insts, &feature_flatGlobalInsts, - &feature_flatInstOffsets, - &feature_pkFmacF16Inst, - &feature_vop3p, - &feature_mimgR128, - &feature_intClampInsts, - &feature_sMemrealtime, - &feature_fastFmaf, - &feature_vop3Literal, - &feature_sdwaOmod, - &feature_gfx10Insts, + &feature_BitInsts16, + &feature_noSdstCmpx, }, }; pub const feature_gfx10Insts = Feature{ .name = "gfx10-insts", .description = "Additional instructions for GFX10+", - .llvm_name = "gfx10-insts", .subfeatures = &[_]*const Feature { }, }; @@ -455,7 +407,6 @@ pub const feature_gfx10Insts = Feature{ pub const feature_instFwdPrefetchBug = Feature{ .name = "inst-fwd-prefetch-bug", .description = "S_INST_PREFETCH instruction causes shader to hang", - .llvm_name = "inst-fwd-prefetch-bug", .subfeatures = &[_]*const Feature { }, }; @@ -463,7 +414,6 @@ pub const feature_instFwdPrefetchBug = Feature{ pub const feature_intClampInsts = Feature{ .name = "int-clamp-insts", .description = "Support clamp for integer destination", - .llvm_name = "int-clamp-insts", .subfeatures = &[_]*const Feature { }, }; @@ -471,7 +421,6 @@ pub const feature_intClampInsts = Feature{ pub const feature_inv2piInlineImm = Feature{ .name = "inv-2pi-inline-imm", .description = "Has 1 / (2 * pi) as inline immediate", - .llvm_name = "inv-2pi-inline-imm", .subfeatures = &[_]*const Feature { }, }; @@ -479,7 +428,6 @@ pub const feature_inv2piInlineImm = Feature{ pub const feature_ldsbankcount16 = Feature{ .name = "ldsbankcount16", .description = "The number of LDS banks per compute unit.", - .llvm_name = "ldsbankcount16", .subfeatures = &[_]*const Feature { }, }; @@ -487,7 +435,6 @@ pub const feature_ldsbankcount16 = Feature{ pub const feature_ldsbankcount32 = Feature{ .name = "ldsbankcount32", .description = "The number of LDS banks per compute unit.", - .llvm_name = "ldsbankcount32", .subfeatures = &[_]*const Feature { }, }; @@ -495,7 +442,6 @@ pub const feature_ldsbankcount32 = Feature{ pub const feature_ldsBranchVmemWarHazard = Feature{ .name = "lds-branch-vmem-war-hazard", .description = "Switching between LDS and VMEM-tex not waiting VM_VSRC=0", - .llvm_name = "lds-branch-vmem-war-hazard", .subfeatures = &[_]*const Feature { }, }; @@ -503,7 +449,6 @@ pub const feature_ldsBranchVmemWarHazard = Feature{ pub const feature_ldsMisalignedBug = Feature{ .name = "lds-misaligned-bug", .description = "Some GFX10 bug with misaligned multi-dword LDS access in WGP mode", - .llvm_name = "lds-misaligned-bug", .subfeatures = &[_]*const Feature { }, }; @@ -511,7 +456,6 @@ pub const feature_ldsMisalignedBug = Feature{ pub const feature_localmemorysize0 = Feature{ .name = "localmemorysize0", .description = "The size of local memory in bytes", - .llvm_name = "localmemorysize0", .subfeatures = &[_]*const Feature { }, }; @@ -519,7 +463,6 @@ pub const feature_localmemorysize0 = Feature{ pub const feature_localmemorysize32768 = Feature{ .name = "localmemorysize32768", .description = "The size of local memory in bytes", - .llvm_name = "localmemorysize32768", .subfeatures = &[_]*const Feature { }, }; @@ -527,7 +470,6 @@ pub const feature_localmemorysize32768 = Feature{ pub const feature_localmemorysize65536 = Feature{ .name = "localmemorysize65536", .description = "The size of local memory in bytes", - .llvm_name = "localmemorysize65536", .subfeatures = &[_]*const Feature { }, }; @@ -535,7 +477,6 @@ pub const feature_localmemorysize65536 = Feature{ pub const feature_maiInsts = Feature{ .name = "mai-insts", .description = "Has mAI instructions", - .llvm_name = "mai-insts", .subfeatures = &[_]*const Feature { }, }; @@ -543,7 +484,6 @@ pub const feature_maiInsts = Feature{ pub const feature_mfmaInlineLiteralBug = Feature{ .name = "mfma-inline-literal-bug", .description = "MFMA cannot use inline literal as SrcC", - .llvm_name = "mfma-inline-literal-bug", .subfeatures = &[_]*const Feature { }, }; @@ -551,7 +491,6 @@ pub const feature_mfmaInlineLiteralBug = Feature{ pub const feature_mimgR128 = Feature{ .name = "mimg-r128", .description = "Support 128-bit texture resources", - .llvm_name = "mimg-r128", .subfeatures = &[_]*const Feature { }, }; @@ -559,7 +498,6 @@ pub const feature_mimgR128 = Feature{ pub const feature_madMixInsts = Feature{ .name = "mad-mix-insts", .description = "Has v_mad_mix_f32, v_mad_mixlo_f16, v_mad_mixhi_f16 instructions", - .llvm_name = "mad-mix-insts", .subfeatures = &[_]*const Feature { }, }; @@ -567,7 +505,6 @@ pub const feature_madMixInsts = Feature{ pub const feature_maxPrivateElementSize4 = Feature{ .name = "max-private-element-size-4", .description = "Maximum private access size may be 4", - .llvm_name = "max-private-element-size-4", .subfeatures = &[_]*const Feature { }, }; @@ -575,7 +512,6 @@ pub const feature_maxPrivateElementSize4 = Feature{ pub const feature_maxPrivateElementSize8 = Feature{ .name = "max-private-element-size-8", .description = "Maximum private access size may be 8", - .llvm_name = "max-private-element-size-8", .subfeatures = &[_]*const Feature { }, }; @@ -583,7 +519,6 @@ pub const feature_maxPrivateElementSize8 = Feature{ pub const feature_maxPrivateElementSize16 = Feature{ .name = "max-private-element-size-16", .description = "Maximum private access size may be 16", - .llvm_name = "max-private-element-size-16", .subfeatures = &[_]*const Feature { }, }; @@ -591,7 +526,6 @@ pub const feature_maxPrivateElementSize16 = Feature{ pub const feature_movrel = Feature{ .name = "movrel", .description = "Has v_movrel*_b32 instructions", - .llvm_name = "movrel", .subfeatures = &[_]*const Feature { }, }; @@ -599,7 +533,6 @@ pub const feature_movrel = Feature{ pub const feature_nsaEncoding = Feature{ .name = "nsa-encoding", .description = "Support NSA encoding for image instructions", - .llvm_name = "nsa-encoding", .subfeatures = &[_]*const Feature { }, }; @@ -607,7 +540,6 @@ pub const feature_nsaEncoding = Feature{ pub const feature_nsaToVmemBug = Feature{ .name = "nsa-to-vmem-bug", .description = "MIMG-NSA followed by VMEM fail if EXEC_LO or EXEC_HI equals zero", - .llvm_name = "nsa-to-vmem-bug", .subfeatures = &[_]*const Feature { }, }; @@ -615,7 +547,6 @@ pub const feature_nsaToVmemBug = Feature{ pub const feature_noDataDepHazard = Feature{ .name = "no-data-dep-hazard", .description = "Does not need SW waitstates", - .llvm_name = "no-data-dep-hazard", .subfeatures = &[_]*const Feature { }, }; @@ -623,7 +554,6 @@ pub const feature_noDataDepHazard = Feature{ pub const feature_noSdstCmpx = Feature{ .name = "no-sdst-cmpx", .description = "V_CMPX does not write VCC/SGPR in addition to EXEC", - .llvm_name = "no-sdst-cmpx", .subfeatures = &[_]*const Feature { }, }; @@ -631,7 +561,6 @@ pub const feature_noSdstCmpx = Feature{ pub const feature_offset3fBug = Feature{ .name = "offset-3f-bug", .description = "Branch offset of 3f hardware bug", - .llvm_name = "offset-3f-bug", .subfeatures = &[_]*const Feature { }, }; @@ -639,7 +568,6 @@ pub const feature_offset3fBug = Feature{ pub const feature_pkFmacF16Inst = Feature{ .name = "pk-fmac-f16-inst", .description = "Has v_pk_fmac_f16 instruction", - .llvm_name = "pk-fmac-f16-inst", .subfeatures = &[_]*const Feature { }, }; @@ -647,7 +575,6 @@ pub const feature_pkFmacF16Inst = Feature{ pub const feature_promoteAlloca = Feature{ .name = "promote-alloca", .description = "Enable promote alloca pass", - .llvm_name = "promote-alloca", .subfeatures = &[_]*const Feature { }, }; @@ -655,7 +582,6 @@ pub const feature_promoteAlloca = Feature{ pub const feature_r128A16 = Feature{ .name = "r128-a16", .description = "Support 16 bit coordindates/gradients/lod/clamp/mip types on gfx9", - .llvm_name = "r128-a16", .subfeatures = &[_]*const Feature { }, }; @@ -663,7 +589,6 @@ pub const feature_r128A16 = Feature{ pub const feature_registerBanking = Feature{ .name = "register-banking", .description = "Has register banking", - .llvm_name = "register-banking", .subfeatures = &[_]*const Feature { }, }; @@ -671,7 +596,6 @@ pub const feature_registerBanking = Feature{ pub const feature_sdwa = Feature{ .name = "sdwa", .description = "Support SDWA (Sub-DWORD Addressing) extension", - .llvm_name = "sdwa", .subfeatures = &[_]*const Feature { }, }; @@ -679,7 +603,6 @@ pub const feature_sdwa = Feature{ pub const feature_sdwaMav = Feature{ .name = "sdwa-mav", .description = "Support v_mac_f32/f16 with SDWA (Sub-DWORD Addressing) extension", - .llvm_name = "sdwa-mav", .subfeatures = &[_]*const Feature { }, }; @@ -687,7 +610,6 @@ pub const feature_sdwaMav = Feature{ pub const feature_sdwaOmod = Feature{ .name = "sdwa-omod", .description = "Support OMod with SDWA (Sub-DWORD Addressing) extension", - .llvm_name = "sdwa-omod", .subfeatures = &[_]*const Feature { }, }; @@ -695,7 +617,6 @@ pub const feature_sdwaOmod = Feature{ pub const feature_sdwaOutModsVopc = Feature{ .name = "sdwa-out-mods-vopc", .description = "Support clamp for VOPC with SDWA (Sub-DWORD Addressing) extension", - .llvm_name = "sdwa-out-mods-vopc", .subfeatures = &[_]*const Feature { }, }; @@ -703,7 +624,6 @@ pub const feature_sdwaOutModsVopc = Feature{ pub const feature_sdwaScalar = Feature{ .name = "sdwa-scalar", .description = "Support scalar register with SDWA (Sub-DWORD Addressing) extension", - .llvm_name = "sdwa-scalar", .subfeatures = &[_]*const Feature { }, }; @@ -711,7 +631,6 @@ pub const feature_sdwaScalar = Feature{ pub const feature_sdwaSdst = Feature{ .name = "sdwa-sdst", .description = "Support scalar dst for VOPC with SDWA (Sub-DWORD Addressing) extension", - .llvm_name = "sdwa-sdst", .subfeatures = &[_]*const Feature { }, }; @@ -719,7 +638,6 @@ pub const feature_sdwaSdst = Feature{ pub const feature_sgprInitBug = Feature{ .name = "sgpr-init-bug", .description = "VI SGPR initialization bug requiring a fixed SGPR allocation size", - .llvm_name = "sgpr-init-bug", .subfeatures = &[_]*const Feature { }, }; @@ -727,7 +645,6 @@ pub const feature_sgprInitBug = Feature{ pub const feature_smemToVectorWriteHazard = Feature{ .name = "smem-to-vector-write-hazard", .description = "s_load_dword followed by v_cmp page faults", - .llvm_name = "smem-to-vector-write-hazard", .subfeatures = &[_]*const Feature { }, }; @@ -735,7 +652,6 @@ pub const feature_smemToVectorWriteHazard = Feature{ pub const feature_sMemrealtime = Feature{ .name = "s-memrealtime", .description = "Has s_memrealtime instruction", - .llvm_name = "s-memrealtime", .subfeatures = &[_]*const Feature { }, }; @@ -743,7 +659,6 @@ pub const feature_sMemrealtime = Feature{ pub const feature_sramEcc = Feature{ .name = "sram-ecc", .description = "Enable SRAM ECC", - .llvm_name = "sram-ecc", .subfeatures = &[_]*const Feature { }, }; @@ -751,7 +666,6 @@ pub const feature_sramEcc = Feature{ pub const feature_scalarAtomics = Feature{ .name = "scalar-atomics", .description = "Has atomic scalar memory instructions", - .llvm_name = "scalar-atomics", .subfeatures = &[_]*const Feature { }, }; @@ -759,7 +673,6 @@ pub const feature_scalarAtomics = Feature{ pub const feature_scalarFlatScratchInsts = Feature{ .name = "scalar-flat-scratch-insts", .description = "Have s_scratch_* flat memory instructions", - .llvm_name = "scalar-flat-scratch-insts", .subfeatures = &[_]*const Feature { }, }; @@ -767,7 +680,6 @@ pub const feature_scalarFlatScratchInsts = Feature{ pub const feature_scalarStores = Feature{ .name = "scalar-stores", .description = "Has store scalar memory instructions", - .llvm_name = "scalar-stores", .subfeatures = &[_]*const Feature { }, }; @@ -775,42 +687,39 @@ pub const feature_scalarStores = Feature{ pub const feature_seaIslands = Feature{ .name = "sea-islands", .description = "SEA_ISLANDS GPU generation", - .llvm_name = "sea-islands", .subfeatures = &[_]*const Feature { - &feature_gfx7Gfx8Gfx9Insts, - &feature_mimgR128, - &feature_localmemorysize65536, - &feature_movrel, &feature_trigReducedRange, - &feature_wavefrontsize64, - &feature_flatAddressSpace, - &feature_ciInsts, &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", - .llvm_name = "southern-islands", .subfeatures = &[_]*const Feature { - &feature_mimgR128, - &feature_movrel, &feature_localmemorysize32768, &feature_trigReducedRange, - &feature_ldsbankcount32, - &feature_wavefrontsize64, &feature_noSramEccSupport, - &feature_noXnackSupport, &feature_fp64, + &feature_movrel, + &feature_ldsbankcount32, + &feature_noXnackSupport, + &feature_mimgR128, + &feature_wavefrontsize64, }, }; pub const feature_trapHandler = Feature{ .name = "trap-handler", .description = "Trap handler support", - .llvm_name = "trap-handler", .subfeatures = &[_]*const Feature { }, }; @@ -818,7 +727,6 @@ pub const feature_trapHandler = Feature{ pub const feature_trigReducedRange = Feature{ .name = "trig-reduced-range", .description = "Requires use of fract on arguments to trig instructions", - .llvm_name = "trig-reduced-range", .subfeatures = &[_]*const Feature { }, }; @@ -826,7 +734,6 @@ pub const feature_trigReducedRange = Feature{ pub const feature_unalignedBufferAccess = Feature{ .name = "unaligned-buffer-access", .description = "Support unaligned global loads and stores", - .llvm_name = "unaligned-buffer-access", .subfeatures = &[_]*const Feature { }, }; @@ -834,7 +741,6 @@ pub const feature_unalignedBufferAccess = Feature{ pub const feature_unalignedScratchAccess = Feature{ .name = "unaligned-scratch-access", .description = "Support unaligned scratch loads and stores", - .llvm_name = "unaligned-scratch-access", .subfeatures = &[_]*const Feature { }, }; @@ -842,7 +748,6 @@ pub const feature_unalignedScratchAccess = Feature{ pub const feature_unpackedD16Vmem = Feature{ .name = "unpacked-d16-vmem", .description = "Has unpacked d16 vmem instructions", - .llvm_name = "unpacked-d16-vmem", .subfeatures = &[_]*const Feature { }, }; @@ -850,7 +755,6 @@ pub const feature_unpackedD16Vmem = Feature{ pub const feature_vgprIndexMode = Feature{ .name = "vgpr-index-mode", .description = "Has VGPR mode register indexing", - .llvm_name = "vgpr-index-mode", .subfeatures = &[_]*const Feature { }, }; @@ -858,7 +762,6 @@ pub const feature_vgprIndexMode = Feature{ pub const feature_vmemToScalarWriteHazard = Feature{ .name = "vmem-to-scalar-write-hazard", .description = "VMEM instruction followed by scalar writing to EXEC mask, M0 or SGPR leads to incorrect execution.", - .llvm_name = "vmem-to-scalar-write-hazard", .subfeatures = &[_]*const Feature { }, }; @@ -866,7 +769,6 @@ pub const feature_vmemToScalarWriteHazard = Feature{ pub const feature_vop3Literal = Feature{ .name = "vop3-literal", .description = "Can use one literal in VOP3", - .llvm_name = "vop3-literal", .subfeatures = &[_]*const Feature { }, }; @@ -874,7 +776,6 @@ pub const feature_vop3Literal = Feature{ pub const feature_vop3p = Feature{ .name = "vop3p", .description = "Has VOP3P packed instructions", - .llvm_name = "vop3p", .subfeatures = &[_]*const Feature { }, }; @@ -882,7 +783,6 @@ pub const feature_vop3p = Feature{ pub const feature_vcmpxExecWarHazard = Feature{ .name = "vcmpx-exec-war-hazard", .description = "V_CMPX WAR hazard on EXEC (V_CMPX issue ONLY)", - .llvm_name = "vcmpx-exec-war-hazard", .subfeatures = &[_]*const Feature { }, }; @@ -890,7 +790,6 @@ pub const feature_vcmpxExecWarHazard = Feature{ pub const feature_vcmpxPermlaneHazard = Feature{ .name = "vcmpx-permlane-hazard", .description = "TODO: describe me", - .llvm_name = "vcmpx-permlane-hazard", .subfeatures = &[_]*const Feature { }, }; @@ -898,37 +797,35 @@ pub const feature_vcmpxPermlaneHazard = Feature{ pub const feature_volcanicIslands = Feature{ .name = "volcanic-islands", .description = "VOLCANIC_ISLANDS GPU generation", - .llvm_name = "volcanic-islands", .subfeatures = &[_]*const Feature { - &feature_movrel, + &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_scalarStores, - &feature_gcn3Encoding, + &feature_mimgR128, &feature_flatAddressSpace, - &feature_dpp, &feature_inv2piInlineImm, - &feature_fp64, &feature_BitInsts16, - &feature_trigReducedRange, - &feature_vgprIndexMode, - &feature_wavefrontsize64, - &feature_gfx8Insts, - &feature_gfx7Gfx8Gfx9Insts, - &feature_mimgR128, - &feature_intClampInsts, - &feature_sMemrealtime, - &feature_sdwaMav, - &feature_sdwaOutModsVopc, }, }; pub const feature_vscnt = Feature{ .name = "vscnt", .description = "Has separate store vscnt counter", - .llvm_name = "vscnt", .subfeatures = &[_]*const Feature { }, }; @@ -936,7 +833,6 @@ pub const feature_vscnt = Feature{ pub const feature_wavefrontsize16 = Feature{ .name = "wavefrontsize16", .description = "The number of threads per wavefront", - .llvm_name = "wavefrontsize16", .subfeatures = &[_]*const Feature { }, }; @@ -944,7 +840,6 @@ pub const feature_wavefrontsize16 = Feature{ pub const feature_wavefrontsize32 = Feature{ .name = "wavefrontsize32", .description = "The number of threads per wavefront", - .llvm_name = "wavefrontsize32", .subfeatures = &[_]*const Feature { }, }; @@ -952,7 +847,6 @@ pub const feature_wavefrontsize32 = Feature{ pub const feature_wavefrontsize64 = Feature{ .name = "wavefrontsize64", .description = "The number of threads per wavefront", - .llvm_name = "wavefrontsize64", .subfeatures = &[_]*const Feature { }, }; @@ -960,7 +854,6 @@ pub const feature_wavefrontsize64 = Feature{ pub const feature_xnack = Feature{ .name = "xnack", .description = "Enable XNACK support", - .llvm_name = "xnack", .subfeatures = &[_]*const Feature { }, }; @@ -968,7 +861,6 @@ pub const feature_xnack = Feature{ pub const feature_halfRate64Ops = Feature{ .name = "half-rate-64-ops", .description = "Most fp64 instructions are half rate instead of quarter", - .llvm_name = "half-rate-64-ops", .subfeatures = &[_]*const Feature { }, }; @@ -1091,16 +983,16 @@ pub const cpu_bonaire = Cpu{ &feature_codeObjectV3, &feature_noXnackSupport, &feature_ldsbankcount32, - &feature_gfx7Gfx8Gfx9Insts, - &feature_mimgR128, - &feature_localmemorysize65536, - &feature_movrel, &feature_trigReducedRange, - &feature_wavefrontsize64, - &feature_flatAddressSpace, - &feature_ciInsts, &feature_noSramEccSupport, &feature_fp64, + &feature_movrel, + &feature_ciInsts, + &feature_localmemorysize65536, + &feature_mimgR128, + &feature_wavefrontsize64, + &feature_flatAddressSpace, + &feature_gfx7Gfx8Gfx9Insts, &feature_seaIslands, }, }; @@ -1113,28 +1005,28 @@ pub const cpu_carrizo = Cpu{ &feature_fastFmaf, &feature_ldsbankcount32, &feature_unpackedD16Vmem, - &feature_movrel, + &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_scalarStores, - &feature_gcn3Encoding, + &feature_mimgR128, &feature_flatAddressSpace, - &feature_dpp, &feature_inv2piInlineImm, - &feature_fp64, &feature_BitInsts16, - &feature_trigReducedRange, - &feature_vgprIndexMode, - &feature_wavefrontsize64, - &feature_gfx8Insts, - &feature_gfx7Gfx8Gfx9Insts, - &feature_mimgR128, - &feature_intClampInsts, - &feature_sMemrealtime, - &feature_sdwaMav, - &feature_sdwaOutModsVopc, &feature_volcanicIslands, &feature_xnack, &feature_halfRate64Ops, @@ -1149,28 +1041,28 @@ pub const cpu_fiji = Cpu{ &feature_noXnackSupport, &feature_ldsbankcount32, &feature_unpackedD16Vmem, - &feature_movrel, + &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_scalarStores, - &feature_gcn3Encoding, + &feature_mimgR128, &feature_flatAddressSpace, - &feature_dpp, &feature_inv2piInlineImm, - &feature_fp64, &feature_BitInsts16, - &feature_trigReducedRange, - &feature_vgprIndexMode, - &feature_wavefrontsize64, - &feature_gfx8Insts, - &feature_gfx7Gfx8Gfx9Insts, - &feature_mimgR128, - &feature_intClampInsts, - &feature_sMemrealtime, - &feature_sdwaMav, - &feature_sdwaOutModsVopc, &feature_volcanicIslands, }, }; @@ -1200,40 +1092,40 @@ pub const cpu_gfx1010 = Cpu{ &feature_dlInsts, &feature_noXnackSupport, &feature_flatSegmentOffsetBug, - &feature_movrel, - &feature_gfx9Insts, - &feature_ciInsts, - &feature_noSramEccSupport, - &feature_noSdstCmpx, - &feature_fmaMixInsts, - &feature_sdwa, - &feature_localmemorysize65536, - &feature_sdwaScalar, + &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_noDataDepHazard, + &feature_movrel, + &feature_fmaMixInsts, + &feature_noSramEccSupport, + &feature_sdwa, + &feature_sdwaOmod, + &feature_vop3Literal, + &feature_dpp8, + &feature_gfx10Insts, + &feature_localmemorysize65536, + &feature_mimgR128, &feature_flatAddressSpace, - &feature_dpp, &feature_addNoCarryInsts, + &feature_noDataDepHazard, + &feature_flatInstOffsets, &feature_inv2piInlineImm, - &feature_fp64, - &feature_dpp8, - &feature_BitInsts16, - &feature_registerBanking, - &feature_gfx8Insts, + &feature_gfx9Insts, &feature_flatGlobalInsts, - &feature_flatInstOffsets, - &feature_pkFmacF16Inst, - &feature_vop3p, - &feature_mimgR128, - &feature_intClampInsts, - &feature_sMemrealtime, - &feature_fastFmaf, - &feature_vop3Literal, - &feature_sdwaOmod, - &feature_gfx10Insts, + &feature_BitInsts16, + &feature_noSdstCmpx, &feature_gfx10, &feature_instFwdPrefetchBug, &feature_ldsbankcount32, @@ -1265,40 +1157,40 @@ pub const cpu_gfx1011 = Cpu{ &feature_dot5Insts, &feature_dot6Insts, &feature_flatSegmentOffsetBug, - &feature_movrel, - &feature_gfx9Insts, - &feature_ciInsts, - &feature_noSramEccSupport, - &feature_noSdstCmpx, - &feature_fmaMixInsts, - &feature_sdwa, - &feature_localmemorysize65536, - &feature_sdwaScalar, + &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_noDataDepHazard, + &feature_movrel, + &feature_fmaMixInsts, + &feature_noSramEccSupport, + &feature_sdwa, + &feature_sdwaOmod, + &feature_vop3Literal, + &feature_dpp8, + &feature_gfx10Insts, + &feature_localmemorysize65536, + &feature_mimgR128, &feature_flatAddressSpace, - &feature_dpp, &feature_addNoCarryInsts, + &feature_noDataDepHazard, + &feature_flatInstOffsets, &feature_inv2piInlineImm, - &feature_fp64, - &feature_dpp8, - &feature_BitInsts16, - &feature_registerBanking, - &feature_gfx8Insts, + &feature_gfx9Insts, &feature_flatGlobalInsts, - &feature_flatInstOffsets, - &feature_pkFmacF16Inst, - &feature_vop3p, - &feature_mimgR128, - &feature_intClampInsts, - &feature_sMemrealtime, - &feature_fastFmaf, - &feature_vop3Literal, - &feature_sdwaOmod, - &feature_gfx10Insts, + &feature_BitInsts16, + &feature_noSdstCmpx, &feature_gfx10, &feature_instFwdPrefetchBug, &feature_ldsbankcount32, @@ -1329,40 +1221,40 @@ pub const cpu_gfx1012 = Cpu{ &feature_dot5Insts, &feature_dot6Insts, &feature_flatSegmentOffsetBug, - &feature_movrel, - &feature_gfx9Insts, - &feature_ciInsts, - &feature_noSramEccSupport, - &feature_noSdstCmpx, - &feature_fmaMixInsts, - &feature_sdwa, - &feature_localmemorysize65536, - &feature_sdwaScalar, + &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_noDataDepHazard, + &feature_movrel, + &feature_fmaMixInsts, + &feature_noSramEccSupport, + &feature_sdwa, + &feature_sdwaOmod, + &feature_vop3Literal, + &feature_dpp8, + &feature_gfx10Insts, + &feature_localmemorysize65536, + &feature_mimgR128, &feature_flatAddressSpace, - &feature_dpp, &feature_addNoCarryInsts, + &feature_noDataDepHazard, + &feature_flatInstOffsets, &feature_inv2piInlineImm, - &feature_fp64, - &feature_dpp8, - &feature_BitInsts16, - &feature_registerBanking, - &feature_gfx8Insts, + &feature_gfx9Insts, &feature_flatGlobalInsts, - &feature_flatInstOffsets, - &feature_pkFmacF16Inst, - &feature_vop3p, - &feature_mimgR128, - &feature_intClampInsts, - &feature_sMemrealtime, - &feature_fastFmaf, - &feature_vop3Literal, - &feature_sdwaOmod, - &feature_gfx10Insts, + &feature_BitInsts16, + &feature_noSdstCmpx, &feature_gfx10, &feature_instFwdPrefetchBug, &feature_ldsbankcount32, @@ -1390,13 +1282,13 @@ pub const cpu_gfx600 = Cpu{ &feature_noXnackSupport, &feature_fastFmaf, &feature_ldsbankcount32, - &feature_mimgR128, - &feature_movrel, &feature_localmemorysize32768, &feature_trigReducedRange, - &feature_wavefrontsize64, &feature_noSramEccSupport, &feature_fp64, + &feature_movrel, + &feature_mimgR128, + &feature_wavefrontsize64, &feature_southernIslands, &feature_halfRate64Ops, }, @@ -1409,13 +1301,13 @@ pub const cpu_gfx601 = Cpu{ &feature_codeObjectV3, &feature_noXnackSupport, &feature_ldsbankcount32, - &feature_mimgR128, - &feature_movrel, &feature_localmemorysize32768, &feature_trigReducedRange, - &feature_wavefrontsize64, &feature_noSramEccSupport, &feature_fp64, + &feature_movrel, + &feature_mimgR128, + &feature_wavefrontsize64, &feature_southernIslands, }, }; @@ -1427,16 +1319,16 @@ pub const cpu_gfx700 = Cpu{ &feature_codeObjectV3, &feature_noXnackSupport, &feature_ldsbankcount32, - &feature_gfx7Gfx8Gfx9Insts, - &feature_mimgR128, - &feature_localmemorysize65536, - &feature_movrel, &feature_trigReducedRange, - &feature_wavefrontsize64, - &feature_flatAddressSpace, - &feature_ciInsts, &feature_noSramEccSupport, &feature_fp64, + &feature_movrel, + &feature_ciInsts, + &feature_localmemorysize65536, + &feature_mimgR128, + &feature_wavefrontsize64, + &feature_flatAddressSpace, + &feature_gfx7Gfx8Gfx9Insts, &feature_seaIslands, }, }; @@ -1449,16 +1341,16 @@ pub const cpu_gfx701 = Cpu{ &feature_noXnackSupport, &feature_fastFmaf, &feature_ldsbankcount32, - &feature_gfx7Gfx8Gfx9Insts, - &feature_mimgR128, - &feature_localmemorysize65536, - &feature_movrel, &feature_trigReducedRange, - &feature_wavefrontsize64, - &feature_flatAddressSpace, - &feature_ciInsts, &feature_noSramEccSupport, &feature_fp64, + &feature_movrel, + &feature_ciInsts, + &feature_localmemorysize65536, + &feature_mimgR128, + &feature_wavefrontsize64, + &feature_flatAddressSpace, + &feature_gfx7Gfx8Gfx9Insts, &feature_seaIslands, &feature_halfRate64Ops, }, @@ -1472,16 +1364,16 @@ pub const cpu_gfx702 = Cpu{ &feature_noXnackSupport, &feature_fastFmaf, &feature_ldsbankcount16, - &feature_gfx7Gfx8Gfx9Insts, - &feature_mimgR128, - &feature_localmemorysize65536, - &feature_movrel, &feature_trigReducedRange, - &feature_wavefrontsize64, - &feature_flatAddressSpace, - &feature_ciInsts, &feature_noSramEccSupport, &feature_fp64, + &feature_movrel, + &feature_ciInsts, + &feature_localmemorysize65536, + &feature_mimgR128, + &feature_wavefrontsize64, + &feature_flatAddressSpace, + &feature_gfx7Gfx8Gfx9Insts, &feature_seaIslands, }, }; @@ -1493,16 +1385,16 @@ pub const cpu_gfx703 = Cpu{ &feature_codeObjectV3, &feature_noXnackSupport, &feature_ldsbankcount16, - &feature_gfx7Gfx8Gfx9Insts, - &feature_mimgR128, - &feature_localmemorysize65536, - &feature_movrel, &feature_trigReducedRange, - &feature_wavefrontsize64, - &feature_flatAddressSpace, - &feature_ciInsts, &feature_noSramEccSupport, &feature_fp64, + &feature_movrel, + &feature_ciInsts, + &feature_localmemorysize65536, + &feature_mimgR128, + &feature_wavefrontsize64, + &feature_flatAddressSpace, + &feature_gfx7Gfx8Gfx9Insts, &feature_seaIslands, }, }; @@ -1514,16 +1406,16 @@ pub const cpu_gfx704 = Cpu{ &feature_codeObjectV3, &feature_noXnackSupport, &feature_ldsbankcount32, - &feature_gfx7Gfx8Gfx9Insts, - &feature_mimgR128, - &feature_localmemorysize65536, - &feature_movrel, &feature_trigReducedRange, - &feature_wavefrontsize64, - &feature_flatAddressSpace, - &feature_ciInsts, &feature_noSramEccSupport, &feature_fp64, + &feature_movrel, + &feature_ciInsts, + &feature_localmemorysize65536, + &feature_mimgR128, + &feature_wavefrontsize64, + &feature_flatAddressSpace, + &feature_gfx7Gfx8Gfx9Insts, &feature_seaIslands, }, }; @@ -1536,28 +1428,28 @@ pub const cpu_gfx801 = Cpu{ &feature_fastFmaf, &feature_ldsbankcount32, &feature_unpackedD16Vmem, - &feature_movrel, + &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_scalarStores, - &feature_gcn3Encoding, + &feature_mimgR128, &feature_flatAddressSpace, - &feature_dpp, &feature_inv2piInlineImm, - &feature_fp64, &feature_BitInsts16, - &feature_trigReducedRange, - &feature_vgprIndexMode, - &feature_wavefrontsize64, - &feature_gfx8Insts, - &feature_gfx7Gfx8Gfx9Insts, - &feature_mimgR128, - &feature_intClampInsts, - &feature_sMemrealtime, - &feature_sdwaMav, - &feature_sdwaOutModsVopc, &feature_volcanicIslands, &feature_xnack, &feature_halfRate64Ops, @@ -1573,28 +1465,28 @@ pub const cpu_gfx802 = Cpu{ &feature_ldsbankcount32, &feature_sgprInitBug, &feature_unpackedD16Vmem, - &feature_movrel, + &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_scalarStores, - &feature_gcn3Encoding, + &feature_mimgR128, &feature_flatAddressSpace, - &feature_dpp, &feature_inv2piInlineImm, - &feature_fp64, &feature_BitInsts16, - &feature_trigReducedRange, - &feature_vgprIndexMode, - &feature_wavefrontsize64, - &feature_gfx8Insts, - &feature_gfx7Gfx8Gfx9Insts, - &feature_mimgR128, - &feature_intClampInsts, - &feature_sMemrealtime, - &feature_sdwaMav, - &feature_sdwaOutModsVopc, &feature_volcanicIslands, }, }; @@ -1607,28 +1499,28 @@ pub const cpu_gfx803 = Cpu{ &feature_noXnackSupport, &feature_ldsbankcount32, &feature_unpackedD16Vmem, - &feature_movrel, + &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_scalarStores, - &feature_gcn3Encoding, + &feature_mimgR128, &feature_flatAddressSpace, - &feature_dpp, &feature_inv2piInlineImm, - &feature_fp64, &feature_BitInsts16, - &feature_trigReducedRange, - &feature_vgprIndexMode, - &feature_wavefrontsize64, - &feature_gfx8Insts, - &feature_gfx7Gfx8Gfx9Insts, - &feature_mimgR128, - &feature_intClampInsts, - &feature_sMemrealtime, - &feature_sdwaMav, - &feature_sdwaOutModsVopc, &feature_volcanicIslands, }, }; @@ -1639,28 +1531,28 @@ pub const cpu_gfx810 = Cpu{ .subfeatures = &[_]*const Feature { &feature_codeObjectV3, &feature_ldsbankcount16, - &feature_movrel, + &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_scalarStores, - &feature_gcn3Encoding, + &feature_mimgR128, &feature_flatAddressSpace, - &feature_dpp, &feature_inv2piInlineImm, - &feature_fp64, &feature_BitInsts16, - &feature_trigReducedRange, - &feature_vgprIndexMode, - &feature_wavefrontsize64, - &feature_gfx8Insts, - &feature_gfx7Gfx8Gfx9Insts, - &feature_mimgR128, - &feature_intClampInsts, - &feature_sMemrealtime, - &feature_sdwaMav, - &feature_sdwaOutModsVopc, &feature_volcanicIslands, &feature_xnack, }, @@ -1673,36 +1565,36 @@ pub const cpu_gfx900 = Cpu{ &feature_codeObjectV3, &feature_noSramEccSupport, &feature_noXnackSupport, - &feature_gfx9Insts, + &feature_fp64, + &feature_vop3p, + &feature_sMemrealtime, + &feature_gfx8Insts, + &feature_dpp, + &feature_sdwaSdst, &feature_ciInsts, - &feature_sdwa, - &feature_localmemorysize65536, + &feature_apertureRegs, &feature_scalarStores, - &feature_sdwaScalar, - &feature_sdwaSdst, + &feature_intClampInsts, &feature_gcn3Encoding, - &feature_apertureRegs, &feature_flatScratchInsts, - &feature_r128A16, - &feature_flatAddressSpace, - &feature_dpp, - &feature_addNoCarryInsts, - &feature_inv2piInlineImm, - &feature_fp64, - &feature_BitInsts16, - &feature_vgprIndexMode, + &feature_gfx7Gfx8Gfx9Insts, &feature_wavefrontsize64, - &feature_gfx8Insts, - &feature_flatGlobalInsts, - &feature_scalarFlatScratchInsts, &feature_scalarAtomics, - &feature_flatInstOffsets, - &feature_gfx7Gfx8Gfx9Insts, - &feature_vop3p, - &feature_sMemrealtime, - &feature_intClampInsts, + &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, &feature_gfx9, &feature_ldsbankcount32, &feature_madMixInsts, @@ -1715,36 +1607,36 @@ pub const cpu_gfx902 = Cpu{ .subfeatures = &[_]*const Feature { &feature_codeObjectV3, &feature_noSramEccSupport, - &feature_gfx9Insts, + &feature_fp64, + &feature_vop3p, + &feature_sMemrealtime, + &feature_gfx8Insts, + &feature_dpp, + &feature_sdwaSdst, &feature_ciInsts, - &feature_sdwa, - &feature_localmemorysize65536, + &feature_apertureRegs, &feature_scalarStores, - &feature_sdwaScalar, - &feature_sdwaSdst, + &feature_intClampInsts, &feature_gcn3Encoding, - &feature_apertureRegs, &feature_flatScratchInsts, - &feature_r128A16, - &feature_flatAddressSpace, - &feature_dpp, - &feature_addNoCarryInsts, - &feature_inv2piInlineImm, - &feature_fp64, - &feature_BitInsts16, - &feature_vgprIndexMode, + &feature_gfx7Gfx8Gfx9Insts, &feature_wavefrontsize64, - &feature_gfx8Insts, - &feature_flatGlobalInsts, - &feature_scalarFlatScratchInsts, &feature_scalarAtomics, - &feature_flatInstOffsets, - &feature_gfx7Gfx8Gfx9Insts, - &feature_vop3p, - &feature_sMemrealtime, - &feature_intClampInsts, + &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, &feature_gfx9, &feature_ldsbankcount32, &feature_madMixInsts, @@ -1760,36 +1652,36 @@ pub const cpu_gfx904 = Cpu{ &feature_noSramEccSupport, &feature_noXnackSupport, &feature_fmaMixInsts, - &feature_gfx9Insts, + &feature_fp64, + &feature_vop3p, + &feature_sMemrealtime, + &feature_gfx8Insts, + &feature_dpp, + &feature_sdwaSdst, &feature_ciInsts, - &feature_sdwa, - &feature_localmemorysize65536, + &feature_apertureRegs, &feature_scalarStores, - &feature_sdwaScalar, - &feature_sdwaSdst, + &feature_intClampInsts, &feature_gcn3Encoding, - &feature_apertureRegs, &feature_flatScratchInsts, - &feature_r128A16, - &feature_flatAddressSpace, - &feature_dpp, - &feature_addNoCarryInsts, - &feature_inv2piInlineImm, - &feature_fp64, - &feature_BitInsts16, - &feature_vgprIndexMode, + &feature_gfx7Gfx8Gfx9Insts, &feature_wavefrontsize64, - &feature_gfx8Insts, - &feature_flatGlobalInsts, - &feature_scalarFlatScratchInsts, &feature_scalarAtomics, - &feature_flatInstOffsets, - &feature_gfx7Gfx8Gfx9Insts, - &feature_vop3p, - &feature_sMemrealtime, - &feature_intClampInsts, + &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, &feature_gfx9, &feature_ldsbankcount32, }, @@ -1805,36 +1697,36 @@ pub const cpu_gfx906 = Cpu{ &feature_dot1Insts, &feature_dot2Insts, &feature_fmaMixInsts, - &feature_gfx9Insts, + &feature_fp64, + &feature_vop3p, + &feature_sMemrealtime, + &feature_gfx8Insts, + &feature_dpp, + &feature_sdwaSdst, &feature_ciInsts, - &feature_sdwa, - &feature_localmemorysize65536, + &feature_apertureRegs, &feature_scalarStores, - &feature_sdwaScalar, - &feature_sdwaSdst, + &feature_intClampInsts, &feature_gcn3Encoding, - &feature_apertureRegs, &feature_flatScratchInsts, - &feature_r128A16, - &feature_flatAddressSpace, - &feature_dpp, - &feature_addNoCarryInsts, - &feature_inv2piInlineImm, - &feature_fp64, - &feature_BitInsts16, - &feature_vgprIndexMode, + &feature_gfx7Gfx8Gfx9Insts, &feature_wavefrontsize64, - &feature_gfx8Insts, - &feature_flatGlobalInsts, - &feature_scalarFlatScratchInsts, &feature_scalarAtomics, - &feature_flatInstOffsets, - &feature_gfx7Gfx8Gfx9Insts, - &feature_vop3p, - &feature_sMemrealtime, - &feature_intClampInsts, + &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, &feature_gfx9, &feature_ldsbankcount32, &feature_halfRate64Ops, @@ -1855,36 +1747,36 @@ pub const cpu_gfx908 = Cpu{ &feature_dot5Insts, &feature_dot6Insts, &feature_fmaMixInsts, - &feature_gfx9Insts, + &feature_fp64, + &feature_vop3p, + &feature_sMemrealtime, + &feature_gfx8Insts, + &feature_dpp, + &feature_sdwaSdst, &feature_ciInsts, - &feature_sdwa, - &feature_localmemorysize65536, + &feature_apertureRegs, &feature_scalarStores, - &feature_sdwaScalar, - &feature_sdwaSdst, + &feature_intClampInsts, &feature_gcn3Encoding, - &feature_apertureRegs, &feature_flatScratchInsts, - &feature_r128A16, - &feature_flatAddressSpace, - &feature_dpp, - &feature_addNoCarryInsts, - &feature_inv2piInlineImm, - &feature_fp64, - &feature_BitInsts16, - &feature_vgprIndexMode, + &feature_gfx7Gfx8Gfx9Insts, &feature_wavefrontsize64, - &feature_gfx8Insts, - &feature_flatGlobalInsts, - &feature_scalarFlatScratchInsts, &feature_scalarAtomics, - &feature_flatInstOffsets, - &feature_gfx7Gfx8Gfx9Insts, - &feature_vop3p, - &feature_sMemrealtime, - &feature_intClampInsts, + &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, &feature_gfx9, &feature_ldsbankcount32, &feature_maiInsts, @@ -1900,36 +1792,36 @@ pub const cpu_gfx909 = Cpu{ .llvm_name = "gfx909", .subfeatures = &[_]*const Feature { &feature_codeObjectV3, - &feature_gfx9Insts, + &feature_fp64, + &feature_vop3p, + &feature_sMemrealtime, + &feature_gfx8Insts, + &feature_dpp, + &feature_sdwaSdst, &feature_ciInsts, - &feature_sdwa, - &feature_localmemorysize65536, + &feature_apertureRegs, &feature_scalarStores, - &feature_sdwaScalar, - &feature_sdwaSdst, + &feature_intClampInsts, &feature_gcn3Encoding, - &feature_apertureRegs, &feature_flatScratchInsts, - &feature_r128A16, - &feature_flatAddressSpace, - &feature_dpp, - &feature_addNoCarryInsts, - &feature_inv2piInlineImm, - &feature_fp64, - &feature_BitInsts16, - &feature_vgprIndexMode, + &feature_gfx7Gfx8Gfx9Insts, &feature_wavefrontsize64, - &feature_gfx8Insts, - &feature_flatGlobalInsts, - &feature_scalarFlatScratchInsts, &feature_scalarAtomics, - &feature_flatInstOffsets, - &feature_gfx7Gfx8Gfx9Insts, - &feature_vop3p, - &feature_sMemrealtime, - &feature_intClampInsts, + &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, &feature_gfx9, &feature_ldsbankcount32, &feature_madMixInsts, @@ -1944,13 +1836,13 @@ pub const cpu_hainan = Cpu{ &feature_codeObjectV3, &feature_noXnackSupport, &feature_ldsbankcount32, - &feature_mimgR128, - &feature_movrel, &feature_localmemorysize32768, &feature_trigReducedRange, - &feature_wavefrontsize64, &feature_noSramEccSupport, &feature_fp64, + &feature_movrel, + &feature_mimgR128, + &feature_wavefrontsize64, &feature_southernIslands, }, }; @@ -1963,16 +1855,16 @@ pub const cpu_hawaii = Cpu{ &feature_noXnackSupport, &feature_fastFmaf, &feature_ldsbankcount32, - &feature_gfx7Gfx8Gfx9Insts, - &feature_mimgR128, - &feature_localmemorysize65536, - &feature_movrel, &feature_trigReducedRange, - &feature_wavefrontsize64, - &feature_flatAddressSpace, - &feature_ciInsts, &feature_noSramEccSupport, &feature_fp64, + &feature_movrel, + &feature_ciInsts, + &feature_localmemorysize65536, + &feature_mimgR128, + &feature_wavefrontsize64, + &feature_flatAddressSpace, + &feature_gfx7Gfx8Gfx9Insts, &feature_seaIslands, &feature_halfRate64Ops, }, @@ -1987,28 +1879,28 @@ pub const cpu_iceland = Cpu{ &feature_ldsbankcount32, &feature_sgprInitBug, &feature_unpackedD16Vmem, - &feature_movrel, + &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_scalarStores, - &feature_gcn3Encoding, + &feature_mimgR128, &feature_flatAddressSpace, - &feature_dpp, &feature_inv2piInlineImm, - &feature_fp64, &feature_BitInsts16, - &feature_trigReducedRange, - &feature_vgprIndexMode, - &feature_wavefrontsize64, - &feature_gfx8Insts, - &feature_gfx7Gfx8Gfx9Insts, - &feature_mimgR128, - &feature_intClampInsts, - &feature_sMemrealtime, - &feature_sdwaMav, - &feature_sdwaOutModsVopc, &feature_volcanicIslands, }, }; @@ -2020,16 +1912,16 @@ pub const cpu_kabini = Cpu{ &feature_codeObjectV3, &feature_noXnackSupport, &feature_ldsbankcount16, - &feature_gfx7Gfx8Gfx9Insts, - &feature_mimgR128, - &feature_localmemorysize65536, - &feature_movrel, &feature_trigReducedRange, - &feature_wavefrontsize64, - &feature_flatAddressSpace, - &feature_ciInsts, &feature_noSramEccSupport, &feature_fp64, + &feature_movrel, + &feature_ciInsts, + &feature_localmemorysize65536, + &feature_mimgR128, + &feature_wavefrontsize64, + &feature_flatAddressSpace, + &feature_gfx7Gfx8Gfx9Insts, &feature_seaIslands, }, }; @@ -2041,16 +1933,16 @@ pub const cpu_kaveri = Cpu{ &feature_codeObjectV3, &feature_noXnackSupport, &feature_ldsbankcount32, - &feature_gfx7Gfx8Gfx9Insts, - &feature_mimgR128, - &feature_localmemorysize65536, - &feature_movrel, &feature_trigReducedRange, - &feature_wavefrontsize64, - &feature_flatAddressSpace, - &feature_ciInsts, &feature_noSramEccSupport, &feature_fp64, + &feature_movrel, + &feature_ciInsts, + &feature_localmemorysize65536, + &feature_mimgR128, + &feature_wavefrontsize64, + &feature_flatAddressSpace, + &feature_gfx7Gfx8Gfx9Insts, &feature_seaIslands, }, }; @@ -2062,16 +1954,16 @@ pub const cpu_mullins = Cpu{ &feature_codeObjectV3, &feature_noXnackSupport, &feature_ldsbankcount16, - &feature_gfx7Gfx8Gfx9Insts, - &feature_mimgR128, - &feature_localmemorysize65536, - &feature_movrel, &feature_trigReducedRange, - &feature_wavefrontsize64, - &feature_flatAddressSpace, - &feature_ciInsts, &feature_noSramEccSupport, &feature_fp64, + &feature_movrel, + &feature_ciInsts, + &feature_localmemorysize65536, + &feature_mimgR128, + &feature_wavefrontsize64, + &feature_flatAddressSpace, + &feature_gfx7Gfx8Gfx9Insts, &feature_seaIslands, }, }; @@ -2083,13 +1975,13 @@ pub const cpu_oland = Cpu{ &feature_codeObjectV3, &feature_noXnackSupport, &feature_ldsbankcount32, - &feature_mimgR128, - &feature_movrel, &feature_localmemorysize32768, &feature_trigReducedRange, - &feature_wavefrontsize64, &feature_noSramEccSupport, &feature_fp64, + &feature_movrel, + &feature_mimgR128, + &feature_wavefrontsize64, &feature_southernIslands, }, }; @@ -2101,13 +1993,13 @@ pub const cpu_pitcairn = Cpu{ &feature_codeObjectV3, &feature_noXnackSupport, &feature_ldsbankcount32, - &feature_mimgR128, - &feature_movrel, &feature_localmemorysize32768, &feature_trigReducedRange, - &feature_wavefrontsize64, &feature_noSramEccSupport, &feature_fp64, + &feature_movrel, + &feature_mimgR128, + &feature_wavefrontsize64, &feature_southernIslands, }, }; @@ -2120,28 +2012,28 @@ pub const cpu_polaris10 = Cpu{ &feature_noXnackSupport, &feature_ldsbankcount32, &feature_unpackedD16Vmem, - &feature_movrel, + &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_scalarStores, - &feature_gcn3Encoding, + &feature_mimgR128, &feature_flatAddressSpace, - &feature_dpp, &feature_inv2piInlineImm, - &feature_fp64, &feature_BitInsts16, - &feature_trigReducedRange, - &feature_vgprIndexMode, - &feature_wavefrontsize64, - &feature_gfx8Insts, - &feature_gfx7Gfx8Gfx9Insts, - &feature_mimgR128, - &feature_intClampInsts, - &feature_sMemrealtime, - &feature_sdwaMav, - &feature_sdwaOutModsVopc, &feature_volcanicIslands, }, }; @@ -2154,28 +2046,28 @@ pub const cpu_polaris11 = Cpu{ &feature_noXnackSupport, &feature_ldsbankcount32, &feature_unpackedD16Vmem, - &feature_movrel, + &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_scalarStores, - &feature_gcn3Encoding, + &feature_mimgR128, &feature_flatAddressSpace, - &feature_dpp, &feature_inv2piInlineImm, - &feature_fp64, &feature_BitInsts16, - &feature_trigReducedRange, - &feature_vgprIndexMode, - &feature_wavefrontsize64, - &feature_gfx8Insts, - &feature_gfx7Gfx8Gfx9Insts, - &feature_mimgR128, - &feature_intClampInsts, - &feature_sMemrealtime, - &feature_sdwaMav, - &feature_sdwaOutModsVopc, &feature_volcanicIslands, }, }; @@ -2186,28 +2078,28 @@ pub const cpu_stoney = Cpu{ .subfeatures = &[_]*const Feature { &feature_codeObjectV3, &feature_ldsbankcount16, - &feature_movrel, + &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_scalarStores, - &feature_gcn3Encoding, + &feature_mimgR128, &feature_flatAddressSpace, - &feature_dpp, &feature_inv2piInlineImm, - &feature_fp64, &feature_BitInsts16, - &feature_trigReducedRange, - &feature_vgprIndexMode, - &feature_wavefrontsize64, - &feature_gfx8Insts, - &feature_gfx7Gfx8Gfx9Insts, - &feature_mimgR128, - &feature_intClampInsts, - &feature_sMemrealtime, - &feature_sdwaMav, - &feature_sdwaOutModsVopc, &feature_volcanicIslands, &feature_xnack, }, @@ -2221,13 +2113,13 @@ pub const cpu_tahiti = Cpu{ &feature_noXnackSupport, &feature_fastFmaf, &feature_ldsbankcount32, - &feature_mimgR128, - &feature_movrel, &feature_localmemorysize32768, &feature_trigReducedRange, - &feature_wavefrontsize64, &feature_noSramEccSupport, &feature_fp64, + &feature_movrel, + &feature_mimgR128, + &feature_wavefrontsize64, &feature_southernIslands, &feature_halfRate64Ops, }, @@ -2242,28 +2134,28 @@ pub const cpu_tonga = Cpu{ &feature_ldsbankcount32, &feature_sgprInitBug, &feature_unpackedD16Vmem, - &feature_movrel, + &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_scalarStores, - &feature_gcn3Encoding, + &feature_mimgR128, &feature_flatAddressSpace, - &feature_dpp, &feature_inv2piInlineImm, - &feature_fp64, &feature_BitInsts16, - &feature_trigReducedRange, - &feature_vgprIndexMode, - &feature_wavefrontsize64, - &feature_gfx8Insts, - &feature_gfx7Gfx8Gfx9Insts, - &feature_mimgR128, - &feature_intClampInsts, - &feature_sMemrealtime, - &feature_sdwaMav, - &feature_sdwaOutModsVopc, &feature_volcanicIslands, }, }; @@ -2275,13 +2167,13 @@ pub const cpu_verde = Cpu{ &feature_codeObjectV3, &feature_noXnackSupport, &feature_ldsbankcount32, - &feature_mimgR128, - &feature_movrel, &feature_localmemorysize32768, &feature_trigReducedRange, - &feature_wavefrontsize64, &feature_noSramEccSupport, &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 e45f0170cf..c28ece032f 100644 --- a/lib/std/target/arm.zig +++ b/lib/std/target/arm.zig @@ -4,7 +4,6 @@ const Cpu = @import("std").target.Cpu; pub const feature_armv2 = Feature{ .name = "armv2", .description = "ARMv2 architecture", - .llvm_name = "armv2", .subfeatures = &[_]*const Feature { }, }; @@ -12,7 +11,6 @@ pub const feature_armv2 = Feature{ pub const feature_armv2a = Feature{ .name = "armv2a", .description = "ARMv2a architecture", - .llvm_name = "armv2a", .subfeatures = &[_]*const Feature { }, }; @@ -20,7 +18,6 @@ pub const feature_armv2a = Feature{ pub const feature_armv3 = Feature{ .name = "armv3", .description = "ARMv3 architecture", - .llvm_name = "armv3", .subfeatures = &[_]*const Feature { }, }; @@ -28,7 +25,6 @@ pub const feature_armv3 = Feature{ pub const feature_armv3m = Feature{ .name = "armv3m", .description = "ARMv3m architecture", - .llvm_name = "armv3m", .subfeatures = &[_]*const Feature { }, }; @@ -36,7 +32,6 @@ pub const feature_armv3m = Feature{ pub const feature_armv4 = Feature{ .name = "armv4", .description = "ARMv4 architecture", - .llvm_name = "armv4", .subfeatures = &[_]*const Feature { }, }; @@ -44,7 +39,6 @@ pub const feature_armv4 = Feature{ pub const feature_armv4t = Feature{ .name = "armv4t", .description = "ARMv4t architecture", - .llvm_name = "armv4t", .subfeatures = &[_]*const Feature { &feature_v4t, }, @@ -53,7 +47,6 @@ pub const feature_armv4t = Feature{ pub const feature_armv5t = Feature{ .name = "armv5t", .description = "ARMv5t architecture", - .llvm_name = "armv5t", .subfeatures = &[_]*const Feature { &feature_v4t, }, @@ -62,7 +55,6 @@ pub const feature_armv5t = Feature{ pub const feature_armv5te = Feature{ .name = "armv5te", .description = "ARMv5te architecture", - .llvm_name = "armv5te", .subfeatures = &[_]*const Feature { &feature_v4t, }, @@ -71,7 +63,6 @@ pub const feature_armv5te = Feature{ pub const feature_armv5tej = Feature{ .name = "armv5tej", .description = "ARMv5tej architecture", - .llvm_name = "armv5tej", .subfeatures = &[_]*const Feature { &feature_v4t, }, @@ -80,7 +71,6 @@ pub const feature_armv5tej = Feature{ pub const feature_armv6 = Feature{ .name = "armv6", .description = "ARMv6 architecture", - .llvm_name = "armv6", .subfeatures = &[_]*const Feature { &feature_v4t, &feature_dsp, @@ -90,7 +80,6 @@ pub const feature_armv6 = Feature{ pub const feature_armv6j = Feature{ .name = "armv6j", .description = "ARMv7a architecture", - .llvm_name = "armv6j", .subfeatures = &[_]*const Feature { &feature_v4t, &feature_dsp, @@ -100,7 +89,6 @@ pub const feature_armv6j = Feature{ pub const feature_armv6k = Feature{ .name = "armv6k", .description = "ARMv6k architecture", - .llvm_name = "armv6k", .subfeatures = &[_]*const Feature { &feature_v4t, }, @@ -109,7 +97,6 @@ pub const feature_armv6k = Feature{ pub const feature_armv6kz = Feature{ .name = "armv6kz", .description = "ARMv6kz architecture", - .llvm_name = "armv6kz", .subfeatures = &[_]*const Feature { &feature_v4t, &feature_trustzone, @@ -119,400 +106,379 @@ pub const feature_armv6kz = Feature{ pub const feature_armv6M = Feature{ .name = "armv6-m", .description = "ARMv6m architecture", - .llvm_name = "armv6-m", .subfeatures = &[_]*const Feature { &feature_db, - &feature_thumbMode, &feature_mclass, + &feature_thumbMode, + &feature_strictAlign, &feature_noarm, &feature_v4t, - &feature_strictAlign, }, }; pub const feature_armv6sM = Feature{ .name = "armv6s-m", .description = "ARMv6sm architecture", - .llvm_name = "armv6s-m", .subfeatures = &[_]*const Feature { &feature_db, - &feature_thumbMode, &feature_mclass, + &feature_thumbMode, + &feature_strictAlign, &feature_noarm, &feature_v4t, - &feature_strictAlign, }, }; pub const feature_armv6t2 = Feature{ .name = "armv6t2", .description = "ARMv6t2 architecture", - .llvm_name = "armv6t2", .subfeatures = &[_]*const Feature { - &feature_v4t, - &feature_dsp, &feature_thumb2, + &feature_dsp, + &feature_v4t, }, }; pub const feature_armv7A = Feature{ .name = "armv7-a", .description = "ARMv7a architecture", - .llvm_name = "armv7-a", .subfeatures = &[_]*const Feature { - &feature_perfmon, - &feature_v7clrex, &feature_db, + &feature_dsp, + &feature_fpregs, &feature_thumb2, + &feature_v7clrex, + &feature_aclass, + &feature_perfmon, &feature_v4t, &feature_d32, - &feature_aclass, - &feature_dsp, - &feature_fpregs, }, }; pub const feature_armv7eM = Feature{ .name = "armv7e-m", .description = "ARMv7em architecture", - .llvm_name = "armv7e-m", .subfeatures = &[_]*const Feature { - &feature_perfmon, - &feature_v7clrex, &feature_db, - &feature_thumb2, &feature_mclass, + &feature_hwdiv, + &feature_dsp, &feature_thumbMode, + &feature_thumb2, + &feature_v7clrex, + &feature_perfmon, &feature_noarm, &feature_v4t, - &feature_dsp, - &feature_hwdiv, }, }; pub const feature_armv7k = Feature{ .name = "armv7k", .description = "ARMv7a architecture", - .llvm_name = "armv7k", .subfeatures = &[_]*const Feature { - &feature_v7clrex, &feature_db, - &feature_thumb2, - &feature_v4t, - &feature_d32, &feature_dsp, + &feature_fpregs, + &feature_thumb2, + &feature_v7clrex, &feature_aclass, &feature_perfmon, - &feature_fpregs, + &feature_v4t, + &feature_d32, }, }; pub const feature_armv7M = Feature{ .name = "armv7-m", .description = "ARMv7m architecture", - .llvm_name = "armv7-m", .subfeatures = &[_]*const Feature { - &feature_v7clrex, &feature_db, - &feature_thumb2, &feature_mclass, + &feature_hwdiv, &feature_thumbMode, + &feature_thumb2, + &feature_v7clrex, + &feature_perfmon, &feature_noarm, &feature_v4t, - &feature_perfmon, - &feature_hwdiv, }, }; pub const feature_armv7R = Feature{ .name = "armv7-r", .description = "ARMv7r architecture", - .llvm_name = "armv7-r", .subfeatures = &[_]*const Feature { - &feature_perfmon, - &feature_v7clrex, &feature_db, - &feature_thumb2, - &feature_v4t, &feature_dsp, &feature_hwdiv, &feature_rclass, + &feature_thumb2, + &feature_v7clrex, + &feature_perfmon, + &feature_v4t, }, }; pub const feature_armv7s = Feature{ .name = "armv7s", .description = "ARMv7a architecture", - .llvm_name = "armv7s", .subfeatures = &[_]*const Feature { - &feature_v7clrex, &feature_db, - &feature_thumb2, - &feature_v4t, - &feature_d32, &feature_dsp, + &feature_fpregs, + &feature_thumb2, + &feature_v7clrex, &feature_aclass, &feature_perfmon, - &feature_fpregs, + &feature_v4t, + &feature_d32, }, }; pub const feature_armv7ve = Feature{ .name = "armv7ve", .description = "ARMv7ve architecture", - .llvm_name = "armv7ve", .subfeatures = &[_]*const Feature { - &feature_mp, - &feature_perfmon, + &feature_db, + &feature_dsp, + &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, - &feature_v7clrex, - &feature_db, + &feature_fpregs, &feature_thumb2, + &feature_v7clrex, + &feature_aclass, + &feature_mp, + &feature_perfmon, &feature_v4t, &feature_d32, - &feature_aclass, - &feature_hwdivArm, - &feature_dsp, - &feature_fpregs, }, }; pub const feature_armv8A = Feature{ .name = "armv8-a", .description = "ARMv8a architecture", - .llvm_name = "armv8-a", .subfeatures = &[_]*const Feature { - &feature_mp, - &feature_acquireRelease, - &feature_perfmon, + &feature_db, + &feature_dsp, + &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, - &feature_v7clrex, - &feature_db, - &feature_thumb2, - &feature_fp16, + &feature_fpregs, &feature_v4t, - &feature_d32, + &feature_thumb2, + &feature_v7clrex, &feature_aclass, - &feature_hwdivArm, &feature_crc, - &feature_dsp, - &feature_fpregs, + &feature_mp, + &feature_acquireRelease, + &feature_fp16, + &feature_perfmon, + &feature_d32, }, }; pub const feature_armv8Mbase = Feature{ .name = "armv8-m.base", .description = "ARMv8mBaseline architecture", - .llvm_name = "armv8-m.base", .subfeatures = &[_]*const Feature { - &feature_acquireRelease, - &feature_v7clrex, &feature_db, - &feature_msecext8, - &feature_thumbMode, &feature_mclass, + &feature_hwdiv, + &feature_thumbMode, + &feature_strictAlign, + &feature_v7clrex, + &feature_msecext8, + &feature_acquireRelease, &feature_noarm, &feature_v4t, - &feature_strictAlign, - &feature_hwdiv, }, }; pub const feature_armv8Mmain = Feature{ .name = "armv8-m.main", .description = "ARMv8mMainline architecture", - .llvm_name = "armv8-m.main", .subfeatures = &[_]*const Feature { - &feature_acquireRelease, - &feature_v7clrex, &feature_db, - &feature_msecext8, - &feature_thumb2, &feature_mclass, + &feature_hwdiv, &feature_thumbMode, + &feature_thumb2, + &feature_v7clrex, + &feature_msecext8, + &feature_acquireRelease, + &feature_perfmon, &feature_noarm, &feature_v4t, - &feature_perfmon, - &feature_hwdiv, }, }; pub const feature_armv8R = Feature{ .name = "armv8-r", .description = "ARMv8r architecture", - .llvm_name = "armv8-r", .subfeatures = &[_]*const Feature { - &feature_mp, - &feature_acquireRelease, - &feature_perfmon, - &feature_hwdiv, - &feature_v7clrex, &feature_db, - &feature_thumb2, - &feature_fp16, + &feature_dsp, + &feature_hwdivArm, + &feature_hwdiv, + &feature_rclass, + &feature_fpregs, &feature_v4t, - &feature_d32, &feature_dfb, - &feature_hwdivArm, + &feature_thumb2, + &feature_v7clrex, + &feature_perfmon, &feature_crc, - &feature_dsp, - &feature_fpregs, - &feature_rclass, + &feature_mp, + &feature_acquireRelease, + &feature_fp16, + &feature_d32, }, }; pub const feature_armv81A = Feature{ .name = "armv8.1-a", .description = "ARMv81a architecture", - .llvm_name = "armv8.1-a", .subfeatures = &[_]*const Feature { - &feature_mp, - &feature_acquireRelease, - &feature_perfmon, + &feature_db, + &feature_dsp, + &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, - &feature_v7clrex, - &feature_db, - &feature_thumb2, - &feature_fp16, + &feature_fpregs, &feature_v4t, - &feature_d32, + &feature_thumb2, + &feature_v7clrex, &feature_aclass, - &feature_hwdivArm, &feature_crc, - &feature_dsp, - &feature_fpregs, + &feature_mp, + &feature_acquireRelease, + &feature_fp16, + &feature_perfmon, + &feature_d32, }, }; pub const feature_armv81Mmain = Feature{ .name = "armv8.1-m.main", .description = "ARMv81mMainline architecture", - .llvm_name = "armv8.1-m.main", .subfeatures = &[_]*const Feature { - &feature_acquireRelease, - &feature_lob, - &feature_v7clrex, &feature_db, - &feature_msecext8, - &feature_thumb2, &feature_mclass, + &feature_hwdiv, + &feature_lob, + &feature_thumbMode, + &feature_thumb2, &feature_ras, + &feature_v7clrex, + &feature_msecext8, + &feature_acquireRelease, + &feature_perfmon, &feature_noarm, &feature_v4t, - &feature_thumbMode, - &feature_perfmon, - &feature_hwdiv, }, }; pub const feature_armv82A = Feature{ .name = "armv8.2-a", .description = "ARMv82a architecture", - .llvm_name = "armv8.2-a", .subfeatures = &[_]*const Feature { - &feature_mp, - &feature_acquireRelease, - &feature_perfmon, + &feature_db, + &feature_dsp, + &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, - &feature_v7clrex, - &feature_db, + &feature_fpregs, + &feature_v4t, &feature_thumb2, &feature_ras, - &feature_fp16, - &feature_v4t, - &feature_d32, + &feature_v7clrex, &feature_aclass, - &feature_hwdivArm, &feature_crc, - &feature_dsp, - &feature_fpregs, + &feature_mp, + &feature_acquireRelease, + &feature_fp16, + &feature_perfmon, + &feature_d32, }, }; pub const feature_armv83A = Feature{ .name = "armv8.3-a", .description = "ARMv83a architecture", - .llvm_name = "armv8.3-a", .subfeatures = &[_]*const Feature { - &feature_mp, - &feature_acquireRelease, - &feature_perfmon, + &feature_db, + &feature_dsp, + &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, - &feature_v7clrex, - &feature_db, + &feature_fpregs, + &feature_v4t, &feature_thumb2, &feature_ras, - &feature_fp16, - &feature_v4t, - &feature_d32, + &feature_v7clrex, &feature_aclass, - &feature_hwdivArm, &feature_crc, - &feature_dsp, - &feature_fpregs, + &feature_mp, + &feature_acquireRelease, + &feature_fp16, + &feature_perfmon, + &feature_d32, }, }; pub const feature_armv84A = Feature{ .name = "armv8.4-a", .description = "ARMv84a architecture", - .llvm_name = "armv8.4-a", .subfeatures = &[_]*const Feature { - &feature_mp, - &feature_acquireRelease, - &feature_perfmon, + &feature_db, + &feature_dsp, + &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, - &feature_v7clrex, - &feature_db, + &feature_fpregs, + &feature_v4t, &feature_thumb2, &feature_ras, - &feature_fp16, - &feature_v4t, - &feature_d32, + &feature_v7clrex, &feature_aclass, - &feature_hwdivArm, &feature_crc, - &feature_dsp, - &feature_fpregs, + &feature_mp, + &feature_acquireRelease, + &feature_fp16, + &feature_perfmon, + &feature_d32, }, }; pub const feature_armv85A = Feature{ .name = "armv8.5-a", .description = "ARMv85a architecture", - .llvm_name = "armv8.5-a", .subfeatures = &[_]*const Feature { - &feature_mp, - &feature_acquireRelease, - &feature_perfmon, + &feature_db, + &feature_dsp, + &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, - &feature_v7clrex, - &feature_db, + &feature_fpregs, + &feature_v4t, &feature_thumb2, &feature_ras, - &feature_fp16, - &feature_v4t, - &feature_d32, - &feature_aclass, - &feature_hwdivArm, &feature_sb, + &feature_aclass, &feature_crc, - &feature_dsp, - &feature_fpregs, + &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", - .llvm_name = "8msecext", .subfeatures = &[_]*const Feature { }, }; @@ -520,7 +486,6 @@ pub const feature_msecext8 = Feature{ pub const feature_aclass = Feature{ .name = "aclass", .description = "Is application profile ('A' series)", - .llvm_name = "aclass", .subfeatures = &[_]*const Feature { }, }; @@ -528,17 +493,15 @@ pub const feature_aclass = Feature{ pub const feature_aes = Feature{ .name = "aes", .description = "Enable AES support", - .llvm_name = "aes", .subfeatures = &[_]*const Feature { - &feature_d32, &feature_fpregs, + &feature_d32, }, }; pub const feature_acquireRelease = Feature{ .name = "acquire-release", .description = "Has v8 acquire/release (lda/ldaex etc) instructions", - .llvm_name = "acquire-release", .subfeatures = &[_]*const Feature { }, }; @@ -546,7 +509,6 @@ pub const feature_acquireRelease = Feature{ pub const feature_avoidMovsShop = Feature{ .name = "avoid-movs-shop", .description = "Avoid movs instructions with shifter operand", - .llvm_name = "avoid-movs-shop", .subfeatures = &[_]*const Feature { }, }; @@ -554,7 +516,6 @@ pub const feature_avoidMovsShop = Feature{ pub const feature_avoidPartialCpsr = Feature{ .name = "avoid-partial-cpsr", .description = "Avoid CPSR partial update for OOO execution", - .llvm_name = "avoid-partial-cpsr", .subfeatures = &[_]*const Feature { }, }; @@ -562,7 +523,6 @@ pub const feature_avoidPartialCpsr = Feature{ pub const feature_crc = Feature{ .name = "crc", .description = "Enable support for CRC instructions", - .llvm_name = "crc", .subfeatures = &[_]*const Feature { }, }; @@ -570,7 +530,6 @@ pub const feature_crc = Feature{ pub const feature_cheapPredicableCpsr = Feature{ .name = "cheap-predicable-cpsr", .description = "Disable +1 predication cost for instructions updating CPSR", - .llvm_name = "cheap-predicable-cpsr", .subfeatures = &[_]*const Feature { }, }; @@ -578,7 +537,6 @@ pub const feature_cheapPredicableCpsr = Feature{ pub const feature_vldnAlign = Feature{ .name = "vldn-align", .description = "Check for VLDn unaligned access", - .llvm_name = "vldn-align", .subfeatures = &[_]*const Feature { }, }; @@ -586,17 +544,15 @@ pub const feature_vldnAlign = Feature{ pub const feature_crypto = Feature{ .name = "crypto", .description = "Enable support for Cryptography extensions", - .llvm_name = "crypto", .subfeatures = &[_]*const Feature { - &feature_d32, &feature_fpregs, + &feature_d32, }, }; pub const feature_d32 = Feature{ .name = "d32", .description = "Extend FP to 32 double registers", - .llvm_name = "d32", .subfeatures = &[_]*const Feature { }, }; @@ -604,7 +560,6 @@ pub const feature_d32 = Feature{ pub const feature_db = Feature{ .name = "db", .description = "Has data barrier (dmb/dsb) instructions", - .llvm_name = "db", .subfeatures = &[_]*const Feature { }, }; @@ -612,7 +567,6 @@ pub const feature_db = Feature{ pub const feature_dfb = Feature{ .name = "dfb", .description = "Has full data barrier (dfb) instruction", - .llvm_name = "dfb", .subfeatures = &[_]*const Feature { }, }; @@ -620,7 +574,6 @@ pub const feature_dfb = Feature{ pub const feature_dsp = Feature{ .name = "dsp", .description = "Supports DSP instructions in ARM and/or Thumb2", - .llvm_name = "dsp", .subfeatures = &[_]*const Feature { }, }; @@ -628,7 +581,6 @@ pub const feature_dsp = Feature{ pub const feature_dontWidenVmovs = Feature{ .name = "dont-widen-vmovs", .description = "Don't widen VMOVS to VMOVD", - .llvm_name = "dont-widen-vmovs", .subfeatures = &[_]*const Feature { }, }; @@ -636,17 +588,15 @@ pub const feature_dontWidenVmovs = Feature{ pub const feature_dotprod = Feature{ .name = "dotprod", .description = "Enable support for dot product instructions", - .llvm_name = "dotprod", .subfeatures = &[_]*const Feature { - &feature_d32, &feature_fpregs, + &feature_d32, }, }; pub const feature_executeOnly = Feature{ .name = "execute-only", .description = "Enable the generation of execute only code.", - .llvm_name = "execute-only", .subfeatures = &[_]*const Feature { }, }; @@ -654,7 +604,6 @@ pub const feature_executeOnly = Feature{ pub const feature_expandFpMlx = Feature{ .name = "expand-fp-mlx", .description = "Expand VFP/NEON MLA/MLS instructions", - .llvm_name = "expand-fp-mlx", .subfeatures = &[_]*const Feature { }, }; @@ -662,7 +611,6 @@ pub const feature_expandFpMlx = Feature{ pub const feature_fp16 = Feature{ .name = "fp16", .description = "Enable half-precision floating point", - .llvm_name = "fp16", .subfeatures = &[_]*const Feature { }, }; @@ -670,7 +618,6 @@ pub const feature_fp16 = Feature{ pub const feature_fp16fml = Feature{ .name = "fp16fml", .description = "Enable full half-precision floating point fml instructions", - .llvm_name = "fp16fml", .subfeatures = &[_]*const Feature { &feature_fp16, &feature_fpregs, @@ -680,7 +627,6 @@ pub const feature_fp16fml = Feature{ pub const feature_fp64 = Feature{ .name = "fp64", .description = "Floating point unit supports double precision", - .llvm_name = "fp64", .subfeatures = &[_]*const Feature { &feature_fpregs, }, @@ -689,7 +635,6 @@ pub const feature_fp64 = Feature{ pub const feature_fpao = Feature{ .name = "fpao", .description = "Enable fast computation of positive address offsets", - .llvm_name = "fpao", .subfeatures = &[_]*const Feature { }, }; @@ -697,28 +642,25 @@ pub const feature_fpao = Feature{ pub const feature_fpArmv8 = Feature{ .name = "fp-armv8", .description = "Enable ARMv8 FP", - .llvm_name = "fp-armv8", .subfeatures = &[_]*const Feature { - &feature_fp16, - &feature_d32, &feature_fpregs, + &feature_d32, + &feature_fp16, }, }; pub const feature_fpArmv8d16 = Feature{ .name = "fp-armv8d16", .description = "Enable ARMv8 FP with only 16 d-registers", - .llvm_name = "fp-armv8d16", .subfeatures = &[_]*const Feature { - &feature_fp16, &feature_fpregs, + &feature_fp16, }, }; pub const feature_fpArmv8d16sp = Feature{ .name = "fp-armv8d16sp", .description = "Enable ARMv8 FP with only 16 d-registers and no double precision", - .llvm_name = "fp-armv8d16sp", .subfeatures = &[_]*const Feature { &feature_fp16, &feature_fpregs, @@ -728,7 +670,6 @@ pub const feature_fpArmv8d16sp = Feature{ pub const feature_fpArmv8sp = Feature{ .name = "fp-armv8sp", .description = "Enable ARMv8 FP with no double precision", - .llvm_name = "fp-armv8sp", .subfeatures = &[_]*const Feature { &feature_fp16, &feature_d32, @@ -739,7 +680,6 @@ pub const feature_fpArmv8sp = Feature{ pub const feature_fpregs = Feature{ .name = "fpregs", .description = "Enable FP registers", - .llvm_name = "fpregs", .subfeatures = &[_]*const Feature { }, }; @@ -747,7 +687,6 @@ pub const feature_fpregs = Feature{ pub const feature_fpregs16 = Feature{ .name = "fpregs16", .description = "Enable 16-bit FP registers", - .llvm_name = "fpregs16", .subfeatures = &[_]*const Feature { &feature_fpregs, }, @@ -756,7 +695,6 @@ pub const feature_fpregs16 = Feature{ pub const feature_fpregs64 = Feature{ .name = "fpregs64", .description = "Enable 64-bit FP registers", - .llvm_name = "fpregs64", .subfeatures = &[_]*const Feature { &feature_fpregs, }, @@ -765,7 +703,6 @@ pub const feature_fpregs64 = Feature{ pub const feature_fullfp16 = Feature{ .name = "fullfp16", .description = "Enable full half-precision floating point", - .llvm_name = "fullfp16", .subfeatures = &[_]*const Feature { &feature_fp16, &feature_fpregs, @@ -775,7 +712,6 @@ pub const feature_fullfp16 = Feature{ pub const feature_fuseAes = Feature{ .name = "fuse-aes", .description = "CPU fuses AES crypto operations", - .llvm_name = "fuse-aes", .subfeatures = &[_]*const Feature { }, }; @@ -783,7 +719,6 @@ pub const feature_fuseAes = Feature{ pub const feature_fuseLiterals = Feature{ .name = "fuse-literals", .description = "CPU fuses literal generation operations", - .llvm_name = "fuse-literals", .subfeatures = &[_]*const Feature { }, }; @@ -791,7 +726,6 @@ pub const feature_fuseLiterals = Feature{ pub const feature_hwdivArm = Feature{ .name = "hwdiv-arm", .description = "Enable divide instructions in ARM mode", - .llvm_name = "hwdiv-arm", .subfeatures = &[_]*const Feature { }, }; @@ -799,7 +733,6 @@ pub const feature_hwdivArm = Feature{ pub const feature_hwdiv = Feature{ .name = "hwdiv", .description = "Enable divide instructions in Thumb", - .llvm_name = "hwdiv", .subfeatures = &[_]*const Feature { }, }; @@ -807,7 +740,6 @@ pub const feature_hwdiv = Feature{ pub const feature_noBranchPredictor = Feature{ .name = "no-branch-predictor", .description = "Has no branch predictor", - .llvm_name = "no-branch-predictor", .subfeatures = &[_]*const Feature { }, }; @@ -815,7 +747,6 @@ pub const feature_noBranchPredictor = Feature{ pub const feature_retAddrStack = Feature{ .name = "ret-addr-stack", .description = "Has return address stack", - .llvm_name = "ret-addr-stack", .subfeatures = &[_]*const Feature { }, }; @@ -823,7 +754,6 @@ pub const feature_retAddrStack = Feature{ pub const feature_slowfpvmlx = Feature{ .name = "slowfpvmlx", .description = "Disable VFP / NEON MAC instructions", - .llvm_name = "slowfpvmlx", .subfeatures = &[_]*const Feature { }, }; @@ -831,7 +761,6 @@ pub const feature_slowfpvmlx = Feature{ pub const feature_vmlxHazards = Feature{ .name = "vmlx-hazards", .description = "Has VMLx hazards", - .llvm_name = "vmlx-hazards", .subfeatures = &[_]*const Feature { }, }; @@ -839,7 +768,6 @@ pub const feature_vmlxHazards = Feature{ pub const feature_lob = Feature{ .name = "lob", .description = "Enable Low Overhead Branch extensions", - .llvm_name = "lob", .subfeatures = &[_]*const Feature { }, }; @@ -847,7 +775,6 @@ pub const feature_lob = Feature{ pub const feature_longCalls = Feature{ .name = "long-calls", .description = "Generate calls via indirect call instructions", - .llvm_name = "long-calls", .subfeatures = &[_]*const Feature { }, }; @@ -855,7 +782,6 @@ pub const feature_longCalls = Feature{ pub const feature_mclass = Feature{ .name = "mclass", .description = "Is microcontroller profile ('M' series)", - .llvm_name = "mclass", .subfeatures = &[_]*const Feature { }, }; @@ -863,7 +789,6 @@ pub const feature_mclass = Feature{ pub const feature_mp = Feature{ .name = "mp", .description = "Supports Multiprocessing extension", - .llvm_name = "mp", .subfeatures = &[_]*const Feature { }, }; @@ -871,7 +796,6 @@ pub const feature_mp = Feature{ pub const feature_mve1beat = Feature{ .name = "mve1beat", .description = "Model MVE instructions as a 1 beat per tick architecture", - .llvm_name = "mve1beat", .subfeatures = &[_]*const Feature { }, }; @@ -879,7 +803,6 @@ pub const feature_mve1beat = Feature{ pub const feature_mve2beat = Feature{ .name = "mve2beat", .description = "Model MVE instructions as a 2 beats per tick architecture", - .llvm_name = "mve2beat", .subfeatures = &[_]*const Feature { }, }; @@ -887,7 +810,6 @@ pub const feature_mve2beat = Feature{ pub const feature_mve4beat = Feature{ .name = "mve4beat", .description = "Model MVE instructions as a 4 beats per tick architecture", - .llvm_name = "mve4beat", .subfeatures = &[_]*const Feature { }, }; @@ -895,7 +817,6 @@ pub const feature_mve4beat = Feature{ pub const feature_muxedUnits = Feature{ .name = "muxed-units", .description = "Has muxed AGU and NEON/FPU", - .llvm_name = "muxed-units", .subfeatures = &[_]*const Feature { }, }; @@ -903,17 +824,15 @@ pub const feature_muxedUnits = Feature{ pub const feature_neon = Feature{ .name = "neon", .description = "Enable NEON instructions", - .llvm_name = "neon", .subfeatures = &[_]*const Feature { - &feature_d32, &feature_fpregs, + &feature_d32, }, }; pub const feature_neonfp = Feature{ .name = "neonfp", .description = "Use NEON for single precision FP", - .llvm_name = "neonfp", .subfeatures = &[_]*const Feature { }, }; @@ -921,7 +840,6 @@ pub const feature_neonfp = Feature{ pub const feature_neonFpmovs = Feature{ .name = "neon-fpmovs", .description = "Convert VMOVSR, VMOVRS, VMOVS to NEON", - .llvm_name = "neon-fpmovs", .subfeatures = &[_]*const Feature { }, }; @@ -929,7 +847,6 @@ pub const feature_neonFpmovs = Feature{ pub const feature_naclTrap = Feature{ .name = "nacl-trap", .description = "NaCl trap", - .llvm_name = "nacl-trap", .subfeatures = &[_]*const Feature { }, }; @@ -937,7 +854,6 @@ pub const feature_naclTrap = Feature{ pub const feature_noarm = Feature{ .name = "noarm", .description = "Does not support ARM mode execution", - .llvm_name = "noarm", .subfeatures = &[_]*const Feature { }, }; @@ -945,7 +861,6 @@ pub const feature_noarm = Feature{ pub const feature_noMovt = Feature{ .name = "no-movt", .description = "Don't use movt/movw pairs for 32-bit imms", - .llvm_name = "no-movt", .subfeatures = &[_]*const Feature { }, }; @@ -953,7 +868,6 @@ pub const feature_noMovt = Feature{ pub const feature_noNegImmediates = Feature{ .name = "no-neg-immediates", .description = "Convert immediates and instructions to their negated or complemented equivalent when the immediate does not fit in the encoding.", - .llvm_name = "no-neg-immediates", .subfeatures = &[_]*const Feature { }, }; @@ -961,7 +875,6 @@ pub const feature_noNegImmediates = Feature{ pub const feature_disablePostraScheduler = Feature{ .name = "disable-postra-scheduler", .description = "Don't schedule again after register allocation", - .llvm_name = "disable-postra-scheduler", .subfeatures = &[_]*const Feature { }, }; @@ -969,7 +882,6 @@ pub const feature_disablePostraScheduler = Feature{ pub const feature_nonpipelinedVfp = Feature{ .name = "nonpipelined-vfp", .description = "VFP instructions are not pipelined", - .llvm_name = "nonpipelined-vfp", .subfeatures = &[_]*const Feature { }, }; @@ -977,7 +889,6 @@ pub const feature_nonpipelinedVfp = Feature{ pub const feature_perfmon = Feature{ .name = "perfmon", .description = "Enable support for Performance Monitor extensions", - .llvm_name = "perfmon", .subfeatures = &[_]*const Feature { }, }; @@ -985,7 +896,6 @@ pub const feature_perfmon = Feature{ pub const feature_bit32 = Feature{ .name = "32bit", .description = "Prefer 32-bit Thumb instrs", - .llvm_name = "32bit", .subfeatures = &[_]*const Feature { }, }; @@ -993,7 +903,6 @@ pub const feature_bit32 = Feature{ pub const feature_preferIshst = Feature{ .name = "prefer-ishst", .description = "Prefer ISHST barriers", - .llvm_name = "prefer-ishst", .subfeatures = &[_]*const Feature { }, }; @@ -1001,7 +910,6 @@ pub const feature_preferIshst = Feature{ pub const feature_loopAlign = Feature{ .name = "loop-align", .description = "Prefer 32-bit alignment for loops", - .llvm_name = "loop-align", .subfeatures = &[_]*const Feature { }, }; @@ -1009,7 +917,6 @@ pub const feature_loopAlign = Feature{ pub const feature_preferVmovsr = Feature{ .name = "prefer-vmovsr", .description = "Prefer VMOVSR", - .llvm_name = "prefer-vmovsr", .subfeatures = &[_]*const Feature { }, }; @@ -1017,7 +924,6 @@ pub const feature_preferVmovsr = Feature{ pub const feature_profUnpr = Feature{ .name = "prof-unpr", .description = "Is profitable to unpredicate", - .llvm_name = "prof-unpr", .subfeatures = &[_]*const Feature { }, }; @@ -1025,7 +931,6 @@ pub const feature_profUnpr = Feature{ pub const feature_ras = Feature{ .name = "ras", .description = "Enable Reliability, Availability and Serviceability extensions", - .llvm_name = "ras", .subfeatures = &[_]*const Feature { }, }; @@ -1033,7 +938,6 @@ pub const feature_ras = Feature{ pub const feature_rclass = Feature{ .name = "rclass", .description = "Is realtime profile ('R' series)", - .llvm_name = "rclass", .subfeatures = &[_]*const Feature { }, }; @@ -1041,7 +945,6 @@ pub const feature_rclass = Feature{ pub const feature_readTpHard = Feature{ .name = "read-tp-hard", .description = "Reading thread pointer from register", - .llvm_name = "read-tp-hard", .subfeatures = &[_]*const Feature { }, }; @@ -1049,7 +952,6 @@ pub const feature_readTpHard = Feature{ pub const feature_reserveR9 = Feature{ .name = "reserve-r9", .description = "Reserve R9, making it unavailable as GPR", - .llvm_name = "reserve-r9", .subfeatures = &[_]*const Feature { }, }; @@ -1057,7 +959,6 @@ pub const feature_reserveR9 = Feature{ pub const feature_sb = Feature{ .name = "sb", .description = "Enable v8.5a Speculation Barrier", - .llvm_name = "sb", .subfeatures = &[_]*const Feature { }, }; @@ -1065,17 +966,15 @@ pub const feature_sb = Feature{ pub const feature_sha2 = Feature{ .name = "sha2", .description = "Enable SHA1 and SHA256 support", - .llvm_name = "sha2", .subfeatures = &[_]*const Feature { - &feature_d32, &feature_fpregs, + &feature_d32, }, }; pub const feature_slowFpBrcc = Feature{ .name = "slow-fp-brcc", .description = "FP compare + branch is slow", - .llvm_name = "slow-fp-brcc", .subfeatures = &[_]*const Feature { }, }; @@ -1083,7 +982,6 @@ pub const feature_slowFpBrcc = Feature{ pub const feature_slowLoadDSubreg = Feature{ .name = "slow-load-D-subreg", .description = "Loading into D subregs is slow", - .llvm_name = "slow-load-D-subreg", .subfeatures = &[_]*const Feature { }, }; @@ -1091,7 +989,6 @@ pub const feature_slowLoadDSubreg = Feature{ pub const feature_slowOddReg = Feature{ .name = "slow-odd-reg", .description = "VLDM/VSTM starting with an odd register is slow", - .llvm_name = "slow-odd-reg", .subfeatures = &[_]*const Feature { }, }; @@ -1099,7 +996,6 @@ pub const feature_slowOddReg = Feature{ pub const feature_slowVdup32 = Feature{ .name = "slow-vdup32", .description = "Has slow VDUP32 - prefer VMOV", - .llvm_name = "slow-vdup32", .subfeatures = &[_]*const Feature { }, }; @@ -1107,7 +1003,6 @@ pub const feature_slowVdup32 = Feature{ pub const feature_slowVgetlni32 = Feature{ .name = "slow-vgetlni32", .description = "Has slow VGETLNi32 - prefer VMOV", - .llvm_name = "slow-vgetlni32", .subfeatures = &[_]*const Feature { }, }; @@ -1115,7 +1010,6 @@ pub const feature_slowVgetlni32 = Feature{ pub const feature_splatVfpNeon = Feature{ .name = "splat-vfp-neon", .description = "Splat register from VFP to NEON", - .llvm_name = "splat-vfp-neon", .subfeatures = &[_]*const Feature { &feature_dontWidenVmovs, }, @@ -1124,7 +1018,6 @@ pub const feature_splatVfpNeon = Feature{ pub const feature_strictAlign = Feature{ .name = "strict-align", .description = "Disallow all unaligned memory access", - .llvm_name = "strict-align", .subfeatures = &[_]*const Feature { }, }; @@ -1132,7 +1025,6 @@ pub const feature_strictAlign = Feature{ pub const feature_thumb2 = Feature{ .name = "thumb2", .description = "Enable Thumb2 instructions", - .llvm_name = "thumb2", .subfeatures = &[_]*const Feature { }, }; @@ -1140,7 +1032,6 @@ pub const feature_thumb2 = Feature{ pub const feature_trustzone = Feature{ .name = "trustzone", .description = "Enable support for TrustZone security extensions", - .llvm_name = "trustzone", .subfeatures = &[_]*const Feature { }, }; @@ -1148,7 +1039,6 @@ pub const feature_trustzone = Feature{ pub const feature_useAa = Feature{ .name = "use-aa", .description = "Use alias analysis during codegen", - .llvm_name = "use-aa", .subfeatures = &[_]*const Feature { }, }; @@ -1156,7 +1046,6 @@ pub const feature_useAa = Feature{ pub const feature_useMisched = Feature{ .name = "use-misched", .description = "Use the MachineScheduler", - .llvm_name = "use-misched", .subfeatures = &[_]*const Feature { }, }; @@ -1164,7 +1053,6 @@ pub const feature_useMisched = Feature{ pub const feature_wideStrideVfp = Feature{ .name = "wide-stride-vfp", .description = "Use a wide stride when allocating VFP registers", - .llvm_name = "wide-stride-vfp", .subfeatures = &[_]*const Feature { }, }; @@ -1172,7 +1060,6 @@ pub const feature_wideStrideVfp = Feature{ pub const feature_v7clrex = Feature{ .name = "v7clrex", .description = "Has v7 clrex instruction", - .llvm_name = "v7clrex", .subfeatures = &[_]*const Feature { }, }; @@ -1180,7 +1067,6 @@ pub const feature_v7clrex = Feature{ pub const feature_vfp2 = Feature{ .name = "vfp2", .description = "Enable VFP2 instructions", - .llvm_name = "vfp2", .subfeatures = &[_]*const Feature { &feature_fpregs, }, @@ -1189,7 +1075,6 @@ pub const feature_vfp2 = Feature{ pub const feature_vfp2sp = Feature{ .name = "vfp2sp", .description = "Enable VFP2 instructions with no double precision", - .llvm_name = "vfp2sp", .subfeatures = &[_]*const Feature { &feature_fpregs, }, @@ -1198,17 +1083,15 @@ pub const feature_vfp2sp = Feature{ pub const feature_vfp3 = Feature{ .name = "vfp3", .description = "Enable VFP3 instructions", - .llvm_name = "vfp3", .subfeatures = &[_]*const Feature { - &feature_d32, &feature_fpregs, + &feature_d32, }, }; pub const feature_vfp3d16 = Feature{ .name = "vfp3d16", .description = "Enable VFP3 instructions with only 16 d-registers", - .llvm_name = "vfp3d16", .subfeatures = &[_]*const Feature { &feature_fpregs, }, @@ -1217,7 +1100,6 @@ pub const feature_vfp3d16 = Feature{ pub const feature_vfp3d16sp = Feature{ .name = "vfp3d16sp", .description = "Enable VFP3 instructions with only 16 d-registers and no double precision", - .llvm_name = "vfp3d16sp", .subfeatures = &[_]*const Feature { &feature_fpregs, }, @@ -1226,17 +1108,15 @@ pub const feature_vfp3d16sp = Feature{ pub const feature_vfp3sp = Feature{ .name = "vfp3sp", .description = "Enable VFP3 instructions with no double precision", - .llvm_name = "vfp3sp", .subfeatures = &[_]*const Feature { - &feature_d32, &feature_fpregs, + &feature_d32, }, }; pub const feature_vfp4 = Feature{ .name = "vfp4", .description = "Enable VFP4 instructions", - .llvm_name = "vfp4", .subfeatures = &[_]*const Feature { &feature_fp16, &feature_d32, @@ -1247,7 +1127,6 @@ pub const feature_vfp4 = Feature{ pub const feature_vfp4d16 = Feature{ .name = "vfp4d16", .description = "Enable VFP4 instructions with only 16 d-registers", - .llvm_name = "vfp4d16", .subfeatures = &[_]*const Feature { &feature_fp16, &feature_fpregs, @@ -1257,7 +1136,6 @@ pub const feature_vfp4d16 = Feature{ pub const feature_vfp4d16sp = Feature{ .name = "vfp4d16sp", .description = "Enable VFP4 instructions with only 16 d-registers and no double precision", - .llvm_name = "vfp4d16sp", .subfeatures = &[_]*const Feature { &feature_fp16, &feature_fpregs, @@ -1267,7 +1145,6 @@ pub const feature_vfp4d16sp = Feature{ pub const feature_vfp4sp = Feature{ .name = "vfp4sp", .description = "Enable VFP4 instructions with no double precision", - .llvm_name = "vfp4sp", .subfeatures = &[_]*const Feature { &feature_fp16, &feature_d32, @@ -1278,7 +1155,6 @@ pub const feature_vfp4sp = Feature{ pub const feature_vmlxForwarding = Feature{ .name = "vmlx-forwarding", .description = "Has multiplier accumulator forwarding", - .llvm_name = "vmlx-forwarding", .subfeatures = &[_]*const Feature { }, }; @@ -1286,17 +1162,15 @@ pub const feature_vmlxForwarding = Feature{ pub const feature_virtualization = Feature{ .name = "virtualization", .description = "Supports Virtualization extension", - .llvm_name = "virtualization", .subfeatures = &[_]*const Feature { - &feature_hwdiv, &feature_hwdivArm, + &feature_hwdiv, }, }; pub const feature_zcz = Feature{ .name = "zcz", .description = "Has zero-cycle zeroing instructions", - .llvm_name = "zcz", .subfeatures = &[_]*const Feature { }, }; @@ -1304,36 +1178,33 @@ pub const feature_zcz = Feature{ pub const feature_mvefp = Feature{ .name = "mve.fp", .description = "Support M-Class Vector Extension with integer and floating ops", - .llvm_name = "mve.fp", .subfeatures = &[_]*const Feature { - &feature_v7clrex, - &feature_thumb2, - &feature_fp16, - &feature_v4t, &feature_dsp, - &feature_perfmon, &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", - .llvm_name = "mve", .subfeatures = &[_]*const Feature { - &feature_perfmon, - &feature_v7clrex, - &feature_thumb2, - &feature_v4t, &feature_dsp, &feature_fpregs, + &feature_thumb2, + &feature_v7clrex, + &feature_perfmon, + &feature_v4t, }, }; pub const feature_v4t = Feature{ .name = "v4t", .description = "Support ARM v4T instructions", - .llvm_name = "v4t", .subfeatures = &[_]*const Feature { }, }; @@ -1341,7 +1212,6 @@ pub const feature_v4t = Feature{ pub const feature_v5te = Feature{ .name = "v5te", .description = "Support ARM v5TE, v5TEj, and v5TExp instructions", - .llvm_name = "v5te", .subfeatures = &[_]*const Feature { &feature_v4t, }, @@ -1350,7 +1220,6 @@ pub const feature_v5te = Feature{ pub const feature_v5t = Feature{ .name = "v5t", .description = "Support ARM v5T instructions", - .llvm_name = "v5t", .subfeatures = &[_]*const Feature { &feature_v4t, }, @@ -1359,7 +1228,6 @@ pub const feature_v5t = Feature{ pub const feature_v6k = Feature{ .name = "v6k", .description = "Support ARM v6k instructions", - .llvm_name = "v6k", .subfeatures = &[_]*const Feature { &feature_v4t, }, @@ -1368,7 +1236,6 @@ pub const feature_v6k = Feature{ pub const feature_v6m = Feature{ .name = "v6m", .description = "Support ARM v6M instructions", - .llvm_name = "v6m", .subfeatures = &[_]*const Feature { &feature_v4t, }, @@ -1377,7 +1244,6 @@ pub const feature_v6m = Feature{ pub const feature_v6 = Feature{ .name = "v6", .description = "Support ARM v6 instructions", - .llvm_name = "v6", .subfeatures = &[_]*const Feature { &feature_v4t, }, @@ -1386,29 +1252,26 @@ pub const feature_v6 = Feature{ pub const feature_v6t2 = Feature{ .name = "v6t2", .description = "Support ARM v6t2 instructions", - .llvm_name = "v6t2", .subfeatures = &[_]*const Feature { - &feature_v4t, &feature_thumb2, + &feature_v4t, }, }; pub const feature_v7 = Feature{ .name = "v7", .description = "Support ARM v7 instructions", - .llvm_name = "v7", .subfeatures = &[_]*const Feature { - &feature_v4t, + &feature_thumb2, &feature_v7clrex, + &feature_v4t, &feature_perfmon, - &feature_thumb2, }, }; pub const feature_v8m = Feature{ .name = "v8m", .description = "Support ARM v8M Baseline instructions", - .llvm_name = "v8m", .subfeatures = &[_]*const Feature { &feature_v4t, }, @@ -1417,114 +1280,105 @@ pub const feature_v8m = Feature{ pub const feature_v8mmain = Feature{ .name = "v8m.main", .description = "Support ARM v8M Mainline instructions", - .llvm_name = "v8m.main", .subfeatures = &[_]*const Feature { + &feature_thumb2, + &feature_v7clrex, &feature_v4t, &feature_perfmon, - &feature_v7clrex, - &feature_thumb2, }, }; pub const feature_v8 = Feature{ .name = "v8", .description = "Support ARM v8 instructions", - .llvm_name = "v8", .subfeatures = &[_]*const Feature { - &feature_acquireRelease, - &feature_v7clrex, &feature_thumb2, - &feature_v4t, + &feature_v7clrex, + &feature_acquireRelease, &feature_perfmon, + &feature_v4t, }, }; pub const feature_v81mmain = Feature{ .name = "v8.1m.main", .description = "Support ARM v8-1M Mainline instructions", - .llvm_name = "v8.1m.main", .subfeatures = &[_]*const Feature { - &feature_v4t, + &feature_thumb2, &feature_v7clrex, + &feature_v4t, &feature_perfmon, - &feature_thumb2, }, }; pub const feature_v81a = Feature{ .name = "v8.1a", .description = "Support ARM v8.1a instructions", - .llvm_name = "v8.1a", .subfeatures = &[_]*const Feature { - &feature_acquireRelease, - &feature_v7clrex, &feature_thumb2, - &feature_v4t, + &feature_v7clrex, + &feature_acquireRelease, &feature_perfmon, + &feature_v4t, }, }; pub const feature_v82a = Feature{ .name = "v8.2a", .description = "Support ARM v8.2a instructions", - .llvm_name = "v8.2a", .subfeatures = &[_]*const Feature { - &feature_acquireRelease, - &feature_v7clrex, &feature_thumb2, - &feature_v4t, + &feature_v7clrex, + &feature_acquireRelease, &feature_perfmon, + &feature_v4t, }, }; pub const feature_v83a = Feature{ .name = "v8.3a", .description = "Support ARM v8.3a instructions", - .llvm_name = "v8.3a", .subfeatures = &[_]*const Feature { - &feature_acquireRelease, - &feature_v7clrex, &feature_thumb2, - &feature_v4t, + &feature_v7clrex, + &feature_acquireRelease, &feature_perfmon, + &feature_v4t, }, }; pub const feature_v84a = Feature{ .name = "v8.4a", .description = "Support ARM v8.4a instructions", - .llvm_name = "v8.4a", .subfeatures = &[_]*const Feature { - &feature_acquireRelease, - &feature_v7clrex, + &feature_fpregs, &feature_thumb2, + &feature_v7clrex, + &feature_acquireRelease, + &feature_perfmon, &feature_v4t, &feature_d32, - &feature_perfmon, - &feature_fpregs, }, }; pub const feature_v85a = Feature{ .name = "v8.5a", .description = "Support ARM v8.5a instructions", - .llvm_name = "v8.5a", .subfeatures = &[_]*const Feature { - &feature_acquireRelease, - &feature_v7clrex, + &feature_fpregs, &feature_thumb2, - &feature_v4t, - &feature_d32, &feature_sb, + &feature_v7clrex, + &feature_acquireRelease, &feature_perfmon, - &feature_fpregs, + &feature_v4t, + &feature_d32, }, }; pub const feature_iwmmxt = Feature{ .name = "iwmmxt", .description = "ARMv5te architecture", - .llvm_name = "iwmmxt", .subfeatures = &[_]*const Feature { &feature_v4t, }, @@ -1533,7 +1387,6 @@ pub const feature_iwmmxt = Feature{ pub const feature_iwmmxt2 = Feature{ .name = "iwmmxt2", .description = "ARMv5te architecture", - .llvm_name = "iwmmxt2", .subfeatures = &[_]*const Feature { &feature_v4t, }, @@ -1542,7 +1395,6 @@ pub const feature_iwmmxt2 = Feature{ pub const feature_softFloat = Feature{ .name = "soft-float", .description = "Use software floating point features.", - .llvm_name = "soft-float", .subfeatures = &[_]*const Feature { }, }; @@ -1550,7 +1402,6 @@ pub const feature_softFloat = Feature{ pub const feature_thumbMode = Feature{ .name = "thumb-mode", .description = "Thumb mode", - .llvm_name = "thumb-mode", .subfeatures = &[_]*const Feature { }, }; @@ -1558,7 +1409,6 @@ pub const feature_thumbMode = Feature{ pub const feature_a5 = Feature{ .name = "a5", .description = "Cortex-A5 ARM processors", - .llvm_name = "a5", .subfeatures = &[_]*const Feature { }, }; @@ -1566,7 +1416,6 @@ pub const feature_a5 = Feature{ pub const feature_a7 = Feature{ .name = "a7", .description = "Cortex-A7 ARM processors", - .llvm_name = "a7", .subfeatures = &[_]*const Feature { }, }; @@ -1574,7 +1423,6 @@ pub const feature_a7 = Feature{ pub const feature_a8 = Feature{ .name = "a8", .description = "Cortex-A8 ARM processors", - .llvm_name = "a8", .subfeatures = &[_]*const Feature { }, }; @@ -1582,7 +1430,6 @@ pub const feature_a8 = Feature{ pub const feature_a9 = Feature{ .name = "a9", .description = "Cortex-A9 ARM processors", - .llvm_name = "a9", .subfeatures = &[_]*const Feature { }, }; @@ -1590,7 +1437,6 @@ pub const feature_a9 = Feature{ pub const feature_a12 = Feature{ .name = "a12", .description = "Cortex-A12 ARM processors", - .llvm_name = "a12", .subfeatures = &[_]*const Feature { }, }; @@ -1598,7 +1444,6 @@ pub const feature_a12 = Feature{ pub const feature_a15 = Feature{ .name = "a15", .description = "Cortex-A15 ARM processors", - .llvm_name = "a15", .subfeatures = &[_]*const Feature { }, }; @@ -1606,7 +1451,6 @@ pub const feature_a15 = Feature{ pub const feature_a17 = Feature{ .name = "a17", .description = "Cortex-A17 ARM processors", - .llvm_name = "a17", .subfeatures = &[_]*const Feature { }, }; @@ -1614,7 +1458,6 @@ pub const feature_a17 = Feature{ pub const feature_a32 = Feature{ .name = "a32", .description = "Cortex-A32 ARM processors", - .llvm_name = "a32", .subfeatures = &[_]*const Feature { }, }; @@ -1622,7 +1465,6 @@ pub const feature_a32 = Feature{ pub const feature_a35 = Feature{ .name = "a35", .description = "Cortex-A35 ARM processors", - .llvm_name = "a35", .subfeatures = &[_]*const Feature { }, }; @@ -1630,7 +1472,6 @@ pub const feature_a35 = Feature{ pub const feature_a53 = Feature{ .name = "a53", .description = "Cortex-A53 ARM processors", - .llvm_name = "a53", .subfeatures = &[_]*const Feature { }, }; @@ -1638,7 +1479,6 @@ pub const feature_a53 = Feature{ pub const feature_a55 = Feature{ .name = "a55", .description = "Cortex-A55 ARM processors", - .llvm_name = "a55", .subfeatures = &[_]*const Feature { }, }; @@ -1646,7 +1486,6 @@ pub const feature_a55 = Feature{ pub const feature_a57 = Feature{ .name = "a57", .description = "Cortex-A57 ARM processors", - .llvm_name = "a57", .subfeatures = &[_]*const Feature { }, }; @@ -1654,7 +1493,6 @@ pub const feature_a57 = Feature{ pub const feature_a72 = Feature{ .name = "a72", .description = "Cortex-A72 ARM processors", - .llvm_name = "a72", .subfeatures = &[_]*const Feature { }, }; @@ -1662,7 +1500,6 @@ pub const feature_a72 = Feature{ pub const feature_a73 = Feature{ .name = "a73", .description = "Cortex-A73 ARM processors", - .llvm_name = "a73", .subfeatures = &[_]*const Feature { }, }; @@ -1670,7 +1507,6 @@ pub const feature_a73 = Feature{ pub const feature_a75 = Feature{ .name = "a75", .description = "Cortex-A75 ARM processors", - .llvm_name = "a75", .subfeatures = &[_]*const Feature { }, }; @@ -1678,7 +1514,6 @@ pub const feature_a75 = Feature{ pub const feature_a76 = Feature{ .name = "a76", .description = "Cortex-A76 ARM processors", - .llvm_name = "a76", .subfeatures = &[_]*const Feature { }, }; @@ -1686,33 +1521,31 @@ pub const feature_a76 = Feature{ pub const feature_exynos = Feature{ .name = "exynos", .description = "Samsung Exynos processors", - .llvm_name = "exynos", .subfeatures = &[_]*const Feature { - &feature_slowFpBrcc, - &feature_slowfpvmlx, + &feature_useAa, + &feature_hwdivArm, + &feature_zcz, &feature_hwdiv, + &feature_expandFpMlx, &feature_slowVdup32, - &feature_wideStrideVfp, - &feature_fuseAes, + &feature_fpregs, &feature_slowVgetlni32, - &feature_zcz, &feature_profUnpr, - &feature_d32, - &feature_hwdivArm, + &feature_wideStrideVfp, &feature_retAddrStack, + &feature_fuseAes, + &feature_fuseLiterals, &feature_crc, - &feature_expandFpMlx, - &feature_useAa, + &feature_slowfpvmlx, + &feature_slowFpBrcc, &feature_dontWidenVmovs, - &feature_fpregs, - &feature_fuseLiterals, + &feature_d32, }, }; pub const feature_krait = Feature{ .name = "krait", .description = "Qualcomm Krait processors", - .llvm_name = "krait", .subfeatures = &[_]*const Feature { }, }; @@ -1720,7 +1553,6 @@ pub const feature_krait = Feature{ pub const feature_kryo = Feature{ .name = "kryo", .description = "Qualcomm Kryo processors", - .llvm_name = "kryo", .subfeatures = &[_]*const Feature { }, }; @@ -1728,7 +1560,6 @@ pub const feature_kryo = Feature{ pub const feature_m3 = Feature{ .name = "m3", .description = "Cortex-M3 ARM processors", - .llvm_name = "m3", .subfeatures = &[_]*const Feature { }, }; @@ -1736,7 +1567,6 @@ pub const feature_m3 = Feature{ pub const feature_r4 = Feature{ .name = "r4", .description = "Cortex-R4 ARM processors", - .llvm_name = "r4", .subfeatures = &[_]*const Feature { }, }; @@ -1744,7 +1574,6 @@ pub const feature_r4 = Feature{ pub const feature_r5 = Feature{ .name = "r5", .description = "Cortex-R5 ARM processors", - .llvm_name = "r5", .subfeatures = &[_]*const Feature { }, }; @@ -1752,7 +1581,6 @@ pub const feature_r5 = Feature{ pub const feature_r7 = Feature{ .name = "r7", .description = "Cortex-R7 ARM processors", - .llvm_name = "r7", .subfeatures = &[_]*const Feature { }, }; @@ -1760,7 +1588,6 @@ pub const feature_r7 = Feature{ pub const feature_r52 = Feature{ .name = "r52", .description = "Cortex-R52 ARM processors", - .llvm_name = "r52", .subfeatures = &[_]*const Feature { }, }; @@ -1768,7 +1595,6 @@ pub const feature_r52 = Feature{ pub const feature_swift = Feature{ .name = "swift", .description = "Swift ARM processors", - .llvm_name = "swift", .subfeatures = &[_]*const Feature { }, }; @@ -1776,7 +1602,6 @@ pub const feature_swift = Feature{ pub const feature_xscale = Feature{ .name = "xscale", .description = "ARMv5te architecture", - .llvm_name = "xscale", .subfeatures = &[_]*const Feature { &feature_v4t, }, @@ -2032,9 +1857,9 @@ pub const cpu_arm1156t2S = Cpu{ .name = "arm1156t2-s", .llvm_name = "arm1156t2-s", .subfeatures = &[_]*const Feature { - &feature_v4t, - &feature_dsp, &feature_thumb2, + &feature_dsp, + &feature_v4t, &feature_armv6t2, }, }; @@ -2043,9 +1868,9 @@ pub const cpu_arm1156t2fS = Cpu{ .name = "arm1156t2f-s", .llvm_name = "arm1156t2f-s", .subfeatures = &[_]*const Feature { - &feature_v4t, - &feature_dsp, &feature_thumb2, + &feature_dsp, + &feature_v4t, &feature_armv6t2, &feature_slowfpvmlx, &feature_fpregs, @@ -2241,15 +2066,15 @@ pub const cpu_cortexA12 = Cpu{ .name = "cortex-a12", .llvm_name = "cortex-a12", .subfeatures = &[_]*const Feature { - &feature_perfmon, - &feature_v7clrex, &feature_db, + &feature_dsp, + &feature_fpregs, &feature_thumb2, + &feature_v7clrex, + &feature_aclass, + &feature_perfmon, &feature_v4t, &feature_d32, - &feature_aclass, - &feature_dsp, - &feature_fpregs, &feature_armv7A, &feature_avoidPartialCpsr, &feature_retAddrStack, @@ -2258,8 +2083,8 @@ pub const cpu_cortexA12 = Cpu{ &feature_fp16, &feature_vfp4, &feature_vmlxForwarding, - &feature_hwdiv, &feature_hwdivArm, + &feature_hwdiv, &feature_virtualization, &feature_a12, }, @@ -2269,15 +2094,15 @@ pub const cpu_cortexA15 = Cpu{ .name = "cortex-a15", .llvm_name = "cortex-a15", .subfeatures = &[_]*const Feature { - &feature_perfmon, - &feature_v7clrex, &feature_db, + &feature_dsp, + &feature_fpregs, &feature_thumb2, + &feature_v7clrex, + &feature_aclass, + &feature_perfmon, &feature_v4t, &feature_d32, - &feature_aclass, - &feature_dsp, - &feature_fpregs, &feature_armv7A, &feature_avoidPartialCpsr, &feature_vldnAlign, @@ -2289,8 +2114,8 @@ pub const cpu_cortexA15 = Cpu{ &feature_trustzone, &feature_fp16, &feature_vfp4, - &feature_hwdiv, &feature_hwdivArm, + &feature_hwdiv, &feature_virtualization, &feature_a15, }, @@ -2300,15 +2125,15 @@ pub const cpu_cortexA17 = Cpu{ .name = "cortex-a17", .llvm_name = "cortex-a17", .subfeatures = &[_]*const Feature { - &feature_perfmon, - &feature_v7clrex, &feature_db, + &feature_dsp, + &feature_fpregs, &feature_thumb2, + &feature_v7clrex, + &feature_aclass, + &feature_perfmon, &feature_v4t, &feature_d32, - &feature_aclass, - &feature_dsp, - &feature_fpregs, &feature_armv7A, &feature_avoidPartialCpsr, &feature_retAddrStack, @@ -2317,8 +2142,8 @@ pub const cpu_cortexA17 = Cpu{ &feature_fp16, &feature_vfp4, &feature_vmlxForwarding, - &feature_hwdiv, &feature_hwdivArm, + &feature_hwdiv, &feature_virtualization, &feature_a17, }, @@ -2328,22 +2153,22 @@ pub const cpu_cortexA32 = Cpu{ .name = "cortex-a32", .llvm_name = "cortex-a32", .subfeatures = &[_]*const Feature { - &feature_mp, - &feature_acquireRelease, - &feature_perfmon, + &feature_db, + &feature_dsp, + &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, - &feature_v7clrex, - &feature_db, - &feature_thumb2, - &feature_fp16, + &feature_fpregs, &feature_v4t, - &feature_d32, + &feature_thumb2, + &feature_v7clrex, &feature_aclass, - &feature_hwdivArm, &feature_crc, - &feature_dsp, - &feature_fpregs, + &feature_mp, + &feature_acquireRelease, + &feature_fp16, + &feature_perfmon, + &feature_d32, &feature_armv8A, &feature_crypto, }, @@ -2353,22 +2178,22 @@ pub const cpu_cortexA35 = Cpu{ .name = "cortex-a35", .llvm_name = "cortex-a35", .subfeatures = &[_]*const Feature { - &feature_mp, - &feature_acquireRelease, - &feature_perfmon, + &feature_db, + &feature_dsp, + &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, - &feature_v7clrex, - &feature_db, - &feature_thumb2, - &feature_fp16, + &feature_fpregs, &feature_v4t, - &feature_d32, + &feature_thumb2, + &feature_v7clrex, &feature_aclass, - &feature_hwdivArm, &feature_crc, - &feature_dsp, - &feature_fpregs, + &feature_mp, + &feature_acquireRelease, + &feature_fp16, + &feature_perfmon, + &feature_d32, &feature_armv8A, &feature_crypto, &feature_a35, @@ -2379,15 +2204,15 @@ pub const cpu_cortexA5 = Cpu{ .name = "cortex-a5", .llvm_name = "cortex-a5", .subfeatures = &[_]*const Feature { - &feature_perfmon, - &feature_v7clrex, &feature_db, + &feature_dsp, + &feature_fpregs, &feature_thumb2, + &feature_v7clrex, + &feature_aclass, + &feature_perfmon, &feature_v4t, &feature_d32, - &feature_aclass, - &feature_dsp, - &feature_fpregs, &feature_armv7A, &feature_retAddrStack, &feature_slowfpvmlx, @@ -2405,22 +2230,22 @@ pub const cpu_cortexA53 = Cpu{ .name = "cortex-a53", .llvm_name = "cortex-a53", .subfeatures = &[_]*const Feature { - &feature_mp, - &feature_acquireRelease, - &feature_perfmon, + &feature_db, + &feature_dsp, + &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, - &feature_v7clrex, - &feature_db, - &feature_thumb2, - &feature_fp16, + &feature_fpregs, &feature_v4t, - &feature_d32, + &feature_thumb2, + &feature_v7clrex, &feature_aclass, - &feature_hwdivArm, &feature_crc, - &feature_dsp, - &feature_fpregs, + &feature_mp, + &feature_acquireRelease, + &feature_fp16, + &feature_perfmon, + &feature_d32, &feature_armv8A, &feature_crypto, &feature_fpao, @@ -2432,23 +2257,23 @@ pub const cpu_cortexA55 = Cpu{ .name = "cortex-a55", .llvm_name = "cortex-a55", .subfeatures = &[_]*const Feature { - &feature_mp, - &feature_acquireRelease, - &feature_perfmon, + &feature_db, + &feature_dsp, + &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, - &feature_v7clrex, - &feature_db, + &feature_fpregs, + &feature_v4t, &feature_thumb2, &feature_ras, - &feature_fp16, - &feature_v4t, - &feature_d32, + &feature_v7clrex, &feature_aclass, - &feature_hwdivArm, &feature_crc, - &feature_dsp, - &feature_fpregs, + &feature_mp, + &feature_acquireRelease, + &feature_fp16, + &feature_perfmon, + &feature_d32, &feature_armv82A, &feature_dotprod, &feature_a55, @@ -2459,22 +2284,22 @@ pub const cpu_cortexA57 = Cpu{ .name = "cortex-a57", .llvm_name = "cortex-a57", .subfeatures = &[_]*const Feature { - &feature_mp, - &feature_acquireRelease, - &feature_perfmon, + &feature_db, + &feature_dsp, + &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, - &feature_v7clrex, - &feature_db, - &feature_thumb2, - &feature_fp16, + &feature_fpregs, &feature_v4t, - &feature_d32, + &feature_thumb2, + &feature_v7clrex, &feature_aclass, - &feature_hwdivArm, &feature_crc, - &feature_dsp, - &feature_fpregs, + &feature_mp, + &feature_acquireRelease, + &feature_fp16, + &feature_perfmon, + &feature_d32, &feature_armv8A, &feature_avoidPartialCpsr, &feature_cheapPredicableCpsr, @@ -2488,15 +2313,15 @@ pub const cpu_cortexA7 = Cpu{ .name = "cortex-a7", .llvm_name = "cortex-a7", .subfeatures = &[_]*const Feature { - &feature_perfmon, - &feature_v7clrex, &feature_db, + &feature_dsp, + &feature_fpregs, &feature_thumb2, + &feature_v7clrex, + &feature_aclass, + &feature_perfmon, &feature_v4t, &feature_d32, - &feature_aclass, - &feature_dsp, - &feature_fpregs, &feature_armv7A, &feature_retAddrStack, &feature_slowfpvmlx, @@ -2507,8 +2332,8 @@ pub const cpu_cortexA7 = Cpu{ &feature_fp16, &feature_vfp4, &feature_vmlxForwarding, - &feature_hwdiv, &feature_hwdivArm, + &feature_hwdiv, &feature_virtualization, &feature_a7, }, @@ -2518,22 +2343,22 @@ pub const cpu_cortexA72 = Cpu{ .name = "cortex-a72", .llvm_name = "cortex-a72", .subfeatures = &[_]*const Feature { - &feature_mp, - &feature_acquireRelease, - &feature_perfmon, + &feature_db, + &feature_dsp, + &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, - &feature_v7clrex, - &feature_db, - &feature_thumb2, - &feature_fp16, + &feature_fpregs, &feature_v4t, - &feature_d32, + &feature_thumb2, + &feature_v7clrex, &feature_aclass, - &feature_hwdivArm, &feature_crc, - &feature_dsp, - &feature_fpregs, + &feature_mp, + &feature_acquireRelease, + &feature_fp16, + &feature_perfmon, + &feature_d32, &feature_armv8A, &feature_crypto, &feature_a72, @@ -2544,22 +2369,22 @@ pub const cpu_cortexA73 = Cpu{ .name = "cortex-a73", .llvm_name = "cortex-a73", .subfeatures = &[_]*const Feature { - &feature_mp, - &feature_acquireRelease, - &feature_perfmon, + &feature_db, + &feature_dsp, + &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, - &feature_v7clrex, - &feature_db, - &feature_thumb2, - &feature_fp16, + &feature_fpregs, &feature_v4t, - &feature_d32, + &feature_thumb2, + &feature_v7clrex, &feature_aclass, - &feature_hwdivArm, &feature_crc, - &feature_dsp, - &feature_fpregs, + &feature_mp, + &feature_acquireRelease, + &feature_fp16, + &feature_perfmon, + &feature_d32, &feature_armv8A, &feature_crypto, &feature_a73, @@ -2570,23 +2395,23 @@ pub const cpu_cortexA75 = Cpu{ .name = "cortex-a75", .llvm_name = "cortex-a75", .subfeatures = &[_]*const Feature { - &feature_mp, - &feature_acquireRelease, - &feature_perfmon, + &feature_db, + &feature_dsp, + &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, - &feature_v7clrex, - &feature_db, + &feature_fpregs, + &feature_v4t, &feature_thumb2, &feature_ras, - &feature_fp16, - &feature_v4t, - &feature_d32, + &feature_v7clrex, &feature_aclass, - &feature_hwdivArm, &feature_crc, - &feature_dsp, - &feature_fpregs, + &feature_mp, + &feature_acquireRelease, + &feature_fp16, + &feature_perfmon, + &feature_d32, &feature_armv82A, &feature_dotprod, &feature_a75, @@ -2597,23 +2422,23 @@ pub const cpu_cortexA76 = Cpu{ .name = "cortex-a76", .llvm_name = "cortex-a76", .subfeatures = &[_]*const Feature { - &feature_mp, - &feature_acquireRelease, - &feature_perfmon, + &feature_db, + &feature_dsp, + &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, - &feature_v7clrex, - &feature_db, + &feature_fpregs, + &feature_v4t, &feature_thumb2, &feature_ras, - &feature_fp16, - &feature_v4t, - &feature_d32, + &feature_v7clrex, &feature_aclass, - &feature_hwdivArm, &feature_crc, - &feature_dsp, - &feature_fpregs, + &feature_mp, + &feature_acquireRelease, + &feature_fp16, + &feature_perfmon, + &feature_d32, &feature_armv82A, &feature_crypto, &feature_dotprod, @@ -2626,23 +2451,23 @@ pub const cpu_cortexA76ae = Cpu{ .name = "cortex-a76ae", .llvm_name = "cortex-a76ae", .subfeatures = &[_]*const Feature { - &feature_mp, - &feature_acquireRelease, - &feature_perfmon, + &feature_db, + &feature_dsp, + &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, - &feature_v7clrex, - &feature_db, + &feature_fpregs, + &feature_v4t, &feature_thumb2, &feature_ras, - &feature_fp16, - &feature_v4t, - &feature_d32, + &feature_v7clrex, &feature_aclass, - &feature_hwdivArm, &feature_crc, - &feature_dsp, - &feature_fpregs, + &feature_mp, + &feature_acquireRelease, + &feature_fp16, + &feature_perfmon, + &feature_d32, &feature_armv82A, &feature_crypto, &feature_dotprod, @@ -2655,15 +2480,15 @@ pub const cpu_cortexA8 = Cpu{ .name = "cortex-a8", .llvm_name = "cortex-a8", .subfeatures = &[_]*const Feature { - &feature_perfmon, - &feature_v7clrex, &feature_db, + &feature_dsp, + &feature_fpregs, &feature_thumb2, + &feature_v7clrex, + &feature_aclass, + &feature_perfmon, &feature_v4t, &feature_d32, - &feature_aclass, - &feature_dsp, - &feature_fpregs, &feature_armv7A, &feature_retAddrStack, &feature_slowfpvmlx, @@ -2680,15 +2505,15 @@ pub const cpu_cortexA9 = Cpu{ .name = "cortex-a9", .llvm_name = "cortex-a9", .subfeatures = &[_]*const Feature { - &feature_perfmon, - &feature_v7clrex, &feature_db, + &feature_dsp, + &feature_fpregs, &feature_thumb2, + &feature_v7clrex, + &feature_aclass, + &feature_perfmon, &feature_v4t, &feature_d32, - &feature_aclass, - &feature_dsp, - &feature_fpregs, &feature_armv7A, &feature_avoidPartialCpsr, &feature_vldnAlign, @@ -2711,11 +2536,11 @@ pub const cpu_cortexM0 = Cpu{ .llvm_name = "cortex-m0", .subfeatures = &[_]*const Feature { &feature_db, - &feature_thumbMode, &feature_mclass, + &feature_thumbMode, + &feature_strictAlign, &feature_noarm, &feature_v4t, - &feature_strictAlign, &feature_armv6M, }, }; @@ -2725,11 +2550,11 @@ pub const cpu_cortexM0plus = Cpu{ .llvm_name = "cortex-m0plus", .subfeatures = &[_]*const Feature { &feature_db, - &feature_thumbMode, &feature_mclass, + &feature_thumbMode, + &feature_strictAlign, &feature_noarm, &feature_v4t, - &feature_strictAlign, &feature_armv6M, }, }; @@ -2739,11 +2564,11 @@ pub const cpu_cortexM1 = Cpu{ .llvm_name = "cortex-m1", .subfeatures = &[_]*const Feature { &feature_db, - &feature_thumbMode, &feature_mclass, + &feature_thumbMode, + &feature_strictAlign, &feature_noarm, &feature_v4t, - &feature_strictAlign, &feature_armv6M, }, }; @@ -2752,16 +2577,16 @@ pub const cpu_cortexM23 = Cpu{ .name = "cortex-m23", .llvm_name = "cortex-m23", .subfeatures = &[_]*const Feature { - &feature_acquireRelease, - &feature_v7clrex, &feature_db, - &feature_msecext8, - &feature_thumbMode, &feature_mclass, + &feature_hwdiv, + &feature_thumbMode, + &feature_strictAlign, + &feature_v7clrex, + &feature_msecext8, + &feature_acquireRelease, &feature_noarm, &feature_v4t, - &feature_strictAlign, - &feature_hwdiv, &feature_armv8Mbase, &feature_noMovt, }, @@ -2771,15 +2596,15 @@ pub const cpu_cortexM3 = Cpu{ .name = "cortex-m3", .llvm_name = "cortex-m3", .subfeatures = &[_]*const Feature { - &feature_v7clrex, &feature_db, - &feature_thumb2, &feature_mclass, + &feature_hwdiv, &feature_thumbMode, + &feature_thumb2, + &feature_v7clrex, + &feature_perfmon, &feature_noarm, &feature_v4t, - &feature_perfmon, - &feature_hwdiv, &feature_armv7M, &feature_noBranchPredictor, &feature_loopAlign, @@ -2793,17 +2618,17 @@ pub const cpu_cortexM33 = Cpu{ .name = "cortex-m33", .llvm_name = "cortex-m33", .subfeatures = &[_]*const Feature { - &feature_acquireRelease, - &feature_v7clrex, &feature_db, - &feature_msecext8, - &feature_thumb2, &feature_mclass, + &feature_hwdiv, &feature_thumbMode, + &feature_thumb2, + &feature_v7clrex, + &feature_msecext8, + &feature_acquireRelease, + &feature_perfmon, &feature_noarm, &feature_v4t, - &feature_perfmon, - &feature_hwdiv, &feature_armv8Mmain, &feature_dsp, &feature_fp16, @@ -2821,17 +2646,17 @@ pub const cpu_cortexM35p = Cpu{ .name = "cortex-m35p", .llvm_name = "cortex-m35p", .subfeatures = &[_]*const Feature { - &feature_acquireRelease, - &feature_v7clrex, &feature_db, - &feature_msecext8, - &feature_thumb2, &feature_mclass, + &feature_hwdiv, &feature_thumbMode, + &feature_thumb2, + &feature_v7clrex, + &feature_msecext8, + &feature_acquireRelease, + &feature_perfmon, &feature_noarm, &feature_v4t, - &feature_perfmon, - &feature_hwdiv, &feature_armv8Mmain, &feature_dsp, &feature_fp16, @@ -2849,16 +2674,16 @@ pub const cpu_cortexM4 = Cpu{ .name = "cortex-m4", .llvm_name = "cortex-m4", .subfeatures = &[_]*const Feature { - &feature_perfmon, - &feature_v7clrex, &feature_db, - &feature_thumb2, &feature_mclass, + &feature_hwdiv, + &feature_dsp, &feature_thumbMode, + &feature_thumb2, + &feature_v7clrex, + &feature_perfmon, &feature_noarm, &feature_v4t, - &feature_dsp, - &feature_hwdiv, &feature_armv7eM, &feature_noBranchPredictor, &feature_slowfpvmlx, @@ -2875,19 +2700,19 @@ pub const cpu_cortexM7 = Cpu{ .name = "cortex-m7", .llvm_name = "cortex-m7", .subfeatures = &[_]*const Feature { - &feature_perfmon, - &feature_v7clrex, &feature_db, - &feature_thumb2, &feature_mclass, + &feature_hwdiv, + &feature_dsp, &feature_thumbMode, + &feature_thumb2, + &feature_v7clrex, + &feature_perfmon, &feature_noarm, &feature_v4t, - &feature_dsp, - &feature_hwdiv, &feature_armv7eM, - &feature_fp16, &feature_fpregs, + &feature_fp16, &feature_fpArmv8d16, }, }; @@ -2896,14 +2721,14 @@ pub const cpu_cortexR4 = Cpu{ .name = "cortex-r4", .llvm_name = "cortex-r4", .subfeatures = &[_]*const Feature { - &feature_perfmon, - &feature_v7clrex, &feature_db, - &feature_thumb2, - &feature_v4t, &feature_dsp, &feature_hwdiv, &feature_rclass, + &feature_thumb2, + &feature_v7clrex, + &feature_perfmon, + &feature_v4t, &feature_armv7R, &feature_avoidPartialCpsr, &feature_retAddrStack, @@ -2915,14 +2740,14 @@ pub const cpu_cortexR4f = Cpu{ .name = "cortex-r4f", .llvm_name = "cortex-r4f", .subfeatures = &[_]*const Feature { - &feature_perfmon, - &feature_v7clrex, &feature_db, - &feature_thumb2, - &feature_v4t, &feature_dsp, &feature_hwdiv, &feature_rclass, + &feature_thumb2, + &feature_v7clrex, + &feature_perfmon, + &feature_v4t, &feature_armv7R, &feature_avoidPartialCpsr, &feature_retAddrStack, @@ -2938,14 +2763,14 @@ pub const cpu_cortexR5 = Cpu{ .name = "cortex-r5", .llvm_name = "cortex-r5", .subfeatures = &[_]*const Feature { - &feature_perfmon, - &feature_v7clrex, &feature_db, - &feature_thumb2, - &feature_v4t, &feature_dsp, &feature_hwdiv, &feature_rclass, + &feature_thumb2, + &feature_v7clrex, + &feature_perfmon, + &feature_v4t, &feature_armv7R, &feature_avoidPartialCpsr, &feature_hwdivArm, @@ -2962,22 +2787,22 @@ pub const cpu_cortexR52 = Cpu{ .name = "cortex-r52", .llvm_name = "cortex-r52", .subfeatures = &[_]*const Feature { - &feature_mp, - &feature_acquireRelease, - &feature_perfmon, - &feature_hwdiv, - &feature_v7clrex, &feature_db, - &feature_thumb2, - &feature_fp16, + &feature_dsp, + &feature_hwdivArm, + &feature_hwdiv, + &feature_rclass, + &feature_fpregs, &feature_v4t, - &feature_d32, &feature_dfb, - &feature_hwdivArm, + &feature_thumb2, + &feature_v7clrex, + &feature_perfmon, &feature_crc, - &feature_dsp, - &feature_fpregs, - &feature_rclass, + &feature_mp, + &feature_acquireRelease, + &feature_fp16, + &feature_d32, &feature_armv8R, &feature_fpao, &feature_useAa, @@ -2990,14 +2815,14 @@ pub const cpu_cortexR7 = Cpu{ .name = "cortex-r7", .llvm_name = "cortex-r7", .subfeatures = &[_]*const Feature { - &feature_perfmon, - &feature_v7clrex, &feature_db, - &feature_thumb2, - &feature_v4t, &feature_dsp, &feature_hwdiv, &feature_rclass, + &feature_thumb2, + &feature_v7clrex, + &feature_perfmon, + &feature_v4t, &feature_armv7R, &feature_avoidPartialCpsr, &feature_fp16, @@ -3016,14 +2841,14 @@ pub const cpu_cortexR8 = Cpu{ .name = "cortex-r8", .llvm_name = "cortex-r8", .subfeatures = &[_]*const Feature { - &feature_perfmon, - &feature_v7clrex, &feature_db, - &feature_thumb2, - &feature_v4t, &feature_dsp, &feature_hwdiv, &feature_rclass, + &feature_thumb2, + &feature_v7clrex, + &feature_perfmon, + &feature_v4t, &feature_armv7R, &feature_avoidPartialCpsr, &feature_fp16, @@ -3041,22 +2866,22 @@ pub const cpu_cyclone = Cpu{ .name = "cyclone", .llvm_name = "cyclone", .subfeatures = &[_]*const Feature { - &feature_mp, - &feature_acquireRelease, - &feature_perfmon, + &feature_db, + &feature_dsp, + &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, - &feature_v7clrex, - &feature_db, - &feature_thumb2, - &feature_fp16, + &feature_fpregs, &feature_v4t, - &feature_d32, + &feature_thumb2, + &feature_v7clrex, &feature_aclass, - &feature_hwdivArm, &feature_crc, - &feature_dsp, - &feature_fpregs, + &feature_mp, + &feature_acquireRelease, + &feature_fp16, + &feature_perfmon, + &feature_d32, &feature_armv8A, &feature_avoidMovsShop, &feature_avoidPartialCpsr, @@ -3085,36 +2910,36 @@ pub const cpu_exynosM1 = Cpu{ .name = "exynos-m1", .llvm_name = "exynos-m1", .subfeatures = &[_]*const Feature { - &feature_mp, - &feature_acquireRelease, - &feature_perfmon, + &feature_db, + &feature_dsp, + &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, - &feature_v7clrex, - &feature_db, - &feature_thumb2, - &feature_fp16, + &feature_fpregs, &feature_v4t, - &feature_d32, + &feature_thumb2, + &feature_v7clrex, &feature_aclass, - &feature_hwdivArm, &feature_crc, - &feature_dsp, - &feature_fpregs, + &feature_mp, + &feature_acquireRelease, + &feature_fp16, + &feature_perfmon, + &feature_d32, &feature_armv8A, - &feature_slowFpBrcc, - &feature_slowfpvmlx, + &feature_useAa, + &feature_zcz, + &feature_expandFpMlx, &feature_slowVdup32, - &feature_wideStrideVfp, - &feature_fuseAes, &feature_slowVgetlni32, - &feature_zcz, &feature_profUnpr, + &feature_wideStrideVfp, &feature_retAddrStack, - &feature_expandFpMlx, - &feature_useAa, - &feature_dontWidenVmovs, + &feature_fuseAes, &feature_fuseLiterals, + &feature_slowfpvmlx, + &feature_slowFpBrcc, + &feature_dontWidenVmovs, &feature_exynos, }, }; @@ -3123,36 +2948,36 @@ pub const cpu_exynosM2 = Cpu{ .name = "exynos-m2", .llvm_name = "exynos-m2", .subfeatures = &[_]*const Feature { - &feature_mp, - &feature_acquireRelease, - &feature_perfmon, + &feature_db, + &feature_dsp, + &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, - &feature_v7clrex, - &feature_db, - &feature_thumb2, - &feature_fp16, + &feature_fpregs, &feature_v4t, - &feature_d32, + &feature_thumb2, + &feature_v7clrex, &feature_aclass, - &feature_hwdivArm, &feature_crc, - &feature_dsp, - &feature_fpregs, + &feature_mp, + &feature_acquireRelease, + &feature_fp16, + &feature_perfmon, + &feature_d32, &feature_armv8A, - &feature_slowFpBrcc, - &feature_slowfpvmlx, + &feature_useAa, + &feature_zcz, + &feature_expandFpMlx, &feature_slowVdup32, - &feature_wideStrideVfp, - &feature_fuseAes, &feature_slowVgetlni32, - &feature_zcz, &feature_profUnpr, + &feature_wideStrideVfp, &feature_retAddrStack, - &feature_expandFpMlx, - &feature_useAa, - &feature_dontWidenVmovs, + &feature_fuseAes, &feature_fuseLiterals, + &feature_slowfpvmlx, + &feature_slowFpBrcc, + &feature_dontWidenVmovs, &feature_exynos, }, }; @@ -3161,36 +2986,36 @@ pub const cpu_exynosM3 = Cpu{ .name = "exynos-m3", .llvm_name = "exynos-m3", .subfeatures = &[_]*const Feature { - &feature_mp, - &feature_acquireRelease, - &feature_perfmon, + &feature_db, + &feature_dsp, + &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, - &feature_v7clrex, - &feature_db, - &feature_thumb2, - &feature_fp16, + &feature_fpregs, &feature_v4t, - &feature_d32, + &feature_thumb2, + &feature_v7clrex, &feature_aclass, - &feature_hwdivArm, &feature_crc, - &feature_dsp, - &feature_fpregs, + &feature_mp, + &feature_acquireRelease, + &feature_fp16, + &feature_perfmon, + &feature_d32, &feature_armv8A, - &feature_slowFpBrcc, - &feature_slowfpvmlx, + &feature_useAa, + &feature_zcz, + &feature_expandFpMlx, &feature_slowVdup32, - &feature_wideStrideVfp, - &feature_fuseAes, &feature_slowVgetlni32, - &feature_zcz, &feature_profUnpr, + &feature_wideStrideVfp, &feature_retAddrStack, - &feature_expandFpMlx, - &feature_useAa, - &feature_dontWidenVmovs, + &feature_fuseAes, &feature_fuseLiterals, + &feature_slowfpvmlx, + &feature_slowFpBrcc, + &feature_dontWidenVmovs, &feature_exynos, }, }; @@ -3199,39 +3024,39 @@ pub const cpu_exynosM4 = Cpu{ .name = "exynos-m4", .llvm_name = "exynos-m4", .subfeatures = &[_]*const Feature { - &feature_mp, - &feature_acquireRelease, - &feature_perfmon, + &feature_db, + &feature_dsp, + &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, - &feature_v7clrex, - &feature_db, + &feature_fpregs, + &feature_v4t, &feature_thumb2, &feature_ras, - &feature_fp16, - &feature_v4t, - &feature_d32, + &feature_v7clrex, &feature_aclass, - &feature_hwdivArm, &feature_crc, - &feature_dsp, - &feature_fpregs, + &feature_mp, + &feature_acquireRelease, + &feature_fp16, + &feature_perfmon, + &feature_d32, &feature_armv82A, &feature_dotprod, &feature_fullfp16, - &feature_slowFpBrcc, - &feature_slowfpvmlx, + &feature_useAa, + &feature_zcz, + &feature_expandFpMlx, &feature_slowVdup32, - &feature_wideStrideVfp, - &feature_fuseAes, &feature_slowVgetlni32, - &feature_zcz, &feature_profUnpr, + &feature_wideStrideVfp, &feature_retAddrStack, - &feature_expandFpMlx, - &feature_useAa, - &feature_dontWidenVmovs, + &feature_fuseAes, &feature_fuseLiterals, + &feature_slowfpvmlx, + &feature_slowFpBrcc, + &feature_dontWidenVmovs, &feature_exynos, }, }; @@ -3240,39 +3065,39 @@ pub const cpu_exynosM5 = Cpu{ .name = "exynos-m5", .llvm_name = "exynos-m5", .subfeatures = &[_]*const Feature { - &feature_mp, - &feature_acquireRelease, - &feature_perfmon, + &feature_db, + &feature_dsp, + &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, - &feature_v7clrex, - &feature_db, + &feature_fpregs, + &feature_v4t, &feature_thumb2, &feature_ras, - &feature_fp16, - &feature_v4t, - &feature_d32, + &feature_v7clrex, &feature_aclass, - &feature_hwdivArm, &feature_crc, - &feature_dsp, - &feature_fpregs, + &feature_mp, + &feature_acquireRelease, + &feature_fp16, + &feature_perfmon, + &feature_d32, &feature_armv82A, &feature_dotprod, &feature_fullfp16, - &feature_slowFpBrcc, - &feature_slowfpvmlx, + &feature_useAa, + &feature_zcz, + &feature_expandFpMlx, &feature_slowVdup32, - &feature_wideStrideVfp, - &feature_fuseAes, &feature_slowVgetlni32, - &feature_zcz, &feature_profUnpr, + &feature_wideStrideVfp, &feature_retAddrStack, - &feature_expandFpMlx, - &feature_useAa, - &feature_dontWidenVmovs, + &feature_fuseAes, &feature_fuseLiterals, + &feature_slowfpvmlx, + &feature_slowFpBrcc, + &feature_dontWidenVmovs, &feature_exynos, }, }; @@ -3297,15 +3122,15 @@ pub const cpu_krait = Cpu{ .name = "krait", .llvm_name = "krait", .subfeatures = &[_]*const Feature { - &feature_perfmon, - &feature_v7clrex, &feature_db, + &feature_dsp, + &feature_fpregs, &feature_thumb2, + &feature_v7clrex, + &feature_aclass, + &feature_perfmon, &feature_v4t, &feature_d32, - &feature_aclass, - &feature_dsp, - &feature_fpregs, &feature_armv7A, &feature_avoidPartialCpsr, &feature_vldnAlign, @@ -3324,22 +3149,22 @@ pub const cpu_kryo = Cpu{ .name = "kryo", .llvm_name = "kryo", .subfeatures = &[_]*const Feature { - &feature_mp, - &feature_acquireRelease, - &feature_perfmon, + &feature_db, + &feature_dsp, + &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, - &feature_v7clrex, - &feature_db, - &feature_thumb2, - &feature_fp16, + &feature_fpregs, &feature_v4t, - &feature_d32, + &feature_thumb2, + &feature_v7clrex, &feature_aclass, - &feature_hwdivArm, &feature_crc, - &feature_dsp, - &feature_fpregs, + &feature_mp, + &feature_acquireRelease, + &feature_fp16, + &feature_perfmon, + &feature_d32, &feature_armv8A, &feature_crypto, &feature_kryo, @@ -3371,23 +3196,23 @@ pub const cpu_neoverseN1 = Cpu{ .name = "neoverse-n1", .llvm_name = "neoverse-n1", .subfeatures = &[_]*const Feature { - &feature_mp, - &feature_acquireRelease, - &feature_perfmon, + &feature_db, + &feature_dsp, + &feature_hwdivArm, &feature_hwdiv, &feature_trustzone, - &feature_v7clrex, - &feature_db, + &feature_fpregs, + &feature_v4t, &feature_thumb2, &feature_ras, - &feature_fp16, - &feature_v4t, - &feature_d32, + &feature_v7clrex, &feature_aclass, - &feature_hwdivArm, &feature_crc, - &feature_dsp, - &feature_fpregs, + &feature_mp, + &feature_acquireRelease, + &feature_fp16, + &feature_perfmon, + &feature_d32, &feature_armv82A, &feature_crypto, &feature_dotprod, @@ -3399,11 +3224,11 @@ pub const cpu_sc000 = Cpu{ .llvm_name = "sc000", .subfeatures = &[_]*const Feature { &feature_db, - &feature_thumbMode, &feature_mclass, + &feature_thumbMode, + &feature_strictAlign, &feature_noarm, &feature_v4t, - &feature_strictAlign, &feature_armv6M, }, }; @@ -3412,15 +3237,15 @@ pub const cpu_sc300 = Cpu{ .name = "sc300", .llvm_name = "sc300", .subfeatures = &[_]*const Feature { - &feature_v7clrex, &feature_db, - &feature_thumb2, &feature_mclass, + &feature_hwdiv, &feature_thumbMode, + &feature_thumb2, + &feature_v7clrex, + &feature_perfmon, &feature_noarm, &feature_v4t, - &feature_perfmon, - &feature_hwdiv, &feature_armv7M, &feature_noBranchPredictor, &feature_useAa, @@ -3465,15 +3290,15 @@ pub const cpu_swift = Cpu{ .name = "swift", .llvm_name = "swift", .subfeatures = &[_]*const Feature { - &feature_perfmon, - &feature_v7clrex, &feature_db, + &feature_dsp, + &feature_fpregs, &feature_thumb2, + &feature_v7clrex, + &feature_aclass, + &feature_perfmon, &feature_v4t, &feature_d32, - &feature_aclass, - &feature_dsp, - &feature_fpregs, &feature_armv7A, &feature_avoidMovsShop, &feature_avoidPartialCpsr, diff --git a/lib/std/target/avr.zig b/lib/std/target/avr.zig index a843ba5e28..4ca020d897 100644 --- a/lib/std/target/avr.zig +++ b/lib/std/target/avr.zig @@ -4,7 +4,6 @@ const Cpu = @import("std").target.Cpu; pub const feature_avr0 = Feature{ .name = "avr0", .description = "The device is a part of the avr0 family", - .llvm_name = "avr0", .subfeatures = &[_]*const Feature { }, }; @@ -12,234 +11,220 @@ pub const feature_avr0 = Feature{ pub const feature_avr1 = Feature{ .name = "avr1", .description = "The device is a part of the avr1 family", - .llvm_name = "avr1", .subfeatures = &[_]*const Feature { - &feature_avr0, &feature_lpm, + &feature_avr0, }, }; pub const feature_avr2 = Feature{ .name = "avr2", .description = "The device is a part of the avr2 family", - .llvm_name = "avr2", .subfeatures = &[_]*const Feature { &feature_ijmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, &feature_addsubiw, + &feature_lpm, + &feature_avr0, }, }; pub const feature_avr3 = Feature{ .name = "avr3", .description = "The device is a part of the avr3 family", - .llvm_name = "avr3", .subfeatures = &[_]*const Feature { &feature_ijmpcall, &feature_jmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, &feature_addsubiw, + &feature_lpm, + &feature_avr0, }, }; pub const feature_avr4 = Feature{ .name = "avr4", .description = "The device is a part of the avr4 family", - .llvm_name = "avr4", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, }, }; pub const feature_avr5 = Feature{ .name = "avr5", .description = "The device is a part of the avr5 family", - .llvm_name = "avr5", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, }, }; pub const feature_avr6 = Feature{ .name = "avr6", .description = "The device is a part of the avr6 family", - .llvm_name = "avr6", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, + &feature_elpm, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, + &feature_avr0, + &feature_movw, }, }; pub const feature_avr25 = Feature{ .name = "avr25", .description = "The device is a part of the avr25 family", - .llvm_name = "avr25", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &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", - .llvm_name = "avr31", .subfeatures = &[_]*const Feature { - &feature_jmpcall, &feature_ijmpcall, + &feature_jmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_elpm, &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", - .llvm_name = "avr35", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &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", - .llvm_name = "avr51", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, + &feature_elpm, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, + &feature_avr0, + &feature_movw, }, }; pub const feature_avrtiny = Feature{ .name = "avrtiny", .description = "The device is a part of the avrtiny family", - .llvm_name = "avrtiny", .subfeatures = &[_]*const Feature { - &feature_tinyencoding, + &feature_avr0, &feature_sram, + &feature_tinyencoding, &feature_break, - &feature_avr0, }, }; pub const feature_xmega = Feature{ .name = "xmega", .description = "The device is a part of the xmega family", - .llvm_name = "xmega", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, + &feature_des, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, }, }; pub const feature_xmegau = Feature{ .name = "xmegau", .description = "The device is a part of the xmegau family", - .llvm_name = "xmegau", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, + &feature_des, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, &feature_rmw, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, }, }; pub const feature_addsubiw = Feature{ .name = "addsubiw", .description = "Enable 16-bit register-immediate addition and subtraction instructions", - .llvm_name = "addsubiw", .subfeatures = &[_]*const Feature { }, }; @@ -247,7 +232,6 @@ pub const feature_addsubiw = Feature{ pub const feature_break = Feature{ .name = "break", .description = "The device supports the `BREAK` debugging instruction", - .llvm_name = "break", .subfeatures = &[_]*const Feature { }, }; @@ -255,7 +239,6 @@ pub const feature_break = Feature{ pub const feature_des = Feature{ .name = "des", .description = "The device supports the `DES k` encryption instruction", - .llvm_name = "des", .subfeatures = &[_]*const Feature { }, }; @@ -263,7 +246,6 @@ pub const feature_des = Feature{ pub const feature_eijmpcall = Feature{ .name = "eijmpcall", .description = "The device supports the `EIJMP`/`EICALL` instructions", - .llvm_name = "eijmpcall", .subfeatures = &[_]*const Feature { }, }; @@ -271,7 +253,6 @@ pub const feature_eijmpcall = Feature{ pub const feature_elpm = Feature{ .name = "elpm", .description = "The device supports the ELPM instruction", - .llvm_name = "elpm", .subfeatures = &[_]*const Feature { }, }; @@ -279,7 +260,6 @@ pub const feature_elpm = Feature{ pub const feature_elpmx = Feature{ .name = "elpmx", .description = "The device supports the `ELPM Rd, Z[+]` instructions", - .llvm_name = "elpmx", .subfeatures = &[_]*const Feature { }, }; @@ -287,7 +267,6 @@ pub const feature_elpmx = Feature{ pub const feature_ijmpcall = Feature{ .name = "ijmpcall", .description = "The device supports `IJMP`/`ICALL`instructions", - .llvm_name = "ijmpcall", .subfeatures = &[_]*const Feature { }, }; @@ -295,7 +274,6 @@ pub const feature_ijmpcall = Feature{ pub const feature_jmpcall = Feature{ .name = "jmpcall", .description = "The device supports the `JMP` and `CALL` instructions", - .llvm_name = "jmpcall", .subfeatures = &[_]*const Feature { }, }; @@ -303,7 +281,6 @@ pub const feature_jmpcall = Feature{ pub const feature_lpm = Feature{ .name = "lpm", .description = "The device supports the `LPM` instruction", - .llvm_name = "lpm", .subfeatures = &[_]*const Feature { }, }; @@ -311,7 +288,6 @@ pub const feature_lpm = Feature{ pub const feature_lpmx = Feature{ .name = "lpmx", .description = "The device supports the `LPM Rd, Z[+]` instruction", - .llvm_name = "lpmx", .subfeatures = &[_]*const Feature { }, }; @@ -319,7 +295,6 @@ pub const feature_lpmx = Feature{ pub const feature_movw = Feature{ .name = "movw", .description = "The device supports the 16-bit MOVW instruction", - .llvm_name = "movw", .subfeatures = &[_]*const Feature { }, }; @@ -327,7 +302,6 @@ pub const feature_movw = Feature{ pub const feature_mul = Feature{ .name = "mul", .description = "The device supports the multiplication instructions", - .llvm_name = "mul", .subfeatures = &[_]*const Feature { }, }; @@ -335,7 +309,6 @@ pub const feature_mul = Feature{ pub const feature_rmw = Feature{ .name = "rmw", .description = "The device supports the read-write-modify instructions: XCH, LAS, LAC, LAT", - .llvm_name = "rmw", .subfeatures = &[_]*const Feature { }, }; @@ -343,7 +316,6 @@ pub const feature_rmw = Feature{ pub const feature_spm = Feature{ .name = "spm", .description = "The device supports the `SPM` instruction", - .llvm_name = "spm", .subfeatures = &[_]*const Feature { }, }; @@ -351,7 +323,6 @@ pub const feature_spm = Feature{ pub const feature_spmx = Feature{ .name = "spmx", .description = "The device supports the `SPM Z+` instruction", - .llvm_name = "spmx", .subfeatures = &[_]*const Feature { }, }; @@ -359,7 +330,6 @@ pub const feature_spmx = Feature{ pub const feature_sram = Feature{ .name = "sram", .description = "The device has random access memory", - .llvm_name = "sram", .subfeatures = &[_]*const Feature { }, }; @@ -367,31 +337,29 @@ pub const feature_sram = Feature{ pub const feature_special = Feature{ .name = "special", .description = "Enable use of the entire instruction set - used for debugging", - .llvm_name = "special", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, + &feature_des, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, - &feature_sram, - &feature_mul, &feature_rmw, - &feature_spmx, - &feature_lpm, - &feature_eijmpcall, - &feature_break, - &feature_spm, - &feature_elpmx, + &feature_sram, &feature_elpm, &feature_addsubiw, - &feature_des, + &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", - .llvm_name = "smallstack", .subfeatures = &[_]*const Feature { }, }; @@ -399,7 +367,6 @@ pub const feature_smallstack = Feature{ pub const feature_tinyencoding = Feature{ .name = "tinyencoding", .description = "The device has Tiny core specific instruction encodings", - .llvm_name = "tinyencoding", .subfeatures = &[_]*const Feature { }, }; @@ -444,13 +411,13 @@ pub const cpu_at43usb320 = Cpu{ .name = "at43usb320", .llvm_name = "at43usb320", .subfeatures = &[_]*const Feature { - &feature_jmpcall, &feature_ijmpcall, + &feature_jmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_elpm, &feature_addsubiw, + &feature_elpm, + &feature_lpm, + &feature_avr0, &feature_avr31, }, }; @@ -462,9 +429,9 @@ pub const cpu_at43usb355 = Cpu{ &feature_ijmpcall, &feature_jmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, &feature_addsubiw, + &feature_lpm, + &feature_avr0, &feature_avr3, }, }; @@ -476,9 +443,9 @@ pub const cpu_at76c711 = Cpu{ &feature_ijmpcall, &feature_jmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, &feature_addsubiw, + &feature_lpm, + &feature_avr0, &feature_avr3, }, }; @@ -489,9 +456,9 @@ pub const cpu_at86rf401 = Cpu{ .subfeatures = &[_]*const Feature { &feature_ijmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, &feature_addsubiw, + &feature_lpm, + &feature_avr0, &feature_avr2, &feature_lpmx, &feature_movw, @@ -504,9 +471,9 @@ pub const cpu_at90c8534 = Cpu{ .subfeatures = &[_]*const Feature { &feature_ijmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, &feature_addsubiw, + &feature_lpm, + &feature_avr0, &feature_avr2, }, }; @@ -515,19 +482,19 @@ pub const cpu_at90can128 = Cpu{ .name = "at90can128", .llvm_name = "at90can128", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, + &feature_elpm, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, + &feature_avr0, + &feature_movw, &feature_avr51, }, }; @@ -536,17 +503,17 @@ pub const cpu_at90can32 = Cpu{ .name = "at90can32", .llvm_name = "at90can32", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -555,17 +522,17 @@ pub const cpu_at90can64 = Cpu{ .name = "at90can64", .llvm_name = "at90can64", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -574,16 +541,16 @@ pub const cpu_at90pwm1 = Cpu{ .name = "at90pwm1", .llvm_name = "at90pwm1", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr4, }, }; @@ -592,17 +559,17 @@ pub const cpu_at90pwm161 = Cpu{ .name = "at90pwm161", .llvm_name = "at90pwm161", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -611,16 +578,16 @@ pub const cpu_at90pwm2 = Cpu{ .name = "at90pwm2", .llvm_name = "at90pwm2", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr4, }, }; @@ -629,17 +596,17 @@ pub const cpu_at90pwm216 = Cpu{ .name = "at90pwm216", .llvm_name = "at90pwm216", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -648,16 +615,16 @@ pub const cpu_at90pwm2b = Cpu{ .name = "at90pwm2b", .llvm_name = "at90pwm2b", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr4, }, }; @@ -666,16 +633,16 @@ pub const cpu_at90pwm3 = Cpu{ .name = "at90pwm3", .llvm_name = "at90pwm3", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr4, }, }; @@ -684,17 +651,17 @@ pub const cpu_at90pwm316 = Cpu{ .name = "at90pwm316", .llvm_name = "at90pwm316", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -703,16 +670,16 @@ pub const cpu_at90pwm3b = Cpu{ .name = "at90pwm3b", .llvm_name = "at90pwm3b", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr4, }, }; @@ -721,16 +688,16 @@ pub const cpu_at90pwm81 = Cpu{ .name = "at90pwm81", .llvm_name = "at90pwm81", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr4, }, }; @@ -749,9 +716,9 @@ pub const cpu_at90s2313 = Cpu{ .subfeatures = &[_]*const Feature { &feature_ijmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, &feature_addsubiw, + &feature_lpm, + &feature_avr0, &feature_avr2, }, }; @@ -762,9 +729,9 @@ pub const cpu_at90s2323 = Cpu{ .subfeatures = &[_]*const Feature { &feature_ijmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, &feature_addsubiw, + &feature_lpm, + &feature_avr0, &feature_avr2, }, }; @@ -775,9 +742,9 @@ pub const cpu_at90s2333 = Cpu{ .subfeatures = &[_]*const Feature { &feature_ijmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, &feature_addsubiw, + &feature_lpm, + &feature_avr0, &feature_avr2, }, }; @@ -788,9 +755,9 @@ pub const cpu_at90s2343 = Cpu{ .subfeatures = &[_]*const Feature { &feature_ijmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, &feature_addsubiw, + &feature_lpm, + &feature_avr0, &feature_avr2, }, }; @@ -801,9 +768,9 @@ pub const cpu_at90s4414 = Cpu{ .subfeatures = &[_]*const Feature { &feature_ijmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, &feature_addsubiw, + &feature_lpm, + &feature_avr0, &feature_avr2, }, }; @@ -814,9 +781,9 @@ pub const cpu_at90s4433 = Cpu{ .subfeatures = &[_]*const Feature { &feature_ijmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, &feature_addsubiw, + &feature_lpm, + &feature_avr0, &feature_avr2, }, }; @@ -827,9 +794,9 @@ pub const cpu_at90s4434 = Cpu{ .subfeatures = &[_]*const Feature { &feature_ijmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, &feature_addsubiw, + &feature_lpm, + &feature_avr0, &feature_avr2, }, }; @@ -840,9 +807,9 @@ pub const cpu_at90s8515 = Cpu{ .subfeatures = &[_]*const Feature { &feature_ijmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, &feature_addsubiw, + &feature_lpm, + &feature_avr0, &feature_avr2, }, }; @@ -853,9 +820,9 @@ pub const cpu_at90s8535 = Cpu{ .subfeatures = &[_]*const Feature { &feature_ijmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, &feature_addsubiw, + &feature_lpm, + &feature_avr0, &feature_avr2, }, }; @@ -864,17 +831,17 @@ pub const cpu_at90scr100 = Cpu{ .name = "at90scr100", .llvm_name = "at90scr100", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -883,19 +850,19 @@ pub const cpu_at90usb1286 = Cpu{ .name = "at90usb1286", .llvm_name = "at90usb1286", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, + &feature_elpm, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, + &feature_avr0, + &feature_movw, &feature_avr51, }, }; @@ -904,19 +871,19 @@ pub const cpu_at90usb1287 = Cpu{ .name = "at90usb1287", .llvm_name = "at90usb1287", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, + &feature_elpm, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, + &feature_avr0, + &feature_movw, &feature_avr51, }, }; @@ -925,16 +892,16 @@ pub const cpu_at90usb162 = Cpu{ .name = "at90usb162", .llvm_name = "at90usb162", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr35, }, }; @@ -943,17 +910,17 @@ pub const cpu_at90usb646 = Cpu{ .name = "at90usb646", .llvm_name = "at90usb646", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -962,17 +929,17 @@ pub const cpu_at90usb647 = Cpu{ .name = "at90usb647", .llvm_name = "at90usb647", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -981,16 +948,16 @@ pub const cpu_at90usb82 = Cpu{ .name = "at90usb82", .llvm_name = "at90usb82", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr35, }, }; @@ -1002,9 +969,9 @@ pub const cpu_at94k = Cpu{ &feature_ijmpcall, &feature_jmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, &feature_addsubiw, + &feature_lpm, + &feature_avr0, &feature_avr3, &feature_lpmx, &feature_movw, @@ -1016,15 +983,15 @@ pub const cpu_ata5272 = Cpu{ .name = "ata5272", .llvm_name = "ata5272", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr25, }, }; @@ -1033,16 +1000,16 @@ pub const cpu_ata5505 = Cpu{ .name = "ata5505", .llvm_name = "ata5505", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr35, }, }; @@ -1051,17 +1018,17 @@ pub const cpu_ata5790 = Cpu{ .name = "ata5790", .llvm_name = "ata5790", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -1070,17 +1037,17 @@ pub const cpu_ata5795 = Cpu{ .name = "ata5795", .llvm_name = "ata5795", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -1089,16 +1056,16 @@ pub const cpu_ata6285 = Cpu{ .name = "ata6285", .llvm_name = "ata6285", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr4, }, }; @@ -1107,16 +1074,16 @@ pub const cpu_ata6286 = Cpu{ .name = "ata6286", .llvm_name = "ata6286", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr4, }, }; @@ -1125,16 +1092,16 @@ pub const cpu_ata6289 = Cpu{ .name = "ata6289", .llvm_name = "ata6289", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr4, }, }; @@ -1143,13 +1110,13 @@ pub const cpu_atmega103 = Cpu{ .name = "atmega103", .llvm_name = "atmega103", .subfeatures = &[_]*const Feature { - &feature_jmpcall, &feature_ijmpcall, + &feature_jmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_elpm, &feature_addsubiw, + &feature_elpm, + &feature_lpm, + &feature_avr0, &feature_avr31, }, }; @@ -1158,19 +1125,19 @@ pub const cpu_atmega128 = Cpu{ .name = "atmega128", .llvm_name = "atmega128", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, + &feature_elpm, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, + &feature_avr0, + &feature_movw, &feature_avr51, }, }; @@ -1179,19 +1146,19 @@ pub const cpu_atmega1280 = Cpu{ .name = "atmega1280", .llvm_name = "atmega1280", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, + &feature_elpm, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, + &feature_avr0, + &feature_movw, &feature_avr51, }, }; @@ -1200,19 +1167,19 @@ pub const cpu_atmega1281 = Cpu{ .name = "atmega1281", .llvm_name = "atmega1281", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, + &feature_elpm, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, + &feature_avr0, + &feature_movw, &feature_avr51, }, }; @@ -1221,19 +1188,19 @@ pub const cpu_atmega1284 = Cpu{ .name = "atmega1284", .llvm_name = "atmega1284", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, + &feature_elpm, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, + &feature_avr0, + &feature_movw, &feature_avr51, }, }; @@ -1242,19 +1209,19 @@ pub const cpu_atmega1284p = Cpu{ .name = "atmega1284p", .llvm_name = "atmega1284p", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, + &feature_elpm, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, + &feature_avr0, + &feature_movw, &feature_avr51, }, }; @@ -1263,19 +1230,19 @@ pub const cpu_atmega1284rfr2 = Cpu{ .name = "atmega1284rfr2", .llvm_name = "atmega1284rfr2", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, + &feature_elpm, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, + &feature_avr0, + &feature_movw, &feature_avr51, }, }; @@ -1284,19 +1251,19 @@ pub const cpu_atmega128a = Cpu{ .name = "atmega128a", .llvm_name = "atmega128a", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, + &feature_elpm, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, + &feature_avr0, + &feature_movw, &feature_avr51, }, }; @@ -1305,19 +1272,19 @@ pub const cpu_atmega128rfa1 = Cpu{ .name = "atmega128rfa1", .llvm_name = "atmega128rfa1", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, + &feature_elpm, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, + &feature_avr0, + &feature_movw, &feature_avr51, }, }; @@ -1326,19 +1293,19 @@ pub const cpu_atmega128rfr2 = Cpu{ .name = "atmega128rfr2", .llvm_name = "atmega128rfr2", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, + &feature_elpm, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, + &feature_avr0, + &feature_movw, &feature_avr51, }, }; @@ -1347,17 +1314,17 @@ pub const cpu_atmega16 = Cpu{ .name = "atmega16", .llvm_name = "atmega16", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -1369,9 +1336,9 @@ pub const cpu_atmega161 = Cpu{ &feature_ijmpcall, &feature_jmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, &feature_addsubiw, + &feature_lpm, + &feature_avr0, &feature_avr3, &feature_lpmx, &feature_movw, @@ -1384,17 +1351,17 @@ pub const cpu_atmega162 = Cpu{ .name = "atmega162", .llvm_name = "atmega162", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -1406,9 +1373,9 @@ pub const cpu_atmega163 = Cpu{ &feature_ijmpcall, &feature_jmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, &feature_addsubiw, + &feature_lpm, + &feature_avr0, &feature_avr3, &feature_lpmx, &feature_movw, @@ -1421,17 +1388,17 @@ pub const cpu_atmega164a = Cpu{ .name = "atmega164a", .llvm_name = "atmega164a", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -1440,17 +1407,17 @@ pub const cpu_atmega164p = Cpu{ .name = "atmega164p", .llvm_name = "atmega164p", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -1459,17 +1426,17 @@ pub const cpu_atmega164pa = Cpu{ .name = "atmega164pa", .llvm_name = "atmega164pa", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -1478,17 +1445,17 @@ pub const cpu_atmega165 = Cpu{ .name = "atmega165", .llvm_name = "atmega165", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -1497,17 +1464,17 @@ pub const cpu_atmega165a = Cpu{ .name = "atmega165a", .llvm_name = "atmega165a", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -1516,17 +1483,17 @@ pub const cpu_atmega165p = Cpu{ .name = "atmega165p", .llvm_name = "atmega165p", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -1535,17 +1502,17 @@ pub const cpu_atmega165pa = Cpu{ .name = "atmega165pa", .llvm_name = "atmega165pa", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -1554,17 +1521,17 @@ pub const cpu_atmega168 = Cpu{ .name = "atmega168", .llvm_name = "atmega168", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -1573,17 +1540,17 @@ pub const cpu_atmega168a = Cpu{ .name = "atmega168a", .llvm_name = "atmega168a", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -1592,17 +1559,17 @@ pub const cpu_atmega168p = Cpu{ .name = "atmega168p", .llvm_name = "atmega168p", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -1611,17 +1578,17 @@ pub const cpu_atmega168pa = Cpu{ .name = "atmega168pa", .llvm_name = "atmega168pa", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -1630,17 +1597,17 @@ pub const cpu_atmega169 = Cpu{ .name = "atmega169", .llvm_name = "atmega169", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -1649,17 +1616,17 @@ pub const cpu_atmega169a = Cpu{ .name = "atmega169a", .llvm_name = "atmega169a", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -1668,17 +1635,17 @@ pub const cpu_atmega169p = Cpu{ .name = "atmega169p", .llvm_name = "atmega169p", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -1687,17 +1654,17 @@ pub const cpu_atmega169pa = Cpu{ .name = "atmega169pa", .llvm_name = "atmega169pa", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -1706,17 +1673,17 @@ pub const cpu_atmega16a = Cpu{ .name = "atmega16a", .llvm_name = "atmega16a", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -1725,17 +1692,17 @@ pub const cpu_atmega16hva = Cpu{ .name = "atmega16hva", .llvm_name = "atmega16hva", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -1744,17 +1711,17 @@ pub const cpu_atmega16hva2 = Cpu{ .name = "atmega16hva2", .llvm_name = "atmega16hva2", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -1763,17 +1730,17 @@ pub const cpu_atmega16hvb = Cpu{ .name = "atmega16hvb", .llvm_name = "atmega16hvb", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -1782,17 +1749,17 @@ pub const cpu_atmega16hvbrevb = Cpu{ .name = "atmega16hvbrevb", .llvm_name = "atmega16hvbrevb", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -1801,17 +1768,17 @@ pub const cpu_atmega16m1 = Cpu{ .name = "atmega16m1", .llvm_name = "atmega16m1", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -1820,16 +1787,16 @@ pub const cpu_atmega16u2 = Cpu{ .name = "atmega16u2", .llvm_name = "atmega16u2", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr35, }, }; @@ -1838,17 +1805,17 @@ pub const cpu_atmega16u4 = Cpu{ .name = "atmega16u4", .llvm_name = "atmega16u4", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -1857,19 +1824,19 @@ pub const cpu_atmega2560 = Cpu{ .name = "atmega2560", .llvm_name = "atmega2560", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, + &feature_elpm, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, + &feature_avr0, + &feature_movw, &feature_avr6, }, }; @@ -1878,19 +1845,19 @@ pub const cpu_atmega2561 = Cpu{ .name = "atmega2561", .llvm_name = "atmega2561", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, + &feature_elpm, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, + &feature_avr0, + &feature_movw, &feature_avr6, }, }; @@ -1899,19 +1866,19 @@ pub const cpu_atmega2564rfr2 = Cpu{ .name = "atmega2564rfr2", .llvm_name = "atmega2564rfr2", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, + &feature_elpm, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, + &feature_avr0, + &feature_movw, &feature_avr6, }, }; @@ -1920,19 +1887,19 @@ pub const cpu_atmega256rfr2 = Cpu{ .name = "atmega256rfr2", .llvm_name = "atmega256rfr2", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, + &feature_elpm, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, + &feature_avr0, + &feature_movw, &feature_avr6, }, }; @@ -1941,17 +1908,17 @@ pub const cpu_atmega32 = Cpu{ .name = "atmega32", .llvm_name = "atmega32", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -1960,17 +1927,17 @@ pub const cpu_atmega323 = Cpu{ .name = "atmega323", .llvm_name = "atmega323", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -1979,17 +1946,17 @@ pub const cpu_atmega324a = Cpu{ .name = "atmega324a", .llvm_name = "atmega324a", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -1998,17 +1965,17 @@ pub const cpu_atmega324p = Cpu{ .name = "atmega324p", .llvm_name = "atmega324p", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2017,17 +1984,17 @@ pub const cpu_atmega324pa = Cpu{ .name = "atmega324pa", .llvm_name = "atmega324pa", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2036,17 +2003,17 @@ pub const cpu_atmega325 = Cpu{ .name = "atmega325", .llvm_name = "atmega325", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2055,17 +2022,17 @@ pub const cpu_atmega3250 = Cpu{ .name = "atmega3250", .llvm_name = "atmega3250", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2074,17 +2041,17 @@ pub const cpu_atmega3250a = Cpu{ .name = "atmega3250a", .llvm_name = "atmega3250a", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2093,17 +2060,17 @@ pub const cpu_atmega3250p = Cpu{ .name = "atmega3250p", .llvm_name = "atmega3250p", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2112,17 +2079,17 @@ pub const cpu_atmega3250pa = Cpu{ .name = "atmega3250pa", .llvm_name = "atmega3250pa", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2131,17 +2098,17 @@ pub const cpu_atmega325a = Cpu{ .name = "atmega325a", .llvm_name = "atmega325a", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2150,17 +2117,17 @@ pub const cpu_atmega325p = Cpu{ .name = "atmega325p", .llvm_name = "atmega325p", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2169,17 +2136,17 @@ pub const cpu_atmega325pa = Cpu{ .name = "atmega325pa", .llvm_name = "atmega325pa", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2188,17 +2155,17 @@ pub const cpu_atmega328 = Cpu{ .name = "atmega328", .llvm_name = "atmega328", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2207,17 +2174,17 @@ pub const cpu_atmega328p = Cpu{ .name = "atmega328p", .llvm_name = "atmega328p", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2226,17 +2193,17 @@ pub const cpu_atmega329 = Cpu{ .name = "atmega329", .llvm_name = "atmega329", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2245,17 +2212,17 @@ pub const cpu_atmega3290 = Cpu{ .name = "atmega3290", .llvm_name = "atmega3290", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2264,17 +2231,17 @@ pub const cpu_atmega3290a = Cpu{ .name = "atmega3290a", .llvm_name = "atmega3290a", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2283,17 +2250,17 @@ pub const cpu_atmega3290p = Cpu{ .name = "atmega3290p", .llvm_name = "atmega3290p", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2302,17 +2269,17 @@ pub const cpu_atmega3290pa = Cpu{ .name = "atmega3290pa", .llvm_name = "atmega3290pa", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2321,17 +2288,17 @@ pub const cpu_atmega329a = Cpu{ .name = "atmega329a", .llvm_name = "atmega329a", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2340,17 +2307,17 @@ pub const cpu_atmega329p = Cpu{ .name = "atmega329p", .llvm_name = "atmega329p", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2359,17 +2326,17 @@ pub const cpu_atmega329pa = Cpu{ .name = "atmega329pa", .llvm_name = "atmega329pa", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2378,17 +2345,17 @@ pub const cpu_atmega32a = Cpu{ .name = "atmega32a", .llvm_name = "atmega32a", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2397,17 +2364,17 @@ pub const cpu_atmega32c1 = Cpu{ .name = "atmega32c1", .llvm_name = "atmega32c1", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2416,17 +2383,17 @@ pub const cpu_atmega32hvb = Cpu{ .name = "atmega32hvb", .llvm_name = "atmega32hvb", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2435,17 +2402,17 @@ pub const cpu_atmega32hvbrevb = Cpu{ .name = "atmega32hvbrevb", .llvm_name = "atmega32hvbrevb", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2454,17 +2421,17 @@ pub const cpu_atmega32m1 = Cpu{ .name = "atmega32m1", .llvm_name = "atmega32m1", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2473,16 +2440,16 @@ pub const cpu_atmega32u2 = Cpu{ .name = "atmega32u2", .llvm_name = "atmega32u2", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr35, }, }; @@ -2491,17 +2458,17 @@ pub const cpu_atmega32u4 = Cpu{ .name = "atmega32u4", .llvm_name = "atmega32u4", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2510,17 +2477,17 @@ pub const cpu_atmega32u6 = Cpu{ .name = "atmega32u6", .llvm_name = "atmega32u6", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2529,17 +2496,17 @@ pub const cpu_atmega406 = Cpu{ .name = "atmega406", .llvm_name = "atmega406", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2548,16 +2515,16 @@ pub const cpu_atmega48 = Cpu{ .name = "atmega48", .llvm_name = "atmega48", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr4, }, }; @@ -2566,16 +2533,16 @@ pub const cpu_atmega48a = Cpu{ .name = "atmega48a", .llvm_name = "atmega48a", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr4, }, }; @@ -2584,16 +2551,16 @@ pub const cpu_atmega48p = Cpu{ .name = "atmega48p", .llvm_name = "atmega48p", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr4, }, }; @@ -2602,16 +2569,16 @@ pub const cpu_atmega48pa = Cpu{ .name = "atmega48pa", .llvm_name = "atmega48pa", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr4, }, }; @@ -2620,17 +2587,17 @@ pub const cpu_atmega64 = Cpu{ .name = "atmega64", .llvm_name = "atmega64", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2639,17 +2606,17 @@ pub const cpu_atmega640 = Cpu{ .name = "atmega640", .llvm_name = "atmega640", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2658,17 +2625,17 @@ pub const cpu_atmega644 = Cpu{ .name = "atmega644", .llvm_name = "atmega644", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2677,17 +2644,17 @@ pub const cpu_atmega644a = Cpu{ .name = "atmega644a", .llvm_name = "atmega644a", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2696,17 +2663,17 @@ pub const cpu_atmega644p = Cpu{ .name = "atmega644p", .llvm_name = "atmega644p", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2715,17 +2682,17 @@ pub const cpu_atmega644pa = Cpu{ .name = "atmega644pa", .llvm_name = "atmega644pa", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2734,17 +2701,17 @@ pub const cpu_atmega644rfr2 = Cpu{ .name = "atmega644rfr2", .llvm_name = "atmega644rfr2", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2753,17 +2720,17 @@ pub const cpu_atmega645 = Cpu{ .name = "atmega645", .llvm_name = "atmega645", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2772,17 +2739,17 @@ pub const cpu_atmega6450 = Cpu{ .name = "atmega6450", .llvm_name = "atmega6450", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2791,17 +2758,17 @@ pub const cpu_atmega6450a = Cpu{ .name = "atmega6450a", .llvm_name = "atmega6450a", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2810,17 +2777,17 @@ pub const cpu_atmega6450p = Cpu{ .name = "atmega6450p", .llvm_name = "atmega6450p", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2829,17 +2796,17 @@ pub const cpu_atmega645a = Cpu{ .name = "atmega645a", .llvm_name = "atmega645a", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2848,17 +2815,17 @@ pub const cpu_atmega645p = Cpu{ .name = "atmega645p", .llvm_name = "atmega645p", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2867,17 +2834,17 @@ pub const cpu_atmega649 = Cpu{ .name = "atmega649", .llvm_name = "atmega649", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2886,17 +2853,17 @@ pub const cpu_atmega6490 = Cpu{ .name = "atmega6490", .llvm_name = "atmega6490", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2905,17 +2872,17 @@ pub const cpu_atmega6490a = Cpu{ .name = "atmega6490a", .llvm_name = "atmega6490a", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2924,17 +2891,17 @@ pub const cpu_atmega6490p = Cpu{ .name = "atmega6490p", .llvm_name = "atmega6490p", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2943,17 +2910,17 @@ pub const cpu_atmega649a = Cpu{ .name = "atmega649a", .llvm_name = "atmega649a", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2962,17 +2929,17 @@ pub const cpu_atmega649p = Cpu{ .name = "atmega649p", .llvm_name = "atmega649p", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -2981,17 +2948,17 @@ pub const cpu_atmega64a = Cpu{ .name = "atmega64a", .llvm_name = "atmega64a", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -3000,17 +2967,17 @@ pub const cpu_atmega64c1 = Cpu{ .name = "atmega64c1", .llvm_name = "atmega64c1", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -3019,17 +2986,17 @@ pub const cpu_atmega64hve = Cpu{ .name = "atmega64hve", .llvm_name = "atmega64hve", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -3038,17 +3005,17 @@ pub const cpu_atmega64m1 = Cpu{ .name = "atmega64m1", .llvm_name = "atmega64m1", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -3057,17 +3024,17 @@ pub const cpu_atmega64rfr2 = Cpu{ .name = "atmega64rfr2", .llvm_name = "atmega64rfr2", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -3076,16 +3043,16 @@ pub const cpu_atmega8 = Cpu{ .name = "atmega8", .llvm_name = "atmega8", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr4, }, }; @@ -3096,9 +3063,9 @@ pub const cpu_atmega8515 = Cpu{ .subfeatures = &[_]*const Feature { &feature_ijmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, &feature_addsubiw, + &feature_lpm, + &feature_avr0, &feature_avr2, &feature_lpmx, &feature_movw, @@ -3113,9 +3080,9 @@ pub const cpu_atmega8535 = Cpu{ .subfeatures = &[_]*const Feature { &feature_ijmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, &feature_addsubiw, + &feature_lpm, + &feature_avr0, &feature_avr2, &feature_lpmx, &feature_movw, @@ -3128,16 +3095,16 @@ pub const cpu_atmega88 = Cpu{ .name = "atmega88", .llvm_name = "atmega88", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr4, }, }; @@ -3146,16 +3113,16 @@ pub const cpu_atmega88a = Cpu{ .name = "atmega88a", .llvm_name = "atmega88a", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr4, }, }; @@ -3164,16 +3131,16 @@ pub const cpu_atmega88p = Cpu{ .name = "atmega88p", .llvm_name = "atmega88p", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr4, }, }; @@ -3182,16 +3149,16 @@ pub const cpu_atmega88pa = Cpu{ .name = "atmega88pa", .llvm_name = "atmega88pa", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr4, }, }; @@ -3200,16 +3167,16 @@ pub const cpu_atmega8a = Cpu{ .name = "atmega8a", .llvm_name = "atmega8a", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr4, }, }; @@ -3218,16 +3185,16 @@ pub const cpu_atmega8hva = Cpu{ .name = "atmega8hva", .llvm_name = "atmega8hva", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr4, }, }; @@ -3236,16 +3203,16 @@ pub const cpu_atmega8u2 = Cpu{ .name = "atmega8u2", .llvm_name = "atmega8u2", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr35, }, }; @@ -3254,10 +3221,10 @@ pub const cpu_attiny10 = Cpu{ .name = "attiny10", .llvm_name = "attiny10", .subfeatures = &[_]*const Feature { - &feature_tinyencoding, + &feature_avr0, &feature_sram, + &feature_tinyencoding, &feature_break, - &feature_avr0, &feature_avrtiny, }, }; @@ -3266,10 +3233,10 @@ pub const cpu_attiny102 = Cpu{ .name = "attiny102", .llvm_name = "attiny102", .subfeatures = &[_]*const Feature { - &feature_tinyencoding, + &feature_avr0, &feature_sram, + &feature_tinyencoding, &feature_break, - &feature_avr0, &feature_avrtiny, }, }; @@ -3278,10 +3245,10 @@ pub const cpu_attiny104 = Cpu{ .name = "attiny104", .llvm_name = "attiny104", .subfeatures = &[_]*const Feature { - &feature_tinyencoding, + &feature_avr0, &feature_sram, + &feature_tinyencoding, &feature_break, - &feature_avr0, &feature_avrtiny, }, }; @@ -3290,8 +3257,8 @@ pub const cpu_attiny11 = Cpu{ .name = "attiny11", .llvm_name = "attiny11", .subfeatures = &[_]*const Feature { - &feature_avr0, &feature_lpm, + &feature_avr0, &feature_avr1, }, }; @@ -3300,8 +3267,8 @@ pub const cpu_attiny12 = Cpu{ .name = "attiny12", .llvm_name = "attiny12", .subfeatures = &[_]*const Feature { - &feature_avr0, &feature_lpm, + &feature_avr0, &feature_avr1, }, }; @@ -3310,15 +3277,15 @@ pub const cpu_attiny13 = Cpu{ .name = "attiny13", .llvm_name = "attiny13", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr25, }, }; @@ -3327,15 +3294,15 @@ pub const cpu_attiny13a = Cpu{ .name = "attiny13a", .llvm_name = "attiny13a", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr25, }, }; @@ -3344,8 +3311,8 @@ pub const cpu_attiny15 = Cpu{ .name = "attiny15", .llvm_name = "attiny15", .subfeatures = &[_]*const Feature { - &feature_avr0, &feature_lpm, + &feature_avr0, &feature_avr1, }, }; @@ -3354,16 +3321,16 @@ pub const cpu_attiny1634 = Cpu{ .name = "attiny1634", .llvm_name = "attiny1634", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr35, }, }; @@ -3372,16 +3339,16 @@ pub const cpu_attiny167 = Cpu{ .name = "attiny167", .llvm_name = "attiny167", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr35, }, }; @@ -3390,10 +3357,10 @@ pub const cpu_attiny20 = Cpu{ .name = "attiny20", .llvm_name = "attiny20", .subfeatures = &[_]*const Feature { - &feature_tinyencoding, + &feature_avr0, &feature_sram, + &feature_tinyencoding, &feature_break, - &feature_avr0, &feature_avrtiny, }, }; @@ -3404,9 +3371,9 @@ pub const cpu_attiny22 = Cpu{ .subfeatures = &[_]*const Feature { &feature_ijmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, &feature_addsubiw, + &feature_lpm, + &feature_avr0, &feature_avr2, }, }; @@ -3415,15 +3382,15 @@ pub const cpu_attiny2313 = Cpu{ .name = "attiny2313", .llvm_name = "attiny2313", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr25, }, }; @@ -3432,15 +3399,15 @@ pub const cpu_attiny2313a = Cpu{ .name = "attiny2313a", .llvm_name = "attiny2313a", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr25, }, }; @@ -3449,15 +3416,15 @@ pub const cpu_attiny24 = Cpu{ .name = "attiny24", .llvm_name = "attiny24", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr25, }, }; @@ -3466,15 +3433,15 @@ pub const cpu_attiny24a = Cpu{ .name = "attiny24a", .llvm_name = "attiny24a", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr25, }, }; @@ -3483,15 +3450,15 @@ pub const cpu_attiny25 = Cpu{ .name = "attiny25", .llvm_name = "attiny25", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr25, }, }; @@ -3502,9 +3469,9 @@ pub const cpu_attiny26 = Cpu{ .subfeatures = &[_]*const Feature { &feature_ijmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, &feature_addsubiw, + &feature_lpm, + &feature_avr0, &feature_avr2, &feature_lpmx, }, @@ -3514,15 +3481,15 @@ pub const cpu_attiny261 = Cpu{ .name = "attiny261", .llvm_name = "attiny261", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr25, }, }; @@ -3531,15 +3498,15 @@ pub const cpu_attiny261a = Cpu{ .name = "attiny261a", .llvm_name = "attiny261a", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr25, }, }; @@ -3548,8 +3515,8 @@ pub const cpu_attiny28 = Cpu{ .name = "attiny28", .llvm_name = "attiny28", .subfeatures = &[_]*const Feature { - &feature_avr0, &feature_lpm, + &feature_avr0, &feature_avr1, }, }; @@ -3558,10 +3525,10 @@ pub const cpu_attiny4 = Cpu{ .name = "attiny4", .llvm_name = "attiny4", .subfeatures = &[_]*const Feature { - &feature_tinyencoding, + &feature_avr0, &feature_sram, + &feature_tinyencoding, &feature_break, - &feature_avr0, &feature_avrtiny, }, }; @@ -3570,10 +3537,10 @@ pub const cpu_attiny40 = Cpu{ .name = "attiny40", .llvm_name = "attiny40", .subfeatures = &[_]*const Feature { - &feature_tinyencoding, + &feature_avr0, &feature_sram, + &feature_tinyencoding, &feature_break, - &feature_avr0, &feature_avrtiny, }, }; @@ -3582,15 +3549,15 @@ pub const cpu_attiny4313 = Cpu{ .name = "attiny4313", .llvm_name = "attiny4313", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr25, }, }; @@ -3599,15 +3566,15 @@ pub const cpu_attiny43u = Cpu{ .name = "attiny43u", .llvm_name = "attiny43u", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr25, }, }; @@ -3616,15 +3583,15 @@ pub const cpu_attiny44 = Cpu{ .name = "attiny44", .llvm_name = "attiny44", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr25, }, }; @@ -3633,15 +3600,15 @@ pub const cpu_attiny44a = Cpu{ .name = "attiny44a", .llvm_name = "attiny44a", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr25, }, }; @@ -3650,15 +3617,15 @@ pub const cpu_attiny45 = Cpu{ .name = "attiny45", .llvm_name = "attiny45", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr25, }, }; @@ -3667,15 +3634,15 @@ pub const cpu_attiny461 = Cpu{ .name = "attiny461", .llvm_name = "attiny461", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr25, }, }; @@ -3684,15 +3651,15 @@ pub const cpu_attiny461a = Cpu{ .name = "attiny461a", .llvm_name = "attiny461a", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr25, }, }; @@ -3701,15 +3668,15 @@ pub const cpu_attiny48 = Cpu{ .name = "attiny48", .llvm_name = "attiny48", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr25, }, }; @@ -3718,10 +3685,10 @@ pub const cpu_attiny5 = Cpu{ .name = "attiny5", .llvm_name = "attiny5", .subfeatures = &[_]*const Feature { - &feature_tinyencoding, + &feature_avr0, &feature_sram, + &feature_tinyencoding, &feature_break, - &feature_avr0, &feature_avrtiny, }, }; @@ -3730,15 +3697,15 @@ pub const cpu_attiny828 = Cpu{ .name = "attiny828", .llvm_name = "attiny828", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr25, }, }; @@ -3747,15 +3714,15 @@ pub const cpu_attiny84 = Cpu{ .name = "attiny84", .llvm_name = "attiny84", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr25, }, }; @@ -3764,15 +3731,15 @@ pub const cpu_attiny84a = Cpu{ .name = "attiny84a", .llvm_name = "attiny84a", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr25, }, }; @@ -3781,15 +3748,15 @@ pub const cpu_attiny85 = Cpu{ .name = "attiny85", .llvm_name = "attiny85", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr25, }, }; @@ -3798,15 +3765,15 @@ pub const cpu_attiny861 = Cpu{ .name = "attiny861", .llvm_name = "attiny861", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr25, }, }; @@ -3815,15 +3782,15 @@ pub const cpu_attiny861a = Cpu{ .name = "attiny861a", .llvm_name = "attiny861a", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr25, }, }; @@ -3832,15 +3799,15 @@ pub const cpu_attiny87 = Cpu{ .name = "attiny87", .llvm_name = "attiny87", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr25, }, }; @@ -3849,15 +3816,15 @@ pub const cpu_attiny88 = Cpu{ .name = "attiny88", .llvm_name = "attiny88", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr25, }, }; @@ -3866,10 +3833,10 @@ pub const cpu_attiny9 = Cpu{ .name = "attiny9", .llvm_name = "attiny9", .subfeatures = &[_]*const Feature { - &feature_tinyencoding, + &feature_avr0, &feature_sram, + &feature_tinyencoding, &feature_break, - &feature_avr0, &feature_avrtiny, }, }; @@ -3878,22 +3845,22 @@ pub const cpu_atxmega128a1 = Cpu{ .name = "atxmega128a1", .llvm_name = "atxmega128a1", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, + &feature_des, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmega, }, }; @@ -3902,23 +3869,23 @@ pub const cpu_atxmega128a1u = Cpu{ .name = "atxmega128a1u", .llvm_name = "atxmega128a1u", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, + &feature_des, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, &feature_rmw, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmegau, }, }; @@ -3927,22 +3894,22 @@ pub const cpu_atxmega128a3 = Cpu{ .name = "atxmega128a3", .llvm_name = "atxmega128a3", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, + &feature_des, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmega, }, }; @@ -3951,23 +3918,23 @@ pub const cpu_atxmega128a3u = Cpu{ .name = "atxmega128a3u", .llvm_name = "atxmega128a3u", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, + &feature_des, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, &feature_rmw, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmegau, }, }; @@ -3976,23 +3943,23 @@ pub const cpu_atxmega128a4u = Cpu{ .name = "atxmega128a4u", .llvm_name = "atxmega128a4u", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, + &feature_des, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, &feature_rmw, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmegau, }, }; @@ -4001,23 +3968,23 @@ pub const cpu_atxmega128b1 = Cpu{ .name = "atxmega128b1", .llvm_name = "atxmega128b1", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, + &feature_des, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, &feature_rmw, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmegau, }, }; @@ -4026,23 +3993,23 @@ pub const cpu_atxmega128b3 = Cpu{ .name = "atxmega128b3", .llvm_name = "atxmega128b3", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, + &feature_des, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, &feature_rmw, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmegau, }, }; @@ -4051,23 +4018,23 @@ pub const cpu_atxmega128c3 = Cpu{ .name = "atxmega128c3", .llvm_name = "atxmega128c3", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, + &feature_des, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, &feature_rmw, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmegau, }, }; @@ -4076,22 +4043,22 @@ pub const cpu_atxmega128d3 = Cpu{ .name = "atxmega128d3", .llvm_name = "atxmega128d3", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, + &feature_des, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmega, }, }; @@ -4100,22 +4067,22 @@ pub const cpu_atxmega128d4 = Cpu{ .name = "atxmega128d4", .llvm_name = "atxmega128d4", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, + &feature_des, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmega, }, }; @@ -4124,22 +4091,22 @@ pub const cpu_atxmega16a4 = Cpu{ .name = "atxmega16a4", .llvm_name = "atxmega16a4", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, + &feature_des, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmega, }, }; @@ -4148,23 +4115,23 @@ pub const cpu_atxmega16a4u = Cpu{ .name = "atxmega16a4u", .llvm_name = "atxmega16a4u", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, + &feature_des, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, &feature_rmw, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmegau, }, }; @@ -4173,23 +4140,23 @@ pub const cpu_atxmega16c4 = Cpu{ .name = "atxmega16c4", .llvm_name = "atxmega16c4", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, + &feature_des, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, &feature_rmw, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmegau, }, }; @@ -4198,22 +4165,22 @@ pub const cpu_atxmega16d4 = Cpu{ .name = "atxmega16d4", .llvm_name = "atxmega16d4", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, + &feature_des, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmega, }, }; @@ -4222,22 +4189,22 @@ pub const cpu_atxmega16e5 = Cpu{ .name = "atxmega16e5", .llvm_name = "atxmega16e5", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, + &feature_des, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmega, }, }; @@ -4246,22 +4213,22 @@ pub const cpu_atxmega192a3 = Cpu{ .name = "atxmega192a3", .llvm_name = "atxmega192a3", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, + &feature_des, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmega, }, }; @@ -4270,23 +4237,23 @@ pub const cpu_atxmega192a3u = Cpu{ .name = "atxmega192a3u", .llvm_name = "atxmega192a3u", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, + &feature_des, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, &feature_rmw, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmegau, }, }; @@ -4295,23 +4262,23 @@ pub const cpu_atxmega192c3 = Cpu{ .name = "atxmega192c3", .llvm_name = "atxmega192c3", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, + &feature_des, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, &feature_rmw, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmegau, }, }; @@ -4320,22 +4287,22 @@ pub const cpu_atxmega192d3 = Cpu{ .name = "atxmega192d3", .llvm_name = "atxmega192d3", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, + &feature_des, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmega, }, }; @@ -4344,22 +4311,22 @@ pub const cpu_atxmega256a3 = Cpu{ .name = "atxmega256a3", .llvm_name = "atxmega256a3", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, + &feature_des, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmega, }, }; @@ -4368,22 +4335,22 @@ pub const cpu_atxmega256a3b = Cpu{ .name = "atxmega256a3b", .llvm_name = "atxmega256a3b", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, + &feature_des, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmega, }, }; @@ -4392,23 +4359,23 @@ pub const cpu_atxmega256a3bu = Cpu{ .name = "atxmega256a3bu", .llvm_name = "atxmega256a3bu", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, + &feature_des, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, &feature_rmw, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmegau, }, }; @@ -4417,23 +4384,23 @@ pub const cpu_atxmega256a3u = Cpu{ .name = "atxmega256a3u", .llvm_name = "atxmega256a3u", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, + &feature_des, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, &feature_rmw, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmegau, }, }; @@ -4442,23 +4409,23 @@ pub const cpu_atxmega256c3 = Cpu{ .name = "atxmega256c3", .llvm_name = "atxmega256c3", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, + &feature_des, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, &feature_rmw, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmegau, }, }; @@ -4467,22 +4434,22 @@ pub const cpu_atxmega256d3 = Cpu{ .name = "atxmega256d3", .llvm_name = "atxmega256d3", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, + &feature_des, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmega, }, }; @@ -4491,22 +4458,22 @@ pub const cpu_atxmega32a4 = Cpu{ .name = "atxmega32a4", .llvm_name = "atxmega32a4", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, + &feature_des, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmega, }, }; @@ -4515,23 +4482,23 @@ pub const cpu_atxmega32a4u = Cpu{ .name = "atxmega32a4u", .llvm_name = "atxmega32a4u", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, + &feature_des, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, &feature_rmw, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmegau, }, }; @@ -4540,23 +4507,23 @@ pub const cpu_atxmega32c4 = Cpu{ .name = "atxmega32c4", .llvm_name = "atxmega32c4", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, + &feature_des, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, &feature_rmw, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmegau, }, }; @@ -4565,22 +4532,22 @@ pub const cpu_atxmega32d4 = Cpu{ .name = "atxmega32d4", .llvm_name = "atxmega32d4", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, + &feature_des, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmega, }, }; @@ -4589,22 +4556,22 @@ pub const cpu_atxmega32e5 = Cpu{ .name = "atxmega32e5", .llvm_name = "atxmega32e5", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, + &feature_des, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmega, }, }; @@ -4613,22 +4580,22 @@ pub const cpu_atxmega32x1 = Cpu{ .name = "atxmega32x1", .llvm_name = "atxmega32x1", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, + &feature_des, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmega, }, }; @@ -4637,23 +4604,23 @@ pub const cpu_atxmega384c3 = Cpu{ .name = "atxmega384c3", .llvm_name = "atxmega384c3", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, + &feature_des, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, &feature_rmw, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmegau, }, }; @@ -4662,22 +4629,22 @@ pub const cpu_atxmega384d3 = Cpu{ .name = "atxmega384d3", .llvm_name = "atxmega384d3", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, + &feature_des, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmega, }, }; @@ -4686,22 +4653,22 @@ pub const cpu_atxmega64a1 = Cpu{ .name = "atxmega64a1", .llvm_name = "atxmega64a1", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, + &feature_des, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmega, }, }; @@ -4710,23 +4677,23 @@ pub const cpu_atxmega64a1u = Cpu{ .name = "atxmega64a1u", .llvm_name = "atxmega64a1u", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, + &feature_des, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, &feature_rmw, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmegau, }, }; @@ -4735,22 +4702,22 @@ pub const cpu_atxmega64a3 = Cpu{ .name = "atxmega64a3", .llvm_name = "atxmega64a3", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, + &feature_des, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmega, }, }; @@ -4759,23 +4726,23 @@ pub const cpu_atxmega64a3u = Cpu{ .name = "atxmega64a3u", .llvm_name = "atxmega64a3u", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, + &feature_des, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, &feature_rmw, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmegau, }, }; @@ -4784,23 +4751,23 @@ pub const cpu_atxmega64a4u = Cpu{ .name = "atxmega64a4u", .llvm_name = "atxmega64a4u", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, + &feature_des, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, &feature_rmw, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmegau, }, }; @@ -4809,23 +4776,23 @@ pub const cpu_atxmega64b1 = Cpu{ .name = "atxmega64b1", .llvm_name = "atxmega64b1", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, + &feature_des, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, &feature_rmw, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmegau, }, }; @@ -4834,23 +4801,23 @@ pub const cpu_atxmega64b3 = Cpu{ .name = "atxmega64b3", .llvm_name = "atxmega64b3", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, + &feature_des, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, &feature_rmw, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmegau, }, }; @@ -4859,23 +4826,23 @@ pub const cpu_atxmega64c3 = Cpu{ .name = "atxmega64c3", .llvm_name = "atxmega64c3", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, + &feature_des, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, &feature_rmw, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmegau, }, }; @@ -4884,22 +4851,22 @@ pub const cpu_atxmega64d3 = Cpu{ .name = "atxmega64d3", .llvm_name = "atxmega64d3", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, + &feature_des, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmega, }, }; @@ -4908,22 +4875,22 @@ pub const cpu_atxmega64d4 = Cpu{ .name = "atxmega64d4", .llvm_name = "atxmega64d4", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, + &feature_des, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmega, }, }; @@ -4932,22 +4899,22 @@ pub const cpu_atxmega8e5 = Cpu{ .name = "atxmega8e5", .llvm_name = "atxmega8e5", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, + &feature_des, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmega, }, }; @@ -4956,8 +4923,8 @@ pub const cpu_avr1 = Cpu{ .name = "avr1", .llvm_name = "avr1", .subfeatures = &[_]*const Feature { - &feature_avr0, &feature_lpm, + &feature_avr0, &feature_avr1, }, }; @@ -4968,9 +4935,9 @@ pub const cpu_avr2 = Cpu{ .subfeatures = &[_]*const Feature { &feature_ijmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, &feature_addsubiw, + &feature_lpm, + &feature_avr0, &feature_avr2, }, }; @@ -4979,15 +4946,15 @@ pub const cpu_avr25 = Cpu{ .name = "avr25", .llvm_name = "avr25", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr25, }, }; @@ -4999,9 +4966,9 @@ pub const cpu_avr3 = Cpu{ &feature_ijmpcall, &feature_jmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, &feature_addsubiw, + &feature_lpm, + &feature_avr0, &feature_avr3, }, }; @@ -5010,13 +4977,13 @@ pub const cpu_avr31 = Cpu{ .name = "avr31", .llvm_name = "avr31", .subfeatures = &[_]*const Feature { - &feature_jmpcall, &feature_ijmpcall, + &feature_jmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_elpm, &feature_addsubiw, + &feature_elpm, + &feature_lpm, + &feature_avr0, &feature_avr31, }, }; @@ -5025,16 +4992,16 @@ pub const cpu_avr35 = Cpu{ .name = "avr35", .llvm_name = "avr35", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_avr0, - &feature_lpm, - &feature_break, - &feature_spm, &feature_addsubiw, + &feature_break, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr35, }, }; @@ -5043,16 +5010,16 @@ pub const cpu_avr4 = Cpu{ .name = "avr4", .llvm_name = "avr4", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr4, }, }; @@ -5061,17 +5028,17 @@ pub const cpu_avr5 = Cpu{ .name = "avr5", .llvm_name = "avr5", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; @@ -5080,19 +5047,19 @@ pub const cpu_avr51 = Cpu{ .name = "avr51", .llvm_name = "avr51", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, &feature_ijmpcall, &feature_jmpcall, - &feature_movw, &feature_sram, + &feature_addsubiw, + &feature_elpm, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, + &feature_avr0, + &feature_movw, &feature_avr51, }, }; @@ -5101,19 +5068,19 @@ pub const cpu_avr6 = Cpu{ .name = "avr6", .llvm_name = "avr6", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, + &feature_elpm, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, + &feature_avr0, + &feature_movw, &feature_avr6, }, }; @@ -5122,10 +5089,10 @@ pub const cpu_avrtiny = Cpu{ .name = "avrtiny", .llvm_name = "avrtiny", .subfeatures = &[_]*const Feature { - &feature_tinyencoding, + &feature_avr0, &feature_sram, + &feature_tinyencoding, &feature_break, - &feature_avr0, &feature_avrtiny, }, }; @@ -5134,22 +5101,22 @@ pub const cpu_avrxmega1 = Cpu{ .name = "avrxmega1", .llvm_name = "avrxmega1", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, + &feature_des, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmega, }, }; @@ -5158,22 +5125,22 @@ pub const cpu_avrxmega2 = Cpu{ .name = "avrxmega2", .llvm_name = "avrxmega2", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, + &feature_des, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmega, }, }; @@ -5182,22 +5149,22 @@ pub const cpu_avrxmega3 = Cpu{ .name = "avrxmega3", .llvm_name = "avrxmega3", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, + &feature_des, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmega, }, }; @@ -5206,22 +5173,22 @@ pub const cpu_avrxmega4 = Cpu{ .name = "avrxmega4", .llvm_name = "avrxmega4", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, + &feature_des, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmega, }, }; @@ -5230,22 +5197,22 @@ pub const cpu_avrxmega5 = Cpu{ .name = "avrxmega5", .llvm_name = "avrxmega5", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, + &feature_des, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmega, }, }; @@ -5254,22 +5221,22 @@ pub const cpu_avrxmega6 = Cpu{ .name = "avrxmega6", .llvm_name = "avrxmega6", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, + &feature_des, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmega, }, }; @@ -5278,22 +5245,22 @@ pub const cpu_avrxmega7 = Cpu{ .name = "avrxmega7", .llvm_name = "avrxmega7", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, + &feature_des, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, - &feature_mul, - &feature_avr0, - &feature_spmx, - &feature_lpm, + &feature_addsubiw, + &feature_elpm, &feature_eijmpcall, + &feature_mul, &feature_break, - &feature_spm, + &feature_lpm, &feature_elpmx, - &feature_elpm, - &feature_addsubiw, - &feature_des, + &feature_avr0, + &feature_movw, + &feature_spmx, &feature_xmega, }, }; @@ -5302,17 +5269,17 @@ pub const cpu_m3000 = Cpu{ .name = "m3000", .llvm_name = "m3000", .subfeatures = &[_]*const Feature { + &feature_spm, &feature_lpmx, - &feature_jmpcall, &feature_ijmpcall, - &feature_movw, + &feature_jmpcall, &feature_sram, + &feature_addsubiw, &feature_mul, - &feature_avr0, - &feature_lpm, &feature_break, - &feature_spm, - &feature_addsubiw, + &feature_lpm, + &feature_avr0, + &feature_movw, &feature_avr5, }, }; diff --git a/lib/std/target/bpf.zig b/lib/std/target/bpf.zig index 8a504eaf9e..d36f9f2e1d 100644 --- a/lib/std/target/bpf.zig +++ b/lib/std/target/bpf.zig @@ -4,7 +4,6 @@ const Cpu = @import("std").target.Cpu; pub const feature_alu32 = Feature{ .name = "alu32", .description = "Enable ALU32 instructions", - .llvm_name = "alu32", .subfeatures = &[_]*const Feature { }, }; @@ -12,7 +11,6 @@ pub const feature_alu32 = Feature{ pub const feature_dummy = Feature{ .name = "dummy", .description = "unused feature", - .llvm_name = "dummy", .subfeatures = &[_]*const Feature { }, }; @@ -20,7 +18,6 @@ pub const feature_dummy = Feature{ pub const feature_dwarfris = Feature{ .name = "dwarfris", .description = "Disable MCAsmInfo DwarfUsesRelocationsAcrossSections", - .llvm_name = "dwarfris", .subfeatures = &[_]*const Feature { }, }; diff --git a/lib/std/target/hexagon.zig b/lib/std/target/hexagon.zig index 4ebc7edc2f..0219b88815 100644 --- a/lib/std/target/hexagon.zig +++ b/lib/std/target/hexagon.zig @@ -4,7 +4,6 @@ const Cpu = @import("std").target.Cpu; pub const feature_v5 = Feature{ .name = "v5", .description = "Enable Hexagon V5 architecture", - .llvm_name = "v5", .subfeatures = &[_]*const Feature { }, }; @@ -12,7 +11,6 @@ pub const feature_v5 = Feature{ pub const feature_v55 = Feature{ .name = "v55", .description = "Enable Hexagon V55 architecture", - .llvm_name = "v55", .subfeatures = &[_]*const Feature { }, }; @@ -20,7 +18,6 @@ pub const feature_v55 = Feature{ pub const feature_v60 = Feature{ .name = "v60", .description = "Enable Hexagon V60 architecture", - .llvm_name = "v60", .subfeatures = &[_]*const Feature { }, }; @@ -28,7 +25,6 @@ pub const feature_v60 = Feature{ pub const feature_v62 = Feature{ .name = "v62", .description = "Enable Hexagon V62 architecture", - .llvm_name = "v62", .subfeatures = &[_]*const Feature { }, }; @@ -36,7 +32,6 @@ pub const feature_v62 = Feature{ pub const feature_v65 = Feature{ .name = "v65", .description = "Enable Hexagon V65 architecture", - .llvm_name = "v65", .subfeatures = &[_]*const Feature { }, }; @@ -44,7 +39,6 @@ pub const feature_v65 = Feature{ pub const feature_v66 = Feature{ .name = "v66", .description = "Enable Hexagon V66 architecture", - .llvm_name = "v66", .subfeatures = &[_]*const Feature { }, }; @@ -52,7 +46,6 @@ pub const feature_v66 = Feature{ pub const feature_hvx = Feature{ .name = "hvx", .description = "Hexagon HVX instructions", - .llvm_name = "hvx", .subfeatures = &[_]*const Feature { }, }; @@ -60,7 +53,6 @@ pub const feature_hvx = Feature{ pub const feature_hvxLength64b = Feature{ .name = "hvx-length64b", .description = "Hexagon HVX 64B instructions", - .llvm_name = "hvx-length64b", .subfeatures = &[_]*const Feature { &feature_hvx, }, @@ -69,7 +61,6 @@ pub const feature_hvxLength64b = Feature{ pub const feature_hvxLength128b = Feature{ .name = "hvx-length128b", .description = "Hexagon HVX 128B instructions", - .llvm_name = "hvx-length128b", .subfeatures = &[_]*const Feature { &feature_hvx, }, @@ -78,7 +69,6 @@ pub const feature_hvxLength128b = Feature{ pub const feature_hvxv60 = Feature{ .name = "hvxv60", .description = "Hexagon HVX instructions", - .llvm_name = "hvxv60", .subfeatures = &[_]*const Feature { &feature_hvx, }, @@ -87,7 +77,6 @@ pub const feature_hvxv60 = Feature{ pub const feature_hvxv62 = Feature{ .name = "hvxv62", .description = "Hexagon HVX instructions", - .llvm_name = "hvxv62", .subfeatures = &[_]*const Feature { &feature_hvx, }, @@ -96,7 +85,6 @@ pub const feature_hvxv62 = Feature{ pub const feature_hvxv65 = Feature{ .name = "hvxv65", .description = "Hexagon HVX instructions", - .llvm_name = "hvxv65", .subfeatures = &[_]*const Feature { &feature_hvx, }, @@ -105,7 +93,6 @@ pub const feature_hvxv65 = Feature{ pub const feature_hvxv66 = Feature{ .name = "hvxv66", .description = "Hexagon HVX instructions", - .llvm_name = "hvxv66", .subfeatures = &[_]*const Feature { &feature_zreg, &feature_hvx, @@ -115,7 +102,6 @@ pub const feature_hvxv66 = Feature{ pub const feature_zreg = Feature{ .name = "zreg", .description = "Hexagon ZReg extension instructions", - .llvm_name = "zreg", .subfeatures = &[_]*const Feature { }, }; @@ -123,7 +109,6 @@ pub const feature_zreg = Feature{ pub const feature_duplex = Feature{ .name = "duplex", .description = "Enable generation of duplex instruction", - .llvm_name = "duplex", .subfeatures = &[_]*const Feature { }, }; @@ -131,7 +116,6 @@ pub const feature_duplex = Feature{ pub const feature_longCalls = Feature{ .name = "long-calls", .description = "Use constant-extended calls", - .llvm_name = "long-calls", .subfeatures = &[_]*const Feature { }, }; @@ -139,7 +123,6 @@ pub const feature_longCalls = Feature{ pub const feature_mem_noshuf = Feature{ .name = "mem_noshuf", .description = "Supports mem_noshuf feature", - .llvm_name = "mem_noshuf", .subfeatures = &[_]*const Feature { }, }; @@ -147,7 +130,6 @@ pub const feature_mem_noshuf = Feature{ pub const feature_memops = Feature{ .name = "memops", .description = "Use memop instructions", - .llvm_name = "memops", .subfeatures = &[_]*const Feature { }, }; @@ -155,7 +137,6 @@ pub const feature_memops = Feature{ pub const feature_nvj = Feature{ .name = "nvj", .description = "Support for new-value jumps", - .llvm_name = "nvj", .subfeatures = &[_]*const Feature { &feature_packets, }, @@ -164,7 +145,6 @@ pub const feature_nvj = Feature{ pub const feature_nvs = Feature{ .name = "nvs", .description = "Support for new-value stores", - .llvm_name = "nvs", .subfeatures = &[_]*const Feature { &feature_packets, }, @@ -173,7 +153,6 @@ pub const feature_nvs = Feature{ pub const feature_noreturnStackElim = Feature{ .name = "noreturn-stack-elim", .description = "Eliminate stack allocation in a noreturn function when possible", - .llvm_name = "noreturn-stack-elim", .subfeatures = &[_]*const Feature { }, }; @@ -181,7 +160,6 @@ pub const feature_noreturnStackElim = Feature{ pub const feature_packets = Feature{ .name = "packets", .description = "Support for instruction packets", - .llvm_name = "packets", .subfeatures = &[_]*const Feature { }, }; @@ -189,7 +167,6 @@ pub const feature_packets = Feature{ pub const feature_reservedR19 = Feature{ .name = "reserved-r19", .description = "Reserve register R19", - .llvm_name = "reserved-r19", .subfeatures = &[_]*const Feature { }, }; @@ -197,7 +174,6 @@ pub const feature_reservedR19 = Feature{ pub const feature_smallData = Feature{ .name = "small-data", .description = "Allow GP-relative addressing of global variables", - .llvm_name = "small-data", .subfeatures = &[_]*const Feature { }, }; diff --git a/lib/std/target/mips.zig b/lib/std/target/mips.zig index f2de051623..3d02746606 100644 --- a/lib/std/target/mips.zig +++ b/lib/std/target/mips.zig @@ -4,7 +4,6 @@ const Cpu = @import("std").target.Cpu; pub const feature_abs2008 = Feature{ .name = "abs2008", .description = "Disable IEEE 754-2008 abs.fmt mode", - .llvm_name = "abs2008", .subfeatures = &[_]*const Feature { }, }; @@ -12,7 +11,6 @@ pub const feature_abs2008 = Feature{ pub const feature_crc = Feature{ .name = "crc", .description = "Mips R6 CRC ASE", - .llvm_name = "crc", .subfeatures = &[_]*const Feature { }, }; @@ -20,23 +18,21 @@ pub const feature_crc = Feature{ pub const feature_cnmips = Feature{ .name = "cnmips", .description = "Octeon cnMIPS Support", - .llvm_name = "cnmips", .subfeatures = &[_]*const Feature { - &feature_mips4_32, &feature_mips3_32r2, - &feature_mips1, - &feature_gp64, - &feature_mips4_32r2, - &feature_mips5_32r2, &feature_mips3_32, + &feature_mips4_32r2, + &feature_mips1, &feature_fp64, + &feature_mips5_32r2, + &feature_gp64, + &feature_mips4_32, }, }; pub const feature_dsp = Feature{ .name = "dsp", .description = "Mips DSP ASE", - .llvm_name = "dsp", .subfeatures = &[_]*const Feature { }, }; @@ -44,7 +40,6 @@ pub const feature_dsp = Feature{ pub const feature_dspr2 = Feature{ .name = "dspr2", .description = "Mips DSP-R2 ASE", - .llvm_name = "dspr2", .subfeatures = &[_]*const Feature { &feature_dsp, }, @@ -53,7 +48,6 @@ pub const feature_dspr2 = Feature{ pub const feature_dspr3 = Feature{ .name = "dspr3", .description = "Mips DSP-R3 ASE", - .llvm_name = "dspr3", .subfeatures = &[_]*const Feature { &feature_dsp, }, @@ -62,7 +56,6 @@ pub const feature_dspr3 = Feature{ pub const feature_eva = Feature{ .name = "eva", .description = "Mips EVA ASE", - .llvm_name = "eva", .subfeatures = &[_]*const Feature { }, }; @@ -70,7 +63,6 @@ pub const feature_eva = Feature{ pub const feature_fp64 = Feature{ .name = "fp64", .description = "Support 64-bit FP registers", - .llvm_name = "fp64", .subfeatures = &[_]*const Feature { }, }; @@ -78,7 +70,6 @@ pub const feature_fp64 = Feature{ pub const feature_fpxx = Feature{ .name = "fpxx", .description = "Support for FPXX", - .llvm_name = "fpxx", .subfeatures = &[_]*const Feature { }, }; @@ -86,7 +77,6 @@ pub const feature_fpxx = Feature{ pub const feature_ginv = Feature{ .name = "ginv", .description = "Mips Global Invalidate ASE", - .llvm_name = "ginv", .subfeatures = &[_]*const Feature { }, }; @@ -94,7 +84,6 @@ pub const feature_ginv = Feature{ pub const feature_gp64 = Feature{ .name = "gp64", .description = "General Purpose Registers are 64-bit wide", - .llvm_name = "gp64", .subfeatures = &[_]*const Feature { }, }; @@ -102,7 +91,6 @@ pub const feature_gp64 = Feature{ pub const feature_longCalls = Feature{ .name = "long-calls", .description = "Disable use of the jal instruction", - .llvm_name = "long-calls", .subfeatures = &[_]*const Feature { }, }; @@ -110,7 +98,6 @@ pub const feature_longCalls = Feature{ pub const feature_msa = Feature{ .name = "msa", .description = "Mips MSA ASE", - .llvm_name = "msa", .subfeatures = &[_]*const Feature { }, }; @@ -118,7 +105,6 @@ pub const feature_msa = Feature{ pub const feature_mt = Feature{ .name = "mt", .description = "Mips MT ASE", - .llvm_name = "mt", .subfeatures = &[_]*const Feature { }, }; @@ -126,7 +112,6 @@ pub const feature_mt = Feature{ pub const feature_nomadd4 = Feature{ .name = "nomadd4", .description = "Disable 4-operand madd.fmt and related instructions", - .llvm_name = "nomadd4", .subfeatures = &[_]*const Feature { }, }; @@ -134,7 +119,6 @@ pub const feature_nomadd4 = Feature{ pub const feature_micromips = Feature{ .name = "micromips", .description = "microMips mode", - .llvm_name = "micromips", .subfeatures = &[_]*const Feature { }, }; @@ -142,7 +126,6 @@ pub const feature_micromips = Feature{ pub const feature_mips1 = Feature{ .name = "mips1", .description = "Mips I ISA Support [highly experimental]", - .llvm_name = "mips1", .subfeatures = &[_]*const Feature { }, }; @@ -150,7 +133,6 @@ pub const feature_mips1 = Feature{ pub const feature_mips2 = Feature{ .name = "mips2", .description = "Mips II ISA Support [highly experimental]", - .llvm_name = "mips2", .subfeatures = &[_]*const Feature { &feature_mips1, }, @@ -159,20 +141,18 @@ pub const feature_mips2 = Feature{ pub const feature_mips3 = Feature{ .name = "mips3", .description = "MIPS III ISA Support [highly experimental]", - .llvm_name = "mips3", .subfeatures = &[_]*const Feature { &feature_mips3_32r2, - &feature_mips1, - &feature_gp64, &feature_mips3_32, + &feature_mips1, &feature_fp64, + &feature_gp64, }, }; pub const feature_mips3_32 = Feature{ .name = "mips3_32", .description = "Subset of MIPS-III that is also in MIPS32 [highly experimental]", - .llvm_name = "mips3_32", .subfeatures = &[_]*const Feature { }, }; @@ -180,7 +160,6 @@ pub const feature_mips3_32 = Feature{ pub const feature_mips3_32r2 = Feature{ .name = "mips3_32r2", .description = "Subset of MIPS-III that is also in MIPS32r2 [highly experimental]", - .llvm_name = "mips3_32r2", .subfeatures = &[_]*const Feature { }, }; @@ -188,22 +167,20 @@ pub const feature_mips3_32r2 = Feature{ pub const feature_mips4 = Feature{ .name = "mips4", .description = "MIPS IV ISA Support", - .llvm_name = "mips4", .subfeatures = &[_]*const Feature { - &feature_mips4_32, &feature_mips3_32r2, - &feature_mips1, - &feature_gp64, - &feature_mips4_32r2, &feature_mips3_32, + &feature_mips4_32r2, + &feature_mips1, &feature_fp64, + &feature_gp64, + &feature_mips4_32, }, }; pub const feature_mips4_32 = Feature{ .name = "mips4_32", .description = "Subset of MIPS-IV that is also in MIPS32 [highly experimental]", - .llvm_name = "mips4_32", .subfeatures = &[_]*const Feature { }, }; @@ -211,7 +188,6 @@ pub const feature_mips4_32 = Feature{ pub const feature_mips4_32r2 = Feature{ .name = "mips4_32r2", .description = "Subset of MIPS-IV that is also in MIPS32r2 [highly experimental]", - .llvm_name = "mips4_32r2", .subfeatures = &[_]*const Feature { }, }; @@ -219,23 +195,21 @@ pub const feature_mips4_32r2 = Feature{ pub const feature_mips5 = Feature{ .name = "mips5", .description = "MIPS V ISA Support [highly experimental]", - .llvm_name = "mips5", .subfeatures = &[_]*const Feature { - &feature_mips4_32, &feature_mips3_32r2, - &feature_mips1, - &feature_gp64, - &feature_mips4_32r2, - &feature_mips5_32r2, &feature_mips3_32, + &feature_mips4_32r2, + &feature_mips1, &feature_fp64, + &feature_mips5_32r2, + &feature_gp64, + &feature_mips4_32, }, }; pub const feature_mips5_32r2 = Feature{ .name = "mips5_32r2", .description = "Subset of MIPS-V that is also in MIPS32r2 [highly experimental]", - .llvm_name = "mips5_32r2", .subfeatures = &[_]*const Feature { }, }; @@ -243,7 +217,6 @@ pub const feature_mips5_32r2 = Feature{ pub const feature_mips16 = Feature{ .name = "mips16", .description = "Mips16 mode", - .llvm_name = "mips16", .subfeatures = &[_]*const Feature { }, }; @@ -251,159 +224,148 @@ pub const feature_mips16 = Feature{ pub const feature_mips32 = Feature{ .name = "mips32", .description = "Mips32 ISA Support", - .llvm_name = "mips32", .subfeatures = &[_]*const Feature { + &feature_mips1, &feature_mips4_32, &feature_mips3_32, - &feature_mips1, }, }; pub const feature_mips32r2 = Feature{ .name = "mips32r2", .description = "Mips32r2 ISA Support", - .llvm_name = "mips32r2", .subfeatures = &[_]*const Feature { - &feature_mips4_32, &feature_mips3_32r2, - &feature_mips1, + &feature_mips3_32, &feature_mips4_32r2, + &feature_mips1, &feature_mips5_32r2, - &feature_mips3_32, + &feature_mips4_32, }, }; pub const feature_mips32r3 = Feature{ .name = "mips32r3", .description = "Mips32r3 ISA Support", - .llvm_name = "mips32r3", .subfeatures = &[_]*const Feature { - &feature_mips4_32, &feature_mips3_32r2, - &feature_mips1, + &feature_mips3_32, &feature_mips4_32r2, + &feature_mips1, &feature_mips5_32r2, - &feature_mips3_32, + &feature_mips4_32, }, }; pub const feature_mips32r5 = Feature{ .name = "mips32r5", .description = "Mips32r5 ISA Support", - .llvm_name = "mips32r5", .subfeatures = &[_]*const Feature { - &feature_mips4_32, &feature_mips3_32r2, - &feature_mips1, + &feature_mips3_32, &feature_mips4_32r2, + &feature_mips1, &feature_mips5_32r2, - &feature_mips3_32, + &feature_mips4_32, }, }; pub const feature_mips32r6 = Feature{ .name = "mips32r6", .description = "Mips32r6 ISA Support [experimental]", - .llvm_name = "mips32r6", .subfeatures = &[_]*const Feature { - &feature_mips4_32, - &feature_nan2008, &feature_mips3_32r2, + &feature_mips3_32, + &feature_nan2008, + &feature_mips4_32r2, &feature_mips1, &feature_abs2008, - &feature_mips4_32r2, - &feature_mips5_32r2, - &feature_mips3_32, &feature_fp64, + &feature_mips5_32r2, + &feature_mips4_32, }, }; pub const feature_mips64 = Feature{ .name = "mips64", .description = "Mips64 ISA Support", - .llvm_name = "mips64", .subfeatures = &[_]*const Feature { - &feature_mips4_32, &feature_mips3_32r2, - &feature_mips1, - &feature_gp64, - &feature_mips4_32r2, - &feature_mips5_32r2, &feature_mips3_32, + &feature_mips4_32r2, + &feature_mips1, &feature_fp64, + &feature_mips5_32r2, + &feature_gp64, + &feature_mips4_32, }, }; pub const feature_mips64r2 = Feature{ .name = "mips64r2", .description = "Mips64r2 ISA Support", - .llvm_name = "mips64r2", .subfeatures = &[_]*const Feature { - &feature_mips4_32, &feature_mips3_32r2, - &feature_mips1, - &feature_gp64, - &feature_mips4_32r2, - &feature_mips5_32r2, &feature_mips3_32, + &feature_mips4_32r2, + &feature_mips1, &feature_fp64, + &feature_mips5_32r2, + &feature_gp64, + &feature_mips4_32, }, }; pub const feature_mips64r3 = Feature{ .name = "mips64r3", .description = "Mips64r3 ISA Support", - .llvm_name = "mips64r3", .subfeatures = &[_]*const Feature { - &feature_mips4_32, &feature_mips3_32r2, - &feature_mips1, - &feature_gp64, - &feature_mips4_32r2, - &feature_mips5_32r2, &feature_mips3_32, + &feature_mips4_32r2, + &feature_mips1, &feature_fp64, + &feature_mips5_32r2, + &feature_gp64, + &feature_mips4_32, }, }; pub const feature_mips64r5 = Feature{ .name = "mips64r5", .description = "Mips64r5 ISA Support", - .llvm_name = "mips64r5", .subfeatures = &[_]*const Feature { - &feature_mips4_32, &feature_mips3_32r2, - &feature_mips1, - &feature_gp64, - &feature_mips4_32r2, - &feature_mips5_32r2, &feature_mips3_32, + &feature_mips4_32r2, + &feature_mips1, &feature_fp64, + &feature_mips5_32r2, + &feature_gp64, + &feature_mips4_32, }, }; pub const feature_mips64r6 = Feature{ .name = "mips64r6", .description = "Mips64r6 ISA Support [experimental]", - .llvm_name = "mips64r6", .subfeatures = &[_]*const Feature { - &feature_mips4_32, - &feature_nan2008, &feature_mips3_32r2, + &feature_mips3_32, + &feature_nan2008, + &feature_mips4_32r2, &feature_mips1, &feature_abs2008, - &feature_gp64, - &feature_mips4_32r2, - &feature_mips5_32r2, - &feature_mips3_32, &feature_fp64, + &feature_mips5_32r2, + &feature_gp64, + &feature_mips4_32, }, }; pub const feature_nan2008 = Feature{ .name = "nan2008", .description = "IEEE 754-2008 NaN encoding", - .llvm_name = "nan2008", .subfeatures = &[_]*const Feature { }, }; @@ -411,7 +373,6 @@ pub const feature_nan2008 = Feature{ pub const feature_noabicalls = Feature{ .name = "noabicalls", .description = "Disable SVR4-style position-independent code", - .llvm_name = "noabicalls", .subfeatures = &[_]*const Feature { }, }; @@ -419,7 +380,6 @@ pub const feature_noabicalls = Feature{ pub const feature_nooddspreg = Feature{ .name = "nooddspreg", .description = "Disable odd numbered single-precision registers", - .llvm_name = "nooddspreg", .subfeatures = &[_]*const Feature { }, }; @@ -427,7 +387,6 @@ pub const feature_nooddspreg = Feature{ pub const feature_ptr64 = Feature{ .name = "ptr64", .description = "Pointers are 64-bit wide", - .llvm_name = "ptr64", .subfeatures = &[_]*const Feature { }, }; @@ -435,7 +394,6 @@ pub const feature_ptr64 = Feature{ pub const feature_singleFloat = Feature{ .name = "single-float", .description = "Only supports single precision float", - .llvm_name = "single-float", .subfeatures = &[_]*const Feature { }, }; @@ -443,7 +401,6 @@ pub const feature_singleFloat = Feature{ pub const feature_softFloat = Feature{ .name = "soft-float", .description = "Does not support floating point instructions", - .llvm_name = "soft-float", .subfeatures = &[_]*const Feature { }, }; @@ -451,7 +408,6 @@ pub const feature_softFloat = Feature{ pub const feature_sym32 = Feature{ .name = "sym32", .description = "Symbols are 32 bit on Mips64", - .llvm_name = "sym32", .subfeatures = &[_]*const Feature { }, }; @@ -459,7 +415,6 @@ pub const feature_sym32 = Feature{ pub const feature_useIndirectJumpHazard = Feature{ .name = "use-indirect-jump-hazard", .description = "Use indirect jump guards to prevent certain speculation based attacks", - .llvm_name = "use-indirect-jump-hazard", .subfeatures = &[_]*const Feature { }, }; @@ -467,7 +422,6 @@ pub const feature_useIndirectJumpHazard = Feature{ pub const feature_useTccInDiv = Feature{ .name = "use-tcc-in-div", .description = "Force the assembler to use trapping", - .llvm_name = "use-tcc-in-div", .subfeatures = &[_]*const Feature { }, }; @@ -475,7 +429,6 @@ pub const feature_useTccInDiv = Feature{ pub const feature_vfpu = Feature{ .name = "vfpu", .description = "Enable vector FPU instructions", - .llvm_name = "vfpu", .subfeatures = &[_]*const Feature { }, }; @@ -483,7 +436,6 @@ pub const feature_vfpu = Feature{ pub const feature_virt = Feature{ .name = "virt", .description = "Mips Virtualization ASE", - .llvm_name = "virt", .subfeatures = &[_]*const Feature { }, }; @@ -491,7 +443,6 @@ pub const feature_virt = Feature{ pub const feature_xgot = Feature{ .name = "xgot", .description = "Assume 32-bit GOT", - .llvm_name = "xgot", .subfeatures = &[_]*const Feature { }, }; @@ -499,14 +450,13 @@ pub const feature_xgot = Feature{ pub const feature_p5600 = Feature{ .name = "p5600", .description = "The P5600 Processor", - .llvm_name = "p5600", .subfeatures = &[_]*const Feature { - &feature_mips4_32, &feature_mips3_32r2, - &feature_mips1, + &feature_mips3_32, &feature_mips4_32r2, + &feature_mips1, &feature_mips5_32r2, - &feature_mips3_32, + &feature_mips4_32, }, }; @@ -585,10 +535,10 @@ pub const cpu_mips3 = Cpu{ .llvm_name = "mips3", .subfeatures = &[_]*const Feature { &feature_mips3_32r2, - &feature_mips1, - &feature_gp64, &feature_mips3_32, + &feature_mips1, &feature_fp64, + &feature_gp64, &feature_mips3, }, }; @@ -597,9 +547,9 @@ pub const cpu_mips32 = Cpu{ .name = "mips32", .llvm_name = "mips32", .subfeatures = &[_]*const Feature { + &feature_mips1, &feature_mips4_32, &feature_mips3_32, - &feature_mips1, &feature_mips32, }, }; @@ -608,12 +558,12 @@ pub const cpu_mips32r2 = Cpu{ .name = "mips32r2", .llvm_name = "mips32r2", .subfeatures = &[_]*const Feature { - &feature_mips4_32, &feature_mips3_32r2, - &feature_mips1, + &feature_mips3_32, &feature_mips4_32r2, + &feature_mips1, &feature_mips5_32r2, - &feature_mips3_32, + &feature_mips4_32, &feature_mips32r2, }, }; @@ -622,12 +572,12 @@ pub const cpu_mips32r3 = Cpu{ .name = "mips32r3", .llvm_name = "mips32r3", .subfeatures = &[_]*const Feature { - &feature_mips4_32, &feature_mips3_32r2, - &feature_mips1, + &feature_mips3_32, &feature_mips4_32r2, + &feature_mips1, &feature_mips5_32r2, - &feature_mips3_32, + &feature_mips4_32, &feature_mips32r3, }, }; @@ -636,12 +586,12 @@ pub const cpu_mips32r5 = Cpu{ .name = "mips32r5", .llvm_name = "mips32r5", .subfeatures = &[_]*const Feature { - &feature_mips4_32, &feature_mips3_32r2, - &feature_mips1, + &feature_mips3_32, &feature_mips4_32r2, + &feature_mips1, &feature_mips5_32r2, - &feature_mips3_32, + &feature_mips4_32, &feature_mips32r5, }, }; @@ -650,15 +600,15 @@ pub const cpu_mips32r6 = Cpu{ .name = "mips32r6", .llvm_name = "mips32r6", .subfeatures = &[_]*const Feature { - &feature_mips4_32, - &feature_nan2008, &feature_mips3_32r2, + &feature_mips3_32, + &feature_nan2008, + &feature_mips4_32r2, &feature_mips1, &feature_abs2008, - &feature_mips4_32r2, - &feature_mips5_32r2, - &feature_mips3_32, &feature_fp64, + &feature_mips5_32r2, + &feature_mips4_32, &feature_mips32r6, }, }; @@ -667,13 +617,13 @@ pub const cpu_mips4 = Cpu{ .name = "mips4", .llvm_name = "mips4", .subfeatures = &[_]*const Feature { - &feature_mips4_32, &feature_mips3_32r2, - &feature_mips1, - &feature_gp64, - &feature_mips4_32r2, &feature_mips3_32, + &feature_mips4_32r2, + &feature_mips1, &feature_fp64, + &feature_gp64, + &feature_mips4_32, &feature_mips4, }, }; @@ -682,14 +632,14 @@ pub const cpu_mips5 = Cpu{ .name = "mips5", .llvm_name = "mips5", .subfeatures = &[_]*const Feature { - &feature_mips4_32, &feature_mips3_32r2, - &feature_mips1, - &feature_gp64, - &feature_mips4_32r2, - &feature_mips5_32r2, &feature_mips3_32, + &feature_mips4_32r2, + &feature_mips1, &feature_fp64, + &feature_mips5_32r2, + &feature_gp64, + &feature_mips4_32, &feature_mips5, }, }; @@ -698,14 +648,14 @@ pub const cpu_mips64 = Cpu{ .name = "mips64", .llvm_name = "mips64", .subfeatures = &[_]*const Feature { - &feature_mips4_32, &feature_mips3_32r2, - &feature_mips1, - &feature_gp64, - &feature_mips4_32r2, - &feature_mips5_32r2, &feature_mips3_32, + &feature_mips4_32r2, + &feature_mips1, &feature_fp64, + &feature_mips5_32r2, + &feature_gp64, + &feature_mips4_32, &feature_mips64, }, }; @@ -714,14 +664,14 @@ pub const cpu_mips64r2 = Cpu{ .name = "mips64r2", .llvm_name = "mips64r2", .subfeatures = &[_]*const Feature { - &feature_mips4_32, &feature_mips3_32r2, - &feature_mips1, - &feature_gp64, - &feature_mips4_32r2, - &feature_mips5_32r2, &feature_mips3_32, + &feature_mips4_32r2, + &feature_mips1, &feature_fp64, + &feature_mips5_32r2, + &feature_gp64, + &feature_mips4_32, &feature_mips64r2, }, }; @@ -730,14 +680,14 @@ pub const cpu_mips64r3 = Cpu{ .name = "mips64r3", .llvm_name = "mips64r3", .subfeatures = &[_]*const Feature { - &feature_mips4_32, &feature_mips3_32r2, - &feature_mips1, - &feature_gp64, - &feature_mips4_32r2, - &feature_mips5_32r2, &feature_mips3_32, + &feature_mips4_32r2, + &feature_mips1, &feature_fp64, + &feature_mips5_32r2, + &feature_gp64, + &feature_mips4_32, &feature_mips64r3, }, }; @@ -746,14 +696,14 @@ pub const cpu_mips64r5 = Cpu{ .name = "mips64r5", .llvm_name = "mips64r5", .subfeatures = &[_]*const Feature { - &feature_mips4_32, &feature_mips3_32r2, - &feature_mips1, - &feature_gp64, - &feature_mips4_32r2, - &feature_mips5_32r2, &feature_mips3_32, + &feature_mips4_32r2, + &feature_mips1, &feature_fp64, + &feature_mips5_32r2, + &feature_gp64, + &feature_mips4_32, &feature_mips64r5, }, }; @@ -762,16 +712,16 @@ pub const cpu_mips64r6 = Cpu{ .name = "mips64r6", .llvm_name = "mips64r6", .subfeatures = &[_]*const Feature { - &feature_mips4_32, - &feature_nan2008, &feature_mips3_32r2, + &feature_mips3_32, + &feature_nan2008, + &feature_mips4_32r2, &feature_mips1, &feature_abs2008, - &feature_gp64, - &feature_mips4_32r2, - &feature_mips5_32r2, - &feature_mips3_32, &feature_fp64, + &feature_mips5_32r2, + &feature_gp64, + &feature_mips4_32, &feature_mips64r6, }, }; @@ -780,14 +730,14 @@ pub const cpu_octeon = Cpu{ .name = "octeon", .llvm_name = "octeon", .subfeatures = &[_]*const Feature { - &feature_mips4_32, &feature_mips3_32r2, - &feature_mips1, - &feature_gp64, - &feature_mips4_32r2, - &feature_mips5_32r2, &feature_mips3_32, + &feature_mips4_32r2, + &feature_mips1, &feature_fp64, + &feature_mips5_32r2, + &feature_gp64, + &feature_mips4_32, &feature_cnmips, &feature_mips64r2, }, @@ -797,12 +747,12 @@ pub const cpu_p5600 = Cpu{ .name = "p5600", .llvm_name = "p5600", .subfeatures = &[_]*const Feature { - &feature_mips4_32, &feature_mips3_32r2, - &feature_mips1, + &feature_mips3_32, &feature_mips4_32r2, + &feature_mips1, &feature_mips5_32r2, - &feature_mips3_32, + &feature_mips4_32, &feature_p5600, }, }; diff --git a/lib/std/target/msp430.zig b/lib/std/target/msp430.zig index 8a773328b2..433537824d 100644 --- a/lib/std/target/msp430.zig +++ b/lib/std/target/msp430.zig @@ -4,7 +4,6 @@ const Cpu = @import("std").target.Cpu; pub const feature_hwmult16 = Feature{ .name = "hwmult16", .description = "Enable 16-bit hardware multiplier", - .llvm_name = "hwmult16", .subfeatures = &[_]*const Feature { }, }; @@ -12,7 +11,6 @@ pub const feature_hwmult16 = Feature{ pub const feature_hwmult32 = Feature{ .name = "hwmult32", .description = "Enable 32-bit hardware multiplier", - .llvm_name = "hwmult32", .subfeatures = &[_]*const Feature { }, }; @@ -20,7 +18,6 @@ pub const feature_hwmult32 = Feature{ pub const feature_hwmultf5 = Feature{ .name = "hwmultf5", .description = "Enable F5 series hardware multiplier", - .llvm_name = "hwmultf5", .subfeatures = &[_]*const Feature { }, }; @@ -28,7 +25,6 @@ pub const feature_hwmultf5 = Feature{ pub const feature_ext = Feature{ .name = "ext", .description = "Enable MSP430-X extensions", - .llvm_name = "ext", .subfeatures = &[_]*const Feature { }, }; diff --git a/lib/std/target/nvptx.zig b/lib/std/target/nvptx.zig index e978f64331..5d5e276587 100644 --- a/lib/std/target/nvptx.zig +++ b/lib/std/target/nvptx.zig @@ -4,7 +4,6 @@ const Cpu = @import("std").target.Cpu; pub const feature_ptx32 = Feature{ .name = "ptx32", .description = "Use PTX version 3.2", - .llvm_name = "ptx32", .subfeatures = &[_]*const Feature { }, }; @@ -12,7 +11,6 @@ pub const feature_ptx32 = Feature{ pub const feature_ptx40 = Feature{ .name = "ptx40", .description = "Use PTX version 4.0", - .llvm_name = "ptx40", .subfeatures = &[_]*const Feature { }, }; @@ -20,7 +18,6 @@ pub const feature_ptx40 = Feature{ pub const feature_ptx41 = Feature{ .name = "ptx41", .description = "Use PTX version 4.1", - .llvm_name = "ptx41", .subfeatures = &[_]*const Feature { }, }; @@ -28,7 +25,6 @@ pub const feature_ptx41 = Feature{ pub const feature_ptx42 = Feature{ .name = "ptx42", .description = "Use PTX version 4.2", - .llvm_name = "ptx42", .subfeatures = &[_]*const Feature { }, }; @@ -36,7 +32,6 @@ pub const feature_ptx42 = Feature{ pub const feature_ptx43 = Feature{ .name = "ptx43", .description = "Use PTX version 4.3", - .llvm_name = "ptx43", .subfeatures = &[_]*const Feature { }, }; @@ -44,7 +39,6 @@ pub const feature_ptx43 = Feature{ pub const feature_ptx50 = Feature{ .name = "ptx50", .description = "Use PTX version 5.0", - .llvm_name = "ptx50", .subfeatures = &[_]*const Feature { }, }; @@ -52,7 +46,6 @@ pub const feature_ptx50 = Feature{ pub const feature_ptx60 = Feature{ .name = "ptx60", .description = "Use PTX version 6.0", - .llvm_name = "ptx60", .subfeatures = &[_]*const Feature { }, }; @@ -60,7 +53,6 @@ pub const feature_ptx60 = Feature{ pub const feature_ptx61 = Feature{ .name = "ptx61", .description = "Use PTX version 6.1", - .llvm_name = "ptx61", .subfeatures = &[_]*const Feature { }, }; @@ -68,7 +60,6 @@ pub const feature_ptx61 = Feature{ pub const feature_ptx63 = Feature{ .name = "ptx63", .description = "Use PTX version 6.3", - .llvm_name = "ptx63", .subfeatures = &[_]*const Feature { }, }; @@ -76,7 +67,6 @@ pub const feature_ptx63 = Feature{ pub const feature_ptx64 = Feature{ .name = "ptx64", .description = "Use PTX version 6.4", - .llvm_name = "ptx64", .subfeatures = &[_]*const Feature { }, }; @@ -84,7 +74,6 @@ pub const feature_ptx64 = Feature{ pub const feature_sm_20 = Feature{ .name = "sm_20", .description = "Target SM 2.0", - .llvm_name = "sm_20", .subfeatures = &[_]*const Feature { }, }; @@ -92,7 +81,6 @@ pub const feature_sm_20 = Feature{ pub const feature_sm_21 = Feature{ .name = "sm_21", .description = "Target SM 2.1", - .llvm_name = "sm_21", .subfeatures = &[_]*const Feature { }, }; @@ -100,7 +88,6 @@ pub const feature_sm_21 = Feature{ pub const feature_sm_30 = Feature{ .name = "sm_30", .description = "Target SM 3.0", - .llvm_name = "sm_30", .subfeatures = &[_]*const Feature { }, }; @@ -108,7 +95,6 @@ pub const feature_sm_30 = Feature{ pub const feature_sm_32 = Feature{ .name = "sm_32", .description = "Target SM 3.2", - .llvm_name = "sm_32", .subfeatures = &[_]*const Feature { }, }; @@ -116,7 +102,6 @@ pub const feature_sm_32 = Feature{ pub const feature_sm_35 = Feature{ .name = "sm_35", .description = "Target SM 3.5", - .llvm_name = "sm_35", .subfeatures = &[_]*const Feature { }, }; @@ -124,7 +109,6 @@ pub const feature_sm_35 = Feature{ pub const feature_sm_37 = Feature{ .name = "sm_37", .description = "Target SM 3.7", - .llvm_name = "sm_37", .subfeatures = &[_]*const Feature { }, }; @@ -132,7 +116,6 @@ pub const feature_sm_37 = Feature{ pub const feature_sm_50 = Feature{ .name = "sm_50", .description = "Target SM 5.0", - .llvm_name = "sm_50", .subfeatures = &[_]*const Feature { }, }; @@ -140,7 +123,6 @@ pub const feature_sm_50 = Feature{ pub const feature_sm_52 = Feature{ .name = "sm_52", .description = "Target SM 5.2", - .llvm_name = "sm_52", .subfeatures = &[_]*const Feature { }, }; @@ -148,7 +130,6 @@ pub const feature_sm_52 = Feature{ pub const feature_sm_53 = Feature{ .name = "sm_53", .description = "Target SM 5.3", - .llvm_name = "sm_53", .subfeatures = &[_]*const Feature { }, }; @@ -156,7 +137,6 @@ pub const feature_sm_53 = Feature{ pub const feature_sm_60 = Feature{ .name = "sm_60", .description = "Target SM 6.0", - .llvm_name = "sm_60", .subfeatures = &[_]*const Feature { }, }; @@ -164,7 +144,6 @@ pub const feature_sm_60 = Feature{ pub const feature_sm_61 = Feature{ .name = "sm_61", .description = "Target SM 6.1", - .llvm_name = "sm_61", .subfeatures = &[_]*const Feature { }, }; @@ -172,7 +151,6 @@ pub const feature_sm_61 = Feature{ pub const feature_sm_62 = Feature{ .name = "sm_62", .description = "Target SM 6.2", - .llvm_name = "sm_62", .subfeatures = &[_]*const Feature { }, }; @@ -180,7 +158,6 @@ pub const feature_sm_62 = Feature{ pub const feature_sm_70 = Feature{ .name = "sm_70", .description = "Target SM 7.0", - .llvm_name = "sm_70", .subfeatures = &[_]*const Feature { }, }; @@ -188,7 +165,6 @@ pub const feature_sm_70 = Feature{ pub const feature_sm_72 = Feature{ .name = "sm_72", .description = "Target SM 7.2", - .llvm_name = "sm_72", .subfeatures = &[_]*const Feature { }, }; @@ -196,7 +172,6 @@ pub const feature_sm_72 = Feature{ pub const feature_sm_75 = Feature{ .name = "sm_75", .description = "Target SM 7.5", - .llvm_name = "sm_75", .subfeatures = &[_]*const Feature { }, }; diff --git a/lib/std/target/powerpc.zig b/lib/std/target/powerpc.zig index 49f92cdc1a..212a604a4a 100644 --- a/lib/std/target/powerpc.zig +++ b/lib/std/target/powerpc.zig @@ -4,7 +4,6 @@ const Cpu = @import("std").target.Cpu; pub const feature_bit64 = Feature{ .name = "64bit", .description = "Enable 64-bit instructions", - .llvm_name = "64bit", .subfeatures = &[_]*const Feature { }, }; @@ -12,7 +11,6 @@ pub const feature_bit64 = Feature{ pub const feature_bitregs64 = Feature{ .name = "64bitregs", .description = "Enable 64-bit registers usage for ppc32 [beta]", - .llvm_name = "64bitregs", .subfeatures = &[_]*const Feature { }, }; @@ -20,7 +18,6 @@ pub const feature_bitregs64 = Feature{ pub const feature_altivec = Feature{ .name = "altivec", .description = "Enable Altivec instructions", - .llvm_name = "altivec", .subfeatures = &[_]*const Feature { &feature_hardFloat, }, @@ -29,7 +26,6 @@ pub const feature_altivec = Feature{ pub const feature_bpermd = Feature{ .name = "bpermd", .description = "Enable the bpermd instruction", - .llvm_name = "bpermd", .subfeatures = &[_]*const Feature { }, }; @@ -37,7 +33,6 @@ pub const feature_bpermd = Feature{ pub const feature_booke = Feature{ .name = "booke", .description = "Enable Book E instructions", - .llvm_name = "booke", .subfeatures = &[_]*const Feature { &feature_icbt, }, @@ -46,7 +41,6 @@ pub const feature_booke = Feature{ pub const feature_cmpb = Feature{ .name = "cmpb", .description = "Enable the cmpb instruction", - .llvm_name = "cmpb", .subfeatures = &[_]*const Feature { }, }; @@ -54,7 +48,6 @@ pub const feature_cmpb = Feature{ pub const feature_crbits = Feature{ .name = "crbits", .description = "Use condition-register bits individually", - .llvm_name = "crbits", .subfeatures = &[_]*const Feature { }, }; @@ -62,7 +55,6 @@ pub const feature_crbits = Feature{ pub const feature_directMove = Feature{ .name = "direct-move", .description = "Enable Power8 direct move instructions", - .llvm_name = "direct-move", .subfeatures = &[_]*const Feature { &feature_hardFloat, }, @@ -71,7 +63,6 @@ pub const feature_directMove = Feature{ pub const feature_e500 = Feature{ .name = "e500", .description = "Enable E500/E500mc instructions", - .llvm_name = "e500", .subfeatures = &[_]*const Feature { }, }; @@ -79,7 +70,6 @@ pub const feature_e500 = Feature{ pub const feature_extdiv = Feature{ .name = "extdiv", .description = "Enable extended divide instructions", - .llvm_name = "extdiv", .subfeatures = &[_]*const Feature { }, }; @@ -87,7 +77,6 @@ pub const feature_extdiv = Feature{ pub const feature_fcpsgn = Feature{ .name = "fcpsgn", .description = "Enable the fcpsgn instruction", - .llvm_name = "fcpsgn", .subfeatures = &[_]*const Feature { &feature_hardFloat, }, @@ -96,7 +85,6 @@ pub const feature_fcpsgn = Feature{ pub const feature_fpcvt = Feature{ .name = "fpcvt", .description = "Enable fc[ft]* (unsigned and single-precision) and lfiwzx instructions", - .llvm_name = "fpcvt", .subfeatures = &[_]*const Feature { &feature_hardFloat, }, @@ -105,7 +93,6 @@ pub const feature_fpcvt = Feature{ pub const feature_fprnd = Feature{ .name = "fprnd", .description = "Enable the fri[mnpz] instructions", - .llvm_name = "fprnd", .subfeatures = &[_]*const Feature { &feature_hardFloat, }, @@ -114,7 +101,6 @@ pub const feature_fprnd = Feature{ pub const feature_fpu = Feature{ .name = "fpu", .description = "Enable classic FPU instructions", - .llvm_name = "fpu", .subfeatures = &[_]*const Feature { &feature_hardFloat, }, @@ -123,7 +109,6 @@ pub const feature_fpu = Feature{ pub const feature_fre = Feature{ .name = "fre", .description = "Enable the fre instruction", - .llvm_name = "fre", .subfeatures = &[_]*const Feature { &feature_hardFloat, }, @@ -132,7 +117,6 @@ pub const feature_fre = Feature{ pub const feature_fres = Feature{ .name = "fres", .description = "Enable the fres instruction", - .llvm_name = "fres", .subfeatures = &[_]*const Feature { &feature_hardFloat, }, @@ -141,7 +125,6 @@ pub const feature_fres = Feature{ pub const feature_frsqrte = Feature{ .name = "frsqrte", .description = "Enable the frsqrte instruction", - .llvm_name = "frsqrte", .subfeatures = &[_]*const Feature { &feature_hardFloat, }, @@ -150,7 +133,6 @@ pub const feature_frsqrte = Feature{ pub const feature_frsqrtes = Feature{ .name = "frsqrtes", .description = "Enable the frsqrtes instruction", - .llvm_name = "frsqrtes", .subfeatures = &[_]*const Feature { &feature_hardFloat, }, @@ -159,7 +141,6 @@ pub const feature_frsqrtes = Feature{ pub const feature_fsqrt = Feature{ .name = "fsqrt", .description = "Enable the fsqrt instruction", - .llvm_name = "fsqrt", .subfeatures = &[_]*const Feature { &feature_hardFloat, }, @@ -168,7 +149,6 @@ pub const feature_fsqrt = Feature{ pub const feature_float128 = Feature{ .name = "float128", .description = "Enable the __float128 data type for IEEE-754R Binary128.", - .llvm_name = "float128", .subfeatures = &[_]*const Feature { &feature_hardFloat, }, @@ -177,7 +157,6 @@ pub const feature_float128 = Feature{ pub const feature_htm = Feature{ .name = "htm", .description = "Enable Hardware Transactional Memory instructions", - .llvm_name = "htm", .subfeatures = &[_]*const Feature { }, }; @@ -185,7 +164,6 @@ pub const feature_htm = Feature{ pub const feature_hardFloat = Feature{ .name = "hard-float", .description = "Enable floating-point instructions", - .llvm_name = "hard-float", .subfeatures = &[_]*const Feature { }, }; @@ -193,7 +171,6 @@ pub const feature_hardFloat = Feature{ pub const feature_icbt = Feature{ .name = "icbt", .description = "Enable icbt instruction", - .llvm_name = "icbt", .subfeatures = &[_]*const Feature { }, }; @@ -201,7 +178,6 @@ pub const feature_icbt = Feature{ pub const feature_isaV30Instructions = Feature{ .name = "isa-v30-instructions", .description = "Enable instructions added in ISA 3.0.", - .llvm_name = "isa-v30-instructions", .subfeatures = &[_]*const Feature { }, }; @@ -209,7 +185,6 @@ pub const feature_isaV30Instructions = Feature{ pub const feature_isel = Feature{ .name = "isel", .description = "Enable the isel instruction", - .llvm_name = "isel", .subfeatures = &[_]*const Feature { }, }; @@ -217,7 +192,6 @@ pub const feature_isel = Feature{ pub const feature_invariantFunctionDescriptors = Feature{ .name = "invariant-function-descriptors", .description = "Assume function descriptors are invariant", - .llvm_name = "invariant-function-descriptors", .subfeatures = &[_]*const Feature { }, }; @@ -225,7 +199,6 @@ pub const feature_invariantFunctionDescriptors = Feature{ pub const feature_ldbrx = Feature{ .name = "ldbrx", .description = "Enable the ldbrx instruction", - .llvm_name = "ldbrx", .subfeatures = &[_]*const Feature { }, }; @@ -233,7 +206,6 @@ pub const feature_ldbrx = Feature{ pub const feature_lfiwax = Feature{ .name = "lfiwax", .description = "Enable the lfiwax instruction", - .llvm_name = "lfiwax", .subfeatures = &[_]*const Feature { &feature_hardFloat, }, @@ -242,7 +214,6 @@ pub const feature_lfiwax = Feature{ pub const feature_longcall = Feature{ .name = "longcall", .description = "Always use indirect calls", - .llvm_name = "longcall", .subfeatures = &[_]*const Feature { }, }; @@ -250,7 +221,6 @@ pub const feature_longcall = Feature{ pub const feature_mfocrf = Feature{ .name = "mfocrf", .description = "Enable the MFOCRF instruction", - .llvm_name = "mfocrf", .subfeatures = &[_]*const Feature { }, }; @@ -258,7 +228,6 @@ pub const feature_mfocrf = Feature{ pub const feature_msync = Feature{ .name = "msync", .description = "Has only the msync instruction instead of sync", - .llvm_name = "msync", .subfeatures = &[_]*const Feature { &feature_icbt, }, @@ -267,7 +236,6 @@ pub const feature_msync = Feature{ pub const feature_power8Altivec = Feature{ .name = "power8-altivec", .description = "Enable POWER8 Altivec instructions", - .llvm_name = "power8-altivec", .subfeatures = &[_]*const Feature { &feature_hardFloat, }, @@ -276,7 +244,6 @@ pub const feature_power8Altivec = Feature{ pub const feature_crypto = Feature{ .name = "crypto", .description = "Enable POWER8 Crypto instructions", - .llvm_name = "crypto", .subfeatures = &[_]*const Feature { &feature_hardFloat, }, @@ -285,7 +252,6 @@ pub const feature_crypto = Feature{ pub const feature_power8Vector = Feature{ .name = "power8-vector", .description = "Enable POWER8 vector instructions", - .llvm_name = "power8-vector", .subfeatures = &[_]*const Feature { &feature_hardFloat, }, @@ -294,27 +260,24 @@ pub const feature_power8Vector = Feature{ pub const feature_power9Altivec = Feature{ .name = "power9-altivec", .description = "Enable POWER9 Altivec instructions", - .llvm_name = "power9-altivec", .subfeatures = &[_]*const Feature { - &feature_isaV30Instructions, &feature_hardFloat, + &feature_isaV30Instructions, }, }; pub const feature_power9Vector = Feature{ .name = "power9-vector", .description = "Enable POWER9 vector instructions", - .llvm_name = "power9-vector", .subfeatures = &[_]*const Feature { - &feature_isaV30Instructions, &feature_hardFloat, + &feature_isaV30Instructions, }, }; pub const feature_popcntd = Feature{ .name = "popcntd", .description = "Enable the popcnt[dw] instructions", - .llvm_name = "popcntd", .subfeatures = &[_]*const Feature { }, }; @@ -322,7 +285,6 @@ pub const feature_popcntd = Feature{ pub const feature_ppc4xx = Feature{ .name = "ppc4xx", .description = "Enable PPC 4xx instructions", - .llvm_name = "ppc4xx", .subfeatures = &[_]*const Feature { }, }; @@ -330,7 +292,6 @@ pub const feature_ppc4xx = Feature{ pub const feature_ppc6xx = Feature{ .name = "ppc6xx", .description = "Enable PPC 6xx instructions", - .llvm_name = "ppc6xx", .subfeatures = &[_]*const Feature { }, }; @@ -338,7 +299,6 @@ pub const feature_ppc6xx = Feature{ pub const feature_ppcPostraSched = Feature{ .name = "ppc-postra-sched", .description = "Use PowerPC post-RA scheduling strategy", - .llvm_name = "ppc-postra-sched", .subfeatures = &[_]*const Feature { }, }; @@ -346,7 +306,6 @@ pub const feature_ppcPostraSched = Feature{ pub const feature_ppcPreraSched = Feature{ .name = "ppc-prera-sched", .description = "Use PowerPC pre-RA scheduling strategy", - .llvm_name = "ppc-prera-sched", .subfeatures = &[_]*const Feature { }, }; @@ -354,7 +313,6 @@ pub const feature_ppcPreraSched = Feature{ pub const feature_partwordAtomics = Feature{ .name = "partword-atomics", .description = "Enable l[bh]arx and st[bh]cx.", - .llvm_name = "partword-atomics", .subfeatures = &[_]*const Feature { }, }; @@ -362,7 +320,6 @@ pub const feature_partwordAtomics = Feature{ pub const feature_qpx = Feature{ .name = "qpx", .description = "Enable QPX instructions", - .llvm_name = "qpx", .subfeatures = &[_]*const Feature { &feature_hardFloat, }, @@ -371,7 +328,6 @@ pub const feature_qpx = Feature{ pub const feature_recipprec = Feature{ .name = "recipprec", .description = "Assume higher precision reciprocal estimates", - .llvm_name = "recipprec", .subfeatures = &[_]*const Feature { }, }; @@ -379,7 +335,6 @@ pub const feature_recipprec = Feature{ pub const feature_spe = Feature{ .name = "spe", .description = "Enable SPE instructions", - .llvm_name = "spe", .subfeatures = &[_]*const Feature { &feature_hardFloat, }, @@ -388,7 +343,6 @@ pub const feature_spe = Feature{ pub const feature_stfiwx = Feature{ .name = "stfiwx", .description = "Enable the stfiwx instruction", - .llvm_name = "stfiwx", .subfeatures = &[_]*const Feature { &feature_hardFloat, }, @@ -397,7 +351,6 @@ pub const feature_stfiwx = Feature{ pub const feature_securePlt = Feature{ .name = "secure-plt", .description = "Enable secure plt mode", - .llvm_name = "secure-plt", .subfeatures = &[_]*const Feature { }, }; @@ -405,7 +358,6 @@ pub const feature_securePlt = Feature{ pub const feature_slowPopcntd = Feature{ .name = "slow-popcntd", .description = "Has slow popcnt[dw] instructions", - .llvm_name = "slow-popcntd", .subfeatures = &[_]*const Feature { }, }; @@ -413,7 +365,6 @@ pub const feature_slowPopcntd = Feature{ pub const feature_twoConstNr = Feature{ .name = "two-const-nr", .description = "Requires two constant Newton-Raphson computation", - .llvm_name = "two-const-nr", .subfeatures = &[_]*const Feature { }, }; @@ -421,7 +372,6 @@ pub const feature_twoConstNr = Feature{ pub const feature_vsx = Feature{ .name = "vsx", .description = "Enable VSX instructions", - .llvm_name = "vsx", .subfeatures = &[_]*const Feature { &feature_hardFloat, }, @@ -430,7 +380,6 @@ pub const feature_vsx = Feature{ pub const feature_vectorsUseTwoUnits = Feature{ .name = "vectors-use-two-units", .description = "Vectors use two units", - .llvm_name = "vectors-use-two-units", .subfeatures = &[_]*const Feature { }, }; diff --git a/lib/std/target/riscv.zig b/lib/std/target/riscv.zig index 6ed1012f21..46f66aff12 100644 --- a/lib/std/target/riscv.zig +++ b/lib/std/target/riscv.zig @@ -4,7 +4,6 @@ const Cpu = @import("std").target.Cpu; pub const feature_bit64 = Feature{ .name = "64bit", .description = "Implements RV64", - .llvm_name = "64bit", .subfeatures = &[_]*const Feature { }, }; @@ -12,7 +11,6 @@ pub const feature_bit64 = Feature{ pub const feature_e = Feature{ .name = "e", .description = "Implements RV32E (provides 16 rather than 32 GPRs)", - .llvm_name = "e", .subfeatures = &[_]*const Feature { }, }; @@ -20,7 +18,6 @@ pub const feature_e = Feature{ pub const feature_rvcHints = Feature{ .name = "rvc-hints", .description = "Enable RVC Hint Instructions.", - .llvm_name = "rvc-hints", .subfeatures = &[_]*const Feature { }, }; @@ -28,7 +25,6 @@ pub const feature_rvcHints = Feature{ pub const feature_relax = Feature{ .name = "relax", .description = "Enable Linker relaxation.", - .llvm_name = "relax", .subfeatures = &[_]*const Feature { }, }; @@ -36,7 +32,6 @@ pub const feature_relax = Feature{ pub const feature_a = Feature{ .name = "a", .description = "'A' (Atomic Instructions)", - .llvm_name = "a", .subfeatures = &[_]*const Feature { }, }; @@ -44,7 +39,6 @@ pub const feature_a = Feature{ pub const feature_c = Feature{ .name = "c", .description = "'C' (Compressed Instructions)", - .llvm_name = "c", .subfeatures = &[_]*const Feature { }, }; @@ -52,7 +46,6 @@ pub const feature_c = Feature{ pub const feature_d = Feature{ .name = "d", .description = "'D' (Double-Precision Floating-Point)", - .llvm_name = "d", .subfeatures = &[_]*const Feature { &feature_f, }, @@ -61,7 +54,6 @@ pub const feature_d = Feature{ pub const feature_f = Feature{ .name = "f", .description = "'F' (Single-Precision Floating-Point)", - .llvm_name = "f", .subfeatures = &[_]*const Feature { }, }; @@ -69,7 +61,6 @@ pub const feature_f = Feature{ pub const feature_m = Feature{ .name = "m", .description = "'M' (Integer Multiplication and Division)", - .llvm_name = "m", .subfeatures = &[_]*const Feature { }, }; diff --git a/lib/std/target/sparc.zig b/lib/std/target/sparc.zig index 69c6208b2a..75c824c8bc 100644 --- a/lib/std/target/sparc.zig +++ b/lib/std/target/sparc.zig @@ -4,7 +4,6 @@ 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", - .llvm_name = "detectroundchange", .subfeatures = &[_]*const Feature { }, }; @@ -12,7 +11,6 @@ pub const feature_detectroundchange = Feature{ pub const feature_hardQuadFloat = Feature{ .name = "hard-quad-float", .description = "Enable quad-word floating point instructions", - .llvm_name = "hard-quad-float", .subfeatures = &[_]*const Feature { }, }; @@ -20,7 +18,6 @@ pub const feature_hardQuadFloat = Feature{ pub const feature_leon = Feature{ .name = "leon", .description = "Enable LEON extensions", - .llvm_name = "leon", .subfeatures = &[_]*const Feature { }, }; @@ -28,7 +25,6 @@ pub const feature_leon = Feature{ pub const feature_noFmuls = Feature{ .name = "no-fmuls", .description = "Disable the fmuls instruction.", - .llvm_name = "no-fmuls", .subfeatures = &[_]*const Feature { }, }; @@ -36,7 +32,6 @@ pub const feature_noFmuls = Feature{ pub const feature_noFsmuld = Feature{ .name = "no-fsmuld", .description = "Disable the fsmuld instruction.", - .llvm_name = "no-fsmuld", .subfeatures = &[_]*const Feature { }, }; @@ -44,7 +39,6 @@ pub const feature_noFsmuld = Feature{ pub const feature_leonpwrpsr = Feature{ .name = "leonpwrpsr", .description = "Enable the PWRPSR instruction", - .llvm_name = "leonpwrpsr", .subfeatures = &[_]*const Feature { }, }; @@ -52,7 +46,6 @@ pub const feature_leonpwrpsr = Feature{ pub const feature_softFloat = Feature{ .name = "soft-float", .description = "Use software emulation for floating point", - .llvm_name = "soft-float", .subfeatures = &[_]*const Feature { }, }; @@ -60,7 +53,6 @@ pub const feature_softFloat = Feature{ pub const feature_softMulDiv = Feature{ .name = "soft-mul-div", .description = "Use software emulation for integer multiply and divide", - .llvm_name = "soft-mul-div", .subfeatures = &[_]*const Feature { }, }; @@ -68,7 +60,6 @@ pub const feature_softMulDiv = Feature{ pub const feature_deprecatedV8 = Feature{ .name = "deprecated-v8", .description = "Enable deprecated V8 instructions in V9 mode", - .llvm_name = "deprecated-v8", .subfeatures = &[_]*const Feature { }, }; @@ -76,7 +67,6 @@ pub const feature_deprecatedV8 = Feature{ pub const feature_v9 = Feature{ .name = "v9", .description = "Enable SPARC-V9 instructions", - .llvm_name = "v9", .subfeatures = &[_]*const Feature { }, }; @@ -84,7 +74,6 @@ pub const feature_v9 = Feature{ pub const feature_vis = Feature{ .name = "vis", .description = "Enable UltraSPARC Visual Instruction Set extensions", - .llvm_name = "vis", .subfeatures = &[_]*const Feature { }, }; @@ -92,7 +81,6 @@ pub const feature_vis = Feature{ pub const feature_vis2 = Feature{ .name = "vis2", .description = "Enable Visual Instruction Set extensions II", - .llvm_name = "vis2", .subfeatures = &[_]*const Feature { }, }; @@ -100,7 +88,6 @@ pub const feature_vis2 = Feature{ pub const feature_vis3 = Feature{ .name = "vis3", .description = "Enable Visual Instruction Set extensions III", - .llvm_name = "vis3", .subfeatures = &[_]*const Feature { }, }; @@ -108,7 +95,6 @@ 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", - .llvm_name = "fixallfdivsqrt", .subfeatures = &[_]*const Feature { }, }; @@ -116,7 +102,6 @@ pub const feature_fixallfdivsqrt = 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", - .llvm_name = "insertnopload", .subfeatures = &[_]*const Feature { }, }; @@ -124,7 +109,6 @@ pub const feature_insertnopload = Feature{ pub const feature_hasleoncasa = Feature{ .name = "hasleoncasa", .description = "Enable CASA instruction for LEON3 and LEON4 processors", - .llvm_name = "hasleoncasa", .subfeatures = &[_]*const Feature { }, }; @@ -132,7 +116,6 @@ pub const feature_hasleoncasa = Feature{ pub const feature_leoncyclecounter = Feature{ .name = "leoncyclecounter", .description = "Use the Leon cycle counter register", - .llvm_name = "leoncyclecounter", .subfeatures = &[_]*const Feature { }, }; @@ -140,7 +123,6 @@ pub const feature_leoncyclecounter = Feature{ pub const feature_hasumacsmac = Feature{ .name = "hasumacsmac", .description = "Enable UMAC and SMAC for LEON3 and LEON4 processors", - .llvm_name = "hasumacsmac", .subfeatures = &[_]*const Feature { }, }; @@ -148,7 +130,6 @@ pub const feature_hasumacsmac = Feature{ pub const feature_popc = Feature{ .name = "popc", .description = "Use the popc (population count) instruction", - .llvm_name = "popc", .subfeatures = &[_]*const Feature { }, }; diff --git a/lib/std/target/systemz.zig b/lib/std/target/systemz.zig index 03fb49ca55..e7fa7c7333 100644 --- a/lib/std/target/systemz.zig +++ b/lib/std/target/systemz.zig @@ -4,7 +4,6 @@ const Cpu = @import("std").target.Cpu; pub const feature_dfpPackedConversion = Feature{ .name = "dfp-packed-conversion", .description = "Assume that the DFP packed-conversion facility is installed", - .llvm_name = "dfp-packed-conversion", .subfeatures = &[_]*const Feature { }, }; @@ -12,7 +11,6 @@ pub const feature_dfpPackedConversion = Feature{ pub const feature_dfpZonedConversion = Feature{ .name = "dfp-zoned-conversion", .description = "Assume that the DFP zoned-conversion facility is installed", - .llvm_name = "dfp-zoned-conversion", .subfeatures = &[_]*const Feature { }, }; @@ -20,7 +18,6 @@ pub const feature_dfpZonedConversion = Feature{ pub const feature_deflateConversion = Feature{ .name = "deflate-conversion", .description = "Assume that the deflate-conversion facility is installed", - .llvm_name = "deflate-conversion", .subfeatures = &[_]*const Feature { }, }; @@ -28,7 +25,6 @@ pub const feature_deflateConversion = Feature{ pub const feature_distinctOps = Feature{ .name = "distinct-ops", .description = "Assume that the distinct-operands facility is installed", - .llvm_name = "distinct-ops", .subfeatures = &[_]*const Feature { }, }; @@ -36,7 +32,6 @@ pub const feature_distinctOps = Feature{ pub const feature_enhancedDat2 = Feature{ .name = "enhanced-dat-2", .description = "Assume that the enhanced-DAT facility 2 is installed", - .llvm_name = "enhanced-dat-2", .subfeatures = &[_]*const Feature { }, }; @@ -44,7 +39,6 @@ pub const feature_enhancedDat2 = Feature{ pub const feature_enhancedSort = Feature{ .name = "enhanced-sort", .description = "Assume that the enhanced-sort facility is installed", - .llvm_name = "enhanced-sort", .subfeatures = &[_]*const Feature { }, }; @@ -52,7 +46,6 @@ pub const feature_enhancedSort = Feature{ pub const feature_executionHint = Feature{ .name = "execution-hint", .description = "Assume that the execution-hint facility is installed", - .llvm_name = "execution-hint", .subfeatures = &[_]*const Feature { }, }; @@ -60,7 +53,6 @@ pub const feature_executionHint = Feature{ pub const feature_fpExtension = Feature{ .name = "fp-extension", .description = "Assume that the floating-point extension facility is installed", - .llvm_name = "fp-extension", .subfeatures = &[_]*const Feature { }, }; @@ -68,7 +60,6 @@ pub const feature_fpExtension = Feature{ pub const feature_fastSerialization = Feature{ .name = "fast-serialization", .description = "Assume that the fast-serialization facility is installed", - .llvm_name = "fast-serialization", .subfeatures = &[_]*const Feature { }, }; @@ -76,7 +67,6 @@ pub const feature_fastSerialization = Feature{ pub const feature_guardedStorage = Feature{ .name = "guarded-storage", .description = "Assume that the guarded-storage facility is installed", - .llvm_name = "guarded-storage", .subfeatures = &[_]*const Feature { }, }; @@ -84,7 +74,6 @@ pub const feature_guardedStorage = Feature{ pub const feature_highWord = Feature{ .name = "high-word", .description = "Assume that the high-word facility is installed", - .llvm_name = "high-word", .subfeatures = &[_]*const Feature { }, }; @@ -92,7 +81,6 @@ pub const feature_highWord = Feature{ pub const feature_insertReferenceBitsMultiple = Feature{ .name = "insert-reference-bits-multiple", .description = "Assume that the insert-reference-bits-multiple facility is installed", - .llvm_name = "insert-reference-bits-multiple", .subfeatures = &[_]*const Feature { }, }; @@ -100,7 +88,6 @@ pub const feature_insertReferenceBitsMultiple = Feature{ pub const feature_interlockedAccess1 = Feature{ .name = "interlocked-access1", .description = "Assume that interlocked-access facility 1 is installed", - .llvm_name = "interlocked-access1", .subfeatures = &[_]*const Feature { }, }; @@ -108,7 +95,6 @@ pub const feature_interlockedAccess1 = Feature{ pub const feature_loadAndTrap = Feature{ .name = "load-and-trap", .description = "Assume that the load-and-trap facility is installed", - .llvm_name = "load-and-trap", .subfeatures = &[_]*const Feature { }, }; @@ -116,7 +102,6 @@ pub const feature_loadAndTrap = Feature{ pub const feature_loadAndZeroRightmostByte = Feature{ .name = "load-and-zero-rightmost-byte", .description = "Assume that the load-and-zero-rightmost-byte facility is installed", - .llvm_name = "load-and-zero-rightmost-byte", .subfeatures = &[_]*const Feature { }, }; @@ -124,7 +109,6 @@ pub const feature_loadAndZeroRightmostByte = Feature{ pub const feature_loadStoreOnCond = Feature{ .name = "load-store-on-cond", .description = "Assume that the load/store-on-condition facility is installed", - .llvm_name = "load-store-on-cond", .subfeatures = &[_]*const Feature { }, }; @@ -132,7 +116,6 @@ pub const feature_loadStoreOnCond = Feature{ pub const feature_loadStoreOnCond2 = Feature{ .name = "load-store-on-cond-2", .description = "Assume that the load/store-on-condition facility 2 is installed", - .llvm_name = "load-store-on-cond-2", .subfeatures = &[_]*const Feature { }, }; @@ -140,7 +123,6 @@ pub const feature_loadStoreOnCond2 = Feature{ pub const feature_messageSecurityAssistExtension3 = Feature{ .name = "message-security-assist-extension3", .description = "Assume that the message-security-assist extension facility 3 is installed", - .llvm_name = "message-security-assist-extension3", .subfeatures = &[_]*const Feature { }, }; @@ -148,7 +130,6 @@ pub const feature_messageSecurityAssistExtension3 = Feature{ pub const feature_messageSecurityAssistExtension4 = Feature{ .name = "message-security-assist-extension4", .description = "Assume that the message-security-assist extension facility 4 is installed", - .llvm_name = "message-security-assist-extension4", .subfeatures = &[_]*const Feature { }, }; @@ -156,7 +137,6 @@ pub const feature_messageSecurityAssistExtension4 = Feature{ pub const feature_messageSecurityAssistExtension5 = Feature{ .name = "message-security-assist-extension5", .description = "Assume that the message-security-assist extension facility 5 is installed", - .llvm_name = "message-security-assist-extension5", .subfeatures = &[_]*const Feature { }, }; @@ -164,7 +144,6 @@ pub const feature_messageSecurityAssistExtension5 = Feature{ pub const feature_messageSecurityAssistExtension7 = Feature{ .name = "message-security-assist-extension7", .description = "Assume that the message-security-assist extension facility 7 is installed", - .llvm_name = "message-security-assist-extension7", .subfeatures = &[_]*const Feature { }, }; @@ -172,7 +151,6 @@ pub const feature_messageSecurityAssistExtension7 = Feature{ pub const feature_messageSecurityAssistExtension8 = Feature{ .name = "message-security-assist-extension8", .description = "Assume that the message-security-assist extension facility 8 is installed", - .llvm_name = "message-security-assist-extension8", .subfeatures = &[_]*const Feature { }, }; @@ -180,7 +158,6 @@ pub const feature_messageSecurityAssistExtension8 = Feature{ pub const feature_messageSecurityAssistExtension9 = Feature{ .name = "message-security-assist-extension9", .description = "Assume that the message-security-assist extension facility 9 is installed", - .llvm_name = "message-security-assist-extension9", .subfeatures = &[_]*const Feature { }, }; @@ -188,7 +165,6 @@ pub const feature_messageSecurityAssistExtension9 = Feature{ pub const feature_miscellaneousExtensions = Feature{ .name = "miscellaneous-extensions", .description = "Assume that the miscellaneous-extensions facility is installed", - .llvm_name = "miscellaneous-extensions", .subfeatures = &[_]*const Feature { }, }; @@ -196,7 +172,6 @@ pub const feature_miscellaneousExtensions = Feature{ pub const feature_miscellaneousExtensions2 = Feature{ .name = "miscellaneous-extensions-2", .description = "Assume that the miscellaneous-extensions facility 2 is installed", - .llvm_name = "miscellaneous-extensions-2", .subfeatures = &[_]*const Feature { }, }; @@ -204,7 +179,6 @@ pub const feature_miscellaneousExtensions2 = Feature{ pub const feature_miscellaneousExtensions3 = Feature{ .name = "miscellaneous-extensions-3", .description = "Assume that the miscellaneous-extensions facility 3 is installed", - .llvm_name = "miscellaneous-extensions-3", .subfeatures = &[_]*const Feature { }, }; @@ -212,7 +186,6 @@ pub const feature_miscellaneousExtensions3 = Feature{ pub const feature_populationCount = Feature{ .name = "population-count", .description = "Assume that the population-count facility is installed", - .llvm_name = "population-count", .subfeatures = &[_]*const Feature { }, }; @@ -220,7 +193,6 @@ pub const feature_populationCount = Feature{ pub const feature_processorAssist = Feature{ .name = "processor-assist", .description = "Assume that the processor-assist facility is installed", - .llvm_name = "processor-assist", .subfeatures = &[_]*const Feature { }, }; @@ -228,7 +200,6 @@ pub const feature_processorAssist = Feature{ pub const feature_resetReferenceBitsMultiple = Feature{ .name = "reset-reference-bits-multiple", .description = "Assume that the reset-reference-bits-multiple facility is installed", - .llvm_name = "reset-reference-bits-multiple", .subfeatures = &[_]*const Feature { }, }; @@ -236,7 +207,6 @@ pub const feature_resetReferenceBitsMultiple = Feature{ pub const feature_transactionalExecution = Feature{ .name = "transactional-execution", .description = "Assume that the transactional-execution facility is installed", - .llvm_name = "transactional-execution", .subfeatures = &[_]*const Feature { }, }; @@ -244,7 +214,6 @@ pub const feature_transactionalExecution = Feature{ pub const feature_vector = Feature{ .name = "vector", .description = "Assume that the vectory facility is installed", - .llvm_name = "vector", .subfeatures = &[_]*const Feature { }, }; @@ -252,7 +221,6 @@ pub const feature_vector = Feature{ pub const feature_vectorEnhancements1 = Feature{ .name = "vector-enhancements-1", .description = "Assume that the vector enhancements facility 1 is installed", - .llvm_name = "vector-enhancements-1", .subfeatures = &[_]*const Feature { }, }; @@ -260,7 +228,6 @@ pub const feature_vectorEnhancements1 = Feature{ pub const feature_vectorEnhancements2 = Feature{ .name = "vector-enhancements-2", .description = "Assume that the vector enhancements facility 2 is installed", - .llvm_name = "vector-enhancements-2", .subfeatures = &[_]*const Feature { }, }; @@ -268,7 +235,6 @@ pub const feature_vectorEnhancements2 = Feature{ pub const feature_vectorPackedDecimal = Feature{ .name = "vector-packed-decimal", .description = "Assume that the vector packed decimal facility is installed", - .llvm_name = "vector-packed-decimal", .subfeatures = &[_]*const Feature { }, }; @@ -276,7 +242,6 @@ pub const feature_vectorPackedDecimal = Feature{ pub const feature_vectorPackedDecimalEnhancement = Feature{ .name = "vector-packed-decimal-enhancement", .description = "Assume that the vector packed decimal enhancement facility is installed", - .llvm_name = "vector-packed-decimal-enhancement", .subfeatures = &[_]*const Feature { }, }; diff --git a/lib/std/target/wasm.zig b/lib/std/target/wasm.zig index ba41b622a4..6b302a9ff6 100644 --- a/lib/std/target/wasm.zig +++ b/lib/std/target/wasm.zig @@ -4,7 +4,6 @@ const Cpu = @import("std").target.Cpu; pub const feature_atomics = Feature{ .name = "atomics", .description = "Enable Atomics", - .llvm_name = "atomics", .subfeatures = &[_]*const Feature { }, }; @@ -12,7 +11,6 @@ pub const feature_atomics = Feature{ pub const feature_bulkMemory = Feature{ .name = "bulk-memory", .description = "Enable bulk memory operations", - .llvm_name = "bulk-memory", .subfeatures = &[_]*const Feature { }, }; @@ -20,7 +18,6 @@ pub const feature_bulkMemory = Feature{ pub const feature_exceptionHandling = Feature{ .name = "exception-handling", .description = "Enable Wasm exception handling", - .llvm_name = "exception-handling", .subfeatures = &[_]*const Feature { }, }; @@ -28,7 +25,6 @@ pub const feature_exceptionHandling = Feature{ pub const feature_multivalue = Feature{ .name = "multivalue", .description = "Enable multivalue blocks, instructions, and functions", - .llvm_name = "multivalue", .subfeatures = &[_]*const Feature { }, }; @@ -36,7 +32,6 @@ pub const feature_multivalue = Feature{ pub const feature_mutableGlobals = Feature{ .name = "mutable-globals", .description = "Enable mutable globals", - .llvm_name = "mutable-globals", .subfeatures = &[_]*const Feature { }, }; @@ -44,7 +39,6 @@ pub const feature_mutableGlobals = Feature{ pub const feature_nontrappingFptoint = Feature{ .name = "nontrapping-fptoint", .description = "Enable non-trapping float-to-int conversion operators", - .llvm_name = "nontrapping-fptoint", .subfeatures = &[_]*const Feature { }, }; @@ -52,7 +46,6 @@ pub const feature_nontrappingFptoint = Feature{ pub const feature_simd128 = Feature{ .name = "simd128", .description = "Enable 128-bit SIMD", - .llvm_name = "simd128", .subfeatures = &[_]*const Feature { }, }; @@ -60,7 +53,6 @@ pub const feature_simd128 = Feature{ pub const feature_signExt = Feature{ .name = "sign-ext", .description = "Enable sign extension operators", - .llvm_name = "sign-ext", .subfeatures = &[_]*const Feature { }, }; @@ -68,7 +60,6 @@ pub const feature_signExt = Feature{ pub const feature_tailCall = Feature{ .name = "tail-call", .description = "Enable tail call instructions", - .llvm_name = "tail-call", .subfeatures = &[_]*const Feature { }, }; @@ -76,7 +67,6 @@ pub const feature_tailCall = Feature{ pub const feature_unimplementedSimd128 = Feature{ .name = "unimplemented-simd128", .description = "Enable 128-bit SIMD not yet implemented in engines", - .llvm_name = "unimplemented-simd128", .subfeatures = &[_]*const Feature { &feature_simd128, }, diff --git a/lib/std/target/x86.zig b/lib/std/target/x86.zig index c6497112bb..de49ce937c 100644 --- a/lib/std/target/x86.zig +++ b/lib/std/target/x86.zig @@ -4,7 +4,6 @@ const Cpu = @import("std").target.Cpu; pub const feature_dnow3 = Feature{ .name = "3dnow", .description = "Enable 3DNow! instructions", - .llvm_name = "3dnow", .subfeatures = &[_]*const Feature { &feature_mmx, }, @@ -13,7 +12,6 @@ pub const feature_dnow3 = Feature{ pub const feature_dnowa3 = Feature{ .name = "3dnowa", .description = "Enable 3DNow! Athlon instructions", - .llvm_name = "3dnowa", .subfeatures = &[_]*const Feature { &feature_mmx, }, @@ -22,7 +20,6 @@ pub const feature_dnowa3 = Feature{ pub const feature_bit64 = Feature{ .name = "64bit", .description = "Support 64-bit instructions", - .llvm_name = "64bit", .subfeatures = &[_]*const Feature { }, }; @@ -30,7 +27,6 @@ pub const feature_bit64 = Feature{ pub const feature_adx = Feature{ .name = "adx", .description = "Support ADX instructions", - .llvm_name = "adx", .subfeatures = &[_]*const Feature { }, }; @@ -38,7 +34,6 @@ pub const feature_adx = Feature{ pub const feature_aes = Feature{ .name = "aes", .description = "Enable AES instructions", - .llvm_name = "aes", .subfeatures = &[_]*const Feature { &feature_sse, }, @@ -47,7 +42,6 @@ pub const feature_aes = Feature{ pub const feature_avx = Feature{ .name = "avx", .description = "Enable AVX instructions", - .llvm_name = "avx", .subfeatures = &[_]*const Feature { &feature_sse, }, @@ -56,7 +50,6 @@ pub const feature_avx = Feature{ pub const feature_avx2 = Feature{ .name = "avx2", .description = "Enable AVX2 instructions", - .llvm_name = "avx2", .subfeatures = &[_]*const Feature { &feature_sse, }, @@ -65,7 +58,6 @@ pub const feature_avx2 = Feature{ pub const feature_avx512f = Feature{ .name = "avx512f", .description = "Enable AVX-512 instructions", - .llvm_name = "avx512f", .subfeatures = &[_]*const Feature { &feature_sse, }, @@ -74,7 +66,6 @@ pub const feature_avx512f = Feature{ pub const feature_avx512bf16 = Feature{ .name = "avx512bf16", .description = "Support bfloat16 floating point", - .llvm_name = "avx512bf16", .subfeatures = &[_]*const Feature { &feature_sse, }, @@ -83,7 +74,6 @@ pub const feature_avx512bf16 = Feature{ pub const feature_avx512bitalg = Feature{ .name = "avx512bitalg", .description = "Enable AVX-512 Bit Algorithms", - .llvm_name = "avx512bitalg", .subfeatures = &[_]*const Feature { &feature_sse, }, @@ -92,7 +82,6 @@ pub const feature_avx512bitalg = Feature{ pub const feature_bmi = Feature{ .name = "bmi", .description = "Support BMI instructions", - .llvm_name = "bmi", .subfeatures = &[_]*const Feature { }, }; @@ -100,7 +89,6 @@ pub const feature_bmi = Feature{ pub const feature_bmi2 = Feature{ .name = "bmi2", .description = "Support BMI2 instructions", - .llvm_name = "bmi2", .subfeatures = &[_]*const Feature { }, }; @@ -108,7 +96,6 @@ pub const feature_bmi2 = Feature{ pub const feature_avx512bw = Feature{ .name = "avx512bw", .description = "Enable AVX-512 Byte and Word Instructions", - .llvm_name = "avx512bw", .subfeatures = &[_]*const Feature { &feature_sse, }, @@ -117,7 +104,6 @@ pub const feature_avx512bw = Feature{ pub const feature_branchfusion = Feature{ .name = "branchfusion", .description = "CMP/TEST can be fused with conditional branches", - .llvm_name = "branchfusion", .subfeatures = &[_]*const Feature { }, }; @@ -125,7 +111,6 @@ pub const feature_branchfusion = Feature{ pub const feature_avx512cd = Feature{ .name = "avx512cd", .description = "Enable AVX-512 Conflict Detection Instructions", - .llvm_name = "avx512cd", .subfeatures = &[_]*const Feature { &feature_sse, }, @@ -134,7 +119,6 @@ pub const feature_avx512cd = Feature{ pub const feature_cldemote = Feature{ .name = "cldemote", .description = "Enable Cache Demote", - .llvm_name = "cldemote", .subfeatures = &[_]*const Feature { }, }; @@ -142,7 +126,6 @@ pub const feature_cldemote = Feature{ pub const feature_clflushopt = Feature{ .name = "clflushopt", .description = "Flush A Cache Line Optimized", - .llvm_name = "clflushopt", .subfeatures = &[_]*const Feature { }, }; @@ -150,7 +133,6 @@ pub const feature_clflushopt = Feature{ pub const feature_clwb = Feature{ .name = "clwb", .description = "Cache Line Write Back", - .llvm_name = "clwb", .subfeatures = &[_]*const Feature { }, }; @@ -158,7 +140,6 @@ pub const feature_clwb = Feature{ pub const feature_clzero = Feature{ .name = "clzero", .description = "Enable Cache Line Zero", - .llvm_name = "clzero", .subfeatures = &[_]*const Feature { }, }; @@ -166,7 +147,6 @@ pub const feature_clzero = Feature{ pub const feature_cmov = Feature{ .name = "cmov", .description = "Enable conditional move instructions", - .llvm_name = "cmov", .subfeatures = &[_]*const Feature { }, }; @@ -174,7 +154,6 @@ pub const feature_cmov = Feature{ pub const feature_cx8 = Feature{ .name = "cx8", .description = "Support CMPXCHG8B instructions", - .llvm_name = "cx8", .subfeatures = &[_]*const Feature { }, }; @@ -182,7 +161,6 @@ pub const feature_cx8 = Feature{ pub const feature_cx16 = Feature{ .name = "cx16", .description = "64-bit with cmpxchg16b", - .llvm_name = "cx16", .subfeatures = &[_]*const Feature { &feature_cx8, }, @@ -191,7 +169,6 @@ pub const feature_cx16 = Feature{ pub const feature_avx512dq = Feature{ .name = "avx512dq", .description = "Enable AVX-512 Doubleword and Quadword Instructions", - .llvm_name = "avx512dq", .subfeatures = &[_]*const Feature { &feature_sse, }, @@ -200,7 +177,6 @@ pub const feature_avx512dq = Feature{ pub const feature_mpx = Feature{ .name = "mpx", .description = "Deprecated. Support MPX instructions", - .llvm_name = "mpx", .subfeatures = &[_]*const Feature { }, }; @@ -208,7 +184,6 @@ pub const feature_mpx = Feature{ pub const feature_enqcmd = Feature{ .name = "enqcmd", .description = "Has ENQCMD instructions", - .llvm_name = "enqcmd", .subfeatures = &[_]*const Feature { }, }; @@ -216,7 +191,6 @@ pub const feature_enqcmd = Feature{ pub const feature_avx512er = Feature{ .name = "avx512er", .description = "Enable AVX-512 Exponential and Reciprocal Instructions", - .llvm_name = "avx512er", .subfeatures = &[_]*const Feature { &feature_sse, }, @@ -225,7 +199,6 @@ pub const feature_avx512er = Feature{ pub const feature_ermsb = Feature{ .name = "ermsb", .description = "REP MOVS/STOS are fast", - .llvm_name = "ermsb", .subfeatures = &[_]*const Feature { }, }; @@ -233,7 +206,6 @@ pub const feature_ermsb = Feature{ pub const feature_f16c = Feature{ .name = "f16c", .description = "Support 16-bit floating point conversion instructions", - .llvm_name = "f16c", .subfeatures = &[_]*const Feature { &feature_sse, }, @@ -242,7 +214,6 @@ pub const feature_f16c = Feature{ pub const feature_fma = Feature{ .name = "fma", .description = "Enable three-operand fused multiple-add", - .llvm_name = "fma", .subfeatures = &[_]*const Feature { &feature_sse, }, @@ -251,7 +222,6 @@ pub const feature_fma = Feature{ pub const feature_fma4 = Feature{ .name = "fma4", .description = "Enable four-operand fused multiple-add", - .llvm_name = "fma4", .subfeatures = &[_]*const Feature { &feature_sse, }, @@ -260,7 +230,6 @@ pub const feature_fma4 = Feature{ pub const feature_fsgsbase = Feature{ .name = "fsgsbase", .description = "Support FS/GS Base instructions", - .llvm_name = "fsgsbase", .subfeatures = &[_]*const Feature { }, }; @@ -268,7 +237,6 @@ pub const feature_fsgsbase = Feature{ pub const feature_fxsr = Feature{ .name = "fxsr", .description = "Support fxsave/fxrestore instructions", - .llvm_name = "fxsr", .subfeatures = &[_]*const Feature { }, }; @@ -276,7 +244,6 @@ pub const feature_fxsr = Feature{ pub const feature_fast11bytenop = Feature{ .name = "fast-11bytenop", .description = "Target can quickly decode up to 11 byte NOPs", - .llvm_name = "fast-11bytenop", .subfeatures = &[_]*const Feature { }, }; @@ -284,7 +251,6 @@ pub const feature_fast11bytenop = Feature{ pub const feature_fast15bytenop = Feature{ .name = "fast-15bytenop", .description = "Target can quickly decode up to 15 byte NOPs", - .llvm_name = "fast-15bytenop", .subfeatures = &[_]*const Feature { }, }; @@ -292,7 +258,6 @@ pub const feature_fast15bytenop = Feature{ pub const feature_fastBextr = Feature{ .name = "fast-bextr", .description = "Indicates that the BEXTR instruction is implemented as a single uop with good throughput", - .llvm_name = "fast-bextr", .subfeatures = &[_]*const Feature { }, }; @@ -300,7 +265,6 @@ pub const feature_fastBextr = Feature{ pub const feature_fastHops = Feature{ .name = "fast-hops", .description = "Prefer horizontal vector math instructions (haddp, phsub, etc.) over normal vector instructions with shuffles", - .llvm_name = "fast-hops", .subfeatures = &[_]*const Feature { &feature_sse, }, @@ -309,7 +273,6 @@ pub const feature_fastHops = Feature{ pub const feature_fastLzcnt = Feature{ .name = "fast-lzcnt", .description = "LZCNT instructions are as fast as most simple integer ops", - .llvm_name = "fast-lzcnt", .subfeatures = &[_]*const Feature { }, }; @@ -317,7 +280,6 @@ pub const feature_fastLzcnt = Feature{ pub const feature_fastPartialYmmOrZmmWrite = Feature{ .name = "fast-partial-ymm-or-zmm-write", .description = "Partial writes to YMM/ZMM registers are fast", - .llvm_name = "fast-partial-ymm-or-zmm-write", .subfeatures = &[_]*const Feature { }, }; @@ -325,7 +287,6 @@ pub const feature_fastPartialYmmOrZmmWrite = Feature{ pub const feature_fastShldRotate = Feature{ .name = "fast-shld-rotate", .description = "SHLD can be used as a faster rotate", - .llvm_name = "fast-shld-rotate", .subfeatures = &[_]*const Feature { }, }; @@ -333,7 +294,6 @@ pub const feature_fastShldRotate = Feature{ pub const feature_fastScalarFsqrt = Feature{ .name = "fast-scalar-fsqrt", .description = "Scalar SQRT is fast (disable Newton-Raphson)", - .llvm_name = "fast-scalar-fsqrt", .subfeatures = &[_]*const Feature { }, }; @@ -341,7 +301,6 @@ pub const feature_fastScalarFsqrt = Feature{ pub const feature_fastScalarShiftMasks = Feature{ .name = "fast-scalar-shift-masks", .description = "Prefer a left/right scalar logical shift pair over a shift+and pair", - .llvm_name = "fast-scalar-shift-masks", .subfeatures = &[_]*const Feature { }, }; @@ -349,7 +308,6 @@ pub const feature_fastScalarShiftMasks = Feature{ pub const feature_fastVariableShuffle = Feature{ .name = "fast-variable-shuffle", .description = "Shuffles with variable masks are fast", - .llvm_name = "fast-variable-shuffle", .subfeatures = &[_]*const Feature { }, }; @@ -357,7 +315,6 @@ pub const feature_fastVariableShuffle = Feature{ pub const feature_fastVectorFsqrt = Feature{ .name = "fast-vector-fsqrt", .description = "Vector SQRT is fast (disable Newton-Raphson)", - .llvm_name = "fast-vector-fsqrt", .subfeatures = &[_]*const Feature { }, }; @@ -365,7 +322,6 @@ pub const feature_fastVectorFsqrt = Feature{ pub const feature_fastVectorShiftMasks = Feature{ .name = "fast-vector-shift-masks", .description = "Prefer a left/right vector logical shift pair over a shift+and pair", - .llvm_name = "fast-vector-shift-masks", .subfeatures = &[_]*const Feature { }, }; @@ -373,7 +329,6 @@ pub const feature_fastVectorShiftMasks = Feature{ pub const feature_gfni = Feature{ .name = "gfni", .description = "Enable Galois Field Arithmetic Instructions", - .llvm_name = "gfni", .subfeatures = &[_]*const Feature { &feature_sse, }, @@ -382,7 +337,6 @@ pub const feature_gfni = Feature{ pub const feature_fastGather = Feature{ .name = "fast-gather", .description = "Indicates if gather is reasonably fast", - .llvm_name = "fast-gather", .subfeatures = &[_]*const Feature { }, }; @@ -390,7 +344,6 @@ pub const feature_fastGather = Feature{ pub const feature_avx512ifma = Feature{ .name = "avx512ifma", .description = "Enable AVX-512 Integer Fused Multiple-Add", - .llvm_name = "avx512ifma", .subfeatures = &[_]*const Feature { &feature_sse, }, @@ -399,7 +352,6 @@ pub const feature_avx512ifma = Feature{ pub const feature_invpcid = Feature{ .name = "invpcid", .description = "Invalidate Process-Context Identifier", - .llvm_name = "invpcid", .subfeatures = &[_]*const Feature { }, }; @@ -407,7 +359,6 @@ pub const feature_invpcid = Feature{ pub const feature_sahf = Feature{ .name = "sahf", .description = "Support LAHF and SAHF instructions", - .llvm_name = "sahf", .subfeatures = &[_]*const Feature { }, }; @@ -415,7 +366,6 @@ pub const feature_sahf = Feature{ pub const feature_leaSp = Feature{ .name = "lea-sp", .description = "Use LEA for adjusting the stack pointer", - .llvm_name = "lea-sp", .subfeatures = &[_]*const Feature { }, }; @@ -423,7 +373,6 @@ pub const feature_leaSp = Feature{ pub const feature_leaUsesAg = Feature{ .name = "lea-uses-ag", .description = "LEA instruction needs inputs at AG stage", - .llvm_name = "lea-uses-ag", .subfeatures = &[_]*const Feature { }, }; @@ -431,7 +380,6 @@ pub const feature_leaUsesAg = Feature{ pub const feature_lwp = Feature{ .name = "lwp", .description = "Enable LWP instructions", - .llvm_name = "lwp", .subfeatures = &[_]*const Feature { }, }; @@ -439,7 +387,6 @@ pub const feature_lwp = Feature{ pub const feature_lzcnt = Feature{ .name = "lzcnt", .description = "Support LZCNT instruction", - .llvm_name = "lzcnt", .subfeatures = &[_]*const Feature { }, }; @@ -447,7 +394,6 @@ pub const feature_lzcnt = Feature{ pub const feature_falseDepsLzcntTzcnt = Feature{ .name = "false-deps-lzcnt-tzcnt", .description = "LZCNT/TZCNT have a false dependency on dest register", - .llvm_name = "false-deps-lzcnt-tzcnt", .subfeatures = &[_]*const Feature { }, }; @@ -455,7 +401,6 @@ pub const feature_falseDepsLzcntTzcnt = Feature{ pub const feature_mmx = Feature{ .name = "mmx", .description = "Enable MMX instructions", - .llvm_name = "mmx", .subfeatures = &[_]*const Feature { }, }; @@ -463,7 +408,6 @@ pub const feature_mmx = Feature{ pub const feature_movbe = Feature{ .name = "movbe", .description = "Support MOVBE instruction", - .llvm_name = "movbe", .subfeatures = &[_]*const Feature { }, }; @@ -471,7 +415,6 @@ pub const feature_movbe = Feature{ pub const feature_movdir64b = Feature{ .name = "movdir64b", .description = "Support movdir64b instruction", - .llvm_name = "movdir64b", .subfeatures = &[_]*const Feature { }, }; @@ -479,7 +422,6 @@ pub const feature_movdir64b = Feature{ pub const feature_movdiri = Feature{ .name = "movdiri", .description = "Support movdiri instruction", - .llvm_name = "movdiri", .subfeatures = &[_]*const Feature { }, }; @@ -487,7 +429,6 @@ pub const feature_movdiri = Feature{ pub const feature_mwaitx = Feature{ .name = "mwaitx", .description = "Enable MONITORX/MWAITX timer functionality", - .llvm_name = "mwaitx", .subfeatures = &[_]*const Feature { }, }; @@ -495,7 +436,6 @@ pub const feature_mwaitx = Feature{ pub const feature_macrofusion = Feature{ .name = "macrofusion", .description = "Various instructions can be fused with conditional branches", - .llvm_name = "macrofusion", .subfeatures = &[_]*const Feature { }, }; @@ -503,7 +443,6 @@ pub const feature_macrofusion = Feature{ pub const feature_mergeToThreewayBranch = Feature{ .name = "merge-to-threeway-branch", .description = "Merge branches to a three-way conditional branch", - .llvm_name = "merge-to-threeway-branch", .subfeatures = &[_]*const Feature { }, }; @@ -511,7 +450,6 @@ pub const feature_mergeToThreewayBranch = Feature{ pub const feature_nopl = Feature{ .name = "nopl", .description = "Enable NOPL instruction", - .llvm_name = "nopl", .subfeatures = &[_]*const Feature { }, }; @@ -519,7 +457,6 @@ pub const feature_nopl = Feature{ pub const feature_pclmul = Feature{ .name = "pclmul", .description = "Enable packed carry-less multiplication instructions", - .llvm_name = "pclmul", .subfeatures = &[_]*const Feature { &feature_sse, }, @@ -528,7 +465,6 @@ pub const feature_pclmul = Feature{ pub const feature_pconfig = Feature{ .name = "pconfig", .description = "platform configuration instruction", - .llvm_name = "pconfig", .subfeatures = &[_]*const Feature { }, }; @@ -536,7 +472,6 @@ pub const feature_pconfig = Feature{ pub const feature_avx512pf = Feature{ .name = "avx512pf", .description = "Enable AVX-512 PreFetch Instructions", - .llvm_name = "avx512pf", .subfeatures = &[_]*const Feature { &feature_sse, }, @@ -545,7 +480,6 @@ pub const feature_avx512pf = Feature{ pub const feature_pku = Feature{ .name = "pku", .description = "Enable protection keys", - .llvm_name = "pku", .subfeatures = &[_]*const Feature { }, }; @@ -553,7 +487,6 @@ pub const feature_pku = Feature{ pub const feature_popcnt = Feature{ .name = "popcnt", .description = "Support POPCNT instruction", - .llvm_name = "popcnt", .subfeatures = &[_]*const Feature { }, }; @@ -561,7 +494,6 @@ pub const feature_popcnt = Feature{ pub const feature_falseDepsPopcnt = Feature{ .name = "false-deps-popcnt", .description = "POPCNT has a false dependency on dest register", - .llvm_name = "false-deps-popcnt", .subfeatures = &[_]*const Feature { }, }; @@ -569,7 +501,6 @@ pub const feature_falseDepsPopcnt = Feature{ pub const feature_prefetchwt1 = Feature{ .name = "prefetchwt1", .description = "Prefetch with Intent to Write and T1 Hint", - .llvm_name = "prefetchwt1", .subfeatures = &[_]*const Feature { }, }; @@ -577,7 +508,6 @@ pub const feature_prefetchwt1 = Feature{ pub const feature_prfchw = Feature{ .name = "prfchw", .description = "Support PRFCHW instructions", - .llvm_name = "prfchw", .subfeatures = &[_]*const Feature { }, }; @@ -585,7 +515,6 @@ pub const feature_prfchw = Feature{ pub const feature_ptwrite = Feature{ .name = "ptwrite", .description = "Support ptwrite instruction", - .llvm_name = "ptwrite", .subfeatures = &[_]*const Feature { }, }; @@ -593,7 +522,6 @@ pub const feature_ptwrite = Feature{ pub const feature_padShortFunctions = Feature{ .name = "pad-short-functions", .description = "Pad short functions", - .llvm_name = "pad-short-functions", .subfeatures = &[_]*const Feature { }, }; @@ -601,7 +529,6 @@ pub const feature_padShortFunctions = Feature{ pub const feature_prefer128Bit = Feature{ .name = "prefer-128-bit", .description = "Prefer 128-bit AVX instructions", - .llvm_name = "prefer-128-bit", .subfeatures = &[_]*const Feature { }, }; @@ -609,7 +536,6 @@ pub const feature_prefer128Bit = Feature{ pub const feature_prefer256Bit = Feature{ .name = "prefer-256-bit", .description = "Prefer 256-bit AVX instructions", - .llvm_name = "prefer-256-bit", .subfeatures = &[_]*const Feature { }, }; @@ -617,7 +543,6 @@ pub const feature_prefer256Bit = Feature{ pub const feature_rdpid = Feature{ .name = "rdpid", .description = "Support RDPID instructions", - .llvm_name = "rdpid", .subfeatures = &[_]*const Feature { }, }; @@ -625,7 +550,6 @@ pub const feature_rdpid = Feature{ pub const feature_rdrnd = Feature{ .name = "rdrnd", .description = "Support RDRAND instruction", - .llvm_name = "rdrnd", .subfeatures = &[_]*const Feature { }, }; @@ -633,7 +557,6 @@ pub const feature_rdrnd = Feature{ pub const feature_rdseed = Feature{ .name = "rdseed", .description = "Support RDSEED instruction", - .llvm_name = "rdseed", .subfeatures = &[_]*const Feature { }, }; @@ -641,7 +564,6 @@ pub const feature_rdseed = Feature{ pub const feature_rtm = Feature{ .name = "rtm", .description = "Support RTM instructions", - .llvm_name = "rtm", .subfeatures = &[_]*const Feature { }, }; @@ -649,17 +571,15 @@ pub const feature_rtm = Feature{ pub const feature_retpoline = Feature{ .name = "retpoline", .description = "Remove speculation of indirect branches from the generated code, either by avoiding them entirely or lowering them with a speculation blocking construct", - .llvm_name = "retpoline", .subfeatures = &[_]*const Feature { - &feature_retpolineIndirectCalls, &feature_retpolineIndirectBranches, + &feature_retpolineIndirectCalls, }, }; pub const feature_retpolineExternalThunk = Feature{ .name = "retpoline-external-thunk", .description = "When lowering an indirect call or branch using a `retpoline`, rely on the specified user provided thunk rather than emitting one ourselves. Only has effect when combined with some other retpoline feature", - .llvm_name = "retpoline-external-thunk", .subfeatures = &[_]*const Feature { &feature_retpolineIndirectCalls, }, @@ -668,7 +588,6 @@ pub const feature_retpolineExternalThunk = Feature{ pub const feature_retpolineIndirectBranches = Feature{ .name = "retpoline-indirect-branches", .description = "Remove speculation of indirect branches from the generated code", - .llvm_name = "retpoline-indirect-branches", .subfeatures = &[_]*const Feature { }, }; @@ -676,7 +595,6 @@ pub const feature_retpolineIndirectBranches = Feature{ pub const feature_retpolineIndirectCalls = Feature{ .name = "retpoline-indirect-calls", .description = "Remove speculation of indirect calls from the generated code", - .llvm_name = "retpoline-indirect-calls", .subfeatures = &[_]*const Feature { }, }; @@ -684,7 +602,6 @@ pub const feature_retpolineIndirectCalls = Feature{ pub const feature_sgx = Feature{ .name = "sgx", .description = "Enable Software Guard Extensions", - .llvm_name = "sgx", .subfeatures = &[_]*const Feature { }, }; @@ -692,7 +609,6 @@ pub const feature_sgx = Feature{ pub const feature_sha = Feature{ .name = "sha", .description = "Enable SHA instructions", - .llvm_name = "sha", .subfeatures = &[_]*const Feature { &feature_sse, }, @@ -701,7 +617,6 @@ pub const feature_sha = Feature{ pub const feature_shstk = Feature{ .name = "shstk", .description = "Support CET Shadow-Stack instructions", - .llvm_name = "shstk", .subfeatures = &[_]*const Feature { }, }; @@ -709,7 +624,6 @@ pub const feature_shstk = Feature{ pub const feature_sse = Feature{ .name = "sse", .description = "Enable SSE instructions", - .llvm_name = "sse", .subfeatures = &[_]*const Feature { }, }; @@ -717,7 +631,6 @@ pub const feature_sse = Feature{ pub const feature_sse2 = Feature{ .name = "sse2", .description = "Enable SSE2 instructions", - .llvm_name = "sse2", .subfeatures = &[_]*const Feature { &feature_sse, }, @@ -726,7 +639,6 @@ pub const feature_sse2 = Feature{ pub const feature_sse3 = Feature{ .name = "sse3", .description = "Enable SSE3 instructions", - .llvm_name = "sse3", .subfeatures = &[_]*const Feature { &feature_sse, }, @@ -735,7 +647,6 @@ pub const feature_sse3 = Feature{ pub const feature_sse4a = Feature{ .name = "sse4a", .description = "Support SSE 4a instructions", - .llvm_name = "sse4a", .subfeatures = &[_]*const Feature { &feature_sse, }, @@ -744,7 +655,6 @@ pub const feature_sse4a = Feature{ pub const feature_sse41 = Feature{ .name = "sse4.1", .description = "Enable SSE 4.1 instructions", - .llvm_name = "sse4.1", .subfeatures = &[_]*const Feature { &feature_sse, }, @@ -753,7 +663,6 @@ pub const feature_sse41 = Feature{ pub const feature_sse42 = Feature{ .name = "sse4.2", .description = "Enable SSE 4.2 instructions", - .llvm_name = "sse4.2", .subfeatures = &[_]*const Feature { &feature_sse, }, @@ -762,7 +671,6 @@ pub const feature_sse42 = Feature{ pub const feature_sseUnalignedMem = Feature{ .name = "sse-unaligned-mem", .description = "Allow unaligned memory operands with SSE instructions", - .llvm_name = "sse-unaligned-mem", .subfeatures = &[_]*const Feature { }, }; @@ -770,7 +678,6 @@ pub const feature_sseUnalignedMem = Feature{ pub const feature_ssse3 = Feature{ .name = "ssse3", .description = "Enable SSSE3 instructions", - .llvm_name = "ssse3", .subfeatures = &[_]*const Feature { &feature_sse, }, @@ -779,7 +686,6 @@ pub const feature_ssse3 = Feature{ pub const feature_slow3opsLea = Feature{ .name = "slow-3ops-lea", .description = "LEA instruction with 3 ops or certain registers is slow", - .llvm_name = "slow-3ops-lea", .subfeatures = &[_]*const Feature { }, }; @@ -787,7 +693,6 @@ pub const feature_slow3opsLea = Feature{ pub const feature_idivlToDivb = Feature{ .name = "idivl-to-divb", .description = "Use 8-bit divide for positive values less than 256", - .llvm_name = "idivl-to-divb", .subfeatures = &[_]*const Feature { }, }; @@ -795,7 +700,6 @@ pub const feature_idivlToDivb = Feature{ pub const feature_idivqToDivl = Feature{ .name = "idivq-to-divl", .description = "Use 32-bit divide for positive values less than 2^32", - .llvm_name = "idivq-to-divl", .subfeatures = &[_]*const Feature { }, }; @@ -803,7 +707,6 @@ pub const feature_idivqToDivl = Feature{ pub const feature_slowIncdec = Feature{ .name = "slow-incdec", .description = "INC and DEC instructions are slower than ADD and SUB", - .llvm_name = "slow-incdec", .subfeatures = &[_]*const Feature { }, }; @@ -811,7 +714,6 @@ pub const feature_slowIncdec = Feature{ pub const feature_slowLea = Feature{ .name = "slow-lea", .description = "LEA instruction with certain arguments is slow", - .llvm_name = "slow-lea", .subfeatures = &[_]*const Feature { }, }; @@ -819,7 +721,6 @@ pub const feature_slowLea = Feature{ pub const feature_slowPmaddwd = Feature{ .name = "slow-pmaddwd", .description = "PMADDWD is slower than PMULLD", - .llvm_name = "slow-pmaddwd", .subfeatures = &[_]*const Feature { }, }; @@ -827,7 +728,6 @@ pub const feature_slowPmaddwd = Feature{ pub const feature_slowPmulld = Feature{ .name = "slow-pmulld", .description = "PMULLD instruction is slow", - .llvm_name = "slow-pmulld", .subfeatures = &[_]*const Feature { }, }; @@ -835,7 +735,6 @@ pub const feature_slowPmulld = Feature{ pub const feature_slowShld = Feature{ .name = "slow-shld", .description = "SHLD instruction is slow", - .llvm_name = "slow-shld", .subfeatures = &[_]*const Feature { }, }; @@ -843,7 +742,6 @@ pub const feature_slowShld = Feature{ pub const feature_slowTwoMemOps = Feature{ .name = "slow-two-mem-ops", .description = "Two memory operand instructions are slow", - .llvm_name = "slow-two-mem-ops", .subfeatures = &[_]*const Feature { }, }; @@ -851,7 +749,6 @@ pub const feature_slowTwoMemOps = Feature{ pub const feature_slowUnalignedMem16 = Feature{ .name = "slow-unaligned-mem-16", .description = "Slow unaligned 16-byte memory access", - .llvm_name = "slow-unaligned-mem-16", .subfeatures = &[_]*const Feature { }, }; @@ -859,7 +756,6 @@ pub const feature_slowUnalignedMem16 = Feature{ pub const feature_slowUnalignedMem32 = Feature{ .name = "slow-unaligned-mem-32", .description = "Slow unaligned 32-byte memory access", - .llvm_name = "slow-unaligned-mem-32", .subfeatures = &[_]*const Feature { }, }; @@ -867,7 +763,6 @@ pub const feature_slowUnalignedMem32 = Feature{ pub const feature_softFloat = Feature{ .name = "soft-float", .description = "Use software floating point features", - .llvm_name = "soft-float", .subfeatures = &[_]*const Feature { }, }; @@ -875,7 +770,6 @@ pub const feature_softFloat = Feature{ pub const feature_tbm = Feature{ .name = "tbm", .description = "Enable TBM instructions", - .llvm_name = "tbm", .subfeatures = &[_]*const Feature { }, }; @@ -883,7 +777,6 @@ pub const feature_tbm = Feature{ pub const feature_useAa = Feature{ .name = "use-aa", .description = "Use alias analysis during codegen", - .llvm_name = "use-aa", .subfeatures = &[_]*const Feature { }, }; @@ -891,7 +784,6 @@ pub const feature_useAa = Feature{ pub const feature_vaes = Feature{ .name = "vaes", .description = "Promote selected AES instructions to AVX512/AVX registers", - .llvm_name = "vaes", .subfeatures = &[_]*const Feature { &feature_sse, }, @@ -900,7 +792,6 @@ pub const feature_vaes = Feature{ pub const feature_avx512vbmi = Feature{ .name = "avx512vbmi", .description = "Enable AVX-512 Vector Byte Manipulation Instructions", - .llvm_name = "avx512vbmi", .subfeatures = &[_]*const Feature { &feature_sse, }, @@ -909,7 +800,6 @@ pub const feature_avx512vbmi = Feature{ pub const feature_avx512vbmi2 = Feature{ .name = "avx512vbmi2", .description = "Enable AVX-512 further Vector Byte Manipulation Instructions", - .llvm_name = "avx512vbmi2", .subfeatures = &[_]*const Feature { &feature_sse, }, @@ -918,7 +808,6 @@ pub const feature_avx512vbmi2 = Feature{ pub const feature_avx512vl = Feature{ .name = "avx512vl", .description = "Enable AVX-512 Vector Length eXtensions", - .llvm_name = "avx512vl", .subfeatures = &[_]*const Feature { &feature_sse, }, @@ -927,7 +816,6 @@ pub const feature_avx512vl = Feature{ pub const feature_avx512vnni = Feature{ .name = "avx512vnni", .description = "Enable AVX-512 Vector Neural Network Instructions", - .llvm_name = "avx512vnni", .subfeatures = &[_]*const Feature { &feature_sse, }, @@ -936,7 +824,6 @@ pub const feature_avx512vnni = Feature{ pub const feature_avx512vp2intersect = Feature{ .name = "avx512vp2intersect", .description = "Enable AVX-512 vp2intersect", - .llvm_name = "avx512vp2intersect", .subfeatures = &[_]*const Feature { &feature_sse, }, @@ -945,7 +832,6 @@ pub const feature_avx512vp2intersect = Feature{ pub const feature_vpclmulqdq = Feature{ .name = "vpclmulqdq", .description = "Enable vpclmulqdq instructions", - .llvm_name = "vpclmulqdq", .subfeatures = &[_]*const Feature { &feature_sse, }, @@ -954,7 +840,6 @@ pub const feature_vpclmulqdq = Feature{ pub const feature_avx512vpopcntdq = Feature{ .name = "avx512vpopcntdq", .description = "Enable AVX-512 Population Count Instructions", - .llvm_name = "avx512vpopcntdq", .subfeatures = &[_]*const Feature { &feature_sse, }, @@ -963,7 +848,6 @@ pub const feature_avx512vpopcntdq = Feature{ pub const feature_waitpkg = Feature{ .name = "waitpkg", .description = "Wait and pause enhancements", - .llvm_name = "waitpkg", .subfeatures = &[_]*const Feature { }, }; @@ -971,7 +855,6 @@ pub const feature_waitpkg = Feature{ pub const feature_wbnoinvd = Feature{ .name = "wbnoinvd", .description = "Write Back No Invalidate", - .llvm_name = "wbnoinvd", .subfeatures = &[_]*const Feature { }, }; @@ -979,7 +862,6 @@ pub const feature_wbnoinvd = Feature{ pub const feature_x87 = Feature{ .name = "x87", .description = "Enable X87 float instructions", - .llvm_name = "x87", .subfeatures = &[_]*const Feature { }, }; @@ -987,7 +869,6 @@ pub const feature_x87 = Feature{ pub const feature_xop = Feature{ .name = "xop", .description = "Enable XOP instructions", - .llvm_name = "xop", .subfeatures = &[_]*const Feature { &feature_sse, }, @@ -996,7 +877,6 @@ pub const feature_xop = Feature{ pub const feature_xsave = Feature{ .name = "xsave", .description = "Support xsave instructions", - .llvm_name = "xsave", .subfeatures = &[_]*const Feature { }, }; @@ -1004,7 +884,6 @@ pub const feature_xsave = Feature{ pub const feature_xsavec = Feature{ .name = "xsavec", .description = "Support xsavec instructions", - .llvm_name = "xsavec", .subfeatures = &[_]*const Feature { }, }; @@ -1012,7 +891,6 @@ pub const feature_xsavec = Feature{ pub const feature_xsaveopt = Feature{ .name = "xsaveopt", .description = "Support xsaveopt instructions", - .llvm_name = "xsaveopt", .subfeatures = &[_]*const Feature { }, }; @@ -1020,7 +898,6 @@ pub const feature_xsaveopt = Feature{ pub const feature_xsaves = Feature{ .name = "xsaves", .description = "Support xsaves instructions", - .llvm_name = "xsaves", .subfeatures = &[_]*const Feature { }, }; @@ -1028,7 +905,6 @@ pub const feature_xsaves = Feature{ pub const feature_bitMode16 = Feature{ .name = "16bit-mode", .description = "16-bit mode (i8086)", - .llvm_name = "16bit-mode", .subfeatures = &[_]*const Feature { }, }; @@ -1036,7 +912,6 @@ pub const feature_bitMode16 = Feature{ pub const feature_bitMode32 = Feature{ .name = "32bit-mode", .description = "32-bit mode (80386)", - .llvm_name = "32bit-mode", .subfeatures = &[_]*const Feature { }, }; @@ -1044,7 +919,6 @@ pub const feature_bitMode32 = Feature{ pub const feature_bitMode64 = Feature{ .name = "64bit-mode", .description = "64-bit mode (x86_64)", - .llvm_name = "64bit-mode", .subfeatures = &[_]*const Feature { }, }; |
