1use std::str::FromStr;
2
3use proptest_derive::Arbitrary;
4
5use crate::to_command::{ToArg, ToCommand};
6
7#[derive(Debug, Clone, Hash, Ord, PartialOrd, Eq, PartialEq, Arbitrary)]
8pub enum CPUFlag {
9 X3dnow,
11 X3dnowext,
13 X3dnowprefetch,
15 Abm,
17 Ace2,
19 Ace2en,
21 Acpi,
23 Adx,
25 Aes,
27 Amdnossb,
29 Amdpsfd,
31 Amdssbd,
33 Amdstibp,
35 Amxbf16,
37 Amxcomplex,
39 Amxfp16,
41 Amxint8,
43 Amxtile,
45 Apic,
47 Arat,
49 Archcapabilities,
51 Archlbr,
53 Autoibrs,
55 Avic,
57 Avx,
59 Avxifma,
61 Avxneconvert,
63 AvxVnni,
65 AvxVnniint16,
67 AvxVnniint8,
69 Avx10,
71 Avx10128,
73 Avx10256,
75 Avx10512,
77 Avx2,
79 Avx5124fmaps,
81 Avx5124vnniw,
83 Avx512bf16,
85 Avx512fp16,
87 Avx512Vp2intersect,
89 Avx512Vpopcntdq,
91 Avx512bitalg,
93 Avx512bw,
95 Avx512cd,
97 Avx512dq,
99 Avx512er,
101 Avx512f,
103 Avx512ifma,
105 Avx512pf,
107 Avx512vbmi,
109 Avx512vbmi2,
111 Avx512vl,
113 Avx512vnni,
115 Bhictrl,
117 Bhino,
119 Bmi1,
121 Bmi2,
123 Buslockdetect,
125 Cid,
127 Cldemote,
129 Clflush,
131 Clflushopt,
133 Clwb,
135 Clzero,
137 Cmov,
139 Cmplegacy,
141 Cmpccxadd,
143 Corecapability,
145 Cr8legacy,
147 Cx16,
149 Cx8,
151 Dca,
153 Ddpdu,
155 De,
157 Decodeassists,
159 Ds,
161 Dscpl,
163 Dtes64,
165 Eraps,
167 Erms,
169 Est,
171 Extapic,
173 F16c,
175 Fbclear,
177 Fbsdpno,
179 Fdpexcptnonly,
181 Flushl1d,
183 Flushbyasid,
185 Fma,
187 Fma4,
189 Fpu,
191 Fred,
193 Fsgsbase,
195 Fsrc,
197 Fsrm,
199 Fsrs,
201 Fullwidthwrite,
203 Fxsr,
205 Fxsropt,
207 Fzrm,
209 Gdsno,
211 Gfni,
213 Hle,
215 Ht,
217 Hypervisor,
219 Ia64,
221 Ibpb,
223 Ibpbbrtype,
225 Ibrs,
227 Ibrsall,
229 Ibs,
231 Intelpsfd,
233 Intelpt,
235 Intelptlip,
237 Invpcid,
239 Invtsc,
241 Ipredctrl,
243 Kvmasyncpf,
245 Kvmasyncpfint,
247 KvmasyncpfVmexit,
249 Kvmhintdedicated,
251 Kvmmmu,
253 Kvmmsiextdestid,
255 Kvmnopiodelay,
257 Kvmpollcontrol,
259 Kvmpveoi,
261 Kvmpvipi,
263 Kvmpvschedyield,
265 Kvmpvtlbflush,
267 Kvmpvunhalt,
269 Kvmstealtime,
271 Kvmclock,
273 Kvmclockstablebit,
275 La57,
277 Lahflm,
279 Lam,
281 Lbrv,
283 Lfencealwaysserializing,
285 Lkgs,
287 Lm,
289 Lwp,
291 Mca,
293 Mcdtno,
295 Mce,
297 Mdclear,
299 Mdsno,
301 Misalignsse,
303 Mmx,
305 Mmxext,
307 Monitor,
309 Movbe,
311 Movdir64b,
313 Movdiri,
315 Mpx,
317 Msr,
319 Mtrr,
321 Nonesteddatabp,
323 Nodeidmsr,
325 Npt,
327 Nripsave,
329 Nullselclrbase,
331 Nx,
333 Osvw,
335 Overflowrecov,
337 Pae,
339 Pat,
341 Pausefilter,
343 Pbe,
345 Pbrsbno,
347 Pcid,
349 Pclmulqdq,
351 Pcommit,
353 Pdcm,
355 Pdpe1gb,
357 Perfctrcore,
359 Perfctrnb,
361 PerfmonV2,
363 Pfthreshold,
365 Pge,
367 Phe,
369 Pheen,
371 Pks,
373 Pku,
375 Pmm,
377 Pmmen,
379 Pn,
381 Pni,
383 Popcnt,
385 Prefetchiti,
387 Pschangemcno,
389 Psdpno,
391 Pse,
393 Pse36,
395 Rdctlno,
397 Rdpid,
399 Rdrand,
401 Rdseed,
403 Rdtscp,
405 Rfdsclear,
407 Rfdsno,
409 Rrsbactrl,
411 Rsba,
413 Rtm,
415 Sbdrssdpno,
417 Sbpb,
419 Sep,
421 Serialize,
423 Sgx,
425 Sgxaexnotify,
427 Sgxdebug,
429 Sgxedeccssa,
431 Sgxexinfo,
433 Sgxkss,
435 Sgxmode64,
437 Sgxprovisionkey,
439 Sgxtokenkey,
441 Sgx1,
443 Sgx2,
445 Sgxlc,
447 Shani,
449 Sha512,
451 Skinit,
453 Skipl1dflVmentry,
455 Sm3,
457 Sm4,
459 Smap,
461 Smep,
463 Smx,
465 Specctrl,
467 Splitlockdetect,
469 Srsono,
471 Srsouserkernelno,
473 Ss,
475 Ssbno,
477 Ssbd,
479 Sse,
481 Sse2,
483 Sse4_1,
485 Sse4_2,
487 Sse4a,
489 Ssse3,
491 Stibp,
493 Stibpalwayson,
495 Succor,
497 Svm,
499 Svmlock,
501 Svmeaddrchk,
503 Syscall,
505 Taano,
507 Tbm,
509 Tce,
511 Tm,
513 Tm2,
515 Topoext,
517 Tsc,
519 Tscadjust,
521 Tscdeadline,
523 Tscscale,
525 Tsxctrl,
527 Tsxldtrk,
529 Umip,
531 VVmsavevmload,
533 Vaes,
535 Vgif,
537 Virtssbd,
539 Vmcbclean,
541 Vme,
543 Vmx,
545 Vmxactivityhlt,
547 Vmxactivityshutdown,
549 Vmxactivitywaitsipi,
551 Vmxanyerrcode,
553 Vmxapicvregister,
555 VmxapicvVid,
557 Vmxapicvx2apic,
559 Vmxapicvxapic,
561 Vmxcr3loadnoexit,
563 Vmxcr3storenoexit,
565 Vmxcr8loadexit,
567 Vmxcr8storeexit,
569 Vmxdescexit,
571 Vmxenableuserwaitpause,
573 Vmxenclsexit,
575 Vmxentryia32emode,
577 Vmxentryloadbndcfgs,
579 Vmxentryloadefer,
581 Vmxentryloadfred,
583 Vmxentryloadpat,
585 Vmxentryloadperfglobalctrl,
587 Vmxentryloadpkrs,
589 Vmxentryloadrtitctl,
591 Vmxentrynoloaddebugctl,
593 Vmxept,
595 Vmxept1gb,
597 Vmxept2mb,
599 Vmxeptadvancedexitinfo,
601 Vmxeptexeconly,
603 Vmxeptad,
605 Vmxeptpswitching,
607 Vmxexitackintr,
609 Vmxexitclearbndcfgs,
611 Vmxexitclearrtitctl,
613 Vmxexitloadefer,
615 Vmxexitloadpat,
617 Vmxexitloadperfglobalctrl,
619 Vmxexitloadpkrs,
621 Vmxexitnosavedebugctl,
623 Vmxexitsaveefer,
625 Vmxexitsavepat,
627 Vmxexitsavepreemptiontimer,
629 Vmxexitsecondaryctls,
631 Vmxflexpriority,
633 Vmxhltexit,
635 Vmxinsouts,
637 Vmxintrexit,
639 Vmxinvept,
641 Vmxinveptallcontext,
643 Vmxinveptsinglecontext,
645 Vmxinveptsinglecontextnoglobals,
647 Vmxinvlpgexit,
649 Vmxinvpcidexit,
651 Vmxinvvpid,
653 Vmxinvvpidallcontext,
655 Vmxinvvpidsingleaddr,
657 Vmxiobitmap,
659 Vmxioexit,
661 Vmxmonitorexit,
663 Vmxmovdrexit,
665 Vmxmsrbitmap,
667 Vmxmtf,
669 Vmxmwaitexit,
671 Vmxnestedexception,
673 Vmxnmiexit,
675 Vmxpagewalk4,
677 Vmxpagewalk5,
679 Vmxpauseexit,
681 Vmxple,
683 Vmxpml,
685 Vmxpostedintr,
687 Vmxpreemptiontimer,
689 Vmxrdpmcexit,
691 Vmxrdrandexit,
693 Vmxrdseedexit,
695 Vmxrdtscexit,
697 Vmxrdtscpexit,
699 Vmxsecondaryctls,
701 VmxshadowVmcs,
703 Vmxstorelma,
705 Vmxtruectls,
707 Vmxtscoffset,
709 Vmxtscscaling,
711 Vmxunrestrictedguest,
713 VmxVintrpending,
715 VmxVmfunc,
717 VmxVmwritevmexitfields,
719 VmxVnmi,
721 VmxVnmipending,
723 VmxVpid,
725 Vmxwbinvdexit,
727 Vmxxsaves,
729 Vmxzeroleninject,
731 Vnmi,
733 Vpclmulqdq,
735 Waitpkg,
737 Wbnoinvd,
739 Wdt,
741 Wrmsrns,
743 X2apic,
745 Xcrypt,
747 Xcrypten,
749 Xfd,
751 Xgetbv1,
753 Xop,
755 Xsave,
757 Xsavec,
759 Xsaveerptr,
761 Xsaveopt,
763 Xsaves,
765 Xstore,
767 Xstoreen,
769 Xtpr,
771 Zerofcsfds,
773}
774
775impl ToCommand for CPUFlag {
776 fn to_args(&self) -> Vec<String> {
777 let mut cmd = vec![];
778
779 match self {
780 CPUFlag::X3dnow => cmd.push("3dnow".to_string()),
781 CPUFlag::X3dnowext => cmd.push("3dnowext".to_string()),
782 CPUFlag::X3dnowprefetch => cmd.push("3dnowprefetch".to_string()),
783 CPUFlag::Abm => cmd.push("abm".to_string()),
784 CPUFlag::Ace2 => cmd.push("ace2".to_string()),
785 CPUFlag::Ace2en => cmd.push("ace2-en".to_string()),
786 CPUFlag::Acpi => cmd.push("acpi".to_string()),
787 CPUFlag::Adx => cmd.push("adx".to_string()),
788 CPUFlag::Aes => cmd.push("aes".to_string()),
789 CPUFlag::Amdnossb => cmd.push("amd-no-ssb".to_string()),
790 CPUFlag::Amdpsfd => cmd.push("amd-psfd".to_string()),
791 CPUFlag::Amdssbd => cmd.push("amd-ssbd".to_string()),
792 CPUFlag::Amdstibp => cmd.push("amd-stibp".to_string()),
793 CPUFlag::Amxbf16 => cmd.push("amx-bf16".to_string()),
794 CPUFlag::Amxcomplex => cmd.push("amx-complex".to_string()),
795 CPUFlag::Amxfp16 => cmd.push("amx-fp16".to_string()),
796 CPUFlag::Amxint8 => cmd.push("amx-int8".to_string()),
797 CPUFlag::Amxtile => cmd.push("amx-tile".to_string()),
798 CPUFlag::Apic => cmd.push("apic".to_string()),
799 CPUFlag::Arat => cmd.push("arat".to_string()),
800 CPUFlag::Archcapabilities => cmd.push("arch-capabilities".to_string()),
801 CPUFlag::Archlbr => cmd.push("arch-lbr".to_string()),
802 CPUFlag::Autoibrs => cmd.push("auto-ibrs".to_string()),
803 CPUFlag::Avic => cmd.push("avic".to_string()),
804 CPUFlag::Avx => cmd.push("avx".to_string()),
805 CPUFlag::Avxifma => cmd.push("avx-ifma".to_string()),
806 CPUFlag::Avxneconvert => cmd.push("avx-ne-convert".to_string()),
807 CPUFlag::AvxVnni => cmd.push("avx-vnni".to_string()),
808 CPUFlag::AvxVnniint16 => cmd.push("avx-vnni-int16".to_string()),
809 CPUFlag::AvxVnniint8 => cmd.push("avx-vnni-int8".to_string()),
810 CPUFlag::Avx10 => cmd.push("avx10".to_string()),
811 CPUFlag::Avx10128 => cmd.push("avx10-128".to_string()),
812 CPUFlag::Avx10256 => cmd.push("avx10-256".to_string()),
813 CPUFlag::Avx10512 => cmd.push("avx10-512".to_string()),
814 CPUFlag::Avx2 => cmd.push("avx2".to_string()),
815 CPUFlag::Avx5124fmaps => cmd.push("avx512-4fmaps".to_string()),
816 CPUFlag::Avx5124vnniw => cmd.push("avx512-4vnniw".to_string()),
817 CPUFlag::Avx512bf16 => cmd.push("avx512-bf16".to_string()),
818 CPUFlag::Avx512fp16 => cmd.push("avx512-fp16".to_string()),
819 CPUFlag::Avx512Vp2intersect => cmd.push("avx512-vp2intersect".to_string()),
820 CPUFlag::Avx512Vpopcntdq => cmd.push("avx512-vpopcntdq".to_string()),
821 CPUFlag::Avx512bitalg => cmd.push("avx512bitalg".to_string()),
822 CPUFlag::Avx512bw => cmd.push("avx512bw".to_string()),
823 CPUFlag::Avx512cd => cmd.push("avx512cd".to_string()),
824 CPUFlag::Avx512dq => cmd.push("avx512dq".to_string()),
825 CPUFlag::Avx512er => cmd.push("avx512er".to_string()),
826 CPUFlag::Avx512f => cmd.push("avx512f".to_string()),
827 CPUFlag::Avx512ifma => cmd.push("avx512ifma".to_string()),
828 CPUFlag::Avx512pf => cmd.push("avx512pf".to_string()),
829 CPUFlag::Avx512vbmi => cmd.push("avx512vbmi".to_string()),
830 CPUFlag::Avx512vbmi2 => cmd.push("avx512vbmi2".to_string()),
831 CPUFlag::Avx512vl => cmd.push("avx512vl".to_string()),
832 CPUFlag::Avx512vnni => cmd.push("avx512vnni".to_string()),
833 CPUFlag::Bhictrl => cmd.push("bhi-ctrl".to_string()),
834 CPUFlag::Bhino => cmd.push("bhi-no".to_string()),
835 CPUFlag::Bmi1 => cmd.push("bmi1".to_string()),
836 CPUFlag::Bmi2 => cmd.push("bmi2".to_string()),
837 CPUFlag::Buslockdetect => cmd.push("bus-lock-detect".to_string()),
838 CPUFlag::Cid => cmd.push("cid".to_string()),
839 CPUFlag::Cldemote => cmd.push("cldemote".to_string()),
840 CPUFlag::Clflush => cmd.push("clflush".to_string()),
841 CPUFlag::Clflushopt => cmd.push("clflushopt".to_string()),
842 CPUFlag::Clwb => cmd.push("clwb".to_string()),
843 CPUFlag::Clzero => cmd.push("clzero".to_string()),
844 CPUFlag::Cmov => cmd.push("cmov".to_string()),
845 CPUFlag::Cmplegacy => cmd.push("cmp-legacy".to_string()),
846 CPUFlag::Cmpccxadd => cmd.push("cmpccxadd".to_string()),
847 CPUFlag::Corecapability => cmd.push("core-capability".to_string()),
848 CPUFlag::Cr8legacy => cmd.push("cr8legacy".to_string()),
849 CPUFlag::Cx16 => cmd.push("cx16".to_string()),
850 CPUFlag::Cx8 => cmd.push("cx8".to_string()),
851 CPUFlag::Dca => cmd.push("dca".to_string()),
852 CPUFlag::Ddpdu => cmd.push("ddpd-u".to_string()),
853 CPUFlag::De => cmd.push("de".to_string()),
854 CPUFlag::Decodeassists => cmd.push("decodeassists".to_string()),
855 CPUFlag::Ds => cmd.push("ds".to_string()),
856 CPUFlag::Dscpl => cmd.push("ds-cpl".to_string()),
857 CPUFlag::Dtes64 => cmd.push("dtes64".to_string()),
858 CPUFlag::Eraps => cmd.push("eraps".to_string()),
859 CPUFlag::Erms => cmd.push("erms".to_string()),
860 CPUFlag::Est => cmd.push("est".to_string()),
861 CPUFlag::Extapic => cmd.push("extapic".to_string()),
862 CPUFlag::F16c => cmd.push("f16c".to_string()),
863 CPUFlag::Fbclear => cmd.push("fb-clear".to_string()),
864 CPUFlag::Fbsdpno => cmd.push("fbsdp-no".to_string()),
865 CPUFlag::Fdpexcptnonly => cmd.push("fdp-excptn-only".to_string()),
866 CPUFlag::Flushl1d => cmd.push("flush-l1d".to_string()),
867 CPUFlag::Flushbyasid => cmd.push("flushbyasid".to_string()),
868 CPUFlag::Fma => cmd.push("fma".to_string()),
869 CPUFlag::Fma4 => cmd.push("fma4".to_string()),
870 CPUFlag::Fpu => cmd.push("fpu".to_string()),
871 CPUFlag::Fred => cmd.push("fred".to_string()),
872 CPUFlag::Fsgsbase => cmd.push("fsgsbase".to_string()),
873 CPUFlag::Fsrc => cmd.push("fsrc".to_string()),
874 CPUFlag::Fsrm => cmd.push("fsrm".to_string()),
875 CPUFlag::Fsrs => cmd.push("fsrs".to_string()),
876 CPUFlag::Fullwidthwrite => cmd.push("full-width-write".to_string()),
877 CPUFlag::Fxsr => cmd.push("fxsr".to_string()),
878 CPUFlag::Fxsropt => cmd.push("fxsr-opt".to_string()),
879 CPUFlag::Fzrm => cmd.push("fzrm".to_string()),
880 CPUFlag::Gdsno => cmd.push("gds-no".to_string()),
881 CPUFlag::Gfni => cmd.push("gfni".to_string()),
882 CPUFlag::Hle => cmd.push("hle".to_string()),
883 CPUFlag::Ht => cmd.push("ht".to_string()),
884 CPUFlag::Hypervisor => cmd.push("hypervisor".to_string()),
885 CPUFlag::Ia64 => cmd.push("ia64".to_string()),
886 CPUFlag::Ibpb => cmd.push("ibpb".to_string()),
887 CPUFlag::Ibpbbrtype => cmd.push("ibpb-brtype".to_string()),
888 CPUFlag::Ibrs => cmd.push("ibrs".to_string()),
889 CPUFlag::Ibrsall => cmd.push("ibrs-all".to_string()),
890 CPUFlag::Ibs => cmd.push("ibs".to_string()),
891 CPUFlag::Intelpsfd => cmd.push("intel-psfd".to_string()),
892 CPUFlag::Intelpt => cmd.push("intel-pt".to_string()),
893 CPUFlag::Intelptlip => cmd.push("intel-pt-lip".to_string()),
894 CPUFlag::Invpcid => cmd.push("invpcid".to_string()),
895 CPUFlag::Invtsc => cmd.push("invtsc".to_string()),
896 CPUFlag::Ipredctrl => cmd.push("ipred-ctrl".to_string()),
897 CPUFlag::Kvmasyncpf => cmd.push("kvm-asyncpf".to_string()),
898 CPUFlag::Kvmasyncpfint => cmd.push("kvm-asyncpf-int".to_string()),
899 CPUFlag::KvmasyncpfVmexit => cmd.push("kvm-asyncpf-vmexit".to_string()),
900 CPUFlag::Kvmhintdedicated => cmd.push("kvm-hint-dedicated".to_string()),
901 CPUFlag::Kvmmmu => cmd.push("kvm-mmu".to_string()),
902 CPUFlag::Kvmmsiextdestid => cmd.push("kvm-msi-ext-dest-id".to_string()),
903 CPUFlag::Kvmnopiodelay => cmd.push("kvm-nopiodelay".to_string()),
904 CPUFlag::Kvmpollcontrol => cmd.push("kvm-poll-control".to_string()),
905 CPUFlag::Kvmpveoi => cmd.push("kvm-pv-eoi".to_string()),
906 CPUFlag::Kvmpvipi => cmd.push("kvm-pv-ipi".to_string()),
907 CPUFlag::Kvmpvschedyield => cmd.push("kvm-pv-sched-yield".to_string()),
908 CPUFlag::Kvmpvtlbflush => cmd.push("kvm-pv-tlb-flush".to_string()),
909 CPUFlag::Kvmpvunhalt => cmd.push("kvm-pv-unhalt".to_string()),
910 CPUFlag::Kvmstealtime => cmd.push("kvm-steal-time".to_string()),
911 CPUFlag::Kvmclock => cmd.push("kvmclock".to_string()),
912 CPUFlag::Kvmclockstablebit => cmd.push("kvmclock-stable-bit".to_string()),
913 CPUFlag::La57 => cmd.push("la57".to_string()),
914 CPUFlag::Lahflm => cmd.push("lahf-lm".to_string()),
915 CPUFlag::Lam => cmd.push("lam".to_string()),
916 CPUFlag::Lbrv => cmd.push("lbrv".to_string()),
917 CPUFlag::Lfencealwaysserializing => cmd.push("lfence-always-serializing".to_string()),
918 CPUFlag::Lkgs => cmd.push("lkgs".to_string()),
919 CPUFlag::Lm => cmd.push("lm".to_string()),
920 CPUFlag::Lwp => cmd.push("lwp".to_string()),
921 CPUFlag::Mca => cmd.push("mca".to_string()),
922 CPUFlag::Mcdtno => cmd.push("mcdt-no".to_string()),
923 CPUFlag::Mce => cmd.push("mce".to_string()),
924 CPUFlag::Mdclear => cmd.push("md-clear".to_string()),
925 CPUFlag::Mdsno => cmd.push("mds-no".to_string()),
926 CPUFlag::Misalignsse => cmd.push("misalignsse".to_string()),
927 CPUFlag::Mmx => cmd.push("mmx".to_string()),
928 CPUFlag::Mmxext => cmd.push("mmxext".to_string()),
929 CPUFlag::Monitor => cmd.push("monitor".to_string()),
930 CPUFlag::Movbe => cmd.push("movbe".to_string()),
931 CPUFlag::Movdir64b => cmd.push("movdir64b".to_string()),
932 CPUFlag::Movdiri => cmd.push("movdiri".to_string()),
933 CPUFlag::Mpx => cmd.push("mpx".to_string()),
934 CPUFlag::Msr => cmd.push("msr".to_string()),
935 CPUFlag::Mtrr => cmd.push("mtrr".to_string()),
936 CPUFlag::Nonesteddatabp => cmd.push("no-nested-data-bp".to_string()),
937 CPUFlag::Nodeidmsr => cmd.push("nodeid-msr".to_string()),
938 CPUFlag::Npt => cmd.push("npt".to_string()),
939 CPUFlag::Nripsave => cmd.push("nrip-save".to_string()),
940 CPUFlag::Nullselclrbase => cmd.push("null-sel-clr-base".to_string()),
941 CPUFlag::Nx => cmd.push("nx".to_string()),
942 CPUFlag::Osvw => cmd.push("osvw".to_string()),
943 CPUFlag::Overflowrecov => cmd.push("overflow-recov".to_string()),
944 CPUFlag::Pae => cmd.push("pae".to_string()),
945 CPUFlag::Pat => cmd.push("pat".to_string()),
946 CPUFlag::Pausefilter => cmd.push("pause-filter".to_string()),
947 CPUFlag::Pbe => cmd.push("pbe".to_string()),
948 CPUFlag::Pbrsbno => cmd.push("pbrsb-no".to_string()),
949 CPUFlag::Pcid => cmd.push("pcid".to_string()),
950 CPUFlag::Pclmulqdq => cmd.push("pclmulqdq".to_string()),
951 CPUFlag::Pcommit => cmd.push("pcommit".to_string()),
952 CPUFlag::Pdcm => cmd.push("pdcm".to_string()),
953 CPUFlag::Pdpe1gb => cmd.push("pdpe1gb".to_string()),
954 CPUFlag::Perfctrcore => cmd.push("perfctr-core".to_string()),
955 CPUFlag::Perfctrnb => cmd.push("perfctr-nb".to_string()),
956 CPUFlag::PerfmonV2 => cmd.push("perfmon-v2".to_string()),
957 CPUFlag::Pfthreshold => cmd.push("pfthreshold".to_string()),
958 CPUFlag::Pge => cmd.push("pge".to_string()),
959 CPUFlag::Phe => cmd.push("phe".to_string()),
960 CPUFlag::Pheen => cmd.push("phe-en".to_string()),
961 CPUFlag::Pks => cmd.push("pks".to_string()),
962 CPUFlag::Pku => cmd.push("pku".to_string()),
963 CPUFlag::Pmm => cmd.push("pmm".to_string()),
964 CPUFlag::Pmmen => cmd.push("pmm-en".to_string()),
965 CPUFlag::Pn => cmd.push("pn".to_string()),
966 CPUFlag::Pni => cmd.push("pni".to_string()),
967 CPUFlag::Popcnt => cmd.push("popcnt".to_string()),
968 CPUFlag::Prefetchiti => cmd.push("prefetchiti".to_string()),
969 CPUFlag::Pschangemcno => cmd.push("pschange-mc-no".to_string()),
970 CPUFlag::Psdpno => cmd.push("psdp-no".to_string()),
971 CPUFlag::Pse => cmd.push("pse".to_string()),
972 CPUFlag::Pse36 => cmd.push("pse36".to_string()),
973 CPUFlag::Rdctlno => cmd.push("rdctl-no".to_string()),
974 CPUFlag::Rdpid => cmd.push("rdpid".to_string()),
975 CPUFlag::Rdrand => cmd.push("rdrand".to_string()),
976 CPUFlag::Rdseed => cmd.push("rdseed".to_string()),
977 CPUFlag::Rdtscp => cmd.push("rdtscp".to_string()),
978 CPUFlag::Rfdsclear => cmd.push("rfds-clear".to_string()),
979 CPUFlag::Rfdsno => cmd.push("rfds-no".to_string()),
980 CPUFlag::Rrsbactrl => cmd.push("rrsba-ctrl".to_string()),
981 CPUFlag::Rsba => cmd.push("rsba".to_string()),
982 CPUFlag::Rtm => cmd.push("rtm".to_string()),
983 CPUFlag::Sbdrssdpno => cmd.push("sbdr-ssdp-no".to_string()),
984 CPUFlag::Sbpb => cmd.push("sbpb".to_string()),
985 CPUFlag::Sep => cmd.push("sep".to_string()),
986 CPUFlag::Serialize => cmd.push("serialize".to_string()),
987 CPUFlag::Sgx => cmd.push("sgx".to_string()),
988 CPUFlag::Sgxaexnotify => cmd.push("sgx-aex-notify".to_string()),
989 CPUFlag::Sgxdebug => cmd.push("sgx-debug".to_string()),
990 CPUFlag::Sgxedeccssa => cmd.push("sgx-edeccssa".to_string()),
991 CPUFlag::Sgxexinfo => cmd.push("sgx-exinfo".to_string()),
992 CPUFlag::Sgxkss => cmd.push("sgx-kss".to_string()),
993 CPUFlag::Sgxmode64 => cmd.push("sgx-mode64".to_string()),
994 CPUFlag::Sgxprovisionkey => cmd.push("sgx-provisionkey".to_string()),
995 CPUFlag::Sgxtokenkey => cmd.push("sgx-tokenkey".to_string()),
996 CPUFlag::Sgx1 => cmd.push("sgx1".to_string()),
997 CPUFlag::Sgx2 => cmd.push("sgx2".to_string()),
998 CPUFlag::Sgxlc => cmd.push("sgxlc".to_string()),
999 CPUFlag::Shani => cmd.push("sha-ni".to_string()),
1000 CPUFlag::Sha512 => cmd.push("sha512".to_string()),
1001 CPUFlag::Skinit => cmd.push("skinit".to_string()),
1002 CPUFlag::Skipl1dflVmentry => cmd.push("skip-l1dfl-vmentry".to_string()),
1003 CPUFlag::Sm3 => cmd.push("sm3".to_string()),
1004 CPUFlag::Sm4 => cmd.push("sm4".to_string()),
1005 CPUFlag::Smap => cmd.push("smap".to_string()),
1006 CPUFlag::Smep => cmd.push("smep".to_string()),
1007 CPUFlag::Smx => cmd.push("smx".to_string()),
1008 CPUFlag::Specctrl => cmd.push("spec-ctrl".to_string()),
1009 CPUFlag::Splitlockdetect => cmd.push("split-lock-detect".to_string()),
1010 CPUFlag::Srsono => cmd.push("srso-no".to_string()),
1011 CPUFlag::Srsouserkernelno => cmd.push("srso-user-kernel-no".to_string()),
1012 CPUFlag::Ss => cmd.push("ss".to_string()),
1013 CPUFlag::Ssbno => cmd.push("ssb-no".to_string()),
1014 CPUFlag::Ssbd => cmd.push("ssbd".to_string()),
1015 CPUFlag::Sse => cmd.push("sse".to_string()),
1016 CPUFlag::Sse2 => cmd.push("sse2".to_string()),
1017 CPUFlag::Sse4_1 => cmd.push("sse4.1".to_string()),
1018 CPUFlag::Sse4_2 => cmd.push("sse4.2".to_string()),
1019 CPUFlag::Sse4a => cmd.push("sse4a".to_string()),
1020 CPUFlag::Ssse3 => cmd.push("ssse3".to_string()),
1021 CPUFlag::Stibp => cmd.push("stibp".to_string()),
1022 CPUFlag::Stibpalwayson => cmd.push("stibp-always-on".to_string()),
1023 CPUFlag::Succor => cmd.push("succor".to_string()),
1024 CPUFlag::Svm => cmd.push("svm".to_string()),
1025 CPUFlag::Svmlock => cmd.push("svm-lock".to_string()),
1026 CPUFlag::Svmeaddrchk => cmd.push("svme-addr-chk".to_string()),
1027 CPUFlag::Syscall => cmd.push("syscall".to_string()),
1028 CPUFlag::Taano => cmd.push("taa-no".to_string()),
1029 CPUFlag::Tbm => cmd.push("tbm".to_string()),
1030 CPUFlag::Tce => cmd.push("tce".to_string()),
1031 CPUFlag::Tm => cmd.push("tm".to_string()),
1032 CPUFlag::Tm2 => cmd.push("tm2".to_string()),
1033 CPUFlag::Topoext => cmd.push("topoext".to_string()),
1034 CPUFlag::Tsc => cmd.push("tsc".to_string()),
1035 CPUFlag::Tscadjust => cmd.push("tsc-adjust".to_string()),
1036 CPUFlag::Tscdeadline => cmd.push("tsc-deadline".to_string()),
1037 CPUFlag::Tscscale => cmd.push("tsc-scale".to_string()),
1038 CPUFlag::Tsxctrl => cmd.push("tsx-ctrl".to_string()),
1039 CPUFlag::Tsxldtrk => cmd.push("tsx-ldtrk".to_string()),
1040 CPUFlag::Umip => cmd.push("umip".to_string()),
1041 CPUFlag::VVmsavevmload => cmd.push("v-vmsave-vmload".to_string()),
1042 CPUFlag::Vaes => cmd.push("vaes".to_string()),
1043 CPUFlag::Vgif => cmd.push("vgif".to_string()),
1044 CPUFlag::Virtssbd => cmd.push("virt-ssbd".to_string()),
1045 CPUFlag::Vmcbclean => cmd.push("vmcb-clean".to_string()),
1046 CPUFlag::Vme => cmd.push("vme".to_string()),
1047 CPUFlag::Vmx => cmd.push("vmx".to_string()),
1048 CPUFlag::Vmxactivityhlt => cmd.push("vmx-activity-hlt".to_string()),
1049 CPUFlag::Vmxactivityshutdown => cmd.push("vmx-activity-shutdown".to_string()),
1050 CPUFlag::Vmxactivitywaitsipi => cmd.push("vmx-activity-wait-sipi".to_string()),
1051 CPUFlag::Vmxanyerrcode => cmd.push("vmx-any-errcode".to_string()),
1052 CPUFlag::Vmxapicvregister => cmd.push("vmx-apicv-register".to_string()),
1053 CPUFlag::VmxapicvVid => cmd.push("vmx-apicv-vid".to_string()),
1054 CPUFlag::Vmxapicvx2apic => cmd.push("vmx-apicv-x2apic".to_string()),
1055 CPUFlag::Vmxapicvxapic => cmd.push("vmx-apicv-xapic".to_string()),
1056 CPUFlag::Vmxcr3loadnoexit => cmd.push("vmx-cr3-load-noexit".to_string()),
1057 CPUFlag::Vmxcr3storenoexit => cmd.push("vmx-cr3-store-noexit".to_string()),
1058 CPUFlag::Vmxcr8loadexit => cmd.push("vmx-cr8-load-exit".to_string()),
1059 CPUFlag::Vmxcr8storeexit => cmd.push("vmx-cr8-store-exit".to_string()),
1060 CPUFlag::Vmxdescexit => cmd.push("vmx-desc-exit".to_string()),
1061 CPUFlag::Vmxenableuserwaitpause => cmd.push("vmx-enable-user-wait-pause".to_string()),
1062 CPUFlag::Vmxenclsexit => cmd.push("vmx-encls-exit".to_string()),
1063 CPUFlag::Vmxentryia32emode => cmd.push("vmx-entry-ia32e-mode".to_string()),
1064 CPUFlag::Vmxentryloadbndcfgs => cmd.push("vmx-entry-load-bndcfgs".to_string()),
1065 CPUFlag::Vmxentryloadefer => cmd.push("vmx-entry-load-efer".to_string()),
1066 CPUFlag::Vmxentryloadfred => cmd.push("vmx-entry-load-fred".to_string()),
1067 CPUFlag::Vmxentryloadpat => cmd.push("vmx-entry-load-pat".to_string()),
1068 CPUFlag::Vmxentryloadperfglobalctrl => cmd.push("vmx-entry-load-perf-global-ctrl".to_string()),
1069 CPUFlag::Vmxentryloadpkrs => cmd.push("vmx-entry-load-pkrs".to_string()),
1070 CPUFlag::Vmxentryloadrtitctl => cmd.push("vmx-entry-load-rtit-ctl".to_string()),
1071 CPUFlag::Vmxentrynoloaddebugctl => cmd.push("vmx-entry-noload-debugctl".to_string()),
1072 CPUFlag::Vmxept => cmd.push("vmx-ept".to_string()),
1073 CPUFlag::Vmxept1gb => cmd.push("vmx-ept-1gb".to_string()),
1074 CPUFlag::Vmxept2mb => cmd.push("vmx-ept-2mb".to_string()),
1075 CPUFlag::Vmxeptadvancedexitinfo => cmd.push("vmx-ept-advanced-exitinfo".to_string()),
1076 CPUFlag::Vmxeptexeconly => cmd.push("vmx-ept-execonly".to_string()),
1077 CPUFlag::Vmxeptad => cmd.push("vmx-eptad".to_string()),
1078 CPUFlag::Vmxeptpswitching => cmd.push("vmx-eptp-switching".to_string()),
1079 CPUFlag::Vmxexitackintr => cmd.push("vmx-exit-ack-intr".to_string()),
1080 CPUFlag::Vmxexitclearbndcfgs => cmd.push("vmx-exit-clear-bndcfgs".to_string()),
1081 CPUFlag::Vmxexitclearrtitctl => cmd.push("vmx-exit-clear-rtit-ctl".to_string()),
1082 CPUFlag::Vmxexitloadefer => cmd.push("vmx-exit-load-efer".to_string()),
1083 CPUFlag::Vmxexitloadpat => cmd.push("vmx-exit-load-pat".to_string()),
1084 CPUFlag::Vmxexitloadperfglobalctrl => cmd.push("vmx-exit-load-perf-global-ctrl".to_string()),
1085 CPUFlag::Vmxexitloadpkrs => cmd.push("vmx-exit-load-pkrs".to_string()),
1086 CPUFlag::Vmxexitnosavedebugctl => cmd.push("vmx-exit-nosave-debugctl".to_string()),
1087 CPUFlag::Vmxexitsaveefer => cmd.push("vmx-exit-save-efer".to_string()),
1088 CPUFlag::Vmxexitsavepat => cmd.push("vmx-exit-save-pat".to_string()),
1089 CPUFlag::Vmxexitsavepreemptiontimer => cmd.push("vmx-exit-save-preemption-timer".to_string()),
1090 CPUFlag::Vmxexitsecondaryctls => cmd.push("vmx-exit-secondary-ctls".to_string()),
1091 CPUFlag::Vmxflexpriority => cmd.push("vmx-flexpriority".to_string()),
1092 CPUFlag::Vmxhltexit => cmd.push("vmx-hlt-exit".to_string()),
1093 CPUFlag::Vmxinsouts => cmd.push("vmx-ins-outs".to_string()),
1094 CPUFlag::Vmxintrexit => cmd.push("vmx-intr-exit".to_string()),
1095 CPUFlag::Vmxinvept => cmd.push("vmx-invept".to_string()),
1096 CPUFlag::Vmxinveptallcontext => cmd.push("vmx-invept-all-context".to_string()),
1097 CPUFlag::Vmxinveptsinglecontext => cmd.push("vmx-invept-single-context".to_string()),
1098 CPUFlag::Vmxinveptsinglecontextnoglobals => cmd.push("vmx-invept-single-context-noglobals".to_string()),
1099 CPUFlag::Vmxinvlpgexit => cmd.push("vmx-invlpg-exit".to_string()),
1100 CPUFlag::Vmxinvpcidexit => cmd.push("vmx-invpcid-exit".to_string()),
1101 CPUFlag::Vmxinvvpid => cmd.push("vmx-invvpid".to_string()),
1102 CPUFlag::Vmxinvvpidallcontext => cmd.push("vmx-invvpid-all-context".to_string()),
1103 CPUFlag::Vmxinvvpidsingleaddr => cmd.push("vmx-invvpid-single-addr".to_string()),
1104 CPUFlag::Vmxiobitmap => cmd.push("vmx-io-bitmap".to_string()),
1105 CPUFlag::Vmxioexit => cmd.push("vmx-io-exit".to_string()),
1106 CPUFlag::Vmxmonitorexit => cmd.push("vmx-monitor-exit".to_string()),
1107 CPUFlag::Vmxmovdrexit => cmd.push("vmx-movdr-exit".to_string()),
1108 CPUFlag::Vmxmsrbitmap => cmd.push("vmx-msr-bitmap".to_string()),
1109 CPUFlag::Vmxmtf => cmd.push("vmx-mtf".to_string()),
1110 CPUFlag::Vmxmwaitexit => cmd.push("vmx-mwait-exit".to_string()),
1111 CPUFlag::Vmxnestedexception => cmd.push("vmx-nested-exception".to_string()),
1112 CPUFlag::Vmxnmiexit => cmd.push("vmx-nmi-exit".to_string()),
1113 CPUFlag::Vmxpagewalk4 => cmd.push("vmx-page-walk-4".to_string()),
1114 CPUFlag::Vmxpagewalk5 => cmd.push("vmx-page-walk-5".to_string()),
1115 CPUFlag::Vmxpauseexit => cmd.push("vmx-pause-exit".to_string()),
1116 CPUFlag::Vmxple => cmd.push("vmx-ple".to_string()),
1117 CPUFlag::Vmxpml => cmd.push("vmx-pml".to_string()),
1118 CPUFlag::Vmxpostedintr => cmd.push("vmx-posted-intr".to_string()),
1119 CPUFlag::Vmxpreemptiontimer => cmd.push("vmx-preemption-timer".to_string()),
1120 CPUFlag::Vmxrdpmcexit => cmd.push("vmx-rdpmc-exit".to_string()),
1121 CPUFlag::Vmxrdrandexit => cmd.push("vmx-rdrand-exit".to_string()),
1122 CPUFlag::Vmxrdseedexit => cmd.push("vmx-rdseed-exit".to_string()),
1123 CPUFlag::Vmxrdtscexit => cmd.push("vmx-rdtsc-exit".to_string()),
1124 CPUFlag::Vmxrdtscpexit => cmd.push("vmx-rdtscp-exit".to_string()),
1125 CPUFlag::Vmxsecondaryctls => cmd.push("vmx-secondary-ctls".to_string()),
1126 CPUFlag::VmxshadowVmcs => cmd.push("vmx-shadow-vmcs".to_string()),
1127 CPUFlag::Vmxstorelma => cmd.push("vmx-store-lma".to_string()),
1128 CPUFlag::Vmxtruectls => cmd.push("vmx-true-ctls".to_string()),
1129 CPUFlag::Vmxtscoffset => cmd.push("vmx-tsc-offset".to_string()),
1130 CPUFlag::Vmxtscscaling => cmd.push("vmx-tsc-scaling".to_string()),
1131 CPUFlag::Vmxunrestrictedguest => cmd.push("vmx-unrestricted-guest".to_string()),
1132 CPUFlag::VmxVintrpending => cmd.push("vmx-vintr-pending".to_string()),
1133 CPUFlag::VmxVmfunc => cmd.push("vmx-vmfunc".to_string()),
1134 CPUFlag::VmxVmwritevmexitfields => cmd.push("vmx-vmwrite-vmexit-fields".to_string()),
1135 CPUFlag::VmxVnmi => cmd.push("vmx-vnmi".to_string()),
1136 CPUFlag::VmxVnmipending => cmd.push("vmx-vnmi-pending".to_string()),
1137 CPUFlag::VmxVpid => cmd.push("vmx-vpid".to_string()),
1138 CPUFlag::Vmxwbinvdexit => cmd.push("vmx-wbinvd-exit".to_string()),
1139 CPUFlag::Vmxxsaves => cmd.push("vmx-xsaves".to_string()),
1140 CPUFlag::Vmxzeroleninject => cmd.push("vmx-zero-len-inject".to_string()),
1141 CPUFlag::Vnmi => cmd.push("vnmi".to_string()),
1142 CPUFlag::Vpclmulqdq => cmd.push("vpclmulqdq".to_string()),
1143 CPUFlag::Waitpkg => cmd.push("waitpkg".to_string()),
1144 CPUFlag::Wbnoinvd => cmd.push("wbnoinvd".to_string()),
1145 CPUFlag::Wdt => cmd.push("wdt".to_string()),
1146 CPUFlag::Wrmsrns => cmd.push("wrmsrns".to_string()),
1147 CPUFlag::X2apic => cmd.push("x2apic".to_string()),
1148 CPUFlag::Xcrypt => cmd.push("xcrypt".to_string()),
1149 CPUFlag::Xcrypten => cmd.push("xcrypt-en".to_string()),
1150 CPUFlag::Xfd => cmd.push("xfd".to_string()),
1151 CPUFlag::Xgetbv1 => cmd.push("xgetbv1".to_string()),
1152 CPUFlag::Xop => cmd.push("xop".to_string()),
1153 CPUFlag::Xsave => cmd.push("xsave".to_string()),
1154 CPUFlag::Xsavec => cmd.push("xsavec".to_string()),
1155 CPUFlag::Xsaveerptr => cmd.push("xsaveerptr".to_string()),
1156 CPUFlag::Xsaveopt => cmd.push("xsaveopt".to_string()),
1157 CPUFlag::Xsaves => cmd.push("xsaves".to_string()),
1158 CPUFlag::Xstore => cmd.push("xstore".to_string()),
1159 CPUFlag::Xstoreen => cmd.push("xstore-en".to_string()),
1160 CPUFlag::Xtpr => cmd.push("xtpr".to_string()),
1161 CPUFlag::Zerofcsfds => cmd.push("zero-fcs-fds".to_string()),
1162 }
1163 cmd
1164 }
1165}
1166
1167impl ToArg for CPUFlag {
1168 fn to_arg(&self) -> &str {
1169 match self {
1170 CPUFlag::X3dnow => "3dnow",
1171 CPUFlag::X3dnowext => "3dnowext",
1172 CPUFlag::X3dnowprefetch => "3dnowprefetch",
1173 CPUFlag::Abm => "abm",
1174 CPUFlag::Ace2 => "ace2",
1175 CPUFlag::Ace2en => "ace2-en",
1176 CPUFlag::Acpi => "acpi",
1177 CPUFlag::Adx => "adx",
1178 CPUFlag::Aes => "aes",
1179 CPUFlag::Amdnossb => "amd-no-ssb",
1180 CPUFlag::Amdpsfd => "amd-psfd",
1181 CPUFlag::Amdssbd => "amd-ssbd",
1182 CPUFlag::Amdstibp => "amd-stibp",
1183 CPUFlag::Amxbf16 => "amx-bf16",
1184 CPUFlag::Amxcomplex => "amx-complex",
1185 CPUFlag::Amxfp16 => "amx-fp16",
1186 CPUFlag::Amxint8 => "amx-int8",
1187 CPUFlag::Amxtile => "amx-tile",
1188 CPUFlag::Apic => "apic",
1189 CPUFlag::Arat => "arat",
1190 CPUFlag::Archcapabilities => "arch-capabilities",
1191 CPUFlag::Archlbr => "arch-lbr",
1192 CPUFlag::Autoibrs => "auto-ibrs",
1193 CPUFlag::Avic => "avic",
1194 CPUFlag::Avx => "avx",
1195 CPUFlag::Avxifma => "avx-ifma",
1196 CPUFlag::Avxneconvert => "avx-ne-convert",
1197 CPUFlag::AvxVnni => "avx-vnni",
1198 CPUFlag::AvxVnniint16 => "avx-vnni-int16",
1199 CPUFlag::AvxVnniint8 => "avx-vnni-int8",
1200 CPUFlag::Avx10 => "avx10",
1201 CPUFlag::Avx10128 => "avx10-128",
1202 CPUFlag::Avx10256 => "avx10-256",
1203 CPUFlag::Avx10512 => "avx10-512",
1204 CPUFlag::Avx2 => "avx2",
1205 CPUFlag::Avx5124fmaps => "avx512-4fmaps",
1206 CPUFlag::Avx5124vnniw => "avx512-4vnniw",
1207 CPUFlag::Avx512bf16 => "avx512-bf16",
1208 CPUFlag::Avx512fp16 => "avx512-fp16",
1209 CPUFlag::Avx512Vp2intersect => "avx512-vp2intersect",
1210 CPUFlag::Avx512Vpopcntdq => "avx512-vpopcntdq",
1211 CPUFlag::Avx512bitalg => "avx512bitalg",
1212 CPUFlag::Avx512bw => "avx512bw",
1213 CPUFlag::Avx512cd => "avx512cd",
1214 CPUFlag::Avx512dq => "avx512dq",
1215 CPUFlag::Avx512er => "avx512er",
1216 CPUFlag::Avx512f => "avx512f",
1217 CPUFlag::Avx512ifma => "avx512ifma",
1218 CPUFlag::Avx512pf => "avx512pf",
1219 CPUFlag::Avx512vbmi => "avx512vbmi",
1220 CPUFlag::Avx512vbmi2 => "avx512vbmi2",
1221 CPUFlag::Avx512vl => "avx512vl",
1222 CPUFlag::Avx512vnni => "avx512vnni",
1223 CPUFlag::Bhictrl => "bhi-ctrl",
1224 CPUFlag::Bhino => "bhi-no",
1225 CPUFlag::Bmi1 => "bmi1",
1226 CPUFlag::Bmi2 => "bmi2",
1227 CPUFlag::Buslockdetect => "bus-lock-detect",
1228 CPUFlag::Cid => "cid",
1229 CPUFlag::Cldemote => "cldemote",
1230 CPUFlag::Clflush => "clflush",
1231 CPUFlag::Clflushopt => "clflushopt",
1232 CPUFlag::Clwb => "clwb",
1233 CPUFlag::Clzero => "clzero",
1234 CPUFlag::Cmov => "cmov",
1235 CPUFlag::Cmplegacy => "cmp-legacy",
1236 CPUFlag::Cmpccxadd => "cmpccxadd",
1237 CPUFlag::Corecapability => "core-capability",
1238 CPUFlag::Cr8legacy => "cr8legacy",
1239 CPUFlag::Cx16 => "cx16",
1240 CPUFlag::Cx8 => "cx8",
1241 CPUFlag::Dca => "dca",
1242 CPUFlag::Ddpdu => "ddpd-u",
1243 CPUFlag::De => "de",
1244 CPUFlag::Decodeassists => "decodeassists",
1245 CPUFlag::Ds => "ds",
1246 CPUFlag::Dscpl => "ds-cpl",
1247 CPUFlag::Dtes64 => "dtes64",
1248 CPUFlag::Eraps => "eraps",
1249 CPUFlag::Erms => "erms",
1250 CPUFlag::Est => "est",
1251 CPUFlag::Extapic => "extapic",
1252 CPUFlag::F16c => "f16c",
1253 CPUFlag::Fbclear => "fb-clear",
1254 CPUFlag::Fbsdpno => "fbsdp-no",
1255 CPUFlag::Fdpexcptnonly => "fdp-excptn-only",
1256 CPUFlag::Flushl1d => "flush-l1d",
1257 CPUFlag::Flushbyasid => "flushbyasid",
1258 CPUFlag::Fma => "fma",
1259 CPUFlag::Fma4 => "fma4",
1260 CPUFlag::Fpu => "fpu",
1261 CPUFlag::Fred => "fred",
1262 CPUFlag::Fsgsbase => "fsgsbase",
1263 CPUFlag::Fsrc => "fsrc",
1264 CPUFlag::Fsrm => "fsrm",
1265 CPUFlag::Fsrs => "fsrs",
1266 CPUFlag::Fullwidthwrite => "full-width-write",
1267 CPUFlag::Fxsr => "fxsr",
1268 CPUFlag::Fxsropt => "fxsr-opt",
1269 CPUFlag::Fzrm => "fzrm",
1270 CPUFlag::Gdsno => "gds-no",
1271 CPUFlag::Gfni => "gfni",
1272 CPUFlag::Hle => "hle",
1273 CPUFlag::Ht => "ht",
1274 CPUFlag::Hypervisor => "hypervisor",
1275 CPUFlag::Ia64 => "ia64",
1276 CPUFlag::Ibpb => "ibpb",
1277 CPUFlag::Ibpbbrtype => "ibpb-brtype",
1278 CPUFlag::Ibrs => "ibrs",
1279 CPUFlag::Ibrsall => "ibrs-all",
1280 CPUFlag::Ibs => "ibs",
1281 CPUFlag::Intelpsfd => "intel-psfd",
1282 CPUFlag::Intelpt => "intel-pt",
1283 CPUFlag::Intelptlip => "intel-pt-lip",
1284 CPUFlag::Invpcid => "invpcid",
1285 CPUFlag::Invtsc => "invtsc",
1286 CPUFlag::Ipredctrl => "ipred-ctrl",
1287 CPUFlag::Kvmasyncpf => "kvm-asyncpf",
1288 CPUFlag::Kvmasyncpfint => "kvm-asyncpf-int",
1289 CPUFlag::KvmasyncpfVmexit => "kvm-asyncpf-vmexit",
1290 CPUFlag::Kvmhintdedicated => "kvm-hint-dedicated",
1291 CPUFlag::Kvmmmu => "kvm-mmu",
1292 CPUFlag::Kvmmsiextdestid => "kvm-msi-ext-dest-id",
1293 CPUFlag::Kvmnopiodelay => "kvm-nopiodelay",
1294 CPUFlag::Kvmpollcontrol => "kvm-poll-control",
1295 CPUFlag::Kvmpveoi => "kvm-pv-eoi",
1296 CPUFlag::Kvmpvipi => "kvm-pv-ipi",
1297 CPUFlag::Kvmpvschedyield => "kvm-pv-sched-yield",
1298 CPUFlag::Kvmpvtlbflush => "kvm-pv-tlb-flush",
1299 CPUFlag::Kvmpvunhalt => "kvm-pv-unhalt",
1300 CPUFlag::Kvmstealtime => "kvm-steal-time",
1301 CPUFlag::Kvmclock => "kvmclock",
1302 CPUFlag::Kvmclockstablebit => "kvmclock-stable-bit",
1303 CPUFlag::La57 => "la57",
1304 CPUFlag::Lahflm => "lahf-lm",
1305 CPUFlag::Lam => "lam",
1306 CPUFlag::Lbrv => "lbrv",
1307 CPUFlag::Lfencealwaysserializing => "lfence-always-serializing",
1308 CPUFlag::Lkgs => "lkgs",
1309 CPUFlag::Lm => "lm",
1310 CPUFlag::Lwp => "lwp",
1311 CPUFlag::Mca => "mca",
1312 CPUFlag::Mcdtno => "mcdt-no",
1313 CPUFlag::Mce => "mce",
1314 CPUFlag::Mdclear => "md-clear",
1315 CPUFlag::Mdsno => "mds-no",
1316 CPUFlag::Misalignsse => "misalignsse",
1317 CPUFlag::Mmx => "mmx",
1318 CPUFlag::Mmxext => "mmxext",
1319 CPUFlag::Monitor => "monitor",
1320 CPUFlag::Movbe => "movbe",
1321 CPUFlag::Movdir64b => "movdir64b",
1322 CPUFlag::Movdiri => "movdiri",
1323 CPUFlag::Mpx => "mpx",
1324 CPUFlag::Msr => "msr",
1325 CPUFlag::Mtrr => "mtrr",
1326 CPUFlag::Nonesteddatabp => "no-nested-data-bp",
1327 CPUFlag::Nodeidmsr => "nodeid-msr",
1328 CPUFlag::Npt => "npt",
1329 CPUFlag::Nripsave => "nrip-save",
1330 CPUFlag::Nullselclrbase => "null-sel-clr-base",
1331 CPUFlag::Nx => "nx",
1332 CPUFlag::Osvw => "osvw",
1333 CPUFlag::Overflowrecov => "overflow-recov",
1334 CPUFlag::Pae => "pae",
1335 CPUFlag::Pat => "pat",
1336 CPUFlag::Pausefilter => "pause-filter",
1337 CPUFlag::Pbe => "pbe",
1338 CPUFlag::Pbrsbno => "pbrsb-no",
1339 CPUFlag::Pcid => "pcid",
1340 CPUFlag::Pclmulqdq => "pclmulqdq",
1341 CPUFlag::Pcommit => "pcommit",
1342 CPUFlag::Pdcm => "pdcm",
1343 CPUFlag::Pdpe1gb => "pdpe1gb",
1344 CPUFlag::Perfctrcore => "perfctr-core",
1345 CPUFlag::Perfctrnb => "perfctr-nb",
1346 CPUFlag::PerfmonV2 => "perfmon-v2",
1347 CPUFlag::Pfthreshold => "pfthreshold",
1348 CPUFlag::Pge => "pge",
1349 CPUFlag::Phe => "phe",
1350 CPUFlag::Pheen => "phe-en",
1351 CPUFlag::Pks => "pks",
1352 CPUFlag::Pku => "pku",
1353 CPUFlag::Pmm => "pmm",
1354 CPUFlag::Pmmen => "pmm-en",
1355 CPUFlag::Pn => "pn",
1356 CPUFlag::Pni => "pni",
1357 CPUFlag::Popcnt => "popcnt",
1358 CPUFlag::Prefetchiti => "prefetchiti",
1359 CPUFlag::Pschangemcno => "pschange-mc-no",
1360 CPUFlag::Psdpno => "psdp-no",
1361 CPUFlag::Pse => "pse",
1362 CPUFlag::Pse36 => "pse36",
1363 CPUFlag::Rdctlno => "rdctl-no",
1364 CPUFlag::Rdpid => "rdpid",
1365 CPUFlag::Rdrand => "rdrand",
1366 CPUFlag::Rdseed => "rdseed",
1367 CPUFlag::Rdtscp => "rdtscp",
1368 CPUFlag::Rfdsclear => "rfds-clear",
1369 CPUFlag::Rfdsno => "rfds-no",
1370 CPUFlag::Rrsbactrl => "rrsba-ctrl",
1371 CPUFlag::Rsba => "rsba",
1372 CPUFlag::Rtm => "rtm",
1373 CPUFlag::Sbdrssdpno => "sbdr-ssdp-no",
1374 CPUFlag::Sbpb => "sbpb",
1375 CPUFlag::Sep => "sep",
1376 CPUFlag::Serialize => "serialize",
1377 CPUFlag::Sgx => "sgx",
1378 CPUFlag::Sgxaexnotify => "sgx-aex-notify",
1379 CPUFlag::Sgxdebug => "sgx-debug",
1380 CPUFlag::Sgxedeccssa => "sgx-edeccssa",
1381 CPUFlag::Sgxexinfo => "sgx-exinfo",
1382 CPUFlag::Sgxkss => "sgx-kss",
1383 CPUFlag::Sgxmode64 => "sgx-mode64",
1384 CPUFlag::Sgxprovisionkey => "sgx-provisionkey",
1385 CPUFlag::Sgxtokenkey => "sgx-tokenkey",
1386 CPUFlag::Sgx1 => "sgx1",
1387 CPUFlag::Sgx2 => "sgx2",
1388 CPUFlag::Sgxlc => "sgxlc",
1389 CPUFlag::Shani => "sha-ni",
1390 CPUFlag::Sha512 => "sha512",
1391 CPUFlag::Skinit => "skinit",
1392 CPUFlag::Skipl1dflVmentry => "skip-l1dfl-vmentry",
1393 CPUFlag::Sm3 => "sm3",
1394 CPUFlag::Sm4 => "sm4",
1395 CPUFlag::Smap => "smap",
1396 CPUFlag::Smep => "smep",
1397 CPUFlag::Smx => "smx",
1398 CPUFlag::Specctrl => "spec-ctrl",
1399 CPUFlag::Splitlockdetect => "split-lock-detect",
1400 CPUFlag::Srsono => "srso-no",
1401 CPUFlag::Srsouserkernelno => "srso-user-kernel-no",
1402 CPUFlag::Ss => "ss",
1403 CPUFlag::Ssbno => "ssb-no",
1404 CPUFlag::Ssbd => "ssbd",
1405 CPUFlag::Sse => "sse",
1406 CPUFlag::Sse2 => "sse2",
1407 CPUFlag::Sse4_1 => "sse4.1",
1408 CPUFlag::Sse4_2 => "sse4.2",
1409 CPUFlag::Sse4a => "sse4a",
1410 CPUFlag::Ssse3 => "ssse3",
1411 CPUFlag::Stibp => "stibp",
1412 CPUFlag::Stibpalwayson => "stibp-always-on",
1413 CPUFlag::Succor => "succor",
1414 CPUFlag::Svm => "svm",
1415 CPUFlag::Svmlock => "svm-lock",
1416 CPUFlag::Svmeaddrchk => "svme-addr-chk",
1417 CPUFlag::Syscall => "syscall",
1418 CPUFlag::Taano => "taa-no",
1419 CPUFlag::Tbm => "tbm",
1420 CPUFlag::Tce => "tce",
1421 CPUFlag::Tm => "tm",
1422 CPUFlag::Tm2 => "tm2",
1423 CPUFlag::Topoext => "topoext",
1424 CPUFlag::Tsc => "tsc",
1425 CPUFlag::Tscadjust => "tsc-adjust",
1426 CPUFlag::Tscdeadline => "tsc-deadline",
1427 CPUFlag::Tscscale => "tsc-scale",
1428 CPUFlag::Tsxctrl => "tsx-ctrl",
1429 CPUFlag::Tsxldtrk => "tsx-ldtrk",
1430 CPUFlag::Umip => "umip",
1431 CPUFlag::VVmsavevmload => "v-vmsave-vmload",
1432 CPUFlag::Vaes => "vaes",
1433 CPUFlag::Vgif => "vgif",
1434 CPUFlag::Virtssbd => "virt-ssbd",
1435 CPUFlag::Vmcbclean => "vmcb-clean",
1436 CPUFlag::Vme => "vme",
1437 CPUFlag::Vmx => "vmx",
1438 CPUFlag::Vmxactivityhlt => "vmx-activity-hlt",
1439 CPUFlag::Vmxactivityshutdown => "vmx-activity-shutdown",
1440 CPUFlag::Vmxactivitywaitsipi => "vmx-activity-wait-sipi",
1441 CPUFlag::Vmxanyerrcode => "vmx-any-errcode",
1442 CPUFlag::Vmxapicvregister => "vmx-apicv-register",
1443 CPUFlag::VmxapicvVid => "vmx-apicv-vid",
1444 CPUFlag::Vmxapicvx2apic => "vmx-apicv-x2apic",
1445 CPUFlag::Vmxapicvxapic => "vmx-apicv-xapic",
1446 CPUFlag::Vmxcr3loadnoexit => "vmx-cr3-load-noexit",
1447 CPUFlag::Vmxcr3storenoexit => "vmx-cr3-store-noexit",
1448 CPUFlag::Vmxcr8loadexit => "vmx-cr8-load-exit",
1449 CPUFlag::Vmxcr8storeexit => "vmx-cr8-store-exit",
1450 CPUFlag::Vmxdescexit => "vmx-desc-exit",
1451 CPUFlag::Vmxenableuserwaitpause => "vmx-enable-user-wait-pause",
1452 CPUFlag::Vmxenclsexit => "vmx-encls-exit",
1453 CPUFlag::Vmxentryia32emode => "vmx-entry-ia32e-mode",
1454 CPUFlag::Vmxentryloadbndcfgs => "vmx-entry-load-bndcfgs",
1455 CPUFlag::Vmxentryloadefer => "vmx-entry-load-efer",
1456 CPUFlag::Vmxentryloadfred => "vmx-entry-load-fred",
1457 CPUFlag::Vmxentryloadpat => "vmx-entry-load-pat",
1458 CPUFlag::Vmxentryloadperfglobalctrl => "vmx-entry-load-perf-global-ctrl",
1459 CPUFlag::Vmxentryloadpkrs => "vmx-entry-load-pkrs",
1460 CPUFlag::Vmxentryloadrtitctl => "vmx-entry-load-rtit-ctl",
1461 CPUFlag::Vmxentrynoloaddebugctl => "vmx-entry-noload-debugctl",
1462 CPUFlag::Vmxept => "vmx-ept",
1463 CPUFlag::Vmxept1gb => "vmx-ept-1gb",
1464 CPUFlag::Vmxept2mb => "vmx-ept-2mb",
1465 CPUFlag::Vmxeptadvancedexitinfo => "vmx-ept-advanced-exitinfo",
1466 CPUFlag::Vmxeptexeconly => "vmx-ept-execonly",
1467 CPUFlag::Vmxeptad => "vmx-eptad",
1468 CPUFlag::Vmxeptpswitching => "vmx-eptp-switching",
1469 CPUFlag::Vmxexitackintr => "vmx-exit-ack-intr",
1470 CPUFlag::Vmxexitclearbndcfgs => "vmx-exit-clear-bndcfgs",
1471 CPUFlag::Vmxexitclearrtitctl => "vmx-exit-clear-rtit-ctl",
1472 CPUFlag::Vmxexitloadefer => "vmx-exit-load-efer",
1473 CPUFlag::Vmxexitloadpat => "vmx-exit-load-pat",
1474 CPUFlag::Vmxexitloadperfglobalctrl => "vmx-exit-load-perf-global-ctrl",
1475 CPUFlag::Vmxexitloadpkrs => "vmx-exit-load-pkrs",
1476 CPUFlag::Vmxexitnosavedebugctl => "vmx-exit-nosave-debugctl",
1477 CPUFlag::Vmxexitsaveefer => "vmx-exit-save-efer",
1478 CPUFlag::Vmxexitsavepat => "vmx-exit-save-pat",
1479 CPUFlag::Vmxexitsavepreemptiontimer => "vmx-exit-save-preemption-timer",
1480 CPUFlag::Vmxexitsecondaryctls => "vmx-exit-secondary-ctls",
1481 CPUFlag::Vmxflexpriority => "vmx-flexpriority",
1482 CPUFlag::Vmxhltexit => "vmx-hlt-exit",
1483 CPUFlag::Vmxinsouts => "vmx-ins-outs",
1484 CPUFlag::Vmxintrexit => "vmx-intr-exit",
1485 CPUFlag::Vmxinvept => "vmx-invept",
1486 CPUFlag::Vmxinveptallcontext => "vmx-invept-all-context",
1487 CPUFlag::Vmxinveptsinglecontext => "vmx-invept-single-context",
1488 CPUFlag::Vmxinveptsinglecontextnoglobals => "vmx-invept-single-context-noglobals",
1489 CPUFlag::Vmxinvlpgexit => "vmx-invlpg-exit",
1490 CPUFlag::Vmxinvpcidexit => "vmx-invpcid-exit",
1491 CPUFlag::Vmxinvvpid => "vmx-invvpid",
1492 CPUFlag::Vmxinvvpidallcontext => "vmx-invvpid-all-context",
1493 CPUFlag::Vmxinvvpidsingleaddr => "vmx-invvpid-single-addr",
1494 CPUFlag::Vmxiobitmap => "vmx-io-bitmap",
1495 CPUFlag::Vmxioexit => "vmx-io-exit",
1496 CPUFlag::Vmxmonitorexit => "vmx-monitor-exit",
1497 CPUFlag::Vmxmovdrexit => "vmx-movdr-exit",
1498 CPUFlag::Vmxmsrbitmap => "vmx-msr-bitmap",
1499 CPUFlag::Vmxmtf => "vmx-mtf",
1500 CPUFlag::Vmxmwaitexit => "vmx-mwait-exit",
1501 CPUFlag::Vmxnestedexception => "vmx-nested-exception",
1502 CPUFlag::Vmxnmiexit => "vmx-nmi-exit",
1503 CPUFlag::Vmxpagewalk4 => "vmx-page-walk-4",
1504 CPUFlag::Vmxpagewalk5 => "vmx-page-walk-5",
1505 CPUFlag::Vmxpauseexit => "vmx-pause-exit",
1506 CPUFlag::Vmxple => "vmx-ple",
1507 CPUFlag::Vmxpml => "vmx-pml",
1508 CPUFlag::Vmxpostedintr => "vmx-posted-intr",
1509 CPUFlag::Vmxpreemptiontimer => "vmx-preemption-timer",
1510 CPUFlag::Vmxrdpmcexit => "vmx-rdpmc-exit",
1511 CPUFlag::Vmxrdrandexit => "vmx-rdrand-exit",
1512 CPUFlag::Vmxrdseedexit => "vmx-rdseed-exit",
1513 CPUFlag::Vmxrdtscexit => "vmx-rdtsc-exit",
1514 CPUFlag::Vmxrdtscpexit => "vmx-rdtscp-exit",
1515 CPUFlag::Vmxsecondaryctls => "vmx-secondary-ctls",
1516 CPUFlag::VmxshadowVmcs => "vmx-shadow-vmcs",
1517 CPUFlag::Vmxstorelma => "vmx-store-lma",
1518 CPUFlag::Vmxtruectls => "vmx-true-ctls",
1519 CPUFlag::Vmxtscoffset => "vmx-tsc-offset",
1520 CPUFlag::Vmxtscscaling => "vmx-tsc-scaling",
1521 CPUFlag::Vmxunrestrictedguest => "vmx-unrestricted-guest",
1522 CPUFlag::VmxVintrpending => "vmx-vintr-pending",
1523 CPUFlag::VmxVmfunc => "vmx-vmfunc",
1524 CPUFlag::VmxVmwritevmexitfields => "vmx-vmwrite-vmexit-fields",
1525 CPUFlag::VmxVnmi => "vmx-vnmi",
1526 CPUFlag::VmxVnmipending => "vmx-vnmi-pending",
1527 CPUFlag::VmxVpid => "vmx-vpid",
1528 CPUFlag::Vmxwbinvdexit => "vmx-wbinvd-exit",
1529 CPUFlag::Vmxxsaves => "vmx-xsaves",
1530 CPUFlag::Vmxzeroleninject => "vmx-zero-len-inject",
1531 CPUFlag::Vnmi => "vnmi",
1532 CPUFlag::Vpclmulqdq => "vpclmulqdq",
1533 CPUFlag::Waitpkg => "waitpkg",
1534 CPUFlag::Wbnoinvd => "wbnoinvd",
1535 CPUFlag::Wdt => "wdt",
1536 CPUFlag::Wrmsrns => "wrmsrns",
1537 CPUFlag::X2apic => "x2apic",
1538 CPUFlag::Xcrypt => "xcrypt",
1539 CPUFlag::Xcrypten => "xcrypt-en",
1540 CPUFlag::Xfd => "xfd",
1541 CPUFlag::Xgetbv1 => "xgetbv1",
1542 CPUFlag::Xop => "xop",
1543 CPUFlag::Xsave => "xsave",
1544 CPUFlag::Xsavec => "xsavec",
1545 CPUFlag::Xsaveerptr => "xsaveerptr",
1546 CPUFlag::Xsaveopt => "xsaveopt",
1547 CPUFlag::Xsaves => "xsaves",
1548 CPUFlag::Xstore => "xstore",
1549 CPUFlag::Xstoreen => "xstore-en",
1550 CPUFlag::Xtpr => "xtpr",
1551 CPUFlag::Zerofcsfds => "zero-fcs-fds",
1552 }
1553 }
1554}
1555
1556impl FromStr for CPUFlag {
1557 type Err = ();
1558
1559 fn from_str(s: &str) -> Result<Self, Self::Err> {
1560 match s {
1561 "3dnow" => Ok(CPUFlag::X3dnow),
1562 "3dnowext" => Ok(CPUFlag::X3dnowext),
1563 "3dnowprefetch" => Ok(CPUFlag::X3dnowprefetch),
1564 "abm" => Ok(CPUFlag::Abm),
1565 "ace2" => Ok(CPUFlag::Ace2),
1566 "ace2-en" => Ok(CPUFlag::Ace2en),
1567 "acpi" => Ok(CPUFlag::Acpi),
1568 "adx" => Ok(CPUFlag::Adx),
1569 "aes" => Ok(CPUFlag::Aes),
1570 "amd-no-ssb" => Ok(CPUFlag::Amdnossb),
1571 "amd-psfd" => Ok(CPUFlag::Amdpsfd),
1572 "amd-ssbd" => Ok(CPUFlag::Amdssbd),
1573 "amd-stibp" => Ok(CPUFlag::Amdstibp),
1574 "amx-bf16" => Ok(CPUFlag::Amxbf16),
1575 "amx-complex" => Ok(CPUFlag::Amxcomplex),
1576 "amx-fp16" => Ok(CPUFlag::Amxfp16),
1577 "amx-int8" => Ok(CPUFlag::Amxint8),
1578 "amx-tile" => Ok(CPUFlag::Amxtile),
1579 "apic" => Ok(CPUFlag::Apic),
1580 "arat" => Ok(CPUFlag::Arat),
1581 "arch-capabilities" => Ok(CPUFlag::Archcapabilities),
1582 "arch-lbr" => Ok(CPUFlag::Archlbr),
1583 "auto-ibrs" => Ok(CPUFlag::Autoibrs),
1584 "avic" => Ok(CPUFlag::Avic),
1585 "avx" => Ok(CPUFlag::Avx),
1586 "avx-ifma" => Ok(CPUFlag::Avxifma),
1587 "avx-ne-convert" => Ok(CPUFlag::Avxneconvert),
1588 "avx-vnni" => Ok(CPUFlag::AvxVnni),
1589 "avx-vnni-int16" => Ok(CPUFlag::AvxVnniint16),
1590 "avx-vnni-int8" => Ok(CPUFlag::AvxVnniint8),
1591 "avx10" => Ok(CPUFlag::Avx10),
1592 "avx10-128" => Ok(CPUFlag::Avx10128),
1593 "avx10-256" => Ok(CPUFlag::Avx10256),
1594 "avx10-512" => Ok(CPUFlag::Avx10512),
1595 "avx2" => Ok(CPUFlag::Avx2),
1596 "avx512-4fmaps" => Ok(CPUFlag::Avx5124fmaps),
1597 "avx512-4vnniw" => Ok(CPUFlag::Avx5124vnniw),
1598 "avx512-bf16" => Ok(CPUFlag::Avx512bf16),
1599 "avx512-fp16" => Ok(CPUFlag::Avx512fp16),
1600 "avx512-vp2intersect" => Ok(CPUFlag::Avx512Vp2intersect),
1601 "avx512-vpopcntdq" => Ok(CPUFlag::Avx512Vpopcntdq),
1602 "avx512bitalg" => Ok(CPUFlag::Avx512bitalg),
1603 "avx512bw" => Ok(CPUFlag::Avx512bw),
1604 "avx512cd" => Ok(CPUFlag::Avx512cd),
1605 "avx512dq" => Ok(CPUFlag::Avx512dq),
1606 "avx512er" => Ok(CPUFlag::Avx512er),
1607 "avx512f" => Ok(CPUFlag::Avx512f),
1608 "avx512ifma" => Ok(CPUFlag::Avx512ifma),
1609 "avx512pf" => Ok(CPUFlag::Avx512pf),
1610 "avx512vbmi" => Ok(CPUFlag::Avx512vbmi),
1611 "avx512vbmi2" => Ok(CPUFlag::Avx512vbmi2),
1612 "avx512vl" => Ok(CPUFlag::Avx512vl),
1613 "avx512vnni" => Ok(CPUFlag::Avx512vnni),
1614 "bhi-ctrl" => Ok(CPUFlag::Bhictrl),
1615 "bhi-no" => Ok(CPUFlag::Bhino),
1616 "bmi1" => Ok(CPUFlag::Bmi1),
1617 "bmi2" => Ok(CPUFlag::Bmi2),
1618 "bus-lock-detect" => Ok(CPUFlag::Buslockdetect),
1619 "cid" => Ok(CPUFlag::Cid),
1620 "cldemote" => Ok(CPUFlag::Cldemote),
1621 "clflush" => Ok(CPUFlag::Clflush),
1622 "clflushopt" => Ok(CPUFlag::Clflushopt),
1623 "clwb" => Ok(CPUFlag::Clwb),
1624 "clzero" => Ok(CPUFlag::Clzero),
1625 "cmov" => Ok(CPUFlag::Cmov),
1626 "cmp-legacy" => Ok(CPUFlag::Cmplegacy),
1627 "cmpccxadd" => Ok(CPUFlag::Cmpccxadd),
1628 "core-capability" => Ok(CPUFlag::Corecapability),
1629 "cr8legacy" => Ok(CPUFlag::Cr8legacy),
1630 "cx16" => Ok(CPUFlag::Cx16),
1631 "cx8" => Ok(CPUFlag::Cx8),
1632 "dca" => Ok(CPUFlag::Dca),
1633 "ddpd-u" => Ok(CPUFlag::Ddpdu),
1634 "de" => Ok(CPUFlag::De),
1635 "decodeassists" => Ok(CPUFlag::Decodeassists),
1636 "ds" => Ok(CPUFlag::Ds),
1637 "ds-cpl" => Ok(CPUFlag::Dscpl),
1638 "dtes64" => Ok(CPUFlag::Dtes64),
1639 "eraps" => Ok(CPUFlag::Eraps),
1640 "erms" => Ok(CPUFlag::Erms),
1641 "est" => Ok(CPUFlag::Est),
1642 "extapic" => Ok(CPUFlag::Extapic),
1643 "f16c" => Ok(CPUFlag::F16c),
1644 "fb-clear" => Ok(CPUFlag::Fbclear),
1645 "fbsdp-no" => Ok(CPUFlag::Fbsdpno),
1646 "fdp-excptn-only" => Ok(CPUFlag::Fdpexcptnonly),
1647 "flush-l1d" => Ok(CPUFlag::Flushl1d),
1648 "flushbyasid" => Ok(CPUFlag::Flushbyasid),
1649 "fma" => Ok(CPUFlag::Fma),
1650 "fma4" => Ok(CPUFlag::Fma4),
1651 "fpu" => Ok(CPUFlag::Fpu),
1652 "fred" => Ok(CPUFlag::Fred),
1653 "fsgsbase" => Ok(CPUFlag::Fsgsbase),
1654 "fsrc" => Ok(CPUFlag::Fsrc),
1655 "fsrm" => Ok(CPUFlag::Fsrm),
1656 "fsrs" => Ok(CPUFlag::Fsrs),
1657 "full-width-write" => Ok(CPUFlag::Fullwidthwrite),
1658 "fxsr" => Ok(CPUFlag::Fxsr),
1659 "fxsr-opt" => Ok(CPUFlag::Fxsropt),
1660 "fzrm" => Ok(CPUFlag::Fzrm),
1661 "gds-no" => Ok(CPUFlag::Gdsno),
1662 "gfni" => Ok(CPUFlag::Gfni),
1663 "hle" => Ok(CPUFlag::Hle),
1664 "ht" => Ok(CPUFlag::Ht),
1665 "hypervisor" => Ok(CPUFlag::Hypervisor),
1666 "ia64" => Ok(CPUFlag::Ia64),
1667 "ibpb" => Ok(CPUFlag::Ibpb),
1668 "ibpb-brtype" => Ok(CPUFlag::Ibpbbrtype),
1669 "ibrs" => Ok(CPUFlag::Ibrs),
1670 "ibrs-all" => Ok(CPUFlag::Ibrsall),
1671 "ibs" => Ok(CPUFlag::Ibs),
1672 "intel-psfd" => Ok(CPUFlag::Intelpsfd),
1673 "intel-pt" => Ok(CPUFlag::Intelpt),
1674 "intel-pt-lip" => Ok(CPUFlag::Intelptlip),
1675 "invpcid" => Ok(CPUFlag::Invpcid),
1676 "invtsc" => Ok(CPUFlag::Invtsc),
1677 "ipred-ctrl" => Ok(CPUFlag::Ipredctrl),
1678 "kvm-asyncpf" => Ok(CPUFlag::Kvmasyncpf),
1679 "kvm-asyncpf-int" => Ok(CPUFlag::Kvmasyncpfint),
1680 "kvm-asyncpf-vmexit" => Ok(CPUFlag::KvmasyncpfVmexit),
1681 "kvm-hint-dedicated" => Ok(CPUFlag::Kvmhintdedicated),
1682 "kvm-mmu" => Ok(CPUFlag::Kvmmmu),
1683 "kvm-msi-ext-dest-id" => Ok(CPUFlag::Kvmmsiextdestid),
1684 "kvm-nopiodelay" => Ok(CPUFlag::Kvmnopiodelay),
1685 "kvm-poll-control" => Ok(CPUFlag::Kvmpollcontrol),
1686 "kvm-pv-eoi" => Ok(CPUFlag::Kvmpveoi),
1687 "kvm-pv-ipi" => Ok(CPUFlag::Kvmpvipi),
1688 "kvm-pv-sched-yield" => Ok(CPUFlag::Kvmpvschedyield),
1689 "kvm-pv-tlb-flush" => Ok(CPUFlag::Kvmpvtlbflush),
1690 "kvm-pv-unhalt" => Ok(CPUFlag::Kvmpvunhalt),
1691 "kvm-steal-time" => Ok(CPUFlag::Kvmstealtime),
1692 "kvmclock" => Ok(CPUFlag::Kvmclock),
1693 "kvmclock-stable-bit" => Ok(CPUFlag::Kvmclockstablebit),
1694 "la57" => Ok(CPUFlag::La57),
1695 "lahf-lm" => Ok(CPUFlag::Lahflm),
1696 "lam" => Ok(CPUFlag::Lam),
1697 "lbrv" => Ok(CPUFlag::Lbrv),
1698 "lfence-always-serializing" => Ok(CPUFlag::Lfencealwaysserializing),
1699 "lkgs" => Ok(CPUFlag::Lkgs),
1700 "lm" => Ok(CPUFlag::Lm),
1701 "lwp" => Ok(CPUFlag::Lwp),
1702 "mca" => Ok(CPUFlag::Mca),
1703 "mcdt-no" => Ok(CPUFlag::Mcdtno),
1704 "mce" => Ok(CPUFlag::Mce),
1705 "md-clear" => Ok(CPUFlag::Mdclear),
1706 "mds-no" => Ok(CPUFlag::Mdsno),
1707 "misalignsse" => Ok(CPUFlag::Misalignsse),
1708 "mmx" => Ok(CPUFlag::Mmx),
1709 "mmxext" => Ok(CPUFlag::Mmxext),
1710 "monitor" => Ok(CPUFlag::Monitor),
1711 "movbe" => Ok(CPUFlag::Movbe),
1712 "movdir64b" => Ok(CPUFlag::Movdir64b),
1713 "movdiri" => Ok(CPUFlag::Movdiri),
1714 "mpx" => Ok(CPUFlag::Mpx),
1715 "msr" => Ok(CPUFlag::Msr),
1716 "mtrr" => Ok(CPUFlag::Mtrr),
1717 "no-nested-data-bp" => Ok(CPUFlag::Nonesteddatabp),
1718 "nodeid-msr" => Ok(CPUFlag::Nodeidmsr),
1719 "npt" => Ok(CPUFlag::Npt),
1720 "nrip-save" => Ok(CPUFlag::Nripsave),
1721 "null-sel-clr-base" => Ok(CPUFlag::Nullselclrbase),
1722 "nx" => Ok(CPUFlag::Nx),
1723 "osvw" => Ok(CPUFlag::Osvw),
1724 "overflow-recov" => Ok(CPUFlag::Overflowrecov),
1725 "pae" => Ok(CPUFlag::Pae),
1726 "pat" => Ok(CPUFlag::Pat),
1727 "pause-filter" => Ok(CPUFlag::Pausefilter),
1728 "pbe" => Ok(CPUFlag::Pbe),
1729 "pbrsb-no" => Ok(CPUFlag::Pbrsbno),
1730 "pcid" => Ok(CPUFlag::Pcid),
1731 "pclmulqdq" => Ok(CPUFlag::Pclmulqdq),
1732 "pcommit" => Ok(CPUFlag::Pcommit),
1733 "pdcm" => Ok(CPUFlag::Pdcm),
1734 "pdpe1gb" => Ok(CPUFlag::Pdpe1gb),
1735 "perfctr-core" => Ok(CPUFlag::Perfctrcore),
1736 "perfctr-nb" => Ok(CPUFlag::Perfctrnb),
1737 "perfmon-v2" => Ok(CPUFlag::PerfmonV2),
1738 "pfthreshold" => Ok(CPUFlag::Pfthreshold),
1739 "pge" => Ok(CPUFlag::Pge),
1740 "phe" => Ok(CPUFlag::Phe),
1741 "phe-en" => Ok(CPUFlag::Pheen),
1742 "pks" => Ok(CPUFlag::Pks),
1743 "pku" => Ok(CPUFlag::Pku),
1744 "pmm" => Ok(CPUFlag::Pmm),
1745 "pmm-en" => Ok(CPUFlag::Pmmen),
1746 "pn" => Ok(CPUFlag::Pn),
1747 "pni" => Ok(CPUFlag::Pni),
1748 "popcnt" => Ok(CPUFlag::Popcnt),
1749 "prefetchiti" => Ok(CPUFlag::Prefetchiti),
1750 "pschange-mc-no" => Ok(CPUFlag::Pschangemcno),
1751 "psdp-no" => Ok(CPUFlag::Psdpno),
1752 "pse" => Ok(CPUFlag::Pse),
1753 "pse36" => Ok(CPUFlag::Pse36),
1754 "rdctl-no" => Ok(CPUFlag::Rdctlno),
1755 "rdpid" => Ok(CPUFlag::Rdpid),
1756 "rdrand" => Ok(CPUFlag::Rdrand),
1757 "rdseed" => Ok(CPUFlag::Rdseed),
1758 "rdtscp" => Ok(CPUFlag::Rdtscp),
1759 "rfds-clear" => Ok(CPUFlag::Rfdsclear),
1760 "rfds-no" => Ok(CPUFlag::Rfdsno),
1761 "rrsba-ctrl" => Ok(CPUFlag::Rrsbactrl),
1762 "rsba" => Ok(CPUFlag::Rsba),
1763 "rtm" => Ok(CPUFlag::Rtm),
1764 "sbdr-ssdp-no" => Ok(CPUFlag::Sbdrssdpno),
1765 "sbpb" => Ok(CPUFlag::Sbpb),
1766 "sep" => Ok(CPUFlag::Sep),
1767 "serialize" => Ok(CPUFlag::Serialize),
1768 "sgx" => Ok(CPUFlag::Sgx),
1769 "sgx-aex-notify" => Ok(CPUFlag::Sgxaexnotify),
1770 "sgx-debug" => Ok(CPUFlag::Sgxdebug),
1771 "sgx-edeccssa" => Ok(CPUFlag::Sgxedeccssa),
1772 "sgx-exinfo" => Ok(CPUFlag::Sgxexinfo),
1773 "sgx-kss" => Ok(CPUFlag::Sgxkss),
1774 "sgx-mode64" => Ok(CPUFlag::Sgxmode64),
1775 "sgx-provisionkey" => Ok(CPUFlag::Sgxprovisionkey),
1776 "sgx-tokenkey" => Ok(CPUFlag::Sgxtokenkey),
1777 "sgx1" => Ok(CPUFlag::Sgx1),
1778 "sgx2" => Ok(CPUFlag::Sgx2),
1779 "sgxlc" => Ok(CPUFlag::Sgxlc),
1780 "sha-ni" => Ok(CPUFlag::Shani),
1781 "sha512" => Ok(CPUFlag::Sha512),
1782 "skinit" => Ok(CPUFlag::Skinit),
1783 "skip-l1dfl-vmentry" => Ok(CPUFlag::Skipl1dflVmentry),
1784 "sm3" => Ok(CPUFlag::Sm3),
1785 "sm4" => Ok(CPUFlag::Sm4),
1786 "smap" => Ok(CPUFlag::Smap),
1787 "smep" => Ok(CPUFlag::Smep),
1788 "smx" => Ok(CPUFlag::Smx),
1789 "spec-ctrl" => Ok(CPUFlag::Specctrl),
1790 "split-lock-detect" => Ok(CPUFlag::Splitlockdetect),
1791 "srso-no" => Ok(CPUFlag::Srsono),
1792 "srso-user-kernel-no" => Ok(CPUFlag::Srsouserkernelno),
1793 "ss" => Ok(CPUFlag::Ss),
1794 "ssb-no" => Ok(CPUFlag::Ssbno),
1795 "ssbd" => Ok(CPUFlag::Ssbd),
1796 "sse" => Ok(CPUFlag::Sse),
1797 "sse2" => Ok(CPUFlag::Sse2),
1798 "sse4.1" => Ok(CPUFlag::Sse4_1),
1799 "sse4.2" => Ok(CPUFlag::Sse4_2),
1800 "sse4a" => Ok(CPUFlag::Sse4a),
1801 "ssse3" => Ok(CPUFlag::Ssse3),
1802 "stibp" => Ok(CPUFlag::Stibp),
1803 "stibp-always-on" => Ok(CPUFlag::Stibpalwayson),
1804 "succor" => Ok(CPUFlag::Succor),
1805 "svm" => Ok(CPUFlag::Svm),
1806 "svm-lock" => Ok(CPUFlag::Svmlock),
1807 "svme-addr-chk" => Ok(CPUFlag::Svmeaddrchk),
1808 "syscall" => Ok(CPUFlag::Syscall),
1809 "taa-no" => Ok(CPUFlag::Taano),
1810 "tbm" => Ok(CPUFlag::Tbm),
1811 "tce" => Ok(CPUFlag::Tce),
1812 "tm" => Ok(CPUFlag::Tm),
1813 "tm2" => Ok(CPUFlag::Tm2),
1814 "topoext" => Ok(CPUFlag::Topoext),
1815 "tsc" => Ok(CPUFlag::Tsc),
1816 "tsc-adjust" => Ok(CPUFlag::Tscadjust),
1817 "tsc-deadline" => Ok(CPUFlag::Tscdeadline),
1818 "tsc-scale" => Ok(CPUFlag::Tscscale),
1819 "tsx-ctrl" => Ok(CPUFlag::Tsxctrl),
1820 "tsx-ldtrk" => Ok(CPUFlag::Tsxldtrk),
1821 "umip" => Ok(CPUFlag::Umip),
1822 "v-vmsave-vmload" => Ok(CPUFlag::VVmsavevmload),
1823 "vaes" => Ok(CPUFlag::Vaes),
1824 "vgif" => Ok(CPUFlag::Vgif),
1825 "virt-ssbd" => Ok(CPUFlag::Virtssbd),
1826 "vmcb-clean" => Ok(CPUFlag::Vmcbclean),
1827 "vme" => Ok(CPUFlag::Vme),
1828 "vmx" => Ok(CPUFlag::Vmx),
1829 "vmx-activity-hlt" => Ok(CPUFlag::Vmxactivityhlt),
1830 "vmx-activity-shutdown" => Ok(CPUFlag::Vmxactivityshutdown),
1831 "vmx-activity-wait-sipi" => Ok(CPUFlag::Vmxactivitywaitsipi),
1832 "vmx-any-errcode" => Ok(CPUFlag::Vmxanyerrcode),
1833 "vmx-apicv-register" => Ok(CPUFlag::Vmxapicvregister),
1834 "vmx-apicv-vid" => Ok(CPUFlag::VmxapicvVid),
1835 "vmx-apicv-x2apic" => Ok(CPUFlag::Vmxapicvx2apic),
1836 "vmx-apicv-xapic" => Ok(CPUFlag::Vmxapicvxapic),
1837 "vmx-cr3-load-noexit" => Ok(CPUFlag::Vmxcr3loadnoexit),
1838 "vmx-cr3-store-noexit" => Ok(CPUFlag::Vmxcr3storenoexit),
1839 "vmx-cr8-load-exit" => Ok(CPUFlag::Vmxcr8loadexit),
1840 "vmx-cr8-store-exit" => Ok(CPUFlag::Vmxcr8storeexit),
1841 "vmx-desc-exit" => Ok(CPUFlag::Vmxdescexit),
1842 "vmx-enable-user-wait-pause" => Ok(CPUFlag::Vmxenableuserwaitpause),
1843 "vmx-encls-exit" => Ok(CPUFlag::Vmxenclsexit),
1844 "vmx-entry-ia32e-mode" => Ok(CPUFlag::Vmxentryia32emode),
1845 "vmx-entry-load-bndcfgs" => Ok(CPUFlag::Vmxentryloadbndcfgs),
1846 "vmx-entry-load-efer" => Ok(CPUFlag::Vmxentryloadefer),
1847 "vmx-entry-load-fred" => Ok(CPUFlag::Vmxentryloadfred),
1848 "vmx-entry-load-pat" => Ok(CPUFlag::Vmxentryloadpat),
1849 "vmx-entry-load-perf-global-ctrl" => Ok(CPUFlag::Vmxentryloadperfglobalctrl),
1850 "vmx-entry-load-pkrs" => Ok(CPUFlag::Vmxentryloadpkrs),
1851 "vmx-entry-load-rtit-ctl" => Ok(CPUFlag::Vmxentryloadrtitctl),
1852 "vmx-entry-noload-debugctl" => Ok(CPUFlag::Vmxentrynoloaddebugctl),
1853 "vmx-ept" => Ok(CPUFlag::Vmxept),
1854 "vmx-ept-1gb" => Ok(CPUFlag::Vmxept1gb),
1855 "vmx-ept-2mb" => Ok(CPUFlag::Vmxept2mb),
1856 "vmx-ept-advanced-exitinfo" => Ok(CPUFlag::Vmxeptadvancedexitinfo),
1857 "vmx-ept-execonly" => Ok(CPUFlag::Vmxeptexeconly),
1858 "vmx-eptad" => Ok(CPUFlag::Vmxeptad),
1859 "vmx-eptp-switching" => Ok(CPUFlag::Vmxeptpswitching),
1860 "vmx-exit-ack-intr" => Ok(CPUFlag::Vmxexitackintr),
1861 "vmx-exit-clear-bndcfgs" => Ok(CPUFlag::Vmxexitclearbndcfgs),
1862 "vmx-exit-clear-rtit-ctl" => Ok(CPUFlag::Vmxexitclearrtitctl),
1863 "vmx-exit-load-efer" => Ok(CPUFlag::Vmxexitloadefer),
1864 "vmx-exit-load-pat" => Ok(CPUFlag::Vmxexitloadpat),
1865 "vmx-exit-load-perf-global-ctrl" => Ok(CPUFlag::Vmxexitloadperfglobalctrl),
1866 "vmx-exit-load-pkrs" => Ok(CPUFlag::Vmxexitloadpkrs),
1867 "vmx-exit-nosave-debugctl" => Ok(CPUFlag::Vmxexitnosavedebugctl),
1868 "vmx-exit-save-efer" => Ok(CPUFlag::Vmxexitsaveefer),
1869 "vmx-exit-save-pat" => Ok(CPUFlag::Vmxexitsavepat),
1870 "vmx-exit-save-preemption-timer" => Ok(CPUFlag::Vmxexitsavepreemptiontimer),
1871 "vmx-exit-secondary-ctls" => Ok(CPUFlag::Vmxexitsecondaryctls),
1872 "vmx-flexpriority" => Ok(CPUFlag::Vmxflexpriority),
1873 "vmx-hlt-exit" => Ok(CPUFlag::Vmxhltexit),
1874 "vmx-ins-outs" => Ok(CPUFlag::Vmxinsouts),
1875 "vmx-intr-exit" => Ok(CPUFlag::Vmxintrexit),
1876 "vmx-invept" => Ok(CPUFlag::Vmxinvept),
1877 "vmx-invept-all-context" => Ok(CPUFlag::Vmxinveptallcontext),
1878 "vmx-invept-single-context" => Ok(CPUFlag::Vmxinveptsinglecontext),
1879 "vmx-invept-single-context-noglobals" => Ok(CPUFlag::Vmxinveptsinglecontextnoglobals),
1880 "vmx-invlpg-exit" => Ok(CPUFlag::Vmxinvlpgexit),
1881 "vmx-invpcid-exit" => Ok(CPUFlag::Vmxinvpcidexit),
1882 "vmx-invvpid" => Ok(CPUFlag::Vmxinvvpid),
1883 "vmx-invvpid-all-context" => Ok(CPUFlag::Vmxinvvpidallcontext),
1884 "vmx-invvpid-single-addr" => Ok(CPUFlag::Vmxinvvpidsingleaddr),
1885 "vmx-io-bitmap" => Ok(CPUFlag::Vmxiobitmap),
1886 "vmx-io-exit" => Ok(CPUFlag::Vmxioexit),
1887 "vmx-monitor-exit" => Ok(CPUFlag::Vmxmonitorexit),
1888 "vmx-movdr-exit" => Ok(CPUFlag::Vmxmovdrexit),
1889 "vmx-msr-bitmap" => Ok(CPUFlag::Vmxmsrbitmap),
1890 "vmx-mtf" => Ok(CPUFlag::Vmxmtf),
1891 "vmx-mwait-exit" => Ok(CPUFlag::Vmxmwaitexit),
1892 "vmx-nested-exception" => Ok(CPUFlag::Vmxnestedexception),
1893 "vmx-nmi-exit" => Ok(CPUFlag::Vmxnmiexit),
1894 "vmx-page-walk-4" => Ok(CPUFlag::Vmxpagewalk4),
1895 "vmx-page-walk-5" => Ok(CPUFlag::Vmxpagewalk5),
1896 "vmx-pause-exit" => Ok(CPUFlag::Vmxpauseexit),
1897 "vmx-ple" => Ok(CPUFlag::Vmxple),
1898 "vmx-pml" => Ok(CPUFlag::Vmxpml),
1899 "vmx-posted-intr" => Ok(CPUFlag::Vmxpostedintr),
1900 "vmx-preemption-timer" => Ok(CPUFlag::Vmxpreemptiontimer),
1901 "vmx-rdpmc-exit" => Ok(CPUFlag::Vmxrdpmcexit),
1902 "vmx-rdrand-exit" => Ok(CPUFlag::Vmxrdrandexit),
1903 "vmx-rdseed-exit" => Ok(CPUFlag::Vmxrdseedexit),
1904 "vmx-rdtsc-exit" => Ok(CPUFlag::Vmxrdtscexit),
1905 "vmx-rdtscp-exit" => Ok(CPUFlag::Vmxrdtscpexit),
1906 "vmx-secondary-ctls" => Ok(CPUFlag::Vmxsecondaryctls),
1907 "vmx-shadow-vmcs" => Ok(CPUFlag::VmxshadowVmcs),
1908 "vmx-store-lma" => Ok(CPUFlag::Vmxstorelma),
1909 "vmx-true-ctls" => Ok(CPUFlag::Vmxtruectls),
1910 "vmx-tsc-offset" => Ok(CPUFlag::Vmxtscoffset),
1911 "vmx-tsc-scaling" => Ok(CPUFlag::Vmxtscscaling),
1912 "vmx-unrestricted-guest" => Ok(CPUFlag::Vmxunrestrictedguest),
1913 "vmx-vintr-pending" => Ok(CPUFlag::VmxVintrpending),
1914 "vmx-vmfunc" => Ok(CPUFlag::VmxVmfunc),
1915 "vmx-vmwrite-vmexit-fields" => Ok(CPUFlag::VmxVmwritevmexitfields),
1916 "vmx-vnmi" => Ok(CPUFlag::VmxVnmi),
1917 "vmx-vnmi-pending" => Ok(CPUFlag::VmxVnmipending),
1918 "vmx-vpid" => Ok(CPUFlag::VmxVpid),
1919 "vmx-wbinvd-exit" => Ok(CPUFlag::Vmxwbinvdexit),
1920 "vmx-xsaves" => Ok(CPUFlag::Vmxxsaves),
1921 "vmx-zero-len-inject" => Ok(CPUFlag::Vmxzeroleninject),
1922 "vnmi" => Ok(CPUFlag::Vnmi),
1923 "vpclmulqdq" => Ok(CPUFlag::Vpclmulqdq),
1924 "waitpkg" => Ok(CPUFlag::Waitpkg),
1925 "wbnoinvd" => Ok(CPUFlag::Wbnoinvd),
1926 "wdt" => Ok(CPUFlag::Wdt),
1927 "wrmsrns" => Ok(CPUFlag::Wrmsrns),
1928 "x2apic" => Ok(CPUFlag::X2apic),
1929 "xcrypt" => Ok(CPUFlag::Xcrypt),
1930 "xcrypt-en" => Ok(CPUFlag::Xcrypten),
1931 "xfd" => Ok(CPUFlag::Xfd),
1932 "xgetbv1" => Ok(CPUFlag::Xgetbv1),
1933 "xop" => Ok(CPUFlag::Xop),
1934 "xsave" => Ok(CPUFlag::Xsave),
1935 "xsavec" => Ok(CPUFlag::Xsavec),
1936 "xsaveerptr" => Ok(CPUFlag::Xsaveerptr),
1937 "xsaveopt" => Ok(CPUFlag::Xsaveopt),
1938 "xsaves" => Ok(CPUFlag::Xsaves),
1939 "xstore" => Ok(CPUFlag::Xstore),
1940 "xstore-en" => Ok(CPUFlag::Xstoreen),
1941 "xtpr" => Ok(CPUFlag::Xtpr),
1942 "zero-fcs-fds" => Ok(CPUFlag::Zerofcsfds),
1943 _ => Err(()),
1944 }
1945 }
1946}