authorgravatar for lgustaf1@binghamton.eduLayne Gustafson <lgustaf1@binghamton.edu> 2020-01-08 21:35:26-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-01-19 20:53:19-05:00
log03dd376b55a57cbc10269f771f72ced1eaa7aabb
tree658d37e3db712e3b35d47fbb7b3514c7b741677c
parentc61856ebcf54a55f1c17a5fd6a3b3300115b2c65
signature Commit is signed but in an unrecognized format.

Add builtin.zig support


18 files changed, 3209 insertions(+), 3152 deletions(-)

lib/std/build.zig+8-2
...@@ -1988,10 +1988,16 @@ pub const LibExeObjStep = struct {...@@ -1988,10 +1988,16 @@ pub const LibExeObjStep = struct {
1988 },1988 },
1989 .features => |features| {1989 .features => |features| {
1990 try zig_args.append("--features");1990 try zig_args.append("--features");
1991
1992 var feature_str_buffer = try std.Buffer.initSize(builder.allocator, 0);
1993 defer feature_str_buffer.deinit();
1994
1991 for (features) |feature| {1995 for (features) |feature| {
1992 try zig_args.append(feature.name);1996 try feature_str_buffer.append(feature.name);
1993 try zig_args.append(",");1997 try feature_str_buffer.append(",");
1994 }1998 }
1999
2000 try zig_args.append(feature_str_buffer.toOwnedSlice());
1995 },2001 },
1996 }2002 }
1997 }2003 }
lib/std/target/aarch64.zig+324-324
...@@ -19,7 +19,7 @@ pub const feature_am = Feature{...@@ -19,7 +19,7 @@ pub const feature_am = Feature{
19};19};
2020
21pub const feature_aggressiveFma = Feature{21pub const feature_aggressiveFma = Feature{
22 .name = "aggressive-fma",22 .name = "aggressiveFma",
23 .llvm_name = "aggressive-fma",23 .llvm_name = "aggressive-fma",
24 .description = "Enable Aggressive FMA for floating-point.",24 .description = "Enable Aggressive FMA for floating-point.",
25 .dependencies = &[_]*const Feature {25 .dependencies = &[_]*const Feature {
...@@ -35,7 +35,7 @@ pub const feature_altnzcv = Feature{...@@ -35,7 +35,7 @@ pub const feature_altnzcv = Feature{
35};35};
3636
37pub const feature_alternateSextloadCvtF32Pattern = Feature{37pub const feature_alternateSextloadCvtF32Pattern = Feature{
38 .name = "alternate-sextload-cvt-f32-pattern",38 .name = "alternateSextloadCvtF32Pattern",
39 .llvm_name = "alternate-sextload-cvt-f32-pattern",39 .llvm_name = "alternate-sextload-cvt-f32-pattern",
40 .description = "Use alternative pattern for sextload convert to f32",40 .description = "Use alternative pattern for sextload convert to f32",
41 .dependencies = &[_]*const Feature {41 .dependencies = &[_]*const Feature {
...@@ -43,7 +43,7 @@ pub const feature_alternateSextloadCvtF32Pattern = Feature{...@@ -43,7 +43,7 @@ pub const feature_alternateSextloadCvtF32Pattern = Feature{
43};43};
4444
45pub const feature_arithBccFusion = Feature{45pub const feature_arithBccFusion = Feature{
46 .name = "arith-bcc-fusion",46 .name = "arithBccFusion",
47 .llvm_name = "arith-bcc-fusion",47 .llvm_name = "arith-bcc-fusion",
48 .description = "CPU fuses arithmetic+bcc operations",48 .description = "CPU fuses arithmetic+bcc operations",
49 .dependencies = &[_]*const Feature {49 .dependencies = &[_]*const Feature {
...@@ -51,7 +51,7 @@ pub const feature_arithBccFusion = Feature{...@@ -51,7 +51,7 @@ pub const feature_arithBccFusion = Feature{
51};51};
5252
53pub const feature_arithCbzFusion = Feature{53pub const feature_arithCbzFusion = Feature{
54 .name = "arith-cbz-fusion",54 .name = "arithCbzFusion",
55 .llvm_name = "arith-cbz-fusion",55 .llvm_name = "arith-cbz-fusion",
56 .description = "CPU fuses arithmetic + cbz/cbnz operations",56 .description = "CPU fuses arithmetic + cbz/cbnz operations",
57 .dependencies = &[_]*const Feature {57 .dependencies = &[_]*const Feature {
...@@ -59,7 +59,7 @@ pub const feature_arithCbzFusion = Feature{...@@ -59,7 +59,7 @@ pub const feature_arithCbzFusion = Feature{
59};59};
6060
61pub const feature_balanceFpOps = Feature{61pub const feature_balanceFpOps = Feature{
62 .name = "balance-fp-ops",62 .name = "balanceFpOps",
63 .llvm_name = "balance-fp-ops",63 .llvm_name = "balance-fp-ops",
64 .description = "balance mix of odd and even D-registers for fp multiply(-accumulate) ops",64 .description = "balance mix of odd and even D-registers for fp multiply(-accumulate) ops",
65 .dependencies = &[_]*const Feature {65 .dependencies = &[_]*const Feature {
...@@ -107,7 +107,7 @@ pub const feature_ccdp = Feature{...@@ -107,7 +107,7 @@ pub const feature_ccdp = Feature{
107};107};
108108
109pub const feature_callSavedX8 = Feature{109pub const feature_callSavedX8 = Feature{
110 .name = "call-saved-x8",110 .name = "callSavedX8",
111 .llvm_name = "call-saved-x8",111 .llvm_name = "call-saved-x8",
112 .description = "Make X8 callee saved.",112 .description = "Make X8 callee saved.",
113 .dependencies = &[_]*const Feature {113 .dependencies = &[_]*const Feature {
...@@ -115,7 +115,7 @@ pub const feature_callSavedX8 = Feature{...@@ -115,7 +115,7 @@ pub const feature_callSavedX8 = Feature{
115};115};
116116
117pub const feature_callSavedX9 = Feature{117pub const feature_callSavedX9 = Feature{
118 .name = "call-saved-x9",118 .name = "callSavedX9",
119 .llvm_name = "call-saved-x9",119 .llvm_name = "call-saved-x9",
120 .description = "Make X9 callee saved.",120 .description = "Make X9 callee saved.",
121 .dependencies = &[_]*const Feature {121 .dependencies = &[_]*const Feature {
...@@ -123,7 +123,7 @@ pub const feature_callSavedX9 = Feature{...@@ -123,7 +123,7 @@ pub const feature_callSavedX9 = Feature{
123};123};
124124
125pub const feature_callSavedX10 = Feature{125pub const feature_callSavedX10 = Feature{
126 .name = "call-saved-x10",126 .name = "callSavedX10",
127 .llvm_name = "call-saved-x10",127 .llvm_name = "call-saved-x10",
128 .description = "Make X10 callee saved.",128 .description = "Make X10 callee saved.",
129 .dependencies = &[_]*const Feature {129 .dependencies = &[_]*const Feature {
...@@ -131,7 +131,7 @@ pub const feature_callSavedX10 = Feature{...@@ -131,7 +131,7 @@ pub const feature_callSavedX10 = Feature{
131};131};
132132
133pub const feature_callSavedX11 = Feature{133pub const feature_callSavedX11 = Feature{
134 .name = "call-saved-x11",134 .name = "callSavedX11",
135 .llvm_name = "call-saved-x11",135 .llvm_name = "call-saved-x11",
136 .description = "Make X11 callee saved.",136 .description = "Make X11 callee saved.",
137 .dependencies = &[_]*const Feature {137 .dependencies = &[_]*const Feature {
...@@ -139,7 +139,7 @@ pub const feature_callSavedX11 = Feature{...@@ -139,7 +139,7 @@ pub const feature_callSavedX11 = Feature{
139};139};
140140
141pub const feature_callSavedX12 = Feature{141pub const feature_callSavedX12 = Feature{
142 .name = "call-saved-x12",142 .name = "callSavedX12",
143 .llvm_name = "call-saved-x12",143 .llvm_name = "call-saved-x12",
144 .description = "Make X12 callee saved.",144 .description = "Make X12 callee saved.",
145 .dependencies = &[_]*const Feature {145 .dependencies = &[_]*const Feature {
...@@ -147,7 +147,7 @@ pub const feature_callSavedX12 = Feature{...@@ -147,7 +147,7 @@ pub const feature_callSavedX12 = Feature{
147};147};
148148
149pub const feature_callSavedX13 = Feature{149pub const feature_callSavedX13 = Feature{
150 .name = "call-saved-x13",150 .name = "callSavedX13",
151 .llvm_name = "call-saved-x13",151 .llvm_name = "call-saved-x13",
152 .description = "Make X13 callee saved.",152 .description = "Make X13 callee saved.",
153 .dependencies = &[_]*const Feature {153 .dependencies = &[_]*const Feature {
...@@ -155,7 +155,7 @@ pub const feature_callSavedX13 = Feature{...@@ -155,7 +155,7 @@ pub const feature_callSavedX13 = Feature{
155};155};
156156
157pub const feature_callSavedX14 = Feature{157pub const feature_callSavedX14 = Feature{
158 .name = "call-saved-x14",158 .name = "callSavedX14",
159 .llvm_name = "call-saved-x14",159 .llvm_name = "call-saved-x14",
160 .description = "Make X14 callee saved.",160 .description = "Make X14 callee saved.",
161 .dependencies = &[_]*const Feature {161 .dependencies = &[_]*const Feature {
...@@ -163,7 +163,7 @@ pub const feature_callSavedX14 = Feature{...@@ -163,7 +163,7 @@ pub const feature_callSavedX14 = Feature{
163};163};
164164
165pub const feature_callSavedX15 = Feature{165pub const feature_callSavedX15 = Feature{
166 .name = "call-saved-x15",166 .name = "callSavedX15",
167 .llvm_name = "call-saved-x15",167 .llvm_name = "call-saved-x15",
168 .description = "Make X15 callee saved.",168 .description = "Make X15 callee saved.",
169 .dependencies = &[_]*const Feature {169 .dependencies = &[_]*const Feature {
...@@ -171,7 +171,7 @@ pub const feature_callSavedX15 = Feature{...@@ -171,7 +171,7 @@ pub const feature_callSavedX15 = Feature{
171};171};
172172
173pub const feature_callSavedX18 = Feature{173pub const feature_callSavedX18 = Feature{
174 .name = "call-saved-x18",174 .name = "callSavedX18",
175 .llvm_name = "call-saved-x18",175 .llvm_name = "call-saved-x18",
176 .description = "Make X18 callee saved.",176 .description = "Make X18 callee saved.",
177 .dependencies = &[_]*const Feature {177 .dependencies = &[_]*const Feature {
...@@ -197,7 +197,7 @@ pub const feature_crypto = Feature{...@@ -197,7 +197,7 @@ pub const feature_crypto = Feature{
197};197};
198198
199pub const feature_customCheapAsMove = Feature{199pub const feature_customCheapAsMove = Feature{
200 .name = "custom-cheap-as-move",200 .name = "customCheapAsMove",
201 .llvm_name = "custom-cheap-as-move",201 .llvm_name = "custom-cheap-as-move",
202 .description = "Use custom handling of cheap instructions",202 .description = "Use custom handling of cheap instructions",
203 .dependencies = &[_]*const Feature {203 .dependencies = &[_]*const Feature {
...@@ -213,7 +213,7 @@ pub const feature_dit = Feature{...@@ -213,7 +213,7 @@ pub const feature_dit = Feature{
213};213};
214214
215pub const feature_disableLatencySchedHeuristic = Feature{215pub const feature_disableLatencySchedHeuristic = Feature{
216 .name = "disable-latency-sched-heuristic",216 .name = "disableLatencySchedHeuristic",
217 .llvm_name = "disable-latency-sched-heuristic",217 .llvm_name = "disable-latency-sched-heuristic",
218 .description = "Disable latency scheduling heuristic",218 .description = "Disable latency scheduling heuristic",
219 .dependencies = &[_]*const Feature {219 .dependencies = &[_]*const Feature {
...@@ -238,7 +238,7 @@ pub const feature_ete = Feature{...@@ -238,7 +238,7 @@ pub const feature_ete = Feature{
238};238};
239239
240pub const feature_exynosCheapAsMove = Feature{240pub const feature_exynosCheapAsMove = Feature{
241 .name = "exynos-cheap-as-move",241 .name = "exynosCheapAsMove",
242 .llvm_name = "exynos-cheap-as-move",242 .llvm_name = "exynos-cheap-as-move",
243 .description = "Use Exynos specific handling of cheap instructions",243 .description = "Use Exynos specific handling of cheap instructions",
244 .dependencies = &[_]*const Feature {244 .dependencies = &[_]*const Feature {
...@@ -264,7 +264,7 @@ pub const feature_fp16fml = Feature{...@@ -264,7 +264,7 @@ pub const feature_fp16fml = Feature{
264};264};
265265
266pub const feature_fpArmv8 = Feature{266pub const feature_fpArmv8 = Feature{
267 .name = "fp-armv8",267 .name = "fpArmv8",
268 .llvm_name = "fp-armv8",268 .llvm_name = "fp-armv8",
269 .description = "Enable ARMv8 FP",269 .description = "Enable ARMv8 FP",
270 .dependencies = &[_]*const Feature {270 .dependencies = &[_]*const Feature {
...@@ -280,7 +280,7 @@ pub const feature_fptoint = Feature{...@@ -280,7 +280,7 @@ pub const feature_fptoint = Feature{
280};280};
281281
282pub const feature_force32bitJumpTables = Feature{282pub const feature_force32bitJumpTables = Feature{
283 .name = "force-32bit-jump-tables",283 .name = "force32bitJumpTables",
284 .llvm_name = "force-32bit-jump-tables",284 .llvm_name = "force-32bit-jump-tables",
285 .description = "Force jump table entries to be 32-bits wide except at MinSize",285 .description = "Force jump table entries to be 32-bits wide except at MinSize",
286 .dependencies = &[_]*const Feature {286 .dependencies = &[_]*const Feature {
...@@ -297,7 +297,7 @@ pub const feature_fullfp16 = Feature{...@@ -297,7 +297,7 @@ pub const feature_fullfp16 = Feature{
297};297};
298298
299pub const feature_fuseAes = Feature{299pub const feature_fuseAes = Feature{
300 .name = "fuse-aes",300 .name = "fuseAes",
301 .llvm_name = "fuse-aes",301 .llvm_name = "fuse-aes",
302 .description = "CPU fuses AES crypto operations",302 .description = "CPU fuses AES crypto operations",
303 .dependencies = &[_]*const Feature {303 .dependencies = &[_]*const Feature {
...@@ -305,7 +305,7 @@ pub const feature_fuseAes = Feature{...@@ -305,7 +305,7 @@ pub const feature_fuseAes = Feature{
305};305};
306306
307pub const feature_fuseAddress = Feature{307pub const feature_fuseAddress = Feature{
308 .name = "fuse-address",308 .name = "fuseAddress",
309 .llvm_name = "fuse-address",309 .llvm_name = "fuse-address",
310 .description = "CPU fuses address generation and memory operations",310 .description = "CPU fuses address generation and memory operations",
311 .dependencies = &[_]*const Feature {311 .dependencies = &[_]*const Feature {
...@@ -313,7 +313,7 @@ pub const feature_fuseAddress = Feature{...@@ -313,7 +313,7 @@ pub const feature_fuseAddress = Feature{
313};313};
314314
315pub const feature_fuseArithLogic = Feature{315pub const feature_fuseArithLogic = Feature{
316 .name = "fuse-arith-logic",316 .name = "fuseArithLogic",
317 .llvm_name = "fuse-arith-logic",317 .llvm_name = "fuse-arith-logic",
318 .description = "CPU fuses arithmetic and logic operations",318 .description = "CPU fuses arithmetic and logic operations",
319 .dependencies = &[_]*const Feature {319 .dependencies = &[_]*const Feature {
...@@ -321,7 +321,7 @@ pub const feature_fuseArithLogic = Feature{...@@ -321,7 +321,7 @@ pub const feature_fuseArithLogic = Feature{
321};321};
322322
323pub const feature_fuseCsel = Feature{323pub const feature_fuseCsel = Feature{
324 .name = "fuse-csel",324 .name = "fuseCsel",
325 .llvm_name = "fuse-csel",325 .llvm_name = "fuse-csel",
326 .description = "CPU fuses conditional select operations",326 .description = "CPU fuses conditional select operations",
327 .dependencies = &[_]*const Feature {327 .dependencies = &[_]*const Feature {
...@@ -329,7 +329,7 @@ pub const feature_fuseCsel = Feature{...@@ -329,7 +329,7 @@ pub const feature_fuseCsel = Feature{
329};329};
330330
331pub const feature_fuseCryptoEor = Feature{331pub const feature_fuseCryptoEor = Feature{
332 .name = "fuse-crypto-eor",332 .name = "fuseCryptoEor",
333 .llvm_name = "fuse-crypto-eor",333 .llvm_name = "fuse-crypto-eor",
334 .description = "CPU fuses AES/PMULL and EOR operations",334 .description = "CPU fuses AES/PMULL and EOR operations",
335 .dependencies = &[_]*const Feature {335 .dependencies = &[_]*const Feature {
...@@ -337,7 +337,7 @@ pub const feature_fuseCryptoEor = Feature{...@@ -337,7 +337,7 @@ pub const feature_fuseCryptoEor = Feature{
337};337};
338338
339pub const feature_fuseLiterals = Feature{339pub const feature_fuseLiterals = Feature{
340 .name = "fuse-literals",340 .name = "fuseLiterals",
341 .llvm_name = "fuse-literals",341 .llvm_name = "fuse-literals",
342 .description = "CPU fuses literal generation operations",342 .description = "CPU fuses literal generation operations",
343 .dependencies = &[_]*const Feature {343 .dependencies = &[_]*const Feature {
...@@ -370,7 +370,7 @@ pub const feature_lse = Feature{...@@ -370,7 +370,7 @@ pub const feature_lse = Feature{
370};370};
371371
372pub const feature_lslFast = Feature{372pub const feature_lslFast = Feature{
373 .name = "lsl-fast",373 .name = "lslFast",
374 .llvm_name = "lsl-fast",374 .llvm_name = "lsl-fast",
375 .description = "CPU has a fastpath logical shift of up to 3 places",375 .description = "CPU has a fastpath logical shift of up to 3 places",
376 .dependencies = &[_]*const Feature {376 .dependencies = &[_]*const Feature {
...@@ -411,7 +411,7 @@ pub const feature_nv = Feature{...@@ -411,7 +411,7 @@ pub const feature_nv = Feature{
411};411};
412412
413pub const feature_noNegImmediates = Feature{413pub const feature_noNegImmediates = Feature{
414 .name = "no-neg-immediates",414 .name = "noNegImmediates",
415 .llvm_name = "no-neg-immediates",415 .llvm_name = "no-neg-immediates",
416 .description = "Convert immediates and instructions to their negated or complemented equivalent when the immediate does not fit in the encoding.",416 .description = "Convert immediates and instructions to their negated or complemented equivalent when the immediate does not fit in the encoding.",
417 .dependencies = &[_]*const Feature {417 .dependencies = &[_]*const Feature {
...@@ -435,7 +435,7 @@ pub const feature_pan = Feature{...@@ -435,7 +435,7 @@ pub const feature_pan = Feature{
435};435};
436436
437pub const feature_panRwv = Feature{437pub const feature_panRwv = Feature{
438 .name = "pan-rwv",438 .name = "panRwv",
439 .llvm_name = "pan-rwv",439 .llvm_name = "pan-rwv",
440 .description = "Enable v8.2 PAN s1e1R and s1e1W Variants",440 .description = "Enable v8.2 PAN s1e1R and s1e1W Variants",
441 .dependencies = &[_]*const Feature {441 .dependencies = &[_]*const Feature {
...@@ -452,7 +452,7 @@ pub const feature_perfmon = Feature{...@@ -452,7 +452,7 @@ pub const feature_perfmon = Feature{
452};452};
453453
454pub const feature_usePostraScheduler = Feature{454pub const feature_usePostraScheduler = Feature{
455 .name = "use-postra-scheduler",455 .name = "usePostraScheduler",
456 .llvm_name = "use-postra-scheduler",456 .llvm_name = "use-postra-scheduler",
457 .description = "Schedule again after register allocation",457 .description = "Schedule again after register allocation",
458 .dependencies = &[_]*const Feature {458 .dependencies = &[_]*const Feature {
...@@ -468,7 +468,7 @@ pub const feature_predres = Feature{...@@ -468,7 +468,7 @@ pub const feature_predres = Feature{
468};468};
469469
470pub const feature_predictableSelectExpensive = Feature{470pub const feature_predictableSelectExpensive = Feature{
471 .name = "predictable-select-expensive",471 .name = "predictableSelectExpensive",
472 .llvm_name = "predictable-select-expensive",472 .llvm_name = "predictable-select-expensive",
473 .description = "Prefer likely predicted branches over selects",473 .description = "Prefer likely predicted branches over selects",
474 .dependencies = &[_]*const Feature {474 .dependencies = &[_]*const Feature {
...@@ -509,7 +509,7 @@ pub const feature_rcpc = Feature{...@@ -509,7 +509,7 @@ pub const feature_rcpc = Feature{
509};509};
510510
511pub const feature_rcpcImmo = Feature{511pub const feature_rcpcImmo = Feature{
512 .name = "rcpc-immo",512 .name = "rcpcImmo",
513 .llvm_name = "rcpc-immo",513 .llvm_name = "rcpc-immo",
514 .description = "Enable v8.4-A RCPC instructions with Immediate Offsets",514 .description = "Enable v8.4-A RCPC instructions with Immediate Offsets",
515 .dependencies = &[_]*const Feature {515 .dependencies = &[_]*const Feature {
...@@ -534,7 +534,7 @@ pub const feature_rand = Feature{...@@ -534,7 +534,7 @@ pub const feature_rand = Feature{
534};534};
535535
536pub const feature_reserveX1 = Feature{536pub const feature_reserveX1 = Feature{
537 .name = "reserve-x1",537 .name = "reserveX1",
538 .llvm_name = "reserve-x1",538 .llvm_name = "reserve-x1",
539 .description = "Reserve X1, making it unavailable as a GPR",539 .description = "Reserve X1, making it unavailable as a GPR",
540 .dependencies = &[_]*const Feature {540 .dependencies = &[_]*const Feature {
...@@ -542,7 +542,7 @@ pub const feature_reserveX1 = Feature{...@@ -542,7 +542,7 @@ pub const feature_reserveX1 = Feature{
542};542};
543543
544pub const feature_reserveX2 = Feature{544pub const feature_reserveX2 = Feature{
545 .name = "reserve-x2",545 .name = "reserveX2",
546 .llvm_name = "reserve-x2",546 .llvm_name = "reserve-x2",
547 .description = "Reserve X2, making it unavailable as a GPR",547 .description = "Reserve X2, making it unavailable as a GPR",
548 .dependencies = &[_]*const Feature {548 .dependencies = &[_]*const Feature {
...@@ -550,7 +550,7 @@ pub const feature_reserveX2 = Feature{...@@ -550,7 +550,7 @@ pub const feature_reserveX2 = Feature{
550};550};
551551
552pub const feature_reserveX3 = Feature{552pub const feature_reserveX3 = Feature{
553 .name = "reserve-x3",553 .name = "reserveX3",
554 .llvm_name = "reserve-x3",554 .llvm_name = "reserve-x3",
555 .description = "Reserve X3, making it unavailable as a GPR",555 .description = "Reserve X3, making it unavailable as a GPR",
556 .dependencies = &[_]*const Feature {556 .dependencies = &[_]*const Feature {
...@@ -558,7 +558,7 @@ pub const feature_reserveX3 = Feature{...@@ -558,7 +558,7 @@ pub const feature_reserveX3 = Feature{
558};558};
559559
560pub const feature_reserveX4 = Feature{560pub const feature_reserveX4 = Feature{
561 .name = "reserve-x4",561 .name = "reserveX4",
562 .llvm_name = "reserve-x4",562 .llvm_name = "reserve-x4",
563 .description = "Reserve X4, making it unavailable as a GPR",563 .description = "Reserve X4, making it unavailable as a GPR",
564 .dependencies = &[_]*const Feature {564 .dependencies = &[_]*const Feature {
...@@ -566,7 +566,7 @@ pub const feature_reserveX4 = Feature{...@@ -566,7 +566,7 @@ pub const feature_reserveX4 = Feature{
566};566};
567567
568pub const feature_reserveX5 = Feature{568pub const feature_reserveX5 = Feature{
569 .name = "reserve-x5",569 .name = "reserveX5",
570 .llvm_name = "reserve-x5",570 .llvm_name = "reserve-x5",
571 .description = "Reserve X5, making it unavailable as a GPR",571 .description = "Reserve X5, making it unavailable as a GPR",
572 .dependencies = &[_]*const Feature {572 .dependencies = &[_]*const Feature {
...@@ -574,7 +574,7 @@ pub const feature_reserveX5 = Feature{...@@ -574,7 +574,7 @@ pub const feature_reserveX5 = Feature{
574};574};
575575
576pub const feature_reserveX6 = Feature{576pub const feature_reserveX6 = Feature{
577 .name = "reserve-x6",577 .name = "reserveX6",
578 .llvm_name = "reserve-x6",578 .llvm_name = "reserve-x6",
579 .description = "Reserve X6, making it unavailable as a GPR",579 .description = "Reserve X6, making it unavailable as a GPR",
580 .dependencies = &[_]*const Feature {580 .dependencies = &[_]*const Feature {
...@@ -582,7 +582,7 @@ pub const feature_reserveX6 = Feature{...@@ -582,7 +582,7 @@ pub const feature_reserveX6 = Feature{
582};582};
583583
584pub const feature_reserveX7 = Feature{584pub const feature_reserveX7 = Feature{
585 .name = "reserve-x7",585 .name = "reserveX7",
586 .llvm_name = "reserve-x7",586 .llvm_name = "reserve-x7",
587 .description = "Reserve X7, making it unavailable as a GPR",587 .description = "Reserve X7, making it unavailable as a GPR",
588 .dependencies = &[_]*const Feature {588 .dependencies = &[_]*const Feature {
...@@ -590,7 +590,7 @@ pub const feature_reserveX7 = Feature{...@@ -590,7 +590,7 @@ pub const feature_reserveX7 = Feature{
590};590};
591591
592pub const feature_reserveX9 = Feature{592pub const feature_reserveX9 = Feature{
593 .name = "reserve-x9",593 .name = "reserveX9",
594 .llvm_name = "reserve-x9",594 .llvm_name = "reserve-x9",
595 .description = "Reserve X9, making it unavailable as a GPR",595 .description = "Reserve X9, making it unavailable as a GPR",
596 .dependencies = &[_]*const Feature {596 .dependencies = &[_]*const Feature {
...@@ -598,7 +598,7 @@ pub const feature_reserveX9 = Feature{...@@ -598,7 +598,7 @@ pub const feature_reserveX9 = Feature{
598};598};
599599
600pub const feature_reserveX10 = Feature{600pub const feature_reserveX10 = Feature{
601 .name = "reserve-x10",601 .name = "reserveX10",
602 .llvm_name = "reserve-x10",602 .llvm_name = "reserve-x10",
603 .description = "Reserve X10, making it unavailable as a GPR",603 .description = "Reserve X10, making it unavailable as a GPR",
604 .dependencies = &[_]*const Feature {604 .dependencies = &[_]*const Feature {
...@@ -606,7 +606,7 @@ pub const feature_reserveX10 = Feature{...@@ -606,7 +606,7 @@ pub const feature_reserveX10 = Feature{
606};606};
607607
608pub const feature_reserveX11 = Feature{608pub const feature_reserveX11 = Feature{
609 .name = "reserve-x11",609 .name = "reserveX11",
610 .llvm_name = "reserve-x11",610 .llvm_name = "reserve-x11",
611 .description = "Reserve X11, making it unavailable as a GPR",611 .description = "Reserve X11, making it unavailable as a GPR",
612 .dependencies = &[_]*const Feature {612 .dependencies = &[_]*const Feature {
...@@ -614,7 +614,7 @@ pub const feature_reserveX11 = Feature{...@@ -614,7 +614,7 @@ pub const feature_reserveX11 = Feature{
614};614};
615615
616pub const feature_reserveX12 = Feature{616pub const feature_reserveX12 = Feature{
617 .name = "reserve-x12",617 .name = "reserveX12",
618 .llvm_name = "reserve-x12",618 .llvm_name = "reserve-x12",
619 .description = "Reserve X12, making it unavailable as a GPR",619 .description = "Reserve X12, making it unavailable as a GPR",
620 .dependencies = &[_]*const Feature {620 .dependencies = &[_]*const Feature {
...@@ -622,7 +622,7 @@ pub const feature_reserveX12 = Feature{...@@ -622,7 +622,7 @@ pub const feature_reserveX12 = Feature{
622};622};
623623
624pub const feature_reserveX13 = Feature{624pub const feature_reserveX13 = Feature{
625 .name = "reserve-x13",625 .name = "reserveX13",
626 .llvm_name = "reserve-x13",626 .llvm_name = "reserve-x13",
627 .description = "Reserve X13, making it unavailable as a GPR",627 .description = "Reserve X13, making it unavailable as a GPR",
628 .dependencies = &[_]*const Feature {628 .dependencies = &[_]*const Feature {
...@@ -630,7 +630,7 @@ pub const feature_reserveX13 = Feature{...@@ -630,7 +630,7 @@ pub const feature_reserveX13 = Feature{
630};630};
631631
632pub const feature_reserveX14 = Feature{632pub const feature_reserveX14 = Feature{
633 .name = "reserve-x14",633 .name = "reserveX14",
634 .llvm_name = "reserve-x14",634 .llvm_name = "reserve-x14",
635 .description = "Reserve X14, making it unavailable as a GPR",635 .description = "Reserve X14, making it unavailable as a GPR",
636 .dependencies = &[_]*const Feature {636 .dependencies = &[_]*const Feature {
...@@ -638,7 +638,7 @@ pub const feature_reserveX14 = Feature{...@@ -638,7 +638,7 @@ pub const feature_reserveX14 = Feature{
638};638};
639639
640pub const feature_reserveX15 = Feature{640pub const feature_reserveX15 = Feature{
641 .name = "reserve-x15",641 .name = "reserveX15",
642 .llvm_name = "reserve-x15",642 .llvm_name = "reserve-x15",
643 .description = "Reserve X15, making it unavailable as a GPR",643 .description = "Reserve X15, making it unavailable as a GPR",
644 .dependencies = &[_]*const Feature {644 .dependencies = &[_]*const Feature {
...@@ -646,7 +646,7 @@ pub const feature_reserveX15 = Feature{...@@ -646,7 +646,7 @@ pub const feature_reserveX15 = Feature{
646};646};
647647
648pub const feature_reserveX18 = Feature{648pub const feature_reserveX18 = Feature{
649 .name = "reserve-x18",649 .name = "reserveX18",
650 .llvm_name = "reserve-x18",650 .llvm_name = "reserve-x18",
651 .description = "Reserve X18, making it unavailable as a GPR",651 .description = "Reserve X18, making it unavailable as a GPR",
652 .dependencies = &[_]*const Feature {652 .dependencies = &[_]*const Feature {
...@@ -654,7 +654,7 @@ pub const feature_reserveX18 = Feature{...@@ -654,7 +654,7 @@ pub const feature_reserveX18 = Feature{
654};654};
655655
656pub const feature_reserveX20 = Feature{656pub const feature_reserveX20 = Feature{
657 .name = "reserve-x20",657 .name = "reserveX20",
658 .llvm_name = "reserve-x20",658 .llvm_name = "reserve-x20",
659 .description = "Reserve X20, making it unavailable as a GPR",659 .description = "Reserve X20, making it unavailable as a GPR",
660 .dependencies = &[_]*const Feature {660 .dependencies = &[_]*const Feature {
...@@ -662,7 +662,7 @@ pub const feature_reserveX20 = Feature{...@@ -662,7 +662,7 @@ pub const feature_reserveX20 = Feature{
662};662};
663663
664pub const feature_reserveX21 = Feature{664pub const feature_reserveX21 = Feature{
665 .name = "reserve-x21",665 .name = "reserveX21",
666 .llvm_name = "reserve-x21",666 .llvm_name = "reserve-x21",
667 .description = "Reserve X21, making it unavailable as a GPR",667 .description = "Reserve X21, making it unavailable as a GPR",
668 .dependencies = &[_]*const Feature {668 .dependencies = &[_]*const Feature {
...@@ -670,7 +670,7 @@ pub const feature_reserveX21 = Feature{...@@ -670,7 +670,7 @@ pub const feature_reserveX21 = Feature{
670};670};
671671
672pub const feature_reserveX22 = Feature{672pub const feature_reserveX22 = Feature{
673 .name = "reserve-x22",673 .name = "reserveX22",
674 .llvm_name = "reserve-x22",674 .llvm_name = "reserve-x22",
675 .description = "Reserve X22, making it unavailable as a GPR",675 .description = "Reserve X22, making it unavailable as a GPR",
676 .dependencies = &[_]*const Feature {676 .dependencies = &[_]*const Feature {
...@@ -678,7 +678,7 @@ pub const feature_reserveX22 = Feature{...@@ -678,7 +678,7 @@ pub const feature_reserveX22 = Feature{
678};678};
679679
680pub const feature_reserveX23 = Feature{680pub const feature_reserveX23 = Feature{
681 .name = "reserve-x23",681 .name = "reserveX23",
682 .llvm_name = "reserve-x23",682 .llvm_name = "reserve-x23",
683 .description = "Reserve X23, making it unavailable as a GPR",683 .description = "Reserve X23, making it unavailable as a GPR",
684 .dependencies = &[_]*const Feature {684 .dependencies = &[_]*const Feature {
...@@ -686,7 +686,7 @@ pub const feature_reserveX23 = Feature{...@@ -686,7 +686,7 @@ pub const feature_reserveX23 = Feature{
686};686};
687687
688pub const feature_reserveX24 = Feature{688pub const feature_reserveX24 = Feature{
689 .name = "reserve-x24",689 .name = "reserveX24",
690 .llvm_name = "reserve-x24",690 .llvm_name = "reserve-x24",
691 .description = "Reserve X24, making it unavailable as a GPR",691 .description = "Reserve X24, making it unavailable as a GPR",
692 .dependencies = &[_]*const Feature {692 .dependencies = &[_]*const Feature {
...@@ -694,7 +694,7 @@ pub const feature_reserveX24 = Feature{...@@ -694,7 +694,7 @@ pub const feature_reserveX24 = Feature{
694};694};
695695
696pub const feature_reserveX25 = Feature{696pub const feature_reserveX25 = Feature{
697 .name = "reserve-x25",697 .name = "reserveX25",
698 .llvm_name = "reserve-x25",698 .llvm_name = "reserve-x25",
699 .description = "Reserve X25, making it unavailable as a GPR",699 .description = "Reserve X25, making it unavailable as a GPR",
700 .dependencies = &[_]*const Feature {700 .dependencies = &[_]*const Feature {
...@@ -702,7 +702,7 @@ pub const feature_reserveX25 = Feature{...@@ -702,7 +702,7 @@ pub const feature_reserveX25 = Feature{
702};702};
703703
704pub const feature_reserveX26 = Feature{704pub const feature_reserveX26 = Feature{
705 .name = "reserve-x26",705 .name = "reserveX26",
706 .llvm_name = "reserve-x26",706 .llvm_name = "reserve-x26",
707 .description = "Reserve X26, making it unavailable as a GPR",707 .description = "Reserve X26, making it unavailable as a GPR",
708 .dependencies = &[_]*const Feature {708 .dependencies = &[_]*const Feature {
...@@ -710,7 +710,7 @@ pub const feature_reserveX26 = Feature{...@@ -710,7 +710,7 @@ pub const feature_reserveX26 = Feature{
710};710};
711711
712pub const feature_reserveX27 = Feature{712pub const feature_reserveX27 = Feature{
713 .name = "reserve-x27",713 .name = "reserveX27",
714 .llvm_name = "reserve-x27",714 .llvm_name = "reserve-x27",
715 .description = "Reserve X27, making it unavailable as a GPR",715 .description = "Reserve X27, making it unavailable as a GPR",
716 .dependencies = &[_]*const Feature {716 .dependencies = &[_]*const Feature {
...@@ -718,7 +718,7 @@ pub const feature_reserveX27 = Feature{...@@ -718,7 +718,7 @@ pub const feature_reserveX27 = Feature{
718};718};
719719
720pub const feature_reserveX28 = Feature{720pub const feature_reserveX28 = Feature{
721 .name = "reserve-x28",721 .name = "reserveX28",
722 .llvm_name = "reserve-x28",722 .llvm_name = "reserve-x28",
723 .description = "Reserve X28, making it unavailable as a GPR",723 .description = "Reserve X28, making it unavailable as a GPR",
724 .dependencies = &[_]*const Feature {724 .dependencies = &[_]*const Feature {
...@@ -802,7 +802,7 @@ pub const feature_sve2 = Feature{...@@ -802,7 +802,7 @@ pub const feature_sve2 = Feature{
802};802};
803803
804pub const feature_sve2Aes = Feature{804pub const feature_sve2Aes = Feature{
805 .name = "sve2-aes",805 .name = "sve2Aes",
806 .llvm_name = "sve2-aes",806 .llvm_name = "sve2-aes",
807 .description = "Enable AES SVE2 instructions",807 .description = "Enable AES SVE2 instructions",
808 .dependencies = &[_]*const Feature {808 .dependencies = &[_]*const Feature {
...@@ -812,7 +812,7 @@ pub const feature_sve2Aes = Feature{...@@ -812,7 +812,7 @@ pub const feature_sve2Aes = Feature{
812};812};
813813
814pub const feature_sve2Bitperm = Feature{814pub const feature_sve2Bitperm = Feature{
815 .name = "sve2-bitperm",815 .name = "sve2Bitperm",
816 .llvm_name = "sve2-bitperm",816 .llvm_name = "sve2-bitperm",
817 .description = "Enable bit permutation SVE2 instructions",817 .description = "Enable bit permutation SVE2 instructions",
818 .dependencies = &[_]*const Feature {818 .dependencies = &[_]*const Feature {
...@@ -821,7 +821,7 @@ pub const feature_sve2Bitperm = Feature{...@@ -821,7 +821,7 @@ pub const feature_sve2Bitperm = Feature{
821};821};
822822
823pub const feature_sve2Sha3 = Feature{823pub const feature_sve2Sha3 = Feature{
824 .name = "sve2-sha3",824 .name = "sve2Sha3",
825 .llvm_name = "sve2-sha3",825 .llvm_name = "sve2-sha3",
826 .description = "Enable SHA3 SVE2 instructions",826 .description = "Enable SHA3 SVE2 instructions",
827 .dependencies = &[_]*const Feature {827 .dependencies = &[_]*const Feature {
...@@ -831,7 +831,7 @@ pub const feature_sve2Sha3 = Feature{...@@ -831,7 +831,7 @@ pub const feature_sve2Sha3 = Feature{
831};831};
832832
833pub const feature_sve2Sm4 = Feature{833pub const feature_sve2Sm4 = Feature{
834 .name = "sve2-sm4",834 .name = "sve2Sm4",
835 .llvm_name = "sve2-sm4",835 .llvm_name = "sve2-sm4",
836 .description = "Enable SM4 SVE2 instructions",836 .description = "Enable SM4 SVE2 instructions",
837 .dependencies = &[_]*const Feature {837 .dependencies = &[_]*const Feature {
...@@ -841,7 +841,7 @@ pub const feature_sve2Sm4 = Feature{...@@ -841,7 +841,7 @@ pub const feature_sve2Sm4 = Feature{
841};841};
842842
843pub const feature_slowMisaligned128store = Feature{843pub const feature_slowMisaligned128store = Feature{
844 .name = "slow-misaligned-128store",844 .name = "slowMisaligned128store",
845 .llvm_name = "slow-misaligned-128store",845 .llvm_name = "slow-misaligned-128store",
846 .description = "Misaligned 128 bit stores are slow",846 .description = "Misaligned 128 bit stores are slow",
847 .dependencies = &[_]*const Feature {847 .dependencies = &[_]*const Feature {
...@@ -849,7 +849,7 @@ pub const feature_slowMisaligned128store = Feature{...@@ -849,7 +849,7 @@ pub const feature_slowMisaligned128store = Feature{
849};849};
850850
851pub const feature_slowPaired128 = Feature{851pub const feature_slowPaired128 = Feature{
852 .name = "slow-paired-128",852 .name = "slowPaired128",
853 .llvm_name = "slow-paired-128",853 .llvm_name = "slow-paired-128",
854 .description = "Paired 128 bit loads and stores are slow",854 .description = "Paired 128 bit loads and stores are slow",
855 .dependencies = &[_]*const Feature {855 .dependencies = &[_]*const Feature {
...@@ -857,7 +857,7 @@ pub const feature_slowPaired128 = Feature{...@@ -857,7 +857,7 @@ pub const feature_slowPaired128 = Feature{
857};857};
858858
859pub const feature_slowStrqroStore = Feature{859pub const feature_slowStrqroStore = Feature{
860 .name = "slow-strqro-store",860 .name = "slowStrqroStore",
861 .llvm_name = "slow-strqro-store",861 .llvm_name = "slow-strqro-store",
862 .description = "STR of Q register with register offset is slow",862 .description = "STR of Q register with register offset is slow",
863 .dependencies = &[_]*const Feature {863 .dependencies = &[_]*const Feature {
...@@ -873,7 +873,7 @@ pub const feature_specrestrict = Feature{...@@ -873,7 +873,7 @@ pub const feature_specrestrict = Feature{
873};873};
874874
875pub const feature_strictAlign = Feature{875pub const feature_strictAlign = Feature{
876 .name = "strict-align",876 .name = "strictAlign",
877 .llvm_name = "strict-align",877 .llvm_name = "strict-align",
878 .description = "Disallow all unaligned memory access",878 .description = "Disallow all unaligned memory access",
879 .dependencies = &[_]*const Feature {879 .dependencies = &[_]*const Feature {
...@@ -881,7 +881,7 @@ pub const feature_strictAlign = Feature{...@@ -881,7 +881,7 @@ pub const feature_strictAlign = Feature{
881};881};
882882
883pub const feature_tlbRmi = Feature{883pub const feature_tlbRmi = Feature{
884 .name = "tlb-rmi",884 .name = "tlbRmi",
885 .llvm_name = "tlb-rmi",885 .llvm_name = "tlb-rmi",
886 .description = "Enable v8.4-A TLB Range and Maintenance Instructions",886 .description = "Enable v8.4-A TLB Range and Maintenance Instructions",
887 .dependencies = &[_]*const Feature {887 .dependencies = &[_]*const Feature {
...@@ -897,7 +897,7 @@ pub const feature_tme = Feature{...@@ -897,7 +897,7 @@ pub const feature_tme = Feature{
897};897};
898898
899pub const feature_tracev84 = Feature{899pub const feature_tracev84 = Feature{
900 .name = "tracev8.4",900 .name = "tracev84",
901 .llvm_name = "tracev8.4",901 .llvm_name = "tracev8.4",
902 .description = "Enable v8.4-A Trace extension",902 .description = "Enable v8.4-A Trace extension",
903 .dependencies = &[_]*const Feature {903 .dependencies = &[_]*const Feature {
...@@ -913,7 +913,7 @@ pub const feature_trbe = Feature{...@@ -913,7 +913,7 @@ pub const feature_trbe = Feature{
913};913};
914914
915pub const feature_taggedGlobals = Feature{915pub const feature_taggedGlobals = Feature{
916 .name = "tagged-globals",916 .name = "taggedGlobals",
917 .llvm_name = "tagged-globals",917 .llvm_name = "tagged-globals",
918 .description = "Use an instruction sequence for taking the address of a global that allows a memory tag in the upper address bits",918 .description = "Use an instruction sequence for taking the address of a global that allows a memory tag in the upper address bits",
919 .dependencies = &[_]*const Feature {919 .dependencies = &[_]*const Feature {
...@@ -921,7 +921,7 @@ pub const feature_taggedGlobals = Feature{...@@ -921,7 +921,7 @@ pub const feature_taggedGlobals = Feature{
921};921};
922922
923pub const feature_useAa = Feature{923pub const feature_useAa = Feature{
924 .name = "use-aa",924 .name = "useAa",
925 .llvm_name = "use-aa",925 .llvm_name = "use-aa",
926 .description = "Use alias analysis during codegen",926 .description = "Use alias analysis during codegen",
927 .dependencies = &[_]*const Feature {927 .dependencies = &[_]*const Feature {
...@@ -929,7 +929,7 @@ pub const feature_useAa = Feature{...@@ -929,7 +929,7 @@ pub const feature_useAa = Feature{
929};929};
930930
931pub const feature_tpidrEl1 = Feature{931pub const feature_tpidrEl1 = Feature{
932 .name = "tpidr-el1",932 .name = "tpidrEl1",
933 .llvm_name = "tpidr-el1",933 .llvm_name = "tpidr-el1",
934 .description = "Permit use of TPIDR_EL1 for the TLS base",934 .description = "Permit use of TPIDR_EL1 for the TLS base",
935 .dependencies = &[_]*const Feature {935 .dependencies = &[_]*const Feature {
...@@ -937,7 +937,7 @@ pub const feature_tpidrEl1 = Feature{...@@ -937,7 +937,7 @@ pub const feature_tpidrEl1 = Feature{
937};937};
938938
939pub const feature_tpidrEl2 = Feature{939pub const feature_tpidrEl2 = Feature{
940 .name = "tpidr-el2",940 .name = "tpidrEl2",
941 .llvm_name = "tpidr-el2",941 .llvm_name = "tpidr-el2",
942 .description = "Permit use of TPIDR_EL2 for the TLS base",942 .description = "Permit use of TPIDR_EL2 for the TLS base",
943 .dependencies = &[_]*const Feature {943 .dependencies = &[_]*const Feature {
...@@ -945,7 +945,7 @@ pub const feature_tpidrEl2 = Feature{...@@ -945,7 +945,7 @@ pub const feature_tpidrEl2 = Feature{
945};945};
946946
947pub const feature_tpidrEl3 = Feature{947pub const feature_tpidrEl3 = Feature{
948 .name = "tpidr-el3",948 .name = "tpidrEl3",
949 .llvm_name = "tpidr-el3",949 .llvm_name = "tpidr-el3",
950 .description = "Permit use of TPIDR_EL3 for the TLS base",950 .description = "Permit use of TPIDR_EL3 for the TLS base",
951 .dependencies = &[_]*const Feature {951 .dependencies = &[_]*const Feature {
...@@ -953,7 +953,7 @@ pub const feature_tpidrEl3 = Feature{...@@ -953,7 +953,7 @@ pub const feature_tpidrEl3 = Feature{
953};953};
954954
955pub const feature_useReciprocalSquareRoot = Feature{955pub const feature_useReciprocalSquareRoot = Feature{
956 .name = "use-reciprocal-square-root",956 .name = "useReciprocalSquareRoot",
957 .llvm_name = "use-reciprocal-square-root",957 .llvm_name = "use-reciprocal-square-root",
958 .description = "Use the reciprocal square root approximation",958 .description = "Use the reciprocal square root approximation",
959 .dependencies = &[_]*const Feature {959 .dependencies = &[_]*const Feature {
...@@ -981,13 +981,13 @@ pub const feature_zcz = Feature{...@@ -981,13 +981,13 @@ pub const feature_zcz = Feature{
981 .llvm_name = "zcz",981 .llvm_name = "zcz",
982 .description = "Has zero-cycle zeroing instructions",982 .description = "Has zero-cycle zeroing instructions",
983 .dependencies = &[_]*const Feature {983 .dependencies = &[_]*const Feature {
984 &feature_zczGp,
985 &feature_zczFp,984 &feature_zczFp,
985 &feature_zczGp,
986 },986 },
987};987};
988988
989pub const feature_zczFp = Feature{989pub const feature_zczFp = Feature{
990 .name = "zcz-fp",990 .name = "zczFp",
991 .llvm_name = "zcz-fp",991 .llvm_name = "zcz-fp",
992 .description = "Has zero-cycle zeroing instructions for FP registers",992 .description = "Has zero-cycle zeroing instructions for FP registers",
993 .dependencies = &[_]*const Feature {993 .dependencies = &[_]*const Feature {
...@@ -995,7 +995,7 @@ pub const feature_zczFp = Feature{...@@ -995,7 +995,7 @@ pub const feature_zczFp = Feature{
995};995};
996996
997pub const feature_zczFpWorkaround = Feature{997pub const feature_zczFpWorkaround = Feature{
998 .name = "zcz-fp-workaround",998 .name = "zczFpWorkaround",
999 .llvm_name = "zcz-fp-workaround",999 .llvm_name = "zcz-fp-workaround",
1000 .description = "The zero-cycle floating-point zeroing instruction has a bug",1000 .description = "The zero-cycle floating-point zeroing instruction has a bug",
1001 .dependencies = &[_]*const Feature {1001 .dependencies = &[_]*const Feature {
...@@ -1003,7 +1003,7 @@ pub const feature_zczFpWorkaround = Feature{...@@ -1003,7 +1003,7 @@ pub const feature_zczFpWorkaround = Feature{
1003};1003};
10041004
1005pub const feature_zczGp = Feature{1005pub const feature_zczGp = Feature{
1006 .name = "zcz-gp",1006 .name = "zczGp",
1007 .llvm_name = "zcz-gp",1007 .llvm_name = "zcz-gp",
1008 .description = "Has zero-cycle zeroing instructions for generic registers",1008 .description = "Has zero-cycle zeroing instructions for generic registers",
1009 .dependencies = &[_]*const Feature {1009 .dependencies = &[_]*const Feature {
...@@ -1137,206 +1137,206 @@ pub const features = &[_]*const Feature {...@@ -1137,206 +1137,206 @@ pub const features = &[_]*const Feature {
1137};1137};
11381138
1139pub const cpu_appleLatest = Cpu{1139pub const cpu_appleLatest = Cpu{
1140 .name = "apple-latest",1140 .name = "appleLatest",
1141 .llvm_name = "apple-latest",1141 .llvm_name = "apple-latest",
1142 .dependencies = &[_]*const Feature {1142 .dependencies = &[_]*const Feature {
1143 &feature_fuseAes,1143 &feature_fpArmv8,
1144 &feature_zczFpWorkaround,
1145 &feature_perfmon,
1146 &feature_arithCbzFusion,
1147 &feature_alternateSextloadCvtF32Pattern,1144 &feature_alternateSextloadCvtF32Pattern,
1148 &feature_fuseCryptoEor,1145 &feature_arithBccFusion,
1149 &feature_disableLatencySchedHeuristic,
1150 &feature_zcm,
1151 &feature_zczFp,1146 &feature_zczFp,
1152 &feature_zczGp,1147 &feature_zczGp,
1153 &feature_fpArmv8,1148 &feature_zcm,
1154 &feature_arithBccFusion,1149 &feature_fuseAes,
1150 &feature_disableLatencySchedHeuristic,
1151 &feature_fuseCryptoEor,
1152 &feature_perfmon,
1153 &feature_zczFpWorkaround,
1154 &feature_arithCbzFusion,
1155 },1155 },
1156};1156};
11571157
1158pub const cpu_cortexA35 = Cpu{1158pub const cpu_cortexA35 = Cpu{
1159 .name = "cortex-a35",1159 .name = "cortexA35",
1160 .llvm_name = "cortex-a35",1160 .llvm_name = "cortex-a35",
1161 .dependencies = &[_]*const Feature {1161 .dependencies = &[_]*const Feature {
1162 &feature_fpArmv8,1162 &feature_fpArmv8,
1163 &feature_perfmon,
1164 &feature_crc,1163 &feature_crc,
1164 &feature_perfmon,
1165 },1165 },
1166};1166};
11671167
1168pub const cpu_cortexA53 = Cpu{1168pub const cpu_cortexA53 = Cpu{
1169 .name = "cortex-a53",1169 .name = "cortexA53",
1170 .llvm_name = "cortex-a53",1170 .llvm_name = "cortex-a53",
1171 .dependencies = &[_]*const Feature {1171 .dependencies = &[_]*const Feature {
1172 &feature_fuseAes,1172 &feature_fpArmv8,
1173 &feature_balanceFpOps,1173 &feature_balanceFpOps,
1174 &feature_perfmon,1174 &feature_usePostraScheduler,
1175 &feature_crc,1175 &feature_crc,
1176 &feature_customCheapAsMove,1176 &feature_customCheapAsMove,
1177 &feature_fpArmv8,
1178 &feature_usePostraScheduler,
1179 &feature_useAa,1177 &feature_useAa,
1178 &feature_fuseAes,
1179 &feature_perfmon,
1180 },1180 },
1181};1181};
11821182
1183pub const cpu_cortexA55 = Cpu{1183pub const cpu_cortexA55 = Cpu{
1184 .name = "cortex-a55",1184 .name = "cortexA55",
1185 .llvm_name = "cortex-a55",1185 .llvm_name = "cortex-a55",
1186 .dependencies = &[_]*const Feature {1186 .dependencies = &[_]*const Feature {
1187 &feature_fuseAes,
1188 &feature_fpArmv8,1187 &feature_fpArmv8,
1189 &feature_ras,
1190 &feature_dotprod,
1191 &feature_vh,
1192 &feature_crc,
1193 &feature_pan,1188 &feature_pan,
1194 &feature_ccpp,1189 &feature_vh,
1195 &feature_rdm,1190 &feature_dotprod,
1196 &feature_rcpc,1191 &feature_rcpc,
1197 &feature_uaops,
1198 &feature_perfmon,
1199 &feature_lse,1192 &feature_lse,
1193 &feature_crc,
1194 &feature_uaops,
1195 &feature_rdm,
1200 &feature_lor,1196 &feature_lor,
1197 &feature_fuseAes,
1198 &feature_ras,
1199 &feature_perfmon,
1200 &feature_ccpp,
1201 },1201 },
1202};1202};
12031203
1204pub const cpu_cortexA57 = Cpu{1204pub const cpu_cortexA57 = Cpu{
1205 .name = "cortex-a57",1205 .name = "cortexA57",
1206 .llvm_name = "cortex-a57",1206 .llvm_name = "cortex-a57",
1207 .dependencies = &[_]*const Feature {1207 .dependencies = &[_]*const Feature {
1208 &feature_fuseAes,1208 &feature_fpArmv8,
1209 &feature_balanceFpOps,1209 &feature_balanceFpOps,
1210 &feature_perfmon,
1211 &feature_crc,
1212 &feature_fuseLiterals,1210 &feature_fuseLiterals,
1213 &feature_predictableSelectExpensive,
1214 &feature_customCheapAsMove,
1215 &feature_fpArmv8,
1216 &feature_usePostraScheduler,1211 &feature_usePostraScheduler,
1212 &feature_crc,
1213 &feature_customCheapAsMove,
1214 &feature_fuseAes,
1215 &feature_perfmon,
1216 &feature_predictableSelectExpensive,
1217 },1217 },
1218};1218};
12191219
1220pub const cpu_cortexA65 = Cpu{1220pub const cpu_cortexA65 = Cpu{
1221 .name = "cortex-a65",1221 .name = "cortexA65",
1222 .llvm_name = "cortex-a65",1222 .llvm_name = "cortex-a65",
1223 .dependencies = &[_]*const Feature {1223 .dependencies = &[_]*const Feature {
1224 &feature_ras,1224 &feature_fpArmv8,
1225 &feature_dotprod,
1226 &feature_vh,
1227 &feature_crc,
1228 &feature_pan,1225 &feature_pan,
1229 &feature_ccpp,1226 &feature_vh,
1230 &feature_rdm,1227 &feature_dotprod,
1231 &feature_rcpc,1228 &feature_rcpc,
1232 &feature_uaops,
1233 &feature_ssbs,
1234 &feature_fpArmv8,
1235 &feature_lse,1229 &feature_lse,
1230 &feature_crc,
1231 &feature_uaops,
1232 &feature_rdm,
1236 &feature_lor,1233 &feature_lor,
1234 &feature_ras,
1235 &feature_ssbs,
1236 &feature_ccpp,
1237 },1237 },
1238};1238};
12391239
1240pub const cpu_cortexA65ae = Cpu{1240pub const cpu_cortexA65ae = Cpu{
1241 .name = "cortex-a65ae",1241 .name = "cortexA65ae",
1242 .llvm_name = "cortex-a65ae",1242 .llvm_name = "cortex-a65ae",
1243 .dependencies = &[_]*const Feature {1243 .dependencies = &[_]*const Feature {
1244 &feature_ras,1244 &feature_fpArmv8,
1245 &feature_dotprod,
1246 &feature_vh,
1247 &feature_crc,
1248 &feature_pan,1245 &feature_pan,
1249 &feature_ccpp,1246 &feature_vh,
1250 &feature_rdm,1247 &feature_dotprod,
1251 &feature_rcpc,1248 &feature_rcpc,
1252 &feature_uaops,
1253 &feature_ssbs,
1254 &feature_fpArmv8,
1255 &feature_lse,1249 &feature_lse,
1250 &feature_crc,
1251 &feature_uaops,
1252 &feature_rdm,
1256 &feature_lor,1253 &feature_lor,
1254 &feature_ras,
1255 &feature_ssbs,
1256 &feature_ccpp,
1257 },1257 },
1258};1258};
12591259
1260pub const cpu_cortexA72 = Cpu{1260pub const cpu_cortexA72 = Cpu{
1261 .name = "cortex-a72",1261 .name = "cortexA72",
1262 .llvm_name = "cortex-a72",1262 .llvm_name = "cortex-a72",
1263 .dependencies = &[_]*const Feature {1263 .dependencies = &[_]*const Feature {
1264 &feature_fpArmv8,1264 &feature_fpArmv8,
1265 &feature_fuseAes,
1266 &feature_perfmon,
1267 &feature_crc,1265 &feature_crc,
1266 &feature_perfmon,
1267 &feature_fuseAes,
1268 },1268 },
1269};1269};
12701270
1271pub const cpu_cortexA73 = Cpu{1271pub const cpu_cortexA73 = Cpu{
1272 .name = "cortex-a73",1272 .name = "cortexA73",
1273 .llvm_name = "cortex-a73",1273 .llvm_name = "cortex-a73",
1274 .dependencies = &[_]*const Feature {1274 .dependencies = &[_]*const Feature {
1275 &feature_fpArmv8,1275 &feature_fpArmv8,
1276 &feature_fuseAes,
1277 &feature_perfmon,
1278 &feature_crc,1276 &feature_crc,
1277 &feature_perfmon,
1278 &feature_fuseAes,
1279 },1279 },
1280};1280};
12811281
1282pub const cpu_cortexA75 = Cpu{1282pub const cpu_cortexA75 = Cpu{
1283 .name = "cortex-a75",1283 .name = "cortexA75",
1284 .llvm_name = "cortex-a75",1284 .llvm_name = "cortex-a75",
1285 .dependencies = &[_]*const Feature {1285 .dependencies = &[_]*const Feature {
1286 &feature_fuseAes,
1287 &feature_fpArmv8,1286 &feature_fpArmv8,
1288 &feature_ras,
1289 &feature_dotprod,
1290 &feature_vh,
1291 &feature_crc,
1292 &feature_pan,1287 &feature_pan,
1293 &feature_ccpp,1288 &feature_vh,
1294 &feature_rdm,1289 &feature_dotprod,
1295 &feature_rcpc,1290 &feature_rcpc,
1296 &feature_uaops,
1297 &feature_perfmon,
1298 &feature_lse,1291 &feature_lse,
1292 &feature_crc,
1293 &feature_uaops,
1294 &feature_rdm,
1299 &feature_lor,1295 &feature_lor,
1296 &feature_fuseAes,
1297 &feature_ras,
1298 &feature_perfmon,
1299 &feature_ccpp,
1300 },1300 },
1301};1301};
13021302
1303pub const cpu_cortexA76 = Cpu{1303pub const cpu_cortexA76 = Cpu{
1304 .name = "cortex-a76",1304 .name = "cortexA76",
1305 .llvm_name = "cortex-a76",1305 .llvm_name = "cortex-a76",
1306 .dependencies = &[_]*const Feature {1306 .dependencies = &[_]*const Feature {
1307 &feature_ras,1307 &feature_fpArmv8,
1308 &feature_dotprod,
1309 &feature_vh,
1310 &feature_crc,
1311 &feature_pan,1308 &feature_pan,
1312 &feature_ccpp,1309 &feature_vh,
1313 &feature_rdm,1310 &feature_dotprod,
1314 &feature_rcpc,1311 &feature_rcpc,
1315 &feature_uaops,
1316 &feature_ssbs,
1317 &feature_fpArmv8,
1318 &feature_lse,1312 &feature_lse,
1313 &feature_crc,
1314 &feature_uaops,
1315 &feature_rdm,
1319 &feature_lor,1316 &feature_lor,
1317 &feature_ras,
1318 &feature_ssbs,
1319 &feature_ccpp,
1320 },1320 },
1321};1321};
13221322
1323pub const cpu_cortexA76ae = Cpu{1323pub const cpu_cortexA76ae = Cpu{
1324 .name = "cortex-a76ae",1324 .name = "cortexA76ae",
1325 .llvm_name = "cortex-a76ae",1325 .llvm_name = "cortex-a76ae",
1326 .dependencies = &[_]*const Feature {1326 .dependencies = &[_]*const Feature {
1327 &feature_ras,1327 &feature_fpArmv8,
1328 &feature_dotprod,
1329 &feature_vh,
1330 &feature_crc,
1331 &feature_pan,1328 &feature_pan,
1332 &feature_ccpp,1329 &feature_vh,
1333 &feature_rdm,1330 &feature_dotprod,
1334 &feature_rcpc,1331 &feature_rcpc,
1335 &feature_uaops,
1336 &feature_ssbs,
1337 &feature_fpArmv8,
1338 &feature_lse,1332 &feature_lse,
1333 &feature_crc,
1334 &feature_uaops,
1335 &feature_rdm,
1339 &feature_lor,1336 &feature_lor,
1337 &feature_ras,
1338 &feature_ssbs,
1339 &feature_ccpp,
1340 },1340 },
1341};1341};
13421342
...@@ -1344,137 +1344,137 @@ pub const cpu_cyclone = Cpu{...@@ -1344,137 +1344,137 @@ pub const cpu_cyclone = Cpu{
1344 .name = "cyclone",1344 .name = "cyclone",
1345 .llvm_name = "cyclone",1345 .llvm_name = "cyclone",
1346 .dependencies = &[_]*const Feature {1346 .dependencies = &[_]*const Feature {
1347 &feature_fuseAes,1347 &feature_fpArmv8,
1348 &feature_zczFpWorkaround,
1349 &feature_perfmon,
1350 &feature_arithCbzFusion,
1351 &feature_alternateSextloadCvtF32Pattern,1348 &feature_alternateSextloadCvtF32Pattern,
1352 &feature_fuseCryptoEor,1349 &feature_arithBccFusion,
1353 &feature_disableLatencySchedHeuristic,
1354 &feature_zcm,
1355 &feature_zczFp,1350 &feature_zczFp,
1356 &feature_zczGp,1351 &feature_zczGp,
1357 &feature_fpArmv8,1352 &feature_zcm,
1358 &feature_arithBccFusion,1353 &feature_fuseAes,
1354 &feature_disableLatencySchedHeuristic,
1355 &feature_fuseCryptoEor,
1356 &feature_perfmon,
1357 &feature_zczFpWorkaround,
1358 &feature_arithCbzFusion,
1359 },1359 },
1360};1360};
13611361
1362pub const cpu_exynosM1 = Cpu{1362pub const cpu_exynosM1 = Cpu{
1363 .name = "exynos-m1",1363 .name = "exynosM1",
1364 .llvm_name = "exynos-m1",1364 .llvm_name = "exynos-m1",
1365 .dependencies = &[_]*const Feature {1365 .dependencies = &[_]*const Feature {
1366 &feature_fuseAes,1366 &feature_fpArmv8,
1367 &feature_force32bitJumpTables,1367 &feature_slowMisaligned128store,
1368 &feature_perfmon,1368 &feature_usePostraScheduler,
1369 &feature_crc,
1370 &feature_useReciprocalSquareRoot,1369 &feature_useReciprocalSquareRoot,
1371 &feature_slowPaired128,1370 &feature_crc,
1372 &feature_zczFp,1371 &feature_zczFp,
1373 &feature_slowMisaligned128store,
1374 &feature_customCheapAsMove,1372 &feature_customCheapAsMove,
1375 &feature_fpArmv8,1373 &feature_force32bitJumpTables,
1376 &feature_usePostraScheduler,1374 &feature_fuseAes,
1375 &feature_slowPaired128,
1376 &feature_perfmon,
1377 },1377 },
1378};1378};
13791379
1380pub const cpu_exynosM2 = Cpu{1380pub const cpu_exynosM2 = Cpu{
1381 .name = "exynos-m2",1381 .name = "exynosM2",
1382 .llvm_name = "exynos-m2",1382 .llvm_name = "exynos-m2",
1383 .dependencies = &[_]*const Feature {1383 .dependencies = &[_]*const Feature {
1384 &feature_fuseAes,1384 &feature_fpArmv8,
1385 &feature_force32bitJumpTables,1385 &feature_slowMisaligned128store,
1386 &feature_perfmon,1386 &feature_usePostraScheduler,
1387 &feature_crc,1387 &feature_crc,
1388 &feature_slowPaired128,
1389 &feature_zczFp,1388 &feature_zczFp,
1390 &feature_slowMisaligned128store,
1391 &feature_customCheapAsMove,1389 &feature_customCheapAsMove,
1392 &feature_fpArmv8,1390 &feature_force32bitJumpTables,
1393 &feature_usePostraScheduler,1391 &feature_fuseAes,
1392 &feature_slowPaired128,
1393 &feature_perfmon,
1394 },1394 },
1395};1395};
13961396
1397pub const cpu_exynosM3 = Cpu{1397pub const cpu_exynosM3 = Cpu{
1398 .name = "exynos-m3",1398 .name = "exynosM3",
1399 .llvm_name = "exynos-m3",1399 .llvm_name = "exynos-m3",
1400 .dependencies = &[_]*const Feature {1400 .dependencies = &[_]*const Feature {
1401 &feature_fuseAes,1401 &feature_fpArmv8,
1402 &feature_fuseAddress,
1403 &feature_fuseLiterals,
1404 &feature_usePostraScheduler,
1405 &feature_crc,
1402 &feature_lslFast,1406 &feature_lslFast,
1407 &feature_customCheapAsMove,
1408 &feature_zczFp,
1403 &feature_force32bitJumpTables,1409 &feature_force32bitJumpTables,
1404 &feature_perfmon,
1405 &feature_crc,
1406 &feature_fuseLiterals,
1407 &feature_fuseCsel,1410 &feature_fuseCsel,
1408 &feature_zczFp,1411 &feature_fuseAes,
1412 &feature_perfmon,
1409 &feature_predictableSelectExpensive,1413 &feature_predictableSelectExpensive,
1410 &feature_customCheapAsMove,
1411 &feature_fpArmv8,
1412 &feature_usePostraScheduler,
1413 &feature_fuseAddress,
1414 },1414 },
1415};1415};
14161416
1417pub const cpu_exynosM4 = Cpu{1417pub const cpu_exynosM4 = Cpu{
1418 .name = "exynos-m4",1418 .name = "exynosM4",
1419 .llvm_name = "exynos-m4",1419 .llvm_name = "exynos-m4",
1420 .dependencies = &[_]*const Feature {1420 .dependencies = &[_]*const Feature {
1421 &feature_fuseAes,1421 &feature_pan,
1422 &feature_lslFast,1422 &feature_fuseAddress,
1423 &feature_force32bitJumpTables,1423 &feature_usePostraScheduler,
1424 &feature_crc,1424 &feature_crc,
1425 &feature_rdm,1425 &feature_customCheapAsMove,
1426 &feature_fpArmv8,1426 &feature_force32bitJumpTables,
1427 &feature_lse,1427 &feature_uaops,
1428 &feature_vh,
1429 &feature_arithCbzFusion,
1430 &feature_fuseLiterals,
1431 &feature_ccpp,
1432 &feature_lor,1428 &feature_lor,
1433 &feature_arithBccFusion,1429 &feature_arithBccFusion,
1434 &feature_ras,1430 &feature_arithCbzFusion,
1435 &feature_dotprod,1431 &feature_dotprod,
1436 &feature_fuseCsel,1432 &feature_fuseArithLogic,
1437 &feature_zczFp,
1438 &feature_uaops,
1439 &feature_zczGp,1433 &feature_zczGp,
1434 &feature_rdm,
1435 &feature_fuseCsel,
1440 &feature_perfmon,1436 &feature_perfmon,
1441 &feature_usePostraScheduler,1437 &feature_fpArmv8,
1442 &feature_fuseAddress,1438 &feature_vh,
1443 &feature_fuseArithLogic,1439 &feature_fuseLiterals,
1444 &feature_customCheapAsMove,1440 &feature_lse,
1445 &feature_pan,1441 &feature_zczFp,
1442 &feature_lslFast,
1443 &feature_fuseAes,
1444 &feature_ras,
1445 &feature_ccpp,
1446 },1446 },
1447};1447};
14481448
1449pub const cpu_exynosM5 = Cpu{1449pub const cpu_exynosM5 = Cpu{
1450 .name = "exynos-m5",1450 .name = "exynosM5",
1451 .llvm_name = "exynos-m5",1451 .llvm_name = "exynos-m5",
1452 .dependencies = &[_]*const Feature {1452 .dependencies = &[_]*const Feature {
1453 &feature_fuseAes,1453 &feature_pan,
1454 &feature_lslFast,1454 &feature_fuseAddress,
1455 &feature_force32bitJumpTables,1455 &feature_usePostraScheduler,
1456 &feature_crc,1456 &feature_crc,
1457 &feature_rdm,1457 &feature_customCheapAsMove,
1458 &feature_fpArmv8,1458 &feature_force32bitJumpTables,
1459 &feature_lse,1459 &feature_uaops,
1460 &feature_vh,
1461 &feature_arithCbzFusion,
1462 &feature_fuseLiterals,
1463 &feature_ccpp,
1464 &feature_lor,1460 &feature_lor,
1465 &feature_arithBccFusion,1461 &feature_arithBccFusion,
1466 &feature_ras,1462 &feature_arithCbzFusion,
1467 &feature_dotprod,1463 &feature_dotprod,
1468 &feature_fuseCsel,1464 &feature_fuseArithLogic,
1469 &feature_zczFp,
1470 &feature_uaops,
1471 &feature_zczGp,1465 &feature_zczGp,
1466 &feature_rdm,
1467 &feature_fuseCsel,
1472 &feature_perfmon,1468 &feature_perfmon,
1473 &feature_usePostraScheduler,1469 &feature_fpArmv8,
1474 &feature_fuseAddress,1470 &feature_vh,
1475 &feature_fuseArithLogic,1471 &feature_fuseLiterals,
1476 &feature_customCheapAsMove,1472 &feature_lse,
1477 &feature_pan,1473 &feature_zczFp,
1474 &feature_lslFast,
1475 &feature_fuseAes,
1476 &feature_ras,
1477 &feature_ccpp,
1478 },1478 },
1479};1479};
14801480
...@@ -1482,17 +1482,17 @@ pub const cpu_falkor = Cpu{...@@ -1482,17 +1482,17 @@ pub const cpu_falkor = Cpu{
1482 .name = "falkor",1482 .name = "falkor",
1483 .llvm_name = "falkor",1483 .llvm_name = "falkor",
1484 .dependencies = &[_]*const Feature {1484 .dependencies = &[_]*const Feature {
1485 &feature_lslFast,1485 &feature_fpArmv8,
1486 &feature_perfmon,1486 &feature_usePostraScheduler,
1487 &feature_crc,1487 &feature_crc,
1488 &feature_lslFast,
1489 &feature_customCheapAsMove,
1488 &feature_slowStrqroStore,1490 &feature_slowStrqroStore,
1489 &feature_rdm,
1490 &feature_zczFp,1491 &feature_zczFp,
1491 &feature_predictableSelectExpensive,1492 &feature_rdm,
1492 &feature_customCheapAsMove,
1493 &feature_zczGp,1493 &feature_zczGp,
1494 &feature_fpArmv8,1494 &feature_perfmon,
1495 &feature_usePostraScheduler,1495 &feature_predictableSelectExpensive,
1496 },1496 },
1497};1497};
14981498
...@@ -1514,56 +1514,56 @@ pub const cpu_kryo = Cpu{...@@ -1514,56 +1514,56 @@ pub const cpu_kryo = Cpu{
1514 .name = "kryo",1514 .name = "kryo",
1515 .llvm_name = "kryo",1515 .llvm_name = "kryo",
1516 .dependencies = &[_]*const Feature {1516 .dependencies = &[_]*const Feature {
1517 &feature_lslFast,1517 &feature_fpArmv8,
1518 &feature_perfmon,1518 &feature_usePostraScheduler,
1519 &feature_crc,1519 &feature_crc,
1520 &feature_zczFp,1520 &feature_lslFast,
1521 &feature_predictableSelectExpensive,
1522 &feature_customCheapAsMove,1521 &feature_customCheapAsMove,
1522 &feature_zczFp,
1523 &feature_zczGp,1523 &feature_zczGp,
1524 &feature_fpArmv8,1524 &feature_perfmon,
1525 &feature_usePostraScheduler,1525 &feature_predictableSelectExpensive,
1526 },1526 },
1527};1527};
15281528
1529pub const cpu_neoverseE1 = Cpu{1529pub const cpu_neoverseE1 = Cpu{
1530 .name = "neoverse-e1",1530 .name = "neoverseE1",
1531 .llvm_name = "neoverse-e1",1531 .llvm_name = "neoverse-e1",
1532 .dependencies = &[_]*const Feature {1532 .dependencies = &[_]*const Feature {
1533 &feature_ras,1533 &feature_fpArmv8,
1534 &feature_dotprod,
1535 &feature_vh,
1536 &feature_crc,
1537 &feature_pan,1534 &feature_pan,
1538 &feature_ccpp,1535 &feature_vh,
1539 &feature_rdm,1536 &feature_dotprod,
1540 &feature_rcpc,1537 &feature_rcpc,
1541 &feature_uaops,
1542 &feature_ssbs,
1543 &feature_fpArmv8,
1544 &feature_lse,1538 &feature_lse,
1539 &feature_crc,
1540 &feature_uaops,
1541 &feature_rdm,
1545 &feature_lor,1542 &feature_lor,
1543 &feature_ras,
1544 &feature_ssbs,
1545 &feature_ccpp,
1546 },1546 },
1547};1547};
15481548
1549pub const cpu_neoverseN1 = Cpu{1549pub const cpu_neoverseN1 = Cpu{
1550 .name = "neoverse-n1",1550 .name = "neoverseN1",
1551 .llvm_name = "neoverse-n1",1551 .llvm_name = "neoverse-n1",
1552 .dependencies = &[_]*const Feature {1552 .dependencies = &[_]*const Feature {
1553 &feature_ras,1553 &feature_fpArmv8,
1554 &feature_dotprod,1554 &feature_pan,
1555 &feature_vh,1555 &feature_vh,
1556 &feature_dotprod,
1557 &feature_rcpc,
1558 &feature_lse,
1556 &feature_crc,1559 &feature_crc,
1557 &feature_pan,1560 &feature_uaops,
1558 &feature_ccpp,
1559 &feature_rdm,1561 &feature_rdm,
1560 &feature_spe,1562 &feature_spe,
1561 &feature_rcpc,
1562 &feature_uaops,
1563 &feature_ssbs,
1564 &feature_fpArmv8,
1565 &feature_lse,
1566 &feature_lor,1563 &feature_lor,
1564 &feature_ras,
1565 &feature_ssbs,
1566 &feature_ccpp,
1567 },1567 },
1568};1568};
15691569
...@@ -1571,36 +1571,36 @@ pub const cpu_saphira = Cpu{...@@ -1571,36 +1571,36 @@ pub const cpu_saphira = Cpu{
1571 .name = "saphira",1571 .name = "saphira",
1572 .llvm_name = "saphira",1572 .llvm_name = "saphira",
1573 .dependencies = &[_]*const Feature {1573 .dependencies = &[_]*const Feature {
1574 &feature_lslFast,
1575 &feature_crc,
1576 &feature_rdm,
1577 &feature_am,1574 &feature_am,
1578 &feature_mpam,1575 &feature_pan,
1579 &feature_fmi,1576 &feature_usePostraScheduler,
1580 &feature_fpArmv8,1577 &feature_tracev84,
1581 &feature_lse,1578 &feature_rcpc,
1582 &feature_dit,
1583 &feature_vh,
1584 &feature_ccpp,
1585 &feature_sel2,1579 &feature_sel2,
1586 &feature_lor,1580 &feature_crc,
1587 &feature_nv,1581 &feature_customCheapAsMove,
1588 &feature_ras,
1589 &feature_tlbRmi,1582 &feature_tlbRmi,
1583 &feature_uaops,
1584 &feature_lor,
1590 &feature_dotprod,1585 &feature_dotprod,
1586 &feature_zczGp,
1587 &feature_rdm,
1588 &feature_pa,
1589 &feature_perfmon,
1590 &feature_fpArmv8,
1591 &feature_vh,
1592 &feature_lse,
1591 &feature_zczFp,1593 &feature_zczFp,
1592 &feature_spe,1594 &feature_spe,
1593 &feature_rcpc,
1594 &feature_predictableSelectExpensive,1595 &feature_predictableSelectExpensive,
1595 &feature_uaops,1596 &feature_fmi,
1596 &feature_zczGp,1597 &feature_lslFast,
1597 &feature_perfmon,1598 &feature_mpam,
1598 &feature_usePostraScheduler,1599 &feature_dit,
1599 &feature_pa,1600 &feature_nv,
1600 &feature_ccidx,1601 &feature_ccidx,
1601 &feature_customCheapAsMove,1602 &feature_ras,
1602 &feature_pan,1603 &feature_ccpp,
1603 &feature_tracev84,
1604 },1604 },
1605};1605};
16061606
...@@ -1608,11 +1608,11 @@ pub const cpu_thunderx = Cpu{...@@ -1608,11 +1608,11 @@ pub const cpu_thunderx = Cpu{
1608 .name = "thunderx",1608 .name = "thunderx",
1609 .llvm_name = "thunderx",1609 .llvm_name = "thunderx",
1610 .dependencies = &[_]*const Feature {1610 .dependencies = &[_]*const Feature {
1611 &feature_perfmon,
1612 &feature_crc,
1613 &feature_predictableSelectExpensive,
1614 &feature_fpArmv8,1611 &feature_fpArmv8,
1615 &feature_usePostraScheduler,1612 &feature_usePostraScheduler,
1613 &feature_crc,
1614 &feature_perfmon,
1615 &feature_predictableSelectExpensive,
1616 },1616 },
1617};1617};
16181618
...@@ -1620,17 +1620,17 @@ pub const cpu_thunderx2t99 = Cpu{...@@ -1620,17 +1620,17 @@ pub const cpu_thunderx2t99 = Cpu{
1620 .name = "thunderx2t99",1620 .name = "thunderx2t99",
1621 .llvm_name = "thunderx2t99",1621 .llvm_name = "thunderx2t99",
1622 .dependencies = &[_]*const Feature {1622 .dependencies = &[_]*const Feature {
1623 &feature_aggressiveFma,1623 &feature_fpArmv8,
1624 &feature_pan,
1624 &feature_vh,1625 &feature_vh,
1626 &feature_usePostraScheduler,
1625 &feature_crc,1627 &feature_crc,
1626 &feature_pan,
1627 &feature_rdm,
1628 &feature_predictableSelectExpensive,
1629 &feature_fpArmv8,
1630 &feature_lse,1628 &feature_lse,
1629 &feature_rdm,
1631 &feature_lor,1630 &feature_lor,
1632 &feature_usePostraScheduler,
1633 &feature_arithBccFusion,1631 &feature_arithBccFusion,
1632 &feature_predictableSelectExpensive,
1633 &feature_aggressiveFma,
1634 },1634 },
1635};1635};
16361636
...@@ -1638,11 +1638,11 @@ pub const cpu_thunderxt81 = Cpu{...@@ -1638,11 +1638,11 @@ pub const cpu_thunderxt81 = Cpu{
1638 .name = "thunderxt81",1638 .name = "thunderxt81",
1639 .llvm_name = "thunderxt81",1639 .llvm_name = "thunderxt81",
1640 .dependencies = &[_]*const Feature {1640 .dependencies = &[_]*const Feature {
1641 &feature_perfmon,
1642 &feature_crc,
1643 &feature_predictableSelectExpensive,
1644 &feature_fpArmv8,1641 &feature_fpArmv8,
1645 &feature_usePostraScheduler,1642 &feature_usePostraScheduler,
1643 &feature_crc,
1644 &feature_perfmon,
1645 &feature_predictableSelectExpensive,
1646 },1646 },
1647};1647};
16481648
...@@ -1650,11 +1650,11 @@ pub const cpu_thunderxt83 = Cpu{...@@ -1650,11 +1650,11 @@ pub const cpu_thunderxt83 = Cpu{
1650 .name = "thunderxt83",1650 .name = "thunderxt83",
1651 .llvm_name = "thunderxt83",1651 .llvm_name = "thunderxt83",
1652 .dependencies = &[_]*const Feature {1652 .dependencies = &[_]*const Feature {
1653 &feature_perfmon,
1654 &feature_crc,
1655 &feature_predictableSelectExpensive,
1656 &feature_fpArmv8,1653 &feature_fpArmv8,
1657 &feature_usePostraScheduler,1654 &feature_usePostraScheduler,
1655 &feature_crc,
1656 &feature_perfmon,
1657 &feature_predictableSelectExpensive,
1658 },1658 },
1659};1659};
16601660
...@@ -1662,11 +1662,11 @@ pub const cpu_thunderxt88 = Cpu{...@@ -1662,11 +1662,11 @@ pub const cpu_thunderxt88 = Cpu{
1662 .name = "thunderxt88",1662 .name = "thunderxt88",
1663 .llvm_name = "thunderxt88",1663 .llvm_name = "thunderxt88",
1664 .dependencies = &[_]*const Feature {1664 .dependencies = &[_]*const Feature {
1665 &feature_perfmon,
1666 &feature_crc,
1667 &feature_predictableSelectExpensive,
1668 &feature_fpArmv8,1665 &feature_fpArmv8,
1669 &feature_usePostraScheduler,1666 &feature_usePostraScheduler,
1667 &feature_crc,
1668 &feature_perfmon,
1669 &feature_predictableSelectExpensive,
1670 },1670 },
1671};1671};
16721672
...@@ -1674,22 +1674,22 @@ pub const cpu_tsv110 = Cpu{...@@ -1674,22 +1674,22 @@ pub const cpu_tsv110 = Cpu{
1674 .name = "tsv110",1674 .name = "tsv110",
1675 .llvm_name = "tsv110",1675 .llvm_name = "tsv110",
1676 .dependencies = &[_]*const Feature {1676 .dependencies = &[_]*const Feature {
1677 &feature_fuseAes,
1678 &feature_fpArmv8,1677 &feature_fpArmv8,
1679 &feature_ras,1678 &feature_pan,
1680 &feature_dotprod,
1681 &feature_vh,1679 &feature_vh,
1680 &feature_usePostraScheduler,
1681 &feature_dotprod,
1682 &feature_lse,
1682 &feature_crc,1683 &feature_crc,
1683 &feature_pan,1684 &feature_customCheapAsMove,
1684 &feature_ccpp,1685 &feature_uaops,
1685 &feature_rdm,1686 &feature_rdm,
1686 &feature_spe,1687 &feature_spe,
1687 &feature_uaops,
1688 &feature_customCheapAsMove,
1689 &feature_perfmon,
1690 &feature_lse,
1691 &feature_lor,1688 &feature_lor,
1692 &feature_usePostraScheduler,1689 &feature_fuseAes,
1690 &feature_ras,
1691 &feature_perfmon,
1692 &feature_ccpp,
1693 },1693 },
1694};1694};
16951695
lib/std/target/amdgpu.zig+534-534
...@@ -2,7 +2,7 @@ const Feature = @import("std").target.Feature;...@@ -2,7 +2,7 @@ const Feature = @import("std").target.Feature;
2const Cpu = @import("std").target.Cpu;2const Cpu = @import("std").target.Cpu;
33
4pub const feature_BitInsts16 = Feature{4pub const feature_BitInsts16 = Feature{
5 .name = "16-bit-insts",5 .name = "BitInsts16",
6 .llvm_name = "16-bit-insts",6 .llvm_name = "16-bit-insts",
7 .description = "Has i16/f16 instructions",7 .description = "Has i16/f16 instructions",
8 .dependencies = &[_]*const Feature {8 .dependencies = &[_]*const Feature {
...@@ -10,7 +10,7 @@ pub const feature_BitInsts16 = Feature{...@@ -10,7 +10,7 @@ pub const feature_BitInsts16 = Feature{
10};10};
1111
12pub const feature_addNoCarryInsts = Feature{12pub const feature_addNoCarryInsts = Feature{
13 .name = "add-no-carry-insts",13 .name = "addNoCarryInsts",
14 .llvm_name = "add-no-carry-insts",14 .llvm_name = "add-no-carry-insts",
15 .description = "Have VALU add/sub instructions without carry out",15 .description = "Have VALU add/sub instructions without carry out",
16 .dependencies = &[_]*const Feature {16 .dependencies = &[_]*const Feature {
...@@ -18,7 +18,7 @@ pub const feature_addNoCarryInsts = Feature{...@@ -18,7 +18,7 @@ pub const feature_addNoCarryInsts = Feature{
18};18};
1919
20pub const feature_apertureRegs = Feature{20pub const feature_apertureRegs = Feature{
21 .name = "aperture-regs",21 .name = "apertureRegs",
22 .llvm_name = "aperture-regs",22 .llvm_name = "aperture-regs",
23 .description = "Has Memory Aperture Base and Size Registers",23 .description = "Has Memory Aperture Base and Size Registers",
24 .dependencies = &[_]*const Feature {24 .dependencies = &[_]*const Feature {
...@@ -26,7 +26,7 @@ pub const feature_apertureRegs = Feature{...@@ -26,7 +26,7 @@ pub const feature_apertureRegs = Feature{
26};26};
2727
28pub const feature_atomicFaddInsts = Feature{28pub const feature_atomicFaddInsts = Feature{
29 .name = "atomic-fadd-insts",29 .name = "atomicFaddInsts",
30 .llvm_name = "atomic-fadd-insts",30 .llvm_name = "atomic-fadd-insts",
31 .description = "Has buffer_atomic_add_f32, buffer_atomic_pk_add_f16, global_atomic_add_f32, global_atomic_pk_add_f16 instructions",31 .description = "Has buffer_atomic_add_f32, buffer_atomic_pk_add_f16, global_atomic_add_f32, global_atomic_pk_add_f16 instructions",
32 .dependencies = &[_]*const Feature {32 .dependencies = &[_]*const Feature {
...@@ -34,7 +34,7 @@ pub const feature_atomicFaddInsts = Feature{...@@ -34,7 +34,7 @@ pub const feature_atomicFaddInsts = Feature{
34};34};
3535
36pub const feature_autoWaitcntBeforeBarrier = Feature{36pub const feature_autoWaitcntBeforeBarrier = Feature{
37 .name = "auto-waitcnt-before-barrier",37 .name = "autoWaitcntBeforeBarrier",
38 .llvm_name = "auto-waitcnt-before-barrier",38 .llvm_name = "auto-waitcnt-before-barrier",
39 .description = "Hardware automatically inserts waitcnt before barrier",39 .description = "Hardware automatically inserts waitcnt before barrier",
40 .dependencies = &[_]*const Feature {40 .dependencies = &[_]*const Feature {
...@@ -42,7 +42,7 @@ pub const feature_autoWaitcntBeforeBarrier = Feature{...@@ -42,7 +42,7 @@ pub const feature_autoWaitcntBeforeBarrier = Feature{
42};42};
4343
44pub const feature_ciInsts = Feature{44pub const feature_ciInsts = Feature{
45 .name = "ci-insts",45 .name = "ciInsts",
46 .llvm_name = "ci-insts",46 .llvm_name = "ci-insts",
47 .description = "Additional instructions for CI+",47 .description = "Additional instructions for CI+",
48 .dependencies = &[_]*const Feature {48 .dependencies = &[_]*const Feature {
...@@ -50,7 +50,7 @@ pub const feature_ciInsts = Feature{...@@ -50,7 +50,7 @@ pub const feature_ciInsts = Feature{
50};50};
5151
52pub const feature_codeObjectV3 = Feature{52pub const feature_codeObjectV3 = Feature{
53 .name = "code-object-v3",53 .name = "codeObjectV3",
54 .llvm_name = "code-object-v3",54 .llvm_name = "code-object-v3",
55 .description = "Generate code object version 3",55 .description = "Generate code object version 3",
56 .dependencies = &[_]*const Feature {56 .dependencies = &[_]*const Feature {
...@@ -66,7 +66,7 @@ pub const feature_cumode = Feature{...@@ -66,7 +66,7 @@ pub const feature_cumode = Feature{
66};66};
6767
68pub const feature_dlInsts = Feature{68pub const feature_dlInsts = Feature{
69 .name = "dl-insts",69 .name = "dlInsts",
70 .llvm_name = "dl-insts",70 .llvm_name = "dl-insts",
71 .description = "Has v_fmac_f32 and v_xnor_b32 instructions",71 .description = "Has v_fmac_f32 and v_xnor_b32 instructions",
72 .dependencies = &[_]*const Feature {72 .dependencies = &[_]*const Feature {
...@@ -90,7 +90,7 @@ pub const feature_dpp8 = Feature{...@@ -90,7 +90,7 @@ pub const feature_dpp8 = Feature{
90};90};
9191
92pub const feature_noSramEccSupport = Feature{92pub const feature_noSramEccSupport = Feature{
93 .name = "no-sram-ecc-support",93 .name = "noSramEccSupport",
94 .llvm_name = "no-sram-ecc-support",94 .llvm_name = "no-sram-ecc-support",
95 .description = "Hardware does not support SRAM ECC",95 .description = "Hardware does not support SRAM ECC",
96 .dependencies = &[_]*const Feature {96 .dependencies = &[_]*const Feature {
...@@ -98,7 +98,7 @@ pub const feature_noSramEccSupport = Feature{...@@ -98,7 +98,7 @@ pub const feature_noSramEccSupport = Feature{
98};98};
9999
100pub const feature_noXnackSupport = Feature{100pub const feature_noXnackSupport = Feature{
101 .name = "no-xnack-support",101 .name = "noXnackSupport",
102 .llvm_name = "no-xnack-support",102 .llvm_name = "no-xnack-support",
103 .description = "Hardware does not support XNACK",103 .description = "Hardware does not support XNACK",
104 .dependencies = &[_]*const Feature {104 .dependencies = &[_]*const Feature {
...@@ -106,7 +106,7 @@ pub const feature_noXnackSupport = Feature{...@@ -106,7 +106,7 @@ pub const feature_noXnackSupport = Feature{
106};106};
107107
108pub const feature_dot1Insts = Feature{108pub const feature_dot1Insts = Feature{
109 .name = "dot1-insts",109 .name = "dot1Insts",
110 .llvm_name = "dot1-insts",110 .llvm_name = "dot1-insts",
111 .description = "Has v_dot4_i32_i8 and v_dot8_i32_i4 instructions",111 .description = "Has v_dot4_i32_i8 and v_dot8_i32_i4 instructions",
112 .dependencies = &[_]*const Feature {112 .dependencies = &[_]*const Feature {
...@@ -114,7 +114,7 @@ pub const feature_dot1Insts = Feature{...@@ -114,7 +114,7 @@ pub const feature_dot1Insts = Feature{
114};114};
115115
116pub const feature_dot2Insts = Feature{116pub const feature_dot2Insts = Feature{
117 .name = "dot2-insts",117 .name = "dot2Insts",
118 .llvm_name = "dot2-insts",118 .llvm_name = "dot2-insts",
119 .description = "Has v_dot2_f32_f16, v_dot2_i32_i16, v_dot2_u32_u16, v_dot4_u32_u8, v_dot8_u32_u4 instructions",119 .description = "Has v_dot2_f32_f16, v_dot2_i32_i16, v_dot2_u32_u16, v_dot4_u32_u8, v_dot8_u32_u4 instructions",
120 .dependencies = &[_]*const Feature {120 .dependencies = &[_]*const Feature {
...@@ -122,7 +122,7 @@ pub const feature_dot2Insts = Feature{...@@ -122,7 +122,7 @@ pub const feature_dot2Insts = Feature{
122};122};
123123
124pub const feature_dot3Insts = Feature{124pub const feature_dot3Insts = Feature{
125 .name = "dot3-insts",125 .name = "dot3Insts",
126 .llvm_name = "dot3-insts",126 .llvm_name = "dot3-insts",
127 .description = "Has v_dot8c_i32_i4 instruction",127 .description = "Has v_dot8c_i32_i4 instruction",
128 .dependencies = &[_]*const Feature {128 .dependencies = &[_]*const Feature {
...@@ -130,7 +130,7 @@ pub const feature_dot3Insts = Feature{...@@ -130,7 +130,7 @@ pub const feature_dot3Insts = Feature{
130};130};
131131
132pub const feature_dot4Insts = Feature{132pub const feature_dot4Insts = Feature{
133 .name = "dot4-insts",133 .name = "dot4Insts",
134 .llvm_name = "dot4-insts",134 .llvm_name = "dot4-insts",
135 .description = "Has v_dot2c_i32_i16 instruction",135 .description = "Has v_dot2c_i32_i16 instruction",
136 .dependencies = &[_]*const Feature {136 .dependencies = &[_]*const Feature {
...@@ -138,7 +138,7 @@ pub const feature_dot4Insts = Feature{...@@ -138,7 +138,7 @@ pub const feature_dot4Insts = Feature{
138};138};
139139
140pub const feature_dot5Insts = Feature{140pub const feature_dot5Insts = Feature{
141 .name = "dot5-insts",141 .name = "dot5Insts",
142 .llvm_name = "dot5-insts",142 .llvm_name = "dot5-insts",
143 .description = "Has v_dot2c_f32_f16 instruction",143 .description = "Has v_dot2c_f32_f16 instruction",
144 .dependencies = &[_]*const Feature {144 .dependencies = &[_]*const Feature {
...@@ -146,7 +146,7 @@ pub const feature_dot5Insts = Feature{...@@ -146,7 +146,7 @@ pub const feature_dot5Insts = Feature{
146};146};
147147
148pub const feature_dot6Insts = Feature{148pub const feature_dot6Insts = Feature{
149 .name = "dot6-insts",149 .name = "dot6Insts",
150 .llvm_name = "dot6-insts",150 .llvm_name = "dot6-insts",
151 .description = "Has v_dot4c_i32_i8 instruction",151 .description = "Has v_dot4c_i32_i8 instruction",
152 .dependencies = &[_]*const Feature {152 .dependencies = &[_]*const Feature {
...@@ -170,7 +170,7 @@ pub const feature_dumpcode = Feature{...@@ -170,7 +170,7 @@ pub const feature_dumpcode = Feature{
170};170};
171171
172pub const feature_enableDs128 = Feature{172pub const feature_enableDs128 = Feature{
173 .name = "enable-ds128",173 .name = "enableDs128",
174 .llvm_name = "enable-ds128",174 .llvm_name = "enable-ds128",
175 .description = "Use ds_{read|write}_b128",175 .description = "Use ds_{read|write}_b128",
176 .dependencies = &[_]*const Feature {176 .dependencies = &[_]*const Feature {
...@@ -178,7 +178,7 @@ pub const feature_enableDs128 = Feature{...@@ -178,7 +178,7 @@ pub const feature_enableDs128 = Feature{
178};178};
179179
180pub const feature_loadStoreOpt = Feature{180pub const feature_loadStoreOpt = Feature{
181 .name = "load-store-opt",181 .name = "loadStoreOpt",
182 .llvm_name = "load-store-opt",182 .llvm_name = "load-store-opt",
183 .description = "Enable SI load/store optimizer pass",183 .description = "Enable SI load/store optimizer pass",
184 .dependencies = &[_]*const Feature {184 .dependencies = &[_]*const Feature {
...@@ -186,7 +186,7 @@ pub const feature_loadStoreOpt = Feature{...@@ -186,7 +186,7 @@ pub const feature_loadStoreOpt = Feature{
186};186};
187187
188pub const feature_enablePrtStrictNull = Feature{188pub const feature_enablePrtStrictNull = Feature{
189 .name = "enable-prt-strict-null",189 .name = "enablePrtStrictNull",
190 .llvm_name = "enable-prt-strict-null",190 .llvm_name = "enable-prt-strict-null",
191 .description = "Enable zeroing of result registers for sparse texture fetches",191 .description = "Enable zeroing of result registers for sparse texture fetches",
192 .dependencies = &[_]*const Feature {192 .dependencies = &[_]*const Feature {
...@@ -194,7 +194,7 @@ pub const feature_enablePrtStrictNull = Feature{...@@ -194,7 +194,7 @@ pub const feature_enablePrtStrictNull = Feature{
194};194};
195195
196pub const feature_siScheduler = Feature{196pub const feature_siScheduler = Feature{
197 .name = "si-scheduler",197 .name = "siScheduler",
198 .llvm_name = "si-scheduler",198 .llvm_name = "si-scheduler",
199 .description = "Enable SI Machine Scheduler",199 .description = "Enable SI Machine Scheduler",
200 .dependencies = &[_]*const Feature {200 .dependencies = &[_]*const Feature {
...@@ -202,7 +202,7 @@ pub const feature_siScheduler = Feature{...@@ -202,7 +202,7 @@ pub const feature_siScheduler = Feature{
202};202};
203203
204pub const feature_unsafeDsOffsetFolding = Feature{204pub const feature_unsafeDsOffsetFolding = Feature{
205 .name = "unsafe-ds-offset-folding",205 .name = "unsafeDsOffsetFolding",
206 .llvm_name = "unsafe-ds-offset-folding",206 .llvm_name = "unsafe-ds-offset-folding",
207 .description = "Force using DS instruction immediate offsets on SI",207 .description = "Force using DS instruction immediate offsets on SI",
208 .dependencies = &[_]*const Feature {208 .dependencies = &[_]*const Feature {
...@@ -218,7 +218,7 @@ pub const feature_fmaf = Feature{...@@ -218,7 +218,7 @@ pub const feature_fmaf = Feature{
218};218};
219219
220pub const feature_fp16Denormals = Feature{220pub const feature_fp16Denormals = Feature{
221 .name = "fp16-denormals",221 .name = "fp16Denormals",
222 .llvm_name = "fp16-denormals",222 .llvm_name = "fp16-denormals",
223 .description = "Enable half precision denormal handling",223 .description = "Enable half precision denormal handling",
224 .dependencies = &[_]*const Feature {224 .dependencies = &[_]*const Feature {
...@@ -227,7 +227,7 @@ pub const feature_fp16Denormals = Feature{...@@ -227,7 +227,7 @@ pub const feature_fp16Denormals = Feature{
227};227};
228228
229pub const feature_fp32Denormals = Feature{229pub const feature_fp32Denormals = Feature{
230 .name = "fp32-denormals",230 .name = "fp32Denormals",
231 .llvm_name = "fp32-denormals",231 .llvm_name = "fp32-denormals",
232 .description = "Enable single precision denormal handling",232 .description = "Enable single precision denormal handling",
233 .dependencies = &[_]*const Feature {233 .dependencies = &[_]*const Feature {
...@@ -243,7 +243,7 @@ pub const feature_fp64 = Feature{...@@ -243,7 +243,7 @@ pub const feature_fp64 = Feature{
243};243};
244244
245pub const feature_fp64Denormals = Feature{245pub const feature_fp64Denormals = Feature{
246 .name = "fp64-denormals",246 .name = "fp64Denormals",
247 .llvm_name = "fp64-denormals",247 .llvm_name = "fp64-denormals",
248 .description = "Enable double and half precision denormal handling",248 .description = "Enable double and half precision denormal handling",
249 .dependencies = &[_]*const Feature {249 .dependencies = &[_]*const Feature {
...@@ -252,7 +252,7 @@ pub const feature_fp64Denormals = Feature{...@@ -252,7 +252,7 @@ pub const feature_fp64Denormals = Feature{
252};252};
253253
254pub const feature_fp64Fp16Denormals = Feature{254pub const feature_fp64Fp16Denormals = Feature{
255 .name = "fp64-fp16-denormals",255 .name = "fp64Fp16Denormals",
256 .llvm_name = "fp64-fp16-denormals",256 .llvm_name = "fp64-fp16-denormals",
257 .description = "Enable double and half precision denormal handling",257 .description = "Enable double and half precision denormal handling",
258 .dependencies = &[_]*const Feature {258 .dependencies = &[_]*const Feature {
...@@ -261,7 +261,7 @@ pub const feature_fp64Fp16Denormals = Feature{...@@ -261,7 +261,7 @@ pub const feature_fp64Fp16Denormals = Feature{
261};261};
262262
263pub const feature_fpExceptions = Feature{263pub const feature_fpExceptions = Feature{
264 .name = "fp-exceptions",264 .name = "fpExceptions",
265 .llvm_name = "fp-exceptions",265 .llvm_name = "fp-exceptions",
266 .description = "Enable floating point exceptions",266 .description = "Enable floating point exceptions",
267 .dependencies = &[_]*const Feature {267 .dependencies = &[_]*const Feature {
...@@ -269,7 +269,7 @@ pub const feature_fpExceptions = Feature{...@@ -269,7 +269,7 @@ pub const feature_fpExceptions = Feature{
269};269};
270270
271pub const feature_fastFmaf = Feature{271pub const feature_fastFmaf = Feature{
272 .name = "fast-fmaf",272 .name = "fastFmaf",
273 .llvm_name = "fast-fmaf",273 .llvm_name = "fast-fmaf",
274 .description = "Assuming f32 fma is at least as fast as mul + add",274 .description = "Assuming f32 fma is at least as fast as mul + add",
275 .dependencies = &[_]*const Feature {275 .dependencies = &[_]*const Feature {
...@@ -277,7 +277,7 @@ pub const feature_fastFmaf = Feature{...@@ -277,7 +277,7 @@ pub const feature_fastFmaf = Feature{
277};277};
278278
279pub const feature_flatAddressSpace = Feature{279pub const feature_flatAddressSpace = Feature{
280 .name = "flat-address-space",280 .name = "flatAddressSpace",
281 .llvm_name = "flat-address-space",281 .llvm_name = "flat-address-space",
282 .description = "Support flat address space",282 .description = "Support flat address space",
283 .dependencies = &[_]*const Feature {283 .dependencies = &[_]*const Feature {
...@@ -285,7 +285,7 @@ pub const feature_flatAddressSpace = Feature{...@@ -285,7 +285,7 @@ pub const feature_flatAddressSpace = Feature{
285};285};
286286
287pub const feature_flatForGlobal = Feature{287pub const feature_flatForGlobal = Feature{
288 .name = "flat-for-global",288 .name = "flatForGlobal",
289 .llvm_name = "flat-for-global",289 .llvm_name = "flat-for-global",
290 .description = "Force to generate flat instruction for global",290 .description = "Force to generate flat instruction for global",
291 .dependencies = &[_]*const Feature {291 .dependencies = &[_]*const Feature {
...@@ -293,7 +293,7 @@ pub const feature_flatForGlobal = Feature{...@@ -293,7 +293,7 @@ pub const feature_flatForGlobal = Feature{
293};293};
294294
295pub const feature_flatGlobalInsts = Feature{295pub const feature_flatGlobalInsts = Feature{
296 .name = "flat-global-insts",296 .name = "flatGlobalInsts",
297 .llvm_name = "flat-global-insts",297 .llvm_name = "flat-global-insts",
298 .description = "Have global_* flat memory instructions",298 .description = "Have global_* flat memory instructions",
299 .dependencies = &[_]*const Feature {299 .dependencies = &[_]*const Feature {
...@@ -301,7 +301,7 @@ pub const feature_flatGlobalInsts = Feature{...@@ -301,7 +301,7 @@ pub const feature_flatGlobalInsts = Feature{
301};301};
302302
303pub const feature_flatInstOffsets = Feature{303pub const feature_flatInstOffsets = Feature{
304 .name = "flat-inst-offsets",304 .name = "flatInstOffsets",
305 .llvm_name = "flat-inst-offsets",305 .llvm_name = "flat-inst-offsets",
306 .description = "Flat instructions have immediate offset addressing mode",306 .description = "Flat instructions have immediate offset addressing mode",
307 .dependencies = &[_]*const Feature {307 .dependencies = &[_]*const Feature {
...@@ -309,7 +309,7 @@ pub const feature_flatInstOffsets = Feature{...@@ -309,7 +309,7 @@ pub const feature_flatInstOffsets = Feature{
309};309};
310310
311pub const feature_flatScratchInsts = Feature{311pub const feature_flatScratchInsts = Feature{
312 .name = "flat-scratch-insts",312 .name = "flatScratchInsts",
313 .llvm_name = "flat-scratch-insts",313 .llvm_name = "flat-scratch-insts",
314 .description = "Have scratch_* flat memory instructions",314 .description = "Have scratch_* flat memory instructions",
315 .dependencies = &[_]*const Feature {315 .dependencies = &[_]*const Feature {
...@@ -317,7 +317,7 @@ pub const feature_flatScratchInsts = Feature{...@@ -317,7 +317,7 @@ pub const feature_flatScratchInsts = Feature{
317};317};
318318
319pub const feature_flatSegmentOffsetBug = Feature{319pub const feature_flatSegmentOffsetBug = Feature{
320 .name = "flat-segment-offset-bug",320 .name = "flatSegmentOffsetBug",
321 .llvm_name = "flat-segment-offset-bug",321 .llvm_name = "flat-segment-offset-bug",
322 .description = "GFX10 bug, inst_offset ignored in flat segment",322 .description = "GFX10 bug, inst_offset ignored in flat segment",
323 .dependencies = &[_]*const Feature {323 .dependencies = &[_]*const Feature {
...@@ -325,7 +325,7 @@ pub const feature_flatSegmentOffsetBug = Feature{...@@ -325,7 +325,7 @@ pub const feature_flatSegmentOffsetBug = Feature{
325};325};
326326
327pub const feature_fmaMixInsts = Feature{327pub const feature_fmaMixInsts = Feature{
328 .name = "fma-mix-insts",328 .name = "fmaMixInsts",
329 .llvm_name = "fma-mix-insts",329 .llvm_name = "fma-mix-insts",
330 .description = "Has v_fma_mix_f32, v_fma_mixlo_f16, v_fma_mixhi_f16 instructions",330 .description = "Has v_fma_mix_f32, v_fma_mixlo_f16, v_fma_mixhi_f16 instructions",
331 .dependencies = &[_]*const Feature {331 .dependencies = &[_]*const Feature {
...@@ -333,7 +333,7 @@ pub const feature_fmaMixInsts = Feature{...@@ -333,7 +333,7 @@ pub const feature_fmaMixInsts = Feature{
333};333};
334334
335pub const feature_gcn3Encoding = Feature{335pub const feature_gcn3Encoding = Feature{
336 .name = "gcn3-encoding",336 .name = "gcn3Encoding",
337 .llvm_name = "gcn3-encoding",337 .llvm_name = "gcn3-encoding",
338 .description = "Encoding format for VI",338 .description = "Encoding format for VI",
339 .dependencies = &[_]*const Feature {339 .dependencies = &[_]*const Feature {
...@@ -341,7 +341,7 @@ pub const feature_gcn3Encoding = Feature{...@@ -341,7 +341,7 @@ pub const feature_gcn3Encoding = Feature{
341};341};
342342
343pub const feature_gfx7Gfx8Gfx9Insts = Feature{343pub const feature_gfx7Gfx8Gfx9Insts = Feature{
344 .name = "gfx7-gfx8-gfx9-insts",344 .name = "gfx7Gfx8Gfx9Insts",
345 .llvm_name = "gfx7-gfx8-gfx9-insts",345 .llvm_name = "gfx7-gfx8-gfx9-insts",
346 .description = "Instructions shared in GFX7, GFX8, GFX9",346 .description = "Instructions shared in GFX7, GFX8, GFX9",
347 .dependencies = &[_]*const Feature {347 .dependencies = &[_]*const Feature {
...@@ -349,7 +349,7 @@ pub const feature_gfx7Gfx8Gfx9Insts = Feature{...@@ -349,7 +349,7 @@ pub const feature_gfx7Gfx8Gfx9Insts = Feature{
349};349};
350350
351pub const feature_gfx8Insts = Feature{351pub const feature_gfx8Insts = Feature{
352 .name = "gfx8-insts",352 .name = "gfx8Insts",
353 .llvm_name = "gfx8-insts",353 .llvm_name = "gfx8-insts",
354 .description = "Additional instructions for GFX8+",354 .description = "Additional instructions for GFX8+",
355 .dependencies = &[_]*const Feature {355 .dependencies = &[_]*const Feature {
...@@ -357,7 +357,7 @@ pub const feature_gfx8Insts = Feature{...@@ -357,7 +357,7 @@ pub const feature_gfx8Insts = Feature{
357};357};
358358
359pub const feature_gfx9Insts = Feature{359pub const feature_gfx9Insts = Feature{
360 .name = "gfx9-insts",360 .name = "gfx9Insts",
361 .llvm_name = "gfx9-insts",361 .llvm_name = "gfx9-insts",
362 .description = "Additional instructions for GFX9+",362 .description = "Additional instructions for GFX9+",
363 .dependencies = &[_]*const Feature {363 .dependencies = &[_]*const Feature {
...@@ -365,7 +365,7 @@ pub const feature_gfx9Insts = Feature{...@@ -365,7 +365,7 @@ pub const feature_gfx9Insts = Feature{
365};365};
366366
367pub const feature_gfx10Insts = Feature{367pub const feature_gfx10Insts = Feature{
368 .name = "gfx10-insts",368 .name = "gfx10Insts",
369 .llvm_name = "gfx10-insts",369 .llvm_name = "gfx10-insts",
370 .description = "Additional instructions for GFX10+",370 .description = "Additional instructions for GFX10+",
371 .dependencies = &[_]*const Feature {371 .dependencies = &[_]*const Feature {
...@@ -373,7 +373,7 @@ pub const feature_gfx10Insts = Feature{...@@ -373,7 +373,7 @@ pub const feature_gfx10Insts = Feature{
373};373};
374374
375pub const feature_instFwdPrefetchBug = Feature{375pub const feature_instFwdPrefetchBug = Feature{
376 .name = "inst-fwd-prefetch-bug",376 .name = "instFwdPrefetchBug",
377 .llvm_name = "inst-fwd-prefetch-bug",377 .llvm_name = "inst-fwd-prefetch-bug",
378 .description = "S_INST_PREFETCH instruction causes shader to hang",378 .description = "S_INST_PREFETCH instruction causes shader to hang",
379 .dependencies = &[_]*const Feature {379 .dependencies = &[_]*const Feature {
...@@ -381,7 +381,7 @@ pub const feature_instFwdPrefetchBug = Feature{...@@ -381,7 +381,7 @@ pub const feature_instFwdPrefetchBug = Feature{
381};381};
382382
383pub const feature_intClampInsts = Feature{383pub const feature_intClampInsts = Feature{
384 .name = "int-clamp-insts",384 .name = "intClampInsts",
385 .llvm_name = "int-clamp-insts",385 .llvm_name = "int-clamp-insts",
386 .description = "Support clamp for integer destination",386 .description = "Support clamp for integer destination",
387 .dependencies = &[_]*const Feature {387 .dependencies = &[_]*const Feature {
...@@ -389,7 +389,7 @@ pub const feature_intClampInsts = Feature{...@@ -389,7 +389,7 @@ pub const feature_intClampInsts = Feature{
389};389};
390390
391pub const feature_inv2piInlineImm = Feature{391pub const feature_inv2piInlineImm = Feature{
392 .name = "inv-2pi-inline-imm",392 .name = "inv2piInlineImm",
393 .llvm_name = "inv-2pi-inline-imm",393 .llvm_name = "inv-2pi-inline-imm",
394 .description = "Has 1 / (2 * pi) as inline immediate",394 .description = "Has 1 / (2 * pi) as inline immediate",
395 .dependencies = &[_]*const Feature {395 .dependencies = &[_]*const Feature {
...@@ -413,7 +413,7 @@ pub const feature_ldsbankcount32 = Feature{...@@ -413,7 +413,7 @@ pub const feature_ldsbankcount32 = Feature{
413};413};
414414
415pub const feature_ldsBranchVmemWarHazard = Feature{415pub const feature_ldsBranchVmemWarHazard = Feature{
416 .name = "lds-branch-vmem-war-hazard",416 .name = "ldsBranchVmemWarHazard",
417 .llvm_name = "lds-branch-vmem-war-hazard",417 .llvm_name = "lds-branch-vmem-war-hazard",
418 .description = "Switching between LDS and VMEM-tex not waiting VM_VSRC=0",418 .description = "Switching between LDS and VMEM-tex not waiting VM_VSRC=0",
419 .dependencies = &[_]*const Feature {419 .dependencies = &[_]*const Feature {
...@@ -421,7 +421,7 @@ pub const feature_ldsBranchVmemWarHazard = Feature{...@@ -421,7 +421,7 @@ pub const feature_ldsBranchVmemWarHazard = Feature{
421};421};
422422
423pub const feature_ldsMisalignedBug = Feature{423pub const feature_ldsMisalignedBug = Feature{
424 .name = "lds-misaligned-bug",424 .name = "ldsMisalignedBug",
425 .llvm_name = "lds-misaligned-bug",425 .llvm_name = "lds-misaligned-bug",
426 .description = "Some GFX10 bug with misaligned multi-dword LDS access in WGP mode",426 .description = "Some GFX10 bug with misaligned multi-dword LDS access in WGP mode",
427 .dependencies = &[_]*const Feature {427 .dependencies = &[_]*const Feature {
...@@ -453,7 +453,7 @@ pub const feature_localmemorysize65536 = Feature{...@@ -453,7 +453,7 @@ pub const feature_localmemorysize65536 = Feature{
453};453};
454454
455pub const feature_maiInsts = Feature{455pub const feature_maiInsts = Feature{
456 .name = "mai-insts",456 .name = "maiInsts",
457 .llvm_name = "mai-insts",457 .llvm_name = "mai-insts",
458 .description = "Has mAI instructions",458 .description = "Has mAI instructions",
459 .dependencies = &[_]*const Feature {459 .dependencies = &[_]*const Feature {
...@@ -461,7 +461,7 @@ pub const feature_maiInsts = Feature{...@@ -461,7 +461,7 @@ pub const feature_maiInsts = Feature{
461};461};
462462
463pub const feature_mfmaInlineLiteralBug = Feature{463pub const feature_mfmaInlineLiteralBug = Feature{
464 .name = "mfma-inline-literal-bug",464 .name = "mfmaInlineLiteralBug",
465 .llvm_name = "mfma-inline-literal-bug",465 .llvm_name = "mfma-inline-literal-bug",
466 .description = "MFMA cannot use inline literal as SrcC",466 .description = "MFMA cannot use inline literal as SrcC",
467 .dependencies = &[_]*const Feature {467 .dependencies = &[_]*const Feature {
...@@ -469,7 +469,7 @@ pub const feature_mfmaInlineLiteralBug = Feature{...@@ -469,7 +469,7 @@ pub const feature_mfmaInlineLiteralBug = Feature{
469};469};
470470
471pub const feature_mimgR128 = Feature{471pub const feature_mimgR128 = Feature{
472 .name = "mimg-r128",472 .name = "mimgR128",
473 .llvm_name = "mimg-r128",473 .llvm_name = "mimg-r128",
474 .description = "Support 128-bit texture resources",474 .description = "Support 128-bit texture resources",
475 .dependencies = &[_]*const Feature {475 .dependencies = &[_]*const Feature {
...@@ -477,7 +477,7 @@ pub const feature_mimgR128 = Feature{...@@ -477,7 +477,7 @@ pub const feature_mimgR128 = Feature{
477};477};
478478
479pub const feature_madMixInsts = Feature{479pub const feature_madMixInsts = Feature{
480 .name = "mad-mix-insts",480 .name = "madMixInsts",
481 .llvm_name = "mad-mix-insts",481 .llvm_name = "mad-mix-insts",
482 .description = "Has v_mad_mix_f32, v_mad_mixlo_f16, v_mad_mixhi_f16 instructions",482 .description = "Has v_mad_mix_f32, v_mad_mixlo_f16, v_mad_mixhi_f16 instructions",
483 .dependencies = &[_]*const Feature {483 .dependencies = &[_]*const Feature {
...@@ -485,7 +485,7 @@ pub const feature_madMixInsts = Feature{...@@ -485,7 +485,7 @@ pub const feature_madMixInsts = Feature{
485};485};
486486
487pub const feature_maxPrivateElementSize4 = Feature{487pub const feature_maxPrivateElementSize4 = Feature{
488 .name = "max-private-element-size-4",488 .name = "maxPrivateElementSize4",
489 .llvm_name = "max-private-element-size-4",489 .llvm_name = "max-private-element-size-4",
490 .description = "Maximum private access size may be 4",490 .description = "Maximum private access size may be 4",
491 .dependencies = &[_]*const Feature {491 .dependencies = &[_]*const Feature {
...@@ -493,7 +493,7 @@ pub const feature_maxPrivateElementSize4 = Feature{...@@ -493,7 +493,7 @@ pub const feature_maxPrivateElementSize4 = Feature{
493};493};
494494
495pub const feature_maxPrivateElementSize8 = Feature{495pub const feature_maxPrivateElementSize8 = Feature{
496 .name = "max-private-element-size-8",496 .name = "maxPrivateElementSize8",
497 .llvm_name = "max-private-element-size-8",497 .llvm_name = "max-private-element-size-8",
498 .description = "Maximum private access size may be 8",498 .description = "Maximum private access size may be 8",
499 .dependencies = &[_]*const Feature {499 .dependencies = &[_]*const Feature {
...@@ -501,7 +501,7 @@ pub const feature_maxPrivateElementSize8 = Feature{...@@ -501,7 +501,7 @@ pub const feature_maxPrivateElementSize8 = Feature{
501};501};
502502
503pub const feature_maxPrivateElementSize16 = Feature{503pub const feature_maxPrivateElementSize16 = Feature{
504 .name = "max-private-element-size-16",504 .name = "maxPrivateElementSize16",
505 .llvm_name = "max-private-element-size-16",505 .llvm_name = "max-private-element-size-16",
506 .description = "Maximum private access size may be 16",506 .description = "Maximum private access size may be 16",
507 .dependencies = &[_]*const Feature {507 .dependencies = &[_]*const Feature {
...@@ -517,7 +517,7 @@ pub const feature_movrel = Feature{...@@ -517,7 +517,7 @@ pub const feature_movrel = Feature{
517};517};
518518
519pub const feature_nsaEncoding = Feature{519pub const feature_nsaEncoding = Feature{
520 .name = "nsa-encoding",520 .name = "nsaEncoding",
521 .llvm_name = "nsa-encoding",521 .llvm_name = "nsa-encoding",
522 .description = "Support NSA encoding for image instructions",522 .description = "Support NSA encoding for image instructions",
523 .dependencies = &[_]*const Feature {523 .dependencies = &[_]*const Feature {
...@@ -525,7 +525,7 @@ pub const feature_nsaEncoding = Feature{...@@ -525,7 +525,7 @@ pub const feature_nsaEncoding = Feature{
525};525};
526526
527pub const feature_nsaToVmemBug = Feature{527pub const feature_nsaToVmemBug = Feature{
528 .name = "nsa-to-vmem-bug",528 .name = "nsaToVmemBug",
529 .llvm_name = "nsa-to-vmem-bug",529 .llvm_name = "nsa-to-vmem-bug",
530 .description = "MIMG-NSA followed by VMEM fail if EXEC_LO or EXEC_HI equals zero",530 .description = "MIMG-NSA followed by VMEM fail if EXEC_LO or EXEC_HI equals zero",
531 .dependencies = &[_]*const Feature {531 .dependencies = &[_]*const Feature {
...@@ -533,7 +533,7 @@ pub const feature_nsaToVmemBug = Feature{...@@ -533,7 +533,7 @@ pub const feature_nsaToVmemBug = Feature{
533};533};
534534
535pub const feature_noDataDepHazard = Feature{535pub const feature_noDataDepHazard = Feature{
536 .name = "no-data-dep-hazard",536 .name = "noDataDepHazard",
537 .llvm_name = "no-data-dep-hazard",537 .llvm_name = "no-data-dep-hazard",
538 .description = "Does not need SW waitstates",538 .description = "Does not need SW waitstates",
539 .dependencies = &[_]*const Feature {539 .dependencies = &[_]*const Feature {
...@@ -541,7 +541,7 @@ pub const feature_noDataDepHazard = Feature{...@@ -541,7 +541,7 @@ pub const feature_noDataDepHazard = Feature{
541};541};
542542
543pub const feature_noSdstCmpx = Feature{543pub const feature_noSdstCmpx = Feature{
544 .name = "no-sdst-cmpx",544 .name = "noSdstCmpx",
545 .llvm_name = "no-sdst-cmpx",545 .llvm_name = "no-sdst-cmpx",
546 .description = "V_CMPX does not write VCC/SGPR in addition to EXEC",546 .description = "V_CMPX does not write VCC/SGPR in addition to EXEC",
547 .dependencies = &[_]*const Feature {547 .dependencies = &[_]*const Feature {
...@@ -549,7 +549,7 @@ pub const feature_noSdstCmpx = Feature{...@@ -549,7 +549,7 @@ pub const feature_noSdstCmpx = Feature{
549};549};
550550
551pub const feature_offset3fBug = Feature{551pub const feature_offset3fBug = Feature{
552 .name = "offset-3f-bug",552 .name = "offset3fBug",
553 .llvm_name = "offset-3f-bug",553 .llvm_name = "offset-3f-bug",
554 .description = "Branch offset of 3f hardware bug",554 .description = "Branch offset of 3f hardware bug",
555 .dependencies = &[_]*const Feature {555 .dependencies = &[_]*const Feature {
...@@ -557,7 +557,7 @@ pub const feature_offset3fBug = Feature{...@@ -557,7 +557,7 @@ pub const feature_offset3fBug = Feature{
557};557};
558558
559pub const feature_pkFmacF16Inst = Feature{559pub const feature_pkFmacF16Inst = Feature{
560 .name = "pk-fmac-f16-inst",560 .name = "pkFmacF16Inst",
561 .llvm_name = "pk-fmac-f16-inst",561 .llvm_name = "pk-fmac-f16-inst",
562 .description = "Has v_pk_fmac_f16 instruction",562 .description = "Has v_pk_fmac_f16 instruction",
563 .dependencies = &[_]*const Feature {563 .dependencies = &[_]*const Feature {
...@@ -565,7 +565,7 @@ pub const feature_pkFmacF16Inst = Feature{...@@ -565,7 +565,7 @@ pub const feature_pkFmacF16Inst = Feature{
565};565};
566566
567pub const feature_promoteAlloca = Feature{567pub const feature_promoteAlloca = Feature{
568 .name = "promote-alloca",568 .name = "promoteAlloca",
569 .llvm_name = "promote-alloca",569 .llvm_name = "promote-alloca",
570 .description = "Enable promote alloca pass",570 .description = "Enable promote alloca pass",
571 .dependencies = &[_]*const Feature {571 .dependencies = &[_]*const Feature {
...@@ -573,7 +573,7 @@ pub const feature_promoteAlloca = Feature{...@@ -573,7 +573,7 @@ pub const feature_promoteAlloca = Feature{
573};573};
574574
575pub const feature_r128A16 = Feature{575pub const feature_r128A16 = Feature{
576 .name = "r128-a16",576 .name = "r128A16",
577 .llvm_name = "r128-a16",577 .llvm_name = "r128-a16",
578 .description = "Support 16 bit coordindates/gradients/lod/clamp/mip types on gfx9",578 .description = "Support 16 bit coordindates/gradients/lod/clamp/mip types on gfx9",
579 .dependencies = &[_]*const Feature {579 .dependencies = &[_]*const Feature {
...@@ -581,7 +581,7 @@ pub const feature_r128A16 = Feature{...@@ -581,7 +581,7 @@ pub const feature_r128A16 = Feature{
581};581};
582582
583pub const feature_registerBanking = Feature{583pub const feature_registerBanking = Feature{
584 .name = "register-banking",584 .name = "registerBanking",
585 .llvm_name = "register-banking",585 .llvm_name = "register-banking",
586 .description = "Has register banking",586 .description = "Has register banking",
587 .dependencies = &[_]*const Feature {587 .dependencies = &[_]*const Feature {
...@@ -597,7 +597,7 @@ pub const feature_sdwa = Feature{...@@ -597,7 +597,7 @@ pub const feature_sdwa = Feature{
597};597};
598598
599pub const feature_sdwaMav = Feature{599pub const feature_sdwaMav = Feature{
600 .name = "sdwa-mav",600 .name = "sdwaMav",
601 .llvm_name = "sdwa-mav",601 .llvm_name = "sdwa-mav",
602 .description = "Support v_mac_f32/f16 with SDWA (Sub-DWORD Addressing) extension",602 .description = "Support v_mac_f32/f16 with SDWA (Sub-DWORD Addressing) extension",
603 .dependencies = &[_]*const Feature {603 .dependencies = &[_]*const Feature {
...@@ -605,7 +605,7 @@ pub const feature_sdwaMav = Feature{...@@ -605,7 +605,7 @@ pub const feature_sdwaMav = Feature{
605};605};
606606
607pub const feature_sdwaOmod = Feature{607pub const feature_sdwaOmod = Feature{
608 .name = "sdwa-omod",608 .name = "sdwaOmod",
609 .llvm_name = "sdwa-omod",609 .llvm_name = "sdwa-omod",
610 .description = "Support OMod with SDWA (Sub-DWORD Addressing) extension",610 .description = "Support OMod with SDWA (Sub-DWORD Addressing) extension",
611 .dependencies = &[_]*const Feature {611 .dependencies = &[_]*const Feature {
...@@ -613,7 +613,7 @@ pub const feature_sdwaOmod = Feature{...@@ -613,7 +613,7 @@ pub const feature_sdwaOmod = Feature{
613};613};
614614
615pub const feature_sdwaOutModsVopc = Feature{615pub const feature_sdwaOutModsVopc = Feature{
616 .name = "sdwa-out-mods-vopc",616 .name = "sdwaOutModsVopc",
617 .llvm_name = "sdwa-out-mods-vopc",617 .llvm_name = "sdwa-out-mods-vopc",
618 .description = "Support clamp for VOPC with SDWA (Sub-DWORD Addressing) extension",618 .description = "Support clamp for VOPC with SDWA (Sub-DWORD Addressing) extension",
619 .dependencies = &[_]*const Feature {619 .dependencies = &[_]*const Feature {
...@@ -621,7 +621,7 @@ pub const feature_sdwaOutModsVopc = Feature{...@@ -621,7 +621,7 @@ pub const feature_sdwaOutModsVopc = Feature{
621};621};
622622
623pub const feature_sdwaScalar = Feature{623pub const feature_sdwaScalar = Feature{
624 .name = "sdwa-scalar",624 .name = "sdwaScalar",
625 .llvm_name = "sdwa-scalar",625 .llvm_name = "sdwa-scalar",
626 .description = "Support scalar register with SDWA (Sub-DWORD Addressing) extension",626 .description = "Support scalar register with SDWA (Sub-DWORD Addressing) extension",
627 .dependencies = &[_]*const Feature {627 .dependencies = &[_]*const Feature {
...@@ -629,7 +629,7 @@ pub const feature_sdwaScalar = Feature{...@@ -629,7 +629,7 @@ pub const feature_sdwaScalar = Feature{
629};629};
630630
631pub const feature_sdwaSdst = Feature{631pub const feature_sdwaSdst = Feature{
632 .name = "sdwa-sdst",632 .name = "sdwaSdst",
633 .llvm_name = "sdwa-sdst",633 .llvm_name = "sdwa-sdst",
634 .description = "Support scalar dst for VOPC with SDWA (Sub-DWORD Addressing) extension",634 .description = "Support scalar dst for VOPC with SDWA (Sub-DWORD Addressing) extension",
635 .dependencies = &[_]*const Feature {635 .dependencies = &[_]*const Feature {
...@@ -637,7 +637,7 @@ pub const feature_sdwaSdst = Feature{...@@ -637,7 +637,7 @@ pub const feature_sdwaSdst = Feature{
637};637};
638638
639pub const feature_sgprInitBug = Feature{639pub const feature_sgprInitBug = Feature{
640 .name = "sgpr-init-bug",640 .name = "sgprInitBug",
641 .llvm_name = "sgpr-init-bug",641 .llvm_name = "sgpr-init-bug",
642 .description = "VI SGPR initialization bug requiring a fixed SGPR allocation size",642 .description = "VI SGPR initialization bug requiring a fixed SGPR allocation size",
643 .dependencies = &[_]*const Feature {643 .dependencies = &[_]*const Feature {
...@@ -645,7 +645,7 @@ pub const feature_sgprInitBug = Feature{...@@ -645,7 +645,7 @@ pub const feature_sgprInitBug = Feature{
645};645};
646646
647pub const feature_smemToVectorWriteHazard = Feature{647pub const feature_smemToVectorWriteHazard = Feature{
648 .name = "smem-to-vector-write-hazard",648 .name = "smemToVectorWriteHazard",
649 .llvm_name = "smem-to-vector-write-hazard",649 .llvm_name = "smem-to-vector-write-hazard",
650 .description = "s_load_dword followed by v_cmp page faults",650 .description = "s_load_dword followed by v_cmp page faults",
651 .dependencies = &[_]*const Feature {651 .dependencies = &[_]*const Feature {
...@@ -653,7 +653,7 @@ pub const feature_smemToVectorWriteHazard = Feature{...@@ -653,7 +653,7 @@ pub const feature_smemToVectorWriteHazard = Feature{
653};653};
654654
655pub const feature_sMemrealtime = Feature{655pub const feature_sMemrealtime = Feature{
656 .name = "s-memrealtime",656 .name = "sMemrealtime",
657 .llvm_name = "s-memrealtime",657 .llvm_name = "s-memrealtime",
658 .description = "Has s_memrealtime instruction",658 .description = "Has s_memrealtime instruction",
659 .dependencies = &[_]*const Feature {659 .dependencies = &[_]*const Feature {
...@@ -661,7 +661,7 @@ pub const feature_sMemrealtime = Feature{...@@ -661,7 +661,7 @@ pub const feature_sMemrealtime = Feature{
661};661};
662662
663pub const feature_sramEcc = Feature{663pub const feature_sramEcc = Feature{
664 .name = "sram-ecc",664 .name = "sramEcc",
665 .llvm_name = "sram-ecc",665 .llvm_name = "sram-ecc",
666 .description = "Enable SRAM ECC",666 .description = "Enable SRAM ECC",
667 .dependencies = &[_]*const Feature {667 .dependencies = &[_]*const Feature {
...@@ -669,7 +669,7 @@ pub const feature_sramEcc = Feature{...@@ -669,7 +669,7 @@ pub const feature_sramEcc = Feature{
669};669};
670670
671pub const feature_scalarAtomics = Feature{671pub const feature_scalarAtomics = Feature{
672 .name = "scalar-atomics",672 .name = "scalarAtomics",
673 .llvm_name = "scalar-atomics",673 .llvm_name = "scalar-atomics",
674 .description = "Has atomic scalar memory instructions",674 .description = "Has atomic scalar memory instructions",
675 .dependencies = &[_]*const Feature {675 .dependencies = &[_]*const Feature {
...@@ -677,7 +677,7 @@ pub const feature_scalarAtomics = Feature{...@@ -677,7 +677,7 @@ pub const feature_scalarAtomics = Feature{
677};677};
678678
679pub const feature_scalarFlatScratchInsts = Feature{679pub const feature_scalarFlatScratchInsts = Feature{
680 .name = "scalar-flat-scratch-insts",680 .name = "scalarFlatScratchInsts",
681 .llvm_name = "scalar-flat-scratch-insts",681 .llvm_name = "scalar-flat-scratch-insts",
682 .description = "Have s_scratch_* flat memory instructions",682 .description = "Have s_scratch_* flat memory instructions",
683 .dependencies = &[_]*const Feature {683 .dependencies = &[_]*const Feature {
...@@ -685,7 +685,7 @@ pub const feature_scalarFlatScratchInsts = Feature{...@@ -685,7 +685,7 @@ pub const feature_scalarFlatScratchInsts = Feature{
685};685};
686686
687pub const feature_scalarStores = Feature{687pub const feature_scalarStores = Feature{
688 .name = "scalar-stores",688 .name = "scalarStores",
689 .llvm_name = "scalar-stores",689 .llvm_name = "scalar-stores",
690 .description = "Has store scalar memory instructions",690 .description = "Has store scalar memory instructions",
691 .dependencies = &[_]*const Feature {691 .dependencies = &[_]*const Feature {
...@@ -693,7 +693,7 @@ pub const feature_scalarStores = Feature{...@@ -693,7 +693,7 @@ pub const feature_scalarStores = Feature{
693};693};
694694
695pub const feature_trapHandler = Feature{695pub const feature_trapHandler = Feature{
696 .name = "trap-handler",696 .name = "trapHandler",
697 .llvm_name = "trap-handler",697 .llvm_name = "trap-handler",
698 .description = "Trap handler support",698 .description = "Trap handler support",
699 .dependencies = &[_]*const Feature {699 .dependencies = &[_]*const Feature {
...@@ -701,7 +701,7 @@ pub const feature_trapHandler = Feature{...@@ -701,7 +701,7 @@ pub const feature_trapHandler = Feature{
701};701};
702702
703pub const feature_trigReducedRange = Feature{703pub const feature_trigReducedRange = Feature{
704 .name = "trig-reduced-range",704 .name = "trigReducedRange",
705 .llvm_name = "trig-reduced-range",705 .llvm_name = "trig-reduced-range",
706 .description = "Requires use of fract on arguments to trig instructions",706 .description = "Requires use of fract on arguments to trig instructions",
707 .dependencies = &[_]*const Feature {707 .dependencies = &[_]*const Feature {
...@@ -709,7 +709,7 @@ pub const feature_trigReducedRange = Feature{...@@ -709,7 +709,7 @@ pub const feature_trigReducedRange = Feature{
709};709};
710710
711pub const feature_unalignedBufferAccess = Feature{711pub const feature_unalignedBufferAccess = Feature{
712 .name = "unaligned-buffer-access",712 .name = "unalignedBufferAccess",
713 .llvm_name = "unaligned-buffer-access",713 .llvm_name = "unaligned-buffer-access",
714 .description = "Support unaligned global loads and stores",714 .description = "Support unaligned global loads and stores",
715 .dependencies = &[_]*const Feature {715 .dependencies = &[_]*const Feature {
...@@ -717,7 +717,7 @@ pub const feature_unalignedBufferAccess = Feature{...@@ -717,7 +717,7 @@ pub const feature_unalignedBufferAccess = Feature{
717};717};
718718
719pub const feature_unalignedScratchAccess = Feature{719pub const feature_unalignedScratchAccess = Feature{
720 .name = "unaligned-scratch-access",720 .name = "unalignedScratchAccess",
721 .llvm_name = "unaligned-scratch-access",721 .llvm_name = "unaligned-scratch-access",
722 .description = "Support unaligned scratch loads and stores",722 .description = "Support unaligned scratch loads and stores",
723 .dependencies = &[_]*const Feature {723 .dependencies = &[_]*const Feature {
...@@ -725,7 +725,7 @@ pub const feature_unalignedScratchAccess = Feature{...@@ -725,7 +725,7 @@ pub const feature_unalignedScratchAccess = Feature{
725};725};
726726
727pub const feature_unpackedD16Vmem = Feature{727pub const feature_unpackedD16Vmem = Feature{
728 .name = "unpacked-d16-vmem",728 .name = "unpackedD16Vmem",
729 .llvm_name = "unpacked-d16-vmem",729 .llvm_name = "unpacked-d16-vmem",
730 .description = "Has unpacked d16 vmem instructions",730 .description = "Has unpacked d16 vmem instructions",
731 .dependencies = &[_]*const Feature {731 .dependencies = &[_]*const Feature {
...@@ -733,7 +733,7 @@ pub const feature_unpackedD16Vmem = Feature{...@@ -733,7 +733,7 @@ pub const feature_unpackedD16Vmem = Feature{
733};733};
734734
735pub const feature_vgprIndexMode = Feature{735pub const feature_vgprIndexMode = Feature{
736 .name = "vgpr-index-mode",736 .name = "vgprIndexMode",
737 .llvm_name = "vgpr-index-mode",737 .llvm_name = "vgpr-index-mode",
738 .description = "Has VGPR mode register indexing",738 .description = "Has VGPR mode register indexing",
739 .dependencies = &[_]*const Feature {739 .dependencies = &[_]*const Feature {
...@@ -741,7 +741,7 @@ pub const feature_vgprIndexMode = Feature{...@@ -741,7 +741,7 @@ pub const feature_vgprIndexMode = Feature{
741};741};
742742
743pub const feature_vmemToScalarWriteHazard = Feature{743pub const feature_vmemToScalarWriteHazard = Feature{
744 .name = "vmem-to-scalar-write-hazard",744 .name = "vmemToScalarWriteHazard",
745 .llvm_name = "vmem-to-scalar-write-hazard",745 .llvm_name = "vmem-to-scalar-write-hazard",
746 .description = "VMEM instruction followed by scalar writing to EXEC mask, M0 or SGPR leads to incorrect execution.",746 .description = "VMEM instruction followed by scalar writing to EXEC mask, M0 or SGPR leads to incorrect execution.",
747 .dependencies = &[_]*const Feature {747 .dependencies = &[_]*const Feature {
...@@ -749,7 +749,7 @@ pub const feature_vmemToScalarWriteHazard = Feature{...@@ -749,7 +749,7 @@ pub const feature_vmemToScalarWriteHazard = Feature{
749};749};
750750
751pub const feature_vop3Literal = Feature{751pub const feature_vop3Literal = Feature{
752 .name = "vop3-literal",752 .name = "vop3Literal",
753 .llvm_name = "vop3-literal",753 .llvm_name = "vop3-literal",
754 .description = "Can use one literal in VOP3",754 .description = "Can use one literal in VOP3",
755 .dependencies = &[_]*const Feature {755 .dependencies = &[_]*const Feature {
...@@ -765,7 +765,7 @@ pub const feature_vop3p = Feature{...@@ -765,7 +765,7 @@ pub const feature_vop3p = Feature{
765};765};
766766
767pub const feature_vcmpxExecWarHazard = Feature{767pub const feature_vcmpxExecWarHazard = Feature{
768 .name = "vcmpx-exec-war-hazard",768 .name = "vcmpxExecWarHazard",
769 .llvm_name = "vcmpx-exec-war-hazard",769 .llvm_name = "vcmpx-exec-war-hazard",
770 .description = "V_CMPX WAR hazard on EXEC (V_CMPX issue ONLY)",770 .description = "V_CMPX WAR hazard on EXEC (V_CMPX issue ONLY)",
771 .dependencies = &[_]*const Feature {771 .dependencies = &[_]*const Feature {
...@@ -773,7 +773,7 @@ pub const feature_vcmpxExecWarHazard = Feature{...@@ -773,7 +773,7 @@ pub const feature_vcmpxExecWarHazard = Feature{
773};773};
774774
775pub const feature_vcmpxPermlaneHazard = Feature{775pub const feature_vcmpxPermlaneHazard = Feature{
776 .name = "vcmpx-permlane-hazard",776 .name = "vcmpxPermlaneHazard",
777 .llvm_name = "vcmpx-permlane-hazard",777 .llvm_name = "vcmpx-permlane-hazard",
778 .description = "TODO: describe me",778 .description = "TODO: describe me",
779 .dependencies = &[_]*const Feature {779 .dependencies = &[_]*const Feature {
...@@ -821,7 +821,7 @@ pub const feature_xnack = Feature{...@@ -821,7 +821,7 @@ pub const feature_xnack = Feature{
821};821};
822822
823pub const feature_halfRate64Ops = Feature{823pub const feature_halfRate64Ops = Feature{
824 .name = "half-rate-64-ops",824 .name = "halfRate64Ops",
825 .llvm_name = "half-rate-64-ops",825 .llvm_name = "half-rate-64-ops",
826 .description = "Most fp64 instructions are half rate instead of quarter",826 .description = "Most fp64 instructions are half rate instead of quarter",
827 .dependencies = &[_]*const Feature {827 .dependencies = &[_]*const Feature {
...@@ -942,15 +942,15 @@ pub const cpu_bonaire = Cpu{...@@ -942,15 +942,15 @@ pub const cpu_bonaire = Cpu{
942 &feature_noXnackSupport,942 &feature_noXnackSupport,
943 &feature_ldsbankcount32,943 &feature_ldsbankcount32,
944 &feature_movrel,944 &feature_movrel,
945 &feature_flatAddressSpace,
946 &feature_trigReducedRange,945 &feature_trigReducedRange,
947 &feature_gfx7Gfx8Gfx9Insts,
948 &feature_wavefrontsize64,946 &feature_wavefrontsize64,
947 &feature_ciInsts,
948 &feature_fp64,
949 &feature_gfx7Gfx8Gfx9Insts,
949 &feature_mimgR128,950 &feature_mimgR128,
950 &feature_noSramEccSupport,951 &feature_noSramEccSupport,
952 &feature_flatAddressSpace,
951 &feature_localmemorysize65536,953 &feature_localmemorysize65536,
952 &feature_fp64,
953 &feature_ciInsts,
954 },954 },
955};955};
956956
...@@ -962,28 +962,28 @@ pub const cpu_carrizo = Cpu{...@@ -962,28 +962,28 @@ pub const cpu_carrizo = Cpu{
962 &feature_fastFmaf,962 &feature_fastFmaf,
963 &feature_ldsbankcount32,963 &feature_ldsbankcount32,
964 &feature_unpackedD16Vmem,964 &feature_unpackedD16Vmem,
965 &feature_sMemrealtime,965 &feature_BitInsts16,
966 &feature_scalarStores,
967 &feature_flatAddressSpace,966 &feature_flatAddressSpace,
968 &feature_vgprIndexMode,
969 &feature_wavefrontsize64,
970 &feature_mimgR128,
971 &feature_intClampInsts,
972 &feature_dpp,967 &feature_dpp,
973 &feature_movrel,
974 &feature_gcn3Encoding,
975 &feature_gfx8Insts,
976 &feature_trigReducedRange,
977 &feature_gfx7Gfx8Gfx9Insts,
978 &feature_sdwaMav,
979 &feature_sdwa,968 &feature_sdwa,
980 &feature_localmemorysize65536,969 &feature_mimgR128,
981 &feature_BitInsts16,
982 &feature_sdwaOutModsVopc,
983 &feature_inv2piInlineImm,970 &feature_inv2piInlineImm,
984 &feature_noSramEccSupport,971 &feature_sdwaOutModsVopc,
972 &feature_sMemrealtime,
973 &feature_trigReducedRange,
974 &feature_vgprIndexMode,
985 &feature_fp64,975 &feature_fp64,
976 &feature_gfx7Gfx8Gfx9Insts,
977 &feature_noSramEccSupport,
978 &feature_gfx8Insts,
979 &feature_localmemorysize65536,
980 &feature_movrel,
981 &feature_intClampInsts,
982 &feature_sdwaMav,
983 &feature_wavefrontsize64,
986 &feature_ciInsts,984 &feature_ciInsts,
985 &feature_scalarStores,
986 &feature_gcn3Encoding,
987 &feature_xnack,987 &feature_xnack,
988 &feature_halfRate64Ops,988 &feature_halfRate64Ops,
989 },989 },
...@@ -997,28 +997,28 @@ pub const cpu_fiji = Cpu{...@@ -997,28 +997,28 @@ pub const cpu_fiji = Cpu{
997 &feature_noXnackSupport,997 &feature_noXnackSupport,
998 &feature_ldsbankcount32,998 &feature_ldsbankcount32,
999 &feature_unpackedD16Vmem,999 &feature_unpackedD16Vmem,
1000 &feature_sMemrealtime,1000 &feature_BitInsts16,
1001 &feature_scalarStores,
1002 &feature_flatAddressSpace,1001 &feature_flatAddressSpace,
1003 &feature_vgprIndexMode,
1004 &feature_wavefrontsize64,
1005 &feature_mimgR128,
1006 &feature_intClampInsts,
1007 &feature_dpp,1002 &feature_dpp,
1008 &feature_movrel,
1009 &feature_gcn3Encoding,
1010 &feature_gfx8Insts,
1011 &feature_trigReducedRange,
1012 &feature_gfx7Gfx8Gfx9Insts,
1013 &feature_sdwaMav,
1014 &feature_sdwa,1003 &feature_sdwa,
1015 &feature_localmemorysize65536,1004 &feature_mimgR128,
1016 &feature_BitInsts16,
1017 &feature_sdwaOutModsVopc,
1018 &feature_inv2piInlineImm,1005 &feature_inv2piInlineImm,
1019 &feature_noSramEccSupport,1006 &feature_sdwaOutModsVopc,
1007 &feature_sMemrealtime,
1008 &feature_trigReducedRange,
1009 &feature_vgprIndexMode,
1020 &feature_fp64,1010 &feature_fp64,
1011 &feature_gfx7Gfx8Gfx9Insts,
1012 &feature_noSramEccSupport,
1013 &feature_gfx8Insts,
1014 &feature_localmemorysize65536,
1015 &feature_movrel,
1016 &feature_intClampInsts,
1017 &feature_sdwaMav,
1018 &feature_wavefrontsize64,
1021 &feature_ciInsts,1019 &feature_ciInsts,
1020 &feature_scalarStores,
1021 &feature_gcn3Encoding,
1022 },1022 },
1023};1023};
10241024
...@@ -1031,7 +1031,7 @@ pub const cpu_generic = Cpu{...@@ -1031,7 +1031,7 @@ pub const cpu_generic = Cpu{
1031};1031};
10321032
1033pub const cpu_genericHsa = Cpu{1033pub const cpu_genericHsa = Cpu{
1034 .name = "generic-hsa",1034 .name = "genericHsa",
1035 .llvm_name = "generic-hsa",1035 .llvm_name = "generic-hsa",
1036 .dependencies = &[_]*const Feature {1036 .dependencies = &[_]*const Feature {
1037 &feature_flatAddressSpace,1037 &feature_flatAddressSpace,
...@@ -1047,40 +1047,40 @@ pub const cpu_gfx1010 = Cpu{...@@ -1047,40 +1047,40 @@ pub const cpu_gfx1010 = Cpu{
1047 &feature_dlInsts,1047 &feature_dlInsts,
1048 &feature_noXnackSupport,1048 &feature_noXnackSupport,
1049 &feature_flatSegmentOffsetBug,1049 &feature_flatSegmentOffsetBug,
1050 &feature_sdwaOmod,1050 &feature_vop3Literal,
1051 &feature_sMemrealtime,1051 &feature_apertureRegs,
1052 &feature_flatAddressSpace,
1053 &feature_gfx9Insts,
1054 &feature_fastFmaf,
1055 &feature_flatScratchInsts,
1056 &feature_mimgR128,
1057 &feature_noSdstCmpx,
1058 &feature_sdwaSdst,
1059 &feature_vop3p,
1060 &feature_intClampInsts,
1061 &feature_dpp,
1062 &feature_registerBanking,
1063 &feature_movrel,
1064 &feature_gfx8Insts,
1065 &feature_sdwa,
1066 &feature_noDataDepHazard,
1067 &feature_flatGlobalInsts,1052 &feature_flatGlobalInsts,
1068 &feature_gfx10Insts,1053 &feature_gfx10Insts,
1069 &feature_localmemorysize65536,
1070 &feature_BitInsts16,1054 &feature_BitInsts16,
1071 &feature_addNoCarryInsts,
1072 &feature_pkFmacF16Inst,1055 &feature_pkFmacF16Inst,
1056 &feature_vop3p,
1057 &feature_flatAddressSpace,
1058 &feature_dpp,
1059 &feature_inv2piInlineImm,
1060 &feature_dpp8,
1061 &feature_flatScratchInsts,
1073 &feature_flatInstOffsets,1062 &feature_flatInstOffsets,
1063 &feature_mimgR128,
1064 &feature_sdwa,
1074 &feature_fmaMixInsts,1065 &feature_fmaMixInsts,
1075 &feature_sdwaScalar,1066 &feature_sMemrealtime,
1076 &feature_inv2piInlineImm,
1077 &feature_vscnt,1067 &feature_vscnt,
1078 &feature_apertureRegs,1068 &feature_fastFmaf,
1079 &feature_dpp8,1069 &feature_registerBanking,
1080 &feature_noSramEccSupport,1070 &feature_gfx9Insts,
1071 &feature_sdwaSdst,
1072 &feature_noSdstCmpx,
1081 &feature_fp64,1073 &feature_fp64,
1074 &feature_noSramEccSupport,
1075 &feature_gfx8Insts,
1076 &feature_localmemorysize65536,
1077 &feature_movrel,
1078 &feature_intClampInsts,
1079 &feature_sdwaScalar,
1080 &feature_sdwaOmod,
1081 &feature_noDataDepHazard,
1082 &feature_ciInsts,1082 &feature_ciInsts,
1083 &feature_vop3Literal,1083 &feature_addNoCarryInsts,
1084 &feature_instFwdPrefetchBug,1084 &feature_instFwdPrefetchBug,
1085 &feature_ldsbankcount32,1085 &feature_ldsbankcount32,
1086 &feature_ldsBranchVmemWarHazard,1086 &feature_ldsBranchVmemWarHazard,
...@@ -1111,40 +1111,40 @@ pub const cpu_gfx1011 = Cpu{...@@ -1111,40 +1111,40 @@ pub const cpu_gfx1011 = Cpu{
1111 &feature_dot5Insts,1111 &feature_dot5Insts,
1112 &feature_dot6Insts,1112 &feature_dot6Insts,
1113 &feature_flatSegmentOffsetBug,1113 &feature_flatSegmentOffsetBug,
1114 &feature_sdwaOmod,1114 &feature_vop3Literal,
1115 &feature_sMemrealtime,1115 &feature_apertureRegs,
1116 &feature_flatAddressSpace,
1117 &feature_gfx9Insts,
1118 &feature_fastFmaf,
1119 &feature_flatScratchInsts,
1120 &feature_mimgR128,
1121 &feature_noSdstCmpx,
1122 &feature_sdwaSdst,
1123 &feature_vop3p,
1124 &feature_intClampInsts,
1125 &feature_dpp,
1126 &feature_registerBanking,
1127 &feature_movrel,
1128 &feature_gfx8Insts,
1129 &feature_sdwa,
1130 &feature_noDataDepHazard,
1131 &feature_flatGlobalInsts,1116 &feature_flatGlobalInsts,
1132 &feature_gfx10Insts,1117 &feature_gfx10Insts,
1133 &feature_localmemorysize65536,
1134 &feature_BitInsts16,1118 &feature_BitInsts16,
1135 &feature_addNoCarryInsts,
1136 &feature_pkFmacF16Inst,1119 &feature_pkFmacF16Inst,
1120 &feature_vop3p,
1121 &feature_flatAddressSpace,
1122 &feature_dpp,
1123 &feature_inv2piInlineImm,
1124 &feature_dpp8,
1125 &feature_flatScratchInsts,
1137 &feature_flatInstOffsets,1126 &feature_flatInstOffsets,
1127 &feature_mimgR128,
1128 &feature_sdwa,
1138 &feature_fmaMixInsts,1129 &feature_fmaMixInsts,
1139 &feature_sdwaScalar,1130 &feature_sMemrealtime,
1140 &feature_inv2piInlineImm,
1141 &feature_vscnt,1131 &feature_vscnt,
1142 &feature_apertureRegs,1132 &feature_fastFmaf,
1143 &feature_dpp8,1133 &feature_registerBanking,
1144 &feature_noSramEccSupport,1134 &feature_gfx9Insts,
1135 &feature_sdwaSdst,
1136 &feature_noSdstCmpx,
1145 &feature_fp64,1137 &feature_fp64,
1138 &feature_noSramEccSupport,
1139 &feature_gfx8Insts,
1140 &feature_localmemorysize65536,
1141 &feature_movrel,
1142 &feature_intClampInsts,
1143 &feature_sdwaScalar,
1144 &feature_sdwaOmod,
1145 &feature_noDataDepHazard,
1146 &feature_ciInsts,1146 &feature_ciInsts,
1147 &feature_vop3Literal,1147 &feature_addNoCarryInsts,
1148 &feature_instFwdPrefetchBug,1148 &feature_instFwdPrefetchBug,
1149 &feature_ldsbankcount32,1149 &feature_ldsbankcount32,
1150 &feature_ldsBranchVmemWarHazard,1150 &feature_ldsBranchVmemWarHazard,
...@@ -1174,40 +1174,40 @@ pub const cpu_gfx1012 = Cpu{...@@ -1174,40 +1174,40 @@ pub const cpu_gfx1012 = Cpu{
1174 &feature_dot5Insts,1174 &feature_dot5Insts,
1175 &feature_dot6Insts,1175 &feature_dot6Insts,
1176 &feature_flatSegmentOffsetBug,1176 &feature_flatSegmentOffsetBug,
1177 &feature_sdwaOmod,1177 &feature_vop3Literal,
1178 &feature_sMemrealtime,1178 &feature_apertureRegs,
1179 &feature_flatAddressSpace,
1180 &feature_gfx9Insts,
1181 &feature_fastFmaf,
1182 &feature_flatScratchInsts,
1183 &feature_mimgR128,
1184 &feature_noSdstCmpx,
1185 &feature_sdwaSdst,
1186 &feature_vop3p,
1187 &feature_intClampInsts,
1188 &feature_dpp,
1189 &feature_registerBanking,
1190 &feature_movrel,
1191 &feature_gfx8Insts,
1192 &feature_sdwa,
1193 &feature_noDataDepHazard,
1194 &feature_flatGlobalInsts,1179 &feature_flatGlobalInsts,
1195 &feature_gfx10Insts,1180 &feature_gfx10Insts,
1196 &feature_localmemorysize65536,
1197 &feature_BitInsts16,1181 &feature_BitInsts16,
1198 &feature_addNoCarryInsts,
1199 &feature_pkFmacF16Inst,1182 &feature_pkFmacF16Inst,
1183 &feature_vop3p,
1184 &feature_flatAddressSpace,
1185 &feature_dpp,
1186 &feature_inv2piInlineImm,
1187 &feature_dpp8,
1188 &feature_flatScratchInsts,
1200 &feature_flatInstOffsets,1189 &feature_flatInstOffsets,
1190 &feature_mimgR128,
1191 &feature_sdwa,
1201 &feature_fmaMixInsts,1192 &feature_fmaMixInsts,
1202 &feature_sdwaScalar,1193 &feature_sMemrealtime,
1203 &feature_inv2piInlineImm,
1204 &feature_vscnt,1194 &feature_vscnt,
1205 &feature_apertureRegs,1195 &feature_fastFmaf,
1206 &feature_dpp8,1196 &feature_registerBanking,
1207 &feature_noSramEccSupport,1197 &feature_gfx9Insts,
1198 &feature_sdwaSdst,
1199 &feature_noSdstCmpx,
1208 &feature_fp64,1200 &feature_fp64,
1201 &feature_noSramEccSupport,
1202 &feature_gfx8Insts,
1203 &feature_localmemorysize65536,
1204 &feature_movrel,
1205 &feature_intClampInsts,
1206 &feature_sdwaScalar,
1207 &feature_sdwaOmod,
1208 &feature_noDataDepHazard,
1209 &feature_ciInsts,1209 &feature_ciInsts,
1210 &feature_vop3Literal,1210 &feature_addNoCarryInsts,
1211 &feature_instFwdPrefetchBug,1211 &feature_instFwdPrefetchBug,
1212 &feature_ldsbankcount32,1212 &feature_ldsbankcount32,
1213 &feature_ldsBranchVmemWarHazard,1213 &feature_ldsBranchVmemWarHazard,
...@@ -1236,11 +1236,11 @@ pub const cpu_gfx600 = Cpu{...@@ -1236,11 +1236,11 @@ pub const cpu_gfx600 = Cpu{
1236 &feature_ldsbankcount32,1236 &feature_ldsbankcount32,
1237 &feature_movrel,1237 &feature_movrel,
1238 &feature_trigReducedRange,1238 &feature_trigReducedRange,
1239 &feature_mimgR128,
1240 &feature_localmemorysize32768,
1241 &feature_wavefrontsize64,1239 &feature_wavefrontsize64,
1242 &feature_noSramEccSupport,1240 &feature_localmemorysize32768,
1243 &feature_fp64,1241 &feature_fp64,
1242 &feature_noSramEccSupport,
1243 &feature_mimgR128,
1244 &feature_halfRate64Ops,1244 &feature_halfRate64Ops,
1245 },1245 },
1246};1246};
...@@ -1254,11 +1254,11 @@ pub const cpu_gfx601 = Cpu{...@@ -1254,11 +1254,11 @@ pub const cpu_gfx601 = Cpu{
1254 &feature_ldsbankcount32,1254 &feature_ldsbankcount32,
1255 &feature_movrel,1255 &feature_movrel,
1256 &feature_trigReducedRange,1256 &feature_trigReducedRange,
1257 &feature_mimgR128,
1258 &feature_localmemorysize32768,
1259 &feature_wavefrontsize64,1257 &feature_wavefrontsize64,
1260 &feature_noSramEccSupport,1258 &feature_localmemorysize32768,
1261 &feature_fp64,1259 &feature_fp64,
1260 &feature_noSramEccSupport,
1261 &feature_mimgR128,
1262 },1262 },
1263};1263};
12641264
...@@ -1270,15 +1270,15 @@ pub const cpu_gfx700 = Cpu{...@@ -1270,15 +1270,15 @@ pub const cpu_gfx700 = Cpu{
1270 &feature_noXnackSupport,1270 &feature_noXnackSupport,
1271 &feature_ldsbankcount32,1271 &feature_ldsbankcount32,
1272 &feature_movrel,1272 &feature_movrel,
1273 &feature_flatAddressSpace,
1274 &feature_trigReducedRange,1273 &feature_trigReducedRange,
1275 &feature_gfx7Gfx8Gfx9Insts,
1276 &feature_wavefrontsize64,1274 &feature_wavefrontsize64,
1275 &feature_ciInsts,
1276 &feature_fp64,
1277 &feature_gfx7Gfx8Gfx9Insts,
1277 &feature_mimgR128,1278 &feature_mimgR128,
1278 &feature_noSramEccSupport,1279 &feature_noSramEccSupport,
1280 &feature_flatAddressSpace,
1279 &feature_localmemorysize65536,1281 &feature_localmemorysize65536,
1280 &feature_fp64,
1281 &feature_ciInsts,
1282 },1282 },
1283};1283};
12841284
...@@ -1291,15 +1291,15 @@ pub const cpu_gfx701 = Cpu{...@@ -1291,15 +1291,15 @@ pub const cpu_gfx701 = Cpu{
1291 &feature_fastFmaf,1291 &feature_fastFmaf,
1292 &feature_ldsbankcount32,1292 &feature_ldsbankcount32,
1293 &feature_movrel,1293 &feature_movrel,
1294 &feature_flatAddressSpace,
1295 &feature_trigReducedRange,1294 &feature_trigReducedRange,
1296 &feature_gfx7Gfx8Gfx9Insts,
1297 &feature_wavefrontsize64,1295 &feature_wavefrontsize64,
1296 &feature_ciInsts,
1297 &feature_fp64,
1298 &feature_gfx7Gfx8Gfx9Insts,
1298 &feature_mimgR128,1299 &feature_mimgR128,
1299 &feature_noSramEccSupport,1300 &feature_noSramEccSupport,
1301 &feature_flatAddressSpace,
1300 &feature_localmemorysize65536,1302 &feature_localmemorysize65536,
1301 &feature_fp64,
1302 &feature_ciInsts,
1303 &feature_halfRate64Ops,1303 &feature_halfRate64Ops,
1304 },1304 },
1305};1305};
...@@ -1313,15 +1313,15 @@ pub const cpu_gfx702 = Cpu{...@@ -1313,15 +1313,15 @@ pub const cpu_gfx702 = Cpu{
1313 &feature_fastFmaf,1313 &feature_fastFmaf,
1314 &feature_ldsbankcount16,1314 &feature_ldsbankcount16,
1315 &feature_movrel,1315 &feature_movrel,
1316 &feature_flatAddressSpace,
1317 &feature_trigReducedRange,1316 &feature_trigReducedRange,
1318 &feature_gfx7Gfx8Gfx9Insts,
1319 &feature_wavefrontsize64,1317 &feature_wavefrontsize64,
1318 &feature_ciInsts,
1319 &feature_fp64,
1320 &feature_gfx7Gfx8Gfx9Insts,
1320 &feature_mimgR128,1321 &feature_mimgR128,
1321 &feature_noSramEccSupport,1322 &feature_noSramEccSupport,
1323 &feature_flatAddressSpace,
1322 &feature_localmemorysize65536,1324 &feature_localmemorysize65536,
1323 &feature_fp64,
1324 &feature_ciInsts,
1325 },1325 },
1326};1326};
13271327
...@@ -1333,15 +1333,15 @@ pub const cpu_gfx703 = Cpu{...@@ -1333,15 +1333,15 @@ pub const cpu_gfx703 = Cpu{
1333 &feature_noXnackSupport,1333 &feature_noXnackSupport,
1334 &feature_ldsbankcount16,1334 &feature_ldsbankcount16,
1335 &feature_movrel,1335 &feature_movrel,
1336 &feature_flatAddressSpace,
1337 &feature_trigReducedRange,1336 &feature_trigReducedRange,
1338 &feature_gfx7Gfx8Gfx9Insts,
1339 &feature_wavefrontsize64,1337 &feature_wavefrontsize64,
1338 &feature_ciInsts,
1339 &feature_fp64,
1340 &feature_gfx7Gfx8Gfx9Insts,
1340 &feature_mimgR128,1341 &feature_mimgR128,
1341 &feature_noSramEccSupport,1342 &feature_noSramEccSupport,
1343 &feature_flatAddressSpace,
1342 &feature_localmemorysize65536,1344 &feature_localmemorysize65536,
1343 &feature_fp64,
1344 &feature_ciInsts,
1345 },1345 },
1346};1346};
13471347
...@@ -1353,15 +1353,15 @@ pub const cpu_gfx704 = Cpu{...@@ -1353,15 +1353,15 @@ pub const cpu_gfx704 = Cpu{
1353 &feature_noXnackSupport,1353 &feature_noXnackSupport,
1354 &feature_ldsbankcount32,1354 &feature_ldsbankcount32,
1355 &feature_movrel,1355 &feature_movrel,
1356 &feature_flatAddressSpace,
1357 &feature_trigReducedRange,1356 &feature_trigReducedRange,
1358 &feature_gfx7Gfx8Gfx9Insts,
1359 &feature_wavefrontsize64,1357 &feature_wavefrontsize64,
1358 &feature_ciInsts,
1359 &feature_fp64,
1360 &feature_gfx7Gfx8Gfx9Insts,
1360 &feature_mimgR128,1361 &feature_mimgR128,
1361 &feature_noSramEccSupport,1362 &feature_noSramEccSupport,
1363 &feature_flatAddressSpace,
1362 &feature_localmemorysize65536,1364 &feature_localmemorysize65536,
1363 &feature_fp64,
1364 &feature_ciInsts,
1365 },1365 },
1366};1366};
13671367
...@@ -1373,28 +1373,28 @@ pub const cpu_gfx801 = Cpu{...@@ -1373,28 +1373,28 @@ pub const cpu_gfx801 = Cpu{
1373 &feature_fastFmaf,1373 &feature_fastFmaf,
1374 &feature_ldsbankcount32,1374 &feature_ldsbankcount32,
1375 &feature_unpackedD16Vmem,1375 &feature_unpackedD16Vmem,
1376 &feature_sMemrealtime,1376 &feature_BitInsts16,
1377 &feature_scalarStores,
1378 &feature_flatAddressSpace,1377 &feature_flatAddressSpace,
1379 &feature_vgprIndexMode,
1380 &feature_wavefrontsize64,
1381 &feature_mimgR128,
1382 &feature_intClampInsts,
1383 &feature_dpp,1378 &feature_dpp,
1384 &feature_movrel,
1385 &feature_gcn3Encoding,
1386 &feature_gfx8Insts,
1387 &feature_trigReducedRange,
1388 &feature_gfx7Gfx8Gfx9Insts,
1389 &feature_sdwaMav,
1390 &feature_sdwa,1379 &feature_sdwa,
1391 &feature_localmemorysize65536,1380 &feature_mimgR128,
1392 &feature_BitInsts16,
1393 &feature_sdwaOutModsVopc,
1394 &feature_inv2piInlineImm,1381 &feature_inv2piInlineImm,
1395 &feature_noSramEccSupport,1382 &feature_sdwaOutModsVopc,
1383 &feature_sMemrealtime,
1384 &feature_trigReducedRange,
1385 &feature_vgprIndexMode,
1396 &feature_fp64,1386 &feature_fp64,
1387 &feature_gfx7Gfx8Gfx9Insts,
1388 &feature_noSramEccSupport,
1389 &feature_gfx8Insts,
1390 &feature_localmemorysize65536,
1391 &feature_movrel,
1392 &feature_intClampInsts,
1393 &feature_sdwaMav,
1394 &feature_wavefrontsize64,
1397 &feature_ciInsts,1395 &feature_ciInsts,
1396 &feature_scalarStores,
1397 &feature_gcn3Encoding,
1398 &feature_xnack,1398 &feature_xnack,
1399 &feature_halfRate64Ops,1399 &feature_halfRate64Ops,
1400 },1400 },
...@@ -1409,28 +1409,28 @@ pub const cpu_gfx802 = Cpu{...@@ -1409,28 +1409,28 @@ pub const cpu_gfx802 = Cpu{
1409 &feature_ldsbankcount32,1409 &feature_ldsbankcount32,
1410 &feature_sgprInitBug,1410 &feature_sgprInitBug,
1411 &feature_unpackedD16Vmem,1411 &feature_unpackedD16Vmem,
1412 &feature_sMemrealtime,1412 &feature_BitInsts16,
1413 &feature_scalarStores,
1414 &feature_flatAddressSpace,1413 &feature_flatAddressSpace,
1415 &feature_vgprIndexMode,
1416 &feature_wavefrontsize64,
1417 &feature_mimgR128,
1418 &feature_intClampInsts,
1419 &feature_dpp,1414 &feature_dpp,
1420 &feature_movrel,
1421 &feature_gcn3Encoding,
1422 &feature_gfx8Insts,
1423 &feature_trigReducedRange,
1424 &feature_gfx7Gfx8Gfx9Insts,
1425 &feature_sdwaMav,
1426 &feature_sdwa,1415 &feature_sdwa,
1427 &feature_localmemorysize65536,1416 &feature_mimgR128,
1428 &feature_BitInsts16,
1429 &feature_sdwaOutModsVopc,
1430 &feature_inv2piInlineImm,1417 &feature_inv2piInlineImm,
1431 &feature_noSramEccSupport,1418 &feature_sdwaOutModsVopc,
1419 &feature_sMemrealtime,
1420 &feature_trigReducedRange,
1421 &feature_vgprIndexMode,
1432 &feature_fp64,1422 &feature_fp64,
1423 &feature_gfx7Gfx8Gfx9Insts,
1424 &feature_noSramEccSupport,
1425 &feature_gfx8Insts,
1426 &feature_localmemorysize65536,
1427 &feature_movrel,
1428 &feature_intClampInsts,
1429 &feature_sdwaMav,
1430 &feature_wavefrontsize64,
1433 &feature_ciInsts,1431 &feature_ciInsts,
1432 &feature_scalarStores,
1433 &feature_gcn3Encoding,
1434 },1434 },
1435};1435};
14361436
...@@ -1442,28 +1442,28 @@ pub const cpu_gfx803 = Cpu{...@@ -1442,28 +1442,28 @@ pub const cpu_gfx803 = Cpu{
1442 &feature_noXnackSupport,1442 &feature_noXnackSupport,
1443 &feature_ldsbankcount32,1443 &feature_ldsbankcount32,
1444 &feature_unpackedD16Vmem,1444 &feature_unpackedD16Vmem,
1445 &feature_sMemrealtime,1445 &feature_BitInsts16,
1446 &feature_scalarStores,
1447 &feature_flatAddressSpace,1446 &feature_flatAddressSpace,
1448 &feature_vgprIndexMode,
1449 &feature_wavefrontsize64,
1450 &feature_mimgR128,
1451 &feature_intClampInsts,
1452 &feature_dpp,1447 &feature_dpp,
1453 &feature_movrel,
1454 &feature_gcn3Encoding,
1455 &feature_gfx8Insts,
1456 &feature_trigReducedRange,
1457 &feature_gfx7Gfx8Gfx9Insts,
1458 &feature_sdwaMav,
1459 &feature_sdwa,1448 &feature_sdwa,
1460 &feature_localmemorysize65536,1449 &feature_mimgR128,
1461 &feature_BitInsts16,
1462 &feature_sdwaOutModsVopc,
1463 &feature_inv2piInlineImm,1450 &feature_inv2piInlineImm,
1464 &feature_noSramEccSupport,1451 &feature_sdwaOutModsVopc,
1452 &feature_sMemrealtime,
1453 &feature_trigReducedRange,
1454 &feature_vgprIndexMode,
1465 &feature_fp64,1455 &feature_fp64,
1456 &feature_gfx7Gfx8Gfx9Insts,
1457 &feature_noSramEccSupport,
1458 &feature_gfx8Insts,
1459 &feature_localmemorysize65536,
1460 &feature_movrel,
1461 &feature_intClampInsts,
1462 &feature_sdwaMav,
1463 &feature_wavefrontsize64,
1466 &feature_ciInsts,1464 &feature_ciInsts,
1465 &feature_scalarStores,
1466 &feature_gcn3Encoding,
1467 },1467 },
1468};1468};
14691469
...@@ -1473,28 +1473,28 @@ pub const cpu_gfx810 = Cpu{...@@ -1473,28 +1473,28 @@ pub const cpu_gfx810 = Cpu{
1473 .dependencies = &[_]*const Feature {1473 .dependencies = &[_]*const Feature {
1474 &feature_codeObjectV3,1474 &feature_codeObjectV3,
1475 &feature_ldsbankcount16,1475 &feature_ldsbankcount16,
1476 &feature_sMemrealtime,1476 &feature_BitInsts16,
1477 &feature_scalarStores,
1478 &feature_flatAddressSpace,1477 &feature_flatAddressSpace,
1479 &feature_vgprIndexMode,
1480 &feature_wavefrontsize64,
1481 &feature_mimgR128,
1482 &feature_intClampInsts,
1483 &feature_dpp,1478 &feature_dpp,
1484 &feature_movrel,
1485 &feature_gcn3Encoding,
1486 &feature_gfx8Insts,
1487 &feature_trigReducedRange,
1488 &feature_gfx7Gfx8Gfx9Insts,
1489 &feature_sdwaMav,
1490 &feature_sdwa,1479 &feature_sdwa,
1491 &feature_localmemorysize65536,1480 &feature_mimgR128,
1492 &feature_BitInsts16,
1493 &feature_sdwaOutModsVopc,
1494 &feature_inv2piInlineImm,1481 &feature_inv2piInlineImm,
1495 &feature_noSramEccSupport,1482 &feature_sdwaOutModsVopc,
1483 &feature_sMemrealtime,
1484 &feature_trigReducedRange,
1485 &feature_vgprIndexMode,
1496 &feature_fp64,1486 &feature_fp64,
1487 &feature_gfx7Gfx8Gfx9Insts,
1488 &feature_noSramEccSupport,
1489 &feature_gfx8Insts,
1490 &feature_localmemorysize65536,
1491 &feature_movrel,
1492 &feature_intClampInsts,
1493 &feature_sdwaMav,
1494 &feature_wavefrontsize64,
1497 &feature_ciInsts,1495 &feature_ciInsts,
1496 &feature_scalarStores,
1497 &feature_gcn3Encoding,
1498 &feature_xnack,1498 &feature_xnack,
1499 },1499 },
1500};1500};
...@@ -1506,36 +1506,36 @@ pub const cpu_gfx900 = Cpu{...@@ -1506,36 +1506,36 @@ pub const cpu_gfx900 = Cpu{
1506 &feature_codeObjectV3,1506 &feature_codeObjectV3,
1507 &feature_noSramEccSupport,1507 &feature_noSramEccSupport,
1508 &feature_noXnackSupport,1508 &feature_noXnackSupport,
1509 &feature_sdwaOmod,1509 &feature_apertureRegs,
1510 &feature_sMemrealtime,1510 &feature_flatGlobalInsts,
1511 &feature_scalarStores,1511 &feature_BitInsts16,
1512 &feature_vop3p,
1512 &feature_flatAddressSpace,1513 &feature_flatAddressSpace,
1513 &feature_vgprIndexMode,1514 &feature_dpp,
1514 &feature_gfx9Insts,1515 &feature_inv2piInlineImm,
1515 &feature_r128A16,1516 &feature_sdwa,
1516 &feature_fastFmaf,
1517 &feature_wavefrontsize64,
1518 &feature_flatScratchInsts,1517 &feature_flatScratchInsts,
1518 &feature_flatInstOffsets,
1519 &feature_scalarFlatScratchInsts,
1520 &feature_sMemrealtime,
1521 &feature_fastFmaf,
1522 &feature_gfx9Insts,
1519 &feature_sdwaSdst,1523 &feature_sdwaSdst,
1520 &feature_vop3p,1524 &feature_vgprIndexMode,
1521 &feature_intClampInsts,1525 &feature_fp64,
1522 &feature_dpp,
1523 &feature_scalarAtomics,
1524 &feature_gcn3Encoding,
1525 &feature_gfx8Insts,
1526 &feature_gfx7Gfx8Gfx9Insts,1526 &feature_gfx7Gfx8Gfx9Insts,
1527 &feature_sdwa,1527 &feature_gfx8Insts,
1528 &feature_flatGlobalInsts,
1529 &feature_localmemorysize65536,1528 &feature_localmemorysize65536,
1530 &feature_BitInsts16,1529 &feature_intClampInsts,
1531 &feature_addNoCarryInsts,
1532 &feature_flatInstOffsets,
1533 &feature_sdwaScalar,1530 &feature_sdwaScalar,
1534 &feature_inv2piInlineImm,1531 &feature_sdwaOmod,
1535 &feature_apertureRegs,1532 &feature_scalarAtomics,
1536 &feature_fp64,1533 &feature_r128A16,
1534 &feature_wavefrontsize64,
1537 &feature_ciInsts,1535 &feature_ciInsts,
1538 &feature_scalarFlatScratchInsts,1536 &feature_scalarStores,
1537 &feature_gcn3Encoding,
1538 &feature_addNoCarryInsts,
1539 &feature_ldsbankcount32,1539 &feature_ldsbankcount32,
1540 &feature_madMixInsts,1540 &feature_madMixInsts,
1541 },1541 },
...@@ -1547,36 +1547,36 @@ pub const cpu_gfx902 = Cpu{...@@ -1547,36 +1547,36 @@ pub const cpu_gfx902 = Cpu{
1547 .dependencies = &[_]*const Feature {1547 .dependencies = &[_]*const Feature {
1548 &feature_codeObjectV3,1548 &feature_codeObjectV3,
1549 &feature_noSramEccSupport,1549 &feature_noSramEccSupport,
1550 &feature_sdwaOmod,1550 &feature_apertureRegs,
1551 &feature_sMemrealtime,1551 &feature_flatGlobalInsts,
1552 &feature_scalarStores,1552 &feature_BitInsts16,
1553 &feature_vop3p,
1553 &feature_flatAddressSpace,1554 &feature_flatAddressSpace,
1554 &feature_vgprIndexMode,1555 &feature_dpp,
1555 &feature_gfx9Insts,1556 &feature_inv2piInlineImm,
1556 &feature_r128A16,1557 &feature_sdwa,
1557 &feature_fastFmaf,
1558 &feature_wavefrontsize64,
1559 &feature_flatScratchInsts,1558 &feature_flatScratchInsts,
1559 &feature_flatInstOffsets,
1560 &feature_scalarFlatScratchInsts,
1561 &feature_sMemrealtime,
1562 &feature_fastFmaf,
1563 &feature_gfx9Insts,
1560 &feature_sdwaSdst,1564 &feature_sdwaSdst,
1561 &feature_vop3p,1565 &feature_vgprIndexMode,
1562 &feature_intClampInsts,1566 &feature_fp64,
1563 &feature_dpp,
1564 &feature_scalarAtomics,
1565 &feature_gcn3Encoding,
1566 &feature_gfx8Insts,
1567 &feature_gfx7Gfx8Gfx9Insts,1567 &feature_gfx7Gfx8Gfx9Insts,
1568 &feature_sdwa,1568 &feature_gfx8Insts,
1569 &feature_flatGlobalInsts,
1570 &feature_localmemorysize65536,1569 &feature_localmemorysize65536,
1571 &feature_BitInsts16,1570 &feature_intClampInsts,
1572 &feature_addNoCarryInsts,
1573 &feature_flatInstOffsets,
1574 &feature_sdwaScalar,1571 &feature_sdwaScalar,
1575 &feature_inv2piInlineImm,1572 &feature_sdwaOmod,
1576 &feature_apertureRegs,1573 &feature_scalarAtomics,
1577 &feature_fp64,1574 &feature_r128A16,
1575 &feature_wavefrontsize64,
1578 &feature_ciInsts,1576 &feature_ciInsts,
1579 &feature_scalarFlatScratchInsts,1577 &feature_scalarStores,
1578 &feature_gcn3Encoding,
1579 &feature_addNoCarryInsts,
1580 &feature_ldsbankcount32,1580 &feature_ldsbankcount32,
1581 &feature_madMixInsts,1581 &feature_madMixInsts,
1582 &feature_xnack,1582 &feature_xnack,
...@@ -1591,36 +1591,36 @@ pub const cpu_gfx904 = Cpu{...@@ -1591,36 +1591,36 @@ pub const cpu_gfx904 = Cpu{
1591 &feature_noSramEccSupport,1591 &feature_noSramEccSupport,
1592 &feature_noXnackSupport,1592 &feature_noXnackSupport,
1593 &feature_fmaMixInsts,1593 &feature_fmaMixInsts,
1594 &feature_sdwaOmod,1594 &feature_apertureRegs,
1595 &feature_sMemrealtime,1595 &feature_flatGlobalInsts,
1596 &feature_scalarStores,1596 &feature_BitInsts16,
1597 &feature_vop3p,
1597 &feature_flatAddressSpace,1598 &feature_flatAddressSpace,
1598 &feature_vgprIndexMode,1599 &feature_dpp,
1599 &feature_gfx9Insts,1600 &feature_inv2piInlineImm,
1600 &feature_r128A16,1601 &feature_sdwa,
1601 &feature_fastFmaf,
1602 &feature_wavefrontsize64,
1603 &feature_flatScratchInsts,1602 &feature_flatScratchInsts,
1603 &feature_flatInstOffsets,
1604 &feature_scalarFlatScratchInsts,
1605 &feature_sMemrealtime,
1606 &feature_fastFmaf,
1607 &feature_gfx9Insts,
1604 &feature_sdwaSdst,1608 &feature_sdwaSdst,
1605 &feature_vop3p,1609 &feature_vgprIndexMode,
1606 &feature_intClampInsts,1610 &feature_fp64,
1607 &feature_dpp,
1608 &feature_scalarAtomics,
1609 &feature_gcn3Encoding,
1610 &feature_gfx8Insts,
1611 &feature_gfx7Gfx8Gfx9Insts,1611 &feature_gfx7Gfx8Gfx9Insts,
1612 &feature_sdwa,1612 &feature_gfx8Insts,
1613 &feature_flatGlobalInsts,
1614 &feature_localmemorysize65536,1613 &feature_localmemorysize65536,
1615 &feature_BitInsts16,1614 &feature_intClampInsts,
1616 &feature_addNoCarryInsts,
1617 &feature_flatInstOffsets,
1618 &feature_sdwaScalar,1615 &feature_sdwaScalar,
1619 &feature_inv2piInlineImm,1616 &feature_sdwaOmod,
1620 &feature_apertureRegs,1617 &feature_scalarAtomics,
1621 &feature_fp64,1618 &feature_r128A16,
1619 &feature_wavefrontsize64,
1622 &feature_ciInsts,1620 &feature_ciInsts,
1623 &feature_scalarFlatScratchInsts,1621 &feature_scalarStores,
1622 &feature_gcn3Encoding,
1623 &feature_addNoCarryInsts,
1624 &feature_ldsbankcount32,1624 &feature_ldsbankcount32,
1625 },1625 },
1626};1626};
...@@ -1635,36 +1635,36 @@ pub const cpu_gfx906 = Cpu{...@@ -1635,36 +1635,36 @@ pub const cpu_gfx906 = Cpu{
1635 &feature_dot1Insts,1635 &feature_dot1Insts,
1636 &feature_dot2Insts,1636 &feature_dot2Insts,
1637 &feature_fmaMixInsts,1637 &feature_fmaMixInsts,
1638 &feature_sdwaOmod,1638 &feature_apertureRegs,
1639 &feature_sMemrealtime,1639 &feature_flatGlobalInsts,
1640 &feature_scalarStores,1640 &feature_BitInsts16,
1641 &feature_vop3p,
1641 &feature_flatAddressSpace,1642 &feature_flatAddressSpace,
1642 &feature_vgprIndexMode,1643 &feature_dpp,
1643 &feature_gfx9Insts,1644 &feature_inv2piInlineImm,
1644 &feature_r128A16,1645 &feature_sdwa,
1645 &feature_fastFmaf,
1646 &feature_wavefrontsize64,
1647 &feature_flatScratchInsts,1646 &feature_flatScratchInsts,
1647 &feature_flatInstOffsets,
1648 &feature_scalarFlatScratchInsts,
1649 &feature_sMemrealtime,
1650 &feature_fastFmaf,
1651 &feature_gfx9Insts,
1648 &feature_sdwaSdst,1652 &feature_sdwaSdst,
1649 &feature_vop3p,1653 &feature_vgprIndexMode,
1650 &feature_intClampInsts,1654 &feature_fp64,
1651 &feature_dpp,
1652 &feature_scalarAtomics,
1653 &feature_gcn3Encoding,
1654 &feature_gfx8Insts,
1655 &feature_gfx7Gfx8Gfx9Insts,1655 &feature_gfx7Gfx8Gfx9Insts,
1656 &feature_sdwa,1656 &feature_gfx8Insts,
1657 &feature_flatGlobalInsts,
1658 &feature_localmemorysize65536,1657 &feature_localmemorysize65536,
1659 &feature_BitInsts16,1658 &feature_intClampInsts,
1660 &feature_addNoCarryInsts,
1661 &feature_flatInstOffsets,
1662 &feature_sdwaScalar,1659 &feature_sdwaScalar,
1663 &feature_inv2piInlineImm,1660 &feature_sdwaOmod,
1664 &feature_apertureRegs,1661 &feature_scalarAtomics,
1665 &feature_fp64,1662 &feature_r128A16,
1663 &feature_wavefrontsize64,
1666 &feature_ciInsts,1664 &feature_ciInsts,
1667 &feature_scalarFlatScratchInsts,1665 &feature_scalarStores,
1666 &feature_gcn3Encoding,
1667 &feature_addNoCarryInsts,
1668 &feature_ldsbankcount32,1668 &feature_ldsbankcount32,
1669 &feature_halfRate64Ops,1669 &feature_halfRate64Ops,
1670 },1670 },
...@@ -1684,36 +1684,36 @@ pub const cpu_gfx908 = Cpu{...@@ -1684,36 +1684,36 @@ pub const cpu_gfx908 = Cpu{
1684 &feature_dot5Insts,1684 &feature_dot5Insts,
1685 &feature_dot6Insts,1685 &feature_dot6Insts,
1686 &feature_fmaMixInsts,1686 &feature_fmaMixInsts,
1687 &feature_sdwaOmod,1687 &feature_apertureRegs,
1688 &feature_sMemrealtime,1688 &feature_flatGlobalInsts,
1689 &feature_scalarStores,1689 &feature_BitInsts16,
1690 &feature_vop3p,
1690 &feature_flatAddressSpace,1691 &feature_flatAddressSpace,
1691 &feature_vgprIndexMode,1692 &feature_dpp,
1692 &feature_gfx9Insts,1693 &feature_inv2piInlineImm,
1693 &feature_r128A16,1694 &feature_sdwa,
1694 &feature_fastFmaf,
1695 &feature_wavefrontsize64,
1696 &feature_flatScratchInsts,1695 &feature_flatScratchInsts,
1696 &feature_flatInstOffsets,
1697 &feature_scalarFlatScratchInsts,
1698 &feature_sMemrealtime,
1699 &feature_fastFmaf,
1700 &feature_gfx9Insts,
1697 &feature_sdwaSdst,1701 &feature_sdwaSdst,
1698 &feature_vop3p,1702 &feature_vgprIndexMode,
1699 &feature_intClampInsts,1703 &feature_fp64,
1700 &feature_dpp,
1701 &feature_scalarAtomics,
1702 &feature_gcn3Encoding,
1703 &feature_gfx8Insts,
1704 &feature_gfx7Gfx8Gfx9Insts,1704 &feature_gfx7Gfx8Gfx9Insts,
1705 &feature_sdwa,1705 &feature_gfx8Insts,
1706 &feature_flatGlobalInsts,
1707 &feature_localmemorysize65536,1706 &feature_localmemorysize65536,
1708 &feature_BitInsts16,1707 &feature_intClampInsts,
1709 &feature_addNoCarryInsts,
1710 &feature_flatInstOffsets,
1711 &feature_sdwaScalar,1708 &feature_sdwaScalar,
1712 &feature_inv2piInlineImm,1709 &feature_sdwaOmod,
1713 &feature_apertureRegs,1710 &feature_scalarAtomics,
1714 &feature_fp64,1711 &feature_r128A16,
1712 &feature_wavefrontsize64,
1715 &feature_ciInsts,1713 &feature_ciInsts,
1716 &feature_scalarFlatScratchInsts,1714 &feature_scalarStores,
1715 &feature_gcn3Encoding,
1716 &feature_addNoCarryInsts,
1717 &feature_ldsbankcount32,1717 &feature_ldsbankcount32,
1718 &feature_maiInsts,1718 &feature_maiInsts,
1719 &feature_mfmaInlineLiteralBug,1719 &feature_mfmaInlineLiteralBug,
...@@ -1728,36 +1728,36 @@ pub const cpu_gfx909 = Cpu{...@@ -1728,36 +1728,36 @@ pub const cpu_gfx909 = Cpu{
1728 .llvm_name = "gfx909",1728 .llvm_name = "gfx909",
1729 .dependencies = &[_]*const Feature {1729 .dependencies = &[_]*const Feature {
1730 &feature_codeObjectV3,1730 &feature_codeObjectV3,
1731 &feature_sdwaOmod,1731 &feature_apertureRegs,
1732 &feature_flatGlobalInsts,
1733 &feature_BitInsts16,
1734 &feature_vop3p,
1735 &feature_flatAddressSpace,
1736 &feature_dpp,
1737 &feature_inv2piInlineImm,
1738 &feature_sdwa,
1739 &feature_flatScratchInsts,
1740 &feature_flatInstOffsets,
1741 &feature_scalarFlatScratchInsts,
1732 &feature_sMemrealtime,1742 &feature_sMemrealtime,
1733 &feature_scalarStores,
1734 &feature_flatAddressSpace,
1735 &feature_vgprIndexMode,
1736 &feature_gfx9Insts,
1737 &feature_r128A16,
1738 &feature_fastFmaf,1743 &feature_fastFmaf,
1739 &feature_wavefrontsize64,1744 &feature_gfx9Insts,
1740 &feature_flatScratchInsts,
1741 &feature_sdwaSdst,1745 &feature_sdwaSdst,
1742 &feature_vop3p,1746 &feature_vgprIndexMode,
1743 &feature_intClampInsts,1747 &feature_fp64,
1744 &feature_dpp,
1745 &feature_scalarAtomics,
1746 &feature_gcn3Encoding,
1747 &feature_gfx8Insts,
1748 &feature_gfx7Gfx8Gfx9Insts,1748 &feature_gfx7Gfx8Gfx9Insts,
1749 &feature_sdwa,1749 &feature_gfx8Insts,
1750 &feature_flatGlobalInsts,
1751 &feature_localmemorysize65536,1750 &feature_localmemorysize65536,
1752 &feature_BitInsts16,1751 &feature_intClampInsts,
1753 &feature_addNoCarryInsts,
1754 &feature_flatInstOffsets,
1755 &feature_sdwaScalar,1752 &feature_sdwaScalar,
1756 &feature_inv2piInlineImm,1753 &feature_sdwaOmod,
1757 &feature_apertureRegs,1754 &feature_scalarAtomics,
1758 &feature_fp64,1755 &feature_r128A16,
1756 &feature_wavefrontsize64,
1759 &feature_ciInsts,1757 &feature_ciInsts,
1760 &feature_scalarFlatScratchInsts,1758 &feature_scalarStores,
1759 &feature_gcn3Encoding,
1760 &feature_addNoCarryInsts,
1761 &feature_ldsbankcount32,1761 &feature_ldsbankcount32,
1762 &feature_madMixInsts,1762 &feature_madMixInsts,
1763 &feature_xnack,1763 &feature_xnack,
...@@ -1773,11 +1773,11 @@ pub const cpu_hainan = Cpu{...@@ -1773,11 +1773,11 @@ pub const cpu_hainan = Cpu{
1773 &feature_ldsbankcount32,1773 &feature_ldsbankcount32,
1774 &feature_movrel,1774 &feature_movrel,
1775 &feature_trigReducedRange,1775 &feature_trigReducedRange,
1776 &feature_mimgR128,
1777 &feature_localmemorysize32768,
1778 &feature_wavefrontsize64,1776 &feature_wavefrontsize64,
1779 &feature_noSramEccSupport,1777 &feature_localmemorysize32768,
1780 &feature_fp64,1778 &feature_fp64,
1779 &feature_noSramEccSupport,
1780 &feature_mimgR128,
1781 },1781 },
1782};1782};
17831783
...@@ -1790,15 +1790,15 @@ pub const cpu_hawaii = Cpu{...@@ -1790,15 +1790,15 @@ pub const cpu_hawaii = Cpu{
1790 &feature_fastFmaf,1790 &feature_fastFmaf,
1791 &feature_ldsbankcount32,1791 &feature_ldsbankcount32,
1792 &feature_movrel,1792 &feature_movrel,
1793 &feature_flatAddressSpace,
1794 &feature_trigReducedRange,1793 &feature_trigReducedRange,
1795 &feature_gfx7Gfx8Gfx9Insts,
1796 &feature_wavefrontsize64,1794 &feature_wavefrontsize64,
1795 &feature_ciInsts,
1796 &feature_fp64,
1797 &feature_gfx7Gfx8Gfx9Insts,
1797 &feature_mimgR128,1798 &feature_mimgR128,
1798 &feature_noSramEccSupport,1799 &feature_noSramEccSupport,
1800 &feature_flatAddressSpace,
1799 &feature_localmemorysize65536,1801 &feature_localmemorysize65536,
1800 &feature_fp64,
1801 &feature_ciInsts,
1802 &feature_halfRate64Ops,1802 &feature_halfRate64Ops,
1803 },1803 },
1804};1804};
...@@ -1812,28 +1812,28 @@ pub const cpu_iceland = Cpu{...@@ -1812,28 +1812,28 @@ pub const cpu_iceland = Cpu{
1812 &feature_ldsbankcount32,1812 &feature_ldsbankcount32,
1813 &feature_sgprInitBug,1813 &feature_sgprInitBug,
1814 &feature_unpackedD16Vmem,1814 &feature_unpackedD16Vmem,
1815 &feature_sMemrealtime,1815 &feature_BitInsts16,
1816 &feature_scalarStores,
1817 &feature_flatAddressSpace,1816 &feature_flatAddressSpace,
1818 &feature_vgprIndexMode,
1819 &feature_wavefrontsize64,
1820 &feature_mimgR128,
1821 &feature_intClampInsts,
1822 &feature_dpp,1817 &feature_dpp,
1823 &feature_movrel,
1824 &feature_gcn3Encoding,
1825 &feature_gfx8Insts,
1826 &feature_trigReducedRange,
1827 &feature_gfx7Gfx8Gfx9Insts,
1828 &feature_sdwaMav,
1829 &feature_sdwa,1818 &feature_sdwa,
1830 &feature_localmemorysize65536,1819 &feature_mimgR128,
1831 &feature_BitInsts16,
1832 &feature_sdwaOutModsVopc,
1833 &feature_inv2piInlineImm,1820 &feature_inv2piInlineImm,
1834 &feature_noSramEccSupport,1821 &feature_sdwaOutModsVopc,
1822 &feature_sMemrealtime,
1823 &feature_trigReducedRange,
1824 &feature_vgprIndexMode,
1835 &feature_fp64,1825 &feature_fp64,
1826 &feature_gfx7Gfx8Gfx9Insts,
1827 &feature_noSramEccSupport,
1828 &feature_gfx8Insts,
1829 &feature_localmemorysize65536,
1830 &feature_movrel,
1831 &feature_intClampInsts,
1832 &feature_sdwaMav,
1833 &feature_wavefrontsize64,
1836 &feature_ciInsts,1834 &feature_ciInsts,
1835 &feature_scalarStores,
1836 &feature_gcn3Encoding,
1837 },1837 },
1838};1838};
18391839
...@@ -1845,15 +1845,15 @@ pub const cpu_kabini = Cpu{...@@ -1845,15 +1845,15 @@ pub const cpu_kabini = Cpu{
1845 &feature_noXnackSupport,1845 &feature_noXnackSupport,
1846 &feature_ldsbankcount16,1846 &feature_ldsbankcount16,
1847 &feature_movrel,1847 &feature_movrel,
1848 &feature_flatAddressSpace,
1849 &feature_trigReducedRange,1848 &feature_trigReducedRange,
1850 &feature_gfx7Gfx8Gfx9Insts,
1851 &feature_wavefrontsize64,1849 &feature_wavefrontsize64,
1850 &feature_ciInsts,
1851 &feature_fp64,
1852 &feature_gfx7Gfx8Gfx9Insts,
1852 &feature_mimgR128,1853 &feature_mimgR128,
1853 &feature_noSramEccSupport,1854 &feature_noSramEccSupport,
1855 &feature_flatAddressSpace,
1854 &feature_localmemorysize65536,1856 &feature_localmemorysize65536,
1855 &feature_fp64,
1856 &feature_ciInsts,
1857 },1857 },
1858};1858};
18591859
...@@ -1865,15 +1865,15 @@ pub const cpu_kaveri = Cpu{...@@ -1865,15 +1865,15 @@ pub const cpu_kaveri = Cpu{
1865 &feature_noXnackSupport,1865 &feature_noXnackSupport,
1866 &feature_ldsbankcount32,1866 &feature_ldsbankcount32,
1867 &feature_movrel,1867 &feature_movrel,
1868 &feature_flatAddressSpace,
1869 &feature_trigReducedRange,1868 &feature_trigReducedRange,
1870 &feature_gfx7Gfx8Gfx9Insts,
1871 &feature_wavefrontsize64,1869 &feature_wavefrontsize64,
1870 &feature_ciInsts,
1871 &feature_fp64,
1872 &feature_gfx7Gfx8Gfx9Insts,
1872 &feature_mimgR128,1873 &feature_mimgR128,
1873 &feature_noSramEccSupport,1874 &feature_noSramEccSupport,
1875 &feature_flatAddressSpace,
1874 &feature_localmemorysize65536,1876 &feature_localmemorysize65536,
1875 &feature_fp64,
1876 &feature_ciInsts,
1877 },1877 },
1878};1878};
18791879
...@@ -1885,15 +1885,15 @@ pub const cpu_mullins = Cpu{...@@ -1885,15 +1885,15 @@ pub const cpu_mullins = Cpu{
1885 &feature_noXnackSupport,1885 &feature_noXnackSupport,
1886 &feature_ldsbankcount16,1886 &feature_ldsbankcount16,
1887 &feature_movrel,1887 &feature_movrel,
1888 &feature_flatAddressSpace,
1889 &feature_trigReducedRange,1888 &feature_trigReducedRange,
1890 &feature_gfx7Gfx8Gfx9Insts,
1891 &feature_wavefrontsize64,1889 &feature_wavefrontsize64,
1890 &feature_ciInsts,
1891 &feature_fp64,
1892 &feature_gfx7Gfx8Gfx9Insts,
1892 &feature_mimgR128,1893 &feature_mimgR128,
1893 &feature_noSramEccSupport,1894 &feature_noSramEccSupport,
1895 &feature_flatAddressSpace,
1894 &feature_localmemorysize65536,1896 &feature_localmemorysize65536,
1895 &feature_fp64,
1896 &feature_ciInsts,
1897 },1897 },
1898};1898};
18991899
...@@ -1906,11 +1906,11 @@ pub const cpu_oland = Cpu{...@@ -1906,11 +1906,11 @@ pub const cpu_oland = Cpu{
1906 &feature_ldsbankcount32,1906 &feature_ldsbankcount32,
1907 &feature_movrel,1907 &feature_movrel,
1908 &feature_trigReducedRange,1908 &feature_trigReducedRange,
1909 &feature_mimgR128,
1910 &feature_localmemorysize32768,
1911 &feature_wavefrontsize64,1909 &feature_wavefrontsize64,
1912 &feature_noSramEccSupport,1910 &feature_localmemorysize32768,
1913 &feature_fp64,1911 &feature_fp64,
1912 &feature_noSramEccSupport,
1913 &feature_mimgR128,
1914 },1914 },
1915};1915};
19161916
...@@ -1923,11 +1923,11 @@ pub const cpu_pitcairn = Cpu{...@@ -1923,11 +1923,11 @@ pub const cpu_pitcairn = Cpu{
1923 &feature_ldsbankcount32,1923 &feature_ldsbankcount32,
1924 &feature_movrel,1924 &feature_movrel,
1925 &feature_trigReducedRange,1925 &feature_trigReducedRange,
1926 &feature_mimgR128,
1927 &feature_localmemorysize32768,
1928 &feature_wavefrontsize64,1926 &feature_wavefrontsize64,
1929 &feature_noSramEccSupport,1927 &feature_localmemorysize32768,
1930 &feature_fp64,1928 &feature_fp64,
1929 &feature_noSramEccSupport,
1930 &feature_mimgR128,
1931 },1931 },
1932};1932};
19331933
...@@ -1939,28 +1939,28 @@ pub const cpu_polaris10 = Cpu{...@@ -1939,28 +1939,28 @@ pub const cpu_polaris10 = Cpu{
1939 &feature_noXnackSupport,1939 &feature_noXnackSupport,
1940 &feature_ldsbankcount32,1940 &feature_ldsbankcount32,
1941 &feature_unpackedD16Vmem,1941 &feature_unpackedD16Vmem,
1942 &feature_sMemrealtime,1942 &feature_BitInsts16,
1943 &feature_scalarStores,
1944 &feature_flatAddressSpace,1943 &feature_flatAddressSpace,
1945 &feature_vgprIndexMode,
1946 &feature_wavefrontsize64,
1947 &feature_mimgR128,
1948 &feature_intClampInsts,
1949 &feature_dpp,1944 &feature_dpp,
1950 &feature_movrel,
1951 &feature_gcn3Encoding,
1952 &feature_gfx8Insts,
1953 &feature_trigReducedRange,
1954 &feature_gfx7Gfx8Gfx9Insts,
1955 &feature_sdwaMav,
1956 &feature_sdwa,1945 &feature_sdwa,
1957 &feature_localmemorysize65536,1946 &feature_mimgR128,
1958 &feature_BitInsts16,
1959 &feature_sdwaOutModsVopc,
1960 &feature_inv2piInlineImm,1947 &feature_inv2piInlineImm,
1961 &feature_noSramEccSupport,1948 &feature_sdwaOutModsVopc,
1949 &feature_sMemrealtime,
1950 &feature_trigReducedRange,
1951 &feature_vgprIndexMode,
1962 &feature_fp64,1952 &feature_fp64,
1953 &feature_gfx7Gfx8Gfx9Insts,
1954 &feature_noSramEccSupport,
1955 &feature_gfx8Insts,
1956 &feature_localmemorysize65536,
1957 &feature_movrel,
1958 &feature_intClampInsts,
1959 &feature_sdwaMav,
1960 &feature_wavefrontsize64,
1963 &feature_ciInsts,1961 &feature_ciInsts,
1962 &feature_scalarStores,
1963 &feature_gcn3Encoding,
1964 },1964 },
1965};1965};
19661966
...@@ -1972,28 +1972,28 @@ pub const cpu_polaris11 = Cpu{...@@ -1972,28 +1972,28 @@ pub const cpu_polaris11 = Cpu{
1972 &feature_noXnackSupport,1972 &feature_noXnackSupport,
1973 &feature_ldsbankcount32,1973 &feature_ldsbankcount32,
1974 &feature_unpackedD16Vmem,1974 &feature_unpackedD16Vmem,
1975 &feature_sMemrealtime,1975 &feature_BitInsts16,
1976 &feature_scalarStores,
1977 &feature_flatAddressSpace,1976 &feature_flatAddressSpace,
1978 &feature_vgprIndexMode,
1979 &feature_wavefrontsize64,
1980 &feature_mimgR128,
1981 &feature_intClampInsts,
1982 &feature_dpp,1977 &feature_dpp,
1983 &feature_movrel,
1984 &feature_gcn3Encoding,
1985 &feature_gfx8Insts,
1986 &feature_trigReducedRange,
1987 &feature_gfx7Gfx8Gfx9Insts,
1988 &feature_sdwaMav,
1989 &feature_sdwa,1978 &feature_sdwa,
1990 &feature_localmemorysize65536,1979 &feature_mimgR128,
1991 &feature_BitInsts16,
1992 &feature_sdwaOutModsVopc,
1993 &feature_inv2piInlineImm,1980 &feature_inv2piInlineImm,
1994 &feature_noSramEccSupport,1981 &feature_sdwaOutModsVopc,
1982 &feature_sMemrealtime,
1983 &feature_trigReducedRange,
1984 &feature_vgprIndexMode,
1995 &feature_fp64,1985 &feature_fp64,
1986 &feature_gfx7Gfx8Gfx9Insts,
1987 &feature_noSramEccSupport,
1988 &feature_gfx8Insts,
1989 &feature_localmemorysize65536,
1990 &feature_movrel,
1991 &feature_intClampInsts,
1992 &feature_sdwaMav,
1993 &feature_wavefrontsize64,
1996 &feature_ciInsts,1994 &feature_ciInsts,
1995 &feature_scalarStores,
1996 &feature_gcn3Encoding,
1997 },1997 },
1998};1998};
19991999
...@@ -2003,28 +2003,28 @@ pub const cpu_stoney = Cpu{...@@ -2003,28 +2003,28 @@ pub const cpu_stoney = Cpu{
2003 .dependencies = &[_]*const Feature {2003 .dependencies = &[_]*const Feature {
2004 &feature_codeObjectV3,2004 &feature_codeObjectV3,
2005 &feature_ldsbankcount16,2005 &feature_ldsbankcount16,
2006 &feature_sMemrealtime,2006 &feature_BitInsts16,
2007 &feature_scalarStores,
2008 &feature_flatAddressSpace,2007 &feature_flatAddressSpace,
2009 &feature_vgprIndexMode,
2010 &feature_wavefrontsize64,
2011 &feature_mimgR128,
2012 &feature_intClampInsts,
2013 &feature_dpp,2008 &feature_dpp,
2014 &feature_movrel,
2015 &feature_gcn3Encoding,
2016 &feature_gfx8Insts,
2017 &feature_trigReducedRange,
2018 &feature_gfx7Gfx8Gfx9Insts,
2019 &feature_sdwaMav,
2020 &feature_sdwa,2009 &feature_sdwa,
2021 &feature_localmemorysize65536,2010 &feature_mimgR128,
2022 &feature_BitInsts16,
2023 &feature_sdwaOutModsVopc,
2024 &feature_inv2piInlineImm,2011 &feature_inv2piInlineImm,
2025 &feature_noSramEccSupport,2012 &feature_sdwaOutModsVopc,
2013 &feature_sMemrealtime,
2014 &feature_trigReducedRange,
2015 &feature_vgprIndexMode,
2026 &feature_fp64,2016 &feature_fp64,
2017 &feature_gfx7Gfx8Gfx9Insts,
2018 &feature_noSramEccSupport,
2019 &feature_gfx8Insts,
2020 &feature_localmemorysize65536,
2021 &feature_movrel,
2022 &feature_intClampInsts,
2023 &feature_sdwaMav,
2024 &feature_wavefrontsize64,
2027 &feature_ciInsts,2025 &feature_ciInsts,
2026 &feature_scalarStores,
2027 &feature_gcn3Encoding,
2028 &feature_xnack,2028 &feature_xnack,
2029 },2029 },
2030};2030};
...@@ -2039,11 +2039,11 @@ pub const cpu_tahiti = Cpu{...@@ -2039,11 +2039,11 @@ pub const cpu_tahiti = Cpu{
2039 &feature_ldsbankcount32,2039 &feature_ldsbankcount32,
2040 &feature_movrel,2040 &feature_movrel,
2041 &feature_trigReducedRange,2041 &feature_trigReducedRange,
2042 &feature_mimgR128,
2043 &feature_localmemorysize32768,
2044 &feature_wavefrontsize64,2042 &feature_wavefrontsize64,
2045 &feature_noSramEccSupport,2043 &feature_localmemorysize32768,
2046 &feature_fp64,2044 &feature_fp64,
2045 &feature_noSramEccSupport,
2046 &feature_mimgR128,
2047 &feature_halfRate64Ops,2047 &feature_halfRate64Ops,
2048 },2048 },
2049};2049};
...@@ -2057,28 +2057,28 @@ pub const cpu_tonga = Cpu{...@@ -2057,28 +2057,28 @@ pub const cpu_tonga = Cpu{
2057 &feature_ldsbankcount32,2057 &feature_ldsbankcount32,
2058 &feature_sgprInitBug,2058 &feature_sgprInitBug,
2059 &feature_unpackedD16Vmem,2059 &feature_unpackedD16Vmem,
2060 &feature_sMemrealtime,2060 &feature_BitInsts16,
2061 &feature_scalarStores,
2062 &feature_flatAddressSpace,2061 &feature_flatAddressSpace,
2063 &feature_vgprIndexMode,
2064 &feature_wavefrontsize64,
2065 &feature_mimgR128,
2066 &feature_intClampInsts,
2067 &feature_dpp,2062 &feature_dpp,
2068 &feature_movrel,
2069 &feature_gcn3Encoding,
2070 &feature_gfx8Insts,
2071 &feature_trigReducedRange,
2072 &feature_gfx7Gfx8Gfx9Insts,
2073 &feature_sdwaMav,
2074 &feature_sdwa,2063 &feature_sdwa,
2075 &feature_localmemorysize65536,2064 &feature_mimgR128,
2076 &feature_BitInsts16,
2077 &feature_sdwaOutModsVopc,
2078 &feature_inv2piInlineImm,2065 &feature_inv2piInlineImm,
2079 &feature_noSramEccSupport,2066 &feature_sdwaOutModsVopc,
2067 &feature_sMemrealtime,
2068 &feature_trigReducedRange,
2069 &feature_vgprIndexMode,
2080 &feature_fp64,2070 &feature_fp64,
2071 &feature_gfx7Gfx8Gfx9Insts,
2072 &feature_noSramEccSupport,
2073 &feature_gfx8Insts,
2074 &feature_localmemorysize65536,
2075 &feature_movrel,
2076 &feature_intClampInsts,
2077 &feature_sdwaMav,
2078 &feature_wavefrontsize64,
2081 &feature_ciInsts,2079 &feature_ciInsts,
2080 &feature_scalarStores,
2081 &feature_gcn3Encoding,
2082 },2082 },
2083};2083};
20842084
...@@ -2091,11 +2091,11 @@ pub const cpu_verde = Cpu{...@@ -2091,11 +2091,11 @@ pub const cpu_verde = Cpu{
2091 &feature_ldsbankcount32,2091 &feature_ldsbankcount32,
2092 &feature_movrel,2092 &feature_movrel,
2093 &feature_trigReducedRange,2093 &feature_trigReducedRange,
2094 &feature_mimgR128,
2095 &feature_localmemorysize32768,
2096 &feature_wavefrontsize64,2094 &feature_wavefrontsize64,
2097 &feature_noSramEccSupport,2095 &feature_localmemorysize32768,
2098 &feature_fp64,2096 &feature_fp64,
2097 &feature_noSramEccSupport,
2098 &feature_mimgR128,
2099 },2099 },
2100};2100};
21012101
lib/std/target/arm.zig+422-422
...@@ -2,7 +2,7 @@ const Feature = @import("std").target.Feature;...@@ -2,7 +2,7 @@ const Feature = @import("std").target.Feature;
2const Cpu = @import("std").target.Cpu;2const Cpu = @import("std").target.Cpu;
33
4pub const feature_msecext8 = Feature{4pub const feature_msecext8 = Feature{
5 .name = "8msecext",5 .name = "msecext8",
6 .llvm_name = "8msecext",6 .llvm_name = "8msecext",
7 .description = "Enable support for ARMv8-M Security Extensions",7 .description = "Enable support for ARMv8-M Security Extensions",
8 .dependencies = &[_]*const Feature {8 .dependencies = &[_]*const Feature {
...@@ -28,7 +28,7 @@ pub const feature_aes = Feature{...@@ -28,7 +28,7 @@ pub const feature_aes = Feature{
28};28};
2929
30pub const feature_acquireRelease = Feature{30pub const feature_acquireRelease = Feature{
31 .name = "acquire-release",31 .name = "acquireRelease",
32 .llvm_name = "acquire-release",32 .llvm_name = "acquire-release",
33 .description = "Has v8 acquire/release (lda/ldaex etc) instructions",33 .description = "Has v8 acquire/release (lda/ldaex etc) instructions",
34 .dependencies = &[_]*const Feature {34 .dependencies = &[_]*const Feature {
...@@ -36,7 +36,7 @@ pub const feature_acquireRelease = Feature{...@@ -36,7 +36,7 @@ pub const feature_acquireRelease = Feature{
36};36};
3737
38pub const feature_avoidMovsShop = Feature{38pub const feature_avoidMovsShop = Feature{
39 .name = "avoid-movs-shop",39 .name = "avoidMovsShop",
40 .llvm_name = "avoid-movs-shop",40 .llvm_name = "avoid-movs-shop",
41 .description = "Avoid movs instructions with shifter operand",41 .description = "Avoid movs instructions with shifter operand",
42 .dependencies = &[_]*const Feature {42 .dependencies = &[_]*const Feature {
...@@ -44,7 +44,7 @@ pub const feature_avoidMovsShop = Feature{...@@ -44,7 +44,7 @@ pub const feature_avoidMovsShop = Feature{
44};44};
4545
46pub const feature_avoidPartialCpsr = Feature{46pub const feature_avoidPartialCpsr = Feature{
47 .name = "avoid-partial-cpsr",47 .name = "avoidPartialCpsr",
48 .llvm_name = "avoid-partial-cpsr",48 .llvm_name = "avoid-partial-cpsr",
49 .description = "Avoid CPSR partial update for OOO execution",49 .description = "Avoid CPSR partial update for OOO execution",
50 .dependencies = &[_]*const Feature {50 .dependencies = &[_]*const Feature {
...@@ -60,7 +60,7 @@ pub const feature_crc = Feature{...@@ -60,7 +60,7 @@ pub const feature_crc = Feature{
60};60};
6161
62pub const feature_cheapPredicableCpsr = Feature{62pub const feature_cheapPredicableCpsr = Feature{
63 .name = "cheap-predicable-cpsr",63 .name = "cheapPredicableCpsr",
64 .llvm_name = "cheap-predicable-cpsr",64 .llvm_name = "cheap-predicable-cpsr",
65 .description = "Disable +1 predication cost for instructions updating CPSR",65 .description = "Disable +1 predication cost for instructions updating CPSR",
66 .dependencies = &[_]*const Feature {66 .dependencies = &[_]*const Feature {
...@@ -68,7 +68,7 @@ pub const feature_cheapPredicableCpsr = Feature{...@@ -68,7 +68,7 @@ pub const feature_cheapPredicableCpsr = Feature{
68};68};
6969
70pub const feature_vldnAlign = Feature{70pub const feature_vldnAlign = Feature{
71 .name = "vldn-align",71 .name = "vldnAlign",
72 .llvm_name = "vldn-align",72 .llvm_name = "vldn-align",
73 .description = "Check for VLDn unaligned access",73 .description = "Check for VLDn unaligned access",
74 .dependencies = &[_]*const Feature {74 .dependencies = &[_]*const Feature {
...@@ -118,7 +118,7 @@ pub const feature_dsp = Feature{...@@ -118,7 +118,7 @@ pub const feature_dsp = Feature{
118};118};
119119
120pub const feature_dontWidenVmovs = Feature{120pub const feature_dontWidenVmovs = Feature{
121 .name = "dont-widen-vmovs",121 .name = "dontWidenVmovs",
122 .llvm_name = "dont-widen-vmovs",122 .llvm_name = "dont-widen-vmovs",
123 .description = "Don't widen VMOVS to VMOVD",123 .description = "Don't widen VMOVS to VMOVD",
124 .dependencies = &[_]*const Feature {124 .dependencies = &[_]*const Feature {
...@@ -136,7 +136,7 @@ pub const feature_dotprod = Feature{...@@ -136,7 +136,7 @@ pub const feature_dotprod = Feature{
136};136};
137137
138pub const feature_executeOnly = Feature{138pub const feature_executeOnly = Feature{
139 .name = "execute-only",139 .name = "executeOnly",
140 .llvm_name = "execute-only",140 .llvm_name = "execute-only",
141 .description = "Enable the generation of execute only code.",141 .description = "Enable the generation of execute only code.",
142 .dependencies = &[_]*const Feature {142 .dependencies = &[_]*const Feature {
...@@ -144,7 +144,7 @@ pub const feature_executeOnly = Feature{...@@ -144,7 +144,7 @@ pub const feature_executeOnly = Feature{
144};144};
145145
146pub const feature_expandFpMlx = Feature{146pub const feature_expandFpMlx = Feature{
147 .name = "expand-fp-mlx",147 .name = "expandFpMlx",
148 .llvm_name = "expand-fp-mlx",148 .llvm_name = "expand-fp-mlx",
149 .description = "Expand VFP/NEON MLA/MLS instructions",149 .description = "Expand VFP/NEON MLA/MLS instructions",
150 .dependencies = &[_]*const Feature {150 .dependencies = &[_]*const Feature {
...@@ -164,8 +164,8 @@ pub const feature_fp16fml = Feature{...@@ -164,8 +164,8 @@ pub const feature_fp16fml = Feature{
164 .llvm_name = "fp16fml",164 .llvm_name = "fp16fml",
165 .description = "Enable full half-precision floating point fml instructions",165 .description = "Enable full half-precision floating point fml instructions",
166 .dependencies = &[_]*const Feature {166 .dependencies = &[_]*const Feature {
167 &feature_fp16,
168 &feature_fpregs,167 &feature_fpregs,
168 &feature_fp16,
169 },169 },
170};170};
171171
...@@ -187,44 +187,44 @@ pub const feature_fpao = Feature{...@@ -187,44 +187,44 @@ pub const feature_fpao = Feature{
187};187};
188188
189pub const feature_fpArmv8 = Feature{189pub const feature_fpArmv8 = Feature{
190 .name = "fp-armv8",190 .name = "fpArmv8",
191 .llvm_name = "fp-armv8",191 .llvm_name = "fp-armv8",
192 .description = "Enable ARMv8 FP",192 .description = "Enable ARMv8 FP",
193 .dependencies = &[_]*const Feature {193 .dependencies = &[_]*const Feature {
194 &feature_fp16,
195 &feature_d32,194 &feature_d32,
196 &feature_fpregs,195 &feature_fpregs,
196 &feature_fp16,
197 },197 },
198};198};
199199
200pub const feature_fpArmv8d16 = Feature{200pub const feature_fpArmv8d16 = Feature{
201 .name = "fp-armv8d16",201 .name = "fpArmv8d16",
202 .llvm_name = "fp-armv8d16",202 .llvm_name = "fp-armv8d16",
203 .description = "Enable ARMv8 FP with only 16 d-registers",203 .description = "Enable ARMv8 FP with only 16 d-registers",
204 .dependencies = &[_]*const Feature {204 .dependencies = &[_]*const Feature {
205 &feature_fp16,
206 &feature_fpregs,205 &feature_fpregs,
206 &feature_fp16,
207 },207 },
208};208};
209209
210pub const feature_fpArmv8d16sp = Feature{210pub const feature_fpArmv8d16sp = Feature{
211 .name = "fp-armv8d16sp",211 .name = "fpArmv8d16sp",
212 .llvm_name = "fp-armv8d16sp",212 .llvm_name = "fp-armv8d16sp",
213 .description = "Enable ARMv8 FP with only 16 d-registers and no double precision",213 .description = "Enable ARMv8 FP with only 16 d-registers and no double precision",
214 .dependencies = &[_]*const Feature {214 .dependencies = &[_]*const Feature {
215 &feature_fp16,
216 &feature_fpregs,215 &feature_fpregs,
216 &feature_fp16,
217 },217 },
218};218};
219219
220pub const feature_fpArmv8sp = Feature{220pub const feature_fpArmv8sp = Feature{
221 .name = "fp-armv8sp",221 .name = "fpArmv8sp",
222 .llvm_name = "fp-armv8sp",222 .llvm_name = "fp-armv8sp",
223 .description = "Enable ARMv8 FP with no double precision",223 .description = "Enable ARMv8 FP with no double precision",
224 .dependencies = &[_]*const Feature {224 .dependencies = &[_]*const Feature {
225 &feature_fp16,
226 &feature_d32,225 &feature_d32,
227 &feature_fpregs,226 &feature_fpregs,
227 &feature_fp16,
228 },228 },
229};229};
230230
...@@ -259,13 +259,13 @@ pub const feature_fullfp16 = Feature{...@@ -259,13 +259,13 @@ pub const feature_fullfp16 = Feature{
259 .llvm_name = "fullfp16",259 .llvm_name = "fullfp16",
260 .description = "Enable full half-precision floating point",260 .description = "Enable full half-precision floating point",
261 .dependencies = &[_]*const Feature {261 .dependencies = &[_]*const Feature {
262 &feature_fp16,
263 &feature_fpregs,262 &feature_fpregs,
263 &feature_fp16,
264 },264 },
265};265};
266266
267pub const feature_fuseAes = Feature{267pub const feature_fuseAes = Feature{
268 .name = "fuse-aes",268 .name = "fuseAes",
269 .llvm_name = "fuse-aes",269 .llvm_name = "fuse-aes",
270 .description = "CPU fuses AES crypto operations",270 .description = "CPU fuses AES crypto operations",
271 .dependencies = &[_]*const Feature {271 .dependencies = &[_]*const Feature {
...@@ -273,7 +273,7 @@ pub const feature_fuseAes = Feature{...@@ -273,7 +273,7 @@ pub const feature_fuseAes = Feature{
273};273};
274274
275pub const feature_fuseLiterals = Feature{275pub const feature_fuseLiterals = Feature{
276 .name = "fuse-literals",276 .name = "fuseLiterals",
277 .llvm_name = "fuse-literals",277 .llvm_name = "fuse-literals",
278 .description = "CPU fuses literal generation operations",278 .description = "CPU fuses literal generation operations",
279 .dependencies = &[_]*const Feature {279 .dependencies = &[_]*const Feature {
...@@ -281,7 +281,7 @@ pub const feature_fuseLiterals = Feature{...@@ -281,7 +281,7 @@ pub const feature_fuseLiterals = Feature{
281};281};
282282
283pub const feature_hwdivArm = Feature{283pub const feature_hwdivArm = Feature{
284 .name = "hwdiv-arm",284 .name = "hwdivArm",
285 .llvm_name = "hwdiv-arm",285 .llvm_name = "hwdiv-arm",
286 .description = "Enable divide instructions in ARM mode",286 .description = "Enable divide instructions in ARM mode",
287 .dependencies = &[_]*const Feature {287 .dependencies = &[_]*const Feature {
...@@ -297,7 +297,7 @@ pub const feature_hwdiv = Feature{...@@ -297,7 +297,7 @@ pub const feature_hwdiv = Feature{
297};297};
298298
299pub const feature_noBranchPredictor = Feature{299pub const feature_noBranchPredictor = Feature{
300 .name = "no-branch-predictor",300 .name = "noBranchPredictor",
301 .llvm_name = "no-branch-predictor",301 .llvm_name = "no-branch-predictor",
302 .description = "Has no branch predictor",302 .description = "Has no branch predictor",
303 .dependencies = &[_]*const Feature {303 .dependencies = &[_]*const Feature {
...@@ -305,7 +305,7 @@ pub const feature_noBranchPredictor = Feature{...@@ -305,7 +305,7 @@ pub const feature_noBranchPredictor = Feature{
305};305};
306306
307pub const feature_retAddrStack = Feature{307pub const feature_retAddrStack = Feature{
308 .name = "ret-addr-stack",308 .name = "retAddrStack",
309 .llvm_name = "ret-addr-stack",309 .llvm_name = "ret-addr-stack",
310 .description = "Has return address stack",310 .description = "Has return address stack",
311 .dependencies = &[_]*const Feature {311 .dependencies = &[_]*const Feature {
...@@ -321,7 +321,7 @@ pub const feature_slowfpvmlx = Feature{...@@ -321,7 +321,7 @@ pub const feature_slowfpvmlx = Feature{
321};321};
322322
323pub const feature_vmlxHazards = Feature{323pub const feature_vmlxHazards = Feature{
324 .name = "vmlx-hazards",324 .name = "vmlxHazards",
325 .llvm_name = "vmlx-hazards",325 .llvm_name = "vmlx-hazards",
326 .description = "Has VMLx hazards",326 .description = "Has VMLx hazards",
327 .dependencies = &[_]*const Feature {327 .dependencies = &[_]*const Feature {
...@@ -337,7 +337,7 @@ pub const feature_lob = Feature{...@@ -337,7 +337,7 @@ pub const feature_lob = Feature{
337};337};
338338
339pub const feature_longCalls = Feature{339pub const feature_longCalls = Feature{
340 .name = "long-calls",340 .name = "longCalls",
341 .llvm_name = "long-calls",341 .llvm_name = "long-calls",
342 .description = "Generate calls via indirect call instructions",342 .description = "Generate calls via indirect call instructions",
343 .dependencies = &[_]*const Feature {343 .dependencies = &[_]*const Feature {
...@@ -385,7 +385,7 @@ pub const feature_mve4beat = Feature{...@@ -385,7 +385,7 @@ pub const feature_mve4beat = Feature{
385};385};
386386
387pub const feature_muxedUnits = Feature{387pub const feature_muxedUnits = Feature{
388 .name = "muxed-units",388 .name = "muxedUnits",
389 .llvm_name = "muxed-units",389 .llvm_name = "muxed-units",
390 .description = "Has muxed AGU and NEON/FPU",390 .description = "Has muxed AGU and NEON/FPU",
391 .dependencies = &[_]*const Feature {391 .dependencies = &[_]*const Feature {
...@@ -411,7 +411,7 @@ pub const feature_neonfp = Feature{...@@ -411,7 +411,7 @@ pub const feature_neonfp = Feature{
411};411};
412412
413pub const feature_neonFpmovs = Feature{413pub const feature_neonFpmovs = Feature{
414 .name = "neon-fpmovs",414 .name = "neonFpmovs",
415 .llvm_name = "neon-fpmovs",415 .llvm_name = "neon-fpmovs",
416 .description = "Convert VMOVSR, VMOVRS, VMOVS to NEON",416 .description = "Convert VMOVSR, VMOVRS, VMOVS to NEON",
417 .dependencies = &[_]*const Feature {417 .dependencies = &[_]*const Feature {
...@@ -419,7 +419,7 @@ pub const feature_neonFpmovs = Feature{...@@ -419,7 +419,7 @@ pub const feature_neonFpmovs = Feature{
419};419};
420420
421pub const feature_naclTrap = Feature{421pub const feature_naclTrap = Feature{
422 .name = "nacl-trap",422 .name = "naclTrap",
423 .llvm_name = "nacl-trap",423 .llvm_name = "nacl-trap",
424 .description = "NaCl trap",424 .description = "NaCl trap",
425 .dependencies = &[_]*const Feature {425 .dependencies = &[_]*const Feature {
...@@ -435,7 +435,7 @@ pub const feature_noarm = Feature{...@@ -435,7 +435,7 @@ pub const feature_noarm = Feature{
435};435};
436436
437pub const feature_noMovt = Feature{437pub const feature_noMovt = Feature{
438 .name = "no-movt",438 .name = "noMovt",
439 .llvm_name = "no-movt",439 .llvm_name = "no-movt",
440 .description = "Don't use movt/movw pairs for 32-bit imms",440 .description = "Don't use movt/movw pairs for 32-bit imms",
441 .dependencies = &[_]*const Feature {441 .dependencies = &[_]*const Feature {
...@@ -443,7 +443,7 @@ pub const feature_noMovt = Feature{...@@ -443,7 +443,7 @@ pub const feature_noMovt = Feature{
443};443};
444444
445pub const feature_noNegImmediates = Feature{445pub const feature_noNegImmediates = Feature{
446 .name = "no-neg-immediates",446 .name = "noNegImmediates",
447 .llvm_name = "no-neg-immediates",447 .llvm_name = "no-neg-immediates",
448 .description = "Convert immediates and instructions to their negated or complemented equivalent when the immediate does not fit in the encoding.",448 .description = "Convert immediates and instructions to their negated or complemented equivalent when the immediate does not fit in the encoding.",
449 .dependencies = &[_]*const Feature {449 .dependencies = &[_]*const Feature {
...@@ -451,7 +451,7 @@ pub const feature_noNegImmediates = Feature{...@@ -451,7 +451,7 @@ pub const feature_noNegImmediates = Feature{
451};451};
452452
453pub const feature_disablePostraScheduler = Feature{453pub const feature_disablePostraScheduler = Feature{
454 .name = "disable-postra-scheduler",454 .name = "disablePostraScheduler",
455 .llvm_name = "disable-postra-scheduler",455 .llvm_name = "disable-postra-scheduler",
456 .description = "Don't schedule again after register allocation",456 .description = "Don't schedule again after register allocation",
457 .dependencies = &[_]*const Feature {457 .dependencies = &[_]*const Feature {
...@@ -459,7 +459,7 @@ pub const feature_disablePostraScheduler = Feature{...@@ -459,7 +459,7 @@ pub const feature_disablePostraScheduler = Feature{
459};459};
460460
461pub const feature_nonpipelinedVfp = Feature{461pub const feature_nonpipelinedVfp = Feature{
462 .name = "nonpipelined-vfp",462 .name = "nonpipelinedVfp",
463 .llvm_name = "nonpipelined-vfp",463 .llvm_name = "nonpipelined-vfp",
464 .description = "VFP instructions are not pipelined",464 .description = "VFP instructions are not pipelined",
465 .dependencies = &[_]*const Feature {465 .dependencies = &[_]*const Feature {
...@@ -475,7 +475,7 @@ pub const feature_perfmon = Feature{...@@ -475,7 +475,7 @@ pub const feature_perfmon = Feature{
475};475};
476476
477pub const feature_bit32 = Feature{477pub const feature_bit32 = Feature{
478 .name = "32bit",478 .name = "bit32",
479 .llvm_name = "32bit",479 .llvm_name = "32bit",
480 .description = "Prefer 32-bit Thumb instrs",480 .description = "Prefer 32-bit Thumb instrs",
481 .dependencies = &[_]*const Feature {481 .dependencies = &[_]*const Feature {
...@@ -483,7 +483,7 @@ pub const feature_bit32 = Feature{...@@ -483,7 +483,7 @@ pub const feature_bit32 = Feature{
483};483};
484484
485pub const feature_preferIshst = Feature{485pub const feature_preferIshst = Feature{
486 .name = "prefer-ishst",486 .name = "preferIshst",
487 .llvm_name = "prefer-ishst",487 .llvm_name = "prefer-ishst",
488 .description = "Prefer ISHST barriers",488 .description = "Prefer ISHST barriers",
489 .dependencies = &[_]*const Feature {489 .dependencies = &[_]*const Feature {
...@@ -491,7 +491,7 @@ pub const feature_preferIshst = Feature{...@@ -491,7 +491,7 @@ pub const feature_preferIshst = Feature{
491};491};
492492
493pub const feature_loopAlign = Feature{493pub const feature_loopAlign = Feature{
494 .name = "loop-align",494 .name = "loopAlign",
495 .llvm_name = "loop-align",495 .llvm_name = "loop-align",
496 .description = "Prefer 32-bit alignment for loops",496 .description = "Prefer 32-bit alignment for loops",
497 .dependencies = &[_]*const Feature {497 .dependencies = &[_]*const Feature {
...@@ -499,7 +499,7 @@ pub const feature_loopAlign = Feature{...@@ -499,7 +499,7 @@ pub const feature_loopAlign = Feature{
499};499};
500500
501pub const feature_preferVmovsr = Feature{501pub const feature_preferVmovsr = Feature{
502 .name = "prefer-vmovsr",502 .name = "preferVmovsr",
503 .llvm_name = "prefer-vmovsr",503 .llvm_name = "prefer-vmovsr",
504 .description = "Prefer VMOVSR",504 .description = "Prefer VMOVSR",
505 .dependencies = &[_]*const Feature {505 .dependencies = &[_]*const Feature {
...@@ -507,7 +507,7 @@ pub const feature_preferVmovsr = Feature{...@@ -507,7 +507,7 @@ pub const feature_preferVmovsr = Feature{
507};507};
508508
509pub const feature_profUnpr = Feature{509pub const feature_profUnpr = Feature{
510 .name = "prof-unpr",510 .name = "profUnpr",
511 .llvm_name = "prof-unpr",511 .llvm_name = "prof-unpr",
512 .description = "Is profitable to unpredicate",512 .description = "Is profitable to unpredicate",
513 .dependencies = &[_]*const Feature {513 .dependencies = &[_]*const Feature {
...@@ -531,7 +531,7 @@ pub const feature_rclass = Feature{...@@ -531,7 +531,7 @@ pub const feature_rclass = Feature{
531};531};
532532
533pub const feature_readTpHard = Feature{533pub const feature_readTpHard = Feature{
534 .name = "read-tp-hard",534 .name = "readTpHard",
535 .llvm_name = "read-tp-hard",535 .llvm_name = "read-tp-hard",
536 .description = "Reading thread pointer from register",536 .description = "Reading thread pointer from register",
537 .dependencies = &[_]*const Feature {537 .dependencies = &[_]*const Feature {
...@@ -539,7 +539,7 @@ pub const feature_readTpHard = Feature{...@@ -539,7 +539,7 @@ pub const feature_readTpHard = Feature{
539};539};
540540
541pub const feature_reserveR9 = Feature{541pub const feature_reserveR9 = Feature{
542 .name = "reserve-r9",542 .name = "reserveR9",
543 .llvm_name = "reserve-r9",543 .llvm_name = "reserve-r9",
544 .description = "Reserve R9, making it unavailable as GPR",544 .description = "Reserve R9, making it unavailable as GPR",
545 .dependencies = &[_]*const Feature {545 .dependencies = &[_]*const Feature {
...@@ -565,7 +565,7 @@ pub const feature_sha2 = Feature{...@@ -565,7 +565,7 @@ pub const feature_sha2 = Feature{
565};565};
566566
567pub const feature_slowFpBrcc = Feature{567pub const feature_slowFpBrcc = Feature{
568 .name = "slow-fp-brcc",568 .name = "slowFpBrcc",
569 .llvm_name = "slow-fp-brcc",569 .llvm_name = "slow-fp-brcc",
570 .description = "FP compare + branch is slow",570 .description = "FP compare + branch is slow",
571 .dependencies = &[_]*const Feature {571 .dependencies = &[_]*const Feature {
...@@ -573,7 +573,7 @@ pub const feature_slowFpBrcc = Feature{...@@ -573,7 +573,7 @@ pub const feature_slowFpBrcc = Feature{
573};573};
574574
575pub const feature_slowLoadDSubreg = Feature{575pub const feature_slowLoadDSubreg = Feature{
576 .name = "slow-load-D-subreg",576 .name = "slowLoadDSubreg",
577 .llvm_name = "slow-load-D-subreg",577 .llvm_name = "slow-load-D-subreg",
578 .description = "Loading into D subregs is slow",578 .description = "Loading into D subregs is slow",
579 .dependencies = &[_]*const Feature {579 .dependencies = &[_]*const Feature {
...@@ -581,7 +581,7 @@ pub const feature_slowLoadDSubreg = Feature{...@@ -581,7 +581,7 @@ pub const feature_slowLoadDSubreg = Feature{
581};581};
582582
583pub const feature_slowOddReg = Feature{583pub const feature_slowOddReg = Feature{
584 .name = "slow-odd-reg",584 .name = "slowOddReg",
585 .llvm_name = "slow-odd-reg",585 .llvm_name = "slow-odd-reg",
586 .description = "VLDM/VSTM starting with an odd register is slow",586 .description = "VLDM/VSTM starting with an odd register is slow",
587 .dependencies = &[_]*const Feature {587 .dependencies = &[_]*const Feature {
...@@ -589,7 +589,7 @@ pub const feature_slowOddReg = Feature{...@@ -589,7 +589,7 @@ pub const feature_slowOddReg = Feature{
589};589};
590590
591pub const feature_slowVdup32 = Feature{591pub const feature_slowVdup32 = Feature{
592 .name = "slow-vdup32",592 .name = "slowVdup32",
593 .llvm_name = "slow-vdup32",593 .llvm_name = "slow-vdup32",
594 .description = "Has slow VDUP32 - prefer VMOV",594 .description = "Has slow VDUP32 - prefer VMOV",
595 .dependencies = &[_]*const Feature {595 .dependencies = &[_]*const Feature {
...@@ -597,7 +597,7 @@ pub const feature_slowVdup32 = Feature{...@@ -597,7 +597,7 @@ pub const feature_slowVdup32 = Feature{
597};597};
598598
599pub const feature_slowVgetlni32 = Feature{599pub const feature_slowVgetlni32 = Feature{
600 .name = "slow-vgetlni32",600 .name = "slowVgetlni32",
601 .llvm_name = "slow-vgetlni32",601 .llvm_name = "slow-vgetlni32",
602 .description = "Has slow VGETLNi32 - prefer VMOV",602 .description = "Has slow VGETLNi32 - prefer VMOV",
603 .dependencies = &[_]*const Feature {603 .dependencies = &[_]*const Feature {
...@@ -605,7 +605,7 @@ pub const feature_slowVgetlni32 = Feature{...@@ -605,7 +605,7 @@ pub const feature_slowVgetlni32 = Feature{
605};605};
606606
607pub const feature_splatVfpNeon = Feature{607pub const feature_splatVfpNeon = Feature{
608 .name = "splat-vfp-neon",608 .name = "splatVfpNeon",
609 .llvm_name = "splat-vfp-neon",609 .llvm_name = "splat-vfp-neon",
610 .description = "Splat register from VFP to NEON",610 .description = "Splat register from VFP to NEON",
611 .dependencies = &[_]*const Feature {611 .dependencies = &[_]*const Feature {
...@@ -614,7 +614,7 @@ pub const feature_splatVfpNeon = Feature{...@@ -614,7 +614,7 @@ pub const feature_splatVfpNeon = Feature{
614};614};
615615
616pub const feature_strictAlign = Feature{616pub const feature_strictAlign = Feature{
617 .name = "strict-align",617 .name = "strictAlign",
618 .llvm_name = "strict-align",618 .llvm_name = "strict-align",
619 .description = "Disallow all unaligned memory access",619 .description = "Disallow all unaligned memory access",
620 .dependencies = &[_]*const Feature {620 .dependencies = &[_]*const Feature {
...@@ -638,7 +638,7 @@ pub const feature_trustzone = Feature{...@@ -638,7 +638,7 @@ pub const feature_trustzone = Feature{
638};638};
639639
640pub const feature_useAa = Feature{640pub const feature_useAa = Feature{
641 .name = "use-aa",641 .name = "useAa",
642 .llvm_name = "use-aa",642 .llvm_name = "use-aa",
643 .description = "Use alias analysis during codegen",643 .description = "Use alias analysis during codegen",
644 .dependencies = &[_]*const Feature {644 .dependencies = &[_]*const Feature {
...@@ -646,7 +646,7 @@ pub const feature_useAa = Feature{...@@ -646,7 +646,7 @@ pub const feature_useAa = Feature{
646};646};
647647
648pub const feature_useMisched = Feature{648pub const feature_useMisched = Feature{
649 .name = "use-misched",649 .name = "useMisched",
650 .llvm_name = "use-misched",650 .llvm_name = "use-misched",
651 .description = "Use the MachineScheduler",651 .description = "Use the MachineScheduler",
652 .dependencies = &[_]*const Feature {652 .dependencies = &[_]*const Feature {
...@@ -654,7 +654,7 @@ pub const feature_useMisched = Feature{...@@ -654,7 +654,7 @@ pub const feature_useMisched = Feature{
654};654};
655655
656pub const feature_wideStrideVfp = Feature{656pub const feature_wideStrideVfp = Feature{
657 .name = "wide-stride-vfp",657 .name = "wideStrideVfp",
658 .llvm_name = "wide-stride-vfp",658 .llvm_name = "wide-stride-vfp",
659 .description = "Use a wide stride when allocating VFP registers",659 .description = "Use a wide stride when allocating VFP registers",
660 .dependencies = &[_]*const Feature {660 .dependencies = &[_]*const Feature {
...@@ -730,9 +730,9 @@ pub const feature_vfp4 = Feature{...@@ -730,9 +730,9 @@ pub const feature_vfp4 = Feature{
730 .llvm_name = "vfp4",730 .llvm_name = "vfp4",
731 .description = "Enable VFP4 instructions",731 .description = "Enable VFP4 instructions",
732 .dependencies = &[_]*const Feature {732 .dependencies = &[_]*const Feature {
733 &feature_fp16,
734 &feature_d32,
735 &feature_fpregs,733 &feature_fpregs,
734 &feature_d32,
735 &feature_fp16,
736 },736 },
737};737};
738738
...@@ -741,8 +741,8 @@ pub const feature_vfp4d16 = Feature{...@@ -741,8 +741,8 @@ pub const feature_vfp4d16 = Feature{
741 .llvm_name = "vfp4d16",741 .llvm_name = "vfp4d16",
742 .description = "Enable VFP4 instructions with only 16 d-registers",742 .description = "Enable VFP4 instructions with only 16 d-registers",
743 .dependencies = &[_]*const Feature {743 .dependencies = &[_]*const Feature {
744 &feature_fp16,
745 &feature_fpregs,744 &feature_fpregs,
745 &feature_fp16,
746 },746 },
747};747};
748748
...@@ -751,8 +751,8 @@ pub const feature_vfp4d16sp = Feature{...@@ -751,8 +751,8 @@ pub const feature_vfp4d16sp = Feature{
751 .llvm_name = "vfp4d16sp",751 .llvm_name = "vfp4d16sp",
752 .description = "Enable VFP4 instructions with only 16 d-registers and no double precision",752 .description = "Enable VFP4 instructions with only 16 d-registers and no double precision",
753 .dependencies = &[_]*const Feature {753 .dependencies = &[_]*const Feature {
754 &feature_fp16,
755 &feature_fpregs,754 &feature_fpregs,
755 &feature_fp16,
756 },756 },
757};757};
758758
...@@ -761,14 +761,14 @@ pub const feature_vfp4sp = Feature{...@@ -761,14 +761,14 @@ pub const feature_vfp4sp = Feature{
761 .llvm_name = "vfp4sp",761 .llvm_name = "vfp4sp",
762 .description = "Enable VFP4 instructions with no double precision",762 .description = "Enable VFP4 instructions with no double precision",
763 .dependencies = &[_]*const Feature {763 .dependencies = &[_]*const Feature {
764 &feature_fp16,
765 &feature_d32,
766 &feature_fpregs,764 &feature_fpregs,
765 &feature_d32,
766 &feature_fp16,
767 },767 },
768};768};
769769
770pub const feature_vmlxForwarding = Feature{770pub const feature_vmlxForwarding = Feature{
771 .name = "vmlx-forwarding",771 .name = "vmlxForwarding",
772 .llvm_name = "vmlx-forwarding",772 .llvm_name = "vmlx-forwarding",
773 .description = "Has multiplier accumulator forwarding",773 .description = "Has multiplier accumulator forwarding",
774 .dependencies = &[_]*const Feature {774 .dependencies = &[_]*const Feature {
...@@ -925,7 +925,7 @@ pub const cpu_arm10tdmi = Cpu{...@@ -925,7 +925,7 @@ pub const cpu_arm10tdmi = Cpu{
925};925};
926926
927pub const cpu_arm1136jS = Cpu{927pub const cpu_arm1136jS = Cpu{
928 .name = "arm1136j-s",928 .name = "arm1136jS",
929 .llvm_name = "arm1136j-s",929 .llvm_name = "arm1136j-s",
930 .dependencies = &[_]*const Feature {930 .dependencies = &[_]*const Feature {
931 &feature_dsp,931 &feature_dsp,
...@@ -933,7 +933,7 @@ pub const cpu_arm1136jS = Cpu{...@@ -933,7 +933,7 @@ pub const cpu_arm1136jS = Cpu{
933};933};
934934
935pub const cpu_arm1136jfS = Cpu{935pub const cpu_arm1136jfS = Cpu{
936 .name = "arm1136jf-s",936 .name = "arm1136jfS",
937 .llvm_name = "arm1136jf-s",937 .llvm_name = "arm1136jf-s",
938 .dependencies = &[_]*const Feature {938 .dependencies = &[_]*const Feature {
939 &feature_dsp,939 &feature_dsp,
...@@ -944,20 +944,20 @@ pub const cpu_arm1136jfS = Cpu{...@@ -944,20 +944,20 @@ pub const cpu_arm1136jfS = Cpu{
944};944};
945945
946pub const cpu_arm1156t2S = Cpu{946pub const cpu_arm1156t2S = Cpu{
947 .name = "arm1156t2-s",947 .name = "arm1156t2S",
948 .llvm_name = "arm1156t2-s",948 .llvm_name = "arm1156t2-s",
949 .dependencies = &[_]*const Feature {949 .dependencies = &[_]*const Feature {
950 &feature_dsp,
951 &feature_thumb2,950 &feature_thumb2,
951 &feature_dsp,
952 },952 },
953};953};
954954
955pub const cpu_arm1156t2fS = Cpu{955pub const cpu_arm1156t2fS = Cpu{
956 .name = "arm1156t2f-s",956 .name = "arm1156t2fS",
957 .llvm_name = "arm1156t2f-s",957 .llvm_name = "arm1156t2f-s",
958 .dependencies = &[_]*const Feature {958 .dependencies = &[_]*const Feature {
959 &feature_dsp,
960 &feature_thumb2,959 &feature_thumb2,
960 &feature_dsp,
961 &feature_slowfpvmlx,961 &feature_slowfpvmlx,
962 &feature_fpregs,962 &feature_fpregs,
963 &feature_vfp2,963 &feature_vfp2,
...@@ -965,7 +965,7 @@ pub const cpu_arm1156t2fS = Cpu{...@@ -965,7 +965,7 @@ pub const cpu_arm1156t2fS = Cpu{
965};965};
966966
967pub const cpu_arm1176jS = Cpu{967pub const cpu_arm1176jS = Cpu{
968 .name = "arm1176j-s",968 .name = "arm1176jS",
969 .llvm_name = "arm1176j-s",969 .llvm_name = "arm1176j-s",
970 .dependencies = &[_]*const Feature {970 .dependencies = &[_]*const Feature {
971 &feature_trustzone,971 &feature_trustzone,
...@@ -973,7 +973,7 @@ pub const cpu_arm1176jS = Cpu{...@@ -973,7 +973,7 @@ pub const cpu_arm1176jS = Cpu{
973};973};
974974
975pub const cpu_arm1176jzS = Cpu{975pub const cpu_arm1176jzS = Cpu{
976 .name = "arm1176jz-s",976 .name = "arm1176jzS",
977 .llvm_name = "arm1176jz-s",977 .llvm_name = "arm1176jz-s",
978 .dependencies = &[_]*const Feature {978 .dependencies = &[_]*const Feature {
979 &feature_trustzone,979 &feature_trustzone,
...@@ -981,7 +981,7 @@ pub const cpu_arm1176jzS = Cpu{...@@ -981,7 +981,7 @@ pub const cpu_arm1176jzS = Cpu{
981};981};
982982
983pub const cpu_arm1176jzfS = Cpu{983pub const cpu_arm1176jzfS = Cpu{
984 .name = "arm1176jzf-s",984 .name = "arm1176jzfS",
985 .llvm_name = "arm1176jzf-s",985 .llvm_name = "arm1176jzf-s",
986 .dependencies = &[_]*const Feature {986 .dependencies = &[_]*const Feature {
987 &feature_trustzone,987 &feature_trustzone,
...@@ -1013,7 +1013,7 @@ pub const cpu_arm7tdmi = Cpu{...@@ -1013,7 +1013,7 @@ pub const cpu_arm7tdmi = Cpu{
1013};1013};
10141014
1015pub const cpu_arm7tdmiS = Cpu{1015pub const cpu_arm7tdmiS = Cpu{
1016 .name = "arm7tdmi-s",1016 .name = "arm7tdmiS",
1017 .llvm_name = "arm7tdmi-s",1017 .llvm_name = "arm7tdmi-s",
1018 .dependencies = &[_]*const Feature {1018 .dependencies = &[_]*const Feature {
1019 },1019 },
...@@ -1062,7 +1062,7 @@ pub const cpu_arm922t = Cpu{...@@ -1062,7 +1062,7 @@ pub const cpu_arm922t = Cpu{
1062};1062};
10631063
1064pub const cpu_arm926ejS = Cpu{1064pub const cpu_arm926ejS = Cpu{
1065 .name = "arm926ej-s",1065 .name = "arm926ejS",
1066 .llvm_name = "arm926ej-s",1066 .llvm_name = "arm926ej-s",
1067 .dependencies = &[_]*const Feature {1067 .dependencies = &[_]*const Feature {
1068 },1068 },
...@@ -1076,21 +1076,21 @@ pub const cpu_arm940t = Cpu{...@@ -1076,21 +1076,21 @@ pub const cpu_arm940t = Cpu{
1076};1076};
10771077
1078pub const cpu_arm946eS = Cpu{1078pub const cpu_arm946eS = Cpu{
1079 .name = "arm946e-s",1079 .name = "arm946eS",
1080 .llvm_name = "arm946e-s",1080 .llvm_name = "arm946e-s",
1081 .dependencies = &[_]*const Feature {1081 .dependencies = &[_]*const Feature {
1082 },1082 },
1083};1083};
10841084
1085pub const cpu_arm966eS = Cpu{1085pub const cpu_arm966eS = Cpu{
1086 .name = "arm966e-s",1086 .name = "arm966eS",
1087 .llvm_name = "arm966e-s",1087 .llvm_name = "arm966e-s",
1088 .dependencies = &[_]*const Feature {1088 .dependencies = &[_]*const Feature {
1089 },1089 },
1090};1090};
10911091
1092pub const cpu_arm968eS = Cpu{1092pub const cpu_arm968eS = Cpu{
1093 .name = "arm968e-s",1093 .name = "arm968eS",
1094 .llvm_name = "arm968e-s",1094 .llvm_name = "arm968e-s",
1095 .dependencies = &[_]*const Feature {1095 .dependencies = &[_]*const Feature {
1096 },1096 },
...@@ -1111,17 +1111,17 @@ pub const cpu_arm9tdmi = Cpu{...@@ -1111,17 +1111,17 @@ pub const cpu_arm9tdmi = Cpu{
1111};1111};
11121112
1113pub const cpu_cortexA12 = Cpu{1113pub const cpu_cortexA12 = Cpu{
1114 .name = "cortex-a12",1114 .name = "cortexA12",
1115 .llvm_name = "cortex-a12",1115 .llvm_name = "cortex-a12",
1116 .dependencies = &[_]*const Feature {1116 .dependencies = &[_]*const Feature {
1117 &feature_db,1117 &feature_thumb2,
1118 &feature_perfmon,
1119 &feature_fpregs,1118 &feature_fpregs,
1120 &feature_d32,
1121 &feature_v7clrex,
1122 &feature_dsp,1119 &feature_dsp,
1123 &feature_thumb2,1120 &feature_v7clrex,
1124 &feature_aclass,1121 &feature_aclass,
1122 &feature_perfmon,
1123 &feature_d32,
1124 &feature_db,
1125 &feature_avoidPartialCpsr,1125 &feature_avoidPartialCpsr,
1126 &feature_retAddrStack,1126 &feature_retAddrStack,
1127 &feature_mp,1127 &feature_mp,
...@@ -1136,17 +1136,17 @@ pub const cpu_cortexA12 = Cpu{...@@ -1136,17 +1136,17 @@ pub const cpu_cortexA12 = Cpu{
1136};1136};
11371137
1138pub const cpu_cortexA15 = Cpu{1138pub const cpu_cortexA15 = Cpu{
1139 .name = "cortex-a15",1139 .name = "cortexA15",
1140 .llvm_name = "cortex-a15",1140 .llvm_name = "cortex-a15",
1141 .dependencies = &[_]*const Feature {1141 .dependencies = &[_]*const Feature {
1142 &feature_db,1142 &feature_thumb2,
1143 &feature_perfmon,
1144 &feature_fpregs,1143 &feature_fpregs,
1145 &feature_d32,
1146 &feature_v7clrex,
1147 &feature_dsp,1144 &feature_dsp,
1148 &feature_thumb2,1145 &feature_v7clrex,
1149 &feature_aclass,1146 &feature_aclass,
1147 &feature_perfmon,
1148 &feature_d32,
1149 &feature_db,
1150 &feature_avoidPartialCpsr,1150 &feature_avoidPartialCpsr,
1151 &feature_vldnAlign,1151 &feature_vldnAlign,
1152 &feature_dontWidenVmovs,1152 &feature_dontWidenVmovs,
...@@ -1164,17 +1164,17 @@ pub const cpu_cortexA15 = Cpu{...@@ -1164,17 +1164,17 @@ pub const cpu_cortexA15 = Cpu{
1164};1164};
11651165
1166pub const cpu_cortexA17 = Cpu{1166pub const cpu_cortexA17 = Cpu{
1167 .name = "cortex-a17",1167 .name = "cortexA17",
1168 .llvm_name = "cortex-a17",1168 .llvm_name = "cortex-a17",
1169 .dependencies = &[_]*const Feature {1169 .dependencies = &[_]*const Feature {
1170 &feature_db,1170 &feature_thumb2,
1171 &feature_perfmon,
1172 &feature_fpregs,1171 &feature_fpregs,
1173 &feature_d32,
1174 &feature_v7clrex,
1175 &feature_dsp,1172 &feature_dsp,
1176 &feature_thumb2,1173 &feature_v7clrex,
1177 &feature_aclass,1174 &feature_aclass,
1175 &feature_perfmon,
1176 &feature_d32,
1177 &feature_db,
1178 &feature_avoidPartialCpsr,1178 &feature_avoidPartialCpsr,
1179 &feature_retAddrStack,1179 &feature_retAddrStack,
1180 &feature_mp,1180 &feature_mp,
...@@ -1189,63 +1189,63 @@ pub const cpu_cortexA17 = Cpu{...@@ -1189,63 +1189,63 @@ pub const cpu_cortexA17 = Cpu{
1189};1189};
11901190
1191pub const cpu_cortexA32 = Cpu{1191pub const cpu_cortexA32 = Cpu{
1192 .name = "cortex-a32",1192 .name = "cortexA32",
1193 .llvm_name = "cortex-a32",1193 .llvm_name = "cortex-a32",
1194 .dependencies = &[_]*const Feature {1194 .dependencies = &[_]*const Feature {
1195 &feature_db,
1196 &feature_trustzone,1195 &feature_trustzone,
1197 &feature_perfmon,1196 &feature_thumb2,
1198 &feature_fpregs,1197 &feature_fpregs,
1198 &feature_dsp,
1199 &feature_v7clrex,
1200 &feature_hwdivArm,
1199 &feature_acquireRelease,1201 &feature_acquireRelease,
1202 &feature_aclass,
1203 &feature_perfmon,
1204 &feature_crc,
1200 &feature_mp,1205 &feature_mp,
1206 &feature_hwdiv,
1201 &feature_d32,1207 &feature_d32,
1202 &feature_v7clrex,
1203 &feature_dsp,
1204 &feature_crc,
1205 &feature_fp16,1208 &feature_fp16,
1206 &feature_hwdiv,1209 &feature_db,
1207 &feature_hwdivArm,
1208 &feature_thumb2,
1209 &feature_aclass,
1210 &feature_crypto,1210 &feature_crypto,
1211 },1211 },
1212};1212};
12131213
1214pub const cpu_cortexA35 = Cpu{1214pub const cpu_cortexA35 = Cpu{
1215 .name = "cortex-a35",1215 .name = "cortexA35",
1216 .llvm_name = "cortex-a35",1216 .llvm_name = "cortex-a35",
1217 .dependencies = &[_]*const Feature {1217 .dependencies = &[_]*const Feature {
1218 &feature_db,
1219 &feature_trustzone,1218 &feature_trustzone,
1220 &feature_perfmon,1219 &feature_thumb2,
1221 &feature_fpregs,1220 &feature_fpregs,
1221 &feature_dsp,
1222 &feature_v7clrex,
1223 &feature_hwdivArm,
1222 &feature_acquireRelease,1224 &feature_acquireRelease,
1225 &feature_aclass,
1226 &feature_perfmon,
1227 &feature_crc,
1223 &feature_mp,1228 &feature_mp,
1229 &feature_hwdiv,
1224 &feature_d32,1230 &feature_d32,
1225 &feature_v7clrex,
1226 &feature_dsp,
1227 &feature_crc,
1228 &feature_fp16,1231 &feature_fp16,
1229 &feature_hwdiv,1232 &feature_db,
1230 &feature_hwdivArm,
1231 &feature_thumb2,
1232 &feature_aclass,
1233 &feature_crypto,1233 &feature_crypto,
1234 },1234 },
1235};1235};
12361236
1237pub const cpu_cortexA5 = Cpu{1237pub const cpu_cortexA5 = Cpu{
1238 .name = "cortex-a5",1238 .name = "cortexA5",
1239 .llvm_name = "cortex-a5",1239 .llvm_name = "cortex-a5",
1240 .dependencies = &[_]*const Feature {1240 .dependencies = &[_]*const Feature {
1241 &feature_db,1241 &feature_thumb2,
1242 &feature_perfmon,
1243 &feature_fpregs,1242 &feature_fpregs,
1244 &feature_d32,
1245 &feature_v7clrex,
1246 &feature_dsp,1243 &feature_dsp,
1247 &feature_thumb2,1244 &feature_v7clrex,
1248 &feature_aclass,1245 &feature_aclass,
1246 &feature_perfmon,
1247 &feature_d32,
1248 &feature_db,
1249 &feature_retAddrStack,1249 &feature_retAddrStack,
1250 &feature_slowfpvmlx,1250 &feature_slowfpvmlx,
1251 &feature_mp,1251 &feature_mp,
...@@ -1258,72 +1258,72 @@ pub const cpu_cortexA5 = Cpu{...@@ -1258,72 +1258,72 @@ pub const cpu_cortexA5 = Cpu{
1258};1258};
12591259
1260pub const cpu_cortexA53 = Cpu{1260pub const cpu_cortexA53 = Cpu{
1261 .name = "cortex-a53",1261 .name = "cortexA53",
1262 .llvm_name = "cortex-a53",1262 .llvm_name = "cortex-a53",
1263 .dependencies = &[_]*const Feature {1263 .dependencies = &[_]*const Feature {
1264 &feature_db,
1265 &feature_trustzone,1264 &feature_trustzone,
1266 &feature_perfmon,1265 &feature_thumb2,
1267 &feature_fpregs,1266 &feature_fpregs,
1267 &feature_dsp,
1268 &feature_v7clrex,
1269 &feature_hwdivArm,
1268 &feature_acquireRelease,1270 &feature_acquireRelease,
1271 &feature_aclass,
1272 &feature_perfmon,
1273 &feature_crc,
1269 &feature_mp,1274 &feature_mp,
1275 &feature_hwdiv,
1270 &feature_d32,1276 &feature_d32,
1271 &feature_v7clrex,
1272 &feature_dsp,
1273 &feature_crc,
1274 &feature_fp16,1277 &feature_fp16,
1275 &feature_hwdiv,1278 &feature_db,
1276 &feature_hwdivArm,
1277 &feature_thumb2,
1278 &feature_aclass,
1279 &feature_crypto,1279 &feature_crypto,
1280 &feature_fpao,1280 &feature_fpao,
1281 },1281 },
1282};1282};
12831283
1284pub const cpu_cortexA55 = Cpu{1284pub const cpu_cortexA55 = Cpu{
1285 .name = "cortex-a55",1285 .name = "cortexA55",
1286 .llvm_name = "cortex-a55",1286 .llvm_name = "cortex-a55",
1287 .dependencies = &[_]*const Feature {1287 .dependencies = &[_]*const Feature {
1288 &feature_ras,
1289 &feature_db,
1290 &feature_trustzone,1288 &feature_trustzone,
1291 &feature_perfmon,1289 &feature_thumb2,
1292 &feature_fpregs,1290 &feature_fpregs,
1291 &feature_dsp,
1292 &feature_ras,
1293 &feature_v7clrex,
1294 &feature_hwdivArm,
1293 &feature_acquireRelease,1295 &feature_acquireRelease,
1296 &feature_aclass,
1297 &feature_perfmon,
1298 &feature_crc,
1294 &feature_mp,1299 &feature_mp,
1300 &feature_hwdiv,
1295 &feature_d32,1301 &feature_d32,
1296 &feature_v7clrex,
1297 &feature_dsp,
1298 &feature_crc,
1299 &feature_fp16,1302 &feature_fp16,
1300 &feature_hwdiv,1303 &feature_db,
1301 &feature_hwdivArm,
1302 &feature_thumb2,
1303 &feature_aclass,
1304 &feature_dotprod,1304 &feature_dotprod,
1305 },1305 },
1306};1306};
13071307
1308pub const cpu_cortexA57 = Cpu{1308pub const cpu_cortexA57 = Cpu{
1309 .name = "cortex-a57",1309 .name = "cortexA57",
1310 .llvm_name = "cortex-a57",1310 .llvm_name = "cortex-a57",
1311 .dependencies = &[_]*const Feature {1311 .dependencies = &[_]*const Feature {
1312 &feature_db,
1313 &feature_trustzone,1312 &feature_trustzone,
1314 &feature_perfmon,1313 &feature_thumb2,
1315 &feature_fpregs,1314 &feature_fpregs,
1315 &feature_dsp,
1316 &feature_v7clrex,
1317 &feature_hwdivArm,
1316 &feature_acquireRelease,1318 &feature_acquireRelease,
1319 &feature_aclass,
1320 &feature_perfmon,
1321 &feature_crc,
1317 &feature_mp,1322 &feature_mp,
1323 &feature_hwdiv,
1318 &feature_d32,1324 &feature_d32,
1319 &feature_v7clrex,
1320 &feature_dsp,
1321 &feature_crc,
1322 &feature_fp16,1325 &feature_fp16,
1323 &feature_hwdiv,1326 &feature_db,
1324 &feature_hwdivArm,
1325 &feature_thumb2,
1326 &feature_aclass,
1327 &feature_avoidPartialCpsr,1327 &feature_avoidPartialCpsr,
1328 &feature_cheapPredicableCpsr,1328 &feature_cheapPredicableCpsr,
1329 &feature_crypto,1329 &feature_crypto,
...@@ -1332,17 +1332,17 @@ pub const cpu_cortexA57 = Cpu{...@@ -1332,17 +1332,17 @@ pub const cpu_cortexA57 = Cpu{
1332};1332};
13331333
1334pub const cpu_cortexA7 = Cpu{1334pub const cpu_cortexA7 = Cpu{
1335 .name = "cortex-a7",1335 .name = "cortexA7",
1336 .llvm_name = "cortex-a7",1336 .llvm_name = "cortex-a7",
1337 .dependencies = &[_]*const Feature {1337 .dependencies = &[_]*const Feature {
1338 &feature_db,1338 &feature_thumb2,
1339 &feature_perfmon,
1340 &feature_fpregs,1339 &feature_fpregs,
1341 &feature_d32,
1342 &feature_v7clrex,
1343 &feature_dsp,1340 &feature_dsp,
1344 &feature_thumb2,1341 &feature_v7clrex,
1345 &feature_aclass,1342 &feature_aclass,
1343 &feature_perfmon,
1344 &feature_d32,
1345 &feature_db,
1346 &feature_retAddrStack,1346 &feature_retAddrStack,
1347 &feature_slowfpvmlx,1347 &feature_slowfpvmlx,
1348 &feature_vmlxHazards,1348 &feature_vmlxHazards,
...@@ -1359,95 +1359,95 @@ pub const cpu_cortexA7 = Cpu{...@@ -1359,95 +1359,95 @@ pub const cpu_cortexA7 = Cpu{
1359};1359};
13601360
1361pub const cpu_cortexA72 = Cpu{1361pub const cpu_cortexA72 = Cpu{
1362 .name = "cortex-a72",1362 .name = "cortexA72",
1363 .llvm_name = "cortex-a72",1363 .llvm_name = "cortex-a72",
1364 .dependencies = &[_]*const Feature {1364 .dependencies = &[_]*const Feature {
1365 &feature_db,
1366 &feature_trustzone,1365 &feature_trustzone,
1367 &feature_perfmon,1366 &feature_thumb2,
1368 &feature_fpregs,1367 &feature_fpregs,
1368 &feature_dsp,
1369 &feature_v7clrex,
1370 &feature_hwdivArm,
1369 &feature_acquireRelease,1371 &feature_acquireRelease,
1372 &feature_aclass,
1373 &feature_perfmon,
1374 &feature_crc,
1370 &feature_mp,1375 &feature_mp,
1376 &feature_hwdiv,
1371 &feature_d32,1377 &feature_d32,
1372 &feature_v7clrex,
1373 &feature_dsp,
1374 &feature_crc,
1375 &feature_fp16,1378 &feature_fp16,
1376 &feature_hwdiv,1379 &feature_db,
1377 &feature_hwdivArm,
1378 &feature_thumb2,
1379 &feature_aclass,
1380 &feature_crypto,1380 &feature_crypto,
1381 },1381 },
1382};1382};
13831383
1384pub const cpu_cortexA73 = Cpu{1384pub const cpu_cortexA73 = Cpu{
1385 .name = "cortex-a73",1385 .name = "cortexA73",
1386 .llvm_name = "cortex-a73",1386 .llvm_name = "cortex-a73",
1387 .dependencies = &[_]*const Feature {1387 .dependencies = &[_]*const Feature {
1388 &feature_db,
1389 &feature_trustzone,1388 &feature_trustzone,
1390 &feature_perfmon,1389 &feature_thumb2,
1391 &feature_fpregs,1390 &feature_fpregs,
1391 &feature_dsp,
1392 &feature_v7clrex,
1393 &feature_hwdivArm,
1392 &feature_acquireRelease,1394 &feature_acquireRelease,
1395 &feature_aclass,
1396 &feature_perfmon,
1397 &feature_crc,
1393 &feature_mp,1398 &feature_mp,
1399 &feature_hwdiv,
1394 &feature_d32,1400 &feature_d32,
1395 &feature_v7clrex,
1396 &feature_dsp,
1397 &feature_crc,
1398 &feature_fp16,1401 &feature_fp16,
1399 &feature_hwdiv,1402 &feature_db,
1400 &feature_hwdivArm,
1401 &feature_thumb2,
1402 &feature_aclass,
1403 &feature_crypto,1403 &feature_crypto,
1404 },1404 },
1405};1405};
14061406
1407pub const cpu_cortexA75 = Cpu{1407pub const cpu_cortexA75 = Cpu{
1408 .name = "cortex-a75",1408 .name = "cortexA75",
1409 .llvm_name = "cortex-a75",1409 .llvm_name = "cortex-a75",
1410 .dependencies = &[_]*const Feature {1410 .dependencies = &[_]*const Feature {
1411 &feature_ras,
1412 &feature_db,
1413 &feature_trustzone,1411 &feature_trustzone,
1414 &feature_perfmon,1412 &feature_thumb2,
1415 &feature_fpregs,1413 &feature_fpregs,
1414 &feature_dsp,
1415 &feature_ras,
1416 &feature_v7clrex,
1417 &feature_hwdivArm,
1416 &feature_acquireRelease,1418 &feature_acquireRelease,
1419 &feature_aclass,
1420 &feature_perfmon,
1421 &feature_crc,
1417 &feature_mp,1422 &feature_mp,
1423 &feature_hwdiv,
1418 &feature_d32,1424 &feature_d32,
1419 &feature_v7clrex,
1420 &feature_dsp,
1421 &feature_crc,
1422 &feature_fp16,1425 &feature_fp16,
1423 &feature_hwdiv,1426 &feature_db,
1424 &feature_hwdivArm,
1425 &feature_thumb2,
1426 &feature_aclass,
1427 &feature_dotprod,1427 &feature_dotprod,
1428 },1428 },
1429};1429};
14301430
1431pub const cpu_cortexA76 = Cpu{1431pub const cpu_cortexA76 = Cpu{
1432 .name = "cortex-a76",1432 .name = "cortexA76",
1433 .llvm_name = "cortex-a76",1433 .llvm_name = "cortex-a76",
1434 .dependencies = &[_]*const Feature {1434 .dependencies = &[_]*const Feature {
1435 &feature_ras,
1436 &feature_db,
1437 &feature_trustzone,1435 &feature_trustzone,
1438 &feature_perfmon,1436 &feature_thumb2,
1439 &feature_fpregs,1437 &feature_fpregs,
1438 &feature_dsp,
1439 &feature_ras,
1440 &feature_v7clrex,
1441 &feature_hwdivArm,
1440 &feature_acquireRelease,1442 &feature_acquireRelease,
1443 &feature_aclass,
1444 &feature_perfmon,
1445 &feature_crc,
1441 &feature_mp,1446 &feature_mp,
1447 &feature_hwdiv,
1442 &feature_d32,1448 &feature_d32,
1443 &feature_v7clrex,
1444 &feature_dsp,
1445 &feature_crc,
1446 &feature_fp16,1449 &feature_fp16,
1447 &feature_hwdiv,1450 &feature_db,
1448 &feature_hwdivArm,
1449 &feature_thumb2,
1450 &feature_aclass,
1451 &feature_crypto,1451 &feature_crypto,
1452 &feature_dotprod,1452 &feature_dotprod,
1453 &feature_fullfp16,1453 &feature_fullfp16,
...@@ -1455,25 +1455,25 @@ pub const cpu_cortexA76 = Cpu{...@@ -1455,25 +1455,25 @@ pub const cpu_cortexA76 = Cpu{
1455};1455};
14561456
1457pub const cpu_cortexA76ae = Cpu{1457pub const cpu_cortexA76ae = Cpu{
1458 .name = "cortex-a76ae",1458 .name = "cortexA76ae",
1459 .llvm_name = "cortex-a76ae",1459 .llvm_name = "cortex-a76ae",
1460 .dependencies = &[_]*const Feature {1460 .dependencies = &[_]*const Feature {
1461 &feature_ras,
1462 &feature_db,
1463 &feature_trustzone,1461 &feature_trustzone,
1464 &feature_perfmon,1462 &feature_thumb2,
1465 &feature_fpregs,1463 &feature_fpregs,
1466 &feature_acquireRelease,
1467 &feature_mp,
1468 &feature_d32,
1469 &feature_v7clrex,
1470 &feature_dsp,1464 &feature_dsp,
1471 &feature_crc,1465 &feature_ras,
1472 &feature_fp16,1466 &feature_v7clrex,
1473 &feature_hwdiv,
1474 &feature_hwdivArm,1467 &feature_hwdivArm,
1475 &feature_thumb2,1468 &feature_acquireRelease,
1476 &feature_aclass,1469 &feature_aclass,
1470 &feature_perfmon,
1471 &feature_crc,
1472 &feature_mp,
1473 &feature_hwdiv,
1474 &feature_d32,
1475 &feature_fp16,
1476 &feature_db,
1477 &feature_crypto,1477 &feature_crypto,
1478 &feature_dotprod,1478 &feature_dotprod,
1479 &feature_fullfp16,1479 &feature_fullfp16,
...@@ -1481,17 +1481,17 @@ pub const cpu_cortexA76ae = Cpu{...@@ -1481,17 +1481,17 @@ pub const cpu_cortexA76ae = Cpu{
1481};1481};
14821482
1483pub const cpu_cortexA8 = Cpu{1483pub const cpu_cortexA8 = Cpu{
1484 .name = "cortex-a8",1484 .name = "cortexA8",
1485 .llvm_name = "cortex-a8",1485 .llvm_name = "cortex-a8",
1486 .dependencies = &[_]*const Feature {1486 .dependencies = &[_]*const Feature {
1487 &feature_db,1487 &feature_thumb2,
1488 &feature_perfmon,
1489 &feature_fpregs,1488 &feature_fpregs,
1490 &feature_d32,
1491 &feature_v7clrex,
1492 &feature_dsp,1489 &feature_dsp,
1493 &feature_thumb2,1490 &feature_v7clrex,
1494 &feature_aclass,1491 &feature_aclass,
1492 &feature_perfmon,
1493 &feature_d32,
1494 &feature_db,
1495 &feature_retAddrStack,1495 &feature_retAddrStack,
1496 &feature_slowfpvmlx,1496 &feature_slowfpvmlx,
1497 &feature_vmlxHazards,1497 &feature_vmlxHazards,
...@@ -1503,17 +1503,17 @@ pub const cpu_cortexA8 = Cpu{...@@ -1503,17 +1503,17 @@ pub const cpu_cortexA8 = Cpu{
1503};1503};
15041504
1505pub const cpu_cortexA9 = Cpu{1505pub const cpu_cortexA9 = Cpu{
1506 .name = "cortex-a9",1506 .name = "cortexA9",
1507 .llvm_name = "cortex-a9",1507 .llvm_name = "cortex-a9",
1508 .dependencies = &[_]*const Feature {1508 .dependencies = &[_]*const Feature {
1509 &feature_db,1509 &feature_thumb2,
1510 &feature_perfmon,
1511 &feature_fpregs,1510 &feature_fpregs,
1512 &feature_d32,
1513 &feature_v7clrex,
1514 &feature_dsp,1511 &feature_dsp,
1515 &feature_thumb2,1512 &feature_v7clrex,
1516 &feature_aclass,1513 &feature_aclass,
1514 &feature_perfmon,
1515 &feature_d32,
1516 &feature_db,
1517 &feature_avoidPartialCpsr,1517 &feature_avoidPartialCpsr,
1518 &feature_vldnAlign,1518 &feature_vldnAlign,
1519 &feature_expandFpMlx,1519 &feature_expandFpMlx,
...@@ -1530,65 +1530,65 @@ pub const cpu_cortexA9 = Cpu{...@@ -1530,65 +1530,65 @@ pub const cpu_cortexA9 = Cpu{
1530};1530};
15311531
1532pub const cpu_cortexM0 = Cpu{1532pub const cpu_cortexM0 = Cpu{
1533 .name = "cortex-m0",1533 .name = "cortexM0",
1534 .llvm_name = "cortex-m0",1534 .llvm_name = "cortex-m0",
1535 .dependencies = &[_]*const Feature {1535 .dependencies = &[_]*const Feature {
1536 &feature_db,
1537 &feature_strictAlign,
1538 &feature_noarm,1536 &feature_noarm,
1537 &feature_strictAlign,
1539 &feature_mclass,1538 &feature_mclass,
1539 &feature_db,
1540 },1540 },
1541};1541};
15421542
1543pub const cpu_cortexM0plus = Cpu{1543pub const cpu_cortexM0plus = Cpu{
1544 .name = "cortex-m0plus",1544 .name = "cortexM0plus",
1545 .llvm_name = "cortex-m0plus",1545 .llvm_name = "cortex-m0plus",
1546 .dependencies = &[_]*const Feature {1546 .dependencies = &[_]*const Feature {
1547 &feature_db,
1548 &feature_strictAlign,
1549 &feature_noarm,1547 &feature_noarm,
1548 &feature_strictAlign,
1550 &feature_mclass,1549 &feature_mclass,
1550 &feature_db,
1551 },1551 },
1552};1552};
15531553
1554pub const cpu_cortexM1 = Cpu{1554pub const cpu_cortexM1 = Cpu{
1555 .name = "cortex-m1",1555 .name = "cortexM1",
1556 .llvm_name = "cortex-m1",1556 .llvm_name = "cortex-m1",
1557 .dependencies = &[_]*const Feature {1557 .dependencies = &[_]*const Feature {
1558 &feature_db,
1559 &feature_strictAlign,
1560 &feature_noarm,1558 &feature_noarm,
1559 &feature_strictAlign,
1561 &feature_mclass,1560 &feature_mclass,
1561 &feature_db,
1562 },1562 },
1563};1563};
15641564
1565pub const cpu_cortexM23 = Cpu{1565pub const cpu_cortexM23 = Cpu{
1566 .name = "cortex-m23",1566 .name = "cortexM23",
1567 .llvm_name = "cortex-m23",1567 .llvm_name = "cortex-m23",
1568 .dependencies = &[_]*const Feature {1568 .dependencies = &[_]*const Feature {
1569 &feature_db,1569 &feature_noarm,
1570 &feature_strictAlign,
1571 &feature_acquireRelease,1570 &feature_acquireRelease,
1572 &feature_v7clrex,1571 &feature_v7clrex,
1573 &feature_noarm,1572 &feature_strictAlign,
1574 &feature_mclass,1573 &feature_mclass,
1575 &feature_hwdiv,1574 &feature_hwdiv,
1576 &feature_msecext8,1575 &feature_msecext8,
1576 &feature_db,
1577 &feature_noMovt,1577 &feature_noMovt,
1578 },1578 },
1579};1579};
15801580
1581pub const cpu_cortexM3 = Cpu{1581pub const cpu_cortexM3 = Cpu{
1582 .name = "cortex-m3",1582 .name = "cortexM3",
1583 .llvm_name = "cortex-m3",1583 .llvm_name = "cortex-m3",
1584 .dependencies = &[_]*const Feature {1584 .dependencies = &[_]*const Feature {
1585 &feature_db,1585 &feature_thumb2,
1586 &feature_perfmon,
1587 &feature_v7clrex,
1588 &feature_noarm,1586 &feature_noarm,
1587 &feature_v7clrex,
1588 &feature_perfmon,
1589 &feature_mclass,1589 &feature_mclass,
1590 &feature_hwdiv,1590 &feature_hwdiv,
1591 &feature_thumb2,1591 &feature_db,
1592 &feature_noBranchPredictor,1592 &feature_noBranchPredictor,
1593 &feature_loopAlign,1593 &feature_loopAlign,
1594 &feature_useAa,1594 &feature_useAa,
...@@ -1597,21 +1597,21 @@ pub const cpu_cortexM3 = Cpu{...@@ -1597,21 +1597,21 @@ pub const cpu_cortexM3 = Cpu{
1597};1597};
15981598
1599pub const cpu_cortexM33 = Cpu{1599pub const cpu_cortexM33 = Cpu{
1600 .name = "cortex-m33",1600 .name = "cortexM33",
1601 .llvm_name = "cortex-m33",1601 .llvm_name = "cortex-m33",
1602 .dependencies = &[_]*const Feature {1602 .dependencies = &[_]*const Feature {
1603 &feature_db,1603 &feature_thumb2,
1604 &feature_perfmon,1604 &feature_noarm,
1605 &feature_acquireRelease,1605 &feature_acquireRelease,
1606 &feature_v7clrex,1606 &feature_v7clrex,
1607 &feature_noarm,1607 &feature_perfmon,
1608 &feature_mclass,1608 &feature_mclass,
1609 &feature_hwdiv,1609 &feature_hwdiv,
1610 &feature_thumb2,
1611 &feature_msecext8,1610 &feature_msecext8,
1611 &feature_db,
1612 &feature_dsp,1612 &feature_dsp,
1613 &feature_fp16,
1614 &feature_fpregs,1613 &feature_fpregs,
1614 &feature_fp16,
1615 &feature_fpArmv8d16sp,1615 &feature_fpArmv8d16sp,
1616 &feature_noBranchPredictor,1616 &feature_noBranchPredictor,
1617 &feature_slowfpvmlx,1617 &feature_slowfpvmlx,
...@@ -1622,21 +1622,21 @@ pub const cpu_cortexM33 = Cpu{...@@ -1622,21 +1622,21 @@ pub const cpu_cortexM33 = Cpu{
1622};1622};
16231623
1624pub const cpu_cortexM35p = Cpu{1624pub const cpu_cortexM35p = Cpu{
1625 .name = "cortex-m35p",1625 .name = "cortexM35p",
1626 .llvm_name = "cortex-m35p",1626 .llvm_name = "cortex-m35p",
1627 .dependencies = &[_]*const Feature {1627 .dependencies = &[_]*const Feature {
1628 &feature_db,1628 &feature_thumb2,
1629 &feature_perfmon,1629 &feature_noarm,
1630 &feature_acquireRelease,1630 &feature_acquireRelease,
1631 &feature_v7clrex,1631 &feature_v7clrex,
1632 &feature_noarm,1632 &feature_perfmon,
1633 &feature_mclass,1633 &feature_mclass,
1634 &feature_hwdiv,1634 &feature_hwdiv,
1635 &feature_thumb2,
1636 &feature_msecext8,1635 &feature_msecext8,
1636 &feature_db,
1637 &feature_dsp,1637 &feature_dsp,
1638 &feature_fp16,
1639 &feature_fpregs,1638 &feature_fpregs,
1639 &feature_fp16,
1640 &feature_fpArmv8d16sp,1640 &feature_fpArmv8d16sp,
1641 &feature_noBranchPredictor,1641 &feature_noBranchPredictor,
1642 &feature_slowfpvmlx,1642 &feature_slowfpvmlx,
...@@ -1647,73 +1647,73 @@ pub const cpu_cortexM35p = Cpu{...@@ -1647,73 +1647,73 @@ pub const cpu_cortexM35p = Cpu{
1647};1647};
16481648
1649pub const cpu_cortexM4 = Cpu{1649pub const cpu_cortexM4 = Cpu{
1650 .name = "cortex-m4",1650 .name = "cortexM4",
1651 .llvm_name = "cortex-m4",1651 .llvm_name = "cortex-m4",
1652 .dependencies = &[_]*const Feature {1652 .dependencies = &[_]*const Feature {
1653 &feature_db,1653 &feature_thumb2,
1654 &feature_perfmon,
1655 &feature_v7clrex,
1656 &feature_dsp,1654 &feature_dsp,
1657 &feature_noarm,1655 &feature_noarm,
1656 &feature_v7clrex,
1657 &feature_perfmon,
1658 &feature_mclass,1658 &feature_mclass,
1659 &feature_hwdiv,1659 &feature_hwdiv,
1660 &feature_thumb2,1660 &feature_db,
1661 &feature_noBranchPredictor,1661 &feature_noBranchPredictor,
1662 &feature_slowfpvmlx,1662 &feature_slowfpvmlx,
1663 &feature_loopAlign,1663 &feature_loopAlign,
1664 &feature_useAa,1664 &feature_useAa,
1665 &feature_useMisched,1665 &feature_useMisched,
1666 &feature_fp16,
1667 &feature_fpregs,1666 &feature_fpregs,
1667 &feature_fp16,
1668 &feature_vfp4d16sp,1668 &feature_vfp4d16sp,
1669 },1669 },
1670};1670};
16711671
1672pub const cpu_cortexM7 = Cpu{1672pub const cpu_cortexM7 = Cpu{
1673 .name = "cortex-m7",1673 .name = "cortexM7",
1674 .llvm_name = "cortex-m7",1674 .llvm_name = "cortex-m7",
1675 .dependencies = &[_]*const Feature {1675 .dependencies = &[_]*const Feature {
1676 &feature_db,1676 &feature_thumb2,
1677 &feature_perfmon,
1678 &feature_v7clrex,
1679 &feature_dsp,1677 &feature_dsp,
1680 &feature_noarm,1678 &feature_noarm,
1679 &feature_v7clrex,
1680 &feature_perfmon,
1681 &feature_mclass,1681 &feature_mclass,
1682 &feature_hwdiv,1682 &feature_hwdiv,
1683 &feature_thumb2,1683 &feature_db,
1684 &feature_fp16,
1685 &feature_fpregs,1684 &feature_fpregs,
1685 &feature_fp16,
1686 &feature_fpArmv8d16,1686 &feature_fpArmv8d16,
1687 },1687 },
1688};1688};
16891689
1690pub const cpu_cortexR4 = Cpu{1690pub const cpu_cortexR4 = Cpu{
1691 .name = "cortex-r4",1691 .name = "cortexR4",
1692 .llvm_name = "cortex-r4",1692 .llvm_name = "cortex-r4",
1693 .dependencies = &[_]*const Feature {1693 .dependencies = &[_]*const Feature {
1694 &feature_db,1694 &feature_thumb2,
1695 &feature_perfmon,1695 &feature_dsp,
1696 &feature_rclass,1696 &feature_rclass,
1697 &feature_v7clrex,1697 &feature_v7clrex,
1698 &feature_dsp,1698 &feature_perfmon,
1699 &feature_hwdiv,1699 &feature_hwdiv,
1700 &feature_thumb2,1700 &feature_db,
1701 &feature_avoidPartialCpsr,1701 &feature_avoidPartialCpsr,
1702 &feature_retAddrStack,1702 &feature_retAddrStack,
1703 },1703 },
1704};1704};
17051705
1706pub const cpu_cortexR4f = Cpu{1706pub const cpu_cortexR4f = Cpu{
1707 .name = "cortex-r4f",1707 .name = "cortexR4f",
1708 .llvm_name = "cortex-r4f",1708 .llvm_name = "cortex-r4f",
1709 .dependencies = &[_]*const Feature {1709 .dependencies = &[_]*const Feature {
1710 &feature_db,1710 &feature_thumb2,
1711 &feature_perfmon,1711 &feature_dsp,
1712 &feature_rclass,1712 &feature_rclass,
1713 &feature_v7clrex,1713 &feature_v7clrex,
1714 &feature_dsp,1714 &feature_perfmon,
1715 &feature_hwdiv,1715 &feature_hwdiv,
1716 &feature_thumb2,1716 &feature_db,
1717 &feature_avoidPartialCpsr,1717 &feature_avoidPartialCpsr,
1718 &feature_retAddrStack,1718 &feature_retAddrStack,
1719 &feature_slowfpvmlx,1719 &feature_slowfpvmlx,
...@@ -1724,16 +1724,16 @@ pub const cpu_cortexR4f = Cpu{...@@ -1724,16 +1724,16 @@ pub const cpu_cortexR4f = Cpu{
1724};1724};
17251725
1726pub const cpu_cortexR5 = Cpu{1726pub const cpu_cortexR5 = Cpu{
1727 .name = "cortex-r5",1727 .name = "cortexR5",
1728 .llvm_name = "cortex-r5",1728 .llvm_name = "cortex-r5",
1729 .dependencies = &[_]*const Feature {1729 .dependencies = &[_]*const Feature {
1730 &feature_db,1730 &feature_thumb2,
1731 &feature_perfmon,1731 &feature_dsp,
1732 &feature_rclass,1732 &feature_rclass,
1733 &feature_v7clrex,1733 &feature_v7clrex,
1734 &feature_dsp,1734 &feature_perfmon,
1735 &feature_hwdiv,1735 &feature_hwdiv,
1736 &feature_thumb2,1736 &feature_db,
1737 &feature_avoidPartialCpsr,1737 &feature_avoidPartialCpsr,
1738 &feature_hwdivArm,1738 &feature_hwdivArm,
1739 &feature_retAddrStack,1739 &feature_retAddrStack,
...@@ -1745,24 +1745,24 @@ pub const cpu_cortexR5 = Cpu{...@@ -1745,24 +1745,24 @@ pub const cpu_cortexR5 = Cpu{
1745};1745};
17461746
1747pub const cpu_cortexR52 = Cpu{1747pub const cpu_cortexR52 = Cpu{
1748 .name = "cortex-r52",1748 .name = "cortexR52",
1749 .llvm_name = "cortex-r52",1749 .llvm_name = "cortex-r52",
1750 .dependencies = &[_]*const Feature {1750 .dependencies = &[_]*const Feature {
1751 &feature_db,1751 &feature_thumb2,
1752 &feature_perfmon,
1753 &feature_fpregs,1752 &feature_fpregs,
1753 &feature_dsp,
1754 &feature_dfb,
1754 &feature_rclass,1755 &feature_rclass,
1756 &feature_v7clrex,
1757 &feature_hwdivArm,
1755 &feature_acquireRelease,1758 &feature_acquireRelease,
1759 &feature_perfmon,
1760 &feature_crc,
1756 &feature_mp,1761 &feature_mp,
1762 &feature_hwdiv,
1757 &feature_d32,1763 &feature_d32,
1758 &feature_v7clrex,
1759 &feature_dsp,
1760 &feature_crc,
1761 &feature_fp16,1764 &feature_fp16,
1762 &feature_hwdiv,1765 &feature_db,
1763 &feature_hwdivArm,
1764 &feature_thumb2,
1765 &feature_dfb,
1766 &feature_fpao,1766 &feature_fpao,
1767 &feature_useAa,1767 &feature_useAa,
1768 &feature_useMisched,1768 &feature_useMisched,
...@@ -1770,16 +1770,16 @@ pub const cpu_cortexR52 = Cpu{...@@ -1770,16 +1770,16 @@ pub const cpu_cortexR52 = Cpu{
1770};1770};
17711771
1772pub const cpu_cortexR7 = Cpu{1772pub const cpu_cortexR7 = Cpu{
1773 .name = "cortex-r7",1773 .name = "cortexR7",
1774 .llvm_name = "cortex-r7",1774 .llvm_name = "cortex-r7",
1775 .dependencies = &[_]*const Feature {1775 .dependencies = &[_]*const Feature {
1776 &feature_db,1776 &feature_thumb2,
1777 &feature_perfmon,1777 &feature_dsp,
1778 &feature_rclass,1778 &feature_rclass,
1779 &feature_v7clrex,1779 &feature_v7clrex,
1780 &feature_dsp,1780 &feature_perfmon,
1781 &feature_hwdiv,1781 &feature_hwdiv,
1782 &feature_thumb2,1782 &feature_db,
1783 &feature_avoidPartialCpsr,1783 &feature_avoidPartialCpsr,
1784 &feature_fp16,1784 &feature_fp16,
1785 &feature_hwdivArm,1785 &feature_hwdivArm,
...@@ -1793,16 +1793,16 @@ pub const cpu_cortexR7 = Cpu{...@@ -1793,16 +1793,16 @@ pub const cpu_cortexR7 = Cpu{
1793};1793};
17941794
1795pub const cpu_cortexR8 = Cpu{1795pub const cpu_cortexR8 = Cpu{
1796 .name = "cortex-r8",1796 .name = "cortexR8",
1797 .llvm_name = "cortex-r8",1797 .llvm_name = "cortex-r8",
1798 .dependencies = &[_]*const Feature {1798 .dependencies = &[_]*const Feature {
1799 &feature_db,1799 &feature_thumb2,
1800 &feature_perfmon,1800 &feature_dsp,
1801 &feature_rclass,1801 &feature_rclass,
1802 &feature_v7clrex,1802 &feature_v7clrex,
1803 &feature_dsp,1803 &feature_perfmon,
1804 &feature_hwdiv,1804 &feature_hwdiv,
1805 &feature_thumb2,1805 &feature_db,
1806 &feature_avoidPartialCpsr,1806 &feature_avoidPartialCpsr,
1807 &feature_fp16,1807 &feature_fp16,
1808 &feature_hwdivArm,1808 &feature_hwdivArm,
...@@ -1819,21 +1819,21 @@ pub const cpu_cyclone = Cpu{...@@ -1819,21 +1819,21 @@ pub const cpu_cyclone = Cpu{
1819 .name = "cyclone",1819 .name = "cyclone",
1820 .llvm_name = "cyclone",1820 .llvm_name = "cyclone",
1821 .dependencies = &[_]*const Feature {1821 .dependencies = &[_]*const Feature {
1822 &feature_db,
1823 &feature_trustzone,1822 &feature_trustzone,
1824 &feature_perfmon,1823 &feature_thumb2,
1825 &feature_fpregs,1824 &feature_fpregs,
1825 &feature_dsp,
1826 &feature_v7clrex,
1827 &feature_hwdivArm,
1826 &feature_acquireRelease,1828 &feature_acquireRelease,
1829 &feature_aclass,
1830 &feature_perfmon,
1831 &feature_crc,
1827 &feature_mp,1832 &feature_mp,
1833 &feature_hwdiv,
1828 &feature_d32,1834 &feature_d32,
1829 &feature_v7clrex,
1830 &feature_dsp,
1831 &feature_crc,
1832 &feature_fp16,1835 &feature_fp16,
1833 &feature_hwdiv,1836 &feature_db,
1834 &feature_hwdivArm,
1835 &feature_thumb2,
1836 &feature_aclass,
1837 &feature_avoidMovsShop,1837 &feature_avoidMovsShop,
1838 &feature_avoidPartialCpsr,1838 &feature_avoidPartialCpsr,
1839 &feature_crypto,1839 &feature_crypto,
...@@ -1855,183 +1855,183 @@ pub const cpu_ep9312 = Cpu{...@@ -1855,183 +1855,183 @@ pub const cpu_ep9312 = Cpu{
1855};1855};
18561856
1857pub const cpu_exynosM1 = Cpu{1857pub const cpu_exynosM1 = Cpu{
1858 .name = "exynos-m1",1858 .name = "exynosM1",
1859 .llvm_name = "exynos-m1",1859 .llvm_name = "exynos-m1",
1860 .dependencies = &[_]*const Feature {1860 .dependencies = &[_]*const Feature {
1861 &feature_db,
1862 &feature_trustzone,1861 &feature_trustzone,
1863 &feature_perfmon,1862 &feature_thumb2,
1864 &feature_fpregs,1863 &feature_fpregs,
1864 &feature_dsp,
1865 &feature_v7clrex,
1866 &feature_hwdivArm,
1865 &feature_acquireRelease,1867 &feature_acquireRelease,
1868 &feature_aclass,
1869 &feature_perfmon,
1870 &feature_crc,
1866 &feature_mp,1871 &feature_mp,
1872 &feature_hwdiv,
1867 &feature_d32,1873 &feature_d32,
1868 &feature_v7clrex,
1869 &feature_dsp,
1870 &feature_crc,
1871 &feature_fp16,1874 &feature_fp16,
1872 &feature_hwdiv,1875 &feature_db,
1873 &feature_hwdivArm,
1874 &feature_thumb2,
1875 &feature_aclass,
1876 &feature_expandFpMlx,1876 &feature_expandFpMlx,
1877 &feature_fuseLiterals,
1878 &feature_fuseAes,
1879 &feature_slowVgetlni32,1877 &feature_slowVgetlni32,
1880 &feature_wideStrideVfp,
1881 &feature_profUnpr,1878 &feature_profUnpr,
1882 &feature_slowVdup32,
1883 &feature_slowfpvmlx,1879 &feature_slowfpvmlx,
1884 &feature_dontWidenVmovs,1880 &feature_slowFpBrcc,
1885 &feature_useAa,1881 &feature_useAa,
1882 &feature_dontWidenVmovs,
1886 &feature_retAddrStack,1883 &feature_retAddrStack,
1884 &feature_fuseLiterals,
1885 &feature_wideStrideVfp,
1887 &feature_zcz,1886 &feature_zcz,
1888 &feature_slowFpBrcc,1887 &feature_fuseAes,
1888 &feature_slowVdup32,
1889 },1889 },
1890};1890};
18911891
1892pub const cpu_exynosM2 = Cpu{1892pub const cpu_exynosM2 = Cpu{
1893 .name = "exynos-m2",1893 .name = "exynosM2",
1894 .llvm_name = "exynos-m2",1894 .llvm_name = "exynos-m2",
1895 .dependencies = &[_]*const Feature {1895 .dependencies = &[_]*const Feature {
1896 &feature_db,
1897 &feature_trustzone,1896 &feature_trustzone,
1898 &feature_perfmon,1897 &feature_thumb2,
1899 &feature_fpregs,1898 &feature_fpregs,
1899 &feature_dsp,
1900 &feature_v7clrex,
1901 &feature_hwdivArm,
1900 &feature_acquireRelease,1902 &feature_acquireRelease,
1903 &feature_aclass,
1904 &feature_perfmon,
1905 &feature_crc,
1901 &feature_mp,1906 &feature_mp,
1907 &feature_hwdiv,
1902 &feature_d32,1908 &feature_d32,
1903 &feature_v7clrex,
1904 &feature_dsp,
1905 &feature_crc,
1906 &feature_fp16,1909 &feature_fp16,
1907 &feature_hwdiv,1910 &feature_db,
1908 &feature_hwdivArm,
1909 &feature_thumb2,
1910 &feature_aclass,
1911 &feature_expandFpMlx,1911 &feature_expandFpMlx,
1912 &feature_fuseLiterals,
1913 &feature_fuseAes,
1914 &feature_slowVgetlni32,1912 &feature_slowVgetlni32,
1915 &feature_wideStrideVfp,
1916 &feature_profUnpr,1913 &feature_profUnpr,
1917 &feature_slowVdup32,
1918 &feature_slowfpvmlx,1914 &feature_slowfpvmlx,
1919 &feature_dontWidenVmovs,1915 &feature_slowFpBrcc,
1920 &feature_useAa,1916 &feature_useAa,
1917 &feature_dontWidenVmovs,
1921 &feature_retAddrStack,1918 &feature_retAddrStack,
1919 &feature_fuseLiterals,
1920 &feature_wideStrideVfp,
1922 &feature_zcz,1921 &feature_zcz,
1923 &feature_slowFpBrcc,1922 &feature_fuseAes,
1923 &feature_slowVdup32,
1924 },1924 },
1925};1925};
19261926
1927pub const cpu_exynosM3 = Cpu{1927pub const cpu_exynosM3 = Cpu{
1928 .name = "exynos-m3",1928 .name = "exynosM3",
1929 .llvm_name = "exynos-m3",1929 .llvm_name = "exynos-m3",
1930 .dependencies = &[_]*const Feature {1930 .dependencies = &[_]*const Feature {
1931 &feature_db,
1932 &feature_trustzone,1931 &feature_trustzone,
1933 &feature_perfmon,1932 &feature_thumb2,
1934 &feature_fpregs,1933 &feature_fpregs,
1934 &feature_dsp,
1935 &feature_v7clrex,
1936 &feature_hwdivArm,
1935 &feature_acquireRelease,1937 &feature_acquireRelease,
1938 &feature_aclass,
1939 &feature_perfmon,
1940 &feature_crc,
1936 &feature_mp,1941 &feature_mp,
1942 &feature_hwdiv,
1937 &feature_d32,1943 &feature_d32,
1938 &feature_v7clrex,
1939 &feature_dsp,
1940 &feature_crc,
1941 &feature_fp16,1944 &feature_fp16,
1942 &feature_hwdiv,1945 &feature_db,
1943 &feature_hwdivArm,
1944 &feature_thumb2,
1945 &feature_aclass,
1946 &feature_expandFpMlx,1946 &feature_expandFpMlx,
1947 &feature_fuseLiterals,
1948 &feature_fuseAes,
1949 &feature_slowVgetlni32,1947 &feature_slowVgetlni32,
1950 &feature_wideStrideVfp,
1951 &feature_profUnpr,1948 &feature_profUnpr,
1952 &feature_slowVdup32,
1953 &feature_slowfpvmlx,1949 &feature_slowfpvmlx,
1954 &feature_dontWidenVmovs,1950 &feature_slowFpBrcc,
1955 &feature_useAa,1951 &feature_useAa,
1952 &feature_dontWidenVmovs,
1956 &feature_retAddrStack,1953 &feature_retAddrStack,
1954 &feature_fuseLiterals,
1955 &feature_wideStrideVfp,
1957 &feature_zcz,1956 &feature_zcz,
1958 &feature_slowFpBrcc,1957 &feature_fuseAes,
1958 &feature_slowVdup32,
1959 },1959 },
1960};1960};
19611961
1962pub const cpu_exynosM4 = Cpu{1962pub const cpu_exynosM4 = Cpu{
1963 .name = "exynos-m4",1963 .name = "exynosM4",
1964 .llvm_name = "exynos-m4",1964 .llvm_name = "exynos-m4",
1965 .dependencies = &[_]*const Feature {1965 .dependencies = &[_]*const Feature {
1966 &feature_ras,
1967 &feature_db,
1968 &feature_trustzone,1966 &feature_trustzone,
1969 &feature_perfmon,1967 &feature_thumb2,
1970 &feature_fpregs,1968 &feature_fpregs,
1969 &feature_dsp,
1970 &feature_ras,
1971 &feature_v7clrex,
1972 &feature_hwdivArm,
1971 &feature_acquireRelease,1973 &feature_acquireRelease,
1974 &feature_aclass,
1975 &feature_perfmon,
1976 &feature_crc,
1972 &feature_mp,1977 &feature_mp,
1978 &feature_hwdiv,
1973 &feature_d32,1979 &feature_d32,
1974 &feature_v7clrex,
1975 &feature_dsp,
1976 &feature_crc,
1977 &feature_fp16,1980 &feature_fp16,
1978 &feature_hwdiv,1981 &feature_db,
1979 &feature_hwdivArm,
1980 &feature_thumb2,
1981 &feature_aclass,
1982 &feature_dotprod,1982 &feature_dotprod,
1983 &feature_fullfp16,1983 &feature_fullfp16,
1984 &feature_expandFpMlx,1984 &feature_expandFpMlx,
1985 &feature_fuseLiterals,
1986 &feature_fuseAes,
1987 &feature_slowVgetlni32,1985 &feature_slowVgetlni32,
1988 &feature_wideStrideVfp,
1989 &feature_profUnpr,1986 &feature_profUnpr,
1990 &feature_slowVdup32,
1991 &feature_slowfpvmlx,1987 &feature_slowfpvmlx,
1992 &feature_dontWidenVmovs,1988 &feature_slowFpBrcc,
1993 &feature_useAa,1989 &feature_useAa,
1990 &feature_dontWidenVmovs,
1994 &feature_retAddrStack,1991 &feature_retAddrStack,
1992 &feature_fuseLiterals,
1993 &feature_wideStrideVfp,
1995 &feature_zcz,1994 &feature_zcz,
1996 &feature_slowFpBrcc,1995 &feature_fuseAes,
1996 &feature_slowVdup32,
1997 },1997 },
1998};1998};
19991999
2000pub const cpu_exynosM5 = Cpu{2000pub const cpu_exynosM5 = Cpu{
2001 .name = "exynos-m5",2001 .name = "exynosM5",
2002 .llvm_name = "exynos-m5",2002 .llvm_name = "exynos-m5",
2003 .dependencies = &[_]*const Feature {2003 .dependencies = &[_]*const Feature {
2004 &feature_ras,
2005 &feature_db,
2006 &feature_trustzone,2004 &feature_trustzone,
2007 &feature_perfmon,2005 &feature_thumb2,
2008 &feature_fpregs,2006 &feature_fpregs,
2007 &feature_dsp,
2008 &feature_ras,
2009 &feature_v7clrex,
2010 &feature_hwdivArm,
2009 &feature_acquireRelease,2011 &feature_acquireRelease,
2012 &feature_aclass,
2013 &feature_perfmon,
2014 &feature_crc,
2010 &feature_mp,2015 &feature_mp,
2016 &feature_hwdiv,
2011 &feature_d32,2017 &feature_d32,
2012 &feature_v7clrex,
2013 &feature_dsp,
2014 &feature_crc,
2015 &feature_fp16,2018 &feature_fp16,
2016 &feature_hwdiv,2019 &feature_db,
2017 &feature_hwdivArm,
2018 &feature_thumb2,
2019 &feature_aclass,
2020 &feature_dotprod,2020 &feature_dotprod,
2021 &feature_fullfp16,2021 &feature_fullfp16,
2022 &feature_expandFpMlx,2022 &feature_expandFpMlx,
2023 &feature_fuseLiterals,
2024 &feature_fuseAes,
2025 &feature_slowVgetlni32,2023 &feature_slowVgetlni32,
2026 &feature_wideStrideVfp,
2027 &feature_profUnpr,2024 &feature_profUnpr,
2028 &feature_slowVdup32,
2029 &feature_slowfpvmlx,2025 &feature_slowfpvmlx,
2030 &feature_dontWidenVmovs,2026 &feature_slowFpBrcc,
2031 &feature_useAa,2027 &feature_useAa,
2028 &feature_dontWidenVmovs,
2032 &feature_retAddrStack,2029 &feature_retAddrStack,
2030 &feature_fuseLiterals,
2031 &feature_wideStrideVfp,
2033 &feature_zcz,2032 &feature_zcz,
2034 &feature_slowFpBrcc,2033 &feature_fuseAes,
2034 &feature_slowVdup32,
2035 },2035 },
2036};2036};
20372037
...@@ -2053,14 +2053,14 @@ pub const cpu_krait = Cpu{...@@ -2053,14 +2053,14 @@ pub const cpu_krait = Cpu{
2053 .name = "krait",2053 .name = "krait",
2054 .llvm_name = "krait",2054 .llvm_name = "krait",
2055 .dependencies = &[_]*const Feature {2055 .dependencies = &[_]*const Feature {
2056 &feature_db,2056 &feature_thumb2,
2057 &feature_perfmon,
2058 &feature_fpregs,2057 &feature_fpregs,
2059 &feature_d32,
2060 &feature_v7clrex,
2061 &feature_dsp,2058 &feature_dsp,
2062 &feature_thumb2,2059 &feature_v7clrex,
2063 &feature_aclass,2060 &feature_aclass,
2061 &feature_perfmon,
2062 &feature_d32,
2063 &feature_db,
2064 &feature_avoidPartialCpsr,2064 &feature_avoidPartialCpsr,
2065 &feature_vldnAlign,2065 &feature_vldnAlign,
2066 &feature_fp16,2066 &feature_fp16,
...@@ -2077,21 +2077,21 @@ pub const cpu_kryo = Cpu{...@@ -2077,21 +2077,21 @@ pub const cpu_kryo = Cpu{
2077 .name = "kryo",2077 .name = "kryo",
2078 .llvm_name = "kryo",2078 .llvm_name = "kryo",
2079 .dependencies = &[_]*const Feature {2079 .dependencies = &[_]*const Feature {
2080 &feature_db,
2081 &feature_trustzone,2080 &feature_trustzone,
2082 &feature_perfmon,2081 &feature_thumb2,
2083 &feature_fpregs,2082 &feature_fpregs,
2083 &feature_dsp,
2084 &feature_v7clrex,
2085 &feature_hwdivArm,
2084 &feature_acquireRelease,2086 &feature_acquireRelease,
2087 &feature_aclass,
2088 &feature_perfmon,
2089 &feature_crc,
2085 &feature_mp,2090 &feature_mp,
2091 &feature_hwdiv,
2086 &feature_d32,2092 &feature_d32,
2087 &feature_v7clrex,
2088 &feature_dsp,
2089 &feature_crc,
2090 &feature_fp16,2093 &feature_fp16,
2091 &feature_hwdiv,2094 &feature_db,
2092 &feature_hwdivArm,
2093 &feature_thumb2,
2094 &feature_aclass,
2095 &feature_crypto,2095 &feature_crypto,
2096 },2096 },
2097};2097};
...@@ -2114,25 +2114,25 @@ pub const cpu_mpcorenovfp = Cpu{...@@ -2114,25 +2114,25 @@ pub const cpu_mpcorenovfp = Cpu{
2114};2114};
21152115
2116pub const cpu_neoverseN1 = Cpu{2116pub const cpu_neoverseN1 = Cpu{
2117 .name = "neoverse-n1",2117 .name = "neoverseN1",
2118 .llvm_name = "neoverse-n1",2118 .llvm_name = "neoverse-n1",
2119 .dependencies = &[_]*const Feature {2119 .dependencies = &[_]*const Feature {
2120 &feature_ras,
2121 &feature_db,
2122 &feature_trustzone,2120 &feature_trustzone,
2123 &feature_perfmon,2121 &feature_thumb2,
2124 &feature_fpregs,2122 &feature_fpregs,
2123 &feature_dsp,
2124 &feature_ras,
2125 &feature_v7clrex,
2126 &feature_hwdivArm,
2125 &feature_acquireRelease,2127 &feature_acquireRelease,
2128 &feature_aclass,
2129 &feature_perfmon,
2130 &feature_crc,
2126 &feature_mp,2131 &feature_mp,
2132 &feature_hwdiv,
2127 &feature_d32,2133 &feature_d32,
2128 &feature_v7clrex,
2129 &feature_dsp,
2130 &feature_crc,
2131 &feature_fp16,2134 &feature_fp16,
2132 &feature_hwdiv,2135 &feature_db,
2133 &feature_hwdivArm,
2134 &feature_thumb2,
2135 &feature_aclass,
2136 &feature_crypto,2136 &feature_crypto,
2137 &feature_dotprod,2137 &feature_dotprod,
2138 },2138 },
...@@ -2142,10 +2142,10 @@ pub const cpu_sc000 = Cpu{...@@ -2142,10 +2142,10 @@ pub const cpu_sc000 = Cpu{
2142 .name = "sc000",2142 .name = "sc000",
2143 .llvm_name = "sc000",2143 .llvm_name = "sc000",
2144 .dependencies = &[_]*const Feature {2144 .dependencies = &[_]*const Feature {
2145 &feature_db,
2146 &feature_strictAlign,
2147 &feature_noarm,2145 &feature_noarm,
2146 &feature_strictAlign,
2148 &feature_mclass,2147 &feature_mclass,
2148 &feature_db,
2149 },2149 },
2150};2150};
21512151
...@@ -2153,13 +2153,13 @@ pub const cpu_sc300 = Cpu{...@@ -2153,13 +2153,13 @@ pub const cpu_sc300 = Cpu{
2153 .name = "sc300",2153 .name = "sc300",
2154 .llvm_name = "sc300",2154 .llvm_name = "sc300",
2155 .dependencies = &[_]*const Feature {2155 .dependencies = &[_]*const Feature {
2156 &feature_db,2156 &feature_thumb2,
2157 &feature_perfmon,
2158 &feature_v7clrex,
2159 &feature_noarm,2157 &feature_noarm,
2158 &feature_v7clrex,
2159 &feature_perfmon,
2160 &feature_mclass,2160 &feature_mclass,
2161 &feature_hwdiv,2161 &feature_hwdiv,
2162 &feature_thumb2,2162 &feature_db,
2163 &feature_noBranchPredictor,2163 &feature_noBranchPredictor,
2164 &feature_useAa,2164 &feature_useAa,
2165 &feature_useMisched,2165 &feature_useMisched,
...@@ -2198,14 +2198,14 @@ pub const cpu_swift = Cpu{...@@ -2198,14 +2198,14 @@ pub const cpu_swift = Cpu{
2198 .name = "swift",2198 .name = "swift",
2199 .llvm_name = "swift",2199 .llvm_name = "swift",
2200 .dependencies = &[_]*const Feature {2200 .dependencies = &[_]*const Feature {
2201 &feature_db,2201 &feature_thumb2,
2202 &feature_perfmon,
2203 &feature_fpregs,2202 &feature_fpregs,
2204 &feature_d32,
2205 &feature_v7clrex,
2206 &feature_dsp,2203 &feature_dsp,
2207 &feature_thumb2,2204 &feature_v7clrex,
2208 &feature_aclass,2205 &feature_aclass,
2206 &feature_perfmon,
2207 &feature_d32,
2208 &feature_db,
2209 &feature_avoidMovsShop,2209 &feature_avoidMovsShop,
2210 &feature_avoidPartialCpsr,2210 &feature_avoidPartialCpsr,
2211 &feature_hwdivArm,2211 &feature_hwdivArm,
lib/std/target/avr.zig+1591-1591
...@@ -170,12 +170,12 @@ pub const cpu_at43usb320 = Cpu{...@@ -170,12 +170,12 @@ pub const cpu_at43usb320 = Cpu{
170 .name = "at43usb320",170 .name = "at43usb320",
171 .llvm_name = "at43usb320",171 .llvm_name = "at43usb320",
172 .dependencies = &[_]*const Feature {172 .dependencies = &[_]*const Feature {
173 &feature_sram,
174 &feature_jmpcall,
175 &feature_elpm,
176 &feature_lpm,173 &feature_lpm,
174 &feature_sram,
177 &feature_addsubiw,175 &feature_addsubiw,
176 &feature_elpm,
178 &feature_ijmpcall,177 &feature_ijmpcall,
178 &feature_jmpcall,
179 },179 },
180};180};
181181
...@@ -183,11 +183,11 @@ pub const cpu_at43usb355 = Cpu{...@@ -183,11 +183,11 @@ pub const cpu_at43usb355 = Cpu{
183 .name = "at43usb355",183 .name = "at43usb355",
184 .llvm_name = "at43usb355",184 .llvm_name = "at43usb355",
185 .dependencies = &[_]*const Feature {185 .dependencies = &[_]*const Feature {
186 &feature_sram,
187 &feature_jmpcall,
188 &feature_lpm,186 &feature_lpm,
187 &feature_sram,
189 &feature_addsubiw,188 &feature_addsubiw,
190 &feature_ijmpcall,189 &feature_ijmpcall,
190 &feature_jmpcall,
191 },191 },
192};192};
193193
...@@ -195,11 +195,11 @@ pub const cpu_at76c711 = Cpu{...@@ -195,11 +195,11 @@ pub const cpu_at76c711 = Cpu{
195 .name = "at76c711",195 .name = "at76c711",
196 .llvm_name = "at76c711",196 .llvm_name = "at76c711",
197 .dependencies = &[_]*const Feature {197 .dependencies = &[_]*const Feature {
198 &feature_sram,
199 &feature_jmpcall,
200 &feature_lpm,198 &feature_lpm,
199 &feature_sram,
201 &feature_addsubiw,200 &feature_addsubiw,
202 &feature_ijmpcall,201 &feature_ijmpcall,
202 &feature_jmpcall,
203 },203 },
204};204};
205205
...@@ -207,8 +207,8 @@ pub const cpu_at86rf401 = Cpu{...@@ -207,8 +207,8 @@ pub const cpu_at86rf401 = Cpu{
207 .name = "at86rf401",207 .name = "at86rf401",
208 .llvm_name = "at86rf401",208 .llvm_name = "at86rf401",
209 .dependencies = &[_]*const Feature {209 .dependencies = &[_]*const Feature {
210 &feature_sram,
211 &feature_lpm,210 &feature_lpm,
211 &feature_sram,
212 &feature_addsubiw,212 &feature_addsubiw,
213 &feature_ijmpcall,213 &feature_ijmpcall,
214 &feature_lpmx,214 &feature_lpmx,
...@@ -220,8 +220,8 @@ pub const cpu_at90c8534 = Cpu{...@@ -220,8 +220,8 @@ pub const cpu_at90c8534 = Cpu{
220 .name = "at90c8534",220 .name = "at90c8534",
221 .llvm_name = "at90c8534",221 .llvm_name = "at90c8534",
222 .dependencies = &[_]*const Feature {222 .dependencies = &[_]*const Feature {
223 &feature_sram,
224 &feature_lpm,223 &feature_lpm,
224 &feature_sram,
225 &feature_addsubiw,225 &feature_addsubiw,
226 &feature_ijmpcall,226 &feature_ijmpcall,
227 },227 },
...@@ -231,18 +231,18 @@ pub const cpu_at90can128 = Cpu{...@@ -231,18 +231,18 @@ pub const cpu_at90can128 = Cpu{
231 .name = "at90can128",231 .name = "at90can128",
232 .llvm_name = "at90can128",232 .llvm_name = "at90can128",
233 .dependencies = &[_]*const Feature {233 .dependencies = &[_]*const Feature {
234 &feature_lpm,
234 &feature_sram,235 &feature_sram,
235 &feature_jmpcall,236 &feature_addsubiw,
236 &feature_mul,237 &feature_movw,
237 &feature_elpm,238 &feature_elpm,
238 &feature_lpm,239 &feature_break,
240 &feature_ijmpcall,
239 &feature_lpmx,241 &feature_lpmx,
242 &feature_jmpcall,
240 &feature_spm,243 &feature_spm,
241 &feature_addsubiw,
242 &feature_ijmpcall,
243 &feature_elpmx,244 &feature_elpmx,
244 &feature_break,245 &feature_mul,
245 &feature_movw,
246 },246 },
247};247};
248248
...@@ -250,16 +250,16 @@ pub const cpu_at90can32 = Cpu{...@@ -250,16 +250,16 @@ pub const cpu_at90can32 = Cpu{
250 .name = "at90can32",250 .name = "at90can32",
251 .llvm_name = "at90can32",251 .llvm_name = "at90can32",
252 .dependencies = &[_]*const Feature {252 .dependencies = &[_]*const Feature {
253 &feature_sram,
254 &feature_jmpcall,
255 &feature_mul,
256 &feature_lpm,253 &feature_lpm,
257 &feature_lpmx,254 &feature_sram,
258 &feature_spm,
259 &feature_addsubiw,255 &feature_addsubiw,
260 &feature_ijmpcall,
261 &feature_break,
262 &feature_movw,256 &feature_movw,
257 &feature_break,
258 &feature_ijmpcall,
259 &feature_lpmx,
260 &feature_jmpcall,
261 &feature_spm,
262 &feature_mul,
263 },263 },
264};264};
265265
...@@ -267,16 +267,16 @@ pub const cpu_at90can64 = Cpu{...@@ -267,16 +267,16 @@ pub const cpu_at90can64 = Cpu{
267 .name = "at90can64",267 .name = "at90can64",
268 .llvm_name = "at90can64",268 .llvm_name = "at90can64",
269 .dependencies = &[_]*const Feature {269 .dependencies = &[_]*const Feature {
270 &feature_sram,
271 &feature_jmpcall,
272 &feature_mul,
273 &feature_lpm,270 &feature_lpm,
274 &feature_lpmx,271 &feature_sram,
275 &feature_spm,
276 &feature_addsubiw,272 &feature_addsubiw,
277 &feature_ijmpcall,
278 &feature_break,
279 &feature_movw,273 &feature_movw,
274 &feature_break,
275 &feature_ijmpcall,
276 &feature_lpmx,
277 &feature_jmpcall,
278 &feature_spm,
279 &feature_mul,
280 },280 },
281};281};
282282
...@@ -284,15 +284,15 @@ pub const cpu_at90pwm1 = Cpu{...@@ -284,15 +284,15 @@ pub const cpu_at90pwm1 = Cpu{
284 .name = "at90pwm1",284 .name = "at90pwm1",
285 .llvm_name = "at90pwm1",285 .llvm_name = "at90pwm1",
286 .dependencies = &[_]*const Feature {286 .dependencies = &[_]*const Feature {
287 &feature_sram,
288 &feature_mul,
289 &feature_lpm,287 &feature_lpm,
290 &feature_lpmx,288 &feature_sram,
291 &feature_spm,
292 &feature_addsubiw,289 &feature_addsubiw,
293 &feature_ijmpcall,
294 &feature_break,
295 &feature_movw,290 &feature_movw,
291 &feature_break,
292 &feature_ijmpcall,
293 &feature_lpmx,
294 &feature_spm,
295 &feature_mul,
296 },296 },
297};297};
298298
...@@ -300,16 +300,16 @@ pub const cpu_at90pwm161 = Cpu{...@@ -300,16 +300,16 @@ pub const cpu_at90pwm161 = Cpu{
300 .name = "at90pwm161",300 .name = "at90pwm161",
301 .llvm_name = "at90pwm161",301 .llvm_name = "at90pwm161",
302 .dependencies = &[_]*const Feature {302 .dependencies = &[_]*const Feature {
303 &feature_sram,
304 &feature_jmpcall,
305 &feature_mul,
306 &feature_lpm,303 &feature_lpm,
307 &feature_lpmx,304 &feature_sram,
308 &feature_spm,
309 &feature_addsubiw,305 &feature_addsubiw,
310 &feature_ijmpcall,
311 &feature_break,
312 &feature_movw,306 &feature_movw,
307 &feature_break,
308 &feature_ijmpcall,
309 &feature_lpmx,
310 &feature_jmpcall,
311 &feature_spm,
312 &feature_mul,
313 },313 },
314};314};
315315
...@@ -317,15 +317,15 @@ pub const cpu_at90pwm2 = Cpu{...@@ -317,15 +317,15 @@ pub const cpu_at90pwm2 = Cpu{
317 .name = "at90pwm2",317 .name = "at90pwm2",
318 .llvm_name = "at90pwm2",318 .llvm_name = "at90pwm2",
319 .dependencies = &[_]*const Feature {319 .dependencies = &[_]*const Feature {
320 &feature_sram,
321 &feature_mul,
322 &feature_lpm,320 &feature_lpm,
323 &feature_lpmx,321 &feature_sram,
324 &feature_spm,
325 &feature_addsubiw,322 &feature_addsubiw,
326 &feature_ijmpcall,
327 &feature_break,
328 &feature_movw,323 &feature_movw,
324 &feature_break,
325 &feature_ijmpcall,
326 &feature_lpmx,
327 &feature_spm,
328 &feature_mul,
329 },329 },
330};330};
331331
...@@ -333,16 +333,16 @@ pub const cpu_at90pwm216 = Cpu{...@@ -333,16 +333,16 @@ pub const cpu_at90pwm216 = Cpu{
333 .name = "at90pwm216",333 .name = "at90pwm216",
334 .llvm_name = "at90pwm216",334 .llvm_name = "at90pwm216",
335 .dependencies = &[_]*const Feature {335 .dependencies = &[_]*const Feature {
336 &feature_sram,
337 &feature_jmpcall,
338 &feature_mul,
339 &feature_lpm,336 &feature_lpm,
340 &feature_lpmx,337 &feature_sram,
341 &feature_spm,
342 &feature_addsubiw,338 &feature_addsubiw,
343 &feature_ijmpcall,
344 &feature_break,
345 &feature_movw,339 &feature_movw,
340 &feature_break,
341 &feature_ijmpcall,
342 &feature_lpmx,
343 &feature_jmpcall,
344 &feature_spm,
345 &feature_mul,
346 },346 },
347};347};
348348
...@@ -350,15 +350,15 @@ pub const cpu_at90pwm2b = Cpu{...@@ -350,15 +350,15 @@ pub const cpu_at90pwm2b = Cpu{
350 .name = "at90pwm2b",350 .name = "at90pwm2b",
351 .llvm_name = "at90pwm2b",351 .llvm_name = "at90pwm2b",
352 .dependencies = &[_]*const Feature {352 .dependencies = &[_]*const Feature {
353 &feature_sram,
354 &feature_mul,
355 &feature_lpm,353 &feature_lpm,
356 &feature_lpmx,354 &feature_sram,
357 &feature_spm,
358 &feature_addsubiw,355 &feature_addsubiw,
359 &feature_ijmpcall,
360 &feature_break,
361 &feature_movw,356 &feature_movw,
357 &feature_break,
358 &feature_ijmpcall,
359 &feature_lpmx,
360 &feature_spm,
361 &feature_mul,
362 },362 },
363};363};
364364
...@@ -366,15 +366,15 @@ pub const cpu_at90pwm3 = Cpu{...@@ -366,15 +366,15 @@ pub const cpu_at90pwm3 = Cpu{
366 .name = "at90pwm3",366 .name = "at90pwm3",
367 .llvm_name = "at90pwm3",367 .llvm_name = "at90pwm3",
368 .dependencies = &[_]*const Feature {368 .dependencies = &[_]*const Feature {
369 &feature_sram,
370 &feature_mul,
371 &feature_lpm,369 &feature_lpm,
372 &feature_lpmx,370 &feature_sram,
373 &feature_spm,
374 &feature_addsubiw,371 &feature_addsubiw,
375 &feature_ijmpcall,
376 &feature_break,
377 &feature_movw,372 &feature_movw,
373 &feature_break,
374 &feature_ijmpcall,
375 &feature_lpmx,
376 &feature_spm,
377 &feature_mul,
378 },378 },
379};379};
380380
...@@ -382,16 +382,16 @@ pub const cpu_at90pwm316 = Cpu{...@@ -382,16 +382,16 @@ pub const cpu_at90pwm316 = Cpu{
382 .name = "at90pwm316",382 .name = "at90pwm316",
383 .llvm_name = "at90pwm316",383 .llvm_name = "at90pwm316",
384 .dependencies = &[_]*const Feature {384 .dependencies = &[_]*const Feature {
385 &feature_sram,
386 &feature_jmpcall,
387 &feature_mul,
388 &feature_lpm,385 &feature_lpm,
389 &feature_lpmx,386 &feature_sram,
390 &feature_spm,
391 &feature_addsubiw,387 &feature_addsubiw,
392 &feature_ijmpcall,
393 &feature_break,
394 &feature_movw,388 &feature_movw,
389 &feature_break,
390 &feature_ijmpcall,
391 &feature_lpmx,
392 &feature_jmpcall,
393 &feature_spm,
394 &feature_mul,
395 },395 },
396};396};
397397
...@@ -399,15 +399,15 @@ pub const cpu_at90pwm3b = Cpu{...@@ -399,15 +399,15 @@ pub const cpu_at90pwm3b = Cpu{
399 .name = "at90pwm3b",399 .name = "at90pwm3b",
400 .llvm_name = "at90pwm3b",400 .llvm_name = "at90pwm3b",
401 .dependencies = &[_]*const Feature {401 .dependencies = &[_]*const Feature {
402 &feature_sram,
403 &feature_mul,
404 &feature_lpm,402 &feature_lpm,
405 &feature_lpmx,403 &feature_sram,
406 &feature_spm,
407 &feature_addsubiw,404 &feature_addsubiw,
408 &feature_ijmpcall,
409 &feature_break,
410 &feature_movw,405 &feature_movw,
406 &feature_break,
407 &feature_ijmpcall,
408 &feature_lpmx,
409 &feature_spm,
410 &feature_mul,
411 },411 },
412};412};
413413
...@@ -415,15 +415,15 @@ pub const cpu_at90pwm81 = Cpu{...@@ -415,15 +415,15 @@ pub const cpu_at90pwm81 = Cpu{
415 .name = "at90pwm81",415 .name = "at90pwm81",
416 .llvm_name = "at90pwm81",416 .llvm_name = "at90pwm81",
417 .dependencies = &[_]*const Feature {417 .dependencies = &[_]*const Feature {
418 &feature_sram,
419 &feature_mul,
420 &feature_lpm,418 &feature_lpm,
421 &feature_lpmx,419 &feature_sram,
422 &feature_spm,
423 &feature_addsubiw,420 &feature_addsubiw,
424 &feature_ijmpcall,
425 &feature_break,
426 &feature_movw,421 &feature_movw,
422 &feature_break,
423 &feature_ijmpcall,
424 &feature_lpmx,
425 &feature_spm,
426 &feature_mul,
427 },427 },
428};428};
429429
...@@ -438,8 +438,8 @@ pub const cpu_at90s2313 = Cpu{...@@ -438,8 +438,8 @@ pub const cpu_at90s2313 = Cpu{
438 .name = "at90s2313",438 .name = "at90s2313",
439 .llvm_name = "at90s2313",439 .llvm_name = "at90s2313",
440 .dependencies = &[_]*const Feature {440 .dependencies = &[_]*const Feature {
441 &feature_sram,
442 &feature_lpm,441 &feature_lpm,
442 &feature_sram,
443 &feature_addsubiw,443 &feature_addsubiw,
444 &feature_ijmpcall,444 &feature_ijmpcall,
445 },445 },
...@@ -449,8 +449,8 @@ pub const cpu_at90s2323 = Cpu{...@@ -449,8 +449,8 @@ pub const cpu_at90s2323 = Cpu{
449 .name = "at90s2323",449 .name = "at90s2323",
450 .llvm_name = "at90s2323",450 .llvm_name = "at90s2323",
451 .dependencies = &[_]*const Feature {451 .dependencies = &[_]*const Feature {
452 &feature_sram,
453 &feature_lpm,452 &feature_lpm,
453 &feature_sram,
454 &feature_addsubiw,454 &feature_addsubiw,
455 &feature_ijmpcall,455 &feature_ijmpcall,
456 },456 },
...@@ -460,8 +460,8 @@ pub const cpu_at90s2333 = Cpu{...@@ -460,8 +460,8 @@ pub const cpu_at90s2333 = Cpu{
460 .name = "at90s2333",460 .name = "at90s2333",
461 .llvm_name = "at90s2333",461 .llvm_name = "at90s2333",
462 .dependencies = &[_]*const Feature {462 .dependencies = &[_]*const Feature {
463 &feature_sram,
464 &feature_lpm,463 &feature_lpm,
464 &feature_sram,
465 &feature_addsubiw,465 &feature_addsubiw,
466 &feature_ijmpcall,466 &feature_ijmpcall,
467 },467 },
...@@ -471,8 +471,8 @@ pub const cpu_at90s2343 = Cpu{...@@ -471,8 +471,8 @@ pub const cpu_at90s2343 = Cpu{
471 .name = "at90s2343",471 .name = "at90s2343",
472 .llvm_name = "at90s2343",472 .llvm_name = "at90s2343",
473 .dependencies = &[_]*const Feature {473 .dependencies = &[_]*const Feature {
474 &feature_sram,
475 &feature_lpm,474 &feature_lpm,
475 &feature_sram,
476 &feature_addsubiw,476 &feature_addsubiw,
477 &feature_ijmpcall,477 &feature_ijmpcall,
478 },478 },
...@@ -482,8 +482,8 @@ pub const cpu_at90s4414 = Cpu{...@@ -482,8 +482,8 @@ pub const cpu_at90s4414 = Cpu{
482 .name = "at90s4414",482 .name = "at90s4414",
483 .llvm_name = "at90s4414",483 .llvm_name = "at90s4414",
484 .dependencies = &[_]*const Feature {484 .dependencies = &[_]*const Feature {
485 &feature_sram,
486 &feature_lpm,485 &feature_lpm,
486 &feature_sram,
487 &feature_addsubiw,487 &feature_addsubiw,
488 &feature_ijmpcall,488 &feature_ijmpcall,
489 },489 },
...@@ -493,8 +493,8 @@ pub const cpu_at90s4433 = Cpu{...@@ -493,8 +493,8 @@ pub const cpu_at90s4433 = Cpu{
493 .name = "at90s4433",493 .name = "at90s4433",
494 .llvm_name = "at90s4433",494 .llvm_name = "at90s4433",
495 .dependencies = &[_]*const Feature {495 .dependencies = &[_]*const Feature {
496 &feature_sram,
497 &feature_lpm,496 &feature_lpm,
497 &feature_sram,
498 &feature_addsubiw,498 &feature_addsubiw,
499 &feature_ijmpcall,499 &feature_ijmpcall,
500 },500 },
...@@ -504,8 +504,8 @@ pub const cpu_at90s4434 = Cpu{...@@ -504,8 +504,8 @@ pub const cpu_at90s4434 = Cpu{
504 .name = "at90s4434",504 .name = "at90s4434",
505 .llvm_name = "at90s4434",505 .llvm_name = "at90s4434",
506 .dependencies = &[_]*const Feature {506 .dependencies = &[_]*const Feature {
507 &feature_sram,
508 &feature_lpm,507 &feature_lpm,
508 &feature_sram,
509 &feature_addsubiw,509 &feature_addsubiw,
510 &feature_ijmpcall,510 &feature_ijmpcall,
511 },511 },
...@@ -515,8 +515,8 @@ pub const cpu_at90s8515 = Cpu{...@@ -515,8 +515,8 @@ pub const cpu_at90s8515 = Cpu{
515 .name = "at90s8515",515 .name = "at90s8515",
516 .llvm_name = "at90s8515",516 .llvm_name = "at90s8515",
517 .dependencies = &[_]*const Feature {517 .dependencies = &[_]*const Feature {
518 &feature_sram,
519 &feature_lpm,518 &feature_lpm,
519 &feature_sram,
520 &feature_addsubiw,520 &feature_addsubiw,
521 &feature_ijmpcall,521 &feature_ijmpcall,
522 },522 },
...@@ -526,8 +526,8 @@ pub const cpu_at90s8535 = Cpu{...@@ -526,8 +526,8 @@ pub const cpu_at90s8535 = Cpu{
526 .name = "at90s8535",526 .name = "at90s8535",
527 .llvm_name = "at90s8535",527 .llvm_name = "at90s8535",
528 .dependencies = &[_]*const Feature {528 .dependencies = &[_]*const Feature {
529 &feature_sram,
530 &feature_lpm,529 &feature_lpm,
530 &feature_sram,
531 &feature_addsubiw,531 &feature_addsubiw,
532 &feature_ijmpcall,532 &feature_ijmpcall,
533 },533 },
...@@ -537,16 +537,16 @@ pub const cpu_at90scr100 = Cpu{...@@ -537,16 +537,16 @@ pub const cpu_at90scr100 = Cpu{
537 .name = "at90scr100",537 .name = "at90scr100",
538 .llvm_name = "at90scr100",538 .llvm_name = "at90scr100",
539 .dependencies = &[_]*const Feature {539 .dependencies = &[_]*const Feature {
540 &feature_sram,
541 &feature_jmpcall,
542 &feature_mul,
543 &feature_lpm,540 &feature_lpm,
544 &feature_lpmx,541 &feature_sram,
545 &feature_spm,
546 &feature_addsubiw,542 &feature_addsubiw,
547 &feature_ijmpcall,
548 &feature_break,
549 &feature_movw,543 &feature_movw,
544 &feature_break,
545 &feature_ijmpcall,
546 &feature_lpmx,
547 &feature_jmpcall,
548 &feature_spm,
549 &feature_mul,
550 },550 },
551};551};
552552
...@@ -554,18 +554,18 @@ pub const cpu_at90usb1286 = Cpu{...@@ -554,18 +554,18 @@ pub const cpu_at90usb1286 = Cpu{
554 .name = "at90usb1286",554 .name = "at90usb1286",
555 .llvm_name = "at90usb1286",555 .llvm_name = "at90usb1286",
556 .dependencies = &[_]*const Feature {556 .dependencies = &[_]*const Feature {
557 &feature_lpm,
557 &feature_sram,558 &feature_sram,
558 &feature_jmpcall,559 &feature_addsubiw,
559 &feature_mul,560 &feature_movw,
560 &feature_elpm,561 &feature_elpm,
561 &feature_lpm,562 &feature_break,
563 &feature_ijmpcall,
562 &feature_lpmx,564 &feature_lpmx,
565 &feature_jmpcall,
563 &feature_spm,566 &feature_spm,
564 &feature_addsubiw,
565 &feature_ijmpcall,
566 &feature_elpmx,567 &feature_elpmx,
567 &feature_break,568 &feature_mul,
568 &feature_movw,
569 },569 },
570};570};
571571
...@@ -573,18 +573,18 @@ pub const cpu_at90usb1287 = Cpu{...@@ -573,18 +573,18 @@ pub const cpu_at90usb1287 = Cpu{
573 .name = "at90usb1287",573 .name = "at90usb1287",
574 .llvm_name = "at90usb1287",574 .llvm_name = "at90usb1287",
575 .dependencies = &[_]*const Feature {575 .dependencies = &[_]*const Feature {
576 &feature_lpm,
576 &feature_sram,577 &feature_sram,
577 &feature_jmpcall,578 &feature_addsubiw,
578 &feature_mul,579 &feature_movw,
579 &feature_elpm,580 &feature_elpm,
580 &feature_lpm,581 &feature_break,
582 &feature_ijmpcall,
581 &feature_lpmx,583 &feature_lpmx,
584 &feature_jmpcall,
582 &feature_spm,585 &feature_spm,
583 &feature_addsubiw,
584 &feature_ijmpcall,
585 &feature_elpmx,586 &feature_elpmx,
586 &feature_break,587 &feature_mul,
587 &feature_movw,
588 },588 },
589};589};
590590
...@@ -592,15 +592,15 @@ pub const cpu_at90usb162 = Cpu{...@@ -592,15 +592,15 @@ pub const cpu_at90usb162 = Cpu{
592 .name = "at90usb162",592 .name = "at90usb162",
593 .llvm_name = "at90usb162",593 .llvm_name = "at90usb162",
594 .dependencies = &[_]*const Feature {594 .dependencies = &[_]*const Feature {
595 &feature_sram,
596 &feature_jmpcall,
597 &feature_lpm,595 &feature_lpm,
598 &feature_lpmx,596 &feature_sram,
599 &feature_spm,
600 &feature_addsubiw,597 &feature_addsubiw,
601 &feature_ijmpcall,
602 &feature_break,
603 &feature_movw,598 &feature_movw,
599 &feature_break,
600 &feature_ijmpcall,
601 &feature_lpmx,
602 &feature_jmpcall,
603 &feature_spm,
604 },604 },
605};605};
606606
...@@ -608,33 +608,33 @@ pub const cpu_at90usb646 = Cpu{...@@ -608,33 +608,33 @@ pub const cpu_at90usb646 = Cpu{
608 .name = "at90usb646",608 .name = "at90usb646",
609 .llvm_name = "at90usb646",609 .llvm_name = "at90usb646",
610 .dependencies = &[_]*const Feature {610 .dependencies = &[_]*const Feature {
611 &feature_sram,
612 &feature_jmpcall,
613 &feature_mul,
614 &feature_lpm,611 &feature_lpm,
615 &feature_lpmx,612 &feature_sram,
616 &feature_spm,
617 &feature_addsubiw,613 &feature_addsubiw,
618 &feature_ijmpcall,
619 &feature_break,
620 &feature_movw,614 &feature_movw,
621 },615 &feature_break,
622};616 &feature_ijmpcall,
617 &feature_lpmx,
618 &feature_jmpcall,
619 &feature_spm,
620 &feature_mul,
621 },
622};
623623
624pub const cpu_at90usb647 = Cpu{624pub const cpu_at90usb647 = Cpu{
625 .name = "at90usb647",625 .name = "at90usb647",
626 .llvm_name = "at90usb647",626 .llvm_name = "at90usb647",
627 .dependencies = &[_]*const Feature {627 .dependencies = &[_]*const Feature {
628 &feature_sram,
629 &feature_jmpcall,
630 &feature_mul,
631 &feature_lpm,628 &feature_lpm,
632 &feature_lpmx,629 &feature_sram,
633 &feature_spm,
634 &feature_addsubiw,630 &feature_addsubiw,
635 &feature_ijmpcall,
636 &feature_break,
637 &feature_movw,631 &feature_movw,
632 &feature_break,
633 &feature_ijmpcall,
634 &feature_lpmx,
635 &feature_jmpcall,
636 &feature_spm,
637 &feature_mul,
638 },638 },
639};639};
640640
...@@ -642,15 +642,15 @@ pub const cpu_at90usb82 = Cpu{...@@ -642,15 +642,15 @@ pub const cpu_at90usb82 = Cpu{
642 .name = "at90usb82",642 .name = "at90usb82",
643 .llvm_name = "at90usb82",643 .llvm_name = "at90usb82",
644 .dependencies = &[_]*const Feature {644 .dependencies = &[_]*const Feature {
645 &feature_sram,
646 &feature_jmpcall,
647 &feature_lpm,645 &feature_lpm,
648 &feature_lpmx,646 &feature_sram,
649 &feature_spm,
650 &feature_addsubiw,647 &feature_addsubiw,
651 &feature_ijmpcall,
652 &feature_break,
653 &feature_movw,648 &feature_movw,
649 &feature_break,
650 &feature_ijmpcall,
651 &feature_lpmx,
652 &feature_jmpcall,
653 &feature_spm,
654 },654 },
655};655};
656656
...@@ -658,11 +658,11 @@ pub const cpu_at94k = Cpu{...@@ -658,11 +658,11 @@ pub const cpu_at94k = Cpu{
658 .name = "at94k",658 .name = "at94k",
659 .llvm_name = "at94k",659 .llvm_name = "at94k",
660 .dependencies = &[_]*const Feature {660 .dependencies = &[_]*const Feature {
661 &feature_sram,
662 &feature_jmpcall,
663 &feature_lpm,661 &feature_lpm,
662 &feature_sram,
664 &feature_addsubiw,663 &feature_addsubiw,
665 &feature_ijmpcall,664 &feature_ijmpcall,
665 &feature_jmpcall,
666 &feature_lpmx,666 &feature_lpmx,
667 &feature_movw,667 &feature_movw,
668 &feature_mul,668 &feature_mul,
...@@ -673,14 +673,14 @@ pub const cpu_ata5272 = Cpu{...@@ -673,14 +673,14 @@ pub const cpu_ata5272 = Cpu{
673 .name = "ata5272",673 .name = "ata5272",
674 .llvm_name = "ata5272",674 .llvm_name = "ata5272",
675 .dependencies = &[_]*const Feature {675 .dependencies = &[_]*const Feature {
676 &feature_sram,
677 &feature_lpm,676 &feature_lpm,
678 &feature_lpmx,677 &feature_sram,
679 &feature_spm,
680 &feature_addsubiw,678 &feature_addsubiw,
681 &feature_ijmpcall,
682 &feature_break,
683 &feature_movw,679 &feature_movw,
680 &feature_break,
681 &feature_ijmpcall,
682 &feature_lpmx,
683 &feature_spm,
684 },684 },
685};685};
686686
...@@ -688,15 +688,15 @@ pub const cpu_ata5505 = Cpu{...@@ -688,15 +688,15 @@ pub const cpu_ata5505 = Cpu{
688 .name = "ata5505",688 .name = "ata5505",
689 .llvm_name = "ata5505",689 .llvm_name = "ata5505",
690 .dependencies = &[_]*const Feature {690 .dependencies = &[_]*const Feature {
691 &feature_sram,
692 &feature_jmpcall,
693 &feature_lpm,691 &feature_lpm,
694 &feature_lpmx,692 &feature_sram,
695 &feature_spm,
696 &feature_addsubiw,693 &feature_addsubiw,
697 &feature_ijmpcall,
698 &feature_break,
699 &feature_movw,694 &feature_movw,
695 &feature_break,
696 &feature_ijmpcall,
697 &feature_lpmx,
698 &feature_jmpcall,
699 &feature_spm,
700 },700 },
701};701};
702702
...@@ -704,16 +704,16 @@ pub const cpu_ata5790 = Cpu{...@@ -704,16 +704,16 @@ pub const cpu_ata5790 = Cpu{
704 .name = "ata5790",704 .name = "ata5790",
705 .llvm_name = "ata5790",705 .llvm_name = "ata5790",
706 .dependencies = &[_]*const Feature {706 .dependencies = &[_]*const Feature {
707 &feature_sram,
708 &feature_jmpcall,
709 &feature_mul,
710 &feature_lpm,707 &feature_lpm,
711 &feature_lpmx,708 &feature_sram,
712 &feature_spm,
713 &feature_addsubiw,709 &feature_addsubiw,
714 &feature_ijmpcall,
715 &feature_break,
716 &feature_movw,710 &feature_movw,
711 &feature_break,
712 &feature_ijmpcall,
713 &feature_lpmx,
714 &feature_jmpcall,
715 &feature_spm,
716 &feature_mul,
717 },717 },
718};718};
719719
...@@ -721,16 +721,16 @@ pub const cpu_ata5795 = Cpu{...@@ -721,16 +721,16 @@ pub const cpu_ata5795 = Cpu{
721 .name = "ata5795",721 .name = "ata5795",
722 .llvm_name = "ata5795",722 .llvm_name = "ata5795",
723 .dependencies = &[_]*const Feature {723 .dependencies = &[_]*const Feature {
724 &feature_sram,
725 &feature_jmpcall,
726 &feature_mul,
727 &feature_lpm,724 &feature_lpm,
728 &feature_lpmx,725 &feature_sram,
729 &feature_spm,
730 &feature_addsubiw,726 &feature_addsubiw,
731 &feature_ijmpcall,
732 &feature_break,
733 &feature_movw,727 &feature_movw,
728 &feature_break,
729 &feature_ijmpcall,
730 &feature_lpmx,
731 &feature_jmpcall,
732 &feature_spm,
733 &feature_mul,
734 },734 },
735};735};
736736
...@@ -738,15 +738,15 @@ pub const cpu_ata6285 = Cpu{...@@ -738,15 +738,15 @@ pub const cpu_ata6285 = Cpu{
738 .name = "ata6285",738 .name = "ata6285",
739 .llvm_name = "ata6285",739 .llvm_name = "ata6285",
740 .dependencies = &[_]*const Feature {740 .dependencies = &[_]*const Feature {
741 &feature_sram,
742 &feature_mul,
743 &feature_lpm,741 &feature_lpm,
744 &feature_lpmx,742 &feature_sram,
745 &feature_spm,
746 &feature_addsubiw,743 &feature_addsubiw,
747 &feature_ijmpcall,
748 &feature_break,
749 &feature_movw,744 &feature_movw,
745 &feature_break,
746 &feature_ijmpcall,
747 &feature_lpmx,
748 &feature_spm,
749 &feature_mul,
750 },750 },
751};751};
752752
...@@ -754,15 +754,15 @@ pub const cpu_ata6286 = Cpu{...@@ -754,15 +754,15 @@ pub const cpu_ata6286 = Cpu{
754 .name = "ata6286",754 .name = "ata6286",
755 .llvm_name = "ata6286",755 .llvm_name = "ata6286",
756 .dependencies = &[_]*const Feature {756 .dependencies = &[_]*const Feature {
757 &feature_sram,
758 &feature_mul,
759 &feature_lpm,757 &feature_lpm,
760 &feature_lpmx,758 &feature_sram,
761 &feature_spm,
762 &feature_addsubiw,759 &feature_addsubiw,
763 &feature_ijmpcall,
764 &feature_break,
765 &feature_movw,760 &feature_movw,
761 &feature_break,
762 &feature_ijmpcall,
763 &feature_lpmx,
764 &feature_spm,
765 &feature_mul,
766 },766 },
767};767};
768768
...@@ -770,15 +770,15 @@ pub const cpu_ata6289 = Cpu{...@@ -770,15 +770,15 @@ pub const cpu_ata6289 = Cpu{
770 .name = "ata6289",770 .name = "ata6289",
771 .llvm_name = "ata6289",771 .llvm_name = "ata6289",
772 .dependencies = &[_]*const Feature {772 .dependencies = &[_]*const Feature {
773 &feature_sram,
774 &feature_mul,
775 &feature_lpm,773 &feature_lpm,
776 &feature_lpmx,774 &feature_sram,
777 &feature_spm,
778 &feature_addsubiw,775 &feature_addsubiw,
779 &feature_ijmpcall,
780 &feature_break,
781 &feature_movw,776 &feature_movw,
777 &feature_break,
778 &feature_ijmpcall,
779 &feature_lpmx,
780 &feature_spm,
781 &feature_mul,
782 },782 },
783};783};
784784
...@@ -786,12 +786,12 @@ pub const cpu_atmega103 = Cpu{...@@ -786,12 +786,12 @@ pub const cpu_atmega103 = Cpu{
786 .name = "atmega103",786 .name = "atmega103",
787 .llvm_name = "atmega103",787 .llvm_name = "atmega103",
788 .dependencies = &[_]*const Feature {788 .dependencies = &[_]*const Feature {
789 &feature_sram,
790 &feature_jmpcall,
791 &feature_elpm,
792 &feature_lpm,789 &feature_lpm,
790 &feature_sram,
793 &feature_addsubiw,791 &feature_addsubiw,
792 &feature_elpm,
794 &feature_ijmpcall,793 &feature_ijmpcall,
794 &feature_jmpcall,
795 },795 },
796};796};
797797
...@@ -799,18 +799,18 @@ pub const cpu_atmega128 = Cpu{...@@ -799,18 +799,18 @@ pub const cpu_atmega128 = Cpu{
799 .name = "atmega128",799 .name = "atmega128",
800 .llvm_name = "atmega128",800 .llvm_name = "atmega128",
801 .dependencies = &[_]*const Feature {801 .dependencies = &[_]*const Feature {
802 &feature_lpm,
802 &feature_sram,803 &feature_sram,
803 &feature_jmpcall,804 &feature_addsubiw,
804 &feature_mul,805 &feature_movw,
805 &feature_elpm,806 &feature_elpm,
806 &feature_lpm,807 &feature_break,
808 &feature_ijmpcall,
807 &feature_lpmx,809 &feature_lpmx,
810 &feature_jmpcall,
808 &feature_spm,811 &feature_spm,
809 &feature_addsubiw,
810 &feature_ijmpcall,
811 &feature_elpmx,812 &feature_elpmx,
812 &feature_break,813 &feature_mul,
813 &feature_movw,
814 },814 },
815};815};
816816
...@@ -818,18 +818,18 @@ pub const cpu_atmega1280 = Cpu{...@@ -818,18 +818,18 @@ pub const cpu_atmega1280 = Cpu{
818 .name = "atmega1280",818 .name = "atmega1280",
819 .llvm_name = "atmega1280",819 .llvm_name = "atmega1280",
820 .dependencies = &[_]*const Feature {820 .dependencies = &[_]*const Feature {
821 &feature_lpm,
821 &feature_sram,822 &feature_sram,
822 &feature_jmpcall,823 &feature_addsubiw,
823 &feature_mul,824 &feature_movw,
824 &feature_elpm,825 &feature_elpm,
825 &feature_lpm,826 &feature_break,
827 &feature_ijmpcall,
826 &feature_lpmx,828 &feature_lpmx,
829 &feature_jmpcall,
827 &feature_spm,830 &feature_spm,
828 &feature_addsubiw,
829 &feature_ijmpcall,
830 &feature_elpmx,831 &feature_elpmx,
831 &feature_break,832 &feature_mul,
832 &feature_movw,
833 },833 },
834};834};
835835
...@@ -837,18 +837,18 @@ pub const cpu_atmega1281 = Cpu{...@@ -837,18 +837,18 @@ pub const cpu_atmega1281 = Cpu{
837 .name = "atmega1281",837 .name = "atmega1281",
838 .llvm_name = "atmega1281",838 .llvm_name = "atmega1281",
839 .dependencies = &[_]*const Feature {839 .dependencies = &[_]*const Feature {
840 &feature_lpm,
840 &feature_sram,841 &feature_sram,
841 &feature_jmpcall,842 &feature_addsubiw,
842 &feature_mul,843 &feature_movw,
843 &feature_elpm,844 &feature_elpm,
844 &feature_lpm,845 &feature_break,
846 &feature_ijmpcall,
845 &feature_lpmx,847 &feature_lpmx,
848 &feature_jmpcall,
846 &feature_spm,849 &feature_spm,
847 &feature_addsubiw,
848 &feature_ijmpcall,
849 &feature_elpmx,850 &feature_elpmx,
850 &feature_break,851 &feature_mul,
851 &feature_movw,
852 },852 },
853};853};
854854
...@@ -856,18 +856,18 @@ pub const cpu_atmega1284 = Cpu{...@@ -856,18 +856,18 @@ pub const cpu_atmega1284 = Cpu{
856 .name = "atmega1284",856 .name = "atmega1284",
857 .llvm_name = "atmega1284",857 .llvm_name = "atmega1284",
858 .dependencies = &[_]*const Feature {858 .dependencies = &[_]*const Feature {
859 &feature_lpm,
859 &feature_sram,860 &feature_sram,
860 &feature_jmpcall,861 &feature_addsubiw,
861 &feature_mul,862 &feature_movw,
862 &feature_elpm,863 &feature_elpm,
863 &feature_lpm,864 &feature_break,
865 &feature_ijmpcall,
864 &feature_lpmx,866 &feature_lpmx,
867 &feature_jmpcall,
865 &feature_spm,868 &feature_spm,
866 &feature_addsubiw,
867 &feature_ijmpcall,
868 &feature_elpmx,869 &feature_elpmx,
869 &feature_break,870 &feature_mul,
870 &feature_movw,
871 },871 },
872};872};
873873
...@@ -875,18 +875,18 @@ pub const cpu_atmega1284p = Cpu{...@@ -875,18 +875,18 @@ pub const cpu_atmega1284p = Cpu{
875 .name = "atmega1284p",875 .name = "atmega1284p",
876 .llvm_name = "atmega1284p",876 .llvm_name = "atmega1284p",
877 .dependencies = &[_]*const Feature {877 .dependencies = &[_]*const Feature {
878 &feature_lpm,
878 &feature_sram,879 &feature_sram,
879 &feature_jmpcall,880 &feature_addsubiw,
880 &feature_mul,881 &feature_movw,
881 &feature_elpm,882 &feature_elpm,
882 &feature_lpm,883 &feature_break,
884 &feature_ijmpcall,
883 &feature_lpmx,885 &feature_lpmx,
886 &feature_jmpcall,
884 &feature_spm,887 &feature_spm,
885 &feature_addsubiw,
886 &feature_ijmpcall,
887 &feature_elpmx,888 &feature_elpmx,
888 &feature_break,889 &feature_mul,
889 &feature_movw,
890 },890 },
891};891};
892892
...@@ -894,18 +894,18 @@ pub const cpu_atmega1284rfr2 = Cpu{...@@ -894,18 +894,18 @@ pub const cpu_atmega1284rfr2 = Cpu{
894 .name = "atmega1284rfr2",894 .name = "atmega1284rfr2",
895 .llvm_name = "atmega1284rfr2",895 .llvm_name = "atmega1284rfr2",
896 .dependencies = &[_]*const Feature {896 .dependencies = &[_]*const Feature {
897 &feature_lpm,
897 &feature_sram,898 &feature_sram,
898 &feature_jmpcall,899 &feature_addsubiw,
899 &feature_mul,900 &feature_movw,
900 &feature_elpm,901 &feature_elpm,
901 &feature_lpm,902 &feature_break,
903 &feature_ijmpcall,
902 &feature_lpmx,904 &feature_lpmx,
905 &feature_jmpcall,
903 &feature_spm,906 &feature_spm,
904 &feature_addsubiw,
905 &feature_ijmpcall,
906 &feature_elpmx,907 &feature_elpmx,
907 &feature_break,908 &feature_mul,
908 &feature_movw,
909 },909 },
910};910};
911911
...@@ -913,18 +913,18 @@ pub const cpu_atmega128a = Cpu{...@@ -913,18 +913,18 @@ pub const cpu_atmega128a = Cpu{
913 .name = "atmega128a",913 .name = "atmega128a",
914 .llvm_name = "atmega128a",914 .llvm_name = "atmega128a",
915 .dependencies = &[_]*const Feature {915 .dependencies = &[_]*const Feature {
916 &feature_lpm,
916 &feature_sram,917 &feature_sram,
917 &feature_jmpcall,918 &feature_addsubiw,
918 &feature_mul,919 &feature_movw,
919 &feature_elpm,920 &feature_elpm,
920 &feature_lpm,921 &feature_break,
922 &feature_ijmpcall,
921 &feature_lpmx,923 &feature_lpmx,
924 &feature_jmpcall,
922 &feature_spm,925 &feature_spm,
923 &feature_addsubiw,
924 &feature_ijmpcall,
925 &feature_elpmx,926 &feature_elpmx,
926 &feature_break,927 &feature_mul,
927 &feature_movw,
928 },928 },
929};929};
930930
...@@ -932,18 +932,18 @@ pub const cpu_atmega128rfa1 = Cpu{...@@ -932,18 +932,18 @@ pub const cpu_atmega128rfa1 = Cpu{
932 .name = "atmega128rfa1",932 .name = "atmega128rfa1",
933 .llvm_name = "atmega128rfa1",933 .llvm_name = "atmega128rfa1",
934 .dependencies = &[_]*const Feature {934 .dependencies = &[_]*const Feature {
935 &feature_lpm,
935 &feature_sram,936 &feature_sram,
936 &feature_jmpcall,937 &feature_addsubiw,
937 &feature_mul,938 &feature_movw,
938 &feature_elpm,939 &feature_elpm,
939 &feature_lpm,940 &feature_break,
941 &feature_ijmpcall,
940 &feature_lpmx,942 &feature_lpmx,
943 &feature_jmpcall,
941 &feature_spm,944 &feature_spm,
942 &feature_addsubiw,
943 &feature_ijmpcall,
944 &feature_elpmx,945 &feature_elpmx,
945 &feature_break,946 &feature_mul,
946 &feature_movw,
947 },947 },
948};948};
949949
...@@ -951,18 +951,18 @@ pub const cpu_atmega128rfr2 = Cpu{...@@ -951,18 +951,18 @@ pub const cpu_atmega128rfr2 = Cpu{
951 .name = "atmega128rfr2",951 .name = "atmega128rfr2",
952 .llvm_name = "atmega128rfr2",952 .llvm_name = "atmega128rfr2",
953 .dependencies = &[_]*const Feature {953 .dependencies = &[_]*const Feature {
954 &feature_lpm,
954 &feature_sram,955 &feature_sram,
955 &feature_jmpcall,956 &feature_addsubiw,
956 &feature_mul,957 &feature_movw,
957 &feature_elpm,958 &feature_elpm,
958 &feature_lpm,959 &feature_break,
960 &feature_ijmpcall,
959 &feature_lpmx,961 &feature_lpmx,
962 &feature_jmpcall,
960 &feature_spm,963 &feature_spm,
961 &feature_addsubiw,
962 &feature_ijmpcall,
963 &feature_elpmx,964 &feature_elpmx,
964 &feature_break,965 &feature_mul,
965 &feature_movw,
966 },966 },
967};967};
968968
...@@ -970,16 +970,16 @@ pub const cpu_atmega16 = Cpu{...@@ -970,16 +970,16 @@ pub const cpu_atmega16 = Cpu{
970 .name = "atmega16",970 .name = "atmega16",
971 .llvm_name = "atmega16",971 .llvm_name = "atmega16",
972 .dependencies = &[_]*const Feature {972 .dependencies = &[_]*const Feature {
973 &feature_sram,
974 &feature_jmpcall,
975 &feature_mul,
976 &feature_lpm,973 &feature_lpm,
977 &feature_lpmx,974 &feature_sram,
978 &feature_spm,
979 &feature_addsubiw,975 &feature_addsubiw,
980 &feature_ijmpcall,
981 &feature_break,
982 &feature_movw,976 &feature_movw,
977 &feature_break,
978 &feature_ijmpcall,
979 &feature_lpmx,
980 &feature_jmpcall,
981 &feature_spm,
982 &feature_mul,
983 },983 },
984};984};
985985
...@@ -987,11 +987,11 @@ pub const cpu_atmega161 = Cpu{...@@ -987,11 +987,11 @@ pub const cpu_atmega161 = Cpu{
987 .name = "atmega161",987 .name = "atmega161",
988 .llvm_name = "atmega161",988 .llvm_name = "atmega161",
989 .dependencies = &[_]*const Feature {989 .dependencies = &[_]*const Feature {
990 &feature_sram,
991 &feature_jmpcall,
992 &feature_lpm,990 &feature_lpm,
991 &feature_sram,
993 &feature_addsubiw,992 &feature_addsubiw,
994 &feature_ijmpcall,993 &feature_ijmpcall,
994 &feature_jmpcall,
995 &feature_lpmx,995 &feature_lpmx,
996 &feature_movw,996 &feature_movw,
997 &feature_mul,997 &feature_mul,
...@@ -1003,16 +1003,16 @@ pub const cpu_atmega162 = Cpu{...@@ -1003,16 +1003,16 @@ pub const cpu_atmega162 = Cpu{
1003 .name = "atmega162",1003 .name = "atmega162",
1004 .llvm_name = "atmega162",1004 .llvm_name = "atmega162",
1005 .dependencies = &[_]*const Feature {1005 .dependencies = &[_]*const Feature {
1006 &feature_sram,
1007 &feature_jmpcall,
1008 &feature_mul,
1009 &feature_lpm,1006 &feature_lpm,
1010 &feature_lpmx,1007 &feature_sram,
1011 &feature_spm,
1012 &feature_addsubiw,1008 &feature_addsubiw,
1013 &feature_ijmpcall,
1014 &feature_break,
1015 &feature_movw,1009 &feature_movw,
1010 &feature_break,
1011 &feature_ijmpcall,
1012 &feature_lpmx,
1013 &feature_jmpcall,
1014 &feature_spm,
1015 &feature_mul,
1016 },1016 },
1017};1017};
10181018
...@@ -1020,11 +1020,11 @@ pub const cpu_atmega163 = Cpu{...@@ -1020,11 +1020,11 @@ pub const cpu_atmega163 = Cpu{
1020 .name = "atmega163",1020 .name = "atmega163",
1021 .llvm_name = "atmega163",1021 .llvm_name = "atmega163",
1022 .dependencies = &[_]*const Feature {1022 .dependencies = &[_]*const Feature {
1023 &feature_sram,
1024 &feature_jmpcall,
1025 &feature_lpm,1023 &feature_lpm,
1024 &feature_sram,
1026 &feature_addsubiw,1025 &feature_addsubiw,
1027 &feature_ijmpcall,1026 &feature_ijmpcall,
1027 &feature_jmpcall,
1028 &feature_lpmx,1028 &feature_lpmx,
1029 &feature_movw,1029 &feature_movw,
1030 &feature_mul,1030 &feature_mul,
...@@ -1036,16 +1036,16 @@ pub const cpu_atmega164a = Cpu{...@@ -1036,16 +1036,16 @@ pub const cpu_atmega164a = Cpu{
1036 .name = "atmega164a",1036 .name = "atmega164a",
1037 .llvm_name = "atmega164a",1037 .llvm_name = "atmega164a",
1038 .dependencies = &[_]*const Feature {1038 .dependencies = &[_]*const Feature {
1039 &feature_sram,
1040 &feature_jmpcall,
1041 &feature_mul,
1042 &feature_lpm,1039 &feature_lpm,
1043 &feature_lpmx,1040 &feature_sram,
1044 &feature_spm,
1045 &feature_addsubiw,1041 &feature_addsubiw,
1046 &feature_ijmpcall,
1047 &feature_break,
1048 &feature_movw,1042 &feature_movw,
1043 &feature_break,
1044 &feature_ijmpcall,
1045 &feature_lpmx,
1046 &feature_jmpcall,
1047 &feature_spm,
1048 &feature_mul,
1049 },1049 },
1050};1050};
10511051
...@@ -1053,16 +1053,16 @@ pub const cpu_atmega164p = Cpu{...@@ -1053,16 +1053,16 @@ pub const cpu_atmega164p = Cpu{
1053 .name = "atmega164p",1053 .name = "atmega164p",
1054 .llvm_name = "atmega164p",1054 .llvm_name = "atmega164p",
1055 .dependencies = &[_]*const Feature {1055 .dependencies = &[_]*const Feature {
1056 &feature_sram,
1057 &feature_jmpcall,
1058 &feature_mul,
1059 &feature_lpm,1056 &feature_lpm,
1060 &feature_lpmx,1057 &feature_sram,
1061 &feature_spm,
1062 &feature_addsubiw,1058 &feature_addsubiw,
1063 &feature_ijmpcall,
1064 &feature_break,
1065 &feature_movw,1059 &feature_movw,
1060 &feature_break,
1061 &feature_ijmpcall,
1062 &feature_lpmx,
1063 &feature_jmpcall,
1064 &feature_spm,
1065 &feature_mul,
1066 },1066 },
1067};1067};
10681068
...@@ -1070,16 +1070,16 @@ pub const cpu_atmega164pa = Cpu{...@@ -1070,16 +1070,16 @@ pub const cpu_atmega164pa = Cpu{
1070 .name = "atmega164pa",1070 .name = "atmega164pa",
1071 .llvm_name = "atmega164pa",1071 .llvm_name = "atmega164pa",
1072 .dependencies = &[_]*const Feature {1072 .dependencies = &[_]*const Feature {
1073 &feature_sram,
1074 &feature_jmpcall,
1075 &feature_mul,
1076 &feature_lpm,1073 &feature_lpm,
1077 &feature_lpmx,1074 &feature_sram,
1078 &feature_spm,
1079 &feature_addsubiw,1075 &feature_addsubiw,
1080 &feature_ijmpcall,
1081 &feature_break,
1082 &feature_movw,1076 &feature_movw,
1077 &feature_break,
1078 &feature_ijmpcall,
1079 &feature_lpmx,
1080 &feature_jmpcall,
1081 &feature_spm,
1082 &feature_mul,
1083 },1083 },
1084};1084};
10851085
...@@ -1087,16 +1087,16 @@ pub const cpu_atmega165 = Cpu{...@@ -1087,16 +1087,16 @@ pub const cpu_atmega165 = Cpu{
1087 .name = "atmega165",1087 .name = "atmega165",
1088 .llvm_name = "atmega165",1088 .llvm_name = "atmega165",
1089 .dependencies = &[_]*const Feature {1089 .dependencies = &[_]*const Feature {
1090 &feature_sram,
1091 &feature_jmpcall,
1092 &feature_mul,
1093 &feature_lpm,1090 &feature_lpm,
1094 &feature_lpmx,1091 &feature_sram,
1095 &feature_spm,
1096 &feature_addsubiw,1092 &feature_addsubiw,
1097 &feature_ijmpcall,
1098 &feature_break,
1099 &feature_movw,1093 &feature_movw,
1094 &feature_break,
1095 &feature_ijmpcall,
1096 &feature_lpmx,
1097 &feature_jmpcall,
1098 &feature_spm,
1099 &feature_mul,
1100 },1100 },
1101};1101};
11021102
...@@ -1104,16 +1104,16 @@ pub const cpu_atmega165a = Cpu{...@@ -1104,16 +1104,16 @@ pub const cpu_atmega165a = Cpu{
1104 .name = "atmega165a",1104 .name = "atmega165a",
1105 .llvm_name = "atmega165a",1105 .llvm_name = "atmega165a",
1106 .dependencies = &[_]*const Feature {1106 .dependencies = &[_]*const Feature {
1107 &feature_sram,
1108 &feature_jmpcall,
1109 &feature_mul,
1110 &feature_lpm,1107 &feature_lpm,
1111 &feature_lpmx,1108 &feature_sram,
1112 &feature_spm,
1113 &feature_addsubiw,1109 &feature_addsubiw,
1114 &feature_ijmpcall,
1115 &feature_break,
1116 &feature_movw,1110 &feature_movw,
1111 &feature_break,
1112 &feature_ijmpcall,
1113 &feature_lpmx,
1114 &feature_jmpcall,
1115 &feature_spm,
1116 &feature_mul,
1117 },1117 },
1118};1118};
11191119
...@@ -1121,16 +1121,16 @@ pub const cpu_atmega165p = Cpu{...@@ -1121,16 +1121,16 @@ pub const cpu_atmega165p = Cpu{
1121 .name = "atmega165p",1121 .name = "atmega165p",
1122 .llvm_name = "atmega165p",1122 .llvm_name = "atmega165p",
1123 .dependencies = &[_]*const Feature {1123 .dependencies = &[_]*const Feature {
1124 &feature_sram,
1125 &feature_jmpcall,
1126 &feature_mul,
1127 &feature_lpm,1124 &feature_lpm,
1128 &feature_lpmx,1125 &feature_sram,
1129 &feature_spm,
1130 &feature_addsubiw,1126 &feature_addsubiw,
1131 &feature_ijmpcall,
1132 &feature_break,
1133 &feature_movw,1127 &feature_movw,
1128 &feature_break,
1129 &feature_ijmpcall,
1130 &feature_lpmx,
1131 &feature_jmpcall,
1132 &feature_spm,
1133 &feature_mul,
1134 },1134 },
1135};1135};
11361136
...@@ -1138,16 +1138,16 @@ pub const cpu_atmega165pa = Cpu{...@@ -1138,16 +1138,16 @@ pub const cpu_atmega165pa = Cpu{
1138 .name = "atmega165pa",1138 .name = "atmega165pa",
1139 .llvm_name = "atmega165pa",1139 .llvm_name = "atmega165pa",
1140 .dependencies = &[_]*const Feature {1140 .dependencies = &[_]*const Feature {
1141 &feature_sram,
1142 &feature_jmpcall,
1143 &feature_mul,
1144 &feature_lpm,1141 &feature_lpm,
1145 &feature_lpmx,1142 &feature_sram,
1146 &feature_spm,
1147 &feature_addsubiw,1143 &feature_addsubiw,
1148 &feature_ijmpcall,
1149 &feature_break,
1150 &feature_movw,1144 &feature_movw,
1145 &feature_break,
1146 &feature_ijmpcall,
1147 &feature_lpmx,
1148 &feature_jmpcall,
1149 &feature_spm,
1150 &feature_mul,
1151 },1151 },
1152};1152};
11531153
...@@ -1155,16 +1155,16 @@ pub const cpu_atmega168 = Cpu{...@@ -1155,16 +1155,16 @@ pub const cpu_atmega168 = Cpu{
1155 .name = "atmega168",1155 .name = "atmega168",
1156 .llvm_name = "atmega168",1156 .llvm_name = "atmega168",
1157 .dependencies = &[_]*const Feature {1157 .dependencies = &[_]*const Feature {
1158 &feature_sram,
1159 &feature_jmpcall,
1160 &feature_mul,
1161 &feature_lpm,1158 &feature_lpm,
1162 &feature_lpmx,1159 &feature_sram,
1163 &feature_spm,
1164 &feature_addsubiw,1160 &feature_addsubiw,
1165 &feature_ijmpcall,
1166 &feature_break,
1167 &feature_movw,1161 &feature_movw,
1162 &feature_break,
1163 &feature_ijmpcall,
1164 &feature_lpmx,
1165 &feature_jmpcall,
1166 &feature_spm,
1167 &feature_mul,
1168 },1168 },
1169};1169};
11701170
...@@ -1172,16 +1172,16 @@ pub const cpu_atmega168a = Cpu{...@@ -1172,16 +1172,16 @@ pub const cpu_atmega168a = Cpu{
1172 .name = "atmega168a",1172 .name = "atmega168a",
1173 .llvm_name = "atmega168a",1173 .llvm_name = "atmega168a",
1174 .dependencies = &[_]*const Feature {1174 .dependencies = &[_]*const Feature {
1175 &feature_sram,
1176 &feature_jmpcall,
1177 &feature_mul,
1178 &feature_lpm,1175 &feature_lpm,
1179 &feature_lpmx,1176 &feature_sram,
1180 &feature_spm,
1181 &feature_addsubiw,1177 &feature_addsubiw,
1182 &feature_ijmpcall,
1183 &feature_break,
1184 &feature_movw,1178 &feature_movw,
1179 &feature_break,
1180 &feature_ijmpcall,
1181 &feature_lpmx,
1182 &feature_jmpcall,
1183 &feature_spm,
1184 &feature_mul,
1185 },1185 },
1186};1186};
11871187
...@@ -1189,16 +1189,16 @@ pub const cpu_atmega168p = Cpu{...@@ -1189,16 +1189,16 @@ pub const cpu_atmega168p = Cpu{
1189 .name = "atmega168p",1189 .name = "atmega168p",
1190 .llvm_name = "atmega168p",1190 .llvm_name = "atmega168p",
1191 .dependencies = &[_]*const Feature {1191 .dependencies = &[_]*const Feature {
1192 &feature_sram,
1193 &feature_jmpcall,
1194 &feature_mul,
1195 &feature_lpm,1192 &feature_lpm,
1196 &feature_lpmx,1193 &feature_sram,
1197 &feature_spm,
1198 &feature_addsubiw,1194 &feature_addsubiw,
1199 &feature_ijmpcall,
1200 &feature_break,
1201 &feature_movw,1195 &feature_movw,
1196 &feature_break,
1197 &feature_ijmpcall,
1198 &feature_lpmx,
1199 &feature_jmpcall,
1200 &feature_spm,
1201 &feature_mul,
1202 },1202 },
1203};1203};
12041204
...@@ -1206,16 +1206,16 @@ pub const cpu_atmega168pa = Cpu{...@@ -1206,16 +1206,16 @@ pub const cpu_atmega168pa = Cpu{
1206 .name = "atmega168pa",1206 .name = "atmega168pa",
1207 .llvm_name = "atmega168pa",1207 .llvm_name = "atmega168pa",
1208 .dependencies = &[_]*const Feature {1208 .dependencies = &[_]*const Feature {
1209 &feature_sram,
1210 &feature_jmpcall,
1211 &feature_mul,
1212 &feature_lpm,1209 &feature_lpm,
1213 &feature_lpmx,1210 &feature_sram,
1214 &feature_spm,
1215 &feature_addsubiw,1211 &feature_addsubiw,
1216 &feature_ijmpcall,
1217 &feature_break,
1218 &feature_movw,1212 &feature_movw,
1213 &feature_break,
1214 &feature_ijmpcall,
1215 &feature_lpmx,
1216 &feature_jmpcall,
1217 &feature_spm,
1218 &feature_mul,
1219 },1219 },
1220};1220};
12211221
...@@ -1223,16 +1223,16 @@ pub const cpu_atmega169 = Cpu{...@@ -1223,16 +1223,16 @@ pub const cpu_atmega169 = Cpu{
1223 .name = "atmega169",1223 .name = "atmega169",
1224 .llvm_name = "atmega169",1224 .llvm_name = "atmega169",
1225 .dependencies = &[_]*const Feature {1225 .dependencies = &[_]*const Feature {
1226 &feature_sram,
1227 &feature_jmpcall,
1228 &feature_mul,
1229 &feature_lpm,1226 &feature_lpm,
1230 &feature_lpmx,1227 &feature_sram,
1231 &feature_spm,
1232 &feature_addsubiw,1228 &feature_addsubiw,
1233 &feature_ijmpcall,
1234 &feature_break,
1235 &feature_movw,1229 &feature_movw,
1230 &feature_break,
1231 &feature_ijmpcall,
1232 &feature_lpmx,
1233 &feature_jmpcall,
1234 &feature_spm,
1235 &feature_mul,
1236 },1236 },
1237};1237};
12381238
...@@ -1240,16 +1240,16 @@ pub const cpu_atmega169a = Cpu{...@@ -1240,16 +1240,16 @@ pub const cpu_atmega169a = Cpu{
1240 .name = "atmega169a",1240 .name = "atmega169a",
1241 .llvm_name = "atmega169a",1241 .llvm_name = "atmega169a",
1242 .dependencies = &[_]*const Feature {1242 .dependencies = &[_]*const Feature {
1243 &feature_sram,
1244 &feature_jmpcall,
1245 &feature_mul,
1246 &feature_lpm,1243 &feature_lpm,
1247 &feature_lpmx,1244 &feature_sram,
1248 &feature_spm,
1249 &feature_addsubiw,1245 &feature_addsubiw,
1250 &feature_ijmpcall,
1251 &feature_break,
1252 &feature_movw,1246 &feature_movw,
1247 &feature_break,
1248 &feature_ijmpcall,
1249 &feature_lpmx,
1250 &feature_jmpcall,
1251 &feature_spm,
1252 &feature_mul,
1253 },1253 },
1254};1254};
12551255
...@@ -1257,16 +1257,16 @@ pub const cpu_atmega169p = Cpu{...@@ -1257,16 +1257,16 @@ pub const cpu_atmega169p = Cpu{
1257 .name = "atmega169p",1257 .name = "atmega169p",
1258 .llvm_name = "atmega169p",1258 .llvm_name = "atmega169p",
1259 .dependencies = &[_]*const Feature {1259 .dependencies = &[_]*const Feature {
1260 &feature_sram,
1261 &feature_jmpcall,
1262 &feature_mul,
1263 &feature_lpm,1260 &feature_lpm,
1264 &feature_lpmx,1261 &feature_sram,
1265 &feature_spm,
1266 &feature_addsubiw,1262 &feature_addsubiw,
1267 &feature_ijmpcall,
1268 &feature_break,
1269 &feature_movw,1263 &feature_movw,
1264 &feature_break,
1265 &feature_ijmpcall,
1266 &feature_lpmx,
1267 &feature_jmpcall,
1268 &feature_spm,
1269 &feature_mul,
1270 },1270 },
1271};1271};
12721272
...@@ -1274,16 +1274,16 @@ pub const cpu_atmega169pa = Cpu{...@@ -1274,16 +1274,16 @@ pub const cpu_atmega169pa = Cpu{
1274 .name = "atmega169pa",1274 .name = "atmega169pa",
1275 .llvm_name = "atmega169pa",1275 .llvm_name = "atmega169pa",
1276 .dependencies = &[_]*const Feature {1276 .dependencies = &[_]*const Feature {
1277 &feature_sram,
1278 &feature_jmpcall,
1279 &feature_mul,
1280 &feature_lpm,1277 &feature_lpm,
1281 &feature_lpmx,1278 &feature_sram,
1282 &feature_spm,
1283 &feature_addsubiw,1279 &feature_addsubiw,
1284 &feature_ijmpcall,
1285 &feature_break,
1286 &feature_movw,1280 &feature_movw,
1281 &feature_break,
1282 &feature_ijmpcall,
1283 &feature_lpmx,
1284 &feature_jmpcall,
1285 &feature_spm,
1286 &feature_mul,
1287 },1287 },
1288};1288};
12891289
...@@ -1291,33 +1291,33 @@ pub const cpu_atmega16a = Cpu{...@@ -1291,33 +1291,33 @@ pub const cpu_atmega16a = Cpu{
1291 .name = "atmega16a",1291 .name = "atmega16a",
1292 .llvm_name = "atmega16a",1292 .llvm_name = "atmega16a",
1293 .dependencies = &[_]*const Feature {1293 .dependencies = &[_]*const Feature {
1294 &feature_sram,
1295 &feature_jmpcall,
1296 &feature_mul,
1297 &feature_lpm,1294 &feature_lpm,
1298 &feature_lpmx,1295 &feature_sram,
1299 &feature_spm,
1300 &feature_addsubiw,1296 &feature_addsubiw,
1301 &feature_ijmpcall,
1302 &feature_break,
1303 &feature_movw,1297 &feature_movw,
1304 },1298 &feature_break,
1305};1299 &feature_ijmpcall,
1300 &feature_lpmx,
1301 &feature_jmpcall,
1302 &feature_spm,
1303 &feature_mul,
1304 },
1305};
13061306
1307pub const cpu_atmega16hva = Cpu{1307pub const cpu_atmega16hva = Cpu{
1308 .name = "atmega16hva",1308 .name = "atmega16hva",
1309 .llvm_name = "atmega16hva",1309 .llvm_name = "atmega16hva",
1310 .dependencies = &[_]*const Feature {1310 .dependencies = &[_]*const Feature {
1311 &feature_sram,
1312 &feature_jmpcall,
1313 &feature_mul,
1314 &feature_lpm,1311 &feature_lpm,
1315 &feature_lpmx,1312 &feature_sram,
1316 &feature_spm,
1317 &feature_addsubiw,1313 &feature_addsubiw,
1318 &feature_ijmpcall,
1319 &feature_break,
1320 &feature_movw,1314 &feature_movw,
1315 &feature_break,
1316 &feature_ijmpcall,
1317 &feature_lpmx,
1318 &feature_jmpcall,
1319 &feature_spm,
1320 &feature_mul,
1321 },1321 },
1322};1322};
13231323
...@@ -1325,16 +1325,16 @@ pub const cpu_atmega16hva2 = Cpu{...@@ -1325,16 +1325,16 @@ pub const cpu_atmega16hva2 = Cpu{
1325 .name = "atmega16hva2",1325 .name = "atmega16hva2",
1326 .llvm_name = "atmega16hva2",1326 .llvm_name = "atmega16hva2",
1327 .dependencies = &[_]*const Feature {1327 .dependencies = &[_]*const Feature {
1328 &feature_sram,
1329 &feature_jmpcall,
1330 &feature_mul,
1331 &feature_lpm,1328 &feature_lpm,
1332 &feature_lpmx,1329 &feature_sram,
1333 &feature_spm,
1334 &feature_addsubiw,1330 &feature_addsubiw,
1335 &feature_ijmpcall,
1336 &feature_break,
1337 &feature_movw,1331 &feature_movw,
1332 &feature_break,
1333 &feature_ijmpcall,
1334 &feature_lpmx,
1335 &feature_jmpcall,
1336 &feature_spm,
1337 &feature_mul,
1338 },1338 },
1339};1339};
13401340
...@@ -1342,16 +1342,16 @@ pub const cpu_atmega16hvb = Cpu{...@@ -1342,16 +1342,16 @@ pub const cpu_atmega16hvb = Cpu{
1342 .name = "atmega16hvb",1342 .name = "atmega16hvb",
1343 .llvm_name = "atmega16hvb",1343 .llvm_name = "atmega16hvb",
1344 .dependencies = &[_]*const Feature {1344 .dependencies = &[_]*const Feature {
1345 &feature_sram,
1346 &feature_jmpcall,
1347 &feature_mul,
1348 &feature_lpm,1345 &feature_lpm,
1349 &feature_lpmx,1346 &feature_sram,
1350 &feature_spm,
1351 &feature_addsubiw,1347 &feature_addsubiw,
1352 &feature_ijmpcall,
1353 &feature_break,
1354 &feature_movw,1348 &feature_movw,
1349 &feature_break,
1350 &feature_ijmpcall,
1351 &feature_lpmx,
1352 &feature_jmpcall,
1353 &feature_spm,
1354 &feature_mul,
1355 },1355 },
1356};1356};
13571357
...@@ -1359,16 +1359,16 @@ pub const cpu_atmega16hvbrevb = Cpu{...@@ -1359,16 +1359,16 @@ pub const cpu_atmega16hvbrevb = Cpu{
1359 .name = "atmega16hvbrevb",1359 .name = "atmega16hvbrevb",
1360 .llvm_name = "atmega16hvbrevb",1360 .llvm_name = "atmega16hvbrevb",
1361 .dependencies = &[_]*const Feature {1361 .dependencies = &[_]*const Feature {
1362 &feature_sram,
1363 &feature_jmpcall,
1364 &feature_mul,
1365 &feature_lpm,1362 &feature_lpm,
1366 &feature_lpmx,1363 &feature_sram,
1367 &feature_spm,
1368 &feature_addsubiw,1364 &feature_addsubiw,
1369 &feature_ijmpcall,
1370 &feature_break,
1371 &feature_movw,1365 &feature_movw,
1366 &feature_break,
1367 &feature_ijmpcall,
1368 &feature_lpmx,
1369 &feature_jmpcall,
1370 &feature_spm,
1371 &feature_mul,
1372 },1372 },
1373};1373};
13741374
...@@ -1376,16 +1376,16 @@ pub const cpu_atmega16m1 = Cpu{...@@ -1376,16 +1376,16 @@ pub const cpu_atmega16m1 = Cpu{
1376 .name = "atmega16m1",1376 .name = "atmega16m1",
1377 .llvm_name = "atmega16m1",1377 .llvm_name = "atmega16m1",
1378 .dependencies = &[_]*const Feature {1378 .dependencies = &[_]*const Feature {
1379 &feature_sram,
1380 &feature_jmpcall,
1381 &feature_mul,
1382 &feature_lpm,1379 &feature_lpm,
1383 &feature_lpmx,1380 &feature_sram,
1384 &feature_spm,
1385 &feature_addsubiw,1381 &feature_addsubiw,
1386 &feature_ijmpcall,
1387 &feature_break,
1388 &feature_movw,1382 &feature_movw,
1383 &feature_break,
1384 &feature_ijmpcall,
1385 &feature_lpmx,
1386 &feature_jmpcall,
1387 &feature_spm,
1388 &feature_mul,
1389 },1389 },
1390};1390};
13911391
...@@ -1393,15 +1393,15 @@ pub const cpu_atmega16u2 = Cpu{...@@ -1393,15 +1393,15 @@ pub const cpu_atmega16u2 = Cpu{
1393 .name = "atmega16u2",1393 .name = "atmega16u2",
1394 .llvm_name = "atmega16u2",1394 .llvm_name = "atmega16u2",
1395 .dependencies = &[_]*const Feature {1395 .dependencies = &[_]*const Feature {
1396 &feature_sram,
1397 &feature_jmpcall,
1398 &feature_lpm,1396 &feature_lpm,
1399 &feature_lpmx,1397 &feature_sram,
1400 &feature_spm,
1401 &feature_addsubiw,1398 &feature_addsubiw,
1402 &feature_ijmpcall,
1403 &feature_break,
1404 &feature_movw,1399 &feature_movw,
1400 &feature_break,
1401 &feature_ijmpcall,
1402 &feature_lpmx,
1403 &feature_jmpcall,
1404 &feature_spm,
1405 },1405 },
1406};1406};
14071407
...@@ -1409,16 +1409,16 @@ pub const cpu_atmega16u4 = Cpu{...@@ -1409,16 +1409,16 @@ pub const cpu_atmega16u4 = Cpu{
1409 .name = "atmega16u4",1409 .name = "atmega16u4",
1410 .llvm_name = "atmega16u4",1410 .llvm_name = "atmega16u4",
1411 .dependencies = &[_]*const Feature {1411 .dependencies = &[_]*const Feature {
1412 &feature_sram,
1413 &feature_jmpcall,
1414 &feature_mul,
1415 &feature_lpm,1412 &feature_lpm,
1416 &feature_lpmx,1413 &feature_sram,
1417 &feature_spm,
1418 &feature_addsubiw,1414 &feature_addsubiw,
1419 &feature_ijmpcall,
1420 &feature_break,
1421 &feature_movw,1415 &feature_movw,
1416 &feature_break,
1417 &feature_ijmpcall,
1418 &feature_lpmx,
1419 &feature_jmpcall,
1420 &feature_spm,
1421 &feature_mul,
1422 },1422 },
1423};1423};
14241424
...@@ -1426,18 +1426,18 @@ pub const cpu_atmega2560 = Cpu{...@@ -1426,18 +1426,18 @@ pub const cpu_atmega2560 = Cpu{
1426 .name = "atmega2560",1426 .name = "atmega2560",
1427 .llvm_name = "atmega2560",1427 .llvm_name = "atmega2560",
1428 .dependencies = &[_]*const Feature {1428 .dependencies = &[_]*const Feature {
1429 &feature_lpm,
1429 &feature_sram,1430 &feature_sram,
1430 &feature_jmpcall,1431 &feature_addsubiw,
1431 &feature_mul,1432 &feature_movw,
1432 &feature_elpm,1433 &feature_elpm,
1433 &feature_lpm,1434 &feature_break,
1435 &feature_ijmpcall,
1434 &feature_lpmx,1436 &feature_lpmx,
1437 &feature_jmpcall,
1435 &feature_spm,1438 &feature_spm,
1436 &feature_addsubiw,
1437 &feature_ijmpcall,
1438 &feature_elpmx,1439 &feature_elpmx,
1439 &feature_break,1440 &feature_mul,
1440 &feature_movw,
1441 },1441 },
1442};1442};
14431443
...@@ -1445,18 +1445,18 @@ pub const cpu_atmega2561 = Cpu{...@@ -1445,18 +1445,18 @@ pub const cpu_atmega2561 = Cpu{
1445 .name = "atmega2561",1445 .name = "atmega2561",
1446 .llvm_name = "atmega2561",1446 .llvm_name = "atmega2561",
1447 .dependencies = &[_]*const Feature {1447 .dependencies = &[_]*const Feature {
1448 &feature_lpm,
1448 &feature_sram,1449 &feature_sram,
1449 &feature_jmpcall,1450 &feature_addsubiw,
1450 &feature_mul,1451 &feature_movw,
1451 &feature_elpm,1452 &feature_elpm,
1452 &feature_lpm,1453 &feature_break,
1454 &feature_ijmpcall,
1453 &feature_lpmx,1455 &feature_lpmx,
1456 &feature_jmpcall,
1454 &feature_spm,1457 &feature_spm,
1455 &feature_addsubiw,
1456 &feature_ijmpcall,
1457 &feature_elpmx,1458 &feature_elpmx,
1458 &feature_break,1459 &feature_mul,
1459 &feature_movw,
1460 },1460 },
1461};1461};
14621462
...@@ -1464,18 +1464,18 @@ pub const cpu_atmega2564rfr2 = Cpu{...@@ -1464,18 +1464,18 @@ pub const cpu_atmega2564rfr2 = Cpu{
1464 .name = "atmega2564rfr2",1464 .name = "atmega2564rfr2",
1465 .llvm_name = "atmega2564rfr2",1465 .llvm_name = "atmega2564rfr2",
1466 .dependencies = &[_]*const Feature {1466 .dependencies = &[_]*const Feature {
1467 &feature_lpm,
1467 &feature_sram,1468 &feature_sram,
1468 &feature_jmpcall,1469 &feature_addsubiw,
1469 &feature_mul,1470 &feature_movw,
1470 &feature_elpm,1471 &feature_elpm,
1471 &feature_lpm,1472 &feature_break,
1473 &feature_ijmpcall,
1472 &feature_lpmx,1474 &feature_lpmx,
1475 &feature_jmpcall,
1473 &feature_spm,1476 &feature_spm,
1474 &feature_addsubiw,
1475 &feature_ijmpcall,
1476 &feature_elpmx,1477 &feature_elpmx,
1477 &feature_break,1478 &feature_mul,
1478 &feature_movw,
1479 },1479 },
1480};1480};
14811481
...@@ -1483,18 +1483,18 @@ pub const cpu_atmega256rfr2 = Cpu{...@@ -1483,18 +1483,18 @@ pub const cpu_atmega256rfr2 = Cpu{
1483 .name = "atmega256rfr2",1483 .name = "atmega256rfr2",
1484 .llvm_name = "atmega256rfr2",1484 .llvm_name = "atmega256rfr2",
1485 .dependencies = &[_]*const Feature {1485 .dependencies = &[_]*const Feature {
1486 &feature_lpm,
1486 &feature_sram,1487 &feature_sram,
1487 &feature_jmpcall,1488 &feature_addsubiw,
1488 &feature_mul,1489 &feature_movw,
1489 &feature_elpm,1490 &feature_elpm,
1490 &feature_lpm,1491 &feature_break,
1492 &feature_ijmpcall,
1491 &feature_lpmx,1493 &feature_lpmx,
1494 &feature_jmpcall,
1492 &feature_spm,1495 &feature_spm,
1493 &feature_addsubiw,
1494 &feature_ijmpcall,
1495 &feature_elpmx,1496 &feature_elpmx,
1496 &feature_break,1497 &feature_mul,
1497 &feature_movw,
1498 },1498 },
1499};1499};
15001500
...@@ -1502,16 +1502,16 @@ pub const cpu_atmega32 = Cpu{...@@ -1502,16 +1502,16 @@ pub const cpu_atmega32 = Cpu{
1502 .name = "atmega32",1502 .name = "atmega32",
1503 .llvm_name = "atmega32",1503 .llvm_name = "atmega32",
1504 .dependencies = &[_]*const Feature {1504 .dependencies = &[_]*const Feature {
1505 &feature_sram,
1506 &feature_jmpcall,
1507 &feature_mul,
1508 &feature_lpm,1505 &feature_lpm,
1509 &feature_lpmx,1506 &feature_sram,
1510 &feature_spm,
1511 &feature_addsubiw,1507 &feature_addsubiw,
1512 &feature_ijmpcall,
1513 &feature_break,
1514 &feature_movw,1508 &feature_movw,
1509 &feature_break,
1510 &feature_ijmpcall,
1511 &feature_lpmx,
1512 &feature_jmpcall,
1513 &feature_spm,
1514 &feature_mul,
1515 },1515 },
1516};1516};
15171517
...@@ -1519,16 +1519,16 @@ pub const cpu_atmega323 = Cpu{...@@ -1519,16 +1519,16 @@ pub const cpu_atmega323 = Cpu{
1519 .name = "atmega323",1519 .name = "atmega323",
1520 .llvm_name = "atmega323",1520 .llvm_name = "atmega323",
1521 .dependencies = &[_]*const Feature {1521 .dependencies = &[_]*const Feature {
1522 &feature_sram,
1523 &feature_jmpcall,
1524 &feature_mul,
1525 &feature_lpm,1522 &feature_lpm,
1526 &feature_lpmx,1523 &feature_sram,
1527 &feature_spm,
1528 &feature_addsubiw,1524 &feature_addsubiw,
1529 &feature_ijmpcall,
1530 &feature_break,
1531 &feature_movw,1525 &feature_movw,
1526 &feature_break,
1527 &feature_ijmpcall,
1528 &feature_lpmx,
1529 &feature_jmpcall,
1530 &feature_spm,
1531 &feature_mul,
1532 },1532 },
1533};1533};
15341534
...@@ -1536,16 +1536,16 @@ pub const cpu_atmega324a = Cpu{...@@ -1536,16 +1536,16 @@ pub const cpu_atmega324a = Cpu{
1536 .name = "atmega324a",1536 .name = "atmega324a",
1537 .llvm_name = "atmega324a",1537 .llvm_name = "atmega324a",
1538 .dependencies = &[_]*const Feature {1538 .dependencies = &[_]*const Feature {
1539 &feature_sram,
1540 &feature_jmpcall,
1541 &feature_mul,
1542 &feature_lpm,1539 &feature_lpm,
1543 &feature_lpmx,1540 &feature_sram,
1544 &feature_spm,
1545 &feature_addsubiw,1541 &feature_addsubiw,
1546 &feature_ijmpcall,
1547 &feature_break,
1548 &feature_movw,1542 &feature_movw,
1543 &feature_break,
1544 &feature_ijmpcall,
1545 &feature_lpmx,
1546 &feature_jmpcall,
1547 &feature_spm,
1548 &feature_mul,
1549 },1549 },
1550};1550};
15511551
...@@ -1553,16 +1553,16 @@ pub const cpu_atmega324p = Cpu{...@@ -1553,16 +1553,16 @@ pub const cpu_atmega324p = Cpu{
1553 .name = "atmega324p",1553 .name = "atmega324p",
1554 .llvm_name = "atmega324p",1554 .llvm_name = "atmega324p",
1555 .dependencies = &[_]*const Feature {1555 .dependencies = &[_]*const Feature {
1556 &feature_sram,
1557 &feature_jmpcall,
1558 &feature_mul,
1559 &feature_lpm,1556 &feature_lpm,
1560 &feature_lpmx,1557 &feature_sram,
1561 &feature_spm,
1562 &feature_addsubiw,1558 &feature_addsubiw,
1563 &feature_ijmpcall,
1564 &feature_break,
1565 &feature_movw,1559 &feature_movw,
1560 &feature_break,
1561 &feature_ijmpcall,
1562 &feature_lpmx,
1563 &feature_jmpcall,
1564 &feature_spm,
1565 &feature_mul,
1566 },1566 },
1567};1567};
15681568
...@@ -1570,16 +1570,16 @@ pub const cpu_atmega324pa = Cpu{...@@ -1570,16 +1570,16 @@ pub const cpu_atmega324pa = Cpu{
1570 .name = "atmega324pa",1570 .name = "atmega324pa",
1571 .llvm_name = "atmega324pa",1571 .llvm_name = "atmega324pa",
1572 .dependencies = &[_]*const Feature {1572 .dependencies = &[_]*const Feature {
1573 &feature_sram,
1574 &feature_jmpcall,
1575 &feature_mul,
1576 &feature_lpm,1573 &feature_lpm,
1577 &feature_lpmx,1574 &feature_sram,
1578 &feature_spm,
1579 &feature_addsubiw,1575 &feature_addsubiw,
1580 &feature_ijmpcall,
1581 &feature_break,
1582 &feature_movw,1576 &feature_movw,
1577 &feature_break,
1578 &feature_ijmpcall,
1579 &feature_lpmx,
1580 &feature_jmpcall,
1581 &feature_spm,
1582 &feature_mul,
1583 },1583 },
1584};1584};
15851585
...@@ -1587,16 +1587,16 @@ pub const cpu_atmega325 = Cpu{...@@ -1587,16 +1587,16 @@ pub const cpu_atmega325 = Cpu{
1587 .name = "atmega325",1587 .name = "atmega325",
1588 .llvm_name = "atmega325",1588 .llvm_name = "atmega325",
1589 .dependencies = &[_]*const Feature {1589 .dependencies = &[_]*const Feature {
1590 &feature_sram,
1591 &feature_jmpcall,
1592 &feature_mul,
1593 &feature_lpm,1590 &feature_lpm,
1594 &feature_lpmx,1591 &feature_sram,
1595 &feature_spm,
1596 &feature_addsubiw,1592 &feature_addsubiw,
1597 &feature_ijmpcall,
1598 &feature_break,
1599 &feature_movw,1593 &feature_movw,
1594 &feature_break,
1595 &feature_ijmpcall,
1596 &feature_lpmx,
1597 &feature_jmpcall,
1598 &feature_spm,
1599 &feature_mul,
1600 },1600 },
1601};1601};
16021602
...@@ -1604,33 +1604,33 @@ pub const cpu_atmega3250 = Cpu{...@@ -1604,33 +1604,33 @@ pub const cpu_atmega3250 = Cpu{
1604 .name = "atmega3250",1604 .name = "atmega3250",
1605 .llvm_name = "atmega3250",1605 .llvm_name = "atmega3250",
1606 .dependencies = &[_]*const Feature {1606 .dependencies = &[_]*const Feature {
1607 &feature_sram,
1608 &feature_jmpcall,
1609 &feature_mul,
1610 &feature_lpm,1607 &feature_lpm,
1611 &feature_lpmx,1608 &feature_sram,
1612 &feature_spm,
1613 &feature_addsubiw,1609 &feature_addsubiw,
1614 &feature_ijmpcall,
1615 &feature_break,
1616 &feature_movw,1610 &feature_movw,
1617 },1611 &feature_break,
1618};1612 &feature_ijmpcall,
16191613 &feature_lpmx,
1620pub const cpu_atmega3250a = Cpu{1614 &feature_jmpcall,
1615 &feature_spm,
1616 &feature_mul,
1617 },
1618};
1619
1620pub const cpu_atmega3250a = Cpu{
1621 .name = "atmega3250a",1621 .name = "atmega3250a",
1622 .llvm_name = "atmega3250a",1622 .llvm_name = "atmega3250a",
1623 .dependencies = &[_]*const Feature {1623 .dependencies = &[_]*const Feature {
1624 &feature_sram,
1625 &feature_jmpcall,
1626 &feature_mul,
1627 &feature_lpm,1624 &feature_lpm,
1628 &feature_lpmx,1625 &feature_sram,
1629 &feature_spm,
1630 &feature_addsubiw,1626 &feature_addsubiw,
1631 &feature_ijmpcall,
1632 &feature_break,
1633 &feature_movw,1627 &feature_movw,
1628 &feature_break,
1629 &feature_ijmpcall,
1630 &feature_lpmx,
1631 &feature_jmpcall,
1632 &feature_spm,
1633 &feature_mul,
1634 },1634 },
1635};1635};
16361636
...@@ -1638,16 +1638,16 @@ pub const cpu_atmega3250p = Cpu{...@@ -1638,16 +1638,16 @@ pub const cpu_atmega3250p = Cpu{
1638 .name = "atmega3250p",1638 .name = "atmega3250p",
1639 .llvm_name = "atmega3250p",1639 .llvm_name = "atmega3250p",
1640 .dependencies = &[_]*const Feature {1640 .dependencies = &[_]*const Feature {
1641 &feature_sram,
1642 &feature_jmpcall,
1643 &feature_mul,
1644 &feature_lpm,1641 &feature_lpm,
1645 &feature_lpmx,1642 &feature_sram,
1646 &feature_spm,
1647 &feature_addsubiw,1643 &feature_addsubiw,
1648 &feature_ijmpcall,
1649 &feature_break,
1650 &feature_movw,1644 &feature_movw,
1645 &feature_break,
1646 &feature_ijmpcall,
1647 &feature_lpmx,
1648 &feature_jmpcall,
1649 &feature_spm,
1650 &feature_mul,
1651 },1651 },
1652};1652};
16531653
...@@ -1655,16 +1655,16 @@ pub const cpu_atmega3250pa = Cpu{...@@ -1655,16 +1655,16 @@ pub const cpu_atmega3250pa = Cpu{
1655 .name = "atmega3250pa",1655 .name = "atmega3250pa",
1656 .llvm_name = "atmega3250pa",1656 .llvm_name = "atmega3250pa",
1657 .dependencies = &[_]*const Feature {1657 .dependencies = &[_]*const Feature {
1658 &feature_sram,
1659 &feature_jmpcall,
1660 &feature_mul,
1661 &feature_lpm,1658 &feature_lpm,
1662 &feature_lpmx,1659 &feature_sram,
1663 &feature_spm,
1664 &feature_addsubiw,1660 &feature_addsubiw,
1665 &feature_ijmpcall,
1666 &feature_break,
1667 &feature_movw,1661 &feature_movw,
1662 &feature_break,
1663 &feature_ijmpcall,
1664 &feature_lpmx,
1665 &feature_jmpcall,
1666 &feature_spm,
1667 &feature_mul,
1668 },1668 },
1669};1669};
16701670
...@@ -1672,16 +1672,16 @@ pub const cpu_atmega325a = Cpu{...@@ -1672,16 +1672,16 @@ pub const cpu_atmega325a = Cpu{
1672 .name = "atmega325a",1672 .name = "atmega325a",
1673 .llvm_name = "atmega325a",1673 .llvm_name = "atmega325a",
1674 .dependencies = &[_]*const Feature {1674 .dependencies = &[_]*const Feature {
1675 &feature_sram,
1676 &feature_jmpcall,
1677 &feature_mul,
1678 &feature_lpm,1675 &feature_lpm,
1679 &feature_lpmx,1676 &feature_sram,
1680 &feature_spm,
1681 &feature_addsubiw,1677 &feature_addsubiw,
1682 &feature_ijmpcall,
1683 &feature_break,
1684 &feature_movw,1678 &feature_movw,
1679 &feature_break,
1680 &feature_ijmpcall,
1681 &feature_lpmx,
1682 &feature_jmpcall,
1683 &feature_spm,
1684 &feature_mul,
1685 },1685 },
1686};1686};
16871687
...@@ -1689,16 +1689,16 @@ pub const cpu_atmega325p = Cpu{...@@ -1689,16 +1689,16 @@ pub const cpu_atmega325p = Cpu{
1689 .name = "atmega325p",1689 .name = "atmega325p",
1690 .llvm_name = "atmega325p",1690 .llvm_name = "atmega325p",
1691 .dependencies = &[_]*const Feature {1691 .dependencies = &[_]*const Feature {
1692 &feature_sram,
1693 &feature_jmpcall,
1694 &feature_mul,
1695 &feature_lpm,1692 &feature_lpm,
1696 &feature_lpmx,1693 &feature_sram,
1697 &feature_spm,
1698 &feature_addsubiw,1694 &feature_addsubiw,
1699 &feature_ijmpcall,
1700 &feature_break,
1701 &feature_movw,1695 &feature_movw,
1696 &feature_break,
1697 &feature_ijmpcall,
1698 &feature_lpmx,
1699 &feature_jmpcall,
1700 &feature_spm,
1701 &feature_mul,
1702 },1702 },
1703};1703};
17041704
...@@ -1706,16 +1706,16 @@ pub const cpu_atmega325pa = Cpu{...@@ -1706,16 +1706,16 @@ pub const cpu_atmega325pa = Cpu{
1706 .name = "atmega325pa",1706 .name = "atmega325pa",
1707 .llvm_name = "atmega325pa",1707 .llvm_name = "atmega325pa",
1708 .dependencies = &[_]*const Feature {1708 .dependencies = &[_]*const Feature {
1709 &feature_sram,
1710 &feature_jmpcall,
1711 &feature_mul,
1712 &feature_lpm,1709 &feature_lpm,
1713 &feature_lpmx,1710 &feature_sram,
1714 &feature_spm,
1715 &feature_addsubiw,1711 &feature_addsubiw,
1716 &feature_ijmpcall,
1717 &feature_break,
1718 &feature_movw,1712 &feature_movw,
1713 &feature_break,
1714 &feature_ijmpcall,
1715 &feature_lpmx,
1716 &feature_jmpcall,
1717 &feature_spm,
1718 &feature_mul,
1719 },1719 },
1720};1720};
17211721
...@@ -1723,16 +1723,16 @@ pub const cpu_atmega328 = Cpu{...@@ -1723,16 +1723,16 @@ pub const cpu_atmega328 = Cpu{
1723 .name = "atmega328",1723 .name = "atmega328",
1724 .llvm_name = "atmega328",1724 .llvm_name = "atmega328",
1725 .dependencies = &[_]*const Feature {1725 .dependencies = &[_]*const Feature {
1726 &feature_sram,
1727 &feature_jmpcall,
1728 &feature_mul,
1729 &feature_lpm,1726 &feature_lpm,
1730 &feature_lpmx,1727 &feature_sram,
1731 &feature_spm,
1732 &feature_addsubiw,1728 &feature_addsubiw,
1733 &feature_ijmpcall,
1734 &feature_break,
1735 &feature_movw,1729 &feature_movw,
1730 &feature_break,
1731 &feature_ijmpcall,
1732 &feature_lpmx,
1733 &feature_jmpcall,
1734 &feature_spm,
1735 &feature_mul,
1736 },1736 },
1737};1737};
17381738
...@@ -1740,16 +1740,16 @@ pub const cpu_atmega328p = Cpu{...@@ -1740,16 +1740,16 @@ pub const cpu_atmega328p = Cpu{
1740 .name = "atmega328p",1740 .name = "atmega328p",
1741 .llvm_name = "atmega328p",1741 .llvm_name = "atmega328p",
1742 .dependencies = &[_]*const Feature {1742 .dependencies = &[_]*const Feature {
1743 &feature_sram,
1744 &feature_jmpcall,
1745 &feature_mul,
1746 &feature_lpm,1743 &feature_lpm,
1747 &feature_lpmx,1744 &feature_sram,
1748 &feature_spm,
1749 &feature_addsubiw,1745 &feature_addsubiw,
1750 &feature_ijmpcall,
1751 &feature_break,
1752 &feature_movw,1746 &feature_movw,
1747 &feature_break,
1748 &feature_ijmpcall,
1749 &feature_lpmx,
1750 &feature_jmpcall,
1751 &feature_spm,
1752 &feature_mul,
1753 },1753 },
1754};1754};
17551755
...@@ -1757,16 +1757,16 @@ pub const cpu_atmega329 = Cpu{...@@ -1757,16 +1757,16 @@ pub const cpu_atmega329 = Cpu{
1757 .name = "atmega329",1757 .name = "atmega329",
1758 .llvm_name = "atmega329",1758 .llvm_name = "atmega329",
1759 .dependencies = &[_]*const Feature {1759 .dependencies = &[_]*const Feature {
1760 &feature_sram,
1761 &feature_jmpcall,
1762 &feature_mul,
1763 &feature_lpm,1760 &feature_lpm,
1764 &feature_lpmx,1761 &feature_sram,
1765 &feature_spm,
1766 &feature_addsubiw,1762 &feature_addsubiw,
1767 &feature_ijmpcall,
1768 &feature_break,
1769 &feature_movw,1763 &feature_movw,
1764 &feature_break,
1765 &feature_ijmpcall,
1766 &feature_lpmx,
1767 &feature_jmpcall,
1768 &feature_spm,
1769 &feature_mul,
1770 },1770 },
1771};1771};
17721772
...@@ -1774,16 +1774,16 @@ pub const cpu_atmega3290 = Cpu{...@@ -1774,16 +1774,16 @@ pub const cpu_atmega3290 = Cpu{
1774 .name = "atmega3290",1774 .name = "atmega3290",
1775 .llvm_name = "atmega3290",1775 .llvm_name = "atmega3290",
1776 .dependencies = &[_]*const Feature {1776 .dependencies = &[_]*const Feature {
1777 &feature_sram,
1778 &feature_jmpcall,
1779 &feature_mul,
1780 &feature_lpm,1777 &feature_lpm,
1781 &feature_lpmx,1778 &feature_sram,
1782 &feature_spm,
1783 &feature_addsubiw,1779 &feature_addsubiw,
1784 &feature_ijmpcall,
1785 &feature_break,
1786 &feature_movw,1780 &feature_movw,
1781 &feature_break,
1782 &feature_ijmpcall,
1783 &feature_lpmx,
1784 &feature_jmpcall,
1785 &feature_spm,
1786 &feature_mul,
1787 },1787 },
1788};1788};
17891789
...@@ -1791,16 +1791,16 @@ pub const cpu_atmega3290a = Cpu{...@@ -1791,16 +1791,16 @@ pub const cpu_atmega3290a = Cpu{
1791 .name = "atmega3290a",1791 .name = "atmega3290a",
1792 .llvm_name = "atmega3290a",1792 .llvm_name = "atmega3290a",
1793 .dependencies = &[_]*const Feature {1793 .dependencies = &[_]*const Feature {
1794 &feature_sram,
1795 &feature_jmpcall,
1796 &feature_mul,
1797 &feature_lpm,1794 &feature_lpm,
1798 &feature_lpmx,1795 &feature_sram,
1799 &feature_spm,
1800 &feature_addsubiw,1796 &feature_addsubiw,
1801 &feature_ijmpcall,
1802 &feature_break,
1803 &feature_movw,1797 &feature_movw,
1798 &feature_break,
1799 &feature_ijmpcall,
1800 &feature_lpmx,
1801 &feature_jmpcall,
1802 &feature_spm,
1803 &feature_mul,
1804 },1804 },
1805};1805};
18061806
...@@ -1808,16 +1808,16 @@ pub const cpu_atmega3290p = Cpu{...@@ -1808,16 +1808,16 @@ pub const cpu_atmega3290p = Cpu{
1808 .name = "atmega3290p",1808 .name = "atmega3290p",
1809 .llvm_name = "atmega3290p",1809 .llvm_name = "atmega3290p",
1810 .dependencies = &[_]*const Feature {1810 .dependencies = &[_]*const Feature {
1811 &feature_sram,
1812 &feature_jmpcall,
1813 &feature_mul,
1814 &feature_lpm,1811 &feature_lpm,
1815 &feature_lpmx,1812 &feature_sram,
1816 &feature_spm,
1817 &feature_addsubiw,1813 &feature_addsubiw,
1818 &feature_ijmpcall,
1819 &feature_break,
1820 &feature_movw,1814 &feature_movw,
1815 &feature_break,
1816 &feature_ijmpcall,
1817 &feature_lpmx,
1818 &feature_jmpcall,
1819 &feature_spm,
1820 &feature_mul,
1821 },1821 },
1822};1822};
18231823
...@@ -1825,16 +1825,16 @@ pub const cpu_atmega3290pa = Cpu{...@@ -1825,16 +1825,16 @@ pub const cpu_atmega3290pa = Cpu{
1825 .name = "atmega3290pa",1825 .name = "atmega3290pa",
1826 .llvm_name = "atmega3290pa",1826 .llvm_name = "atmega3290pa",
1827 .dependencies = &[_]*const Feature {1827 .dependencies = &[_]*const Feature {
1828 &feature_sram,
1829 &feature_jmpcall,
1830 &feature_mul,
1831 &feature_lpm,1828 &feature_lpm,
1832 &feature_lpmx,1829 &feature_sram,
1833 &feature_spm,
1834 &feature_addsubiw,1830 &feature_addsubiw,
1835 &feature_ijmpcall,
1836 &feature_break,
1837 &feature_movw,1831 &feature_movw,
1832 &feature_break,
1833 &feature_ijmpcall,
1834 &feature_lpmx,
1835 &feature_jmpcall,
1836 &feature_spm,
1837 &feature_mul,
1838 },1838 },
1839};1839};
18401840
...@@ -1842,16 +1842,16 @@ pub const cpu_atmega329a = Cpu{...@@ -1842,16 +1842,16 @@ pub const cpu_atmega329a = Cpu{
1842 .name = "atmega329a",1842 .name = "atmega329a",
1843 .llvm_name = "atmega329a",1843 .llvm_name = "atmega329a",
1844 .dependencies = &[_]*const Feature {1844 .dependencies = &[_]*const Feature {
1845 &feature_sram,
1846 &feature_jmpcall,
1847 &feature_mul,
1848 &feature_lpm,1845 &feature_lpm,
1849 &feature_lpmx,1846 &feature_sram,
1850 &feature_spm,
1851 &feature_addsubiw,1847 &feature_addsubiw,
1852 &feature_ijmpcall,
1853 &feature_break,
1854 &feature_movw,1848 &feature_movw,
1849 &feature_break,
1850 &feature_ijmpcall,
1851 &feature_lpmx,
1852 &feature_jmpcall,
1853 &feature_spm,
1854 &feature_mul,
1855 },1855 },
1856};1856};
18571857
...@@ -1859,16 +1859,16 @@ pub const cpu_atmega329p = Cpu{...@@ -1859,16 +1859,16 @@ pub const cpu_atmega329p = Cpu{
1859 .name = "atmega329p",1859 .name = "atmega329p",
1860 .llvm_name = "atmega329p",1860 .llvm_name = "atmega329p",
1861 .dependencies = &[_]*const Feature {1861 .dependencies = &[_]*const Feature {
1862 &feature_sram,
1863 &feature_jmpcall,
1864 &feature_mul,
1865 &feature_lpm,1862 &feature_lpm,
1866 &feature_lpmx,1863 &feature_sram,
1867 &feature_spm,
1868 &feature_addsubiw,1864 &feature_addsubiw,
1869 &feature_ijmpcall,
1870 &feature_break,
1871 &feature_movw,1865 &feature_movw,
1866 &feature_break,
1867 &feature_ijmpcall,
1868 &feature_lpmx,
1869 &feature_jmpcall,
1870 &feature_spm,
1871 &feature_mul,
1872 },1872 },
1873};1873};
18741874
...@@ -1876,16 +1876,16 @@ pub const cpu_atmega329pa = Cpu{...@@ -1876,16 +1876,16 @@ pub const cpu_atmega329pa = Cpu{
1876 .name = "atmega329pa",1876 .name = "atmega329pa",
1877 .llvm_name = "atmega329pa",1877 .llvm_name = "atmega329pa",
1878 .dependencies = &[_]*const Feature {1878 .dependencies = &[_]*const Feature {
1879 &feature_sram,
1880 &feature_jmpcall,
1881 &feature_mul,
1882 &feature_lpm,1879 &feature_lpm,
1883 &feature_lpmx,1880 &feature_sram,
1884 &feature_spm,
1885 &feature_addsubiw,1881 &feature_addsubiw,
1886 &feature_ijmpcall,
1887 &feature_break,
1888 &feature_movw,1882 &feature_movw,
1883 &feature_break,
1884 &feature_ijmpcall,
1885 &feature_lpmx,
1886 &feature_jmpcall,
1887 &feature_spm,
1888 &feature_mul,
1889 },1889 },
1890};1890};
18911891
...@@ -1893,16 +1893,16 @@ pub const cpu_atmega32a = Cpu{...@@ -1893,16 +1893,16 @@ pub const cpu_atmega32a = Cpu{
1893 .name = "atmega32a",1893 .name = "atmega32a",
1894 .llvm_name = "atmega32a",1894 .llvm_name = "atmega32a",
1895 .dependencies = &[_]*const Feature {1895 .dependencies = &[_]*const Feature {
1896 &feature_sram,
1897 &feature_jmpcall,
1898 &feature_mul,
1899 &feature_lpm,1896 &feature_lpm,
1900 &feature_lpmx,1897 &feature_sram,
1901 &feature_spm,
1902 &feature_addsubiw,1898 &feature_addsubiw,
1903 &feature_ijmpcall,
1904 &feature_break,
1905 &feature_movw,1899 &feature_movw,
1900 &feature_break,
1901 &feature_ijmpcall,
1902 &feature_lpmx,
1903 &feature_jmpcall,
1904 &feature_spm,
1905 &feature_mul,
1906 },1906 },
1907};1907};
19081908
...@@ -1910,16 +1910,16 @@ pub const cpu_atmega32c1 = Cpu{...@@ -1910,16 +1910,16 @@ pub const cpu_atmega32c1 = Cpu{
1910 .name = "atmega32c1",1910 .name = "atmega32c1",
1911 .llvm_name = "atmega32c1",1911 .llvm_name = "atmega32c1",
1912 .dependencies = &[_]*const Feature {1912 .dependencies = &[_]*const Feature {
1913 &feature_sram,
1914 &feature_jmpcall,
1915 &feature_mul,
1916 &feature_lpm,1913 &feature_lpm,
1917 &feature_lpmx,1914 &feature_sram,
1918 &feature_spm,
1919 &feature_addsubiw,1915 &feature_addsubiw,
1920 &feature_ijmpcall,
1921 &feature_break,
1922 &feature_movw,1916 &feature_movw,
1917 &feature_break,
1918 &feature_ijmpcall,
1919 &feature_lpmx,
1920 &feature_jmpcall,
1921 &feature_spm,
1922 &feature_mul,
1923 },1923 },
1924};1924};
19251925
...@@ -1927,16 +1927,16 @@ pub const cpu_atmega32hvb = Cpu{...@@ -1927,16 +1927,16 @@ pub const cpu_atmega32hvb = Cpu{
1927 .name = "atmega32hvb",1927 .name = "atmega32hvb",
1928 .llvm_name = "atmega32hvb",1928 .llvm_name = "atmega32hvb",
1929 .dependencies = &[_]*const Feature {1929 .dependencies = &[_]*const Feature {
1930 &feature_sram,
1931 &feature_jmpcall,
1932 &feature_mul,
1933 &feature_lpm,1930 &feature_lpm,
1934 &feature_lpmx,1931 &feature_sram,
1935 &feature_spm,
1936 &feature_addsubiw,1932 &feature_addsubiw,
1937 &feature_ijmpcall,
1938 &feature_break,
1939 &feature_movw,1933 &feature_movw,
1934 &feature_break,
1935 &feature_ijmpcall,
1936 &feature_lpmx,
1937 &feature_jmpcall,
1938 &feature_spm,
1939 &feature_mul,
1940 },1940 },
1941};1941};
19421942
...@@ -1944,16 +1944,16 @@ pub const cpu_atmega32hvbrevb = Cpu{...@@ -1944,16 +1944,16 @@ pub const cpu_atmega32hvbrevb = Cpu{
1944 .name = "atmega32hvbrevb",1944 .name = "atmega32hvbrevb",
1945 .llvm_name = "atmega32hvbrevb",1945 .llvm_name = "atmega32hvbrevb",
1946 .dependencies = &[_]*const Feature {1946 .dependencies = &[_]*const Feature {
1947 &feature_sram,
1948 &feature_jmpcall,
1949 &feature_mul,
1950 &feature_lpm,1947 &feature_lpm,
1951 &feature_lpmx,1948 &feature_sram,
1952 &feature_spm,
1953 &feature_addsubiw,1949 &feature_addsubiw,
1954 &feature_ijmpcall,
1955 &feature_break,
1956 &feature_movw,1950 &feature_movw,
1951 &feature_break,
1952 &feature_ijmpcall,
1953 &feature_lpmx,
1954 &feature_jmpcall,
1955 &feature_spm,
1956 &feature_mul,
1957 },1957 },
1958};1958};
19591959
...@@ -1961,16 +1961,16 @@ pub const cpu_atmega32m1 = Cpu{...@@ -1961,16 +1961,16 @@ pub const cpu_atmega32m1 = Cpu{
1961 .name = "atmega32m1",1961 .name = "atmega32m1",
1962 .llvm_name = "atmega32m1",1962 .llvm_name = "atmega32m1",
1963 .dependencies = &[_]*const Feature {1963 .dependencies = &[_]*const Feature {
1964 &feature_sram,
1965 &feature_jmpcall,
1966 &feature_mul,
1967 &feature_lpm,1964 &feature_lpm,
1968 &feature_lpmx,1965 &feature_sram,
1969 &feature_spm,
1970 &feature_addsubiw,1966 &feature_addsubiw,
1971 &feature_ijmpcall,
1972 &feature_break,
1973 &feature_movw,1967 &feature_movw,
1968 &feature_break,
1969 &feature_ijmpcall,
1970 &feature_lpmx,
1971 &feature_jmpcall,
1972 &feature_spm,
1973 &feature_mul,
1974 },1974 },
1975};1975};
19761976
...@@ -1978,15 +1978,15 @@ pub const cpu_atmega32u2 = Cpu{...@@ -1978,15 +1978,15 @@ pub const cpu_atmega32u2 = Cpu{
1978 .name = "atmega32u2",1978 .name = "atmega32u2",
1979 .llvm_name = "atmega32u2",1979 .llvm_name = "atmega32u2",
1980 .dependencies = &[_]*const Feature {1980 .dependencies = &[_]*const Feature {
1981 &feature_sram,
1982 &feature_jmpcall,
1983 &feature_lpm,1981 &feature_lpm,
1984 &feature_lpmx,1982 &feature_sram,
1985 &feature_spm,
1986 &feature_addsubiw,1983 &feature_addsubiw,
1987 &feature_ijmpcall,
1988 &feature_break,
1989 &feature_movw,1984 &feature_movw,
1985 &feature_break,
1986 &feature_ijmpcall,
1987 &feature_lpmx,
1988 &feature_jmpcall,
1989 &feature_spm,
1990 },1990 },
1991};1991};
19921992
...@@ -1994,16 +1994,16 @@ pub const cpu_atmega32u4 = Cpu{...@@ -1994,16 +1994,16 @@ pub const cpu_atmega32u4 = Cpu{
1994 .name = "atmega32u4",1994 .name = "atmega32u4",
1995 .llvm_name = "atmega32u4",1995 .llvm_name = "atmega32u4",
1996 .dependencies = &[_]*const Feature {1996 .dependencies = &[_]*const Feature {
1997 &feature_sram,
1998 &feature_jmpcall,
1999 &feature_mul,
2000 &feature_lpm,1997 &feature_lpm,
2001 &feature_lpmx,1998 &feature_sram,
2002 &feature_spm,
2003 &feature_addsubiw,1999 &feature_addsubiw,
2004 &feature_ijmpcall,
2005 &feature_break,
2006 &feature_movw,2000 &feature_movw,
2001 &feature_break,
2002 &feature_ijmpcall,
2003 &feature_lpmx,
2004 &feature_jmpcall,
2005 &feature_spm,
2006 &feature_mul,
2007 },2007 },
2008};2008};
20092009
...@@ -2011,16 +2011,16 @@ pub const cpu_atmega32u6 = Cpu{...@@ -2011,16 +2011,16 @@ pub const cpu_atmega32u6 = Cpu{
2011 .name = "atmega32u6",2011 .name = "atmega32u6",
2012 .llvm_name = "atmega32u6",2012 .llvm_name = "atmega32u6",
2013 .dependencies = &[_]*const Feature {2013 .dependencies = &[_]*const Feature {
2014 &feature_sram,
2015 &feature_jmpcall,
2016 &feature_mul,
2017 &feature_lpm,2014 &feature_lpm,
2018 &feature_lpmx,2015 &feature_sram,
2019 &feature_spm,
2020 &feature_addsubiw,2016 &feature_addsubiw,
2021 &feature_ijmpcall,
2022 &feature_break,
2023 &feature_movw,2017 &feature_movw,
2018 &feature_break,
2019 &feature_ijmpcall,
2020 &feature_lpmx,
2021 &feature_jmpcall,
2022 &feature_spm,
2023 &feature_mul,
2024 },2024 },
2025};2025};
20262026
...@@ -2028,16 +2028,16 @@ pub const cpu_atmega406 = Cpu{...@@ -2028,16 +2028,16 @@ pub const cpu_atmega406 = Cpu{
2028 .name = "atmega406",2028 .name = "atmega406",
2029 .llvm_name = "atmega406",2029 .llvm_name = "atmega406",
2030 .dependencies = &[_]*const Feature {2030 .dependencies = &[_]*const Feature {
2031 &feature_sram,
2032 &feature_jmpcall,
2033 &feature_mul,
2034 &feature_lpm,2031 &feature_lpm,
2035 &feature_lpmx,2032 &feature_sram,
2036 &feature_spm,
2037 &feature_addsubiw,2033 &feature_addsubiw,
2038 &feature_ijmpcall,
2039 &feature_break,
2040 &feature_movw,2034 &feature_movw,
2035 &feature_break,
2036 &feature_ijmpcall,
2037 &feature_lpmx,
2038 &feature_jmpcall,
2039 &feature_spm,
2040 &feature_mul,
2041 },2041 },
2042};2042};
20432043
...@@ -2045,15 +2045,15 @@ pub const cpu_atmega48 = Cpu{...@@ -2045,15 +2045,15 @@ pub const cpu_atmega48 = Cpu{
2045 .name = "atmega48",2045 .name = "atmega48",
2046 .llvm_name = "atmega48",2046 .llvm_name = "atmega48",
2047 .dependencies = &[_]*const Feature {2047 .dependencies = &[_]*const Feature {
2048 &feature_sram,
2049 &feature_mul,
2050 &feature_lpm,2048 &feature_lpm,
2051 &feature_lpmx,2049 &feature_sram,
2052 &feature_spm,
2053 &feature_addsubiw,2050 &feature_addsubiw,
2054 &feature_ijmpcall,
2055 &feature_break,
2056 &feature_movw,2051 &feature_movw,
2052 &feature_break,
2053 &feature_ijmpcall,
2054 &feature_lpmx,
2055 &feature_spm,
2056 &feature_mul,
2057 },2057 },
2058};2058};
20592059
...@@ -2061,15 +2061,15 @@ pub const cpu_atmega48a = Cpu{...@@ -2061,15 +2061,15 @@ pub const cpu_atmega48a = Cpu{
2061 .name = "atmega48a",2061 .name = "atmega48a",
2062 .llvm_name = "atmega48a",2062 .llvm_name = "atmega48a",
2063 .dependencies = &[_]*const Feature {2063 .dependencies = &[_]*const Feature {
2064 &feature_sram,
2065 &feature_mul,
2066 &feature_lpm,2064 &feature_lpm,
2067 &feature_lpmx,2065 &feature_sram,
2068 &feature_spm,
2069 &feature_addsubiw,2066 &feature_addsubiw,
2070 &feature_ijmpcall,
2071 &feature_break,
2072 &feature_movw,2067 &feature_movw,
2068 &feature_break,
2069 &feature_ijmpcall,
2070 &feature_lpmx,
2071 &feature_spm,
2072 &feature_mul,
2073 },2073 },
2074};2074};
20752075
...@@ -2077,15 +2077,15 @@ pub const cpu_atmega48p = Cpu{...@@ -2077,15 +2077,15 @@ pub const cpu_atmega48p = Cpu{
2077 .name = "atmega48p",2077 .name = "atmega48p",
2078 .llvm_name = "atmega48p",2078 .llvm_name = "atmega48p",
2079 .dependencies = &[_]*const Feature {2079 .dependencies = &[_]*const Feature {
2080 &feature_sram,
2081 &feature_mul,
2082 &feature_lpm,2080 &feature_lpm,
2083 &feature_lpmx,2081 &feature_sram,
2084 &feature_spm,
2085 &feature_addsubiw,2082 &feature_addsubiw,
2086 &feature_ijmpcall,
2087 &feature_break,
2088 &feature_movw,2083 &feature_movw,
2084 &feature_break,
2085 &feature_ijmpcall,
2086 &feature_lpmx,
2087 &feature_spm,
2088 &feature_mul,
2089 },2089 },
2090};2090};
20912091
...@@ -2093,15 +2093,15 @@ pub const cpu_atmega48pa = Cpu{...@@ -2093,15 +2093,15 @@ pub const cpu_atmega48pa = Cpu{
2093 .name = "atmega48pa",2093 .name = "atmega48pa",
2094 .llvm_name = "atmega48pa",2094 .llvm_name = "atmega48pa",
2095 .dependencies = &[_]*const Feature {2095 .dependencies = &[_]*const Feature {
2096 &feature_sram,
2097 &feature_mul,
2098 &feature_lpm,2096 &feature_lpm,
2099 &feature_lpmx,2097 &feature_sram,
2100 &feature_spm,
2101 &feature_addsubiw,2098 &feature_addsubiw,
2102 &feature_ijmpcall,
2103 &feature_break,
2104 &feature_movw,2099 &feature_movw,
2100 &feature_break,
2101 &feature_ijmpcall,
2102 &feature_lpmx,
2103 &feature_spm,
2104 &feature_mul,
2105 },2105 },
2106};2106};
21072107
...@@ -2109,16 +2109,16 @@ pub const cpu_atmega64 = Cpu{...@@ -2109,16 +2109,16 @@ pub const cpu_atmega64 = Cpu{
2109 .name = "atmega64",2109 .name = "atmega64",
2110 .llvm_name = "atmega64",2110 .llvm_name = "atmega64",
2111 .dependencies = &[_]*const Feature {2111 .dependencies = &[_]*const Feature {
2112 &feature_sram,
2113 &feature_jmpcall,
2114 &feature_mul,
2115 &feature_lpm,2112 &feature_lpm,
2116 &feature_lpmx,2113 &feature_sram,
2117 &feature_spm,
2118 &feature_addsubiw,2114 &feature_addsubiw,
2119 &feature_ijmpcall,
2120 &feature_break,
2121 &feature_movw,2115 &feature_movw,
2116 &feature_break,
2117 &feature_ijmpcall,
2118 &feature_lpmx,
2119 &feature_jmpcall,
2120 &feature_spm,
2121 &feature_mul,
2122 },2122 },
2123};2123};
21242124
...@@ -2126,16 +2126,16 @@ pub const cpu_atmega640 = Cpu{...@@ -2126,16 +2126,16 @@ pub const cpu_atmega640 = Cpu{
2126 .name = "atmega640",2126 .name = "atmega640",
2127 .llvm_name = "atmega640",2127 .llvm_name = "atmega640",
2128 .dependencies = &[_]*const Feature {2128 .dependencies = &[_]*const Feature {
2129 &feature_sram,
2130 &feature_jmpcall,
2131 &feature_mul,
2132 &feature_lpm,2129 &feature_lpm,
2133 &feature_lpmx,2130 &feature_sram,
2134 &feature_spm,
2135 &feature_addsubiw,2131 &feature_addsubiw,
2136 &feature_ijmpcall,
2137 &feature_break,
2138 &feature_movw,2132 &feature_movw,
2133 &feature_break,
2134 &feature_ijmpcall,
2135 &feature_lpmx,
2136 &feature_jmpcall,
2137 &feature_spm,
2138 &feature_mul,
2139 },2139 },
2140};2140};
21412141
...@@ -2143,16 +2143,16 @@ pub const cpu_atmega644 = Cpu{...@@ -2143,16 +2143,16 @@ pub const cpu_atmega644 = Cpu{
2143 .name = "atmega644",2143 .name = "atmega644",
2144 .llvm_name = "atmega644",2144 .llvm_name = "atmega644",
2145 .dependencies = &[_]*const Feature {2145 .dependencies = &[_]*const Feature {
2146 &feature_sram,
2147 &feature_jmpcall,
2148 &feature_mul,
2149 &feature_lpm,2146 &feature_lpm,
2150 &feature_lpmx,2147 &feature_sram,
2151 &feature_spm,
2152 &feature_addsubiw,2148 &feature_addsubiw,
2153 &feature_ijmpcall,
2154 &feature_break,
2155 &feature_movw,2149 &feature_movw,
2150 &feature_break,
2151 &feature_ijmpcall,
2152 &feature_lpmx,
2153 &feature_jmpcall,
2154 &feature_spm,
2155 &feature_mul,
2156 },2156 },
2157};2157};
21582158
...@@ -2160,16 +2160,16 @@ pub const cpu_atmega644a = Cpu{...@@ -2160,16 +2160,16 @@ pub const cpu_atmega644a = Cpu{
2160 .name = "atmega644a",2160 .name = "atmega644a",
2161 .llvm_name = "atmega644a",2161 .llvm_name = "atmega644a",
2162 .dependencies = &[_]*const Feature {2162 .dependencies = &[_]*const Feature {
2163 &feature_sram,
2164 &feature_jmpcall,
2165 &feature_mul,
2166 &feature_lpm,2163 &feature_lpm,
2167 &feature_lpmx,2164 &feature_sram,
2168 &feature_spm,
2169 &feature_addsubiw,2165 &feature_addsubiw,
2170 &feature_ijmpcall,
2171 &feature_break,
2172 &feature_movw,2166 &feature_movw,
2167 &feature_break,
2168 &feature_ijmpcall,
2169 &feature_lpmx,
2170 &feature_jmpcall,
2171 &feature_spm,
2172 &feature_mul,
2173 },2173 },
2174};2174};
21752175
...@@ -2177,16 +2177,16 @@ pub const cpu_atmega644p = Cpu{...@@ -2177,16 +2177,16 @@ pub const cpu_atmega644p = Cpu{
2177 .name = "atmega644p",2177 .name = "atmega644p",
2178 .llvm_name = "atmega644p",2178 .llvm_name = "atmega644p",
2179 .dependencies = &[_]*const Feature {2179 .dependencies = &[_]*const Feature {
2180 &feature_sram,
2181 &feature_jmpcall,
2182 &feature_mul,
2183 &feature_lpm,2180 &feature_lpm,
2184 &feature_lpmx,2181 &feature_sram,
2185 &feature_spm,
2186 &feature_addsubiw,2182 &feature_addsubiw,
2187 &feature_ijmpcall,
2188 &feature_break,
2189 &feature_movw,2183 &feature_movw,
2184 &feature_break,
2185 &feature_ijmpcall,
2186 &feature_lpmx,
2187 &feature_jmpcall,
2188 &feature_spm,
2189 &feature_mul,
2190 },2190 },
2191};2191};
21922192
...@@ -2194,16 +2194,16 @@ pub const cpu_atmega644pa = Cpu{...@@ -2194,16 +2194,16 @@ pub const cpu_atmega644pa = Cpu{
2194 .name = "atmega644pa",2194 .name = "atmega644pa",
2195 .llvm_name = "atmega644pa",2195 .llvm_name = "atmega644pa",
2196 .dependencies = &[_]*const Feature {2196 .dependencies = &[_]*const Feature {
2197 &feature_sram,
2198 &feature_jmpcall,
2199 &feature_mul,
2200 &feature_lpm,2197 &feature_lpm,
2201 &feature_lpmx,2198 &feature_sram,
2202 &feature_spm,
2203 &feature_addsubiw,2199 &feature_addsubiw,
2204 &feature_ijmpcall,
2205 &feature_break,
2206 &feature_movw,2200 &feature_movw,
2201 &feature_break,
2202 &feature_ijmpcall,
2203 &feature_lpmx,
2204 &feature_jmpcall,
2205 &feature_spm,
2206 &feature_mul,
2207 },2207 },
2208};2208};
22092209
...@@ -2211,16 +2211,16 @@ pub const cpu_atmega644rfr2 = Cpu{...@@ -2211,16 +2211,16 @@ pub const cpu_atmega644rfr2 = Cpu{
2211 .name = "atmega644rfr2",2211 .name = "atmega644rfr2",
2212 .llvm_name = "atmega644rfr2",2212 .llvm_name = "atmega644rfr2",
2213 .dependencies = &[_]*const Feature {2213 .dependencies = &[_]*const Feature {
2214 &feature_sram,
2215 &feature_jmpcall,
2216 &feature_mul,
2217 &feature_lpm,2214 &feature_lpm,
2218 &feature_lpmx,2215 &feature_sram,
2219 &feature_spm,
2220 &feature_addsubiw,2216 &feature_addsubiw,
2221 &feature_ijmpcall,
2222 &feature_break,
2223 &feature_movw,2217 &feature_movw,
2218 &feature_break,
2219 &feature_ijmpcall,
2220 &feature_lpmx,
2221 &feature_jmpcall,
2222 &feature_spm,
2223 &feature_mul,
2224 },2224 },
2225};2225};
22262226
...@@ -2228,16 +2228,16 @@ pub const cpu_atmega645 = Cpu{...@@ -2228,16 +2228,16 @@ pub const cpu_atmega645 = Cpu{
2228 .name = "atmega645",2228 .name = "atmega645",
2229 .llvm_name = "atmega645",2229 .llvm_name = "atmega645",
2230 .dependencies = &[_]*const Feature {2230 .dependencies = &[_]*const Feature {
2231 &feature_sram,
2232 &feature_jmpcall,
2233 &feature_mul,
2234 &feature_lpm,2231 &feature_lpm,
2235 &feature_lpmx,2232 &feature_sram,
2236 &feature_spm,
2237 &feature_addsubiw,2233 &feature_addsubiw,
2238 &feature_ijmpcall,
2239 &feature_break,
2240 &feature_movw,2234 &feature_movw,
2235 &feature_break,
2236 &feature_ijmpcall,
2237 &feature_lpmx,
2238 &feature_jmpcall,
2239 &feature_spm,
2240 &feature_mul,
2241 },2241 },
2242};2242};
22432243
...@@ -2245,16 +2245,16 @@ pub const cpu_atmega6450 = Cpu{...@@ -2245,16 +2245,16 @@ pub const cpu_atmega6450 = Cpu{
2245 .name = "atmega6450",2245 .name = "atmega6450",
2246 .llvm_name = "atmega6450",2246 .llvm_name = "atmega6450",
2247 .dependencies = &[_]*const Feature {2247 .dependencies = &[_]*const Feature {
2248 &feature_sram,
2249 &feature_jmpcall,
2250 &feature_mul,
2251 &feature_lpm,2248 &feature_lpm,
2252 &feature_lpmx,2249 &feature_sram,
2253 &feature_spm,
2254 &feature_addsubiw,2250 &feature_addsubiw,
2255 &feature_ijmpcall,
2256 &feature_break,
2257 &feature_movw,2251 &feature_movw,
2252 &feature_break,
2253 &feature_ijmpcall,
2254 &feature_lpmx,
2255 &feature_jmpcall,
2256 &feature_spm,
2257 &feature_mul,
2258 },2258 },
2259};2259};
22602260
...@@ -2262,16 +2262,16 @@ pub const cpu_atmega6450a = Cpu{...@@ -2262,16 +2262,16 @@ pub const cpu_atmega6450a = Cpu{
2262 .name = "atmega6450a",2262 .name = "atmega6450a",
2263 .llvm_name = "atmega6450a",2263 .llvm_name = "atmega6450a",
2264 .dependencies = &[_]*const Feature {2264 .dependencies = &[_]*const Feature {
2265 &feature_sram,
2266 &feature_jmpcall,
2267 &feature_mul,
2268 &feature_lpm,2265 &feature_lpm,
2269 &feature_lpmx,2266 &feature_sram,
2270 &feature_spm,
2271 &feature_addsubiw,2267 &feature_addsubiw,
2272 &feature_ijmpcall,
2273 &feature_break,
2274 &feature_movw,2268 &feature_movw,
2269 &feature_break,
2270 &feature_ijmpcall,
2271 &feature_lpmx,
2272 &feature_jmpcall,
2273 &feature_spm,
2274 &feature_mul,
2275 },2275 },
2276};2276};
22772277
...@@ -2279,16 +2279,16 @@ pub const cpu_atmega6450p = Cpu{...@@ -2279,16 +2279,16 @@ pub const cpu_atmega6450p = Cpu{
2279 .name = "atmega6450p",2279 .name = "atmega6450p",
2280 .llvm_name = "atmega6450p",2280 .llvm_name = "atmega6450p",
2281 .dependencies = &[_]*const Feature {2281 .dependencies = &[_]*const Feature {
2282 &feature_sram,
2283 &feature_jmpcall,
2284 &feature_mul,
2285 &feature_lpm,2282 &feature_lpm,
2286 &feature_lpmx,2283 &feature_sram,
2287 &feature_spm,
2288 &feature_addsubiw,2284 &feature_addsubiw,
2289 &feature_ijmpcall,
2290 &feature_break,
2291 &feature_movw,2285 &feature_movw,
2286 &feature_break,
2287 &feature_ijmpcall,
2288 &feature_lpmx,
2289 &feature_jmpcall,
2290 &feature_spm,
2291 &feature_mul,
2292 },2292 },
2293};2293};
22942294
...@@ -2296,16 +2296,16 @@ pub const cpu_atmega645a = Cpu{...@@ -2296,16 +2296,16 @@ pub const cpu_atmega645a = Cpu{
2296 .name = "atmega645a",2296 .name = "atmega645a",
2297 .llvm_name = "atmega645a",2297 .llvm_name = "atmega645a",
2298 .dependencies = &[_]*const Feature {2298 .dependencies = &[_]*const Feature {
2299 &feature_sram,
2300 &feature_jmpcall,
2301 &feature_mul,
2302 &feature_lpm,2299 &feature_lpm,
2303 &feature_lpmx,2300 &feature_sram,
2304 &feature_spm,
2305 &feature_addsubiw,2301 &feature_addsubiw,
2306 &feature_ijmpcall,
2307 &feature_break,
2308 &feature_movw,2302 &feature_movw,
2303 &feature_break,
2304 &feature_ijmpcall,
2305 &feature_lpmx,
2306 &feature_jmpcall,
2307 &feature_spm,
2308 &feature_mul,
2309 },2309 },
2310};2310};
23112311
...@@ -2313,16 +2313,16 @@ pub const cpu_atmega645p = Cpu{...@@ -2313,16 +2313,16 @@ pub const cpu_atmega645p = Cpu{
2313 .name = "atmega645p",2313 .name = "atmega645p",
2314 .llvm_name = "atmega645p",2314 .llvm_name = "atmega645p",
2315 .dependencies = &[_]*const Feature {2315 .dependencies = &[_]*const Feature {
2316 &feature_sram,
2317 &feature_jmpcall,
2318 &feature_mul,
2319 &feature_lpm,2316 &feature_lpm,
2320 &feature_lpmx,2317 &feature_sram,
2321 &feature_spm,
2322 &feature_addsubiw,2318 &feature_addsubiw,
2323 &feature_ijmpcall,
2324 &feature_break,
2325 &feature_movw,2319 &feature_movw,
2320 &feature_break,
2321 &feature_ijmpcall,
2322 &feature_lpmx,
2323 &feature_jmpcall,
2324 &feature_spm,
2325 &feature_mul,
2326 },2326 },
2327};2327};
23282328
...@@ -2330,16 +2330,16 @@ pub const cpu_atmega649 = Cpu{...@@ -2330,16 +2330,16 @@ pub const cpu_atmega649 = Cpu{
2330 .name = "atmega649",2330 .name = "atmega649",
2331 .llvm_name = "atmega649",2331 .llvm_name = "atmega649",
2332 .dependencies = &[_]*const Feature {2332 .dependencies = &[_]*const Feature {
2333 &feature_sram,
2334 &feature_jmpcall,
2335 &feature_mul,
2336 &feature_lpm,2333 &feature_lpm,
2337 &feature_lpmx,2334 &feature_sram,
2338 &feature_spm,
2339 &feature_addsubiw,2335 &feature_addsubiw,
2340 &feature_ijmpcall,
2341 &feature_break,
2342 &feature_movw,2336 &feature_movw,
2337 &feature_break,
2338 &feature_ijmpcall,
2339 &feature_lpmx,
2340 &feature_jmpcall,
2341 &feature_spm,
2342 &feature_mul,
2343 },2343 },
2344};2344};
23452345
...@@ -2347,16 +2347,16 @@ pub const cpu_atmega6490 = Cpu{...@@ -2347,16 +2347,16 @@ pub const cpu_atmega6490 = Cpu{
2347 .name = "atmega6490",2347 .name = "atmega6490",
2348 .llvm_name = "atmega6490",2348 .llvm_name = "atmega6490",
2349 .dependencies = &[_]*const Feature {2349 .dependencies = &[_]*const Feature {
2350 &feature_sram,
2351 &feature_jmpcall,
2352 &feature_mul,
2353 &feature_lpm,2350 &feature_lpm,
2354 &feature_lpmx,2351 &feature_sram,
2355 &feature_spm,
2356 &feature_addsubiw,2352 &feature_addsubiw,
2357 &feature_ijmpcall,
2358 &feature_break,
2359 &feature_movw,2353 &feature_movw,
2354 &feature_break,
2355 &feature_ijmpcall,
2356 &feature_lpmx,
2357 &feature_jmpcall,
2358 &feature_spm,
2359 &feature_mul,
2360 },2360 },
2361};2361};
23622362
...@@ -2364,16 +2364,16 @@ pub const cpu_atmega6490a = Cpu{...@@ -2364,16 +2364,16 @@ pub const cpu_atmega6490a = Cpu{
2364 .name = "atmega6490a",2364 .name = "atmega6490a",
2365 .llvm_name = "atmega6490a",2365 .llvm_name = "atmega6490a",
2366 .dependencies = &[_]*const Feature {2366 .dependencies = &[_]*const Feature {
2367 &feature_sram,
2368 &feature_jmpcall,
2369 &feature_mul,
2370 &feature_lpm,2367 &feature_lpm,
2371 &feature_lpmx,2368 &feature_sram,
2372 &feature_spm,
2373 &feature_addsubiw,2369 &feature_addsubiw,
2374 &feature_ijmpcall,
2375 &feature_break,
2376 &feature_movw,2370 &feature_movw,
2371 &feature_break,
2372 &feature_ijmpcall,
2373 &feature_lpmx,
2374 &feature_jmpcall,
2375 &feature_spm,
2376 &feature_mul,
2377 },2377 },
2378};2378};
23792379
...@@ -2381,16 +2381,16 @@ pub const cpu_atmega6490p = Cpu{...@@ -2381,16 +2381,16 @@ pub const cpu_atmega6490p = Cpu{
2381 .name = "atmega6490p",2381 .name = "atmega6490p",
2382 .llvm_name = "atmega6490p",2382 .llvm_name = "atmega6490p",
2383 .dependencies = &[_]*const Feature {2383 .dependencies = &[_]*const Feature {
2384 &feature_sram,
2385 &feature_jmpcall,
2386 &feature_mul,
2387 &feature_lpm,2384 &feature_lpm,
2388 &feature_lpmx,2385 &feature_sram,
2389 &feature_spm,
2390 &feature_addsubiw,2386 &feature_addsubiw,
2391 &feature_ijmpcall,
2392 &feature_break,
2393 &feature_movw,2387 &feature_movw,
2388 &feature_break,
2389 &feature_ijmpcall,
2390 &feature_lpmx,
2391 &feature_jmpcall,
2392 &feature_spm,
2393 &feature_mul,
2394 },2394 },
2395};2395};
23962396
...@@ -2398,16 +2398,16 @@ pub const cpu_atmega649a = Cpu{...@@ -2398,16 +2398,16 @@ pub const cpu_atmega649a = Cpu{
2398 .name = "atmega649a",2398 .name = "atmega649a",
2399 .llvm_name = "atmega649a",2399 .llvm_name = "atmega649a",
2400 .dependencies = &[_]*const Feature {2400 .dependencies = &[_]*const Feature {
2401 &feature_sram,
2402 &feature_jmpcall,
2403 &feature_mul,
2404 &feature_lpm,2401 &feature_lpm,
2405 &feature_lpmx,2402 &feature_sram,
2406 &feature_spm,
2407 &feature_addsubiw,2403 &feature_addsubiw,
2408 &feature_ijmpcall,
2409 &feature_break,
2410 &feature_movw,2404 &feature_movw,
2405 &feature_break,
2406 &feature_ijmpcall,
2407 &feature_lpmx,
2408 &feature_jmpcall,
2409 &feature_spm,
2410 &feature_mul,
2411 },2411 },
2412};2412};
24132413
...@@ -2415,16 +2415,16 @@ pub const cpu_atmega649p = Cpu{...@@ -2415,16 +2415,16 @@ pub const cpu_atmega649p = Cpu{
2415 .name = "atmega649p",2415 .name = "atmega649p",
2416 .llvm_name = "atmega649p",2416 .llvm_name = "atmega649p",
2417 .dependencies = &[_]*const Feature {2417 .dependencies = &[_]*const Feature {
2418 &feature_sram,
2419 &feature_jmpcall,
2420 &feature_mul,
2421 &feature_lpm,2418 &feature_lpm,
2422 &feature_lpmx,2419 &feature_sram,
2423 &feature_spm,
2424 &feature_addsubiw,2420 &feature_addsubiw,
2425 &feature_ijmpcall,
2426 &feature_break,
2427 &feature_movw,2421 &feature_movw,
2422 &feature_break,
2423 &feature_ijmpcall,
2424 &feature_lpmx,
2425 &feature_jmpcall,
2426 &feature_spm,
2427 &feature_mul,
2428 },2428 },
2429};2429};
24302430
...@@ -2432,16 +2432,16 @@ pub const cpu_atmega64a = Cpu{...@@ -2432,16 +2432,16 @@ pub const cpu_atmega64a = Cpu{
2432 .name = "atmega64a",2432 .name = "atmega64a",
2433 .llvm_name = "atmega64a",2433 .llvm_name = "atmega64a",
2434 .dependencies = &[_]*const Feature {2434 .dependencies = &[_]*const Feature {
2435 &feature_sram,
2436 &feature_jmpcall,
2437 &feature_mul,
2438 &feature_lpm,2435 &feature_lpm,
2439 &feature_lpmx,2436 &feature_sram,
2440 &feature_spm,
2441 &feature_addsubiw,2437 &feature_addsubiw,
2442 &feature_ijmpcall,
2443 &feature_break,
2444 &feature_movw,2438 &feature_movw,
2439 &feature_break,
2440 &feature_ijmpcall,
2441 &feature_lpmx,
2442 &feature_jmpcall,
2443 &feature_spm,
2444 &feature_mul,
2445 },2445 },
2446};2446};
24472447
...@@ -2449,16 +2449,16 @@ pub const cpu_atmega64c1 = Cpu{...@@ -2449,16 +2449,16 @@ pub const cpu_atmega64c1 = Cpu{
2449 .name = "atmega64c1",2449 .name = "atmega64c1",
2450 .llvm_name = "atmega64c1",2450 .llvm_name = "atmega64c1",
2451 .dependencies = &[_]*const Feature {2451 .dependencies = &[_]*const Feature {
2452 &feature_sram,
2453 &feature_jmpcall,
2454 &feature_mul,
2455 &feature_lpm,2452 &feature_lpm,
2456 &feature_lpmx,2453 &feature_sram,
2457 &feature_spm,
2458 &feature_addsubiw,2454 &feature_addsubiw,
2459 &feature_ijmpcall,
2460 &feature_break,
2461 &feature_movw,2455 &feature_movw,
2456 &feature_break,
2457 &feature_ijmpcall,
2458 &feature_lpmx,
2459 &feature_jmpcall,
2460 &feature_spm,
2461 &feature_mul,
2462 },2462 },
2463};2463};
24642464
...@@ -2466,16 +2466,16 @@ pub const cpu_atmega64hve = Cpu{...@@ -2466,16 +2466,16 @@ pub const cpu_atmega64hve = Cpu{
2466 .name = "atmega64hve",2466 .name = "atmega64hve",
2467 .llvm_name = "atmega64hve",2467 .llvm_name = "atmega64hve",
2468 .dependencies = &[_]*const Feature {2468 .dependencies = &[_]*const Feature {
2469 &feature_sram,
2470 &feature_jmpcall,
2471 &feature_mul,
2472 &feature_lpm,2469 &feature_lpm,
2473 &feature_lpmx,2470 &feature_sram,
2474 &feature_spm,
2475 &feature_addsubiw,2471 &feature_addsubiw,
2476 &feature_ijmpcall,
2477 &feature_break,
2478 &feature_movw,2472 &feature_movw,
2473 &feature_break,
2474 &feature_ijmpcall,
2475 &feature_lpmx,
2476 &feature_jmpcall,
2477 &feature_spm,
2478 &feature_mul,
2479 },2479 },
2480};2480};
24812481
...@@ -2483,16 +2483,16 @@ pub const cpu_atmega64m1 = Cpu{...@@ -2483,16 +2483,16 @@ pub const cpu_atmega64m1 = Cpu{
2483 .name = "atmega64m1",2483 .name = "atmega64m1",
2484 .llvm_name = "atmega64m1",2484 .llvm_name = "atmega64m1",
2485 .dependencies = &[_]*const Feature {2485 .dependencies = &[_]*const Feature {
2486 &feature_sram,
2487 &feature_jmpcall,
2488 &feature_mul,
2489 &feature_lpm,2486 &feature_lpm,
2490 &feature_lpmx,2487 &feature_sram,
2491 &feature_spm,
2492 &feature_addsubiw,2488 &feature_addsubiw,
2493 &feature_ijmpcall,
2494 &feature_break,
2495 &feature_movw,2489 &feature_movw,
2490 &feature_break,
2491 &feature_ijmpcall,
2492 &feature_lpmx,
2493 &feature_jmpcall,
2494 &feature_spm,
2495 &feature_mul,
2496 },2496 },
2497};2497};
24982498
...@@ -2500,16 +2500,16 @@ pub const cpu_atmega64rfr2 = Cpu{...@@ -2500,16 +2500,16 @@ pub const cpu_atmega64rfr2 = Cpu{
2500 .name = "atmega64rfr2",2500 .name = "atmega64rfr2",
2501 .llvm_name = "atmega64rfr2",2501 .llvm_name = "atmega64rfr2",
2502 .dependencies = &[_]*const Feature {2502 .dependencies = &[_]*const Feature {
2503 &feature_sram,
2504 &feature_jmpcall,
2505 &feature_mul,
2506 &feature_lpm,2503 &feature_lpm,
2507 &feature_lpmx,2504 &feature_sram,
2508 &feature_spm,
2509 &feature_addsubiw,2505 &feature_addsubiw,
2510 &feature_ijmpcall,
2511 &feature_break,
2512 &feature_movw,2506 &feature_movw,
2507 &feature_break,
2508 &feature_ijmpcall,
2509 &feature_lpmx,
2510 &feature_jmpcall,
2511 &feature_spm,
2512 &feature_mul,
2513 },2513 },
2514};2514};
25152515
...@@ -2517,15 +2517,15 @@ pub const cpu_atmega8 = Cpu{...@@ -2517,15 +2517,15 @@ pub const cpu_atmega8 = Cpu{
2517 .name = "atmega8",2517 .name = "atmega8",
2518 .llvm_name = "atmega8",2518 .llvm_name = "atmega8",
2519 .dependencies = &[_]*const Feature {2519 .dependencies = &[_]*const Feature {
2520 &feature_sram,
2521 &feature_mul,
2522 &feature_lpm,2520 &feature_lpm,
2523 &feature_lpmx,2521 &feature_sram,
2524 &feature_spm,
2525 &feature_addsubiw,2522 &feature_addsubiw,
2526 &feature_ijmpcall,
2527 &feature_break,
2528 &feature_movw,2523 &feature_movw,
2524 &feature_break,
2525 &feature_ijmpcall,
2526 &feature_lpmx,
2527 &feature_spm,
2528 &feature_mul,
2529 },2529 },
2530};2530};
25312531
...@@ -2533,8 +2533,8 @@ pub const cpu_atmega8515 = Cpu{...@@ -2533,8 +2533,8 @@ pub const cpu_atmega8515 = Cpu{
2533 .name = "atmega8515",2533 .name = "atmega8515",
2534 .llvm_name = "atmega8515",2534 .llvm_name = "atmega8515",
2535 .dependencies = &[_]*const Feature {2535 .dependencies = &[_]*const Feature {
2536 &feature_sram,
2537 &feature_lpm,2536 &feature_lpm,
2537 &feature_sram,
2538 &feature_addsubiw,2538 &feature_addsubiw,
2539 &feature_ijmpcall,2539 &feature_ijmpcall,
2540 &feature_lpmx,2540 &feature_lpmx,
...@@ -2548,8 +2548,8 @@ pub const cpu_atmega8535 = Cpu{...@@ -2548,8 +2548,8 @@ pub const cpu_atmega8535 = Cpu{
2548 .name = "atmega8535",2548 .name = "atmega8535",
2549 .llvm_name = "atmega8535",2549 .llvm_name = "atmega8535",
2550 .dependencies = &[_]*const Feature {2550 .dependencies = &[_]*const Feature {
2551 &feature_sram,
2552 &feature_lpm,2551 &feature_lpm,
2552 &feature_sram,
2553 &feature_addsubiw,2553 &feature_addsubiw,
2554 &feature_ijmpcall,2554 &feature_ijmpcall,
2555 &feature_lpmx,2555 &feature_lpmx,
...@@ -2563,15 +2563,15 @@ pub const cpu_atmega88 = Cpu{...@@ -2563,15 +2563,15 @@ pub const cpu_atmega88 = Cpu{
2563 .name = "atmega88",2563 .name = "atmega88",
2564 .llvm_name = "atmega88",2564 .llvm_name = "atmega88",
2565 .dependencies = &[_]*const Feature {2565 .dependencies = &[_]*const Feature {
2566 &feature_sram,
2567 &feature_mul,
2568 &feature_lpm,2566 &feature_lpm,
2569 &feature_lpmx,2567 &feature_sram,
2570 &feature_spm,
2571 &feature_addsubiw,2568 &feature_addsubiw,
2572 &feature_ijmpcall,
2573 &feature_break,
2574 &feature_movw,2569 &feature_movw,
2570 &feature_break,
2571 &feature_ijmpcall,
2572 &feature_lpmx,
2573 &feature_spm,
2574 &feature_mul,
2575 },2575 },
2576};2576};
25772577
...@@ -2579,15 +2579,15 @@ pub const cpu_atmega88a = Cpu{...@@ -2579,15 +2579,15 @@ pub const cpu_atmega88a = Cpu{
2579 .name = "atmega88a",2579 .name = "atmega88a",
2580 .llvm_name = "atmega88a",2580 .llvm_name = "atmega88a",
2581 .dependencies = &[_]*const Feature {2581 .dependencies = &[_]*const Feature {
2582 &feature_sram,
2583 &feature_mul,
2584 &feature_lpm,2582 &feature_lpm,
2585 &feature_lpmx,2583 &feature_sram,
2586 &feature_spm,
2587 &feature_addsubiw,2584 &feature_addsubiw,
2588 &feature_ijmpcall,
2589 &feature_break,
2590 &feature_movw,2585 &feature_movw,
2586 &feature_break,
2587 &feature_ijmpcall,
2588 &feature_lpmx,
2589 &feature_spm,
2590 &feature_mul,
2591 },2591 },
2592};2592};
25932593
...@@ -2595,15 +2595,15 @@ pub const cpu_atmega88p = Cpu{...@@ -2595,15 +2595,15 @@ pub const cpu_atmega88p = Cpu{
2595 .name = "atmega88p",2595 .name = "atmega88p",
2596 .llvm_name = "atmega88p",2596 .llvm_name = "atmega88p",
2597 .dependencies = &[_]*const Feature {2597 .dependencies = &[_]*const Feature {
2598 &feature_sram,
2599 &feature_mul,
2600 &feature_lpm,2598 &feature_lpm,
2601 &feature_lpmx,2599 &feature_sram,
2602 &feature_spm,
2603 &feature_addsubiw,2600 &feature_addsubiw,
2604 &feature_ijmpcall,
2605 &feature_break,
2606 &feature_movw,2601 &feature_movw,
2602 &feature_break,
2603 &feature_ijmpcall,
2604 &feature_lpmx,
2605 &feature_spm,
2606 &feature_mul,
2607 },2607 },
2608};2608};
26092609
...@@ -2611,15 +2611,15 @@ pub const cpu_atmega88pa = Cpu{...@@ -2611,15 +2611,15 @@ pub const cpu_atmega88pa = Cpu{
2611 .name = "atmega88pa",2611 .name = "atmega88pa",
2612 .llvm_name = "atmega88pa",2612 .llvm_name = "atmega88pa",
2613 .dependencies = &[_]*const Feature {2613 .dependencies = &[_]*const Feature {
2614 &feature_sram,
2615 &feature_mul,
2616 &feature_lpm,2614 &feature_lpm,
2617 &feature_lpmx,2615 &feature_sram,
2618 &feature_spm,
2619 &feature_addsubiw,2616 &feature_addsubiw,
2620 &feature_ijmpcall,
2621 &feature_break,
2622 &feature_movw,2617 &feature_movw,
2618 &feature_break,
2619 &feature_ijmpcall,
2620 &feature_lpmx,
2621 &feature_spm,
2622 &feature_mul,
2623 },2623 },
2624};2624};
26252625
...@@ -2627,15 +2627,15 @@ pub const cpu_atmega8a = Cpu{...@@ -2627,15 +2627,15 @@ pub const cpu_atmega8a = Cpu{
2627 .name = "atmega8a",2627 .name = "atmega8a",
2628 .llvm_name = "atmega8a",2628 .llvm_name = "atmega8a",
2629 .dependencies = &[_]*const Feature {2629 .dependencies = &[_]*const Feature {
2630 &feature_sram,
2631 &feature_mul,
2632 &feature_lpm,2630 &feature_lpm,
2633 &feature_lpmx,2631 &feature_sram,
2634 &feature_spm,
2635 &feature_addsubiw,2632 &feature_addsubiw,
2636 &feature_ijmpcall,
2637 &feature_break,
2638 &feature_movw,2633 &feature_movw,
2634 &feature_break,
2635 &feature_ijmpcall,
2636 &feature_lpmx,
2637 &feature_spm,
2638 &feature_mul,
2639 },2639 },
2640};2640};
26412641
...@@ -2643,15 +2643,15 @@ pub const cpu_atmega8hva = Cpu{...@@ -2643,15 +2643,15 @@ pub const cpu_atmega8hva = Cpu{
2643 .name = "atmega8hva",2643 .name = "atmega8hva",
2644 .llvm_name = "atmega8hva",2644 .llvm_name = "atmega8hva",
2645 .dependencies = &[_]*const Feature {2645 .dependencies = &[_]*const Feature {
2646 &feature_sram,
2647 &feature_mul,
2648 &feature_lpm,2646 &feature_lpm,
2649 &feature_lpmx,2647 &feature_sram,
2650 &feature_spm,
2651 &feature_addsubiw,2648 &feature_addsubiw,
2652 &feature_ijmpcall,
2653 &feature_break,
2654 &feature_movw,2649 &feature_movw,
2650 &feature_break,
2651 &feature_ijmpcall,
2652 &feature_lpmx,
2653 &feature_spm,
2654 &feature_mul,
2655 },2655 },
2656};2656};
26572657
...@@ -2659,15 +2659,15 @@ pub const cpu_atmega8u2 = Cpu{...@@ -2659,15 +2659,15 @@ pub const cpu_atmega8u2 = Cpu{
2659 .name = "atmega8u2",2659 .name = "atmega8u2",
2660 .llvm_name = "atmega8u2",2660 .llvm_name = "atmega8u2",
2661 .dependencies = &[_]*const Feature {2661 .dependencies = &[_]*const Feature {
2662 &feature_sram,
2663 &feature_jmpcall,
2664 &feature_lpm,2662 &feature_lpm,
2665 &feature_lpmx,2663 &feature_sram,
2666 &feature_spm,
2667 &feature_addsubiw,2664 &feature_addsubiw,
2668 &feature_ijmpcall,
2669 &feature_break,
2670 &feature_movw,2665 &feature_movw,
2666 &feature_break,
2667 &feature_ijmpcall,
2668 &feature_lpmx,
2669 &feature_jmpcall,
2670 &feature_spm,
2671 },2671 },
2672};2672};
26732673
...@@ -2676,8 +2676,8 @@ pub const cpu_attiny10 = Cpu{...@@ -2676,8 +2676,8 @@ pub const cpu_attiny10 = Cpu{
2676 .llvm_name = "attiny10",2676 .llvm_name = "attiny10",
2677 .dependencies = &[_]*const Feature {2677 .dependencies = &[_]*const Feature {
2678 &feature_sram,2678 &feature_sram,
2679 &feature_tinyencoding,
2680 &feature_break,2679 &feature_break,
2680 &feature_tinyencoding,
2681 },2681 },
2682};2682};
26832683
...@@ -2686,8 +2686,8 @@ pub const cpu_attiny102 = Cpu{...@@ -2686,8 +2686,8 @@ pub const cpu_attiny102 = Cpu{
2686 .llvm_name = "attiny102",2686 .llvm_name = "attiny102",
2687 .dependencies = &[_]*const Feature {2687 .dependencies = &[_]*const Feature {
2688 &feature_sram,2688 &feature_sram,
2689 &feature_tinyencoding,
2690 &feature_break,2689 &feature_break,
2690 &feature_tinyencoding,
2691 },2691 },
2692};2692};
26932693
...@@ -2696,8 +2696,8 @@ pub const cpu_attiny104 = Cpu{...@@ -2696,8 +2696,8 @@ pub const cpu_attiny104 = Cpu{
2696 .llvm_name = "attiny104",2696 .llvm_name = "attiny104",
2697 .dependencies = &[_]*const Feature {2697 .dependencies = &[_]*const Feature {
2698 &feature_sram,2698 &feature_sram,
2699 &feature_tinyencoding,
2700 &feature_break,2699 &feature_break,
2700 &feature_tinyencoding,
2701 },2701 },
2702};2702};
27032703
...@@ -2721,14 +2721,14 @@ pub const cpu_attiny13 = Cpu{...@@ -2721,14 +2721,14 @@ pub const cpu_attiny13 = Cpu{
2721 .name = "attiny13",2721 .name = "attiny13",
2722 .llvm_name = "attiny13",2722 .llvm_name = "attiny13",
2723 .dependencies = &[_]*const Feature {2723 .dependencies = &[_]*const Feature {
2724 &feature_sram,
2725 &feature_lpm,2724 &feature_lpm,
2726 &feature_lpmx,2725 &feature_sram,
2727 &feature_spm,
2728 &feature_addsubiw,2726 &feature_addsubiw,
2729 &feature_ijmpcall,
2730 &feature_break,
2731 &feature_movw,2727 &feature_movw,
2728 &feature_break,
2729 &feature_ijmpcall,
2730 &feature_lpmx,
2731 &feature_spm,
2732 },2732 },
2733};2733};
27342734
...@@ -2736,14 +2736,14 @@ pub const cpu_attiny13a = Cpu{...@@ -2736,14 +2736,14 @@ pub const cpu_attiny13a = Cpu{
2736 .name = "attiny13a",2736 .name = "attiny13a",
2737 .llvm_name = "attiny13a",2737 .llvm_name = "attiny13a",
2738 .dependencies = &[_]*const Feature {2738 .dependencies = &[_]*const Feature {
2739 &feature_sram,
2740 &feature_lpm,2739 &feature_lpm,
2741 &feature_lpmx,2740 &feature_sram,
2742 &feature_spm,
2743 &feature_addsubiw,2741 &feature_addsubiw,
2744 &feature_ijmpcall,
2745 &feature_break,
2746 &feature_movw,2742 &feature_movw,
2743 &feature_break,
2744 &feature_ijmpcall,
2745 &feature_lpmx,
2746 &feature_spm,
2747 },2747 },
2748};2748};
27492749
...@@ -2759,15 +2759,15 @@ pub const cpu_attiny1634 = Cpu{...@@ -2759,15 +2759,15 @@ pub const cpu_attiny1634 = Cpu{
2759 .name = "attiny1634",2759 .name = "attiny1634",
2760 .llvm_name = "attiny1634",2760 .llvm_name = "attiny1634",
2761 .dependencies = &[_]*const Feature {2761 .dependencies = &[_]*const Feature {
2762 &feature_sram,
2763 &feature_jmpcall,
2764 &feature_lpm,2762 &feature_lpm,
2765 &feature_lpmx,2763 &feature_sram,
2766 &feature_spm,
2767 &feature_addsubiw,2764 &feature_addsubiw,
2768 &feature_ijmpcall,
2769 &feature_break,
2770 &feature_movw,2765 &feature_movw,
2766 &feature_break,
2767 &feature_ijmpcall,
2768 &feature_lpmx,
2769 &feature_jmpcall,
2770 &feature_spm,
2771 },2771 },
2772};2772};
27732773
...@@ -2775,15 +2775,15 @@ pub const cpu_attiny167 = Cpu{...@@ -2775,15 +2775,15 @@ pub const cpu_attiny167 = Cpu{
2775 .name = "attiny167",2775 .name = "attiny167",
2776 .llvm_name = "attiny167",2776 .llvm_name = "attiny167",
2777 .dependencies = &[_]*const Feature {2777 .dependencies = &[_]*const Feature {
2778 &feature_sram,
2779 &feature_jmpcall,
2780 &feature_lpm,2778 &feature_lpm,
2781 &feature_lpmx,2779 &feature_sram,
2782 &feature_spm,
2783 &feature_addsubiw,2780 &feature_addsubiw,
2784 &feature_ijmpcall,
2785 &feature_break,
2786 &feature_movw,2781 &feature_movw,
2782 &feature_break,
2783 &feature_ijmpcall,
2784 &feature_lpmx,
2785 &feature_jmpcall,
2786 &feature_spm,
2787 },2787 },
2788};2788};
27892789
...@@ -2792,8 +2792,8 @@ pub const cpu_attiny20 = Cpu{...@@ -2792,8 +2792,8 @@ pub const cpu_attiny20 = Cpu{
2792 .llvm_name = "attiny20",2792 .llvm_name = "attiny20",
2793 .dependencies = &[_]*const Feature {2793 .dependencies = &[_]*const Feature {
2794 &feature_sram,2794 &feature_sram,
2795 &feature_tinyencoding,
2796 &feature_break,2795 &feature_break,
2796 &feature_tinyencoding,
2797 },2797 },
2798};2798};
27992799
...@@ -2801,8 +2801,8 @@ pub const cpu_attiny22 = Cpu{...@@ -2801,8 +2801,8 @@ pub const cpu_attiny22 = Cpu{
2801 .name = "attiny22",2801 .name = "attiny22",
2802 .llvm_name = "attiny22",2802 .llvm_name = "attiny22",
2803 .dependencies = &[_]*const Feature {2803 .dependencies = &[_]*const Feature {
2804 &feature_sram,
2805 &feature_lpm,2804 &feature_lpm,
2805 &feature_sram,
2806 &feature_addsubiw,2806 &feature_addsubiw,
2807 &feature_ijmpcall,2807 &feature_ijmpcall,
2808 },2808 },
...@@ -2812,14 +2812,14 @@ pub const cpu_attiny2313 = Cpu{...@@ -2812,14 +2812,14 @@ pub const cpu_attiny2313 = Cpu{
2812 .name = "attiny2313",2812 .name = "attiny2313",
2813 .llvm_name = "attiny2313",2813 .llvm_name = "attiny2313",
2814 .dependencies = &[_]*const Feature {2814 .dependencies = &[_]*const Feature {
2815 &feature_sram,
2816 &feature_lpm,2815 &feature_lpm,
2817 &feature_lpmx,2816 &feature_sram,
2818 &feature_spm,
2819 &feature_addsubiw,2817 &feature_addsubiw,
2820 &feature_ijmpcall,
2821 &feature_break,
2822 &feature_movw,2818 &feature_movw,
2819 &feature_break,
2820 &feature_ijmpcall,
2821 &feature_lpmx,
2822 &feature_spm,
2823 },2823 },
2824};2824};
28252825
...@@ -2827,14 +2827,14 @@ pub const cpu_attiny2313a = Cpu{...@@ -2827,14 +2827,14 @@ pub const cpu_attiny2313a = Cpu{
2827 .name = "attiny2313a",2827 .name = "attiny2313a",
2828 .llvm_name = "attiny2313a",2828 .llvm_name = "attiny2313a",
2829 .dependencies = &[_]*const Feature {2829 .dependencies = &[_]*const Feature {
2830 &feature_sram,
2831 &feature_lpm,2830 &feature_lpm,
2832 &feature_lpmx,2831 &feature_sram,
2833 &feature_spm,
2834 &feature_addsubiw,2832 &feature_addsubiw,
2835 &feature_ijmpcall,
2836 &feature_break,
2837 &feature_movw,2833 &feature_movw,
2834 &feature_break,
2835 &feature_ijmpcall,
2836 &feature_lpmx,
2837 &feature_spm,
2838 },2838 },
2839};2839};
28402840
...@@ -2842,14 +2842,14 @@ pub const cpu_attiny24 = Cpu{...@@ -2842,14 +2842,14 @@ pub const cpu_attiny24 = Cpu{
2842 .name = "attiny24",2842 .name = "attiny24",
2843 .llvm_name = "attiny24",2843 .llvm_name = "attiny24",
2844 .dependencies = &[_]*const Feature {2844 .dependencies = &[_]*const Feature {
2845 &feature_sram,
2846 &feature_lpm,2845 &feature_lpm,
2847 &feature_lpmx,2846 &feature_sram,
2848 &feature_spm,
2849 &feature_addsubiw,2847 &feature_addsubiw,
2850 &feature_ijmpcall,
2851 &feature_break,
2852 &feature_movw,2848 &feature_movw,
2849 &feature_break,
2850 &feature_ijmpcall,
2851 &feature_lpmx,
2852 &feature_spm,
2853 },2853 },
2854};2854};
28552855
...@@ -2857,14 +2857,14 @@ pub const cpu_attiny24a = Cpu{...@@ -2857,14 +2857,14 @@ pub const cpu_attiny24a = Cpu{
2857 .name = "attiny24a",2857 .name = "attiny24a",
2858 .llvm_name = "attiny24a",2858 .llvm_name = "attiny24a",
2859 .dependencies = &[_]*const Feature {2859 .dependencies = &[_]*const Feature {
2860 &feature_sram,
2861 &feature_lpm,2860 &feature_lpm,
2862 &feature_lpmx,2861 &feature_sram,
2863 &feature_spm,
2864 &feature_addsubiw,2862 &feature_addsubiw,
2865 &feature_ijmpcall,
2866 &feature_break,
2867 &feature_movw,2863 &feature_movw,
2864 &feature_break,
2865 &feature_ijmpcall,
2866 &feature_lpmx,
2867 &feature_spm,
2868 },2868 },
2869};2869};
28702870
...@@ -2872,14 +2872,14 @@ pub const cpu_attiny25 = Cpu{...@@ -2872,14 +2872,14 @@ pub const cpu_attiny25 = Cpu{
2872 .name = "attiny25",2872 .name = "attiny25",
2873 .llvm_name = "attiny25",2873 .llvm_name = "attiny25",
2874 .dependencies = &[_]*const Feature {2874 .dependencies = &[_]*const Feature {
2875 &feature_sram,
2876 &feature_lpm,2875 &feature_lpm,
2877 &feature_lpmx,2876 &feature_sram,
2878 &feature_spm,
2879 &feature_addsubiw,2877 &feature_addsubiw,
2880 &feature_ijmpcall,
2881 &feature_break,
2882 &feature_movw,2878 &feature_movw,
2879 &feature_break,
2880 &feature_ijmpcall,
2881 &feature_lpmx,
2882 &feature_spm,
2883 },2883 },
2884};2884};
28852885
...@@ -2887,8 +2887,8 @@ pub const cpu_attiny26 = Cpu{...@@ -2887,8 +2887,8 @@ pub const cpu_attiny26 = Cpu{
2887 .name = "attiny26",2887 .name = "attiny26",
2888 .llvm_name = "attiny26",2888 .llvm_name = "attiny26",
2889 .dependencies = &[_]*const Feature {2889 .dependencies = &[_]*const Feature {
2890 &feature_sram,
2891 &feature_lpm,2890 &feature_lpm,
2891 &feature_sram,
2892 &feature_addsubiw,2892 &feature_addsubiw,
2893 &feature_ijmpcall,2893 &feature_ijmpcall,
2894 &feature_lpmx,2894 &feature_lpmx,
...@@ -2899,14 +2899,14 @@ pub const cpu_attiny261 = Cpu{...@@ -2899,14 +2899,14 @@ pub const cpu_attiny261 = Cpu{
2899 .name = "attiny261",2899 .name = "attiny261",
2900 .llvm_name = "attiny261",2900 .llvm_name = "attiny261",
2901 .dependencies = &[_]*const Feature {2901 .dependencies = &[_]*const Feature {
2902 &feature_sram,
2903 &feature_lpm,2902 &feature_lpm,
2904 &feature_lpmx,2903 &feature_sram,
2905 &feature_spm,
2906 &feature_addsubiw,2904 &feature_addsubiw,
2907 &feature_ijmpcall,
2908 &feature_break,
2909 &feature_movw,2905 &feature_movw,
2906 &feature_break,
2907 &feature_ijmpcall,
2908 &feature_lpmx,
2909 &feature_spm,
2910 },2910 },
2911};2911};
29122912
...@@ -2914,14 +2914,14 @@ pub const cpu_attiny261a = Cpu{...@@ -2914,14 +2914,14 @@ pub const cpu_attiny261a = Cpu{
2914 .name = "attiny261a",2914 .name = "attiny261a",
2915 .llvm_name = "attiny261a",2915 .llvm_name = "attiny261a",
2916 .dependencies = &[_]*const Feature {2916 .dependencies = &[_]*const Feature {
2917 &feature_sram,
2918 &feature_lpm,2917 &feature_lpm,
2919 &feature_lpmx,2918 &feature_sram,
2920 &feature_spm,
2921 &feature_addsubiw,2919 &feature_addsubiw,
2922 &feature_ijmpcall,
2923 &feature_break,
2924 &feature_movw,2920 &feature_movw,
2921 &feature_break,
2922 &feature_ijmpcall,
2923 &feature_lpmx,
2924 &feature_spm,
2925 },2925 },
2926};2926};
29272927
...@@ -2938,8 +2938,8 @@ pub const cpu_attiny4 = Cpu{...@@ -2938,8 +2938,8 @@ pub const cpu_attiny4 = Cpu{
2938 .llvm_name = "attiny4",2938 .llvm_name = "attiny4",
2939 .dependencies = &[_]*const Feature {2939 .dependencies = &[_]*const Feature {
2940 &feature_sram,2940 &feature_sram,
2941 &feature_tinyencoding,
2942 &feature_break,2941 &feature_break,
2942 &feature_tinyencoding,
2943 },2943 },
2944};2944};
29452945
...@@ -2948,8 +2948,8 @@ pub const cpu_attiny40 = Cpu{...@@ -2948,8 +2948,8 @@ pub const cpu_attiny40 = Cpu{
2948 .llvm_name = "attiny40",2948 .llvm_name = "attiny40",
2949 .dependencies = &[_]*const Feature {2949 .dependencies = &[_]*const Feature {
2950 &feature_sram,2950 &feature_sram,
2951 &feature_tinyencoding,
2952 &feature_break,2951 &feature_break,
2952 &feature_tinyencoding,
2953 },2953 },
2954};2954};
29552955
...@@ -2957,14 +2957,14 @@ pub const cpu_attiny4313 = Cpu{...@@ -2957,14 +2957,14 @@ pub const cpu_attiny4313 = Cpu{
2957 .name = "attiny4313",2957 .name = "attiny4313",
2958 .llvm_name = "attiny4313",2958 .llvm_name = "attiny4313",
2959 .dependencies = &[_]*const Feature {2959 .dependencies = &[_]*const Feature {
2960 &feature_sram,
2961 &feature_lpm,2960 &feature_lpm,
2962 &feature_lpmx,2961 &feature_sram,
2963 &feature_spm,
2964 &feature_addsubiw,2962 &feature_addsubiw,
2965 &feature_ijmpcall,
2966 &feature_break,
2967 &feature_movw,2963 &feature_movw,
2964 &feature_break,
2965 &feature_ijmpcall,
2966 &feature_lpmx,
2967 &feature_spm,
2968 },2968 },
2969};2969};
29702970
...@@ -2972,14 +2972,14 @@ pub const cpu_attiny43u = Cpu{...@@ -2972,14 +2972,14 @@ pub const cpu_attiny43u = Cpu{
2972 .name = "attiny43u",2972 .name = "attiny43u",
2973 .llvm_name = "attiny43u",2973 .llvm_name = "attiny43u",
2974 .dependencies = &[_]*const Feature {2974 .dependencies = &[_]*const Feature {
2975 &feature_sram,
2976 &feature_lpm,2975 &feature_lpm,
2977 &feature_lpmx,2976 &feature_sram,
2978 &feature_spm,
2979 &feature_addsubiw,2977 &feature_addsubiw,
2980 &feature_ijmpcall,
2981 &feature_break,
2982 &feature_movw,2978 &feature_movw,
2979 &feature_break,
2980 &feature_ijmpcall,
2981 &feature_lpmx,
2982 &feature_spm,
2983 },2983 },
2984};2984};
29852985
...@@ -2987,14 +2987,14 @@ pub const cpu_attiny44 = Cpu{...@@ -2987,14 +2987,14 @@ pub const cpu_attiny44 = Cpu{
2987 .name = "attiny44",2987 .name = "attiny44",
2988 .llvm_name = "attiny44",2988 .llvm_name = "attiny44",
2989 .dependencies = &[_]*const Feature {2989 .dependencies = &[_]*const Feature {
2990 &feature_sram,
2991 &feature_lpm,2990 &feature_lpm,
2992 &feature_lpmx,2991 &feature_sram,
2993 &feature_spm,
2994 &feature_addsubiw,2992 &feature_addsubiw,
2995 &feature_ijmpcall,
2996 &feature_break,
2997 &feature_movw,2993 &feature_movw,
2994 &feature_break,
2995 &feature_ijmpcall,
2996 &feature_lpmx,
2997 &feature_spm,
2998 },2998 },
2999};2999};
30003000
...@@ -3002,14 +3002,14 @@ pub const cpu_attiny44a = Cpu{...@@ -3002,14 +3002,14 @@ pub const cpu_attiny44a = Cpu{
3002 .name = "attiny44a",3002 .name = "attiny44a",
3003 .llvm_name = "attiny44a",3003 .llvm_name = "attiny44a",
3004 .dependencies = &[_]*const Feature {3004 .dependencies = &[_]*const Feature {
3005 &feature_sram,
3006 &feature_lpm,3005 &feature_lpm,
3007 &feature_lpmx,3006 &feature_sram,
3008 &feature_spm,
3009 &feature_addsubiw,3007 &feature_addsubiw,
3010 &feature_ijmpcall,
3011 &feature_break,
3012 &feature_movw,3008 &feature_movw,
3009 &feature_break,
3010 &feature_ijmpcall,
3011 &feature_lpmx,
3012 &feature_spm,
3013 },3013 },
3014};3014};
30153015
...@@ -3017,14 +3017,14 @@ pub const cpu_attiny45 = Cpu{...@@ -3017,14 +3017,14 @@ pub const cpu_attiny45 = Cpu{
3017 .name = "attiny45",3017 .name = "attiny45",
3018 .llvm_name = "attiny45",3018 .llvm_name = "attiny45",
3019 .dependencies = &[_]*const Feature {3019 .dependencies = &[_]*const Feature {
3020 &feature_sram,
3021 &feature_lpm,3020 &feature_lpm,
3022 &feature_lpmx,3021 &feature_sram,
3023 &feature_spm,
3024 &feature_addsubiw,3022 &feature_addsubiw,
3025 &feature_ijmpcall,
3026 &feature_break,
3027 &feature_movw,3023 &feature_movw,
3024 &feature_break,
3025 &feature_ijmpcall,
3026 &feature_lpmx,
3027 &feature_spm,
3028 },3028 },
3029};3029};
30303030
...@@ -3032,14 +3032,14 @@ pub const cpu_attiny461 = Cpu{...@@ -3032,14 +3032,14 @@ pub const cpu_attiny461 = Cpu{
3032 .name = "attiny461",3032 .name = "attiny461",
3033 .llvm_name = "attiny461",3033 .llvm_name = "attiny461",
3034 .dependencies = &[_]*const Feature {3034 .dependencies = &[_]*const Feature {
3035 &feature_sram,
3036 &feature_lpm,3035 &feature_lpm,
3037 &feature_lpmx,3036 &feature_sram,
3038 &feature_spm,
3039 &feature_addsubiw,3037 &feature_addsubiw,
3040 &feature_ijmpcall,
3041 &feature_break,
3042 &feature_movw,3038 &feature_movw,
3039 &feature_break,
3040 &feature_ijmpcall,
3041 &feature_lpmx,
3042 &feature_spm,
3043 },3043 },
3044};3044};
30453045
...@@ -3047,14 +3047,14 @@ pub const cpu_attiny461a = Cpu{...@@ -3047,14 +3047,14 @@ pub const cpu_attiny461a = Cpu{
3047 .name = "attiny461a",3047 .name = "attiny461a",
3048 .llvm_name = "attiny461a",3048 .llvm_name = "attiny461a",
3049 .dependencies = &[_]*const Feature {3049 .dependencies = &[_]*const Feature {
3050 &feature_sram,
3051 &feature_lpm,3050 &feature_lpm,
3052 &feature_lpmx,3051 &feature_sram,
3053 &feature_spm,
3054 &feature_addsubiw,3052 &feature_addsubiw,
3055 &feature_ijmpcall,
3056 &feature_break,
3057 &feature_movw,3053 &feature_movw,
3054 &feature_break,
3055 &feature_ijmpcall,
3056 &feature_lpmx,
3057 &feature_spm,
3058 },3058 },
3059};3059};
30603060
...@@ -3062,14 +3062,14 @@ pub const cpu_attiny48 = Cpu{...@@ -3062,14 +3062,14 @@ pub const cpu_attiny48 = Cpu{
3062 .name = "attiny48",3062 .name = "attiny48",
3063 .llvm_name = "attiny48",3063 .llvm_name = "attiny48",
3064 .dependencies = &[_]*const Feature {3064 .dependencies = &[_]*const Feature {
3065 &feature_sram,
3066 &feature_lpm,3065 &feature_lpm,
3067 &feature_lpmx,3066 &feature_sram,
3068 &feature_spm,
3069 &feature_addsubiw,3067 &feature_addsubiw,
3070 &feature_ijmpcall,
3071 &feature_break,
3072 &feature_movw,3068 &feature_movw,
3069 &feature_break,
3070 &feature_ijmpcall,
3071 &feature_lpmx,
3072 &feature_spm,
3073 },3073 },
3074};3074};
30753075
...@@ -3078,8 +3078,8 @@ pub const cpu_attiny5 = Cpu{...@@ -3078,8 +3078,8 @@ pub const cpu_attiny5 = Cpu{
3078 .llvm_name = "attiny5",3078 .llvm_name = "attiny5",
3079 .dependencies = &[_]*const Feature {3079 .dependencies = &[_]*const Feature {
3080 &feature_sram,3080 &feature_sram,
3081 &feature_tinyencoding,
3082 &feature_break,3081 &feature_break,
3082 &feature_tinyencoding,
3083 },3083 },
3084};3084};
30853085
...@@ -3087,14 +3087,14 @@ pub const cpu_attiny828 = Cpu{...@@ -3087,14 +3087,14 @@ pub const cpu_attiny828 = Cpu{
3087 .name = "attiny828",3087 .name = "attiny828",
3088 .llvm_name = "attiny828",3088 .llvm_name = "attiny828",
3089 .dependencies = &[_]*const Feature {3089 .dependencies = &[_]*const Feature {
3090 &feature_sram,
3091 &feature_lpm,3090 &feature_lpm,
3092 &feature_lpmx,3091 &feature_sram,
3093 &feature_spm,
3094 &feature_addsubiw,3092 &feature_addsubiw,
3095 &feature_ijmpcall,
3096 &feature_break,
3097 &feature_movw,3093 &feature_movw,
3094 &feature_break,
3095 &feature_ijmpcall,
3096 &feature_lpmx,
3097 &feature_spm,
3098 },3098 },
3099};3099};
31003100
...@@ -3102,14 +3102,14 @@ pub const cpu_attiny84 = Cpu{...@@ -3102,14 +3102,14 @@ pub const cpu_attiny84 = Cpu{
3102 .name = "attiny84",3102 .name = "attiny84",
3103 .llvm_name = "attiny84",3103 .llvm_name = "attiny84",
3104 .dependencies = &[_]*const Feature {3104 .dependencies = &[_]*const Feature {
3105 &feature_sram,
3106 &feature_lpm,3105 &feature_lpm,
3107 &feature_lpmx,3106 &feature_sram,
3108 &feature_spm,
3109 &feature_addsubiw,3107 &feature_addsubiw,
3110 &feature_ijmpcall,
3111 &feature_break,
3112 &feature_movw,3108 &feature_movw,
3109 &feature_break,
3110 &feature_ijmpcall,
3111 &feature_lpmx,
3112 &feature_spm,
3113 },3113 },
3114};3114};
31153115
...@@ -3117,14 +3117,14 @@ pub const cpu_attiny84a = Cpu{...@@ -3117,14 +3117,14 @@ pub const cpu_attiny84a = Cpu{
3117 .name = "attiny84a",3117 .name = "attiny84a",
3118 .llvm_name = "attiny84a",3118 .llvm_name = "attiny84a",
3119 .dependencies = &[_]*const Feature {3119 .dependencies = &[_]*const Feature {
3120 &feature_sram,
3121 &feature_lpm,3120 &feature_lpm,
3122 &feature_lpmx,3121 &feature_sram,
3123 &feature_spm,
3124 &feature_addsubiw,3122 &feature_addsubiw,
3125 &feature_ijmpcall,
3126 &feature_break,
3127 &feature_movw,3123 &feature_movw,
3124 &feature_break,
3125 &feature_ijmpcall,
3126 &feature_lpmx,
3127 &feature_spm,
3128 },3128 },
3129};3129};
31303130
...@@ -3132,14 +3132,14 @@ pub const cpu_attiny85 = Cpu{...@@ -3132,14 +3132,14 @@ pub const cpu_attiny85 = Cpu{
3132 .name = "attiny85",3132 .name = "attiny85",
3133 .llvm_name = "attiny85",3133 .llvm_name = "attiny85",
3134 .dependencies = &[_]*const Feature {3134 .dependencies = &[_]*const Feature {
3135 &feature_sram,
3136 &feature_lpm,3135 &feature_lpm,
3137 &feature_lpmx,3136 &feature_sram,
3138 &feature_spm,
3139 &feature_addsubiw,3137 &feature_addsubiw,
3140 &feature_ijmpcall,
3141 &feature_break,
3142 &feature_movw,3138 &feature_movw,
3139 &feature_break,
3140 &feature_ijmpcall,
3141 &feature_lpmx,
3142 &feature_spm,
3143 },3143 },
3144};3144};
31453145
...@@ -3147,14 +3147,14 @@ pub const cpu_attiny861 = Cpu{...@@ -3147,14 +3147,14 @@ pub const cpu_attiny861 = Cpu{
3147 .name = "attiny861",3147 .name = "attiny861",
3148 .llvm_name = "attiny861",3148 .llvm_name = "attiny861",
3149 .dependencies = &[_]*const Feature {3149 .dependencies = &[_]*const Feature {
3150 &feature_sram,
3151 &feature_lpm,3150 &feature_lpm,
3152 &feature_lpmx,3151 &feature_sram,
3153 &feature_spm,
3154 &feature_addsubiw,3152 &feature_addsubiw,
3155 &feature_ijmpcall,
3156 &feature_break,
3157 &feature_movw,3153 &feature_movw,
3154 &feature_break,
3155 &feature_ijmpcall,
3156 &feature_lpmx,
3157 &feature_spm,
3158 },3158 },
3159};3159};
31603160
...@@ -3162,14 +3162,14 @@ pub const cpu_attiny861a = Cpu{...@@ -3162,14 +3162,14 @@ pub const cpu_attiny861a = Cpu{
3162 .name = "attiny861a",3162 .name = "attiny861a",
3163 .llvm_name = "attiny861a",3163 .llvm_name = "attiny861a",
3164 .dependencies = &[_]*const Feature {3164 .dependencies = &[_]*const Feature {
3165 &feature_sram,
3166 &feature_lpm,3165 &feature_lpm,
3167 &feature_lpmx,3166 &feature_sram,
3168 &feature_spm,
3169 &feature_addsubiw,3167 &feature_addsubiw,
3170 &feature_ijmpcall,
3171 &feature_break,
3172 &feature_movw,3168 &feature_movw,
3169 &feature_break,
3170 &feature_ijmpcall,
3171 &feature_lpmx,
3172 &feature_spm,
3173 },3173 },
3174};3174};
31753175
...@@ -3177,14 +3177,14 @@ pub const cpu_attiny87 = Cpu{...@@ -3177,14 +3177,14 @@ pub const cpu_attiny87 = Cpu{
3177 .name = "attiny87",3177 .name = "attiny87",
3178 .llvm_name = "attiny87",3178 .llvm_name = "attiny87",
3179 .dependencies = &[_]*const Feature {3179 .dependencies = &[_]*const Feature {
3180 &feature_sram,
3181 &feature_lpm,3180 &feature_lpm,
3182 &feature_lpmx,3181 &feature_sram,
3183 &feature_spm,
3184 &feature_addsubiw,3182 &feature_addsubiw,
3185 &feature_ijmpcall,
3186 &feature_break,
3187 &feature_movw,3183 &feature_movw,
3184 &feature_break,
3185 &feature_ijmpcall,
3186 &feature_lpmx,
3187 &feature_spm,
3188 },3188 },
3189};3189};
31903190
...@@ -3192,14 +3192,14 @@ pub const cpu_attiny88 = Cpu{...@@ -3192,14 +3192,14 @@ pub const cpu_attiny88 = Cpu{
3192 .name = "attiny88",3192 .name = "attiny88",
3193 .llvm_name = "attiny88",3193 .llvm_name = "attiny88",
3194 .dependencies = &[_]*const Feature {3194 .dependencies = &[_]*const Feature {
3195 &feature_sram,
3196 &feature_lpm,3195 &feature_lpm,
3197 &feature_lpmx,3196 &feature_sram,
3198 &feature_spm,
3199 &feature_addsubiw,3197 &feature_addsubiw,
3200 &feature_ijmpcall,
3201 &feature_break,
3202 &feature_movw,3198 &feature_movw,
3199 &feature_break,
3200 &feature_ijmpcall,
3201 &feature_lpmx,
3202 &feature_spm,
3203 },3203 },
3204};3204};
32053205
...@@ -3208,8 +3208,8 @@ pub const cpu_attiny9 = Cpu{...@@ -3208,8 +3208,8 @@ pub const cpu_attiny9 = Cpu{
3208 .llvm_name = "attiny9",3208 .llvm_name = "attiny9",
3209 .dependencies = &[_]*const Feature {3209 .dependencies = &[_]*const Feature {
3210 &feature_sram,3210 &feature_sram,
3211 &feature_tinyencoding,
3212 &feature_break,3211 &feature_break,
3212 &feature_tinyencoding,
3213 },3213 },
3214};3214};
32153215
...@@ -3217,21 +3217,21 @@ pub const cpu_atxmega128a1 = Cpu{...@@ -3217,21 +3217,21 @@ pub const cpu_atxmega128a1 = Cpu{
3217 .name = "atxmega128a1",3217 .name = "atxmega128a1",
3218 .llvm_name = "atxmega128a1",3218 .llvm_name = "atxmega128a1",
3219 .dependencies = &[_]*const Feature {3219 .dependencies = &[_]*const Feature {
3220 &feature_des,
3221 &feature_sram,
3222 &feature_eijmpcall,3220 &feature_eijmpcall,
3223 &feature_jmpcall,3221 &feature_lpm,
3224 &feature_mul,3222 &feature_sram,
3223 &feature_addsubiw,
3224 &feature_movw,
3225 &feature_elpm,3225 &feature_elpm,
3226 &feature_break,
3227 &feature_ijmpcall,
3228 &feature_des,
3226 &feature_spmx,3229 &feature_spmx,
3227 &feature_lpm,
3228 &feature_lpmx,3230 &feature_lpmx,
3231 &feature_jmpcall,
3229 &feature_spm,3232 &feature_spm,
3230 &feature_addsubiw,
3231 &feature_ijmpcall,
3232 &feature_elpmx,3233 &feature_elpmx,
3233 &feature_break,3234 &feature_mul,
3234 &feature_movw,
3235 },3235 },
3236};3236};
32373237
...@@ -3239,22 +3239,22 @@ pub const cpu_atxmega128a1u = Cpu{...@@ -3239,22 +3239,22 @@ pub const cpu_atxmega128a1u = Cpu{
3239 .name = "atxmega128a1u",3239 .name = "atxmega128a1u",
3240 .llvm_name = "atxmega128a1u",3240 .llvm_name = "atxmega128a1u",
3241 .dependencies = &[_]*const Feature {3241 .dependencies = &[_]*const Feature {
3242 &feature_des,3242 &feature_eijmpcall,
3243 &feature_lpm,
3243 &feature_sram,3244 &feature_sram,
3244 &feature_movw,3245 &feature_movw,
3245 &feature_jmpcall,3246 &feature_addsubiw,
3246 &feature_mul,3247 &feature_rmw,
3247 &feature_elpm,3248 &feature_elpm,
3249 &feature_break,
3250 &feature_ijmpcall,
3251 &feature_des,
3248 &feature_spmx,3252 &feature_spmx,
3249 &feature_lpm,
3250 &feature_lpmx,3253 &feature_lpmx,
3254 &feature_jmpcall,
3251 &feature_spm,3255 &feature_spm,
3252 &feature_addsubiw,
3253 &feature_rmw,
3254 &feature_ijmpcall,
3255 &feature_eijmpcall,
3256 &feature_break,
3257 &feature_elpmx,3256 &feature_elpmx,
3257 &feature_mul,
3258 },3258 },
3259};3259};
32603260
...@@ -3262,21 +3262,21 @@ pub const cpu_atxmega128a3 = Cpu{...@@ -3262,21 +3262,21 @@ pub const cpu_atxmega128a3 = Cpu{
3262 .name = "atxmega128a3",3262 .name = "atxmega128a3",
3263 .llvm_name = "atxmega128a3",3263 .llvm_name = "atxmega128a3",
3264 .dependencies = &[_]*const Feature {3264 .dependencies = &[_]*const Feature {
3265 &feature_des,
3266 &feature_sram,
3267 &feature_eijmpcall,3265 &feature_eijmpcall,
3268 &feature_jmpcall,3266 &feature_lpm,
3269 &feature_mul,3267 &feature_sram,
3268 &feature_addsubiw,
3269 &feature_movw,
3270 &feature_elpm,3270 &feature_elpm,
3271 &feature_break,
3272 &feature_ijmpcall,
3273 &feature_des,
3271 &feature_spmx,3274 &feature_spmx,
3272 &feature_lpm,
3273 &feature_lpmx,3275 &feature_lpmx,
3276 &feature_jmpcall,
3274 &feature_spm,3277 &feature_spm,
3275 &feature_addsubiw,
3276 &feature_ijmpcall,
3277 &feature_elpmx,3278 &feature_elpmx,
3278 &feature_break,3279 &feature_mul,
3279 &feature_movw,
3280 },3280 },
3281};3281};
32823282
...@@ -3284,22 +3284,22 @@ pub const cpu_atxmega128a3u = Cpu{...@@ -3284,22 +3284,22 @@ pub const cpu_atxmega128a3u = Cpu{
3284 .name = "atxmega128a3u",3284 .name = "atxmega128a3u",
3285 .llvm_name = "atxmega128a3u",3285 .llvm_name = "atxmega128a3u",
3286 .dependencies = &[_]*const Feature {3286 .dependencies = &[_]*const Feature {
3287 &feature_des,3287 &feature_eijmpcall,
3288 &feature_lpm,
3288 &feature_sram,3289 &feature_sram,
3289 &feature_movw,3290 &feature_movw,
3290 &feature_jmpcall,3291 &feature_addsubiw,
3291 &feature_mul,3292 &feature_rmw,
3292 &feature_elpm,3293 &feature_elpm,
3294 &feature_break,
3295 &feature_ijmpcall,
3296 &feature_des,
3293 &feature_spmx,3297 &feature_spmx,
3294 &feature_lpm,
3295 &feature_lpmx,3298 &feature_lpmx,
3299 &feature_jmpcall,
3296 &feature_spm,3300 &feature_spm,
3297 &feature_addsubiw,
3298 &feature_rmw,
3299 &feature_ijmpcall,
3300 &feature_eijmpcall,
3301 &feature_break,
3302 &feature_elpmx,3301 &feature_elpmx,
3302 &feature_mul,
3303 },3303 },
3304};3304};
33053305
...@@ -3307,22 +3307,22 @@ pub const cpu_atxmega128a4u = Cpu{...@@ -3307,22 +3307,22 @@ pub const cpu_atxmega128a4u = Cpu{
3307 .name = "atxmega128a4u",3307 .name = "atxmega128a4u",
3308 .llvm_name = "atxmega128a4u",3308 .llvm_name = "atxmega128a4u",
3309 .dependencies = &[_]*const Feature {3309 .dependencies = &[_]*const Feature {
3310 &feature_des,3310 &feature_eijmpcall,
3311 &feature_lpm,
3311 &feature_sram,3312 &feature_sram,
3312 &feature_movw,3313 &feature_movw,
3313 &feature_jmpcall,3314 &feature_addsubiw,
3314 &feature_mul,3315 &feature_rmw,
3315 &feature_elpm,3316 &feature_elpm,
3317 &feature_break,
3318 &feature_ijmpcall,
3319 &feature_des,
3316 &feature_spmx,3320 &feature_spmx,
3317 &feature_lpm,
3318 &feature_lpmx,3321 &feature_lpmx,
3322 &feature_jmpcall,
3319 &feature_spm,3323 &feature_spm,
3320 &feature_addsubiw,
3321 &feature_rmw,
3322 &feature_ijmpcall,
3323 &feature_eijmpcall,
3324 &feature_break,
3325 &feature_elpmx,3324 &feature_elpmx,
3325 &feature_mul,
3326 },3326 },
3327};3327};
33283328
...@@ -3330,22 +3330,22 @@ pub const cpu_atxmega128b1 = Cpu{...@@ -3330,22 +3330,22 @@ pub const cpu_atxmega128b1 = Cpu{
3330 .name = "atxmega128b1",3330 .name = "atxmega128b1",
3331 .llvm_name = "atxmega128b1",3331 .llvm_name = "atxmega128b1",
3332 .dependencies = &[_]*const Feature {3332 .dependencies = &[_]*const Feature {
3333 &feature_des,3333 &feature_eijmpcall,
3334 &feature_lpm,
3334 &feature_sram,3335 &feature_sram,
3335 &feature_movw,3336 &feature_movw,
3336 &feature_jmpcall,3337 &feature_addsubiw,
3337 &feature_mul,3338 &feature_rmw,
3338 &feature_elpm,3339 &feature_elpm,
3340 &feature_break,
3341 &feature_ijmpcall,
3342 &feature_des,
3339 &feature_spmx,3343 &feature_spmx,
3340 &feature_lpm,
3341 &feature_lpmx,3344 &feature_lpmx,
3345 &feature_jmpcall,
3342 &feature_spm,3346 &feature_spm,
3343 &feature_addsubiw,
3344 &feature_rmw,
3345 &feature_ijmpcall,
3346 &feature_eijmpcall,
3347 &feature_break,
3348 &feature_elpmx,3347 &feature_elpmx,
3348 &feature_mul,
3349 },3349 },
3350};3350};
33513351
...@@ -3353,22 +3353,22 @@ pub const cpu_atxmega128b3 = Cpu{...@@ -3353,22 +3353,22 @@ pub const cpu_atxmega128b3 = Cpu{
3353 .name = "atxmega128b3",3353 .name = "atxmega128b3",
3354 .llvm_name = "atxmega128b3",3354 .llvm_name = "atxmega128b3",
3355 .dependencies = &[_]*const Feature {3355 .dependencies = &[_]*const Feature {
3356 &feature_des,3356 &feature_eijmpcall,
3357 &feature_lpm,
3357 &feature_sram,3358 &feature_sram,
3358 &feature_movw,3359 &feature_movw,
3359 &feature_jmpcall,3360 &feature_addsubiw,
3360 &feature_mul,3361 &feature_rmw,
3361 &feature_elpm,3362 &feature_elpm,
3363 &feature_break,
3364 &feature_ijmpcall,
3365 &feature_des,
3362 &feature_spmx,3366 &feature_spmx,
3363 &feature_lpm,
3364 &feature_lpmx,3367 &feature_lpmx,
3368 &feature_jmpcall,
3365 &feature_spm,3369 &feature_spm,
3366 &feature_addsubiw,
3367 &feature_rmw,
3368 &feature_ijmpcall,
3369 &feature_eijmpcall,
3370 &feature_break,
3371 &feature_elpmx,3370 &feature_elpmx,
3371 &feature_mul,
3372 },3372 },
3373};3373};
33743374
...@@ -3376,22 +3376,22 @@ pub const cpu_atxmega128c3 = Cpu{...@@ -3376,22 +3376,22 @@ pub const cpu_atxmega128c3 = Cpu{
3376 .name = "atxmega128c3",3376 .name = "atxmega128c3",
3377 .llvm_name = "atxmega128c3",3377 .llvm_name = "atxmega128c3",
3378 .dependencies = &[_]*const Feature {3378 .dependencies = &[_]*const Feature {
3379 &feature_des,3379 &feature_eijmpcall,
3380 &feature_lpm,
3380 &feature_sram,3381 &feature_sram,
3381 &feature_movw,3382 &feature_movw,
3382 &feature_jmpcall,3383 &feature_addsubiw,
3383 &feature_mul,3384 &feature_rmw,
3384 &feature_elpm,3385 &feature_elpm,
3386 &feature_break,
3387 &feature_ijmpcall,
3388 &feature_des,
3385 &feature_spmx,3389 &feature_spmx,
3386 &feature_lpm,
3387 &feature_lpmx,3390 &feature_lpmx,
3391 &feature_jmpcall,
3388 &feature_spm,3392 &feature_spm,
3389 &feature_addsubiw,
3390 &feature_rmw,
3391 &feature_ijmpcall,
3392 &feature_eijmpcall,
3393 &feature_break,
3394 &feature_elpmx,3393 &feature_elpmx,
3394 &feature_mul,
3395 },3395 },
3396};3396};
33973397
...@@ -3399,21 +3399,21 @@ pub const cpu_atxmega128d3 = Cpu{...@@ -3399,21 +3399,21 @@ pub const cpu_atxmega128d3 = Cpu{
3399 .name = "atxmega128d3",3399 .name = "atxmega128d3",
3400 .llvm_name = "atxmega128d3",3400 .llvm_name = "atxmega128d3",
3401 .dependencies = &[_]*const Feature {3401 .dependencies = &[_]*const Feature {
3402 &feature_des,
3403 &feature_sram,
3404 &feature_eijmpcall,3402 &feature_eijmpcall,
3405 &feature_jmpcall,3403 &feature_lpm,
3406 &feature_mul,3404 &feature_sram,
3405 &feature_addsubiw,
3406 &feature_movw,
3407 &feature_elpm,3407 &feature_elpm,
3408 &feature_break,
3409 &feature_ijmpcall,
3410 &feature_des,
3408 &feature_spmx,3411 &feature_spmx,
3409 &feature_lpm,
3410 &feature_lpmx,3412 &feature_lpmx,
3413 &feature_jmpcall,
3411 &feature_spm,3414 &feature_spm,
3412 &feature_addsubiw,
3413 &feature_ijmpcall,
3414 &feature_elpmx,3415 &feature_elpmx,
3415 &feature_break,3416 &feature_mul,
3416 &feature_movw,
3417 },3417 },
3418};3418};
34193419
...@@ -3421,21 +3421,21 @@ pub const cpu_atxmega128d4 = Cpu{...@@ -3421,21 +3421,21 @@ pub const cpu_atxmega128d4 = Cpu{
3421 .name = "atxmega128d4",3421 .name = "atxmega128d4",
3422 .llvm_name = "atxmega128d4",3422 .llvm_name = "atxmega128d4",
3423 .dependencies = &[_]*const Feature {3423 .dependencies = &[_]*const Feature {
3424 &feature_des,
3425 &feature_sram,
3426 &feature_eijmpcall,3424 &feature_eijmpcall,
3427 &feature_jmpcall,3425 &feature_lpm,
3428 &feature_mul,3426 &feature_sram,
3427 &feature_addsubiw,
3428 &feature_movw,
3429 &feature_elpm,3429 &feature_elpm,
3430 &feature_break,
3431 &feature_ijmpcall,
3432 &feature_des,
3430 &feature_spmx,3433 &feature_spmx,
3431 &feature_lpm,
3432 &feature_lpmx,3434 &feature_lpmx,
3435 &feature_jmpcall,
3433 &feature_spm,3436 &feature_spm,
3434 &feature_addsubiw,
3435 &feature_ijmpcall,
3436 &feature_elpmx,3437 &feature_elpmx,
3437 &feature_break,3438 &feature_mul,
3438 &feature_movw,
3439 },3439 },
3440};3440};
34413441
...@@ -3443,21 +3443,21 @@ pub const cpu_atxmega16a4 = Cpu{...@@ -3443,21 +3443,21 @@ pub const cpu_atxmega16a4 = Cpu{
3443 .name = "atxmega16a4",3443 .name = "atxmega16a4",
3444 .llvm_name = "atxmega16a4",3444 .llvm_name = "atxmega16a4",
3445 .dependencies = &[_]*const Feature {3445 .dependencies = &[_]*const Feature {
3446 &feature_des,
3447 &feature_sram,
3448 &feature_eijmpcall,3446 &feature_eijmpcall,
3449 &feature_jmpcall,3447 &feature_lpm,
3450 &feature_mul,3448 &feature_sram,
3449 &feature_addsubiw,
3450 &feature_movw,
3451 &feature_elpm,3451 &feature_elpm,
3452 &feature_break,
3453 &feature_ijmpcall,
3454 &feature_des,
3452 &feature_spmx,3455 &feature_spmx,
3453 &feature_lpm,
3454 &feature_lpmx,3456 &feature_lpmx,
3457 &feature_jmpcall,
3455 &feature_spm,3458 &feature_spm,
3456 &feature_addsubiw,
3457 &feature_ijmpcall,
3458 &feature_elpmx,3459 &feature_elpmx,
3459 &feature_break,3460 &feature_mul,
3460 &feature_movw,
3461 },3461 },
3462};3462};
34633463
...@@ -3465,22 +3465,22 @@ pub const cpu_atxmega16a4u = Cpu{...@@ -3465,22 +3465,22 @@ pub const cpu_atxmega16a4u = Cpu{
3465 .name = "atxmega16a4u",3465 .name = "atxmega16a4u",
3466 .llvm_name = "atxmega16a4u",3466 .llvm_name = "atxmega16a4u",
3467 .dependencies = &[_]*const Feature {3467 .dependencies = &[_]*const Feature {
3468 &feature_des,3468 &feature_eijmpcall,
3469 &feature_lpm,
3469 &feature_sram,3470 &feature_sram,
3470 &feature_movw,3471 &feature_movw,
3471 &feature_jmpcall,3472 &feature_addsubiw,
3472 &feature_mul,3473 &feature_rmw,
3473 &feature_elpm,3474 &feature_elpm,
3475 &feature_break,
3476 &feature_ijmpcall,
3477 &feature_des,
3474 &feature_spmx,3478 &feature_spmx,
3475 &feature_lpm,
3476 &feature_lpmx,3479 &feature_lpmx,
3480 &feature_jmpcall,
3477 &feature_spm,3481 &feature_spm,
3478 &feature_addsubiw,
3479 &feature_rmw,
3480 &feature_ijmpcall,
3481 &feature_eijmpcall,
3482 &feature_break,
3483 &feature_elpmx,3482 &feature_elpmx,
3483 &feature_mul,
3484 },3484 },
3485};3485};
34863486
...@@ -3488,22 +3488,22 @@ pub const cpu_atxmega16c4 = Cpu{...@@ -3488,22 +3488,22 @@ pub const cpu_atxmega16c4 = Cpu{
3488 .name = "atxmega16c4",3488 .name = "atxmega16c4",
3489 .llvm_name = "atxmega16c4",3489 .llvm_name = "atxmega16c4",
3490 .dependencies = &[_]*const Feature {3490 .dependencies = &[_]*const Feature {
3491 &feature_des,3491 &feature_eijmpcall,
3492 &feature_lpm,
3492 &feature_sram,3493 &feature_sram,
3493 &feature_movw,3494 &feature_movw,
3494 &feature_jmpcall,3495 &feature_addsubiw,
3495 &feature_mul,3496 &feature_rmw,
3496 &feature_elpm,3497 &feature_elpm,
3498 &feature_break,
3499 &feature_ijmpcall,
3500 &feature_des,
3497 &feature_spmx,3501 &feature_spmx,
3498 &feature_lpm,
3499 &feature_lpmx,3502 &feature_lpmx,
3503 &feature_jmpcall,
3500 &feature_spm,3504 &feature_spm,
3501 &feature_addsubiw,
3502 &feature_rmw,
3503 &feature_ijmpcall,
3504 &feature_eijmpcall,
3505 &feature_break,
3506 &feature_elpmx,3505 &feature_elpmx,
3506 &feature_mul,
3507 },3507 },
3508};3508};
35093509
...@@ -3511,21 +3511,21 @@ pub const cpu_atxmega16d4 = Cpu{...@@ -3511,21 +3511,21 @@ pub const cpu_atxmega16d4 = Cpu{
3511 .name = "atxmega16d4",3511 .name = "atxmega16d4",
3512 .llvm_name = "atxmega16d4",3512 .llvm_name = "atxmega16d4",
3513 .dependencies = &[_]*const Feature {3513 .dependencies = &[_]*const Feature {
3514 &feature_des,
3515 &feature_sram,
3516 &feature_eijmpcall,3514 &feature_eijmpcall,
3517 &feature_jmpcall,3515 &feature_lpm,
3518 &feature_mul,3516 &feature_sram,
3517 &feature_addsubiw,
3518 &feature_movw,
3519 &feature_elpm,3519 &feature_elpm,
3520 &feature_break,
3521 &feature_ijmpcall,
3522 &feature_des,
3520 &feature_spmx,3523 &feature_spmx,
3521 &feature_lpm,
3522 &feature_lpmx,3524 &feature_lpmx,
3525 &feature_jmpcall,
3523 &feature_spm,3526 &feature_spm,
3524 &feature_addsubiw,
3525 &feature_ijmpcall,
3526 &feature_elpmx,3527 &feature_elpmx,
3527 &feature_break,3528 &feature_mul,
3528 &feature_movw,
3529 },3529 },
3530};3530};
35313531
...@@ -3533,21 +3533,21 @@ pub const cpu_atxmega16e5 = Cpu{...@@ -3533,21 +3533,21 @@ pub const cpu_atxmega16e5 = Cpu{
3533 .name = "atxmega16e5",3533 .name = "atxmega16e5",
3534 .llvm_name = "atxmega16e5",3534 .llvm_name = "atxmega16e5",
3535 .dependencies = &[_]*const Feature {3535 .dependencies = &[_]*const Feature {
3536 &feature_des,
3537 &feature_sram,
3538 &feature_eijmpcall,3536 &feature_eijmpcall,
3539 &feature_jmpcall,3537 &feature_lpm,
3540 &feature_mul,3538 &feature_sram,
3539 &feature_addsubiw,
3540 &feature_movw,
3541 &feature_elpm,3541 &feature_elpm,
3542 &feature_break,
3543 &feature_ijmpcall,
3544 &feature_des,
3542 &feature_spmx,3545 &feature_spmx,
3543 &feature_lpm,
3544 &feature_lpmx,3546 &feature_lpmx,
3547 &feature_jmpcall,
3545 &feature_spm,3548 &feature_spm,
3546 &feature_addsubiw,
3547 &feature_ijmpcall,
3548 &feature_elpmx,3549 &feature_elpmx,
3549 &feature_break,3550 &feature_mul,
3550 &feature_movw,
3551 },3551 },
3552};3552};
35533553
...@@ -3555,21 +3555,21 @@ pub const cpu_atxmega192a3 = Cpu{...@@ -3555,21 +3555,21 @@ pub const cpu_atxmega192a3 = Cpu{
3555 .name = "atxmega192a3",3555 .name = "atxmega192a3",
3556 .llvm_name = "atxmega192a3",3556 .llvm_name = "atxmega192a3",
3557 .dependencies = &[_]*const Feature {3557 .dependencies = &[_]*const Feature {
3558 &feature_des,
3559 &feature_sram,
3560 &feature_eijmpcall,3558 &feature_eijmpcall,
3561 &feature_jmpcall,3559 &feature_lpm,
3562 &feature_mul,3560 &feature_sram,
3561 &feature_addsubiw,
3562 &feature_movw,
3563 &feature_elpm,3563 &feature_elpm,
3564 &feature_break,
3565 &feature_ijmpcall,
3566 &feature_des,
3564 &feature_spmx,3567 &feature_spmx,
3565 &feature_lpm,
3566 &feature_lpmx,3568 &feature_lpmx,
3569 &feature_jmpcall,
3567 &feature_spm,3570 &feature_spm,
3568 &feature_addsubiw,
3569 &feature_ijmpcall,
3570 &feature_elpmx,3571 &feature_elpmx,
3571 &feature_break,3572 &feature_mul,
3572 &feature_movw,
3573 },3573 },
3574};3574};
35753575
...@@ -3577,22 +3577,22 @@ pub const cpu_atxmega192a3u = Cpu{...@@ -3577,22 +3577,22 @@ pub const cpu_atxmega192a3u = Cpu{
3577 .name = "atxmega192a3u",3577 .name = "atxmega192a3u",
3578 .llvm_name = "atxmega192a3u",3578 .llvm_name = "atxmega192a3u",
3579 .dependencies = &[_]*const Feature {3579 .dependencies = &[_]*const Feature {
3580 &feature_des,3580 &feature_eijmpcall,
3581 &feature_lpm,
3581 &feature_sram,3582 &feature_sram,
3582 &feature_movw,3583 &feature_movw,
3583 &feature_jmpcall,3584 &feature_addsubiw,
3584 &feature_mul,3585 &feature_rmw,
3585 &feature_elpm,3586 &feature_elpm,
3587 &feature_break,
3588 &feature_ijmpcall,
3589 &feature_des,
3586 &feature_spmx,3590 &feature_spmx,
3587 &feature_lpm,
3588 &feature_lpmx,3591 &feature_lpmx,
3592 &feature_jmpcall,
3589 &feature_spm,3593 &feature_spm,
3590 &feature_addsubiw,
3591 &feature_rmw,
3592 &feature_ijmpcall,
3593 &feature_eijmpcall,
3594 &feature_break,
3595 &feature_elpmx,3594 &feature_elpmx,
3595 &feature_mul,
3596 },3596 },
3597};3597};
35983598
...@@ -3600,22 +3600,22 @@ pub const cpu_atxmega192c3 = Cpu{...@@ -3600,22 +3600,22 @@ pub const cpu_atxmega192c3 = Cpu{
3600 .name = "atxmega192c3",3600 .name = "atxmega192c3",
3601 .llvm_name = "atxmega192c3",3601 .llvm_name = "atxmega192c3",
3602 .dependencies = &[_]*const Feature {3602 .dependencies = &[_]*const Feature {
3603 &feature_des,3603 &feature_eijmpcall,
3604 &feature_lpm,
3604 &feature_sram,3605 &feature_sram,
3605 &feature_movw,3606 &feature_movw,
3606 &feature_jmpcall,3607 &feature_addsubiw,
3607 &feature_mul,3608 &feature_rmw,
3608 &feature_elpm,3609 &feature_elpm,
3610 &feature_break,
3611 &feature_ijmpcall,
3612 &feature_des,
3609 &feature_spmx,3613 &feature_spmx,
3610 &feature_lpm,
3611 &feature_lpmx,3614 &feature_lpmx,
3615 &feature_jmpcall,
3612 &feature_spm,3616 &feature_spm,
3613 &feature_addsubiw,
3614 &feature_rmw,
3615 &feature_ijmpcall,
3616 &feature_eijmpcall,
3617 &feature_break,
3618 &feature_elpmx,3617 &feature_elpmx,
3618 &feature_mul,
3619 },3619 },
3620};3620};
36213621
...@@ -3623,21 +3623,21 @@ pub const cpu_atxmega192d3 = Cpu{...@@ -3623,21 +3623,21 @@ pub const cpu_atxmega192d3 = Cpu{
3623 .name = "atxmega192d3",3623 .name = "atxmega192d3",
3624 .llvm_name = "atxmega192d3",3624 .llvm_name = "atxmega192d3",
3625 .dependencies = &[_]*const Feature {3625 .dependencies = &[_]*const Feature {
3626 &feature_des,
3627 &feature_sram,
3628 &feature_eijmpcall,3626 &feature_eijmpcall,
3629 &feature_jmpcall,3627 &feature_lpm,
3630 &feature_mul,3628 &feature_sram,
3629 &feature_addsubiw,
3630 &feature_movw,
3631 &feature_elpm,3631 &feature_elpm,
3632 &feature_break,
3633 &feature_ijmpcall,
3634 &feature_des,
3632 &feature_spmx,3635 &feature_spmx,
3633 &feature_lpm,
3634 &feature_lpmx,3636 &feature_lpmx,
3637 &feature_jmpcall,
3635 &feature_spm,3638 &feature_spm,
3636 &feature_addsubiw,
3637 &feature_ijmpcall,
3638 &feature_elpmx,3639 &feature_elpmx,
3639 &feature_break,3640 &feature_mul,
3640 &feature_movw,
3641 },3641 },
3642};3642};
36433643
...@@ -3645,21 +3645,21 @@ pub const cpu_atxmega256a3 = Cpu{...@@ -3645,21 +3645,21 @@ pub const cpu_atxmega256a3 = Cpu{
3645 .name = "atxmega256a3",3645 .name = "atxmega256a3",
3646 .llvm_name = "atxmega256a3",3646 .llvm_name = "atxmega256a3",
3647 .dependencies = &[_]*const Feature {3647 .dependencies = &[_]*const Feature {
3648 &feature_des,
3649 &feature_sram,
3650 &feature_eijmpcall,3648 &feature_eijmpcall,
3651 &feature_jmpcall,3649 &feature_lpm,
3652 &feature_mul,3650 &feature_sram,
3651 &feature_addsubiw,
3652 &feature_movw,
3653 &feature_elpm,3653 &feature_elpm,
3654 &feature_break,
3655 &feature_ijmpcall,
3656 &feature_des,
3654 &feature_spmx,3657 &feature_spmx,
3655 &feature_lpm,
3656 &feature_lpmx,3658 &feature_lpmx,
3659 &feature_jmpcall,
3657 &feature_spm,3660 &feature_spm,
3658 &feature_addsubiw,
3659 &feature_ijmpcall,
3660 &feature_elpmx,3661 &feature_elpmx,
3661 &feature_break,3662 &feature_mul,
3662 &feature_movw,
3663 },3663 },
3664};3664};
36653665
...@@ -3667,21 +3667,21 @@ pub const cpu_atxmega256a3b = Cpu{...@@ -3667,21 +3667,21 @@ pub const cpu_atxmega256a3b = Cpu{
3667 .name = "atxmega256a3b",3667 .name = "atxmega256a3b",
3668 .llvm_name = "atxmega256a3b",3668 .llvm_name = "atxmega256a3b",
3669 .dependencies = &[_]*const Feature {3669 .dependencies = &[_]*const Feature {
3670 &feature_des,
3671 &feature_sram,
3672 &feature_eijmpcall,3670 &feature_eijmpcall,
3673 &feature_jmpcall,3671 &feature_lpm,
3674 &feature_mul,3672 &feature_sram,
3673 &feature_addsubiw,
3674 &feature_movw,
3675 &feature_elpm,3675 &feature_elpm,
3676 &feature_break,
3677 &feature_ijmpcall,
3678 &feature_des,
3676 &feature_spmx,3679 &feature_spmx,
3677 &feature_lpm,
3678 &feature_lpmx,3680 &feature_lpmx,
3681 &feature_jmpcall,
3679 &feature_spm,3682 &feature_spm,
3680 &feature_addsubiw,
3681 &feature_ijmpcall,
3682 &feature_elpmx,3683 &feature_elpmx,
3683 &feature_break,3684 &feature_mul,
3684 &feature_movw,
3685 },3685 },
3686};3686};
36873687
...@@ -3689,22 +3689,22 @@ pub const cpu_atxmega256a3bu = Cpu{...@@ -3689,22 +3689,22 @@ pub const cpu_atxmega256a3bu = Cpu{
3689 .name = "atxmega256a3bu",3689 .name = "atxmega256a3bu",
3690 .llvm_name = "atxmega256a3bu",3690 .llvm_name = "atxmega256a3bu",
3691 .dependencies = &[_]*const Feature {3691 .dependencies = &[_]*const Feature {
3692 &feature_des,3692 &feature_eijmpcall,
3693 &feature_lpm,
3693 &feature_sram,3694 &feature_sram,
3694 &feature_movw,3695 &feature_movw,
3695 &feature_jmpcall,3696 &feature_addsubiw,
3696 &feature_mul,3697 &feature_rmw,
3697 &feature_elpm,3698 &feature_elpm,
3699 &feature_break,
3700 &feature_ijmpcall,
3701 &feature_des,
3698 &feature_spmx,3702 &feature_spmx,
3699 &feature_lpm,
3700 &feature_lpmx,3703 &feature_lpmx,
3704 &feature_jmpcall,
3701 &feature_spm,3705 &feature_spm,
3702 &feature_addsubiw,
3703 &feature_rmw,
3704 &feature_ijmpcall,
3705 &feature_eijmpcall,
3706 &feature_break,
3707 &feature_elpmx,3706 &feature_elpmx,
3707 &feature_mul,
3708 },3708 },
3709};3709};
37103710
...@@ -3712,22 +3712,22 @@ pub const cpu_atxmega256a3u = Cpu{...@@ -3712,22 +3712,22 @@ pub const cpu_atxmega256a3u = Cpu{
3712 .name = "atxmega256a3u",3712 .name = "atxmega256a3u",
3713 .llvm_name = "atxmega256a3u",3713 .llvm_name = "atxmega256a3u",
3714 .dependencies = &[_]*const Feature {3714 .dependencies = &[_]*const Feature {
3715 &feature_des,3715 &feature_eijmpcall,
3716 &feature_lpm,
3716 &feature_sram,3717 &feature_sram,
3717 &feature_movw,3718 &feature_movw,
3718 &feature_jmpcall,3719 &feature_addsubiw,
3719 &feature_mul,3720 &feature_rmw,
3720 &feature_elpm,3721 &feature_elpm,
3722 &feature_break,
3723 &feature_ijmpcall,
3724 &feature_des,
3721 &feature_spmx,3725 &feature_spmx,
3722 &feature_lpm,
3723 &feature_lpmx,3726 &feature_lpmx,
3727 &feature_jmpcall,
3724 &feature_spm,3728 &feature_spm,
3725 &feature_addsubiw,
3726 &feature_rmw,
3727 &feature_ijmpcall,
3728 &feature_eijmpcall,
3729 &feature_break,
3730 &feature_elpmx,3729 &feature_elpmx,
3730 &feature_mul,
3731 },3731 },
3732};3732};
37333733
...@@ -3735,22 +3735,22 @@ pub const cpu_atxmega256c3 = Cpu{...@@ -3735,22 +3735,22 @@ pub const cpu_atxmega256c3 = Cpu{
3735 .name = "atxmega256c3",3735 .name = "atxmega256c3",
3736 .llvm_name = "atxmega256c3",3736 .llvm_name = "atxmega256c3",
3737 .dependencies = &[_]*const Feature {3737 .dependencies = &[_]*const Feature {
3738 &feature_des,3738 &feature_eijmpcall,
3739 &feature_lpm,
3739 &feature_sram,3740 &feature_sram,
3740 &feature_movw,3741 &feature_movw,
3741 &feature_jmpcall,3742 &feature_addsubiw,
3742 &feature_mul,3743 &feature_rmw,
3743 &feature_elpm,3744 &feature_elpm,
3745 &feature_break,
3746 &feature_ijmpcall,
3747 &feature_des,
3744 &feature_spmx,3748 &feature_spmx,
3745 &feature_lpm,
3746 &feature_lpmx,3749 &feature_lpmx,
3750 &feature_jmpcall,
3747 &feature_spm,3751 &feature_spm,
3748 &feature_addsubiw,
3749 &feature_rmw,
3750 &feature_ijmpcall,
3751 &feature_eijmpcall,
3752 &feature_break,
3753 &feature_elpmx,3752 &feature_elpmx,
3753 &feature_mul,
3754 },3754 },
3755};3755};
37563756
...@@ -3758,21 +3758,21 @@ pub const cpu_atxmega256d3 = Cpu{...@@ -3758,21 +3758,21 @@ pub const cpu_atxmega256d3 = Cpu{
3758 .name = "atxmega256d3",3758 .name = "atxmega256d3",
3759 .llvm_name = "atxmega256d3",3759 .llvm_name = "atxmega256d3",
3760 .dependencies = &[_]*const Feature {3760 .dependencies = &[_]*const Feature {
3761 &feature_des,
3762 &feature_sram,
3763 &feature_eijmpcall,3761 &feature_eijmpcall,
3764 &feature_jmpcall,3762 &feature_lpm,
3765 &feature_mul,3763 &feature_sram,
3764 &feature_addsubiw,
3765 &feature_movw,
3766 &feature_elpm,3766 &feature_elpm,
3767 &feature_break,
3768 &feature_ijmpcall,
3769 &feature_des,
3767 &feature_spmx,3770 &feature_spmx,
3768 &feature_lpm,
3769 &feature_lpmx,3771 &feature_lpmx,
3772 &feature_jmpcall,
3770 &feature_spm,3773 &feature_spm,
3771 &feature_addsubiw,
3772 &feature_ijmpcall,
3773 &feature_elpmx,3774 &feature_elpmx,
3774 &feature_break,3775 &feature_mul,
3775 &feature_movw,
3776 },3776 },
3777};3777};
37783778
...@@ -3780,21 +3780,21 @@ pub const cpu_atxmega32a4 = Cpu{...@@ -3780,21 +3780,21 @@ pub const cpu_atxmega32a4 = Cpu{
3780 .name = "atxmega32a4",3780 .name = "atxmega32a4",
3781 .llvm_name = "atxmega32a4",3781 .llvm_name = "atxmega32a4",
3782 .dependencies = &[_]*const Feature {3782 .dependencies = &[_]*const Feature {
3783 &feature_des,
3784 &feature_sram,
3785 &feature_eijmpcall,3783 &feature_eijmpcall,
3786 &feature_jmpcall,3784 &feature_lpm,
3787 &feature_mul,3785 &feature_sram,
3786 &feature_addsubiw,
3787 &feature_movw,
3788 &feature_elpm,3788 &feature_elpm,
3789 &feature_break,
3790 &feature_ijmpcall,
3791 &feature_des,
3789 &feature_spmx,3792 &feature_spmx,
3790 &feature_lpm,
3791 &feature_lpmx,3793 &feature_lpmx,
3794 &feature_jmpcall,
3792 &feature_spm,3795 &feature_spm,
3793 &feature_addsubiw,
3794 &feature_ijmpcall,
3795 &feature_elpmx,3796 &feature_elpmx,
3796 &feature_break,3797 &feature_mul,
3797 &feature_movw,
3798 },3798 },
3799};3799};
38003800
...@@ -3802,22 +3802,22 @@ pub const cpu_atxmega32a4u = Cpu{...@@ -3802,22 +3802,22 @@ pub const cpu_atxmega32a4u = Cpu{
3802 .name = "atxmega32a4u",3802 .name = "atxmega32a4u",
3803 .llvm_name = "atxmega32a4u",3803 .llvm_name = "atxmega32a4u",
3804 .dependencies = &[_]*const Feature {3804 .dependencies = &[_]*const Feature {
3805 &feature_des,3805 &feature_eijmpcall,
3806 &feature_lpm,
3806 &feature_sram,3807 &feature_sram,
3807 &feature_movw,3808 &feature_movw,
3808 &feature_jmpcall,3809 &feature_addsubiw,
3809 &feature_mul,3810 &feature_rmw,
3810 &feature_elpm,3811 &feature_elpm,
3812 &feature_break,
3813 &feature_ijmpcall,
3814 &feature_des,
3811 &feature_spmx,3815 &feature_spmx,
3812 &feature_lpm,
3813 &feature_lpmx,3816 &feature_lpmx,
3817 &feature_jmpcall,
3814 &feature_spm,3818 &feature_spm,
3815 &feature_addsubiw,
3816 &feature_rmw,
3817 &feature_ijmpcall,
3818 &feature_eijmpcall,
3819 &feature_break,
3820 &feature_elpmx,3819 &feature_elpmx,
3820 &feature_mul,
3821 },3821 },
3822};3822};
38233823
...@@ -3825,22 +3825,22 @@ pub const cpu_atxmega32c4 = Cpu{...@@ -3825,22 +3825,22 @@ pub const cpu_atxmega32c4 = Cpu{
3825 .name = "atxmega32c4",3825 .name = "atxmega32c4",
3826 .llvm_name = "atxmega32c4",3826 .llvm_name = "atxmega32c4",
3827 .dependencies = &[_]*const Feature {3827 .dependencies = &[_]*const Feature {
3828 &feature_des,3828 &feature_eijmpcall,
3829 &feature_lpm,
3829 &feature_sram,3830 &feature_sram,
3830 &feature_movw,3831 &feature_movw,
3831 &feature_jmpcall,3832 &feature_addsubiw,
3832 &feature_mul,3833 &feature_rmw,
3833 &feature_elpm,3834 &feature_elpm,
3835 &feature_break,
3836 &feature_ijmpcall,
3837 &feature_des,
3834 &feature_spmx,3838 &feature_spmx,
3835 &feature_lpm,
3836 &feature_lpmx,3839 &feature_lpmx,
3840 &feature_jmpcall,
3837 &feature_spm,3841 &feature_spm,
3838 &feature_addsubiw,
3839 &feature_rmw,
3840 &feature_ijmpcall,
3841 &feature_eijmpcall,
3842 &feature_break,
3843 &feature_elpmx,3842 &feature_elpmx,
3843 &feature_mul,
3844 },3844 },
3845};3845};
38463846
...@@ -3848,21 +3848,21 @@ pub const cpu_atxmega32d4 = Cpu{...@@ -3848,21 +3848,21 @@ pub const cpu_atxmega32d4 = Cpu{
3848 .name = "atxmega32d4",3848 .name = "atxmega32d4",
3849 .llvm_name = "atxmega32d4",3849 .llvm_name = "atxmega32d4",
3850 .dependencies = &[_]*const Feature {3850 .dependencies = &[_]*const Feature {
3851 &feature_des,
3852 &feature_sram,
3853 &feature_eijmpcall,3851 &feature_eijmpcall,
3854 &feature_jmpcall,3852 &feature_lpm,
3855 &feature_mul,3853 &feature_sram,
3854 &feature_addsubiw,
3855 &feature_movw,
3856 &feature_elpm,3856 &feature_elpm,
3857 &feature_break,
3858 &feature_ijmpcall,
3859 &feature_des,
3857 &feature_spmx,3860 &feature_spmx,
3858 &feature_lpm,
3859 &feature_lpmx,3861 &feature_lpmx,
3862 &feature_jmpcall,
3860 &feature_spm,3863 &feature_spm,
3861 &feature_addsubiw,
3862 &feature_ijmpcall,
3863 &feature_elpmx,3864 &feature_elpmx,
3864 &feature_break,3865 &feature_mul,
3865 &feature_movw,
3866 },3866 },
3867};3867};
38683868
...@@ -3870,21 +3870,21 @@ pub const cpu_atxmega32e5 = Cpu{...@@ -3870,21 +3870,21 @@ pub const cpu_atxmega32e5 = Cpu{
3870 .name = "atxmega32e5",3870 .name = "atxmega32e5",
3871 .llvm_name = "atxmega32e5",3871 .llvm_name = "atxmega32e5",
3872 .dependencies = &[_]*const Feature {3872 .dependencies = &[_]*const Feature {
3873 &feature_des,
3874 &feature_sram,
3875 &feature_eijmpcall,3873 &feature_eijmpcall,
3876 &feature_jmpcall,3874 &feature_lpm,
3877 &feature_mul,3875 &feature_sram,
3876 &feature_addsubiw,
3877 &feature_movw,
3878 &feature_elpm,3878 &feature_elpm,
3879 &feature_break,
3880 &feature_ijmpcall,
3881 &feature_des,
3879 &feature_spmx,3882 &feature_spmx,
3880 &feature_lpm,
3881 &feature_lpmx,3883 &feature_lpmx,
3884 &feature_jmpcall,
3882 &feature_spm,3885 &feature_spm,
3883 &feature_addsubiw,
3884 &feature_ijmpcall,
3885 &feature_elpmx,3886 &feature_elpmx,
3886 &feature_break,3887 &feature_mul,
3887 &feature_movw,
3888 },3888 },
3889};3889};
38903890
...@@ -3892,21 +3892,21 @@ pub const cpu_atxmega32x1 = Cpu{...@@ -3892,21 +3892,21 @@ pub const cpu_atxmega32x1 = Cpu{
3892 .name = "atxmega32x1",3892 .name = "atxmega32x1",
3893 .llvm_name = "atxmega32x1",3893 .llvm_name = "atxmega32x1",
3894 .dependencies = &[_]*const Feature {3894 .dependencies = &[_]*const Feature {
3895 &feature_des,
3896 &feature_sram,
3897 &feature_eijmpcall,3895 &feature_eijmpcall,
3898 &feature_jmpcall,3896 &feature_lpm,
3899 &feature_mul,3897 &feature_sram,
3898 &feature_addsubiw,
3899 &feature_movw,
3900 &feature_elpm,3900 &feature_elpm,
3901 &feature_break,
3902 &feature_ijmpcall,
3903 &feature_des,
3901 &feature_spmx,3904 &feature_spmx,
3902 &feature_lpm,
3903 &feature_lpmx,3905 &feature_lpmx,
3906 &feature_jmpcall,
3904 &feature_spm,3907 &feature_spm,
3905 &feature_addsubiw,
3906 &feature_ijmpcall,
3907 &feature_elpmx,3908 &feature_elpmx,
3908 &feature_break,3909 &feature_mul,
3909 &feature_movw,
3910 },3910 },
3911};3911};
39123912
...@@ -3914,22 +3914,22 @@ pub const cpu_atxmega384c3 = Cpu{...@@ -3914,22 +3914,22 @@ pub const cpu_atxmega384c3 = Cpu{
3914 .name = "atxmega384c3",3914 .name = "atxmega384c3",
3915 .llvm_name = "atxmega384c3",3915 .llvm_name = "atxmega384c3",
3916 .dependencies = &[_]*const Feature {3916 .dependencies = &[_]*const Feature {
3917 &feature_des,3917 &feature_eijmpcall,
3918 &feature_lpm,
3918 &feature_sram,3919 &feature_sram,
3919 &feature_movw,3920 &feature_movw,
3920 &feature_jmpcall,3921 &feature_addsubiw,
3921 &feature_mul,3922 &feature_rmw,
3922 &feature_elpm,3923 &feature_elpm,
3924 &feature_break,
3925 &feature_ijmpcall,
3926 &feature_des,
3923 &feature_spmx,3927 &feature_spmx,
3924 &feature_lpm,
3925 &feature_lpmx,3928 &feature_lpmx,
3929 &feature_jmpcall,
3926 &feature_spm,3930 &feature_spm,
3927 &feature_addsubiw,
3928 &feature_rmw,
3929 &feature_ijmpcall,
3930 &feature_eijmpcall,
3931 &feature_break,
3932 &feature_elpmx,3931 &feature_elpmx,
3932 &feature_mul,
3933 },3933 },
3934};3934};
39353935
...@@ -3937,21 +3937,21 @@ pub const cpu_atxmega384d3 = Cpu{...@@ -3937,21 +3937,21 @@ pub const cpu_atxmega384d3 = Cpu{
3937 .name = "atxmega384d3",3937 .name = "atxmega384d3",
3938 .llvm_name = "atxmega384d3",3938 .llvm_name = "atxmega384d3",
3939 .dependencies = &[_]*const Feature {3939 .dependencies = &[_]*const Feature {
3940 &feature_des,
3941 &feature_sram,
3942 &feature_eijmpcall,3940 &feature_eijmpcall,
3943 &feature_jmpcall,3941 &feature_lpm,
3944 &feature_mul,3942 &feature_sram,
3943 &feature_addsubiw,
3944 &feature_movw,
3945 &feature_elpm,3945 &feature_elpm,
3946 &feature_break,
3947 &feature_ijmpcall,
3948 &feature_des,
3946 &feature_spmx,3949 &feature_spmx,
3947 &feature_lpm,
3948 &feature_lpmx,3950 &feature_lpmx,
3951 &feature_jmpcall,
3949 &feature_spm,3952 &feature_spm,
3950 &feature_addsubiw,
3951 &feature_ijmpcall,
3952 &feature_elpmx,3953 &feature_elpmx,
3953 &feature_break,3954 &feature_mul,
3954 &feature_movw,
3955 },3955 },
3956};3956};
39573957
...@@ -3959,21 +3959,21 @@ pub const cpu_atxmega64a1 = Cpu{...@@ -3959,21 +3959,21 @@ pub const cpu_atxmega64a1 = Cpu{
3959 .name = "atxmega64a1",3959 .name = "atxmega64a1",
3960 .llvm_name = "atxmega64a1",3960 .llvm_name = "atxmega64a1",
3961 .dependencies = &[_]*const Feature {3961 .dependencies = &[_]*const Feature {
3962 &feature_des,
3963 &feature_sram,
3964 &feature_eijmpcall,3962 &feature_eijmpcall,
3965 &feature_jmpcall,3963 &feature_lpm,
3966 &feature_mul,3964 &feature_sram,
3965 &feature_addsubiw,
3966 &feature_movw,
3967 &feature_elpm,3967 &feature_elpm,
3968 &feature_break,
3969 &feature_ijmpcall,
3970 &feature_des,
3968 &feature_spmx,3971 &feature_spmx,
3969 &feature_lpm,
3970 &feature_lpmx,3972 &feature_lpmx,
3973 &feature_jmpcall,
3971 &feature_spm,3974 &feature_spm,
3972 &feature_addsubiw,
3973 &feature_ijmpcall,
3974 &feature_elpmx,3975 &feature_elpmx,
3975 &feature_break,3976 &feature_mul,
3976 &feature_movw,
3977 },3977 },
3978};3978};
39793979
...@@ -3981,22 +3981,22 @@ pub const cpu_atxmega64a1u = Cpu{...@@ -3981,22 +3981,22 @@ pub const cpu_atxmega64a1u = Cpu{
3981 .name = "atxmega64a1u",3981 .name = "atxmega64a1u",
3982 .llvm_name = "atxmega64a1u",3982 .llvm_name = "atxmega64a1u",
3983 .dependencies = &[_]*const Feature {3983 .dependencies = &[_]*const Feature {
3984 &feature_des,3984 &feature_eijmpcall,
3985 &feature_lpm,
3985 &feature_sram,3986 &feature_sram,
3986 &feature_movw,3987 &feature_movw,
3987 &feature_jmpcall,3988 &feature_addsubiw,
3988 &feature_mul,3989 &feature_rmw,
3989 &feature_elpm,3990 &feature_elpm,
3991 &feature_break,
3992 &feature_ijmpcall,
3993 &feature_des,
3990 &feature_spmx,3994 &feature_spmx,
3991 &feature_lpm,
3992 &feature_lpmx,3995 &feature_lpmx,
3996 &feature_jmpcall,
3993 &feature_spm,3997 &feature_spm,
3994 &feature_addsubiw,
3995 &feature_rmw,
3996 &feature_ijmpcall,
3997 &feature_eijmpcall,
3998 &feature_break,
3999 &feature_elpmx,3998 &feature_elpmx,
3999 &feature_mul,
4000 },4000 },
4001};4001};
40024002
...@@ -4004,21 +4004,21 @@ pub const cpu_atxmega64a3 = Cpu{...@@ -4004,21 +4004,21 @@ pub const cpu_atxmega64a3 = Cpu{
4004 .name = "atxmega64a3",4004 .name = "atxmega64a3",
4005 .llvm_name = "atxmega64a3",4005 .llvm_name = "atxmega64a3",
4006 .dependencies = &[_]*const Feature {4006 .dependencies = &[_]*const Feature {
4007 &feature_des,
4008 &feature_sram,
4009 &feature_eijmpcall,4007 &feature_eijmpcall,
4010 &feature_jmpcall,4008 &feature_lpm,
4011 &feature_mul,4009 &feature_sram,
4010 &feature_addsubiw,
4011 &feature_movw,
4012 &feature_elpm,4012 &feature_elpm,
4013 &feature_break,
4014 &feature_ijmpcall,
4015 &feature_des,
4013 &feature_spmx,4016 &feature_spmx,
4014 &feature_lpm,
4015 &feature_lpmx,4017 &feature_lpmx,
4018 &feature_jmpcall,
4016 &feature_spm,4019 &feature_spm,
4017 &feature_addsubiw,
4018 &feature_ijmpcall,
4019 &feature_elpmx,4020 &feature_elpmx,
4020 &feature_break,4021 &feature_mul,
4021 &feature_movw,
4022 },4022 },
4023};4023};
40244024
...@@ -4026,22 +4026,22 @@ pub const cpu_atxmega64a3u = Cpu{...@@ -4026,22 +4026,22 @@ pub const cpu_atxmega64a3u = Cpu{
4026 .name = "atxmega64a3u",4026 .name = "atxmega64a3u",
4027 .llvm_name = "atxmega64a3u",4027 .llvm_name = "atxmega64a3u",
4028 .dependencies = &[_]*const Feature {4028 .dependencies = &[_]*const Feature {
4029 &feature_des,4029 &feature_eijmpcall,
4030 &feature_lpm,
4030 &feature_sram,4031 &feature_sram,
4031 &feature_movw,4032 &feature_movw,
4032 &feature_jmpcall,4033 &feature_addsubiw,
4033 &feature_mul,4034 &feature_rmw,
4034 &feature_elpm,4035 &feature_elpm,
4036 &feature_break,
4037 &feature_ijmpcall,
4038 &feature_des,
4035 &feature_spmx,4039 &feature_spmx,
4036 &feature_lpm,
4037 &feature_lpmx,4040 &feature_lpmx,
4041 &feature_jmpcall,
4038 &feature_spm,4042 &feature_spm,
4039 &feature_addsubiw,
4040 &feature_rmw,
4041 &feature_ijmpcall,
4042 &feature_eijmpcall,
4043 &feature_break,
4044 &feature_elpmx,4043 &feature_elpmx,
4044 &feature_mul,
4045 },4045 },
4046};4046};
40474047
...@@ -4049,22 +4049,22 @@ pub const cpu_atxmega64a4u = Cpu{...@@ -4049,22 +4049,22 @@ pub const cpu_atxmega64a4u = Cpu{
4049 .name = "atxmega64a4u",4049 .name = "atxmega64a4u",
4050 .llvm_name = "atxmega64a4u",4050 .llvm_name = "atxmega64a4u",
4051 .dependencies = &[_]*const Feature {4051 .dependencies = &[_]*const Feature {
4052 &feature_des,4052 &feature_eijmpcall,
4053 &feature_lpm,
4053 &feature_sram,4054 &feature_sram,
4054 &feature_movw,4055 &feature_movw,
4055 &feature_jmpcall,4056 &feature_addsubiw,
4056 &feature_mul,4057 &feature_rmw,
4057 &feature_elpm,4058 &feature_elpm,
4059 &feature_break,
4060 &feature_ijmpcall,
4061 &feature_des,
4058 &feature_spmx,4062 &feature_spmx,
4059 &feature_lpm,
4060 &feature_lpmx,4063 &feature_lpmx,
4064 &feature_jmpcall,
4061 &feature_spm,4065 &feature_spm,
4062 &feature_addsubiw,
4063 &feature_rmw,
4064 &feature_ijmpcall,
4065 &feature_eijmpcall,
4066 &feature_break,
4067 &feature_elpmx,4066 &feature_elpmx,
4067 &feature_mul,
4068 },4068 },
4069};4069};
40704070
...@@ -4072,22 +4072,22 @@ pub const cpu_atxmega64b1 = Cpu{...@@ -4072,22 +4072,22 @@ pub const cpu_atxmega64b1 = Cpu{
4072 .name = "atxmega64b1",4072 .name = "atxmega64b1",
4073 .llvm_name = "atxmega64b1",4073 .llvm_name = "atxmega64b1",
4074 .dependencies = &[_]*const Feature {4074 .dependencies = &[_]*const Feature {
4075 &feature_des,4075 &feature_eijmpcall,
4076 &feature_lpm,
4076 &feature_sram,4077 &feature_sram,
4077 &feature_movw,4078 &feature_movw,
4078 &feature_jmpcall,4079 &feature_addsubiw,
4079 &feature_mul,4080 &feature_rmw,
4080 &feature_elpm,4081 &feature_elpm,
4082 &feature_break,
4083 &feature_ijmpcall,
4084 &feature_des,
4081 &feature_spmx,4085 &feature_spmx,
4082 &feature_lpm,
4083 &feature_lpmx,4086 &feature_lpmx,
4087 &feature_jmpcall,
4084 &feature_spm,4088 &feature_spm,
4085 &feature_addsubiw,
4086 &feature_rmw,
4087 &feature_ijmpcall,
4088 &feature_eijmpcall,
4089 &feature_break,
4090 &feature_elpmx,4089 &feature_elpmx,
4090 &feature_mul,
4091 },4091 },
4092};4092};
40934093
...@@ -4095,22 +4095,22 @@ pub const cpu_atxmega64b3 = Cpu{...@@ -4095,22 +4095,22 @@ pub const cpu_atxmega64b3 = Cpu{
4095 .name = "atxmega64b3",4095 .name = "atxmega64b3",
4096 .llvm_name = "atxmega64b3",4096 .llvm_name = "atxmega64b3",
4097 .dependencies = &[_]*const Feature {4097 .dependencies = &[_]*const Feature {
4098 &feature_des,4098 &feature_eijmpcall,
4099 &feature_lpm,
4099 &feature_sram,4100 &feature_sram,
4100 &feature_movw,4101 &feature_movw,
4101 &feature_jmpcall,4102 &feature_addsubiw,
4102 &feature_mul,4103 &feature_rmw,
4103 &feature_elpm,4104 &feature_elpm,
4105 &feature_break,
4106 &feature_ijmpcall,
4107 &feature_des,
4104 &feature_spmx,4108 &feature_spmx,
4105 &feature_lpm,
4106 &feature_lpmx,4109 &feature_lpmx,
4110 &feature_jmpcall,
4107 &feature_spm,4111 &feature_spm,
4108 &feature_addsubiw,
4109 &feature_rmw,
4110 &feature_ijmpcall,
4111 &feature_eijmpcall,
4112 &feature_break,
4113 &feature_elpmx,4112 &feature_elpmx,
4113 &feature_mul,
4114 },4114 },
4115};4115};
41164116
...@@ -4118,22 +4118,22 @@ pub const cpu_atxmega64c3 = Cpu{...@@ -4118,22 +4118,22 @@ pub const cpu_atxmega64c3 = Cpu{
4118 .name = "atxmega64c3",4118 .name = "atxmega64c3",
4119 .llvm_name = "atxmega64c3",4119 .llvm_name = "atxmega64c3",
4120 .dependencies = &[_]*const Feature {4120 .dependencies = &[_]*const Feature {
4121 &feature_des,4121 &feature_eijmpcall,
4122 &feature_lpm,
4122 &feature_sram,4123 &feature_sram,
4123 &feature_movw,4124 &feature_movw,
4124 &feature_jmpcall,4125 &feature_addsubiw,
4125 &feature_mul,4126 &feature_rmw,
4126 &feature_elpm,4127 &feature_elpm,
4128 &feature_break,
4129 &feature_ijmpcall,
4130 &feature_des,
4127 &feature_spmx,4131 &feature_spmx,
4128 &feature_lpm,
4129 &feature_lpmx,4132 &feature_lpmx,
4133 &feature_jmpcall,
4130 &feature_spm,4134 &feature_spm,
4131 &feature_addsubiw,
4132 &feature_rmw,
4133 &feature_ijmpcall,
4134 &feature_eijmpcall,
4135 &feature_break,
4136 &feature_elpmx,4135 &feature_elpmx,
4136 &feature_mul,
4137 },4137 },
4138};4138};
41394139
...@@ -4141,21 +4141,21 @@ pub const cpu_atxmega64d3 = Cpu{...@@ -4141,21 +4141,21 @@ pub const cpu_atxmega64d3 = Cpu{
4141 .name = "atxmega64d3",4141 .name = "atxmega64d3",
4142 .llvm_name = "atxmega64d3",4142 .llvm_name = "atxmega64d3",
4143 .dependencies = &[_]*const Feature {4143 .dependencies = &[_]*const Feature {
4144 &feature_des,
4145 &feature_sram,
4146 &feature_eijmpcall,4144 &feature_eijmpcall,
4147 &feature_jmpcall,4145 &feature_lpm,
4148 &feature_mul,4146 &feature_sram,
4147 &feature_addsubiw,
4148 &feature_movw,
4149 &feature_elpm,4149 &feature_elpm,
4150 &feature_break,
4151 &feature_ijmpcall,
4152 &feature_des,
4150 &feature_spmx,4153 &feature_spmx,
4151 &feature_lpm,
4152 &feature_lpmx,4154 &feature_lpmx,
4155 &feature_jmpcall,
4153 &feature_spm,4156 &feature_spm,
4154 &feature_addsubiw,
4155 &feature_ijmpcall,
4156 &feature_elpmx,4157 &feature_elpmx,
4157 &feature_break,4158 &feature_mul,
4158 &feature_movw,
4159 },4159 },
4160};4160};
41614161
...@@ -4163,21 +4163,21 @@ pub const cpu_atxmega64d4 = Cpu{...@@ -4163,21 +4163,21 @@ pub const cpu_atxmega64d4 = Cpu{
4163 .name = "atxmega64d4",4163 .name = "atxmega64d4",
4164 .llvm_name = "atxmega64d4",4164 .llvm_name = "atxmega64d4",
4165 .dependencies = &[_]*const Feature {4165 .dependencies = &[_]*const Feature {
4166 &feature_des,
4167 &feature_sram,
4168 &feature_eijmpcall,4166 &feature_eijmpcall,
4169 &feature_jmpcall,4167 &feature_lpm,
4170 &feature_mul,4168 &feature_sram,
4169 &feature_addsubiw,
4170 &feature_movw,
4171 &feature_elpm,4171 &feature_elpm,
4172 &feature_break,
4173 &feature_ijmpcall,
4174 &feature_des,
4172 &feature_spmx,4175 &feature_spmx,
4173 &feature_lpm,
4174 &feature_lpmx,4176 &feature_lpmx,
4177 &feature_jmpcall,
4175 &feature_spm,4178 &feature_spm,
4176 &feature_addsubiw,
4177 &feature_ijmpcall,
4178 &feature_elpmx,4179 &feature_elpmx,
4179 &feature_break,4180 &feature_mul,
4180 &feature_movw,
4181 },4181 },
4182};4182};
41834183
...@@ -4185,21 +4185,21 @@ pub const cpu_atxmega8e5 = Cpu{...@@ -4185,21 +4185,21 @@ pub const cpu_atxmega8e5 = Cpu{
4185 .name = "atxmega8e5",4185 .name = "atxmega8e5",
4186 .llvm_name = "atxmega8e5",4186 .llvm_name = "atxmega8e5",
4187 .dependencies = &[_]*const Feature {4187 .dependencies = &[_]*const Feature {
4188 &feature_des,
4189 &feature_sram,
4190 &feature_eijmpcall,4188 &feature_eijmpcall,
4191 &feature_jmpcall,4189 &feature_lpm,
4192 &feature_mul,4190 &feature_sram,
4191 &feature_addsubiw,
4192 &feature_movw,
4193 &feature_elpm,4193 &feature_elpm,
4194 &feature_break,
4195 &feature_ijmpcall,
4196 &feature_des,
4194 &feature_spmx,4197 &feature_spmx,
4195 &feature_lpm,
4196 &feature_lpmx,4198 &feature_lpmx,
4199 &feature_jmpcall,
4197 &feature_spm,4200 &feature_spm,
4198 &feature_addsubiw,
4199 &feature_ijmpcall,
4200 &feature_elpmx,4201 &feature_elpmx,
4201 &feature_break,4202 &feature_mul,
4202 &feature_movw,
4203 },4203 },
4204};4204};
42054205
...@@ -4215,8 +4215,8 @@ pub const cpu_avr2 = Cpu{...@@ -4215,8 +4215,8 @@ pub const cpu_avr2 = Cpu{
4215 .name = "avr2",4215 .name = "avr2",
4216 .llvm_name = "avr2",4216 .llvm_name = "avr2",
4217 .dependencies = &[_]*const Feature {4217 .dependencies = &[_]*const Feature {
4218 &feature_sram,
4219 &feature_lpm,4218 &feature_lpm,
4219 &feature_sram,
4220 &feature_addsubiw,4220 &feature_addsubiw,
4221 &feature_ijmpcall,4221 &feature_ijmpcall,
4222 },4222 },
...@@ -4226,14 +4226,14 @@ pub const cpu_avr25 = Cpu{...@@ -4226,14 +4226,14 @@ pub const cpu_avr25 = Cpu{
4226 .name = "avr25",4226 .name = "avr25",
4227 .llvm_name = "avr25",4227 .llvm_name = "avr25",
4228 .dependencies = &[_]*const Feature {4228 .dependencies = &[_]*const Feature {
4229 &feature_sram,
4230 &feature_lpm,4229 &feature_lpm,
4231 &feature_lpmx,4230 &feature_sram,
4232 &feature_spm,
4233 &feature_addsubiw,4231 &feature_addsubiw,
4234 &feature_ijmpcall,
4235 &feature_break,
4236 &feature_movw,4232 &feature_movw,
4233 &feature_break,
4234 &feature_ijmpcall,
4235 &feature_lpmx,
4236 &feature_spm,
4237 },4237 },
4238};4238};
42394239
...@@ -4241,11 +4241,11 @@ pub const cpu_avr3 = Cpu{...@@ -4241,11 +4241,11 @@ pub const cpu_avr3 = Cpu{
4241 .name = "avr3",4241 .name = "avr3",
4242 .llvm_name = "avr3",4242 .llvm_name = "avr3",
4243 .dependencies = &[_]*const Feature {4243 .dependencies = &[_]*const Feature {
4244 &feature_sram,
4245 &feature_jmpcall,
4246 &feature_lpm,4244 &feature_lpm,
4245 &feature_sram,
4247 &feature_addsubiw,4246 &feature_addsubiw,
4248 &feature_ijmpcall,4247 &feature_ijmpcall,
4248 &feature_jmpcall,
4249 },4249 },
4250};4250};
42514251
...@@ -4253,12 +4253,12 @@ pub const cpu_avr31 = Cpu{...@@ -4253,12 +4253,12 @@ pub const cpu_avr31 = Cpu{
4253 .name = "avr31",4253 .name = "avr31",
4254 .llvm_name = "avr31",4254 .llvm_name = "avr31",
4255 .dependencies = &[_]*const Feature {4255 .dependencies = &[_]*const Feature {
4256 &feature_sram,
4257 &feature_jmpcall,
4258 &feature_elpm,
4259 &feature_lpm,4256 &feature_lpm,
4257 &feature_sram,
4260 &feature_addsubiw,4258 &feature_addsubiw,
4259 &feature_elpm,
4261 &feature_ijmpcall,4260 &feature_ijmpcall,
4261 &feature_jmpcall,
4262 },4262 },
4263};4263};
42644264
...@@ -4266,15 +4266,15 @@ pub const cpu_avr35 = Cpu{...@@ -4266,15 +4266,15 @@ pub const cpu_avr35 = Cpu{
4266 .name = "avr35",4266 .name = "avr35",
4267 .llvm_name = "avr35",4267 .llvm_name = "avr35",
4268 .dependencies = &[_]*const Feature {4268 .dependencies = &[_]*const Feature {
4269 &feature_sram,
4270 &feature_jmpcall,
4271 &feature_lpm,4269 &feature_lpm,
4272 &feature_lpmx,4270 &feature_sram,
4273 &feature_spm,
4274 &feature_addsubiw,4271 &feature_addsubiw,
4275 &feature_ijmpcall,
4276 &feature_break,
4277 &feature_movw,4272 &feature_movw,
4273 &feature_break,
4274 &feature_ijmpcall,
4275 &feature_lpmx,
4276 &feature_jmpcall,
4277 &feature_spm,
4278 },4278 },
4279};4279};
42804280
...@@ -4282,15 +4282,15 @@ pub const cpu_avr4 = Cpu{...@@ -4282,15 +4282,15 @@ pub const cpu_avr4 = Cpu{
4282 .name = "avr4",4282 .name = "avr4",
4283 .llvm_name = "avr4",4283 .llvm_name = "avr4",
4284 .dependencies = &[_]*const Feature {4284 .dependencies = &[_]*const Feature {
4285 &feature_sram,
4286 &feature_mul,
4287 &feature_lpm,4285 &feature_lpm,
4288 &feature_lpmx,4286 &feature_sram,
4289 &feature_spm,
4290 &feature_addsubiw,4287 &feature_addsubiw,
4291 &feature_ijmpcall,
4292 &feature_break,
4293 &feature_movw,4288 &feature_movw,
4289 &feature_break,
4290 &feature_ijmpcall,
4291 &feature_lpmx,
4292 &feature_spm,
4293 &feature_mul,
4294 },4294 },
4295};4295};
42964296
...@@ -4298,16 +4298,16 @@ pub const cpu_avr5 = Cpu{...@@ -4298,16 +4298,16 @@ pub const cpu_avr5 = Cpu{
4298 .name = "avr5",4298 .name = "avr5",
4299 .llvm_name = "avr5",4299 .llvm_name = "avr5",
4300 .dependencies = &[_]*const Feature {4300 .dependencies = &[_]*const Feature {
4301 &feature_sram,
4302 &feature_jmpcall,
4303 &feature_mul,
4304 &feature_lpm,4301 &feature_lpm,
4305 &feature_lpmx,4302 &feature_sram,
4306 &feature_spm,
4307 &feature_addsubiw,4303 &feature_addsubiw,
4308 &feature_ijmpcall,
4309 &feature_break,
4310 &feature_movw,4304 &feature_movw,
4305 &feature_break,
4306 &feature_ijmpcall,
4307 &feature_lpmx,
4308 &feature_jmpcall,
4309 &feature_spm,
4310 &feature_mul,
4311 },4311 },
4312};4312};
43134313
...@@ -4315,18 +4315,18 @@ pub const cpu_avr51 = Cpu{...@@ -4315,18 +4315,18 @@ pub const cpu_avr51 = Cpu{
4315 .name = "avr51",4315 .name = "avr51",
4316 .llvm_name = "avr51",4316 .llvm_name = "avr51",
4317 .dependencies = &[_]*const Feature {4317 .dependencies = &[_]*const Feature {
4318 &feature_lpm,
4318 &feature_sram,4319 &feature_sram,
4319 &feature_jmpcall,4320 &feature_addsubiw,
4320 &feature_mul,4321 &feature_movw,
4321 &feature_elpm,4322 &feature_elpm,
4322 &feature_lpm,4323 &feature_break,
4324 &feature_ijmpcall,
4323 &feature_lpmx,4325 &feature_lpmx,
4326 &feature_jmpcall,
4324 &feature_spm,4327 &feature_spm,
4325 &feature_addsubiw,
4326 &feature_ijmpcall,
4327 &feature_elpmx,4328 &feature_elpmx,
4328 &feature_break,4329 &feature_mul,
4329 &feature_movw,
4330 },4330 },
4331};4331};
43324332
...@@ -4334,18 +4334,18 @@ pub const cpu_avr6 = Cpu{...@@ -4334,18 +4334,18 @@ pub const cpu_avr6 = Cpu{
4334 .name = "avr6",4334 .name = "avr6",
4335 .llvm_name = "avr6",4335 .llvm_name = "avr6",
4336 .dependencies = &[_]*const Feature {4336 .dependencies = &[_]*const Feature {
4337 &feature_lpm,
4337 &feature_sram,4338 &feature_sram,
4338 &feature_jmpcall,4339 &feature_addsubiw,
4339 &feature_mul,4340 &feature_movw,
4340 &feature_elpm,4341 &feature_elpm,
4341 &feature_lpm,4342 &feature_break,
4343 &feature_ijmpcall,
4342 &feature_lpmx,4344 &feature_lpmx,
4345 &feature_jmpcall,
4343 &feature_spm,4346 &feature_spm,
4344 &feature_addsubiw,
4345 &feature_ijmpcall,
4346 &feature_elpmx,4347 &feature_elpmx,
4347 &feature_break,4348 &feature_mul,
4348 &feature_movw,
4349 },4349 },
4350};4350};
43514351
...@@ -4354,8 +4354,8 @@ pub const cpu_avrtiny = Cpu{...@@ -4354,8 +4354,8 @@ pub const cpu_avrtiny = Cpu{
4354 .llvm_name = "avrtiny",4354 .llvm_name = "avrtiny",
4355 .dependencies = &[_]*const Feature {4355 .dependencies = &[_]*const Feature {
4356 &feature_sram,4356 &feature_sram,
4357 &feature_tinyencoding,
4358 &feature_break,4357 &feature_break,
4358 &feature_tinyencoding,
4359 },4359 },
4360};4360};
43614361
...@@ -4363,21 +4363,21 @@ pub const cpu_avrxmega1 = Cpu{...@@ -4363,21 +4363,21 @@ pub const cpu_avrxmega1 = Cpu{
4363 .name = "avrxmega1",4363 .name = "avrxmega1",
4364 .llvm_name = "avrxmega1",4364 .llvm_name = "avrxmega1",
4365 .dependencies = &[_]*const Feature {4365 .dependencies = &[_]*const Feature {
4366 &feature_des,
4367 &feature_sram,
4368 &feature_eijmpcall,4366 &feature_eijmpcall,
4369 &feature_jmpcall,4367 &feature_lpm,
4370 &feature_mul,4368 &feature_sram,
4369 &feature_addsubiw,
4370 &feature_movw,
4371 &feature_elpm,4371 &feature_elpm,
4372 &feature_break,
4373 &feature_ijmpcall,
4374 &feature_des,
4372 &feature_spmx,4375 &feature_spmx,
4373 &feature_lpm,
4374 &feature_lpmx,4376 &feature_lpmx,
4377 &feature_jmpcall,
4375 &feature_spm,4378 &feature_spm,
4376 &feature_addsubiw,
4377 &feature_ijmpcall,
4378 &feature_elpmx,4379 &feature_elpmx,
4379 &feature_break,4380 &feature_mul,
4380 &feature_movw,
4381 },4381 },
4382};4382};
43834383
...@@ -4385,21 +4385,21 @@ pub const cpu_avrxmega2 = Cpu{...@@ -4385,21 +4385,21 @@ pub const cpu_avrxmega2 = Cpu{
4385 .name = "avrxmega2",4385 .name = "avrxmega2",
4386 .llvm_name = "avrxmega2",4386 .llvm_name = "avrxmega2",
4387 .dependencies = &[_]*const Feature {4387 .dependencies = &[_]*const Feature {
4388 &feature_des,
4389 &feature_sram,
4390 &feature_eijmpcall,4388 &feature_eijmpcall,
4391 &feature_jmpcall,4389 &feature_lpm,
4392 &feature_mul,4390 &feature_sram,
4391 &feature_addsubiw,
4392 &feature_movw,
4393 &feature_elpm,4393 &feature_elpm,
4394 &feature_break,
4395 &feature_ijmpcall,
4396 &feature_des,
4394 &feature_spmx,4397 &feature_spmx,
4395 &feature_lpm,
4396 &feature_lpmx,4398 &feature_lpmx,
4399 &feature_jmpcall,
4397 &feature_spm,4400 &feature_spm,
4398 &feature_addsubiw,
4399 &feature_ijmpcall,
4400 &feature_elpmx,4401 &feature_elpmx,
4401 &feature_break,4402 &feature_mul,
4402 &feature_movw,
4403 },4403 },
4404};4404};
44054405
...@@ -4407,21 +4407,21 @@ pub const cpu_avrxmega3 = Cpu{...@@ -4407,21 +4407,21 @@ pub const cpu_avrxmega3 = Cpu{
4407 .name = "avrxmega3",4407 .name = "avrxmega3",
4408 .llvm_name = "avrxmega3",4408 .llvm_name = "avrxmega3",
4409 .dependencies = &[_]*const Feature {4409 .dependencies = &[_]*const Feature {
4410 &feature_des,
4411 &feature_sram,
4412 &feature_eijmpcall,4410 &feature_eijmpcall,
4413 &feature_jmpcall,4411 &feature_lpm,
4414 &feature_mul,4412 &feature_sram,
4413 &feature_addsubiw,
4414 &feature_movw,
4415 &feature_elpm,4415 &feature_elpm,
4416 &feature_break,
4417 &feature_ijmpcall,
4418 &feature_des,
4416 &feature_spmx,4419 &feature_spmx,
4417 &feature_lpm,
4418 &feature_lpmx,4420 &feature_lpmx,
4421 &feature_jmpcall,
4419 &feature_spm,4422 &feature_spm,
4420 &feature_addsubiw,
4421 &feature_ijmpcall,
4422 &feature_elpmx,4423 &feature_elpmx,
4423 &feature_break,4424 &feature_mul,
4424 &feature_movw,
4425 },4425 },
4426};4426};
44274427
...@@ -4429,21 +4429,21 @@ pub const cpu_avrxmega4 = Cpu{...@@ -4429,21 +4429,21 @@ pub const cpu_avrxmega4 = Cpu{
4429 .name = "avrxmega4",4429 .name = "avrxmega4",
4430 .llvm_name = "avrxmega4",4430 .llvm_name = "avrxmega4",
4431 .dependencies = &[_]*const Feature {4431 .dependencies = &[_]*const Feature {
4432 &feature_des,
4433 &feature_sram,
4434 &feature_eijmpcall,4432 &feature_eijmpcall,
4435 &feature_jmpcall,4433 &feature_lpm,
4436 &feature_mul,4434 &feature_sram,
4435 &feature_addsubiw,
4436 &feature_movw,
4437 &feature_elpm,4437 &feature_elpm,
4438 &feature_break,
4439 &feature_ijmpcall,
4440 &feature_des,
4438 &feature_spmx,4441 &feature_spmx,
4439 &feature_lpm,
4440 &feature_lpmx,4442 &feature_lpmx,
4443 &feature_jmpcall,
4441 &feature_spm,4444 &feature_spm,
4442 &feature_addsubiw,
4443 &feature_ijmpcall,
4444 &feature_elpmx,4445 &feature_elpmx,
4445 &feature_break,4446 &feature_mul,
4446 &feature_movw,
4447 },4447 },
4448};4448};
44494449
...@@ -4451,21 +4451,21 @@ pub const cpu_avrxmega5 = Cpu{...@@ -4451,21 +4451,21 @@ pub const cpu_avrxmega5 = Cpu{
4451 .name = "avrxmega5",4451 .name = "avrxmega5",
4452 .llvm_name = "avrxmega5",4452 .llvm_name = "avrxmega5",
4453 .dependencies = &[_]*const Feature {4453 .dependencies = &[_]*const Feature {
4454 &feature_des,
4455 &feature_sram,
4456 &feature_eijmpcall,4454 &feature_eijmpcall,
4457 &feature_jmpcall,4455 &feature_lpm,
4458 &feature_mul,4456 &feature_sram,
4457 &feature_addsubiw,
4458 &feature_movw,
4459 &feature_elpm,4459 &feature_elpm,
4460 &feature_break,
4461 &feature_ijmpcall,
4462 &feature_des,
4460 &feature_spmx,4463 &feature_spmx,
4461 &feature_lpm,
4462 &feature_lpmx,4464 &feature_lpmx,
4465 &feature_jmpcall,
4463 &feature_spm,4466 &feature_spm,
4464 &feature_addsubiw,
4465 &feature_ijmpcall,
4466 &feature_elpmx,4467 &feature_elpmx,
4467 &feature_break,4468 &feature_mul,
4468 &feature_movw,
4469 },4469 },
4470};4470};
44714471
...@@ -4473,21 +4473,21 @@ pub const cpu_avrxmega6 = Cpu{...@@ -4473,21 +4473,21 @@ pub const cpu_avrxmega6 = Cpu{
4473 .name = "avrxmega6",4473 .name = "avrxmega6",
4474 .llvm_name = "avrxmega6",4474 .llvm_name = "avrxmega6",
4475 .dependencies = &[_]*const Feature {4475 .dependencies = &[_]*const Feature {
4476 &feature_des,
4477 &feature_sram,
4478 &feature_eijmpcall,4476 &feature_eijmpcall,
4479 &feature_jmpcall,4477 &feature_lpm,
4480 &feature_mul,4478 &feature_sram,
4479 &feature_addsubiw,
4480 &feature_movw,
4481 &feature_elpm,4481 &feature_elpm,
4482 &feature_break,
4483 &feature_ijmpcall,
4484 &feature_des,
4482 &feature_spmx,4485 &feature_spmx,
4483 &feature_lpm,
4484 &feature_lpmx,4486 &feature_lpmx,
4487 &feature_jmpcall,
4485 &feature_spm,4488 &feature_spm,
4486 &feature_addsubiw,
4487 &feature_ijmpcall,
4488 &feature_elpmx,4489 &feature_elpmx,
4489 &feature_break,4490 &feature_mul,
4490 &feature_movw,
4491 },4491 },
4492};4492};
44934493
...@@ -4495,21 +4495,21 @@ pub const cpu_avrxmega7 = Cpu{...@@ -4495,21 +4495,21 @@ pub const cpu_avrxmega7 = Cpu{
4495 .name = "avrxmega7",4495 .name = "avrxmega7",
4496 .llvm_name = "avrxmega7",4496 .llvm_name = "avrxmega7",
4497 .dependencies = &[_]*const Feature {4497 .dependencies = &[_]*const Feature {
4498 &feature_des,
4499 &feature_sram,
4500 &feature_eijmpcall,4498 &feature_eijmpcall,
4501 &feature_jmpcall,4499 &feature_lpm,
4502 &feature_mul,4500 &feature_sram,
4501 &feature_addsubiw,
4502 &feature_movw,
4503 &feature_elpm,4503 &feature_elpm,
4504 &feature_break,
4505 &feature_ijmpcall,
4506 &feature_des,
4504 &feature_spmx,4507 &feature_spmx,
4505 &feature_lpm,
4506 &feature_lpmx,4508 &feature_lpmx,
4509 &feature_jmpcall,
4507 &feature_spm,4510 &feature_spm,
4508 &feature_addsubiw,
4509 &feature_ijmpcall,
4510 &feature_elpmx,4511 &feature_elpmx,
4511 &feature_break,4512 &feature_mul,
4512 &feature_movw,
4513 },4513 },
4514};4514};
45154515
...@@ -4517,16 +4517,16 @@ pub const cpu_m3000 = Cpu{...@@ -4517,16 +4517,16 @@ pub const cpu_m3000 = Cpu{
4517 .name = "m3000",4517 .name = "m3000",
4518 .llvm_name = "m3000",4518 .llvm_name = "m3000",
4519 .dependencies = &[_]*const Feature {4519 .dependencies = &[_]*const Feature {
4520 &feature_sram,
4521 &feature_jmpcall,
4522 &feature_mul,
4523 &feature_lpm,4520 &feature_lpm,
4524 &feature_lpmx,4521 &feature_sram,
4525 &feature_spm,
4526 &feature_addsubiw,4522 &feature_addsubiw,
4527 &feature_ijmpcall,
4528 &feature_break,
4529 &feature_movw,4523 &feature_movw,
4524 &feature_break,
4525 &feature_ijmpcall,
4526 &feature_lpmx,
4527 &feature_jmpcall,
4528 &feature_spm,
4529 &feature_mul,
4530 },4530 },
4531};4531};
45324532
lib/std/target/hexagon.zig+4-4
...@@ -10,7 +10,7 @@ pub const feature_duplex = Feature{...@@ -10,7 +10,7 @@ pub const feature_duplex = Feature{
10};10};
1111
12pub const feature_longCalls = Feature{12pub const feature_longCalls = Feature{
13 .name = "long-calls",13 .name = "longCalls",
14 .llvm_name = "long-calls",14 .llvm_name = "long-calls",
15 .description = "Use constant-extended calls",15 .description = "Use constant-extended calls",
16 .dependencies = &[_]*const Feature {16 .dependencies = &[_]*const Feature {
...@@ -52,7 +52,7 @@ pub const feature_nvs = Feature{...@@ -52,7 +52,7 @@ pub const feature_nvs = Feature{
52};52};
5353
54pub const feature_noreturnStackElim = Feature{54pub const feature_noreturnStackElim = Feature{
55 .name = "noreturn-stack-elim",55 .name = "noreturnStackElim",
56 .llvm_name = "noreturn-stack-elim",56 .llvm_name = "noreturn-stack-elim",
57 .description = "Eliminate stack allocation in a noreturn function when possible",57 .description = "Eliminate stack allocation in a noreturn function when possible",
58 .dependencies = &[_]*const Feature {58 .dependencies = &[_]*const Feature {
...@@ -68,7 +68,7 @@ pub const feature_packets = Feature{...@@ -68,7 +68,7 @@ pub const feature_packets = Feature{
68};68};
6969
70pub const feature_reservedR19 = Feature{70pub const feature_reservedR19 = Feature{
71 .name = "reserved-r19",71 .name = "reservedR19",
72 .llvm_name = "reserved-r19",72 .llvm_name = "reserved-r19",
73 .description = "Reserve register R19",73 .description = "Reserve register R19",
74 .dependencies = &[_]*const Feature {74 .dependencies = &[_]*const Feature {
...@@ -76,7 +76,7 @@ pub const feature_reservedR19 = Feature{...@@ -76,7 +76,7 @@ pub const feature_reservedR19 = Feature{
76};76};
7777
78pub const feature_smallData = Feature{78pub const feature_smallData = Feature{
79 .name = "small-data",79 .name = "smallData",
80 .llvm_name = "small-data",80 .llvm_name = "small-data",
81 .description = "Allow GP-relative addressing of global variables",81 .description = "Allow GP-relative addressing of global variables",
82 .dependencies = &[_]*const Feature {82 .dependencies = &[_]*const Feature {
lib/std/target/mips.zig+113-113
...@@ -22,14 +22,14 @@ pub const feature_cnmips = Feature{...@@ -22,14 +22,14 @@ pub const feature_cnmips = Feature{
22 .llvm_name = "cnmips",22 .llvm_name = "cnmips",
23 .description = "Octeon cnMIPS Support",23 .description = "Octeon cnMIPS Support",
24 .dependencies = &[_]*const Feature {24 .dependencies = &[_]*const Feature {
25 &feature_mips5_32r2,
25 &feature_mips1,26 &feature_mips1,
26 &feature_mips3_32r2,27 &feature_mips3_32r2,
28 &feature_mips3_32,
29 &feature_mips4_32r2,
30 &feature_gp64,
27 &feature_mips4_32,31 &feature_mips4_32,
28 &feature_mips5_32r2,
29 &feature_fp64,32 &feature_fp64,
30 &feature_gp64,
31 &feature_mips4_32r2,
32 &feature_mips3_32,
33 },33 },
34};34};
3535
...@@ -100,7 +100,7 @@ pub const feature_gp64 = Feature{...@@ -100,7 +100,7 @@ pub const feature_gp64 = Feature{
100};100};
101101
102pub const feature_longCalls = Feature{102pub const feature_longCalls = Feature{
103 .name = "long-calls",103 .name = "longCalls",
104 .llvm_name = "long-calls",104 .llvm_name = "long-calls",
105 .description = "Disable use of the jal instruction",105 .description = "Disable use of the jal instruction",
106 .dependencies = &[_]*const Feature {106 .dependencies = &[_]*const Feature {
...@@ -163,9 +163,9 @@ pub const feature_mips3 = Feature{...@@ -163,9 +163,9 @@ pub const feature_mips3 = Feature{
163 .dependencies = &[_]*const Feature {163 .dependencies = &[_]*const Feature {
164 &feature_mips1,164 &feature_mips1,
165 &feature_mips3_32r2,165 &feature_mips3_32r2,
166 &feature_fp64,
167 &feature_gp64,
168 &feature_mips3_32,166 &feature_mips3_32,
167 &feature_gp64,
168 &feature_fp64,
169 },169 },
170};170};
171171
...@@ -192,11 +192,11 @@ pub const feature_mips4 = Feature{...@@ -192,11 +192,11 @@ pub const feature_mips4 = Feature{
192 .dependencies = &[_]*const Feature {192 .dependencies = &[_]*const Feature {
193 &feature_mips1,193 &feature_mips1,
194 &feature_mips3_32r2,194 &feature_mips3_32r2,
195 &feature_mips4_32,195 &feature_mips3_32,
196 &feature_fp64,
197 &feature_gp64,196 &feature_gp64,
198 &feature_mips4_32r2,197 &feature_mips4_32r2,
199 &feature_mips3_32,198 &feature_mips4_32,
199 &feature_fp64,
200 },200 },
201};201};
202202
...@@ -221,14 +221,14 @@ pub const feature_mips5 = Feature{...@@ -221,14 +221,14 @@ pub const feature_mips5 = Feature{
221 .llvm_name = "mips5",221 .llvm_name = "mips5",
222 .description = "MIPS V ISA Support [highly experimental]",222 .description = "MIPS V ISA Support [highly experimental]",
223 .dependencies = &[_]*const Feature {223 .dependencies = &[_]*const Feature {
224 &feature_mips5_32r2,
224 &feature_mips1,225 &feature_mips1,
225 &feature_mips3_32r2,226 &feature_mips3_32r2,
227 &feature_mips3_32,
228 &feature_mips4_32r2,
229 &feature_gp64,
226 &feature_mips4_32,230 &feature_mips4_32,
227 &feature_mips5_32r2,
228 &feature_fp64,231 &feature_fp64,
229 &feature_gp64,
230 &feature_mips4_32r2,
231 &feature_mips3_32,
232 },232 },
233};233};
234234
...@@ -253,9 +253,9 @@ pub const feature_mips32 = Feature{...@@ -253,9 +253,9 @@ pub const feature_mips32 = Feature{
253 .llvm_name = "mips32",253 .llvm_name = "mips32",
254 .description = "Mips32 ISA Support",254 .description = "Mips32 ISA Support",
255 .dependencies = &[_]*const Feature {255 .dependencies = &[_]*const Feature {
256 &feature_mips1,
257 &feature_mips4_32,
258 &feature_mips3_32,256 &feature_mips3_32,
257 &feature_mips4_32,
258 &feature_mips1,
259 },259 },
260};260};
261261
...@@ -264,12 +264,12 @@ pub const feature_mips32r2 = Feature{...@@ -264,12 +264,12 @@ pub const feature_mips32r2 = Feature{
264 .llvm_name = "mips32r2",264 .llvm_name = "mips32r2",
265 .description = "Mips32r2 ISA Support",265 .description = "Mips32r2 ISA Support",
266 .dependencies = &[_]*const Feature {266 .dependencies = &[_]*const Feature {
267 &feature_mips5_32r2,
267 &feature_mips1,268 &feature_mips1,
268 &feature_mips3_32r2,269 &feature_mips3_32r2,
269 &feature_mips4_32,
270 &feature_mips5_32r2,
271 &feature_mips4_32r2,
272 &feature_mips3_32,270 &feature_mips3_32,
271 &feature_mips4_32r2,
272 &feature_mips4_32,
273 },273 },
274};274};
275275
...@@ -278,12 +278,12 @@ pub const feature_mips32r3 = Feature{...@@ -278,12 +278,12 @@ pub const feature_mips32r3 = Feature{
278 .llvm_name = "mips32r3",278 .llvm_name = "mips32r3",
279 .description = "Mips32r3 ISA Support",279 .description = "Mips32r3 ISA Support",
280 .dependencies = &[_]*const Feature {280 .dependencies = &[_]*const Feature {
281 &feature_mips5_32r2,
281 &feature_mips1,282 &feature_mips1,
282 &feature_mips3_32r2,283 &feature_mips3_32r2,
283 &feature_mips4_32,
284 &feature_mips5_32r2,
285 &feature_mips4_32r2,
286 &feature_mips3_32,284 &feature_mips3_32,
285 &feature_mips4_32r2,
286 &feature_mips4_32,
287 },287 },
288};288};
289289
...@@ -292,12 +292,12 @@ pub const feature_mips32r5 = Feature{...@@ -292,12 +292,12 @@ pub const feature_mips32r5 = Feature{
292 .llvm_name = "mips32r5",292 .llvm_name = "mips32r5",
293 .description = "Mips32r5 ISA Support",293 .description = "Mips32r5 ISA Support",
294 .dependencies = &[_]*const Feature {294 .dependencies = &[_]*const Feature {
295 &feature_mips5_32r2,
295 &feature_mips1,296 &feature_mips1,
296 &feature_mips3_32r2,297 &feature_mips3_32r2,
297 &feature_mips4_32,
298 &feature_mips5_32r2,
299 &feature_mips4_32r2,
300 &feature_mips3_32,298 &feature_mips3_32,
299 &feature_mips4_32r2,
300 &feature_mips4_32,
301 },301 },
302};302};
303303
...@@ -306,15 +306,15 @@ pub const feature_mips32r6 = Feature{...@@ -306,15 +306,15 @@ pub const feature_mips32r6 = Feature{
306 .llvm_name = "mips32r6",306 .llvm_name = "mips32r6",
307 .description = "Mips32r6 ISA Support [experimental]",307 .description = "Mips32r6 ISA Support [experimental]",
308 .dependencies = &[_]*const Feature {308 .dependencies = &[_]*const Feature {
309 &feature_abs2008,309 &feature_nan2008,
310 &feature_mips5_32r2,
310 &feature_mips1,311 &feature_mips1,
311 &feature_mips3_32r2,312 &feature_mips3_32r2,
313 &feature_mips3_32,
314 &feature_mips4_32r2,
312 &feature_mips4_32,315 &feature_mips4_32,
313 &feature_nan2008,316 &feature_abs2008,
314 &feature_mips5_32r2,
315 &feature_fp64,317 &feature_fp64,
316 &feature_mips4_32r2,
317 &feature_mips3_32,
318 },318 },
319};319};
320320
...@@ -323,14 +323,14 @@ pub const feature_mips64 = Feature{...@@ -323,14 +323,14 @@ pub const feature_mips64 = Feature{
323 .llvm_name = "mips64",323 .llvm_name = "mips64",
324 .description = "Mips64 ISA Support",324 .description = "Mips64 ISA Support",
325 .dependencies = &[_]*const Feature {325 .dependencies = &[_]*const Feature {
326 &feature_mips5_32r2,
326 &feature_mips1,327 &feature_mips1,
327 &feature_mips3_32r2,328 &feature_mips3_32r2,
329 &feature_mips3_32,
330 &feature_mips4_32r2,
331 &feature_gp64,
328 &feature_mips4_32,332 &feature_mips4_32,
329 &feature_mips5_32r2,
330 &feature_fp64,333 &feature_fp64,
331 &feature_gp64,
332 &feature_mips4_32r2,
333 &feature_mips3_32,
334 },334 },
335};335};
336336
...@@ -339,14 +339,14 @@ pub const feature_mips64r2 = Feature{...@@ -339,14 +339,14 @@ pub const feature_mips64r2 = Feature{
339 .llvm_name = "mips64r2",339 .llvm_name = "mips64r2",
340 .description = "Mips64r2 ISA Support",340 .description = "Mips64r2 ISA Support",
341 .dependencies = &[_]*const Feature {341 .dependencies = &[_]*const Feature {
342 &feature_mips5_32r2,
342 &feature_mips1,343 &feature_mips1,
343 &feature_mips3_32r2,344 &feature_mips3_32r2,
345 &feature_mips3_32,
346 &feature_mips4_32r2,
347 &feature_gp64,
344 &feature_mips4_32,348 &feature_mips4_32,
345 &feature_mips5_32r2,
346 &feature_fp64,349 &feature_fp64,
347 &feature_gp64,
348 &feature_mips4_32r2,
349 &feature_mips3_32,
350 },350 },
351};351};
352352
...@@ -355,14 +355,14 @@ pub const feature_mips64r3 = Feature{...@@ -355,14 +355,14 @@ pub const feature_mips64r3 = Feature{
355 .llvm_name = "mips64r3",355 .llvm_name = "mips64r3",
356 .description = "Mips64r3 ISA Support",356 .description = "Mips64r3 ISA Support",
357 .dependencies = &[_]*const Feature {357 .dependencies = &[_]*const Feature {
358 &feature_mips5_32r2,
358 &feature_mips1,359 &feature_mips1,
359 &feature_mips3_32r2,360 &feature_mips3_32r2,
361 &feature_mips3_32,
362 &feature_mips4_32r2,
363 &feature_gp64,
360 &feature_mips4_32,364 &feature_mips4_32,
361 &feature_mips5_32r2,
362 &feature_fp64,365 &feature_fp64,
363 &feature_gp64,
364 &feature_mips4_32r2,
365 &feature_mips3_32,
366 },366 },
367};367};
368368
...@@ -371,14 +371,14 @@ pub const feature_mips64r5 = Feature{...@@ -371,14 +371,14 @@ pub const feature_mips64r5 = Feature{
371 .llvm_name = "mips64r5",371 .llvm_name = "mips64r5",
372 .description = "Mips64r5 ISA Support",372 .description = "Mips64r5 ISA Support",
373 .dependencies = &[_]*const Feature {373 .dependencies = &[_]*const Feature {
374 &feature_mips5_32r2,
374 &feature_mips1,375 &feature_mips1,
375 &feature_mips3_32r2,376 &feature_mips3_32r2,
377 &feature_mips3_32,
378 &feature_mips4_32r2,
379 &feature_gp64,
376 &feature_mips4_32,380 &feature_mips4_32,
377 &feature_mips5_32r2,
378 &feature_fp64,381 &feature_fp64,
379 &feature_gp64,
380 &feature_mips4_32r2,
381 &feature_mips3_32,
382 },382 },
383};383};
384384
...@@ -387,16 +387,16 @@ pub const feature_mips64r6 = Feature{...@@ -387,16 +387,16 @@ pub const feature_mips64r6 = Feature{
387 .llvm_name = "mips64r6",387 .llvm_name = "mips64r6",
388 .description = "Mips64r6 ISA Support [experimental]",388 .description = "Mips64r6 ISA Support [experimental]",
389 .dependencies = &[_]*const Feature {389 .dependencies = &[_]*const Feature {
390 &feature_abs2008,390 &feature_nan2008,
391 &feature_mips5_32r2,
391 &feature_mips1,392 &feature_mips1,
392 &feature_mips3_32r2,393 &feature_mips3_32r2,
394 &feature_mips3_32,
395 &feature_mips4_32r2,
396 &feature_gp64,
393 &feature_mips4_32,397 &feature_mips4_32,
394 &feature_nan2008,398 &feature_abs2008,
395 &feature_mips5_32r2,
396 &feature_fp64,399 &feature_fp64,
397 &feature_gp64,
398 &feature_mips4_32r2,
399 &feature_mips3_32,
400 },400 },
401};401};
402402
...@@ -433,7 +433,7 @@ pub const feature_ptr64 = Feature{...@@ -433,7 +433,7 @@ pub const feature_ptr64 = Feature{
433};433};
434434
435pub const feature_singleFloat = Feature{435pub const feature_singleFloat = Feature{
436 .name = "single-float",436 .name = "singleFloat",
437 .llvm_name = "single-float",437 .llvm_name = "single-float",
438 .description = "Only supports single precision float",438 .description = "Only supports single precision float",
439 .dependencies = &[_]*const Feature {439 .dependencies = &[_]*const Feature {
...@@ -441,7 +441,7 @@ pub const feature_singleFloat = Feature{...@@ -441,7 +441,7 @@ pub const feature_singleFloat = Feature{
441};441};
442442
443pub const feature_softFloat = Feature{443pub const feature_softFloat = Feature{
444 .name = "soft-float",444 .name = "softFloat",
445 .llvm_name = "soft-float",445 .llvm_name = "soft-float",
446 .description = "Does not support floating point instructions",446 .description = "Does not support floating point instructions",
447 .dependencies = &[_]*const Feature {447 .dependencies = &[_]*const Feature {
...@@ -457,7 +457,7 @@ pub const feature_sym32 = Feature{...@@ -457,7 +457,7 @@ pub const feature_sym32 = Feature{
457};457};
458458
459pub const feature_useIndirectJumpHazard = Feature{459pub const feature_useIndirectJumpHazard = Feature{
460 .name = "use-indirect-jump-hazard",460 .name = "useIndirectJumpHazard",
461 .llvm_name = "use-indirect-jump-hazard",461 .llvm_name = "use-indirect-jump-hazard",
462 .description = "Use indirect jump guards to prevent certain speculation based attacks",462 .description = "Use indirect jump guards to prevent certain speculation based attacks",
463 .dependencies = &[_]*const Feature {463 .dependencies = &[_]*const Feature {
...@@ -465,7 +465,7 @@ pub const feature_useIndirectJumpHazard = Feature{...@@ -465,7 +465,7 @@ pub const feature_useIndirectJumpHazard = Feature{
465};465};
466466
467pub const feature_useTccInDiv = Feature{467pub const feature_useTccInDiv = Feature{
468 .name = "use-tcc-in-div",468 .name = "useTccInDiv",
469 .llvm_name = "use-tcc-in-div",469 .llvm_name = "use-tcc-in-div",
470 .description = "Force the assembler to use trapping",470 .description = "Force the assembler to use trapping",
471 .dependencies = &[_]*const Feature {471 .dependencies = &[_]*const Feature {
...@@ -501,12 +501,12 @@ pub const feature_p5600 = Feature{...@@ -501,12 +501,12 @@ pub const feature_p5600 = Feature{
501 .llvm_name = "p5600",501 .llvm_name = "p5600",
502 .description = "The P5600 Processor",502 .description = "The P5600 Processor",
503 .dependencies = &[_]*const Feature {503 .dependencies = &[_]*const Feature {
504 &feature_mips5_32r2,
504 &feature_mips1,505 &feature_mips1,
505 &feature_mips3_32r2,506 &feature_mips3_32r2,
506 &feature_mips4_32,
507 &feature_mips5_32r2,
508 &feature_mips4_32r2,
509 &feature_mips3_32,507 &feature_mips3_32,
508 &feature_mips4_32r2,
509 &feature_mips4_32,
510 },510 },
511};511};
512512
...@@ -586,9 +586,9 @@ pub const cpu_mips3 = Cpu{...@@ -586,9 +586,9 @@ pub const cpu_mips3 = Cpu{
586 .dependencies = &[_]*const Feature {586 .dependencies = &[_]*const Feature {
587 &feature_mips1,587 &feature_mips1,
588 &feature_mips3_32r2,588 &feature_mips3_32r2,
589 &feature_fp64,
590 &feature_gp64,
591 &feature_mips3_32,589 &feature_mips3_32,
590 &feature_gp64,
591 &feature_fp64,
592 &feature_mips3,592 &feature_mips3,
593 },593 },
594};594};
...@@ -597,9 +597,9 @@ pub const cpu_mips32 = Cpu{...@@ -597,9 +597,9 @@ pub const cpu_mips32 = Cpu{
597 .name = "mips32",597 .name = "mips32",
598 .llvm_name = "mips32",598 .llvm_name = "mips32",
599 .dependencies = &[_]*const Feature {599 .dependencies = &[_]*const Feature {
600 &feature_mips1,
601 &feature_mips4_32,
602 &feature_mips3_32,600 &feature_mips3_32,
601 &feature_mips4_32,
602 &feature_mips1,
603 &feature_mips32,603 &feature_mips32,
604 },604 },
605};605};
...@@ -608,12 +608,12 @@ pub const cpu_mips32r2 = Cpu{...@@ -608,12 +608,12 @@ pub const cpu_mips32r2 = Cpu{
608 .name = "mips32r2",608 .name = "mips32r2",
609 .llvm_name = "mips32r2",609 .llvm_name = "mips32r2",
610 .dependencies = &[_]*const Feature {610 .dependencies = &[_]*const Feature {
611 &feature_mips5_32r2,
611 &feature_mips1,612 &feature_mips1,
612 &feature_mips3_32r2,613 &feature_mips3_32r2,
613 &feature_mips4_32,
614 &feature_mips5_32r2,
615 &feature_mips4_32r2,
616 &feature_mips3_32,614 &feature_mips3_32,
615 &feature_mips4_32r2,
616 &feature_mips4_32,
617 &feature_mips32r2,617 &feature_mips32r2,
618 },618 },
619};619};
...@@ -622,12 +622,12 @@ pub const cpu_mips32r3 = Cpu{...@@ -622,12 +622,12 @@ pub const cpu_mips32r3 = Cpu{
622 .name = "mips32r3",622 .name = "mips32r3",
623 .llvm_name = "mips32r3",623 .llvm_name = "mips32r3",
624 .dependencies = &[_]*const Feature {624 .dependencies = &[_]*const Feature {
625 &feature_mips5_32r2,
625 &feature_mips1,626 &feature_mips1,
626 &feature_mips3_32r2,627 &feature_mips3_32r2,
627 &feature_mips4_32,
628 &feature_mips5_32r2,
629 &feature_mips4_32r2,
630 &feature_mips3_32,628 &feature_mips3_32,
629 &feature_mips4_32r2,
630 &feature_mips4_32,
631 &feature_mips32r3,631 &feature_mips32r3,
632 },632 },
633};633};
...@@ -636,12 +636,12 @@ pub const cpu_mips32r5 = Cpu{...@@ -636,12 +636,12 @@ pub const cpu_mips32r5 = Cpu{
636 .name = "mips32r5",636 .name = "mips32r5",
637 .llvm_name = "mips32r5",637 .llvm_name = "mips32r5",
638 .dependencies = &[_]*const Feature {638 .dependencies = &[_]*const Feature {
639 &feature_mips5_32r2,
639 &feature_mips1,640 &feature_mips1,
640 &feature_mips3_32r2,641 &feature_mips3_32r2,
641 &feature_mips4_32,
642 &feature_mips5_32r2,
643 &feature_mips4_32r2,
644 &feature_mips3_32,642 &feature_mips3_32,
643 &feature_mips4_32r2,
644 &feature_mips4_32,
645 &feature_mips32r5,645 &feature_mips32r5,
646 },646 },
647};647};
...@@ -650,15 +650,15 @@ pub const cpu_mips32r6 = Cpu{...@@ -650,15 +650,15 @@ pub const cpu_mips32r6 = Cpu{
650 .name = "mips32r6",650 .name = "mips32r6",
651 .llvm_name = "mips32r6",651 .llvm_name = "mips32r6",
652 .dependencies = &[_]*const Feature {652 .dependencies = &[_]*const Feature {
653 &feature_abs2008,653 &feature_nan2008,
654 &feature_mips5_32r2,
654 &feature_mips1,655 &feature_mips1,
655 &feature_mips3_32r2,656 &feature_mips3_32r2,
657 &feature_mips3_32,
658 &feature_mips4_32r2,
656 &feature_mips4_32,659 &feature_mips4_32,
657 &feature_nan2008,660 &feature_abs2008,
658 &feature_mips5_32r2,
659 &feature_fp64,661 &feature_fp64,
660 &feature_mips4_32r2,
661 &feature_mips3_32,
662 &feature_mips32r6,662 &feature_mips32r6,
663 },663 },
664};664};
...@@ -669,11 +669,11 @@ pub const cpu_mips4 = Cpu{...@@ -669,11 +669,11 @@ pub const cpu_mips4 = Cpu{
669 .dependencies = &[_]*const Feature {669 .dependencies = &[_]*const Feature {
670 &feature_mips1,670 &feature_mips1,
671 &feature_mips3_32r2,671 &feature_mips3_32r2,
672 &feature_mips4_32,672 &feature_mips3_32,
673 &feature_fp64,
674 &feature_gp64,673 &feature_gp64,
675 &feature_mips4_32r2,674 &feature_mips4_32r2,
676 &feature_mips3_32,675 &feature_mips4_32,
676 &feature_fp64,
677 &feature_mips4,677 &feature_mips4,
678 },678 },
679};679};
...@@ -682,14 +682,14 @@ pub const cpu_mips5 = Cpu{...@@ -682,14 +682,14 @@ pub const cpu_mips5 = Cpu{
682 .name = "mips5",682 .name = "mips5",
683 .llvm_name = "mips5",683 .llvm_name = "mips5",
684 .dependencies = &[_]*const Feature {684 .dependencies = &[_]*const Feature {
685 &feature_mips5_32r2,
685 &feature_mips1,686 &feature_mips1,
686 &feature_mips3_32r2,687 &feature_mips3_32r2,
688 &feature_mips3_32,
689 &feature_mips4_32r2,
690 &feature_gp64,
687 &feature_mips4_32,691 &feature_mips4_32,
688 &feature_mips5_32r2,
689 &feature_fp64,692 &feature_fp64,
690 &feature_gp64,
691 &feature_mips4_32r2,
692 &feature_mips3_32,
693 &feature_mips5,693 &feature_mips5,
694 },694 },
695};695};
...@@ -698,14 +698,14 @@ pub const cpu_mips64 = Cpu{...@@ -698,14 +698,14 @@ pub const cpu_mips64 = Cpu{
698 .name = "mips64",698 .name = "mips64",
699 .llvm_name = "mips64",699 .llvm_name = "mips64",
700 .dependencies = &[_]*const Feature {700 .dependencies = &[_]*const Feature {
701 &feature_mips5_32r2,
701 &feature_mips1,702 &feature_mips1,
702 &feature_mips3_32r2,703 &feature_mips3_32r2,
704 &feature_mips3_32,
705 &feature_mips4_32r2,
706 &feature_gp64,
703 &feature_mips4_32,707 &feature_mips4_32,
704 &feature_mips5_32r2,
705 &feature_fp64,708 &feature_fp64,
706 &feature_gp64,
707 &feature_mips4_32r2,
708 &feature_mips3_32,
709 &feature_mips64,709 &feature_mips64,
710 },710 },
711};711};
...@@ -714,14 +714,14 @@ pub const cpu_mips64r2 = Cpu{...@@ -714,14 +714,14 @@ pub const cpu_mips64r2 = Cpu{
714 .name = "mips64r2",714 .name = "mips64r2",
715 .llvm_name = "mips64r2",715 .llvm_name = "mips64r2",
716 .dependencies = &[_]*const Feature {716 .dependencies = &[_]*const Feature {
717 &feature_mips5_32r2,
717 &feature_mips1,718 &feature_mips1,
718 &feature_mips3_32r2,719 &feature_mips3_32r2,
720 &feature_mips3_32,
721 &feature_mips4_32r2,
722 &feature_gp64,
719 &feature_mips4_32,723 &feature_mips4_32,
720 &feature_mips5_32r2,
721 &feature_fp64,724 &feature_fp64,
722 &feature_gp64,
723 &feature_mips4_32r2,
724 &feature_mips3_32,
725 &feature_mips64r2,725 &feature_mips64r2,
726 },726 },
727};727};
...@@ -730,14 +730,14 @@ pub const cpu_mips64r3 = Cpu{...@@ -730,14 +730,14 @@ pub const cpu_mips64r3 = Cpu{
730 .name = "mips64r3",730 .name = "mips64r3",
731 .llvm_name = "mips64r3",731 .llvm_name = "mips64r3",
732 .dependencies = &[_]*const Feature {732 .dependencies = &[_]*const Feature {
733 &feature_mips5_32r2,
733 &feature_mips1,734 &feature_mips1,
734 &feature_mips3_32r2,735 &feature_mips3_32r2,
736 &feature_mips3_32,
737 &feature_mips4_32r2,
738 &feature_gp64,
735 &feature_mips4_32,739 &feature_mips4_32,
736 &feature_mips5_32r2,
737 &feature_fp64,740 &feature_fp64,
738 &feature_gp64,
739 &feature_mips4_32r2,
740 &feature_mips3_32,
741 &feature_mips64r3,741 &feature_mips64r3,
742 },742 },
743};743};
...@@ -746,14 +746,14 @@ pub const cpu_mips64r5 = Cpu{...@@ -746,14 +746,14 @@ pub const cpu_mips64r5 = Cpu{
746 .name = "mips64r5",746 .name = "mips64r5",
747 .llvm_name = "mips64r5",747 .llvm_name = "mips64r5",
748 .dependencies = &[_]*const Feature {748 .dependencies = &[_]*const Feature {
749 &feature_mips5_32r2,
749 &feature_mips1,750 &feature_mips1,
750 &feature_mips3_32r2,751 &feature_mips3_32r2,
752 &feature_mips3_32,
753 &feature_mips4_32r2,
754 &feature_gp64,
751 &feature_mips4_32,755 &feature_mips4_32,
752 &feature_mips5_32r2,
753 &feature_fp64,756 &feature_fp64,
754 &feature_gp64,
755 &feature_mips4_32r2,
756 &feature_mips3_32,
757 &feature_mips64r5,757 &feature_mips64r5,
758 },758 },
759};759};
...@@ -762,16 +762,16 @@ pub const cpu_mips64r6 = Cpu{...@@ -762,16 +762,16 @@ pub const cpu_mips64r6 = Cpu{
762 .name = "mips64r6",762 .name = "mips64r6",
763 .llvm_name = "mips64r6",763 .llvm_name = "mips64r6",
764 .dependencies = &[_]*const Feature {764 .dependencies = &[_]*const Feature {
765 &feature_abs2008,765 &feature_nan2008,
766 &feature_mips5_32r2,
766 &feature_mips1,767 &feature_mips1,
767 &feature_mips3_32r2,768 &feature_mips3_32r2,
769 &feature_mips3_32,
770 &feature_mips4_32r2,
771 &feature_gp64,
768 &feature_mips4_32,772 &feature_mips4_32,
769 &feature_nan2008,773 &feature_abs2008,
770 &feature_mips5_32r2,
771 &feature_fp64,774 &feature_fp64,
772 &feature_gp64,
773 &feature_mips4_32r2,
774 &feature_mips3_32,
775 &feature_mips64r6,775 &feature_mips64r6,
776 },776 },
777};777};
...@@ -780,14 +780,14 @@ pub const cpu_octeon = Cpu{...@@ -780,14 +780,14 @@ pub const cpu_octeon = Cpu{
780 .name = "octeon",780 .name = "octeon",
781 .llvm_name = "octeon",781 .llvm_name = "octeon",
782 .dependencies = &[_]*const Feature {782 .dependencies = &[_]*const Feature {
783 &feature_mips5_32r2,
783 &feature_mips1,784 &feature_mips1,
784 &feature_mips3_32r2,785 &feature_mips3_32r2,
786 &feature_mips3_32,
787 &feature_mips4_32r2,
788 &feature_gp64,
785 &feature_mips4_32,789 &feature_mips4_32,
786 &feature_mips5_32r2,
787 &feature_fp64,790 &feature_fp64,
788 &feature_gp64,
789 &feature_mips4_32r2,
790 &feature_mips3_32,
791 &feature_cnmips,791 &feature_cnmips,
792 &feature_mips64r2,792 &feature_mips64r2,
793 },793 },
...@@ -797,12 +797,12 @@ pub const cpu_p5600 = Cpu{...@@ -797,12 +797,12 @@ pub const cpu_p5600 = Cpu{
797 .name = "p5600",797 .name = "p5600",
798 .llvm_name = "p5600",798 .llvm_name = "p5600",
799 .dependencies = &[_]*const Feature {799 .dependencies = &[_]*const Feature {
800 &feature_mips5_32r2,
800 &feature_mips1,801 &feature_mips1,
801 &feature_mips3_32r2,802 &feature_mips3_32r2,
802 &feature_mips4_32,
803 &feature_mips5_32r2,
804 &feature_mips4_32r2,
805 &feature_mips3_32,803 &feature_mips3_32,
804 &feature_mips4_32r2,
805 &feature_mips4_32,
806 &feature_p5600,806 &feature_p5600,
807 },807 },
808};808};
lib/std/target/powerpc.zig+21-21
...@@ -2,7 +2,7 @@ const Feature = @import("std").target.Feature;...@@ -2,7 +2,7 @@ const Feature = @import("std").target.Feature;
2const Cpu = @import("std").target.Cpu;2const Cpu = @import("std").target.Cpu;
33
4pub const feature_bit64 = Feature{4pub const feature_bit64 = Feature{
5 .name = "64bit",5 .name = "bit64",
6 .llvm_name = "64bit",6 .llvm_name = "64bit",
7 .description = "Enable 64-bit instructions",7 .description = "Enable 64-bit instructions",
8 .dependencies = &[_]*const Feature {8 .dependencies = &[_]*const Feature {
...@@ -10,7 +10,7 @@ pub const feature_bit64 = Feature{...@@ -10,7 +10,7 @@ pub const feature_bit64 = Feature{
10};10};
1111
12pub const feature_bitregs64 = Feature{12pub const feature_bitregs64 = Feature{
13 .name = "64bitregs",13 .name = "bitregs64",
14 .llvm_name = "64bitregs",14 .llvm_name = "64bitregs",
15 .description = "Enable 64-bit registers usage for ppc32 [beta]",15 .description = "Enable 64-bit registers usage for ppc32 [beta]",
16 .dependencies = &[_]*const Feature {16 .dependencies = &[_]*const Feature {
...@@ -60,7 +60,7 @@ pub const feature_crbits = Feature{...@@ -60,7 +60,7 @@ pub const feature_crbits = Feature{
60};60};
6161
62pub const feature_directMove = Feature{62pub const feature_directMove = Feature{
63 .name = "direct-move",63 .name = "directMove",
64 .llvm_name = "direct-move",64 .llvm_name = "direct-move",
65 .description = "Enable Power8 direct move instructions",65 .description = "Enable Power8 direct move instructions",
66 .dependencies = &[_]*const Feature {66 .dependencies = &[_]*const Feature {
...@@ -183,7 +183,7 @@ pub const feature_htm = Feature{...@@ -183,7 +183,7 @@ pub const feature_htm = Feature{
183};183};
184184
185pub const feature_hardFloat = Feature{185pub const feature_hardFloat = Feature{
186 .name = "hard-float",186 .name = "hardFloat",
187 .llvm_name = "hard-float",187 .llvm_name = "hard-float",
188 .description = "Enable floating-point instructions",188 .description = "Enable floating-point instructions",
189 .dependencies = &[_]*const Feature {189 .dependencies = &[_]*const Feature {
...@@ -199,7 +199,7 @@ pub const feature_icbt = Feature{...@@ -199,7 +199,7 @@ pub const feature_icbt = Feature{
199};199};
200200
201pub const feature_isaV30Instructions = Feature{201pub const feature_isaV30Instructions = Feature{
202 .name = "isa-v30-instructions",202 .name = "isaV30Instructions",
203 .llvm_name = "isa-v30-instructions",203 .llvm_name = "isa-v30-instructions",
204 .description = "Enable instructions added in ISA 3.0.",204 .description = "Enable instructions added in ISA 3.0.",
205 .dependencies = &[_]*const Feature {205 .dependencies = &[_]*const Feature {
...@@ -215,7 +215,7 @@ pub const feature_isel = Feature{...@@ -215,7 +215,7 @@ pub const feature_isel = Feature{
215};215};
216216
217pub const feature_invariantFunctionDescriptors = Feature{217pub const feature_invariantFunctionDescriptors = Feature{
218 .name = "invariant-function-descriptors",218 .name = "invariantFunctionDescriptors",
219 .llvm_name = "invariant-function-descriptors",219 .llvm_name = "invariant-function-descriptors",
220 .description = "Assume function descriptors are invariant",220 .description = "Assume function descriptors are invariant",
221 .dependencies = &[_]*const Feature {221 .dependencies = &[_]*const Feature {
...@@ -265,7 +265,7 @@ pub const feature_msync = Feature{...@@ -265,7 +265,7 @@ pub const feature_msync = Feature{
265};265};
266266
267pub const feature_power8Altivec = Feature{267pub const feature_power8Altivec = Feature{
268 .name = "power8-altivec",268 .name = "power8Altivec",
269 .llvm_name = "power8-altivec",269 .llvm_name = "power8-altivec",
270 .description = "Enable POWER8 Altivec instructions",270 .description = "Enable POWER8 Altivec instructions",
271 .dependencies = &[_]*const Feature {271 .dependencies = &[_]*const Feature {
...@@ -283,7 +283,7 @@ pub const feature_crypto = Feature{...@@ -283,7 +283,7 @@ pub const feature_crypto = Feature{
283};283};
284284
285pub const feature_power8Vector = Feature{285pub const feature_power8Vector = Feature{
286 .name = "power8-vector",286 .name = "power8Vector",
287 .llvm_name = "power8-vector",287 .llvm_name = "power8-vector",
288 .description = "Enable POWER8 vector instructions",288 .description = "Enable POWER8 vector instructions",
289 .dependencies = &[_]*const Feature {289 .dependencies = &[_]*const Feature {
...@@ -292,7 +292,7 @@ pub const feature_power8Vector = Feature{...@@ -292,7 +292,7 @@ pub const feature_power8Vector = Feature{
292};292};
293293
294pub const feature_power9Altivec = Feature{294pub const feature_power9Altivec = Feature{
295 .name = "power9-altivec",295 .name = "power9Altivec",
296 .llvm_name = "power9-altivec",296 .llvm_name = "power9-altivec",
297 .description = "Enable POWER9 Altivec instructions",297 .description = "Enable POWER9 Altivec instructions",
298 .dependencies = &[_]*const Feature {298 .dependencies = &[_]*const Feature {
...@@ -302,7 +302,7 @@ pub const feature_power9Altivec = Feature{...@@ -302,7 +302,7 @@ pub const feature_power9Altivec = Feature{
302};302};
303303
304pub const feature_power9Vector = Feature{304pub const feature_power9Vector = Feature{
305 .name = "power9-vector",305 .name = "power9Vector",
306 .llvm_name = "power9-vector",306 .llvm_name = "power9-vector",
307 .description = "Enable POWER9 vector instructions",307 .description = "Enable POWER9 vector instructions",
308 .dependencies = &[_]*const Feature {308 .dependencies = &[_]*const Feature {
...@@ -336,7 +336,7 @@ pub const feature_ppc6xx = Feature{...@@ -336,7 +336,7 @@ pub const feature_ppc6xx = Feature{
336};336};
337337
338pub const feature_ppcPostraSched = Feature{338pub const feature_ppcPostraSched = Feature{
339 .name = "ppc-postra-sched",339 .name = "ppcPostraSched",
340 .llvm_name = "ppc-postra-sched",340 .llvm_name = "ppc-postra-sched",
341 .description = "Use PowerPC post-RA scheduling strategy",341 .description = "Use PowerPC post-RA scheduling strategy",
342 .dependencies = &[_]*const Feature {342 .dependencies = &[_]*const Feature {
...@@ -344,7 +344,7 @@ pub const feature_ppcPostraSched = Feature{...@@ -344,7 +344,7 @@ pub const feature_ppcPostraSched = Feature{
344};344};
345345
346pub const feature_ppcPreraSched = Feature{346pub const feature_ppcPreraSched = Feature{
347 .name = "ppc-prera-sched",347 .name = "ppcPreraSched",
348 .llvm_name = "ppc-prera-sched",348 .llvm_name = "ppc-prera-sched",
349 .description = "Use PowerPC pre-RA scheduling strategy",349 .description = "Use PowerPC pre-RA scheduling strategy",
350 .dependencies = &[_]*const Feature {350 .dependencies = &[_]*const Feature {
...@@ -352,7 +352,7 @@ pub const feature_ppcPreraSched = Feature{...@@ -352,7 +352,7 @@ pub const feature_ppcPreraSched = Feature{
352};352};
353353
354pub const feature_partwordAtomics = Feature{354pub const feature_partwordAtomics = Feature{
355 .name = "partword-atomics",355 .name = "partwordAtomics",
356 .llvm_name = "partword-atomics",356 .llvm_name = "partword-atomics",
357 .description = "Enable l[bh]arx and st[bh]cx.",357 .description = "Enable l[bh]arx and st[bh]cx.",
358 .dependencies = &[_]*const Feature {358 .dependencies = &[_]*const Feature {
...@@ -395,7 +395,7 @@ pub const feature_stfiwx = Feature{...@@ -395,7 +395,7 @@ pub const feature_stfiwx = Feature{
395};395};
396396
397pub const feature_securePlt = Feature{397pub const feature_securePlt = Feature{
398 .name = "secure-plt",398 .name = "securePlt",
399 .llvm_name = "secure-plt",399 .llvm_name = "secure-plt",
400 .description = "Enable secure plt mode",400 .description = "Enable secure plt mode",
401 .dependencies = &[_]*const Feature {401 .dependencies = &[_]*const Feature {
...@@ -403,7 +403,7 @@ pub const feature_securePlt = Feature{...@@ -403,7 +403,7 @@ pub const feature_securePlt = Feature{
403};403};
404404
405pub const feature_slowPopcntd = Feature{405pub const feature_slowPopcntd = Feature{
406 .name = "slow-popcntd",406 .name = "slowPopcntd",
407 .llvm_name = "slow-popcntd",407 .llvm_name = "slow-popcntd",
408 .description = "Has slow popcnt[dw] instructions",408 .description = "Has slow popcnt[dw] instructions",
409 .dependencies = &[_]*const Feature {409 .dependencies = &[_]*const Feature {
...@@ -411,7 +411,7 @@ pub const feature_slowPopcntd = Feature{...@@ -411,7 +411,7 @@ pub const feature_slowPopcntd = Feature{
411};411};
412412
413pub const feature_twoConstNr = Feature{413pub const feature_twoConstNr = Feature{
414 .name = "two-const-nr",414 .name = "twoConstNr",
415 .llvm_name = "two-const-nr",415 .llvm_name = "two-const-nr",
416 .description = "Requires two constant Newton-Raphson computation",416 .description = "Requires two constant Newton-Raphson computation",
417 .dependencies = &[_]*const Feature {417 .dependencies = &[_]*const Feature {
...@@ -428,7 +428,7 @@ pub const feature_vsx = Feature{...@@ -428,7 +428,7 @@ pub const feature_vsx = Feature{
428};428};
429429
430pub const feature_vectorsUseTwoUnits = Feature{430pub const feature_vectorsUseTwoUnits = Feature{
431 .name = "vectors-use-two-units",431 .name = "vectorsUseTwoUnits",
432 .llvm_name = "vectors-use-two-units",432 .llvm_name = "vectors-use-two-units",
433 .description = "Vectors use two units",433 .description = "Vectors use two units",
434 .dependencies = &[_]*const Feature {434 .dependencies = &[_]*const Feature {
...@@ -546,7 +546,7 @@ pub const cpu_603 = Cpu{...@@ -546,7 +546,7 @@ pub const cpu_603 = Cpu{
546};546};
547547
548pub const cpu_e603 = Cpu{548pub const cpu_e603 = Cpu{
549 .name = "603e",549 .name = "e603",
550 .llvm_name = "603e",550 .llvm_name = "603e",
551 .dependencies = &[_]*const Feature {551 .dependencies = &[_]*const Feature {
552 &feature_hardFloat,552 &feature_hardFloat,
...@@ -556,7 +556,7 @@ pub const cpu_e603 = Cpu{...@@ -556,7 +556,7 @@ pub const cpu_e603 = Cpu{
556};556};
557557
558pub const cpu_ev603 = Cpu{558pub const cpu_ev603 = Cpu{
559 .name = "603ev",559 .name = "ev603",
560 .llvm_name = "603ev",560 .llvm_name = "603ev",
561 .dependencies = &[_]*const Feature {561 .dependencies = &[_]*const Feature {
562 &feature_hardFloat,562 &feature_hardFloat,
...@@ -576,7 +576,7 @@ pub const cpu_604 = Cpu{...@@ -576,7 +576,7 @@ pub const cpu_604 = Cpu{
576};576};
577577
578pub const cpu_e604 = Cpu{578pub const cpu_e604 = Cpu{
579 .name = "604e",579 .name = "e604",
580 .llvm_name = "604e",580 .llvm_name = "604e",
581 .dependencies = &[_]*const Feature {581 .dependencies = &[_]*const Feature {
582 &feature_hardFloat,582 &feature_hardFloat,
...@@ -755,7 +755,7 @@ pub const cpu_g4 = Cpu{...@@ -755,7 +755,7 @@ pub const cpu_g4 = Cpu{
755};755};
756756
757pub const cpu_g4Plus = Cpu{757pub const cpu_g4Plus = Cpu{
758 .name = "g4+",758 .name = "g4Plus",
759 .llvm_name = "g4+",759 .llvm_name = "g4+",
760 .dependencies = &[_]*const Feature {760 .dependencies = &[_]*const Feature {
761 &feature_hardFloat,761 &feature_hardFloat,
lib/std/target/riscv.zig+4-4
...@@ -2,7 +2,7 @@ const Feature = @import("std").target.Feature;...@@ -2,7 +2,7 @@ const Feature = @import("std").target.Feature;
2const Cpu = @import("std").target.Cpu;2const Cpu = @import("std").target.Cpu;
33
4pub const feature_bit64 = Feature{4pub const feature_bit64 = Feature{
5 .name = "64bit",5 .name = "bit64",
6 .llvm_name = "64bit",6 .llvm_name = "64bit",
7 .description = "Implements RV64",7 .description = "Implements RV64",
8 .dependencies = &[_]*const Feature {8 .dependencies = &[_]*const Feature {
...@@ -18,7 +18,7 @@ pub const feature_e = Feature{...@@ -18,7 +18,7 @@ pub const feature_e = Feature{
18};18};
1919
20pub const feature_rvcHints = Feature{20pub const feature_rvcHints = Feature{
21 .name = "rvc-hints",21 .name = "rvcHints",
22 .llvm_name = "rvc-hints",22 .llvm_name = "rvc-hints",
23 .description = "Enable RVC Hint Instructions.",23 .description = "Enable RVC Hint Instructions.",
24 .dependencies = &[_]*const Feature {24 .dependencies = &[_]*const Feature {
...@@ -87,7 +87,7 @@ pub const features = &[_]*const Feature {...@@ -87,7 +87,7 @@ pub const features = &[_]*const Feature {
87};87};
8888
89pub const cpu_genericRv32 = Cpu{89pub const cpu_genericRv32 = Cpu{
90 .name = "generic-rv32",90 .name = "genericRv32",
91 .llvm_name = "generic-rv32",91 .llvm_name = "generic-rv32",
92 .dependencies = &[_]*const Feature {92 .dependencies = &[_]*const Feature {
93 &feature_rvcHints,93 &feature_rvcHints,
...@@ -95,7 +95,7 @@ pub const cpu_genericRv32 = Cpu{...@@ -95,7 +95,7 @@ pub const cpu_genericRv32 = Cpu{
95};95};
9696
97pub const cpu_genericRv64 = Cpu{97pub const cpu_genericRv64 = Cpu{
98 .name = "generic-rv64",98 .name = "genericRv64",
99 .llvm_name = "generic-rv64",99 .llvm_name = "generic-rv64",
100 .dependencies = &[_]*const Feature {100 .dependencies = &[_]*const Feature {
101 &feature_bit64,101 &feature_bit64,
lib/std/target/sparc.zig+9-9
...@@ -2,7 +2,7 @@ const Feature = @import("std").target.Feature;...@@ -2,7 +2,7 @@ const Feature = @import("std").target.Feature;
2const Cpu = @import("std").target.Cpu;2const Cpu = @import("std").target.Cpu;
33
4pub const feature_hardQuadFloat = Feature{4pub const feature_hardQuadFloat = Feature{
5 .name = "hard-quad-float",5 .name = "hardQuadFloat",
6 .llvm_name = "hard-quad-float",6 .llvm_name = "hard-quad-float",
7 .description = "Enable quad-word floating point instructions",7 .description = "Enable quad-word floating point instructions",
8 .dependencies = &[_]*const Feature {8 .dependencies = &[_]*const Feature {
...@@ -18,7 +18,7 @@ pub const feature_leon = Feature{...@@ -18,7 +18,7 @@ pub const feature_leon = Feature{
18};18};
1919
20pub const feature_noFmuls = Feature{20pub const feature_noFmuls = Feature{
21 .name = "no-fmuls",21 .name = "noFmuls",
22 .llvm_name = "no-fmuls",22 .llvm_name = "no-fmuls",
23 .description = "Disable the fmuls instruction.",23 .description = "Disable the fmuls instruction.",
24 .dependencies = &[_]*const Feature {24 .dependencies = &[_]*const Feature {
...@@ -26,7 +26,7 @@ pub const feature_noFmuls = Feature{...@@ -26,7 +26,7 @@ pub const feature_noFmuls = Feature{
26};26};
2727
28pub const feature_noFsmuld = Feature{28pub const feature_noFsmuld = Feature{
29 .name = "no-fsmuld",29 .name = "noFsmuld",
30 .llvm_name = "no-fsmuld",30 .llvm_name = "no-fsmuld",
31 .description = "Disable the fsmuld instruction.",31 .description = "Disable the fsmuld instruction.",
32 .dependencies = &[_]*const Feature {32 .dependencies = &[_]*const Feature {
...@@ -42,7 +42,7 @@ pub const feature_leonpwrpsr = Feature{...@@ -42,7 +42,7 @@ pub const feature_leonpwrpsr = Feature{
42};42};
4343
44pub const feature_softFloat = Feature{44pub const feature_softFloat = Feature{
45 .name = "soft-float",45 .name = "softFloat",
46 .llvm_name = "soft-float",46 .llvm_name = "soft-float",
47 .description = "Use software emulation for floating point",47 .description = "Use software emulation for floating point",
48 .dependencies = &[_]*const Feature {48 .dependencies = &[_]*const Feature {
...@@ -50,7 +50,7 @@ pub const feature_softFloat = Feature{...@@ -50,7 +50,7 @@ pub const feature_softFloat = Feature{
50};50};
5151
52pub const feature_softMulDiv = Feature{52pub const feature_softMulDiv = Feature{
53 .name = "soft-mul-div",53 .name = "softMulDiv",
54 .llvm_name = "soft-mul-div",54 .llvm_name = "soft-mul-div",
55 .description = "Use software emulation for integer multiply and divide",55 .description = "Use software emulation for integer multiply and divide",
56 .dependencies = &[_]*const Feature {56 .dependencies = &[_]*const Feature {
...@@ -58,7 +58,7 @@ pub const feature_softMulDiv = Feature{...@@ -58,7 +58,7 @@ pub const feature_softMulDiv = Feature{
58};58};
5959
60pub const feature_deprecatedV8 = Feature{60pub const feature_deprecatedV8 = Feature{
61 .name = "deprecated-v8",61 .name = "deprecatedV8",
62 .llvm_name = "deprecated-v8",62 .llvm_name = "deprecated-v8",
63 .description = "Enable deprecated V8 instructions in V9 mode",63 .description = "Enable deprecated V8 instructions in V9 mode",
64 .dependencies = &[_]*const Feature {64 .dependencies = &[_]*const Feature {
...@@ -287,7 +287,7 @@ pub const cpu_myriad2 = Cpu{...@@ -287,7 +287,7 @@ pub const cpu_myriad2 = Cpu{
287};287};
288288
289pub const cpu_myriad21 = Cpu{289pub const cpu_myriad21 = Cpu{
290 .name = "myriad2.1",290 .name = "myriad21",
291 .llvm_name = "myriad2.1",291 .llvm_name = "myriad2.1",
292 .dependencies = &[_]*const Feature {292 .dependencies = &[_]*const Feature {
293 &feature_leon,293 &feature_leon,
...@@ -295,7 +295,7 @@ pub const cpu_myriad21 = Cpu{...@@ -295,7 +295,7 @@ pub const cpu_myriad21 = Cpu{
295};295};
296296
297pub const cpu_myriad22 = Cpu{297pub const cpu_myriad22 = Cpu{
298 .name = "myriad2.2",298 .name = "myriad22",
299 .llvm_name = "myriad2.2",299 .llvm_name = "myriad2.2",
300 .dependencies = &[_]*const Feature {300 .dependencies = &[_]*const Feature {
301 &feature_leon,301 &feature_leon,
...@@ -303,7 +303,7 @@ pub const cpu_myriad22 = Cpu{...@@ -303,7 +303,7 @@ pub const cpu_myriad22 = Cpu{
303};303};
304304
305pub const cpu_myriad23 = Cpu{305pub const cpu_myriad23 = Cpu{
306 .name = "myriad2.3",306 .name = "myriad23",
307 .llvm_name = "myriad2.3",307 .llvm_name = "myriad2.3",
308 .dependencies = &[_]*const Feature {308 .dependencies = &[_]*const Feature {
309 &feature_leon,309 &feature_leon,
lib/std/target/systemz.zig+34-34
...@@ -2,7 +2,7 @@ const Feature = @import("std").target.Feature;...@@ -2,7 +2,7 @@ const Feature = @import("std").target.Feature;
2const Cpu = @import("std").target.Cpu;2const Cpu = @import("std").target.Cpu;
33
4pub const feature_dfpPackedConversion = Feature{4pub const feature_dfpPackedConversion = Feature{
5 .name = "dfp-packed-conversion",5 .name = "dfpPackedConversion",
6 .llvm_name = "dfp-packed-conversion",6 .llvm_name = "dfp-packed-conversion",
7 .description = "Assume that the DFP packed-conversion facility is installed",7 .description = "Assume that the DFP packed-conversion facility is installed",
8 .dependencies = &[_]*const Feature {8 .dependencies = &[_]*const Feature {
...@@ -10,7 +10,7 @@ pub const feature_dfpPackedConversion = Feature{...@@ -10,7 +10,7 @@ pub const feature_dfpPackedConversion = Feature{
10};10};
1111
12pub const feature_dfpZonedConversion = Feature{12pub const feature_dfpZonedConversion = Feature{
13 .name = "dfp-zoned-conversion",13 .name = "dfpZonedConversion",
14 .llvm_name = "dfp-zoned-conversion",14 .llvm_name = "dfp-zoned-conversion",
15 .description = "Assume that the DFP zoned-conversion facility is installed",15 .description = "Assume that the DFP zoned-conversion facility is installed",
16 .dependencies = &[_]*const Feature {16 .dependencies = &[_]*const Feature {
...@@ -18,7 +18,7 @@ pub const feature_dfpZonedConversion = Feature{...@@ -18,7 +18,7 @@ pub const feature_dfpZonedConversion = Feature{
18};18};
1919
20pub const feature_deflateConversion = Feature{20pub const feature_deflateConversion = Feature{
21 .name = "deflate-conversion",21 .name = "deflateConversion",
22 .llvm_name = "deflate-conversion",22 .llvm_name = "deflate-conversion",
23 .description = "Assume that the deflate-conversion facility is installed",23 .description = "Assume that the deflate-conversion facility is installed",
24 .dependencies = &[_]*const Feature {24 .dependencies = &[_]*const Feature {
...@@ -26,7 +26,7 @@ pub const feature_deflateConversion = Feature{...@@ -26,7 +26,7 @@ pub const feature_deflateConversion = Feature{
26};26};
2727
28pub const feature_distinctOps = Feature{28pub const feature_distinctOps = Feature{
29 .name = "distinct-ops",29 .name = "distinctOps",
30 .llvm_name = "distinct-ops",30 .llvm_name = "distinct-ops",
31 .description = "Assume that the distinct-operands facility is installed",31 .description = "Assume that the distinct-operands facility is installed",
32 .dependencies = &[_]*const Feature {32 .dependencies = &[_]*const Feature {
...@@ -34,7 +34,7 @@ pub const feature_distinctOps = Feature{...@@ -34,7 +34,7 @@ pub const feature_distinctOps = Feature{
34};34};
3535
36pub const feature_enhancedDat2 = Feature{36pub const feature_enhancedDat2 = Feature{
37 .name = "enhanced-dat-2",37 .name = "enhancedDat2",
38 .llvm_name = "enhanced-dat-2",38 .llvm_name = "enhanced-dat-2",
39 .description = "Assume that the enhanced-DAT facility 2 is installed",39 .description = "Assume that the enhanced-DAT facility 2 is installed",
40 .dependencies = &[_]*const Feature {40 .dependencies = &[_]*const Feature {
...@@ -42,7 +42,7 @@ pub const feature_enhancedDat2 = Feature{...@@ -42,7 +42,7 @@ pub const feature_enhancedDat2 = Feature{
42};42};
4343
44pub const feature_enhancedSort = Feature{44pub const feature_enhancedSort = Feature{
45 .name = "enhanced-sort",45 .name = "enhancedSort",
46 .llvm_name = "enhanced-sort",46 .llvm_name = "enhanced-sort",
47 .description = "Assume that the enhanced-sort facility is installed",47 .description = "Assume that the enhanced-sort facility is installed",
48 .dependencies = &[_]*const Feature {48 .dependencies = &[_]*const Feature {
...@@ -50,7 +50,7 @@ pub const feature_enhancedSort = Feature{...@@ -50,7 +50,7 @@ pub const feature_enhancedSort = Feature{
50};50};
5151
52pub const feature_executionHint = Feature{52pub const feature_executionHint = Feature{
53 .name = "execution-hint",53 .name = "executionHint",
54 .llvm_name = "execution-hint",54 .llvm_name = "execution-hint",
55 .description = "Assume that the execution-hint facility is installed",55 .description = "Assume that the execution-hint facility is installed",
56 .dependencies = &[_]*const Feature {56 .dependencies = &[_]*const Feature {
...@@ -58,7 +58,7 @@ pub const feature_executionHint = Feature{...@@ -58,7 +58,7 @@ pub const feature_executionHint = Feature{
58};58};
5959
60pub const feature_fpExtension = Feature{60pub const feature_fpExtension = Feature{
61 .name = "fp-extension",61 .name = "fpExtension",
62 .llvm_name = "fp-extension",62 .llvm_name = "fp-extension",
63 .description = "Assume that the floating-point extension facility is installed",63 .description = "Assume that the floating-point extension facility is installed",
64 .dependencies = &[_]*const Feature {64 .dependencies = &[_]*const Feature {
...@@ -66,7 +66,7 @@ pub const feature_fpExtension = Feature{...@@ -66,7 +66,7 @@ pub const feature_fpExtension = Feature{
66};66};
6767
68pub const feature_fastSerialization = Feature{68pub const feature_fastSerialization = Feature{
69 .name = "fast-serialization",69 .name = "fastSerialization",
70 .llvm_name = "fast-serialization",70 .llvm_name = "fast-serialization",
71 .description = "Assume that the fast-serialization facility is installed",71 .description = "Assume that the fast-serialization facility is installed",
72 .dependencies = &[_]*const Feature {72 .dependencies = &[_]*const Feature {
...@@ -74,7 +74,7 @@ pub const feature_fastSerialization = Feature{...@@ -74,7 +74,7 @@ pub const feature_fastSerialization = Feature{
74};74};
7575
76pub const feature_guardedStorage = Feature{76pub const feature_guardedStorage = Feature{
77 .name = "guarded-storage",77 .name = "guardedStorage",
78 .llvm_name = "guarded-storage",78 .llvm_name = "guarded-storage",
79 .description = "Assume that the guarded-storage facility is installed",79 .description = "Assume that the guarded-storage facility is installed",
80 .dependencies = &[_]*const Feature {80 .dependencies = &[_]*const Feature {
...@@ -82,7 +82,7 @@ pub const feature_guardedStorage = Feature{...@@ -82,7 +82,7 @@ pub const feature_guardedStorage = Feature{
82};82};
8383
84pub const feature_highWord = Feature{84pub const feature_highWord = Feature{
85 .name = "high-word",85 .name = "highWord",
86 .llvm_name = "high-word",86 .llvm_name = "high-word",
87 .description = "Assume that the high-word facility is installed",87 .description = "Assume that the high-word facility is installed",
88 .dependencies = &[_]*const Feature {88 .dependencies = &[_]*const Feature {
...@@ -90,7 +90,7 @@ pub const feature_highWord = Feature{...@@ -90,7 +90,7 @@ pub const feature_highWord = Feature{
90};90};
9191
92pub const feature_insertReferenceBitsMultiple = Feature{92pub const feature_insertReferenceBitsMultiple = Feature{
93 .name = "insert-reference-bits-multiple",93 .name = "insertReferenceBitsMultiple",
94 .llvm_name = "insert-reference-bits-multiple",94 .llvm_name = "insert-reference-bits-multiple",
95 .description = "Assume that the insert-reference-bits-multiple facility is installed",95 .description = "Assume that the insert-reference-bits-multiple facility is installed",
96 .dependencies = &[_]*const Feature {96 .dependencies = &[_]*const Feature {
...@@ -98,7 +98,7 @@ pub const feature_insertReferenceBitsMultiple = Feature{...@@ -98,7 +98,7 @@ pub const feature_insertReferenceBitsMultiple = Feature{
98};98};
9999
100pub const feature_interlockedAccess1 = Feature{100pub const feature_interlockedAccess1 = Feature{
101 .name = "interlocked-access1",101 .name = "interlockedAccess1",
102 .llvm_name = "interlocked-access1",102 .llvm_name = "interlocked-access1",
103 .description = "Assume that interlocked-access facility 1 is installed",103 .description = "Assume that interlocked-access facility 1 is installed",
104 .dependencies = &[_]*const Feature {104 .dependencies = &[_]*const Feature {
...@@ -106,7 +106,7 @@ pub const feature_interlockedAccess1 = Feature{...@@ -106,7 +106,7 @@ pub const feature_interlockedAccess1 = Feature{
106};106};
107107
108pub const feature_loadAndTrap = Feature{108pub const feature_loadAndTrap = Feature{
109 .name = "load-and-trap",109 .name = "loadAndTrap",
110 .llvm_name = "load-and-trap",110 .llvm_name = "load-and-trap",
111 .description = "Assume that the load-and-trap facility is installed",111 .description = "Assume that the load-and-trap facility is installed",
112 .dependencies = &[_]*const Feature {112 .dependencies = &[_]*const Feature {
...@@ -114,7 +114,7 @@ pub const feature_loadAndTrap = Feature{...@@ -114,7 +114,7 @@ pub const feature_loadAndTrap = Feature{
114};114};
115115
116pub const feature_loadAndZeroRightmostByte = Feature{116pub const feature_loadAndZeroRightmostByte = Feature{
117 .name = "load-and-zero-rightmost-byte",117 .name = "loadAndZeroRightmostByte",
118 .llvm_name = "load-and-zero-rightmost-byte",118 .llvm_name = "load-and-zero-rightmost-byte",
119 .description = "Assume that the load-and-zero-rightmost-byte facility is installed",119 .description = "Assume that the load-and-zero-rightmost-byte facility is installed",
120 .dependencies = &[_]*const Feature {120 .dependencies = &[_]*const Feature {
...@@ -122,7 +122,7 @@ pub const feature_loadAndZeroRightmostByte = Feature{...@@ -122,7 +122,7 @@ pub const feature_loadAndZeroRightmostByte = Feature{
122};122};
123123
124pub const feature_loadStoreOnCond = Feature{124pub const feature_loadStoreOnCond = Feature{
125 .name = "load-store-on-cond",125 .name = "loadStoreOnCond",
126 .llvm_name = "load-store-on-cond",126 .llvm_name = "load-store-on-cond",
127 .description = "Assume that the load/store-on-condition facility is installed",127 .description = "Assume that the load/store-on-condition facility is installed",
128 .dependencies = &[_]*const Feature {128 .dependencies = &[_]*const Feature {
...@@ -130,7 +130,7 @@ pub const feature_loadStoreOnCond = Feature{...@@ -130,7 +130,7 @@ pub const feature_loadStoreOnCond = Feature{
130};130};
131131
132pub const feature_loadStoreOnCond2 = Feature{132pub const feature_loadStoreOnCond2 = Feature{
133 .name = "load-store-on-cond-2",133 .name = "loadStoreOnCond2",
134 .llvm_name = "load-store-on-cond-2",134 .llvm_name = "load-store-on-cond-2",
135 .description = "Assume that the load/store-on-condition facility 2 is installed",135 .description = "Assume that the load/store-on-condition facility 2 is installed",
136 .dependencies = &[_]*const Feature {136 .dependencies = &[_]*const Feature {
...@@ -138,7 +138,7 @@ pub const feature_loadStoreOnCond2 = Feature{...@@ -138,7 +138,7 @@ pub const feature_loadStoreOnCond2 = Feature{
138};138};
139139
140pub const feature_messageSecurityAssistExtension3 = Feature{140pub const feature_messageSecurityAssistExtension3 = Feature{
141 .name = "message-security-assist-extension3",141 .name = "messageSecurityAssistExtension3",
142 .llvm_name = "message-security-assist-extension3",142 .llvm_name = "message-security-assist-extension3",
143 .description = "Assume that the message-security-assist extension facility 3 is installed",143 .description = "Assume that the message-security-assist extension facility 3 is installed",
144 .dependencies = &[_]*const Feature {144 .dependencies = &[_]*const Feature {
...@@ -146,7 +146,7 @@ pub const feature_messageSecurityAssistExtension3 = Feature{...@@ -146,7 +146,7 @@ pub const feature_messageSecurityAssistExtension3 = Feature{
146};146};
147147
148pub const feature_messageSecurityAssistExtension4 = Feature{148pub const feature_messageSecurityAssistExtension4 = Feature{
149 .name = "message-security-assist-extension4",149 .name = "messageSecurityAssistExtension4",
150 .llvm_name = "message-security-assist-extension4",150 .llvm_name = "message-security-assist-extension4",
151 .description = "Assume that the message-security-assist extension facility 4 is installed",151 .description = "Assume that the message-security-assist extension facility 4 is installed",
152 .dependencies = &[_]*const Feature {152 .dependencies = &[_]*const Feature {
...@@ -154,7 +154,7 @@ pub const feature_messageSecurityAssistExtension4 = Feature{...@@ -154,7 +154,7 @@ pub const feature_messageSecurityAssistExtension4 = Feature{
154};154};
155155
156pub const feature_messageSecurityAssistExtension5 = Feature{156pub const feature_messageSecurityAssistExtension5 = Feature{
157 .name = "message-security-assist-extension5",157 .name = "messageSecurityAssistExtension5",
158 .llvm_name = "message-security-assist-extension5",158 .llvm_name = "message-security-assist-extension5",
159 .description = "Assume that the message-security-assist extension facility 5 is installed",159 .description = "Assume that the message-security-assist extension facility 5 is installed",
160 .dependencies = &[_]*const Feature {160 .dependencies = &[_]*const Feature {
...@@ -162,7 +162,7 @@ pub const feature_messageSecurityAssistExtension5 = Feature{...@@ -162,7 +162,7 @@ pub const feature_messageSecurityAssistExtension5 = Feature{
162};162};
163163
164pub const feature_messageSecurityAssistExtension7 = Feature{164pub const feature_messageSecurityAssistExtension7 = Feature{
165 .name = "message-security-assist-extension7",165 .name = "messageSecurityAssistExtension7",
166 .llvm_name = "message-security-assist-extension7",166 .llvm_name = "message-security-assist-extension7",
167 .description = "Assume that the message-security-assist extension facility 7 is installed",167 .description = "Assume that the message-security-assist extension facility 7 is installed",
168 .dependencies = &[_]*const Feature {168 .dependencies = &[_]*const Feature {
...@@ -170,7 +170,7 @@ pub const feature_messageSecurityAssistExtension7 = Feature{...@@ -170,7 +170,7 @@ pub const feature_messageSecurityAssistExtension7 = Feature{
170};170};
171171
172pub const feature_messageSecurityAssistExtension8 = Feature{172pub const feature_messageSecurityAssistExtension8 = Feature{
173 .name = "message-security-assist-extension8",173 .name = "messageSecurityAssistExtension8",
174 .llvm_name = "message-security-assist-extension8",174 .llvm_name = "message-security-assist-extension8",
175 .description = "Assume that the message-security-assist extension facility 8 is installed",175 .description = "Assume that the message-security-assist extension facility 8 is installed",
176 .dependencies = &[_]*const Feature {176 .dependencies = &[_]*const Feature {
...@@ -178,7 +178,7 @@ pub const feature_messageSecurityAssistExtension8 = Feature{...@@ -178,7 +178,7 @@ pub const feature_messageSecurityAssistExtension8 = Feature{
178};178};
179179
180pub const feature_messageSecurityAssistExtension9 = Feature{180pub const feature_messageSecurityAssistExtension9 = Feature{
181 .name = "message-security-assist-extension9",181 .name = "messageSecurityAssistExtension9",
182 .llvm_name = "message-security-assist-extension9",182 .llvm_name = "message-security-assist-extension9",
183 .description = "Assume that the message-security-assist extension facility 9 is installed",183 .description = "Assume that the message-security-assist extension facility 9 is installed",
184 .dependencies = &[_]*const Feature {184 .dependencies = &[_]*const Feature {
...@@ -186,7 +186,7 @@ pub const feature_messageSecurityAssistExtension9 = Feature{...@@ -186,7 +186,7 @@ pub const feature_messageSecurityAssistExtension9 = Feature{
186};186};
187187
188pub const feature_miscellaneousExtensions = Feature{188pub const feature_miscellaneousExtensions = Feature{
189 .name = "miscellaneous-extensions",189 .name = "miscellaneousExtensions",
190 .llvm_name = "miscellaneous-extensions",190 .llvm_name = "miscellaneous-extensions",
191 .description = "Assume that the miscellaneous-extensions facility is installed",191 .description = "Assume that the miscellaneous-extensions facility is installed",
192 .dependencies = &[_]*const Feature {192 .dependencies = &[_]*const Feature {
...@@ -194,7 +194,7 @@ pub const feature_miscellaneousExtensions = Feature{...@@ -194,7 +194,7 @@ pub const feature_miscellaneousExtensions = Feature{
194};194};
195195
196pub const feature_miscellaneousExtensions2 = Feature{196pub const feature_miscellaneousExtensions2 = Feature{
197 .name = "miscellaneous-extensions-2",197 .name = "miscellaneousExtensions2",
198 .llvm_name = "miscellaneous-extensions-2",198 .llvm_name = "miscellaneous-extensions-2",
199 .description = "Assume that the miscellaneous-extensions facility 2 is installed",199 .description = "Assume that the miscellaneous-extensions facility 2 is installed",
200 .dependencies = &[_]*const Feature {200 .dependencies = &[_]*const Feature {
...@@ -202,7 +202,7 @@ pub const feature_miscellaneousExtensions2 = Feature{...@@ -202,7 +202,7 @@ pub const feature_miscellaneousExtensions2 = Feature{
202};202};
203203
204pub const feature_miscellaneousExtensions3 = Feature{204pub const feature_miscellaneousExtensions3 = Feature{
205 .name = "miscellaneous-extensions-3",205 .name = "miscellaneousExtensions3",
206 .llvm_name = "miscellaneous-extensions-3",206 .llvm_name = "miscellaneous-extensions-3",
207 .description = "Assume that the miscellaneous-extensions facility 3 is installed",207 .description = "Assume that the miscellaneous-extensions facility 3 is installed",
208 .dependencies = &[_]*const Feature {208 .dependencies = &[_]*const Feature {
...@@ -210,7 +210,7 @@ pub const feature_miscellaneousExtensions3 = Feature{...@@ -210,7 +210,7 @@ pub const feature_miscellaneousExtensions3 = Feature{
210};210};
211211
212pub const feature_populationCount = Feature{212pub const feature_populationCount = Feature{
213 .name = "population-count",213 .name = "populationCount",
214 .llvm_name = "population-count",214 .llvm_name = "population-count",
215 .description = "Assume that the population-count facility is installed",215 .description = "Assume that the population-count facility is installed",
216 .dependencies = &[_]*const Feature {216 .dependencies = &[_]*const Feature {
...@@ -218,7 +218,7 @@ pub const feature_populationCount = Feature{...@@ -218,7 +218,7 @@ pub const feature_populationCount = Feature{
218};218};
219219
220pub const feature_processorAssist = Feature{220pub const feature_processorAssist = Feature{
221 .name = "processor-assist",221 .name = "processorAssist",
222 .llvm_name = "processor-assist",222 .llvm_name = "processor-assist",
223 .description = "Assume that the processor-assist facility is installed",223 .description = "Assume that the processor-assist facility is installed",
224 .dependencies = &[_]*const Feature {224 .dependencies = &[_]*const Feature {
...@@ -226,7 +226,7 @@ pub const feature_processorAssist = Feature{...@@ -226,7 +226,7 @@ pub const feature_processorAssist = Feature{
226};226};
227227
228pub const feature_resetReferenceBitsMultiple = Feature{228pub const feature_resetReferenceBitsMultiple = Feature{
229 .name = "reset-reference-bits-multiple",229 .name = "resetReferenceBitsMultiple",
230 .llvm_name = "reset-reference-bits-multiple",230 .llvm_name = "reset-reference-bits-multiple",
231 .description = "Assume that the reset-reference-bits-multiple facility is installed",231 .description = "Assume that the reset-reference-bits-multiple facility is installed",
232 .dependencies = &[_]*const Feature {232 .dependencies = &[_]*const Feature {
...@@ -234,7 +234,7 @@ pub const feature_resetReferenceBitsMultiple = Feature{...@@ -234,7 +234,7 @@ pub const feature_resetReferenceBitsMultiple = Feature{
234};234};
235235
236pub const feature_transactionalExecution = Feature{236pub const feature_transactionalExecution = Feature{
237 .name = "transactional-execution",237 .name = "transactionalExecution",
238 .llvm_name = "transactional-execution",238 .llvm_name = "transactional-execution",
239 .description = "Assume that the transactional-execution facility is installed",239 .description = "Assume that the transactional-execution facility is installed",
240 .dependencies = &[_]*const Feature {240 .dependencies = &[_]*const Feature {
...@@ -250,7 +250,7 @@ pub const feature_vector = Feature{...@@ -250,7 +250,7 @@ pub const feature_vector = Feature{
250};250};
251251
252pub const feature_vectorEnhancements1 = Feature{252pub const feature_vectorEnhancements1 = Feature{
253 .name = "vector-enhancements-1",253 .name = "vectorEnhancements1",
254 .llvm_name = "vector-enhancements-1",254 .llvm_name = "vector-enhancements-1",
255 .description = "Assume that the vector enhancements facility 1 is installed",255 .description = "Assume that the vector enhancements facility 1 is installed",
256 .dependencies = &[_]*const Feature {256 .dependencies = &[_]*const Feature {
...@@ -258,7 +258,7 @@ pub const feature_vectorEnhancements1 = Feature{...@@ -258,7 +258,7 @@ pub const feature_vectorEnhancements1 = Feature{
258};258};
259259
260pub const feature_vectorEnhancements2 = Feature{260pub const feature_vectorEnhancements2 = Feature{
261 .name = "vector-enhancements-2",261 .name = "vectorEnhancements2",
262 .llvm_name = "vector-enhancements-2",262 .llvm_name = "vector-enhancements-2",
263 .description = "Assume that the vector enhancements facility 2 is installed",263 .description = "Assume that the vector enhancements facility 2 is installed",
264 .dependencies = &[_]*const Feature {264 .dependencies = &[_]*const Feature {
...@@ -266,7 +266,7 @@ pub const feature_vectorEnhancements2 = Feature{...@@ -266,7 +266,7 @@ pub const feature_vectorEnhancements2 = Feature{
266};266};
267267
268pub const feature_vectorPackedDecimal = Feature{268pub const feature_vectorPackedDecimal = Feature{
269 .name = "vector-packed-decimal",269 .name = "vectorPackedDecimal",
270 .llvm_name = "vector-packed-decimal",270 .llvm_name = "vector-packed-decimal",
271 .description = "Assume that the vector packed decimal facility is installed",271 .description = "Assume that the vector packed decimal facility is installed",
272 .dependencies = &[_]*const Feature {272 .dependencies = &[_]*const Feature {
...@@ -274,7 +274,7 @@ pub const feature_vectorPackedDecimal = Feature{...@@ -274,7 +274,7 @@ pub const feature_vectorPackedDecimal = Feature{
274};274};
275275
276pub const feature_vectorPackedDecimalEnhancement = Feature{276pub const feature_vectorPackedDecimalEnhancement = Feature{
277 .name = "vector-packed-decimal-enhancement",277 .name = "vectorPackedDecimalEnhancement",
278 .llvm_name = "vector-packed-decimal-enhancement",278 .llvm_name = "vector-packed-decimal-enhancement",
279 .description = "Assume that the vector packed decimal enhancement facility is installed",279 .description = "Assume that the vector packed decimal enhancement facility is installed",
280 .dependencies = &[_]*const Feature {280 .dependencies = &[_]*const Feature {
lib/std/target/wasm.zig+8-8
...@@ -10,7 +10,7 @@ pub const feature_atomics = Feature{...@@ -10,7 +10,7 @@ pub const feature_atomics = Feature{
10};10};
1111
12pub const feature_bulkMemory = Feature{12pub const feature_bulkMemory = Feature{
13 .name = "bulk-memory",13 .name = "bulkMemory",
14 .llvm_name = "bulk-memory",14 .llvm_name = "bulk-memory",
15 .description = "Enable bulk memory operations",15 .description = "Enable bulk memory operations",
16 .dependencies = &[_]*const Feature {16 .dependencies = &[_]*const Feature {
...@@ -18,7 +18,7 @@ pub const feature_bulkMemory = Feature{...@@ -18,7 +18,7 @@ pub const feature_bulkMemory = Feature{
18};18};
1919
20pub const feature_exceptionHandling = Feature{20pub const feature_exceptionHandling = Feature{
21 .name = "exception-handling",21 .name = "exceptionHandling",
22 .llvm_name = "exception-handling",22 .llvm_name = "exception-handling",
23 .description = "Enable Wasm exception handling",23 .description = "Enable Wasm exception handling",
24 .dependencies = &[_]*const Feature {24 .dependencies = &[_]*const Feature {
...@@ -34,7 +34,7 @@ pub const feature_multivalue = Feature{...@@ -34,7 +34,7 @@ pub const feature_multivalue = Feature{
34};34};
3535
36pub const feature_mutableGlobals = Feature{36pub const feature_mutableGlobals = Feature{
37 .name = "mutable-globals",37 .name = "mutableGlobals",
38 .llvm_name = "mutable-globals",38 .llvm_name = "mutable-globals",
39 .description = "Enable mutable globals",39 .description = "Enable mutable globals",
40 .dependencies = &[_]*const Feature {40 .dependencies = &[_]*const Feature {
...@@ -42,7 +42,7 @@ pub const feature_mutableGlobals = Feature{...@@ -42,7 +42,7 @@ pub const feature_mutableGlobals = Feature{
42};42};
4343
44pub const feature_nontrappingFptoint = Feature{44pub const feature_nontrappingFptoint = Feature{
45 .name = "nontrapping-fptoint",45 .name = "nontrappingFptoint",
46 .llvm_name = "nontrapping-fptoint",46 .llvm_name = "nontrapping-fptoint",
47 .description = "Enable non-trapping float-to-int conversion operators",47 .description = "Enable non-trapping float-to-int conversion operators",
48 .dependencies = &[_]*const Feature {48 .dependencies = &[_]*const Feature {
...@@ -58,7 +58,7 @@ pub const feature_simd128 = Feature{...@@ -58,7 +58,7 @@ pub const feature_simd128 = Feature{
58};58};
5959
60pub const feature_signExt = Feature{60pub const feature_signExt = Feature{
61 .name = "sign-ext",61 .name = "signExt",
62 .llvm_name = "sign-ext",62 .llvm_name = "sign-ext",
63 .description = "Enable sign extension operators",63 .description = "Enable sign extension operators",
64 .dependencies = &[_]*const Feature {64 .dependencies = &[_]*const Feature {
...@@ -66,7 +66,7 @@ pub const feature_signExt = Feature{...@@ -66,7 +66,7 @@ pub const feature_signExt = Feature{
66};66};
6767
68pub const feature_tailCall = Feature{68pub const feature_tailCall = Feature{
69 .name = "tail-call",69 .name = "tailCall",
70 .llvm_name = "tail-call",70 .llvm_name = "tail-call",
71 .description = "Enable tail call instructions",71 .description = "Enable tail call instructions",
72 .dependencies = &[_]*const Feature {72 .dependencies = &[_]*const Feature {
...@@ -74,7 +74,7 @@ pub const feature_tailCall = Feature{...@@ -74,7 +74,7 @@ pub const feature_tailCall = Feature{
74};74};
7575
76pub const feature_unimplementedSimd128 = Feature{76pub const feature_unimplementedSimd128 = Feature{
77 .name = "unimplemented-simd128",77 .name = "unimplementedSimd128",
78 .llvm_name = "unimplemented-simd128",78 .llvm_name = "unimplemented-simd128",
79 .description = "Enable 128-bit SIMD not yet implemented in engines",79 .description = "Enable 128-bit SIMD not yet implemented in engines",
80 .dependencies = &[_]*const Feature {80 .dependencies = &[_]*const Feature {
...@@ -96,7 +96,7 @@ pub const features = &[_]*const Feature {...@@ -96,7 +96,7 @@ pub const features = &[_]*const Feature {
96};96};
9797
98pub const cpu_bleedingEdge = Cpu{98pub const cpu_bleedingEdge = Cpu{
99 .name = "bleeding-edge",99 .name = "bleedingEdge",
100 .llvm_name = "bleeding-edge",100 .llvm_name = "bleeding-edge",
101 .dependencies = &[_]*const Feature {101 .dependencies = &[_]*const Feature {
102 &feature_atomics,102 &feature_atomics,
lib/std/target/x86.zig+68-68
...@@ -2,7 +2,7 @@ const Feature = @import("std").target.Feature;...@@ -2,7 +2,7 @@ const Feature = @import("std").target.Feature;
2const Cpu = @import("std").target.Cpu;2const Cpu = @import("std").target.Cpu;
33
4pub const feature_dnow3 = Feature{4pub const feature_dnow3 = Feature{
5 .name = "3dnow",5 .name = "dnow3",
6 .llvm_name = "3dnow",6 .llvm_name = "3dnow",
7 .description = "Enable 3DNow! instructions",7 .description = "Enable 3DNow! instructions",
8 .dependencies = &[_]*const Feature {8 .dependencies = &[_]*const Feature {
...@@ -11,7 +11,7 @@ pub const feature_dnow3 = Feature{...@@ -11,7 +11,7 @@ pub const feature_dnow3 = Feature{
11};11};
1212
13pub const feature_dnowa3 = Feature{13pub const feature_dnowa3 = Feature{
14 .name = "3dnowa",14 .name = "dnowa3",
15 .llvm_name = "3dnowa",15 .llvm_name = "3dnowa",
16 .description = "Enable 3DNow! Athlon instructions",16 .description = "Enable 3DNow! Athlon instructions",
17 .dependencies = &[_]*const Feature {17 .dependencies = &[_]*const Feature {
...@@ -20,7 +20,7 @@ pub const feature_dnowa3 = Feature{...@@ -20,7 +20,7 @@ pub const feature_dnowa3 = Feature{
20};20};
2121
22pub const feature_bit64 = Feature{22pub const feature_bit64 = Feature{
23 .name = "64bit",23 .name = "bit64",
24 .llvm_name = "64bit",24 .llvm_name = "64bit",
25 .description = "Support 64-bit instructions",25 .description = "Support 64-bit instructions",
26 .dependencies = &[_]*const Feature {26 .dependencies = &[_]*const Feature {
...@@ -274,7 +274,7 @@ pub const feature_fxsr = Feature{...@@ -274,7 +274,7 @@ pub const feature_fxsr = Feature{
274};274};
275275
276pub const feature_fast11bytenop = Feature{276pub const feature_fast11bytenop = Feature{
277 .name = "fast-11bytenop",277 .name = "fast11bytenop",
278 .llvm_name = "fast-11bytenop",278 .llvm_name = "fast-11bytenop",
279 .description = "Target can quickly decode up to 11 byte NOPs",279 .description = "Target can quickly decode up to 11 byte NOPs",
280 .dependencies = &[_]*const Feature {280 .dependencies = &[_]*const Feature {
...@@ -282,7 +282,7 @@ pub const feature_fast11bytenop = Feature{...@@ -282,7 +282,7 @@ pub const feature_fast11bytenop = Feature{
282};282};
283283
284pub const feature_fast15bytenop = Feature{284pub const feature_fast15bytenop = Feature{
285 .name = "fast-15bytenop",285 .name = "fast15bytenop",
286 .llvm_name = "fast-15bytenop",286 .llvm_name = "fast-15bytenop",
287 .description = "Target can quickly decode up to 15 byte NOPs",287 .description = "Target can quickly decode up to 15 byte NOPs",
288 .dependencies = &[_]*const Feature {288 .dependencies = &[_]*const Feature {
...@@ -290,7 +290,7 @@ pub const feature_fast15bytenop = Feature{...@@ -290,7 +290,7 @@ pub const feature_fast15bytenop = Feature{
290};290};
291291
292pub const feature_fastBextr = Feature{292pub const feature_fastBextr = Feature{
293 .name = "fast-bextr",293 .name = "fastBextr",
294 .llvm_name = "fast-bextr",294 .llvm_name = "fast-bextr",
295 .description = "Indicates that the BEXTR instruction is implemented as a single uop with good throughput",295 .description = "Indicates that the BEXTR instruction is implemented as a single uop with good throughput",
296 .dependencies = &[_]*const Feature {296 .dependencies = &[_]*const Feature {
...@@ -298,7 +298,7 @@ pub const feature_fastBextr = Feature{...@@ -298,7 +298,7 @@ pub const feature_fastBextr = Feature{
298};298};
299299
300pub const feature_fastHops = Feature{300pub const feature_fastHops = Feature{
301 .name = "fast-hops",301 .name = "fastHops",
302 .llvm_name = "fast-hops",302 .llvm_name = "fast-hops",
303 .description = "Prefer horizontal vector math instructions (haddp, phsub, etc.) over normal vector instructions with shuffles",303 .description = "Prefer horizontal vector math instructions (haddp, phsub, etc.) over normal vector instructions with shuffles",
304 .dependencies = &[_]*const Feature {304 .dependencies = &[_]*const Feature {
...@@ -307,7 +307,7 @@ pub const feature_fastHops = Feature{...@@ -307,7 +307,7 @@ pub const feature_fastHops = Feature{
307};307};
308308
309pub const feature_fastLzcnt = Feature{309pub const feature_fastLzcnt = Feature{
310 .name = "fast-lzcnt",310 .name = "fastLzcnt",
311 .llvm_name = "fast-lzcnt",311 .llvm_name = "fast-lzcnt",
312 .description = "LZCNT instructions are as fast as most simple integer ops",312 .description = "LZCNT instructions are as fast as most simple integer ops",
313 .dependencies = &[_]*const Feature {313 .dependencies = &[_]*const Feature {
...@@ -315,7 +315,7 @@ pub const feature_fastLzcnt = Feature{...@@ -315,7 +315,7 @@ pub const feature_fastLzcnt = Feature{
315};315};
316316
317pub const feature_fastPartialYmmOrZmmWrite = Feature{317pub const feature_fastPartialYmmOrZmmWrite = Feature{
318 .name = "fast-partial-ymm-or-zmm-write",318 .name = "fastPartialYmmOrZmmWrite",
319 .llvm_name = "fast-partial-ymm-or-zmm-write",319 .llvm_name = "fast-partial-ymm-or-zmm-write",
320 .description = "Partial writes to YMM/ZMM registers are fast",320 .description = "Partial writes to YMM/ZMM registers are fast",
321 .dependencies = &[_]*const Feature {321 .dependencies = &[_]*const Feature {
...@@ -323,7 +323,7 @@ pub const feature_fastPartialYmmOrZmmWrite = Feature{...@@ -323,7 +323,7 @@ pub const feature_fastPartialYmmOrZmmWrite = Feature{
323};323};
324324
325pub const feature_fastShldRotate = Feature{325pub const feature_fastShldRotate = Feature{
326 .name = "fast-shld-rotate",326 .name = "fastShldRotate",
327 .llvm_name = "fast-shld-rotate",327 .llvm_name = "fast-shld-rotate",
328 .description = "SHLD can be used as a faster rotate",328 .description = "SHLD can be used as a faster rotate",
329 .dependencies = &[_]*const Feature {329 .dependencies = &[_]*const Feature {
...@@ -331,7 +331,7 @@ pub const feature_fastShldRotate = Feature{...@@ -331,7 +331,7 @@ pub const feature_fastShldRotate = Feature{
331};331};
332332
333pub const feature_fastScalarFsqrt = Feature{333pub const feature_fastScalarFsqrt = Feature{
334 .name = "fast-scalar-fsqrt",334 .name = "fastScalarFsqrt",
335 .llvm_name = "fast-scalar-fsqrt",335 .llvm_name = "fast-scalar-fsqrt",
336 .description = "Scalar SQRT is fast (disable Newton-Raphson)",336 .description = "Scalar SQRT is fast (disable Newton-Raphson)",
337 .dependencies = &[_]*const Feature {337 .dependencies = &[_]*const Feature {
...@@ -339,7 +339,7 @@ pub const feature_fastScalarFsqrt = Feature{...@@ -339,7 +339,7 @@ pub const feature_fastScalarFsqrt = Feature{
339};339};
340340
341pub const feature_fastScalarShiftMasks = Feature{341pub const feature_fastScalarShiftMasks = Feature{
342 .name = "fast-scalar-shift-masks",342 .name = "fastScalarShiftMasks",
343 .llvm_name = "fast-scalar-shift-masks",343 .llvm_name = "fast-scalar-shift-masks",
344 .description = "Prefer a left/right scalar logical shift pair over a shift+and pair",344 .description = "Prefer a left/right scalar logical shift pair over a shift+and pair",
345 .dependencies = &[_]*const Feature {345 .dependencies = &[_]*const Feature {
...@@ -347,7 +347,7 @@ pub const feature_fastScalarShiftMasks = Feature{...@@ -347,7 +347,7 @@ pub const feature_fastScalarShiftMasks = Feature{
347};347};
348348
349pub const feature_fastVariableShuffle = Feature{349pub const feature_fastVariableShuffle = Feature{
350 .name = "fast-variable-shuffle",350 .name = "fastVariableShuffle",
351 .llvm_name = "fast-variable-shuffle",351 .llvm_name = "fast-variable-shuffle",
352 .description = "Shuffles with variable masks are fast",352 .description = "Shuffles with variable masks are fast",
353 .dependencies = &[_]*const Feature {353 .dependencies = &[_]*const Feature {
...@@ -355,7 +355,7 @@ pub const feature_fastVariableShuffle = Feature{...@@ -355,7 +355,7 @@ pub const feature_fastVariableShuffle = Feature{
355};355};
356356
357pub const feature_fastVectorFsqrt = Feature{357pub const feature_fastVectorFsqrt = Feature{
358 .name = "fast-vector-fsqrt",358 .name = "fastVectorFsqrt",
359 .llvm_name = "fast-vector-fsqrt",359 .llvm_name = "fast-vector-fsqrt",
360 .description = "Vector SQRT is fast (disable Newton-Raphson)",360 .description = "Vector SQRT is fast (disable Newton-Raphson)",
361 .dependencies = &[_]*const Feature {361 .dependencies = &[_]*const Feature {
...@@ -363,7 +363,7 @@ pub const feature_fastVectorFsqrt = Feature{...@@ -363,7 +363,7 @@ pub const feature_fastVectorFsqrt = Feature{
363};363};
364364
365pub const feature_fastVectorShiftMasks = Feature{365pub const feature_fastVectorShiftMasks = Feature{
366 .name = "fast-vector-shift-masks",366 .name = "fastVectorShiftMasks",
367 .llvm_name = "fast-vector-shift-masks",367 .llvm_name = "fast-vector-shift-masks",
368 .description = "Prefer a left/right vector logical shift pair over a shift+and pair",368 .description = "Prefer a left/right vector logical shift pair over a shift+and pair",
369 .dependencies = &[_]*const Feature {369 .dependencies = &[_]*const Feature {
...@@ -380,7 +380,7 @@ pub const feature_gfni = Feature{...@@ -380,7 +380,7 @@ pub const feature_gfni = Feature{
380};380};
381381
382pub const feature_fastGather = Feature{382pub const feature_fastGather = Feature{
383 .name = "fast-gather",383 .name = "fastGather",
384 .llvm_name = "fast-gather",384 .llvm_name = "fast-gather",
385 .description = "Indicates if gather is reasonably fast",385 .description = "Indicates if gather is reasonably fast",
386 .dependencies = &[_]*const Feature {386 .dependencies = &[_]*const Feature {
...@@ -413,7 +413,7 @@ pub const feature_sahf = Feature{...@@ -413,7 +413,7 @@ pub const feature_sahf = Feature{
413};413};
414414
415pub const feature_leaSp = Feature{415pub const feature_leaSp = Feature{
416 .name = "lea-sp",416 .name = "leaSp",
417 .llvm_name = "lea-sp",417 .llvm_name = "lea-sp",
418 .description = "Use LEA for adjusting the stack pointer",418 .description = "Use LEA for adjusting the stack pointer",
419 .dependencies = &[_]*const Feature {419 .dependencies = &[_]*const Feature {
...@@ -421,7 +421,7 @@ pub const feature_leaSp = Feature{...@@ -421,7 +421,7 @@ pub const feature_leaSp = Feature{
421};421};
422422
423pub const feature_leaUsesAg = Feature{423pub const feature_leaUsesAg = Feature{
424 .name = "lea-uses-ag",424 .name = "leaUsesAg",
425 .llvm_name = "lea-uses-ag",425 .llvm_name = "lea-uses-ag",
426 .description = "LEA instruction needs inputs at AG stage",426 .description = "LEA instruction needs inputs at AG stage",
427 .dependencies = &[_]*const Feature {427 .dependencies = &[_]*const Feature {
...@@ -445,7 +445,7 @@ pub const feature_lzcnt = Feature{...@@ -445,7 +445,7 @@ pub const feature_lzcnt = Feature{
445};445};
446446
447pub const feature_falseDepsLzcntTzcnt = Feature{447pub const feature_falseDepsLzcntTzcnt = Feature{
448 .name = "false-deps-lzcnt-tzcnt",448 .name = "falseDepsLzcntTzcnt",
449 .llvm_name = "false-deps-lzcnt-tzcnt",449 .llvm_name = "false-deps-lzcnt-tzcnt",
450 .description = "LZCNT/TZCNT have a false dependency on dest register",450 .description = "LZCNT/TZCNT have a false dependency on dest register",
451 .dependencies = &[_]*const Feature {451 .dependencies = &[_]*const Feature {
...@@ -501,7 +501,7 @@ pub const feature_macrofusion = Feature{...@@ -501,7 +501,7 @@ pub const feature_macrofusion = Feature{
501};501};
502502
503pub const feature_mergeToThreewayBranch = Feature{503pub const feature_mergeToThreewayBranch = Feature{
504 .name = "merge-to-threeway-branch",504 .name = "mergeToThreewayBranch",
505 .llvm_name = "merge-to-threeway-branch",505 .llvm_name = "merge-to-threeway-branch",
506 .description = "Merge branches to a three-way conditional branch",506 .description = "Merge branches to a three-way conditional branch",
507 .dependencies = &[_]*const Feature {507 .dependencies = &[_]*const Feature {
...@@ -559,7 +559,7 @@ pub const feature_popcnt = Feature{...@@ -559,7 +559,7 @@ pub const feature_popcnt = Feature{
559};559};
560560
561pub const feature_falseDepsPopcnt = Feature{561pub const feature_falseDepsPopcnt = Feature{
562 .name = "false-deps-popcnt",562 .name = "falseDepsPopcnt",
563 .llvm_name = "false-deps-popcnt",563 .llvm_name = "false-deps-popcnt",
564 .description = "POPCNT has a false dependency on dest register",564 .description = "POPCNT has a false dependency on dest register",
565 .dependencies = &[_]*const Feature {565 .dependencies = &[_]*const Feature {
...@@ -591,7 +591,7 @@ pub const feature_ptwrite = Feature{...@@ -591,7 +591,7 @@ pub const feature_ptwrite = Feature{
591};591};
592592
593pub const feature_padShortFunctions = Feature{593pub const feature_padShortFunctions = Feature{
594 .name = "pad-short-functions",594 .name = "padShortFunctions",
595 .llvm_name = "pad-short-functions",595 .llvm_name = "pad-short-functions",
596 .description = "Pad short functions",596 .description = "Pad short functions",
597 .dependencies = &[_]*const Feature {597 .dependencies = &[_]*const Feature {
...@@ -599,7 +599,7 @@ pub const feature_padShortFunctions = Feature{...@@ -599,7 +599,7 @@ pub const feature_padShortFunctions = Feature{
599};599};
600600
601pub const feature_prefer128Bit = Feature{601pub const feature_prefer128Bit = Feature{
602 .name = "prefer-128-bit",602 .name = "prefer128Bit",
603 .llvm_name = "prefer-128-bit",603 .llvm_name = "prefer-128-bit",
604 .description = "Prefer 128-bit AVX instructions",604 .description = "Prefer 128-bit AVX instructions",
605 .dependencies = &[_]*const Feature {605 .dependencies = &[_]*const Feature {
...@@ -607,7 +607,7 @@ pub const feature_prefer128Bit = Feature{...@@ -607,7 +607,7 @@ pub const feature_prefer128Bit = Feature{
607};607};
608608
609pub const feature_prefer256Bit = Feature{609pub const feature_prefer256Bit = Feature{
610 .name = "prefer-256-bit",610 .name = "prefer256Bit",
611 .llvm_name = "prefer-256-bit",611 .llvm_name = "prefer-256-bit",
612 .description = "Prefer 256-bit AVX instructions",612 .description = "Prefer 256-bit AVX instructions",
613 .dependencies = &[_]*const Feature {613 .dependencies = &[_]*const Feature {
...@@ -657,7 +657,7 @@ pub const feature_retpoline = Feature{...@@ -657,7 +657,7 @@ pub const feature_retpoline = Feature{
657};657};
658658
659pub const feature_retpolineExternalThunk = Feature{659pub const feature_retpolineExternalThunk = Feature{
660 .name = "retpoline-external-thunk",660 .name = "retpolineExternalThunk",
661 .llvm_name = "retpoline-external-thunk",661 .llvm_name = "retpoline-external-thunk",
662 .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",662 .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",
663 .dependencies = &[_]*const Feature {663 .dependencies = &[_]*const Feature {
...@@ -666,7 +666,7 @@ pub const feature_retpolineExternalThunk = Feature{...@@ -666,7 +666,7 @@ pub const feature_retpolineExternalThunk = Feature{
666};666};
667667
668pub const feature_retpolineIndirectBranches = Feature{668pub const feature_retpolineIndirectBranches = Feature{
669 .name = "retpoline-indirect-branches",669 .name = "retpolineIndirectBranches",
670 .llvm_name = "retpoline-indirect-branches",670 .llvm_name = "retpoline-indirect-branches",
671 .description = "Remove speculation of indirect branches from the generated code",671 .description = "Remove speculation of indirect branches from the generated code",
672 .dependencies = &[_]*const Feature {672 .dependencies = &[_]*const Feature {
...@@ -674,7 +674,7 @@ pub const feature_retpolineIndirectBranches = Feature{...@@ -674,7 +674,7 @@ pub const feature_retpolineIndirectBranches = Feature{
674};674};
675675
676pub const feature_retpolineIndirectCalls = Feature{676pub const feature_retpolineIndirectCalls = Feature{
677 .name = "retpoline-indirect-calls",677 .name = "retpolineIndirectCalls",
678 .llvm_name = "retpoline-indirect-calls",678 .llvm_name = "retpoline-indirect-calls",
679 .description = "Remove speculation of indirect calls from the generated code",679 .description = "Remove speculation of indirect calls from the generated code",
680 .dependencies = &[_]*const Feature {680 .dependencies = &[_]*const Feature {
...@@ -742,7 +742,7 @@ pub const feature_sse4a = Feature{...@@ -742,7 +742,7 @@ pub const feature_sse4a = Feature{
742};742};
743743
744pub const feature_sse41 = Feature{744pub const feature_sse41 = Feature{
745 .name = "sse4.1",745 .name = "sse41",
746 .llvm_name = "sse4.1",746 .llvm_name = "sse4.1",
747 .description = "Enable SSE 4.1 instructions",747 .description = "Enable SSE 4.1 instructions",
748 .dependencies = &[_]*const Feature {748 .dependencies = &[_]*const Feature {
...@@ -751,7 +751,7 @@ pub const feature_sse41 = Feature{...@@ -751,7 +751,7 @@ pub const feature_sse41 = Feature{
751};751};
752752
753pub const feature_sse42 = Feature{753pub const feature_sse42 = Feature{
754 .name = "sse4.2",754 .name = "sse42",
755 .llvm_name = "sse4.2",755 .llvm_name = "sse4.2",
756 .description = "Enable SSE 4.2 instructions",756 .description = "Enable SSE 4.2 instructions",
757 .dependencies = &[_]*const Feature {757 .dependencies = &[_]*const Feature {
...@@ -760,7 +760,7 @@ pub const feature_sse42 = Feature{...@@ -760,7 +760,7 @@ pub const feature_sse42 = Feature{
760};760};
761761
762pub const feature_sseUnalignedMem = Feature{762pub const feature_sseUnalignedMem = Feature{
763 .name = "sse-unaligned-mem",763 .name = "sseUnalignedMem",
764 .llvm_name = "sse-unaligned-mem",764 .llvm_name = "sse-unaligned-mem",
765 .description = "Allow unaligned memory operands with SSE instructions",765 .description = "Allow unaligned memory operands with SSE instructions",
766 .dependencies = &[_]*const Feature {766 .dependencies = &[_]*const Feature {
...@@ -777,7 +777,7 @@ pub const feature_ssse3 = Feature{...@@ -777,7 +777,7 @@ pub const feature_ssse3 = Feature{
777};777};
778778
779pub const feature_slow3opsLea = Feature{779pub const feature_slow3opsLea = Feature{
780 .name = "slow-3ops-lea",780 .name = "slow3opsLea",
781 .llvm_name = "slow-3ops-lea",781 .llvm_name = "slow-3ops-lea",
782 .description = "LEA instruction with 3 ops or certain registers is slow",782 .description = "LEA instruction with 3 ops or certain registers is slow",
783 .dependencies = &[_]*const Feature {783 .dependencies = &[_]*const Feature {
...@@ -785,7 +785,7 @@ pub const feature_slow3opsLea = Feature{...@@ -785,7 +785,7 @@ pub const feature_slow3opsLea = Feature{
785};785};
786786
787pub const feature_idivlToDivb = Feature{787pub const feature_idivlToDivb = Feature{
788 .name = "idivl-to-divb",788 .name = "idivlToDivb",
789 .llvm_name = "idivl-to-divb",789 .llvm_name = "idivl-to-divb",
790 .description = "Use 8-bit divide for positive values less than 256",790 .description = "Use 8-bit divide for positive values less than 256",
791 .dependencies = &[_]*const Feature {791 .dependencies = &[_]*const Feature {
...@@ -793,7 +793,7 @@ pub const feature_idivlToDivb = Feature{...@@ -793,7 +793,7 @@ pub const feature_idivlToDivb = Feature{
793};793};
794794
795pub const feature_idivqToDivl = Feature{795pub const feature_idivqToDivl = Feature{
796 .name = "idivq-to-divl",796 .name = "idivqToDivl",
797 .llvm_name = "idivq-to-divl",797 .llvm_name = "idivq-to-divl",
798 .description = "Use 32-bit divide for positive values less than 2^32",798 .description = "Use 32-bit divide for positive values less than 2^32",
799 .dependencies = &[_]*const Feature {799 .dependencies = &[_]*const Feature {
...@@ -801,7 +801,7 @@ pub const feature_idivqToDivl = Feature{...@@ -801,7 +801,7 @@ pub const feature_idivqToDivl = Feature{
801};801};
802802
803pub const feature_slowIncdec = Feature{803pub const feature_slowIncdec = Feature{
804 .name = "slow-incdec",804 .name = "slowIncdec",
805 .llvm_name = "slow-incdec",805 .llvm_name = "slow-incdec",
806 .description = "INC and DEC instructions are slower than ADD and SUB",806 .description = "INC and DEC instructions are slower than ADD and SUB",
807 .dependencies = &[_]*const Feature {807 .dependencies = &[_]*const Feature {
...@@ -809,7 +809,7 @@ pub const feature_slowIncdec = Feature{...@@ -809,7 +809,7 @@ pub const feature_slowIncdec = Feature{
809};809};
810810
811pub const feature_slowLea = Feature{811pub const feature_slowLea = Feature{
812 .name = "slow-lea",812 .name = "slowLea",
813 .llvm_name = "slow-lea",813 .llvm_name = "slow-lea",
814 .description = "LEA instruction with certain arguments is slow",814 .description = "LEA instruction with certain arguments is slow",
815 .dependencies = &[_]*const Feature {815 .dependencies = &[_]*const Feature {
...@@ -817,7 +817,7 @@ pub const feature_slowLea = Feature{...@@ -817,7 +817,7 @@ pub const feature_slowLea = Feature{
817};817};
818818
819pub const feature_slowPmaddwd = Feature{819pub const feature_slowPmaddwd = Feature{
820 .name = "slow-pmaddwd",820 .name = "slowPmaddwd",
821 .llvm_name = "slow-pmaddwd",821 .llvm_name = "slow-pmaddwd",
822 .description = "PMADDWD is slower than PMULLD",822 .description = "PMADDWD is slower than PMULLD",
823 .dependencies = &[_]*const Feature {823 .dependencies = &[_]*const Feature {
...@@ -825,7 +825,7 @@ pub const feature_slowPmaddwd = Feature{...@@ -825,7 +825,7 @@ pub const feature_slowPmaddwd = Feature{
825};825};
826826
827pub const feature_slowPmulld = Feature{827pub const feature_slowPmulld = Feature{
828 .name = "slow-pmulld",828 .name = "slowPmulld",
829 .llvm_name = "slow-pmulld",829 .llvm_name = "slow-pmulld",
830 .description = "PMULLD instruction is slow",830 .description = "PMULLD instruction is slow",
831 .dependencies = &[_]*const Feature {831 .dependencies = &[_]*const Feature {
...@@ -833,7 +833,7 @@ pub const feature_slowPmulld = Feature{...@@ -833,7 +833,7 @@ pub const feature_slowPmulld = Feature{
833};833};
834834
835pub const feature_slowShld = Feature{835pub const feature_slowShld = Feature{
836 .name = "slow-shld",836 .name = "slowShld",
837 .llvm_name = "slow-shld",837 .llvm_name = "slow-shld",
838 .description = "SHLD instruction is slow",838 .description = "SHLD instruction is slow",
839 .dependencies = &[_]*const Feature {839 .dependencies = &[_]*const Feature {
...@@ -841,7 +841,7 @@ pub const feature_slowShld = Feature{...@@ -841,7 +841,7 @@ pub const feature_slowShld = Feature{
841};841};
842842
843pub const feature_slowTwoMemOps = Feature{843pub const feature_slowTwoMemOps = Feature{
844 .name = "slow-two-mem-ops",844 .name = "slowTwoMemOps",
845 .llvm_name = "slow-two-mem-ops",845 .llvm_name = "slow-two-mem-ops",
846 .description = "Two memory operand instructions are slow",846 .description = "Two memory operand instructions are slow",
847 .dependencies = &[_]*const Feature {847 .dependencies = &[_]*const Feature {
...@@ -849,7 +849,7 @@ pub const feature_slowTwoMemOps = Feature{...@@ -849,7 +849,7 @@ pub const feature_slowTwoMemOps = Feature{
849};849};
850850
851pub const feature_slowUnalignedMem16 = Feature{851pub const feature_slowUnalignedMem16 = Feature{
852 .name = "slow-unaligned-mem-16",852 .name = "slowUnalignedMem16",
853 .llvm_name = "slow-unaligned-mem-16",853 .llvm_name = "slow-unaligned-mem-16",
854 .description = "Slow unaligned 16-byte memory access",854 .description = "Slow unaligned 16-byte memory access",
855 .dependencies = &[_]*const Feature {855 .dependencies = &[_]*const Feature {
...@@ -857,7 +857,7 @@ pub const feature_slowUnalignedMem16 = Feature{...@@ -857,7 +857,7 @@ pub const feature_slowUnalignedMem16 = Feature{
857};857};
858858
859pub const feature_slowUnalignedMem32 = Feature{859pub const feature_slowUnalignedMem32 = Feature{
860 .name = "slow-unaligned-mem-32",860 .name = "slowUnalignedMem32",
861 .llvm_name = "slow-unaligned-mem-32",861 .llvm_name = "slow-unaligned-mem-32",
862 .description = "Slow unaligned 32-byte memory access",862 .description = "Slow unaligned 32-byte memory access",
863 .dependencies = &[_]*const Feature {863 .dependencies = &[_]*const Feature {
...@@ -865,7 +865,7 @@ pub const feature_slowUnalignedMem32 = Feature{...@@ -865,7 +865,7 @@ pub const feature_slowUnalignedMem32 = Feature{
865};865};
866866
867pub const feature_softFloat = Feature{867pub const feature_softFloat = Feature{
868 .name = "soft-float",868 .name = "softFloat",
869 .llvm_name = "soft-float",869 .llvm_name = "soft-float",
870 .description = "Use software floating point features",870 .description = "Use software floating point features",
871 .dependencies = &[_]*const Feature {871 .dependencies = &[_]*const Feature {
...@@ -881,7 +881,7 @@ pub const feature_tbm = Feature{...@@ -881,7 +881,7 @@ pub const feature_tbm = Feature{
881};881};
882882
883pub const feature_useAa = Feature{883pub const feature_useAa = Feature{
884 .name = "use-aa",884 .name = "useAa",
885 .llvm_name = "use-aa",885 .llvm_name = "use-aa",
886 .description = "Use alias analysis during codegen",886 .description = "Use alias analysis during codegen",
887 .dependencies = &[_]*const Feature {887 .dependencies = &[_]*const Feature {
...@@ -1026,7 +1026,7 @@ pub const feature_xsaves = Feature{...@@ -1026,7 +1026,7 @@ pub const feature_xsaves = Feature{
1026};1026};
10271027
1028pub const feature_bitMode16 = Feature{1028pub const feature_bitMode16 = Feature{
1029 .name = "16bit-mode",1029 .name = "bitMode16",
1030 .llvm_name = "16bit-mode",1030 .llvm_name = "16bit-mode",
1031 .description = "16-bit mode (i8086)",1031 .description = "16-bit mode (i8086)",
1032 .dependencies = &[_]*const Feature {1032 .dependencies = &[_]*const Feature {
...@@ -1034,7 +1034,7 @@ pub const feature_bitMode16 = Feature{...@@ -1034,7 +1034,7 @@ pub const feature_bitMode16 = Feature{
1034};1034};
10351035
1036pub const feature_bitMode32 = Feature{1036pub const feature_bitMode32 = Feature{
1037 .name = "32bit-mode",1037 .name = "bitMode32",
1038 .llvm_name = "32bit-mode",1038 .llvm_name = "32bit-mode",
1039 .description = "32-bit mode (80386)",1039 .description = "32-bit mode (80386)",
1040 .dependencies = &[_]*const Feature {1040 .dependencies = &[_]*const Feature {
...@@ -1042,7 +1042,7 @@ pub const feature_bitMode32 = Feature{...@@ -1042,7 +1042,7 @@ pub const feature_bitMode32 = Feature{
1042};1042};
10431043
1044pub const feature_bitMode64 = Feature{1044pub const feature_bitMode64 = Feature{
1045 .name = "64bit-mode",1045 .name = "bitMode64",
1046 .llvm_name = "64bit-mode",1046 .llvm_name = "64bit-mode",
1047 .description = "64-bit mode (x86_64)",1047 .description = "64-bit mode (x86_64)",
1048 .dependencies = &[_]*const Feature {1048 .dependencies = &[_]*const Feature {
...@@ -1217,7 +1217,7 @@ pub const cpu_athlon = Cpu{...@@ -1217,7 +1217,7 @@ pub const cpu_athlon = Cpu{
1217};1217};
12181218
1219pub const cpu_athlon4 = Cpu{1219pub const cpu_athlon4 = Cpu{
1220 .name = "athlon-4",1220 .name = "athlon4",
1221 .llvm_name = "athlon-4",1221 .llvm_name = "athlon-4",
1222 .dependencies = &[_]*const Feature {1222 .dependencies = &[_]*const Feature {
1223 &feature_mmx,1223 &feature_mmx,
...@@ -1234,7 +1234,7 @@ pub const cpu_athlon4 = Cpu{...@@ -1234,7 +1234,7 @@ pub const cpu_athlon4 = Cpu{
1234};1234};
12351235
1236pub const cpu_athlonFx = Cpu{1236pub const cpu_athlonFx = Cpu{
1237 .name = "athlon-fx",1237 .name = "athlonFx",
1238 .llvm_name = "athlon-fx",1238 .llvm_name = "athlon-fx",
1239 .dependencies = &[_]*const Feature {1239 .dependencies = &[_]*const Feature {
1240 &feature_mmx,1240 &feature_mmx,
...@@ -1254,7 +1254,7 @@ pub const cpu_athlonFx = Cpu{...@@ -1254,7 +1254,7 @@ pub const cpu_athlonFx = Cpu{
1254};1254};
12551255
1256pub const cpu_athlonMp = Cpu{1256pub const cpu_athlonMp = Cpu{
1257 .name = "athlon-mp",1257 .name = "athlonMp",
1258 .llvm_name = "athlon-mp",1258 .llvm_name = "athlon-mp",
1259 .dependencies = &[_]*const Feature {1259 .dependencies = &[_]*const Feature {
1260 &feature_mmx,1260 &feature_mmx,
...@@ -1271,7 +1271,7 @@ pub const cpu_athlonMp = Cpu{...@@ -1271,7 +1271,7 @@ pub const cpu_athlonMp = Cpu{
1271};1271};
12721272
1273pub const cpu_athlonTbird = Cpu{1273pub const cpu_athlonTbird = Cpu{
1274 .name = "athlon-tbird",1274 .name = "athlonTbird",
1275 .llvm_name = "athlon-tbird",1275 .llvm_name = "athlon-tbird",
1276 .dependencies = &[_]*const Feature {1276 .dependencies = &[_]*const Feature {
1277 &feature_mmx,1277 &feature_mmx,
...@@ -1286,7 +1286,7 @@ pub const cpu_athlonTbird = Cpu{...@@ -1286,7 +1286,7 @@ pub const cpu_athlonTbird = Cpu{
1286};1286};
12871287
1288pub const cpu_athlonXp = Cpu{1288pub const cpu_athlonXp = Cpu{
1289 .name = "athlon-xp",1289 .name = "athlonXp",
1290 .llvm_name = "athlon-xp",1290 .llvm_name = "athlon-xp",
1291 .dependencies = &[_]*const Feature {1291 .dependencies = &[_]*const Feature {
1292 &feature_mmx,1292 &feature_mmx,
...@@ -1323,7 +1323,7 @@ pub const cpu_athlon64 = Cpu{...@@ -1323,7 +1323,7 @@ pub const cpu_athlon64 = Cpu{
1323};1323};
13241324
1325pub const cpu_athlon64Sse3 = Cpu{1325pub const cpu_athlon64Sse3 = Cpu{
1326 .name = "athlon64-sse3",1326 .name = "athlon64Sse3",
1327 .llvm_name = "athlon64-sse3",1327 .llvm_name = "athlon64-sse3",
1328 .dependencies = &[_]*const Feature {1328 .dependencies = &[_]*const Feature {
1329 &feature_mmx,1329 &feature_mmx,
...@@ -1678,7 +1678,7 @@ pub const cpu_c3 = Cpu{...@@ -1678,7 +1678,7 @@ pub const cpu_c3 = Cpu{
1678};1678};
16791679
1680pub const cpu_c32 = Cpu{1680pub const cpu_c32 = Cpu{
1681 .name = "c3-2",1681 .name = "c32",
1682 .llvm_name = "c3-2",1682 .llvm_name = "c3-2",
1683 .dependencies = &[_]*const Feature {1683 .dependencies = &[_]*const Feature {
1684 &feature_cmov,1684 &feature_cmov,
...@@ -1874,7 +1874,7 @@ pub const cpu_cooperlake = Cpu{...@@ -1874,7 +1874,7 @@ pub const cpu_cooperlake = Cpu{
1874};1874};
18751875
1876pub const cpu_coreAvxI = Cpu{1876pub const cpu_coreAvxI = Cpu{
1877 .name = "core-avx-i",1877 .name = "coreAvxI",
1878 .llvm_name = "core-avx-i",1878 .llvm_name = "core-avx-i",
1879 .dependencies = &[_]*const Feature {1879 .dependencies = &[_]*const Feature {
1880 &feature_bit64,1880 &feature_bit64,
...@@ -1908,7 +1908,7 @@ pub const cpu_coreAvxI = Cpu{...@@ -1908,7 +1908,7 @@ pub const cpu_coreAvxI = Cpu{
1908};1908};
19091909
1910pub const cpu_coreAvx2 = Cpu{1910pub const cpu_coreAvx2 = Cpu{
1911 .name = "core-avx2",1911 .name = "coreAvx2",
1912 .llvm_name = "core-avx2",1912 .llvm_name = "core-avx2",
1913 .dependencies = &[_]*const Feature {1913 .dependencies = &[_]*const Feature {
1914 &feature_bit64,1914 &feature_bit64,
...@@ -1991,7 +1991,7 @@ pub const cpu_corei7 = Cpu{...@@ -1991,7 +1991,7 @@ pub const cpu_corei7 = Cpu{
1991};1991};
19921992
1993pub const cpu_corei7Avx = Cpu{1993pub const cpu_corei7Avx = Cpu{
1994 .name = "corei7-avx",1994 .name = "corei7Avx",
1995 .llvm_name = "corei7-avx",1995 .llvm_name = "corei7-avx",
1996 .dependencies = &[_]*const Feature {1996 .dependencies = &[_]*const Feature {
1997 &feature_bit64,1997 &feature_bit64,
...@@ -2081,7 +2081,7 @@ pub const cpu_goldmont = Cpu{...@@ -2081,7 +2081,7 @@ pub const cpu_goldmont = Cpu{
2081};2081};
20822082
2083pub const cpu_goldmontPlus = Cpu{2083pub const cpu_goldmontPlus = Cpu{
2084 .name = "goldmont-plus",2084 .name = "goldmontPlus",
2085 .llvm_name = "goldmont-plus",2085 .llvm_name = "goldmont-plus",
2086 .dependencies = &[_]*const Feature {2086 .dependencies = &[_]*const Feature {
2087 &feature_bit64,2087 &feature_bit64,
...@@ -2202,7 +2202,7 @@ pub const cpu_i686 = Cpu{...@@ -2202,7 +2202,7 @@ pub const cpu_i686 = Cpu{
2202};2202};
22032203
2204pub const cpu_icelakeClient = Cpu{2204pub const cpu_icelakeClient = Cpu{
2205 .name = "icelake-client",2205 .name = "icelakeClient",
2206 .llvm_name = "icelake-client",2206 .llvm_name = "icelake-client",
2207 .dependencies = &[_]*const Feature {2207 .dependencies = &[_]*const Feature {
2208 &feature_bit64,2208 &feature_bit64,
...@@ -2272,7 +2272,7 @@ pub const cpu_icelakeClient = Cpu{...@@ -2272,7 +2272,7 @@ pub const cpu_icelakeClient = Cpu{
2272};2272};
22732273
2274pub const cpu_icelakeServer = Cpu{2274pub const cpu_icelakeServer = Cpu{
2275 .name = "icelake-server",2275 .name = "icelakeServer",
2276 .llvm_name = "icelake-server",2276 .llvm_name = "icelake-server",
2277 .dependencies = &[_]*const Feature {2277 .dependencies = &[_]*const Feature {
2278 &feature_bit64,2278 &feature_bit64,
...@@ -2389,7 +2389,7 @@ pub const cpu_k6 = Cpu{...@@ -2389,7 +2389,7 @@ pub const cpu_k6 = Cpu{
2389};2389};
23902390
2391pub const cpu_k62 = Cpu{2391pub const cpu_k62 = Cpu{
2392 .name = "k6-2",2392 .name = "k62",
2393 .llvm_name = "k6-2",2393 .llvm_name = "k6-2",
2394 .dependencies = &[_]*const Feature {2394 .dependencies = &[_]*const Feature {
2395 &feature_mmx,2395 &feature_mmx,
...@@ -2401,7 +2401,7 @@ pub const cpu_k62 = Cpu{...@@ -2401,7 +2401,7 @@ pub const cpu_k62 = Cpu{
2401};2401};
24022402
2403pub const cpu_k63 = Cpu{2403pub const cpu_k63 = Cpu{
2404 .name = "k6-3",2404 .name = "k63",
2405 .llvm_name = "k6-3",2405 .llvm_name = "k6-3",
2406 .dependencies = &[_]*const Feature {2406 .dependencies = &[_]*const Feature {
2407 &feature_mmx,2407 &feature_mmx,
...@@ -2433,7 +2433,7 @@ pub const cpu_k8 = Cpu{...@@ -2433,7 +2433,7 @@ pub const cpu_k8 = Cpu{
2433};2433};
24342434
2435pub const cpu_k8Sse3 = Cpu{2435pub const cpu_k8Sse3 = Cpu{
2436 .name = "k8-sse3",2436 .name = "k8Sse3",
2437 .llvm_name = "k8-sse3",2437 .llvm_name = "k8-sse3",
2438 .dependencies = &[_]*const Feature {2438 .dependencies = &[_]*const Feature {
2439 &feature_mmx,2439 &feature_mmx,
...@@ -2610,7 +2610,7 @@ pub const cpu_opteron = Cpu{...@@ -2610,7 +2610,7 @@ pub const cpu_opteron = Cpu{
2610};2610};
26112611
2612pub const cpu_opteronSse3 = Cpu{2612pub const cpu_opteronSse3 = Cpu{
2613 .name = "opteron-sse3",2613 .name = "opteronSse3",
2614 .llvm_name = "opteron-sse3",2614 .llvm_name = "opteron-sse3",
2615 .dependencies = &[_]*const Feature {2615 .dependencies = &[_]*const Feature {
2616 &feature_mmx,2616 &feature_mmx,
...@@ -2661,7 +2661,7 @@ pub const cpu_pentium = Cpu{...@@ -2661,7 +2661,7 @@ pub const cpu_pentium = Cpu{
2661};2661};
26622662
2663pub const cpu_pentiumM = Cpu{2663pub const cpu_pentiumM = Cpu{
2664 .name = "pentium-m",2664 .name = "pentiumM",
2665 .llvm_name = "pentium-m",2665 .llvm_name = "pentium-m",
2666 .dependencies = &[_]*const Feature {2666 .dependencies = &[_]*const Feature {
2667 &feature_cmov,2667 &feature_cmov,
...@@ -2677,7 +2677,7 @@ pub const cpu_pentiumM = Cpu{...@@ -2677,7 +2677,7 @@ pub const cpu_pentiumM = Cpu{
2677};2677};
26782678
2679pub const cpu_pentiumMmx = Cpu{2679pub const cpu_pentiumMmx = Cpu{
2680 .name = "pentium-mmx",2680 .name = "pentiumMmx",
2681 .llvm_name = "pentium-mmx",2681 .llvm_name = "pentium-mmx",
2682 .dependencies = &[_]*const Feature {2682 .dependencies = &[_]*const Feature {
2683 &feature_cx8,2683 &feature_cx8,
...@@ -2964,7 +2964,7 @@ pub const cpu_skylake = Cpu{...@@ -2964,7 +2964,7 @@ pub const cpu_skylake = Cpu{
2964};2964};
29652965
2966pub const cpu_skylakeAvx512 = Cpu{2966pub const cpu_skylakeAvx512 = Cpu{
2967 .name = "skylake-avx512",2967 .name = "skylakeAvx512",
2968 .llvm_name = "skylake-avx512",2968 .llvm_name = "skylake-avx512",
2969 .dependencies = &[_]*const Feature {2969 .dependencies = &[_]*const Feature {
2970 &feature_bit64,2970 &feature_bit64,
...@@ -3192,7 +3192,7 @@ pub const cpu_westmere = Cpu{...@@ -3192,7 +3192,7 @@ pub const cpu_westmere = Cpu{
3192};3192};
31933193
3194pub const cpu_winchipC6 = Cpu{3194pub const cpu_winchipC6 = Cpu{
3195 .name = "winchip-c6",3195 .name = "winchipC6",
3196 .llvm_name = "winchip-c6",3196 .llvm_name = "winchip-c6",
3197 .dependencies = &[_]*const Feature {3197 .dependencies = &[_]*const Feature {
3198 &feature_mmx,3198 &feature_mmx,
...@@ -3213,7 +3213,7 @@ pub const cpu_winchip2 = Cpu{...@@ -3213,7 +3213,7 @@ pub const cpu_winchip2 = Cpu{
3213};3213};
32143214
3215pub const cpu_x8664 = Cpu{3215pub const cpu_x8664 = Cpu{
3216 .name = "x86-64",3216 .name = "x8664",
3217 .llvm_name = "x86-64",3217 .llvm_name = "x86-64",
3218 .dependencies = &[_]*const Feature {3218 .dependencies = &[_]*const Feature {
3219 &feature_bit64,3219 &feature_bit64,
src-self-hosted/stage1.zig+36
...@@ -623,6 +623,8 @@ const Stage2TargetDetails = struct {...@@ -623,6 +623,8 @@ const Stage2TargetDetails = struct {
623 623
624 llvm_cpu_str: [:0]const u8,624 llvm_cpu_str: [:0]const u8,
625 llvm_features_str: [:0]const u8,625 llvm_features_str: [:0]const u8,
626
627 builtin_str: [:0]const u8,
626};628};
627629
628// ABI warning630// ABI warning
...@@ -662,6 +664,16 @@ fn parseCpu(arch: @TagType(std.Target.Arch), str: []const u8) !*Stage2TargetDeta...@@ -662,6 +664,16 @@ fn parseCpu(arch: @TagType(std.Target.Arch), str: []const u8) !*Stage2TargetDeta
662 if (std.mem.eql(u8, str, cpu.name)) {664 if (std.mem.eql(u8, str, cpu.name)) {
663 const allocator = std.heap.c_allocator;665 const allocator = std.heap.c_allocator;
664666
667 var builtin_str_buffer = try std.Buffer.init(
668 allocator,
669 "@import(\"std\").target.TargetDetails{.cpu=&@import(\"std\").target.");
670 defer builtin_str_buffer.deinit();
671
672 try builtin_str_buffer.append(@tagName(arch));
673 try builtin_str_buffer.append(".cpu_");
674 try builtin_str_buffer.append(cpu.name);
675 try builtin_str_buffer.append("};");
676
665 const ptr = try allocator.create(Stage2TargetDetails);677 const ptr = try allocator.create(Stage2TargetDetails);
666 ptr.* = .{678 ptr.* = .{
667 .allocator = allocator,679 .allocator = allocator,
...@@ -670,6 +682,7 @@ fn parseCpu(arch: @TagType(std.Target.Arch), str: []const u8) !*Stage2TargetDeta...@@ -670,6 +682,7 @@ fn parseCpu(arch: @TagType(std.Target.Arch), str: []const u8) !*Stage2TargetDeta
670 },682 },
671 .llvm_cpu_str = cpu.name,683 .llvm_cpu_str = cpu.name,
672 .llvm_features_str = "",684 .llvm_features_str = "",
685 .builtin_str = builtin_str_buffer.toOwnedSlice(),
673 };686 };
674687
675 return ptr;688 return ptr;
...@@ -687,6 +700,11 @@ fn parseFeatures(arch: @TagType(std.Target.Arch), str: []const u8) !*Stage2Targe...@@ -687,6 +700,11 @@ fn parseFeatures(arch: @TagType(std.Target.Arch), str: []const u8) !*Stage2Targe
687 var features = std.ArrayList(*const std.target.Feature).init(allocator);700 var features = std.ArrayList(*const std.target.Feature).init(allocator);
688 defer features.deinit();701 defer features.deinit();
689702
703 var builtin_str_buffer = try std.Buffer.init(
704 allocator,
705 "@import(\"std\").target.TargetDetails{.features=&[_]*const @import(\"std\").target.Feature{\n");
706 defer builtin_str_buffer.deinit();
707
690 var start: usize = 0;708 var start: usize = 0;
691 while (start < str.len) {709 while (start < str.len) {
692 const next_comma_pos = std.mem.indexOfScalar(u8, str[start..], ',') orelse str.len - start;710 const next_comma_pos = std.mem.indexOfScalar(u8, str[start..], ',') orelse str.len - start;
...@@ -706,10 +724,18 @@ fn parseFeatures(arch: @TagType(std.Target.Arch), str: []const u8) !*Stage2Targe...@@ -706,10 +724,18 @@ fn parseFeatures(arch: @TagType(std.Target.Arch), str: []const u8) !*Stage2Targe
706724
707 if (feature) |f| {725 if (feature) |f| {
708 features.append(f) catch @panic("out of memory");726 features.append(f) catch @panic("out of memory");
727
728 try builtin_str_buffer.append("&@import(\"std\").target.");
729 try builtin_str_buffer.append(@tagName(arch));
730 try builtin_str_buffer.append(".feature_");
731 try builtin_str_buffer.append(f.name);
732 try builtin_str_buffer.append(",");
709 } else {733 } else {
710 return error.InvalidFeature;734 return error.InvalidFeature;
711 }735 }
712 }736 }
737
738 try builtin_str_buffer.append("}};");
713 739
714 const features_slice = features.toOwnedSlice();740 const features_slice = features.toOwnedSlice();
715741
...@@ -730,6 +756,7 @@ fn parseFeatures(arch: @TagType(std.Target.Arch), str: []const u8) !*Stage2Targe...@@ -730,6 +756,7 @@ fn parseFeatures(arch: @TagType(std.Target.Arch), str: []const u8) !*Stage2Targe
730 },756 },
731 .llvm_cpu_str = "",757 .llvm_cpu_str = "",
732 .llvm_features_str = llvm_features_buffer.toOwnedSlice(),758 .llvm_features_str = llvm_features_buffer.toOwnedSlice(),
759 .builtin_str = builtin_str_buffer.toOwnedSlice(),
733 };760 };
734761
735 return ptr;762 return ptr;
...@@ -764,3 +791,12 @@ export fn stage2_target_details_get_llvm_features(target_details: ?*const Stage2...@@ -764,3 +791,12 @@ export fn stage2_target_details_get_llvm_features(target_details: ?*const Stage2
764791
765 return @as([*:0]const u8, "");792 return @as([*:0]const u8, "");
766}793}
794
795// ABI warning
796export fn stage2_target_details_get_builtin_str(target_details: ?*const Stage2TargetDetails) [*:0]const u8 {
797 if (target_details) |td| {
798 return @as([*:0]const u8, td.builtin_str);
799 }
800
801 return @as([*:0]const u8, "");
802}
src/codegen.cpp+8
...@@ -8607,6 +8607,14 @@ Buf *codegen_generate_builtin_source(CodeGen *g) {...@@ -8607,6 +8607,14 @@ Buf *codegen_generate_builtin_source(CodeGen *g) {
8607 "pub var test_functions: []TestFn = undefined; // overwritten later\n"8607 "pub var test_functions: []TestFn = undefined; // overwritten later\n"
8608 );8608 );
8609 }8609 }
8610
8611 buf_appendf(contents, "pub const target_details: ?@import(\"std\").target.TargetDetails = ");
8612 if (g->target_details) {
8613 buf_appendf(contents, "%s", stage2_target_details_get_builtin_str(g->target_details));
8614 } else {
8615 buf_appendf(contents, "null;");
8616 }
8617 buf_appendf(contents, "\n");
86108618
8611 return contents;8619 return contents;
8612}8620}
src/main.cpp+19-18
...@@ -1074,6 +1074,24 @@ int main(int argc, char **argv) {...@@ -1074,6 +1074,24 @@ int main(int argc, char **argv) {
1074 }1074 }
1075 }1075 }
10761076
1077 Stage2TargetDetails *target_details = nullptr;
1078 if (cpu && features) {
1079 fprintf(stderr, "--cpu and --features options not allowed together\n");
1080 return main_exit(root_progress_node, EXIT_FAILURE);
1081 } else if (cpu) {
1082 target_details = stage2_target_details_parse_cpu(target_arch_name(target.arch), cpu);
1083 if (!target_details) {
1084 fprintf(stderr, "invalid --cpu value\n");
1085 return main_exit(root_progress_node, EXIT_FAILURE);
1086 }
1087 } else if (features) {
1088 target_details = stage2_target_details_parse_features(target_arch_name(target.arch), features);
1089 if (!target_details) {
1090 fprintf(stderr, "invalid --features value\n");
1091 return main_exit(root_progress_node, EXIT_FAILURE);
1092 }
1093 }
1094
1077 if (output_dir != nullptr && enable_cache == CacheOptOn) {1095 if (output_dir != nullptr && enable_cache == CacheOptOn) {
1078 fprintf(stderr, "`--output-dir` is incompatible with --cache on.\n");1096 fprintf(stderr, "`--output-dir` is incompatible with --cache on.\n");
1079 return print_error_usage(arg0);1097 return print_error_usage(arg0);
...@@ -1124,6 +1142,7 @@ int main(int argc, char **argv) {...@@ -1124,6 +1142,7 @@ int main(int argc, char **argv) {
1124 g->want_stack_check = want_stack_check;1142 g->want_stack_check = want_stack_check;
1125 g->want_sanitize_c = want_sanitize_c;1143 g->want_sanitize_c = want_sanitize_c;
1126 g->want_single_threaded = want_single_threaded;1144 g->want_single_threaded = want_single_threaded;
1145 g->target_details = target_details;
1127 Buf *builtin_source = codegen_generate_builtin_source(g);1146 Buf *builtin_source = codegen_generate_builtin_source(g);
1128 if (fwrite(buf_ptr(builtin_source), 1, buf_len(builtin_source), stdout) != buf_len(builtin_source)) {1147 if (fwrite(buf_ptr(builtin_source), 1, buf_len(builtin_source), stdout) != buf_len(builtin_source)) {
1129 fprintf(stderr, "unable to write to stdout: %s\n", strerror(ferror(stdout)));1148 fprintf(stderr, "unable to write to stdout: %s\n", strerror(ferror(stdout)));
...@@ -1278,24 +1297,6 @@ int main(int argc, char **argv) {...@@ -1278,24 +1297,6 @@ int main(int argc, char **argv) {
1278 codegen_add_rpath(g, rpath_list.at(i));1297 codegen_add_rpath(g, rpath_list.at(i));
1279 }1298 }
12801299
1281 Stage2TargetDetails *target_details = nullptr;
1282 if (cpu && features) {
1283 fprintf(stderr, "--cpu and --features options not allowed together\n");
1284 return main_exit(root_progress_node, EXIT_FAILURE);
1285 } else if (cpu) {
1286 target_details = stage2_target_details_parse_cpu(target_arch_name(target.arch), cpu);
1287 if (!target_details) {
1288 fprintf(stderr, "invalid --cpu value\n");
1289 return main_exit(root_progress_node, EXIT_FAILURE);
1290 }
1291 } else if (features) {
1292 target_details = stage2_target_details_parse_features(target_arch_name(target.arch), features);
1293 if (!target_details) {
1294 fprintf(stderr, "invalid --features value\n");
1295 return main_exit(root_progress_node, EXIT_FAILURE);
1296 }
1297 }
1298
1299 g->target_details = target_details;1300 g->target_details = target_details;
13001301
1301 codegen_set_rdynamic(g, rdynamic);1302 codegen_set_rdynamic(g, rdynamic);
src/userland.cpp+3
...@@ -106,3 +106,6 @@ const char *stage2_target_details_get_llvm_cpu(const Stage2TargetDetails *target...@@ -106,3 +106,6 @@ const char *stage2_target_details_get_llvm_cpu(const Stage2TargetDetails *target
106const char *stage2_target_details_get_llvm_features(const Stage2TargetDetails *target_details) {106const char *stage2_target_details_get_llvm_features(const Stage2TargetDetails *target_details) {
107 return "";107 return "";
108}108}
109const char *stage2_target_details_get_builtin_str(const Stage2TargetDetails *target_details) {
110 return "";
111}
src/userland.h+3
...@@ -198,4 +198,7 @@ ZIG_EXTERN_C const char *stage2_target_details_get_llvm_cpu(const Stage2TargetDe...@@ -198,4 +198,7 @@ ZIG_EXTERN_C const char *stage2_target_details_get_llvm_cpu(const Stage2TargetDe
198// ABI warning198// ABI warning
199ZIG_EXTERN_C const char *stage2_target_details_get_llvm_features(const Stage2TargetDetails *target_details);199ZIG_EXTERN_C const char *stage2_target_details_get_llvm_features(const Stage2TargetDetails *target_details);
200200
201// ABI warning
202ZIG_EXTERN_C const char *stage2_target_details_get_builtin_str(const Stage2TargetDetails *target_details);
203
201#endif204#endif