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