aboutsummaryrefslogtreecommitdiff
path: root/src/generated
diff options
context:
space:
mode:
Diffstat (limited to 'src/generated')
-rw-r--r--src/generated/imp.rs7234
-rw-r--r--src/generated/mod.rs15
-rw-r--r--src/generated/opcode.rs7186
3 files changed, 14435 insertions, 0 deletions
diff --git a/src/generated/imp.rs b/src/generated/imp.rs
new file mode 100644
index 0000000..c028ff7
--- /dev/null
+++ b/src/generated/imp.rs
@@ -0,0 +1,7234 @@
+pub(crate) mod real_mode {
+ use crate::generated::real_mode::Opcode;
+ use crate::real_mode::{InstDecoder, Instruction, DecodeError};
+ impl InstDecoder {
+ fn feature_sgx(&self) -> bool {
+ true
+ }
+ fn feature_smap(&self) -> bool {
+ true
+ }
+ fn feature_avx_unimplemented(&self) -> bool {
+ true
+ }
+ fn feature_uintr(&self) -> bool {
+ true
+ }
+ fn feature_pentium(&self) -> bool {
+ true
+ }
+ fn feature_aesni(&self) -> bool {
+ true
+ }
+ fn feature_invlpgb(&self) -> bool {
+ true
+ }
+ fn feature_fsgsbase(&self) -> bool {
+ true
+ }
+ fn feature_vmx(&self) -> bool {
+ true
+ }
+ fn feature_simd(&self) -> bool {
+ true
+ }
+ fn feature_avx(&self) -> bool {
+ true
+ }
+ fn feature_hreset(&self) -> bool {
+ true
+ }
+ fn feature_avx512_vp2intersect(&self) -> bool {
+ true
+ }
+ fn feature_rdpru(&self) -> bool {
+ true
+ }
+ fn feature_sse4_2(&self) -> bool {
+ true
+ }
+ fn feature_monitor(&self) -> bool {
+ true
+ }
+ fn feature_avx512_f_typo(&self) -> bool {
+ true
+ }
+ fn feature_sse4_1(&self) -> bool {
+ true
+ }
+ fn feature_avx512_dq(&self) -> bool {
+ true
+ }
+ fn feature_adx(&self) -> bool {
+ true
+ }
+ fn feature_fxsr(&self) -> bool {
+ true
+ }
+ fn feature_tsx(&self) -> bool {
+ true
+ }
+ fn feature_waitpkg(&self) -> bool {
+ true
+ }
+ fn feature_80286(&self) -> bool {
+ true
+ }
+ fn feature_sysenter(&self) -> bool {
+ true
+ }
+ fn feature_invpcid_unimplemented(&self) -> bool {
+ true
+ }
+ fn feature_avx512_4vnniw(&self) -> bool {
+ true
+ }
+ fn feature_avx512_vnni(&self) -> bool {
+ true
+ }
+ fn feature_avx512_pf(&self) -> bool {
+ true
+ }
+ fn feature_avx512_cd(&self) -> bool {
+ true
+ }
+ fn feature_avx512_bf16(&self) -> bool {
+ true
+ }
+ fn feature_avx512bw_unimplemented(&self) -> bool {
+ true
+ }
+ fn feature_mpk(&self) -> bool {
+ true
+ }
+ fn feature_avx512_f__vl_unimplemented(&self) -> bool {
+ true
+ }
+ fn feature_sha(&self) -> bool {
+ true
+ }
+ fn feature_cet(&self) -> bool {
+ true
+ }
+ fn feature_80486(&self) -> bool {
+ true
+ }
+ fn feature_sse(&self) -> bool {
+ true
+ }
+ fn feature_pentium_pro(&self) -> bool {
+ true
+ }
+ fn feature_itanium(&self) -> bool {
+ true
+ }
+ fn feature_mpx(&self) -> bool {
+ true
+ }
+ fn feature_extra_instructions(&self) -> bool {
+ true
+ }
+ fn feature_rdtscp(&self) -> bool {
+ true
+ }
+ fn feature_avx2(&self) -> bool {
+ true
+ }
+ fn feature_pconfig(&self) -> bool {
+ true
+ }
+ fn feature_avx512_ifma(&self) -> bool {
+ true
+ }
+ fn feature_gfni(&self) -> bool {
+ true
+ }
+ fn feature_vpclmulqdq(&self) -> bool {
+ true
+ }
+ fn feature_80386(&self) -> bool {
+ true
+ }
+ fn feature_movbe(&self) -> bool {
+ true
+ }
+ fn feature_avx512_f(&self) -> bool {
+ true
+ }
+ fn feature_emx(&self) -> bool {
+ true
+ }
+ fn feature_pclmulqdq(&self) -> bool {
+ true
+ }
+ fn feature_fma3(&self) -> bool {
+ true
+ }
+ fn feature_fma4(&self) -> bool {
+ true
+ }
+ fn feature_xsaveopt(&self) -> bool {
+ true
+ }
+ fn feature_syscall(&self) -> bool {
+ true
+ }
+ fn feature_sse4a(&self) -> bool {
+ true
+ }
+ fn feature_avx512_vpopcntdq(&self) -> bool {
+ true
+ }
+ fn feature_invpcid(&self) -> bool {
+ true
+ }
+ fn feature_80186_bound(&self) -> bool {
+ true
+ }
+ fn feature_tsxldtrk(&self) -> bool {
+ true
+ }
+ fn feature_cmov(&self) -> bool {
+ true
+ }
+ fn feature_avx512_bw(&self) -> bool {
+ true
+ }
+ fn feature_ssse3(&self) -> bool {
+ true
+ }
+ fn feature_clflushopt(&self) -> bool {
+ true
+ }
+ fn feature_80186_pusha(&self) -> bool {
+ true
+ }
+ fn feature_smx(&self) -> bool {
+ true
+ }
+ fn feature_8086_bcd(&self) -> bool {
+ true
+ }
+ fn feature_abm(&self) -> bool {
+ true
+ }
+ fn feature_3dnowprefetch(&self) -> bool {
+ true
+ }
+ fn feature_rdpid(&self) -> bool {
+ true
+ }
+ fn feature_lahfsahf(&self) -> bool {
+ true
+ }
+ fn feature_jcxz(&self) -> bool {
+ true
+ }
+ fn feature_enqcmd(&self) -> bool {
+ true
+ }
+ fn feature_new(&self) -> bool {
+ true
+ }
+ fn feature_ptwrite(&self) -> bool {
+ true
+ }
+ fn feature_avx512_vbmi(&self) -> bool {
+ true
+ }
+ fn feature_x87(&self) -> bool {
+ true
+ }
+ fn feature_mmx(&self) -> bool {
+ true
+ }
+ fn feature_avx512_bitalg(&self) -> bool {
+ true
+ }
+ fn feature_keylocker(&self) -> bool {
+ true
+ }
+ fn feature_80186(&self) -> bool {
+ true
+ }
+ fn feature_clwb(&self) -> bool {
+ true
+ }
+ fn feature_avx512_4fmaps(&self) -> bool {
+ true
+ }
+ fn feature_tdx(&self) -> bool {
+ true
+ }
+ fn feature_popcnt(&self) -> bool {
+ true
+ }
+ fn feature_snp(&self) -> bool {
+ true
+ }
+ fn feature_avx512_gfni(&self) -> bool {
+ true
+ }
+ fn feature_3dnow(&self) -> bool {
+ true
+ }
+ fn feature_avx512_vbmi2(&self) -> bool {
+ true
+ }
+ fn feature_8086(&self) -> bool {
+ true
+ }
+ fn feature_svm(&self) -> bool {
+ true
+ }
+ fn feature_sse3(&self) -> bool {
+ true
+ }
+ fn feature_sse2(&self) -> bool {
+ true
+ }
+ fn feature_avx512_er(&self) -> bool {
+ true
+ }
+ fn feature_xsave64(&self) -> bool {
+ true
+ }
+ fn feature_80286_arpl(&self) -> bool {
+ true
+ }
+ fn feature_bmi1(&self) -> bool {
+ true
+ }
+ fn feature_bmi2(&self) -> bool {
+ true
+ }
+ fn feature_movdir(&self) -> bool {
+ true
+ }
+ fn feature_vaes(&self) -> bool {
+ true
+ }
+ fn feature_xsave(&self) -> bool {
+ true
+ }
+ fn feature_rdrand(&self) -> bool {
+ true
+ }
+ fn feature_clzero(&self) -> bool {
+ true
+ }
+ fn feature_rdseed(&self) -> bool {
+ true
+ }
+ }
+ pub(crate) fn revise_instruction(decoder: &InstDecoder, inst: &mut Instruction) -> Result<(), DecodeError> {
+ if inst.prefixes.evex().is_some() {
+ if !decoder.avx512() {
+ return Err(DecodeError::InvalidOpcode);
+ } else {
+ return Ok(());
+ }
+ }
+
+ // for some instructions (tzcnt), not having an extension means the instruction is
+ // interpreted as another, rather than being simply rejected.
+ // we might still reject the alternate instruction later, if the extension adding *it*
+ // is also not supported.
+ if inst.opcode == Opcode::TZCNT {
+ if !decoder.bmi1() {
+ // tzcnt is only supported if bmi1 is enabled. without bmi1, this decodes as bsf.
+ inst.opcode = Opcode::BSF;
+ }
+ }
+
+ match inst.opcode {
+ // we'll never be rejecting the instruction `Invalid`
+ Opcode::Invalid => {}
+ Opcode::ENCLS |
+ Opcode::ENCLU |
+ Opcode::ENCLV => {
+ if !decoder.feature_sgx() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::CLAC |
+ Opcode::STAC => {
+ if !decoder.feature_smap() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VPMAXUB |
+ Opcode::VPMAXUB => {
+ if !decoder.feature_avx_unimplemented() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::UIRET |
+ Opcode::TESTUI |
+ Opcode::CLUI |
+ Opcode::STUI |
+ Opcode::SENDUIPI => {
+ if !decoder.feature_uintr() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::CPUID |
+ Opcode::WRMSR |
+ Opcode::RDTSC |
+ Opcode::RDMSR |
+ Opcode::RSM |
+ Opcode::CMPXCHG8B => {
+ if !decoder.feature_pentium() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::AESKEYGENASSIST |
+ Opcode::AESIMC |
+ Opcode::AESENC |
+ Opcode::AESENCLAST |
+ Opcode::AESDEC |
+ Opcode::AESDECLAST => {
+ if !decoder.feature_aesni() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::INVLPGB |
+ Opcode::TLBSYNC => {
+ if !decoder.feature_invlpgb() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::RDFSBASE |
+ Opcode::RDGSBASE |
+ Opcode::WRFSBASE |
+ Opcode::WRGSBASE => {
+ if !decoder.feature_fsgsbase() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VMPTRLD |
+ Opcode::VMPTRST |
+ Opcode::VMCLEAR |
+ Opcode::VMREAD |
+ Opcode::VMWRITE |
+ Opcode::VMCALL |
+ Opcode::VMLAUNCH |
+ Opcode::VMRESUME |
+ Opcode::VMXOFF |
+ Opcode::VMXON |
+ Opcode::INVEPT |
+ Opcode::INVVPID |
+ Opcode::VMFUNC => {
+ if !decoder.feature_vmx() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VLDDQU |
+ Opcode::VPADDB |
+ Opcode::VPADDD |
+ Opcode::VPADDQ |
+ Opcode::VPADDW |
+ Opcode::VPABSB |
+ Opcode::VPABSW |
+ Opcode::VPABSD |
+ Opcode::VMAXSD |
+ Opcode::VMAXSS |
+ Opcode::VMINSD |
+ Opcode::VMINSS |
+ Opcode::VMULSD |
+ Opcode::VMULSS |
+ Opcode::VRCPSS |
+ Opcode::VPSUBUSB |
+ Opcode::VPSUBUSW |
+ Opcode::VXORPD |
+ Opcode::VXORPS |
+ Opcode::VPAVGB |
+ Opcode::VPAVGW |
+ Opcode::VANDNPD |
+ Opcode::VANDNPS |
+ Opcode::VPHADDD |
+ Opcode::VPHADDSW |
+ Opcode::VPHADDW |
+ Opcode::VANDPD |
+ Opcode::VANDPS |
+ Opcode::VPADDSB |
+ Opcode::VPADDSW |
+ Opcode::VPADDUSB |
+ Opcode::VPADDUSW |
+ Opcode::VPHSUBD |
+ Opcode::VPHSUBSW |
+ Opcode::VPHSUBW |
+ Opcode::VHADDPD |
+ Opcode::VHADDPS |
+ Opcode::VHSUBPD |
+ Opcode::VHSUBPS |
+ Opcode::VORPD |
+ Opcode::VORPS |
+ Opcode::VPBLENDVB |
+ Opcode::VPBLENDW |
+ Opcode::VADDSUBPD |
+ Opcode::VADDSUBPS |
+ Opcode::VRSQRTPS |
+ Opcode::VRSQRTSS |
+ Opcode::VPALIGNR |
+ Opcode::VPSUBSB |
+ Opcode::VPSUBSW |
+ Opcode::VPMULHUW |
+ Opcode::VPMULHW |
+ Opcode::VPMULLW |
+ Opcode::VPSHUFB |
+ Opcode::VPSHUFHW |
+ Opcode::VPSHUFLW |
+ Opcode::VPHMINPOSUW |
+ Opcode::VRCPPS |
+ Opcode::VMPSADBW |
+ Opcode::VPMADDUBSW |
+ Opcode::VPMADDWD |
+ Opcode::VMASKMOVDQU |
+ Opcode::VPMOVMSKB |
+ Opcode::VPSADBW |
+ Opcode::VPSLLDQ |
+ Opcode::VPSRLDQ |
+ Opcode::VDPPD |
+ Opcode::VDPPS |
+ Opcode::VLDMXCSR |
+ Opcode::VSTMXCSR |
+ Opcode::VMOVMSKPD |
+ Opcode::VMOVMSKPS |
+ Opcode::VPTEST |
+ Opcode::VTESTPD |
+ Opcode::VTESTPS |
+ Opcode::VPEXTRB |
+ Opcode::VPEXTRW |
+ Opcode::VPEXTRD |
+ Opcode::VPEXTRQ |
+ Opcode::VPACKSSDW |
+ Opcode::VPACKUSDW |
+ Opcode::VPACKSSWB |
+ Opcode::VPACKUSWB |
+ Opcode::VBLENDPD |
+ Opcode::VBLENDPS |
+ Opcode::VBLENDVPD |
+ Opcode::VBLENDVPS |
+ Opcode::VPMULHRSW |
+ Opcode::VPAND |
+ Opcode::VPANDN |
+ Opcode::VPOR |
+ Opcode::VPCMPEQB |
+ Opcode::VPCMPEQD |
+ Opcode::VPCMPEQQ |
+ Opcode::VPCMPEQW |
+ Opcode::VPCMPGTB |
+ Opcode::VPCMPGTD |
+ Opcode::VPCMPGTQ |
+ Opcode::VPCMPGTW |
+ Opcode::VPMAXSB |
+ Opcode::VPMAXSD |
+ Opcode::VPMAXSW |
+ Opcode::VPMAXUB |
+ Opcode::VPMAXUW |
+ Opcode::VPMINSB |
+ Opcode::VPMINSW |
+ Opcode::VPMINUB |
+ Opcode::VPMINUW |
+ Opcode::VPMAXUD |
+ Opcode::VPMINSD |
+ Opcode::VPSIGNB |
+ Opcode::VPSIGNW |
+ Opcode::VPSIGND |
+ Opcode::VPINSRB |
+ Opcode::VPINSRW |
+ Opcode::VPINSRD |
+ Opcode::VPINSRQ |
+ Opcode::VPMOVSXBD |
+ Opcode::VPMOVSXBQ |
+ Opcode::VPMOVSXBW |
+ Opcode::VPMOVSXDQ |
+ Opcode::VPMOVSXWD |
+ Opcode::VPMOVSXWQ |
+ Opcode::VPMOVZXBD |
+ Opcode::VPMOVZXBQ |
+ Opcode::VPMOVZXBW |
+ Opcode::VPMOVZXDQ |
+ Opcode::VPMOVZXWD |
+ Opcode::VPMOVZXWQ |
+ Opcode::VPMULDQ |
+ Opcode::VPMULLQ |
+ Opcode::VPMULLD |
+ Opcode::VPMULUDQ |
+ Opcode::VPSHUFD |
+ Opcode::VSHUFPD |
+ Opcode::VSHUFPS |
+ Opcode::VSQRTPD |
+ Opcode::VSQRTPS |
+ Opcode::VSQRTSS |
+ Opcode::VSQRTSD |
+ Opcode::VSUBPD |
+ Opcode::VSUBPS |
+ Opcode::VSUBSD |
+ Opcode::VSUBSS |
+ Opcode::VUCOMISD |
+ Opcode::VUCOMISS |
+ Opcode::VROUNDPD |
+ Opcode::VROUNDPS |
+ Opcode::VROUNDSD |
+ Opcode::VROUNDSS |
+ Opcode::VPSLLD |
+ Opcode::VPSLLQ |
+ Opcode::VPSLLW |
+ Opcode::VPSRAD |
+ Opcode::VPSRAW |
+ Opcode::VPSRLD |
+ Opcode::VPSRLQ |
+ Opcode::VPSRLW |
+ Opcode::VPSUBB |
+ Opcode::VPSUBW |
+ Opcode::VPSUBD |
+ Opcode::VPSUBQ |
+ Opcode::VPXOR |
+ Opcode::VPUNPCKHBW |
+ Opcode::VPUNPCKHWD |
+ Opcode::VPUNPCKHDQ |
+ Opcode::VPUNPCKHQDQ |
+ Opcode::VPUNPCKLBW |
+ Opcode::VPUNPCKLWD |
+ Opcode::VPUNPCKLDQ |
+ Opcode::VPUNPCKLQDQ |
+ Opcode::VUNPCKHPD |
+ Opcode::VUNPCKHPS |
+ Opcode::VUNPCKLPD |
+ Opcode::VUNPCKLPS |
+ Opcode::VPCMPESTRI |
+ Opcode::VPCMPESTRM |
+ Opcode::VPCMPISTRI |
+ Opcode::VPCMPISTRM |
+ Opcode::VBROADCASTSS |
+ Opcode::VBROADCASTSD |
+ Opcode::VBROADCASTF128 |
+ Opcode::VBROADCASTSD |
+ Opcode::VBROADCASTSS |
+ Opcode::VINSERTF128 |
+ Opcode::VEXTRACTF128 |
+ Opcode::VMASKMOVPD |
+ Opcode::VMASKMOVPS |
+ Opcode::VPERMILPD |
+ Opcode::VPERMILPS |
+ Opcode::VPERM2F128 |
+ Opcode::VZEROUPPER |
+ Opcode::VZEROALL => {
+ if !decoder.feature_avx() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::HRESET => {
+ if !decoder.feature_hreset() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VP2INTERSECTD |
+ Opcode::VP2INTERSECTQ => {
+ if !decoder.feature_avx512_vp2intersect() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::RDPRU => {
+ if !decoder.feature_rdpru() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::CRC32 |
+ Opcode::PCMPESTRI |
+ Opcode::PCMPESTRM |
+ Opcode::PCMPISTRI |
+ Opcode::PCMPISTRM |
+ Opcode::PCMPGTQ => {
+ if !decoder.feature_sse4_2() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::MONITOR |
+ Opcode::MWAIT => {
+ if !decoder.feature_monitor() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VPRORRD |
+ Opcode::VPRORRQ => {
+ if !decoder.feature_avx512_f_typo() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::PHMINPOSUW |
+ Opcode::PMULDQ |
+ Opcode::PMULLD |
+ Opcode::DPPS |
+ Opcode::DPPD |
+ Opcode::PACKUSDW |
+ Opcode::PCMPEQQ |
+ Opcode::PTEST |
+ Opcode::MOVNTDQA |
+ Opcode::ROUNDSS |
+ Opcode::ROUNDSD |
+ Opcode::ROUNDPS |
+ Opcode::ROUNDPD |
+ Opcode::PMAXSB |
+ Opcode::PMAXSD |
+ Opcode::PMAXUW |
+ Opcode::PMAXUD |
+ Opcode::PMINSD |
+ Opcode::PMINSB |
+ Opcode::PMINUD |
+ Opcode::PMINUW |
+ Opcode::BLENDW |
+ Opcode::PBLENDW |
+ Opcode::BLENDVPS |
+ Opcode::BLENDVPD |
+ Opcode::PBLENDVB |
+ Opcode::BLENDPS |
+ Opcode::BLENDPD |
+ Opcode::MPSADBW |
+ Opcode::PMOVZXDQ |
+ Opcode::PMOVSXDQ |
+ Opcode::PMOVZXBD |
+ Opcode::PMOVSXBD |
+ Opcode::PMOVZXWQ |
+ Opcode::PMOVSXWQ |
+ Opcode::PMOVZXBQ |
+ Opcode::PMOVSXBQ |
+ Opcode::PMOVSXWD |
+ Opcode::PMOVZXWD |
+ Opcode::PEXTRQ |
+ Opcode::PEXTRD |
+ Opcode::PEXTRB |
+ Opcode::PMOVSXBW |
+ Opcode::PMOVZXBW |
+ Opcode::PINSRQ |
+ Opcode::PINSRD |
+ Opcode::PINSRB |
+ Opcode::EXTRACTPS |
+ Opcode::INSERTPS => {
+ if !decoder.feature_sse4_1() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::KANDB |
+ Opcode::KANDNB |
+ Opcode::KADDB |
+ Opcode::KTESTB |
+ Opcode::KADDW |
+ Opcode::KTESTW |
+ Opcode::KMOVB |
+ Opcode::KNOTB |
+ Opcode::KORB |
+ Opcode::KORTESTB |
+ Opcode::KSHIFTLB |
+ Opcode::KSHIFTRB |
+ Opcode::KXNORB |
+ Opcode::KXORB |
+ Opcode::VBROADCASTF32X2 |
+ Opcode::VBROADCASTF64X2 |
+ Opcode::VBROADCASTF32X8 |
+ Opcode::VBROADCASTI32X8 |
+ Opcode::VBROADCASTI64X2 |
+ Opcode::VBROADCASTI32X2 |
+ Opcode::VEXTRACTF32X8 |
+ Opcode::VEXTRACTI32X8 |
+ Opcode::VGETEXPSD |
+ Opcode::VGETEXPSS |
+ Opcode::VXORPD |
+ Opcode::VXORPS |
+ Opcode::VPEXTRD |
+ Opcode::VPEXTRQ |
+ Opcode::VPINSRD |
+ Opcode::VPINSRQ |
+ Opcode::VANDNPD |
+ Opcode::VANDNPS |
+ Opcode::VANDPD |
+ Opcode::VANDPS |
+ Opcode::VORPD |
+ Opcode::VORPS |
+ Opcode::VCVTTPD2QQ |
+ Opcode::VCVTPD2QQ |
+ Opcode::VCVTTPD2UQQ |
+ Opcode::VCVTPD2UQQ |
+ Opcode::VCVTTPS2QQ |
+ Opcode::VCVTPS2QQ |
+ Opcode::VCVTTPS2UQQ |
+ Opcode::VCVTPS2UQQ |
+ Opcode::VCVTUQQ2PD |
+ Opcode::VCVTUQQ2PS |
+ Opcode::VEXTRACTF64X2 |
+ Opcode::VEXTRACTI64X2 |
+ Opcode::VFPCLASSPD |
+ Opcode::VFPCLASSPS |
+ Opcode::VFPCLASSSD |
+ Opcode::VFPCLASSSS |
+ Opcode::VINSERTF64X2 |
+ Opcode::VINSERTF32X8 |
+ Opcode::VINSERTI32X8 |
+ Opcode::VINSERTI64X2 |
+ Opcode::VPMOVM2D |
+ Opcode::VPMOVM2Q |
+ Opcode::VPMOVB2D |
+ Opcode::VPMOVQ2M |
+ Opcode::VRANGEPD |
+ Opcode::VRANGEPS |
+ Opcode::VRANGESD |
+ Opcode::VRANGESS |
+ Opcode::VREDUCEPD |
+ Opcode::VREDUCEPS |
+ Opcode::VREDUCESD |
+ Opcode::VREDUCESS => {
+ if !decoder.feature_avx512_dq() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::ADCX |
+ Opcode::ADOX => {
+ if !decoder.feature_adx() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::FXSAVE |
+ Opcode::FXRSTOR => {
+ if !decoder.feature_fxsr() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::XABORT |
+ Opcode::XBEGIN |
+ Opcode::XEND |
+ Opcode::XTEST => {
+ if !decoder.feature_tsx() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::TPAUSE |
+ Opcode::UMONITOR |
+ Opcode::UMWAIT => {
+ if !decoder.feature_waitpkg() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::CLTS |
+ Opcode::LAR |
+ Opcode::LGDT |
+ Opcode::LIDT |
+ Opcode::LLDT |
+ Opcode::LMSW |
+ Opcode::LSL |
+ Opcode::SGDT |
+ Opcode::SIDT |
+ Opcode::SLDT |
+ Opcode::SMSW |
+ Opcode::STR |
+ Opcode::LTR |
+ Opcode::VERR |
+ Opcode::VERW => {
+ if !decoder.feature_80286() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::SYSENTER |
+ Opcode::SYSEXIT => {
+ if !decoder.feature_sysenter() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::INVVPID => {
+ if !decoder.feature_invpcid_unimplemented() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VP4DPWSSDS |
+ Opcode::VP4DPWSSD => {
+ if !decoder.feature_avx512_4vnniw() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VPDPBUSDS |
+ Opcode::VPDPBUSD |
+ Opcode::VPDPWSSDS |
+ Opcode::VPDPWSSD => {
+ if !decoder.feature_avx512_vnni() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VGATHERPF0DPD |
+ Opcode::VGATHERPF0DPS |
+ Opcode::VGATHERPF0QPD |
+ Opcode::VGATHERPF0QPS |
+ Opcode::VGATHERPF1DPD |
+ Opcode::VGATHERPF1DPS |
+ Opcode::VGATHERPF1QPD |
+ Opcode::VGATHERPF1QPS |
+ Opcode::VSCATTERPF0DPD |
+ Opcode::VSCATTERPF0DPS |
+ Opcode::VSCATTERPF0QPD |
+ Opcode::VSCATTERPF0QPS |
+ Opcode::VSCATTERPF1DPD |
+ Opcode::VSCATTERPF1DPS |
+ Opcode::VSCATTERPF1QPD |
+ Opcode::VSCATTERPF1QPS => {
+ if !decoder.feature_avx512_pf() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VPBROADCASTMW2D |
+ Opcode::VPBROADCASTMB2Q |
+ Opcode::VPBROADCASTM |
+ Opcode::VPCONFLICTD |
+ Opcode::VPCONFLICTQ |
+ Opcode::VPLZCNTD |
+ Opcode::VPLZCNTQ => {
+ if !decoder.feature_avx512_cd() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VCVTNE2PS2BF16 |
+ Opcode::VCVTNEPS2BF16 |
+ Opcode::VDPBF16PS => {
+ if !decoder.feature_avx512_bf16() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VPMOVQ2M => {
+ if !decoder.feature_avx512bw_unimplemented() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::RDPKRU |
+ Opcode::WRPKRU => {
+ if !decoder.feature_mpk() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VSCATTERDPS |
+ Opcode::VSCATTERDPD |
+ Opcode::VSCATTERQPS |
+ Opcode::VSCATTERQPD => {
+ if !decoder.feature_avx512_f__vl_unimplemented() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::SHA1RNDS4 |
+ Opcode::SHA1NEXTE |
+ Opcode::SHA1MSG1 |
+ Opcode::SHA1MSG2 |
+ Opcode::SHA256RNDS2 |
+ Opcode::SHA256MSG1 |
+ Opcode::SHA256MSG2 => {
+ if !decoder.feature_sha() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::WRUSS |
+ Opcode::WRSS |
+ Opcode::INCSSP |
+ Opcode::SAVEPREVSSP |
+ Opcode::SETSSBSY |
+ Opcode::CLRSSBSY |
+ Opcode::RSTORSSP |
+ Opcode::ENDBR64 |
+ Opcode::ENDBR32 => {
+ if !decoder.feature_cet() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::BSWAP |
+ Opcode::CMPXCHG |
+ Opcode::INVD |
+ Opcode::WBINVD |
+ Opcode::INVLPG |
+ Opcode::XADD => {
+ if !decoder.feature_80486() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::MOVSS |
+ Opcode::ADDSS |
+ Opcode::SUBSS |
+ Opcode::MULSS |
+ Opcode::DIVSS |
+ Opcode::MINSS |
+ Opcode::MAXSS |
+ Opcode::SQRTSS |
+ Opcode::MOVUPS |
+ Opcode::MOVHLPS |
+ Opcode::MOVLPS |
+ Opcode::MOVHPS |
+ Opcode::MOVLHPS |
+ Opcode::UNPCKLPS |
+ Opcode::UNPCKHPS |
+ Opcode::PREFETCHNTA |
+ Opcode::PREFETCH0 |
+ Opcode::PREFETCH1 |
+ Opcode::PREFETCH2 |
+ Opcode::MOVAPS |
+ Opcode::CVTPI2PS |
+ Opcode::CVTSI2SS |
+ Opcode::MOVNTPS |
+ Opcode::CVTTSS2SI |
+ Opcode::CVTTPS2PI |
+ Opcode::CVTSS2SI |
+ Opcode::CVTPS2PI |
+ Opcode::UCOMISS |
+ Opcode::COMISS |
+ Opcode::SQRTPS |
+ Opcode::MOVMSKPS |
+ Opcode::RSQRTSS |
+ Opcode::RSQRTPS |
+ Opcode::RCPPS |
+ Opcode::RCPSS |
+ Opcode::ANDPS |
+ Opcode::ANDNPS |
+ Opcode::XORPS |
+ Opcode::ORPS |
+ Opcode::ADDPS |
+ Opcode::MULPS |
+ Opcode::SUBPS |
+ Opcode::MINPS |
+ Opcode::DIVPS |
+ Opcode::MAXPS |
+ Opcode::PSHUFW |
+ Opcode::LDMXCSR |
+ Opcode::STMXCSR |
+ Opcode::SFENCE |
+ Opcode::CMPPS |
+ Opcode::CMPSS |
+ Opcode::PINSRW |
+ Opcode::PEXTRW |
+ Opcode::SHUFPS |
+ Opcode::PMOVMSKB |
+ Opcode::PMINUB |
+ Opcode::PMAXUB |
+ Opcode::PAVGB |
+ Opcode::PAVGW |
+ Opcode::PMULHUW |
+ Opcode::MOVNTQ |
+ Opcode::PMINSW |
+ Opcode::PMAXSW |
+ Opcode::PSADBW |
+ Opcode::MASKMOVQ |
+ Opcode::LDMXCSR |
+ Opcode::STMXCSR => {
+ if !decoder.feature_sse() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::UD2 => {
+ if !decoder.feature_pentium_pro() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::JMPE => {
+ if !decoder.feature_itanium() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::BNDMK |
+ Opcode::BNDCL |
+ Opcode::BNDCU |
+ Opcode::BNDCN |
+ Opcode::BNDMOV |
+ Opcode::BNDLDX |
+ Opcode::BNDSTX => {
+ if !decoder.feature_mpx() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::SWAPGS |
+ Opcode::SLHD |
+ Opcode::CDQE |
+ Opcode::MOVSXD |
+ Opcode::CMPXCHG16B => {
+ if !decoder.feature_extra_instructions() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::RDTSCP => {
+ if !decoder.feature_rdtscp() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VBROADCASTI128 |
+ Opcode::VPBROADCASTB |
+ Opcode::VPBROADCASTW |
+ Opcode::VPBROADCASTD |
+ Opcode::VPBROADCASTQ |
+ Opcode::VINSERTI128 |
+ Opcode::VEXTRACTI128 |
+ Opcode::VPMASKMOVD |
+ Opcode::VPMASKMOVQ |
+ Opcode::VPERMPS |
+ Opcode::VPERMD |
+ Opcode::VPERMPD |
+ Opcode::VPERMQ |
+ Opcode::VPERM2I128 |
+ Opcode::VPBLENDD |
+ Opcode::VPSLLVD |
+ Opcode::VPSLLVQ |
+ Opcode::VPSRLVD |
+ Opcode::VPSRLVQ |
+ Opcode::VPSRAVD => {
+ if !decoder.feature_avx2() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::PCONFIG => {
+ if !decoder.feature_pconfig() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VPMADD52HUQ |
+ Opcode::VPMADD52LUQ => {
+ if !decoder.feature_avx512_ifma() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::GF2P8AFFINEQB |
+ Opcode::GF2P8AFFINEINVQB |
+ Opcode::GF2P8MULB => {
+ if !decoder.feature_gfni() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VPCLMULQDQ => {
+ if !decoder.feature_vpclmulqdq() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::BSF |
+ Opcode::BSR |
+ Opcode::BT |
+ Opcode::BTS |
+ Opcode::BTC |
+ Opcode::BTR |
+ Opcode::CDQ |
+ Opcode::CWDE |
+ Opcode::LDS |
+ Opcode::LES |
+ Opcode::LFS |
+ Opcode::LGS |
+ Opcode::LSS |
+ Opcode::MOVZX |
+ Opcode::MOVSX |
+ Opcode::SETO |
+ Opcode::SETNO |
+ Opcode::SETB |
+ Opcode::SETAE |
+ Opcode::SETZ |
+ Opcode::SETNZ |
+ Opcode::SETBE |
+ Opcode::SETA |
+ Opcode::SETS |
+ Opcode::SETNS |
+ Opcode::SETP |
+ Opcode::SETNP |
+ Opcode::SETL |
+ Opcode::SETGE |
+ Opcode::SETLE |
+ Opcode::SETG |
+ Opcode::SHLD |
+ Opcode::SHRD => {
+ if !decoder.feature_80386() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::MOVBE => {
+ if !decoder.feature_movbe() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VCVTQQ2PD |
+ Opcode::VCVTQQ2PS |
+ Opcode::VCVTUSI2USD |
+ Opcode::VCVTUSI2USS |
+ Opcode::VEXTRACTF32X4 |
+ Opcode::VEXTRACTF64X4 |
+ Opcode::VEXTRACTI32X4 |
+ Opcode::VEXTRACTI64X4 |
+ Opcode::VFIXUPIMMSD |
+ Opcode::VFIXUPIMMSS |
+ Opcode::VINSERTI64X4 |
+ Opcode::VMOVDQA32 |
+ Opcode::VMOVDQA64 |
+ Opcode::VMOVDQU32 |
+ Opcode::VMOVDQU64 |
+ Opcode::VPCOMPRESSQ |
+ Opcode::VPCOMPRESSD |
+ Opcode::VSCALEDPD |
+ Opcode::VSCALEDPS |
+ Opcode::VSCALEDSD |
+ Opcode::VSCALEDSS |
+ Opcode::VSCATTERDD |
+ Opcode::VSCATTERDQ |
+ Opcode::VSCATTERQD |
+ Opcode::VSCATTERQQ |
+ Opcode::VADDPD |
+ Opcode::VADDPS |
+ Opcode::VCMPPD |
+ Opcode::VCMPPS |
+ Opcode::VCVTDQ2PD |
+ Opcode::VCVTDQ2PS |
+ Opcode::VCVTPD2DQ |
+ Opcode::VCVTPD2PS |
+ Opcode::VCVTPS2DQ |
+ Opcode::VCVTPS2PD |
+ Opcode::VCVTTPD2DQ |
+ Opcode::VCVTTPS2DQ |
+ Opcode::VDIVPD |
+ Opcode::VDIVPS |
+ Opcode::VMAXPD |
+ Opcode::VMAXPS |
+ Opcode::VMINPD |
+ Opcode::VMINPS |
+ Opcode::VMOVAPD |
+ Opcode::VMOVAPS |
+ Opcode::VMOVDDUP |
+ Opcode::VMOVDQA |
+ Opcode::VMOVDQU |
+ Opcode::VMOVNTDQA |
+ Opcode::VMOVNTDQ |
+ Opcode::VMOVNTPD |
+ Opcode::VMOVNTPS |
+ Opcode::VMOVSHDUP |
+ Opcode::VMOVSLDUP |
+ Opcode::VMOVUPD |
+ Opcode::VMOVUPS |
+ Opcode::VMULPD |
+ Opcode::VMULPS |
+ Opcode::VPANDD |
+ Opcode::VPANDQ |
+ Opcode::VPANDND |
+ Opcode::VPANDNQ |
+ Opcode::VPCMPEQD |
+ Opcode::VPCMPEQQ |
+ Opcode::VPCMPGTD |
+ Opcode::VPCMPGTQ |
+ Opcode::VPMAXSD |
+ Opcode::VPMAXSQ |
+ Opcode::VPMAXUD |
+ Opcode::VPMAXUQ |
+ Opcode::VPMINSD |
+ Opcode::VPMINSQ |
+ Opcode::VPMINUD |
+ Opcode::VPMINUQ |
+ Opcode::VPCMPD |
+ Opcode::VPCMPQ |
+ Opcode::VPCMPUD |
+ Opcode::VPCMPUQ |
+ Opcode::VPORD |
+ Opcode::VPORQ |
+ Opcode::VPXORD |
+ Opcode::VPXORQ |
+ Opcode::VPSLLD |
+ Opcode::VPSLLQ |
+ Opcode::VPSLLW |
+ Opcode::VPSRAD |
+ Opcode::VPSRAQ |
+ Opcode::VALIGND |
+ Opcode::VALIGNQ |
+ Opcode::VBLENDMPD |
+ Opcode::VBLENDMPS |
+ Opcode::VPROLD |
+ Opcode::VPROLQ |
+ Opcode::VPROLVD |
+ Opcode::VPROLVQ |
+ Opcode::VPRORD |
+ Opcode::VPRORQ |
+ Opcode::VPRORVD |
+ Opcode::VPRORVQ |
+ Opcode::VPUNPCKHDQ |
+ Opcode::VPUNPCKHQDQ |
+ Opcode::VPUNPCKLDQ |
+ Opcode::VPUNPCKLQDQ |
+ Opcode::VUNPCKHPD |
+ Opcode::VUNPCKHPS |
+ Opcode::VUNPCKLPD |
+ Opcode::VUNPCKLPS |
+ Opcode::VBROADCASTF32X4 |
+ Opcode::VBROADCASTF64X4 |
+ Opcode::VBROADCASTI64X4 |
+ Opcode::VBROADCASTI32X4 |
+ Opcode::VINSERTF32X4 |
+ Opcode::VINSERTI32X4 |
+ Opcode::VSHUFF32X4 |
+ Opcode::VSHUFF64X2 |
+ Opcode::VSHUFI32X4 |
+ Opcode::VSHUFI64X2 |
+ Opcode::VCOMPRESSD |
+ Opcode::VCOMPRESSQ |
+ Opcode::VCOMPRESSPD |
+ Opcode::VCOMPRESSPS |
+ Opcode::VEXPANDPD |
+ Opcode::VEXPANDPS |
+ Opcode::VCVTPD2UDQ |
+ Opcode::VCVTPS2UDQ |
+ Opcode::VCVTUDQ2PD |
+ Opcode::VCVTUDQ2PS |
+ Opcode::VCVTTPD2UDQ |
+ Opcode::VCVTTPS2UDQ |
+ Opcode::VFIXUPIMMPD |
+ Opcode::VFIXUPIMMPS |
+ Opcode::VCVTPH2PS |
+ Opcode::VCVTPS2PH |
+ Opcode::VFMADD132PD |
+ Opcode::VFMADD132PS |
+ Opcode::VFMADD213PD |
+ Opcode::VFMADD213PS |
+ Opcode::VFMADD231PD |
+ Opcode::VFMADD231PS |
+ Opcode::VFMADDSUB132PD |
+ Opcode::VFMADDSUB132PS |
+ Opcode::VFMADDSUB213PD |
+ Opcode::VFMADDSUB213PS |
+ Opcode::VFMADDSUB231PD |
+ Opcode::VFMADDSUB231PS |
+ Opcode::VFMSUB132PD |
+ Opcode::VFMSUB132PS |
+ Opcode::VFMSUB213PD |
+ Opcode::VFMSUB213PS |
+ Opcode::VFMSUB231PD |
+ Opcode::VFMSUB231PS |
+ Opcode::VFMSUBADD132PD |
+ Opcode::VFMSUBADD132PS |
+ Opcode::VFMSUBADD213PD |
+ Opcode::VFMSUBADD213PS |
+ Opcode::VFMSUBADD231PD |
+ Opcode::VFMSUBADD231PS |
+ Opcode::VFNMADD132PD |
+ Opcode::VFNMADD132PS |
+ Opcode::VFNMADD213PD |
+ Opcode::VFNMADD213PS |
+ Opcode::VFNMADD231PD |
+ Opcode::VFNMADD231PS |
+ Opcode::VFNMSUB132PD |
+ Opcode::VFNMSUB132PS |
+ Opcode::VFNMSUB213PD |
+ Opcode::VFNMSUB213PS |
+ Opcode::VFNMSUB231PD |
+ Opcode::VFNMSUB231PS |
+ Opcode::VSCATTERDPS |
+ Opcode::VSCATTERDPD |
+ Opcode::VSCATTERQPS |
+ Opcode::VSCATTERQPD |
+ Opcode::VGATHERDPD |
+ Opcode::VGATHERDPS |
+ Opcode::VGATHERQPD |
+ Opcode::VGATHERQPS |
+ Opcode::VGETEXPPD |
+ Opcode::VGETEXPPS |
+ Opcode::VGETMANTPD |
+ Opcode::VGETMANTPS |
+ Opcode::VPBLENDMD |
+ Opcode::VPBLENDMQ |
+ Opcode::VPERMD |
+ Opcode::VPERMQ |
+ Opcode::VPERMI2D |
+ Opcode::VPERMI2Q |
+ Opcode::VPERMI2PD |
+ Opcode::VPERMI2PS |
+ Opcode::VPERMT2D |
+ Opcode::VPERMT2Q |
+ Opcode::VPERMT2PD |
+ Opcode::VPERMT2PS |
+ Opcode::VPEXPANDD |
+ Opcode::VPEXPANDQ |
+ Opcode::VPGATHERDD |
+ Opcode::VPGATHERDQ |
+ Opcode::VPGATHERQD |
+ Opcode::VPGATHERQQ |
+ Opcode::VPSCATTERDD |
+ Opcode::VPSCATTERDQ |
+ Opcode::VPSCATTERQD |
+ Opcode::VPSCATTERQQ |
+ Opcode::VPMOVDB |
+ Opcode::VPMOVSDB |
+ Opcode::VPMOVUSDB |
+ Opcode::VPMOVDW |
+ Opcode::VPMOVSDW |
+ Opcode::VPMOVUSDW |
+ Opcode::VPMOVQB |
+ Opcode::VPMOVSQB |
+ Opcode::VPMOVUSQB |
+ Opcode::VPMOVQD |
+ Opcode::VPMOVSQD |
+ Opcode::VPMOVUSQD |
+ Opcode::VPMOVQW |
+ Opcode::VPMOVSQW |
+ Opcode::VPMOVUSQW |
+ Opcode::VPSRAVQ |
+ Opcode::VPTERNLOGD |
+ Opcode::VPTERNLOGQ |
+ Opcode::VPTESTMD |
+ Opcode::VPTESTMQ |
+ Opcode::VPTESTNMD |
+ Opcode::VPTESTNMQ |
+ Opcode::VRCP14PD |
+ Opcode::VRCP14PS |
+ Opcode::VRNDSCALEPD |
+ Opcode::VRNDSCALEPS |
+ Opcode::VRSQRT14PD |
+ Opcode::VRSQRT14PS |
+ Opcode::VSCALEFPS |
+ Opcode::VSCALEFPD |
+ Opcode::VPABSQ |
+ Opcode::VADDSD |
+ Opcode::VADDSS |
+ Opcode::VCMPSD |
+ Opcode::VCMPSS |
+ Opcode::VCOMISD |
+ Opcode::VCOMISS |
+ Opcode::VCVTSD2SI |
+ Opcode::VCVTSD2SS |
+ Opcode::VCVTSI2SS |
+ Opcode::VCVTSI2SD |
+ Opcode::VCVTSS2SD |
+ Opcode::VCVTSS2SI |
+ Opcode::VCVTTSS2SI |
+ Opcode::VCVTTSD2SI |
+ Opcode::VDIVSD |
+ Opcode::VDIVSS |
+ Opcode::VEXTRACTPS |
+ Opcode::VINSERTPS |
+ Opcode::VGETMANTSD |
+ Opcode::VGETMANTSS |
+ Opcode::VMOVD |
+ Opcode::VMOVQ |
+ Opcode::VMOVHLPS |
+ Opcode::VMOVHPD |
+ Opcode::VMOVHPS |
+ Opcode::VMOVLHPS |
+ Opcode::VMOVLPD |
+ Opcode::VMOVLPS |
+ Opcode::VMOVSS |
+ Opcode::VMOVSD |
+ Opcode::VSQRTSS |
+ Opcode::VSQRTSD |
+ Opcode::VSUBSD |
+ Opcode::VSUBSS |
+ Opcode::VUCOMISD |
+ Opcode::VUCOMISS |
+ Opcode::VRCP14SD |
+ Opcode::VRCP14SS |
+ Opcode::VRNDSCALESD |
+ Opcode::VRNDSCALESS |
+ Opcode::VRSQRT14SD |
+ Opcode::VRSQRT14SS |
+ Opcode::VSCALEFSS |
+ Opcode::VSCALEFSD |
+ Opcode::VINSERTF64X4 |
+ Opcode::VCVTUSI2SD |
+ Opcode::VCVTUSI2SS |
+ Opcode::VCVTSD2USI |
+ Opcode::VCVTSS2USI |
+ Opcode::VCVTTSD2USI |
+ Opcode::VCVTTSS2USI |
+ Opcode::KANDW |
+ Opcode::KANDNW |
+ Opcode::KMOVW |
+ Opcode::KNOTW |
+ Opcode::KORW |
+ Opcode::KORTESTW |
+ Opcode::KSHIFTLW |
+ Opcode::KSHIFTRW |
+ Opcode::KUNPCKBW |
+ Opcode::KXNORW |
+ Opcode::KXORW => {
+ if !decoder.feature_avx512_f() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::MONITORX |
+ Opcode::MWAITX => {
+ if !decoder.feature_emx() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::PCLMULQDQ => {
+ if !decoder.feature_pclmulqdq() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VFMADD132PD |
+ Opcode::VFMADD132PS |
+ Opcode::VFMADD132SD |
+ Opcode::VFMADD132SS |
+ Opcode::VFMADD213PD |
+ Opcode::VFMADD213PS |
+ Opcode::VFMADD213SD |
+ Opcode::VFMADD213SS |
+ Opcode::VFMADD231PD |
+ Opcode::VFMADD231PS |
+ Opcode::VFMADD231SD |
+ Opcode::VFMADD231SS |
+ Opcode::VFMADDSUB132PD |
+ Opcode::VFMADDSUB132PS |
+ Opcode::VFMADDSUB213PD |
+ Opcode::VFMADDSUB213PS |
+ Opcode::VFMADDSUB231PD |
+ Opcode::VFMADDSUB231PS |
+ Opcode::VFMSUB132PD |
+ Opcode::VFMSUB132PS |
+ Opcode::VFMSUB132SD |
+ Opcode::VFMSUB132SS |
+ Opcode::VFMSUB213PD |
+ Opcode::VFMSUB213PS |
+ Opcode::VFMSUB213SD |
+ Opcode::VFMSUB213SS |
+ Opcode::VFMSUB231PD |
+ Opcode::VFMSUB231PS |
+ Opcode::VFMSUB231SD |
+ Opcode::VFMSUB231SS |
+ Opcode::VFMSUBADD132PD |
+ Opcode::VFMSUBADD132PS |
+ Opcode::VFMSUBADD213PD |
+ Opcode::VFMSUBADD213PS |
+ Opcode::VFMSUBADD231PD |
+ Opcode::VFMSUBADD231PS |
+ Opcode::VFNMADD132PD |
+ Opcode::VFNMADD132PS |
+ Opcode::VFNMADD132SD |
+ Opcode::VFNMADD132SS |
+ Opcode::VFNMADD213PD |
+ Opcode::VFNMADD213PS |
+ Opcode::VFNMADD213SD |
+ Opcode::VFNMADD213SS |
+ Opcode::VFNMADD231PD |
+ Opcode::VFNMADD231PS |
+ Opcode::VFNMADD231SD |
+ Opcode::VFNMADD231SS |
+ Opcode::VFNMSUB132PD |
+ Opcode::VFNMSUB132PS |
+ Opcode::VFNMSUB132SD |
+ Opcode::VFNMSUB132SS |
+ Opcode::VFNMSUB213PD |
+ Opcode::VFNMSUB213PS |
+ Opcode::VFNMSUB213SD |
+ Opcode::VFNMSUB213SS |
+ Opcode::VFNMSUB231PD |
+ Opcode::VFNMSUB231PS |
+ Opcode::VFNMSUB231SD |
+ Opcode::VFNMSUB231SS => {
+ if !decoder.feature_fma3() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::XSAVEOPT => {
+ if !decoder.feature_xsaveopt() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::SYSCALL |
+ Opcode::SYSRET => {
+ if !decoder.feature_syscall() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::EXTRQ |
+ Opcode::INSERTQ |
+ Opcode::MOVNTSD |
+ Opcode::MOVNTSS => {
+ if !decoder.feature_sse4a() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VPOPCNTD |
+ Opcode::VPOPCNTQ => {
+ if !decoder.feature_avx512_vpopcntdq() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::INVEPT |
+ Opcode::INVVPID |
+ Opcode::INVPCID => {
+ if !decoder.feature_invpcid() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::BOUND => {
+ if !decoder.feature_80186_bound() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::XSUSLDTRK |
+ Opcode::XRESLDTRK => {
+ if !decoder.feature_tsxldtrk() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::CMOVA |
+ Opcode::CMOVB |
+ Opcode::CMOVG |
+ Opcode::CMOVGE |
+ Opcode::CMOVL |
+ Opcode::CMOVLE |
+ Opcode::CMOVNA |
+ Opcode::CMOVNB |
+ Opcode::CMOVNO |
+ Opcode::CMOVNP |
+ Opcode::CMOVNS |
+ Opcode::CMOVNZ |
+ Opcode::CMOVO |
+ Opcode::CMOVP |
+ Opcode::CMOVS |
+ Opcode::CMOVZ => {
+ if !decoder.feature_cmov() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::KANDQ |
+ Opcode::KANDD |
+ Opcode::KANDNQ |
+ Opcode::KANDND |
+ Opcode::KMOVD |
+ Opcode::KMOVQ |
+ Opcode::KNOTD |
+ Opcode::KNOTQ |
+ Opcode::KORD |
+ Opcode::KORQ |
+ Opcode::KADDD |
+ Opcode::KTESTD |
+ Opcode::KADDQ |
+ Opcode::KTESTQ |
+ Opcode::KORTESTD |
+ Opcode::KORTESTQ |
+ Opcode::KSHIFTLD |
+ Opcode::KSHIFTRD |
+ Opcode::KSHIFTLQ |
+ Opcode::KSHIFTRQ |
+ Opcode::KUNPCKWD |
+ Opcode::KUNPCKDQ |
+ Opcode::KXNORD |
+ Opcode::KXNORQ |
+ Opcode::KXORD |
+ Opcode::KXORQ |
+ Opcode::VPCMPEQB |
+ Opcode::VPCMPEQW |
+ Opcode::VPCMPGTB |
+ Opcode::VPCMPGTW |
+ Opcode::VPSUBUSB |
+ Opcode::VPSUBUSW |
+ Opcode::VPERMW |
+ Opcode::VPERMI2W |
+ Opcode::VPERMT2W |
+ Opcode::VPSLLVW |
+ Opcode::VPSRAVW |
+ Opcode::VPSRLVW |
+ Opcode::VPEXTRB |
+ Opcode::VPEXTRW |
+ Opcode::VPINSRB |
+ Opcode::VPINSRW |
+ Opcode::VPMULHUW |
+ Opcode::VPMULHRSW |
+ Opcode::VPADDSB |
+ Opcode::VPADDSW |
+ Opcode::VPADDUSB |
+ Opcode::VPADDUSW |
+ Opcode::VPALIGNR |
+ Opcode::VPMOVD2M |
+ Opcode::VPMOVQ2M |
+ Opcode::VPMOVWB |
+ Opcode::VDBPSADBW |
+ Opcode::VMOVDQU8 |
+ Opcode::VMOVDQU16 |
+ Opcode::VPBLENDMB |
+ Opcode::VPBLENDMW |
+ Opcode::VPCMPB |
+ Opcode::VPCMPUB |
+ Opcode::VPCMPW |
+ Opcode::VPCMPUW |
+ Opcode::VPERMW |
+ Opcode::VPERMI2B |
+ Opcode::VPERMI2W |
+ Opcode::VPMOVM2B |
+ Opcode::VPMOVM2W |
+ Opcode::VPMOVB2M |
+ Opcode::VPMOVW2M |
+ Opcode::VPMOVSWB |
+ Opcode::VPMOVUSWB |
+ Opcode::VPSLLVW |
+ Opcode::VPSRAVW |
+ Opcode::VPSRLVW |
+ Opcode::VPTESTNMB |
+ Opcode::VPTESTNMW |
+ Opcode::VPTESTMB |
+ Opcode::VPTESTMW => {
+ if !decoder.feature_avx512_bw() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::PALIGNR |
+ Opcode::PSIGNW |
+ Opcode::PSIGND |
+ Opcode::PSIGNB |
+ Opcode::PSHUFB |
+ Opcode::PMULHRSW |
+ Opcode::PMADDUBSW |
+ Opcode::PABSD |
+ Opcode::PABSW |
+ Opcode::PABSB |
+ Opcode::PHSUBSW |
+ Opcode::PHSUBW |
+ Opcode::PHSUBD |
+ Opcode::PHADDD |
+ Opcode::PHADDSW |
+ Opcode::PHADDW => {
+ if !decoder.feature_ssse3() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::CLFLUSHOPT => {
+ if !decoder.feature_clflushopt() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::PUSHA |
+ Opcode::POPA => {
+ if !decoder.feature_80186_pusha() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::GETSEC => {
+ if !decoder.feature_smx() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::AAA |
+ Opcode::AAD |
+ Opcode::AAM |
+ Opcode::AAS |
+ Opcode::DAA |
+ Opcode::DAS => {
+ if !decoder.feature_8086_bcd() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::POPCNT |
+ Opcode::LZCNT => {
+ if !decoder.feature_abm() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::PREFETCHW => {
+ if !decoder.feature_3dnowprefetch() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::RDPID => {
+ if !decoder.feature_rdpid() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::LAHF |
+ Opcode::SAHF => {
+ if !decoder.feature_lahfsahf() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::JCXZ => {
+ if !decoder.feature_jcxz() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::ENQCMD |
+ Opcode::ENQCMDS => {
+ if !decoder.feature_enqcmd() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::PTWRITE => {
+ if !decoder.feature_ptwrite() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VPERMT2B |
+ Opcode::VPERMB => {
+ if !decoder.feature_avx512_vbmi() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::F2XM1 |
+ Opcode::FABS |
+ Opcode::FADD |
+ Opcode::FADDP |
+ Opcode::FBLD |
+ Opcode::FBSTP |
+ Opcode::FCHS |
+ Opcode::FCMOVB |
+ Opcode::FCMOVBE |
+ Opcode::FCMOVE |
+ Opcode::FCMOVNB |
+ Opcode::FCMOVNBE |
+ Opcode::FCMOVNE |
+ Opcode::FCMOVNU |
+ Opcode::FCMOVU |
+ Opcode::FCOM |
+ Opcode::FCOMI |
+ Opcode::FCOMIP |
+ Opcode::FCOMP |
+ Opcode::FCOMPP |
+ Opcode::FCOS |
+ Opcode::FDECSTP |
+ Opcode::FDISI8087_NOP |
+ Opcode::FDIV |
+ Opcode::FDIVP |
+ Opcode::FDIVR |
+ Opcode::FDIVRP |
+ Opcode::FENI8087_NOP |
+ Opcode::FFREE |
+ Opcode::FFREEP |
+ Opcode::FIADD |
+ Opcode::FICOM |
+ Opcode::FICOMP |
+ Opcode::FIDIV |
+ Opcode::FIDIVR |
+ Opcode::FILD |
+ Opcode::FIMUL |
+ Opcode::FINCSTP |
+ Opcode::FIST |
+ Opcode::FISTP |
+ Opcode::FISTTP |
+ Opcode::FISUB |
+ Opcode::FISUBR |
+ Opcode::FLD |
+ Opcode::FLD1 |
+ Opcode::FLDCW |
+ Opcode::FLDENV |
+ Opcode::FLDL2E |
+ Opcode::FLDL2T |
+ Opcode::FLDLG2 |
+ Opcode::FLDLN2 |
+ Opcode::FLDPI |
+ Opcode::FLDZ |
+ Opcode::FMUL |
+ Opcode::FMULP |
+ Opcode::FNCLEX |
+ Opcode::FNINIT |
+ Opcode::FNOP |
+ Opcode::FNSAVE |
+ Opcode::FNSTCW |
+ Opcode::FNSTENV |
+ Opcode::FNSTOR |
+ Opcode::FNSTSW |
+ Opcode::FPATAN |
+ Opcode::FPREM |
+ Opcode::FPREM1 |
+ Opcode::FPTAN |
+ Opcode::FRNDINT |
+ Opcode::FRSTOR |
+ Opcode::FSCALE |
+ Opcode::FSETPM287_NOP |
+ Opcode::FSIN |
+ Opcode::FSINCOS |
+ Opcode::FSQRT |
+ Opcode::FST |
+ Opcode::FSTP |
+ Opcode::FSTPNCE |
+ Opcode::FSUB |
+ Opcode::FSUBP |
+ Opcode::FSUBR |
+ Opcode::FSUBRP |
+ Opcode::FTST |
+ Opcode::FUCOM |
+ Opcode::FUCOMI |
+ Opcode::FUCOMIP |
+ Opcode::FUCOMP |
+ Opcode::FUCOMPP |
+ Opcode::FXAM |
+ Opcode::FXCH |
+ Opcode::FXTRACT |
+ Opcode::FYL2X |
+ Opcode::FYL2XP1 => {
+ if !decoder.feature_x87() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::RDPMC |
+ Opcode::PUNPCKLBW |
+ Opcode::PUNPCKLWD |
+ Opcode::PUNPCKLDQ |
+ Opcode::PACKSSWB |
+ Opcode::PCMPGTB |
+ Opcode::PCMPGTD |
+ Opcode::PCMPGTW |
+ Opcode::PACKUSWB |
+ Opcode::PUNPCKHBW |
+ Opcode::PUNPCKHWD |
+ Opcode::PUNPCKHDQ |
+ Opcode::PACKSSDW |
+ Opcode::MOVD |
+ Opcode::MOVQ |
+ Opcode::PCMPEQB |
+ Opcode::PCMPEQD |
+ Opcode::PCMPEQW |
+ Opcode::PSRLW |
+ Opcode::PSRLD |
+ Opcode::PSRLQ |
+ Opcode::PMULLW |
+ Opcode::PSUBUSB |
+ Opcode::PSUBUSW |
+ Opcode::PAND |
+ Opcode::PADDUSB |
+ Opcode::PADDUSW |
+ Opcode::PANDN |
+ Opcode::PSRAW |
+ Opcode::PSRAD |
+ Opcode::PMULHW |
+ Opcode::PSUBSB |
+ Opcode::PSUBSW |
+ Opcode::POR |
+ Opcode::PADDSB |
+ Opcode::PADDSW |
+ Opcode::PXOR |
+ Opcode::PSLLW |
+ Opcode::PSLLD |
+ Opcode::PSLLQ |
+ Opcode::PMADDWD |
+ Opcode::PSUBB |
+ Opcode::PSUBW |
+ Opcode::PSUBD |
+ Opcode::PADDB |
+ Opcode::PADDW |
+ Opcode::PADDD |
+ Opcode::EMMS => {
+ if !decoder.feature_mmx() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VPOPCNTD |
+ Opcode::VPOPCNTQ |
+ Opcode::VPOPCNTB |
+ Opcode::VPOPCNTW |
+ Opcode::VPSHUFBITQMB |
+ Opcode::VPMULTISHIFTQB => {
+ if !decoder.feature_avx512_bitalg() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::AESDEC128KL |
+ Opcode::AESDEC256KL |
+ Opcode::AESDECWIDE128KL |
+ Opcode::AESDECWIDE256KL |
+ Opcode::AESENC128KL |
+ Opcode::AESENC256KL |
+ Opcode::AESENCWIDE128KL |
+ Opcode::AESENCWIDE256KL |
+ Opcode::ENCODEKEY128 |
+ Opcode::ENCODEKEY256 |
+ Opcode::LOADIWKEY => {
+ if !decoder.feature_keylocker() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::ENTER |
+ Opcode::LEAVE |
+ Opcode::INS |
+ Opcode::OUTS => {
+ if !decoder.feature_80186() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::CLWB => {
+ if !decoder.feature_clwb() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::V4FNMADDSS |
+ Opcode::V4FNMADDPS |
+ Opcode::V4FMADDSS |
+ Opcode::V4FMADDPS => {
+ if !decoder.feature_avx512_4fmaps() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::TDCALL |
+ Opcode::SEAMRET |
+ Opcode::SEAMOPS |
+ Opcode::SEAMCALL => {
+ if !decoder.feature_tdx() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::POPCNT => {
+ if !decoder.feature_popcnt() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::PSMASH |
+ Opcode::PVALIDATE |
+ Opcode::RMPADJUST |
+ Opcode::RMPUPDATE => {
+ if !decoder.feature_snp() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VGF2P8AFFINEQB |
+ Opcode::VGF2P8AFFINEINVQB |
+ Opcode::VGF2P8MULB => {
+ if !decoder.feature_avx512_gfni() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::FEMMS |
+ Opcode::PI2FW |
+ Opcode::PI2FD |
+ Opcode::PF2IW |
+ Opcode::PF2ID |
+ Opcode::PMULHRW |
+ Opcode::PFCMPGE |
+ Opcode::PFMIN |
+ Opcode::PFRCP |
+ Opcode::PFRSQRT |
+ Opcode::PFSUB |
+ Opcode::PFADD |
+ Opcode::PFCMPGT |
+ Opcode::PFMAX |
+ Opcode::PFRCPIT1 |
+ Opcode::PFRSQIT1 |
+ Opcode::PFSUBR |
+ Opcode::PFACC |
+ Opcode::PFCMPEQ |
+ Opcode::PFMUL |
+ Opcode::PFMULHRW |
+ Opcode::PFRCPIT2 |
+ Opcode::PFNACC |
+ Opcode::PFPNACC |
+ Opcode::PSWAPD |
+ Opcode::PAVGUSB => {
+ if !decoder.feature_3dnow() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VPCOMPRESSB |
+ Opcode::VPCOMPRESSW |
+ Opcode::VPSHLDVW |
+ Opcode::VPSHLDW |
+ Opcode::VPEXPANDB |
+ Opcode::VPEXPANDW |
+ Opcode::VPSHRDVW |
+ Opcode::VPSHRDW |
+ Opcode::VPSHLDVQ |
+ Opcode::VPSHLDVD |
+ Opcode::VPSHLDQ |
+ Opcode::VPSHLDD |
+ Opcode::VPSHRDQ |
+ Opcode::VPSHRDD |
+ Opcode::VPSHRDVQ |
+ Opcode::VPSHRDVD => {
+ if !decoder.feature_avx512_vbmi2() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::CMC |
+ Opcode::CLC |
+ Opcode::STC |
+ Opcode::CLI |
+ Opcode::STI |
+ Opcode::CLD |
+ Opcode::STD |
+ Opcode::ADD |
+ Opcode::OR |
+ Opcode::ADC |
+ Opcode::SBB |
+ Opcode::AND |
+ Opcode::XOR |
+ Opcode::SUB |
+ Opcode::CMP |
+ Opcode::SAR |
+ Opcode::SAL |
+ Opcode::SHR |
+ Opcode::SHL |
+ Opcode::RCR |
+ Opcode::RCL |
+ Opcode::ROR |
+ Opcode::ROL |
+ Opcode::INC |
+ Opcode::DEC |
+ Opcode::HLT |
+ Opcode::CALL |
+ Opcode::CALLF |
+ Opcode::JMP |
+ Opcode::JMPF |
+ Opcode::PUSH |
+ Opcode::POP |
+ Opcode::LEA |
+ Opcode::NOP |
+ Opcode::XCHG |
+ Opcode::POPF |
+ Opcode::INT |
+ Opcode::INTO |
+ Opcode::IRET |
+ Opcode::IRETD |
+ Opcode::IRETQ |
+ Opcode::RETF |
+ Opcode::ENTER |
+ Opcode::LEAVE |
+ Opcode::MOV |
+ Opcode::RETURN |
+ Opcode::PUSHF |
+ Opcode::WAIT |
+ Opcode::CBW |
+ Opcode::CWD |
+ Opcode::CQO |
+ Opcode::LODS |
+ Opcode::STOS |
+ Opcode::CMPS |
+ Opcode::SCAS |
+ Opcode::MOVS |
+ Opcode::TEST |
+ Opcode::IN |
+ Opcode::OUT |
+ Opcode::IMUL |
+ Opcode::JO |
+ Opcode::JNO |
+ Opcode::JB |
+ Opcode::JNB |
+ Opcode::JZ |
+ Opcode::JNZ |
+ Opcode::JA |
+ Opcode::JNA |
+ Opcode::JS |
+ Opcode::JNS |
+ Opcode::JP |
+ Opcode::JNP |
+ Opcode::JL |
+ Opcode::JGE |
+ Opcode::JLE |
+ Opcode::JG |
+ Opcode::UD0 |
+ Opcode::UD1 |
+ Opcode::UD2 |
+ Opcode::DIV |
+ Opcode::IDIV |
+ Opcode::MUL |
+ Opcode::NEG |
+ Opcode::NOT |
+ Opcode::XLAT |
+ Opcode::LOOPNZ |
+ Opcode::LOOPZ |
+ Opcode::LOOP |
+ Opcode::SALC => {
+ if !decoder.feature_8086() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::CLGI |
+ Opcode::STGI |
+ Opcode::SKINIT |
+ Opcode::VMLOAD |
+ Opcode::VMMCALL |
+ Opcode::VMSAVE |
+ Opcode::VMRUN |
+ Opcode::INVLPGA => {
+ if !decoder.feature_svm() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::ADDSUBPD |
+ Opcode::ADDSUBPS |
+ Opcode::HSUBPD |
+ Opcode::HADDPD |
+ Opcode::MOVSLDUP |
+ Opcode::MOVSHDUP |
+ Opcode::MOVDDUP |
+ Opcode::HADDPS |
+ Opcode::HSUBPS |
+ Opcode::LDDQU => {
+ if !decoder.feature_sse3() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::MOVUPD |
+ Opcode::PSRLDQ |
+ Opcode::PSLLDQ |
+ Opcode::MOVSD |
+ Opcode::MOVLPD |
+ Opcode::UNPCKLPD |
+ Opcode::UNPCKHPD |
+ Opcode::MOVHPD |
+ Opcode::MOVAPD |
+ Opcode::MOVMSKPD |
+ Opcode::CVTPI2PD |
+ Opcode::CVTSI2SD |
+ Opcode::MOVNTPD |
+ Opcode::MOVNTI |
+ Opcode::MOVNTDQ |
+ Opcode::CVTTPD2PI |
+ Opcode::CVTTSD2SI |
+ Opcode::CVTPD2PI |
+ Opcode::CVTSD2SI |
+ Opcode::UCOMISD |
+ Opcode::COMISD |
+ Opcode::SQRTPD |
+ Opcode::SQRTSD |
+ Opcode::ANDPD |
+ Opcode::ANDNPD |
+ Opcode::ORPD |
+ Opcode::XORPD |
+ Opcode::ADDPD |
+ Opcode::ADDSD |
+ Opcode::MULSD |
+ Opcode::MULPD |
+ Opcode::CVTPS2PD |
+ Opcode::CVTPD2PS |
+ Opcode::CVTSS2SD |
+ Opcode::CVTSD2SS |
+ Opcode::CVTPS2DQ |
+ Opcode::CVTDQ2PS |
+ Opcode::CVTTPS2DQ |
+ Opcode::SUBSD |
+ Opcode::SUBPD |
+ Opcode::MINPD |
+ Opcode::MINSD |
+ Opcode::DIVPD |
+ Opcode::DIVSD |
+ Opcode::MAXPD |
+ Opcode::MAXSD |
+ Opcode::PUNPCKLQDQ |
+ Opcode::PUNPCKHQDQ |
+ Opcode::MOVDQA |
+ Opcode::MOVDQU |
+ Opcode::PSHUFHW |
+ Opcode::PSHUFLW |
+ Opcode::PSHUFD |
+ Opcode::LFENCE |
+ Opcode::MFENCE |
+ Opcode::CLFLUSH |
+ Opcode::CMPPD |
+ Opcode::CMPPS |
+ Opcode::CMPSD |
+ Opcode::SHUFPD |
+ Opcode::PADDQ |
+ Opcode::MOVQ2DQ |
+ Opcode::MOVDQ2Q |
+ Opcode::CVTPD2DQ |
+ Opcode::CVTTPD2DQ |
+ Opcode::CVTDQ2PD |
+ Opcode::PMULUDQ |
+ Opcode::MASKMOVDQU |
+ Opcode::PSUBQ => {
+ if !decoder.feature_sse2() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VEXP2PD |
+ Opcode::VEXP2PS |
+ Opcode::VEXP2SD |
+ Opcode::VEXP2SS |
+ Opcode::VRCP28PD |
+ Opcode::VRCP28PS |
+ Opcode::VRCP28SD |
+ Opcode::VRCP28SS |
+ Opcode::VRSQRT28PD |
+ Opcode::VRSQRT28PS |
+ Opcode::VRSQRT28SD |
+ Opcode::VRSQRT28SS => {
+ if !decoder.feature_avx512_er() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::XRSTORS64 |
+ Opcode::XSAVEC64 |
+ Opcode::XSAVES64 => {
+ if !decoder.feature_xsave64() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::ARPL => {
+ if !decoder.feature_80286_arpl() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::ANDN |
+ Opcode::BEXTR |
+ Opcode::BLSI |
+ Opcode::BLSMSK |
+ Opcode::BLSR |
+ Opcode::TZCNT => {
+ if !decoder.feature_bmi1() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::BZHI |
+ Opcode::MULX |
+ Opcode::PDEP |
+ Opcode::PEXT |
+ Opcode::RORX |
+ Opcode::SARX |
+ Opcode::SHRX |
+ Opcode::SHLX => {
+ if !decoder.feature_bmi2() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::MOVDIRI |
+ Opcode::MOVDIR64B => {
+ if !decoder.feature_movdir() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VAESDEC |
+ Opcode::VAESDECLAST |
+ Opcode::VAESENC |
+ Opcode::VAESENCLAST |
+ Opcode::VAESIMC |
+ Opcode::VAESKEYGENASSIST => {
+ if !decoder.feature_vaes() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::XGETBV |
+ Opcode::XRSTOR |
+ Opcode::XRSTORS |
+ Opcode::XSAVE |
+ Opcode::XSAVEC |
+ Opcode::XSAVES |
+ Opcode::XSETBV => {
+ if !decoder.feature_xsave() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::RDRAND => {
+ if !decoder.feature_rdrand() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::CLZERO => {
+ if !decoder.feature_clzero() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::RDSEED => {
+ if !decoder.feature_rdseed() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ }
+ Ok(())
+ }
+}
+
+pub(crate) mod protected_mode {
+ use crate::generated::protected_mode::Opcode;
+ use crate::protected_mode::{InstDecoder, Instruction, DecodeError};
+ impl InstDecoder {
+ fn feature_sgx(&self) -> bool {
+ true
+ }
+ fn feature_smap(&self) -> bool {
+ true
+ }
+ fn feature_avx_unimplemented(&self) -> bool {
+ true
+ }
+ fn feature_uintr(&self) -> bool {
+ true
+ }
+ fn feature_pentium(&self) -> bool {
+ true
+ }
+ fn feature_aesni(&self) -> bool {
+ true
+ }
+ fn feature_invlpgb(&self) -> bool {
+ true
+ }
+ fn feature_fsgsbase(&self) -> bool {
+ true
+ }
+ fn feature_vmx(&self) -> bool {
+ true
+ }
+ fn feature_simd(&self) -> bool {
+ true
+ }
+ fn feature_avx(&self) -> bool {
+ true
+ }
+ fn feature_hreset(&self) -> bool {
+ true
+ }
+ fn feature_avx512_vp2intersect(&self) -> bool {
+ true
+ }
+ fn feature_rdpru(&self) -> bool {
+ true
+ }
+ fn feature_sse4_2(&self) -> bool {
+ true
+ }
+ fn feature_monitor(&self) -> bool {
+ true
+ }
+ fn feature_avx512_f_typo(&self) -> bool {
+ true
+ }
+ fn feature_sse4_1(&self) -> bool {
+ true
+ }
+ fn feature_avx512_dq(&self) -> bool {
+ true
+ }
+ fn feature_adx(&self) -> bool {
+ true
+ }
+ fn feature_fxsr(&self) -> bool {
+ true
+ }
+ fn feature_tsx(&self) -> bool {
+ true
+ }
+ fn feature_waitpkg(&self) -> bool {
+ true
+ }
+ fn feature_80286(&self) -> bool {
+ true
+ }
+ fn feature_sysenter(&self) -> bool {
+ true
+ }
+ fn feature_invpcid_unimplemented(&self) -> bool {
+ true
+ }
+ fn feature_avx512_4vnniw(&self) -> bool {
+ true
+ }
+ fn feature_avx512_vnni(&self) -> bool {
+ true
+ }
+ fn feature_avx512_pf(&self) -> bool {
+ true
+ }
+ fn feature_avx512_cd(&self) -> bool {
+ true
+ }
+ fn feature_avx512_bf16(&self) -> bool {
+ true
+ }
+ fn feature_avx512bw_unimplemented(&self) -> bool {
+ true
+ }
+ fn feature_mpk(&self) -> bool {
+ true
+ }
+ fn feature_avx512_f__vl_unimplemented(&self) -> bool {
+ true
+ }
+ fn feature_sha(&self) -> bool {
+ true
+ }
+ fn feature_cet(&self) -> bool {
+ true
+ }
+ fn feature_80486(&self) -> bool {
+ true
+ }
+ fn feature_sse(&self) -> bool {
+ true
+ }
+ fn feature_pentium_pro(&self) -> bool {
+ true
+ }
+ fn feature_itanium(&self) -> bool {
+ true
+ }
+ fn feature_mpx(&self) -> bool {
+ true
+ }
+ fn feature_extra_instructions(&self) -> bool {
+ true
+ }
+ fn feature_rdtscp(&self) -> bool {
+ true
+ }
+ fn feature_avx2(&self) -> bool {
+ true
+ }
+ fn feature_pconfig(&self) -> bool {
+ true
+ }
+ fn feature_avx512_ifma(&self) -> bool {
+ true
+ }
+ fn feature_gfni(&self) -> bool {
+ true
+ }
+ fn feature_vpclmulqdq(&self) -> bool {
+ true
+ }
+ fn feature_80386(&self) -> bool {
+ true
+ }
+ fn feature_movbe(&self) -> bool {
+ true
+ }
+ fn feature_avx512_f(&self) -> bool {
+ true
+ }
+ fn feature_emx(&self) -> bool {
+ true
+ }
+ fn feature_pclmulqdq(&self) -> bool {
+ true
+ }
+ fn feature_fma3(&self) -> bool {
+ true
+ }
+ fn feature_fma4(&self) -> bool {
+ true
+ }
+ fn feature_xsaveopt(&self) -> bool {
+ true
+ }
+ fn feature_syscall(&self) -> bool {
+ true
+ }
+ fn feature_sse4a(&self) -> bool {
+ true
+ }
+ fn feature_avx512_vpopcntdq(&self) -> bool {
+ true
+ }
+ fn feature_invpcid(&self) -> bool {
+ true
+ }
+ fn feature_80186_bound(&self) -> bool {
+ true
+ }
+ fn feature_tsxldtrk(&self) -> bool {
+ true
+ }
+ fn feature_cmov(&self) -> bool {
+ true
+ }
+ fn feature_avx512_bw(&self) -> bool {
+ true
+ }
+ fn feature_ssse3(&self) -> bool {
+ true
+ }
+ fn feature_clflushopt(&self) -> bool {
+ true
+ }
+ fn feature_80186_pusha(&self) -> bool {
+ true
+ }
+ fn feature_smx(&self) -> bool {
+ true
+ }
+ fn feature_8086_bcd(&self) -> bool {
+ true
+ }
+ fn feature_abm(&self) -> bool {
+ true
+ }
+ fn feature_3dnowprefetch(&self) -> bool {
+ true
+ }
+ fn feature_rdpid(&self) -> bool {
+ true
+ }
+ fn feature_lahfsahf(&self) -> bool {
+ true
+ }
+ fn feature_enqcmd(&self) -> bool {
+ true
+ }
+ fn feature_jecxz(&self) -> bool {
+ true
+ }
+ fn feature_new(&self) -> bool {
+ true
+ }
+ fn feature_ptwrite(&self) -> bool {
+ true
+ }
+ fn feature_avx512_vbmi(&self) -> bool {
+ true
+ }
+ fn feature_x87(&self) -> bool {
+ true
+ }
+ fn feature_mmx(&self) -> bool {
+ true
+ }
+ fn feature_avx512_bitalg(&self) -> bool {
+ true
+ }
+ fn feature_keylocker(&self) -> bool {
+ true
+ }
+ fn feature_80186(&self) -> bool {
+ true
+ }
+ fn feature_clwb(&self) -> bool {
+ true
+ }
+ fn feature_avx512_4fmaps(&self) -> bool {
+ true
+ }
+ fn feature_tdx(&self) -> bool {
+ true
+ }
+ fn feature_popcnt(&self) -> bool {
+ true
+ }
+ fn feature_snp(&self) -> bool {
+ true
+ }
+ fn feature_avx512_gfni(&self) -> bool {
+ true
+ }
+ fn feature_3dnow(&self) -> bool {
+ true
+ }
+ fn feature_avx512_vbmi2(&self) -> bool {
+ true
+ }
+ fn feature_8086(&self) -> bool {
+ true
+ }
+ fn feature_svm(&self) -> bool {
+ true
+ }
+ fn feature_sse3(&self) -> bool {
+ true
+ }
+ fn feature_sse2(&self) -> bool {
+ true
+ }
+ fn feature_avx512_er(&self) -> bool {
+ true
+ }
+ fn feature_xsave64(&self) -> bool {
+ true
+ }
+ fn feature_80286_arpl(&self) -> bool {
+ true
+ }
+ fn feature_bmi1(&self) -> bool {
+ true
+ }
+ fn feature_bmi2(&self) -> bool {
+ true
+ }
+ fn feature_movdir(&self) -> bool {
+ true
+ }
+ fn feature_vaes(&self) -> bool {
+ true
+ }
+ fn feature_xsave(&self) -> bool {
+ true
+ }
+ fn feature_rdrand(&self) -> bool {
+ true
+ }
+ fn feature_clzero(&self) -> bool {
+ true
+ }
+ fn feature_rdseed(&self) -> bool {
+ true
+ }
+ }
+ pub(crate) fn revise_instruction(decoder: &InstDecoder, inst: &mut Instruction) -> Result<(), DecodeError> {
+ if inst.prefixes.evex().is_some() {
+ if !decoder.avx512() {
+ return Err(DecodeError::InvalidOpcode);
+ } else {
+ return Ok(());
+ }
+ }
+
+ // for some instructions (tzcnt), not having an extension means the instruction is
+ // interpreted as another, rather than being simply rejected.
+ // we might still reject the alternate instruction later, if the extension adding *it*
+ // is also not supported.
+ if inst.opcode == Opcode::TZCNT {
+ if !decoder.bmi1() {
+ // tzcnt is only supported if bmi1 is enabled. without bmi1, this decodes as bsf.
+ inst.opcode = Opcode::BSF;
+ }
+ }
+
+ match inst.opcode {
+ // we'll never be rejecting the instruction `Invalid`
+ Opcode::Invalid => {}
+ Opcode::ENCLS |
+ Opcode::ENCLU |
+ Opcode::ENCLV => {
+ if !decoder.feature_sgx() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::CLAC |
+ Opcode::STAC => {
+ if !decoder.feature_smap() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VPMAXUB |
+ Opcode::VPMAXUB => {
+ if !decoder.feature_avx_unimplemented() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::UIRET |
+ Opcode::TESTUI |
+ Opcode::CLUI |
+ Opcode::STUI |
+ Opcode::SENDUIPI => {
+ if !decoder.feature_uintr() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::CPUID |
+ Opcode::WRMSR |
+ Opcode::RDTSC |
+ Opcode::RDMSR |
+ Opcode::RSM |
+ Opcode::CMPXCHG8B => {
+ if !decoder.feature_pentium() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::AESKEYGENASSIST |
+ Opcode::AESIMC |
+ Opcode::AESENC |
+ Opcode::AESENCLAST |
+ Opcode::AESDEC |
+ Opcode::AESDECLAST => {
+ if !decoder.feature_aesni() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::INVLPGB |
+ Opcode::TLBSYNC => {
+ if !decoder.feature_invlpgb() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::RDFSBASE |
+ Opcode::RDGSBASE |
+ Opcode::WRFSBASE |
+ Opcode::WRGSBASE => {
+ if !decoder.feature_fsgsbase() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VMPTRLD |
+ Opcode::VMPTRST |
+ Opcode::VMCLEAR |
+ Opcode::VMREAD |
+ Opcode::VMWRITE |
+ Opcode::VMCALL |
+ Opcode::VMLAUNCH |
+ Opcode::VMRESUME |
+ Opcode::VMXOFF |
+ Opcode::VMXON |
+ Opcode::INVEPT |
+ Opcode::INVVPID |
+ Opcode::VMFUNC => {
+ if !decoder.feature_vmx() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VLDDQU |
+ Opcode::VPADDB |
+ Opcode::VPADDD |
+ Opcode::VPADDQ |
+ Opcode::VPADDW |
+ Opcode::VPABSB |
+ Opcode::VPABSW |
+ Opcode::VPABSD |
+ Opcode::VMAXSD |
+ Opcode::VMAXSS |
+ Opcode::VMINSD |
+ Opcode::VMINSS |
+ Opcode::VMULSD |
+ Opcode::VMULSS |
+ Opcode::VRCPSS |
+ Opcode::VPSUBUSB |
+ Opcode::VPSUBUSW |
+ Opcode::VXORPD |
+ Opcode::VXORPS |
+ Opcode::VPAVGB |
+ Opcode::VPAVGW |
+ Opcode::VANDNPD |
+ Opcode::VANDNPS |
+ Opcode::VPHADDD |
+ Opcode::VPHADDSW |
+ Opcode::VPHADDW |
+ Opcode::VANDPD |
+ Opcode::VANDPS |
+ Opcode::VPADDSB |
+ Opcode::VPADDSW |
+ Opcode::VPADDUSB |
+ Opcode::VPADDUSW |
+ Opcode::VPHSUBD |
+ Opcode::VPHSUBSW |
+ Opcode::VPHSUBW |
+ Opcode::VHADDPD |
+ Opcode::VHADDPS |
+ Opcode::VHSUBPD |
+ Opcode::VHSUBPS |
+ Opcode::VORPD |
+ Opcode::VORPS |
+ Opcode::VPBLENDVB |
+ Opcode::VPBLENDW |
+ Opcode::VADDSUBPD |
+ Opcode::VADDSUBPS |
+ Opcode::VRSQRTPS |
+ Opcode::VRSQRTSS |
+ Opcode::VPALIGNR |
+ Opcode::VPSUBSB |
+ Opcode::VPSUBSW |
+ Opcode::VPMULHUW |
+ Opcode::VPMULHW |
+ Opcode::VPMULLW |
+ Opcode::VPSHUFB |
+ Opcode::VPSHUFHW |
+ Opcode::VPSHUFLW |
+ Opcode::VPHMINPOSUW |
+ Opcode::VRCPPS |
+ Opcode::VMPSADBW |
+ Opcode::VPMADDUBSW |
+ Opcode::VPMADDWD |
+ Opcode::VMASKMOVDQU |
+ Opcode::VPMOVMSKB |
+ Opcode::VPSADBW |
+ Opcode::VPSLLDQ |
+ Opcode::VPSRLDQ |
+ Opcode::VDPPD |
+ Opcode::VDPPS |
+ Opcode::VLDMXCSR |
+ Opcode::VSTMXCSR |
+ Opcode::VMOVMSKPD |
+ Opcode::VMOVMSKPS |
+ Opcode::VPTEST |
+ Opcode::VTESTPD |
+ Opcode::VTESTPS |
+ Opcode::VPEXTRB |
+ Opcode::VPEXTRW |
+ Opcode::VPEXTRD |
+ Opcode::VPEXTRQ |
+ Opcode::VPACKSSDW |
+ Opcode::VPACKUSDW |
+ Opcode::VPACKSSWB |
+ Opcode::VPACKUSWB |
+ Opcode::VBLENDPD |
+ Opcode::VBLENDPS |
+ Opcode::VBLENDVPD |
+ Opcode::VBLENDVPS |
+ Opcode::VPMULHRSW |
+ Opcode::VPAND |
+ Opcode::VPANDN |
+ Opcode::VPOR |
+ Opcode::VPCMPEQB |
+ Opcode::VPCMPEQD |
+ Opcode::VPCMPEQQ |
+ Opcode::VPCMPEQW |
+ Opcode::VPCMPGTB |
+ Opcode::VPCMPGTD |
+ Opcode::VPCMPGTQ |
+ Opcode::VPCMPGTW |
+ Opcode::VPMAXSB |
+ Opcode::VPMAXSD |
+ Opcode::VPMAXSW |
+ Opcode::VPMAXUB |
+ Opcode::VPMAXUW |
+ Opcode::VPMINSB |
+ Opcode::VPMINSW |
+ Opcode::VPMINUB |
+ Opcode::VPMINUW |
+ Opcode::VPMAXUD |
+ Opcode::VPMINSD |
+ Opcode::VPSIGNB |
+ Opcode::VPSIGNW |
+ Opcode::VPSIGND |
+ Opcode::VPINSRB |
+ Opcode::VPINSRW |
+ Opcode::VPINSRD |
+ Opcode::VPINSRQ |
+ Opcode::VPMOVSXBD |
+ Opcode::VPMOVSXBQ |
+ Opcode::VPMOVSXBW |
+ Opcode::VPMOVSXDQ |
+ Opcode::VPMOVSXWD |
+ Opcode::VPMOVSXWQ |
+ Opcode::VPMOVZXBD |
+ Opcode::VPMOVZXBQ |
+ Opcode::VPMOVZXBW |
+ Opcode::VPMOVZXDQ |
+ Opcode::VPMOVZXWD |
+ Opcode::VPMOVZXWQ |
+ Opcode::VPMULDQ |
+ Opcode::VPMULLQ |
+ Opcode::VPMULLD |
+ Opcode::VPMULUDQ |
+ Opcode::VPSHUFD |
+ Opcode::VSHUFPD |
+ Opcode::VSHUFPS |
+ Opcode::VSQRTPD |
+ Opcode::VSQRTPS |
+ Opcode::VSQRTSS |
+ Opcode::VSQRTSD |
+ Opcode::VSUBPD |
+ Opcode::VSUBPS |
+ Opcode::VSUBSD |
+ Opcode::VSUBSS |
+ Opcode::VUCOMISD |
+ Opcode::VUCOMISS |
+ Opcode::VROUNDPD |
+ Opcode::VROUNDPS |
+ Opcode::VROUNDSD |
+ Opcode::VROUNDSS |
+ Opcode::VPSLLD |
+ Opcode::VPSLLQ |
+ Opcode::VPSLLW |
+ Opcode::VPSRAD |
+ Opcode::VPSRAW |
+ Opcode::VPSRLD |
+ Opcode::VPSRLQ |
+ Opcode::VPSRLW |
+ Opcode::VPSUBB |
+ Opcode::VPSUBW |
+ Opcode::VPSUBD |
+ Opcode::VPSUBQ |
+ Opcode::VPXOR |
+ Opcode::VPUNPCKHBW |
+ Opcode::VPUNPCKHWD |
+ Opcode::VPUNPCKHDQ |
+ Opcode::VPUNPCKHQDQ |
+ Opcode::VPUNPCKLBW |
+ Opcode::VPUNPCKLWD |
+ Opcode::VPUNPCKLDQ |
+ Opcode::VPUNPCKLQDQ |
+ Opcode::VUNPCKHPD |
+ Opcode::VUNPCKHPS |
+ Opcode::VUNPCKLPD |
+ Opcode::VUNPCKLPS |
+ Opcode::VPCMPESTRI |
+ Opcode::VPCMPESTRM |
+ Opcode::VPCMPISTRI |
+ Opcode::VPCMPISTRM |
+ Opcode::VBROADCASTSS |
+ Opcode::VBROADCASTSD |
+ Opcode::VBROADCASTF128 |
+ Opcode::VBROADCASTSD |
+ Opcode::VBROADCASTSS |
+ Opcode::VINSERTF128 |
+ Opcode::VEXTRACTF128 |
+ Opcode::VMASKMOVPD |
+ Opcode::VMASKMOVPS |
+ Opcode::VPERMILPD |
+ Opcode::VPERMILPS |
+ Opcode::VPERM2F128 |
+ Opcode::VZEROUPPER |
+ Opcode::VZEROALL => {
+ if !decoder.feature_avx() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::HRESET => {
+ if !decoder.feature_hreset() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VP2INTERSECTD |
+ Opcode::VP2INTERSECTQ => {
+ if !decoder.feature_avx512_vp2intersect() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::RDPRU => {
+ if !decoder.feature_rdpru() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::CRC32 |
+ Opcode::PCMPESTRI |
+ Opcode::PCMPESTRM |
+ Opcode::PCMPISTRI |
+ Opcode::PCMPISTRM |
+ Opcode::PCMPGTQ => {
+ if !decoder.feature_sse4_2() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::MONITOR |
+ Opcode::MWAIT => {
+ if !decoder.feature_monitor() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VPRORRD |
+ Opcode::VPRORRQ => {
+ if !decoder.feature_avx512_f_typo() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::PHMINPOSUW |
+ Opcode::PMULDQ |
+ Opcode::PMULLD |
+ Opcode::DPPS |
+ Opcode::DPPD |
+ Opcode::PACKUSDW |
+ Opcode::PCMPEQQ |
+ Opcode::PTEST |
+ Opcode::MOVNTDQA |
+ Opcode::ROUNDSS |
+ Opcode::ROUNDSD |
+ Opcode::ROUNDPS |
+ Opcode::ROUNDPD |
+ Opcode::PMAXSB |
+ Opcode::PMAXSD |
+ Opcode::PMAXUW |
+ Opcode::PMAXUD |
+ Opcode::PMINSD |
+ Opcode::PMINSB |
+ Opcode::PMINUD |
+ Opcode::PMINUW |
+ Opcode::BLENDW |
+ Opcode::PBLENDW |
+ Opcode::BLENDVPS |
+ Opcode::BLENDVPD |
+ Opcode::PBLENDVB |
+ Opcode::BLENDPS |
+ Opcode::BLENDPD |
+ Opcode::MPSADBW |
+ Opcode::PMOVZXDQ |
+ Opcode::PMOVSXDQ |
+ Opcode::PMOVZXBD |
+ Opcode::PMOVSXBD |
+ Opcode::PMOVZXWQ |
+ Opcode::PMOVSXWQ |
+ Opcode::PMOVZXBQ |
+ Opcode::PMOVSXBQ |
+ Opcode::PMOVSXWD |
+ Opcode::PMOVZXWD |
+ Opcode::PEXTRQ |
+ Opcode::PEXTRD |
+ Opcode::PEXTRB |
+ Opcode::PMOVSXBW |
+ Opcode::PMOVZXBW |
+ Opcode::PINSRQ |
+ Opcode::PINSRD |
+ Opcode::PINSRB |
+ Opcode::EXTRACTPS |
+ Opcode::INSERTPS => {
+ if !decoder.feature_sse4_1() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::KANDB |
+ Opcode::KANDNB |
+ Opcode::KADDB |
+ Opcode::KTESTB |
+ Opcode::KADDW |
+ Opcode::KTESTW |
+ Opcode::KMOVB |
+ Opcode::KNOTB |
+ Opcode::KORB |
+ Opcode::KORTESTB |
+ Opcode::KSHIFTLB |
+ Opcode::KSHIFTRB |
+ Opcode::KXNORB |
+ Opcode::KXORB |
+ Opcode::VBROADCASTF32X2 |
+ Opcode::VBROADCASTF64X2 |
+ Opcode::VBROADCASTF32X8 |
+ Opcode::VBROADCASTI32X8 |
+ Opcode::VBROADCASTI64X2 |
+ Opcode::VBROADCASTI32X2 |
+ Opcode::VEXTRACTF32X8 |
+ Opcode::VEXTRACTI32X8 |
+ Opcode::VGETEXPSD |
+ Opcode::VGETEXPSS |
+ Opcode::VXORPD |
+ Opcode::VXORPS |
+ Opcode::VPEXTRD |
+ Opcode::VPEXTRQ |
+ Opcode::VPINSRD |
+ Opcode::VPINSRQ |
+ Opcode::VANDNPD |
+ Opcode::VANDNPS |
+ Opcode::VANDPD |
+ Opcode::VANDPS |
+ Opcode::VORPD |
+ Opcode::VORPS |
+ Opcode::VCVTTPD2QQ |
+ Opcode::VCVTPD2QQ |
+ Opcode::VCVTTPD2UQQ |
+ Opcode::VCVTPD2UQQ |
+ Opcode::VCVTTPS2QQ |
+ Opcode::VCVTPS2QQ |
+ Opcode::VCVTTPS2UQQ |
+ Opcode::VCVTPS2UQQ |
+ Opcode::VCVTUQQ2PD |
+ Opcode::VCVTUQQ2PS |
+ Opcode::VEXTRACTF64X2 |
+ Opcode::VEXTRACTI64X2 |
+ Opcode::VFPCLASSPD |
+ Opcode::VFPCLASSPS |
+ Opcode::VFPCLASSSD |
+ Opcode::VFPCLASSSS |
+ Opcode::VINSERTF64X2 |
+ Opcode::VINSERTF32X8 |
+ Opcode::VINSERTI32X8 |
+ Opcode::VINSERTI64X2 |
+ Opcode::VPMOVM2D |
+ Opcode::VPMOVM2Q |
+ Opcode::VPMOVB2D |
+ Opcode::VPMOVQ2M |
+ Opcode::VRANGEPD |
+ Opcode::VRANGEPS |
+ Opcode::VRANGESD |
+ Opcode::VRANGESS |
+ Opcode::VREDUCEPD |
+ Opcode::VREDUCEPS |
+ Opcode::VREDUCESD |
+ Opcode::VREDUCESS => {
+ if !decoder.feature_avx512_dq() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::ADCX |
+ Opcode::ADOX => {
+ if !decoder.feature_adx() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::FXSAVE |
+ Opcode::FXRSTOR => {
+ if !decoder.feature_fxsr() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::XABORT |
+ Opcode::XBEGIN |
+ Opcode::XEND |
+ Opcode::XTEST => {
+ if !decoder.feature_tsx() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::TPAUSE |
+ Opcode::UMONITOR |
+ Opcode::UMWAIT => {
+ if !decoder.feature_waitpkg() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::CLTS |
+ Opcode::LAR |
+ Opcode::LGDT |
+ Opcode::LIDT |
+ Opcode::LLDT |
+ Opcode::LMSW |
+ Opcode::LSL |
+ Opcode::SGDT |
+ Opcode::SIDT |
+ Opcode::SLDT |
+ Opcode::SMSW |
+ Opcode::STR |
+ Opcode::LTR |
+ Opcode::VERR |
+ Opcode::VERW => {
+ if !decoder.feature_80286() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::SYSENTER |
+ Opcode::SYSEXIT => {
+ if !decoder.feature_sysenter() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::INVVPID => {
+ if !decoder.feature_invpcid_unimplemented() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VP4DPWSSDS |
+ Opcode::VP4DPWSSD => {
+ if !decoder.feature_avx512_4vnniw() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VPDPBUSDS |
+ Opcode::VPDPBUSD |
+ Opcode::VPDPWSSDS |
+ Opcode::VPDPWSSD => {
+ if !decoder.feature_avx512_vnni() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VGATHERPF0DPD |
+ Opcode::VGATHERPF0DPS |
+ Opcode::VGATHERPF0QPD |
+ Opcode::VGATHERPF0QPS |
+ Opcode::VGATHERPF1DPD |
+ Opcode::VGATHERPF1DPS |
+ Opcode::VGATHERPF1QPD |
+ Opcode::VGATHERPF1QPS |
+ Opcode::VSCATTERPF0DPD |
+ Opcode::VSCATTERPF0DPS |
+ Opcode::VSCATTERPF0QPD |
+ Opcode::VSCATTERPF0QPS |
+ Opcode::VSCATTERPF1DPD |
+ Opcode::VSCATTERPF1DPS |
+ Opcode::VSCATTERPF1QPD |
+ Opcode::VSCATTERPF1QPS => {
+ if !decoder.feature_avx512_pf() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VPBROADCASTMW2D |
+ Opcode::VPBROADCASTMB2Q |
+ Opcode::VPBROADCASTM |
+ Opcode::VPCONFLICTD |
+ Opcode::VPCONFLICTQ |
+ Opcode::VPLZCNTD |
+ Opcode::VPLZCNTQ => {
+ if !decoder.feature_avx512_cd() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VCVTNE2PS2BF16 |
+ Opcode::VCVTNEPS2BF16 |
+ Opcode::VDPBF16PS => {
+ if !decoder.feature_avx512_bf16() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VPMOVQ2M => {
+ if !decoder.feature_avx512bw_unimplemented() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::RDPKRU |
+ Opcode::WRPKRU => {
+ if !decoder.feature_mpk() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VSCATTERDPS |
+ Opcode::VSCATTERDPD |
+ Opcode::VSCATTERQPS |
+ Opcode::VSCATTERQPD => {
+ if !decoder.feature_avx512_f__vl_unimplemented() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::SHA1RNDS4 |
+ Opcode::SHA1NEXTE |
+ Opcode::SHA1MSG1 |
+ Opcode::SHA1MSG2 |
+ Opcode::SHA256RNDS2 |
+ Opcode::SHA256MSG1 |
+ Opcode::SHA256MSG2 => {
+ if !decoder.feature_sha() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::WRUSS |
+ Opcode::WRSS |
+ Opcode::INCSSP |
+ Opcode::SAVEPREVSSP |
+ Opcode::SETSSBSY |
+ Opcode::CLRSSBSY |
+ Opcode::RSTORSSP |
+ Opcode::ENDBR64 |
+ Opcode::ENDBR32 => {
+ if !decoder.feature_cet() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::BSWAP |
+ Opcode::CMPXCHG |
+ Opcode::INVD |
+ Opcode::WBINVD |
+ Opcode::INVLPG |
+ Opcode::XADD => {
+ if !decoder.feature_80486() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::MOVSS |
+ Opcode::ADDSS |
+ Opcode::SUBSS |
+ Opcode::MULSS |
+ Opcode::DIVSS |
+ Opcode::MINSS |
+ Opcode::MAXSS |
+ Opcode::SQRTSS |
+ Opcode::MOVUPS |
+ Opcode::MOVHLPS |
+ Opcode::MOVLPS |
+ Opcode::MOVHPS |
+ Opcode::MOVLHPS |
+ Opcode::UNPCKLPS |
+ Opcode::UNPCKHPS |
+ Opcode::PREFETCHNTA |
+ Opcode::PREFETCH0 |
+ Opcode::PREFETCH1 |
+ Opcode::PREFETCH2 |
+ Opcode::MOVAPS |
+ Opcode::CVTPI2PS |
+ Opcode::CVTSI2SS |
+ Opcode::MOVNTPS |
+ Opcode::CVTTSS2SI |
+ Opcode::CVTTPS2PI |
+ Opcode::CVTSS2SI |
+ Opcode::CVTPS2PI |
+ Opcode::UCOMISS |
+ Opcode::COMISS |
+ Opcode::SQRTPS |
+ Opcode::MOVMSKPS |
+ Opcode::RSQRTSS |
+ Opcode::RSQRTPS |
+ Opcode::RCPPS |
+ Opcode::RCPSS |
+ Opcode::ANDPS |
+ Opcode::ANDNPS |
+ Opcode::XORPS |
+ Opcode::ORPS |
+ Opcode::ADDPS |
+ Opcode::MULPS |
+ Opcode::SUBPS |
+ Opcode::MINPS |
+ Opcode::DIVPS |
+ Opcode::MAXPS |
+ Opcode::PSHUFW |
+ Opcode::LDMXCSR |
+ Opcode::STMXCSR |
+ Opcode::SFENCE |
+ Opcode::CMPPS |
+ Opcode::CMPSS |
+ Opcode::PINSRW |
+ Opcode::PEXTRW |
+ Opcode::SHUFPS |
+ Opcode::PMOVMSKB |
+ Opcode::PMINUB |
+ Opcode::PMAXUB |
+ Opcode::PAVGB |
+ Opcode::PAVGW |
+ Opcode::PMULHUW |
+ Opcode::MOVNTQ |
+ Opcode::PMINSW |
+ Opcode::PMAXSW |
+ Opcode::PSADBW |
+ Opcode::MASKMOVQ |
+ Opcode::LDMXCSR |
+ Opcode::STMXCSR => {
+ if !decoder.feature_sse() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::UD2 => {
+ if !decoder.feature_pentium_pro() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::JMPE => {
+ if !decoder.feature_itanium() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::BNDMK |
+ Opcode::BNDCL |
+ Opcode::BNDCU |
+ Opcode::BNDCN |
+ Opcode::BNDMOV |
+ Opcode::BNDLDX |
+ Opcode::BNDSTX => {
+ if !decoder.feature_mpx() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::SWAPGS |
+ Opcode::SLHD |
+ Opcode::CDQE |
+ Opcode::MOVSXD |
+ Opcode::CMPXCHG16B => {
+ if !decoder.feature_extra_instructions() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::RDTSCP => {
+ if !decoder.feature_rdtscp() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VBROADCASTI128 |
+ Opcode::VPBROADCASTB |
+ Opcode::VPBROADCASTW |
+ Opcode::VPBROADCASTD |
+ Opcode::VPBROADCASTQ |
+ Opcode::VINSERTI128 |
+ Opcode::VEXTRACTI128 |
+ Opcode::VPMASKMOVD |
+ Opcode::VPMASKMOVQ |
+ Opcode::VPERMPS |
+ Opcode::VPERMD |
+ Opcode::VPERMPD |
+ Opcode::VPERMQ |
+ Opcode::VPERM2I128 |
+ Opcode::VPBLENDD |
+ Opcode::VPSLLVD |
+ Opcode::VPSLLVQ |
+ Opcode::VPSRLVD |
+ Opcode::VPSRLVQ |
+ Opcode::VPSRAVD => {
+ if !decoder.feature_avx2() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::PCONFIG => {
+ if !decoder.feature_pconfig() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VPMADD52HUQ |
+ Opcode::VPMADD52LUQ => {
+ if !decoder.feature_avx512_ifma() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::GF2P8AFFINEQB |
+ Opcode::GF2P8AFFINEINVQB |
+ Opcode::GF2P8MULB => {
+ if !decoder.feature_gfni() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VPCLMULQDQ => {
+ if !decoder.feature_vpclmulqdq() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::BSF |
+ Opcode::BSR |
+ Opcode::BT |
+ Opcode::BTS |
+ Opcode::BTC |
+ Opcode::BTR |
+ Opcode::CDQ |
+ Opcode::CWDE |
+ Opcode::LDS |
+ Opcode::LES |
+ Opcode::LFS |
+ Opcode::LGS |
+ Opcode::LSS |
+ Opcode::MOVZX |
+ Opcode::MOVSX |
+ Opcode::SETO |
+ Opcode::SETNO |
+ Opcode::SETB |
+ Opcode::SETAE |
+ Opcode::SETZ |
+ Opcode::SETNZ |
+ Opcode::SETBE |
+ Opcode::SETA |
+ Opcode::SETS |
+ Opcode::SETNS |
+ Opcode::SETP |
+ Opcode::SETNP |
+ Opcode::SETL |
+ Opcode::SETGE |
+ Opcode::SETLE |
+ Opcode::SETG |
+ Opcode::SHLD |
+ Opcode::SHRD => {
+ if !decoder.feature_80386() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::MOVBE => {
+ if !decoder.feature_movbe() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VCVTQQ2PD |
+ Opcode::VCVTQQ2PS |
+ Opcode::VCVTUSI2USD |
+ Opcode::VCVTUSI2USS |
+ Opcode::VEXTRACTF32X4 |
+ Opcode::VEXTRACTF64X4 |
+ Opcode::VEXTRACTI32X4 |
+ Opcode::VEXTRACTI64X4 |
+ Opcode::VFIXUPIMMSD |
+ Opcode::VFIXUPIMMSS |
+ Opcode::VINSERTI64X4 |
+ Opcode::VMOVDQA32 |
+ Opcode::VMOVDQA64 |
+ Opcode::VMOVDQU32 |
+ Opcode::VMOVDQU64 |
+ Opcode::VPCOMPRESSQ |
+ Opcode::VPCOMPRESSD |
+ Opcode::VSCALEDPD |
+ Opcode::VSCALEDPS |
+ Opcode::VSCALEDSD |
+ Opcode::VSCALEDSS |
+ Opcode::VSCATTERDD |
+ Opcode::VSCATTERDQ |
+ Opcode::VSCATTERQD |
+ Opcode::VSCATTERQQ |
+ Opcode::VADDPD |
+ Opcode::VADDPS |
+ Opcode::VCMPPD |
+ Opcode::VCMPPS |
+ Opcode::VCVTDQ2PD |
+ Opcode::VCVTDQ2PS |
+ Opcode::VCVTPD2DQ |
+ Opcode::VCVTPD2PS |
+ Opcode::VCVTPS2DQ |
+ Opcode::VCVTPS2PD |
+ Opcode::VCVTTPD2DQ |
+ Opcode::VCVTTPS2DQ |
+ Opcode::VDIVPD |
+ Opcode::VDIVPS |
+ Opcode::VMAXPD |
+ Opcode::VMAXPS |
+ Opcode::VMINPD |
+ Opcode::VMINPS |
+ Opcode::VMOVAPD |
+ Opcode::VMOVAPS |
+ Opcode::VMOVDDUP |
+ Opcode::VMOVDQA |
+ Opcode::VMOVDQU |
+ Opcode::VMOVNTDQA |
+ Opcode::VMOVNTDQ |
+ Opcode::VMOVNTPD |
+ Opcode::VMOVNTPS |
+ Opcode::VMOVSHDUP |
+ Opcode::VMOVSLDUP |
+ Opcode::VMOVUPD |
+ Opcode::VMOVUPS |
+ Opcode::VMULPD |
+ Opcode::VMULPS |
+ Opcode::VPANDD |
+ Opcode::VPANDQ |
+ Opcode::VPANDND |
+ Opcode::VPANDNQ |
+ Opcode::VPCMPEQD |
+ Opcode::VPCMPEQQ |
+ Opcode::VPCMPGTD |
+ Opcode::VPCMPGTQ |
+ Opcode::VPMAXSD |
+ Opcode::VPMAXSQ |
+ Opcode::VPMAXUD |
+ Opcode::VPMAXUQ |
+ Opcode::VPMINSD |
+ Opcode::VPMINSQ |
+ Opcode::VPMINUD |
+ Opcode::VPMINUQ |
+ Opcode::VPCMPD |
+ Opcode::VPCMPQ |
+ Opcode::VPCMPUD |
+ Opcode::VPCMPUQ |
+ Opcode::VPORD |
+ Opcode::VPORQ |
+ Opcode::VPXORD |
+ Opcode::VPXORQ |
+ Opcode::VPSLLD |
+ Opcode::VPSLLQ |
+ Opcode::VPSLLW |
+ Opcode::VPSRAD |
+ Opcode::VPSRAQ |
+ Opcode::VALIGND |
+ Opcode::VALIGNQ |
+ Opcode::VBLENDMPD |
+ Opcode::VBLENDMPS |
+ Opcode::VPROLD |
+ Opcode::VPROLQ |
+ Opcode::VPROLVD |
+ Opcode::VPROLVQ |
+ Opcode::VPRORD |
+ Opcode::VPRORQ |
+ Opcode::VPRORVD |
+ Opcode::VPRORVQ |
+ Opcode::VPUNPCKHDQ |
+ Opcode::VPUNPCKHQDQ |
+ Opcode::VPUNPCKLDQ |
+ Opcode::VPUNPCKLQDQ |
+ Opcode::VUNPCKHPD |
+ Opcode::VUNPCKHPS |
+ Opcode::VUNPCKLPD |
+ Opcode::VUNPCKLPS |
+ Opcode::VBROADCASTF32X4 |
+ Opcode::VBROADCASTF64X4 |
+ Opcode::VBROADCASTI64X4 |
+ Opcode::VBROADCASTI32X4 |
+ Opcode::VINSERTF32X4 |
+ Opcode::VINSERTI32X4 |
+ Opcode::VSHUFF32X4 |
+ Opcode::VSHUFF64X2 |
+ Opcode::VSHUFI32X4 |
+ Opcode::VSHUFI64X2 |
+ Opcode::VCOMPRESSD |
+ Opcode::VCOMPRESSQ |
+ Opcode::VCOMPRESSPD |
+ Opcode::VCOMPRESSPS |
+ Opcode::VEXPANDPD |
+ Opcode::VEXPANDPS |
+ Opcode::VCVTPD2UDQ |
+ Opcode::VCVTPS2UDQ |
+ Opcode::VCVTUDQ2PD |
+ Opcode::VCVTUDQ2PS |
+ Opcode::VCVTTPD2UDQ |
+ Opcode::VCVTTPS2UDQ |
+ Opcode::VFIXUPIMMPD |
+ Opcode::VFIXUPIMMPS |
+ Opcode::VCVTPH2PS |
+ Opcode::VCVTPS2PH |
+ Opcode::VFMADD132PD |
+ Opcode::VFMADD132PS |
+ Opcode::VFMADD213PD |
+ Opcode::VFMADD213PS |
+ Opcode::VFMADD231PD |
+ Opcode::VFMADD231PS |
+ Opcode::VFMADDSUB132PD |
+ Opcode::VFMADDSUB132PS |
+ Opcode::VFMADDSUB213PD |
+ Opcode::VFMADDSUB213PS |
+ Opcode::VFMADDSUB231PD |
+ Opcode::VFMADDSUB231PS |
+ Opcode::VFMSUB132PD |
+ Opcode::VFMSUB132PS |
+ Opcode::VFMSUB213PD |
+ Opcode::VFMSUB213PS |
+ Opcode::VFMSUB231PD |
+ Opcode::VFMSUB231PS |
+ Opcode::VFMSUBADD132PD |
+ Opcode::VFMSUBADD132PS |
+ Opcode::VFMSUBADD213PD |
+ Opcode::VFMSUBADD213PS |
+ Opcode::VFMSUBADD231PD |
+ Opcode::VFMSUBADD231PS |
+ Opcode::VFNMADD132PD |
+ Opcode::VFNMADD132PS |
+ Opcode::VFNMADD213PD |
+ Opcode::VFNMADD213PS |
+ Opcode::VFNMADD231PD |
+ Opcode::VFNMADD231PS |
+ Opcode::VFNMSUB132PD |
+ Opcode::VFNMSUB132PS |
+ Opcode::VFNMSUB213PD |
+ Opcode::VFNMSUB213PS |
+ Opcode::VFNMSUB231PD |
+ Opcode::VFNMSUB231PS |
+ Opcode::VSCATTERDPS |
+ Opcode::VSCATTERDPD |
+ Opcode::VSCATTERQPS |
+ Opcode::VSCATTERQPD |
+ Opcode::VGATHERDPD |
+ Opcode::VGATHERDPS |
+ Opcode::VGATHERQPD |
+ Opcode::VGATHERQPS |
+ Opcode::VGETEXPPD |
+ Opcode::VGETEXPPS |
+ Opcode::VGETMANTPD |
+ Opcode::VGETMANTPS |
+ Opcode::VPBLENDMD |
+ Opcode::VPBLENDMQ |
+ Opcode::VPERMD |
+ Opcode::VPERMQ |
+ Opcode::VPERMI2D |
+ Opcode::VPERMI2Q |
+ Opcode::VPERMI2PD |
+ Opcode::VPERMI2PS |
+ Opcode::VPERMT2D |
+ Opcode::VPERMT2Q |
+ Opcode::VPERMT2PD |
+ Opcode::VPERMT2PS |
+ Opcode::VPEXPANDD |
+ Opcode::VPEXPANDQ |
+ Opcode::VPGATHERDD |
+ Opcode::VPGATHERDQ |
+ Opcode::VPGATHERQD |
+ Opcode::VPGATHERQQ |
+ Opcode::VPSCATTERDD |
+ Opcode::VPSCATTERDQ |
+ Opcode::VPSCATTERQD |
+ Opcode::VPSCATTERQQ |
+ Opcode::VPMOVDB |
+ Opcode::VPMOVSDB |
+ Opcode::VPMOVUSDB |
+ Opcode::VPMOVDW |
+ Opcode::VPMOVSDW |
+ Opcode::VPMOVUSDW |
+ Opcode::VPMOVQB |
+ Opcode::VPMOVSQB |
+ Opcode::VPMOVUSQB |
+ Opcode::VPMOVQD |
+ Opcode::VPMOVSQD |
+ Opcode::VPMOVUSQD |
+ Opcode::VPMOVQW |
+ Opcode::VPMOVSQW |
+ Opcode::VPMOVUSQW |
+ Opcode::VPSRAVQ |
+ Opcode::VPTERNLOGD |
+ Opcode::VPTERNLOGQ |
+ Opcode::VPTESTMD |
+ Opcode::VPTESTMQ |
+ Opcode::VPTESTNMD |
+ Opcode::VPTESTNMQ |
+ Opcode::VRCP14PD |
+ Opcode::VRCP14PS |
+ Opcode::VRNDSCALEPD |
+ Opcode::VRNDSCALEPS |
+ Opcode::VRSQRT14PD |
+ Opcode::VRSQRT14PS |
+ Opcode::VSCALEFPS |
+ Opcode::VSCALEFPD |
+ Opcode::VPABSQ |
+ Opcode::VADDSD |
+ Opcode::VADDSS |
+ Opcode::VCMPSD |
+ Opcode::VCMPSS |
+ Opcode::VCOMISD |
+ Opcode::VCOMISS |
+ Opcode::VCVTSD2SI |
+ Opcode::VCVTSD2SS |
+ Opcode::VCVTSI2SS |
+ Opcode::VCVTSI2SD |
+ Opcode::VCVTSS2SD |
+ Opcode::VCVTSS2SI |
+ Opcode::VCVTTSS2SI |
+ Opcode::VCVTTSD2SI |
+ Opcode::VDIVSD |
+ Opcode::VDIVSS |
+ Opcode::VEXTRACTPS |
+ Opcode::VINSERTPS |
+ Opcode::VGETMANTSD |
+ Opcode::VGETMANTSS |
+ Opcode::VMOVD |
+ Opcode::VMOVQ |
+ Opcode::VMOVHLPS |
+ Opcode::VMOVHPD |
+ Opcode::VMOVHPS |
+ Opcode::VMOVLHPS |
+ Opcode::VMOVLPD |
+ Opcode::VMOVLPS |
+ Opcode::VMOVSS |
+ Opcode::VMOVSD |
+ Opcode::VSQRTSS |
+ Opcode::VSQRTSD |
+ Opcode::VSUBSD |
+ Opcode::VSUBSS |
+ Opcode::VUCOMISD |
+ Opcode::VUCOMISS |
+ Opcode::VRCP14SD |
+ Opcode::VRCP14SS |
+ Opcode::VRNDSCALESD |
+ Opcode::VRNDSCALESS |
+ Opcode::VRSQRT14SD |
+ Opcode::VRSQRT14SS |
+ Opcode::VSCALEFSS |
+ Opcode::VSCALEFSD |
+ Opcode::VINSERTF64X4 |
+ Opcode::VCVTUSI2SD |
+ Opcode::VCVTUSI2SS |
+ Opcode::VCVTSD2USI |
+ Opcode::VCVTSS2USI |
+ Opcode::VCVTTSD2USI |
+ Opcode::VCVTTSS2USI |
+ Opcode::KANDW |
+ Opcode::KANDNW |
+ Opcode::KMOVW |
+ Opcode::KNOTW |
+ Opcode::KORW |
+ Opcode::KORTESTW |
+ Opcode::KSHIFTLW |
+ Opcode::KSHIFTRW |
+ Opcode::KUNPCKBW |
+ Opcode::KXNORW |
+ Opcode::KXORW => {
+ if !decoder.feature_avx512_f() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::MONITORX |
+ Opcode::MWAITX => {
+ if !decoder.feature_emx() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::PCLMULQDQ => {
+ if !decoder.feature_pclmulqdq() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VFMADD132PD |
+ Opcode::VFMADD132PS |
+ Opcode::VFMADD132SD |
+ Opcode::VFMADD132SS |
+ Opcode::VFMADD213PD |
+ Opcode::VFMADD213PS |
+ Opcode::VFMADD213SD |
+ Opcode::VFMADD213SS |
+ Opcode::VFMADD231PD |
+ Opcode::VFMADD231PS |
+ Opcode::VFMADD231SD |
+ Opcode::VFMADD231SS |
+ Opcode::VFMADDSUB132PD |
+ Opcode::VFMADDSUB132PS |
+ Opcode::VFMADDSUB213PD |
+ Opcode::VFMADDSUB213PS |
+ Opcode::VFMADDSUB231PD |
+ Opcode::VFMADDSUB231PS |
+ Opcode::VFMSUB132PD |
+ Opcode::VFMSUB132PS |
+ Opcode::VFMSUB132SD |
+ Opcode::VFMSUB132SS |
+ Opcode::VFMSUB213PD |
+ Opcode::VFMSUB213PS |
+ Opcode::VFMSUB213SD |
+ Opcode::VFMSUB213SS |
+ Opcode::VFMSUB231PD |
+ Opcode::VFMSUB231PS |
+ Opcode::VFMSUB231SD |
+ Opcode::VFMSUB231SS |
+ Opcode::VFMSUBADD132PD |
+ Opcode::VFMSUBADD132PS |
+ Opcode::VFMSUBADD213PD |
+ Opcode::VFMSUBADD213PS |
+ Opcode::VFMSUBADD231PD |
+ Opcode::VFMSUBADD231PS |
+ Opcode::VFNMADD132PD |
+ Opcode::VFNMADD132PS |
+ Opcode::VFNMADD132SD |
+ Opcode::VFNMADD132SS |
+ Opcode::VFNMADD213PD |
+ Opcode::VFNMADD213PS |
+ Opcode::VFNMADD213SD |
+ Opcode::VFNMADD213SS |
+ Opcode::VFNMADD231PD |
+ Opcode::VFNMADD231PS |
+ Opcode::VFNMADD231SD |
+ Opcode::VFNMADD231SS |
+ Opcode::VFNMSUB132PD |
+ Opcode::VFNMSUB132PS |
+ Opcode::VFNMSUB132SD |
+ Opcode::VFNMSUB132SS |
+ Opcode::VFNMSUB213PD |
+ Opcode::VFNMSUB213PS |
+ Opcode::VFNMSUB213SD |
+ Opcode::VFNMSUB213SS |
+ Opcode::VFNMSUB231PD |
+ Opcode::VFNMSUB231PS |
+ Opcode::VFNMSUB231SD |
+ Opcode::VFNMSUB231SS => {
+ if !decoder.feature_fma3() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::XSAVEOPT => {
+ if !decoder.feature_xsaveopt() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::SYSCALL |
+ Opcode::SYSRET => {
+ if !decoder.feature_syscall() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::EXTRQ |
+ Opcode::INSERTQ |
+ Opcode::MOVNTSD |
+ Opcode::MOVNTSS => {
+ if !decoder.feature_sse4a() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VPOPCNTD |
+ Opcode::VPOPCNTQ => {
+ if !decoder.feature_avx512_vpopcntdq() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::INVEPT |
+ Opcode::INVVPID |
+ Opcode::INVPCID => {
+ if !decoder.feature_invpcid() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::BOUND => {
+ if !decoder.feature_80186_bound() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::XSUSLDTRK |
+ Opcode::XRESLDTRK => {
+ if !decoder.feature_tsxldtrk() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::CMOVA |
+ Opcode::CMOVB |
+ Opcode::CMOVG |
+ Opcode::CMOVGE |
+ Opcode::CMOVL |
+ Opcode::CMOVLE |
+ Opcode::CMOVNA |
+ Opcode::CMOVNB |
+ Opcode::CMOVNO |
+ Opcode::CMOVNP |
+ Opcode::CMOVNS |
+ Opcode::CMOVNZ |
+ Opcode::CMOVO |
+ Opcode::CMOVP |
+ Opcode::CMOVS |
+ Opcode::CMOVZ => {
+ if !decoder.feature_cmov() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::KANDQ |
+ Opcode::KANDD |
+ Opcode::KANDNQ |
+ Opcode::KANDND |
+ Opcode::KMOVD |
+ Opcode::KMOVQ |
+ Opcode::KNOTD |
+ Opcode::KNOTQ |
+ Opcode::KORD |
+ Opcode::KORQ |
+ Opcode::KADDD |
+ Opcode::KTESTD |
+ Opcode::KADDQ |
+ Opcode::KTESTQ |
+ Opcode::KORTESTD |
+ Opcode::KORTESTQ |
+ Opcode::KSHIFTLD |
+ Opcode::KSHIFTRD |
+ Opcode::KSHIFTLQ |
+ Opcode::KSHIFTRQ |
+ Opcode::KUNPCKWD |
+ Opcode::KUNPCKDQ |
+ Opcode::KXNORD |
+ Opcode::KXNORQ |
+ Opcode::KXORD |
+ Opcode::KXORQ |
+ Opcode::VPCMPEQB |
+ Opcode::VPCMPEQW |
+ Opcode::VPCMPGTB |
+ Opcode::VPCMPGTW |
+ Opcode::VPSUBUSB |
+ Opcode::VPSUBUSW |
+ Opcode::VPERMW |
+ Opcode::VPERMI2W |
+ Opcode::VPERMT2W |
+ Opcode::VPSLLVW |
+ Opcode::VPSRAVW |
+ Opcode::VPSRLVW |
+ Opcode::VPEXTRB |
+ Opcode::VPEXTRW |
+ Opcode::VPINSRB |
+ Opcode::VPINSRW |
+ Opcode::VPMULHUW |
+ Opcode::VPMULHRSW |
+ Opcode::VPADDSB |
+ Opcode::VPADDSW |
+ Opcode::VPADDUSB |
+ Opcode::VPADDUSW |
+ Opcode::VPALIGNR |
+ Opcode::VPMOVD2M |
+ Opcode::VPMOVQ2M |
+ Opcode::VPMOVWB |
+ Opcode::VDBPSADBW |
+ Opcode::VMOVDQU8 |
+ Opcode::VMOVDQU16 |
+ Opcode::VPBLENDMB |
+ Opcode::VPBLENDMW |
+ Opcode::VPCMPB |
+ Opcode::VPCMPUB |
+ Opcode::VPCMPW |
+ Opcode::VPCMPUW |
+ Opcode::VPERMW |
+ Opcode::VPERMI2B |
+ Opcode::VPERMI2W |
+ Opcode::VPMOVM2B |
+ Opcode::VPMOVM2W |
+ Opcode::VPMOVB2M |
+ Opcode::VPMOVW2M |
+ Opcode::VPMOVSWB |
+ Opcode::VPMOVUSWB |
+ Opcode::VPSLLVW |
+ Opcode::VPSRAVW |
+ Opcode::VPSRLVW |
+ Opcode::VPTESTNMB |
+ Opcode::VPTESTNMW |
+ Opcode::VPTESTMB |
+ Opcode::VPTESTMW => {
+ if !decoder.feature_avx512_bw() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::PALIGNR |
+ Opcode::PSIGNW |
+ Opcode::PSIGND |
+ Opcode::PSIGNB |
+ Opcode::PSHUFB |
+ Opcode::PMULHRSW |
+ Opcode::PMADDUBSW |
+ Opcode::PABSD |
+ Opcode::PABSW |
+ Opcode::PABSB |
+ Opcode::PHSUBSW |
+ Opcode::PHSUBW |
+ Opcode::PHSUBD |
+ Opcode::PHADDD |
+ Opcode::PHADDSW |
+ Opcode::PHADDW => {
+ if !decoder.feature_ssse3() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::CLFLUSHOPT => {
+ if !decoder.feature_clflushopt() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::PUSHA |
+ Opcode::POPA => {
+ if !decoder.feature_80186_pusha() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::GETSEC => {
+ if !decoder.feature_smx() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::AAA |
+ Opcode::AAD |
+ Opcode::AAM |
+ Opcode::AAS |
+ Opcode::DAA |
+ Opcode::DAS => {
+ if !decoder.feature_8086_bcd() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::POPCNT |
+ Opcode::LZCNT => {
+ if !decoder.feature_abm() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::PREFETCHW => {
+ if !decoder.feature_3dnowprefetch() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::RDPID => {
+ if !decoder.feature_rdpid() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::LAHF |
+ Opcode::SAHF => {
+ if !decoder.feature_lahfsahf() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::ENQCMD |
+ Opcode::ENQCMDS => {
+ if !decoder.feature_enqcmd() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::JECXZ => {
+ if !decoder.feature_jecxz() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::PTWRITE => {
+ if !decoder.feature_ptwrite() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VPERMT2B |
+ Opcode::VPERMB => {
+ if !decoder.feature_avx512_vbmi() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::F2XM1 |
+ Opcode::FABS |
+ Opcode::FADD |
+ Opcode::FADDP |
+ Opcode::FBLD |
+ Opcode::FBSTP |
+ Opcode::FCHS |
+ Opcode::FCMOVB |
+ Opcode::FCMOVBE |
+ Opcode::FCMOVE |
+ Opcode::FCMOVNB |
+ Opcode::FCMOVNBE |
+ Opcode::FCMOVNE |
+ Opcode::FCMOVNU |
+ Opcode::FCMOVU |
+ Opcode::FCOM |
+ Opcode::FCOMI |
+ Opcode::FCOMIP |
+ Opcode::FCOMP |
+ Opcode::FCOMPP |
+ Opcode::FCOS |
+ Opcode::FDECSTP |
+ Opcode::FDISI8087_NOP |
+ Opcode::FDIV |
+ Opcode::FDIVP |
+ Opcode::FDIVR |
+ Opcode::FDIVRP |
+ Opcode::FENI8087_NOP |
+ Opcode::FFREE |
+ Opcode::FFREEP |
+ Opcode::FIADD |
+ Opcode::FICOM |
+ Opcode::FICOMP |
+ Opcode::FIDIV |
+ Opcode::FIDIVR |
+ Opcode::FILD |
+ Opcode::FIMUL |
+ Opcode::FINCSTP |
+ Opcode::FIST |
+ Opcode::FISTP |
+ Opcode::FISTTP |
+ Opcode::FISUB |
+ Opcode::FISUBR |
+ Opcode::FLD |
+ Opcode::FLD1 |
+ Opcode::FLDCW |
+ Opcode::FLDENV |
+ Opcode::FLDL2E |
+ Opcode::FLDL2T |
+ Opcode::FLDLG2 |
+ Opcode::FLDLN2 |
+ Opcode::FLDPI |
+ Opcode::FLDZ |
+ Opcode::FMUL |
+ Opcode::FMULP |
+ Opcode::FNCLEX |
+ Opcode::FNINIT |
+ Opcode::FNOP |
+ Opcode::FNSAVE |
+ Opcode::FNSTCW |
+ Opcode::FNSTENV |
+ Opcode::FNSTOR |
+ Opcode::FNSTSW |
+ Opcode::FPATAN |
+ Opcode::FPREM |
+ Opcode::FPREM1 |
+ Opcode::FPTAN |
+ Opcode::FRNDINT |
+ Opcode::FRSTOR |
+ Opcode::FSCALE |
+ Opcode::FSETPM287_NOP |
+ Opcode::FSIN |
+ Opcode::FSINCOS |
+ Opcode::FSQRT |
+ Opcode::FST |
+ Opcode::FSTP |
+ Opcode::FSTPNCE |
+ Opcode::FSUB |
+ Opcode::FSUBP |
+ Opcode::FSUBR |
+ Opcode::FSUBRP |
+ Opcode::FTST |
+ Opcode::FUCOM |
+ Opcode::FUCOMI |
+ Opcode::FUCOMIP |
+ Opcode::FUCOMP |
+ Opcode::FUCOMPP |
+ Opcode::FXAM |
+ Opcode::FXCH |
+ Opcode::FXTRACT |
+ Opcode::FYL2X |
+ Opcode::FYL2XP1 => {
+ if !decoder.feature_x87() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::RDPMC |
+ Opcode::PUNPCKLBW |
+ Opcode::PUNPCKLWD |
+ Opcode::PUNPCKLDQ |
+ Opcode::PACKSSWB |
+ Opcode::PCMPGTB |
+ Opcode::PCMPGTD |
+ Opcode::PCMPGTW |
+ Opcode::PACKUSWB |
+ Opcode::PUNPCKHBW |
+ Opcode::PUNPCKHWD |
+ Opcode::PUNPCKHDQ |
+ Opcode::PACKSSDW |
+ Opcode::MOVD |
+ Opcode::MOVQ |
+ Opcode::PCMPEQB |
+ Opcode::PCMPEQD |
+ Opcode::PCMPEQW |
+ Opcode::PSRLW |
+ Opcode::PSRLD |
+ Opcode::PSRLQ |
+ Opcode::PMULLW |
+ Opcode::PSUBUSB |
+ Opcode::PSUBUSW |
+ Opcode::PAND |
+ Opcode::PADDUSB |
+ Opcode::PADDUSW |
+ Opcode::PANDN |
+ Opcode::PSRAW |
+ Opcode::PSRAD |
+ Opcode::PMULHW |
+ Opcode::PSUBSB |
+ Opcode::PSUBSW |
+ Opcode::POR |
+ Opcode::PADDSB |
+ Opcode::PADDSW |
+ Opcode::PXOR |
+ Opcode::PSLLW |
+ Opcode::PSLLD |
+ Opcode::PSLLQ |
+ Opcode::PMADDWD |
+ Opcode::PSUBB |
+ Opcode::PSUBW |
+ Opcode::PSUBD |
+ Opcode::PADDB |
+ Opcode::PADDW |
+ Opcode::PADDD |
+ Opcode::EMMS => {
+ if !decoder.feature_mmx() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VPOPCNTD |
+ Opcode::VPOPCNTQ |
+ Opcode::VPOPCNTB |
+ Opcode::VPOPCNTW |
+ Opcode::VPSHUFBITQMB |
+ Opcode::VPMULTISHIFTQB => {
+ if !decoder.feature_avx512_bitalg() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::AESDEC128KL |
+ Opcode::AESDEC256KL |
+ Opcode::AESDECWIDE128KL |
+ Opcode::AESDECWIDE256KL |
+ Opcode::AESENC128KL |
+ Opcode::AESENC256KL |
+ Opcode::AESENCWIDE128KL |
+ Opcode::AESENCWIDE256KL |
+ Opcode::ENCODEKEY128 |
+ Opcode::ENCODEKEY256 |
+ Opcode::LOADIWKEY => {
+ if !decoder.feature_keylocker() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::ENTER |
+ Opcode::LEAVE |
+ Opcode::INS |
+ Opcode::OUTS => {
+ if !decoder.feature_80186() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::CLWB => {
+ if !decoder.feature_clwb() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::V4FNMADDSS |
+ Opcode::V4FNMADDPS |
+ Opcode::V4FMADDSS |
+ Opcode::V4FMADDPS => {
+ if !decoder.feature_avx512_4fmaps() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::TDCALL |
+ Opcode::SEAMRET |
+ Opcode::SEAMOPS |
+ Opcode::SEAMCALL => {
+ if !decoder.feature_tdx() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::POPCNT => {
+ if !decoder.feature_popcnt() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::PSMASH |
+ Opcode::PVALIDATE |
+ Opcode::RMPADJUST |
+ Opcode::RMPUPDATE => {
+ if !decoder.feature_snp() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VGF2P8AFFINEQB |
+ Opcode::VGF2P8AFFINEINVQB |
+ Opcode::VGF2P8MULB => {
+ if !decoder.feature_avx512_gfni() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::FEMMS |
+ Opcode::PI2FW |
+ Opcode::PI2FD |
+ Opcode::PF2IW |
+ Opcode::PF2ID |
+ Opcode::PMULHRW |
+ Opcode::PFCMPGE |
+ Opcode::PFMIN |
+ Opcode::PFRCP |
+ Opcode::PFRSQRT |
+ Opcode::PFSUB |
+ Opcode::PFADD |
+ Opcode::PFCMPGT |
+ Opcode::PFMAX |
+ Opcode::PFRCPIT1 |
+ Opcode::PFRSQIT1 |
+ Opcode::PFSUBR |
+ Opcode::PFACC |
+ Opcode::PFCMPEQ |
+ Opcode::PFMUL |
+ Opcode::PFMULHRW |
+ Opcode::PFRCPIT2 |
+ Opcode::PFNACC |
+ Opcode::PFPNACC |
+ Opcode::PSWAPD |
+ Opcode::PAVGUSB => {
+ if !decoder.feature_3dnow() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VPCOMPRESSB |
+ Opcode::VPCOMPRESSW |
+ Opcode::VPSHLDVW |
+ Opcode::VPSHLDW |
+ Opcode::VPEXPANDB |
+ Opcode::VPEXPANDW |
+ Opcode::VPSHRDVW |
+ Opcode::VPSHRDW |
+ Opcode::VPSHLDVQ |
+ Opcode::VPSHLDVD |
+ Opcode::VPSHLDQ |
+ Opcode::VPSHLDD |
+ Opcode::VPSHRDQ |
+ Opcode::VPSHRDD |
+ Opcode::VPSHRDVQ |
+ Opcode::VPSHRDVD => {
+ if !decoder.feature_avx512_vbmi2() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::CMC |
+ Opcode::CLC |
+ Opcode::STC |
+ Opcode::CLI |
+ Opcode::STI |
+ Opcode::CLD |
+ Opcode::STD |
+ Opcode::ADD |
+ Opcode::OR |
+ Opcode::ADC |
+ Opcode::SBB |
+ Opcode::AND |
+ Opcode::XOR |
+ Opcode::SUB |
+ Opcode::CMP |
+ Opcode::SAR |
+ Opcode::SAL |
+ Opcode::SHR |
+ Opcode::SHL |
+ Opcode::RCR |
+ Opcode::RCL |
+ Opcode::ROR |
+ Opcode::ROL |
+ Opcode::INC |
+ Opcode::DEC |
+ Opcode::HLT |
+ Opcode::CALL |
+ Opcode::CALLF |
+ Opcode::JMP |
+ Opcode::JMPF |
+ Opcode::PUSH |
+ Opcode::POP |
+ Opcode::LEA |
+ Opcode::NOP |
+ Opcode::XCHG |
+ Opcode::POPF |
+ Opcode::INT |
+ Opcode::INTO |
+ Opcode::IRET |
+ Opcode::IRETD |
+ Opcode::IRETQ |
+ Opcode::RETF |
+ Opcode::ENTER |
+ Opcode::LEAVE |
+ Opcode::MOV |
+ Opcode::RETURN |
+ Opcode::PUSHF |
+ Opcode::WAIT |
+ Opcode::CBW |
+ Opcode::CWD |
+ Opcode::CQO |
+ Opcode::LODS |
+ Opcode::STOS |
+ Opcode::CMPS |
+ Opcode::SCAS |
+ Opcode::MOVS |
+ Opcode::TEST |
+ Opcode::IN |
+ Opcode::OUT |
+ Opcode::IMUL |
+ Opcode::JO |
+ Opcode::JNO |
+ Opcode::JB |
+ Opcode::JNB |
+ Opcode::JZ |
+ Opcode::JNZ |
+ Opcode::JA |
+ Opcode::JNA |
+ Opcode::JS |
+ Opcode::JNS |
+ Opcode::JP |
+ Opcode::JNP |
+ Opcode::JL |
+ Opcode::JGE |
+ Opcode::JLE |
+ Opcode::JG |
+ Opcode::UD0 |
+ Opcode::UD1 |
+ Opcode::UD2 |
+ Opcode::DIV |
+ Opcode::IDIV |
+ Opcode::MUL |
+ Opcode::NEG |
+ Opcode::NOT |
+ Opcode::XLAT |
+ Opcode::LOOPNZ |
+ Opcode::LOOPZ |
+ Opcode::LOOP |
+ Opcode::SALC => {
+ if !decoder.feature_8086() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::CLGI |
+ Opcode::STGI |
+ Opcode::SKINIT |
+ Opcode::VMLOAD |
+ Opcode::VMMCALL |
+ Opcode::VMSAVE |
+ Opcode::VMRUN |
+ Opcode::INVLPGA => {
+ if !decoder.feature_svm() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::ADDSUBPD |
+ Opcode::ADDSUBPS |
+ Opcode::HSUBPD |
+ Opcode::HADDPD |
+ Opcode::MOVSLDUP |
+ Opcode::MOVSHDUP |
+ Opcode::MOVDDUP |
+ Opcode::HADDPS |
+ Opcode::HSUBPS |
+ Opcode::LDDQU => {
+ if !decoder.feature_sse3() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::MOVUPD |
+ Opcode::PSRLDQ |
+ Opcode::PSLLDQ |
+ Opcode::MOVSD |
+ Opcode::MOVLPD |
+ Opcode::UNPCKLPD |
+ Opcode::UNPCKHPD |
+ Opcode::MOVHPD |
+ Opcode::MOVAPD |
+ Opcode::MOVMSKPD |
+ Opcode::CVTPI2PD |
+ Opcode::CVTSI2SD |
+ Opcode::MOVNTPD |
+ Opcode::MOVNTI |
+ Opcode::MOVNTDQ |
+ Opcode::CVTTPD2PI |
+ Opcode::CVTTSD2SI |
+ Opcode::CVTPD2PI |
+ Opcode::CVTSD2SI |
+ Opcode::UCOMISD |
+ Opcode::COMISD |
+ Opcode::SQRTPD |
+ Opcode::SQRTSD |
+ Opcode::ANDPD |
+ Opcode::ANDNPD |
+ Opcode::ORPD |
+ Opcode::XORPD |
+ Opcode::ADDPD |
+ Opcode::ADDSD |
+ Opcode::MULSD |
+ Opcode::MULPD |
+ Opcode::CVTPS2PD |
+ Opcode::CVTPD2PS |
+ Opcode::CVTSS2SD |
+ Opcode::CVTSD2SS |
+ Opcode::CVTPS2DQ |
+ Opcode::CVTDQ2PS |
+ Opcode::CVTTPS2DQ |
+ Opcode::SUBSD |
+ Opcode::SUBPD |
+ Opcode::MINPD |
+ Opcode::MINSD |
+ Opcode::DIVPD |
+ Opcode::DIVSD |
+ Opcode::MAXPD |
+ Opcode::MAXSD |
+ Opcode::PUNPCKLQDQ |
+ Opcode::PUNPCKHQDQ |
+ Opcode::MOVDQA |
+ Opcode::MOVDQU |
+ Opcode::PSHUFHW |
+ Opcode::PSHUFLW |
+ Opcode::PSHUFD |
+ Opcode::LFENCE |
+ Opcode::MFENCE |
+ Opcode::CLFLUSH |
+ Opcode::CMPPD |
+ Opcode::CMPPS |
+ Opcode::CMPSD |
+ Opcode::SHUFPD |
+ Opcode::PADDQ |
+ Opcode::MOVQ2DQ |
+ Opcode::MOVDQ2Q |
+ Opcode::CVTPD2DQ |
+ Opcode::CVTTPD2DQ |
+ Opcode::CVTDQ2PD |
+ Opcode::PMULUDQ |
+ Opcode::MASKMOVDQU |
+ Opcode::PSUBQ => {
+ if !decoder.feature_sse2() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VEXP2PD |
+ Opcode::VEXP2PS |
+ Opcode::VEXP2SD |
+ Opcode::VEXP2SS |
+ Opcode::VRCP28PD |
+ Opcode::VRCP28PS |
+ Opcode::VRCP28SD |
+ Opcode::VRCP28SS |
+ Opcode::VRSQRT28PD |
+ Opcode::VRSQRT28PS |
+ Opcode::VRSQRT28SD |
+ Opcode::VRSQRT28SS => {
+ if !decoder.feature_avx512_er() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::XRSTORS64 |
+ Opcode::XSAVEC64 |
+ Opcode::XSAVES64 => {
+ if !decoder.feature_xsave64() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::ARPL => {
+ if !decoder.feature_80286_arpl() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::ANDN |
+ Opcode::BEXTR |
+ Opcode::BLSI |
+ Opcode::BLSMSK |
+ Opcode::BLSR |
+ Opcode::TZCNT => {
+ if !decoder.feature_bmi1() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::BZHI |
+ Opcode::MULX |
+ Opcode::PDEP |
+ Opcode::PEXT |
+ Opcode::RORX |
+ Opcode::SARX |
+ Opcode::SHRX |
+ Opcode::SHLX => {
+ if !decoder.feature_bmi2() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::MOVDIRI |
+ Opcode::MOVDIR64B => {
+ if !decoder.feature_movdir() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VAESDEC |
+ Opcode::VAESDECLAST |
+ Opcode::VAESENC |
+ Opcode::VAESENCLAST |
+ Opcode::VAESIMC |
+ Opcode::VAESKEYGENASSIST => {
+ if !decoder.feature_vaes() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::XGETBV |
+ Opcode::XRSTOR |
+ Opcode::XRSTORS |
+ Opcode::XSAVE |
+ Opcode::XSAVEC |
+ Opcode::XSAVES |
+ Opcode::XSETBV => {
+ if !decoder.feature_xsave() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::RDRAND => {
+ if !decoder.feature_rdrand() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::CLZERO => {
+ if !decoder.feature_clzero() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::RDSEED => {
+ if !decoder.feature_rdseed() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ }
+ Ok(())
+ }
+}
+
+pub(crate) mod long_mode {
+ use crate::generated::long_mode::Opcode;
+ use crate::long_mode::{InstDecoder, Instruction, DecodeError};
+ impl InstDecoder {
+ fn feature_sgx(&self) -> bool {
+ true
+ }
+ fn feature_smap(&self) -> bool {
+ true
+ }
+ fn feature_avx_unimplemented(&self) -> bool {
+ true
+ }
+ fn feature_uintr(&self) -> bool {
+ true
+ }
+ fn feature_pentium(&self) -> bool {
+ true
+ }
+ fn feature_aesni(&self) -> bool {
+ true
+ }
+ fn feature_invlpgb(&self) -> bool {
+ true
+ }
+ fn feature_sse(&self) -> bool {
+ true
+ }
+ fn feature_xsaveopt(&self) -> bool {
+ true
+ }
+ fn feature_simd(&self) -> bool {
+ true
+ }
+ fn feature_avx(&self) -> bool {
+ true
+ }
+ fn feature_hreset(&self) -> bool {
+ true
+ }
+ fn feature_avx512_vp2intersect(&self) -> bool {
+ true
+ }
+ fn feature_itanium(&self) -> bool {
+ true
+ }
+ fn feature_rdpru(&self) -> bool {
+ true
+ }
+ fn feature_sse4_2(&self) -> bool {
+ true
+ }
+ fn feature_monitor(&self) -> bool {
+ true
+ }
+ fn feature_avx512_f_typo(&self) -> bool {
+ true
+ }
+ fn feature_sse4_1(&self) -> bool {
+ true
+ }
+ fn feature_avx512_dq(&self) -> bool {
+ true
+ }
+ fn feature_adx(&self) -> bool {
+ true
+ }
+ fn feature_fxsr(&self) -> bool {
+ true
+ }
+ fn feature_typo_instructions(&self) -> bool {
+ true
+ }
+ fn feature_tsx(&self) -> bool {
+ true
+ }
+ fn feature_cmpxchg16b(&self) -> bool {
+ true
+ }
+ fn feature_waitpkg(&self) -> bool {
+ true
+ }
+ fn feature_80286(&self) -> bool {
+ true
+ }
+ fn feature_sysenter(&self) -> bool {
+ true
+ }
+ fn feature_invpcid_unimplemented(&self) -> bool {
+ true
+ }
+ fn feature_avx512_4vnniw(&self) -> bool {
+ true
+ }
+ fn feature_avx512_vnni(&self) -> bool {
+ true
+ }
+ fn feature_avx512_pf(&self) -> bool {
+ true
+ }
+ fn feature_avx512_cd(&self) -> bool {
+ true
+ }
+ fn feature_prefetchw(&self) -> bool {
+ true
+ }
+ fn feature_avx512_bf16(&self) -> bool {
+ true
+ }
+ fn feature_avx512bw_unimplemented(&self) -> bool {
+ true
+ }
+ fn feature_pclmulqdq(&self) -> bool {
+ true
+ }
+ fn feature_avx512_f__vl_unimplemented(&self) -> bool {
+ true
+ }
+ fn feature_cet(&self) -> bool {
+ true
+ }
+ fn feature_rdseed(&self) -> bool {
+ true
+ }
+ fn feature_tbm(&self) -> bool {
+ true
+ }
+ fn feature_80486(&self) -> bool {
+ true
+ }
+ fn feature_fsgsbase(&self) -> bool {
+ true
+ }
+ fn feature_pentium_pro(&self) -> bool {
+ true
+ }
+ fn feature_f16c(&self) -> bool {
+ true
+ }
+ fn feature_mpx(&self) -> bool {
+ true
+ }
+ fn feature_rdtscp(&self) -> bool {
+ true
+ }
+ fn feature_avx2(&self) -> bool {
+ true
+ }
+ fn feature_pconfig(&self) -> bool {
+ true
+ }
+ fn feature_avx512_ifma(&self) -> bool {
+ true
+ }
+ fn feature_avx512_er(&self) -> bool {
+ true
+ }
+ fn feature_vpclmulqdq(&self) -> bool {
+ true
+ }
+ fn feature_80386(&self) -> bool {
+ true
+ }
+ fn feature_movbe(&self) -> bool {
+ true
+ }
+ fn feature_avx512_f(&self) -> bool {
+ true
+ }
+ fn feature_emx(&self) -> bool {
+ true
+ }
+ fn feature_fma3(&self) -> bool {
+ true
+ }
+ fn feature_fma4(&self) -> bool {
+ true
+ }
+ fn feature_vmx(&self) -> bool {
+ true
+ }
+ fn feature_tsxldtrk(&self) -> bool {
+ true
+ }
+ fn feature_syscall(&self) -> bool {
+ true
+ }
+ fn feature_sse4a(&self) -> bool {
+ true
+ }
+ fn feature_avx512_vpopcntdq(&self) -> bool {
+ true
+ }
+ fn feature_invpcid(&self) -> bool {
+ true
+ }
+ fn feature_xsave(&self) -> bool {
+ true
+ }
+ fn feature_cmov(&self) -> bool {
+ true
+ }
+ fn feature_avx512_bw(&self) -> bool {
+ true
+ }
+ fn feature_ssse3(&self) -> bool {
+ true
+ }
+ fn feature_clflushopt(&self) -> bool {
+ true
+ }
+ fn feature_xop(&self) -> bool {
+ true
+ }
+ fn feature_sha(&self) -> bool {
+ true
+ }
+ fn feature_64bit(&self) -> bool {
+ true
+ }
+ fn feature_x86_64_baseline(&self) -> bool {
+ true
+ }
+ fn feature_abm(&self) -> bool {
+ true
+ }
+ fn feature_3dnowprefetch(&self) -> bool {
+ true
+ }
+ fn feature_rdpid(&self) -> bool {
+ true
+ }
+ fn feature_lahfsahf(&self) -> bool {
+ true
+ }
+ fn feature_enqcmd(&self) -> bool {
+ true
+ }
+ fn feature_new(&self) -> bool {
+ true
+ }
+ fn feature_ptwrite(&self) -> bool {
+ true
+ }
+ fn feature_avx512_vbmi(&self) -> bool {
+ true
+ }
+ fn feature_x87(&self) -> bool {
+ true
+ }
+ fn feature_mmx(&self) -> bool {
+ true
+ }
+ fn feature_avx512_bitalg(&self) -> bool {
+ true
+ }
+ fn feature_keylocker(&self) -> bool {
+ true
+ }
+ fn feature_80186(&self) -> bool {
+ true
+ }
+ fn feature_clwb(&self) -> bool {
+ true
+ }
+ fn feature_mpk(&self) -> bool {
+ true
+ }
+ fn feature_avx512_4fmaps(&self) -> bool {
+ true
+ }
+ fn feature_tdx(&self) -> bool {
+ true
+ }
+ fn feature_popcnt(&self) -> bool {
+ true
+ }
+ fn feature_snp(&self) -> bool {
+ true
+ }
+ fn feature_avx512_gfni(&self) -> bool {
+ true
+ }
+ fn feature_3dnow(&self) -> bool {
+ true
+ }
+ fn feature_avx512_vbmi2(&self) -> bool {
+ true
+ }
+ fn feature_8086(&self) -> bool {
+ true
+ }
+ fn feature_svm(&self) -> bool {
+ true
+ }
+ fn feature_sse3(&self) -> bool {
+ true
+ }
+ fn feature_sse2(&self) -> bool {
+ true
+ }
+ fn feature_gfni(&self) -> bool {
+ true
+ }
+ fn feature_xsave64(&self) -> bool {
+ true
+ }
+ fn feature_smx(&self) -> bool {
+ true
+ }
+ fn feature_bmi1(&self) -> bool {
+ true
+ }
+ fn feature_bmi2(&self) -> bool {
+ true
+ }
+ fn feature_movdir(&self) -> bool {
+ true
+ }
+ fn feature_vaes(&self) -> bool {
+ true
+ }
+ fn feature_rdrand(&self) -> bool {
+ true
+ }
+ fn feature_clzero(&self) -> bool {
+ true
+ }
+ }
+ pub(crate) fn revise_instruction(decoder: &InstDecoder, inst: &mut Instruction) -> Result<(), DecodeError> {
+ if inst.prefixes.evex().is_some() {
+ if !decoder.avx512() {
+ return Err(DecodeError::InvalidOpcode);
+ } else {
+ return Ok(());
+ }
+ }
+
+ // for some instructions (tzcnt), not having an extension means the instruction is
+ // interpreted as another, rather than being simply rejected.
+ // we might still reject the alternate instruction later, if the extension adding *it*
+ // is also not supported.
+ if inst.opcode == Opcode::TZCNT {
+ if !decoder.bmi1() {
+ // tzcnt is only supported if bmi1 is enabled. without bmi1, this decodes as bsf.
+ inst.opcode = Opcode::BSF;
+ }
+ }
+
+ match inst.opcode {
+ // we'll never be rejecting the instruction `Invalid`
+ Opcode::Invalid => {}
+ Opcode::ENCLS |
+ Opcode::ENCLU |
+ Opcode::ENCLV => {
+ if !decoder.feature_sgx() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::CLAC |
+ Opcode::STAC => {
+ if !decoder.feature_smap() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VPMAXUB |
+ Opcode::VPMAXUB => {
+ if !decoder.feature_avx_unimplemented() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::UIRET |
+ Opcode::TESTUI |
+ Opcode::CLUI |
+ Opcode::STUI |
+ Opcode::SENDUIPI => {
+ if !decoder.feature_uintr() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::CPUID |
+ Opcode::WRMSR |
+ Opcode::RDTSC |
+ Opcode::RDMSR |
+ Opcode::RSM |
+ Opcode::CMPXCHG8B => {
+ if !decoder.feature_pentium() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::AESKEYGENASSIST |
+ Opcode::AESIMC |
+ Opcode::AESENC |
+ Opcode::AESENCLAST |
+ Opcode::AESDEC |
+ Opcode::AESDECLAST => {
+ if !decoder.feature_aesni() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::INVLPGB |
+ Opcode::TLBSYNC => {
+ if !decoder.feature_invlpgb() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::MOVSS |
+ Opcode::ADDSS |
+ Opcode::SUBSS |
+ Opcode::MULSS |
+ Opcode::DIVSS |
+ Opcode::MINSS |
+ Opcode::MAXSS |
+ Opcode::SQRTSS |
+ Opcode::MOVUPS |
+ Opcode::MOVHLPS |
+ Opcode::MOVLPS |
+ Opcode::MOVHPS |
+ Opcode::MOVLHPS |
+ Opcode::UNPCKLPS |
+ Opcode::UNPCKHPS |
+ Opcode::PREFETCHNTA |
+ Opcode::PREFETCH0 |
+ Opcode::PREFETCH1 |
+ Opcode::PREFETCH2 |
+ Opcode::MOVAPS |
+ Opcode::CVTPI2PS |
+ Opcode::CVTSI2SS |
+ Opcode::MOVNTPS |
+ Opcode::CVTTSS2SI |
+ Opcode::CVTTPS2PI |
+ Opcode::CVTSS2SI |
+ Opcode::CVTPS2PI |
+ Opcode::UCOMISS |
+ Opcode::COMISS |
+ Opcode::SQRTPS |
+ Opcode::MOVMSKPS |
+ Opcode::RSQRTSS |
+ Opcode::RSQRTPS |
+ Opcode::RCPPS |
+ Opcode::RCPSS |
+ Opcode::ANDPS |
+ Opcode::ANDNPS |
+ Opcode::XORPS |
+ Opcode::ORPS |
+ Opcode::ADDPS |
+ Opcode::MULPS |
+ Opcode::SUBPS |
+ Opcode::MINPS |
+ Opcode::DIVPS |
+ Opcode::MAXPS |
+ Opcode::PSHUFW |
+ Opcode::LDMXCSR |
+ Opcode::STMXCSR |
+ Opcode::SFENCE |
+ Opcode::CMPPS |
+ Opcode::CMPSS |
+ Opcode::PINSRW |
+ Opcode::PEXTRW |
+ Opcode::SHUFPS |
+ Opcode::PMOVMSKB |
+ Opcode::PMINUB |
+ Opcode::PMAXUB |
+ Opcode::PAVGB |
+ Opcode::PAVGW |
+ Opcode::PMULHUW |
+ Opcode::MOVNTQ |
+ Opcode::PMINSW |
+ Opcode::PMAXSW |
+ Opcode::PSADBW |
+ Opcode::MASKMOVQ |
+ Opcode::LDMXCSR |
+ Opcode::STMXCSR => {
+ if !decoder.feature_sse() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::XSAVEOPT => {
+ if !decoder.feature_xsaveopt() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VLDDQU |
+ Opcode::VPADDB |
+ Opcode::VPADDD |
+ Opcode::VPADDQ |
+ Opcode::VPADDW |
+ Opcode::VPABSB |
+ Opcode::VPABSW |
+ Opcode::VPABSD |
+ Opcode::VMAXSD |
+ Opcode::VMAXSS |
+ Opcode::VMINSD |
+ Opcode::VMINSS |
+ Opcode::VMULSD |
+ Opcode::VMULSS |
+ Opcode::VRCPSS |
+ Opcode::VPSUBUSB |
+ Opcode::VPSUBUSW |
+ Opcode::VXORPD |
+ Opcode::VXORPS |
+ Opcode::VPAVGB |
+ Opcode::VPAVGW |
+ Opcode::VANDNPD |
+ Opcode::VANDNPS |
+ Opcode::VPHADDD |
+ Opcode::VPHADDSW |
+ Opcode::VPHADDW |
+ Opcode::VANDPD |
+ Opcode::VANDPS |
+ Opcode::VPADDSB |
+ Opcode::VPADDSW |
+ Opcode::VPADDUSB |
+ Opcode::VPADDUSW |
+ Opcode::VPHSUBD |
+ Opcode::VPHSUBSW |
+ Opcode::VPHSUBW |
+ Opcode::VHADDPD |
+ Opcode::VHADDPS |
+ Opcode::VHSUBPD |
+ Opcode::VHSUBPS |
+ Opcode::VORPD |
+ Opcode::VORPS |
+ Opcode::VPBLENDVB |
+ Opcode::VPBLENDW |
+ Opcode::VADDSUBPD |
+ Opcode::VADDSUBPS |
+ Opcode::VRSQRTPS |
+ Opcode::VRSQRTSS |
+ Opcode::VPALIGNR |
+ Opcode::VPSUBSB |
+ Opcode::VPSUBSW |
+ Opcode::VPMULHUW |
+ Opcode::VPMULHW |
+ Opcode::VPMULLW |
+ Opcode::VPSHUFB |
+ Opcode::VPSHUFHW |
+ Opcode::VPSHUFLW |
+ Opcode::VPHMINPOSUW |
+ Opcode::VRCPPS |
+ Opcode::VMPSADBW |
+ Opcode::VPMADDUBSW |
+ Opcode::VPMADDWD |
+ Opcode::VMASKMOVDQU |
+ Opcode::VPMOVMSKB |
+ Opcode::VPSADBW |
+ Opcode::VPSLLDQ |
+ Opcode::VPSRLDQ |
+ Opcode::VDPPD |
+ Opcode::VDPPS |
+ Opcode::VLDMXCSR |
+ Opcode::VSTMXCSR |
+ Opcode::VMOVMSKPD |
+ Opcode::VMOVMSKPS |
+ Opcode::VPTEST |
+ Opcode::VTESTPD |
+ Opcode::VTESTPS |
+ Opcode::VPEXTRB |
+ Opcode::VPEXTRW |
+ Opcode::VPEXTRD |
+ Opcode::VPEXTRQ |
+ Opcode::VPACKSSDW |
+ Opcode::VPACKUSDW |
+ Opcode::VPACKSSWB |
+ Opcode::VPACKUSWB |
+ Opcode::VBLENDPD |
+ Opcode::VBLENDPS |
+ Opcode::VBLENDVPD |
+ Opcode::VBLENDVPS |
+ Opcode::VPMULHRSW |
+ Opcode::VPAND |
+ Opcode::VPANDN |
+ Opcode::VPOR |
+ Opcode::VPCMPEQB |
+ Opcode::VPCMPEQD |
+ Opcode::VPCMPEQQ |
+ Opcode::VPCMPEQW |
+ Opcode::VPCMPGTB |
+ Opcode::VPCMPGTD |
+ Opcode::VPCMPGTQ |
+ Opcode::VPCMPGTW |
+ Opcode::VPMAXSB |
+ Opcode::VPMAXSD |
+ Opcode::VPMAXSW |
+ Opcode::VPMAXUB |
+ Opcode::VPMAXUW |
+ Opcode::VPMINSB |
+ Opcode::VPMINSW |
+ Opcode::VPMINUB |
+ Opcode::VPMINUW |
+ Opcode::VPMAXUD |
+ Opcode::VPMINSD |
+ Opcode::VPSIGNB |
+ Opcode::VPSIGNW |
+ Opcode::VPSIGND |
+ Opcode::VPINSRB |
+ Opcode::VPINSRW |
+ Opcode::VPINSRD |
+ Opcode::VPINSRQ |
+ Opcode::VPMOVSXBD |
+ Opcode::VPMOVSXBQ |
+ Opcode::VPMOVSXBW |
+ Opcode::VPMOVSXDQ |
+ Opcode::VPMOVSXWD |
+ Opcode::VPMOVSXWQ |
+ Opcode::VPMOVZXBD |
+ Opcode::VPMOVZXBQ |
+ Opcode::VPMOVZXBW |
+ Opcode::VPMOVZXDQ |
+ Opcode::VPMOVZXWD |
+ Opcode::VPMOVZXWQ |
+ Opcode::VPMULDQ |
+ Opcode::VPMULLQ |
+ Opcode::VPMULLD |
+ Opcode::VPMULUDQ |
+ Opcode::VPSHUFD |
+ Opcode::VSHUFPD |
+ Opcode::VSHUFPS |
+ Opcode::VSQRTPD |
+ Opcode::VSQRTPS |
+ Opcode::VSQRTSS |
+ Opcode::VSQRTSD |
+ Opcode::VSUBPD |
+ Opcode::VSUBPS |
+ Opcode::VSUBSD |
+ Opcode::VSUBSS |
+ Opcode::VUCOMISD |
+ Opcode::VUCOMISS |
+ Opcode::VROUNDPD |
+ Opcode::VROUNDPS |
+ Opcode::VROUNDSD |
+ Opcode::VROUNDSS |
+ Opcode::VPSLLD |
+ Opcode::VPSLLQ |
+ Opcode::VPSLLW |
+ Opcode::VPSRAD |
+ Opcode::VPSRAW |
+ Opcode::VPSRLD |
+ Opcode::VPSRLQ |
+ Opcode::VPSRLW |
+ Opcode::VPSUBB |
+ Opcode::VPSUBW |
+ Opcode::VPSUBD |
+ Opcode::VPSUBQ |
+ Opcode::VPXOR |
+ Opcode::VPUNPCKHBW |
+ Opcode::VPUNPCKHWD |
+ Opcode::VPUNPCKHDQ |
+ Opcode::VPUNPCKHQDQ |
+ Opcode::VPUNPCKLBW |
+ Opcode::VPUNPCKLWD |
+ Opcode::VPUNPCKLDQ |
+ Opcode::VPUNPCKLQDQ |
+ Opcode::VUNPCKHPD |
+ Opcode::VUNPCKHPS |
+ Opcode::VUNPCKLPD |
+ Opcode::VUNPCKLPS |
+ Opcode::VPCMPESTRI |
+ Opcode::VPCMPESTRM |
+ Opcode::VPCMPISTRI |
+ Opcode::VPCMPISTRM |
+ Opcode::VBROADCASTSS |
+ Opcode::VBROADCASTSD |
+ Opcode::VBROADCASTF128 |
+ Opcode::VBROADCASTSD |
+ Opcode::VBROADCASTSS |
+ Opcode::VINSERTF128 |
+ Opcode::VEXTRACTF128 |
+ Opcode::VMASKMOVPD |
+ Opcode::VMASKMOVPS |
+ Opcode::VPERMILPD |
+ Opcode::VPERMILPS |
+ Opcode::VPERM2F128 |
+ Opcode::VZEROUPPER |
+ Opcode::VZEROALL => {
+ if !decoder.feature_avx() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::HRESET => {
+ if !decoder.feature_hreset() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VP2INTERSECTD |
+ Opcode::VP2INTERSECTQ => {
+ if !decoder.feature_avx512_vp2intersect() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::JMPE => {
+ if !decoder.feature_itanium() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::RDPRU => {
+ if !decoder.feature_rdpru() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::CRC32 |
+ Opcode::PCMPESTRI |
+ Opcode::PCMPESTRM |
+ Opcode::PCMPISTRI |
+ Opcode::PCMPISTRM |
+ Opcode::PCMPGTQ => {
+ if !decoder.feature_sse4_2() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::MONITOR |
+ Opcode::MWAIT => {
+ if !decoder.feature_monitor() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VPRORRD |
+ Opcode::VPRORRQ => {
+ if !decoder.feature_avx512_f_typo() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::PHMINPOSUW |
+ Opcode::PMULDQ |
+ Opcode::PMULLD |
+ Opcode::DPPS |
+ Opcode::DPPD |
+ Opcode::PACKUSDW |
+ Opcode::PCMPEQQ |
+ Opcode::PTEST |
+ Opcode::MOVNTDQA |
+ Opcode::ROUNDSS |
+ Opcode::ROUNDSD |
+ Opcode::ROUNDPS |
+ Opcode::ROUNDPD |
+ Opcode::PMAXSB |
+ Opcode::PMAXSD |
+ Opcode::PMAXUW |
+ Opcode::PMAXUD |
+ Opcode::PMINSD |
+ Opcode::PMINSB |
+ Opcode::PMINUD |
+ Opcode::PMINUW |
+ Opcode::BLENDW |
+ Opcode::PBLENDW |
+ Opcode::BLENDVPS |
+ Opcode::BLENDVPD |
+ Opcode::PBLENDVB |
+ Opcode::BLENDPS |
+ Opcode::BLENDPD |
+ Opcode::MPSADBW |
+ Opcode::PMOVZXDQ |
+ Opcode::PMOVSXDQ |
+ Opcode::PMOVZXBD |
+ Opcode::PMOVSXBD |
+ Opcode::PMOVZXWQ |
+ Opcode::PMOVSXWQ |
+ Opcode::PMOVZXBQ |
+ Opcode::PMOVSXBQ |
+ Opcode::PMOVSXWD |
+ Opcode::PMOVZXWD |
+ Opcode::PEXTRQ |
+ Opcode::PEXTRD |
+ Opcode::PEXTRB |
+ Opcode::PMOVSXBW |
+ Opcode::PMOVZXBW |
+ Opcode::PINSRQ |
+ Opcode::PINSRD |
+ Opcode::PINSRB |
+ Opcode::EXTRACTPS |
+ Opcode::INSERTPS => {
+ if !decoder.feature_sse4_1() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::KANDB |
+ Opcode::KANDNB |
+ Opcode::KADDB |
+ Opcode::KTESTB |
+ Opcode::KADDW |
+ Opcode::KTESTW |
+ Opcode::KMOVB |
+ Opcode::KNOTB |
+ Opcode::KORB |
+ Opcode::KORTESTB |
+ Opcode::KSHIFTLB |
+ Opcode::KSHIFTRB |
+ Opcode::KXNORB |
+ Opcode::KXORB |
+ Opcode::VBROADCASTF32X2 |
+ Opcode::VBROADCASTF64X2 |
+ Opcode::VBROADCASTF32X8 |
+ Opcode::VBROADCASTI32X8 |
+ Opcode::VBROADCASTI64X2 |
+ Opcode::VBROADCASTI32X2 |
+ Opcode::VEXTRACTF32X8 |
+ Opcode::VEXTRACTI32X8 |
+ Opcode::VGETEXPSD |
+ Opcode::VGETEXPSS |
+ Opcode::VXORPD |
+ Opcode::VXORPS |
+ Opcode::VPEXTRD |
+ Opcode::VPEXTRQ |
+ Opcode::VPINSRD |
+ Opcode::VPINSRQ |
+ Opcode::VANDNPD |
+ Opcode::VANDNPS |
+ Opcode::VANDPD |
+ Opcode::VANDPS |
+ Opcode::VORPD |
+ Opcode::VORPS |
+ Opcode::VCVTTPD2QQ |
+ Opcode::VCVTPD2QQ |
+ Opcode::VCVTTPD2UQQ |
+ Opcode::VCVTPD2UQQ |
+ Opcode::VCVTTPS2QQ |
+ Opcode::VCVTPS2QQ |
+ Opcode::VCVTTPS2UQQ |
+ Opcode::VCVTPS2UQQ |
+ Opcode::VCVTUQQ2PD |
+ Opcode::VCVTUQQ2PS |
+ Opcode::VEXTRACTF64X2 |
+ Opcode::VEXTRACTI64X2 |
+ Opcode::VFPCLASSPD |
+ Opcode::VFPCLASSPS |
+ Opcode::VFPCLASSSD |
+ Opcode::VFPCLASSSS |
+ Opcode::VINSERTF64X2 |
+ Opcode::VINSERTF32X8 |
+ Opcode::VINSERTI32X8 |
+ Opcode::VINSERTI64X2 |
+ Opcode::VPMOVM2D |
+ Opcode::VPMOVM2Q |
+ Opcode::VPMOVB2D |
+ Opcode::VPMOVQ2M |
+ Opcode::VRANGEPD |
+ Opcode::VRANGEPS |
+ Opcode::VRANGESD |
+ Opcode::VRANGESS |
+ Opcode::VREDUCEPD |
+ Opcode::VREDUCEPS |
+ Opcode::VREDUCESD |
+ Opcode::VREDUCESS => {
+ if !decoder.feature_avx512_dq() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::ADCX |
+ Opcode::ADOX => {
+ if !decoder.feature_adx() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::FXSAVE |
+ Opcode::FXRSTOR => {
+ if !decoder.feature_fxsr() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::SLHD => {
+ if !decoder.feature_typo_instructions() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::XABORT |
+ Opcode::XBEGIN |
+ Opcode::XEND |
+ Opcode::XTEST => {
+ if !decoder.feature_tsx() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::CMPXCHG16B => {
+ if !decoder.feature_cmpxchg16b() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::TPAUSE |
+ Opcode::UMONITOR |
+ Opcode::UMWAIT => {
+ if !decoder.feature_waitpkg() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::CLTS |
+ Opcode::LAR |
+ Opcode::LGDT |
+ Opcode::LIDT |
+ Opcode::LLDT |
+ Opcode::LMSW |
+ Opcode::LSL |
+ Opcode::SGDT |
+ Opcode::SIDT |
+ Opcode::SLDT |
+ Opcode::SMSW |
+ Opcode::STR |
+ Opcode::LTR |
+ Opcode::VERR |
+ Opcode::VERW => {
+ if !decoder.feature_80286() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::SYSENTER |
+ Opcode::SYSEXIT => {
+ if !decoder.feature_sysenter() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::INVVPID => {
+ if !decoder.feature_invpcid_unimplemented() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VP4DPWSSDS |
+ Opcode::VP4DPWSSD => {
+ if !decoder.feature_avx512_4vnniw() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VPDPBUSDS |
+ Opcode::VPDPBUSD |
+ Opcode::VPDPWSSDS |
+ Opcode::VPDPWSSD => {
+ if !decoder.feature_avx512_vnni() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VGATHERPF0DPD |
+ Opcode::VGATHERPF0DPS |
+ Opcode::VGATHERPF0QPD |
+ Opcode::VGATHERPF0QPS |
+ Opcode::VGATHERPF1DPD |
+ Opcode::VGATHERPF1DPS |
+ Opcode::VGATHERPF1QPD |
+ Opcode::VGATHERPF1QPS |
+ Opcode::VSCATTERPF0DPD |
+ Opcode::VSCATTERPF0DPS |
+ Opcode::VSCATTERPF0QPD |
+ Opcode::VSCATTERPF0QPS |
+ Opcode::VSCATTERPF1DPD |
+ Opcode::VSCATTERPF1DPS |
+ Opcode::VSCATTERPF1QPD |
+ Opcode::VSCATTERPF1QPS => {
+ if !decoder.feature_avx512_pf() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VPBROADCASTMW2D |
+ Opcode::VPBROADCASTMB2Q |
+ Opcode::VPBROADCASTM |
+ Opcode::VPCONFLICTD |
+ Opcode::VPCONFLICTQ |
+ Opcode::VPLZCNTD |
+ Opcode::VPLZCNTQ => {
+ if !decoder.feature_avx512_cd() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VCVTNE2PS2BF16 |
+ Opcode::VCVTNEPS2BF16 |
+ Opcode::VDPBF16PS => {
+ if !decoder.feature_avx512_bf16() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VPMOVQ2M => {
+ if !decoder.feature_avx512bw_unimplemented() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::PCLMULQDQ => {
+ if !decoder.feature_pclmulqdq() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VSCATTERDPS |
+ Opcode::VSCATTERDPD |
+ Opcode::VSCATTERQPS |
+ Opcode::VSCATTERQPD => {
+ if !decoder.feature_avx512_f__vl_unimplemented() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::WRUSS |
+ Opcode::WRSS |
+ Opcode::INCSSP |
+ Opcode::SAVEPREVSSP |
+ Opcode::SETSSBSY |
+ Opcode::CLRSSBSY |
+ Opcode::RSTORSSP |
+ Opcode::ENDBR64 |
+ Opcode::ENDBR32 => {
+ if !decoder.feature_cet() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::RDSEED => {
+ if !decoder.feature_rdseed() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::BSWAP |
+ Opcode::CMPXCHG |
+ Opcode::INVD |
+ Opcode::WBINVD |
+ Opcode::INVLPG |
+ Opcode::XADD => {
+ if !decoder.feature_80486() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::RDFSBASE |
+ Opcode::RDGSBASE |
+ Opcode::WRFSBASE |
+ Opcode::WRGSBASE => {
+ if !decoder.feature_fsgsbase() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::UD2 => {
+ if !decoder.feature_pentium_pro() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VCVTPH2PS |
+ Opcode::VCVTPS2PH => {
+ if !decoder.feature_f16c() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::BNDMK |
+ Opcode::BNDCL |
+ Opcode::BNDCU |
+ Opcode::BNDCN |
+ Opcode::BNDMOV |
+ Opcode::BNDLDX |
+ Opcode::BNDSTX => {
+ if !decoder.feature_mpx() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::RDTSCP => {
+ if !decoder.feature_rdtscp() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VBROADCASTI128 |
+ Opcode::VPBROADCASTB |
+ Opcode::VPBROADCASTW |
+ Opcode::VPBROADCASTD |
+ Opcode::VPBROADCASTQ |
+ Opcode::VINSERTI128 |
+ Opcode::VEXTRACTI128 |
+ Opcode::VPMASKMOVD |
+ Opcode::VPMASKMOVQ |
+ Opcode::VPERMPS |
+ Opcode::VPERMD |
+ Opcode::VPERMPD |
+ Opcode::VPERMQ |
+ Opcode::VPERM2I128 |
+ Opcode::VPBLENDD |
+ Opcode::VPSLLVD |
+ Opcode::VPSLLVQ |
+ Opcode::VPSRLVD |
+ Opcode::VPSRLVQ |
+ Opcode::VPSRAVD => {
+ if !decoder.feature_avx2() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::PCONFIG => {
+ if !decoder.feature_pconfig() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VPMADD52HUQ |
+ Opcode::VPMADD52LUQ => {
+ if !decoder.feature_avx512_ifma() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VEXP2PD |
+ Opcode::VEXP2PS |
+ Opcode::VEXP2SD |
+ Opcode::VEXP2SS |
+ Opcode::VRCP28PD |
+ Opcode::VRCP28PS |
+ Opcode::VRCP28SD |
+ Opcode::VRCP28SS |
+ Opcode::VRSQRT28PD |
+ Opcode::VRSQRT28PS |
+ Opcode::VRSQRT28SD |
+ Opcode::VRSQRT28SS => {
+ if !decoder.feature_avx512_er() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VPCLMULQDQ => {
+ if !decoder.feature_vpclmulqdq() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::BSF |
+ Opcode::BSR |
+ Opcode::BT |
+ Opcode::BTS |
+ Opcode::BTC |
+ Opcode::BTR |
+ Opcode::CDQ |
+ Opcode::CWDE |
+ Opcode::LDS |
+ Opcode::LES |
+ Opcode::LFS |
+ Opcode::LGS |
+ Opcode::LSS |
+ Opcode::MOVZX |
+ Opcode::MOVSX |
+ Opcode::SETO |
+ Opcode::SETNO |
+ Opcode::SETB |
+ Opcode::SETAE |
+ Opcode::SETZ |
+ Opcode::SETNZ |
+ Opcode::SETBE |
+ Opcode::SETA |
+ Opcode::SETS |
+ Opcode::SETNS |
+ Opcode::SETP |
+ Opcode::SETNP |
+ Opcode::SETL |
+ Opcode::SETGE |
+ Opcode::SETLE |
+ Opcode::SETG |
+ Opcode::SHLD |
+ Opcode::SHRD => {
+ if !decoder.feature_80386() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::MOVBE => {
+ if !decoder.feature_movbe() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VCVTQQ2PD |
+ Opcode::VCVTQQ2PS |
+ Opcode::VCVTUSI2USD |
+ Opcode::VCVTUSI2USS |
+ Opcode::VEXTRACTF32X4 |
+ Opcode::VEXTRACTF64X4 |
+ Opcode::VEXTRACTI32X4 |
+ Opcode::VEXTRACTI64X4 |
+ Opcode::VFIXUPIMMSD |
+ Opcode::VFIXUPIMMSS |
+ Opcode::VINSERTI64X4 |
+ Opcode::VMOVDQA32 |
+ Opcode::VMOVDQA64 |
+ Opcode::VMOVDQU32 |
+ Opcode::VMOVDQU64 |
+ Opcode::VPCOMPRESSQ |
+ Opcode::VPCOMPRESSD |
+ Opcode::VSCALEDPD |
+ Opcode::VSCALEDPS |
+ Opcode::VSCALEDSD |
+ Opcode::VSCALEDSS |
+ Opcode::VSCATTERDD |
+ Opcode::VSCATTERDQ |
+ Opcode::VSCATTERQD |
+ Opcode::VSCATTERQQ |
+ Opcode::VADDPD |
+ Opcode::VADDPS |
+ Opcode::VCMPPD |
+ Opcode::VCMPPS |
+ Opcode::VCVTDQ2PD |
+ Opcode::VCVTDQ2PS |
+ Opcode::VCVTPD2DQ |
+ Opcode::VCVTPD2PS |
+ Opcode::VCVTPS2DQ |
+ Opcode::VCVTPS2PD |
+ Opcode::VCVTTPD2DQ |
+ Opcode::VCVTTPS2DQ |
+ Opcode::VDIVPD |
+ Opcode::VDIVPS |
+ Opcode::VMAXPD |
+ Opcode::VMAXPS |
+ Opcode::VMINPD |
+ Opcode::VMINPS |
+ Opcode::VMOVAPD |
+ Opcode::VMOVAPS |
+ Opcode::VMOVDDUP |
+ Opcode::VMOVDQA |
+ Opcode::VMOVDQU |
+ Opcode::VMOVNTDQA |
+ Opcode::VMOVNTDQ |
+ Opcode::VMOVNTPD |
+ Opcode::VMOVNTPS |
+ Opcode::VMOVSHDUP |
+ Opcode::VMOVSLDUP |
+ Opcode::VMOVUPD |
+ Opcode::VMOVUPS |
+ Opcode::VMULPD |
+ Opcode::VMULPS |
+ Opcode::VPANDD |
+ Opcode::VPANDQ |
+ Opcode::VPANDND |
+ Opcode::VPANDNQ |
+ Opcode::VPCMPEQD |
+ Opcode::VPCMPEQQ |
+ Opcode::VPCMPGTD |
+ Opcode::VPCMPGTQ |
+ Opcode::VPMAXSD |
+ Opcode::VPMAXSQ |
+ Opcode::VPMAXUD |
+ Opcode::VPMAXUQ |
+ Opcode::VPMINSD |
+ Opcode::VPMINSQ |
+ Opcode::VPMINUD |
+ Opcode::VPMINUQ |
+ Opcode::VPCMPD |
+ Opcode::VPCMPQ |
+ Opcode::VPCMPUD |
+ Opcode::VPCMPUQ |
+ Opcode::VPORD |
+ Opcode::VPORQ |
+ Opcode::VPXORD |
+ Opcode::VPXORQ |
+ Opcode::VPSLLD |
+ Opcode::VPSLLQ |
+ Opcode::VPSLLW |
+ Opcode::VPSRAD |
+ Opcode::VPSRAQ |
+ Opcode::VALIGND |
+ Opcode::VALIGNQ |
+ Opcode::VBLENDMPD |
+ Opcode::VBLENDMPS |
+ Opcode::VPROLD |
+ Opcode::VPROLQ |
+ Opcode::VPROLVD |
+ Opcode::VPROLVQ |
+ Opcode::VPRORD |
+ Opcode::VPRORQ |
+ Opcode::VPRORVD |
+ Opcode::VPRORVQ |
+ Opcode::VPUNPCKHDQ |
+ Opcode::VPUNPCKHQDQ |
+ Opcode::VPUNPCKLDQ |
+ Opcode::VPUNPCKLQDQ |
+ Opcode::VUNPCKHPD |
+ Opcode::VUNPCKHPS |
+ Opcode::VUNPCKLPD |
+ Opcode::VUNPCKLPS |
+ Opcode::VBROADCASTF32X4 |
+ Opcode::VBROADCASTF64X4 |
+ Opcode::VBROADCASTI64X4 |
+ Opcode::VBROADCASTI32X4 |
+ Opcode::VINSERTF32X4 |
+ Opcode::VINSERTI32X4 |
+ Opcode::VSHUFF32X4 |
+ Opcode::VSHUFF64X2 |
+ Opcode::VSHUFI32X4 |
+ Opcode::VSHUFI64X2 |
+ Opcode::VCOMPRESSD |
+ Opcode::VCOMPRESSQ |
+ Opcode::VCOMPRESSPD |
+ Opcode::VCOMPRESSPS |
+ Opcode::VEXPANDPD |
+ Opcode::VEXPANDPS |
+ Opcode::VCVTPD2UDQ |
+ Opcode::VCVTPS2UDQ |
+ Opcode::VCVTUDQ2PD |
+ Opcode::VCVTUDQ2PS |
+ Opcode::VCVTTPD2UDQ |
+ Opcode::VCVTTPS2UDQ |
+ Opcode::VFIXUPIMMPD |
+ Opcode::VFIXUPIMMPS |
+ Opcode::VCVTPH2PS |
+ Opcode::VCVTPS2PH |
+ Opcode::VFMADD132PD |
+ Opcode::VFMADD132PS |
+ Opcode::VFMADD213PD |
+ Opcode::VFMADD213PS |
+ Opcode::VFMADD231PD |
+ Opcode::VFMADD231PS |
+ Opcode::VFMADDSUB132PD |
+ Opcode::VFMADDSUB132PS |
+ Opcode::VFMADDSUB213PD |
+ Opcode::VFMADDSUB213PS |
+ Opcode::VFMADDSUB231PD |
+ Opcode::VFMADDSUB231PS |
+ Opcode::VFMSUB132PD |
+ Opcode::VFMSUB132PS |
+ Opcode::VFMSUB213PD |
+ Opcode::VFMSUB213PS |
+ Opcode::VFMSUB231PD |
+ Opcode::VFMSUB231PS |
+ Opcode::VFMSUBADD132PD |
+ Opcode::VFMSUBADD132PS |
+ Opcode::VFMSUBADD213PD |
+ Opcode::VFMSUBADD213PS |
+ Opcode::VFMSUBADD231PD |
+ Opcode::VFMSUBADD231PS |
+ Opcode::VFNMADD132PD |
+ Opcode::VFNMADD132PS |
+ Opcode::VFNMADD213PD |
+ Opcode::VFNMADD213PS |
+ Opcode::VFNMADD231PD |
+ Opcode::VFNMADD231PS |
+ Opcode::VFNMSUB132PD |
+ Opcode::VFNMSUB132PS |
+ Opcode::VFNMSUB213PD |
+ Opcode::VFNMSUB213PS |
+ Opcode::VFNMSUB231PD |
+ Opcode::VFNMSUB231PS |
+ Opcode::VSCATTERDPS |
+ Opcode::VSCATTERDPD |
+ Opcode::VSCATTERQPS |
+ Opcode::VSCATTERQPD |
+ Opcode::VGATHERDPD |
+ Opcode::VGATHERDPS |
+ Opcode::VGATHERQPD |
+ Opcode::VGATHERQPS |
+ Opcode::VGETEXPPD |
+ Opcode::VGETEXPPS |
+ Opcode::VGETMANTPD |
+ Opcode::VGETMANTPS |
+ Opcode::VPBLENDMD |
+ Opcode::VPBLENDMQ |
+ Opcode::VPERMD |
+ Opcode::VPERMQ |
+ Opcode::VPERMI2D |
+ Opcode::VPERMI2Q |
+ Opcode::VPERMI2PD |
+ Opcode::VPERMI2PS |
+ Opcode::VPERMT2D |
+ Opcode::VPERMT2Q |
+ Opcode::VPERMT2PD |
+ Opcode::VPERMT2PS |
+ Opcode::VPEXPANDD |
+ Opcode::VPEXPANDQ |
+ Opcode::VPGATHERDD |
+ Opcode::VPGATHERDQ |
+ Opcode::VPGATHERQD |
+ Opcode::VPGATHERQQ |
+ Opcode::VPSCATTERDD |
+ Opcode::VPSCATTERDQ |
+ Opcode::VPSCATTERQD |
+ Opcode::VPSCATTERQQ |
+ Opcode::VPMOVDB |
+ Opcode::VPMOVSDB |
+ Opcode::VPMOVUSDB |
+ Opcode::VPMOVDW |
+ Opcode::VPMOVSDW |
+ Opcode::VPMOVUSDW |
+ Opcode::VPMOVQB |
+ Opcode::VPMOVSQB |
+ Opcode::VPMOVUSQB |
+ Opcode::VPMOVQD |
+ Opcode::VPMOVSQD |
+ Opcode::VPMOVUSQD |
+ Opcode::VPMOVQW |
+ Opcode::VPMOVSQW |
+ Opcode::VPMOVUSQW |
+ Opcode::VPSRAVQ |
+ Opcode::VPTERNLOGD |
+ Opcode::VPTERNLOGQ |
+ Opcode::VPTESTMD |
+ Opcode::VPTESTMQ |
+ Opcode::VPTESTNMD |
+ Opcode::VPTESTNMQ |
+ Opcode::VRCP14PD |
+ Opcode::VRCP14PS |
+ Opcode::VRNDSCALEPD |
+ Opcode::VRNDSCALEPS |
+ Opcode::VRSQRT14PD |
+ Opcode::VRSQRT14PS |
+ Opcode::VSCALEFPS |
+ Opcode::VSCALEFPD |
+ Opcode::VPABSQ |
+ Opcode::VADDSD |
+ Opcode::VADDSS |
+ Opcode::VCMPSD |
+ Opcode::VCMPSS |
+ Opcode::VCOMISD |
+ Opcode::VCOMISS |
+ Opcode::VCVTSD2SI |
+ Opcode::VCVTSD2SS |
+ Opcode::VCVTSI2SS |
+ Opcode::VCVTSI2SD |
+ Opcode::VCVTSS2SD |
+ Opcode::VCVTSS2SI |
+ Opcode::VCVTTSS2SI |
+ Opcode::VCVTTSD2SI |
+ Opcode::VDIVSD |
+ Opcode::VDIVSS |
+ Opcode::VEXTRACTPS |
+ Opcode::VINSERTPS |
+ Opcode::VGETMANTSD |
+ Opcode::VGETMANTSS |
+ Opcode::VMOVD |
+ Opcode::VMOVQ |
+ Opcode::VMOVHLPS |
+ Opcode::VMOVHPD |
+ Opcode::VMOVHPS |
+ Opcode::VMOVLHPS |
+ Opcode::VMOVLPD |
+ Opcode::VMOVLPS |
+ Opcode::VMOVSS |
+ Opcode::VMOVSD |
+ Opcode::VSQRTSS |
+ Opcode::VSQRTSD |
+ Opcode::VSUBSD |
+ Opcode::VSUBSS |
+ Opcode::VUCOMISD |
+ Opcode::VUCOMISS |
+ Opcode::VRCP14SD |
+ Opcode::VRCP14SS |
+ Opcode::VRNDSCALESD |
+ Opcode::VRNDSCALESS |
+ Opcode::VRSQRT14SD |
+ Opcode::VRSQRT14SS |
+ Opcode::VSCALEFSS |
+ Opcode::VSCALEFSD |
+ Opcode::VINSERTF64X4 |
+ Opcode::VCVTUSI2SD |
+ Opcode::VCVTUSI2SS |
+ Opcode::VCVTSD2USI |
+ Opcode::VCVTSS2USI |
+ Opcode::VCVTTSD2USI |
+ Opcode::VCVTTSS2USI |
+ Opcode::KANDW |
+ Opcode::KANDNW |
+ Opcode::KMOVW |
+ Opcode::KNOTW |
+ Opcode::KORW |
+ Opcode::KORTESTW |
+ Opcode::KSHIFTLW |
+ Opcode::KSHIFTRW |
+ Opcode::KUNPCKBW |
+ Opcode::KXNORW |
+ Opcode::KXORW => {
+ if !decoder.feature_avx512_f() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::MONITORX |
+ Opcode::MWAITX => {
+ if !decoder.feature_emx() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VFMADD132PD |
+ Opcode::VFMADD132PS |
+ Opcode::VFMADD132SD |
+ Opcode::VFMADD132SS |
+ Opcode::VFMADD213PD |
+ Opcode::VFMADD213PS |
+ Opcode::VFMADD213SD |
+ Opcode::VFMADD213SS |
+ Opcode::VFMADD231PD |
+ Opcode::VFMADD231PS |
+ Opcode::VFMADD231SD |
+ Opcode::VFMADD231SS |
+ Opcode::VFMADDSUB132PD |
+ Opcode::VFMADDSUB132PS |
+ Opcode::VFMADDSUB213PD |
+ Opcode::VFMADDSUB213PS |
+ Opcode::VFMADDSUB231PD |
+ Opcode::VFMADDSUB231PS |
+ Opcode::VFMSUB132PD |
+ Opcode::VFMSUB132PS |
+ Opcode::VFMSUB132SD |
+ Opcode::VFMSUB132SS |
+ Opcode::VFMSUB213PD |
+ Opcode::VFMSUB213PS |
+ Opcode::VFMSUB213SD |
+ Opcode::VFMSUB213SS |
+ Opcode::VFMSUB231PD |
+ Opcode::VFMSUB231PS |
+ Opcode::VFMSUB231SD |
+ Opcode::VFMSUB231SS |
+ Opcode::VFMSUBADD132PD |
+ Opcode::VFMSUBADD132PS |
+ Opcode::VFMSUBADD213PD |
+ Opcode::VFMSUBADD213PS |
+ Opcode::VFMSUBADD231PD |
+ Opcode::VFMSUBADD231PS |
+ Opcode::VFNMADD132PD |
+ Opcode::VFNMADD132PS |
+ Opcode::VFNMADD132SD |
+ Opcode::VFNMADD132SS |
+ Opcode::VFNMADD213PD |
+ Opcode::VFNMADD213PS |
+ Opcode::VFNMADD213SD |
+ Opcode::VFNMADD213SS |
+ Opcode::VFNMADD231PD |
+ Opcode::VFNMADD231PS |
+ Opcode::VFNMADD231SD |
+ Opcode::VFNMADD231SS |
+ Opcode::VFNMSUB132PD |
+ Opcode::VFNMSUB132PS |
+ Opcode::VFNMSUB132SD |
+ Opcode::VFNMSUB132SS |
+ Opcode::VFNMSUB213PD |
+ Opcode::VFNMSUB213PS |
+ Opcode::VFNMSUB213SD |
+ Opcode::VFNMSUB213SS |
+ Opcode::VFNMSUB231PD |
+ Opcode::VFNMSUB231PS |
+ Opcode::VFNMSUB231SD |
+ Opcode::VFNMSUB231SS => {
+ if !decoder.feature_fma3() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VMPTRLD |
+ Opcode::VMPTRST |
+ Opcode::VMCLEAR |
+ Opcode::VMREAD |
+ Opcode::VMWRITE |
+ Opcode::VMCALL |
+ Opcode::VMLAUNCH |
+ Opcode::VMRESUME |
+ Opcode::VMXOFF |
+ Opcode::VMXON |
+ Opcode::INVEPT |
+ Opcode::INVVPID |
+ Opcode::VMFUNC => {
+ if !decoder.feature_vmx() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::XSUSLDTRK |
+ Opcode::XRESLDTRK => {
+ if !decoder.feature_tsxldtrk() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::SYSCALL |
+ Opcode::SYSRET => {
+ if !decoder.feature_syscall() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::EXTRQ |
+ Opcode::INSERTQ |
+ Opcode::MOVNTSD |
+ Opcode::MOVNTSS => {
+ if !decoder.feature_sse4a() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VPOPCNTD |
+ Opcode::VPOPCNTQ => {
+ if !decoder.feature_avx512_vpopcntdq() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::INVEPT |
+ Opcode::INVVPID |
+ Opcode::INVPCID => {
+ if !decoder.feature_invpcid() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::XGETBV |
+ Opcode::XRSTOR |
+ Opcode::XRSTORS |
+ Opcode::XSAVE |
+ Opcode::XSAVEC |
+ Opcode::XSAVES |
+ Opcode::XSETBV => {
+ if !decoder.feature_xsave() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::CMOVA |
+ Opcode::CMOVB |
+ Opcode::CMOVG |
+ Opcode::CMOVGE |
+ Opcode::CMOVL |
+ Opcode::CMOVLE |
+ Opcode::CMOVNA |
+ Opcode::CMOVNB |
+ Opcode::CMOVNO |
+ Opcode::CMOVNP |
+ Opcode::CMOVNS |
+ Opcode::CMOVNZ |
+ Opcode::CMOVO |
+ Opcode::CMOVP |
+ Opcode::CMOVS |
+ Opcode::CMOVZ => {
+ if !decoder.feature_cmov() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::KANDQ |
+ Opcode::KANDD |
+ Opcode::KANDNQ |
+ Opcode::KANDND |
+ Opcode::KMOVD |
+ Opcode::KMOVQ |
+ Opcode::KNOTD |
+ Opcode::KNOTQ |
+ Opcode::KORD |
+ Opcode::KORQ |
+ Opcode::KADDD |
+ Opcode::KTESTD |
+ Opcode::KADDQ |
+ Opcode::KTESTQ |
+ Opcode::KORTESTD |
+ Opcode::KORTESTQ |
+ Opcode::KSHIFTLD |
+ Opcode::KSHIFTRD |
+ Opcode::KSHIFTLQ |
+ Opcode::KSHIFTRQ |
+ Opcode::KUNPCKWD |
+ Opcode::KUNPCKDQ |
+ Opcode::KXNORD |
+ Opcode::KXNORQ |
+ Opcode::KXORD |
+ Opcode::KXORQ |
+ Opcode::VPCMPEQB |
+ Opcode::VPCMPEQW |
+ Opcode::VPCMPGTB |
+ Opcode::VPCMPGTW |
+ Opcode::VPSUBUSB |
+ Opcode::VPSUBUSW |
+ Opcode::VPERMW |
+ Opcode::VPERMI2W |
+ Opcode::VPERMT2W |
+ Opcode::VPSLLVW |
+ Opcode::VPSRAVW |
+ Opcode::VPSRLVW |
+ Opcode::VPEXTRB |
+ Opcode::VPEXTRW |
+ Opcode::VPINSRB |
+ Opcode::VPINSRW |
+ Opcode::VPMULHUW |
+ Opcode::VPMULHRSW |
+ Opcode::VPADDSB |
+ Opcode::VPADDSW |
+ Opcode::VPADDUSB |
+ Opcode::VPADDUSW |
+ Opcode::VPALIGNR |
+ Opcode::VPMOVD2M |
+ Opcode::VPMOVQ2M |
+ Opcode::VPMOVWB |
+ Opcode::VDBPSADBW |
+ Opcode::VMOVDQU8 |
+ Opcode::VMOVDQU16 |
+ Opcode::VPBLENDMB |
+ Opcode::VPBLENDMW |
+ Opcode::VPCMPB |
+ Opcode::VPCMPUB |
+ Opcode::VPCMPW |
+ Opcode::VPCMPUW |
+ Opcode::VPERMW |
+ Opcode::VPERMI2B |
+ Opcode::VPERMI2W |
+ Opcode::VPMOVM2B |
+ Opcode::VPMOVM2W |
+ Opcode::VPMOVB2M |
+ Opcode::VPMOVW2M |
+ Opcode::VPMOVSWB |
+ Opcode::VPMOVUSWB |
+ Opcode::VPSLLVW |
+ Opcode::VPSRAVW |
+ Opcode::VPSRLVW |
+ Opcode::VPTESTNMB |
+ Opcode::VPTESTNMW |
+ Opcode::VPTESTMB |
+ Opcode::VPTESTMW => {
+ if !decoder.feature_avx512_bw() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::PALIGNR |
+ Opcode::PSIGNW |
+ Opcode::PSIGND |
+ Opcode::PSIGNB |
+ Opcode::PSHUFB |
+ Opcode::PMULHRSW |
+ Opcode::PMADDUBSW |
+ Opcode::PABSD |
+ Opcode::PABSW |
+ Opcode::PABSB |
+ Opcode::PHSUBSW |
+ Opcode::PHSUBW |
+ Opcode::PHSUBD |
+ Opcode::PHADDD |
+ Opcode::PHADDSW |
+ Opcode::PHADDW => {
+ if !decoder.feature_ssse3() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::CLFLUSHOPT => {
+ if !decoder.feature_clflushopt() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::SHA1RNDS4 |
+ Opcode::SHA1NEXTE |
+ Opcode::SHA1MSG1 |
+ Opcode::SHA1MSG2 |
+ Opcode::SHA256RNDS2 |
+ Opcode::SHA256MSG1 |
+ Opcode::SHA256MSG2 => {
+ if !decoder.feature_sha() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::JRCXZ |
+ Opcode::CDQE |
+ Opcode::MOVZX |
+ Opcode::SWAPGS |
+ Opcode::MOVSXD => {
+ if !decoder.feature_64bit() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::POPCNT |
+ Opcode::LZCNT => {
+ if !decoder.feature_abm() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::PREFETCHW => {
+ if !decoder.feature_3dnowprefetch() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::RDPID => {
+ if !decoder.feature_rdpid() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::LAHF |
+ Opcode::SAHF => {
+ if !decoder.feature_lahfsahf() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::ENQCMD |
+ Opcode::ENQCMDS => {
+ if !decoder.feature_enqcmd() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::PTWRITE => {
+ if !decoder.feature_ptwrite() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VPERMT2B |
+ Opcode::VPERMB => {
+ if !decoder.feature_avx512_vbmi() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::F2XM1 |
+ Opcode::FABS |
+ Opcode::FADD |
+ Opcode::FADDP |
+ Opcode::FBLD |
+ Opcode::FBSTP |
+ Opcode::FCHS |
+ Opcode::FCMOVB |
+ Opcode::FCMOVBE |
+ Opcode::FCMOVE |
+ Opcode::FCMOVNB |
+ Opcode::FCMOVNBE |
+ Opcode::FCMOVNE |
+ Opcode::FCMOVNU |
+ Opcode::FCMOVU |
+ Opcode::FCOM |
+ Opcode::FCOMI |
+ Opcode::FCOMIP |
+ Opcode::FCOMP |
+ Opcode::FCOMPP |
+ Opcode::FCOS |
+ Opcode::FDECSTP |
+ Opcode::FDISI8087_NOP |
+ Opcode::FDIV |
+ Opcode::FDIVP |
+ Opcode::FDIVR |
+ Opcode::FDIVRP |
+ Opcode::FENI8087_NOP |
+ Opcode::FFREE |
+ Opcode::FFREEP |
+ Opcode::FIADD |
+ Opcode::FICOM |
+ Opcode::FICOMP |
+ Opcode::FIDIV |
+ Opcode::FIDIVR |
+ Opcode::FILD |
+ Opcode::FIMUL |
+ Opcode::FINCSTP |
+ Opcode::FIST |
+ Opcode::FISTP |
+ Opcode::FISTTP |
+ Opcode::FISUB |
+ Opcode::FISUBR |
+ Opcode::FLD |
+ Opcode::FLD1 |
+ Opcode::FLDCW |
+ Opcode::FLDENV |
+ Opcode::FLDL2E |
+ Opcode::FLDL2T |
+ Opcode::FLDLG2 |
+ Opcode::FLDLN2 |
+ Opcode::FLDPI |
+ Opcode::FLDZ |
+ Opcode::FMUL |
+ Opcode::FMULP |
+ Opcode::FNCLEX |
+ Opcode::FNINIT |
+ Opcode::FNOP |
+ Opcode::FNSAVE |
+ Opcode::FNSTCW |
+ Opcode::FNSTENV |
+ Opcode::FNSTOR |
+ Opcode::FNSTSW |
+ Opcode::FPATAN |
+ Opcode::FPREM |
+ Opcode::FPREM1 |
+ Opcode::FPTAN |
+ Opcode::FRNDINT |
+ Opcode::FRSTOR |
+ Opcode::FSCALE |
+ Opcode::FSETPM287_NOP |
+ Opcode::FSIN |
+ Opcode::FSINCOS |
+ Opcode::FSQRT |
+ Opcode::FST |
+ Opcode::FSTP |
+ Opcode::FSTPNCE |
+ Opcode::FSUB |
+ Opcode::FSUBP |
+ Opcode::FSUBR |
+ Opcode::FSUBRP |
+ Opcode::FTST |
+ Opcode::FUCOM |
+ Opcode::FUCOMI |
+ Opcode::FUCOMIP |
+ Opcode::FUCOMP |
+ Opcode::FUCOMPP |
+ Opcode::FXAM |
+ Opcode::FXCH |
+ Opcode::FXTRACT |
+ Opcode::FYL2X |
+ Opcode::FYL2XP1 => {
+ if !decoder.feature_x87() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::RDPMC |
+ Opcode::PUNPCKLBW |
+ Opcode::PUNPCKLWD |
+ Opcode::PUNPCKLDQ |
+ Opcode::PACKSSWB |
+ Opcode::PCMPGTB |
+ Opcode::PCMPGTD |
+ Opcode::PCMPGTW |
+ Opcode::PACKUSWB |
+ Opcode::PUNPCKHBW |
+ Opcode::PUNPCKHWD |
+ Opcode::PUNPCKHDQ |
+ Opcode::PACKSSDW |
+ Opcode::MOVD |
+ Opcode::MOVQ |
+ Opcode::PCMPEQB |
+ Opcode::PCMPEQD |
+ Opcode::PCMPEQW |
+ Opcode::PSRLW |
+ Opcode::PSRLD |
+ Opcode::PSRLQ |
+ Opcode::PMULLW |
+ Opcode::PSUBUSB |
+ Opcode::PSUBUSW |
+ Opcode::PAND |
+ Opcode::PADDUSB |
+ Opcode::PADDUSW |
+ Opcode::PANDN |
+ Opcode::PSRAW |
+ Opcode::PSRAD |
+ Opcode::PMULHW |
+ Opcode::PSUBSB |
+ Opcode::PSUBSW |
+ Opcode::POR |
+ Opcode::PADDSB |
+ Opcode::PADDSW |
+ Opcode::PXOR |
+ Opcode::PSLLW |
+ Opcode::PSLLD |
+ Opcode::PSLLQ |
+ Opcode::PMADDWD |
+ Opcode::PSUBB |
+ Opcode::PSUBW |
+ Opcode::PSUBD |
+ Opcode::PADDB |
+ Opcode::PADDW |
+ Opcode::PADDD |
+ Opcode::EMMS => {
+ if !decoder.feature_mmx() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VPOPCNTD |
+ Opcode::VPOPCNTQ |
+ Opcode::VPOPCNTB |
+ Opcode::VPOPCNTW |
+ Opcode::VPSHUFBITQMB |
+ Opcode::VPMULTISHIFTQB => {
+ if !decoder.feature_avx512_bitalg() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::AESDEC128KL |
+ Opcode::AESDEC256KL |
+ Opcode::AESDECWIDE128KL |
+ Opcode::AESDECWIDE256KL |
+ Opcode::AESENC128KL |
+ Opcode::AESENC256KL |
+ Opcode::AESENCWIDE128KL |
+ Opcode::AESENCWIDE256KL |
+ Opcode::ENCODEKEY128 |
+ Opcode::ENCODEKEY256 |
+ Opcode::LOADIWKEY => {
+ if !decoder.feature_keylocker() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::ENTER |
+ Opcode::LEAVE |
+ Opcode::INS |
+ Opcode::OUTS => {
+ if !decoder.feature_80186() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::CLWB => {
+ if !decoder.feature_clwb() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::RDPKRU |
+ Opcode::WRPKRU => {
+ if !decoder.feature_mpk() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::V4FNMADDSS |
+ Opcode::V4FNMADDPS |
+ Opcode::V4FMADDSS |
+ Opcode::V4FMADDPS => {
+ if !decoder.feature_avx512_4fmaps() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::TDCALL |
+ Opcode::SEAMRET |
+ Opcode::SEAMOPS |
+ Opcode::SEAMCALL => {
+ if !decoder.feature_tdx() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::POPCNT => {
+ if !decoder.feature_popcnt() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::PSMASH |
+ Opcode::PVALIDATE |
+ Opcode::RMPADJUST |
+ Opcode::RMPUPDATE => {
+ if !decoder.feature_snp() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VGF2P8AFFINEQB |
+ Opcode::VGF2P8AFFINEINVQB |
+ Opcode::VGF2P8MULB => {
+ if !decoder.feature_avx512_gfni() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::FEMMS |
+ Opcode::PI2FW |
+ Opcode::PI2FD |
+ Opcode::PF2IW |
+ Opcode::PF2ID |
+ Opcode::PMULHRW |
+ Opcode::PFCMPGE |
+ Opcode::PFMIN |
+ Opcode::PFRCP |
+ Opcode::PFRSQRT |
+ Opcode::PFSUB |
+ Opcode::PFADD |
+ Opcode::PFCMPGT |
+ Opcode::PFMAX |
+ Opcode::PFRCPIT1 |
+ Opcode::PFRSQIT1 |
+ Opcode::PFSUBR |
+ Opcode::PFACC |
+ Opcode::PFCMPEQ |
+ Opcode::PFMUL |
+ Opcode::PFMULHRW |
+ Opcode::PFRCPIT2 |
+ Opcode::PFNACC |
+ Opcode::PFPNACC |
+ Opcode::PSWAPD |
+ Opcode::PAVGUSB => {
+ if !decoder.feature_3dnow() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VPCOMPRESSB |
+ Opcode::VPCOMPRESSW |
+ Opcode::VPSHLDVW |
+ Opcode::VPSHLDW |
+ Opcode::VPEXPANDB |
+ Opcode::VPEXPANDW |
+ Opcode::VPSHRDVW |
+ Opcode::VPSHRDW |
+ Opcode::VPSHLDVQ |
+ Opcode::VPSHLDVD |
+ Opcode::VPSHLDQ |
+ Opcode::VPSHLDD |
+ Opcode::VPSHRDQ |
+ Opcode::VPSHRDD |
+ Opcode::VPSHRDVQ |
+ Opcode::VPSHRDVD => {
+ if !decoder.feature_avx512_vbmi2() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::CMC |
+ Opcode::CLC |
+ Opcode::STC |
+ Opcode::CLI |
+ Opcode::STI |
+ Opcode::CLD |
+ Opcode::STD |
+ Opcode::ADD |
+ Opcode::OR |
+ Opcode::ADC |
+ Opcode::SBB |
+ Opcode::AND |
+ Opcode::XOR |
+ Opcode::SUB |
+ Opcode::CMP |
+ Opcode::SAR |
+ Opcode::SAL |
+ Opcode::SHR |
+ Opcode::SHL |
+ Opcode::RCR |
+ Opcode::RCL |
+ Opcode::ROR |
+ Opcode::ROL |
+ Opcode::INC |
+ Opcode::DEC |
+ Opcode::HLT |
+ Opcode::CALL |
+ Opcode::CALLF |
+ Opcode::JMP |
+ Opcode::JMPF |
+ Opcode::PUSH |
+ Opcode::POP |
+ Opcode::LEA |
+ Opcode::NOP |
+ Opcode::XCHG |
+ Opcode::POPF |
+ Opcode::INT |
+ Opcode::INTO |
+ Opcode::IRET |
+ Opcode::IRETD |
+ Opcode::IRETQ |
+ Opcode::RETF |
+ Opcode::ENTER |
+ Opcode::LEAVE |
+ Opcode::MOV |
+ Opcode::RETURN |
+ Opcode::PUSHF |
+ Opcode::WAIT |
+ Opcode::CBW |
+ Opcode::CWD |
+ Opcode::CQO |
+ Opcode::LODS |
+ Opcode::STOS |
+ Opcode::CMPS |
+ Opcode::SCAS |
+ Opcode::MOVS |
+ Opcode::TEST |
+ Opcode::IN |
+ Opcode::OUT |
+ Opcode::IMUL |
+ Opcode::JO |
+ Opcode::JNO |
+ Opcode::JB |
+ Opcode::JNB |
+ Opcode::JZ |
+ Opcode::JNZ |
+ Opcode::JA |
+ Opcode::JNA |
+ Opcode::JS |
+ Opcode::JNS |
+ Opcode::JP |
+ Opcode::JNP |
+ Opcode::JL |
+ Opcode::JGE |
+ Opcode::JLE |
+ Opcode::JG |
+ Opcode::UD0 |
+ Opcode::UD1 |
+ Opcode::UD2 |
+ Opcode::DIV |
+ Opcode::IDIV |
+ Opcode::MUL |
+ Opcode::NEG |
+ Opcode::NOT |
+ Opcode::XLAT |
+ Opcode::LOOPNZ |
+ Opcode::LOOPZ |
+ Opcode::LOOP |
+ Opcode::SALC => {
+ if !decoder.feature_8086() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::CLGI |
+ Opcode::STGI |
+ Opcode::SKINIT |
+ Opcode::VMLOAD |
+ Opcode::VMMCALL |
+ Opcode::VMSAVE |
+ Opcode::VMRUN |
+ Opcode::INVLPGA => {
+ if !decoder.feature_svm() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::ADDSUBPD |
+ Opcode::ADDSUBPS |
+ Opcode::HSUBPD |
+ Opcode::HADDPD |
+ Opcode::MOVSLDUP |
+ Opcode::MOVSHDUP |
+ Opcode::MOVDDUP |
+ Opcode::HADDPS |
+ Opcode::HSUBPS |
+ Opcode::LDDQU => {
+ if !decoder.feature_sse3() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::MOVUPD |
+ Opcode::PSRLDQ |
+ Opcode::PSLLDQ |
+ Opcode::MOVSD |
+ Opcode::MOVLPD |
+ Opcode::UNPCKLPD |
+ Opcode::UNPCKHPD |
+ Opcode::MOVHPD |
+ Opcode::MOVAPD |
+ Opcode::MOVMSKPD |
+ Opcode::CVTPI2PD |
+ Opcode::CVTSI2SD |
+ Opcode::MOVNTPD |
+ Opcode::MOVNTI |
+ Opcode::MOVNTDQ |
+ Opcode::CVTTPD2PI |
+ Opcode::CVTTSD2SI |
+ Opcode::CVTPD2PI |
+ Opcode::CVTSD2SI |
+ Opcode::UCOMISD |
+ Opcode::COMISD |
+ Opcode::SQRTPD |
+ Opcode::SQRTSD |
+ Opcode::ANDPD |
+ Opcode::ANDNPD |
+ Opcode::ORPD |
+ Opcode::XORPD |
+ Opcode::ADDPD |
+ Opcode::ADDSD |
+ Opcode::MULSD |
+ Opcode::MULPD |
+ Opcode::CVTPS2PD |
+ Opcode::CVTPD2PS |
+ Opcode::CVTSS2SD |
+ Opcode::CVTSD2SS |
+ Opcode::CVTPS2DQ |
+ Opcode::CVTDQ2PS |
+ Opcode::CVTTPS2DQ |
+ Opcode::SUBSD |
+ Opcode::SUBPD |
+ Opcode::MINPD |
+ Opcode::MINSD |
+ Opcode::DIVPD |
+ Opcode::DIVSD |
+ Opcode::MAXPD |
+ Opcode::MAXSD |
+ Opcode::PUNPCKLQDQ |
+ Opcode::PUNPCKHQDQ |
+ Opcode::MOVDQA |
+ Opcode::MOVDQU |
+ Opcode::PSHUFHW |
+ Opcode::PSHUFLW |
+ Opcode::PSHUFD |
+ Opcode::LFENCE |
+ Opcode::MFENCE |
+ Opcode::CLFLUSH |
+ Opcode::CMPPD |
+ Opcode::CMPPS |
+ Opcode::CMPSD |
+ Opcode::SHUFPD |
+ Opcode::PADDQ |
+ Opcode::MOVQ2DQ |
+ Opcode::MOVDQ2Q |
+ Opcode::CVTPD2DQ |
+ Opcode::CVTTPD2DQ |
+ Opcode::CVTDQ2PD |
+ Opcode::PMULUDQ |
+ Opcode::MASKMOVDQU |
+ Opcode::PSUBQ => {
+ if !decoder.feature_sse2() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::GF2P8AFFINEQB |
+ Opcode::GF2P8AFFINEINVQB |
+ Opcode::GF2P8MULB => {
+ if !decoder.feature_gfni() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::XRSTORS64 |
+ Opcode::XSAVEC64 |
+ Opcode::XSAVES64 => {
+ if !decoder.feature_xsave64() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::GETSEC => {
+ if !decoder.feature_smx() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::ANDN |
+ Opcode::BEXTR |
+ Opcode::BLSI |
+ Opcode::BLSMSK |
+ Opcode::BLSR |
+ Opcode::TZCNT => {
+ if !decoder.feature_bmi1() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::BZHI |
+ Opcode::MULX |
+ Opcode::PDEP |
+ Opcode::PEXT |
+ Opcode::RORX |
+ Opcode::SARX |
+ Opcode::SHRX |
+ Opcode::SHLX => {
+ if !decoder.feature_bmi2() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::MOVDIRI |
+ Opcode::MOVDIR64B => {
+ if !decoder.feature_movdir() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::VAESDEC |
+ Opcode::VAESDECLAST |
+ Opcode::VAESENC |
+ Opcode::VAESENCLAST |
+ Opcode::VAESIMC |
+ Opcode::VAESKEYGENASSIST => {
+ if !decoder.feature_vaes() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::RDRAND => {
+ if !decoder.feature_rdrand() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ Opcode::CLZERO => {
+ if !decoder.feature_clzero() {
+ return Err(DecodeError::InvalidOpcode);
+
+ }
+ }
+ }
+ Ok(())
+ }
+}
+
diff --git a/src/generated/mod.rs b/src/generated/mod.rs
new file mode 100644
index 0000000..6338309
--- /dev/null
+++ b/src/generated/mod.rs
@@ -0,0 +1,15 @@
+pub(crate) mod opcode;
+pub(crate) mod imp;
+
+pub(crate) mod real_mode {
+ pub(crate) use super::opcode::real_mode::Opcode as Opcode;
+ pub(crate) use super::imp::real_mode::revise_instruction as revise_instruction;
+}
+pub(crate) mod protected_mode {
+ pub(crate) use super::opcode::protected_mode::Opcode as Opcode;
+ pub(crate) use super::imp::protected_mode::revise_instruction as revise_instruction;
+}
+pub(crate) mod long_mode {
+ pub(crate) use super::opcode::long_mode::Opcode as Opcode;
+ pub(crate) use super::imp::long_mode::revise_instruction as revise_instruction;
+}
diff --git a/src/generated/opcode.rs b/src/generated/opcode.rs
new file mode 100644
index 0000000..cc573f1
--- /dev/null
+++ b/src/generated/opcode.rs
@@ -0,0 +1,7186 @@
+#[allow(non_camel_case_types)]
+#[derive(Copy, Clone, Debug, Eq, PartialEq)]
+#[non_exhaustive]
+#[repr(u16)]
+pub enum Opcode {
+ AAA,
+ AAD,
+ AAM,
+ AAS,
+ ADC,
+ ADCX,
+ ADD,
+ ADDPD,
+ ADDPS,
+ ADDSD,
+ ADDSS,
+ ADDSUBPD,
+ ADDSUBPS,
+ ADOX,
+ AESDEC,
+ AESDEC128KL,
+ AESDEC256KL,
+ AESDECLAST,
+ AESDECWIDE128KL,
+ AESDECWIDE256KL,
+ AESENC,
+ AESENC128KL,
+ AESENC256KL,
+ AESENCLAST,
+ AESENCWIDE128KL,
+ AESENCWIDE256KL,
+ AESIMC,
+ AESKEYGENASSIST,
+ AND,
+ ANDN,
+ ANDNPD,
+ ANDNPS,
+ ANDPD,
+ ANDPS,
+ ARPL,
+ BEXTR,
+ BLENDPD,
+ BLENDPS,
+ BLENDVPD,
+ BLENDVPS,
+ BLENDW,
+ BLSI,
+ BLSMSK,
+ BLSR,
+ BNDCL,
+ BNDCN,
+ BNDCU,
+ BNDLDX,
+ BNDMK,
+ BNDMOV,
+ BNDSTX,
+ BOUND,
+ BSF,
+ BSR,
+ BSWAP,
+ BT,
+ BTC,
+ BTR,
+ BTS,
+ BZHI,
+ CALL,
+ CALLF,
+ CBW,
+ CDQ,
+ CDQE,
+ CLAC,
+ CLC,
+ CLD,
+ CLFLUSH,
+ CLFLUSHOPT,
+ CLGI,
+ CLI,
+ CLRSSBSY,
+ CLTS,
+ CLUI,
+ CLWB,
+ CLZERO,
+ CMC,
+ CMOVA,
+ CMOVB,
+ CMOVG,
+ CMOVGE,
+ CMOVL,
+ CMOVLE,
+ CMOVNA,
+ CMOVNB,
+ CMOVNO,
+ CMOVNP,
+ CMOVNS,
+ CMOVNZ,
+ CMOVO,
+ CMOVP,
+ CMOVS,
+ CMOVZ,
+ CMP,
+ CMPPD,
+ CMPPS,
+ CMPS,
+ CMPSD,
+ CMPSS,
+ CMPXCHG,
+ CMPXCHG16B,
+ CMPXCHG8B,
+ COMISD,
+ COMISS,
+ CPUID,
+ CQO,
+ CRC32,
+ CVTDQ2PD,
+ CVTDQ2PS,
+ CVTPD2DQ,
+ CVTPD2PI,
+ CVTPD2PS,
+ CVTPI2PD,
+ CVTPI2PS,
+ CVTPS2DQ,
+ CVTPS2PD,
+ CVTPS2PI,
+ CVTSD2SI,
+ CVTSD2SS,
+ CVTSI2SD,
+ CVTSI2SS,
+ CVTSS2SD,
+ CVTSS2SI,
+ CVTTPD2DQ,
+ CVTTPD2PI,
+ CVTTPS2DQ,
+ CVTTPS2PI,
+ CVTTSD2SI,
+ CVTTSS2SI,
+ CWD,
+ CWDE,
+ DAA,
+ DAS,
+ DEC,
+ DIV,
+ DIVPD,
+ DIVPS,
+ DIVSD,
+ DIVSS,
+ DPPD,
+ DPPS,
+ EMMS,
+ ENCLS,
+ ENCLU,
+ ENCLV,
+ ENCODEKEY128,
+ ENCODEKEY256,
+ ENDBR32,
+ ENDBR64,
+ ENQCMD,
+ ENQCMDS,
+ ENTER,
+ EXTRACTPS,
+ EXTRQ,
+ F2XM1,
+ FABS,
+ FADD,
+ FADDP,
+ FBLD,
+ FBSTP,
+ FCHS,
+ FCMOVB,
+ FCMOVBE,
+ FCMOVE,
+ FCMOVNB,
+ FCMOVNBE,
+ FCMOVNE,
+ FCMOVNU,
+ FCMOVU,
+ FCOM,
+ FCOMI,
+ FCOMIP,
+ FCOMP,
+ FCOMPP,
+ FCOS,
+ FDECSTP,
+ FDISI8087_NOP,
+ FDIV,
+ FDIVP,
+ FDIVR,
+ FDIVRP,
+ FEMMS,
+ FENI8087_NOP,
+ FFREE,
+ FFREEP,
+ FIADD,
+ FICOM,
+ FICOMP,
+ FIDIV,
+ FIDIVR,
+ FILD,
+ FIMUL,
+ FINCSTP,
+ FIST,
+ FISTP,
+ FISTTP,
+ FISUB,
+ FISUBR,
+ FLD,
+ FLD1,
+ FLDCW,
+ FLDENV,
+ FLDL2E,
+ FLDL2T,
+ FLDLG2,
+ FLDLN2,
+ FLDPI,
+ FLDZ,
+ FMUL,
+ FMULP,
+ FNCLEX,
+ FNINIT,
+ FNOP,
+ FNSAVE,
+ FNSTCW,
+ FNSTENV,
+ FNSTOR,
+ FNSTSW,
+ FPATAN,
+ FPREM,
+ FPREM1,
+ FPTAN,
+ FRNDINT,
+ FRSTOR,
+ FSCALE,
+ FSETPM287_NOP,
+ FSIN,
+ FSINCOS,
+ FSQRT,
+ FST,
+ FSTP,
+ FSTPNCE,
+ FSUB,
+ FSUBP,
+ FSUBR,
+ FSUBRP,
+ FTST,
+ FUCOM,
+ FUCOMI,
+ FUCOMIP,
+ FUCOMP,
+ FUCOMPP,
+ FXAM,
+ FXCH,
+ FXRSTOR,
+ FXSAVE,
+ FXTRACT,
+ FYL2X,
+ FYL2XP1,
+ GETSEC,
+ GF2P8AFFINEINVQB,
+ GF2P8AFFINEQB,
+ GF2P8MULB,
+ HADDPD,
+ HADDPS,
+ HLT,
+ HRESET,
+ HSUBPD,
+ HSUBPS,
+ IDIV,
+ IMUL,
+ IN,
+ INC,
+ INCSSP,
+ INS,
+ INSERTPS,
+ INSERTQ,
+ INT,
+ INTO,
+ Invalid,
+ INVD,
+ INVEPT,
+ INVLPG,
+ INVLPGA,
+ INVLPGB,
+ INVPCID,
+ INVVPID,
+ IRET,
+ IRETD,
+ IRETQ,
+ JA,
+ JB,
+ JCXZ,
+ JECXZ,
+ JG,
+ JGE,
+ JL,
+ JLE,
+ JMP,
+ JMPE,
+ JMPF,
+ JNA,
+ JNB,
+ JNO,
+ JNP,
+ JNS,
+ JNZ,
+ JO,
+ JP,
+ JRCXZ,
+ JS,
+ JZ,
+ KADDB,
+ KADDD,
+ KADDQ,
+ KADDW,
+ KANDB,
+ KANDD,
+ KANDNB,
+ KANDND,
+ KANDNQ,
+ KANDNW,
+ KANDQ,
+ KANDW,
+ KMOVB,
+ KMOVD,
+ KMOVQ,
+ KMOVW,
+ KNOTB,
+ KNOTD,
+ KNOTQ,
+ KNOTW,
+ KORB,
+ KORD,
+ KORQ,
+ KORTESTB,
+ KORTESTD,
+ KORTESTQ,
+ KORTESTW,
+ KORW,
+ KSHIFTLB,
+ KSHIFTLD,
+ KSHIFTLQ,
+ KSHIFTLW,
+ KSHIFTRB,
+ KSHIFTRD,
+ KSHIFTRQ,
+ KSHIFTRW,
+ KTESTB,
+ KTESTD,
+ KTESTQ,
+ KTESTW,
+ KUNPCKBW,
+ KUNPCKDQ,
+ KUNPCKWD,
+ KXNORB,
+ KXNORD,
+ KXNORQ,
+ KXNORW,
+ KXORB,
+ KXORD,
+ KXORQ,
+ KXORW,
+ LAHF,
+ LAR,
+ LDDQU,
+ LDMXCSR,
+ LDS,
+ LEA,
+ LEAVE,
+ LES,
+ LFENCE,
+ LFS,
+ LGDT,
+ LGS,
+ LIDT,
+ LLDT,
+ LMSW,
+ LOADIWKEY,
+ LODS,
+ LOOP,
+ LOOPNZ,
+ LOOPZ,
+ LSL,
+ LSS,
+ LTR,
+ LZCNT,
+ MASKMOVDQU,
+ MASKMOVQ,
+ MAXPD,
+ MAXPS,
+ MAXSD,
+ MAXSS,
+ MFENCE,
+ MINPD,
+ MINPS,
+ MINSD,
+ MINSS,
+ MONITOR,
+ MONITORX,
+ MOV,
+ MOVAPD,
+ MOVAPS,
+ MOVBE,
+ MOVD,
+ MOVDDUP,
+ MOVDIR64B,
+ MOVDIRI,
+ MOVDQ2Q,
+ MOVDQA,
+ MOVDQU,
+ MOVHLPS,
+ MOVHPD,
+ MOVHPS,
+ MOVLHPS,
+ MOVLPD,
+ MOVLPS,
+ MOVMSKPD,
+ MOVMSKPS,
+ MOVNTDQ,
+ MOVNTDQA,
+ MOVNTI,
+ MOVNTPD,
+ MOVNTPS,
+ MOVNTQ,
+ MOVNTSD,
+ MOVNTSS,
+ MOVQ,
+ MOVQ2DQ,
+ MOVS,
+ MOVSD,
+ MOVSHDUP,
+ MOVSLDUP,
+ MOVSS,
+ MOVSX,
+ MOVSXD,
+ MOVUPD,
+ MOVUPS,
+ MOVZX,
+ MPSADBW,
+ MUL,
+ MULPD,
+ MULPS,
+ MULSD,
+ MULSS,
+ MULX,
+ MWAIT,
+ MWAITX,
+ NEG,
+ NOP,
+ NOT,
+ OR,
+ ORPD,
+ ORPS,
+ OUT,
+ OUTS,
+ PABSB,
+ PABSD,
+ PABSW,
+ PACKSSDW,
+ PACKSSWB,
+ PACKUSDW,
+ PACKUSWB,
+ PADDB,
+ PADDD,
+ PADDQ,
+ PADDSB,
+ PADDSW,
+ PADDUSB,
+ PADDUSW,
+ PADDW,
+ PALIGNR,
+ PAND,
+ PANDN,
+ PAVGB,
+ PAVGUSB,
+ PAVGW,
+ PBLENDVB,
+ PBLENDW,
+ PCLMULQDQ,
+ PCMPEQB,
+ PCMPEQD,
+ PCMPEQQ,
+ PCMPEQW,
+ PCMPESTRI,
+ PCMPESTRM,
+ PCMPGTB,
+ PCMPGTD,
+ PCMPGTQ,
+ PCMPGTW,
+ PCMPISTRI,
+ PCMPISTRM,
+ PCONFIG,
+ PDEP,
+ PEXT,
+ PEXTRB,
+ PEXTRD,
+ PEXTRQ,
+ PEXTRW,
+ PF2ID,
+ PF2IW,
+ PFACC,
+ PFADD,
+ PFCMPEQ,
+ PFCMPGE,
+ PFCMPGT,
+ PFMAX,
+ PFMIN,
+ PFMUL,
+ PFMULHRW,
+ PFNACC,
+ PFPNACC,
+ PFRCP,
+ PFRCPIT1,
+ PFRCPIT2,
+ PFRSQIT1,
+ PFRSQRT,
+ PFSUB,
+ PFSUBR,
+ PHADDD,
+ PHADDSW,
+ PHADDW,
+ PHMINPOSUW,
+ PHSUBD,
+ PHSUBSW,
+ PHSUBW,
+ PI2FD,
+ PI2FW,
+ PINSRB,
+ PINSRD,
+ PINSRQ,
+ PINSRW,
+ PMADDUBSW,
+ PMADDWD,
+ PMAXSB,
+ PMAXSD,
+ PMAXSW,
+ PMAXUB,
+ PMAXUD,
+ PMAXUW,
+ PMINSB,
+ PMINSD,
+ PMINSW,
+ PMINUB,
+ PMINUD,
+ PMINUW,
+ PMOVMSKB,
+ PMOVSXBD,
+ PMOVSXBQ,
+ PMOVSXBW,
+ PMOVSXDQ,
+ PMOVSXWD,
+ PMOVSXWQ,
+ PMOVZXBD,
+ PMOVZXBQ,
+ PMOVZXBW,
+ PMOVZXDQ,
+ PMOVZXWD,
+ PMOVZXWQ,
+ PMULDQ,
+ PMULHRSW,
+ PMULHRW,
+ PMULHUW,
+ PMULHW,
+ PMULLD,
+ PMULLW,
+ PMULUDQ,
+ POP,
+ POPA,
+ POPCNT,
+ POPF,
+ POR,
+ PREFETCH0,
+ PREFETCH1,
+ PREFETCH2,
+ PREFETCHNTA,
+ PREFETCHW,
+ PSADBW,
+ PSHUFB,
+ PSHUFD,
+ PSHUFHW,
+ PSHUFLW,
+ PSHUFW,
+ PSIGNB,
+ PSIGND,
+ PSIGNW,
+ PSLLD,
+ PSLLDQ,
+ PSLLQ,
+ PSLLW,
+ PSMASH,
+ PSRAD,
+ PSRAW,
+ PSRLD,
+ PSRLDQ,
+ PSRLQ,
+ PSRLW,
+ PSUBB,
+ PSUBD,
+ PSUBQ,
+ PSUBSB,
+ PSUBSW,
+ PSUBUSB,
+ PSUBUSW,
+ PSUBW,
+ PSWAPD,
+ PTEST,
+ PTWRITE,
+ PUNPCKHBW,
+ PUNPCKHDQ,
+ PUNPCKHQDQ,
+ PUNPCKHWD,
+ PUNPCKLBW,
+ PUNPCKLDQ,
+ PUNPCKLQDQ,
+ PUNPCKLWD,
+ PUSH,
+ PUSHA,
+ PUSHF,
+ PVALIDATE,
+ PXOR,
+ RCL,
+ RCPPS,
+ RCPSS,
+ RCR,
+ RDFSBASE,
+ RDGSBASE,
+ RDMSR,
+ RDPID,
+ RDPKRU,
+ RDPMC,
+ RDPRU,
+ RDRAND,
+ RDSEED,
+ RDTSC,
+ RDTSCP,
+ RETF,
+ RETURN,
+ RMPADJUST,
+ RMPUPDATE,
+ ROL,
+ ROR,
+ RORX,
+ ROUNDPD,
+ ROUNDPS,
+ ROUNDSD,
+ ROUNDSS,
+ RSM,
+ RSQRTPS,
+ RSQRTSS,
+ RSTORSSP,
+ SAHF,
+ SAL,
+ SALC,
+ SAR,
+ SARX,
+ SAVEPREVSSP,
+ SBB,
+ SCAS,
+ SEAMCALL,
+ SEAMOPS,
+ SEAMRET,
+ SENDUIPI,
+ SETA,
+ SETAE,
+ SETB,
+ SETBE,
+ SETG,
+ SETGE,
+ SETL,
+ SETLE,
+ SETNO,
+ SETNP,
+ SETNS,
+ SETNZ,
+ SETO,
+ SETP,
+ SETS,
+ SETSSBSY,
+ SETZ,
+ SFENCE,
+ SGDT,
+ SHA1MSG1,
+ SHA1MSG2,
+ SHA1NEXTE,
+ SHA1RNDS4,
+ SHA256MSG1,
+ SHA256MSG2,
+ SHA256RNDS2,
+ SHL,
+ SHLD,
+ SHLX,
+ SHR,
+ SHRD,
+ SHRX,
+ SHUFPD,
+ SHUFPS,
+ SIDT,
+ SKINIT,
+ SLDT,
+ SLHD,
+ SMSW,
+ SQRTPD,
+ SQRTPS,
+ SQRTSD,
+ SQRTSS,
+ STAC,
+ STC,
+ STD,
+ STGI,
+ STI,
+ STMXCSR,
+ STOS,
+ STR,
+ STUI,
+ SUB,
+ SUBPD,
+ SUBPS,
+ SUBSD,
+ SUBSS,
+ SWAPGS,
+ SYSCALL,
+ SYSENTER,
+ SYSEXIT,
+ SYSRET,
+ TDCALL,
+ TEST,
+ TESTUI,
+ TLBSYNC,
+ TPAUSE,
+ TZCNT,
+ UCOMISD,
+ UCOMISS,
+ UD0,
+ UD1,
+ UD2,
+ UIRET,
+ UMONITOR,
+ UMWAIT,
+ UNPCKHPD,
+ UNPCKHPS,
+ UNPCKLPD,
+ UNPCKLPS,
+ V4FMADDPS,
+ V4FMADDSS,
+ V4FNMADDPS,
+ V4FNMADDSS,
+ VADDPD,
+ VADDPS,
+ VADDSD,
+ VADDSS,
+ VADDSUBPD,
+ VADDSUBPS,
+ VAESDEC,
+ VAESDECLAST,
+ VAESENC,
+ VAESENCLAST,
+ VAESIMC,
+ VAESKEYGENASSIST,
+ VALIGND,
+ VALIGNQ,
+ VANDNPD,
+ VANDNPS,
+ VANDPD,
+ VANDPS,
+ VBLENDMPD,
+ VBLENDMPS,
+ VBLENDPD,
+ VBLENDPS,
+ VBLENDVPD,
+ VBLENDVPS,
+ VBROADCASTF128,
+ VBROADCASTF32X2,
+ VBROADCASTF32X4,
+ VBROADCASTF32X8,
+ VBROADCASTF64X2,
+ VBROADCASTF64X4,
+ VBROADCASTI128,
+ VBROADCASTI32X2,
+ VBROADCASTI32X4,
+ VBROADCASTI32X8,
+ VBROADCASTI64X2,
+ VBROADCASTI64X4,
+ VBROADCASTSD,
+ VBROADCASTSS,
+ VCMPPD,
+ VCMPPS,
+ VCMPSD,
+ VCMPSS,
+ VCOMISD,
+ VCOMISS,
+ VCOMPRESSD,
+ VCOMPRESSPD,
+ VCOMPRESSPS,
+ VCOMPRESSQ,
+ VCVTDQ2PD,
+ VCVTDQ2PS,
+ VCVTNE2PS2BF16,
+ VCVTNEPS2BF16,
+ VCVTPD2DQ,
+ VCVTPD2PS,
+ VCVTPD2QQ,
+ VCVTPD2UDQ,
+ VCVTPD2UQQ,
+ VCVTPH2PS,
+ VCVTPS2DQ,
+ VCVTPS2PD,
+ VCVTPS2PH,
+ VCVTPS2QQ,
+ VCVTPS2UDQ,
+ VCVTPS2UQQ,
+ VCVTQQ2PD,
+ VCVTQQ2PS,
+ VCVTSD2SI,
+ VCVTSD2SS,
+ VCVTSD2USI,
+ VCVTSI2SD,
+ VCVTSI2SS,
+ VCVTSS2SD,
+ VCVTSS2SI,
+ VCVTSS2USI,
+ VCVTTPD2DQ,
+ VCVTTPD2QQ,
+ VCVTTPD2UDQ,
+ VCVTTPD2UQQ,
+ VCVTTPS2DQ,
+ VCVTTPS2QQ,
+ VCVTTPS2UDQ,
+ VCVTTPS2UQQ,
+ VCVTTSD2SI,
+ VCVTTSD2USI,
+ VCVTTSS2SI,
+ VCVTTSS2USI,
+ VCVTUDQ2PD,
+ VCVTUDQ2PS,
+ VCVTUQQ2PD,
+ VCVTUQQ2PS,
+ VCVTUSI2SD,
+ VCVTUSI2SS,
+ VCVTUSI2USD,
+ VCVTUSI2USS,
+ VDBPSADBW,
+ VDIVPD,
+ VDIVPS,
+ VDIVSD,
+ VDIVSS,
+ VDPBF16PS,
+ VDPPD,
+ VDPPS,
+ VERR,
+ VERW,
+ VEXP2PD,
+ VEXP2PS,
+ VEXP2SD,
+ VEXP2SS,
+ VEXPANDPD,
+ VEXPANDPS,
+ VEXTRACTF128,
+ VEXTRACTF32X4,
+ VEXTRACTF32X8,
+ VEXTRACTF64X2,
+ VEXTRACTF64X4,
+ VEXTRACTI128,
+ VEXTRACTI32X4,
+ VEXTRACTI32X8,
+ VEXTRACTI64X2,
+ VEXTRACTI64X4,
+ VEXTRACTPS,
+ VFIXUPIMMPD,
+ VFIXUPIMMPS,
+ VFIXUPIMMSD,
+ VFIXUPIMMSS,
+ VFMADD132PD,
+ VFMADD132PS,
+ VFMADD132SD,
+ VFMADD132SS,
+ VFMADD213PD,
+ VFMADD213PS,
+ VFMADD213SD,
+ VFMADD213SS,
+ VFMADD231PD,
+ VFMADD231PS,
+ VFMADD231SD,
+ VFMADD231SS,
+ VFMADDSUB132PD,
+ VFMADDSUB132PS,
+ VFMADDSUB213PD,
+ VFMADDSUB213PS,
+ VFMADDSUB231PD,
+ VFMADDSUB231PS,
+ VFMSUB132PD,
+ VFMSUB132PS,
+ VFMSUB132SD,
+ VFMSUB132SS,
+ VFMSUB213PD,
+ VFMSUB213PS,
+ VFMSUB213SD,
+ VFMSUB213SS,
+ VFMSUB231PD,
+ VFMSUB231PS,
+ VFMSUB231SD,
+ VFMSUB231SS,
+ VFMSUBADD132PD,
+ VFMSUBADD132PS,
+ VFMSUBADD213PD,
+ VFMSUBADD213PS,
+ VFMSUBADD231PD,
+ VFMSUBADD231PS,
+ VFNMADD132PD,
+ VFNMADD132PS,
+ VFNMADD132SD,
+ VFNMADD132SS,
+ VFNMADD213PD,
+ VFNMADD213PS,
+ VFNMADD213SD,
+ VFNMADD213SS,
+ VFNMADD231PD,
+ VFNMADD231PS,
+ VFNMADD231SD,
+ VFNMADD231SS,
+ VFNMSUB132PD,
+ VFNMSUB132PS,
+ VFNMSUB132SD,
+ VFNMSUB132SS,
+ VFNMSUB213PD,
+ VFNMSUB213PS,
+ VFNMSUB213SD,
+ VFNMSUB213SS,
+ VFNMSUB231PD,
+ VFNMSUB231PS,
+ VFNMSUB231SD,
+ VFNMSUB231SS,
+ VFPCLASSPD,
+ VFPCLASSPS,
+ VFPCLASSSD,
+ VFPCLASSSS,
+ VGATHERDPD,
+ VGATHERDPS,
+ VGATHERPF0DPD,
+ VGATHERPF0DPS,
+ VGATHERPF0QPD,
+ VGATHERPF0QPS,
+ VGATHERPF1DPD,
+ VGATHERPF1DPS,
+ VGATHERPF1QPD,
+ VGATHERPF1QPS,
+ VGATHERQPD,
+ VGATHERQPS,
+ VGETEXPPD,
+ VGETEXPPS,
+ VGETEXPSD,
+ VGETEXPSS,
+ VGETMANTPD,
+ VGETMANTPS,
+ VGETMANTSD,
+ VGETMANTSS,
+ VGF2P8AFFINEINVQB,
+ VGF2P8AFFINEQB,
+ VGF2P8MULB,
+ VHADDPD,
+ VHADDPS,
+ VHSUBPD,
+ VHSUBPS,
+ VINSERTF128,
+ VINSERTF32X4,
+ VINSERTF32X8,
+ VINSERTF64X2,
+ VINSERTF64X4,
+ VINSERTI128,
+ VINSERTI32X4,
+ VINSERTI32X8,
+ VINSERTI64X2,
+ VINSERTI64X4,
+ VINSERTPS,
+ VLDDQU,
+ VLDMXCSR,
+ VMASKMOVDQU,
+ VMASKMOVPD,
+ VMASKMOVPS,
+ VMAXPD,
+ VMAXPS,
+ VMAXSD,
+ VMAXSS,
+ VMCALL,
+ VMCLEAR,
+ VMFUNC,
+ VMINPD,
+ VMINPS,
+ VMINSD,
+ VMINSS,
+ VMLAUNCH,
+ VMLOAD,
+ VMMCALL,
+ VMOVAPD,
+ VMOVAPS,
+ VMOVD,
+ VMOVDDUP,
+ VMOVDQA,
+ VMOVDQA32,
+ VMOVDQA64,
+ VMOVDQU,
+ VMOVDQU16,
+ VMOVDQU32,
+ VMOVDQU64,
+ VMOVDQU8,
+ VMOVHLPS,
+ VMOVHPD,
+ VMOVHPS,
+ VMOVLHPS,
+ VMOVLPD,
+ VMOVLPS,
+ VMOVMSKPD,
+ VMOVMSKPS,
+ VMOVNTDQ,
+ VMOVNTDQA,
+ VMOVNTPD,
+ VMOVNTPS,
+ VMOVQ,
+ VMOVSD,
+ VMOVSHDUP,
+ VMOVSLDUP,
+ VMOVSS,
+ VMOVUPD,
+ VMOVUPS,
+ VMPSADBW,
+ VMPTRLD,
+ VMPTRST,
+ VMREAD,
+ VMRESUME,
+ VMRUN,
+ VMSAVE,
+ VMULPD,
+ VMULPS,
+ VMULSD,
+ VMULSS,
+ VMWRITE,
+ VMXOFF,
+ VMXON,
+ VORPD,
+ VORPS,
+ VP2INTERSECTD,
+ VP2INTERSECTQ,
+ VP4DPWSSD,
+ VP4DPWSSDS,
+ VPABSB,
+ VPABSD,
+ VPABSQ,
+ VPABSW,
+ VPACKSSDW,
+ VPACKSSWB,
+ VPACKUSDW,
+ VPACKUSWB,
+ VPADDB,
+ VPADDD,
+ VPADDQ,
+ VPADDSB,
+ VPADDSW,
+ VPADDUSB,
+ VPADDUSW,
+ VPADDW,
+ VPALIGNR,
+ VPAND,
+ VPANDD,
+ VPANDN,
+ VPANDND,
+ VPANDNQ,
+ VPANDQ,
+ VPAVGB,
+ VPAVGW,
+ VPBLENDD,
+ VPBLENDMB,
+ VPBLENDMD,
+ VPBLENDMQ,
+ VPBLENDMW,
+ VPBLENDVB,
+ VPBLENDW,
+ VPBROADCASTB,
+ VPBROADCASTD,
+ VPBROADCASTM,
+ VPBROADCASTMB2Q,
+ VPBROADCASTMW2D,
+ VPBROADCASTQ,
+ VPBROADCASTW,
+ VPCLMULQDQ,
+ VPCMPB,
+ VPCMPD,
+ VPCMPEQB,
+ VPCMPEQD,
+ VPCMPEQQ,
+ VPCMPEQW,
+ VPCMPESTRI,
+ VPCMPESTRM,
+ VPCMPGTB,
+ VPCMPGTD,
+ VPCMPGTQ,
+ VPCMPGTW,
+ VPCMPISTRI,
+ VPCMPISTRM,
+ VPCMPQ,
+ VPCMPUB,
+ VPCMPUD,
+ VPCMPUQ,
+ VPCMPUW,
+ VPCMPW,
+ VPCOMPRESSB,
+ VPCOMPRESSD,
+ VPCOMPRESSQ,
+ VPCOMPRESSW,
+ VPCONFLICTD,
+ VPCONFLICTQ,
+ VPDPBUSD,
+ VPDPBUSDS,
+ VPDPWSSD,
+ VPDPWSSDS,
+ VPERM2F128,
+ VPERM2I128,
+ VPERMB,
+ VPERMD,
+ VPERMI2B,
+ VPERMI2D,
+ VPERMI2PD,
+ VPERMI2PS,
+ VPERMI2Q,
+ VPERMI2W,
+ VPERMILPD,
+ VPERMILPS,
+ VPERMPD,
+ VPERMPS,
+ VPERMQ,
+ VPERMT2B,
+ VPERMT2D,
+ VPERMT2PD,
+ VPERMT2PS,
+ VPERMT2Q,
+ VPERMT2W,
+ VPERMW,
+ VPEXPANDB,
+ VPEXPANDD,
+ VPEXPANDQ,
+ VPEXPANDW,
+ VPEXTRB,
+ VPEXTRD,
+ VPEXTRQ,
+ VPEXTRW,
+ VPGATHERDD,
+ VPGATHERDQ,
+ VPGATHERQD,
+ VPGATHERQQ,
+ VPHADDD,
+ VPHADDSW,
+ VPHADDW,
+ VPHMINPOSUW,
+ VPHSUBD,
+ VPHSUBSW,
+ VPHSUBW,
+ VPINSRB,
+ VPINSRD,
+ VPINSRQ,
+ VPINSRW,
+ VPLZCNTD,
+ VPLZCNTQ,
+ VPMADD52HUQ,
+ VPMADD52LUQ,
+ VPMADDUBSW,
+ VPMADDWD,
+ VPMASKMOVD,
+ VPMASKMOVQ,
+ VPMAXSB,
+ VPMAXSD,
+ VPMAXSQ,
+ VPMAXSW,
+ VPMAXUB,
+ VPMAXUD,
+ VPMAXUQ,
+ VPMAXUW,
+ VPMINSB,
+ VPMINSD,
+ VPMINSQ,
+ VPMINSW,
+ VPMINUB,
+ VPMINUD,
+ VPMINUQ,
+ VPMINUW,
+ VPMOVB2D,
+ VPMOVB2M,
+ VPMOVD2M,
+ VPMOVDB,
+ VPMOVDW,
+ VPMOVM2B,
+ VPMOVM2D,
+ VPMOVM2Q,
+ VPMOVM2W,
+ VPMOVMSKB,
+ VPMOVQ2M,
+ VPMOVQB,
+ VPMOVQD,
+ VPMOVQW,
+ VPMOVSDB,
+ VPMOVSDW,
+ VPMOVSQB,
+ VPMOVSQD,
+ VPMOVSQW,
+ VPMOVSWB,
+ VPMOVSXBD,
+ VPMOVSXBQ,
+ VPMOVSXBW,
+ VPMOVSXDQ,
+ VPMOVSXWD,
+ VPMOVSXWQ,
+ VPMOVUSDB,
+ VPMOVUSDW,
+ VPMOVUSQB,
+ VPMOVUSQD,
+ VPMOVUSQW,
+ VPMOVUSWB,
+ VPMOVW2M,
+ VPMOVWB,
+ VPMOVZXBD,
+ VPMOVZXBQ,
+ VPMOVZXBW,
+ VPMOVZXDQ,
+ VPMOVZXWD,
+ VPMOVZXWQ,
+ VPMULDQ,
+ VPMULHRSW,
+ VPMULHUW,
+ VPMULHW,
+ VPMULLD,
+ VPMULLQ,
+ VPMULLW,
+ VPMULTISHIFTQB,
+ VPMULUDQ,
+ VPOPCNTB,
+ VPOPCNTD,
+ VPOPCNTQ,
+ VPOPCNTW,
+ VPOR,
+ VPORD,
+ VPORQ,
+ VPROLD,
+ VPROLQ,
+ VPROLVD,
+ VPROLVQ,
+ VPRORD,
+ VPRORQ,
+ VPRORRD,
+ VPRORRQ,
+ VPRORVD,
+ VPRORVQ,
+ VPSADBW,
+ VPSCATTERDD,
+ VPSCATTERDQ,
+ VPSCATTERQD,
+ VPSCATTERQQ,
+ VPSHLDD,
+ VPSHLDQ,
+ VPSHLDVD,
+ VPSHLDVQ,
+ VPSHLDVW,
+ VPSHLDW,
+ VPSHRDD,
+ VPSHRDQ,
+ VPSHRDVD,
+ VPSHRDVQ,
+ VPSHRDVW,
+ VPSHRDW,
+ VPSHUFB,
+ VPSHUFBITQMB,
+ VPSHUFD,
+ VPSHUFHW,
+ VPSHUFLW,
+ VPSIGNB,
+ VPSIGND,
+ VPSIGNW,
+ VPSLLD,
+ VPSLLDQ,
+ VPSLLQ,
+ VPSLLVD,
+ VPSLLVQ,
+ VPSLLVW,
+ VPSLLW,
+ VPSRAD,
+ VPSRAQ,
+ VPSRAVD,
+ VPSRAVQ,
+ VPSRAVW,
+ VPSRAW,
+ VPSRLD,
+ VPSRLDQ,
+ VPSRLQ,
+ VPSRLVD,
+ VPSRLVQ,
+ VPSRLVW,
+ VPSRLW,
+ VPSUBB,
+ VPSUBD,
+ VPSUBQ,
+ VPSUBSB,
+ VPSUBSW,
+ VPSUBUSB,
+ VPSUBUSW,
+ VPSUBW,
+ VPTERNLOGD,
+ VPTERNLOGQ,
+ VPTEST,
+ VPTESTMB,
+ VPTESTMD,
+ VPTESTMQ,
+ VPTESTMW,
+ VPTESTNMB,
+ VPTESTNMD,
+ VPTESTNMQ,
+ VPTESTNMW,
+ VPUNPCKHBW,
+ VPUNPCKHDQ,
+ VPUNPCKHQDQ,
+ VPUNPCKHWD,
+ VPUNPCKLBW,
+ VPUNPCKLDQ,
+ VPUNPCKLQDQ,
+ VPUNPCKLWD,
+ VPXOR,
+ VPXORD,
+ VPXORQ,
+ VRANGEPD,
+ VRANGEPS,
+ VRANGESD,
+ VRANGESS,
+ VRCP14PD,
+ VRCP14PS,
+ VRCP14SD,
+ VRCP14SS,
+ VRCP28PD,
+ VRCP28PS,
+ VRCP28SD,
+ VRCP28SS,
+ VRCPPS,
+ VRCPSS,
+ VREDUCEPD,
+ VREDUCEPS,
+ VREDUCESD,
+ VREDUCESS,
+ VRNDSCALEPD,
+ VRNDSCALEPS,
+ VRNDSCALESD,
+ VRNDSCALESS,
+ VROUNDPD,
+ VROUNDPS,
+ VROUNDSD,
+ VROUNDSS,
+ VRSQRT14PD,
+ VRSQRT14PS,
+ VRSQRT14SD,
+ VRSQRT14SS,
+ VRSQRT28PD,
+ VRSQRT28PS,
+ VRSQRT28SD,
+ VRSQRT28SS,
+ VRSQRTPS,
+ VRSQRTSS,
+ VSCALEDPD,
+ VSCALEDPS,
+ VSCALEDSD,
+ VSCALEDSS,
+ VSCALEFPD,
+ VSCALEFPS,
+ VSCALEFSD,
+ VSCALEFSS,
+ VSCATTERDD,
+ VSCATTERDPD,
+ VSCATTERDPS,
+ VSCATTERDQ,
+ VSCATTERPF0DPD,
+ VSCATTERPF0DPS,
+ VSCATTERPF0QPD,
+ VSCATTERPF0QPS,
+ VSCATTERPF1DPD,
+ VSCATTERPF1DPS,
+ VSCATTERPF1QPD,
+ VSCATTERPF1QPS,
+ VSCATTERQD,
+ VSCATTERQPD,
+ VSCATTERQPS,
+ VSCATTERQQ,
+ VSHUFF32X4,
+ VSHUFF64X2,
+ VSHUFI32X4,
+ VSHUFI64X2,
+ VSHUFPD,
+ VSHUFPS,
+ VSQRTPD,
+ VSQRTPS,
+ VSQRTSD,
+ VSQRTSS,
+ VSTMXCSR,
+ VSUBPD,
+ VSUBPS,
+ VSUBSD,
+ VSUBSS,
+ VTESTPD,
+ VTESTPS,
+ VUCOMISD,
+ VUCOMISS,
+ VUNPCKHPD,
+ VUNPCKHPS,
+ VUNPCKLPD,
+ VUNPCKLPS,
+ VXORPD,
+ VXORPS,
+ VZEROALL,
+ VZEROUPPER,
+ WAIT,
+ WBINVD,
+ WRFSBASE,
+ WRGSBASE,
+ WRMSR,
+ WRPKRU,
+ WRSS,
+ WRUSS,
+ XABORT,
+ XADD,
+ XBEGIN,
+ XCHG,
+ XEND,
+ XGETBV,
+ XLAT,
+ XOR,
+ XORPD,
+ XORPS,
+ XRESLDTRK,
+ XRSTOR,
+ XRSTORS,
+ XRSTORS64,
+ XSAVE,
+ XSAVEC,
+ XSAVEC64,
+ XSAVEOPT,
+ XSAVES,
+ XSAVES64,
+ XSETBV,
+ XSUSLDTRK,
+ XTEST,
+}
+
+pub(crate) const MNEMONICS: &'static [&'static str] = &[
+ "aaa",
+ "aad",
+ "aam",
+ "aas",
+ "adc",
+ "adcx",
+ "add",
+ "addpd",
+ "addps",
+ "addsd",
+ "addss",
+ "addsubpd",
+ "addsubps",
+ "adox",
+ "aesdec",
+ "aesdec128kl",
+ "aesdec256kl",
+ "aesdeclast",
+ "aesdecwide128kl",
+ "aesdecwide256kl",
+ "aesenc",
+ "aesenc128kl",
+ "aesenc256kl",
+ "aesenclast",
+ "aesencwide128kl",
+ "aesencwide256kl",
+ "aesimc",
+ "aeskeygenassist",
+ "and",
+ "andn",
+ "andnpd",
+ "andnps",
+ "andpd",
+ "andps",
+ "arpl",
+ "bextr",
+ "blendpd",
+ "blendps",
+ "blendvpd",
+ "blendvps",
+ "blendw",
+ "blsi",
+ "blsmsk",
+ "blsr",
+ "bndcl",
+ "bndcn",
+ "bndcu",
+ "bndldx",
+ "bndmk",
+ "bndmov",
+ "bndstx",
+ "bound",
+ "bsf",
+ "bsr",
+ "bswap",
+ "bt",
+ "btc",
+ "btr",
+ "bts",
+ "bzhi",
+ "call",
+ "callf",
+ "cbw",
+ "cdq",
+ "cdqe",
+ "clac",
+ "clc",
+ "cld",
+ "clflush",
+ "clflushopt",
+ "clgi",
+ "cli",
+ "clrssbsy",
+ "clts",
+ "clui",
+ "clwb",
+ "clzero",
+ "cmc",
+ "cmova",
+ "cmovb",
+ "cmovg",
+ "cmovge",
+ "cmovl",
+ "cmovle",
+ "cmovna",
+ "cmovnb",
+ "cmovno",
+ "cmovnp",
+ "cmovns",
+ "cmovnz",
+ "cmovo",
+ "cmovp",
+ "cmovs",
+ "cmovz",
+ "cmp",
+ "cmppd",
+ "cmpps",
+ "cmps",
+ "cmpsd",
+ "cmpss",
+ "cmpxchg",
+ "cmpxchg16b",
+ "cmpxchg8b",
+ "comisd",
+ "comiss",
+ "cpuid",
+ "cqo",
+ "crc32",
+ "cvtdq2pd",
+ "cvtdq2ps",
+ "cvtpd2dq",
+ "cvtpd2pi",
+ "cvtpd2ps",
+ "cvtpi2pd",
+ "cvtpi2ps",
+ "cvtps2dq",
+ "cvtps2pd",
+ "cvtps2pi",
+ "cvtsd2si",
+ "cvtsd2ss",
+ "cvtsi2sd",
+ "cvtsi2ss",
+ "cvtss2sd",
+ "cvtss2si",
+ "cvttpd2dq",
+ "cvttpd2pi",
+ "cvttps2dq",
+ "cvttps2pi",
+ "cvttsd2si",
+ "cvttss2si",
+ "cwd",
+ "cwde",
+ "daa",
+ "das",
+ "dec",
+ "div",
+ "divpd",
+ "divps",
+ "divsd",
+ "divss",
+ "dppd",
+ "dpps",
+ "emms",
+ "encls",
+ "enclu",
+ "enclv",
+ "encodekey128",
+ "encodekey256",
+ "endbr32",
+ "endbr64",
+ "enqcmd",
+ "enqcmds",
+ "enter",
+ "extractps",
+ "extrq",
+ "f2xm1",
+ "fabs",
+ "fadd",
+ "faddp",
+ "fbld",
+ "fbstp",
+ "fchs",
+ "fcmovb",
+ "fcmovbe",
+ "fcmove",
+ "fcmovnb",
+ "fcmovnbe",
+ "fcmovne",
+ "fcmovnu",
+ "fcmovu",
+ "fcom",
+ "fcomi",
+ "fcomip",
+ "fcomp",
+ "fcompp",
+ "fcos",
+ "fdecstp",
+ "fdisi8087_nop",
+ "fdiv",
+ "fdivp",
+ "fdivr",
+ "fdivrp",
+ "femms",
+ "feni8087_nop",
+ "ffree",
+ "ffreep",
+ "fiadd",
+ "ficom",
+ "ficomp",
+ "fidiv",
+ "fidivr",
+ "fild",
+ "fimul",
+ "fincstp",
+ "fist",
+ "fistp",
+ "fisttp",
+ "fisub",
+ "fisubr",
+ "fld",
+ "fld1",
+ "fldcw",
+ "fldenv",
+ "fldl2e",
+ "fldl2t",
+ "fldlg2",
+ "fldln2",
+ "fldpi",
+ "fldz",
+ "fmul",
+ "fmulp",
+ "fnclex",
+ "fninit",
+ "fnop",
+ "fnsave",
+ "fnstcw",
+ "fnstenv",
+ "fnstor",
+ "fnstsw",
+ "fpatan",
+ "fprem",
+ "fprem1",
+ "fptan",
+ "frndint",
+ "frstor",
+ "fscale",
+ "fsetpm287_nop",
+ "fsin",
+ "fsincos",
+ "fsqrt",
+ "fst",
+ "fstp",
+ "fstpnce",
+ "fsub",
+ "fsubp",
+ "fsubr",
+ "fsubrp",
+ "ftst",
+ "fucom",
+ "fucomi",
+ "fucomip",
+ "fucomp",
+ "fucompp",
+ "fxam",
+ "fxch",
+ "fxrstor",
+ "fxsave",
+ "fxtract",
+ "fyl2x",
+ "fyl2xp1",
+ "getsec",
+ "gf2p8affineinvqb",
+ "gf2p8affineqb",
+ "gf2p8mulb",
+ "haddpd",
+ "haddps",
+ "hlt",
+ "hreset",
+ "hsubpd",
+ "hsubps",
+ "idiv",
+ "imul",
+ "in",
+ "inc",
+ "incssp",
+ "ins",
+ "insertps",
+ "insertq",
+ "int",
+ "into",
+ "invalid",
+ "invd",
+ "invept",
+ "invlpg",
+ "invlpga",
+ "invlpgb",
+ "invpcid",
+ "invvpid",
+ "iret",
+ "iretd",
+ "iretq",
+ "ja",
+ "jb",
+ "jcxz",
+ "jecxz",
+ "jg",
+ "jge",
+ "jl",
+ "jle",
+ "jmp",
+ "jmpe",
+ "jmpf",
+ "jna",
+ "jnb",
+ "jno",
+ "jnp",
+ "jns",
+ "jnz",
+ "jo",
+ "jp",
+ "jrcxz",
+ "js",
+ "jz",
+ "kaddb",
+ "kaddd",
+ "kaddq",
+ "kaddw",
+ "kandb",
+ "kandd",
+ "kandnb",
+ "kandnd",
+ "kandnq",
+ "kandnw",
+ "kandq",
+ "kandw",
+ "kmovb",
+ "kmovd",
+ "kmovq",
+ "kmovw",
+ "knotb",
+ "knotd",
+ "knotq",
+ "knotw",
+ "korb",
+ "kord",
+ "korq",
+ "kortestb",
+ "kortestd",
+ "kortestq",
+ "kortestw",
+ "korw",
+ "kshiftlb",
+ "kshiftld",
+ "kshiftlq",
+ "kshiftlw",
+ "kshiftrb",
+ "kshiftrd",
+ "kshiftrq",
+ "kshiftrw",
+ "ktestb",
+ "ktestd",
+ "ktestq",
+ "ktestw",
+ "kunpckbw",
+ "kunpckdq",
+ "kunpckwd",
+ "kxnorb",
+ "kxnord",
+ "kxnorq",
+ "kxnorw",
+ "kxorb",
+ "kxord",
+ "kxorq",
+ "kxorw",
+ "lahf",
+ "lar",
+ "lddqu",
+ "ldmxcsr",
+ "lds",
+ "lea",
+ "leave",
+ "les",
+ "lfence",
+ "lfs",
+ "lgdt",
+ "lgs",
+ "lidt",
+ "lldt",
+ "lmsw",
+ "loadiwkey",
+ "lods",
+ "loop",
+ "loopnz",
+ "loopz",
+ "lsl",
+ "lss",
+ "ltr",
+ "lzcnt",
+ "maskmovdqu",
+ "maskmovq",
+ "maxpd",
+ "maxps",
+ "maxsd",
+ "maxss",
+ "mfence",
+ "minpd",
+ "minps",
+ "minsd",
+ "minss",
+ "monitor",
+ "monitorx",
+ "mov",
+ "movapd",
+ "movaps",
+ "movbe",
+ "movd",
+ "movddup",
+ "movdir64b",
+ "movdiri",
+ "movdq2q",
+ "movdqa",
+ "movdqu",
+ "movhlps",
+ "movhpd",
+ "movhps",
+ "movlhps",
+ "movlpd",
+ "movlps",
+ "movmskpd",
+ "movmskps",
+ "movntdq",
+ "movntdqa",
+ "movnti",
+ "movntpd",
+ "movntps",
+ "movntq",
+ "movntsd",
+ "movntss",
+ "movq",
+ "movq2dq",
+ "movs",
+ "movsd",
+ "movshdup",
+ "movsldup",
+ "movss",
+ "movsx",
+ "movsxd",
+ "movupd",
+ "movups",
+ "movzx",
+ "mpsadbw",
+ "mul",
+ "mulpd",
+ "mulps",
+ "mulsd",
+ "mulss",
+ "mulx",
+ "mwait",
+ "mwaitx",
+ "neg",
+ "nop",
+ "not",
+ "or",
+ "orpd",
+ "orps",
+ "out",
+ "outs",
+ "pabsb",
+ "pabsd",
+ "pabsw",
+ "packssdw",
+ "packsswb",
+ "packusdw",
+ "packuswb",
+ "paddb",
+ "paddd",
+ "paddq",
+ "paddsb",
+ "paddsw",
+ "paddusb",
+ "paddusw",
+ "paddw",
+ "palignr",
+ "pand",
+ "pandn",
+ "pavgb",
+ "pavgusb",
+ "pavgw",
+ "pblendvb",
+ "pblendw",
+ "pclmulqdq",
+ "pcmpeqb",
+ "pcmpeqd",
+ "pcmpeqq",
+ "pcmpeqw",
+ "pcmpestri",
+ "pcmpestrm",
+ "pcmpgtb",
+ "pcmpgtd",
+ "pcmpgtq",
+ "pcmpgtw",
+ "pcmpistri",
+ "pcmpistrm",
+ "pconfig",
+ "pdep",
+ "pext",
+ "pextrb",
+ "pextrd",
+ "pextrq",
+ "pextrw",
+ "pf2id",
+ "pf2iw",
+ "pfacc",
+ "pfadd",
+ "pfcmpeq",
+ "pfcmpge",
+ "pfcmpgt",
+ "pfmax",
+ "pfmin",
+ "pfmul",
+ "pfmulhrw",
+ "pfnacc",
+ "pfpnacc",
+ "pfrcp",
+ "pfrcpit1",
+ "pfrcpit2",
+ "pfrsqit1",
+ "pfrsqrt",
+ "pfsub",
+ "pfsubr",
+ "phaddd",
+ "phaddsw",
+ "phaddw",
+ "phminposuw",
+ "phsubd",
+ "phsubsw",
+ "phsubw",
+ "pi2fd",
+ "pi2fw",
+ "pinsrb",
+ "pinsrd",
+ "pinsrq",
+ "pinsrw",
+ "pmaddubsw",
+ "pmaddwd",
+ "pmaxsb",
+ "pmaxsd",
+ "pmaxsw",
+ "pmaxub",
+ "pmaxud",
+ "pmaxuw",
+ "pminsb",
+ "pminsd",
+ "pminsw",
+ "pminub",
+ "pminud",
+ "pminuw",
+ "pmovmskb",
+ "pmovsxbd",
+ "pmovsxbq",
+ "pmovsxbw",
+ "pmovsxdq",
+ "pmovsxwd",
+ "pmovsxwq",
+ "pmovzxbd",
+ "pmovzxbq",
+ "pmovzxbw",
+ "pmovzxdq",
+ "pmovzxwd",
+ "pmovzxwq",
+ "pmuldq",
+ "pmulhrsw",
+ "pmulhrw",
+ "pmulhuw",
+ "pmulhw",
+ "pmulld",
+ "pmullw",
+ "pmuludq",
+ "pop",
+ "popa",
+ "popcnt",
+ "popf",
+ "por",
+ "prefetch0",
+ "prefetch1",
+ "prefetch2",
+ "prefetchnta",
+ "prefetchw",
+ "psadbw",
+ "pshufb",
+ "pshufd",
+ "pshufhw",
+ "pshuflw",
+ "pshufw",
+ "psignb",
+ "psignd",
+ "psignw",
+ "pslld",
+ "pslldq",
+ "psllq",
+ "psllw",
+ "psmash",
+ "psrad",
+ "psraw",
+ "psrld",
+ "psrldq",
+ "psrlq",
+ "psrlw",
+ "psubb",
+ "psubd",
+ "psubq",
+ "psubsb",
+ "psubsw",
+ "psubusb",
+ "psubusw",
+ "psubw",
+ "pswapd",
+ "ptest",
+ "ptwrite",
+ "punpckhbw",
+ "punpckhdq",
+ "punpckhqdq",
+ "punpckhwd",
+ "punpcklbw",
+ "punpckldq",
+ "punpcklqdq",
+ "punpcklwd",
+ "push",
+ "pusha",
+ "pushf",
+ "pvalidate",
+ "pxor",
+ "rcl",
+ "rcpps",
+ "rcpss",
+ "rcr",
+ "rdfsbase",
+ "rdgsbase",
+ "rdmsr",
+ "rdpid",
+ "rdpkru",
+ "rdpmc",
+ "rdpru",
+ "rdrand",
+ "rdseed",
+ "rdtsc",
+ "rdtscp",
+ "retf",
+ "return",
+ "rmpadjust",
+ "rmpupdate",
+ "rol",
+ "ror",
+ "rorx",
+ "roundpd",
+ "roundps",
+ "roundsd",
+ "roundss",
+ "rsm",
+ "rsqrtps",
+ "rsqrtss",
+ "rstorssp",
+ "sahf",
+ "sal",
+ "salc",
+ "sar",
+ "sarx",
+ "saveprevssp",
+ "sbb",
+ "scas",
+ "seamcall",
+ "seamops",
+ "seamret",
+ "senduipi",
+ "seta",
+ "setae",
+ "setb",
+ "setbe",
+ "setg",
+ "setge",
+ "setl",
+ "setle",
+ "setno",
+ "setnp",
+ "setns",
+ "setnz",
+ "seto",
+ "setp",
+ "sets",
+ "setssbsy",
+ "setz",
+ "sfence",
+ "sgdt",
+ "sha1msg1",
+ "sha1msg2",
+ "sha1nexte",
+ "sha1rnds4",
+ "sha256msg1",
+ "sha256msg2",
+ "sha256rnds2",
+ "shl",
+ "shld",
+ "shlx",
+ "shr",
+ "shrd",
+ "shrx",
+ "shufpd",
+ "shufps",
+ "sidt",
+ "skinit",
+ "sldt",
+ "slhd",
+ "smsw",
+ "sqrtpd",
+ "sqrtps",
+ "sqrtsd",
+ "sqrtss",
+ "stac",
+ "stc",
+ "std",
+ "stgi",
+ "sti",
+ "stmxcsr",
+ "stos",
+ "str",
+ "stui",
+ "sub",
+ "subpd",
+ "subps",
+ "subsd",
+ "subss",
+ "swapgs",
+ "syscall",
+ "sysenter",
+ "sysexit",
+ "sysret",
+ "tdcall",
+ "test",
+ "testui",
+ "tlbsync",
+ "tpause",
+ "tzcnt",
+ "ucomisd",
+ "ucomiss",
+ "ud0",
+ "ud1",
+ "ud2",
+ "uiret",
+ "umonitor",
+ "umwait",
+ "unpckhpd",
+ "unpckhps",
+ "unpcklpd",
+ "unpcklps",
+ "v4fmaddps",
+ "v4fmaddss",
+ "v4fnmaddps",
+ "v4fnmaddss",
+ "vaddpd",
+ "vaddps",
+ "vaddsd",
+ "vaddss",
+ "vaddsubpd",
+ "vaddsubps",
+ "vaesdec",
+ "vaesdeclast",
+ "vaesenc",
+ "vaesenclast",
+ "vaesimc",
+ "vaeskeygenassist",
+ "valignd",
+ "valignq",
+ "vandnpd",
+ "vandnps",
+ "vandpd",
+ "vandps",
+ "vblendmpd",
+ "vblendmps",
+ "vblendpd",
+ "vblendps",
+ "vblendvpd",
+ "vblendvps",
+ "vbroadcastf128",
+ "vbroadcastf32x2",
+ "vbroadcastf32x4",
+ "vbroadcastf32x8",
+ "vbroadcastf64x2",
+ "vbroadcastf64x4",
+ "vbroadcasti128",
+ "vbroadcasti32x2",
+ "vbroadcasti32x4",
+ "vbroadcasti32x8",
+ "vbroadcasti64x2",
+ "vbroadcasti64x4",
+ "vbroadcastsd",
+ "vbroadcastss",
+ "vcmppd",
+ "vcmpps",
+ "vcmpsd",
+ "vcmpss",
+ "vcomisd",
+ "vcomiss",
+ "vcompressd",
+ "vcompresspd",
+ "vcompressps",
+ "vcompressq",
+ "vcvtdq2pd",
+ "vcvtdq2ps",
+ "vcvtne2ps2bf16",
+ "vcvtneps2bf16",
+ "vcvtpd2dq",
+ "vcvtpd2ps",
+ "vcvtpd2qq",
+ "vcvtpd2udq",
+ "vcvtpd2uqq",
+ "vcvtph2ps",
+ "vcvtps2dq",
+ "vcvtps2pd",
+ "vcvtps2ph",
+ "vcvtps2qq",
+ "vcvtps2udq",
+ "vcvtps2uqq",
+ "vcvtqq2pd",
+ "vcvtqq2ps",
+ "vcvtsd2si",
+ "vcvtsd2ss",
+ "vcvtsd2usi",
+ "vcvtsi2sd",
+ "vcvtsi2ss",
+ "vcvtss2sd",
+ "vcvtss2si",
+ "vcvtss2usi",
+ "vcvttpd2dq",
+ "vcvttpd2qq",
+ "vcvttpd2udq",
+ "vcvttpd2uqq",
+ "vcvttps2dq",
+ "vcvttps2qq",
+ "vcvttps2udq",
+ "vcvttps2uqq",
+ "vcvttsd2si",
+ "vcvttsd2usi",
+ "vcvttss2si",
+ "vcvttss2usi",
+ "vcvtudq2pd",
+ "vcvtudq2ps",
+ "vcvtuqq2pd",
+ "vcvtuqq2ps",
+ "vcvtusi2sd",
+ "vcvtusi2ss",
+ "vcvtusi2usd",
+ "vcvtusi2uss",
+ "vdbpsadbw",
+ "vdivpd",
+ "vdivps",
+ "vdivsd",
+ "vdivss",
+ "vdpbf16ps",
+ "vdppd",
+ "vdpps",
+ "verr",
+ "verw",
+ "vexp2pd",
+ "vexp2ps",
+ "vexp2sd",
+ "vexp2ss",
+ "vexpandpd",
+ "vexpandps",
+ "vextractf128",
+ "vextractf32x4",
+ "vextractf32x8",
+ "vextractf64x2",
+ "vextractf64x4",
+ "vextracti128",
+ "vextracti32x4",
+ "vextracti32x8",
+ "vextracti64x2",
+ "vextracti64x4",
+ "vextractps",
+ "vfixupimmpd",
+ "vfixupimmps",
+ "vfixupimmsd",
+ "vfixupimmss",
+ "vfmadd132pd",
+ "vfmadd132ps",
+ "vfmadd132sd",
+ "vfmadd132ss",
+ "vfmadd213pd",
+ "vfmadd213ps",
+ "vfmadd213sd",
+ "vfmadd213ss",
+ "vfmadd231pd",
+ "vfmadd231ps",
+ "vfmadd231sd",
+ "vfmadd231ss",
+ "vfmaddsub132pd",
+ "vfmaddsub132ps",
+ "vfmaddsub213pd",
+ "vfmaddsub213ps",
+ "vfmaddsub231pd",
+ "vfmaddsub231ps",
+ "vfmsub132pd",
+ "vfmsub132ps",
+ "vfmsub132sd",
+ "vfmsub132ss",
+ "vfmsub213pd",
+ "vfmsub213ps",
+ "vfmsub213sd",
+ "vfmsub213ss",
+ "vfmsub231pd",
+ "vfmsub231ps",
+ "vfmsub231sd",
+ "vfmsub231ss",
+ "vfmsubadd132pd",
+ "vfmsubadd132ps",
+ "vfmsubadd213pd",
+ "vfmsubadd213ps",
+ "vfmsubadd231pd",
+ "vfmsubadd231ps",
+ "vfnmadd132pd",
+ "vfnmadd132ps",
+ "vfnmadd132sd",
+ "vfnmadd132ss",
+ "vfnmadd213pd",
+ "vfnmadd213ps",
+ "vfnmadd213sd",
+ "vfnmadd213ss",
+ "vfnmadd231pd",
+ "vfnmadd231ps",
+ "vfnmadd231sd",
+ "vfnmadd231ss",
+ "vfnmsub132pd",
+ "vfnmsub132ps",
+ "vfnmsub132sd",
+ "vfnmsub132ss",
+ "vfnmsub213pd",
+ "vfnmsub213ps",
+ "vfnmsub213sd",
+ "vfnmsub213ss",
+ "vfnmsub231pd",
+ "vfnmsub231ps",
+ "vfnmsub231sd",
+ "vfnmsub231ss",
+ "vfpclasspd",
+ "vfpclassps",
+ "vfpclasssd",
+ "vfpclassss",
+ "vgatherdpd",
+ "vgatherdps",
+ "vgatherpf0dpd",
+ "vgatherpf0dps",
+ "vgatherpf0qpd",
+ "vgatherpf0qps",
+ "vgatherpf1dpd",
+ "vgatherpf1dps",
+ "vgatherpf1qpd",
+ "vgatherpf1qps",
+ "vgatherqpd",
+ "vgatherqps",
+ "vgetexppd",
+ "vgetexpps",
+ "vgetexpsd",
+ "vgetexpss",
+ "vgetmantpd",
+ "vgetmantps",
+ "vgetmantsd",
+ "vgetmantss",
+ "vgf2p8affineinvqb",
+ "vgf2p8affineqb",
+ "vgf2p8mulb",
+ "vhaddpd",
+ "vhaddps",
+ "vhsubpd",
+ "vhsubps",
+ "vinsertf128",
+ "vinsertf32x4",
+ "vinsertf32x8",
+ "vinsertf64x2",
+ "vinsertf64x4",
+ "vinserti128",
+ "vinserti32x4",
+ "vinserti32x8",
+ "vinserti64x2",
+ "vinserti64x4",
+ "vinsertps",
+ "vlddqu",
+ "vldmxcsr",
+ "vmaskmovdqu",
+ "vmaskmovpd",
+ "vmaskmovps",
+ "vmaxpd",
+ "vmaxps",
+ "vmaxsd",
+ "vmaxss",
+ "vmcall",
+ "vmclear",
+ "vmfunc",
+ "vminpd",
+ "vminps",
+ "vminsd",
+ "vminss",
+ "vmlaunch",
+ "vmload",
+ "vmmcall",
+ "vmovapd",
+ "vmovaps",
+ "vmovd",
+ "vmovddup",
+ "vmovdqa",
+ "vmovdqa32",
+ "vmovdqa64",
+ "vmovdqu",
+ "vmovdqu16",
+ "vmovdqu32",
+ "vmovdqu64",
+ "vmovdqu8",
+ "vmovhlps",
+ "vmovhpd",
+ "vmovhps",
+ "vmovlhps",
+ "vmovlpd",
+ "vmovlps",
+ "vmovmskpd",
+ "vmovmskps",
+ "vmovntdq",
+ "vmovntdqa",
+ "vmovntpd",
+ "vmovntps",
+ "vmovq",
+ "vmovsd",
+ "vmovshdup",
+ "vmovsldup",
+ "vmovss",
+ "vmovupd",
+ "vmovups",
+ "vmpsadbw",
+ "vmptrld",
+ "vmptrst",
+ "vmread",
+ "vmresume",
+ "vmrun",
+ "vmsave",
+ "vmulpd",
+ "vmulps",
+ "vmulsd",
+ "vmulss",
+ "vmwrite",
+ "vmxoff",
+ "vmxon",
+ "vorpd",
+ "vorps",
+ "vp2intersectd",
+ "vp2intersectq",
+ "vp4dpwssd",
+ "vp4dpwssds",
+ "vpabsb",
+ "vpabsd",
+ "vpabsq",
+ "vpabsw",
+ "vpackssdw",
+ "vpacksswb",
+ "vpackusdw",
+ "vpackuswb",
+ "vpaddb",
+ "vpaddd",
+ "vpaddq",
+ "vpaddsb",
+ "vpaddsw",
+ "vpaddusb",
+ "vpaddusw",
+ "vpaddw",
+ "vpalignr",
+ "vpand",
+ "vpandd",
+ "vpandn",
+ "vpandnd",
+ "vpandnq",
+ "vpandq",
+ "vpavgb",
+ "vpavgw",
+ "vpblendd",
+ "vpblendmb",
+ "vpblendmd",
+ "vpblendmq",
+ "vpblendmw",
+ "vpblendvb",
+ "vpblendw",
+ "vpbroadcastb",
+ "vpbroadcastd",
+ "vpbroadcastm",
+ "vpbroadcastmb2q",
+ "vpbroadcastmw2d",
+ "vpbroadcastq",
+ "vpbroadcastw",
+ "vpclmulqdq",
+ "vpcmpb",
+ "vpcmpd",
+ "vpcmpeqb",
+ "vpcmpeqd",
+ "vpcmpeqq",
+ "vpcmpeqw",
+ "vpcmpestri",
+ "vpcmpestrm",
+ "vpcmpgtb",
+ "vpcmpgtd",
+ "vpcmpgtq",
+ "vpcmpgtw",
+ "vpcmpistri",
+ "vpcmpistrm",
+ "vpcmpq",
+ "vpcmpub",
+ "vpcmpud",
+ "vpcmpuq",
+ "vpcmpuw",
+ "vpcmpw",
+ "vpcompressb",
+ "vpcompressd",
+ "vpcompressq",
+ "vpcompressw",
+ "vpconflictd",
+ "vpconflictq",
+ "vpdpbusd",
+ "vpdpbusds",
+ "vpdpwssd",
+ "vpdpwssds",
+ "vperm2f128",
+ "vperm2i128",
+ "vpermb",
+ "vpermd",
+ "vpermi2b",
+ "vpermi2d",
+ "vpermi2pd",
+ "vpermi2ps",
+ "vpermi2q",
+ "vpermi2w",
+ "vpermilpd",
+ "vpermilps",
+ "vpermpd",
+ "vpermps",
+ "vpermq",
+ "vpermt2b",
+ "vpermt2d",
+ "vpermt2pd",
+ "vpermt2ps",
+ "vpermt2q",
+ "vpermt2w",
+ "vpermw",
+ "vpexpandb",
+ "vpexpandd",
+ "vpexpandq",
+ "vpexpandw",
+ "vpextrb",
+ "vpextrd",
+ "vpextrq",
+ "vpextrw",
+ "vpgatherdd",
+ "vpgatherdq",
+ "vpgatherqd",
+ "vpgatherqq",
+ "vphaddd",
+ "vphaddsw",
+ "vphaddw",
+ "vphminposuw",
+ "vphsubd",
+ "vphsubsw",
+ "vphsubw",
+ "vpinsrb",
+ "vpinsrd",
+ "vpinsrq",
+ "vpinsrw",
+ "vplzcntd",
+ "vplzcntq",
+ "vpmadd52huq",
+ "vpmadd52luq",
+ "vpmaddubsw",
+ "vpmaddwd",
+ "vpmaskmovd",
+ "vpmaskmovq",
+ "vpmaxsb",
+ "vpmaxsd",
+ "vpmaxsq",
+ "vpmaxsw",
+ "vpmaxub",
+ "vpmaxud",
+ "vpmaxuq",
+ "vpmaxuw",
+ "vpminsb",
+ "vpminsd",
+ "vpminsq",
+ "vpminsw",
+ "vpminub",
+ "vpminud",
+ "vpminuq",
+ "vpminuw",
+ "vpmovb2d",
+ "vpmovb2m",
+ "vpmovd2m",
+ "vpmovdb",
+ "vpmovdw",
+ "vpmovm2b",
+ "vpmovm2d",
+ "vpmovm2q",
+ "vpmovm2w",
+ "vpmovmskb",
+ "vpmovq2m",
+ "vpmovqb",
+ "vpmovqd",
+ "vpmovqw",
+ "vpmovsdb",
+ "vpmovsdw",
+ "vpmovsqb",
+ "vpmovsqd",
+ "vpmovsqw",
+ "vpmovswb",
+ "vpmovsxbd",
+ "vpmovsxbq",
+ "vpmovsxbw",
+ "vpmovsxdq",
+ "vpmovsxwd",
+ "vpmovsxwq",
+ "vpmovusdb",
+ "vpmovusdw",
+ "vpmovusqb",
+ "vpmovusqd",
+ "vpmovusqw",
+ "vpmovuswb",
+ "vpmovw2m",
+ "vpmovwb",
+ "vpmovzxbd",
+ "vpmovzxbq",
+ "vpmovzxbw",
+ "vpmovzxdq",
+ "vpmovzxwd",
+ "vpmovzxwq",
+ "vpmuldq",
+ "vpmulhrsw",
+ "vpmulhuw",
+ "vpmulhw",
+ "vpmulld",
+ "vpmullq",
+ "vpmullw",
+ "vpmultishiftqb",
+ "vpmuludq",
+ "vpopcntb",
+ "vpopcntd",
+ "vpopcntq",
+ "vpopcntw",
+ "vpor",
+ "vpord",
+ "vporq",
+ "vprold",
+ "vprolq",
+ "vprolvd",
+ "vprolvq",
+ "vprord",
+ "vprorq",
+ "vprorrd",
+ "vprorrq",
+ "vprorvd",
+ "vprorvq",
+ "vpsadbw",
+ "vpscatterdd",
+ "vpscatterdq",
+ "vpscatterqd",
+ "vpscatterqq",
+ "vpshldd",
+ "vpshldq",
+ "vpshldvd",
+ "vpshldvq",
+ "vpshldvw",
+ "vpshldw",
+ "vpshrdd",
+ "vpshrdq",
+ "vpshrdvd",
+ "vpshrdvq",
+ "vpshrdvw",
+ "vpshrdw",
+ "vpshufb",
+ "vpshufbitqmb",
+ "vpshufd",
+ "vpshufhw",
+ "vpshuflw",
+ "vpsignb",
+ "vpsignd",
+ "vpsignw",
+ "vpslld",
+ "vpslldq",
+ "vpsllq",
+ "vpsllvd",
+ "vpsllvq",
+ "vpsllvw",
+ "vpsllw",
+ "vpsrad",
+ "vpsraq",
+ "vpsravd",
+ "vpsravq",
+ "vpsravw",
+ "vpsraw",
+ "vpsrld",
+ "vpsrldq",
+ "vpsrlq",
+ "vpsrlvd",
+ "vpsrlvq",
+ "vpsrlvw",
+ "vpsrlw",
+ "vpsubb",
+ "vpsubd",
+ "vpsubq",
+ "vpsubsb",
+ "vpsubsw",
+ "vpsubusb",
+ "vpsubusw",
+ "vpsubw",
+ "vpternlogd",
+ "vpternlogq",
+ "vptest",
+ "vptestmb",
+ "vptestmd",
+ "vptestmq",
+ "vptestmw",
+ "vptestnmb",
+ "vptestnmd",
+ "vptestnmq",
+ "vptestnmw",
+ "vpunpckhbw",
+ "vpunpckhdq",
+ "vpunpckhqdq",
+ "vpunpckhwd",
+ "vpunpcklbw",
+ "vpunpckldq",
+ "vpunpcklqdq",
+ "vpunpcklwd",
+ "vpxor",
+ "vpxord",
+ "vpxorq",
+ "vrangepd",
+ "vrangeps",
+ "vrangesd",
+ "vrangess",
+ "vrcp14pd",
+ "vrcp14ps",
+ "vrcp14sd",
+ "vrcp14ss",
+ "vrcp28pd",
+ "vrcp28ps",
+ "vrcp28sd",
+ "vrcp28ss",
+ "vrcpps",
+ "vrcpss",
+ "vreducepd",
+ "vreduceps",
+ "vreducesd",
+ "vreducess",
+ "vrndscalepd",
+ "vrndscaleps",
+ "vrndscalesd",
+ "vrndscaless",
+ "vroundpd",
+ "vroundps",
+ "vroundsd",
+ "vroundss",
+ "vrsqrt14pd",
+ "vrsqrt14ps",
+ "vrsqrt14sd",
+ "vrsqrt14ss",
+ "vrsqrt28pd",
+ "vrsqrt28ps",
+ "vrsqrt28sd",
+ "vrsqrt28ss",
+ "vrsqrtps",
+ "vrsqrtss",
+ "vscaledpd",
+ "vscaledps",
+ "vscaledsd",
+ "vscaledss",
+ "vscalefpd",
+ "vscalefps",
+ "vscalefsd",
+ "vscalefss",
+ "vscatterdd",
+ "vscatterdpd",
+ "vscatterdps",
+ "vscatterdq",
+ "vscatterpf0dpd",
+ "vscatterpf0dps",
+ "vscatterpf0qpd",
+ "vscatterpf0qps",
+ "vscatterpf1dpd",
+ "vscatterpf1dps",
+ "vscatterpf1qpd",
+ "vscatterpf1qps",
+ "vscatterqd",
+ "vscatterqpd",
+ "vscatterqps",
+ "vscatterqq",
+ "vshuff32x4",
+ "vshuff64x2",
+ "vshufi32x4",
+ "vshufi64x2",
+ "vshufpd",
+ "vshufps",
+ "vsqrtpd",
+ "vsqrtps",
+ "vsqrtsd",
+ "vsqrtss",
+ "vstmxcsr",
+ "vsubpd",
+ "vsubps",
+ "vsubsd",
+ "vsubss",
+ "vtestpd",
+ "vtestps",
+ "vucomisd",
+ "vucomiss",
+ "vunpckhpd",
+ "vunpckhps",
+ "vunpcklpd",
+ "vunpcklps",
+ "vxorpd",
+ "vxorps",
+ "vzeroall",
+ "vzeroupper",
+ "wait",
+ "wbinvd",
+ "wrfsbase",
+ "wrgsbase",
+ "wrmsr",
+ "wrpkru",
+ "wrss",
+ "wruss",
+ "xabort",
+ "xadd",
+ "xbegin",
+ "xchg",
+ "xend",
+ "xgetbv",
+ "xlat",
+ "xor",
+ "xorpd",
+ "xorps",
+ "xresldtrk",
+ "xrstor",
+ "xrstors",
+ "xrstors64",
+ "xsave",
+ "xsavec",
+ "xsavec64",
+ "xsaveopt",
+ "xsaves",
+ "xsaves64",
+ "xsetbv",
+ "xsusldtrk",
+ "xtest",
+];
+
+pub(crate) mod real_mode {
+ #[allow(non_camel_case_types)]
+ #[derive(Copy, Clone, Debug, Eq, PartialEq)]
+ #[non_exhaustive]
+ #[repr(u16)]
+ pub enum Opcode {
+ AAA = super::Opcode::AAA as u16,
+ AAD = super::Opcode::AAD as u16,
+ AAM = super::Opcode::AAM as u16,
+ AAS = super::Opcode::AAS as u16,
+ ADC = super::Opcode::ADC as u16,
+ ADCX = super::Opcode::ADCX as u16,
+ ADD = super::Opcode::ADD as u16,
+ ADDPD = super::Opcode::ADDPD as u16,
+ ADDPS = super::Opcode::ADDPS as u16,
+ ADDSD = super::Opcode::ADDSD as u16,
+ ADDSS = super::Opcode::ADDSS as u16,
+ ADDSUBPD = super::Opcode::ADDSUBPD as u16,
+ ADDSUBPS = super::Opcode::ADDSUBPS as u16,
+ ADOX = super::Opcode::ADOX as u16,
+ AESDEC = super::Opcode::AESDEC as u16,
+ AESDEC128KL = super::Opcode::AESDEC128KL as u16,
+ AESDEC256KL = super::Opcode::AESDEC256KL as u16,
+ AESDECLAST = super::Opcode::AESDECLAST as u16,
+ AESDECWIDE128KL = super::Opcode::AESDECWIDE128KL as u16,
+ AESDECWIDE256KL = super::Opcode::AESDECWIDE256KL as u16,
+ AESENC = super::Opcode::AESENC as u16,
+ AESENC128KL = super::Opcode::AESENC128KL as u16,
+ AESENC256KL = super::Opcode::AESENC256KL as u16,
+ AESENCLAST = super::Opcode::AESENCLAST as u16,
+ AESENCWIDE128KL = super::Opcode::AESENCWIDE128KL as u16,
+ AESENCWIDE256KL = super::Opcode::AESENCWIDE256KL as u16,
+ AESIMC = super::Opcode::AESIMC as u16,
+ AESKEYGENASSIST = super::Opcode::AESKEYGENASSIST as u16,
+ AND = super::Opcode::AND as u16,
+ ANDN = super::Opcode::ANDN as u16,
+ ANDNPD = super::Opcode::ANDNPD as u16,
+ ANDNPS = super::Opcode::ANDNPS as u16,
+ ANDPD = super::Opcode::ANDPD as u16,
+ ANDPS = super::Opcode::ANDPS as u16,
+ ARPL = super::Opcode::ARPL as u16,
+ BEXTR = super::Opcode::BEXTR as u16,
+ BLENDPD = super::Opcode::BLENDPD as u16,
+ BLENDPS = super::Opcode::BLENDPS as u16,
+ BLENDVPD = super::Opcode::BLENDVPD as u16,
+ BLENDVPS = super::Opcode::BLENDVPS as u16,
+ BLENDW = super::Opcode::BLENDW as u16,
+ BLSI = super::Opcode::BLSI as u16,
+ BLSMSK = super::Opcode::BLSMSK as u16,
+ BLSR = super::Opcode::BLSR as u16,
+ BNDCL = super::Opcode::BNDCL as u16,
+ BNDCN = super::Opcode::BNDCN as u16,
+ BNDCU = super::Opcode::BNDCU as u16,
+ BNDLDX = super::Opcode::BNDLDX as u16,
+ BNDMK = super::Opcode::BNDMK as u16,
+ BNDMOV = super::Opcode::BNDMOV as u16,
+ BNDSTX = super::Opcode::BNDSTX as u16,
+ BOUND = super::Opcode::BOUND as u16,
+ BSF = super::Opcode::BSF as u16,
+ BSR = super::Opcode::BSR as u16,
+ BSWAP = super::Opcode::BSWAP as u16,
+ BT = super::Opcode::BT as u16,
+ BTC = super::Opcode::BTC as u16,
+ BTR = super::Opcode::BTR as u16,
+ BTS = super::Opcode::BTS as u16,
+ BZHI = super::Opcode::BZHI as u16,
+ CALL = super::Opcode::CALL as u16,
+ CALLF = super::Opcode::CALLF as u16,
+ CBW = super::Opcode::CBW as u16,
+ CDQ = super::Opcode::CDQ as u16,
+ CDQE = super::Opcode::CDQE as u16,
+ CLAC = super::Opcode::CLAC as u16,
+ CLC = super::Opcode::CLC as u16,
+ CLD = super::Opcode::CLD as u16,
+ CLFLUSH = super::Opcode::CLFLUSH as u16,
+ CLFLUSHOPT = super::Opcode::CLFLUSHOPT as u16,
+ CLGI = super::Opcode::CLGI as u16,
+ CLI = super::Opcode::CLI as u16,
+ CLRSSBSY = super::Opcode::CLRSSBSY as u16,
+ CLTS = super::Opcode::CLTS as u16,
+ CLUI = super::Opcode::CLUI as u16,
+ CLWB = super::Opcode::CLWB as u16,
+ CLZERO = super::Opcode::CLZERO as u16,
+ CMC = super::Opcode::CMC as u16,
+ CMOVA = super::Opcode::CMOVA as u16,
+ CMOVB = super::Opcode::CMOVB as u16,
+ CMOVG = super::Opcode::CMOVG as u16,
+ CMOVGE = super::Opcode::CMOVGE as u16,
+ CMOVL = super::Opcode::CMOVL as u16,
+ CMOVLE = super::Opcode::CMOVLE as u16,
+ CMOVNA = super::Opcode::CMOVNA as u16,
+ CMOVNB = super::Opcode::CMOVNB as u16,
+ CMOVNO = super::Opcode::CMOVNO as u16,
+ CMOVNP = super::Opcode::CMOVNP as u16,
+ CMOVNS = super::Opcode::CMOVNS as u16,
+ CMOVNZ = super::Opcode::CMOVNZ as u16,
+ CMOVO = super::Opcode::CMOVO as u16,
+ CMOVP = super::Opcode::CMOVP as u16,
+ CMOVS = super::Opcode::CMOVS as u16,
+ CMOVZ = super::Opcode::CMOVZ as u16,
+ CMP = super::Opcode::CMP as u16,
+ CMPPD = super::Opcode::CMPPD as u16,
+ CMPPS = super::Opcode::CMPPS as u16,
+ CMPS = super::Opcode::CMPS as u16,
+ CMPSD = super::Opcode::CMPSD as u16,
+ CMPSS = super::Opcode::CMPSS as u16,
+ CMPXCHG = super::Opcode::CMPXCHG as u16,
+ CMPXCHG16B = super::Opcode::CMPXCHG16B as u16,
+ CMPXCHG8B = super::Opcode::CMPXCHG8B as u16,
+ COMISD = super::Opcode::COMISD as u16,
+ COMISS = super::Opcode::COMISS as u16,
+ CPUID = super::Opcode::CPUID as u16,
+ CQO = super::Opcode::CQO as u16,
+ CRC32 = super::Opcode::CRC32 as u16,
+ CVTDQ2PD = super::Opcode::CVTDQ2PD as u16,
+ CVTDQ2PS = super::Opcode::CVTDQ2PS as u16,
+ CVTPD2DQ = super::Opcode::CVTPD2DQ as u16,
+ CVTPD2PI = super::Opcode::CVTPD2PI as u16,
+ CVTPD2PS = super::Opcode::CVTPD2PS as u16,
+ CVTPI2PD = super::Opcode::CVTPI2PD as u16,
+ CVTPI2PS = super::Opcode::CVTPI2PS as u16,
+ CVTPS2DQ = super::Opcode::CVTPS2DQ as u16,
+ CVTPS2PD = super::Opcode::CVTPS2PD as u16,
+ CVTPS2PI = super::Opcode::CVTPS2PI as u16,
+ CVTSD2SI = super::Opcode::CVTSD2SI as u16,
+ CVTSD2SS = super::Opcode::CVTSD2SS as u16,
+ CVTSI2SD = super::Opcode::CVTSI2SD as u16,
+ CVTSI2SS = super::Opcode::CVTSI2SS as u16,
+ CVTSS2SD = super::Opcode::CVTSS2SD as u16,
+ CVTSS2SI = super::Opcode::CVTSS2SI as u16,
+ CVTTPD2DQ = super::Opcode::CVTTPD2DQ as u16,
+ CVTTPD2PI = super::Opcode::CVTTPD2PI as u16,
+ CVTTPS2DQ = super::Opcode::CVTTPS2DQ as u16,
+ CVTTPS2PI = super::Opcode::CVTTPS2PI as u16,
+ CVTTSD2SI = super::Opcode::CVTTSD2SI as u16,
+ CVTTSS2SI = super::Opcode::CVTTSS2SI as u16,
+ CWD = super::Opcode::CWD as u16,
+ CWDE = super::Opcode::CWDE as u16,
+ DAA = super::Opcode::DAA as u16,
+ DAS = super::Opcode::DAS as u16,
+ DEC = super::Opcode::DEC as u16,
+ DIV = super::Opcode::DIV as u16,
+ DIVPD = super::Opcode::DIVPD as u16,
+ DIVPS = super::Opcode::DIVPS as u16,
+ DIVSD = super::Opcode::DIVSD as u16,
+ DIVSS = super::Opcode::DIVSS as u16,
+ DPPD = super::Opcode::DPPD as u16,
+ DPPS = super::Opcode::DPPS as u16,
+ EMMS = super::Opcode::EMMS as u16,
+ ENCLS = super::Opcode::ENCLS as u16,
+ ENCLU = super::Opcode::ENCLU as u16,
+ ENCLV = super::Opcode::ENCLV as u16,
+ ENCODEKEY128 = super::Opcode::ENCODEKEY128 as u16,
+ ENCODEKEY256 = super::Opcode::ENCODEKEY256 as u16,
+ ENDBR32 = super::Opcode::ENDBR32 as u16,
+ ENDBR64 = super::Opcode::ENDBR64 as u16,
+ ENQCMD = super::Opcode::ENQCMD as u16,
+ ENQCMDS = super::Opcode::ENQCMDS as u16,
+ ENTER = super::Opcode::ENTER as u16,
+ EXTRACTPS = super::Opcode::EXTRACTPS as u16,
+ EXTRQ = super::Opcode::EXTRQ as u16,
+ F2XM1 = super::Opcode::F2XM1 as u16,
+ FABS = super::Opcode::FABS as u16,
+ FADD = super::Opcode::FADD as u16,
+ FADDP = super::Opcode::FADDP as u16,
+ FBLD = super::Opcode::FBLD as u16,
+ FBSTP = super::Opcode::FBSTP as u16,
+ FCHS = super::Opcode::FCHS as u16,
+ FCMOVB = super::Opcode::FCMOVB as u16,
+ FCMOVBE = super::Opcode::FCMOVBE as u16,
+ FCMOVE = super::Opcode::FCMOVE as u16,
+ FCMOVNB = super::Opcode::FCMOVNB as u16,
+ FCMOVNBE = super::Opcode::FCMOVNBE as u16,
+ FCMOVNE = super::Opcode::FCMOVNE as u16,
+ FCMOVNU = super::Opcode::FCMOVNU as u16,
+ FCMOVU = super::Opcode::FCMOVU as u16,
+ FCOM = super::Opcode::FCOM as u16,
+ FCOMI = super::Opcode::FCOMI as u16,
+ FCOMIP = super::Opcode::FCOMIP as u16,
+ FCOMP = super::Opcode::FCOMP as u16,
+ FCOMPP = super::Opcode::FCOMPP as u16,
+ FCOS = super::Opcode::FCOS as u16,
+ FDECSTP = super::Opcode::FDECSTP as u16,
+ FDISI8087_NOP = super::Opcode::FDISI8087_NOP as u16,
+ FDIV = super::Opcode::FDIV as u16,
+ FDIVP = super::Opcode::FDIVP as u16,
+ FDIVR = super::Opcode::FDIVR as u16,
+ FDIVRP = super::Opcode::FDIVRP as u16,
+ FEMMS = super::Opcode::FEMMS as u16,
+ FENI8087_NOP = super::Opcode::FENI8087_NOP as u16,
+ FFREE = super::Opcode::FFREE as u16,
+ FFREEP = super::Opcode::FFREEP as u16,
+ FIADD = super::Opcode::FIADD as u16,
+ FICOM = super::Opcode::FICOM as u16,
+ FICOMP = super::Opcode::FICOMP as u16,
+ FIDIV = super::Opcode::FIDIV as u16,
+ FIDIVR = super::Opcode::FIDIVR as u16,
+ FILD = super::Opcode::FILD as u16,
+ FIMUL = super::Opcode::FIMUL as u16,
+ FINCSTP = super::Opcode::FINCSTP as u16,
+ FIST = super::Opcode::FIST as u16,
+ FISTP = super::Opcode::FISTP as u16,
+ FISTTP = super::Opcode::FISTTP as u16,
+ FISUB = super::Opcode::FISUB as u16,
+ FISUBR = super::Opcode::FISUBR as u16,
+ FLD = super::Opcode::FLD as u16,
+ FLD1 = super::Opcode::FLD1 as u16,
+ FLDCW = super::Opcode::FLDCW as u16,
+ FLDENV = super::Opcode::FLDENV as u16,
+ FLDL2E = super::Opcode::FLDL2E as u16,
+ FLDL2T = super::Opcode::FLDL2T as u16,
+ FLDLG2 = super::Opcode::FLDLG2 as u16,
+ FLDLN2 = super::Opcode::FLDLN2 as u16,
+ FLDPI = super::Opcode::FLDPI as u16,
+ FLDZ = super::Opcode::FLDZ as u16,
+ FMUL = super::Opcode::FMUL as u16,
+ FMULP = super::Opcode::FMULP as u16,
+ FNCLEX = super::Opcode::FNCLEX as u16,
+ FNINIT = super::Opcode::FNINIT as u16,
+ FNOP = super::Opcode::FNOP as u16,
+ FNSAVE = super::Opcode::FNSAVE as u16,
+ FNSTCW = super::Opcode::FNSTCW as u16,
+ FNSTENV = super::Opcode::FNSTENV as u16,
+ FNSTOR = super::Opcode::FNSTOR as u16,
+ FNSTSW = super::Opcode::FNSTSW as u16,
+ FPATAN = super::Opcode::FPATAN as u16,
+ FPREM = super::Opcode::FPREM as u16,
+ FPREM1 = super::Opcode::FPREM1 as u16,
+ FPTAN = super::Opcode::FPTAN as u16,
+ FRNDINT = super::Opcode::FRNDINT as u16,
+ FRSTOR = super::Opcode::FRSTOR as u16,
+ FSCALE = super::Opcode::FSCALE as u16,
+ FSETPM287_NOP = super::Opcode::FSETPM287_NOP as u16,
+ FSIN = super::Opcode::FSIN as u16,
+ FSINCOS = super::Opcode::FSINCOS as u16,
+ FSQRT = super::Opcode::FSQRT as u16,
+ FST = super::Opcode::FST as u16,
+ FSTP = super::Opcode::FSTP as u16,
+ FSTPNCE = super::Opcode::FSTPNCE as u16,
+ FSUB = super::Opcode::FSUB as u16,
+ FSUBP = super::Opcode::FSUBP as u16,
+ FSUBR = super::Opcode::FSUBR as u16,
+ FSUBRP = super::Opcode::FSUBRP as u16,
+ FTST = super::Opcode::FTST as u16,
+ FUCOM = super::Opcode::FUCOM as u16,
+ FUCOMI = super::Opcode::FUCOMI as u16,
+ FUCOMIP = super::Opcode::FUCOMIP as u16,
+ FUCOMP = super::Opcode::FUCOMP as u16,
+ FUCOMPP = super::Opcode::FUCOMPP as u16,
+ FXAM = super::Opcode::FXAM as u16,
+ FXCH = super::Opcode::FXCH as u16,
+ FXRSTOR = super::Opcode::FXRSTOR as u16,
+ FXSAVE = super::Opcode::FXSAVE as u16,
+ FXTRACT = super::Opcode::FXTRACT as u16,
+ FYL2X = super::Opcode::FYL2X as u16,
+ FYL2XP1 = super::Opcode::FYL2XP1 as u16,
+ GETSEC = super::Opcode::GETSEC as u16,
+ GF2P8AFFINEINVQB = super::Opcode::GF2P8AFFINEINVQB as u16,
+ GF2P8AFFINEQB = super::Opcode::GF2P8AFFINEQB as u16,
+ GF2P8MULB = super::Opcode::GF2P8MULB as u16,
+ HADDPD = super::Opcode::HADDPD as u16,
+ HADDPS = super::Opcode::HADDPS as u16,
+ HLT = super::Opcode::HLT as u16,
+ HRESET = super::Opcode::HRESET as u16,
+ HSUBPD = super::Opcode::HSUBPD as u16,
+ HSUBPS = super::Opcode::HSUBPS as u16,
+ IDIV = super::Opcode::IDIV as u16,
+ IMUL = super::Opcode::IMUL as u16,
+ IN = super::Opcode::IN as u16,
+ INC = super::Opcode::INC as u16,
+ INCSSP = super::Opcode::INCSSP as u16,
+ INS = super::Opcode::INS as u16,
+ INSERTPS = super::Opcode::INSERTPS as u16,
+ INSERTQ = super::Opcode::INSERTQ as u16,
+ INT = super::Opcode::INT as u16,
+ INTO = super::Opcode::INTO as u16,
+ Invalid = super::Opcode::Invalid as u16,
+ INVD = super::Opcode::INVD as u16,
+ INVEPT = super::Opcode::INVEPT as u16,
+ INVLPG = super::Opcode::INVLPG as u16,
+ INVLPGA = super::Opcode::INVLPGA as u16,
+ INVLPGB = super::Opcode::INVLPGB as u16,
+ INVPCID = super::Opcode::INVPCID as u16,
+ INVVPID = super::Opcode::INVVPID as u16,
+ IRET = super::Opcode::IRET as u16,
+ IRETD = super::Opcode::IRETD as u16,
+ IRETQ = super::Opcode::IRETQ as u16,
+ JA = super::Opcode::JA as u16,
+ JB = super::Opcode::JB as u16,
+ JCXZ = super::Opcode::JCXZ as u16,
+ JG = super::Opcode::JG as u16,
+ JGE = super::Opcode::JGE as u16,
+ JL = super::Opcode::JL as u16,
+ JLE = super::Opcode::JLE as u16,
+ JMP = super::Opcode::JMP as u16,
+ JMPE = super::Opcode::JMPE as u16,
+ JMPF = super::Opcode::JMPF as u16,
+ JNA = super::Opcode::JNA as u16,
+ JNB = super::Opcode::JNB as u16,
+ JNO = super::Opcode::JNO as u16,
+ JNP = super::Opcode::JNP as u16,
+ JNS = super::Opcode::JNS as u16,
+ JNZ = super::Opcode::JNZ as u16,
+ JO = super::Opcode::JO as u16,
+ JP = super::Opcode::JP as u16,
+ JS = super::Opcode::JS as u16,
+ JZ = super::Opcode::JZ as u16,
+ KADDB = super::Opcode::KADDB as u16,
+ KADDD = super::Opcode::KADDD as u16,
+ KADDQ = super::Opcode::KADDQ as u16,
+ KADDW = super::Opcode::KADDW as u16,
+ KANDB = super::Opcode::KANDB as u16,
+ KANDD = super::Opcode::KANDD as u16,
+ KANDNB = super::Opcode::KANDNB as u16,
+ KANDND = super::Opcode::KANDND as u16,
+ KANDNQ = super::Opcode::KANDNQ as u16,
+ KANDNW = super::Opcode::KANDNW as u16,
+ KANDQ = super::Opcode::KANDQ as u16,
+ KANDW = super::Opcode::KANDW as u16,
+ KMOVB = super::Opcode::KMOVB as u16,
+ KMOVD = super::Opcode::KMOVD as u16,
+ KMOVQ = super::Opcode::KMOVQ as u16,
+ KMOVW = super::Opcode::KMOVW as u16,
+ KNOTB = super::Opcode::KNOTB as u16,
+ KNOTD = super::Opcode::KNOTD as u16,
+ KNOTQ = super::Opcode::KNOTQ as u16,
+ KNOTW = super::Opcode::KNOTW as u16,
+ KORB = super::Opcode::KORB as u16,
+ KORD = super::Opcode::KORD as u16,
+ KORQ = super::Opcode::KORQ as u16,
+ KORTESTB = super::Opcode::KORTESTB as u16,
+ KORTESTD = super::Opcode::KORTESTD as u16,
+ KORTESTQ = super::Opcode::KORTESTQ as u16,
+ KORTESTW = super::Opcode::KORTESTW as u16,
+ KORW = super::Opcode::KORW as u16,
+ KSHIFTLB = super::Opcode::KSHIFTLB as u16,
+ KSHIFTLD = super::Opcode::KSHIFTLD as u16,
+ KSHIFTLQ = super::Opcode::KSHIFTLQ as u16,
+ KSHIFTLW = super::Opcode::KSHIFTLW as u16,
+ KSHIFTRB = super::Opcode::KSHIFTRB as u16,
+ KSHIFTRD = super::Opcode::KSHIFTRD as u16,
+ KSHIFTRQ = super::Opcode::KSHIFTRQ as u16,
+ KSHIFTRW = super::Opcode::KSHIFTRW as u16,
+ KTESTB = super::Opcode::KTESTB as u16,
+ KTESTD = super::Opcode::KTESTD as u16,
+ KTESTQ = super::Opcode::KTESTQ as u16,
+ KTESTW = super::Opcode::KTESTW as u16,
+ KUNPCKBW = super::Opcode::KUNPCKBW as u16,
+ KUNPCKDQ = super::Opcode::KUNPCKDQ as u16,
+ KUNPCKWD = super::Opcode::KUNPCKWD as u16,
+ KXNORB = super::Opcode::KXNORB as u16,
+ KXNORD = super::Opcode::KXNORD as u16,
+ KXNORQ = super::Opcode::KXNORQ as u16,
+ KXNORW = super::Opcode::KXNORW as u16,
+ KXORB = super::Opcode::KXORB as u16,
+ KXORD = super::Opcode::KXORD as u16,
+ KXORQ = super::Opcode::KXORQ as u16,
+ KXORW = super::Opcode::KXORW as u16,
+ LAHF = super::Opcode::LAHF as u16,
+ LAR = super::Opcode::LAR as u16,
+ LDDQU = super::Opcode::LDDQU as u16,
+ LDMXCSR = super::Opcode::LDMXCSR as u16,
+ LDS = super::Opcode::LDS as u16,
+ LEA = super::Opcode::LEA as u16,
+ LEAVE = super::Opcode::LEAVE as u16,
+ LES = super::Opcode::LES as u16,
+ LFENCE = super::Opcode::LFENCE as u16,
+ LFS = super::Opcode::LFS as u16,
+ LGDT = super::Opcode::LGDT as u16,
+ LGS = super::Opcode::LGS as u16,
+ LIDT = super::Opcode::LIDT as u16,
+ LLDT = super::Opcode::LLDT as u16,
+ LMSW = super::Opcode::LMSW as u16,
+ LOADIWKEY = super::Opcode::LOADIWKEY as u16,
+ LODS = super::Opcode::LODS as u16,
+ LOOP = super::Opcode::LOOP as u16,
+ LOOPNZ = super::Opcode::LOOPNZ as u16,
+ LOOPZ = super::Opcode::LOOPZ as u16,
+ LSL = super::Opcode::LSL as u16,
+ LSS = super::Opcode::LSS as u16,
+ LTR = super::Opcode::LTR as u16,
+ LZCNT = super::Opcode::LZCNT as u16,
+ MASKMOVDQU = super::Opcode::MASKMOVDQU as u16,
+ MASKMOVQ = super::Opcode::MASKMOVQ as u16,
+ MAXPD = super::Opcode::MAXPD as u16,
+ MAXPS = super::Opcode::MAXPS as u16,
+ MAXSD = super::Opcode::MAXSD as u16,
+ MAXSS = super::Opcode::MAXSS as u16,
+ MFENCE = super::Opcode::MFENCE as u16,
+ MINPD = super::Opcode::MINPD as u16,
+ MINPS = super::Opcode::MINPS as u16,
+ MINSD = super::Opcode::MINSD as u16,
+ MINSS = super::Opcode::MINSS as u16,
+ MONITOR = super::Opcode::MONITOR as u16,
+ MONITORX = super::Opcode::MONITORX as u16,
+ MOV = super::Opcode::MOV as u16,
+ MOVAPD = super::Opcode::MOVAPD as u16,
+ MOVAPS = super::Opcode::MOVAPS as u16,
+ MOVBE = super::Opcode::MOVBE as u16,
+ MOVD = super::Opcode::MOVD as u16,
+ MOVDDUP = super::Opcode::MOVDDUP as u16,
+ MOVDIR64B = super::Opcode::MOVDIR64B as u16,
+ MOVDIRI = super::Opcode::MOVDIRI as u16,
+ MOVDQ2Q = super::Opcode::MOVDQ2Q as u16,
+ MOVDQA = super::Opcode::MOVDQA as u16,
+ MOVDQU = super::Opcode::MOVDQU as u16,
+ MOVHLPS = super::Opcode::MOVHLPS as u16,
+ MOVHPD = super::Opcode::MOVHPD as u16,
+ MOVHPS = super::Opcode::MOVHPS as u16,
+ MOVLHPS = super::Opcode::MOVLHPS as u16,
+ MOVLPD = super::Opcode::MOVLPD as u16,
+ MOVLPS = super::Opcode::MOVLPS as u16,
+ MOVMSKPD = super::Opcode::MOVMSKPD as u16,
+ MOVMSKPS = super::Opcode::MOVMSKPS as u16,
+ MOVNTDQ = super::Opcode::MOVNTDQ as u16,
+ MOVNTDQA = super::Opcode::MOVNTDQA as u16,
+ MOVNTI = super::Opcode::MOVNTI as u16,
+ MOVNTPD = super::Opcode::MOVNTPD as u16,
+ MOVNTPS = super::Opcode::MOVNTPS as u16,
+ MOVNTQ = super::Opcode::MOVNTQ as u16,
+ MOVNTSD = super::Opcode::MOVNTSD as u16,
+ MOVNTSS = super::Opcode::MOVNTSS as u16,
+ MOVQ = super::Opcode::MOVQ as u16,
+ MOVQ2DQ = super::Opcode::MOVQ2DQ as u16,
+ MOVS = super::Opcode::MOVS as u16,
+ MOVSD = super::Opcode::MOVSD as u16,
+ MOVSHDUP = super::Opcode::MOVSHDUP as u16,
+ MOVSLDUP = super::Opcode::MOVSLDUP as u16,
+ MOVSS = super::Opcode::MOVSS as u16,
+ MOVSX = super::Opcode::MOVSX as u16,
+ MOVSXD = super::Opcode::MOVSXD as u16,
+ MOVUPD = super::Opcode::MOVUPD as u16,
+ MOVUPS = super::Opcode::MOVUPS as u16,
+ MOVZX = super::Opcode::MOVZX as u16,
+ MPSADBW = super::Opcode::MPSADBW as u16,
+ MUL = super::Opcode::MUL as u16,
+ MULPD = super::Opcode::MULPD as u16,
+ MULPS = super::Opcode::MULPS as u16,
+ MULSD = super::Opcode::MULSD as u16,
+ MULSS = super::Opcode::MULSS as u16,
+ MULX = super::Opcode::MULX as u16,
+ MWAIT = super::Opcode::MWAIT as u16,
+ MWAITX = super::Opcode::MWAITX as u16,
+ NEG = super::Opcode::NEG as u16,
+ NOP = super::Opcode::NOP as u16,
+ NOT = super::Opcode::NOT as u16,
+ OR = super::Opcode::OR as u16,
+ ORPD = super::Opcode::ORPD as u16,
+ ORPS = super::Opcode::ORPS as u16,
+ OUT = super::Opcode::OUT as u16,
+ OUTS = super::Opcode::OUTS as u16,
+ PABSB = super::Opcode::PABSB as u16,
+ PABSD = super::Opcode::PABSD as u16,
+ PABSW = super::Opcode::PABSW as u16,
+ PACKSSDW = super::Opcode::PACKSSDW as u16,
+ PACKSSWB = super::Opcode::PACKSSWB as u16,
+ PACKUSDW = super::Opcode::PACKUSDW as u16,
+ PACKUSWB = super::Opcode::PACKUSWB as u16,
+ PADDB = super::Opcode::PADDB as u16,
+ PADDD = super::Opcode::PADDD as u16,
+ PADDQ = super::Opcode::PADDQ as u16,
+ PADDSB = super::Opcode::PADDSB as u16,
+ PADDSW = super::Opcode::PADDSW as u16,
+ PADDUSB = super::Opcode::PADDUSB as u16,
+ PADDUSW = super::Opcode::PADDUSW as u16,
+ PADDW = super::Opcode::PADDW as u16,
+ PALIGNR = super::Opcode::PALIGNR as u16,
+ PAND = super::Opcode::PAND as u16,
+ PANDN = super::Opcode::PANDN as u16,
+ PAVGB = super::Opcode::PAVGB as u16,
+ PAVGUSB = super::Opcode::PAVGUSB as u16,
+ PAVGW = super::Opcode::PAVGW as u16,
+ PBLENDVB = super::Opcode::PBLENDVB as u16,
+ PBLENDW = super::Opcode::PBLENDW as u16,
+ PCLMULQDQ = super::Opcode::PCLMULQDQ as u16,
+ PCMPEQB = super::Opcode::PCMPEQB as u16,
+ PCMPEQD = super::Opcode::PCMPEQD as u16,
+ PCMPEQQ = super::Opcode::PCMPEQQ as u16,
+ PCMPEQW = super::Opcode::PCMPEQW as u16,
+ PCMPESTRI = super::Opcode::PCMPESTRI as u16,
+ PCMPESTRM = super::Opcode::PCMPESTRM as u16,
+ PCMPGTB = super::Opcode::PCMPGTB as u16,
+ PCMPGTD = super::Opcode::PCMPGTD as u16,
+ PCMPGTQ = super::Opcode::PCMPGTQ as u16,
+ PCMPGTW = super::Opcode::PCMPGTW as u16,
+ PCMPISTRI = super::Opcode::PCMPISTRI as u16,
+ PCMPISTRM = super::Opcode::PCMPISTRM as u16,
+ PCONFIG = super::Opcode::PCONFIG as u16,
+ PDEP = super::Opcode::PDEP as u16,
+ PEXT = super::Opcode::PEXT as u16,
+ PEXTRB = super::Opcode::PEXTRB as u16,
+ PEXTRD = super::Opcode::PEXTRD as u16,
+ PEXTRQ = super::Opcode::PEXTRQ as u16,
+ PEXTRW = super::Opcode::PEXTRW as u16,
+ PF2ID = super::Opcode::PF2ID as u16,
+ PF2IW = super::Opcode::PF2IW as u16,
+ PFACC = super::Opcode::PFACC as u16,
+ PFADD = super::Opcode::PFADD as u16,
+ PFCMPEQ = super::Opcode::PFCMPEQ as u16,
+ PFCMPGE = super::Opcode::PFCMPGE as u16,
+ PFCMPGT = super::Opcode::PFCMPGT as u16,
+ PFMAX = super::Opcode::PFMAX as u16,
+ PFMIN = super::Opcode::PFMIN as u16,
+ PFMUL = super::Opcode::PFMUL as u16,
+ PFMULHRW = super::Opcode::PFMULHRW as u16,
+ PFNACC = super::Opcode::PFNACC as u16,
+ PFPNACC = super::Opcode::PFPNACC as u16,
+ PFRCP = super::Opcode::PFRCP as u16,
+ PFRCPIT1 = super::Opcode::PFRCPIT1 as u16,
+ PFRCPIT2 = super::Opcode::PFRCPIT2 as u16,
+ PFRSQIT1 = super::Opcode::PFRSQIT1 as u16,
+ PFRSQRT = super::Opcode::PFRSQRT as u16,
+ PFSUB = super::Opcode::PFSUB as u16,
+ PFSUBR = super::Opcode::PFSUBR as u16,
+ PHADDD = super::Opcode::PHADDD as u16,
+ PHADDSW = super::Opcode::PHADDSW as u16,
+ PHADDW = super::Opcode::PHADDW as u16,
+ PHMINPOSUW = super::Opcode::PHMINPOSUW as u16,
+ PHSUBD = super::Opcode::PHSUBD as u16,
+ PHSUBSW = super::Opcode::PHSUBSW as u16,
+ PHSUBW = super::Opcode::PHSUBW as u16,
+ PI2FD = super::Opcode::PI2FD as u16,
+ PI2FW = super::Opcode::PI2FW as u16,
+ PINSRB = super::Opcode::PINSRB as u16,
+ PINSRD = super::Opcode::PINSRD as u16,
+ PINSRQ = super::Opcode::PINSRQ as u16,
+ PINSRW = super::Opcode::PINSRW as u16,
+ PMADDUBSW = super::Opcode::PMADDUBSW as u16,
+ PMADDWD = super::Opcode::PMADDWD as u16,
+ PMAXSB = super::Opcode::PMAXSB as u16,
+ PMAXSD = super::Opcode::PMAXSD as u16,
+ PMAXSW = super::Opcode::PMAXSW as u16,
+ PMAXUB = super::Opcode::PMAXUB as u16,
+ PMAXUD = super::Opcode::PMAXUD as u16,
+ PMAXUW = super::Opcode::PMAXUW as u16,
+ PMINSB = super::Opcode::PMINSB as u16,
+ PMINSD = super::Opcode::PMINSD as u16,
+ PMINSW = super::Opcode::PMINSW as u16,
+ PMINUB = super::Opcode::PMINUB as u16,
+ PMINUD = super::Opcode::PMINUD as u16,
+ PMINUW = super::Opcode::PMINUW as u16,
+ PMOVMSKB = super::Opcode::PMOVMSKB as u16,
+ PMOVSXBD = super::Opcode::PMOVSXBD as u16,
+ PMOVSXBQ = super::Opcode::PMOVSXBQ as u16,
+ PMOVSXBW = super::Opcode::PMOVSXBW as u16,
+ PMOVSXDQ = super::Opcode::PMOVSXDQ as u16,
+ PMOVSXWD = super::Opcode::PMOVSXWD as u16,
+ PMOVSXWQ = super::Opcode::PMOVSXWQ as u16,
+ PMOVZXBD = super::Opcode::PMOVZXBD as u16,
+ PMOVZXBQ = super::Opcode::PMOVZXBQ as u16,
+ PMOVZXBW = super::Opcode::PMOVZXBW as u16,
+ PMOVZXDQ = super::Opcode::PMOVZXDQ as u16,
+ PMOVZXWD = super::Opcode::PMOVZXWD as u16,
+ PMOVZXWQ = super::Opcode::PMOVZXWQ as u16,
+ PMULDQ = super::Opcode::PMULDQ as u16,
+ PMULHRSW = super::Opcode::PMULHRSW as u16,
+ PMULHRW = super::Opcode::PMULHRW as u16,
+ PMULHUW = super::Opcode::PMULHUW as u16,
+ PMULHW = super::Opcode::PMULHW as u16,
+ PMULLD = super::Opcode::PMULLD as u16,
+ PMULLW = super::Opcode::PMULLW as u16,
+ PMULUDQ = super::Opcode::PMULUDQ as u16,
+ POP = super::Opcode::POP as u16,
+ POPA = super::Opcode::POPA as u16,
+ POPCNT = super::Opcode::POPCNT as u16,
+ POPF = super::Opcode::POPF as u16,
+ POR = super::Opcode::POR as u16,
+ PREFETCH0 = super::Opcode::PREFETCH0 as u16,
+ PREFETCH1 = super::Opcode::PREFETCH1 as u16,
+ PREFETCH2 = super::Opcode::PREFETCH2 as u16,
+ PREFETCHNTA = super::Opcode::PREFETCHNTA as u16,
+ PREFETCHW = super::Opcode::PREFETCHW as u16,
+ PSADBW = super::Opcode::PSADBW as u16,
+ PSHUFB = super::Opcode::PSHUFB as u16,
+ PSHUFD = super::Opcode::PSHUFD as u16,
+ PSHUFHW = super::Opcode::PSHUFHW as u16,
+ PSHUFLW = super::Opcode::PSHUFLW as u16,
+ PSHUFW = super::Opcode::PSHUFW as u16,
+ PSIGNB = super::Opcode::PSIGNB as u16,
+ PSIGND = super::Opcode::PSIGND as u16,
+ PSIGNW = super::Opcode::PSIGNW as u16,
+ PSLLD = super::Opcode::PSLLD as u16,
+ PSLLDQ = super::Opcode::PSLLDQ as u16,
+ PSLLQ = super::Opcode::PSLLQ as u16,
+ PSLLW = super::Opcode::PSLLW as u16,
+ PSMASH = super::Opcode::PSMASH as u16,
+ PSRAD = super::Opcode::PSRAD as u16,
+ PSRAW = super::Opcode::PSRAW as u16,
+ PSRLD = super::Opcode::PSRLD as u16,
+ PSRLDQ = super::Opcode::PSRLDQ as u16,
+ PSRLQ = super::Opcode::PSRLQ as u16,
+ PSRLW = super::Opcode::PSRLW as u16,
+ PSUBB = super::Opcode::PSUBB as u16,
+ PSUBD = super::Opcode::PSUBD as u16,
+ PSUBQ = super::Opcode::PSUBQ as u16,
+ PSUBSB = super::Opcode::PSUBSB as u16,
+ PSUBSW = super::Opcode::PSUBSW as u16,
+ PSUBUSB = super::Opcode::PSUBUSB as u16,
+ PSUBUSW = super::Opcode::PSUBUSW as u16,
+ PSUBW = super::Opcode::PSUBW as u16,
+ PSWAPD = super::Opcode::PSWAPD as u16,
+ PTEST = super::Opcode::PTEST as u16,
+ PTWRITE = super::Opcode::PTWRITE as u16,
+ PUNPCKHBW = super::Opcode::PUNPCKHBW as u16,
+ PUNPCKHDQ = super::Opcode::PUNPCKHDQ as u16,
+ PUNPCKHQDQ = super::Opcode::PUNPCKHQDQ as u16,
+ PUNPCKHWD = super::Opcode::PUNPCKHWD as u16,
+ PUNPCKLBW = super::Opcode::PUNPCKLBW as u16,
+ PUNPCKLDQ = super::Opcode::PUNPCKLDQ as u16,
+ PUNPCKLQDQ = super::Opcode::PUNPCKLQDQ as u16,
+ PUNPCKLWD = super::Opcode::PUNPCKLWD as u16,
+ PUSH = super::Opcode::PUSH as u16,
+ PUSHA = super::Opcode::PUSHA as u16,
+ PUSHF = super::Opcode::PUSHF as u16,
+ PVALIDATE = super::Opcode::PVALIDATE as u16,
+ PXOR = super::Opcode::PXOR as u16,
+ RCL = super::Opcode::RCL as u16,
+ RCPPS = super::Opcode::RCPPS as u16,
+ RCPSS = super::Opcode::RCPSS as u16,
+ RCR = super::Opcode::RCR as u16,
+ RDFSBASE = super::Opcode::RDFSBASE as u16,
+ RDGSBASE = super::Opcode::RDGSBASE as u16,
+ RDMSR = super::Opcode::RDMSR as u16,
+ RDPID = super::Opcode::RDPID as u16,
+ RDPKRU = super::Opcode::RDPKRU as u16,
+ RDPMC = super::Opcode::RDPMC as u16,
+ RDPRU = super::Opcode::RDPRU as u16,
+ RDRAND = super::Opcode::RDRAND as u16,
+ RDSEED = super::Opcode::RDSEED as u16,
+ RDTSC = super::Opcode::RDTSC as u16,
+ RDTSCP = super::Opcode::RDTSCP as u16,
+ RETF = super::Opcode::RETF as u16,
+ RETURN = super::Opcode::RETURN as u16,
+ RMPADJUST = super::Opcode::RMPADJUST as u16,
+ RMPUPDATE = super::Opcode::RMPUPDATE as u16,
+ ROL = super::Opcode::ROL as u16,
+ ROR = super::Opcode::ROR as u16,
+ RORX = super::Opcode::RORX as u16,
+ ROUNDPD = super::Opcode::ROUNDPD as u16,
+ ROUNDPS = super::Opcode::ROUNDPS as u16,
+ ROUNDSD = super::Opcode::ROUNDSD as u16,
+ ROUNDSS = super::Opcode::ROUNDSS as u16,
+ RSM = super::Opcode::RSM as u16,
+ RSQRTPS = super::Opcode::RSQRTPS as u16,
+ RSQRTSS = super::Opcode::RSQRTSS as u16,
+ RSTORSSP = super::Opcode::RSTORSSP as u16,
+ SAHF = super::Opcode::SAHF as u16,
+ SAL = super::Opcode::SAL as u16,
+ SALC = super::Opcode::SALC as u16,
+ SAR = super::Opcode::SAR as u16,
+ SARX = super::Opcode::SARX as u16,
+ SAVEPREVSSP = super::Opcode::SAVEPREVSSP as u16,
+ SBB = super::Opcode::SBB as u16,
+ SCAS = super::Opcode::SCAS as u16,
+ SEAMCALL = super::Opcode::SEAMCALL as u16,
+ SEAMOPS = super::Opcode::SEAMOPS as u16,
+ SEAMRET = super::Opcode::SEAMRET as u16,
+ SENDUIPI = super::Opcode::SENDUIPI as u16,
+ SETA = super::Opcode::SETA as u16,
+ SETAE = super::Opcode::SETAE as u16,
+ SETB = super::Opcode::SETB as u16,
+ SETBE = super::Opcode::SETBE as u16,
+ SETG = super::Opcode::SETG as u16,
+ SETGE = super::Opcode::SETGE as u16,
+ SETL = super::Opcode::SETL as u16,
+ SETLE = super::Opcode::SETLE as u16,
+ SETNO = super::Opcode::SETNO as u16,
+ SETNP = super::Opcode::SETNP as u16,
+ SETNS = super::Opcode::SETNS as u16,
+ SETNZ = super::Opcode::SETNZ as u16,
+ SETO = super::Opcode::SETO as u16,
+ SETP = super::Opcode::SETP as u16,
+ SETS = super::Opcode::SETS as u16,
+ SETSSBSY = super::Opcode::SETSSBSY as u16,
+ SETZ = super::Opcode::SETZ as u16,
+ SFENCE = super::Opcode::SFENCE as u16,
+ SGDT = super::Opcode::SGDT as u16,
+ SHA1MSG1 = super::Opcode::SHA1MSG1 as u16,
+ SHA1MSG2 = super::Opcode::SHA1MSG2 as u16,
+ SHA1NEXTE = super::Opcode::SHA1NEXTE as u16,
+ SHA1RNDS4 = super::Opcode::SHA1RNDS4 as u16,
+ SHA256MSG1 = super::Opcode::SHA256MSG1 as u16,
+ SHA256MSG2 = super::Opcode::SHA256MSG2 as u16,
+ SHA256RNDS2 = super::Opcode::SHA256RNDS2 as u16,
+ SHL = super::Opcode::SHL as u16,
+ SHLD = super::Opcode::SHLD as u16,
+ SHLX = super::Opcode::SHLX as u16,
+ SHR = super::Opcode::SHR as u16,
+ SHRD = super::Opcode::SHRD as u16,
+ SHRX = super::Opcode::SHRX as u16,
+ SHUFPD = super::Opcode::SHUFPD as u16,
+ SHUFPS = super::Opcode::SHUFPS as u16,
+ SIDT = super::Opcode::SIDT as u16,
+ SKINIT = super::Opcode::SKINIT as u16,
+ SLDT = super::Opcode::SLDT as u16,
+ SLHD = super::Opcode::SLHD as u16,
+ SMSW = super::Opcode::SMSW as u16,
+ SQRTPD = super::Opcode::SQRTPD as u16,
+ SQRTPS = super::Opcode::SQRTPS as u16,
+ SQRTSD = super::Opcode::SQRTSD as u16,
+ SQRTSS = super::Opcode::SQRTSS as u16,
+ STAC = super::Opcode::STAC as u16,
+ STC = super::Opcode::STC as u16,
+ STD = super::Opcode::STD as u16,
+ STGI = super::Opcode::STGI as u16,
+ STI = super::Opcode::STI as u16,
+ STMXCSR = super::Opcode::STMXCSR as u16,
+ STOS = super::Opcode::STOS as u16,
+ STR = super::Opcode::STR as u16,
+ STUI = super::Opcode::STUI as u16,
+ SUB = super::Opcode::SUB as u16,
+ SUBPD = super::Opcode::SUBPD as u16,
+ SUBPS = super::Opcode::SUBPS as u16,
+ SUBSD = super::Opcode::SUBSD as u16,
+ SUBSS = super::Opcode::SUBSS as u16,
+ SWAPGS = super::Opcode::SWAPGS as u16,
+ SYSCALL = super::Opcode::SYSCALL as u16,
+ SYSENTER = super::Opcode::SYSENTER as u16,
+ SYSEXIT = super::Opcode::SYSEXIT as u16,
+ SYSRET = super::Opcode::SYSRET as u16,
+ TDCALL = super::Opcode::TDCALL as u16,
+ TEST = super::Opcode::TEST as u16,
+ TESTUI = super::Opcode::TESTUI as u16,
+ TLBSYNC = super::Opcode::TLBSYNC as u16,
+ TPAUSE = super::Opcode::TPAUSE as u16,
+ TZCNT = super::Opcode::TZCNT as u16,
+ UCOMISD = super::Opcode::UCOMISD as u16,
+ UCOMISS = super::Opcode::UCOMISS as u16,
+ UD0 = super::Opcode::UD0 as u16,
+ UD1 = super::Opcode::UD1 as u16,
+ UD2 = super::Opcode::UD2 as u16,
+ UIRET = super::Opcode::UIRET as u16,
+ UMONITOR = super::Opcode::UMONITOR as u16,
+ UMWAIT = super::Opcode::UMWAIT as u16,
+ UNPCKHPD = super::Opcode::UNPCKHPD as u16,
+ UNPCKHPS = super::Opcode::UNPCKHPS as u16,
+ UNPCKLPD = super::Opcode::UNPCKLPD as u16,
+ UNPCKLPS = super::Opcode::UNPCKLPS as u16,
+ V4FMADDPS = super::Opcode::V4FMADDPS as u16,
+ V4FMADDSS = super::Opcode::V4FMADDSS as u16,
+ V4FNMADDPS = super::Opcode::V4FNMADDPS as u16,
+ V4FNMADDSS = super::Opcode::V4FNMADDSS as u16,
+ VADDPD = super::Opcode::VADDPD as u16,
+ VADDPS = super::Opcode::VADDPS as u16,
+ VADDSD = super::Opcode::VADDSD as u16,
+ VADDSS = super::Opcode::VADDSS as u16,
+ VADDSUBPD = super::Opcode::VADDSUBPD as u16,
+ VADDSUBPS = super::Opcode::VADDSUBPS as u16,
+ VAESDEC = super::Opcode::VAESDEC as u16,
+ VAESDECLAST = super::Opcode::VAESDECLAST as u16,
+ VAESENC = super::Opcode::VAESENC as u16,
+ VAESENCLAST = super::Opcode::VAESENCLAST as u16,
+ VAESIMC = super::Opcode::VAESIMC as u16,
+ VAESKEYGENASSIST = super::Opcode::VAESKEYGENASSIST as u16,
+ VALIGND = super::Opcode::VALIGND as u16,
+ VALIGNQ = super::Opcode::VALIGNQ as u16,
+ VANDNPD = super::Opcode::VANDNPD as u16,
+ VANDNPS = super::Opcode::VANDNPS as u16,
+ VANDPD = super::Opcode::VANDPD as u16,
+ VANDPS = super::Opcode::VANDPS as u16,
+ VBLENDMPD = super::Opcode::VBLENDMPD as u16,
+ VBLENDMPS = super::Opcode::VBLENDMPS as u16,
+ VBLENDPD = super::Opcode::VBLENDPD as u16,
+ VBLENDPS = super::Opcode::VBLENDPS as u16,
+ VBLENDVPD = super::Opcode::VBLENDVPD as u16,
+ VBLENDVPS = super::Opcode::VBLENDVPS as u16,
+ VBROADCASTF128 = super::Opcode::VBROADCASTF128 as u16,
+ VBROADCASTF32X2 = super::Opcode::VBROADCASTF32X2 as u16,
+ VBROADCASTF32X4 = super::Opcode::VBROADCASTF32X4 as u16,
+ VBROADCASTF32X8 = super::Opcode::VBROADCASTF32X8 as u16,
+ VBROADCASTF64X2 = super::Opcode::VBROADCASTF64X2 as u16,
+ VBROADCASTF64X4 = super::Opcode::VBROADCASTF64X4 as u16,
+ VBROADCASTI128 = super::Opcode::VBROADCASTI128 as u16,
+ VBROADCASTI32X2 = super::Opcode::VBROADCASTI32X2 as u16,
+ VBROADCASTI32X4 = super::Opcode::VBROADCASTI32X4 as u16,
+ VBROADCASTI32X8 = super::Opcode::VBROADCASTI32X8 as u16,
+ VBROADCASTI64X2 = super::Opcode::VBROADCASTI64X2 as u16,
+ VBROADCASTI64X4 = super::Opcode::VBROADCASTI64X4 as u16,
+ VBROADCASTSD = super::Opcode::VBROADCASTSD as u16,
+ VBROADCASTSS = super::Opcode::VBROADCASTSS as u16,
+ VCMPPD = super::Opcode::VCMPPD as u16,
+ VCMPPS = super::Opcode::VCMPPS as u16,
+ VCMPSD = super::Opcode::VCMPSD as u16,
+ VCMPSS = super::Opcode::VCMPSS as u16,
+ VCOMISD = super::Opcode::VCOMISD as u16,
+ VCOMISS = super::Opcode::VCOMISS as u16,
+ VCOMPRESSD = super::Opcode::VCOMPRESSD as u16,
+ VCOMPRESSPD = super::Opcode::VCOMPRESSPD as u16,
+ VCOMPRESSPS = super::Opcode::VCOMPRESSPS as u16,
+ VCOMPRESSQ = super::Opcode::VCOMPRESSQ as u16,
+ VCVTDQ2PD = super::Opcode::VCVTDQ2PD as u16,
+ VCVTDQ2PS = super::Opcode::VCVTDQ2PS as u16,
+ VCVTNE2PS2BF16 = super::Opcode::VCVTNE2PS2BF16 as u16,
+ VCVTNEPS2BF16 = super::Opcode::VCVTNEPS2BF16 as u16,
+ VCVTPD2DQ = super::Opcode::VCVTPD2DQ as u16,
+ VCVTPD2PS = super::Opcode::VCVTPD2PS as u16,
+ VCVTPD2QQ = super::Opcode::VCVTPD2QQ as u16,
+ VCVTPD2UDQ = super::Opcode::VCVTPD2UDQ as u16,
+ VCVTPD2UQQ = super::Opcode::VCVTPD2UQQ as u16,
+ VCVTPH2PS = super::Opcode::VCVTPH2PS as u16,
+ VCVTPS2DQ = super::Opcode::VCVTPS2DQ as u16,
+ VCVTPS2PD = super::Opcode::VCVTPS2PD as u16,
+ VCVTPS2PH = super::Opcode::VCVTPS2PH as u16,
+ VCVTPS2QQ = super::Opcode::VCVTPS2QQ as u16,
+ VCVTPS2UDQ = super::Opcode::VCVTPS2UDQ as u16,
+ VCVTPS2UQQ = super::Opcode::VCVTPS2UQQ as u16,
+ VCVTQQ2PD = super::Opcode::VCVTQQ2PD as u16,
+ VCVTQQ2PS = super::Opcode::VCVTQQ2PS as u16,
+ VCVTSD2SI = super::Opcode::VCVTSD2SI as u16,
+ VCVTSD2SS = super::Opcode::VCVTSD2SS as u16,
+ VCVTSD2USI = super::Opcode::VCVTSD2USI as u16,
+ VCVTSI2SD = super::Opcode::VCVTSI2SD as u16,
+ VCVTSI2SS = super::Opcode::VCVTSI2SS as u16,
+ VCVTSS2SD = super::Opcode::VCVTSS2SD as u16,
+ VCVTSS2SI = super::Opcode::VCVTSS2SI as u16,
+ VCVTSS2USI = super::Opcode::VCVTSS2USI as u16,
+ VCVTTPD2DQ = super::Opcode::VCVTTPD2DQ as u16,
+ VCVTTPD2QQ = super::Opcode::VCVTTPD2QQ as u16,
+ VCVTTPD2UDQ = super::Opcode::VCVTTPD2UDQ as u16,
+ VCVTTPD2UQQ = super::Opcode::VCVTTPD2UQQ as u16,
+ VCVTTPS2DQ = super::Opcode::VCVTTPS2DQ as u16,
+ VCVTTPS2QQ = super::Opcode::VCVTTPS2QQ as u16,
+ VCVTTPS2UDQ = super::Opcode::VCVTTPS2UDQ as u16,
+ VCVTTPS2UQQ = super::Opcode::VCVTTPS2UQQ as u16,
+ VCVTTSD2SI = super::Opcode::VCVTTSD2SI as u16,
+ VCVTTSD2USI = super::Opcode::VCVTTSD2USI as u16,
+ VCVTTSS2SI = super::Opcode::VCVTTSS2SI as u16,
+ VCVTTSS2USI = super::Opcode::VCVTTSS2USI as u16,
+ VCVTUDQ2PD = super::Opcode::VCVTUDQ2PD as u16,
+ VCVTUDQ2PS = super::Opcode::VCVTUDQ2PS as u16,
+ VCVTUQQ2PD = super::Opcode::VCVTUQQ2PD as u16,
+ VCVTUQQ2PS = super::Opcode::VCVTUQQ2PS as u16,
+ VCVTUSI2SD = super::Opcode::VCVTUSI2SD as u16,
+ VCVTUSI2SS = super::Opcode::VCVTUSI2SS as u16,
+ VCVTUSI2USD = super::Opcode::VCVTUSI2USD as u16,
+ VCVTUSI2USS = super::Opcode::VCVTUSI2USS as u16,
+ VDBPSADBW = super::Opcode::VDBPSADBW as u16,
+ VDIVPD = super::Opcode::VDIVPD as u16,
+ VDIVPS = super::Opcode::VDIVPS as u16,
+ VDIVSD = super::Opcode::VDIVSD as u16,
+ VDIVSS = super::Opcode::VDIVSS as u16,
+ VDPBF16PS = super::Opcode::VDPBF16PS as u16,
+ VDPPD = super::Opcode::VDPPD as u16,
+ VDPPS = super::Opcode::VDPPS as u16,
+ VERR = super::Opcode::VERR as u16,
+ VERW = super::Opcode::VERW as u16,
+ VEXP2PD = super::Opcode::VEXP2PD as u16,
+ VEXP2PS = super::Opcode::VEXP2PS as u16,
+ VEXP2SD = super::Opcode::VEXP2SD as u16,
+ VEXP2SS = super::Opcode::VEXP2SS as u16,
+ VEXPANDPD = super::Opcode::VEXPANDPD as u16,
+ VEXPANDPS = super::Opcode::VEXPANDPS as u16,
+ VEXTRACTF128 = super::Opcode::VEXTRACTF128 as u16,
+ VEXTRACTF32X4 = super::Opcode::VEXTRACTF32X4 as u16,
+ VEXTRACTF32X8 = super::Opcode::VEXTRACTF32X8 as u16,
+ VEXTRACTF64X2 = super::Opcode::VEXTRACTF64X2 as u16,
+ VEXTRACTF64X4 = super::Opcode::VEXTRACTF64X4 as u16,
+ VEXTRACTI128 = super::Opcode::VEXTRACTI128 as u16,
+ VEXTRACTI32X4 = super::Opcode::VEXTRACTI32X4 as u16,
+ VEXTRACTI32X8 = super::Opcode::VEXTRACTI32X8 as u16,
+ VEXTRACTI64X2 = super::Opcode::VEXTRACTI64X2 as u16,
+ VEXTRACTI64X4 = super::Opcode::VEXTRACTI64X4 as u16,
+ VEXTRACTPS = super::Opcode::VEXTRACTPS as u16,
+ VFIXUPIMMPD = super::Opcode::VFIXUPIMMPD as u16,
+ VFIXUPIMMPS = super::Opcode::VFIXUPIMMPS as u16,
+ VFIXUPIMMSD = super::Opcode::VFIXUPIMMSD as u16,
+ VFIXUPIMMSS = super::Opcode::VFIXUPIMMSS as u16,
+ VFMADD132PD = super::Opcode::VFMADD132PD as u16,
+ VFMADD132PS = super::Opcode::VFMADD132PS as u16,
+ VFMADD132SD = super::Opcode::VFMADD132SD as u16,
+ VFMADD132SS = super::Opcode::VFMADD132SS as u16,
+ VFMADD213PD = super::Opcode::VFMADD213PD as u16,
+ VFMADD213PS = super::Opcode::VFMADD213PS as u16,
+ VFMADD213SD = super::Opcode::VFMADD213SD as u16,
+ VFMADD213SS = super::Opcode::VFMADD213SS as u16,
+ VFMADD231PD = super::Opcode::VFMADD231PD as u16,
+ VFMADD231PS = super::Opcode::VFMADD231PS as u16,
+ VFMADD231SD = super::Opcode::VFMADD231SD as u16,
+ VFMADD231SS = super::Opcode::VFMADD231SS as u16,
+ VFMADDSUB132PD = super::Opcode::VFMADDSUB132PD as u16,
+ VFMADDSUB132PS = super::Opcode::VFMADDSUB132PS as u16,
+ VFMADDSUB213PD = super::Opcode::VFMADDSUB213PD as u16,
+ VFMADDSUB213PS = super::Opcode::VFMADDSUB213PS as u16,
+ VFMADDSUB231PD = super::Opcode::VFMADDSUB231PD as u16,
+ VFMADDSUB231PS = super::Opcode::VFMADDSUB231PS as u16,
+ VFMSUB132PD = super::Opcode::VFMSUB132PD as u16,
+ VFMSUB132PS = super::Opcode::VFMSUB132PS as u16,
+ VFMSUB132SD = super::Opcode::VFMSUB132SD as u16,
+ VFMSUB132SS = super::Opcode::VFMSUB132SS as u16,
+ VFMSUB213PD = super::Opcode::VFMSUB213PD as u16,
+ VFMSUB213PS = super::Opcode::VFMSUB213PS as u16,
+ VFMSUB213SD = super::Opcode::VFMSUB213SD as u16,
+ VFMSUB213SS = super::Opcode::VFMSUB213SS as u16,
+ VFMSUB231PD = super::Opcode::VFMSUB231PD as u16,
+ VFMSUB231PS = super::Opcode::VFMSUB231PS as u16,
+ VFMSUB231SD = super::Opcode::VFMSUB231SD as u16,
+ VFMSUB231SS = super::Opcode::VFMSUB231SS as u16,
+ VFMSUBADD132PD = super::Opcode::VFMSUBADD132PD as u16,
+ VFMSUBADD132PS = super::Opcode::VFMSUBADD132PS as u16,
+ VFMSUBADD213PD = super::Opcode::VFMSUBADD213PD as u16,
+ VFMSUBADD213PS = super::Opcode::VFMSUBADD213PS as u16,
+ VFMSUBADD231PD = super::Opcode::VFMSUBADD231PD as u16,
+ VFMSUBADD231PS = super::Opcode::VFMSUBADD231PS as u16,
+ VFNMADD132PD = super::Opcode::VFNMADD132PD as u16,
+ VFNMADD132PS = super::Opcode::VFNMADD132PS as u16,
+ VFNMADD132SD = super::Opcode::VFNMADD132SD as u16,
+ VFNMADD132SS = super::Opcode::VFNMADD132SS as u16,
+ VFNMADD213PD = super::Opcode::VFNMADD213PD as u16,
+ VFNMADD213PS = super::Opcode::VFNMADD213PS as u16,
+ VFNMADD213SD = super::Opcode::VFNMADD213SD as u16,
+ VFNMADD213SS = super::Opcode::VFNMADD213SS as u16,
+ VFNMADD231PD = super::Opcode::VFNMADD231PD as u16,
+ VFNMADD231PS = super::Opcode::VFNMADD231PS as u16,
+ VFNMADD231SD = super::Opcode::VFNMADD231SD as u16,
+ VFNMADD231SS = super::Opcode::VFNMADD231SS as u16,
+ VFNMSUB132PD = super::Opcode::VFNMSUB132PD as u16,
+ VFNMSUB132PS = super::Opcode::VFNMSUB132PS as u16,
+ VFNMSUB132SD = super::Opcode::VFNMSUB132SD as u16,
+ VFNMSUB132SS = super::Opcode::VFNMSUB132SS as u16,
+ VFNMSUB213PD = super::Opcode::VFNMSUB213PD as u16,
+ VFNMSUB213PS = super::Opcode::VFNMSUB213PS as u16,
+ VFNMSUB213SD = super::Opcode::VFNMSUB213SD as u16,
+ VFNMSUB213SS = super::Opcode::VFNMSUB213SS as u16,
+ VFNMSUB231PD = super::Opcode::VFNMSUB231PD as u16,
+ VFNMSUB231PS = super::Opcode::VFNMSUB231PS as u16,
+ VFNMSUB231SD = super::Opcode::VFNMSUB231SD as u16,
+ VFNMSUB231SS = super::Opcode::VFNMSUB231SS as u16,
+ VFPCLASSPD = super::Opcode::VFPCLASSPD as u16,
+ VFPCLASSPS = super::Opcode::VFPCLASSPS as u16,
+ VFPCLASSSD = super::Opcode::VFPCLASSSD as u16,
+ VFPCLASSSS = super::Opcode::VFPCLASSSS as u16,
+ VGATHERDPD = super::Opcode::VGATHERDPD as u16,
+ VGATHERDPS = super::Opcode::VGATHERDPS as u16,
+ VGATHERPF0DPD = super::Opcode::VGATHERPF0DPD as u16,
+ VGATHERPF0DPS = super::Opcode::VGATHERPF0DPS as u16,
+ VGATHERPF0QPD = super::Opcode::VGATHERPF0QPD as u16,
+ VGATHERPF0QPS = super::Opcode::VGATHERPF0QPS as u16,
+ VGATHERPF1DPD = super::Opcode::VGATHERPF1DPD as u16,
+ VGATHERPF1DPS = super::Opcode::VGATHERPF1DPS as u16,
+ VGATHERPF1QPD = super::Opcode::VGATHERPF1QPD as u16,
+ VGATHERPF1QPS = super::Opcode::VGATHERPF1QPS as u16,
+ VGATHERQPD = super::Opcode::VGATHERQPD as u16,
+ VGATHERQPS = super::Opcode::VGATHERQPS as u16,
+ VGETEXPPD = super::Opcode::VGETEXPPD as u16,
+ VGETEXPPS = super::Opcode::VGETEXPPS as u16,
+ VGETEXPSD = super::Opcode::VGETEXPSD as u16,
+ VGETEXPSS = super::Opcode::VGETEXPSS as u16,
+ VGETMANTPD = super::Opcode::VGETMANTPD as u16,
+ VGETMANTPS = super::Opcode::VGETMANTPS as u16,
+ VGETMANTSD = super::Opcode::VGETMANTSD as u16,
+ VGETMANTSS = super::Opcode::VGETMANTSS as u16,
+ VGF2P8AFFINEINVQB = super::Opcode::VGF2P8AFFINEINVQB as u16,
+ VGF2P8AFFINEQB = super::Opcode::VGF2P8AFFINEQB as u16,
+ VGF2P8MULB = super::Opcode::VGF2P8MULB as u16,
+ VHADDPD = super::Opcode::VHADDPD as u16,
+ VHADDPS = super::Opcode::VHADDPS as u16,
+ VHSUBPD = super::Opcode::VHSUBPD as u16,
+ VHSUBPS = super::Opcode::VHSUBPS as u16,
+ VINSERTF128 = super::Opcode::VINSERTF128 as u16,
+ VINSERTF32X4 = super::Opcode::VINSERTF32X4 as u16,
+ VINSERTF32X8 = super::Opcode::VINSERTF32X8 as u16,
+ VINSERTF64X2 = super::Opcode::VINSERTF64X2 as u16,
+ VINSERTF64X4 = super::Opcode::VINSERTF64X4 as u16,
+ VINSERTI128 = super::Opcode::VINSERTI128 as u16,
+ VINSERTI32X4 = super::Opcode::VINSERTI32X4 as u16,
+ VINSERTI32X8 = super::Opcode::VINSERTI32X8 as u16,
+ VINSERTI64X2 = super::Opcode::VINSERTI64X2 as u16,
+ VINSERTI64X4 = super::Opcode::VINSERTI64X4 as u16,
+ VINSERTPS = super::Opcode::VINSERTPS as u16,
+ VLDDQU = super::Opcode::VLDDQU as u16,
+ VLDMXCSR = super::Opcode::VLDMXCSR as u16,
+ VMASKMOVDQU = super::Opcode::VMASKMOVDQU as u16,
+ VMASKMOVPD = super::Opcode::VMASKMOVPD as u16,
+ VMASKMOVPS = super::Opcode::VMASKMOVPS as u16,
+ VMAXPD = super::Opcode::VMAXPD as u16,
+ VMAXPS = super::Opcode::VMAXPS as u16,
+ VMAXSD = super::Opcode::VMAXSD as u16,
+ VMAXSS = super::Opcode::VMAXSS as u16,
+ VMCALL = super::Opcode::VMCALL as u16,
+ VMCLEAR = super::Opcode::VMCLEAR as u16,
+ VMFUNC = super::Opcode::VMFUNC as u16,
+ VMINPD = super::Opcode::VMINPD as u16,
+ VMINPS = super::Opcode::VMINPS as u16,
+ VMINSD = super::Opcode::VMINSD as u16,
+ VMINSS = super::Opcode::VMINSS as u16,
+ VMLAUNCH = super::Opcode::VMLAUNCH as u16,
+ VMLOAD = super::Opcode::VMLOAD as u16,
+ VMMCALL = super::Opcode::VMMCALL as u16,
+ VMOVAPD = super::Opcode::VMOVAPD as u16,
+ VMOVAPS = super::Opcode::VMOVAPS as u16,
+ VMOVD = super::Opcode::VMOVD as u16,
+ VMOVDDUP = super::Opcode::VMOVDDUP as u16,
+ VMOVDQA = super::Opcode::VMOVDQA as u16,
+ VMOVDQA32 = super::Opcode::VMOVDQA32 as u16,
+ VMOVDQA64 = super::Opcode::VMOVDQA64 as u16,
+ VMOVDQU = super::Opcode::VMOVDQU as u16,
+ VMOVDQU16 = super::Opcode::VMOVDQU16 as u16,
+ VMOVDQU32 = super::Opcode::VMOVDQU32 as u16,
+ VMOVDQU64 = super::Opcode::VMOVDQU64 as u16,
+ VMOVDQU8 = super::Opcode::VMOVDQU8 as u16,
+ VMOVHLPS = super::Opcode::VMOVHLPS as u16,
+ VMOVHPD = super::Opcode::VMOVHPD as u16,
+ VMOVHPS = super::Opcode::VMOVHPS as u16,
+ VMOVLHPS = super::Opcode::VMOVLHPS as u16,
+ VMOVLPD = super::Opcode::VMOVLPD as u16,
+ VMOVLPS = super::Opcode::VMOVLPS as u16,
+ VMOVMSKPD = super::Opcode::VMOVMSKPD as u16,
+ VMOVMSKPS = super::Opcode::VMOVMSKPS as u16,
+ VMOVNTDQ = super::Opcode::VMOVNTDQ as u16,
+ VMOVNTDQA = super::Opcode::VMOVNTDQA as u16,
+ VMOVNTPD = super::Opcode::VMOVNTPD as u16,
+ VMOVNTPS = super::Opcode::VMOVNTPS as u16,
+ VMOVQ = super::Opcode::VMOVQ as u16,
+ VMOVSD = super::Opcode::VMOVSD as u16,
+ VMOVSHDUP = super::Opcode::VMOVSHDUP as u16,
+ VMOVSLDUP = super::Opcode::VMOVSLDUP as u16,
+ VMOVSS = super::Opcode::VMOVSS as u16,
+ VMOVUPD = super::Opcode::VMOVUPD as u16,
+ VMOVUPS = super::Opcode::VMOVUPS as u16,
+ VMPSADBW = super::Opcode::VMPSADBW as u16,
+ VMPTRLD = super::Opcode::VMPTRLD as u16,
+ VMPTRST = super::Opcode::VMPTRST as u16,
+ VMREAD = super::Opcode::VMREAD as u16,
+ VMRESUME = super::Opcode::VMRESUME as u16,
+ VMRUN = super::Opcode::VMRUN as u16,
+ VMSAVE = super::Opcode::VMSAVE as u16,
+ VMULPD = super::Opcode::VMULPD as u16,
+ VMULPS = super::Opcode::VMULPS as u16,
+ VMULSD = super::Opcode::VMULSD as u16,
+ VMULSS = super::Opcode::VMULSS as u16,
+ VMWRITE = super::Opcode::VMWRITE as u16,
+ VMXOFF = super::Opcode::VMXOFF as u16,
+ VMXON = super::Opcode::VMXON as u16,
+ VORPD = super::Opcode::VORPD as u16,
+ VORPS = super::Opcode::VORPS as u16,
+ VP2INTERSECTD = super::Opcode::VP2INTERSECTD as u16,
+ VP2INTERSECTQ = super::Opcode::VP2INTERSECTQ as u16,
+ VP4DPWSSD = super::Opcode::VP4DPWSSD as u16,
+ VP4DPWSSDS = super::Opcode::VP4DPWSSDS as u16,
+ VPABSB = super::Opcode::VPABSB as u16,
+ VPABSD = super::Opcode::VPABSD as u16,
+ VPABSQ = super::Opcode::VPABSQ as u16,
+ VPABSW = super::Opcode::VPABSW as u16,
+ VPACKSSDW = super::Opcode::VPACKSSDW as u16,
+ VPACKSSWB = super::Opcode::VPACKSSWB as u16,
+ VPACKUSDW = super::Opcode::VPACKUSDW as u16,
+ VPACKUSWB = super::Opcode::VPACKUSWB as u16,
+ VPADDB = super::Opcode::VPADDB as u16,
+ VPADDD = super::Opcode::VPADDD as u16,
+ VPADDQ = super::Opcode::VPADDQ as u16,
+ VPADDSB = super::Opcode::VPADDSB as u16,
+ VPADDSW = super::Opcode::VPADDSW as u16,
+ VPADDUSB = super::Opcode::VPADDUSB as u16,
+ VPADDUSW = super::Opcode::VPADDUSW as u16,
+ VPADDW = super::Opcode::VPADDW as u16,
+ VPALIGNR = super::Opcode::VPALIGNR as u16,
+ VPAND = super::Opcode::VPAND as u16,
+ VPANDD = super::Opcode::VPANDD as u16,
+ VPANDN = super::Opcode::VPANDN as u16,
+ VPANDND = super::Opcode::VPANDND as u16,
+ VPANDNQ = super::Opcode::VPANDNQ as u16,
+ VPANDQ = super::Opcode::VPANDQ as u16,
+ VPAVGB = super::Opcode::VPAVGB as u16,
+ VPAVGW = super::Opcode::VPAVGW as u16,
+ VPBLENDD = super::Opcode::VPBLENDD as u16,
+ VPBLENDMB = super::Opcode::VPBLENDMB as u16,
+ VPBLENDMD = super::Opcode::VPBLENDMD as u16,
+ VPBLENDMQ = super::Opcode::VPBLENDMQ as u16,
+ VPBLENDMW = super::Opcode::VPBLENDMW as u16,
+ VPBLENDVB = super::Opcode::VPBLENDVB as u16,
+ VPBLENDW = super::Opcode::VPBLENDW as u16,
+ VPBROADCASTB = super::Opcode::VPBROADCASTB as u16,
+ VPBROADCASTD = super::Opcode::VPBROADCASTD as u16,
+ VPBROADCASTM = super::Opcode::VPBROADCASTM as u16,
+ VPBROADCASTMB2Q = super::Opcode::VPBROADCASTMB2Q as u16,
+ VPBROADCASTMW2D = super::Opcode::VPBROADCASTMW2D as u16,
+ VPBROADCASTQ = super::Opcode::VPBROADCASTQ as u16,
+ VPBROADCASTW = super::Opcode::VPBROADCASTW as u16,
+ VPCLMULQDQ = super::Opcode::VPCLMULQDQ as u16,
+ VPCMPB = super::Opcode::VPCMPB as u16,
+ VPCMPD = super::Opcode::VPCMPD as u16,
+ VPCMPEQB = super::Opcode::VPCMPEQB as u16,
+ VPCMPEQD = super::Opcode::VPCMPEQD as u16,
+ VPCMPEQQ = super::Opcode::VPCMPEQQ as u16,
+ VPCMPEQW = super::Opcode::VPCMPEQW as u16,
+ VPCMPESTRI = super::Opcode::VPCMPESTRI as u16,
+ VPCMPESTRM = super::Opcode::VPCMPESTRM as u16,
+ VPCMPGTB = super::Opcode::VPCMPGTB as u16,
+ VPCMPGTD = super::Opcode::VPCMPGTD as u16,
+ VPCMPGTQ = super::Opcode::VPCMPGTQ as u16,
+ VPCMPGTW = super::Opcode::VPCMPGTW as u16,
+ VPCMPISTRI = super::Opcode::VPCMPISTRI as u16,
+ VPCMPISTRM = super::Opcode::VPCMPISTRM as u16,
+ VPCMPQ = super::Opcode::VPCMPQ as u16,
+ VPCMPUB = super::Opcode::VPCMPUB as u16,
+ VPCMPUD = super::Opcode::VPCMPUD as u16,
+ VPCMPUQ = super::Opcode::VPCMPUQ as u16,
+ VPCMPUW = super::Opcode::VPCMPUW as u16,
+ VPCMPW = super::Opcode::VPCMPW as u16,
+ VPCOMPRESSB = super::Opcode::VPCOMPRESSB as u16,
+ VPCOMPRESSD = super::Opcode::VPCOMPRESSD as u16,
+ VPCOMPRESSQ = super::Opcode::VPCOMPRESSQ as u16,
+ VPCOMPRESSW = super::Opcode::VPCOMPRESSW as u16,
+ VPCONFLICTD = super::Opcode::VPCONFLICTD as u16,
+ VPCONFLICTQ = super::Opcode::VPCONFLICTQ as u16,
+ VPDPBUSD = super::Opcode::VPDPBUSD as u16,
+ VPDPBUSDS = super::Opcode::VPDPBUSDS as u16,
+ VPDPWSSD = super::Opcode::VPDPWSSD as u16,
+ VPDPWSSDS = super::Opcode::VPDPWSSDS as u16,
+ VPERM2F128 = super::Opcode::VPERM2F128 as u16,
+ VPERM2I128 = super::Opcode::VPERM2I128 as u16,
+ VPERMB = super::Opcode::VPERMB as u16,
+ VPERMD = super::Opcode::VPERMD as u16,
+ VPERMI2B = super::Opcode::VPERMI2B as u16,
+ VPERMI2D = super::Opcode::VPERMI2D as u16,
+ VPERMI2PD = super::Opcode::VPERMI2PD as u16,
+ VPERMI2PS = super::Opcode::VPERMI2PS as u16,
+ VPERMI2Q = super::Opcode::VPERMI2Q as u16,
+ VPERMI2W = super::Opcode::VPERMI2W as u16,
+ VPERMILPD = super::Opcode::VPERMILPD as u16,
+ VPERMILPS = super::Opcode::VPERMILPS as u16,
+ VPERMPD = super::Opcode::VPERMPD as u16,
+ VPERMPS = super::Opcode::VPERMPS as u16,
+ VPERMQ = super::Opcode::VPERMQ as u16,
+ VPERMT2B = super::Opcode::VPERMT2B as u16,
+ VPERMT2D = super::Opcode::VPERMT2D as u16,
+ VPERMT2PD = super::Opcode::VPERMT2PD as u16,
+ VPERMT2PS = super::Opcode::VPERMT2PS as u16,
+ VPERMT2Q = super::Opcode::VPERMT2Q as u16,
+ VPERMT2W = super::Opcode::VPERMT2W as u16,
+ VPERMW = super::Opcode::VPERMW as u16,
+ VPEXPANDB = super::Opcode::VPEXPANDB as u16,
+ VPEXPANDD = super::Opcode::VPEXPANDD as u16,
+ VPEXPANDQ = super::Opcode::VPEXPANDQ as u16,
+ VPEXPANDW = super::Opcode::VPEXPANDW as u16,
+ VPEXTRB = super::Opcode::VPEXTRB as u16,
+ VPEXTRD = super::Opcode::VPEXTRD as u16,
+ VPEXTRQ = super::Opcode::VPEXTRQ as u16,
+ VPEXTRW = super::Opcode::VPEXTRW as u16,
+ VPGATHERDD = super::Opcode::VPGATHERDD as u16,
+ VPGATHERDQ = super::Opcode::VPGATHERDQ as u16,
+ VPGATHERQD = super::Opcode::VPGATHERQD as u16,
+ VPGATHERQQ = super::Opcode::VPGATHERQQ as u16,
+ VPHADDD = super::Opcode::VPHADDD as u16,
+ VPHADDSW = super::Opcode::VPHADDSW as u16,
+ VPHADDW = super::Opcode::VPHADDW as u16,
+ VPHMINPOSUW = super::Opcode::VPHMINPOSUW as u16,
+ VPHSUBD = super::Opcode::VPHSUBD as u16,
+ VPHSUBSW = super::Opcode::VPHSUBSW as u16,
+ VPHSUBW = super::Opcode::VPHSUBW as u16,
+ VPINSRB = super::Opcode::VPINSRB as u16,
+ VPINSRD = super::Opcode::VPINSRD as u16,
+ VPINSRQ = super::Opcode::VPINSRQ as u16,
+ VPINSRW = super::Opcode::VPINSRW as u16,
+ VPLZCNTD = super::Opcode::VPLZCNTD as u16,
+ VPLZCNTQ = super::Opcode::VPLZCNTQ as u16,
+ VPMADD52HUQ = super::Opcode::VPMADD52HUQ as u16,
+ VPMADD52LUQ = super::Opcode::VPMADD52LUQ as u16,
+ VPMADDUBSW = super::Opcode::VPMADDUBSW as u16,
+ VPMADDWD = super::Opcode::VPMADDWD as u16,
+ VPMASKMOVD = super::Opcode::VPMASKMOVD as u16,
+ VPMASKMOVQ = super::Opcode::VPMASKMOVQ as u16,
+ VPMAXSB = super::Opcode::VPMAXSB as u16,
+ VPMAXSD = super::Opcode::VPMAXSD as u16,
+ VPMAXSQ = super::Opcode::VPMAXSQ as u16,
+ VPMAXSW = super::Opcode::VPMAXSW as u16,
+ VPMAXUB = super::Opcode::VPMAXUB as u16,
+ VPMAXUD = super::Opcode::VPMAXUD as u16,
+ VPMAXUQ = super::Opcode::VPMAXUQ as u16,
+ VPMAXUW = super::Opcode::VPMAXUW as u16,
+ VPMINSB = super::Opcode::VPMINSB as u16,
+ VPMINSD = super::Opcode::VPMINSD as u16,
+ VPMINSQ = super::Opcode::VPMINSQ as u16,
+ VPMINSW = super::Opcode::VPMINSW as u16,
+ VPMINUB = super::Opcode::VPMINUB as u16,
+ VPMINUD = super::Opcode::VPMINUD as u16,
+ VPMINUQ = super::Opcode::VPMINUQ as u16,
+ VPMINUW = super::Opcode::VPMINUW as u16,
+ VPMOVB2D = super::Opcode::VPMOVB2D as u16,
+ VPMOVB2M = super::Opcode::VPMOVB2M as u16,
+ VPMOVD2M = super::Opcode::VPMOVD2M as u16,
+ VPMOVDB = super::Opcode::VPMOVDB as u16,
+ VPMOVDW = super::Opcode::VPMOVDW as u16,
+ VPMOVM2B = super::Opcode::VPMOVM2B as u16,
+ VPMOVM2D = super::Opcode::VPMOVM2D as u16,
+ VPMOVM2Q = super::Opcode::VPMOVM2Q as u16,
+ VPMOVM2W = super::Opcode::VPMOVM2W as u16,
+ VPMOVMSKB = super::Opcode::VPMOVMSKB as u16,
+ VPMOVQ2M = super::Opcode::VPMOVQ2M as u16,
+ VPMOVQB = super::Opcode::VPMOVQB as u16,
+ VPMOVQD = super::Opcode::VPMOVQD as u16,
+ VPMOVQW = super::Opcode::VPMOVQW as u16,
+ VPMOVSDB = super::Opcode::VPMOVSDB as u16,
+ VPMOVSDW = super::Opcode::VPMOVSDW as u16,
+ VPMOVSQB = super::Opcode::VPMOVSQB as u16,
+ VPMOVSQD = super::Opcode::VPMOVSQD as u16,
+ VPMOVSQW = super::Opcode::VPMOVSQW as u16,
+ VPMOVSWB = super::Opcode::VPMOVSWB as u16,
+ VPMOVSXBD = super::Opcode::VPMOVSXBD as u16,
+ VPMOVSXBQ = super::Opcode::VPMOVSXBQ as u16,
+ VPMOVSXBW = super::Opcode::VPMOVSXBW as u16,
+ VPMOVSXDQ = super::Opcode::VPMOVSXDQ as u16,
+ VPMOVSXWD = super::Opcode::VPMOVSXWD as u16,
+ VPMOVSXWQ = super::Opcode::VPMOVSXWQ as u16,
+ VPMOVUSDB = super::Opcode::VPMOVUSDB as u16,
+ VPMOVUSDW = super::Opcode::VPMOVUSDW as u16,
+ VPMOVUSQB = super::Opcode::VPMOVUSQB as u16,
+ VPMOVUSQD = super::Opcode::VPMOVUSQD as u16,
+ VPMOVUSQW = super::Opcode::VPMOVUSQW as u16,
+ VPMOVUSWB = super::Opcode::VPMOVUSWB as u16,
+ VPMOVW2M = super::Opcode::VPMOVW2M as u16,
+ VPMOVWB = super::Opcode::VPMOVWB as u16,
+ VPMOVZXBD = super::Opcode::VPMOVZXBD as u16,
+ VPMOVZXBQ = super::Opcode::VPMOVZXBQ as u16,
+ VPMOVZXBW = super::Opcode::VPMOVZXBW as u16,
+ VPMOVZXDQ = super::Opcode::VPMOVZXDQ as u16,
+ VPMOVZXWD = super::Opcode::VPMOVZXWD as u16,
+ VPMOVZXWQ = super::Opcode::VPMOVZXWQ as u16,
+ VPMULDQ = super::Opcode::VPMULDQ as u16,
+ VPMULHRSW = super::Opcode::VPMULHRSW as u16,
+ VPMULHUW = super::Opcode::VPMULHUW as u16,
+ VPMULHW = super::Opcode::VPMULHW as u16,
+ VPMULLD = super::Opcode::VPMULLD as u16,
+ VPMULLQ = super::Opcode::VPMULLQ as u16,
+ VPMULLW = super::Opcode::VPMULLW as u16,
+ VPMULTISHIFTQB = super::Opcode::VPMULTISHIFTQB as u16,
+ VPMULUDQ = super::Opcode::VPMULUDQ as u16,
+ VPOPCNTB = super::Opcode::VPOPCNTB as u16,
+ VPOPCNTD = super::Opcode::VPOPCNTD as u16,
+ VPOPCNTQ = super::Opcode::VPOPCNTQ as u16,
+ VPOPCNTW = super::Opcode::VPOPCNTW as u16,
+ VPOR = super::Opcode::VPOR as u16,
+ VPORD = super::Opcode::VPORD as u16,
+ VPORQ = super::Opcode::VPORQ as u16,
+ VPROLD = super::Opcode::VPROLD as u16,
+ VPROLQ = super::Opcode::VPROLQ as u16,
+ VPROLVD = super::Opcode::VPROLVD as u16,
+ VPROLVQ = super::Opcode::VPROLVQ as u16,
+ VPRORD = super::Opcode::VPRORD as u16,
+ VPRORQ = super::Opcode::VPRORQ as u16,
+ VPRORRD = super::Opcode::VPRORRD as u16,
+ VPRORRQ = super::Opcode::VPRORRQ as u16,
+ VPRORVD = super::Opcode::VPRORVD as u16,
+ VPRORVQ = super::Opcode::VPRORVQ as u16,
+ VPSADBW = super::Opcode::VPSADBW as u16,
+ VPSCATTERDD = super::Opcode::VPSCATTERDD as u16,
+ VPSCATTERDQ = super::Opcode::VPSCATTERDQ as u16,
+ VPSCATTERQD = super::Opcode::VPSCATTERQD as u16,
+ VPSCATTERQQ = super::Opcode::VPSCATTERQQ as u16,
+ VPSHLDD = super::Opcode::VPSHLDD as u16,
+ VPSHLDQ = super::Opcode::VPSHLDQ as u16,
+ VPSHLDVD = super::Opcode::VPSHLDVD as u16,
+ VPSHLDVQ = super::Opcode::VPSHLDVQ as u16,
+ VPSHLDVW = super::Opcode::VPSHLDVW as u16,
+ VPSHLDW = super::Opcode::VPSHLDW as u16,
+ VPSHRDD = super::Opcode::VPSHRDD as u16,
+ VPSHRDQ = super::Opcode::VPSHRDQ as u16,
+ VPSHRDVD = super::Opcode::VPSHRDVD as u16,
+ VPSHRDVQ = super::Opcode::VPSHRDVQ as u16,
+ VPSHRDVW = super::Opcode::VPSHRDVW as u16,
+ VPSHRDW = super::Opcode::VPSHRDW as u16,
+ VPSHUFB = super::Opcode::VPSHUFB as u16,
+ VPSHUFBITQMB = super::Opcode::VPSHUFBITQMB as u16,
+ VPSHUFD = super::Opcode::VPSHUFD as u16,
+ VPSHUFHW = super::Opcode::VPSHUFHW as u16,
+ VPSHUFLW = super::Opcode::VPSHUFLW as u16,
+ VPSIGNB = super::Opcode::VPSIGNB as u16,
+ VPSIGND = super::Opcode::VPSIGND as u16,
+ VPSIGNW = super::Opcode::VPSIGNW as u16,
+ VPSLLD = super::Opcode::VPSLLD as u16,
+ VPSLLDQ = super::Opcode::VPSLLDQ as u16,
+ VPSLLQ = super::Opcode::VPSLLQ as u16,
+ VPSLLVD = super::Opcode::VPSLLVD as u16,
+ VPSLLVQ = super::Opcode::VPSLLVQ as u16,
+ VPSLLVW = super::Opcode::VPSLLVW as u16,
+ VPSLLW = super::Opcode::VPSLLW as u16,
+ VPSRAD = super::Opcode::VPSRAD as u16,
+ VPSRAQ = super::Opcode::VPSRAQ as u16,
+ VPSRAVD = super::Opcode::VPSRAVD as u16,
+ VPSRAVQ = super::Opcode::VPSRAVQ as u16,
+ VPSRAVW = super::Opcode::VPSRAVW as u16,
+ VPSRAW = super::Opcode::VPSRAW as u16,
+ VPSRLD = super::Opcode::VPSRLD as u16,
+ VPSRLDQ = super::Opcode::VPSRLDQ as u16,
+ VPSRLQ = super::Opcode::VPSRLQ as u16,
+ VPSRLVD = super::Opcode::VPSRLVD as u16,
+ VPSRLVQ = super::Opcode::VPSRLVQ as u16,
+ VPSRLVW = super::Opcode::VPSRLVW as u16,
+ VPSRLW = super::Opcode::VPSRLW as u16,
+ VPSUBB = super::Opcode::VPSUBB as u16,
+ VPSUBD = super::Opcode::VPSUBD as u16,
+ VPSUBQ = super::Opcode::VPSUBQ as u16,
+ VPSUBSB = super::Opcode::VPSUBSB as u16,
+ VPSUBSW = super::Opcode::VPSUBSW as u16,
+ VPSUBUSB = super::Opcode::VPSUBUSB as u16,
+ VPSUBUSW = super::Opcode::VPSUBUSW as u16,
+ VPSUBW = super::Opcode::VPSUBW as u16,
+ VPTERNLOGD = super::Opcode::VPTERNLOGD as u16,
+ VPTERNLOGQ = super::Opcode::VPTERNLOGQ as u16,
+ VPTEST = super::Opcode::VPTEST as u16,
+ VPTESTMB = super::Opcode::VPTESTMB as u16,
+ VPTESTMD = super::Opcode::VPTESTMD as u16,
+ VPTESTMQ = super::Opcode::VPTESTMQ as u16,
+ VPTESTMW = super::Opcode::VPTESTMW as u16,
+ VPTESTNMB = super::Opcode::VPTESTNMB as u16,
+ VPTESTNMD = super::Opcode::VPTESTNMD as u16,
+ VPTESTNMQ = super::Opcode::VPTESTNMQ as u16,
+ VPTESTNMW = super::Opcode::VPTESTNMW as u16,
+ VPUNPCKHBW = super::Opcode::VPUNPCKHBW as u16,
+ VPUNPCKHDQ = super::Opcode::VPUNPCKHDQ as u16,
+ VPUNPCKHQDQ = super::Opcode::VPUNPCKHQDQ as u16,
+ VPUNPCKHWD = super::Opcode::VPUNPCKHWD as u16,
+ VPUNPCKLBW = super::Opcode::VPUNPCKLBW as u16,
+ VPUNPCKLDQ = super::Opcode::VPUNPCKLDQ as u16,
+ VPUNPCKLQDQ = super::Opcode::VPUNPCKLQDQ as u16,
+ VPUNPCKLWD = super::Opcode::VPUNPCKLWD as u16,
+ VPXOR = super::Opcode::VPXOR as u16,
+ VPXORD = super::Opcode::VPXORD as u16,
+ VPXORQ = super::Opcode::VPXORQ as u16,
+ VRANGEPD = super::Opcode::VRANGEPD as u16,
+ VRANGEPS = super::Opcode::VRANGEPS as u16,
+ VRANGESD = super::Opcode::VRANGESD as u16,
+ VRANGESS = super::Opcode::VRANGESS as u16,
+ VRCP14PD = super::Opcode::VRCP14PD as u16,
+ VRCP14PS = super::Opcode::VRCP14PS as u16,
+ VRCP14SD = super::Opcode::VRCP14SD as u16,
+ VRCP14SS = super::Opcode::VRCP14SS as u16,
+ VRCP28PD = super::Opcode::VRCP28PD as u16,
+ VRCP28PS = super::Opcode::VRCP28PS as u16,
+ VRCP28SD = super::Opcode::VRCP28SD as u16,
+ VRCP28SS = super::Opcode::VRCP28SS as u16,
+ VRCPPS = super::Opcode::VRCPPS as u16,
+ VRCPSS = super::Opcode::VRCPSS as u16,
+ VREDUCEPD = super::Opcode::VREDUCEPD as u16,
+ VREDUCEPS = super::Opcode::VREDUCEPS as u16,
+ VREDUCESD = super::Opcode::VREDUCESD as u16,
+ VREDUCESS = super::Opcode::VREDUCESS as u16,
+ VRNDSCALEPD = super::Opcode::VRNDSCALEPD as u16,
+ VRNDSCALEPS = super::Opcode::VRNDSCALEPS as u16,
+ VRNDSCALESD = super::Opcode::VRNDSCALESD as u16,
+ VRNDSCALESS = super::Opcode::VRNDSCALESS as u16,
+ VROUNDPD = super::Opcode::VROUNDPD as u16,
+ VROUNDPS = super::Opcode::VROUNDPS as u16,
+ VROUNDSD = super::Opcode::VROUNDSD as u16,
+ VROUNDSS = super::Opcode::VROUNDSS as u16,
+ VRSQRT14PD = super::Opcode::VRSQRT14PD as u16,
+ VRSQRT14PS = super::Opcode::VRSQRT14PS as u16,
+ VRSQRT14SD = super::Opcode::VRSQRT14SD as u16,
+ VRSQRT14SS = super::Opcode::VRSQRT14SS as u16,
+ VRSQRT28PD = super::Opcode::VRSQRT28PD as u16,
+ VRSQRT28PS = super::Opcode::VRSQRT28PS as u16,
+ VRSQRT28SD = super::Opcode::VRSQRT28SD as u16,
+ VRSQRT28SS = super::Opcode::VRSQRT28SS as u16,
+ VRSQRTPS = super::Opcode::VRSQRTPS as u16,
+ VRSQRTSS = super::Opcode::VRSQRTSS as u16,
+ VSCALEDPD = super::Opcode::VSCALEDPD as u16,
+ VSCALEDPS = super::Opcode::VSCALEDPS as u16,
+ VSCALEDSD = super::Opcode::VSCALEDSD as u16,
+ VSCALEDSS = super::Opcode::VSCALEDSS as u16,
+ VSCALEFPD = super::Opcode::VSCALEFPD as u16,
+ VSCALEFPS = super::Opcode::VSCALEFPS as u16,
+ VSCALEFSD = super::Opcode::VSCALEFSD as u16,
+ VSCALEFSS = super::Opcode::VSCALEFSS as u16,
+ VSCATTERDD = super::Opcode::VSCATTERDD as u16,
+ VSCATTERDPD = super::Opcode::VSCATTERDPD as u16,
+ VSCATTERDPS = super::Opcode::VSCATTERDPS as u16,
+ VSCATTERDQ = super::Opcode::VSCATTERDQ as u16,
+ VSCATTERPF0DPD = super::Opcode::VSCATTERPF0DPD as u16,
+ VSCATTERPF0DPS = super::Opcode::VSCATTERPF0DPS as u16,
+ VSCATTERPF0QPD = super::Opcode::VSCATTERPF0QPD as u16,
+ VSCATTERPF0QPS = super::Opcode::VSCATTERPF0QPS as u16,
+ VSCATTERPF1DPD = super::Opcode::VSCATTERPF1DPD as u16,
+ VSCATTERPF1DPS = super::Opcode::VSCATTERPF1DPS as u16,
+ VSCATTERPF1QPD = super::Opcode::VSCATTERPF1QPD as u16,
+ VSCATTERPF1QPS = super::Opcode::VSCATTERPF1QPS as u16,
+ VSCATTERQD = super::Opcode::VSCATTERQD as u16,
+ VSCATTERQPD = super::Opcode::VSCATTERQPD as u16,
+ VSCATTERQPS = super::Opcode::VSCATTERQPS as u16,
+ VSCATTERQQ = super::Opcode::VSCATTERQQ as u16,
+ VSHUFF32X4 = super::Opcode::VSHUFF32X4 as u16,
+ VSHUFF64X2 = super::Opcode::VSHUFF64X2 as u16,
+ VSHUFI32X4 = super::Opcode::VSHUFI32X4 as u16,
+ VSHUFI64X2 = super::Opcode::VSHUFI64X2 as u16,
+ VSHUFPD = super::Opcode::VSHUFPD as u16,
+ VSHUFPS = super::Opcode::VSHUFPS as u16,
+ VSQRTPD = super::Opcode::VSQRTPD as u16,
+ VSQRTPS = super::Opcode::VSQRTPS as u16,
+ VSQRTSD = super::Opcode::VSQRTSD as u16,
+ VSQRTSS = super::Opcode::VSQRTSS as u16,
+ VSTMXCSR = super::Opcode::VSTMXCSR as u16,
+ VSUBPD = super::Opcode::VSUBPD as u16,
+ VSUBPS = super::Opcode::VSUBPS as u16,
+ VSUBSD = super::Opcode::VSUBSD as u16,
+ VSUBSS = super::Opcode::VSUBSS as u16,
+ VTESTPD = super::Opcode::VTESTPD as u16,
+ VTESTPS = super::Opcode::VTESTPS as u16,
+ VUCOMISD = super::Opcode::VUCOMISD as u16,
+ VUCOMISS = super::Opcode::VUCOMISS as u16,
+ VUNPCKHPD = super::Opcode::VUNPCKHPD as u16,
+ VUNPCKHPS = super::Opcode::VUNPCKHPS as u16,
+ VUNPCKLPD = super::Opcode::VUNPCKLPD as u16,
+ VUNPCKLPS = super::Opcode::VUNPCKLPS as u16,
+ VXORPD = super::Opcode::VXORPD as u16,
+ VXORPS = super::Opcode::VXORPS as u16,
+ VZEROALL = super::Opcode::VZEROALL as u16,
+ VZEROUPPER = super::Opcode::VZEROUPPER as u16,
+ WAIT = super::Opcode::WAIT as u16,
+ WBINVD = super::Opcode::WBINVD as u16,
+ WRFSBASE = super::Opcode::WRFSBASE as u16,
+ WRGSBASE = super::Opcode::WRGSBASE as u16,
+ WRMSR = super::Opcode::WRMSR as u16,
+ WRPKRU = super::Opcode::WRPKRU as u16,
+ WRSS = super::Opcode::WRSS as u16,
+ WRUSS = super::Opcode::WRUSS as u16,
+ XABORT = super::Opcode::XABORT as u16,
+ XADD = super::Opcode::XADD as u16,
+ XBEGIN = super::Opcode::XBEGIN as u16,
+ XCHG = super::Opcode::XCHG as u16,
+ XEND = super::Opcode::XEND as u16,
+ XGETBV = super::Opcode::XGETBV as u16,
+ XLAT = super::Opcode::XLAT as u16,
+ XOR = super::Opcode::XOR as u16,
+ XORPD = super::Opcode::XORPD as u16,
+ XORPS = super::Opcode::XORPS as u16,
+ XRESLDTRK = super::Opcode::XRESLDTRK as u16,
+ XRSTOR = super::Opcode::XRSTOR as u16,
+ XRSTORS = super::Opcode::XRSTORS as u16,
+ XRSTORS64 = super::Opcode::XRSTORS64 as u16,
+ XSAVE = super::Opcode::XSAVE as u16,
+ XSAVEC = super::Opcode::XSAVEC as u16,
+ XSAVEC64 = super::Opcode::XSAVEC64 as u16,
+ XSAVEOPT = super::Opcode::XSAVEOPT as u16,
+ XSAVES = super::Opcode::XSAVES as u16,
+ XSAVES64 = super::Opcode::XSAVES64 as u16,
+ XSETBV = super::Opcode::XSETBV as u16,
+ XSUSLDTRK = super::Opcode::XSUSLDTRK as u16,
+ XTEST = super::Opcode::XTEST as u16,
+ }
+}
+
+pub(crate) mod protected_mode {
+ #[allow(non_camel_case_types)]
+ #[derive(Copy, Clone, Debug, Eq, PartialEq)]
+ #[non_exhaustive]
+ #[repr(u16)]
+ pub enum Opcode {
+ AAA = super::Opcode::AAA as u16,
+ AAD = super::Opcode::AAD as u16,
+ AAM = super::Opcode::AAM as u16,
+ AAS = super::Opcode::AAS as u16,
+ ADC = super::Opcode::ADC as u16,
+ ADCX = super::Opcode::ADCX as u16,
+ ADD = super::Opcode::ADD as u16,
+ ADDPD = super::Opcode::ADDPD as u16,
+ ADDPS = super::Opcode::ADDPS as u16,
+ ADDSD = super::Opcode::ADDSD as u16,
+ ADDSS = super::Opcode::ADDSS as u16,
+ ADDSUBPD = super::Opcode::ADDSUBPD as u16,
+ ADDSUBPS = super::Opcode::ADDSUBPS as u16,
+ ADOX = super::Opcode::ADOX as u16,
+ AESDEC = super::Opcode::AESDEC as u16,
+ AESDEC128KL = super::Opcode::AESDEC128KL as u16,
+ AESDEC256KL = super::Opcode::AESDEC256KL as u16,
+ AESDECLAST = super::Opcode::AESDECLAST as u16,
+ AESDECWIDE128KL = super::Opcode::AESDECWIDE128KL as u16,
+ AESDECWIDE256KL = super::Opcode::AESDECWIDE256KL as u16,
+ AESENC = super::Opcode::AESENC as u16,
+ AESENC128KL = super::Opcode::AESENC128KL as u16,
+ AESENC256KL = super::Opcode::AESENC256KL as u16,
+ AESENCLAST = super::Opcode::AESENCLAST as u16,
+ AESENCWIDE128KL = super::Opcode::AESENCWIDE128KL as u16,
+ AESENCWIDE256KL = super::Opcode::AESENCWIDE256KL as u16,
+ AESIMC = super::Opcode::AESIMC as u16,
+ AESKEYGENASSIST = super::Opcode::AESKEYGENASSIST as u16,
+ AND = super::Opcode::AND as u16,
+ ANDN = super::Opcode::ANDN as u16,
+ ANDNPD = super::Opcode::ANDNPD as u16,
+ ANDNPS = super::Opcode::ANDNPS as u16,
+ ANDPD = super::Opcode::ANDPD as u16,
+ ANDPS = super::Opcode::ANDPS as u16,
+ ARPL = super::Opcode::ARPL as u16,
+ BEXTR = super::Opcode::BEXTR as u16,
+ BLENDPD = super::Opcode::BLENDPD as u16,
+ BLENDPS = super::Opcode::BLENDPS as u16,
+ BLENDVPD = super::Opcode::BLENDVPD as u16,
+ BLENDVPS = super::Opcode::BLENDVPS as u16,
+ BLENDW = super::Opcode::BLENDW as u16,
+ BLSI = super::Opcode::BLSI as u16,
+ BLSMSK = super::Opcode::BLSMSK as u16,
+ BLSR = super::Opcode::BLSR as u16,
+ BNDCL = super::Opcode::BNDCL as u16,
+ BNDCN = super::Opcode::BNDCN as u16,
+ BNDCU = super::Opcode::BNDCU as u16,
+ BNDLDX = super::Opcode::BNDLDX as u16,
+ BNDMK = super::Opcode::BNDMK as u16,
+ BNDMOV = super::Opcode::BNDMOV as u16,
+ BNDSTX = super::Opcode::BNDSTX as u16,
+ BOUND = super::Opcode::BOUND as u16,
+ BSF = super::Opcode::BSF as u16,
+ BSR = super::Opcode::BSR as u16,
+ BSWAP = super::Opcode::BSWAP as u16,
+ BT = super::Opcode::BT as u16,
+ BTC = super::Opcode::BTC as u16,
+ BTR = super::Opcode::BTR as u16,
+ BTS = super::Opcode::BTS as u16,
+ BZHI = super::Opcode::BZHI as u16,
+ CALL = super::Opcode::CALL as u16,
+ CALLF = super::Opcode::CALLF as u16,
+ CBW = super::Opcode::CBW as u16,
+ CDQ = super::Opcode::CDQ as u16,
+ CDQE = super::Opcode::CDQE as u16,
+ CLAC = super::Opcode::CLAC as u16,
+ CLC = super::Opcode::CLC as u16,
+ CLD = super::Opcode::CLD as u16,
+ CLFLUSH = super::Opcode::CLFLUSH as u16,
+ CLFLUSHOPT = super::Opcode::CLFLUSHOPT as u16,
+ CLGI = super::Opcode::CLGI as u16,
+ CLI = super::Opcode::CLI as u16,
+ CLRSSBSY = super::Opcode::CLRSSBSY as u16,
+ CLTS = super::Opcode::CLTS as u16,
+ CLUI = super::Opcode::CLUI as u16,
+ CLWB = super::Opcode::CLWB as u16,
+ CLZERO = super::Opcode::CLZERO as u16,
+ CMC = super::Opcode::CMC as u16,
+ CMOVA = super::Opcode::CMOVA as u16,
+ CMOVB = super::Opcode::CMOVB as u16,
+ CMOVG = super::Opcode::CMOVG as u16,
+ CMOVGE = super::Opcode::CMOVGE as u16,
+ CMOVL = super::Opcode::CMOVL as u16,
+ CMOVLE = super::Opcode::CMOVLE as u16,
+ CMOVNA = super::Opcode::CMOVNA as u16,
+ CMOVNB = super::Opcode::CMOVNB as u16,
+ CMOVNO = super::Opcode::CMOVNO as u16,
+ CMOVNP = super::Opcode::CMOVNP as u16,
+ CMOVNS = super::Opcode::CMOVNS as u16,
+ CMOVNZ = super::Opcode::CMOVNZ as u16,
+ CMOVO = super::Opcode::CMOVO as u16,
+ CMOVP = super::Opcode::CMOVP as u16,
+ CMOVS = super::Opcode::CMOVS as u16,
+ CMOVZ = super::Opcode::CMOVZ as u16,
+ CMP = super::Opcode::CMP as u16,
+ CMPPD = super::Opcode::CMPPD as u16,
+ CMPPS = super::Opcode::CMPPS as u16,
+ CMPS = super::Opcode::CMPS as u16,
+ CMPSD = super::Opcode::CMPSD as u16,
+ CMPSS = super::Opcode::CMPSS as u16,
+ CMPXCHG = super::Opcode::CMPXCHG as u16,
+ CMPXCHG16B = super::Opcode::CMPXCHG16B as u16,
+ CMPXCHG8B = super::Opcode::CMPXCHG8B as u16,
+ COMISD = super::Opcode::COMISD as u16,
+ COMISS = super::Opcode::COMISS as u16,
+ CPUID = super::Opcode::CPUID as u16,
+ CQO = super::Opcode::CQO as u16,
+ CRC32 = super::Opcode::CRC32 as u16,
+ CVTDQ2PD = super::Opcode::CVTDQ2PD as u16,
+ CVTDQ2PS = super::Opcode::CVTDQ2PS as u16,
+ CVTPD2DQ = super::Opcode::CVTPD2DQ as u16,
+ CVTPD2PI = super::Opcode::CVTPD2PI as u16,
+ CVTPD2PS = super::Opcode::CVTPD2PS as u16,
+ CVTPI2PD = super::Opcode::CVTPI2PD as u16,
+ CVTPI2PS = super::Opcode::CVTPI2PS as u16,
+ CVTPS2DQ = super::Opcode::CVTPS2DQ as u16,
+ CVTPS2PD = super::Opcode::CVTPS2PD as u16,
+ CVTPS2PI = super::Opcode::CVTPS2PI as u16,
+ CVTSD2SI = super::Opcode::CVTSD2SI as u16,
+ CVTSD2SS = super::Opcode::CVTSD2SS as u16,
+ CVTSI2SD = super::Opcode::CVTSI2SD as u16,
+ CVTSI2SS = super::Opcode::CVTSI2SS as u16,
+ CVTSS2SD = super::Opcode::CVTSS2SD as u16,
+ CVTSS2SI = super::Opcode::CVTSS2SI as u16,
+ CVTTPD2DQ = super::Opcode::CVTTPD2DQ as u16,
+ CVTTPD2PI = super::Opcode::CVTTPD2PI as u16,
+ CVTTPS2DQ = super::Opcode::CVTTPS2DQ as u16,
+ CVTTPS2PI = super::Opcode::CVTTPS2PI as u16,
+ CVTTSD2SI = super::Opcode::CVTTSD2SI as u16,
+ CVTTSS2SI = super::Opcode::CVTTSS2SI as u16,
+ CWD = super::Opcode::CWD as u16,
+ CWDE = super::Opcode::CWDE as u16,
+ DAA = super::Opcode::DAA as u16,
+ DAS = super::Opcode::DAS as u16,
+ DEC = super::Opcode::DEC as u16,
+ DIV = super::Opcode::DIV as u16,
+ DIVPD = super::Opcode::DIVPD as u16,
+ DIVPS = super::Opcode::DIVPS as u16,
+ DIVSD = super::Opcode::DIVSD as u16,
+ DIVSS = super::Opcode::DIVSS as u16,
+ DPPD = super::Opcode::DPPD as u16,
+ DPPS = super::Opcode::DPPS as u16,
+ EMMS = super::Opcode::EMMS as u16,
+ ENCLS = super::Opcode::ENCLS as u16,
+ ENCLU = super::Opcode::ENCLU as u16,
+ ENCLV = super::Opcode::ENCLV as u16,
+ ENCODEKEY128 = super::Opcode::ENCODEKEY128 as u16,
+ ENCODEKEY256 = super::Opcode::ENCODEKEY256 as u16,
+ ENDBR32 = super::Opcode::ENDBR32 as u16,
+ ENDBR64 = super::Opcode::ENDBR64 as u16,
+ ENQCMD = super::Opcode::ENQCMD as u16,
+ ENQCMDS = super::Opcode::ENQCMDS as u16,
+ ENTER = super::Opcode::ENTER as u16,
+ EXTRACTPS = super::Opcode::EXTRACTPS as u16,
+ EXTRQ = super::Opcode::EXTRQ as u16,
+ F2XM1 = super::Opcode::F2XM1 as u16,
+ FABS = super::Opcode::FABS as u16,
+ FADD = super::Opcode::FADD as u16,
+ FADDP = super::Opcode::FADDP as u16,
+ FBLD = super::Opcode::FBLD as u16,
+ FBSTP = super::Opcode::FBSTP as u16,
+ FCHS = super::Opcode::FCHS as u16,
+ FCMOVB = super::Opcode::FCMOVB as u16,
+ FCMOVBE = super::Opcode::FCMOVBE as u16,
+ FCMOVE = super::Opcode::FCMOVE as u16,
+ FCMOVNB = super::Opcode::FCMOVNB as u16,
+ FCMOVNBE = super::Opcode::FCMOVNBE as u16,
+ FCMOVNE = super::Opcode::FCMOVNE as u16,
+ FCMOVNU = super::Opcode::FCMOVNU as u16,
+ FCMOVU = super::Opcode::FCMOVU as u16,
+ FCOM = super::Opcode::FCOM as u16,
+ FCOMI = super::Opcode::FCOMI as u16,
+ FCOMIP = super::Opcode::FCOMIP as u16,
+ FCOMP = super::Opcode::FCOMP as u16,
+ FCOMPP = super::Opcode::FCOMPP as u16,
+ FCOS = super::Opcode::FCOS as u16,
+ FDECSTP = super::Opcode::FDECSTP as u16,
+ FDISI8087_NOP = super::Opcode::FDISI8087_NOP as u16,
+ FDIV = super::Opcode::FDIV as u16,
+ FDIVP = super::Opcode::FDIVP as u16,
+ FDIVR = super::Opcode::FDIVR as u16,
+ FDIVRP = super::Opcode::FDIVRP as u16,
+ FEMMS = super::Opcode::FEMMS as u16,
+ FENI8087_NOP = super::Opcode::FENI8087_NOP as u16,
+ FFREE = super::Opcode::FFREE as u16,
+ FFREEP = super::Opcode::FFREEP as u16,
+ FIADD = super::Opcode::FIADD as u16,
+ FICOM = super::Opcode::FICOM as u16,
+ FICOMP = super::Opcode::FICOMP as u16,
+ FIDIV = super::Opcode::FIDIV as u16,
+ FIDIVR = super::Opcode::FIDIVR as u16,
+ FILD = super::Opcode::FILD as u16,
+ FIMUL = super::Opcode::FIMUL as u16,
+ FINCSTP = super::Opcode::FINCSTP as u16,
+ FIST = super::Opcode::FIST as u16,
+ FISTP = super::Opcode::FISTP as u16,
+ FISTTP = super::Opcode::FISTTP as u16,
+ FISUB = super::Opcode::FISUB as u16,
+ FISUBR = super::Opcode::FISUBR as u16,
+ FLD = super::Opcode::FLD as u16,
+ FLD1 = super::Opcode::FLD1 as u16,
+ FLDCW = super::Opcode::FLDCW as u16,
+ FLDENV = super::Opcode::FLDENV as u16,
+ FLDL2E = super::Opcode::FLDL2E as u16,
+ FLDL2T = super::Opcode::FLDL2T as u16,
+ FLDLG2 = super::Opcode::FLDLG2 as u16,
+ FLDLN2 = super::Opcode::FLDLN2 as u16,
+ FLDPI = super::Opcode::FLDPI as u16,
+ FLDZ = super::Opcode::FLDZ as u16,
+ FMUL = super::Opcode::FMUL as u16,
+ FMULP = super::Opcode::FMULP as u16,
+ FNCLEX = super::Opcode::FNCLEX as u16,
+ FNINIT = super::Opcode::FNINIT as u16,
+ FNOP = super::Opcode::FNOP as u16,
+ FNSAVE = super::Opcode::FNSAVE as u16,
+ FNSTCW = super::Opcode::FNSTCW as u16,
+ FNSTENV = super::Opcode::FNSTENV as u16,
+ FNSTOR = super::Opcode::FNSTOR as u16,
+ FNSTSW = super::Opcode::FNSTSW as u16,
+ FPATAN = super::Opcode::FPATAN as u16,
+ FPREM = super::Opcode::FPREM as u16,
+ FPREM1 = super::Opcode::FPREM1 as u16,
+ FPTAN = super::Opcode::FPTAN as u16,
+ FRNDINT = super::Opcode::FRNDINT as u16,
+ FRSTOR = super::Opcode::FRSTOR as u16,
+ FSCALE = super::Opcode::FSCALE as u16,
+ FSETPM287_NOP = super::Opcode::FSETPM287_NOP as u16,
+ FSIN = super::Opcode::FSIN as u16,
+ FSINCOS = super::Opcode::FSINCOS as u16,
+ FSQRT = super::Opcode::FSQRT as u16,
+ FST = super::Opcode::FST as u16,
+ FSTP = super::Opcode::FSTP as u16,
+ FSTPNCE = super::Opcode::FSTPNCE as u16,
+ FSUB = super::Opcode::FSUB as u16,
+ FSUBP = super::Opcode::FSUBP as u16,
+ FSUBR = super::Opcode::FSUBR as u16,
+ FSUBRP = super::Opcode::FSUBRP as u16,
+ FTST = super::Opcode::FTST as u16,
+ FUCOM = super::Opcode::FUCOM as u16,
+ FUCOMI = super::Opcode::FUCOMI as u16,
+ FUCOMIP = super::Opcode::FUCOMIP as u16,
+ FUCOMP = super::Opcode::FUCOMP as u16,
+ FUCOMPP = super::Opcode::FUCOMPP as u16,
+ FXAM = super::Opcode::FXAM as u16,
+ FXCH = super::Opcode::FXCH as u16,
+ FXRSTOR = super::Opcode::FXRSTOR as u16,
+ FXSAVE = super::Opcode::FXSAVE as u16,
+ FXTRACT = super::Opcode::FXTRACT as u16,
+ FYL2X = super::Opcode::FYL2X as u16,
+ FYL2XP1 = super::Opcode::FYL2XP1 as u16,
+ GETSEC = super::Opcode::GETSEC as u16,
+ GF2P8AFFINEINVQB = super::Opcode::GF2P8AFFINEINVQB as u16,
+ GF2P8AFFINEQB = super::Opcode::GF2P8AFFINEQB as u16,
+ GF2P8MULB = super::Opcode::GF2P8MULB as u16,
+ HADDPD = super::Opcode::HADDPD as u16,
+ HADDPS = super::Opcode::HADDPS as u16,
+ HLT = super::Opcode::HLT as u16,
+ HRESET = super::Opcode::HRESET as u16,
+ HSUBPD = super::Opcode::HSUBPD as u16,
+ HSUBPS = super::Opcode::HSUBPS as u16,
+ IDIV = super::Opcode::IDIV as u16,
+ IMUL = super::Opcode::IMUL as u16,
+ IN = super::Opcode::IN as u16,
+ INC = super::Opcode::INC as u16,
+ INCSSP = super::Opcode::INCSSP as u16,
+ INS = super::Opcode::INS as u16,
+ INSERTPS = super::Opcode::INSERTPS as u16,
+ INSERTQ = super::Opcode::INSERTQ as u16,
+ INT = super::Opcode::INT as u16,
+ INTO = super::Opcode::INTO as u16,
+ Invalid = super::Opcode::Invalid as u16,
+ INVD = super::Opcode::INVD as u16,
+ INVEPT = super::Opcode::INVEPT as u16,
+ INVLPG = super::Opcode::INVLPG as u16,
+ INVLPGA = super::Opcode::INVLPGA as u16,
+ INVLPGB = super::Opcode::INVLPGB as u16,
+ INVPCID = super::Opcode::INVPCID as u16,
+ INVVPID = super::Opcode::INVVPID as u16,
+ IRET = super::Opcode::IRET as u16,
+ IRETD = super::Opcode::IRETD as u16,
+ IRETQ = super::Opcode::IRETQ as u16,
+ JA = super::Opcode::JA as u16,
+ JB = super::Opcode::JB as u16,
+ JECXZ = super::Opcode::JECXZ as u16,
+ JG = super::Opcode::JG as u16,
+ JGE = super::Opcode::JGE as u16,
+ JL = super::Opcode::JL as u16,
+ JLE = super::Opcode::JLE as u16,
+ JMP = super::Opcode::JMP as u16,
+ JMPE = super::Opcode::JMPE as u16,
+ JMPF = super::Opcode::JMPF as u16,
+ JNA = super::Opcode::JNA as u16,
+ JNB = super::Opcode::JNB as u16,
+ JNO = super::Opcode::JNO as u16,
+ JNP = super::Opcode::JNP as u16,
+ JNS = super::Opcode::JNS as u16,
+ JNZ = super::Opcode::JNZ as u16,
+ JO = super::Opcode::JO as u16,
+ JP = super::Opcode::JP as u16,
+ JS = super::Opcode::JS as u16,
+ JZ = super::Opcode::JZ as u16,
+ KADDB = super::Opcode::KADDB as u16,
+ KADDD = super::Opcode::KADDD as u16,
+ KADDQ = super::Opcode::KADDQ as u16,
+ KADDW = super::Opcode::KADDW as u16,
+ KANDB = super::Opcode::KANDB as u16,
+ KANDD = super::Opcode::KANDD as u16,
+ KANDNB = super::Opcode::KANDNB as u16,
+ KANDND = super::Opcode::KANDND as u16,
+ KANDNQ = super::Opcode::KANDNQ as u16,
+ KANDNW = super::Opcode::KANDNW as u16,
+ KANDQ = super::Opcode::KANDQ as u16,
+ KANDW = super::Opcode::KANDW as u16,
+ KMOVB = super::Opcode::KMOVB as u16,
+ KMOVD = super::Opcode::KMOVD as u16,
+ KMOVQ = super::Opcode::KMOVQ as u16,
+ KMOVW = super::Opcode::KMOVW as u16,
+ KNOTB = super::Opcode::KNOTB as u16,
+ KNOTD = super::Opcode::KNOTD as u16,
+ KNOTQ = super::Opcode::KNOTQ as u16,
+ KNOTW = super::Opcode::KNOTW as u16,
+ KORB = super::Opcode::KORB as u16,
+ KORD = super::Opcode::KORD as u16,
+ KORQ = super::Opcode::KORQ as u16,
+ KORTESTB = super::Opcode::KORTESTB as u16,
+ KORTESTD = super::Opcode::KORTESTD as u16,
+ KORTESTQ = super::Opcode::KORTESTQ as u16,
+ KORTESTW = super::Opcode::KORTESTW as u16,
+ KORW = super::Opcode::KORW as u16,
+ KSHIFTLB = super::Opcode::KSHIFTLB as u16,
+ KSHIFTLD = super::Opcode::KSHIFTLD as u16,
+ KSHIFTLQ = super::Opcode::KSHIFTLQ as u16,
+ KSHIFTLW = super::Opcode::KSHIFTLW as u16,
+ KSHIFTRB = super::Opcode::KSHIFTRB as u16,
+ KSHIFTRD = super::Opcode::KSHIFTRD as u16,
+ KSHIFTRQ = super::Opcode::KSHIFTRQ as u16,
+ KSHIFTRW = super::Opcode::KSHIFTRW as u16,
+ KTESTB = super::Opcode::KTESTB as u16,
+ KTESTD = super::Opcode::KTESTD as u16,
+ KTESTQ = super::Opcode::KTESTQ as u16,
+ KTESTW = super::Opcode::KTESTW as u16,
+ KUNPCKBW = super::Opcode::KUNPCKBW as u16,
+ KUNPCKDQ = super::Opcode::KUNPCKDQ as u16,
+ KUNPCKWD = super::Opcode::KUNPCKWD as u16,
+ KXNORB = super::Opcode::KXNORB as u16,
+ KXNORD = super::Opcode::KXNORD as u16,
+ KXNORQ = super::Opcode::KXNORQ as u16,
+ KXNORW = super::Opcode::KXNORW as u16,
+ KXORB = super::Opcode::KXORB as u16,
+ KXORD = super::Opcode::KXORD as u16,
+ KXORQ = super::Opcode::KXORQ as u16,
+ KXORW = super::Opcode::KXORW as u16,
+ LAHF = super::Opcode::LAHF as u16,
+ LAR = super::Opcode::LAR as u16,
+ LDDQU = super::Opcode::LDDQU as u16,
+ LDMXCSR = super::Opcode::LDMXCSR as u16,
+ LDS = super::Opcode::LDS as u16,
+ LEA = super::Opcode::LEA as u16,
+ LEAVE = super::Opcode::LEAVE as u16,
+ LES = super::Opcode::LES as u16,
+ LFENCE = super::Opcode::LFENCE as u16,
+ LFS = super::Opcode::LFS as u16,
+ LGDT = super::Opcode::LGDT as u16,
+ LGS = super::Opcode::LGS as u16,
+ LIDT = super::Opcode::LIDT as u16,
+ LLDT = super::Opcode::LLDT as u16,
+ LMSW = super::Opcode::LMSW as u16,
+ LOADIWKEY = super::Opcode::LOADIWKEY as u16,
+ LODS = super::Opcode::LODS as u16,
+ LOOP = super::Opcode::LOOP as u16,
+ LOOPNZ = super::Opcode::LOOPNZ as u16,
+ LOOPZ = super::Opcode::LOOPZ as u16,
+ LSL = super::Opcode::LSL as u16,
+ LSS = super::Opcode::LSS as u16,
+ LTR = super::Opcode::LTR as u16,
+ LZCNT = super::Opcode::LZCNT as u16,
+ MASKMOVDQU = super::Opcode::MASKMOVDQU as u16,
+ MASKMOVQ = super::Opcode::MASKMOVQ as u16,
+ MAXPD = super::Opcode::MAXPD as u16,
+ MAXPS = super::Opcode::MAXPS as u16,
+ MAXSD = super::Opcode::MAXSD as u16,
+ MAXSS = super::Opcode::MAXSS as u16,
+ MFENCE = super::Opcode::MFENCE as u16,
+ MINPD = super::Opcode::MINPD as u16,
+ MINPS = super::Opcode::MINPS as u16,
+ MINSD = super::Opcode::MINSD as u16,
+ MINSS = super::Opcode::MINSS as u16,
+ MONITOR = super::Opcode::MONITOR as u16,
+ MONITORX = super::Opcode::MONITORX as u16,
+ MOV = super::Opcode::MOV as u16,
+ MOVAPD = super::Opcode::MOVAPD as u16,
+ MOVAPS = super::Opcode::MOVAPS as u16,
+ MOVBE = super::Opcode::MOVBE as u16,
+ MOVD = super::Opcode::MOVD as u16,
+ MOVDDUP = super::Opcode::MOVDDUP as u16,
+ MOVDIR64B = super::Opcode::MOVDIR64B as u16,
+ MOVDIRI = super::Opcode::MOVDIRI as u16,
+ MOVDQ2Q = super::Opcode::MOVDQ2Q as u16,
+ MOVDQA = super::Opcode::MOVDQA as u16,
+ MOVDQU = super::Opcode::MOVDQU as u16,
+ MOVHLPS = super::Opcode::MOVHLPS as u16,
+ MOVHPD = super::Opcode::MOVHPD as u16,
+ MOVHPS = super::Opcode::MOVHPS as u16,
+ MOVLHPS = super::Opcode::MOVLHPS as u16,
+ MOVLPD = super::Opcode::MOVLPD as u16,
+ MOVLPS = super::Opcode::MOVLPS as u16,
+ MOVMSKPD = super::Opcode::MOVMSKPD as u16,
+ MOVMSKPS = super::Opcode::MOVMSKPS as u16,
+ MOVNTDQ = super::Opcode::MOVNTDQ as u16,
+ MOVNTDQA = super::Opcode::MOVNTDQA as u16,
+ MOVNTI = super::Opcode::MOVNTI as u16,
+ MOVNTPD = super::Opcode::MOVNTPD as u16,
+ MOVNTPS = super::Opcode::MOVNTPS as u16,
+ MOVNTQ = super::Opcode::MOVNTQ as u16,
+ MOVNTSD = super::Opcode::MOVNTSD as u16,
+ MOVNTSS = super::Opcode::MOVNTSS as u16,
+ MOVQ = super::Opcode::MOVQ as u16,
+ MOVQ2DQ = super::Opcode::MOVQ2DQ as u16,
+ MOVS = super::Opcode::MOVS as u16,
+ MOVSD = super::Opcode::MOVSD as u16,
+ MOVSHDUP = super::Opcode::MOVSHDUP as u16,
+ MOVSLDUP = super::Opcode::MOVSLDUP as u16,
+ MOVSS = super::Opcode::MOVSS as u16,
+ MOVSX = super::Opcode::MOVSX as u16,
+ MOVSXD = super::Opcode::MOVSXD as u16,
+ MOVUPD = super::Opcode::MOVUPD as u16,
+ MOVUPS = super::Opcode::MOVUPS as u16,
+ MOVZX = super::Opcode::MOVZX as u16,
+ MPSADBW = super::Opcode::MPSADBW as u16,
+ MUL = super::Opcode::MUL as u16,
+ MULPD = super::Opcode::MULPD as u16,
+ MULPS = super::Opcode::MULPS as u16,
+ MULSD = super::Opcode::MULSD as u16,
+ MULSS = super::Opcode::MULSS as u16,
+ MULX = super::Opcode::MULX as u16,
+ MWAIT = super::Opcode::MWAIT as u16,
+ MWAITX = super::Opcode::MWAITX as u16,
+ NEG = super::Opcode::NEG as u16,
+ NOP = super::Opcode::NOP as u16,
+ NOT = super::Opcode::NOT as u16,
+ OR = super::Opcode::OR as u16,
+ ORPD = super::Opcode::ORPD as u16,
+ ORPS = super::Opcode::ORPS as u16,
+ OUT = super::Opcode::OUT as u16,
+ OUTS = super::Opcode::OUTS as u16,
+ PABSB = super::Opcode::PABSB as u16,
+ PABSD = super::Opcode::PABSD as u16,
+ PABSW = super::Opcode::PABSW as u16,
+ PACKSSDW = super::Opcode::PACKSSDW as u16,
+ PACKSSWB = super::Opcode::PACKSSWB as u16,
+ PACKUSDW = super::Opcode::PACKUSDW as u16,
+ PACKUSWB = super::Opcode::PACKUSWB as u16,
+ PADDB = super::Opcode::PADDB as u16,
+ PADDD = super::Opcode::PADDD as u16,
+ PADDQ = super::Opcode::PADDQ as u16,
+ PADDSB = super::Opcode::PADDSB as u16,
+ PADDSW = super::Opcode::PADDSW as u16,
+ PADDUSB = super::Opcode::PADDUSB as u16,
+ PADDUSW = super::Opcode::PADDUSW as u16,
+ PADDW = super::Opcode::PADDW as u16,
+ PALIGNR = super::Opcode::PALIGNR as u16,
+ PAND = super::Opcode::PAND as u16,
+ PANDN = super::Opcode::PANDN as u16,
+ PAVGB = super::Opcode::PAVGB as u16,
+ PAVGUSB = super::Opcode::PAVGUSB as u16,
+ PAVGW = super::Opcode::PAVGW as u16,
+ PBLENDVB = super::Opcode::PBLENDVB as u16,
+ PBLENDW = super::Opcode::PBLENDW as u16,
+ PCLMULQDQ = super::Opcode::PCLMULQDQ as u16,
+ PCMPEQB = super::Opcode::PCMPEQB as u16,
+ PCMPEQD = super::Opcode::PCMPEQD as u16,
+ PCMPEQQ = super::Opcode::PCMPEQQ as u16,
+ PCMPEQW = super::Opcode::PCMPEQW as u16,
+ PCMPESTRI = super::Opcode::PCMPESTRI as u16,
+ PCMPESTRM = super::Opcode::PCMPESTRM as u16,
+ PCMPGTB = super::Opcode::PCMPGTB as u16,
+ PCMPGTD = super::Opcode::PCMPGTD as u16,
+ PCMPGTQ = super::Opcode::PCMPGTQ as u16,
+ PCMPGTW = super::Opcode::PCMPGTW as u16,
+ PCMPISTRI = super::Opcode::PCMPISTRI as u16,
+ PCMPISTRM = super::Opcode::PCMPISTRM as u16,
+ PCONFIG = super::Opcode::PCONFIG as u16,
+ PDEP = super::Opcode::PDEP as u16,
+ PEXT = super::Opcode::PEXT as u16,
+ PEXTRB = super::Opcode::PEXTRB as u16,
+ PEXTRD = super::Opcode::PEXTRD as u16,
+ PEXTRQ = super::Opcode::PEXTRQ as u16,
+ PEXTRW = super::Opcode::PEXTRW as u16,
+ PF2ID = super::Opcode::PF2ID as u16,
+ PF2IW = super::Opcode::PF2IW as u16,
+ PFACC = super::Opcode::PFACC as u16,
+ PFADD = super::Opcode::PFADD as u16,
+ PFCMPEQ = super::Opcode::PFCMPEQ as u16,
+ PFCMPGE = super::Opcode::PFCMPGE as u16,
+ PFCMPGT = super::Opcode::PFCMPGT as u16,
+ PFMAX = super::Opcode::PFMAX as u16,
+ PFMIN = super::Opcode::PFMIN as u16,
+ PFMUL = super::Opcode::PFMUL as u16,
+ PFMULHRW = super::Opcode::PFMULHRW as u16,
+ PFNACC = super::Opcode::PFNACC as u16,
+ PFPNACC = super::Opcode::PFPNACC as u16,
+ PFRCP = super::Opcode::PFRCP as u16,
+ PFRCPIT1 = super::Opcode::PFRCPIT1 as u16,
+ PFRCPIT2 = super::Opcode::PFRCPIT2 as u16,
+ PFRSQIT1 = super::Opcode::PFRSQIT1 as u16,
+ PFRSQRT = super::Opcode::PFRSQRT as u16,
+ PFSUB = super::Opcode::PFSUB as u16,
+ PFSUBR = super::Opcode::PFSUBR as u16,
+ PHADDD = super::Opcode::PHADDD as u16,
+ PHADDSW = super::Opcode::PHADDSW as u16,
+ PHADDW = super::Opcode::PHADDW as u16,
+ PHMINPOSUW = super::Opcode::PHMINPOSUW as u16,
+ PHSUBD = super::Opcode::PHSUBD as u16,
+ PHSUBSW = super::Opcode::PHSUBSW as u16,
+ PHSUBW = super::Opcode::PHSUBW as u16,
+ PI2FD = super::Opcode::PI2FD as u16,
+ PI2FW = super::Opcode::PI2FW as u16,
+ PINSRB = super::Opcode::PINSRB as u16,
+ PINSRD = super::Opcode::PINSRD as u16,
+ PINSRQ = super::Opcode::PINSRQ as u16,
+ PINSRW = super::Opcode::PINSRW as u16,
+ PMADDUBSW = super::Opcode::PMADDUBSW as u16,
+ PMADDWD = super::Opcode::PMADDWD as u16,
+ PMAXSB = super::Opcode::PMAXSB as u16,
+ PMAXSD = super::Opcode::PMAXSD as u16,
+ PMAXSW = super::Opcode::PMAXSW as u16,
+ PMAXUB = super::Opcode::PMAXUB as u16,
+ PMAXUD = super::Opcode::PMAXUD as u16,
+ PMAXUW = super::Opcode::PMAXUW as u16,
+ PMINSB = super::Opcode::PMINSB as u16,
+ PMINSD = super::Opcode::PMINSD as u16,
+ PMINSW = super::Opcode::PMINSW as u16,
+ PMINUB = super::Opcode::PMINUB as u16,
+ PMINUD = super::Opcode::PMINUD as u16,
+ PMINUW = super::Opcode::PMINUW as u16,
+ PMOVMSKB = super::Opcode::PMOVMSKB as u16,
+ PMOVSXBD = super::Opcode::PMOVSXBD as u16,
+ PMOVSXBQ = super::Opcode::PMOVSXBQ as u16,
+ PMOVSXBW = super::Opcode::PMOVSXBW as u16,
+ PMOVSXDQ = super::Opcode::PMOVSXDQ as u16,
+ PMOVSXWD = super::Opcode::PMOVSXWD as u16,
+ PMOVSXWQ = super::Opcode::PMOVSXWQ as u16,
+ PMOVZXBD = super::Opcode::PMOVZXBD as u16,
+ PMOVZXBQ = super::Opcode::PMOVZXBQ as u16,
+ PMOVZXBW = super::Opcode::PMOVZXBW as u16,
+ PMOVZXDQ = super::Opcode::PMOVZXDQ as u16,
+ PMOVZXWD = super::Opcode::PMOVZXWD as u16,
+ PMOVZXWQ = super::Opcode::PMOVZXWQ as u16,
+ PMULDQ = super::Opcode::PMULDQ as u16,
+ PMULHRSW = super::Opcode::PMULHRSW as u16,
+ PMULHRW = super::Opcode::PMULHRW as u16,
+ PMULHUW = super::Opcode::PMULHUW as u16,
+ PMULHW = super::Opcode::PMULHW as u16,
+ PMULLD = super::Opcode::PMULLD as u16,
+ PMULLW = super::Opcode::PMULLW as u16,
+ PMULUDQ = super::Opcode::PMULUDQ as u16,
+ POP = super::Opcode::POP as u16,
+ POPA = super::Opcode::POPA as u16,
+ POPCNT = super::Opcode::POPCNT as u16,
+ POPF = super::Opcode::POPF as u16,
+ POR = super::Opcode::POR as u16,
+ PREFETCH0 = super::Opcode::PREFETCH0 as u16,
+ PREFETCH1 = super::Opcode::PREFETCH1 as u16,
+ PREFETCH2 = super::Opcode::PREFETCH2 as u16,
+ PREFETCHNTA = super::Opcode::PREFETCHNTA as u16,
+ PREFETCHW = super::Opcode::PREFETCHW as u16,
+ PSADBW = super::Opcode::PSADBW as u16,
+ PSHUFB = super::Opcode::PSHUFB as u16,
+ PSHUFD = super::Opcode::PSHUFD as u16,
+ PSHUFHW = super::Opcode::PSHUFHW as u16,
+ PSHUFLW = super::Opcode::PSHUFLW as u16,
+ PSHUFW = super::Opcode::PSHUFW as u16,
+ PSIGNB = super::Opcode::PSIGNB as u16,
+ PSIGND = super::Opcode::PSIGND as u16,
+ PSIGNW = super::Opcode::PSIGNW as u16,
+ PSLLD = super::Opcode::PSLLD as u16,
+ PSLLDQ = super::Opcode::PSLLDQ as u16,
+ PSLLQ = super::Opcode::PSLLQ as u16,
+ PSLLW = super::Opcode::PSLLW as u16,
+ PSMASH = super::Opcode::PSMASH as u16,
+ PSRAD = super::Opcode::PSRAD as u16,
+ PSRAW = super::Opcode::PSRAW as u16,
+ PSRLD = super::Opcode::PSRLD as u16,
+ PSRLDQ = super::Opcode::PSRLDQ as u16,
+ PSRLQ = super::Opcode::PSRLQ as u16,
+ PSRLW = super::Opcode::PSRLW as u16,
+ PSUBB = super::Opcode::PSUBB as u16,
+ PSUBD = super::Opcode::PSUBD as u16,
+ PSUBQ = super::Opcode::PSUBQ as u16,
+ PSUBSB = super::Opcode::PSUBSB as u16,
+ PSUBSW = super::Opcode::PSUBSW as u16,
+ PSUBUSB = super::Opcode::PSUBUSB as u16,
+ PSUBUSW = super::Opcode::PSUBUSW as u16,
+ PSUBW = super::Opcode::PSUBW as u16,
+ PSWAPD = super::Opcode::PSWAPD as u16,
+ PTEST = super::Opcode::PTEST as u16,
+ PTWRITE = super::Opcode::PTWRITE as u16,
+ PUNPCKHBW = super::Opcode::PUNPCKHBW as u16,
+ PUNPCKHDQ = super::Opcode::PUNPCKHDQ as u16,
+ PUNPCKHQDQ = super::Opcode::PUNPCKHQDQ as u16,
+ PUNPCKHWD = super::Opcode::PUNPCKHWD as u16,
+ PUNPCKLBW = super::Opcode::PUNPCKLBW as u16,
+ PUNPCKLDQ = super::Opcode::PUNPCKLDQ as u16,
+ PUNPCKLQDQ = super::Opcode::PUNPCKLQDQ as u16,
+ PUNPCKLWD = super::Opcode::PUNPCKLWD as u16,
+ PUSH = super::Opcode::PUSH as u16,
+ PUSHA = super::Opcode::PUSHA as u16,
+ PUSHF = super::Opcode::PUSHF as u16,
+ PVALIDATE = super::Opcode::PVALIDATE as u16,
+ PXOR = super::Opcode::PXOR as u16,
+ RCL = super::Opcode::RCL as u16,
+ RCPPS = super::Opcode::RCPPS as u16,
+ RCPSS = super::Opcode::RCPSS as u16,
+ RCR = super::Opcode::RCR as u16,
+ RDFSBASE = super::Opcode::RDFSBASE as u16,
+ RDGSBASE = super::Opcode::RDGSBASE as u16,
+ RDMSR = super::Opcode::RDMSR as u16,
+ RDPID = super::Opcode::RDPID as u16,
+ RDPKRU = super::Opcode::RDPKRU as u16,
+ RDPMC = super::Opcode::RDPMC as u16,
+ RDPRU = super::Opcode::RDPRU as u16,
+ RDRAND = super::Opcode::RDRAND as u16,
+ RDSEED = super::Opcode::RDSEED as u16,
+ RDTSC = super::Opcode::RDTSC as u16,
+ RDTSCP = super::Opcode::RDTSCP as u16,
+ RETF = super::Opcode::RETF as u16,
+ RETURN = super::Opcode::RETURN as u16,
+ RMPADJUST = super::Opcode::RMPADJUST as u16,
+ RMPUPDATE = super::Opcode::RMPUPDATE as u16,
+ ROL = super::Opcode::ROL as u16,
+ ROR = super::Opcode::ROR as u16,
+ RORX = super::Opcode::RORX as u16,
+ ROUNDPD = super::Opcode::ROUNDPD as u16,
+ ROUNDPS = super::Opcode::ROUNDPS as u16,
+ ROUNDSD = super::Opcode::ROUNDSD as u16,
+ ROUNDSS = super::Opcode::ROUNDSS as u16,
+ RSM = super::Opcode::RSM as u16,
+ RSQRTPS = super::Opcode::RSQRTPS as u16,
+ RSQRTSS = super::Opcode::RSQRTSS as u16,
+ RSTORSSP = super::Opcode::RSTORSSP as u16,
+ SAHF = super::Opcode::SAHF as u16,
+ SAL = super::Opcode::SAL as u16,
+ SALC = super::Opcode::SALC as u16,
+ SAR = super::Opcode::SAR as u16,
+ SARX = super::Opcode::SARX as u16,
+ SAVEPREVSSP = super::Opcode::SAVEPREVSSP as u16,
+ SBB = super::Opcode::SBB as u16,
+ SCAS = super::Opcode::SCAS as u16,
+ SEAMCALL = super::Opcode::SEAMCALL as u16,
+ SEAMOPS = super::Opcode::SEAMOPS as u16,
+ SEAMRET = super::Opcode::SEAMRET as u16,
+ SENDUIPI = super::Opcode::SENDUIPI as u16,
+ SETA = super::Opcode::SETA as u16,
+ SETAE = super::Opcode::SETAE as u16,
+ SETB = super::Opcode::SETB as u16,
+ SETBE = super::Opcode::SETBE as u16,
+ SETG = super::Opcode::SETG as u16,
+ SETGE = super::Opcode::SETGE as u16,
+ SETL = super::Opcode::SETL as u16,
+ SETLE = super::Opcode::SETLE as u16,
+ SETNO = super::Opcode::SETNO as u16,
+ SETNP = super::Opcode::SETNP as u16,
+ SETNS = super::Opcode::SETNS as u16,
+ SETNZ = super::Opcode::SETNZ as u16,
+ SETO = super::Opcode::SETO as u16,
+ SETP = super::Opcode::SETP as u16,
+ SETS = super::Opcode::SETS as u16,
+ SETSSBSY = super::Opcode::SETSSBSY as u16,
+ SETZ = super::Opcode::SETZ as u16,
+ SFENCE = super::Opcode::SFENCE as u16,
+ SGDT = super::Opcode::SGDT as u16,
+ SHA1MSG1 = super::Opcode::SHA1MSG1 as u16,
+ SHA1MSG2 = super::Opcode::SHA1MSG2 as u16,
+ SHA1NEXTE = super::Opcode::SHA1NEXTE as u16,
+ SHA1RNDS4 = super::Opcode::SHA1RNDS4 as u16,
+ SHA256MSG1 = super::Opcode::SHA256MSG1 as u16,
+ SHA256MSG2 = super::Opcode::SHA256MSG2 as u16,
+ SHA256RNDS2 = super::Opcode::SHA256RNDS2 as u16,
+ SHL = super::Opcode::SHL as u16,
+ SHLD = super::Opcode::SHLD as u16,
+ SHLX = super::Opcode::SHLX as u16,
+ SHR = super::Opcode::SHR as u16,
+ SHRD = super::Opcode::SHRD as u16,
+ SHRX = super::Opcode::SHRX as u16,
+ SHUFPD = super::Opcode::SHUFPD as u16,
+ SHUFPS = super::Opcode::SHUFPS as u16,
+ SIDT = super::Opcode::SIDT as u16,
+ SKINIT = super::Opcode::SKINIT as u16,
+ SLDT = super::Opcode::SLDT as u16,
+ SLHD = super::Opcode::SLHD as u16,
+ SMSW = super::Opcode::SMSW as u16,
+ SQRTPD = super::Opcode::SQRTPD as u16,
+ SQRTPS = super::Opcode::SQRTPS as u16,
+ SQRTSD = super::Opcode::SQRTSD as u16,
+ SQRTSS = super::Opcode::SQRTSS as u16,
+ STAC = super::Opcode::STAC as u16,
+ STC = super::Opcode::STC as u16,
+ STD = super::Opcode::STD as u16,
+ STGI = super::Opcode::STGI as u16,
+ STI = super::Opcode::STI as u16,
+ STMXCSR = super::Opcode::STMXCSR as u16,
+ STOS = super::Opcode::STOS as u16,
+ STR = super::Opcode::STR as u16,
+ STUI = super::Opcode::STUI as u16,
+ SUB = super::Opcode::SUB as u16,
+ SUBPD = super::Opcode::SUBPD as u16,
+ SUBPS = super::Opcode::SUBPS as u16,
+ SUBSD = super::Opcode::SUBSD as u16,
+ SUBSS = super::Opcode::SUBSS as u16,
+ SWAPGS = super::Opcode::SWAPGS as u16,
+ SYSCALL = super::Opcode::SYSCALL as u16,
+ SYSENTER = super::Opcode::SYSENTER as u16,
+ SYSEXIT = super::Opcode::SYSEXIT as u16,
+ SYSRET = super::Opcode::SYSRET as u16,
+ TDCALL = super::Opcode::TDCALL as u16,
+ TEST = super::Opcode::TEST as u16,
+ TESTUI = super::Opcode::TESTUI as u16,
+ TLBSYNC = super::Opcode::TLBSYNC as u16,
+ TPAUSE = super::Opcode::TPAUSE as u16,
+ TZCNT = super::Opcode::TZCNT as u16,
+ UCOMISD = super::Opcode::UCOMISD as u16,
+ UCOMISS = super::Opcode::UCOMISS as u16,
+ UD0 = super::Opcode::UD0 as u16,
+ UD1 = super::Opcode::UD1 as u16,
+ UD2 = super::Opcode::UD2 as u16,
+ UIRET = super::Opcode::UIRET as u16,
+ UMONITOR = super::Opcode::UMONITOR as u16,
+ UMWAIT = super::Opcode::UMWAIT as u16,
+ UNPCKHPD = super::Opcode::UNPCKHPD as u16,
+ UNPCKHPS = super::Opcode::UNPCKHPS as u16,
+ UNPCKLPD = super::Opcode::UNPCKLPD as u16,
+ UNPCKLPS = super::Opcode::UNPCKLPS as u16,
+ V4FMADDPS = super::Opcode::V4FMADDPS as u16,
+ V4FMADDSS = super::Opcode::V4FMADDSS as u16,
+ V4FNMADDPS = super::Opcode::V4FNMADDPS as u16,
+ V4FNMADDSS = super::Opcode::V4FNMADDSS as u16,
+ VADDPD = super::Opcode::VADDPD as u16,
+ VADDPS = super::Opcode::VADDPS as u16,
+ VADDSD = super::Opcode::VADDSD as u16,
+ VADDSS = super::Opcode::VADDSS as u16,
+ VADDSUBPD = super::Opcode::VADDSUBPD as u16,
+ VADDSUBPS = super::Opcode::VADDSUBPS as u16,
+ VAESDEC = super::Opcode::VAESDEC as u16,
+ VAESDECLAST = super::Opcode::VAESDECLAST as u16,
+ VAESENC = super::Opcode::VAESENC as u16,
+ VAESENCLAST = super::Opcode::VAESENCLAST as u16,
+ VAESIMC = super::Opcode::VAESIMC as u16,
+ VAESKEYGENASSIST = super::Opcode::VAESKEYGENASSIST as u16,
+ VALIGND = super::Opcode::VALIGND as u16,
+ VALIGNQ = super::Opcode::VALIGNQ as u16,
+ VANDNPD = super::Opcode::VANDNPD as u16,
+ VANDNPS = super::Opcode::VANDNPS as u16,
+ VANDPD = super::Opcode::VANDPD as u16,
+ VANDPS = super::Opcode::VANDPS as u16,
+ VBLENDMPD = super::Opcode::VBLENDMPD as u16,
+ VBLENDMPS = super::Opcode::VBLENDMPS as u16,
+ VBLENDPD = super::Opcode::VBLENDPD as u16,
+ VBLENDPS = super::Opcode::VBLENDPS as u16,
+ VBLENDVPD = super::Opcode::VBLENDVPD as u16,
+ VBLENDVPS = super::Opcode::VBLENDVPS as u16,
+ VBROADCASTF128 = super::Opcode::VBROADCASTF128 as u16,
+ VBROADCASTF32X2 = super::Opcode::VBROADCASTF32X2 as u16,
+ VBROADCASTF32X4 = super::Opcode::VBROADCASTF32X4 as u16,
+ VBROADCASTF32X8 = super::Opcode::VBROADCASTF32X8 as u16,
+ VBROADCASTF64X2 = super::Opcode::VBROADCASTF64X2 as u16,
+ VBROADCASTF64X4 = super::Opcode::VBROADCASTF64X4 as u16,
+ VBROADCASTI128 = super::Opcode::VBROADCASTI128 as u16,
+ VBROADCASTI32X2 = super::Opcode::VBROADCASTI32X2 as u16,
+ VBROADCASTI32X4 = super::Opcode::VBROADCASTI32X4 as u16,
+ VBROADCASTI32X8 = super::Opcode::VBROADCASTI32X8 as u16,
+ VBROADCASTI64X2 = super::Opcode::VBROADCASTI64X2 as u16,
+ VBROADCASTI64X4 = super::Opcode::VBROADCASTI64X4 as u16,
+ VBROADCASTSD = super::Opcode::VBROADCASTSD as u16,
+ VBROADCASTSS = super::Opcode::VBROADCASTSS as u16,
+ VCMPPD = super::Opcode::VCMPPD as u16,
+ VCMPPS = super::Opcode::VCMPPS as u16,
+ VCMPSD = super::Opcode::VCMPSD as u16,
+ VCMPSS = super::Opcode::VCMPSS as u16,
+ VCOMISD = super::Opcode::VCOMISD as u16,
+ VCOMISS = super::Opcode::VCOMISS as u16,
+ VCOMPRESSD = super::Opcode::VCOMPRESSD as u16,
+ VCOMPRESSPD = super::Opcode::VCOMPRESSPD as u16,
+ VCOMPRESSPS = super::Opcode::VCOMPRESSPS as u16,
+ VCOMPRESSQ = super::Opcode::VCOMPRESSQ as u16,
+ VCVTDQ2PD = super::Opcode::VCVTDQ2PD as u16,
+ VCVTDQ2PS = super::Opcode::VCVTDQ2PS as u16,
+ VCVTNE2PS2BF16 = super::Opcode::VCVTNE2PS2BF16 as u16,
+ VCVTNEPS2BF16 = super::Opcode::VCVTNEPS2BF16 as u16,
+ VCVTPD2DQ = super::Opcode::VCVTPD2DQ as u16,
+ VCVTPD2PS = super::Opcode::VCVTPD2PS as u16,
+ VCVTPD2QQ = super::Opcode::VCVTPD2QQ as u16,
+ VCVTPD2UDQ = super::Opcode::VCVTPD2UDQ as u16,
+ VCVTPD2UQQ = super::Opcode::VCVTPD2UQQ as u16,
+ VCVTPH2PS = super::Opcode::VCVTPH2PS as u16,
+ VCVTPS2DQ = super::Opcode::VCVTPS2DQ as u16,
+ VCVTPS2PD = super::Opcode::VCVTPS2PD as u16,
+ VCVTPS2PH = super::Opcode::VCVTPS2PH as u16,
+ VCVTPS2QQ = super::Opcode::VCVTPS2QQ as u16,
+ VCVTPS2UDQ = super::Opcode::VCVTPS2UDQ as u16,
+ VCVTPS2UQQ = super::Opcode::VCVTPS2UQQ as u16,
+ VCVTQQ2PD = super::Opcode::VCVTQQ2PD as u16,
+ VCVTQQ2PS = super::Opcode::VCVTQQ2PS as u16,
+ VCVTSD2SI = super::Opcode::VCVTSD2SI as u16,
+ VCVTSD2SS = super::Opcode::VCVTSD2SS as u16,
+ VCVTSD2USI = super::Opcode::VCVTSD2USI as u16,
+ VCVTSI2SD = super::Opcode::VCVTSI2SD as u16,
+ VCVTSI2SS = super::Opcode::VCVTSI2SS as u16,
+ VCVTSS2SD = super::Opcode::VCVTSS2SD as u16,
+ VCVTSS2SI = super::Opcode::VCVTSS2SI as u16,
+ VCVTSS2USI = super::Opcode::VCVTSS2USI as u16,
+ VCVTTPD2DQ = super::Opcode::VCVTTPD2DQ as u16,
+ VCVTTPD2QQ = super::Opcode::VCVTTPD2QQ as u16,
+ VCVTTPD2UDQ = super::Opcode::VCVTTPD2UDQ as u16,
+ VCVTTPD2UQQ = super::Opcode::VCVTTPD2UQQ as u16,
+ VCVTTPS2DQ = super::Opcode::VCVTTPS2DQ as u16,
+ VCVTTPS2QQ = super::Opcode::VCVTTPS2QQ as u16,
+ VCVTTPS2UDQ = super::Opcode::VCVTTPS2UDQ as u16,
+ VCVTTPS2UQQ = super::Opcode::VCVTTPS2UQQ as u16,
+ VCVTTSD2SI = super::Opcode::VCVTTSD2SI as u16,
+ VCVTTSD2USI = super::Opcode::VCVTTSD2USI as u16,
+ VCVTTSS2SI = super::Opcode::VCVTTSS2SI as u16,
+ VCVTTSS2USI = super::Opcode::VCVTTSS2USI as u16,
+ VCVTUDQ2PD = super::Opcode::VCVTUDQ2PD as u16,
+ VCVTUDQ2PS = super::Opcode::VCVTUDQ2PS as u16,
+ VCVTUQQ2PD = super::Opcode::VCVTUQQ2PD as u16,
+ VCVTUQQ2PS = super::Opcode::VCVTUQQ2PS as u16,
+ VCVTUSI2SD = super::Opcode::VCVTUSI2SD as u16,
+ VCVTUSI2SS = super::Opcode::VCVTUSI2SS as u16,
+ VCVTUSI2USD = super::Opcode::VCVTUSI2USD as u16,
+ VCVTUSI2USS = super::Opcode::VCVTUSI2USS as u16,
+ VDBPSADBW = super::Opcode::VDBPSADBW as u16,
+ VDIVPD = super::Opcode::VDIVPD as u16,
+ VDIVPS = super::Opcode::VDIVPS as u16,
+ VDIVSD = super::Opcode::VDIVSD as u16,
+ VDIVSS = super::Opcode::VDIVSS as u16,
+ VDPBF16PS = super::Opcode::VDPBF16PS as u16,
+ VDPPD = super::Opcode::VDPPD as u16,
+ VDPPS = super::Opcode::VDPPS as u16,
+ VERR = super::Opcode::VERR as u16,
+ VERW = super::Opcode::VERW as u16,
+ VEXP2PD = super::Opcode::VEXP2PD as u16,
+ VEXP2PS = super::Opcode::VEXP2PS as u16,
+ VEXP2SD = super::Opcode::VEXP2SD as u16,
+ VEXP2SS = super::Opcode::VEXP2SS as u16,
+ VEXPANDPD = super::Opcode::VEXPANDPD as u16,
+ VEXPANDPS = super::Opcode::VEXPANDPS as u16,
+ VEXTRACTF128 = super::Opcode::VEXTRACTF128 as u16,
+ VEXTRACTF32X4 = super::Opcode::VEXTRACTF32X4 as u16,
+ VEXTRACTF32X8 = super::Opcode::VEXTRACTF32X8 as u16,
+ VEXTRACTF64X2 = super::Opcode::VEXTRACTF64X2 as u16,
+ VEXTRACTF64X4 = super::Opcode::VEXTRACTF64X4 as u16,
+ VEXTRACTI128 = super::Opcode::VEXTRACTI128 as u16,
+ VEXTRACTI32X4 = super::Opcode::VEXTRACTI32X4 as u16,
+ VEXTRACTI32X8 = super::Opcode::VEXTRACTI32X8 as u16,
+ VEXTRACTI64X2 = super::Opcode::VEXTRACTI64X2 as u16,
+ VEXTRACTI64X4 = super::Opcode::VEXTRACTI64X4 as u16,
+ VEXTRACTPS = super::Opcode::VEXTRACTPS as u16,
+ VFIXUPIMMPD = super::Opcode::VFIXUPIMMPD as u16,
+ VFIXUPIMMPS = super::Opcode::VFIXUPIMMPS as u16,
+ VFIXUPIMMSD = super::Opcode::VFIXUPIMMSD as u16,
+ VFIXUPIMMSS = super::Opcode::VFIXUPIMMSS as u16,
+ VFMADD132PD = super::Opcode::VFMADD132PD as u16,
+ VFMADD132PS = super::Opcode::VFMADD132PS as u16,
+ VFMADD132SD = super::Opcode::VFMADD132SD as u16,
+ VFMADD132SS = super::Opcode::VFMADD132SS as u16,
+ VFMADD213PD = super::Opcode::VFMADD213PD as u16,
+ VFMADD213PS = super::Opcode::VFMADD213PS as u16,
+ VFMADD213SD = super::Opcode::VFMADD213SD as u16,
+ VFMADD213SS = super::Opcode::VFMADD213SS as u16,
+ VFMADD231PD = super::Opcode::VFMADD231PD as u16,
+ VFMADD231PS = super::Opcode::VFMADD231PS as u16,
+ VFMADD231SD = super::Opcode::VFMADD231SD as u16,
+ VFMADD231SS = super::Opcode::VFMADD231SS as u16,
+ VFMADDSUB132PD = super::Opcode::VFMADDSUB132PD as u16,
+ VFMADDSUB132PS = super::Opcode::VFMADDSUB132PS as u16,
+ VFMADDSUB213PD = super::Opcode::VFMADDSUB213PD as u16,
+ VFMADDSUB213PS = super::Opcode::VFMADDSUB213PS as u16,
+ VFMADDSUB231PD = super::Opcode::VFMADDSUB231PD as u16,
+ VFMADDSUB231PS = super::Opcode::VFMADDSUB231PS as u16,
+ VFMSUB132PD = super::Opcode::VFMSUB132PD as u16,
+ VFMSUB132PS = super::Opcode::VFMSUB132PS as u16,
+ VFMSUB132SD = super::Opcode::VFMSUB132SD as u16,
+ VFMSUB132SS = super::Opcode::VFMSUB132SS as u16,
+ VFMSUB213PD = super::Opcode::VFMSUB213PD as u16,
+ VFMSUB213PS = super::Opcode::VFMSUB213PS as u16,
+ VFMSUB213SD = super::Opcode::VFMSUB213SD as u16,
+ VFMSUB213SS = super::Opcode::VFMSUB213SS as u16,
+ VFMSUB231PD = super::Opcode::VFMSUB231PD as u16,
+ VFMSUB231PS = super::Opcode::VFMSUB231PS as u16,
+ VFMSUB231SD = super::Opcode::VFMSUB231SD as u16,
+ VFMSUB231SS = super::Opcode::VFMSUB231SS as u16,
+ VFMSUBADD132PD = super::Opcode::VFMSUBADD132PD as u16,
+ VFMSUBADD132PS = super::Opcode::VFMSUBADD132PS as u16,
+ VFMSUBADD213PD = super::Opcode::VFMSUBADD213PD as u16,
+ VFMSUBADD213PS = super::Opcode::VFMSUBADD213PS as u16,
+ VFMSUBADD231PD = super::Opcode::VFMSUBADD231PD as u16,
+ VFMSUBADD231PS = super::Opcode::VFMSUBADD231PS as u16,
+ VFNMADD132PD = super::Opcode::VFNMADD132PD as u16,
+ VFNMADD132PS = super::Opcode::VFNMADD132PS as u16,
+ VFNMADD132SD = super::Opcode::VFNMADD132SD as u16,
+ VFNMADD132SS = super::Opcode::VFNMADD132SS as u16,
+ VFNMADD213PD = super::Opcode::VFNMADD213PD as u16,
+ VFNMADD213PS = super::Opcode::VFNMADD213PS as u16,
+ VFNMADD213SD = super::Opcode::VFNMADD213SD as u16,
+ VFNMADD213SS = super::Opcode::VFNMADD213SS as u16,
+ VFNMADD231PD = super::Opcode::VFNMADD231PD as u16,
+ VFNMADD231PS = super::Opcode::VFNMADD231PS as u16,
+ VFNMADD231SD = super::Opcode::VFNMADD231SD as u16,
+ VFNMADD231SS = super::Opcode::VFNMADD231SS as u16,
+ VFNMSUB132PD = super::Opcode::VFNMSUB132PD as u16,
+ VFNMSUB132PS = super::Opcode::VFNMSUB132PS as u16,
+ VFNMSUB132SD = super::Opcode::VFNMSUB132SD as u16,
+ VFNMSUB132SS = super::Opcode::VFNMSUB132SS as u16,
+ VFNMSUB213PD = super::Opcode::VFNMSUB213PD as u16,
+ VFNMSUB213PS = super::Opcode::VFNMSUB213PS as u16,
+ VFNMSUB213SD = super::Opcode::VFNMSUB213SD as u16,
+ VFNMSUB213SS = super::Opcode::VFNMSUB213SS as u16,
+ VFNMSUB231PD = super::Opcode::VFNMSUB231PD as u16,
+ VFNMSUB231PS = super::Opcode::VFNMSUB231PS as u16,
+ VFNMSUB231SD = super::Opcode::VFNMSUB231SD as u16,
+ VFNMSUB231SS = super::Opcode::VFNMSUB231SS as u16,
+ VFPCLASSPD = super::Opcode::VFPCLASSPD as u16,
+ VFPCLASSPS = super::Opcode::VFPCLASSPS as u16,
+ VFPCLASSSD = super::Opcode::VFPCLASSSD as u16,
+ VFPCLASSSS = super::Opcode::VFPCLASSSS as u16,
+ VGATHERDPD = super::Opcode::VGATHERDPD as u16,
+ VGATHERDPS = super::Opcode::VGATHERDPS as u16,
+ VGATHERPF0DPD = super::Opcode::VGATHERPF0DPD as u16,
+ VGATHERPF0DPS = super::Opcode::VGATHERPF0DPS as u16,
+ VGATHERPF0QPD = super::Opcode::VGATHERPF0QPD as u16,
+ VGATHERPF0QPS = super::Opcode::VGATHERPF0QPS as u16,
+ VGATHERPF1DPD = super::Opcode::VGATHERPF1DPD as u16,
+ VGATHERPF1DPS = super::Opcode::VGATHERPF1DPS as u16,
+ VGATHERPF1QPD = super::Opcode::VGATHERPF1QPD as u16,
+ VGATHERPF1QPS = super::Opcode::VGATHERPF1QPS as u16,
+ VGATHERQPD = super::Opcode::VGATHERQPD as u16,
+ VGATHERQPS = super::Opcode::VGATHERQPS as u16,
+ VGETEXPPD = super::Opcode::VGETEXPPD as u16,
+ VGETEXPPS = super::Opcode::VGETEXPPS as u16,
+ VGETEXPSD = super::Opcode::VGETEXPSD as u16,
+ VGETEXPSS = super::Opcode::VGETEXPSS as u16,
+ VGETMANTPD = super::Opcode::VGETMANTPD as u16,
+ VGETMANTPS = super::Opcode::VGETMANTPS as u16,
+ VGETMANTSD = super::Opcode::VGETMANTSD as u16,
+ VGETMANTSS = super::Opcode::VGETMANTSS as u16,
+ VGF2P8AFFINEINVQB = super::Opcode::VGF2P8AFFINEINVQB as u16,
+ VGF2P8AFFINEQB = super::Opcode::VGF2P8AFFINEQB as u16,
+ VGF2P8MULB = super::Opcode::VGF2P8MULB as u16,
+ VHADDPD = super::Opcode::VHADDPD as u16,
+ VHADDPS = super::Opcode::VHADDPS as u16,
+ VHSUBPD = super::Opcode::VHSUBPD as u16,
+ VHSUBPS = super::Opcode::VHSUBPS as u16,
+ VINSERTF128 = super::Opcode::VINSERTF128 as u16,
+ VINSERTF32X4 = super::Opcode::VINSERTF32X4 as u16,
+ VINSERTF32X8 = super::Opcode::VINSERTF32X8 as u16,
+ VINSERTF64X2 = super::Opcode::VINSERTF64X2 as u16,
+ VINSERTF64X4 = super::Opcode::VINSERTF64X4 as u16,
+ VINSERTI128 = super::Opcode::VINSERTI128 as u16,
+ VINSERTI32X4 = super::Opcode::VINSERTI32X4 as u16,
+ VINSERTI32X8 = super::Opcode::VINSERTI32X8 as u16,
+ VINSERTI64X2 = super::Opcode::VINSERTI64X2 as u16,
+ VINSERTI64X4 = super::Opcode::VINSERTI64X4 as u16,
+ VINSERTPS = super::Opcode::VINSERTPS as u16,
+ VLDDQU = super::Opcode::VLDDQU as u16,
+ VLDMXCSR = super::Opcode::VLDMXCSR as u16,
+ VMASKMOVDQU = super::Opcode::VMASKMOVDQU as u16,
+ VMASKMOVPD = super::Opcode::VMASKMOVPD as u16,
+ VMASKMOVPS = super::Opcode::VMASKMOVPS as u16,
+ VMAXPD = super::Opcode::VMAXPD as u16,
+ VMAXPS = super::Opcode::VMAXPS as u16,
+ VMAXSD = super::Opcode::VMAXSD as u16,
+ VMAXSS = super::Opcode::VMAXSS as u16,
+ VMCALL = super::Opcode::VMCALL as u16,
+ VMCLEAR = super::Opcode::VMCLEAR as u16,
+ VMFUNC = super::Opcode::VMFUNC as u16,
+ VMINPD = super::Opcode::VMINPD as u16,
+ VMINPS = super::Opcode::VMINPS as u16,
+ VMINSD = super::Opcode::VMINSD as u16,
+ VMINSS = super::Opcode::VMINSS as u16,
+ VMLAUNCH = super::Opcode::VMLAUNCH as u16,
+ VMLOAD = super::Opcode::VMLOAD as u16,
+ VMMCALL = super::Opcode::VMMCALL as u16,
+ VMOVAPD = super::Opcode::VMOVAPD as u16,
+ VMOVAPS = super::Opcode::VMOVAPS as u16,
+ VMOVD = super::Opcode::VMOVD as u16,
+ VMOVDDUP = super::Opcode::VMOVDDUP as u16,
+ VMOVDQA = super::Opcode::VMOVDQA as u16,
+ VMOVDQA32 = super::Opcode::VMOVDQA32 as u16,
+ VMOVDQA64 = super::Opcode::VMOVDQA64 as u16,
+ VMOVDQU = super::Opcode::VMOVDQU as u16,
+ VMOVDQU16 = super::Opcode::VMOVDQU16 as u16,
+ VMOVDQU32 = super::Opcode::VMOVDQU32 as u16,
+ VMOVDQU64 = super::Opcode::VMOVDQU64 as u16,
+ VMOVDQU8 = super::Opcode::VMOVDQU8 as u16,
+ VMOVHLPS = super::Opcode::VMOVHLPS as u16,
+ VMOVHPD = super::Opcode::VMOVHPD as u16,
+ VMOVHPS = super::Opcode::VMOVHPS as u16,
+ VMOVLHPS = super::Opcode::VMOVLHPS as u16,
+ VMOVLPD = super::Opcode::VMOVLPD as u16,
+ VMOVLPS = super::Opcode::VMOVLPS as u16,
+ VMOVMSKPD = super::Opcode::VMOVMSKPD as u16,
+ VMOVMSKPS = super::Opcode::VMOVMSKPS as u16,
+ VMOVNTDQ = super::Opcode::VMOVNTDQ as u16,
+ VMOVNTDQA = super::Opcode::VMOVNTDQA as u16,
+ VMOVNTPD = super::Opcode::VMOVNTPD as u16,
+ VMOVNTPS = super::Opcode::VMOVNTPS as u16,
+ VMOVQ = super::Opcode::VMOVQ as u16,
+ VMOVSD = super::Opcode::VMOVSD as u16,
+ VMOVSHDUP = super::Opcode::VMOVSHDUP as u16,
+ VMOVSLDUP = super::Opcode::VMOVSLDUP as u16,
+ VMOVSS = super::Opcode::VMOVSS as u16,
+ VMOVUPD = super::Opcode::VMOVUPD as u16,
+ VMOVUPS = super::Opcode::VMOVUPS as u16,
+ VMPSADBW = super::Opcode::VMPSADBW as u16,
+ VMPTRLD = super::Opcode::VMPTRLD as u16,
+ VMPTRST = super::Opcode::VMPTRST as u16,
+ VMREAD = super::Opcode::VMREAD as u16,
+ VMRESUME = super::Opcode::VMRESUME as u16,
+ VMRUN = super::Opcode::VMRUN as u16,
+ VMSAVE = super::Opcode::VMSAVE as u16,
+ VMULPD = super::Opcode::VMULPD as u16,
+ VMULPS = super::Opcode::VMULPS as u16,
+ VMULSD = super::Opcode::VMULSD as u16,
+ VMULSS = super::Opcode::VMULSS as u16,
+ VMWRITE = super::Opcode::VMWRITE as u16,
+ VMXOFF = super::Opcode::VMXOFF as u16,
+ VMXON = super::Opcode::VMXON as u16,
+ VORPD = super::Opcode::VORPD as u16,
+ VORPS = super::Opcode::VORPS as u16,
+ VP2INTERSECTD = super::Opcode::VP2INTERSECTD as u16,
+ VP2INTERSECTQ = super::Opcode::VP2INTERSECTQ as u16,
+ VP4DPWSSD = super::Opcode::VP4DPWSSD as u16,
+ VP4DPWSSDS = super::Opcode::VP4DPWSSDS as u16,
+ VPABSB = super::Opcode::VPABSB as u16,
+ VPABSD = super::Opcode::VPABSD as u16,
+ VPABSQ = super::Opcode::VPABSQ as u16,
+ VPABSW = super::Opcode::VPABSW as u16,
+ VPACKSSDW = super::Opcode::VPACKSSDW as u16,
+ VPACKSSWB = super::Opcode::VPACKSSWB as u16,
+ VPACKUSDW = super::Opcode::VPACKUSDW as u16,
+ VPACKUSWB = super::Opcode::VPACKUSWB as u16,
+ VPADDB = super::Opcode::VPADDB as u16,
+ VPADDD = super::Opcode::VPADDD as u16,
+ VPADDQ = super::Opcode::VPADDQ as u16,
+ VPADDSB = super::Opcode::VPADDSB as u16,
+ VPADDSW = super::Opcode::VPADDSW as u16,
+ VPADDUSB = super::Opcode::VPADDUSB as u16,
+ VPADDUSW = super::Opcode::VPADDUSW as u16,
+ VPADDW = super::Opcode::VPADDW as u16,
+ VPALIGNR = super::Opcode::VPALIGNR as u16,
+ VPAND = super::Opcode::VPAND as u16,
+ VPANDD = super::Opcode::VPANDD as u16,
+ VPANDN = super::Opcode::VPANDN as u16,
+ VPANDND = super::Opcode::VPANDND as u16,
+ VPANDNQ = super::Opcode::VPANDNQ as u16,
+ VPANDQ = super::Opcode::VPANDQ as u16,
+ VPAVGB = super::Opcode::VPAVGB as u16,
+ VPAVGW = super::Opcode::VPAVGW as u16,
+ VPBLENDD = super::Opcode::VPBLENDD as u16,
+ VPBLENDMB = super::Opcode::VPBLENDMB as u16,
+ VPBLENDMD = super::Opcode::VPBLENDMD as u16,
+ VPBLENDMQ = super::Opcode::VPBLENDMQ as u16,
+ VPBLENDMW = super::Opcode::VPBLENDMW as u16,
+ VPBLENDVB = super::Opcode::VPBLENDVB as u16,
+ VPBLENDW = super::Opcode::VPBLENDW as u16,
+ VPBROADCASTB = super::Opcode::VPBROADCASTB as u16,
+ VPBROADCASTD = super::Opcode::VPBROADCASTD as u16,
+ VPBROADCASTM = super::Opcode::VPBROADCASTM as u16,
+ VPBROADCASTMB2Q = super::Opcode::VPBROADCASTMB2Q as u16,
+ VPBROADCASTMW2D = super::Opcode::VPBROADCASTMW2D as u16,
+ VPBROADCASTQ = super::Opcode::VPBROADCASTQ as u16,
+ VPBROADCASTW = super::Opcode::VPBROADCASTW as u16,
+ VPCLMULQDQ = super::Opcode::VPCLMULQDQ as u16,
+ VPCMPB = super::Opcode::VPCMPB as u16,
+ VPCMPD = super::Opcode::VPCMPD as u16,
+ VPCMPEQB = super::Opcode::VPCMPEQB as u16,
+ VPCMPEQD = super::Opcode::VPCMPEQD as u16,
+ VPCMPEQQ = super::Opcode::VPCMPEQQ as u16,
+ VPCMPEQW = super::Opcode::VPCMPEQW as u16,
+ VPCMPESTRI = super::Opcode::VPCMPESTRI as u16,
+ VPCMPESTRM = super::Opcode::VPCMPESTRM as u16,
+ VPCMPGTB = super::Opcode::VPCMPGTB as u16,
+ VPCMPGTD = super::Opcode::VPCMPGTD as u16,
+ VPCMPGTQ = super::Opcode::VPCMPGTQ as u16,
+ VPCMPGTW = super::Opcode::VPCMPGTW as u16,
+ VPCMPISTRI = super::Opcode::VPCMPISTRI as u16,
+ VPCMPISTRM = super::Opcode::VPCMPISTRM as u16,
+ VPCMPQ = super::Opcode::VPCMPQ as u16,
+ VPCMPUB = super::Opcode::VPCMPUB as u16,
+ VPCMPUD = super::Opcode::VPCMPUD as u16,
+ VPCMPUQ = super::Opcode::VPCMPUQ as u16,
+ VPCMPUW = super::Opcode::VPCMPUW as u16,
+ VPCMPW = super::Opcode::VPCMPW as u16,
+ VPCOMPRESSB = super::Opcode::VPCOMPRESSB as u16,
+ VPCOMPRESSD = super::Opcode::VPCOMPRESSD as u16,
+ VPCOMPRESSQ = super::Opcode::VPCOMPRESSQ as u16,
+ VPCOMPRESSW = super::Opcode::VPCOMPRESSW as u16,
+ VPCONFLICTD = super::Opcode::VPCONFLICTD as u16,
+ VPCONFLICTQ = super::Opcode::VPCONFLICTQ as u16,
+ VPDPBUSD = super::Opcode::VPDPBUSD as u16,
+ VPDPBUSDS = super::Opcode::VPDPBUSDS as u16,
+ VPDPWSSD = super::Opcode::VPDPWSSD as u16,
+ VPDPWSSDS = super::Opcode::VPDPWSSDS as u16,
+ VPERM2F128 = super::Opcode::VPERM2F128 as u16,
+ VPERM2I128 = super::Opcode::VPERM2I128 as u16,
+ VPERMB = super::Opcode::VPERMB as u16,
+ VPERMD = super::Opcode::VPERMD as u16,
+ VPERMI2B = super::Opcode::VPERMI2B as u16,
+ VPERMI2D = super::Opcode::VPERMI2D as u16,
+ VPERMI2PD = super::Opcode::VPERMI2PD as u16,
+ VPERMI2PS = super::Opcode::VPERMI2PS as u16,
+ VPERMI2Q = super::Opcode::VPERMI2Q as u16,
+ VPERMI2W = super::Opcode::VPERMI2W as u16,
+ VPERMILPD = super::Opcode::VPERMILPD as u16,
+ VPERMILPS = super::Opcode::VPERMILPS as u16,
+ VPERMPD = super::Opcode::VPERMPD as u16,
+ VPERMPS = super::Opcode::VPERMPS as u16,
+ VPERMQ = super::Opcode::VPERMQ as u16,
+ VPERMT2B = super::Opcode::VPERMT2B as u16,
+ VPERMT2D = super::Opcode::VPERMT2D as u16,
+ VPERMT2PD = super::Opcode::VPERMT2PD as u16,
+ VPERMT2PS = super::Opcode::VPERMT2PS as u16,
+ VPERMT2Q = super::Opcode::VPERMT2Q as u16,
+ VPERMT2W = super::Opcode::VPERMT2W as u16,
+ VPERMW = super::Opcode::VPERMW as u16,
+ VPEXPANDB = super::Opcode::VPEXPANDB as u16,
+ VPEXPANDD = super::Opcode::VPEXPANDD as u16,
+ VPEXPANDQ = super::Opcode::VPEXPANDQ as u16,
+ VPEXPANDW = super::Opcode::VPEXPANDW as u16,
+ VPEXTRB = super::Opcode::VPEXTRB as u16,
+ VPEXTRD = super::Opcode::VPEXTRD as u16,
+ VPEXTRQ = super::Opcode::VPEXTRQ as u16,
+ VPEXTRW = super::Opcode::VPEXTRW as u16,
+ VPGATHERDD = super::Opcode::VPGATHERDD as u16,
+ VPGATHERDQ = super::Opcode::VPGATHERDQ as u16,
+ VPGATHERQD = super::Opcode::VPGATHERQD as u16,
+ VPGATHERQQ = super::Opcode::VPGATHERQQ as u16,
+ VPHADDD = super::Opcode::VPHADDD as u16,
+ VPHADDSW = super::Opcode::VPHADDSW as u16,
+ VPHADDW = super::Opcode::VPHADDW as u16,
+ VPHMINPOSUW = super::Opcode::VPHMINPOSUW as u16,
+ VPHSUBD = super::Opcode::VPHSUBD as u16,
+ VPHSUBSW = super::Opcode::VPHSUBSW as u16,
+ VPHSUBW = super::Opcode::VPHSUBW as u16,
+ VPINSRB = super::Opcode::VPINSRB as u16,
+ VPINSRD = super::Opcode::VPINSRD as u16,
+ VPINSRQ = super::Opcode::VPINSRQ as u16,
+ VPINSRW = super::Opcode::VPINSRW as u16,
+ VPLZCNTD = super::Opcode::VPLZCNTD as u16,
+ VPLZCNTQ = super::Opcode::VPLZCNTQ as u16,
+ VPMADD52HUQ = super::Opcode::VPMADD52HUQ as u16,
+ VPMADD52LUQ = super::Opcode::VPMADD52LUQ as u16,
+ VPMADDUBSW = super::Opcode::VPMADDUBSW as u16,
+ VPMADDWD = super::Opcode::VPMADDWD as u16,
+ VPMASKMOVD = super::Opcode::VPMASKMOVD as u16,
+ VPMASKMOVQ = super::Opcode::VPMASKMOVQ as u16,
+ VPMAXSB = super::Opcode::VPMAXSB as u16,
+ VPMAXSD = super::Opcode::VPMAXSD as u16,
+ VPMAXSQ = super::Opcode::VPMAXSQ as u16,
+ VPMAXSW = super::Opcode::VPMAXSW as u16,
+ VPMAXUB = super::Opcode::VPMAXUB as u16,
+ VPMAXUD = super::Opcode::VPMAXUD as u16,
+ VPMAXUQ = super::Opcode::VPMAXUQ as u16,
+ VPMAXUW = super::Opcode::VPMAXUW as u16,
+ VPMINSB = super::Opcode::VPMINSB as u16,
+ VPMINSD = super::Opcode::VPMINSD as u16,
+ VPMINSQ = super::Opcode::VPMINSQ as u16,
+ VPMINSW = super::Opcode::VPMINSW as u16,
+ VPMINUB = super::Opcode::VPMINUB as u16,
+ VPMINUD = super::Opcode::VPMINUD as u16,
+ VPMINUQ = super::Opcode::VPMINUQ as u16,
+ VPMINUW = super::Opcode::VPMINUW as u16,
+ VPMOVB2D = super::Opcode::VPMOVB2D as u16,
+ VPMOVB2M = super::Opcode::VPMOVB2M as u16,
+ VPMOVD2M = super::Opcode::VPMOVD2M as u16,
+ VPMOVDB = super::Opcode::VPMOVDB as u16,
+ VPMOVDW = super::Opcode::VPMOVDW as u16,
+ VPMOVM2B = super::Opcode::VPMOVM2B as u16,
+ VPMOVM2D = super::Opcode::VPMOVM2D as u16,
+ VPMOVM2Q = super::Opcode::VPMOVM2Q as u16,
+ VPMOVM2W = super::Opcode::VPMOVM2W as u16,
+ VPMOVMSKB = super::Opcode::VPMOVMSKB as u16,
+ VPMOVQ2M = super::Opcode::VPMOVQ2M as u16,
+ VPMOVQB = super::Opcode::VPMOVQB as u16,
+ VPMOVQD = super::Opcode::VPMOVQD as u16,
+ VPMOVQW = super::Opcode::VPMOVQW as u16,
+ VPMOVSDB = super::Opcode::VPMOVSDB as u16,
+ VPMOVSDW = super::Opcode::VPMOVSDW as u16,
+ VPMOVSQB = super::Opcode::VPMOVSQB as u16,
+ VPMOVSQD = super::Opcode::VPMOVSQD as u16,
+ VPMOVSQW = super::Opcode::VPMOVSQW as u16,
+ VPMOVSWB = super::Opcode::VPMOVSWB as u16,
+ VPMOVSXBD = super::Opcode::VPMOVSXBD as u16,
+ VPMOVSXBQ = super::Opcode::VPMOVSXBQ as u16,
+ VPMOVSXBW = super::Opcode::VPMOVSXBW as u16,
+ VPMOVSXDQ = super::Opcode::VPMOVSXDQ as u16,
+ VPMOVSXWD = super::Opcode::VPMOVSXWD as u16,
+ VPMOVSXWQ = super::Opcode::VPMOVSXWQ as u16,
+ VPMOVUSDB = super::Opcode::VPMOVUSDB as u16,
+ VPMOVUSDW = super::Opcode::VPMOVUSDW as u16,
+ VPMOVUSQB = super::Opcode::VPMOVUSQB as u16,
+ VPMOVUSQD = super::Opcode::VPMOVUSQD as u16,
+ VPMOVUSQW = super::Opcode::VPMOVUSQW as u16,
+ VPMOVUSWB = super::Opcode::VPMOVUSWB as u16,
+ VPMOVW2M = super::Opcode::VPMOVW2M as u16,
+ VPMOVWB = super::Opcode::VPMOVWB as u16,
+ VPMOVZXBD = super::Opcode::VPMOVZXBD as u16,
+ VPMOVZXBQ = super::Opcode::VPMOVZXBQ as u16,
+ VPMOVZXBW = super::Opcode::VPMOVZXBW as u16,
+ VPMOVZXDQ = super::Opcode::VPMOVZXDQ as u16,
+ VPMOVZXWD = super::Opcode::VPMOVZXWD as u16,
+ VPMOVZXWQ = super::Opcode::VPMOVZXWQ as u16,
+ VPMULDQ = super::Opcode::VPMULDQ as u16,
+ VPMULHRSW = super::Opcode::VPMULHRSW as u16,
+ VPMULHUW = super::Opcode::VPMULHUW as u16,
+ VPMULHW = super::Opcode::VPMULHW as u16,
+ VPMULLD = super::Opcode::VPMULLD as u16,
+ VPMULLQ = super::Opcode::VPMULLQ as u16,
+ VPMULLW = super::Opcode::VPMULLW as u16,
+ VPMULTISHIFTQB = super::Opcode::VPMULTISHIFTQB as u16,
+ VPMULUDQ = super::Opcode::VPMULUDQ as u16,
+ VPOPCNTB = super::Opcode::VPOPCNTB as u16,
+ VPOPCNTD = super::Opcode::VPOPCNTD as u16,
+ VPOPCNTQ = super::Opcode::VPOPCNTQ as u16,
+ VPOPCNTW = super::Opcode::VPOPCNTW as u16,
+ VPOR = super::Opcode::VPOR as u16,
+ VPORD = super::Opcode::VPORD as u16,
+ VPORQ = super::Opcode::VPORQ as u16,
+ VPROLD = super::Opcode::VPROLD as u16,
+ VPROLQ = super::Opcode::VPROLQ as u16,
+ VPROLVD = super::Opcode::VPROLVD as u16,
+ VPROLVQ = super::Opcode::VPROLVQ as u16,
+ VPRORD = super::Opcode::VPRORD as u16,
+ VPRORQ = super::Opcode::VPRORQ as u16,
+ VPRORRD = super::Opcode::VPRORRD as u16,
+ VPRORRQ = super::Opcode::VPRORRQ as u16,
+ VPRORVD = super::Opcode::VPRORVD as u16,
+ VPRORVQ = super::Opcode::VPRORVQ as u16,
+ VPSADBW = super::Opcode::VPSADBW as u16,
+ VPSCATTERDD = super::Opcode::VPSCATTERDD as u16,
+ VPSCATTERDQ = super::Opcode::VPSCATTERDQ as u16,
+ VPSCATTERQD = super::Opcode::VPSCATTERQD as u16,
+ VPSCATTERQQ = super::Opcode::VPSCATTERQQ as u16,
+ VPSHLDD = super::Opcode::VPSHLDD as u16,
+ VPSHLDQ = super::Opcode::VPSHLDQ as u16,
+ VPSHLDVD = super::Opcode::VPSHLDVD as u16,
+ VPSHLDVQ = super::Opcode::VPSHLDVQ as u16,
+ VPSHLDVW = super::Opcode::VPSHLDVW as u16,
+ VPSHLDW = super::Opcode::VPSHLDW as u16,
+ VPSHRDD = super::Opcode::VPSHRDD as u16,
+ VPSHRDQ = super::Opcode::VPSHRDQ as u16,
+ VPSHRDVD = super::Opcode::VPSHRDVD as u16,
+ VPSHRDVQ = super::Opcode::VPSHRDVQ as u16,
+ VPSHRDVW = super::Opcode::VPSHRDVW as u16,
+ VPSHRDW = super::Opcode::VPSHRDW as u16,
+ VPSHUFB = super::Opcode::VPSHUFB as u16,
+ VPSHUFBITQMB = super::Opcode::VPSHUFBITQMB as u16,
+ VPSHUFD = super::Opcode::VPSHUFD as u16,
+ VPSHUFHW = super::Opcode::VPSHUFHW as u16,
+ VPSHUFLW = super::Opcode::VPSHUFLW as u16,
+ VPSIGNB = super::Opcode::VPSIGNB as u16,
+ VPSIGND = super::Opcode::VPSIGND as u16,
+ VPSIGNW = super::Opcode::VPSIGNW as u16,
+ VPSLLD = super::Opcode::VPSLLD as u16,
+ VPSLLDQ = super::Opcode::VPSLLDQ as u16,
+ VPSLLQ = super::Opcode::VPSLLQ as u16,
+ VPSLLVD = super::Opcode::VPSLLVD as u16,
+ VPSLLVQ = super::Opcode::VPSLLVQ as u16,
+ VPSLLVW = super::Opcode::VPSLLVW as u16,
+ VPSLLW = super::Opcode::VPSLLW as u16,
+ VPSRAD = super::Opcode::VPSRAD as u16,
+ VPSRAQ = super::Opcode::VPSRAQ as u16,
+ VPSRAVD = super::Opcode::VPSRAVD as u16,
+ VPSRAVQ = super::Opcode::VPSRAVQ as u16,
+ VPSRAVW = super::Opcode::VPSRAVW as u16,
+ VPSRAW = super::Opcode::VPSRAW as u16,
+ VPSRLD = super::Opcode::VPSRLD as u16,
+ VPSRLDQ = super::Opcode::VPSRLDQ as u16,
+ VPSRLQ = super::Opcode::VPSRLQ as u16,
+ VPSRLVD = super::Opcode::VPSRLVD as u16,
+ VPSRLVQ = super::Opcode::VPSRLVQ as u16,
+ VPSRLVW = super::Opcode::VPSRLVW as u16,
+ VPSRLW = super::Opcode::VPSRLW as u16,
+ VPSUBB = super::Opcode::VPSUBB as u16,
+ VPSUBD = super::Opcode::VPSUBD as u16,
+ VPSUBQ = super::Opcode::VPSUBQ as u16,
+ VPSUBSB = super::Opcode::VPSUBSB as u16,
+ VPSUBSW = super::Opcode::VPSUBSW as u16,
+ VPSUBUSB = super::Opcode::VPSUBUSB as u16,
+ VPSUBUSW = super::Opcode::VPSUBUSW as u16,
+ VPSUBW = super::Opcode::VPSUBW as u16,
+ VPTERNLOGD = super::Opcode::VPTERNLOGD as u16,
+ VPTERNLOGQ = super::Opcode::VPTERNLOGQ as u16,
+ VPTEST = super::Opcode::VPTEST as u16,
+ VPTESTMB = super::Opcode::VPTESTMB as u16,
+ VPTESTMD = super::Opcode::VPTESTMD as u16,
+ VPTESTMQ = super::Opcode::VPTESTMQ as u16,
+ VPTESTMW = super::Opcode::VPTESTMW as u16,
+ VPTESTNMB = super::Opcode::VPTESTNMB as u16,
+ VPTESTNMD = super::Opcode::VPTESTNMD as u16,
+ VPTESTNMQ = super::Opcode::VPTESTNMQ as u16,
+ VPTESTNMW = super::Opcode::VPTESTNMW as u16,
+ VPUNPCKHBW = super::Opcode::VPUNPCKHBW as u16,
+ VPUNPCKHDQ = super::Opcode::VPUNPCKHDQ as u16,
+ VPUNPCKHQDQ = super::Opcode::VPUNPCKHQDQ as u16,
+ VPUNPCKHWD = super::Opcode::VPUNPCKHWD as u16,
+ VPUNPCKLBW = super::Opcode::VPUNPCKLBW as u16,
+ VPUNPCKLDQ = super::Opcode::VPUNPCKLDQ as u16,
+ VPUNPCKLQDQ = super::Opcode::VPUNPCKLQDQ as u16,
+ VPUNPCKLWD = super::Opcode::VPUNPCKLWD as u16,
+ VPXOR = super::Opcode::VPXOR as u16,
+ VPXORD = super::Opcode::VPXORD as u16,
+ VPXORQ = super::Opcode::VPXORQ as u16,
+ VRANGEPD = super::Opcode::VRANGEPD as u16,
+ VRANGEPS = super::Opcode::VRANGEPS as u16,
+ VRANGESD = super::Opcode::VRANGESD as u16,
+ VRANGESS = super::Opcode::VRANGESS as u16,
+ VRCP14PD = super::Opcode::VRCP14PD as u16,
+ VRCP14PS = super::Opcode::VRCP14PS as u16,
+ VRCP14SD = super::Opcode::VRCP14SD as u16,
+ VRCP14SS = super::Opcode::VRCP14SS as u16,
+ VRCP28PD = super::Opcode::VRCP28PD as u16,
+ VRCP28PS = super::Opcode::VRCP28PS as u16,
+ VRCP28SD = super::Opcode::VRCP28SD as u16,
+ VRCP28SS = super::Opcode::VRCP28SS as u16,
+ VRCPPS = super::Opcode::VRCPPS as u16,
+ VRCPSS = super::Opcode::VRCPSS as u16,
+ VREDUCEPD = super::Opcode::VREDUCEPD as u16,
+ VREDUCEPS = super::Opcode::VREDUCEPS as u16,
+ VREDUCESD = super::Opcode::VREDUCESD as u16,
+ VREDUCESS = super::Opcode::VREDUCESS as u16,
+ VRNDSCALEPD = super::Opcode::VRNDSCALEPD as u16,
+ VRNDSCALEPS = super::Opcode::VRNDSCALEPS as u16,
+ VRNDSCALESD = super::Opcode::VRNDSCALESD as u16,
+ VRNDSCALESS = super::Opcode::VRNDSCALESS as u16,
+ VROUNDPD = super::Opcode::VROUNDPD as u16,
+ VROUNDPS = super::Opcode::VROUNDPS as u16,
+ VROUNDSD = super::Opcode::VROUNDSD as u16,
+ VROUNDSS = super::Opcode::VROUNDSS as u16,
+ VRSQRT14PD = super::Opcode::VRSQRT14PD as u16,
+ VRSQRT14PS = super::Opcode::VRSQRT14PS as u16,
+ VRSQRT14SD = super::Opcode::VRSQRT14SD as u16,
+ VRSQRT14SS = super::Opcode::VRSQRT14SS as u16,
+ VRSQRT28PD = super::Opcode::VRSQRT28PD as u16,
+ VRSQRT28PS = super::Opcode::VRSQRT28PS as u16,
+ VRSQRT28SD = super::Opcode::VRSQRT28SD as u16,
+ VRSQRT28SS = super::Opcode::VRSQRT28SS as u16,
+ VRSQRTPS = super::Opcode::VRSQRTPS as u16,
+ VRSQRTSS = super::Opcode::VRSQRTSS as u16,
+ VSCALEDPD = super::Opcode::VSCALEDPD as u16,
+ VSCALEDPS = super::Opcode::VSCALEDPS as u16,
+ VSCALEDSD = super::Opcode::VSCALEDSD as u16,
+ VSCALEDSS = super::Opcode::VSCALEDSS as u16,
+ VSCALEFPD = super::Opcode::VSCALEFPD as u16,
+ VSCALEFPS = super::Opcode::VSCALEFPS as u16,
+ VSCALEFSD = super::Opcode::VSCALEFSD as u16,
+ VSCALEFSS = super::Opcode::VSCALEFSS as u16,
+ VSCATTERDD = super::Opcode::VSCATTERDD as u16,
+ VSCATTERDPD = super::Opcode::VSCATTERDPD as u16,
+ VSCATTERDPS = super::Opcode::VSCATTERDPS as u16,
+ VSCATTERDQ = super::Opcode::VSCATTERDQ as u16,
+ VSCATTERPF0DPD = super::Opcode::VSCATTERPF0DPD as u16,
+ VSCATTERPF0DPS = super::Opcode::VSCATTERPF0DPS as u16,
+ VSCATTERPF0QPD = super::Opcode::VSCATTERPF0QPD as u16,
+ VSCATTERPF0QPS = super::Opcode::VSCATTERPF0QPS as u16,
+ VSCATTERPF1DPD = super::Opcode::VSCATTERPF1DPD as u16,
+ VSCATTERPF1DPS = super::Opcode::VSCATTERPF1DPS as u16,
+ VSCATTERPF1QPD = super::Opcode::VSCATTERPF1QPD as u16,
+ VSCATTERPF1QPS = super::Opcode::VSCATTERPF1QPS as u16,
+ VSCATTERQD = super::Opcode::VSCATTERQD as u16,
+ VSCATTERQPD = super::Opcode::VSCATTERQPD as u16,
+ VSCATTERQPS = super::Opcode::VSCATTERQPS as u16,
+ VSCATTERQQ = super::Opcode::VSCATTERQQ as u16,
+ VSHUFF32X4 = super::Opcode::VSHUFF32X4 as u16,
+ VSHUFF64X2 = super::Opcode::VSHUFF64X2 as u16,
+ VSHUFI32X4 = super::Opcode::VSHUFI32X4 as u16,
+ VSHUFI64X2 = super::Opcode::VSHUFI64X2 as u16,
+ VSHUFPD = super::Opcode::VSHUFPD as u16,
+ VSHUFPS = super::Opcode::VSHUFPS as u16,
+ VSQRTPD = super::Opcode::VSQRTPD as u16,
+ VSQRTPS = super::Opcode::VSQRTPS as u16,
+ VSQRTSD = super::Opcode::VSQRTSD as u16,
+ VSQRTSS = super::Opcode::VSQRTSS as u16,
+ VSTMXCSR = super::Opcode::VSTMXCSR as u16,
+ VSUBPD = super::Opcode::VSUBPD as u16,
+ VSUBPS = super::Opcode::VSUBPS as u16,
+ VSUBSD = super::Opcode::VSUBSD as u16,
+ VSUBSS = super::Opcode::VSUBSS as u16,
+ VTESTPD = super::Opcode::VTESTPD as u16,
+ VTESTPS = super::Opcode::VTESTPS as u16,
+ VUCOMISD = super::Opcode::VUCOMISD as u16,
+ VUCOMISS = super::Opcode::VUCOMISS as u16,
+ VUNPCKHPD = super::Opcode::VUNPCKHPD as u16,
+ VUNPCKHPS = super::Opcode::VUNPCKHPS as u16,
+ VUNPCKLPD = super::Opcode::VUNPCKLPD as u16,
+ VUNPCKLPS = super::Opcode::VUNPCKLPS as u16,
+ VXORPD = super::Opcode::VXORPD as u16,
+ VXORPS = super::Opcode::VXORPS as u16,
+ VZEROALL = super::Opcode::VZEROALL as u16,
+ VZEROUPPER = super::Opcode::VZEROUPPER as u16,
+ WAIT = super::Opcode::WAIT as u16,
+ WBINVD = super::Opcode::WBINVD as u16,
+ WRFSBASE = super::Opcode::WRFSBASE as u16,
+ WRGSBASE = super::Opcode::WRGSBASE as u16,
+ WRMSR = super::Opcode::WRMSR as u16,
+ WRPKRU = super::Opcode::WRPKRU as u16,
+ WRSS = super::Opcode::WRSS as u16,
+ WRUSS = super::Opcode::WRUSS as u16,
+ XABORT = super::Opcode::XABORT as u16,
+ XADD = super::Opcode::XADD as u16,
+ XBEGIN = super::Opcode::XBEGIN as u16,
+ XCHG = super::Opcode::XCHG as u16,
+ XEND = super::Opcode::XEND as u16,
+ XGETBV = super::Opcode::XGETBV as u16,
+ XLAT = super::Opcode::XLAT as u16,
+ XOR = super::Opcode::XOR as u16,
+ XORPD = super::Opcode::XORPD as u16,
+ XORPS = super::Opcode::XORPS as u16,
+ XRESLDTRK = super::Opcode::XRESLDTRK as u16,
+ XRSTOR = super::Opcode::XRSTOR as u16,
+ XRSTORS = super::Opcode::XRSTORS as u16,
+ XRSTORS64 = super::Opcode::XRSTORS64 as u16,
+ XSAVE = super::Opcode::XSAVE as u16,
+ XSAVEC = super::Opcode::XSAVEC as u16,
+ XSAVEC64 = super::Opcode::XSAVEC64 as u16,
+ XSAVEOPT = super::Opcode::XSAVEOPT as u16,
+ XSAVES = super::Opcode::XSAVES as u16,
+ XSAVES64 = super::Opcode::XSAVES64 as u16,
+ XSETBV = super::Opcode::XSETBV as u16,
+ XSUSLDTRK = super::Opcode::XSUSLDTRK as u16,
+ XTEST = super::Opcode::XTEST as u16,
+ }
+}
+
+pub(crate) mod long_mode {
+ #[allow(non_camel_case_types)]
+ #[derive(Copy, Clone, Debug, Eq, PartialEq)]
+ #[non_exhaustive]
+ #[repr(u16)]
+ pub enum Opcode {
+ ADC = super::Opcode::ADC as u16,
+ ADCX = super::Opcode::ADCX as u16,
+ ADD = super::Opcode::ADD as u16,
+ ADDPD = super::Opcode::ADDPD as u16,
+ ADDPS = super::Opcode::ADDPS as u16,
+ ADDSD = super::Opcode::ADDSD as u16,
+ ADDSS = super::Opcode::ADDSS as u16,
+ ADDSUBPD = super::Opcode::ADDSUBPD as u16,
+ ADDSUBPS = super::Opcode::ADDSUBPS as u16,
+ ADOX = super::Opcode::ADOX as u16,
+ AESDEC = super::Opcode::AESDEC as u16,
+ AESDEC128KL = super::Opcode::AESDEC128KL as u16,
+ AESDEC256KL = super::Opcode::AESDEC256KL as u16,
+ AESDECLAST = super::Opcode::AESDECLAST as u16,
+ AESDECWIDE128KL = super::Opcode::AESDECWIDE128KL as u16,
+ AESDECWIDE256KL = super::Opcode::AESDECWIDE256KL as u16,
+ AESENC = super::Opcode::AESENC as u16,
+ AESENC128KL = super::Opcode::AESENC128KL as u16,
+ AESENC256KL = super::Opcode::AESENC256KL as u16,
+ AESENCLAST = super::Opcode::AESENCLAST as u16,
+ AESENCWIDE128KL = super::Opcode::AESENCWIDE128KL as u16,
+ AESENCWIDE256KL = super::Opcode::AESENCWIDE256KL as u16,
+ AESIMC = super::Opcode::AESIMC as u16,
+ AESKEYGENASSIST = super::Opcode::AESKEYGENASSIST as u16,
+ AND = super::Opcode::AND as u16,
+ ANDN = super::Opcode::ANDN as u16,
+ ANDNPD = super::Opcode::ANDNPD as u16,
+ ANDNPS = super::Opcode::ANDNPS as u16,
+ ANDPD = super::Opcode::ANDPD as u16,
+ ANDPS = super::Opcode::ANDPS as u16,
+ BEXTR = super::Opcode::BEXTR as u16,
+ BLENDPD = super::Opcode::BLENDPD as u16,
+ BLENDPS = super::Opcode::BLENDPS as u16,
+ BLENDVPD = super::Opcode::BLENDVPD as u16,
+ BLENDVPS = super::Opcode::BLENDVPS as u16,
+ BLENDW = super::Opcode::BLENDW as u16,
+ BLSI = super::Opcode::BLSI as u16,
+ BLSMSK = super::Opcode::BLSMSK as u16,
+ BLSR = super::Opcode::BLSR as u16,
+ BNDCL = super::Opcode::BNDCL as u16,
+ BNDCN = super::Opcode::BNDCN as u16,
+ BNDCU = super::Opcode::BNDCU as u16,
+ BNDLDX = super::Opcode::BNDLDX as u16,
+ BNDMK = super::Opcode::BNDMK as u16,
+ BNDMOV = super::Opcode::BNDMOV as u16,
+ BNDSTX = super::Opcode::BNDSTX as u16,
+ BSF = super::Opcode::BSF as u16,
+ BSR = super::Opcode::BSR as u16,
+ BSWAP = super::Opcode::BSWAP as u16,
+ BT = super::Opcode::BT as u16,
+ BTC = super::Opcode::BTC as u16,
+ BTR = super::Opcode::BTR as u16,
+ BTS = super::Opcode::BTS as u16,
+ BZHI = super::Opcode::BZHI as u16,
+ CALL = super::Opcode::CALL as u16,
+ CALLF = super::Opcode::CALLF as u16,
+ CBW = super::Opcode::CBW as u16,
+ CDQ = super::Opcode::CDQ as u16,
+ CDQE = super::Opcode::CDQE as u16,
+ CLAC = super::Opcode::CLAC as u16,
+ CLC = super::Opcode::CLC as u16,
+ CLD = super::Opcode::CLD as u16,
+ CLFLUSH = super::Opcode::CLFLUSH as u16,
+ CLFLUSHOPT = super::Opcode::CLFLUSHOPT as u16,
+ CLGI = super::Opcode::CLGI as u16,
+ CLI = super::Opcode::CLI as u16,
+ CLRSSBSY = super::Opcode::CLRSSBSY as u16,
+ CLTS = super::Opcode::CLTS as u16,
+ CLUI = super::Opcode::CLUI as u16,
+ CLWB = super::Opcode::CLWB as u16,
+ CLZERO = super::Opcode::CLZERO as u16,
+ CMC = super::Opcode::CMC as u16,
+ CMOVA = super::Opcode::CMOVA as u16,
+ CMOVB = super::Opcode::CMOVB as u16,
+ CMOVG = super::Opcode::CMOVG as u16,
+ CMOVGE = super::Opcode::CMOVGE as u16,
+ CMOVL = super::Opcode::CMOVL as u16,
+ CMOVLE = super::Opcode::CMOVLE as u16,
+ CMOVNA = super::Opcode::CMOVNA as u16,
+ CMOVNB = super::Opcode::CMOVNB as u16,
+ CMOVNO = super::Opcode::CMOVNO as u16,
+ CMOVNP = super::Opcode::CMOVNP as u16,
+ CMOVNS = super::Opcode::CMOVNS as u16,
+ CMOVNZ = super::Opcode::CMOVNZ as u16,
+ CMOVO = super::Opcode::CMOVO as u16,
+ CMOVP = super::Opcode::CMOVP as u16,
+ CMOVS = super::Opcode::CMOVS as u16,
+ CMOVZ = super::Opcode::CMOVZ as u16,
+ CMP = super::Opcode::CMP as u16,
+ CMPPD = super::Opcode::CMPPD as u16,
+ CMPPS = super::Opcode::CMPPS as u16,
+ CMPS = super::Opcode::CMPS as u16,
+ CMPSD = super::Opcode::CMPSD as u16,
+ CMPSS = super::Opcode::CMPSS as u16,
+ CMPXCHG = super::Opcode::CMPXCHG as u16,
+ CMPXCHG16B = super::Opcode::CMPXCHG16B as u16,
+ CMPXCHG8B = super::Opcode::CMPXCHG8B as u16,
+ COMISD = super::Opcode::COMISD as u16,
+ COMISS = super::Opcode::COMISS as u16,
+ CPUID = super::Opcode::CPUID as u16,
+ CQO = super::Opcode::CQO as u16,
+ CRC32 = super::Opcode::CRC32 as u16,
+ CVTDQ2PD = super::Opcode::CVTDQ2PD as u16,
+ CVTDQ2PS = super::Opcode::CVTDQ2PS as u16,
+ CVTPD2DQ = super::Opcode::CVTPD2DQ as u16,
+ CVTPD2PI = super::Opcode::CVTPD2PI as u16,
+ CVTPD2PS = super::Opcode::CVTPD2PS as u16,
+ CVTPI2PD = super::Opcode::CVTPI2PD as u16,
+ CVTPI2PS = super::Opcode::CVTPI2PS as u16,
+ CVTPS2DQ = super::Opcode::CVTPS2DQ as u16,
+ CVTPS2PD = super::Opcode::CVTPS2PD as u16,
+ CVTPS2PI = super::Opcode::CVTPS2PI as u16,
+ CVTSD2SI = super::Opcode::CVTSD2SI as u16,
+ CVTSD2SS = super::Opcode::CVTSD2SS as u16,
+ CVTSI2SD = super::Opcode::CVTSI2SD as u16,
+ CVTSI2SS = super::Opcode::CVTSI2SS as u16,
+ CVTSS2SD = super::Opcode::CVTSS2SD as u16,
+ CVTSS2SI = super::Opcode::CVTSS2SI as u16,
+ CVTTPD2DQ = super::Opcode::CVTTPD2DQ as u16,
+ CVTTPD2PI = super::Opcode::CVTTPD2PI as u16,
+ CVTTPS2DQ = super::Opcode::CVTTPS2DQ as u16,
+ CVTTPS2PI = super::Opcode::CVTTPS2PI as u16,
+ CVTTSD2SI = super::Opcode::CVTTSD2SI as u16,
+ CVTTSS2SI = super::Opcode::CVTTSS2SI as u16,
+ CWD = super::Opcode::CWD as u16,
+ CWDE = super::Opcode::CWDE as u16,
+ DEC = super::Opcode::DEC as u16,
+ DIV = super::Opcode::DIV as u16,
+ DIVPD = super::Opcode::DIVPD as u16,
+ DIVPS = super::Opcode::DIVPS as u16,
+ DIVSD = super::Opcode::DIVSD as u16,
+ DIVSS = super::Opcode::DIVSS as u16,
+ DPPD = super::Opcode::DPPD as u16,
+ DPPS = super::Opcode::DPPS as u16,
+ EMMS = super::Opcode::EMMS as u16,
+ ENCLS = super::Opcode::ENCLS as u16,
+ ENCLU = super::Opcode::ENCLU as u16,
+ ENCLV = super::Opcode::ENCLV as u16,
+ ENCODEKEY128 = super::Opcode::ENCODEKEY128 as u16,
+ ENCODEKEY256 = super::Opcode::ENCODEKEY256 as u16,
+ ENDBR32 = super::Opcode::ENDBR32 as u16,
+ ENDBR64 = super::Opcode::ENDBR64 as u16,
+ ENQCMD = super::Opcode::ENQCMD as u16,
+ ENQCMDS = super::Opcode::ENQCMDS as u16,
+ ENTER = super::Opcode::ENTER as u16,
+ EXTRACTPS = super::Opcode::EXTRACTPS as u16,
+ EXTRQ = super::Opcode::EXTRQ as u16,
+ F2XM1 = super::Opcode::F2XM1 as u16,
+ FABS = super::Opcode::FABS as u16,
+ FADD = super::Opcode::FADD as u16,
+ FADDP = super::Opcode::FADDP as u16,
+ FBLD = super::Opcode::FBLD as u16,
+ FBSTP = super::Opcode::FBSTP as u16,
+ FCHS = super::Opcode::FCHS as u16,
+ FCMOVB = super::Opcode::FCMOVB as u16,
+ FCMOVBE = super::Opcode::FCMOVBE as u16,
+ FCMOVE = super::Opcode::FCMOVE as u16,
+ FCMOVNB = super::Opcode::FCMOVNB as u16,
+ FCMOVNBE = super::Opcode::FCMOVNBE as u16,
+ FCMOVNE = super::Opcode::FCMOVNE as u16,
+ FCMOVNU = super::Opcode::FCMOVNU as u16,
+ FCMOVU = super::Opcode::FCMOVU as u16,
+ FCOM = super::Opcode::FCOM as u16,
+ FCOMI = super::Opcode::FCOMI as u16,
+ FCOMIP = super::Opcode::FCOMIP as u16,
+ FCOMP = super::Opcode::FCOMP as u16,
+ FCOMPP = super::Opcode::FCOMPP as u16,
+ FCOS = super::Opcode::FCOS as u16,
+ FDECSTP = super::Opcode::FDECSTP as u16,
+ FDISI8087_NOP = super::Opcode::FDISI8087_NOP as u16,
+ FDIV = super::Opcode::FDIV as u16,
+ FDIVP = super::Opcode::FDIVP as u16,
+ FDIVR = super::Opcode::FDIVR as u16,
+ FDIVRP = super::Opcode::FDIVRP as u16,
+ FEMMS = super::Opcode::FEMMS as u16,
+ FENI8087_NOP = super::Opcode::FENI8087_NOP as u16,
+ FFREE = super::Opcode::FFREE as u16,
+ FFREEP = super::Opcode::FFREEP as u16,
+ FIADD = super::Opcode::FIADD as u16,
+ FICOM = super::Opcode::FICOM as u16,
+ FICOMP = super::Opcode::FICOMP as u16,
+ FIDIV = super::Opcode::FIDIV as u16,
+ FIDIVR = super::Opcode::FIDIVR as u16,
+ FILD = super::Opcode::FILD as u16,
+ FIMUL = super::Opcode::FIMUL as u16,
+ FINCSTP = super::Opcode::FINCSTP as u16,
+ FIST = super::Opcode::FIST as u16,
+ FISTP = super::Opcode::FISTP as u16,
+ FISTTP = super::Opcode::FISTTP as u16,
+ FISUB = super::Opcode::FISUB as u16,
+ FISUBR = super::Opcode::FISUBR as u16,
+ FLD = super::Opcode::FLD as u16,
+ FLD1 = super::Opcode::FLD1 as u16,
+ FLDCW = super::Opcode::FLDCW as u16,
+ FLDENV = super::Opcode::FLDENV as u16,
+ FLDL2E = super::Opcode::FLDL2E as u16,
+ FLDL2T = super::Opcode::FLDL2T as u16,
+ FLDLG2 = super::Opcode::FLDLG2 as u16,
+ FLDLN2 = super::Opcode::FLDLN2 as u16,
+ FLDPI = super::Opcode::FLDPI as u16,
+ FLDZ = super::Opcode::FLDZ as u16,
+ FMUL = super::Opcode::FMUL as u16,
+ FMULP = super::Opcode::FMULP as u16,
+ FNCLEX = super::Opcode::FNCLEX as u16,
+ FNINIT = super::Opcode::FNINIT as u16,
+ FNOP = super::Opcode::FNOP as u16,
+ FNSAVE = super::Opcode::FNSAVE as u16,
+ FNSTCW = super::Opcode::FNSTCW as u16,
+ FNSTENV = super::Opcode::FNSTENV as u16,
+ FNSTOR = super::Opcode::FNSTOR as u16,
+ FNSTSW = super::Opcode::FNSTSW as u16,
+ FPATAN = super::Opcode::FPATAN as u16,
+ FPREM = super::Opcode::FPREM as u16,
+ FPREM1 = super::Opcode::FPREM1 as u16,
+ FPTAN = super::Opcode::FPTAN as u16,
+ FRNDINT = super::Opcode::FRNDINT as u16,
+ FRSTOR = super::Opcode::FRSTOR as u16,
+ FSCALE = super::Opcode::FSCALE as u16,
+ FSETPM287_NOP = super::Opcode::FSETPM287_NOP as u16,
+ FSIN = super::Opcode::FSIN as u16,
+ FSINCOS = super::Opcode::FSINCOS as u16,
+ FSQRT = super::Opcode::FSQRT as u16,
+ FST = super::Opcode::FST as u16,
+ FSTP = super::Opcode::FSTP as u16,
+ FSTPNCE = super::Opcode::FSTPNCE as u16,
+ FSUB = super::Opcode::FSUB as u16,
+ FSUBP = super::Opcode::FSUBP as u16,
+ FSUBR = super::Opcode::FSUBR as u16,
+ FSUBRP = super::Opcode::FSUBRP as u16,
+ FTST = super::Opcode::FTST as u16,
+ FUCOM = super::Opcode::FUCOM as u16,
+ FUCOMI = super::Opcode::FUCOMI as u16,
+ FUCOMIP = super::Opcode::FUCOMIP as u16,
+ FUCOMP = super::Opcode::FUCOMP as u16,
+ FUCOMPP = super::Opcode::FUCOMPP as u16,
+ FXAM = super::Opcode::FXAM as u16,
+ FXCH = super::Opcode::FXCH as u16,
+ FXRSTOR = super::Opcode::FXRSTOR as u16,
+ FXSAVE = super::Opcode::FXSAVE as u16,
+ FXTRACT = super::Opcode::FXTRACT as u16,
+ FYL2X = super::Opcode::FYL2X as u16,
+ FYL2XP1 = super::Opcode::FYL2XP1 as u16,
+ GETSEC = super::Opcode::GETSEC as u16,
+ GF2P8AFFINEINVQB = super::Opcode::GF2P8AFFINEINVQB as u16,
+ GF2P8AFFINEQB = super::Opcode::GF2P8AFFINEQB as u16,
+ GF2P8MULB = super::Opcode::GF2P8MULB as u16,
+ HADDPD = super::Opcode::HADDPD as u16,
+ HADDPS = super::Opcode::HADDPS as u16,
+ HLT = super::Opcode::HLT as u16,
+ HRESET = super::Opcode::HRESET as u16,
+ HSUBPD = super::Opcode::HSUBPD as u16,
+ HSUBPS = super::Opcode::HSUBPS as u16,
+ IDIV = super::Opcode::IDIV as u16,
+ IMUL = super::Opcode::IMUL as u16,
+ IN = super::Opcode::IN as u16,
+ INC = super::Opcode::INC as u16,
+ INCSSP = super::Opcode::INCSSP as u16,
+ INS = super::Opcode::INS as u16,
+ INSERTPS = super::Opcode::INSERTPS as u16,
+ INSERTQ = super::Opcode::INSERTQ as u16,
+ INT = super::Opcode::INT as u16,
+ INTO = super::Opcode::INTO as u16,
+ Invalid = super::Opcode::Invalid as u16,
+ INVD = super::Opcode::INVD as u16,
+ INVEPT = super::Opcode::INVEPT as u16,
+ INVLPG = super::Opcode::INVLPG as u16,
+ INVLPGA = super::Opcode::INVLPGA as u16,
+ INVLPGB = super::Opcode::INVLPGB as u16,
+ INVPCID = super::Opcode::INVPCID as u16,
+ INVVPID = super::Opcode::INVVPID as u16,
+ IRET = super::Opcode::IRET as u16,
+ IRETD = super::Opcode::IRETD as u16,
+ IRETQ = super::Opcode::IRETQ as u16,
+ JA = super::Opcode::JA as u16,
+ JB = super::Opcode::JB as u16,
+ JG = super::Opcode::JG as u16,
+ JGE = super::Opcode::JGE as u16,
+ JL = super::Opcode::JL as u16,
+ JLE = super::Opcode::JLE as u16,
+ JMP = super::Opcode::JMP as u16,
+ JMPE = super::Opcode::JMPE as u16,
+ JMPF = super::Opcode::JMPF as u16,
+ JNA = super::Opcode::JNA as u16,
+ JNB = super::Opcode::JNB as u16,
+ JNO = super::Opcode::JNO as u16,
+ JNP = super::Opcode::JNP as u16,
+ JNS = super::Opcode::JNS as u16,
+ JNZ = super::Opcode::JNZ as u16,
+ JO = super::Opcode::JO as u16,
+ JP = super::Opcode::JP as u16,
+ JRCXZ = super::Opcode::JRCXZ as u16,
+ JS = super::Opcode::JS as u16,
+ JZ = super::Opcode::JZ as u16,
+ KADDB = super::Opcode::KADDB as u16,
+ KADDD = super::Opcode::KADDD as u16,
+ KADDQ = super::Opcode::KADDQ as u16,
+ KADDW = super::Opcode::KADDW as u16,
+ KANDB = super::Opcode::KANDB as u16,
+ KANDD = super::Opcode::KANDD as u16,
+ KANDNB = super::Opcode::KANDNB as u16,
+ KANDND = super::Opcode::KANDND as u16,
+ KANDNQ = super::Opcode::KANDNQ as u16,
+ KANDNW = super::Opcode::KANDNW as u16,
+ KANDQ = super::Opcode::KANDQ as u16,
+ KANDW = super::Opcode::KANDW as u16,
+ KMOVB = super::Opcode::KMOVB as u16,
+ KMOVD = super::Opcode::KMOVD as u16,
+ KMOVQ = super::Opcode::KMOVQ as u16,
+ KMOVW = super::Opcode::KMOVW as u16,
+ KNOTB = super::Opcode::KNOTB as u16,
+ KNOTD = super::Opcode::KNOTD as u16,
+ KNOTQ = super::Opcode::KNOTQ as u16,
+ KNOTW = super::Opcode::KNOTW as u16,
+ KORB = super::Opcode::KORB as u16,
+ KORD = super::Opcode::KORD as u16,
+ KORQ = super::Opcode::KORQ as u16,
+ KORTESTB = super::Opcode::KORTESTB as u16,
+ KORTESTD = super::Opcode::KORTESTD as u16,
+ KORTESTQ = super::Opcode::KORTESTQ as u16,
+ KORTESTW = super::Opcode::KORTESTW as u16,
+ KORW = super::Opcode::KORW as u16,
+ KSHIFTLB = super::Opcode::KSHIFTLB as u16,
+ KSHIFTLD = super::Opcode::KSHIFTLD as u16,
+ KSHIFTLQ = super::Opcode::KSHIFTLQ as u16,
+ KSHIFTLW = super::Opcode::KSHIFTLW as u16,
+ KSHIFTRB = super::Opcode::KSHIFTRB as u16,
+ KSHIFTRD = super::Opcode::KSHIFTRD as u16,
+ KSHIFTRQ = super::Opcode::KSHIFTRQ as u16,
+ KSHIFTRW = super::Opcode::KSHIFTRW as u16,
+ KTESTB = super::Opcode::KTESTB as u16,
+ KTESTD = super::Opcode::KTESTD as u16,
+ KTESTQ = super::Opcode::KTESTQ as u16,
+ KTESTW = super::Opcode::KTESTW as u16,
+ KUNPCKBW = super::Opcode::KUNPCKBW as u16,
+ KUNPCKDQ = super::Opcode::KUNPCKDQ as u16,
+ KUNPCKWD = super::Opcode::KUNPCKWD as u16,
+ KXNORB = super::Opcode::KXNORB as u16,
+ KXNORD = super::Opcode::KXNORD as u16,
+ KXNORQ = super::Opcode::KXNORQ as u16,
+ KXNORW = super::Opcode::KXNORW as u16,
+ KXORB = super::Opcode::KXORB as u16,
+ KXORD = super::Opcode::KXORD as u16,
+ KXORQ = super::Opcode::KXORQ as u16,
+ KXORW = super::Opcode::KXORW as u16,
+ LAHF = super::Opcode::LAHF as u16,
+ LAR = super::Opcode::LAR as u16,
+ LDDQU = super::Opcode::LDDQU as u16,
+ LDMXCSR = super::Opcode::LDMXCSR as u16,
+ LDS = super::Opcode::LDS as u16,
+ LEA = super::Opcode::LEA as u16,
+ LEAVE = super::Opcode::LEAVE as u16,
+ LES = super::Opcode::LES as u16,
+ LFENCE = super::Opcode::LFENCE as u16,
+ LFS = super::Opcode::LFS as u16,
+ LGDT = super::Opcode::LGDT as u16,
+ LGS = super::Opcode::LGS as u16,
+ LIDT = super::Opcode::LIDT as u16,
+ LLDT = super::Opcode::LLDT as u16,
+ LMSW = super::Opcode::LMSW as u16,
+ LOADIWKEY = super::Opcode::LOADIWKEY as u16,
+ LODS = super::Opcode::LODS as u16,
+ LOOP = super::Opcode::LOOP as u16,
+ LOOPNZ = super::Opcode::LOOPNZ as u16,
+ LOOPZ = super::Opcode::LOOPZ as u16,
+ LSL = super::Opcode::LSL as u16,
+ LSS = super::Opcode::LSS as u16,
+ LTR = super::Opcode::LTR as u16,
+ LZCNT = super::Opcode::LZCNT as u16,
+ MASKMOVDQU = super::Opcode::MASKMOVDQU as u16,
+ MASKMOVQ = super::Opcode::MASKMOVQ as u16,
+ MAXPD = super::Opcode::MAXPD as u16,
+ MAXPS = super::Opcode::MAXPS as u16,
+ MAXSD = super::Opcode::MAXSD as u16,
+ MAXSS = super::Opcode::MAXSS as u16,
+ MFENCE = super::Opcode::MFENCE as u16,
+ MINPD = super::Opcode::MINPD as u16,
+ MINPS = super::Opcode::MINPS as u16,
+ MINSD = super::Opcode::MINSD as u16,
+ MINSS = super::Opcode::MINSS as u16,
+ MONITOR = super::Opcode::MONITOR as u16,
+ MONITORX = super::Opcode::MONITORX as u16,
+ MOV = super::Opcode::MOV as u16,
+ MOVAPD = super::Opcode::MOVAPD as u16,
+ MOVAPS = super::Opcode::MOVAPS as u16,
+ MOVBE = super::Opcode::MOVBE as u16,
+ MOVD = super::Opcode::MOVD as u16,
+ MOVDDUP = super::Opcode::MOVDDUP as u16,
+ MOVDIR64B = super::Opcode::MOVDIR64B as u16,
+ MOVDIRI = super::Opcode::MOVDIRI as u16,
+ MOVDQ2Q = super::Opcode::MOVDQ2Q as u16,
+ MOVDQA = super::Opcode::MOVDQA as u16,
+ MOVDQU = super::Opcode::MOVDQU as u16,
+ MOVHLPS = super::Opcode::MOVHLPS as u16,
+ MOVHPD = super::Opcode::MOVHPD as u16,
+ MOVHPS = super::Opcode::MOVHPS as u16,
+ MOVLHPS = super::Opcode::MOVLHPS as u16,
+ MOVLPD = super::Opcode::MOVLPD as u16,
+ MOVLPS = super::Opcode::MOVLPS as u16,
+ MOVMSKPD = super::Opcode::MOVMSKPD as u16,
+ MOVMSKPS = super::Opcode::MOVMSKPS as u16,
+ MOVNTDQ = super::Opcode::MOVNTDQ as u16,
+ MOVNTDQA = super::Opcode::MOVNTDQA as u16,
+ MOVNTI = super::Opcode::MOVNTI as u16,
+ MOVNTPD = super::Opcode::MOVNTPD as u16,
+ MOVNTPS = super::Opcode::MOVNTPS as u16,
+ MOVNTQ = super::Opcode::MOVNTQ as u16,
+ MOVNTSD = super::Opcode::MOVNTSD as u16,
+ MOVNTSS = super::Opcode::MOVNTSS as u16,
+ MOVQ = super::Opcode::MOVQ as u16,
+ MOVQ2DQ = super::Opcode::MOVQ2DQ as u16,
+ MOVS = super::Opcode::MOVS as u16,
+ MOVSD = super::Opcode::MOVSD as u16,
+ MOVSHDUP = super::Opcode::MOVSHDUP as u16,
+ MOVSLDUP = super::Opcode::MOVSLDUP as u16,
+ MOVSS = super::Opcode::MOVSS as u16,
+ MOVSX = super::Opcode::MOVSX as u16,
+ MOVSXD = super::Opcode::MOVSXD as u16,
+ MOVUPD = super::Opcode::MOVUPD as u16,
+ MOVUPS = super::Opcode::MOVUPS as u16,
+ MOVZX = super::Opcode::MOVZX as u16,
+ MPSADBW = super::Opcode::MPSADBW as u16,
+ MUL = super::Opcode::MUL as u16,
+ MULPD = super::Opcode::MULPD as u16,
+ MULPS = super::Opcode::MULPS as u16,
+ MULSD = super::Opcode::MULSD as u16,
+ MULSS = super::Opcode::MULSS as u16,
+ MULX = super::Opcode::MULX as u16,
+ MWAIT = super::Opcode::MWAIT as u16,
+ MWAITX = super::Opcode::MWAITX as u16,
+ NEG = super::Opcode::NEG as u16,
+ NOP = super::Opcode::NOP as u16,
+ NOT = super::Opcode::NOT as u16,
+ OR = super::Opcode::OR as u16,
+ ORPD = super::Opcode::ORPD as u16,
+ ORPS = super::Opcode::ORPS as u16,
+ OUT = super::Opcode::OUT as u16,
+ OUTS = super::Opcode::OUTS as u16,
+ PABSB = super::Opcode::PABSB as u16,
+ PABSD = super::Opcode::PABSD as u16,
+ PABSW = super::Opcode::PABSW as u16,
+ PACKSSDW = super::Opcode::PACKSSDW as u16,
+ PACKSSWB = super::Opcode::PACKSSWB as u16,
+ PACKUSDW = super::Opcode::PACKUSDW as u16,
+ PACKUSWB = super::Opcode::PACKUSWB as u16,
+ PADDB = super::Opcode::PADDB as u16,
+ PADDD = super::Opcode::PADDD as u16,
+ PADDQ = super::Opcode::PADDQ as u16,
+ PADDSB = super::Opcode::PADDSB as u16,
+ PADDSW = super::Opcode::PADDSW as u16,
+ PADDUSB = super::Opcode::PADDUSB as u16,
+ PADDUSW = super::Opcode::PADDUSW as u16,
+ PADDW = super::Opcode::PADDW as u16,
+ PALIGNR = super::Opcode::PALIGNR as u16,
+ PAND = super::Opcode::PAND as u16,
+ PANDN = super::Opcode::PANDN as u16,
+ PAVGB = super::Opcode::PAVGB as u16,
+ PAVGUSB = super::Opcode::PAVGUSB as u16,
+ PAVGW = super::Opcode::PAVGW as u16,
+ PBLENDVB = super::Opcode::PBLENDVB as u16,
+ PBLENDW = super::Opcode::PBLENDW as u16,
+ PCLMULQDQ = super::Opcode::PCLMULQDQ as u16,
+ PCMPEQB = super::Opcode::PCMPEQB as u16,
+ PCMPEQD = super::Opcode::PCMPEQD as u16,
+ PCMPEQQ = super::Opcode::PCMPEQQ as u16,
+ PCMPEQW = super::Opcode::PCMPEQW as u16,
+ PCMPESTRI = super::Opcode::PCMPESTRI as u16,
+ PCMPESTRM = super::Opcode::PCMPESTRM as u16,
+ PCMPGTB = super::Opcode::PCMPGTB as u16,
+ PCMPGTD = super::Opcode::PCMPGTD as u16,
+ PCMPGTQ = super::Opcode::PCMPGTQ as u16,
+ PCMPGTW = super::Opcode::PCMPGTW as u16,
+ PCMPISTRI = super::Opcode::PCMPISTRI as u16,
+ PCMPISTRM = super::Opcode::PCMPISTRM as u16,
+ PCONFIG = super::Opcode::PCONFIG as u16,
+ PDEP = super::Opcode::PDEP as u16,
+ PEXT = super::Opcode::PEXT as u16,
+ PEXTRB = super::Opcode::PEXTRB as u16,
+ PEXTRD = super::Opcode::PEXTRD as u16,
+ PEXTRQ = super::Opcode::PEXTRQ as u16,
+ PEXTRW = super::Opcode::PEXTRW as u16,
+ PF2ID = super::Opcode::PF2ID as u16,
+ PF2IW = super::Opcode::PF2IW as u16,
+ PFACC = super::Opcode::PFACC as u16,
+ PFADD = super::Opcode::PFADD as u16,
+ PFCMPEQ = super::Opcode::PFCMPEQ as u16,
+ PFCMPGE = super::Opcode::PFCMPGE as u16,
+ PFCMPGT = super::Opcode::PFCMPGT as u16,
+ PFMAX = super::Opcode::PFMAX as u16,
+ PFMIN = super::Opcode::PFMIN as u16,
+ PFMUL = super::Opcode::PFMUL as u16,
+ PFMULHRW = super::Opcode::PFMULHRW as u16,
+ PFNACC = super::Opcode::PFNACC as u16,
+ PFPNACC = super::Opcode::PFPNACC as u16,
+ PFRCP = super::Opcode::PFRCP as u16,
+ PFRCPIT1 = super::Opcode::PFRCPIT1 as u16,
+ PFRCPIT2 = super::Opcode::PFRCPIT2 as u16,
+ PFRSQIT1 = super::Opcode::PFRSQIT1 as u16,
+ PFRSQRT = super::Opcode::PFRSQRT as u16,
+ PFSUB = super::Opcode::PFSUB as u16,
+ PFSUBR = super::Opcode::PFSUBR as u16,
+ PHADDD = super::Opcode::PHADDD as u16,
+ PHADDSW = super::Opcode::PHADDSW as u16,
+ PHADDW = super::Opcode::PHADDW as u16,
+ PHMINPOSUW = super::Opcode::PHMINPOSUW as u16,
+ PHSUBD = super::Opcode::PHSUBD as u16,
+ PHSUBSW = super::Opcode::PHSUBSW as u16,
+ PHSUBW = super::Opcode::PHSUBW as u16,
+ PI2FD = super::Opcode::PI2FD as u16,
+ PI2FW = super::Opcode::PI2FW as u16,
+ PINSRB = super::Opcode::PINSRB as u16,
+ PINSRD = super::Opcode::PINSRD as u16,
+ PINSRQ = super::Opcode::PINSRQ as u16,
+ PINSRW = super::Opcode::PINSRW as u16,
+ PMADDUBSW = super::Opcode::PMADDUBSW as u16,
+ PMADDWD = super::Opcode::PMADDWD as u16,
+ PMAXSB = super::Opcode::PMAXSB as u16,
+ PMAXSD = super::Opcode::PMAXSD as u16,
+ PMAXSW = super::Opcode::PMAXSW as u16,
+ PMAXUB = super::Opcode::PMAXUB as u16,
+ PMAXUD = super::Opcode::PMAXUD as u16,
+ PMAXUW = super::Opcode::PMAXUW as u16,
+ PMINSB = super::Opcode::PMINSB as u16,
+ PMINSD = super::Opcode::PMINSD as u16,
+ PMINSW = super::Opcode::PMINSW as u16,
+ PMINUB = super::Opcode::PMINUB as u16,
+ PMINUD = super::Opcode::PMINUD as u16,
+ PMINUW = super::Opcode::PMINUW as u16,
+ PMOVMSKB = super::Opcode::PMOVMSKB as u16,
+ PMOVSXBD = super::Opcode::PMOVSXBD as u16,
+ PMOVSXBQ = super::Opcode::PMOVSXBQ as u16,
+ PMOVSXBW = super::Opcode::PMOVSXBW as u16,
+ PMOVSXDQ = super::Opcode::PMOVSXDQ as u16,
+ PMOVSXWD = super::Opcode::PMOVSXWD as u16,
+ PMOVSXWQ = super::Opcode::PMOVSXWQ as u16,
+ PMOVZXBD = super::Opcode::PMOVZXBD as u16,
+ PMOVZXBQ = super::Opcode::PMOVZXBQ as u16,
+ PMOVZXBW = super::Opcode::PMOVZXBW as u16,
+ PMOVZXDQ = super::Opcode::PMOVZXDQ as u16,
+ PMOVZXWD = super::Opcode::PMOVZXWD as u16,
+ PMOVZXWQ = super::Opcode::PMOVZXWQ as u16,
+ PMULDQ = super::Opcode::PMULDQ as u16,
+ PMULHRSW = super::Opcode::PMULHRSW as u16,
+ PMULHRW = super::Opcode::PMULHRW as u16,
+ PMULHUW = super::Opcode::PMULHUW as u16,
+ PMULHW = super::Opcode::PMULHW as u16,
+ PMULLD = super::Opcode::PMULLD as u16,
+ PMULLW = super::Opcode::PMULLW as u16,
+ PMULUDQ = super::Opcode::PMULUDQ as u16,
+ POP = super::Opcode::POP as u16,
+ POPCNT = super::Opcode::POPCNT as u16,
+ POPF = super::Opcode::POPF as u16,
+ POR = super::Opcode::POR as u16,
+ PREFETCH0 = super::Opcode::PREFETCH0 as u16,
+ PREFETCH1 = super::Opcode::PREFETCH1 as u16,
+ PREFETCH2 = super::Opcode::PREFETCH2 as u16,
+ PREFETCHNTA = super::Opcode::PREFETCHNTA as u16,
+ PREFETCHW = super::Opcode::PREFETCHW as u16,
+ PSADBW = super::Opcode::PSADBW as u16,
+ PSHUFB = super::Opcode::PSHUFB as u16,
+ PSHUFD = super::Opcode::PSHUFD as u16,
+ PSHUFHW = super::Opcode::PSHUFHW as u16,
+ PSHUFLW = super::Opcode::PSHUFLW as u16,
+ PSHUFW = super::Opcode::PSHUFW as u16,
+ PSIGNB = super::Opcode::PSIGNB as u16,
+ PSIGND = super::Opcode::PSIGND as u16,
+ PSIGNW = super::Opcode::PSIGNW as u16,
+ PSLLD = super::Opcode::PSLLD as u16,
+ PSLLDQ = super::Opcode::PSLLDQ as u16,
+ PSLLQ = super::Opcode::PSLLQ as u16,
+ PSLLW = super::Opcode::PSLLW as u16,
+ PSMASH = super::Opcode::PSMASH as u16,
+ PSRAD = super::Opcode::PSRAD as u16,
+ PSRAW = super::Opcode::PSRAW as u16,
+ PSRLD = super::Opcode::PSRLD as u16,
+ PSRLDQ = super::Opcode::PSRLDQ as u16,
+ PSRLQ = super::Opcode::PSRLQ as u16,
+ PSRLW = super::Opcode::PSRLW as u16,
+ PSUBB = super::Opcode::PSUBB as u16,
+ PSUBD = super::Opcode::PSUBD as u16,
+ PSUBQ = super::Opcode::PSUBQ as u16,
+ PSUBSB = super::Opcode::PSUBSB as u16,
+ PSUBSW = super::Opcode::PSUBSW as u16,
+ PSUBUSB = super::Opcode::PSUBUSB as u16,
+ PSUBUSW = super::Opcode::PSUBUSW as u16,
+ PSUBW = super::Opcode::PSUBW as u16,
+ PSWAPD = super::Opcode::PSWAPD as u16,
+ PTEST = super::Opcode::PTEST as u16,
+ PTWRITE = super::Opcode::PTWRITE as u16,
+ PUNPCKHBW = super::Opcode::PUNPCKHBW as u16,
+ PUNPCKHDQ = super::Opcode::PUNPCKHDQ as u16,
+ PUNPCKHQDQ = super::Opcode::PUNPCKHQDQ as u16,
+ PUNPCKHWD = super::Opcode::PUNPCKHWD as u16,
+ PUNPCKLBW = super::Opcode::PUNPCKLBW as u16,
+ PUNPCKLDQ = super::Opcode::PUNPCKLDQ as u16,
+ PUNPCKLQDQ = super::Opcode::PUNPCKLQDQ as u16,
+ PUNPCKLWD = super::Opcode::PUNPCKLWD as u16,
+ PUSH = super::Opcode::PUSH as u16,
+ PUSHF = super::Opcode::PUSHF as u16,
+ PVALIDATE = super::Opcode::PVALIDATE as u16,
+ PXOR = super::Opcode::PXOR as u16,
+ RCL = super::Opcode::RCL as u16,
+ RCPPS = super::Opcode::RCPPS as u16,
+ RCPSS = super::Opcode::RCPSS as u16,
+ RCR = super::Opcode::RCR as u16,
+ RDFSBASE = super::Opcode::RDFSBASE as u16,
+ RDGSBASE = super::Opcode::RDGSBASE as u16,
+ RDMSR = super::Opcode::RDMSR as u16,
+ RDPID = super::Opcode::RDPID as u16,
+ RDPKRU = super::Opcode::RDPKRU as u16,
+ RDPMC = super::Opcode::RDPMC as u16,
+ RDPRU = super::Opcode::RDPRU as u16,
+ RDRAND = super::Opcode::RDRAND as u16,
+ RDSEED = super::Opcode::RDSEED as u16,
+ RDTSC = super::Opcode::RDTSC as u16,
+ RDTSCP = super::Opcode::RDTSCP as u16,
+ RETF = super::Opcode::RETF as u16,
+ RETURN = super::Opcode::RETURN as u16,
+ RMPADJUST = super::Opcode::RMPADJUST as u16,
+ RMPUPDATE = super::Opcode::RMPUPDATE as u16,
+ ROL = super::Opcode::ROL as u16,
+ ROR = super::Opcode::ROR as u16,
+ RORX = super::Opcode::RORX as u16,
+ ROUNDPD = super::Opcode::ROUNDPD as u16,
+ ROUNDPS = super::Opcode::ROUNDPS as u16,
+ ROUNDSD = super::Opcode::ROUNDSD as u16,
+ ROUNDSS = super::Opcode::ROUNDSS as u16,
+ RSM = super::Opcode::RSM as u16,
+ RSQRTPS = super::Opcode::RSQRTPS as u16,
+ RSQRTSS = super::Opcode::RSQRTSS as u16,
+ RSTORSSP = super::Opcode::RSTORSSP as u16,
+ SAHF = super::Opcode::SAHF as u16,
+ SAL = super::Opcode::SAL as u16,
+ SALC = super::Opcode::SALC as u16,
+ SAR = super::Opcode::SAR as u16,
+ SARX = super::Opcode::SARX as u16,
+ SAVEPREVSSP = super::Opcode::SAVEPREVSSP as u16,
+ SBB = super::Opcode::SBB as u16,
+ SCAS = super::Opcode::SCAS as u16,
+ SEAMCALL = super::Opcode::SEAMCALL as u16,
+ SEAMOPS = super::Opcode::SEAMOPS as u16,
+ SEAMRET = super::Opcode::SEAMRET as u16,
+ SENDUIPI = super::Opcode::SENDUIPI as u16,
+ SETA = super::Opcode::SETA as u16,
+ SETAE = super::Opcode::SETAE as u16,
+ SETB = super::Opcode::SETB as u16,
+ SETBE = super::Opcode::SETBE as u16,
+ SETG = super::Opcode::SETG as u16,
+ SETGE = super::Opcode::SETGE as u16,
+ SETL = super::Opcode::SETL as u16,
+ SETLE = super::Opcode::SETLE as u16,
+ SETNO = super::Opcode::SETNO as u16,
+ SETNP = super::Opcode::SETNP as u16,
+ SETNS = super::Opcode::SETNS as u16,
+ SETNZ = super::Opcode::SETNZ as u16,
+ SETO = super::Opcode::SETO as u16,
+ SETP = super::Opcode::SETP as u16,
+ SETS = super::Opcode::SETS as u16,
+ SETSSBSY = super::Opcode::SETSSBSY as u16,
+ SETZ = super::Opcode::SETZ as u16,
+ SFENCE = super::Opcode::SFENCE as u16,
+ SGDT = super::Opcode::SGDT as u16,
+ SHA1MSG1 = super::Opcode::SHA1MSG1 as u16,
+ SHA1MSG2 = super::Opcode::SHA1MSG2 as u16,
+ SHA1NEXTE = super::Opcode::SHA1NEXTE as u16,
+ SHA1RNDS4 = super::Opcode::SHA1RNDS4 as u16,
+ SHA256MSG1 = super::Opcode::SHA256MSG1 as u16,
+ SHA256MSG2 = super::Opcode::SHA256MSG2 as u16,
+ SHA256RNDS2 = super::Opcode::SHA256RNDS2 as u16,
+ SHL = super::Opcode::SHL as u16,
+ SHLD = super::Opcode::SHLD as u16,
+ SHLX = super::Opcode::SHLX as u16,
+ SHR = super::Opcode::SHR as u16,
+ SHRD = super::Opcode::SHRD as u16,
+ SHRX = super::Opcode::SHRX as u16,
+ SHUFPD = super::Opcode::SHUFPD as u16,
+ SHUFPS = super::Opcode::SHUFPS as u16,
+ SIDT = super::Opcode::SIDT as u16,
+ SKINIT = super::Opcode::SKINIT as u16,
+ SLDT = super::Opcode::SLDT as u16,
+ SLHD = super::Opcode::SLHD as u16,
+ SMSW = super::Opcode::SMSW as u16,
+ SQRTPD = super::Opcode::SQRTPD as u16,
+ SQRTPS = super::Opcode::SQRTPS as u16,
+ SQRTSD = super::Opcode::SQRTSD as u16,
+ SQRTSS = super::Opcode::SQRTSS as u16,
+ STAC = super::Opcode::STAC as u16,
+ STC = super::Opcode::STC as u16,
+ STD = super::Opcode::STD as u16,
+ STGI = super::Opcode::STGI as u16,
+ STI = super::Opcode::STI as u16,
+ STMXCSR = super::Opcode::STMXCSR as u16,
+ STOS = super::Opcode::STOS as u16,
+ STR = super::Opcode::STR as u16,
+ STUI = super::Opcode::STUI as u16,
+ SUB = super::Opcode::SUB as u16,
+ SUBPD = super::Opcode::SUBPD as u16,
+ SUBPS = super::Opcode::SUBPS as u16,
+ SUBSD = super::Opcode::SUBSD as u16,
+ SUBSS = super::Opcode::SUBSS as u16,
+ SWAPGS = super::Opcode::SWAPGS as u16,
+ SYSCALL = super::Opcode::SYSCALL as u16,
+ SYSENTER = super::Opcode::SYSENTER as u16,
+ SYSEXIT = super::Opcode::SYSEXIT as u16,
+ SYSRET = super::Opcode::SYSRET as u16,
+ TDCALL = super::Opcode::TDCALL as u16,
+ TEST = super::Opcode::TEST as u16,
+ TESTUI = super::Opcode::TESTUI as u16,
+ TLBSYNC = super::Opcode::TLBSYNC as u16,
+ TPAUSE = super::Opcode::TPAUSE as u16,
+ TZCNT = super::Opcode::TZCNT as u16,
+ UCOMISD = super::Opcode::UCOMISD as u16,
+ UCOMISS = super::Opcode::UCOMISS as u16,
+ UD0 = super::Opcode::UD0 as u16,
+ UD1 = super::Opcode::UD1 as u16,
+ UD2 = super::Opcode::UD2 as u16,
+ UIRET = super::Opcode::UIRET as u16,
+ UMONITOR = super::Opcode::UMONITOR as u16,
+ UMWAIT = super::Opcode::UMWAIT as u16,
+ UNPCKHPD = super::Opcode::UNPCKHPD as u16,
+ UNPCKHPS = super::Opcode::UNPCKHPS as u16,
+ UNPCKLPD = super::Opcode::UNPCKLPD as u16,
+ UNPCKLPS = super::Opcode::UNPCKLPS as u16,
+ V4FMADDPS = super::Opcode::V4FMADDPS as u16,
+ V4FMADDSS = super::Opcode::V4FMADDSS as u16,
+ V4FNMADDPS = super::Opcode::V4FNMADDPS as u16,
+ V4FNMADDSS = super::Opcode::V4FNMADDSS as u16,
+ VADDPD = super::Opcode::VADDPD as u16,
+ VADDPS = super::Opcode::VADDPS as u16,
+ VADDSD = super::Opcode::VADDSD as u16,
+ VADDSS = super::Opcode::VADDSS as u16,
+ VADDSUBPD = super::Opcode::VADDSUBPD as u16,
+ VADDSUBPS = super::Opcode::VADDSUBPS as u16,
+ VAESDEC = super::Opcode::VAESDEC as u16,
+ VAESDECLAST = super::Opcode::VAESDECLAST as u16,
+ VAESENC = super::Opcode::VAESENC as u16,
+ VAESENCLAST = super::Opcode::VAESENCLAST as u16,
+ VAESIMC = super::Opcode::VAESIMC as u16,
+ VAESKEYGENASSIST = super::Opcode::VAESKEYGENASSIST as u16,
+ VALIGND = super::Opcode::VALIGND as u16,
+ VALIGNQ = super::Opcode::VALIGNQ as u16,
+ VANDNPD = super::Opcode::VANDNPD as u16,
+ VANDNPS = super::Opcode::VANDNPS as u16,
+ VANDPD = super::Opcode::VANDPD as u16,
+ VANDPS = super::Opcode::VANDPS as u16,
+ VBLENDMPD = super::Opcode::VBLENDMPD as u16,
+ VBLENDMPS = super::Opcode::VBLENDMPS as u16,
+ VBLENDPD = super::Opcode::VBLENDPD as u16,
+ VBLENDPS = super::Opcode::VBLENDPS as u16,
+ VBLENDVPD = super::Opcode::VBLENDVPD as u16,
+ VBLENDVPS = super::Opcode::VBLENDVPS as u16,
+ VBROADCASTF128 = super::Opcode::VBROADCASTF128 as u16,
+ VBROADCASTF32X2 = super::Opcode::VBROADCASTF32X2 as u16,
+ VBROADCASTF32X4 = super::Opcode::VBROADCASTF32X4 as u16,
+ VBROADCASTF32X8 = super::Opcode::VBROADCASTF32X8 as u16,
+ VBROADCASTF64X2 = super::Opcode::VBROADCASTF64X2 as u16,
+ VBROADCASTF64X4 = super::Opcode::VBROADCASTF64X4 as u16,
+ VBROADCASTI128 = super::Opcode::VBROADCASTI128 as u16,
+ VBROADCASTI32X2 = super::Opcode::VBROADCASTI32X2 as u16,
+ VBROADCASTI32X4 = super::Opcode::VBROADCASTI32X4 as u16,
+ VBROADCASTI32X8 = super::Opcode::VBROADCASTI32X8 as u16,
+ VBROADCASTI64X2 = super::Opcode::VBROADCASTI64X2 as u16,
+ VBROADCASTI64X4 = super::Opcode::VBROADCASTI64X4 as u16,
+ VBROADCASTSD = super::Opcode::VBROADCASTSD as u16,
+ VBROADCASTSS = super::Opcode::VBROADCASTSS as u16,
+ VCMPPD = super::Opcode::VCMPPD as u16,
+ VCMPPS = super::Opcode::VCMPPS as u16,
+ VCMPSD = super::Opcode::VCMPSD as u16,
+ VCMPSS = super::Opcode::VCMPSS as u16,
+ VCOMISD = super::Opcode::VCOMISD as u16,
+ VCOMISS = super::Opcode::VCOMISS as u16,
+ VCOMPRESSD = super::Opcode::VCOMPRESSD as u16,
+ VCOMPRESSPD = super::Opcode::VCOMPRESSPD as u16,
+ VCOMPRESSPS = super::Opcode::VCOMPRESSPS as u16,
+ VCOMPRESSQ = super::Opcode::VCOMPRESSQ as u16,
+ VCVTDQ2PD = super::Opcode::VCVTDQ2PD as u16,
+ VCVTDQ2PS = super::Opcode::VCVTDQ2PS as u16,
+ VCVTNE2PS2BF16 = super::Opcode::VCVTNE2PS2BF16 as u16,
+ VCVTNEPS2BF16 = super::Opcode::VCVTNEPS2BF16 as u16,
+ VCVTPD2DQ = super::Opcode::VCVTPD2DQ as u16,
+ VCVTPD2PS = super::Opcode::VCVTPD2PS as u16,
+ VCVTPD2QQ = super::Opcode::VCVTPD2QQ as u16,
+ VCVTPD2UDQ = super::Opcode::VCVTPD2UDQ as u16,
+ VCVTPD2UQQ = super::Opcode::VCVTPD2UQQ as u16,
+ VCVTPH2PS = super::Opcode::VCVTPH2PS as u16,
+ VCVTPS2DQ = super::Opcode::VCVTPS2DQ as u16,
+ VCVTPS2PD = super::Opcode::VCVTPS2PD as u16,
+ VCVTPS2PH = super::Opcode::VCVTPS2PH as u16,
+ VCVTPS2QQ = super::Opcode::VCVTPS2QQ as u16,
+ VCVTPS2UDQ = super::Opcode::VCVTPS2UDQ as u16,
+ VCVTPS2UQQ = super::Opcode::VCVTPS2UQQ as u16,
+ VCVTQQ2PD = super::Opcode::VCVTQQ2PD as u16,
+ VCVTQQ2PS = super::Opcode::VCVTQQ2PS as u16,
+ VCVTSD2SI = super::Opcode::VCVTSD2SI as u16,
+ VCVTSD2SS = super::Opcode::VCVTSD2SS as u16,
+ VCVTSD2USI = super::Opcode::VCVTSD2USI as u16,
+ VCVTSI2SD = super::Opcode::VCVTSI2SD as u16,
+ VCVTSI2SS = super::Opcode::VCVTSI2SS as u16,
+ VCVTSS2SD = super::Opcode::VCVTSS2SD as u16,
+ VCVTSS2SI = super::Opcode::VCVTSS2SI as u16,
+ VCVTSS2USI = super::Opcode::VCVTSS2USI as u16,
+ VCVTTPD2DQ = super::Opcode::VCVTTPD2DQ as u16,
+ VCVTTPD2QQ = super::Opcode::VCVTTPD2QQ as u16,
+ VCVTTPD2UDQ = super::Opcode::VCVTTPD2UDQ as u16,
+ VCVTTPD2UQQ = super::Opcode::VCVTTPD2UQQ as u16,
+ VCVTTPS2DQ = super::Opcode::VCVTTPS2DQ as u16,
+ VCVTTPS2QQ = super::Opcode::VCVTTPS2QQ as u16,
+ VCVTTPS2UDQ = super::Opcode::VCVTTPS2UDQ as u16,
+ VCVTTPS2UQQ = super::Opcode::VCVTTPS2UQQ as u16,
+ VCVTTSD2SI = super::Opcode::VCVTTSD2SI as u16,
+ VCVTTSD2USI = super::Opcode::VCVTTSD2USI as u16,
+ VCVTTSS2SI = super::Opcode::VCVTTSS2SI as u16,
+ VCVTTSS2USI = super::Opcode::VCVTTSS2USI as u16,
+ VCVTUDQ2PD = super::Opcode::VCVTUDQ2PD as u16,
+ VCVTUDQ2PS = super::Opcode::VCVTUDQ2PS as u16,
+ VCVTUQQ2PD = super::Opcode::VCVTUQQ2PD as u16,
+ VCVTUQQ2PS = super::Opcode::VCVTUQQ2PS as u16,
+ VCVTUSI2SD = super::Opcode::VCVTUSI2SD as u16,
+ VCVTUSI2SS = super::Opcode::VCVTUSI2SS as u16,
+ VCVTUSI2USD = super::Opcode::VCVTUSI2USD as u16,
+ VCVTUSI2USS = super::Opcode::VCVTUSI2USS as u16,
+ VDBPSADBW = super::Opcode::VDBPSADBW as u16,
+ VDIVPD = super::Opcode::VDIVPD as u16,
+ VDIVPS = super::Opcode::VDIVPS as u16,
+ VDIVSD = super::Opcode::VDIVSD as u16,
+ VDIVSS = super::Opcode::VDIVSS as u16,
+ VDPBF16PS = super::Opcode::VDPBF16PS as u16,
+ VDPPD = super::Opcode::VDPPD as u16,
+ VDPPS = super::Opcode::VDPPS as u16,
+ VERR = super::Opcode::VERR as u16,
+ VERW = super::Opcode::VERW as u16,
+ VEXP2PD = super::Opcode::VEXP2PD as u16,
+ VEXP2PS = super::Opcode::VEXP2PS as u16,
+ VEXP2SD = super::Opcode::VEXP2SD as u16,
+ VEXP2SS = super::Opcode::VEXP2SS as u16,
+ VEXPANDPD = super::Opcode::VEXPANDPD as u16,
+ VEXPANDPS = super::Opcode::VEXPANDPS as u16,
+ VEXTRACTF128 = super::Opcode::VEXTRACTF128 as u16,
+ VEXTRACTF32X4 = super::Opcode::VEXTRACTF32X4 as u16,
+ VEXTRACTF32X8 = super::Opcode::VEXTRACTF32X8 as u16,
+ VEXTRACTF64X2 = super::Opcode::VEXTRACTF64X2 as u16,
+ VEXTRACTF64X4 = super::Opcode::VEXTRACTF64X4 as u16,
+ VEXTRACTI128 = super::Opcode::VEXTRACTI128 as u16,
+ VEXTRACTI32X4 = super::Opcode::VEXTRACTI32X4 as u16,
+ VEXTRACTI32X8 = super::Opcode::VEXTRACTI32X8 as u16,
+ VEXTRACTI64X2 = super::Opcode::VEXTRACTI64X2 as u16,
+ VEXTRACTI64X4 = super::Opcode::VEXTRACTI64X4 as u16,
+ VEXTRACTPS = super::Opcode::VEXTRACTPS as u16,
+ VFIXUPIMMPD = super::Opcode::VFIXUPIMMPD as u16,
+ VFIXUPIMMPS = super::Opcode::VFIXUPIMMPS as u16,
+ VFIXUPIMMSD = super::Opcode::VFIXUPIMMSD as u16,
+ VFIXUPIMMSS = super::Opcode::VFIXUPIMMSS as u16,
+ VFMADD132PD = super::Opcode::VFMADD132PD as u16,
+ VFMADD132PS = super::Opcode::VFMADD132PS as u16,
+ VFMADD132SD = super::Opcode::VFMADD132SD as u16,
+ VFMADD132SS = super::Opcode::VFMADD132SS as u16,
+ VFMADD213PD = super::Opcode::VFMADD213PD as u16,
+ VFMADD213PS = super::Opcode::VFMADD213PS as u16,
+ VFMADD213SD = super::Opcode::VFMADD213SD as u16,
+ VFMADD213SS = super::Opcode::VFMADD213SS as u16,
+ VFMADD231PD = super::Opcode::VFMADD231PD as u16,
+ VFMADD231PS = super::Opcode::VFMADD231PS as u16,
+ VFMADD231SD = super::Opcode::VFMADD231SD as u16,
+ VFMADD231SS = super::Opcode::VFMADD231SS as u16,
+ VFMADDSUB132PD = super::Opcode::VFMADDSUB132PD as u16,
+ VFMADDSUB132PS = super::Opcode::VFMADDSUB132PS as u16,
+ VFMADDSUB213PD = super::Opcode::VFMADDSUB213PD as u16,
+ VFMADDSUB213PS = super::Opcode::VFMADDSUB213PS as u16,
+ VFMADDSUB231PD = super::Opcode::VFMADDSUB231PD as u16,
+ VFMADDSUB231PS = super::Opcode::VFMADDSUB231PS as u16,
+ VFMSUB132PD = super::Opcode::VFMSUB132PD as u16,
+ VFMSUB132PS = super::Opcode::VFMSUB132PS as u16,
+ VFMSUB132SD = super::Opcode::VFMSUB132SD as u16,
+ VFMSUB132SS = super::Opcode::VFMSUB132SS as u16,
+ VFMSUB213PD = super::Opcode::VFMSUB213PD as u16,
+ VFMSUB213PS = super::Opcode::VFMSUB213PS as u16,
+ VFMSUB213SD = super::Opcode::VFMSUB213SD as u16,
+ VFMSUB213SS = super::Opcode::VFMSUB213SS as u16,
+ VFMSUB231PD = super::Opcode::VFMSUB231PD as u16,
+ VFMSUB231PS = super::Opcode::VFMSUB231PS as u16,
+ VFMSUB231SD = super::Opcode::VFMSUB231SD as u16,
+ VFMSUB231SS = super::Opcode::VFMSUB231SS as u16,
+ VFMSUBADD132PD = super::Opcode::VFMSUBADD132PD as u16,
+ VFMSUBADD132PS = super::Opcode::VFMSUBADD132PS as u16,
+ VFMSUBADD213PD = super::Opcode::VFMSUBADD213PD as u16,
+ VFMSUBADD213PS = super::Opcode::VFMSUBADD213PS as u16,
+ VFMSUBADD231PD = super::Opcode::VFMSUBADD231PD as u16,
+ VFMSUBADD231PS = super::Opcode::VFMSUBADD231PS as u16,
+ VFNMADD132PD = super::Opcode::VFNMADD132PD as u16,
+ VFNMADD132PS = super::Opcode::VFNMADD132PS as u16,
+ VFNMADD132SD = super::Opcode::VFNMADD132SD as u16,
+ VFNMADD132SS = super::Opcode::VFNMADD132SS as u16,
+ VFNMADD213PD = super::Opcode::VFNMADD213PD as u16,
+ VFNMADD213PS = super::Opcode::VFNMADD213PS as u16,
+ VFNMADD213SD = super::Opcode::VFNMADD213SD as u16,
+ VFNMADD213SS = super::Opcode::VFNMADD213SS as u16,
+ VFNMADD231PD = super::Opcode::VFNMADD231PD as u16,
+ VFNMADD231PS = super::Opcode::VFNMADD231PS as u16,
+ VFNMADD231SD = super::Opcode::VFNMADD231SD as u16,
+ VFNMADD231SS = super::Opcode::VFNMADD231SS as u16,
+ VFNMSUB132PD = super::Opcode::VFNMSUB132PD as u16,
+ VFNMSUB132PS = super::Opcode::VFNMSUB132PS as u16,
+ VFNMSUB132SD = super::Opcode::VFNMSUB132SD as u16,
+ VFNMSUB132SS = super::Opcode::VFNMSUB132SS as u16,
+ VFNMSUB213PD = super::Opcode::VFNMSUB213PD as u16,
+ VFNMSUB213PS = super::Opcode::VFNMSUB213PS as u16,
+ VFNMSUB213SD = super::Opcode::VFNMSUB213SD as u16,
+ VFNMSUB213SS = super::Opcode::VFNMSUB213SS as u16,
+ VFNMSUB231PD = super::Opcode::VFNMSUB231PD as u16,
+ VFNMSUB231PS = super::Opcode::VFNMSUB231PS as u16,
+ VFNMSUB231SD = super::Opcode::VFNMSUB231SD as u16,
+ VFNMSUB231SS = super::Opcode::VFNMSUB231SS as u16,
+ VFPCLASSPD = super::Opcode::VFPCLASSPD as u16,
+ VFPCLASSPS = super::Opcode::VFPCLASSPS as u16,
+ VFPCLASSSD = super::Opcode::VFPCLASSSD as u16,
+ VFPCLASSSS = super::Opcode::VFPCLASSSS as u16,
+ VGATHERDPD = super::Opcode::VGATHERDPD as u16,
+ VGATHERDPS = super::Opcode::VGATHERDPS as u16,
+ VGATHERPF0DPD = super::Opcode::VGATHERPF0DPD as u16,
+ VGATHERPF0DPS = super::Opcode::VGATHERPF0DPS as u16,
+ VGATHERPF0QPD = super::Opcode::VGATHERPF0QPD as u16,
+ VGATHERPF0QPS = super::Opcode::VGATHERPF0QPS as u16,
+ VGATHERPF1DPD = super::Opcode::VGATHERPF1DPD as u16,
+ VGATHERPF1DPS = super::Opcode::VGATHERPF1DPS as u16,
+ VGATHERPF1QPD = super::Opcode::VGATHERPF1QPD as u16,
+ VGATHERPF1QPS = super::Opcode::VGATHERPF1QPS as u16,
+ VGATHERQPD = super::Opcode::VGATHERQPD as u16,
+ VGATHERQPS = super::Opcode::VGATHERQPS as u16,
+ VGETEXPPD = super::Opcode::VGETEXPPD as u16,
+ VGETEXPPS = super::Opcode::VGETEXPPS as u16,
+ VGETEXPSD = super::Opcode::VGETEXPSD as u16,
+ VGETEXPSS = super::Opcode::VGETEXPSS as u16,
+ VGETMANTPD = super::Opcode::VGETMANTPD as u16,
+ VGETMANTPS = super::Opcode::VGETMANTPS as u16,
+ VGETMANTSD = super::Opcode::VGETMANTSD as u16,
+ VGETMANTSS = super::Opcode::VGETMANTSS as u16,
+ VGF2P8AFFINEINVQB = super::Opcode::VGF2P8AFFINEINVQB as u16,
+ VGF2P8AFFINEQB = super::Opcode::VGF2P8AFFINEQB as u16,
+ VGF2P8MULB = super::Opcode::VGF2P8MULB as u16,
+ VHADDPD = super::Opcode::VHADDPD as u16,
+ VHADDPS = super::Opcode::VHADDPS as u16,
+ VHSUBPD = super::Opcode::VHSUBPD as u16,
+ VHSUBPS = super::Opcode::VHSUBPS as u16,
+ VINSERTF128 = super::Opcode::VINSERTF128 as u16,
+ VINSERTF32X4 = super::Opcode::VINSERTF32X4 as u16,
+ VINSERTF32X8 = super::Opcode::VINSERTF32X8 as u16,
+ VINSERTF64X2 = super::Opcode::VINSERTF64X2 as u16,
+ VINSERTF64X4 = super::Opcode::VINSERTF64X4 as u16,
+ VINSERTI128 = super::Opcode::VINSERTI128 as u16,
+ VINSERTI32X4 = super::Opcode::VINSERTI32X4 as u16,
+ VINSERTI32X8 = super::Opcode::VINSERTI32X8 as u16,
+ VINSERTI64X2 = super::Opcode::VINSERTI64X2 as u16,
+ VINSERTI64X4 = super::Opcode::VINSERTI64X4 as u16,
+ VINSERTPS = super::Opcode::VINSERTPS as u16,
+ VLDDQU = super::Opcode::VLDDQU as u16,
+ VLDMXCSR = super::Opcode::VLDMXCSR as u16,
+ VMASKMOVDQU = super::Opcode::VMASKMOVDQU as u16,
+ VMASKMOVPD = super::Opcode::VMASKMOVPD as u16,
+ VMASKMOVPS = super::Opcode::VMASKMOVPS as u16,
+ VMAXPD = super::Opcode::VMAXPD as u16,
+ VMAXPS = super::Opcode::VMAXPS as u16,
+ VMAXSD = super::Opcode::VMAXSD as u16,
+ VMAXSS = super::Opcode::VMAXSS as u16,
+ VMCALL = super::Opcode::VMCALL as u16,
+ VMCLEAR = super::Opcode::VMCLEAR as u16,
+ VMFUNC = super::Opcode::VMFUNC as u16,
+ VMINPD = super::Opcode::VMINPD as u16,
+ VMINPS = super::Opcode::VMINPS as u16,
+ VMINSD = super::Opcode::VMINSD as u16,
+ VMINSS = super::Opcode::VMINSS as u16,
+ VMLAUNCH = super::Opcode::VMLAUNCH as u16,
+ VMLOAD = super::Opcode::VMLOAD as u16,
+ VMMCALL = super::Opcode::VMMCALL as u16,
+ VMOVAPD = super::Opcode::VMOVAPD as u16,
+ VMOVAPS = super::Opcode::VMOVAPS as u16,
+ VMOVD = super::Opcode::VMOVD as u16,
+ VMOVDDUP = super::Opcode::VMOVDDUP as u16,
+ VMOVDQA = super::Opcode::VMOVDQA as u16,
+ VMOVDQA32 = super::Opcode::VMOVDQA32 as u16,
+ VMOVDQA64 = super::Opcode::VMOVDQA64 as u16,
+ VMOVDQU = super::Opcode::VMOVDQU as u16,
+ VMOVDQU16 = super::Opcode::VMOVDQU16 as u16,
+ VMOVDQU32 = super::Opcode::VMOVDQU32 as u16,
+ VMOVDQU64 = super::Opcode::VMOVDQU64 as u16,
+ VMOVDQU8 = super::Opcode::VMOVDQU8 as u16,
+ VMOVHLPS = super::Opcode::VMOVHLPS as u16,
+ VMOVHPD = super::Opcode::VMOVHPD as u16,
+ VMOVHPS = super::Opcode::VMOVHPS as u16,
+ VMOVLHPS = super::Opcode::VMOVLHPS as u16,
+ VMOVLPD = super::Opcode::VMOVLPD as u16,
+ VMOVLPS = super::Opcode::VMOVLPS as u16,
+ VMOVMSKPD = super::Opcode::VMOVMSKPD as u16,
+ VMOVMSKPS = super::Opcode::VMOVMSKPS as u16,
+ VMOVNTDQ = super::Opcode::VMOVNTDQ as u16,
+ VMOVNTDQA = super::Opcode::VMOVNTDQA as u16,
+ VMOVNTPD = super::Opcode::VMOVNTPD as u16,
+ VMOVNTPS = super::Opcode::VMOVNTPS as u16,
+ VMOVQ = super::Opcode::VMOVQ as u16,
+ VMOVSD = super::Opcode::VMOVSD as u16,
+ VMOVSHDUP = super::Opcode::VMOVSHDUP as u16,
+ VMOVSLDUP = super::Opcode::VMOVSLDUP as u16,
+ VMOVSS = super::Opcode::VMOVSS as u16,
+ VMOVUPD = super::Opcode::VMOVUPD as u16,
+ VMOVUPS = super::Opcode::VMOVUPS as u16,
+ VMPSADBW = super::Opcode::VMPSADBW as u16,
+ VMPTRLD = super::Opcode::VMPTRLD as u16,
+ VMPTRST = super::Opcode::VMPTRST as u16,
+ VMREAD = super::Opcode::VMREAD as u16,
+ VMRESUME = super::Opcode::VMRESUME as u16,
+ VMRUN = super::Opcode::VMRUN as u16,
+ VMSAVE = super::Opcode::VMSAVE as u16,
+ VMULPD = super::Opcode::VMULPD as u16,
+ VMULPS = super::Opcode::VMULPS as u16,
+ VMULSD = super::Opcode::VMULSD as u16,
+ VMULSS = super::Opcode::VMULSS as u16,
+ VMWRITE = super::Opcode::VMWRITE as u16,
+ VMXOFF = super::Opcode::VMXOFF as u16,
+ VMXON = super::Opcode::VMXON as u16,
+ VORPD = super::Opcode::VORPD as u16,
+ VORPS = super::Opcode::VORPS as u16,
+ VP2INTERSECTD = super::Opcode::VP2INTERSECTD as u16,
+ VP2INTERSECTQ = super::Opcode::VP2INTERSECTQ as u16,
+ VP4DPWSSD = super::Opcode::VP4DPWSSD as u16,
+ VP4DPWSSDS = super::Opcode::VP4DPWSSDS as u16,
+ VPABSB = super::Opcode::VPABSB as u16,
+ VPABSD = super::Opcode::VPABSD as u16,
+ VPABSQ = super::Opcode::VPABSQ as u16,
+ VPABSW = super::Opcode::VPABSW as u16,
+ VPACKSSDW = super::Opcode::VPACKSSDW as u16,
+ VPACKSSWB = super::Opcode::VPACKSSWB as u16,
+ VPACKUSDW = super::Opcode::VPACKUSDW as u16,
+ VPACKUSWB = super::Opcode::VPACKUSWB as u16,
+ VPADDB = super::Opcode::VPADDB as u16,
+ VPADDD = super::Opcode::VPADDD as u16,
+ VPADDQ = super::Opcode::VPADDQ as u16,
+ VPADDSB = super::Opcode::VPADDSB as u16,
+ VPADDSW = super::Opcode::VPADDSW as u16,
+ VPADDUSB = super::Opcode::VPADDUSB as u16,
+ VPADDUSW = super::Opcode::VPADDUSW as u16,
+ VPADDW = super::Opcode::VPADDW as u16,
+ VPALIGNR = super::Opcode::VPALIGNR as u16,
+ VPAND = super::Opcode::VPAND as u16,
+ VPANDD = super::Opcode::VPANDD as u16,
+ VPANDN = super::Opcode::VPANDN as u16,
+ VPANDND = super::Opcode::VPANDND as u16,
+ VPANDNQ = super::Opcode::VPANDNQ as u16,
+ VPANDQ = super::Opcode::VPANDQ as u16,
+ VPAVGB = super::Opcode::VPAVGB as u16,
+ VPAVGW = super::Opcode::VPAVGW as u16,
+ VPBLENDD = super::Opcode::VPBLENDD as u16,
+ VPBLENDMB = super::Opcode::VPBLENDMB as u16,
+ VPBLENDMD = super::Opcode::VPBLENDMD as u16,
+ VPBLENDMQ = super::Opcode::VPBLENDMQ as u16,
+ VPBLENDMW = super::Opcode::VPBLENDMW as u16,
+ VPBLENDVB = super::Opcode::VPBLENDVB as u16,
+ VPBLENDW = super::Opcode::VPBLENDW as u16,
+ VPBROADCASTB = super::Opcode::VPBROADCASTB as u16,
+ VPBROADCASTD = super::Opcode::VPBROADCASTD as u16,
+ VPBROADCASTM = super::Opcode::VPBROADCASTM as u16,
+ VPBROADCASTMB2Q = super::Opcode::VPBROADCASTMB2Q as u16,
+ VPBROADCASTMW2D = super::Opcode::VPBROADCASTMW2D as u16,
+ VPBROADCASTQ = super::Opcode::VPBROADCASTQ as u16,
+ VPBROADCASTW = super::Opcode::VPBROADCASTW as u16,
+ VPCLMULQDQ = super::Opcode::VPCLMULQDQ as u16,
+ VPCMPB = super::Opcode::VPCMPB as u16,
+ VPCMPD = super::Opcode::VPCMPD as u16,
+ VPCMPEQB = super::Opcode::VPCMPEQB as u16,
+ VPCMPEQD = super::Opcode::VPCMPEQD as u16,
+ VPCMPEQQ = super::Opcode::VPCMPEQQ as u16,
+ VPCMPEQW = super::Opcode::VPCMPEQW as u16,
+ VPCMPESTRI = super::Opcode::VPCMPESTRI as u16,
+ VPCMPESTRM = super::Opcode::VPCMPESTRM as u16,
+ VPCMPGTB = super::Opcode::VPCMPGTB as u16,
+ VPCMPGTD = super::Opcode::VPCMPGTD as u16,
+ VPCMPGTQ = super::Opcode::VPCMPGTQ as u16,
+ VPCMPGTW = super::Opcode::VPCMPGTW as u16,
+ VPCMPISTRI = super::Opcode::VPCMPISTRI as u16,
+ VPCMPISTRM = super::Opcode::VPCMPISTRM as u16,
+ VPCMPQ = super::Opcode::VPCMPQ as u16,
+ VPCMPUB = super::Opcode::VPCMPUB as u16,
+ VPCMPUD = super::Opcode::VPCMPUD as u16,
+ VPCMPUQ = super::Opcode::VPCMPUQ as u16,
+ VPCMPUW = super::Opcode::VPCMPUW as u16,
+ VPCMPW = super::Opcode::VPCMPW as u16,
+ VPCOMPRESSB = super::Opcode::VPCOMPRESSB as u16,
+ VPCOMPRESSD = super::Opcode::VPCOMPRESSD as u16,
+ VPCOMPRESSQ = super::Opcode::VPCOMPRESSQ as u16,
+ VPCOMPRESSW = super::Opcode::VPCOMPRESSW as u16,
+ VPCONFLICTD = super::Opcode::VPCONFLICTD as u16,
+ VPCONFLICTQ = super::Opcode::VPCONFLICTQ as u16,
+ VPDPBUSD = super::Opcode::VPDPBUSD as u16,
+ VPDPBUSDS = super::Opcode::VPDPBUSDS as u16,
+ VPDPWSSD = super::Opcode::VPDPWSSD as u16,
+ VPDPWSSDS = super::Opcode::VPDPWSSDS as u16,
+ VPERM2F128 = super::Opcode::VPERM2F128 as u16,
+ VPERM2I128 = super::Opcode::VPERM2I128 as u16,
+ VPERMB = super::Opcode::VPERMB as u16,
+ VPERMD = super::Opcode::VPERMD as u16,
+ VPERMI2B = super::Opcode::VPERMI2B as u16,
+ VPERMI2D = super::Opcode::VPERMI2D as u16,
+ VPERMI2PD = super::Opcode::VPERMI2PD as u16,
+ VPERMI2PS = super::Opcode::VPERMI2PS as u16,
+ VPERMI2Q = super::Opcode::VPERMI2Q as u16,
+ VPERMI2W = super::Opcode::VPERMI2W as u16,
+ VPERMILPD = super::Opcode::VPERMILPD as u16,
+ VPERMILPS = super::Opcode::VPERMILPS as u16,
+ VPERMPD = super::Opcode::VPERMPD as u16,
+ VPERMPS = super::Opcode::VPERMPS as u16,
+ VPERMQ = super::Opcode::VPERMQ as u16,
+ VPERMT2B = super::Opcode::VPERMT2B as u16,
+ VPERMT2D = super::Opcode::VPERMT2D as u16,
+ VPERMT2PD = super::Opcode::VPERMT2PD as u16,
+ VPERMT2PS = super::Opcode::VPERMT2PS as u16,
+ VPERMT2Q = super::Opcode::VPERMT2Q as u16,
+ VPERMT2W = super::Opcode::VPERMT2W as u16,
+ VPERMW = super::Opcode::VPERMW as u16,
+ VPEXPANDB = super::Opcode::VPEXPANDB as u16,
+ VPEXPANDD = super::Opcode::VPEXPANDD as u16,
+ VPEXPANDQ = super::Opcode::VPEXPANDQ as u16,
+ VPEXPANDW = super::Opcode::VPEXPANDW as u16,
+ VPEXTRB = super::Opcode::VPEXTRB as u16,
+ VPEXTRD = super::Opcode::VPEXTRD as u16,
+ VPEXTRQ = super::Opcode::VPEXTRQ as u16,
+ VPEXTRW = super::Opcode::VPEXTRW as u16,
+ VPGATHERDD = super::Opcode::VPGATHERDD as u16,
+ VPGATHERDQ = super::Opcode::VPGATHERDQ as u16,
+ VPGATHERQD = super::Opcode::VPGATHERQD as u16,
+ VPGATHERQQ = super::Opcode::VPGATHERQQ as u16,
+ VPHADDD = super::Opcode::VPHADDD as u16,
+ VPHADDSW = super::Opcode::VPHADDSW as u16,
+ VPHADDW = super::Opcode::VPHADDW as u16,
+ VPHMINPOSUW = super::Opcode::VPHMINPOSUW as u16,
+ VPHSUBD = super::Opcode::VPHSUBD as u16,
+ VPHSUBSW = super::Opcode::VPHSUBSW as u16,
+ VPHSUBW = super::Opcode::VPHSUBW as u16,
+ VPINSRB = super::Opcode::VPINSRB as u16,
+ VPINSRD = super::Opcode::VPINSRD as u16,
+ VPINSRQ = super::Opcode::VPINSRQ as u16,
+ VPINSRW = super::Opcode::VPINSRW as u16,
+ VPLZCNTD = super::Opcode::VPLZCNTD as u16,
+ VPLZCNTQ = super::Opcode::VPLZCNTQ as u16,
+ VPMADD52HUQ = super::Opcode::VPMADD52HUQ as u16,
+ VPMADD52LUQ = super::Opcode::VPMADD52LUQ as u16,
+ VPMADDUBSW = super::Opcode::VPMADDUBSW as u16,
+ VPMADDWD = super::Opcode::VPMADDWD as u16,
+ VPMASKMOVD = super::Opcode::VPMASKMOVD as u16,
+ VPMASKMOVQ = super::Opcode::VPMASKMOVQ as u16,
+ VPMAXSB = super::Opcode::VPMAXSB as u16,
+ VPMAXSD = super::Opcode::VPMAXSD as u16,
+ VPMAXSQ = super::Opcode::VPMAXSQ as u16,
+ VPMAXSW = super::Opcode::VPMAXSW as u16,
+ VPMAXUB = super::Opcode::VPMAXUB as u16,
+ VPMAXUD = super::Opcode::VPMAXUD as u16,
+ VPMAXUQ = super::Opcode::VPMAXUQ as u16,
+ VPMAXUW = super::Opcode::VPMAXUW as u16,
+ VPMINSB = super::Opcode::VPMINSB as u16,
+ VPMINSD = super::Opcode::VPMINSD as u16,
+ VPMINSQ = super::Opcode::VPMINSQ as u16,
+ VPMINSW = super::Opcode::VPMINSW as u16,
+ VPMINUB = super::Opcode::VPMINUB as u16,
+ VPMINUD = super::Opcode::VPMINUD as u16,
+ VPMINUQ = super::Opcode::VPMINUQ as u16,
+ VPMINUW = super::Opcode::VPMINUW as u16,
+ VPMOVB2D = super::Opcode::VPMOVB2D as u16,
+ VPMOVB2M = super::Opcode::VPMOVB2M as u16,
+ VPMOVD2M = super::Opcode::VPMOVD2M as u16,
+ VPMOVDB = super::Opcode::VPMOVDB as u16,
+ VPMOVDW = super::Opcode::VPMOVDW as u16,
+ VPMOVM2B = super::Opcode::VPMOVM2B as u16,
+ VPMOVM2D = super::Opcode::VPMOVM2D as u16,
+ VPMOVM2Q = super::Opcode::VPMOVM2Q as u16,
+ VPMOVM2W = super::Opcode::VPMOVM2W as u16,
+ VPMOVMSKB = super::Opcode::VPMOVMSKB as u16,
+ VPMOVQ2M = super::Opcode::VPMOVQ2M as u16,
+ VPMOVQB = super::Opcode::VPMOVQB as u16,
+ VPMOVQD = super::Opcode::VPMOVQD as u16,
+ VPMOVQW = super::Opcode::VPMOVQW as u16,
+ VPMOVSDB = super::Opcode::VPMOVSDB as u16,
+ VPMOVSDW = super::Opcode::VPMOVSDW as u16,
+ VPMOVSQB = super::Opcode::VPMOVSQB as u16,
+ VPMOVSQD = super::Opcode::VPMOVSQD as u16,
+ VPMOVSQW = super::Opcode::VPMOVSQW as u16,
+ VPMOVSWB = super::Opcode::VPMOVSWB as u16,
+ VPMOVSXBD = super::Opcode::VPMOVSXBD as u16,
+ VPMOVSXBQ = super::Opcode::VPMOVSXBQ as u16,
+ VPMOVSXBW = super::Opcode::VPMOVSXBW as u16,
+ VPMOVSXDQ = super::Opcode::VPMOVSXDQ as u16,
+ VPMOVSXWD = super::Opcode::VPMOVSXWD as u16,
+ VPMOVSXWQ = super::Opcode::VPMOVSXWQ as u16,
+ VPMOVUSDB = super::Opcode::VPMOVUSDB as u16,
+ VPMOVUSDW = super::Opcode::VPMOVUSDW as u16,
+ VPMOVUSQB = super::Opcode::VPMOVUSQB as u16,
+ VPMOVUSQD = super::Opcode::VPMOVUSQD as u16,
+ VPMOVUSQW = super::Opcode::VPMOVUSQW as u16,
+ VPMOVUSWB = super::Opcode::VPMOVUSWB as u16,
+ VPMOVW2M = super::Opcode::VPMOVW2M as u16,
+ VPMOVWB = super::Opcode::VPMOVWB as u16,
+ VPMOVZXBD = super::Opcode::VPMOVZXBD as u16,
+ VPMOVZXBQ = super::Opcode::VPMOVZXBQ as u16,
+ VPMOVZXBW = super::Opcode::VPMOVZXBW as u16,
+ VPMOVZXDQ = super::Opcode::VPMOVZXDQ as u16,
+ VPMOVZXWD = super::Opcode::VPMOVZXWD as u16,
+ VPMOVZXWQ = super::Opcode::VPMOVZXWQ as u16,
+ VPMULDQ = super::Opcode::VPMULDQ as u16,
+ VPMULHRSW = super::Opcode::VPMULHRSW as u16,
+ VPMULHUW = super::Opcode::VPMULHUW as u16,
+ VPMULHW = super::Opcode::VPMULHW as u16,
+ VPMULLD = super::Opcode::VPMULLD as u16,
+ VPMULLQ = super::Opcode::VPMULLQ as u16,
+ VPMULLW = super::Opcode::VPMULLW as u16,
+ VPMULTISHIFTQB = super::Opcode::VPMULTISHIFTQB as u16,
+ VPMULUDQ = super::Opcode::VPMULUDQ as u16,
+ VPOPCNTB = super::Opcode::VPOPCNTB as u16,
+ VPOPCNTD = super::Opcode::VPOPCNTD as u16,
+ VPOPCNTQ = super::Opcode::VPOPCNTQ as u16,
+ VPOPCNTW = super::Opcode::VPOPCNTW as u16,
+ VPOR = super::Opcode::VPOR as u16,
+ VPORD = super::Opcode::VPORD as u16,
+ VPORQ = super::Opcode::VPORQ as u16,
+ VPROLD = super::Opcode::VPROLD as u16,
+ VPROLQ = super::Opcode::VPROLQ as u16,
+ VPROLVD = super::Opcode::VPROLVD as u16,
+ VPROLVQ = super::Opcode::VPROLVQ as u16,
+ VPRORD = super::Opcode::VPRORD as u16,
+ VPRORQ = super::Opcode::VPRORQ as u16,
+ VPRORRD = super::Opcode::VPRORRD as u16,
+ VPRORRQ = super::Opcode::VPRORRQ as u16,
+ VPRORVD = super::Opcode::VPRORVD as u16,
+ VPRORVQ = super::Opcode::VPRORVQ as u16,
+ VPSADBW = super::Opcode::VPSADBW as u16,
+ VPSCATTERDD = super::Opcode::VPSCATTERDD as u16,
+ VPSCATTERDQ = super::Opcode::VPSCATTERDQ as u16,
+ VPSCATTERQD = super::Opcode::VPSCATTERQD as u16,
+ VPSCATTERQQ = super::Opcode::VPSCATTERQQ as u16,
+ VPSHLDD = super::Opcode::VPSHLDD as u16,
+ VPSHLDQ = super::Opcode::VPSHLDQ as u16,
+ VPSHLDVD = super::Opcode::VPSHLDVD as u16,
+ VPSHLDVQ = super::Opcode::VPSHLDVQ as u16,
+ VPSHLDVW = super::Opcode::VPSHLDVW as u16,
+ VPSHLDW = super::Opcode::VPSHLDW as u16,
+ VPSHRDD = super::Opcode::VPSHRDD as u16,
+ VPSHRDQ = super::Opcode::VPSHRDQ as u16,
+ VPSHRDVD = super::Opcode::VPSHRDVD as u16,
+ VPSHRDVQ = super::Opcode::VPSHRDVQ as u16,
+ VPSHRDVW = super::Opcode::VPSHRDVW as u16,
+ VPSHRDW = super::Opcode::VPSHRDW as u16,
+ VPSHUFB = super::Opcode::VPSHUFB as u16,
+ VPSHUFBITQMB = super::Opcode::VPSHUFBITQMB as u16,
+ VPSHUFD = super::Opcode::VPSHUFD as u16,
+ VPSHUFHW = super::Opcode::VPSHUFHW as u16,
+ VPSHUFLW = super::Opcode::VPSHUFLW as u16,
+ VPSIGNB = super::Opcode::VPSIGNB as u16,
+ VPSIGND = super::Opcode::VPSIGND as u16,
+ VPSIGNW = super::Opcode::VPSIGNW as u16,
+ VPSLLD = super::Opcode::VPSLLD as u16,
+ VPSLLDQ = super::Opcode::VPSLLDQ as u16,
+ VPSLLQ = super::Opcode::VPSLLQ as u16,
+ VPSLLVD = super::Opcode::VPSLLVD as u16,
+ VPSLLVQ = super::Opcode::VPSLLVQ as u16,
+ VPSLLVW = super::Opcode::VPSLLVW as u16,
+ VPSLLW = super::Opcode::VPSLLW as u16,
+ VPSRAD = super::Opcode::VPSRAD as u16,
+ VPSRAQ = super::Opcode::VPSRAQ as u16,
+ VPSRAVD = super::Opcode::VPSRAVD as u16,
+ VPSRAVQ = super::Opcode::VPSRAVQ as u16,
+ VPSRAVW = super::Opcode::VPSRAVW as u16,
+ VPSRAW = super::Opcode::VPSRAW as u16,
+ VPSRLD = super::Opcode::VPSRLD as u16,
+ VPSRLDQ = super::Opcode::VPSRLDQ as u16,
+ VPSRLQ = super::Opcode::VPSRLQ as u16,
+ VPSRLVD = super::Opcode::VPSRLVD as u16,
+ VPSRLVQ = super::Opcode::VPSRLVQ as u16,
+ VPSRLVW = super::Opcode::VPSRLVW as u16,
+ VPSRLW = super::Opcode::VPSRLW as u16,
+ VPSUBB = super::Opcode::VPSUBB as u16,
+ VPSUBD = super::Opcode::VPSUBD as u16,
+ VPSUBQ = super::Opcode::VPSUBQ as u16,
+ VPSUBSB = super::Opcode::VPSUBSB as u16,
+ VPSUBSW = super::Opcode::VPSUBSW as u16,
+ VPSUBUSB = super::Opcode::VPSUBUSB as u16,
+ VPSUBUSW = super::Opcode::VPSUBUSW as u16,
+ VPSUBW = super::Opcode::VPSUBW as u16,
+ VPTERNLOGD = super::Opcode::VPTERNLOGD as u16,
+ VPTERNLOGQ = super::Opcode::VPTERNLOGQ as u16,
+ VPTEST = super::Opcode::VPTEST as u16,
+ VPTESTMB = super::Opcode::VPTESTMB as u16,
+ VPTESTMD = super::Opcode::VPTESTMD as u16,
+ VPTESTMQ = super::Opcode::VPTESTMQ as u16,
+ VPTESTMW = super::Opcode::VPTESTMW as u16,
+ VPTESTNMB = super::Opcode::VPTESTNMB as u16,
+ VPTESTNMD = super::Opcode::VPTESTNMD as u16,
+ VPTESTNMQ = super::Opcode::VPTESTNMQ as u16,
+ VPTESTNMW = super::Opcode::VPTESTNMW as u16,
+ VPUNPCKHBW = super::Opcode::VPUNPCKHBW as u16,
+ VPUNPCKHDQ = super::Opcode::VPUNPCKHDQ as u16,
+ VPUNPCKHQDQ = super::Opcode::VPUNPCKHQDQ as u16,
+ VPUNPCKHWD = super::Opcode::VPUNPCKHWD as u16,
+ VPUNPCKLBW = super::Opcode::VPUNPCKLBW as u16,
+ VPUNPCKLDQ = super::Opcode::VPUNPCKLDQ as u16,
+ VPUNPCKLQDQ = super::Opcode::VPUNPCKLQDQ as u16,
+ VPUNPCKLWD = super::Opcode::VPUNPCKLWD as u16,
+ VPXOR = super::Opcode::VPXOR as u16,
+ VPXORD = super::Opcode::VPXORD as u16,
+ VPXORQ = super::Opcode::VPXORQ as u16,
+ VRANGEPD = super::Opcode::VRANGEPD as u16,
+ VRANGEPS = super::Opcode::VRANGEPS as u16,
+ VRANGESD = super::Opcode::VRANGESD as u16,
+ VRANGESS = super::Opcode::VRANGESS as u16,
+ VRCP14PD = super::Opcode::VRCP14PD as u16,
+ VRCP14PS = super::Opcode::VRCP14PS as u16,
+ VRCP14SD = super::Opcode::VRCP14SD as u16,
+ VRCP14SS = super::Opcode::VRCP14SS as u16,
+ VRCP28PD = super::Opcode::VRCP28PD as u16,
+ VRCP28PS = super::Opcode::VRCP28PS as u16,
+ VRCP28SD = super::Opcode::VRCP28SD as u16,
+ VRCP28SS = super::Opcode::VRCP28SS as u16,
+ VRCPPS = super::Opcode::VRCPPS as u16,
+ VRCPSS = super::Opcode::VRCPSS as u16,
+ VREDUCEPD = super::Opcode::VREDUCEPD as u16,
+ VREDUCEPS = super::Opcode::VREDUCEPS as u16,
+ VREDUCESD = super::Opcode::VREDUCESD as u16,
+ VREDUCESS = super::Opcode::VREDUCESS as u16,
+ VRNDSCALEPD = super::Opcode::VRNDSCALEPD as u16,
+ VRNDSCALEPS = super::Opcode::VRNDSCALEPS as u16,
+ VRNDSCALESD = super::Opcode::VRNDSCALESD as u16,
+ VRNDSCALESS = super::Opcode::VRNDSCALESS as u16,
+ VROUNDPD = super::Opcode::VROUNDPD as u16,
+ VROUNDPS = super::Opcode::VROUNDPS as u16,
+ VROUNDSD = super::Opcode::VROUNDSD as u16,
+ VROUNDSS = super::Opcode::VROUNDSS as u16,
+ VRSQRT14PD = super::Opcode::VRSQRT14PD as u16,
+ VRSQRT14PS = super::Opcode::VRSQRT14PS as u16,
+ VRSQRT14SD = super::Opcode::VRSQRT14SD as u16,
+ VRSQRT14SS = super::Opcode::VRSQRT14SS as u16,
+ VRSQRT28PD = super::Opcode::VRSQRT28PD as u16,
+ VRSQRT28PS = super::Opcode::VRSQRT28PS as u16,
+ VRSQRT28SD = super::Opcode::VRSQRT28SD as u16,
+ VRSQRT28SS = super::Opcode::VRSQRT28SS as u16,
+ VRSQRTPS = super::Opcode::VRSQRTPS as u16,
+ VRSQRTSS = super::Opcode::VRSQRTSS as u16,
+ VSCALEDPD = super::Opcode::VSCALEDPD as u16,
+ VSCALEDPS = super::Opcode::VSCALEDPS as u16,
+ VSCALEDSD = super::Opcode::VSCALEDSD as u16,
+ VSCALEDSS = super::Opcode::VSCALEDSS as u16,
+ VSCALEFPD = super::Opcode::VSCALEFPD as u16,
+ VSCALEFPS = super::Opcode::VSCALEFPS as u16,
+ VSCALEFSD = super::Opcode::VSCALEFSD as u16,
+ VSCALEFSS = super::Opcode::VSCALEFSS as u16,
+ VSCATTERDD = super::Opcode::VSCATTERDD as u16,
+ VSCATTERDPD = super::Opcode::VSCATTERDPD as u16,
+ VSCATTERDPS = super::Opcode::VSCATTERDPS as u16,
+ VSCATTERDQ = super::Opcode::VSCATTERDQ as u16,
+ VSCATTERPF0DPD = super::Opcode::VSCATTERPF0DPD as u16,
+ VSCATTERPF0DPS = super::Opcode::VSCATTERPF0DPS as u16,
+ VSCATTERPF0QPD = super::Opcode::VSCATTERPF0QPD as u16,
+ VSCATTERPF0QPS = super::Opcode::VSCATTERPF0QPS as u16,
+ VSCATTERPF1DPD = super::Opcode::VSCATTERPF1DPD as u16,
+ VSCATTERPF1DPS = super::Opcode::VSCATTERPF1DPS as u16,
+ VSCATTERPF1QPD = super::Opcode::VSCATTERPF1QPD as u16,
+ VSCATTERPF1QPS = super::Opcode::VSCATTERPF1QPS as u16,
+ VSCATTERQD = super::Opcode::VSCATTERQD as u16,
+ VSCATTERQPD = super::Opcode::VSCATTERQPD as u16,
+ VSCATTERQPS = super::Opcode::VSCATTERQPS as u16,
+ VSCATTERQQ = super::Opcode::VSCATTERQQ as u16,
+ VSHUFF32X4 = super::Opcode::VSHUFF32X4 as u16,
+ VSHUFF64X2 = super::Opcode::VSHUFF64X2 as u16,
+ VSHUFI32X4 = super::Opcode::VSHUFI32X4 as u16,
+ VSHUFI64X2 = super::Opcode::VSHUFI64X2 as u16,
+ VSHUFPD = super::Opcode::VSHUFPD as u16,
+ VSHUFPS = super::Opcode::VSHUFPS as u16,
+ VSQRTPD = super::Opcode::VSQRTPD as u16,
+ VSQRTPS = super::Opcode::VSQRTPS as u16,
+ VSQRTSD = super::Opcode::VSQRTSD as u16,
+ VSQRTSS = super::Opcode::VSQRTSS as u16,
+ VSTMXCSR = super::Opcode::VSTMXCSR as u16,
+ VSUBPD = super::Opcode::VSUBPD as u16,
+ VSUBPS = super::Opcode::VSUBPS as u16,
+ VSUBSD = super::Opcode::VSUBSD as u16,
+ VSUBSS = super::Opcode::VSUBSS as u16,
+ VTESTPD = super::Opcode::VTESTPD as u16,
+ VTESTPS = super::Opcode::VTESTPS as u16,
+ VUCOMISD = super::Opcode::VUCOMISD as u16,
+ VUCOMISS = super::Opcode::VUCOMISS as u16,
+ VUNPCKHPD = super::Opcode::VUNPCKHPD as u16,
+ VUNPCKHPS = super::Opcode::VUNPCKHPS as u16,
+ VUNPCKLPD = super::Opcode::VUNPCKLPD as u16,
+ VUNPCKLPS = super::Opcode::VUNPCKLPS as u16,
+ VXORPD = super::Opcode::VXORPD as u16,
+ VXORPS = super::Opcode::VXORPS as u16,
+ VZEROALL = super::Opcode::VZEROALL as u16,
+ VZEROUPPER = super::Opcode::VZEROUPPER as u16,
+ WAIT = super::Opcode::WAIT as u16,
+ WBINVD = super::Opcode::WBINVD as u16,
+ WRFSBASE = super::Opcode::WRFSBASE as u16,
+ WRGSBASE = super::Opcode::WRGSBASE as u16,
+ WRMSR = super::Opcode::WRMSR as u16,
+ WRPKRU = super::Opcode::WRPKRU as u16,
+ WRSS = super::Opcode::WRSS as u16,
+ WRUSS = super::Opcode::WRUSS as u16,
+ XABORT = super::Opcode::XABORT as u16,
+ XADD = super::Opcode::XADD as u16,
+ XBEGIN = super::Opcode::XBEGIN as u16,
+ XCHG = super::Opcode::XCHG as u16,
+ XEND = super::Opcode::XEND as u16,
+ XGETBV = super::Opcode::XGETBV as u16,
+ XLAT = super::Opcode::XLAT as u16,
+ XOR = super::Opcode::XOR as u16,
+ XORPD = super::Opcode::XORPD as u16,
+ XORPS = super::Opcode::XORPS as u16,
+ XRESLDTRK = super::Opcode::XRESLDTRK as u16,
+ XRSTOR = super::Opcode::XRSTOR as u16,
+ XRSTORS = super::Opcode::XRSTORS as u16,
+ XRSTORS64 = super::Opcode::XRSTORS64 as u16,
+ XSAVE = super::Opcode::XSAVE as u16,
+ XSAVEC = super::Opcode::XSAVEC as u16,
+ XSAVEC64 = super::Opcode::XSAVEC64 as u16,
+ XSAVEOPT = super::Opcode::XSAVEOPT as u16,
+ XSAVES = super::Opcode::XSAVES as u16,
+ XSAVES64 = super::Opcode::XSAVES64 as u16,
+ XSETBV = super::Opcode::XSETBV as u16,
+ XSUSLDTRK = super::Opcode::XSUSLDTRK as u16,
+ XTEST = super::Opcode::XTEST as u16,
+ }
+}
+