1use crate::to_command::{ToArg, ToCommand};
2use proptest_derive::Arbitrary;
3use std::str::FromStr;
4
5#[derive(Debug, Clone, Hash, Ord, PartialOrd, Eq, PartialEq, Arbitrary)]
6pub struct CpuNotFound;
7
8#[derive(Debug, Clone, Hash, Ord, PartialOrd, Eq, PartialEq, Arbitrary)]
9pub enum CpuTypeAarch64 {
10 A64fx,
12 Arm1026,
14 Arm1136,
16 Arm1136r2,
18 Arm1176,
20 Arm11mpcore,
22 Arm926,
24 Arm946,
26 Cortexa15,
28 Cortexa35,
30 Cortexa53,
32 Cortexa55,
34 Cortexa57,
36 Cortexa7,
38 Cortexa710,
40 Cortexa72,
42 Cortexa76,
44 Cortexa8,
46 Cortexa9,
48 Cortexm0,
50 Cortexm3,
52 Cortexm33,
54 Cortexm4,
56 Cortexm55,
58 Cortexm7,
60 Cortexr5,
62 Cortexr52,
64 Cortexr5f,
66 Host,
68 Max,
70 Neoversen1,
72 Neoversen2,
74 NeoverseV1,
76 Pxa270c5,
77 Sa1100,
79 Sa1110,
81 Ti925t,
83}
84impl ToCommand for CpuTypeAarch64 {
85 fn to_args(&self) -> Vec<String> {
86 let mut cmd = vec![];
87
88 match self {
89 CpuTypeAarch64::A64fx => cmd.push("a64fx".to_string()),
90 CpuTypeAarch64::Arm1026 => cmd.push("arm1026".to_string()),
91 CpuTypeAarch64::Arm1136 => cmd.push("arm1136".to_string()),
92 CpuTypeAarch64::Arm1136r2 => cmd.push("arm1136-r2".to_string()),
93 CpuTypeAarch64::Arm1176 => cmd.push("arm1176".to_string()),
94 CpuTypeAarch64::Arm11mpcore => cmd.push("arm11mpcore".to_string()),
95 CpuTypeAarch64::Arm926 => cmd.push("arm926".to_string()),
96 CpuTypeAarch64::Arm946 => cmd.push("arm946".to_string()),
97 CpuTypeAarch64::Cortexa15 => cmd.push("cortex-a15".to_string()),
98 CpuTypeAarch64::Cortexa35 => cmd.push("cortex-a35".to_string()),
99 CpuTypeAarch64::Cortexa53 => cmd.push("cortex-a53".to_string()),
100 CpuTypeAarch64::Cortexa55 => cmd.push("cortex-a55".to_string()),
101 CpuTypeAarch64::Cortexa57 => cmd.push("cortex-a57".to_string()),
102 CpuTypeAarch64::Cortexa7 => cmd.push("cortex-a7".to_string()),
103 CpuTypeAarch64::Cortexa710 => cmd.push("cortex-a710".to_string()),
104 CpuTypeAarch64::Cortexa72 => cmd.push("cortex-a72".to_string()),
105 CpuTypeAarch64::Cortexa76 => cmd.push("cortex-a76".to_string()),
106 CpuTypeAarch64::Cortexa8 => cmd.push("cortex-a8".to_string()),
107 CpuTypeAarch64::Cortexa9 => cmd.push("cortex-a9".to_string()),
108 CpuTypeAarch64::Cortexm0 => cmd.push("cortex-m0".to_string()),
109 CpuTypeAarch64::Cortexm3 => cmd.push("cortex-m3".to_string()),
110 CpuTypeAarch64::Cortexm33 => cmd.push("cortex-m33".to_string()),
111 CpuTypeAarch64::Cortexm4 => cmd.push("cortex-m4".to_string()),
112 CpuTypeAarch64::Cortexm55 => cmd.push("cortex-m55".to_string()),
113 CpuTypeAarch64::Cortexm7 => cmd.push("cortex-m7".to_string()),
114 CpuTypeAarch64::Cortexr5 => cmd.push("cortex-r5".to_string()),
115 CpuTypeAarch64::Cortexr52 => cmd.push("cortex-r52".to_string()),
116 CpuTypeAarch64::Cortexr5f => cmd.push("cortex-r5f".to_string()),
117 CpuTypeAarch64::Host => cmd.push("host".to_string()),
118 CpuTypeAarch64::Max => cmd.push("max".to_string()),
119 CpuTypeAarch64::Neoversen1 => cmd.push("neoverse-n1".to_string()),
120 CpuTypeAarch64::Neoversen2 => cmd.push("neoverse-n2".to_string()),
121 CpuTypeAarch64::NeoverseV1 => cmd.push("neoverse-v1".to_string()),
122 CpuTypeAarch64::Pxa270c5 => cmd.push("pxa270-c5".to_string()),
123 CpuTypeAarch64::Sa1100 => cmd.push("sa1100".to_string()),
124 CpuTypeAarch64::Sa1110 => cmd.push("sa1110".to_string()),
125 CpuTypeAarch64::Ti925t => cmd.push("ti925t".to_string()),
126 }
127 cmd
128 }
129}
130
131impl ToArg for CpuTypeAarch64 {
132 fn to_arg(&self) -> &str {
133 match self {
134 CpuTypeAarch64::A64fx => "a64fx",
135 CpuTypeAarch64::Arm1026 => "arm1026",
136 CpuTypeAarch64::Arm1136 => "arm1136",
137 CpuTypeAarch64::Arm1136r2 => "arm1136-r2",
138 CpuTypeAarch64::Arm1176 => "arm1176",
139 CpuTypeAarch64::Arm11mpcore => "arm11mpcore",
140 CpuTypeAarch64::Arm926 => "arm926",
141 CpuTypeAarch64::Arm946 => "arm946",
142 CpuTypeAarch64::Cortexa15 => "cortex-a15",
143 CpuTypeAarch64::Cortexa35 => "cortex-a35",
144 CpuTypeAarch64::Cortexa53 => "cortex-a53",
145 CpuTypeAarch64::Cortexa55 => "cortex-a55",
146 CpuTypeAarch64::Cortexa57 => "cortex-a57",
147 CpuTypeAarch64::Cortexa7 => "cortex-a7",
148 CpuTypeAarch64::Cortexa710 => "cortex-a710",
149 CpuTypeAarch64::Cortexa72 => "cortex-a72",
150 CpuTypeAarch64::Cortexa76 => "cortex-a76",
151 CpuTypeAarch64::Cortexa8 => "cortex-a8",
152 CpuTypeAarch64::Cortexa9 => "cortex-a9",
153 CpuTypeAarch64::Cortexm0 => "cortex-m0",
154 CpuTypeAarch64::Cortexm3 => "cortex-m3",
155 CpuTypeAarch64::Cortexm33 => "cortex-m33",
156 CpuTypeAarch64::Cortexm4 => "cortex-m4",
157 CpuTypeAarch64::Cortexm55 => "cortex-m55",
158 CpuTypeAarch64::Cortexm7 => "cortex-m7",
159 CpuTypeAarch64::Cortexr5 => "cortex-r5",
160 CpuTypeAarch64::Cortexr52 => "cortex-r52",
161 CpuTypeAarch64::Cortexr5f => "cortex-r5f",
162 CpuTypeAarch64::Host => "host",
163 CpuTypeAarch64::Max => "max",
164 CpuTypeAarch64::Neoversen1 => "neoverse-n1",
165 CpuTypeAarch64::Neoversen2 => "neoverse-n2",
166 CpuTypeAarch64::NeoverseV1 => "neoverse-v1",
167 CpuTypeAarch64::Pxa270c5 => "pxa270-c5",
168 CpuTypeAarch64::Sa1100 => "sa1100",
169 CpuTypeAarch64::Sa1110 => "sa1110",
170 CpuTypeAarch64::Ti925t => "ti925t",
171 }
172 }
173}
174
175impl FromStr for CpuTypeAarch64 {
176 type Err = CpuNotFound;
177
178 fn from_str(s: &str) -> Result<Self, Self::Err> {
179 match s {
180 "a64fx" => Ok(CpuTypeAarch64::A64fx),
181 "arm1026" => Ok(CpuTypeAarch64::Arm1026),
182 "arm1136" => Ok(CpuTypeAarch64::Arm1136),
183 "arm1136-r2" => Ok(CpuTypeAarch64::Arm1136r2),
184 "arm1176" => Ok(CpuTypeAarch64::Arm1176),
185 "arm11mpcore" => Ok(CpuTypeAarch64::Arm11mpcore),
186 "arm926" => Ok(CpuTypeAarch64::Arm926),
187 "arm946" => Ok(CpuTypeAarch64::Arm946),
188 "cortex-a15" => Ok(CpuTypeAarch64::Cortexa15),
189 "cortex-a35" => Ok(CpuTypeAarch64::Cortexa35),
190 "cortex-a53" => Ok(CpuTypeAarch64::Cortexa53),
191 "cortex-a55" => Ok(CpuTypeAarch64::Cortexa55),
192 "cortex-a57" => Ok(CpuTypeAarch64::Cortexa57),
193 "cortex-a7" => Ok(CpuTypeAarch64::Cortexa7),
194 "cortex-a710" => Ok(CpuTypeAarch64::Cortexa710),
195 "cortex-a72" => Ok(CpuTypeAarch64::Cortexa72),
196 "cortex-a76" => Ok(CpuTypeAarch64::Cortexa76),
197 "cortex-a8" => Ok(CpuTypeAarch64::Cortexa8),
198 "cortex-a9" => Ok(CpuTypeAarch64::Cortexa9),
199 "cortex-m0" => Ok(CpuTypeAarch64::Cortexm0),
200 "cortex-m3" => Ok(CpuTypeAarch64::Cortexm3),
201 "cortex-m33" => Ok(CpuTypeAarch64::Cortexm33),
202 "cortex-m4" => Ok(CpuTypeAarch64::Cortexm4),
203 "cortex-m55" => Ok(CpuTypeAarch64::Cortexm55),
204 "cortex-m7" => Ok(CpuTypeAarch64::Cortexm7),
205 "cortex-r5" => Ok(CpuTypeAarch64::Cortexr5),
206 "cortex-r52" => Ok(CpuTypeAarch64::Cortexr52),
207 "cortex-r5f" => Ok(CpuTypeAarch64::Cortexr5f),
208 "host" => Ok(CpuTypeAarch64::Host),
209 "max" => Ok(CpuTypeAarch64::Max),
210 "neoverse-n1" => Ok(CpuTypeAarch64::Neoversen1),
211 "neoverse-n2" => Ok(CpuTypeAarch64::Neoversen2),
212 "neoverse-v1" => Ok(CpuTypeAarch64::NeoverseV1),
213 "pxa270-c5" => Ok(CpuTypeAarch64::Pxa270c5),
214 "sa1100" => Ok(CpuTypeAarch64::Sa1100),
215 "sa1110" => Ok(CpuTypeAarch64::Sa1110),
216 "ti925t" => Ok(CpuTypeAarch64::Ti925t),
217 _ => Err(CpuNotFound),
218 }
219 }
220}
221
222#[derive(Debug, Clone, Hash, Ord, PartialOrd, Eq, PartialEq, Arbitrary)]
223pub enum CpuTypeX86_64 {
224 X486,
226 X486V1,
228 Broadwell,
230 BroadwellIBRS,
232 BroadwellnoTSX,
234 BroadwellnoTSXIBRS,
236 BroadwellV1,
238 BroadwellV2,
240 BroadwellV3,
242 BroadwellV4,
244 CascadelakeServer,
246 CascadelakeServernoTSX,
248 CascadelakeServerV1,
250 CascadelakeServerV2,
252 CascadelakeServerV3,
254 CascadelakeServerV4,
256 CascadelakeServerV5,
258 ClearwaterForest,
260 ClearwaterForestV1,
262 Conroe,
264 ConroeV1,
266 Cooperlake,
268 CooperlakeV1,
270 CooperlakeV2,
272 Denverton,
274 DenvertonV1,
276 DenvertonV2,
278 DenvertonV3,
280 Dhyana,
282 DhyanaV1,
284 DhyanaV2,
286 EPYC,
288 EPYCGenoa,
290 EPYCGenoaV1,
292 EPYCGenoaV2,
294 EPYCIBPB,
296 EPYCMilan,
298 EPYCMilanV1,
300 EPYCMilanV2,
302 EPYCMilanV3,
304 EPYCRome,
306 EPYCRomeV1,
308 EPYCRomeV2,
310 EPYCRomeV3,
312 EPYCRomeV4,
314 EPYCRomeV5,
316 EPYCTurin,
318 EPYCTurinV1,
320 EPYCV1,
322 EPYCV2,
324 EPYCV3,
326 EPYCV4,
328 EPYCV5,
330 GraniteRapids,
332 GraniteRapidsV1,
334 GraniteRapidsV2,
336 GraniteRapidsV3,
338 Haswell,
340 HaswellIBRS,
342 HaswellnoTSX,
344 HaswellnoTSXIBRS,
346 HaswellV1,
348 HaswellV2,
350 HaswellV3,
352 HaswellV4,
354 IcelakeServer,
356 IcelakeServernoTSX,
358 IcelakeServerV1,
360 IcelakeServerV2,
362 IcelakeServerV3,
364 IcelakeServerV4,
366 IcelakeServerV5,
368 IcelakeServerV6,
370 IcelakeServerV7,
372 IvyBridge,
374 IvyBridgeIBRS,
376 IvyBridgeV1,
378 IvyBridgeV2,
380 KnightsMill,
382 KnightsMillV1,
384 Nehalem,
386 NehalemIBRS,
388 NehalemV1,
390 NehalemV2,
392 OpteronG1,
394 OpteronG1V1,
396 OpteronG2,
398 OpteronG2V1,
400 OpteronG3,
402 OpteronG3V1,
404 OpteronG4,
406 OpteronG4V1,
408 OpteronG5,
410 OpteronG5V1,
412 Penryn,
414 PenrynV1,
416 SandyBridge,
418 SandyBridgeIBRS,
420 SandyBridgeV1,
422 SandyBridgeV2,
424 SapphireRapids,
426 SapphireRapidsV1,
428 SapphireRapidsV2,
430 SapphireRapidsV3,
432 SapphireRapidsV4,
434 SierraForest,
436 SierraForestV1,
438 SierraForestV2,
440 SierraForestV3,
442 SkylakeClient,
444 SkylakeClientIBRS,
446 SkylakeClientnoTSXIBRS,
448 SkylakeClientV1,
450 SkylakeClientV2,
452 SkylakeClientV3,
454 SkylakeClientV4,
456 SkylakeServer,
458 SkylakeServerIBRS,
460 SkylakeServernoTSXIBRS,
462 SkylakeServerV1,
464 SkylakeServerV2,
466 SkylakeServerV3,
468 SkylakeServerV4,
470 SkylakeServerV5,
472 Snowridge,
474 SnowridgeV1,
476 SnowridgeV2,
478 SnowridgeV3,
480 SnowridgeV4,
482 Westmere,
484 WestmereIBRS,
486 WestmereV1,
488 WestmereV2,
490 YongFeng,
492 YongFengV1,
494 YongFengV2,
496 YongFengV3,
498 Athlon,
500 AthlonV1,
502 Core2duo,
504 Core2duoV1,
506 Coreduo,
508 CoreduoV1,
510 Kvm32,
512 Kvm32V1,
514 Kvm64,
516 Kvm64V1,
518 N270,
520 N270V1,
522 Pentium,
524 PentiumV1,
526 Pentium2,
528 Pentium2V1,
530 Pentium3,
532 Pentium3V1,
534 Phenom,
536 PhenomV1,
538 Qemu32,
540 Qemu32V1,
542 Qemu64,
544 Qemu64V1,
546 Base,
548 Max,
550 Host,
552}
553impl ToCommand for CpuTypeX86_64 {
554 fn to_args(&self) -> Vec<String> {
555 let mut cmd = vec![];
556
557 match self {
558 CpuTypeX86_64::X486 => cmd.push("486".to_string()),
559 CpuTypeX86_64::X486V1 => cmd.push("486-v1".to_string()),
560 CpuTypeX86_64::Broadwell => cmd.push("broadwell".to_string()),
561 CpuTypeX86_64::BroadwellIBRS => cmd.push("broadwell-ibrs".to_string()),
562 CpuTypeX86_64::BroadwellnoTSX => cmd.push("broadwell-notsx".to_string()),
563 CpuTypeX86_64::BroadwellnoTSXIBRS => cmd.push("broadwell-notsx-ibrs".to_string()),
564 CpuTypeX86_64::BroadwellV1 => cmd.push("broadwell-v1".to_string()),
565 CpuTypeX86_64::BroadwellV2 => cmd.push("broadwell-v2".to_string()),
566 CpuTypeX86_64::BroadwellV3 => cmd.push("broadwell-v3".to_string()),
567 CpuTypeX86_64::BroadwellV4 => cmd.push("broadwell-v4".to_string()),
568 CpuTypeX86_64::CascadelakeServer => cmd.push("cascadelake-server".to_string()),
569 CpuTypeX86_64::CascadelakeServernoTSX => cmd.push("cascadelake-server-notsx".to_string()),
570 CpuTypeX86_64::CascadelakeServerV1 => cmd.push("cascadelake-server-v1".to_string()),
571 CpuTypeX86_64::CascadelakeServerV2 => cmd.push("cascadelake-server-v2".to_string()),
572 CpuTypeX86_64::CascadelakeServerV3 => cmd.push("cascadelake-server-v3".to_string()),
573 CpuTypeX86_64::CascadelakeServerV4 => cmd.push("cascadelake-server-v4".to_string()),
574 CpuTypeX86_64::CascadelakeServerV5 => cmd.push("cascadelake-server-v5".to_string()),
575 CpuTypeX86_64::ClearwaterForest => cmd.push("clearwaterforest".to_string()),
576 CpuTypeX86_64::ClearwaterForestV1 => cmd.push("clearwaterforest-v1".to_string()),
577 CpuTypeX86_64::Conroe => cmd.push("conroe".to_string()),
578 CpuTypeX86_64::ConroeV1 => cmd.push("conroe-v1".to_string()),
579 CpuTypeX86_64::Cooperlake => cmd.push("cooperlake".to_string()),
580 CpuTypeX86_64::CooperlakeV1 => cmd.push("cooperlake-v1".to_string()),
581 CpuTypeX86_64::CooperlakeV2 => cmd.push("cooperlake-v2".to_string()),
582 CpuTypeX86_64::Denverton => cmd.push("denverton".to_string()),
583 CpuTypeX86_64::DenvertonV1 => cmd.push("denverton-v1".to_string()),
584 CpuTypeX86_64::DenvertonV2 => cmd.push("denverton-v2".to_string()),
585 CpuTypeX86_64::DenvertonV3 => cmd.push("denverton-v3".to_string()),
586 CpuTypeX86_64::Dhyana => cmd.push("dhyana".to_string()),
587 CpuTypeX86_64::DhyanaV1 => cmd.push("dhyana-v1".to_string()),
588 CpuTypeX86_64::DhyanaV2 => cmd.push("dhyana-v2".to_string()),
589 CpuTypeX86_64::EPYC => cmd.push("epyc".to_string()),
590 CpuTypeX86_64::EPYCGenoa => cmd.push("epyc-genoa".to_string()),
591 CpuTypeX86_64::EPYCGenoaV1 => cmd.push("epyc-genoa-v1".to_string()),
592 CpuTypeX86_64::EPYCGenoaV2 => cmd.push("epyc-genoa-v2".to_string()),
593 CpuTypeX86_64::EPYCIBPB => cmd.push("epyc-ibpb".to_string()),
594 CpuTypeX86_64::EPYCMilan => cmd.push("epyc-milan".to_string()),
595 CpuTypeX86_64::EPYCMilanV1 => cmd.push("epyc-milan-v1".to_string()),
596 CpuTypeX86_64::EPYCMilanV2 => cmd.push("epyc-milan-v2".to_string()),
597 CpuTypeX86_64::EPYCMilanV3 => cmd.push("epyc-milan-v3".to_string()),
598 CpuTypeX86_64::EPYCRome => cmd.push("epyc-rome".to_string()),
599 CpuTypeX86_64::EPYCRomeV1 => cmd.push("epyc-rome-v1".to_string()),
600 CpuTypeX86_64::EPYCRomeV2 => cmd.push("epyc-rome-v2".to_string()),
601 CpuTypeX86_64::EPYCRomeV3 => cmd.push("epyc-rome-v3".to_string()),
602 CpuTypeX86_64::EPYCRomeV4 => cmd.push("epyc-rome-v4".to_string()),
603 CpuTypeX86_64::EPYCRomeV5 => cmd.push("epyc-rome-v5".to_string()),
604 CpuTypeX86_64::EPYCTurin => cmd.push("epyc-turin".to_string()),
605 CpuTypeX86_64::EPYCTurinV1 => cmd.push("epyc-turin-v1".to_string()),
606 CpuTypeX86_64::EPYCV1 => cmd.push("epyc-v1".to_string()),
607 CpuTypeX86_64::EPYCV2 => cmd.push("epyc-v2".to_string()),
608 CpuTypeX86_64::EPYCV3 => cmd.push("epyc-v3".to_string()),
609 CpuTypeX86_64::EPYCV4 => cmd.push("epyc-v4".to_string()),
610 CpuTypeX86_64::EPYCV5 => cmd.push("epyc-v5".to_string()),
611 CpuTypeX86_64::GraniteRapids => cmd.push("graniterapids".to_string()),
612 CpuTypeX86_64::GraniteRapidsV1 => cmd.push("graniterapids-v1".to_string()),
613 CpuTypeX86_64::GraniteRapidsV2 => cmd.push("graniterapids-v2".to_string()),
614 CpuTypeX86_64::GraniteRapidsV3 => cmd.push("graniterapids-v3".to_string()),
615 CpuTypeX86_64::Haswell => cmd.push("haswell".to_string()),
616 CpuTypeX86_64::HaswellIBRS => cmd.push("haswell-ibrs".to_string()),
617 CpuTypeX86_64::HaswellnoTSX => cmd.push("haswell-notsx".to_string()),
618 CpuTypeX86_64::HaswellnoTSXIBRS => cmd.push("haswell-notsx-ibrs".to_string()),
619 CpuTypeX86_64::HaswellV1 => cmd.push("haswell-v1".to_string()),
620 CpuTypeX86_64::HaswellV2 => cmd.push("haswell-v2".to_string()),
621 CpuTypeX86_64::HaswellV3 => cmd.push("haswell-v3".to_string()),
622 CpuTypeX86_64::HaswellV4 => cmd.push("haswell-v4".to_string()),
623 CpuTypeX86_64::IcelakeServer => cmd.push("icelake-server".to_string()),
624 CpuTypeX86_64::IcelakeServernoTSX => cmd.push("icelake-server-notsx".to_string()),
625 CpuTypeX86_64::IcelakeServerV1 => cmd.push("icelake-server-v1".to_string()),
626 CpuTypeX86_64::IcelakeServerV2 => cmd.push("icelake-server-v2".to_string()),
627 CpuTypeX86_64::IcelakeServerV3 => cmd.push("icelake-server-v3".to_string()),
628 CpuTypeX86_64::IcelakeServerV4 => cmd.push("icelake-server-v4".to_string()),
629 CpuTypeX86_64::IcelakeServerV5 => cmd.push("icelake-server-v5".to_string()),
630 CpuTypeX86_64::IcelakeServerV6 => cmd.push("icelake-server-v6".to_string()),
631 CpuTypeX86_64::IcelakeServerV7 => cmd.push("icelake-server-v7".to_string()),
632 CpuTypeX86_64::IvyBridge => cmd.push("ivybridge".to_string()),
633 CpuTypeX86_64::IvyBridgeIBRS => cmd.push("ivybridge-ibrs".to_string()),
634 CpuTypeX86_64::IvyBridgeV1 => cmd.push("ivybridge-v1".to_string()),
635 CpuTypeX86_64::IvyBridgeV2 => cmd.push("ivybridge-v2".to_string()),
636 CpuTypeX86_64::KnightsMill => cmd.push("knightsmill".to_string()),
637 CpuTypeX86_64::KnightsMillV1 => cmd.push("knightsmill-v1".to_string()),
638 CpuTypeX86_64::Nehalem => cmd.push("nehalem".to_string()),
639 CpuTypeX86_64::NehalemIBRS => cmd.push("nehalem-ibrs".to_string()),
640 CpuTypeX86_64::NehalemV1 => cmd.push("nehalem-v1".to_string()),
641 CpuTypeX86_64::NehalemV2 => cmd.push("nehalem-v2".to_string()),
642 CpuTypeX86_64::OpteronG1 => cmd.push("opteron_g1".to_string()),
643 CpuTypeX86_64::OpteronG1V1 => cmd.push("opteron_g1-v1".to_string()),
644 CpuTypeX86_64::OpteronG2 => cmd.push("opteron_g2".to_string()),
645 CpuTypeX86_64::OpteronG2V1 => cmd.push("opteron_g2-v1".to_string()),
646 CpuTypeX86_64::OpteronG3 => cmd.push("opteron_g3".to_string()),
647 CpuTypeX86_64::OpteronG3V1 => cmd.push("opteron_g3-v1".to_string()),
648 CpuTypeX86_64::OpteronG4 => cmd.push("opteron_g4".to_string()),
649 CpuTypeX86_64::OpteronG4V1 => cmd.push("opteron_g4-v1".to_string()),
650 CpuTypeX86_64::OpteronG5 => cmd.push("opteron_g5".to_string()),
651 CpuTypeX86_64::OpteronG5V1 => cmd.push("opteron_g5-v1".to_string()),
652 CpuTypeX86_64::Penryn => cmd.push("penryn".to_string()),
653 CpuTypeX86_64::PenrynV1 => cmd.push("penryn-v1".to_string()),
654 CpuTypeX86_64::SandyBridge => cmd.push("sandybridge".to_string()),
655 CpuTypeX86_64::SandyBridgeIBRS => cmd.push("sandybridge-ibrs".to_string()),
656 CpuTypeX86_64::SandyBridgeV1 => cmd.push("sandybridge-v1".to_string()),
657 CpuTypeX86_64::SandyBridgeV2 => cmd.push("sandybridge-v2".to_string()),
658 CpuTypeX86_64::SapphireRapids => cmd.push("sapphirerapids".to_string()),
659 CpuTypeX86_64::SapphireRapidsV1 => cmd.push("sapphirerapids-v1".to_string()),
660 CpuTypeX86_64::SapphireRapidsV2 => cmd.push("sapphirerapids-v2".to_string()),
661 CpuTypeX86_64::SapphireRapidsV3 => cmd.push("sapphirerapids-v3".to_string()),
662 CpuTypeX86_64::SapphireRapidsV4 => cmd.push("sapphirerapids-v4".to_string()),
663 CpuTypeX86_64::SierraForest => cmd.push("sierraforest".to_string()),
664 CpuTypeX86_64::SierraForestV1 => cmd.push("sierraforest-v1".to_string()),
665 CpuTypeX86_64::SierraForestV2 => cmd.push("sierraforest-v2".to_string()),
666 CpuTypeX86_64::SierraForestV3 => cmd.push("sierraforest-v3".to_string()),
667 CpuTypeX86_64::SkylakeClient => cmd.push("skylake-client".to_string()),
668 CpuTypeX86_64::SkylakeClientIBRS => cmd.push("skylake-client-ibrs".to_string()),
669 CpuTypeX86_64::SkylakeClientnoTSXIBRS => cmd.push("skylake-client-notsx-ibrs".to_string()),
670 CpuTypeX86_64::SkylakeClientV1 => cmd.push("skylake-client-v1".to_string()),
671 CpuTypeX86_64::SkylakeClientV2 => cmd.push("skylake-client-v2".to_string()),
672 CpuTypeX86_64::SkylakeClientV3 => cmd.push("skylake-client-v3".to_string()),
673 CpuTypeX86_64::SkylakeClientV4 => cmd.push("skylake-client-v4".to_string()),
674 CpuTypeX86_64::SkylakeServer => cmd.push("skylake-server".to_string()),
675 CpuTypeX86_64::SkylakeServerIBRS => cmd.push("skylake-server-ibrs".to_string()),
676 CpuTypeX86_64::SkylakeServernoTSXIBRS => cmd.push("skylake-server-notsx-ibrs".to_string()),
677 CpuTypeX86_64::SkylakeServerV1 => cmd.push("skylake-server-v1".to_string()),
678 CpuTypeX86_64::SkylakeServerV2 => cmd.push("skylake-server-v2".to_string()),
679 CpuTypeX86_64::SkylakeServerV3 => cmd.push("skylake-server-v3".to_string()),
680 CpuTypeX86_64::SkylakeServerV4 => cmd.push("skylake-server-v4".to_string()),
681 CpuTypeX86_64::SkylakeServerV5 => cmd.push("skylake-server-v5".to_string()),
682 CpuTypeX86_64::Snowridge => cmd.push("snowridge".to_string()),
683 CpuTypeX86_64::SnowridgeV1 => cmd.push("snowridge-v1".to_string()),
684 CpuTypeX86_64::SnowridgeV2 => cmd.push("snowridge-v2".to_string()),
685 CpuTypeX86_64::SnowridgeV3 => cmd.push("snowridge-v3".to_string()),
686 CpuTypeX86_64::SnowridgeV4 => cmd.push("snowridge-v4".to_string()),
687 CpuTypeX86_64::Westmere => cmd.push("westmere".to_string()),
688 CpuTypeX86_64::WestmereIBRS => cmd.push("westmere-ibrs".to_string()),
689 CpuTypeX86_64::WestmereV1 => cmd.push("westmere-v1".to_string()),
690 CpuTypeX86_64::WestmereV2 => cmd.push("westmere-v2".to_string()),
691 CpuTypeX86_64::YongFeng => cmd.push("yongfeng".to_string()),
692 CpuTypeX86_64::YongFengV1 => cmd.push("yongfeng-v1".to_string()),
693 CpuTypeX86_64::YongFengV2 => cmd.push("yongfeng-v2".to_string()),
694 CpuTypeX86_64::YongFengV3 => cmd.push("yongfeng-v3".to_string()),
695 CpuTypeX86_64::Athlon => cmd.push("athlon".to_string()),
696 CpuTypeX86_64::AthlonV1 => cmd.push("athlon-v1".to_string()),
697 CpuTypeX86_64::Core2duo => cmd.push("core2duo".to_string()),
698 CpuTypeX86_64::Core2duoV1 => cmd.push("core2duo-v1".to_string()),
699 CpuTypeX86_64::Coreduo => cmd.push("coreduo".to_string()),
700 CpuTypeX86_64::CoreduoV1 => cmd.push("coreduo-v1".to_string()),
701 CpuTypeX86_64::Kvm32 => cmd.push("kvm32".to_string()),
702 CpuTypeX86_64::Kvm32V1 => cmd.push("kvm32-v1".to_string()),
703 CpuTypeX86_64::Kvm64 => cmd.push("kvm64".to_string()),
704 CpuTypeX86_64::Kvm64V1 => cmd.push("kvm64-v1".to_string()),
705 CpuTypeX86_64::N270 => cmd.push("n270".to_string()),
706 CpuTypeX86_64::N270V1 => cmd.push("n270-v1".to_string()),
707 CpuTypeX86_64::Pentium => cmd.push("pentium".to_string()),
708 CpuTypeX86_64::PentiumV1 => cmd.push("pentium-v1".to_string()),
709 CpuTypeX86_64::Pentium2 => cmd.push("pentium2".to_string()),
710 CpuTypeX86_64::Pentium2V1 => cmd.push("pentium2-v1".to_string()),
711 CpuTypeX86_64::Pentium3 => cmd.push("pentium3".to_string()),
712 CpuTypeX86_64::Pentium3V1 => cmd.push("pentium3-v1".to_string()),
713 CpuTypeX86_64::Phenom => cmd.push("phenom".to_string()),
714 CpuTypeX86_64::PhenomV1 => cmd.push("phenom-v1".to_string()),
715 CpuTypeX86_64::Qemu32 => cmd.push("qemu32".to_string()),
716 CpuTypeX86_64::Qemu32V1 => cmd.push("qemu32-v1".to_string()),
717 CpuTypeX86_64::Qemu64 => cmd.push("qemu64".to_string()),
718 CpuTypeX86_64::Qemu64V1 => cmd.push("qemu64-v1".to_string()),
719 CpuTypeX86_64::Base => cmd.push("base".to_string()),
720 CpuTypeX86_64::Max => cmd.push("max".to_string()),
721 CpuTypeX86_64::Host => cmd.push("host".to_string()),
722 }
723 cmd
724 }
725}
726
727impl ToArg for CpuTypeX86_64 {
728 fn to_arg(&self) -> &str {
729 match self {
730 CpuTypeX86_64::X486 => "486",
731 CpuTypeX86_64::X486V1 => "486-v1",
732 CpuTypeX86_64::Broadwell => "Broadwell",
733 CpuTypeX86_64::BroadwellIBRS => "Broadwell-IBRS",
734 CpuTypeX86_64::BroadwellnoTSX => "Broadwell-noTSX",
735 CpuTypeX86_64::BroadwellnoTSXIBRS => "Broadwell-noTSX-IBRS",
736 CpuTypeX86_64::BroadwellV1 => "Broadwell-v1",
737 CpuTypeX86_64::BroadwellV2 => "Broadwell-v2",
738 CpuTypeX86_64::BroadwellV3 => "Broadwell-v3",
739 CpuTypeX86_64::BroadwellV4 => "Broadwell-v4",
740 CpuTypeX86_64::CascadelakeServer => "Cascadelake-Server",
741 CpuTypeX86_64::CascadelakeServernoTSX => "Cascadelake-Server-noTSX",
742 CpuTypeX86_64::CascadelakeServerV1 => "Cascadelake-Server-v1",
743 CpuTypeX86_64::CascadelakeServerV2 => "Cascadelake-Server-v2",
744 CpuTypeX86_64::CascadelakeServerV3 => "Cascadelake-Server-v3",
745 CpuTypeX86_64::CascadelakeServerV4 => "Cascadelake-Server-v4",
746 CpuTypeX86_64::CascadelakeServerV5 => "Cascadelake-Server-v5",
747 CpuTypeX86_64::ClearwaterForest => "ClearwaterForest",
748 CpuTypeX86_64::ClearwaterForestV1 => "ClearwaterForest-v1",
749 CpuTypeX86_64::Conroe => "Conroe",
750 CpuTypeX86_64::ConroeV1 => "Conroe-v1",
751 CpuTypeX86_64::Cooperlake => "Cooperlake",
752 CpuTypeX86_64::CooperlakeV1 => "Cooperlake-v1",
753 CpuTypeX86_64::CooperlakeV2 => "Cooperlake-v2",
754 CpuTypeX86_64::Denverton => "Denverton",
755 CpuTypeX86_64::DenvertonV1 => "Denverton-v1",
756 CpuTypeX86_64::DenvertonV2 => "Denverton-v2",
757 CpuTypeX86_64::DenvertonV3 => "Denverton-v3",
758 CpuTypeX86_64::Dhyana => "Dhyana",
759 CpuTypeX86_64::DhyanaV1 => "Dhyana-v1",
760 CpuTypeX86_64::DhyanaV2 => "Dhyana-v2",
761 CpuTypeX86_64::EPYC => "EPYC",
762 CpuTypeX86_64::EPYCGenoa => "EPYC-Genoa",
763 CpuTypeX86_64::EPYCGenoaV1 => "EPYC-Genoa-v1",
764 CpuTypeX86_64::EPYCGenoaV2 => "EPYC-Genoa-v2",
765 CpuTypeX86_64::EPYCIBPB => "EPYC-IBPB",
766 CpuTypeX86_64::EPYCMilan => "EPYC-Milan",
767 CpuTypeX86_64::EPYCMilanV1 => "EPYC-Milan-v1",
768 CpuTypeX86_64::EPYCMilanV2 => "EPYC-Milan-v2",
769 CpuTypeX86_64::EPYCMilanV3 => "EPYC-Milan-v3",
770 CpuTypeX86_64::EPYCRome => "EPYC-Rome",
771 CpuTypeX86_64::EPYCRomeV1 => "EPYC-Rome-v1",
772 CpuTypeX86_64::EPYCRomeV2 => "EPYC-Rome-v2",
773 CpuTypeX86_64::EPYCRomeV3 => "EPYC-Rome-v3",
774 CpuTypeX86_64::EPYCRomeV4 => "EPYC-Rome-v4",
775 CpuTypeX86_64::EPYCRomeV5 => "EPYC-Rome-v5",
776 CpuTypeX86_64::EPYCTurin => "EPYC-Turin",
777 CpuTypeX86_64::EPYCTurinV1 => "EPYC-Turin-v1",
778 CpuTypeX86_64::EPYCV1 => "EPYC-v1",
779 CpuTypeX86_64::EPYCV2 => "EPYC-v2",
780 CpuTypeX86_64::EPYCV3 => "EPYC-v3",
781 CpuTypeX86_64::EPYCV4 => "EPYC-v4",
782 CpuTypeX86_64::EPYCV5 => "EPYC-v5",
783 CpuTypeX86_64::GraniteRapids => "GraniteRapids",
784 CpuTypeX86_64::GraniteRapidsV1 => "GraniteRapids-v1",
785 CpuTypeX86_64::GraniteRapidsV2 => "GraniteRapids-v2",
786 CpuTypeX86_64::GraniteRapidsV3 => "GraniteRapids-v3",
787 CpuTypeX86_64::Haswell => "Haswell",
788 CpuTypeX86_64::HaswellIBRS => "Haswell-IBRS",
789 CpuTypeX86_64::HaswellnoTSX => "Haswell-noTSX",
790 CpuTypeX86_64::HaswellnoTSXIBRS => "Haswell-noTSX-IBRS",
791 CpuTypeX86_64::HaswellV1 => "Haswell-v1",
792 CpuTypeX86_64::HaswellV2 => "Haswell-v2",
793 CpuTypeX86_64::HaswellV3 => "Haswell-v3",
794 CpuTypeX86_64::HaswellV4 => "Haswell-v4",
795 CpuTypeX86_64::IcelakeServer => "Icelake-Server",
796 CpuTypeX86_64::IcelakeServernoTSX => "Icelake-Server-noTSX",
797 CpuTypeX86_64::IcelakeServerV1 => "Icelake-Server-v1",
798 CpuTypeX86_64::IcelakeServerV2 => "Icelake-Server-v2",
799 CpuTypeX86_64::IcelakeServerV3 => "Icelake-Server-v3",
800 CpuTypeX86_64::IcelakeServerV4 => "Icelake-Server-v4",
801 CpuTypeX86_64::IcelakeServerV5 => "Icelake-Server-v5",
802 CpuTypeX86_64::IcelakeServerV6 => "Icelake-Server-v6",
803 CpuTypeX86_64::IcelakeServerV7 => "Icelake-Server-v7",
804 CpuTypeX86_64::IvyBridge => "IvyBridge",
805 CpuTypeX86_64::IvyBridgeIBRS => "IvyBridge-IBRS",
806 CpuTypeX86_64::IvyBridgeV1 => "IvyBridge-v1",
807 CpuTypeX86_64::IvyBridgeV2 => "IvyBridge-v2",
808 CpuTypeX86_64::KnightsMill => "KnightsMill",
809 CpuTypeX86_64::KnightsMillV1 => "KnightsMill-v1",
810 CpuTypeX86_64::Nehalem => "Nehalem",
811 CpuTypeX86_64::NehalemIBRS => "Nehalem-IBRS",
812 CpuTypeX86_64::NehalemV1 => "Nehalem-v1",
813 CpuTypeX86_64::NehalemV2 => "Nehalem-v2",
814 CpuTypeX86_64::OpteronG1 => "Opteron_G1",
815 CpuTypeX86_64::OpteronG1V1 => "Opteron_G1-v1",
816 CpuTypeX86_64::OpteronG2 => "Opteron_G2",
817 CpuTypeX86_64::OpteronG2V1 => "Opteron_G2-v1",
818 CpuTypeX86_64::OpteronG3 => "Opteron_G3",
819 CpuTypeX86_64::OpteronG3V1 => "Opteron_G3-v1",
820 CpuTypeX86_64::OpteronG4 => "Opteron_G4",
821 CpuTypeX86_64::OpteronG4V1 => "Opteron_G4-v1",
822 CpuTypeX86_64::OpteronG5 => "Opteron_G5",
823 CpuTypeX86_64::OpteronG5V1 => "Opteron_G5-v1",
824 CpuTypeX86_64::Penryn => "Penryn",
825 CpuTypeX86_64::PenrynV1 => "Penryn-v1",
826 CpuTypeX86_64::SandyBridge => "SandyBridge",
827 CpuTypeX86_64::SandyBridgeIBRS => "SandyBridge-IBRS",
828 CpuTypeX86_64::SandyBridgeV1 => "SandyBridge-v1",
829 CpuTypeX86_64::SandyBridgeV2 => "SandyBridge-v2",
830 CpuTypeX86_64::SapphireRapids => "SapphireRapids",
831 CpuTypeX86_64::SapphireRapidsV1 => "SapphireRapids-v1",
832 CpuTypeX86_64::SapphireRapidsV2 => "SapphireRapids-v2",
833 CpuTypeX86_64::SapphireRapidsV3 => "SapphireRapids-v3",
834 CpuTypeX86_64::SapphireRapidsV4 => "SapphireRapids-v4",
835 CpuTypeX86_64::SierraForest => "SierraForest",
836 CpuTypeX86_64::SierraForestV1 => "SierraForest-v1",
837 CpuTypeX86_64::SierraForestV2 => "SierraForest-v2",
838 CpuTypeX86_64::SierraForestV3 => "SierraForest-v3",
839 CpuTypeX86_64::SkylakeClient => "Skylake-Client",
840 CpuTypeX86_64::SkylakeClientIBRS => "Skylake-Client-IBRS",
841 CpuTypeX86_64::SkylakeClientnoTSXIBRS => "Skylake-Client-noTSX-IBRS",
842 CpuTypeX86_64::SkylakeClientV1 => "Skylake-Client-v1",
843 CpuTypeX86_64::SkylakeClientV2 => "Skylake-Client-v2",
844 CpuTypeX86_64::SkylakeClientV3 => "Skylake-Client-v3",
845 CpuTypeX86_64::SkylakeClientV4 => "Skylake-Client-v4",
846 CpuTypeX86_64::SkylakeServer => "Skylake-Server",
847 CpuTypeX86_64::SkylakeServerIBRS => "Skylake-Server-IBRS",
848 CpuTypeX86_64::SkylakeServernoTSXIBRS => "Skylake-Server-noTSX-IBRS",
849 CpuTypeX86_64::SkylakeServerV1 => "Skylake-Server-v1",
850 CpuTypeX86_64::SkylakeServerV2 => "Skylake-Server-v2",
851 CpuTypeX86_64::SkylakeServerV3 => "Skylake-Server-v3",
852 CpuTypeX86_64::SkylakeServerV4 => "Skylake-Server-v4",
853 CpuTypeX86_64::SkylakeServerV5 => "Skylake-Server-v5",
854 CpuTypeX86_64::Snowridge => "Snowridge",
855 CpuTypeX86_64::SnowridgeV1 => "Snowridge-v1",
856 CpuTypeX86_64::SnowridgeV2 => "Snowridge-v2",
857 CpuTypeX86_64::SnowridgeV3 => "Snowridge-v3",
858 CpuTypeX86_64::SnowridgeV4 => "Snowridge-v4",
859 CpuTypeX86_64::Westmere => "Westmere",
860 CpuTypeX86_64::WestmereIBRS => "Westmere-IBRS",
861 CpuTypeX86_64::WestmereV1 => "Westmere-v1",
862 CpuTypeX86_64::WestmereV2 => "Westmere-v2",
863 CpuTypeX86_64::YongFeng => "YongFeng",
864 CpuTypeX86_64::YongFengV1 => "YongFeng-v1",
865 CpuTypeX86_64::YongFengV2 => "YongFeng-v2",
866 CpuTypeX86_64::YongFengV3 => "YongFeng-v3",
867 CpuTypeX86_64::Athlon => "athlon",
868 CpuTypeX86_64::AthlonV1 => "athlon-v1",
869 CpuTypeX86_64::Core2duo => "core2duo",
870 CpuTypeX86_64::Core2duoV1 => "core2duo-v1",
871 CpuTypeX86_64::Coreduo => "coreduo",
872 CpuTypeX86_64::CoreduoV1 => "coreduo-v1",
873 CpuTypeX86_64::Kvm32 => "kvm32",
874 CpuTypeX86_64::Kvm32V1 => "kvm32-v1",
875 CpuTypeX86_64::Kvm64 => "kvm64",
876 CpuTypeX86_64::Kvm64V1 => "kvm64-v1",
877 CpuTypeX86_64::N270 => "n270",
878 CpuTypeX86_64::N270V1 => "n270-v1",
879 CpuTypeX86_64::Pentium => "pentium",
880 CpuTypeX86_64::PentiumV1 => "pentium-v1",
881 CpuTypeX86_64::Pentium2 => "pentium2",
882 CpuTypeX86_64::Pentium2V1 => "pentium2-v1",
883 CpuTypeX86_64::Pentium3 => "pentium3",
884 CpuTypeX86_64::Pentium3V1 => "pentium3-v1",
885 CpuTypeX86_64::Phenom => "phenom",
886 CpuTypeX86_64::PhenomV1 => "phenom-v1",
887 CpuTypeX86_64::Qemu32 => "qemu32",
888 CpuTypeX86_64::Qemu32V1 => "qemu32-v1",
889 CpuTypeX86_64::Qemu64 => "qemu64",
890 CpuTypeX86_64::Qemu64V1 => "qemu64-v1",
891 CpuTypeX86_64::Base => "base",
892 CpuTypeX86_64::Max => "max",
893 CpuTypeX86_64::Host => "host",
894 }
895 }
896}
897
898impl FromStr for CpuTypeX86_64 {
899 type Err = CpuNotFound;
900
901 fn from_str(s: &str) -> Result<Self, Self::Err> {
902 match s {
903 "486" => Ok(CpuTypeX86_64::X486),
904 "486-v1" => Ok(CpuTypeX86_64::X486V1),
905 "Broadwell" => Ok(CpuTypeX86_64::Broadwell),
906 "Broadwell-IBRS" => Ok(CpuTypeX86_64::BroadwellIBRS),
907 "Broadwell-noTSX" => Ok(CpuTypeX86_64::BroadwellnoTSX),
908 "Broadwell-noTSX-IBRS" => Ok(CpuTypeX86_64::BroadwellnoTSXIBRS),
909 "Broadwell-v1" => Ok(CpuTypeX86_64::BroadwellV1),
910 "Broadwell-v2" => Ok(CpuTypeX86_64::BroadwellV2),
911 "Broadwell-v3" => Ok(CpuTypeX86_64::BroadwellV3),
912 "Broadwell-v4" => Ok(CpuTypeX86_64::BroadwellV4),
913 "Cascadelake-Server" => Ok(CpuTypeX86_64::CascadelakeServer),
914 "Cascadelake-Server-noTSX" => Ok(CpuTypeX86_64::CascadelakeServernoTSX),
915 "Cascadelake-Server-v1" => Ok(CpuTypeX86_64::CascadelakeServerV1),
916 "Cascadelake-Server-v2" => Ok(CpuTypeX86_64::CascadelakeServerV2),
917 "Cascadelake-Server-v3" => Ok(CpuTypeX86_64::CascadelakeServerV3),
918 "Cascadelake-Server-v4" => Ok(CpuTypeX86_64::CascadelakeServerV4),
919 "Cascadelake-Server-v5" => Ok(CpuTypeX86_64::CascadelakeServerV5),
920 "ClearwaterForest" => Ok(CpuTypeX86_64::ClearwaterForest),
921 "ClearwaterForest-v1" => Ok(CpuTypeX86_64::ClearwaterForestV1),
922 "Conroe" => Ok(CpuTypeX86_64::Conroe),
923 "Conroe-v1" => Ok(CpuTypeX86_64::ConroeV1),
924 "Cooperlake" => Ok(CpuTypeX86_64::Cooperlake),
925 "Cooperlake-v1" => Ok(CpuTypeX86_64::CooperlakeV1),
926 "Cooperlake-v2" => Ok(CpuTypeX86_64::CooperlakeV2),
927 "Denverton" => Ok(CpuTypeX86_64::Denverton),
928 "Denverton-v1" => Ok(CpuTypeX86_64::DenvertonV1),
929 "Denverton-v2" => Ok(CpuTypeX86_64::DenvertonV2),
930 "Denverton-v3" => Ok(CpuTypeX86_64::DenvertonV3),
931 "Dhyana" => Ok(CpuTypeX86_64::Dhyana),
932 "Dhyana-v1" => Ok(CpuTypeX86_64::DhyanaV1),
933 "Dhyana-v2" => Ok(CpuTypeX86_64::DhyanaV2),
934 "EPYC" => Ok(CpuTypeX86_64::EPYC),
935 "EPYC-Genoa" => Ok(CpuTypeX86_64::EPYCGenoa),
936 "EPYC-Genoa-v1" => Ok(CpuTypeX86_64::EPYCGenoaV1),
937 "EPYC-Genoa-v2" => Ok(CpuTypeX86_64::EPYCGenoaV2),
938 "EPYC-IBPB" => Ok(CpuTypeX86_64::EPYCIBPB),
939 "EPYC-Milan" => Ok(CpuTypeX86_64::EPYCMilan),
940 "EPYC-Milan-v1" => Ok(CpuTypeX86_64::EPYCMilanV1),
941 "EPYC-Milan-v2" => Ok(CpuTypeX86_64::EPYCMilanV2),
942 "EPYC-Milan-v3" => Ok(CpuTypeX86_64::EPYCMilanV3),
943 "EPYC-Rome" => Ok(CpuTypeX86_64::EPYCRome),
944 "EPYC-Rome-v1" => Ok(CpuTypeX86_64::EPYCRomeV1),
945 "EPYC-Rome-v2" => Ok(CpuTypeX86_64::EPYCRomeV2),
946 "EPYC-Rome-v3" => Ok(CpuTypeX86_64::EPYCRomeV3),
947 "EPYC-Rome-v4" => Ok(CpuTypeX86_64::EPYCRomeV4),
948 "EPYC-Rome-v5" => Ok(CpuTypeX86_64::EPYCRomeV5),
949 "EPYC-Turin" => Ok(CpuTypeX86_64::EPYCTurin),
950 "EPYC-Turin-v1" => Ok(CpuTypeX86_64::EPYCTurinV1),
951 "EPYC-v1" => Ok(CpuTypeX86_64::EPYCV1),
952 "EPYC-v2" => Ok(CpuTypeX86_64::EPYCV2),
953 "EPYC-v3" => Ok(CpuTypeX86_64::EPYCV3),
954 "EPYC-v4" => Ok(CpuTypeX86_64::EPYCV4),
955 "EPYC-v5" => Ok(CpuTypeX86_64::EPYCV5),
956 "GraniteRapids" => Ok(CpuTypeX86_64::GraniteRapids),
957 "GraniteRapids-v1" => Ok(CpuTypeX86_64::GraniteRapidsV1),
958 "GraniteRapids-v2" => Ok(CpuTypeX86_64::GraniteRapidsV2),
959 "GraniteRapids-v3" => Ok(CpuTypeX86_64::GraniteRapidsV3),
960 "Haswell" => Ok(CpuTypeX86_64::Haswell),
961 "Haswell-IBRS" => Ok(CpuTypeX86_64::HaswellIBRS),
962 "Haswell-noTSX" => Ok(CpuTypeX86_64::HaswellnoTSX),
963 "Haswell-noTSX-IBRS" => Ok(CpuTypeX86_64::HaswellnoTSXIBRS),
964 "Haswell-v1" => Ok(CpuTypeX86_64::HaswellV1),
965 "Haswell-v2" => Ok(CpuTypeX86_64::HaswellV2),
966 "Haswell-v3" => Ok(CpuTypeX86_64::HaswellV3),
967 "Haswell-v4" => Ok(CpuTypeX86_64::HaswellV4),
968 "Icelake-Server" => Ok(CpuTypeX86_64::IcelakeServer),
969 "Icelake-Server-noTSX" => Ok(CpuTypeX86_64::IcelakeServernoTSX),
970 "Icelake-Server-v1" => Ok(CpuTypeX86_64::IcelakeServerV1),
971 "Icelake-Server-v2" => Ok(CpuTypeX86_64::IcelakeServerV2),
972 "Icelake-Server-v3" => Ok(CpuTypeX86_64::IcelakeServerV3),
973 "Icelake-Server-v4" => Ok(CpuTypeX86_64::IcelakeServerV4),
974 "Icelake-Server-v5" => Ok(CpuTypeX86_64::IcelakeServerV5),
975 "Icelake-Server-v6" => Ok(CpuTypeX86_64::IcelakeServerV6),
976 "Icelake-Server-v7" => Ok(CpuTypeX86_64::IcelakeServerV7),
977 "IvyBridge" => Ok(CpuTypeX86_64::IvyBridge),
978 "IvyBridge-IBRS" => Ok(CpuTypeX86_64::IvyBridgeIBRS),
979 "IvyBridge-v1" => Ok(CpuTypeX86_64::IvyBridgeV1),
980 "IvyBridge-v2" => Ok(CpuTypeX86_64::IvyBridgeV2),
981 "KnightsMill" => Ok(CpuTypeX86_64::KnightsMill),
982 "KnightsMill-v1" => Ok(CpuTypeX86_64::KnightsMillV1),
983 "Nehalem" => Ok(CpuTypeX86_64::Nehalem),
984 "Nehalem-IBRS" => Ok(CpuTypeX86_64::NehalemIBRS),
985 "Nehalem-v1" => Ok(CpuTypeX86_64::NehalemV1),
986 "Nehalem-v2" => Ok(CpuTypeX86_64::NehalemV2),
987 "Opteron_G1" => Ok(CpuTypeX86_64::OpteronG1),
988 "Opteron_G1-v1" => Ok(CpuTypeX86_64::OpteronG1V1),
989 "Opteron_G2" => Ok(CpuTypeX86_64::OpteronG2),
990 "Opteron_G2-v1" => Ok(CpuTypeX86_64::OpteronG2V1),
991 "Opteron_G3" => Ok(CpuTypeX86_64::OpteronG3),
992 "Opteron_G3-v1" => Ok(CpuTypeX86_64::OpteronG3V1),
993 "Opteron_G4" => Ok(CpuTypeX86_64::OpteronG4),
994 "Opteron_G4-v1" => Ok(CpuTypeX86_64::OpteronG4V1),
995 "Opteron_G5" => Ok(CpuTypeX86_64::OpteronG5),
996 "Opteron_G5-v1" => Ok(CpuTypeX86_64::OpteronG5V1),
997 "Penryn" => Ok(CpuTypeX86_64::Penryn),
998 "Penryn-v1" => Ok(CpuTypeX86_64::PenrynV1),
999 "SandyBridge" => Ok(CpuTypeX86_64::SandyBridge),
1000 "SandyBridge-IBRS" => Ok(CpuTypeX86_64::SandyBridgeIBRS),
1001 "SandyBridge-v1" => Ok(CpuTypeX86_64::SandyBridgeV1),
1002 "SandyBridge-v2" => Ok(CpuTypeX86_64::SandyBridgeV2),
1003 "SapphireRapids" => Ok(CpuTypeX86_64::SapphireRapids),
1004 "SapphireRapids-v1" => Ok(CpuTypeX86_64::SapphireRapidsV1),
1005 "SapphireRapids-v2" => Ok(CpuTypeX86_64::SapphireRapidsV2),
1006 "SapphireRapids-v3" => Ok(CpuTypeX86_64::SapphireRapidsV3),
1007 "SapphireRapids-v4" => Ok(CpuTypeX86_64::SapphireRapidsV4),
1008 "SierraForest" => Ok(CpuTypeX86_64::SierraForest),
1009 "SierraForest-v1" => Ok(CpuTypeX86_64::SierraForestV1),
1010 "SierraForest-v2" => Ok(CpuTypeX86_64::SierraForestV2),
1011 "SierraForest-v3" => Ok(CpuTypeX86_64::SierraForestV3),
1012 "Skylake-Client" => Ok(CpuTypeX86_64::SkylakeClient),
1013 "Skylake-Client-IBRS" => Ok(CpuTypeX86_64::SkylakeClientIBRS),
1014 "Skylake-Client-noTSX-IBRS" => Ok(CpuTypeX86_64::SkylakeClientnoTSXIBRS),
1015 "Skylake-Client-v1" => Ok(CpuTypeX86_64::SkylakeClientV1),
1016 "Skylake-Client-v2" => Ok(CpuTypeX86_64::SkylakeClientV2),
1017 "Skylake-Client-v3" => Ok(CpuTypeX86_64::SkylakeClientV3),
1018 "Skylake-Client-v4" => Ok(CpuTypeX86_64::SkylakeClientV4),
1019 "Skylake-Server" => Ok(CpuTypeX86_64::SkylakeServer),
1020 "Skylake-Server-IBRS" => Ok(CpuTypeX86_64::SkylakeServerIBRS),
1021 "Skylake-Server-noTSX-IBRS" => Ok(CpuTypeX86_64::SkylakeServernoTSXIBRS),
1022 "Skylake-Server-v1" => Ok(CpuTypeX86_64::SkylakeServerV1),
1023 "Skylake-Server-v2" => Ok(CpuTypeX86_64::SkylakeServerV2),
1024 "Skylake-Server-v3" => Ok(CpuTypeX86_64::SkylakeServerV3),
1025 "Skylake-Server-v4" => Ok(CpuTypeX86_64::SkylakeServerV4),
1026 "Skylake-Server-v5" => Ok(CpuTypeX86_64::SkylakeServerV5),
1027 "Snowridge" => Ok(CpuTypeX86_64::Snowridge),
1028 "Snowridge-v1" => Ok(CpuTypeX86_64::SnowridgeV1),
1029 "Snowridge-v2" => Ok(CpuTypeX86_64::SnowridgeV2),
1030 "Snowridge-v3" => Ok(CpuTypeX86_64::SnowridgeV3),
1031 "Snowridge-v4" => Ok(CpuTypeX86_64::SnowridgeV4),
1032 "Westmere" => Ok(CpuTypeX86_64::Westmere),
1033 "Westmere-IBRS" => Ok(CpuTypeX86_64::WestmereIBRS),
1034 "Westmere-v1" => Ok(CpuTypeX86_64::WestmereV1),
1035 "Westmere-v2" => Ok(CpuTypeX86_64::WestmereV2),
1036 "YongFeng" => Ok(CpuTypeX86_64::YongFeng),
1037 "YongFeng-v1" => Ok(CpuTypeX86_64::YongFengV1),
1038 "YongFeng-v2" => Ok(CpuTypeX86_64::YongFengV2),
1039 "YongFeng-v3" => Ok(CpuTypeX86_64::YongFengV3),
1040 "athlon" => Ok(CpuTypeX86_64::Athlon),
1041 "athlon-v1" => Ok(CpuTypeX86_64::AthlonV1),
1042 "core2duo" => Ok(CpuTypeX86_64::Core2duo),
1043 "core2duo-v1" => Ok(CpuTypeX86_64::Core2duoV1),
1044 "coreduo" => Ok(CpuTypeX86_64::Coreduo),
1045 "coreduo-v1" => Ok(CpuTypeX86_64::CoreduoV1),
1046 "kvm32" => Ok(CpuTypeX86_64::Kvm32),
1047 "kvm32-v1" => Ok(CpuTypeX86_64::Kvm32V1),
1048 "kvm64" => Ok(CpuTypeX86_64::Kvm64),
1049 "kvm64-v1" => Ok(CpuTypeX86_64::Kvm64V1),
1050 "n270" => Ok(CpuTypeX86_64::N270),
1051 "n270-v1" => Ok(CpuTypeX86_64::N270V1),
1052 "pentium" => Ok(CpuTypeX86_64::Pentium),
1053 "pentium-v1" => Ok(CpuTypeX86_64::PentiumV1),
1054 "pentium2" => Ok(CpuTypeX86_64::Pentium2),
1055 "pentium2-v1" => Ok(CpuTypeX86_64::Pentium2V1),
1056 "pentium3" => Ok(CpuTypeX86_64::Pentium3),
1057 "pentium3-v1" => Ok(CpuTypeX86_64::Pentium3V1),
1058 "phenom" => Ok(CpuTypeX86_64::Phenom),
1059 "phenom-v1" => Ok(CpuTypeX86_64::PhenomV1),
1060 "qemu32" => Ok(CpuTypeX86_64::Qemu32),
1061 "qemu32-v1" => Ok(CpuTypeX86_64::Qemu32V1),
1062 "qemu64" => Ok(CpuTypeX86_64::Qemu64),
1063 "qemu64-v1" => Ok(CpuTypeX86_64::Qemu64V1),
1064 "base" => Ok(CpuTypeX86_64::Base),
1065 "max" => Ok(CpuTypeX86_64::Max),
1066 "host" => Ok(CpuTypeX86_64::Host),
1067 _ => Err(CpuNotFound),
1068 }
1069 }
1070}