Skip to main content

qemu_command_builder/args/
cpu_flags.rs

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    /// 3dnow
10    X3dnow,
11    /// 3dnowext
12    X3dnowext,
13    /// 3dnowprefetch
14    X3dnowprefetch,
15    /// abm
16    Abm,
17    /// ace2
18    Ace2,
19    /// ace2-en
20    Ace2en,
21    /// acpi
22    Acpi,
23    /// adx
24    Adx,
25    /// aes
26    Aes,
27    /// amd-no-ssb
28    Amdnossb,
29    /// amd-psfd
30    Amdpsfd,
31    /// amd-ssbd
32    Amdssbd,
33    /// amd-stibp
34    Amdstibp,
35    /// amx-bf16
36    Amxbf16,
37    /// amx-complex
38    Amxcomplex,
39    /// amx-fp16
40    Amxfp16,
41    /// amx-int8
42    Amxint8,
43    /// amx-tile
44    Amxtile,
45    /// apic
46    Apic,
47    /// arat
48    Arat,
49    /// arch-capabilities
50    Archcapabilities,
51    /// arch-lbr
52    Archlbr,
53    /// auto-ibrs
54    Autoibrs,
55    /// avic
56    Avic,
57    /// avx
58    Avx,
59    /// avx-ifma
60    Avxifma,
61    /// avx-ne-convert
62    Avxneconvert,
63    /// avx-vnni
64    AvxVnni,
65    /// avx-vnni-int16
66    AvxVnniint16,
67    /// avx-vnni-int8
68    AvxVnniint8,
69    /// avx10
70    Avx10,
71    /// avx10-128
72    Avx10128,
73    /// avx10-256
74    Avx10256,
75    /// avx10-512
76    Avx10512,
77    /// avx2
78    Avx2,
79    /// avx512-4fmaps
80    Avx5124fmaps,
81    /// avx512-4vnniw
82    Avx5124vnniw,
83    /// avx512-bf16
84    Avx512bf16,
85    /// avx512-fp16
86    Avx512fp16,
87    /// avx512-vp2intersect
88    Avx512Vp2intersect,
89    /// avx512-vpopcntdq
90    Avx512Vpopcntdq,
91    /// avx512bitalg
92    Avx512bitalg,
93    /// avx512bw
94    Avx512bw,
95    /// avx512cd
96    Avx512cd,
97    /// avx512dq
98    Avx512dq,
99    /// avx512er
100    Avx512er,
101    /// avx512f
102    Avx512f,
103    /// avx512ifma
104    Avx512ifma,
105    /// avx512pf
106    Avx512pf,
107    /// avx512vbmi
108    Avx512vbmi,
109    /// avx512vbmi2
110    Avx512vbmi2,
111    /// avx512vl
112    Avx512vl,
113    /// avx512vnni
114    Avx512vnni,
115    /// bhi-ctrl
116    Bhictrl,
117    /// bhi-no
118    Bhino,
119    /// bmi1
120    Bmi1,
121    /// bmi2
122    Bmi2,
123    /// bus-lock-detect
124    Buslockdetect,
125    /// cid
126    Cid,
127    /// cldemote
128    Cldemote,
129    /// clflush
130    Clflush,
131    /// clflushopt
132    Clflushopt,
133    /// clwb
134    Clwb,
135    /// clzero
136    Clzero,
137    /// cmov
138    Cmov,
139    /// cmp-legacy
140    Cmplegacy,
141    /// cmpccxadd
142    Cmpccxadd,
143    /// core-capability
144    Corecapability,
145    /// cr8legacy
146    Cr8legacy,
147    /// cx16
148    Cx16,
149    /// cx8
150    Cx8,
151    /// dca
152    Dca,
153    /// ddpd-u
154    Ddpdu,
155    /// de
156    De,
157    /// decodeassists
158    Decodeassists,
159    /// ds
160    Ds,
161    /// ds-cpl
162    Dscpl,
163    /// dtes64
164    Dtes64,
165    /// eraps
166    Eraps,
167    /// erms
168    Erms,
169    /// est
170    Est,
171    /// extapic
172    Extapic,
173    /// f16c
174    F16c,
175    /// fb-clear
176    Fbclear,
177    /// fbsdp-no
178    Fbsdpno,
179    /// fdp-excptn-only
180    Fdpexcptnonly,
181    /// flush-l1d
182    Flushl1d,
183    /// flushbyasid
184    Flushbyasid,
185    /// fma
186    Fma,
187    /// fma4
188    Fma4,
189    /// fpu
190    Fpu,
191    /// fred
192    Fred,
193    /// fsgsbase
194    Fsgsbase,
195    /// fsrc
196    Fsrc,
197    /// fsrm
198    Fsrm,
199    /// fsrs
200    Fsrs,
201    /// full-width-write
202    Fullwidthwrite,
203    /// fxsr
204    Fxsr,
205    /// fxsr-opt
206    Fxsropt,
207    /// fzrm
208    Fzrm,
209    /// gds-no
210    Gdsno,
211    /// gfni
212    Gfni,
213    /// hle
214    Hle,
215    /// ht
216    Ht,
217    /// hypervisor
218    Hypervisor,
219    /// ia64
220    Ia64,
221    /// ibpb
222    Ibpb,
223    /// ibpb-brtype
224    Ibpbbrtype,
225    /// ibrs
226    Ibrs,
227    /// ibrs-all
228    Ibrsall,
229    /// ibs
230    Ibs,
231    /// intel-psfd
232    Intelpsfd,
233    /// intel-pt
234    Intelpt,
235    /// intel-pt-lip
236    Intelptlip,
237    /// invpcid
238    Invpcid,
239    /// invtsc
240    Invtsc,
241    /// ipred-ctrl
242    Ipredctrl,
243    /// kvm-asyncpf
244    Kvmasyncpf,
245    /// kvm-asyncpf-int
246    Kvmasyncpfint,
247    /// kvm-asyncpf-vmexit
248    KvmasyncpfVmexit,
249    /// kvm-hint-dedicated
250    Kvmhintdedicated,
251    /// kvm-mmu
252    Kvmmmu,
253    /// kvm-msi-ext-dest-id
254    Kvmmsiextdestid,
255    /// kvm-nopiodelay
256    Kvmnopiodelay,
257    /// kvm-poll-control
258    Kvmpollcontrol,
259    /// kvm-pv-eoi
260    Kvmpveoi,
261    /// kvm-pv-ipi
262    Kvmpvipi,
263    /// kvm-pv-sched-yield
264    Kvmpvschedyield,
265    /// kvm-pv-tlb-flush
266    Kvmpvtlbflush,
267    /// kvm-pv-unhalt
268    Kvmpvunhalt,
269    /// kvm-steal-time
270    Kvmstealtime,
271    /// kvmclock
272    Kvmclock,
273    /// kvmclock-stable-bit
274    Kvmclockstablebit,
275    /// la57
276    La57,
277    /// lahf-lm
278    Lahflm,
279    /// lam
280    Lam,
281    /// lbrv
282    Lbrv,
283    /// lfence-always-serializing
284    Lfencealwaysserializing,
285    /// lkgs
286    Lkgs,
287    /// lm
288    Lm,
289    /// lwp
290    Lwp,
291    /// mca
292    Mca,
293    /// mcdt-no
294    Mcdtno,
295    /// mce
296    Mce,
297    /// md-clear
298    Mdclear,
299    /// mds-no
300    Mdsno,
301    /// misalignsse
302    Misalignsse,
303    /// mmx
304    Mmx,
305    /// mmxext
306    Mmxext,
307    /// monitor
308    Monitor,
309    /// movbe
310    Movbe,
311    /// movdir64b
312    Movdir64b,
313    /// movdiri
314    Movdiri,
315    /// mpx
316    Mpx,
317    /// msr
318    Msr,
319    /// mtrr
320    Mtrr,
321    /// no-nested-data-bp
322    Nonesteddatabp,
323    /// nodeid-msr
324    Nodeidmsr,
325    /// npt
326    Npt,
327    /// nrip-save
328    Nripsave,
329    /// null-sel-clr-base
330    Nullselclrbase,
331    /// nx
332    Nx,
333    /// osvw
334    Osvw,
335    /// overflow-recov
336    Overflowrecov,
337    /// pae
338    Pae,
339    /// pat
340    Pat,
341    /// pause-filter
342    Pausefilter,
343    /// pbe
344    Pbe,
345    /// pbrsb-no
346    Pbrsbno,
347    /// pcid
348    Pcid,
349    /// pclmulqdq
350    Pclmulqdq,
351    /// pcommit
352    Pcommit,
353    /// pdcm
354    Pdcm,
355    /// pdpe1gb
356    Pdpe1gb,
357    /// perfctr-core
358    Perfctrcore,
359    /// perfctr-nb
360    Perfctrnb,
361    /// perfmon-v2
362    PerfmonV2,
363    /// pfthreshold
364    Pfthreshold,
365    /// pge
366    Pge,
367    /// phe
368    Phe,
369    /// phe-en
370    Pheen,
371    /// pks
372    Pks,
373    /// pku
374    Pku,
375    /// pmm
376    Pmm,
377    /// pmm-en
378    Pmmen,
379    /// pn
380    Pn,
381    /// pni
382    Pni,
383    /// popcnt
384    Popcnt,
385    /// prefetchiti
386    Prefetchiti,
387    /// pschange-mc-no
388    Pschangemcno,
389    /// psdp-no
390    Psdpno,
391    /// pse
392    Pse,
393    /// pse36
394    Pse36,
395    /// rdctl-no
396    Rdctlno,
397    /// rdpid
398    Rdpid,
399    /// rdrand
400    Rdrand,
401    /// rdseed
402    Rdseed,
403    /// rdtscp
404    Rdtscp,
405    /// rfds-clear
406    Rfdsclear,
407    /// rfds-no
408    Rfdsno,
409    /// rrsba-ctrl
410    Rrsbactrl,
411    /// rsba
412    Rsba,
413    /// rtm
414    Rtm,
415    /// sbdr-ssdp-no
416    Sbdrssdpno,
417    /// sbpb
418    Sbpb,
419    /// sep
420    Sep,
421    /// serialize
422    Serialize,
423    /// sgx
424    Sgx,
425    /// sgx-aex-notify
426    Sgxaexnotify,
427    /// sgx-debug
428    Sgxdebug,
429    /// sgx-edeccssa
430    Sgxedeccssa,
431    /// sgx-exinfo
432    Sgxexinfo,
433    /// sgx-kss
434    Sgxkss,
435    /// sgx-mode64
436    Sgxmode64,
437    /// sgx-provisionkey
438    Sgxprovisionkey,
439    /// sgx-tokenkey
440    Sgxtokenkey,
441    /// sgx1
442    Sgx1,
443    /// sgx2
444    Sgx2,
445    /// sgxlc
446    Sgxlc,
447    /// sha-ni
448    Shani,
449    /// sha512
450    Sha512,
451    /// skinit
452    Skinit,
453    /// skip-l1dfl-vmentry
454    Skipl1dflVmentry,
455    /// sm3
456    Sm3,
457    /// sm4
458    Sm4,
459    /// smap
460    Smap,
461    /// smep
462    Smep,
463    /// smx
464    Smx,
465    /// spec-ctrl
466    Specctrl,
467    /// split-lock-detect
468    Splitlockdetect,
469    /// srso-no
470    Srsono,
471    /// srso-user-kernel-no
472    Srsouserkernelno,
473    /// ss
474    Ss,
475    /// ssb-no
476    Ssbno,
477    /// ssbd
478    Ssbd,
479    /// sse
480    Sse,
481    /// sse2
482    Sse2,
483    /// sse4.1
484    Sse4_1,
485    /// sse4.2
486    Sse4_2,
487    /// sse4a
488    Sse4a,
489    /// ssse3
490    Ssse3,
491    /// stibp
492    Stibp,
493    /// stibp-always-on
494    Stibpalwayson,
495    /// succor
496    Succor,
497    /// svm
498    Svm,
499    /// svm-lock
500    Svmlock,
501    /// svme-addr-chk
502    Svmeaddrchk,
503    /// syscall
504    Syscall,
505    /// taa-no
506    Taano,
507    /// tbm
508    Tbm,
509    /// tce
510    Tce,
511    /// tm
512    Tm,
513    /// tm2
514    Tm2,
515    /// topoext
516    Topoext,
517    /// tsc
518    Tsc,
519    /// tsc-adjust
520    Tscadjust,
521    /// tsc-deadline
522    Tscdeadline,
523    /// tsc-scale
524    Tscscale,
525    /// tsx-ctrl
526    Tsxctrl,
527    /// tsx-ldtrk
528    Tsxldtrk,
529    /// umip
530    Umip,
531    /// v-vmsave-vmload
532    VVmsavevmload,
533    /// vaes
534    Vaes,
535    /// vgif
536    Vgif,
537    /// virt-ssbd
538    Virtssbd,
539    /// vmcb-clean
540    Vmcbclean,
541    /// vme
542    Vme,
543    /// vmx
544    Vmx,
545    /// vmx-activity-hlt
546    Vmxactivityhlt,
547    /// vmx-activity-shutdown
548    Vmxactivityshutdown,
549    /// vmx-activity-wait-sipi
550    Vmxactivitywaitsipi,
551    /// vmx-any-errcode
552    Vmxanyerrcode,
553    /// vmx-apicv-register
554    Vmxapicvregister,
555    /// vmx-apicv-vid
556    VmxapicvVid,
557    /// vmx-apicv-x2apic
558    Vmxapicvx2apic,
559    /// vmx-apicv-xapic
560    Vmxapicvxapic,
561    /// vmx-cr3-load-noexit
562    Vmxcr3loadnoexit,
563    /// vmx-cr3-store-noexit
564    Vmxcr3storenoexit,
565    /// vmx-cr8-load-exit
566    Vmxcr8loadexit,
567    /// vmx-cr8-store-exit
568    Vmxcr8storeexit,
569    /// vmx-desc-exit
570    Vmxdescexit,
571    /// vmx-enable-user-wait-pause
572    Vmxenableuserwaitpause,
573    /// vmx-encls-exit
574    Vmxenclsexit,
575    /// vmx-entry-ia32e-mode
576    Vmxentryia32emode,
577    /// vmx-entry-load-bndcfgs
578    Vmxentryloadbndcfgs,
579    /// vmx-entry-load-efer
580    Vmxentryloadefer,
581    /// vmx-entry-load-fred
582    Vmxentryloadfred,
583    /// vmx-entry-load-pat
584    Vmxentryloadpat,
585    /// vmx-entry-load-perf-global-ctrl
586    Vmxentryloadperfglobalctrl,
587    /// vmx-entry-load-pkrs
588    Vmxentryloadpkrs,
589    /// vmx-entry-load-rtit-ctl
590    Vmxentryloadrtitctl,
591    /// vmx-entry-noload-debugctl
592    Vmxentrynoloaddebugctl,
593    /// vmx-ept
594    Vmxept,
595    /// vmx-ept-1gb
596    Vmxept1gb,
597    /// vmx-ept-2mb
598    Vmxept2mb,
599    /// vmx-ept-advanced-exitinfo
600    Vmxeptadvancedexitinfo,
601    /// vmx-ept-execonly
602    Vmxeptexeconly,
603    /// vmx-eptad
604    Vmxeptad,
605    /// vmx-eptp-switching
606    Vmxeptpswitching,
607    /// vmx-exit-ack-intr
608    Vmxexitackintr,
609    /// vmx-exit-clear-bndcfgs
610    Vmxexitclearbndcfgs,
611    /// vmx-exit-clear-rtit-ctl
612    Vmxexitclearrtitctl,
613    /// vmx-exit-load-efer
614    Vmxexitloadefer,
615    /// vmx-exit-load-pat
616    Vmxexitloadpat,
617    /// vmx-exit-load-perf-global-ctrl
618    Vmxexitloadperfglobalctrl,
619    /// vmx-exit-load-pkrs
620    Vmxexitloadpkrs,
621    /// vmx-exit-nosave-debugctl
622    Vmxexitnosavedebugctl,
623    /// vmx-exit-save-efer
624    Vmxexitsaveefer,
625    /// vmx-exit-save-pat
626    Vmxexitsavepat,
627    /// vmx-exit-save-preemption-timer
628    Vmxexitsavepreemptiontimer,
629    /// vmx-exit-secondary-ctls
630    Vmxexitsecondaryctls,
631    /// vmx-flexpriority
632    Vmxflexpriority,
633    /// vmx-hlt-exit
634    Vmxhltexit,
635    /// vmx-ins-outs
636    Vmxinsouts,
637    /// vmx-intr-exit
638    Vmxintrexit,
639    /// vmx-invept
640    Vmxinvept,
641    /// vmx-invept-all-context
642    Vmxinveptallcontext,
643    /// vmx-invept-single-context
644    Vmxinveptsinglecontext,
645    /// vmx-invept-single-context-noglobals
646    Vmxinveptsinglecontextnoglobals,
647    /// vmx-invlpg-exit
648    Vmxinvlpgexit,
649    /// vmx-invpcid-exit
650    Vmxinvpcidexit,
651    /// vmx-invvpid
652    Vmxinvvpid,
653    /// vmx-invvpid-all-context
654    Vmxinvvpidallcontext,
655    /// vmx-invvpid-single-addr
656    Vmxinvvpidsingleaddr,
657    /// vmx-io-bitmap
658    Vmxiobitmap,
659    /// vmx-io-exit
660    Vmxioexit,
661    /// vmx-monitor-exit
662    Vmxmonitorexit,
663    /// vmx-movdr-exit
664    Vmxmovdrexit,
665    /// vmx-msr-bitmap
666    Vmxmsrbitmap,
667    /// vmx-mtf
668    Vmxmtf,
669    /// vmx-mwait-exit
670    Vmxmwaitexit,
671    /// vmx-nested-exception
672    Vmxnestedexception,
673    /// vmx-nmi-exit
674    Vmxnmiexit,
675    /// vmx-page-walk-4
676    Vmxpagewalk4,
677    /// vmx-page-walk-5
678    Vmxpagewalk5,
679    /// vmx-pause-exit
680    Vmxpauseexit,
681    /// vmx-ple
682    Vmxple,
683    /// vmx-pml
684    Vmxpml,
685    /// vmx-posted-intr
686    Vmxpostedintr,
687    /// vmx-preemption-timer
688    Vmxpreemptiontimer,
689    /// vmx-rdpmc-exit
690    Vmxrdpmcexit,
691    /// vmx-rdrand-exit
692    Vmxrdrandexit,
693    /// vmx-rdseed-exit
694    Vmxrdseedexit,
695    /// vmx-rdtsc-exit
696    Vmxrdtscexit,
697    /// vmx-rdtscp-exit
698    Vmxrdtscpexit,
699    /// vmx-secondary-ctls
700    Vmxsecondaryctls,
701    /// vmx-shadow-vmcs
702    VmxshadowVmcs,
703    /// vmx-store-lma
704    Vmxstorelma,
705    /// vmx-true-ctls
706    Vmxtruectls,
707    /// vmx-tsc-offset
708    Vmxtscoffset,
709    /// vmx-tsc-scaling
710    Vmxtscscaling,
711    /// vmx-unrestricted-guest
712    Vmxunrestrictedguest,
713    /// vmx-vintr-pending
714    VmxVintrpending,
715    /// vmx-vmfunc
716    VmxVmfunc,
717    /// vmx-vmwrite-vmexit-fields
718    VmxVmwritevmexitfields,
719    /// vmx-vnmi
720    VmxVnmi,
721    /// vmx-vnmi-pending
722    VmxVnmipending,
723    /// vmx-vpid
724    VmxVpid,
725    /// vmx-wbinvd-exit
726    Vmxwbinvdexit,
727    /// vmx-xsaves
728    Vmxxsaves,
729    /// vmx-zero-len-inject
730    Vmxzeroleninject,
731    /// vnmi
732    Vnmi,
733    /// vpclmulqdq
734    Vpclmulqdq,
735    /// waitpkg
736    Waitpkg,
737    /// wbnoinvd
738    Wbnoinvd,
739    /// wdt
740    Wdt,
741    /// wrmsrns
742    Wrmsrns,
743    /// x2apic
744    X2apic,
745    /// xcrypt
746    Xcrypt,
747    /// xcrypt-en
748    Xcrypten,
749    /// xfd
750    Xfd,
751    /// xgetbv1
752    Xgetbv1,
753    /// xop
754    Xop,
755    /// xsave
756    Xsave,
757    /// xsavec
758    Xsavec,
759    /// xsaveerptr
760    Xsaveerptr,
761    /// xsaveopt
762    Xsaveopt,
763    /// xsaves
764    Xsaves,
765    /// xstore
766    Xstore,
767    /// xstore-en
768    Xstoreen,
769    /// xtpr
770    Xtpr,
771    /// zero-fcs-fds
772    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}