authorgravatar for lgustaf1@binghamton.eduLayne Gustafson <lgustaf1@binghamton.edu> 2019-12-17 09:45:00-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-01-19 20:53:18-05:00
log21908e100e42c5630e1e4253167496fb76238670
tree3a020f997a601b4ce0f46c8bb1ee9604df3158f0
parent8ac138a318d5581fa7fb80cc540d14e0a482f59e
signature Commit is signed but in an unrecognized format.

Fix CPU and feature defs


34 files changed, 4682 insertions(+), 4674 deletions(-)

lib/std/target/cpu.zig+7-5
......@@ -1,7 +1,7 @@
11const std = @import("std");
22
33const feature = @import("feature.zig");
4const Arch = @import("arch.zig").Arch;
4const Arch = std.Target.Arch;
55
66pub const AArch64Cpu = @import("cpu/AArch64Cpu.zig").AArch64Cpu;
77pub const AmdGpuCpu = @import("cpu/AmdGpuCpu.zig").AmdGpuCpu;
......@@ -19,7 +19,7 @@ pub const SystemZCpu = @import("cpu/SystemZCpu.zig").SystemZCpu;
1919pub const WebAssemblyCpu = @import("cpu/WebAssemblyCpu.zig").WebAssemblyCpu;
2020pub const X86Cpu = @import("cpu/X86Cpu.zig").X86Cpu;
2121
22const EmptyCpu = @import("feature/empty.zig").EmptyCpu;
22pub const EmptyCpu = @import("cpu/empty.zig").EmptyCpu;
2323
2424pub fn ArchCpu(comptime arch: @TagType(Arch)) type {
2525 return switch (arch) {
......@@ -44,19 +44,21 @@ pub fn ArchCpu(comptime arch: @TagType(Arch)) type {
4444}
4545
4646pub fn ArchCpuInfo(comptime arch: @TagType(Arch)) type {
47 return CpuInfo(feature.ArchFeature(arch));
47 return CpuInfo(ArchCpu(arch), feature.ArchFeature(arch));
4848}
4949
50pub fn CpuInfo(comptime FeatureType: type) type {
50pub fn CpuInfo(comptime CpuType: type, comptime FeatureType: type) type {
5151 return struct {
52 value: CpuType,
5253 name: []const u8,
5354
5455 features: []const FeatureType,
5556
5657 const Self = @This();
5758
58 fn create(name: []const u8, features: []const FeatureType) Self {
59 pub fn create(value: CpuType, name: []const u8, features: []const FeatureType) Self {
5960 return Self {
61 .value = value,
6062 .name = name,
6163 .features = features,
6264 };
lib/std/target/cpu/AArch64Cpu.zig+257-257
......@@ -33,298 +33,298 @@ pub const AArch64Cpu = enum {
3333 Thunderxt88,
3434 Tsv110,
3535
36 pub fn getInfo(self: @This()) CpuInfo {
36 const FeatureType = feature.AArch64Feature;
37
38 pub fn getInfo(self: @This()) CpuInfo(@This(), FeatureType) {
3739 return cpu_infos[@enumToInt(self)];
3840 }
3941
40 pub const FeatureType = feature.AArch64Feature;
41
42 const cpu_infos = [@memberCount(@This())]CpuInfo(@This()) {
43 CpuInfo(@This()).create(.AppleLatest, "apple-latest", &[_]FeatureType {
44 .ZczFp,
42 pub const cpu_infos = [@memberCount(@This())]CpuInfo(@This(), FeatureType) {
43 CpuInfo(@This(), FeatureType).create(.AppleLatest, "apple-latest", &[_]FeatureType {
44 .ArithBccFusion,
4545 .ArithCbzFusion,
46 .FuseAes,
46 .ZczFp,
4747 .AlternateSextloadCvtF32Pattern,
48 .ZczFpWorkaround,
49 .FpArmv8,
50 .Perfmon,
5148 .DisableLatencySchedHeuristic,
52 .Zcm,
49 .Perfmon,
5350 .ZczGp,
54 .ArithBccFusion,
51 .ZczFpWorkaround,
52 .Zcm,
53 .FpArmv8,
5554 .FuseCryptoEor,
55 .FuseAes,
5656 .Cyclone,
57 },
58 CpuInfo(@This()).create(.CortexA35, "cortex-a35", &[_]FeatureType {
57 }),
58 CpuInfo(@This(), FeatureType).create(.CortexA35, "cortex-a35", &[_]FeatureType {
5959 .Perfmon,
6060 .FpArmv8,
6161 .Crc,
6262 .A35,
63 },
64 CpuInfo(@This()).create(.CortexA53, "cortex-a53", &[_]FeatureType {
65 .UseAa,
66 .FuseAes,
67 .FpArmv8,
63 }),
64 CpuInfo(@This(), FeatureType).create(.CortexA53, "cortex-a53", &[_]FeatureType {
6865 .Perfmon,
69 .Crc,
70 .BalanceFpOps,
7166 .UsePostraScheduler,
67 .Crc,
7268 .CustomCheapAsMove,
69 .BalanceFpOps,
70 .UseAa,
71 .FpArmv8,
72 .FuseAes,
7373 .A53,
74 },
75 CpuInfo(@This()).create(.CortexA55, "cortex-a55", &[_]FeatureType {
76 .Rcpc,
77 .Ccpp,
78 .Pan,
74 }),
75 CpuInfo(@This(), FeatureType).create(.CortexA55, "cortex-a55", &[_]FeatureType {
76 .Lse,
77 .Vh,
7978 .Rdm,
80 .FuseAes,
8179 .Perfmon,
82 .FpArmv8,
83 .Lse,
84 .Crc,
80 .Pan,
8581 .Dotprod,
82 .Crc,
8683 .Lor,
8784 .Uaops,
88 .Vh,
8985 .Ras,
90 .A55,
91 },
92 CpuInfo(@This()).create(.CortexA57, "cortex-a57", &[_]FeatureType {
93 .FuseLiterals,
94 .FuseAes,
86 .Rcpc,
87 .Ccpp,
9588 .FpArmv8,
89 .FuseAes,
90 .A55,
91 }),
92 CpuInfo(@This(), FeatureType).create(.CortexA57, "cortex-a57", &[_]FeatureType {
9693 .Perfmon,
97 .Crc,
98 .BalanceFpOps,
9994 .UsePostraScheduler,
100 .CustomCheapAsMove,
95 .Crc,
10196 .PredictableSelectExpensive,
102 .A57,
103 },
104 CpuInfo(@This()).create(.CortexA65, "cortex-a65", &[_]FeatureType {
105 .Rcpc,
106 .Ccpp,
107 .Pan,
108 .Rdm,
97 .CustomCheapAsMove,
98 .BalanceFpOps,
99 .FuseLiterals,
109100 .FpArmv8,
101 .FuseAes,
102 .A57,
103 }),
104 CpuInfo(@This(), FeatureType).create(.CortexA65, "cortex-a65", &[_]FeatureType {
110105 .Lse,
111 .Crc,
106 .Vh,
107 .Rdm,
108 .Pan,
112109 .Dotprod,
113 .Lor,
110 .Crc,
114111 .Ssbs,
112 .Lor,
115113 .Uaops,
116 .Vh,
117114 .Ras,
118 .A65,
119 },
120 CpuInfo(@This()).create(.CortexA65ae, "cortex-a65ae", &[_]FeatureType {
121115 .Rcpc,
122116 .Ccpp,
123 .Pan,
124 .Rdm,
125117 .FpArmv8,
118 .A65,
119 }),
120 CpuInfo(@This(), FeatureType).create(.CortexA65ae, "cortex-a65ae", &[_]FeatureType {
126121 .Lse,
127 .Crc,
122 .Vh,
123 .Rdm,
124 .Pan,
128125 .Dotprod,
129 .Lor,
126 .Crc,
130127 .Ssbs,
128 .Lor,
131129 .Uaops,
132 .Vh,
133130 .Ras,
131 .Rcpc,
132 .Ccpp,
133 .FpArmv8,
134134 .A65,
135 },
136 CpuInfo(@This()).create(.CortexA72, "cortex-a72", &[_]FeatureType {
135 }),
136 CpuInfo(@This(), FeatureType).create(.CortexA72, "cortex-a72", &[_]FeatureType {
137137 .Perfmon,
138 .FuseAes,
139138 .FpArmv8,
140139 .Crc,
140 .FuseAes,
141141 .A72,
142 },
143 CpuInfo(@This()).create(.CortexA73, "cortex-a73", &[_]FeatureType {
142 }),
143 CpuInfo(@This(), FeatureType).create(.CortexA73, "cortex-a73", &[_]FeatureType {
144144 .Perfmon,
145 .FuseAes,
146145 .FpArmv8,
147146 .Crc,
147 .FuseAes,
148148 .A73,
149 },
150 CpuInfo(@This()).create(.CortexA75, "cortex-a75", &[_]FeatureType {
151 .Rcpc,
152 .Ccpp,
153 .Pan,
149 }),
150 CpuInfo(@This(), FeatureType).create(.CortexA75, "cortex-a75", &[_]FeatureType {
151 .Lse,
152 .Vh,
154153 .Rdm,
155 .FuseAes,
156154 .Perfmon,
157 .FpArmv8,
158 .Lse,
159 .Crc,
155 .Pan,
160156 .Dotprod,
157 .Crc,
161158 .Lor,
162159 .Uaops,
163 .Vh,
164160 .Ras,
165 .A75,
166 },
167 CpuInfo(@This()).create(.CortexA76, "cortex-a76", &[_]FeatureType {
168161 .Rcpc,
169162 .Ccpp,
170 .Pan,
171 .Rdm,
172163 .FpArmv8,
164 .FuseAes,
165 .A75,
166 }),
167 CpuInfo(@This(), FeatureType).create(.CortexA76, "cortex-a76", &[_]FeatureType {
173168 .Lse,
174 .Crc,
169 .Vh,
170 .Rdm,
171 .Pan,
175172 .Dotprod,
176 .Lor,
173 .Crc,
177174 .Ssbs,
175 .Lor,
178176 .Uaops,
179 .Vh,
180177 .Ras,
181 .A76,
182 },
183 CpuInfo(@This()).create(.CortexA76ae, "cortex-a76ae", &[_]FeatureType {
184178 .Rcpc,
185179 .Ccpp,
186 .Pan,
187 .Rdm,
188180 .FpArmv8,
181 .A76,
182 }),
183 CpuInfo(@This(), FeatureType).create(.CortexA76ae, "cortex-a76ae", &[_]FeatureType {
189184 .Lse,
190 .Crc,
185 .Vh,
186 .Rdm,
187 .Pan,
191188 .Dotprod,
192 .Lor,
189 .Crc,
193190 .Ssbs,
191 .Lor,
194192 .Uaops,
195 .Vh,
196193 .Ras,
194 .Rcpc,
195 .Ccpp,
196 .FpArmv8,
197197 .A76,
198 },
199 CpuInfo(@This()).create(.Cyclone, "cyclone", &[_]FeatureType {
200 .ZczFp,
198 }),
199 CpuInfo(@This(), FeatureType).create(.Cyclone, "cyclone", &[_]FeatureType {
200 .ArithBccFusion,
201201 .ArithCbzFusion,
202 .FuseAes,
202 .ZczFp,
203203 .AlternateSextloadCvtF32Pattern,
204 .ZczFpWorkaround,
205 .FpArmv8,
206 .Perfmon,
207204 .DisableLatencySchedHeuristic,
208 .Zcm,
205 .Perfmon,
209206 .ZczGp,
210 .ArithBccFusion,
207 .ZczFpWorkaround,
208 .Zcm,
209 .FpArmv8,
211210 .FuseCryptoEor,
211 .FuseAes,
212212 .Cyclone,
213 },
214 CpuInfo(@This()).create(.ExynosM1, "exynos-m1", &[_]FeatureType {
213 }),
214 CpuInfo(@This(), FeatureType).create(.ExynosM1, "exynos-m1", &[_]FeatureType {
215215 .ZczFp,
216 .FuseAes,
217 .SlowPaired128,
218 .Force32bitJumpTables,
219 .UseReciprocalSquareRoot,
220 .FpArmv8,
221216 .Perfmon,
222 .SlowMisaligned128store,
223 .Crc,
224217 .UsePostraScheduler,
218 .Crc,
219 .UseReciprocalSquareRoot,
225220 .CustomCheapAsMove,
226 .Exynosm1,
227 },
228 CpuInfo(@This()).create(.ExynosM2, "exynos-m2", &[_]FeatureType {
229 .ZczFp,
230 .FuseAes,
231 .SlowPaired128,
232221 .Force32bitJumpTables,
222 .SlowMisaligned128store,
233223 .FpArmv8,
224 .SlowPaired128,
225 .FuseAes,
226 .Exynosm1,
227 }),
228 CpuInfo(@This(), FeatureType).create(.ExynosM2, "exynos-m2", &[_]FeatureType {
229 .ZczFp,
234230 .Perfmon,
235 .SlowMisaligned128store,
236 .Crc,
237231 .UsePostraScheduler,
232 .Crc,
238233 .CustomCheapAsMove,
239 .Exynosm2,
240 },
241 CpuInfo(@This()).create(.ExynosM3, "exynos-m3", &[_]FeatureType {
242 .ZczFp,
243 .FuseLiterals,
244 .FuseAes,
245234 .Force32bitJumpTables,
235 .SlowMisaligned128store,
246236 .FpArmv8,
237 .SlowPaired128,
238 .FuseAes,
239 .Exynosm2,
240 }),
241 CpuInfo(@This(), FeatureType).create(.ExynosM3, "exynos-m3", &[_]FeatureType {
242 .FuseCsel,
243 .ZczFp,
247244 .Perfmon,
248 .Crc,
249 .LslFast,
250 .FuseAddress,
251245 .UsePostraScheduler,
252 .CustomCheapAsMove,
246 .Crc,
253247 .PredictableSelectExpensive,
254 .FuseCsel,
248 .CustomCheapAsMove,
249 .Force32bitJumpTables,
250 .FuseLiterals,
251 .FuseAddress,
252 .LslFast,
253 .FpArmv8,
254 .FuseAes,
255255 .Exynosm3,
256 },
257 CpuInfo(@This()).create(.ExynosM4, "exynos-m4", &[_]FeatureType {
256 }),
257 CpuInfo(@This(), FeatureType).create(.ExynosM4, "exynos-m4", &[_]FeatureType {
258 .ArithBccFusion,
259 .Vh,
260 .ArithCbzFusion,
258261 .ZczFp,
259 .Lse,
260 .FuseArithLogic,
261 .Lor,
262 .Rdm,
262263 .UsePostraScheduler,
263 .Uaops,
264 .CustomCheapAsMove,
265 .ArithBccFusion,
264 .Ras,
265 .Force32bitJumpTables,
266266 .Ccpp,
267 .Perfmon,
267 .FuseCsel,
268268 .Pan,
269 .Rdm,
269 .Uaops,
270270 .FuseLiterals,
271 .Force32bitJumpTables,
272271 .LslFast,
272 .Lse,
273 .Perfmon,
274 .Dotprod,
275 .Lor,
276 .FuseArithLogic,
277 .Crc,
278 .CustomCheapAsMove,
273279 .FuseAddress,
274280 .ZczGp,
275 .Ras,
276 .FuseCsel,
277 .ArithCbzFusion,
278 .FuseAes,
279281 .FpArmv8,
280 .Crc,
281 .Dotprod,
282 .Vh,
282 .FuseAes,
283283 .Exynosm4,
284 },
285 CpuInfo(@This()).create(.ExynosM5, "exynos-m5", &[_]FeatureType {
284 }),
285 CpuInfo(@This(), FeatureType).create(.ExynosM5, "exynos-m5", &[_]FeatureType {
286 .ArithBccFusion,
287 .Vh,
288 .ArithCbzFusion,
286289 .ZczFp,
287 .Lse,
288 .FuseArithLogic,
289 .Lor,
290 .Rdm,
290291 .UsePostraScheduler,
291 .Uaops,
292 .CustomCheapAsMove,
293 .ArithBccFusion,
292 .Ras,
293 .Force32bitJumpTables,
294294 .Ccpp,
295 .Perfmon,
295 .FuseCsel,
296296 .Pan,
297 .Rdm,
297 .Uaops,
298298 .FuseLiterals,
299 .Force32bitJumpTables,
300299 .LslFast,
300 .Lse,
301 .Perfmon,
302 .Dotprod,
303 .Lor,
304 .FuseArithLogic,
305 .Crc,
306 .CustomCheapAsMove,
301307 .FuseAddress,
302308 .ZczGp,
303 .Ras,
304 .FuseCsel,
305 .ArithCbzFusion,
306 .FuseAes,
307309 .FpArmv8,
308 .Crc,
309 .Dotprod,
310 .Vh,
310 .FuseAes,
311311 .Exynosm4,
312 },
313 CpuInfo(@This()).create(.Falkor, "falkor", &[_]FeatureType {
312 }),
313 CpuInfo(@This(), FeatureType).create(.Falkor, "falkor", &[_]FeatureType {
314314 .ZczFp,
315315 .Rdm,
316 .SlowStrqroStore,
317316 .Perfmon,
318 .FpArmv8,
319 .Crc,
320 .LslFast,
321317 .UsePostraScheduler,
322 .ZczGp,
323 .CustomCheapAsMove,
318 .Crc,
324319 .PredictableSelectExpensive,
320 .CustomCheapAsMove,
321 .ZczGp,
322 .FpArmv8,
323 .SlowStrqroStore,
324 .LslFast,
325325 .Falkor,
326 },
327 CpuInfo(@This()).create(.Generic, "generic", &[_]FeatureType {
326 }),
327 CpuInfo(@This(), FeatureType).create(.Generic, "generic", &[_]FeatureType {
328328 .Trbe,
329329 .Ete,
330330 .FpArmv8,
......@@ -332,149 +332,149 @@ pub const AArch64Cpu = enum {
332332 .Neon,
333333 .Perfmon,
334334 .UsePostraScheduler,
335 },
336 CpuInfo(@This()).create(.Kryo, "kryo", &[_]FeatureType {
335 }),
336 CpuInfo(@This(), FeatureType).create(.Kryo, "kryo", &[_]FeatureType {
337337 .ZczFp,
338338 .Perfmon,
339 .FpArmv8,
340 .Crc,
341 .LslFast,
342339 .UsePostraScheduler,
343 .ZczGp,
344 .CustomCheapAsMove,
340 .Crc,
345341 .PredictableSelectExpensive,
346 .Kryo,
347 },
348 CpuInfo(@This()).create(.NeoverseE1, "neoverse-e1", &[_]FeatureType {
349 .Rcpc,
350 .Ccpp,
351 .Pan,
352 .Rdm,
342 .CustomCheapAsMove,
343 .ZczGp,
353344 .FpArmv8,
345 .LslFast,
346 .Kryo,
347 }),
348 CpuInfo(@This(), FeatureType).create(.NeoverseE1, "neoverse-e1", &[_]FeatureType {
354349 .Lse,
355 .Crc,
350 .Vh,
351 .Rdm,
352 .Pan,
356353 .Dotprod,
357 .Lor,
354 .Crc,
358355 .Ssbs,
356 .Lor,
359357 .Uaops,
360 .Vh,
361358 .Ras,
362 .Neoversee1,
363 },
364 CpuInfo(@This()).create(.NeoverseN1, "neoverse-n1", &[_]FeatureType {
365359 .Rcpc,
366 .Spe,
367360 .Ccpp,
368 .Pan,
369 .Rdm,
370361 .FpArmv8,
362 .Neoversee1,
363 }),
364 CpuInfo(@This(), FeatureType).create(.NeoverseN1, "neoverse-n1", &[_]FeatureType {
371365 .Lse,
372 .Crc,
366 .Spe,
367 .Vh,
368 .Rdm,
369 .Pan,
373370 .Dotprod,
374 .Lor,
371 .Crc,
375372 .Ssbs,
373 .Lor,
376374 .Uaops,
377 .Vh,
378375 .Ras,
376 .Rcpc,
377 .Ccpp,
378 .FpArmv8,
379379 .Neoversen1,
380 },
381 CpuInfo(@This()).create(.Saphira, "saphira", &[_]FeatureType {
380 }),
381 CpuInfo(@This(), FeatureType).create(.Saphira, "saphira", &[_]FeatureType {
382 .Spe,
383 .Vh,
382384 .ZczFp,
383 .Nv,
385 .Rdm,
386 .UsePostraScheduler,
387 .Dit,
384388 .Am,
385 .Lse,
389 .Ras,
390 .Rcpc,
386391 .Sel2,
387 .Lor,
388 .Tracev84,
389 .Uaops,
390 .UsePostraScheduler,
391 .CustomCheapAsMove,
392392 .Ccpp,
393 .Pa,
394 .Pan,
395 .Uaops,
396 .Tracev84,
397 .Mpam,
398 .LslFast,
399 .Lse,
400 .Nv,
393401 .Perfmon,
402 .Dotprod,
394403 .TlbRmi,
404 .Lor,
405 .Ccidx,
395406 .PredictableSelectExpensive,
407 .Crc,
408 .CustomCheapAsMove,
396409 .Fmi,
397 .Rcpc,
398 .Pan,
399 .Rdm,
400 .LslFast,
401 .Pa,
402410 .ZczGp,
403 .Dit,
404 .Ras,
405 .Spe,
406 .Mpam,
407411 .FpArmv8,
408 .Ccidx,
409 .Dotprod,
410 .Crc,
411 .Vh,
412412 .Saphira,
413 },
414 CpuInfo(@This()).create(.Thunderx, "thunderx", &[_]FeatureType {
413 }),
414 CpuInfo(@This(), FeatureType).create(.Thunderx, "thunderx", &[_]FeatureType {
415415 .Perfmon,
416 .FpArmv8,
417 .Crc,
418416 .UsePostraScheduler,
417 .Crc,
418 .FpArmv8,
419419 .PredictableSelectExpensive,
420420 .Thunderx,
421 },
422 CpuInfo(@This()).create(.Thunderx2t99, "thunderx2t99", &[_]FeatureType {
423 .Pan,
424 .Rdm,
425 .Vh,
426 .AggressiveFma,
427 .FpArmv8,
421 }),
422 CpuInfo(@This(), FeatureType).create(.Thunderx2t99, "thunderx2t99", &[_]FeatureType {
428423 .Lse,
424 .ArithBccFusion,
425 .Vh,
426 .Rdm,
427 .UsePostraScheduler,
429428 .Crc,
430429 .Lor,
431 .UsePostraScheduler,
432 .ArithBccFusion,
430 .Pan,
431 .AggressiveFma,
432 .FpArmv8,
433433 .PredictableSelectExpensive,
434434 .Thunderx2t99,
435 },
436 CpuInfo(@This()).create(.Thunderxt81, "thunderxt81", &[_]FeatureType {
435 }),
436 CpuInfo(@This(), FeatureType).create(.Thunderxt81, "thunderxt81", &[_]FeatureType {
437437 .Perfmon,
438 .FpArmv8,
439 .Crc,
440438 .UsePostraScheduler,
439 .Crc,
440 .FpArmv8,
441441 .PredictableSelectExpensive,
442442 .Thunderxt81,
443 },
444 CpuInfo(@This()).create(.Thunderxt83, "thunderxt83", &[_]FeatureType {
443 }),
444 CpuInfo(@This(), FeatureType).create(.Thunderxt83, "thunderxt83", &[_]FeatureType {
445445 .Perfmon,
446 .FpArmv8,
447 .Crc,
448446 .UsePostraScheduler,
447 .Crc,
448 .FpArmv8,
449449 .PredictableSelectExpensive,
450450 .Thunderxt83,
451 },
452 CpuInfo(@This()).create(.Thunderxt88, "thunderxt88", &[_]FeatureType {
451 }),
452 CpuInfo(@This(), FeatureType).create(.Thunderxt88, "thunderxt88", &[_]FeatureType {
453453 .Perfmon,
454 .FpArmv8,
455 .Crc,
456454 .UsePostraScheduler,
455 .Crc,
456 .FpArmv8,
457457 .PredictableSelectExpensive,
458458 .Thunderxt88,
459 },
460 CpuInfo(@This()).create(.Tsv110, "tsv110", &[_]FeatureType {
461 .Uaops,
459 }),
460 CpuInfo(@This(), FeatureType).create(.Tsv110, "tsv110", &[_]FeatureType {
461 .Lse,
462462 .Spe,
463 .Ccpp,
464 .Pan,
465 .Rdm,
466 .FuseAes,
467463 .Vh,
464 .Rdm,
468465 .Perfmon,
469 .FpArmv8,
470 .Lse,
471 .Crc,
466 .UsePostraScheduler,
467 .Pan,
472468 .Dotprod,
469 .Crc,
473470 .Lor,
474 .UsePostraScheduler,
471 .Uaops,
475472 .CustomCheapAsMove,
476473 .Ras,
474 .Ccpp,
475 .FpArmv8,
476 .FuseAes,
477477 .Tsv110,
478 },
478 }),
479479 };
480480};
lib/std/target/cpu/AmdGpuCpu.zig+521-521
......@@ -42,135 +42,135 @@ pub const AmdGpuCpu = enum {
4242 Tonga,
4343 Verde,
4444
45 pub fn getInfo(self: @This()) CpuInfo {
45 const FeatureType = feature.AmdGpuFeature;
46
47 pub fn getInfo(self: @This()) CpuInfo(@This(), FeatureType) {
4648 return cpu_infos[@enumToInt(self)];
4749 }
4850
49 pub const FeatureType = feature.AmdGpuFeature;
50
51 const cpu_infos = [@memberCount(@This())]CpuInfo(@This()) {
52 CpuInfo(@This()).create(.Bonaire, "bonaire", &[_]FeatureType {
51 pub const cpu_infos = [@memberCount(@This())]CpuInfo(@This(), FeatureType) {
52 CpuInfo(@This(), FeatureType).create(.Bonaire, "bonaire", &[_]FeatureType {
5353 .CodeObjectV3,
5454 .NoXnackSupport,
5555 .Ldsbankcount32,
56 .Wavefrontsize64,
57 .MimgR128,
56 .Movrel,
57 .Gfx7Gfx8Gfx9Insts,
5858 .Fp64,
59 .TrigReducedRange,
5960 .CiInsts,
6061 .FlatAddressSpace,
61 .TrigReducedRange,
62 .NoSramEccSupport,
63 .Movrel,
6462 .Localmemorysize65536,
65 .Gfx7Gfx8Gfx9Insts,
63 .Wavefrontsize64,
64 .NoSramEccSupport,
65 .MimgR128,
6666 .SeaIslands,
67 },
68 CpuInfo(@This()).create(.Carrizo, "carrizo", &[_]FeatureType {
67 }),
68 CpuInfo(@This(), FeatureType).create(.Carrizo, "carrizo", &[_]FeatureType {
6969 .CodeObjectV3,
7070 .FastFmaf,
7171 .Ldsbankcount32,
7272 .UnpackedD16Vmem,
73 .Wavefrontsize64,
74 .Fp64,
73 .IntClampInsts,
74 .SdwaMav,
75 .Movrel,
76 .SMemrealtime,
7577 .Gcn3Encoding,
7678 .TrigReducedRange,
77 .Sdwa,
78 .VgprIndexMode,
79 .Dpp,
79 .CiInsts,
8080 .FlatAddressSpace,
81 .Gfx8Insts,
82 .Gfx7Gfx8Gfx9Insts,
83 .MimgR128,
81 .Sdwa,
82 .Wavefrontsize64,
8483 .NoSramEccSupport,
85 .IntClampInsts,
8684 .ScalarStores,
87 .Movrel,
88 .SdwaMav,
89 .CiInsts,
85 .Gfx7Gfx8Gfx9Insts,
86 .Dpp,
87 .Localmemorysize65536,
9088 .BitInsts16,
91 .SMemrealtime,
89 .VgprIndexMode,
90 .Gfx8Insts,
9291 .Inv2piInlineImm,
93 .Localmemorysize65536,
92 .MimgR128,
9493 .SdwaOutModsVopc,
94 .Fp64,
9595 .VolcanicIslands,
9696 .Xnack,
9797 .HalfRate64Ops,
98 },
99 CpuInfo(@This()).create(.Fiji, "fiji", &[_]FeatureType {
98 }),
99 CpuInfo(@This(), FeatureType).create(.Fiji, "fiji", &[_]FeatureType {
100100 .CodeObjectV3,
101101 .NoXnackSupport,
102102 .Ldsbankcount32,
103103 .UnpackedD16Vmem,
104 .Wavefrontsize64,
105 .Fp64,
104 .IntClampInsts,
105 .SdwaMav,
106 .Movrel,
107 .SMemrealtime,
106108 .Gcn3Encoding,
107109 .TrigReducedRange,
108 .Sdwa,
109 .VgprIndexMode,
110 .Dpp,
110 .CiInsts,
111111 .FlatAddressSpace,
112 .Gfx8Insts,
113 .Gfx7Gfx8Gfx9Insts,
114 .MimgR128,
112 .Sdwa,
113 .Wavefrontsize64,
115114 .NoSramEccSupport,
116 .IntClampInsts,
117115 .ScalarStores,
118 .Movrel,
119 .SdwaMav,
120 .CiInsts,
116 .Gfx7Gfx8Gfx9Insts,
117 .Dpp,
118 .Localmemorysize65536,
121119 .BitInsts16,
122 .SMemrealtime,
120 .VgprIndexMode,
121 .Gfx8Insts,
123122 .Inv2piInlineImm,
124 .Localmemorysize65536,
123 .MimgR128,
125124 .SdwaOutModsVopc,
125 .Fp64,
126126 .VolcanicIslands,
127 },
128 CpuInfo(@This()).create(.Generic, "generic", &[_]FeatureType {
127 }),
128 CpuInfo(@This(), FeatureType).create(.Generic, "generic", &[_]FeatureType {
129129 .Wavefrontsize64,
130 },
131 CpuInfo(@This()).create(.GenericHsa, "generic-hsa", &[_]FeatureType {
130 }),
131 CpuInfo(@This(), FeatureType).create(.GenericHsa, "generic-hsa", &[_]FeatureType {
132132 .FlatAddressSpace,
133133 .Wavefrontsize64,
134 },
135 CpuInfo(@This()).create(.Gfx1010, "gfx1010", &[_]FeatureType {
134 }),
135 CpuInfo(@This(), FeatureType).create(.Gfx1010, "gfx1010", &[_]FeatureType {
136136 .CodeObjectV3,
137137 .DlInsts,
138138 .NoXnackSupport,
139139 .FlatSegmentOffsetBug,
140 .Gfx9Insts,
141 .NoSdstCmpx,
142 .Fp64,
143 .FastFmaf,
144 .Sdwa,
145 .SdwaScalar,
146 .Dpp,
147 .RegisterBanking,
140 .Vscnt,
141 .ApertureRegs,
148142 .Gfx10Insts,
149 .AddNoCarryInsts,
143 .IntClampInsts,
144 .PkFmacF16Inst,
150145 .SdwaOmod,
151 .SdwaSdst,
146 .SdwaScalar,
147 .AddNoCarryInsts,
148 .Movrel,
149 .SMemrealtime,
150 .NoSdstCmpx,
151 .CiInsts,
152152 .FlatAddressSpace,
153 .Sdwa,
154 .NoSramEccSupport,
155 .SdwaSdst,
156 .FlatInstOffsets,
157 .RegisterBanking,
158 .Dpp,
159 .Localmemorysize65536,
160 .Vop3p,
161 .BitInsts16,
162 .Dpp8,
153163 .Gfx8Insts,
164 .Inv2piInlineImm,
165 .Gfx9Insts,
154166 .FmaMixInsts,
155 .PkFmacF16Inst,
156 .Vop3Literal,
157167 .MimgR128,
158 .NoSramEccSupport,
159 .IntClampInsts,
160 .Movrel,
161 .Dpp8,
162 .ApertureRegs,
163 .NoDataDepHazard,
164 .CiInsts,
168 .Vop3Literal,
165169 .FlatGlobalInsts,
166 .BitInsts16,
167170 .FlatScratchInsts,
168 .SMemrealtime,
169 .Vop3p,
170 .FlatInstOffsets,
171 .Inv2piInlineImm,
172 .Localmemorysize65536,
173 .Vscnt,
171 .Fp64,
172 .FastFmaf,
173 .NoDataDepHazard,
174174 .Gfx10,
175175 .InstFwdPrefetchBug,
176176 .Ldsbankcount32,
......@@ -187,8 +187,8 @@ pub const AmdGpuCpu = enum {
187187 .VcmpxExecWarHazard,
188188 .VcmpxPermlaneHazard,
189189 .Wavefrontsize32,
190 },
191 CpuInfo(@This()).create(.Gfx1011, "gfx1011", &[_]FeatureType {
190 }),
191 CpuInfo(@This(), FeatureType).create(.Gfx1011, "gfx1011", &[_]FeatureType {
192192 .CodeObjectV3,
193193 .DlInsts,
194194 .NoXnackSupport,
......@@ -197,40 +197,40 @@ pub const AmdGpuCpu = enum {
197197 .Dot5Insts,
198198 .Dot6Insts,
199199 .FlatSegmentOffsetBug,
200 .Gfx9Insts,
201 .NoSdstCmpx,
202 .Fp64,
203 .FastFmaf,
204 .Sdwa,
205 .SdwaScalar,
206 .Dpp,
207 .RegisterBanking,
200 .Vscnt,
201 .ApertureRegs,
208202 .Gfx10Insts,
209 .AddNoCarryInsts,
203 .IntClampInsts,
204 .PkFmacF16Inst,
210205 .SdwaOmod,
211 .SdwaSdst,
206 .SdwaScalar,
207 .AddNoCarryInsts,
208 .Movrel,
209 .SMemrealtime,
210 .NoSdstCmpx,
211 .CiInsts,
212212 .FlatAddressSpace,
213 .Sdwa,
214 .NoSramEccSupport,
215 .SdwaSdst,
216 .FlatInstOffsets,
217 .RegisterBanking,
218 .Dpp,
219 .Localmemorysize65536,
220 .Vop3p,
221 .BitInsts16,
222 .Dpp8,
213223 .Gfx8Insts,
224 .Inv2piInlineImm,
225 .Gfx9Insts,
214226 .FmaMixInsts,
215 .PkFmacF16Inst,
216 .Vop3Literal,
217227 .MimgR128,
218 .NoSramEccSupport,
219 .IntClampInsts,
220 .Movrel,
221 .Dpp8,
222 .ApertureRegs,
223 .NoDataDepHazard,
224 .CiInsts,
228 .Vop3Literal,
225229 .FlatGlobalInsts,
226 .BitInsts16,
227230 .FlatScratchInsts,
228 .SMemrealtime,
229 .Vop3p,
230 .FlatInstOffsets,
231 .Inv2piInlineImm,
232 .Localmemorysize65536,
233 .Vscnt,
231 .Fp64,
232 .FastFmaf,
233 .NoDataDepHazard,
234234 .Gfx10,
235235 .InstFwdPrefetchBug,
236236 .Ldsbankcount32,
......@@ -246,8 +246,8 @@ pub const AmdGpuCpu = enum {
246246 .VcmpxExecWarHazard,
247247 .VcmpxPermlaneHazard,
248248 .Wavefrontsize32,
249 },
250 CpuInfo(@This()).create(.Gfx1012, "gfx1012", &[_]FeatureType {
249 }),
250 CpuInfo(@This(), FeatureType).create(.Gfx1012, "gfx1012", &[_]FeatureType {
251251 .CodeObjectV3,
252252 .DlInsts,
253253 .NoXnackSupport,
......@@ -256,40 +256,40 @@ pub const AmdGpuCpu = enum {
256256 .Dot5Insts,
257257 .Dot6Insts,
258258 .FlatSegmentOffsetBug,
259 .Gfx9Insts,
260 .NoSdstCmpx,
261 .Fp64,
262 .FastFmaf,
263 .Sdwa,
264 .SdwaScalar,
265 .Dpp,
266 .RegisterBanking,
259 .Vscnt,
260 .ApertureRegs,
267261 .Gfx10Insts,
268 .AddNoCarryInsts,
262 .IntClampInsts,
263 .PkFmacF16Inst,
269264 .SdwaOmod,
270 .SdwaSdst,
265 .SdwaScalar,
266 .AddNoCarryInsts,
267 .Movrel,
268 .SMemrealtime,
269 .NoSdstCmpx,
270 .CiInsts,
271271 .FlatAddressSpace,
272 .Sdwa,
273 .NoSramEccSupport,
274 .SdwaSdst,
275 .FlatInstOffsets,
276 .RegisterBanking,
277 .Dpp,
278 .Localmemorysize65536,
279 .Vop3p,
280 .BitInsts16,
281 .Dpp8,
272282 .Gfx8Insts,
283 .Inv2piInlineImm,
284 .Gfx9Insts,
273285 .FmaMixInsts,
274 .PkFmacF16Inst,
275 .Vop3Literal,
276286 .MimgR128,
277 .NoSramEccSupport,
278 .IntClampInsts,
279 .Movrel,
280 .Dpp8,
281 .ApertureRegs,
282 .NoDataDepHazard,
283 .CiInsts,
287 .Vop3Literal,
284288 .FlatGlobalInsts,
285 .BitInsts16,
286289 .FlatScratchInsts,
287 .SMemrealtime,
288 .Vop3p,
289 .FlatInstOffsets,
290 .Inv2piInlineImm,
291 .Localmemorysize65536,
292 .Vscnt,
290 .Fp64,
291 .FastFmaf,
292 .NoDataDepHazard,
293293 .Gfx10,
294294 .InstFwdPrefetchBug,
295295 .Ldsbankcount32,
......@@ -306,392 +306,392 @@ pub const AmdGpuCpu = enum {
306306 .VcmpxExecWarHazard,
307307 .VcmpxPermlaneHazard,
308308 .Wavefrontsize32,
309 },
310 CpuInfo(@This()).create(.Gfx600, "gfx600", &[_]FeatureType {
309 }),
310 CpuInfo(@This(), FeatureType).create(.Gfx600, "gfx600", &[_]FeatureType {
311311 .CodeObjectV3,
312312 .NoXnackSupport,
313313 .FastFmaf,
314314 .Ldsbankcount32,
315 .Wavefrontsize64,
315 .Movrel,
316316 .MimgR128,
317317 .Fp64,
318318 .TrigReducedRange,
319 .Wavefrontsize64,
319320 .NoSramEccSupport,
320 .Movrel,
321321 .Localmemorysize32768,
322322 .SouthernIslands,
323323 .HalfRate64Ops,
324 },
325 CpuInfo(@This()).create(.Gfx601, "gfx601", &[_]FeatureType {
324 }),
325 CpuInfo(@This(), FeatureType).create(.Gfx601, "gfx601", &[_]FeatureType {
326326 .CodeObjectV3,
327327 .NoXnackSupport,
328328 .Ldsbankcount32,
329 .Wavefrontsize64,
329 .Movrel,
330330 .MimgR128,
331331 .Fp64,
332332 .TrigReducedRange,
333 .Wavefrontsize64,
333334 .NoSramEccSupport,
334 .Movrel,
335335 .Localmemorysize32768,
336336 .SouthernIslands,
337 },
338 CpuInfo(@This()).create(.Gfx700, "gfx700", &[_]FeatureType {
337 }),
338 CpuInfo(@This(), FeatureType).create(.Gfx700, "gfx700", &[_]FeatureType {
339339 .CodeObjectV3,
340340 .NoXnackSupport,
341341 .Ldsbankcount32,
342 .Wavefrontsize64,
343 .MimgR128,
342 .Movrel,
343 .Gfx7Gfx8Gfx9Insts,
344344 .Fp64,
345 .TrigReducedRange,
345346 .CiInsts,
346347 .FlatAddressSpace,
347 .TrigReducedRange,
348 .NoSramEccSupport,
349 .Movrel,
350348 .Localmemorysize65536,
351 .Gfx7Gfx8Gfx9Insts,
349 .Wavefrontsize64,
350 .NoSramEccSupport,
351 .MimgR128,
352352 .SeaIslands,
353 },
354 CpuInfo(@This()).create(.Gfx701, "gfx701", &[_]FeatureType {
353 }),
354 CpuInfo(@This(), FeatureType).create(.Gfx701, "gfx701", &[_]FeatureType {
355355 .CodeObjectV3,
356356 .NoXnackSupport,
357357 .FastFmaf,
358358 .Ldsbankcount32,
359 .Wavefrontsize64,
360 .MimgR128,
359 .Movrel,
360 .Gfx7Gfx8Gfx9Insts,
361361 .Fp64,
362 .TrigReducedRange,
362363 .CiInsts,
363364 .FlatAddressSpace,
364 .TrigReducedRange,
365 .NoSramEccSupport,
366 .Movrel,
367365 .Localmemorysize65536,
368 .Gfx7Gfx8Gfx9Insts,
369 .SeaIslands,
366 .Wavefrontsize64,
367 .NoSramEccSupport,
368 .MimgR128,
369 .SeaIslands,
370370 .HalfRate64Ops,
371 },
372 CpuInfo(@This()).create(.Gfx702, "gfx702", &[_]FeatureType {
371 }),
372 CpuInfo(@This(), FeatureType).create(.Gfx702, "gfx702", &[_]FeatureType {
373373 .CodeObjectV3,
374374 .NoXnackSupport,
375375 .FastFmaf,
376376 .Ldsbankcount16,
377 .Wavefrontsize64,
378 .MimgR128,
377 .Movrel,
378 .Gfx7Gfx8Gfx9Insts,
379379 .Fp64,
380 .TrigReducedRange,
380381 .CiInsts,
381382 .FlatAddressSpace,
382 .TrigReducedRange,
383 .NoSramEccSupport,
384 .Movrel,
385383 .Localmemorysize65536,
386 .Gfx7Gfx8Gfx9Insts,
384 .Wavefrontsize64,
385 .NoSramEccSupport,
386 .MimgR128,
387387 .SeaIslands,
388 },
389 CpuInfo(@This()).create(.Gfx703, "gfx703", &[_]FeatureType {
388 }),
389 CpuInfo(@This(), FeatureType).create(.Gfx703, "gfx703", &[_]FeatureType {
390390 .CodeObjectV3,
391391 .NoXnackSupport,
392392 .Ldsbankcount16,
393 .Wavefrontsize64,
394 .MimgR128,
393 .Movrel,
394 .Gfx7Gfx8Gfx9Insts,
395395 .Fp64,
396 .TrigReducedRange,
396397 .CiInsts,
397398 .FlatAddressSpace,
398 .TrigReducedRange,
399 .NoSramEccSupport,
400 .Movrel,
401399 .Localmemorysize65536,
402 .Gfx7Gfx8Gfx9Insts,
400 .Wavefrontsize64,
401 .NoSramEccSupport,
402 .MimgR128,
403403 .SeaIslands,
404 },
405 CpuInfo(@This()).create(.Gfx704, "gfx704", &[_]FeatureType {
404 }),
405 CpuInfo(@This(), FeatureType).create(.Gfx704, "gfx704", &[_]FeatureType {
406406 .CodeObjectV3,
407407 .NoXnackSupport,
408408 .Ldsbankcount32,
409 .Wavefrontsize64,
410 .MimgR128,
409 .Movrel,
410 .Gfx7Gfx8Gfx9Insts,
411411 .Fp64,
412 .TrigReducedRange,
412413 .CiInsts,
413414 .FlatAddressSpace,
414 .TrigReducedRange,
415 .NoSramEccSupport,
416 .Movrel,
417415 .Localmemorysize65536,
418 .Gfx7Gfx8Gfx9Insts,
416 .Wavefrontsize64,
417 .NoSramEccSupport,
418 .MimgR128,
419419 .SeaIslands,
420 },
421 CpuInfo(@This()).create(.Gfx801, "gfx801", &[_]FeatureType {
420 }),
421 CpuInfo(@This(), FeatureType).create(.Gfx801, "gfx801", &[_]FeatureType {
422422 .CodeObjectV3,
423423 .FastFmaf,
424424 .Ldsbankcount32,
425425 .UnpackedD16Vmem,
426 .Wavefrontsize64,
427 .Fp64,
426 .IntClampInsts,
427 .SdwaMav,
428 .Movrel,
429 .SMemrealtime,
428430 .Gcn3Encoding,
429431 .TrigReducedRange,
430 .Sdwa,
431 .VgprIndexMode,
432 .Dpp,
432 .CiInsts,
433433 .FlatAddressSpace,
434 .Gfx8Insts,
435 .Gfx7Gfx8Gfx9Insts,
436 .MimgR128,
434 .Sdwa,
435 .Wavefrontsize64,
437436 .NoSramEccSupport,
438 .IntClampInsts,
439437 .ScalarStores,
440 .Movrel,
441 .SdwaMav,
442 .CiInsts,
438 .Gfx7Gfx8Gfx9Insts,
439 .Dpp,
440 .Localmemorysize65536,
443441 .BitInsts16,
444 .SMemrealtime,
442 .VgprIndexMode,
443 .Gfx8Insts,
445444 .Inv2piInlineImm,
446 .Localmemorysize65536,
445 .MimgR128,
447446 .SdwaOutModsVopc,
447 .Fp64,
448448 .VolcanicIslands,
449449 .Xnack,
450450 .HalfRate64Ops,
451 },
452 CpuInfo(@This()).create(.Gfx802, "gfx802", &[_]FeatureType {
451 }),
452 CpuInfo(@This(), FeatureType).create(.Gfx802, "gfx802", &[_]FeatureType {
453453 .CodeObjectV3,
454454 .NoXnackSupport,
455455 .Ldsbankcount32,
456456 .SgprInitBug,
457457 .UnpackedD16Vmem,
458 .Wavefrontsize64,
459 .Fp64,
458 .IntClampInsts,
459 .SdwaMav,
460 .Movrel,
461 .SMemrealtime,
460462 .Gcn3Encoding,
461463 .TrigReducedRange,
462 .Sdwa,
463 .VgprIndexMode,
464 .Dpp,
464 .CiInsts,
465465 .FlatAddressSpace,
466 .Gfx8Insts,
467 .Gfx7Gfx8Gfx9Insts,
468 .MimgR128,
466 .Sdwa,
467 .Wavefrontsize64,
469468 .NoSramEccSupport,
470 .IntClampInsts,
471469 .ScalarStores,
472 .Movrel,
473 .SdwaMav,
474 .CiInsts,
470 .Gfx7Gfx8Gfx9Insts,
471 .Dpp,
472 .Localmemorysize65536,
475473 .BitInsts16,
476 .SMemrealtime,
474 .VgprIndexMode,
475 .Gfx8Insts,
477476 .Inv2piInlineImm,
478 .Localmemorysize65536,
477 .MimgR128,
479478 .SdwaOutModsVopc,
479 .Fp64,
480480 .VolcanicIslands,
481 },
482 CpuInfo(@This()).create(.Gfx803, "gfx803", &[_]FeatureType {
481 }),
482 CpuInfo(@This(), FeatureType).create(.Gfx803, "gfx803", &[_]FeatureType {
483483 .CodeObjectV3,
484484 .NoXnackSupport,
485485 .Ldsbankcount32,
486486 .UnpackedD16Vmem,
487 .Wavefrontsize64,
488 .Fp64,
487 .IntClampInsts,
488 .SdwaMav,
489 .Movrel,
490 .SMemrealtime,
489491 .Gcn3Encoding,
490492 .TrigReducedRange,
491 .Sdwa,
492 .VgprIndexMode,
493 .Dpp,
493 .CiInsts,
494494 .FlatAddressSpace,
495 .Gfx8Insts,
496 .Gfx7Gfx8Gfx9Insts,
497 .MimgR128,
495 .Sdwa,
496 .Wavefrontsize64,
498497 .NoSramEccSupport,
499 .IntClampInsts,
500498 .ScalarStores,
501 .Movrel,
502 .SdwaMav,
503 .CiInsts,
499 .Gfx7Gfx8Gfx9Insts,
500 .Dpp,
501 .Localmemorysize65536,
504502 .BitInsts16,
505 .SMemrealtime,
503 .VgprIndexMode,
504 .Gfx8Insts,
506505 .Inv2piInlineImm,
507 .Localmemorysize65536,
506 .MimgR128,
508507 .SdwaOutModsVopc,
508 .Fp64,
509509 .VolcanicIslands,
510 },
511 CpuInfo(@This()).create(.Gfx810, "gfx810", &[_]FeatureType {
510 }),
511 CpuInfo(@This(), FeatureType).create(.Gfx810, "gfx810", &[_]FeatureType {
512512 .CodeObjectV3,
513513 .Ldsbankcount16,
514 .Wavefrontsize64,
515 .Fp64,
514 .IntClampInsts,
515 .SdwaMav,
516 .Movrel,
517 .SMemrealtime,
516518 .Gcn3Encoding,
517519 .TrigReducedRange,
518 .Sdwa,
519 .VgprIndexMode,
520 .Dpp,
520 .CiInsts,
521521 .FlatAddressSpace,
522 .Gfx8Insts,
523 .Gfx7Gfx8Gfx9Insts,
524 .MimgR128,
522 .Sdwa,
523 .Wavefrontsize64,
525524 .NoSramEccSupport,
526 .IntClampInsts,
527525 .ScalarStores,
528 .Movrel,
529 .SdwaMav,
530 .CiInsts,
526 .Gfx7Gfx8Gfx9Insts,
527 .Dpp,
528 .Localmemorysize65536,
531529 .BitInsts16,
532 .SMemrealtime,
530 .VgprIndexMode,
531 .Gfx8Insts,
533532 .Inv2piInlineImm,
534 .Localmemorysize65536,
533 .MimgR128,
535534 .SdwaOutModsVopc,
535 .Fp64,
536536 .VolcanicIslands,
537537 .Xnack,
538 },
539 CpuInfo(@This()).create(.Gfx900, "gfx900", &[_]FeatureType {
538 }),
539 CpuInfo(@This(), FeatureType).create(.Gfx900, "gfx900", &[_]FeatureType {
540540 .CodeObjectV3,
541541 .NoSramEccSupport,
542542 .NoXnackSupport,
543 .Gfx9Insts,
544 .Wavefrontsize64,
545 .Fp64,
546 .Gcn3Encoding,
547 .FastFmaf,
548 .Sdwa,
543 .ApertureRegs,
544 .IntClampInsts,
545 .SdwaOmod,
549546 .SdwaScalar,
550 .VgprIndexMode,
551 .Dpp,
552547 .AddNoCarryInsts,
553 .SdwaOmod,
554 .SdwaSdst,
555548 .ScalarAtomics,
549 .SMemrealtime,
550 .Gcn3Encoding,
551 .CiInsts,
556552 .FlatAddressSpace,
557 .ScalarFlatScratchInsts,
558 .Gfx8Insts,
553 .Sdwa,
554 .Wavefrontsize64,
555 .SdwaSdst,
556 .FlatInstOffsets,
557 .ScalarStores,
559558 .Gfx7Gfx8Gfx9Insts,
560559 .R128A16,
561 .IntClampInsts,
562 .ScalarStores,
563 .ApertureRegs,
564 .CiInsts,
565 .FlatGlobalInsts,
566 .BitInsts16,
567 .FlatScratchInsts,
568 .SMemrealtime,
560 .Dpp,
561 .Localmemorysize65536,
569562 .Vop3p,
570 .FlatInstOffsets,
563 .BitInsts16,
564 .VgprIndexMode,
565 .Gfx8Insts,
571566 .Inv2piInlineImm,
572 .Localmemorysize65536,
567 .Gfx9Insts,
568 .ScalarFlatScratchInsts,
569 .FlatGlobalInsts,
570 .FlatScratchInsts,
571 .Fp64,
572 .FastFmaf,
573573 .Gfx9,
574574 .Ldsbankcount32,
575575 .MadMixInsts,
576 },
577 CpuInfo(@This()).create(.Gfx902, "gfx902", &[_]FeatureType {
576 }),
577 CpuInfo(@This(), FeatureType).create(.Gfx902, "gfx902", &[_]FeatureType {
578578 .CodeObjectV3,
579579 .NoSramEccSupport,
580 .Gfx9Insts,
581 .Wavefrontsize64,
582 .Fp64,
583 .Gcn3Encoding,
584 .FastFmaf,
585 .Sdwa,
580 .ApertureRegs,
581 .IntClampInsts,
582 .SdwaOmod,
586583 .SdwaScalar,
587 .VgprIndexMode,
588 .Dpp,
589584 .AddNoCarryInsts,
590 .SdwaOmod,
591 .SdwaSdst,
592585 .ScalarAtomics,
586 .SMemrealtime,
587 .Gcn3Encoding,
588 .CiInsts,
593589 .FlatAddressSpace,
594 .ScalarFlatScratchInsts,
595 .Gfx8Insts,
590 .Sdwa,
591 .Wavefrontsize64,
592 .SdwaSdst,
593 .FlatInstOffsets,
594 .ScalarStores,
596595 .Gfx7Gfx8Gfx9Insts,
597596 .R128A16,
598 .IntClampInsts,
599 .ScalarStores,
600 .ApertureRegs,
601 .CiInsts,
602 .FlatGlobalInsts,
603 .BitInsts16,
604 .FlatScratchInsts,
605 .SMemrealtime,
597 .Dpp,
598 .Localmemorysize65536,
606599 .Vop3p,
607 .FlatInstOffsets,
600 .BitInsts16,
601 .VgprIndexMode,
602 .Gfx8Insts,
608603 .Inv2piInlineImm,
609 .Localmemorysize65536,
604 .Gfx9Insts,
605 .ScalarFlatScratchInsts,
606 .FlatGlobalInsts,
607 .FlatScratchInsts,
608 .Fp64,
609 .FastFmaf,
610610 .Gfx9,
611611 .Ldsbankcount32,
612612 .MadMixInsts,
613613 .Xnack,
614 },
615 CpuInfo(@This()).create(.Gfx904, "gfx904", &[_]FeatureType {
614 }),
615 CpuInfo(@This(), FeatureType).create(.Gfx904, "gfx904", &[_]FeatureType {
616616 .CodeObjectV3,
617617 .NoSramEccSupport,
618618 .NoXnackSupport,
619619 .FmaMixInsts,
620 .Gfx9Insts,
621 .Wavefrontsize64,
622 .Fp64,
623 .Gcn3Encoding,
624 .FastFmaf,
625 .Sdwa,
620 .ApertureRegs,
621 .IntClampInsts,
622 .SdwaOmod,
626623 .SdwaScalar,
627 .VgprIndexMode,
628 .Dpp,
629624 .AddNoCarryInsts,
630 .SdwaOmod,
631 .SdwaSdst,
632625 .ScalarAtomics,
626 .SMemrealtime,
627 .Gcn3Encoding,
628 .CiInsts,
633629 .FlatAddressSpace,
634 .ScalarFlatScratchInsts,
635 .Gfx8Insts,
630 .Sdwa,
631 .Wavefrontsize64,
632 .SdwaSdst,
633 .FlatInstOffsets,
634 .ScalarStores,
636635 .Gfx7Gfx8Gfx9Insts,
637636 .R128A16,
638 .IntClampInsts,
639 .ScalarStores,
640 .ApertureRegs,
641 .CiInsts,
642 .FlatGlobalInsts,
643 .BitInsts16,
644 .FlatScratchInsts,
645 .SMemrealtime,
637 .Dpp,
638 .Localmemorysize65536,
646639 .Vop3p,
647 .FlatInstOffsets,
640 .BitInsts16,
641 .VgprIndexMode,
642 .Gfx8Insts,
648643 .Inv2piInlineImm,
649 .Localmemorysize65536,
644 .Gfx9Insts,
645 .ScalarFlatScratchInsts,
646 .FlatGlobalInsts,
647 .FlatScratchInsts,
648 .Fp64,
649 .FastFmaf,
650650 .Gfx9,
651651 .Ldsbankcount32,
652 },
653 CpuInfo(@This()).create(.Gfx906, "gfx906", &[_]FeatureType {
652 }),
653 CpuInfo(@This(), FeatureType).create(.Gfx906, "gfx906", &[_]FeatureType {
654654 .CodeObjectV3,
655655 .DlInsts,
656656 .NoXnackSupport,
657657 .Dot1Insts,
658658 .Dot2Insts,
659659 .FmaMixInsts,
660 .Gfx9Insts,
661 .Wavefrontsize64,
662 .Fp64,
663 .Gcn3Encoding,
664 .FastFmaf,
665 .Sdwa,
660 .ApertureRegs,
661 .IntClampInsts,
662 .SdwaOmod,
666663 .SdwaScalar,
667 .VgprIndexMode,
668 .Dpp,
669664 .AddNoCarryInsts,
670 .SdwaOmod,
671 .SdwaSdst,
672665 .ScalarAtomics,
666 .SMemrealtime,
667 .Gcn3Encoding,
668 .CiInsts,
673669 .FlatAddressSpace,
674 .ScalarFlatScratchInsts,
675 .Gfx8Insts,
670 .Sdwa,
671 .Wavefrontsize64,
672 .SdwaSdst,
673 .FlatInstOffsets,
674 .ScalarStores,
676675 .Gfx7Gfx8Gfx9Insts,
677676 .R128A16,
678 .IntClampInsts,
679 .ScalarStores,
680 .ApertureRegs,
681 .CiInsts,
682 .FlatGlobalInsts,
683 .BitInsts16,
684 .FlatScratchInsts,
685 .SMemrealtime,
677 .Dpp,
678 .Localmemorysize65536,
686679 .Vop3p,
687 .FlatInstOffsets,
680 .BitInsts16,
681 .VgprIndexMode,
682 .Gfx8Insts,
688683 .Inv2piInlineImm,
689 .Localmemorysize65536,
684 .Gfx9Insts,
685 .ScalarFlatScratchInsts,
686 .FlatGlobalInsts,
687 .FlatScratchInsts,
688 .Fp64,
689 .FastFmaf,
690690 .Gfx9,
691691 .Ldsbankcount32,
692692 .HalfRate64Ops,
693 },
694 CpuInfo(@This()).create(.Gfx908, "gfx908", &[_]FeatureType {
693 }),
694 CpuInfo(@This(), FeatureType).create(.Gfx908, "gfx908", &[_]FeatureType {
695695 .AtomicFaddInsts,
696696 .CodeObjectV3,
697697 .DlInsts,
......@@ -702,36 +702,36 @@ pub const AmdGpuCpu = enum {
702702 .Dot5Insts,
703703 .Dot6Insts,
704704 .FmaMixInsts,
705 .Gfx9Insts,
706 .Wavefrontsize64,
707 .Fp64,
708 .Gcn3Encoding,
709 .FastFmaf,
710 .Sdwa,
705 .ApertureRegs,
706 .IntClampInsts,
707 .SdwaOmod,
711708 .SdwaScalar,
712 .VgprIndexMode,
713 .Dpp,
714709 .AddNoCarryInsts,
715 .SdwaOmod,
716 .SdwaSdst,
717710 .ScalarAtomics,
711 .SMemrealtime,
712 .Gcn3Encoding,
713 .CiInsts,
718714 .FlatAddressSpace,
719 .ScalarFlatScratchInsts,
720 .Gfx8Insts,
715 .Sdwa,
716 .Wavefrontsize64,
717 .SdwaSdst,
718 .FlatInstOffsets,
719 .ScalarStores,
721720 .Gfx7Gfx8Gfx9Insts,
722721 .R128A16,
723 .IntClampInsts,
724 .ScalarStores,
725 .ApertureRegs,
726 .CiInsts,
727 .FlatGlobalInsts,
728 .BitInsts16,
729 .FlatScratchInsts,
730 .SMemrealtime,
722 .Dpp,
723 .Localmemorysize65536,
731724 .Vop3p,
732 .FlatInstOffsets,
725 .BitInsts16,
726 .VgprIndexMode,
727 .Gfx8Insts,
733728 .Inv2piInlineImm,
734 .Localmemorysize65536,
729 .Gfx9Insts,
730 .ScalarFlatScratchInsts,
731 .FlatGlobalInsts,
732 .FlatScratchInsts,
733 .Fp64,
734 .FastFmaf,
735735 .Gfx9,
736736 .Ldsbankcount32,
737737 .MaiInsts,
......@@ -739,322 +739,322 @@ pub const AmdGpuCpu = enum {
739739 .PkFmacF16Inst,
740740 .SramEcc,
741741 .HalfRate64Ops,
742 },
743 CpuInfo(@This()).create(.Gfx909, "gfx909", &[_]FeatureType {
742 }),
743 CpuInfo(@This(), FeatureType).create(.Gfx909, "gfx909", &[_]FeatureType {
744744 .CodeObjectV3,
745 .Gfx9Insts,
746 .Wavefrontsize64,
747 .Fp64,
748 .Gcn3Encoding,
749 .FastFmaf,
750 .Sdwa,
745 .ApertureRegs,
746 .IntClampInsts,
747 .SdwaOmod,
751748 .SdwaScalar,
752 .VgprIndexMode,
753 .Dpp,
754749 .AddNoCarryInsts,
755 .SdwaOmod,
756 .SdwaSdst,
757750 .ScalarAtomics,
751 .SMemrealtime,
752 .Gcn3Encoding,
753 .CiInsts,
758754 .FlatAddressSpace,
759 .ScalarFlatScratchInsts,
760 .Gfx8Insts,
755 .Sdwa,
756 .Wavefrontsize64,
757 .SdwaSdst,
758 .FlatInstOffsets,
759 .ScalarStores,
761760 .Gfx7Gfx8Gfx9Insts,
762761 .R128A16,
763 .IntClampInsts,
764 .ScalarStores,
765 .ApertureRegs,
766 .CiInsts,
767 .FlatGlobalInsts,
768 .BitInsts16,
769 .FlatScratchInsts,
770 .SMemrealtime,
762 .Dpp,
763 .Localmemorysize65536,
771764 .Vop3p,
772 .FlatInstOffsets,
765 .BitInsts16,
766 .VgprIndexMode,
767 .Gfx8Insts,
773768 .Inv2piInlineImm,
774 .Localmemorysize65536,
769 .Gfx9Insts,
770 .ScalarFlatScratchInsts,
771 .FlatGlobalInsts,
772 .FlatScratchInsts,
773 .Fp64,
774 .FastFmaf,
775775 .Gfx9,
776776 .Ldsbankcount32,
777777 .MadMixInsts,
778778 .Xnack,
779 },
780 CpuInfo(@This()).create(.Hainan, "hainan", &[_]FeatureType {
779 }),
780 CpuInfo(@This(), FeatureType).create(.Hainan, "hainan", &[_]FeatureType {
781781 .CodeObjectV3,
782782 .NoXnackSupport,
783783 .Ldsbankcount32,
784 .Wavefrontsize64,
784 .Movrel,
785785 .MimgR128,
786786 .Fp64,
787787 .TrigReducedRange,
788 .Wavefrontsize64,
788789 .NoSramEccSupport,
789 .Movrel,
790790 .Localmemorysize32768,
791791 .SouthernIslands,
792 },
793 CpuInfo(@This()).create(.Hawaii, "hawaii", &[_]FeatureType {
792 }),
793 CpuInfo(@This(), FeatureType).create(.Hawaii, "hawaii", &[_]FeatureType {
794794 .CodeObjectV3,
795795 .NoXnackSupport,
796796 .FastFmaf,
797797 .Ldsbankcount32,
798 .Wavefrontsize64,
799 .MimgR128,
798 .Movrel,
799 .Gfx7Gfx8Gfx9Insts,
800800 .Fp64,
801 .TrigReducedRange,
801802 .CiInsts,
802803 .FlatAddressSpace,
803 .TrigReducedRange,
804 .NoSramEccSupport,
805 .Movrel,
806804 .Localmemorysize65536,
807 .Gfx7Gfx8Gfx9Insts,
805 .Wavefrontsize64,
806 .NoSramEccSupport,
807 .MimgR128,
808808 .SeaIslands,
809809 .HalfRate64Ops,
810 },
811 CpuInfo(@This()).create(.Iceland, "iceland", &[_]FeatureType {
810 }),
811 CpuInfo(@This(), FeatureType).create(.Iceland, "iceland", &[_]FeatureType {
812812 .CodeObjectV3,
813813 .NoXnackSupport,
814814 .Ldsbankcount32,
815815 .SgprInitBug,
816816 .UnpackedD16Vmem,
817 .Wavefrontsize64,
818 .Fp64,
817 .IntClampInsts,
818 .SdwaMav,
819 .Movrel,
820 .SMemrealtime,
819821 .Gcn3Encoding,
820822 .TrigReducedRange,
821 .Sdwa,
822 .VgprIndexMode,
823 .Dpp,
823 .CiInsts,
824824 .FlatAddressSpace,
825 .Gfx8Insts,
826 .Gfx7Gfx8Gfx9Insts,
827 .MimgR128,
825 .Sdwa,
826 .Wavefrontsize64,
828827 .NoSramEccSupport,
829 .IntClampInsts,
830828 .ScalarStores,
831 .Movrel,
832 .SdwaMav,
833 .CiInsts,
829 .Gfx7Gfx8Gfx9Insts,
830 .Dpp,
831 .Localmemorysize65536,
834832 .BitInsts16,
835 .SMemrealtime,
833 .VgprIndexMode,
834 .Gfx8Insts,
836835 .Inv2piInlineImm,
837 .Localmemorysize65536,
836 .MimgR128,
838837 .SdwaOutModsVopc,
838 .Fp64,
839839 .VolcanicIslands,
840 },
841 CpuInfo(@This()).create(.Kabini, "kabini", &[_]FeatureType {
840 }),
841 CpuInfo(@This(), FeatureType).create(.Kabini, "kabini", &[_]FeatureType {
842842 .CodeObjectV3,
843843 .NoXnackSupport,
844844 .Ldsbankcount16,
845 .Wavefrontsize64,
846 .MimgR128,
845 .Movrel,
846 .Gfx7Gfx8Gfx9Insts,
847847 .Fp64,
848 .TrigReducedRange,
848849 .CiInsts,
849850 .FlatAddressSpace,
850 .TrigReducedRange,
851 .NoSramEccSupport,
852 .Movrel,
853851 .Localmemorysize65536,
854 .Gfx7Gfx8Gfx9Insts,
852 .Wavefrontsize64,
853 .NoSramEccSupport,
854 .MimgR128,
855855 .SeaIslands,
856 },
857 CpuInfo(@This()).create(.Kaveri, "kaveri", &[_]FeatureType {
856 }),
857 CpuInfo(@This(), FeatureType).create(.Kaveri, "kaveri", &[_]FeatureType {
858858 .CodeObjectV3,
859859 .NoXnackSupport,
860860 .Ldsbankcount32,
861 .Wavefrontsize64,
862 .MimgR128,
861 .Movrel,
862 .Gfx7Gfx8Gfx9Insts,
863863 .Fp64,
864 .TrigReducedRange,
864865 .CiInsts,
865866 .FlatAddressSpace,
866 .TrigReducedRange,
867 .NoSramEccSupport,
868 .Movrel,
869867 .Localmemorysize65536,
870 .Gfx7Gfx8Gfx9Insts,
868 .Wavefrontsize64,
869 .NoSramEccSupport,
870 .MimgR128,
871871 .SeaIslands,
872 },
873 CpuInfo(@This()).create(.Mullins, "mullins", &[_]FeatureType {
872 }),
873 CpuInfo(@This(), FeatureType).create(.Mullins, "mullins", &[_]FeatureType {
874874 .CodeObjectV3,
875875 .NoXnackSupport,
876876 .Ldsbankcount16,
877 .Wavefrontsize64,
878 .MimgR128,
877 .Movrel,
878 .Gfx7Gfx8Gfx9Insts,
879879 .Fp64,
880 .TrigReducedRange,
880881 .CiInsts,
881882 .FlatAddressSpace,
882 .TrigReducedRange,
883 .NoSramEccSupport,
884 .Movrel,
885883 .Localmemorysize65536,
886 .Gfx7Gfx8Gfx9Insts,
884 .Wavefrontsize64,
885 .NoSramEccSupport,
886 .MimgR128,
887887 .SeaIslands,
888 },
889 CpuInfo(@This()).create(.Oland, "oland", &[_]FeatureType {
888 }),
889 CpuInfo(@This(), FeatureType).create(.Oland, "oland", &[_]FeatureType {
890890 .CodeObjectV3,
891891 .NoXnackSupport,
892892 .Ldsbankcount32,
893 .Wavefrontsize64,
893 .Movrel,
894894 .MimgR128,
895895 .Fp64,
896896 .TrigReducedRange,
897 .Wavefrontsize64,
897898 .NoSramEccSupport,
898 .Movrel,
899899 .Localmemorysize32768,
900900 .SouthernIslands,
901 },
902 CpuInfo(@This()).create(.Pitcairn, "pitcairn", &[_]FeatureType {
901 }),
902 CpuInfo(@This(), FeatureType).create(.Pitcairn, "pitcairn", &[_]FeatureType {
903903 .CodeObjectV3,
904904 .NoXnackSupport,
905905 .Ldsbankcount32,
906 .Wavefrontsize64,
906 .Movrel,
907907 .MimgR128,
908908 .Fp64,
909909 .TrigReducedRange,
910 .Wavefrontsize64,
910911 .NoSramEccSupport,
911 .Movrel,
912912 .Localmemorysize32768,
913913 .SouthernIslands,
914 },
915 CpuInfo(@This()).create(.Polaris10, "polaris10", &[_]FeatureType {
914 }),
915 CpuInfo(@This(), FeatureType).create(.Polaris10, "polaris10", &[_]FeatureType {
916916 .CodeObjectV3,
917917 .NoXnackSupport,
918918 .Ldsbankcount32,
919919 .UnpackedD16Vmem,
920 .Wavefrontsize64,
921 .Fp64,
920 .IntClampInsts,
921 .SdwaMav,
922 .Movrel,
923 .SMemrealtime,
922924 .Gcn3Encoding,
923925 .TrigReducedRange,
924 .Sdwa,
925 .VgprIndexMode,
926 .Dpp,
926 .CiInsts,
927927 .FlatAddressSpace,
928 .Gfx8Insts,
929 .Gfx7Gfx8Gfx9Insts,
930 .MimgR128,
928 .Sdwa,
929 .Wavefrontsize64,
931930 .NoSramEccSupport,
932 .IntClampInsts,
933931 .ScalarStores,
934 .Movrel,
935 .SdwaMav,
936 .CiInsts,
932 .Gfx7Gfx8Gfx9Insts,
933 .Dpp,
934 .Localmemorysize65536,
937935 .BitInsts16,
938 .SMemrealtime,
936 .VgprIndexMode,
937 .Gfx8Insts,
939938 .Inv2piInlineImm,
940 .Localmemorysize65536,
939 .MimgR128,
941940 .SdwaOutModsVopc,
941 .Fp64,
942942 .VolcanicIslands,
943 },
944 CpuInfo(@This()).create(.Polaris11, "polaris11", &[_]FeatureType {
943 }),
944 CpuInfo(@This(), FeatureType).create(.Polaris11, "polaris11", &[_]FeatureType {
945945 .CodeObjectV3,
946946 .NoXnackSupport,
947947 .Ldsbankcount32,
948948 .UnpackedD16Vmem,
949 .Wavefrontsize64,
950 .Fp64,
949 .IntClampInsts,
950 .SdwaMav,
951 .Movrel,
952 .SMemrealtime,
951953 .Gcn3Encoding,
952954 .TrigReducedRange,
953 .Sdwa,
954 .VgprIndexMode,
955 .Dpp,
955 .CiInsts,
956956 .FlatAddressSpace,
957 .Gfx8Insts,
958 .Gfx7Gfx8Gfx9Insts,
959 .MimgR128,
957 .Sdwa,
958 .Wavefrontsize64,
960959 .NoSramEccSupport,
961 .IntClampInsts,
962960 .ScalarStores,
963 .Movrel,
964 .SdwaMav,
965 .CiInsts,
961 .Gfx7Gfx8Gfx9Insts,
962 .Dpp,
963 .Localmemorysize65536,
966964 .BitInsts16,
967 .SMemrealtime,
965 .VgprIndexMode,
966 .Gfx8Insts,
968967 .Inv2piInlineImm,
969 .Localmemorysize65536,
968 .MimgR128,
970969 .SdwaOutModsVopc,
970 .Fp64,
971971 .VolcanicIslands,
972 },
973 CpuInfo(@This()).create(.Stoney, "stoney", &[_]FeatureType {
972 }),
973 CpuInfo(@This(), FeatureType).create(.Stoney, "stoney", &[_]FeatureType {
974974 .CodeObjectV3,
975975 .Ldsbankcount16,
976 .Wavefrontsize64,
977 .Fp64,
976 .IntClampInsts,
977 .SdwaMav,
978 .Movrel,
979 .SMemrealtime,
978980 .Gcn3Encoding,
979981 .TrigReducedRange,
980 .Sdwa,
981 .VgprIndexMode,
982 .Dpp,
982 .CiInsts,
983983 .FlatAddressSpace,
984 .Gfx8Insts,
985 .Gfx7Gfx8Gfx9Insts,
986 .MimgR128,
984 .Sdwa,
985 .Wavefrontsize64,
987986 .NoSramEccSupport,
988 .IntClampInsts,
989987 .ScalarStores,
990 .Movrel,
991 .SdwaMav,
992 .CiInsts,
988 .Gfx7Gfx8Gfx9Insts,
989 .Dpp,
990 .Localmemorysize65536,
993991 .BitInsts16,
994 .SMemrealtime,
992 .VgprIndexMode,
993 .Gfx8Insts,
995994 .Inv2piInlineImm,
996 .Localmemorysize65536,
995 .MimgR128,
997996 .SdwaOutModsVopc,
997 .Fp64,
998998 .VolcanicIslands,
999999 .Xnack,
1000 },
1001 CpuInfo(@This()).create(.Tahiti, "tahiti", &[_]FeatureType {
1000 }),
1001 CpuInfo(@This(), FeatureType).create(.Tahiti, "tahiti", &[_]FeatureType {
10021002 .CodeObjectV3,
10031003 .NoXnackSupport,
10041004 .FastFmaf,
10051005 .Ldsbankcount32,
1006 .Wavefrontsize64,
1006 .Movrel,
10071007 .MimgR128,
10081008 .Fp64,
10091009 .TrigReducedRange,
1010 .Wavefrontsize64,
10101011 .NoSramEccSupport,
1011 .Movrel,
10121012 .Localmemorysize32768,
10131013 .SouthernIslands,
10141014 .HalfRate64Ops,
1015 },
1016 CpuInfo(@This()).create(.Tonga, "tonga", &[_]FeatureType {
1015 }),
1016 CpuInfo(@This(), FeatureType).create(.Tonga, "tonga", &[_]FeatureType {
10171017 .CodeObjectV3,
10181018 .NoXnackSupport,
10191019 .Ldsbankcount32,
10201020 .SgprInitBug,
10211021 .UnpackedD16Vmem,
1022 .Wavefrontsize64,
1023 .Fp64,
1022 .IntClampInsts,
1023 .SdwaMav,
1024 .Movrel,
1025 .SMemrealtime,
10241026 .Gcn3Encoding,
10251027 .TrigReducedRange,
1026 .Sdwa,
1027 .VgprIndexMode,
1028 .Dpp,
1028 .CiInsts,
10291029 .FlatAddressSpace,
1030 .Gfx8Insts,
1031 .Gfx7Gfx8Gfx9Insts,
1032 .MimgR128,
1030 .Sdwa,
1031 .Wavefrontsize64,
10331032 .NoSramEccSupport,
1034 .IntClampInsts,
10351033 .ScalarStores,
1036 .Movrel,
1037 .SdwaMav,
1038 .CiInsts,
1034 .Gfx7Gfx8Gfx9Insts,
1035 .Dpp,
1036 .Localmemorysize65536,
10391037 .BitInsts16,
1040 .SMemrealtime,
1038 .VgprIndexMode,
1039 .Gfx8Insts,
10411040 .Inv2piInlineImm,
1042 .Localmemorysize65536,
1041 .MimgR128,
10431042 .SdwaOutModsVopc,
1043 .Fp64,
10441044 .VolcanicIslands,
1045 },
1046 CpuInfo(@This()).create(.Verde, "verde", &[_]FeatureType {
1045 }),
1046 CpuInfo(@This(), FeatureType).create(.Verde, "verde", &[_]FeatureType {
10471047 .CodeObjectV3,
10481048 .NoXnackSupport,
10491049 .Ldsbankcount32,
1050 .Wavefrontsize64,
1050 .Movrel,
10511051 .MimgR128,
10521052 .Fp64,
10531053 .TrigReducedRange,
1054 .Wavefrontsize64,
10541055 .NoSramEccSupport,
1055 .Movrel,
10561056 .Localmemorysize32768,
10571057 .SouthernIslands,
1058 },
1058 }),
10591059 };
10601060};
lib/std/target/cpu/ArmCpu.zig+509-509
......@@ -86,154 +86,154 @@ pub const ArmCpu = enum {
8686 Swift,
8787 Xscale,
8888
89 pub fn getInfo(self: @This()) CpuInfo {
89 const FeatureType = feature.ArmFeature;
90
91 pub fn getInfo(self: @This()) CpuInfo(@This(), FeatureType) {
9092 return cpu_infos[@enumToInt(self)];
9193 }
9294
93 pub const FeatureType = feature.ArmFeature;
94
95 const cpu_infos = [@memberCount(@This())]CpuInfo(@This()) {
96 CpuInfo(@This()).create(.Arm1020e, "arm1020e", &[_]FeatureType {
95 pub const cpu_infos = [@memberCount(@This())]CpuInfo(@This(), FeatureType) {
96 CpuInfo(@This(), FeatureType).create(.Arm1020e, "arm1020e", &[_]FeatureType {
9797 .V4t,
9898 .Armv5te,
99 },
100 CpuInfo(@This()).create(.Arm1020t, "arm1020t", &[_]FeatureType {
99 }),
100 CpuInfo(@This(), FeatureType).create(.Arm1020t, "arm1020t", &[_]FeatureType {
101101 .V4t,
102102 .Armv5t,
103 },
104 CpuInfo(@This()).create(.Arm1022e, "arm1022e", &[_]FeatureType {
103 }),
104 CpuInfo(@This(), FeatureType).create(.Arm1022e, "arm1022e", &[_]FeatureType {
105105 .V4t,
106106 .Armv5te,
107 },
108 CpuInfo(@This()).create(.Arm10e, "arm10e", &[_]FeatureType {
107 }),
108 CpuInfo(@This(), FeatureType).create(.Arm10e, "arm10e", &[_]FeatureType {
109109 .V4t,
110110 .Armv5te,
111 },
112 CpuInfo(@This()).create(.Arm10tdmi, "arm10tdmi", &[_]FeatureType {
111 }),
112 CpuInfo(@This(), FeatureType).create(.Arm10tdmi, "arm10tdmi", &[_]FeatureType {
113113 .V4t,
114114 .Armv5t,
115 },
116 CpuInfo(@This()).create(.Arm1136jS, "arm1136j-s", &[_]FeatureType {
115 }),
116 CpuInfo(@This(), FeatureType).create(.Arm1136jS, "arm1136j-s", &[_]FeatureType {
117117 .V4t,
118118 .Dsp,
119119 .Armv6,
120 },
121 CpuInfo(@This()).create(.Arm1136jfS, "arm1136jf-s", &[_]FeatureType {
120 }),
121 CpuInfo(@This(), FeatureType).create(.Arm1136jfS, "arm1136jf-s", &[_]FeatureType {
122122 .V4t,
123123 .Dsp,
124124 .Armv6,
125125 .Slowfpvmlx,
126126 .Fpregs,
127127 .Vfp2,
128 },
129 CpuInfo(@This()).create(.Arm1156t2S, "arm1156t2-s", &[_]FeatureType {
130 .Thumb2,
128 }),
129 CpuInfo(@This(), FeatureType).create(.Arm1156t2S, "arm1156t2-s", &[_]FeatureType {
131130 .V4t,
131 .Thumb2,
132132 .Dsp,
133133 .Armv6t2,
134 },
135 CpuInfo(@This()).create(.Arm1156t2fS, "arm1156t2f-s", &[_]FeatureType {
136 .Thumb2,
134 }),
135 CpuInfo(@This(), FeatureType).create(.Arm1156t2fS, "arm1156t2f-s", &[_]FeatureType {
137136 .V4t,
137 .Thumb2,
138138 .Dsp,
139139 .Armv6t2,
140140 .Slowfpvmlx,
141141 .Fpregs,
142142 .Vfp2,
143 },
144 CpuInfo(@This()).create(.Arm1176jS, "arm1176j-s", &[_]FeatureType {
143 }),
144 CpuInfo(@This(), FeatureType).create(.Arm1176jS, "arm1176j-s", &[_]FeatureType {
145145 .V4t,
146146 .Trustzone,
147147 .Armv6kz,
148 },
149 CpuInfo(@This()).create(.Arm1176jzS, "arm1176jz-s", &[_]FeatureType {
148 }),
149 CpuInfo(@This(), FeatureType).create(.Arm1176jzS, "arm1176jz-s", &[_]FeatureType {
150150 .V4t,
151151 .Trustzone,
152152 .Armv6kz,
153 },
154 CpuInfo(@This()).create(.Arm1176jzfS, "arm1176jzf-s", &[_]FeatureType {
153 }),
154 CpuInfo(@This(), FeatureType).create(.Arm1176jzfS, "arm1176jzf-s", &[_]FeatureType {
155155 .V4t,
156156 .Trustzone,
157157 .Armv6kz,
158158 .Slowfpvmlx,
159159 .Fpregs,
160160 .Vfp2,
161 },
162 CpuInfo(@This()).create(.Arm710t, "arm710t", &[_]FeatureType {
161 }),
162 CpuInfo(@This(), FeatureType).create(.Arm710t, "arm710t", &[_]FeatureType {
163163 .V4t,
164164 .Armv4t,
165 },
166 CpuInfo(@This()).create(.Arm720t, "arm720t", &[_]FeatureType {
165 }),
166 CpuInfo(@This(), FeatureType).create(.Arm720t, "arm720t", &[_]FeatureType {
167167 .V4t,
168168 .Armv4t,
169 },
170 CpuInfo(@This()).create(.Arm7tdmi, "arm7tdmi", &[_]FeatureType {
169 }),
170 CpuInfo(@This(), FeatureType).create(.Arm7tdmi, "arm7tdmi", &[_]FeatureType {
171171 .V4t,
172172 .Armv4t,
173 },
174 CpuInfo(@This()).create(.Arm7tdmiS, "arm7tdmi-s", &[_]FeatureType {
173 }),
174 CpuInfo(@This(), FeatureType).create(.Arm7tdmiS, "arm7tdmi-s", &[_]FeatureType {
175175 .V4t,
176176 .Armv4t,
177 },
178 CpuInfo(@This()).create(.Arm8, "arm8", &[_]FeatureType {
177 }),
178 CpuInfo(@This(), FeatureType).create(.Arm8, "arm8", &[_]FeatureType {
179179 .Armv4,
180 },
181 CpuInfo(@This()).create(.Arm810, "arm810", &[_]FeatureType {
180 }),
181 CpuInfo(@This(), FeatureType).create(.Arm810, "arm810", &[_]FeatureType {
182182 .Armv4,
183 },
184 CpuInfo(@This()).create(.Arm9, "arm9", &[_]FeatureType {
183 }),
184 CpuInfo(@This(), FeatureType).create(.Arm9, "arm9", &[_]FeatureType {
185185 .V4t,
186186 .Armv4t,
187 },
188 CpuInfo(@This()).create(.Arm920, "arm920", &[_]FeatureType {
187 }),
188 CpuInfo(@This(), FeatureType).create(.Arm920, "arm920", &[_]FeatureType {
189189 .V4t,
190190 .Armv4t,
191 },
192 CpuInfo(@This()).create(.Arm920t, "arm920t", &[_]FeatureType {
191 }),
192 CpuInfo(@This(), FeatureType).create(.Arm920t, "arm920t", &[_]FeatureType {
193193 .V4t,
194194 .Armv4t,
195 },
196 CpuInfo(@This()).create(.Arm922t, "arm922t", &[_]FeatureType {
195 }),
196 CpuInfo(@This(), FeatureType).create(.Arm922t, "arm922t", &[_]FeatureType {
197197 .V4t,
198198 .Armv4t,
199 },
200 CpuInfo(@This()).create(.Arm926ejS, "arm926ej-s", &[_]FeatureType {
199 }),
200 CpuInfo(@This(), FeatureType).create(.Arm926ejS, "arm926ej-s", &[_]FeatureType {
201201 .V4t,
202202 .Armv5te,
203 },
204 CpuInfo(@This()).create(.Arm940t, "arm940t", &[_]FeatureType {
203 }),
204 CpuInfo(@This(), FeatureType).create(.Arm940t, "arm940t", &[_]FeatureType {
205205 .V4t,
206206 .Armv4t,
207 },
208 CpuInfo(@This()).create(.Arm946eS, "arm946e-s", &[_]FeatureType {
207 }),
208 CpuInfo(@This(), FeatureType).create(.Arm946eS, "arm946e-s", &[_]FeatureType {
209209 .V4t,
210210 .Armv5te,
211 },
212 CpuInfo(@This()).create(.Arm966eS, "arm966e-s", &[_]FeatureType {
211 }),
212 CpuInfo(@This(), FeatureType).create(.Arm966eS, "arm966e-s", &[_]FeatureType {
213213 .V4t,
214214 .Armv5te,
215 },
216 CpuInfo(@This()).create(.Arm968eS, "arm968e-s", &[_]FeatureType {
215 }),
216 CpuInfo(@This(), FeatureType).create(.Arm968eS, "arm968e-s", &[_]FeatureType {
217217 .V4t,
218218 .Armv5te,
219 },
220 CpuInfo(@This()).create(.Arm9e, "arm9e", &[_]FeatureType {
219 }),
220 CpuInfo(@This(), FeatureType).create(.Arm9e, "arm9e", &[_]FeatureType {
221221 .V4t,
222222 .Armv5te,
223 },
224 CpuInfo(@This()).create(.Arm9tdmi, "arm9tdmi", &[_]FeatureType {
223 }),
224 CpuInfo(@This(), FeatureType).create(.Arm9tdmi, "arm9tdmi", &[_]FeatureType {
225225 .V4t,
226226 .Armv4t,
227 },
228 CpuInfo(@This()).create(.CortexA12, "cortex-a12", &[_]FeatureType {
229 .Thumb2,
227 }),
228 CpuInfo(@This(), FeatureType).create(.CortexA12, "cortex-a12", &[_]FeatureType {
230229 .Perfmon,
231 .Db,
232 .Dsp,
233 .V7clrex,
234230 .V4t,
235 .Fpregs,
236231 .D32,
232 .Fpregs,
233 .V7clrex,
234 .Dsp,
235 .Thumb2,
236 .Db,
237237 .Aclass,
238238 .Armv7A,
239239 .AvoidPartialCpsr,
......@@ -247,16 +247,16 @@ pub const ArmCpu = enum {
247247 .Hwdiv,
248248 .Virtualization,
249249 .A12,
250 },
251 CpuInfo(@This()).create(.CortexA15, "cortex-a15", &[_]FeatureType {
252 .Thumb2,
250 }),
251 CpuInfo(@This(), FeatureType).create(.CortexA15, "cortex-a15", &[_]FeatureType {
253252 .Perfmon,
254 .Db,
255 .Dsp,
256 .V7clrex,
257253 .V4t,
258 .Fpregs,
259254 .D32,
255 .Fpregs,
256 .V7clrex,
257 .Dsp,
258 .Thumb2,
259 .Db,
260260 .Aclass,
261261 .Armv7A,
262262 .AvoidPartialCpsr,
......@@ -273,16 +273,16 @@ pub const ArmCpu = enum {
273273 .Hwdiv,
274274 .Virtualization,
275275 .A15,
276 },
277 CpuInfo(@This()).create(.CortexA17, "cortex-a17", &[_]FeatureType {
278 .Thumb2,
276 }),
277 CpuInfo(@This(), FeatureType).create(.CortexA17, "cortex-a17", &[_]FeatureType {
279278 .Perfmon,
280 .Db,
281 .Dsp,
282 .V7clrex,
283279 .V4t,
284 .Fpregs,
285280 .D32,
281 .Fpregs,
282 .V7clrex,
283 .Dsp,
284 .Thumb2,
285 .Db,
286286 .Aclass,
287287 .Armv7A,
288288 .AvoidPartialCpsr,
......@@ -296,57 +296,57 @@ pub const ArmCpu = enum {
296296 .Hwdiv,
297297 .Virtualization,
298298 .A17,
299 },
300 CpuInfo(@This()).create(.CortexA32, "cortex-a32", &[_]FeatureType {
301 .Thumb2,
302 .Mp,
299 }),
300 CpuInfo(@This(), FeatureType).create(.CortexA32, "cortex-a32", &[_]FeatureType {
301 .HwdivArm,
303302 .Perfmon,
304 .Db,
303 .D32,
304 .Fpregs,
305305 .Crc,
306 .Mp,
306307 .Fp16,
307308 .Dsp,
308 .V7clrex,
309309 .V4t,
310 .Fpregs,
311 .D32,
312 .Hwdiv,
313 .HwdivArm,
310 .V7clrex,
311 .Db,
314312 .Aclass,
315 .Trustzone,
313 .Thumb2,
316314 .AcquireRelease,
315 .Hwdiv,
316 .Trustzone,
317317 .Armv8A,
318318 .Crypto,
319 },
320 CpuInfo(@This()).create(.CortexA35, "cortex-a35", &[_]FeatureType {
321 .Thumb2,
322 .Mp,
319 }),
320 CpuInfo(@This(), FeatureType).create(.CortexA35, "cortex-a35", &[_]FeatureType {
321 .HwdivArm,
323322 .Perfmon,
324 .Db,
323 .D32,
324 .Fpregs,
325325 .Crc,
326 .Mp,
326327 .Fp16,
327328 .Dsp,
328 .V7clrex,
329329 .V4t,
330 .Fpregs,
331 .D32,
332 .Hwdiv,
333 .HwdivArm,
330 .V7clrex,
331 .Db,
334332 .Aclass,
335 .Trustzone,
333 .Thumb2,
336334 .AcquireRelease,
335 .Hwdiv,
336 .Trustzone,
337337 .Armv8A,
338338 .Crypto,
339339 .A35,
340 },
341 CpuInfo(@This()).create(.CortexA5, "cortex-a5", &[_]FeatureType {
342 .Thumb2,
340 }),
341 CpuInfo(@This(), FeatureType).create(.CortexA5, "cortex-a5", &[_]FeatureType {
343342 .Perfmon,
344 .Db,
345 .Dsp,
346 .V7clrex,
347343 .V4t,
348 .Fpregs,
349344 .D32,
345 .Fpregs,
346 .V7clrex,
347 .Dsp,
348 .Thumb2,
349 .Db,
350350 .Aclass,
351351 .Armv7A,
352352 .RetAddrStack,
......@@ -358,84 +358,84 @@ pub const ArmCpu = enum {
358358 .Vfp4,
359359 .VmlxForwarding,
360360 .A5,
361 },
362 CpuInfo(@This()).create(.CortexA53, "cortex-a53", &[_]FeatureType {
363 .Thumb2,
364 .Mp,
361 }),
362 CpuInfo(@This(), FeatureType).create(.CortexA53, "cortex-a53", &[_]FeatureType {
363 .HwdivArm,
365364 .Perfmon,
366 .Db,
365 .D32,
366 .Fpregs,
367367 .Crc,
368 .Mp,
368369 .Fp16,
369370 .Dsp,
370 .V7clrex,
371371 .V4t,
372 .Fpregs,
373 .D32,
374 .Hwdiv,
375 .HwdivArm,
372 .V7clrex,
373 .Db,
376374 .Aclass,
377 .Trustzone,
375 .Thumb2,
378376 .AcquireRelease,
377 .Hwdiv,
378 .Trustzone,
379379 .Armv8A,
380380 .Crypto,
381381 .Fpao,
382382 .A53,
383 },
384 CpuInfo(@This()).create(.CortexA55, "cortex-a55", &[_]FeatureType {
385 .Thumb2,
386 .Mp,
383 }),
384 CpuInfo(@This(), FeatureType).create(.CortexA55, "cortex-a55", &[_]FeatureType {
385 .HwdivArm,
387386 .Perfmon,
388 .Db,
387 .D32,
388 .Fpregs,
389389 .Crc,
390 .Mp,
390391 .Fp16,
391 .Ras,
392392 .Dsp,
393 .V7clrex,
394393 .V4t,
395 .Fpregs,
396 .D32,
397 .Hwdiv,
398 .HwdivArm,
394 .V7clrex,
395 .Db,
399396 .Aclass,
400 .Trustzone,
397 .Thumb2,
398 .Ras,
401399 .AcquireRelease,
400 .Hwdiv,
401 .Trustzone,
402402 .Armv82A,
403403 .Dotprod,
404404 .A55,
405 },
406 CpuInfo(@This()).create(.CortexA57, "cortex-a57", &[_]FeatureType {
407 .Thumb2,
408 .Mp,
405 }),
406 CpuInfo(@This(), FeatureType).create(.CortexA57, "cortex-a57", &[_]FeatureType {
407 .HwdivArm,
409408 .Perfmon,
410 .Db,
409 .D32,
410 .Fpregs,
411411 .Crc,
412 .Mp,
412413 .Fp16,
413414 .Dsp,
414 .V7clrex,
415415 .V4t,
416 .Fpregs,
417 .D32,
418 .Hwdiv,
419 .HwdivArm,
416 .V7clrex,
417 .Db,
420418 .Aclass,
421 .Trustzone,
419 .Thumb2,
422420 .AcquireRelease,
421 .Hwdiv,
422 .Trustzone,
423423 .Armv8A,
424424 .AvoidPartialCpsr,
425425 .CheapPredicableCpsr,
426426 .Crypto,
427427 .Fpao,
428428 .A57,
429 },
430 CpuInfo(@This()).create(.CortexA7, "cortex-a7", &[_]FeatureType {
431 .Thumb2,
429 }),
430 CpuInfo(@This(), FeatureType).create(.CortexA7, "cortex-a7", &[_]FeatureType {
432431 .Perfmon,
433 .Db,
434 .Dsp,
435 .V7clrex,
436432 .V4t,
437 .Fpregs,
438433 .D32,
434 .Fpregs,
435 .V7clrex,
436 .Dsp,
437 .Thumb2,
438 .Db,
439439 .Aclass,
440440 .Armv7A,
441441 .RetAddrStack,
......@@ -451,128 +451,128 @@ pub const ArmCpu = enum {
451451 .Hwdiv,
452452 .Virtualization,
453453 .A7,
454 },
455 CpuInfo(@This()).create(.CortexA72, "cortex-a72", &[_]FeatureType {
456 .Thumb2,
457 .Mp,
454 }),
455 CpuInfo(@This(), FeatureType).create(.CortexA72, "cortex-a72", &[_]FeatureType {
456 .HwdivArm,
458457 .Perfmon,
459 .Db,
458 .D32,
459 .Fpregs,
460460 .Crc,
461 .Mp,
461462 .Fp16,
462463 .Dsp,
463 .V7clrex,
464464 .V4t,
465 .Fpregs,
466 .D32,
467 .Hwdiv,
468 .HwdivArm,
465 .V7clrex,
466 .Db,
469467 .Aclass,
470 .Trustzone,
468 .Thumb2,
471469 .AcquireRelease,
470 .Hwdiv,
471 .Trustzone,
472472 .Armv8A,
473473 .Crypto,
474474 .A72,
475 },
476 CpuInfo(@This()).create(.CortexA73, "cortex-a73", &[_]FeatureType {
477 .Thumb2,
478 .Mp,
475 }),
476 CpuInfo(@This(), FeatureType).create(.CortexA73, "cortex-a73", &[_]FeatureType {
477 .HwdivArm,
479478 .Perfmon,
480 .Db,
479 .D32,
480 .Fpregs,
481481 .Crc,
482 .Mp,
482483 .Fp16,
483484 .Dsp,
484 .V7clrex,
485485 .V4t,
486 .Fpregs,
487 .D32,
488 .Hwdiv,
489 .HwdivArm,
486 .V7clrex,
487 .Db,
490488 .Aclass,
491 .Trustzone,
489 .Thumb2,
492490 .AcquireRelease,
491 .Hwdiv,
492 .Trustzone,
493493 .Armv8A,
494494 .Crypto,
495495 .A73,
496 },
497 CpuInfo(@This()).create(.CortexA75, "cortex-a75", &[_]FeatureType {
498 .Thumb2,
499 .Mp,
496 }),
497 CpuInfo(@This(), FeatureType).create(.CortexA75, "cortex-a75", &[_]FeatureType {
498 .HwdivArm,
500499 .Perfmon,
501 .Db,
500 .D32,
501 .Fpregs,
502502 .Crc,
503 .Mp,
503504 .Fp16,
504 .Ras,
505505 .Dsp,
506 .V7clrex,
507506 .V4t,
508 .Fpregs,
509 .D32,
510 .Hwdiv,
511 .HwdivArm,
507 .V7clrex,
508 .Db,
512509 .Aclass,
513 .Trustzone,
510 .Thumb2,
511 .Ras,
514512 .AcquireRelease,
513 .Hwdiv,
514 .Trustzone,
515515 .Armv82A,
516516 .Dotprod,
517517 .A75,
518 },
519 CpuInfo(@This()).create(.CortexA76, "cortex-a76", &[_]FeatureType {
520 .Thumb2,
521 .Mp,
518 }),
519 CpuInfo(@This(), FeatureType).create(.CortexA76, "cortex-a76", &[_]FeatureType {
520 .HwdivArm,
522521 .Perfmon,
523 .Db,
522 .D32,
523 .Fpregs,
524524 .Crc,
525 .Mp,
525526 .Fp16,
526 .Ras,
527527 .Dsp,
528 .V7clrex,
529528 .V4t,
530 .Fpregs,
531 .D32,
532 .Hwdiv,
533 .HwdivArm,
529 .V7clrex,
530 .Db,
534531 .Aclass,
535 .Trustzone,
532 .Thumb2,
533 .Ras,
536534 .AcquireRelease,
535 .Hwdiv,
536 .Trustzone,
537537 .Armv82A,
538538 .Crypto,
539539 .Dotprod,
540540 .Fullfp16,
541541 .A76,
542 },
543 CpuInfo(@This()).create(.CortexA76ae, "cortex-a76ae", &[_]FeatureType {
544 .Thumb2,
545 .Mp,
542 }),
543 CpuInfo(@This(), FeatureType).create(.CortexA76ae, "cortex-a76ae", &[_]FeatureType {
544 .HwdivArm,
546545 .Perfmon,
547 .Db,
546 .D32,
547 .Fpregs,
548548 .Crc,
549 .Mp,
549550 .Fp16,
550 .Ras,
551551 .Dsp,
552 .V7clrex,
553552 .V4t,
554 .Fpregs,
555 .D32,
556 .Hwdiv,
557 .HwdivArm,
553 .V7clrex,
554 .Db,
558555 .Aclass,
559 .Trustzone,
556 .Thumb2,
557 .Ras,
560558 .AcquireRelease,
559 .Hwdiv,
560 .Trustzone,
561561 .Armv82A,
562562 .Crypto,
563563 .Dotprod,
564564 .Fullfp16,
565565 .A76,
566 },
567 CpuInfo(@This()).create(.CortexA8, "cortex-a8", &[_]FeatureType {
568 .Thumb2,
566 }),
567 CpuInfo(@This(), FeatureType).create(.CortexA8, "cortex-a8", &[_]FeatureType {
569568 .Perfmon,
570 .Db,
571 .Dsp,
572 .V7clrex,
573569 .V4t,
574 .Fpregs,
575570 .D32,
571 .Fpregs,
572 .V7clrex,
573 .Dsp,
574 .Thumb2,
575 .Db,
576576 .Aclass,
577577 .Armv7A,
578578 .RetAddrStack,
......@@ -583,16 +583,16 @@ pub const ArmCpu = enum {
583583 .Trustzone,
584584 .VmlxForwarding,
585585 .A8,
586 },
587 CpuInfo(@This()).create(.CortexA9, "cortex-a9", &[_]FeatureType {
588 .Thumb2,
586 }),
587 CpuInfo(@This(), FeatureType).create(.CortexA9, "cortex-a9", &[_]FeatureType {
589588 .Perfmon,
590 .Db,
591 .Dsp,
592 .V7clrex,
593589 .V4t,
594 .Fpregs,
595590 .D32,
591 .Fpregs,
592 .V7clrex,
593 .Dsp,
594 .Thumb2,
595 .Db,
596596 .Aclass,
597597 .Armv7A,
598598 .AvoidPartialCpsr,
......@@ -608,171 +608,171 @@ pub const ArmCpu = enum {
608608 .Trustzone,
609609 .VmlxForwarding,
610610 .A9,
611 },
612 CpuInfo(@This()).create(.CortexM0, "cortex-m0", &[_]FeatureType {
613 .Mclass,
614 .StrictAlign,
611 }),
612 CpuInfo(@This(), FeatureType).create(.CortexM0, "cortex-m0", &[_]FeatureType {
613 .V4t,
615614 .ThumbMode,
616615 .Db,
617 .V4t,
616 .StrictAlign,
617 .Mclass,
618618 .Noarm,
619619 .Armv6M,
620 },
621 CpuInfo(@This()).create(.CortexM0plus, "cortex-m0plus", &[_]FeatureType {
622 .Mclass,
623 .StrictAlign,
620 }),
621 CpuInfo(@This(), FeatureType).create(.CortexM0plus, "cortex-m0plus", &[_]FeatureType {
622 .V4t,
624623 .ThumbMode,
625624 .Db,
626 .V4t,
625 .StrictAlign,
626 .Mclass,
627627 .Noarm,
628628 .Armv6M,
629 },
630 CpuInfo(@This()).create(.CortexM1, "cortex-m1", &[_]FeatureType {
631 .Mclass,
632 .StrictAlign,
629 }),
630 CpuInfo(@This(), FeatureType).create(.CortexM1, "cortex-m1", &[_]FeatureType {
631 .V4t,
633632 .ThumbMode,
634633 .Db,
635 .V4t,
634 .StrictAlign,
635 .Mclass,
636636 .Noarm,
637637 .Armv6M,
638 },
639 CpuInfo(@This()).create(.CortexM23, "cortex-m23", &[_]FeatureType {
640 .Mclass,
641 .StrictAlign,
638 }),
639 CpuInfo(@This(), FeatureType).create(.CortexM23, "cortex-m23", &[_]FeatureType {
640 .V4t,
642641 .ThumbMode,
643 .Db,
644642 .Msecext8,
645643 .V7clrex,
646 .V4t,
647 .Hwdiv,
644 .Db,
645 .StrictAlign,
646 .Mclass,
648647 .Noarm,
649648 .AcquireRelease,
649 .Hwdiv,
650650 .Armv8Mbase,
651651 .NoMovt,
652 },
653 CpuInfo(@This()).create(.CortexM3, "cortex-m3", &[_]FeatureType {
654 .Thumb2,
655 .Mclass,
652 }),
653 CpuInfo(@This(), FeatureType).create(.CortexM3, "cortex-m3", &[_]FeatureType {
656654 .Perfmon,
655 .V4t,
657656 .ThumbMode,
658 .Db,
659657 .V7clrex,
660 .V4t,
661 .Hwdiv,
658 .Thumb2,
659 .Db,
660 .Mclass,
662661 .Noarm,
662 .Hwdiv,
663663 .Armv7M,
664664 .NoBranchPredictor,
665665 .LoopAlign,
666666 .UseAa,
667667 .UseMisched,
668668 .M3,
669 },
670 CpuInfo(@This()).create(.CortexM33, "cortex-m33", &[_]FeatureType {
671 .Thumb2,
672 .Mclass,
669 }),
670 CpuInfo(@This(), FeatureType).create(.CortexM33, "cortex-m33", &[_]FeatureType {
673671 .Perfmon,
672 .V4t,
674673 .ThumbMode,
675 .Db,
676674 .Msecext8,
677675 .V7clrex,
678 .V4t,
679 .Hwdiv,
676 .Thumb2,
677 .Db,
678 .Mclass,
680679 .Noarm,
681680 .AcquireRelease,
681 .Hwdiv,
682682 .Armv8Mmain,
683683 .Dsp,
684 .Fp16,
685684 .Fpregs,
685 .Fp16,
686686 .FpArmv8d16sp,
687687 .NoBranchPredictor,
688688 .Slowfpvmlx,
689689 .LoopAlign,
690690 .UseAa,
691691 .UseMisched,
692 },
693 CpuInfo(@This()).create(.CortexM35p, "cortex-m35p", &[_]FeatureType {
694 .Thumb2,
695 .Mclass,
692 }),
693 CpuInfo(@This(), FeatureType).create(.CortexM35p, "cortex-m35p", &[_]FeatureType {
696694 .Perfmon,
695 .V4t,
697696 .ThumbMode,
698 .Db,
699697 .Msecext8,
700698 .V7clrex,
701 .V4t,
702 .Hwdiv,
699 .Thumb2,
700 .Db,
701 .Mclass,
703702 .Noarm,
704703 .AcquireRelease,
704 .Hwdiv,
705705 .Armv8Mmain,
706706 .Dsp,
707 .Fp16,
708707 .Fpregs,
708 .Fp16,
709709 .FpArmv8d16sp,
710710 .NoBranchPredictor,
711711 .Slowfpvmlx,
712712 .LoopAlign,
713713 .UseAa,
714714 .UseMisched,
715 },
716 CpuInfo(@This()).create(.CortexM4, "cortex-m4", &[_]FeatureType {
717 .Thumb2,
718 .Mclass,
715 }),
716 CpuInfo(@This(), FeatureType).create(.CortexM4, "cortex-m4", &[_]FeatureType {
719717 .Perfmon,
718 .V4t,
720719 .ThumbMode,
721 .Db,
722 .Dsp,
723720 .V7clrex,
724 .V4t,
725 .Hwdiv,
721 .Dsp,
722 .Thumb2,
723 .Db,
724 .Mclass,
726725 .Noarm,
726 .Hwdiv,
727727 .Armv7eM,
728728 .NoBranchPredictor,
729729 .Slowfpvmlx,
730730 .LoopAlign,
731731 .UseAa,
732732 .UseMisched,
733 .Fp16,
734733 .Fpregs,
734 .Fp16,
735735 .Vfp4d16sp,
736 },
737 CpuInfo(@This()).create(.CortexM7, "cortex-m7", &[_]FeatureType {
738 .Thumb2,
739 .Mclass,
736 }),
737 CpuInfo(@This(), FeatureType).create(.CortexM7, "cortex-m7", &[_]FeatureType {
740738 .Perfmon,
739 .V4t,
741740 .ThumbMode,
742 .Db,
743 .Dsp,
744741 .V7clrex,
745 .V4t,
746 .Hwdiv,
742 .Dsp,
743 .Thumb2,
744 .Db,
745 .Mclass,
747746 .Noarm,
747 .Hwdiv,
748748 .Armv7eM,
749 .Fp16,
750749 .Fpregs,
750 .Fp16,
751751 .FpArmv8d16,
752 },
753 CpuInfo(@This()).create(.CortexR4, "cortex-r4", &[_]FeatureType {
754 .Thumb2,
752 }),
753 CpuInfo(@This(), FeatureType).create(.CortexR4, "cortex-r4", &[_]FeatureType {
755754 .Perfmon,
756 .Db,
757 .Dsp,
758 .Rclass,
759 .V7clrex,
760755 .V4t,
756 .V7clrex,
757 .Dsp,
758 .Thumb2,
759 .Db,
761760 .Hwdiv,
761 .Rclass,
762762 .Armv7R,
763763 .AvoidPartialCpsr,
764764 .RetAddrStack,
765765 .R4,
766 },
767 CpuInfo(@This()).create(.CortexR4f, "cortex-r4f", &[_]FeatureType {
768 .Thumb2,
766 }),
767 CpuInfo(@This(), FeatureType).create(.CortexR4f, "cortex-r4f", &[_]FeatureType {
769768 .Perfmon,
770 .Db,
771 .Dsp,
772 .Rclass,
773 .V7clrex,
774769 .V4t,
770 .V7clrex,
771 .Dsp,
772 .Thumb2,
773 .Db,
775774 .Hwdiv,
775 .Rclass,
776776 .Armv7R,
777777 .AvoidPartialCpsr,
778778 .RetAddrStack,
......@@ -781,16 +781,16 @@ pub const ArmCpu = enum {
781781 .Fpregs,
782782 .Vfp3d16,
783783 .R4,
784 },
785 CpuInfo(@This()).create(.CortexR5, "cortex-r5", &[_]FeatureType {
786 .Thumb2,
784 }),
785 CpuInfo(@This(), FeatureType).create(.CortexR5, "cortex-r5", &[_]FeatureType {
787786 .Perfmon,
788 .Db,
789 .Dsp,
790 .Rclass,
791 .V7clrex,
792787 .V4t,
788 .V7clrex,
789 .Dsp,
790 .Thumb2,
791 .Db,
793792 .Hwdiv,
793 .Rclass,
794794 .Armv7R,
795795 .AvoidPartialCpsr,
796796 .HwdivArm,
......@@ -800,39 +800,39 @@ pub const ArmCpu = enum {
800800 .Fpregs,
801801 .Vfp3d16,
802802 .R5,
803 },
804 CpuInfo(@This()).create(.CortexR52, "cortex-r52", &[_]FeatureType {
805 .Thumb2,
806 .Mp,
803 }),
804 CpuInfo(@This(), FeatureType).create(.CortexR52, "cortex-r52", &[_]FeatureType {
805 .HwdivArm,
807806 .Perfmon,
808 .Db,
807 .D32,
809808 .Crc,
810 .Fp16,
809 .Fpregs,
810 .Mp,
811811 .Dfb,
812812 .Dsp,
813 .Rclass,
814 .V7clrex,
813 .Fp16,
815814 .V4t,
816 .Fpregs,
817 .D32,
818 .Hwdiv,
819 .HwdivArm,
815 .Db,
816 .V7clrex,
817 .Thumb2,
820818 .AcquireRelease,
819 .Hwdiv,
820 .Rclass,
821821 .Armv8R,
822822 .Fpao,
823823 .UseAa,
824824 .UseMisched,
825825 .R52,
826 },
827 CpuInfo(@This()).create(.CortexR7, "cortex-r7", &[_]FeatureType {
828 .Thumb2,
826 }),
827 CpuInfo(@This(), FeatureType).create(.CortexR7, "cortex-r7", &[_]FeatureType {
829828 .Perfmon,
830 .Db,
831 .Dsp,
832 .Rclass,
833 .V7clrex,
834829 .V4t,
830 .V7clrex,
831 .Dsp,
832 .Thumb2,
833 .Db,
835834 .Hwdiv,
835 .Rclass,
836836 .Armv7R,
837837 .AvoidPartialCpsr,
838838 .Fp16,
......@@ -844,16 +844,16 @@ pub const ArmCpu = enum {
844844 .Fpregs,
845845 .Vfp3d16,
846846 .R7,
847 },
848 CpuInfo(@This()).create(.CortexR8, "cortex-r8", &[_]FeatureType {
849 .Thumb2,
847 }),
848 CpuInfo(@This(), FeatureType).create(.CortexR8, "cortex-r8", &[_]FeatureType {
850849 .Perfmon,
851 .Db,
852 .Dsp,
853 .Rclass,
854 .V7clrex,
855850 .V4t,
851 .V7clrex,
852 .Dsp,
853 .Thumb2,
854 .Db,
856855 .Hwdiv,
856 .Rclass,
857857 .Armv7R,
858858 .AvoidPartialCpsr,
859859 .Fp16,
......@@ -864,24 +864,24 @@ pub const ArmCpu = enum {
864864 .SlowFpBrcc,
865865 .Fpregs,
866866 .Vfp3d16,
867 },
868 CpuInfo(@This()).create(.Cyclone, "cyclone", &[_]FeatureType {
869 .Thumb2,
870 .Mp,
867 }),
868 CpuInfo(@This(), FeatureType).create(.Cyclone, "cyclone", &[_]FeatureType {
869 .HwdivArm,
871870 .Perfmon,
872 .Db,
871 .D32,
872 .Fpregs,
873873 .Crc,
874 .Mp,
874875 .Fp16,
875876 .Dsp,
876 .V7clrex,
877877 .V4t,
878 .Fpregs,
879 .D32,
880 .Hwdiv,
881 .HwdivArm,
878 .V7clrex,
879 .Db,
882880 .Aclass,
883 .Trustzone,
881 .Thumb2,
884882 .AcquireRelease,
883 .Hwdiv,
884 .Trustzone,
885885 .Armv8A,
886886 .AvoidMovsShop,
887887 .AvoidPartialCpsr,
......@@ -894,197 +894,197 @@ pub const ArmCpu = enum {
894894 .Vfp4,
895895 .Zcz,
896896 .Swift,
897 },
898 CpuInfo(@This()).create(.Ep9312, "ep9312", &[_]FeatureType {
897 }),
898 CpuInfo(@This(), FeatureType).create(.Ep9312, "ep9312", &[_]FeatureType {
899899 .V4t,
900900 .Armv4t,
901 },
902 CpuInfo(@This()).create(.ExynosM1, "exynos-m1", &[_]FeatureType {
903 .Thumb2,
904 .Mp,
901 }),
902 CpuInfo(@This(), FeatureType).create(.ExynosM1, "exynos-m1", &[_]FeatureType {
903 .HwdivArm,
905904 .Perfmon,
906 .Db,
905 .D32,
906 .Fpregs,
907907 .Crc,
908 .Mp,
908909 .Fp16,
909910 .Dsp,
910 .V7clrex,
911911 .V4t,
912 .Fpregs,
913 .D32,
914 .Hwdiv,
915 .HwdivArm,
912 .V7clrex,
913 .Db,
916914 .Aclass,
917 .Trustzone,
915 .Thumb2,
918916 .AcquireRelease,
917 .Hwdiv,
918 .Trustzone,
919919 .Armv8A,
920 .Zcz,
921 .SlowVdup32,
920 .RetAddrStack,
922921 .SlowVgetlni32,
923 .DontWidenVmovs,
924 .FuseAes,
925922 .WideStrideVfp,
923 .SlowVdup32,
924 .SlowFpBrcc,
926925 .ProfUnpr,
926 .DontWidenVmovs,
927 .Zcz,
928 .FuseAes,
927929 .Slowfpvmlx,
928 .SlowFpBrcc,
930 .UseAa,
929931 .FuseLiterals,
930932 .ExpandFpMlx,
931 .RetAddrStack,
932 .UseAa,
933933 .Exynos,
934 },
935 CpuInfo(@This()).create(.ExynosM2, "exynos-m2", &[_]FeatureType {
936 .Thumb2,
937 .Mp,
934 }),
935 CpuInfo(@This(), FeatureType).create(.ExynosM2, "exynos-m2", &[_]FeatureType {
936 .HwdivArm,
938937 .Perfmon,
939 .Db,
938 .D32,
939 .Fpregs,
940940 .Crc,
941 .Mp,
941942 .Fp16,
942943 .Dsp,
943 .V7clrex,
944944 .V4t,
945 .Fpregs,
946 .D32,
947 .Hwdiv,
948 .HwdivArm,
945 .V7clrex,
946 .Db,
949947 .Aclass,
950 .Trustzone,
948 .Thumb2,
951949 .AcquireRelease,
950 .Hwdiv,
951 .Trustzone,
952952 .Armv8A,
953 .Zcz,
954 .SlowVdup32,
953 .RetAddrStack,
955954 .SlowVgetlni32,
956 .DontWidenVmovs,
957 .FuseAes,
958955 .WideStrideVfp,
956 .SlowVdup32,
957 .SlowFpBrcc,
959958 .ProfUnpr,
959 .DontWidenVmovs,
960 .Zcz,
961 .FuseAes,
960962 .Slowfpvmlx,
961 .SlowFpBrcc,
963 .UseAa,
962964 .FuseLiterals,
963965 .ExpandFpMlx,
964 .RetAddrStack,
965 .UseAa,
966966 .Exynos,
967 },
968 CpuInfo(@This()).create(.ExynosM3, "exynos-m3", &[_]FeatureType {
969 .Thumb2,
970 .Mp,
967 }),
968 CpuInfo(@This(), FeatureType).create(.ExynosM3, "exynos-m3", &[_]FeatureType {
969 .HwdivArm,
971970 .Perfmon,
972 .Db,
971 .D32,
972 .Fpregs,
973973 .Crc,
974 .Mp,
974975 .Fp16,
975976 .Dsp,
976 .V7clrex,
977977 .V4t,
978 .Fpregs,
979 .D32,
980 .Hwdiv,
981 .HwdivArm,
978 .V7clrex,
979 .Db,
982980 .Aclass,
983 .Trustzone,
981 .Thumb2,
984982 .AcquireRelease,
983 .Hwdiv,
984 .Trustzone,
985985 .Armv8A,
986 .Zcz,
987 .SlowVdup32,
986 .RetAddrStack,
988987 .SlowVgetlni32,
989 .DontWidenVmovs,
990 .FuseAes,
991988 .WideStrideVfp,
989 .SlowVdup32,
990 .SlowFpBrcc,
992991 .ProfUnpr,
992 .DontWidenVmovs,
993 .Zcz,
994 .FuseAes,
993995 .Slowfpvmlx,
994 .SlowFpBrcc,
996 .UseAa,
995997 .FuseLiterals,
996998 .ExpandFpMlx,
997 .RetAddrStack,
998 .UseAa,
999999 .Exynos,
1000 },
1001 CpuInfo(@This()).create(.ExynosM4, "exynos-m4", &[_]FeatureType {
1002 .Thumb2,
1003 .Mp,
1000 }),
1001 CpuInfo(@This(), FeatureType).create(.ExynosM4, "exynos-m4", &[_]FeatureType {
1002 .HwdivArm,
10041003 .Perfmon,
1005 .Db,
1004 .D32,
1005 .Fpregs,
10061006 .Crc,
1007 .Mp,
10071008 .Fp16,
1008 .Ras,
10091009 .Dsp,
1010 .V7clrex,
10111010 .V4t,
1012 .Fpregs,
1013 .D32,
1014 .Hwdiv,
1015 .HwdivArm,
1011 .V7clrex,
1012 .Db,
10161013 .Aclass,
1017 .Trustzone,
1014 .Thumb2,
1015 .Ras,
10181016 .AcquireRelease,
1017 .Hwdiv,
1018 .Trustzone,
10191019 .Armv82A,
10201020 .Dotprod,
10211021 .Fullfp16,
1022 .Zcz,
1023 .SlowVdup32,
1022 .RetAddrStack,
10241023 .SlowVgetlni32,
1025 .DontWidenVmovs,
1026 .FuseAes,
10271024 .WideStrideVfp,
1025 .SlowVdup32,
1026 .SlowFpBrcc,
10281027 .ProfUnpr,
1028 .DontWidenVmovs,
1029 .Zcz,
1030 .FuseAes,
10291031 .Slowfpvmlx,
1030 .SlowFpBrcc,
1032 .UseAa,
10311033 .FuseLiterals,
10321034 .ExpandFpMlx,
1033 .RetAddrStack,
1034 .UseAa,
10351035 .Exynos,
1036 },
1037 CpuInfo(@This()).create(.ExynosM5, "exynos-m5", &[_]FeatureType {
1038 .Thumb2,
1039 .Mp,
1036 }),
1037 CpuInfo(@This(), FeatureType).create(.ExynosM5, "exynos-m5", &[_]FeatureType {
1038 .HwdivArm,
10401039 .Perfmon,
1041 .Db,
1040 .D32,
1041 .Fpregs,
10421042 .Crc,
1043 .Mp,
10431044 .Fp16,
1044 .Ras,
10451045 .Dsp,
1046 .V7clrex,
10471046 .V4t,
1048 .Fpregs,
1049 .D32,
1050 .Hwdiv,
1051 .HwdivArm,
1047 .V7clrex,
1048 .Db,
10521049 .Aclass,
1053 .Trustzone,
1050 .Thumb2,
1051 .Ras,
10541052 .AcquireRelease,
1053 .Hwdiv,
1054 .Trustzone,
10551055 .Armv82A,
10561056 .Dotprod,
10571057 .Fullfp16,
1058 .Zcz,
1059 .SlowVdup32,
1058 .RetAddrStack,
10601059 .SlowVgetlni32,
1061 .DontWidenVmovs,
1062 .FuseAes,
10631060 .WideStrideVfp,
1061 .SlowVdup32,
1062 .SlowFpBrcc,
10641063 .ProfUnpr,
1064 .DontWidenVmovs,
1065 .Zcz,
1066 .FuseAes,
10651067 .Slowfpvmlx,
1066 .SlowFpBrcc,
1068 .UseAa,
10671069 .FuseLiterals,
10681070 .ExpandFpMlx,
1069 .RetAddrStack,
1070 .UseAa,
10711071 .Exynos,
1072 },
1073 CpuInfo(@This()).create(.Generic, "generic", &[_]FeatureType {
1074 },
1075 CpuInfo(@This()).create(.Iwmmxt, "iwmmxt", &[_]FeatureType {
1072 }),
1073 CpuInfo(@This(), FeatureType).create(.Generic, "generic", &[_]FeatureType {
1074 }),
1075 CpuInfo(@This(), FeatureType).create(.Iwmmxt, "iwmmxt", &[_]FeatureType {
10761076 .V4t,
10771077 .Armv5te,
1078 },
1079 CpuInfo(@This()).create(.Krait, "krait", &[_]FeatureType {
1080 .Thumb2,
1078 }),
1079 CpuInfo(@This(), FeatureType).create(.Krait, "krait", &[_]FeatureType {
10811080 .Perfmon,
1082 .Db,
1083 .Dsp,
1084 .V7clrex,
10851081 .V4t,
1086 .Fpregs,
10871082 .D32,
1083 .Fpregs,
1084 .V7clrex,
1085 .Dsp,
1086 .Thumb2,
1087 .Db,
10881088 .Aclass,
10891089 .Armv7A,
10901090 .AvoidPartialCpsr,
......@@ -1097,107 +1097,107 @@ pub const ArmCpu = enum {
10971097 .Vfp4,
10981098 .VmlxForwarding,
10991099 .Krait,
1100 },
1101 CpuInfo(@This()).create(.Kryo, "kryo", &[_]FeatureType {
1102 .Thumb2,
1103 .Mp,
1100 }),
1101 CpuInfo(@This(), FeatureType).create(.Kryo, "kryo", &[_]FeatureType {
1102 .HwdivArm,
11041103 .Perfmon,
1105 .Db,
1104 .D32,
1105 .Fpregs,
11061106 .Crc,
1107 .Mp,
11071108 .Fp16,
11081109 .Dsp,
1109 .V7clrex,
11101110 .V4t,
1111 .Fpregs,
1112 .D32,
1113 .Hwdiv,
1114 .HwdivArm,
1111 .V7clrex,
1112 .Db,
11151113 .Aclass,
1116 .Trustzone,
1114 .Thumb2,
11171115 .AcquireRelease,
1116 .Hwdiv,
1117 .Trustzone,
11181118 .Armv8A,
11191119 .Crypto,
11201120 .Kryo,
1121 },
1122 CpuInfo(@This()).create(.Mpcore, "mpcore", &[_]FeatureType {
1121 }),
1122 CpuInfo(@This(), FeatureType).create(.Mpcore, "mpcore", &[_]FeatureType {
11231123 .V4t,
11241124 .Armv6k,
11251125 .Slowfpvmlx,
11261126 .Fpregs,
11271127 .Vfp2,
1128 },
1129 CpuInfo(@This()).create(.Mpcorenovfp, "mpcorenovfp", &[_]FeatureType {
1128 }),
1129 CpuInfo(@This(), FeatureType).create(.Mpcorenovfp, "mpcorenovfp", &[_]FeatureType {
11301130 .V4t,
11311131 .Armv6k,
1132 },
1133 CpuInfo(@This()).create(.NeoverseN1, "neoverse-n1", &[_]FeatureType {
1134 .Thumb2,
1135 .Mp,
1132 }),
1133 CpuInfo(@This(), FeatureType).create(.NeoverseN1, "neoverse-n1", &[_]FeatureType {
1134 .HwdivArm,
11361135 .Perfmon,
1137 .Db,
1136 .D32,
1137 .Fpregs,
11381138 .Crc,
1139 .Mp,
11391140 .Fp16,
1140 .Ras,
11411141 .Dsp,
1142 .V7clrex,
11431142 .V4t,
1144 .Fpregs,
1145 .D32,
1146 .Hwdiv,
1147 .HwdivArm,
1143 .V7clrex,
1144 .Db,
11481145 .Aclass,
1149 .Trustzone,
1146 .Thumb2,
1147 .Ras,
11501148 .AcquireRelease,
1149 .Hwdiv,
1150 .Trustzone,
11511151 .Armv82A,
11521152 .Crypto,
11531153 .Dotprod,
1154 },
1155 CpuInfo(@This()).create(.Sc000, "sc000", &[_]FeatureType {
1156 .Mclass,
1157 .StrictAlign,
1154 }),
1155 CpuInfo(@This(), FeatureType).create(.Sc000, "sc000", &[_]FeatureType {
1156 .V4t,
11581157 .ThumbMode,
11591158 .Db,
1160 .V4t,
1159 .StrictAlign,
1160 .Mclass,
11611161 .Noarm,
11621162 .Armv6M,
1163 },
1164 CpuInfo(@This()).create(.Sc300, "sc300", &[_]FeatureType {
1165 .Thumb2,
1166 .Mclass,
1163 }),
1164 CpuInfo(@This(), FeatureType).create(.Sc300, "sc300", &[_]FeatureType {
11671165 .Perfmon,
1166 .V4t,
11681167 .ThumbMode,
1169 .Db,
11701168 .V7clrex,
1171 .V4t,
1172 .Hwdiv,
1169 .Thumb2,
1170 .Db,
1171 .Mclass,
11731172 .Noarm,
1173 .Hwdiv,
11741174 .Armv7M,
11751175 .NoBranchPredictor,
11761176 .UseAa,
11771177 .UseMisched,
11781178 .M3,
1179 },
1180 CpuInfo(@This()).create(.Strongarm, "strongarm", &[_]FeatureType {
1179 }),
1180 CpuInfo(@This(), FeatureType).create(.Strongarm, "strongarm", &[_]FeatureType {
11811181 .Armv4,
1182 },
1183 CpuInfo(@This()).create(.Strongarm110, "strongarm110", &[_]FeatureType {
1182 }),
1183 CpuInfo(@This(), FeatureType).create(.Strongarm110, "strongarm110", &[_]FeatureType {
11841184 .Armv4,
1185 },
1186 CpuInfo(@This()).create(.Strongarm1100, "strongarm1100", &[_]FeatureType {
1185 }),
1186 CpuInfo(@This(), FeatureType).create(.Strongarm1100, "strongarm1100", &[_]FeatureType {
11871187 .Armv4,
1188 },
1189 CpuInfo(@This()).create(.Strongarm1110, "strongarm1110", &[_]FeatureType {
1188 }),
1189 CpuInfo(@This(), FeatureType).create(.Strongarm1110, "strongarm1110", &[_]FeatureType {
11901190 .Armv4,
1191 },
1192 CpuInfo(@This()).create(.Swift, "swift", &[_]FeatureType {
1193 .Thumb2,
1191 }),
1192 CpuInfo(@This(), FeatureType).create(.Swift, "swift", &[_]FeatureType {
11941193 .Perfmon,
1195 .Db,
1196 .Dsp,
1197 .V7clrex,
11981194 .V4t,
1199 .Fpregs,
12001195 .D32,
1196 .Fpregs,
1197 .V7clrex,
1198 .Dsp,
1199 .Thumb2,
1200 .Db,
12011201 .Aclass,
12021202 .Armv7A,
12031203 .AvoidMovsShop,
......@@ -1221,10 +1221,10 @@ pub const ArmCpu = enum {
12211221 .Fp16,
12221222 .Vfp4,
12231223 .Swift,
1224 },
1225 CpuInfo(@This()).create(.Xscale, "xscale", &[_]FeatureType {
1224 }),
1225 CpuInfo(@This(), FeatureType).create(.Xscale, "xscale", &[_]FeatureType {
12261226 .V4t,
12271227 .Armv5te,
1228 },
1228 }),
12291229 };
12301230};
lib/std/target/cpu/AvrCpu.zig+2159-2159
......@@ -260,3604 +260,3604 @@ pub const AvrCpu = enum {
260260 Avrxmega7,
261261 M3000,
262262
263 pub fn getInfo(self: @This()) CpuInfo {
263 const FeatureType = feature.AvrFeature;
264
265 pub fn getInfo(self: @This()) CpuInfo(@This(), FeatureType) {
264266 return cpu_infos[@enumToInt(self)];
265267 }
266268
267 pub const FeatureType = feature.AvrFeature;
268
269 const cpu_infos = [@memberCount(@This())]CpuInfo(@This()) {
270 CpuInfo(@This()).create(.At43usb320, "at43usb320", &[_]FeatureType {
271 .Ijmpcall,
272 .Sram,
269 pub const cpu_infos = [@memberCount(@This())]CpuInfo(@This(), FeatureType) {
270 CpuInfo(@This(), FeatureType).create(.At43usb320, "at43usb320", &[_]FeatureType {
271 .Lpm,
273272 .Elpm,
274273 .Avr0,
274 .Sram,
275275 .Jmpcall,
276276 .Addsubiw,
277 .Lpm,
278 .Avr31,
279 },
280 CpuInfo(@This()).create(.At43usb355, "at43usb355", &[_]FeatureType {
281277 .Ijmpcall,
282 .Sram,
278 .Avr31,
279 }),
280 CpuInfo(@This(), FeatureType).create(.At43usb355, "at43usb355", &[_]FeatureType {
281 .Lpm,
283282 .Avr0,
283 .Sram,
284284 .Jmpcall,
285285 .Addsubiw,
286 .Lpm,
287 .Avr3,
288 },
289 CpuInfo(@This()).create(.At76c711, "at76c711", &[_]FeatureType {
290286 .Ijmpcall,
291 .Sram,
287 .Avr3,
288 }),
289 CpuInfo(@This(), FeatureType).create(.At76c711, "at76c711", &[_]FeatureType {
290 .Lpm,
292291 .Avr0,
292 .Sram,
293293 .Jmpcall,
294294 .Addsubiw,
295 .Lpm,
296 .Avr3,
297 },
298 CpuInfo(@This()).create(.At86rf401, "at86rf401", &[_]FeatureType {
299295 .Ijmpcall,
300 .Sram,
296 .Avr3,
297 }),
298 CpuInfo(@This(), FeatureType).create(.At86rf401, "at86rf401", &[_]FeatureType {
299 .Lpm,
301300 .Avr0,
301 .Sram,
302302 .Addsubiw,
303 .Lpm,
303 .Ijmpcall,
304304 .Avr2,
305305 .Lpmx,
306306 .Movw,
307 },
308 CpuInfo(@This()).create(.At90c8534, "at90c8534", &[_]FeatureType {
309 .Ijmpcall,
310 .Sram,
307 }),
308 CpuInfo(@This(), FeatureType).create(.At90c8534, "at90c8534", &[_]FeatureType {
309 .Lpm,
311310 .Avr0,
311 .Sram,
312312 .Addsubiw,
313 .Lpm,
314 .Avr2,
315 },
316 CpuInfo(@This()).create(.At90can128, "at90can128", &[_]FeatureType {
317313 .Ijmpcall,
318 .Elpmx,
314 .Avr2,
315 }),
316 CpuInfo(@This(), FeatureType).create(.At90can128, "at90can128", &[_]FeatureType {
317 .Lpm,
318 .Elpm,
319319 .Movw,
320 .Mul,
321 .Sram,
322 .Break,
320 .Elpmx,
323321 .Spm,
324 .Elpm,
325 .Lpmx,
326322 .Avr0,
323 .Sram,
327324 .Jmpcall,
328325 .Addsubiw,
329 .Lpm,
330 .Avr51,
331 },
332 CpuInfo(@This()).create(.At90can32, "at90can32", &[_]FeatureType {
333 .Ijmpcall,
334 .Movw,
335326 .Mul,
336 .Sram,
327 .Lpmx,
328 .Ijmpcall,
337329 .Break,
330 .Avr51,
331 }),
332 CpuInfo(@This(), FeatureType).create(.At90can32, "at90can32", &[_]FeatureType {
333 .Lpm,
334 .Movw,
338335 .Spm,
339 .Lpmx,
340336 .Avr0,
337 .Sram,
341338 .Jmpcall,
342339 .Addsubiw,
343 .Lpm,
344 .Avr5,
345 },
346 CpuInfo(@This()).create(.At90can64, "at90can64", &[_]FeatureType {
347 .Ijmpcall,
348 .Movw,
349340 .Mul,
350 .Sram,
341 .Lpmx,
342 .Ijmpcall,
351343 .Break,
344 .Avr5,
345 }),
346 CpuInfo(@This(), FeatureType).create(.At90can64, "at90can64", &[_]FeatureType {
347 .Lpm,
348 .Movw,
352349 .Spm,
353 .Lpmx,
354350 .Avr0,
351 .Sram,
355352 .Jmpcall,
356353 .Addsubiw,
357 .Lpm,
358 .Avr5,
359 },
360 CpuInfo(@This()).create(.At90pwm1, "at90pwm1", &[_]FeatureType {
361 .Ijmpcall,
362 .Movw,
363354 .Mul,
364 .Sram,
355 .Lpmx,
356 .Ijmpcall,
365357 .Break,
358 .Avr5,
359 }),
360 CpuInfo(@This(), FeatureType).create(.At90pwm1, "at90pwm1", &[_]FeatureType {
361 .Lpm,
362 .Movw,
366363 .Spm,
367 .Lpmx,
368364 .Avr0,
365 .Sram,
369366 .Addsubiw,
370 .Lpm,
371 .Avr4,
372 },
373 CpuInfo(@This()).create(.At90pwm161, "at90pwm161", &[_]FeatureType {
374 .Ijmpcall,
375 .Movw,
376367 .Mul,
377 .Sram,
368 .Lpmx,
369 .Ijmpcall,
378370 .Break,
371 .Avr4,
372 }),
373 CpuInfo(@This(), FeatureType).create(.At90pwm161, "at90pwm161", &[_]FeatureType {
374 .Lpm,
375 .Movw,
379376 .Spm,
380 .Lpmx,
381377 .Avr0,
378 .Sram,
382379 .Jmpcall,
383380 .Addsubiw,
384 .Lpm,
385 .Avr5,
386 },
387 CpuInfo(@This()).create(.At90pwm2, "at90pwm2", &[_]FeatureType {
388 .Ijmpcall,
389 .Movw,
390381 .Mul,
391 .Sram,
382 .Lpmx,
383 .Ijmpcall,
392384 .Break,
385 .Avr5,
386 }),
387 CpuInfo(@This(), FeatureType).create(.At90pwm2, "at90pwm2", &[_]FeatureType {
388 .Lpm,
389 .Movw,
393390 .Spm,
394 .Lpmx,
395391 .Avr0,
392 .Sram,
396393 .Addsubiw,
397 .Lpm,
398 .Avr4,
399 },
400 CpuInfo(@This()).create(.At90pwm216, "at90pwm216", &[_]FeatureType {
401 .Ijmpcall,
402 .Movw,
403394 .Mul,
404 .Sram,
395 .Lpmx,
396 .Ijmpcall,
405397 .Break,
398 .Avr4,
399 }),
400 CpuInfo(@This(), FeatureType).create(.At90pwm216, "at90pwm216", &[_]FeatureType {
401 .Lpm,
402 .Movw,
406403 .Spm,
407 .Lpmx,
408404 .Avr0,
405 .Sram,
409406 .Jmpcall,
410407 .Addsubiw,
411 .Lpm,
412 .Avr5,
413 },
414 CpuInfo(@This()).create(.At90pwm2b, "at90pwm2b", &[_]FeatureType {
415 .Ijmpcall,
416 .Movw,
417408 .Mul,
418 .Sram,
409 .Lpmx,
410 .Ijmpcall,
419411 .Break,
412 .Avr5,
413 }),
414 CpuInfo(@This(), FeatureType).create(.At90pwm2b, "at90pwm2b", &[_]FeatureType {
415 .Lpm,
416 .Movw,
420417 .Spm,
421 .Lpmx,
422418 .Avr0,
419 .Sram,
423420 .Addsubiw,
424 .Lpm,
425 .Avr4,
426 },
427 CpuInfo(@This()).create(.At90pwm3, "at90pwm3", &[_]FeatureType {
428 .Ijmpcall,
429 .Movw,
430421 .Mul,
431 .Sram,
422 .Lpmx,
423 .Ijmpcall,
432424 .Break,
425 .Avr4,
426 }),
427 CpuInfo(@This(), FeatureType).create(.At90pwm3, "at90pwm3", &[_]FeatureType {
428 .Lpm,
429 .Movw,
433430 .Spm,
434 .Lpmx,
435431 .Avr0,
432 .Sram,
436433 .Addsubiw,
437 .Lpm,
438 .Avr4,
439 },
440 CpuInfo(@This()).create(.At90pwm316, "at90pwm316", &[_]FeatureType {
441 .Ijmpcall,
442 .Movw,
443434 .Mul,
444 .Sram,
435 .Lpmx,
436 .Ijmpcall,
445437 .Break,
438 .Avr4,
439 }),
440 CpuInfo(@This(), FeatureType).create(.At90pwm316, "at90pwm316", &[_]FeatureType {
441 .Lpm,
442 .Movw,
446443 .Spm,
447 .Lpmx,
448444 .Avr0,
445 .Sram,
449446 .Jmpcall,
450447 .Addsubiw,
451 .Lpm,
452 .Avr5,
453 },
454 CpuInfo(@This()).create(.At90pwm3b, "at90pwm3b", &[_]FeatureType {
455 .Ijmpcall,
456 .Movw,
457448 .Mul,
458 .Sram,
449 .Lpmx,
450 .Ijmpcall,
459451 .Break,
452 .Avr5,
453 }),
454 CpuInfo(@This(), FeatureType).create(.At90pwm3b, "at90pwm3b", &[_]FeatureType {
455 .Lpm,
456 .Movw,
460457 .Spm,
461 .Lpmx,
462458 .Avr0,
459 .Sram,
463460 .Addsubiw,
464 .Lpm,
465 .Avr4,
466 },
467 CpuInfo(@This()).create(.At90pwm81, "at90pwm81", &[_]FeatureType {
468 .Ijmpcall,
469 .Movw,
470461 .Mul,
471 .Sram,
462 .Lpmx,
463 .Ijmpcall,
472464 .Break,
465 .Avr4,
466 }),
467 CpuInfo(@This(), FeatureType).create(.At90pwm81, "at90pwm81", &[_]FeatureType {
468 .Lpm,
469 .Movw,
473470 .Spm,
474 .Lpmx,
475471 .Avr0,
472 .Sram,
476473 .Addsubiw,
477 .Lpm,
474 .Mul,
475 .Lpmx,
476 .Ijmpcall,
477 .Break,
478478 .Avr4,
479 },
480 CpuInfo(@This()).create(.At90s1200, "at90s1200", &[_]FeatureType {
479 }),
480 CpuInfo(@This(), FeatureType).create(.At90s1200, "at90s1200", &[_]FeatureType {
481481 .Avr0,
482 },
483 CpuInfo(@This()).create(.At90s2313, "at90s2313", &[_]FeatureType {
484 .Ijmpcall,
485 .Sram,
482 }),
483 CpuInfo(@This(), FeatureType).create(.At90s2313, "at90s2313", &[_]FeatureType {
484 .Lpm,
486485 .Avr0,
486 .Sram,
487487 .Addsubiw,
488 .Lpm,
489 .Avr2,
490 },
491 CpuInfo(@This()).create(.At90s2323, "at90s2323", &[_]FeatureType {
492488 .Ijmpcall,
493 .Sram,
489 .Avr2,
490 }),
491 CpuInfo(@This(), FeatureType).create(.At90s2323, "at90s2323", &[_]FeatureType {
492 .Lpm,
494493 .Avr0,
494 .Sram,
495495 .Addsubiw,
496 .Lpm,
497 .Avr2,
498 },
499 CpuInfo(@This()).create(.At90s2333, "at90s2333", &[_]FeatureType {
500496 .Ijmpcall,
501 .Sram,
497 .Avr2,
498 }),
499 CpuInfo(@This(), FeatureType).create(.At90s2333, "at90s2333", &[_]FeatureType {
500 .Lpm,
502501 .Avr0,
502 .Sram,
503503 .Addsubiw,
504 .Lpm,
505 .Avr2,
506 },
507 CpuInfo(@This()).create(.At90s2343, "at90s2343", &[_]FeatureType {
508504 .Ijmpcall,
509 .Sram,
505 .Avr2,
506 }),
507 CpuInfo(@This(), FeatureType).create(.At90s2343, "at90s2343", &[_]FeatureType {
508 .Lpm,
510509 .Avr0,
510 .Sram,
511511 .Addsubiw,
512 .Lpm,
513 .Avr2,
514 },
515 CpuInfo(@This()).create(.At90s4414, "at90s4414", &[_]FeatureType {
516512 .Ijmpcall,
517 .Sram,
513 .Avr2,
514 }),
515 CpuInfo(@This(), FeatureType).create(.At90s4414, "at90s4414", &[_]FeatureType {
516 .Lpm,
518517 .Avr0,
518 .Sram,
519519 .Addsubiw,
520 .Lpm,
521 .Avr2,
522 },
523 CpuInfo(@This()).create(.At90s4433, "at90s4433", &[_]FeatureType {
524520 .Ijmpcall,
525 .Sram,
521 .Avr2,
522 }),
523 CpuInfo(@This(), FeatureType).create(.At90s4433, "at90s4433", &[_]FeatureType {
524 .Lpm,
526525 .Avr0,
526 .Sram,
527527 .Addsubiw,
528 .Lpm,
529 .Avr2,
530 },
531 CpuInfo(@This()).create(.At90s4434, "at90s4434", &[_]FeatureType {
532528 .Ijmpcall,
533 .Sram,
529 .Avr2,
530 }),
531 CpuInfo(@This(), FeatureType).create(.At90s4434, "at90s4434", &[_]FeatureType {
532 .Lpm,
534533 .Avr0,
534 .Sram,
535535 .Addsubiw,
536 .Lpm,
537 .Avr2,
538 },
539 CpuInfo(@This()).create(.At90s8515, "at90s8515", &[_]FeatureType {
540536 .Ijmpcall,
541 .Sram,
537 .Avr2,
538 }),
539 CpuInfo(@This(), FeatureType).create(.At90s8515, "at90s8515", &[_]FeatureType {
540 .Lpm,
542541 .Avr0,
542 .Sram,
543543 .Addsubiw,
544 .Lpm,
545 .Avr2,
546 },
547 CpuInfo(@This()).create(.At90s8535, "at90s8535", &[_]FeatureType {
548544 .Ijmpcall,
549 .Sram,
545 .Avr2,
546 }),
547 CpuInfo(@This(), FeatureType).create(.At90s8535, "at90s8535", &[_]FeatureType {
548 .Lpm,
550549 .Avr0,
550 .Sram,
551551 .Addsubiw,
552 .Lpm,
553 .Avr2,
554 },
555 CpuInfo(@This()).create(.At90scr100, "at90scr100", &[_]FeatureType {
556552 .Ijmpcall,
553 .Avr2,
554 }),
555 CpuInfo(@This(), FeatureType).create(.At90scr100, "at90scr100", &[_]FeatureType {
556 .Lpm,
557557 .Movw,
558 .Mul,
559 .Sram,
560 .Break,
561558 .Spm,
562 .Lpmx,
563559 .Avr0,
560 .Sram,
564561 .Jmpcall,
565562 .Addsubiw,
566 .Lpm,
567 .Avr5,
568 },
569 CpuInfo(@This()).create(.At90usb1286, "at90usb1286", &[_]FeatureType {
570 .Ijmpcall,
571 .Elpmx,
572 .Movw,
573563 .Mul,
574 .Sram,
564 .Lpmx,
565 .Ijmpcall,
575566 .Break,
576 .Spm,
567 .Avr5,
568 }),
569 CpuInfo(@This(), FeatureType).create(.At90usb1286, "at90usb1286", &[_]FeatureType {
570 .Lpm,
577571 .Elpm,
578 .Lpmx,
572 .Movw,
573 .Elpmx,
574 .Spm,
579575 .Avr0,
576 .Sram,
580577 .Jmpcall,
581578 .Addsubiw,
582 .Lpm,
583 .Avr51,
584 },
585 CpuInfo(@This()).create(.At90usb1287, "at90usb1287", &[_]FeatureType {
586 .Ijmpcall,
587 .Elpmx,
588 .Movw,
589579 .Mul,
590 .Sram,
580 .Lpmx,
581 .Ijmpcall,
591582 .Break,
592 .Spm,
583 .Avr51,
584 }),
585 CpuInfo(@This(), FeatureType).create(.At90usb1287, "at90usb1287", &[_]FeatureType {
586 .Lpm,
593587 .Elpm,
594 .Lpmx,
588 .Movw,
589 .Elpmx,
590 .Spm,
595591 .Avr0,
592 .Sram,
596593 .Jmpcall,
597594 .Addsubiw,
598 .Lpm,
599 .Avr51,
600 },
601 CpuInfo(@This()).create(.At90usb162, "at90usb162", &[_]FeatureType {
595 .Mul,
596 .Lpmx,
602597 .Ijmpcall,
603 .Movw,
604 .Sram,
605598 .Break,
599 .Avr51,
600 }),
601 CpuInfo(@This(), FeatureType).create(.At90usb162, "at90usb162", &[_]FeatureType {
602 .Lpm,
603 .Movw,
606604 .Spm,
607 .Lpmx,
608605 .Avr0,
606 .Sram,
609607 .Jmpcall,
610608 .Addsubiw,
611 .Lpm,
612 .Avr35,
613 },
614 CpuInfo(@This()).create(.At90usb646, "at90usb646", &[_]FeatureType {
609 .Lpmx,
615610 .Ijmpcall,
616 .Movw,
617 .Mul,
618 .Sram,
619611 .Break,
612 .Avr35,
613 }),
614 CpuInfo(@This(), FeatureType).create(.At90usb646, "at90usb646", &[_]FeatureType {
615 .Lpm,
616 .Movw,
620617 .Spm,
621 .Lpmx,
622618 .Avr0,
619 .Sram,
623620 .Jmpcall,
624621 .Addsubiw,
625 .Lpm,
626 .Avr5,
627 },
628 CpuInfo(@This()).create(.At90usb647, "at90usb647", &[_]FeatureType {
629 .Ijmpcall,
630 .Movw,
631622 .Mul,
632 .Sram,
623 .Lpmx,
624 .Ijmpcall,
633625 .Break,
626 .Avr5,
627 }),
628 CpuInfo(@This(), FeatureType).create(.At90usb647, "at90usb647", &[_]FeatureType {
629 .Lpm,
630 .Movw,
634631 .Spm,
635 .Lpmx,
636632 .Avr0,
633 .Sram,
637634 .Jmpcall,
638635 .Addsubiw,
639 .Lpm,
640 .Avr5,
641 },
642 CpuInfo(@This()).create(.At90usb82, "at90usb82", &[_]FeatureType {
636 .Mul,
637 .Lpmx,
643638 .Ijmpcall,
644 .Movw,
645 .Sram,
646639 .Break,
640 .Avr5,
641 }),
642 CpuInfo(@This(), FeatureType).create(.At90usb82, "at90usb82", &[_]FeatureType {
643 .Lpm,
644 .Movw,
647645 .Spm,
648 .Lpmx,
649646 .Avr0,
647 .Sram,
650648 .Jmpcall,
651649 .Addsubiw,
652 .Lpm,
653 .Avr35,
654 },
655 CpuInfo(@This()).create(.At94k, "at94k", &[_]FeatureType {
650 .Lpmx,
656651 .Ijmpcall,
657 .Sram,
652 .Break,
653 .Avr35,
654 }),
655 CpuInfo(@This(), FeatureType).create(.At94k, "at94k", &[_]FeatureType {
656 .Lpm,
658657 .Avr0,
658 .Sram,
659659 .Jmpcall,
660660 .Addsubiw,
661 .Lpm,
661 .Ijmpcall,
662662 .Avr3,
663663 .Lpmx,
664664 .Movw,
665665 .Mul,
666 },
667 CpuInfo(@This()).create(.Ata5272, "ata5272", &[_]FeatureType {
668 .Ijmpcall,
666 }),
667 CpuInfo(@This(), FeatureType).create(.Ata5272, "ata5272", &[_]FeatureType {
668 .Lpm,
669669 .Movw,
670 .Sram,
671 .Break,
672670 .Spm,
673 .Lpmx,
674671 .Avr0,
672 .Sram,
675673 .Addsubiw,
676 .Lpm,
677 .Avr25,
678 },
679 CpuInfo(@This()).create(.Ata5505, "ata5505", &[_]FeatureType {
674 .Lpmx,
680675 .Ijmpcall,
681 .Movw,
682 .Sram,
683676 .Break,
677 .Avr25,
678 }),
679 CpuInfo(@This(), FeatureType).create(.Ata5505, "ata5505", &[_]FeatureType {
680 .Lpm,
681 .Movw,
684682 .Spm,
685 .Lpmx,
686683 .Avr0,
684 .Sram,
687685 .Jmpcall,
688686 .Addsubiw,
689 .Lpm,
690 .Avr35,
691 },
692 CpuInfo(@This()).create(.Ata5790, "ata5790", &[_]FeatureType {
687 .Lpmx,
693688 .Ijmpcall,
694 .Movw,
695 .Mul,
696 .Sram,
697689 .Break,
690 .Avr35,
691 }),
692 CpuInfo(@This(), FeatureType).create(.Ata5790, "ata5790", &[_]FeatureType {
693 .Lpm,
694 .Movw,
698695 .Spm,
699 .Lpmx,
700696 .Avr0,
697 .Sram,
701698 .Jmpcall,
702699 .Addsubiw,
703 .Lpm,
704 .Avr5,
705 },
706 CpuInfo(@This()).create(.Ata5795, "ata5795", &[_]FeatureType {
707 .Ijmpcall,
708 .Movw,
709700 .Mul,
710 .Sram,
701 .Lpmx,
702 .Ijmpcall,
711703 .Break,
704 .Avr5,
705 }),
706 CpuInfo(@This(), FeatureType).create(.Ata5795, "ata5795", &[_]FeatureType {
707 .Lpm,
708 .Movw,
712709 .Spm,
713 .Lpmx,
714710 .Avr0,
711 .Sram,
715712 .Jmpcall,
716713 .Addsubiw,
717 .Lpm,
718 .Avr5,
719 },
720 CpuInfo(@This()).create(.Ata6285, "ata6285", &[_]FeatureType {
721 .Ijmpcall,
722 .Movw,
723714 .Mul,
724 .Sram,
715 .Lpmx,
716 .Ijmpcall,
725717 .Break,
718 .Avr5,
719 }),
720 CpuInfo(@This(), FeatureType).create(.Ata6285, "ata6285", &[_]FeatureType {
721 .Lpm,
722 .Movw,
726723 .Spm,
727 .Lpmx,
728724 .Avr0,
725 .Sram,
729726 .Addsubiw,
730 .Lpm,
731 .Avr4,
732 },
733 CpuInfo(@This()).create(.Ata6286, "ata6286", &[_]FeatureType {
734 .Ijmpcall,
735 .Movw,
736727 .Mul,
737 .Sram,
728 .Lpmx,
729 .Ijmpcall,
738730 .Break,
731 .Avr4,
732 }),
733 CpuInfo(@This(), FeatureType).create(.Ata6286, "ata6286", &[_]FeatureType {
734 .Lpm,
735 .Movw,
739736 .Spm,
740 .Lpmx,
741737 .Avr0,
738 .Sram,
742739 .Addsubiw,
743 .Lpm,
744 .Avr4,
745 },
746 CpuInfo(@This()).create(.Ata6289, "ata6289", &[_]FeatureType {
747 .Ijmpcall,
748 .Movw,
749740 .Mul,
750 .Sram,
741 .Lpmx,
742 .Ijmpcall,
751743 .Break,
744 .Avr4,
745 }),
746 CpuInfo(@This(), FeatureType).create(.Ata6289, "ata6289", &[_]FeatureType {
747 .Lpm,
748 .Movw,
752749 .Spm,
753 .Lpmx,
754750 .Avr0,
751 .Sram,
755752 .Addsubiw,
756 .Lpm,
757 .Avr4,
758 },
759 CpuInfo(@This()).create(.Atmega103, "atmega103", &[_]FeatureType {
753 .Mul,
754 .Lpmx,
760755 .Ijmpcall,
761 .Sram,
756 .Break,
757 .Avr4,
758 }),
759 CpuInfo(@This(), FeatureType).create(.Atmega103, "atmega103", &[_]FeatureType {
760 .Lpm,
762761 .Elpm,
763762 .Avr0,
763 .Sram,
764764 .Jmpcall,
765765 .Addsubiw,
766 .Lpm,
767 .Avr31,
768 },
769 CpuInfo(@This()).create(.Atmega128, "atmega128", &[_]FeatureType {
770766 .Ijmpcall,
771 .Elpmx,
767 .Avr31,
768 }),
769 CpuInfo(@This(), FeatureType).create(.Atmega128, "atmega128", &[_]FeatureType {
770 .Lpm,
771 .Elpm,
772772 .Movw,
773 .Mul,
774 .Sram,
775 .Break,
773 .Elpmx,
776774 .Spm,
777 .Elpm,
778 .Lpmx,
779775 .Avr0,
776 .Sram,
780777 .Jmpcall,
781778 .Addsubiw,
782 .Lpm,
783 .Avr51,
784 },
785 CpuInfo(@This()).create(.Atmega1280, "atmega1280", &[_]FeatureType {
786 .Ijmpcall,
787 .Elpmx,
788 .Movw,
789779 .Mul,
790 .Sram,
780 .Lpmx,
781 .Ijmpcall,
791782 .Break,
792 .Spm,
783 .Avr51,
784 }),
785 CpuInfo(@This(), FeatureType).create(.Atmega1280, "atmega1280", &[_]FeatureType {
786 .Lpm,
793787 .Elpm,
794 .Lpmx,
788 .Movw,
789 .Elpmx,
790 .Spm,
795791 .Avr0,
792 .Sram,
796793 .Jmpcall,
797794 .Addsubiw,
798 .Lpm,
799 .Avr51,
800 },
801 CpuInfo(@This()).create(.Atmega1281, "atmega1281", &[_]FeatureType {
802 .Ijmpcall,
803 .Elpmx,
804 .Movw,
805795 .Mul,
806 .Sram,
796 .Lpmx,
797 .Ijmpcall,
807798 .Break,
808 .Spm,
799 .Avr51,
800 }),
801 CpuInfo(@This(), FeatureType).create(.Atmega1281, "atmega1281", &[_]FeatureType {
802 .Lpm,
809803 .Elpm,
810 .Lpmx,
804 .Movw,
805 .Elpmx,
806 .Spm,
811807 .Avr0,
808 .Sram,
812809 .Jmpcall,
813810 .Addsubiw,
814 .Lpm,
815 .Avr51,
816 },
817 CpuInfo(@This()).create(.Atmega1284, "atmega1284", &[_]FeatureType {
818 .Ijmpcall,
819 .Elpmx,
820 .Movw,
821811 .Mul,
822 .Sram,
812 .Lpmx,
813 .Ijmpcall,
823814 .Break,
824 .Spm,
815 .Avr51,
816 }),
817 CpuInfo(@This(), FeatureType).create(.Atmega1284, "atmega1284", &[_]FeatureType {
818 .Lpm,
825819 .Elpm,
826 .Lpmx,
820 .Movw,
821 .Elpmx,
822 .Spm,
827823 .Avr0,
824 .Sram,
828825 .Jmpcall,
829826 .Addsubiw,
830 .Lpm,
831 .Avr51,
832 },
833 CpuInfo(@This()).create(.Atmega1284p, "atmega1284p", &[_]FeatureType {
834 .Ijmpcall,
835 .Elpmx,
836 .Movw,
837827 .Mul,
838 .Sram,
828 .Lpmx,
829 .Ijmpcall,
839830 .Break,
840 .Spm,
831 .Avr51,
832 }),
833 CpuInfo(@This(), FeatureType).create(.Atmega1284p, "atmega1284p", &[_]FeatureType {
834 .Lpm,
841835 .Elpm,
842 .Lpmx,
836 .Movw,
837 .Elpmx,
838 .Spm,
843839 .Avr0,
840 .Sram,
844841 .Jmpcall,
845842 .Addsubiw,
846 .Lpm,
847 .Avr51,
848 },
849 CpuInfo(@This()).create(.Atmega1284rfr2, "atmega1284rfr2", &[_]FeatureType {
850 .Ijmpcall,
851 .Elpmx,
852 .Movw,
853843 .Mul,
854 .Sram,
844 .Lpmx,
845 .Ijmpcall,
855846 .Break,
856 .Spm,
847 .Avr51,
848 }),
849 CpuInfo(@This(), FeatureType).create(.Atmega1284rfr2, "atmega1284rfr2", &[_]FeatureType {
850 .Lpm,
857851 .Elpm,
858 .Lpmx,
852 .Movw,
853 .Elpmx,
854 .Spm,
859855 .Avr0,
856 .Sram,
860857 .Jmpcall,
861858 .Addsubiw,
862 .Lpm,
863 .Avr51,
864 },
865 CpuInfo(@This()).create(.Atmega128a, "atmega128a", &[_]FeatureType {
866 .Ijmpcall,
867 .Elpmx,
868 .Movw,
869859 .Mul,
870 .Sram,
871 .Break,
872 .Spm,
873 .Elpm,
874860 .Lpmx,
861 .Ijmpcall,
862 .Break,
863 .Avr51,
864 }),
865 CpuInfo(@This(), FeatureType).create(.Atmega128a, "atmega128a", &[_]FeatureType {
866 .Lpm,
867 .Elpm,
868 .Movw,
869 .Elpmx,
870 .Spm,
875871 .Avr0,
872 .Sram,
876873 .Jmpcall,
877874 .Addsubiw,
878 .Lpm,
879 .Avr51,
880 },
881 CpuInfo(@This()).create(.Atmega128rfa1, "atmega128rfa1", &[_]FeatureType {
882 .Ijmpcall,
883 .Elpmx,
884 .Movw,
885875 .Mul,
886 .Sram,
876 .Lpmx,
877 .Ijmpcall,
887878 .Break,
888 .Spm,
879 .Avr51,
880 }),
881 CpuInfo(@This(), FeatureType).create(.Atmega128rfa1, "atmega128rfa1", &[_]FeatureType {
882 .Lpm,
889883 .Elpm,
890 .Lpmx,
884 .Movw,
885 .Elpmx,
886 .Spm,
891887 .Avr0,
888 .Sram,
892889 .Jmpcall,
893890 .Addsubiw,
894 .Lpm,
895 .Avr51,
896 },
897 CpuInfo(@This()).create(.Atmega128rfr2, "atmega128rfr2", &[_]FeatureType {
898 .Ijmpcall,
899 .Elpmx,
900 .Movw,
901891 .Mul,
902 .Sram,
892 .Lpmx,
893 .Ijmpcall,
903894 .Break,
904 .Spm,
895 .Avr51,
896 }),
897 CpuInfo(@This(), FeatureType).create(.Atmega128rfr2, "atmega128rfr2", &[_]FeatureType {
898 .Lpm,
905899 .Elpm,
906 .Lpmx,
900 .Movw,
901 .Elpmx,
902 .Spm,
907903 .Avr0,
904 .Sram,
908905 .Jmpcall,
909906 .Addsubiw,
910 .Lpm,
911 .Avr51,
912 },
913 CpuInfo(@This()).create(.Atmega16, "atmega16", &[_]FeatureType {
914 .Ijmpcall,
915 .Movw,
916907 .Mul,
917 .Sram,
908 .Lpmx,
909 .Ijmpcall,
918910 .Break,
911 .Avr51,
912 }),
913 CpuInfo(@This(), FeatureType).create(.Atmega16, "atmega16", &[_]FeatureType {
914 .Lpm,
915 .Movw,
919916 .Spm,
920 .Lpmx,
921917 .Avr0,
918 .Sram,
922919 .Jmpcall,
923920 .Addsubiw,
924 .Lpm,
925 .Avr5,
926 },
927 CpuInfo(@This()).create(.Atmega161, "atmega161", &[_]FeatureType {
921 .Mul,
922 .Lpmx,
928923 .Ijmpcall,
929 .Sram,
924 .Break,
925 .Avr5,
926 }),
927 CpuInfo(@This(), FeatureType).create(.Atmega161, "atmega161", &[_]FeatureType {
928 .Lpm,
930929 .Avr0,
930 .Sram,
931931 .Jmpcall,
932932 .Addsubiw,
933 .Lpm,
933 .Ijmpcall,
934934 .Avr3,
935935 .Lpmx,
936936 .Movw,
937937 .Mul,
938938 .Spm,
939 },
940 CpuInfo(@This()).create(.Atmega162, "atmega162", &[_]FeatureType {
941 .Ijmpcall,
939 }),
940 CpuInfo(@This(), FeatureType).create(.Atmega162, "atmega162", &[_]FeatureType {
941 .Lpm,
942942 .Movw,
943 .Mul,
944 .Sram,
945 .Break,
946943 .Spm,
947 .Lpmx,
948944 .Avr0,
945 .Sram,
949946 .Jmpcall,
950947 .Addsubiw,
951 .Lpm,
952 .Avr5,
953 },
954 CpuInfo(@This()).create(.Atmega163, "atmega163", &[_]FeatureType {
948 .Mul,
949 .Lpmx,
955950 .Ijmpcall,
956 .Sram,
951 .Break,
952 .Avr5,
953 }),
954 CpuInfo(@This(), FeatureType).create(.Atmega163, "atmega163", &[_]FeatureType {
955 .Lpm,
957956 .Avr0,
957 .Sram,
958958 .Jmpcall,
959959 .Addsubiw,
960 .Lpm,
960 .Ijmpcall,
961961 .Avr3,
962962 .Lpmx,
963963 .Movw,
964964 .Mul,
965965 .Spm,
966 },
967 CpuInfo(@This()).create(.Atmega164a, "atmega164a", &[_]FeatureType {
968 .Ijmpcall,
966 }),
967 CpuInfo(@This(), FeatureType).create(.Atmega164a, "atmega164a", &[_]FeatureType {
968 .Lpm,
969969 .Movw,
970 .Mul,
971 .Sram,
972 .Break,
973970 .Spm,
974 .Lpmx,
975971 .Avr0,
972 .Sram,
976973 .Jmpcall,
977974 .Addsubiw,
978 .Lpm,
979 .Avr5,
980 },
981 CpuInfo(@This()).create(.Atmega164p, "atmega164p", &[_]FeatureType {
982 .Ijmpcall,
983 .Movw,
984975 .Mul,
985 .Sram,
986 .Break,
987 .Spm,
988976 .Lpmx,
989 .Avr0,
990 .Jmpcall,
991 .Addsubiw,
992 .Lpm,
993 .Avr5,
994 },
995 CpuInfo(@This()).create(.Atmega164pa, "atmega164pa", &[_]FeatureType {
996977 .Ijmpcall,
997 .Movw,
998 .Mul,
999 .Sram,
1000978 .Break,
979 .Avr5,
980 }),
981 CpuInfo(@This(), FeatureType).create(.Atmega164p, "atmega164p", &[_]FeatureType {
982 .Lpm,
983 .Movw,
1001984 .Spm,
1002 .Lpmx,
1003985 .Avr0,
986 .Sram,
1004987 .Jmpcall,
1005988 .Addsubiw,
1006 .Lpm,
1007 .Avr5,
1008 },
1009 CpuInfo(@This()).create(.Atmega165, "atmega165", &[_]FeatureType {
1010 .Ijmpcall,
1011 .Movw,
1012989 .Mul,
1013 .Sram,
990 .Lpmx,
991 .Ijmpcall,
1014992 .Break,
993 .Avr5,
994 }),
995 CpuInfo(@This(), FeatureType).create(.Atmega164pa, "atmega164pa", &[_]FeatureType {
996 .Lpm,
997 .Movw,
1015998 .Spm,
1016 .Lpmx,
1017999 .Avr0,
1000 .Sram,
10181001 .Jmpcall,
10191002 .Addsubiw,
1020 .Lpm,
1021 .Avr5,
1022 },
1023 CpuInfo(@This()).create(.Atmega165a, "atmega165a", &[_]FeatureType {
1024 .Ijmpcall,
1025 .Movw,
10261003 .Mul,
1027 .Sram,
1004 .Lpmx,
1005 .Ijmpcall,
10281006 .Break,
1007 .Avr5,
1008 }),
1009 CpuInfo(@This(), FeatureType).create(.Atmega165, "atmega165", &[_]FeatureType {
1010 .Lpm,
1011 .Movw,
10291012 .Spm,
1030 .Lpmx,
10311013 .Avr0,
1014 .Sram,
10321015 .Jmpcall,
10331016 .Addsubiw,
1034 .Lpm,
1035 .Avr5,
1036 },
1037 CpuInfo(@This()).create(.Atmega165p, "atmega165p", &[_]FeatureType {
1038 .Ijmpcall,
1039 .Movw,
10401017 .Mul,
1041 .Sram,
1018 .Lpmx,
1019 .Ijmpcall,
10421020 .Break,
1021 .Avr5,
1022 }),
1023 CpuInfo(@This(), FeatureType).create(.Atmega165a, "atmega165a", &[_]FeatureType {
1024 .Lpm,
1025 .Movw,
10431026 .Spm,
1044 .Lpmx,
10451027 .Avr0,
1028 .Sram,
10461029 .Jmpcall,
10471030 .Addsubiw,
1048 .Lpm,
1049 .Avr5,
1050 },
1051 CpuInfo(@This()).create(.Atmega165pa, "atmega165pa", &[_]FeatureType {
1052 .Ijmpcall,
1053 .Movw,
10541031 .Mul,
1055 .Sram,
1032 .Lpmx,
1033 .Ijmpcall,
10561034 .Break,
1035 .Avr5,
1036 }),
1037 CpuInfo(@This(), FeatureType).create(.Atmega165p, "atmega165p", &[_]FeatureType {
1038 .Lpm,
1039 .Movw,
10571040 .Spm,
1058 .Lpmx,
10591041 .Avr0,
1042 .Sram,
10601043 .Jmpcall,
10611044 .Addsubiw,
1062 .Lpm,
1063 .Avr5,
1064 },
1065 CpuInfo(@This()).create(.Atmega168, "atmega168", &[_]FeatureType {
1066 .Ijmpcall,
1067 .Movw,
10681045 .Mul,
1069 .Sram,
1046 .Lpmx,
1047 .Ijmpcall,
10701048 .Break,
1049 .Avr5,
1050 }),
1051 CpuInfo(@This(), FeatureType).create(.Atmega165pa, "atmega165pa", &[_]FeatureType {
1052 .Lpm,
1053 .Movw,
10711054 .Spm,
1072 .Lpmx,
10731055 .Avr0,
1056 .Sram,
10741057 .Jmpcall,
10751058 .Addsubiw,
1076 .Lpm,
1077 .Avr5,
1078 },
1079 CpuInfo(@This()).create(.Atmega168a, "atmega168a", &[_]FeatureType {
1080 .Ijmpcall,
1081 .Movw,
10821059 .Mul,
1083 .Sram,
1060 .Lpmx,
1061 .Ijmpcall,
10841062 .Break,
1063 .Avr5,
1064 }),
1065 CpuInfo(@This(), FeatureType).create(.Atmega168, "atmega168", &[_]FeatureType {
1066 .Lpm,
1067 .Movw,
10851068 .Spm,
1086 .Lpmx,
10871069 .Avr0,
1070 .Sram,
10881071 .Jmpcall,
10891072 .Addsubiw,
1090 .Lpm,
1091 .Avr5,
1092 },
1093 CpuInfo(@This()).create(.Atmega168p, "atmega168p", &[_]FeatureType {
1094 .Ijmpcall,
1095 .Movw,
10961073 .Mul,
1097 .Sram,
1074 .Lpmx,
1075 .Ijmpcall,
10981076 .Break,
1077 .Avr5,
1078 }),
1079 CpuInfo(@This(), FeatureType).create(.Atmega168a, "atmega168a", &[_]FeatureType {
1080 .Lpm,
1081 .Movw,
10991082 .Spm,
1100 .Lpmx,
11011083 .Avr0,
1084 .Sram,
11021085 .Jmpcall,
11031086 .Addsubiw,
1104 .Lpm,
1105 .Avr5,
1106 },
1107 CpuInfo(@This()).create(.Atmega168pa, "atmega168pa", &[_]FeatureType {
1108 .Ijmpcall,
1109 .Movw,
11101087 .Mul,
1111 .Sram,
1088 .Lpmx,
1089 .Ijmpcall,
11121090 .Break,
1091 .Avr5,
1092 }),
1093 CpuInfo(@This(), FeatureType).create(.Atmega168p, "atmega168p", &[_]FeatureType {
1094 .Lpm,
1095 .Movw,
11131096 .Spm,
1114 .Lpmx,
11151097 .Avr0,
1098 .Sram,
11161099 .Jmpcall,
11171100 .Addsubiw,
1118 .Lpm,
1119 .Avr5,
1120 },
1121 CpuInfo(@This()).create(.Atmega169, "atmega169", &[_]FeatureType {
1122 .Ijmpcall,
1123 .Movw,
11241101 .Mul,
1125 .Sram,
1102 .Lpmx,
1103 .Ijmpcall,
11261104 .Break,
1105 .Avr5,
1106 }),
1107 CpuInfo(@This(), FeatureType).create(.Atmega168pa, "atmega168pa", &[_]FeatureType {
1108 .Lpm,
1109 .Movw,
11271110 .Spm,
1128 .Lpmx,
11291111 .Avr0,
1112 .Sram,
11301113 .Jmpcall,
11311114 .Addsubiw,
1132 .Lpm,
1133 .Avr5,
1134 },
1135 CpuInfo(@This()).create(.Atmega169a, "atmega169a", &[_]FeatureType {
1136 .Ijmpcall,
1137 .Movw,
11381115 .Mul,
1139 .Sram,
1116 .Lpmx,
1117 .Ijmpcall,
11401118 .Break,
1119 .Avr5,
1120 }),
1121 CpuInfo(@This(), FeatureType).create(.Atmega169, "atmega169", &[_]FeatureType {
1122 .Lpm,
1123 .Movw,
11411124 .Spm,
1142 .Lpmx,
11431125 .Avr0,
1126 .Sram,
11441127 .Jmpcall,
11451128 .Addsubiw,
1146 .Lpm,
1147 .Avr5,
1148 },
1149 CpuInfo(@This()).create(.Atmega169p, "atmega169p", &[_]FeatureType {
1150 .Ijmpcall,
1151 .Movw,
11521129 .Mul,
1153 .Sram,
1130 .Lpmx,
1131 .Ijmpcall,
11541132 .Break,
1133 .Avr5,
1134 }),
1135 CpuInfo(@This(), FeatureType).create(.Atmega169a, "atmega169a", &[_]FeatureType {
1136 .Lpm,
1137 .Movw,
11551138 .Spm,
1156 .Lpmx,
11571139 .Avr0,
1140 .Sram,
11581141 .Jmpcall,
11591142 .Addsubiw,
1160 .Lpm,
1161 .Avr5,
1162 },
1163 CpuInfo(@This()).create(.Atmega169pa, "atmega169pa", &[_]FeatureType {
1164 .Ijmpcall,
1165 .Movw,
11661143 .Mul,
1167 .Sram,
1144 .Lpmx,
1145 .Ijmpcall,
11681146 .Break,
1147 .Avr5,
1148 }),
1149 CpuInfo(@This(), FeatureType).create(.Atmega169p, "atmega169p", &[_]FeatureType {
1150 .Lpm,
1151 .Movw,
11691152 .Spm,
1170 .Lpmx,
11711153 .Avr0,
1154 .Sram,
11721155 .Jmpcall,
11731156 .Addsubiw,
1174 .Lpm,
1175 .Avr5,
1176 },
1177 CpuInfo(@This()).create(.Atmega16a, "atmega16a", &[_]FeatureType {
1178 .Ijmpcall,
1179 .Movw,
11801157 .Mul,
1181 .Sram,
1158 .Lpmx,
1159 .Ijmpcall,
11821160 .Break,
1161 .Avr5,
1162 }),
1163 CpuInfo(@This(), FeatureType).create(.Atmega169pa, "atmega169pa", &[_]FeatureType {
1164 .Lpm,
1165 .Movw,
11831166 .Spm,
1184 .Lpmx,
11851167 .Avr0,
1168 .Sram,
11861169 .Jmpcall,
11871170 .Addsubiw,
1188 .Lpm,
1189 .Avr5,
1190 },
1191 CpuInfo(@This()).create(.Atmega16hva, "atmega16hva", &[_]FeatureType {
1192 .Ijmpcall,
1193 .Movw,
11941171 .Mul,
1195 .Sram,
1172 .Lpmx,
1173 .Ijmpcall,
11961174 .Break,
1175 .Avr5,
1176 }),
1177 CpuInfo(@This(), FeatureType).create(.Atmega16a, "atmega16a", &[_]FeatureType {
1178 .Lpm,
1179 .Movw,
11971180 .Spm,
1198 .Lpmx,
11991181 .Avr0,
1182 .Sram,
12001183 .Jmpcall,
12011184 .Addsubiw,
1202 .Lpm,
1203 .Avr5,
1204 },
1205 CpuInfo(@This()).create(.Atmega16hva2, "atmega16hva2", &[_]FeatureType {
1206 .Ijmpcall,
1207 .Movw,
12081185 .Mul,
1209 .Sram,
1186 .Lpmx,
1187 .Ijmpcall,
12101188 .Break,
1189 .Avr5,
1190 }),
1191 CpuInfo(@This(), FeatureType).create(.Atmega16hva, "atmega16hva", &[_]FeatureType {
1192 .Lpm,
1193 .Movw,
12111194 .Spm,
1212 .Lpmx,
12131195 .Avr0,
1196 .Sram,
12141197 .Jmpcall,
12151198 .Addsubiw,
1216 .Lpm,
1217 .Avr5,
1218 },
1219 CpuInfo(@This()).create(.Atmega16hvb, "atmega16hvb", &[_]FeatureType {
1220 .Ijmpcall,
1221 .Movw,
12221199 .Mul,
1223 .Sram,
1200 .Lpmx,
1201 .Ijmpcall,
12241202 .Break,
1203 .Avr5,
1204 }),
1205 CpuInfo(@This(), FeatureType).create(.Atmega16hva2, "atmega16hva2", &[_]FeatureType {
1206 .Lpm,
1207 .Movw,
12251208 .Spm,
1226 .Lpmx,
12271209 .Avr0,
1210 .Sram,
12281211 .Jmpcall,
12291212 .Addsubiw,
1230 .Lpm,
1231 .Avr5,
1232 },
1233 CpuInfo(@This()).create(.Atmega16hvbrevb, "atmega16hvbrevb", &[_]FeatureType {
1234 .Ijmpcall,
1235 .Movw,
12361213 .Mul,
1237 .Sram,
1214 .Lpmx,
1215 .Ijmpcall,
12381216 .Break,
1217 .Avr5,
1218 }),
1219 CpuInfo(@This(), FeatureType).create(.Atmega16hvb, "atmega16hvb", &[_]FeatureType {
1220 .Lpm,
1221 .Movw,
12391222 .Spm,
1240 .Lpmx,
12411223 .Avr0,
1224 .Sram,
12421225 .Jmpcall,
12431226 .Addsubiw,
1244 .Lpm,
1245 .Avr5,
1246 },
1247 CpuInfo(@This()).create(.Atmega16m1, "atmega16m1", &[_]FeatureType {
1248 .Ijmpcall,
1249 .Movw,
12501227 .Mul,
1251 .Sram,
1228 .Lpmx,
1229 .Ijmpcall,
12521230 .Break,
1231 .Avr5,
1232 }),
1233 CpuInfo(@This(), FeatureType).create(.Atmega16hvbrevb, "atmega16hvbrevb", &[_]FeatureType {
1234 .Lpm,
1235 .Movw,
12531236 .Spm,
1254 .Lpmx,
12551237 .Avr0,
1238 .Sram,
12561239 .Jmpcall,
12571240 .Addsubiw,
1258 .Lpm,
1259 .Avr5,
1260 },
1261 CpuInfo(@This()).create(.Atmega16u2, "atmega16u2", &[_]FeatureType {
1241 .Mul,
1242 .Lpmx,
12621243 .Ijmpcall,
1263 .Movw,
1264 .Sram,
12651244 .Break,
1245 .Avr5,
1246 }),
1247 CpuInfo(@This(), FeatureType).create(.Atmega16m1, "atmega16m1", &[_]FeatureType {
1248 .Lpm,
1249 .Movw,
12661250 .Spm,
1267 .Lpmx,
12681251 .Avr0,
1252 .Sram,
12691253 .Jmpcall,
12701254 .Addsubiw,
1271 .Lpm,
1272 .Avr35,
1273 },
1274 CpuInfo(@This()).create(.Atmega16u4, "atmega16u4", &[_]FeatureType {
1275 .Ijmpcall,
1276 .Movw,
12771255 .Mul,
1278 .Sram,
1256 .Lpmx,
1257 .Ijmpcall,
12791258 .Break,
1259 .Avr5,
1260 }),
1261 CpuInfo(@This(), FeatureType).create(.Atmega16u2, "atmega16u2", &[_]FeatureType {
1262 .Lpm,
1263 .Movw,
12801264 .Spm,
1281 .Lpmx,
12821265 .Avr0,
1266 .Sram,
12831267 .Jmpcall,
12841268 .Addsubiw,
1285 .Lpm,
1286 .Avr5,
1287 },
1288 CpuInfo(@This()).create(.Atmega2560, "atmega2560", &[_]FeatureType {
1269 .Lpmx,
12891270 .Ijmpcall,
1290 .Elpmx,
1291 .Movw,
1292 .Mul,
1293 .Sram,
12941271 .Break,
1272 .Avr35,
1273 }),
1274 CpuInfo(@This(), FeatureType).create(.Atmega16u4, "atmega16u4", &[_]FeatureType {
1275 .Lpm,
1276 .Movw,
12951277 .Spm,
1296 .Elpm,
1297 .Lpmx,
12981278 .Avr0,
1279 .Sram,
12991280 .Jmpcall,
13001281 .Addsubiw,
1301 .Lpm,
1302 .Avr6,
1303 },
1304 CpuInfo(@This()).create(.Atmega2561, "atmega2561", &[_]FeatureType {
1305 .Ijmpcall,
1306 .Elpmx,
1307 .Movw,
13081282 .Mul,
1309 .Sram,
1283 .Lpmx,
1284 .Ijmpcall,
13101285 .Break,
1311 .Spm,
1286 .Avr5,
1287 }),
1288 CpuInfo(@This(), FeatureType).create(.Atmega2560, "atmega2560", &[_]FeatureType {
1289 .Lpm,
13121290 .Elpm,
1313 .Lpmx,
1291 .Movw,
1292 .Elpmx,
1293 .Spm,
13141294 .Avr0,
1295 .Sram,
13151296 .Jmpcall,
13161297 .Addsubiw,
1317 .Lpm,
1318 .Avr6,
1319 },
1320 CpuInfo(@This()).create(.Atmega2564rfr2, "atmega2564rfr2", &[_]FeatureType {
1321 .Ijmpcall,
1322 .Elpmx,
1323 .Movw,
13241298 .Mul,
1325 .Sram,
1299 .Lpmx,
1300 .Ijmpcall,
13261301 .Break,
1327 .Spm,
1302 .Avr6,
1303 }),
1304 CpuInfo(@This(), FeatureType).create(.Atmega2561, "atmega2561", &[_]FeatureType {
1305 .Lpm,
13281306 .Elpm,
1329 .Lpmx,
1307 .Movw,
1308 .Elpmx,
1309 .Spm,
13301310 .Avr0,
1311 .Sram,
13311312 .Jmpcall,
13321313 .Addsubiw,
1333 .Lpm,
1334 .Avr6,
1335 },
1336 CpuInfo(@This()).create(.Atmega256rfr2, "atmega256rfr2", &[_]FeatureType {
1337 .Ijmpcall,
1338 .Elpmx,
1339 .Movw,
13401314 .Mul,
1341 .Sram,
1315 .Lpmx,
1316 .Ijmpcall,
13421317 .Break,
1343 .Spm,
1318 .Avr6,
1319 }),
1320 CpuInfo(@This(), FeatureType).create(.Atmega2564rfr2, "atmega2564rfr2", &[_]FeatureType {
1321 .Lpm,
13441322 .Elpm,
1345 .Lpmx,
1323 .Movw,
1324 .Elpmx,
1325 .Spm,
13461326 .Avr0,
1327 .Sram,
13471328 .Jmpcall,
13481329 .Addsubiw,
1349 .Lpm,
1350 .Avr6,
1351 },
1352 CpuInfo(@This()).create(.Atmega32, "atmega32", &[_]FeatureType {
1353 .Ijmpcall,
1354 .Movw,
13551330 .Mul,
1356 .Sram,
1331 .Lpmx,
1332 .Ijmpcall,
13571333 .Break,
1334 .Avr6,
1335 }),
1336 CpuInfo(@This(), FeatureType).create(.Atmega256rfr2, "atmega256rfr2", &[_]FeatureType {
1337 .Lpm,
1338 .Elpm,
1339 .Movw,
1340 .Elpmx,
13581341 .Spm,
1359 .Lpmx,
13601342 .Avr0,
1343 .Sram,
13611344 .Jmpcall,
13621345 .Addsubiw,
1363 .Lpm,
1364 .Avr5,
1365 },
1366 CpuInfo(@This()).create(.Atmega323, "atmega323", &[_]FeatureType {
1367 .Ijmpcall,
1368 .Movw,
13691346 .Mul,
1370 .Sram,
1347 .Lpmx,
1348 .Ijmpcall,
13711349 .Break,
1350 .Avr6,
1351 }),
1352 CpuInfo(@This(), FeatureType).create(.Atmega32, "atmega32", &[_]FeatureType {
1353 .Lpm,
1354 .Movw,
13721355 .Spm,
1373 .Lpmx,
13741356 .Avr0,
1357 .Sram,
13751358 .Jmpcall,
13761359 .Addsubiw,
1377 .Lpm,
1378 .Avr5,
1379 },
1380 CpuInfo(@This()).create(.Atmega324a, "atmega324a", &[_]FeatureType {
1381 .Ijmpcall,
1382 .Movw,
13831360 .Mul,
1384 .Sram,
1361 .Lpmx,
1362 .Ijmpcall,
13851363 .Break,
1364 .Avr5,
1365 }),
1366 CpuInfo(@This(), FeatureType).create(.Atmega323, "atmega323", &[_]FeatureType {
1367 .Lpm,
1368 .Movw,
13861369 .Spm,
1387 .Lpmx,
13881370 .Avr0,
1371 .Sram,
13891372 .Jmpcall,
13901373 .Addsubiw,
1391 .Lpm,
1392 .Avr5,
1393 },
1394 CpuInfo(@This()).create(.Atmega324p, "atmega324p", &[_]FeatureType {
1395 .Ijmpcall,
1396 .Movw,
13971374 .Mul,
1398 .Sram,
1375 .Lpmx,
1376 .Ijmpcall,
13991377 .Break,
1378 .Avr5,
1379 }),
1380 CpuInfo(@This(), FeatureType).create(.Atmega324a, "atmega324a", &[_]FeatureType {
1381 .Lpm,
1382 .Movw,
14001383 .Spm,
1401 .Lpmx,
14021384 .Avr0,
1385 .Sram,
14031386 .Jmpcall,
14041387 .Addsubiw,
1405 .Lpm,
1406 .Avr5,
1407 },
1408 CpuInfo(@This()).create(.Atmega324pa, "atmega324pa", &[_]FeatureType {
1409 .Ijmpcall,
1410 .Movw,
14111388 .Mul,
1412 .Sram,
1389 .Lpmx,
1390 .Ijmpcall,
14131391 .Break,
1392 .Avr5,
1393 }),
1394 CpuInfo(@This(), FeatureType).create(.Atmega324p, "atmega324p", &[_]FeatureType {
1395 .Lpm,
1396 .Movw,
14141397 .Spm,
1415 .Lpmx,
14161398 .Avr0,
1399 .Sram,
14171400 .Jmpcall,
14181401 .Addsubiw,
1419 .Lpm,
1420 .Avr5,
1421 },
1422 CpuInfo(@This()).create(.Atmega325, "atmega325", &[_]FeatureType {
1423 .Ijmpcall,
1424 .Movw,
14251402 .Mul,
1426 .Sram,
1403 .Lpmx,
1404 .Ijmpcall,
14271405 .Break,
1406 .Avr5,
1407 }),
1408 CpuInfo(@This(), FeatureType).create(.Atmega324pa, "atmega324pa", &[_]FeatureType {
1409 .Lpm,
1410 .Movw,
14281411 .Spm,
1429 .Lpmx,
14301412 .Avr0,
1413 .Sram,
14311414 .Jmpcall,
14321415 .Addsubiw,
1433 .Lpm,
1434 .Avr5,
1435 },
1436 CpuInfo(@This()).create(.Atmega3250, "atmega3250", &[_]FeatureType {
1437 .Ijmpcall,
1438 .Movw,
14391416 .Mul,
1440 .Sram,
1417 .Lpmx,
1418 .Ijmpcall,
14411419 .Break,
1420 .Avr5,
1421 }),
1422 CpuInfo(@This(), FeatureType).create(.Atmega325, "atmega325", &[_]FeatureType {
1423 .Lpm,
1424 .Movw,
14421425 .Spm,
1443 .Lpmx,
14441426 .Avr0,
1427 .Sram,
14451428 .Jmpcall,
14461429 .Addsubiw,
1447 .Lpm,
1448 .Avr5,
1449 },
1450 CpuInfo(@This()).create(.Atmega3250a, "atmega3250a", &[_]FeatureType {
1451 .Ijmpcall,
1452 .Movw,
14531430 .Mul,
1454 .Sram,
1431 .Lpmx,
1432 .Ijmpcall,
14551433 .Break,
1434 .Avr5,
1435 }),
1436 CpuInfo(@This(), FeatureType).create(.Atmega3250, "atmega3250", &[_]FeatureType {
1437 .Lpm,
1438 .Movw,
14561439 .Spm,
1457 .Lpmx,
14581440 .Avr0,
1441 .Sram,
14591442 .Jmpcall,
14601443 .Addsubiw,
1461 .Lpm,
1462 .Avr5,
1463 },
1464 CpuInfo(@This()).create(.Atmega3250p, "atmega3250p", &[_]FeatureType {
1465 .Ijmpcall,
1466 .Movw,
14671444 .Mul,
1468 .Sram,
1469 .Break,
1470 .Spm,
14711445 .Lpmx,
1472 .Avr0,
1473 .Jmpcall,
1474 .Addsubiw,
1475 .Lpm,
1476 .Avr5,
1477 },
1478 CpuInfo(@This()).create(.Atmega3250pa, "atmega3250pa", &[_]FeatureType {
14791446 .Ijmpcall,
1480 .Movw,
1481 .Mul,
1482 .Sram,
14831447 .Break,
1448 .Avr5,
1449 }),
1450 CpuInfo(@This(), FeatureType).create(.Atmega3250a, "atmega3250a", &[_]FeatureType {
1451 .Lpm,
1452 .Movw,
14841453 .Spm,
1485 .Lpmx,
14861454 .Avr0,
1455 .Sram,
14871456 .Jmpcall,
14881457 .Addsubiw,
1489 .Lpm,
1490 .Avr5,
1491 },
1492 CpuInfo(@This()).create(.Atmega325a, "atmega325a", &[_]FeatureType {
1493 .Ijmpcall,
1494 .Movw,
14951458 .Mul,
1496 .Sram,
1459 .Lpmx,
1460 .Ijmpcall,
14971461 .Break,
1462 .Avr5,
1463 }),
1464 CpuInfo(@This(), FeatureType).create(.Atmega3250p, "atmega3250p", &[_]FeatureType {
1465 .Lpm,
1466 .Movw,
14981467 .Spm,
1499 .Lpmx,
15001468 .Avr0,
1469 .Sram,
15011470 .Jmpcall,
15021471 .Addsubiw,
1503 .Lpm,
1504 .Avr5,
1505 },
1506 CpuInfo(@This()).create(.Atmega325p, "atmega325p", &[_]FeatureType {
1507 .Ijmpcall,
1508 .Movw,
15091472 .Mul,
1510 .Sram,
1473 .Lpmx,
1474 .Ijmpcall,
15111475 .Break,
1476 .Avr5,
1477 }),
1478 CpuInfo(@This(), FeatureType).create(.Atmega3250pa, "atmega3250pa", &[_]FeatureType {
1479 .Lpm,
1480 .Movw,
15121481 .Spm,
1513 .Lpmx,
15141482 .Avr0,
1483 .Sram,
15151484 .Jmpcall,
15161485 .Addsubiw,
1517 .Lpm,
1518 .Avr5,
1519 },
1520 CpuInfo(@This()).create(.Atmega325pa, "atmega325pa", &[_]FeatureType {
1521 .Ijmpcall,
1522 .Movw,
15231486 .Mul,
1524 .Sram,
1487 .Lpmx,
1488 .Ijmpcall,
15251489 .Break,
1490 .Avr5,
1491 }),
1492 CpuInfo(@This(), FeatureType).create(.Atmega325a, "atmega325a", &[_]FeatureType {
1493 .Lpm,
1494 .Movw,
15261495 .Spm,
1527 .Lpmx,
15281496 .Avr0,
1497 .Sram,
15291498 .Jmpcall,
15301499 .Addsubiw,
1531 .Lpm,
1532 .Avr5,
1533 },
1534 CpuInfo(@This()).create(.Atmega328, "atmega328", &[_]FeatureType {
1535 .Ijmpcall,
1536 .Movw,
15371500 .Mul,
1538 .Sram,
1501 .Lpmx,
1502 .Ijmpcall,
15391503 .Break,
1504 .Avr5,
1505 }),
1506 CpuInfo(@This(), FeatureType).create(.Atmega325p, "atmega325p", &[_]FeatureType {
1507 .Lpm,
1508 .Movw,
15401509 .Spm,
1541 .Lpmx,
15421510 .Avr0,
1511 .Sram,
15431512 .Jmpcall,
15441513 .Addsubiw,
1545 .Lpm,
1546 .Avr5,
1547 },
1548 CpuInfo(@This()).create(.Atmega328p, "atmega328p", &[_]FeatureType {
1549 .Ijmpcall,
1550 .Movw,
15511514 .Mul,
1552 .Sram,
1515 .Lpmx,
1516 .Ijmpcall,
15531517 .Break,
1518 .Avr5,
1519 }),
1520 CpuInfo(@This(), FeatureType).create(.Atmega325pa, "atmega325pa", &[_]FeatureType {
1521 .Lpm,
1522 .Movw,
15541523 .Spm,
1555 .Lpmx,
15561524 .Avr0,
1525 .Sram,
15571526 .Jmpcall,
15581527 .Addsubiw,
1559 .Lpm,
1560 .Avr5,
1561 },
1562 CpuInfo(@This()).create(.Atmega329, "atmega329", &[_]FeatureType {
1563 .Ijmpcall,
1564 .Movw,
15651528 .Mul,
1566 .Sram,
1529 .Lpmx,
1530 .Ijmpcall,
15671531 .Break,
1532 .Avr5,
1533 }),
1534 CpuInfo(@This(), FeatureType).create(.Atmega328, "atmega328", &[_]FeatureType {
1535 .Lpm,
1536 .Movw,
15681537 .Spm,
1569 .Lpmx,
15701538 .Avr0,
1539 .Sram,
15711540 .Jmpcall,
15721541 .Addsubiw,
1573 .Lpm,
1574 .Avr5,
1575 },
1576 CpuInfo(@This()).create(.Atmega3290, "atmega3290", &[_]FeatureType {
1577 .Ijmpcall,
1578 .Movw,
15791542 .Mul,
1580 .Sram,
1543 .Lpmx,
1544 .Ijmpcall,
15811545 .Break,
1546 .Avr5,
1547 }),
1548 CpuInfo(@This(), FeatureType).create(.Atmega328p, "atmega328p", &[_]FeatureType {
1549 .Lpm,
1550 .Movw,
15821551 .Spm,
1583 .Lpmx,
15841552 .Avr0,
1553 .Sram,
15851554 .Jmpcall,
15861555 .Addsubiw,
1587 .Lpm,
1588 .Avr5,
1589 },
1590 CpuInfo(@This()).create(.Atmega3290a, "atmega3290a", &[_]FeatureType {
1591 .Ijmpcall,
1592 .Movw,
15931556 .Mul,
1594 .Sram,
1557 .Lpmx,
1558 .Ijmpcall,
15951559 .Break,
1560 .Avr5,
1561 }),
1562 CpuInfo(@This(), FeatureType).create(.Atmega329, "atmega329", &[_]FeatureType {
1563 .Lpm,
1564 .Movw,
15961565 .Spm,
1597 .Lpmx,
15981566 .Avr0,
1567 .Sram,
15991568 .Jmpcall,
16001569 .Addsubiw,
1601 .Lpm,
1602 .Avr5,
1603 },
1604 CpuInfo(@This()).create(.Atmega3290p, "atmega3290p", &[_]FeatureType {
1605 .Ijmpcall,
1606 .Movw,
16071570 .Mul,
1608 .Sram,
1571 .Lpmx,
1572 .Ijmpcall,
16091573 .Break,
1574 .Avr5,
1575 }),
1576 CpuInfo(@This(), FeatureType).create(.Atmega3290, "atmega3290", &[_]FeatureType {
1577 .Lpm,
1578 .Movw,
16101579 .Spm,
1611 .Lpmx,
16121580 .Avr0,
1581 .Sram,
16131582 .Jmpcall,
16141583 .Addsubiw,
1615 .Lpm,
1616 .Avr5,
1617 },
1618 CpuInfo(@This()).create(.Atmega3290pa, "atmega3290pa", &[_]FeatureType {
1619 .Ijmpcall,
1620 .Movw,
16211584 .Mul,
1622 .Sram,
1585 .Lpmx,
1586 .Ijmpcall,
16231587 .Break,
1588 .Avr5,
1589 }),
1590 CpuInfo(@This(), FeatureType).create(.Atmega3290a, "atmega3290a", &[_]FeatureType {
1591 .Lpm,
1592 .Movw,
16241593 .Spm,
1625 .Lpmx,
16261594 .Avr0,
1595 .Sram,
16271596 .Jmpcall,
16281597 .Addsubiw,
1629 .Lpm,
1630 .Avr5,
1631 },
1632 CpuInfo(@This()).create(.Atmega329a, "atmega329a", &[_]FeatureType {
1633 .Ijmpcall,
1634 .Movw,
16351598 .Mul,
1636 .Sram,
1599 .Lpmx,
1600 .Ijmpcall,
16371601 .Break,
1602 .Avr5,
1603 }),
1604 CpuInfo(@This(), FeatureType).create(.Atmega3290p, "atmega3290p", &[_]FeatureType {
1605 .Lpm,
1606 .Movw,
16381607 .Spm,
1639 .Lpmx,
16401608 .Avr0,
1609 .Sram,
16411610 .Jmpcall,
16421611 .Addsubiw,
1643 .Lpm,
1644 .Avr5,
1645 },
1646 CpuInfo(@This()).create(.Atmega329p, "atmega329p", &[_]FeatureType {
1647 .Ijmpcall,
1648 .Movw,
16491612 .Mul,
1650 .Sram,
1613 .Lpmx,
1614 .Ijmpcall,
16511615 .Break,
1616 .Avr5,
1617 }),
1618 CpuInfo(@This(), FeatureType).create(.Atmega3290pa, "atmega3290pa", &[_]FeatureType {
1619 .Lpm,
1620 .Movw,
16521621 .Spm,
1653 .Lpmx,
16541622 .Avr0,
1623 .Sram,
16551624 .Jmpcall,
16561625 .Addsubiw,
1657 .Lpm,
1658 .Avr5,
1659 },
1660 CpuInfo(@This()).create(.Atmega329pa, "atmega329pa", &[_]FeatureType {
1661 .Ijmpcall,
1662 .Movw,
16631626 .Mul,
1664 .Sram,
1627 .Lpmx,
1628 .Ijmpcall,
16651629 .Break,
1630 .Avr5,
1631 }),
1632 CpuInfo(@This(), FeatureType).create(.Atmega329a, "atmega329a", &[_]FeatureType {
1633 .Lpm,
1634 .Movw,
16661635 .Spm,
1667 .Lpmx,
16681636 .Avr0,
1637 .Sram,
16691638 .Jmpcall,
16701639 .Addsubiw,
1671 .Lpm,
1672 .Avr5,
1673 },
1674 CpuInfo(@This()).create(.Atmega32a, "atmega32a", &[_]FeatureType {
1675 .Ijmpcall,
1676 .Movw,
16771640 .Mul,
1678 .Sram,
1641 .Lpmx,
1642 .Ijmpcall,
16791643 .Break,
1644 .Avr5,
1645 }),
1646 CpuInfo(@This(), FeatureType).create(.Atmega329p, "atmega329p", &[_]FeatureType {
1647 .Lpm,
1648 .Movw,
16801649 .Spm,
1681 .Lpmx,
16821650 .Avr0,
1651 .Sram,
16831652 .Jmpcall,
16841653 .Addsubiw,
1685 .Lpm,
1686 .Avr5,
1687 },
1688 CpuInfo(@This()).create(.Atmega32c1, "atmega32c1", &[_]FeatureType {
1689 .Ijmpcall,
1690 .Movw,
16911654 .Mul,
1692 .Sram,
1655 .Lpmx,
1656 .Ijmpcall,
16931657 .Break,
1658 .Avr5,
1659 }),
1660 CpuInfo(@This(), FeatureType).create(.Atmega329pa, "atmega329pa", &[_]FeatureType {
1661 .Lpm,
1662 .Movw,
16941663 .Spm,
1695 .Lpmx,
16961664 .Avr0,
1665 .Sram,
16971666 .Jmpcall,
16981667 .Addsubiw,
1699 .Lpm,
1700 .Avr5,
1701 },
1702 CpuInfo(@This()).create(.Atmega32hvb, "atmega32hvb", &[_]FeatureType {
1703 .Ijmpcall,
1704 .Movw,
17051668 .Mul,
1706 .Sram,
1669 .Lpmx,
1670 .Ijmpcall,
17071671 .Break,
1672 .Avr5,
1673 }),
1674 CpuInfo(@This(), FeatureType).create(.Atmega32a, "atmega32a", &[_]FeatureType {
1675 .Lpm,
1676 .Movw,
17081677 .Spm,
1709 .Lpmx,
17101678 .Avr0,
1679 .Sram,
17111680 .Jmpcall,
17121681 .Addsubiw,
1713 .Lpm,
1714 .Avr5,
1715 },
1716 CpuInfo(@This()).create(.Atmega32hvbrevb, "atmega32hvbrevb", &[_]FeatureType {
1717 .Ijmpcall,
1718 .Movw,
17191682 .Mul,
1720 .Sram,
1683 .Lpmx,
1684 .Ijmpcall,
17211685 .Break,
1686 .Avr5,
1687 }),
1688 CpuInfo(@This(), FeatureType).create(.Atmega32c1, "atmega32c1", &[_]FeatureType {
1689 .Lpm,
1690 .Movw,
17221691 .Spm,
1723 .Lpmx,
17241692 .Avr0,
1693 .Sram,
17251694 .Jmpcall,
17261695 .Addsubiw,
1727 .Lpm,
1728 .Avr5,
1729 },
1730 CpuInfo(@This()).create(.Atmega32m1, "atmega32m1", &[_]FeatureType {
1731 .Ijmpcall,
1732 .Movw,
17331696 .Mul,
1734 .Sram,
1697 .Lpmx,
1698 .Ijmpcall,
17351699 .Break,
1700 .Avr5,
1701 }),
1702 CpuInfo(@This(), FeatureType).create(.Atmega32hvb, "atmega32hvb", &[_]FeatureType {
1703 .Lpm,
1704 .Movw,
17361705 .Spm,
1737 .Lpmx,
17381706 .Avr0,
1707 .Sram,
17391708 .Jmpcall,
17401709 .Addsubiw,
1741 .Lpm,
1742 .Avr5,
1743 },
1744 CpuInfo(@This()).create(.Atmega32u2, "atmega32u2", &[_]FeatureType {
1710 .Mul,
1711 .Lpmx,
17451712 .Ijmpcall,
1746 .Movw,
1747 .Sram,
17481713 .Break,
1714 .Avr5,
1715 }),
1716 CpuInfo(@This(), FeatureType).create(.Atmega32hvbrevb, "atmega32hvbrevb", &[_]FeatureType {
1717 .Lpm,
1718 .Movw,
17491719 .Spm,
1750 .Lpmx,
17511720 .Avr0,
1721 .Sram,
17521722 .Jmpcall,
17531723 .Addsubiw,
1754 .Lpm,
1755 .Avr35,
1756 },
1757 CpuInfo(@This()).create(.Atmega32u4, "atmega32u4", &[_]FeatureType {
1758 .Ijmpcall,
1759 .Movw,
17601724 .Mul,
1761 .Sram,
1725 .Lpmx,
1726 .Ijmpcall,
17621727 .Break,
1728 .Avr5,
1729 }),
1730 CpuInfo(@This(), FeatureType).create(.Atmega32m1, "atmega32m1", &[_]FeatureType {
1731 .Lpm,
1732 .Movw,
17631733 .Spm,
1764 .Lpmx,
17651734 .Avr0,
1735 .Sram,
17661736 .Jmpcall,
17671737 .Addsubiw,
1768 .Lpm,
1769 .Avr5,
1770 },
1771 CpuInfo(@This()).create(.Atmega32u6, "atmega32u6", &[_]FeatureType {
1772 .Ijmpcall,
1773 .Movw,
17741738 .Mul,
1775 .Sram,
1739 .Lpmx,
1740 .Ijmpcall,
17761741 .Break,
1742 .Avr5,
1743 }),
1744 CpuInfo(@This(), FeatureType).create(.Atmega32u2, "atmega32u2", &[_]FeatureType {
1745 .Lpm,
1746 .Movw,
17771747 .Spm,
1778 .Lpmx,
17791748 .Avr0,
1749 .Sram,
17801750 .Jmpcall,
17811751 .Addsubiw,
1782 .Lpm,
1783 .Avr5,
1784 },
1785 CpuInfo(@This()).create(.Atmega406, "atmega406", &[_]FeatureType {
1752 .Lpmx,
17861753 .Ijmpcall,
1787 .Movw,
1788 .Mul,
1789 .Sram,
17901754 .Break,
1755 .Avr35,
1756 }),
1757 CpuInfo(@This(), FeatureType).create(.Atmega32u4, "atmega32u4", &[_]FeatureType {
1758 .Lpm,
1759 .Movw,
17911760 .Spm,
1792 .Lpmx,
17931761 .Avr0,
1762 .Sram,
17941763 .Jmpcall,
17951764 .Addsubiw,
1796 .Lpm,
1797 .Avr5,
1798 },
1799 CpuInfo(@This()).create(.Atmega48, "atmega48", &[_]FeatureType {
1800 .Ijmpcall,
1801 .Movw,
18021765 .Mul,
1803 .Sram,
1766 .Lpmx,
1767 .Ijmpcall,
18041768 .Break,
1769 .Avr5,
1770 }),
1771 CpuInfo(@This(), FeatureType).create(.Atmega32u6, "atmega32u6", &[_]FeatureType {
1772 .Lpm,
1773 .Movw,
18051774 .Spm,
1806 .Lpmx,
18071775 .Avr0,
1776 .Sram,
1777 .Jmpcall,
18081778 .Addsubiw,
1809 .Lpm,
1810 .Avr4,
1811 },
1812 CpuInfo(@This()).create(.Atmega48a, "atmega48a", &[_]FeatureType {
1813 .Ijmpcall,
1814 .Movw,
18151779 .Mul,
1816 .Sram,
1780 .Lpmx,
1781 .Ijmpcall,
18171782 .Break,
1783 .Avr5,
1784 }),
1785 CpuInfo(@This(), FeatureType).create(.Atmega406, "atmega406", &[_]FeatureType {
1786 .Lpm,
1787 .Movw,
18181788 .Spm,
1819 .Lpmx,
18201789 .Avr0,
1790 .Sram,
1791 .Jmpcall,
18211792 .Addsubiw,
1822 .Lpm,
1823 .Avr4,
1824 },
1825 CpuInfo(@This()).create(.Atmega48p, "atmega48p", &[_]FeatureType {
1826 .Ijmpcall,
1827 .Movw,
18281793 .Mul,
1829 .Sram,
1794 .Lpmx,
1795 .Ijmpcall,
18301796 .Break,
1797 .Avr5,
1798 }),
1799 CpuInfo(@This(), FeatureType).create(.Atmega48, "atmega48", &[_]FeatureType {
1800 .Lpm,
1801 .Movw,
18311802 .Spm,
1832 .Lpmx,
18331803 .Avr0,
1804 .Sram,
18341805 .Addsubiw,
1835 .Lpm,
1836 .Avr4,
1837 },
1838 CpuInfo(@This()).create(.Atmega48pa, "atmega48pa", &[_]FeatureType {
1839 .Ijmpcall,
1840 .Movw,
18411806 .Mul,
1842 .Sram,
1807 .Lpmx,
1808 .Ijmpcall,
18431809 .Break,
1810 .Avr4,
1811 }),
1812 CpuInfo(@This(), FeatureType).create(.Atmega48a, "atmega48a", &[_]FeatureType {
1813 .Lpm,
1814 .Movw,
18441815 .Spm,
1845 .Lpmx,
18461816 .Avr0,
1817 .Sram,
18471818 .Addsubiw,
1848 .Lpm,
1849 .Avr4,
1850 },
1851 CpuInfo(@This()).create(.Atmega64, "atmega64", &[_]FeatureType {
1852 .Ijmpcall,
1853 .Movw,
18541819 .Mul,
1855 .Sram,
1820 .Lpmx,
1821 .Ijmpcall,
18561822 .Break,
1823 .Avr4,
1824 }),
1825 CpuInfo(@This(), FeatureType).create(.Atmega48p, "atmega48p", &[_]FeatureType {
1826 .Lpm,
1827 .Movw,
18571828 .Spm,
1858 .Lpmx,
18591829 .Avr0,
1860 .Jmpcall,
1830 .Sram,
18611831 .Addsubiw,
1862 .Lpm,
1863 .Avr5,
1864 },
1865 CpuInfo(@This()).create(.Atmega640, "atmega640", &[_]FeatureType {
1866 .Ijmpcall,
1867 .Movw,
18681832 .Mul,
1869 .Sram,
1833 .Lpmx,
1834 .Ijmpcall,
18701835 .Break,
1836 .Avr4,
1837 }),
1838 CpuInfo(@This(), FeatureType).create(.Atmega48pa, "atmega48pa", &[_]FeatureType {
1839 .Lpm,
1840 .Movw,
18711841 .Spm,
1872 .Lpmx,
18731842 .Avr0,
1874 .Jmpcall,
1843 .Sram,
18751844 .Addsubiw,
1876 .Lpm,
1877 .Avr5,
1878 },
1879 CpuInfo(@This()).create(.Atmega644, "atmega644", &[_]FeatureType {
1880 .Ijmpcall,
1881 .Movw,
18821845 .Mul,
1883 .Sram,
1846 .Lpmx,
1847 .Ijmpcall,
18841848 .Break,
1849 .Avr4,
1850 }),
1851 CpuInfo(@This(), FeatureType).create(.Atmega64, "atmega64", &[_]FeatureType {
1852 .Lpm,
1853 .Movw,
18851854 .Spm,
1886 .Lpmx,
18871855 .Avr0,
1856 .Sram,
18881857 .Jmpcall,
18891858 .Addsubiw,
1890 .Lpm,
1891 .Avr5,
1892 },
1893 CpuInfo(@This()).create(.Atmega644a, "atmega644a", &[_]FeatureType {
1894 .Ijmpcall,
1895 .Movw,
18961859 .Mul,
1897 .Sram,
1860 .Lpmx,
1861 .Ijmpcall,
18981862 .Break,
1863 .Avr5,
1864 }),
1865 CpuInfo(@This(), FeatureType).create(.Atmega640, "atmega640", &[_]FeatureType {
1866 .Lpm,
1867 .Movw,
18991868 .Spm,
1900 .Lpmx,
19011869 .Avr0,
1870 .Sram,
19021871 .Jmpcall,
19031872 .Addsubiw,
1904 .Lpm,
1905 .Avr5,
1906 },
1907 CpuInfo(@This()).create(.Atmega644p, "atmega644p", &[_]FeatureType {
1908 .Ijmpcall,
1909 .Movw,
19101873 .Mul,
1911 .Sram,
1874 .Lpmx,
1875 .Ijmpcall,
19121876 .Break,
1877 .Avr5,
1878 }),
1879 CpuInfo(@This(), FeatureType).create(.Atmega644, "atmega644", &[_]FeatureType {
1880 .Lpm,
1881 .Movw,
19131882 .Spm,
1914 .Lpmx,
19151883 .Avr0,
1884 .Sram,
19161885 .Jmpcall,
19171886 .Addsubiw,
1918 .Lpm,
1919 .Avr5,
1920 },
1921 CpuInfo(@This()).create(.Atmega644pa, "atmega644pa", &[_]FeatureType {
1922 .Ijmpcall,
1923 .Movw,
19241887 .Mul,
1925 .Sram,
1888 .Lpmx,
1889 .Ijmpcall,
19261890 .Break,
1891 .Avr5,
1892 }),
1893 CpuInfo(@This(), FeatureType).create(.Atmega644a, "atmega644a", &[_]FeatureType {
1894 .Lpm,
1895 .Movw,
19271896 .Spm,
1928 .Lpmx,
19291897 .Avr0,
1898 .Sram,
19301899 .Jmpcall,
19311900 .Addsubiw,
1932 .Lpm,
1933 .Avr5,
1934 },
1935 CpuInfo(@This()).create(.Atmega644rfr2, "atmega644rfr2", &[_]FeatureType {
1936 .Ijmpcall,
1937 .Movw,
19381901 .Mul,
1939 .Sram,
1902 .Lpmx,
1903 .Ijmpcall,
19401904 .Break,
1905 .Avr5,
1906 }),
1907 CpuInfo(@This(), FeatureType).create(.Atmega644p, "atmega644p", &[_]FeatureType {
1908 .Lpm,
1909 .Movw,
19411910 .Spm,
1942 .Lpmx,
19431911 .Avr0,
1912 .Sram,
19441913 .Jmpcall,
19451914 .Addsubiw,
1946 .Lpm,
1947 .Avr5,
1948 },
1949 CpuInfo(@This()).create(.Atmega645, "atmega645", &[_]FeatureType {
1950 .Ijmpcall,
1951 .Movw,
19521915 .Mul,
1953 .Sram,
1916 .Lpmx,
1917 .Ijmpcall,
19541918 .Break,
1919 .Avr5,
1920 }),
1921 CpuInfo(@This(), FeatureType).create(.Atmega644pa, "atmega644pa", &[_]FeatureType {
1922 .Lpm,
1923 .Movw,
19551924 .Spm,
1956 .Lpmx,
19571925 .Avr0,
1926 .Sram,
19581927 .Jmpcall,
19591928 .Addsubiw,
1960 .Lpm,
1961 .Avr5,
1962 },
1963 CpuInfo(@This()).create(.Atmega6450, "atmega6450", &[_]FeatureType {
1964 .Ijmpcall,
1965 .Movw,
19661929 .Mul,
1967 .Sram,
1930 .Lpmx,
1931 .Ijmpcall,
19681932 .Break,
1933 .Avr5,
1934 }),
1935 CpuInfo(@This(), FeatureType).create(.Atmega644rfr2, "atmega644rfr2", &[_]FeatureType {
1936 .Lpm,
1937 .Movw,
19691938 .Spm,
1970 .Lpmx,
19711939 .Avr0,
1940 .Sram,
19721941 .Jmpcall,
19731942 .Addsubiw,
1974 .Lpm,
1975 .Avr5,
1976 },
1977 CpuInfo(@This()).create(.Atmega6450a, "atmega6450a", &[_]FeatureType {
1978 .Ijmpcall,
1979 .Movw,
19801943 .Mul,
1981 .Sram,
1944 .Lpmx,
1945 .Ijmpcall,
19821946 .Break,
1947 .Avr5,
1948 }),
1949 CpuInfo(@This(), FeatureType).create(.Atmega645, "atmega645", &[_]FeatureType {
1950 .Lpm,
1951 .Movw,
19831952 .Spm,
1984 .Lpmx,
19851953 .Avr0,
1954 .Sram,
19861955 .Jmpcall,
19871956 .Addsubiw,
1988 .Lpm,
1989 .Avr5,
1990 },
1991 CpuInfo(@This()).create(.Atmega6450p, "atmega6450p", &[_]FeatureType {
1992 .Ijmpcall,
1993 .Movw,
19941957 .Mul,
1995 .Sram,
1958 .Lpmx,
1959 .Ijmpcall,
19961960 .Break,
1961 .Avr5,
1962 }),
1963 CpuInfo(@This(), FeatureType).create(.Atmega6450, "atmega6450", &[_]FeatureType {
1964 .Lpm,
1965 .Movw,
19971966 .Spm,
1998 .Lpmx,
19991967 .Avr0,
1968 .Sram,
20001969 .Jmpcall,
20011970 .Addsubiw,
2002 .Lpm,
2003 .Avr5,
2004 },
2005 CpuInfo(@This()).create(.Atmega645a, "atmega645a", &[_]FeatureType {
2006 .Ijmpcall,
2007 .Movw,
20081971 .Mul,
2009 .Sram,
1972 .Lpmx,
1973 .Ijmpcall,
20101974 .Break,
1975 .Avr5,
1976 }),
1977 CpuInfo(@This(), FeatureType).create(.Atmega6450a, "atmega6450a", &[_]FeatureType {
1978 .Lpm,
1979 .Movw,
20111980 .Spm,
2012 .Lpmx,
20131981 .Avr0,
1982 .Sram,
20141983 .Jmpcall,
20151984 .Addsubiw,
2016 .Lpm,
2017 .Avr5,
2018 },
2019 CpuInfo(@This()).create(.Atmega645p, "atmega645p", &[_]FeatureType {
2020 .Ijmpcall,
2021 .Movw,
20221985 .Mul,
2023 .Sram,
1986 .Lpmx,
1987 .Ijmpcall,
20241988 .Break,
1989 .Avr5,
1990 }),
1991 CpuInfo(@This(), FeatureType).create(.Atmega6450p, "atmega6450p", &[_]FeatureType {
1992 .Lpm,
1993 .Movw,
20251994 .Spm,
2026 .Lpmx,
20271995 .Avr0,
1996 .Sram,
20281997 .Jmpcall,
20291998 .Addsubiw,
2030 .Lpm,
2031 .Avr5,
2032 },
2033 CpuInfo(@This()).create(.Atmega649, "atmega649", &[_]FeatureType {
2034 .Ijmpcall,
2035 .Movw,
20361999 .Mul,
2037 .Sram,
2000 .Lpmx,
2001 .Ijmpcall,
20382002 .Break,
2003 .Avr5,
2004 }),
2005 CpuInfo(@This(), FeatureType).create(.Atmega645a, "atmega645a", &[_]FeatureType {
2006 .Lpm,
2007 .Movw,
20392008 .Spm,
2040 .Lpmx,
20412009 .Avr0,
2010 .Sram,
20422011 .Jmpcall,
20432012 .Addsubiw,
2044 .Lpm,
2045 .Avr5,
2046 },
2047 CpuInfo(@This()).create(.Atmega6490, "atmega6490", &[_]FeatureType {
2048 .Ijmpcall,
2049 .Movw,
20502013 .Mul,
2051 .Sram,
2014 .Lpmx,
2015 .Ijmpcall,
20522016 .Break,
2017 .Avr5,
2018 }),
2019 CpuInfo(@This(), FeatureType).create(.Atmega645p, "atmega645p", &[_]FeatureType {
2020 .Lpm,
2021 .Movw,
20532022 .Spm,
2054 .Lpmx,
20552023 .Avr0,
2024 .Sram,
20562025 .Jmpcall,
20572026 .Addsubiw,
2058 .Lpm,
2059 .Avr5,
2060 },
2061 CpuInfo(@This()).create(.Atmega6490a, "atmega6490a", &[_]FeatureType {
2062 .Ijmpcall,
2063 .Movw,
20642027 .Mul,
2065 .Sram,
2028 .Lpmx,
2029 .Ijmpcall,
20662030 .Break,
2031 .Avr5,
2032 }),
2033 CpuInfo(@This(), FeatureType).create(.Atmega649, "atmega649", &[_]FeatureType {
2034 .Lpm,
2035 .Movw,
20672036 .Spm,
2068 .Lpmx,
20692037 .Avr0,
2038 .Sram,
20702039 .Jmpcall,
20712040 .Addsubiw,
2072 .Lpm,
2073 .Avr5,
2074 },
2075 CpuInfo(@This()).create(.Atmega6490p, "atmega6490p", &[_]FeatureType {
2076 .Ijmpcall,
2077 .Movw,
20782041 .Mul,
2079 .Sram,
2042 .Lpmx,
2043 .Ijmpcall,
20802044 .Break,
2045 .Avr5,
2046 }),
2047 CpuInfo(@This(), FeatureType).create(.Atmega6490, "atmega6490", &[_]FeatureType {
2048 .Lpm,
2049 .Movw,
20812050 .Spm,
2082 .Lpmx,
20832051 .Avr0,
2052 .Sram,
20842053 .Jmpcall,
20852054 .Addsubiw,
2086 .Lpm,
2087 .Avr5,
2088 },
2089 CpuInfo(@This()).create(.Atmega649a, "atmega649a", &[_]FeatureType {
2090 .Ijmpcall,
2091 .Movw,
20922055 .Mul,
2093 .Sram,
2056 .Lpmx,
2057 .Ijmpcall,
20942058 .Break,
2059 .Avr5,
2060 }),
2061 CpuInfo(@This(), FeatureType).create(.Atmega6490a, "atmega6490a", &[_]FeatureType {
2062 .Lpm,
2063 .Movw,
20952064 .Spm,
2096 .Lpmx,
20972065 .Avr0,
2066 .Sram,
20982067 .Jmpcall,
20992068 .Addsubiw,
2100 .Lpm,
2101 .Avr5,
2102 },
2103 CpuInfo(@This()).create(.Atmega649p, "atmega649p", &[_]FeatureType {
2104 .Ijmpcall,
2105 .Movw,
21062069 .Mul,
2107 .Sram,
2070 .Lpmx,
2071 .Ijmpcall,
21082072 .Break,
2073 .Avr5,
2074 }),
2075 CpuInfo(@This(), FeatureType).create(.Atmega6490p, "atmega6490p", &[_]FeatureType {
2076 .Lpm,
2077 .Movw,
21092078 .Spm,
2110 .Lpmx,
21112079 .Avr0,
2080 .Sram,
21122081 .Jmpcall,
21132082 .Addsubiw,
2114 .Lpm,
2115 .Avr5,
2116 },
2117 CpuInfo(@This()).create(.Atmega64a, "atmega64a", &[_]FeatureType {
2118 .Ijmpcall,
2119 .Movw,
21202083 .Mul,
2121 .Sram,
2084 .Lpmx,
2085 .Ijmpcall,
21222086 .Break,
2087 .Avr5,
2088 }),
2089 CpuInfo(@This(), FeatureType).create(.Atmega649a, "atmega649a", &[_]FeatureType {
2090 .Lpm,
2091 .Movw,
21232092 .Spm,
2124 .Lpmx,
21252093 .Avr0,
2094 .Sram,
21262095 .Jmpcall,
21272096 .Addsubiw,
2128 .Lpm,
2129 .Avr5,
2130 },
2131 CpuInfo(@This()).create(.Atmega64c1, "atmega64c1", &[_]FeatureType {
2132 .Ijmpcall,
2133 .Movw,
21342097 .Mul,
2135 .Sram,
2098 .Lpmx,
2099 .Ijmpcall,
21362100 .Break,
2101 .Avr5,
2102 }),
2103 CpuInfo(@This(), FeatureType).create(.Atmega649p, "atmega649p", &[_]FeatureType {
2104 .Lpm,
2105 .Movw,
21372106 .Spm,
2138 .Lpmx,
21392107 .Avr0,
2108 .Sram,
21402109 .Jmpcall,
21412110 .Addsubiw,
2142 .Lpm,
2143 .Avr5,
2144 },
2145 CpuInfo(@This()).create(.Atmega64hve, "atmega64hve", &[_]FeatureType {
2146 .Ijmpcall,
2147 .Movw,
21482111 .Mul,
2149 .Sram,
2112 .Lpmx,
2113 .Ijmpcall,
21502114 .Break,
2115 .Avr5,
2116 }),
2117 CpuInfo(@This(), FeatureType).create(.Atmega64a, "atmega64a", &[_]FeatureType {
2118 .Lpm,
2119 .Movw,
21512120 .Spm,
2152 .Lpmx,
21532121 .Avr0,
2122 .Sram,
21542123 .Jmpcall,
21552124 .Addsubiw,
2156 .Lpm,
2157 .Avr5,
2158 },
2159 CpuInfo(@This()).create(.Atmega64m1, "atmega64m1", &[_]FeatureType {
2160 .Ijmpcall,
2161 .Movw,
21622125 .Mul,
2163 .Sram,
2126 .Lpmx,
2127 .Ijmpcall,
21642128 .Break,
2129 .Avr5,
2130 }),
2131 CpuInfo(@This(), FeatureType).create(.Atmega64c1, "atmega64c1", &[_]FeatureType {
2132 .Lpm,
2133 .Movw,
21652134 .Spm,
2166 .Lpmx,
21672135 .Avr0,
2136 .Sram,
21682137 .Jmpcall,
21692138 .Addsubiw,
2170 .Lpm,
2171 .Avr5,
2172 },
2173 CpuInfo(@This()).create(.Atmega64rfr2, "atmega64rfr2", &[_]FeatureType {
2139 .Mul,
2140 .Lpmx,
21742141 .Ijmpcall,
2142 .Break,
2143 .Avr5,
2144 }),
2145 CpuInfo(@This(), FeatureType).create(.Atmega64hve, "atmega64hve", &[_]FeatureType {
2146 .Lpm,
21752147 .Movw,
2176 .Mul,
2148 .Spm,
2149 .Avr0,
21772150 .Sram,
2151 .Jmpcall,
2152 .Addsubiw,
2153 .Mul,
2154 .Lpmx,
2155 .Ijmpcall,
21782156 .Break,
2157 .Avr5,
2158 }),
2159 CpuInfo(@This(), FeatureType).create(.Atmega64m1, "atmega64m1", &[_]FeatureType {
2160 .Lpm,
2161 .Movw,
21792162 .Spm,
2180 .Lpmx,
21812163 .Avr0,
2164 .Sram,
21822165 .Jmpcall,
21832166 .Addsubiw,
2184 .Lpm,
2185 .Avr5,
2186 },
2187 CpuInfo(@This()).create(.Atmega8, "atmega8", &[_]FeatureType {
2167 .Mul,
2168 .Lpmx,
21882169 .Ijmpcall,
2170 .Break,
2171 .Avr5,
2172 }),
2173 CpuInfo(@This(), FeatureType).create(.Atmega64rfr2, "atmega64rfr2", &[_]FeatureType {
2174 .Lpm,
21892175 .Movw,
2190 .Mul,
2176 .Spm,
2177 .Avr0,
21912178 .Sram,
2179 .Jmpcall,
2180 .Addsubiw,
2181 .Mul,
2182 .Lpmx,
2183 .Ijmpcall,
21922184 .Break,
2185 .Avr5,
2186 }),
2187 CpuInfo(@This(), FeatureType).create(.Atmega8, "atmega8", &[_]FeatureType {
2188 .Lpm,
2189 .Movw,
21932190 .Spm,
2194 .Lpmx,
21952191 .Avr0,
2192 .Sram,
21962193 .Addsubiw,
2197 .Lpm,
2198 .Avr4,
2199 },
2200 CpuInfo(@This()).create(.Atmega8515, "atmega8515", &[_]FeatureType {
2194 .Mul,
2195 .Lpmx,
22012196 .Ijmpcall,
2202 .Sram,
2197 .Break,
2198 .Avr4,
2199 }),
2200 CpuInfo(@This(), FeatureType).create(.Atmega8515, "atmega8515", &[_]FeatureType {
2201 .Lpm,
22032202 .Avr0,
2203 .Sram,
22042204 .Addsubiw,
2205 .Lpm,
2205 .Ijmpcall,
22062206 .Avr2,
22072207 .Lpmx,
22082208 .Movw,
22092209 .Mul,
22102210 .Spm,
2211 },
2212 CpuInfo(@This()).create(.Atmega8535, "atmega8535", &[_]FeatureType {
2213 .Ijmpcall,
2214 .Sram,
2211 }),
2212 CpuInfo(@This(), FeatureType).create(.Atmega8535, "atmega8535", &[_]FeatureType {
2213 .Lpm,
22152214 .Avr0,
2215 .Sram,
22162216 .Addsubiw,
2217 .Lpm,
2217 .Ijmpcall,
22182218 .Avr2,
22192219 .Lpmx,
22202220 .Movw,
22212221 .Mul,
22222222 .Spm,
2223 },
2224 CpuInfo(@This()).create(.Atmega88, "atmega88", &[_]FeatureType {
2225 .Ijmpcall,
2223 }),
2224 CpuInfo(@This(), FeatureType).create(.Atmega88, "atmega88", &[_]FeatureType {
2225 .Lpm,
22262226 .Movw,
2227 .Mul,
2228 .Sram,
2229 .Break,
22302227 .Spm,
2231 .Lpmx,
22322228 .Avr0,
2229 .Sram,
22332230 .Addsubiw,
2234 .Lpm,
2235 .Avr4,
2236 },
2237 CpuInfo(@This()).create(.Atmega88a, "atmega88a", &[_]FeatureType {
2238 .Ijmpcall,
2239 .Movw,
22402231 .Mul,
2241 .Sram,
2232 .Lpmx,
2233 .Ijmpcall,
22422234 .Break,
2235 .Avr4,
2236 }),
2237 CpuInfo(@This(), FeatureType).create(.Atmega88a, "atmega88a", &[_]FeatureType {
2238 .Lpm,
2239 .Movw,
22432240 .Spm,
2244 .Lpmx,
22452241 .Avr0,
2242 .Sram,
22462243 .Addsubiw,
2247 .Lpm,
2248 .Avr4,
2249 },
2250 CpuInfo(@This()).create(.Atmega88p, "atmega88p", &[_]FeatureType {
2251 .Ijmpcall,
2252 .Movw,
22532244 .Mul,
2254 .Sram,
2245 .Lpmx,
2246 .Ijmpcall,
22552247 .Break,
2248 .Avr4,
2249 }),
2250 CpuInfo(@This(), FeatureType).create(.Atmega88p, "atmega88p", &[_]FeatureType {
2251 .Lpm,
2252 .Movw,
22562253 .Spm,
2257 .Lpmx,
22582254 .Avr0,
2255 .Sram,
22592256 .Addsubiw,
2260 .Lpm,
2261 .Avr4,
2262 },
2263 CpuInfo(@This()).create(.Atmega88pa, "atmega88pa", &[_]FeatureType {
2264 .Ijmpcall,
2265 .Movw,
22662257 .Mul,
2267 .Sram,
2258 .Lpmx,
2259 .Ijmpcall,
22682260 .Break,
2261 .Avr4,
2262 }),
2263 CpuInfo(@This(), FeatureType).create(.Atmega88pa, "atmega88pa", &[_]FeatureType {
2264 .Lpm,
2265 .Movw,
22692266 .Spm,
2270 .Lpmx,
22712267 .Avr0,
2268 .Sram,
22722269 .Addsubiw,
2273 .Lpm,
2274 .Avr4,
2275 },
2276 CpuInfo(@This()).create(.Atmega8a, "atmega8a", &[_]FeatureType {
2277 .Ijmpcall,
2278 .Movw,
22792270 .Mul,
2280 .Sram,
2271 .Lpmx,
2272 .Ijmpcall,
22812273 .Break,
2274 .Avr4,
2275 }),
2276 CpuInfo(@This(), FeatureType).create(.Atmega8a, "atmega8a", &[_]FeatureType {
2277 .Lpm,
2278 .Movw,
22822279 .Spm,
2283 .Lpmx,
22842280 .Avr0,
2281 .Sram,
22852282 .Addsubiw,
2286 .Lpm,
2287 .Avr4,
2288 },
2289 CpuInfo(@This()).create(.Atmega8hva, "atmega8hva", &[_]FeatureType {
2290 .Ijmpcall,
2291 .Movw,
22922283 .Mul,
2293 .Sram,
2284 .Lpmx,
2285 .Ijmpcall,
22942286 .Break,
2287 .Avr4,
2288 }),
2289 CpuInfo(@This(), FeatureType).create(.Atmega8hva, "atmega8hva", &[_]FeatureType {
2290 .Lpm,
2291 .Movw,
22952292 .Spm,
2296 .Lpmx,
22972293 .Avr0,
2294 .Sram,
22982295 .Addsubiw,
2299 .Lpm,
2300 .Avr4,
2301 },
2302 CpuInfo(@This()).create(.Atmega8u2, "atmega8u2", &[_]FeatureType {
2296 .Mul,
2297 .Lpmx,
23032298 .Ijmpcall,
2304 .Movw,
2305 .Sram,
23062299 .Break,
2300 .Avr4,
2301 }),
2302 CpuInfo(@This(), FeatureType).create(.Atmega8u2, "atmega8u2", &[_]FeatureType {
2303 .Lpm,
2304 .Movw,
23072305 .Spm,
2308 .Lpmx,
23092306 .Avr0,
2307 .Sram,
23102308 .Jmpcall,
23112309 .Addsubiw,
2312 .Lpm,
2313 .Avr35,
2314 },
2315 CpuInfo(@This()).create(.Attiny10, "attiny10", &[_]FeatureType {
2310 .Lpmx,
2311 .Ijmpcall,
23162312 .Break,
2317 .Tinyencoding,
2313 .Avr35,
2314 }),
2315 CpuInfo(@This(), FeatureType).create(.Attiny10, "attiny10", &[_]FeatureType {
23182316 .Avr0,
23192317 .Sram,
2320 .Avrtiny,
2321 },
2322 CpuInfo(@This()).create(.Attiny102, "attiny102", &[_]FeatureType {
23232318 .Break,
23242319 .Tinyencoding,
2320 .Avrtiny,
2321 }),
2322 CpuInfo(@This(), FeatureType).create(.Attiny102, "attiny102", &[_]FeatureType {
23252323 .Avr0,
23262324 .Sram,
2327 .Avrtiny,
2328 },
2329 CpuInfo(@This()).create(.Attiny104, "attiny104", &[_]FeatureType {
23302325 .Break,
23312326 .Tinyencoding,
2327 .Avrtiny,
2328 }),
2329 CpuInfo(@This(), FeatureType).create(.Attiny104, "attiny104", &[_]FeatureType {
23322330 .Avr0,
23332331 .Sram,
2332 .Break,
2333 .Tinyencoding,
23342334 .Avrtiny,
2335 },
2336 CpuInfo(@This()).create(.Attiny11, "attiny11", &[_]FeatureType {
2337 .Lpm,
2335 }),
2336 CpuInfo(@This(), FeatureType).create(.Attiny11, "attiny11", &[_]FeatureType {
23382337 .Avr0,
2339 .Avr1,
2340 },
2341 CpuInfo(@This()).create(.Attiny12, "attiny12", &[_]FeatureType {
23422338 .Lpm,
2339 .Avr1,
2340 }),
2341 CpuInfo(@This(), FeatureType).create(.Attiny12, "attiny12", &[_]FeatureType {
23432342 .Avr0,
2343 .Lpm,
23442344 .Avr1,
2345 },
2346 CpuInfo(@This()).create(.Attiny13, "attiny13", &[_]FeatureType {
2347 .Ijmpcall,
2345 }),
2346 CpuInfo(@This(), FeatureType).create(.Attiny13, "attiny13", &[_]FeatureType {
2347 .Lpm,
23482348 .Movw,
2349 .Sram,
2350 .Break,
23512349 .Spm,
2352 .Lpmx,
23532350 .Avr0,
2351 .Sram,
23542352 .Addsubiw,
2355 .Lpm,
2356 .Avr25,
2357 },
2358 CpuInfo(@This()).create(.Attiny13a, "attiny13a", &[_]FeatureType {
2353 .Lpmx,
23592354 .Ijmpcall,
2360 .Movw,
2361 .Sram,
23622355 .Break,
2356 .Avr25,
2357 }),
2358 CpuInfo(@This(), FeatureType).create(.Attiny13a, "attiny13a", &[_]FeatureType {
2359 .Lpm,
2360 .Movw,
23632361 .Spm,
2364 .Lpmx,
23652362 .Avr0,
2363 .Sram,
23662364 .Addsubiw,
2367 .Lpm,
2365 .Lpmx,
2366 .Ijmpcall,
2367 .Break,
23682368 .Avr25,
2369 },
2370 CpuInfo(@This()).create(.Attiny15, "attiny15", &[_]FeatureType {
2371 .Lpm,
2369 }),
2370 CpuInfo(@This(), FeatureType).create(.Attiny15, "attiny15", &[_]FeatureType {
23722371 .Avr0,
2372 .Lpm,
23732373 .Avr1,
2374 },
2375 CpuInfo(@This()).create(.Attiny1634, "attiny1634", &[_]FeatureType {
2376 .Ijmpcall,
2374 }),
2375 CpuInfo(@This(), FeatureType).create(.Attiny1634, "attiny1634", &[_]FeatureType {
2376 .Lpm,
23772377 .Movw,
2378 .Sram,
2379 .Break,
23802378 .Spm,
2381 .Lpmx,
23822379 .Avr0,
2380 .Sram,
23832381 .Jmpcall,
23842382 .Addsubiw,
2385 .Lpm,
2386 .Avr35,
2387 },
2388 CpuInfo(@This()).create(.Attiny167, "attiny167", &[_]FeatureType {
2383 .Lpmx,
23892384 .Ijmpcall,
2390 .Movw,
2391 .Sram,
23922385 .Break,
2386 .Avr35,
2387 }),
2388 CpuInfo(@This(), FeatureType).create(.Attiny167, "attiny167", &[_]FeatureType {
2389 .Lpm,
2390 .Movw,
23932391 .Spm,
2394 .Lpmx,
23952392 .Avr0,
2393 .Sram,
23962394 .Jmpcall,
23972395 .Addsubiw,
2398 .Lpm,
2399 .Avr35,
2400 },
2401 CpuInfo(@This()).create(.Attiny20, "attiny20", &[_]FeatureType {
2396 .Lpmx,
2397 .Ijmpcall,
24022398 .Break,
2403 .Tinyencoding,
2399 .Avr35,
2400 }),
2401 CpuInfo(@This(), FeatureType).create(.Attiny20, "attiny20", &[_]FeatureType {
24042402 .Avr0,
24052403 .Sram,
2404 .Break,
2405 .Tinyencoding,
24062406 .Avrtiny,
2407 },
2408 CpuInfo(@This()).create(.Attiny22, "attiny22", &[_]FeatureType {
2409 .Ijmpcall,
2410 .Sram,
2407 }),
2408 CpuInfo(@This(), FeatureType).create(.Attiny22, "attiny22", &[_]FeatureType {
2409 .Lpm,
24112410 .Avr0,
2411 .Sram,
24122412 .Addsubiw,
2413 .Lpm,
2414 .Avr2,
2415 },
2416 CpuInfo(@This()).create(.Attiny2313, "attiny2313", &[_]FeatureType {
24172413 .Ijmpcall,
2414 .Avr2,
2415 }),
2416 CpuInfo(@This(), FeatureType).create(.Attiny2313, "attiny2313", &[_]FeatureType {
2417 .Lpm,
24182418 .Movw,
2419 .Sram,
2420 .Break,
24212419 .Spm,
2422 .Lpmx,
24232420 .Avr0,
2421 .Sram,
24242422 .Addsubiw,
2425 .Lpm,
2426 .Avr25,
2427 },
2428 CpuInfo(@This()).create(.Attiny2313a, "attiny2313a", &[_]FeatureType {
2423 .Lpmx,
24292424 .Ijmpcall,
2430 .Movw,
2431 .Sram,
24322425 .Break,
2426 .Avr25,
2427 }),
2428 CpuInfo(@This(), FeatureType).create(.Attiny2313a, "attiny2313a", &[_]FeatureType {
2429 .Lpm,
2430 .Movw,
24332431 .Spm,
2434 .Lpmx,
24352432 .Avr0,
2433 .Sram,
24362434 .Addsubiw,
2437 .Lpm,
2438 .Avr25,
2439 },
2440 CpuInfo(@This()).create(.Attiny24, "attiny24", &[_]FeatureType {
2435 .Lpmx,
24412436 .Ijmpcall,
2442 .Movw,
2443 .Sram,
24442437 .Break,
2438 .Avr25,
2439 }),
2440 CpuInfo(@This(), FeatureType).create(.Attiny24, "attiny24", &[_]FeatureType {
2441 .Lpm,
2442 .Movw,
24452443 .Spm,
2446 .Lpmx,
24472444 .Avr0,
2445 .Sram,
24482446 .Addsubiw,
2449 .Lpm,
2450 .Avr25,
2451 },
2452 CpuInfo(@This()).create(.Attiny24a, "attiny24a", &[_]FeatureType {
2447 .Lpmx,
24532448 .Ijmpcall,
2454 .Movw,
2455 .Sram,
24562449 .Break,
2450 .Avr25,
2451 }),
2452 CpuInfo(@This(), FeatureType).create(.Attiny24a, "attiny24a", &[_]FeatureType {
2453 .Lpm,
2454 .Movw,
24572455 .Spm,
2458 .Lpmx,
24592456 .Avr0,
2457 .Sram,
24602458 .Addsubiw,
2461 .Lpm,
2462 .Avr25,
2463 },
2464 CpuInfo(@This()).create(.Attiny25, "attiny25", &[_]FeatureType {
2459 .Lpmx,
24652460 .Ijmpcall,
2466 .Movw,
2467 .Sram,
24682461 .Break,
2462 .Avr25,
2463 }),
2464 CpuInfo(@This(), FeatureType).create(.Attiny25, "attiny25", &[_]FeatureType {
2465 .Lpm,
2466 .Movw,
24692467 .Spm,
2470 .Lpmx,
24712468 .Avr0,
2469 .Sram,
24722470 .Addsubiw,
2473 .Lpm,
2474 .Avr25,
2475 },
2476 CpuInfo(@This()).create(.Attiny26, "attiny26", &[_]FeatureType {
2471 .Lpmx,
24772472 .Ijmpcall,
2478 .Sram,
2473 .Break,
2474 .Avr25,
2475 }),
2476 CpuInfo(@This(), FeatureType).create(.Attiny26, "attiny26", &[_]FeatureType {
2477 .Lpm,
24792478 .Avr0,
2479 .Sram,
24802480 .Addsubiw,
2481 .Lpm,
2481 .Ijmpcall,
24822482 .Avr2,
24832483 .Lpmx,
2484 },
2485 CpuInfo(@This()).create(.Attiny261, "attiny261", &[_]FeatureType {
2486 .Ijmpcall,
2484 }),
2485 CpuInfo(@This(), FeatureType).create(.Attiny261, "attiny261", &[_]FeatureType {
2486 .Lpm,
24872487 .Movw,
2488 .Sram,
2489 .Break,
24902488 .Spm,
2491 .Lpmx,
24922489 .Avr0,
2490 .Sram,
24932491 .Addsubiw,
2494 .Lpm,
2495 .Avr25,
2496 },
2497 CpuInfo(@This()).create(.Attiny261a, "attiny261a", &[_]FeatureType {
2492 .Lpmx,
24982493 .Ijmpcall,
2499 .Movw,
2500 .Sram,
25012494 .Break,
2495 .Avr25,
2496 }),
2497 CpuInfo(@This(), FeatureType).create(.Attiny261a, "attiny261a", &[_]FeatureType {
2498 .Lpm,
2499 .Movw,
25022500 .Spm,
2503 .Lpmx,
25042501 .Avr0,
2502 .Sram,
25052503 .Addsubiw,
2506 .Lpm,
2504 .Lpmx,
2505 .Ijmpcall,
2506 .Break,
25072507 .Avr25,
2508 },
2509 CpuInfo(@This()).create(.Attiny28, "attiny28", &[_]FeatureType {
2510 .Lpm,
2508 }),
2509 CpuInfo(@This(), FeatureType).create(.Attiny28, "attiny28", &[_]FeatureType {
25112510 .Avr0,
2511 .Lpm,
25122512 .Avr1,
2513 },
2514 CpuInfo(@This()).create(.Attiny4, "attiny4", &[_]FeatureType {
2515 .Break,
2516 .Tinyencoding,
2513 }),
2514 CpuInfo(@This(), FeatureType).create(.Attiny4, "attiny4", &[_]FeatureType {
25172515 .Avr0,
25182516 .Sram,
2519 .Avrtiny,
2520 },
2521 CpuInfo(@This()).create(.Attiny40, "attiny40", &[_]FeatureType {
25222517 .Break,
25232518 .Tinyencoding,
2519 .Avrtiny,
2520 }),
2521 CpuInfo(@This(), FeatureType).create(.Attiny40, "attiny40", &[_]FeatureType {
25242522 .Avr0,
25252523 .Sram,
2524 .Break,
2525 .Tinyencoding,
25262526 .Avrtiny,
2527 },
2528 CpuInfo(@This()).create(.Attiny4313, "attiny4313", &[_]FeatureType {
2529 .Ijmpcall,
2527 }),
2528 CpuInfo(@This(), FeatureType).create(.Attiny4313, "attiny4313", &[_]FeatureType {
2529 .Lpm,
25302530 .Movw,
2531 .Sram,
2532 .Break,
25332531 .Spm,
2534 .Lpmx,
25352532 .Avr0,
2533 .Sram,
25362534 .Addsubiw,
2537 .Lpm,
2538 .Avr25,
2539 },
2540 CpuInfo(@This()).create(.Attiny43u, "attiny43u", &[_]FeatureType {
2535 .Lpmx,
25412536 .Ijmpcall,
2542 .Movw,
2543 .Sram,
25442537 .Break,
2538 .Avr25,
2539 }),
2540 CpuInfo(@This(), FeatureType).create(.Attiny43u, "attiny43u", &[_]FeatureType {
2541 .Lpm,
2542 .Movw,
25452543 .Spm,
2546 .Lpmx,
25472544 .Avr0,
2545 .Sram,
25482546 .Addsubiw,
2549 .Lpm,
2550 .Avr25,
2551 },
2552 CpuInfo(@This()).create(.Attiny44, "attiny44", &[_]FeatureType {
2547 .Lpmx,
25532548 .Ijmpcall,
2554 .Movw,
2555 .Sram,
25562549 .Break,
2550 .Avr25,
2551 }),
2552 CpuInfo(@This(), FeatureType).create(.Attiny44, "attiny44", &[_]FeatureType {
2553 .Lpm,
2554 .Movw,
25572555 .Spm,
2558 .Lpmx,
25592556 .Avr0,
2557 .Sram,
25602558 .Addsubiw,
2561 .Lpm,
2562 .Avr25,
2563 },
2564 CpuInfo(@This()).create(.Attiny44a, "attiny44a", &[_]FeatureType {
2559 .Lpmx,
25652560 .Ijmpcall,
2566 .Movw,
2567 .Sram,
25682561 .Break,
2562 .Avr25,
2563 }),
2564 CpuInfo(@This(), FeatureType).create(.Attiny44a, "attiny44a", &[_]FeatureType {
2565 .Lpm,
2566 .Movw,
25692567 .Spm,
2570 .Lpmx,
25712568 .Avr0,
2569 .Sram,
25722570 .Addsubiw,
2573 .Lpm,
2574 .Avr25,
2575 },
2576 CpuInfo(@This()).create(.Attiny45, "attiny45", &[_]FeatureType {
2571 .Lpmx,
25772572 .Ijmpcall,
2578 .Movw,
2579 .Sram,
25802573 .Break,
2574 .Avr25,
2575 }),
2576 CpuInfo(@This(), FeatureType).create(.Attiny45, "attiny45", &[_]FeatureType {
2577 .Lpm,
2578 .Movw,
25812579 .Spm,
2582 .Lpmx,
25832580 .Avr0,
2581 .Sram,
25842582 .Addsubiw,
2585 .Lpm,
2586 .Avr25,
2587 },
2588 CpuInfo(@This()).create(.Attiny461, "attiny461", &[_]FeatureType {
2583 .Lpmx,
25892584 .Ijmpcall,
2590 .Movw,
2591 .Sram,
25922585 .Break,
2586 .Avr25,
2587 }),
2588 CpuInfo(@This(), FeatureType).create(.Attiny461, "attiny461", &[_]FeatureType {
2589 .Lpm,
2590 .Movw,
25932591 .Spm,
2594 .Lpmx,
25952592 .Avr0,
2593 .Sram,
25962594 .Addsubiw,
2597 .Lpm,
2598 .Avr25,
2599 },
2600 CpuInfo(@This()).create(.Attiny461a, "attiny461a", &[_]FeatureType {
2595 .Lpmx,
26012596 .Ijmpcall,
2602 .Movw,
2603 .Sram,
26042597 .Break,
2598 .Avr25,
2599 }),
2600 CpuInfo(@This(), FeatureType).create(.Attiny461a, "attiny461a", &[_]FeatureType {
2601 .Lpm,
2602 .Movw,
26052603 .Spm,
2606 .Lpmx,
26072604 .Avr0,
2605 .Sram,
26082606 .Addsubiw,
2609 .Lpm,
2610 .Avr25,
2611 },
2612 CpuInfo(@This()).create(.Attiny48, "attiny48", &[_]FeatureType {
2607 .Lpmx,
26132608 .Ijmpcall,
2614 .Movw,
2615 .Sram,
26162609 .Break,
2610 .Avr25,
2611 }),
2612 CpuInfo(@This(), FeatureType).create(.Attiny48, "attiny48", &[_]FeatureType {
2613 .Lpm,
2614 .Movw,
26172615 .Spm,
2618 .Lpmx,
26192616 .Avr0,
2617 .Sram,
26202618 .Addsubiw,
2621 .Lpm,
2622 .Avr25,
2623 },
2624 CpuInfo(@This()).create(.Attiny5, "attiny5", &[_]FeatureType {
2619 .Lpmx,
2620 .Ijmpcall,
26252621 .Break,
2626 .Tinyencoding,
2622 .Avr25,
2623 }),
2624 CpuInfo(@This(), FeatureType).create(.Attiny5, "attiny5", &[_]FeatureType {
26272625 .Avr0,
26282626 .Sram,
2627 .Break,
2628 .Tinyencoding,
26292629 .Avrtiny,
2630 },
2631 CpuInfo(@This()).create(.Attiny828, "attiny828", &[_]FeatureType {
2632 .Ijmpcall,
2630 }),
2631 CpuInfo(@This(), FeatureType).create(.Attiny828, "attiny828", &[_]FeatureType {
2632 .Lpm,
26332633 .Movw,
2634 .Sram,
2635 .Break,
26362634 .Spm,
2637 .Lpmx,
26382635 .Avr0,
2636 .Sram,
26392637 .Addsubiw,
2640 .Lpm,
2641 .Avr25,
2642 },
2643 CpuInfo(@This()).create(.Attiny84, "attiny84", &[_]FeatureType {
2638 .Lpmx,
26442639 .Ijmpcall,
2645 .Movw,
2646 .Sram,
26472640 .Break,
2641 .Avr25,
2642 }),
2643 CpuInfo(@This(), FeatureType).create(.Attiny84, "attiny84", &[_]FeatureType {
2644 .Lpm,
2645 .Movw,
26482646 .Spm,
2649 .Lpmx,
26502647 .Avr0,
2648 .Sram,
26512649 .Addsubiw,
2652 .Lpm,
2653 .Avr25,
2654 },
2655 CpuInfo(@This()).create(.Attiny84a, "attiny84a", &[_]FeatureType {
2650 .Lpmx,
26562651 .Ijmpcall,
2657 .Movw,
2658 .Sram,
26592652 .Break,
2653 .Avr25,
2654 }),
2655 CpuInfo(@This(), FeatureType).create(.Attiny84a, "attiny84a", &[_]FeatureType {
2656 .Lpm,
2657 .Movw,
26602658 .Spm,
2661 .Lpmx,
26622659 .Avr0,
2660 .Sram,
26632661 .Addsubiw,
2664 .Lpm,
2665 .Avr25,
2666 },
2667 CpuInfo(@This()).create(.Attiny85, "attiny85", &[_]FeatureType {
2662 .Lpmx,
26682663 .Ijmpcall,
2669 .Movw,
2670 .Sram,
26712664 .Break,
2665 .Avr25,
2666 }),
2667 CpuInfo(@This(), FeatureType).create(.Attiny85, "attiny85", &[_]FeatureType {
2668 .Lpm,
2669 .Movw,
26722670 .Spm,
2673 .Lpmx,
26742671 .Avr0,
2672 .Sram,
26752673 .Addsubiw,
2676 .Lpm,
2677 .Avr25,
2678 },
2679 CpuInfo(@This()).create(.Attiny861, "attiny861", &[_]FeatureType {
2674 .Lpmx,
26802675 .Ijmpcall,
2681 .Movw,
2682 .Sram,
26832676 .Break,
2677 .Avr25,
2678 }),
2679 CpuInfo(@This(), FeatureType).create(.Attiny861, "attiny861", &[_]FeatureType {
2680 .Lpm,
2681 .Movw,
26842682 .Spm,
2685 .Lpmx,
26862683 .Avr0,
2684 .Sram,
26872685 .Addsubiw,
2688 .Lpm,
2689 .Avr25,
2690 },
2691 CpuInfo(@This()).create(.Attiny861a, "attiny861a", &[_]FeatureType {
2686 .Lpmx,
26922687 .Ijmpcall,
2693 .Movw,
2694 .Sram,
26952688 .Break,
2689 .Avr25,
2690 }),
2691 CpuInfo(@This(), FeatureType).create(.Attiny861a, "attiny861a", &[_]FeatureType {
2692 .Lpm,
2693 .Movw,
26962694 .Spm,
2697 .Lpmx,
26982695 .Avr0,
2696 .Sram,
26992697 .Addsubiw,
2700 .Lpm,
2701 .Avr25,
2702 },
2703 CpuInfo(@This()).create(.Attiny87, "attiny87", &[_]FeatureType {
2698 .Lpmx,
27042699 .Ijmpcall,
2705 .Movw,
2706 .Sram,
27072700 .Break,
2701 .Avr25,
2702 }),
2703 CpuInfo(@This(), FeatureType).create(.Attiny87, "attiny87", &[_]FeatureType {
2704 .Lpm,
2705 .Movw,
27082706 .Spm,
2709 .Lpmx,
27102707 .Avr0,
2708 .Sram,
27112709 .Addsubiw,
2712 .Lpm,
2713 .Avr25,
2714 },
2715 CpuInfo(@This()).create(.Attiny88, "attiny88", &[_]FeatureType {
2710 .Lpmx,
27162711 .Ijmpcall,
2717 .Movw,
2718 .Sram,
27192712 .Break,
2713 .Avr25,
2714 }),
2715 CpuInfo(@This(), FeatureType).create(.Attiny88, "attiny88", &[_]FeatureType {
2716 .Lpm,
2717 .Movw,
27202718 .Spm,
2721 .Lpmx,
27222719 .Avr0,
2720 .Sram,
27232721 .Addsubiw,
2724 .Lpm,
2725 .Avr25,
2726 },
2727 CpuInfo(@This()).create(.Attiny9, "attiny9", &[_]FeatureType {
2722 .Lpmx,
2723 .Ijmpcall,
27282724 .Break,
2729 .Tinyencoding,
2725 .Avr25,
2726 }),
2727 CpuInfo(@This(), FeatureType).create(.Attiny9, "attiny9", &[_]FeatureType {
27302728 .Avr0,
27312729 .Sram,
2730 .Break,
2731 .Tinyencoding,
27322732 .Avrtiny,
2733 },
2734 CpuInfo(@This()).create(.Atxmega128a1, "atxmega128a1", &[_]FeatureType {
2735 .Ijmpcall,
2736 .Elpmx,
2733 }),
2734 CpuInfo(@This(), FeatureType).create(.Atxmega128a1, "atxmega128a1", &[_]FeatureType {
2735 .Lpm,
2736 .Elpm,
27372737 .Movw,
2738 .Eijmpcall,
2739 .Mul,
2740 .Sram,
2741 .Break,
2738 .Elpmx,
27422739 .Spm,
2743 .Elpm,
2744 .Lpmx,
2745 .Spmx,
27462740 .Avr0,
2741 .Sram,
27472742 .Jmpcall,
2743 .Eijmpcall,
2744 .Spmx,
27482745 .Addsubiw,
2749 .Lpm,
2746 .Mul,
2747 .Lpmx,
27502748 .Des,
2751 .Xmega,
2752 },
2753 CpuInfo(@This()).create(.Atxmega128a1u, "atxmega128a1u", &[_]FeatureType {
27542749 .Ijmpcall,
2755 .Elpmx,
2756 .Movw,
2757 .Eijmpcall,
2758 .Mul,
2759 .Rmw,
2760 .Sram,
27612750 .Break,
2762 .Spm,
2751 .Xmega,
2752 }),
2753 CpuInfo(@This(), FeatureType).create(.Atxmega128a1u, "atxmega128a1u", &[_]FeatureType {
2754 .Lpm,
27632755 .Elpm,
2764 .Lpmx,
2765 .Spmx,
2756 .Movw,
2757 .Elpmx,
2758 .Spm,
27662759 .Avr0,
2760 .Sram,
27672761 .Jmpcall,
2762 .Eijmpcall,
2763 .Spmx,
27682764 .Addsubiw,
2769 .Lpm,
2765 .Mul,
2766 .Lpmx,
2767 .Rmw,
27702768 .Des,
2771 .Xmegau,
2772 },
2773 CpuInfo(@This()).create(.Atxmega128a3, "atxmega128a3", &[_]FeatureType {
27742769 .Ijmpcall,
2775 .Elpmx,
2776 .Movw,
2777 .Eijmpcall,
2778 .Mul,
2779 .Sram,
27802770 .Break,
2781 .Spm,
2771 .Xmegau,
2772 }),
2773 CpuInfo(@This(), FeatureType).create(.Atxmega128a3, "atxmega128a3", &[_]FeatureType {
2774 .Lpm,
27822775 .Elpm,
2783 .Lpmx,
2784 .Spmx,
2776 .Movw,
2777 .Elpmx,
2778 .Spm,
27852779 .Avr0,
2780 .Sram,
27862781 .Jmpcall,
2782 .Eijmpcall,
2783 .Spmx,
27872784 .Addsubiw,
2788 .Lpm,
2785 .Mul,
2786 .Lpmx,
27892787 .Des,
2790 .Xmega,
2791 },
2792 CpuInfo(@This()).create(.Atxmega128a3u, "atxmega128a3u", &[_]FeatureType {
27932788 .Ijmpcall,
2794 .Elpmx,
2789 .Break,
2790 .Xmega,
2791 }),
2792 CpuInfo(@This(), FeatureType).create(.Atxmega128a3u, "atxmega128a3u", &[_]FeatureType {
2793 .Lpm,
2794 .Elpm,
27952795 .Movw,
2796 .Elpmx,
2797 .Spm,
2798 .Avr0,
2799 .Sram,
2800 .Jmpcall,
27962801 .Eijmpcall,
2802 .Spmx,
2803 .Addsubiw,
27972804 .Mul,
2805 .Lpmx,
27982806 .Rmw,
2799 .Sram,
2807 .Des,
2808 .Ijmpcall,
28002809 .Break,
2801 .Spm,
2810 .Xmegau,
2811 }),
2812 CpuInfo(@This(), FeatureType).create(.Atxmega128a4u, "atxmega128a4u", &[_]FeatureType {
2813 .Lpm,
28022814 .Elpm,
2803 .Lpmx,
2804 .Spmx,
2815 .Movw,
2816 .Elpmx,
2817 .Spm,
28052818 .Avr0,
2819 .Sram,
28062820 .Jmpcall,
2821 .Eijmpcall,
2822 .Spmx,
28072823 .Addsubiw,
2808 .Lpm,
2824 .Mul,
2825 .Lpmx,
2826 .Rmw,
28092827 .Des,
2810 .Xmegau,
2811 },
2812 CpuInfo(@This()).create(.Atxmega128a4u, "atxmega128a4u", &[_]FeatureType {
28132828 .Ijmpcall,
2814 .Elpmx,
2829 .Break,
2830 .Xmegau,
2831 }),
2832 CpuInfo(@This(), FeatureType).create(.Atxmega128b1, "atxmega128b1", &[_]FeatureType {
2833 .Lpm,
2834 .Elpm,
28152835 .Movw,
2836 .Elpmx,
2837 .Spm,
2838 .Avr0,
2839 .Sram,
2840 .Jmpcall,
28162841 .Eijmpcall,
2842 .Spmx,
2843 .Addsubiw,
28172844 .Mul,
2845 .Lpmx,
28182846 .Rmw,
2819 .Sram,
2847 .Des,
2848 .Ijmpcall,
28202849 .Break,
2821 .Spm,
2850 .Xmegau,
2851 }),
2852 CpuInfo(@This(), FeatureType).create(.Atxmega128b3, "atxmega128b3", &[_]FeatureType {
2853 .Lpm,
28222854 .Elpm,
2823 .Lpmx,
2824 .Spmx,
2855 .Movw,
2856 .Elpmx,
2857 .Spm,
28252858 .Avr0,
2859 .Sram,
28262860 .Jmpcall,
2861 .Eijmpcall,
2862 .Spmx,
28272863 .Addsubiw,
2828 .Lpm,
2864 .Mul,
2865 .Lpmx,
2866 .Rmw,
28292867 .Des,
2830 .Xmegau,
2831 },
2832 CpuInfo(@This()).create(.Atxmega128b1, "atxmega128b1", &[_]FeatureType {
28332868 .Ijmpcall,
2834 .Elpmx,
2869 .Break,
2870 .Xmegau,
2871 }),
2872 CpuInfo(@This(), FeatureType).create(.Atxmega128c3, "atxmega128c3", &[_]FeatureType {
2873 .Lpm,
2874 .Elpm,
28352875 .Movw,
2876 .Elpmx,
2877 .Spm,
2878 .Avr0,
2879 .Sram,
2880 .Jmpcall,
28362881 .Eijmpcall,
2882 .Spmx,
2883 .Addsubiw,
28372884 .Mul,
2885 .Lpmx,
28382886 .Rmw,
2839 .Sram,
2887 .Des,
2888 .Ijmpcall,
28402889 .Break,
2841 .Spm,
2890 .Xmegau,
2891 }),
2892 CpuInfo(@This(), FeatureType).create(.Atxmega128d3, "atxmega128d3", &[_]FeatureType {
2893 .Lpm,
28422894 .Elpm,
2843 .Lpmx,
2844 .Spmx,
2895 .Movw,
2896 .Elpmx,
2897 .Spm,
28452898 .Avr0,
2899 .Sram,
28462900 .Jmpcall,
2901 .Eijmpcall,
2902 .Spmx,
28472903 .Addsubiw,
2848 .Lpm,
2904 .Mul,
2905 .Lpmx,
28492906 .Des,
2850 .Xmegau,
2851 },
2852 CpuInfo(@This()).create(.Atxmega128b3, "atxmega128b3", &[_]FeatureType {
28532907 .Ijmpcall,
2854 .Elpmx,
2855 .Movw,
2856 .Eijmpcall,
2857 .Mul,
2858 .Rmw,
2859 .Sram,
28602908 .Break,
2861 .Spm,
2909 .Xmega,
2910 }),
2911 CpuInfo(@This(), FeatureType).create(.Atxmega128d4, "atxmega128d4", &[_]FeatureType {
2912 .Lpm,
28622913 .Elpm,
2863 .Lpmx,
2864 .Spmx,
2914 .Movw,
2915 .Elpmx,
2916 .Spm,
28652917 .Avr0,
2918 .Sram,
28662919 .Jmpcall,
2920 .Eijmpcall,
2921 .Spmx,
28672922 .Addsubiw,
2868 .Lpm,
2923 .Mul,
2924 .Lpmx,
28692925 .Des,
2870 .Xmegau,
2871 },
2872 CpuInfo(@This()).create(.Atxmega128c3, "atxmega128c3", &[_]FeatureType {
28732926 .Ijmpcall,
2874 .Elpmx,
2875 .Movw,
2876 .Eijmpcall,
2877 .Mul,
2878 .Rmw,
2879 .Sram,
28802927 .Break,
2881 .Spm,
2928 .Xmega,
2929 }),
2930 CpuInfo(@This(), FeatureType).create(.Atxmega16a4, "atxmega16a4", &[_]FeatureType {
2931 .Lpm,
28822932 .Elpm,
2883 .Lpmx,
2884 .Spmx,
2933 .Movw,
2934 .Elpmx,
2935 .Spm,
28852936 .Avr0,
2937 .Sram,
28862938 .Jmpcall,
2939 .Eijmpcall,
2940 .Spmx,
28872941 .Addsubiw,
2888 .Lpm,
2942 .Mul,
2943 .Lpmx,
28892944 .Des,
2890 .Xmegau,
2891 },
2892 CpuInfo(@This()).create(.Atxmega128d3, "atxmega128d3", &[_]FeatureType {
28932945 .Ijmpcall,
2894 .Elpmx,
2895 .Movw,
2896 .Eijmpcall,
2897 .Mul,
2898 .Sram,
28992946 .Break,
2900 .Spm,
2947 .Xmega,
2948 }),
2949 CpuInfo(@This(), FeatureType).create(.Atxmega16a4u, "atxmega16a4u", &[_]FeatureType {
2950 .Lpm,
29012951 .Elpm,
2902 .Lpmx,
2903 .Spmx,
2952 .Movw,
2953 .Elpmx,
2954 .Spm,
29042955 .Avr0,
2956 .Sram,
29052957 .Jmpcall,
2958 .Eijmpcall,
2959 .Spmx,
29062960 .Addsubiw,
2907 .Lpm,
2961 .Mul,
2962 .Lpmx,
2963 .Rmw,
29082964 .Des,
2909 .Xmega,
2910 },
2911 CpuInfo(@This()).create(.Atxmega128d4, "atxmega128d4", &[_]FeatureType {
29122965 .Ijmpcall,
2913 .Elpmx,
2914 .Movw,
2915 .Eijmpcall,
2916 .Mul,
2917 .Sram,
29182966 .Break,
2919 .Spm,
2920 .Elpm,
2921 .Lpmx,
2922 .Spmx,
2923 .Avr0,
2924 .Jmpcall,
2925 .Addsubiw,
2967 .Xmegau,
2968 }),
2969 CpuInfo(@This(), FeatureType).create(.Atxmega16c4, "atxmega16c4", &[_]FeatureType {
29262970 .Lpm,
2927 .Des,
2928 .Xmega,
2929 },
2930 CpuInfo(@This()).create(.Atxmega16a4, "atxmega16a4", &[_]FeatureType {
2931 .Ijmpcall,
2932 .Elpmx,
2971 .Elpm,
29332972 .Movw,
2934 .Eijmpcall,
2935 .Mul,
2936 .Sram,
2937 .Break,
2973 .Elpmx,
29382974 .Spm,
2939 .Elpm,
2940 .Lpmx,
2941 .Spmx,
29422975 .Avr0,
2976 .Sram,
29432977 .Jmpcall,
2944 .Addsubiw,
2945 .Lpm,
2946 .Des,
2947 .Xmega,
2948 },
2949 CpuInfo(@This()).create(.Atxmega16a4u, "atxmega16a4u", &[_]FeatureType {
2950 .Ijmpcall,
2951 .Elpmx,
2952 .Movw,
29532978 .Eijmpcall,
2954 .Mul,
2955 .Rmw,
2956 .Sram,
2957 .Break,
2958 .Spm,
2959 .Elpm,
2960 .Lpmx,
29612979 .Spmx,
2962 .Avr0,
2963 .Jmpcall,
29642980 .Addsubiw,
2965 .Lpm,
2966 .Des,
2967 .Xmegau,
2968 },
2969 CpuInfo(@This()).create(.Atxmega16c4, "atxmega16c4", &[_]FeatureType {
2970 .Ijmpcall,
2971 .Elpmx,
2972 .Movw,
2973 .Eijmpcall,
29742981 .Mul,
2975 .Rmw,
2976 .Sram,
2977 .Break,
2978 .Spm,
2979 .Elpm,
29802982 .Lpmx,
2981 .Spmx,
2982 .Avr0,
2983 .Jmpcall,
2984 .Addsubiw,
2985 .Lpm,
2983 .Rmw,
29862984 .Des,
2987 .Xmegau,
2988 },
2989 CpuInfo(@This()).create(.Atxmega16d4, "atxmega16d4", &[_]FeatureType {
29902985 .Ijmpcall,
2991 .Elpmx,
2992 .Movw,
2993 .Eijmpcall,
2994 .Mul,
2995 .Sram,
29962986 .Break,
2997 .Spm,
2998 .Elpm,
2999 .Lpmx,
3000 .Spmx,
3001 .Avr0,
3002 .Jmpcall,
3003 .Addsubiw,
2987 .Xmegau,
2988 }),
2989 CpuInfo(@This(), FeatureType).create(.Atxmega16d4, "atxmega16d4", &[_]FeatureType {
30042990 .Lpm,
3005 .Des,
3006 .Xmega,
3007 },
3008 CpuInfo(@This()).create(.Atxmega16e5, "atxmega16e5", &[_]FeatureType {
3009 .Ijmpcall,
3010 .Elpmx,
2991 .Elpm,
30112992 .Movw,
3012 .Eijmpcall,
3013 .Mul,
3014 .Sram,
3015 .Break,
2993 .Elpmx,
30162994 .Spm,
3017 .Elpm,
3018 .Lpmx,
3019 .Spmx,
30202995 .Avr0,
2996 .Sram,
30212997 .Jmpcall,
3022 .Addsubiw,
3023 .Lpm,
3024 .Des,
3025 .Xmega,
3026 },
3027 CpuInfo(@This()).create(.Atxmega192a3, "atxmega192a3", &[_]FeatureType {
3028 .Ijmpcall,
3029 .Elpmx,
3030 .Movw,
30312998 .Eijmpcall,
3032 .Mul,
3033 .Sram,
3034 .Break,
3035 .Spm,
3036 .Elpm,
3037 .Lpmx,
30382999 .Spmx,
3039 .Avr0,
3040 .Jmpcall,
30413000 .Addsubiw,
3042 .Lpm,
3043 .Des,
3044 .Xmega,
3045 },
3046 CpuInfo(@This()).create(.Atxmega192a3u, "atxmega192a3u", &[_]FeatureType {
3047 .Ijmpcall,
3048 .Elpmx,
3049 .Movw,
3050 .Eijmpcall,
30513001 .Mul,
3052 .Rmw,
3053 .Sram,
3054 .Break,
3055 .Spm,
3056 .Elpm,
30573002 .Lpmx,
3058 .Spmx,
3059 .Avr0,
3060 .Jmpcall,
3061 .Addsubiw,
3062 .Lpm,
30633003 .Des,
3064 .Xmegau,
3065 },
3066 CpuInfo(@This()).create(.Atxmega192c3, "atxmega192c3", &[_]FeatureType {
30673004 .Ijmpcall,
3068 .Elpmx,
3069 .Movw,
3070 .Eijmpcall,
3071 .Mul,
3072 .Rmw,
3073 .Sram,
30743005 .Break,
3075 .Spm,
3076 .Elpm,
3077 .Lpmx,
3078 .Spmx,
3079 .Avr0,
3080 .Jmpcall,
3081 .Addsubiw,
3006 .Xmega,
3007 }),
3008 CpuInfo(@This(), FeatureType).create(.Atxmega16e5, "atxmega16e5", &[_]FeatureType {
30823009 .Lpm,
3083 .Des,
3084 .Xmegau,
3085 },
3086 CpuInfo(@This()).create(.Atxmega192d3, "atxmega192d3", &[_]FeatureType {
3087 .Ijmpcall,
3088 .Elpmx,
3010 .Elpm,
30893011 .Movw,
3090 .Eijmpcall,
3091 .Mul,
3092 .Sram,
3093 .Break,
3012 .Elpmx,
30943013 .Spm,
3095 .Elpm,
3096 .Lpmx,
3097 .Spmx,
30983014 .Avr0,
3015 .Sram,
30993016 .Jmpcall,
3100 .Addsubiw,
3101 .Lpm,
3102 .Des,
3103 .Xmega,
3104 },
3105 CpuInfo(@This()).create(.Atxmega256a3, "atxmega256a3", &[_]FeatureType {
3106 .Ijmpcall,
3107 .Elpmx,
3108 .Movw,
31093017 .Eijmpcall,
3110 .Mul,
3111 .Sram,
3112 .Break,
3113 .Spm,
3114 .Elpm,
3115 .Lpmx,
31163018 .Spmx,
3117 .Avr0,
3118 .Jmpcall,
31193019 .Addsubiw,
3120 .Lpm,
3121 .Des,
3122 .Xmega,
3123 },
3124 CpuInfo(@This()).create(.Atxmega256a3b, "atxmega256a3b", &[_]FeatureType {
3125 .Ijmpcall,
3126 .Elpmx,
3127 .Movw,
3128 .Eijmpcall,
31293020 .Mul,
3130 .Sram,
3131 .Break,
3132 .Spm,
3133 .Elpm,
31343021 .Lpmx,
3135 .Spmx,
3136 .Avr0,
3137 .Jmpcall,
3138 .Addsubiw,
3139 .Lpm,
31403022 .Des,
3141 .Xmega,
3142 },
3143 CpuInfo(@This()).create(.Atxmega256a3bu, "atxmega256a3bu", &[_]FeatureType {
31443023 .Ijmpcall,
3145 .Elpmx,
3146 .Movw,
3147 .Eijmpcall,
3148 .Mul,
3149 .Rmw,
3150 .Sram,
31513024 .Break,
3152 .Spm,
3025 .Xmega,
3026 }),
3027 CpuInfo(@This(), FeatureType).create(.Atxmega192a3, "atxmega192a3", &[_]FeatureType {
3028 .Lpm,
31533029 .Elpm,
3154 .Lpmx,
3155 .Spmx,
3030 .Movw,
3031 .Elpmx,
3032 .Spm,
31563033 .Avr0,
3034 .Sram,
31573035 .Jmpcall,
3036 .Eijmpcall,
3037 .Spmx,
31583038 .Addsubiw,
3159 .Lpm,
3039 .Mul,
3040 .Lpmx,
31603041 .Des,
3161 .Xmegau,
3162 },
3163 CpuInfo(@This()).create(.Atxmega256a3u, "atxmega256a3u", &[_]FeatureType {
31643042 .Ijmpcall,
3165 .Elpmx,
3166 .Movw,
3167 .Eijmpcall,
3168 .Mul,
3169 .Rmw,
3170 .Sram,
31713043 .Break,
3172 .Spm,
3044 .Xmega,
3045 }),
3046 CpuInfo(@This(), FeatureType).create(.Atxmega192a3u, "atxmega192a3u", &[_]FeatureType {
3047 .Lpm,
31733048 .Elpm,
3174 .Lpmx,
3175 .Spmx,
3049 .Movw,
3050 .Elpmx,
3051 .Spm,
31763052 .Avr0,
3053 .Sram,
31773054 .Jmpcall,
3178 .Addsubiw,
3179 .Lpm,
3180 .Des,
3181 .Xmegau,
3182 },
3183 CpuInfo(@This()).create(.Atxmega256c3, "atxmega256c3", &[_]FeatureType {
3184 .Ijmpcall,
3185 .Elpmx,
3186 .Movw,
31873055 .Eijmpcall,
3056 .Spmx,
3057 .Addsubiw,
31883058 .Mul,
3059 .Lpmx,
31893060 .Rmw,
3190 .Sram,
3061 .Des,
3062 .Ijmpcall,
31913063 .Break,
3192 .Spm,
3064 .Xmegau,
3065 }),
3066 CpuInfo(@This(), FeatureType).create(.Atxmega192c3, "atxmega192c3", &[_]FeatureType {
3067 .Lpm,
31933068 .Elpm,
3194 .Lpmx,
3195 .Spmx,
3069 .Movw,
3070 .Elpmx,
3071 .Spm,
31963072 .Avr0,
3073 .Sram,
31973074 .Jmpcall,
3075 .Eijmpcall,
3076 .Spmx,
31983077 .Addsubiw,
3199 .Lpm,
3078 .Mul,
3079 .Lpmx,
3080 .Rmw,
32003081 .Des,
3201 .Xmegau,
3202 },
3203 CpuInfo(@This()).create(.Atxmega256d3, "atxmega256d3", &[_]FeatureType {
32043082 .Ijmpcall,
3205 .Elpmx,
3206 .Movw,
3207 .Eijmpcall,
3208 .Mul,
3209 .Sram,
32103083 .Break,
3211 .Spm,
3084 .Xmegau,
3085 }),
3086 CpuInfo(@This(), FeatureType).create(.Atxmega192d3, "atxmega192d3", &[_]FeatureType {
3087 .Lpm,
32123088 .Elpm,
3213 .Lpmx,
3214 .Spmx,
3089 .Movw,
3090 .Elpmx,
3091 .Spm,
32153092 .Avr0,
3093 .Sram,
32163094 .Jmpcall,
3095 .Eijmpcall,
3096 .Spmx,
32173097 .Addsubiw,
3218 .Lpm,
3098 .Mul,
3099 .Lpmx,
32193100 .Des,
3220 .Xmega,
3221 },
3222 CpuInfo(@This()).create(.Atxmega32a4, "atxmega32a4", &[_]FeatureType {
32233101 .Ijmpcall,
3224 .Elpmx,
3225 .Movw,
3226 .Eijmpcall,
3227 .Mul,
3228 .Sram,
32293102 .Break,
3230 .Spm,
3103 .Xmega,
3104 }),
3105 CpuInfo(@This(), FeatureType).create(.Atxmega256a3, "atxmega256a3", &[_]FeatureType {
3106 .Lpm,
32313107 .Elpm,
3232 .Lpmx,
3233 .Spmx,
3108 .Movw,
3109 .Elpmx,
3110 .Spm,
32343111 .Avr0,
3112 .Sram,
32353113 .Jmpcall,
3114 .Eijmpcall,
3115 .Spmx,
32363116 .Addsubiw,
3237 .Lpm,
3117 .Mul,
3118 .Lpmx,
32383119 .Des,
3239 .Xmega,
3240 },
3241 CpuInfo(@This()).create(.Atxmega32a4u, "atxmega32a4u", &[_]FeatureType {
32423120 .Ijmpcall,
3243 .Elpmx,
3244 .Movw,
3245 .Eijmpcall,
3246 .Mul,
3247 .Rmw,
3248 .Sram,
32493121 .Break,
3250 .Spm,
3122 .Xmega,
3123 }),
3124 CpuInfo(@This(), FeatureType).create(.Atxmega256a3b, "atxmega256a3b", &[_]FeatureType {
3125 .Lpm,
32513126 .Elpm,
3252 .Lpmx,
3253 .Spmx,
3127 .Movw,
3128 .Elpmx,
3129 .Spm,
32543130 .Avr0,
3131 .Sram,
32553132 .Jmpcall,
3133 .Eijmpcall,
3134 .Spmx,
32563135 .Addsubiw,
3257 .Lpm,
3136 .Mul,
3137 .Lpmx,
32583138 .Des,
3259 .Xmegau,
3260 },
3261 CpuInfo(@This()).create(.Atxmega32c4, "atxmega32c4", &[_]FeatureType {
32623139 .Ijmpcall,
3263 .Elpmx,
3264 .Movw,
3265 .Eijmpcall,
3266 .Mul,
3267 .Rmw,
3268 .Sram,
32693140 .Break,
3270 .Spm,
3141 .Xmega,
3142 }),
3143 CpuInfo(@This(), FeatureType).create(.Atxmega256a3bu, "atxmega256a3bu", &[_]FeatureType {
3144 .Lpm,
32713145 .Elpm,
3272 .Lpmx,
3273 .Spmx,
3146 .Movw,
3147 .Elpmx,
3148 .Spm,
32743149 .Avr0,
3150 .Sram,
32753151 .Jmpcall,
3152 .Eijmpcall,
3153 .Spmx,
32763154 .Addsubiw,
3277 .Lpm,
3155 .Mul,
3156 .Lpmx,
3157 .Rmw,
32783158 .Des,
3279 .Xmegau,
3280 },
3281 CpuInfo(@This()).create(.Atxmega32d4, "atxmega32d4", &[_]FeatureType {
32823159 .Ijmpcall,
3283 .Elpmx,
3284 .Movw,
3285 .Eijmpcall,
3286 .Mul,
3287 .Sram,
32883160 .Break,
3289 .Spm,
3161 .Xmegau,
3162 }),
3163 CpuInfo(@This(), FeatureType).create(.Atxmega256a3u, "atxmega256a3u", &[_]FeatureType {
3164 .Lpm,
32903165 .Elpm,
3291 .Lpmx,
3292 .Spmx,
3166 .Movw,
3167 .Elpmx,
3168 .Spm,
32933169 .Avr0,
3170 .Sram,
32943171 .Jmpcall,
3172 .Eijmpcall,
3173 .Spmx,
32953174 .Addsubiw,
3296 .Lpm,
3175 .Mul,
3176 .Lpmx,
3177 .Rmw,
32973178 .Des,
3298 .Xmega,
3299 },
3300 CpuInfo(@This()).create(.Atxmega32e5, "atxmega32e5", &[_]FeatureType {
33013179 .Ijmpcall,
3302 .Elpmx,
3303 .Movw,
3304 .Eijmpcall,
3305 .Mul,
3306 .Sram,
33073180 .Break,
3308 .Spm,
3181 .Xmegau,
3182 }),
3183 CpuInfo(@This(), FeatureType).create(.Atxmega256c3, "atxmega256c3", &[_]FeatureType {
3184 .Lpm,
33093185 .Elpm,
3310 .Lpmx,
3311 .Spmx,
3186 .Movw,
3187 .Elpmx,
3188 .Spm,
33123189 .Avr0,
3190 .Sram,
33133191 .Jmpcall,
3192 .Eijmpcall,
3193 .Spmx,
33143194 .Addsubiw,
3315 .Lpm,
3195 .Mul,
3196 .Lpmx,
3197 .Rmw,
33163198 .Des,
3317 .Xmega,
3318 },
3319 CpuInfo(@This()).create(.Atxmega32x1, "atxmega32x1", &[_]FeatureType {
33203199 .Ijmpcall,
3321 .Elpmx,
3322 .Movw,
3323 .Eijmpcall,
3324 .Mul,
3325 .Sram,
33263200 .Break,
3327 .Spm,
3201 .Xmegau,
3202 }),
3203 CpuInfo(@This(), FeatureType).create(.Atxmega256d3, "atxmega256d3", &[_]FeatureType {
3204 .Lpm,
33283205 .Elpm,
3329 .Lpmx,
3330 .Spmx,
3206 .Movw,
3207 .Elpmx,
3208 .Spm,
33313209 .Avr0,
3210 .Sram,
33323211 .Jmpcall,
3212 .Eijmpcall,
3213 .Spmx,
33333214 .Addsubiw,
3334 .Lpm,
3215 .Mul,
3216 .Lpmx,
33353217 .Des,
3336 .Xmega,
3337 },
3338 CpuInfo(@This()).create(.Atxmega384c3, "atxmega384c3", &[_]FeatureType {
33393218 .Ijmpcall,
3340 .Elpmx,
3341 .Movw,
3342 .Eijmpcall,
3343 .Mul,
3344 .Rmw,
3345 .Sram,
33463219 .Break,
3347 .Spm,
3220 .Xmega,
3221 }),
3222 CpuInfo(@This(), FeatureType).create(.Atxmega32a4, "atxmega32a4", &[_]FeatureType {
3223 .Lpm,
33483224 .Elpm,
3349 .Lpmx,
3350 .Spmx,
3225 .Movw,
3226 .Elpmx,
3227 .Spm,
33513228 .Avr0,
3229 .Sram,
33523230 .Jmpcall,
3231 .Eijmpcall,
3232 .Spmx,
33533233 .Addsubiw,
3354 .Lpm,
3234 .Mul,
3235 .Lpmx,
33553236 .Des,
3356 .Xmegau,
3357 },
3358 CpuInfo(@This()).create(.Atxmega384d3, "atxmega384d3", &[_]FeatureType {
33593237 .Ijmpcall,
3360 .Elpmx,
3361 .Movw,
3362 .Eijmpcall,
3363 .Mul,
3364 .Sram,
33653238 .Break,
3366 .Spm,
3239 .Xmega,
3240 }),
3241 CpuInfo(@This(), FeatureType).create(.Atxmega32a4u, "atxmega32a4u", &[_]FeatureType {
3242 .Lpm,
33673243 .Elpm,
3368 .Lpmx,
3369 .Spmx,
3244 .Movw,
3245 .Elpmx,
3246 .Spm,
33703247 .Avr0,
3248 .Sram,
33713249 .Jmpcall,
3250 .Eijmpcall,
3251 .Spmx,
33723252 .Addsubiw,
3373 .Lpm,
3253 .Mul,
3254 .Lpmx,
3255 .Rmw,
33743256 .Des,
3375 .Xmega,
3376 },
3377 CpuInfo(@This()).create(.Atxmega64a1, "atxmega64a1", &[_]FeatureType {
33783257 .Ijmpcall,
3379 .Elpmx,
3380 .Movw,
3381 .Eijmpcall,
3382 .Mul,
3383 .Sram,
33843258 .Break,
3385 .Spm,
3259 .Xmegau,
3260 }),
3261 CpuInfo(@This(), FeatureType).create(.Atxmega32c4, "atxmega32c4", &[_]FeatureType {
3262 .Lpm,
33863263 .Elpm,
3387 .Lpmx,
3388 .Spmx,
3264 .Movw,
3265 .Elpmx,
3266 .Spm,
33893267 .Avr0,
3268 .Sram,
33903269 .Jmpcall,
3391 .Addsubiw,
3392 .Lpm,
3393 .Des,
3394 .Xmega,
3395 },
3396 CpuInfo(@This()).create(.Atxmega64a1u, "atxmega64a1u", &[_]FeatureType {
3397 .Ijmpcall,
3398 .Elpmx,
3399 .Movw,
34003270 .Eijmpcall,
3271 .Spmx,
3272 .Addsubiw,
34013273 .Mul,
3274 .Lpmx,
34023275 .Rmw,
3403 .Sram,
3276 .Des,
3277 .Ijmpcall,
34043278 .Break,
3405 .Spm,
3279 .Xmegau,
3280 }),
3281 CpuInfo(@This(), FeatureType).create(.Atxmega32d4, "atxmega32d4", &[_]FeatureType {
3282 .Lpm,
34063283 .Elpm,
3407 .Lpmx,
3408 .Spmx,
3284 .Movw,
3285 .Elpmx,
3286 .Spm,
34093287 .Avr0,
3288 .Sram,
34103289 .Jmpcall,
3290 .Eijmpcall,
3291 .Spmx,
34113292 .Addsubiw,
3412 .Lpm,
3293 .Mul,
3294 .Lpmx,
34133295 .Des,
3414 .Xmegau,
3415 },
3416 CpuInfo(@This()).create(.Atxmega64a3, "atxmega64a3", &[_]FeatureType {
34173296 .Ijmpcall,
3418 .Elpmx,
3297 .Break,
3298 .Xmega,
3299 }),
3300 CpuInfo(@This(), FeatureType).create(.Atxmega32e5, "atxmega32e5", &[_]FeatureType {
3301 .Lpm,
3302 .Elpm,
34193303 .Movw,
3304 .Elpmx,
3305 .Spm,
3306 .Avr0,
3307 .Sram,
3308 .Jmpcall,
34203309 .Eijmpcall,
3310 .Spmx,
3311 .Addsubiw,
34213312 .Mul,
3422 .Sram,
3313 .Lpmx,
3314 .Des,
3315 .Ijmpcall,
34233316 .Break,
3424 .Spm,
3317 .Xmega,
3318 }),
3319 CpuInfo(@This(), FeatureType).create(.Atxmega32x1, "atxmega32x1", &[_]FeatureType {
3320 .Lpm,
34253321 .Elpm,
3426 .Lpmx,
3427 .Spmx,
3322 .Movw,
3323 .Elpmx,
3324 .Spm,
34283325 .Avr0,
3326 .Sram,
34293327 .Jmpcall,
3328 .Eijmpcall,
3329 .Spmx,
34303330 .Addsubiw,
3431 .Lpm,
3331 .Mul,
3332 .Lpmx,
34323333 .Des,
3433 .Xmega,
3434 },
3435 CpuInfo(@This()).create(.Atxmega64a3u, "atxmega64a3u", &[_]FeatureType {
34363334 .Ijmpcall,
3437 .Elpmx,
3335 .Break,
3336 .Xmega,
3337 }),
3338 CpuInfo(@This(), FeatureType).create(.Atxmega384c3, "atxmega384c3", &[_]FeatureType {
3339 .Lpm,
3340 .Elpm,
34383341 .Movw,
3342 .Elpmx,
3343 .Spm,
3344 .Avr0,
3345 .Sram,
3346 .Jmpcall,
34393347 .Eijmpcall,
3348 .Spmx,
3349 .Addsubiw,
34403350 .Mul,
3351 .Lpmx,
34413352 .Rmw,
3442 .Sram,
3353 .Des,
3354 .Ijmpcall,
34433355 .Break,
3444 .Spm,
3356 .Xmegau,
3357 }),
3358 CpuInfo(@This(), FeatureType).create(.Atxmega384d3, "atxmega384d3", &[_]FeatureType {
3359 .Lpm,
34453360 .Elpm,
3446 .Lpmx,
3447 .Spmx,
3361 .Movw,
3362 .Elpmx,
3363 .Spm,
34483364 .Avr0,
3365 .Sram,
34493366 .Jmpcall,
3367 .Eijmpcall,
3368 .Spmx,
34503369 .Addsubiw,
3451 .Lpm,
3370 .Mul,
3371 .Lpmx,
34523372 .Des,
3453 .Xmegau,
3454 },
3455 CpuInfo(@This()).create(.Atxmega64a4u, "atxmega64a4u", &[_]FeatureType {
34563373 .Ijmpcall,
3457 .Elpmx,
3458 .Movw,
3459 .Eijmpcall,
3460 .Mul,
3461 .Rmw,
3462 .Sram,
34633374 .Break,
3464 .Spm,
3375 .Xmega,
3376 }),
3377 CpuInfo(@This(), FeatureType).create(.Atxmega64a1, "atxmega64a1", &[_]FeatureType {
3378 .Lpm,
34653379 .Elpm,
3466 .Lpmx,
3467 .Spmx,
3380 .Movw,
3381 .Elpmx,
3382 .Spm,
34683383 .Avr0,
3384 .Sram,
34693385 .Jmpcall,
3386 .Eijmpcall,
3387 .Spmx,
34703388 .Addsubiw,
3471 .Lpm,
3389 .Mul,
3390 .Lpmx,
34723391 .Des,
3473 .Xmegau,
3474 },
3475 CpuInfo(@This()).create(.Atxmega64b1, "atxmega64b1", &[_]FeatureType {
34763392 .Ijmpcall,
3477 .Elpmx,
3393 .Break,
3394 .Xmega,
3395 }),
3396 CpuInfo(@This(), FeatureType).create(.Atxmega64a1u, "atxmega64a1u", &[_]FeatureType {
3397 .Lpm,
3398 .Elpm,
34783399 .Movw,
3400 .Elpmx,
3401 .Spm,
3402 .Avr0,
3403 .Sram,
3404 .Jmpcall,
34793405 .Eijmpcall,
3406 .Spmx,
3407 .Addsubiw,
34803408 .Mul,
3409 .Lpmx,
34813410 .Rmw,
3482 .Sram,
3411 .Des,
3412 .Ijmpcall,
34833413 .Break,
3484 .Spm,
3414 .Xmegau,
3415 }),
3416 CpuInfo(@This(), FeatureType).create(.Atxmega64a3, "atxmega64a3", &[_]FeatureType {
3417 .Lpm,
34853418 .Elpm,
3486 .Lpmx,
3487 .Spmx,
3419 .Movw,
3420 .Elpmx,
3421 .Spm,
34883422 .Avr0,
3423 .Sram,
34893424 .Jmpcall,
3425 .Eijmpcall,
3426 .Spmx,
34903427 .Addsubiw,
3491 .Lpm,
3428 .Mul,
3429 .Lpmx,
34923430 .Des,
3493 .Xmegau,
3494 },
3495 CpuInfo(@This()).create(.Atxmega64b3, "atxmega64b3", &[_]FeatureType {
34963431 .Ijmpcall,
3497 .Elpmx,
3432 .Break,
3433 .Xmega,
3434 }),
3435 CpuInfo(@This(), FeatureType).create(.Atxmega64a3u, "atxmega64a3u", &[_]FeatureType {
3436 .Lpm,
3437 .Elpm,
34983438 .Movw,
3439 .Elpmx,
3440 .Spm,
3441 .Avr0,
3442 .Sram,
3443 .Jmpcall,
34993444 .Eijmpcall,
3445 .Spmx,
3446 .Addsubiw,
35003447 .Mul,
3448 .Lpmx,
35013449 .Rmw,
3502 .Sram,
3450 .Des,
3451 .Ijmpcall,
35033452 .Break,
3504 .Spm,
3453 .Xmegau,
3454 }),
3455 CpuInfo(@This(), FeatureType).create(.Atxmega64a4u, "atxmega64a4u", &[_]FeatureType {
3456 .Lpm,
35053457 .Elpm,
3506 .Lpmx,
3507 .Spmx,
3458 .Movw,
3459 .Elpmx,
3460 .Spm,
35083461 .Avr0,
3462 .Sram,
35093463 .Jmpcall,
3464 .Eijmpcall,
3465 .Spmx,
35103466 .Addsubiw,
3511 .Lpm,
3467 .Mul,
3468 .Lpmx,
3469 .Rmw,
35123470 .Des,
3513 .Xmegau,
3514 },
3515 CpuInfo(@This()).create(.Atxmega64c3, "atxmega64c3", &[_]FeatureType {
35163471 .Ijmpcall,
3517 .Elpmx,
3472 .Break,
3473 .Xmegau,
3474 }),
3475 CpuInfo(@This(), FeatureType).create(.Atxmega64b1, "atxmega64b1", &[_]FeatureType {
3476 .Lpm,
3477 .Elpm,
35183478 .Movw,
3479 .Elpmx,
3480 .Spm,
3481 .Avr0,
3482 .Sram,
3483 .Jmpcall,
35193484 .Eijmpcall,
3485 .Spmx,
3486 .Addsubiw,
35203487 .Mul,
3488 .Lpmx,
35213489 .Rmw,
3522 .Sram,
3490 .Des,
3491 .Ijmpcall,
35233492 .Break,
3524 .Spm,
3493 .Xmegau,
3494 }),
3495 CpuInfo(@This(), FeatureType).create(.Atxmega64b3, "atxmega64b3", &[_]FeatureType {
3496 .Lpm,
35253497 .Elpm,
3526 .Lpmx,
3527 .Spmx,
3498 .Movw,
3499 .Elpmx,
3500 .Spm,
35283501 .Avr0,
3502 .Sram,
35293503 .Jmpcall,
3504 .Eijmpcall,
3505 .Spmx,
35303506 .Addsubiw,
3531 .Lpm,
3507 .Mul,
3508 .Lpmx,
3509 .Rmw,
35323510 .Des,
3533 .Xmegau,
3534 },
3535 CpuInfo(@This()).create(.Atxmega64d3, "atxmega64d3", &[_]FeatureType {
35363511 .Ijmpcall,
3537 .Elpmx,
3538 .Movw,
3539 .Eijmpcall,
3540 .Mul,
3541 .Sram,
35423512 .Break,
3543 .Spm,
3513 .Xmegau,
3514 }),
3515 CpuInfo(@This(), FeatureType).create(.Atxmega64c3, "atxmega64c3", &[_]FeatureType {
3516 .Lpm,
35443517 .Elpm,
3545 .Lpmx,
3546 .Spmx,
3518 .Movw,
3519 .Elpmx,
3520 .Spm,
35473521 .Avr0,
3522 .Sram,
35483523 .Jmpcall,
3524 .Eijmpcall,
3525 .Spmx,
35493526 .Addsubiw,
3550 .Lpm,
3527 .Mul,
3528 .Lpmx,
3529 .Rmw,
35513530 .Des,
3552 .Xmega,
3553 },
3554 CpuInfo(@This()).create(.Atxmega64d4, "atxmega64d4", &[_]FeatureType {
35553531 .Ijmpcall,
3556 .Elpmx,
3557 .Movw,
3558 .Eijmpcall,
3559 .Mul,
3560 .Sram,
35613532 .Break,
3562 .Spm,
3533 .Xmegau,
3534 }),
3535 CpuInfo(@This(), FeatureType).create(.Atxmega64d3, "atxmega64d3", &[_]FeatureType {
3536 .Lpm,
35633537 .Elpm,
3564 .Lpmx,
3565 .Spmx,
3538 .Movw,
3539 .Elpmx,
3540 .Spm,
35663541 .Avr0,
3542 .Sram,
35673543 .Jmpcall,
3544 .Eijmpcall,
3545 .Spmx,
35683546 .Addsubiw,
3569 .Lpm,
3547 .Mul,
3548 .Lpmx,
35703549 .Des,
3571 .Xmega,
3572 },
3573 CpuInfo(@This()).create(.Atxmega8e5, "atxmega8e5", &[_]FeatureType {
35743550 .Ijmpcall,
3575 .Elpmx,
3551 .Break,
3552 .Xmega,
3553 }),
3554 CpuInfo(@This(), FeatureType).create(.Atxmega64d4, "atxmega64d4", &[_]FeatureType {
3555 .Lpm,
3556 .Elpm,
35763557 .Movw,
3558 .Elpmx,
3559 .Spm,
3560 .Avr0,
3561 .Sram,
3562 .Jmpcall,
35773563 .Eijmpcall,
3564 .Spmx,
3565 .Addsubiw,
35783566 .Mul,
3579 .Sram,
3567 .Lpmx,
3568 .Des,
3569 .Ijmpcall,
35803570 .Break,
3581 .Spm,
3571 .Xmega,
3572 }),
3573 CpuInfo(@This(), FeatureType).create(.Atxmega8e5, "atxmega8e5", &[_]FeatureType {
3574 .Lpm,
35823575 .Elpm,
3583 .Lpmx,
3584 .Spmx,
3576 .Movw,
3577 .Elpmx,
3578 .Spm,
35853579 .Avr0,
3580 .Sram,
35863581 .Jmpcall,
3582 .Eijmpcall,
3583 .Spmx,
35873584 .Addsubiw,
3588 .Lpm,
3585 .Mul,
3586 .Lpmx,
35893587 .Des,
3588 .Ijmpcall,
3589 .Break,
35903590 .Xmega,
3591 },
3592 CpuInfo(@This()).create(.Avr1, "avr1", &[_]FeatureType {
3593 .Lpm,
3591 }),
3592 CpuInfo(@This(), FeatureType).create(.Avr1, "avr1", &[_]FeatureType {
35943593 .Avr0,
3594 .Lpm,
35953595 .Avr1,
3596 },
3597 CpuInfo(@This()).create(.Avr2, "avr2", &[_]FeatureType {
3598 .Ijmpcall,
3599 .Sram,
3596 }),
3597 CpuInfo(@This(), FeatureType).create(.Avr2, "avr2", &[_]FeatureType {
3598 .Lpm,
36003599 .Avr0,
3600 .Sram,
36013601 .Addsubiw,
3602 .Lpm,
3603 .Avr2,
3604 },
3605 CpuInfo(@This()).create(.Avr25, "avr25", &[_]FeatureType {
36063602 .Ijmpcall,
3603 .Avr2,
3604 }),
3605 CpuInfo(@This(), FeatureType).create(.Avr25, "avr25", &[_]FeatureType {
3606 .Lpm,
36073607 .Movw,
3608 .Sram,
3609 .Break,
36103608 .Spm,
3611 .Lpmx,
36123609 .Avr0,
3610 .Sram,
36133611 .Addsubiw,
3614 .Lpm,
3615 .Avr25,
3616 },
3617 CpuInfo(@This()).create(.Avr3, "avr3", &[_]FeatureType {
3612 .Lpmx,
36183613 .Ijmpcall,
3619 .Sram,
3614 .Break,
3615 .Avr25,
3616 }),
3617 CpuInfo(@This(), FeatureType).create(.Avr3, "avr3", &[_]FeatureType {
3618 .Lpm,
36203619 .Avr0,
3620 .Sram,
36213621 .Jmpcall,
36223622 .Addsubiw,
3623 .Lpm,
3624 .Avr3,
3625 },
3626 CpuInfo(@This()).create(.Avr31, "avr31", &[_]FeatureType {
36273623 .Ijmpcall,
3628 .Sram,
3624 .Avr3,
3625 }),
3626 CpuInfo(@This(), FeatureType).create(.Avr31, "avr31", &[_]FeatureType {
3627 .Lpm,
36293628 .Elpm,
36303629 .Avr0,
3630 .Sram,
36313631 .Jmpcall,
36323632 .Addsubiw,
3633 .Lpm,
3634 .Avr31,
3635 },
3636 CpuInfo(@This()).create(.Avr35, "avr35", &[_]FeatureType {
36373633 .Ijmpcall,
3634 .Avr31,
3635 }),
3636 CpuInfo(@This(), FeatureType).create(.Avr35, "avr35", &[_]FeatureType {
3637 .Lpm,
36383638 .Movw,
3639 .Sram,
3640 .Break,
36413639 .Spm,
3642 .Lpmx,
36433640 .Avr0,
3641 .Sram,
36443642 .Jmpcall,
36453643 .Addsubiw,
3646 .Lpm,
3647 .Avr35,
3648 },
3649 CpuInfo(@This()).create(.Avr4, "avr4", &[_]FeatureType {
3644 .Lpmx,
36503645 .Ijmpcall,
3651 .Movw,
3652 .Mul,
3653 .Sram,
36543646 .Break,
3647 .Avr35,
3648 }),
3649 CpuInfo(@This(), FeatureType).create(.Avr4, "avr4", &[_]FeatureType {
3650 .Lpm,
3651 .Movw,
36553652 .Spm,
3656 .Lpmx,
36573653 .Avr0,
3654 .Sram,
36583655 .Addsubiw,
3659 .Lpm,
3660 .Avr4,
3661 },
3662 CpuInfo(@This()).create(.Avr5, "avr5", &[_]FeatureType {
3663 .Ijmpcall,
3664 .Movw,
36653656 .Mul,
3666 .Sram,
3657 .Lpmx,
3658 .Ijmpcall,
36673659 .Break,
3660 .Avr4,
3661 }),
3662 CpuInfo(@This(), FeatureType).create(.Avr5, "avr5", &[_]FeatureType {
3663 .Lpm,
3664 .Movw,
36683665 .Spm,
3669 .Lpmx,
36703666 .Avr0,
3667 .Sram,
36713668 .Jmpcall,
36723669 .Addsubiw,
3673 .Lpm,
3674 .Avr5,
3675 },
3676 CpuInfo(@This()).create(.Avr51, "avr51", &[_]FeatureType {
3677 .Ijmpcall,
3678 .Elpmx,
3679 .Movw,
36803670 .Mul,
3681 .Sram,
3671 .Lpmx,
3672 .Ijmpcall,
36823673 .Break,
3683 .Spm,
3674 .Avr5,
3675 }),
3676 CpuInfo(@This(), FeatureType).create(.Avr51, "avr51", &[_]FeatureType {
3677 .Lpm,
36843678 .Elpm,
3685 .Lpmx,
3679 .Movw,
3680 .Elpmx,
3681 .Spm,
36863682 .Avr0,
3683 .Sram,
36873684 .Jmpcall,
36883685 .Addsubiw,
3689 .Lpm,
3690 .Avr51,
3691 },
3692 CpuInfo(@This()).create(.Avr6, "avr6", &[_]FeatureType {
3693 .Ijmpcall,
3694 .Elpmx,
3695 .Movw,
36963686 .Mul,
3697 .Sram,
3687 .Lpmx,
3688 .Ijmpcall,
36983689 .Break,
3699 .Spm,
3690 .Avr51,
3691 }),
3692 CpuInfo(@This(), FeatureType).create(.Avr6, "avr6", &[_]FeatureType {
3693 .Lpm,
37003694 .Elpm,
3701 .Lpmx,
3695 .Movw,
3696 .Elpmx,
3697 .Spm,
37023698 .Avr0,
3699 .Sram,
37033700 .Jmpcall,
37043701 .Addsubiw,
3705 .Lpm,
3706 .Avr6,
3707 },
3708 CpuInfo(@This()).create(.Avrtiny, "avrtiny", &[_]FeatureType {
3702 .Mul,
3703 .Lpmx,
3704 .Ijmpcall,
37093705 .Break,
3710 .Tinyencoding,
3706 .Avr6,
3707 }),
3708 CpuInfo(@This(), FeatureType).create(.Avrtiny, "avrtiny", &[_]FeatureType {
37113709 .Avr0,
37123710 .Sram,
3711 .Break,
3712 .Tinyencoding,
37133713 .Avrtiny,
3714 },
3715 CpuInfo(@This()).create(.Avrxmega1, "avrxmega1", &[_]FeatureType {
3716 .Ijmpcall,
3717 .Elpmx,
3714 }),
3715 CpuInfo(@This(), FeatureType).create(.Avrxmega1, "avrxmega1", &[_]FeatureType {
3716 .Lpm,
3717 .Elpm,
37183718 .Movw,
3719 .Eijmpcall,
3720 .Mul,
3721 .Sram,
3722 .Break,
3719 .Elpmx,
37233720 .Spm,
3724 .Elpm,
3725 .Lpmx,
3726 .Spmx,
37273721 .Avr0,
3722 .Sram,
37283723 .Jmpcall,
3724 .Eijmpcall,
3725 .Spmx,
37293726 .Addsubiw,
3730 .Lpm,
3727 .Mul,
3728 .Lpmx,
37313729 .Des,
3732 .Xmega,
3733 },
3734 CpuInfo(@This()).create(.Avrxmega2, "avrxmega2", &[_]FeatureType {
37353730 .Ijmpcall,
3736 .Elpmx,
3737 .Movw,
3738 .Eijmpcall,
3739 .Mul,
3740 .Sram,
37413731 .Break,
3742 .Spm,
3732 .Xmega,
3733 }),
3734 CpuInfo(@This(), FeatureType).create(.Avrxmega2, "avrxmega2", &[_]FeatureType {
3735 .Lpm,
37433736 .Elpm,
3744 .Lpmx,
3745 .Spmx,
3737 .Movw,
3738 .Elpmx,
3739 .Spm,
37463740 .Avr0,
3741 .Sram,
37473742 .Jmpcall,
3743 .Eijmpcall,
3744 .Spmx,
37483745 .Addsubiw,
3749 .Lpm,
3746 .Mul,
3747 .Lpmx,
37503748 .Des,
3751 .Xmega,
3752 },
3753 CpuInfo(@This()).create(.Avrxmega3, "avrxmega3", &[_]FeatureType {
37543749 .Ijmpcall,
3755 .Elpmx,
3756 .Movw,
3757 .Eijmpcall,
3758 .Mul,
3759 .Sram,
37603750 .Break,
3761 .Spm,
3751 .Xmega,
3752 }),
3753 CpuInfo(@This(), FeatureType).create(.Avrxmega3, "avrxmega3", &[_]FeatureType {
3754 .Lpm,
37623755 .Elpm,
3763 .Lpmx,
3764 .Spmx,
3756 .Movw,
3757 .Elpmx,
3758 .Spm,
37653759 .Avr0,
3760 .Sram,
37663761 .Jmpcall,
3762 .Eijmpcall,
3763 .Spmx,
37673764 .Addsubiw,
3768 .Lpm,
3765 .Mul,
3766 .Lpmx,
37693767 .Des,
3770 .Xmega,
3771 },
3772 CpuInfo(@This()).create(.Avrxmega4, "avrxmega4", &[_]FeatureType {
37733768 .Ijmpcall,
3774 .Elpmx,
3775 .Movw,
3776 .Eijmpcall,
3777 .Mul,
3778 .Sram,
37793769 .Break,
3780 .Spm,
3770 .Xmega,
3771 }),
3772 CpuInfo(@This(), FeatureType).create(.Avrxmega4, "avrxmega4", &[_]FeatureType {
3773 .Lpm,
37813774 .Elpm,
3782 .Lpmx,
3783 .Spmx,
3775 .Movw,
3776 .Elpmx,
3777 .Spm,
37843778 .Avr0,
3779 .Sram,
37853780 .Jmpcall,
3781 .Eijmpcall,
3782 .Spmx,
37863783 .Addsubiw,
3787 .Lpm,
3784 .Mul,
3785 .Lpmx,
37883786 .Des,
3789 .Xmega,
3790 },
3791 CpuInfo(@This()).create(.Avrxmega5, "avrxmega5", &[_]FeatureType {
37923787 .Ijmpcall,
3793 .Elpmx,
3794 .Movw,
3795 .Eijmpcall,
3796 .Mul,
3797 .Sram,
37983788 .Break,
3799 .Spm,
3789 .Xmega,
3790 }),
3791 CpuInfo(@This(), FeatureType).create(.Avrxmega5, "avrxmega5", &[_]FeatureType {
3792 .Lpm,
38003793 .Elpm,
3801 .Lpmx,
3802 .Spmx,
3794 .Movw,
3795 .Elpmx,
3796 .Spm,
38033797 .Avr0,
3798 .Sram,
38043799 .Jmpcall,
3800 .Eijmpcall,
3801 .Spmx,
38053802 .Addsubiw,
3806 .Lpm,
3803 .Mul,
3804 .Lpmx,
38073805 .Des,
3808 .Xmega,
3809 },
3810 CpuInfo(@This()).create(.Avrxmega6, "avrxmega6", &[_]FeatureType {
38113806 .Ijmpcall,
3812 .Elpmx,
3813 .Movw,
3814 .Eijmpcall,
3815 .Mul,
3816 .Sram,
38173807 .Break,
3818 .Spm,
3808 .Xmega,
3809 }),
3810 CpuInfo(@This(), FeatureType).create(.Avrxmega6, "avrxmega6", &[_]FeatureType {
3811 .Lpm,
38193812 .Elpm,
3820 .Lpmx,
3821 .Spmx,
3813 .Movw,
3814 .Elpmx,
3815 .Spm,
38223816 .Avr0,
3817 .Sram,
38233818 .Jmpcall,
3819 .Eijmpcall,
3820 .Spmx,
38243821 .Addsubiw,
3825 .Lpm,
3822 .Mul,
3823 .Lpmx,
38263824 .Des,
3827 .Xmega,
3828 },
3829 CpuInfo(@This()).create(.Avrxmega7, "avrxmega7", &[_]FeatureType {
38303825 .Ijmpcall,
3831 .Elpmx,
3832 .Movw,
3833 .Eijmpcall,
3834 .Mul,
3835 .Sram,
38363826 .Break,
3837 .Spm,
3827 .Xmega,
3828 }),
3829 CpuInfo(@This(), FeatureType).create(.Avrxmega7, "avrxmega7", &[_]FeatureType {
3830 .Lpm,
38383831 .Elpm,
3839 .Lpmx,
3840 .Spmx,
3832 .Movw,
3833 .Elpmx,
3834 .Spm,
38413835 .Avr0,
3836 .Sram,
38423837 .Jmpcall,
3838 .Eijmpcall,
3839 .Spmx,
38433840 .Addsubiw,
3844 .Lpm,
3841 .Mul,
3842 .Lpmx,
38453843 .Des,
3846 .Xmega,
3847 },
3848 CpuInfo(@This()).create(.M3000, "m3000", &[_]FeatureType {
38493844 .Ijmpcall,
3850 .Movw,
3851 .Mul,
3852 .Sram,
38533845 .Break,
3846 .Xmega,
3847 }),
3848 CpuInfo(@This(), FeatureType).create(.M3000, "m3000", &[_]FeatureType {
3849 .Lpm,
3850 .Movw,
38543851 .Spm,
3855 .Lpmx,
38563852 .Avr0,
3853 .Sram,
38573854 .Jmpcall,
38583855 .Addsubiw,
3859 .Lpm,
3856 .Mul,
3857 .Lpmx,
3858 .Ijmpcall,
3859 .Break,
38603860 .Avr5,
3861 },
3861 }),
38623862 };
38633863};
lib/std/target/cpu/BpfCpu.zig+14-14
......@@ -8,22 +8,22 @@ pub const BpfCpu = enum {
88 V2,
99 V3,
1010
11 pub fn getInfo(self: @This()) CpuInfo {
11 const FeatureType = feature.BpfFeature;
12
13 pub fn getInfo(self: @This()) CpuInfo(@This(), FeatureType) {
1214 return cpu_infos[@enumToInt(self)];
1315 }
1416
15 pub const FeatureType = feature.BpfFeature;
16
17 const cpu_infos = [@memberCount(@This())]CpuInfo(@This()) {
18 CpuInfo(@This()).create(.Generic, "generic", &[_]FeatureType {
19 },
20 CpuInfo(@This()).create(.Probe, "probe", &[_]FeatureType {
21 },
22 CpuInfo(@This()).create(.V1, "v1", &[_]FeatureType {
23 },
24 CpuInfo(@This()).create(.V2, "v2", &[_]FeatureType {
25 },
26 CpuInfo(@This()).create(.V3, "v3", &[_]FeatureType {
27 },
17 pub const cpu_infos = [@memberCount(@This())]CpuInfo(@This(), FeatureType) {
18 CpuInfo(@This(), FeatureType).create(.Generic, "generic", &[_]FeatureType {
19 }),
20 CpuInfo(@This(), FeatureType).create(.Probe, "probe", &[_]FeatureType {
21 }),
22 CpuInfo(@This(), FeatureType).create(.V1, "v1", &[_]FeatureType {
23 }),
24 CpuInfo(@This(), FeatureType).create(.V2, "v2", &[_]FeatureType {
25 }),
26 CpuInfo(@This(), FeatureType).create(.V3, "v3", &[_]FeatureType {
27 }),
2828 };
2929};
lib/std/target/cpu/HexagonCpu.zig+18-18
......@@ -10,14 +10,14 @@ pub const HexagonCpu = enum {
1010 Hexagonv65,
1111 Hexagonv66,
1212
13 pub fn getInfo(self: @This()) CpuInfo {
13 const FeatureType = feature.HexagonFeature;
14
15 pub fn getInfo(self: @This()) CpuInfo(@This(), FeatureType) {
1416 return cpu_infos[@enumToInt(self)];
1517 }
1618
17 pub const FeatureType = feature.HexagonFeature;
18
19 const cpu_infos = [@memberCount(@This())]CpuInfo(@This()) {
20 CpuInfo(@This()).create(.Generic, "generic", &[_]FeatureType {
19 pub const cpu_infos = [@memberCount(@This())]CpuInfo(@This(), FeatureType) {
20 CpuInfo(@This(), FeatureType).create(.Generic, "generic", &[_]FeatureType {
2121 .V5,
2222 .V55,
2323 .V60,
......@@ -27,8 +27,8 @@ pub const HexagonCpu = enum {
2727 .Nvj,
2828 .Nvs,
2929 .SmallData,
30 },
31 CpuInfo(@This()).create(.Hexagonv5, "hexagonv5", &[_]FeatureType {
30 }),
31 CpuInfo(@This(), FeatureType).create(.Hexagonv5, "hexagonv5", &[_]FeatureType {
3232 .V5,
3333 .Duplex,
3434 .Memops,
......@@ -36,8 +36,8 @@ pub const HexagonCpu = enum {
3636 .Nvj,
3737 .Nvs,
3838 .SmallData,
39 },
40 CpuInfo(@This()).create(.Hexagonv55, "hexagonv55", &[_]FeatureType {
39 }),
40 CpuInfo(@This(), FeatureType).create(.Hexagonv55, "hexagonv55", &[_]FeatureType {
4141 .V5,
4242 .V55,
4343 .Duplex,
......@@ -46,8 +46,8 @@ pub const HexagonCpu = enum {
4646 .Nvj,
4747 .Nvs,
4848 .SmallData,
49 },
50 CpuInfo(@This()).create(.Hexagonv60, "hexagonv60", &[_]FeatureType {
49 }),
50 CpuInfo(@This(), FeatureType).create(.Hexagonv60, "hexagonv60", &[_]FeatureType {
5151 .V5,
5252 .V55,
5353 .V60,
......@@ -57,8 +57,8 @@ pub const HexagonCpu = enum {
5757 .Nvj,
5858 .Nvs,
5959 .SmallData,
60 },
61 CpuInfo(@This()).create(.Hexagonv62, "hexagonv62", &[_]FeatureType {
60 }),
61 CpuInfo(@This(), FeatureType).create(.Hexagonv62, "hexagonv62", &[_]FeatureType {
6262 .V5,
6363 .V55,
6464 .V60,
......@@ -69,8 +69,8 @@ pub const HexagonCpu = enum {
6969 .Nvj,
7070 .Nvs,
7171 .SmallData,
72 },
73 CpuInfo(@This()).create(.Hexagonv65, "hexagonv65", &[_]FeatureType {
72 }),
73 CpuInfo(@This(), FeatureType).create(.Hexagonv65, "hexagonv65", &[_]FeatureType {
7474 .V5,
7575 .V55,
7676 .V60,
......@@ -83,8 +83,8 @@ pub const HexagonCpu = enum {
8383 .Nvj,
8484 .Nvs,
8585 .SmallData,
86 },
87 CpuInfo(@This()).create(.Hexagonv66, "hexagonv66", &[_]FeatureType {
86 }),
87 CpuInfo(@This(), FeatureType).create(.Hexagonv66, "hexagonv66", &[_]FeatureType {
8888 .V5,
8989 .V55,
9090 .V60,
......@@ -98,6 +98,6 @@ pub const HexagonCpu = enum {
9898 .Nvj,
9999 .Nvs,
100100 .SmallData,
101 },
101 }),
102102 };
103103};
lib/std/target/cpu/MipsCpu.zig+110-110
......@@ -20,171 +20,171 @@ pub const MipsCpu = enum {
2020 Octeon,
2121 P5600,
2222
23 pub fn getInfo(self: @This()) CpuInfo {
23 const FeatureType = feature.MipsFeature;
24
25 pub fn getInfo(self: @This()) CpuInfo(@This(), FeatureType) {
2426 return cpu_infos[@enumToInt(self)];
2527 }
2628
27 pub const FeatureType = feature.MipsFeature;
28
29 const cpu_infos = [@memberCount(@This())]CpuInfo(@This()) {
30 CpuInfo(@This()).create(.Mips1, "mips1", &[_]FeatureType {
29 pub const cpu_infos = [@memberCount(@This())]CpuInfo(@This(), FeatureType) {
30 CpuInfo(@This(), FeatureType).create(.Mips1, "mips1", &[_]FeatureType {
3131 .Mips1,
32 },
33 CpuInfo(@This()).create(.Mips2, "mips2", &[_]FeatureType {
32 }),
33 CpuInfo(@This(), FeatureType).create(.Mips2, "mips2", &[_]FeatureType {
3434 .Mips1,
3535 .Mips2,
36 },
37 CpuInfo(@This()).create(.Mips3, "mips3", &[_]FeatureType {
38 .Mips3_32,
39 .Fp64,
36 }),
37 CpuInfo(@This(), FeatureType).create(.Mips3, "mips3", &[_]FeatureType {
4038 .Mips3_32r2,
41 .Mips1,
39 .Fp64,
4240 .Gp64,
43 .Mips3,
44 },
45 CpuInfo(@This()).create(.Mips32, "mips32", &[_]FeatureType {
41 .Mips1,
4642 .Mips3_32,
43 .Mips3,
44 }),
45 CpuInfo(@This(), FeatureType).create(.Mips32, "mips32", &[_]FeatureType {
4746 .Mips4_32,
4847 .Mips1,
49 .Mips32,
50 },
51 CpuInfo(@This()).create(.Mips32r2, "mips32r2", &[_]FeatureType {
5248 .Mips3_32,
49 .Mips32,
50 }),
51 CpuInfo(@This(), FeatureType).create(.Mips32r2, "mips32r2", &[_]FeatureType {
52 .Mips5_32r2,
5353 .Mips4_32r2,
5454 .Mips3_32r2,
55 .Mips1,
5655 .Mips4_32,
57 .Mips5_32r2,
58 .Mips32r2,
59 },
60 CpuInfo(@This()).create(.Mips32r3, "mips32r3", &[_]FeatureType {
56 .Mips1,
6157 .Mips3_32,
62 .Mips4_32r2,
58 .Mips32r2,
59 }),
60 CpuInfo(@This(), FeatureType).create(.Mips32r3, "mips32r3", &[_]FeatureType {
61 .Mips5_32r2,
6362 .Mips3_32r2,
64 .Mips1,
63 .Mips4_32r2,
6564 .Mips4_32,
66 .Mips5_32r2,
67 .Mips32r3,
68 },
69 CpuInfo(@This()).create(.Mips32r5, "mips32r5", &[_]FeatureType {
65 .Mips1,
7066 .Mips3_32,
71 .Mips4_32r2,
67 .Mips32r3,
68 }),
69 CpuInfo(@This(), FeatureType).create(.Mips32r5, "mips32r5", &[_]FeatureType {
70 .Mips5_32r2,
7271 .Mips3_32r2,
73 .Mips1,
72 .Mips4_32r2,
7473 .Mips4_32,
75 .Mips5_32r2,
76 .Mips32r5,
77 },
78 CpuInfo(@This()).create(.Mips32r6, "mips32r6", &[_]FeatureType {
74 .Mips1,
7975 .Mips3_32,
80 .Fp64,
76 .Mips32r5,
77 }),
78 CpuInfo(@This(), FeatureType).create(.Mips32r6, "mips32r6", &[_]FeatureType {
79 .Mips5_32r2,
80 .Mips3_32r2,
8181 .Mips4_32r2,
8282 .Abs2008,
83 .Mips3_32r2,
84 .Mips1,
85 .Mips4_32,
8683 .Nan2008,
87 .Mips5_32r2,
88 .Mips32r6,
89 },
90 CpuInfo(@This()).create(.Mips4, "mips4", &[_]FeatureType {
91 .Mips3_32,
9284 .Fp64,
93 .Mips4_32r2,
94 .Mips3_32r2,
95 .Mips1,
9685 .Mips4_32,
97 .Gp64,
98 .Mips4,
99 },
100 CpuInfo(@This()).create(.Mips5, "mips5", &[_]FeatureType {
86 .Mips1,
10187 .Mips3_32,
102 .Fp64,
103 .Mips4_32r2,
88 .Mips32r6,
89 }),
90 CpuInfo(@This(), FeatureType).create(.Mips4, "mips4", &[_]FeatureType {
10491 .Mips3_32r2,
105 .Mips1,
106 .Mips4_32,
92 .Mips4_32r2,
93 .Fp64,
10794 .Gp64,
108 .Mips5_32r2,
109 .Mips5,
110 },
111 CpuInfo(@This()).create(.Mips64, "mips64", &[_]FeatureType {
95 .Mips4_32,
96 .Mips1,
11297 .Mips3_32,
113 .Fp64,
98 .Mips4,
99 }),
100 CpuInfo(@This(), FeatureType).create(.Mips5, "mips5", &[_]FeatureType {
101 .Mips5_32r2,
114102 .Mips4_32r2,
115103 .Mips3_32r2,
116 .Mips1,
117 .Mips4_32,
118104 .Gp64,
119 .Mips5_32r2,
120 .Mips64,
121 },
122 CpuInfo(@This()).create(.Mips64r2, "mips64r2", &[_]FeatureType {
123 .Mips3_32,
124105 .Fp64,
125 .Mips4_32r2,
126 .Mips3_32r2,
127 .Mips1,
128106 .Mips4_32,
129 .Gp64,
130 .Mips5_32r2,
131 .Mips64r2,
132 },
133 CpuInfo(@This()).create(.Mips64r3, "mips64r3", &[_]FeatureType {
107 .Mips1,
134108 .Mips3_32,
135 .Fp64,
136 .Mips4_32r2,
109 .Mips5,
110 }),
111 CpuInfo(@This(), FeatureType).create(.Mips64, "mips64", &[_]FeatureType {
112 .Mips5_32r2,
137113 .Mips3_32r2,
138 .Mips1,
139 .Mips4_32,
114 .Mips4_32r2,
140115 .Gp64,
141 .Mips5_32r2,
142 .Mips64r3,
143 },
144 CpuInfo(@This()).create(.Mips64r5, "mips64r5", &[_]FeatureType {
145 .Mips3_32,
146116 .Fp64,
147 .Mips4_32r2,
148 .Mips3_32r2,
149 .Mips1,
150117 .Mips4_32,
151 .Gp64,
152 .Mips5_32r2,
153 .Mips64r5,
154 },
155 CpuInfo(@This()).create(.Mips64r6, "mips64r6", &[_]FeatureType {
118 .Mips1,
156119 .Mips3_32,
157 .Fp64,
120 .Mips64,
121 }),
122 CpuInfo(@This(), FeatureType).create(.Mips64r2, "mips64r2", &[_]FeatureType {
123 .Mips5_32r2,
124 .Mips3_32r2,
158125 .Mips4_32r2,
159 .Abs2008,
126 .Gp64,
127 .Fp64,
128 .Mips4_32,
129 .Mips1,
130 .Mips3_32,
131 .Mips64r2,
132 }),
133 CpuInfo(@This(), FeatureType).create(.Mips64r3, "mips64r3", &[_]FeatureType {
134 .Mips5_32r2,
160135 .Mips3_32r2,
136 .Mips4_32r2,
137 .Gp64,
138 .Fp64,
139 .Mips4_32,
161140 .Mips1,
141 .Mips3_32,
142 .Mips64r3,
143 }),
144 CpuInfo(@This(), FeatureType).create(.Mips64r5, "mips64r5", &[_]FeatureType {
145 .Mips5_32r2,
146 .Mips3_32r2,
147 .Mips4_32r2,
148 .Gp64,
149 .Fp64,
162150 .Mips4_32,
151 .Mips1,
152 .Mips3_32,
153 .Mips64r5,
154 }),
155 CpuInfo(@This(), FeatureType).create(.Mips64r6, "mips64r6", &[_]FeatureType {
156 .Mips5_32r2,
157 .Mips3_32r2,
163158 .Nan2008,
159 .Abs2008,
160 .Mips4_32r2,
161 .Fp64,
164162 .Gp64,
165 .Mips5_32r2,
166 .Mips64r6,
167 },
168 CpuInfo(@This()).create(.Octeon, "octeon", &[_]FeatureType {
163 .Mips4_32,
164 .Mips1,
169165 .Mips3_32,
170 .Fp64,
171 .Mips4_32r2,
166 .Mips64r6,
167 }),
168 CpuInfo(@This(), FeatureType).create(.Octeon, "octeon", &[_]FeatureType {
169 .Mips5_32r2,
172170 .Mips3_32r2,
173 .Mips1,
174 .Mips4_32,
171 .Mips4_32r2,
175172 .Gp64,
176 .Mips5_32r2,
173 .Fp64,
174 .Mips4_32,
175 .Mips1,
176 .Mips3_32,
177177 .Cnmips,
178178 .Mips64r2,
179 },
180 CpuInfo(@This()).create(.P5600, "p5600", &[_]FeatureType {
181 .Mips3_32,
182 .Mips4_32r2,
179 }),
180 CpuInfo(@This(), FeatureType).create(.P5600, "p5600", &[_]FeatureType {
181 .Mips5_32r2,
183182 .Mips3_32r2,
184 .Mips1,
183 .Mips4_32r2,
185184 .Mips4_32,
186 .Mips5_32r2,
185 .Mips1,
186 .Mips3_32,
187187 .P5600,
188 },
188 }),
189189 };
190190};
lib/std/target/cpu/Msp430Cpu.zig+10-10
......@@ -6,19 +6,19 @@ pub const Msp430Cpu = enum {
66 Msp430,
77 Msp430x,
88
9 pub fn getInfo(self: @This()) CpuInfo {
9 const FeatureType = feature.Msp430Feature;
10
11 pub fn getInfo(self: @This()) CpuInfo(@This(), FeatureType) {
1012 return cpu_infos[@enumToInt(self)];
1113 }
1214
13 pub const FeatureType = feature.Msp430Feature;
14
15 const cpu_infos = [@memberCount(@This())]CpuInfo(@This()) {
16 CpuInfo(@This()).create(.Generic, "generic", &[_]FeatureType {
17 },
18 CpuInfo(@This()).create(.Msp430, "msp430", &[_]FeatureType {
19 },
20 CpuInfo(@This()).create(.Msp430x, "msp430x", &[_]FeatureType {
15 pub const cpu_infos = [@memberCount(@This())]CpuInfo(@This(), FeatureType) {
16 CpuInfo(@This(), FeatureType).create(.Generic, "generic", &[_]FeatureType {
17 }),
18 CpuInfo(@This(), FeatureType).create(.Msp430, "msp430", &[_]FeatureType {
19 }),
20 CpuInfo(@This(), FeatureType).create(.Msp430x, "msp430x", &[_]FeatureType {
2121 .Ext,
22 },
22 }),
2323 };
2424};
lib/std/target/cpu/NvptxCpu.zig+34-34
......@@ -18,68 +18,68 @@ pub const NvptxCpu = enum {
1818 Sm_72,
1919 Sm_75,
2020
21 pub fn getInfo(self: @This()) CpuInfo {
21 const FeatureType = feature.NvptxFeature;
22
23 pub fn getInfo(self: @This()) CpuInfo(@This(), FeatureType) {
2224 return cpu_infos[@enumToInt(self)];
2325 }
2426
25 pub const FeatureType = feature.NvptxFeature;
26
27 const cpu_infos = [@memberCount(@This())]CpuInfo(@This()) {
28 CpuInfo(@This()).create(.Sm_20, "sm_20", &[_]FeatureType {
27 pub const cpu_infos = [@memberCount(@This())]CpuInfo(@This(), FeatureType) {
28 CpuInfo(@This(), FeatureType).create(.Sm_20, "sm_20", &[_]FeatureType {
2929 .Sm_20,
30 },
31 CpuInfo(@This()).create(.Sm_21, "sm_21", &[_]FeatureType {
30 }),
31 CpuInfo(@This(), FeatureType).create(.Sm_21, "sm_21", &[_]FeatureType {
3232 .Sm_21,
33 },
34 CpuInfo(@This()).create(.Sm_30, "sm_30", &[_]FeatureType {
33 }),
34 CpuInfo(@This(), FeatureType).create(.Sm_30, "sm_30", &[_]FeatureType {
3535 .Sm_30,
36 },
37 CpuInfo(@This()).create(.Sm_32, "sm_32", &[_]FeatureType {
36 }),
37 CpuInfo(@This(), FeatureType).create(.Sm_32, "sm_32", &[_]FeatureType {
3838 .Ptx40,
3939 .Sm_32,
40 },
41 CpuInfo(@This()).create(.Sm_35, "sm_35", &[_]FeatureType {
40 }),
41 CpuInfo(@This(), FeatureType).create(.Sm_35, "sm_35", &[_]FeatureType {
4242 .Sm_35,
43 },
44 CpuInfo(@This()).create(.Sm_37, "sm_37", &[_]FeatureType {
43 }),
44 CpuInfo(@This(), FeatureType).create(.Sm_37, "sm_37", &[_]FeatureType {
4545 .Ptx41,
4646 .Sm_37,
47 },
48 CpuInfo(@This()).create(.Sm_50, "sm_50", &[_]FeatureType {
47 }),
48 CpuInfo(@This(), FeatureType).create(.Sm_50, "sm_50", &[_]FeatureType {
4949 .Ptx40,
5050 .Sm_50,
51 },
52 CpuInfo(@This()).create(.Sm_52, "sm_52", &[_]FeatureType {
51 }),
52 CpuInfo(@This(), FeatureType).create(.Sm_52, "sm_52", &[_]FeatureType {
5353 .Ptx41,
5454 .Sm_52,
55 },
56 CpuInfo(@This()).create(.Sm_53, "sm_53", &[_]FeatureType {
55 }),
56 CpuInfo(@This(), FeatureType).create(.Sm_53, "sm_53", &[_]FeatureType {
5757 .Ptx42,
5858 .Sm_53,
59 },
60 CpuInfo(@This()).create(.Sm_60, "sm_60", &[_]FeatureType {
59 }),
60 CpuInfo(@This(), FeatureType).create(.Sm_60, "sm_60", &[_]FeatureType {
6161 .Ptx50,
6262 .Sm_60,
63 },
64 CpuInfo(@This()).create(.Sm_61, "sm_61", &[_]FeatureType {
63 }),
64 CpuInfo(@This(), FeatureType).create(.Sm_61, "sm_61", &[_]FeatureType {
6565 .Ptx50,
6666 .Sm_61,
67 },
68 CpuInfo(@This()).create(.Sm_62, "sm_62", &[_]FeatureType {
67 }),
68 CpuInfo(@This(), FeatureType).create(.Sm_62, "sm_62", &[_]FeatureType {
6969 .Ptx50,
7070 .Sm_62,
71 },
72 CpuInfo(@This()).create(.Sm_70, "sm_70", &[_]FeatureType {
71 }),
72 CpuInfo(@This(), FeatureType).create(.Sm_70, "sm_70", &[_]FeatureType {
7373 .Ptx60,
7474 .Sm_70,
75 },
76 CpuInfo(@This()).create(.Sm_72, "sm_72", &[_]FeatureType {
75 }),
76 CpuInfo(@This(), FeatureType).create(.Sm_72, "sm_72", &[_]FeatureType {
7777 .Ptx61,
7878 .Sm_72,
79 },
80 CpuInfo(@This()).create(.Sm_75, "sm_75", &[_]FeatureType {
79 }),
80 CpuInfo(@This(), FeatureType).create(.Sm_75, "sm_75", &[_]FeatureType {
8181 .Ptx63,
8282 .Sm_75,
83 },
83 }),
8484 };
8585};
lib/std/target/cpu/PowerPcCpu.zig+90-90
......@@ -2,20 +2,20 @@ const feature = @import("std").target.feature;
22const CpuInfo = @import("std").target.cpu.CpuInfo;
33
44pub const PowerPcCpu = enum {
5 440,
6 450,
7 601,
8 602,
9 603,
5 Cpu440,
6 Cpu450,
7 Cpu601,
8 Cpu602,
9 Cpu603,
1010 E603,
1111 Ev603,
12 604,
12 Cpu604,
1313 E604,
14 620,
15 7400,
16 7450,
17 750,
18 970,
14 Cpu620,
15 Cpu7400,
16 Cpu7450,
17 Cpu750,
18 Cpu970,
1919 A2,
2020 A2q,
2121 E500,
......@@ -23,7 +23,7 @@ pub const PowerPcCpu = enum {
2323 E5500,
2424 G3,
2525 G4,
26 G4+,
26 G4plus,
2727 G5,
2828 Generic,
2929 Ppc,
......@@ -40,14 +40,14 @@ pub const PowerPcCpu = enum {
4040 Pwr8,
4141 Pwr9,
4242
43 pub fn getInfo(self: @This()) CpuInfo {
43 const FeatureType = feature.PowerPcFeature;
44
45 pub fn getInfo(self: @This()) CpuInfo(@This(), FeatureType) {
4446 return cpu_infos[@enumToInt(self)];
4547 }
4648
47 pub const FeatureType = feature.PowerPcFeature;
48
49 const cpu_infos = [@memberCount(@This())]CpuInfo(@This()) {
50 CpuInfo(@This()).create(.440, "440", &[_]FeatureType {
49 pub const cpu_infos = [@memberCount(@This())]CpuInfo(@This(), FeatureType) {
50 CpuInfo(@This(), FeatureType).create(.Cpu440, "440", &[_]FeatureType {
5151 .Icbt,
5252 .Booke,
5353 .HardFloat,
......@@ -55,8 +55,8 @@ pub const PowerPcCpu = enum {
5555 .Frsqrte,
5656 .Isel,
5757 .Msync,
58 },
59 CpuInfo(@This()).create(.450, "450", &[_]FeatureType {
58 }),
59 CpuInfo(@This(), FeatureType).create(.Cpu450, "450", &[_]FeatureType {
6060 .Icbt,
6161 .Booke,
6262 .HardFloat,
......@@ -64,63 +64,63 @@ pub const PowerPcCpu = enum {
6464 .Frsqrte,
6565 .Isel,
6666 .Msync,
67 },
68 CpuInfo(@This()).create(.601, "601", &[_]FeatureType {
67 }),
68 CpuInfo(@This(), FeatureType).create(.Cpu601, "601", &[_]FeatureType {
6969 .HardFloat,
7070 .Fpu,
71 },
72 CpuInfo(@This()).create(.602, "602", &[_]FeatureType {
71 }),
72 CpuInfo(@This(), FeatureType).create(.Cpu602, "602", &[_]FeatureType {
7373 .HardFloat,
7474 .Fpu,
75 },
76 CpuInfo(@This()).create(.603, "603", &[_]FeatureType {
75 }),
76 CpuInfo(@This(), FeatureType).create(.Cpu603, "603", &[_]FeatureType {
7777 .HardFloat,
7878 .Fres,
7979 .Frsqrte,
80 },
81 CpuInfo(@This()).create(.E603, "603e", &[_]FeatureType {
80 }),
81 CpuInfo(@This(), FeatureType).create(.E603, "603e", &[_]FeatureType {
8282 .HardFloat,
8383 .Fres,
8484 .Frsqrte,
85 },
86 CpuInfo(@This()).create(.Ev603, "603ev", &[_]FeatureType {
85 }),
86 CpuInfo(@This(), FeatureType).create(.Ev603, "603ev", &[_]FeatureType {
8787 .HardFloat,
8888 .Fres,
8989 .Frsqrte,
90 },
91 CpuInfo(@This()).create(.604, "604", &[_]FeatureType {
90 }),
91 CpuInfo(@This(), FeatureType).create(.Cpu604, "604", &[_]FeatureType {
9292 .HardFloat,
9393 .Fres,
9494 .Frsqrte,
95 },
96 CpuInfo(@This()).create(.E604, "604e", &[_]FeatureType {
95 }),
96 CpuInfo(@This(), FeatureType).create(.E604, "604e", &[_]FeatureType {
9797 .HardFloat,
9898 .Fres,
9999 .Frsqrte,
100 },
101 CpuInfo(@This()).create(.620, "620", &[_]FeatureType {
100 }),
101 CpuInfo(@This(), FeatureType).create(.Cpu620, "620", &[_]FeatureType {
102102 .HardFloat,
103103 .Fres,
104104 .Frsqrte,
105 },
106 CpuInfo(@This()).create(.7400, "7400", &[_]FeatureType {
105 }),
106 CpuInfo(@This(), FeatureType).create(.Cpu7400, "7400", &[_]FeatureType {
107107 .HardFloat,
108108 .Altivec,
109109 .Fres,
110110 .Frsqrte,
111 },
112 CpuInfo(@This()).create(.7450, "7450", &[_]FeatureType {
111 }),
112 CpuInfo(@This(), FeatureType).create(.Cpu7450, "7450", &[_]FeatureType {
113113 .HardFloat,
114114 .Altivec,
115115 .Fres,
116116 .Frsqrte,
117 },
118 CpuInfo(@This()).create(.750, "750", &[_]FeatureType {
117 }),
118 CpuInfo(@This(), FeatureType).create(.Cpu750, "750", &[_]FeatureType {
119119 .HardFloat,
120120 .Fres,
121121 .Frsqrte,
122 },
123 CpuInfo(@This()).create(.970, "970", &[_]FeatureType {
122 }),
123 CpuInfo(@This(), FeatureType).create(.Cpu970, "970", &[_]FeatureType {
124124 .Bit64,
125125 .HardFloat,
126126 .Altivec,
......@@ -129,8 +129,8 @@ pub const PowerPcCpu = enum {
129129 .Fsqrt,
130130 .Mfocrf,
131131 .Stfiwx,
132 },
133 CpuInfo(@This()).create(.A2, "a2", &[_]FeatureType {
132 }),
133 CpuInfo(@This(), FeatureType).create(.A2, "a2", &[_]FeatureType {
134134 .Bit64,
135135 .Icbt,
136136 .Booke,
......@@ -151,8 +151,8 @@ pub const PowerPcCpu = enum {
151151 .Recipprec,
152152 .Stfiwx,
153153 .SlowPopcntd,
154 },
155 CpuInfo(@This()).create(.A2q, "a2q", &[_]FeatureType {
154 }),
155 CpuInfo(@This(), FeatureType).create(.A2q, "a2q", &[_]FeatureType {
156156 .Bit64,
157157 .Icbt,
158158 .Booke,
......@@ -174,20 +174,20 @@ pub const PowerPcCpu = enum {
174174 .Recipprec,
175175 .Stfiwx,
176176 .SlowPopcntd,
177 },
178 CpuInfo(@This()).create(.E500, "e500", &[_]FeatureType {
177 }),
178 CpuInfo(@This(), FeatureType).create(.E500, "e500", &[_]FeatureType {
179179 .Icbt,
180180 .Booke,
181181 .Isel,
182 },
183 CpuInfo(@This()).create(.E500mc, "e500mc", &[_]FeatureType {
182 }),
183 CpuInfo(@This(), FeatureType).create(.E500mc, "e500mc", &[_]FeatureType {
184184 .Icbt,
185185 .Booke,
186186 .Isel,
187187 .HardFloat,
188188 .Stfiwx,
189 },
190 CpuInfo(@This()).create(.E5500, "e5500", &[_]FeatureType {
189 }),
190 CpuInfo(@This(), FeatureType).create(.E5500, "e5500", &[_]FeatureType {
191191 .Bit64,
192192 .Icbt,
193193 .Booke,
......@@ -195,25 +195,25 @@ pub const PowerPcCpu = enum {
195195 .Mfocrf,
196196 .HardFloat,
197197 .Stfiwx,
198 },
199 CpuInfo(@This()).create(.G3, "g3", &[_]FeatureType {
198 }),
199 CpuInfo(@This(), FeatureType).create(.G3, "g3", &[_]FeatureType {
200200 .HardFloat,
201201 .Fres,
202202 .Frsqrte,
203 },
204 CpuInfo(@This()).create(.G4, "g4", &[_]FeatureType {
203 }),
204 CpuInfo(@This(), FeatureType).create(.G4, "g4", &[_]FeatureType {
205205 .HardFloat,
206206 .Altivec,
207207 .Fres,
208208 .Frsqrte,
209 },
210 CpuInfo(@This()).create(.G4+, "g4+", &[_]FeatureType {
209 }),
210 CpuInfo(@This(), FeatureType).create(.G4plus, "g4+", &[_]FeatureType {
211211 .HardFloat,
212212 .Altivec,
213213 .Fres,
214214 .Frsqrte,
215 },
216 CpuInfo(@This()).create(.G5, "g5", &[_]FeatureType {
215 }),
216 CpuInfo(@This(), FeatureType).create(.G5, "g5", &[_]FeatureType {
217217 .Bit64,
218218 .HardFloat,
219219 .Altivec,
......@@ -222,17 +222,17 @@ pub const PowerPcCpu = enum {
222222 .Fsqrt,
223223 .Mfocrf,
224224 .Stfiwx,
225 },
226 CpuInfo(@This()).create(.Generic, "generic", &[_]FeatureType {
225 }),
226 CpuInfo(@This(), FeatureType).create(.Generic, "generic", &[_]FeatureType {
227227 .HardFloat,
228 },
229 CpuInfo(@This()).create(.Ppc, "ppc", &[_]FeatureType {
228 }),
229 CpuInfo(@This(), FeatureType).create(.Ppc, "ppc", &[_]FeatureType {
230230 .HardFloat,
231 },
232 CpuInfo(@This()).create(.Ppc32, "ppc32", &[_]FeatureType {
231 }),
232 CpuInfo(@This(), FeatureType).create(.Ppc32, "ppc32", &[_]FeatureType {
233233 .HardFloat,
234 },
235 CpuInfo(@This()).create(.Ppc64, "ppc64", &[_]FeatureType {
234 }),
235 CpuInfo(@This(), FeatureType).create(.Ppc64, "ppc64", &[_]FeatureType {
236236 .Bit64,
237237 .HardFloat,
238238 .Altivec,
......@@ -241,8 +241,8 @@ pub const PowerPcCpu = enum {
241241 .Fsqrt,
242242 .Mfocrf,
243243 .Stfiwx,
244 },
245 CpuInfo(@This()).create(.Ppc64le, "ppc64le", &[_]FeatureType {
244 }),
245 CpuInfo(@This(), FeatureType).create(.Ppc64le, "ppc64le", &[_]FeatureType {
246246 .Bit64,
247247 .HardFloat,
248248 .Altivec,
......@@ -273,8 +273,8 @@ pub const PowerPcCpu = enum {
273273 .Stfiwx,
274274 .TwoConstNr,
275275 .Vsx,
276 },
277 CpuInfo(@This()).create(.Pwr3, "pwr3", &[_]FeatureType {
276 }),
277 CpuInfo(@This(), FeatureType).create(.Pwr3, "pwr3", &[_]FeatureType {
278278 .Bit64,
279279 .HardFloat,
280280 .Altivec,
......@@ -282,8 +282,8 @@ pub const PowerPcCpu = enum {
282282 .Frsqrte,
283283 .Mfocrf,
284284 .Stfiwx,
285 },
286 CpuInfo(@This()).create(.Pwr4, "pwr4", &[_]FeatureType {
285 }),
286 CpuInfo(@This(), FeatureType).create(.Pwr4, "pwr4", &[_]FeatureType {
287287 .Bit64,
288288 .HardFloat,
289289 .Altivec,
......@@ -292,8 +292,8 @@ pub const PowerPcCpu = enum {
292292 .Fsqrt,
293293 .Mfocrf,
294294 .Stfiwx,
295 },
296 CpuInfo(@This()).create(.Pwr5, "pwr5", &[_]FeatureType {
295 }),
296 CpuInfo(@This(), FeatureType).create(.Pwr5, "pwr5", &[_]FeatureType {
297297 .Bit64,
298298 .HardFloat,
299299 .Altivec,
......@@ -304,8 +304,8 @@ pub const PowerPcCpu = enum {
304304 .Fsqrt,
305305 .Mfocrf,
306306 .Stfiwx,
307 },
308 CpuInfo(@This()).create(.Pwr5x, "pwr5x", &[_]FeatureType {
307 }),
308 CpuInfo(@This(), FeatureType).create(.Pwr5x, "pwr5x", &[_]FeatureType {
309309 .Bit64,
310310 .HardFloat,
311311 .Altivec,
......@@ -317,8 +317,8 @@ pub const PowerPcCpu = enum {
317317 .Fsqrt,
318318 .Mfocrf,
319319 .Stfiwx,
320 },
321 CpuInfo(@This()).create(.Pwr6, "pwr6", &[_]FeatureType {
320 }),
321 CpuInfo(@This(), FeatureType).create(.Pwr6, "pwr6", &[_]FeatureType {
322322 .Bit64,
323323 .HardFloat,
324324 .Altivec,
......@@ -334,8 +334,8 @@ pub const PowerPcCpu = enum {
334334 .Mfocrf,
335335 .Recipprec,
336336 .Stfiwx,
337 },
338 CpuInfo(@This()).create(.Pwr6x, "pwr6x", &[_]FeatureType {
337 }),
338 CpuInfo(@This(), FeatureType).create(.Pwr6x, "pwr6x", &[_]FeatureType {
339339 .Bit64,
340340 .HardFloat,
341341 .Altivec,
......@@ -351,8 +351,8 @@ pub const PowerPcCpu = enum {
351351 .Mfocrf,
352352 .Recipprec,
353353 .Stfiwx,
354 },
355 CpuInfo(@This()).create(.Pwr7, "pwr7", &[_]FeatureType {
354 }),
355 CpuInfo(@This(), FeatureType).create(.Pwr7, "pwr7", &[_]FeatureType {
356356 .Bit64,
357357 .HardFloat,
358358 .Altivec,
......@@ -376,8 +376,8 @@ pub const PowerPcCpu = enum {
376376 .Stfiwx,
377377 .TwoConstNr,
378378 .Vsx,
379 },
380 CpuInfo(@This()).create(.Pwr8, "pwr8", &[_]FeatureType {
379 }),
380 CpuInfo(@This(), FeatureType).create(.Pwr8, "pwr8", &[_]FeatureType {
381381 .Bit64,
382382 .HardFloat,
383383 .Altivec,
......@@ -408,8 +408,8 @@ pub const PowerPcCpu = enum {
408408 .Stfiwx,
409409 .TwoConstNr,
410410 .Vsx,
411 },
412 CpuInfo(@This()).create(.Pwr9, "pwr9", &[_]FeatureType {
411 }),
412 CpuInfo(@This(), FeatureType).create(.Pwr9, "pwr9", &[_]FeatureType {
413413 .Bit64,
414414 .HardFloat,
415415 .Altivec,
......@@ -446,6 +446,6 @@ pub const PowerPcCpu = enum {
446446 .TwoConstNr,
447447 .Vsx,
448448 .VectorsUseTwoUnits,
449 },
449 }),
450450 };
451451};
lib/std/target/cpu/RiscVCpu.zig+8-8
......@@ -5,19 +5,19 @@ pub const RiscVCpu = enum {
55 GenericRv32,
66 GenericRv64,
77
8 pub fn getInfo(self: @This()) CpuInfo {
8 const FeatureType = feature.RiscVFeature;
9
10 pub fn getInfo(self: @This()) CpuInfo(@This(), FeatureType) {
911 return cpu_infos[@enumToInt(self)];
1012 }
1113
12 pub const FeatureType = feature.RiscVFeature;
13
14 const cpu_infos = [@memberCount(@This())]CpuInfo(@This()) {
15 CpuInfo(@This()).create(.GenericRv32, "generic-rv32", &[_]FeatureType {
14 pub const cpu_infos = [@memberCount(@This())]CpuInfo(@This(), FeatureType) {
15 CpuInfo(@This(), FeatureType).create(.GenericRv32, "generic-rv32", &[_]FeatureType {
1616 .RvcHints,
17 },
18 CpuInfo(@This()).create(.GenericRv64, "generic-rv64", &[_]FeatureType {
17 }),
18 CpuInfo(@This(), FeatureType).create(.GenericRv64, "generic-rv64", &[_]FeatureType {
1919 .Bit64,
2020 .RvcHints,
21 },
21 }),
2222 };
2323};
lib/std/target/cpu/SparcCpu.zig+84-84
......@@ -43,174 +43,174 @@ pub const SparcCpu = enum {
4343 V8,
4444 V9,
4545
46 pub fn getInfo(self: @This()) CpuInfo {
46 const FeatureType = feature.SparcFeature;
47
48 pub fn getInfo(self: @This()) CpuInfo(@This(), FeatureType) {
4749 return cpu_infos[@enumToInt(self)];
4850 }
4951
50 pub const FeatureType = feature.SparcFeature;
51
52 const cpu_infos = [@memberCount(@This())]CpuInfo(@This()) {
53 CpuInfo(@This()).create(.At697e, "at697e", &[_]FeatureType {
52 pub const cpu_infos = [@memberCount(@This())]CpuInfo(@This(), FeatureType) {
53 CpuInfo(@This(), FeatureType).create(.At697e, "at697e", &[_]FeatureType {
5454 .Leon,
5555 .Insertnopload,
56 },
57 CpuInfo(@This()).create(.At697f, "at697f", &[_]FeatureType {
56 }),
57 CpuInfo(@This(), FeatureType).create(.At697f, "at697f", &[_]FeatureType {
5858 .Leon,
5959 .Insertnopload,
60 },
61 CpuInfo(@This()).create(.F934, "f934", &[_]FeatureType {
62 },
63 CpuInfo(@This()).create(.Generic, "generic", &[_]FeatureType {
64 },
65 CpuInfo(@This()).create(.Gr712rc, "gr712rc", &[_]FeatureType {
60 }),
61 CpuInfo(@This(), FeatureType).create(.F934, "f934", &[_]FeatureType {
62 }),
63 CpuInfo(@This(), FeatureType).create(.Generic, "generic", &[_]FeatureType {
64 }),
65 CpuInfo(@This(), FeatureType).create(.Gr712rc, "gr712rc", &[_]FeatureType {
6666 .Leon,
6767 .Hasleoncasa,
68 },
69 CpuInfo(@This()).create(.Gr740, "gr740", &[_]FeatureType {
68 }),
69 CpuInfo(@This(), FeatureType).create(.Gr740, "gr740", &[_]FeatureType {
7070 .Leon,
7171 .Leonpwrpsr,
7272 .Hasleoncasa,
7373 .Leoncyclecounter,
7474 .Hasumacsmac,
75 },
76 CpuInfo(@This()).create(.Hypersparc, "hypersparc", &[_]FeatureType {
77 },
78 CpuInfo(@This()).create(.Leon2, "leon2", &[_]FeatureType {
75 }),
76 CpuInfo(@This(), FeatureType).create(.Hypersparc, "hypersparc", &[_]FeatureType {
77 }),
78 CpuInfo(@This(), FeatureType).create(.Leon2, "leon2", &[_]FeatureType {
7979 .Leon,
80 },
81 CpuInfo(@This()).create(.Leon3, "leon3", &[_]FeatureType {
80 }),
81 CpuInfo(@This(), FeatureType).create(.Leon3, "leon3", &[_]FeatureType {
8282 .Leon,
8383 .Hasumacsmac,
84 },
85 CpuInfo(@This()).create(.Leon4, "leon4", &[_]FeatureType {
84 }),
85 CpuInfo(@This(), FeatureType).create(.Leon4, "leon4", &[_]FeatureType {
8686 .Leon,
8787 .Hasleoncasa,
8888 .Hasumacsmac,
89 },
90 CpuInfo(@This()).create(.Ma2080, "ma2080", &[_]FeatureType {
89 }),
90 CpuInfo(@This(), FeatureType).create(.Ma2080, "ma2080", &[_]FeatureType {
9191 .Leon,
9292 .Hasleoncasa,
93 },
94 CpuInfo(@This()).create(.Ma2085, "ma2085", &[_]FeatureType {
93 }),
94 CpuInfo(@This(), FeatureType).create(.Ma2085, "ma2085", &[_]FeatureType {
9595 .Leon,
9696 .Hasleoncasa,
97 },
98 CpuInfo(@This()).create(.Ma2100, "ma2100", &[_]FeatureType {
97 }),
98 CpuInfo(@This(), FeatureType).create(.Ma2100, "ma2100", &[_]FeatureType {
9999 .Leon,
100100 .Hasleoncasa,
101 },
102 CpuInfo(@This()).create(.Ma2150, "ma2150", &[_]FeatureType {
101 }),
102 CpuInfo(@This(), FeatureType).create(.Ma2150, "ma2150", &[_]FeatureType {
103103 .Leon,
104104 .Hasleoncasa,
105 },
106 CpuInfo(@This()).create(.Ma2155, "ma2155", &[_]FeatureType {
105 }),
106 CpuInfo(@This(), FeatureType).create(.Ma2155, "ma2155", &[_]FeatureType {
107107 .Leon,
108108 .Hasleoncasa,
109 },
110 CpuInfo(@This()).create(.Ma2450, "ma2450", &[_]FeatureType {
109 }),
110 CpuInfo(@This(), FeatureType).create(.Ma2450, "ma2450", &[_]FeatureType {
111111 .Leon,
112112 .Hasleoncasa,
113 },
114 CpuInfo(@This()).create(.Ma2455, "ma2455", &[_]FeatureType {
113 }),
114 CpuInfo(@This(), FeatureType).create(.Ma2455, "ma2455", &[_]FeatureType {
115115 .Leon,
116116 .Hasleoncasa,
117 },
118 CpuInfo(@This()).create(.Ma2480, "ma2480", &[_]FeatureType {
117 }),
118 CpuInfo(@This(), FeatureType).create(.Ma2480, "ma2480", &[_]FeatureType {
119119 .Leon,
120120 .Hasleoncasa,
121 },
122 CpuInfo(@This()).create(.Ma2485, "ma2485", &[_]FeatureType {
121 }),
122 CpuInfo(@This(), FeatureType).create(.Ma2485, "ma2485", &[_]FeatureType {
123123 .Leon,
124124 .Hasleoncasa,
125 },
126 CpuInfo(@This()).create(.Ma2x5x, "ma2x5x", &[_]FeatureType {
125 }),
126 CpuInfo(@This(), FeatureType).create(.Ma2x5x, "ma2x5x", &[_]FeatureType {
127127 .Leon,
128128 .Hasleoncasa,
129 },
130 CpuInfo(@This()).create(.Ma2x8x, "ma2x8x", &[_]FeatureType {
129 }),
130 CpuInfo(@This(), FeatureType).create(.Ma2x8x, "ma2x8x", &[_]FeatureType {
131131 .Leon,
132132 .Hasleoncasa,
133 },
134 CpuInfo(@This()).create(.Myriad2, "myriad2", &[_]FeatureType {
133 }),
134 CpuInfo(@This(), FeatureType).create(.Myriad2, "myriad2", &[_]FeatureType {
135135 .Leon,
136136 .Hasleoncasa,
137 },
138 CpuInfo(@This()).create(.Myriad21, "myriad2.1", &[_]FeatureType {
137 }),
138 CpuInfo(@This(), FeatureType).create(.Myriad21, "myriad2.1", &[_]FeatureType {
139139 .Leon,
140140 .Hasleoncasa,
141 },
142 CpuInfo(@This()).create(.Myriad22, "myriad2.2", &[_]FeatureType {
141 }),
142 CpuInfo(@This(), FeatureType).create(.Myriad22, "myriad2.2", &[_]FeatureType {
143143 .Leon,
144144 .Hasleoncasa,
145 },
146 CpuInfo(@This()).create(.Myriad23, "myriad2.3", &[_]FeatureType {
145 }),
146 CpuInfo(@This(), FeatureType).create(.Myriad23, "myriad2.3", &[_]FeatureType {
147147 .Leon,
148148 .Hasleoncasa,
149 },
150 CpuInfo(@This()).create(.Niagara, "niagara", &[_]FeatureType {
149 }),
150 CpuInfo(@This(), FeatureType).create(.Niagara, "niagara", &[_]FeatureType {
151151 .DeprecatedV8,
152152 .V9,
153153 .Vis,
154154 .Vis2,
155 },
156 CpuInfo(@This()).create(.Niagara2, "niagara2", &[_]FeatureType {
155 }),
156 CpuInfo(@This(), FeatureType).create(.Niagara2, "niagara2", &[_]FeatureType {
157157 .DeprecatedV8,
158158 .V9,
159159 .Vis,
160160 .Vis2,
161161 .Popc,
162 },
163 CpuInfo(@This()).create(.Niagara3, "niagara3", &[_]FeatureType {
162 }),
163 CpuInfo(@This(), FeatureType).create(.Niagara3, "niagara3", &[_]FeatureType {
164164 .DeprecatedV8,
165165 .V9,
166166 .Vis,
167167 .Vis2,
168168 .Popc,
169 },
170 CpuInfo(@This()).create(.Niagara4, "niagara4", &[_]FeatureType {
169 }),
170 CpuInfo(@This(), FeatureType).create(.Niagara4, "niagara4", &[_]FeatureType {
171171 .DeprecatedV8,
172172 .V9,
173173 .Vis,
174174 .Vis2,
175175 .Vis3,
176176 .Popc,
177 },
178 CpuInfo(@This()).create(.Sparclet, "sparclet", &[_]FeatureType {
179 },
180 CpuInfo(@This()).create(.Sparclite, "sparclite", &[_]FeatureType {
181 },
182 CpuInfo(@This()).create(.Sparclite86x, "sparclite86x", &[_]FeatureType {
183 },
184 CpuInfo(@This()).create(.Supersparc, "supersparc", &[_]FeatureType {
185 },
186 CpuInfo(@This()).create(.Tsc701, "tsc701", &[_]FeatureType {
187 },
188 CpuInfo(@This()).create(.Ultrasparc, "ultrasparc", &[_]FeatureType {
177 }),
178 CpuInfo(@This(), FeatureType).create(.Sparclet, "sparclet", &[_]FeatureType {
179 }),
180 CpuInfo(@This(), FeatureType).create(.Sparclite, "sparclite", &[_]FeatureType {
181 }),
182 CpuInfo(@This(), FeatureType).create(.Sparclite86x, "sparclite86x", &[_]FeatureType {
183 }),
184 CpuInfo(@This(), FeatureType).create(.Supersparc, "supersparc", &[_]FeatureType {
185 }),
186 CpuInfo(@This(), FeatureType).create(.Tsc701, "tsc701", &[_]FeatureType {
187 }),
188 CpuInfo(@This(), FeatureType).create(.Ultrasparc, "ultrasparc", &[_]FeatureType {
189189 .DeprecatedV8,
190190 .V9,
191191 .Vis,
192 },
193 CpuInfo(@This()).create(.Ultrasparc3, "ultrasparc3", &[_]FeatureType {
192 }),
193 CpuInfo(@This(), FeatureType).create(.Ultrasparc3, "ultrasparc3", &[_]FeatureType {
194194 .DeprecatedV8,
195195 .V9,
196196 .Vis,
197197 .Vis2,
198 },
199 CpuInfo(@This()).create(.Ut699, "ut699", &[_]FeatureType {
198 }),
199 CpuInfo(@This(), FeatureType).create(.Ut699, "ut699", &[_]FeatureType {
200200 .Leon,
201201 .NoFmuls,
202202 .NoFsmuld,
203203 .Fixallfdivsqrt,
204204 .Insertnopload,
205 },
206 CpuInfo(@This()).create(.V7, "v7", &[_]FeatureType {
205 }),
206 CpuInfo(@This(), FeatureType).create(.V7, "v7", &[_]FeatureType {
207207 .NoFsmuld,
208208 .SoftMulDiv,
209 },
210 CpuInfo(@This()).create(.V8, "v8", &[_]FeatureType {
211 },
212 CpuInfo(@This()).create(.V9, "v9", &[_]FeatureType {
209 }),
210 CpuInfo(@This(), FeatureType).create(.V8, "v8", &[_]FeatureType {
211 }),
212 CpuInfo(@This(), FeatureType).create(.V9, "v9", &[_]FeatureType {
213213 .V9,
214 },
214 }),
215215 };
216216};
lib/std/target/cpu/SystemZCpu.zig+30-30
......@@ -16,14 +16,14 @@ pub const SystemZCpu = enum {
1616 Z196,
1717 ZEC12,
1818
19 pub fn getInfo(self: @This()) CpuInfo {
19 const FeatureType = feature.SystemZFeature;
20
21 pub fn getInfo(self: @This()) CpuInfo(@This(), FeatureType) {
2022 return cpu_infos[@enumToInt(self)];
2123 }
2224
23 pub const FeatureType = feature.SystemZFeature;
24
25 const cpu_infos = [@memberCount(@This())]CpuInfo(@This()) {
26 CpuInfo(@This()).create(.Arch10, "arch10", &[_]FeatureType {
25 pub const cpu_infos = [@memberCount(@This())]CpuInfo(@This(), FeatureType) {
26 CpuInfo(@This(), FeatureType).create(.Arch10, "arch10", &[_]FeatureType {
2727 .DfpZonedConversion,
2828 .DistinctOps,
2929 .EnhancedDat2,
......@@ -41,8 +41,8 @@ pub const SystemZCpu = enum {
4141 .ProcessorAssist,
4242 .ResetReferenceBitsMultiple,
4343 .TransactionalExecution,
44 },
45 CpuInfo(@This()).create(.Arch11, "arch11", &[_]FeatureType {
44 }),
45 CpuInfo(@This(), FeatureType).create(.Arch11, "arch11", &[_]FeatureType {
4646 .DfpPackedConversion,
4747 .DfpZonedConversion,
4848 .DistinctOps,
......@@ -65,8 +65,8 @@ pub const SystemZCpu = enum {
6565 .ResetReferenceBitsMultiple,
6666 .TransactionalExecution,
6767 .Vector,
68 },
69 CpuInfo(@This()).create(.Arch12, "arch12", &[_]FeatureType {
68 }),
69 CpuInfo(@This(), FeatureType).create(.Arch12, "arch12", &[_]FeatureType {
7070 .DfpPackedConversion,
7171 .DfpZonedConversion,
7272 .DistinctOps,
......@@ -96,8 +96,8 @@ pub const SystemZCpu = enum {
9696 .Vector,
9797 .VectorEnhancements1,
9898 .VectorPackedDecimal,
99 },
100 CpuInfo(@This()).create(.Arch13, "arch13", &[_]FeatureType {
99 }),
100 CpuInfo(@This(), FeatureType).create(.Arch13, "arch13", &[_]FeatureType {
101101 .DfpPackedConversion,
102102 .DfpZonedConversion,
103103 .DeflateConversion,
......@@ -133,10 +133,10 @@ pub const SystemZCpu = enum {
133133 .VectorEnhancements2,
134134 .VectorPackedDecimal,
135135 .VectorPackedDecimalEnhancement,
136 },
137 CpuInfo(@This()).create(.Arch8, "arch8", &[_]FeatureType {
138 },
139 CpuInfo(@This()).create(.Arch9, "arch9", &[_]FeatureType {
136 }),
137 CpuInfo(@This(), FeatureType).create(.Arch8, "arch8", &[_]FeatureType {
138 }),
139 CpuInfo(@This(), FeatureType).create(.Arch9, "arch9", &[_]FeatureType {
140140 .DistinctOps,
141141 .FpExtension,
142142 .FastSerialization,
......@@ -147,12 +147,12 @@ pub const SystemZCpu = enum {
147147 .MessageSecurityAssistExtension4,
148148 .PopulationCount,
149149 .ResetReferenceBitsMultiple,
150 },
151 CpuInfo(@This()).create(.Generic, "generic", &[_]FeatureType {
152 },
153 CpuInfo(@This()).create(.Z10, "z10", &[_]FeatureType {
154 },
155 CpuInfo(@This()).create(.Z13, "z13", &[_]FeatureType {
150 }),
151 CpuInfo(@This(), FeatureType).create(.Generic, "generic", &[_]FeatureType {
152 }),
153 CpuInfo(@This(), FeatureType).create(.Z10, "z10", &[_]FeatureType {
154 }),
155 CpuInfo(@This(), FeatureType).create(.Z13, "z13", &[_]FeatureType {
156156 .DfpPackedConversion,
157157 .DfpZonedConversion,
158158 .DistinctOps,
......@@ -175,8 +175,8 @@ pub const SystemZCpu = enum {
175175 .ResetReferenceBitsMultiple,
176176 .TransactionalExecution,
177177 .Vector,
178 },
179 CpuInfo(@This()).create(.Z14, "z14", &[_]FeatureType {
178 }),
179 CpuInfo(@This(), FeatureType).create(.Z14, "z14", &[_]FeatureType {
180180 .DfpPackedConversion,
181181 .DfpZonedConversion,
182182 .DistinctOps,
......@@ -206,8 +206,8 @@ pub const SystemZCpu = enum {
206206 .Vector,
207207 .VectorEnhancements1,
208208 .VectorPackedDecimal,
209 },
210 CpuInfo(@This()).create(.Z15, "z15", &[_]FeatureType {
209 }),
210 CpuInfo(@This(), FeatureType).create(.Z15, "z15", &[_]FeatureType {
211211 .DfpPackedConversion,
212212 .DfpZonedConversion,
213213 .DeflateConversion,
......@@ -243,8 +243,8 @@ pub const SystemZCpu = enum {
243243 .VectorEnhancements2,
244244 .VectorPackedDecimal,
245245 .VectorPackedDecimalEnhancement,
246 },
247 CpuInfo(@This()).create(.Z196, "z196", &[_]FeatureType {
246 }),
247 CpuInfo(@This(), FeatureType).create(.Z196, "z196", &[_]FeatureType {
248248 .DistinctOps,
249249 .FpExtension,
250250 .FastSerialization,
......@@ -255,8 +255,8 @@ pub const SystemZCpu = enum {
255255 .MessageSecurityAssistExtension4,
256256 .PopulationCount,
257257 .ResetReferenceBitsMultiple,
258 },
259 CpuInfo(@This()).create(.ZEC12, "zEC12", &[_]FeatureType {
258 }),
259 CpuInfo(@This(), FeatureType).create(.ZEC12, "zEC12", &[_]FeatureType {
260260 .DfpZonedConversion,
261261 .DistinctOps,
262262 .EnhancedDat2,
......@@ -274,6 +274,6 @@ pub const SystemZCpu = enum {
274274 .ProcessorAssist,
275275 .ResetReferenceBitsMultiple,
276276 .TransactionalExecution,
277 },
277 }),
278278 };
279279};
lib/std/target/cpu/WebAssemblyCpu.zig+10-10
......@@ -6,23 +6,23 @@ pub const WebAssemblyCpu = enum {
66 Generic,
77 Mvp,
88
9 pub fn getInfo(self: @This()) CpuInfo {
9 const FeatureType = feature.WebAssemblyFeature;
10
11 pub fn getInfo(self: @This()) CpuInfo(@This(), FeatureType) {
1012 return cpu_infos[@enumToInt(self)];
1113 }
1214
13 pub const FeatureType = feature.WebAssemblyFeature;
14
15 const cpu_infos = [@memberCount(@This())]CpuInfo(@This()) {
16 CpuInfo(@This()).create(.BleedingEdge, "bleeding-edge", &[_]FeatureType {
15 pub const cpu_infos = [@memberCount(@This())]CpuInfo(@This(), FeatureType) {
16 CpuInfo(@This(), FeatureType).create(.BleedingEdge, "bleeding-edge", &[_]FeatureType {
1717 .Atomics,
1818 .MutableGlobals,
1919 .NontrappingFptoint,
2020 .Simd128,
2121 .SignExt,
22 },
23 CpuInfo(@This()).create(.Generic, "generic", &[_]FeatureType {
24 },
25 CpuInfo(@This()).create(.Mvp, "mvp", &[_]FeatureType {
26 },
22 }),
23 CpuInfo(@This(), FeatureType).create(.Generic, "generic", &[_]FeatureType {
24 }),
25 CpuInfo(@This(), FeatureType).create(.Mvp, "mvp", &[_]FeatureType {
26 }),
2727 };
2828};
lib/std/target/cpu/X86Cpu.zig+162-162
......@@ -82,14 +82,14 @@ pub const X86Cpu = enum {
8282 Znver1,
8383 Znver2,
8484
85 pub fn getInfo(self: @This()) CpuInfo {
85 const FeatureType = feature.X86Feature;
86
87 pub fn getInfo(self: @This()) CpuInfo(@This(), FeatureType) {
8688 return cpu_infos[@enumToInt(self)];
8789 }
8890
89 pub const FeatureType = feature.X86Feature;
90
91 const cpu_infos = [@memberCount(@This())]CpuInfo(@This()) {
92 CpuInfo(@This()).create(.Amdfam10, "amdfam10", &[_]FeatureType {
91 pub const cpu_infos = [@memberCount(@This())]CpuInfo(@This(), FeatureType) {
92 CpuInfo(@This(), FeatureType).create(.Amdfam10, "amdfam10", &[_]FeatureType {
9393 .Mmx,
9494 .Dnowa3,
9595 .Bit64,
......@@ -106,8 +106,8 @@ pub const X86Cpu = enum {
106106 .Sse4a,
107107 .SlowShld,
108108 .X87,
109 },
110 CpuInfo(@This()).create(.Athlon, "athlon", &[_]FeatureType {
109 }),
110 CpuInfo(@This(), FeatureType).create(.Athlon, "athlon", &[_]FeatureType {
111111 .Mmx,
112112 .Dnowa3,
113113 .Cmov,
......@@ -116,8 +116,8 @@ pub const X86Cpu = enum {
116116 .SlowShld,
117117 .SlowUnalignedMem16,
118118 .X87,
119 },
120 CpuInfo(@This()).create(.Athlon4, "athlon-4", &[_]FeatureType {
119 }),
120 CpuInfo(@This(), FeatureType).create(.Athlon4, "athlon-4", &[_]FeatureType {
121121 .Mmx,
122122 .Dnowa3,
123123 .Cmov,
......@@ -128,8 +128,8 @@ pub const X86Cpu = enum {
128128 .SlowShld,
129129 .SlowUnalignedMem16,
130130 .X87,
131 },
132 CpuInfo(@This()).create(.AthlonFx, "athlon-fx", &[_]FeatureType {
131 }),
132 CpuInfo(@This(), FeatureType).create(.AthlonFx, "athlon-fx", &[_]FeatureType {
133133 .Mmx,
134134 .Dnowa3,
135135 .Bit64,
......@@ -143,8 +143,8 @@ pub const X86Cpu = enum {
143143 .SlowShld,
144144 .SlowUnalignedMem16,
145145 .X87,
146 },
147 CpuInfo(@This()).create(.AthlonMp, "athlon-mp", &[_]FeatureType {
146 }),
147 CpuInfo(@This(), FeatureType).create(.AthlonMp, "athlon-mp", &[_]FeatureType {
148148 .Mmx,
149149 .Dnowa3,
150150 .Cmov,
......@@ -155,8 +155,8 @@ pub const X86Cpu = enum {
155155 .SlowShld,
156156 .SlowUnalignedMem16,
157157 .X87,
158 },
159 CpuInfo(@This()).create(.AthlonTbird, "athlon-tbird", &[_]FeatureType {
158 }),
159 CpuInfo(@This(), FeatureType).create(.AthlonTbird, "athlon-tbird", &[_]FeatureType {
160160 .Mmx,
161161 .Dnowa3,
162162 .Cmov,
......@@ -165,8 +165,8 @@ pub const X86Cpu = enum {
165165 .SlowShld,
166166 .SlowUnalignedMem16,
167167 .X87,
168 },
169 CpuInfo(@This()).create(.AthlonXp, "athlon-xp", &[_]FeatureType {
168 }),
169 CpuInfo(@This(), FeatureType).create(.AthlonXp, "athlon-xp", &[_]FeatureType {
170170 .Mmx,
171171 .Dnowa3,
172172 .Cmov,
......@@ -177,8 +177,8 @@ pub const X86Cpu = enum {
177177 .SlowShld,
178178 .SlowUnalignedMem16,
179179 .X87,
180 },
181 CpuInfo(@This()).create(.Athlon64, "athlon64", &[_]FeatureType {
180 }),
181 CpuInfo(@This(), FeatureType).create(.Athlon64, "athlon64", &[_]FeatureType {
182182 .Mmx,
183183 .Dnowa3,
184184 .Bit64,
......@@ -192,8 +192,8 @@ pub const X86Cpu = enum {
192192 .SlowShld,
193193 .SlowUnalignedMem16,
194194 .X87,
195 },
196 CpuInfo(@This()).create(.Athlon64Sse3, "athlon64-sse3", &[_]FeatureType {
195 }),
196 CpuInfo(@This(), FeatureType).create(.Athlon64Sse3, "athlon64-sse3", &[_]FeatureType {
197197 .Mmx,
198198 .Dnowa3,
199199 .Bit64,
......@@ -208,8 +208,8 @@ pub const X86Cpu = enum {
208208 .SlowShld,
209209 .SlowUnalignedMem16,
210210 .X87,
211 },
212 CpuInfo(@This()).create(.Atom, "atom", &[_]FeatureType {
211 }),
212 CpuInfo(@This(), FeatureType).create(.Atom, "atom", &[_]FeatureType {
213213 .Bit64,
214214 .Cmov,
215215 .Cx8,
......@@ -229,8 +229,8 @@ pub const X86Cpu = enum {
229229 .SlowTwoMemOps,
230230 .SlowUnalignedMem16,
231231 .X87,
232 },
233 CpuInfo(@This()).create(.Barcelona, "barcelona", &[_]FeatureType {
232 }),
233 CpuInfo(@This(), FeatureType).create(.Barcelona, "barcelona", &[_]FeatureType {
234234 .Mmx,
235235 .Dnowa3,
236236 .Bit64,
......@@ -247,8 +247,8 @@ pub const X86Cpu = enum {
247247 .Sse4a,
248248 .SlowShld,
249249 .X87,
250 },
251 CpuInfo(@This()).create(.Bdver1, "bdver1", &[_]FeatureType {
250 }),
251 CpuInfo(@This(), FeatureType).create(.Bdver1, "bdver1", &[_]FeatureType {
252252 .Bit64,
253253 .Sse,
254254 .Aes,
......@@ -271,8 +271,8 @@ pub const X86Cpu = enum {
271271 .X87,
272272 .Xop,
273273 .Xsave,
274 },
275 CpuInfo(@This()).create(.Bdver2, "bdver2", &[_]FeatureType {
274 }),
275 CpuInfo(@This(), FeatureType).create(.Bdver2, "bdver2", &[_]FeatureType {
276276 .Bit64,
277277 .Sse,
278278 .Aes,
......@@ -300,8 +300,8 @@ pub const X86Cpu = enum {
300300 .X87,
301301 .Xop,
302302 .Xsave,
303 },
304 CpuInfo(@This()).create(.Bdver3, "bdver3", &[_]FeatureType {
303 }),
304 CpuInfo(@This(), FeatureType).create(.Bdver3, "bdver3", &[_]FeatureType {
305305 .Bit64,
306306 .Sse,
307307 .Aes,
......@@ -331,8 +331,8 @@ pub const X86Cpu = enum {
331331 .Xop,
332332 .Xsave,
333333 .Xsaveopt,
334 },
335 CpuInfo(@This()).create(.Bdver4, "bdver4", &[_]FeatureType {
334 }),
335 CpuInfo(@This(), FeatureType).create(.Bdver4, "bdver4", &[_]FeatureType {
336336 .Bit64,
337337 .Sse,
338338 .Aes,
......@@ -365,8 +365,8 @@ pub const X86Cpu = enum {
365365 .Xop,
366366 .Xsave,
367367 .Xsaveopt,
368 },
369 CpuInfo(@This()).create(.Bonnell, "bonnell", &[_]FeatureType {
368 }),
369 CpuInfo(@This(), FeatureType).create(.Bonnell, "bonnell", &[_]FeatureType {
370370 .Bit64,
371371 .Cmov,
372372 .Cx8,
......@@ -386,8 +386,8 @@ pub const X86Cpu = enum {
386386 .SlowTwoMemOps,
387387 .SlowUnalignedMem16,
388388 .X87,
389 },
390 CpuInfo(@This()).create(.Broadwell, "broadwell", &[_]FeatureType {
389 }),
390 CpuInfo(@This(), FeatureType).create(.Broadwell, "broadwell", &[_]FeatureType {
391391 .Bit64,
392392 .Adx,
393393 .Sse,
......@@ -427,8 +427,8 @@ pub const X86Cpu = enum {
427427 .X87,
428428 .Xsave,
429429 .Xsaveopt,
430 },
431 CpuInfo(@This()).create(.Btver1, "btver1", &[_]FeatureType {
430 }),
431 CpuInfo(@This(), FeatureType).create(.Btver1, "btver1", &[_]FeatureType {
432432 .Bit64,
433433 .Cmov,
434434 .Cx8,
......@@ -448,8 +448,8 @@ pub const X86Cpu = enum {
448448 .Ssse3,
449449 .SlowShld,
450450 .X87,
451 },
452 CpuInfo(@This()).create(.Btver2, "btver2", &[_]FeatureType {
451 }),
452 CpuInfo(@This(), FeatureType).create(.Btver2, "btver2", &[_]FeatureType {
453453 .Bit64,
454454 .Sse,
455455 .Aes,
......@@ -481,14 +481,14 @@ pub const X86Cpu = enum {
481481 .X87,
482482 .Xsave,
483483 .Xsaveopt,
484 },
485 CpuInfo(@This()).create(.C3, "c3", &[_]FeatureType {
484 }),
485 CpuInfo(@This(), FeatureType).create(.C3, "c3", &[_]FeatureType {
486486 .Mmx,
487487 .Dnow3,
488488 .SlowUnalignedMem16,
489489 .X87,
490 },
491 CpuInfo(@This()).create(.C32, "c3-2", &[_]FeatureType {
490 }),
491 CpuInfo(@This(), FeatureType).create(.C32, "c3-2", &[_]FeatureType {
492492 .Cmov,
493493 .Cx8,
494494 .Fxsr,
......@@ -496,8 +496,8 @@ pub const X86Cpu = enum {
496496 .Sse,
497497 .SlowUnalignedMem16,
498498 .X87,
499 },
500 CpuInfo(@This()).create(.Cannonlake, "cannonlake", &[_]FeatureType {
499 }),
500 CpuInfo(@This(), FeatureType).create(.Cannonlake, "cannonlake", &[_]FeatureType {
501501 .Bit64,
502502 .Adx,
503503 .Sse,
......@@ -552,8 +552,8 @@ pub const X86Cpu = enum {
552552 .Xsavec,
553553 .Xsaveopt,
554554 .Xsaves,
555 },
556 CpuInfo(@This()).create(.Cascadelake, "cascadelake", &[_]FeatureType {
555 }),
556 CpuInfo(@This(), FeatureType).create(.Cascadelake, "cascadelake", &[_]FeatureType {
557557 .Bit64,
558558 .Adx,
559559 .Sse,
......@@ -607,8 +607,8 @@ pub const X86Cpu = enum {
607607 .Xsavec,
608608 .Xsaveopt,
609609 .Xsaves,
610 },
611 CpuInfo(@This()).create(.Cooperlake, "cooperlake", &[_]FeatureType {
610 }),
611 CpuInfo(@This(), FeatureType).create(.Cooperlake, "cooperlake", &[_]FeatureType {
612612 .Bit64,
613613 .Adx,
614614 .Sse,
......@@ -663,8 +663,8 @@ pub const X86Cpu = enum {
663663 .Xsavec,
664664 .Xsaveopt,
665665 .Xsaves,
666 },
667 CpuInfo(@This()).create(.CoreAvxI, "core-avx-i", &[_]FeatureType {
666 }),
667 CpuInfo(@This(), FeatureType).create(.CoreAvxI, "core-avx-i", &[_]FeatureType {
668668 .Bit64,
669669 .Sse,
670670 .Avx,
......@@ -692,8 +692,8 @@ pub const X86Cpu = enum {
692692 .X87,
693693 .Xsave,
694694 .Xsaveopt,
695 },
696 CpuInfo(@This()).create(.CoreAvx2, "core-avx2", &[_]FeatureType {
695 }),
696 CpuInfo(@This(), FeatureType).create(.CoreAvx2, "core-avx2", &[_]FeatureType {
697697 .Bit64,
698698 .Sse,
699699 .Avx,
......@@ -730,8 +730,8 @@ pub const X86Cpu = enum {
730730 .X87,
731731 .Xsave,
732732 .Xsaveopt,
733 },
734 CpuInfo(@This()).create(.Core2, "core2", &[_]FeatureType {
733 }),
734 CpuInfo(@This(), FeatureType).create(.Core2, "core2", &[_]FeatureType {
735735 .Bit64,
736736 .Cmov,
737737 .Cx8,
......@@ -745,8 +745,8 @@ pub const X86Cpu = enum {
745745 .Ssse3,
746746 .SlowUnalignedMem16,
747747 .X87,
748 },
749 CpuInfo(@This()).create(.Corei7, "corei7", &[_]FeatureType {
748 }),
749 CpuInfo(@This(), FeatureType).create(.Corei7, "corei7", &[_]FeatureType {
750750 .Bit64,
751751 .Cmov,
752752 .Cx8,
......@@ -760,8 +760,8 @@ pub const X86Cpu = enum {
760760 .Sse,
761761 .Sse42,
762762 .X87,
763 },
764 CpuInfo(@This()).create(.Corei7Avx, "corei7-avx", &[_]FeatureType {
763 }),
764 CpuInfo(@This(), FeatureType).create(.Corei7Avx, "corei7-avx", &[_]FeatureType {
765765 .Bit64,
766766 .Sse,
767767 .Avx,
......@@ -786,20 +786,20 @@ pub const X86Cpu = enum {
786786 .X87,
787787 .Xsave,
788788 .Xsaveopt,
789 },
790 CpuInfo(@This()).create(.Generic, "generic", &[_]FeatureType {
789 }),
790 CpuInfo(@This(), FeatureType).create(.Generic, "generic", &[_]FeatureType {
791791 .Cx8,
792792 .SlowUnalignedMem16,
793793 .X87,
794 },
795 CpuInfo(@This()).create(.Geode, "geode", &[_]FeatureType {
794 }),
795 CpuInfo(@This(), FeatureType).create(.Geode, "geode", &[_]FeatureType {
796796 .Mmx,
797797 .Dnowa3,
798798 .Cx8,
799799 .SlowUnalignedMem16,
800800 .X87,
801 },
802 CpuInfo(@This()).create(.Goldmont, "goldmont", &[_]FeatureType {
801 }),
802 CpuInfo(@This(), FeatureType).create(.Goldmont, "goldmont", &[_]FeatureType {
803803 .Bit64,
804804 .Sse,
805805 .Aes,
......@@ -830,8 +830,8 @@ pub const X86Cpu = enum {
830830 .Xsavec,
831831 .Xsaveopt,
832832 .Xsaves,
833 },
834 CpuInfo(@This()).create(.GoldmontPlus, "goldmont-plus", &[_]FeatureType {
833 }),
834 CpuInfo(@This(), FeatureType).create(.GoldmontPlus, "goldmont-plus", &[_]FeatureType {
835835 .Bit64,
836836 .Sse,
837837 .Aes,
......@@ -864,8 +864,8 @@ pub const X86Cpu = enum {
864864 .Xsavec,
865865 .Xsaveopt,
866866 .Xsaves,
867 },
868 CpuInfo(@This()).create(.Haswell, "haswell", &[_]FeatureType {
867 }),
868 CpuInfo(@This(), FeatureType).create(.Haswell, "haswell", &[_]FeatureType {
869869 .Bit64,
870870 .Sse,
871871 .Avx,
......@@ -902,27 +902,27 @@ pub const X86Cpu = enum {
902902 .X87,
903903 .Xsave,
904904 .Xsaveopt,
905 },
906 CpuInfo(@This()).create(.I386, "i386", &[_]FeatureType {
905 }),
906 CpuInfo(@This(), FeatureType).create(.I386, "i386", &[_]FeatureType {
907907 .SlowUnalignedMem16,
908908 .X87,
909 },
910 CpuInfo(@This()).create(.I486, "i486", &[_]FeatureType {
909 }),
910 CpuInfo(@This(), FeatureType).create(.I486, "i486", &[_]FeatureType {
911911 .SlowUnalignedMem16,
912912 .X87,
913 },
914 CpuInfo(@This()).create(.I586, "i586", &[_]FeatureType {
913 }),
914 CpuInfo(@This(), FeatureType).create(.I586, "i586", &[_]FeatureType {
915915 .Cx8,
916916 .SlowUnalignedMem16,
917917 .X87,
918 },
919 CpuInfo(@This()).create(.I686, "i686", &[_]FeatureType {
918 }),
919 CpuInfo(@This(), FeatureType).create(.I686, "i686", &[_]FeatureType {
920920 .Cmov,
921921 .Cx8,
922922 .SlowUnalignedMem16,
923923 .X87,
924 },
925 CpuInfo(@This()).create(.IcelakeClient, "icelake-client", &[_]FeatureType {
924 }),
925 CpuInfo(@This(), FeatureType).create(.IcelakeClient, "icelake-client", &[_]FeatureType {
926926 .Bit64,
927927 .Adx,
928928 .Sse,
......@@ -986,8 +986,8 @@ pub const X86Cpu = enum {
986986 .Xsavec,
987987 .Xsaveopt,
988988 .Xsaves,
989 },
990 CpuInfo(@This()).create(.IcelakeServer, "icelake-server", &[_]FeatureType {
989 }),
990 CpuInfo(@This(), FeatureType).create(.IcelakeServer, "icelake-server", &[_]FeatureType {
991991 .Bit64,
992992 .Adx,
993993 .Sse,
......@@ -1053,8 +1053,8 @@ pub const X86Cpu = enum {
10531053 .Xsavec,
10541054 .Xsaveopt,
10551055 .Xsaves,
1056 },
1057 CpuInfo(@This()).create(.Ivybridge, "ivybridge", &[_]FeatureType {
1056 }),
1057 CpuInfo(@This(), FeatureType).create(.Ivybridge, "ivybridge", &[_]FeatureType {
10581058 .Bit64,
10591059 .Sse,
10601060 .Avx,
......@@ -1082,28 +1082,28 @@ pub const X86Cpu = enum {
10821082 .X87,
10831083 .Xsave,
10841084 .Xsaveopt,
1085 },
1086 CpuInfo(@This()).create(.K6, "k6", &[_]FeatureType {
1085 }),
1086 CpuInfo(@This(), FeatureType).create(.K6, "k6", &[_]FeatureType {
10871087 .Cx8,
10881088 .Mmx,
10891089 .SlowUnalignedMem16,
10901090 .X87,
1091 },
1092 CpuInfo(@This()).create(.K62, "k6-2", &[_]FeatureType {
1091 }),
1092 CpuInfo(@This(), FeatureType).create(.K62, "k6-2", &[_]FeatureType {
10931093 .Mmx,
10941094 .Dnow3,
10951095 .Cx8,
10961096 .SlowUnalignedMem16,
10971097 .X87,
1098 },
1099 CpuInfo(@This()).create(.K63, "k6-3", &[_]FeatureType {
1098 }),
1099 CpuInfo(@This(), FeatureType).create(.K63, "k6-3", &[_]FeatureType {
11001100 .Mmx,
11011101 .Dnow3,
11021102 .Cx8,
11031103 .SlowUnalignedMem16,
11041104 .X87,
1105 },
1106 CpuInfo(@This()).create(.K8, "k8", &[_]FeatureType {
1105 }),
1106 CpuInfo(@This(), FeatureType).create(.K8, "k8", &[_]FeatureType {
11071107 .Mmx,
11081108 .Dnowa3,
11091109 .Bit64,
......@@ -1117,8 +1117,8 @@ pub const X86Cpu = enum {
11171117 .SlowShld,
11181118 .SlowUnalignedMem16,
11191119 .X87,
1120 },
1121 CpuInfo(@This()).create(.K8Sse3, "k8-sse3", &[_]FeatureType {
1120 }),
1121 CpuInfo(@This(), FeatureType).create(.K8Sse3, "k8-sse3", &[_]FeatureType {
11221122 .Mmx,
11231123 .Dnowa3,
11241124 .Bit64,
......@@ -1133,8 +1133,8 @@ pub const X86Cpu = enum {
11331133 .SlowShld,
11341134 .SlowUnalignedMem16,
11351135 .X87,
1136 },
1137 CpuInfo(@This()).create(.Knl, "knl", &[_]FeatureType {
1136 }),
1137 CpuInfo(@This(), FeatureType).create(.Knl, "knl", &[_]FeatureType {
11381138 .Bit64,
11391139 .Adx,
11401140 .Sse,
......@@ -1173,8 +1173,8 @@ pub const X86Cpu = enum {
11731173 .X87,
11741174 .Xsave,
11751175 .Xsaveopt,
1176 },
1177 CpuInfo(@This()).create(.Knm, "knm", &[_]FeatureType {
1176 }),
1177 CpuInfo(@This(), FeatureType).create(.Knm, "knm", &[_]FeatureType {
11781178 .Bit64,
11791179 .Adx,
11801180 .Sse,
......@@ -1214,10 +1214,10 @@ pub const X86Cpu = enum {
12141214 .X87,
12151215 .Xsave,
12161216 .Xsaveopt,
1217 },
1218 CpuInfo(@This()).create(.Lakemont, "lakemont", &[_]FeatureType {
1219 },
1220 CpuInfo(@This()).create(.Nehalem, "nehalem", &[_]FeatureType {
1217 }),
1218 CpuInfo(@This(), FeatureType).create(.Lakemont, "lakemont", &[_]FeatureType {
1219 }),
1220 CpuInfo(@This(), FeatureType).create(.Nehalem, "nehalem", &[_]FeatureType {
12211221 .Bit64,
12221222 .Cmov,
12231223 .Cx8,
......@@ -1231,8 +1231,8 @@ pub const X86Cpu = enum {
12311231 .Sse,
12321232 .Sse42,
12331233 .X87,
1234 },
1235 CpuInfo(@This()).create(.Nocona, "nocona", &[_]FeatureType {
1234 }),
1235 CpuInfo(@This(), FeatureType).create(.Nocona, "nocona", &[_]FeatureType {
12361236 .Bit64,
12371237 .Cmov,
12381238 .Cx8,
......@@ -1244,8 +1244,8 @@ pub const X86Cpu = enum {
12441244 .Sse3,
12451245 .SlowUnalignedMem16,
12461246 .X87,
1247 },
1248 CpuInfo(@This()).create(.Opteron, "opteron", &[_]FeatureType {
1247 }),
1248 CpuInfo(@This(), FeatureType).create(.Opteron, "opteron", &[_]FeatureType {
12491249 .Mmx,
12501250 .Dnowa3,
12511251 .Bit64,
......@@ -1259,8 +1259,8 @@ pub const X86Cpu = enum {
12591259 .SlowShld,
12601260 .SlowUnalignedMem16,
12611261 .X87,
1262 },
1263 CpuInfo(@This()).create(.OpteronSse3, "opteron-sse3", &[_]FeatureType {
1262 }),
1263 CpuInfo(@This(), FeatureType).create(.OpteronSse3, "opteron-sse3", &[_]FeatureType {
12641264 .Mmx,
12651265 .Dnowa3,
12661266 .Bit64,
......@@ -1275,8 +1275,8 @@ pub const X86Cpu = enum {
12751275 .SlowShld,
12761276 .SlowUnalignedMem16,
12771277 .X87,
1278 },
1279 CpuInfo(@This()).create(.Penryn, "penryn", &[_]FeatureType {
1278 }),
1279 CpuInfo(@This(), FeatureType).create(.Penryn, "penryn", &[_]FeatureType {
12801280 .Bit64,
12811281 .Cmov,
12821282 .Cx8,
......@@ -1290,13 +1290,13 @@ pub const X86Cpu = enum {
12901290 .Sse41,
12911291 .SlowUnalignedMem16,
12921292 .X87,
1293 },
1294 CpuInfo(@This()).create(.Pentium, "pentium", &[_]FeatureType {
1293 }),
1294 CpuInfo(@This(), FeatureType).create(.Pentium, "pentium", &[_]FeatureType {
12951295 .Cx8,
12961296 .SlowUnalignedMem16,
12971297 .X87,
1298 },
1299 CpuInfo(@This()).create(.PentiumM, "pentium-m", &[_]FeatureType {
1298 }),
1299 CpuInfo(@This(), FeatureType).create(.PentiumM, "pentium-m", &[_]FeatureType {
13001300 .Cmov,
13011301 .Cx8,
13021302 .Fxsr,
......@@ -1306,14 +1306,14 @@ pub const X86Cpu = enum {
13061306 .Sse2,
13071307 .SlowUnalignedMem16,
13081308 .X87,
1309 },
1310 CpuInfo(@This()).create(.PentiumMmx, "pentium-mmx", &[_]FeatureType {
1309 }),
1310 CpuInfo(@This(), FeatureType).create(.PentiumMmx, "pentium-mmx", &[_]FeatureType {
13111311 .Cx8,
13121312 .Mmx,
13131313 .SlowUnalignedMem16,
13141314 .X87,
1315 },
1316 CpuInfo(@This()).create(.Pentium2, "pentium2", &[_]FeatureType {
1315 }),
1316 CpuInfo(@This(), FeatureType).create(.Pentium2, "pentium2", &[_]FeatureType {
13171317 .Cmov,
13181318 .Cx8,
13191319 .Fxsr,
......@@ -1321,8 +1321,8 @@ pub const X86Cpu = enum {
13211321 .Nopl,
13221322 .SlowUnalignedMem16,
13231323 .X87,
1324 },
1325 CpuInfo(@This()).create(.Pentium3, "pentium3", &[_]FeatureType {
1324 }),
1325 CpuInfo(@This(), FeatureType).create(.Pentium3, "pentium3", &[_]FeatureType {
13261326 .Cmov,
13271327 .Cx8,
13281328 .Fxsr,
......@@ -1331,8 +1331,8 @@ pub const X86Cpu = enum {
13311331 .Sse,
13321332 .SlowUnalignedMem16,
13331333 .X87,
1334 },
1335 CpuInfo(@This()).create(.Pentium3m, "pentium3m", &[_]FeatureType {
1334 }),
1335 CpuInfo(@This(), FeatureType).create(.Pentium3m, "pentium3m", &[_]FeatureType {
13361336 .Cmov,
13371337 .Cx8,
13381338 .Fxsr,
......@@ -1341,8 +1341,8 @@ pub const X86Cpu = enum {
13411341 .Sse,
13421342 .SlowUnalignedMem16,
13431343 .X87,
1344 },
1345 CpuInfo(@This()).create(.Pentium4, "pentium4", &[_]FeatureType {
1344 }),
1345 CpuInfo(@This(), FeatureType).create(.Pentium4, "pentium4", &[_]FeatureType {
13461346 .Cmov,
13471347 .Cx8,
13481348 .Fxsr,
......@@ -1352,8 +1352,8 @@ pub const X86Cpu = enum {
13521352 .Sse2,
13531353 .SlowUnalignedMem16,
13541354 .X87,
1355 },
1356 CpuInfo(@This()).create(.Pentium4m, "pentium4m", &[_]FeatureType {
1355 }),
1356 CpuInfo(@This(), FeatureType).create(.Pentium4m, "pentium4m", &[_]FeatureType {
13571357 .Cmov,
13581358 .Cx8,
13591359 .Fxsr,
......@@ -1363,15 +1363,15 @@ pub const X86Cpu = enum {
13631363 .Sse2,
13641364 .SlowUnalignedMem16,
13651365 .X87,
1366 },
1367 CpuInfo(@This()).create(.Pentiumpro, "pentiumpro", &[_]FeatureType {
1366 }),
1367 CpuInfo(@This(), FeatureType).create(.Pentiumpro, "pentiumpro", &[_]FeatureType {
13681368 .Cmov,
13691369 .Cx8,
13701370 .Nopl,
13711371 .SlowUnalignedMem16,
13721372 .X87,
1373 },
1374 CpuInfo(@This()).create(.Prescott, "prescott", &[_]FeatureType {
1373 }),
1374 CpuInfo(@This(), FeatureType).create(.Prescott, "prescott", &[_]FeatureType {
13751375 .Cmov,
13761376 .Cx8,
13771377 .Fxsr,
......@@ -1381,8 +1381,8 @@ pub const X86Cpu = enum {
13811381 .Sse3,
13821382 .SlowUnalignedMem16,
13831383 .X87,
1384 },
1385 CpuInfo(@This()).create(.Sandybridge, "sandybridge", &[_]FeatureType {
1384 }),
1385 CpuInfo(@This(), FeatureType).create(.Sandybridge, "sandybridge", &[_]FeatureType {
13861386 .Bit64,
13871387 .Sse,
13881388 .Avx,
......@@ -1407,8 +1407,8 @@ pub const X86Cpu = enum {
14071407 .X87,
14081408 .Xsave,
14091409 .Xsaveopt,
1410 },
1411 CpuInfo(@This()).create(.Silvermont, "silvermont", &[_]FeatureType {
1410 }),
1411 CpuInfo(@This(), FeatureType).create(.Silvermont, "silvermont", &[_]FeatureType {
14121412 .Bit64,
14131413 .Cmov,
14141414 .Cx8,
......@@ -1432,8 +1432,8 @@ pub const X86Cpu = enum {
14321432 .SlowPmulld,
14331433 .SlowTwoMemOps,
14341434 .X87,
1435 },
1436 CpuInfo(@This()).create(.Skx, "skx", &[_]FeatureType {
1435 }),
1436 CpuInfo(@This(), FeatureType).create(.Skx, "skx", &[_]FeatureType {
14371437 .Bit64,
14381438 .Adx,
14391439 .Sse,
......@@ -1486,8 +1486,8 @@ pub const X86Cpu = enum {
14861486 .Xsavec,
14871487 .Xsaveopt,
14881488 .Xsaves,
1489 },
1490 CpuInfo(@This()).create(.Skylake, "skylake", &[_]FeatureType {
1489 }),
1490 CpuInfo(@This(), FeatureType).create(.Skylake, "skylake", &[_]FeatureType {
14911491 .Bit64,
14921492 .Adx,
14931493 .Sse,
......@@ -1533,8 +1533,8 @@ pub const X86Cpu = enum {
15331533 .Xsavec,
15341534 .Xsaveopt,
15351535 .Xsaves,
1536 },
1537 CpuInfo(@This()).create(.SkylakeAvx512, "skylake-avx512", &[_]FeatureType {
1536 }),
1537 CpuInfo(@This(), FeatureType).create(.SkylakeAvx512, "skylake-avx512", &[_]FeatureType {
15381538 .Bit64,
15391539 .Adx,
15401540 .Sse,
......@@ -1587,8 +1587,8 @@ pub const X86Cpu = enum {
15871587 .Xsavec,
15881588 .Xsaveopt,
15891589 .Xsaves,
1590 },
1591 CpuInfo(@This()).create(.Slm, "slm", &[_]FeatureType {
1590 }),
1591 CpuInfo(@This(), FeatureType).create(.Slm, "slm", &[_]FeatureType {
15921592 .Bit64,
15931593 .Cmov,
15941594 .Cx8,
......@@ -1612,8 +1612,8 @@ pub const X86Cpu = enum {
16121612 .SlowPmulld,
16131613 .SlowTwoMemOps,
16141614 .X87,
1615 },
1616 CpuInfo(@This()).create(.Tigerlake, "tigerlake", &[_]FeatureType {
1615 }),
1616 CpuInfo(@This(), FeatureType).create(.Tigerlake, "tigerlake", &[_]FeatureType {
16171617 .Bit64,
16181618 .Adx,
16191619 .Sse,
......@@ -1681,8 +1681,8 @@ pub const X86Cpu = enum {
16811681 .Xsavec,
16821682 .Xsaveopt,
16831683 .Xsaves,
1684 },
1685 CpuInfo(@This()).create(.Tremont, "tremont", &[_]FeatureType {
1684 }),
1685 CpuInfo(@This(), FeatureType).create(.Tremont, "tremont", &[_]FeatureType {
16861686 .Bit64,
16871687 .Sse,
16881688 .Aes,
......@@ -1720,8 +1720,8 @@ pub const X86Cpu = enum {
17201720 .Xsavec,
17211721 .Xsaveopt,
17221722 .Xsaves,
1723 },
1724 CpuInfo(@This()).create(.Westmere, "westmere", &[_]FeatureType {
1723 }),
1724 CpuInfo(@This(), FeatureType).create(.Westmere, "westmere", &[_]FeatureType {
17251725 .Bit64,
17261726 .Cmov,
17271727 .Cx8,
......@@ -1736,19 +1736,19 @@ pub const X86Cpu = enum {
17361736 .Popcnt,
17371737 .Sse42,
17381738 .X87,
1739 },
1740 CpuInfo(@This()).create(.WinchipC6, "winchip-c6", &[_]FeatureType {
1739 }),
1740 CpuInfo(@This(), FeatureType).create(.WinchipC6, "winchip-c6", &[_]FeatureType {
17411741 .Mmx,
17421742 .SlowUnalignedMem16,
17431743 .X87,
1744 },
1745 CpuInfo(@This()).create(.Winchip2, "winchip2", &[_]FeatureType {
1744 }),
1745 CpuInfo(@This(), FeatureType).create(.Winchip2, "winchip2", &[_]FeatureType {
17461746 .Mmx,
17471747 .Dnow3,
17481748 .SlowUnalignedMem16,
17491749 .X87,
1750 },
1751 CpuInfo(@This()).create(.X8664, "x86-64", &[_]FeatureType {
1750 }),
1751 CpuInfo(@This(), FeatureType).create(.X8664, "x86-64", &[_]FeatureType {
17521752 .Bit64,
17531753 .Cmov,
17541754 .Cx8,
......@@ -1761,8 +1761,8 @@ pub const X86Cpu = enum {
17611761 .Slow3opsLea,
17621762 .SlowIncdec,
17631763 .X87,
1764 },
1765 CpuInfo(@This()).create(.Yonah, "yonah", &[_]FeatureType {
1764 }),
1765 CpuInfo(@This(), FeatureType).create(.Yonah, "yonah", &[_]FeatureType {
17661766 .Cmov,
17671767 .Cx8,
17681768 .Fxsr,
......@@ -1772,8 +1772,8 @@ pub const X86Cpu = enum {
17721772 .Sse3,
17731773 .SlowUnalignedMem16,
17741774 .X87,
1775 },
1776 CpuInfo(@This()).create(.Znver1, "znver1", &[_]FeatureType {
1775 }),
1776 CpuInfo(@This(), FeatureType).create(.Znver1, "znver1", &[_]FeatureType {
17771777 .Bit64,
17781778 .Adx,
17791779 .Sse,
......@@ -1814,8 +1814,8 @@ pub const X86Cpu = enum {
18141814 .Xsavec,
18151815 .Xsaveopt,
18161816 .Xsaves,
1817 },
1818 CpuInfo(@This()).create(.Znver2, "znver2", &[_]FeatureType {
1817 }),
1818 CpuInfo(@This(), FeatureType).create(.Znver2, "znver2", &[_]FeatureType {
18191819 .Bit64,
18201820 .Adx,
18211821 .Sse,
......@@ -1859,6 +1859,6 @@ pub const X86Cpu = enum {
18591859 .Xsavec,
18601860 .Xsaveopt,
18611861 .Xsaves,
1862 },
1862 }),
18631863 };
18641864};
lib/std/target/cpu/empty.zig+2-2
......@@ -1,6 +1,6 @@
11const feature = @import("std").target.feature;
22const CpuInfo = @import("std").target.cpu.CpuInfo;
33
4pub const EmptyCpu = enum {
5 pub const cpu_infos = [0]CpuInfo(@This()) {};
4pub const EmptyCpu = struct {
5 pub const cpu_infos = [0]CpuInfo(@This(), feature.EmptyFeature) {};
66};
lib/std/target/feature.zig+9-3
......@@ -17,7 +17,7 @@ pub const SystemZFeature = @import("feature/SystemZFeature.zig").SystemZFeature;
1717pub const WebAssemblyFeature = @import("feature/WebAssemblyFeature.zig").WebAssemblyFeature;
1818pub const X86Feature = @import("feature/X86Feature.zig").X86Feature;
1919
20const EmptyFeature = @import("feature/empty.zig").EmptyFeature;
20pub const EmptyFeature = @import("feature/empty.zig").EmptyFeature;
2121
2222pub fn ArchFeature(comptime arch: @TagType(Arch)) type {
2323 return switch (arch) {
......@@ -49,24 +49,30 @@ pub fn FeatureInfo(comptime EnumType: type) type {
4949 return struct {
5050 value: EnumType,
5151 name: []const u8,
52 description: []const u8,
53 llvm_name: []const u8,
5254
5355 subfeatures: []const EnumType,
5456
5557 const Self = @This();
5658
57 fn create(value: EnumType, name: []const u8) Self {
59 pub fn create(value: EnumType, name: []const u8, description: []const u8, llvm_name: []const u8) Self {
5860 return Self {
5961 .value = value,
6062 .name = name,
63 .description = description,
64 .llvm_name = llvm_name,
6165
6266 .subfeatures = &[_]EnumType{},
6367 };
6468 }
6569
66 fn createWithSubfeatures(value: EnumType, name: []const u8, subfeatures: []const EnumType) Self {
70 pub fn createWithSubfeatures(value: EnumType, name: []const u8, description: []const u8, llvm_name: []const u8, subfeatures: []const EnumType) Self {
6771 return Self {
6872 .value = value,
6973 .name = name,
74 .description = description,
75 .llvm_name = llvm_name,
7076
7177 .subfeatures = subfeatures,
7278 };
lib/std/target/feature/AArch64Feature.zig+213-213
......@@ -155,7 +155,7 @@ pub const AArch64Feature = enum {
155155 Thunderxt83,
156156 Thunderxt88,
157157
158 pub fn getInfo(self: @This()) FeatureInfo {
158 pub fn getInfo(self: @This()) FeatureInfo(@This()) {
159159 return feature_infos[@enumToInt(self)];
160160 }
161161
......@@ -291,19 +291,19 @@ pub const AArch64Feature = enum {
291291 .Sve,
292292 }),
293293 FeatureInfo(@This()).createWithSubfeatures(.Sve2Aes, "sve2-aes", "Enable AES SVE2 instructions", "sve2-aes", &[_]@This() {
294 .Sve,
295294 .FpArmv8,
295 .Sve,
296296 }),
297297 FeatureInfo(@This()).createWithSubfeatures(.Sve2Bitperm, "sve2-bitperm", "Enable bit permutation SVE2 instructions", "sve2-bitperm", &[_]@This() {
298298 .Sve,
299299 }),
300300 FeatureInfo(@This()).createWithSubfeatures(.Sve2Sha3, "sve2-sha3", "Enable SHA3 SVE2 instructions", "sve2-sha3", &[_]@This() {
301 .Sve,
302301 .FpArmv8,
302 .Sve,
303303 }),
304304 FeatureInfo(@This()).createWithSubfeatures(.Sve2Sm4, "sve2-sm4", "Enable SM4 SVE2 instructions", "sve2-sm4", &[_]@This() {
305 .Sve,
306305 .FpArmv8,
306 .Sve,
307307 }),
308308 FeatureInfo(@This()).create(.SlowMisaligned128store, "slow-misaligned-128store", "Misaligned 128 bit stores are slow", "slow-misaligned-128store"),
309309 FeatureInfo(@This()).create(.SlowPaired128, "slow-paired-128", "Paired 128 bit loads and stores are slow", "slow-paired-128"),
......@@ -323,101 +323,101 @@ pub const AArch64Feature = enum {
323323 FeatureInfo(@This()).create(.Vh, "vh", "Enables ARM v8.1 Virtual Host extension", "vh"),
324324 FeatureInfo(@This()).create(.Zcm, "zcm", "Has zero-cycle register moves", "zcm"),
325325 FeatureInfo(@This()).createWithSubfeatures(.Zcz, "zcz", "Has zero-cycle zeroing instructions", "zcz", &[_]@This() {
326 .ZczFp,
327326 .ZczGp,
327 .ZczFp,
328328 }),
329329 FeatureInfo(@This()).create(.ZczFp, "zcz-fp", "Has zero-cycle zeroing instructions for FP registers", "zcz-fp"),
330330 FeatureInfo(@This()).create(.ZczFpWorkaround, "zcz-fp-workaround", "The zero-cycle floating-point zeroing instruction has a bug", "zcz-fp-workaround"),
331331 FeatureInfo(@This()).create(.ZczGp, "zcz-gp", "Has zero-cycle zeroing instructions for generic registers", "zcz-gp"),
332332 FeatureInfo(@This()).createWithSubfeatures(.V81a, "v8.1a", "Support ARM v8.1a instructions", "v8.1a", &[_]@This() {
333 .Pan,
334 .Rdm,
335333 .Lse,
334 .Rdm,
336335 .Crc,
337336 .Lor,
337 .Pan,
338338 .Vh,
339339 }),
340340 FeatureInfo(@This()).createWithSubfeatures(.V82a, "v8.2a", "Support ARM v8.2a instructions", "v8.2a", &[_]@This() {
341 .Ccpp,
342 .Pan,
343 .Rdm,
344341 .Lse,
342 .Rdm,
343 .Pan,
345344 .Crc,
346345 .Lor,
347346 .Uaops,
348 .Vh,
349347 .Ras,
348 .Ccpp,
349 .Vh,
350350 }),
351351 FeatureInfo(@This()).createWithSubfeatures(.V83a, "v8.3a", "Support ARM v8.3a instructions", "v8.3a", &[_]@This() {
352 .Rcpc,
353 .Ccpp,
354 .Pan,
355 .Rdm,
356 .FpArmv8,
357352 .Lse,
358 .Ccidx,
353 .Vh,
354 .Pa,
355 .Rdm,
356 .Pan,
359357 .Crc,
360358 .Lor,
361 .Pa,
362359 .Uaops,
363 .Vh,
364360 .Ras,
361 .Rcpc,
362 .Ccpp,
363 .Ccidx,
364 .FpArmv8,
365365 }),
366366 FeatureInfo(@This()).createWithSubfeatures(.V84a, "v8.4a", "Support ARM v8.4a instructions", "v8.4a", &[_]@This() {
367 .Nv,
367 .Rdm,
368 .Dit,
368369 .Am,
369 .Lse,
370 .Ras,
371 .Rcpc,
370372 .Sel2,
371 .Lor,
372 .Tracev84,
373 .Uaops,
374373 .Ccpp,
375 .TlbRmi,
376 .Fmi,
377 .Rcpc,
378 .Pan,
379 .Rdm,
380374 .Pa,
381 .Dit,
382 .Ras,
375 .Pan,
376 .Uaops,
377 .Tracev84,
383378 .Mpam,
384 .FpArmv8,
385 .Ccidx,
379 .Lse,
380 .Nv,
386381 .Dotprod,
382 .TlbRmi,
383 .Lor,
384 .Ccidx,
385 .FpArmv8,
387386 .Crc,
387 .Fmi,
388388 .Vh,
389389 }),
390390 FeatureInfo(@This()).createWithSubfeatures(.V85a, "v8.5a", "Support ARM v8.5a instructions", "v8.5a", &[_]@This() {
391 .Nv,
391 .Vh,
392 .Rdm,
393 .Dit,
392394 .Am,
393 .Lse,
394 .Fptoint,
395 .Ssbs,
396 .Specrestrict,
397 .Ras,
398 .Rcpc,
395399 .Sel2,
396 .Lor,
397 .Tracev84,
398 .Uaops,
399 .Sb,
400400 .Ccpp,
401 .Specrestrict,
401 .Pa,
402402 .Bti,
403403 .Ccdp,
404 .TlbRmi,
405 .Fmi,
406 .Rcpc,
407404 .Pan,
408 .Rdm,
409 .Pa,
410 .Ssbs,
411 .Dit,
412 .Ras,
405 .Uaops,
406 .Tracev84,
413407 .Mpam,
408 .Lse,
409 .Sb,
410 .Nv,
414411 .Altnzcv,
415 .FpArmv8,
416 .Ccidx,
417412 .Dotprod,
418 .Crc,
413 .TlbRmi,
414 .Lor,
415 .Ccidx,
419416 .Predres,
420 .Vh,
417 .Crc,
418 .Fptoint,
419 .Fmi,
420 .FpArmv8,
421421 }),
422422 FeatureInfo(@This()).createWithSubfeatures(.A35, "a35", "Cortex-A35 ARM processors", "a35", &[_]@This() {
423423 .Perfmon,
......@@ -425,325 +425,325 @@ pub const AArch64Feature = enum {
425425 .Crc,
426426 }),
427427 FeatureInfo(@This()).createWithSubfeatures(.A53, "a53", "Cortex-A53 ARM processors", "a53", &[_]@This() {
428 .UseAa,
429 .FuseAes,
430 .FpArmv8,
431428 .Perfmon,
432 .Crc,
433 .BalanceFpOps,
434429 .UsePostraScheduler,
430 .Crc,
435431 .CustomCheapAsMove,
432 .BalanceFpOps,
433 .UseAa,
434 .FpArmv8,
435 .FuseAes,
436436 }),
437437 FeatureInfo(@This()).createWithSubfeatures(.A55, "a55", "Cortex-A55 ARM processors", "a55", &[_]@This() {
438 .Rcpc,
439 .Ccpp,
440 .Pan,
438 .Lse,
439 .Vh,
441440 .Rdm,
442 .FuseAes,
443441 .Perfmon,
444 .FpArmv8,
445 .Lse,
446 .Crc,
442 .Pan,
447443 .Dotprod,
444 .Crc,
448445 .Lor,
449446 .Uaops,
450 .Vh,
451447 .Ras,
448 .Rcpc,
449 .Ccpp,
450 .FpArmv8,
451 .FuseAes,
452452 }),
453453 FeatureInfo(@This()).createWithSubfeatures(.A57, "a57", "Cortex-A57 ARM processors", "a57", &[_]@This() {
454 .FuseLiterals,
455 .FuseAes,
456 .FpArmv8,
457454 .Perfmon,
458 .Crc,
459 .BalanceFpOps,
460455 .UsePostraScheduler,
461 .CustomCheapAsMove,
456 .Crc,
462457 .PredictableSelectExpensive,
458 .CustomCheapAsMove,
459 .BalanceFpOps,
460 .FuseLiterals,
461 .FpArmv8,
462 .FuseAes,
463463 }),
464464 FeatureInfo(@This()).createWithSubfeatures(.A65, "a65", "Cortex-A65 ARM processors", "a65", &[_]@This() {
465 .Rcpc,
466 .Ccpp,
467 .Pan,
468 .Rdm,
469 .FpArmv8,
470465 .Lse,
471 .Crc,
466 .Vh,
467 .Rdm,
468 .Pan,
472469 .Dotprod,
473 .Lor,
470 .Crc,
474471 .Ssbs,
472 .Lor,
475473 .Uaops,
476 .Vh,
477474 .Ras,
475 .Rcpc,
476 .Ccpp,
477 .FpArmv8,
478478 }),
479479 FeatureInfo(@This()).createWithSubfeatures(.A72, "a72", "Cortex-A72 ARM processors", "a72", &[_]@This() {
480480 .Perfmon,
481 .FuseAes,
482481 .FpArmv8,
483482 .Crc,
483 .FuseAes,
484484 }),
485485 FeatureInfo(@This()).createWithSubfeatures(.A73, "a73", "Cortex-A73 ARM processors", "a73", &[_]@This() {
486486 .Perfmon,
487 .FuseAes,
488487 .FpArmv8,
489488 .Crc,
489 .FuseAes,
490490 }),
491491 FeatureInfo(@This()).createWithSubfeatures(.A75, "a75", "Cortex-A75 ARM processors", "a75", &[_]@This() {
492 .Rcpc,
493 .Ccpp,
494 .Pan,
492 .Lse,
493 .Vh,
495494 .Rdm,
496 .FuseAes,
497495 .Perfmon,
498 .FpArmv8,
499 .Lse,
500 .Crc,
496 .Pan,
501497 .Dotprod,
498 .Crc,
502499 .Lor,
503500 .Uaops,
504 .Vh,
505501 .Ras,
506 }),
507 FeatureInfo(@This()).createWithSubfeatures(.A76, "a76", "Cortex-A76 ARM processors", "a76", &[_]@This() {
508502 .Rcpc,
509503 .Ccpp,
510 .Pan,
511 .Rdm,
512504 .FpArmv8,
505 .FuseAes,
506 }),
507 FeatureInfo(@This()).createWithSubfeatures(.A76, "a76", "Cortex-A76 ARM processors", "a76", &[_]@This() {
513508 .Lse,
514 .Crc,
509 .Vh,
510 .Rdm,
511 .Pan,
515512 .Dotprod,
516 .Lor,
513 .Crc,
517514 .Ssbs,
515 .Lor,
518516 .Uaops,
519 .Vh,
520517 .Ras,
518 .Rcpc,
519 .Ccpp,
520 .FpArmv8,
521521 }),
522522 FeatureInfo(@This()).createWithSubfeatures(.Cyclone, "cyclone", "Cyclone", "cyclone", &[_]@This() {
523 .ZczFp,
523 .ArithBccFusion,
524524 .ArithCbzFusion,
525 .FuseAes,
525 .ZczFp,
526526 .AlternateSextloadCvtF32Pattern,
527 .ZczFpWorkaround,
528 .FpArmv8,
529 .Perfmon,
530527 .DisableLatencySchedHeuristic,
531 .Zcm,
528 .Perfmon,
532529 .ZczGp,
533 .ArithBccFusion,
530 .ZczFpWorkaround,
531 .Zcm,
532 .FpArmv8,
534533 .FuseCryptoEor,
534 .FuseAes,
535535 }),
536536 FeatureInfo(@This()).createWithSubfeatures(.Exynosm1, "exynosm1", "Samsung Exynos-M1 processors", "exynosm1", &[_]@This() {
537537 .ZczFp,
538 .FuseAes,
539 .SlowPaired128,
540 .Force32bitJumpTables,
541 .UseReciprocalSquareRoot,
542 .FpArmv8,
543538 .Perfmon,
544 .SlowMisaligned128store,
545 .Crc,
546539 .UsePostraScheduler,
540 .Crc,
541 .UseReciprocalSquareRoot,
547542 .CustomCheapAsMove,
543 .Force32bitJumpTables,
544 .SlowMisaligned128store,
545 .FpArmv8,
546 .SlowPaired128,
547 .FuseAes,
548548 }),
549549 FeatureInfo(@This()).createWithSubfeatures(.Exynosm2, "exynosm2", "Samsung Exynos-M2 processors", "exynosm2", &[_]@This() {
550550 .ZczFp,
551 .FuseAes,
552 .SlowPaired128,
553 .Force32bitJumpTables,
554 .FpArmv8,
555551 .Perfmon,
556 .SlowMisaligned128store,
557 .Crc,
558552 .UsePostraScheduler,
553 .Crc,
559554 .CustomCheapAsMove,
555 .Force32bitJumpTables,
556 .SlowMisaligned128store,
557 .FpArmv8,
558 .SlowPaired128,
559 .FuseAes,
560560 }),
561561 FeatureInfo(@This()).createWithSubfeatures(.Exynosm3, "exynosm3", "Samsung Exynos-M3 processors", "exynosm3", &[_]@This() {
562 .FuseCsel,
562563 .ZczFp,
563 .FuseLiterals,
564 .FuseAes,
565 .Force32bitJumpTables,
566 .FpArmv8,
567564 .Perfmon,
568 .Crc,
569 .LslFast,
570 .FuseAddress,
571565 .UsePostraScheduler,
572 .CustomCheapAsMove,
566 .Crc,
573567 .PredictableSelectExpensive,
574 .FuseCsel,
568 .CustomCheapAsMove,
569 .Force32bitJumpTables,
570 .FuseLiterals,
571 .FuseAddress,
572 .LslFast,
573 .FpArmv8,
574 .FuseAes,
575575 }),
576576 FeatureInfo(@This()).createWithSubfeatures(.Exynosm4, "exynosm4", "Samsung Exynos-M4 processors", "exynosm4", &[_]@This() {
577 .ArithBccFusion,
578 .Vh,
579 .ArithCbzFusion,
577580 .ZczFp,
578 .Lse,
579 .FuseArithLogic,
580 .Lor,
581 .Rdm,
581582 .UsePostraScheduler,
582 .Uaops,
583 .CustomCheapAsMove,
584 .ArithBccFusion,
583 .Ras,
584 .Force32bitJumpTables,
585585 .Ccpp,
586 .Perfmon,
586 .FuseCsel,
587587 .Pan,
588 .Rdm,
588 .Uaops,
589589 .FuseLiterals,
590 .Force32bitJumpTables,
591590 .LslFast,
591 .Lse,
592 .Perfmon,
593 .Dotprod,
594 .Lor,
595 .FuseArithLogic,
596 .Crc,
597 .CustomCheapAsMove,
592598 .FuseAddress,
593599 .ZczGp,
594 .Ras,
595 .FuseCsel,
596 .ArithCbzFusion,
597 .FuseAes,
598600 .FpArmv8,
599 .Crc,
600 .Dotprod,
601 .Vh,
601 .FuseAes,
602602 }),
603603 FeatureInfo(@This()).createWithSubfeatures(.Falkor, "falkor", "Qualcomm Falkor processors", "falkor", &[_]@This() {
604604 .ZczFp,
605605 .Rdm,
606 .SlowStrqroStore,
607606 .Perfmon,
608 .FpArmv8,
609 .Crc,
610 .LslFast,
611607 .UsePostraScheduler,
612 .ZczGp,
613 .CustomCheapAsMove,
608 .Crc,
614609 .PredictableSelectExpensive,
610 .CustomCheapAsMove,
611 .ZczGp,
612 .FpArmv8,
613 .SlowStrqroStore,
614 .LslFast,
615615 }),
616616 FeatureInfo(@This()).createWithSubfeatures(.Kryo, "kryo", "Qualcomm Kryo processors", "kryo", &[_]@This() {
617617 .ZczFp,
618618 .Perfmon,
619 .FpArmv8,
620 .Crc,
621 .LslFast,
622619 .UsePostraScheduler,
623 .ZczGp,
624 .CustomCheapAsMove,
620 .Crc,
625621 .PredictableSelectExpensive,
622 .CustomCheapAsMove,
623 .ZczGp,
624 .FpArmv8,
625 .LslFast,
626626 }),
627627 FeatureInfo(@This()).createWithSubfeatures(.Neoversee1, "neoversee1", "Neoverse E1 ARM processors", "neoversee1", &[_]@This() {
628 .Rcpc,
629 .Ccpp,
630 .Pan,
631 .Rdm,
632 .FpArmv8,
633628 .Lse,
634 .Crc,
629 .Vh,
630 .Rdm,
631 .Pan,
635632 .Dotprod,
636 .Lor,
633 .Crc,
637634 .Ssbs,
635 .Lor,
638636 .Uaops,
639 .Vh,
640637 .Ras,
641 }),
642 FeatureInfo(@This()).createWithSubfeatures(.Neoversen1, "neoversen1", "Neoverse N1 ARM processors", "neoversen1", &[_]@This() {
643638 .Rcpc,
644 .Spe,
645639 .Ccpp,
646 .Pan,
647 .Rdm,
648640 .FpArmv8,
641 }),
642 FeatureInfo(@This()).createWithSubfeatures(.Neoversen1, "neoversen1", "Neoverse N1 ARM processors", "neoversen1", &[_]@This() {
649643 .Lse,
650 .Crc,
644 .Spe,
645 .Vh,
646 .Rdm,
647 .Pan,
651648 .Dotprod,
652 .Lor,
649 .Crc,
653650 .Ssbs,
651 .Lor,
654652 .Uaops,
655 .Vh,
656653 .Ras,
654 .Rcpc,
655 .Ccpp,
656 .FpArmv8,
657657 }),
658658 FeatureInfo(@This()).createWithSubfeatures(.Saphira, "saphira", "Qualcomm Saphira processors", "saphira", &[_]@This() {
659 .Spe,
660 .Vh,
659661 .ZczFp,
660 .Nv,
662 .Rdm,
663 .UsePostraScheduler,
664 .Dit,
661665 .Am,
662 .Lse,
666 .Ras,
667 .Rcpc,
663668 .Sel2,
664 .Lor,
665 .Tracev84,
666 .Uaops,
667 .UsePostraScheduler,
668 .CustomCheapAsMove,
669669 .Ccpp,
670 .Pa,
671 .Pan,
672 .Uaops,
673 .Tracev84,
674 .Mpam,
675 .LslFast,
676 .Lse,
677 .Nv,
670678 .Perfmon,
679 .Dotprod,
671680 .TlbRmi,
681 .Lor,
682 .Ccidx,
672683 .PredictableSelectExpensive,
684 .Crc,
685 .CustomCheapAsMove,
673686 .Fmi,
674 .Rcpc,
675 .Pan,
676 .Rdm,
677 .LslFast,
678 .Pa,
679687 .ZczGp,
680 .Dit,
681 .Ras,
682 .Spe,
683 .Mpam,
684688 .FpArmv8,
685 .Ccidx,
686 .Dotprod,
687 .Crc,
688 .Vh,
689689 }),
690690 FeatureInfo(@This()).createWithSubfeatures(.Tsv110, "tsv110", "HiSilicon TS-V110 processors", "tsv110", &[_]@This() {
691 .Uaops,
691 .Lse,
692692 .Spe,
693 .Ccpp,
694 .Pan,
695 .Rdm,
696 .FuseAes,
697693 .Vh,
694 .Rdm,
698695 .Perfmon,
699 .FpArmv8,
700 .Lse,
701 .Crc,
696 .UsePostraScheduler,
697 .Pan,
702698 .Dotprod,
699 .Crc,
703700 .Lor,
704 .UsePostraScheduler,
701 .Uaops,
705702 .CustomCheapAsMove,
706703 .Ras,
704 .Ccpp,
705 .FpArmv8,
706 .FuseAes,
707707 }),
708708 FeatureInfo(@This()).createWithSubfeatures(.Thunderx, "thunderx", "Cavium ThunderX processors", "thunderx", &[_]@This() {
709709 .Perfmon,
710 .FpArmv8,
711 .Crc,
712710 .UsePostraScheduler,
711 .Crc,
712 .FpArmv8,
713713 .PredictableSelectExpensive,
714714 }),
715715 FeatureInfo(@This()).createWithSubfeatures(.Thunderx2t99, "thunderx2t99", "Cavium ThunderX2 processors", "thunderx2t99", &[_]@This() {
716 .Pan,
717 .Rdm,
718 .Vh,
719 .AggressiveFma,
720 .FpArmv8,
721716 .Lse,
717 .ArithBccFusion,
718 .Vh,
719 .Rdm,
720 .UsePostraScheduler,
722721 .Crc,
723722 .Lor,
724 .UsePostraScheduler,
725 .ArithBccFusion,
723 .Pan,
724 .AggressiveFma,
725 .FpArmv8,
726726 .PredictableSelectExpensive,
727727 }),
728728 FeatureInfo(@This()).createWithSubfeatures(.Thunderxt81, "thunderxt81", "Cavium ThunderX processors", "thunderxt81", &[_]@This() {
729729 .Perfmon,
730 .FpArmv8,
731 .Crc,
732730 .UsePostraScheduler,
731 .Crc,
732 .FpArmv8,
733733 .PredictableSelectExpensive,
734734 }),
735735 FeatureInfo(@This()).createWithSubfeatures(.Thunderxt83, "thunderxt83", "Cavium ThunderX processors", "thunderxt83", &[_]@This() {
736736 .Perfmon,
737 .FpArmv8,
738 .Crc,
739737 .UsePostraScheduler,
738 .Crc,
739 .FpArmv8,
740740 .PredictableSelectExpensive,
741741 }),
742742 FeatureInfo(@This()).createWithSubfeatures(.Thunderxt88, "thunderxt88", "Cavium ThunderX processors", "thunderxt88", &[_]@This() {
743743 .Perfmon,
744 .FpArmv8,
745 .Crc,
746744 .UsePostraScheduler,
745 .Crc,
746 .FpArmv8,
747747 .PredictableSelectExpensive,
748748 }),
749749 };
lib/std/target/feature/AmdGpuFeature.zig+72-72
......@@ -110,7 +110,7 @@ pub const AmdGpuFeature = enum {
110110 Xnack,
111111 HalfRate64Ops,
112112
113 pub fn getInfo(self: @This()) FeatureInfo {
113 pub fn getInfo(self: @This()) FeatureInfo(@This()) {
114114 return feature_infos[@enumToInt(self)];
115115 }
116116
......@@ -166,73 +166,73 @@ pub const AmdGpuFeature = enum {
166166 FeatureInfo(@This()).create(.Gfx7Gfx8Gfx9Insts, "gfx7-gfx8-gfx9-insts", "Instructions shared in GFX7, GFX8, GFX9", "gfx7-gfx8-gfx9-insts"),
167167 FeatureInfo(@This()).create(.Gfx8Insts, "gfx8-insts", "Additional instructions for GFX8+", "gfx8-insts"),
168168 FeatureInfo(@This()).createWithSubfeatures(.Gfx9, "gfx9", "GFX9 GPU generation", "gfx9", &[_]@This() {
169 .Gfx9Insts,
170 .Wavefrontsize64,
171 .Fp64,
172 .Gcn3Encoding,
173 .FastFmaf,
174 .Sdwa,
169 .ApertureRegs,
170 .IntClampInsts,
171 .SdwaOmod,
175172 .SdwaScalar,
176 .VgprIndexMode,
177 .Dpp,
178173 .AddNoCarryInsts,
179 .SdwaOmod,
180 .SdwaSdst,
181174 .ScalarAtomics,
175 .SMemrealtime,
176 .Gcn3Encoding,
177 .CiInsts,
182178 .FlatAddressSpace,
183 .ScalarFlatScratchInsts,
184 .Gfx8Insts,
179 .Sdwa,
180 .Wavefrontsize64,
181 .SdwaSdst,
182 .FlatInstOffsets,
183 .ScalarStores,
185184 .Gfx7Gfx8Gfx9Insts,
186185 .R128A16,
187 .IntClampInsts,
188 .ScalarStores,
189 .ApertureRegs,
190 .CiInsts,
191 .FlatGlobalInsts,
192 .BitInsts16,
193 .FlatScratchInsts,
194 .SMemrealtime,
186 .Dpp,
187 .Localmemorysize65536,
195188 .Vop3p,
196 .FlatInstOffsets,
189 .BitInsts16,
190 .VgprIndexMode,
191 .Gfx8Insts,
197192 .Inv2piInlineImm,
198 .Localmemorysize65536,
199 }),
200 FeatureInfo(@This()).create(.Gfx9Insts, "gfx9-insts", "Additional instructions for GFX9+", "gfx9-insts"),
201 FeatureInfo(@This()).createWithSubfeatures(.Gfx10, "gfx10", "GFX10 GPU generation", "gfx10", &[_]@This() {
202193 .Gfx9Insts,
203 .NoSdstCmpx,
194 .ScalarFlatScratchInsts,
195 .FlatGlobalInsts,
196 .FlatScratchInsts,
204197 .Fp64,
205198 .FastFmaf,
206 .Sdwa,
207 .SdwaScalar,
208 .Dpp,
209 .RegisterBanking,
199 }),
200 FeatureInfo(@This()).create(.Gfx9Insts, "gfx9-insts", "Additional instructions for GFX9+", "gfx9-insts"),
201 FeatureInfo(@This()).createWithSubfeatures(.Gfx10, "gfx10", "GFX10 GPU generation", "gfx10", &[_]@This() {
202 .Vscnt,
203 .ApertureRegs,
210204 .Gfx10Insts,
211 .AddNoCarryInsts,
205 .IntClampInsts,
206 .PkFmacF16Inst,
212207 .SdwaOmod,
213 .SdwaSdst,
208 .SdwaScalar,
209 .AddNoCarryInsts,
210 .Movrel,
211 .SMemrealtime,
212 .NoSdstCmpx,
213 .CiInsts,
214214 .FlatAddressSpace,
215 .Sdwa,
216 .NoSramEccSupport,
217 .SdwaSdst,
218 .FlatInstOffsets,
219 .RegisterBanking,
220 .Dpp,
221 .Localmemorysize65536,
222 .Vop3p,
223 .BitInsts16,
224 .Dpp8,
215225 .Gfx8Insts,
226 .Inv2piInlineImm,
227 .Gfx9Insts,
216228 .FmaMixInsts,
217 .PkFmacF16Inst,
218 .Vop3Literal,
219229 .MimgR128,
220 .NoSramEccSupport,
221 .IntClampInsts,
222 .Movrel,
223 .Dpp8,
224 .ApertureRegs,
225 .NoDataDepHazard,
226 .CiInsts,
230 .Vop3Literal,
227231 .FlatGlobalInsts,
228 .BitInsts16,
229232 .FlatScratchInsts,
230 .SMemrealtime,
231 .Vop3p,
232 .FlatInstOffsets,
233 .Inv2piInlineImm,
234 .Localmemorysize65536,
235 .Vscnt,
233 .Fp64,
234 .FastFmaf,
235 .NoDataDepHazard,
236236 }),
237237 FeatureInfo(@This()).create(.Gfx10Insts, "gfx10-insts", "Additional instructions for GFX10+", "gfx10-insts"),
238238 FeatureInfo(@This()).create(.InstFwdPrefetchBug, "inst-fwd-prefetch-bug", "S_INST_PREFETCH instruction causes shader to hang", "inst-fwd-prefetch-bug"),
......@@ -276,25 +276,25 @@ pub const AmdGpuFeature = enum {
276276 FeatureInfo(@This()).create(.ScalarFlatScratchInsts, "scalar-flat-scratch-insts", "Have s_scratch_* flat memory instructions", "scalar-flat-scratch-insts"),
277277 FeatureInfo(@This()).create(.ScalarStores, "scalar-stores", "Has store scalar memory instructions", "scalar-stores"),
278278 FeatureInfo(@This()).createWithSubfeatures(.SeaIslands, "sea-islands", "SEA_ISLANDS GPU generation", "sea-islands", &[_]@This() {
279 .Wavefrontsize64,
280 .MimgR128,
279 .Movrel,
280 .Gfx7Gfx8Gfx9Insts,
281281 .Fp64,
282 .TrigReducedRange,
282283 .CiInsts,
283284 .FlatAddressSpace,
284 .TrigReducedRange,
285 .NoSramEccSupport,
286 .Movrel,
287285 .Localmemorysize65536,
288 .Gfx7Gfx8Gfx9Insts,
286 .Wavefrontsize64,
287 .NoSramEccSupport,
288 .MimgR128,
289289 }),
290290 FeatureInfo(@This()).createWithSubfeatures(.SouthernIslands, "southern-islands", "SOUTHERN_ISLANDS GPU generation", "southern-islands", &[_]@This() {
291 .Wavefrontsize64,
291 .Movrel,
292292 .MimgR128,
293293 .Fp64,
294 .NoXnackSupport,
295294 .TrigReducedRange,
295 .NoXnackSupport,
296 .Wavefrontsize64,
296297 .NoSramEccSupport,
297 .Movrel,
298298 .Ldsbankcount32,
299299 .Localmemorysize32768,
300300 }),
......@@ -310,28 +310,28 @@ pub const AmdGpuFeature = enum {
310310 FeatureInfo(@This()).create(.VcmpxExecWarHazard, "vcmpx-exec-war-hazard", "V_CMPX WAR hazard on EXEC (V_CMPX issue ONLY)", "vcmpx-exec-war-hazard"),
311311 FeatureInfo(@This()).create(.VcmpxPermlaneHazard, "vcmpx-permlane-hazard", "TODO: describe me", "vcmpx-permlane-hazard"),
312312 FeatureInfo(@This()).createWithSubfeatures(.VolcanicIslands, "volcanic-islands", "VOLCANIC_ISLANDS GPU generation", "volcanic-islands", &[_]@This() {
313 .Wavefrontsize64,
314 .Fp64,
313 .IntClampInsts,
314 .SdwaMav,
315 .Movrel,
316 .SMemrealtime,
315317 .Gcn3Encoding,
316318 .TrigReducedRange,
317 .Sdwa,
318 .VgprIndexMode,
319 .Dpp,
319 .CiInsts,
320320 .FlatAddressSpace,
321 .Gfx8Insts,
322 .Gfx7Gfx8Gfx9Insts,
323 .MimgR128,
321 .Sdwa,
322 .Wavefrontsize64,
324323 .NoSramEccSupport,
325 .IntClampInsts,
326324 .ScalarStores,
327 .Movrel,
328 .SdwaMav,
329 .CiInsts,
325 .Gfx7Gfx8Gfx9Insts,
326 .Dpp,
327 .Localmemorysize65536,
330328 .BitInsts16,
331 .SMemrealtime,
329 .VgprIndexMode,
330 .Gfx8Insts,
332331 .Inv2piInlineImm,
333 .Localmemorysize65536,
332 .MimgR128,
334333 .SdwaOutModsVopc,
334 .Fp64,
335335 }),
336336 FeatureInfo(@This()).create(.Vscnt, "vscnt", "Has separate store vscnt counter", "vscnt"),
337337 FeatureInfo(@This()).create(.Wavefrontsize16, "wavefrontsize16", "The number of threads per wavefront", "wavefrontsize16"),
lib/std/target/feature/ArmFeature.zig+196-196
......@@ -177,7 +177,7 @@ pub const ArmFeature = enum {
177177 Swift,
178178 Xscale,
179179
180 pub fn getInfo(self: @This()) FeatureInfo {
180 pub fn getInfo(self: @This()) FeatureInfo(@This()) {
181181 return feature_infos[@enumToInt(self)];
182182 }
183183
......@@ -215,283 +215,283 @@ pub const ArmFeature = enum {
215215 .Trustzone,
216216 }),
217217 FeatureInfo(@This()).createWithSubfeatures(.Armv6M, "armv6-m", "ARMv6m architecture", "armv6-m", &[_]@This() {
218 .Mclass,
219 .StrictAlign,
218 .V4t,
220219 .ThumbMode,
221220 .Db,
222 .V4t,
221 .StrictAlign,
222 .Mclass,
223223 .Noarm,
224224 }),
225225 FeatureInfo(@This()).createWithSubfeatures(.Armv6sM, "armv6s-m", "ARMv6sm architecture", "armv6s-m", &[_]@This() {
226 .Mclass,
227 .StrictAlign,
226 .V4t,
228227 .ThumbMode,
229228 .Db,
230 .V4t,
229 .StrictAlign,
230 .Mclass,
231231 .Noarm,
232232 }),
233233 FeatureInfo(@This()).createWithSubfeatures(.Armv6t2, "armv6t2", "ARMv6t2 architecture", "armv6t2", &[_]@This() {
234 .Thumb2,
235234 .V4t,
235 .Thumb2,
236236 .Dsp,
237237 }),
238238 FeatureInfo(@This()).createWithSubfeatures(.Armv7A, "armv7-a", "ARMv7a architecture", "armv7-a", &[_]@This() {
239 .Thumb2,
240239 .Perfmon,
241 .Db,
242 .Dsp,
243 .V7clrex,
244240 .V4t,
245 .Fpregs,
246241 .D32,
242 .Fpregs,
243 .V7clrex,
244 .Dsp,
245 .Thumb2,
246 .Db,
247247 .Aclass,
248248 }),
249249 FeatureInfo(@This()).createWithSubfeatures(.Armv7eM, "armv7e-m", "ARMv7em architecture", "armv7e-m", &[_]@This() {
250 .Thumb2,
251 .Mclass,
252250 .Perfmon,
251 .V4t,
253252 .ThumbMode,
254 .Db,
255 .Dsp,
256253 .V7clrex,
257 .V4t,
258 .Hwdiv,
254 .Dsp,
255 .Thumb2,
256 .Db,
257 .Mclass,
259258 .Noarm,
259 .Hwdiv,
260260 }),
261261 FeatureInfo(@This()).createWithSubfeatures(.Armv7k, "armv7k", "ARMv7a architecture", "armv7k", &[_]@This() {
262 .Thumb2,
263262 .Perfmon,
264 .Db,
265 .Dsp,
266 .V7clrex,
267263 .V4t,
268 .Fpregs,
269264 .D32,
265 .Fpregs,
266 .V7clrex,
267 .Dsp,
268 .Thumb2,
269 .Db,
270270 .Aclass,
271271 }),
272272 FeatureInfo(@This()).createWithSubfeatures(.Armv7M, "armv7-m", "ARMv7m architecture", "armv7-m", &[_]@This() {
273 .Thumb2,
274 .Mclass,
275273 .Perfmon,
274 .V4t,
276275 .ThumbMode,
277 .Db,
278276 .V7clrex,
279 .V4t,
280 .Hwdiv,
277 .Thumb2,
278 .Db,
279 .Mclass,
281280 .Noarm,
281 .Hwdiv,
282282 }),
283283 FeatureInfo(@This()).createWithSubfeatures(.Armv7R, "armv7-r", "ARMv7r architecture", "armv7-r", &[_]@This() {
284 .Thumb2,
285284 .Perfmon,
286 .Db,
287 .Dsp,
288 .Rclass,
289 .V7clrex,
290285 .V4t,
286 .V7clrex,
287 .Dsp,
288 .Thumb2,
289 .Db,
291290 .Hwdiv,
291 .Rclass,
292292 }),
293293 FeatureInfo(@This()).createWithSubfeatures(.Armv7s, "armv7s", "ARMv7a architecture", "armv7s", &[_]@This() {
294 .Thumb2,
295294 .Perfmon,
296 .Db,
297 .Dsp,
298 .V7clrex,
299295 .V4t,
300 .Fpregs,
301296 .D32,
297 .Fpregs,
298 .V7clrex,
299 .Dsp,
300 .Thumb2,
301 .Db,
302302 .Aclass,
303303 }),
304304 FeatureInfo(@This()).createWithSubfeatures(.Armv7ve, "armv7ve", "ARMv7ve architecture", "armv7ve", &[_]@This() {
305 .Thumb2,
306 .Mp,
305 .HwdivArm,
307306 .Perfmon,
308 .Db,
309 .Dsp,
310 .V7clrex,
311 .V4t,
312 .Fpregs,
313307 .D32,
314 .Hwdiv,
315 .HwdivArm,
308 .Mp,
309 .Fpregs,
310 .V4t,
311 .V7clrex,
312 .Dsp,
313 .Thumb2,
314 .Db,
316315 .Aclass,
316 .Hwdiv,
317317 .Trustzone,
318318 }),
319319 FeatureInfo(@This()).createWithSubfeatures(.Armv8A, "armv8-a", "ARMv8a architecture", "armv8-a", &[_]@This() {
320 .Thumb2,
321 .Mp,
320 .HwdivArm,
322321 .Perfmon,
323 .Db,
322 .D32,
323 .Fpregs,
324324 .Crc,
325 .Mp,
325326 .Fp16,
326327 .Dsp,
327 .V7clrex,
328328 .V4t,
329 .Fpregs,
330 .D32,
331 .Hwdiv,
332 .HwdivArm,
329 .V7clrex,
330 .Db,
333331 .Aclass,
334 .Trustzone,
332 .Thumb2,
335333 .AcquireRelease,
334 .Hwdiv,
335 .Trustzone,
336336 }),
337337 FeatureInfo(@This()).createWithSubfeatures(.Armv8Mbase, "armv8-m.base", "ARMv8mBaseline architecture", "armv8-m.base", &[_]@This() {
338 .Mclass,
339 .StrictAlign,
338 .V4t,
340339 .ThumbMode,
341 .Db,
342340 .Msecext8,
343341 .V7clrex,
344 .V4t,
345 .Hwdiv,
342 .Db,
343 .StrictAlign,
344 .Mclass,
346345 .Noarm,
347346 .AcquireRelease,
347 .Hwdiv,
348348 }),
349349 FeatureInfo(@This()).createWithSubfeatures(.Armv8Mmain, "armv8-m.main", "ARMv8mMainline architecture", "armv8-m.main", &[_]@This() {
350 .Thumb2,
351 .Mclass,
352350 .Perfmon,
351 .V4t,
353352 .ThumbMode,
354 .Db,
355353 .Msecext8,
356354 .V7clrex,
357 .V4t,
358 .Hwdiv,
355 .Thumb2,
356 .Db,
357 .Mclass,
359358 .Noarm,
360359 .AcquireRelease,
360 .Hwdiv,
361361 }),
362362 FeatureInfo(@This()).createWithSubfeatures(.Armv8R, "armv8-r", "ARMv8r architecture", "armv8-r", &[_]@This() {
363 .Thumb2,
364 .Mp,
363 .HwdivArm,
365364 .Perfmon,
366 .Db,
365 .D32,
367366 .Crc,
368 .Fp16,
367 .Fpregs,
368 .Mp,
369369 .Dfb,
370370 .Dsp,
371 .Rclass,
372 .V7clrex,
371 .Fp16,
373372 .V4t,
374 .Fpregs,
375 .D32,
376 .Hwdiv,
377 .HwdivArm,
373 .Db,
374 .V7clrex,
375 .Thumb2,
378376 .AcquireRelease,
377 .Hwdiv,
378 .Rclass,
379379 }),
380380 FeatureInfo(@This()).createWithSubfeatures(.Armv81A, "armv8.1-a", "ARMv81a architecture", "armv8.1-a", &[_]@This() {
381 .Thumb2,
382 .Mp,
381 .HwdivArm,
383382 .Perfmon,
384 .Db,
383 .D32,
384 .Fpregs,
385385 .Crc,
386 .Mp,
386387 .Fp16,
387388 .Dsp,
388 .V7clrex,
389389 .V4t,
390 .Fpregs,
391 .D32,
392 .Hwdiv,
393 .HwdivArm,
390 .V7clrex,
391 .Db,
394392 .Aclass,
395 .Trustzone,
393 .Thumb2,
396394 .AcquireRelease,
395 .Hwdiv,
396 .Trustzone,
397397 }),
398398 FeatureInfo(@This()).createWithSubfeatures(.Armv81Mmain, "armv8.1-m.main", "ARMv81mMainline architecture", "armv8.1-m.main", &[_]@This() {
399 .Thumb2,
400 .Mclass,
401399 .Perfmon,
400 .V4t,
402401 .ThumbMode,
403 .Db,
404402 .Msecext8,
405 .Ras,
406403 .V7clrex,
407 .V4t,
408 .Hwdiv,
404 .Thumb2,
405 .Db,
406 .Ras,
407 .Mclass,
409408 .Noarm,
410 .Lob,
411409 .AcquireRelease,
410 .Hwdiv,
411 .Lob,
412412 }),
413413 FeatureInfo(@This()).createWithSubfeatures(.Armv82A, "armv8.2-a", "ARMv82a architecture", "armv8.2-a", &[_]@This() {
414 .Thumb2,
415 .Mp,
414 .HwdivArm,
416415 .Perfmon,
417 .Db,
416 .D32,
417 .Fpregs,
418418 .Crc,
419 .Mp,
419420 .Fp16,
420 .Ras,
421421 .Dsp,
422 .V7clrex,
423422 .V4t,
424 .Fpregs,
425 .D32,
426 .Hwdiv,
427 .HwdivArm,
423 .V7clrex,
424 .Db,
428425 .Aclass,
429 .Trustzone,
426 .Thumb2,
427 .Ras,
430428 .AcquireRelease,
429 .Hwdiv,
430 .Trustzone,
431431 }),
432432 FeatureInfo(@This()).createWithSubfeatures(.Armv83A, "armv8.3-a", "ARMv83a architecture", "armv8.3-a", &[_]@This() {
433 .Thumb2,
434 .Mp,
433 .HwdivArm,
435434 .Perfmon,
436 .Db,
435 .D32,
436 .Fpregs,
437437 .Crc,
438 .Mp,
438439 .Fp16,
439 .Ras,
440440 .Dsp,
441 .V7clrex,
442441 .V4t,
443 .Fpregs,
444 .D32,
445 .Hwdiv,
446 .HwdivArm,
442 .V7clrex,
443 .Db,
447444 .Aclass,
448 .Trustzone,
445 .Thumb2,
446 .Ras,
449447 .AcquireRelease,
448 .Hwdiv,
449 .Trustzone,
450450 }),
451451 FeatureInfo(@This()).createWithSubfeatures(.Armv84A, "armv8.4-a", "ARMv84a architecture", "armv8.4-a", &[_]@This() {
452 .Thumb2,
453 .Mp,
452 .HwdivArm,
454453 .Perfmon,
455 .Db,
454 .D32,
455 .Fpregs,
456456 .Crc,
457 .Mp,
457458 .Fp16,
458 .Ras,
459459 .Dsp,
460 .V7clrex,
461460 .V4t,
462 .Fpregs,
463 .D32,
464 .Hwdiv,
465 .HwdivArm,
461 .V7clrex,
462 .Db,
466463 .Aclass,
467 .Trustzone,
464 .Thumb2,
465 .Ras,
468466 .AcquireRelease,
467 .Hwdiv,
468 .Trustzone,
469469 }),
470470 FeatureInfo(@This()).createWithSubfeatures(.Armv85A, "armv8.5-a", "ARMv85a architecture", "armv8.5-a", &[_]@This() {
471 .Thumb2,
472 .Mp,
471 .HwdivArm,
473472 .Perfmon,
474 .Sb,
475 .Db,
473 .D32,
474 .Fpregs,
476475 .Crc,
476 .Mp,
477477 .Fp16,
478 .Ras,
479478 .Dsp,
480 .V7clrex,
481479 .V4t,
482 .Fpregs,
483 .D32,
484 .Hwdiv,
485 .HwdivArm,
480 .V7clrex,
481 .Db,
486482 .Aclass,
487 .Trustzone,
483 .Thumb2,
484 .Ras,
485 .Sb,
488486 .AcquireRelease,
487 .Hwdiv,
488 .Trustzone,
489489 }),
490490 FeatureInfo(@This()).create(.Msecext8, "8msecext", "Enable support for ARMv8-M Security Extensions", "8msecext"),
491491 FeatureInfo(@This()).create(.Aclass, "aclass", "Is application profile ('A' series)", "aclass"),
492492 FeatureInfo(@This()).createWithSubfeatures(.Aes, "aes", "Enable AES support", "aes", &[_]@This() {
493 .Fpregs,
494493 .D32,
494 .Fpregs,
495495 }),
496496 FeatureInfo(@This()).create(.AcquireRelease, "acquire-release", "Has v8 acquire/release (lda/ldaex etc) instructions", "acquire-release"),
497497 FeatureInfo(@This()).create(.AvoidMovsShop, "avoid-movs-shop", "Avoid movs instructions with shifter operand", "avoid-movs-shop"),
......@@ -500,8 +500,8 @@ pub const ArmFeature = enum {
500500 FeatureInfo(@This()).create(.CheapPredicableCpsr, "cheap-predicable-cpsr", "Disable +1 predication cost for instructions updating CPSR", "cheap-predicable-cpsr"),
501501 FeatureInfo(@This()).create(.VldnAlign, "vldn-align", "Check for VLDn unaligned access", "vldn-align"),
502502 FeatureInfo(@This()).createWithSubfeatures(.Crypto, "crypto", "Enable support for Cryptography extensions", "crypto", &[_]@This() {
503 .Fpregs,
504503 .D32,
504 .Fpregs,
505505 }),
506506 FeatureInfo(@This()).create(.D32, "d32", "Extend FP to 32 double registers", "d32"),
507507 FeatureInfo(@This()).create(.Db, "db", "Has data barrier (dmb/dsb) instructions", "db"),
......@@ -509,37 +509,37 @@ pub const ArmFeature = enum {
509509 FeatureInfo(@This()).create(.Dsp, "dsp", "Supports DSP instructions in ARM and/or Thumb2", "dsp"),
510510 FeatureInfo(@This()).create(.DontWidenVmovs, "dont-widen-vmovs", "Don't widen VMOVS to VMOVD", "dont-widen-vmovs"),
511511 FeatureInfo(@This()).createWithSubfeatures(.Dotprod, "dotprod", "Enable support for dot product instructions", "dotprod", &[_]@This() {
512 .Fpregs,
513512 .D32,
513 .Fpregs,
514514 }),
515515 FeatureInfo(@This()).create(.ExecuteOnly, "execute-only", "Enable the generation of execute only code.", "execute-only"),
516516 FeatureInfo(@This()).create(.ExpandFpMlx, "expand-fp-mlx", "Expand VFP/NEON MLA/MLS instructions", "expand-fp-mlx"),
517517 FeatureInfo(@This()).create(.Fp16, "fp16", "Enable half-precision floating point", "fp16"),
518518 FeatureInfo(@This()).createWithSubfeatures(.Fp16fml, "fp16fml", "Enable full half-precision floating point fml instructions", "fp16fml", &[_]@This() {
519 .Fp16,
520519 .Fpregs,
520 .Fp16,
521521 }),
522522 FeatureInfo(@This()).createWithSubfeatures(.Fp64, "fp64", "Floating point unit supports double precision", "fp64", &[_]@This() {
523523 .Fpregs,
524524 }),
525525 FeatureInfo(@This()).create(.Fpao, "fpao", "Enable fast computation of positive address offsets", "fpao"),
526526 FeatureInfo(@This()).createWithSubfeatures(.FpArmv8, "fp-armv8", "Enable ARMv8 FP", "fp-armv8", &[_]@This() {
527 .Fp16,
528 .Fpregs,
529527 .D32,
528 .Fpregs,
529 .Fp16,
530530 }),
531531 FeatureInfo(@This()).createWithSubfeatures(.FpArmv8d16, "fp-armv8d16", "Enable ARMv8 FP with only 16 d-registers", "fp-armv8d16", &[_]@This() {
532 .Fp16,
533532 .Fpregs,
533 .Fp16,
534534 }),
535535 FeatureInfo(@This()).createWithSubfeatures(.FpArmv8d16sp, "fp-armv8d16sp", "Enable ARMv8 FP with only 16 d-registers and no double precision", "fp-armv8d16sp", &[_]@This() {
536 .Fp16,
537536 .Fpregs,
537 .Fp16,
538538 }),
539539 FeatureInfo(@This()).createWithSubfeatures(.FpArmv8sp, "fp-armv8sp", "Enable ARMv8 FP with no double precision", "fp-armv8sp", &[_]@This() {
540 .Fp16,
541 .Fpregs,
542540 .D32,
541 .Fpregs,
542 .Fp16,
543543 }),
544544 FeatureInfo(@This()).create(.Fpregs, "fpregs", "Enable FP registers", "fpregs"),
545545 FeatureInfo(@This()).createWithSubfeatures(.Fpregs16, "fpregs16", "Enable 16-bit FP registers", "fpregs16", &[_]@This() {
......@@ -549,8 +549,8 @@ pub const ArmFeature = enum {
549549 .Fpregs,
550550 }),
551551 FeatureInfo(@This()).createWithSubfeatures(.Fullfp16, "fullfp16", "Enable full half-precision floating point", "fullfp16", &[_]@This() {
552 .Fp16,
553552 .Fpregs,
553 .Fp16,
554554 }),
555555 FeatureInfo(@This()).create(.FuseAes, "fuse-aes", "CPU fuses AES crypto operations", "fuse-aes"),
556556 FeatureInfo(@This()).create(.FuseLiterals, "fuse-literals", "CPU fuses literal generation operations", "fuse-literals"),
......@@ -569,8 +569,8 @@ pub const ArmFeature = enum {
569569 FeatureInfo(@This()).create(.Mve4beat, "mve4beat", "Model MVE instructions as a 4 beats per tick architecture", "mve4beat"),
570570 FeatureInfo(@This()).create(.MuxedUnits, "muxed-units", "Has muxed AGU and NEON/FPU", "muxed-units"),
571571 FeatureInfo(@This()).createWithSubfeatures(.Neon, "neon", "Enable NEON instructions", "neon", &[_]@This() {
572 .Fpregs,
573572 .D32,
573 .Fpregs,
574574 }),
575575 FeatureInfo(@This()).create(.Neonfp, "neonfp", "Use NEON for single precision FP", "neonfp"),
576576 FeatureInfo(@This()).create(.NeonFpmovs, "neon-fpmovs", "Convert VMOVSR, VMOVRS, VMOVS to NEON", "neon-fpmovs"),
......@@ -592,8 +592,8 @@ pub const ArmFeature = enum {
592592 FeatureInfo(@This()).create(.ReserveR9, "reserve-r9", "Reserve R9, making it unavailable as GPR", "reserve-r9"),
593593 FeatureInfo(@This()).create(.Sb, "sb", "Enable v8.5a Speculation Barrier", "sb"),
594594 FeatureInfo(@This()).createWithSubfeatures(.Sha2, "sha2", "Enable SHA1 and SHA256 support", "sha2", &[_]@This() {
595 .Fpregs,
596595 .D32,
596 .Fpregs,
597597 }),
598598 FeatureInfo(@This()).create(.SlowFpBrcc, "slow-fp-brcc", "FP compare + branch is slow", "slow-fp-brcc"),
599599 FeatureInfo(@This()).create(.SlowLoadDSubreg, "slow-load-D-subreg", "Loading into D subregs is slow", "slow-load-D-subreg"),
......@@ -617,8 +617,8 @@ pub const ArmFeature = enum {
617617 .Fpregs,
618618 }),
619619 FeatureInfo(@This()).createWithSubfeatures(.Vfp3, "vfp3", "Enable VFP3 instructions", "vfp3", &[_]@This() {
620 .Fpregs,
621620 .D32,
621 .Fpregs,
622622 }),
623623 FeatureInfo(@This()).createWithSubfeatures(.Vfp3d16, "vfp3d16", "Enable VFP3 instructions with only 16 d-registers", "vfp3d16", &[_]@This() {
624624 .Fpregs,
......@@ -627,26 +627,26 @@ pub const ArmFeature = enum {
627627 .Fpregs,
628628 }),
629629 FeatureInfo(@This()).createWithSubfeatures(.Vfp3sp, "vfp3sp", "Enable VFP3 instructions with no double precision", "vfp3sp", &[_]@This() {
630 .Fpregs,
631630 .D32,
631 .Fpregs,
632632 }),
633633 FeatureInfo(@This()).createWithSubfeatures(.Vfp4, "vfp4", "Enable VFP4 instructions", "vfp4", &[_]@This() {
634 .Fp16,
635 .Fpregs,
636634 .D32,
635 .Fpregs,
636 .Fp16,
637637 }),
638638 FeatureInfo(@This()).createWithSubfeatures(.Vfp4d16, "vfp4d16", "Enable VFP4 instructions with only 16 d-registers", "vfp4d16", &[_]@This() {
639 .Fp16,
640639 .Fpregs,
640 .Fp16,
641641 }),
642642 FeatureInfo(@This()).createWithSubfeatures(.Vfp4d16sp, "vfp4d16sp", "Enable VFP4 instructions with only 16 d-registers and no double precision", "vfp4d16sp", &[_]@This() {
643 .Fp16,
644643 .Fpregs,
644 .Fp16,
645645 }),
646646 FeatureInfo(@This()).createWithSubfeatures(.Vfp4sp, "vfp4sp", "Enable VFP4 instructions with no double precision", "vfp4sp", &[_]@This() {
647 .Fp16,
648 .Fpregs,
649647 .D32,
648 .Fpregs,
649 .Fp16,
650650 }),
651651 FeatureInfo(@This()).create(.VmlxForwarding, "vmlx-forwarding", "Has multiplier accumulator forwarding", "vmlx-forwarding"),
652652 FeatureInfo(@This()).createWithSubfeatures(.Virtualization, "virtualization", "Supports Virtualization extension", "virtualization", &[_]@This() {
......@@ -655,21 +655,21 @@ pub const ArmFeature = enum {
655655 }),
656656 FeatureInfo(@This()).create(.Zcz, "zcz", "Has zero-cycle zeroing instructions", "zcz"),
657657 FeatureInfo(@This()).createWithSubfeatures(.Mvefp, "mve.fp", "Support M-Class Vector Extension with integer and floating ops", "mve.fp", &[_]@This() {
658 .Thumb2,
659658 .Perfmon,
660 .Fp16,
661 .Dsp,
662 .V7clrex,
663659 .V4t,
664660 .Fpregs,
661 .V7clrex,
662 .Fp16,
663 .Dsp,
664 .Thumb2,
665665 }),
666666 FeatureInfo(@This()).createWithSubfeatures(.Mve, "mve", "Support M-Class Vector Extension with integer ops", "mve", &[_]@This() {
667 .Thumb2,
668667 .Perfmon,
669 .Dsp,
670 .V7clrex,
671668 .V4t,
672669 .Fpregs,
670 .V7clrex,
671 .Dsp,
672 .Thumb2,
673673 }),
674674 FeatureInfo(@This()).create(.V4t, "v4t", "Support ARM v4T instructions", "v4t"),
675675 FeatureInfo(@This()).createWithSubfeatures(.V5te, "v5te", "Support ARM v5TE, v5TEj, and v5TExp instructions", "v5te", &[_]@This() {
......@@ -688,76 +688,76 @@ pub const ArmFeature = enum {
688688 .V4t,
689689 }),
690690 FeatureInfo(@This()).createWithSubfeatures(.V6t2, "v6t2", "Support ARM v6t2 instructions", "v6t2", &[_]@This() {
691 .Thumb2,
692691 .V4t,
692 .Thumb2,
693693 }),
694694 FeatureInfo(@This()).createWithSubfeatures(.V7, "v7", "Support ARM v7 instructions", "v7", &[_]@This() {
695 .V7clrex,
696 .V4t,
697695 .Perfmon,
698696 .Thumb2,
697 .V4t,
698 .V7clrex,
699699 }),
700700 FeatureInfo(@This()).createWithSubfeatures(.V8m, "v8m", "Support ARM v8M Baseline instructions", "v8m", &[_]@This() {
701701 .V4t,
702702 }),
703703 FeatureInfo(@This()).createWithSubfeatures(.V8mmain, "v8m.main", "Support ARM v8M Mainline instructions", "v8m.main", &[_]@This() {
704 .V7clrex,
705 .V4t,
706704 .Perfmon,
707705 .Thumb2,
706 .V4t,
707 .V7clrex,
708708 }),
709709 FeatureInfo(@This()).createWithSubfeatures(.V8, "v8", "Support ARM v8 instructions", "v8", &[_]@This() {
710 .Thumb2,
711710 .Perfmon,
712 .V7clrex,
713711 .V4t,
712 .V7clrex,
713 .Thumb2,
714714 .AcquireRelease,
715715 }),
716716 FeatureInfo(@This()).createWithSubfeatures(.V81mmain, "v8.1m.main", "Support ARM v8-1M Mainline instructions", "v8.1m.main", &[_]@This() {
717 .V7clrex,
718 .V4t,
719717 .Perfmon,
720718 .Thumb2,
719 .V4t,
720 .V7clrex,
721721 }),
722722 FeatureInfo(@This()).createWithSubfeatures(.V81a, "v8.1a", "Support ARM v8.1a instructions", "v8.1a", &[_]@This() {
723 .Thumb2,
724723 .Perfmon,
725 .V7clrex,
726724 .V4t,
725 .V7clrex,
726 .Thumb2,
727727 .AcquireRelease,
728728 }),
729729 FeatureInfo(@This()).createWithSubfeatures(.V82a, "v8.2a", "Support ARM v8.2a instructions", "v8.2a", &[_]@This() {
730 .Thumb2,
731730 .Perfmon,
732 .V7clrex,
733731 .V4t,
732 .V7clrex,
733 .Thumb2,
734734 .AcquireRelease,
735735 }),
736736 FeatureInfo(@This()).createWithSubfeatures(.V83a, "v8.3a", "Support ARM v8.3a instructions", "v8.3a", &[_]@This() {
737 .Thumb2,
738737 .Perfmon,
739 .V7clrex,
740738 .V4t,
739 .V7clrex,
740 .Thumb2,
741741 .AcquireRelease,
742742 }),
743743 FeatureInfo(@This()).createWithSubfeatures(.V84a, "v8.4a", "Support ARM v8.4a instructions", "v8.4a", &[_]@This() {
744 .Thumb2,
745744 .Perfmon,
746 .V7clrex,
747745 .V4t,
748 .Fpregs,
749746 .D32,
747 .Fpregs,
748 .V7clrex,
749 .Thumb2,
750750 .AcquireRelease,
751751 }),
752752 FeatureInfo(@This()).createWithSubfeatures(.V85a, "v8.5a", "Support ARM v8.5a instructions", "v8.5a", &[_]@This() {
753 .Thumb2,
754753 .Perfmon,
755 .Sb,
756 .V7clrex,
757754 .V4t,
758 .Fpregs,
759755 .D32,
756 .Fpregs,
757 .V7clrex,
758 .Thumb2,
760759 .AcquireRelease,
760 .Sb,
761761 }),
762762 FeatureInfo(@This()).createWithSubfeatures(.Iwmmxt, "iwmmxt", "ARMv5te architecture", "iwmmxt", &[_]@This() {
763763 .V4t,
......@@ -784,24 +784,24 @@ pub const ArmFeature = enum {
784784 FeatureInfo(@This()).create(.A75, "a75", "Cortex-A75 ARM processors", "a75"),
785785 FeatureInfo(@This()).create(.A76, "a76", "Cortex-A76 ARM processors", "a76"),
786786 FeatureInfo(@This()).createWithSubfeatures(.Exynos, "exynos", "Samsung Exynos processors", "exynos", &[_]@This() {
787 .Zcz,
788 .SlowVdup32,
789 .SlowVgetlni32,
790 .DontWidenVmovs,
787 .HwdivArm,
788 .D32,
791789 .Crc,
792 .FuseAes,
790 .Fpregs,
791 .RetAddrStack,
792 .SlowVgetlni32,
793793 .WideStrideVfp,
794 .SlowVdup32,
795 .SlowFpBrcc,
794796 .ProfUnpr,
797 .DontWidenVmovs,
798 .Zcz,
799 .Hwdiv,
800 .FuseAes,
795801 .Slowfpvmlx,
796 .SlowFpBrcc,
802 .UseAa,
797803 .FuseLiterals,
798 .Fpregs,
799 .D32,
800804 .ExpandFpMlx,
801 .Hwdiv,
802 .HwdivArm,
803 .RetAddrStack,
804 .UseAa,
805805 }),
806806 FeatureInfo(@This()).create(.Krait, "krait", "Qualcomm Krait processors", "krait"),
807807 FeatureInfo(@This()).create(.Kryo, "kryo", "Qualcomm Kryo processors", "kryo"),
lib/std/target/feature/AvrFeature.zig+81-81
......@@ -35,160 +35,160 @@ pub const AvrFeature = enum {
3535 Smallstack,
3636 Tinyencoding,
3737
38 pub fn getInfo(self: @This()) FeatureInfo {
38 pub fn getInfo(self: @This()) FeatureInfo(@This()) {
3939 return feature_infos[@enumToInt(self)];
4040 }
4141
4242 pub const feature_infos = [@memberCount(@This())]FeatureInfo(@This()) {
4343 FeatureInfo(@This()).create(.Avr0, "avr0", "The device is a part of the avr0 family", "avr0"),
4444 FeatureInfo(@This()).createWithSubfeatures(.Avr1, "avr1", "The device is a part of the avr1 family", "avr1", &[_]@This() {
45 .Lpm,
4645 .Avr0,
46 .Lpm,
4747 }),
4848 FeatureInfo(@This()).createWithSubfeatures(.Avr2, "avr2", "The device is a part of the avr2 family", "avr2", &[_]@This() {
49 .Ijmpcall,
50 .Sram,
49 .Lpm,
5150 .Avr0,
51 .Sram,
5252 .Addsubiw,
53 .Lpm,
53 .Ijmpcall,
5454 }),
5555 FeatureInfo(@This()).createWithSubfeatures(.Avr3, "avr3", "The device is a part of the avr3 family", "avr3", &[_]@This() {
56 .Ijmpcall,
57 .Sram,
56 .Lpm,
5857 .Avr0,
58 .Sram,
5959 .Jmpcall,
6060 .Addsubiw,
61 .Lpm,
61 .Ijmpcall,
6262 }),
6363 FeatureInfo(@This()).createWithSubfeatures(.Avr4, "avr4", "The device is a part of the avr4 family", "avr4", &[_]@This() {
64 .Ijmpcall,
64 .Lpm,
6565 .Movw,
66 .Mul,
67 .Sram,
68 .Break,
6966 .Spm,
70 .Lpmx,
7167 .Avr0,
68 .Sram,
7269 .Addsubiw,
73 .Lpm,
70 .Mul,
71 .Lpmx,
72 .Ijmpcall,
73 .Break,
7474 }),
7575 FeatureInfo(@This()).createWithSubfeatures(.Avr5, "avr5", "The device is a part of the avr5 family", "avr5", &[_]@This() {
76 .Ijmpcall,
76 .Lpm,
7777 .Movw,
78 .Mul,
79 .Sram,
80 .Break,
8178 .Spm,
82 .Lpmx,
8379 .Avr0,
80 .Sram,
8481 .Jmpcall,
8582 .Addsubiw,
86 .Lpm,
83 .Mul,
84 .Lpmx,
85 .Ijmpcall,
86 .Break,
8787 }),
8888 FeatureInfo(@This()).createWithSubfeatures(.Avr6, "avr6", "The device is a part of the avr6 family", "avr6", &[_]@This() {
89 .Ijmpcall,
90 .Elpmx,
89 .Lpm,
90 .Elpm,
9191 .Movw,
92 .Mul,
93 .Sram,
94 .Break,
92 .Elpmx,
9593 .Spm,
96 .Elpm,
97 .Lpmx,
9894 .Avr0,
95 .Sram,
9996 .Jmpcall,
10097 .Addsubiw,
101 .Lpm,
98 .Mul,
99 .Lpmx,
100 .Ijmpcall,
101 .Break,
102102 }),
103103 FeatureInfo(@This()).createWithSubfeatures(.Avr25, "avr25", "The device is a part of the avr25 family", "avr25", &[_]@This() {
104 .Ijmpcall,
104 .Lpm,
105105 .Movw,
106 .Sram,
107 .Break,
108106 .Spm,
109 .Lpmx,
110107 .Avr0,
108 .Sram,
111109 .Addsubiw,
112 .Lpm,
110 .Lpmx,
111 .Ijmpcall,
112 .Break,
113113 }),
114114 FeatureInfo(@This()).createWithSubfeatures(.Avr31, "avr31", "The device is a part of the avr31 family", "avr31", &[_]@This() {
115 .Ijmpcall,
116 .Sram,
115 .Lpm,
117116 .Elpm,
118117 .Avr0,
118 .Sram,
119119 .Jmpcall,
120120 .Addsubiw,
121 .Lpm,
121 .Ijmpcall,
122122 }),
123123 FeatureInfo(@This()).createWithSubfeatures(.Avr35, "avr35", "The device is a part of the avr35 family", "avr35", &[_]@This() {
124 .Ijmpcall,
124 .Lpm,
125125 .Movw,
126 .Sram,
127 .Break,
128126 .Spm,
129 .Lpmx,
130127 .Avr0,
128 .Sram,
131129 .Jmpcall,
132130 .Addsubiw,
133 .Lpm,
131 .Lpmx,
132 .Ijmpcall,
133 .Break,
134134 }),
135135 FeatureInfo(@This()).createWithSubfeatures(.Avr51, "avr51", "The device is a part of the avr51 family", "avr51", &[_]@This() {
136 .Ijmpcall,
137 .Elpmx,
136 .Lpm,
137 .Elpm,
138138 .Movw,
139 .Mul,
140 .Sram,
141 .Break,
139 .Elpmx,
142140 .Spm,
143 .Elpm,
144 .Lpmx,
145141 .Avr0,
142 .Sram,
146143 .Jmpcall,
147144 .Addsubiw,
148 .Lpm,
145 .Mul,
146 .Lpmx,
147 .Ijmpcall,
148 .Break,
149149 }),
150150 FeatureInfo(@This()).createWithSubfeatures(.Avrtiny, "avrtiny", "The device is a part of the avrtiny family", "avrtiny", &[_]@This() {
151 .Break,
152 .Tinyencoding,
153151 .Avr0,
154152 .Sram,
153 .Break,
154 .Tinyencoding,
155155 }),
156156 FeatureInfo(@This()).createWithSubfeatures(.Xmega, "xmega", "The device is a part of the xmega family", "xmega", &[_]@This() {
157 .Ijmpcall,
158 .Elpmx,
157 .Lpm,
158 .Elpm,
159159 .Movw,
160 .Eijmpcall,
161 .Mul,
162 .Sram,
163 .Break,
160 .Elpmx,
164161 .Spm,
165 .Elpm,
166 .Lpmx,
167 .Spmx,
168162 .Avr0,
163 .Sram,
169164 .Jmpcall,
165 .Eijmpcall,
166 .Spmx,
170167 .Addsubiw,
171 .Lpm,
168 .Mul,
169 .Lpmx,
172170 .Des,
171 .Ijmpcall,
172 .Break,
173173 }),
174174 FeatureInfo(@This()).createWithSubfeatures(.Xmegau, "xmegau", "The device is a part of the xmegau family", "xmegau", &[_]@This() {
175 .Ijmpcall,
176 .Elpmx,
175 .Lpm,
176 .Elpm,
177177 .Movw,
178 .Eijmpcall,
179 .Mul,
180 .Rmw,
181 .Sram,
182 .Break,
178 .Elpmx,
183179 .Spm,
184 .Elpm,
185 .Lpmx,
186 .Spmx,
187180 .Avr0,
181 .Sram,
188182 .Jmpcall,
183 .Eijmpcall,
184 .Spmx,
189185 .Addsubiw,
190 .Lpm,
186 .Mul,
187 .Lpmx,
188 .Rmw,
191189 .Des,
190 .Ijmpcall,
191 .Break,
192192 }),
193193 FeatureInfo(@This()).create(.Addsubiw, "addsubiw", "Enable 16-bit register-immediate addition and subtraction instructions", "addsubiw"),
194194 FeatureInfo(@This()).create(.Break, "break", "The device supports the `BREAK` debugging instruction", "break"),
......@@ -207,22 +207,22 @@ pub const AvrFeature = enum {
207207 FeatureInfo(@This()).create(.Spmx, "spmx", "The device supports the `SPM Z+` instruction", "spmx"),
208208 FeatureInfo(@This()).create(.Sram, "sram", "The device has random access memory", "sram"),
209209 FeatureInfo(@This()).createWithSubfeatures(.Special, "special", "Enable use of the entire instruction set - used for debugging", "special", &[_]@This() {
210 .Ijmpcall,
210 .Lpm,
211 .Elpm,
211212 .Elpmx,
212213 .Movw,
213 .Eijmpcall,
214 .Mul,
215 .Rmw,
216 .Sram,
217 .Break,
218 .Elpm,
219214 .Spm,
220 .Lpmx,
215 .Eijmpcall,
221216 .Spmx,
222217 .Jmpcall,
218 .Sram,
223219 .Addsubiw,
224 .Lpm,
220 .Mul,
221 .Lpmx,
222 .Rmw,
225223 .Des,
224 .Ijmpcall,
225 .Break,
226226 }),
227227 FeatureInfo(@This()).create(.Smallstack, "smallstack", "The device has an 8-bit stack pointer", "smallstack"),
228228 FeatureInfo(@This()).create(.Tinyencoding, "tinyencoding", "The device has Tiny core specific instruction encodings", "tinyencoding"),
lib/std/target/feature/BpfFeature.zig+1-1
......@@ -5,7 +5,7 @@ pub const BpfFeature = enum {
55 Dummy,
66 Dwarfris,
77
8 pub fn getInfo(self: @This()) FeatureInfo {
8 pub fn getInfo(self: @This()) FeatureInfo(@This()) {
99 return feature_infos[@enumToInt(self)];
1010 }
1111
lib/std/target/feature/HexagonFeature.zig+1-1
......@@ -26,7 +26,7 @@ pub const HexagonFeature = enum {
2626 ReservedR19,
2727 SmallData,
2828
29 pub fn getInfo(self: @This()) FeatureInfo {
29 pub fn getInfo(self: @This()) FeatureInfo(@This()) {
3030 return feature_infos[@enumToInt(self)];
3131 }
3232
lib/std/target/feature/MipsFeature.zig+73-73
......@@ -52,7 +52,7 @@ pub const MipsFeature = enum {
5252 Xgot,
5353 P5600,
5454
55 pub fn getInfo(self: @This()) FeatureInfo {
55 pub fn getInfo(self: @This()) FeatureInfo(@This()) {
5656 return feature_infos[@enumToInt(self)];
5757 }
5858
......@@ -60,14 +60,14 @@ pub const MipsFeature = enum {
6060 FeatureInfo(@This()).create(.Abs2008, "abs2008", "Disable IEEE 754-2008 abs.fmt mode", "abs2008"),
6161 FeatureInfo(@This()).create(.Crc, "crc", "Mips R6 CRC ASE", "crc"),
6262 FeatureInfo(@This()).createWithSubfeatures(.Cnmips, "cnmips", "Octeon cnMIPS Support", "cnmips", &[_]@This() {
63 .Mips3_32,
64 .Fp64,
65 .Mips4_32r2,
63 .Mips5_32r2,
6664 .Mips3_32r2,
67 .Mips1,
68 .Mips4_32,
65 .Mips4_32r2,
6966 .Gp64,
70 .Mips5_32r2,
67 .Fp64,
68 .Mips4_32,
69 .Mips1,
70 .Mips3_32,
7171 }),
7272 FeatureInfo(@This()).create(.Dsp, "dsp", "Mips DSP ASE", "dsp"),
7373 FeatureInfo(@This()).createWithSubfeatures(.Dspr2, "dspr2", "Mips DSP-R2 ASE", "dspr2", &[_]@This() {
......@@ -91,128 +91,128 @@ pub const MipsFeature = enum {
9191 .Mips1,
9292 }),
9393 FeatureInfo(@This()).createWithSubfeatures(.Mips3, "mips3", "MIPS III ISA Support [highly experimental]", "mips3", &[_]@This() {
94 .Mips3_32,
95 .Fp64,
9694 .Mips3_32r2,
97 .Mips1,
95 .Fp64,
9896 .Gp64,
97 .Mips1,
98 .Mips3_32,
9999 }),
100100 FeatureInfo(@This()).create(.Mips3_32, "mips3_32", "Subset of MIPS-III that is also in MIPS32 [highly experimental]", "mips3_32"),
101101 FeatureInfo(@This()).create(.Mips3_32r2, "mips3_32r2", "Subset of MIPS-III that is also in MIPS32r2 [highly experimental]", "mips3_32r2"),
102102 FeatureInfo(@This()).createWithSubfeatures(.Mips4, "mips4", "MIPS IV ISA Support", "mips4", &[_]@This() {
103 .Mips3_32,
104 .Fp64,
105 .Mips4_32r2,
106103 .Mips3_32r2,
107 .Mips1,
108 .Mips4_32,
104 .Mips4_32r2,
105 .Fp64,
109106 .Gp64,
107 .Mips4_32,
108 .Mips1,
109 .Mips3_32,
110110 }),
111111 FeatureInfo(@This()).create(.Mips4_32, "mips4_32", "Subset of MIPS-IV that is also in MIPS32 [highly experimental]", "mips4_32"),
112112 FeatureInfo(@This()).create(.Mips4_32r2, "mips4_32r2", "Subset of MIPS-IV that is also in MIPS32r2 [highly experimental]", "mips4_32r2"),
113113 FeatureInfo(@This()).createWithSubfeatures(.Mips5, "mips5", "MIPS V ISA Support [highly experimental]", "mips5", &[_]@This() {
114 .Mips3_32,
115 .Fp64,
114 .Mips5_32r2,
116115 .Mips4_32r2,
117116 .Mips3_32r2,
118 .Mips1,
119 .Mips4_32,
120117 .Gp64,
121 .Mips5_32r2,
118 .Fp64,
119 .Mips4_32,
120 .Mips1,
121 .Mips3_32,
122122 }),
123123 FeatureInfo(@This()).create(.Mips5_32r2, "mips5_32r2", "Subset of MIPS-V that is also in MIPS32r2 [highly experimental]", "mips5_32r2"),
124124 FeatureInfo(@This()).create(.Mips16, "mips16", "Mips16 mode", "mips16"),
125125 FeatureInfo(@This()).createWithSubfeatures(.Mips32, "mips32", "Mips32 ISA Support", "mips32", &[_]@This() {
126 .Mips3_32,
127126 .Mips4_32,
128127 .Mips1,
128 .Mips3_32,
129129 }),
130130 FeatureInfo(@This()).createWithSubfeatures(.Mips32r2, "mips32r2", "Mips32r2 ISA Support", "mips32r2", &[_]@This() {
131 .Mips3_32,
131 .Mips5_32r2,
132132 .Mips4_32r2,
133133 .Mips3_32r2,
134 .Mips1,
135134 .Mips4_32,
136 .Mips5_32r2,
135 .Mips1,
136 .Mips3_32,
137137 }),
138138 FeatureInfo(@This()).createWithSubfeatures(.Mips32r3, "mips32r3", "Mips32r3 ISA Support", "mips32r3", &[_]@This() {
139 .Mips3_32,
140 .Mips4_32r2,
139 .Mips5_32r2,
141140 .Mips3_32r2,
142 .Mips1,
141 .Mips4_32r2,
143142 .Mips4_32,
144 .Mips5_32r2,
143 .Mips1,
144 .Mips3_32,
145145 }),
146146 FeatureInfo(@This()).createWithSubfeatures(.Mips32r5, "mips32r5", "Mips32r5 ISA Support", "mips32r5", &[_]@This() {
147 .Mips3_32,
148 .Mips4_32r2,
147 .Mips5_32r2,
149148 .Mips3_32r2,
150 .Mips1,
149 .Mips4_32r2,
151150 .Mips4_32,
152 .Mips5_32r2,
151 .Mips1,
152 .Mips3_32,
153153 }),
154154 FeatureInfo(@This()).createWithSubfeatures(.Mips32r6, "mips32r6", "Mips32r6 ISA Support [experimental]", "mips32r6", &[_]@This() {
155 .Mips3_32,
156 .Fp64,
155 .Mips5_32r2,
156 .Mips3_32r2,
157157 .Mips4_32r2,
158158 .Abs2008,
159 .Mips3_32r2,
160 .Mips1,
161 .Mips4_32,
162159 .Nan2008,
163 .Mips5_32r2,
160 .Fp64,
161 .Mips4_32,
162 .Mips1,
163 .Mips3_32,
164164 }),
165165 FeatureInfo(@This()).createWithSubfeatures(.Mips64, "mips64", "Mips64 ISA Support", "mips64", &[_]@This() {
166 .Mips3_32,
167 .Fp64,
168 .Mips4_32r2,
166 .Mips5_32r2,
169167 .Mips3_32r2,
170 .Mips1,
171 .Mips4_32,
168 .Mips4_32r2,
172169 .Gp64,
173 .Mips5_32r2,
170 .Fp64,
171 .Mips4_32,
172 .Mips1,
173 .Mips3_32,
174174 }),
175175 FeatureInfo(@This()).createWithSubfeatures(.Mips64r2, "mips64r2", "Mips64r2 ISA Support", "mips64r2", &[_]@This() {
176 .Mips3_32,
177 .Fp64,
178 .Mips4_32r2,
176 .Mips5_32r2,
179177 .Mips3_32r2,
180 .Mips1,
181 .Mips4_32,
178 .Mips4_32r2,
182179 .Gp64,
183 .Mips5_32r2,
180 .Fp64,
181 .Mips4_32,
182 .Mips1,
183 .Mips3_32,
184184 }),
185185 FeatureInfo(@This()).createWithSubfeatures(.Mips64r3, "mips64r3", "Mips64r3 ISA Support", "mips64r3", &[_]@This() {
186 .Mips3_32,
187 .Fp64,
188 .Mips4_32r2,
186 .Mips5_32r2,
189187 .Mips3_32r2,
190 .Mips1,
191 .Mips4_32,
188 .Mips4_32r2,
192189 .Gp64,
193 .Mips5_32r2,
190 .Fp64,
191 .Mips4_32,
192 .Mips1,
193 .Mips3_32,
194194 }),
195195 FeatureInfo(@This()).createWithSubfeatures(.Mips64r5, "mips64r5", "Mips64r5 ISA Support", "mips64r5", &[_]@This() {
196 .Mips3_32,
197 .Fp64,
198 .Mips4_32r2,
196 .Mips5_32r2,
199197 .Mips3_32r2,
200 .Mips1,
201 .Mips4_32,
198 .Mips4_32r2,
202199 .Gp64,
203 .Mips5_32r2,
200 .Fp64,
201 .Mips4_32,
202 .Mips1,
203 .Mips3_32,
204204 }),
205205 FeatureInfo(@This()).createWithSubfeatures(.Mips64r6, "mips64r6", "Mips64r6 ISA Support [experimental]", "mips64r6", &[_]@This() {
206 .Mips3_32,
207 .Fp64,
208 .Mips4_32r2,
209 .Abs2008,
206 .Mips5_32r2,
210207 .Mips3_32r2,
211 .Mips1,
212 .Mips4_32,
213208 .Nan2008,
209 .Abs2008,
210 .Mips4_32r2,
211 .Fp64,
214212 .Gp64,
215 .Mips5_32r2,
213 .Mips4_32,
214 .Mips1,
215 .Mips3_32,
216216 }),
217217 FeatureInfo(@This()).create(.Nan2008, "nan2008", "IEEE 754-2008 NaN encoding", "nan2008"),
218218 FeatureInfo(@This()).create(.Noabicalls, "noabicalls", "Disable SVR4-style position-independent code", "noabicalls"),
......@@ -227,12 +227,12 @@ pub const MipsFeature = enum {
227227 FeatureInfo(@This()).create(.Virt, "virt", "Mips Virtualization ASE", "virt"),
228228 FeatureInfo(@This()).create(.Xgot, "xgot", "Assume 32-bit GOT", "xgot"),
229229 FeatureInfo(@This()).createWithSubfeatures(.P5600, "p5600", "The P5600 Processor", "p5600", &[_]@This() {
230 .Mips3_32,
231 .Mips4_32r2,
230 .Mips5_32r2,
232231 .Mips3_32r2,
233 .Mips1,
232 .Mips4_32r2,
234233 .Mips4_32,
235 .Mips5_32r2,
234 .Mips1,
235 .Mips3_32,
236236 }),
237237 };
238238};
lib/std/target/feature/Msp430Feature.zig+1-1
......@@ -6,7 +6,7 @@ pub const Msp430Feature = enum {
66 Hwmultf5,
77 Ext,
88
9 pub fn getInfo(self: @This()) FeatureInfo {
9 pub fn getInfo(self: @This()) FeatureInfo(@This()) {
1010 return feature_infos[@enumToInt(self)];
1111 }
1212
lib/std/target/feature/NvptxFeature.zig+1-1
......@@ -27,7 +27,7 @@ pub const NvptxFeature = enum {
2727 Sm_72,
2828 Sm_75,
2929
30 pub fn getInfo(self: @This()) FeatureInfo {
30 pub fn getInfo(self: @This()) FeatureInfo(@This()) {
3131 return feature_infos[@enumToInt(self)];
3232 }
3333
lib/std/target/feature/PowerPcFeature.zig+1-1
......@@ -53,7 +53,7 @@ pub const PowerPcFeature = enum {
5353 Vsx,
5454 VectorsUseTwoUnits,
5555
56 pub fn getInfo(self: @This()) FeatureInfo {
56 pub fn getInfo(self: @This()) FeatureInfo(@This()) {
5757 return feature_infos[@enumToInt(self)];
5858 }
5959
lib/std/target/feature/RiscVFeature.zig+1-1
......@@ -11,7 +11,7 @@ pub const RiscVFeature = enum {
1111 F,
1212 M,
1313
14 pub fn getInfo(self: @This()) FeatureInfo {
14 pub fn getInfo(self: @This()) FeatureInfo(@This()) {
1515 return feature_infos[@enumToInt(self)];
1616 }
1717
lib/std/target/feature/SparcFeature.zig+1-1
......@@ -21,7 +21,7 @@ pub const SparcFeature = enum {
2121 Hasumacsmac,
2222 Popc,
2323
24 pub fn getInfo(self: @This()) FeatureInfo {
24 pub fn getInfo(self: @This()) FeatureInfo(@This()) {
2525 return feature_infos[@enumToInt(self)];
2626 }
2727
lib/std/target/feature/SystemZFeature.zig+1-1
......@@ -37,7 +37,7 @@ pub const SystemZFeature = enum {
3737 VectorPackedDecimal,
3838 VectorPackedDecimalEnhancement,
3939
40 pub fn getInfo(self: @This()) FeatureInfo {
40 pub fn getInfo(self: @This()) FeatureInfo(@This()) {
4141 return feature_infos[@enumToInt(self)];
4242 }
4343
lib/std/target/feature/WebAssemblyFeature.zig+1-1
......@@ -12,7 +12,7 @@ pub const WebAssemblyFeature = enum {
1212 TailCall,
1313 UnimplementedSimd128,
1414
15 pub fn getInfo(self: @This()) FeatureInfo {
15 pub fn getInfo(self: @This()) FeatureInfo(@This()) {
1616 return feature_infos[@enumToInt(self)];
1717 }
1818
lib/std/target/feature/X86Feature.zig+2-2
......@@ -128,7 +128,7 @@ pub const X86Feature = enum {
128128 BitMode32,
129129 BitMode64,
130130
131 pub fn getInfo(self: @This()) FeatureInfo {
131 pub fn getInfo(self: @This()) FeatureInfo(@This()) {
132132 return feature_infos[@enumToInt(self)];
133133 }
134134
......@@ -254,8 +254,8 @@ pub const X86Feature = enum {
254254 FeatureInfo(@This()).create(.Rdseed, "rdseed", "Support RDSEED instruction", "rdseed"),
255255 FeatureInfo(@This()).create(.Rtm, "rtm", "Support RTM instructions", "rtm"),
256256 FeatureInfo(@This()).createWithSubfeatures(.Retpoline, "retpoline", "Remove speculation of indirect branches from the generated code, either by avoiding them entirely or lowering them with a speculation blocking construct", "retpoline", &[_]@This() {
257 .RetpolineIndirectBranches,
258257 .RetpolineIndirectCalls,
258 .RetpolineIndirectBranches,
259259 }),
260260 FeatureInfo(@This()).createWithSubfeatures(.RetpolineExternalThunk, "retpoline-external-thunk", "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", "retpoline-external-thunk", &[_]@This() {
261261 .RetpolineIndirectCalls,
lib/std/target/feature/empty.zig+2-2
......@@ -1,5 +1,5 @@
11const FeatureInfo = @import("std").target.feature.FeatureInfo;
22
3pub const EmptyFeature = enum {
3pub const EmptyFeature = struct {
44 pub const feature_infos = [0]FeatureInfo(@This()) {};
5}
5};