1use crate::to_command::{ToArg, ToCommand};
2use std::str::FromStr;
3
4#[derive(Debug, Clone, Hash, Ord, PartialOrd, Eq, PartialEq)]
5pub struct CpuNotFound;
6
7#[derive(Debug, Clone, Hash, Ord, PartialOrd, Eq, PartialEq)]
8pub enum CpuTypeAarch64 {
9 A64fx,
11 Arm1026,
13 Arm1136,
15 Arm1136r2,
17 Arm1176,
19 Arm11mpcore,
21 Arm926,
23 Arm946,
25 Cortexa15,
27 Cortexa35,
29 Cortexa53,
31 Cortexa55,
33 Cortexa57,
35 Cortexa7,
37 Cortexa710,
39 Cortexa72,
41 Cortexa76,
43 Cortexa8,
45 Cortexa9,
47 Cortexm0,
49 Cortexm3,
51 Cortexm33,
53 Cortexm4,
55 Cortexm55,
57 Cortexm7,
59 Cortexr5,
61 Cortexr52,
63 Cortexr5f,
65 Host,
67 Max,
69 Neoversen1,
71 Neoversen2,
73 NeoverseV1,
75 Pxa250,
77 Pxa255,
79 Pxa260,
81 Pxa261,
83 Pxa262,
85 Pxa270a0,
87 Pxa270a1,
89 Pxa270,
91 Pxa270b0,
93 Pxa270b1,
95 Pxa270c0,
97 Pxa270c5,
99 Sa1100,
101 Sa1110,
103 Ti925t,
105}
106impl ToCommand for CpuTypeAarch64 {
107 fn to_command(&self) -> Vec<String> {
108 let mut cmd = vec![];
109
110 match self {
111 CpuTypeAarch64::A64fx => cmd.push("a64fx".to_string()),
112 CpuTypeAarch64::Arm1026 => cmd.push("arm1026".to_string()),
113 CpuTypeAarch64::Arm1136 => cmd.push("arm1136".to_string()),
114 CpuTypeAarch64::Arm1136r2 => cmd.push("arm1136-r2".to_string()),
115 CpuTypeAarch64::Arm1176 => cmd.push("arm1176".to_string()),
116 CpuTypeAarch64::Arm11mpcore => cmd.push("arm11mpcore".to_string()),
117 CpuTypeAarch64::Arm926 => cmd.push("arm926".to_string()),
118 CpuTypeAarch64::Arm946 => cmd.push("arm946".to_string()),
119 CpuTypeAarch64::Cortexa15 => cmd.push("cortex-a15".to_string()),
120 CpuTypeAarch64::Cortexa35 => cmd.push("cortex-a35".to_string()),
121 CpuTypeAarch64::Cortexa53 => cmd.push("cortex-a53".to_string()),
122 CpuTypeAarch64::Cortexa55 => cmd.push("cortex-a55".to_string()),
123 CpuTypeAarch64::Cortexa57 => cmd.push("cortex-a57".to_string()),
124 CpuTypeAarch64::Cortexa7 => cmd.push("cortex-a7".to_string()),
125 CpuTypeAarch64::Cortexa710 => cmd.push("cortex-a710".to_string()),
126 CpuTypeAarch64::Cortexa72 => cmd.push("cortex-a72".to_string()),
127 CpuTypeAarch64::Cortexa76 => cmd.push("cortex-a76".to_string()),
128 CpuTypeAarch64::Cortexa8 => cmd.push("cortex-a8".to_string()),
129 CpuTypeAarch64::Cortexa9 => cmd.push("cortex-a9".to_string()),
130 CpuTypeAarch64::Cortexm0 => cmd.push("cortex-m0".to_string()),
131 CpuTypeAarch64::Cortexm3 => cmd.push("cortex-m3".to_string()),
132 CpuTypeAarch64::Cortexm33 => cmd.push("cortex-m33".to_string()),
133 CpuTypeAarch64::Cortexm4 => cmd.push("cortex-m4".to_string()),
134 CpuTypeAarch64::Cortexm55 => cmd.push("cortex-m55".to_string()),
135 CpuTypeAarch64::Cortexm7 => cmd.push("cortex-m7".to_string()),
136 CpuTypeAarch64::Cortexr5 => cmd.push("cortex-r5".to_string()),
137 CpuTypeAarch64::Cortexr52 => cmd.push("cortex-r52".to_string()),
138 CpuTypeAarch64::Cortexr5f => cmd.push("cortex-r5f".to_string()),
139 CpuTypeAarch64::Host => cmd.push("host".to_string()),
140 CpuTypeAarch64::Max => cmd.push("max".to_string()),
141 CpuTypeAarch64::Neoversen1 => cmd.push("neoverse-n1".to_string()),
142 CpuTypeAarch64::Neoversen2 => cmd.push("neoverse-n2".to_string()),
143 CpuTypeAarch64::NeoverseV1 => cmd.push("neoverse-v1".to_string()),
144 CpuTypeAarch64::Pxa250 => cmd.push("pxa250".to_string()),
145 CpuTypeAarch64::Pxa255 => cmd.push("pxa255".to_string()),
146 CpuTypeAarch64::Pxa260 => cmd.push("pxa260".to_string()),
147 CpuTypeAarch64::Pxa261 => cmd.push("pxa261".to_string()),
148 CpuTypeAarch64::Pxa262 => cmd.push("pxa262".to_string()),
149 CpuTypeAarch64::Pxa270a0 => cmd.push("pxa270-a0".to_string()),
150 CpuTypeAarch64::Pxa270a1 => cmd.push("pxa270-a1".to_string()),
151 CpuTypeAarch64::Pxa270 => cmd.push("pxa270".to_string()),
152 CpuTypeAarch64::Pxa270b0 => cmd.push("pxa270-b0".to_string()),
153 CpuTypeAarch64::Pxa270b1 => cmd.push("pxa270-b1".to_string()),
154 CpuTypeAarch64::Pxa270c0 => cmd.push("pxa270-c0".to_string()),
155 CpuTypeAarch64::Pxa270c5 => cmd.push("pxa270-c5".to_string()),
156 CpuTypeAarch64::Sa1100 => cmd.push("sa1100".to_string()),
157 CpuTypeAarch64::Sa1110 => cmd.push("sa1110".to_string()),
158 CpuTypeAarch64::Ti925t => cmd.push("ti925t".to_string()),
159 }
160 cmd
161 }
162}
163
164impl ToArg for CpuTypeAarch64 {
165 fn to_arg(&self) -> &str {
166 match self {
167 CpuTypeAarch64::A64fx => "a64fx",
168 CpuTypeAarch64::Arm1026 => "arm1026",
169 CpuTypeAarch64::Arm1136 => "arm1136",
170 CpuTypeAarch64::Arm1136r2 => "arm1136-r2",
171 CpuTypeAarch64::Arm1176 => "arm1176",
172 CpuTypeAarch64::Arm11mpcore => "arm11mpcore",
173 CpuTypeAarch64::Arm926 => "arm926",
174 CpuTypeAarch64::Arm946 => "arm946",
175 CpuTypeAarch64::Cortexa15 => "cortex-a15",
176 CpuTypeAarch64::Cortexa35 => "cortex-a35",
177 CpuTypeAarch64::Cortexa53 => "cortex-a53",
178 CpuTypeAarch64::Cortexa55 => "cortex-a55",
179 CpuTypeAarch64::Cortexa57 => "cortex-a57",
180 CpuTypeAarch64::Cortexa7 => "cortex-a7",
181 CpuTypeAarch64::Cortexa710 => "cortex-a710",
182 CpuTypeAarch64::Cortexa72 => "cortex-a72",
183 CpuTypeAarch64::Cortexa76 => "cortex-a76",
184 CpuTypeAarch64::Cortexa8 => "cortex-a8",
185 CpuTypeAarch64::Cortexa9 => "cortex-a9",
186 CpuTypeAarch64::Cortexm0 => "cortex-m0",
187 CpuTypeAarch64::Cortexm3 => "cortex-m3",
188 CpuTypeAarch64::Cortexm33 => "cortex-m33",
189 CpuTypeAarch64::Cortexm4 => "cortex-m4",
190 CpuTypeAarch64::Cortexm55 => "cortex-m55",
191 CpuTypeAarch64::Cortexm7 => "cortex-m7",
192 CpuTypeAarch64::Cortexr5 => "cortex-r5",
193 CpuTypeAarch64::Cortexr52 => "cortex-r52",
194 CpuTypeAarch64::Cortexr5f => "cortex-r5f",
195 CpuTypeAarch64::Host => "host",
196 CpuTypeAarch64::Max => "max",
197 CpuTypeAarch64::Neoversen1 => "neoverse-n1",
198 CpuTypeAarch64::Neoversen2 => "neoverse-n2",
199 CpuTypeAarch64::NeoverseV1 => "neoverse-v1",
200 CpuTypeAarch64::Pxa250 => "pxa250",
201 CpuTypeAarch64::Pxa255 => "pxa255",
202 CpuTypeAarch64::Pxa260 => "pxa260",
203 CpuTypeAarch64::Pxa261 => "pxa261",
204 CpuTypeAarch64::Pxa262 => "pxa262",
205 CpuTypeAarch64::Pxa270a0 => "pxa270-a0",
206 CpuTypeAarch64::Pxa270a1 => "pxa270-a1",
207 CpuTypeAarch64::Pxa270 => "pxa270",
208 CpuTypeAarch64::Pxa270b0 => "pxa270-b0",
209 CpuTypeAarch64::Pxa270b1 => "pxa270-b1",
210 CpuTypeAarch64::Pxa270c0 => "pxa270-c0",
211 CpuTypeAarch64::Pxa270c5 => "pxa270-c5",
212 CpuTypeAarch64::Sa1100 => "sa1100",
213 CpuTypeAarch64::Sa1110 => "sa1110",
214 CpuTypeAarch64::Ti925t => "ti925t",
215 }
216 }
217}
218
219impl FromStr for CpuTypeAarch64 {
220 type Err = CpuNotFound;
221
222 fn from_str(s: &str) -> Result<Self, Self::Err> {
223 match s {
224 "a64fx" => Ok(CpuTypeAarch64::A64fx),
225 "arm1026" => Ok(CpuTypeAarch64::Arm1026),
226 "arm1136" => Ok(CpuTypeAarch64::Arm1136),
227 "arm1136-r2" => Ok(CpuTypeAarch64::Arm1136r2),
228 "arm1176" => Ok(CpuTypeAarch64::Arm1176),
229 "arm11mpcore" => Ok(CpuTypeAarch64::Arm11mpcore),
230 "arm926" => Ok(CpuTypeAarch64::Arm926),
231 "arm946" => Ok(CpuTypeAarch64::Arm946),
232 "cortex-a15" => Ok(CpuTypeAarch64::Cortexa15),
233 "cortex-a35" => Ok(CpuTypeAarch64::Cortexa35),
234 "cortex-a53" => Ok(CpuTypeAarch64::Cortexa53),
235 "cortex-a55" => Ok(CpuTypeAarch64::Cortexa55),
236 "cortex-a57" => Ok(CpuTypeAarch64::Cortexa57),
237 "cortex-a7" => Ok(CpuTypeAarch64::Cortexa7),
238 "cortex-a710" => Ok(CpuTypeAarch64::Cortexa710),
239 "cortex-a72" => Ok(CpuTypeAarch64::Cortexa72),
240 "cortex-a76" => Ok(CpuTypeAarch64::Cortexa76),
241 "cortex-a8" => Ok(CpuTypeAarch64::Cortexa8),
242 "cortex-a9" => Ok(CpuTypeAarch64::Cortexa9),
243 "cortex-m0" => Ok(CpuTypeAarch64::Cortexm0),
244 "cortex-m3" => Ok(CpuTypeAarch64::Cortexm3),
245 "cortex-m33" => Ok(CpuTypeAarch64::Cortexm33),
246 "cortex-m4" => Ok(CpuTypeAarch64::Cortexm4),
247 "cortex-m55" => Ok(CpuTypeAarch64::Cortexm55),
248 "cortex-m7" => Ok(CpuTypeAarch64::Cortexm7),
249 "cortex-r5" => Ok(CpuTypeAarch64::Cortexr5),
250 "cortex-r52" => Ok(CpuTypeAarch64::Cortexr52),
251 "cortex-r5f" => Ok(CpuTypeAarch64::Cortexr5f),
252 "host" => Ok(CpuTypeAarch64::Host),
253 "max" => Ok(CpuTypeAarch64::Max),
254 "neoverse-n1" => Ok(CpuTypeAarch64::Neoversen1),
255 "neoverse-n2" => Ok(CpuTypeAarch64::Neoversen2),
256 "neoverse-v1" => Ok(CpuTypeAarch64::NeoverseV1),
257 "pxa250" => Ok(CpuTypeAarch64::Pxa250),
258 "pxa255" => Ok(CpuTypeAarch64::Pxa255),
259 "pxa260" => Ok(CpuTypeAarch64::Pxa260),
260 "pxa261" => Ok(CpuTypeAarch64::Pxa261),
261 "pxa262" => Ok(CpuTypeAarch64::Pxa262),
262 "pxa270-a0" => Ok(CpuTypeAarch64::Pxa270a0),
263 "pxa270-a1" => Ok(CpuTypeAarch64::Pxa270a1),
264 "pxa270" => Ok(CpuTypeAarch64::Pxa270),
265 "pxa270-b0" => Ok(CpuTypeAarch64::Pxa270b0),
266 "pxa270-b1" => Ok(CpuTypeAarch64::Pxa270b1),
267 "pxa270-c0" => Ok(CpuTypeAarch64::Pxa270c0),
268 "pxa270-c5" => Ok(CpuTypeAarch64::Pxa270c5),
269 "sa1100" => Ok(CpuTypeAarch64::Sa1100),
270 "sa1110" => Ok(CpuTypeAarch64::Sa1110),
271 "ti925t" => Ok(CpuTypeAarch64::Ti925t),
272 _ => Err(CpuNotFound),
273 }
274 }
275}
276
277#[derive(Debug, Clone, Hash, Ord, PartialOrd, Eq, PartialEq)]
278pub enum CpuTypeX86_64 {
279 X486,
281 X486V1,
283 Broadwell,
285 BroadwellIBRS,
287 BroadwellnoTSX,
289 BroadwellnoTSXIBRS,
291 BroadwellV1,
293 BroadwellV2,
295 BroadwellV3,
297 BroadwellV4,
299 CascadelakeServer,
301 CascadelakeServernoTSX,
303 CascadelakeServerV1,
305 CascadelakeServerV2,
307 CascadelakeServerV3,
309 CascadelakeServerV4,
311 CascadelakeServerV5,
313 ClearwaterForest,
315 ClearwaterForestV1,
317 Conroe,
319 ConroeV1,
321 Cooperlake,
323 CooperlakeV1,
325 CooperlakeV2,
327 Denverton,
329 DenvertonV1,
331 DenvertonV2,
333 DenvertonV3,
335 Dhyana,
337 DhyanaV1,
339 DhyanaV2,
341 EPYC,
343 EPYCGenoa,
345 EPYCGenoaV1,
347 EPYCGenoaV2,
349 EPYCIBPB,
351 EPYCMilan,
353 EPYCMilanV1,
355 EPYCMilanV2,
357 EPYCMilanV3,
359 EPYCRome,
361 EPYCRomeV1,
363 EPYCRomeV2,
365 EPYCRomeV3,
367 EPYCRomeV4,
369 EPYCRomeV5,
371 EPYCTurin,
373 EPYCTurinV1,
375 EPYCV1,
377 EPYCV2,
379 EPYCV3,
381 EPYCV4,
383 EPYCV5,
385 GraniteRapids,
387 GraniteRapidsV1,
389 GraniteRapidsV2,
391 GraniteRapidsV3,
393 Haswell,
395 HaswellIBRS,
397 HaswellnoTSX,
399 HaswellnoTSXIBRS,
401 HaswellV1,
403 HaswellV2,
405 HaswellV3,
407 HaswellV4,
409 IcelakeServer,
411 IcelakeServernoTSX,
413 IcelakeServerV1,
415 IcelakeServerV2,
417 IcelakeServerV3,
419 IcelakeServerV4,
421 IcelakeServerV5,
423 IcelakeServerV6,
425 IcelakeServerV7,
427 IvyBridge,
429 IvyBridgeIBRS,
431 IvyBridgeV1,
433 IvyBridgeV2,
435 KnightsMill,
437 KnightsMillV1,
439 Nehalem,
441 NehalemIBRS,
443 NehalemV1,
445 NehalemV2,
447 OpteronG1,
449 OpteronG1V1,
451 OpteronG2,
453 OpteronG2V1,
455 OpteronG3,
457 OpteronG3V1,
459 OpteronG4,
461 OpteronG4V1,
463 OpteronG5,
465 OpteronG5V1,
467 Penryn,
469 PenrynV1,
471 SandyBridge,
473 SandyBridgeIBRS,
475 SandyBridgeV1,
477 SandyBridgeV2,
479 SapphireRapids,
481 SapphireRapidsV1,
483 SapphireRapidsV2,
485 SapphireRapidsV3,
487 SapphireRapidsV4,
489 SierraForest,
491 SierraForestV1,
493 SierraForestV2,
495 SierraForestV3,
497 SkylakeClient,
499 SkylakeClientIBRS,
501 SkylakeClientnoTSXIBRS,
503 SkylakeClientV1,
505 SkylakeClientV2,
507 SkylakeClientV3,
509 SkylakeClientV4,
511 SkylakeServer,
513 SkylakeServerIBRS,
515 SkylakeServernoTSXIBRS,
517 SkylakeServerV1,
519 SkylakeServerV2,
521 SkylakeServerV3,
523 SkylakeServerV4,
525 SkylakeServerV5,
527 Snowridge,
529 SnowridgeV1,
531 SnowridgeV2,
533 SnowridgeV3,
535 SnowridgeV4,
537 Westmere,
539 WestmereIBRS,
541 WestmereV1,
543 WestmereV2,
545 YongFeng,
547 YongFengV1,
549 YongFengV2,
551 YongFengV3,
553 Athlon,
555 AthlonV1,
557 Core2duo,
559 Core2duoV1,
561 Coreduo,
563 CoreduoV1,
565 Kvm32,
567 Kvm32V1,
569 Kvm64,
571 Kvm64V1,
573 N270,
575 N270V1,
577 Pentium,
579 PentiumV1,
581 Pentium2,
583 Pentium2V1,
585 Pentium3,
587 Pentium3V1,
589 Phenom,
591 PhenomV1,
593 Qemu32,
595 Qemu32V1,
597 Qemu64,
599 Qemu64V1,
601 Base,
603 Max,
605 Host,
607}
608impl ToCommand for CpuTypeX86_64 {
609 fn to_command(&self) -> Vec<String> {
610 let mut cmd = vec![];
611
612 match self {
613 CpuTypeX86_64::X486 => cmd.push("486".to_string()),
614 CpuTypeX86_64::X486V1 => cmd.push("486-v1".to_string()),
615 CpuTypeX86_64::Broadwell => cmd.push("broadwell".to_string()),
616 CpuTypeX86_64::BroadwellIBRS => cmd.push("broadwell-ibrs".to_string()),
617 CpuTypeX86_64::BroadwellnoTSX => cmd.push("broadwell-notsx".to_string()),
618 CpuTypeX86_64::BroadwellnoTSXIBRS => cmd.push("broadwell-notsx-ibrs".to_string()),
619 CpuTypeX86_64::BroadwellV1 => cmd.push("broadwell-v1".to_string()),
620 CpuTypeX86_64::BroadwellV2 => cmd.push("broadwell-v2".to_string()),
621 CpuTypeX86_64::BroadwellV3 => cmd.push("broadwell-v3".to_string()),
622 CpuTypeX86_64::BroadwellV4 => cmd.push("broadwell-v4".to_string()),
623 CpuTypeX86_64::CascadelakeServer => cmd.push("cascadelake-server".to_string()),
624 CpuTypeX86_64::CascadelakeServernoTSX => {
625 cmd.push("cascadelake-server-notsx".to_string())
626 }
627 CpuTypeX86_64::CascadelakeServerV1 => cmd.push("cascadelake-server-v1".to_string()),
628 CpuTypeX86_64::CascadelakeServerV2 => cmd.push("cascadelake-server-v2".to_string()),
629 CpuTypeX86_64::CascadelakeServerV3 => cmd.push("cascadelake-server-v3".to_string()),
630 CpuTypeX86_64::CascadelakeServerV4 => cmd.push("cascadelake-server-v4".to_string()),
631 CpuTypeX86_64::CascadelakeServerV5 => cmd.push("cascadelake-server-v5".to_string()),
632 CpuTypeX86_64::ClearwaterForest => cmd.push("clearwaterforest".to_string()),
633 CpuTypeX86_64::ClearwaterForestV1 => cmd.push("clearwaterforest-v1".to_string()),
634 CpuTypeX86_64::Conroe => cmd.push("conroe".to_string()),
635 CpuTypeX86_64::ConroeV1 => cmd.push("conroe-v1".to_string()),
636 CpuTypeX86_64::Cooperlake => cmd.push("cooperlake".to_string()),
637 CpuTypeX86_64::CooperlakeV1 => cmd.push("cooperlake-v1".to_string()),
638 CpuTypeX86_64::CooperlakeV2 => cmd.push("cooperlake-v2".to_string()),
639 CpuTypeX86_64::Denverton => cmd.push("denverton".to_string()),
640 CpuTypeX86_64::DenvertonV1 => cmd.push("denverton-v1".to_string()),
641 CpuTypeX86_64::DenvertonV2 => cmd.push("denverton-v2".to_string()),
642 CpuTypeX86_64::DenvertonV3 => cmd.push("denverton-v3".to_string()),
643 CpuTypeX86_64::Dhyana => cmd.push("dhyana".to_string()),
644 CpuTypeX86_64::DhyanaV1 => cmd.push("dhyana-v1".to_string()),
645 CpuTypeX86_64::DhyanaV2 => cmd.push("dhyana-v2".to_string()),
646 CpuTypeX86_64::EPYC => cmd.push("epyc".to_string()),
647 CpuTypeX86_64::EPYCGenoa => cmd.push("epyc-genoa".to_string()),
648 CpuTypeX86_64::EPYCGenoaV1 => cmd.push("epyc-genoa-v1".to_string()),
649 CpuTypeX86_64::EPYCGenoaV2 => cmd.push("epyc-genoa-v2".to_string()),
650 CpuTypeX86_64::EPYCIBPB => cmd.push("epyc-ibpb".to_string()),
651 CpuTypeX86_64::EPYCMilan => cmd.push("epyc-milan".to_string()),
652 CpuTypeX86_64::EPYCMilanV1 => cmd.push("epyc-milan-v1".to_string()),
653 CpuTypeX86_64::EPYCMilanV2 => cmd.push("epyc-milan-v2".to_string()),
654 CpuTypeX86_64::EPYCMilanV3 => cmd.push("epyc-milan-v3".to_string()),
655 CpuTypeX86_64::EPYCRome => cmd.push("epyc-rome".to_string()),
656 CpuTypeX86_64::EPYCRomeV1 => cmd.push("epyc-rome-v1".to_string()),
657 CpuTypeX86_64::EPYCRomeV2 => cmd.push("epyc-rome-v2".to_string()),
658 CpuTypeX86_64::EPYCRomeV3 => cmd.push("epyc-rome-v3".to_string()),
659 CpuTypeX86_64::EPYCRomeV4 => cmd.push("epyc-rome-v4".to_string()),
660 CpuTypeX86_64::EPYCRomeV5 => cmd.push("epyc-rome-v5".to_string()),
661 CpuTypeX86_64::EPYCTurin => cmd.push("epyc-turin".to_string()),
662 CpuTypeX86_64::EPYCTurinV1 => cmd.push("epyc-turin-v1".to_string()),
663 CpuTypeX86_64::EPYCV1 => cmd.push("epyc-v1".to_string()),
664 CpuTypeX86_64::EPYCV2 => cmd.push("epyc-v2".to_string()),
665 CpuTypeX86_64::EPYCV3 => cmd.push("epyc-v3".to_string()),
666 CpuTypeX86_64::EPYCV4 => cmd.push("epyc-v4".to_string()),
667 CpuTypeX86_64::EPYCV5 => cmd.push("epyc-v5".to_string()),
668 CpuTypeX86_64::GraniteRapids => cmd.push("graniterapids".to_string()),
669 CpuTypeX86_64::GraniteRapidsV1 => cmd.push("graniterapids-v1".to_string()),
670 CpuTypeX86_64::GraniteRapidsV2 => cmd.push("graniterapids-v2".to_string()),
671 CpuTypeX86_64::GraniteRapidsV3 => cmd.push("graniterapids-v3".to_string()),
672 CpuTypeX86_64::Haswell => cmd.push("haswell".to_string()),
673 CpuTypeX86_64::HaswellIBRS => cmd.push("haswell-ibrs".to_string()),
674 CpuTypeX86_64::HaswellnoTSX => cmd.push("haswell-notsx".to_string()),
675 CpuTypeX86_64::HaswellnoTSXIBRS => cmd.push("haswell-notsx-ibrs".to_string()),
676 CpuTypeX86_64::HaswellV1 => cmd.push("haswell-v1".to_string()),
677 CpuTypeX86_64::HaswellV2 => cmd.push("haswell-v2".to_string()),
678 CpuTypeX86_64::HaswellV3 => cmd.push("haswell-v3".to_string()),
679 CpuTypeX86_64::HaswellV4 => cmd.push("haswell-v4".to_string()),
680 CpuTypeX86_64::IcelakeServer => cmd.push("icelake-server".to_string()),
681 CpuTypeX86_64::IcelakeServernoTSX => cmd.push("icelake-server-notsx".to_string()),
682 CpuTypeX86_64::IcelakeServerV1 => cmd.push("icelake-server-v1".to_string()),
683 CpuTypeX86_64::IcelakeServerV2 => cmd.push("icelake-server-v2".to_string()),
684 CpuTypeX86_64::IcelakeServerV3 => cmd.push("icelake-server-v3".to_string()),
685 CpuTypeX86_64::IcelakeServerV4 => cmd.push("icelake-server-v4".to_string()),
686 CpuTypeX86_64::IcelakeServerV5 => cmd.push("icelake-server-v5".to_string()),
687 CpuTypeX86_64::IcelakeServerV6 => cmd.push("icelake-server-v6".to_string()),
688 CpuTypeX86_64::IcelakeServerV7 => cmd.push("icelake-server-v7".to_string()),
689 CpuTypeX86_64::IvyBridge => cmd.push("ivybridge".to_string()),
690 CpuTypeX86_64::IvyBridgeIBRS => cmd.push("ivybridge-ibrs".to_string()),
691 CpuTypeX86_64::IvyBridgeV1 => cmd.push("ivybridge-v1".to_string()),
692 CpuTypeX86_64::IvyBridgeV2 => cmd.push("ivybridge-v2".to_string()),
693 CpuTypeX86_64::KnightsMill => cmd.push("knightsmill".to_string()),
694 CpuTypeX86_64::KnightsMillV1 => cmd.push("knightsmill-v1".to_string()),
695 CpuTypeX86_64::Nehalem => cmd.push("nehalem".to_string()),
696 CpuTypeX86_64::NehalemIBRS => cmd.push("nehalem-ibrs".to_string()),
697 CpuTypeX86_64::NehalemV1 => cmd.push("nehalem-v1".to_string()),
698 CpuTypeX86_64::NehalemV2 => cmd.push("nehalem-v2".to_string()),
699 CpuTypeX86_64::OpteronG1 => cmd.push("opteron_g1".to_string()),
700 CpuTypeX86_64::OpteronG1V1 => cmd.push("opteron_g1-v1".to_string()),
701 CpuTypeX86_64::OpteronG2 => cmd.push("opteron_g2".to_string()),
702 CpuTypeX86_64::OpteronG2V1 => cmd.push("opteron_g2-v1".to_string()),
703 CpuTypeX86_64::OpteronG3 => cmd.push("opteron_g3".to_string()),
704 CpuTypeX86_64::OpteronG3V1 => cmd.push("opteron_g3-v1".to_string()),
705 CpuTypeX86_64::OpteronG4 => cmd.push("opteron_g4".to_string()),
706 CpuTypeX86_64::OpteronG4V1 => cmd.push("opteron_g4-v1".to_string()),
707 CpuTypeX86_64::OpteronG5 => cmd.push("opteron_g5".to_string()),
708 CpuTypeX86_64::OpteronG5V1 => cmd.push("opteron_g5-v1".to_string()),
709 CpuTypeX86_64::Penryn => cmd.push("penryn".to_string()),
710 CpuTypeX86_64::PenrynV1 => cmd.push("penryn-v1".to_string()),
711 CpuTypeX86_64::SandyBridge => cmd.push("sandybridge".to_string()),
712 CpuTypeX86_64::SandyBridgeIBRS => cmd.push("sandybridge-ibrs".to_string()),
713 CpuTypeX86_64::SandyBridgeV1 => cmd.push("sandybridge-v1".to_string()),
714 CpuTypeX86_64::SandyBridgeV2 => cmd.push("sandybridge-v2".to_string()),
715 CpuTypeX86_64::SapphireRapids => cmd.push("sapphirerapids".to_string()),
716 CpuTypeX86_64::SapphireRapidsV1 => cmd.push("sapphirerapids-v1".to_string()),
717 CpuTypeX86_64::SapphireRapidsV2 => cmd.push("sapphirerapids-v2".to_string()),
718 CpuTypeX86_64::SapphireRapidsV3 => cmd.push("sapphirerapids-v3".to_string()),
719 CpuTypeX86_64::SapphireRapidsV4 => cmd.push("sapphirerapids-v4".to_string()),
720 CpuTypeX86_64::SierraForest => cmd.push("sierraforest".to_string()),
721 CpuTypeX86_64::SierraForestV1 => cmd.push("sierraforest-v1".to_string()),
722 CpuTypeX86_64::SierraForestV2 => cmd.push("sierraforest-v2".to_string()),
723 CpuTypeX86_64::SierraForestV3 => cmd.push("sierraforest-v3".to_string()),
724 CpuTypeX86_64::SkylakeClient => cmd.push("skylake-client".to_string()),
725 CpuTypeX86_64::SkylakeClientIBRS => cmd.push("skylake-client-ibrs".to_string()),
726 CpuTypeX86_64::SkylakeClientnoTSXIBRS => {
727 cmd.push("skylake-client-notsx-ibrs".to_string())
728 }
729 CpuTypeX86_64::SkylakeClientV1 => cmd.push("skylake-client-v1".to_string()),
730 CpuTypeX86_64::SkylakeClientV2 => cmd.push("skylake-client-v2".to_string()),
731 CpuTypeX86_64::SkylakeClientV3 => cmd.push("skylake-client-v3".to_string()),
732 CpuTypeX86_64::SkylakeClientV4 => cmd.push("skylake-client-v4".to_string()),
733 CpuTypeX86_64::SkylakeServer => cmd.push("skylake-server".to_string()),
734 CpuTypeX86_64::SkylakeServerIBRS => cmd.push("skylake-server-ibrs".to_string()),
735 CpuTypeX86_64::SkylakeServernoTSXIBRS => {
736 cmd.push("skylake-server-notsx-ibrs".to_string())
737 }
738 CpuTypeX86_64::SkylakeServerV1 => cmd.push("skylake-server-v1".to_string()),
739 CpuTypeX86_64::SkylakeServerV2 => cmd.push("skylake-server-v2".to_string()),
740 CpuTypeX86_64::SkylakeServerV3 => cmd.push("skylake-server-v3".to_string()),
741 CpuTypeX86_64::SkylakeServerV4 => cmd.push("skylake-server-v4".to_string()),
742 CpuTypeX86_64::SkylakeServerV5 => cmd.push("skylake-server-v5".to_string()),
743 CpuTypeX86_64::Snowridge => cmd.push("snowridge".to_string()),
744 CpuTypeX86_64::SnowridgeV1 => cmd.push("snowridge-v1".to_string()),
745 CpuTypeX86_64::SnowridgeV2 => cmd.push("snowridge-v2".to_string()),
746 CpuTypeX86_64::SnowridgeV3 => cmd.push("snowridge-v3".to_string()),
747 CpuTypeX86_64::SnowridgeV4 => cmd.push("snowridge-v4".to_string()),
748 CpuTypeX86_64::Westmere => cmd.push("westmere".to_string()),
749 CpuTypeX86_64::WestmereIBRS => cmd.push("westmere-ibrs".to_string()),
750 CpuTypeX86_64::WestmereV1 => cmd.push("westmere-v1".to_string()),
751 CpuTypeX86_64::WestmereV2 => cmd.push("westmere-v2".to_string()),
752 CpuTypeX86_64::YongFeng => cmd.push("yongfeng".to_string()),
753 CpuTypeX86_64::YongFengV1 => cmd.push("yongfeng-v1".to_string()),
754 CpuTypeX86_64::YongFengV2 => cmd.push("yongfeng-v2".to_string()),
755 CpuTypeX86_64::YongFengV3 => cmd.push("yongfeng-v3".to_string()),
756 CpuTypeX86_64::Athlon => cmd.push("athlon".to_string()),
757 CpuTypeX86_64::AthlonV1 => cmd.push("athlon-v1".to_string()),
758 CpuTypeX86_64::Core2duo => cmd.push("core2duo".to_string()),
759 CpuTypeX86_64::Core2duoV1 => cmd.push("core2duo-v1".to_string()),
760 CpuTypeX86_64::Coreduo => cmd.push("coreduo".to_string()),
761 CpuTypeX86_64::CoreduoV1 => cmd.push("coreduo-v1".to_string()),
762 CpuTypeX86_64::Kvm32 => cmd.push("kvm32".to_string()),
763 CpuTypeX86_64::Kvm32V1 => cmd.push("kvm32-v1".to_string()),
764 CpuTypeX86_64::Kvm64 => cmd.push("kvm64".to_string()),
765 CpuTypeX86_64::Kvm64V1 => cmd.push("kvm64-v1".to_string()),
766 CpuTypeX86_64::N270 => cmd.push("n270".to_string()),
767 CpuTypeX86_64::N270V1 => cmd.push("n270-v1".to_string()),
768 CpuTypeX86_64::Pentium => cmd.push("pentium".to_string()),
769 CpuTypeX86_64::PentiumV1 => cmd.push("pentium-v1".to_string()),
770 CpuTypeX86_64::Pentium2 => cmd.push("pentium2".to_string()),
771 CpuTypeX86_64::Pentium2V1 => cmd.push("pentium2-v1".to_string()),
772 CpuTypeX86_64::Pentium3 => cmd.push("pentium3".to_string()),
773 CpuTypeX86_64::Pentium3V1 => cmd.push("pentium3-v1".to_string()),
774 CpuTypeX86_64::Phenom => cmd.push("phenom".to_string()),
775 CpuTypeX86_64::PhenomV1 => cmd.push("phenom-v1".to_string()),
776 CpuTypeX86_64::Qemu32 => cmd.push("qemu32".to_string()),
777 CpuTypeX86_64::Qemu32V1 => cmd.push("qemu32-v1".to_string()),
778 CpuTypeX86_64::Qemu64 => cmd.push("qemu64".to_string()),
779 CpuTypeX86_64::Qemu64V1 => cmd.push("qemu64-v1".to_string()),
780 CpuTypeX86_64::Base => cmd.push("base".to_string()),
781 CpuTypeX86_64::Max => cmd.push("max".to_string()),
782 CpuTypeX86_64::Host => cmd.push("host".to_string()),
783 }
784 cmd
785 }
786}
787
788impl ToArg for CpuTypeX86_64 {
789 fn to_arg(&self) -> &str {
790 match self {
791 CpuTypeX86_64::X486 => "486",
792 CpuTypeX86_64::X486V1 => "486-v1",
793 CpuTypeX86_64::Broadwell => "Broadwell",
794 CpuTypeX86_64::BroadwellIBRS => "Broadwell-IBRS",
795 CpuTypeX86_64::BroadwellnoTSX => "Broadwell-noTSX",
796 CpuTypeX86_64::BroadwellnoTSXIBRS => "Broadwell-noTSX-IBRS",
797 CpuTypeX86_64::BroadwellV1 => "Broadwell-v1",
798 CpuTypeX86_64::BroadwellV2 => "Broadwell-v2",
799 CpuTypeX86_64::BroadwellV3 => "Broadwell-v3",
800 CpuTypeX86_64::BroadwellV4 => "Broadwell-v4",
801 CpuTypeX86_64::CascadelakeServer => "Cascadelake-Server",
802 CpuTypeX86_64::CascadelakeServernoTSX => "Cascadelake-Server-noTSX",
803 CpuTypeX86_64::CascadelakeServerV1 => "Cascadelake-Server-v1",
804 CpuTypeX86_64::CascadelakeServerV2 => "Cascadelake-Server-v2",
805 CpuTypeX86_64::CascadelakeServerV3 => "Cascadelake-Server-v3",
806 CpuTypeX86_64::CascadelakeServerV4 => "Cascadelake-Server-v4",
807 CpuTypeX86_64::CascadelakeServerV5 => "Cascadelake-Server-v5",
808 CpuTypeX86_64::ClearwaterForest => "ClearwaterForest",
809 CpuTypeX86_64::ClearwaterForestV1 => "ClearwaterForest-v1",
810 CpuTypeX86_64::Conroe => "Conroe",
811 CpuTypeX86_64::ConroeV1 => "Conroe-v1",
812 CpuTypeX86_64::Cooperlake => "Cooperlake",
813 CpuTypeX86_64::CooperlakeV1 => "Cooperlake-v1",
814 CpuTypeX86_64::CooperlakeV2 => "Cooperlake-v2",
815 CpuTypeX86_64::Denverton => "Denverton",
816 CpuTypeX86_64::DenvertonV1 => "Denverton-v1",
817 CpuTypeX86_64::DenvertonV2 => "Denverton-v2",
818 CpuTypeX86_64::DenvertonV3 => "Denverton-v3",
819 CpuTypeX86_64::Dhyana => "Dhyana",
820 CpuTypeX86_64::DhyanaV1 => "Dhyana-v1",
821 CpuTypeX86_64::DhyanaV2 => "Dhyana-v2",
822 CpuTypeX86_64::EPYC => "EPYC",
823 CpuTypeX86_64::EPYCGenoa => "EPYC-Genoa",
824 CpuTypeX86_64::EPYCGenoaV1 => "EPYC-Genoa-v1",
825 CpuTypeX86_64::EPYCGenoaV2 => "EPYC-Genoa-v2",
826 CpuTypeX86_64::EPYCIBPB => "EPYC-IBPB",
827 CpuTypeX86_64::EPYCMilan => "EPYC-Milan",
828 CpuTypeX86_64::EPYCMilanV1 => "EPYC-Milan-v1",
829 CpuTypeX86_64::EPYCMilanV2 => "EPYC-Milan-v2",
830 CpuTypeX86_64::EPYCMilanV3 => "EPYC-Milan-v3",
831 CpuTypeX86_64::EPYCRome => "EPYC-Rome",
832 CpuTypeX86_64::EPYCRomeV1 => "EPYC-Rome-v1",
833 CpuTypeX86_64::EPYCRomeV2 => "EPYC-Rome-v2",
834 CpuTypeX86_64::EPYCRomeV3 => "EPYC-Rome-v3",
835 CpuTypeX86_64::EPYCRomeV4 => "EPYC-Rome-v4",
836 CpuTypeX86_64::EPYCRomeV5 => "EPYC-Rome-v5",
837 CpuTypeX86_64::EPYCTurin => "EPYC-Turin",
838 CpuTypeX86_64::EPYCTurinV1 => "EPYC-Turin-v1",
839 CpuTypeX86_64::EPYCV1 => "EPYC-v1",
840 CpuTypeX86_64::EPYCV2 => "EPYC-v2",
841 CpuTypeX86_64::EPYCV3 => "EPYC-v3",
842 CpuTypeX86_64::EPYCV4 => "EPYC-v4",
843 CpuTypeX86_64::EPYCV5 => "EPYC-v5",
844 CpuTypeX86_64::GraniteRapids => "GraniteRapids",
845 CpuTypeX86_64::GraniteRapidsV1 => "GraniteRapids-v1",
846 CpuTypeX86_64::GraniteRapidsV2 => "GraniteRapids-v2",
847 CpuTypeX86_64::GraniteRapidsV3 => "GraniteRapids-v3",
848 CpuTypeX86_64::Haswell => "Haswell",
849 CpuTypeX86_64::HaswellIBRS => "Haswell-IBRS",
850 CpuTypeX86_64::HaswellnoTSX => "Haswell-noTSX",
851 CpuTypeX86_64::HaswellnoTSXIBRS => "Haswell-noTSX-IBRS",
852 CpuTypeX86_64::HaswellV1 => "Haswell-v1",
853 CpuTypeX86_64::HaswellV2 => "Haswell-v2",
854 CpuTypeX86_64::HaswellV3 => "Haswell-v3",
855 CpuTypeX86_64::HaswellV4 => "Haswell-v4",
856 CpuTypeX86_64::IcelakeServer => "Icelake-Server",
857 CpuTypeX86_64::IcelakeServernoTSX => "Icelake-Server-noTSX",
858 CpuTypeX86_64::IcelakeServerV1 => "Icelake-Server-v1",
859 CpuTypeX86_64::IcelakeServerV2 => "Icelake-Server-v2",
860 CpuTypeX86_64::IcelakeServerV3 => "Icelake-Server-v3",
861 CpuTypeX86_64::IcelakeServerV4 => "Icelake-Server-v4",
862 CpuTypeX86_64::IcelakeServerV5 => "Icelake-Server-v5",
863 CpuTypeX86_64::IcelakeServerV6 => "Icelake-Server-v6",
864 CpuTypeX86_64::IcelakeServerV7 => "Icelake-Server-v7",
865 CpuTypeX86_64::IvyBridge => "IvyBridge",
866 CpuTypeX86_64::IvyBridgeIBRS => "IvyBridge-IBRS",
867 CpuTypeX86_64::IvyBridgeV1 => "IvyBridge-v1",
868 CpuTypeX86_64::IvyBridgeV2 => "IvyBridge-v2",
869 CpuTypeX86_64::KnightsMill => "KnightsMill",
870 CpuTypeX86_64::KnightsMillV1 => "KnightsMill-v1",
871 CpuTypeX86_64::Nehalem => "Nehalem",
872 CpuTypeX86_64::NehalemIBRS => "Nehalem-IBRS",
873 CpuTypeX86_64::NehalemV1 => "Nehalem-v1",
874 CpuTypeX86_64::NehalemV2 => "Nehalem-v2",
875 CpuTypeX86_64::OpteronG1 => "Opteron_G1",
876 CpuTypeX86_64::OpteronG1V1 => "Opteron_G1-v1",
877 CpuTypeX86_64::OpteronG2 => "Opteron_G2",
878 CpuTypeX86_64::OpteronG2V1 => "Opteron_G2-v1",
879 CpuTypeX86_64::OpteronG3 => "Opteron_G3",
880 CpuTypeX86_64::OpteronG3V1 => "Opteron_G3-v1",
881 CpuTypeX86_64::OpteronG4 => "Opteron_G4",
882 CpuTypeX86_64::OpteronG4V1 => "Opteron_G4-v1",
883 CpuTypeX86_64::OpteronG5 => "Opteron_G5",
884 CpuTypeX86_64::OpteronG5V1 => "Opteron_G5-v1",
885 CpuTypeX86_64::Penryn => "Penryn",
886 CpuTypeX86_64::PenrynV1 => "Penryn-v1",
887 CpuTypeX86_64::SandyBridge => "SandyBridge",
888 CpuTypeX86_64::SandyBridgeIBRS => "SandyBridge-IBRS",
889 CpuTypeX86_64::SandyBridgeV1 => "SandyBridge-v1",
890 CpuTypeX86_64::SandyBridgeV2 => "SandyBridge-v2",
891 CpuTypeX86_64::SapphireRapids => "SapphireRapids",
892 CpuTypeX86_64::SapphireRapidsV1 => "SapphireRapids-v1",
893 CpuTypeX86_64::SapphireRapidsV2 => "SapphireRapids-v2",
894 CpuTypeX86_64::SapphireRapidsV3 => "SapphireRapids-v3",
895 CpuTypeX86_64::SapphireRapidsV4 => "SapphireRapids-v4",
896 CpuTypeX86_64::SierraForest => "SierraForest",
897 CpuTypeX86_64::SierraForestV1 => "SierraForest-v1",
898 CpuTypeX86_64::SierraForestV2 => "SierraForest-v2",
899 CpuTypeX86_64::SierraForestV3 => "SierraForest-v3",
900 CpuTypeX86_64::SkylakeClient => "Skylake-Client",
901 CpuTypeX86_64::SkylakeClientIBRS => "Skylake-Client-IBRS",
902 CpuTypeX86_64::SkylakeClientnoTSXIBRS => "Skylake-Client-noTSX-IBRS",
903 CpuTypeX86_64::SkylakeClientV1 => "Skylake-Client-v1",
904 CpuTypeX86_64::SkylakeClientV2 => "Skylake-Client-v2",
905 CpuTypeX86_64::SkylakeClientV3 => "Skylake-Client-v3",
906 CpuTypeX86_64::SkylakeClientV4 => "Skylake-Client-v4",
907 CpuTypeX86_64::SkylakeServer => "Skylake-Server",
908 CpuTypeX86_64::SkylakeServerIBRS => "Skylake-Server-IBRS",
909 CpuTypeX86_64::SkylakeServernoTSXIBRS => "Skylake-Server-noTSX-IBRS",
910 CpuTypeX86_64::SkylakeServerV1 => "Skylake-Server-v1",
911 CpuTypeX86_64::SkylakeServerV2 => "Skylake-Server-v2",
912 CpuTypeX86_64::SkylakeServerV3 => "Skylake-Server-v3",
913 CpuTypeX86_64::SkylakeServerV4 => "Skylake-Server-v4",
914 CpuTypeX86_64::SkylakeServerV5 => "Skylake-Server-v5",
915 CpuTypeX86_64::Snowridge => "Snowridge",
916 CpuTypeX86_64::SnowridgeV1 => "Snowridge-v1",
917 CpuTypeX86_64::SnowridgeV2 => "Snowridge-v2",
918 CpuTypeX86_64::SnowridgeV3 => "Snowridge-v3",
919 CpuTypeX86_64::SnowridgeV4 => "Snowridge-v4",
920 CpuTypeX86_64::Westmere => "Westmere",
921 CpuTypeX86_64::WestmereIBRS => "Westmere-IBRS",
922 CpuTypeX86_64::WestmereV1 => "Westmere-v1",
923 CpuTypeX86_64::WestmereV2 => "Westmere-v2",
924 CpuTypeX86_64::YongFeng => "YongFeng",
925 CpuTypeX86_64::YongFengV1 => "YongFeng-v1",
926 CpuTypeX86_64::YongFengV2 => "YongFeng-v2",
927 CpuTypeX86_64::YongFengV3 => "YongFeng-v3",
928 CpuTypeX86_64::Athlon => "athlon",
929 CpuTypeX86_64::AthlonV1 => "athlon-v1",
930 CpuTypeX86_64::Core2duo => "core2duo",
931 CpuTypeX86_64::Core2duoV1 => "core2duo-v1",
932 CpuTypeX86_64::Coreduo => "coreduo",
933 CpuTypeX86_64::CoreduoV1 => "coreduo-v1",
934 CpuTypeX86_64::Kvm32 => "kvm32",
935 CpuTypeX86_64::Kvm32V1 => "kvm32-v1",
936 CpuTypeX86_64::Kvm64 => "kvm64",
937 CpuTypeX86_64::Kvm64V1 => "kvm64-v1",
938 CpuTypeX86_64::N270 => "n270",
939 CpuTypeX86_64::N270V1 => "n270-v1",
940 CpuTypeX86_64::Pentium => "pentium",
941 CpuTypeX86_64::PentiumV1 => "pentium-v1",
942 CpuTypeX86_64::Pentium2 => "pentium2",
943 CpuTypeX86_64::Pentium2V1 => "pentium2-v1",
944 CpuTypeX86_64::Pentium3 => "pentium3",
945 CpuTypeX86_64::Pentium3V1 => "pentium3-v1",
946 CpuTypeX86_64::Phenom => "phenom",
947 CpuTypeX86_64::PhenomV1 => "phenom-v1",
948 CpuTypeX86_64::Qemu32 => "qemu32",
949 CpuTypeX86_64::Qemu32V1 => "qemu32-v1",
950 CpuTypeX86_64::Qemu64 => "qemu64",
951 CpuTypeX86_64::Qemu64V1 => "qemu64-v1",
952 CpuTypeX86_64::Base => "base",
953 CpuTypeX86_64::Max => "max",
954 CpuTypeX86_64::Host => "host",
955 }
956 }
957}
958
959impl FromStr for CpuTypeX86_64 {
960 type Err = CpuNotFound;
961
962 fn from_str(s: &str) -> Result<Self, Self::Err> {
963 match s {
964 "486" => Ok(CpuTypeX86_64::X486),
965 "486-v1" => Ok(CpuTypeX86_64::X486V1),
966 "Broadwell" => Ok(CpuTypeX86_64::Broadwell),
967 "Broadwell-IBRS" => Ok(CpuTypeX86_64::BroadwellIBRS),
968 "Broadwell-noTSX" => Ok(CpuTypeX86_64::BroadwellnoTSX),
969 "Broadwell-noTSX-IBRS" => Ok(CpuTypeX86_64::BroadwellnoTSXIBRS),
970 "Broadwell-v1" => Ok(CpuTypeX86_64::BroadwellV1),
971 "Broadwell-v2" => Ok(CpuTypeX86_64::BroadwellV2),
972 "Broadwell-v3" => Ok(CpuTypeX86_64::BroadwellV3),
973 "Broadwell-v4" => Ok(CpuTypeX86_64::BroadwellV4),
974 "Cascadelake-Server" => Ok(CpuTypeX86_64::CascadelakeServer),
975 "Cascadelake-Server-noTSX" => Ok(CpuTypeX86_64::CascadelakeServernoTSX),
976 "Cascadelake-Server-v1" => Ok(CpuTypeX86_64::CascadelakeServerV1),
977 "Cascadelake-Server-v2" => Ok(CpuTypeX86_64::CascadelakeServerV2),
978 "Cascadelake-Server-v3" => Ok(CpuTypeX86_64::CascadelakeServerV3),
979 "Cascadelake-Server-v4" => Ok(CpuTypeX86_64::CascadelakeServerV4),
980 "Cascadelake-Server-v5" => Ok(CpuTypeX86_64::CascadelakeServerV5),
981 "ClearwaterForest" => Ok(CpuTypeX86_64::ClearwaterForest),
982 "ClearwaterForest-v1" => Ok(CpuTypeX86_64::ClearwaterForestV1),
983 "Conroe" => Ok(CpuTypeX86_64::Conroe),
984 "Conroe-v1" => Ok(CpuTypeX86_64::ConroeV1),
985 "Cooperlake" => Ok(CpuTypeX86_64::Cooperlake),
986 "Cooperlake-v1" => Ok(CpuTypeX86_64::CooperlakeV1),
987 "Cooperlake-v2" => Ok(CpuTypeX86_64::CooperlakeV2),
988 "Denverton" => Ok(CpuTypeX86_64::Denverton),
989 "Denverton-v1" => Ok(CpuTypeX86_64::DenvertonV1),
990 "Denverton-v2" => Ok(CpuTypeX86_64::DenvertonV2),
991 "Denverton-v3" => Ok(CpuTypeX86_64::DenvertonV3),
992 "Dhyana" => Ok(CpuTypeX86_64::Dhyana),
993 "Dhyana-v1" => Ok(CpuTypeX86_64::DhyanaV1),
994 "Dhyana-v2" => Ok(CpuTypeX86_64::DhyanaV2),
995 "EPYC" => Ok(CpuTypeX86_64::EPYC),
996 "EPYC-Genoa" => Ok(CpuTypeX86_64::EPYCGenoa),
997 "EPYC-Genoa-v1" => Ok(CpuTypeX86_64::EPYCGenoaV1),
998 "EPYC-Genoa-v2" => Ok(CpuTypeX86_64::EPYCGenoaV2),
999 "EPYC-IBPB" => Ok(CpuTypeX86_64::EPYCIBPB),
1000 "EPYC-Milan" => Ok(CpuTypeX86_64::EPYCMilan),
1001 "EPYC-Milan-v1" => Ok(CpuTypeX86_64::EPYCMilanV1),
1002 "EPYC-Milan-v2" => Ok(CpuTypeX86_64::EPYCMilanV2),
1003 "EPYC-Milan-v3" => Ok(CpuTypeX86_64::EPYCMilanV3),
1004 "EPYC-Rome" => Ok(CpuTypeX86_64::EPYCRome),
1005 "EPYC-Rome-v1" => Ok(CpuTypeX86_64::EPYCRomeV1),
1006 "EPYC-Rome-v2" => Ok(CpuTypeX86_64::EPYCRomeV2),
1007 "EPYC-Rome-v3" => Ok(CpuTypeX86_64::EPYCRomeV3),
1008 "EPYC-Rome-v4" => Ok(CpuTypeX86_64::EPYCRomeV4),
1009 "EPYC-Rome-v5" => Ok(CpuTypeX86_64::EPYCRomeV5),
1010 "EPYC-Turin" => Ok(CpuTypeX86_64::EPYCTurin),
1011 "EPYC-Turin-v1" => Ok(CpuTypeX86_64::EPYCTurinV1),
1012 "EPYC-v1" => Ok(CpuTypeX86_64::EPYCV1),
1013 "EPYC-v2" => Ok(CpuTypeX86_64::EPYCV2),
1014 "EPYC-v3" => Ok(CpuTypeX86_64::EPYCV3),
1015 "EPYC-v4" => Ok(CpuTypeX86_64::EPYCV4),
1016 "EPYC-v5" => Ok(CpuTypeX86_64::EPYCV5),
1017 "GraniteRapids" => Ok(CpuTypeX86_64::GraniteRapids),
1018 "GraniteRapids-v1" => Ok(CpuTypeX86_64::GraniteRapidsV1),
1019 "GraniteRapids-v2" => Ok(CpuTypeX86_64::GraniteRapidsV2),
1020 "GraniteRapids-v3" => Ok(CpuTypeX86_64::GraniteRapidsV3),
1021 "Haswell" => Ok(CpuTypeX86_64::Haswell),
1022 "Haswell-IBRS" => Ok(CpuTypeX86_64::HaswellIBRS),
1023 "Haswell-noTSX" => Ok(CpuTypeX86_64::HaswellnoTSX),
1024 "Haswell-noTSX-IBRS" => Ok(CpuTypeX86_64::HaswellnoTSXIBRS),
1025 "Haswell-v1" => Ok(CpuTypeX86_64::HaswellV1),
1026 "Haswell-v2" => Ok(CpuTypeX86_64::HaswellV2),
1027 "Haswell-v3" => Ok(CpuTypeX86_64::HaswellV3),
1028 "Haswell-v4" => Ok(CpuTypeX86_64::HaswellV4),
1029 "Icelake-Server" => Ok(CpuTypeX86_64::IcelakeServer),
1030 "Icelake-Server-noTSX" => Ok(CpuTypeX86_64::IcelakeServernoTSX),
1031 "Icelake-Server-v1" => Ok(CpuTypeX86_64::IcelakeServerV1),
1032 "Icelake-Server-v2" => Ok(CpuTypeX86_64::IcelakeServerV2),
1033 "Icelake-Server-v3" => Ok(CpuTypeX86_64::IcelakeServerV3),
1034 "Icelake-Server-v4" => Ok(CpuTypeX86_64::IcelakeServerV4),
1035 "Icelake-Server-v5" => Ok(CpuTypeX86_64::IcelakeServerV5),
1036 "Icelake-Server-v6" => Ok(CpuTypeX86_64::IcelakeServerV6),
1037 "Icelake-Server-v7" => Ok(CpuTypeX86_64::IcelakeServerV7),
1038 "IvyBridge" => Ok(CpuTypeX86_64::IvyBridge),
1039 "IvyBridge-IBRS" => Ok(CpuTypeX86_64::IvyBridgeIBRS),
1040 "IvyBridge-v1" => Ok(CpuTypeX86_64::IvyBridgeV1),
1041 "IvyBridge-v2" => Ok(CpuTypeX86_64::IvyBridgeV2),
1042 "KnightsMill" => Ok(CpuTypeX86_64::KnightsMill),
1043 "KnightsMill-v1" => Ok(CpuTypeX86_64::KnightsMillV1),
1044 "Nehalem" => Ok(CpuTypeX86_64::Nehalem),
1045 "Nehalem-IBRS" => Ok(CpuTypeX86_64::NehalemIBRS),
1046 "Nehalem-v1" => Ok(CpuTypeX86_64::NehalemV1),
1047 "Nehalem-v2" => Ok(CpuTypeX86_64::NehalemV2),
1048 "Opteron_G1" => Ok(CpuTypeX86_64::OpteronG1),
1049 "Opteron_G1-v1" => Ok(CpuTypeX86_64::OpteronG1V1),
1050 "Opteron_G2" => Ok(CpuTypeX86_64::OpteronG2),
1051 "Opteron_G2-v1" => Ok(CpuTypeX86_64::OpteronG2V1),
1052 "Opteron_G3" => Ok(CpuTypeX86_64::OpteronG3),
1053 "Opteron_G3-v1" => Ok(CpuTypeX86_64::OpteronG3V1),
1054 "Opteron_G4" => Ok(CpuTypeX86_64::OpteronG4),
1055 "Opteron_G4-v1" => Ok(CpuTypeX86_64::OpteronG4V1),
1056 "Opteron_G5" => Ok(CpuTypeX86_64::OpteronG5),
1057 "Opteron_G5-v1" => Ok(CpuTypeX86_64::OpteronG5V1),
1058 "Penryn" => Ok(CpuTypeX86_64::Penryn),
1059 "Penryn-v1" => Ok(CpuTypeX86_64::PenrynV1),
1060 "SandyBridge" => Ok(CpuTypeX86_64::SandyBridge),
1061 "SandyBridge-IBRS" => Ok(CpuTypeX86_64::SandyBridgeIBRS),
1062 "SandyBridge-v1" => Ok(CpuTypeX86_64::SandyBridgeV1),
1063 "SandyBridge-v2" => Ok(CpuTypeX86_64::SandyBridgeV2),
1064 "SapphireRapids" => Ok(CpuTypeX86_64::SapphireRapids),
1065 "SapphireRapids-v1" => Ok(CpuTypeX86_64::SapphireRapidsV1),
1066 "SapphireRapids-v2" => Ok(CpuTypeX86_64::SapphireRapidsV2),
1067 "SapphireRapids-v3" => Ok(CpuTypeX86_64::SapphireRapidsV3),
1068 "SapphireRapids-v4" => Ok(CpuTypeX86_64::SapphireRapidsV4),
1069 "SierraForest" => Ok(CpuTypeX86_64::SierraForest),
1070 "SierraForest-v1" => Ok(CpuTypeX86_64::SierraForestV1),
1071 "SierraForest-v2" => Ok(CpuTypeX86_64::SierraForestV2),
1072 "SierraForest-v3" => Ok(CpuTypeX86_64::SierraForestV3),
1073 "Skylake-Client" => Ok(CpuTypeX86_64::SkylakeClient),
1074 "Skylake-Client-IBRS" => Ok(CpuTypeX86_64::SkylakeClientIBRS),
1075 "Skylake-Client-noTSX-IBRS" => Ok(CpuTypeX86_64::SkylakeClientnoTSXIBRS),
1076 "Skylake-Client-v1" => Ok(CpuTypeX86_64::SkylakeClientV1),
1077 "Skylake-Client-v2" => Ok(CpuTypeX86_64::SkylakeClientV2),
1078 "Skylake-Client-v3" => Ok(CpuTypeX86_64::SkylakeClientV3),
1079 "Skylake-Client-v4" => Ok(CpuTypeX86_64::SkylakeClientV4),
1080 "Skylake-Server" => Ok(CpuTypeX86_64::SkylakeServer),
1081 "Skylake-Server-IBRS" => Ok(CpuTypeX86_64::SkylakeServerIBRS),
1082 "Skylake-Server-noTSX-IBRS" => Ok(CpuTypeX86_64::SkylakeServernoTSXIBRS),
1083 "Skylake-Server-v1" => Ok(CpuTypeX86_64::SkylakeServerV1),
1084 "Skylake-Server-v2" => Ok(CpuTypeX86_64::SkylakeServerV2),
1085 "Skylake-Server-v3" => Ok(CpuTypeX86_64::SkylakeServerV3),
1086 "Skylake-Server-v4" => Ok(CpuTypeX86_64::SkylakeServerV4),
1087 "Skylake-Server-v5" => Ok(CpuTypeX86_64::SkylakeServerV5),
1088 "Snowridge" => Ok(CpuTypeX86_64::Snowridge),
1089 "Snowridge-v1" => Ok(CpuTypeX86_64::SnowridgeV1),
1090 "Snowridge-v2" => Ok(CpuTypeX86_64::SnowridgeV2),
1091 "Snowridge-v3" => Ok(CpuTypeX86_64::SnowridgeV3),
1092 "Snowridge-v4" => Ok(CpuTypeX86_64::SnowridgeV4),
1093 "Westmere" => Ok(CpuTypeX86_64::Westmere),
1094 "Westmere-IBRS" => Ok(CpuTypeX86_64::WestmereIBRS),
1095 "Westmere-v1" => Ok(CpuTypeX86_64::WestmereV1),
1096 "Westmere-v2" => Ok(CpuTypeX86_64::WestmereV2),
1097 "YongFeng" => Ok(CpuTypeX86_64::YongFeng),
1098 "YongFeng-v1" => Ok(CpuTypeX86_64::YongFengV1),
1099 "YongFeng-v2" => Ok(CpuTypeX86_64::YongFengV2),
1100 "YongFeng-v3" => Ok(CpuTypeX86_64::YongFengV3),
1101 "athlon" => Ok(CpuTypeX86_64::Athlon),
1102 "athlon-v1" => Ok(CpuTypeX86_64::AthlonV1),
1103 "core2duo" => Ok(CpuTypeX86_64::Core2duo),
1104 "core2duo-v1" => Ok(CpuTypeX86_64::Core2duoV1),
1105 "coreduo" => Ok(CpuTypeX86_64::Coreduo),
1106 "coreduo-v1" => Ok(CpuTypeX86_64::CoreduoV1),
1107 "kvm32" => Ok(CpuTypeX86_64::Kvm32),
1108 "kvm32-v1" => Ok(CpuTypeX86_64::Kvm32V1),
1109 "kvm64" => Ok(CpuTypeX86_64::Kvm64),
1110 "kvm64-v1" => Ok(CpuTypeX86_64::Kvm64V1),
1111 "n270" => Ok(CpuTypeX86_64::N270),
1112 "n270-v1" => Ok(CpuTypeX86_64::N270V1),
1113 "pentium" => Ok(CpuTypeX86_64::Pentium),
1114 "pentium-v1" => Ok(CpuTypeX86_64::PentiumV1),
1115 "pentium2" => Ok(CpuTypeX86_64::Pentium2),
1116 "pentium2-v1" => Ok(CpuTypeX86_64::Pentium2V1),
1117 "pentium3" => Ok(CpuTypeX86_64::Pentium3),
1118 "pentium3-v1" => Ok(CpuTypeX86_64::Pentium3V1),
1119 "phenom" => Ok(CpuTypeX86_64::Phenom),
1120 "phenom-v1" => Ok(CpuTypeX86_64::PhenomV1),
1121 "qemu32" => Ok(CpuTypeX86_64::Qemu32),
1122 "qemu32-v1" => Ok(CpuTypeX86_64::Qemu32V1),
1123 "qemu64" => Ok(CpuTypeX86_64::Qemu64),
1124 "qemu64-v1" => Ok(CpuTypeX86_64::Qemu64V1),
1125 "base" => Ok(CpuTypeX86_64::Base),
1126 "max" => Ok(CpuTypeX86_64::Max),
1127 "host" => Ok(CpuTypeX86_64::Host),
1128 _ => Err(CpuNotFound),
1129 }
1130 }
1131}