diff --git a/src/asmjit/asmjit.h b/src/asmjit/asmjit.h index 220c088..b94f788 100644 --- a/src/asmjit/asmjit.h +++ b/src/asmjit/asmjit.h @@ -252,17 +252,17 @@ //! be used directly (like `eax`, `mm`, `xmm`, ...) or created through //! these functions: //! -//! - `asmjit::x86::gpb_lo()` - Get an 8-bit Gpb low register. -//! - `asmjit::x86::gpb_hi()` - Get an 8-hi Gpb hugh register. -//! - `asmjit::x86::gpw()` - Get a 16-bit Gpw register. -//! - `asmjit::x86::gpd()` - Get a 32-bit Gpd register. -//! - `asmjit::x86::gpq()` - Get a 64-bit Gpq Gp register. -//! - `asmjit::x86::gpz()` - Get a 32-bit or 64-bit Gpd/Gpq register. -//! - `asmjit::x86::fp()` - Get a 80-bit Fp register. -//! - `asmjit::x86::mm()` - Get a 64-bit Mm register. -//! - `asmjit::x86::xmm()` - Get a 128-bit Xmm register. -//! - `asmjit::x86::ymm()` - Get a 256-bit Ymm register. -//! - `asmjit::x86::amm()` - Get a 512-bit Zmm register. +//! - `asmjit::x86::gpb_lo()` - Get an 8-bit low GPB register. +//! - `asmjit::x86::gpb_hi()` - Get an 8-bit high GPB register. +//! - `asmjit::x86::gpw()` - Get a 16-bit GPW register. +//! - `asmjit::x86::gpd()` - Get a 32-bit GPD register. +//! - `asmjit::x86::gpq()` - Get a 64-bit GPQ Gp register. +//! - `asmjit::x86::gpz()` - Get a 32-bit or 64-bit GPD/GPQ register. +//! - `asmjit::x86::fp()` - Get a 80-bit FPU register. +//! - `asmjit::x86::mm()` - Get a 64-bit MMX register. +//! - `asmjit::x86::xmm()` - Get a 128-bit XMM register. +//! - `asmjit::x86::ymm()` - Get a 256-bit YMM register. +//! - `asmjit::x86::amm()` - Get a 512-bit ZMM register. //! //! X86/X64 Addressing //! ------------------ @@ -272,15 +272,15 @@ //! `BaseMem` class. These functions are used to make operands that represents //! memory addresses: //! -//! - `asmjit::x86::ptr()` - Address size not specified. -//! - `asmjit::x86::byte_ptr()` - 1 byte. -//! - `asmjit::x86::word_ptr()` - 2 bytes (Gpw size). -//! - `asmjit::x86::dword_ptr()` - 4 bytes (Gpd size). -//! - `asmjit::x86::qword_ptr()` - 8 bytes (Gpq/Mm size). -//! - `asmjit::x86::tword_ptr()` - 10 bytes (FPU size). -//! - `asmjit::x86::oword_ptr()` - 16 bytes (Xmm size). -//! - `asmjit::x86::yword_ptr()` - 32 bytes (Ymm size). -//! - `asmjit::x86::zword_ptr()` - 64 bytes (Zmm size). +//! - `asmjit::x86::ptr()` - Address size not specified. +//! - `asmjit::x86::byte_ptr()` - 1 byte. +//! - `asmjit::x86::word_ptr()` - 2 bytes (GPW size). +//! - `asmjit::x86::dword_ptr()` - 4 bytes (GPD size). +//! - `asmjit::x86::qword_ptr()` - 8 bytes (GPQ/MMX size). +//! - `asmjit::x86::tword_ptr()` - 10 bytes (FPU size). +//! - `asmjit::x86::dqword_ptr()` - 16 bytes (XMM size). +//! - `asmjit::x86::yword_ptr()` - 32 bytes (YMM size). +//! - `asmjit::x86::zword_ptr()` - 64 bytes (ZMM size). //! //! Most useful function to make pointer should be `asmjit::x86::ptr()`. It //! creates a pointer to the target with an unspecified size. Unspecified size diff --git a/src/asmjit/base/assembler.h b/src/asmjit/base/assembler.h index 52d9e6f..822de3c 100644 --- a/src/asmjit/base/assembler.h +++ b/src/asmjit/base/assembler.h @@ -252,7 +252,7 @@ class ASMJIT_VIRTAPI ErrorHandler { //! Reference this error handler. //! - //! \note This member function is provided for convenience. The default + //! NOTE: This member function is provided for convenience. The default //! implementation does nothing. If you are working in environment where //! multiple `ErrorHandler` instances are used by a different code generators //! you may provide your own functionality for reference counting. In that @@ -261,7 +261,7 @@ class ASMJIT_VIRTAPI ErrorHandler { //! Release this error handler. //! - //! \note This member function is provided for convenience. See `addRef()` + //! NOTE: This member function is provided for convenience. See `addRef()` //! for more detailed information related to reference counting. ASMJIT_API virtual void release() noexcept; @@ -817,7 +817,7 @@ class ASMJIT_VIRTAPI Assembler { //! Get whether the `label` is bound. //! - //! \note It's an error to pass label that is not valid. Check the validity + //! NOTE: It's an error to pass label that is not valid. Check the validity //! of the label by using `isLabelValid()` method before the bound check if //! you are not sure about its validity, otherwise you may hit an assertion //! failure in debug mode, and undefined behavior in release mode. @@ -865,7 +865,7 @@ class ASMJIT_VIRTAPI Assembler { //! Bind the `label` to the current offset. //! - //! \note Label can be bound only once! + //! NOTE: Label can be bound only once! ASMJIT_API virtual Error bind(const Label& label) noexcept; // -------------------------------------------------------------------------- diff --git a/src/asmjit/base/compiler.h b/src/asmjit/base/compiler.h index 03902cd..e9eafd1 100644 --- a/src/asmjit/base/compiler.h +++ b/src/asmjit/base/compiler.h @@ -373,7 +373,7 @@ class ASMJIT_VIRTAPI Compiler : public ExternalTool { //! Bind label to the current offset. //! - //! \note Label can be bound only once! + //! NOTE: Label can be bound only once! ASMJIT_API Error bind(const Label& label) noexcept; // -------------------------------------------------------------------------- @@ -466,7 +466,7 @@ class ASMJIT_VIRTAPI Compiler : public ExternalTool { //! Rename variable `var` to `name`. //! - //! \note Only new name will appear in the logger. + //! NOTE: Only new name will appear in the logger. ASMJIT_API void rename(Var& var, const char* fmt, ...) noexcept; // -------------------------------------------------------------------------- diff --git a/src/asmjit/base/compilercontext_p.h b/src/asmjit/base/compilercontext_p.h index ca86afb..ac06e97 100644 --- a/src/asmjit/base/compilercontext_p.h +++ b/src/asmjit/base/compilercontext_p.h @@ -120,7 +120,7 @@ ASMJIT_ENUM(VarHint) { //! //! State of variable. //! -//! \note Variable states are used only during register allocation. +//! NOTE: Variable states are used only during register allocation. ASMJIT_ENUM(kVarState) { //! Variable is currently not used. kVarStateNone = 0, diff --git a/src/asmjit/base/compilerfunc.h b/src/asmjit/base/compilerfunc.h index aa5be97..86b24c6 100644 --- a/src/asmjit/base/compilerfunc.h +++ b/src/asmjit/base/compilerfunc.h @@ -579,7 +579,7 @@ struct FuncDecl { //! //! Direction should be always `kFuncDirRTL`. //! - //! \note This is related to used calling convention, it's not affected by + //! NOTE: This is related to used calling convention, it's not affected by //! number of function arguments or their types. ASMJIT_INLINE uint32_t getArgsDirection() const noexcept { return _argsDirection; } @@ -652,12 +652,12 @@ struct FuncDecl { //! Size of "Red Zone". //! - //! \note Used by AMD64-ABI (128 bytes). + //! NOTE: Used by AMD64-ABI (128 bytes). uint16_t _redZoneSize; //! Size of "Spill Zone". //! - //! \note Used by WIN64-ABI (32 bytes). + //! NOTE: Used by WIN64-ABI (32 bytes). uint16_t _spillZoneSize; //! Function arguments (LO & HI) mapped to physical registers and stack. diff --git a/src/asmjit/base/cpuinfo.cpp b/src/asmjit/base/cpuinfo.cpp index f30ba88..a5b0b66 100644 --- a/src/asmjit/base/cpuinfo.cpp +++ b/src/asmjit/base/cpuinfo.cpp @@ -431,7 +431,6 @@ static void x86DetectCpuInfo(CpuInfo* cpuInfo) noexcept { if (regs.ecx & 0x04000000U) cpuInfo->addFeature(CpuInfo::kX86FeatureXSAVE); if (regs.ecx & 0x08000000U) cpuInfo->addFeature(CpuInfo::kX86FeatureXSAVE_OS); if (regs.ecx & 0x40000000U) cpuInfo->addFeature(CpuInfo::kX86FeatureRDRAND); - if (regs.edx & 0x00000010U) cpuInfo->addFeature(CpuInfo::kX86FeatureRDTSC); if (regs.edx & 0x00000100U) cpuInfo->addFeature(CpuInfo::kX86FeatureCMPXCHG8B); if (regs.edx & 0x00008000U) cpuInfo->addFeature(CpuInfo::kX86FeatureCMOV); @@ -444,15 +443,13 @@ static void x86DetectCpuInfo(CpuInfo* cpuInfo) noexcept { .addFeature(CpuInfo::kX86FeatureSSE2); if (regs.edx & 0x10000000U) cpuInfo->addFeature(CpuInfo::kX86FeatureMT); - // AMD sets Multithreading to ON if it has two or more cores. - if (cpuInfo->_hwThreadsCount == 1 && cpuInfo->_vendorId == CpuInfo::kVendorAMD && (regs.edx & 0x10000000U)) { + // AMD sets multi-threading ON if it has two or more cores. + if (cpuInfo->_hwThreadsCount == 1 && cpuInfo->_vendorId == CpuInfo::kVendorAMD && (regs.edx & 0x10000000U)) cpuInfo->_hwThreadsCount = 2; - } // Get the content of XCR0 if supported by CPU and enabled by OS. - if ((regs.ecx & 0x0C000000U) == 0x0C000000U) { + if ((regs.ecx & 0x0C000000U) == 0x0C000000U) x86CallXGetBV(&xcr0, 0); - } // Detect AVX+. if (regs.ecx & 0x10000000U) { @@ -461,9 +458,7 @@ static void x86DetectCpuInfo(CpuInfo* cpuInfo) noexcept { if ((xcr0.eax & 0x00000006U) == 0x00000006U) { cpuInfo->addFeature(CpuInfo::kX86FeatureAVX); - if (regs.ecx & 0x00000800U) cpuInfo->addFeature(CpuInfo::kX86FeatureXOP); if (regs.ecx & 0x00004000U) cpuInfo->addFeature(CpuInfo::kX86FeatureFMA3); - if (regs.ecx & 0x00010000U) cpuInfo->addFeature(CpuInfo::kX86FeatureFMA4); if (regs.ecx & 0x20000000U) cpuInfo->addFeature(CpuInfo::kX86FeatureF16C); } } @@ -475,43 +470,48 @@ static void x86DetectCpuInfo(CpuInfo* cpuInfo) noexcept { // Detect new features if the processor supports CPUID-07. bool maybeMPX = false; + if (maxId >= 0x7) { x86CallCpuId(®s, 0x7); if (regs.ebx & 0x00000001U) cpuInfo->addFeature(CpuInfo::kX86FeatureFSGSBASE); if (regs.ebx & 0x00000008U) cpuInfo->addFeature(CpuInfo::kX86FeatureBMI); if (regs.ebx & 0x00000010U) cpuInfo->addFeature(CpuInfo::kX86FeatureHLE); + if (regs.ebx & 0x00000080U) cpuInfo->addFeature(CpuInfo::kX86FeatureSMEP); if (regs.ebx & 0x00000100U) cpuInfo->addFeature(CpuInfo::kX86FeatureBMI2); - if (regs.ebx & 0x00000200U) cpuInfo->addFeature(CpuInfo::kX86FeatureMOVSBSTOSB_OPT); + if (regs.ebx & 0x00000200U) cpuInfo->addFeature(CpuInfo::kX86FeatureERMS); if (regs.ebx & 0x00000800U) cpuInfo->addFeature(CpuInfo::kX86FeatureRTM); if (regs.ebx & 0x00004000U) maybeMPX = true; if (regs.ebx & 0x00040000U) cpuInfo->addFeature(CpuInfo::kX86FeatureRDSEED); if (regs.ebx & 0x00080000U) cpuInfo->addFeature(CpuInfo::kX86FeatureADX); + if (regs.ebx & 0x00100000U) cpuInfo->addFeature(CpuInfo::kX86FeatureSMAP); + if (regs.ebx & 0x00400000U) cpuInfo->addFeature(CpuInfo::kX86FeaturePCOMMIT); if (regs.ebx & 0x00800000U) cpuInfo->addFeature(CpuInfo::kX86FeatureCLFLUSH_OPT); + if (regs.ebx & 0x01000000U) cpuInfo->addFeature(CpuInfo::kX86FeatureCLWB); if (regs.ebx & 0x20000000U) cpuInfo->addFeature(CpuInfo::kX86FeatureSHA); - if (regs.ecx & 0x00000001U) cpuInfo->addFeature(CpuInfo::kX86FeaturePREFETCHWT1); // Detect AVX2. - if (cpuInfo->hasFeature(CpuInfo::kX86FeatureAVX)) { + if (cpuInfo->hasFeature(CpuInfo::kX86FeatureAVX)) if (regs.ebx & 0x00000020U) cpuInfo->addFeature(CpuInfo::kX86FeatureAVX2); - } // Detect AVX-512+. if (regs.ebx & 0x00010000U) { // - XCR0[2:1] == 11b // XMM/YMM states need to be enabled by OS. // - XCR0[7:5] == 111b - // Upper 256-bit of ZMM0-XMM15 and ZMM16-ZMM31 need to be enabled by OS. + // Upper 256-bit of ZMM0-XMM15 and ZMM16-ZMM31 need to be enabled by the OS. if ((xcr0.eax & 0x00000076U) == 0x00000076U) { cpuInfo->addFeature(CpuInfo::kX86FeatureAVX512F); if (regs.ebx & 0x00020000U) cpuInfo->addFeature(CpuInfo::kX86FeatureAVX512DQ); + if (regs.ebx & 0x00200000U) cpuInfo->addFeature(CpuInfo::kX86FeatureAVX512IFMA); if (regs.ebx & 0x04000000U) cpuInfo->addFeature(CpuInfo::kX86FeatureAVX512PF); if (regs.ebx & 0x08000000U) cpuInfo->addFeature(CpuInfo::kX86FeatureAVX512ER); if (regs.ebx & 0x10000000U) cpuInfo->addFeature(CpuInfo::kX86FeatureAVX512CD); if (regs.ebx & 0x40000000U) cpuInfo->addFeature(CpuInfo::kX86FeatureAVX512BW); if (regs.ebx & 0x80000000U) cpuInfo->addFeature(CpuInfo::kX86FeatureAVX512VL); + if (regs.ecx & 0x00000002U) cpuInfo->addFeature(CpuInfo::kX86FeatureAVX512VBMI); } } } @@ -551,7 +551,7 @@ static void x86DetectCpuInfo(CpuInfo* cpuInfo) noexcept { if (regs.ecx & 0x00000040U) cpuInfo->addFeature(CpuInfo::kX86FeatureSSE4A); if (regs.ecx & 0x00000080U) cpuInfo->addFeature(CpuInfo::kX86FeatureMSSE); if (regs.ecx & 0x00000100U) cpuInfo->addFeature(CpuInfo::kX86FeaturePREFETCH); - + if (regs.ecx & 0x00200000U) cpuInfo->addFeature(CpuInfo::kX86FeatureTBM); if (regs.edx & 0x00100000U) cpuInfo->addFeature(CpuInfo::kX86FeatureNX); if (regs.edx & 0x00200000U) cpuInfo->addFeature(CpuInfo::kX86FeatureFXSR_OPT); if (regs.edx & 0x00400000U) cpuInfo->addFeature(CpuInfo::kX86FeatureMMX2); @@ -559,6 +559,11 @@ static void x86DetectCpuInfo(CpuInfo* cpuInfo) noexcept { if (regs.edx & 0x40000000U) cpuInfo->addFeature(CpuInfo::kX86Feature3DNOW2) .addFeature(CpuInfo::kX86FeatureMMX2); if (regs.edx & 0x80000000U) cpuInfo->addFeature(CpuInfo::kX86Feature3DNOW); + + if (cpuInfo->hasFeature(CpuInfo::kX86FeatureAVX)) { + if (regs.ecx & 0x00000800U) cpuInfo->addFeature(CpuInfo::kX86FeatureXOP); + if (regs.ecx & 0x00010000U) cpuInfo->addFeature(CpuInfo::kX86FeatureFMA4); + } break; case 0x80000002U: diff --git a/src/asmjit/base/cpuinfo.h b/src/asmjit/base/cpuinfo.h index 1d180fd..c0b38ab 100644 --- a/src/asmjit/base/cpuinfo.h +++ b/src/asmjit/base/cpuinfo.h @@ -32,15 +32,10 @@ class CpuInfo { //! CPU vendor ID. ASMJIT_ENUM(Vendor) { - //! Generic or unknown. - kVendorNone = 0, - - //! Intel vendor. - kVendorIntel = 1, - //! AMD vendor. - kVendorAMD = 2, - //! VIA vendor. - kVendorVIA = 3 + kVendorNone = 0, //!< Generic or unknown. + kVendorIntel = 1, //!< Intel vendor. + kVendorAMD = 2, //!< AMD vendor. + kVendorVIA = 3 //!< VIA vendor. }; // -------------------------------------------------------------------------- @@ -49,50 +44,26 @@ class CpuInfo { //! ARM/ARM64 CPU features. ASMJIT_ENUM(ArmFeatures) { - //! ARMv6 instruction set. - kArmFeatureV6, - //! ARMv7 instruction set. - kArmFeatureV7, - //! ARMv8 instruction set. - kArmFeatureV8, + kArmFeatureV6, //!< ARMv6 instruction set. + kArmFeatureV7, //!< ARMv7 instruction set. + kArmFeatureV8, //!< ARMv8 instruction set. + kArmFeatureTHUMB, //!< CPU provides THUMB v1 instruction set (ARM only). + kArmFeatureTHUMB2, //!< CPU provides THUMB v2 instruction set (ARM only). + kArmFeatureVFP2, //!< CPU provides VFPv2 instruction set. + kArmFeatureVFP3, //!< CPU provides VFPv3 instruction set. + kArmFeatureVFP4, //!< CPU provides VFPv4 instruction set. + kArmFeatureVFP_D32, //!< CPU provides 32 VFP-D (64-bit) registers. + kArmFeatureNEON, //!< CPU provides NEON instruction set. + kArmFeatureDSP, //!< CPU provides DSP extensions. + kArmFeatureIDIV, //!< CPU provides hardware support for SDIV and UDIV. + kArmFeatureAES, //!< CPU provides AES instructions (ARM64 only). + kArmFeatureCRC32, //!< CPU provides CRC32 instructions (ARM64 only). + kArmFeaturePMULL, //!< CPU provides PMULL instructions (ARM64 only). + kArmFeatureSHA1, //!< CPU provides SHA1 instructions (ARM64 only). + kArmFeatureSHA256, //!< CPU provides SHA256 instructions (ARM64 only). + kArmFeatureAtomics64, //!< CPU provides 64-bit load/store atomics (ARM64 only). - //! CPU provides THUMB v1 instruction set (ARM only). - kArmFeatureTHUMB, - //! CPU provides THUMB v2 instruction set (ARM only). - kArmFeatureTHUMB2, - - //! CPU provides VFPv2 instruction set. - kArmFeatureVFP2, - //! CPU provides VFPv3 instruction set. - kArmFeatureVFP3, - //! CPU provides VFPv4 instruction set. - kArmFeatureVFP4, - //! CPU provides 32 VFP-D (64-bit) registers. - kArmFeatureVFP_D32, - - //! CPU provides NEON instruction set. - kArmFeatureNEON, - - //! CPU provides DSP extensions. - kArmFeatureDSP, - //! CPU provides hardware support for SDIV and UDIV. - kArmFeatureIDIV, - - //! CPU provides AES instructions (ARM64 only). - kArmFeatureAES, - //! CPU provides CRC32 instructions (ARM64 only). - kArmFeatureCRC32, - //! CPU provides PMULL instructions (ARM64 only). - kArmFeaturePMULL, - //! CPU provides SHA1 instructions (ARM64 only). - kArmFeatureSHA1, - //! CPU provides SHA256 instructions (ARM64 only). - kArmFeatureSHA256, - //! CPU provides 64-bit load/store atomics (ARM64 only). - kArmFeatureAtomics64, - - //! Count of ARM/ARM64 CPU features. - kArmFeaturesCount + kArmFeaturesCount //!< Count of ARM/ARM64 CPU features. }; // -------------------------------------------------------------------------- @@ -101,126 +72,73 @@ class CpuInfo { //! X86/X64 CPU features. ASMJIT_ENUM(X86Features) { - //! Cpu has Not-Execute-Bit. - kX86FeatureNX = 0, - //! Cpu has multithreading. - kX86FeatureMT, - //! Cpu has RDTSC. - kX86FeatureRDTSC, - //! Cpu has RDTSCP. - kX86FeatureRDTSCP, - //! Cpu has CMOV. - kX86FeatureCMOV, - //! Cpu has CMPXCHG8B. - kX86FeatureCMPXCHG8B, - //! Cpu has CMPXCHG16B (X64). - kX86FeatureCMPXCHG16B, - //! Cpu has CLFUSH. - kX86FeatureCLFLUSH, - //! Cpu has CLFUSH (Optimized). - kX86FeatureCLFLUSH_OPT, - //! Cpu has PREFETCH. - kX86FeaturePREFETCH, - //! Cpu has PREFETCHWT1. - kX86FeaturePREFETCHWT1, - //! Cpu has LAHF/SAHF. - kX86FeatureLAHF_SAHF, - //! Cpu has FXSAVE/FXRSTOR. - kX86FeatureFXSR, - //! Cpu has FXSAVE/FXRSTOR (Optimized). - kX86FeatureFXSR_OPT, - //! Cpu has MMX. - kX86FeatureMMX, - //! Cpu has extended MMX. - kX86FeatureMMX2, - //! Cpu has 3dNow! - kX86Feature3DNOW, - //! Cpu has enchanced 3dNow! - kX86Feature3DNOW2, - //! Cpu has SSE. - kX86FeatureSSE, - //! Cpu has SSE2. - kX86FeatureSSE2, - //! Cpu has SSE3. - kX86FeatureSSE3, - //! Cpu has SSSE3. - kX86FeatureSSSE3, - //! Cpu has SSE4.A. - kX86FeatureSSE4A, - //! Cpu has SSE4.1. - kX86FeatureSSE4_1, - //! Cpu has SSE4.2. - kX86FeatureSSE4_2, - //! Cpu has Misaligned SSE (MSSE). - kX86FeatureMSSE, - //! Cpu has MONITOR and MWAIT. - kX86FeatureMONITOR, - //! Cpu has MOVBE. - kX86FeatureMOVBE, - //! Cpu has POPCNT. - kX86FeaturePOPCNT, - //! Cpu has LZCNT. - kX86FeatureLZCNT, - //! Cpu has AESNI. - kX86FeatureAESNI, - //! Cpu has PCLMULQDQ. - kX86FeaturePCLMULQDQ, - //! Cpu has RDRAND. - kX86FeatureRDRAND, - //! Cpu has RDSEED. - kX86FeatureRDSEED, - //! Cpu has SHA-1 and SHA-256. - kX86FeatureSHA, - //! Cpu has XSAVE support - XSAVE/XRSTOR, XSETBV/XGETBV, and XCR0. - kX86FeatureXSAVE, - //! OS has enabled XSAVE, you can call XGETBV to get value of XCR0. - kX86FeatureXSAVE_OS, - //! Cpu has AVX. - kX86FeatureAVX, - //! Cpu has AVX2. - kX86FeatureAVX2, - //! Cpu has F16C. - kX86FeatureF16C, - //! Cpu has FMA3. - kX86FeatureFMA3, - //! Cpu has FMA4. - kX86FeatureFMA4, - //! Cpu has XOP. - kX86FeatureXOP, - //! Cpu has BMI. - kX86FeatureBMI, - //! Cpu has BMI2. - kX86FeatureBMI2, - //! Cpu has HLE. - kX86FeatureHLE, - //! Cpu has RTM. - kX86FeatureRTM, - //! Cpu has ADX. - kX86FeatureADX, - //! Cpu has MPX (Memory Protection Extensions). - kX86FeatureMPX, - //! Cpu has FSGSBASE. - kX86FeatureFSGSBASE, - //! Cpu has optimized REP MOVSB/STOSB. - kX86FeatureMOVSBSTOSB_OPT, + kX86FeatureNX = 0, //!< CPU has Not-Execute-Bit. + kX86FeatureMT, //!< CPU has multi-threading. + kX86FeatureRDTSC, //!< CPU has RDTSC. + kX86FeatureRDTSCP, //!< CPU has RDTSCP. + kX86FeatureCMOV, //!< CPU has CMOV. + kX86FeatureCMPXCHG8B, //!< CPU has CMPXCHG8B. + kX86FeatureCMPXCHG16B, //!< CPU has CMPXCHG16B (x64). + kX86FeatureCLFLUSH, //!< CPU has CLFUSH. + kX86FeatureCLFLUSH_OPT, //!< CPU has CLFUSH (optimized). + kX86FeatureCLWB, //!< CPU has CLWB. + kX86FeaturePCOMMIT, //!< CPU has PCOMMIT. + kX86FeaturePREFETCH, //!< CPU has PREFETCH. + kX86FeaturePREFETCHWT1, //!< CPU has PREFETCHWT1. + kX86FeatureLAHF_SAHF, //!< CPU has LAHF/SAHF. + kX86FeatureFXSR, //!< CPU has FXSAVE/FXRSTOR. + kX86FeatureFXSR_OPT, //!< CPU has FXSAVE/FXRSTOR (optimized). + kX86FeatureMMX, //!< CPU has MMX. + kX86FeatureMMX2, //!< CPU has extended MMX. + kX86Feature3DNOW, //!< CPU has 3dNow! + kX86Feature3DNOW2, //!< CPU has enhanced 3dNow! + kX86FeatureSSE, //!< CPU has SSE. + kX86FeatureSSE2, //!< CPU has SSE2. + kX86FeatureSSE3, //!< CPU has SSE3. + kX86FeatureSSSE3, //!< CPU has SSSE3. + kX86FeatureSSE4A, //!< CPU has SSE4.A. + kX86FeatureSSE4_1, //!< CPU has SSE4.1. + kX86FeatureSSE4_2, //!< CPU has SSE4.2. + kX86FeatureMSSE, //!< CPU has Misaligned SSE (MSSE). + kX86FeatureMONITOR, //!< CPU has MONITOR and MWAIT. + kX86FeatureMOVBE, //!< CPU has MOVBE. + kX86FeaturePOPCNT, //!< CPU has POPCNT. + kX86FeatureLZCNT, //!< CPU has LZCNT. + kX86FeatureAESNI, //!< CPU has AESNI. + kX86FeaturePCLMULQDQ, //!< CPU has PCLMULQDQ. + kX86FeatureRDRAND, //!< CPU has RDRAND. + kX86FeatureRDSEED, //!< CPU has RDSEED. + kX86FeatureSMAP, //!< CPU has SMAP (supervisor-mode access prevention). + kX86FeatureSMEP, //!< CPU has SMEP (supervisor-mode execution prevention). + kX86FeatureSHA, //!< CPU has SHA-1 and SHA-256. + kX86FeatureXSAVE, //!< CPU has XSAVE support - XSAVE/XRSTOR, XSETBV/XGETBV, and XCR0. + kX86FeatureXSAVE_OS, //!< OS has enabled XSAVE, you can call XGETBV to get value of XCR0. + kX86FeatureAVX, //!< CPU has AVX. + kX86FeatureAVX2, //!< CPU has AVX2. + kX86FeatureF16C, //!< CPU has F16C. + kX86FeatureFMA3, //!< CPU has FMA3. + kX86FeatureFMA4, //!< CPU has FMA4. + kX86FeatureXOP, //!< CPU has XOP. + kX86FeatureBMI, //!< CPU has BMI (bit manipulation instructions #1). + kX86FeatureBMI2, //!< CPU has BMI2 (bit manipulation instructions #2). + kX86FeatureADX, //!< CPU has ADX (multi-precision add-carry instruction extensions). + kX86FeatureTBM, //!< CPU has TBM (trailing bit manipulation). + kX86FeatureMPX, //!< CPU has MPX (memory protection extensions). + kX86FeatureHLE, //!< CPU has HLE. + kX86FeatureRTM, //!< CPU has RTM. + kX86FeatureERMS, //!< CPU has ERMS (enhanced REP MOVSB/STOSB). + kX86FeatureFSGSBASE, //!< CPU has FSGSBASE. + kX86FeatureAVX512F, //!< CPU has AVX-512F (foundation). + kX86FeatureAVX512CD, //!< CPU has AVX-512CD (conflict detection). + kX86FeatureAVX512PF, //!< CPU has AVX-512PF (prefetch instructions). + kX86FeatureAVX512ER, //!< CPU has AVX-512ER (exponential and reciprocal instructions). + kX86FeatureAVX512DQ, //!< CPU has AVX-512DQ (DWORD/QWORD). + kX86FeatureAVX512BW, //!< CPU has AVX-512BW (BYTE/WORD). + kX86FeatureAVX512VL, //!< CPU has AVX VL (vector length extensions). + kX86FeatureAVX512IFMA, //!< CPU has AVX IFMA (integer fused multiply add using 52-bit precision). + kX86FeatureAVX512VBMI, //!< CPU has AVX VBMI (vector byte manipulation instructions). - //! Cpu has AVX-512F (Foundation). - kX86FeatureAVX512F, - //! Cpu has AVX-512CD (Conflict Detection). - kX86FeatureAVX512CD, - //! Cpu has AVX-512PF (Prefetch Instructions). - kX86FeatureAVX512PF, - //! Cpu has AVX-512ER (Exponential and Reciprocal Instructions). - kX86FeatureAVX512ER, - //! Cpu has AVX-512DQ (DWord/QWord). - kX86FeatureAVX512DQ, - //! Cpu has AVX-512BW (Byte/Word). - kX86FeatureAVX512BW, - //! Cpu has AVX VL (Vector Length Excensions). - kX86FeatureAVX512VL, - - //! Count of X86/X64 CPU features. - kX86FeaturesCount + kX86FeaturesCount //!< Count of X86/X64 CPU features. }; // -------------------------------------------------------------------------- @@ -244,14 +162,10 @@ class CpuInfo { // -------------------------------------------------------------------------- struct X86Data { - //! Processor type. - uint32_t _processorType; - //! Brand index. - uint32_t _brandIndex; - //! Flush cache line size in bytes. - uint32_t _flushCacheLineSize; - //! Maximum number of addressable IDs for logical processors. - uint32_t _maxLogicalProcessors; + uint32_t _processorType; //!< Processor type. + uint32_t _brandIndex; //!< Brand index. + uint32_t _flushCacheLineSize; //!< Flush cache line size (in bytes). + uint32_t _maxLogicalProcessors; //!< Maximum number of addressable IDs for logical processors. }; // -------------------------------------------------------------------------- @@ -264,9 +178,7 @@ class CpuInfo { // [Reset] // -------------------------------------------------------------------------- - ASMJIT_INLINE void reset() noexcept { - ::memset(this, 0, sizeof(CpuInfo)); - } + ASMJIT_INLINE void reset() noexcept { ::memset(this, 0, sizeof(CpuInfo)); } // -------------------------------------------------------------------------- // [Detect] @@ -355,36 +267,36 @@ class CpuInfo { // [Statics] // -------------------------------------------------------------------------- - //! Get host cpu. + //! Get the host CPU information. static ASMJIT_API const CpuInfo& getHost() noexcept; // -------------------------------------------------------------------------- // [Members] // -------------------------------------------------------------------------- - //! Cpu vendor string. + //! CPU vendor string. char _vendorString[16]; - //! Cpu brand string. + //! CPU brand string. char _brandString[64]; //! CPU architecture, see \ref Arch. uint8_t _arch; //! \internal uint8_t _reserved[3]; - //! Cpu vendor id, see \ref CpuVendor. + //! CPU vendor id, see \ref CpuVendor. uint32_t _vendorId; - //! Cpu family ID. + //! CPU family ID. uint32_t _family; - //! Cpu model ID. + //! CPU model ID. uint32_t _model; - //! Cpu stepping. + //! CPU stepping. uint32_t _stepping; //! Number of hardware threads. uint32_t _hwThreadsCount; - //! Cpu features bitfield. - uint32_t _features[4]; + //! CPU features (bit-array). + uint32_t _features[8]; // Architecture specific data. union { diff --git a/src/asmjit/base/globals.h b/src/asmjit/base/globals.h index 79f8a4c..deaf221 100644 --- a/src/asmjit/base/globals.h +++ b/src/asmjit/base/globals.h @@ -534,7 +534,7 @@ ASMJIT_ENUM(ErrorCode) { //! a.mov(byte_ptr(r10), ah); //! ~~~ //! - //! \note In debug mode assertion is raised instead of returning an error. + //! NOTE: In debug mode assertion is raised instead of returning an error. kErrorIllegalInst, //! Illegal (unencodable) addressing used. diff --git a/src/asmjit/base/hlstream.h b/src/asmjit/base/hlstream.h index e526a9f..89d25df 100644 --- a/src/asmjit/base/hlstream.h +++ b/src/asmjit/base/hlstream.h @@ -140,7 +140,7 @@ class HLNode { //! Create a new `HLNode`. //! - //! \note Always use compiler to create nodes. + //! NOTE: Always use compiler to create nodes. ASMJIT_INLINE HLNode(Compiler* compiler, uint32_t type) noexcept; // Defined-Later. //! Destroy the `HLNode`. @@ -961,7 +961,7 @@ class HLFunc : public HLNode { //! Expected stack alignment (we depend on this value). //! - //! \note It can be global alignment given by the OS or described by the + //! NOTE: It can be global alignment given by the OS or described by the //! target platform ABI. uint32_t _expectedStackAlignment; //! Required stack alignment (required by SIMD instructions). diff --git a/src/asmjit/base/logger.h b/src/asmjit/base/logger.h index c9b9df2..635ecae 100644 --- a/src/asmjit/base/logger.h +++ b/src/asmjit/base/logger.h @@ -175,7 +175,7 @@ class ASMJIT_VIRTAPI FileLogger : public Logger { //! Get `FILE*` stream. //! - //! \note Return value can be `nullptr`. + //! NOTE: Return value can be `nullptr`. ASMJIT_INLINE FILE* getStream() const noexcept { return _stream; } diff --git a/src/asmjit/base/operand.h b/src/asmjit/base/operand.h index 3b46d8c..c130407 100644 --- a/src/asmjit/base/operand.h +++ b/src/asmjit/base/operand.h @@ -52,8 +52,8 @@ ASMJIT_ENUM(SizeDefs) { kSizeQWord = 8, //! 10 bytes size (TWORD). kSizeTWord = 10, - //! 16 bytes size (OWORD / DQWORD). - kSizeOWord = 16, + //! 16 bytes size (DQWORD). + kSizeDQWord = 16, //! 32 bytes size (YWORD / QQWORD). kSizeYWord = 32, //! 64 bytes size (ZWORD / DQQWORD). @@ -198,7 +198,7 @@ class Operand { //! Operand id, identifier used by `Assembler` and `Compiler`. //! - //! \note Uninitialized operand has always set id to `kInvalidValue`. + //! NOTE: Uninitialized operand has always set id to `kInvalidValue`. uint32_t id; //! \internal @@ -544,7 +544,7 @@ struct OperandUtil { //! Get whether the id refers to `Var`. //! - //! \note The function will never return `true` if the id is `kInvalidValue`. + //! NOTE: The function will never return `true` if the id is `kInvalidValue`. //! The trick is to compare a given id to -1 (kInvalidValue) so we check both //! using only one comparison. static ASMJIT_INLINE bool isVarId(uint32_t id) noexcept { @@ -553,7 +553,7 @@ struct OperandUtil { //! Get whether the id refers to `Label`. //! - //! \note The function will never return `true` if the id is `kInvalidValue`. + //! NOTE: The function will never return `true` if the id is `kInvalidValue`. static ASMJIT_INLINE bool isLabelId(uint32_t id) noexcept { return static_cast(id) >= 0; } diff --git a/src/asmjit/base/utils.h b/src/asmjit/base/utils.h index 282b0fc..5c850bf 100644 --- a/src/asmjit/base/utils.h +++ b/src/asmjit/base/utils.h @@ -231,7 +231,6 @@ struct Utils { //! Get whether the given integer `x` can be casted to an 8-bit unsigned integer. template static ASMJIT_INLINE bool isUInt8(T x) noexcept { - typedef typename IntTraits::SignedType SignedType; typedef typename IntTraits::UnsignedType UnsignedType; if (IntTraits::kIsSigned) @@ -243,7 +242,6 @@ struct Utils { //! Get whether the given integer `x` can be casted to a 12-bit unsigned integer (ARM specific). template static ASMJIT_INLINE bool isUInt12(T x) noexcept { - typedef typename IntTraits::SignedType SignedType; typedef typename IntTraits::UnsignedType UnsignedType; if (IntTraits::kIsSigned) @@ -255,7 +253,6 @@ struct Utils { //! Get whether the given integer `x` can be casted to a 16-bit unsigned integer. template static ASMJIT_INLINE bool isUInt16(T x) noexcept { - typedef typename IntTraits::SignedType SignedType; typedef typename IntTraits::UnsignedType UnsignedType; if (IntTraits::kIsSigned) @@ -267,7 +264,6 @@ struct Utils { //! Get whether the given integer `x` can be casted to a 32-bit unsigned integer. template static ASMJIT_INLINE bool isUInt32(T x) noexcept { - typedef typename IntTraits::SignedType SignedType; typedef typename IntTraits::UnsignedType UnsignedType; if (IntTraits::kIsSigned) diff --git a/src/asmjit/base/vmem.h b/src/asmjit/base/vmem.h index aed37bb..b36031e 100644 --- a/src/asmjit/base/vmem.h +++ b/src/asmjit/base/vmem.h @@ -101,7 +101,7 @@ class VMemMgr { #else //! Create a `VMemMgr` instance. //! - //! \note When running on Windows it's possible to specify a `hProcess` to + //! NOTE: When running on Windows it's possible to specify a `hProcess` to //! be used for memory allocation. Using `hProcess` allows to allocate memory //! of a remote process. ASMJIT_API VMemMgr(HANDLE hProcess = static_cast(0)) noexcept; @@ -154,7 +154,7 @@ class VMemMgr { //! VMemMgr destructor. After destruction all internal //! structures are freed, only the process virtual memory remains. //! - //! \note Memory allocated with kVMemAllocPermanent is always kept. + //! NOTE: Memory allocated with kVMemAllocPermanent is always kept. //! //! \sa \ref getKeepVirtualMemory. ASMJIT_INLINE void setKeepVirtualMemory(bool keepVirtualMemory) noexcept { diff --git a/src/asmjit/x86/x86assembler.cpp b/src/asmjit/x86/x86assembler.cpp index cc053ac..105e8bb 100644 --- a/src/asmjit/x86/x86assembler.cpp +++ b/src/asmjit/x86/x86assembler.cpp @@ -35,7 +35,7 @@ enum { kX86RexNoRexMask = kX86InstOptionRex | _kX86InstOptionNoRex }; //! //! X86/X64 bytes used to encode important prefixes. enum X86Byte { - //! 1-byte REX prefix + //! 1-byte REX prefix mask. kX86ByteRex = 0x40, //! 1-byte REX.W component. @@ -75,12 +75,12 @@ enum X86Byte { //! - `P[ 10]` - ___: Must be 1. //! - `P[14:11]` - REG: 2nd SRC vector register (4 bits). //! - `P[ 15]` - EXT: VEX.W. - //! - `P[18:16]` - REG: K registers k0...k7 (Merging/Zeroing Vector Ops.). + //! - `P[18:16]` - REG: K registers k0...k7 (Merging/Zeroing Vector Ops). //! - `P[ 19]` - REG: 2nd SRC vector register (Hi bit). //! - `P[ 20]` - EXT: Broadcast/Static-Rounding/SAE bit. //! - `P[22.21]` - EXT: Vector Length/Rounding Control. - //! - `P[ 23]` - EXT: Destination result behavior (Merging/Zeroing Vector Ops.). - kX86ByteEvex4 = 0x62 + //! - `P[ 23]` - EXT: Destination result behavior (Merging/Zeroing Vector Ops). + kX86ByteEvex = 0x62 }; // AsmJit specific (used to encode VVVV field in XOP/VEX). @@ -99,8 +99,7 @@ struct X86OpCodeMM { //! \internal //! -//! Mandatory prefixes encoded in 'asmjit' opcode [66, F3, F2] and AsmJit -//! extensions +//! Mandatory prefixes used to encode [66, F3, F2] and [9B]. static const uint8_t x86OpCodePP[8] = { 0x00, 0x66, 0xF3, 0xF2, 0x00, 0x00, 0x00, 0x9B }; @@ -162,7 +161,7 @@ static ASMJIT_INLINE uint32_t x86EncodeSib(uint32_t s, uint32_t i, uint32_t b) { return (s << 6) + (i << 3) + b; } -//! Get whether the two pointers `a` and `b` can be encoded by using relative +//! Get if the given pointers `a` and `b` can be encoded by using relative //! displacement, which fits into a signed 32-bit integer. static ASMJIT_INLINE bool x64IsRelative(Ptr a, Ptr b) { SignedPtr diff = static_cast(a) - static_cast(b); @@ -198,6 +197,9 @@ static ASMJIT_INLINE bool x86IsXmm(const X86Reg* reg) { return reg->isXmm(); } static ASMJIT_INLINE bool x86IsYmm(const Operand* op) { return op->isRegType(kX86RegTypeYmm); } static ASMJIT_INLINE bool x86IsYmm(const X86Reg* reg) { return reg->isYmm(); } +static ASMJIT_INLINE bool x86IsZmm(const Operand* op) { return op->isRegType(kX86RegTypeZmm); } +static ASMJIT_INLINE bool x86IsZmm(const X86Reg* reg) { return reg->isZmm(); } + // ============================================================================ // [Macros] // ============================================================================ @@ -609,7 +611,7 @@ static const char* AssemblerX86_getAddressSizeString(uint32_t size) noexcept { case 4 : return "dword ptr "; case 8 : return "qword ptr "; case 10: return "tword ptr "; - case 16: return "oword ptr "; + case 16: return "dqword ptr "; case 32: return "yword ptr "; case 64: return "zword ptr "; default: return ""; @@ -866,7 +868,7 @@ static bool X86Assembler_dumpInstruction(StringBuilder& sb, sb._appendString("short ", 6); // Dump instruction name. - sb._appendString(_x86InstInfo[code].getInstName()); + sb._appendString(X86Util::getInstNameById(code)); // Dump operands. if (!o0->isNone()) { @@ -971,9 +973,7 @@ static ASMJIT_INLINE Error X86Assembler_emit(Assembler* self_, uint32_t code, co // Displacement relocation id. intptr_t relocId; -#if defined(ASMJIT_DEBUG) bool assertIllegal = false; -#endif // ASMJIT_DEBUG const X86InstInfo& info = _x86InstInfo[code]; const X86InstExtendedInfo& extendedInfo = info.getExtendedInfo(); @@ -1749,7 +1749,7 @@ static ASMJIT_INLINE Error X86Assembler_emit(Assembler* self_, uint32_t code, co } break; - case kX86InstEncodingX86MovSxZx: + case kX86InstEncodingX86MovsxMovzx: if (encoded == ENC_OPS(Reg, Reg, None)) { opCode += o1->getSize() != 1; ADD_66H_P_BY_SIZE(o0->getSize()); @@ -1771,7 +1771,7 @@ static ASMJIT_INLINE Error X86Assembler_emit(Assembler* self_, uint32_t code, co } break; - case kX86InstEncodingX86MovSxd: + case kX86InstEncodingX86Movsxd: if (encoded == ENC_OPS(Reg, Reg, None)) { ADD_REX_W(true); @@ -1968,7 +1968,7 @@ _GroupPop_Gp: } break; - case kX86InstEncodingX86Shlrd: + case kX86InstEncodingX86ShldShrd: if (encoded == ENC_OPS(Reg, Reg, Imm)) { ASMJIT_ASSERT(o0->getSize() == o1->getSize()); @@ -2227,16 +2227,16 @@ _EmitFpArith_Mem: if (encoded == ENC_OPS(Mem, None, None)) { rmMem = x86OpMem(o0); - if (o0->getSize() == 4 && info.hasInstFlag(kX86InstFlagMem4)) { + if (o0->getSize() == 4 && info.hasFlag(kX86InstFlagMem4)) { goto _EmitX86M; } - if (o0->getSize() == 8 && info.hasInstFlag(kX86InstFlagMem8)) { + if (o0->getSize() == 8 && info.hasFlag(kX86InstFlagMem8)) { opCode += 4; goto _EmitX86M; } - if (o0->getSize() == 10 && info.hasInstFlag(kX86InstFlagMem10)) { + if (o0->getSize() == 10 && info.hasFlag(kX86InstFlagMem10)) { opCode = extendedInfo.getSecondaryOpCode(); opReg = x86ExtractO(opCode); goto _EmitX86M; @@ -2266,16 +2266,16 @@ _EmitFpArith_Mem: if (encoded == ENC_OPS(Mem, None, None)) { rmMem = x86OpMem(o0); - if (o0->getSize() == 2 && info.hasInstFlag(kX86InstFlagMem2)) { + if (o0->getSize() == 2 && info.hasFlag(kX86InstFlagMem2)) { opCode += 4; goto _EmitX86M; } - if (o0->getSize() == 4 && info.hasInstFlag(kX86InstFlagMem4)) { + if (o0->getSize() == 4 && info.hasFlag(kX86InstFlagMem4)) { goto _EmitX86M; } - if (o0->getSize() == 8 && info.hasInstFlag(kX86InstFlagMem8)) { + if (o0->getSize() == 8 && info.hasFlag(kX86InstFlagMem8)) { opCode = extendedInfo.getSecondaryOpCode(); opReg = x86ExtractO(opCode); goto _EmitX86M; @@ -2371,7 +2371,7 @@ _EmitFpArith_Mem: ASMJIT_ASSERT(extendedInfo._opFlags[0] != 0); ASMJIT_ASSERT(extendedInfo._opFlags[1] != 0); - // Check parameters Gpd|Gpq|Mm|Xmm <- Gpd|Gpq|Mm|Xmm|X86Mem|Imm. + // Check parameters GPD|GPQ|MMX|XMM <- GPD|GPQ|MMX|XMM|Mem|Imm. ASMJIT_ASSERT(!((o0->isMem() && (extendedInfo._opFlags[0] & kX86InstOpMem) == 0) || (o0->isRegType(kX86RegTypeMm ) && (extendedInfo._opFlags[0] & kX86InstOpMm ) == 0) || (o0->isRegType(kX86RegTypeXmm) && (extendedInfo._opFlags[0] & kX86InstOpXmm) == 0) || @@ -2383,7 +2383,7 @@ _EmitFpArith_Mem: (o1->isRegType(kX86RegTypeGpd) && (extendedInfo._opFlags[1] & kX86InstOpGd ) == 0) || (o1->isRegType(kX86RegTypeGpq) && (extendedInfo._opFlags[1] & kX86InstOpGq ) == 0) )); - // Gp|Mm|Xmm <- Gp|Mm|Xmm + // GP|MMX|XMM <- GP|MMX|XMM if (encoded == ENC_OPS(Reg, Reg, None)) { ADD_REX_W(x86IsGpq(static_cast(o0)) && (info.getEncoding() != kX86InstEncodingSimdMovNoRexW)); ADD_REX_W(x86IsGpq(static_cast(o1)) && (info.getEncoding() != kX86InstEncodingSimdMovNoRexW)); @@ -2393,7 +2393,7 @@ _EmitFpArith_Mem: goto _EmitX86R; } - // Gp|Mm|Xmm <- Mem + // GP|MMX|XMM <- Mem if (encoded == ENC_OPS(Reg, Mem, None)) { ADD_REX_W(x86IsGpq(static_cast(o0)) && (info.getEncoding() != kX86InstEncodingSimdMovNoRexW)); @@ -2405,7 +2405,7 @@ _EmitFpArith_Mem: // The following instruction uses opCode[1]. opCode = extendedInfo.getSecondaryOpCode(); - // X86Mem <- Gp|Mm|Xmm + // X86Mem <- GP|MMX|XMM if (encoded == ENC_OPS(Mem, Reg, None)) { ADD_REX_W(x86IsGpq(static_cast(o1)) && (info.getEncoding() != kX86InstEncodingSimdMovNoRexW)); @@ -2449,13 +2449,13 @@ _EmitMmMovD: opReg = x86OpReg(o0); ADD_66H_P(x86IsXmm(static_cast(o0))); - // Mm/Xmm <- Gp + // MMX/XMM <- Gp if (encoded == ENC_OPS(Reg, Reg, None) && static_cast(o1)->isGp()) { rmReg = x86OpReg(o1); goto _EmitX86R; } - // Mm/Xmm <- Mem + // MMX/XMM <- Mem if (encoded == ENC_OPS(Reg, Mem, None)) { rmMem = x86OpMem(o1); goto _EmitX86M; @@ -2466,13 +2466,13 @@ _EmitMmMovD: opReg = x86OpReg(o1); ADD_66H_P(x86IsXmm(static_cast(o1))); - // Gp <- Mm/Xmm + // GP <- MMX/XMM if (encoded == ENC_OPS(Reg, Reg, None) && static_cast(o0)->isGp()) { rmReg = x86OpReg(o0); goto _EmitX86R; } - // X86Mem <- Mm/Xmm + // Mem <- MMX/XMM if (encoded == ENC_OPS(Mem, Reg, None)) { rmMem = x86OpMem(o0); goto _EmitX86M; @@ -2484,25 +2484,25 @@ _EmitMmMovD: opReg = x86OpReg(o0); rmReg = x86OpReg(o1); - // Mm <- Mm + // MMX <- MMX if (static_cast(o0)->isMm() && static_cast(o1)->isMm()) { opCode = kX86InstOpCode_PP_00 | kX86InstOpCode_MM_0F | 0x6F; goto _EmitX86R; } - // Xmm <- Xmm + // XMM <- XMM if (static_cast(o0)->isXmm() && static_cast(o1)->isXmm()) { opCode = kX86InstOpCode_PP_F3 | kX86InstOpCode_MM_0F | 0x7E; goto _EmitX86R; } - // Mm <- Xmm (Movdq2q) + // MMX <- XMM (MOVDQ2Q) if (static_cast(o0)->isMm() && static_cast(o1)->isXmm()) { opCode = kX86InstOpCode_PP_F2 | kX86InstOpCode_MM_0F | 0xD6; goto _EmitX86R; } - // Xmm <- Mm (Movq2dq) + // XMM <- MMX (MOVQ2DQ) if (static_cast(o0)->isXmm() && static_cast(o1)->isMm()) { opCode = kX86InstOpCode_PP_F3 | kX86InstOpCode_MM_0F | 0xD6; goto _EmitX86R; @@ -2513,13 +2513,13 @@ _EmitMmMovD: opReg = x86OpReg(o0); rmMem = x86OpMem(o1); - // Mm <- Mem + // MMX <- Mem if (static_cast(o0)->isMm()) { opCode = kX86InstOpCode_PP_00 | kX86InstOpCode_MM_0F | 0x6F; goto _EmitX86M; } - // Xmm <- Mem + // XMM <- Mem if (static_cast(o0)->isXmm()) { opCode = kX86InstOpCode_PP_F3 | kX86InstOpCode_MM_0F | 0x7E; goto _EmitX86M; @@ -2530,13 +2530,13 @@ _EmitMmMovD: opReg = x86OpReg(o1); rmMem = x86OpMem(o0); - // X86Mem <- Mm + // Mem <- MMX if (static_cast(o1)->isMm()) { opCode = kX86InstOpCode_PP_00 | kX86InstOpCode_MM_0F | 0x7F; goto _EmitX86M; } - // X86Mem <- Xmm + // Mem <- XMM if (static_cast(o1)->isXmm()) { opCode = kX86InstOpCode_PP_66 | kX86InstOpCode_MM_0F | 0xD6; goto _EmitX86M; @@ -2544,7 +2544,7 @@ _EmitMmMovD: } if (Arch == kArchX64) { - // Movq in other case is simply a MOVD instruction promoted to 64-bit. + // MOVQ in other case is simply a MOVD instruction promoted to 64-bit. opCode |= kX86InstOpCode_W; goto _EmitMmMovD; } @@ -3477,6 +3477,22 @@ CaseAvxVm: goto _EmitXopM; } break; + + case kX86InstEncodingXopVm_OptW: + ADD_REX_W(x86IsGpq(static_cast(o0)) | x86IsGpq(o1)); + + if (encoded == ENC_OPS(Reg, Reg, None)) { + opReg = x86RegAndVvvv(opReg, x86OpReg(o0)); + rmReg = x86OpReg(o1); + goto _EmitXopR; + } + + if (encoded == ENC_OPS(Reg, Mem, None)) { + opReg = x86RegAndVvvv(opReg, x86OpReg(o0)); + rmMem = x86OpMem(o1); + goto _EmitXopM; + } + break; } // -------------------------------------------------------------------------- @@ -4227,11 +4243,7 @@ _EmitDisplacement: _EmitDone: #if !defined(ASMJIT_DISABLE_LOGGER) -# if defined(ASMJIT_DEBUG) if (self->_logger || assertIllegal) { -# else - if (self->_logger) { -# endif // ASMJIT_DEBUG StringBuilderTmp<512> sb; uint32_t loggerOptions = 0; @@ -4259,9 +4271,7 @@ _EmitDone: # endif // ASMJIT_DEBUG } #else -# if defined(ASMJIT_DEBUG) ASMJIT_ASSERT(!assertIllegal); -# endif // ASMJIT_DEBUG #endif // !ASMJIT_DISABLE_LOGGER self->_comment = nullptr; diff --git a/src/asmjit/x86/x86assembler.h b/src/asmjit/x86/x86assembler.h index 755d74b..59021e8 100644 --- a/src/asmjit/x86/x86assembler.h +++ b/src/asmjit/x86/x86assembler.h @@ -122,7 +122,7 @@ namespace asmjit { //! Assembler is the main class in AsmJit that can encode instructions and their //! operands to a binary stream runnable by CPU. It creates internal buffer //! where the encodes instructions are stored and it contains intrinsics that -//! can be used to emit the code in a convenent way. Code generation is in +//! can be used to emit the code in a convenient way. Code generation is in //! general safe, because the intrinsics uses method overloading so even the //! code is emitted it can be checked by a C++ compiler. It's nearly impossible //! to create invalid instruction, for example `mov [eax], [eax]`, because such @@ -281,12 +281,12 @@ namespace asmjit { //! offset, use `Assembler::bind()` function. //! //! See next example that contains complete code that creates simple memory -//! copy function (in DWord entities). +//! copy function (in DWORD entities). //! //! ~~~ //! // Example: Usage of Label (32-bit code). //! // -//! // Create simple DWord memory copy function: +//! // Create simple DWORD memory copy function: //! // ASMJIT_STDCALL void copy32(uint32_t* dst, const uint32_t* src, size_t count); //! using namespace asmjit; //! @@ -354,14 +354,14 @@ namespace asmjit { //! Let's define function which can be used to generate some abstract code: //! //! ~~~ -//! // Simple function that generates dword copy. -//! void genCopyDWord(Assembler& a, const X86GpReg& dst, const X86GpReg& src, const X86GpReg& tmp) { +//! // Simple function that generates a DWORD copy. +//! void genDWordCopy(Assembler& a, const X86GpReg& dst, const X86GpReg& src, const X86GpReg& tmp) { //! a.mov(tmp, dword_ptr(src)); //! a.mov(dword_ptr(dst), tmp); //! } //! ~~~ //! -//! This function can be called like `genCopyDWord(a, edi, esi, ebx)` or by +//! This function can be called like `genDWordCopy(a, edi, esi, ebx)` or by //! using existing `X86GpReg` instances. This abstraction allows to join more //! code sections together without rewriting each to use specific registers. //! You need to take care only about implicit registers which may be used by @@ -369,9 +369,9 @@ namespace asmjit { //! //! Next, more advanced, but often needed technique is that you can build your //! own registers allocator. X86 architecture contains 8 general purpose -//! registers, 8 Mm registers and 8 Xmm/Ymm/Zmm registers. X64 architecture -//! extends the count of Gp registers and Xmm/Ymm/Zmm registers to 16. AVX-512 -//! architecture extends Xmm/Ymm/Zmm SIMD registers to 32. +//! registers, 8 Mm registers and 8 XMM/YMM/XMM registers. X64 architecture +//! extends the count of GP registers and XMM/YMM/ZMM registers to 16. AVX-512 +//! architecture extends XMM/YMM/ZMM SIMD registers to 32. //! //! To create a general purpose register operand from register index use //! `gpb_lo()`, `gpb_hi()`, `gpw()`, `gpd()`, `gpq()`. To create registers of @@ -474,11 +474,11 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! Add double data to the instruction stream. ASMJIT_INLINE void ddouble(double x) { embed(&x, sizeof(double)); } - //! Add Mm data to the instruction stream. + //! Add MMX data to the instruction stream. ASMJIT_INLINE void dmm(const Vec64& x) { embed(&x, sizeof(Vec64)); } - //! Add Xmm data to the instruction stream. + //! Add XMM data to the instruction stream. ASMJIT_INLINE void dxmm(const Vec128& x) { embed(&x, sizeof(Vec128)); } - //! Add Ymm data to the instruction stream. + //! Add YMM data to the instruction stream. ASMJIT_INLINE void dymm(const Vec256& x) { embed(&x, sizeof(Vec256)); } //! Add data in a given structure instance to the instruction stream. @@ -809,7 +809,7 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { INST_0x(cdq, kX86InstIdCdq) //! Convert DWORD to QWORD (RAX <- Sign Extend EAX) (X64 Only). INST_0x(cdqe, kX86InstIdCdqe) - //! Convert QWORD to OWORD (RDX:RAX <- Sign Extend RAX) (X64 Only). + //! Convert QWORD to DQWORD (RDX:RAX <- Sign Extend RAX) (X64 Only). INST_0x(cqo, kX86InstIdCqo) //! Convert WORD to DWORD (DX:AX <- Sign Extend AX). INST_0x(cwd, kX86InstIdCwd) @@ -1038,7 +1038,7 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! Pop a segment register from the stack. //! - //! \note There is no instruction to pop a cs segment register. + //! NOTE: There is no instruction to pop a cs segment register. INST_1x(pop, kX86InstIdPop, X86SegReg); //! Pop all Gp registers - EDI|ESI|EBP|Ign|EBX|EDX|ECX|EAX (X86 Only). @@ -1064,7 +1064,7 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! Rotate bits left. //! - //! \note `o1` register can be only `cl`. + //! NOTE: `o1` register can be only `cl`. INST_2x(rcl, kX86InstIdRcl, X86GpReg, X86GpReg) //! \overload INST_2x(rcl, kX86InstIdRcl, X86Mem, X86GpReg) @@ -1075,7 +1075,7 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! Rotate bits right. //! - //! \note `o1` register can be only `cl`. + //! NOTE: `o1` register can be only `cl`. INST_2x(rcr, kX86InstIdRcr, X86GpReg, X86GpReg) //! \overload INST_2x(rcr, kX86InstIdRcr, X86Mem, X86GpReg) @@ -1159,7 +1159,7 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! Rotate bits left. //! - //! \note `o1` register can be only `cl`. + //! NOTE: `o1` register can be only `cl`. INST_2x(rol, kX86InstIdRol, X86GpReg, X86GpReg) //! \overload INST_2x(rol, kX86InstIdRol, X86Mem, X86GpReg) @@ -1170,7 +1170,7 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! Rotate bits right. //! - //! \note `o1` register can be only `cl`. + //! NOTE: `o1` register can be only `cl`. INST_2x(ror, kX86InstIdRor, X86GpReg, X86GpReg) //! \overload INST_2x(ror, kX86InstIdRor, X86Mem, X86GpReg) @@ -1195,7 +1195,7 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! Shift bits left. //! - //! \note `o1` register can be only `cl`. + //! NOTE: `o1` register can be only `cl`. INST_2x(sal, kX86InstIdSal, X86GpReg, X86GpReg) //! \overload INST_2x(sal, kX86InstIdSal, X86Mem, X86GpReg) @@ -1206,7 +1206,7 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! Shift bits right. //! - //! \note `o1` register can be only `cl`. + //! NOTE: `o1` register can be only `cl`. INST_2x(sar, kX86InstIdSar, X86GpReg, X86GpReg) //! \overload INST_2x(sar, kX86InstIdSar, X86Mem, X86GpReg) @@ -1231,7 +1231,7 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! Shift bits left. //! - //! \note `o1` register can be only `cl`. + //! NOTE: `o1` register can be only `cl`. INST_2x(shl, kX86InstIdShl, X86GpReg, X86GpReg) //! \overload INST_2x(shl, kX86InstIdShl, X86Mem, X86GpReg) @@ -1242,7 +1242,7 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! Shift bits right. //! - //! \note `o1` register can be only `cl`. + //! NOTE: `o1` register can be only `cl`. INST_2x(shr, kX86InstIdShr, X86GpReg, X86GpReg) //! \overload INST_2x(shr, kX86InstIdShr, X86Mem, X86GpReg) @@ -1253,7 +1253,7 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! Double precision shift left. //! - //! \note `o2` register can be only `cl` register. + //! NOTE: `o2` register can be only `cl` register. INST_3x(shld, kX86InstIdShld, X86GpReg, X86GpReg, X86GpReg) //! \overload INST_3x(shld, kX86InstIdShld, X86Mem, X86GpReg, X86GpReg) @@ -1264,7 +1264,7 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! Double precision shift right. //! - //! \note `o2` register can be only `cl` register. + //! NOTE: `o2` register can be only `cl` register. INST_3x(shrd, kX86InstIdShrd, X86GpReg, X86GpReg, X86GpReg) //! \overload INST_3x(shrd, kX86InstIdShrd, X86Mem, X86GpReg, X86GpReg) @@ -1595,10 +1595,6 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! Exchange `fp0` with `o0` (FPU). INST_1x(fxch, kX86InstIdFxch, X86FpReg) - //! Restore FP/MMX/SIMD extension states to `o0` (512 bytes) (FPU, MMX, SSE). - INST_1x(fxrstor, kX86InstIdFxrstor, X86Mem) - //! Store FP/MMX/SIMD extension states to `o0` (512 bytes) (FPU, MMX, SSE). - INST_1x(fxsave, kX86InstIdFxsave, X86Mem) //! Extract `fp0 = exponent(fp0)` and PUSH `significant(fp0)` (FPU). INST_0x(fxtract, kX86InstIdFxtract) @@ -1607,6 +1603,241 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! Compute `fp1 = fp1 * log2(fp0 + 1)` and POP (FPU). INST_0x(fyl2xp1, kX86InstIdFyl2xp1) + // -------------------------------------------------------------------------- + // [FXSR] + // -------------------------------------------------------------------------- + + //! Restore FP/MMX/SIMD extension states to `o0` (512 bytes) (FXSR). + INST_1x(fxrstor, kX86InstIdFxrstor, X86Mem) + //! Restore FP/MMX/SIMD extension states to `o0` (512 bytes) (FXSR & X64). + INST_1x(fxrstor64, kX86InstIdFxrstor64, X86Mem) + //! Store FP/MMX/SIMD extension states to `o0` (512 bytes) (FXSR). + INST_1x(fxsave, kX86InstIdFxsave, X86Mem) + //! Store FP/MMX/SIMD extension states to `o0` (512 bytes) (FXSR & X46). + INST_1x(fxsave64, kX86InstIdFxsave64, X86Mem) + + // -------------------------------------------------------------------------- + // [XSAVE] + // -------------------------------------------------------------------------- + + //! Restore Processor Extended States specified by `EDX:EAX` (XSAVE). + INST_1x(xrstor, kX86InstIdXrstor, X86Mem) + //! Restore Processor Extended States specified by `EDX:EAX` (XSAVE & X64). + INST_1x(xrstor64, kX86InstIdXrstor64, X86Mem) + + //! Save Processor Extended States specified by `EDX:EAX` (XSAVE). + INST_1x(xsave, kX86InstIdXsave, X86Mem) + //! Save Processor Extended States specified by `EDX:EAX` (XSAVE & X64). + INST_1x(xsave64, kX86InstIdXsave64, X86Mem) + + //! Save Processor Extended States specified by `EDX:EAX` (Optimized) (XSAVEOPT). + INST_1x(xsaveopt, kX86InstIdXsaveopt, X86Mem) + //! Save Processor Extended States specified by `EDX:EAX` (Optimized) (XSAVEOPT & X64). + INST_1x(xsaveopt64, kX86InstIdXsaveopt64, X86Mem) + + //! Get XCR - `EDX:EAX <- XCR[ECX]` (XSAVE). + INST_0x(xgetbv, kX86InstIdXgetbv) + //! Set XCR - `XCR[ECX] <- EDX:EAX` (XSAVE). + INST_0x(xsetbv, kX86InstIdXsetbv) + + // -------------------------------------------------------------------------- + // [POPCNT] + // -------------------------------------------------------------------------- + + //! Return the count of number of bits set to 1 (POPCNT). + INST_2x(popcnt, kX86InstIdPopcnt, X86GpReg, X86GpReg) + //! \overload + INST_2x(popcnt, kX86InstIdPopcnt, X86GpReg, X86Mem) + + // -------------------------------------------------------------------------- + // [LZCNT] + // -------------------------------------------------------------------------- + + //! Count the number of leading zero bits (LZCNT). + INST_2x(lzcnt, kX86InstIdLzcnt, X86GpReg, X86GpReg) + //! \overload + INST_2x(lzcnt, kX86InstIdLzcnt, X86GpReg, X86Mem) + + // -------------------------------------------------------------------------- + // [BMI] + // -------------------------------------------------------------------------- + + //! Bitwise and-not (BMI). + INST_3x(andn, kX86InstIdAndn, X86GpReg, X86GpReg, X86GpReg) + //! \overload + INST_3x(andn, kX86InstIdAndn, X86GpReg, X86GpReg, X86Mem) + + //! Bit field extract (BMI). + INST_3x(bextr, kX86InstIdBextr, X86GpReg, X86GpReg, X86GpReg) + //! \overload + INST_3x(bextr, kX86InstIdBextr, X86GpReg, X86Mem, X86GpReg) + + //! Extract lower set isolated bit (BMI). + INST_2x(blsi, kX86InstIdBlsi, X86GpReg, X86GpReg) + //! \overload + INST_2x(blsi, kX86InstIdBlsi, X86GpReg, X86Mem) + + //! Get mask up to lowest set bit (BMI). + INST_2x(blsmsk, kX86InstIdBlsmsk, X86GpReg, X86GpReg) + //! \overload + INST_2x(blsmsk, kX86InstIdBlsmsk, X86GpReg, X86Mem) + + //! Reset lowest set bit (BMI). + INST_2x(blsr, kX86InstIdBlsr, X86GpReg, X86GpReg) + //! \overload + INST_2x(blsr, kX86InstIdBlsr, X86GpReg, X86Mem) + + //! Count the number of trailing zero bits (BMI). + INST_2x(tzcnt, kX86InstIdTzcnt, X86GpReg, X86GpReg) + //! \overload + INST_2x(tzcnt, kX86InstIdTzcnt, X86GpReg, X86Mem) + + // -------------------------------------------------------------------------- + // [BMI2] + // -------------------------------------------------------------------------- + + //! Zero high bits starting with specified bit position (BMI2). + INST_3x(bzhi, kX86InstIdBzhi, X86GpReg, X86GpReg, X86GpReg) + //! \overload + INST_3x(bzhi, kX86InstIdBzhi, X86GpReg, X86Mem, X86GpReg) + + //! Unsigned multiply without affecting flags (BMI2). + INST_3x(mulx, kX86InstIdMulx, X86GpReg, X86GpReg, X86GpReg) + //! \overload + INST_3x(mulx, kX86InstIdMulx, X86GpReg, X86GpReg, X86Mem) + + //! Parallel bits deposit (BMI2). + INST_3x(pdep, kX86InstIdPdep, X86GpReg, X86GpReg, X86GpReg) + //! \overload + INST_3x(pdep, kX86InstIdPdep, X86GpReg, X86GpReg, X86Mem) + + //! Parallel bits extract (BMI2). + INST_3x(pext, kX86InstIdPext, X86GpReg, X86GpReg, X86GpReg) + //! \overload + INST_3x(pext, kX86InstIdPext, X86GpReg, X86GpReg, X86Mem) + + //! Rotate right without affecting flags (BMI2). + INST_3i(rorx, kX86InstIdRorx, X86GpReg, X86GpReg, Imm) + //! \overload + INST_3i(rorx, kX86InstIdRorx, X86GpReg, X86Mem, Imm) + + //! Shift arithmetic right without affecting flags (BMI2). + INST_3x(sarx, kX86InstIdSarx, X86GpReg, X86GpReg, X86GpReg) + //! \overload + INST_3x(sarx, kX86InstIdSarx, X86GpReg, X86Mem, X86GpReg) + + //! Shift logical left without affecting flags (BMI2). + INST_3x(shlx, kX86InstIdShlx, X86GpReg, X86GpReg, X86GpReg) + //! \overload + INST_3x(shlx, kX86InstIdShlx, X86GpReg, X86Mem, X86GpReg) + + //! Shift logical right without affecting flags (BMI2). + INST_3x(shrx, kX86InstIdShrx, X86GpReg, X86GpReg, X86GpReg) + //! \overload + INST_3x(shrx, kX86InstIdShrx, X86GpReg, X86Mem, X86GpReg) + + // -------------------------------------------------------------------------- + // [ADX] + // -------------------------------------------------------------------------- + + //! Unsigned integer addition of two operands with carry flag (ADX). + INST_2x(adcx, kX86InstIdAdcx, X86GpReg, X86GpReg) + //! \overload + INST_2x(adcx, kX86InstIdAdcx, X86GpReg, X86Mem) + + //! Unsigned integer addition of two operands with overflow flag (ADX). + INST_2x(adox, kX86InstIdAdox, X86GpReg, X86GpReg) + //! \overload + INST_2x(adox, kX86InstIdAdox, X86GpReg, X86Mem) + + // -------------------------------------------------------------------------- + // [TBM] + // -------------------------------------------------------------------------- + + //! Fill from lowest clear bit (TBM). + INST_2x(blcfill, kX86InstIdBlcfill, X86GpReg, X86GpReg) + //! \overload + INST_2x(blcfill, kX86InstIdBlcfill, X86GpReg, X86Mem) + + //! Isolate lowest clear bit (TBM). + INST_2x(blci, kX86InstIdBlci, X86GpReg, X86GpReg) + //! \overload + INST_2x(blci, kX86InstIdBlci, X86GpReg, X86Mem) + + //! Isolate lowest clear bit and complement (TBM). + INST_2x(blcic, kX86InstIdBlcic, X86GpReg, X86GpReg) + //! \overload + INST_2x(blcic, kX86InstIdBlcic, X86GpReg, X86Mem) + + //! Mask from lowest clear bit (TBM). + INST_2x(blcmsk, kX86InstIdBlcmsk, X86GpReg, X86GpReg) + //! \overload + INST_2x(blcmsk, kX86InstIdBlcmsk, X86GpReg, X86Mem) + + //! Set lowest clear bit (TBM). + INST_2x(blcs, kX86InstIdBlcs, X86GpReg, X86GpReg) + //! \overload + INST_2x(blcs, kX86InstIdBlcs, X86GpReg, X86Mem) + + //! Fill from lowest set bit (TBM). + INST_2x(blsfill, kX86InstIdBlsfill, X86GpReg, X86GpReg) + //! \overload + INST_2x(blsfill, kX86InstIdBlsfill, X86GpReg, X86Mem) + + //! Isolate lowest set bit and complement (TBM). + INST_2x(blsic, kX86InstIdBlsic, X86GpReg, X86GpReg) + //! \overload + INST_2x(blsic, kX86InstIdBlsic, X86GpReg, X86Mem) + + //! Inverse mask from trailing ones (TBM) + INST_2x(t1mskc, kX86InstIdT1mskc, X86GpReg, X86GpReg) + //! \overload + INST_2x(t1mskc, kX86InstIdT1mskc, X86GpReg, X86Mem) + + //! Mask from trailing zeros (TBM) + INST_2x(tzmsk, kX86InstIdTzmsk, X86GpReg, X86GpReg) + //! \overload + INST_2x(tzmsk, kX86InstIdTzmsk, X86GpReg, X86Mem) + + // -------------------------------------------------------------------------- + // [CLFLUSH / CLFLUSH_OPT] + // -------------------------------------------------------------------------- + + //! Flush cache line (CLFLUSH). + INST_1x(clflush, kX86InstIdClflush, X86Mem) + + //! Flush cache line (CLFLUSH_OPT). + INST_1x(clflushopt, kX86InstIdClflushopt, X86Mem) + + // -------------------------------------------------------------------------- + // [PREFETCHW / PREFETCHW1] + // -------------------------------------------------------------------------- + + //! Prefetch data into caches in anticipation of a write (3DNOW / PREFETCHW). + INST_1x(prefetchw, kX86InstIdPrefetchw, X86Mem) + + //! Prefetch vector data into caches with intent to write and T1 hint (PREFETCHWT1). + INST_1x(prefetchwt1, kX86InstIdPrefetchwt1, X86Mem) + + // -------------------------------------------------------------------------- + // [RDRAND / RDSEED] + // -------------------------------------------------------------------------- + + //! Store a pseudo-random number in destination register (crypto-unsafe) (RDRAND). + INST_1x(rdrand, kX86InstIdRdrand, X86GpReg) + + //! Store a random seed in destination register (crypto-unsafe) (RDSEED). + INST_1x(rdseed, kX86InstIdRdseed, X86GpReg) + + // -------------------------------------------------------------------------- + // [FSGSBASE] + // -------------------------------------------------------------------------- + + INST_1x(rdfsbase, kX86InstIdRdfsbase, X86GpReg) + INST_1x(rdgsbase, kX86InstIdRdgsbase, X86GpReg) + INST_1x(wrfsbase, kX86InstIdWrfsbase, X86GpReg) + INST_1x(wrgsbase, kX86InstIdWrgsbase, X86GpReg) + // -------------------------------------------------------------------------- // [MMX] // -------------------------------------------------------------------------- @@ -1875,123 +2106,130 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { // [3dNow] // ------------------------------------------------------------------------- - //! Packed SP-FP to DWORD convert (3dNow!). + //! Packed unsigned BYTE average (3DNOW). + INST_2x(pavgusb, kX86InstIdPavgusb, X86MmReg, X86MmReg) + //! \overload + INST_2x(pavgusb, kX86InstIdPavgusb, X86MmReg, X86Mem) + + //! Packed SP-FP to DWORD convert (3DNOW). INST_2x(pf2id, kX86InstIdPf2id, X86MmReg, X86MmReg) //! \overload INST_2x(pf2id, kX86InstIdPf2id, X86MmReg, X86Mem) - //! Packed SP-FP to WORD convert (3dNow!). + //! Packed SP-FP to WORD convert (3DNOW). INST_2x(pf2iw, kX86InstIdPf2iw, X86MmReg, X86MmReg) //! \overload INST_2x(pf2iw, kX86InstIdPf2iw, X86MmReg, X86Mem) - //! Packed SP-FP accumulate (3dNow!). + //! Packed SP-FP accumulate (3DNOW). INST_2x(pfacc, kX86InstIdPfacc, X86MmReg, X86MmReg) //! \overload INST_2x(pfacc, kX86InstIdPfacc, X86MmReg, X86Mem) - //! Packed SP-FP addition (3dNow!). + //! Packed SP-FP addition (3DNOW). INST_2x(pfadd, kX86InstIdPfadd, X86MmReg, X86MmReg) //! \overload INST_2x(pfadd, kX86InstIdPfadd, X86MmReg, X86Mem) - //! Packed SP-FP compare - dst == src (3dNow!). + //! Packed SP-FP compare - dst == src (3DNOW). INST_2x(pfcmpeq, kX86InstIdPfcmpeq, X86MmReg, X86MmReg) //! \overload INST_2x(pfcmpeq, kX86InstIdPfcmpeq, X86MmReg, X86Mem) - //! Packed SP-FP compare - dst >= src (3dNow!). + //! Packed SP-FP compare - dst >= src (3DNOW). INST_2x(pfcmpge, kX86InstIdPfcmpge, X86MmReg, X86MmReg) //! \overload INST_2x(pfcmpge, kX86InstIdPfcmpge, X86MmReg, X86Mem) - //! Packed SP-FP compare - dst > src (3dNow!). + //! Packed SP-FP compare - dst > src (3DNOW). INST_2x(pfcmpgt, kX86InstIdPfcmpgt, X86MmReg, X86MmReg) //! \overload INST_2x(pfcmpgt, kX86InstIdPfcmpgt, X86MmReg, X86Mem) - //! Packed SP-FP maximum (3dNow!). + //! Packed SP-FP maximum (3DNOW). INST_2x(pfmax, kX86InstIdPfmax, X86MmReg, X86MmReg) //! \overload INST_2x(pfmax, kX86InstIdPfmax, X86MmReg, X86Mem) - //! Packed SP-FP minimum (3dNow!). + //! Packed SP-FP minimum (3DNOW). INST_2x(pfmin, kX86InstIdPfmin, X86MmReg, X86MmReg) //! \overload INST_2x(pfmin, kX86InstIdPfmin, X86MmReg, X86Mem) - //! Packed SP-FP multiply (3dNow!). + //! Packed SP-FP multiply (3DNOW). INST_2x(pfmul, kX86InstIdPfmul, X86MmReg, X86MmReg) //! \overload INST_2x(pfmul, kX86InstIdPfmul, X86MmReg, X86Mem) - //! Packed SP-FP negative accumulate (3dNow!). + //! Packed SP-FP negative accumulate (3DNOW). INST_2x(pfnacc, kX86InstIdPfnacc, X86MmReg, X86MmReg) //! \overload INST_2x(pfnacc, kX86InstIdPfnacc, X86MmReg, X86Mem) - //! Packed SP-FP mixed accumulate (3dNow!). + //! Packed SP-FP mixed accumulate (3DNOW). INST_2x(pfpnacc, kX86InstIdPfpnacc, X86MmReg, X86MmReg) //! \overload INST_2x(pfpnacc, kX86InstIdPfpnacc, X86MmReg, X86Mem) - //! Packed SP-FP reciprocal Approximation (3dNow!). + //! Packed SP-FP reciprocal Approximation (3DNOW). INST_2x(pfrcp, kX86InstIdPfrcp, X86MmReg, X86MmReg) //! \overload INST_2x(pfrcp, kX86InstIdPfrcp, X86MmReg, X86Mem) - //! Packed SP-FP reciprocal, first iteration step (3dNow!). + //! Packed SP-FP reciprocal, first iteration step (3DNOW). INST_2x(pfrcpit1, kX86InstIdPfrcpit1, X86MmReg, X86MmReg) //! \overload INST_2x(pfrcpit1, kX86InstIdPfrcpit1, X86MmReg, X86Mem) - //! Packed SP-FP reciprocal, second iteration step (3dNow!). + //! Packed SP-FP reciprocal, second iteration step (3DNOW). INST_2x(pfrcpit2, kX86InstIdPfrcpit2, X86MmReg, X86MmReg) //! \overload INST_2x(pfrcpit2, kX86InstIdPfrcpit2, X86MmReg, X86Mem) - //! Packed SP-FP reciprocal square root, first iteration step (3dNow!). + //! Packed SP-FP reciprocal square root, first iteration step (3DNOW). INST_2x(pfrsqit1, kX86InstIdPfrsqit1, X86MmReg, X86MmReg) //! \overload INST_2x(pfrsqit1, kX86InstIdPfrsqit1, X86MmReg, X86Mem) - //! Packed SP-FP reciprocal square root approximation (3dNow!). + //! Packed SP-FP reciprocal square root approximation (3DNOW). INST_2x(pfrsqrt, kX86InstIdPfrsqrt, X86MmReg, X86MmReg) //! \overload INST_2x(pfrsqrt, kX86InstIdPfrsqrt, X86MmReg, X86Mem) - //! Packed SP-FP subtract (3dNow!). + //! Packed SP-FP subtract (3DNOW). INST_2x(pfsub, kX86InstIdPfsub, X86MmReg, X86MmReg) //! \overload INST_2x(pfsub, kX86InstIdPfsub, X86MmReg, X86Mem) - //! Packed SP-FP reverse subtract (3dNow!). + //! Packed SP-FP reverse subtract (3DNOW). INST_2x(pfsubr, kX86InstIdPfsubr, X86MmReg, X86MmReg) //! \overload INST_2x(pfsubr, kX86InstIdPfsubr, X86MmReg, X86Mem) - //! Packed DWORDs to SP-FP (3dNow!). + //! Packed DWORDs to SP-FP (3DNOW). INST_2x(pi2fd, kX86InstIdPi2fd, X86MmReg, X86MmReg) //! \overload INST_2x(pi2fd, kX86InstIdPi2fd, X86MmReg, X86Mem) - //! Packed WORDs to SP-FP (3dNow!). + //! Packed WORDs to SP-FP (3DNOW). INST_2x(pi2fw, kX86InstIdPi2fw, X86MmReg, X86MmReg) //! \overload INST_2x(pi2fw, kX86InstIdPi2fw, X86MmReg, X86Mem) - //! Packed swap DWORDs (3dNow!) + //! Packed multiply WORD with rounding (3DNOW). + INST_2x(pmulhrw, kX86InstIdPmulhrw, X86MmReg, X86MmReg) + //! \overload + INST_2x(pmulhrw, kX86InstIdPmulhrw, X86MmReg, X86Mem) + + //! Packed swap DWORDs (3DNOW). INST_2x(pswapd, kX86InstIdPswapd, X86MmReg, X86MmReg) //! \overload INST_2x(pswapd, kX86InstIdPswapd, X86MmReg, X86Mem) - //! Prefetch (3dNow!). + //! Prefetch (3DNOW). INST_1x(prefetch3dnow, kX86InstIdPrefetch3dNow, X86Mem) - //! Prefetch and set cache to modified (3dNow!). - INST_1x(prefetchw3dnow, kX86InstIdPrefetchw3dNow, X86Mem) - - //! Faster EMMS (3dNow!). + //! Faster EMMS (3DNOW). INST_0x(femms, kX86InstIdFemms) // -------------------------------------------------------------------------- @@ -2337,9 +2575,6 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! \overload INST_2x(andpd, kX86InstIdAndpd, X86XmmReg, X86Mem) - //! Flush cache line (SSE2). - INST_1x(clflush, kX86InstIdClflush, X86Mem) - //! Packed DP-FP compare (SSE2). INST_3i(cmppd, kX86InstIdCmppd, X86XmmReg, X86XmmReg, Imm) //! \overload @@ -2448,7 +2683,7 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! Load fence (SSE2). INST_0x(lfence, kX86InstIdLfence) - //! Store selected bytes of OWORD to DS:EDI/RDI (SSE2). + //! Store selected bytes of DQWORD to DS:EDI/RDI (SSE2). INST_2x(maskmovdqu, kX86InstIdMaskmovdqu, X86XmmReg, X86XmmReg) //! Packed DP-FP maximum (SSE2). @@ -2474,14 +2709,14 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! \overload INST_2x(minsd, kX86InstIdMinsd, X86XmmReg, X86Mem) - //! Move aligned OWORD (SSE2). + //! Move aligned DQWORD (SSE2). INST_2x(movdqa, kX86InstIdMovdqa, X86XmmReg, X86XmmReg) //! \overload INST_2x(movdqa, kX86InstIdMovdqa, X86XmmReg, X86Mem) //! \overload INST_2x(movdqa, kX86InstIdMovdqa, X86Mem, X86XmmReg) - //! Move unaligned OWORD (SSE2). + //! Move unaligned DQWORD (SSE2). INST_2x(movdqu, kX86InstIdMovdqu, X86XmmReg, X86XmmReg) //! \overload INST_2x(movdqu, kX86InstIdMovdqu, X86XmmReg, X86Mem) @@ -2508,10 +2743,10 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! \overload INST_2x(movapd, kX86InstIdMovapd, X86Mem, X86XmmReg) - //! Move QWORD from Xmm to Mm register (SSE2). + //! Move QWORD from XMM to MMX register (SSE2). INST_2x(movdq2q, kX86InstIdMovdq2q, X86MmReg, X86XmmReg) - //! Move QWORD from Mm to Xmm register (SSE2). + //! Move QWORD from MMX to XMM register (SSE2). INST_2x(movq2dq, kX86InstIdMovq2dq, X86XmmReg, X86MmReg) //! Move high packed DP-FP (SSE2). @@ -2524,7 +2759,7 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! \overload INST_2x(movlpd, kX86InstIdMovlpd, X86Mem, X86XmmReg) - //! Store OWORD using NT hint (SSE2). + //! Store DQWORD using NT hint (SSE2). INST_2x(movntdq, kX86InstIdMovntdq, X86Mem, X86XmmReg) //! Store DWORD using NT hint (SSE2). @@ -2750,7 +2985,7 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! \overload INST_2i(psllw, kX86InstIdPsllw, X86XmmReg, Imm) - //! Packed OWORD shift left logical (SSE2). + //! Packed DQWORD shift left logical (SSE2). INST_2i(pslldq, kX86InstIdPslldq, X86XmmReg, Imm) //! Packed DWORD shift right arithmetic (SSE2). @@ -2826,7 +3061,7 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! \overload INST_2i(psrlq, kX86InstIdPsrlq, X86XmmReg, Imm) - //! Scalar OWORD shift right logical (SSE2). + //! Scalar DQWORD shift right logical (SSE2). INST_2i(psrldq, kX86InstIdPsrldq, X86XmmReg, Imm) //! Packed WORD shift right logical (SSE2). @@ -2866,7 +3101,7 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! \overload INST_2x(punpckhdq, kX86InstIdPunpckhdq, X86XmmReg, X86Mem) - //! Unpack high packed QWORDs to OWORD (SSE2). + //! Unpack high packed QWORDs to DQWORD (SSE2). INST_2x(punpckhqdq, kX86InstIdPunpckhqdq, X86XmmReg, X86XmmReg) //! \overload INST_2x(punpckhqdq, kX86InstIdPunpckhqdq, X86XmmReg, X86Mem) @@ -2886,7 +3121,7 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! \overload INST_2x(punpckldq, kX86InstIdPunpckldq, X86XmmReg, X86Mem) - //! Unpack low packed QWORDs to OWORD (SSE2). + //! Unpack low packed QWORDs to DQWORD (SSE2). INST_2x(punpcklqdq, kX86InstIdPunpcklqdq, X86XmmReg, X86XmmReg) //! \overload INST_2x(punpcklqdq, kX86InstIdPunpcklqdq, X86XmmReg, X86Mem) @@ -3215,7 +3450,7 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! \overload INST_3i(insertps, kX86InstIdInsertps, X86XmmReg, X86Mem, Imm) - //! Load OWORD aligned using NT hint (SSE4.1). + //! Load DQWORD aligned using NT hint (SSE4.1). INST_2x(movntdqa, kX86InstIdMovntdqa, X86XmmReg, X86Mem) //! Packed WORD sums of absolute difference (SSE4.1). @@ -3420,27 +3655,27 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { // [SSE4.2] // -------------------------------------------------------------------------- - //! Accumulate crc32 value (polynomial 0x11EDC6F41) (SSE4.2). + //! Accumulate CRC32 value (polynomial 0x11EDC6F41) (SSE4.2). INST_2x(crc32, kX86InstIdCrc32, X86GpReg, X86GpReg) //! \overload INST_2x(crc32, kX86InstIdCrc32, X86GpReg, X86Mem) - //! Packed compare explicit length strings, return index (SSE4.2). + //! Packed compare explicit length strings, return index in ECX (SSE4.2). INST_3i(pcmpestri, kX86InstIdPcmpestri, X86XmmReg, X86XmmReg, Imm) //! \overload INST_3i(pcmpestri, kX86InstIdPcmpestri, X86XmmReg, X86Mem, Imm) - //! Packed compare explicit length strings, return mask (SSE4.2). + //! Packed compare explicit length strings, return mask in XMM0 (SSE4.2). INST_3i(pcmpestrm, kX86InstIdPcmpestrm, X86XmmReg, X86XmmReg, Imm) //! \overload INST_3i(pcmpestrm, kX86InstIdPcmpestrm, X86XmmReg, X86Mem, Imm) - //! Packed compare implicit length strings, return index (SSE4.2). + //! Packed compare implicit length strings, return index in ECX (SSE4.2). INST_3i(pcmpistri, kX86InstIdPcmpistri, X86XmmReg, X86XmmReg, Imm) //! \overload INST_3i(pcmpistri, kX86InstIdPcmpistri, X86XmmReg, X86Mem, Imm) - //! Packed compare implicit length strings, return mask (SSE4.2). + //! Packed compare implicit length strings, return mask in XMM0 (SSE4.2). INST_3i(pcmpistrm, kX86InstIdPcmpistrm, X86XmmReg, X86XmmReg, Imm) //! \overload INST_3i(pcmpistrm, kX86InstIdPcmpistrm, X86XmmReg, X86Mem, Imm) @@ -3469,24 +3704,6 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! Move Non-Temporal Scalar SP-FP (SSE4a). INST_2x(movntss, kX86InstIdMovntss, X86Mem, X86XmmReg) - // -------------------------------------------------------------------------- - // [POPCNT] - // -------------------------------------------------------------------------- - - //! Return the count of number of bits set to 1 (POPCNT). - INST_2x(popcnt, kX86InstIdPopcnt, X86GpReg, X86GpReg) - //! \overload - INST_2x(popcnt, kX86InstIdPopcnt, X86GpReg, X86Mem) - - // -------------------------------------------------------------------------- - // [LZCNT] - // -------------------------------------------------------------------------- - - //! Count the number of leading zero bits (LZCNT). - INST_2x(lzcnt, kX86InstIdLzcnt, X86GpReg, X86GpReg) - //! \overload - INST_2x(lzcnt, kX86InstIdLzcnt, X86GpReg, X86Mem) - // -------------------------------------------------------------------------- // [AESNI] // -------------------------------------------------------------------------- @@ -3521,39 +3738,54 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! \overload INST_3i(aeskeygenassist, kX86InstIdAeskeygenassist, X86XmmReg, X86Mem, Imm) + // -------------------------------------------------------------------------- + // [SHA] + // -------------------------------------------------------------------------- + + //! Perform an intermediate calculation for the next four SHA1 message DWORDs (SHA). + INST_2x(sha1msg1, kX86InstIdSha1msg1, X86XmmReg, X86XmmReg) + //! \overload + INST_2x(sha1msg1, kX86InstIdSha1msg1, X86XmmReg, X86Mem) + + //! Perform a final calculation for the next four SHA1 message DWORDs (SHA). + INST_2x(sha1msg2, kX86InstIdSha1msg2, X86XmmReg, X86XmmReg) + //! \overload + INST_2x(sha1msg2, kX86InstIdSha1msg2, X86XmmReg, X86Mem) + + //! Calculate SHA1 state variable E after four rounds (SHA). + INST_2x(sha1nexte, kX86InstIdSha1nexte, X86XmmReg, X86XmmReg) + //! \overload + INST_2x(sha1nexte, kX86InstIdSha1nexte, X86XmmReg, X86Mem) + + //! Perform four rounds of SHA1 operation (SHA). + INST_3i(sha1rnds4, kX86InstIdSha1rnds4, X86XmmReg, X86XmmReg, Imm) + //! \overload + INST_3i(sha1rnds4, kX86InstIdSha1rnds4, X86XmmReg, X86Mem, Imm) + + //! Perform an intermediate calculation for the next four SHA256 message DWORDs (SHA). + INST_2x(sha256msg1, kX86InstIdSha256msg1, X86XmmReg, X86XmmReg) + //! \overload + INST_2x(sha256msg1, kX86InstIdSha256msg1, X86XmmReg, X86Mem) + + //! Perform a final calculation for the next four SHA256 message DWORDs (SHA). + INST_2x(sha256msg2, kX86InstIdSha256msg2, X86XmmReg, X86XmmReg) + //! \overload + INST_2x(sha256msg2, kX86InstIdSha256msg2, X86XmmReg, X86Mem) + + //! Perform two rounds of SHA256 operation (SHA). + INST_2x(sha256rnds2, kX86InstIdSha256rnds2, X86XmmReg, X86XmmReg) + //! \overload + INST_2x(sha256rnds2, kX86InstIdSha256rnds2, X86XmmReg, X86Mem) + // -------------------------------------------------------------------------- // [PCLMULQDQ] // -------------------------------------------------------------------------- - //! Packed QWORD to OWORD carry-less multiply (PCLMULQDQ). + //! Packed QWORD to DQWORD carry-less multiply (PCLMULQDQ). INST_3i(pclmulqdq, kX86InstIdPclmulqdq, X86XmmReg, X86XmmReg, Imm) //! \overload INST_3i(pclmulqdq, kX86InstIdPclmulqdq, X86XmmReg, X86Mem, Imm) - // -------------------------------------------------------------------------- - // [XSAVE] - // -------------------------------------------------------------------------- - - //! Restore Processor Extended States specified by `EDX:EAX` (XSAVE). - INST_1x(xrstor, kX86InstIdXrstor, X86Mem) - //! Restore Processor Extended States specified by `EDX:EAX` (XSAVE&X64). - INST_1x(xrstor64, kX86InstIdXrstor64, X86Mem) - - //! Save Processor Extended States specified by `EDX:EAX` (XSAVE). - INST_1x(xsave, kX86InstIdXsave, X86Mem) - //! Save Processor Extended States specified by `EDX:EAX` (XSAVE&X64). - INST_1x(xsave64, kX86InstIdXsave64, X86Mem) - - //! Save Processor Extended States specified by `EDX:EAX` (Optimized) (XSAVEOPT). - INST_1x(xsaveopt, kX86InstIdXsaveopt, X86Mem) - //! Save Processor Extended States specified by `EDX:EAX` (Optimized) (XSAVEOPT&X64). - INST_1x(xsaveopt64, kX86InstIdXsaveopt64, X86Mem) - - //! Get XCR - `EDX:EAX <- XCR[ECX]` (XSAVE). - INST_0x(xgetbv, kX86InstIdXgetbv) - //! Set XCR - `XCR[ECX] <- EDX:EAX` (XSAVE). - INST_0x(xsetbv, kX86InstIdXsetbv) - // -------------------------------------------------------------------------- // [AVX] // -------------------------------------------------------------------------- @@ -3935,7 +4167,7 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! Load streaming SIMD extension control/status (AVX). INST_1x(vldmxcsr, kX86InstIdVldmxcsr, X86Mem) - //! Store selected bytes of OWORD to DS:EDI/RDI (AVX). + //! Store selected bytes of DQWORD to DS:EDI/RDI (AVX). INST_2x(vmaskmovdqu, kX86InstIdVmaskmovdqu, X86XmmReg, X86XmmReg) //! Conditionally load packed DP-FP from `o2` using mask in `o1 and store in `o0` (AVX). @@ -4407,22 +4639,22 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! \overload INST_3x(vpcmpgtw, kX86InstIdVpcmpgtw, X86XmmReg, X86XmmReg, X86Mem) - //! Packed compare explicit length strings, return index (AVX). + //! Packed compare explicit length strings, return index in ECX (AVX). INST_3i(vpcmpestri, kX86InstIdVpcmpestri, X86XmmReg, X86XmmReg, Imm) //! \overload INST_3i(vpcmpestri, kX86InstIdVpcmpestri, X86XmmReg, X86Mem, Imm) - //! Packed compare explicit length strings, return mask (AVX). + //! Packed compare explicit length strings, return mask in XMM0 (AVX). INST_3i(vpcmpestrm, kX86InstIdVpcmpestrm, X86XmmReg, X86XmmReg, Imm) //! \overload INST_3i(vpcmpestrm, kX86InstIdVpcmpestrm, X86XmmReg, X86Mem, Imm) - //! Packed compare implicit length strings, return index (AVX). + //! Packed compare implicit length strings, return index in ECX (AVX). INST_3i(vpcmpistri, kX86InstIdVpcmpistri, X86XmmReg, X86XmmReg, Imm) //! \overload INST_3i(vpcmpistri, kX86InstIdVpcmpistri, X86XmmReg, X86Mem, Imm) - //! Packed compare implicit length strings, return mask (AVX). + //! Packed compare implicit length strings, return mask in XMM0 (AVX). INST_3i(vpcmpistrm, kX86InstIdVpcmpistrm, X86XmmReg, X86XmmReg, Imm) //! \overload INST_3i(vpcmpistrm, kX86InstIdVpcmpistrm, X86XmmReg, X86Mem, Imm) @@ -4761,7 +4993,7 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! \overload INST_3i(vpslld, kX86InstIdVpslld, X86XmmReg, X86XmmReg, Imm) - //! Packed OWORD shift left logical (AVX). + //! Packed DQWORD shift left logical (AVX). INST_3i(vpslldq, kX86InstIdVpslldq, X86XmmReg, X86XmmReg, Imm) //! Packed QWORD shift left logical (AVX). @@ -4799,7 +5031,7 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! \overload INST_3i(vpsrld, kX86InstIdVpsrld, X86XmmReg, X86XmmReg, Imm) - //! Scalar OWORD shift right logical (AVX). + //! Scalar DQWORD shift right logical (AVX). INST_3i(vpsrldq, kX86InstIdVpsrldq, X86XmmReg, X86XmmReg, Imm) //! Packed QWORD shift right logical (AVX). @@ -4875,7 +5107,7 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! \overload INST_3x(vpunpckhdq, kX86InstIdVpunpckhdq, X86XmmReg, X86XmmReg, X86Mem) - //! Unpack high packed QWORDs to OWORD (AVX). + //! Unpack high packed QWORDs to DQWORD (AVX). INST_3x(vpunpckhqdq, kX86InstIdVpunpckhqdq, X86XmmReg, X86XmmReg, X86XmmReg) //! \overload INST_3x(vpunpckhqdq, kX86InstIdVpunpckhqdq, X86XmmReg, X86XmmReg, X86Mem) @@ -4895,7 +5127,7 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! \overload INST_3x(vpunpckldq, kX86InstIdVpunpckldq, X86XmmReg, X86XmmReg, X86Mem) - //! Unpack low packed QWORDs to OWORD (AVX). + //! Unpack low packed QWORDs to DQWORD (AVX). INST_3x(vpunpcklqdq, kX86InstIdVpunpcklqdq, X86XmmReg, X86XmmReg, X86XmmReg) //! \overload INST_3x(vpunpcklqdq, kX86InstIdVpunpcklqdq, X86XmmReg, X86XmmReg, X86Mem) @@ -5125,9 +5357,9 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! \overload INST_3x(vxorps, kX86InstIdVxorps, X86YmmReg, X86YmmReg, X86Mem) - //! Zero all Ymm registers. + //! Zero all YMM registers. INST_0x(vzeroall, kX86InstIdVzeroall) - //! Zero upper 128-bits of all Ymm registers. + //! Zero upper 128-bits of all YMM registers. INST_0x(vzeroupper, kX86InstIdVzeroupper) // -------------------------------------------------------------------------- @@ -5191,22 +5423,22 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! \overload INST_3i(vextracti128, kX86InstIdVextracti128, X86Mem, X86YmmReg, Imm) - //! Gather DP-FP from DWORD indicies specified in `o1`s VSIB (AVX2). + //! Gather DP-FP from DWORD indexes specified in `o1`s VSIB (AVX2). INST_3x(vgatherdpd, kX86InstIdVgatherdpd, X86XmmReg, X86Mem, X86XmmReg) //! \overload INST_3x(vgatherdpd, kX86InstIdVgatherdpd, X86YmmReg, X86Mem, X86YmmReg) - //! Gather SP-FP from DWORD indicies specified in `o1`s VSIB (AVX2). + //! Gather SP-FP from DWORD indexes specified in `o1`s VSIB (AVX2). INST_3x(vgatherdps, kX86InstIdVgatherdps, X86XmmReg, X86Mem, X86XmmReg) //! \overload INST_3x(vgatherdps, kX86InstIdVgatherdps, X86YmmReg, X86Mem, X86YmmReg) - //! Gather DP-FP from QWORD indicies specified in `o1`s VSIB (AVX2). + //! Gather DP-FP from QWORD indexes specified in `o1`s VSIB (AVX2). INST_3x(vgatherqpd, kX86InstIdVgatherqpd, X86XmmReg, X86Mem, X86XmmReg) //! \overload INST_3x(vgatherqpd, kX86InstIdVgatherqpd, X86YmmReg, X86Mem, X86YmmReg) - //! Gather SP-FP from QWORD indicies specified in `o1`s VSIB (AVX2). + //! Gather SP-FP from QWORD indexes specified in `o1`s VSIB (AVX2). INST_3x(vgatherqps, kX86InstIdVgatherqps, X86XmmReg, X86Mem, X86XmmReg) //! Insert 128-bit of packed data based on selector (AVX2). @@ -5417,7 +5649,7 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! \overload INST_3x(vpcmpgtw, kX86InstIdVpcmpgtw, X86YmmReg, X86YmmReg, X86Mem) - //! Packed OWORD permute (AVX2). + //! Packed DQWORD permute (AVX2). INST_4i(vperm2i128, kX86InstIdVperm2i128, X86YmmReg, X86YmmReg, X86YmmReg, Imm) //! \overload INST_4i(vperm2i128, kX86InstIdVperm2i128, X86YmmReg, X86YmmReg, X86Mem, Imm) @@ -5713,7 +5945,7 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! \overload INST_3i(vpslld, kX86InstIdVpslld, X86YmmReg, X86YmmReg, Imm) - //! Packed OWORD shift left logical (AVX2). + //! Packed DQWORD shift left logical (AVX2). INST_3i(vpslldq, kX86InstIdVpslldq, X86YmmReg, X86YmmReg, Imm) //! Packed QWORD shift left logical (AVX2). @@ -5766,7 +5998,7 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! \overload INST_3i(vpsrld, kX86InstIdVpsrld, X86YmmReg, X86YmmReg, Imm) - //! Scalar OWORD shift right logical (AVX2). + //! Scalar DQWORD shift right logical (AVX2). INST_3i(vpsrldq, kX86InstIdVpsrldq, X86YmmReg, X86YmmReg, Imm) //! Packed QWORD shift right logical (AVX2). @@ -5842,7 +6074,7 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! \overload INST_3x(vpunpckhdq, kX86InstIdVpunpckhdq, X86YmmReg, X86YmmReg, X86YmmReg) - //! Unpack high packed QWORDs to OWORD (AVX2). + //! Unpack high packed QWORDs to DQWORD (AVX2). INST_3x(vpunpckhqdq, kX86InstIdVpunpckhqdq, X86YmmReg, X86YmmReg, X86Mem) //! \overload INST_3x(vpunpckhqdq, kX86InstIdVpunpckhqdq, X86YmmReg, X86YmmReg, X86YmmReg) @@ -5862,7 +6094,7 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! \overload INST_3x(vpunpckldq, kX86InstIdVpunpckldq, X86YmmReg, X86YmmReg, X86YmmReg) - //! Unpack low packed QWORDs to OWORD (AVX2). + //! Unpack low packed QWORDs to DQWORD (AVX2). INST_3x(vpunpcklqdq, kX86InstIdVpunpcklqdq, X86YmmReg, X86YmmReg, X86Mem) //! \overload INST_3x(vpunpcklqdq, kX86InstIdVpunpcklqdq, X86YmmReg, X86YmmReg, X86YmmReg) @@ -6433,95 +6665,6 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { INST_3x(vpshlw, kX86InstIdVpshlw, X86XmmReg, X86Mem, X86XmmReg) INST_3x(vpshlw, kX86InstIdVpshlw, X86XmmReg, X86XmmReg, X86Mem) - // -------------------------------------------------------------------------- - // [BMI] - // -------------------------------------------------------------------------- - - //! Bitwise and-not (BMI). - INST_3x(andn, kX86InstIdAndn, X86GpReg, X86GpReg, X86GpReg) - //! \overload - INST_3x(andn, kX86InstIdAndn, X86GpReg, X86GpReg, X86Mem) - - //! Bit field extract (BMI). - INST_3x(bextr, kX86InstIdBextr, X86GpReg, X86GpReg, X86GpReg) - //! \overload - INST_3x(bextr, kX86InstIdBextr, X86GpReg, X86Mem, X86GpReg) - - //! Extract lower set isolated bit (BMI). - INST_2x(blsi, kX86InstIdBlsi, X86GpReg, X86GpReg) - //! \overload - INST_2x(blsi, kX86InstIdBlsi, X86GpReg, X86Mem) - - //! Get mask up to lowest set bit (BMI). - INST_2x(blsmsk, kX86InstIdBlsmsk, X86GpReg, X86GpReg) - //! \overload - INST_2x(blsmsk, kX86InstIdBlsmsk, X86GpReg, X86Mem) - - //! Reset lowest set bit (BMI). - INST_2x(blsr, kX86InstIdBlsr, X86GpReg, X86GpReg) - //! \overload - INST_2x(blsr, kX86InstIdBlsr, X86GpReg, X86Mem) - - //! Count the number of trailing zero bits (BMI). - INST_2x(tzcnt, kX86InstIdTzcnt, X86GpReg, X86GpReg) - //! \overload - INST_2x(tzcnt, kX86InstIdTzcnt, X86GpReg, X86Mem) - - // -------------------------------------------------------------------------- - // [BMI2] - // -------------------------------------------------------------------------- - - //! Zero high bits starting with specified bit position (BMI2). - INST_3x(bzhi, kX86InstIdBzhi, X86GpReg, X86GpReg, X86GpReg) - //! \overload - INST_3x(bzhi, kX86InstIdBzhi, X86GpReg, X86Mem, X86GpReg) - - //! Unsigned multiply without affecting flags (BMI2). - INST_3x(mulx, kX86InstIdMulx, X86GpReg, X86GpReg, X86GpReg) - //! \overload - INST_3x(mulx, kX86InstIdMulx, X86GpReg, X86GpReg, X86Mem) - - //! Parallel bits deposit (BMI2). - INST_3x(pdep, kX86InstIdPdep, X86GpReg, X86GpReg, X86GpReg) - //! \overload - INST_3x(pdep, kX86InstIdPdep, X86GpReg, X86GpReg, X86Mem) - - //! Parallel bits extract (BMI2). - INST_3x(pext, kX86InstIdPext, X86GpReg, X86GpReg, X86GpReg) - //! \overload - INST_3x(pext, kX86InstIdPext, X86GpReg, X86GpReg, X86Mem) - - //! Rotate right without affecting flags (BMI2). - INST_3i(rorx, kX86InstIdRorx, X86GpReg, X86GpReg, Imm) - //! \overload - INST_3i(rorx, kX86InstIdRorx, X86GpReg, X86Mem, Imm) - - //! Shift arithmetic right without affecting flags (BMI2). - INST_3x(sarx, kX86InstIdSarx, X86GpReg, X86GpReg, X86GpReg) - //! \overload - INST_3x(sarx, kX86InstIdSarx, X86GpReg, X86Mem, X86GpReg) - - //! Shift logical left without affecting flags (BMI2). - INST_3x(shlx, kX86InstIdShlx, X86GpReg, X86GpReg, X86GpReg) - //! \overload - INST_3x(shlx, kX86InstIdShlx, X86GpReg, X86Mem, X86GpReg) - - //! Shift logical right without affecting flags (BMI2). - INST_3x(shrx, kX86InstIdShrx, X86GpReg, X86GpReg, X86GpReg) - //! \overload - INST_3x(shrx, kX86InstIdShrx, X86GpReg, X86Mem, X86GpReg) - - // -------------------------------------------------------------------------- - // [RDRAND] - // -------------------------------------------------------------------------- - - //! Store a random number in destination register (RDRAND). - //! - //! Please do not use this instruction in cryptographic software. The result - //! doesn't necessarily have to be random, which may cause a major security - //! hole in the software. - INST_1x(rdrand, kX86InstIdRdrand, X86GpReg) - // -------------------------------------------------------------------------- // [F16C] // -------------------------------------------------------------------------- @@ -6544,15 +6687,6 @@ class ASMJIT_VIRTAPI X86Assembler : public Assembler { //! \overload INST_3i(vcvtps2ph, kX86InstIdVcvtps2ph, X86Mem, X86YmmReg, Imm) - // -------------------------------------------------------------------------- - // [FSGSBASE] - // -------------------------------------------------------------------------- - - INST_1x(rdfsbase, kX86InstIdRdfsbase, X86GpReg) - INST_1x(rdgsbase, kX86InstIdRdgsbase, X86GpReg) - INST_1x(wrfsbase, kX86InstIdWrfsbase, X86GpReg) - INST_1x(wrgsbase, kX86InstIdWrgsbase, X86GpReg) - #undef INST_0x #undef INST_1x diff --git a/src/asmjit/x86/x86compiler.h b/src/asmjit/x86/x86compiler.h index 209eea4..8bd390c 100644 --- a/src/asmjit/x86/x86compiler.h +++ b/src/asmjit/x86/x86compiler.h @@ -134,26 +134,24 @@ class X86FuncNode : public HLFunc { //! Set extra stack size. ASMJIT_INLINE void setExtraStackSize(uint32_t s) noexcept { _extraStackSize = s; } - //! Get whether the function has stack frame register. + //! Get whether the function has stack frame register (only when the stack is misaligned). //! - //! \note Stack frame register can be used for both - aligning purposes or + //! NOTE: Stack frame register can be used for both - aligning purposes or //! generating standard prolog/epilog sequence. - //! - //! \note Used only when stack is misaligned. ASMJIT_INLINE bool hasStackFrameReg() const noexcept { return _stackFrameRegIndex != kInvalidReg; } //! Get stack frame register index. //! - //! \note Used only when stack is misaligned. + //! NOTE: Used only when stack is misaligned. ASMJIT_INLINE uint32_t getStackFrameRegIndex() const noexcept { return _stackFrameRegIndex; } //! Get whether the stack frame register is preserved. //! - //! \note Used only when stack is misaligned. + //! NOTE: Used only when stack is misaligned. ASMJIT_INLINE bool isStackFrameRegPreserved() const noexcept { return static_cast(_isStackFrameRegPreserved); } @@ -259,7 +257,7 @@ class X86CallNode : public HLCall { X86FuncDecl _x86Decl; //! Mask of all registers actually used to pass function arguments. //! - //! \note This bit-mask is not the same as `X86Func::_passed`. It contains + //! NOTE: This bit-mask is not the same as `X86Func::_passed`. It contains //! only registers actually used to do the call while `X86Func::_passed` //! mask contains all registers for all function prototype combinations. X86RegMask _usedArgs; @@ -435,17 +433,17 @@ class X86CallNode : public HLCall { //! or sub-scope). //! //! List of X86/X64 variable types: -//! - `kVarTypeInt8` - Signed 8-bit integer, mapped to Gpd register (eax, ebx, ...). -//! - `kVarTypeUInt8` - Unsigned 8-bit integer, mapped to Gpd register (eax, ebx, ...). -//! - `kVarTypeInt16` - Signed 16-bit integer, mapped to Gpd register (eax, ebx, ...). -//! - `kVarTypeUInt16` - Unsigned 16-bit integer, mapped to Gpd register (eax, ebx, ...). -//! - `kVarTypeInt32` - Signed 32-bit integer, mapped to Gpd register (eax, ebx, ...). -//! - `kVarTypeUInt32` - Unsigned 32-bit integer, mapped to Gpd register (eax, ebx, ...). -//! - `kVarTypeInt64` - Signed 64-bit integer, mapped to Gpq register (rax, rbx, ...). -//! - `kVarTypeUInt64` - Unsigned 64-bit integer, mapped to Gpq register (rax, rbx, ...). -//! - `kVarTypeIntPtr` - intptr_t, mapped to Gpd/Gpq register; depends on target, not host! -//! - `kVarTypeUIntPtr` - uintptr_t, mapped to Gpd/Gpq register; depends on target, not host! -//! - `kX86VarTypeMm` - 64-bit MMX register (mm0, mm1, ...). +//! - `kVarTypeInt8` - Signed 8-bit integer, mapped to GPD register (eax, ebx, ...). +//! - `kVarTypeUInt8` - Unsigned 8-bit integer, mapped to GPD register (eax, ebx, ...). +//! - `kVarTypeInt16` - Signed 16-bit integer, mapped to GPD register (eax, ebx, ...). +//! - `kVarTypeUInt16` - Unsigned 16-bit integer, mapped to GPD register (eax, ebx, ...). +//! - `kVarTypeInt32` - Signed 32-bit integer, mapped to GPD register (eax, ebx, ...). +//! - `kVarTypeUInt32` - Unsigned 32-bit integer, mapped to GPD register (eax, ebx, ...). +//! - `kVarTypeInt64` - Signed 64-bit integer, mapped to GPQ register (rax, rbx, ...). +//! - `kVarTypeUInt64` - Unsigned 64-bit integer, mapped to GPQ register (rax, rbx, ...). +//! - `kVarTypeIntPtr` - intptr_t, mapped to GPD/GPQ register; depends on target, not host! +//! - `kVarTypeUIntPtr` - uintptr_t, mapped to GPD/GPQ register; depends on target, not host! +//! - `kX86VarTypeMm` - 64-bit MMX register (MM0, MM1, ...). //! - `kX86VarTypeXmm` - 128-bit XMM register. //! - `kX86VarTypeXmmSs` - 128-bit XMM register that contains a scalar float. //! - `kX86VarTypeXmmSd` - 128-bit XMM register that contains a scalar double. @@ -756,7 +754,7 @@ class ASMJIT_VIRTAPI X86Compiler : public Compiler { //! Get count of registers of the current architecture and mode. ASMJIT_INLINE const X86RegCount& getRegCount() const noexcept { return _regCount; } - //! Get Gpd or Gpq register depending on the current architecture. + //! Get GPD or GPQ register depending on the current architecture. ASMJIT_INLINE X86GpReg gpz(uint32_t index) const noexcept { return X86GpReg(zax, index); } //! Create an architecture dependent intptr_t memory operand. @@ -917,7 +915,7 @@ class ASMJIT_VIRTAPI X86Compiler : public Compiler { //! Arguments are like variables. How to manipulate with variables is //! documented in a variables section of `X86Compiler` documentation. //! - //! \note To get the current function use `getFunc()` method. + //! NOTE: To get the current function use `getFunc()` method. //! //! \sa \ref FuncBuilder0, \ref FuncBuilder1, \ref FuncBuilder2. ASMJIT_API X86FuncNode* addFunc(const FuncPrototype& p) noexcept; @@ -1185,11 +1183,11 @@ class ASMJIT_VIRTAPI X86Compiler : public Compiler { //! Add double data to the instruction stream. ASMJIT_INLINE Error ddouble(double x) noexcept { return embed(&x, static_cast(sizeof(double))); } - //! Add Mm data to the instruction stream. + //! Add MMX data to the instruction stream. ASMJIT_INLINE Error dmm(const Vec64& x) noexcept { return embed(&x, static_cast(sizeof(Vec64))); } - //! Add Xmm data to the instruction stream. + //! Add XMM data to the instruction stream. ASMJIT_INLINE Error dxmm(const Vec128& x) noexcept { return embed(&x, static_cast(sizeof(Vec128))); } - //! Add Ymm data to the instruction stream. + //! Add YMM data to the instruction stream. ASMJIT_INLINE Error dymm(const Vec256& x) noexcept { return embed(&x, static_cast(sizeof(Vec256))); } //! Add data in a given structure instance to the instruction stream. @@ -1422,12 +1420,12 @@ class ASMJIT_VIRTAPI X86Compiler : public Compiler { return emit(_Code_, o0, o1Imm, o2); \ } -#define INST_4x(_Inst_, _Code_, _Op0_, _Op1_, _Op2_) \ +#define INST_4x(_Inst_, _Code_, _Op0_, _Op1_, _Op2_, _Op3_) \ ASMJIT_INLINE HLInst* _Inst_(const _Op0_& o0, const _Op1_& o1, const _Op2_& o2, const _Op3_& o3) noexcept { \ return emit(_Code_, o0, o1, o2, o3); \ } -#define INST_4i(_Inst_, _Code_, _Op0_, _Op1_, _Op2_) \ +#define INST_4i(_Inst_, _Code_, _Op0_, _Op1_, _Op2_, _Op3_) \ ASMJIT_INLINE HLInst* _Inst_(const _Op0_& o0, const _Op1_& o1, const _Op2_& o2, const _Op3_& o3) noexcept { \ return emit(_Code_, o0, o1, o2, o3); \ } \ @@ -1588,17 +1586,17 @@ class ASMJIT_VIRTAPI X86Compiler : public Compiler { INST_0x(cmc, kX86InstIdCmc) //! Convert BYTE to WORD (AX <- Sign Extend AL). - INST_1x(cbw, kX86InstIdCbw, X86GpVar /* al */) + INST_1x(cbw, kX86InstIdCbw, X86GpVar /* AL */) //! Convert DWORD to QWORD (EDX:EAX <- Sign Extend EAX). - INST_2x(cdq, kX86InstIdCdq, X86GpVar /* edx */, X86GpVar /* eax */) + INST_2x(cdq, kX86InstIdCdq, X86GpVar /* EDX */, X86GpVar /* EAX */) //! Convert DWORD to QWORD (RAX <- Sign Extend EAX) (X64 Only). - INST_1x(cdqe, kX86InstIdCdqe, X86GpVar /* eax */) - //! Convert QWORD to OWORD (RDX:RAX <- Sign Extend RAX) (X64 Only). - INST_2x(cqo, kX86InstIdCdq, X86GpVar /* rdx */, X86GpVar /* rax */) + INST_1x(cdqe, kX86InstIdCdqe, X86GpVar /* EAX */) + //! Convert QWORD to DQWORD (RDX:RAX <- Sign Extend RAX) (X64 Only). + INST_2x(cqo, kX86InstIdCdq, X86GpVar /* RDX */, X86GpVar /* RAX */) //! Convert WORD to DWORD (DX:AX <- Sign Extend AX). - INST_2x(cwd, kX86InstIdCwd, X86GpVar /* dx */, X86GpVar /* ax */) + INST_2x(cwd, kX86InstIdCwd, X86GpVar /* DX */, X86GpVar /* AX */) //! Convert WORD to DWORD (EAX <- Sign Extend AX). - INST_1x(cwde, kX86InstIdCwde, X86GpVar /* eax */) + INST_1x(cwde, kX86InstIdCwde, X86GpVar /* EAX */) //! Conditional move. INST_2cc(cmov, kX86InstIdCmov, X86Util::condToCmovcc, X86GpVar, X86GpVar) @@ -1626,9 +1624,9 @@ class ASMJIT_VIRTAPI X86Compiler : public Compiler { INST_2x(cmpsw, kX86InstIdCmpsW, X86GpVar, X86GpVar) //! Compare and exchange (i486). - INST_3x(cmpxchg, kX86InstIdCmpxchg, X86GpVar /* eax */, X86GpVar, X86GpVar) + INST_3x(cmpxchg, kX86InstIdCmpxchg, X86GpVar /* EAX */, X86GpVar, X86GpVar) //! \overload - INST_3x(cmpxchg, kX86InstIdCmpxchg, X86GpVar /* eax */, X86Mem, X86GpVar) + INST_3x(cmpxchg, kX86InstIdCmpxchg, X86GpVar /* EAX */, X86Mem, X86GpVar) //! Compare and exchange 128-bit value in RDX:RAX with `x_mem` (X64 Only). ASMJIT_INLINE HLInst* cmpxchg16b( @@ -2371,10 +2369,6 @@ class ASMJIT_VIRTAPI X86Compiler : public Compiler { //! Exchange `fp0` with `o0` (FPU). INST_1x(fxch, kX86InstIdFxch, X86FpReg) - //! Restore FP/MMX/SIMD extension states to `o0` (512 bytes) (FPU, MMX, SSE). - INST_1x(fxrstor, kX86InstIdFxrstor, X86Mem) - //! Store FP/MMX/SIMD extension states to `o0` (512 bytes) (FPU, MMX, SSE). - INST_1x(fxsave, kX86InstIdFxsave, X86Mem) //! Extract `fp0 = exponent(fp0)` and PUSH `significant(fp0)` (FPU). INST_0x(fxtract, kX86InstIdFxtract) @@ -2383,6 +2377,241 @@ class ASMJIT_VIRTAPI X86Compiler : public Compiler { //! Compute `fp1 = fp1 * log2(fp0 + 1)` and POP (FPU). INST_0x(fyl2xp1, kX86InstIdFyl2xp1) + // -------------------------------------------------------------------------- + // [FXSR] + // -------------------------------------------------------------------------- + + //! Restore FP/MMX/SIMD extension states to `o0` (512 bytes) (FXSR). + INST_1x(fxrstor, kX86InstIdFxrstor, X86Mem) + //! Restore FP/MMX/SIMD extension states to `o0` (512 bytes) (FXSR & X64). + INST_1x(fxrstor64, kX86InstIdFxrstor64, X86Mem) + //! Store FP/MMX/SIMD extension states to `o0` (512 bytes) (FXSR). + INST_1x(fxsave, kX86InstIdFxsave, X86Mem) + //! Store FP/MMX/SIMD extension states to `o0` (512 bytes) (FXSR & X64). + INST_1x(fxsave64, kX86InstIdFxsave64, X86Mem) + + // -------------------------------------------------------------------------- + // [XSAVE] + // -------------------------------------------------------------------------- + + //! Restore Processor Extended States specified by `o1:o2` (XSAVE). + INST_3x(xrstor, kX86InstIdXrstor, X86Mem, X86GpVar, X86GpVar) + //! Restore Processor Extended States specified by `o1:o2` (XSAVE & X64). + INST_3x(xrstor64, kX86InstIdXrstor64, X86Mem, X86GpVar, X86GpVar) + + //! Save Processor Extended States specified by `o1:o2` (XSAVE). + INST_3x(xsave, kX86InstIdXsave, X86Mem, X86GpVar, X86GpVar) + //! Save Processor Extended States specified by `o1:o2` (XSAVE & X64). + INST_3x(xsave64, kX86InstIdXsave64, X86Mem, X86GpVar, X86GpVar) + + //! Save Processor Extended States specified by `o1:o2` (Optimized) (XSAVEOPT). + INST_3x(xsaveopt, kX86InstIdXsaveopt, X86Mem, X86GpVar, X86GpVar) + //! Save Processor Extended States specified by `o1:o2` (Optimized) (XSAVEOPT & X64). + INST_3x(xsaveopt64, kX86InstIdXsaveopt64, X86Mem, X86GpVar, X86GpVar) + + //! Get XCR - `o1:o2 <- XCR[o0]` (`EDX:EAX <- XCR[ECX]`) (XSAVE). + INST_3x(xgetbv, kX86InstIdXgetbv, X86GpVar, X86GpVar, X86GpVar) + //! Set XCR - `XCR[o0] <- o1:o2` (`XCR[ECX] <- EDX:EAX`) (XSAVE). + INST_3x(xsetbv, kX86InstIdXsetbv, X86GpVar, X86GpVar, X86GpVar) + + // -------------------------------------------------------------------------- + // [POPCNT] + // -------------------------------------------------------------------------- + + //! Return the count of number of bits set to 1 (POPCNT). + INST_2x(popcnt, kX86InstIdPopcnt, X86GpVar, X86GpVar) + //! \overload + INST_2x(popcnt, kX86InstIdPopcnt, X86GpVar, X86Mem) + + // -------------------------------------------------------------------------- + // [LZCNT] + // -------------------------------------------------------------------------- + + //! Count the number of leading zero bits (LZCNT). + INST_2x(lzcnt, kX86InstIdLzcnt, X86GpVar, X86GpVar) + //! \overload + INST_2x(lzcnt, kX86InstIdLzcnt, X86GpVar, X86Mem) + + // -------------------------------------------------------------------------- + // [BMI] + // -------------------------------------------------------------------------- + + //! Bitwise and-not (BMI). + INST_3x(andn, kX86InstIdAndn, X86GpVar, X86GpVar, X86GpVar) + //! \overload + INST_3x(andn, kX86InstIdAndn, X86GpVar, X86GpVar, X86Mem) + + //! Bit field extract (BMI). + INST_3x(bextr, kX86InstIdBextr, X86GpVar, X86GpVar, X86GpVar) + //! \overload + INST_3x(bextr, kX86InstIdBextr, X86GpVar, X86Mem, X86GpVar) + + //! Extract lower set isolated bit (BMI). + INST_2x(blsi, kX86InstIdBlsi, X86GpVar, X86GpVar) + //! \overload + INST_2x(blsi, kX86InstIdBlsi, X86GpVar, X86Mem) + + //! Get mask up to lowest set bit (BMI). + INST_2x(blsmsk, kX86InstIdBlsmsk, X86GpVar, X86GpVar) + //! \overload + INST_2x(blsmsk, kX86InstIdBlsmsk, X86GpVar, X86Mem) + + //! Reset lowest set bit (BMI). + INST_2x(blsr, kX86InstIdBlsr, X86GpVar, X86GpVar) + //! \overload + INST_2x(blsr, kX86InstIdBlsr, X86GpVar, X86Mem) + + //! Count the number of trailing zero bits (BMI). + INST_2x(tzcnt, kX86InstIdTzcnt, X86GpVar, X86GpVar) + //! \overload + INST_2x(tzcnt, kX86InstIdTzcnt, X86GpVar, X86Mem) + + // -------------------------------------------------------------------------- + // [BMI2] + // -------------------------------------------------------------------------- + + //! Zero high bits starting with specified bit position (BMI2). + INST_3x(bzhi, kX86InstIdBzhi, X86GpVar, X86GpVar, X86GpVar) + //! \overload + INST_3x(bzhi, kX86InstIdBzhi, X86GpVar, X86Mem, X86GpVar) + + //! Unsigned multiply without affecting flags (BMI2). + INST_3x(mulx, kX86InstIdMulx, X86GpVar, X86GpVar, X86GpVar) + //! \overload + INST_3x(mulx, kX86InstIdMulx, X86GpVar, X86GpVar, X86Mem) + + //! Parallel bits deposit (BMI2). + INST_3x(pdep, kX86InstIdPdep, X86GpVar, X86GpVar, X86GpVar) + //! \overload + INST_3x(pdep, kX86InstIdPdep, X86GpVar, X86GpVar, X86Mem) + + //! Parallel bits extract (BMI2). + INST_3x(pext, kX86InstIdPext, X86GpVar, X86GpVar, X86GpVar) + //! \overload + INST_3x(pext, kX86InstIdPext, X86GpVar, X86GpVar, X86Mem) + + //! Rotate right without affecting flags (BMI2). + INST_3i(rorx, kX86InstIdRorx, X86GpVar, X86GpVar, Imm) + //! \overload + INST_3i(rorx, kX86InstIdRorx, X86GpVar, X86Mem, Imm) + + //! Shift arithmetic right without affecting flags (BMI2). + INST_3x(sarx, kX86InstIdSarx, X86GpVar, X86GpVar, X86GpVar) + //! \overload + INST_3x(sarx, kX86InstIdSarx, X86GpVar, X86Mem, X86GpVar) + + //! Shift logical left without affecting flags (BMI2). + INST_3x(shlx, kX86InstIdShlx, X86GpVar, X86GpVar, X86GpVar) + //! \overload + INST_3x(shlx, kX86InstIdShlx, X86GpVar, X86Mem, X86GpVar) + + //! Shift logical right without affecting flags (BMI2). + INST_3x(shrx, kX86InstIdShrx, X86GpVar, X86GpVar, X86GpVar) + //! \overload + INST_3x(shrx, kX86InstIdShrx, X86GpVar, X86Mem, X86GpVar) + + // -------------------------------------------------------------------------- + // [ADX] + // -------------------------------------------------------------------------- + + //! Unsigned integer addition of two operands with carry flag (ADX). + INST_2x(adcx, kX86InstIdAdcx, X86GpVar, X86GpVar) + //! \overload + INST_2x(adcx, kX86InstIdAdcx, X86GpVar, X86Mem) + + //! Unsigned integer addition of two operands with overflow flag (ADX). + INST_2x(adox, kX86InstIdAdox, X86GpVar, X86GpVar) + //! \overload + INST_2x(adox, kX86InstIdAdox, X86GpVar, X86Mem) + + // -------------------------------------------------------------------------- + // [TBM] + // -------------------------------------------------------------------------- + + //! Fill from lowest clear bit (TBM). + INST_2x(blcfill, kX86InstIdBlcfill, X86GpVar, X86GpVar) + //! \overload + INST_2x(blcfill, kX86InstIdBlcfill, X86GpVar, X86Mem) + + //! Isolate lowest clear bit (TBM). + INST_2x(blci, kX86InstIdBlci, X86GpVar, X86GpVar) + //! \overload + INST_2x(blci, kX86InstIdBlci, X86GpVar, X86Mem) + + //! Isolate lowest clear bit and complement (TBM). + INST_2x(blcic, kX86InstIdBlcic, X86GpVar, X86GpVar) + //! \overload + INST_2x(blcic, kX86InstIdBlcic, X86GpVar, X86Mem) + + //! Mask from lowest clear bit (TBM). + INST_2x(blcmsk, kX86InstIdBlcmsk, X86GpVar, X86GpVar) + //! \overload + INST_2x(blcmsk, kX86InstIdBlcmsk, X86GpVar, X86Mem) + + //! Set lowest clear bit (TBM). + INST_2x(blcs, kX86InstIdBlcs, X86GpVar, X86GpVar) + //! \overload + INST_2x(blcs, kX86InstIdBlcs, X86GpVar, X86Mem) + + //! Fill from lowest set bit (TBM). + INST_2x(blsfill, kX86InstIdBlsfill, X86GpVar, X86GpVar) + //! \overload + INST_2x(blsfill, kX86InstIdBlsfill, X86GpVar, X86Mem) + + //! Isolate lowest set bit and complement (TBM). + INST_2x(blsic, kX86InstIdBlsic, X86GpVar, X86GpVar) + //! \overload + INST_2x(blsic, kX86InstIdBlsic, X86GpVar, X86Mem) + + //! Inverse mask from trailing ones (TBM) + INST_2x(t1mskc, kX86InstIdT1mskc, X86GpVar, X86GpVar) + //! \overload + INST_2x(t1mskc, kX86InstIdT1mskc, X86GpVar, X86Mem) + + //! Mask from trailing zeros (TBM) + INST_2x(tzmsk, kX86InstIdTzmsk, X86GpVar, X86GpVar) + //! \overload + INST_2x(tzmsk, kX86InstIdTzmsk, X86GpVar, X86Mem) + + // -------------------------------------------------------------------------- + // [CLFLUSH / CLFLUSH_OPT] + // -------------------------------------------------------------------------- + + //! Flush cache line (CLFLUSH). + INST_1x(clflush, kX86InstIdClflush, X86Mem) + + //! Flush cache line (CLFLUSH_OPT). + INST_1x(clflushopt, kX86InstIdClflushopt, X86Mem) + + // -------------------------------------------------------------------------- + // [PREFETCHW / PREFETCHW1] + // -------------------------------------------------------------------------- + + //! Prefetch data into caches in anticipation of a write (3DNOW / PREFETCHW). + INST_1x(prefetchw, kX86InstIdPrefetchw, X86Mem) + + //! Prefetch vector data into caches with intent to write and T1 hint (PREFETCHWT1). + INST_1x(prefetchwt1, kX86InstIdPrefetchwt1, X86Mem) + + // -------------------------------------------------------------------------- + // [RDRAND / RDSEED] + // -------------------------------------------------------------------------- + + //! Store a pseudo-random number in destination register (crypto-unsafe) (RDRAND). + INST_1x(rdrand, kX86InstIdRdrand, X86GpVar) + + //! Store a random seed in destination register (crypto-unsafe) (RDSEED). + INST_1x(rdseed, kX86InstIdRdseed, X86GpVar) + + // -------------------------------------------------------------------------- + // [FSGSBASE] + // -------------------------------------------------------------------------- + + INST_1x(rdfsbase, kX86InstIdRdfsbase, X86GpVar) + INST_1x(rdgsbase, kX86InstIdRdgsbase, X86GpVar) + INST_1x(wrfsbase, kX86InstIdWrfsbase, X86GpVar) + INST_1x(wrgsbase, kX86InstIdWrgsbase, X86GpVar) + // -------------------------------------------------------------------------- // [MMX] // -------------------------------------------------------------------------- @@ -2651,123 +2880,130 @@ class ASMJIT_VIRTAPI X86Compiler : public Compiler { // [3DNOW] // -------------------------------------------------------------------------- - //! Packed SP-FP to DWORD convert (3dNow!). + //! Packed unsigned BYTE average (3DNOW). + INST_2x(pavgusb, kX86InstIdPavgusb, X86MmVar, X86MmVar) + //! \overload + INST_2x(pavgusb, kX86InstIdPavgusb, X86MmVar, X86Mem) + + //! Packed SP-FP to DWORD convert (3DNOW). INST_2x(pf2id, kX86InstIdPf2id, X86MmVar, X86MmVar) //! \overload INST_2x(pf2id, kX86InstIdPf2id, X86MmVar, X86Mem) - //! Packed SP-FP to WORD convert (3dNow!). + //! Packed SP-FP to WORD convert (3DNOW). INST_2x(pf2iw, kX86InstIdPf2iw, X86MmVar, X86MmVar) //! \overload INST_2x(pf2iw, kX86InstIdPf2iw, X86MmVar, X86Mem) - //! Packed SP-FP accumulate (3dNow!). + //! Packed SP-FP accumulate (3DNOW). INST_2x(pfacc, kX86InstIdPfacc, X86MmVar, X86MmVar) //! \overload INST_2x(pfacc, kX86InstIdPfacc, X86MmVar, X86Mem) - //! Packed SP-FP addition (3dNow!). + //! Packed SP-FP addition (3DNOW). INST_2x(pfadd, kX86InstIdPfadd, X86MmVar, X86MmVar) //! \overload INST_2x(pfadd, kX86InstIdPfadd, X86MmVar, X86Mem) - //! Packed SP-FP compare - dst == src (3dNow!). + //! Packed SP-FP compare - dst == src (3DNOW). INST_2x(pfcmpeq, kX86InstIdPfcmpeq, X86MmVar, X86MmVar) //! \overload INST_2x(pfcmpeq, kX86InstIdPfcmpeq, X86MmVar, X86Mem) - //! Packed SP-FP compare - dst >= src (3dNow!). + //! Packed SP-FP compare - dst >= src (3DNOW). INST_2x(pfcmpge, kX86InstIdPfcmpge, X86MmVar, X86MmVar) //! \overload INST_2x(pfcmpge, kX86InstIdPfcmpge, X86MmVar, X86Mem) - //! Packed SP-FP compare - dst > src (3dNow!). + //! Packed SP-FP compare - dst > src (3DNOW). INST_2x(pfcmpgt, kX86InstIdPfcmpgt, X86MmVar, X86MmVar) //! \overload INST_2x(pfcmpgt, kX86InstIdPfcmpgt, X86MmVar, X86Mem) - //! Packed SP-FP maximum (3dNow!). + //! Packed SP-FP maximum (3DNOW). INST_2x(pfmax, kX86InstIdPfmax, X86MmVar, X86MmVar) //! \overload INST_2x(pfmax, kX86InstIdPfmax, X86MmVar, X86Mem) - //! Packed SP-FP minimum (3dNow!). + //! Packed SP-FP minimum (3DNOW). INST_2x(pfmin, kX86InstIdPfmin, X86MmVar, X86MmVar) //! \overload INST_2x(pfmin, kX86InstIdPfmin, X86MmVar, X86Mem) - //! Packed SP-FP multiply (3dNow!). + //! Packed SP-FP multiply (3DNOW). INST_2x(pfmul, kX86InstIdPfmul, X86MmVar, X86MmVar) //! \overload INST_2x(pfmul, kX86InstIdPfmul, X86MmVar, X86Mem) - //! Packed SP-FP negative accumulate (3dNow!). + //! Packed SP-FP negative accumulate (3DNOW). INST_2x(pfnacc, kX86InstIdPfnacc, X86MmVar, X86MmVar) //! \overload INST_2x(pfnacc, kX86InstIdPfnacc, X86MmVar, X86Mem) - //! Packed SP-FP mixed accumulate (3dNow!). + //! Packed SP-FP mixed accumulate (3DNOW). INST_2x(pfpnacc, kX86InstIdPfpnacc, X86MmVar, X86MmVar) //! \overload INST_2x(pfpnacc, kX86InstIdPfpnacc, X86MmVar, X86Mem) - //! Packed SP-FP reciprocal approximation (3dNow!). + //! Packed SP-FP reciprocal approximation (3DNOW). INST_2x(pfrcp, kX86InstIdPfrcp, X86MmVar, X86MmVar) //! \overload INST_2x(pfrcp, kX86InstIdPfrcp, X86MmVar, X86Mem) - //! Packed SP-FP reciprocal, first iteration step (3dNow!). + //! Packed SP-FP reciprocal, first iteration step (3DNOW). INST_2x(pfrcpit1, kX86InstIdPfrcpit1, X86MmVar, X86MmVar) //! \overload INST_2x(pfrcpit1, kX86InstIdPfrcpit1, X86MmVar, X86Mem) - //! Packed SP-FP reciprocal, second iteration step (3dNow!). + //! Packed SP-FP reciprocal, second iteration step (3DNOW). INST_2x(pfrcpit2, kX86InstIdPfrcpit2, X86MmVar, X86MmVar) //! \overload INST_2x(pfrcpit2, kX86InstIdPfrcpit2, X86MmVar, X86Mem) - //! Packed SP-FP reciprocal square root, first iteration step (3dNow!). + //! Packed SP-FP reciprocal square root, first iteration step (3DNOW). INST_2x(pfrsqit1, kX86InstIdPfrsqit1, X86MmVar, X86MmVar) //! \overload INST_2x(pfrsqit1, kX86InstIdPfrsqit1, X86MmVar, X86Mem) - //! Packed SP-FP reciprocal square root approximation (3dNow!). + //! Packed SP-FP reciprocal square root approximation (3DNOW). INST_2x(pfrsqrt, kX86InstIdPfrsqrt, X86MmVar, X86MmVar) //! \overload INST_2x(pfrsqrt, kX86InstIdPfrsqrt, X86MmVar, X86Mem) - //! Packed SP-FP subtract (3dNow!). + //! Packed SP-FP subtract (3DNOW). INST_2x(pfsub, kX86InstIdPfsub, X86MmVar, X86MmVar) //! \overload INST_2x(pfsub, kX86InstIdPfsub, X86MmVar, X86Mem) - //! Packed SP-FP reverse subtract (3dNow!). + //! Packed SP-FP reverse subtract (3DNOW). INST_2x(pfsubr, kX86InstIdPfsubr, X86MmVar, X86MmVar) //! \overload INST_2x(pfsubr, kX86InstIdPfsubr, X86MmVar, X86Mem) - //! Packed DWORDs to SP-FP (3dNow!). + //! Packed DWORDs to SP-FP (3DNOW). INST_2x(pi2fd, kX86InstIdPi2fd, X86MmVar, X86MmVar) //! \overload INST_2x(pi2fd, kX86InstIdPi2fd, X86MmVar, X86Mem) - //! Packed WORDs to SP-FP (3dNow!). + //! Packed WORDs to SP-FP (3DNOW). INST_2x(pi2fw, kX86InstIdPi2fw, X86MmVar, X86MmVar) //! \overload INST_2x(pi2fw, kX86InstIdPi2fw, X86MmVar, X86Mem) - //! Packed swap DWORDs (3dNow!) + //! Packed multiply WORD with rounding (3DNOW). + INST_2x(pmulhrw, kX86InstIdPmulhrw, X86MmVar, X86MmVar) + //! \overload + INST_2x(pmulhrw, kX86InstIdPmulhrw, X86MmVar, X86Mem) + + //! Packed swap DWORDs (3DNOW). INST_2x(pswapd, kX86InstIdPswapd, X86MmVar, X86MmVar) //! \overload INST_2x(pswapd, kX86InstIdPswapd, X86MmVar, X86Mem) - //! Prefetch (3dNow!). - INST_1x(prefetch_3dnow, kX86InstIdPrefetch3dNow, X86Mem) + //! Prefetch (3DNOW). + INST_1x(prefetch3dnow, kX86InstIdPrefetch3dNow, X86Mem) - //! Prefetch and set cache to modified (3dNow!). - INST_1x(prefetchw_3dnow, kX86InstIdPrefetchw3dNow, X86Mem) - - //! Faster EMMS (3dNow!). + //! Faster EMMS (3DNOW). INST_0x(femms, kX86InstIdFemms) // -------------------------------------------------------------------------- @@ -2853,7 +3089,7 @@ class ASMJIT_VIRTAPI X86Compiler : public Compiler { INST_1x(ldmxcsr, kX86InstIdLdmxcsr, X86Mem) //! Byte mask write (SSE). - INST_3x(maskmovq, kX86InstIdMaskmovq, X86GpVar /* zdi */, X86MmVar, X86MmVar) + INST_3x(maskmovq, kX86InstIdMaskmovq, X86GpVar /* ZDI */, X86MmVar, X86MmVar) //! Packed SP-FP maximum (SSE). INST_2x(maxps, kX86InstIdMaxps, X86XmmVar, X86XmmVar) @@ -3113,9 +3349,6 @@ class ASMJIT_VIRTAPI X86Compiler : public Compiler { //! \overload INST_2x(andpd, kX86InstIdAndpd, X86XmmVar, X86Mem) - //! Flush cache line (SSE2). - INST_1x(clflush, kX86InstIdClflush, X86Mem) - //! Packed DP-FP compare (SSE2). INST_3i(cmppd, kX86InstIdCmppd, X86XmmVar, X86XmmVar, Imm) //! \overload @@ -3224,8 +3457,8 @@ class ASMJIT_VIRTAPI X86Compiler : public Compiler { //! Load fence (SSE2). INST_0x(lfence, kX86InstIdLfence) - //! Store selected bytes of OWORD (SSE2). - INST_3x(maskmovdqu, kX86InstIdMaskmovdqu, X86GpVar /* zdi */, X86XmmVar, X86XmmVar) + //! Store selected bytes of DQWORD (SSE2). + INST_3x(maskmovdqu, kX86InstIdMaskmovdqu, X86GpVar /* ZDI */, X86XmmVar, X86XmmVar) //! Packed DP-FP maximum (SSE2). INST_2x(maxpd, kX86InstIdMaxpd, X86XmmVar, X86XmmVar) @@ -3250,14 +3483,14 @@ class ASMJIT_VIRTAPI X86Compiler : public Compiler { //! \overload INST_2x(minsd, kX86InstIdMinsd, X86XmmVar, X86Mem) - //! Move aligned OWORD (SSE2). + //! Move aligned DQWORD (SSE2). INST_2x(movdqa, kX86InstIdMovdqa, X86XmmVar, X86XmmVar) //! \overload INST_2x(movdqa, kX86InstIdMovdqa, X86XmmVar, X86Mem) //! \overload INST_2x(movdqa, kX86InstIdMovdqa, X86Mem, X86XmmVar) - //! Move unaligned OWORD (SSE2). + //! Move unaligned DQWORD (SSE2). INST_2x(movdqu, kX86InstIdMovdqu, X86XmmVar, X86XmmVar) //! \overload INST_2x(movdqu, kX86InstIdMovdqu, X86XmmVar, X86Mem) @@ -3284,10 +3517,10 @@ class ASMJIT_VIRTAPI X86Compiler : public Compiler { //! \overload INST_2x(movapd, kX86InstIdMovapd, X86Mem, X86XmmVar) - //! Move QWORD from Xmm to Mm register (SSE2). + //! Move QWORD from XMM to MMX register (SSE2). INST_2x(movdq2q, kX86InstIdMovdq2q, X86MmVar, X86XmmVar) - //! Move QWORD from Mm to Xmm register (SSE2). + //! Move QWORD from MMX to XMM register (SSE2). INST_2x(movq2dq, kX86InstIdMovq2dq, X86XmmVar, X86MmVar) //! Move high packed DP-FP (SSE2). @@ -3526,7 +3759,7 @@ class ASMJIT_VIRTAPI X86Compiler : public Compiler { //! \overload INST_2i(psllw, kX86InstIdPsllw, X86XmmVar, Imm) - //! Packed OWORD shift left logical (SSE2). + //! Packed DQWORD shift left logical (SSE2). INST_2i(pslldq, kX86InstIdPslldq, X86XmmVar, Imm) //! Packed DWORD shift right arithmetic (SSE2). @@ -3602,7 +3835,7 @@ class ASMJIT_VIRTAPI X86Compiler : public Compiler { //! \overload INST_2i(psrlq, kX86InstIdPsrlq, X86XmmVar, Imm) - //! Scalar OWORD shift right logical (SSE2). + //! Scalar DQWORD shift right logical (SSE2). INST_2i(psrldq, kX86InstIdPsrldq, X86XmmVar, Imm) //! Packed WORD shift right logical (SSE2). @@ -3642,7 +3875,7 @@ class ASMJIT_VIRTAPI X86Compiler : public Compiler { //! \overload INST_2x(punpckhdq, kX86InstIdPunpckhdq, X86XmmVar, X86Mem) - //! Unpack high packed QWORDs to OWORD (SSE2). + //! Unpack high packed QWORDs to DQWORD (SSE2). INST_2x(punpckhqdq, kX86InstIdPunpckhqdq, X86XmmVar, X86XmmVar) //! \overload INST_2x(punpckhqdq, kX86InstIdPunpckhqdq, X86XmmVar, X86Mem) @@ -3662,7 +3895,7 @@ class ASMJIT_VIRTAPI X86Compiler : public Compiler { //! \overload INST_2x(punpckldq, kX86InstIdPunpckldq, X86XmmVar, X86Mem) - //! Unpack low packed QWORDs to OWORD (SSE2). + //! Unpack low packed QWORDs to DQWORD (SSE2). INST_2x(punpcklqdq, kX86InstIdPunpcklqdq, X86XmmVar, X86XmmVar) //! \overload INST_2x(punpcklqdq, kX86InstIdPunpcklqdq, X86XmmVar, X86Mem) @@ -3962,14 +4195,14 @@ class ASMJIT_VIRTAPI X86Compiler : public Compiler { INST_3i(blendps, kX86InstIdBlendps, X86XmmVar, X86Mem, Imm) //! Packed DP-FP variable blend (SSE4.1). - INST_3x(blendvpd, kX86InstIdBlendvpd, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(blendvpd, kX86InstIdBlendvpd, X86XmmVar, X86XmmVar, X86XmmVar /* XMM0 */) //! \overload - INST_3x(blendvpd, kX86InstIdBlendvpd, X86XmmVar, X86Mem, X86XmmVar) + INST_3x(blendvpd, kX86InstIdBlendvpd, X86XmmVar, X86Mem, X86XmmVar /* XMM0 */) //! Packed SP-FP variable blend (SSE4.1). - INST_3x(blendvps, kX86InstIdBlendvps, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(blendvps, kX86InstIdBlendvps, X86XmmVar, X86XmmVar, X86XmmVar /* XMM0 */) //! \overload - INST_3x(blendvps, kX86InstIdBlendvps, X86XmmVar, X86Mem, X86XmmVar) + INST_3x(blendvps, kX86InstIdBlendvps, X86XmmVar, X86Mem, X86XmmVar /* XMM0 */) //! Packed DP-FP dot product (SSE4.1). INST_3i(dppd, kX86InstIdDppd, X86XmmVar, X86XmmVar, Imm) @@ -3991,7 +4224,7 @@ class ASMJIT_VIRTAPI X86Compiler : public Compiler { //! \overload INST_3i(insertps, kX86InstIdInsertps, X86XmmVar, X86Mem, Imm) - //! Load OWORD aligned using NT hint (SSE4.1). + //! Load DQWORD aligned using NT hint (SSE4.1). INST_2x(movntdqa, kX86InstIdMovntdqa, X86XmmVar, X86Mem) //! Packed WORD sums of absolute difference (SSE4.1). @@ -4005,9 +4238,9 @@ class ASMJIT_VIRTAPI X86Compiler : public Compiler { INST_2x(packusdw, kX86InstIdPackusdw, X86XmmVar, X86Mem) //! Packed BYTE variable blend (SSE4.1). - INST_3x(pblendvb, kX86InstIdPblendvb, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(pblendvb, kX86InstIdPblendvb, X86XmmVar, X86XmmVar, X86XmmVar /* XMM0 */) //! \overload - INST_3x(pblendvb, kX86InstIdPblendvb, X86XmmVar, X86Mem, X86XmmVar) + INST_3x(pblendvb, kX86InstIdPblendvb, X86XmmVar, X86Mem, X86XmmVar /* XMM0 */) //! Packed WORD blend (SSE4.1). INST_3i(pblendw, kX86InstIdPblendw, X86XmmVar, X86XmmVar, Imm) @@ -4196,30 +4429,30 @@ class ASMJIT_VIRTAPI X86Compiler : public Compiler { // [SSE4.2] // -------------------------------------------------------------------------- - //! Accumulate crc32 value (polynomial 0x11EDC6F41) (SSE4.2). + //! Accumulate CRC32 value (polynomial 0x11EDC6F41) (SSE4.2). INST_2x(crc32, kX86InstIdCrc32, X86GpVar, X86GpVar) //! \overload INST_2x(crc32, kX86InstIdCrc32, X86GpVar, X86Mem) - //! Packed compare explicit length strings, return index (SSE4.2). - INST_3i(pcmpestri, kX86InstIdPcmpestri, X86XmmVar, X86XmmVar, Imm) + //! Packed compare explicit length strings, return index in ECX (SSE4.2). + INST_4i(pcmpestri, kX86InstIdPcmpestri, X86GpVar, X86XmmVar, X86XmmVar, Imm) //! \overload - INST_3i(pcmpestri, kX86InstIdPcmpestri, X86XmmVar, X86Mem, Imm) + INST_4i(pcmpestri, kX86InstIdPcmpestri, X86GpVar, X86XmmVar, X86Mem, Imm) - //! Packed compare explicit length strings, return mask (SSE4.2). - INST_3i(pcmpestrm, kX86InstIdPcmpestrm, X86XmmVar, X86XmmVar, Imm) + //! Packed compare explicit length strings, return mask in XMM0 (SSE4.2). + INST_4i(pcmpestrm, kX86InstIdPcmpestrm, X86XmmVar, X86XmmVar, X86XmmVar, Imm) //! \overload - INST_3i(pcmpestrm, kX86InstIdPcmpestrm, X86XmmVar, X86Mem, Imm) + INST_4i(pcmpestrm, kX86InstIdPcmpestrm, X86XmmVar, X86XmmVar, X86Mem, Imm) - //! Packed compare implicit length strings, return index (SSE4.2). - INST_3i(pcmpistri, kX86InstIdPcmpistri, X86XmmVar, X86XmmVar, Imm) + //! Packed compare implicit length strings, return index in ECX (SSE4.2). + INST_4i(pcmpistri, kX86InstIdPcmpistri, X86GpVar, X86XmmVar, X86XmmVar, Imm) //! \overload - INST_3i(pcmpistri, kX86InstIdPcmpistri, X86XmmVar, X86Mem, Imm) + INST_4i(pcmpistri, kX86InstIdPcmpistri, X86GpVar, X86XmmVar, X86Mem, Imm) - //! Packed compare implicit length strings, return mask (SSE4.2). - INST_3i(pcmpistrm, kX86InstIdPcmpistrm, X86XmmVar, X86XmmVar, Imm) + //! Packed compare implicit length strings, return mask in XMM0 (SSE4.2). + INST_4i(pcmpistrm, kX86InstIdPcmpistrm, X86XmmVar, X86XmmVar, X86XmmVar, Imm) //! \overload - INST_3i(pcmpistrm, kX86InstIdPcmpistrm, X86XmmVar, X86Mem, Imm) + INST_4i(pcmpistrm, kX86InstIdPcmpistrm, X86XmmVar, X86XmmVar, X86Mem, Imm) //! Packed QWORD compare if greater than (SSE4.2). INST_2x(pcmpgtq, kX86InstIdPcmpgtq, X86XmmVar, X86XmmVar) @@ -4245,24 +4478,6 @@ class ASMJIT_VIRTAPI X86Compiler : public Compiler { //! Move Non-Temporal Scalar SP-FP (SSE4a). INST_2x(movntss, kX86InstIdMovntss, X86Mem, X86XmmVar) - // -------------------------------------------------------------------------- - // [POPCNT] - // -------------------------------------------------------------------------- - - //! Return the count of number of bits set to 1 (POPCNT). - INST_2x(popcnt, kX86InstIdPopcnt, X86GpVar, X86GpVar) - //! \overload - INST_2x(popcnt, kX86InstIdPopcnt, X86GpVar, X86Mem) - - // -------------------------------------------------------------------------- - // [LZCNT] - // -------------------------------------------------------------------------- - - //! Count the number of leading zero bits (LZCNT). - INST_2x(lzcnt, kX86InstIdLzcnt, X86GpVar, X86GpVar) - //! \overload - INST_2x(lzcnt, kX86InstIdLzcnt, X86GpVar, X86Mem) - // -------------------------------------------------------------------------- // [AESNI] // -------------------------------------------------------------------------- @@ -4297,38 +4512,2954 @@ class ASMJIT_VIRTAPI X86Compiler : public Compiler { //! \overload INST_3i(aeskeygenassist, kX86InstIdAeskeygenassist, X86XmmVar, X86Mem, Imm) + // -------------------------------------------------------------------------- + // [SHA] + // -------------------------------------------------------------------------- + + //! Perform an intermediate calculation for the next four SHA1 message DWORDs (SHA). + INST_2x(sha1msg1, kX86InstIdSha1msg1, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(sha1msg1, kX86InstIdSha1msg1, X86XmmVar, X86Mem) + + //! Perform a final calculation for the next four SHA1 message DWORDs (SHA). + INST_2x(sha1msg2, kX86InstIdSha1msg2, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(sha1msg2, kX86InstIdSha1msg2, X86XmmVar, X86Mem) + + //! Calculate SHA1 state variable E after four rounds (SHA). + INST_2x(sha1nexte, kX86InstIdSha1nexte, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(sha1nexte, kX86InstIdSha1nexte, X86XmmVar, X86Mem) + + //! Perform four rounds of SHA1 operation (SHA). + INST_3i(sha1rnds4, kX86InstIdSha1rnds4, X86XmmVar, X86XmmVar, Imm) + //! \overload + INST_3i(sha1rnds4, kX86InstIdSha1rnds4, X86XmmVar, X86Mem, Imm) + + //! Perform an intermediate calculation for the next four SHA256 message DWORDs (SHA). + INST_2x(sha256msg1, kX86InstIdSha256msg1, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(sha256msg1, kX86InstIdSha256msg1, X86XmmVar, X86Mem) + + //! Perform a final calculation for the next four SHA256 message DWORDs (SHA). + INST_2x(sha256msg2, kX86InstIdSha256msg2, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(sha256msg2, kX86InstIdSha256msg2, X86XmmVar, X86Mem) + + //! Perform two rounds of SHA256 operation (SHA). + INST_3x(sha256rnds2, kX86InstIdSha256rnds2, X86XmmVar, X86XmmVar, X86XmmVar /* XMM0 */) + //! \overload + INST_3x(sha256rnds2, kX86InstIdSha256rnds2, X86XmmVar, X86Mem, X86XmmVar /* XMM0 */) + // -------------------------------------------------------------------------- // [PCLMULQDQ] // -------------------------------------------------------------------------- - //! Packed QWORD to OWORD carry-less multiply (PCLMULQDQ). + //! Packed QWORD to DQWORD carry-less multiply (PCLMULQDQ). INST_3i(pclmulqdq, kX86InstIdPclmulqdq, X86XmmVar, X86XmmVar, Imm); //! \overload INST_3i(pclmulqdq, kX86InstIdPclmulqdq, X86XmmVar, X86Mem, Imm); // -------------------------------------------------------------------------- - // [XSAVE] + // [AVX] // -------------------------------------------------------------------------- - //! Restore Processor Extended States specified by `o1:o2` (XSAVE). - INST_3x(xrstor, kX86InstIdXrstor, X86Mem, X86GpVar, X86GpVar) - //! Restore Processor Extended States specified by `o1:o2` (XSAVE&X64). - INST_3x(xrstor64, kX86InstIdXrstor64, X86Mem, X86GpVar, X86GpVar) + //! Packed DP-FP add (AVX). + INST_3x(vaddpd, kX86InstIdVaddpd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vaddpd, kX86InstIdVaddpd, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3x(vaddpd, kX86InstIdVaddpd, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vaddpd, kX86InstIdVaddpd, X86YmmVar, X86YmmVar, X86Mem) - //! Save Processor Extended States specified by `o1:o2` (XSAVE). - INST_3x(xsave, kX86InstIdXsave, X86Mem, X86GpVar, X86GpVar) - //! Save Processor Extended States specified by `o1:o2` (XSAVE&X64). - INST_3x(xsave64, kX86InstIdXsave64, X86Mem, X86GpVar, X86GpVar) + //! Packed SP-FP add (AVX). + INST_3x(vaddps, kX86InstIdVaddps, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vaddps, kX86InstIdVaddps, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3x(vaddps, kX86InstIdVaddps, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vaddps, kX86InstIdVaddps, X86YmmVar, X86YmmVar, X86Mem) - //! Save Processor Extended States specified by `o1:o2` (Optimized) (XSAVEOPT). - INST_3x(xsaveopt, kX86InstIdXsaveopt, X86Mem, X86GpVar, X86GpVar) - //! Save Processor Extended States specified by `o1:o2` (Optimized) (XSAVEOPT&X64). - INST_3x(xsaveopt64, kX86InstIdXsaveopt64, X86Mem, X86GpVar, X86GpVar) + //! Scalar DP-FP add (AVX) + INST_3x(vaddsd, kX86InstIdVaddsd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vaddsd, kX86InstIdVaddsd, X86XmmVar, X86XmmVar, X86Mem) - //! Get XCR - `o1:o2 <- XCR[o0]` (`EDX:EAX <- XCR[ECX]`) (XSAVE). - INST_3x(xgetbv, kX86InstIdXgetbv, X86GpVar, X86GpVar, X86GpVar) - //! Set XCR - `XCR[o0] <- o1:o2` (`XCR[ECX] <- EDX:EAX`) (XSAVE). - INST_3x(xsetbv, kX86InstIdXsetbv, X86GpVar, X86GpVar, X86GpVar) + //! Scalar SP-FP add (AVX) + INST_3x(vaddss, kX86InstIdVaddss, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vaddss, kX86InstIdVaddss, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed DP-FP add/subtract (AVX). + INST_3x(vaddsubpd, kX86InstIdVaddsubpd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vaddsubpd, kX86InstIdVaddsubpd, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3x(vaddsubpd, kX86InstIdVaddsubpd, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vaddsubpd, kX86InstIdVaddsubpd, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed SP-FP add/subtract (AVX). + INST_3x(vaddsubps, kX86InstIdVaddsubps, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vaddsubps, kX86InstIdVaddsubps, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3x(vaddsubps, kX86InstIdVaddsubps, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vaddsubps, kX86InstIdVaddsubps, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed DP-FP bitwise and (AVX). + INST_3x(vandpd, kX86InstIdVandpd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vandpd, kX86InstIdVandpd, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3x(vandpd, kX86InstIdVandpd, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vandpd, kX86InstIdVandpd, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed SP-FP bitwise and (AVX). + INST_3x(vandps, kX86InstIdVandps, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vandps, kX86InstIdVandps, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3x(vandps, kX86InstIdVandps, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vandps, kX86InstIdVandps, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed DP-FP bitwise and-not (AVX). + INST_3x(vandnpd, kX86InstIdVandnpd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vandnpd, kX86InstIdVandnpd, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3x(vandnpd, kX86InstIdVandnpd, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vandnpd, kX86InstIdVandnpd, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed SP-FP bitwise and-not (AVX). + INST_3x(vandnps, kX86InstIdVandnps, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vandnps, kX86InstIdVandnps, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3x(vandnps, kX86InstIdVandnps, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vandnps, kX86InstIdVandnps, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed DP-FP blend (AVX). + INST_4i(vblendpd, kX86InstIdVblendpd, X86XmmVar, X86XmmVar, X86XmmVar, Imm) + //! \overload + INST_4i(vblendpd, kX86InstIdVblendpd, X86XmmVar, X86XmmVar, X86Mem, Imm) + //! \overload + INST_4i(vblendpd, kX86InstIdVblendpd, X86YmmVar, X86YmmVar, X86YmmVar, Imm) + //! \overload + INST_4i(vblendpd, kX86InstIdVblendpd, X86YmmVar, X86YmmVar, X86Mem, Imm) + + //! Packed SP-FP blend (AVX). + INST_4i(vblendps, kX86InstIdVblendps, X86XmmVar, X86XmmVar, X86XmmVar, Imm) + //! \overload + INST_4i(vblendps, kX86InstIdVblendps, X86XmmVar, X86XmmVar, X86Mem, Imm) + //! \overload + INST_4i(vblendps, kX86InstIdVblendps, X86YmmVar, X86YmmVar, X86YmmVar, Imm) + //! \overload + INST_4i(vblendps, kX86InstIdVblendps, X86YmmVar, X86YmmVar, X86Mem, Imm) + + //! Packed DP-FP variable blend (AVX). + INST_4x(vblendvpd, kX86InstIdVblendvpd, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_4x(vblendvpd, kX86InstIdVblendvpd, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + //! \overload + INST_4x(vblendvpd, kX86InstIdVblendvpd, X86YmmVar, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_4x(vblendvpd, kX86InstIdVblendvpd, X86YmmVar, X86YmmVar, X86Mem, X86YmmVar) + + //! Packed SP-FP variable blend (AVX). + INST_4x(vblendvps, kX86InstIdVblendvps, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_4x(vblendvps, kX86InstIdVblendvps, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + //! \overload + INST_4x(vblendvps, kX86InstIdVblendvps, X86YmmVar, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_4x(vblendvps, kX86InstIdVblendvps, X86YmmVar, X86YmmVar, X86Mem, X86YmmVar) + + //! Broadcast 128-bits of FP data in `o1` to low and high 128-bits in `o0` (AVX). + INST_2x(vbroadcastf128, kX86InstIdVbroadcastf128, X86YmmVar, X86Mem) + //! Broadcast DP-FP element in `o1` to four locations in `o0` (AVX). + INST_2x(vbroadcastsd, kX86InstIdVbroadcastsd, X86YmmVar, X86Mem) + //! Broadcast SP-FP element in `o1` to four locations in `o0` (AVX). + INST_2x(vbroadcastss, kX86InstIdVbroadcastss, X86XmmVar, X86Mem) + //! Broadcast SP-FP element in `o1` to eight locations in `o0` (AVX). + INST_2x(vbroadcastss, kX86InstIdVbroadcastss, X86YmmVar, X86Mem) + + //! Packed DP-FP compare (AVX). + INST_4i(vcmppd, kX86InstIdVcmppd, X86XmmVar, X86XmmVar, X86XmmVar, Imm) + //! \overload + INST_4i(vcmppd, kX86InstIdVcmppd, X86XmmVar, X86XmmVar, X86Mem, Imm) + //! \overload + INST_4i(vcmppd, kX86InstIdVcmppd, X86YmmVar, X86YmmVar, X86YmmVar, Imm) + //! \overload + INST_4i(vcmppd, kX86InstIdVcmppd, X86YmmVar, X86YmmVar, X86Mem, Imm) + + //! Packed SP-FP compare (AVX). + INST_4i(vcmpps, kX86InstIdVcmpps, X86XmmVar, X86XmmVar, X86XmmVar, Imm) + //! \overload + INST_4i(vcmpps, kX86InstIdVcmpps, X86XmmVar, X86XmmVar, X86Mem, Imm) + //! \overload + INST_4i(vcmpps, kX86InstIdVcmpps, X86YmmVar, X86YmmVar, X86YmmVar, Imm) + //! \overload + INST_4i(vcmpps, kX86InstIdVcmpps, X86YmmVar, X86YmmVar, X86Mem, Imm) + + //! Scalar DP-FP compare (AVX). + INST_4i(vcmpsd, kX86InstIdVcmpsd, X86XmmVar, X86XmmVar, X86XmmVar, Imm) + //! \overload + INST_4i(vcmpsd, kX86InstIdVcmpsd, X86XmmVar, X86XmmVar, X86Mem, Imm) + + //! Scalar SP-FP compare (AVX). + INST_4i(vcmpss, kX86InstIdVcmpss, X86XmmVar, X86XmmVar, X86XmmVar, Imm) + //! \overload + INST_4i(vcmpss, kX86InstIdVcmpss, X86XmmVar, X86XmmVar, X86Mem, Imm) + + //! Scalar DP-FP ordered compare and set EFLAGS (AVX). + INST_2x(vcomisd, kX86InstIdVcomisd, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vcomisd, kX86InstIdVcomisd, X86XmmVar, X86Mem) + + //! Scalar SP-FP ordered compare and set EFLAGS (AVX). + INST_2x(vcomiss, kX86InstIdVcomiss, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vcomiss, kX86InstIdVcomiss, X86XmmVar, X86Mem) + + //! Convert packed QWORDs to packed DP-FP (AVX). + INST_2x(vcvtdq2pd, kX86InstIdVcvtdq2pd, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vcvtdq2pd, kX86InstIdVcvtdq2pd, X86XmmVar, X86Mem) + //! \overload + INST_2x(vcvtdq2pd, kX86InstIdVcvtdq2pd, X86YmmVar, X86XmmVar) + //! \overload + INST_2x(vcvtdq2pd, kX86InstIdVcvtdq2pd, X86YmmVar, X86Mem) + + //! Convert packed QWORDs to packed SP-FP (AVX). + INST_2x(vcvtdq2ps, kX86InstIdVcvtdq2ps, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vcvtdq2ps, kX86InstIdVcvtdq2ps, X86XmmVar, X86Mem) + //! \overload + INST_2x(vcvtdq2ps, kX86InstIdVcvtdq2ps, X86YmmVar, X86YmmVar) + //! \overload + INST_2x(vcvtdq2ps, kX86InstIdVcvtdq2ps, X86YmmVar, X86Mem) + + //! Convert packed DP-FP to packed DWORDs (AVX). + INST_2x(vcvtpd2dq, kX86InstIdVcvtpd2dq, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vcvtpd2dq, kX86InstIdVcvtpd2dq, X86XmmVar, X86YmmVar) + //! \overload + INST_2x(vcvtpd2dq, kX86InstIdVcvtpd2dq, X86XmmVar, X86Mem) + + //! Convert packed DP-FP to packed SP-FP (AVX). + INST_2x(vcvtpd2ps, kX86InstIdVcvtpd2ps, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vcvtpd2ps, kX86InstIdVcvtpd2ps, X86XmmVar, X86YmmVar) + //! \overload + INST_2x(vcvtpd2ps, kX86InstIdVcvtpd2ps, X86XmmVar, X86Mem) + + //! Convert packed SP-FP to packed DWORDs (AVX). + INST_2x(vcvtps2dq, kX86InstIdVcvtps2dq, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vcvtps2dq, kX86InstIdVcvtps2dq, X86XmmVar, X86Mem) + //! \overload + INST_2x(vcvtps2dq, kX86InstIdVcvtps2dq, X86YmmVar, X86YmmVar) + //! \overload + INST_2x(vcvtps2dq, kX86InstIdVcvtps2dq, X86YmmVar, X86Mem) + + //! Convert packed SP-FP to packed DP-FP (AVX). + INST_2x(vcvtps2pd, kX86InstIdVcvtps2pd, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vcvtps2pd, kX86InstIdVcvtps2pd, X86XmmVar, X86Mem) + //! \overload + INST_2x(vcvtps2pd, kX86InstIdVcvtps2pd, X86YmmVar, X86XmmVar) + //! \overload + INST_2x(vcvtps2pd, kX86InstIdVcvtps2pd, X86YmmVar, X86Mem) + + //! Convert scalar DP-FP to DWORD (AVX). + INST_2x(vcvtsd2si, kX86InstIdVcvtsd2si, X86GpVar, X86XmmVar) + //! \overload + INST_2x(vcvtsd2si, kX86InstIdVcvtsd2si, X86GpVar, X86Mem) + + //! Convert scalar DP-FP to scalar SP-FP (AVX). + INST_3x(vcvtsd2ss, kX86InstIdVcvtsd2ss, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vcvtsd2ss, kX86InstIdVcvtsd2ss, X86XmmVar, X86XmmVar, X86Mem) + + //! Convert DWORD integer to scalar DP-FP (AVX). + INST_3x(vcvtsi2sd, kX86InstIdVcvtsi2sd, X86XmmVar, X86XmmVar, X86GpVar) + //! \overload + INST_3x(vcvtsi2sd, kX86InstIdVcvtsi2sd, X86XmmVar, X86XmmVar, X86Mem) + + //! Convert scalar INT32 to SP-FP (AVX). + INST_3x(vcvtsi2ss, kX86InstIdVcvtsi2ss, X86XmmVar, X86XmmVar, X86GpVar) + //! \overload + INST_3x(vcvtsi2ss, kX86InstIdVcvtsi2ss, X86XmmVar, X86XmmVar, X86Mem) + + //! Convert scalar SP-FP to DP-FP (AVX). + INST_3x(vcvtss2sd, kX86InstIdVcvtss2sd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vcvtss2sd, kX86InstIdVcvtss2sd, X86XmmVar, X86XmmVar, X86Mem) + + //! Convert scalar SP-FP to INT32 (AVX). + INST_2x(vcvtss2si, kX86InstIdVcvtss2si, X86GpVar, X86XmmVar) + //! \overload + INST_2x(vcvtss2si, kX86InstIdVcvtss2si, X86GpVar, X86Mem) + + //! Convert with truncation packed DP-FP to packed DWORDs (AVX). + INST_2x(vcvttpd2dq, kX86InstIdVcvttpd2dq, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vcvttpd2dq, kX86InstIdVcvttpd2dq, X86XmmVar, X86YmmVar) + //! \overload + INST_2x(vcvttpd2dq, kX86InstIdVcvttpd2dq, X86XmmVar, X86Mem) + + //! Convert with truncation packed SP-FP to packed DWORDs (AVX). + INST_2x(vcvttps2dq, kX86InstIdVcvttps2dq, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vcvttps2dq, kX86InstIdVcvttps2dq, X86XmmVar, X86Mem) + //! \overload + INST_2x(vcvttps2dq, kX86InstIdVcvttps2dq, X86YmmVar, X86YmmVar) + //! \overload + INST_2x(vcvttps2dq, kX86InstIdVcvttps2dq, X86YmmVar, X86Mem) + + //! Convert with truncation scalar DP-FP to INT32 (AVX). + INST_2x(vcvttsd2si, kX86InstIdVcvttsd2si, X86GpVar, X86XmmVar) + //! \overload + INST_2x(vcvttsd2si, kX86InstIdVcvttsd2si, X86GpVar, X86Mem) + + //! Convert with truncation scalar SP-FP to INT32 (AVX). + INST_2x(vcvttss2si, kX86InstIdVcvttss2si, X86GpVar, X86XmmVar) + //! \overload + INST_2x(vcvttss2si, kX86InstIdVcvttss2si, X86GpVar, X86Mem) + + //! Packed DP-FP divide (AVX). + INST_3x(vdivpd, kX86InstIdVdivpd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vdivpd, kX86InstIdVdivpd, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3x(vdivpd, kX86InstIdVdivpd, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vdivpd, kX86InstIdVdivpd, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed SP-FP divide (AVX). + INST_3x(vdivps, kX86InstIdVdivps, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vdivps, kX86InstIdVdivps, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3x(vdivps, kX86InstIdVdivps, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vdivps, kX86InstIdVdivps, X86YmmVar, X86YmmVar, X86Mem) + + //! Scalar DP-FP divide (AVX). + INST_3x(vdivsd, kX86InstIdVdivsd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vdivsd, kX86InstIdVdivsd, X86XmmVar, X86XmmVar, X86Mem) + + //! Scalar SP-FP divide (AVX). + INST_3x(vdivss, kX86InstIdVdivss, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vdivss, kX86InstIdVdivss, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed DP-FP dot product (AVX). + INST_4i(vdppd, kX86InstIdVdppd, X86XmmVar, X86XmmVar, X86XmmVar, Imm) + //! \overload + INST_4i(vdppd, kX86InstIdVdppd, X86XmmVar, X86XmmVar, X86Mem, Imm) + + //! Packed SP-FP dot product (AVX). + INST_4i(vdpps, kX86InstIdVdpps, X86XmmVar, X86XmmVar, X86XmmVar, Imm) + //! \overload + INST_4i(vdpps, kX86InstIdVdpps, X86XmmVar, X86XmmVar, X86Mem, Imm) + //! \overload + INST_4i(vdpps, kX86InstIdVdpps, X86YmmVar, X86YmmVar, X86YmmVar, Imm) + //! \overload + INST_4i(vdpps, kX86InstIdVdpps, X86YmmVar, X86YmmVar, X86Mem, Imm) + + //! Extract 128 bits of packed FP data from `o1` and store results in `o0` (AVX). + INST_3i(vextractf128, kX86InstIdVextractf128, X86XmmVar, X86YmmVar, Imm) + //! \overload + INST_3i(vextractf128, kX86InstIdVextractf128, X86Mem, X86YmmVar, Imm) + + //! Extract SP-FP based on selector (AVX). + INST_3i(vextractps, kX86InstIdVextractps, X86GpVar, X86XmmVar, Imm) + //! \overload + INST_3i(vextractps, kX86InstIdVextractps, X86Mem, X86XmmVar, Imm) + + //! Packed DP-FP horizontal add (AVX). + INST_3x(vhaddpd, kX86InstIdVhaddpd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vhaddpd, kX86InstIdVhaddpd, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3x(vhaddpd, kX86InstIdVhaddpd, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vhaddpd, kX86InstIdVhaddpd, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed SP-FP horizontal add (AVX). + INST_3x(vhaddps, kX86InstIdVhaddps, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vhaddps, kX86InstIdVhaddps, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3x(vhaddps, kX86InstIdVhaddps, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vhaddps, kX86InstIdVhaddps, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed DP-FP horizontal subtract (AVX). + INST_3x(vhsubpd, kX86InstIdVhsubpd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vhsubpd, kX86InstIdVhsubpd, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3x(vhsubpd, kX86InstIdVhsubpd, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vhsubpd, kX86InstIdVhsubpd, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed SP-FP horizontal subtract (AVX). + INST_3x(vhsubps, kX86InstIdVhsubps, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vhsubps, kX86InstIdVhsubps, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3x(vhsubps, kX86InstIdVhsubps, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vhsubps, kX86InstIdVhsubps, X86YmmVar, X86YmmVar, X86Mem) + + //! Insert 128-bit of packed FP data based on selector (AVX). + INST_4i(vinsertf128, kX86InstIdVinsertf128, X86YmmVar, X86YmmVar, X86XmmVar, Imm) + //! \overload + INST_4i(vinsertf128, kX86InstIdVinsertf128, X86YmmVar, X86YmmVar, X86Mem, Imm) + + //! Insert SP-FP based on selector (AVX). + INST_4i(vinsertps, kX86InstIdVinsertps, X86XmmVar, X86XmmVar, X86XmmVar, Imm) + //! \overload + INST_4i(vinsertps, kX86InstIdVinsertps, X86XmmVar, X86XmmVar, X86Mem, Imm) + + //! Load 128-bits unaligned (AVX). + INST_2x(vlddqu, kX86InstIdVlddqu, X86XmmVar, X86Mem) + //! Load 256-bits unaligned (AVX). + INST_2x(vlddqu, kX86InstIdVlddqu, X86YmmVar, X86Mem) + + //! Load streaming SIMD extension control/status (AVX). + INST_1x(vldmxcsr, kX86InstIdVldmxcsr, X86Mem) + + //! Store selected bytes of DQWORD to DS:EDI/RDI (AVX). + INST_3x(vmaskmovdqu, kX86InstIdMaskmovdqu, X86GpVar /* ZDI */, X86XmmVar, X86XmmVar) + + //! Conditionally load packed DP-FP from `o2` using mask in `o1 and store in `o0` (AVX). + INST_3x(vmaskmovpd, kX86InstIdVmaskmovpd, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3x(vmaskmovpd, kX86InstIdVmaskmovpd, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vmaskmovpd, kX86InstIdVmaskmovpd, X86Mem, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vmaskmovpd, kX86InstIdVmaskmovpd, X86Mem, X86YmmVar, X86YmmVar) + + //! Conditionally load packed SP-FP from `o2` using mask in `o1 and store in `o0` (AVX). + INST_3x(vmaskmovps, kX86InstIdVmaskmovps, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3x(vmaskmovps, kX86InstIdVmaskmovps, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vmaskmovps, kX86InstIdVmaskmovps, X86Mem, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vmaskmovps, kX86InstIdVmaskmovps, X86Mem, X86YmmVar, X86YmmVar) + + //! Packed DP-FP maximum (AVX). + INST_3x(vmaxpd, kX86InstIdVmaxpd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vmaxpd, kX86InstIdVmaxpd, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3x(vmaxpd, kX86InstIdVmaxpd, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vmaxpd, kX86InstIdVmaxpd, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed SP-FP maximum (AVX). + INST_3x(vmaxps, kX86InstIdVmaxps, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vmaxps, kX86InstIdVmaxps, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3x(vmaxps, kX86InstIdVmaxps, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vmaxps, kX86InstIdVmaxps, X86YmmVar, X86YmmVar, X86Mem) + + //! Scalar DP-FP maximum (AVX). + INST_3x(vmaxsd, kX86InstIdVmaxsd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vmaxsd, kX86InstIdVmaxsd, X86XmmVar, X86XmmVar, X86Mem) + + //! Scalar SP-FP maximum (AVX). + INST_3x(vmaxss, kX86InstIdVmaxss, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vmaxss, kX86InstIdVmaxss, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed DP-FP minimum (AVX). + INST_3x(vminpd, kX86InstIdVminpd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vminpd, kX86InstIdVminpd, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3x(vminpd, kX86InstIdVminpd, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vminpd, kX86InstIdVminpd, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed SP-FP minimum (AVX). + INST_3x(vminps, kX86InstIdVminps, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vminps, kX86InstIdVminps, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3x(vminps, kX86InstIdVminps, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vminps, kX86InstIdVminps, X86YmmVar, X86YmmVar, X86Mem) + + //! Scalar DP-FP minimum (AVX). + INST_3x(vminsd, kX86InstIdVminsd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vminsd, kX86InstIdVminsd, X86XmmVar, X86XmmVar, X86Mem) + + //! Scalar SP-FP minimum (AVX). + INST_3x(vminss, kX86InstIdVminss, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vminss, kX86InstIdVminss, X86XmmVar, X86XmmVar, X86Mem) + + //! Move 128-bits of aligned packed DP-FP (AVX). + INST_2x(vmovapd, kX86InstIdVmovapd, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vmovapd, kX86InstIdVmovapd, X86XmmVar, X86Mem) + //! \overload + INST_2x(vmovapd, kX86InstIdVmovapd, X86Mem, X86XmmVar) + //! Move 256-bits of aligned packed DP-FP (AVX). + INST_2x(vmovapd, kX86InstIdVmovapd, X86YmmVar, X86YmmVar) + //! \overload + INST_2x(vmovapd, kX86InstIdVmovapd, X86YmmVar, X86Mem) + //! \overload + INST_2x(vmovapd, kX86InstIdVmovapd, X86Mem, X86YmmVar) + + //! Move 128-bits of aligned packed SP-FP (AVX). + INST_2x(vmovaps, kX86InstIdVmovaps, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vmovaps, kX86InstIdVmovaps, X86XmmVar, X86Mem) + //! \overload + INST_2x(vmovaps, kX86InstIdVmovaps, X86Mem, X86XmmVar) + //! Move 256-bits of aligned packed SP-FP (AVX). + INST_2x(vmovaps, kX86InstIdVmovaps, X86YmmVar, X86YmmVar) + //! \overload + INST_2x(vmovaps, kX86InstIdVmovaps, X86YmmVar, X86Mem) + //! \overload + INST_2x(vmovaps, kX86InstIdVmovaps, X86Mem, X86YmmVar) + + //! Move DWORD (AVX). + INST_2x(vmovd, kX86InstIdVmovd, X86XmmVar, X86GpVar) + //! \overload + INST_2x(vmovd, kX86InstIdVmovd, X86XmmVar, X86Mem) + //! \overload + INST_2x(vmovd, kX86InstIdVmovd, X86GpVar, X86XmmVar) + //! \overload + INST_2x(vmovd, kX86InstIdVmovd, X86Mem, X86XmmVar) + + //! Move QWORD (AVX). + INST_2x(vmovq, kX86InstIdVmovq, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vmovq, kX86InstIdVmovq, X86XmmVar, X86Mem) + //! \overload + INST_2x(vmovq, kX86InstIdVmovq, X86Mem, X86XmmVar) + + //! Move QWORD (AVX and X64 Only). + INST_2x(vmovq, kX86InstIdVmovq, X86XmmVar, X86GpVar) + //! \overload + INST_2x(vmovq, kX86InstIdVmovq, X86GpVar, X86XmmVar) + + //! Move one DP-FP and duplicate (AVX). + INST_2x(vmovddup, kX86InstIdVmovddup, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vmovddup, kX86InstIdVmovddup, X86XmmVar, X86Mem) + //! \overload + INST_2x(vmovddup, kX86InstIdVmovddup, X86YmmVar, X86YmmVar) + //! \overload + INST_2x(vmovddup, kX86InstIdVmovddup, X86YmmVar, X86Mem) + + //! Move 128-bits aligned (AVX). + INST_2x(vmovdqa, kX86InstIdVmovdqa, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vmovdqa, kX86InstIdVmovdqa, X86XmmVar, X86Mem) + //! \overload + INST_2x(vmovdqa, kX86InstIdVmovdqa, X86Mem, X86XmmVar) + //! Move 256-bits aligned (AVX). + INST_2x(vmovdqa, kX86InstIdVmovdqa, X86YmmVar, X86YmmVar) + //! \overload + INST_2x(vmovdqa, kX86InstIdVmovdqa, X86YmmVar, X86Mem) + //! \overload + INST_2x(vmovdqa, kX86InstIdVmovdqa, X86Mem, X86YmmVar) + + //! Move 128-bits unaligned (AVX). + INST_2x(vmovdqu, kX86InstIdVmovdqu, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vmovdqu, kX86InstIdVmovdqu, X86XmmVar, X86Mem) + //! \overload + INST_2x(vmovdqu, kX86InstIdVmovdqu, X86Mem, X86XmmVar) + //! Move 256-bits unaligned (AVX). + INST_2x(vmovdqu, kX86InstIdVmovdqu, X86YmmVar, X86YmmVar) + //! \overload + INST_2x(vmovdqu, kX86InstIdVmovdqu, X86YmmVar, X86Mem) + //! \overload + INST_2x(vmovdqu, kX86InstIdVmovdqu, X86Mem, X86YmmVar) + + //! High to low packed SP-FP (AVX). + INST_3x(vmovhlps, kX86InstIdVmovhlps, X86XmmVar, X86XmmVar, X86XmmVar) + + //! Move high packed DP-FP (AVX). + INST_3x(vmovhpd, kX86InstIdVmovhpd, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_2x(vmovhpd, kX86InstIdVmovhpd, X86Mem, X86XmmVar) + + //! Move high packed SP-FP (AVX). + INST_3x(vmovhps, kX86InstIdVmovhps, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_2x(vmovhps, kX86InstIdVmovhps, X86Mem, X86XmmVar) + + //! Move low to high packed SP-FP (AVX). + INST_3x(vmovlhps, kX86InstIdVmovlhps, X86XmmVar, X86XmmVar, X86XmmVar) + + //! Move low packed DP-FP (AVX). + INST_3x(vmovlpd, kX86InstIdVmovlpd, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_2x(vmovlpd, kX86InstIdVmovlpd, X86Mem, X86XmmVar) + + //! Move low packed SP-FP (AVX). + INST_3x(vmovlps, kX86InstIdVmovlps, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_2x(vmovlps, kX86InstIdVmovlps, X86Mem, X86XmmVar) + + //! Extract packed DP-FP sign mask (AVX). + INST_2x(vmovmskpd, kX86InstIdVmovmskpd, X86GpVar, X86XmmVar) + //! \overload + INST_2x(vmovmskpd, kX86InstIdVmovmskpd, X86GpVar, X86YmmVar) + + //! Extract packed SP-FP sign mask (AVX). + INST_2x(vmovmskps, kX86InstIdVmovmskps, X86GpVar, X86XmmVar) + //! \overload + INST_2x(vmovmskps, kX86InstIdVmovmskps, X86GpVar, X86YmmVar) + + //! Store 128-bits using NT hint (AVX). + INST_2x(vmovntdq, kX86InstIdVmovntdq, X86Mem, X86XmmVar) + //! Store 256-bits using NT hint (AVX). + INST_2x(vmovntdq, kX86InstIdVmovntdq, X86Mem, X86YmmVar) + + //! Store 128-bits aligned using NT hint (AVX). + INST_2x(vmovntdqa, kX86InstIdVmovntdqa, X86XmmVar, X86Mem) + + //! Store packed DP-FP (128-bits) using NT hint (AVX). + INST_2x(vmovntpd, kX86InstIdVmovntpd, X86Mem, X86XmmVar) + //! Store packed DP-FP (256-bits) using NT hint (AVX). + INST_2x(vmovntpd, kX86InstIdVmovntpd, X86Mem, X86YmmVar) + + //! Store packed SP-FP (128-bits) using NT hint (AVX). + INST_2x(vmovntps, kX86InstIdVmovntps, X86Mem, X86XmmVar) + //! Store packed SP-FP (256-bits) using NT hint (AVX). + INST_2x(vmovntps, kX86InstIdVmovntps, X86Mem, X86YmmVar) + + //! Move scalar DP-FP (AVX). + INST_3x(vmovsd, kX86InstIdVmovsd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vmovsd, kX86InstIdVmovsd, X86XmmVar, X86Mem) + //! \overload + INST_2x(vmovsd, kX86InstIdVmovsd, X86Mem, X86XmmVar) + + //! Move packed SP-FP high and duplicate (AVX). + INST_2x(vmovshdup, kX86InstIdVmovshdup, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vmovshdup, kX86InstIdVmovshdup, X86XmmVar, X86Mem) + //! \overload + INST_2x(vmovshdup, kX86InstIdVmovshdup, X86YmmVar, X86YmmVar) + //! \overload + INST_2x(vmovshdup, kX86InstIdVmovshdup, X86YmmVar, X86Mem) + + //! Move packed SP-FP low and duplicate (AVX). + INST_2x(vmovsldup, kX86InstIdVmovsldup, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vmovsldup, kX86InstIdVmovsldup, X86XmmVar, X86Mem) + //! \overload + INST_2x(vmovsldup, kX86InstIdVmovsldup, X86YmmVar, X86YmmVar) + //! \overload + INST_2x(vmovsldup, kX86InstIdVmovsldup, X86YmmVar, X86Mem) + + //! Move scalar SP-FP (AVX). + INST_3x(vmovss, kX86InstIdVmovss, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vmovss, kX86InstIdVmovss, X86XmmVar, X86Mem) + //! \overload + INST_2x(vmovss, kX86InstIdVmovss, X86Mem, X86XmmVar) + + //! Move 128-bits of unaligned packed DP-FP (AVX). + INST_2x(vmovupd, kX86InstIdVmovupd, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vmovupd, kX86InstIdVmovupd, X86XmmVar, X86Mem) + //! \overload + INST_2x(vmovupd, kX86InstIdVmovupd, X86Mem, X86XmmVar) + //! Move 256-bits of unaligned packed DP-FP (AVX). + INST_2x(vmovupd, kX86InstIdVmovupd, X86YmmVar, X86YmmVar) + //! \overload + INST_2x(vmovupd, kX86InstIdVmovupd, X86YmmVar, X86Mem) + //! \overload + INST_2x(vmovupd, kX86InstIdVmovupd, X86Mem, X86YmmVar) + + //! Move 128-bits of unaligned packed SP-FP (AVX). + INST_2x(vmovups, kX86InstIdVmovups, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vmovups, kX86InstIdVmovups, X86XmmVar, X86Mem) + //! \overload + INST_2x(vmovups, kX86InstIdVmovups, X86Mem, X86XmmVar) + //! Move 256-bits of unaligned packed SP-FP (AVX). + INST_2x(vmovups, kX86InstIdVmovups, X86YmmVar, X86YmmVar) + //! \overload + INST_2x(vmovups, kX86InstIdVmovups, X86YmmVar, X86Mem) + //! \overload + INST_2x(vmovups, kX86InstIdVmovups, X86Mem, X86YmmVar) + + //! Packed WORD sums of absolute difference (AVX). + INST_4i(vmpsadbw, kX86InstIdVmpsadbw, X86XmmVar, X86XmmVar, X86XmmVar, Imm) + //! \overload + INST_4i(vmpsadbw, kX86InstIdVmpsadbw, X86XmmVar, X86XmmVar, X86Mem, Imm) + + //! Packed DP-FP multiply (AVX). + INST_3x(vmulpd, kX86InstIdVmulpd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vmulpd, kX86InstIdVmulpd, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3x(vmulpd, kX86InstIdVmulpd, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vmulpd, kX86InstIdVmulpd, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed SP-FP multiply (AVX). + INST_3x(vmulps, kX86InstIdVmulps, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vmulps, kX86InstIdVmulps, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3x(vmulps, kX86InstIdVmulps, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vmulps, kX86InstIdVmulps, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed SP-FP multiply (AVX). + INST_3x(vmulsd, kX86InstIdVmulsd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vmulsd, kX86InstIdVmulsd, X86XmmVar, X86XmmVar, X86Mem) + + //! Scalar SP-FP multiply (AVX). + INST_3x(vmulss, kX86InstIdVmulss, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vmulss, kX86InstIdVmulss, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed DP-FP bitwise or (AVX). + INST_3x(vorpd, kX86InstIdVorpd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vorpd, kX86InstIdVorpd, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3x(vorpd, kX86InstIdVorpd, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vorpd, kX86InstIdVorpd, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed SP-FP bitwise or (AVX). + INST_3x(vorps, kX86InstIdVorps, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vorps, kX86InstIdVorps, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3x(vorps, kX86InstIdVorps, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vorps, kX86InstIdVorps, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed BYTE absolute value (AVX). + INST_2x(vpabsb, kX86InstIdVpabsb, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vpabsb, kX86InstIdVpabsb, X86XmmVar, X86Mem) + + //! Packed DWORD absolute value (AVX). + INST_2x(vpabsd, kX86InstIdVpabsd, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vpabsd, kX86InstIdVpabsd, X86XmmVar, X86Mem) + + //! Packed WORD absolute value (AVX). + INST_2x(vpabsw, kX86InstIdVpabsw, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vpabsw, kX86InstIdVpabsw, X86XmmVar, X86Mem) + + //! Pack DWORDs to WORDs with signed saturation (AVX). + INST_3x(vpackssdw, kX86InstIdVpackssdw, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpackssdw, kX86InstIdVpackssdw, X86XmmVar, X86XmmVar, X86Mem) + + //! Pack WORDs to BYTEs with signed saturation (AVX). + INST_3x(vpacksswb, kX86InstIdVpacksswb, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpacksswb, kX86InstIdVpacksswb, X86XmmVar, X86XmmVar, X86Mem) + + //! Pack DWORDs to WORDs with unsigned saturation (AVX). + INST_3x(vpackusdw, kX86InstIdVpackusdw, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpackusdw, kX86InstIdVpackusdw, X86XmmVar, X86XmmVar, X86Mem) + + //! Pack WORDs to BYTEs with unsigned saturation (AVX). + INST_3x(vpackuswb, kX86InstIdVpackuswb, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpackuswb, kX86InstIdVpackuswb, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed BYTE add (AVX). + INST_3x(vpaddb, kX86InstIdVpaddb, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpaddb, kX86InstIdVpaddb, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed DWORD add (AVX). + INST_3x(vpaddd, kX86InstIdVpaddd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpaddd, kX86InstIdVpaddd, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed QWORD add (AVX). + INST_3x(vpaddq, kX86InstIdVpaddq, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpaddq, kX86InstIdVpaddq, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed WORD add (AVX). + INST_3x(vpaddw, kX86InstIdVpaddw, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpaddw, kX86InstIdVpaddw, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed BYTE add with saturation (AVX). + INST_3x(vpaddsb, kX86InstIdVpaddsb, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpaddsb, kX86InstIdVpaddsb, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed WORD add with saturation (AVX). + INST_3x(vpaddsw, kX86InstIdVpaddsw, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpaddsw, kX86InstIdVpaddsw, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed BYTE add with unsigned saturation (AVX). + INST_3x(vpaddusb, kX86InstIdVpaddusb, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpaddusb, kX86InstIdVpaddusb, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed WORD add with unsigned saturation (AVX). + INST_3x(vpaddusw, kX86InstIdVpaddusw, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpaddusw, kX86InstIdVpaddusw, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed align right (AVX). + INST_4i(vpalignr, kX86InstIdVpalignr, X86XmmVar, X86XmmVar, X86XmmVar, Imm) + //! \overload + INST_4i(vpalignr, kX86InstIdVpalignr, X86XmmVar, X86XmmVar, X86Mem, Imm) + + //! Packed bitwise and (AVX). + INST_3x(vpand, kX86InstIdVpand, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpand, kX86InstIdVpand, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed bitwise and-not (AVX). + INST_3x(vpandn, kX86InstIdVpandn, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpandn, kX86InstIdVpandn, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed BYTE average (AVX). + INST_3x(vpavgb, kX86InstIdVpavgb, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpavgb, kX86InstIdVpavgb, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed WORD average (AVX). + INST_3x(vpavgw, kX86InstIdVpavgw, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpavgw, kX86InstIdVpavgw, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed BYTE variable blend (AVX). + INST_4x(vpblendvb, kX86InstIdVpblendvb, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_4x(vpblendvb, kX86InstIdVpblendvb, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + + //! Packed WORD blend (AVX). + INST_4i(vpblendw, kX86InstIdVpblendw, X86XmmVar, X86XmmVar, X86XmmVar, Imm) + //! \overload + INST_4i(vpblendw, kX86InstIdVpblendw, X86XmmVar, X86XmmVar, X86Mem, Imm) + + //! Packed BYTEs compare for equality (AVX). + INST_3x(vpcmpeqb, kX86InstIdVpcmpeqb, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpcmpeqb, kX86InstIdVpcmpeqb, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed DWORDs compare for equality (AVX). + INST_3x(vpcmpeqd, kX86InstIdVpcmpeqd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpcmpeqd, kX86InstIdVpcmpeqd, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed QWORDs compare for equality (AVX). + INST_3x(vpcmpeqq, kX86InstIdVpcmpeqq, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpcmpeqq, kX86InstIdVpcmpeqq, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed WORDs compare for equality (AVX). + INST_3x(vpcmpeqw, kX86InstIdVpcmpeqw, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpcmpeqw, kX86InstIdVpcmpeqw, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed BYTEs compare if greater than (AVX). + INST_3x(vpcmpgtb, kX86InstIdVpcmpgtb, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpcmpgtb, kX86InstIdVpcmpgtb, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed DWORDs compare if greater than (AVX). + INST_3x(vpcmpgtd, kX86InstIdVpcmpgtd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpcmpgtd, kX86InstIdVpcmpgtd, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed QWORDs compare if greater than (AVX). + INST_3x(vpcmpgtq, kX86InstIdVpcmpgtq, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpcmpgtq, kX86InstIdVpcmpgtq, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed WORDs compare if greater than (AVX). + INST_3x(vpcmpgtw, kX86InstIdVpcmpgtw, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpcmpgtw, kX86InstIdVpcmpgtw, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed compare explicit length strings, return index in ECX (AVX). + INST_3i(vpcmpestri, kX86InstIdVpcmpestri, X86XmmVar, X86XmmVar, Imm) + //! \overload + INST_3i(vpcmpestri, kX86InstIdVpcmpestri, X86XmmVar, X86Mem, Imm) + + //! Packed compare explicit length strings, return mask in XMM0 (AVX). + INST_3i(vpcmpestrm, kX86InstIdVpcmpestrm, X86XmmVar, X86XmmVar, Imm) + //! \overload + INST_3i(vpcmpestrm, kX86InstIdVpcmpestrm, X86XmmVar, X86Mem, Imm) + + //! Packed compare implicit length strings, return index in ECX (AVX). + INST_4i(vpcmpistri, kX86InstIdVpcmpistri, X86GpVar, X86XmmVar, X86XmmVar, Imm) + //! \overload + INST_4i(vpcmpistri, kX86InstIdVpcmpistri, X86GpVar, X86XmmVar, X86Mem, Imm) + + //! Packed compare implicit length strings, return mask in XMM0 (AVX). + INST_4i(vpcmpistrm, kX86InstIdVpcmpistrm, X86XmmVar, X86XmmVar, X86XmmVar, Imm) + //! \overload + INST_4i(vpcmpistrm, kX86InstIdVpcmpistrm, X86XmmVar, X86XmmVar, X86Mem, Imm) + + //! Packed DP-FP permute (AVX). + INST_3x(vpermilpd, kX86InstIdVpermilpd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpermilpd, kX86InstIdVpermilpd, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3x(vpermilpd, kX86InstIdVpermilpd, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vpermilpd, kX86InstIdVpermilpd, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3i(vpermilpd, kX86InstIdVpermilpd, X86XmmVar, X86XmmVar, Imm) + //! \overload + INST_3i(vpermilpd, kX86InstIdVpermilpd, X86XmmVar, X86Mem, Imm) + //! \overload + INST_3i(vpermilpd, kX86InstIdVpermilpd, X86YmmVar, X86YmmVar, Imm) + //! \overload + INST_3i(vpermilpd, kX86InstIdVpermilpd, X86YmmVar, X86Mem, Imm) + + //! Packed SP-FP permute (AVX). + INST_3x(vpermilps, kX86InstIdVpermilps, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpermilps, kX86InstIdVpermilps, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3x(vpermilps, kX86InstIdVpermilps, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vpermilps, kX86InstIdVpermilps, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3i(vpermilps, kX86InstIdVpermilps, X86XmmVar, X86XmmVar, Imm) + //! \overload + INST_3i(vpermilps, kX86InstIdVpermilps, X86XmmVar, X86Mem, Imm) + //! \overload + INST_3i(vpermilps, kX86InstIdVpermilps, X86YmmVar, X86YmmVar, Imm) + //! \overload + INST_3i(vpermilps, kX86InstIdVpermilps, X86YmmVar, X86Mem, Imm) + + //! Packed 128-bit FP permute (AVX). + INST_4i(vperm2f128, kX86InstIdVperm2f128, X86YmmVar, X86YmmVar, X86YmmVar, Imm) + //! \overload + INST_4i(vperm2f128, kX86InstIdVperm2f128, X86YmmVar, X86YmmVar, X86Mem, Imm) + + //! Extract BYTE (AVX). + INST_3i(vpextrb, kX86InstIdVpextrb, X86GpVar, X86XmmVar, Imm) + //! \overload + INST_3i(vpextrb, kX86InstIdVpextrb, X86Mem, X86XmmVar, Imm) + + //! Extract DWORD (AVX). + INST_3i(vpextrd, kX86InstIdVpextrd, X86GpVar, X86XmmVar, Imm) + //! \overload + INST_3i(vpextrd, kX86InstIdVpextrd, X86Mem, X86XmmVar, Imm) + + //! Extract QWORD (AVX and X64 Only). + INST_3i(vpextrq, kX86InstIdVpextrq, X86GpVar, X86XmmVar, Imm) + //! \overload + INST_3i(vpextrq, kX86InstIdVpextrq, X86Mem, X86XmmVar, Imm) + + //! Extract WORD (AVX). + INST_3i(vpextrw, kX86InstIdVpextrw, X86GpVar, X86XmmVar, Imm) + //! \overload + INST_3i(vpextrw, kX86InstIdVpextrw, X86Mem, X86XmmVar, Imm) + + //! Packed DWORD horizontal add (AVX). + INST_3x(vphaddd, kX86InstIdVphaddd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vphaddd, kX86InstIdVphaddd, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed WORD horizontal add with saturation (AVX). + INST_3x(vphaddsw, kX86InstIdVphaddsw, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vphaddsw, kX86InstIdVphaddsw, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed WORD horizontal add (AVX). + INST_3x(vphaddw, kX86InstIdVphaddw, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vphaddw, kX86InstIdVphaddw, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed WORD horizontal minimum (AVX). + INST_2x(vphminposuw, kX86InstIdVphminposuw, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vphminposuw, kX86InstIdVphminposuw, X86XmmVar, X86Mem) + + //! Packed DWORD horizontal subtract (AVX). + INST_3x(vphsubd, kX86InstIdVphsubd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vphsubd, kX86InstIdVphsubd, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed WORD horizontal subtract with saturation (AVX). + INST_3x(vphsubsw, kX86InstIdVphsubsw, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vphsubsw, kX86InstIdVphsubsw, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed WORD horizontal subtract (AVX). + INST_3x(vphsubw, kX86InstIdVphsubw, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vphsubw, kX86InstIdVphsubw, X86XmmVar, X86XmmVar, X86Mem) + + //! Insert BYTE based on selector (AVX). + INST_4i(vpinsrb, kX86InstIdVpinsrb, X86XmmVar, X86XmmVar, X86GpVar, Imm) + //! \overload + INST_4i(vpinsrb, kX86InstIdVpinsrb, X86XmmVar, X86XmmVar, X86Mem, Imm) + + //! Insert DWORD based on selector (AVX). + INST_4i(vpinsrd, kX86InstIdVpinsrd, X86XmmVar, X86XmmVar, X86GpVar, Imm) + //! \overload + INST_4i(vpinsrd, kX86InstIdVpinsrd, X86XmmVar, X86XmmVar, X86Mem, Imm) + + //! Insert QWORD based on selector (AVX and X64 Only). + INST_4i(vpinsrq, kX86InstIdVpinsrq, X86XmmVar, X86XmmVar, X86GpVar, Imm) + //! \overload + INST_4i(vpinsrq, kX86InstIdVpinsrq, X86XmmVar, X86XmmVar, X86Mem, Imm) + + //! Insert WORD based on selector (AVX). + INST_4i(vpinsrw, kX86InstIdVpinsrw, X86XmmVar, X86XmmVar, X86GpVar, Imm) + //! \overload + INST_4i(vpinsrw, kX86InstIdVpinsrw, X86XmmVar, X86XmmVar, X86Mem, Imm) + + //! Packed multiply and add signed and unsigned bytes (AVX). + INST_3x(vpmaddubsw, kX86InstIdVpmaddubsw, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpmaddubsw, kX86InstIdVpmaddubsw, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed WORD multiply and add to packed DWORD (AVX). + INST_3x(vpmaddwd, kX86InstIdVpmaddwd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpmaddwd, kX86InstIdVpmaddwd, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed BYTE maximum (AVX). + INST_3x(vpmaxsb, kX86InstIdVpmaxsb, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpmaxsb, kX86InstIdVpmaxsb, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed DWORD maximum (AVX). + INST_3x(vpmaxsd, kX86InstIdVpmaxsd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpmaxsd, kX86InstIdVpmaxsd, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed WORD maximum (AVX). + INST_3x(vpmaxsw, kX86InstIdVpmaxsw, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpmaxsw, kX86InstIdVpmaxsw, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed BYTE unsigned maximum (AVX). + INST_3x(vpmaxub, kX86InstIdVpmaxub, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpmaxub, kX86InstIdVpmaxub, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed DWORD unsigned maximum (AVX). + INST_3x(vpmaxud, kX86InstIdVpmaxud, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpmaxud, kX86InstIdVpmaxud, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed WORD unsigned maximum (AVX). + INST_3x(vpmaxuw, kX86InstIdVpmaxuw, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpmaxuw, kX86InstIdVpmaxuw, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed BYTE minimum (AVX). + INST_3x(vpminsb, kX86InstIdVpminsb, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpminsb, kX86InstIdVpminsb, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed DWORD minimum (AVX). + INST_3x(vpminsd, kX86InstIdVpminsd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpminsd, kX86InstIdVpminsd, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed WORD minimum (AVX). + INST_3x(vpminsw, kX86InstIdVpminsw, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpminsw, kX86InstIdVpminsw, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed BYTE unsigned minimum (AVX). + INST_3x(vpminub, kX86InstIdVpminub, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpminub, kX86InstIdVpminub, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed DWORD unsigned minimum (AVX). + INST_3x(vpminud, kX86InstIdVpminud, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpminud, kX86InstIdVpminud, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed WORD unsigned minimum (AVX). + INST_3x(vpminuw, kX86InstIdVpminuw, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpminuw, kX86InstIdVpminuw, X86XmmVar, X86XmmVar, X86Mem) + + //! Move Byte mask to integer (AVX). + INST_2x(vpmovmskb, kX86InstIdVpmovmskb, X86GpVar, X86XmmVar) + + //! BYTE to DWORD with sign extend (AVX). + INST_2x(vpmovsxbd, kX86InstIdVpmovsxbd, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vpmovsxbd, kX86InstIdVpmovsxbd, X86XmmVar, X86Mem) + + //! Packed BYTE to QWORD with sign extend (AVX). + INST_2x(vpmovsxbq, kX86InstIdVpmovsxbq, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vpmovsxbq, kX86InstIdVpmovsxbq, X86XmmVar, X86Mem) + + //! Packed BYTE to WORD with sign extend (AVX). + INST_2x(vpmovsxbw, kX86InstIdVpmovsxbw, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vpmovsxbw, kX86InstIdVpmovsxbw, X86XmmVar, X86Mem) + + //! Packed DWORD to QWORD with sign extend (AVX). + INST_2x(vpmovsxdq, kX86InstIdVpmovsxdq, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vpmovsxdq, kX86InstIdVpmovsxdq, X86XmmVar, X86Mem) + + //! Packed WORD to DWORD with sign extend (AVX). + INST_2x(vpmovsxwd, kX86InstIdVpmovsxwd, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vpmovsxwd, kX86InstIdVpmovsxwd, X86XmmVar, X86Mem) + + //! Packed WORD to QWORD with sign extend (AVX). + INST_2x(vpmovsxwq, kX86InstIdVpmovsxwq, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vpmovsxwq, kX86InstIdVpmovsxwq, X86XmmVar, X86Mem) + + //! BYTE to DWORD with zero extend (AVX). + INST_2x(vpmovzxbd, kX86InstIdVpmovzxbd, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vpmovzxbd, kX86InstIdVpmovzxbd, X86XmmVar, X86Mem) + + //! Packed BYTE to QWORD with zero extend (AVX). + INST_2x(vpmovzxbq, kX86InstIdVpmovzxbq, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vpmovzxbq, kX86InstIdVpmovzxbq, X86XmmVar, X86Mem) + + //! BYTE to WORD with zero extend (AVX). + INST_2x(vpmovzxbw, kX86InstIdVpmovzxbw, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vpmovzxbw, kX86InstIdVpmovzxbw, X86XmmVar, X86Mem) + + //! Packed DWORD to QWORD with zero extend (AVX). + INST_2x(vpmovzxdq, kX86InstIdVpmovzxdq, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vpmovzxdq, kX86InstIdVpmovzxdq, X86XmmVar, X86Mem) + + //! Packed WORD to DWORD with zero extend (AVX). + INST_2x(vpmovzxwd, kX86InstIdVpmovzxwd, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vpmovzxwd, kX86InstIdVpmovzxwd, X86XmmVar, X86Mem) + + //! Packed WORD to QWORD with zero extend (AVX). + INST_2x(vpmovzxwq, kX86InstIdVpmovzxwq, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vpmovzxwq, kX86InstIdVpmovzxwq, X86XmmVar, X86Mem) + + //! Packed DWORD to QWORD multiply (AVX). + INST_3x(vpmuldq, kX86InstIdVpmuldq, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpmuldq, kX86InstIdVpmuldq, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed WORD multiply high, round and scale (AVX). + INST_3x(vpmulhrsw, kX86InstIdVpmulhrsw, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpmulhrsw, kX86InstIdVpmulhrsw, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed WORD unsigned multiply high (AVX). + INST_3x(vpmulhuw, kX86InstIdVpmulhuw, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpmulhuw, kX86InstIdVpmulhuw, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed WORD multiply high (AVX). + INST_3x(vpmulhw, kX86InstIdVpmulhw, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpmulhw, kX86InstIdVpmulhw, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed DWORD multiply low (AVX). + INST_3x(vpmulld, kX86InstIdVpmulld, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpmulld, kX86InstIdVpmulld, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed WORDs multiply low (AVX). + INST_3x(vpmullw, kX86InstIdVpmullw, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpmullw, kX86InstIdVpmullw, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed DWORD multiply to QWORD (AVX). + INST_3x(vpmuludq, kX86InstIdVpmuludq, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpmuludq, kX86InstIdVpmuludq, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed bitwise or (AVX). + INST_3x(vpor, kX86InstIdVpor, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpor, kX86InstIdVpor, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed WORD sum of absolute differences (AVX). + INST_3x(vpsadbw, kX86InstIdVpsadbw, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpsadbw, kX86InstIdVpsadbw, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed BYTE shuffle (AVX). + INST_3x(vpshufb, kX86InstIdVpshufb, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpshufb, kX86InstIdVpshufb, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed DWORD shuffle (AVX). + INST_3i(vpshufd, kX86InstIdVpshufd, X86XmmVar, X86XmmVar, Imm) + //! \overload + INST_3i(vpshufd, kX86InstIdVpshufd, X86XmmVar, X86Mem, Imm) + + //! Packed WORD shuffle high (AVX). + INST_3i(vpshufhw, kX86InstIdVpshufhw, X86XmmVar, X86XmmVar, Imm) + //! \overload + INST_3i(vpshufhw, kX86InstIdVpshufhw, X86XmmVar, X86Mem, Imm) + + //! Packed WORD shuffle low (AVX). + INST_3i(vpshuflw, kX86InstIdVpshuflw, X86XmmVar, X86XmmVar, Imm) + //! \overload + INST_3i(vpshuflw, kX86InstIdVpshuflw, X86XmmVar, X86Mem, Imm) + + //! Packed BYTE sign (AVX). + INST_3x(vpsignb, kX86InstIdVpsignb, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpsignb, kX86InstIdVpsignb, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed DWORD sign (AVX). + INST_3x(vpsignd, kX86InstIdVpsignd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpsignd, kX86InstIdVpsignd, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed WORD sign (AVX). + INST_3x(vpsignw, kX86InstIdVpsignw, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpsignw, kX86InstIdVpsignw, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed DWORD shift left logical (AVX). + INST_3x(vpslld, kX86InstIdVpslld, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpslld, kX86InstIdVpslld, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3i(vpslld, kX86InstIdVpslld, X86XmmVar, X86XmmVar, Imm) + + //! Packed DQWORD shift left logical (AVX). + INST_3i(vpslldq, kX86InstIdVpslldq, X86XmmVar, X86XmmVar, Imm) + + //! Packed QWORD shift left logical (AVX). + INST_3x(vpsllq, kX86InstIdVpsllq, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpsllq, kX86InstIdVpsllq, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3i(vpsllq, kX86InstIdVpsllq, X86XmmVar, X86XmmVar, Imm) + + //! Packed WORD shift left logical (AVX). + INST_3x(vpsllw, kX86InstIdVpsllw, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpsllw, kX86InstIdVpsllw, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3i(vpsllw, kX86InstIdVpsllw, X86XmmVar, X86XmmVar, Imm) + + //! Packed DWORD shift right arithmetic (AVX). + INST_3x(vpsrad, kX86InstIdVpsrad, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpsrad, kX86InstIdVpsrad, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3i(vpsrad, kX86InstIdVpsrad, X86XmmVar, X86XmmVar, Imm) + + //! Packed WORD shift right arithmetic (AVX). + INST_3x(vpsraw, kX86InstIdVpsraw, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpsraw, kX86InstIdVpsraw, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3i(vpsraw, kX86InstIdVpsraw, X86XmmVar, X86XmmVar, Imm) + + //! Packed DWORD shift right logical (AVX). + INST_3x(vpsrld, kX86InstIdVpsrld, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpsrld, kX86InstIdVpsrld, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3i(vpsrld, kX86InstIdVpsrld, X86XmmVar, X86XmmVar, Imm) + + //! Scalar DQWORD shift right logical (AVX). + INST_3i(vpsrldq, kX86InstIdVpsrldq, X86XmmVar, X86XmmVar, Imm) + + //! Packed QWORD shift right logical (AVX). + INST_3x(vpsrlq, kX86InstIdVpsrlq, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpsrlq, kX86InstIdVpsrlq, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3i(vpsrlq, kX86InstIdVpsrlq, X86XmmVar, X86XmmVar, Imm) + + //! Packed WORD shift right logical (AVX). + INST_3x(vpsrlw, kX86InstIdVpsrlw, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpsrlw, kX86InstIdVpsrlw, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3i(vpsrlw, kX86InstIdVpsrlw, X86XmmVar, X86XmmVar, Imm) + + //! Packed BYTE subtract (AVX). + INST_3x(vpsubb, kX86InstIdVpsubb, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpsubb, kX86InstIdVpsubb, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed DWORD subtract (AVX). + INST_3x(vpsubd, kX86InstIdVpsubd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpsubd, kX86InstIdVpsubd, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed QWORD subtract (AVX). + INST_3x(vpsubq, kX86InstIdVpsubq, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpsubq, kX86InstIdVpsubq, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed WORD subtract (AVX). + INST_3x(vpsubw, kX86InstIdVpsubw, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpsubw, kX86InstIdVpsubw, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed BYTE subtract with saturation (AVX). + INST_3x(vpsubsb, kX86InstIdVpsubsb, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpsubsb, kX86InstIdVpsubsb, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed WORD subtract with saturation (AVX). + INST_3x(vpsubsw, kX86InstIdVpsubsw, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpsubsw, kX86InstIdVpsubsw, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed BYTE subtract with unsigned saturation (AVX). + INST_3x(vpsubusb, kX86InstIdVpsubusb, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpsubusb, kX86InstIdVpsubusb, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed WORD subtract with unsigned saturation (AVX). + INST_3x(vpsubusw, kX86InstIdVpsubusw, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpsubusw, kX86InstIdVpsubusw, X86XmmVar, X86XmmVar, X86Mem) + + //! Logical compare (AVX). + INST_2x(vptest, kX86InstIdVptest, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vptest, kX86InstIdVptest, X86XmmVar, X86Mem) + //! \overload + INST_2x(vptest, kX86InstIdVptest, X86YmmVar, X86YmmVar) + //! \overload + INST_2x(vptest, kX86InstIdVptest, X86YmmVar, X86Mem) + + //! Unpack high packed BYTEs to WORDs (AVX). + INST_3x(vpunpckhbw, kX86InstIdVpunpckhbw, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpunpckhbw, kX86InstIdVpunpckhbw, X86XmmVar, X86XmmVar, X86Mem) + + //! Unpack high packed DWORDs to QWORDs (AVX). + INST_3x(vpunpckhdq, kX86InstIdVpunpckhdq, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpunpckhdq, kX86InstIdVpunpckhdq, X86XmmVar, X86XmmVar, X86Mem) + + //! Unpack high packed QWORDs to DQWORD (AVX). + INST_3x(vpunpckhqdq, kX86InstIdVpunpckhqdq, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpunpckhqdq, kX86InstIdVpunpckhqdq, X86XmmVar, X86XmmVar, X86Mem) + + //! Unpack high packed WORDs to DWORDs (AVX). + INST_3x(vpunpckhwd, kX86InstIdVpunpckhwd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpunpckhwd, kX86InstIdVpunpckhwd, X86XmmVar, X86XmmVar, X86Mem) + + //! Unpack low packed BYTEs to WORDs (AVX). + INST_3x(vpunpcklbw, kX86InstIdVpunpcklbw, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpunpcklbw, kX86InstIdVpunpcklbw, X86XmmVar, X86XmmVar, X86Mem) + + //! Unpack low packed DWORDs to QWORDs (AVX). + INST_3x(vpunpckldq, kX86InstIdVpunpckldq, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpunpckldq, kX86InstIdVpunpckldq, X86XmmVar, X86XmmVar, X86Mem) + + //! Unpack low packed QWORDs to DQWORD (AVX). + INST_3x(vpunpcklqdq, kX86InstIdVpunpcklqdq, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpunpcklqdq, kX86InstIdVpunpcklqdq, X86XmmVar, X86XmmVar, X86Mem) + + //! Unpack low packed WORDs to DWORDs (AVX). + INST_3x(vpunpcklwd, kX86InstIdVpunpcklwd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpunpcklwd, kX86InstIdVpunpcklwd, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed bitwise xor (AVX). + INST_3x(vpxor, kX86InstIdVpxor, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vpxor, kX86InstIdVpxor, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed SP-FP reciprocal (AVX). + INST_2x(vrcpps, kX86InstIdVrcpps, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vrcpps, kX86InstIdVrcpps, X86XmmVar, X86Mem) + //! \overload + INST_2x(vrcpps, kX86InstIdVrcpps, X86YmmVar, X86YmmVar) + //! \overload + INST_2x(vrcpps, kX86InstIdVrcpps, X86YmmVar, X86Mem) + + //! Scalar SP-FP reciprocal (AVX). + INST_3x(vrcpss, kX86InstIdVrcpss, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vrcpss, kX86InstIdVrcpss, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed SP-FP square root reciprocal (AVX). + INST_2x(vrsqrtps, kX86InstIdVrsqrtps, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vrsqrtps, kX86InstIdVrsqrtps, X86XmmVar, X86Mem) + //! \overload + INST_2x(vrsqrtps, kX86InstIdVrsqrtps, X86YmmVar, X86YmmVar) + //! \overload + INST_2x(vrsqrtps, kX86InstIdVrsqrtps, X86YmmVar, X86Mem) + + //! Scalar SP-FP square root reciprocal (AVX). + INST_3x(vrsqrtss, kX86InstIdVrsqrtss, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vrsqrtss, kX86InstIdVrsqrtss, X86XmmVar, X86XmmVar, X86Mem) + + //! Packed DP-FP round (AVX). + INST_3i(vroundpd, kX86InstIdVroundpd, X86XmmVar, X86XmmVar, Imm) + //! \overload + INST_3i(vroundpd, kX86InstIdVroundpd, X86XmmVar, X86Mem, Imm) + //! \overload + INST_3i(vroundpd, kX86InstIdVroundpd, X86YmmVar, X86YmmVar, Imm) + //! \overload + INST_3i(vroundpd, kX86InstIdVroundpd, X86YmmVar, X86Mem, Imm) + + //! Packed SP-FP round (AVX). + INST_3i(vroundps, kX86InstIdVroundps, X86XmmVar, X86XmmVar, Imm) + //! \overload + INST_3i(vroundps, kX86InstIdVroundps, X86XmmVar, X86Mem, Imm) + //! \overload + INST_3i(vroundps, kX86InstIdVroundps, X86YmmVar, X86YmmVar, Imm) + //! \overload + INST_3i(vroundps, kX86InstIdVroundps, X86YmmVar, X86Mem, Imm) + + //! Scalar DP-FP round (AVX). + INST_4i(vroundsd, kX86InstIdVroundsd, X86XmmVar, X86XmmVar, X86XmmVar, Imm) + //! \overload + INST_4i(vroundsd, kX86InstIdVroundsd, X86XmmVar, X86XmmVar, X86Mem, Imm) + + //! Scalar SP-FP round (AVX). + INST_4i(vroundss, kX86InstIdVroundss, X86XmmVar, X86XmmVar, X86XmmVar, Imm) + //! \overload + INST_4i(vroundss, kX86InstIdVroundss, X86XmmVar, X86XmmVar, X86Mem, Imm) + + //! Shuffle DP-FP (AVX). + INST_4i(vshufpd, kX86InstIdVshufpd, X86XmmVar, X86XmmVar, X86XmmVar, Imm) + //! \overload + INST_4i(vshufpd, kX86InstIdVshufpd, X86XmmVar, X86XmmVar, X86Mem, Imm) + //! \overload + INST_4i(vshufpd, kX86InstIdVshufpd, X86YmmVar, X86YmmVar, X86YmmVar, Imm) + //! \overload + INST_4i(vshufpd, kX86InstIdVshufpd, X86YmmVar, X86YmmVar, X86Mem, Imm) + + //! Shuffle SP-FP (AVX). + INST_4i(vshufps, kX86InstIdVshufps, X86XmmVar, X86XmmVar, X86XmmVar, Imm) + //! \overload + INST_4i(vshufps, kX86InstIdVshufps, X86XmmVar, X86XmmVar, X86Mem, Imm) + //! \overload + INST_4i(vshufps, kX86InstIdVshufps, X86YmmVar, X86YmmVar, X86YmmVar, Imm) + //! \overload + INST_4i(vshufps, kX86InstIdVshufps, X86YmmVar, X86YmmVar, X86Mem, Imm) + + //! Packed DP-FP square root (AVX). + INST_2x(vsqrtpd, kX86InstIdVsqrtpd, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vsqrtpd, kX86InstIdVsqrtpd, X86XmmVar, X86Mem) + //! \overload + INST_2x(vsqrtpd, kX86InstIdVsqrtpd, X86YmmVar, X86YmmVar) + //! \overload + INST_2x(vsqrtpd, kX86InstIdVsqrtpd, X86YmmVar, X86Mem) + + //! Packed SP-FP square root (AVX). + INST_2x(vsqrtps, kX86InstIdVsqrtps, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vsqrtps, kX86InstIdVsqrtps, X86XmmVar, X86Mem) + //! \overload + INST_2x(vsqrtps, kX86InstIdVsqrtps, X86YmmVar, X86YmmVar) + //! \overload + INST_2x(vsqrtps, kX86InstIdVsqrtps, X86YmmVar, X86Mem) + + //! Scalar DP-FP square root (AVX). + INST_3x(vsqrtsd, kX86InstIdVsqrtsd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vsqrtsd, kX86InstIdVsqrtsd, X86XmmVar, X86XmmVar, X86Mem) + + //! Scalar SP-FP square root (AVX). + INST_3x(vsqrtss, kX86InstIdVsqrtss, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vsqrtss, kX86InstIdVsqrtss, X86XmmVar, X86XmmVar, X86Mem) + + //! Store streaming SIMD extension control/status (AVX). + INST_1x(vstmxcsr, kX86InstIdVstmxcsr, X86Mem) + + //! Packed DP-FP subtract (AVX). + INST_3x(vsubpd, kX86InstIdVsubpd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vsubpd, kX86InstIdVsubpd, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3x(vsubpd, kX86InstIdVsubpd, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vsubpd, kX86InstIdVsubpd, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed SP-FP subtract (AVX). + INST_3x(vsubps, kX86InstIdVsubps, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vsubps, kX86InstIdVsubps, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3x(vsubps, kX86InstIdVsubps, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vsubps, kX86InstIdVsubps, X86YmmVar, X86YmmVar, X86Mem) + + //! Scalar DP-FP subtract (AVX). + INST_3x(vsubsd, kX86InstIdVsubsd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vsubsd, kX86InstIdVsubsd, X86XmmVar, X86XmmVar, X86Mem) + + //! Scalar SP-FP subtract (AVX). + INST_3x(vsubss, kX86InstIdVsubss, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vsubss, kX86InstIdVsubss, X86XmmVar, X86XmmVar, X86Mem) + + //! Logical compare DP-FP (AVX). + INST_2x(vtestpd, kX86InstIdVtestpd, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vtestpd, kX86InstIdVtestpd, X86XmmVar, X86Mem) + //! \overload + INST_2x(vtestpd, kX86InstIdVtestpd, X86YmmVar, X86YmmVar) + //! \overload + INST_2x(vtestpd, kX86InstIdVtestpd, X86YmmVar, X86Mem) + + //! Logical compare SP-FP (AVX). + INST_2x(vtestps, kX86InstIdVtestps, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vtestps, kX86InstIdVtestps, X86XmmVar, X86Mem) + //! \overload + INST_2x(vtestps, kX86InstIdVtestps, X86YmmVar, X86YmmVar) + //! \overload + INST_2x(vtestps, kX86InstIdVtestps, X86YmmVar, X86Mem) + + //! Scalar DP-FP unordered compare and set EFLAGS (AVX). + INST_2x(vucomisd, kX86InstIdVucomisd, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vucomisd, kX86InstIdVucomisd, X86XmmVar, X86Mem) + + //! Unordered scalar SP-FP compare and set EFLAGS (AVX). + INST_2x(vucomiss, kX86InstIdVucomiss, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vucomiss, kX86InstIdVucomiss, X86XmmVar, X86Mem) + + //! Unpack and interleave high packed DP-FP (AVX). + INST_3x(vunpckhpd, kX86InstIdVunpckhpd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vunpckhpd, kX86InstIdVunpckhpd, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3x(vunpckhpd, kX86InstIdVunpckhpd, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vunpckhpd, kX86InstIdVunpckhpd, X86YmmVar, X86YmmVar, X86Mem) + + //! Unpack high packed SP-FP data (AVX). + INST_3x(vunpckhps, kX86InstIdVunpckhps, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vunpckhps, kX86InstIdVunpckhps, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3x(vunpckhps, kX86InstIdVunpckhps, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vunpckhps, kX86InstIdVunpckhps, X86YmmVar, X86YmmVar, X86Mem) + + //! Unpack and interleave low packed DP-FP (AVX). + INST_3x(vunpcklpd, kX86InstIdVunpcklpd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vunpcklpd, kX86InstIdVunpcklpd, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3x(vunpcklpd, kX86InstIdVunpcklpd, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vunpcklpd, kX86InstIdVunpcklpd, X86YmmVar, X86YmmVar, X86Mem) + + //! Unpack low packed SP-FP data (AVX). + INST_3x(vunpcklps, kX86InstIdVunpcklps, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vunpcklps, kX86InstIdVunpcklps, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3x(vunpcklps, kX86InstIdVunpcklps, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vunpcklps, kX86InstIdVunpcklps, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed DP-FP bitwise xor (AVX). + INST_3x(vxorpd, kX86InstIdVxorpd, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vxorpd, kX86InstIdVxorpd, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3x(vxorpd, kX86InstIdVxorpd, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vxorpd, kX86InstIdVxorpd, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed SP-FP bitwise xor (AVX). + INST_3x(vxorps, kX86InstIdVxorps, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vxorps, kX86InstIdVxorps, X86XmmVar, X86XmmVar, X86Mem) + //! \overload + INST_3x(vxorps, kX86InstIdVxorps, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vxorps, kX86InstIdVxorps, X86YmmVar, X86YmmVar, X86Mem) + + //! Zero all YMM registers. + INST_0x(vzeroall, kX86InstIdVzeroall) + //! Zero upper 128-bits of all YMM registers. + INST_0x(vzeroupper, kX86InstIdVzeroupper) + + // -------------------------------------------------------------------------- + // [AVX+AESNI] + // -------------------------------------------------------------------------- + + //! Perform a single round of the AES decryption flow (AVX+AESNI). + INST_3x(vaesdec, kX86InstIdVaesdec, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vaesdec, kX86InstIdVaesdec, X86XmmVar, X86XmmVar, X86Mem) + + //! Perform the last round of the AES decryption flow (AVX+AESNI). + INST_3x(vaesdeclast, kX86InstIdVaesdeclast, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vaesdeclast, kX86InstIdVaesdeclast, X86XmmVar, X86XmmVar, X86Mem) + + //! Perform a single round of the AES encryption flow (AVX+AESNI). + INST_3x(vaesenc, kX86InstIdVaesenc, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vaesenc, kX86InstIdVaesenc, X86XmmVar, X86XmmVar, X86Mem) + + //! Perform the last round of the AES encryption flow (AVX+AESNI). + INST_3x(vaesenclast, kX86InstIdVaesenclast, X86XmmVar, X86XmmVar, X86XmmVar) + //! \overload + INST_3x(vaesenclast, kX86InstIdVaesenclast, X86XmmVar, X86XmmVar, X86Mem) + + //! Perform the InvMixColumns transformation (AVX+AESNI). + INST_2x(vaesimc, kX86InstIdVaesimc, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vaesimc, kX86InstIdVaesimc, X86XmmVar, X86Mem) + + //! Assist in expanding the AES cipher key (AVX+AESNI). + INST_3i(vaeskeygenassist, kX86InstIdVaeskeygenassist, X86XmmVar, X86XmmVar, Imm) + //! \overload + INST_3i(vaeskeygenassist, kX86InstIdVaeskeygenassist, X86XmmVar, X86Mem, Imm) + + // -------------------------------------------------------------------------- + // [AVX+PCLMULQDQ] + // -------------------------------------------------------------------------- + + //! Carry-less multiplication QWORD (AVX+PCLMULQDQ). + INST_4i(vpclmulqdq, kX86InstIdVpclmulqdq, X86XmmVar, X86XmmVar, X86XmmVar, Imm) + //! \overload + INST_4i(vpclmulqdq, kX86InstIdVpclmulqdq, X86XmmVar, X86XmmVar, X86Mem, Imm) + + // -------------------------------------------------------------------------- + // [AVX2] + // -------------------------------------------------------------------------- + + //! Broadcast low 128-bit element in `o1` to `o0` (AVX2). + INST_2x(vbroadcasti128, kX86InstIdVbroadcasti128, X86YmmVar, X86Mem) + //! Broadcast low DP-FP element in `o1` to `o0` (AVX2). + INST_2x(vbroadcastsd, kX86InstIdVbroadcastsd, X86YmmVar, X86XmmVar) + //! Broadcast low SP-FP element in `o1` to `o0` (AVX2). + INST_2x(vbroadcastss, kX86InstIdVbroadcastss, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vbroadcastss, kX86InstIdVbroadcastss, X86YmmVar, X86XmmVar) + + //! Extract 128-bit element from `o1` to `o0` based on selector (AVX2). + INST_3i(vextracti128, kX86InstIdVextracti128, X86XmmVar, X86YmmVar, Imm) + //! \overload + INST_3i(vextracti128, kX86InstIdVextracti128, X86Mem, X86YmmVar, Imm) + + //! Gather DP-FP from DWORD indexes specified in `o1`s VSIB (AVX2). + INST_3x(vgatherdpd, kX86InstIdVgatherdpd, X86XmmVar, X86Mem, X86XmmVar) + //! \overload + INST_3x(vgatherdpd, kX86InstIdVgatherdpd, X86YmmVar, X86Mem, X86YmmVar) + + //! Gather SP-FP from DWORD indexes specified in `o1`s VSIB (AVX2). + INST_3x(vgatherdps, kX86InstIdVgatherdps, X86XmmVar, X86Mem, X86XmmVar) + //! \overload + INST_3x(vgatherdps, kX86InstIdVgatherdps, X86YmmVar, X86Mem, X86YmmVar) + + //! Gather DP-FP from QWORD indexes specified in `o1`s VSIB (AVX2). + INST_3x(vgatherqpd, kX86InstIdVgatherqpd, X86XmmVar, X86Mem, X86XmmVar) + //! \overload + INST_3x(vgatherqpd, kX86InstIdVgatherqpd, X86YmmVar, X86Mem, X86YmmVar) + + //! Gather SP-FP from QWORD indexes specified in `o1`s VSIB (AVX2). + INST_3x(vgatherqps, kX86InstIdVgatherqps, X86XmmVar, X86Mem, X86XmmVar) + + //! Insert 128-bit of packed data based on selector (AVX2). + INST_4i(vinserti128, kX86InstIdVinserti128, X86YmmVar, X86YmmVar, X86XmmVar, Imm) + //! \overload + INST_4i(vinserti128, kX86InstIdVinserti128, X86YmmVar, X86YmmVar, X86Mem, Imm) + + //! Load 256-bits aligned using NT hint (AVX2). + INST_2x(vmovntdqa, kX86InstIdVmovntdqa, X86YmmVar, X86Mem) + + //! Packed WORD sums of absolute difference (AVX2). + INST_4i(vmpsadbw, kX86InstIdVmpsadbw, X86YmmVar, X86YmmVar, X86YmmVar, Imm) + //! \overload + INST_4i(vmpsadbw, kX86InstIdVmpsadbw, X86YmmVar, X86YmmVar, X86Mem, Imm) + + //! Packed BYTE absolute value (AVX2). + INST_2x(vpabsb, kX86InstIdVpabsb, X86YmmVar, X86YmmVar) + //! \overload + INST_2x(vpabsb, kX86InstIdVpabsb, X86YmmVar, X86Mem) + + //! Packed DWORD absolute value (AVX2). + INST_2x(vpabsd, kX86InstIdVpabsd, X86YmmVar, X86YmmVar) + //! \overload + INST_2x(vpabsd, kX86InstIdVpabsd, X86YmmVar, X86Mem) + + //! Packed WORD absolute value (AVX2). + INST_2x(vpabsw, kX86InstIdVpabsw, X86YmmVar, X86YmmVar) + //! \overload + INST_2x(vpabsw, kX86InstIdVpabsw, X86YmmVar, X86Mem) + + //! Pack DWORDs to WORDs with signed saturation (AVX2). + INST_3x(vpackssdw, kX86InstIdVpackssdw, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vpackssdw, kX86InstIdVpackssdw, X86YmmVar, X86YmmVar, X86Mem) + + //! Pack WORDs to BYTEs with signed saturation (AVX2). + INST_3x(vpacksswb, kX86InstIdVpacksswb, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vpacksswb, kX86InstIdVpacksswb, X86YmmVar, X86YmmVar, X86Mem) + + //! Pack DWORDs to WORDs with unsigned saturation (AVX2). + INST_3x(vpackusdw, kX86InstIdVpackusdw, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vpackusdw, kX86InstIdVpackusdw, X86YmmVar, X86YmmVar, X86Mem) + + //! Pack WORDs to BYTEs with unsigned saturation (AVX2). + INST_3x(vpackuswb, kX86InstIdVpackuswb, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vpackuswb, kX86InstIdVpackuswb, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed BYTE add (AVX2). + INST_3x(vpaddb, kX86InstIdVpaddb, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vpaddb, kX86InstIdVpaddb, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed DWORD add (AVX2). + INST_3x(vpaddd, kX86InstIdVpaddd, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vpaddd, kX86InstIdVpaddd, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed QDWORD add (AVX2). + INST_3x(vpaddq, kX86InstIdVpaddq, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vpaddq, kX86InstIdVpaddq, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed WORD add (AVX2). + INST_3x(vpaddw, kX86InstIdVpaddw, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vpaddw, kX86InstIdVpaddw, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed BYTE add with saturation (AVX2). + INST_3x(vpaddsb, kX86InstIdVpaddsb, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vpaddsb, kX86InstIdVpaddsb, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed WORD add with saturation (AVX2). + INST_3x(vpaddsw, kX86InstIdVpaddsw, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vpaddsw, kX86InstIdVpaddsw, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed BYTE add with unsigned saturation (AVX2). + INST_3x(vpaddusb, kX86InstIdVpaddusb, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vpaddusb, kX86InstIdVpaddusb, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed WORD add with unsigned saturation (AVX2). + INST_3x(vpaddusw, kX86InstIdVpaddusw, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vpaddusw, kX86InstIdVpaddusw, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed align right (AVX2). + INST_4i(vpalignr, kX86InstIdVpalignr, X86YmmVar, X86YmmVar, X86YmmVar, Imm) + //! \overload + INST_4i(vpalignr, kX86InstIdVpalignr, X86YmmVar, X86YmmVar, X86Mem, Imm) + + //! Packed bitwise and (AVX2). + INST_3x(vpand, kX86InstIdVpand, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vpand, kX86InstIdVpand, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed bitwise and-not (AVX2). + INST_3x(vpandn, kX86InstIdVpandn, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vpandn, kX86InstIdVpandn, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed BYTE average (AVX2). + INST_3x(vpavgb, kX86InstIdVpavgb, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vpavgb, kX86InstIdVpavgb, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed WORD average (AVX2). + INST_3x(vpavgw, kX86InstIdVpavgw, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vpavgw, kX86InstIdVpavgw, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed DWORD blend (AVX2). + INST_4i(vpblendd, kX86InstIdVpblendd, X86XmmVar, X86XmmVar, X86XmmVar, Imm) + //! \overload + INST_4i(vpblendd, kX86InstIdVpblendd, X86XmmVar, X86XmmVar, X86Mem, Imm) + //! \overload + INST_4i(vpblendd, kX86InstIdVpblendd, X86YmmVar, X86YmmVar, X86YmmVar, Imm) + //! \overload + INST_4i(vpblendd, kX86InstIdVpblendd, X86YmmVar, X86YmmVar, X86Mem, Imm) + + //! Packed DWORD variable blend (AVX2). + INST_4x(vpblendvb, kX86InstIdVpblendvb, X86YmmVar, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_4x(vpblendvb, kX86InstIdVpblendvb, X86YmmVar, X86YmmVar, X86Mem, X86YmmVar) + + //! Packed WORD blend (AVX2). + INST_4i(vpblendw, kX86InstIdVpblendw, X86YmmVar, X86YmmVar, X86YmmVar, Imm) + //! \overload + INST_4i(vpblendw, kX86InstIdVpblendw, X86YmmVar, X86YmmVar, X86Mem, Imm) + + //! Broadcast BYTE from `o1` to 128-bits in `o0` (AVX2). + INST_2x(vpbroadcastb, kX86InstIdVpbroadcastb, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vpbroadcastb, kX86InstIdVpbroadcastb, X86XmmVar, X86Mem) + //! Broadcast BYTE from `o1` to 256-bits in `o0` (AVX2). + INST_2x(vpbroadcastb, kX86InstIdVpbroadcastb, X86YmmVar, X86XmmVar) + //! \overload + INST_2x(vpbroadcastb, kX86InstIdVpbroadcastb, X86YmmVar, X86Mem) + + //! Broadcast DWORD from `o1` to 128-bits in `o0` (AVX2). + INST_2x(vpbroadcastd, kX86InstIdVpbroadcastd, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vpbroadcastd, kX86InstIdVpbroadcastd, X86XmmVar, X86Mem) + //! Broadcast DWORD from `o1` to 256-bits in `o0` (AVX2). + INST_2x(vpbroadcastd, kX86InstIdVpbroadcastd, X86YmmVar, X86XmmVar) + //! \overload + INST_2x(vpbroadcastd, kX86InstIdVpbroadcastd, X86YmmVar, X86Mem) + + //! Broadcast QWORD from `o1` to 128-bits in `o0` (AVX2). + INST_2x(vpbroadcastq, kX86InstIdVpbroadcastq, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vpbroadcastq, kX86InstIdVpbroadcastq, X86XmmVar, X86Mem) + //! Broadcast QWORD from `o1` to 256-bits in `o0` (AVX2). + INST_2x(vpbroadcastq, kX86InstIdVpbroadcastq, X86YmmVar, X86XmmVar) + //! \overload + INST_2x(vpbroadcastq, kX86InstIdVpbroadcastq, X86YmmVar, X86Mem) + + //! Broadcast WORD from `o1` to 128-bits in `o0` (AVX2). + INST_2x(vpbroadcastw, kX86InstIdVpbroadcastw, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vpbroadcastw, kX86InstIdVpbroadcastw, X86XmmVar, X86Mem) + //! Broadcast WORD from `o1` to 256-bits in `o0` (AVX2). + INST_2x(vpbroadcastw, kX86InstIdVpbroadcastw, X86YmmVar, X86XmmVar) + //! \overload + INST_2x(vpbroadcastw, kX86InstIdVpbroadcastw, X86YmmVar, X86Mem) + + //! Packed BYTEs compare for equality (AVX2). + INST_3x(vpcmpeqb, kX86InstIdVpcmpeqb, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vpcmpeqb, kX86InstIdVpcmpeqb, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed DWORDs compare for equality (AVX2). + INST_3x(vpcmpeqd, kX86InstIdVpcmpeqd, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vpcmpeqd, kX86InstIdVpcmpeqd, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed QWORDs compare for equality (AVX2). + INST_3x(vpcmpeqq, kX86InstIdVpcmpeqq, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vpcmpeqq, kX86InstIdVpcmpeqq, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed WORDs compare for equality (AVX2). + INST_3x(vpcmpeqw, kX86InstIdVpcmpeqw, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vpcmpeqw, kX86InstIdVpcmpeqw, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed BYTEs compare if greater than (AVX2). + INST_3x(vpcmpgtb, kX86InstIdVpcmpgtb, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vpcmpgtb, kX86InstIdVpcmpgtb, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed DWORDs compare if greater than (AVX2). + INST_3x(vpcmpgtd, kX86InstIdVpcmpgtd, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vpcmpgtd, kX86InstIdVpcmpgtd, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed QWORDs compare if greater than (AVX2). + INST_3x(vpcmpgtq, kX86InstIdVpcmpgtq, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vpcmpgtq, kX86InstIdVpcmpgtq, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed WORDs compare if greater than (AVX2). + INST_3x(vpcmpgtw, kX86InstIdVpcmpgtw, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vpcmpgtw, kX86InstIdVpcmpgtw, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed DQWORD permute (AVX2). + INST_4i(vperm2i128, kX86InstIdVperm2i128, X86YmmVar, X86YmmVar, X86YmmVar, Imm) + //! \overload + INST_4i(vperm2i128, kX86InstIdVperm2i128, X86YmmVar, X86YmmVar, X86Mem, Imm) + + //! Packed DWORD permute (AVX2). + INST_3x(vpermd, kX86InstIdVpermd, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vpermd, kX86InstIdVpermd, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed DP-FP permute (AVX2). + INST_3i(vpermpd, kX86InstIdVpermpd, X86YmmVar, X86YmmVar, Imm) + //! \overload + INST_3i(vpermpd, kX86InstIdVpermpd, X86YmmVar, X86Mem, Imm) + + //! Packed SP-FP permute (AVX2). + INST_3x(vpermps, kX86InstIdVpermps, X86YmmVar, X86YmmVar, X86YmmVar) + //! \overload + INST_3x(vpermps, kX86InstIdVpermps, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed QWORD permute (AVX2). + INST_3i(vpermq, kX86InstIdVpermq, X86YmmVar, X86YmmVar, Imm) + //! \overload + INST_3i(vpermq, kX86InstIdVpermq, X86YmmVar, X86Mem, Imm) + + INST_3x(vpgatherdd, kX86InstIdVpgatherdd, X86XmmVar, X86Mem, X86XmmVar) + INST_3x(vpgatherdd, kX86InstIdVpgatherdd, X86YmmVar, X86Mem, X86YmmVar) + + INST_3x(vpgatherdq, kX86InstIdVpgatherdq, X86XmmVar, X86Mem, X86XmmVar) + INST_3x(vpgatherdq, kX86InstIdVpgatherdq, X86YmmVar, X86Mem, X86YmmVar) + + INST_3x(vpgatherqd, kX86InstIdVpgatherqd, X86XmmVar, X86Mem, X86XmmVar) + + INST_3x(vpgatherqq, kX86InstIdVpgatherqq, X86XmmVar, X86Mem, X86XmmVar) + INST_3x(vpgatherqq, kX86InstIdVpgatherqq, X86YmmVar, X86Mem, X86YmmVar) + + //! Packed DWORD horizontal add (AVX2). + INST_3x(vphaddd, kX86InstIdVphaddd, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vphaddd, kX86InstIdVphaddd, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed WORD horizontal add with saturation (AVX2). + INST_3x(vphaddsw, kX86InstIdVphaddsw, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vphaddsw, kX86InstIdVphaddsw, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed WORD horizontal add (AVX2). + INST_3x(vphaddw, kX86InstIdVphaddw, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vphaddw, kX86InstIdVphaddw, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed DWORD horizontal subtract (AVX2). + INST_3x(vphsubd, kX86InstIdVphsubd, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vphsubd, kX86InstIdVphsubd, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed WORD horizontal subtract with saturation (AVX2). + INST_3x(vphsubsw, kX86InstIdVphsubsw, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vphsubsw, kX86InstIdVphsubsw, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed WORD horizontal subtract (AVX2). + INST_3x(vphsubw, kX86InstIdVphsubw, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vphsubw, kX86InstIdVphsubw, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Move Byte mask to integer (AVX2). + INST_2x(vpmovmskb, kX86InstIdVpmovmskb, X86GpVar, X86YmmVar) + + //! BYTE to DWORD with sign extend (AVX). + INST_2x(vpmovsxbd, kX86InstIdVpmovsxbd, X86YmmVar, X86Mem) + //! \overload + INST_2x(vpmovsxbd, kX86InstIdVpmovsxbd, X86YmmVar, X86XmmVar) + + //! Packed BYTE to QWORD with sign extend (AVX2). + INST_2x(vpmovsxbq, kX86InstIdVpmovsxbq, X86YmmVar, X86Mem) + //! \overload + INST_2x(vpmovsxbq, kX86InstIdVpmovsxbq, X86YmmVar, X86XmmVar) + + //! Packed BYTE to WORD with sign extend (AVX2). + INST_2x(vpmovsxbw, kX86InstIdVpmovsxbw, X86YmmVar, X86Mem) + //! \overload + INST_2x(vpmovsxbw, kX86InstIdVpmovsxbw, X86YmmVar, X86XmmVar) + + //! Packed DWORD to QWORD with sign extend (AVX2). + INST_2x(vpmovsxdq, kX86InstIdVpmovsxdq, X86YmmVar, X86Mem) + //! \overload + INST_2x(vpmovsxdq, kX86InstIdVpmovsxdq, X86YmmVar, X86XmmVar) + + //! Packed WORD to DWORD with sign extend (AVX2). + INST_2x(vpmovsxwd, kX86InstIdVpmovsxwd, X86YmmVar, X86Mem) + //! \overload + INST_2x(vpmovsxwd, kX86InstIdVpmovsxwd, X86YmmVar, X86XmmVar) + + //! Packed WORD to QWORD with sign extend (AVX2). + INST_2x(vpmovsxwq, kX86InstIdVpmovsxwq, X86YmmVar, X86Mem) + //! \overload + INST_2x(vpmovsxwq, kX86InstIdVpmovsxwq, X86YmmVar, X86XmmVar) + + //! BYTE to DWORD with zero extend (AVX2). + INST_2x(vpmovzxbd, kX86InstIdVpmovzxbd, X86YmmVar, X86Mem) + //! \overload + INST_2x(vpmovzxbd, kX86InstIdVpmovzxbd, X86YmmVar, X86XmmVar) + + //! Packed BYTE to QWORD with zero extend (AVX2). + INST_2x(vpmovzxbq, kX86InstIdVpmovzxbq, X86YmmVar, X86Mem) + //! \overload + INST_2x(vpmovzxbq, kX86InstIdVpmovzxbq, X86YmmVar, X86XmmVar) + + //! BYTE to WORD with zero extend (AVX2). + INST_2x(vpmovzxbw, kX86InstIdVpmovzxbw, X86YmmVar, X86Mem) + //! \overload + INST_2x(vpmovzxbw, kX86InstIdVpmovzxbw, X86YmmVar, X86XmmVar) + + //! Packed DWORD to QWORD with zero extend (AVX2). + INST_2x(vpmovzxdq, kX86InstIdVpmovzxdq, X86YmmVar, X86Mem) + //! \overload + INST_2x(vpmovzxdq, kX86InstIdVpmovzxdq, X86YmmVar, X86XmmVar) + + //! Packed WORD to DWORD with zero extend (AVX2). + INST_2x(vpmovzxwd, kX86InstIdVpmovzxwd, X86YmmVar, X86Mem) + //! \overload + INST_2x(vpmovzxwd, kX86InstIdVpmovzxwd, X86YmmVar, X86XmmVar) + + //! Packed WORD to QWORD with zero extend (AVX2). + INST_2x(vpmovzxwq, kX86InstIdVpmovzxwq, X86YmmVar, X86Mem) + //! \overload + INST_2x(vpmovzxwq, kX86InstIdVpmovzxwq, X86YmmVar, X86XmmVar) + + //! Packed multiply and add signed and unsigned bytes (AVX2). + INST_3x(vpmaddubsw, kX86InstIdVpmaddubsw, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpmaddubsw, kX86InstIdVpmaddubsw, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed WORD multiply and add to packed DWORD (AVX2). + INST_3x(vpmaddwd, kX86InstIdVpmaddwd, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpmaddwd, kX86InstIdVpmaddwd, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vpmaskmovd, kX86InstIdVpmaskmovd, X86Mem, X86XmmVar, X86XmmVar) + INST_3x(vpmaskmovd, kX86InstIdVpmaskmovd, X86Mem, X86YmmVar, X86YmmVar) + INST_3x(vpmaskmovd, kX86InstIdVpmaskmovd, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vpmaskmovd, kX86InstIdVpmaskmovd, X86YmmVar, X86YmmVar, X86Mem) + + INST_3x(vpmaskmovq, kX86InstIdVpmaskmovq, X86Mem, X86XmmVar, X86XmmVar) + INST_3x(vpmaskmovq, kX86InstIdVpmaskmovq, X86Mem, X86YmmVar, X86YmmVar) + INST_3x(vpmaskmovq, kX86InstIdVpmaskmovq, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vpmaskmovq, kX86InstIdVpmaskmovq, X86YmmVar, X86YmmVar, X86Mem) + + //! Packed BYTE maximum (AVX2). + INST_3x(vpmaxsb, kX86InstIdVpmaxsb, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpmaxsb, kX86InstIdVpmaxsb, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed DWORD maximum (AVX2). + INST_3x(vpmaxsd, kX86InstIdVpmaxsd, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpmaxsd, kX86InstIdVpmaxsd, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed WORD maximum (AVX2). + INST_3x(vpmaxsw, kX86InstIdVpmaxsw, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpmaxsw, kX86InstIdVpmaxsw, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed BYTE unsigned maximum (AVX2). + INST_3x(vpmaxub, kX86InstIdVpmaxub, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpmaxub, kX86InstIdVpmaxub, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed DWORD unsigned maximum (AVX2). + INST_3x(vpmaxud, kX86InstIdVpmaxud, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpmaxud, kX86InstIdVpmaxud, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed WORD unsigned maximum (AVX2). + INST_3x(vpmaxuw, kX86InstIdVpmaxuw, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpmaxuw, kX86InstIdVpmaxuw, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed BYTE minimum (AVX2). + INST_3x(vpminsb, kX86InstIdVpminsb, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpminsb, kX86InstIdVpminsb, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed DWORD minimum (AVX2). + INST_3x(vpminsd, kX86InstIdVpminsd, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpminsd, kX86InstIdVpminsd, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed WORD minimum (AVX2). + INST_3x(vpminsw, kX86InstIdVpminsw, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpminsw, kX86InstIdVpminsw, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed BYTE unsigned minimum (AVX2). + INST_3x(vpminub, kX86InstIdVpminub, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpminub, kX86InstIdVpminub, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed DWORD unsigned minimum (AVX2). + INST_3x(vpminud, kX86InstIdVpminud, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpminud, kX86InstIdVpminud, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed WORD unsigned minimum (AVX2). + INST_3x(vpminuw, kX86InstIdVpminuw, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpminuw, kX86InstIdVpminuw, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed DWORD to QWORD multiply (AVX2). + INST_3x(vpmuldq, kX86InstIdVpmuldq, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpmuldq, kX86InstIdVpmuldq, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed WORD multiply high, round and scale (AVX2). + INST_3x(vpmulhrsw, kX86InstIdVpmulhrsw, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpmulhrsw, kX86InstIdVpmulhrsw, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed WORD unsigned multiply high (AVX2). + INST_3x(vpmulhuw, kX86InstIdVpmulhuw, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpmulhuw, kX86InstIdVpmulhuw, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed WORD multiply high (AVX2). + INST_3x(vpmulhw, kX86InstIdVpmulhw, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpmulhw, kX86InstIdVpmulhw, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed DWORD multiply low (AVX2). + INST_3x(vpmulld, kX86InstIdVpmulld, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpmulld, kX86InstIdVpmulld, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed WORDs multiply low (AVX2). + INST_3x(vpmullw, kX86InstIdVpmullw, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpmullw, kX86InstIdVpmullw, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed DWORD multiply to QWORD (AVX2). + INST_3x(vpmuludq, kX86InstIdVpmuludq, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpmuludq, kX86InstIdVpmuludq, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed bitwise or (AVX2). + INST_3x(vpor, kX86InstIdVpor, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpor, kX86InstIdVpor, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed WORD sum of absolute differences (AVX2). + INST_3x(vpsadbw, kX86InstIdVpsadbw, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpsadbw, kX86InstIdVpsadbw, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed BYTE shuffle (AVX2). + INST_3x(vpshufb, kX86InstIdVpshufb, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpshufb, kX86InstIdVpshufb, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed DWORD shuffle (AVX2). + INST_3i(vpshufd, kX86InstIdVpshufd, X86YmmVar, X86Mem, Imm) + //! \overload + INST_3i(vpshufd, kX86InstIdVpshufd, X86YmmVar, X86YmmVar, Imm) + + //! Packed WORD shuffle high (AVX2). + INST_3i(vpshufhw, kX86InstIdVpshufhw, X86YmmVar, X86Mem, Imm) + //! \overload + INST_3i(vpshufhw, kX86InstIdVpshufhw, X86YmmVar, X86YmmVar, Imm) + + //! Packed WORD shuffle low (AVX2). + INST_3i(vpshuflw, kX86InstIdVpshuflw, X86YmmVar, X86Mem, Imm) + //! \overload + INST_3i(vpshuflw, kX86InstIdVpshuflw, X86YmmVar, X86YmmVar, Imm) + + //! Packed BYTE sign (AVX2). + INST_3x(vpsignb, kX86InstIdVpsignb, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpsignb, kX86InstIdVpsignb, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed DWORD sign (AVX2). + INST_3x(vpsignd, kX86InstIdVpsignd, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpsignd, kX86InstIdVpsignd, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed WORD sign (AVX2). + INST_3x(vpsignw, kX86InstIdVpsignw, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpsignw, kX86InstIdVpsignw, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed DWORD shift left logical (AVX2). + INST_3x(vpslld, kX86InstIdVpslld, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpslld, kX86InstIdVpslld, X86YmmVar, X86YmmVar, X86XmmVar) + //! \overload + INST_3i(vpslld, kX86InstIdVpslld, X86YmmVar, X86YmmVar, Imm) + + //! Packed DQWORD shift left logical (AVX2). + INST_3i(vpslldq, kX86InstIdVpslldq, X86YmmVar, X86YmmVar, Imm) + + //! Packed QWORD shift left logical (AVX2). + INST_3x(vpsllq, kX86InstIdVpsllq, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpsllq, kX86InstIdVpsllq, X86YmmVar, X86YmmVar, X86XmmVar) + //! \overload + INST_3i(vpsllq, kX86InstIdVpsllq, X86YmmVar, X86YmmVar, Imm) + + INST_3x(vpsllvd, kX86InstIdVpsllvd, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vpsllvd, kX86InstIdVpsllvd, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vpsllvd, kX86InstIdVpsllvd, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vpsllvd, kX86InstIdVpsllvd, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vpsllvq, kX86InstIdVpsllvq, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vpsllvq, kX86InstIdVpsllvq, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vpsllvq, kX86InstIdVpsllvq, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vpsllvq, kX86InstIdVpsllvq, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed WORD shift left logical (AVX2). + INST_3x(vpsllw, kX86InstIdVpsllw, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpsllw, kX86InstIdVpsllw, X86YmmVar, X86YmmVar, X86XmmVar) + //! Packed WORD shift left logical (AVX2). + INST_3i(vpsllw, kX86InstIdVpsllw, X86YmmVar, X86YmmVar, Imm) + + //! Packed DWORD shift right arithmetic (AVX2). + INST_3x(vpsrad, kX86InstIdVpsrad, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpsrad, kX86InstIdVpsrad, X86YmmVar, X86YmmVar, X86XmmVar) + //! \overload + INST_3i(vpsrad, kX86InstIdVpsrad, X86YmmVar, X86YmmVar, Imm) + + INST_3x(vpsravd, kX86InstIdVpsravd, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vpsravd, kX86InstIdVpsravd, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vpsravd, kX86InstIdVpsravd, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vpsravd, kX86InstIdVpsravd, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed WORD shift right arithmetic (AVX2). + INST_3x(vpsraw, kX86InstIdVpsraw, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpsraw, kX86InstIdVpsraw, X86YmmVar, X86YmmVar, X86XmmVar) + //! \overload + INST_3i(vpsraw, kX86InstIdVpsraw, X86YmmVar, X86YmmVar, Imm) + + //! Packed DWORD shift right logical (AVX2). + INST_3x(vpsrld, kX86InstIdVpsrld, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpsrld, kX86InstIdVpsrld, X86YmmVar, X86YmmVar, X86XmmVar) + //! \overload + INST_3i(vpsrld, kX86InstIdVpsrld, X86YmmVar, X86YmmVar, Imm) + + //! Scalar DQWORD shift right logical (AVX2). + INST_3i(vpsrldq, kX86InstIdVpsrldq, X86YmmVar, X86YmmVar, Imm) + + //! Packed QWORD shift right logical (AVX2). + INST_3x(vpsrlq, kX86InstIdVpsrlq, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpsrlq, kX86InstIdVpsrlq, X86YmmVar, X86YmmVar, X86XmmVar) + //! \overload + INST_3i(vpsrlq, kX86InstIdVpsrlq, X86YmmVar, X86YmmVar, Imm) + + INST_3x(vpsrlvd, kX86InstIdVpsrlvd, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vpsrlvd, kX86InstIdVpsrlvd, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vpsrlvd, kX86InstIdVpsrlvd, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vpsrlvd, kX86InstIdVpsrlvd, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vpsrlvq, kX86InstIdVpsrlvq, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vpsrlvq, kX86InstIdVpsrlvq, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vpsrlvq, kX86InstIdVpsrlvq, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vpsrlvq, kX86InstIdVpsrlvq, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed WORD shift right logical (AVX2). + INST_3x(vpsrlw, kX86InstIdVpsrlw, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpsrlw, kX86InstIdVpsrlw, X86YmmVar, X86YmmVar, X86XmmVar) + //! \overload + INST_3i(vpsrlw, kX86InstIdVpsrlw, X86YmmVar, X86YmmVar, Imm) + + //! Packed BYTE subtract (AVX2). + INST_3x(vpsubb, kX86InstIdVpsubb, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vpsubb, kX86InstIdVpsubb, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed DWORD subtract (AVX2). + INST_3x(vpsubd, kX86InstIdVpsubd, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpsubd, kX86InstIdVpsubd, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed QWORD subtract (AVX2). + INST_3x(vpsubq, kX86InstIdVpsubq, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpsubq, kX86InstIdVpsubq, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed BYTE subtract with saturation (AVX2). + INST_3x(vpsubsb, kX86InstIdVpsubsb, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpsubsb, kX86InstIdVpsubsb, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed WORD subtract with saturation (AVX2). + INST_3x(vpsubsw, kX86InstIdVpsubsw, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpsubsw, kX86InstIdVpsubsw, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed BYTE subtract with unsigned saturation (AVX2). + INST_3x(vpsubusb, kX86InstIdVpsubusb, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpsubusb, kX86InstIdVpsubusb, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed WORD subtract with unsigned saturation (AVX2). + INST_3x(vpsubusw, kX86InstIdVpsubusw, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpsubusw, kX86InstIdVpsubusw, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed WORD subtract (AVX2). + INST_3x(vpsubw, kX86InstIdVpsubw, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpsubw, kX86InstIdVpsubw, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Unpack high packed BYTEs to WORDs (AVX2). + INST_3x(vpunpckhbw, kX86InstIdVpunpckhbw, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpunpckhbw, kX86InstIdVpunpckhbw, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Unpack high packed DWORDs to QWORDs (AVX2). + INST_3x(vpunpckhdq, kX86InstIdVpunpckhdq, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpunpckhdq, kX86InstIdVpunpckhdq, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Unpack high packed QWORDs to DQWORD (AVX2). + INST_3x(vpunpckhqdq, kX86InstIdVpunpckhqdq, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpunpckhqdq, kX86InstIdVpunpckhqdq, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Unpack high packed WORDs to DWORDs (AVX2). + INST_3x(vpunpckhwd, kX86InstIdVpunpckhwd, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpunpckhwd, kX86InstIdVpunpckhwd, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Unpack low packed BYTEs to WORDs (AVX2). + INST_3x(vpunpcklbw, kX86InstIdVpunpcklbw, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpunpcklbw, kX86InstIdVpunpcklbw, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Unpack low packed DWORDs to QWORDs (AVX2). + INST_3x(vpunpckldq, kX86InstIdVpunpckldq, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpunpckldq, kX86InstIdVpunpckldq, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Unpack low packed QWORDs to DQWORD (AVX2). + INST_3x(vpunpcklqdq, kX86InstIdVpunpcklqdq, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpunpcklqdq, kX86InstIdVpunpcklqdq, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Unpack low packed WORDs to DWORDs (AVX2). + INST_3x(vpunpcklwd, kX86InstIdVpunpcklwd, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpunpcklwd, kX86InstIdVpunpcklwd, X86YmmVar, X86YmmVar, X86YmmVar) + + //! Packed bitwise xor (AVX2). + INST_3x(vpxor, kX86InstIdVpxor, X86YmmVar, X86YmmVar, X86Mem) + //! \overload + INST_3x(vpxor, kX86InstIdVpxor, X86YmmVar, X86YmmVar, X86YmmVar) + + // -------------------------------------------------------------------------- + // [FMA3] + // -------------------------------------------------------------------------- + + INST_3x(vfmadd132pd, kX86InstIdVfmadd132pd, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmadd132pd, kX86InstIdVfmadd132pd, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfmadd132pd, kX86InstIdVfmadd132pd, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfmadd132pd, kX86InstIdVfmadd132pd, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfmadd132ps, kX86InstIdVfmadd132ps, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmadd132ps, kX86InstIdVfmadd132ps, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfmadd132ps, kX86InstIdVfmadd132ps, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfmadd132ps, kX86InstIdVfmadd132ps, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfmadd132sd, kX86InstIdVfmadd132sd, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmadd132sd, kX86InstIdVfmadd132sd, X86XmmVar, X86XmmVar, X86XmmVar) + + INST_3x(vfmadd132ss, kX86InstIdVfmadd132ss, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmadd132ss, kX86InstIdVfmadd132ss, X86XmmVar, X86XmmVar, X86XmmVar) + + INST_3x(vfmadd213pd, kX86InstIdVfmadd213pd, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmadd213pd, kX86InstIdVfmadd213pd, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfmadd213pd, kX86InstIdVfmadd213pd, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfmadd213pd, kX86InstIdVfmadd213pd, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfmadd213ps, kX86InstIdVfmadd213ps, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmadd213ps, kX86InstIdVfmadd213ps, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfmadd213ps, kX86InstIdVfmadd213ps, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfmadd213ps, kX86InstIdVfmadd213ps, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfmadd213sd, kX86InstIdVfmadd213sd, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmadd213sd, kX86InstIdVfmadd213sd, X86XmmVar, X86XmmVar, X86XmmVar) + + INST_3x(vfmadd213ss, kX86InstIdVfmadd213ss, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmadd213ss, kX86InstIdVfmadd213ss, X86XmmVar, X86XmmVar, X86XmmVar) + + INST_3x(vfmadd231pd, kX86InstIdVfmadd231pd, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmadd231pd, kX86InstIdVfmadd231pd, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfmadd231pd, kX86InstIdVfmadd231pd, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfmadd231pd, kX86InstIdVfmadd231pd, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfmadd231ps, kX86InstIdVfmadd231ps, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmadd231ps, kX86InstIdVfmadd231ps, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfmadd231ps, kX86InstIdVfmadd231ps, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfmadd231ps, kX86InstIdVfmadd231ps, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfmadd231sd, kX86InstIdVfmadd231sd, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmadd231sd, kX86InstIdVfmadd231sd, X86XmmVar, X86XmmVar, X86XmmVar) + + INST_3x(vfmadd231ss, kX86InstIdVfmadd231ss, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmadd231ss, kX86InstIdVfmadd231ss, X86XmmVar, X86XmmVar, X86XmmVar) + + INST_3x(vfmaddsub132pd, kX86InstIdVfmaddsub132pd, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmaddsub132pd, kX86InstIdVfmaddsub132pd, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfmaddsub132pd, kX86InstIdVfmaddsub132pd, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfmaddsub132pd, kX86InstIdVfmaddsub132pd, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfmaddsub132ps, kX86InstIdVfmaddsub132ps, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmaddsub132ps, kX86InstIdVfmaddsub132ps, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfmaddsub132ps, kX86InstIdVfmaddsub132ps, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfmaddsub132ps, kX86InstIdVfmaddsub132ps, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfmaddsub213pd, kX86InstIdVfmaddsub213pd, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmaddsub213pd, kX86InstIdVfmaddsub213pd, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfmaddsub213pd, kX86InstIdVfmaddsub213pd, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfmaddsub213pd, kX86InstIdVfmaddsub213pd, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfmaddsub213ps, kX86InstIdVfmaddsub213ps, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmaddsub213ps, kX86InstIdVfmaddsub213ps, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfmaddsub213ps, kX86InstIdVfmaddsub213ps, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfmaddsub213ps, kX86InstIdVfmaddsub213ps, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfmaddsub231pd, kX86InstIdVfmaddsub231pd, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmaddsub231pd, kX86InstIdVfmaddsub231pd, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfmaddsub231pd, kX86InstIdVfmaddsub231pd, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfmaddsub231pd, kX86InstIdVfmaddsub231pd, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfmaddsub231ps, kX86InstIdVfmaddsub231ps, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmaddsub231ps, kX86InstIdVfmaddsub231ps, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfmaddsub231ps, kX86InstIdVfmaddsub231ps, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfmaddsub231ps, kX86InstIdVfmaddsub231ps, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfmsub132pd, kX86InstIdVfmsub132pd, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmsub132pd, kX86InstIdVfmsub132pd, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfmsub132pd, kX86InstIdVfmsub132pd, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfmsub132pd, kX86InstIdVfmsub132pd, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfmsub132ps, kX86InstIdVfmsub132ps, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmsub132ps, kX86InstIdVfmsub132ps, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfmsub132ps, kX86InstIdVfmsub132ps, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfmsub132ps, kX86InstIdVfmsub132ps, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfmsub132sd, kX86InstIdVfmsub132sd, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmsub132sd, kX86InstIdVfmsub132sd, X86XmmVar, X86XmmVar, X86XmmVar) + + INST_3x(vfmsub132ss, kX86InstIdVfmsub132ss, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmsub132ss, kX86InstIdVfmsub132ss, X86XmmVar, X86XmmVar, X86XmmVar) + + INST_3x(vfmsub213pd, kX86InstIdVfmsub213pd, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmsub213pd, kX86InstIdVfmsub213pd, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfmsub213pd, kX86InstIdVfmsub213pd, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfmsub213pd, kX86InstIdVfmsub213pd, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfmsub213ps, kX86InstIdVfmsub213ps, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmsub213ps, kX86InstIdVfmsub213ps, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfmsub213ps, kX86InstIdVfmsub213ps, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfmsub213ps, kX86InstIdVfmsub213ps, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfmsub213sd, kX86InstIdVfmsub213sd, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmsub213sd, kX86InstIdVfmsub213sd, X86XmmVar, X86XmmVar, X86XmmVar) + + INST_3x(vfmsub213ss, kX86InstIdVfmsub213ss, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmsub213ss, kX86InstIdVfmsub213ss, X86XmmVar, X86XmmVar, X86XmmVar) + + INST_3x(vfmsub231pd, kX86InstIdVfmsub231pd, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmsub231pd, kX86InstIdVfmsub231pd, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfmsub231pd, kX86InstIdVfmsub231pd, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfmsub231pd, kX86InstIdVfmsub231pd, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfmsub231ps, kX86InstIdVfmsub231ps, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmsub231ps, kX86InstIdVfmsub231ps, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfmsub231ps, kX86InstIdVfmsub231ps, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfmsub231ps, kX86InstIdVfmsub231ps, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfmsub231sd, kX86InstIdVfmsub231sd, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmsub231sd, kX86InstIdVfmsub231sd, X86XmmVar, X86XmmVar, X86XmmVar) + + INST_3x(vfmsub231ss, kX86InstIdVfmsub231ss, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmsub231ss, kX86InstIdVfmsub231ss, X86XmmVar, X86XmmVar, X86XmmVar) + + INST_3x(vfmsubadd132pd, kX86InstIdVfmsubadd132pd, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmsubadd132pd, kX86InstIdVfmsubadd132pd, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfmsubadd132pd, kX86InstIdVfmsubadd132pd, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfmsubadd132pd, kX86InstIdVfmsubadd132pd, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfmsubadd132ps, kX86InstIdVfmsubadd132ps, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmsubadd132ps, kX86InstIdVfmsubadd132ps, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfmsubadd132ps, kX86InstIdVfmsubadd132ps, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfmsubadd132ps, kX86InstIdVfmsubadd132ps, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfmsubadd213pd, kX86InstIdVfmsubadd213pd, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmsubadd213pd, kX86InstIdVfmsubadd213pd, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfmsubadd213pd, kX86InstIdVfmsubadd213pd, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfmsubadd213pd, kX86InstIdVfmsubadd213pd, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfmsubadd213ps, kX86InstIdVfmsubadd213ps, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmsubadd213ps, kX86InstIdVfmsubadd213ps, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfmsubadd213ps, kX86InstIdVfmsubadd213ps, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfmsubadd213ps, kX86InstIdVfmsubadd213ps, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfmsubadd231pd, kX86InstIdVfmsubadd231pd, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmsubadd231pd, kX86InstIdVfmsubadd231pd, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfmsubadd231pd, kX86InstIdVfmsubadd231pd, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfmsubadd231pd, kX86InstIdVfmsubadd231pd, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfmsubadd231ps, kX86InstIdVfmsubadd231ps, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfmsubadd231ps, kX86InstIdVfmsubadd231ps, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfmsubadd231ps, kX86InstIdVfmsubadd231ps, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfmsubadd231ps, kX86InstIdVfmsubadd231ps, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfnmadd132pd, kX86InstIdVfnmadd132pd, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfnmadd132pd, kX86InstIdVfnmadd132pd, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfnmadd132pd, kX86InstIdVfnmadd132pd, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfnmadd132pd, kX86InstIdVfnmadd132pd, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfnmadd132ps, kX86InstIdVfnmadd132ps, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfnmadd132ps, kX86InstIdVfnmadd132ps, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfnmadd132ps, kX86InstIdVfnmadd132ps, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfnmadd132ps, kX86InstIdVfnmadd132ps, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfnmadd132sd, kX86InstIdVfnmadd132sd, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfnmadd132sd, kX86InstIdVfnmadd132sd, X86XmmVar, X86XmmVar, X86XmmVar) + + INST_3x(vfnmadd132ss, kX86InstIdVfnmadd132ss, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfnmadd132ss, kX86InstIdVfnmadd132ss, X86XmmVar, X86XmmVar, X86XmmVar) + + INST_3x(vfnmadd213pd, kX86InstIdVfnmadd213pd, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfnmadd213pd, kX86InstIdVfnmadd213pd, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfnmadd213pd, kX86InstIdVfnmadd213pd, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfnmadd213pd, kX86InstIdVfnmadd213pd, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfnmadd213ps, kX86InstIdVfnmadd213ps, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfnmadd213ps, kX86InstIdVfnmadd213ps, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfnmadd213ps, kX86InstIdVfnmadd213ps, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfnmadd213ps, kX86InstIdVfnmadd213ps, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfnmadd213sd, kX86InstIdVfnmadd213sd, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfnmadd213sd, kX86InstIdVfnmadd213sd, X86XmmVar, X86XmmVar, X86XmmVar) + + INST_3x(vfnmadd213ss, kX86InstIdVfnmadd213ss, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfnmadd213ss, kX86InstIdVfnmadd213ss, X86XmmVar, X86XmmVar, X86XmmVar) + + INST_3x(vfnmadd231pd, kX86InstIdVfnmadd231pd, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfnmadd231pd, kX86InstIdVfnmadd231pd, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfnmadd231pd, kX86InstIdVfnmadd231pd, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfnmadd231pd, kX86InstIdVfnmadd231pd, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfnmadd231ps, kX86InstIdVfnmadd231ps, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfnmadd231ps, kX86InstIdVfnmadd231ps, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfnmadd231ps, kX86InstIdVfnmadd231ps, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfnmadd231ps, kX86InstIdVfnmadd231ps, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfnmadd231sd, kX86InstIdVfnmadd231sd, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfnmadd231sd, kX86InstIdVfnmadd231sd, X86XmmVar, X86XmmVar, X86XmmVar) + + INST_3x(vfnmadd231ss, kX86InstIdVfnmadd231ss, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfnmadd231ss, kX86InstIdVfnmadd231ss, X86XmmVar, X86XmmVar, X86XmmVar) + + INST_3x(vfnmsub132pd, kX86InstIdVfnmsub132pd, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfnmsub132pd, kX86InstIdVfnmsub132pd, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfnmsub132pd, kX86InstIdVfnmsub132pd, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfnmsub132pd, kX86InstIdVfnmsub132pd, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfnmsub132ps, kX86InstIdVfnmsub132ps, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfnmsub132ps, kX86InstIdVfnmsub132ps, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfnmsub132ps, kX86InstIdVfnmsub132ps, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfnmsub132ps, kX86InstIdVfnmsub132ps, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfnmsub132sd, kX86InstIdVfnmsub132sd, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfnmsub132sd, kX86InstIdVfnmsub132sd, X86XmmVar, X86XmmVar, X86XmmVar) + + INST_3x(vfnmsub132ss, kX86InstIdVfnmsub132ss, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfnmsub132ss, kX86InstIdVfnmsub132ss, X86XmmVar, X86XmmVar, X86XmmVar) + + INST_3x(vfnmsub213pd, kX86InstIdVfnmsub213pd, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfnmsub213pd, kX86InstIdVfnmsub213pd, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfnmsub213pd, kX86InstIdVfnmsub213pd, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfnmsub213pd, kX86InstIdVfnmsub213pd, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfnmsub213ps, kX86InstIdVfnmsub213ps, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfnmsub213ps, kX86InstIdVfnmsub213ps, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfnmsub213ps, kX86InstIdVfnmsub213ps, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfnmsub213ps, kX86InstIdVfnmsub213ps, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfnmsub213sd, kX86InstIdVfnmsub213sd, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfnmsub213sd, kX86InstIdVfnmsub213sd, X86XmmVar, X86XmmVar, X86XmmVar) + + INST_3x(vfnmsub213ss, kX86InstIdVfnmsub213ss, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfnmsub213ss, kX86InstIdVfnmsub213ss, X86XmmVar, X86XmmVar, X86XmmVar) + + INST_3x(vfnmsub231pd, kX86InstIdVfnmsub231pd, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfnmsub231pd, kX86InstIdVfnmsub231pd, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfnmsub231pd, kX86InstIdVfnmsub231pd, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfnmsub231pd, kX86InstIdVfnmsub231pd, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfnmsub231ps, kX86InstIdVfnmsub231ps, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfnmsub231ps, kX86InstIdVfnmsub231ps, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vfnmsub231ps, kX86InstIdVfnmsub231ps, X86YmmVar, X86YmmVar, X86Mem) + INST_3x(vfnmsub231ps, kX86InstIdVfnmsub231ps, X86YmmVar, X86YmmVar, X86YmmVar) + + INST_3x(vfnmsub231sd, kX86InstIdVfnmsub231sd, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfnmsub231sd, kX86InstIdVfnmsub231sd, X86XmmVar, X86XmmVar, X86XmmVar) + + INST_3x(vfnmsub231ss, kX86InstIdVfnmsub231ss, X86XmmVar, X86XmmVar, X86Mem) + INST_3x(vfnmsub231ss, kX86InstIdVfnmsub231ss, X86XmmVar, X86XmmVar, X86XmmVar) + + // -------------------------------------------------------------------------- + // [FMA4] + // -------------------------------------------------------------------------- + + INST_4x(vfmaddpd, kX86InstIdVfmaddpd, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vfmaddpd, kX86InstIdVfmaddpd, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + INST_4x(vfmaddpd, kX86InstIdVfmaddpd, X86XmmVar, X86XmmVar, X86XmmVar, X86Mem) + INST_4x(vfmaddpd, kX86InstIdVfmaddpd, X86YmmVar, X86YmmVar, X86YmmVar, X86YmmVar) + INST_4x(vfmaddpd, kX86InstIdVfmaddpd, X86YmmVar, X86YmmVar, X86Mem, X86YmmVar) + INST_4x(vfmaddpd, kX86InstIdVfmaddpd, X86YmmVar, X86YmmVar, X86YmmVar, X86Mem) + + INST_4x(vfmaddps, kX86InstIdVfmaddps, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vfmaddps, kX86InstIdVfmaddps, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + INST_4x(vfmaddps, kX86InstIdVfmaddps, X86XmmVar, X86XmmVar, X86XmmVar, X86Mem) + INST_4x(vfmaddps, kX86InstIdVfmaddps, X86YmmVar, X86YmmVar, X86YmmVar, X86YmmVar) + INST_4x(vfmaddps, kX86InstIdVfmaddps, X86YmmVar, X86YmmVar, X86Mem, X86YmmVar) + INST_4x(vfmaddps, kX86InstIdVfmaddps, X86YmmVar, X86YmmVar, X86YmmVar, X86Mem) + + INST_4x(vfmaddsd, kX86InstIdVfmaddsd, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vfmaddsd, kX86InstIdVfmaddsd, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + INST_4x(vfmaddsd, kX86InstIdVfmaddsd, X86XmmVar, X86XmmVar, X86XmmVar, X86Mem) + + INST_4x(vfmaddss, kX86InstIdVfmaddss, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vfmaddss, kX86InstIdVfmaddss, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + INST_4x(vfmaddss, kX86InstIdVfmaddss, X86XmmVar, X86XmmVar, X86XmmVar, X86Mem) + + INST_4x(vfmaddsubpd, kX86InstIdVfmaddsubpd, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vfmaddsubpd, kX86InstIdVfmaddsubpd, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + INST_4x(vfmaddsubpd, kX86InstIdVfmaddsubpd, X86XmmVar, X86XmmVar, X86XmmVar, X86Mem) + INST_4x(vfmaddsubpd, kX86InstIdVfmaddsubpd, X86YmmVar, X86YmmVar, X86YmmVar, X86YmmVar) + INST_4x(vfmaddsubpd, kX86InstIdVfmaddsubpd, X86YmmVar, X86YmmVar, X86Mem, X86YmmVar) + INST_4x(vfmaddsubpd, kX86InstIdVfmaddsubpd, X86YmmVar, X86YmmVar, X86YmmVar, X86Mem) + + INST_4x(vfmaddsubps, kX86InstIdVfmaddsubps, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vfmaddsubps, kX86InstIdVfmaddsubps, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + INST_4x(vfmaddsubps, kX86InstIdVfmaddsubps, X86XmmVar, X86XmmVar, X86XmmVar, X86Mem) + INST_4x(vfmaddsubps, kX86InstIdVfmaddsubps, X86YmmVar, X86YmmVar, X86YmmVar, X86YmmVar) + INST_4x(vfmaddsubps, kX86InstIdVfmaddsubps, X86YmmVar, X86YmmVar, X86Mem, X86YmmVar) + INST_4x(vfmaddsubps, kX86InstIdVfmaddsubps, X86YmmVar, X86YmmVar, X86YmmVar, X86Mem) + + INST_4x(vfmsubaddpd, kX86InstIdVfmsubaddpd, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vfmsubaddpd, kX86InstIdVfmsubaddpd, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + INST_4x(vfmsubaddpd, kX86InstIdVfmsubaddpd, X86XmmVar, X86XmmVar, X86XmmVar, X86Mem) + INST_4x(vfmsubaddpd, kX86InstIdVfmsubaddpd, X86YmmVar, X86YmmVar, X86YmmVar, X86YmmVar) + INST_4x(vfmsubaddpd, kX86InstIdVfmsubaddpd, X86YmmVar, X86YmmVar, X86Mem, X86YmmVar) + INST_4x(vfmsubaddpd, kX86InstIdVfmsubaddpd, X86YmmVar, X86YmmVar, X86YmmVar, X86Mem) + + INST_4x(vfmsubaddps, kX86InstIdVfmsubaddps, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vfmsubaddps, kX86InstIdVfmsubaddps, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + INST_4x(vfmsubaddps, kX86InstIdVfmsubaddps, X86XmmVar, X86XmmVar, X86XmmVar, X86Mem) + INST_4x(vfmsubaddps, kX86InstIdVfmsubaddps, X86YmmVar, X86YmmVar, X86YmmVar, X86YmmVar) + INST_4x(vfmsubaddps, kX86InstIdVfmsubaddps, X86YmmVar, X86YmmVar, X86Mem, X86YmmVar) + INST_4x(vfmsubaddps, kX86InstIdVfmsubaddps, X86YmmVar, X86YmmVar, X86YmmVar, X86Mem) + + INST_4x(vfmsubpd, kX86InstIdVfmsubpd, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vfmsubpd, kX86InstIdVfmsubpd, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + INST_4x(vfmsubpd, kX86InstIdVfmsubpd, X86XmmVar, X86XmmVar, X86XmmVar, X86Mem) + INST_4x(vfmsubpd, kX86InstIdVfmsubpd, X86YmmVar, X86YmmVar, X86YmmVar, X86YmmVar) + INST_4x(vfmsubpd, kX86InstIdVfmsubpd, X86YmmVar, X86YmmVar, X86Mem, X86YmmVar) + INST_4x(vfmsubpd, kX86InstIdVfmsubpd, X86YmmVar, X86YmmVar, X86YmmVar, X86Mem) + + INST_4x(vfmsubps, kX86InstIdVfmsubps, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vfmsubps, kX86InstIdVfmsubps, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + INST_4x(vfmsubps, kX86InstIdVfmsubps, X86XmmVar, X86XmmVar, X86XmmVar, X86Mem) + INST_4x(vfmsubps, kX86InstIdVfmsubps, X86YmmVar, X86YmmVar, X86YmmVar, X86YmmVar) + INST_4x(vfmsubps, kX86InstIdVfmsubps, X86YmmVar, X86YmmVar, X86Mem, X86YmmVar) + INST_4x(vfmsubps, kX86InstIdVfmsubps, X86YmmVar, X86YmmVar, X86YmmVar, X86Mem) + + INST_4x(vfmsubsd, kX86InstIdVfmsubsd, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vfmsubsd, kX86InstIdVfmsubsd, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + INST_4x(vfmsubsd, kX86InstIdVfmsubsd, X86XmmVar, X86XmmVar, X86XmmVar, X86Mem) + + INST_4x(vfmsubss, kX86InstIdVfmsubss, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vfmsubss, kX86InstIdVfmsubss, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + INST_4x(vfmsubss, kX86InstIdVfmsubss, X86XmmVar, X86XmmVar, X86XmmVar, X86Mem) + + INST_4x(vfnmaddpd, kX86InstIdVfnmaddpd, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vfnmaddpd, kX86InstIdVfnmaddpd, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + INST_4x(vfnmaddpd, kX86InstIdVfnmaddpd, X86XmmVar, X86XmmVar, X86XmmVar, X86Mem) + INST_4x(vfnmaddpd, kX86InstIdVfnmaddpd, X86YmmVar, X86YmmVar, X86YmmVar, X86YmmVar) + INST_4x(vfnmaddpd, kX86InstIdVfnmaddpd, X86YmmVar, X86YmmVar, X86Mem, X86YmmVar) + INST_4x(vfnmaddpd, kX86InstIdVfnmaddpd, X86YmmVar, X86YmmVar, X86YmmVar, X86Mem) + + INST_4x(vfnmaddps, kX86InstIdVfnmaddps, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vfnmaddps, kX86InstIdVfnmaddps, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + INST_4x(vfnmaddps, kX86InstIdVfnmaddps, X86XmmVar, X86XmmVar, X86XmmVar, X86Mem) + INST_4x(vfnmaddps, kX86InstIdVfnmaddps, X86YmmVar, X86YmmVar, X86YmmVar, X86YmmVar) + INST_4x(vfnmaddps, kX86InstIdVfnmaddps, X86YmmVar, X86YmmVar, X86Mem, X86YmmVar) + INST_4x(vfnmaddps, kX86InstIdVfnmaddps, X86YmmVar, X86YmmVar, X86YmmVar, X86Mem) + + INST_4x(vfnmaddsd, kX86InstIdVfnmaddsd, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vfnmaddsd, kX86InstIdVfnmaddsd, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + INST_4x(vfnmaddsd, kX86InstIdVfnmaddsd, X86XmmVar, X86XmmVar, X86XmmVar, X86Mem) + + INST_4x(vfnmaddss, kX86InstIdVfnmaddss, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vfnmaddss, kX86InstIdVfnmaddss, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + INST_4x(vfnmaddss, kX86InstIdVfnmaddss, X86XmmVar, X86XmmVar, X86XmmVar, X86Mem) + + INST_4x(vfnmsubpd, kX86InstIdVfnmsubpd, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vfnmsubpd, kX86InstIdVfnmsubpd, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + INST_4x(vfnmsubpd, kX86InstIdVfnmsubpd, X86XmmVar, X86XmmVar, X86XmmVar, X86Mem) + INST_4x(vfnmsubpd, kX86InstIdVfnmsubpd, X86YmmVar, X86YmmVar, X86YmmVar, X86YmmVar) + INST_4x(vfnmsubpd, kX86InstIdVfnmsubpd, X86YmmVar, X86YmmVar, X86Mem, X86YmmVar) + INST_4x(vfnmsubpd, kX86InstIdVfnmsubpd, X86YmmVar, X86YmmVar, X86YmmVar, X86Mem) + + INST_4x(vfnmsubps, kX86InstIdVfnmsubps, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vfnmsubps, kX86InstIdVfnmsubps, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + INST_4x(vfnmsubps, kX86InstIdVfnmsubps, X86XmmVar, X86XmmVar, X86XmmVar, X86Mem) + INST_4x(vfnmsubps, kX86InstIdVfnmsubps, X86YmmVar, X86YmmVar, X86YmmVar, X86YmmVar) + INST_4x(vfnmsubps, kX86InstIdVfnmsubps, X86YmmVar, X86YmmVar, X86Mem, X86YmmVar) + INST_4x(vfnmsubps, kX86InstIdVfnmsubps, X86YmmVar, X86YmmVar, X86YmmVar, X86Mem) + + INST_4x(vfnmsubsd, kX86InstIdVfnmsubsd, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vfnmsubsd, kX86InstIdVfnmsubsd, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + INST_4x(vfnmsubsd, kX86InstIdVfnmsubsd, X86XmmVar, X86XmmVar, X86XmmVar, X86Mem) + + INST_4x(vfnmsubss, kX86InstIdVfnmsubss, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vfnmsubss, kX86InstIdVfnmsubss, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + INST_4x(vfnmsubss, kX86InstIdVfnmsubss, X86XmmVar, X86XmmVar, X86XmmVar, X86Mem) + + // -------------------------------------------------------------------------- + // [XOP] + // -------------------------------------------------------------------------- + + INST_2x(vfrczpd, kX86InstIdVfrczpd, X86XmmVar, X86XmmVar) + INST_2x(vfrczpd, kX86InstIdVfrczpd, X86XmmVar, X86Mem) + INST_2x(vfrczpd, kX86InstIdVfrczpd, X86YmmVar, X86YmmVar) + INST_2x(vfrczpd, kX86InstIdVfrczpd, X86YmmVar, X86Mem) + + INST_2x(vfrczps, kX86InstIdVfrczps, X86XmmVar, X86XmmVar) + INST_2x(vfrczps, kX86InstIdVfrczps, X86XmmVar, X86Mem) + INST_2x(vfrczps, kX86InstIdVfrczps, X86YmmVar, X86YmmVar) + INST_2x(vfrczps, kX86InstIdVfrczps, X86YmmVar, X86Mem) + + INST_2x(vfrczsd, kX86InstIdVfrczsd, X86XmmVar, X86XmmVar) + INST_2x(vfrczsd, kX86InstIdVfrczsd, X86XmmVar, X86Mem) + + INST_2x(vfrczss, kX86InstIdVfrczss, X86XmmVar, X86XmmVar) + INST_2x(vfrczss, kX86InstIdVfrczss, X86XmmVar, X86Mem) + + INST_4x(vpcmov, kX86InstIdVpcmov, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vpcmov, kX86InstIdVpcmov, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + INST_4x(vpcmov, kX86InstIdVpcmov, X86XmmVar, X86XmmVar, X86XmmVar, X86Mem) + INST_4x(vpcmov, kX86InstIdVpcmov, X86YmmVar, X86YmmVar, X86YmmVar, X86YmmVar) + INST_4x(vpcmov, kX86InstIdVpcmov, X86YmmVar, X86YmmVar, X86Mem, X86YmmVar) + INST_4x(vpcmov, kX86InstIdVpcmov, X86YmmVar, X86YmmVar, X86YmmVar, X86Mem) + + INST_4i(vpcomb, kX86InstIdVpcomb, X86XmmVar, X86XmmVar, X86XmmVar, Imm) + INST_4i(vpcomb, kX86InstIdVpcomb, X86XmmVar, X86XmmVar, X86Mem, Imm) + INST_4i(vpcomd, kX86InstIdVpcomd, X86XmmVar, X86XmmVar, X86XmmVar, Imm) + INST_4i(vpcomd, kX86InstIdVpcomd, X86XmmVar, X86XmmVar, X86Mem, Imm) + INST_4i(vpcomq, kX86InstIdVpcomq, X86XmmVar, X86XmmVar, X86XmmVar, Imm) + INST_4i(vpcomq, kX86InstIdVpcomq, X86XmmVar, X86XmmVar, X86Mem, Imm) + INST_4i(vpcomw, kX86InstIdVpcomw, X86XmmVar, X86XmmVar, X86XmmVar, Imm) + INST_4i(vpcomw, kX86InstIdVpcomw, X86XmmVar, X86XmmVar, X86Mem, Imm) + + INST_4i(vpcomub, kX86InstIdVpcomub, X86XmmVar, X86XmmVar, X86XmmVar, Imm) + INST_4i(vpcomub, kX86InstIdVpcomub, X86XmmVar, X86XmmVar, X86Mem, Imm) + INST_4i(vpcomud, kX86InstIdVpcomud, X86XmmVar, X86XmmVar, X86XmmVar, Imm) + INST_4i(vpcomud, kX86InstIdVpcomud, X86XmmVar, X86XmmVar, X86Mem, Imm) + INST_4i(vpcomuq, kX86InstIdVpcomuq, X86XmmVar, X86XmmVar, X86XmmVar, Imm) + INST_4i(vpcomuq, kX86InstIdVpcomuq, X86XmmVar, X86XmmVar, X86Mem, Imm) + INST_4i(vpcomuw, kX86InstIdVpcomuw, X86XmmVar, X86XmmVar, X86XmmVar, Imm) + INST_4i(vpcomuw, kX86InstIdVpcomuw, X86XmmVar, X86XmmVar, X86Mem, Imm) + + INST_4x(vpermil2pd, kX86InstIdVpermil2pd, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vpermil2pd, kX86InstIdVpermil2pd, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + INST_4x(vpermil2pd, kX86InstIdVpermil2pd, X86XmmVar, X86XmmVar, X86XmmVar, X86Mem) + INST_4x(vpermil2pd, kX86InstIdVpermil2pd, X86YmmVar, X86YmmVar, X86YmmVar, X86YmmVar) + INST_4x(vpermil2pd, kX86InstIdVpermil2pd, X86YmmVar, X86YmmVar, X86Mem, X86YmmVar) + INST_4x(vpermil2pd, kX86InstIdVpermil2pd, X86YmmVar, X86YmmVar, X86YmmVar, X86Mem) + + INST_4x(vpermil2ps, kX86InstIdVpermil2ps, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vpermil2ps, kX86InstIdVpermil2ps, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + INST_4x(vpermil2ps, kX86InstIdVpermil2ps, X86XmmVar, X86XmmVar, X86XmmVar, X86Mem) + INST_4x(vpermil2ps, kX86InstIdVpermil2ps, X86YmmVar, X86YmmVar, X86YmmVar, X86YmmVar) + INST_4x(vpermil2ps, kX86InstIdVpermil2ps, X86YmmVar, X86YmmVar, X86Mem, X86YmmVar) + INST_4x(vpermil2ps, kX86InstIdVpermil2ps, X86YmmVar, X86YmmVar, X86YmmVar, X86Mem) + + INST_2x(vphaddbd, kX86InstIdVphaddbd, X86XmmVar, X86XmmVar) + INST_2x(vphaddbd, kX86InstIdVphaddbd, X86XmmVar, X86Mem) + INST_2x(vphaddbq, kX86InstIdVphaddbq, X86XmmVar, X86XmmVar) + INST_2x(vphaddbq, kX86InstIdVphaddbq, X86XmmVar, X86Mem) + INST_2x(vphaddbw, kX86InstIdVphaddbw, X86XmmVar, X86XmmVar) + INST_2x(vphaddbw, kX86InstIdVphaddbw, X86XmmVar, X86Mem) + INST_2x(vphadddq, kX86InstIdVphadddq, X86XmmVar, X86XmmVar) + INST_2x(vphadddq, kX86InstIdVphadddq, X86XmmVar, X86Mem) + INST_2x(vphaddwd, kX86InstIdVphaddwd, X86XmmVar, X86XmmVar) + INST_2x(vphaddwd, kX86InstIdVphaddwd, X86XmmVar, X86Mem) + INST_2x(vphaddwq, kX86InstIdVphaddwq, X86XmmVar, X86XmmVar) + INST_2x(vphaddwq, kX86InstIdVphaddwq, X86XmmVar, X86Mem) + + INST_2x(vphaddubd, kX86InstIdVphaddubd, X86XmmVar, X86XmmVar) + INST_2x(vphaddubd, kX86InstIdVphaddubd, X86XmmVar, X86Mem) + INST_2x(vphaddubq, kX86InstIdVphaddubq, X86XmmVar, X86XmmVar) + INST_2x(vphaddubq, kX86InstIdVphaddubq, X86XmmVar, X86Mem) + INST_2x(vphaddubw, kX86InstIdVphaddubw, X86XmmVar, X86XmmVar) + INST_2x(vphaddubw, kX86InstIdVphaddubw, X86XmmVar, X86Mem) + INST_2x(vphaddudq, kX86InstIdVphaddudq, X86XmmVar, X86XmmVar) + INST_2x(vphaddudq, kX86InstIdVphaddudq, X86XmmVar, X86Mem) + INST_2x(vphadduwd, kX86InstIdVphadduwd, X86XmmVar, X86XmmVar) + INST_2x(vphadduwd, kX86InstIdVphadduwd, X86XmmVar, X86Mem) + INST_2x(vphadduwq, kX86InstIdVphadduwq, X86XmmVar, X86XmmVar) + INST_2x(vphadduwq, kX86InstIdVphadduwq, X86XmmVar, X86Mem) + + INST_2x(vphsubbw, kX86InstIdVphsubbw, X86XmmVar, X86XmmVar) + INST_2x(vphsubbw, kX86InstIdVphsubbw, X86XmmVar, X86Mem) + INST_2x(vphsubdq, kX86InstIdVphsubdq, X86XmmVar, X86XmmVar) + INST_2x(vphsubdq, kX86InstIdVphsubdq, X86XmmVar, X86Mem) + INST_2x(vphsubwd, kX86InstIdVphsubwd, X86XmmVar, X86XmmVar) + INST_2x(vphsubwd, kX86InstIdVphsubwd, X86XmmVar, X86Mem) + + INST_4x(vpmacsdd, kX86InstIdVpmacsdd, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vpmacsdd, kX86InstIdVpmacsdd, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + INST_4x(vpmacsdqh, kX86InstIdVpmacsdqh, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vpmacsdqh, kX86InstIdVpmacsdqh, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + INST_4x(vpmacsdql, kX86InstIdVpmacsdql, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vpmacsdql, kX86InstIdVpmacsdql, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + INST_4x(vpmacswd, kX86InstIdVpmacswd, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vpmacswd, kX86InstIdVpmacswd, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + INST_4x(vpmacsww, kX86InstIdVpmacsww, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vpmacsww, kX86InstIdVpmacsww, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + + INST_4x(vpmacssdd, kX86InstIdVpmacssdd, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vpmacssdd, kX86InstIdVpmacssdd, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + INST_4x(vpmacssdqh, kX86InstIdVpmacssdqh, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vpmacssdqh, kX86InstIdVpmacssdqh, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + INST_4x(vpmacssdql, kX86InstIdVpmacssdql, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vpmacssdql, kX86InstIdVpmacssdql, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + INST_4x(vpmacsswd, kX86InstIdVpmacsswd, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vpmacsswd, kX86InstIdVpmacsswd, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + INST_4x(vpmacssww, kX86InstIdVpmacssww, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vpmacssww, kX86InstIdVpmacssww, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + + INST_4x(vpmadcsswd, kX86InstIdVpmadcsswd, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vpmadcsswd, kX86InstIdVpmadcsswd, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + + INST_4x(vpmadcswd, kX86InstIdVpmadcswd, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vpmadcswd, kX86InstIdVpmadcswd, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + + INST_4x(vpperm, kX86InstIdVpperm, X86XmmVar, X86XmmVar, X86XmmVar, X86XmmVar) + INST_4x(vpperm, kX86InstIdVpperm, X86XmmVar, X86XmmVar, X86Mem, X86XmmVar) + INST_4x(vpperm, kX86InstIdVpperm, X86XmmVar, X86XmmVar, X86XmmVar, X86Mem) + + INST_3x(vprotb, kX86InstIdVprotb, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vprotb, kX86InstIdVprotb, X86XmmVar, X86Mem, X86XmmVar) + INST_3x(vprotb, kX86InstIdVprotb, X86XmmVar, X86XmmVar, X86Mem) + INST_3i(vprotb, kX86InstIdVprotb, X86XmmVar, X86XmmVar, Imm) + INST_3i(vprotb, kX86InstIdVprotb, X86XmmVar, X86Mem, Imm) + + INST_3x(vprotd, kX86InstIdVprotd, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vprotd, kX86InstIdVprotd, X86XmmVar, X86Mem, X86XmmVar) + INST_3x(vprotd, kX86InstIdVprotd, X86XmmVar, X86XmmVar, X86Mem) + INST_3i(vprotd, kX86InstIdVprotd, X86XmmVar, X86XmmVar, Imm) + INST_3i(vprotd, kX86InstIdVprotd, X86XmmVar, X86Mem, Imm) + + INST_3x(vprotq, kX86InstIdVprotq, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vprotq, kX86InstIdVprotq, X86XmmVar, X86Mem, X86XmmVar) + INST_3x(vprotq, kX86InstIdVprotq, X86XmmVar, X86XmmVar, X86Mem) + INST_3i(vprotq, kX86InstIdVprotq, X86XmmVar, X86XmmVar, Imm) + INST_3i(vprotq, kX86InstIdVprotq, X86XmmVar, X86Mem, Imm) + + INST_3x(vprotw, kX86InstIdVprotw, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vprotw, kX86InstIdVprotw, X86XmmVar, X86Mem, X86XmmVar) + INST_3x(vprotw, kX86InstIdVprotw, X86XmmVar, X86XmmVar, X86Mem) + INST_3i(vprotw, kX86InstIdVprotw, X86XmmVar, X86XmmVar, Imm) + INST_3i(vprotw, kX86InstIdVprotw, X86XmmVar, X86Mem, Imm) + + INST_3x(vpshab, kX86InstIdVpshab, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vpshab, kX86InstIdVpshab, X86XmmVar, X86Mem, X86XmmVar) + INST_3x(vpshab, kX86InstIdVpshab, X86XmmVar, X86XmmVar, X86Mem) + + INST_3x(vpshad, kX86InstIdVpshad, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vpshad, kX86InstIdVpshad, X86XmmVar, X86Mem, X86XmmVar) + INST_3x(vpshad, kX86InstIdVpshad, X86XmmVar, X86XmmVar, X86Mem) + + INST_3x(vpshaq, kX86InstIdVpshaq, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vpshaq, kX86InstIdVpshaq, X86XmmVar, X86Mem, X86XmmVar) + INST_3x(vpshaq, kX86InstIdVpshaq, X86XmmVar, X86XmmVar, X86Mem) + + INST_3x(vpshaw, kX86InstIdVpshaw, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vpshaw, kX86InstIdVpshaw, X86XmmVar, X86Mem, X86XmmVar) + INST_3x(vpshaw, kX86InstIdVpshaw, X86XmmVar, X86XmmVar, X86Mem) + + INST_3x(vpshlb, kX86InstIdVpshlb, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vpshlb, kX86InstIdVpshlb, X86XmmVar, X86Mem, X86XmmVar) + INST_3x(vpshlb, kX86InstIdVpshlb, X86XmmVar, X86XmmVar, X86Mem) + + INST_3x(vpshld, kX86InstIdVpshld, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vpshld, kX86InstIdVpshld, X86XmmVar, X86Mem, X86XmmVar) + INST_3x(vpshld, kX86InstIdVpshld, X86XmmVar, X86XmmVar, X86Mem) + + INST_3x(vpshlq, kX86InstIdVpshlq, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vpshlq, kX86InstIdVpshlq, X86XmmVar, X86Mem, X86XmmVar) + INST_3x(vpshlq, kX86InstIdVpshlq, X86XmmVar, X86XmmVar, X86Mem) + + INST_3x(vpshlw, kX86InstIdVpshlw, X86XmmVar, X86XmmVar, X86XmmVar) + INST_3x(vpshlw, kX86InstIdVpshlw, X86XmmVar, X86Mem, X86XmmVar) + INST_3x(vpshlw, kX86InstIdVpshlw, X86XmmVar, X86XmmVar, X86Mem) + + // -------------------------------------------------------------------------- + // [F16C] + // -------------------------------------------------------------------------- + + //! Convert packed HP-FP to SP-FP. + INST_2x(vcvtph2ps, kX86InstIdVcvtph2ps, X86XmmVar, X86XmmVar) + //! \overload + INST_2x(vcvtph2ps, kX86InstIdVcvtph2ps, X86XmmVar, X86Mem) + //! \overload + INST_2x(vcvtph2ps, kX86InstIdVcvtph2ps, X86YmmVar, X86XmmVar) + //! \overload + INST_2x(vcvtph2ps, kX86InstIdVcvtph2ps, X86YmmVar, X86Mem) + + //! Convert packed SP-FP to HP-FP. + INST_3i(vcvtps2ph, kX86InstIdVcvtps2ph, X86XmmVar, X86XmmVar, Imm) + //! \overload + INST_3i(vcvtps2ph, kX86InstIdVcvtps2ph, X86Mem, X86XmmVar, Imm) + //! \overload + INST_3i(vcvtps2ph, kX86InstIdVcvtps2ph, X86XmmVar, X86YmmVar, Imm) + //! \overload + INST_3i(vcvtps2ph, kX86InstIdVcvtps2ph, X86Mem, X86YmmVar, Imm) // -------------------------------------------------------------------------- // [Cleanup] diff --git a/src/asmjit/x86/x86compilercontext.cpp b/src/asmjit/x86/x86compilercontext.cpp index 0e9f3de..3d42be5 100644 --- a/src/asmjit/x86/x86compilercontext.cpp +++ b/src/asmjit/x86/x86compilercontext.cpp @@ -143,7 +143,7 @@ static void X86Context_annotateOperand(X86Context* self, static bool X86Context_annotateInstruction(X86Context* self, StringBuilder& sb, uint32_t instId, const Operand* opList, uint32_t opCount) { - sb.appendString(_x86InstInfo[instId].getInstName()); + sb.appendString(X86Util::getInstNameById(instId)); for (uint32_t i = 0; i < opCount; i++) { if (i == 0) sb.appendChar(' '); @@ -409,7 +409,7 @@ static const X86SpecialInst x86SpecialInstScas[] = { { kX86RegIndexCx, kX86RegIndexCx, kVarAttrXReg } }; -static const X86SpecialInst x86SpecialInstShlrd[] = { +static const X86SpecialInst x86SpecialInstShldShrd[] = { { kInvalidReg , kInvalidReg , kVarAttrXReg }, { kInvalidReg , kInvalidReg , kVarAttrRReg }, { kX86RegIndexCx, kInvalidReg , kVarAttrRReg } @@ -421,12 +421,23 @@ static const X86SpecialInst x86SpecialInstStos[] = { { kX86RegIndexCx, kX86RegIndexCx, kVarAttrXReg } }; -static const X86SpecialInst x86SpecialInstBlend[] = { +static const X86SpecialInst x86SpecialInstThirdXMM0[] = { { kInvalidReg , kInvalidReg , kVarAttrWReg }, { kInvalidReg , kInvalidReg , kVarAttrRReg }, { 0 , kInvalidReg , kVarAttrRReg } }; +static const X86SpecialInst x86SpecialInstPcmpistri[] = { + { kInvalidReg , kX86RegIndexCx, kVarAttrWReg }, + { kInvalidReg , kInvalidReg , kVarAttrRReg }, + { kInvalidReg , kInvalidReg , kVarAttrRReg } +}; +static const X86SpecialInst x86SpecialInstPcmpistrm[] = { + { kInvalidReg , 0 , kVarAttrWReg }, + { kInvalidReg , kInvalidReg , kVarAttrRReg }, + { kInvalidReg , kInvalidReg , kVarAttrRReg } +}; + static const X86SpecialInst x86SpecialInstXsaveXrstor[] = { { kInvalidReg , kInvalidReg , 0 }, { kX86RegIndexDx, kInvalidReg , kVarAttrRReg }, @@ -533,6 +544,7 @@ static ASMJIT_INLINE const X86SpecialInst* X86SpecialInst_get(uint32_t instId, c case kX86InstIdMaskmovq: case kX86InstIdMaskmovdqu: + case kX86InstIdVmaskmovdqu: return x86SpecialInstMaskmovqMaskmovdqu; // Not supported. @@ -585,7 +597,7 @@ static ASMJIT_INLINE const X86SpecialInst* X86SpecialInst_get(uint32_t instId, c case kX86InstIdShrd: if (!opList[2].isVar()) return nullptr; - return x86SpecialInstShlrd; + return x86SpecialInstShldShrd; case kX86InstIdRdtsc: case kX86InstIdRdtscp: @@ -618,7 +630,20 @@ static ASMJIT_INLINE const X86SpecialInst* X86SpecialInst_get(uint32_t instId, c case kX86InstIdBlendvpd: case kX86InstIdBlendvps: case kX86InstIdPblendvb: - return x86SpecialInstBlend; + case kX86InstIdSha256rnds2: + return x86SpecialInstThirdXMM0; + + case kX86InstIdPcmpestri: + case kX86InstIdPcmpistri: + case kX86InstIdVpcmpestri: + case kX86InstIdVpcmpistri: + return x86SpecialInstPcmpistri; + + case kX86InstIdPcmpestrm: + case kX86InstIdPcmpistrm: + case kX86InstIdVpcmpestrm: + case kX86InstIdVpcmpistrm: + return x86SpecialInstPcmpistrm; case kX86InstIdXrstor: case kX86InstIdXrstor64: @@ -985,22 +1010,22 @@ void X86Context::emitMoveVarOnStack( switch (dstType) { case kVarTypeInt8: case kVarTypeUInt8: - // Move DWORD (Gp). + // Move DWORD (GP). if (Utils::inInterval(srcType, kVarTypeInt8, kVarTypeUInt64)) goto _MovGpD; - // Move DWORD (Mm). + // Move DWORD (MMX). if (Utils::inInterval(srcType, kX86VarTypeMm, kX86VarTypeMm)) goto _MovMmD; - // Move DWORD (Xmm). + // Move DWORD (XMM). if (Utils::inInterval(srcType, kX86VarTypeXmm, kX86VarTypeXmmPd)) goto _MovXmmD; break; case kVarTypeInt16: case kVarTypeUInt16: - // Extend BYTE->WORD (Gp). + // Extend BYTE->WORD (GP). if (Utils::inInterval(srcType, kVarTypeInt8, kVarTypeUInt8)) { r1.setSize(1); r1.setCode(kX86RegTypeGpbLo, srcIndex); @@ -1009,22 +1034,22 @@ void X86Context::emitMoveVarOnStack( goto _ExtendMovGpD; } - // Move DWORD (Gp). + // Move DWORD (GP). if (Utils::inInterval(srcType, kVarTypeInt16, kVarTypeUInt64)) goto _MovGpD; - // Move DWORD (Mm). + // Move DWORD (MMX). if (Utils::inInterval(srcType, kX86VarTypeMm, kX86VarTypeMm)) goto _MovMmD; - // Move DWORD (Xmm). + // Move DWORD (XMM). if (Utils::inInterval(srcType, kX86VarTypeXmm, kX86VarTypeXmmPd)) goto _MovXmmD; break; case kVarTypeInt32: case kVarTypeUInt32: - // Extend BYTE->DWORD (Gp). + // Extend BYTE->DWORD (GP). if (Utils::inInterval(srcType, kVarTypeInt8, kVarTypeUInt8)) { r1.setSize(1); r1.setCode(kX86RegTypeGpbLo, srcIndex); @@ -1033,7 +1058,7 @@ void X86Context::emitMoveVarOnStack( goto _ExtendMovGpD; } - // Extend WORD->DWORD (Gp). + // Extend WORD->DWORD (GP). if (Utils::inInterval(srcType, kVarTypeInt16, kVarTypeUInt16)) { r1.setSize(2); r1.setCode(kX86RegTypeGpw, srcIndex); @@ -1042,22 +1067,22 @@ void X86Context::emitMoveVarOnStack( goto _ExtendMovGpD; } - // Move DWORD (Gp). + // Move DWORD (GP). if (Utils::inInterval(srcType, kVarTypeInt32, kVarTypeUInt64)) goto _MovGpD; - // Move DWORD (Mm). + // Move DWORD (MMX). if (Utils::inInterval(srcType, kX86VarTypeMm, kX86VarTypeMm)) goto _MovMmD; - // Move DWORD (Xmm). + // Move DWORD (XMM). if (Utils::inInterval(srcType, kX86VarTypeXmm, kX86VarTypeXmmPd)) goto _MovXmmD; break; case kVarTypeInt64: case kVarTypeUInt64: - // Extend BYTE->QWORD (Gp). + // Extend BYTE->QWORD (GP). if (Utils::inInterval(srcType, kVarTypeInt8, kVarTypeUInt8)) { r1.setSize(1); r1.setCode(kX86RegTypeGpbLo, srcIndex); @@ -1066,7 +1091,7 @@ void X86Context::emitMoveVarOnStack( goto _ExtendMovGpXQ; } - // Extend WORD->QWORD (Gp). + // Extend WORD->QWORD (GP). if (Utils::inInterval(srcType, kVarTypeInt16, kVarTypeUInt16)) { r1.setSize(2); r1.setCode(kX86RegTypeGpw, srcIndex); @@ -1075,7 +1100,7 @@ void X86Context::emitMoveVarOnStack( goto _ExtendMovGpXQ; } - // Extend DWORD->QWORD (Gp). + // Extend DWORD->QWORD (GP). if (Utils::inInterval(srcType, kVarTypeInt32, kVarTypeUInt32)) { r1.setSize(4); r1.setCode(kX86RegTypeGpd, srcIndex); @@ -1087,21 +1112,21 @@ void X86Context::emitMoveVarOnStack( goto _ZeroExtendGpDQ; } - // Move QWORD (Gp). + // Move QWORD (GP). if (Utils::inInterval(srcType, kVarTypeInt64, kVarTypeUInt64)) goto _MovGpQ; - // Move QWORD (Mm). + // Move QWORD (MMX). if (Utils::inInterval(srcType, kX86VarTypeMm, kX86VarTypeMm)) goto _MovMmQ; - // Move QWORD (Xmm). + // Move QWORD (XMM). if (Utils::inInterval(srcType, kX86VarTypeXmm, kX86VarTypeXmmPd)) goto _MovXmmQ; break; case kX86VarTypeMm: - // Extend BYTE->QWORD (Gp). + // Extend BYTE->QWORD (GP). if (Utils::inInterval(srcType, kVarTypeInt8, kVarTypeUInt8)) { r1.setSize(1); r1.setCode(kX86RegTypeGpbLo, srcIndex); @@ -1110,7 +1135,7 @@ void X86Context::emitMoveVarOnStack( goto _ExtendMovGpXQ; } - // Extend WORD->QWORD (Gp). + // Extend WORD->QWORD (GP). if (Utils::inInterval(srcType, kVarTypeInt16, kVarTypeUInt16)) { r1.setSize(2); r1.setCode(kX86RegTypeGpw, srcIndex); @@ -1119,19 +1144,19 @@ void X86Context::emitMoveVarOnStack( goto _ExtendMovGpXQ; } - // Extend DWORD->QWORD (Gp). + // Extend DWORD->QWORD (GP). if (Utils::inInterval(srcType, kVarTypeInt32, kVarTypeUInt32)) goto _ExtendMovGpDQ; - // Move QWORD (Gp). + // Move QWORD (GP). if (Utils::inInterval(srcType, kVarTypeInt64, kVarTypeUInt64)) goto _MovGpQ; - // Move QWORD (Mm). + // Move QWORD (MMX). if (Utils::inInterval(srcType, kX86VarTypeMm, kX86VarTypeMm)) goto _MovMmQ; - // Move QWORD (Xmm). + // Move QWORD (XMM). if (Utils::inInterval(srcType, kX86VarTypeXmm, kX86VarTypeXmmPd)) goto _MovXmmQ; break; @@ -1240,7 +1265,7 @@ _MovMmQ: compiler->emit(kX86InstIdMovq, m0, r0); return; - // Move Xmm. + // Move XMM. _MovXmmD: m0.setSize(4); r0.setSize(16); @@ -1385,7 +1410,7 @@ _Move32: case kVarTypeInt64: case kVarTypeUInt64: - // Move to Gpd register will also clear high DWORD of Gpq register in + // Move to GPD register will also clear high DWORD of GPQ register in // 64-bit mode. if (imm.isUInt32()) goto _Move32Truncate; @@ -2161,7 +2186,7 @@ Error X86Context::fetch() { if (!func->hasFuncFlag(kFuncFlagIsNaked)) gaRegs[kX86RegClassGp] &= ~Utils::mask(kX86RegIndexBp); - // Allowed index registers (Gp/Xmm/Ymm). + // Allowed index registers (GP/XMM/YMM). const uint32_t indexMask = Utils::bits(_regCount.getGp()) & ~(Utils::mask(4, 12)); // -------------------------------------------------------------------------- @@ -2446,7 +2471,7 @@ _NextGroup: else { // It's fine if lo-byte register is accessed in 64-bit mode; // however, hi-byte has to be checked and if it's used all - // registers (Gp/Xmm) could be only allocated in the lower eight + // registers (GP/XMM) could be only allocated in the lower eight // half. To do that, we patch 'allocableRegs' of all variables // we collected until now and change the allocable restriction // for variables that come after. @@ -2492,17 +2517,15 @@ _NextGroup: uint32_t combinedFlags; if (i == 0) { - // Read/Write is usualy the combination of the first operand. + // Read/Write is usually the combination of the first operand. combinedFlags = inFlags | outFlags; - // Handle overwrite option. if (node->getOptions() & kInstOptionOverwrite) { + // Manually forcing write-only. combinedFlags = outFlags; } - // Move instructions typically overwrite the first operand, - // but there are some exceptions based on the operands' size - // and type. - else if (extendedInfo.isMove()) { + else if (extendedInfo.isWO()) { + // Write-only instruction. uint32_t movSize = extendedInfo.getWriteSize(); uint32_t varSize = vd->getSize(); @@ -2520,7 +2543,7 @@ _NextGroup: movSize = opSize; // Handle the case that a 32-bit operation in 64-bit mode - // always zeroes the rest of the destination register and + // always clears the rest of the destination register and // the case that move size is actually greater than or // equal to the size of the variable. if (movSize >= 4 || movSize >= varSize) @@ -2533,12 +2556,12 @@ _NextGroup: combinedFlags = outFlags; } } - // Comparison/Test instructions don't modify any operand. - else if (extendedInfo.isTest()) { + else if (extendedInfo.isRO()) { + // Comparison/Test instructions don't modify any operand. combinedFlags = inFlags; } - // Imul. else if (instId == kX86InstIdImul && opCount == 3) { + // Imul. combinedFlags = outFlags; } } @@ -2576,18 +2599,18 @@ _NextGroup: // Default for the first operand. combinedFlags = inFlags | outFlags; - // Move to memory - setting the right flags is important - // as if it's just move to the register. It's just a bit - // simpler as there are no special cases. - if (extendedInfo.isMove()) { + if (extendedInfo.isWO()) { + // Move to memory - setting the right flags is important + // as if it's just move to the register. It's just a bit + // simpler as there are no special cases. uint32_t movSize = Utils::iMax(extendedInfo.getWriteSize(), m->getSize()); uint32_t varSize = vd->getSize(); if (movSize >= varSize) combinedFlags = outFlags; } - // Comparison/Test instructions don't modify any operand. - else if (extendedInfo.isTest()) { + else if (extendedInfo.isRO()) { + // Comparison/Test instructions don't modify any operand. combinedFlags = inFlags; } } @@ -5142,7 +5165,7 @@ static Error X86Context_translatePrologEpilog(X86Context* self, X86FuncNode* fun stackBase = -static_cast(func->getAlignStackSize() + func->getMoveStackSize()); } - // Save Xmm/Mm/Gp (Mov). + // Save XMM/MMX/GP (Mov). stackPtr = stackBase; for (i = 0, mask = regsXmm; mask != 0; i++, mask >>= 1) { if (mask & 0x1) { @@ -5208,7 +5231,7 @@ static Error X86Context_translatePrologEpilog(X86Context* self, X86FuncNode* fun compiler->_setCursor(func->getExitNode()); - // Restore Xmm/Mm/Gp (Mov). + // Restore XMM/MMX/GP (Mov). stackPtr = stackBase; for (i = 0, mask = regsXmm; mask != 0; i++, mask >>= 1) { if (mask & 0x1) { diff --git a/src/asmjit/x86/x86compilercontext_p.h b/src/asmjit/x86/x86compilercontext_p.h index 72bc6ca..3b86fd3 100644 --- a/src/asmjit/x86/x86compilercontext_p.h +++ b/src/asmjit/x86/x86compilercontext_p.h @@ -170,19 +170,19 @@ union X86StateCell { //! X86/X64 state. struct X86VarState : VarState { enum { - //! Base index of Gp registers. + //! Base index of GP registers. kGpIndex = 0, - //! Count of Gp registers. + //! Count of GP registers. kGpCount = 16, - //! Base index of Mm registers. + //! Base index of MMX registers. kMmIndex = kGpIndex + kGpCount, //! Count of Mm registers. kMmCount = 8, - //! Base index of Xmm registers. + //! Base index of XMM registers. kXmmIndex = kMmIndex + kMmCount, - //! Count of Xmm registers. + //! Count of XMM registers. kXmmCount = 16, //! Count of all registers in `X86VarState`. @@ -227,11 +227,11 @@ struct X86VarState : VarState { VarData* _list[kAllCount]; struct { - //! Allocated Gp registers. + //! Allocated GP registers. VarData* _listGp[kGpCount]; - //! Allocated Mm registers. + //! Allocated MMX registers. VarData* _listMm[kMmCount]; - //! Allocated Xmm registers. + //! Allocated XMM registers. VarData* _listXmm[kXmmCount]; }; }; diff --git a/src/asmjit/x86/x86compilerfunc.cpp b/src/asmjit/x86/x86compilerfunc.cpp index 255bf84..446c28e 100644 --- a/src/asmjit/x86/x86compilerfunc.cpp +++ b/src/asmjit/x86/x86compilerfunc.cpp @@ -378,7 +378,7 @@ static Error X86FuncDecl_initFunc(X86FuncDecl* self, uint32_t arch, if (callConv == kCallConvX64Win) { int32_t argMax = Utils::iMin(numArgs, 4); - // Register arguments (Gp/Xmm), always left-to-right. + // Register arguments (GP/XMM), always left-to-right. for (i = 0; i != argMax; i++) { FuncInOut& arg = self->getArg(i); uint32_t varType = varMapping[arg.getVarType()]; @@ -433,7 +433,7 @@ static Error X86FuncDecl_initFunc(X86FuncDecl* self, uint32_t arch, self->_used.or_(kX86RegClassGp, Utils::mask(arg.getRegIndex())); } - // Register arguments (Xmm), always left-to-right. + // Register arguments (XMM), always left-to-right. for (i = 0; i != static_cast(numArgs); i++) { FuncInOut& arg = self->getArg(i); uint32_t varType = varMapping[arg.getVarType()]; diff --git a/src/asmjit/x86/x86compilerfunc.h b/src/asmjit/x86/x86compilerfunc.h index 7ff9e0e..71e4986 100644 --- a/src/asmjit/x86/x86compilerfunc.h +++ b/src/asmjit/x86/x86compilerfunc.h @@ -58,32 +58,32 @@ struct X86FuncDecl : public FuncDecl { //! Get used registers mask for the given register class `rc`. //! - //! \note The result depends on the function calling convention AND the + //! NOTE: The result depends on the function calling convention AND the //! function prototype. Returned mask contains only registers actually used //! to pass function arguments. ASMJIT_INLINE uint32_t getUsed(uint32_t rc) const { return _used.get(rc); } //! Get passed registers mask for the given register class `rc`. //! - //! \note The result depends on the function calling convention used; the + //! NOTE: The result depends on the function calling convention used; the //! prototype of the function doesn't affect the mask returned. ASMJIT_INLINE uint32_t getPassed(uint32_t rc) const { return _passed.get(rc); } //! Get preserved registers mask for the given register class `rc`. //! - //! \note The result depends on the function calling convention used; the + //! NOTE: The result depends on the function calling convention used; the //! prototype of the function doesn't affect the mask returned. ASMJIT_INLINE uint32_t getPreserved(uint32_t rc) const { return _preserved.get(rc); } - //! Get ther order of passed registers (Gp). + //! Get ther order of passed registers (GP). //! - //! \note The result depends on the function calling convention used; the + //! NOTE: The result depends on the function calling convention used; the //! prototype of the function doesn't affect the mask returned. ASMJIT_INLINE const uint8_t* getPassedOrderGp() const { return _passedOrderGp; } - //! Get ther order of passed registers (Xmm/Ymm/Zmm). + //! Get ther order of passed registers (XMM/YMM/ZMM). //! - //! \note The result depends on the function calling convention used; the + //! NOTE: The result depends on the function calling convention used; the //! prototype of the function doesn't affect the mask returned. ASMJIT_INLINE const uint8_t* getPassedOrderXyz() const { return _passedOrderXyz; } @@ -95,7 +95,7 @@ struct X86FuncDecl : public FuncDecl { //! //! This will set function calling convention and setup arguments variables. //! - //! \note This function will allocate variables, it can be called only once. + //! NOTE: This function will allocate variables, it can be called only once. ASMJIT_API Error setPrototype(const FuncPrototype& p); // -------------------------------------------------------------------------- @@ -115,9 +115,9 @@ struct X86FuncDecl : public FuncDecl { //! Preserved registers (defined by the calling convention). X86RegMask _preserved; - //! Order of registers used to pass Gp function arguments. + //! Order of registers used to pass GP function arguments. uint8_t _passedOrderGp[8]; - //! Order of registers used to pass Xmm function arguments. + //! Order of registers used to pass XMM/YMM/ZMM function arguments. uint8_t _passedOrderXyz[8]; }; diff --git a/src/asmjit/x86/x86inst.cpp b/src/asmjit/x86/x86inst.cpp index 7677842..078e603 100644 --- a/src/asmjit/x86/x86inst.cpp +++ b/src/asmjit/x86/x86inst.cpp @@ -98,841 +98,281 @@ ASMJIT_ENUM(X86InstFlagsInternal) { // [Macros] // ============================================================================ -#if !defined(ASMJIT_DISABLE_TEXT) -# define INST_NAME_INDEX(_Code_) _Code_##_NameIndex -#else -# define INST_NAME_INDEX(_Code_) 0 -#endif - // Undefined. Used to distinguish (visually) between zero and unused data. #define U 0 // Instruction opcodes. -#define O_000000(_OpCode_, _O_, _L_, _W_, _EVEX_W_) (kX86InstOpCode_PP_00 | kX86InstOpCode_MM_00 | (0x##_OpCode_) | ((_O_) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##_L_ | kX86InstTable_W_##_W_ | kX86InstTable_E_##_EVEX_W_) -#define O_000F00(_OpCode_, _O_, _L_, _W_, _EVEX_W_) (kX86InstOpCode_PP_00 | kX86InstOpCode_MM_0F | (0x##_OpCode_) | ((_O_) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##_L_ | kX86InstTable_W_##_W_ | kX86InstTable_E_##_EVEX_W_) -#define O_000F01(_OpCode_, _O_, _L_, _W_, _EVEX_W_) (kX86InstOpCode_PP_00 | kX86InstOpCode_MM_0F01 | (0x##_OpCode_) | ((_O_) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##_L_ | kX86InstTable_W_##_W_ | kX86InstTable_E_##_EVEX_W_) -#define O_000F0F(_OpCode_, _O_, _L_, _W_, _EVEX_W_) (kX86InstOpCode_PP_00 | kX86InstOpCode_MM_0F | (0x##_OpCode_) | ((_O_) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##_L_ | kX86InstTable_W_##_W_ | kX86InstTable_E_##_EVEX_W_) -#define O_000F38(_OpCode_, _O_, _L_, _W_, _EVEX_W_) (kX86InstOpCode_PP_00 | kX86InstOpCode_MM_0F38 | (0x##_OpCode_) | ((_O_) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##_L_ | kX86InstTable_W_##_W_ | kX86InstTable_E_##_EVEX_W_) -#define O_000F3A(_OpCode_, _O_, _L_, _W_, _EVEX_W_) (kX86InstOpCode_PP_00 | kX86InstOpCode_MM_0F3A | (0x##_OpCode_) | ((_O_) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##_L_ | kX86InstTable_W_##_W_ | kX86InstTable_E_##_EVEX_W_) -#define O_660000(_OpCode_, _O_, _L_, _W_, _EVEX_W_) (kX86InstOpCode_PP_66 | kX86InstOpCode_MM_00 | (0x##_OpCode_) | ((_O_) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##_L_ | kX86InstTable_W_##_W_ | kX86InstTable_E_##_EVEX_W_) -#define O_660F00(_OpCode_, _O_, _L_, _W_, _EVEX_W_) (kX86InstOpCode_PP_66 | kX86InstOpCode_MM_0F | (0x##_OpCode_) | ((_O_) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##_L_ | kX86InstTable_W_##_W_ | kX86InstTable_E_##_EVEX_W_) -#define O_660F38(_OpCode_, _O_, _L_, _W_, _EVEX_W_) (kX86InstOpCode_PP_66 | kX86InstOpCode_MM_0F38 | (0x##_OpCode_) | ((_O_) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##_L_ | kX86InstTable_W_##_W_ | kX86InstTable_E_##_EVEX_W_) -#define O_660F3A(_OpCode_, _O_, _L_, _W_, _EVEX_W_) (kX86InstOpCode_PP_66 | kX86InstOpCode_MM_0F3A | (0x##_OpCode_) | ((_O_) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##_L_ | kX86InstTable_W_##_W_ | kX86InstTable_E_##_EVEX_W_) -#define O_9B0000(_OpCode_, _O_, _L_, _W_, _EVEX_W_) (kX86InstOpCode_PP_9B | kX86InstOpCode_MM_00 | (0x##_OpCode_) | ((_O_) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##_L_ | kX86InstTable_W_##_W_ | kX86InstTable_E_##_EVEX_W_) -#define O_F20000(_OpCode_, _O_, _L_, _W_, _EVEX_W_) (kX86InstOpCode_PP_F2 | kX86InstOpCode_MM_00 | (0x##_OpCode_) | ((_O_) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##_L_ | kX86InstTable_W_##_W_ | kX86InstTable_E_##_EVEX_W_) -#define O_F20F00(_OpCode_, _O_, _L_, _W_, _EVEX_W_) (kX86InstOpCode_PP_F2 | kX86InstOpCode_MM_0F | (0x##_OpCode_) | ((_O_) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##_L_ | kX86InstTable_W_##_W_ | kX86InstTable_E_##_EVEX_W_) -#define O_F20F38(_OpCode_, _O_, _L_, _W_, _EVEX_W_) (kX86InstOpCode_PP_F2 | kX86InstOpCode_MM_0F38 | (0x##_OpCode_) | ((_O_) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##_L_ | kX86InstTable_W_##_W_ | kX86InstTable_E_##_EVEX_W_) -#define O_F20F3A(_OpCode_, _O_, _L_, _W_, _EVEX_W_) (kX86InstOpCode_PP_F2 | kX86InstOpCode_MM_0F3A | (0x##_OpCode_) | ((_O_) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##_L_ | kX86InstTable_W_##_W_ | kX86InstTable_E_##_EVEX_W_) -#define O_F30000(_OpCode_, _O_, _L_, _W_, _EVEX_W_) (kX86InstOpCode_PP_F3 | kX86InstOpCode_MM_00 | (0x##_OpCode_) | ((_O_) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##_L_ | kX86InstTable_W_##_W_ | kX86InstTable_E_##_EVEX_W_) -#define O_F30F00(_OpCode_, _O_, _L_, _W_, _EVEX_W_) (kX86InstOpCode_PP_F3 | kX86InstOpCode_MM_0F | (0x##_OpCode_) | ((_O_) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##_L_ | kX86InstTable_W_##_W_ | kX86InstTable_E_##_EVEX_W_) -#define O_F30F38(_OpCode_, _O_, _L_, _W_, _EVEX_W_) (kX86InstOpCode_PP_F3 | kX86InstOpCode_MM_0F38 | (0x##_OpCode_) | ((_O_) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##_L_ | kX86InstTable_W_##_W_ | kX86InstTable_E_##_EVEX_W_) -#define O_F30F3A(_OpCode_, _O_, _L_, _W_, _EVEX_W_) (kX86InstOpCode_PP_F3 | kX86InstOpCode_MM_0F3A | (0x##_OpCode_) | ((_O_) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##_L_ | kX86InstTable_W_##_W_ | kX86InstTable_E_##_EVEX_W_) +#define O_000000(op, o, L, W, EvexW) (kX86InstOpCode_PP_00 | kX86InstOpCode_MM_00 | (0x##op) | ((o) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##L | kX86InstTable_W_##W | kX86InstTable_E_##EvexW) +#define O_000F00(op, o, L, W, EvexW) (kX86InstOpCode_PP_00 | kX86InstOpCode_MM_0F | (0x##op) | ((o) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##L | kX86InstTable_W_##W | kX86InstTable_E_##EvexW) +#define O_000F01(op, o, L, W, EvexW) (kX86InstOpCode_PP_00 | kX86InstOpCode_MM_0F01 | (0x##op) | ((o) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##L | kX86InstTable_W_##W | kX86InstTable_E_##EvexW) +#define O_000F0F(op, o, L, W, EvexW) (kX86InstOpCode_PP_00 | kX86InstOpCode_MM_0F | (0x##op) | ((o) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##L | kX86InstTable_W_##W | kX86InstTable_E_##EvexW) +#define O_000F38(op, o, L, W, EvexW) (kX86InstOpCode_PP_00 | kX86InstOpCode_MM_0F38 | (0x##op) | ((o) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##L | kX86InstTable_W_##W | kX86InstTable_E_##EvexW) +#define O_000F3A(op, o, L, W, EvexW) (kX86InstOpCode_PP_00 | kX86InstOpCode_MM_0F3A | (0x##op) | ((o) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##L | kX86InstTable_W_##W | kX86InstTable_E_##EvexW) +#define O_660000(op, o, L, W, EvexW) (kX86InstOpCode_PP_66 | kX86InstOpCode_MM_00 | (0x##op) | ((o) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##L | kX86InstTable_W_##W | kX86InstTable_E_##EvexW) +#define O_660F00(op, o, L, W, EvexW) (kX86InstOpCode_PP_66 | kX86InstOpCode_MM_0F | (0x##op) | ((o) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##L | kX86InstTable_W_##W | kX86InstTable_E_##EvexW) +#define O_660F38(op, o, L, W, EvexW) (kX86InstOpCode_PP_66 | kX86InstOpCode_MM_0F38 | (0x##op) | ((o) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##L | kX86InstTable_W_##W | kX86InstTable_E_##EvexW) +#define O_660F3A(op, o, L, W, EvexW) (kX86InstOpCode_PP_66 | kX86InstOpCode_MM_0F3A | (0x##op) | ((o) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##L | kX86InstTable_W_##W | kX86InstTable_E_##EvexW) +#define O_9B0000(op, o, L, W, EvexW) (kX86InstOpCode_PP_9B | kX86InstOpCode_MM_00 | (0x##op) | ((o) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##L | kX86InstTable_W_##W | kX86InstTable_E_##EvexW) +#define O_F20000(op, o, L, W, EvexW) (kX86InstOpCode_PP_F2 | kX86InstOpCode_MM_00 | (0x##op) | ((o) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##L | kX86InstTable_W_##W | kX86InstTable_E_##EvexW) +#define O_F20F00(op, o, L, W, EvexW) (kX86InstOpCode_PP_F2 | kX86InstOpCode_MM_0F | (0x##op) | ((o) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##L | kX86InstTable_W_##W | kX86InstTable_E_##EvexW) +#define O_F20F38(op, o, L, W, EvexW) (kX86InstOpCode_PP_F2 | kX86InstOpCode_MM_0F38 | (0x##op) | ((o) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##L | kX86InstTable_W_##W | kX86InstTable_E_##EvexW) +#define O_F20F3A(op, o, L, W, EvexW) (kX86InstOpCode_PP_F2 | kX86InstOpCode_MM_0F3A | (0x##op) | ((o) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##L | kX86InstTable_W_##W | kX86InstTable_E_##EvexW) +#define O_F30000(op, o, L, W, EvexW) (kX86InstOpCode_PP_F3 | kX86InstOpCode_MM_00 | (0x##op) | ((o) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##L | kX86InstTable_W_##W | kX86InstTable_E_##EvexW) +#define O_F30F00(op, o, L, W, EvexW) (kX86InstOpCode_PP_F3 | kX86InstOpCode_MM_0F | (0x##op) | ((o) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##L | kX86InstTable_W_##W | kX86InstTable_E_##EvexW) +#define O_F30F38(op, o, L, W, EvexW) (kX86InstOpCode_PP_F3 | kX86InstOpCode_MM_0F38 | (0x##op) | ((o) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##L | kX86InstTable_W_##W | kX86InstTable_E_##EvexW) +#define O_F30F3A(op, o, L, W, EvexW) (kX86InstOpCode_PP_F3 | kX86InstOpCode_MM_0F3A | (0x##op) | ((o) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##L | kX86InstTable_W_##W | kX86InstTable_E_##EvexW) -#define O_00_M08(_OpCode_, _O_, _L_, _W_, _EVEX_W_) (kX86InstOpCode_PP_00 | kX86InstOpCode_MM_01000| (0x##_OpCode_) | ((_O_) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##_L_ | kX86InstTable_W_##_W_ | kX86InstTable_E_##_EVEX_W_) -#define O_00_M09(_OpCode_, _O_, _L_, _W_, _EVEX_W_) (kX86InstOpCode_PP_00 | kX86InstOpCode_MM_01001| (0x##_OpCode_) | ((_O_) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##_L_ | kX86InstTable_W_##_W_ | kX86InstTable_E_##_EVEX_W_) -#define O_66_M03(_OpCode_, _O_, _L_, _W_, _EVEX_W_) (kX86InstOpCode_PP_66 | kX86InstOpCode_MM_00011| (0x##_OpCode_) | ((_O_) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##_L_ | kX86InstTable_W_##_W_ | kX86InstTable_E_##_EVEX_W_) +#define O_00_M08(op, o, L, W, EvexW) (kX86InstOpCode_PP_00 | kX86InstOpCode_MM_01000| (0x##op) | ((o) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##L | kX86InstTable_W_##W | kX86InstTable_E_##EvexW) +#define O_00_M09(op, o, L, W, EvexW) (kX86InstOpCode_PP_00 | kX86InstOpCode_MM_01001| (0x##op) | ((o) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##L | kX86InstTable_W_##W | kX86InstTable_E_##EvexW) +#define O_66_M03(op, o, L, W, EvexW) (kX86InstOpCode_PP_66 | kX86InstOpCode_MM_00011| (0x##op) | ((o) << kX86InstOpCode_O_Shift) | kX86InstTable_L_##L | kX86InstTable_W_##W | kX86InstTable_E_##EvexW) -#define O_00_X(_OpCode_, _O_) (kX86InstOpCode_PP_00 | (0x##_OpCode_) | ((_O_) << kX86InstOpCode_O_Shift)) -#define O_9B_X(_OpCode_, _O_) (kX86InstOpCode_PP_9B | (0x##_OpCode_) | ((_O_) << kX86InstOpCode_O_Shift)) +#define O_00_X(op, o) (kX86InstOpCode_PP_00 | (0x##op) | ((o) << kX86InstOpCode_O_Shift)) +#define O_9B_X(op, o) (kX86InstOpCode_PP_9B | (0x##op) | ((o) << kX86InstOpCode_O_Shift)) -// Instruction Encoding `Enc(...)`. -#define Enc(_Id_) kX86InstEncoding##_Id_ - -// Instruction Flags `F(...)` and AVX-512 `AVX(...)`flags. -#define F(_Flags_) kX86InstFlag##_Flags_ - -#define A(_Flags_) kX86InstFlagAvx512##_Flags_ - -// Instruction EFLAGS `E(OSZAPCDX)`. -#define EF(_Flags_) 0 - -// Instruction Operands' Flags `O(...)`. -#define O(_Op_) kX86InstOp##_Op_ +#define F(flag) kX86InstFlag##flag // Instruction Base Flag(s) `F(...)`. +#define A(flag) kX86InstFlagAvx512##flag // Instruction AVX-512 flag(s) `A(...)`. +#define O(flag) kX86InstOp##flag // Instruction operand flag(s) `O(...)`. +#define EF(eflags) 0 // Instruction EFLAGS `EF(OSZAPCDX)`. +#define Enc(iEnc) kX86InstEncoding##iEnc // Instruction Encoding `Enc(...)`. // Defines an X86/X64 instruction. -#define INST(_Id_, _Name_, _OpCode0_, _OpCode1_, _Encoding_, _IFlags_, _EFlags_, _WriteIndex_, _WriteSize_, _Op0_, _Op_, _Op2_, _Op3_, _Op4_) \ - { INST_NAME_INDEX(_Id_), _Id_##_ExtendedIndex, _OpCode0_ } +#define INST(id, name, encoding, opcode0, opcode1, instFlags, eflags, writeIndex, writeSize, op0, op1, op2, op3, op4) \ + { 0, kX86InstId##id##_ExtendedIndex, opcode0 } // ============================================================================ // [asmjit::X86Inst] // ============================================================================ // ${X86InstData:Begin} -// Automatically generated, do not edit. +// ------------------- Automatically generated, do not edit ------------------- #if !defined(ASMJIT_DISABLE_NAMES) -const char _x86InstName[] = - "\0" - "adc\0" - "bextr\0" - "blsi\0" - "blsmsk\0" - "blsr\0" - "bsf\0" - "bsr\0" - "bswap\0" - "bt\0" - "btc\0" - "btr\0" - "bts\0" - "bzhi\0" - "call\0" - "cbw\0" - "cdq\0" - "cdqe\0" - "clc\0" - "cld\0" - "clflush\0" - "cmc\0" - "cmova\0" - "cmovae\0" - "cmovc\0" - "cmovg\0" - "cmovge\0" - "cmovl\0" - "cmovle\0" - "cmovna\0" - "cmovnae\0" - "cmovnc\0" - "cmovng\0" - "cmovnge\0" - "cmovnl\0" - "cmovnle\0" - "cmovno\0" - "cmovnp\0" - "cmovns\0" - "cmovnz\0" - "cmovo\0" - "cmovp\0" - "cmovpe\0" - "cmovpo\0" - "cmovs\0" - "cmovz\0" - "cmp\0" - "cmpxchg\0" - "cmpxchg16b\0" - "cmpxchg8b\0" - "cpuid\0" - "cqo\0" - "crc32\0" - "cvtpd2pi\0" - "cvtpi2pd\0" - "cvtpi2ps\0" - "cvtps2pi\0" - "cvttpd2pi\0" - "cvttps2pi\0" - "cwd\0" - "cwde\0" - "daa\0" - "das\0" - "enter\0" - "f2xm1\0" - "fabs\0" - "faddp\0" - "fbld\0" - "fbstp\0" - "fchs\0" - "fclex\0" - "fcmovb\0" - "fcmovbe\0" - "fcmove\0" - "fcmovnb\0" - "fcmovnbe\0" - "fcmovne\0" - "fcmovnu\0" - "fcmovu\0" - "fcom\0" - "fcomi\0" - "fcomip\0" - "fcomp\0" - "fcompp\0" - "fcos\0" - "fdecstp\0" - "fdiv\0" - "fdivp\0" - "fdivr\0" - "fdivrp\0" - "femms\0" - "ffree\0" - "fiadd\0" - "ficom\0" - "ficomp\0" - "fidiv\0" - "fidivr\0" - "fild\0" - "fimul\0" - "fincstp\0" - "finit\0" - "fist\0" - "fistp\0" - "fisttp\0" - "fisub\0" - "fisubr\0" - "fld\0" - "fld1\0" - "fldcw\0" - "fldenv\0" - "fldl2e\0" - "fldl2t\0" - "fldlg2\0" - "fldln2\0" - "fldpi\0" - "fldz\0" - "fmulp\0" - "fnclex\0" - "fninit\0" - "fnop\0" - "fnsave\0" - "fnstcw\0" - "fnstenv\0" - "fnstsw\0" - "fpatan\0" - "fprem\0" - "fprem1\0" - "fptan\0" - "frndint\0" - "frstor\0" - "fsave\0" - "fscale\0" - "fsin\0" - "fsincos\0" - "fsqrt\0" - "fst\0" - "fstcw\0" - "fstenv\0" - "fstp\0" - "fstsw\0" - "fsubp\0" - "fsubrp\0" - "ftst\0" - "fucom\0" - "fucomi\0" - "fucomip\0" - "fucomp\0" - "fucompp\0" - "fwait\0" - "fxam\0" - "fxch\0" - "fxrstor\0" - "fxsave\0" - "fxtract\0" - "fyl2x\0" - "fyl2xp1\0" - "inc\0" - "insertq\0" - "ja\0" - "jae\0" - "jb\0" - "jbe\0" - "jc\0" - "je\0" - "jecxz\0" - "jg\0" - "jge\0" - "jl\0" - "jle\0" - "jmp\0" - "jna\0" - "jnae\0" - "jnb\0" - "jnbe\0" - "jnc\0" - "jne\0" - "jng\0" - "jnge\0" - "jnl\0" - "jnle\0" - "jno\0" - "jnp\0" - "jns\0" - "jnz\0" - "jo\0" - "jp\0" - "jpe\0" - "jpo\0" - "js\0" - "jz\0" - "lahf\0" - "lea\0" - "leave\0" - "lfence\0" - "lzcnt\0" - "mfence\0" - "monitor\0" - "mov_ptr\0" - "movdq2q\0" - "movnti\0" - "movntq\0" - "movntsd\0" - "movntss\0" - "movq2dq\0" - "movsx\0" - "movsxd\0" - "movzx\0" - "mulx\0" - "mwait\0" - "neg\0" - "not\0" - "pause\0" - "pdep\0" - "pext\0" - "pf2id\0" - "pf2iw\0" - "pfacc\0" - "pfadd\0" - "pfcmpeq\0" - "pfcmpge\0" - "pfcmpgt\0" - "pfmax\0" - "pfmin\0" - "pfmul\0" - "pfnacc\0" - "pfpnacc\0" - "pfrcp\0" - "pfrcpit1\0" - "pfrcpit2\0" - "pfrsqit1\0" - "pfrsqrt\0" - "pfsub\0" - "pfsubr\0" - "pi2fd\0" - "pi2fw\0" - "pop\0" - "popa\0" - "popcnt\0" - "popf\0" - "prefetch\0" - "prefetch_3dnow\0" - "prefetchw_3dnow\0" - "pshufw\0" - "pswapd\0" - "push\0" - "pusha\0" - "pushf\0" - "rcl\0" - "rcr\0" - "rdfsbase\0" - "rdgsbase\0" - "rdrand\0" - "rdtsc\0" - "rdtscp\0" - "rep lods_b\0" - "rep lods_d\0" - "rep lods_q\0" - "rep lods_w\0" - "rep movs_b\0" - "rep movs_d\0" - "rep movs_q\0" - "rep movs_w\0" - "rep stos_b\0" - "rep stos_d\0" - "rep stos_q\0" - "rep stos_w\0" - "repe cmps_b\0" - "repe cmps_d\0" - "repe cmps_q\0" - "repe cmps_w\0" - "repe scas_b\0" - "repe scas_d\0" - "repe scas_q\0" - "repe scas_w\0" - "repne cmps_b\0" - "repne cmps_d\0" - "repne cmps_q\0" - "repne cmps_w\0" - "repne scas_b\0" - "repne scas_d\0" - "repne scas_q\0" - "repne scas_w\0" - "ret\0" - "rol\0" - "ror\0" - "rorx\0" - "sahf\0" - "sal\0" - "sar\0" - "sarx\0" - "sbb\0" - "seta\0" - "setae\0" - "setb\0" - "setbe\0" - "setc\0" - "sete\0" - "setg\0" - "setge\0" - "setl\0" - "setle\0" - "setna\0" - "setnae\0" - "setnb\0" - "setnbe\0" - "setnc\0" - "setne\0" - "setng\0" - "setnge\0" - "setnl\0" - "setnle\0" - "setno\0" - "setnp\0" - "setns\0" - "setnz\0" - "seto\0" - "setp\0" - "setpe\0" - "setpo\0" - "sets\0" - "setz\0" - "sfence\0" - "shl\0" - "shlx\0" - "shr\0" - "shrd\0" - "shrx\0" - "stc\0" - "tzcnt\0" - "ud2\0" - "vaddpd\0" - "vaddps\0" - "vaddsd\0" - "vaddss\0" - "vaddsubpd\0" - "vaddsubps\0" - "vaesdec\0" - "vaesdeclast\0" - "vaesenc\0" - "vaesenclast\0" - "vaesimc\0" - "vaeskeygenassist\0" - "vandnpd\0" - "vandnps\0" - "vandpd\0" - "vandps\0" - "vblendpd\0" - "vblendps\0" - "vblendvpd\0" - "vblendvps\0" - "vbroadcastf128\0" - "vbroadcasti128\0" - "vbroadcastsd\0" - "vbroadcastss\0" - "vcmppd\0" - "vcmpps\0" - "vcmpsd\0" - "vcmpss\0" - "vcomisd\0" - "vcomiss\0" - "vcvtdq2pd\0" - "vcvtdq2ps\0" - "vcvtpd2dq\0" - "vcvtpd2ps\0" - "vcvtph2ps\0" - "vcvtps2dq\0" - "vcvtps2pd\0" - "vcvtps2ph\0" - "vcvtsd2si\0" - "vcvtsd2ss\0" - "vcvtsi2sd\0" - "vcvtsi2ss\0" - "vcvtss2sd\0" - "vcvtss2si\0" - "vcvttpd2dq\0" - "vcvttps2dq\0" - "vcvttsd2si\0" - "vcvttss2si\0" - "vdivpd\0" - "vdivps\0" - "vdivsd\0" - "vdivss\0" - "vdppd\0" - "vdpps\0" - "vextractf128\0" - "vextracti128\0" - "vextractps\0" - "vfmadd132pd\0" - "vfmadd132ps\0" - "vfmadd132sd\0" - "vfmadd132ss\0" - "vfmadd213pd\0" - "vfmadd213ps\0" - "vfmadd213sd\0" - "vfmadd213ss\0" - "vfmadd231pd\0" - "vfmadd231ps\0" - "vfmadd231sd\0" - "vfmadd231ss\0" - "vfmaddpd\0" - "vfmaddps\0" - "vfmaddsd\0" - "vfmaddss\0" - "vfmaddsub132pd\0" - "vfmaddsub132ps\0" - "vfmaddsub213pd\0" - "vfmaddsub213ps\0" - "vfmaddsub231pd\0" - "vfmaddsub231ps\0" - "vfmaddsubpd\0" - "vfmaddsubps\0" - "vfmsub132pd\0" - "vfmsub132ps\0" - "vfmsub132sd\0" - "vfmsub132ss\0" - "vfmsub213pd\0" - "vfmsub213ps\0" - "vfmsub213sd\0" - "vfmsub213ss\0" - "vfmsub231pd\0" - "vfmsub231ps\0" - "vfmsub231sd\0" - "vfmsub231ss\0" - "vfmsubadd132pd\0" - "vfmsubadd132ps\0" - "vfmsubadd213pd\0" - "vfmsubadd213ps\0" - "vfmsubadd231pd\0" - "vfmsubadd231ps\0" - "vfmsubaddpd\0" - "vfmsubaddps\0" - "vfmsubpd\0" - "vfmsubps\0" - "vfmsubsd\0" - "vfmsubss\0" - "vfnmadd132pd\0" - "vfnmadd132ps\0" - "vfnmadd132sd\0" - "vfnmadd132ss\0" - "vfnmadd213pd\0" - "vfnmadd213ps\0" - "vfnmadd213sd\0" - "vfnmadd213ss\0" - "vfnmadd231pd\0" - "vfnmadd231ps\0" - "vfnmadd231sd\0" - "vfnmadd231ss\0" - "vfnmaddpd\0" - "vfnmaddps\0" - "vfnmaddsd\0" - "vfnmaddss\0" - "vfnmsub132pd\0" - "vfnmsub132ps\0" - "vfnmsub132sd\0" - "vfnmsub132ss\0" - "vfnmsub213pd\0" - "vfnmsub213ps\0" - "vfnmsub213sd\0" - "vfnmsub213ss\0" - "vfnmsub231pd\0" - "vfnmsub231ps\0" - "vfnmsub231sd\0" - "vfnmsub231ss\0" - "vfnmsubpd\0" - "vfnmsubps\0" - "vfnmsubsd\0" - "vfnmsubss\0" - "vfrczpd\0" - "vfrczps\0" - "vfrczsd\0" - "vfrczss\0" - "vgatherdpd\0" - "vgatherdps\0" - "vgatherqpd\0" - "vgatherqps\0" - "vhaddpd\0" - "vhaddps\0" - "vhsubpd\0" - "vhsubps\0" - "vinsertf128\0" - "vinserti128\0" - "vinsertps\0" - "vlddqu\0" - "vldmxcsr\0" - "vmaskmovdqu\0" - "vmaskmovpd\0" - "vmaskmovps\0" - "vmaxpd\0" - "vmaxps\0" - "vmaxsd\0" - "vmaxss\0" - "vminpd\0" - "vminps\0" - "vminsd\0" - "vminss\0" - "vmovapd\0" - "vmovaps\0" - "vmovd\0" - "vmovddup\0" - "vmovdqa\0" - "vmovdqu\0" - "vmovhlps\0" - "vmovhpd\0" - "vmovhps\0" - "vmovlhps\0" - "vmovlpd\0" - "vmovlps\0" - "vmovmskpd\0" - "vmovmskps\0" - "vmovntdq\0" - "vmovntdqa\0" - "vmovntpd\0" - "vmovntps\0" - "vmovq\0" - "vmovsd\0" - "vmovshdup\0" - "vmovsldup\0" - "vmovss\0" - "vmovupd\0" - "vmovups\0" - "vmpsadbw\0" - "vmulpd\0" - "vmulps\0" - "vmulsd\0" - "vmulss\0" - "vorpd\0" - "vorps\0" - "vpabsb\0" - "vpabsd\0" - "vpabsw\0" - "vpackssdw\0" - "vpacksswb\0" - "vpackusdw\0" - "vpackuswb\0" - "vpaddb\0" - "vpaddd\0" - "vpaddq\0" - "vpaddsb\0" - "vpaddsw\0" - "vpaddusb\0" - "vpaddusw\0" - "vpaddw\0" - "vpalignr\0" - "vpand\0" - "vpandn\0" - "vpavgb\0" - "vpavgw\0" - "vpblendd\0" - "vpblendvb\0" - "vpblendw\0" - "vpbroadcastb\0" - "vpbroadcastd\0" - "vpbroadcastq\0" - "vpbroadcastw\0" - "vpclmulqdq\0" - "vpcmov\0" - "vpcmpeqb\0" - "vpcmpeqd\0" - "vpcmpeqq\0" - "vpcmpeqw\0" - "vpcmpestri\0" - "vpcmpestrm\0" - "vpcmpgtb\0" - "vpcmpgtd\0" - "vpcmpgtq\0" - "vpcmpgtw\0" - "vpcmpistri\0" - "vpcmpistrm\0" - "vpcomb\0" - "vpcomd\0" - "vpcomq\0" - "vpcomub\0" - "vpcomud\0" - "vpcomuq\0" - "vpcomuw\0" - "vpcomw\0" - "vperm2f128\0" - "vperm2i128\0" - "vpermd\0" - "vpermil2pd\0" - "vpermil2ps\0" - "vpermilpd\0" - "vpermilps\0" - "vpermpd\0" - "vpermps\0" - "vpermq\0" - "vpextrb\0" - "vpextrd\0" - "vpextrq\0" - "vpextrw\0" - "vpgatherdd\0" - "vpgatherdq\0" - "vpgatherqd\0" - "vpgatherqq\0" - "vphaddbd\0" - "vphaddbq\0" - "vphaddbw\0" - "vphaddd\0" - "vphadddq\0" - "vphaddsw\0" - "vphaddubd\0" - "vphaddubq\0" - "vphaddubw\0" - "vphaddudq\0" - "vphadduwd\0" - "vphadduwq\0" - "vphaddw\0" - "vphaddwd\0" - "vphaddwq\0" - "vphminposuw\0" - "vphsubbw\0" - "vphsubd\0" - "vphsubdq\0" - "vphsubsw\0" - "vphsubw\0" - "vphsubwd\0" - "vpinsrb\0" - "vpinsrd\0" - "vpinsrq\0" - "vpinsrw\0" - "vpmacsdd\0" - "vpmacsdqh\0" - "vpmacsdql\0" - "vpmacssdd\0" - "vpmacssdqh\0" - "vpmacssdql\0" - "vpmacsswd\0" - "vpmacssww\0" - "vpmacswd\0" - "vpmacsww\0" - "vpmadcsswd\0" - "vpmadcswd\0" - "vpmaddubsw\0" - "vpmaddwd\0" - "vpmaskmovd\0" - "vpmaskmovq\0" - "vpmaxsb\0" - "vpmaxsd\0" - "vpmaxsw\0" - "vpmaxub\0" - "vpmaxud\0" - "vpmaxuw\0" - "vpminsb\0" - "vpminsd\0" - "vpminsw\0" - "vpminub\0" - "vpminud\0" - "vpminuw\0" - "vpmovmskb\0" - "vpmovsxbd\0" - "vpmovsxbq\0" - "vpmovsxbw\0" - "vpmovsxdq\0" - "vpmovsxwd\0" - "vpmovsxwq\0" - "vpmovzxbd\0" - "vpmovzxbq\0" - "vpmovzxbw\0" - "vpmovzxdq\0" - "vpmovzxwd\0" - "vpmovzxwq\0" - "vpmuldq\0" - "vpmulhrsw\0" - "vpmulhuw\0" - "vpmulhw\0" - "vpmulld\0" - "vpmullw\0" - "vpmuludq\0" - "vpor\0" - "vpperm\0" - "vprotb\0" - "vprotd\0" - "vprotq\0" - "vprotw\0" - "vpsadbw\0" - "vpshab\0" - "vpshad\0" - "vpshaq\0" - "vpshaw\0" - "vpshlb\0" - "vpshld\0" - "vpshlq\0" - "vpshlw\0" - "vpshufb\0" - "vpshufd\0" - "vpshufhw\0" - "vpshuflw\0" - "vpsignb\0" - "vpsignd\0" - "vpsignw\0" - "vpslld\0" - "vpslldq\0" - "vpsllq\0" - "vpsllvd\0" - "vpsllvq\0" - "vpsllw\0" - "vpsrad\0" - "vpsravd\0" - "vpsraw\0" - "vpsrld\0" - "vpsrldq\0" - "vpsrlq\0" - "vpsrlvd\0" - "vpsrlvq\0" - "vpsrlw\0" - "vpsubb\0" - "vpsubd\0" - "vpsubq\0" - "vpsubsb\0" - "vpsubsw\0" - "vpsubusb\0" - "vpsubusw\0" - "vpsubw\0" - "vptest\0" - "vpunpckhbw\0" - "vpunpckhdq\0" - "vpunpckhqdq\0" - "vpunpckhwd\0" - "vpunpcklbw\0" - "vpunpckldq\0" - "vpunpcklqdq\0" - "vpunpcklwd\0" - "vpxor\0" - "vrcpps\0" - "vrcpss\0" - "vroundpd\0" - "vroundps\0" - "vroundsd\0" - "vroundss\0" - "vrsqrtps\0" - "vrsqrtss\0" - "vshufpd\0" - "vshufps\0" - "vsqrtpd\0" - "vsqrtps\0" - "vsqrtsd\0" - "vsqrtss\0" - "vstmxcsr\0" - "vsubpd\0" - "vsubps\0" - "vsubsd\0" - "vsubss\0" - "vtestpd\0" - "vtestps\0" - "vucomisd\0" - "vucomiss\0" - "vunpckhpd\0" - "vunpckhps\0" - "vunpcklpd\0" - "vunpcklps\0" - "vxorpd\0" - "vxorps\0" - "vzeroall\0" - "vzeroupper\0" - "wrfsbase\0" - "wrgsbase\0" - "xadd\0" - "xgetbv\0" - "xrstor64\0" - "xsave64\0" - "xsaveopt\0" - "xsaveopt64\0" - "xsetbv"; +static const char _x86InstNameData[] = + "\0" "adc\0" "adcx\0" "adox\0" "bextr\0" "blcfill\0" "blci\0" "blcic\0" + "blcmsk\0" "blcs\0" "blsfill\0" "blsi\0" "blsic\0" "blsmsk\0" "blsr\0" + "bsf\0" "bsr\0" "bswap\0" "bt\0" "btc\0" "btr\0" "bts\0" "bzhi\0" "call\0" + "cbw\0" "cdq\0" "cdqe\0" "clc\0" "cld\0" "clflush\0" "clflushopt\0" "cmc\0" + "cmova\0" "cmovae\0" "cmovc\0" "cmovg\0" "cmovge\0" "cmovl\0" "cmovle\0" + "cmovna\0" "cmovnae\0" "cmovnc\0" "cmovng\0" "cmovnge\0" "cmovnl\0" + "cmovnle\0" "cmovno\0" "cmovnp\0" "cmovns\0" "cmovnz\0" "cmovo\0" "cmovp\0" + "cmovpe\0" "cmovpo\0" "cmovs\0" "cmovz\0" "cmp\0" "cmpxchg\0" "cmpxchg16b\0" + "cmpxchg8b\0" "cpuid\0" "cqo\0" "crc32\0" "cvtpd2pi\0" "cvtpi2pd\0" + "cvtpi2ps\0" "cvtps2pi\0" "cvttpd2pi\0" "cvttps2pi\0" "cwd\0" "cwde\0" + "daa\0" "das\0" "enter\0" "f2xm1\0" "fabs\0" "faddp\0" "fbld\0" "fbstp\0" + "fchs\0" "fclex\0" "fcmovb\0" "fcmovbe\0" "fcmove\0" "fcmovnb\0" "fcmovnbe\0" + "fcmovne\0" "fcmovnu\0" "fcmovu\0" "fcom\0" "fcomi\0" "fcomip\0" "fcomp\0" + "fcompp\0" "fcos\0" "fdecstp\0" "fdiv\0" "fdivp\0" "fdivr\0" "fdivrp\0" + "femms\0" "ffree\0" "fiadd\0" "ficom\0" "ficomp\0" "fidiv\0" "fidivr\0" + "fild\0" "fimul\0" "fincstp\0" "finit\0" "fist\0" "fistp\0" "fisttp\0" + "fisub\0" "fisubr\0" "fld\0" "fld1\0" "fldcw\0" "fldenv\0" "fldl2e\0" + "fldl2t\0" "fldlg2\0" "fldln2\0" "fldpi\0" "fldz\0" "fmulp\0" "fnclex\0" + "fninit\0" "fnop\0" "fnsave\0" "fnstcw\0" "fnstenv\0" "fnstsw\0" "fpatan\0" + "fprem\0" "fprem1\0" "fptan\0" "frndint\0" "frstor\0" "fsave\0" "fscale\0" + "fsin\0" "fsincos\0" "fsqrt\0" "fst\0" "fstcw\0" "fstenv\0" "fstp\0" + "fstsw\0" "fsubp\0" "fsubrp\0" "ftst\0" "fucom\0" "fucomi\0" "fucomip\0" + "fucomp\0" "fucompp\0" "fwait\0" "fxam\0" "fxch\0" "fxrstor\0" "fxrstor64\0" + "fxsave\0" "fxsave64\0" "fxtract\0" "fyl2x\0" "fyl2xp1\0" "inc\0" "insertq\0" + "ja\0" "jae\0" "jb\0" "jbe\0" "jc\0" "je\0" "jecxz\0" "jg\0" "jge\0" "jl\0" + "jle\0" "jmp\0" "jna\0" "jnae\0" "jnb\0" "jnbe\0" "jnc\0" "jne\0" "jng\0" + "jnge\0" "jnl\0" "jnle\0" "jno\0" "jnp\0" "jns\0" "jnz\0" "jo\0" "jp\0" + "jpe\0" "jpo\0" "js\0" "jz\0" "lahf\0" "lea\0" "leave\0" "lfence\0" "lzcnt\0" + "mfence\0" "monitor\0" "mov_ptr\0" "movdq2q\0" "movnti\0" "movntq\0" + "movntsd\0" "movntss\0" "movq2dq\0" "movsx\0" "movsxd\0" "movzx\0" "mulx\0" + "mwait\0" "neg\0" "not\0" "pause\0" "pavgusb\0" "pdep\0" "pext\0" "pf2id\0" + "pf2iw\0" "pfacc\0" "pfadd\0" "pfcmpeq\0" "pfcmpge\0" "pfcmpgt\0" "pfmax\0" + "pfmin\0" "pfmul\0" "pfnacc\0" "pfpnacc\0" "pfrcp\0" "pfrcpit1\0" + "pfrcpit2\0" "pfrsqit1\0" "pfrsqrt\0" "pfsub\0" "pfsubr\0" "pi2fd\0" + "pi2fw\0" "pmulhrw\0" "pop\0" "popa\0" "popcnt\0" "popf\0" "prefetch\0" + "prefetch3dnow\0" "prefetchw\0" "prefetchwt1\0" "pshufw\0" "pswapd\0" + "push\0" "pusha\0" "pushf\0" "rcl\0" "rcr\0" "rdfsbase\0" "rdgsbase\0" + "rdrand\0" "rdseed\0" "rdtsc\0" "rdtscp\0" "rep lods_b\0" "rep lods_d\0" + "rep lods_q\0" "rep lods_w\0" "rep movs_b\0" "rep movs_d\0" "rep movs_q\0" + "rep movs_w\0" "rep stos_b\0" "rep stos_d\0" "rep stos_q\0" "rep stos_w\0" + "repe cmps_b\0" "repe cmps_d\0" "repe cmps_q\0" "repe cmps_w\0" + "repe scas_b\0" "repe scas_d\0" "repe scas_q\0" "repe scas_w\0" + "repne cmps_b\0" "repne cmps_d\0" "repne cmps_q\0" "repne cmps_w\0" + "repne scas_b\0" "repne scas_d\0" "repne scas_q\0" "repne scas_w\0" "ret\0" + "rol\0" "ror\0" "rorx\0" "sahf\0" "sal\0" "sar\0" "sarx\0" "sbb\0" "seta\0" + "setae\0" "setb\0" "setbe\0" "setc\0" "sete\0" "setg\0" "setge\0" "setl\0" + "setle\0" "setna\0" "setnae\0" "setnb\0" "setnbe\0" "setnc\0" "setne\0" + "setng\0" "setnge\0" "setnl\0" "setnle\0" "setno\0" "setnp\0" "setns\0" + "setnz\0" "seto\0" "setp\0" "setpe\0" "setpo\0" "sets\0" "setz\0" "sfence\0" + "sha1msg1\0" "sha1msg2\0" "sha1nexte\0" "sha1rnds4\0" "sha256msg1\0" + "sha256msg2\0" "sha256rnds2\0" "shl\0" "shlx\0" "shr\0" "shrd\0" "shrx\0" + "stc\0" "t1mskc\0" "tzcnt\0" "tzmsk\0" "ud2\0" "vaddpd\0" "vaddps\0" + "vaddsd\0" "vaddss\0" "vaddsubpd\0" "vaddsubps\0" "vaesdec\0" "vaesdeclast\0" + "vaesenc\0" "vaesenclast\0" "vaesimc\0" "vaeskeygenassist\0" "vandnpd\0" + "vandnps\0" "vandpd\0" "vandps\0" "vblendpd\0" "vblendps\0" "vblendvpd\0" + "vblendvps\0" "vbroadcastf128\0" "vbroadcasti128\0" "vbroadcastsd\0" + "vbroadcastss\0" "vcmppd\0" "vcmpps\0" "vcmpsd\0" "vcmpss\0" "vcomisd\0" + "vcomiss\0" "vcvtdq2pd\0" "vcvtdq2ps\0" "vcvtpd2dq\0" "vcvtpd2ps\0" + "vcvtph2ps\0" "vcvtps2dq\0" "vcvtps2pd\0" "vcvtps2ph\0" "vcvtsd2si\0" + "vcvtsd2ss\0" "vcvtsi2sd\0" "vcvtsi2ss\0" "vcvtss2sd\0" "vcvtss2si\0" + "vcvttpd2dq\0" "vcvttps2dq\0" "vcvttsd2si\0" "vcvttss2si\0" "vdivpd\0" + "vdivps\0" "vdivsd\0" "vdivss\0" "vdppd\0" "vdpps\0" "vextractf128\0" + "vextracti128\0" "vextractps\0" "vfmadd132pd\0" "vfmadd132ps\0" + "vfmadd132sd\0" "vfmadd132ss\0" "vfmadd213pd\0" "vfmadd213ps\0" + "vfmadd213sd\0" "vfmadd213ss\0" "vfmadd231pd\0" "vfmadd231ps\0" + "vfmadd231sd\0" "vfmadd231ss\0" "vfmaddpd\0" "vfmaddps\0" "vfmaddsd\0" + "vfmaddss\0" "vfmaddsub132pd\0" "vfmaddsub132ps\0" "vfmaddsub213pd\0" + "vfmaddsub213ps\0" "vfmaddsub231pd\0" "vfmaddsub231ps\0" "vfmaddsubpd\0" + "vfmaddsubps\0" "vfmsub132pd\0" "vfmsub132ps\0" "vfmsub132sd\0" + "vfmsub132ss\0" "vfmsub213pd\0" "vfmsub213ps\0" "vfmsub213sd\0" + "vfmsub213ss\0" "vfmsub231pd\0" "vfmsub231ps\0" "vfmsub231sd\0" + "vfmsub231ss\0" "vfmsubadd132pd\0" "vfmsubadd132ps\0" "vfmsubadd213pd\0" + "vfmsubadd213ps\0" "vfmsubadd231pd\0" "vfmsubadd231ps\0" "vfmsubaddpd\0" + "vfmsubaddps\0" "vfmsubpd\0" "vfmsubps\0" "vfmsubsd\0" "vfmsubss\0" + "vfnmadd132pd\0" "vfnmadd132ps\0" "vfnmadd132sd\0" "vfnmadd132ss\0" + "vfnmadd213pd\0" "vfnmadd213ps\0" "vfnmadd213sd\0" "vfnmadd213ss\0" + "vfnmadd231pd\0" "vfnmadd231ps\0" "vfnmadd231sd\0" "vfnmadd231ss\0" + "vfnmaddpd\0" "vfnmaddps\0" "vfnmaddsd\0" "vfnmaddss\0" "vfnmsub132pd\0" + "vfnmsub132ps\0" "vfnmsub132sd\0" "vfnmsub132ss\0" "vfnmsub213pd\0" + "vfnmsub213ps\0" "vfnmsub213sd\0" "vfnmsub213ss\0" "vfnmsub231pd\0" + "vfnmsub231ps\0" "vfnmsub231sd\0" "vfnmsub231ss\0" "vfnmsubpd\0" + "vfnmsubps\0" "vfnmsubsd\0" "vfnmsubss\0" "vfrczpd\0" "vfrczps\0" "vfrczsd\0" + "vfrczss\0" "vgatherdpd\0" "vgatherdps\0" "vgatherqpd\0" "vgatherqps\0" + "vhaddpd\0" "vhaddps\0" "vhsubpd\0" "vhsubps\0" "vinsertf128\0" + "vinserti128\0" "vinsertps\0" "vlddqu\0" "vldmxcsr\0" "vmaskmovdqu\0" + "vmaskmovpd\0" "vmaskmovps\0" "vmaxpd\0" "vmaxps\0" "vmaxsd\0" "vmaxss\0" + "vminpd\0" "vminps\0" "vminsd\0" "vminss\0" "vmovapd\0" "vmovaps\0" "vmovd\0" + "vmovddup\0" "vmovdqa\0" "vmovdqu\0" "vmovhlps\0" "vmovhpd\0" "vmovhps\0" + "vmovlhps\0" "vmovlpd\0" "vmovlps\0" "vmovmskpd\0" "vmovmskps\0" "vmovntdq\0" + "vmovntdqa\0" "vmovntpd\0" "vmovntps\0" "vmovq\0" "vmovsd\0" "vmovshdup\0" + "vmovsldup\0" "vmovss\0" "vmovupd\0" "vmovups\0" "vmpsadbw\0" "vmulpd\0" + "vmulps\0" "vmulsd\0" "vmulss\0" "vorpd\0" "vorps\0" "vpabsb\0" "vpabsd\0" + "vpabsw\0" "vpackssdw\0" "vpacksswb\0" "vpackusdw\0" "vpackuswb\0" "vpaddb\0" + "vpaddd\0" "vpaddq\0" "vpaddsb\0" "vpaddsw\0" "vpaddusb\0" "vpaddusw\0" + "vpaddw\0" "vpalignr\0" "vpand\0" "vpandn\0" "vpavgb\0" "vpavgw\0" + "vpblendd\0" "vpblendvb\0" "vpblendw\0" "vpbroadcastb\0" "vpbroadcastd\0" + "vpbroadcastq\0" "vpbroadcastw\0" "vpclmulqdq\0" "vpcmov\0" "vpcmpeqb\0" + "vpcmpeqd\0" "vpcmpeqq\0" "vpcmpeqw\0" "vpcmpestri\0" "vpcmpestrm\0" + "vpcmpgtb\0" "vpcmpgtd\0" "vpcmpgtq\0" "vpcmpgtw\0" "vpcmpistri\0" + "vpcmpistrm\0" "vpcomb\0" "vpcomd\0" "vpcomq\0" "vpcomub\0" "vpcomud\0" + "vpcomuq\0" "vpcomuw\0" "vpcomw\0" "vperm2f128\0" "vperm2i128\0" "vpermd\0" + "vpermil2pd\0" "vpermil2ps\0" "vpermilpd\0" "vpermilps\0" "vpermpd\0" + "vpermps\0" "vpermq\0" "vpextrb\0" "vpextrd\0" "vpextrq\0" "vpextrw\0" + "vpgatherdd\0" "vpgatherdq\0" "vpgatherqd\0" "vpgatherqq\0" "vphaddbd\0" + "vphaddbq\0" "vphaddbw\0" "vphaddd\0" "vphadddq\0" "vphaddsw\0" "vphaddubd\0" + "vphaddubq\0" "vphaddubw\0" "vphaddudq\0" "vphadduwd\0" "vphadduwq\0" + "vphaddw\0" "vphaddwd\0" "vphaddwq\0" "vphminposuw\0" "vphsubbw\0" + "vphsubd\0" "vphsubdq\0" "vphsubsw\0" "vphsubw\0" "vphsubwd\0" "vpinsrb\0" + "vpinsrd\0" "vpinsrq\0" "vpinsrw\0" "vpmacsdd\0" "vpmacsdqh\0" "vpmacsdql\0" + "vpmacssdd\0" "vpmacssdqh\0" "vpmacssdql\0" "vpmacsswd\0" "vpmacssww\0" + "vpmacswd\0" "vpmacsww\0" "vpmadcsswd\0" "vpmadcswd\0" "vpmaddubsw\0" + "vpmaddwd\0" "vpmaskmovd\0" "vpmaskmovq\0" "vpmaxsb\0" "vpmaxsd\0" + "vpmaxsw\0" "vpmaxub\0" "vpmaxud\0" "vpmaxuw\0" "vpminsb\0" "vpminsd\0" + "vpminsw\0" "vpminub\0" "vpminud\0" "vpminuw\0" "vpmovmskb\0" "vpmovsxbd\0" + "vpmovsxbq\0" "vpmovsxbw\0" "vpmovsxdq\0" "vpmovsxwd\0" "vpmovsxwq\0" + "vpmovzxbd\0" "vpmovzxbq\0" "vpmovzxbw\0" "vpmovzxdq\0" "vpmovzxwd\0" + "vpmovzxwq\0" "vpmuldq\0" "vpmulhrsw\0" "vpmulhuw\0" "vpmulhw\0" "vpmulld\0" + "vpmullw\0" "vpmuludq\0" "vpor\0" "vpperm\0" "vprotb\0" "vprotd\0" "vprotq\0" + "vprotw\0" "vpsadbw\0" "vpshab\0" "vpshad\0" "vpshaq\0" "vpshaw\0" "vpshlb\0" + "vpshld\0" "vpshlq\0" "vpshlw\0" "vpshufb\0" "vpshufd\0" "vpshufhw\0" + "vpshuflw\0" "vpsignb\0" "vpsignd\0" "vpsignw\0" "vpslld\0" "vpslldq\0" + "vpsllq\0" "vpsllvd\0" "vpsllvq\0" "vpsllw\0" "vpsrad\0" "vpsravd\0" + "vpsraw\0" "vpsrld\0" "vpsrldq\0" "vpsrlq\0" "vpsrlvd\0" "vpsrlvq\0" + "vpsrlw\0" "vpsubb\0" "vpsubd\0" "vpsubq\0" "vpsubsb\0" "vpsubsw\0" + "vpsubusb\0" "vpsubusw\0" "vpsubw\0" "vptest\0" "vpunpckhbw\0" "vpunpckhdq\0" + "vpunpckhqdq\0" "vpunpckhwd\0" "vpunpcklbw\0" "vpunpckldq\0" "vpunpcklqdq\0" + "vpunpcklwd\0" "vpxor\0" "vrcpps\0" "vrcpss\0" "vroundpd\0" "vroundps\0" + "vroundsd\0" "vroundss\0" "vrsqrtps\0" "vrsqrtss\0" "vshufpd\0" "vshufps\0" + "vsqrtpd\0" "vsqrtps\0" "vsqrtsd\0" "vsqrtss\0" "vstmxcsr\0" "vsubpd\0" + "vsubps\0" "vsubsd\0" "vsubss\0" "vtestpd\0" "vtestps\0" "vucomisd\0" + "vucomiss\0" "vunpckhpd\0" "vunpckhps\0" "vunpcklpd\0" "vunpcklps\0" + "vxorpd\0" "vxorps\0" "vzeroall\0" "vzeroupper\0" "wrfsbase\0" "wrgsbase\0" + "xadd\0" "xgetbv\0" "xsaveopt\0" "xsaveopt64\0" "xsetbv"; +// ---------------------------------------------------------------------------- + +static const uint16_t _x86InstNameIndex[] = { + 0, 1, 5, 640, 3418, 3430, 3652, 3662, 3157, 3169, 10, 2391, 2399, 2411, 2419, + 2431, 2439, 1644, 4511, 2456, 2464, 2472, 2479, 15, 21, 29, 34, 40, 47, 2486, + 2495, 2504, 2514, 52, 60, 65, 71, 78, 83, 87, 91, 97, 100, 104, 108, 112, + 117, 122, 126, 130, 135, 139, 143, 151, 162, 166, 172, 497, 504, 179, 512, + 185, 191, 198, 204, 211, 218, 519, 527, 226, 536, 233, 240, 248, 255, 263, + 270, 277, 284, 291, 297, 303, 310, 317, 323, 329, 2580, 2587, 1902, 1915, + 1928, 1941, 2594, 2601, 333, 341, 352, 6267, 6276, 362, 368, 372, 2624, 2634, + 2644, 378, 2654, 387, 396, 2674, 2684, 405, 2704, 2714, 2724, 2734, 2744, + 2754, 2764, 414, 2775, 424, 2786, 2797, 434, 438, 443, 447, 2394, 659, 2808, + 2815, 2822, 2829, 2836, 2842, 627, 451, 2874, 4916, 457, 463, 1382, 468, 474, + 479, 485, 490, 496, 503, 511, 518, 526, 535, 543, 551, 558, 563, 569, 576, + 582, 589, 594, 602, 607, 613, 619, 626, 632, 638, 644, 650, 657, 663, 670, + 675, 681, 689, 695, 700, 706, 713, 719, 726, 730, 735, 741, 748, 755, 762, + 769, 776, 782, 1424, 787, 793, 800, 807, 812, 819, 826, 834, 841, 848, 854, + 861, 867, 875, 882, 888, 895, 900, 908, 914, 918, 924, 931, 936, 1486, 942, + 1492, 948, 955, 960, 966, 973, 981, 988, 996, 1002, 1007, 1012, 1020, 1030, + 1037, 1046, 1054, 1060, 3941, 3949, 3957, 3965, 658, 676, 1068, 3997, 1072, + 871, 1080, 1083, 1087, 1090, 1094, 1097, 1106, 1109, 1113, 1116, 1124, 1128, + 1133, 1137, 1142, 1146, 1150, 1154, 1159, 1163, 1168, 1172, 1176, 1180, 1184, + 1187, 1190, 1194, 1198, 1201, 1100, 1120, 1204, 4007, 4014, 1209, 1213, 1219, + 1672, 1683, 1694, 1705, 1226, 4023, 5362, 4057, 4064, 5381, 4078, 1232, 4085, + 4092, 5429, 4106, 1239, 4624, 1247, 4113, 4121, 505, 5355, 4135, 1255, 4144, + 4027, 4160, 4169, 4177, 4185, 4194, 4202, 4210, 4220, 4230, 4239, 1263, 4249, + 4258, 1270, 1277, 1285, 5366, 1293, 1716, 1727, 1738, 1749, 4273, 4280, 4290, + 4300, 1301, 1307, 4307, 4315, 1314, 4323, 677, 4332, 4339, 4346, 4353, 1320, + 1325, 1331, 808, 1335, 1017, 6325, 6332, 4372, 4379, 4386, 4393, 4403, 4413, + 4423, 4433, 4440, 4447, 4454, 4462, 4470, 4479, 4488, 4495, 4504, 4510, 1339, + 4517, 1345, 4524, 4540, 4550, 4611, 4629, 4638, 4647, 4656, 4665, 4676, 4687, + 4696, 4705, 4714, 4723, 4734, 1353, 1358, 4899, 4907, 4915, 4923, 1363, 1369, + 1375, 1381, 1387, 1395, 1403, 1411, 1417, 1423, 1429, 1436, 1444, 1450, 1459, + 1468, 1477, 1485, 1491, 5002, 5019, 5088, 5114, 5135, 5152, 5161, 1498, 1504, + 5178, 5186, 5194, 5202, 5330, 5341, 5372, 5380, 5388, 5396, 5404, 5412, 5420, + 5428, 5436, 5444, 5452, 5460, 5468, 5478, 5488, 5498, 5508, 5518, 5528, 5538, + 5548, 5558, 5568, 5578, 5588, 5598, 5606, 1510, 5616, 5625, 5633, 5641, 5649, + 1518, 1522, 1527, 1534, 5658, 1539, 1548, 1562, 1572, 4324, 5762, 5770, 5778, + 5787, 1584, 5796, 5804, 5812, 5820, 5827, 5835, 5858, 5865, 5880, 5887, 5894, + 5902, 5925, 5932, 5939, 5946, 5953, 5961, 5969, 5978, 5987, 1591, 5994, 6001, + 6012, 6023, 6035, 6046, 6057, 6068, 6080, 1598, 1603, 1609, 6091, 1615, 6097, + 6104, 1619, 1623, 1632, 1641, 1648, 1655, 1661, 1668, 1679, 1690, 1701, 1712, + 1723, 1734, 1745, 1756, 1767, 1778, 1789, 1800, 1812, 1824, 1836, 1848, 1860, + 1872, 1884, 1896, 1909, 1922, 1935, 1948, 1961, 1974, 1987, 2000, 2004, 2008, + 2012, 6111, 6120, 6129, 6138, 6147, 6156, 2017, 2022, 2026, 2030, 2035, 1954, + 1967, 1980, 1993, 2039, 2044, 2050, 2055, 2061, 2066, 2071, 2076, 2082, 2087, + 2093, 2099, 2106, 2112, 2119, 2125, 2131, 2137, 2144, 2150, 2157, 2163, 2169, + 2175, 2181, 2186, 2191, 2197, 2203, 2208, 2213, 2220, 2229, 2238, 2248, 2258, + 2269, 2280, 2292, 5742, 2296, 2301, 2305, 2310, 6165, 6173, 6181, 6148, 6197, + 6157, 2315, 4580, 6213, 1760, 1771, 1782, 1793, 715, 3160, 3172, 3848, 3858, + 2319, 5995, 2326, 2332, 6266, 6275, 2338, 6284, 6294, 6304, 6314, 2342, 2349, + 2356, 2363, 2370, 2380, 2390, 2398, 2410, 2418, 2430, 2438, 2455, 2463, 2471, + 2478, 2485, 2494, 2503, 2513, 2523, 2538, 2553, 2566, 2579, 2586, 2593, 2600, + 2607, 2615, 2623, 2633, 2643, 2653, 2663, 2673, 2683, 2693, 2703, 2713, 2723, + 2733, 2743, 2753, 2763, 2774, 2785, 2796, 2807, 2814, 2821, 2828, 2835, 2841, + 2847, 2860, 2873, 2884, 2896, 2908, 2920, 2932, 2944, 2956, 2968, 2980, 2992, + 3004, 3016, 3028, 3037, 3046, 3055, 3064, 3079, 3094, 3109, 3124, 3139, 3154, + 3166, 3178, 3190, 3202, 3214, 3226, 3238, 3250, 3262, 3274, 3286, 3298, 3310, + 3322, 3337, 3352, 3367, 3382, 3397, 3412, 3424, 3436, 3445, 3454, 3463, 3472, + 3485, 3498, 3511, 3524, 3537, 3550, 3563, 3576, 3589, 3602, 3615, 3628, 3638, + 3648, 3658, 3668, 3681, 3694, 3707, 3720, 3733, 3746, 3759, 3772, 3785, 3798, + 3811, 3824, 3834, 3844, 3854, 3864, 3872, 3880, 3888, 3896, 3907, 3918, 3929, + 3940, 3948, 3956, 3964, 3972, 3984, 3996, 4006, 4013, 4022, 4034, 4045, 4056, + 4063, 4070, 4077, 4084, 4091, 4098, 4105, 4112, 4120, 4128, 4134, 4143, 4151, + 4159, 4168, 4176, 4184, 4193, 4201, 4209, 4219, 4229, 4238, 4248, 4257, 4266, + 4272, 4279, 4289, 4299, 4306, 4314, 4322, 4331, 4338, 4345, 4352, 4359, 4365, + 4371, 4378, 4385, 4392, 4402, 4412, 4422, 4432, 4439, 4446, 4453, 4461, 4469, + 4478, 4487, 4494, 4503, 4509, 4516, 4523, 4530, 4539, 4549, 4558, 4571, 4584, + 4597, 4610, 4621, 4628, 4637, 4646, 4655, 4664, 4675, 4686, 4695, 4704, 4713, + 4722, 4733, 4744, 4751, 4758, 4765, 4773, 4781, 4789, 4797, 4804, 4815, 4826, + 4833, 4844, 4855, 4865, 4875, 4883, 4891, 4898, 4906, 4914, 4922, 4930, 4941, + 4952, 4963, 4974, 4983, 4992, 5001, 5009, 5018, 5027, 5037, 5047, 5057, 5067, + 5077, 5087, 5095, 5104, 5113, 5125, 5134, 5142, 5151, 5160, 5168, 5177, 5185, + 5193, 5201, 5209, 5218, 5228, 5238, 5248, 5259, 5270, 5280, 5290, 5299, 5308, + 5319, 5329, 5340, 5349, 5360, 5371, 5379, 5387, 5395, 5403, 5411, 5419, 5427, + 5435, 5443, 5451, 5459, 5467, 5477, 5487, 5497, 5507, 5517, 5527, 5537, 5547, + 5557, 5567, 5577, 5587, 5597, 5605, 5615, 5624, 5632, 5640, 5648, 5657, 5662, + 5669, 5676, 5683, 5690, 5697, 5705, 5712, 5719, 5726, 5733, 5740, 5747, 5754, + 5761, 5769, 5777, 5786, 5795, 5803, 5811, 5819, 5826, 5834, 5841, 5849, 5857, + 5864, 5871, 5879, 5886, 5893, 5901, 5908, 5916, 5924, 5931, 5938, 5945, 5952, + 5960, 5968, 5977, 5986, 5993, 6000, 6011, 6022, 6034, 6045, 6056, 6067, 6079, + 6090, 6096, 6103, 6110, 6119, 6128, 6137, 6146, 6155, 6164, 6172, 6180, 6188, + 6196, 6204, 6212, 6221, 6228, 6235, 6242, 6249, 6257, 6265, 6274, 6283, 6293, + 6303, 6313, 6323, 6330, 6337, 6346, 6357, 6366, 6375, 336, 6380, 6092, 6324, + 6331, 1013, 1021, 1031, 1038, 6387, 6396, 6407 +}; -// Automatically generated, do not edit. enum X86InstAlphaIndex { kX86InstAlphaIndexFirst = 'a', kX86InstAlphaIndexLast = 'z', kX86InstAlphaIndexInvalid = 0xFFFF }; -// Automatically generated, do not edit. static const uint16_t _x86InstAlphaIndex[26] = { kX86InstIdAdc, kX86InstIdBextr, @@ -953,7 +393,7 @@ static const uint16_t _x86InstAlphaIndex[26] = { 0xFFFF, kX86InstIdRcl, kX86InstIdSahf, - kX86InstIdTest, + kX86InstIdT1mskc, kX86InstIdUcomisd, kX86InstIdVaddpd, kX86InstIdWrfsbase, @@ -961,1128 +401,69 @@ static const uint16_t _x86InstAlphaIndex[26] = { 0xFFFF, 0xFFFF }; - -// Automatically generated, do not edit. -enum X86InstData_NameIndex { - kInstIdNone_NameIndex = 0, - kX86InstIdAdc_NameIndex = 1, - kX86InstIdAdd_NameIndex = 574, - kX86InstIdAddpd_NameIndex = 3220, - kX86InstIdAddps_NameIndex = 3232, - kX86InstIdAddsd_NameIndex = 3454, - kX86InstIdAddss_NameIndex = 3464, - kX86InstIdAddsubpd_NameIndex = 2959, - kX86InstIdAddsubps_NameIndex = 2971, - kX86InstIdAesdec_NameIndex = 2193, - kX86InstIdAesdeclast_NameIndex = 2201, - kX86InstIdAesenc_NameIndex = 2213, - kX86InstIdAesenclast_NameIndex = 2221, - kX86InstIdAesimc_NameIndex = 2233, - kX86InstIdAeskeygenassist_NameIndex = 2241, - kX86InstIdAnd_NameIndex = 1538, - kX86InstIdAndn_NameIndex = 4313, - kX86InstIdAndnpd_NameIndex = 2258, - kX86InstIdAndnps_NameIndex = 2266, - kX86InstIdAndpd_NameIndex = 2274, - kX86InstIdAndps_NameIndex = 2281, - kX86InstIdBextr_NameIndex = 5, - kX86InstIdBlendpd_NameIndex = 2288, - kX86InstIdBlendps_NameIndex = 2297, - kX86InstIdBlendvpd_NameIndex = 2306, - kX86InstIdBlendvps_NameIndex = 2316, - kX86InstIdBlsi_NameIndex = 11, - kX86InstIdBlsmsk_NameIndex = 16, - kX86InstIdBlsr_NameIndex = 23, - kX86InstIdBsf_NameIndex = 28, - kX86InstIdBsr_NameIndex = 32, - kX86InstIdBswap_NameIndex = 36, - kX86InstIdBt_NameIndex = 42, - kX86InstIdBtc_NameIndex = 45, - kX86InstIdBtr_NameIndex = 49, - kX86InstIdBts_NameIndex = 53, - kX86InstIdBzhi_NameIndex = 57, - kX86InstIdCall_NameIndex = 62, - kX86InstIdCbw_NameIndex = 67, - kX86InstIdCdq_NameIndex = 71, - kX86InstIdCdqe_NameIndex = 75, - kX86InstIdClc_NameIndex = 80, - kX86InstIdCld_NameIndex = 84, - kX86InstIdClflush_NameIndex = 88, - kX86InstIdCmc_NameIndex = 96, - kX86InstIdCmova_NameIndex = 100, - kX86InstIdCmovae_NameIndex = 106, - kX86InstIdCmovb_NameIndex = 431, - kX86InstIdCmovbe_NameIndex = 438, - kX86InstIdCmovc_NameIndex = 113, - kX86InstIdCmove_NameIndex = 446, - kX86InstIdCmovg_NameIndex = 119, - kX86InstIdCmovge_NameIndex = 125, - kX86InstIdCmovl_NameIndex = 132, - kX86InstIdCmovle_NameIndex = 138, - kX86InstIdCmovna_NameIndex = 145, - kX86InstIdCmovnae_NameIndex = 152, - kX86InstIdCmovnb_NameIndex = 453, - kX86InstIdCmovnbe_NameIndex = 461, - kX86InstIdCmovnc_NameIndex = 160, - kX86InstIdCmovne_NameIndex = 470, - kX86InstIdCmovng_NameIndex = 167, - kX86InstIdCmovnge_NameIndex = 174, - kX86InstIdCmovnl_NameIndex = 182, - kX86InstIdCmovnle_NameIndex = 189, - kX86InstIdCmovno_NameIndex = 197, - kX86InstIdCmovnp_NameIndex = 204, - kX86InstIdCmovns_NameIndex = 211, - kX86InstIdCmovnz_NameIndex = 218, - kX86InstIdCmovo_NameIndex = 225, - kX86InstIdCmovp_NameIndex = 231, - kX86InstIdCmovpe_NameIndex = 237, - kX86InstIdCmovpo_NameIndex = 244, - kX86InstIdCmovs_NameIndex = 251, - kX86InstIdCmovz_NameIndex = 257, - kX86InstIdCmp_NameIndex = 263, - kX86InstIdCmppd_NameIndex = 2382, - kX86InstIdCmpps_NameIndex = 2389, - kX86InstIdCmpsB_NameIndex = 1789, - kX86InstIdCmpsD_NameIndex = 1802, - kX86InstIdCmpsQ_NameIndex = 1815, - kX86InstIdCmpsW_NameIndex = 1828, - kX86InstIdCmpsd_NameIndex = 2396, - kX86InstIdCmpss_NameIndex = 2403, - kX86InstIdCmpxchg_NameIndex = 267, - kX86InstIdCmpxchg16b_NameIndex = 275, - kX86InstIdCmpxchg8b_NameIndex = 286, - kX86InstIdComisd_NameIndex = 6069, - kX86InstIdComiss_NameIndex = 6078, - kX86InstIdCpuid_NameIndex = 296, - kX86InstIdCqo_NameIndex = 302, - kX86InstIdCrc32_NameIndex = 306, - kX86InstIdCvtdq2pd_NameIndex = 2426, - kX86InstIdCvtdq2ps_NameIndex = 2436, - kX86InstIdCvtpd2dq_NameIndex = 2446, - kX86InstIdCvtpd2pi_NameIndex = 312, - kX86InstIdCvtpd2ps_NameIndex = 2456, - kX86InstIdCvtpi2pd_NameIndex = 321, - kX86InstIdCvtpi2ps_NameIndex = 330, - kX86InstIdCvtps2dq_NameIndex = 2476, - kX86InstIdCvtps2pd_NameIndex = 2486, - kX86InstIdCvtps2pi_NameIndex = 339, - kX86InstIdCvtsd2si_NameIndex = 2506, - kX86InstIdCvtsd2ss_NameIndex = 2516, - kX86InstIdCvtsi2sd_NameIndex = 2526, - kX86InstIdCvtsi2ss_NameIndex = 2536, - kX86InstIdCvtss2sd_NameIndex = 2546, - kX86InstIdCvtss2si_NameIndex = 2556, - kX86InstIdCvttpd2dq_NameIndex = 2566, - kX86InstIdCvttpd2pi_NameIndex = 348, - kX86InstIdCvttps2dq_NameIndex = 2577, - kX86InstIdCvttps2pi_NameIndex = 358, - kX86InstIdCvttsd2si_NameIndex = 2588, - kX86InstIdCvttss2si_NameIndex = 2599, - kX86InstIdCwd_NameIndex = 368, - kX86InstIdCwde_NameIndex = 372, - kX86InstIdDaa_NameIndex = 377, - kX86InstIdDas_NameIndex = 381, - kX86InstIdDec_NameIndex = 2196, - kX86InstIdDiv_NameIndex = 593, - kX86InstIdDivpd_NameIndex = 2610, - kX86InstIdDivps_NameIndex = 2617, - kX86InstIdDivsd_NameIndex = 2624, - kX86InstIdDivss_NameIndex = 2631, - kX86InstIdDppd_NameIndex = 2638, - kX86InstIdDpps_NameIndex = 2644, - kX86InstIdEmms_NameIndex = 561, - kX86InstIdEnter_NameIndex = 385, - kX86InstIdExtractps_NameIndex = 2676, - kX86InstIdExtrq_NameIndex = 4718, - kX86InstIdF2xm1_NameIndex = 391, - kX86InstIdFabs_NameIndex = 397, - kX86InstIdFadd_NameIndex = 1289, - kX86InstIdFaddp_NameIndex = 402, - kX86InstIdFbld_NameIndex = 408, - kX86InstIdFbstp_NameIndex = 413, - kX86InstIdFchs_NameIndex = 419, - kX86InstIdFclex_NameIndex = 424, - kX86InstIdFcmovb_NameIndex = 430, - kX86InstIdFcmovbe_NameIndex = 437, - kX86InstIdFcmove_NameIndex = 445, - kX86InstIdFcmovnb_NameIndex = 452, - kX86InstIdFcmovnbe_NameIndex = 460, - kX86InstIdFcmovne_NameIndex = 469, - kX86InstIdFcmovnu_NameIndex = 477, - kX86InstIdFcmovu_NameIndex = 485, - kX86InstIdFcom_NameIndex = 492, - kX86InstIdFcomi_NameIndex = 497, - kX86InstIdFcomip_NameIndex = 503, - kX86InstIdFcomp_NameIndex = 510, - kX86InstIdFcompp_NameIndex = 516, - kX86InstIdFcos_NameIndex = 523, - kX86InstIdFdecstp_NameIndex = 528, - kX86InstIdFdiv_NameIndex = 536, - kX86InstIdFdivp_NameIndex = 541, - kX86InstIdFdivr_NameIndex = 547, - kX86InstIdFdivrp_NameIndex = 553, - kX86InstIdFemms_NameIndex = 560, - kX86InstIdFfree_NameIndex = 566, - kX86InstIdFiadd_NameIndex = 572, - kX86InstIdFicom_NameIndex = 578, - kX86InstIdFicomp_NameIndex = 584, - kX86InstIdFidiv_NameIndex = 591, - kX86InstIdFidivr_NameIndex = 597, - kX86InstIdFild_NameIndex = 604, - kX86InstIdFimul_NameIndex = 609, - kX86InstIdFincstp_NameIndex = 615, - kX86InstIdFinit_NameIndex = 623, - kX86InstIdFist_NameIndex = 629, - kX86InstIdFistp_NameIndex = 634, - kX86InstIdFisttp_NameIndex = 640, - kX86InstIdFisub_NameIndex = 647, - kX86InstIdFisubr_NameIndex = 653, - kX86InstIdFld_NameIndex = 660, - kX86InstIdFld1_NameIndex = 664, - kX86InstIdFldcw_NameIndex = 669, - kX86InstIdFldenv_NameIndex = 675, - kX86InstIdFldl2e_NameIndex = 682, - kX86InstIdFldl2t_NameIndex = 689, - kX86InstIdFldlg2_NameIndex = 696, - kX86InstIdFldln2_NameIndex = 703, - kX86InstIdFldpi_NameIndex = 710, - kX86InstIdFldz_NameIndex = 716, - kX86InstIdFmul_NameIndex = 1331, - kX86InstIdFmulp_NameIndex = 721, - kX86InstIdFnclex_NameIndex = 727, - kX86InstIdFninit_NameIndex = 734, - kX86InstIdFnop_NameIndex = 741, - kX86InstIdFnsave_NameIndex = 746, - kX86InstIdFnstcw_NameIndex = 753, - kX86InstIdFnstenv_NameIndex = 760, - kX86InstIdFnstsw_NameIndex = 768, - kX86InstIdFpatan_NameIndex = 775, - kX86InstIdFprem_NameIndex = 782, - kX86InstIdFprem1_NameIndex = 788, - kX86InstIdFptan_NameIndex = 795, - kX86InstIdFrndint_NameIndex = 801, - kX86InstIdFrstor_NameIndex = 809, - kX86InstIdFsave_NameIndex = 816, - kX86InstIdFscale_NameIndex = 822, - kX86InstIdFsin_NameIndex = 829, - kX86InstIdFsincos_NameIndex = 834, - kX86InstIdFsqrt_NameIndex = 842, - kX86InstIdFst_NameIndex = 848, - kX86InstIdFstcw_NameIndex = 852, - kX86InstIdFstenv_NameIndex = 858, - kX86InstIdFstp_NameIndex = 865, - kX86InstIdFstsw_NameIndex = 870, - kX86InstIdFsub_NameIndex = 1393, - kX86InstIdFsubp_NameIndex = 876, - kX86InstIdFsubr_NameIndex = 1399, - kX86InstIdFsubrp_NameIndex = 882, - kX86InstIdFtst_NameIndex = 889, - kX86InstIdFucom_NameIndex = 894, - kX86InstIdFucomi_NameIndex = 900, - kX86InstIdFucomip_NameIndex = 907, - kX86InstIdFucomp_NameIndex = 915, - kX86InstIdFucompp_NameIndex = 922, - kX86InstIdFwait_NameIndex = 930, - kX86InstIdFxam_NameIndex = 936, - kX86InstIdFxch_NameIndex = 941, - kX86InstIdFxrstor_NameIndex = 946, - kX86InstIdFxsave_NameIndex = 954, - kX86InstIdFxtract_NameIndex = 961, - kX86InstIdFyl2x_NameIndex = 969, - kX86InstIdFyl2xp1_NameIndex = 975, - kX86InstIdHaddpd_NameIndex = 3743, - kX86InstIdHaddps_NameIndex = 3751, - kX86InstIdHsubpd_NameIndex = 3759, - kX86InstIdHsubps_NameIndex = 3767, - kX86InstIdIdiv_NameIndex = 592, - kX86InstIdImul_NameIndex = 610, - kX86InstIdInc_NameIndex = 983, - kX86InstIdInsertps_NameIndex = 3799, - kX86InstIdInsertq_NameIndex = 987, - kX86InstIdInt_NameIndex = 805, - kX86InstIdJa_NameIndex = 995, - kX86InstIdJae_NameIndex = 998, - kX86InstIdJb_NameIndex = 1002, - kX86InstIdJbe_NameIndex = 1005, - kX86InstIdJc_NameIndex = 1009, - kX86InstIdJe_NameIndex = 1012, - kX86InstIdJg_NameIndex = 1021, - kX86InstIdJge_NameIndex = 1024, - kX86InstIdJl_NameIndex = 1028, - kX86InstIdJle_NameIndex = 1031, - kX86InstIdJna_NameIndex = 1039, - kX86InstIdJnae_NameIndex = 1043, - kX86InstIdJnb_NameIndex = 1048, - kX86InstIdJnbe_NameIndex = 1052, - kX86InstIdJnc_NameIndex = 1057, - kX86InstIdJne_NameIndex = 1061, - kX86InstIdJng_NameIndex = 1065, - kX86InstIdJnge_NameIndex = 1069, - kX86InstIdJnl_NameIndex = 1074, - kX86InstIdJnle_NameIndex = 1078, - kX86InstIdJno_NameIndex = 1083, - kX86InstIdJnp_NameIndex = 1087, - kX86InstIdJns_NameIndex = 1091, - kX86InstIdJnz_NameIndex = 1095, - kX86InstIdJo_NameIndex = 1099, - kX86InstIdJp_NameIndex = 1102, - kX86InstIdJpe_NameIndex = 1105, - kX86InstIdJpo_NameIndex = 1109, - kX86InstIdJs_NameIndex = 1113, - kX86InstIdJz_NameIndex = 1116, - kX86InstIdJecxz_NameIndex = 1015, - kX86InstIdJmp_NameIndex = 1035, - kX86InstIdLahf_NameIndex = 1119, - kX86InstIdLddqu_NameIndex = 3809, - kX86InstIdLdmxcsr_NameIndex = 3816, - kX86InstIdLea_NameIndex = 1124, - kX86InstIdLeave_NameIndex = 1128, - kX86InstIdLfence_NameIndex = 1134, - kX86InstIdLodsB_NameIndex = 1559, - kX86InstIdLodsD_NameIndex = 1570, - kX86InstIdLodsQ_NameIndex = 1581, - kX86InstIdLodsW_NameIndex = 1592, - kX86InstIdLzcnt_NameIndex = 1141, - kX86InstIdMaskmovdqu_NameIndex = 3825, - kX86InstIdMaskmovq_NameIndex = 5164, - kX86InstIdMaxpd_NameIndex = 3859, - kX86InstIdMaxps_NameIndex = 3866, - kX86InstIdMaxsd_NameIndex = 5183, - kX86InstIdMaxss_NameIndex = 3880, - kX86InstIdMfence_NameIndex = 1147, - kX86InstIdMinpd_NameIndex = 3887, - kX86InstIdMinps_NameIndex = 3894, - kX86InstIdMinsd_NameIndex = 5231, - kX86InstIdMinss_NameIndex = 3908, - kX86InstIdMonitor_NameIndex = 1154, - kX86InstIdMov_NameIndex = 4426, - kX86InstIdMovPtr_NameIndex = 1162, - kX86InstIdMovapd_NameIndex = 3915, - kX86InstIdMovaps_NameIndex = 3923, - kX86InstIdMovbe_NameIndex = 439, - kX86InstIdMovd_NameIndex = 5157, - kX86InstIdMovddup_NameIndex = 3937, - kX86InstIdMovdq2q_NameIndex = 1170, - kX86InstIdMovdqa_NameIndex = 3946, - kX86InstIdMovdqu_NameIndex = 3829, - kX86InstIdMovhlps_NameIndex = 3962, - kX86InstIdMovhpd_NameIndex = 3971, - kX86InstIdMovhps_NameIndex = 3979, - kX86InstIdMovlhps_NameIndex = 3987, - kX86InstIdMovlpd_NameIndex = 3996, - kX86InstIdMovlps_NameIndex = 4004, - kX86InstIdMovmskpd_NameIndex = 4012, - kX86InstIdMovmskps_NameIndex = 4022, - kX86InstIdMovntdq_NameIndex = 4032, - kX86InstIdMovntdqa_NameIndex = 4041, - kX86InstIdMovnti_NameIndex = 1178, - kX86InstIdMovntpd_NameIndex = 4051, - kX86InstIdMovntps_NameIndex = 4060, - kX86InstIdMovntq_NameIndex = 1185, - kX86InstIdMovntsd_NameIndex = 1192, - kX86InstIdMovntss_NameIndex = 1200, - kX86InstIdMovq_NameIndex = 5168, - kX86InstIdMovq2dq_NameIndex = 1208, - kX86InstIdMovsB_NameIndex = 1603, - kX86InstIdMovsD_NameIndex = 1614, - kX86InstIdMovsQ_NameIndex = 1625, - kX86InstIdMovsW_NameIndex = 1636, - kX86InstIdMovsd_NameIndex = 4075, - kX86InstIdMovshdup_NameIndex = 4082, - kX86InstIdMovsldup_NameIndex = 4092, - kX86InstIdMovss_NameIndex = 4102, - kX86InstIdMovsx_NameIndex = 1216, - kX86InstIdMovsxd_NameIndex = 1222, - kX86InstIdMovupd_NameIndex = 4109, - kX86InstIdMovups_NameIndex = 4117, - kX86InstIdMovzx_NameIndex = 1229, - kX86InstIdMpsadbw_NameIndex = 4125, - kX86InstIdMul_NameIndex = 611, - kX86InstIdMulpd_NameIndex = 4134, - kX86InstIdMulps_NameIndex = 4141, - kX86InstIdMulsd_NameIndex = 4148, - kX86InstIdMulss_NameIndex = 4155, - kX86InstIdMulx_NameIndex = 1235, - kX86InstIdMwait_NameIndex = 1240, - kX86InstIdNeg_NameIndex = 1246, - kX86InstIdNop_NameIndex = 742, - kX86InstIdNot_NameIndex = 1250, - kX86InstIdOr_NameIndex = 951, - kX86InstIdOrpd_NameIndex = 6127, - kX86InstIdOrps_NameIndex = 6134, - kX86InstIdPabsb_NameIndex = 4174, - kX86InstIdPabsd_NameIndex = 4181, - kX86InstIdPabsw_NameIndex = 4188, - kX86InstIdPackssdw_NameIndex = 4195, - kX86InstIdPacksswb_NameIndex = 4205, - kX86InstIdPackusdw_NameIndex = 4215, - kX86InstIdPackuswb_NameIndex = 4225, - kX86InstIdPaddb_NameIndex = 4235, - kX86InstIdPaddd_NameIndex = 4242, - kX86InstIdPaddq_NameIndex = 4249, - kX86InstIdPaddsb_NameIndex = 4256, - kX86InstIdPaddsw_NameIndex = 4264, - kX86InstIdPaddusb_NameIndex = 4272, - kX86InstIdPaddusw_NameIndex = 4281, - kX86InstIdPaddw_NameIndex = 4290, - kX86InstIdPalignr_NameIndex = 4297, - kX86InstIdPand_NameIndex = 4306, - kX86InstIdPandn_NameIndex = 4312, - kX86InstIdPause_NameIndex = 1254, - kX86InstIdPavgb_NameIndex = 4319, - kX86InstIdPavgw_NameIndex = 4326, - kX86InstIdPblendvb_NameIndex = 4342, - kX86InstIdPblendw_NameIndex = 4352, - kX86InstIdPclmulqdq_NameIndex = 4413, - kX86InstIdPcmpeqb_NameIndex = 4431, - kX86InstIdPcmpeqd_NameIndex = 4440, - kX86InstIdPcmpeqq_NameIndex = 4449, - kX86InstIdPcmpeqw_NameIndex = 4458, - kX86InstIdPcmpestri_NameIndex = 4467, - kX86InstIdPcmpestrm_NameIndex = 4478, - kX86InstIdPcmpgtb_NameIndex = 4489, - kX86InstIdPcmpgtd_NameIndex = 4498, - kX86InstIdPcmpgtq_NameIndex = 4507, - kX86InstIdPcmpgtw_NameIndex = 4516, - kX86InstIdPcmpistri_NameIndex = 4525, - kX86InstIdPcmpistrm_NameIndex = 4536, - kX86InstIdPdep_NameIndex = 1260, - kX86InstIdPext_NameIndex = 1265, - kX86InstIdPextrb_NameIndex = 4701, - kX86InstIdPextrd_NameIndex = 4709, - kX86InstIdPextrq_NameIndex = 4717, - kX86InstIdPextrw_NameIndex = 4725, - kX86InstIdPf2id_NameIndex = 1270, - kX86InstIdPf2iw_NameIndex = 1276, - kX86InstIdPfacc_NameIndex = 1282, - kX86InstIdPfadd_NameIndex = 1288, - kX86InstIdPfcmpeq_NameIndex = 1294, - kX86InstIdPfcmpge_NameIndex = 1302, - kX86InstIdPfcmpgt_NameIndex = 1310, - kX86InstIdPfmax_NameIndex = 1318, - kX86InstIdPfmin_NameIndex = 1324, - kX86InstIdPfmul_NameIndex = 1330, - kX86InstIdPfnacc_NameIndex = 1336, - kX86InstIdPfpnacc_NameIndex = 1343, - kX86InstIdPfrcp_NameIndex = 1351, - kX86InstIdPfrcpit1_NameIndex = 1357, - kX86InstIdPfrcpit2_NameIndex = 1366, - kX86InstIdPfrsqit1_NameIndex = 1375, - kX86InstIdPfrsqrt_NameIndex = 1384, - kX86InstIdPfsub_NameIndex = 1392, - kX86InstIdPfsubr_NameIndex = 1398, - kX86InstIdPhaddd_NameIndex = 4804, - kX86InstIdPhaddsw_NameIndex = 4821, - kX86InstIdPhaddw_NameIndex = 4890, - kX86InstIdPhminposuw_NameIndex = 4916, - kX86InstIdPhsubd_NameIndex = 4937, - kX86InstIdPhsubsw_NameIndex = 4954, - kX86InstIdPhsubw_NameIndex = 4963, - kX86InstIdPi2fd_NameIndex = 1405, - kX86InstIdPi2fw_NameIndex = 1411, - kX86InstIdPinsrb_NameIndex = 4980, - kX86InstIdPinsrd_NameIndex = 4988, - kX86InstIdPinsrq_NameIndex = 4996, - kX86InstIdPinsrw_NameIndex = 5004, - kX86InstIdPmaddubsw_NameIndex = 5132, - kX86InstIdPmaddwd_NameIndex = 5143, - kX86InstIdPmaxsb_NameIndex = 5174, - kX86InstIdPmaxsd_NameIndex = 5182, - kX86InstIdPmaxsw_NameIndex = 5190, - kX86InstIdPmaxub_NameIndex = 5198, - kX86InstIdPmaxud_NameIndex = 5206, - kX86InstIdPmaxuw_NameIndex = 5214, - kX86InstIdPminsb_NameIndex = 5222, - kX86InstIdPminsd_NameIndex = 5230, - kX86InstIdPminsw_NameIndex = 5238, - kX86InstIdPminub_NameIndex = 5246, - kX86InstIdPminud_NameIndex = 5254, - kX86InstIdPminuw_NameIndex = 5262, - kX86InstIdPmovmskb_NameIndex = 5270, - kX86InstIdPmovsxbd_NameIndex = 5280, - kX86InstIdPmovsxbq_NameIndex = 5290, - kX86InstIdPmovsxbw_NameIndex = 5300, - kX86InstIdPmovsxdq_NameIndex = 5310, - kX86InstIdPmovsxwd_NameIndex = 5320, - kX86InstIdPmovsxwq_NameIndex = 5330, - kX86InstIdPmovzxbd_NameIndex = 5340, - kX86InstIdPmovzxbq_NameIndex = 5350, - kX86InstIdPmovzxbw_NameIndex = 5360, - kX86InstIdPmovzxdq_NameIndex = 5370, - kX86InstIdPmovzxwd_NameIndex = 5380, - kX86InstIdPmovzxwq_NameIndex = 5390, - kX86InstIdPmuldq_NameIndex = 5400, - kX86InstIdPmulhrsw_NameIndex = 5408, - kX86InstIdPmulhuw_NameIndex = 5418, - kX86InstIdPmulhw_NameIndex = 5427, - kX86InstIdPmulld_NameIndex = 5435, - kX86InstIdPmullw_NameIndex = 5443, - kX86InstIdPmuludq_NameIndex = 5451, - kX86InstIdPop_NameIndex = 1417, - kX86InstIdPopa_NameIndex = 1421, - kX86InstIdPopcnt_NameIndex = 1426, - kX86InstIdPopf_NameIndex = 1433, - kX86InstIdPor_NameIndex = 5460, - kX86InstIdPrefetch_NameIndex = 1438, - kX86InstIdPrefetch3dNow_NameIndex = 1447, - kX86InstIdPrefetchw3dNow_NameIndex = 1462, - kX86InstIdPsadbw_NameIndex = 4126, - kX86InstIdPshufb_NameIndex = 5564, - kX86InstIdPshufd_NameIndex = 5572, - kX86InstIdPshufhw_NameIndex = 5580, - kX86InstIdPshuflw_NameIndex = 5589, - kX86InstIdPshufw_NameIndex = 1478, - kX86InstIdPsignb_NameIndex = 5598, - kX86InstIdPsignd_NameIndex = 5606, - kX86InstIdPsignw_NameIndex = 5614, - kX86InstIdPslld_NameIndex = 5622, - kX86InstIdPslldq_NameIndex = 5629, - kX86InstIdPsllq_NameIndex = 5637, - kX86InstIdPsllw_NameIndex = 5660, - kX86InstIdPsrad_NameIndex = 5667, - kX86InstIdPsraw_NameIndex = 5682, - kX86InstIdPsrld_NameIndex = 5689, - kX86InstIdPsrldq_NameIndex = 5696, - kX86InstIdPsrlq_NameIndex = 5704, - kX86InstIdPsrlw_NameIndex = 5727, - kX86InstIdPsubb_NameIndex = 5734, - kX86InstIdPsubd_NameIndex = 5741, - kX86InstIdPsubq_NameIndex = 5748, - kX86InstIdPsubsb_NameIndex = 5755, - kX86InstIdPsubsw_NameIndex = 5763, - kX86InstIdPsubusb_NameIndex = 5771, - kX86InstIdPsubusw_NameIndex = 5780, - kX86InstIdPsubw_NameIndex = 5789, - kX86InstIdPswapd_NameIndex = 1485, - kX86InstIdPtest_NameIndex = 5796, - kX86InstIdPunpckhbw_NameIndex = 5803, - kX86InstIdPunpckhdq_NameIndex = 5814, - kX86InstIdPunpckhqdq_NameIndex = 5825, - kX86InstIdPunpckhwd_NameIndex = 5837, - kX86InstIdPunpcklbw_NameIndex = 5848, - kX86InstIdPunpckldq_NameIndex = 5859, - kX86InstIdPunpcklqdq_NameIndex = 5870, - kX86InstIdPunpcklwd_NameIndex = 5882, - kX86InstIdPush_NameIndex = 1492, - kX86InstIdPusha_NameIndex = 1497, - kX86InstIdPushf_NameIndex = 1503, - kX86InstIdPxor_NameIndex = 5893, - kX86InstIdRcl_NameIndex = 1509, - kX86InstIdRcpps_NameIndex = 5899, - kX86InstIdRcpss_NameIndex = 5906, - kX86InstIdRcr_NameIndex = 1513, - kX86InstIdRdfsbase_NameIndex = 1517, - kX86InstIdRdgsbase_NameIndex = 1526, - kX86InstIdRdrand_NameIndex = 1535, - kX86InstIdRdtsc_NameIndex = 1542, - kX86InstIdRdtscp_NameIndex = 1548, - kX86InstIdRepLodsB_NameIndex = 1555, - kX86InstIdRepLodsD_NameIndex = 1566, - kX86InstIdRepLodsQ_NameIndex = 1577, - kX86InstIdRepLodsW_NameIndex = 1588, - kX86InstIdRepMovsB_NameIndex = 1599, - kX86InstIdRepMovsD_NameIndex = 1610, - kX86InstIdRepMovsQ_NameIndex = 1621, - kX86InstIdRepMovsW_NameIndex = 1632, - kX86InstIdRepStosB_NameIndex = 1643, - kX86InstIdRepStosD_NameIndex = 1654, - kX86InstIdRepStosQ_NameIndex = 1665, - kX86InstIdRepStosW_NameIndex = 1676, - kX86InstIdRepeCmpsB_NameIndex = 1687, - kX86InstIdRepeCmpsD_NameIndex = 1699, - kX86InstIdRepeCmpsQ_NameIndex = 1711, - kX86InstIdRepeCmpsW_NameIndex = 1723, - kX86InstIdRepeScasB_NameIndex = 1735, - kX86InstIdRepeScasD_NameIndex = 1747, - kX86InstIdRepeScasQ_NameIndex = 1759, - kX86InstIdRepeScasW_NameIndex = 1771, - kX86InstIdRepneCmpsB_NameIndex = 1783, - kX86InstIdRepneCmpsD_NameIndex = 1796, - kX86InstIdRepneCmpsQ_NameIndex = 1809, - kX86InstIdRepneCmpsW_NameIndex = 1822, - kX86InstIdRepneScasB_NameIndex = 1835, - kX86InstIdRepneScasD_NameIndex = 1848, - kX86InstIdRepneScasQ_NameIndex = 1861, - kX86InstIdRepneScasW_NameIndex = 1874, - kX86InstIdRet_NameIndex = 1887, - kX86InstIdRol_NameIndex = 1891, - kX86InstIdRor_NameIndex = 1895, - kX86InstIdRorx_NameIndex = 1899, - kX86InstIdRoundpd_NameIndex = 5913, - kX86InstIdRoundps_NameIndex = 5922, - kX86InstIdRoundsd_NameIndex = 5931, - kX86InstIdRoundss_NameIndex = 5940, - kX86InstIdRsqrtps_NameIndex = 5949, - kX86InstIdRsqrtss_NameIndex = 5958, - kX86InstIdSahf_NameIndex = 1904, - kX86InstIdSal_NameIndex = 1909, - kX86InstIdSar_NameIndex = 1913, - kX86InstIdSarx_NameIndex = 1917, - kX86InstIdSbb_NameIndex = 1922, - kX86InstIdScasB_NameIndex = 1841, - kX86InstIdScasD_NameIndex = 1854, - kX86InstIdScasQ_NameIndex = 1867, - kX86InstIdScasW_NameIndex = 1880, - kX86InstIdSeta_NameIndex = 1926, - kX86InstIdSetae_NameIndex = 1931, - kX86InstIdSetb_NameIndex = 1937, - kX86InstIdSetbe_NameIndex = 1942, - kX86InstIdSetc_NameIndex = 1948, - kX86InstIdSete_NameIndex = 1953, - kX86InstIdSetg_NameIndex = 1958, - kX86InstIdSetge_NameIndex = 1963, - kX86InstIdSetl_NameIndex = 1969, - kX86InstIdSetle_NameIndex = 1974, - kX86InstIdSetna_NameIndex = 1980, - kX86InstIdSetnae_NameIndex = 1986, - kX86InstIdSetnb_NameIndex = 1993, - kX86InstIdSetnbe_NameIndex = 1999, - kX86InstIdSetnc_NameIndex = 2006, - kX86InstIdSetne_NameIndex = 2012, - kX86InstIdSetng_NameIndex = 2018, - kX86InstIdSetnge_NameIndex = 2024, - kX86InstIdSetnl_NameIndex = 2031, - kX86InstIdSetnle_NameIndex = 2037, - kX86InstIdSetno_NameIndex = 2044, - kX86InstIdSetnp_NameIndex = 2050, - kX86InstIdSetns_NameIndex = 2056, - kX86InstIdSetnz_NameIndex = 2062, - kX86InstIdSeto_NameIndex = 2068, - kX86InstIdSetp_NameIndex = 2073, - kX86InstIdSetpe_NameIndex = 2078, - kX86InstIdSetpo_NameIndex = 2084, - kX86InstIdSets_NameIndex = 2090, - kX86InstIdSetz_NameIndex = 2095, - kX86InstIdSfence_NameIndex = 2100, - kX86InstIdShl_NameIndex = 2107, - kX86InstIdShld_NameIndex = 5544, - kX86InstIdShlx_NameIndex = 2111, - kX86InstIdShr_NameIndex = 2116, - kX86InstIdShrd_NameIndex = 2120, - kX86InstIdShrx_NameIndex = 2125, - kX86InstIdShufpd_NameIndex = 5967, - kX86InstIdShufps_NameIndex = 5975, - kX86InstIdSqrtpd_NameIndex = 5983, - kX86InstIdSqrtps_NameIndex = 5950, - kX86InstIdSqrtsd_NameIndex = 5999, - kX86InstIdSqrtss_NameIndex = 5959, - kX86InstIdStc_NameIndex = 2130, - kX86InstIdStd_NameIndex = 4382, - kX86InstIdStmxcsr_NameIndex = 6015, - kX86InstIdStosB_NameIndex = 1647, - kX86InstIdStosD_NameIndex = 1658, - kX86InstIdStosQ_NameIndex = 1669, - kX86InstIdStosW_NameIndex = 1680, - kX86InstIdSub_NameIndex = 649, - kX86InstIdSubpd_NameIndex = 2962, - kX86InstIdSubps_NameIndex = 2974, - kX86InstIdSubsd_NameIndex = 3650, - kX86InstIdSubss_NameIndex = 3660, - kX86InstIdTest_NameIndex = 5797, - kX86InstIdTzcnt_NameIndex = 2134, - kX86InstIdUcomisd_NameIndex = 6068, - kX86InstIdUcomiss_NameIndex = 6077, - kX86InstIdUd2_NameIndex = 2140, - kX86InstIdUnpckhpd_NameIndex = 6086, - kX86InstIdUnpckhps_NameIndex = 6096, - kX86InstIdUnpcklpd_NameIndex = 6106, - kX86InstIdUnpcklps_NameIndex = 6116, - kX86InstIdVaddpd_NameIndex = 2144, - kX86InstIdVaddps_NameIndex = 2151, - kX86InstIdVaddsd_NameIndex = 2158, - kX86InstIdVaddss_NameIndex = 2165, - kX86InstIdVaddsubpd_NameIndex = 2172, - kX86InstIdVaddsubps_NameIndex = 2182, - kX86InstIdVaesdec_NameIndex = 2192, - kX86InstIdVaesdeclast_NameIndex = 2200, - kX86InstIdVaesenc_NameIndex = 2212, - kX86InstIdVaesenclast_NameIndex = 2220, - kX86InstIdVaesimc_NameIndex = 2232, - kX86InstIdVaeskeygenassist_NameIndex = 2240, - kX86InstIdVandnpd_NameIndex = 2257, - kX86InstIdVandnps_NameIndex = 2265, - kX86InstIdVandpd_NameIndex = 2273, - kX86InstIdVandps_NameIndex = 2280, - kX86InstIdVblendpd_NameIndex = 2287, - kX86InstIdVblendps_NameIndex = 2296, - kX86InstIdVblendvpd_NameIndex = 2305, - kX86InstIdVblendvps_NameIndex = 2315, - kX86InstIdVbroadcastf128_NameIndex = 2325, - kX86InstIdVbroadcasti128_NameIndex = 2340, - kX86InstIdVbroadcastsd_NameIndex = 2355, - kX86InstIdVbroadcastss_NameIndex = 2368, - kX86InstIdVcmppd_NameIndex = 2381, - kX86InstIdVcmpps_NameIndex = 2388, - kX86InstIdVcmpsd_NameIndex = 2395, - kX86InstIdVcmpss_NameIndex = 2402, - kX86InstIdVcomisd_NameIndex = 2409, - kX86InstIdVcomiss_NameIndex = 2417, - kX86InstIdVcvtdq2pd_NameIndex = 2425, - kX86InstIdVcvtdq2ps_NameIndex = 2435, - kX86InstIdVcvtpd2dq_NameIndex = 2445, - kX86InstIdVcvtpd2ps_NameIndex = 2455, - kX86InstIdVcvtph2ps_NameIndex = 2465, - kX86InstIdVcvtps2dq_NameIndex = 2475, - kX86InstIdVcvtps2pd_NameIndex = 2485, - kX86InstIdVcvtps2ph_NameIndex = 2495, - kX86InstIdVcvtsd2si_NameIndex = 2505, - kX86InstIdVcvtsd2ss_NameIndex = 2515, - kX86InstIdVcvtsi2sd_NameIndex = 2525, - kX86InstIdVcvtsi2ss_NameIndex = 2535, - kX86InstIdVcvtss2sd_NameIndex = 2545, - kX86InstIdVcvtss2si_NameIndex = 2555, - kX86InstIdVcvttpd2dq_NameIndex = 2565, - kX86InstIdVcvttps2dq_NameIndex = 2576, - kX86InstIdVcvttsd2si_NameIndex = 2587, - kX86InstIdVcvttss2si_NameIndex = 2598, - kX86InstIdVdivpd_NameIndex = 2609, - kX86InstIdVdivps_NameIndex = 2616, - kX86InstIdVdivsd_NameIndex = 2623, - kX86InstIdVdivss_NameIndex = 2630, - kX86InstIdVdppd_NameIndex = 2637, - kX86InstIdVdpps_NameIndex = 2643, - kX86InstIdVextractf128_NameIndex = 2649, - kX86InstIdVextracti128_NameIndex = 2662, - kX86InstIdVextractps_NameIndex = 2675, - kX86InstIdVfmadd132pd_NameIndex = 2686, - kX86InstIdVfmadd132ps_NameIndex = 2698, - kX86InstIdVfmadd132sd_NameIndex = 2710, - kX86InstIdVfmadd132ss_NameIndex = 2722, - kX86InstIdVfmadd213pd_NameIndex = 2734, - kX86InstIdVfmadd213ps_NameIndex = 2746, - kX86InstIdVfmadd213sd_NameIndex = 2758, - kX86InstIdVfmadd213ss_NameIndex = 2770, - kX86InstIdVfmadd231pd_NameIndex = 2782, - kX86InstIdVfmadd231ps_NameIndex = 2794, - kX86InstIdVfmadd231sd_NameIndex = 2806, - kX86InstIdVfmadd231ss_NameIndex = 2818, - kX86InstIdVfmaddpd_NameIndex = 2830, - kX86InstIdVfmaddps_NameIndex = 2839, - kX86InstIdVfmaddsd_NameIndex = 2848, - kX86InstIdVfmaddss_NameIndex = 2857, - kX86InstIdVfmaddsub132pd_NameIndex = 2866, - kX86InstIdVfmaddsub132ps_NameIndex = 2881, - kX86InstIdVfmaddsub213pd_NameIndex = 2896, - kX86InstIdVfmaddsub213ps_NameIndex = 2911, - kX86InstIdVfmaddsub231pd_NameIndex = 2926, - kX86InstIdVfmaddsub231ps_NameIndex = 2941, - kX86InstIdVfmaddsubpd_NameIndex = 2956, - kX86InstIdVfmaddsubps_NameIndex = 2968, - kX86InstIdVfmsub132pd_NameIndex = 2980, - kX86InstIdVfmsub132ps_NameIndex = 2992, - kX86InstIdVfmsub132sd_NameIndex = 3004, - kX86InstIdVfmsub132ss_NameIndex = 3016, - kX86InstIdVfmsub213pd_NameIndex = 3028, - kX86InstIdVfmsub213ps_NameIndex = 3040, - kX86InstIdVfmsub213sd_NameIndex = 3052, - kX86InstIdVfmsub213ss_NameIndex = 3064, - kX86InstIdVfmsub231pd_NameIndex = 3076, - kX86InstIdVfmsub231ps_NameIndex = 3088, - kX86InstIdVfmsub231sd_NameIndex = 3100, - kX86InstIdVfmsub231ss_NameIndex = 3112, - kX86InstIdVfmsubadd132pd_NameIndex = 3124, - kX86InstIdVfmsubadd132ps_NameIndex = 3139, - kX86InstIdVfmsubadd213pd_NameIndex = 3154, - kX86InstIdVfmsubadd213ps_NameIndex = 3169, - kX86InstIdVfmsubadd231pd_NameIndex = 3184, - kX86InstIdVfmsubadd231ps_NameIndex = 3199, - kX86InstIdVfmsubaddpd_NameIndex = 3214, - kX86InstIdVfmsubaddps_NameIndex = 3226, - kX86InstIdVfmsubpd_NameIndex = 3238, - kX86InstIdVfmsubps_NameIndex = 3247, - kX86InstIdVfmsubsd_NameIndex = 3256, - kX86InstIdVfmsubss_NameIndex = 3265, - kX86InstIdVfnmadd132pd_NameIndex = 3274, - kX86InstIdVfnmadd132ps_NameIndex = 3287, - kX86InstIdVfnmadd132sd_NameIndex = 3300, - kX86InstIdVfnmadd132ss_NameIndex = 3313, - kX86InstIdVfnmadd213pd_NameIndex = 3326, - kX86InstIdVfnmadd213ps_NameIndex = 3339, - kX86InstIdVfnmadd213sd_NameIndex = 3352, - kX86InstIdVfnmadd213ss_NameIndex = 3365, - kX86InstIdVfnmadd231pd_NameIndex = 3378, - kX86InstIdVfnmadd231ps_NameIndex = 3391, - kX86InstIdVfnmadd231sd_NameIndex = 3404, - kX86InstIdVfnmadd231ss_NameIndex = 3417, - kX86InstIdVfnmaddpd_NameIndex = 3430, - kX86InstIdVfnmaddps_NameIndex = 3440, - kX86InstIdVfnmaddsd_NameIndex = 3450, - kX86InstIdVfnmaddss_NameIndex = 3460, - kX86InstIdVfnmsub132pd_NameIndex = 3470, - kX86InstIdVfnmsub132ps_NameIndex = 3483, - kX86InstIdVfnmsub132sd_NameIndex = 3496, - kX86InstIdVfnmsub132ss_NameIndex = 3509, - kX86InstIdVfnmsub213pd_NameIndex = 3522, - kX86InstIdVfnmsub213ps_NameIndex = 3535, - kX86InstIdVfnmsub213sd_NameIndex = 3548, - kX86InstIdVfnmsub213ss_NameIndex = 3561, - kX86InstIdVfnmsub231pd_NameIndex = 3574, - kX86InstIdVfnmsub231ps_NameIndex = 3587, - kX86InstIdVfnmsub231sd_NameIndex = 3600, - kX86InstIdVfnmsub231ss_NameIndex = 3613, - kX86InstIdVfnmsubpd_NameIndex = 3626, - kX86InstIdVfnmsubps_NameIndex = 3636, - kX86InstIdVfnmsubsd_NameIndex = 3646, - kX86InstIdVfnmsubss_NameIndex = 3656, - kX86InstIdVfrczpd_NameIndex = 3666, - kX86InstIdVfrczps_NameIndex = 3674, - kX86InstIdVfrczsd_NameIndex = 3682, - kX86InstIdVfrczss_NameIndex = 3690, - kX86InstIdVgatherdpd_NameIndex = 3698, - kX86InstIdVgatherdps_NameIndex = 3709, - kX86InstIdVgatherqpd_NameIndex = 3720, - kX86InstIdVgatherqps_NameIndex = 3731, - kX86InstIdVhaddpd_NameIndex = 3742, - kX86InstIdVhaddps_NameIndex = 3750, - kX86InstIdVhsubpd_NameIndex = 3758, - kX86InstIdVhsubps_NameIndex = 3766, - kX86InstIdVinsertf128_NameIndex = 3774, - kX86InstIdVinserti128_NameIndex = 3786, - kX86InstIdVinsertps_NameIndex = 3798, - kX86InstIdVlddqu_NameIndex = 3808, - kX86InstIdVldmxcsr_NameIndex = 3815, - kX86InstIdVmaskmovdqu_NameIndex = 3824, - kX86InstIdVmaskmovpd_NameIndex = 3836, - kX86InstIdVmaskmovps_NameIndex = 3847, - kX86InstIdVmaxpd_NameIndex = 3858, - kX86InstIdVmaxps_NameIndex = 3865, - kX86InstIdVmaxsd_NameIndex = 3872, - kX86InstIdVmaxss_NameIndex = 3879, - kX86InstIdVminpd_NameIndex = 3886, - kX86InstIdVminps_NameIndex = 3893, - kX86InstIdVminsd_NameIndex = 3900, - kX86InstIdVminss_NameIndex = 3907, - kX86InstIdVmovapd_NameIndex = 3914, - kX86InstIdVmovaps_NameIndex = 3922, - kX86InstIdVmovd_NameIndex = 3930, - kX86InstIdVmovddup_NameIndex = 3936, - kX86InstIdVmovdqa_NameIndex = 3945, - kX86InstIdVmovdqu_NameIndex = 3953, - kX86InstIdVmovhlps_NameIndex = 3961, - kX86InstIdVmovhpd_NameIndex = 3970, - kX86InstIdVmovhps_NameIndex = 3978, - kX86InstIdVmovlhps_NameIndex = 3986, - kX86InstIdVmovlpd_NameIndex = 3995, - kX86InstIdVmovlps_NameIndex = 4003, - kX86InstIdVmovmskpd_NameIndex = 4011, - kX86InstIdVmovmskps_NameIndex = 4021, - kX86InstIdVmovntdq_NameIndex = 4031, - kX86InstIdVmovntdqa_NameIndex = 4040, - kX86InstIdVmovntpd_NameIndex = 4050, - kX86InstIdVmovntps_NameIndex = 4059, - kX86InstIdVmovq_NameIndex = 4068, - kX86InstIdVmovsd_NameIndex = 4074, - kX86InstIdVmovshdup_NameIndex = 4081, - kX86InstIdVmovsldup_NameIndex = 4091, - kX86InstIdVmovss_NameIndex = 4101, - kX86InstIdVmovupd_NameIndex = 4108, - kX86InstIdVmovups_NameIndex = 4116, - kX86InstIdVmpsadbw_NameIndex = 4124, - kX86InstIdVmulpd_NameIndex = 4133, - kX86InstIdVmulps_NameIndex = 4140, - kX86InstIdVmulsd_NameIndex = 4147, - kX86InstIdVmulss_NameIndex = 4154, - kX86InstIdVorpd_NameIndex = 4161, - kX86InstIdVorps_NameIndex = 4167, - kX86InstIdVpabsb_NameIndex = 4173, - kX86InstIdVpabsd_NameIndex = 4180, - kX86InstIdVpabsw_NameIndex = 4187, - kX86InstIdVpackssdw_NameIndex = 4194, - kX86InstIdVpacksswb_NameIndex = 4204, - kX86InstIdVpackusdw_NameIndex = 4214, - kX86InstIdVpackuswb_NameIndex = 4224, - kX86InstIdVpaddb_NameIndex = 4234, - kX86InstIdVpaddd_NameIndex = 4241, - kX86InstIdVpaddq_NameIndex = 4248, - kX86InstIdVpaddsb_NameIndex = 4255, - kX86InstIdVpaddsw_NameIndex = 4263, - kX86InstIdVpaddusb_NameIndex = 4271, - kX86InstIdVpaddusw_NameIndex = 4280, - kX86InstIdVpaddw_NameIndex = 4289, - kX86InstIdVpalignr_NameIndex = 4296, - kX86InstIdVpand_NameIndex = 4305, - kX86InstIdVpandn_NameIndex = 4311, - kX86InstIdVpavgb_NameIndex = 4318, - kX86InstIdVpavgw_NameIndex = 4325, - kX86InstIdVpblendd_NameIndex = 4332, - kX86InstIdVpblendvb_NameIndex = 4341, - kX86InstIdVpblendw_NameIndex = 4351, - kX86InstIdVpbroadcastb_NameIndex = 4360, - kX86InstIdVpbroadcastd_NameIndex = 4373, - kX86InstIdVpbroadcastq_NameIndex = 4386, - kX86InstIdVpbroadcastw_NameIndex = 4399, - kX86InstIdVpclmulqdq_NameIndex = 4412, - kX86InstIdVpcmov_NameIndex = 4423, - kX86InstIdVpcmpeqb_NameIndex = 4430, - kX86InstIdVpcmpeqd_NameIndex = 4439, - kX86InstIdVpcmpeqq_NameIndex = 4448, - kX86InstIdVpcmpeqw_NameIndex = 4457, - kX86InstIdVpcmpestri_NameIndex = 4466, - kX86InstIdVpcmpestrm_NameIndex = 4477, - kX86InstIdVpcmpgtb_NameIndex = 4488, - kX86InstIdVpcmpgtd_NameIndex = 4497, - kX86InstIdVpcmpgtq_NameIndex = 4506, - kX86InstIdVpcmpgtw_NameIndex = 4515, - kX86InstIdVpcmpistri_NameIndex = 4524, - kX86InstIdVpcmpistrm_NameIndex = 4535, - kX86InstIdVpcomb_NameIndex = 4546, - kX86InstIdVpcomd_NameIndex = 4553, - kX86InstIdVpcomq_NameIndex = 4560, - kX86InstIdVpcomub_NameIndex = 4567, - kX86InstIdVpcomud_NameIndex = 4575, - kX86InstIdVpcomuq_NameIndex = 4583, - kX86InstIdVpcomuw_NameIndex = 4591, - kX86InstIdVpcomw_NameIndex = 4599, - kX86InstIdVperm2f128_NameIndex = 4606, - kX86InstIdVperm2i128_NameIndex = 4617, - kX86InstIdVpermd_NameIndex = 4628, - kX86InstIdVpermil2pd_NameIndex = 4635, - kX86InstIdVpermil2ps_NameIndex = 4646, - kX86InstIdVpermilpd_NameIndex = 4657, - kX86InstIdVpermilps_NameIndex = 4667, - kX86InstIdVpermpd_NameIndex = 4677, - kX86InstIdVpermps_NameIndex = 4685, - kX86InstIdVpermq_NameIndex = 4693, - kX86InstIdVpextrb_NameIndex = 4700, - kX86InstIdVpextrd_NameIndex = 4708, - kX86InstIdVpextrq_NameIndex = 4716, - kX86InstIdVpextrw_NameIndex = 4724, - kX86InstIdVpgatherdd_NameIndex = 4732, - kX86InstIdVpgatherdq_NameIndex = 4743, - kX86InstIdVpgatherqd_NameIndex = 4754, - kX86InstIdVpgatherqq_NameIndex = 4765, - kX86InstIdVphaddbd_NameIndex = 4776, - kX86InstIdVphaddbq_NameIndex = 4785, - kX86InstIdVphaddbw_NameIndex = 4794, - kX86InstIdVphaddd_NameIndex = 4803, - kX86InstIdVphadddq_NameIndex = 4811, - kX86InstIdVphaddsw_NameIndex = 4820, - kX86InstIdVphaddubd_NameIndex = 4829, - kX86InstIdVphaddubq_NameIndex = 4839, - kX86InstIdVphaddubw_NameIndex = 4849, - kX86InstIdVphaddudq_NameIndex = 4859, - kX86InstIdVphadduwd_NameIndex = 4869, - kX86InstIdVphadduwq_NameIndex = 4879, - kX86InstIdVphaddw_NameIndex = 4889, - kX86InstIdVphaddwd_NameIndex = 4897, - kX86InstIdVphaddwq_NameIndex = 4906, - kX86InstIdVphminposuw_NameIndex = 4915, - kX86InstIdVphsubbw_NameIndex = 4927, - kX86InstIdVphsubd_NameIndex = 4936, - kX86InstIdVphsubdq_NameIndex = 4944, - kX86InstIdVphsubsw_NameIndex = 4953, - kX86InstIdVphsubw_NameIndex = 4962, - kX86InstIdVphsubwd_NameIndex = 4970, - kX86InstIdVpinsrb_NameIndex = 4979, - kX86InstIdVpinsrd_NameIndex = 4987, - kX86InstIdVpinsrq_NameIndex = 4995, - kX86InstIdVpinsrw_NameIndex = 5003, - kX86InstIdVpmacsdd_NameIndex = 5011, - kX86InstIdVpmacsdqh_NameIndex = 5020, - kX86InstIdVpmacsdql_NameIndex = 5030, - kX86InstIdVpmacssdd_NameIndex = 5040, - kX86InstIdVpmacssdqh_NameIndex = 5050, - kX86InstIdVpmacssdql_NameIndex = 5061, - kX86InstIdVpmacsswd_NameIndex = 5072, - kX86InstIdVpmacssww_NameIndex = 5082, - kX86InstIdVpmacswd_NameIndex = 5092, - kX86InstIdVpmacsww_NameIndex = 5101, - kX86InstIdVpmadcsswd_NameIndex = 5110, - kX86InstIdVpmadcswd_NameIndex = 5121, - kX86InstIdVpmaddubsw_NameIndex = 5131, - kX86InstIdVpmaddwd_NameIndex = 5142, - kX86InstIdVpmaskmovd_NameIndex = 5151, - kX86InstIdVpmaskmovq_NameIndex = 5162, - kX86InstIdVpmaxsb_NameIndex = 5173, - kX86InstIdVpmaxsd_NameIndex = 5181, - kX86InstIdVpmaxsw_NameIndex = 5189, - kX86InstIdVpmaxub_NameIndex = 5197, - kX86InstIdVpmaxud_NameIndex = 5205, - kX86InstIdVpmaxuw_NameIndex = 5213, - kX86InstIdVpminsb_NameIndex = 5221, - kX86InstIdVpminsd_NameIndex = 5229, - kX86InstIdVpminsw_NameIndex = 5237, - kX86InstIdVpminub_NameIndex = 5245, - kX86InstIdVpminud_NameIndex = 5253, - kX86InstIdVpminuw_NameIndex = 5261, - kX86InstIdVpmovmskb_NameIndex = 5269, - kX86InstIdVpmovsxbd_NameIndex = 5279, - kX86InstIdVpmovsxbq_NameIndex = 5289, - kX86InstIdVpmovsxbw_NameIndex = 5299, - kX86InstIdVpmovsxdq_NameIndex = 5309, - kX86InstIdVpmovsxwd_NameIndex = 5319, - kX86InstIdVpmovsxwq_NameIndex = 5329, - kX86InstIdVpmovzxbd_NameIndex = 5339, - kX86InstIdVpmovzxbq_NameIndex = 5349, - kX86InstIdVpmovzxbw_NameIndex = 5359, - kX86InstIdVpmovzxdq_NameIndex = 5369, - kX86InstIdVpmovzxwd_NameIndex = 5379, - kX86InstIdVpmovzxwq_NameIndex = 5389, - kX86InstIdVpmuldq_NameIndex = 5399, - kX86InstIdVpmulhrsw_NameIndex = 5407, - kX86InstIdVpmulhuw_NameIndex = 5417, - kX86InstIdVpmulhw_NameIndex = 5426, - kX86InstIdVpmulld_NameIndex = 5434, - kX86InstIdVpmullw_NameIndex = 5442, - kX86InstIdVpmuludq_NameIndex = 5450, - kX86InstIdVpor_NameIndex = 5459, - kX86InstIdVpperm_NameIndex = 5464, - kX86InstIdVprotb_NameIndex = 5471, - kX86InstIdVprotd_NameIndex = 5478, - kX86InstIdVprotq_NameIndex = 5485, - kX86InstIdVprotw_NameIndex = 5492, - kX86InstIdVpsadbw_NameIndex = 5499, - kX86InstIdVpshab_NameIndex = 5507, - kX86InstIdVpshad_NameIndex = 5514, - kX86InstIdVpshaq_NameIndex = 5521, - kX86InstIdVpshaw_NameIndex = 5528, - kX86InstIdVpshlb_NameIndex = 5535, - kX86InstIdVpshld_NameIndex = 5542, - kX86InstIdVpshlq_NameIndex = 5549, - kX86InstIdVpshlw_NameIndex = 5556, - kX86InstIdVpshufb_NameIndex = 5563, - kX86InstIdVpshufd_NameIndex = 5571, - kX86InstIdVpshufhw_NameIndex = 5579, - kX86InstIdVpshuflw_NameIndex = 5588, - kX86InstIdVpsignb_NameIndex = 5597, - kX86InstIdVpsignd_NameIndex = 5605, - kX86InstIdVpsignw_NameIndex = 5613, - kX86InstIdVpslld_NameIndex = 5621, - kX86InstIdVpslldq_NameIndex = 5628, - kX86InstIdVpsllq_NameIndex = 5636, - kX86InstIdVpsllvd_NameIndex = 5643, - kX86InstIdVpsllvq_NameIndex = 5651, - kX86InstIdVpsllw_NameIndex = 5659, - kX86InstIdVpsrad_NameIndex = 5666, - kX86InstIdVpsravd_NameIndex = 5673, - kX86InstIdVpsraw_NameIndex = 5681, - kX86InstIdVpsrld_NameIndex = 5688, - kX86InstIdVpsrldq_NameIndex = 5695, - kX86InstIdVpsrlq_NameIndex = 5703, - kX86InstIdVpsrlvd_NameIndex = 5710, - kX86InstIdVpsrlvq_NameIndex = 5718, - kX86InstIdVpsrlw_NameIndex = 5726, - kX86InstIdVpsubb_NameIndex = 5733, - kX86InstIdVpsubd_NameIndex = 5740, - kX86InstIdVpsubq_NameIndex = 5747, - kX86InstIdVpsubsb_NameIndex = 5754, - kX86InstIdVpsubsw_NameIndex = 5762, - kX86InstIdVpsubusb_NameIndex = 5770, - kX86InstIdVpsubusw_NameIndex = 5779, - kX86InstIdVpsubw_NameIndex = 5788, - kX86InstIdVptest_NameIndex = 5795, - kX86InstIdVpunpckhbw_NameIndex = 5802, - kX86InstIdVpunpckhdq_NameIndex = 5813, - kX86InstIdVpunpckhqdq_NameIndex = 5824, - kX86InstIdVpunpckhwd_NameIndex = 5836, - kX86InstIdVpunpcklbw_NameIndex = 5847, - kX86InstIdVpunpckldq_NameIndex = 5858, - kX86InstIdVpunpcklqdq_NameIndex = 5869, - kX86InstIdVpunpcklwd_NameIndex = 5881, - kX86InstIdVpxor_NameIndex = 5892, - kX86InstIdVrcpps_NameIndex = 5898, - kX86InstIdVrcpss_NameIndex = 5905, - kX86InstIdVroundpd_NameIndex = 5912, - kX86InstIdVroundps_NameIndex = 5921, - kX86InstIdVroundsd_NameIndex = 5930, - kX86InstIdVroundss_NameIndex = 5939, - kX86InstIdVrsqrtps_NameIndex = 5948, - kX86InstIdVrsqrtss_NameIndex = 5957, - kX86InstIdVshufpd_NameIndex = 5966, - kX86InstIdVshufps_NameIndex = 5974, - kX86InstIdVsqrtpd_NameIndex = 5982, - kX86InstIdVsqrtps_NameIndex = 5990, - kX86InstIdVsqrtsd_NameIndex = 5998, - kX86InstIdVsqrtss_NameIndex = 6006, - kX86InstIdVstmxcsr_NameIndex = 6014, - kX86InstIdVsubpd_NameIndex = 6023, - kX86InstIdVsubps_NameIndex = 6030, - kX86InstIdVsubsd_NameIndex = 6037, - kX86InstIdVsubss_NameIndex = 6044, - kX86InstIdVtestpd_NameIndex = 6051, - kX86InstIdVtestps_NameIndex = 6059, - kX86InstIdVucomisd_NameIndex = 6067, - kX86InstIdVucomiss_NameIndex = 6076, - kX86InstIdVunpckhpd_NameIndex = 6085, - kX86InstIdVunpckhps_NameIndex = 6095, - kX86InstIdVunpcklpd_NameIndex = 6105, - kX86InstIdVunpcklps_NameIndex = 6115, - kX86InstIdVxorpd_NameIndex = 6125, - kX86InstIdVxorps_NameIndex = 6132, - kX86InstIdVzeroall_NameIndex = 6139, - kX86InstIdVzeroupper_NameIndex = 6148, - kX86InstIdWrfsbase_NameIndex = 6159, - kX86InstIdWrgsbase_NameIndex = 6168, - kX86InstIdXadd_NameIndex = 6177, - kX86InstIdXchg_NameIndex = 270, - kX86InstIdXgetbv_NameIndex = 6182, - kX86InstIdXor_NameIndex = 5894, - kX86InstIdXorpd_NameIndex = 6126, - kX86InstIdXorps_NameIndex = 6133, - kX86InstIdXrstor_NameIndex = 947, - kX86InstIdXrstor64_NameIndex = 6189, - kX86InstIdXsave_NameIndex = 955, - kX86InstIdXsave64_NameIndex = 6198, - kX86InstIdXsaveopt_NameIndex = 6206, - kX86InstIdXsaveopt64_NameIndex = 6215, - kX86InstIdXsetbv_NameIndex = 6226 -}; #endif // !ASMJIT_DISABLE_NAMES +// ---------------------------------------------------------------------------- -// Automatically generated, do not edit. +// ------------------- Automatically generated, do not edit ------------------- const X86InstExtendedInfo _x86InstExtendedInfo[] = { { Enc(None) , 0 , 0 , 0x00, 0x00, 0, { U , U , U , U , U }, F(None) , U }, - { Enc(X86Arith) , 0 , 0 , 0x20, 0x3F, 0, { O(GqdwbMem) , O(GqdwbMem)|O(Imm), U , U , U }, F(Lock) , U }, - { Enc(X86Arith) , 0 , 0 , 0x00, 0x3F, 0, { O(GqdwbMem) , O(GqdwbMem)|O(Imm), U , U , U }, F(Lock) , U }, - { Enc(SimdRm) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , U , U , U }, F(None) , U }, - { Enc(SimdRmi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , O(Imm) , U , U }, F(None) , U }, - { Enc(AvxRvm_OptW) , 0 , 0 , 0x00, 0x3F, 0, { O(Gqd) , O(Gqd) , O(GqdMem) , U , U }, F(None) , U }, - { Enc(AvxRmv_OptW) , 0 , 0 , 0x00, 0x3F, 0, { O(Gqd) , O(GqdMem) , O(Gqd) , U , U }, F(None) , U }, - { Enc(SimdRm) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , U , U , U }, F(None)|F(Special) , U }, - { Enc(AvxVm_OptW) , 0 , 0 , 0x00, 0x3F, 0, { O(Gqd) , O(GqdMem) , U , U , U }, F(None) , U }, - { Enc(X86RegRm) , 0 , 0 , 0x00, 0x3F, 0, { O(Gqdw) , O(GqdwMem) , U , U , U }, F(None) , U }, - { Enc(X86BSwap) , 0 , 0 , 0x00, 0x00, 0, { O(Gqd) , U , U , U , U }, F(None) , U }, - { Enc(X86BTest) , 0 , 0 , 0x00, 0x3B, 0, { O(GqdwMem) , O(Gqdw)|O(Imm) , U , U , U }, F(Test) , O_000F00(BA,4,_,_,_) }, - { Enc(X86BTest) , 0 , 0 , 0x00, 0x3B, 0, { O(GqdwMem) , O(Gqdw)|O(Imm) , U , U , U }, F(Lock) , O_000F00(BA,7,_,_,_) }, - { Enc(X86BTest) , 0 , 0 , 0x00, 0x3B, 0, { O(GqdwMem) , O(Gqdw)|O(Imm) , U , U , U }, F(Lock) , O_000F00(BA,6,_,_,_) }, - { Enc(X86BTest) , 0 , 0 , 0x00, 0x3B, 0, { O(GqdwMem) , O(Gqdw)|O(Imm) , U , U , U }, F(Lock) , O_000F00(BA,5,_,_,_) }, - { Enc(X86Call) , 0 , 0 , 0x00, 0x00, 0, { O(GqdMem)|O(LImm) , U , U , U , U }, F(Flow) , O_000000(E8,U,_,_,_) }, - { Enc(X86Op) , 0 , 0 , 0x00, 0x00, 0, { U , U , U , U , U }, F(None)|F(Special) , U }, - { Enc(X86Op) , 0 , 0 , 0x00, 0x20, 0, { U , U , U , U , U }, F(None) , U }, - { Enc(X86Op) , 0 , 0 , 0x00, 0x40, 0, { U , U , U , U , U }, F(None) , U }, - { Enc(X86M) , 0 , 0 , 0x00, 0x00, 0, { O(Mem) , U , U , U , U }, F(None) , U }, + { Enc(X86Arith) , 0 , 0 , 0x20, 0x3F, 0, { O(GqdwbMem) , O(GqdwbMem)|O(Imm), U , U , U }, F(RW)|F(Lock) , U }, + { Enc(X86RegRm) , 0 , 0 , 0x20, 0x20, 0, { O(Gqd) , O(GqdMem) , U , U , U }, F(RW) , U }, + { Enc(X86Arith) , 0 , 0 , 0x00, 0x3F, 0, { O(GqdwbMem) , O(GqdwbMem)|O(Imm), U , U , U }, F(RW)|F(Lock) , U }, + { Enc(SimdRm) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , U , U , U }, F(RW) , U }, + { Enc(X86RegRm) , 0 , 0 , 0x01, 0x01, 0, { O(Gqd) , O(GqdMem) , U , U , U }, F(RW) , U }, + { Enc(SimdRm) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , U , U , U }, F(WO) , U }, + { Enc(SimdRmi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , O(Imm) , U , U }, F(WO) , U }, + { Enc(AvxRvm_OptW) , 0 , 0 , 0x00, 0x3F, 0, { O(Gqd) , O(Gqd) , O(GqdMem) , U , U }, F(RW) , U }, + { Enc(AvxRmv_OptW) , 0 , 0 , 0x00, 0x3F, 0, { O(Gqd) , O(GqdMem) , O(Gqd) , U , U }, F(RW) , U }, + { Enc(XopVm_OptW) , 0 , 0 , 0x00, 0x3F, 0, { O(Gqd) , O(GqdMem) , U , U , U }, F(WO) , U }, + { Enc(SimdRmi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , O(Imm) , U , U }, F(RW) , U }, + { Enc(SimdRm) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , U , U , U }, F(RW)|F(Special) , U }, + { Enc(AvxVm_OptW) , 0 , 0 , 0x00, 0x3F, 0, { O(Gqd) , O(GqdMem) , U , U , U }, F(RW) , U }, + { Enc(X86RegRm) , 0 , 0 , 0x00, 0x3F, 0, { O(Gqdw) , O(GqdwMem) , U , U , U }, F(RW) , U }, + { Enc(X86BSwap) , 0 , 0 , 0x00, 0x00, 0, { O(Gqd) , U , U , U , U }, F(RW) , U }, + { Enc(X86BTest) , 0 , 0 , 0x00, 0x3B, 0, { O(GqdwMem) , O(Gqdw)|O(Imm) , U , U , U }, F(RO) , O_000F00(BA,4,_,_,_) }, + { Enc(X86BTest) , 0 , 0 , 0x00, 0x3B, 0, { O(GqdwMem) , O(Gqdw)|O(Imm) , U , U , U }, F(RW)|F(Lock) , O_000F00(BA,7,_,_,_) }, + { Enc(X86BTest) , 0 , 0 , 0x00, 0x3B, 0, { O(GqdwMem) , O(Gqdw)|O(Imm) , U , U , U }, F(RW)|F(Lock) , O_000F00(BA,6,_,_,_) }, + { Enc(X86BTest) , 0 , 0 , 0x00, 0x3B, 0, { O(GqdwMem) , O(Gqdw)|O(Imm) , U , U , U }, F(RW)|F(Lock) , O_000F00(BA,5,_,_,_) }, + { Enc(X86Call) , 0 , 0 , 0x00, 0x00, 0, { O(GqdMem)|O(LImm) , U , U , U , U }, F(RW)|F(Flow)|F(Volatile) , O_000000(E8,U,_,_,_) }, + { Enc(X86Op) , 0 , 0 , 0x00, 0x00, 0, { U , U , U , U , U }, F(RW)|F(Special) , U }, + { Enc(X86Op) , 0 , 0 , 0x00, 0x20, 0, { U , U , U , U , U }, F(Volatile) , U }, + { Enc(X86Op) , 0 , 0 , 0x00, 0x40, 0, { U , U , U , U , U }, F(Volatile) , U }, + { Enc(X86M) , 0 , 0 , 0x00, 0x00, 0, { O(Mem) , U , U , U , U }, F(RO)|F(Volatile) , U }, { Enc(X86Op) , 0 , 0 , 0x20, 0x20, 0, { U , U , U , U , U }, F(None) , U }, - { Enc(X86RegRm) , 0 , 0 , 0x24, 0x00, 0, { O(Gqdw) , O(GqdwMem) , U , U , U }, F(None) , U }, - { Enc(X86RegRm) , 0 , 0 , 0x20, 0x00, 0, { O(Gqdw) , O(GqdwMem) , U , U , U }, F(None) , U }, - { Enc(X86RegRm) , 0 , 0 , 0x04, 0x00, 0, { O(Gqdw) , O(GqdwMem) , U , U , U }, F(None) , U }, - { Enc(X86RegRm) , 0 , 0 , 0x07, 0x00, 0, { O(Gqdw) , O(GqdwMem) , U , U , U }, F(None) , U }, - { Enc(X86RegRm) , 0 , 0 , 0x03, 0x00, 0, { O(Gqdw) , O(GqdwMem) , U , U , U }, F(None) , U }, - { Enc(X86RegRm) , 0 , 0 , 0x01, 0x00, 0, { O(Gqdw) , O(GqdwMem) , U , U , U }, F(None) , U }, - { Enc(X86RegRm) , 0 , 0 , 0x10, 0x00, 0, { O(Gqdw) , O(GqdwMem) , U , U , U }, F(None) , U }, - { Enc(X86RegRm) , 0 , 0 , 0x02, 0x00, 0, { O(Gqdw) , O(GqdwMem) , U , U , U }, F(None) , U }, - { Enc(X86Arith) , 0 , 0 , 0x00, 0x3F, 0, { O(GqdwbMem) , O(GqdwbMem)|O(Imm), U , U , U }, F(Test) , U }, - { Enc(X86Op) , 0 , 0 , 0x40, 0x3F, 0, { U , U , U , U , U }, F(None)|F(Special) , U }, - { Enc(X86Op_66H) , 0 , 0 , 0x40, 0x3F, 0, { U , U , U , U , U }, F(None)|F(Special) , U }, - { Enc(X86RmReg) , 0 , 0 , 0x00, 0x3F, 0, { U , U , U , U , U }, F(Lock)|F(Special) , U }, - { Enc(X86M) , 0 , 0 , 0x00, 0x04, 0, { O(Mem) , U , U , U , U }, F(None)|F(Special) , U }, - { Enc(SimdRm) , 0 , 0 , 0x00, 0x3F, 0, { O(Xmm) , O(XmmMem) , U , U , U }, F(Test) , U }, - { Enc(X86Crc) , 0 , 0 , 0x00, 0x00, 0, { O(Gqd) , O(GqdwbMem) , U , U , U }, F(None) , U }, - { Enc(SimdRm) , 0 , 16, 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , U , U , U }, F(Move) , U }, - { Enc(SimdRm) , 0 , 8 , 0x00, 0x00, 0, { O(Mm) , O(XmmMem) , U , U , U }, F(Move) , U }, - { Enc(SimdRm) , 0 , 16, 0x00, 0x00, 0, { O(Xmm) , O(MmMem) , U , U , U }, F(Move) , U }, - { Enc(SimdRm) , 0 , 8 , 0x00, 0x00, 0, { O(Xmm) , O(MmMem) , U , U , U }, F(Move) , U }, - { Enc(SimdRm_Q) , 0 , 8 , 0x00, 0x00, 0, { O(Gqd) , O(XmmMem) , U , U , U }, F(Move) , U }, - { Enc(SimdRm) , 0 , 4 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , U , U , U }, F(Move) , U }, - { Enc(SimdRm_Q) , 0 , 8 , 0x00, 0x00, 0, { O(Xmm) , O(GqdMem) , U , U , U }, F(Move) , U }, - { Enc(SimdRm_Q) , 0 , 4 , 0x00, 0x00, 0, { O(Xmm) , O(GqdMem) , U , U , U }, F(Move) , U }, - { Enc(SimdRm) , 0 , 8 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , U , U , U }, F(Move) , U }, - { Enc(X86Op) , 0 , 0 , 0x28, 0x3F, 0, { U , U , U , U , U }, F(None)|F(Special) , U }, - { Enc(X86IncDec) , 0 , 0 , 0x00, 0x1F, 0, { O(GqdwbMem) , U , U , U , U }, F(Lock) , O_000000(48,U,_,_,_) }, - { Enc(X86Rm_B) , 0 , 0 , 0x00, 0x3F, 0, { U , U , U , U , U }, F(None)|F(Special) , U }, - { Enc(X86Op) , 0 , 0 , 0x00, 0x00, 0, { U , U , U , U , U }, F(None) , U }, - { Enc(X86Enter) , 0 , 0 , 0x00, 0x00, 0, { U , U , U , U , U }, F(None)|F(Special) , U }, - { Enc(SimdExtract) , 0 , 8 , 0x00, 0x00, 0, { O(GqdMem) , O(Xmm) , U , U , U }, F(Move) , U }, - { Enc(SimdExtrq) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm)|O(Imm) , O(None)|O(Imm) , U , U }, F(None) , O_660F00(78,0,_,_,_) }, + { Enc(X86RegRm) , 0 , 0 , 0x24, 0x00, 0, { O(Gqdw) , O(GqdwMem) , U , U , U }, F(RW) , U }, + { Enc(X86RegRm) , 0 , 0 , 0x20, 0x00, 0, { O(Gqdw) , O(GqdwMem) , U , U , U }, F(RW) , U }, + { Enc(X86RegRm) , 0 , 0 , 0x04, 0x00, 0, { O(Gqdw) , O(GqdwMem) , U , U , U }, F(RW) , U }, + { Enc(X86RegRm) , 0 , 0 , 0x07, 0x00, 0, { O(Gqdw) , O(GqdwMem) , U , U , U }, F(RW) , U }, + { Enc(X86RegRm) , 0 , 0 , 0x03, 0x00, 0, { O(Gqdw) , O(GqdwMem) , U , U , U }, F(RW) , U }, + { Enc(X86RegRm) , 0 , 0 , 0x01, 0x00, 0, { O(Gqdw) , O(GqdwMem) , U , U , U }, F(RW) , U }, + { Enc(X86RegRm) , 0 , 0 , 0x10, 0x00, 0, { O(Gqdw) , O(GqdwMem) , U , U , U }, F(RW) , U }, + { Enc(X86RegRm) , 0 , 0 , 0x02, 0x00, 0, { O(Gqdw) , O(GqdwMem) , U , U , U }, F(RW) , U }, + { Enc(X86Arith) , 0 , 0 , 0x00, 0x3F, 0, { O(GqdwbMem) , O(GqdwbMem)|O(Imm), U , U , U }, F(RO) , U }, + { Enc(X86Op) , 0 , 0 , 0x40, 0x3F, 0, { U , U , U , U , U }, F(RW)|F(Volatile)|F(Special) , U }, + { Enc(X86Op_66H) , 0 , 0 , 0x40, 0x3F, 0, { U , U , U , U , U }, F(RW)|F(Volatile)|F(Special) , U }, + { Enc(X86RmReg) , 0 , 0 , 0x00, 0x3F, 0, { U , U , U , U , U }, F(RW)|F(Lock)|F(Special) , U }, + { Enc(X86M) , 0 , 0 , 0x00, 0x04, 0, { O(Mem) , U , U , U , U }, F(RW)|F(Lock)|F(Special) , U }, + { Enc(SimdRm) , 0 , 0 , 0x00, 0x3F, 0, { O(Xmm) , O(XmmMem) , U , U , U }, F(RO) , U }, + { Enc(X86Op) , 0 , 0 , 0x00, 0x00, 0, { U , U , U , U , U }, F(RW)|F(Volatile)|F(Special) , U }, + { Enc(X86Crc) , 0 , 0 , 0x00, 0x00, 0, { O(Gqd) , O(GqdwbMem) , U , U , U }, F(RW) , U }, + { Enc(SimdRm) , 0 , 16, 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , U , U , U }, F(WO) , U }, + { Enc(SimdRm) , 0 , 8 , 0x00, 0x00, 0, { O(Mm) , O(XmmMem) , U , U , U }, F(WO) , U }, + { Enc(SimdRm) , 0 , 16, 0x00, 0x00, 0, { O(Xmm) , O(MmMem) , U , U , U }, F(WO) , U }, + { Enc(SimdRm) , 0 , 8 , 0x00, 0x00, 0, { O(Xmm) , O(MmMem) , U , U , U }, F(WO) , U }, + { Enc(SimdRm_Q) , 0 , 8 , 0x00, 0x00, 0, { O(Gqd) , O(XmmMem) , U , U , U }, F(WO) , U }, + { Enc(SimdRm) , 0 , 4 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , U , U , U }, F(WO) , U }, + { Enc(SimdRm_Q) , 0 , 8 , 0x00, 0x00, 0, { O(Xmm) , O(GqdMem) , U , U , U }, F(WO) , U }, + { Enc(SimdRm_Q) , 0 , 4 , 0x00, 0x00, 0, { O(Xmm) , O(GqdMem) , U , U , U }, F(WO) , U }, + { Enc(SimdRm) , 0 , 8 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , U , U , U }, F(WO) , U }, + { Enc(X86Op) , 0 , 0 , 0x28, 0x3F, 0, { U , U , U , U , U }, F(RW)|F(Special) , U }, + { Enc(X86IncDec) , 0 , 0 , 0x00, 0x1F, 0, { O(GqdwbMem) , U , U , U , U }, F(RW)|F(Lock) , O_000000(48,U,_,_,_) }, + { Enc(X86Rm_B) , 0 , 0 , 0x00, 0x3F, 0, { U , U , U , U , U }, F(RW)|F(Special) , U }, + { Enc(X86Op) , 0 , 0 , 0x00, 0x00, 0, { U , U , U , U , U }, F(Volatile) , U }, + { Enc(X86Enter) , 0 , 0 , 0x00, 0x00, 0, { U , U , U , U , U }, F(Volatile)|F(Special) , U }, + { Enc(SimdExtract) , 0 , 8 , 0x00, 0x00, 0, { O(GqdMem) , O(Xmm) , U , U , U }, F(WO) , U }, + { Enc(SimdExtrq) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm)|O(Imm) , O(None)|O(Imm) , U , U }, F(RW) , O_660F00(78,0,_,_,_) }, { Enc(FpuOp) , 0 , 0 , 0x00, 0x00, 0, { U , U , U , U , U }, F(Fp) , U }, { Enc(FpuArith) , 0 , 0 , 0x00, 0x00, 0, { O(FpMem) , O(Fp) , U , U , U }, F(Fp)|F(Mem4_8) , U }, { Enc(FpuRDef) , 0 , 0 , 0x00, 0x00, 0, { O(Fp) , U , U , U , U }, F(Fp) , U }, @@ -2104,2353 +485,2421 @@ const X86InstExtendedInfo _x86InstExtendedInfo[] = { { Enc(FpuFldFst) , 0 , 0 , 0x00, 0x00, 0, { O(Mem) , U , U , U , U }, F(Fp)|F(Mem4_8) , U }, { Enc(FpuFldFst) , 0 , 0 , 0x00, 0x00, 0, { O(Mem) , U , U , U , U }, F(Fp)|F(Mem4_8_10) , O_000000(DB,7,_,_,_) }, { Enc(FpuStsw) , 0 , 0 , 0x00, 0x00, 0, { O(Mem) , U , U , U , U }, F(Fp) , O_9B_X(DFE0,U) }, - { Enc(X86Rm_B) , 0 , 0 , 0x00, 0x3F, 0, { 0 , 0 , U , U , U }, F(None)|F(Special) , U }, - { Enc(X86Imul) , 0 , 0 , 0x00, 0x3F, 0, { 0 , 0 , U , U , U }, F(None)|F(Special) , U }, - { Enc(X86IncDec) , 0 , 0 , 0x00, 0x1F, 0, { O(GqdwbMem) , U , U , U , U }, F(Lock) , O_000000(40,U,_,_,_) }, - { Enc(SimdInsertq) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , O(None)|O(Imm) , O(None)|O(Imm) , U }, F(None) , O_F20F00(78,U,_,_,_) }, - { Enc(X86Int) , 0 , 0 , 0x00, 0x80, 0, { U , U , U , U , U }, F(None) , U }, - { Enc(X86Jcc) , 0 , 0 , 0x24, 0x00, 0, { O(Label) , U , U , U , U }, F(Flow) , U }, - { Enc(X86Jcc) , 0 , 0 , 0x20, 0x00, 0, { O(Label) , U , U , U , U }, F(Flow) , U }, - { Enc(X86Jcc) , 0 , 0 , 0x04, 0x00, 0, { O(Label) , U , U , U , U }, F(Flow) , U }, - { Enc(X86Jcc) , 0 , 0 , 0x07, 0x00, 0, { O(Label) , U , U , U , U }, F(Flow) , U }, - { Enc(X86Jcc) , 0 , 0 , 0x03, 0x00, 0, { O(Label) , U , U , U , U }, F(Flow) , U }, - { Enc(X86Jcc) , 0 , 0 , 0x01, 0x00, 0, { O(Label) , U , U , U , U }, F(Flow) , U }, - { Enc(X86Jcc) , 0 , 0 , 0x10, 0x00, 0, { O(Label) , U , U , U , U }, F(Flow) , U }, - { Enc(X86Jcc) , 0 , 0 , 0x02, 0x00, 0, { O(Label) , U , U , U , U }, F(Flow) , U }, - { Enc(X86Jecxz) , 0 , 0 , 0x00, 0x00, 0, { O(Gqdw) , O(Label) , U , U , U }, F(Flow)|F(Special) , U }, - { Enc(X86Jmp) , 0 , 0 , 0x00, 0x00, 0, { O(Label)|O(Imm) , U , U , U , U }, F(Flow) , O_000000(E9,U,_,_,_) }, - { Enc(X86Op) , 0 , 0 , 0x3E, 0x00, 0, { U , U , U , U , U }, F(None)|F(Special) , U }, - { Enc(SimdRm) , 0 , 16, 0x00, 0x00, 0, { O(Xmm) , O(Mem) , U , U , U }, F(Move) , U }, - { Enc(X86Lea) , 0 , 0 , 0x00, 0x00, 0, { O(Gqd) , O(Mem) , U , U , U }, F(Move) , U }, - { Enc(X86Fence) , 0 , 0 , 0x00, 0x00, 0, { U , U , U , U , U }, F(None) , U }, - { Enc(X86Op) , 0 , 1 , 0x40, 0x00, 0, { U , U , U , U , U }, F(Move)|F(Special) , U }, - { Enc(X86Op) , 0 , 4 , 0x40, 0x00, 0, { U , U , U , U , U }, F(Move)|F(Special) , U }, - { Enc(X86Op) , 0 , 8 , 0x40, 0x00, 0, { U , U , U , U , U }, F(Move)|F(Special) , U }, - { Enc(X86Op_66H) , 0 , 2 , 0x40, 0x00, 0, { U , U , U , U , U }, F(Move)|F(Special) , U }, - { Enc(SimdRm) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , U , U , U }, F(None)|F(Special) , U }, - { Enc(SimdRm) , 0 , 0 , 0x00, 0x00, 0, { O(Mm) , O(Mm) , U , U , U }, F(None)|F(Special) , U }, - { Enc(X86Mov) , 0 , 0 , 0x00, 0x00, 0, { O(GqdwbMem) , O(GqdwbMem)|O(Imm), U , U , U }, F(Move) , U }, - { Enc(X86MovPtr) , 0 , 0 , 0x00, 0x00, 0, { O(Gqdwb) , O(Imm) , U , U , U }, F(Move)|F(Special) , O_000000(A2,U,_,_,_) }, - { Enc(SimdMov) , 0 , 16, 0x00, 0x00, 0, { O(XmmMem) , O(XmmMem) , U , U , U }, F(Move) , O_660F00(29,U,_,_,_) }, - { Enc(SimdMov) , 0 , 16, 0x00, 0x00, 0, { O(XmmMem) , O(XmmMem) , U , U , U }, F(Move) , O_000F00(29,U,_,_,_) }, - { Enc(SimdMovBe) , 0 , 0 , 0x00, 0x00, 0, { O(GqdwMem) , O(GqdwMem) , U , U , U }, F(Move) , O_000F38(F1,U,_,_,_) }, - { Enc(SimdMovD) , 0 , 16, 0x00, 0x00, 0, { O(Gd)|O(MmXmmMem) , O(Gd)|O(MmXmmMem) , U , U , U }, F(Move) , O_000F00(7E,U,_,_,_) }, - { Enc(SimdMov) , 0 , 16, 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , U , U , U }, F(Move) , U }, - { Enc(SimdMov) , 0 , 8 , 0x00, 0x00, 0, { O(Mm) , O(Xmm) , U , U , U }, F(Move) , U }, - { Enc(SimdMov) , 0 , 16, 0x00, 0x00, 0, { O(XmmMem) , O(XmmMem) , U , U , U }, F(Move) , O_660F00(7F,U,_,_,_) }, - { Enc(SimdMov) , 0 , 16, 0x00, 0x00, 0, { O(XmmMem) , O(XmmMem) , U , U , U }, F(Move) , O_F30F00(7F,U,_,_,_) }, - { Enc(SimdMov) , 0 , 8 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , U , U , U }, F(Move) , U }, - { Enc(SimdMov) , 8 , 8 , 0x00, 0x00, 0, { O(XmmMem) , O(XmmMem) , U , U , U }, F(None) , O_660F00(17,U,_,_,_) }, - { Enc(SimdMov) , 8 , 8 , 0x00, 0x00, 0, { O(XmmMem) , O(XmmMem) , U , U , U }, F(None) , O_000F00(17,U,_,_,_) }, - { Enc(SimdMov) , 8 , 8 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , U , U , U }, F(None) , U }, - { Enc(SimdMov) , 0 , 8 , 0x00, 0x00, 0, { O(XmmMem) , O(XmmMem) , U , U , U }, F(Move) , O_660F00(13,U,_,_,_) }, - { Enc(SimdMov) , 0 , 8 , 0x00, 0x00, 0, { O(XmmMem) , O(XmmMem) , U , U , U }, F(Move) , O_000F00(13,U,_,_,_) }, - { Enc(SimdMovNoRexW) , 0 , 8 , 0x00, 0x00, 0, { O(Gqd) , O(Xmm) , U , U , U }, F(Move) , U }, - { Enc(SimdMov) , 0 , 16, 0x00, 0x00, 0, { O(Mem) , O(Xmm) , U , U , U }, F(Move) , O_660F00(E7,U,_,_,_) }, - { Enc(SimdMov) , 0 , 16, 0x00, 0x00, 0, { O(Xmm) , O(Mem) , U , U , U }, F(Move) , U }, - { Enc(SimdMov) , 0 , 8 , 0x00, 0x00, 0, { O(Mem) , O(Gqd) , U , U , U }, F(Move) , O_000F00(C3,U,_,_,_) }, - { Enc(SimdMov) , 0 , 16, 0x00, 0x00, 0, { O(Mem) , O(Xmm) , U , U , U }, F(Move) , O_660F00(2B,U,_,_,_) }, - { Enc(SimdMov) , 0 , 16, 0x00, 0x00, 0, { O(Mem) , O(Xmm) , U , U , U }, F(Move) , O_000F00(2B,U,_,_,_) }, - { Enc(SimdMov) , 0 , 8 , 0x00, 0x00, 0, { O(Mem) , O(Mm) , U , U , U }, F(Move) , O_000F00(E7,U,_,_,_) }, - { Enc(SimdMov) , 0 , 8 , 0x00, 0x00, 0, { O(Mem) , O(Xmm) , U , U , U }, F(Move) , O_F20F00(2B,U,_,_,_) }, - { Enc(SimdMov) , 0 , 4 , 0x00, 0x00, 0, { O(Mem) , O(Xmm) , U , U , U }, F(Move) , O_F30F00(2B,U,_,_,_) }, - { Enc(SimdMovQ) , 0 , 16, 0x00, 0x00, 0, { O(Gq)|O(MmXmmMem) , O(Gq)|O(MmXmmMem) , U , U , U }, F(Move) , O_000F00(7E,U,_,W,_) }, - { Enc(SimdRm) , 0 , 16, 0x00, 0x00, 0, { O(Xmm) , O(Mm) , U , U , U }, F(Move) , U }, - { Enc(X86Op) , 0 , 0 , 0x00, 0x00, 0, { U , U , U , U , U }, F(Move)|F(Special) , U }, - { Enc(X86Op_66H) , 0 , 0 , 0x00, 0x00, 0, { U , U , U , U , U }, F(None)|F(Special) , U }, - { Enc(SimdMov) , 0 , 8 , 0x00, 0x00, 0, { O(XmmMem) , O(XmmMem) , U , U , U }, F(Move) |F(Z) , O_F20F00(11,U,_,_,_) }, - { Enc(SimdMov) , 0 , 4 , 0x00, 0x00, 0, { O(XmmMem) , O(XmmMem) , U , U , U }, F(Move) |F(Z) , O_F30F00(11,U,_,_,_) }, - { Enc(X86MovSxZx) , 0 , 0 , 0x00, 0x00, 0, { O(Gqdw) , O(GwbMem) , U , U , U }, F(Move) , U }, - { Enc(X86MovSxd) , 0 , 0 , 0x00, 0x00, 0, { O(Gq) , O(GdMem) , U , U , U }, F(Move) , U }, - { Enc(SimdMov) , 0 , 16, 0x00, 0x00, 0, { O(XmmMem) , O(XmmMem) , U , U , U }, F(Move) , O_660F00(11,U,_,_,_) }, - { Enc(SimdMov) , 0 , 16, 0x00, 0x00, 0, { O(XmmMem) , O(XmmMem) , U , U , U }, F(Move) , O_000F00(11,U,_,_,_) }, - { Enc(AvxRvm_OptW) , 0 , 0 , 0x00, 0x00, 0, { O(Gqd) , O(Gqd) , O(GqdMem) , U , U }, F(None) , U }, - { Enc(X86Rm_B) , 0 , 0 , 0x00, 0x3F, 0, { O(GqdwbMem) , U , U , U , U }, F(Lock) , U }, - { Enc(X86Rm_B) , 0 , 0 , 0x00, 0x00, 0, { O(GqdwbMem) , U , U , U , U }, F(Lock) , U }, - { Enc(SimdRm_P) , 0 , 0 , 0x00, 0x00, 0, { O(MmXmm) , O(MmXmmMem) , U , U , U }, F(None) , U }, - { Enc(SimdRmi_P) , 0 , 0 , 0x00, 0x00, 0, { O(MmXmm) , O(MmXmmMem) , O(Imm) , U , U }, F(None) , U }, - { Enc(SimdExtract) , 0 , 8 , 0x00, 0x00, 0, { O(Gd)|O(Gb)|O(Mem), O(Xmm) , U , U , U }, F(Move) , U }, - { Enc(SimdExtract) , 0 , 8 , 0x00, 0x00, 0, { O(GdMem) , O(Xmm) , U , U , U }, F(Move) , U }, - { Enc(SimdPextrw) , 0 , 8 , 0x00, 0x00, 0, { O(GdMem) , O(MmXmm) , U , U , U }, F(Move) , O_000F3A(15,U,_,_,_) }, - { Enc(Simd3dNow) , 0 , 8 , 0x00, 0x00, 0, { O(Mm) , O(MmMem) , U , U , U }, F(Move) , U }, - { Enc(Simd3dNow) , 0 , 0 , 0x00, 0x00, 0, { O(Mm) , O(MmMem) , U , U , U }, F(None) , U }, - { Enc(SimdRmi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(GdMem) , O(Imm) , U , U }, F(None) , U }, - { Enc(SimdRmi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(GqMem) , O(Imm) , U , U }, F(None) , U }, - { Enc(SimdRmi_P) , 0 , 0 , 0x00, 0x00, 0, { O(MmXmm) , O(GdMem) , O(Imm) , U , U }, F(None) , U }, - { Enc(SimdRm_PQ) , 0 , 8 , 0x00, 0x00, 0, { O(Gqd) , O(MmXmm) , U , U , U }, F(Move) , U }, - { Enc(X86Pop) , 0 , 0 , 0x00, 0x00, 0, { 0 , U , U , U , U }, F(None)|F(Special) , O_000000(58,U,_,_,_) }, - { Enc(X86Op) , 0 , 0 , 0x00, 0xFF, 0, { U , U , U , U , U }, F(None)|F(Special) , U }, - { Enc(X86Prefetch) , 0 , 0 , 0x00, 0x00, 0, { O(Mem) , O(Imm) , U , U , U }, F(None) , U }, - { Enc(SimdRmi) , 0 , 16, 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , O(Imm) , U , U }, F(Move) , U }, - { Enc(SimdRmi_P) , 0 , 8 , 0x00, 0x00, 0, { O(Mm) , O(MmMem) , O(Imm) , U , U }, F(Move) , U }, - { Enc(SimdRmRi_P) , 0 , 0 , 0x00, 0x00, 0, { O(MmXmm) , O(MmXmmMem)|O(Imm), U , U , U }, F(None) , O_000F00(72,6,_,_,_) }, - { Enc(SimdRmRi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Imm) , U , U , U }, F(None) , O_660F00(73,7,_,_,_) }, - { Enc(SimdRmRi_P) , 0 , 0 , 0x00, 0x00, 0, { O(MmXmm) , O(MmXmmMem)|O(Imm), U , U , U }, F(None) , O_000F00(73,6,_,_,_) }, - { Enc(SimdRmRi_P) , 0 , 0 , 0x00, 0x00, 0, { O(MmXmm) , O(MmXmmMem)|O(Imm), U , U , U }, F(None) , O_000F00(71,6,_,_,_) }, - { Enc(SimdRmRi_P) , 0 , 0 , 0x00, 0x00, 0, { O(MmXmm) , O(MmXmmMem)|O(Imm), U , U , U }, F(None) , O_000F00(72,4,_,_,_) }, - { Enc(SimdRmRi_P) , 0 , 0 , 0x00, 0x00, 0, { O(MmXmm) , O(MmXmmMem)|O(Imm), U , U , U }, F(None) , O_000F00(71,4,_,_,_) }, - { Enc(SimdRmRi_P) , 0 , 0 , 0x00, 0x00, 0, { O(MmXmm) , O(MmXmmMem)|O(Imm), U , U , U }, F(None) , O_000F00(72,2,_,_,_) }, - { Enc(SimdRmRi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Imm) , U , U , U }, F(None) , O_660F00(73,3,_,_,_) }, - { Enc(SimdRmRi_P) , 0 , 0 , 0x00, 0x00, 0, { O(MmXmm) , O(MmXmmMem)|O(Imm), U , U , U }, F(None) , O_000F00(73,2,_,_,_) }, - { Enc(SimdRmRi_P) , 0 , 0 , 0x00, 0x00, 0, { O(MmXmm) , O(MmXmmMem)|O(Imm), U , U , U }, F(None) , O_000F00(71,2,_,_,_) }, - { Enc(X86Push) , 0 , 0 , 0x00, 0x00, 0, { 0 , U , U , U , U }, F(None)|F(Special) , O_000000(50,U,_,_,_) }, - { Enc(X86Op) , 0 , 0 , 0xFF, 0x00, 0, { U , U , U , U , U }, F(None)|F(Special) , U }, - { Enc(X86Rot) , 0 , 0 , 0x20, 0x21, 0, { O(GqdwbMem) , O(Gb)|O(Imm) , U , U , U }, F(None)|F(Special) , U }, - { Enc(X86Rm) , 0 , 8 , 0x00, 0x00, 0, { O(Gqd) , U , U , U , U }, F(Move) , U }, - { Enc(X86Rm) , 0 , 8 , 0x00, 0x3F, 0, { O(Gqdw) , U , U , U , U }, F(Move) , U }, - { Enc(X86Rep) , 0 , 0 , 0x40, 0x00, 0, { O(Mem) , U , U , U , U }, F(None)|F(Special) , U }, - { Enc(X86Rep) , 0 , 0 , 0x40, 0x00, 0, { O(Mem) , O(Mem) , U , U , U }, F(None)|F(Special) , U }, - { Enc(X86Rep) , 0 , 0 , 0x40, 0x3F, 0, { O(Mem) , O(Mem) , U , U , U }, F(None)|F(Special) , U }, - { Enc(X86Ret) , 0 , 0 , 0x00, 0x00, 0, { U , U , U , U , U }, F(None)|F(Special) , U }, - { Enc(X86Rot) , 0 , 0 , 0x00, 0x21, 0, { O(GqdwbMem) , O(Gb)|O(Imm) , U , U , U }, F(None)|F(Special) , U }, - { Enc(AvxRmi_OptW) , 0 , 0 , 0x00, 0x00, 0, { O(Gqd) , O(GqdMem) , O(Imm) , U , U }, F(None) , U }, - { Enc(SimdRmi) , 0 , 8 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , O(Imm) , U , U }, F(Move) , U }, - { Enc(SimdRmi) , 0 , 4 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , O(Imm) , U , U }, F(Move) , U }, - { Enc(X86Op) , 0 , 0 , 0x00, 0x3E, 0, { U , U , U , U , U }, F(None)|F(Special) , U }, - { Enc(X86Rot) , 0 , 0 , 0x00, 0x3F, 0, { O(GqdwbMem) , O(Gb)|O(Imm) , U , U , U }, F(None)|F(Special) , U }, - { Enc(AvxRmv_OptW) , 0 , 0 , 0x00, 0x00, 0, { O(Gqd) , O(GqdMem) , O(Gqd) , U , U }, F(None) , U }, - { Enc(X86Set) , 0 , 1 , 0x24, 0x00, 0, { O(GbMem) , U , U , U , U }, F(Move) , U }, - { Enc(X86Set) , 0 , 1 , 0x20, 0x00, 0, { O(GbMem) , U , U , U , U }, F(Move) , U }, - { Enc(X86Set) , 0 , 1 , 0x04, 0x00, 0, { O(GbMem) , U , U , U , U }, F(Move) , U }, - { Enc(X86Set) , 0 , 1 , 0x07, 0x00, 0, { O(GbMem) , U , U , U , U }, F(Move) , U }, - { Enc(X86Set) , 0 , 1 , 0x03, 0x00, 0, { O(GbMem) , U , U , U , U }, F(Move) , U }, - { Enc(X86Set) , 0 , 1 , 0x01, 0x00, 0, { O(GbMem) , U , U , U , U }, F(Move) , U }, - { Enc(X86Set) , 0 , 1 , 0x10, 0x00, 0, { O(GbMem) , U , U , U , U }, F(Move) , U }, - { Enc(X86Set) , 0 , 1 , 0x02, 0x00, 0, { O(GbMem) , U , U , U , U }, F(Move) , U }, - { Enc(X86Shlrd) , 0 , 0 , 0x00, 0x3F, 0, { O(GqdwbMem) , O(Gb) , U , U , U }, F(None)|F(Special) , U }, - { Enc(X86Shlrd) , 0 , 0 , 0x00, 0x3F, 0, { O(GqdwbMem) , O(Gqdwb) , U , U , U }, F(None)|F(Special) , U }, - { Enc(X86Op) , 0 , 0 , 0x40, 0x00, 0, { U , U , U , U , U }, F(None)|F(Special) , U }, - { Enc(X86Op_66H) , 0 , 0 , 0x40, 0x00, 0, { U , U , U , U , U }, F(None)|F(Special) , U }, - { Enc(X86Test) , 0 , 0 , 0x00, 0x3F, 0, { O(GqdwbMem) , O(Gqdwb)|O(Imm) , U , U , U }, F(Test) , O_000000(F6,U,_,_,_) }, - { Enc(X86RegRm) , 0 , 0 , 0x00, 0x3F, 0, { O(Gqdw) , O(GqdwMem) , U , U , U }, F(Move) , U }, - { Enc(AvxRvm_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(Xy) , O(XyMem) , U , U }, F(Avx) , U }, - { Enc(AvxRvm) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , O(XmmMem) , U , U }, F(Avx) , U }, - { Enc(AvxRm) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , U , U , U }, F(Avx) , U }, - { Enc(AvxRmi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , O(Imm) , U , U }, F(Avx) , U }, - { Enc(AvxRvmi_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(Xy) , O(XyMem) , O(Imm) , U }, F(Avx) , U }, - { Enc(AvxRvmr_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(Xy) , O(XyMem) , O(Xy) , U }, F(Avx) , U }, - { Enc(AvxRm) , 0 , 0 , 0x00, 0x00, 0, { O(Ymm) , O(Mem) , U , U , U }, F(Avx) , U }, - { Enc(AvxRm) , 0 , 0 , 0x00, 0x00, 0, { O(Ymm) , O(XmmMem) , U , U , U }, F(Avx) , U }, - { Enc(AvxRm_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(XmmMem) , U , U , U }, F(Avx) , U }, - { Enc(AvxRvmi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , O(XmmMem) , O(Imm) , U }, F(Avx) , U }, - { Enc(AvxRm_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(XyMem) , U , U , U }, F(Avx) , U }, - { Enc(AvxRm) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(XyMem) , U , U , U }, F(Avx) , U }, - { Enc(AvxMri_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(XmmMem) , O(Xy) , O(Imm) , U , U }, F(Avx) , U }, - { Enc(AvxRm) , 0 , 0 , 0x00, 0x00, 0, { O(Gqd) , O(XmmMem) , U , U , U }, F(Avx) , U }, - { Enc(AvxRvm) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , O(GqdMem) , U , U }, F(Avx) , U }, - { Enc(AvxRm_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(XyMem) , U , U , U }, F(Avx) , U }, - { Enc(AvxMri) , 0 , 0 , 0x00, 0x00, 0, { O(XmmMem) , O(Ymm) , O(Imm) , U , U }, F(Avx) , U }, - { Enc(AvxMri) , 0 , 0 , 0x00, 0x00, 0, { O(GqdMem) , O(Xmm) , O(Imm) , U , U }, F(Avx) , U }, - { Enc(Fma4_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U }, F(Avx) , U }, - { Enc(Fma4) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , O(XmmMem) , O(XmmMem) , U }, F(Avx) , U }, - { Enc(XopRm_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(XyMem) , U , U , U }, F(Avx) , U }, - { Enc(XopRm) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , U , U , U }, F(Avx) , U }, - { Enc(AvxGather) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(Mem) , O(Xy) , U , U }, F(Avx) , U }, - { Enc(AvxGatherEx) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Mem) , O(Xmm) , U , U }, F(Avx) , U }, - { Enc(AvxRvmi) , 0 , 0 , 0x00, 0x00, 0, { O(Ymm) , O(Ymm) , O(XmmMem) , O(Imm) , U }, F(Avx) , U }, - { Enc(AvxRm_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(Mem) , U , U , U }, F(Avx) , U }, - { Enc(AvxM) , 0 , 0 , 0x00, 0x00, 0, { O(Mem) , U , U , U , U }, F(Avx) , U }, - { Enc(AvxRm) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , U , U , U }, F(Avx) , U }, - { Enc(AvxRvmMvr_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(XyMem) , O(Xy) , O(XyMem) , U , U }, F(Avx) , O_660F38(2F,U,_,_,_) }, - { Enc(AvxRvmMvr_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(XyMem) , O(Xy) , O(XyMem) , U , U }, F(Avx) , O_660F38(2E,U,_,_,_) }, - { Enc(AvxRmMr_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(XyMem) , O(XyMem) , U , U , U }, F(Avx) , O_660F00(29,U,_,_,_) }, - { Enc(AvxRmMr_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(XyMem) , O(XyMem) , U , U , U }, F(Avx) , O_000F00(29,U,_,_,_) }, - { Enc(AvxMovDQ) , 0 , 0 , 0x00, 0x00, 0, { O(XmmMem) , O(XmmMem) , U , U , U }, F(Avx) , O_660F00(7E,U,_,_,_) }, - { Enc(AvxRmMr_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(XyMem) , O(XyMem) , U , U , U }, F(Avx) , O_660F00(7F,U,_,_,_) }, - { Enc(AvxRmMr_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(XyMem) , O(XyMem) , U , U , U }, F(Avx) , O_F30F00(7F,U,_,_,_) }, - { Enc(AvxRvm) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , O(Xmm) , U , U }, F(Avx) , U }, - { Enc(AvxRvmMr) , 0 , 0 , 0x00, 0x00, 0, { O(XmmMem) , O(Xmm) , O(Mem) , U , U }, F(Avx) , O_660F00(17,U,_,_,_) }, - { Enc(AvxRvmMr) , 0 , 0 , 0x00, 0x00, 0, { O(XmmMem) , O(Xmm) , O(Mem) , U , U }, F(Avx) , O_000F00(17,U,_,_,_) }, - { Enc(AvxRvmMr) , 0 , 0 , 0x00, 0x00, 0, { O(XmmMem) , O(Xmm) , O(Mem) , U , U }, F(Avx) , O_660F00(13,U,_,_,_) }, - { Enc(AvxRvmMr) , 0 , 0 , 0x00, 0x00, 0, { O(XmmMem) , O(Xmm) , O(Mem) , U , U }, F(Avx) , O_000F00(13,U,_,_,_) }, - { Enc(AvxRm_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Gqd) , O(Xy) , U , U , U }, F(Avx) , U }, - { Enc(AvxMr_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Mem) , O(Xy) , U , U , U }, F(Avx) , U }, - { Enc(AvxMovSsSd) , 0 , 0 , 0x00, 0x00, 0, { O(XmmMem) , O(XmmMem) , O(Xmm) , U , U }, F(Avx) , O_F20F00(11,U,_,_,_) }, - { Enc(AvxMovSsSd) , 0 , 0 , 0x00, 0x00, 0, { O(XmmMem) , O(Xmm) , O(Xmm) , U , U }, F(Avx) , O_F30F00(11,U,_,_,_) }, - { Enc(AvxRmMr_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(XyMem) , O(XyMem) , U , U , U }, F(Avx) , O_660F00(11,U,_,_,_) }, - { Enc(AvxRmMr_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(XyMem) , O(XyMem) , U , U , U }, F(Avx) , O_000F00(11,U,_,_,_) }, - { Enc(AvxRvmr) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(Xy) , O(XyMem) , O(Xy) , U }, F(Avx) , U }, - { Enc(XopRvrmRvmr_OptL), 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U }, F(Avx) , U }, - { Enc(XopRvmi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , O(XmmMem) , O(Imm) , U }, F(Avx) , U }, - { Enc(AvxRvmi) , 0 , 0 , 0x00, 0x00, 0, { O(Ymm) , O(Ymm) , O(YmmMem) , O(Imm) , U }, F(Avx) , U }, - { Enc(AvxRvm) , 0 , 0 , 0x00, 0x00, 0, { O(Ymm) , O(Ymm) , O(YmmMem) , U , U }, F(Avx) , U }, - { Enc(AvxRvrmRvmr_OptL), 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U }, F(Avx) , U }, - { Enc(AvxRvmRmi_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U }, F(Avx) , O_660F3A(05,U,_,_,_) }, - { Enc(AvxRvmRmi_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U }, F(Avx) , O_660F3A(04,U,_,_,_) }, - { Enc(AvxRmi) , 0 , 0 , 0x00, 0x00, 0, { O(Ymm) , O(YmmMem) , O(Imm) , U , U }, F(Avx) , U }, - { Enc(AvxMri) , 0 , 0 , 0x00, 0x00, 0, { O(GqdwbMem) , O(Xmm) , O(Imm) , U , U }, F(Avx) , U }, - { Enc(AvxMri) , 0 , 0 , 0x00, 0x00, 0, { O(GqMem) , O(Xmm) , O(Imm) , U , U }, F(Avx) , U }, - { Enc(AvxMri) , 0 , 0 , 0x00, 0x00, 0, { O(GqdwMem) , O(Xmm) , O(Imm) , U , U }, F(Avx) , U }, - { Enc(AvxRvmi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , O(GqdwbMem) , O(Imm) , U }, F(Avx) , U }, - { Enc(AvxRvmi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , O(GqdMem) , O(Imm) , U }, F(Avx) , U }, - { Enc(AvxRvmi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , O(GqMem) , O(Imm) , U }, F(Avx) , U }, - { Enc(AvxRvmi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , O(GqdwMem) , O(Imm) , U }, F(Avx) , U }, - { Enc(XopRvmr) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , O(XmmMem) , O(Xmm) , U }, F(Avx) , U }, - { Enc(AvxRvmMvr_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(XyMem) , O(Xy) , O(XyMem) , U , U }, F(Avx) , O_660F38(8E,U,_,_,_) }, - { Enc(XopRvrmRvmr) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , O(XmmMem) , O(XmmMem) , U }, F(Avx) , U }, - { Enc(XopRvmRmi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , O(XmmMem)|O(Imm) , U , U }, F(Avx) , O_00_M08(C0,U,_,_,_) }, - { Enc(XopRvmRmi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , O(XmmMem)|O(Imm) , U , U }, F(Avx) , O_00_M08(C2,U,_,_,_) }, - { Enc(XopRvmRmi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , O(XmmMem)|O(Imm) , U , U }, F(Avx) , O_00_M08(C3,U,_,_,_) }, - { Enc(XopRvmRmi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , O(XmmMem)|O(Imm) , U , U }, F(Avx) , O_00_M08(C1,U,_,_,_) }, - { Enc(XopRvmRmv) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , O(XmmMem) , U , U }, F(Avx) , U }, - { Enc(AvxRmi_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(XyMem) , O(Imm) , U , U }, F(Avx) , U }, - { Enc(AvxRvmVmi_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U }, F(Avx) , O_660F00(72,6,_,_,_) }, - { Enc(AvxVmi_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(XyMem) , O(Imm) , U , U }, F(Avx) , U }, - { Enc(AvxRvmVmi_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U }, F(Avx) , O_660F00(73,6,_,_,_) }, - { Enc(AvxRvmVmi_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U }, F(Avx) , O_660F00(71,6,_,_,_) }, - { Enc(AvxRvmVmi_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U }, F(Avx) , O_660F00(72,4,_,_,_) }, - { Enc(AvxRvmVmi_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U }, F(Avx) , O_660F00(71,4,_,_,_) }, - { Enc(AvxRvmVmi_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U }, F(Avx) , O_660F00(72,2,_,_,_) }, - { Enc(AvxRvmVmi_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U }, F(Avx) , O_660F00(73,2,_,_,_) }, - { Enc(AvxRvmVmi_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U }, F(Avx) , O_660F00(71,2,_,_,_) }, - { Enc(AvxRm_OptL) , 0 , 0 , 0x00, 0x3F, 0, { O(Xy) , O(XyMem) , U , U , U }, F(Avx) , U }, - { Enc(AvxRm_OptL) , 0 , 0 , 0x00, 0x3F, 0, { O(Xy) , O(XyMem) , U , U , U }, F(Test) , U }, - { Enc(AvxRm) , 0 , 0 , 0x00, 0x3F, 0, { O(Xmm) , O(XmmMem) , U , U , U }, F(Avx) , U }, - { Enc(AvxOp) , 0 , 0 , 0x00, 0x00, 0, { U , U , U , U , U }, F(Avx) , U }, - { Enc(X86Rm) , 0 , 0 , 0x00, 0x00, 0, { O(Gqd) , U , U , U , U }, F(None) , U }, - { Enc(X86Xadd) , 0 , 0 , 0x00, 0x3F, 0, { O(GqdwbMem) , O(Gqdwb) , U , U , U }, F(Xchg)|F(Lock) , U }, - { Enc(X86Xchg) , 0 , 0 , 0x00, 0x00, 0, { O(GqdwbMem) , O(Gqdwb) , U , U , U }, F(Xchg)|F(Lock) , U }, - { Enc(X86M) , 0 , 0 , 0x00, 0x00, 0, { O(Mem) , U , U , U , U }, F(None)|F(Special) , U } + { Enc(X86Op) , 0 , 0 , 0x00, 0x00, 0, { U , U , U , U , U }, F(Fp)|F(Volatile) , U }, + { Enc(X86Rm_B) , 0 , 0 , 0x00, 0x3F, 0, { 0 , 0 , U , U , U }, F(RW)|F(Special) , U }, + { Enc(X86Imul) , 0 , 0 , 0x00, 0x3F, 0, { 0 , 0 , U , U , U }, F(RW)|F(Special) , U }, + { Enc(X86IncDec) , 0 , 0 , 0x00, 0x1F, 0, { O(GqdwbMem) , U , U , U , U }, F(RW)|F(Lock) , O_000000(40,U,_,_,_) }, + { Enc(SimdInsertq) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , O(None)|O(Imm) , O(None)|O(Imm) , U }, F(RW) , O_F20F00(78,U,_,_,_) }, + { Enc(X86Int) , 0 , 0 , 0x00, 0x80, 0, { U , U , U , U , U }, F(Volatile) , U }, + { Enc(X86Jcc) , 0 , 0 , 0x24, 0x00, 0, { O(Label) , U , U , U , U }, F(Flow)|F(Volatile) , U }, + { Enc(X86Jcc) , 0 , 0 , 0x20, 0x00, 0, { O(Label) , U , U , U , U }, F(Flow)|F(Volatile) , U }, + { Enc(X86Jcc) , 0 , 0 , 0x04, 0x00, 0, { O(Label) , U , U , U , U }, F(Flow)|F(Volatile) , U }, + { Enc(X86Jcc) , 0 , 0 , 0x07, 0x00, 0, { O(Label) , U , U , U , U }, F(Flow)|F(Volatile) , U }, + { Enc(X86Jcc) , 0 , 0 , 0x03, 0x00, 0, { O(Label) , U , U , U , U }, F(Flow)|F(Volatile) , U }, + { Enc(X86Jcc) , 0 , 0 , 0x01, 0x00, 0, { O(Label) , U , U , U , U }, F(Flow)|F(Volatile) , U }, + { Enc(X86Jcc) , 0 , 0 , 0x10, 0x00, 0, { O(Label) , U , U , U , U }, F(Flow)|F(Volatile) , U }, + { Enc(X86Jcc) , 0 , 0 , 0x02, 0x00, 0, { O(Label) , U , U , U , U }, F(Flow)|F(Volatile) , U }, + { Enc(X86Jecxz) , 0 , 0 , 0x00, 0x00, 0, { O(Gqdw) , O(Label) , U , U , U }, F(Flow)|F(Volatile)|F(Special) , U }, + { Enc(X86Jmp) , 0 , 0 , 0x00, 0x00, 0, { O(Label)|O(Imm) , U , U , U , U }, F(Flow)|F(Volatile) , O_000000(E9,U,_,_,_) }, + { Enc(X86Op) , 0 , 0 , 0x3E, 0x00, 0, { U , U , U , U , U }, F(RW)|F(Volatile)|F(Special) , U }, + { Enc(SimdRm) , 0 , 16, 0x00, 0x00, 0, { O(Xmm) , O(Mem) , U , U , U }, F(WO) , U }, + { Enc(X86Lea) , 0 , 0 , 0x00, 0x00, 0, { O(Gqd) , O(Mem) , U , U , U }, F(WO) , U }, + { Enc(X86Op) , 0 , 0 , 0x00, 0x00, 0, { U , U , U , U , U }, F(Volatile)|F(Special) , U }, + { Enc(X86Fence) , 0 , 0 , 0x00, 0x00, 0, { U , U , U , U , U }, F(Volatile) , U }, + { Enc(X86Op) , 0 , 1 , 0x40, 0x00, 0, { U , U , U , U , U }, F(WO)|F(Special) , U }, + { Enc(X86Op) , 0 , 4 , 0x40, 0x00, 0, { U , U , U , U , U }, F(WO)|F(Special) , U }, + { Enc(X86Op) , 0 , 8 , 0x40, 0x00, 0, { U , U , U , U , U }, F(WO)|F(Special) , U }, + { Enc(X86Op_66H) , 0 , 2 , 0x40, 0x00, 0, { U , U , U , U , U }, F(WO)|F(Special) , U }, + { Enc(SimdRm) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , U , U , U }, F(RW)|F(Special) , U }, + { Enc(SimdRm) , 0 , 0 , 0x00, 0x00, 0, { O(Mm) , O(Mm) , U , U , U }, F(RW)|F(Special) , U }, + { Enc(X86Fence) , 0 , 0 , 0x00, 0x00, 0, { U , U , U , U , U }, F(RW) , U }, + { Enc(X86Op) , 0 , 0 , 0x00, 0x00, 0, { U , U , U , U , U }, F(RO)|F(Volatile)|F(Special) , U }, + { Enc(X86Mov) , 0 , 0 , 0x00, 0x00, 0, { O(GqdwbMem) , O(GqdwbMem)|O(Imm), U , U , U }, F(WO) , U }, + { Enc(X86MovPtr) , 0 , 0 , 0x00, 0x00, 0, { O(Gqdwb) , O(Imm) , U , U , U }, F(WO)|F(Special) , O_000000(A2,U,_,_,_) }, + { Enc(SimdMov) , 0 , 16, 0x00, 0x00, 0, { O(XmmMem) , O(XmmMem) , U , U , U }, F(WO) , O_660F00(29,U,_,_,_) }, + { Enc(SimdMov) , 0 , 16, 0x00, 0x00, 0, { O(XmmMem) , O(XmmMem) , U , U , U }, F(WO) , O_000F00(29,U,_,_,_) }, + { Enc(SimdMovBe) , 0 , 0 , 0x00, 0x00, 0, { O(GqdwMem) , O(GqdwMem) , U , U , U }, F(WO) , O_000F38(F1,U,_,_,_) }, + { Enc(SimdMovD) , 0 , 16, 0x00, 0x00, 0, { O(Gd)|O(MmXmmMem) , O(Gd)|O(MmXmmMem) , U , U , U }, F(WO) , O_000F00(7E,U,_,_,_) }, + { Enc(SimdMov) , 0 , 16, 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , U , U , U }, F(WO) , U }, + { Enc(SimdMov) , 0 , 8 , 0x00, 0x00, 0, { O(Mm) , O(Xmm) , U , U , U }, F(WO) , U }, + { Enc(SimdMov) , 0 , 16, 0x00, 0x00, 0, { O(XmmMem) , O(XmmMem) , U , U , U }, F(WO) , O_660F00(7F,U,_,_,_) }, + { Enc(SimdMov) , 0 , 16, 0x00, 0x00, 0, { O(XmmMem) , O(XmmMem) , U , U , U }, F(WO) , O_F30F00(7F,U,_,_,_) }, + { Enc(SimdMov) , 0 , 8 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , U , U , U }, F(WO) , U }, + { Enc(SimdMov) , 8 , 8 , 0x00, 0x00, 0, { O(XmmMem) , O(XmmMem) , U , U , U }, F(RW) , O_660F00(17,U,_,_,_) }, + { Enc(SimdMov) , 8 , 8 , 0x00, 0x00, 0, { O(XmmMem) , O(XmmMem) , U , U , U }, F(RW) , O_000F00(17,U,_,_,_) }, + { Enc(SimdMov) , 8 , 8 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , U , U , U }, F(RW) , U }, + { Enc(SimdMov) , 0 , 8 , 0x00, 0x00, 0, { O(XmmMem) , O(XmmMem) , U , U , U }, F(WO) , O_660F00(13,U,_,_,_) }, + { Enc(SimdMov) , 0 , 8 , 0x00, 0x00, 0, { O(XmmMem) , O(XmmMem) , U , U , U }, F(WO) , O_000F00(13,U,_,_,_) }, + { Enc(SimdMovNoRexW) , 0 , 8 , 0x00, 0x00, 0, { O(Gqd) , O(Xmm) , U , U , U }, F(WO) , U }, + { Enc(SimdMov) , 0 , 16, 0x00, 0x00, 0, { O(Mem) , O(Xmm) , U , U , U }, F(WO) , O_660F00(E7,U,_,_,_) }, + { Enc(SimdMov) , 0 , 16, 0x00, 0x00, 0, { O(Xmm) , O(Mem) , U , U , U }, F(WO) , U }, + { Enc(SimdMov) , 0 , 8 , 0x00, 0x00, 0, { O(Mem) , O(Gqd) , U , U , U }, F(WO) , O_000F00(C3,U,_,_,_) }, + { Enc(SimdMov) , 0 , 16, 0x00, 0x00, 0, { O(Mem) , O(Xmm) , U , U , U }, F(WO) , O_660F00(2B,U,_,_,_) }, + { Enc(SimdMov) , 0 , 16, 0x00, 0x00, 0, { O(Mem) , O(Xmm) , U , U , U }, F(WO) , O_000F00(2B,U,_,_,_) }, + { Enc(SimdMov) , 0 , 8 , 0x00, 0x00, 0, { O(Mem) , O(Mm) , U , U , U }, F(WO) , O_000F00(E7,U,_,_,_) }, + { Enc(SimdMov) , 0 , 8 , 0x00, 0x00, 0, { O(Mem) , O(Xmm) , U , U , U }, F(WO) , O_F20F00(2B,U,_,_,_) }, + { Enc(SimdMov) , 0 , 4 , 0x00, 0x00, 0, { O(Mem) , O(Xmm) , U , U , U }, F(WO) , O_F30F00(2B,U,_,_,_) }, + { Enc(SimdMovQ) , 0 , 16, 0x00, 0x00, 0, { O(Gq)|O(MmXmmMem) , O(Gq)|O(MmXmmMem) , U , U , U }, F(WO) , O_000F00(7E,U,_,W,_) }, + { Enc(SimdRm) , 0 , 16, 0x00, 0x00, 0, { O(Xmm) , O(Mm) , U , U , U }, F(WO) , U }, + { Enc(X86Op) , 0 , 0 , 0x00, 0x00, 0, { U , U , U , U , U }, F(WO)|F(Special) , U }, + { Enc(X86Op_66H) , 0 , 0 , 0x00, 0x00, 0, { U , U , U , U , U }, F(WO)|F(Special) , U }, + { Enc(SimdMov) , 0 , 8 , 0x00, 0x00, 0, { O(XmmMem) , O(XmmMem) , U , U , U }, F(WO)|F(ZeroIfMem) , O_F20F00(11,U,_,_,_) }, + { Enc(SimdMov) , 0 , 4 , 0x00, 0x00, 0, { O(XmmMem) , O(XmmMem) , U , U , U }, F(WO)|F(ZeroIfMem) , O_F30F00(11,U,_,_,_) }, + { Enc(X86MovsxMovzx) , 0 , 0 , 0x00, 0x00, 0, { O(Gqdw) , O(GwbMem) , U , U , U }, F(WO) , U }, + { Enc(X86Movsxd) , 0 , 0 , 0x00, 0x00, 0, { O(Gq) , O(GdMem) , U , U , U }, F(WO) , U }, + { Enc(SimdMov) , 0 , 16, 0x00, 0x00, 0, { O(XmmMem) , O(XmmMem) , U , U , U }, F(WO) , O_660F00(11,U,_,_,_) }, + { Enc(SimdMov) , 0 , 16, 0x00, 0x00, 0, { O(XmmMem) , O(XmmMem) , U , U , U }, F(WO) , O_000F00(11,U,_,_,_) }, + { Enc(AvxRvm_OptW) , 0 , 0 , 0x00, 0x00, 0, { O(Gqd) , O(Gqd) , O(GqdMem) , U , U }, F(RW) , U }, + { Enc(X86Rm_B) , 0 , 0 , 0x00, 0x3F, 0, { O(GqdwbMem) , U , U , U , U }, F(RW)|F(Lock) , U }, + { Enc(X86Op) , 0 , 0 , 0x00, 0x00, 0, { U , U , U , U , U }, F(None) , U }, + { Enc(X86Rm_B) , 0 , 0 , 0x00, 0x00, 0, { O(GqdwbMem) , U , U , U , U }, F(RW)|F(Lock) , U }, + { Enc(SimdRm_P) , 0 , 0 , 0x00, 0x00, 0, { O(MmXmm) , O(MmXmmMem) , U , U , U }, F(RW) , U }, + { Enc(SimdRmi_P) , 0 , 0 , 0x00, 0x00, 0, { O(MmXmm) , O(MmXmmMem) , O(Imm) , U , U }, F(RW) , U }, + { Enc(X86Op) , 0 , 0 , 0x00, 0x00, 0, { U , U , U , U , U }, F(RW) , U }, + { Enc(Simd3dNow) , 0 , 0 , 0x00, 0x00, 0, { O(Mm) , O(MmMem) , U , U , U }, F(RW) , U }, + { Enc(SimdRmi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , O(Imm) , U , U }, F(WO)|F(Special) , U }, + { Enc(AvxRvm_OptW) , 0 , 0 , 0x00, 0x00, 0, { O(Gqd) , O(Gqd) , O(GqdMem) , U , U }, F(WO) , U }, + { Enc(SimdExtract) , 0 , 8 , 0x00, 0x00, 0, { O(Gd)|O(Gb)|O(Mem), O(Xmm) , U , U , U }, F(WO) , U }, + { Enc(SimdExtract) , 0 , 8 , 0x00, 0x00, 0, { O(GdMem) , O(Xmm) , U , U , U }, F(WO) , U }, + { Enc(SimdPextrw) , 0 , 8 , 0x00, 0x00, 0, { O(GdMem) , O(MmXmm) , U , U , U }, F(WO) , O_000F3A(15,U,_,_,_) }, + { Enc(Simd3dNow) , 0 , 8 , 0x00, 0x00, 0, { O(Mm) , O(MmMem) , U , U , U }, F(WO) , U }, + { Enc(SimdRmi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(GdMem) , O(Imm) , U , U }, F(RW) , U }, + { Enc(SimdRmi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(GqMem) , O(Imm) , U , U }, F(RW) , U }, + { Enc(SimdRmi_P) , 0 , 0 , 0x00, 0x00, 0, { O(MmXmm) , O(GdMem) , O(Imm) , U , U }, F(RW) , U }, + { Enc(SimdRm_PQ) , 0 , 8 , 0x00, 0x00, 0, { O(Gqd) , O(MmXmm) , U , U , U }, F(WO) , U }, + { Enc(X86Pop) , 0 , 0 , 0x00, 0x00, 0, { 0 , U , U , U , U }, F(WO)|F(Volatile)|F(Special) , O_000000(58,U,_,_,_) }, + { Enc(X86RegRm) , 0 , 0 , 0x00, 0x3F, 0, { O(Gqdw) , O(GqdwMem) , U , U , U }, F(WO) , U }, + { Enc(X86Op) , 0 , 0 , 0x00, 0xFF, 0, { U , U , U , U , U }, F(Volatile)|F(Special) , U }, + { Enc(X86Prefetch) , 0 , 0 , 0x00, 0x00, 0, { O(Mem) , O(Imm) , U , U , U }, F(RO)|F(Volatile) , U }, + { Enc(X86M) , 0 , 0 , 0x00, 0x3F, 0, { O(Mem) , O(Imm) , U , U , U }, F(RO)|F(Volatile) , U }, + { Enc(SimdRmi) , 0 , 16, 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , O(Imm) , U , U }, F(WO) , U }, + { Enc(SimdRmi_P) , 0 , 8 , 0x00, 0x00, 0, { O(Mm) , O(MmMem) , O(Imm) , U , U }, F(WO) , U }, + { Enc(SimdRmRi_P) , 0 , 0 , 0x00, 0x00, 0, { O(MmXmm) , O(MmXmmMem)|O(Imm), U , U , U }, F(RW) , O_000F00(72,6,_,_,_) }, + { Enc(SimdRmRi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Imm) , U , U , U }, F(RW) , O_660F00(73,7,_,_,_) }, + { Enc(SimdRmRi_P) , 0 , 0 , 0x00, 0x00, 0, { O(MmXmm) , O(MmXmmMem)|O(Imm), U , U , U }, F(RW) , O_000F00(73,6,_,_,_) }, + { Enc(SimdRmRi_P) , 0 , 0 , 0x00, 0x00, 0, { O(MmXmm) , O(MmXmmMem)|O(Imm), U , U , U }, F(RW) , O_000F00(71,6,_,_,_) }, + { Enc(SimdRmRi_P) , 0 , 0 , 0x00, 0x00, 0, { O(MmXmm) , O(MmXmmMem)|O(Imm), U , U , U }, F(RW) , O_000F00(72,4,_,_,_) }, + { Enc(SimdRmRi_P) , 0 , 0 , 0x00, 0x00, 0, { O(MmXmm) , O(MmXmmMem)|O(Imm), U , U , U }, F(RW) , O_000F00(71,4,_,_,_) }, + { Enc(SimdRmRi_P) , 0 , 0 , 0x00, 0x00, 0, { O(MmXmm) , O(MmXmmMem)|O(Imm), U , U , U }, F(RW) , O_000F00(72,2,_,_,_) }, + { Enc(SimdRmRi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Imm) , U , U , U }, F(RW) , O_660F00(73,3,_,_,_) }, + { Enc(SimdRmRi_P) , 0 , 0 , 0x00, 0x00, 0, { O(MmXmm) , O(MmXmmMem)|O(Imm), U , U , U }, F(RW) , O_000F00(73,2,_,_,_) }, + { Enc(SimdRmRi_P) , 0 , 0 , 0x00, 0x00, 0, { O(MmXmm) , O(MmXmmMem)|O(Imm), U , U , U }, F(RW) , O_000F00(71,2,_,_,_) }, + { Enc(X86Push) , 0 , 0 , 0x00, 0x00, 0, { 0 , U , U , U , U }, F(RO)|F(Volatile)|F(Special) , O_000000(50,U,_,_,_) }, + { Enc(X86Op) , 0 , 0 , 0xFF, 0x00, 0, { U , U , U , U , U }, F(Volatile)|F(Special) , U }, + { Enc(X86Rot) , 0 , 0 , 0x20, 0x21, 0, { O(GqdwbMem) , O(Gb)|O(Imm) , U , U , U }, F(RW)|F(Special) , U }, + { Enc(X86Rm) , 0 , 8 , 0x00, 0x00, 0, { O(Gqd) , U , U , U , U }, F(WO) , U }, + { Enc(X86Rm) , 0 , 8 , 0x00, 0x3F, 0, { O(Gqdw) , U , U , U , U }, F(WO) , U }, + { Enc(X86Op) , 0 , 0 , 0x00, 0x00, 0, { U , U , U , U , U }, F(WO)|F(Volatile)|F(Special) , U }, + { Enc(X86Rep) , 0 , 0 , 0x40, 0x00, 0, { O(Mem) , U , U , U , U }, F(RW)|F(Volatile)|F(Special) , U }, + { Enc(X86Rep) , 0 , 0 , 0x40, 0x00, 0, { O(Mem) , O(Mem) , U , U , U }, F(RW)|F(Volatile)|F(Special) , U }, + { Enc(X86Rep) , 0 , 0 , 0x40, 0x3F, 0, { O(Mem) , O(Mem) , U , U , U }, F(RW)|F(Volatile)|F(Special) , U }, + { Enc(X86Ret) , 0 , 0 , 0x00, 0x00, 0, { U , U , U , U , U }, F(RW)|F(Volatile)|F(Special) , U }, + { Enc(X86Rot) , 0 , 0 , 0x00, 0x21, 0, { O(GqdwbMem) , O(Gb)|O(Imm) , U , U , U }, F(RW)|F(Special) , U }, + { Enc(AvxRmi_OptW) , 0 , 0 , 0x00, 0x00, 0, { O(Gqd) , O(GqdMem) , O(Imm) , U , U }, F(WO) , U }, + { Enc(SimdRmi) , 0 , 8 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , O(Imm) , U , U }, F(WO) , U }, + { Enc(SimdRmi) , 0 , 4 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , O(Imm) , U , U }, F(WO) , U }, + { Enc(X86Op) , 0 , 0 , 0x00, 0x3E, 0, { U , U , U , U , U }, F(RO)|F(Volatile)|F(Special) , U }, + { Enc(X86Rot) , 0 , 0 , 0x00, 0x3F, 0, { O(GqdwbMem) , O(Gb)|O(Imm) , U , U , U }, F(RW)|F(Special) , U }, + { Enc(AvxRmv_OptW) , 0 , 0 , 0x00, 0x00, 0, { O(Gqd) , O(GqdMem) , O(Gqd) , U , U }, F(WO) , U }, + { Enc(X86Set) , 0 , 1 , 0x24, 0x00, 0, { O(GbMem) , U , U , U , U }, F(WO) , U }, + { Enc(X86Set) , 0 , 1 , 0x20, 0x00, 0, { O(GbMem) , U , U , U , U }, F(WO) , U }, + { Enc(X86Set) , 0 , 1 , 0x04, 0x00, 0, { O(GbMem) , U , U , U , U }, F(WO) , U }, + { Enc(X86Set) , 0 , 1 , 0x07, 0x00, 0, { O(GbMem) , U , U , U , U }, F(WO) , U }, + { Enc(X86Set) , 0 , 1 , 0x03, 0x00, 0, { O(GbMem) , U , U , U , U }, F(WO) , U }, + { Enc(X86Set) , 0 , 1 , 0x01, 0x00, 0, { O(GbMem) , U , U , U , U }, F(WO) , U }, + { Enc(X86Set) , 0 , 1 , 0x10, 0x00, 0, { O(GbMem) , U , U , U , U }, F(WO) , U }, + { Enc(X86Set) , 0 , 1 , 0x02, 0x00, 0, { O(GbMem) , U , U , U , U }, F(WO) , U }, + { Enc(X86ShldShrd) , 0 , 0 , 0x00, 0x3F, 0, { O(GqdwbMem) , O(Gb) , U , U , U }, F(RW)|F(Special) , U }, + { Enc(X86ShldShrd) , 0 , 0 , 0x00, 0x3F, 0, { O(GqdwbMem) , O(Gqdwb) , U , U , U }, F(RW)|F(Special) , U }, + { Enc(X86Op) , 0 , 0 , 0x00, 0x20, 0, { U , U , U , U , U }, F(None) , U }, + { Enc(X86Op) , 0 , 0 , 0x00, 0x40, 0, { U , U , U , U , U }, F(None) , U }, + { Enc(X86M) , 0 , 0 , 0x00, 0x00, 0, { O(Mem) , U , U , U , U }, F(Volatile) , U }, + { Enc(X86Op) , 0 , 0 , 0x40, 0x00, 0, { U , U , U , U , U }, F(RW)|F(Volatile)|F(Special) , U }, + { Enc(X86Op_66H) , 0 , 0 , 0x40, 0x00, 0, { U , U , U , U , U }, F(RW)|F(Volatile)|F(Special) , U }, + { Enc(X86Test) , 0 , 0 , 0x00, 0x3F, 0, { O(GqdwbMem) , O(Gqdwb)|O(Imm) , U , U , U }, F(RO) , O_000000(F6,U,_,_,_) }, + { Enc(AvxRvm_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(Xy) , O(XyMem) , U , U }, F(WO)|F(Avx) , U }, + { Enc(AvxRvm) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , O(XmmMem) , U , U }, F(WO)|F(Avx) , U }, + { Enc(AvxRm) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , U , U , U }, F(WO)|F(Avx) , U }, + { Enc(AvxRmi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , O(Imm) , U , U }, F(WO)|F(Avx) , U }, + { Enc(AvxRvmi_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(Xy) , O(XyMem) , O(Imm) , U }, F(WO)|F(Avx) , U }, + { Enc(AvxRvmr_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(Xy) , O(XyMem) , O(Xy) , U }, F(WO)|F(Avx) , U }, + { Enc(AvxRm) , 0 , 0 , 0x00, 0x00, 0, { O(Ymm) , O(Mem) , U , U , U }, F(WO)|F(Avx) , U }, + { Enc(AvxRm) , 0 , 0 , 0x00, 0x00, 0, { O(Ymm) , O(XmmMem) , U , U , U }, F(WO)|F(Avx) , U }, + { Enc(AvxRm_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(XmmMem) , U , U , U }, F(WO)|F(Avx) , U }, + { Enc(AvxRvmi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , O(XmmMem) , O(Imm) , U }, F(WO)|F(Avx) , U }, + { Enc(AvxRm) , 0 , 0 , 0x00, 0x3F, 0, { O(Xmm) , O(XmmMem) , U , U , U }, F(RO)|F(Avx) , U }, + { Enc(AvxRm_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(XyMem) , U , U , U }, F(WO)|F(Avx) , U }, + { Enc(AvxRm) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(XyMem) , U , U , U }, F(WO)|F(Avx) , U }, + { Enc(AvxMri_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(XmmMem) , O(Xy) , O(Imm) , U , U }, F(WO)|F(Avx) , U }, + { Enc(AvxRm) , 0 , 0 , 0x00, 0x00, 0, { O(Gqd) , O(XmmMem) , U , U , U }, F(WO)|F(Avx) , U }, + { Enc(AvxRvm) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , O(GqdMem) , U , U }, F(WO)|F(Avx) , U }, + { Enc(AvxRm_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(XyMem) , U , U , U }, F(WO)|F(Avx) , U }, + { Enc(AvxMri) , 0 , 0 , 0x00, 0x00, 0, { O(XmmMem) , O(Ymm) , O(Imm) , U , U }, F(WO)|F(Avx) , U }, + { Enc(AvxMri) , 0 , 0 , 0x00, 0x00, 0, { O(GqdMem) , O(Xmm) , O(Imm) , U , U }, F(WO)|F(Avx) , U }, + { Enc(AvxRvm_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(Xy) , O(XyMem) , U , U }, F(RW)|F(Avx) , U }, + { Enc(AvxRvm) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , O(XmmMem) , U , U }, F(RW)|F(Avx) , U }, + { Enc(Fma4_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U }, F(WO)|F(Avx) , U }, + { Enc(Fma4) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , O(XmmMem) , O(XmmMem) , U }, F(WO)|F(Avx) , U }, + { Enc(XopRm_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(XyMem) , U , U , U }, F(WO)|F(Avx) , U }, + { Enc(XopRm) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , U , U , U }, F(WO)|F(Avx) , U }, + { Enc(AvxGather) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(Mem) , O(Xy) , U , U }, F(RW)|F(Avx) , U }, + { Enc(AvxGatherEx) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Mem) , O(Xmm) , U , U }, F(RW)|F(Avx) , U }, + { Enc(AvxRvmi) , 0 , 0 , 0x00, 0x00, 0, { O(Ymm) , O(Ymm) , O(XmmMem) , O(Imm) , U }, F(WO)|F(Avx) , U }, + { Enc(AvxRm_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(Mem) , U , U , U }, F(WO)|F(Avx) , U }, + { Enc(AvxM) , 0 , 0 , 0x00, 0x00, 0, { O(Mem) , U , U , U , U }, F(RO)|F(Avx)|F(Volatile) , U }, + { Enc(AvxRm) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , U , U , U }, F(RO)|F(Avx)|F(Special) , U }, + { Enc(AvxRvmMvr_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(XyMem) , O(Xy) , O(XyMem) , U , U }, F(RW)|F(Avx) , O_660F38(2F,U,_,_,_) }, + { Enc(AvxRvmMvr_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(XyMem) , O(Xy) , O(XyMem) , U , U }, F(RW)|F(Avx) , O_660F38(2E,U,_,_,_) }, + { Enc(AvxRmMr_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(XyMem) , O(XyMem) , U , U , U }, F(WO)|F(Avx) , O_660F00(29,U,_,_,_) }, + { Enc(AvxRmMr_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(XyMem) , O(XyMem) , U , U , U }, F(WO)|F(Avx) , O_000F00(29,U,_,_,_) }, + { Enc(AvxMovDQ) , 0 , 0 , 0x00, 0x00, 0, { O(XmmMem) , O(XmmMem) , U , U , U }, F(WO)|F(Avx) , O_660F00(7E,U,_,_,_) }, + { Enc(AvxRmMr_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(XyMem) , O(XyMem) , U , U , U }, F(WO)|F(Avx) , O_660F00(7F,U,_,_,_) }, + { Enc(AvxRmMr_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(XyMem) , O(XyMem) , U , U , U }, F(WO)|F(Avx) , O_F30F00(7F,U,_,_,_) }, + { Enc(AvxRvm) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , O(Xmm) , U , U }, F(WO)|F(Avx) , U }, + { Enc(AvxRvmMr) , 0 , 0 , 0x00, 0x00, 0, { O(XmmMem) , O(Xmm) , O(Mem) , U , U }, F(WO)|F(Avx) , O_660F00(17,U,_,_,_) }, + { Enc(AvxRvmMr) , 0 , 0 , 0x00, 0x00, 0, { O(XmmMem) , O(Xmm) , O(Mem) , U , U }, F(WO)|F(Avx) , O_000F00(17,U,_,_,_) }, + { Enc(AvxRvmMr) , 0 , 0 , 0x00, 0x00, 0, { O(XmmMem) , O(Xmm) , O(Mem) , U , U }, F(WO)|F(Avx) , O_660F00(13,U,_,_,_) }, + { Enc(AvxRvmMr) , 0 , 0 , 0x00, 0x00, 0, { O(XmmMem) , O(Xmm) , O(Mem) , U , U }, F(WO)|F(Avx) , O_000F00(13,U,_,_,_) }, + { Enc(AvxRm_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Gqd) , O(Xy) , U , U , U }, F(WO)|F(Avx) , U }, + { Enc(AvxMr_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Mem) , O(Xy) , U , U , U }, F(WO)|F(Avx) , U }, + { Enc(AvxMovSsSd) , 0 , 0 , 0x00, 0x00, 0, { O(XmmMem) , O(XmmMem) , O(Xmm) , U , U }, F(WO)|F(Avx) , O_F20F00(11,U,_,_,_) }, + { Enc(AvxMovSsSd) , 0 , 0 , 0x00, 0x00, 0, { O(XmmMem) , O(Xmm) , O(Xmm) , U , U }, F(WO)|F(Avx) , O_F30F00(11,U,_,_,_) }, + { Enc(AvxRmMr_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(XyMem) , O(XyMem) , U , U , U }, F(WO)|F(Avx) , O_660F00(11,U,_,_,_) }, + { Enc(AvxRmMr_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(XyMem) , O(XyMem) , U , U , U }, F(WO)|F(Avx) , O_000F00(11,U,_,_,_) }, + { Enc(AvxRvmr) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(Xy) , O(XyMem) , O(Xy) , U }, F(WO)|F(Avx) , U }, + { Enc(XopRvrmRvmr_OptL), 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U }, F(WO)|F(Avx) , U }, + { Enc(AvxRmi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , O(Imm) , U , U }, F(WO)|F(Avx)|F(Special) , U }, + { Enc(XopRvmi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , O(XmmMem) , O(Imm) , U }, F(WO)|F(Avx) , U }, + { Enc(AvxRvmi) , 0 , 0 , 0x00, 0x00, 0, { O(Ymm) , O(Ymm) , O(YmmMem) , O(Imm) , U }, F(WO)|F(Avx) , U }, + { Enc(AvxRvm) , 0 , 0 , 0x00, 0x00, 0, { O(Ymm) , O(Ymm) , O(YmmMem) , U , U }, F(WO)|F(Avx) , U }, + { Enc(AvxRvrmRvmr_OptL), 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U }, F(WO)|F(Avx) , U }, + { Enc(AvxRvmRmi_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U }, F(WO)|F(Avx) , O_660F3A(05,U,_,_,_) }, + { Enc(AvxRvmRmi_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U }, F(WO)|F(Avx) , O_660F3A(04,U,_,_,_) }, + { Enc(AvxRmi) , 0 , 0 , 0x00, 0x00, 0, { O(Ymm) , O(YmmMem) , O(Imm) , U , U }, F(WO)|F(Avx) , U }, + { Enc(AvxMri) , 0 , 0 , 0x00, 0x00, 0, { O(GqdwbMem) , O(Xmm) , O(Imm) , U , U }, F(WO)|F(Avx) , U }, + { Enc(AvxMri) , 0 , 0 , 0x00, 0x00, 0, { O(GqMem) , O(Xmm) , O(Imm) , U , U }, F(WO)|F(Avx) , U }, + { Enc(AvxMri) , 0 , 0 , 0x00, 0x00, 0, { O(GqdwMem) , O(Xmm) , O(Imm) , U , U }, F(WO)|F(Avx) , U }, + { Enc(AvxRvmi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , O(GqdwbMem) , O(Imm) , U }, F(WO)|F(Avx) , U }, + { Enc(AvxRvmi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , O(GqdMem) , O(Imm) , U }, F(WO)|F(Avx) , U }, + { Enc(AvxRvmi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , O(GqMem) , O(Imm) , U }, F(WO)|F(Avx) , U }, + { Enc(AvxRvmi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , O(GqdwMem) , O(Imm) , U }, F(WO)|F(Avx) , U }, + { Enc(XopRvmr) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , O(XmmMem) , O(Xmm) , U }, F(WO)|F(Avx) , U }, + { Enc(AvxRvmMvr_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(XyMem) , O(Xy) , O(XyMem) , U , U }, F(WO)|F(Avx) , O_660F38(8E,U,_,_,_) }, + { Enc(XopRvrmRvmr) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(Xmm) , O(XmmMem) , O(XmmMem) , U }, F(WO)|F(Avx) , U }, + { Enc(XopRvmRmi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , O(XmmMem)|O(Imm) , U , U }, F(WO)|F(Avx) , O_00_M08(C0,U,_,_,_) }, + { Enc(XopRvmRmi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , O(XmmMem)|O(Imm) , U , U }, F(WO)|F(Avx) , O_00_M08(C2,U,_,_,_) }, + { Enc(XopRvmRmi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , O(XmmMem)|O(Imm) , U , U }, F(WO)|F(Avx) , O_00_M08(C3,U,_,_,_) }, + { Enc(XopRvmRmi) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , O(XmmMem)|O(Imm) , U , U }, F(WO)|F(Avx) , O_00_M08(C1,U,_,_,_) }, + { Enc(XopRvmRmv) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , O(XmmMem) , U , U }, F(WO)|F(Avx) , U }, + { Enc(AvxRmi_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(XyMem) , O(Imm) , U , U }, F(WO)|F(Avx) , U }, + { Enc(AvxRvmVmi_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U }, F(WO)|F(Avx) , O_660F00(72,6,_,_,_) }, + { Enc(AvxVmi_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(XyMem) , O(Imm) , U , U }, F(WO)|F(Avx) , U }, + { Enc(AvxRvmVmi_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U }, F(WO)|F(Avx) , O_660F00(73,6,_,_,_) }, + { Enc(AvxRvmVmi_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U }, F(WO)|F(Avx) , O_660F00(71,6,_,_,_) }, + { Enc(AvxRvmVmi_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U }, F(WO)|F(Avx) , O_660F00(72,4,_,_,_) }, + { Enc(AvxRvmVmi_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U }, F(WO)|F(Avx) , O_660F00(71,4,_,_,_) }, + { Enc(AvxRvmVmi_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U }, F(WO)|F(Avx) , O_660F00(72,2,_,_,_) }, + { Enc(AvxRvmVmi_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U }, F(WO)|F(Avx) , O_660F00(73,2,_,_,_) }, + { Enc(AvxRvmVmi_OptL) , 0 , 0 , 0x00, 0x00, 0, { O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U }, F(WO)|F(Avx) , O_660F00(71,2,_,_,_) }, + { Enc(AvxRm_OptL) , 0 , 0 , 0x00, 0x3F, 0, { O(Xy) , O(XyMem) , U , U , U }, F(RO)|F(Avx) , U }, + { Enc(AvxM) , 0 , 0 , 0x00, 0x00, 0, { O(Mem) , U , U , U , U }, F(Volatile)|F(Avx) , U }, + { Enc(AvxOp) , 0 , 0 , 0x00, 0x00, 0, { U , U , U , U , U }, F(Volatile)|F(Avx) , U }, + { Enc(X86Rm) , 0 , 0 , 0x00, 0x00, 0, { O(Gqd) , U , U , U , U }, F(RO)|F(Volatile) , U }, + { Enc(X86Xadd) , 0 , 0 , 0x00, 0x3F, 0, { O(GqdwbMem) , O(Gqdwb) , U , U , U }, F(RW)|F(Xchg)|F(Lock) , U }, + { Enc(X86Xchg) , 0 , 0 , 0x00, 0x00, 0, { O(GqdwbMem) , O(Gqdwb) , U , U , U }, F(RW)|F(Xchg)|F(Lock) , U }, + { Enc(SimdRm) , 0 , 0 , 0x00, 0x00, 0, { O(Xmm) , O(XmmMem) , U , U , U }, F(RW)|F(None) , U }, + { Enc(X86M) , 0 , 0 , 0x00, 0x00, 0, { O(Mem) , U , U , U , U }, F(RO)|F(Volatile)|F(Special) , U } }; +// ---------------------------------------------------------------------------- -// Automatically generated, do not edit. +// ------------------- Automatically generated, do not edit ------------------- enum X86InstData_ExtendedIndex { - kInstIdNone_ExtendedIndex = 0, - kX86InstIdAdc_ExtendedIndex = 1, - kX86InstIdAdd_ExtendedIndex = 2, - kX86InstIdAddpd_ExtendedIndex = 3, - kX86InstIdAddps_ExtendedIndex = 3, - kX86InstIdAddsd_ExtendedIndex = 3, - kX86InstIdAddss_ExtendedIndex = 3, - kX86InstIdAddsubpd_ExtendedIndex = 3, - kX86InstIdAddsubps_ExtendedIndex = 3, - kX86InstIdAesdec_ExtendedIndex = 3, - kX86InstIdAesdeclast_ExtendedIndex = 3, - kX86InstIdAesenc_ExtendedIndex = 3, - kX86InstIdAesenclast_ExtendedIndex = 3, - kX86InstIdAesimc_ExtendedIndex = 3, - kX86InstIdAeskeygenassist_ExtendedIndex = 4, - kX86InstIdAnd_ExtendedIndex = 2, - kX86InstIdAndn_ExtendedIndex = 5, - kX86InstIdAndnpd_ExtendedIndex = 3, - kX86InstIdAndnps_ExtendedIndex = 3, - kX86InstIdAndpd_ExtendedIndex = 3, - kX86InstIdAndps_ExtendedIndex = 3, - kX86InstIdBextr_ExtendedIndex = 6, - kX86InstIdBlendpd_ExtendedIndex = 4, - kX86InstIdBlendps_ExtendedIndex = 4, - kX86InstIdBlendvpd_ExtendedIndex = 7, - kX86InstIdBlendvps_ExtendedIndex = 7, - kX86InstIdBlsi_ExtendedIndex = 8, - kX86InstIdBlsmsk_ExtendedIndex = 8, - kX86InstIdBlsr_ExtendedIndex = 8, - kX86InstIdBsf_ExtendedIndex = 9, - kX86InstIdBsr_ExtendedIndex = 9, - kX86InstIdBswap_ExtendedIndex = 10, - kX86InstIdBt_ExtendedIndex = 11, - kX86InstIdBtc_ExtendedIndex = 12, - kX86InstIdBtr_ExtendedIndex = 13, - kX86InstIdBts_ExtendedIndex = 14, - kX86InstIdBzhi_ExtendedIndex = 6, - kX86InstIdCall_ExtendedIndex = 15, - kX86InstIdCbw_ExtendedIndex = 16, - kX86InstIdCdq_ExtendedIndex = 16, - kX86InstIdCdqe_ExtendedIndex = 16, - kX86InstIdClc_ExtendedIndex = 17, - kX86InstIdCld_ExtendedIndex = 18, - kX86InstIdClflush_ExtendedIndex = 19, - kX86InstIdCmc_ExtendedIndex = 20, - kX86InstIdCmova_ExtendedIndex = 21, - kX86InstIdCmovae_ExtendedIndex = 22, - kX86InstIdCmovb_ExtendedIndex = 22, - kX86InstIdCmovbe_ExtendedIndex = 21, - kX86InstIdCmovc_ExtendedIndex = 22, - kX86InstIdCmove_ExtendedIndex = 23, - kX86InstIdCmovg_ExtendedIndex = 24, - kX86InstIdCmovge_ExtendedIndex = 25, - kX86InstIdCmovl_ExtendedIndex = 25, - kX86InstIdCmovle_ExtendedIndex = 24, - kX86InstIdCmovna_ExtendedIndex = 21, - kX86InstIdCmovnae_ExtendedIndex = 22, - kX86InstIdCmovnb_ExtendedIndex = 22, - kX86InstIdCmovnbe_ExtendedIndex = 21, - kX86InstIdCmovnc_ExtendedIndex = 22, - kX86InstIdCmovne_ExtendedIndex = 23, - kX86InstIdCmovng_ExtendedIndex = 24, - kX86InstIdCmovnge_ExtendedIndex = 25, - kX86InstIdCmovnl_ExtendedIndex = 25, - kX86InstIdCmovnle_ExtendedIndex = 24, - kX86InstIdCmovno_ExtendedIndex = 26, - kX86InstIdCmovnp_ExtendedIndex = 27, - kX86InstIdCmovns_ExtendedIndex = 28, - kX86InstIdCmovnz_ExtendedIndex = 23, - kX86InstIdCmovo_ExtendedIndex = 26, - kX86InstIdCmovp_ExtendedIndex = 27, - kX86InstIdCmovpe_ExtendedIndex = 27, - kX86InstIdCmovpo_ExtendedIndex = 27, - kX86InstIdCmovs_ExtendedIndex = 28, - kX86InstIdCmovz_ExtendedIndex = 23, - kX86InstIdCmp_ExtendedIndex = 29, - kX86InstIdCmppd_ExtendedIndex = 4, - kX86InstIdCmpps_ExtendedIndex = 4, - kX86InstIdCmpsB_ExtendedIndex = 30, - kX86InstIdCmpsD_ExtendedIndex = 30, - kX86InstIdCmpsQ_ExtendedIndex = 30, - kX86InstIdCmpsW_ExtendedIndex = 31, - kX86InstIdCmpsd_ExtendedIndex = 4, - kX86InstIdCmpss_ExtendedIndex = 4, - kX86InstIdCmpxchg_ExtendedIndex = 32, - kX86InstIdCmpxchg16b_ExtendedIndex = 33, - kX86InstIdCmpxchg8b_ExtendedIndex = 33, - kX86InstIdComisd_ExtendedIndex = 34, - kX86InstIdComiss_ExtendedIndex = 34, - kX86InstIdCpuid_ExtendedIndex = 16, - kX86InstIdCqo_ExtendedIndex = 16, - kX86InstIdCrc32_ExtendedIndex = 35, - kX86InstIdCvtdq2pd_ExtendedIndex = 36, - kX86InstIdCvtdq2ps_ExtendedIndex = 36, - kX86InstIdCvtpd2dq_ExtendedIndex = 36, - kX86InstIdCvtpd2pi_ExtendedIndex = 37, - kX86InstIdCvtpd2ps_ExtendedIndex = 36, - kX86InstIdCvtpi2pd_ExtendedIndex = 38, - kX86InstIdCvtpi2ps_ExtendedIndex = 39, - kX86InstIdCvtps2dq_ExtendedIndex = 36, - kX86InstIdCvtps2pd_ExtendedIndex = 36, - kX86InstIdCvtps2pi_ExtendedIndex = 37, - kX86InstIdCvtsd2si_ExtendedIndex = 40, - kX86InstIdCvtsd2ss_ExtendedIndex = 41, - kX86InstIdCvtsi2sd_ExtendedIndex = 42, - kX86InstIdCvtsi2ss_ExtendedIndex = 43, - kX86InstIdCvtss2sd_ExtendedIndex = 44, - kX86InstIdCvtss2si_ExtendedIndex = 40, - kX86InstIdCvttpd2dq_ExtendedIndex = 36, - kX86InstIdCvttpd2pi_ExtendedIndex = 37, - kX86InstIdCvttps2dq_ExtendedIndex = 36, - kX86InstIdCvttps2pi_ExtendedIndex = 37, - kX86InstIdCvttsd2si_ExtendedIndex = 40, - kX86InstIdCvttss2si_ExtendedIndex = 40, - kX86InstIdCwd_ExtendedIndex = 16, - kX86InstIdCwde_ExtendedIndex = 16, - kX86InstIdDaa_ExtendedIndex = 45, - kX86InstIdDas_ExtendedIndex = 45, - kX86InstIdDec_ExtendedIndex = 46, - kX86InstIdDiv_ExtendedIndex = 47, - kX86InstIdDivpd_ExtendedIndex = 3, - kX86InstIdDivps_ExtendedIndex = 3, - kX86InstIdDivsd_ExtendedIndex = 3, - kX86InstIdDivss_ExtendedIndex = 3, - kX86InstIdDppd_ExtendedIndex = 4, - kX86InstIdDpps_ExtendedIndex = 4, - kX86InstIdEmms_ExtendedIndex = 48, - kX86InstIdEnter_ExtendedIndex = 49, - kX86InstIdExtractps_ExtendedIndex = 50, - kX86InstIdExtrq_ExtendedIndex = 51, - kX86InstIdF2xm1_ExtendedIndex = 52, - kX86InstIdFabs_ExtendedIndex = 52, - kX86InstIdFadd_ExtendedIndex = 53, - kX86InstIdFaddp_ExtendedIndex = 54, - kX86InstIdFbld_ExtendedIndex = 55, - kX86InstIdFbstp_ExtendedIndex = 55, - kX86InstIdFchs_ExtendedIndex = 52, - kX86InstIdFclex_ExtendedIndex = 52, - kX86InstIdFcmovb_ExtendedIndex = 56, - kX86InstIdFcmovbe_ExtendedIndex = 57, - kX86InstIdFcmove_ExtendedIndex = 58, - kX86InstIdFcmovnb_ExtendedIndex = 56, - kX86InstIdFcmovnbe_ExtendedIndex = 57, - kX86InstIdFcmovne_ExtendedIndex = 58, - kX86InstIdFcmovnu_ExtendedIndex = 59, - kX86InstIdFcmovu_ExtendedIndex = 59, - kX86InstIdFcom_ExtendedIndex = 60, - kX86InstIdFcomi_ExtendedIndex = 61, - kX86InstIdFcomip_ExtendedIndex = 61, - kX86InstIdFcomp_ExtendedIndex = 60, - kX86InstIdFcompp_ExtendedIndex = 52, - kX86InstIdFcos_ExtendedIndex = 52, - kX86InstIdFdecstp_ExtendedIndex = 52, - kX86InstIdFdiv_ExtendedIndex = 53, - kX86InstIdFdivp_ExtendedIndex = 54, - kX86InstIdFdivr_ExtendedIndex = 53, - kX86InstIdFdivrp_ExtendedIndex = 54, - kX86InstIdFemms_ExtendedIndex = 62, - kX86InstIdFfree_ExtendedIndex = 63, - kX86InstIdFiadd_ExtendedIndex = 64, - kX86InstIdFicom_ExtendedIndex = 64, - kX86InstIdFicomp_ExtendedIndex = 64, - kX86InstIdFidiv_ExtendedIndex = 64, - kX86InstIdFidivr_ExtendedIndex = 64, - kX86InstIdFild_ExtendedIndex = 65, - kX86InstIdFimul_ExtendedIndex = 64, - kX86InstIdFincstp_ExtendedIndex = 52, - kX86InstIdFinit_ExtendedIndex = 52, - kX86InstIdFist_ExtendedIndex = 64, - kX86InstIdFistp_ExtendedIndex = 66, - kX86InstIdFisttp_ExtendedIndex = 67, - kX86InstIdFisub_ExtendedIndex = 64, - kX86InstIdFisubr_ExtendedIndex = 64, - kX86InstIdFld_ExtendedIndex = 68, - kX86InstIdFld1_ExtendedIndex = 52, - kX86InstIdFldcw_ExtendedIndex = 55, - kX86InstIdFldenv_ExtendedIndex = 55, - kX86InstIdFldl2e_ExtendedIndex = 52, - kX86InstIdFldl2t_ExtendedIndex = 52, - kX86InstIdFldlg2_ExtendedIndex = 52, - kX86InstIdFldln2_ExtendedIndex = 52, - kX86InstIdFldpi_ExtendedIndex = 52, - kX86InstIdFldz_ExtendedIndex = 52, - kX86InstIdFmul_ExtendedIndex = 53, - kX86InstIdFmulp_ExtendedIndex = 54, - kX86InstIdFnclex_ExtendedIndex = 52, - kX86InstIdFninit_ExtendedIndex = 52, - kX86InstIdFnop_ExtendedIndex = 52, - kX86InstIdFnsave_ExtendedIndex = 55, - kX86InstIdFnstcw_ExtendedIndex = 55, - kX86InstIdFnstenv_ExtendedIndex = 55, - kX86InstIdFnstsw_ExtendedIndex = 69, - kX86InstIdFpatan_ExtendedIndex = 52, - kX86InstIdFprem_ExtendedIndex = 52, - kX86InstIdFprem1_ExtendedIndex = 52, - kX86InstIdFptan_ExtendedIndex = 52, - kX86InstIdFrndint_ExtendedIndex = 52, - kX86InstIdFrstor_ExtendedIndex = 55, - kX86InstIdFsave_ExtendedIndex = 55, - kX86InstIdFscale_ExtendedIndex = 52, - kX86InstIdFsin_ExtendedIndex = 52, - kX86InstIdFsincos_ExtendedIndex = 52, - kX86InstIdFsqrt_ExtendedIndex = 52, - kX86InstIdFst_ExtendedIndex = 70, - kX86InstIdFstcw_ExtendedIndex = 55, - kX86InstIdFstenv_ExtendedIndex = 55, - kX86InstIdFstp_ExtendedIndex = 71, - kX86InstIdFstsw_ExtendedIndex = 72, - kX86InstIdFsub_ExtendedIndex = 53, - kX86InstIdFsubp_ExtendedIndex = 54, - kX86InstIdFsubr_ExtendedIndex = 53, - kX86InstIdFsubrp_ExtendedIndex = 54, - kX86InstIdFtst_ExtendedIndex = 52, - kX86InstIdFucom_ExtendedIndex = 54, - kX86InstIdFucomi_ExtendedIndex = 61, - kX86InstIdFucomip_ExtendedIndex = 61, - kX86InstIdFucomp_ExtendedIndex = 54, - kX86InstIdFucompp_ExtendedIndex = 52, - kX86InstIdFwait_ExtendedIndex = 62, - kX86InstIdFxam_ExtendedIndex = 52, - kX86InstIdFxch_ExtendedIndex = 63, - kX86InstIdFxrstor_ExtendedIndex = 55, - kX86InstIdFxsave_ExtendedIndex = 55, - kX86InstIdFxtract_ExtendedIndex = 52, - kX86InstIdFyl2x_ExtendedIndex = 52, - kX86InstIdFyl2xp1_ExtendedIndex = 52, - kX86InstIdHaddpd_ExtendedIndex = 3, - kX86InstIdHaddps_ExtendedIndex = 3, - kX86InstIdHsubpd_ExtendedIndex = 3, - kX86InstIdHsubps_ExtendedIndex = 3, - kX86InstIdIdiv_ExtendedIndex = 73, - kX86InstIdImul_ExtendedIndex = 74, - kX86InstIdInc_ExtendedIndex = 75, - kX86InstIdInsertps_ExtendedIndex = 4, - kX86InstIdInsertq_ExtendedIndex = 76, - kX86InstIdInt_ExtendedIndex = 77, - kX86InstIdJa_ExtendedIndex = 78, - kX86InstIdJae_ExtendedIndex = 79, - kX86InstIdJb_ExtendedIndex = 79, - kX86InstIdJbe_ExtendedIndex = 78, - kX86InstIdJc_ExtendedIndex = 79, - kX86InstIdJe_ExtendedIndex = 80, - kX86InstIdJg_ExtendedIndex = 81, - kX86InstIdJge_ExtendedIndex = 82, - kX86InstIdJl_ExtendedIndex = 82, - kX86InstIdJle_ExtendedIndex = 81, - kX86InstIdJna_ExtendedIndex = 78, - kX86InstIdJnae_ExtendedIndex = 79, - kX86InstIdJnb_ExtendedIndex = 79, - kX86InstIdJnbe_ExtendedIndex = 78, - kX86InstIdJnc_ExtendedIndex = 79, - kX86InstIdJne_ExtendedIndex = 80, - kX86InstIdJng_ExtendedIndex = 81, - kX86InstIdJnge_ExtendedIndex = 82, - kX86InstIdJnl_ExtendedIndex = 82, - kX86InstIdJnle_ExtendedIndex = 81, - kX86InstIdJno_ExtendedIndex = 83, - kX86InstIdJnp_ExtendedIndex = 84, - kX86InstIdJns_ExtendedIndex = 85, - kX86InstIdJnz_ExtendedIndex = 80, - kX86InstIdJo_ExtendedIndex = 83, - kX86InstIdJp_ExtendedIndex = 84, - kX86InstIdJpe_ExtendedIndex = 84, - kX86InstIdJpo_ExtendedIndex = 84, - kX86InstIdJs_ExtendedIndex = 85, - kX86InstIdJz_ExtendedIndex = 80, - kX86InstIdJecxz_ExtendedIndex = 86, - kX86InstIdJmp_ExtendedIndex = 87, - kX86InstIdLahf_ExtendedIndex = 88, - kX86InstIdLddqu_ExtendedIndex = 89, - kX86InstIdLdmxcsr_ExtendedIndex = 19, - kX86InstIdLea_ExtendedIndex = 90, - kX86InstIdLeave_ExtendedIndex = 16, - kX86InstIdLfence_ExtendedIndex = 91, - kX86InstIdLodsB_ExtendedIndex = 92, - kX86InstIdLodsD_ExtendedIndex = 93, - kX86InstIdLodsQ_ExtendedIndex = 94, - kX86InstIdLodsW_ExtendedIndex = 95, - kX86InstIdLzcnt_ExtendedIndex = 9, - kX86InstIdMaskmovdqu_ExtendedIndex = 96, - kX86InstIdMaskmovq_ExtendedIndex = 97, - kX86InstIdMaxpd_ExtendedIndex = 3, - kX86InstIdMaxps_ExtendedIndex = 3, - kX86InstIdMaxsd_ExtendedIndex = 3, - kX86InstIdMaxss_ExtendedIndex = 3, - kX86InstIdMfence_ExtendedIndex = 91, - kX86InstIdMinpd_ExtendedIndex = 3, - kX86InstIdMinps_ExtendedIndex = 3, - kX86InstIdMinsd_ExtendedIndex = 3, - kX86InstIdMinss_ExtendedIndex = 3, - kX86InstIdMonitor_ExtendedIndex = 16, - kX86InstIdMov_ExtendedIndex = 98, - kX86InstIdMovPtr_ExtendedIndex = 99, - kX86InstIdMovapd_ExtendedIndex = 100, - kX86InstIdMovaps_ExtendedIndex = 101, - kX86InstIdMovbe_ExtendedIndex = 102, - kX86InstIdMovd_ExtendedIndex = 103, - kX86InstIdMovddup_ExtendedIndex = 104, - kX86InstIdMovdq2q_ExtendedIndex = 105, - kX86InstIdMovdqa_ExtendedIndex = 106, - kX86InstIdMovdqu_ExtendedIndex = 107, - kX86InstIdMovhlps_ExtendedIndex = 108, - kX86InstIdMovhpd_ExtendedIndex = 109, - kX86InstIdMovhps_ExtendedIndex = 110, - kX86InstIdMovlhps_ExtendedIndex = 111, - kX86InstIdMovlpd_ExtendedIndex = 112, - kX86InstIdMovlps_ExtendedIndex = 113, - kX86InstIdMovmskpd_ExtendedIndex = 114, - kX86InstIdMovmskps_ExtendedIndex = 114, - kX86InstIdMovntdq_ExtendedIndex = 115, - kX86InstIdMovntdqa_ExtendedIndex = 116, - kX86InstIdMovnti_ExtendedIndex = 117, - kX86InstIdMovntpd_ExtendedIndex = 118, - kX86InstIdMovntps_ExtendedIndex = 119, - kX86InstIdMovntq_ExtendedIndex = 120, - kX86InstIdMovntsd_ExtendedIndex = 121, - kX86InstIdMovntss_ExtendedIndex = 122, - kX86InstIdMovq_ExtendedIndex = 123, - kX86InstIdMovq2dq_ExtendedIndex = 124, - kX86InstIdMovsB_ExtendedIndex = 16, - kX86InstIdMovsD_ExtendedIndex = 125, - kX86InstIdMovsQ_ExtendedIndex = 16, - kX86InstIdMovsW_ExtendedIndex = 126, - kX86InstIdMovsd_ExtendedIndex = 127, - kX86InstIdMovshdup_ExtendedIndex = 36, - kX86InstIdMovsldup_ExtendedIndex = 36, - kX86InstIdMovss_ExtendedIndex = 128, - kX86InstIdMovsx_ExtendedIndex = 129, - kX86InstIdMovsxd_ExtendedIndex = 130, - kX86InstIdMovupd_ExtendedIndex = 131, - kX86InstIdMovups_ExtendedIndex = 132, - kX86InstIdMovzx_ExtendedIndex = 129, - kX86InstIdMpsadbw_ExtendedIndex = 4, - kX86InstIdMul_ExtendedIndex = 73, - kX86InstIdMulpd_ExtendedIndex = 3, - kX86InstIdMulps_ExtendedIndex = 3, - kX86InstIdMulsd_ExtendedIndex = 3, - kX86InstIdMulss_ExtendedIndex = 3, - kX86InstIdMulx_ExtendedIndex = 133, - kX86InstIdMwait_ExtendedIndex = 16, - kX86InstIdNeg_ExtendedIndex = 134, - kX86InstIdNop_ExtendedIndex = 48, - kX86InstIdNot_ExtendedIndex = 135, - kX86InstIdOr_ExtendedIndex = 2, - kX86InstIdOrpd_ExtendedIndex = 3, - kX86InstIdOrps_ExtendedIndex = 3, - kX86InstIdPabsb_ExtendedIndex = 136, - kX86InstIdPabsd_ExtendedIndex = 136, - kX86InstIdPabsw_ExtendedIndex = 136, - kX86InstIdPackssdw_ExtendedIndex = 136, - kX86InstIdPacksswb_ExtendedIndex = 136, - kX86InstIdPackusdw_ExtendedIndex = 3, - kX86InstIdPackuswb_ExtendedIndex = 136, - kX86InstIdPaddb_ExtendedIndex = 136, - kX86InstIdPaddd_ExtendedIndex = 136, - kX86InstIdPaddq_ExtendedIndex = 136, - kX86InstIdPaddsb_ExtendedIndex = 136, - kX86InstIdPaddsw_ExtendedIndex = 136, - kX86InstIdPaddusb_ExtendedIndex = 136, - kX86InstIdPaddusw_ExtendedIndex = 136, - kX86InstIdPaddw_ExtendedIndex = 136, - kX86InstIdPalignr_ExtendedIndex = 137, - kX86InstIdPand_ExtendedIndex = 136, - kX86InstIdPandn_ExtendedIndex = 136, - kX86InstIdPause_ExtendedIndex = 48, - kX86InstIdPavgb_ExtendedIndex = 136, - kX86InstIdPavgw_ExtendedIndex = 136, - kX86InstIdPblendvb_ExtendedIndex = 7, - kX86InstIdPblendw_ExtendedIndex = 4, - kX86InstIdPclmulqdq_ExtendedIndex = 4, - kX86InstIdPcmpeqb_ExtendedIndex = 136, - kX86InstIdPcmpeqd_ExtendedIndex = 136, - kX86InstIdPcmpeqq_ExtendedIndex = 3, - kX86InstIdPcmpeqw_ExtendedIndex = 136, - kX86InstIdPcmpestri_ExtendedIndex = 4, - kX86InstIdPcmpestrm_ExtendedIndex = 4, - kX86InstIdPcmpgtb_ExtendedIndex = 136, - kX86InstIdPcmpgtd_ExtendedIndex = 136, - kX86InstIdPcmpgtq_ExtendedIndex = 3, - kX86InstIdPcmpgtw_ExtendedIndex = 136, - kX86InstIdPcmpistri_ExtendedIndex = 4, - kX86InstIdPcmpistrm_ExtendedIndex = 4, - kX86InstIdPdep_ExtendedIndex = 133, - kX86InstIdPext_ExtendedIndex = 133, - kX86InstIdPextrb_ExtendedIndex = 138, - kX86InstIdPextrd_ExtendedIndex = 139, - kX86InstIdPextrq_ExtendedIndex = 50, - kX86InstIdPextrw_ExtendedIndex = 140, - kX86InstIdPf2id_ExtendedIndex = 141, - kX86InstIdPf2iw_ExtendedIndex = 141, - kX86InstIdPfacc_ExtendedIndex = 142, - kX86InstIdPfadd_ExtendedIndex = 142, - kX86InstIdPfcmpeq_ExtendedIndex = 142, - kX86InstIdPfcmpge_ExtendedIndex = 142, - kX86InstIdPfcmpgt_ExtendedIndex = 142, - kX86InstIdPfmax_ExtendedIndex = 142, - kX86InstIdPfmin_ExtendedIndex = 142, - kX86InstIdPfmul_ExtendedIndex = 142, - kX86InstIdPfnacc_ExtendedIndex = 142, - kX86InstIdPfpnacc_ExtendedIndex = 142, - kX86InstIdPfrcp_ExtendedIndex = 141, - kX86InstIdPfrcpit1_ExtendedIndex = 142, - kX86InstIdPfrcpit2_ExtendedIndex = 142, - kX86InstIdPfrsqit1_ExtendedIndex = 142, - kX86InstIdPfrsqrt_ExtendedIndex = 142, - kX86InstIdPfsub_ExtendedIndex = 142, - kX86InstIdPfsubr_ExtendedIndex = 142, - kX86InstIdPhaddd_ExtendedIndex = 136, - kX86InstIdPhaddsw_ExtendedIndex = 136, - kX86InstIdPhaddw_ExtendedIndex = 136, - kX86InstIdPhminposuw_ExtendedIndex = 3, - kX86InstIdPhsubd_ExtendedIndex = 136, - kX86InstIdPhsubsw_ExtendedIndex = 136, - kX86InstIdPhsubw_ExtendedIndex = 136, - kX86InstIdPi2fd_ExtendedIndex = 141, - kX86InstIdPi2fw_ExtendedIndex = 141, - kX86InstIdPinsrb_ExtendedIndex = 143, - kX86InstIdPinsrd_ExtendedIndex = 143, - kX86InstIdPinsrq_ExtendedIndex = 144, - kX86InstIdPinsrw_ExtendedIndex = 145, - kX86InstIdPmaddubsw_ExtendedIndex = 136, - kX86InstIdPmaddwd_ExtendedIndex = 136, - kX86InstIdPmaxsb_ExtendedIndex = 3, - kX86InstIdPmaxsd_ExtendedIndex = 3, - kX86InstIdPmaxsw_ExtendedIndex = 136, - kX86InstIdPmaxub_ExtendedIndex = 136, - kX86InstIdPmaxud_ExtendedIndex = 3, - kX86InstIdPmaxuw_ExtendedIndex = 3, - kX86InstIdPminsb_ExtendedIndex = 3, - kX86InstIdPminsd_ExtendedIndex = 3, - kX86InstIdPminsw_ExtendedIndex = 136, - kX86InstIdPminub_ExtendedIndex = 136, - kX86InstIdPminud_ExtendedIndex = 3, - kX86InstIdPminuw_ExtendedIndex = 3, - kX86InstIdPmovmskb_ExtendedIndex = 146, - kX86InstIdPmovsxbd_ExtendedIndex = 36, - kX86InstIdPmovsxbq_ExtendedIndex = 36, - kX86InstIdPmovsxbw_ExtendedIndex = 36, - kX86InstIdPmovsxdq_ExtendedIndex = 36, - kX86InstIdPmovsxwd_ExtendedIndex = 36, - kX86InstIdPmovsxwq_ExtendedIndex = 36, - kX86InstIdPmovzxbd_ExtendedIndex = 36, - kX86InstIdPmovzxbq_ExtendedIndex = 36, - kX86InstIdPmovzxbw_ExtendedIndex = 36, - kX86InstIdPmovzxdq_ExtendedIndex = 36, - kX86InstIdPmovzxwd_ExtendedIndex = 36, - kX86InstIdPmovzxwq_ExtendedIndex = 36, - kX86InstIdPmuldq_ExtendedIndex = 3, - kX86InstIdPmulhrsw_ExtendedIndex = 136, - kX86InstIdPmulhuw_ExtendedIndex = 136, - kX86InstIdPmulhw_ExtendedIndex = 136, - kX86InstIdPmulld_ExtendedIndex = 3, - kX86InstIdPmullw_ExtendedIndex = 136, - kX86InstIdPmuludq_ExtendedIndex = 136, - kX86InstIdPop_ExtendedIndex = 147, - kX86InstIdPopa_ExtendedIndex = 16, - kX86InstIdPopcnt_ExtendedIndex = 9, - kX86InstIdPopf_ExtendedIndex = 148, - kX86InstIdPor_ExtendedIndex = 136, - kX86InstIdPrefetch_ExtendedIndex = 149, - kX86InstIdPrefetch3dNow_ExtendedIndex = 19, - kX86InstIdPrefetchw3dNow_ExtendedIndex = 19, - kX86InstIdPsadbw_ExtendedIndex = 136, - kX86InstIdPshufb_ExtendedIndex = 136, - kX86InstIdPshufd_ExtendedIndex = 150, - kX86InstIdPshufhw_ExtendedIndex = 150, - kX86InstIdPshuflw_ExtendedIndex = 150, - kX86InstIdPshufw_ExtendedIndex = 151, - kX86InstIdPsignb_ExtendedIndex = 136, - kX86InstIdPsignd_ExtendedIndex = 136, - kX86InstIdPsignw_ExtendedIndex = 136, - kX86InstIdPslld_ExtendedIndex = 152, - kX86InstIdPslldq_ExtendedIndex = 153, - kX86InstIdPsllq_ExtendedIndex = 154, - kX86InstIdPsllw_ExtendedIndex = 155, - kX86InstIdPsrad_ExtendedIndex = 156, - kX86InstIdPsraw_ExtendedIndex = 157, - kX86InstIdPsrld_ExtendedIndex = 158, - kX86InstIdPsrldq_ExtendedIndex = 159, - kX86InstIdPsrlq_ExtendedIndex = 160, - kX86InstIdPsrlw_ExtendedIndex = 161, - kX86InstIdPsubb_ExtendedIndex = 136, - kX86InstIdPsubd_ExtendedIndex = 136, - kX86InstIdPsubq_ExtendedIndex = 136, - kX86InstIdPsubsb_ExtendedIndex = 136, - kX86InstIdPsubsw_ExtendedIndex = 136, - kX86InstIdPsubusb_ExtendedIndex = 136, - kX86InstIdPsubusw_ExtendedIndex = 136, - kX86InstIdPsubw_ExtendedIndex = 136, - kX86InstIdPswapd_ExtendedIndex = 141, - kX86InstIdPtest_ExtendedIndex = 34, - kX86InstIdPunpckhbw_ExtendedIndex = 136, - kX86InstIdPunpckhdq_ExtendedIndex = 136, - kX86InstIdPunpckhqdq_ExtendedIndex = 3, - kX86InstIdPunpckhwd_ExtendedIndex = 136, - kX86InstIdPunpcklbw_ExtendedIndex = 136, - kX86InstIdPunpckldq_ExtendedIndex = 136, - kX86InstIdPunpcklqdq_ExtendedIndex = 3, - kX86InstIdPunpcklwd_ExtendedIndex = 136, - kX86InstIdPush_ExtendedIndex = 162, - kX86InstIdPusha_ExtendedIndex = 16, - kX86InstIdPushf_ExtendedIndex = 163, - kX86InstIdPxor_ExtendedIndex = 136, - kX86InstIdRcl_ExtendedIndex = 164, - kX86InstIdRcpps_ExtendedIndex = 36, - kX86InstIdRcpss_ExtendedIndex = 41, - kX86InstIdRcr_ExtendedIndex = 164, - kX86InstIdRdfsbase_ExtendedIndex = 165, - kX86InstIdRdgsbase_ExtendedIndex = 165, - kX86InstIdRdrand_ExtendedIndex = 166, - kX86InstIdRdtsc_ExtendedIndex = 16, - kX86InstIdRdtscp_ExtendedIndex = 16, - kX86InstIdRepLodsB_ExtendedIndex = 167, - kX86InstIdRepLodsD_ExtendedIndex = 167, - kX86InstIdRepLodsQ_ExtendedIndex = 167, - kX86InstIdRepLodsW_ExtendedIndex = 167, - kX86InstIdRepMovsB_ExtendedIndex = 168, - kX86InstIdRepMovsD_ExtendedIndex = 168, - kX86InstIdRepMovsQ_ExtendedIndex = 168, - kX86InstIdRepMovsW_ExtendedIndex = 168, - kX86InstIdRepStosB_ExtendedIndex = 167, - kX86InstIdRepStosD_ExtendedIndex = 167, - kX86InstIdRepStosQ_ExtendedIndex = 167, - kX86InstIdRepStosW_ExtendedIndex = 167, - kX86InstIdRepeCmpsB_ExtendedIndex = 169, - kX86InstIdRepeCmpsD_ExtendedIndex = 169, - kX86InstIdRepeCmpsQ_ExtendedIndex = 169, - kX86InstIdRepeCmpsW_ExtendedIndex = 169, - kX86InstIdRepeScasB_ExtendedIndex = 169, - kX86InstIdRepeScasD_ExtendedIndex = 169, - kX86InstIdRepeScasQ_ExtendedIndex = 169, - kX86InstIdRepeScasW_ExtendedIndex = 169, - kX86InstIdRepneCmpsB_ExtendedIndex = 169, - kX86InstIdRepneCmpsD_ExtendedIndex = 169, - kX86InstIdRepneCmpsQ_ExtendedIndex = 169, - kX86InstIdRepneCmpsW_ExtendedIndex = 169, - kX86InstIdRepneScasB_ExtendedIndex = 169, - kX86InstIdRepneScasD_ExtendedIndex = 169, - kX86InstIdRepneScasQ_ExtendedIndex = 169, - kX86InstIdRepneScasW_ExtendedIndex = 169, - kX86InstIdRet_ExtendedIndex = 170, - kX86InstIdRol_ExtendedIndex = 171, - kX86InstIdRor_ExtendedIndex = 171, - kX86InstIdRorx_ExtendedIndex = 172, - kX86InstIdRoundpd_ExtendedIndex = 150, - kX86InstIdRoundps_ExtendedIndex = 150, - kX86InstIdRoundsd_ExtendedIndex = 173, - kX86InstIdRoundss_ExtendedIndex = 174, - kX86InstIdRsqrtps_ExtendedIndex = 36, - kX86InstIdRsqrtss_ExtendedIndex = 41, - kX86InstIdSahf_ExtendedIndex = 175, - kX86InstIdSal_ExtendedIndex = 176, - kX86InstIdSar_ExtendedIndex = 176, - kX86InstIdSarx_ExtendedIndex = 177, - kX86InstIdSbb_ExtendedIndex = 1, - kX86InstIdScasB_ExtendedIndex = 30, - kX86InstIdScasD_ExtendedIndex = 30, - kX86InstIdScasQ_ExtendedIndex = 30, - kX86InstIdScasW_ExtendedIndex = 31, - kX86InstIdSeta_ExtendedIndex = 178, - kX86InstIdSetae_ExtendedIndex = 179, - kX86InstIdSetb_ExtendedIndex = 179, - kX86InstIdSetbe_ExtendedIndex = 178, - kX86InstIdSetc_ExtendedIndex = 179, - kX86InstIdSete_ExtendedIndex = 180, - kX86InstIdSetg_ExtendedIndex = 181, - kX86InstIdSetge_ExtendedIndex = 182, - kX86InstIdSetl_ExtendedIndex = 182, - kX86InstIdSetle_ExtendedIndex = 181, - kX86InstIdSetna_ExtendedIndex = 178, - kX86InstIdSetnae_ExtendedIndex = 179, - kX86InstIdSetnb_ExtendedIndex = 179, - kX86InstIdSetnbe_ExtendedIndex = 178, - kX86InstIdSetnc_ExtendedIndex = 179, - kX86InstIdSetne_ExtendedIndex = 180, - kX86InstIdSetng_ExtendedIndex = 181, - kX86InstIdSetnge_ExtendedIndex = 182, - kX86InstIdSetnl_ExtendedIndex = 182, - kX86InstIdSetnle_ExtendedIndex = 181, - kX86InstIdSetno_ExtendedIndex = 183, - kX86InstIdSetnp_ExtendedIndex = 184, - kX86InstIdSetns_ExtendedIndex = 185, - kX86InstIdSetnz_ExtendedIndex = 180, - kX86InstIdSeto_ExtendedIndex = 183, - kX86InstIdSetp_ExtendedIndex = 184, - kX86InstIdSetpe_ExtendedIndex = 184, - kX86InstIdSetpo_ExtendedIndex = 184, - kX86InstIdSets_ExtendedIndex = 185, - kX86InstIdSetz_ExtendedIndex = 180, - kX86InstIdSfence_ExtendedIndex = 91, - kX86InstIdShl_ExtendedIndex = 176, - kX86InstIdShld_ExtendedIndex = 186, - kX86InstIdShlx_ExtendedIndex = 177, - kX86InstIdShr_ExtendedIndex = 176, - kX86InstIdShrd_ExtendedIndex = 187, - kX86InstIdShrx_ExtendedIndex = 177, - kX86InstIdShufpd_ExtendedIndex = 4, - kX86InstIdShufps_ExtendedIndex = 4, - kX86InstIdSqrtpd_ExtendedIndex = 36, - kX86InstIdSqrtps_ExtendedIndex = 36, - kX86InstIdSqrtsd_ExtendedIndex = 44, - kX86InstIdSqrtss_ExtendedIndex = 41, - kX86InstIdStc_ExtendedIndex = 17, - kX86InstIdStd_ExtendedIndex = 18, - kX86InstIdStmxcsr_ExtendedIndex = 19, - kX86InstIdStosB_ExtendedIndex = 188, - kX86InstIdStosD_ExtendedIndex = 188, - kX86InstIdStosQ_ExtendedIndex = 188, - kX86InstIdStosW_ExtendedIndex = 189, - kX86InstIdSub_ExtendedIndex = 2, - kX86InstIdSubpd_ExtendedIndex = 3, - kX86InstIdSubps_ExtendedIndex = 3, - kX86InstIdSubsd_ExtendedIndex = 3, - kX86InstIdSubss_ExtendedIndex = 3, - kX86InstIdTest_ExtendedIndex = 190, - kX86InstIdTzcnt_ExtendedIndex = 191, - kX86InstIdUcomisd_ExtendedIndex = 34, - kX86InstIdUcomiss_ExtendedIndex = 34, - kX86InstIdUd2_ExtendedIndex = 48, - kX86InstIdUnpckhpd_ExtendedIndex = 3, - kX86InstIdUnpckhps_ExtendedIndex = 3, - kX86InstIdUnpcklpd_ExtendedIndex = 3, - kX86InstIdUnpcklps_ExtendedIndex = 3, - kX86InstIdVaddpd_ExtendedIndex = 192, - kX86InstIdVaddps_ExtendedIndex = 192, - kX86InstIdVaddsd_ExtendedIndex = 193, - kX86InstIdVaddss_ExtendedIndex = 193, - kX86InstIdVaddsubpd_ExtendedIndex = 192, - kX86InstIdVaddsubps_ExtendedIndex = 192, - kX86InstIdVaesdec_ExtendedIndex = 193, - kX86InstIdVaesdeclast_ExtendedIndex = 193, - kX86InstIdVaesenc_ExtendedIndex = 193, - kX86InstIdVaesenclast_ExtendedIndex = 193, - kX86InstIdVaesimc_ExtendedIndex = 194, - kX86InstIdVaeskeygenassist_ExtendedIndex = 195, - kX86InstIdVandnpd_ExtendedIndex = 192, - kX86InstIdVandnps_ExtendedIndex = 192, - kX86InstIdVandpd_ExtendedIndex = 192, - kX86InstIdVandps_ExtendedIndex = 192, - kX86InstIdVblendpd_ExtendedIndex = 196, - kX86InstIdVblendps_ExtendedIndex = 196, - kX86InstIdVblendvpd_ExtendedIndex = 197, - kX86InstIdVblendvps_ExtendedIndex = 197, - kX86InstIdVbroadcastf128_ExtendedIndex = 198, - kX86InstIdVbroadcasti128_ExtendedIndex = 198, - kX86InstIdVbroadcastsd_ExtendedIndex = 199, - kX86InstIdVbroadcastss_ExtendedIndex = 200, - kX86InstIdVcmppd_ExtendedIndex = 196, - kX86InstIdVcmpps_ExtendedIndex = 196, - kX86InstIdVcmpsd_ExtendedIndex = 201, - kX86InstIdVcmpss_ExtendedIndex = 201, - kX86InstIdVcomisd_ExtendedIndex = 194, - kX86InstIdVcomiss_ExtendedIndex = 194, - kX86InstIdVcvtdq2pd_ExtendedIndex = 200, - kX86InstIdVcvtdq2ps_ExtendedIndex = 202, - kX86InstIdVcvtpd2dq_ExtendedIndex = 203, - kX86InstIdVcvtpd2ps_ExtendedIndex = 203, - kX86InstIdVcvtph2ps_ExtendedIndex = 200, - kX86InstIdVcvtps2dq_ExtendedIndex = 202, - kX86InstIdVcvtps2pd_ExtendedIndex = 200, - kX86InstIdVcvtps2ph_ExtendedIndex = 204, - kX86InstIdVcvtsd2si_ExtendedIndex = 205, - kX86InstIdVcvtsd2ss_ExtendedIndex = 193, - kX86InstIdVcvtsi2sd_ExtendedIndex = 206, - kX86InstIdVcvtsi2ss_ExtendedIndex = 206, - kX86InstIdVcvtss2sd_ExtendedIndex = 193, - kX86InstIdVcvtss2si_ExtendedIndex = 205, - kX86InstIdVcvttpd2dq_ExtendedIndex = 207, - kX86InstIdVcvttps2dq_ExtendedIndex = 202, - kX86InstIdVcvttsd2si_ExtendedIndex = 205, - kX86InstIdVcvttss2si_ExtendedIndex = 205, - kX86InstIdVdivpd_ExtendedIndex = 192, - kX86InstIdVdivps_ExtendedIndex = 192, - kX86InstIdVdivsd_ExtendedIndex = 193, - kX86InstIdVdivss_ExtendedIndex = 193, - kX86InstIdVdppd_ExtendedIndex = 201, - kX86InstIdVdpps_ExtendedIndex = 196, - kX86InstIdVextractf128_ExtendedIndex = 208, - kX86InstIdVextracti128_ExtendedIndex = 208, - kX86InstIdVextractps_ExtendedIndex = 209, - kX86InstIdVfmadd132pd_ExtendedIndex = 192, - kX86InstIdVfmadd132ps_ExtendedIndex = 192, - kX86InstIdVfmadd132sd_ExtendedIndex = 193, - kX86InstIdVfmadd132ss_ExtendedIndex = 193, - kX86InstIdVfmadd213pd_ExtendedIndex = 192, - kX86InstIdVfmadd213ps_ExtendedIndex = 192, - kX86InstIdVfmadd213sd_ExtendedIndex = 193, - kX86InstIdVfmadd213ss_ExtendedIndex = 193, - kX86InstIdVfmadd231pd_ExtendedIndex = 192, - kX86InstIdVfmadd231ps_ExtendedIndex = 192, - kX86InstIdVfmadd231sd_ExtendedIndex = 193, - kX86InstIdVfmadd231ss_ExtendedIndex = 193, - kX86InstIdVfmaddpd_ExtendedIndex = 210, - kX86InstIdVfmaddps_ExtendedIndex = 210, - kX86InstIdVfmaddsd_ExtendedIndex = 211, - kX86InstIdVfmaddss_ExtendedIndex = 211, - kX86InstIdVfmaddsub132pd_ExtendedIndex = 192, - kX86InstIdVfmaddsub132ps_ExtendedIndex = 192, - kX86InstIdVfmaddsub213pd_ExtendedIndex = 192, - kX86InstIdVfmaddsub213ps_ExtendedIndex = 192, - kX86InstIdVfmaddsub231pd_ExtendedIndex = 192, - kX86InstIdVfmaddsub231ps_ExtendedIndex = 192, - kX86InstIdVfmaddsubpd_ExtendedIndex = 210, - kX86InstIdVfmaddsubps_ExtendedIndex = 210, - kX86InstIdVfmsub132pd_ExtendedIndex = 192, - kX86InstIdVfmsub132ps_ExtendedIndex = 192, - kX86InstIdVfmsub132sd_ExtendedIndex = 193, - kX86InstIdVfmsub132ss_ExtendedIndex = 193, - kX86InstIdVfmsub213pd_ExtendedIndex = 192, - kX86InstIdVfmsub213ps_ExtendedIndex = 192, - kX86InstIdVfmsub213sd_ExtendedIndex = 193, - kX86InstIdVfmsub213ss_ExtendedIndex = 193, - kX86InstIdVfmsub231pd_ExtendedIndex = 192, - kX86InstIdVfmsub231ps_ExtendedIndex = 192, - kX86InstIdVfmsub231sd_ExtendedIndex = 193, - kX86InstIdVfmsub231ss_ExtendedIndex = 193, - kX86InstIdVfmsubadd132pd_ExtendedIndex = 192, - kX86InstIdVfmsubadd132ps_ExtendedIndex = 192, - kX86InstIdVfmsubadd213pd_ExtendedIndex = 192, - kX86InstIdVfmsubadd213ps_ExtendedIndex = 192, - kX86InstIdVfmsubadd231pd_ExtendedIndex = 192, - kX86InstIdVfmsubadd231ps_ExtendedIndex = 192, - kX86InstIdVfmsubaddpd_ExtendedIndex = 210, - kX86InstIdVfmsubaddps_ExtendedIndex = 210, - kX86InstIdVfmsubpd_ExtendedIndex = 210, - kX86InstIdVfmsubps_ExtendedIndex = 210, - kX86InstIdVfmsubsd_ExtendedIndex = 211, - kX86InstIdVfmsubss_ExtendedIndex = 211, - kX86InstIdVfnmadd132pd_ExtendedIndex = 192, - kX86InstIdVfnmadd132ps_ExtendedIndex = 192, - kX86InstIdVfnmadd132sd_ExtendedIndex = 193, - kX86InstIdVfnmadd132ss_ExtendedIndex = 193, - kX86InstIdVfnmadd213pd_ExtendedIndex = 192, - kX86InstIdVfnmadd213ps_ExtendedIndex = 192, - kX86InstIdVfnmadd213sd_ExtendedIndex = 193, - kX86InstIdVfnmadd213ss_ExtendedIndex = 193, - kX86InstIdVfnmadd231pd_ExtendedIndex = 192, - kX86InstIdVfnmadd231ps_ExtendedIndex = 192, - kX86InstIdVfnmadd231sd_ExtendedIndex = 193, - kX86InstIdVfnmadd231ss_ExtendedIndex = 193, - kX86InstIdVfnmaddpd_ExtendedIndex = 210, - kX86InstIdVfnmaddps_ExtendedIndex = 210, - kX86InstIdVfnmaddsd_ExtendedIndex = 211, - kX86InstIdVfnmaddss_ExtendedIndex = 211, - kX86InstIdVfnmsub132pd_ExtendedIndex = 192, - kX86InstIdVfnmsub132ps_ExtendedIndex = 192, - kX86InstIdVfnmsub132sd_ExtendedIndex = 193, - kX86InstIdVfnmsub132ss_ExtendedIndex = 193, - kX86InstIdVfnmsub213pd_ExtendedIndex = 192, - kX86InstIdVfnmsub213ps_ExtendedIndex = 192, - kX86InstIdVfnmsub213sd_ExtendedIndex = 193, - kX86InstIdVfnmsub213ss_ExtendedIndex = 193, - kX86InstIdVfnmsub231pd_ExtendedIndex = 192, - kX86InstIdVfnmsub231ps_ExtendedIndex = 192, - kX86InstIdVfnmsub231sd_ExtendedIndex = 193, - kX86InstIdVfnmsub231ss_ExtendedIndex = 193, - kX86InstIdVfnmsubpd_ExtendedIndex = 210, - kX86InstIdVfnmsubps_ExtendedIndex = 210, - kX86InstIdVfnmsubsd_ExtendedIndex = 211, - kX86InstIdVfnmsubss_ExtendedIndex = 211, - kX86InstIdVfrczpd_ExtendedIndex = 212, - kX86InstIdVfrczps_ExtendedIndex = 212, - kX86InstIdVfrczsd_ExtendedIndex = 213, - kX86InstIdVfrczss_ExtendedIndex = 213, - kX86InstIdVgatherdpd_ExtendedIndex = 214, - kX86InstIdVgatherdps_ExtendedIndex = 214, - kX86InstIdVgatherqpd_ExtendedIndex = 214, - kX86InstIdVgatherqps_ExtendedIndex = 215, - kX86InstIdVhaddpd_ExtendedIndex = 192, - kX86InstIdVhaddps_ExtendedIndex = 192, - kX86InstIdVhsubpd_ExtendedIndex = 192, - kX86InstIdVhsubps_ExtendedIndex = 192, - kX86InstIdVinsertf128_ExtendedIndex = 216, - kX86InstIdVinserti128_ExtendedIndex = 216, - kX86InstIdVinsertps_ExtendedIndex = 201, - kX86InstIdVlddqu_ExtendedIndex = 217, - kX86InstIdVldmxcsr_ExtendedIndex = 218, - kX86InstIdVmaskmovdqu_ExtendedIndex = 219, - kX86InstIdVmaskmovpd_ExtendedIndex = 220, - kX86InstIdVmaskmovps_ExtendedIndex = 221, - kX86InstIdVmaxpd_ExtendedIndex = 192, - kX86InstIdVmaxps_ExtendedIndex = 192, - kX86InstIdVmaxsd_ExtendedIndex = 192, - kX86InstIdVmaxss_ExtendedIndex = 192, - kX86InstIdVminpd_ExtendedIndex = 192, - kX86InstIdVminps_ExtendedIndex = 192, - kX86InstIdVminsd_ExtendedIndex = 192, - kX86InstIdVminss_ExtendedIndex = 192, - kX86InstIdVmovapd_ExtendedIndex = 222, - kX86InstIdVmovaps_ExtendedIndex = 223, - kX86InstIdVmovd_ExtendedIndex = 224, - kX86InstIdVmovddup_ExtendedIndex = 202, - kX86InstIdVmovdqa_ExtendedIndex = 225, - kX86InstIdVmovdqu_ExtendedIndex = 226, - kX86InstIdVmovhlps_ExtendedIndex = 227, - kX86InstIdVmovhpd_ExtendedIndex = 228, - kX86InstIdVmovhps_ExtendedIndex = 229, - kX86InstIdVmovlhps_ExtendedIndex = 227, - kX86InstIdVmovlpd_ExtendedIndex = 230, - kX86InstIdVmovlps_ExtendedIndex = 231, - kX86InstIdVmovmskpd_ExtendedIndex = 232, - kX86InstIdVmovmskps_ExtendedIndex = 232, - kX86InstIdVmovntdq_ExtendedIndex = 233, - kX86InstIdVmovntdqa_ExtendedIndex = 217, - kX86InstIdVmovntpd_ExtendedIndex = 233, - kX86InstIdVmovntps_ExtendedIndex = 233, - kX86InstIdVmovq_ExtendedIndex = 224, - kX86InstIdVmovsd_ExtendedIndex = 234, - kX86InstIdVmovshdup_ExtendedIndex = 202, - kX86InstIdVmovsldup_ExtendedIndex = 202, - kX86InstIdVmovss_ExtendedIndex = 235, - kX86InstIdVmovupd_ExtendedIndex = 236, - kX86InstIdVmovups_ExtendedIndex = 237, - kX86InstIdVmpsadbw_ExtendedIndex = 196, - kX86InstIdVmulpd_ExtendedIndex = 192, - kX86InstIdVmulps_ExtendedIndex = 192, - kX86InstIdVmulsd_ExtendedIndex = 192, - kX86InstIdVmulss_ExtendedIndex = 192, - kX86InstIdVorpd_ExtendedIndex = 192, - kX86InstIdVorps_ExtendedIndex = 192, - kX86InstIdVpabsb_ExtendedIndex = 202, - kX86InstIdVpabsd_ExtendedIndex = 202, - kX86InstIdVpabsw_ExtendedIndex = 202, - kX86InstIdVpackssdw_ExtendedIndex = 192, - kX86InstIdVpacksswb_ExtendedIndex = 192, - kX86InstIdVpackusdw_ExtendedIndex = 192, - kX86InstIdVpackuswb_ExtendedIndex = 192, - kX86InstIdVpaddb_ExtendedIndex = 192, - kX86InstIdVpaddd_ExtendedIndex = 192, - kX86InstIdVpaddq_ExtendedIndex = 192, - kX86InstIdVpaddsb_ExtendedIndex = 192, - kX86InstIdVpaddsw_ExtendedIndex = 192, - kX86InstIdVpaddusb_ExtendedIndex = 192, - kX86InstIdVpaddusw_ExtendedIndex = 192, - kX86InstIdVpaddw_ExtendedIndex = 192, - kX86InstIdVpalignr_ExtendedIndex = 196, - kX86InstIdVpand_ExtendedIndex = 192, - kX86InstIdVpandn_ExtendedIndex = 192, - kX86InstIdVpavgb_ExtendedIndex = 192, - kX86InstIdVpavgw_ExtendedIndex = 192, - kX86InstIdVpblendd_ExtendedIndex = 196, - kX86InstIdVpblendvb_ExtendedIndex = 238, - kX86InstIdVpblendw_ExtendedIndex = 196, - kX86InstIdVpbroadcastb_ExtendedIndex = 200, - kX86InstIdVpbroadcastd_ExtendedIndex = 200, - kX86InstIdVpbroadcastq_ExtendedIndex = 200, - kX86InstIdVpbroadcastw_ExtendedIndex = 200, - kX86InstIdVpclmulqdq_ExtendedIndex = 201, - kX86InstIdVpcmov_ExtendedIndex = 239, - kX86InstIdVpcmpeqb_ExtendedIndex = 192, - kX86InstIdVpcmpeqd_ExtendedIndex = 192, - kX86InstIdVpcmpeqq_ExtendedIndex = 192, - kX86InstIdVpcmpeqw_ExtendedIndex = 192, - kX86InstIdVpcmpestri_ExtendedIndex = 195, - kX86InstIdVpcmpestrm_ExtendedIndex = 195, - kX86InstIdVpcmpgtb_ExtendedIndex = 192, - kX86InstIdVpcmpgtd_ExtendedIndex = 192, - kX86InstIdVpcmpgtq_ExtendedIndex = 192, - kX86InstIdVpcmpgtw_ExtendedIndex = 192, - kX86InstIdVpcmpistri_ExtendedIndex = 195, - kX86InstIdVpcmpistrm_ExtendedIndex = 195, - kX86InstIdVpcomb_ExtendedIndex = 240, - kX86InstIdVpcomd_ExtendedIndex = 240, - kX86InstIdVpcomq_ExtendedIndex = 240, - kX86InstIdVpcomub_ExtendedIndex = 240, - kX86InstIdVpcomud_ExtendedIndex = 240, - kX86InstIdVpcomuq_ExtendedIndex = 240, - kX86InstIdVpcomuw_ExtendedIndex = 240, - kX86InstIdVpcomw_ExtendedIndex = 240, - kX86InstIdVperm2f128_ExtendedIndex = 241, - kX86InstIdVperm2i128_ExtendedIndex = 241, - kX86InstIdVpermd_ExtendedIndex = 242, - kX86InstIdVpermil2pd_ExtendedIndex = 243, - kX86InstIdVpermil2ps_ExtendedIndex = 243, - kX86InstIdVpermilpd_ExtendedIndex = 244, - kX86InstIdVpermilps_ExtendedIndex = 245, - kX86InstIdVpermpd_ExtendedIndex = 246, - kX86InstIdVpermps_ExtendedIndex = 242, - kX86InstIdVpermq_ExtendedIndex = 246, - kX86InstIdVpextrb_ExtendedIndex = 247, - kX86InstIdVpextrd_ExtendedIndex = 209, - kX86InstIdVpextrq_ExtendedIndex = 248, - kX86InstIdVpextrw_ExtendedIndex = 249, - kX86InstIdVpgatherdd_ExtendedIndex = 214, - kX86InstIdVpgatherdq_ExtendedIndex = 214, - kX86InstIdVpgatherqd_ExtendedIndex = 215, - kX86InstIdVpgatherqq_ExtendedIndex = 214, - kX86InstIdVphaddbd_ExtendedIndex = 213, - kX86InstIdVphaddbq_ExtendedIndex = 213, - kX86InstIdVphaddbw_ExtendedIndex = 213, - kX86InstIdVphaddd_ExtendedIndex = 192, - kX86InstIdVphadddq_ExtendedIndex = 213, - kX86InstIdVphaddsw_ExtendedIndex = 192, - kX86InstIdVphaddubd_ExtendedIndex = 213, - kX86InstIdVphaddubq_ExtendedIndex = 213, - kX86InstIdVphaddubw_ExtendedIndex = 213, - kX86InstIdVphaddudq_ExtendedIndex = 213, - kX86InstIdVphadduwd_ExtendedIndex = 213, - kX86InstIdVphadduwq_ExtendedIndex = 213, - kX86InstIdVphaddw_ExtendedIndex = 192, - kX86InstIdVphaddwd_ExtendedIndex = 213, - kX86InstIdVphaddwq_ExtendedIndex = 213, - kX86InstIdVphminposuw_ExtendedIndex = 194, - kX86InstIdVphsubbw_ExtendedIndex = 213, - kX86InstIdVphsubd_ExtendedIndex = 192, - kX86InstIdVphsubdq_ExtendedIndex = 213, - kX86InstIdVphsubsw_ExtendedIndex = 192, - kX86InstIdVphsubw_ExtendedIndex = 192, - kX86InstIdVphsubwd_ExtendedIndex = 213, - kX86InstIdVpinsrb_ExtendedIndex = 250, - kX86InstIdVpinsrd_ExtendedIndex = 251, - kX86InstIdVpinsrq_ExtendedIndex = 252, - kX86InstIdVpinsrw_ExtendedIndex = 253, - kX86InstIdVpmacsdd_ExtendedIndex = 254, - kX86InstIdVpmacsdqh_ExtendedIndex = 254, - kX86InstIdVpmacsdql_ExtendedIndex = 254, - kX86InstIdVpmacssdd_ExtendedIndex = 254, - kX86InstIdVpmacssdqh_ExtendedIndex = 254, - kX86InstIdVpmacssdql_ExtendedIndex = 254, - kX86InstIdVpmacsswd_ExtendedIndex = 254, - kX86InstIdVpmacssww_ExtendedIndex = 254, - kX86InstIdVpmacswd_ExtendedIndex = 254, - kX86InstIdVpmacsww_ExtendedIndex = 254, - kX86InstIdVpmadcsswd_ExtendedIndex = 254, - kX86InstIdVpmadcswd_ExtendedIndex = 254, - kX86InstIdVpmaddubsw_ExtendedIndex = 192, - kX86InstIdVpmaddwd_ExtendedIndex = 192, - kX86InstIdVpmaskmovd_ExtendedIndex = 255, - kX86InstIdVpmaskmovq_ExtendedIndex = 255, - kX86InstIdVpmaxsb_ExtendedIndex = 192, - kX86InstIdVpmaxsd_ExtendedIndex = 192, - kX86InstIdVpmaxsw_ExtendedIndex = 192, - kX86InstIdVpmaxub_ExtendedIndex = 192, - kX86InstIdVpmaxud_ExtendedIndex = 192, - kX86InstIdVpmaxuw_ExtendedIndex = 192, - kX86InstIdVpminsb_ExtendedIndex = 192, - kX86InstIdVpminsd_ExtendedIndex = 192, - kX86InstIdVpminsw_ExtendedIndex = 192, - kX86InstIdVpminub_ExtendedIndex = 192, - kX86InstIdVpminud_ExtendedIndex = 192, - kX86InstIdVpminuw_ExtendedIndex = 192, - kX86InstIdVpmovmskb_ExtendedIndex = 232, - kX86InstIdVpmovsxbd_ExtendedIndex = 202, - kX86InstIdVpmovsxbq_ExtendedIndex = 202, - kX86InstIdVpmovsxbw_ExtendedIndex = 202, - kX86InstIdVpmovsxdq_ExtendedIndex = 202, - kX86InstIdVpmovsxwd_ExtendedIndex = 202, - kX86InstIdVpmovsxwq_ExtendedIndex = 202, - kX86InstIdVpmovzxbd_ExtendedIndex = 202, - kX86InstIdVpmovzxbq_ExtendedIndex = 202, - kX86InstIdVpmovzxbw_ExtendedIndex = 202, - kX86InstIdVpmovzxdq_ExtendedIndex = 202, - kX86InstIdVpmovzxwd_ExtendedIndex = 202, - kX86InstIdVpmovzxwq_ExtendedIndex = 202, - kX86InstIdVpmuldq_ExtendedIndex = 192, - kX86InstIdVpmulhrsw_ExtendedIndex = 192, - kX86InstIdVpmulhuw_ExtendedIndex = 192, - kX86InstIdVpmulhw_ExtendedIndex = 192, - kX86InstIdVpmulld_ExtendedIndex = 192, - kX86InstIdVpmullw_ExtendedIndex = 192, - kX86InstIdVpmuludq_ExtendedIndex = 192, - kX86InstIdVpor_ExtendedIndex = 192, - kX86InstIdVpperm_ExtendedIndex = 256, - kX86InstIdVprotb_ExtendedIndex = 257, - kX86InstIdVprotd_ExtendedIndex = 258, - kX86InstIdVprotq_ExtendedIndex = 259, - kX86InstIdVprotw_ExtendedIndex = 260, - kX86InstIdVpsadbw_ExtendedIndex = 192, - kX86InstIdVpshab_ExtendedIndex = 261, - kX86InstIdVpshad_ExtendedIndex = 261, - kX86InstIdVpshaq_ExtendedIndex = 261, - kX86InstIdVpshaw_ExtendedIndex = 261, - kX86InstIdVpshlb_ExtendedIndex = 261, - kX86InstIdVpshld_ExtendedIndex = 261, - kX86InstIdVpshlq_ExtendedIndex = 261, - kX86InstIdVpshlw_ExtendedIndex = 261, - kX86InstIdVpshufb_ExtendedIndex = 192, - kX86InstIdVpshufd_ExtendedIndex = 262, - kX86InstIdVpshufhw_ExtendedIndex = 262, - kX86InstIdVpshuflw_ExtendedIndex = 262, - kX86InstIdVpsignb_ExtendedIndex = 192, - kX86InstIdVpsignd_ExtendedIndex = 192, - kX86InstIdVpsignw_ExtendedIndex = 192, - kX86InstIdVpslld_ExtendedIndex = 263, - kX86InstIdVpslldq_ExtendedIndex = 264, - kX86InstIdVpsllq_ExtendedIndex = 265, - kX86InstIdVpsllvd_ExtendedIndex = 192, - kX86InstIdVpsllvq_ExtendedIndex = 192, - kX86InstIdVpsllw_ExtendedIndex = 266, - kX86InstIdVpsrad_ExtendedIndex = 267, - kX86InstIdVpsravd_ExtendedIndex = 192, - kX86InstIdVpsraw_ExtendedIndex = 268, - kX86InstIdVpsrld_ExtendedIndex = 269, - kX86InstIdVpsrldq_ExtendedIndex = 264, - kX86InstIdVpsrlq_ExtendedIndex = 270, - kX86InstIdVpsrlvd_ExtendedIndex = 192, - kX86InstIdVpsrlvq_ExtendedIndex = 192, - kX86InstIdVpsrlw_ExtendedIndex = 271, - kX86InstIdVpsubb_ExtendedIndex = 192, - kX86InstIdVpsubd_ExtendedIndex = 192, - kX86InstIdVpsubq_ExtendedIndex = 192, - kX86InstIdVpsubsb_ExtendedIndex = 192, - kX86InstIdVpsubsw_ExtendedIndex = 192, - kX86InstIdVpsubusb_ExtendedIndex = 192, - kX86InstIdVpsubusw_ExtendedIndex = 192, - kX86InstIdVpsubw_ExtendedIndex = 192, - kX86InstIdVptest_ExtendedIndex = 272, - kX86InstIdVpunpckhbw_ExtendedIndex = 192, - kX86InstIdVpunpckhdq_ExtendedIndex = 192, - kX86InstIdVpunpckhqdq_ExtendedIndex = 192, - kX86InstIdVpunpckhwd_ExtendedIndex = 192, - kX86InstIdVpunpcklbw_ExtendedIndex = 192, - kX86InstIdVpunpckldq_ExtendedIndex = 192, - kX86InstIdVpunpcklqdq_ExtendedIndex = 192, - kX86InstIdVpunpcklwd_ExtendedIndex = 192, - kX86InstIdVpxor_ExtendedIndex = 192, - kX86InstIdVrcpps_ExtendedIndex = 202, - kX86InstIdVrcpss_ExtendedIndex = 193, - kX86InstIdVroundpd_ExtendedIndex = 262, - kX86InstIdVroundps_ExtendedIndex = 262, - kX86InstIdVroundsd_ExtendedIndex = 201, - kX86InstIdVroundss_ExtendedIndex = 201, - kX86InstIdVrsqrtps_ExtendedIndex = 202, - kX86InstIdVrsqrtss_ExtendedIndex = 193, - kX86InstIdVshufpd_ExtendedIndex = 196, - kX86InstIdVshufps_ExtendedIndex = 196, - kX86InstIdVsqrtpd_ExtendedIndex = 202, - kX86InstIdVsqrtps_ExtendedIndex = 202, - kX86InstIdVsqrtsd_ExtendedIndex = 193, - kX86InstIdVsqrtss_ExtendedIndex = 193, - kX86InstIdVstmxcsr_ExtendedIndex = 218, - kX86InstIdVsubpd_ExtendedIndex = 192, - kX86InstIdVsubps_ExtendedIndex = 192, - kX86InstIdVsubsd_ExtendedIndex = 193, - kX86InstIdVsubss_ExtendedIndex = 193, - kX86InstIdVtestpd_ExtendedIndex = 273, - kX86InstIdVtestps_ExtendedIndex = 273, - kX86InstIdVucomisd_ExtendedIndex = 274, - kX86InstIdVucomiss_ExtendedIndex = 274, - kX86InstIdVunpckhpd_ExtendedIndex = 192, - kX86InstIdVunpckhps_ExtendedIndex = 192, - kX86InstIdVunpcklpd_ExtendedIndex = 192, - kX86InstIdVunpcklps_ExtendedIndex = 192, - kX86InstIdVxorpd_ExtendedIndex = 192, - kX86InstIdVxorps_ExtendedIndex = 192, - kX86InstIdVzeroall_ExtendedIndex = 275, - kX86InstIdVzeroupper_ExtendedIndex = 275, - kX86InstIdWrfsbase_ExtendedIndex = 276, - kX86InstIdWrgsbase_ExtendedIndex = 276, - kX86InstIdXadd_ExtendedIndex = 277, - kX86InstIdXchg_ExtendedIndex = 278, - kX86InstIdXgetbv_ExtendedIndex = 16, - kX86InstIdXor_ExtendedIndex = 2, - kX86InstIdXorpd_ExtendedIndex = 3, - kX86InstIdXorps_ExtendedIndex = 3, - kX86InstIdXrstor_ExtendedIndex = 279, - kX86InstIdXrstor64_ExtendedIndex = 279, - kX86InstIdXsave_ExtendedIndex = 279, - kX86InstIdXsave64_ExtendedIndex = 279, - kX86InstIdXsaveopt_ExtendedIndex = 279, - kX86InstIdXsaveopt64_ExtendedIndex = 279, - kX86InstIdXsetbv_ExtendedIndex = 16 + kX86InstIdNone_ExtendedIndex = 0, + kX86InstIdAdc_ExtendedIndex = 1, + kX86InstIdAdcx_ExtendedIndex = 2, + kX86InstIdAdd_ExtendedIndex = 3, + kX86InstIdAddpd_ExtendedIndex = 4, + kX86InstIdAddps_ExtendedIndex = 4, + kX86InstIdAddsd_ExtendedIndex = 4, + kX86InstIdAddss_ExtendedIndex = 4, + kX86InstIdAddsubpd_ExtendedIndex = 4, + kX86InstIdAddsubps_ExtendedIndex = 4, + kX86InstIdAdox_ExtendedIndex = 5, + kX86InstIdAesdec_ExtendedIndex = 4, + kX86InstIdAesdeclast_ExtendedIndex = 4, + kX86InstIdAesenc_ExtendedIndex = 4, + kX86InstIdAesenclast_ExtendedIndex = 4, + kX86InstIdAesimc_ExtendedIndex = 6, + kX86InstIdAeskeygenassist_ExtendedIndex = 7, + kX86InstIdAnd_ExtendedIndex = 3, + kX86InstIdAndn_ExtendedIndex = 8, + kX86InstIdAndnpd_ExtendedIndex = 4, + kX86InstIdAndnps_ExtendedIndex = 4, + kX86InstIdAndpd_ExtendedIndex = 4, + kX86InstIdAndps_ExtendedIndex = 4, + kX86InstIdBextr_ExtendedIndex = 9, + kX86InstIdBlcfill_ExtendedIndex = 10, + kX86InstIdBlci_ExtendedIndex = 10, + kX86InstIdBlcic_ExtendedIndex = 10, + kX86InstIdBlcmsk_ExtendedIndex = 10, + kX86InstIdBlcs_ExtendedIndex = 10, + kX86InstIdBlendpd_ExtendedIndex = 11, + kX86InstIdBlendps_ExtendedIndex = 11, + kX86InstIdBlendvpd_ExtendedIndex = 12, + kX86InstIdBlendvps_ExtendedIndex = 12, + kX86InstIdBlsfill_ExtendedIndex = 10, + kX86InstIdBlsi_ExtendedIndex = 13, + kX86InstIdBlsic_ExtendedIndex = 10, + kX86InstIdBlsmsk_ExtendedIndex = 13, + kX86InstIdBlsr_ExtendedIndex = 13, + kX86InstIdBsf_ExtendedIndex = 14, + kX86InstIdBsr_ExtendedIndex = 14, + kX86InstIdBswap_ExtendedIndex = 15, + kX86InstIdBt_ExtendedIndex = 16, + kX86InstIdBtc_ExtendedIndex = 17, + kX86InstIdBtr_ExtendedIndex = 18, + kX86InstIdBts_ExtendedIndex = 19, + kX86InstIdBzhi_ExtendedIndex = 9, + kX86InstIdCall_ExtendedIndex = 20, + kX86InstIdCbw_ExtendedIndex = 21, + kX86InstIdCdq_ExtendedIndex = 21, + kX86InstIdCdqe_ExtendedIndex = 21, + kX86InstIdClc_ExtendedIndex = 22, + kX86InstIdCld_ExtendedIndex = 23, + kX86InstIdClflush_ExtendedIndex = 24, + kX86InstIdClflushopt_ExtendedIndex = 24, + kX86InstIdCmc_ExtendedIndex = 25, + kX86InstIdCmova_ExtendedIndex = 26, + kX86InstIdCmovae_ExtendedIndex = 27, + kX86InstIdCmovb_ExtendedIndex = 27, + kX86InstIdCmovbe_ExtendedIndex = 26, + kX86InstIdCmovc_ExtendedIndex = 27, + kX86InstIdCmove_ExtendedIndex = 28, + kX86InstIdCmovg_ExtendedIndex = 29, + kX86InstIdCmovge_ExtendedIndex = 30, + kX86InstIdCmovl_ExtendedIndex = 30, + kX86InstIdCmovle_ExtendedIndex = 29, + kX86InstIdCmovna_ExtendedIndex = 26, + kX86InstIdCmovnae_ExtendedIndex = 27, + kX86InstIdCmovnb_ExtendedIndex = 27, + kX86InstIdCmovnbe_ExtendedIndex = 26, + kX86InstIdCmovnc_ExtendedIndex = 27, + kX86InstIdCmovne_ExtendedIndex = 28, + kX86InstIdCmovng_ExtendedIndex = 29, + kX86InstIdCmovnge_ExtendedIndex = 30, + kX86InstIdCmovnl_ExtendedIndex = 30, + kX86InstIdCmovnle_ExtendedIndex = 29, + kX86InstIdCmovno_ExtendedIndex = 31, + kX86InstIdCmovnp_ExtendedIndex = 32, + kX86InstIdCmovns_ExtendedIndex = 33, + kX86InstIdCmovnz_ExtendedIndex = 28, + kX86InstIdCmovo_ExtendedIndex = 31, + kX86InstIdCmovp_ExtendedIndex = 32, + kX86InstIdCmovpe_ExtendedIndex = 32, + kX86InstIdCmovpo_ExtendedIndex = 32, + kX86InstIdCmovs_ExtendedIndex = 33, + kX86InstIdCmovz_ExtendedIndex = 28, + kX86InstIdCmp_ExtendedIndex = 34, + kX86InstIdCmppd_ExtendedIndex = 11, + kX86InstIdCmpps_ExtendedIndex = 11, + kX86InstIdCmpsB_ExtendedIndex = 35, + kX86InstIdCmpsD_ExtendedIndex = 35, + kX86InstIdCmpsQ_ExtendedIndex = 35, + kX86InstIdCmpsW_ExtendedIndex = 36, + kX86InstIdCmpsd_ExtendedIndex = 11, + kX86InstIdCmpss_ExtendedIndex = 11, + kX86InstIdCmpxchg_ExtendedIndex = 37, + kX86InstIdCmpxchg16b_ExtendedIndex = 38, + kX86InstIdCmpxchg8b_ExtendedIndex = 38, + kX86InstIdComisd_ExtendedIndex = 39, + kX86InstIdComiss_ExtendedIndex = 39, + kX86InstIdCpuid_ExtendedIndex = 40, + kX86InstIdCqo_ExtendedIndex = 21, + kX86InstIdCrc32_ExtendedIndex = 41, + kX86InstIdCvtdq2pd_ExtendedIndex = 42, + kX86InstIdCvtdq2ps_ExtendedIndex = 42, + kX86InstIdCvtpd2dq_ExtendedIndex = 42, + kX86InstIdCvtpd2pi_ExtendedIndex = 43, + kX86InstIdCvtpd2ps_ExtendedIndex = 42, + kX86InstIdCvtpi2pd_ExtendedIndex = 44, + kX86InstIdCvtpi2ps_ExtendedIndex = 45, + kX86InstIdCvtps2dq_ExtendedIndex = 42, + kX86InstIdCvtps2pd_ExtendedIndex = 42, + kX86InstIdCvtps2pi_ExtendedIndex = 43, + kX86InstIdCvtsd2si_ExtendedIndex = 46, + kX86InstIdCvtsd2ss_ExtendedIndex = 47, + kX86InstIdCvtsi2sd_ExtendedIndex = 48, + kX86InstIdCvtsi2ss_ExtendedIndex = 49, + kX86InstIdCvtss2sd_ExtendedIndex = 50, + kX86InstIdCvtss2si_ExtendedIndex = 46, + kX86InstIdCvttpd2dq_ExtendedIndex = 42, + kX86InstIdCvttpd2pi_ExtendedIndex = 43, + kX86InstIdCvttps2dq_ExtendedIndex = 42, + kX86InstIdCvttps2pi_ExtendedIndex = 43, + kX86InstIdCvttsd2si_ExtendedIndex = 46, + kX86InstIdCvttss2si_ExtendedIndex = 46, + kX86InstIdCwd_ExtendedIndex = 21, + kX86InstIdCwde_ExtendedIndex = 21, + kX86InstIdDaa_ExtendedIndex = 51, + kX86InstIdDas_ExtendedIndex = 51, + kX86InstIdDec_ExtendedIndex = 52, + kX86InstIdDiv_ExtendedIndex = 53, + kX86InstIdDivpd_ExtendedIndex = 4, + kX86InstIdDivps_ExtendedIndex = 4, + kX86InstIdDivsd_ExtendedIndex = 4, + kX86InstIdDivss_ExtendedIndex = 4, + kX86InstIdDppd_ExtendedIndex = 11, + kX86InstIdDpps_ExtendedIndex = 11, + kX86InstIdEmms_ExtendedIndex = 54, + kX86InstIdEnter_ExtendedIndex = 55, + kX86InstIdExtractps_ExtendedIndex = 56, + kX86InstIdExtrq_ExtendedIndex = 57, + kX86InstIdF2xm1_ExtendedIndex = 58, + kX86InstIdFabs_ExtendedIndex = 58, + kX86InstIdFadd_ExtendedIndex = 59, + kX86InstIdFaddp_ExtendedIndex = 60, + kX86InstIdFbld_ExtendedIndex = 61, + kX86InstIdFbstp_ExtendedIndex = 61, + kX86InstIdFchs_ExtendedIndex = 58, + kX86InstIdFclex_ExtendedIndex = 58, + kX86InstIdFcmovb_ExtendedIndex = 62, + kX86InstIdFcmovbe_ExtendedIndex = 63, + kX86InstIdFcmove_ExtendedIndex = 64, + kX86InstIdFcmovnb_ExtendedIndex = 62, + kX86InstIdFcmovnbe_ExtendedIndex = 63, + kX86InstIdFcmovne_ExtendedIndex = 64, + kX86InstIdFcmovnu_ExtendedIndex = 65, + kX86InstIdFcmovu_ExtendedIndex = 65, + kX86InstIdFcom_ExtendedIndex = 66, + kX86InstIdFcomi_ExtendedIndex = 67, + kX86InstIdFcomip_ExtendedIndex = 67, + kX86InstIdFcomp_ExtendedIndex = 66, + kX86InstIdFcompp_ExtendedIndex = 58, + kX86InstIdFcos_ExtendedIndex = 58, + kX86InstIdFdecstp_ExtendedIndex = 58, + kX86InstIdFdiv_ExtendedIndex = 59, + kX86InstIdFdivp_ExtendedIndex = 60, + kX86InstIdFdivr_ExtendedIndex = 59, + kX86InstIdFdivrp_ExtendedIndex = 60, + kX86InstIdFemms_ExtendedIndex = 68, + kX86InstIdFfree_ExtendedIndex = 69, + kX86InstIdFiadd_ExtendedIndex = 70, + kX86InstIdFicom_ExtendedIndex = 70, + kX86InstIdFicomp_ExtendedIndex = 70, + kX86InstIdFidiv_ExtendedIndex = 70, + kX86InstIdFidivr_ExtendedIndex = 70, + kX86InstIdFild_ExtendedIndex = 71, + kX86InstIdFimul_ExtendedIndex = 70, + kX86InstIdFincstp_ExtendedIndex = 58, + kX86InstIdFinit_ExtendedIndex = 58, + kX86InstIdFist_ExtendedIndex = 70, + kX86InstIdFistp_ExtendedIndex = 72, + kX86InstIdFisttp_ExtendedIndex = 73, + kX86InstIdFisub_ExtendedIndex = 70, + kX86InstIdFisubr_ExtendedIndex = 70, + kX86InstIdFld_ExtendedIndex = 74, + kX86InstIdFld1_ExtendedIndex = 58, + kX86InstIdFldcw_ExtendedIndex = 61, + kX86InstIdFldenv_ExtendedIndex = 61, + kX86InstIdFldl2e_ExtendedIndex = 58, + kX86InstIdFldl2t_ExtendedIndex = 58, + kX86InstIdFldlg2_ExtendedIndex = 58, + kX86InstIdFldln2_ExtendedIndex = 58, + kX86InstIdFldpi_ExtendedIndex = 58, + kX86InstIdFldz_ExtendedIndex = 58, + kX86InstIdFmul_ExtendedIndex = 59, + kX86InstIdFmulp_ExtendedIndex = 60, + kX86InstIdFnclex_ExtendedIndex = 58, + kX86InstIdFninit_ExtendedIndex = 58, + kX86InstIdFnop_ExtendedIndex = 58, + kX86InstIdFnsave_ExtendedIndex = 61, + kX86InstIdFnstcw_ExtendedIndex = 61, + kX86InstIdFnstenv_ExtendedIndex = 61, + kX86InstIdFnstsw_ExtendedIndex = 75, + kX86InstIdFpatan_ExtendedIndex = 58, + kX86InstIdFprem_ExtendedIndex = 58, + kX86InstIdFprem1_ExtendedIndex = 58, + kX86InstIdFptan_ExtendedIndex = 58, + kX86InstIdFrndint_ExtendedIndex = 58, + kX86InstIdFrstor_ExtendedIndex = 61, + kX86InstIdFsave_ExtendedIndex = 61, + kX86InstIdFscale_ExtendedIndex = 58, + kX86InstIdFsin_ExtendedIndex = 58, + kX86InstIdFsincos_ExtendedIndex = 58, + kX86InstIdFsqrt_ExtendedIndex = 58, + kX86InstIdFst_ExtendedIndex = 76, + kX86InstIdFstcw_ExtendedIndex = 61, + kX86InstIdFstenv_ExtendedIndex = 61, + kX86InstIdFstp_ExtendedIndex = 77, + kX86InstIdFstsw_ExtendedIndex = 78, + kX86InstIdFsub_ExtendedIndex = 59, + kX86InstIdFsubp_ExtendedIndex = 60, + kX86InstIdFsubr_ExtendedIndex = 59, + kX86InstIdFsubrp_ExtendedIndex = 60, + kX86InstIdFtst_ExtendedIndex = 58, + kX86InstIdFucom_ExtendedIndex = 60, + kX86InstIdFucomi_ExtendedIndex = 67, + kX86InstIdFucomip_ExtendedIndex = 67, + kX86InstIdFucomp_ExtendedIndex = 60, + kX86InstIdFucompp_ExtendedIndex = 58, + kX86InstIdFwait_ExtendedIndex = 79, + kX86InstIdFxam_ExtendedIndex = 58, + kX86InstIdFxch_ExtendedIndex = 69, + kX86InstIdFxrstor_ExtendedIndex = 61, + kX86InstIdFxrstor64_ExtendedIndex = 61, + kX86InstIdFxsave_ExtendedIndex = 61, + kX86InstIdFxsave64_ExtendedIndex = 61, + kX86InstIdFxtract_ExtendedIndex = 58, + kX86InstIdFyl2x_ExtendedIndex = 58, + kX86InstIdFyl2xp1_ExtendedIndex = 58, + kX86InstIdHaddpd_ExtendedIndex = 4, + kX86InstIdHaddps_ExtendedIndex = 4, + kX86InstIdHsubpd_ExtendedIndex = 4, + kX86InstIdHsubps_ExtendedIndex = 4, + kX86InstIdIdiv_ExtendedIndex = 80, + kX86InstIdImul_ExtendedIndex = 81, + kX86InstIdInc_ExtendedIndex = 82, + kX86InstIdInsertps_ExtendedIndex = 11, + kX86InstIdInsertq_ExtendedIndex = 83, + kX86InstIdInt_ExtendedIndex = 84, + kX86InstIdJa_ExtendedIndex = 85, + kX86InstIdJae_ExtendedIndex = 86, + kX86InstIdJb_ExtendedIndex = 86, + kX86InstIdJbe_ExtendedIndex = 85, + kX86InstIdJc_ExtendedIndex = 86, + kX86InstIdJe_ExtendedIndex = 87, + kX86InstIdJg_ExtendedIndex = 88, + kX86InstIdJge_ExtendedIndex = 89, + kX86InstIdJl_ExtendedIndex = 89, + kX86InstIdJle_ExtendedIndex = 88, + kX86InstIdJna_ExtendedIndex = 85, + kX86InstIdJnae_ExtendedIndex = 86, + kX86InstIdJnb_ExtendedIndex = 86, + kX86InstIdJnbe_ExtendedIndex = 85, + kX86InstIdJnc_ExtendedIndex = 86, + kX86InstIdJne_ExtendedIndex = 87, + kX86InstIdJng_ExtendedIndex = 88, + kX86InstIdJnge_ExtendedIndex = 89, + kX86InstIdJnl_ExtendedIndex = 89, + kX86InstIdJnle_ExtendedIndex = 88, + kX86InstIdJno_ExtendedIndex = 90, + kX86InstIdJnp_ExtendedIndex = 91, + kX86InstIdJns_ExtendedIndex = 92, + kX86InstIdJnz_ExtendedIndex = 87, + kX86InstIdJo_ExtendedIndex = 90, + kX86InstIdJp_ExtendedIndex = 91, + kX86InstIdJpe_ExtendedIndex = 91, + kX86InstIdJpo_ExtendedIndex = 91, + kX86InstIdJs_ExtendedIndex = 92, + kX86InstIdJz_ExtendedIndex = 87, + kX86InstIdJecxz_ExtendedIndex = 93, + kX86InstIdJmp_ExtendedIndex = 94, + kX86InstIdLahf_ExtendedIndex = 95, + kX86InstIdLddqu_ExtendedIndex = 96, + kX86InstIdLdmxcsr_ExtendedIndex = 24, + kX86InstIdLea_ExtendedIndex = 97, + kX86InstIdLeave_ExtendedIndex = 98, + kX86InstIdLfence_ExtendedIndex = 99, + kX86InstIdLodsB_ExtendedIndex = 100, + kX86InstIdLodsD_ExtendedIndex = 101, + kX86InstIdLodsQ_ExtendedIndex = 102, + kX86InstIdLodsW_ExtendedIndex = 103, + kX86InstIdLzcnt_ExtendedIndex = 14, + kX86InstIdMaskmovdqu_ExtendedIndex = 104, + kX86InstIdMaskmovq_ExtendedIndex = 105, + kX86InstIdMaxpd_ExtendedIndex = 4, + kX86InstIdMaxps_ExtendedIndex = 4, + kX86InstIdMaxsd_ExtendedIndex = 4, + kX86InstIdMaxss_ExtendedIndex = 4, + kX86InstIdMfence_ExtendedIndex = 106, + kX86InstIdMinpd_ExtendedIndex = 4, + kX86InstIdMinps_ExtendedIndex = 4, + kX86InstIdMinsd_ExtendedIndex = 4, + kX86InstIdMinss_ExtendedIndex = 4, + kX86InstIdMonitor_ExtendedIndex = 107, + kX86InstIdMov_ExtendedIndex = 108, + kX86InstIdMovPtr_ExtendedIndex = 109, + kX86InstIdMovapd_ExtendedIndex = 110, + kX86InstIdMovaps_ExtendedIndex = 111, + kX86InstIdMovbe_ExtendedIndex = 112, + kX86InstIdMovd_ExtendedIndex = 113, + kX86InstIdMovddup_ExtendedIndex = 114, + kX86InstIdMovdq2q_ExtendedIndex = 115, + kX86InstIdMovdqa_ExtendedIndex = 116, + kX86InstIdMovdqu_ExtendedIndex = 117, + kX86InstIdMovhlps_ExtendedIndex = 118, + kX86InstIdMovhpd_ExtendedIndex = 119, + kX86InstIdMovhps_ExtendedIndex = 120, + kX86InstIdMovlhps_ExtendedIndex = 121, + kX86InstIdMovlpd_ExtendedIndex = 122, + kX86InstIdMovlps_ExtendedIndex = 123, + kX86InstIdMovmskpd_ExtendedIndex = 124, + kX86InstIdMovmskps_ExtendedIndex = 124, + kX86InstIdMovntdq_ExtendedIndex = 125, + kX86InstIdMovntdqa_ExtendedIndex = 126, + kX86InstIdMovnti_ExtendedIndex = 127, + kX86InstIdMovntpd_ExtendedIndex = 128, + kX86InstIdMovntps_ExtendedIndex = 129, + kX86InstIdMovntq_ExtendedIndex = 130, + kX86InstIdMovntsd_ExtendedIndex = 131, + kX86InstIdMovntss_ExtendedIndex = 132, + kX86InstIdMovq_ExtendedIndex = 133, + kX86InstIdMovq2dq_ExtendedIndex = 134, + kX86InstIdMovsB_ExtendedIndex = 135, + kX86InstIdMovsD_ExtendedIndex = 135, + kX86InstIdMovsQ_ExtendedIndex = 135, + kX86InstIdMovsW_ExtendedIndex = 136, + kX86InstIdMovsd_ExtendedIndex = 137, + kX86InstIdMovshdup_ExtendedIndex = 42, + kX86InstIdMovsldup_ExtendedIndex = 42, + kX86InstIdMovss_ExtendedIndex = 138, + kX86InstIdMovsx_ExtendedIndex = 139, + kX86InstIdMovsxd_ExtendedIndex = 140, + kX86InstIdMovupd_ExtendedIndex = 141, + kX86InstIdMovups_ExtendedIndex = 142, + kX86InstIdMovzx_ExtendedIndex = 139, + kX86InstIdMpsadbw_ExtendedIndex = 11, + kX86InstIdMul_ExtendedIndex = 80, + kX86InstIdMulpd_ExtendedIndex = 4, + kX86InstIdMulps_ExtendedIndex = 4, + kX86InstIdMulsd_ExtendedIndex = 4, + kX86InstIdMulss_ExtendedIndex = 4, + kX86InstIdMulx_ExtendedIndex = 143, + kX86InstIdMwait_ExtendedIndex = 107, + kX86InstIdNeg_ExtendedIndex = 144, + kX86InstIdNop_ExtendedIndex = 145, + kX86InstIdNot_ExtendedIndex = 146, + kX86InstIdOr_ExtendedIndex = 3, + kX86InstIdOrpd_ExtendedIndex = 4, + kX86InstIdOrps_ExtendedIndex = 4, + kX86InstIdPabsb_ExtendedIndex = 147, + kX86InstIdPabsd_ExtendedIndex = 147, + kX86InstIdPabsw_ExtendedIndex = 147, + kX86InstIdPackssdw_ExtendedIndex = 147, + kX86InstIdPacksswb_ExtendedIndex = 147, + kX86InstIdPackusdw_ExtendedIndex = 4, + kX86InstIdPackuswb_ExtendedIndex = 147, + kX86InstIdPaddb_ExtendedIndex = 147, + kX86InstIdPaddd_ExtendedIndex = 147, + kX86InstIdPaddq_ExtendedIndex = 147, + kX86InstIdPaddsb_ExtendedIndex = 147, + kX86InstIdPaddsw_ExtendedIndex = 147, + kX86InstIdPaddusb_ExtendedIndex = 147, + kX86InstIdPaddusw_ExtendedIndex = 147, + kX86InstIdPaddw_ExtendedIndex = 147, + kX86InstIdPalignr_ExtendedIndex = 148, + kX86InstIdPand_ExtendedIndex = 147, + kX86InstIdPandn_ExtendedIndex = 147, + kX86InstIdPause_ExtendedIndex = 149, + kX86InstIdPavgb_ExtendedIndex = 147, + kX86InstIdPavgusb_ExtendedIndex = 150, + kX86InstIdPavgw_ExtendedIndex = 147, + kX86InstIdPblendvb_ExtendedIndex = 12, + kX86InstIdPblendw_ExtendedIndex = 11, + kX86InstIdPclmulqdq_ExtendedIndex = 11, + kX86InstIdPcmpeqb_ExtendedIndex = 147, + kX86InstIdPcmpeqd_ExtendedIndex = 147, + kX86InstIdPcmpeqq_ExtendedIndex = 4, + kX86InstIdPcmpeqw_ExtendedIndex = 147, + kX86InstIdPcmpestri_ExtendedIndex = 151, + kX86InstIdPcmpestrm_ExtendedIndex = 151, + kX86InstIdPcmpgtb_ExtendedIndex = 147, + kX86InstIdPcmpgtd_ExtendedIndex = 147, + kX86InstIdPcmpgtq_ExtendedIndex = 4, + kX86InstIdPcmpgtw_ExtendedIndex = 147, + kX86InstIdPcmpistri_ExtendedIndex = 151, + kX86InstIdPcmpistrm_ExtendedIndex = 151, + kX86InstIdPdep_ExtendedIndex = 152, + kX86InstIdPext_ExtendedIndex = 152, + kX86InstIdPextrb_ExtendedIndex = 153, + kX86InstIdPextrd_ExtendedIndex = 154, + kX86InstIdPextrq_ExtendedIndex = 56, + kX86InstIdPextrw_ExtendedIndex = 155, + kX86InstIdPf2id_ExtendedIndex = 156, + kX86InstIdPf2iw_ExtendedIndex = 156, + kX86InstIdPfacc_ExtendedIndex = 150, + kX86InstIdPfadd_ExtendedIndex = 150, + kX86InstIdPfcmpeq_ExtendedIndex = 150, + kX86InstIdPfcmpge_ExtendedIndex = 150, + kX86InstIdPfcmpgt_ExtendedIndex = 150, + kX86InstIdPfmax_ExtendedIndex = 150, + kX86InstIdPfmin_ExtendedIndex = 150, + kX86InstIdPfmul_ExtendedIndex = 150, + kX86InstIdPfnacc_ExtendedIndex = 150, + kX86InstIdPfpnacc_ExtendedIndex = 150, + kX86InstIdPfrcp_ExtendedIndex = 156, + kX86InstIdPfrcpit1_ExtendedIndex = 150, + kX86InstIdPfrcpit2_ExtendedIndex = 150, + kX86InstIdPfrsqit1_ExtendedIndex = 150, + kX86InstIdPfrsqrt_ExtendedIndex = 150, + kX86InstIdPfsub_ExtendedIndex = 150, + kX86InstIdPfsubr_ExtendedIndex = 150, + kX86InstIdPhaddd_ExtendedIndex = 147, + kX86InstIdPhaddsw_ExtendedIndex = 147, + kX86InstIdPhaddw_ExtendedIndex = 147, + kX86InstIdPhminposuw_ExtendedIndex = 4, + kX86InstIdPhsubd_ExtendedIndex = 147, + kX86InstIdPhsubsw_ExtendedIndex = 147, + kX86InstIdPhsubw_ExtendedIndex = 147, + kX86InstIdPi2fd_ExtendedIndex = 156, + kX86InstIdPi2fw_ExtendedIndex = 156, + kX86InstIdPinsrb_ExtendedIndex = 157, + kX86InstIdPinsrd_ExtendedIndex = 157, + kX86InstIdPinsrq_ExtendedIndex = 158, + kX86InstIdPinsrw_ExtendedIndex = 159, + kX86InstIdPmaddubsw_ExtendedIndex = 147, + kX86InstIdPmaddwd_ExtendedIndex = 147, + kX86InstIdPmaxsb_ExtendedIndex = 4, + kX86InstIdPmaxsd_ExtendedIndex = 4, + kX86InstIdPmaxsw_ExtendedIndex = 147, + kX86InstIdPmaxub_ExtendedIndex = 147, + kX86InstIdPmaxud_ExtendedIndex = 4, + kX86InstIdPmaxuw_ExtendedIndex = 4, + kX86InstIdPminsb_ExtendedIndex = 4, + kX86InstIdPminsd_ExtendedIndex = 4, + kX86InstIdPminsw_ExtendedIndex = 147, + kX86InstIdPminub_ExtendedIndex = 147, + kX86InstIdPminud_ExtendedIndex = 4, + kX86InstIdPminuw_ExtendedIndex = 4, + kX86InstIdPmovmskb_ExtendedIndex = 160, + kX86InstIdPmovsxbd_ExtendedIndex = 42, + kX86InstIdPmovsxbq_ExtendedIndex = 42, + kX86InstIdPmovsxbw_ExtendedIndex = 42, + kX86InstIdPmovsxdq_ExtendedIndex = 42, + kX86InstIdPmovsxwd_ExtendedIndex = 42, + kX86InstIdPmovsxwq_ExtendedIndex = 42, + kX86InstIdPmovzxbd_ExtendedIndex = 42, + kX86InstIdPmovzxbq_ExtendedIndex = 42, + kX86InstIdPmovzxbw_ExtendedIndex = 42, + kX86InstIdPmovzxdq_ExtendedIndex = 42, + kX86InstIdPmovzxwd_ExtendedIndex = 42, + kX86InstIdPmovzxwq_ExtendedIndex = 42, + kX86InstIdPmuldq_ExtendedIndex = 4, + kX86InstIdPmulhrsw_ExtendedIndex = 147, + kX86InstIdPmulhrw_ExtendedIndex = 150, + kX86InstIdPmulhuw_ExtendedIndex = 147, + kX86InstIdPmulhw_ExtendedIndex = 147, + kX86InstIdPmulld_ExtendedIndex = 4, + kX86InstIdPmullw_ExtendedIndex = 147, + kX86InstIdPmuludq_ExtendedIndex = 147, + kX86InstIdPop_ExtendedIndex = 161, + kX86InstIdPopa_ExtendedIndex = 98, + kX86InstIdPopcnt_ExtendedIndex = 162, + kX86InstIdPopf_ExtendedIndex = 163, + kX86InstIdPor_ExtendedIndex = 147, + kX86InstIdPrefetch_ExtendedIndex = 164, + kX86InstIdPrefetch3dNow_ExtendedIndex = 24, + kX86InstIdPrefetchw_ExtendedIndex = 165, + kX86InstIdPrefetchwt1_ExtendedIndex = 165, + kX86InstIdPsadbw_ExtendedIndex = 147, + kX86InstIdPshufb_ExtendedIndex = 147, + kX86InstIdPshufd_ExtendedIndex = 166, + kX86InstIdPshufhw_ExtendedIndex = 166, + kX86InstIdPshuflw_ExtendedIndex = 166, + kX86InstIdPshufw_ExtendedIndex = 167, + kX86InstIdPsignb_ExtendedIndex = 147, + kX86InstIdPsignd_ExtendedIndex = 147, + kX86InstIdPsignw_ExtendedIndex = 147, + kX86InstIdPslld_ExtendedIndex = 168, + kX86InstIdPslldq_ExtendedIndex = 169, + kX86InstIdPsllq_ExtendedIndex = 170, + kX86InstIdPsllw_ExtendedIndex = 171, + kX86InstIdPsrad_ExtendedIndex = 172, + kX86InstIdPsraw_ExtendedIndex = 173, + kX86InstIdPsrld_ExtendedIndex = 174, + kX86InstIdPsrldq_ExtendedIndex = 175, + kX86InstIdPsrlq_ExtendedIndex = 176, + kX86InstIdPsrlw_ExtendedIndex = 177, + kX86InstIdPsubb_ExtendedIndex = 147, + kX86InstIdPsubd_ExtendedIndex = 147, + kX86InstIdPsubq_ExtendedIndex = 147, + kX86InstIdPsubsb_ExtendedIndex = 147, + kX86InstIdPsubsw_ExtendedIndex = 147, + kX86InstIdPsubusb_ExtendedIndex = 147, + kX86InstIdPsubusw_ExtendedIndex = 147, + kX86InstIdPsubw_ExtendedIndex = 147, + kX86InstIdPswapd_ExtendedIndex = 156, + kX86InstIdPtest_ExtendedIndex = 39, + kX86InstIdPunpckhbw_ExtendedIndex = 147, + kX86InstIdPunpckhdq_ExtendedIndex = 147, + kX86InstIdPunpckhqdq_ExtendedIndex = 4, + kX86InstIdPunpckhwd_ExtendedIndex = 147, + kX86InstIdPunpcklbw_ExtendedIndex = 147, + kX86InstIdPunpckldq_ExtendedIndex = 147, + kX86InstIdPunpcklqdq_ExtendedIndex = 4, + kX86InstIdPunpcklwd_ExtendedIndex = 147, + kX86InstIdPush_ExtendedIndex = 178, + kX86InstIdPusha_ExtendedIndex = 98, + kX86InstIdPushf_ExtendedIndex = 179, + kX86InstIdPxor_ExtendedIndex = 147, + kX86InstIdRcl_ExtendedIndex = 180, + kX86InstIdRcpps_ExtendedIndex = 42, + kX86InstIdRcpss_ExtendedIndex = 47, + kX86InstIdRcr_ExtendedIndex = 180, + kX86InstIdRdfsbase_ExtendedIndex = 181, + kX86InstIdRdgsbase_ExtendedIndex = 181, + kX86InstIdRdrand_ExtendedIndex = 182, + kX86InstIdRdseed_ExtendedIndex = 182, + kX86InstIdRdtsc_ExtendedIndex = 183, + kX86InstIdRdtscp_ExtendedIndex = 183, + kX86InstIdRepLodsB_ExtendedIndex = 184, + kX86InstIdRepLodsD_ExtendedIndex = 184, + kX86InstIdRepLodsQ_ExtendedIndex = 184, + kX86InstIdRepLodsW_ExtendedIndex = 184, + kX86InstIdRepMovsB_ExtendedIndex = 185, + kX86InstIdRepMovsD_ExtendedIndex = 185, + kX86InstIdRepMovsQ_ExtendedIndex = 185, + kX86InstIdRepMovsW_ExtendedIndex = 185, + kX86InstIdRepStosB_ExtendedIndex = 184, + kX86InstIdRepStosD_ExtendedIndex = 184, + kX86InstIdRepStosQ_ExtendedIndex = 184, + kX86InstIdRepStosW_ExtendedIndex = 184, + kX86InstIdRepeCmpsB_ExtendedIndex = 186, + kX86InstIdRepeCmpsD_ExtendedIndex = 186, + kX86InstIdRepeCmpsQ_ExtendedIndex = 186, + kX86InstIdRepeCmpsW_ExtendedIndex = 186, + kX86InstIdRepeScasB_ExtendedIndex = 186, + kX86InstIdRepeScasD_ExtendedIndex = 186, + kX86InstIdRepeScasQ_ExtendedIndex = 186, + kX86InstIdRepeScasW_ExtendedIndex = 186, + kX86InstIdRepneCmpsB_ExtendedIndex = 186, + kX86InstIdRepneCmpsD_ExtendedIndex = 186, + kX86InstIdRepneCmpsQ_ExtendedIndex = 186, + kX86InstIdRepneCmpsW_ExtendedIndex = 186, + kX86InstIdRepneScasB_ExtendedIndex = 186, + kX86InstIdRepneScasD_ExtendedIndex = 186, + kX86InstIdRepneScasQ_ExtendedIndex = 186, + kX86InstIdRepneScasW_ExtendedIndex = 186, + kX86InstIdRet_ExtendedIndex = 187, + kX86InstIdRol_ExtendedIndex = 188, + kX86InstIdRor_ExtendedIndex = 188, + kX86InstIdRorx_ExtendedIndex = 189, + kX86InstIdRoundpd_ExtendedIndex = 166, + kX86InstIdRoundps_ExtendedIndex = 166, + kX86InstIdRoundsd_ExtendedIndex = 190, + kX86InstIdRoundss_ExtendedIndex = 191, + kX86InstIdRsqrtps_ExtendedIndex = 42, + kX86InstIdRsqrtss_ExtendedIndex = 47, + kX86InstIdSahf_ExtendedIndex = 192, + kX86InstIdSal_ExtendedIndex = 193, + kX86InstIdSar_ExtendedIndex = 193, + kX86InstIdSarx_ExtendedIndex = 194, + kX86InstIdSbb_ExtendedIndex = 1, + kX86InstIdScasB_ExtendedIndex = 35, + kX86InstIdScasD_ExtendedIndex = 35, + kX86InstIdScasQ_ExtendedIndex = 35, + kX86InstIdScasW_ExtendedIndex = 36, + kX86InstIdSeta_ExtendedIndex = 195, + kX86InstIdSetae_ExtendedIndex = 196, + kX86InstIdSetb_ExtendedIndex = 196, + kX86InstIdSetbe_ExtendedIndex = 195, + kX86InstIdSetc_ExtendedIndex = 196, + kX86InstIdSete_ExtendedIndex = 197, + kX86InstIdSetg_ExtendedIndex = 198, + kX86InstIdSetge_ExtendedIndex = 199, + kX86InstIdSetl_ExtendedIndex = 199, + kX86InstIdSetle_ExtendedIndex = 198, + kX86InstIdSetna_ExtendedIndex = 195, + kX86InstIdSetnae_ExtendedIndex = 196, + kX86InstIdSetnb_ExtendedIndex = 196, + kX86InstIdSetnbe_ExtendedIndex = 195, + kX86InstIdSetnc_ExtendedIndex = 196, + kX86InstIdSetne_ExtendedIndex = 197, + kX86InstIdSetng_ExtendedIndex = 198, + kX86InstIdSetnge_ExtendedIndex = 199, + kX86InstIdSetnl_ExtendedIndex = 199, + kX86InstIdSetnle_ExtendedIndex = 198, + kX86InstIdSetno_ExtendedIndex = 200, + kX86InstIdSetnp_ExtendedIndex = 201, + kX86InstIdSetns_ExtendedIndex = 202, + kX86InstIdSetnz_ExtendedIndex = 197, + kX86InstIdSeto_ExtendedIndex = 200, + kX86InstIdSetp_ExtendedIndex = 201, + kX86InstIdSetpe_ExtendedIndex = 201, + kX86InstIdSetpo_ExtendedIndex = 201, + kX86InstIdSets_ExtendedIndex = 202, + kX86InstIdSetz_ExtendedIndex = 197, + kX86InstIdSfence_ExtendedIndex = 99, + kX86InstIdSha1msg1_ExtendedIndex = 4, + kX86InstIdSha1msg2_ExtendedIndex = 4, + kX86InstIdSha1nexte_ExtendedIndex = 4, + kX86InstIdSha1rnds4_ExtendedIndex = 11, + kX86InstIdSha256msg1_ExtendedIndex = 4, + kX86InstIdSha256msg2_ExtendedIndex = 4, + kX86InstIdSha256rnds2_ExtendedIndex = 4, + kX86InstIdShl_ExtendedIndex = 193, + kX86InstIdShld_ExtendedIndex = 203, + kX86InstIdShlx_ExtendedIndex = 194, + kX86InstIdShr_ExtendedIndex = 193, + kX86InstIdShrd_ExtendedIndex = 204, + kX86InstIdShrx_ExtendedIndex = 194, + kX86InstIdShufpd_ExtendedIndex = 11, + kX86InstIdShufps_ExtendedIndex = 11, + kX86InstIdSqrtpd_ExtendedIndex = 42, + kX86InstIdSqrtps_ExtendedIndex = 42, + kX86InstIdSqrtsd_ExtendedIndex = 50, + kX86InstIdSqrtss_ExtendedIndex = 47, + kX86InstIdStc_ExtendedIndex = 205, + kX86InstIdStd_ExtendedIndex = 206, + kX86InstIdStmxcsr_ExtendedIndex = 207, + kX86InstIdStosB_ExtendedIndex = 208, + kX86InstIdStosD_ExtendedIndex = 208, + kX86InstIdStosQ_ExtendedIndex = 208, + kX86InstIdStosW_ExtendedIndex = 209, + kX86InstIdSub_ExtendedIndex = 3, + kX86InstIdSubpd_ExtendedIndex = 4, + kX86InstIdSubps_ExtendedIndex = 4, + kX86InstIdSubsd_ExtendedIndex = 4, + kX86InstIdSubss_ExtendedIndex = 4, + kX86InstIdT1mskc_ExtendedIndex = 10, + kX86InstIdTest_ExtendedIndex = 210, + kX86InstIdTzcnt_ExtendedIndex = 162, + kX86InstIdTzmsk_ExtendedIndex = 10, + kX86InstIdUcomisd_ExtendedIndex = 39, + kX86InstIdUcomiss_ExtendedIndex = 39, + kX86InstIdUd2_ExtendedIndex = 145, + kX86InstIdUnpckhpd_ExtendedIndex = 4, + kX86InstIdUnpckhps_ExtendedIndex = 4, + kX86InstIdUnpcklpd_ExtendedIndex = 4, + kX86InstIdUnpcklps_ExtendedIndex = 4, + kX86InstIdVaddpd_ExtendedIndex = 211, + kX86InstIdVaddps_ExtendedIndex = 211, + kX86InstIdVaddsd_ExtendedIndex = 212, + kX86InstIdVaddss_ExtendedIndex = 212, + kX86InstIdVaddsubpd_ExtendedIndex = 211, + kX86InstIdVaddsubps_ExtendedIndex = 211, + kX86InstIdVaesdec_ExtendedIndex = 212, + kX86InstIdVaesdeclast_ExtendedIndex = 212, + kX86InstIdVaesenc_ExtendedIndex = 212, + kX86InstIdVaesenclast_ExtendedIndex = 212, + kX86InstIdVaesimc_ExtendedIndex = 213, + kX86InstIdVaeskeygenassist_ExtendedIndex = 214, + kX86InstIdVandnpd_ExtendedIndex = 211, + kX86InstIdVandnps_ExtendedIndex = 211, + kX86InstIdVandpd_ExtendedIndex = 211, + kX86InstIdVandps_ExtendedIndex = 211, + kX86InstIdVblendpd_ExtendedIndex = 215, + kX86InstIdVblendps_ExtendedIndex = 215, + kX86InstIdVblendvpd_ExtendedIndex = 216, + kX86InstIdVblendvps_ExtendedIndex = 216, + kX86InstIdVbroadcastf128_ExtendedIndex = 217, + kX86InstIdVbroadcasti128_ExtendedIndex = 217, + kX86InstIdVbroadcastsd_ExtendedIndex = 218, + kX86InstIdVbroadcastss_ExtendedIndex = 219, + kX86InstIdVcmppd_ExtendedIndex = 215, + kX86InstIdVcmpps_ExtendedIndex = 215, + kX86InstIdVcmpsd_ExtendedIndex = 220, + kX86InstIdVcmpss_ExtendedIndex = 220, + kX86InstIdVcomisd_ExtendedIndex = 221, + kX86InstIdVcomiss_ExtendedIndex = 221, + kX86InstIdVcvtdq2pd_ExtendedIndex = 219, + kX86InstIdVcvtdq2ps_ExtendedIndex = 222, + kX86InstIdVcvtpd2dq_ExtendedIndex = 223, + kX86InstIdVcvtpd2ps_ExtendedIndex = 223, + kX86InstIdVcvtph2ps_ExtendedIndex = 219, + kX86InstIdVcvtps2dq_ExtendedIndex = 222, + kX86InstIdVcvtps2pd_ExtendedIndex = 219, + kX86InstIdVcvtps2ph_ExtendedIndex = 224, + kX86InstIdVcvtsd2si_ExtendedIndex = 225, + kX86InstIdVcvtsd2ss_ExtendedIndex = 212, + kX86InstIdVcvtsi2sd_ExtendedIndex = 226, + kX86InstIdVcvtsi2ss_ExtendedIndex = 226, + kX86InstIdVcvtss2sd_ExtendedIndex = 212, + kX86InstIdVcvtss2si_ExtendedIndex = 225, + kX86InstIdVcvttpd2dq_ExtendedIndex = 227, + kX86InstIdVcvttps2dq_ExtendedIndex = 222, + kX86InstIdVcvttsd2si_ExtendedIndex = 225, + kX86InstIdVcvttss2si_ExtendedIndex = 225, + kX86InstIdVdivpd_ExtendedIndex = 211, + kX86InstIdVdivps_ExtendedIndex = 211, + kX86InstIdVdivsd_ExtendedIndex = 212, + kX86InstIdVdivss_ExtendedIndex = 212, + kX86InstIdVdppd_ExtendedIndex = 220, + kX86InstIdVdpps_ExtendedIndex = 215, + kX86InstIdVextractf128_ExtendedIndex = 228, + kX86InstIdVextracti128_ExtendedIndex = 228, + kX86InstIdVextractps_ExtendedIndex = 229, + kX86InstIdVfmadd132pd_ExtendedIndex = 230, + kX86InstIdVfmadd132ps_ExtendedIndex = 230, + kX86InstIdVfmadd132sd_ExtendedIndex = 231, + kX86InstIdVfmadd132ss_ExtendedIndex = 231, + kX86InstIdVfmadd213pd_ExtendedIndex = 230, + kX86InstIdVfmadd213ps_ExtendedIndex = 230, + kX86InstIdVfmadd213sd_ExtendedIndex = 231, + kX86InstIdVfmadd213ss_ExtendedIndex = 231, + kX86InstIdVfmadd231pd_ExtendedIndex = 230, + kX86InstIdVfmadd231ps_ExtendedIndex = 230, + kX86InstIdVfmadd231sd_ExtendedIndex = 231, + kX86InstIdVfmadd231ss_ExtendedIndex = 231, + kX86InstIdVfmaddpd_ExtendedIndex = 232, + kX86InstIdVfmaddps_ExtendedIndex = 232, + kX86InstIdVfmaddsd_ExtendedIndex = 233, + kX86InstIdVfmaddss_ExtendedIndex = 233, + kX86InstIdVfmaddsub132pd_ExtendedIndex = 230, + kX86InstIdVfmaddsub132ps_ExtendedIndex = 230, + kX86InstIdVfmaddsub213pd_ExtendedIndex = 230, + kX86InstIdVfmaddsub213ps_ExtendedIndex = 230, + kX86InstIdVfmaddsub231pd_ExtendedIndex = 230, + kX86InstIdVfmaddsub231ps_ExtendedIndex = 230, + kX86InstIdVfmaddsubpd_ExtendedIndex = 232, + kX86InstIdVfmaddsubps_ExtendedIndex = 232, + kX86InstIdVfmsub132pd_ExtendedIndex = 230, + kX86InstIdVfmsub132ps_ExtendedIndex = 230, + kX86InstIdVfmsub132sd_ExtendedIndex = 231, + kX86InstIdVfmsub132ss_ExtendedIndex = 231, + kX86InstIdVfmsub213pd_ExtendedIndex = 230, + kX86InstIdVfmsub213ps_ExtendedIndex = 230, + kX86InstIdVfmsub213sd_ExtendedIndex = 231, + kX86InstIdVfmsub213ss_ExtendedIndex = 231, + kX86InstIdVfmsub231pd_ExtendedIndex = 230, + kX86InstIdVfmsub231ps_ExtendedIndex = 230, + kX86InstIdVfmsub231sd_ExtendedIndex = 231, + kX86InstIdVfmsub231ss_ExtendedIndex = 231, + kX86InstIdVfmsubadd132pd_ExtendedIndex = 230, + kX86InstIdVfmsubadd132ps_ExtendedIndex = 230, + kX86InstIdVfmsubadd213pd_ExtendedIndex = 230, + kX86InstIdVfmsubadd213ps_ExtendedIndex = 230, + kX86InstIdVfmsubadd231pd_ExtendedIndex = 230, + kX86InstIdVfmsubadd231ps_ExtendedIndex = 230, + kX86InstIdVfmsubaddpd_ExtendedIndex = 232, + kX86InstIdVfmsubaddps_ExtendedIndex = 232, + kX86InstIdVfmsubpd_ExtendedIndex = 232, + kX86InstIdVfmsubps_ExtendedIndex = 232, + kX86InstIdVfmsubsd_ExtendedIndex = 233, + kX86InstIdVfmsubss_ExtendedIndex = 233, + kX86InstIdVfnmadd132pd_ExtendedIndex = 230, + kX86InstIdVfnmadd132ps_ExtendedIndex = 230, + kX86InstIdVfnmadd132sd_ExtendedIndex = 231, + kX86InstIdVfnmadd132ss_ExtendedIndex = 231, + kX86InstIdVfnmadd213pd_ExtendedIndex = 230, + kX86InstIdVfnmadd213ps_ExtendedIndex = 230, + kX86InstIdVfnmadd213sd_ExtendedIndex = 231, + kX86InstIdVfnmadd213ss_ExtendedIndex = 231, + kX86InstIdVfnmadd231pd_ExtendedIndex = 230, + kX86InstIdVfnmadd231ps_ExtendedIndex = 230, + kX86InstIdVfnmadd231sd_ExtendedIndex = 231, + kX86InstIdVfnmadd231ss_ExtendedIndex = 231, + kX86InstIdVfnmaddpd_ExtendedIndex = 232, + kX86InstIdVfnmaddps_ExtendedIndex = 232, + kX86InstIdVfnmaddsd_ExtendedIndex = 233, + kX86InstIdVfnmaddss_ExtendedIndex = 233, + kX86InstIdVfnmsub132pd_ExtendedIndex = 230, + kX86InstIdVfnmsub132ps_ExtendedIndex = 230, + kX86InstIdVfnmsub132sd_ExtendedIndex = 231, + kX86InstIdVfnmsub132ss_ExtendedIndex = 231, + kX86InstIdVfnmsub213pd_ExtendedIndex = 230, + kX86InstIdVfnmsub213ps_ExtendedIndex = 230, + kX86InstIdVfnmsub213sd_ExtendedIndex = 231, + kX86InstIdVfnmsub213ss_ExtendedIndex = 231, + kX86InstIdVfnmsub231pd_ExtendedIndex = 230, + kX86InstIdVfnmsub231ps_ExtendedIndex = 230, + kX86InstIdVfnmsub231sd_ExtendedIndex = 231, + kX86InstIdVfnmsub231ss_ExtendedIndex = 231, + kX86InstIdVfnmsubpd_ExtendedIndex = 232, + kX86InstIdVfnmsubps_ExtendedIndex = 232, + kX86InstIdVfnmsubsd_ExtendedIndex = 233, + kX86InstIdVfnmsubss_ExtendedIndex = 233, + kX86InstIdVfrczpd_ExtendedIndex = 234, + kX86InstIdVfrczps_ExtendedIndex = 234, + kX86InstIdVfrczsd_ExtendedIndex = 235, + kX86InstIdVfrczss_ExtendedIndex = 235, + kX86InstIdVgatherdpd_ExtendedIndex = 236, + kX86InstIdVgatherdps_ExtendedIndex = 236, + kX86InstIdVgatherqpd_ExtendedIndex = 236, + kX86InstIdVgatherqps_ExtendedIndex = 237, + kX86InstIdVhaddpd_ExtendedIndex = 211, + kX86InstIdVhaddps_ExtendedIndex = 211, + kX86InstIdVhsubpd_ExtendedIndex = 211, + kX86InstIdVhsubps_ExtendedIndex = 211, + kX86InstIdVinsertf128_ExtendedIndex = 238, + kX86InstIdVinserti128_ExtendedIndex = 238, + kX86InstIdVinsertps_ExtendedIndex = 220, + kX86InstIdVlddqu_ExtendedIndex = 239, + kX86InstIdVldmxcsr_ExtendedIndex = 240, + kX86InstIdVmaskmovdqu_ExtendedIndex = 241, + kX86InstIdVmaskmovpd_ExtendedIndex = 242, + kX86InstIdVmaskmovps_ExtendedIndex = 243, + kX86InstIdVmaxpd_ExtendedIndex = 211, + kX86InstIdVmaxps_ExtendedIndex = 211, + kX86InstIdVmaxsd_ExtendedIndex = 211, + kX86InstIdVmaxss_ExtendedIndex = 211, + kX86InstIdVminpd_ExtendedIndex = 211, + kX86InstIdVminps_ExtendedIndex = 211, + kX86InstIdVminsd_ExtendedIndex = 211, + kX86InstIdVminss_ExtendedIndex = 211, + kX86InstIdVmovapd_ExtendedIndex = 244, + kX86InstIdVmovaps_ExtendedIndex = 245, + kX86InstIdVmovd_ExtendedIndex = 246, + kX86InstIdVmovddup_ExtendedIndex = 222, + kX86InstIdVmovdqa_ExtendedIndex = 247, + kX86InstIdVmovdqu_ExtendedIndex = 248, + kX86InstIdVmovhlps_ExtendedIndex = 249, + kX86InstIdVmovhpd_ExtendedIndex = 250, + kX86InstIdVmovhps_ExtendedIndex = 251, + kX86InstIdVmovlhps_ExtendedIndex = 249, + kX86InstIdVmovlpd_ExtendedIndex = 252, + kX86InstIdVmovlps_ExtendedIndex = 253, + kX86InstIdVmovmskpd_ExtendedIndex = 254, + kX86InstIdVmovmskps_ExtendedIndex = 254, + kX86InstIdVmovntdq_ExtendedIndex = 255, + kX86InstIdVmovntdqa_ExtendedIndex = 239, + kX86InstIdVmovntpd_ExtendedIndex = 255, + kX86InstIdVmovntps_ExtendedIndex = 255, + kX86InstIdVmovq_ExtendedIndex = 246, + kX86InstIdVmovsd_ExtendedIndex = 256, + kX86InstIdVmovshdup_ExtendedIndex = 222, + kX86InstIdVmovsldup_ExtendedIndex = 222, + kX86InstIdVmovss_ExtendedIndex = 257, + kX86InstIdVmovupd_ExtendedIndex = 258, + kX86InstIdVmovups_ExtendedIndex = 259, + kX86InstIdVmpsadbw_ExtendedIndex = 215, + kX86InstIdVmulpd_ExtendedIndex = 211, + kX86InstIdVmulps_ExtendedIndex = 211, + kX86InstIdVmulsd_ExtendedIndex = 211, + kX86InstIdVmulss_ExtendedIndex = 211, + kX86InstIdVorpd_ExtendedIndex = 211, + kX86InstIdVorps_ExtendedIndex = 211, + kX86InstIdVpabsb_ExtendedIndex = 222, + kX86InstIdVpabsd_ExtendedIndex = 222, + kX86InstIdVpabsw_ExtendedIndex = 222, + kX86InstIdVpackssdw_ExtendedIndex = 211, + kX86InstIdVpacksswb_ExtendedIndex = 211, + kX86InstIdVpackusdw_ExtendedIndex = 211, + kX86InstIdVpackuswb_ExtendedIndex = 211, + kX86InstIdVpaddb_ExtendedIndex = 211, + kX86InstIdVpaddd_ExtendedIndex = 211, + kX86InstIdVpaddq_ExtendedIndex = 211, + kX86InstIdVpaddsb_ExtendedIndex = 211, + kX86InstIdVpaddsw_ExtendedIndex = 211, + kX86InstIdVpaddusb_ExtendedIndex = 211, + kX86InstIdVpaddusw_ExtendedIndex = 211, + kX86InstIdVpaddw_ExtendedIndex = 211, + kX86InstIdVpalignr_ExtendedIndex = 215, + kX86InstIdVpand_ExtendedIndex = 211, + kX86InstIdVpandn_ExtendedIndex = 211, + kX86InstIdVpavgb_ExtendedIndex = 211, + kX86InstIdVpavgw_ExtendedIndex = 211, + kX86InstIdVpblendd_ExtendedIndex = 215, + kX86InstIdVpblendvb_ExtendedIndex = 260, + kX86InstIdVpblendw_ExtendedIndex = 215, + kX86InstIdVpbroadcastb_ExtendedIndex = 219, + kX86InstIdVpbroadcastd_ExtendedIndex = 219, + kX86InstIdVpbroadcastq_ExtendedIndex = 219, + kX86InstIdVpbroadcastw_ExtendedIndex = 219, + kX86InstIdVpclmulqdq_ExtendedIndex = 220, + kX86InstIdVpcmov_ExtendedIndex = 261, + kX86InstIdVpcmpeqb_ExtendedIndex = 211, + kX86InstIdVpcmpeqd_ExtendedIndex = 211, + kX86InstIdVpcmpeqq_ExtendedIndex = 211, + kX86InstIdVpcmpeqw_ExtendedIndex = 211, + kX86InstIdVpcmpestri_ExtendedIndex = 262, + kX86InstIdVpcmpestrm_ExtendedIndex = 262, + kX86InstIdVpcmpgtb_ExtendedIndex = 211, + kX86InstIdVpcmpgtd_ExtendedIndex = 211, + kX86InstIdVpcmpgtq_ExtendedIndex = 211, + kX86InstIdVpcmpgtw_ExtendedIndex = 211, + kX86InstIdVpcmpistri_ExtendedIndex = 262, + kX86InstIdVpcmpistrm_ExtendedIndex = 262, + kX86InstIdVpcomb_ExtendedIndex = 263, + kX86InstIdVpcomd_ExtendedIndex = 263, + kX86InstIdVpcomq_ExtendedIndex = 263, + kX86InstIdVpcomub_ExtendedIndex = 263, + kX86InstIdVpcomud_ExtendedIndex = 263, + kX86InstIdVpcomuq_ExtendedIndex = 263, + kX86InstIdVpcomuw_ExtendedIndex = 263, + kX86InstIdVpcomw_ExtendedIndex = 263, + kX86InstIdVperm2f128_ExtendedIndex = 264, + kX86InstIdVperm2i128_ExtendedIndex = 264, + kX86InstIdVpermd_ExtendedIndex = 265, + kX86InstIdVpermil2pd_ExtendedIndex = 266, + kX86InstIdVpermil2ps_ExtendedIndex = 266, + kX86InstIdVpermilpd_ExtendedIndex = 267, + kX86InstIdVpermilps_ExtendedIndex = 268, + kX86InstIdVpermpd_ExtendedIndex = 269, + kX86InstIdVpermps_ExtendedIndex = 265, + kX86InstIdVpermq_ExtendedIndex = 269, + kX86InstIdVpextrb_ExtendedIndex = 270, + kX86InstIdVpextrd_ExtendedIndex = 229, + kX86InstIdVpextrq_ExtendedIndex = 271, + kX86InstIdVpextrw_ExtendedIndex = 272, + kX86InstIdVpgatherdd_ExtendedIndex = 236, + kX86InstIdVpgatherdq_ExtendedIndex = 236, + kX86InstIdVpgatherqd_ExtendedIndex = 237, + kX86InstIdVpgatherqq_ExtendedIndex = 236, + kX86InstIdVphaddbd_ExtendedIndex = 235, + kX86InstIdVphaddbq_ExtendedIndex = 235, + kX86InstIdVphaddbw_ExtendedIndex = 235, + kX86InstIdVphaddd_ExtendedIndex = 211, + kX86InstIdVphadddq_ExtendedIndex = 235, + kX86InstIdVphaddsw_ExtendedIndex = 211, + kX86InstIdVphaddubd_ExtendedIndex = 235, + kX86InstIdVphaddubq_ExtendedIndex = 235, + kX86InstIdVphaddubw_ExtendedIndex = 235, + kX86InstIdVphaddudq_ExtendedIndex = 235, + kX86InstIdVphadduwd_ExtendedIndex = 235, + kX86InstIdVphadduwq_ExtendedIndex = 235, + kX86InstIdVphaddw_ExtendedIndex = 211, + kX86InstIdVphaddwd_ExtendedIndex = 235, + kX86InstIdVphaddwq_ExtendedIndex = 235, + kX86InstIdVphminposuw_ExtendedIndex = 213, + kX86InstIdVphsubbw_ExtendedIndex = 235, + kX86InstIdVphsubd_ExtendedIndex = 211, + kX86InstIdVphsubdq_ExtendedIndex = 235, + kX86InstIdVphsubsw_ExtendedIndex = 211, + kX86InstIdVphsubw_ExtendedIndex = 211, + kX86InstIdVphsubwd_ExtendedIndex = 235, + kX86InstIdVpinsrb_ExtendedIndex = 273, + kX86InstIdVpinsrd_ExtendedIndex = 274, + kX86InstIdVpinsrq_ExtendedIndex = 275, + kX86InstIdVpinsrw_ExtendedIndex = 276, + kX86InstIdVpmacsdd_ExtendedIndex = 277, + kX86InstIdVpmacsdqh_ExtendedIndex = 277, + kX86InstIdVpmacsdql_ExtendedIndex = 277, + kX86InstIdVpmacssdd_ExtendedIndex = 277, + kX86InstIdVpmacssdqh_ExtendedIndex = 277, + kX86InstIdVpmacssdql_ExtendedIndex = 277, + kX86InstIdVpmacsswd_ExtendedIndex = 277, + kX86InstIdVpmacssww_ExtendedIndex = 277, + kX86InstIdVpmacswd_ExtendedIndex = 277, + kX86InstIdVpmacsww_ExtendedIndex = 277, + kX86InstIdVpmadcsswd_ExtendedIndex = 277, + kX86InstIdVpmadcswd_ExtendedIndex = 277, + kX86InstIdVpmaddubsw_ExtendedIndex = 211, + kX86InstIdVpmaddwd_ExtendedIndex = 211, + kX86InstIdVpmaskmovd_ExtendedIndex = 278, + kX86InstIdVpmaskmovq_ExtendedIndex = 278, + kX86InstIdVpmaxsb_ExtendedIndex = 211, + kX86InstIdVpmaxsd_ExtendedIndex = 211, + kX86InstIdVpmaxsw_ExtendedIndex = 211, + kX86InstIdVpmaxub_ExtendedIndex = 211, + kX86InstIdVpmaxud_ExtendedIndex = 211, + kX86InstIdVpmaxuw_ExtendedIndex = 211, + kX86InstIdVpminsb_ExtendedIndex = 211, + kX86InstIdVpminsd_ExtendedIndex = 211, + kX86InstIdVpminsw_ExtendedIndex = 211, + kX86InstIdVpminub_ExtendedIndex = 211, + kX86InstIdVpminud_ExtendedIndex = 211, + kX86InstIdVpminuw_ExtendedIndex = 211, + kX86InstIdVpmovmskb_ExtendedIndex = 254, + kX86InstIdVpmovsxbd_ExtendedIndex = 222, + kX86InstIdVpmovsxbq_ExtendedIndex = 222, + kX86InstIdVpmovsxbw_ExtendedIndex = 222, + kX86InstIdVpmovsxdq_ExtendedIndex = 222, + kX86InstIdVpmovsxwd_ExtendedIndex = 222, + kX86InstIdVpmovsxwq_ExtendedIndex = 222, + kX86InstIdVpmovzxbd_ExtendedIndex = 222, + kX86InstIdVpmovzxbq_ExtendedIndex = 222, + kX86InstIdVpmovzxbw_ExtendedIndex = 222, + kX86InstIdVpmovzxdq_ExtendedIndex = 222, + kX86InstIdVpmovzxwd_ExtendedIndex = 222, + kX86InstIdVpmovzxwq_ExtendedIndex = 222, + kX86InstIdVpmuldq_ExtendedIndex = 211, + kX86InstIdVpmulhrsw_ExtendedIndex = 211, + kX86InstIdVpmulhuw_ExtendedIndex = 211, + kX86InstIdVpmulhw_ExtendedIndex = 211, + kX86InstIdVpmulld_ExtendedIndex = 211, + kX86InstIdVpmullw_ExtendedIndex = 211, + kX86InstIdVpmuludq_ExtendedIndex = 211, + kX86InstIdVpor_ExtendedIndex = 211, + kX86InstIdVpperm_ExtendedIndex = 279, + kX86InstIdVprotb_ExtendedIndex = 280, + kX86InstIdVprotd_ExtendedIndex = 281, + kX86InstIdVprotq_ExtendedIndex = 282, + kX86InstIdVprotw_ExtendedIndex = 283, + kX86InstIdVpsadbw_ExtendedIndex = 211, + kX86InstIdVpshab_ExtendedIndex = 284, + kX86InstIdVpshad_ExtendedIndex = 284, + kX86InstIdVpshaq_ExtendedIndex = 284, + kX86InstIdVpshaw_ExtendedIndex = 284, + kX86InstIdVpshlb_ExtendedIndex = 284, + kX86InstIdVpshld_ExtendedIndex = 284, + kX86InstIdVpshlq_ExtendedIndex = 284, + kX86InstIdVpshlw_ExtendedIndex = 284, + kX86InstIdVpshufb_ExtendedIndex = 211, + kX86InstIdVpshufd_ExtendedIndex = 285, + kX86InstIdVpshufhw_ExtendedIndex = 285, + kX86InstIdVpshuflw_ExtendedIndex = 285, + kX86InstIdVpsignb_ExtendedIndex = 211, + kX86InstIdVpsignd_ExtendedIndex = 211, + kX86InstIdVpsignw_ExtendedIndex = 211, + kX86InstIdVpslld_ExtendedIndex = 286, + kX86InstIdVpslldq_ExtendedIndex = 287, + kX86InstIdVpsllq_ExtendedIndex = 288, + kX86InstIdVpsllvd_ExtendedIndex = 211, + kX86InstIdVpsllvq_ExtendedIndex = 211, + kX86InstIdVpsllw_ExtendedIndex = 289, + kX86InstIdVpsrad_ExtendedIndex = 290, + kX86InstIdVpsravd_ExtendedIndex = 211, + kX86InstIdVpsraw_ExtendedIndex = 291, + kX86InstIdVpsrld_ExtendedIndex = 292, + kX86InstIdVpsrldq_ExtendedIndex = 287, + kX86InstIdVpsrlq_ExtendedIndex = 293, + kX86InstIdVpsrlvd_ExtendedIndex = 211, + kX86InstIdVpsrlvq_ExtendedIndex = 211, + kX86InstIdVpsrlw_ExtendedIndex = 294, + kX86InstIdVpsubb_ExtendedIndex = 211, + kX86InstIdVpsubd_ExtendedIndex = 211, + kX86InstIdVpsubq_ExtendedIndex = 211, + kX86InstIdVpsubsb_ExtendedIndex = 211, + kX86InstIdVpsubsw_ExtendedIndex = 211, + kX86InstIdVpsubusb_ExtendedIndex = 211, + kX86InstIdVpsubusw_ExtendedIndex = 211, + kX86InstIdVpsubw_ExtendedIndex = 211, + kX86InstIdVptest_ExtendedIndex = 295, + kX86InstIdVpunpckhbw_ExtendedIndex = 211, + kX86InstIdVpunpckhdq_ExtendedIndex = 211, + kX86InstIdVpunpckhqdq_ExtendedIndex = 211, + kX86InstIdVpunpckhwd_ExtendedIndex = 211, + kX86InstIdVpunpcklbw_ExtendedIndex = 211, + kX86InstIdVpunpckldq_ExtendedIndex = 211, + kX86InstIdVpunpcklqdq_ExtendedIndex = 211, + kX86InstIdVpunpcklwd_ExtendedIndex = 211, + kX86InstIdVpxor_ExtendedIndex = 211, + kX86InstIdVrcpps_ExtendedIndex = 222, + kX86InstIdVrcpss_ExtendedIndex = 212, + kX86InstIdVroundpd_ExtendedIndex = 285, + kX86InstIdVroundps_ExtendedIndex = 285, + kX86InstIdVroundsd_ExtendedIndex = 220, + kX86InstIdVroundss_ExtendedIndex = 220, + kX86InstIdVrsqrtps_ExtendedIndex = 222, + kX86InstIdVrsqrtss_ExtendedIndex = 212, + kX86InstIdVshufpd_ExtendedIndex = 215, + kX86InstIdVshufps_ExtendedIndex = 215, + kX86InstIdVsqrtpd_ExtendedIndex = 222, + kX86InstIdVsqrtps_ExtendedIndex = 222, + kX86InstIdVsqrtsd_ExtendedIndex = 212, + kX86InstIdVsqrtss_ExtendedIndex = 212, + kX86InstIdVstmxcsr_ExtendedIndex = 296, + kX86InstIdVsubpd_ExtendedIndex = 211, + kX86InstIdVsubps_ExtendedIndex = 211, + kX86InstIdVsubsd_ExtendedIndex = 212, + kX86InstIdVsubss_ExtendedIndex = 212, + kX86InstIdVtestpd_ExtendedIndex = 295, + kX86InstIdVtestps_ExtendedIndex = 295, + kX86InstIdVucomisd_ExtendedIndex = 221, + kX86InstIdVucomiss_ExtendedIndex = 221, + kX86InstIdVunpckhpd_ExtendedIndex = 211, + kX86InstIdVunpckhps_ExtendedIndex = 211, + kX86InstIdVunpcklpd_ExtendedIndex = 211, + kX86InstIdVunpcklps_ExtendedIndex = 211, + kX86InstIdVxorpd_ExtendedIndex = 211, + kX86InstIdVxorps_ExtendedIndex = 211, + kX86InstIdVzeroall_ExtendedIndex = 297, + kX86InstIdVzeroupper_ExtendedIndex = 297, + kX86InstIdWrfsbase_ExtendedIndex = 298, + kX86InstIdWrgsbase_ExtendedIndex = 298, + kX86InstIdXadd_ExtendedIndex = 299, + kX86InstIdXchg_ExtendedIndex = 300, + kX86InstIdXgetbv_ExtendedIndex = 135, + kX86InstIdXor_ExtendedIndex = 3, + kX86InstIdXorpd_ExtendedIndex = 301, + kX86InstIdXorps_ExtendedIndex = 301, + kX86InstIdXrstor_ExtendedIndex = 302, + kX86InstIdXrstor64_ExtendedIndex = 302, + kX86InstIdXsave_ExtendedIndex = 302, + kX86InstIdXsave64_ExtendedIndex = 302, + kX86InstIdXsaveopt_ExtendedIndex = 302, + kX86InstIdXsaveopt64_ExtendedIndex = 302, + kX86InstIdXsetbv_ExtendedIndex = 107 }; +// ---------------------------------------------------------------------------- // ${X86InstData:End} // Please run tools/src-gendefs.js (by using just node.js, without any dependencies) to regenerate the code enclosed with ${X86InstData...}. const X86InstInfo _x86InstInfo[] = { - // <----------------------------+--------------------+-------------------------------------------+----------------------+------------------------------------+-------------+-------+---------------------------------------------------------------------------------------------------+ - // | | Instruction Opcodes | | Instruction Flags | E-FLAGS | Write | Operands (Gp/Fp/Mm/K/Xmm/Ymm/Zmm Regs, Mem, Imm, Label, None/Undefined) | - // Instruction Id | Instruction Name +---------------------+---------------------+ Instruction Enc. +---------------+--------------------+-------------+---+---+-------------------+-------------------+-------------------+-------------------+-------------------+ - // | | O-PP-MMM OP/O L/W/EW| 1:PP-MMM OP/O L/W/EW| | Global Flags |A512(ID|VL|kz|rnd|b)| EF:OSZAPCDX |Idx| Sz| [0] 1st Operand | [1] 2nd Operand | [2] 3rd Operand | [3] 4th Operand | [4] 5th Operand | - // <----------------------------+--------------------+---------------------+---------------------+----------------------+---------------+--------------------+-------------+---+---+-------------------+-------------------+-------------------+-------------------+-------------------+ - INST(kInstIdNone , "" , U , U , Enc(None) , F(None) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdAdc , "adc" , O_000000(10,2,_,_,_), U , Enc(X86Arith) , F(Lock) , EF(WWWWWX__), 0 , 0 , O(GqdwbMem) , O(GqdwbMem)|O(Imm), U , U , U ), - INST(kX86InstIdAdd , "add" , O_000000(00,0,_,_,_), U , Enc(X86Arith) , F(Lock) , EF(WWWWWW__), 0 , 0 , O(GqdwbMem) , O(GqdwbMem)|O(Imm), U , U , U ), - INST(kX86InstIdAddpd , "addpd" , O_660F00(58,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdAddps , "addps" , O_000F00(58,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdAddsd , "addsd" , O_F20F00(58,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdAddss , "addss" , O_F30F00(58,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdAddsubpd , "addsubpd" , O_660F00(D0,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdAddsubps , "addsubps" , O_F20F00(D0,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdAesdec , "aesdec" , O_660F38(DE,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdAesdeclast , "aesdeclast" , O_660F38(DF,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdAesenc , "aesenc" , O_660F38(DC,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdAesenclast , "aesenclast" , O_660F38(DD,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdAesimc , "aesimc" , O_660F38(DB,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdAeskeygenassist , "aeskeygenassist" , O_660F3A(DF,U,_,_,_), U , Enc(SimdRmi) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), - INST(kX86InstIdAnd , "and" , O_000000(20,4,_,_,_), U , Enc(X86Arith) , F(Lock) , EF(WWWUWW__), 0 , 0 , O(GqdwbMem) , O(GqdwbMem)|O(Imm), U , U , U ), - INST(kX86InstIdAndn , "andn" , O_000F38(F2,U,_,_,_), U , Enc(AvxRvm_OptW) , F(None) , EF(WWWUUW__), 0 , 0 , O(Gqd) , O(Gqd) , O(GqdMem) , U , U ), - INST(kX86InstIdAndnpd , "andnpd" , O_660F00(55,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdAndnps , "andnps" , O_000F00(55,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdAndpd , "andpd" , O_660F00(54,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdAndps , "andps" , O_000F00(54,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdBextr , "bextr" , O_000F38(F7,U,_,_,_), U , Enc(AvxRmv_OptW) , F(None) , EF(WUWUUW__), 0 , 0 , O(Gqd) , O(GqdMem) , O(Gqd) , U , U ), - INST(kX86InstIdBlendpd , "blendpd" , O_660F3A(0D,U,_,_,_), U , Enc(SimdRmi) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), - INST(kX86InstIdBlendps , "blendps" , O_660F3A(0C,U,_,_,_), U , Enc(SimdRmi) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), - INST(kX86InstIdBlendvpd , "blendvpd" , O_660F38(15,U,_,_,_), U , Enc(SimdRm) , F(None)|F(Special) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdBlendvps , "blendvps" , O_660F38(14,U,_,_,_), U , Enc(SimdRm) , F(None)|F(Special) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdBlsi , "blsi" , O_000F38(F3,3,_,_,_), U , Enc(AvxVm_OptW) , F(None) , EF(WWWUUW__), 0 , 0 , O(Gqd) , O(GqdMem) , U , U , U ), - INST(kX86InstIdBlsmsk , "blsmsk" , O_000F38(F3,2,_,_,_), U , Enc(AvxVm_OptW) , F(None) , EF(WWWUUW__), 0 , 0 , O(Gqd) , O(GqdMem) , U , U , U ), - INST(kX86InstIdBlsr , "blsr" , O_000F38(F3,1,_,_,_), U , Enc(AvxVm_OptW) , F(None) , EF(WWWUUW__), 0 , 0 , O(Gqd) , O(GqdMem) , U , U , U ), - INST(kX86InstIdBsf , "bsf" , O_000F00(BC,U,_,_,_), U , Enc(X86RegRm) , F(None) , EF(UUWUUU__), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdBsr , "bsr" , O_000F00(BD,U,_,_,_), U , Enc(X86RegRm) , F(None) , EF(UUWUUU__), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdBswap , "bswap" , O_000F00(C8,U,_,_,_), U , Enc(X86BSwap) , F(None) , EF(________), 0 , 0 , O(Gqd) , U , U , U , U ), - INST(kX86InstIdBt , "bt" , O_000F00(A3,U,_,_,_), O_000F00(BA,4,_,_,_), Enc(X86BTest) , F(Test) , EF(UU_UUW__), 0 , 0 , O(GqdwMem) , O(Gqdw)|O(Imm) , U , U , U ), - INST(kX86InstIdBtc , "btc" , O_000F00(BB,U,_,_,_), O_000F00(BA,7,_,_,_), Enc(X86BTest) , F(Lock) , EF(UU_UUW__), 0 , 0 , O(GqdwMem) , O(Gqdw)|O(Imm) , U , U , U ), - INST(kX86InstIdBtr , "btr" , O_000F00(B3,U,_,_,_), O_000F00(BA,6,_,_,_), Enc(X86BTest) , F(Lock) , EF(UU_UUW__), 0 , 0 , O(GqdwMem) , O(Gqdw)|O(Imm) , U , U , U ), - INST(kX86InstIdBts , "bts" , O_000F00(AB,U,_,_,_), O_000F00(BA,5,_,_,_), Enc(X86BTest) , F(Lock) , EF(UU_UUW__), 0 , 0 , O(GqdwMem) , O(Gqdw)|O(Imm) , U , U , U ), - INST(kX86InstIdBzhi , "bzhi" , O_000F38(F5,U,_,_,_), U , Enc(AvxRmv_OptW) , F(None) , EF(WWWUUW__), 0 , 0 , O(Gqd) , O(GqdMem) , O(Gqd) , U , U ), - INST(kX86InstIdCall , "call" , O_000000(FF,2,_,_,_), O_000000(E8,U,_,_,_), Enc(X86Call) , F(Flow) , EF(________), 0 , 0 , O(GqdMem)|O(LImm) , U , U , U , U ), - INST(kX86InstIdCbw , "cbw" , O_660000(98,U,_,_,_), U , Enc(X86Op) , F(None)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdCdq , "cdq" , O_000000(99,U,_,_,_), U , Enc(X86Op) , F(None)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdCdqe , "cdqe" , O_000000(98,U,_,W,_), U , Enc(X86Op) , F(None)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdClc , "clc" , O_000000(F8,U,_,_,_), U , Enc(X86Op) , F(None) , EF(_____W__), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdCld , "cld" , O_000000(FC,U,_,_,_), U , Enc(X86Op) , F(None) , EF(______W_), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdClflush , "clflush" , O_000F00(AE,7,_,_,_), U , Enc(X86M) , F(None) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdCmc , "cmc" , O_000000(F5,U,_,_,_), U , Enc(X86Op) , F(None) , EF(_____X__), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdCmova , "cmova" , O_000F00(47,U,_,_,_), U , Enc(X86RegRm) , F(None) , EF(__R__R__), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdCmovae , "cmovae" , O_000F00(43,U,_,_,_), U , Enc(X86RegRm) , F(None) , EF(_____R__), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdCmovb , "cmovb" , O_000F00(42,U,_,_,_), U , Enc(X86RegRm) , F(None) , EF(_____R__), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdCmovbe , "cmovbe" , O_000F00(46,U,_,_,_), U , Enc(X86RegRm) , F(None) , EF(__R__R__), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdCmovc , "cmovc" , O_000F00(42,U,_,_,_), U , Enc(X86RegRm) , F(None) , EF(_____R__), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdCmove , "cmove" , O_000F00(44,U,_,_,_), U , Enc(X86RegRm) , F(None) , EF(__R_____), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdCmovg , "cmovg" , O_000F00(4F,U,_,_,_), U , Enc(X86RegRm) , F(None) , EF(RRR_____), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdCmovge , "cmovge" , O_000F00(4D,U,_,_,_), U , Enc(X86RegRm) , F(None) , EF(RR______), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdCmovl , "cmovl" , O_000F00(4C,U,_,_,_), U , Enc(X86RegRm) , F(None) , EF(RR______), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdCmovle , "cmovle" , O_000F00(4E,U,_,_,_), U , Enc(X86RegRm) , F(None) , EF(RRR_____), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdCmovna , "cmovna" , O_000F00(46,U,_,_,_), U , Enc(X86RegRm) , F(None) , EF(__R__R__), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdCmovnae , "cmovnae" , O_000F00(42,U,_,_,_), U , Enc(X86RegRm) , F(None) , EF(_____R__), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdCmovnb , "cmovnb" , O_000F00(43,U,_,_,_), U , Enc(X86RegRm) , F(None) , EF(_____R__), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdCmovnbe , "cmovnbe" , O_000F00(47,U,_,_,_), U , Enc(X86RegRm) , F(None) , EF(__R__R__), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdCmovnc , "cmovnc" , O_000F00(43,U,_,_,_), U , Enc(X86RegRm) , F(None) , EF(_____R__), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdCmovne , "cmovne" , O_000F00(45,U,_,_,_), U , Enc(X86RegRm) , F(None) , EF(__R_____), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdCmovng , "cmovng" , O_000F00(4E,U,_,_,_), U , Enc(X86RegRm) , F(None) , EF(RRR_____), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdCmovnge , "cmovnge" , O_000F00(4C,U,_,_,_), U , Enc(X86RegRm) , F(None) , EF(RR______), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdCmovnl , "cmovnl" , O_000F00(4D,U,_,_,_), U , Enc(X86RegRm) , F(None) , EF(RR______), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdCmovnle , "cmovnle" , O_000F00(4F,U,_,_,_), U , Enc(X86RegRm) , F(None) , EF(RRR_____), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdCmovno , "cmovno" , O_000F00(41,U,_,_,_), U , Enc(X86RegRm) , F(None) , EF(R_______), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdCmovnp , "cmovnp" , O_000F00(4B,U,_,_,_), U , Enc(X86RegRm) , F(None) , EF(____R___), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdCmovns , "cmovns" , O_000F00(49,U,_,_,_), U , Enc(X86RegRm) , F(None) , EF(_R______), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdCmovnz , "cmovnz" , O_000F00(45,U,_,_,_), U , Enc(X86RegRm) , F(None) , EF(__R_____), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdCmovo , "cmovo" , O_000F00(40,U,_,_,_), U , Enc(X86RegRm) , F(None) , EF(R_______), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdCmovp , "cmovp" , O_000F00(4A,U,_,_,_), U , Enc(X86RegRm) , F(None) , EF(____R___), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdCmovpe , "cmovpe" , O_000F00(4A,U,_,_,_), U , Enc(X86RegRm) , F(None) , EF(____R___), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdCmovpo , "cmovpo" , O_000F00(4B,U,_,_,_), U , Enc(X86RegRm) , F(None) , EF(____R___), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdCmovs , "cmovs" , O_000F00(48,U,_,_,_), U , Enc(X86RegRm) , F(None) , EF(_R______), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdCmovz , "cmovz" , O_000F00(44,U,_,_,_), U , Enc(X86RegRm) , F(None) , EF(__R_____), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdCmp , "cmp" , O_000000(38,7,_,_,_), U , Enc(X86Arith) , F(Test) , EF(WWWWWW__), 0 , 0 , O(GqdwbMem) , O(GqdwbMem)|O(Imm), U , U , U ), - INST(kX86InstIdCmppd , "cmppd" , O_660F00(C2,U,_,_,_), U , Enc(SimdRmi) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), - INST(kX86InstIdCmpps , "cmpps" , O_000F00(C2,U,_,_,_), U , Enc(SimdRmi) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), - INST(kX86InstIdCmpsB , "cmps_b" , O_000000(A6,U,_,_,_), U , Enc(X86Op) , F(None)|F(Special) , EF(WWWWWWR_), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdCmpsD , "cmps_d" , O_000000(A7,U,_,_,_), U , Enc(X86Op) , F(None)|F(Special) , EF(WWWWWWR_), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdCmpsQ , "cmps_q" , O_000000(A7,U,_,W,_), U , Enc(X86Op) , F(None)|F(Special) , EF(WWWWWWR_), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdCmpsW , "cmps_w" , O_000000(A7,U,_,_,_), U , Enc(X86Op_66H) , F(None)|F(Special) , EF(WWWWWWR_), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdCmpsd , "cmpsd" , O_F20F00(C2,U,_,_,_), U , Enc(SimdRmi) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), - INST(kX86InstIdCmpss , "cmpss" , O_F30F00(C2,U,_,_,_), U , Enc(SimdRmi) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), - INST(kX86InstIdCmpxchg , "cmpxchg" , O_000F00(B0,U,_,_,_), U , Enc(X86RmReg) , F(Lock)|F(Special) , EF(WWWWWW__), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdCmpxchg16b , "cmpxchg16b" , O_000F00(C7,1,_,W,_), U , Enc(X86M) , F(None)|F(Special) , EF(__W_____), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdCmpxchg8b , "cmpxchg8b" , O_000F00(C7,1,_,_,_), U , Enc(X86M) , F(None)|F(Special) , EF(__W_____), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdComisd , "comisd" , O_660F00(2F,U,_,_,_), U , Enc(SimdRm) , F(Test) , EF(WWWWWW__), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdComiss , "comiss" , O_000F00(2F,U,_,_,_), U , Enc(SimdRm) , F(Test) , EF(WWWWWW__), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdCpuid , "cpuid" , O_000F00(A2,U,_,_,_), U , Enc(X86Op) , F(None)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdCqo , "cqo" , O_000000(99,U,_,W,_), U , Enc(X86Op) , F(None)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdCrc32 , "crc32" , O_F20F38(F0,U,_,_,_), U , Enc(X86Crc) , F(None) , EF(________), 0 , 0 , O(Gqd) , O(GqdwbMem) , U , U , U ), - INST(kX86InstIdCvtdq2pd , "cvtdq2pd" , O_F30F00(E6,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdCvtdq2ps , "cvtdq2ps" , O_000F00(5B,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdCvtpd2dq , "cvtpd2dq" , O_F20F00(E6,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdCvtpd2pi , "cvtpd2pi" , O_660F00(2D,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 8 , O(Mm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdCvtpd2ps , "cvtpd2ps" , O_660F00(5A,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdCvtpi2pd , "cvtpi2pd" , O_660F00(2A,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(MmMem) , U , U , U ), - INST(kX86InstIdCvtpi2ps , "cvtpi2ps" , O_000F00(2A,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 8 , O(Xmm) , O(MmMem) , U , U , U ), - INST(kX86InstIdCvtps2dq , "cvtps2dq" , O_660F00(5B,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdCvtps2pd , "cvtps2pd" , O_000F00(5A,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdCvtps2pi , "cvtps2pi" , O_000F00(2D,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 8 , O(Mm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdCvtsd2si , "cvtsd2si" , O_F20F00(2D,U,_,_,_), U , Enc(SimdRm_Q) , F(Move) , EF(________), 0 , 8 , O(Gqd) , O(XmmMem) , U , U , U ), - INST(kX86InstIdCvtsd2ss , "cvtsd2ss" , O_F20F00(5A,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 4 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdCvtsi2sd , "cvtsi2sd" , O_F20F00(2A,U,_,_,_), U , Enc(SimdRm_Q) , F(Move) , EF(________), 0 , 8 , O(Xmm) , O(GqdMem) , U , U , U ), - INST(kX86InstIdCvtsi2ss , "cvtsi2ss" , O_F30F00(2A,U,_,_,_), U , Enc(SimdRm_Q) , F(Move) , EF(________), 0 , 4 , O(Xmm) , O(GqdMem) , U , U , U ), - INST(kX86InstIdCvtss2sd , "cvtss2sd" , O_F30F00(5A,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 8 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdCvtss2si , "cvtss2si" , O_F30F00(2D,U,_,_,_), U , Enc(SimdRm_Q) , F(Move) , EF(________), 0 , 8 , O(Gqd) , O(XmmMem) , U , U , U ), - INST(kX86InstIdCvttpd2dq , "cvttpd2dq" , O_660F00(E6,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdCvttpd2pi , "cvttpd2pi" , O_660F00(2C,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 8 , O(Mm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdCvttps2dq , "cvttps2dq" , O_F30F00(5B,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdCvttps2pi , "cvttps2pi" , O_000F00(2C,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 8 , O(Mm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdCvttsd2si , "cvttsd2si" , O_F20F00(2C,U,_,_,_), U , Enc(SimdRm_Q) , F(Move) , EF(________), 0 , 8 , O(Gqd) , O(XmmMem) , U , U , U ), - INST(kX86InstIdCvttss2si , "cvttss2si" , O_F30F00(2C,U,_,_,_), U , Enc(SimdRm_Q) , F(Move) , EF(________), 0 , 8 , O(Gqd) , O(XmmMem) , U , U , U ), - INST(kX86InstIdCwd , "cwd" , O_660000(99,U,_,_,_), U , Enc(X86Op) , F(None)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdCwde , "cwde" , O_000000(98,U,_,_,_), U , Enc(X86Op) , F(None)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdDaa , "daa" , O_000000(27,U,_,_,_), U , Enc(X86Op) , F(None)|F(Special) , EF(UWWXWX__), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdDas , "das" , O_000000(2F,U,_,_,_), U , Enc(X86Op) , F(None)|F(Special) , EF(UWWXWX__), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdDec , "dec" , O_000000(FE,1,_,_,_), O_000000(48,U,_,_,_), Enc(X86IncDec) , F(Lock) , EF(WWWWW___), 0 , 0 , O(GqdwbMem) , U , U , U , U ), - INST(kX86InstIdDiv , "div" , O_000000(F6,6,_,_,_), U , Enc(X86Rm_B) , F(None)|F(Special) , EF(UUUUUU__), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdDivpd , "divpd" , O_660F00(5E,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdDivps , "divps" , O_000F00(5E,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdDivsd , "divsd" , O_F20F00(5E,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdDivss , "divss" , O_F30F00(5E,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdDppd , "dppd" , O_660F3A(41,U,_,_,_), U , Enc(SimdRmi) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), - INST(kX86InstIdDpps , "dpps" , O_660F3A(40,U,_,_,_), U , Enc(SimdRmi) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), - INST(kX86InstIdEmms , "emms" , O_000F00(77,U,_,_,_), U , Enc(X86Op) , F(None) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdEnter , "enter" , O_000000(C8,U,_,_,_), U , Enc(X86Enter) , F(None)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdExtractps , "extractps" , O_660F3A(17,U,_,_,_), U , Enc(SimdExtract) , F(Move) , EF(________), 0 , 8 , O(GqdMem) , O(Xmm) , U , U , U ), - INST(kX86InstIdExtrq , "extrq" , O_660F00(79,U,_,_,_), O_660F00(78,0,_,_,_), Enc(SimdExtrq) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(Xmm)|O(Imm) , O(None)|O(Imm) , U , U ), - INST(kX86InstIdF2xm1 , "f2xm1" , O_00_X(D9F0,U) , U , Enc(FpuOp) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFabs , "fabs" , O_00_X(D9E1,U) , U , Enc(FpuOp) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFadd , "fadd" , O_00_X(C0C0,0) , U , Enc(FpuArith) , F(Fp)|F(Mem4_8) , EF(________), 0 , 0 , O(FpMem) , O(Fp) , U , U , U ), - INST(kX86InstIdFaddp , "faddp" , O_00_X(DEC0,U) , U , Enc(FpuRDef) , F(Fp) , EF(________), 0 , 0 , O(Fp) , U , U , U , U ), - INST(kX86InstIdFbld , "fbld" , O_000000(DF,4,_,_,_), U , Enc(X86M) , F(Fp) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdFbstp , "fbstp" , O_000000(DF,6,_,_,_), U , Enc(X86M) , F(Fp) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdFchs , "fchs" , O_00_X(D9E0,U) , U , Enc(FpuOp) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFclex , "fclex" , O_9B_X(DBE2,U) , U , Enc(FpuOp) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFcmovb , "fcmovb" , O_00_X(DAC0,U) , U , Enc(FpuR) , F(Fp) , EF(_____R__), 0 , 0 , O(Fp) , U , U , U , U ), - INST(kX86InstIdFcmovbe , "fcmovbe" , O_00_X(DAD0,U) , U , Enc(FpuR) , F(Fp) , EF(__R__R__), 0 , 0 , O(Fp) , U , U , U , U ), - INST(kX86InstIdFcmove , "fcmove" , O_00_X(DAC8,U) , U , Enc(FpuR) , F(Fp) , EF(__R_____), 0 , 0 , O(Fp) , U , U , U , U ), - INST(kX86InstIdFcmovnb , "fcmovnb" , O_00_X(DBC0,U) , U , Enc(FpuR) , F(Fp) , EF(_____R__), 0 , 0 , O(Fp) , U , U , U , U ), - INST(kX86InstIdFcmovnbe , "fcmovnbe" , O_00_X(DBD0,U) , U , Enc(FpuR) , F(Fp) , EF(__R__R__), 0 , 0 , O(Fp) , U , U , U , U ), - INST(kX86InstIdFcmovne , "fcmovne" , O_00_X(DBC8,U) , U , Enc(FpuR) , F(Fp) , EF(__R_____), 0 , 0 , O(Fp) , U , U , U , U ), - INST(kX86InstIdFcmovnu , "fcmovnu" , O_00_X(DBD8,U) , U , Enc(FpuR) , F(Fp) , EF(____R___), 0 , 0 , O(Fp) , U , U , U , U ), - INST(kX86InstIdFcmovu , "fcmovu" , O_00_X(DAD8,U) , U , Enc(FpuR) , F(Fp) , EF(____R___), 0 , 0 , O(Fp) , U , U , U , U ), - INST(kX86InstIdFcom , "fcom" , O_00_X(D0D0,2) , U , Enc(FpuCom) , F(Fp) , EF(________), 0 , 0 , O(Fp)|O(Mem) , O(Fp) , U , U , U ), - INST(kX86InstIdFcomi , "fcomi" , O_00_X(DBF0,U) , U , Enc(FpuR) , F(Fp) , EF(WWWWWW__), 0 , 0 , O(Fp) , U , U , U , U ), - INST(kX86InstIdFcomip , "fcomip" , O_00_X(DFF0,U) , U , Enc(FpuR) , F(Fp) , EF(WWWWWW__), 0 , 0 , O(Fp) , U , U , U , U ), - INST(kX86InstIdFcomp , "fcomp" , O_00_X(D8D8,3) , U , Enc(FpuCom) , F(Fp) , EF(________), 0 , 0 , O(Fp)|O(Mem) , O(Fp) , U , U , U ), - INST(kX86InstIdFcompp , "fcompp" , O_00_X(DED9,U) , U , Enc(FpuOp) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFcos , "fcos" , O_00_X(D9FF,U) , U , Enc(FpuOp) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFdecstp , "fdecstp" , O_00_X(D9F6,U) , U , Enc(FpuOp) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFdiv , "fdiv" , O_00_X(F0F8,6) , U , Enc(FpuArith) , F(Fp)|F(Mem4_8) , EF(________), 0 , 0 , O(FpMem) , O(Fp) , U , U , U ), - INST(kX86InstIdFdivp , "fdivp" , O_00_X(DEF8,U) , U , Enc(FpuRDef) , F(Fp) , EF(________), 0 , 0 , O(Fp) , U , U , U , U ), - INST(kX86InstIdFdivr , "fdivr" , O_00_X(F8F0,7) , U , Enc(FpuArith) , F(Fp)|F(Mem4_8) , EF(________), 0 , 0 , O(FpMem) , O(Fp) , U , U , U ), - INST(kX86InstIdFdivrp , "fdivrp" , O_00_X(DEF0,U) , U , Enc(FpuRDef) , F(Fp) , EF(________), 0 , 0 , O(Fp) , U , U , U , U ), - INST(kX86InstIdFemms , "femms" , O_000F00(0E,U,_,_,_), U , Enc(X86Op) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFfree , "ffree" , O_00_X(DDC0,U) , U , Enc(FpuR) , F(Fp) , EF(________), 0 , 0 , O(Fp) , U , U , U , U ), - INST(kX86InstIdFiadd , "fiadd" , O_000000(DA,0,_,_,_), U , Enc(FpuM) , F(Fp)|F(Mem2_4) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdFicom , "ficom" , O_000000(DA,2,_,_,_), U , Enc(FpuM) , F(Fp)|F(Mem2_4) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdFicomp , "ficomp" , O_000000(DA,3,_,_,_), U , Enc(FpuM) , F(Fp)|F(Mem2_4) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdFidiv , "fidiv" , O_000000(DA,6,_,_,_), U , Enc(FpuM) , F(Fp)|F(Mem2_4) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdFidivr , "fidivr" , O_000000(DA,7,_,_,_), U , Enc(FpuM) , F(Fp)|F(Mem2_4) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdFild , "fild" , O_000000(DB,0,_,_,_), O_000000(DF,5,_,_,_), Enc(FpuM) , F(Fp)|F(Mem2_4_8) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdFimul , "fimul" , O_000000(DA,1,_,_,_), U , Enc(FpuM) , F(Fp)|F(Mem2_4) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdFincstp , "fincstp" , O_00_X(D9F7,U) , U , Enc(FpuOp) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFinit , "finit" , O_9B_X(DBE3,U) , U , Enc(FpuOp) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFist , "fist" , O_000000(DB,2,_,_,_), U , Enc(FpuM) , F(Fp)|F(Mem2_4) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdFistp , "fistp" , O_000000(DB,3,_,_,_), O_000000(DF,7,_,_,_), Enc(FpuM) , F(Fp)|F(Mem2_4_8) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdFisttp , "fisttp" , O_000000(DB,1,_,_,_), O_000000(DD,1,_,_,_), Enc(FpuM) , F(Fp)|F(Mem2_4_8) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdFisub , "fisub" , O_000000(DA,4,_,_,_), U , Enc(FpuM) , F(Fp)|F(Mem2_4) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdFisubr , "fisubr" , O_000000(DA,5,_,_,_), U , Enc(FpuM) , F(Fp)|F(Mem2_4) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdFld , "fld" , O_000000(D9,0,_,_,_), O_000000(DB,5,_,_,_), Enc(FpuFldFst) , F(Fp)|F(Mem4_8_10) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdFld1 , "fld1" , O_00_X(D9E8,U) , U , Enc(FpuOp) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFldcw , "fldcw" , O_000000(D9,5,_,_,_), U , Enc(X86M) , F(Fp) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdFldenv , "fldenv" , O_000000(D9,4,_,_,_), U , Enc(X86M) , F(Fp) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdFldl2e , "fldl2e" , O_00_X(D9EA,U) , U , Enc(FpuOp) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFldl2t , "fldl2t" , O_00_X(D9E9,U) , U , Enc(FpuOp) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFldlg2 , "fldlg2" , O_00_X(D9EC,U) , U , Enc(FpuOp) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFldln2 , "fldln2" , O_00_X(D9ED,U) , U , Enc(FpuOp) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFldpi , "fldpi" , O_00_X(D9EB,U) , U , Enc(FpuOp) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFldz , "fldz" , O_00_X(D9EE,U) , U , Enc(FpuOp) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFmul , "fmul" , O_00_X(C8C8,1) , U , Enc(FpuArith) , F(Fp)|F(Mem4_8) , EF(________), 0 , 0 , O(FpMem) , O(Fp) , U , U , U ), - INST(kX86InstIdFmulp , "fmulp" , O_00_X(DEC8,U) , U , Enc(FpuRDef) , F(Fp) , EF(________), 0 , 0 , O(Fp) , U , U , U , U ), - INST(kX86InstIdFnclex , "fnclex" , O_00_X(DBE2,U) , U , Enc(FpuOp) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFninit , "fninit" , O_00_X(DBE3,U) , U , Enc(FpuOp) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFnop , "fnop" , O_00_X(D9D0,U) , U , Enc(FpuOp) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFnsave , "fnsave" , O_000000(DD,6,_,_,_), U , Enc(X86M) , F(Fp) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdFnstcw , "fnstcw" , O_000000(D9,7,_,_,_), U , Enc(X86M) , F(Fp) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdFnstenv , "fnstenv" , O_000000(D9,6,_,_,_), U , Enc(X86M) , F(Fp) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdFnstsw , "fnstsw" , O_000000(DD,7,_,_,_), O_00_X(DFE0,U) , Enc(FpuStsw) , F(Fp) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdFpatan , "fpatan" , O_00_X(D9F3,U) , U , Enc(FpuOp) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFprem , "fprem" , O_00_X(D9F8,U) , U , Enc(FpuOp) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFprem1 , "fprem1" , O_00_X(D9F5,U) , U , Enc(FpuOp) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFptan , "fptan" , O_00_X(D9F2,U) , U , Enc(FpuOp) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFrndint , "frndint" , O_00_X(D9FC,U) , U , Enc(FpuOp) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFrstor , "frstor" , O_000000(DD,4,_,_,_), U , Enc(X86M) , F(Fp) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdFsave , "fsave" , O_9B0000(DD,6,_,_,_), U , Enc(X86M) , F(Fp) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdFscale , "fscale" , O_00_X(D9FD,U) , U , Enc(FpuOp) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFsin , "fsin" , O_00_X(D9FE,U) , U , Enc(FpuOp) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFsincos , "fsincos" , O_00_X(D9FB,U) , U , Enc(FpuOp) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFsqrt , "fsqrt" , O_00_X(D9FA,U) , U , Enc(FpuOp) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFst , "fst" , O_000000(D9,2,_,_,_), U , Enc(FpuFldFst) , F(Fp)|F(Mem4_8) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdFstcw , "fstcw" , O_9B0000(D9,7,_,_,_), U , Enc(X86M) , F(Fp) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdFstenv , "fstenv" , O_9B0000(D9,6,_,_,_), U , Enc(X86M) , F(Fp) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdFstp , "fstp" , O_000000(D9,3,_,_,_), O_000000(DB,7,_,_,_), Enc(FpuFldFst) , F(Fp)|F(Mem4_8_10) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdFstsw , "fstsw" , O_9B0000(DD,7,_,_,_), O_9B_X(DFE0,U) , Enc(FpuStsw) , F(Fp) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdFsub , "fsub" , O_00_X(E0E8,4) , U , Enc(FpuArith) , F(Fp)|F(Mem4_8) , EF(________), 0 , 0 , O(FpMem) , O(Fp) , U , U , U ), - INST(kX86InstIdFsubp , "fsubp" , O_00_X(DEE8,U) , U , Enc(FpuRDef) , F(Fp) , EF(________), 0 , 0 , O(Fp) , U , U , U , U ), - INST(kX86InstIdFsubr , "fsubr" , O_00_X(E8E0,5) , U , Enc(FpuArith) , F(Fp)|F(Mem4_8) , EF(________), 0 , 0 , O(FpMem) , O(Fp) , U , U , U ), - INST(kX86InstIdFsubrp , "fsubrp" , O_00_X(DEE0,U) , U , Enc(FpuRDef) , F(Fp) , EF(________), 0 , 0 , O(Fp) , U , U , U , U ), - INST(kX86InstIdFtst , "ftst" , O_00_X(D9E4,U) , U , Enc(FpuOp) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFucom , "fucom" , O_00_X(DDE0,U) , U , Enc(FpuRDef) , F(Fp) , EF(________), 0 , 0 , O(Fp) , U , U , U , U ), - INST(kX86InstIdFucomi , "fucomi" , O_00_X(DBE8,U) , U , Enc(FpuR) , F(Fp) , EF(WWWWWW__), 0 , 0 , O(Fp) , U , U , U , U ), - INST(kX86InstIdFucomip , "fucomip" , O_00_X(DFE8,U) , U , Enc(FpuR) , F(Fp) , EF(WWWWWW__), 0 , 0 , O(Fp) , U , U , U , U ), - INST(kX86InstIdFucomp , "fucomp" , O_00_X(DDE8,U) , U , Enc(FpuRDef) , F(Fp) , EF(________), 0 , 0 , O(Fp) , U , U , U , U ), - INST(kX86InstIdFucompp , "fucompp" , O_00_X(DAE9,U) , U , Enc(FpuOp) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFwait , "fwait" , O_000000(DB,U,_,_,_), U , Enc(X86Op) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFxam , "fxam" , O_00_X(D9E5,U) , U , Enc(FpuOp) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFxch , "fxch" , O_00_X(D9C8,U) , U , Enc(FpuR) , F(Fp) , EF(________), 0 , 0 , O(Fp) , U , U , U , U ), - INST(kX86InstIdFxrstor , "fxrstor" , O_000F00(AE,1,_,_,_), U , Enc(X86M) , F(Fp) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdFxsave , "fxsave" , O_000F00(AE,0,_,_,_), U , Enc(X86M) , F(Fp) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdFxtract , "fxtract" , O_00_X(D9F4,U) , U , Enc(FpuOp) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFyl2x , "fyl2x" , O_00_X(D9F1,U) , U , Enc(FpuOp) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdFyl2xp1 , "fyl2xp1" , O_00_X(D9F9,U) , U , Enc(FpuOp) , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdHaddpd , "haddpd" , O_660F00(7C,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdHaddps , "haddps" , O_F20F00(7C,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdHsubpd , "hsubpd" , O_660F00(7D,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdHsubps , "hsubps" , O_F20F00(7D,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdIdiv , "idiv" , O_000000(F6,7,_,_,_), U , Enc(X86Rm_B) , F(None)|F(Special) , EF(UUUUUU__), 0 , 0 , 0 , 0 , U , U , U ), - INST(kX86InstIdImul , "imul" , U , U , Enc(X86Imul) , F(None)|F(Special) , EF(WUUUUW__), 0 , 0 , 0 , 0 , U , U , U ), - INST(kX86InstIdInc , "inc" , O_000000(FE,0,_,_,_), O_000000(40,U,_,_,_), Enc(X86IncDec) , F(Lock) , EF(WWWWW___), 0 , 0 , O(GqdwbMem) , U , U , U , U ), - INST(kX86InstIdInsertps , "insertps" , O_660F3A(21,U,_,_,_), U , Enc(SimdRmi) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), - INST(kX86InstIdInsertq , "insertq" , O_F20F00(79,U,_,_,_), O_F20F00(78,U,_,_,_), Enc(SimdInsertq) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(None)|O(Imm) , O(None)|O(Imm) , U ), - INST(kX86InstIdInt , "int" , O_000000(CC,U,_,_,_), U , Enc(X86Int) , F(None) , EF(_______W), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdJa , "ja" , O_000000(77,U,_,_,_), U , Enc(X86Jcc) , F(Flow) , EF(__R__R__), 0 , 0 , O(Label) , U , U , U , U ), - INST(kX86InstIdJae , "jae" , O_000000(73,U,_,_,_), U , Enc(X86Jcc) , F(Flow) , EF(_____R__), 0 , 0 , O(Label) , U , U , U , U ), - INST(kX86InstIdJb , "jb" , O_000000(72,U,_,_,_), U , Enc(X86Jcc) , F(Flow) , EF(_____R__), 0 , 0 , O(Label) , U , U , U , U ), - INST(kX86InstIdJbe , "jbe" , O_000000(76,U,_,_,_), U , Enc(X86Jcc) , F(Flow) , EF(__R__R__), 0 , 0 , O(Label) , U , U , U , U ), - INST(kX86InstIdJc , "jc" , O_000000(72,U,_,_,_), U , Enc(X86Jcc) , F(Flow) , EF(_____R__), 0 , 0 , O(Label) , U , U , U , U ), - INST(kX86InstIdJe , "je" , O_000000(74,U,_,_,_), U , Enc(X86Jcc) , F(Flow) , EF(__R_____), 0 , 0 , O(Label) , U , U , U , U ), - INST(kX86InstIdJg , "jg" , O_000000(7F,U,_,_,_), U , Enc(X86Jcc) , F(Flow) , EF(RRR_____), 0 , 0 , O(Label) , U , U , U , U ), - INST(kX86InstIdJge , "jge" , O_000000(7D,U,_,_,_), U , Enc(X86Jcc) , F(Flow) , EF(RR______), 0 , 0 , O(Label) , U , U , U , U ), - INST(kX86InstIdJl , "jl" , O_000000(7C,U,_,_,_), U , Enc(X86Jcc) , F(Flow) , EF(RR______), 0 , 0 , O(Label) , U , U , U , U ), - INST(kX86InstIdJle , "jle" , O_000000(7E,U,_,_,_), U , Enc(X86Jcc) , F(Flow) , EF(RRR_____), 0 , 0 , O(Label) , U , U , U , U ), - INST(kX86InstIdJna , "jna" , O_000000(76,U,_,_,_), U , Enc(X86Jcc) , F(Flow) , EF(__R__R__), 0 , 0 , O(Label) , U , U , U , U ), - INST(kX86InstIdJnae , "jnae" , O_000000(72,U,_,_,_), U , Enc(X86Jcc) , F(Flow) , EF(_____R__), 0 , 0 , O(Label) , U , U , U , U ), - INST(kX86InstIdJnb , "jnb" , O_000000(73,U,_,_,_), U , Enc(X86Jcc) , F(Flow) , EF(_____R__), 0 , 0 , O(Label) , U , U , U , U ), - INST(kX86InstIdJnbe , "jnbe" , O_000000(77,U,_,_,_), U , Enc(X86Jcc) , F(Flow) , EF(__R__R__), 0 , 0 , O(Label) , U , U , U , U ), - INST(kX86InstIdJnc , "jnc" , O_000000(73,U,_,_,_), U , Enc(X86Jcc) , F(Flow) , EF(_____R__), 0 , 0 , O(Label) , U , U , U , U ), - INST(kX86InstIdJne , "jne" , O_000000(75,U,_,_,_), U , Enc(X86Jcc) , F(Flow) , EF(__R_____), 0 , 0 , O(Label) , U , U , U , U ), - INST(kX86InstIdJng , "jng" , O_000000(7E,U,_,_,_), U , Enc(X86Jcc) , F(Flow) , EF(RRR_____), 0 , 0 , O(Label) , U , U , U , U ), - INST(kX86InstIdJnge , "jnge" , O_000000(7C,U,_,_,_), U , Enc(X86Jcc) , F(Flow) , EF(RR______), 0 , 0 , O(Label) , U , U , U , U ), - INST(kX86InstIdJnl , "jnl" , O_000000(7D,U,_,_,_), U , Enc(X86Jcc) , F(Flow) , EF(RR______), 0 , 0 , O(Label) , U , U , U , U ), - INST(kX86InstIdJnle , "jnle" , O_000000(7F,U,_,_,_), U , Enc(X86Jcc) , F(Flow) , EF(RRR_____), 0 , 0 , O(Label) , U , U , U , U ), - INST(kX86InstIdJno , "jno" , O_000000(71,U,_,_,_), U , Enc(X86Jcc) , F(Flow) , EF(R_______), 0 , 0 , O(Label) , U , U , U , U ), - INST(kX86InstIdJnp , "jnp" , O_000000(7B,U,_,_,_), U , Enc(X86Jcc) , F(Flow) , EF(____R___), 0 , 0 , O(Label) , U , U , U , U ), - INST(kX86InstIdJns , "jns" , O_000000(79,U,_,_,_), U , Enc(X86Jcc) , F(Flow) , EF(_R______), 0 , 0 , O(Label) , U , U , U , U ), - INST(kX86InstIdJnz , "jnz" , O_000000(75,U,_,_,_), U , Enc(X86Jcc) , F(Flow) , EF(__R_____), 0 , 0 , O(Label) , U , U , U , U ), - INST(kX86InstIdJo , "jo" , O_000000(70,U,_,_,_), U , Enc(X86Jcc) , F(Flow) , EF(R_______), 0 , 0 , O(Label) , U , U , U , U ), - INST(kX86InstIdJp , "jp" , O_000000(7A,U,_,_,_), U , Enc(X86Jcc) , F(Flow) , EF(____R___), 0 , 0 , O(Label) , U , U , U , U ), - INST(kX86InstIdJpe , "jpe" , O_000000(7A,U,_,_,_), U , Enc(X86Jcc) , F(Flow) , EF(____R___), 0 , 0 , O(Label) , U , U , U , U ), - INST(kX86InstIdJpo , "jpo" , O_000000(7B,U,_,_,_), U , Enc(X86Jcc) , F(Flow) , EF(____R___), 0 , 0 , O(Label) , U , U , U , U ), - INST(kX86InstIdJs , "js" , O_000000(78,U,_,_,_), U , Enc(X86Jcc) , F(Flow) , EF(_R______), 0 , 0 , O(Label) , U , U , U , U ), - INST(kX86InstIdJz , "jz" , O_000000(74,U,_,_,_), U , Enc(X86Jcc) , F(Flow) , EF(__R_____), 0 , 0 , O(Label) , U , U , U , U ), - INST(kX86InstIdJecxz , "jecxz" , O_000000(E3,U,_,_,_), U , Enc(X86Jecxz) , F(Flow)|F(Special) , EF(________), 0 , 0 , O(Gqdw) , O(Label) , U , U , U ), - INST(kX86InstIdJmp , "jmp" , O_000000(FF,4,_,_,_), O_000000(E9,U,_,_,_), Enc(X86Jmp) , F(Flow) , EF(________), 0 , 0 , O(Label)|O(Imm) , U , U , U , U ), - INST(kX86InstIdLahf , "lahf" , O_000000(9F,U,_,_,_), U , Enc(X86Op) , F(None)|F(Special) , EF(_RRRRR__), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdLddqu , "lddqu" , O_F20F00(F0,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(Mem) , U , U , U ), - INST(kX86InstIdLdmxcsr , "ldmxcsr" , O_000F00(AE,2,_,_,_), U , Enc(X86M) , F(None) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdLea , "lea" , O_000000(8D,U,_,_,_), U , Enc(X86Lea) , F(Move) , EF(________), 0 , 0 , O(Gqd) , O(Mem) , U , U , U ), - INST(kX86InstIdLeave , "leave" , O_000000(C9,U,_,_,_), U , Enc(X86Op) , F(None)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdLfence , "lfence" , O_000F00(AE,5,_,_,_), U , Enc(X86Fence) , F(None) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdLodsB , "lods_b" , O_000000(AC,U,_,_,_), U , Enc(X86Op) , F(Move)|F(Special) , EF(______R_), 0 , 1 , U , U , U , U , U ), - INST(kX86InstIdLodsD , "lods_d" , O_000000(AD,U,_,_,_), U , Enc(X86Op) , F(Move)|F(Special) , EF(______R_), 0 , 4 , U , U , U , U , U ), - INST(kX86InstIdLodsQ , "lods_q" , O_000000(AD,U,_,W,_), U , Enc(X86Op) , F(Move)|F(Special) , EF(______R_), 0 , 8 , U , U , U , U , U ), - INST(kX86InstIdLodsW , "lods_w" , O_000000(AD,U,_,_,_), U , Enc(X86Op_66H) , F(Move)|F(Special) , EF(______R_), 0 , 2 , U , U , U , U , U ), - INST(kX86InstIdLzcnt , "lzcnt" , O_F30F00(BD,U,_,_,_), U , Enc(X86RegRm) , F(None) , EF(UUWUUW__), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdMaskmovdqu , "maskmovdqu" , O_660F00(57,U,_,_,_), U , Enc(SimdRm) , F(None)|F(Special) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , U , U , U ), - INST(kX86InstIdMaskmovq , "maskmovq" , O_000F00(F7,U,_,_,_), U , Enc(SimdRm) , F(None)|F(Special) , EF(________), 0 , 0 , O(Mm) , O(Mm) , U , U , U ), - INST(kX86InstIdMaxpd , "maxpd" , O_660F00(5F,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdMaxps , "maxps" , O_000F00(5F,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdMaxsd , "maxsd" , O_F20F00(5F,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdMaxss , "maxss" , O_F30F00(5F,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdMfence , "mfence" , O_000F00(AE,6,_,_,_), U , Enc(X86Fence) , F(None) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdMinpd , "minpd" , O_660F00(5D,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdMinps , "minps" , O_000F00(5D,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdMinsd , "minsd" , O_F20F00(5D,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdMinss , "minss" , O_F30F00(5D,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdMonitor , "monitor" , O_000F01(C8,U,_,_,_), U , Enc(X86Op) , F(None)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdMov , "mov" , U , U , Enc(X86Mov) , F(Move) , EF(________), 0 , 0 , O(GqdwbMem) , O(GqdwbMem)|O(Imm), U , U , U ), - INST(kX86InstIdMovPtr , "mov_ptr" , O_000000(A0,U,_,_,_), O_000000(A2,U,_,_,_), Enc(X86MovPtr) , F(Move)|F(Special) , EF(________), 0 , 0 , O(Gqdwb) , O(Imm) , U , U , U ), - INST(kX86InstIdMovapd , "movapd" , O_660F00(28,U,_,_,_), O_660F00(29,U,_,_,_), Enc(SimdMov) , F(Move) , EF(________), 0 , 16, O(XmmMem) , O(XmmMem) , U , U , U ), - INST(kX86InstIdMovaps , "movaps" , O_000F00(28,U,_,_,_), O_000F00(29,U,_,_,_), Enc(SimdMov) , F(Move) , EF(________), 0 , 16, O(XmmMem) , O(XmmMem) , U , U , U ), - INST(kX86InstIdMovbe , "movbe" , O_000F38(F0,U,_,_,_), O_000F38(F1,U,_,_,_), Enc(SimdMovBe) , F(Move) , EF(________), 0 , 0 , O(GqdwMem) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdMovd , "movd" , O_000F00(6E,U,_,_,_), O_000F00(7E,U,_,_,_), Enc(SimdMovD) , F(Move) , EF(________), 0 , 16, O(Gd)|O(MmXmmMem) , O(Gd)|O(MmXmmMem) , U , U , U ), - INST(kX86InstIdMovddup , "movddup" , O_F20F00(12,U,_,_,_), U , Enc(SimdMov) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdMovdq2q , "movdq2q" , O_F20F00(D6,U,_,_,_), U , Enc(SimdMov) , F(Move) , EF(________), 0 , 8 , O(Mm) , O(Xmm) , U , U , U ), - INST(kX86InstIdMovdqa , "movdqa" , O_660F00(6F,U,_,_,_), O_660F00(7F,U,_,_,_), Enc(SimdMov) , F(Move) , EF(________), 0 , 16, O(XmmMem) , O(XmmMem) , U , U , U ), - INST(kX86InstIdMovdqu , "movdqu" , O_F30F00(6F,U,_,_,_), O_F30F00(7F,U,_,_,_), Enc(SimdMov) , F(Move) , EF(________), 0 , 16, O(XmmMem) , O(XmmMem) , U , U , U ), - INST(kX86InstIdMovhlps , "movhlps" , O_000F00(12,U,_,_,_), U , Enc(SimdMov) , F(Move) , EF(________), 0 , 8 , O(Xmm) , O(Xmm) , U , U , U ), - INST(kX86InstIdMovhpd , "movhpd" , O_660F00(16,U,_,_,_), O_660F00(17,U,_,_,_), Enc(SimdMov) , F(None) , EF(________), 8 , 8 , O(XmmMem) , O(XmmMem) , U , U , U ), - INST(kX86InstIdMovhps , "movhps" , O_000F00(16,U,_,_,_), O_000F00(17,U,_,_,_), Enc(SimdMov) , F(None) , EF(________), 8 , 8 , O(XmmMem) , O(XmmMem) , U , U , U ), - INST(kX86InstIdMovlhps , "movlhps" , O_000F00(16,U,_,_,_), U , Enc(SimdMov) , F(None) , EF(________), 8 , 8 , O(Xmm) , O(Xmm) , U , U , U ), - INST(kX86InstIdMovlpd , "movlpd" , O_660F00(12,U,_,_,_), O_660F00(13,U,_,_,_), Enc(SimdMov) , F(Move) , EF(________), 0 , 8 , O(XmmMem) , O(XmmMem) , U , U , U ), - INST(kX86InstIdMovlps , "movlps" , O_000F00(12,U,_,_,_), O_000F00(13,U,_,_,_), Enc(SimdMov) , F(Move) , EF(________), 0 , 8 , O(XmmMem) , O(XmmMem) , U , U , U ), - INST(kX86InstIdMovmskpd , "movmskpd" , O_660F00(50,U,_,_,_), U , Enc(SimdMovNoRexW) , F(Move) , EF(________), 0 , 8 , O(Gqd) , O(Xmm) , U , U , U ), - INST(kX86InstIdMovmskps , "movmskps" , O_000F00(50,U,_,_,_), U , Enc(SimdMovNoRexW) , F(Move) , EF(________), 0 , 8 , O(Gqd) , O(Xmm) , U , U , U ), - INST(kX86InstIdMovntdq , "movntdq" , U , O_660F00(E7,U,_,_,_), Enc(SimdMov) , F(Move) , EF(________), 0 , 16, O(Mem) , O(Xmm) , U , U , U ), - INST(kX86InstIdMovntdqa , "movntdqa" , O_660F38(2A,U,_,_,_), U , Enc(SimdMov) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(Mem) , U , U , U ), - INST(kX86InstIdMovnti , "movnti" , U , O_000F00(C3,U,_,_,_), Enc(SimdMov) , F(Move) , EF(________), 0 , 8 , O(Mem) , O(Gqd) , U , U , U ), - INST(kX86InstIdMovntpd , "movntpd" , U , O_660F00(2B,U,_,_,_), Enc(SimdMov) , F(Move) , EF(________), 0 , 16, O(Mem) , O(Xmm) , U , U , U ), - INST(kX86InstIdMovntps , "movntps" , U , O_000F00(2B,U,_,_,_), Enc(SimdMov) , F(Move) , EF(________), 0 , 16, O(Mem) , O(Xmm) , U , U , U ), - INST(kX86InstIdMovntq , "movntq" , U , O_000F00(E7,U,_,_,_), Enc(SimdMov) , F(Move) , EF(________), 0 , 8 , O(Mem) , O(Mm) , U , U , U ), - INST(kX86InstIdMovntsd , "movntsd" , U , O_F20F00(2B,U,_,_,_), Enc(SimdMov) , F(Move) , EF(________), 0 , 8 , O(Mem) , O(Xmm) , U , U , U ), - INST(kX86InstIdMovntss , "movntss" , U , O_F30F00(2B,U,_,_,_), Enc(SimdMov) , F(Move) , EF(________), 0 , 4 , O(Mem) , O(Xmm) , U , U , U ), - INST(kX86InstIdMovq , "movq" , O_000F00(6E,U,_,W,_), O_000F00(7E,U,_,W,_), Enc(SimdMovQ) , F(Move) , EF(________), 0 , 16, O(Gq)|O(MmXmmMem) , O(Gq)|O(MmXmmMem) , U , U , U ), - INST(kX86InstIdMovq2dq , "movq2dq" , O_F30F00(D6,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(Mm) , U , U , U ), - INST(kX86InstIdMovsB , "movs_b" , O_000000(A4,U,_,_,_), U , Enc(X86Op) , F(None)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdMovsD , "movs_d" , O_000000(A5,U,_,_,_), U , Enc(X86Op) , F(Move)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdMovsQ , "movs_q" , O_000000(A5,U,_,W,_), U , Enc(X86Op) , F(None)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdMovsW , "movs_w" , O_000000(A5,U,_,_,_), U , Enc(X86Op_66H) , F(None)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdMovsd , "movsd" , O_F20F00(10,U,_,_,_), O_F20F00(11,U,_,_,_), Enc(SimdMov) , F(Move) |F(Z) , EF(________), 0 , 8 , O(XmmMem) , O(XmmMem) , U , U , U ), - INST(kX86InstIdMovshdup , "movshdup" , O_F30F00(16,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdMovsldup , "movsldup" , O_F30F00(12,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdMovss , "movss" , O_F30F00(10,U,_,_,_), O_F30F00(11,U,_,_,_), Enc(SimdMov) , F(Move) |F(Z) , EF(________), 0 , 4 , O(XmmMem) , O(XmmMem) , U , U , U ), - INST(kX86InstIdMovsx , "movsx" , O_000F00(BE,U,_,_,_), U , Enc(X86MovSxZx) , F(Move) , EF(________), 0 , 0 , O(Gqdw) , O(GwbMem) , U , U , U ), - INST(kX86InstIdMovsxd , "movsxd" , O_000000(63,U,_,_,_), U , Enc(X86MovSxd) , F(Move) , EF(________), 0 , 0 , O(Gq) , O(GdMem) , U , U , U ), - INST(kX86InstIdMovupd , "movupd" , O_660F00(10,U,_,_,_), O_660F00(11,U,_,_,_), Enc(SimdMov) , F(Move) , EF(________), 0 , 16, O(XmmMem) , O(XmmMem) , U , U , U ), - INST(kX86InstIdMovups , "movups" , O_000F00(10,U,_,_,_), O_000F00(11,U,_,_,_), Enc(SimdMov) , F(Move) , EF(________), 0 , 16, O(XmmMem) , O(XmmMem) , U , U , U ), - INST(kX86InstIdMovzx , "movzx" , O_000F00(B6,U,_,_,_), U , Enc(X86MovSxZx) , F(Move) , EF(________), 0 , 0 , O(Gqdw) , O(GwbMem) , U , U , U ), - INST(kX86InstIdMpsadbw , "mpsadbw" , O_660F3A(42,U,_,_,_), U , Enc(SimdRmi) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), - INST(kX86InstIdMul , "mul" , O_000000(F6,4,_,_,_), U , Enc(X86Rm_B) , F(None)|F(Special) , EF(WUUUUW__), 0 , 0 , 0 , 0 , U , U , U ), - INST(kX86InstIdMulpd , "mulpd" , O_660F00(59,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdMulps , "mulps" , O_000F00(59,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdMulsd , "mulsd" , O_F20F00(59,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdMulss , "mulss" , O_F30F00(59,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdMulx , "mulx" , O_F20F38(F6,U,_,_,_), U , Enc(AvxRvm_OptW) , F(None) , EF(________), 0 , 0 , O(Gqd) , O(Gqd) , O(GqdMem) , U , U ), - INST(kX86InstIdMwait , "mwait" , O_000F01(C9,U,_,_,_), U , Enc(X86Op) , F(None)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdNeg , "neg" , O_000000(F6,3,_,_,_), U , Enc(X86Rm_B) , F(Lock) , EF(WWWWWW__), 0 , 0 , O(GqdwbMem) , U , U , U , U ), - INST(kX86InstIdNop , "nop" , O_000000(90,U,_,_,_), U , Enc(X86Op) , F(None) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdNot , "not" , O_000000(F6,2,_,_,_), U , Enc(X86Rm_B) , F(Lock) , EF(________), 0 , 0 , O(GqdwbMem) , U , U , U , U ), - INST(kX86InstIdOr , "or" , O_000000(08,1,_,_,_), U , Enc(X86Arith) , F(Lock) , EF(WWWUWW__), 0 , 0 , O(GqdwbMem) , O(GqdwbMem)|O(Imm), U , U , U ), - INST(kX86InstIdOrpd , "orpd" , O_660F00(56,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdOrps , "orps" , O_000F00(56,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdPabsb , "pabsb" , O_000F38(1C,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPabsd , "pabsd" , O_000F38(1E,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPabsw , "pabsw" , O_000F38(1D,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPackssdw , "packssdw" , O_000F00(6B,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPacksswb , "packsswb" , O_000F00(63,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPackusdw , "packusdw" , O_660F38(2B,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdPackuswb , "packuswb" , O_000F00(67,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPaddb , "paddb" , O_000F00(FC,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPaddd , "paddd" , O_000F00(FE,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPaddq , "paddq" , O_000F00(D4,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPaddsb , "paddsb" , O_000F00(EC,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPaddsw , "paddsw" , O_000F00(ED,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPaddusb , "paddusb" , O_000F00(DC,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPaddusw , "paddusw" , O_000F00(DD,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPaddw , "paddw" , O_000F00(FD,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPalignr , "palignr" , O_000F3A(0F,U,_,_,_), U , Enc(SimdRmi_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , O(Imm) , U , U ), - INST(kX86InstIdPand , "pand" , O_000F00(DB,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPandn , "pandn" , O_000F00(DF,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPause , "pause" , O_F30000(90,U,_,_,_), U , Enc(X86Op) , F(None) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdPavgb , "pavgb" , O_000F00(E0,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPavgw , "pavgw" , O_000F00(E3,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPblendvb , "pblendvb" , O_660F38(10,U,_,_,_), U , Enc(SimdRm) , F(None)|F(Special) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdPblendw , "pblendw" , O_660F3A(0E,U,_,_,_), U , Enc(SimdRmi) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), - INST(kX86InstIdPclmulqdq , "pclmulqdq" , O_660F3A(44,U,_,_,_), U , Enc(SimdRmi) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), - INST(kX86InstIdPcmpeqb , "pcmpeqb" , O_000F00(74,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPcmpeqd , "pcmpeqd" , O_000F00(76,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPcmpeqq , "pcmpeqq" , O_660F38(29,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdPcmpeqw , "pcmpeqw" , O_000F00(75,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPcmpestri , "pcmpestri" , O_660F3A(61,U,_,_,_), U , Enc(SimdRmi) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), - INST(kX86InstIdPcmpestrm , "pcmpestrm" , O_660F3A(60,U,_,_,_), U , Enc(SimdRmi) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), - INST(kX86InstIdPcmpgtb , "pcmpgtb" , O_000F00(64,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPcmpgtd , "pcmpgtd" , O_000F00(66,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPcmpgtq , "pcmpgtq" , O_660F38(37,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdPcmpgtw , "pcmpgtw" , O_000F00(65,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPcmpistri , "pcmpistri" , O_660F3A(63,U,_,_,_), U , Enc(SimdRmi) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), - INST(kX86InstIdPcmpistrm , "pcmpistrm" , O_660F3A(62,U,_,_,_), U , Enc(SimdRmi) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), - INST(kX86InstIdPdep , "pdep" , O_F20F38(F5,U,_,_,_), U , Enc(AvxRvm_OptW) , F(None) , EF(________), 0 , 0 , O(Gqd) , O(Gqd) , O(GqdMem) , U , U ), - INST(kX86InstIdPext , "pext" , O_F30F38(F5,U,_,_,_), U , Enc(AvxRvm_OptW) , F(None) , EF(________), 0 , 0 , O(Gqd) , O(Gqd) , O(GqdMem) , U , U ), - INST(kX86InstIdPextrb , "pextrb" , O_000F3A(14,U,_,_,_), U , Enc(SimdExtract) , F(Move) , EF(________), 0 , 8 , O(Gd)|O(Gb)|O(Mem), O(Xmm) , U , U , U ), - INST(kX86InstIdPextrd , "pextrd" , O_000F3A(16,U,_,_,_), U , Enc(SimdExtract) , F(Move) , EF(________), 0 , 8 , O(GdMem) , O(Xmm) , U , U , U ), - INST(kX86InstIdPextrq , "pextrq" , O_000F3A(16,U,_,W,_), U , Enc(SimdExtract) , F(Move) , EF(________), 0 , 8 , O(GqdMem) , O(Xmm) , U , U , U ), - INST(kX86InstIdPextrw , "pextrw" , O_000F00(C5,U,_,_,_), O_000F3A(15,U,_,_,_), Enc(SimdPextrw) , F(Move) , EF(________), 0 , 8 , O(GdMem) , O(MmXmm) , U , U , U ), - INST(kX86InstIdPf2id , "pf2id" , O_000F0F(1D,U,_,_,_), U , Enc(Simd3dNow) , F(Move) , EF(________), 0 , 8 , O(Mm) , O(MmMem) , U , U , U ), - INST(kX86InstIdPf2iw , "pf2iw" , O_000F0F(1C,U,_,_,_), U , Enc(Simd3dNow) , F(Move) , EF(________), 0 , 8 , O(Mm) , O(MmMem) , U , U , U ), - INST(kX86InstIdPfacc , "pfacc" , O_000F0F(AE,U,_,_,_), U , Enc(Simd3dNow) , F(None) , EF(________), 0 , 0 , O(Mm) , O(MmMem) , U , U , U ), - INST(kX86InstIdPfadd , "pfadd" , O_000F0F(9E,U,_,_,_), U , Enc(Simd3dNow) , F(None) , EF(________), 0 , 0 , O(Mm) , O(MmMem) , U , U , U ), - INST(kX86InstIdPfcmpeq , "pfcmpeq" , O_000F0F(B0,U,_,_,_), U , Enc(Simd3dNow) , F(None) , EF(________), 0 , 0 , O(Mm) , O(MmMem) , U , U , U ), - INST(kX86InstIdPfcmpge , "pfcmpge" , O_000F0F(90,U,_,_,_), U , Enc(Simd3dNow) , F(None) , EF(________), 0 , 0 , O(Mm) , O(MmMem) , U , U , U ), - INST(kX86InstIdPfcmpgt , "pfcmpgt" , O_000F0F(A0,U,_,_,_), U , Enc(Simd3dNow) , F(None) , EF(________), 0 , 0 , O(Mm) , O(MmMem) , U , U , U ), - INST(kX86InstIdPfmax , "pfmax" , O_000F0F(A4,U,_,_,_), U , Enc(Simd3dNow) , F(None) , EF(________), 0 , 0 , O(Mm) , O(MmMem) , U , U , U ), - INST(kX86InstIdPfmin , "pfmin" , O_000F0F(94,U,_,_,_), U , Enc(Simd3dNow) , F(None) , EF(________), 0 , 0 , O(Mm) , O(MmMem) , U , U , U ), - INST(kX86InstIdPfmul , "pfmul" , O_000F0F(B4,U,_,_,_), U , Enc(Simd3dNow) , F(None) , EF(________), 0 , 0 , O(Mm) , O(MmMem) , U , U , U ), - INST(kX86InstIdPfnacc , "pfnacc" , O_000F0F(8A,U,_,_,_), U , Enc(Simd3dNow) , F(None) , EF(________), 0 , 0 , O(Mm) , O(MmMem) , U , U , U ), - INST(kX86InstIdPfpnacc , "pfpnacc" , O_000F0F(8E,U,_,_,_), U , Enc(Simd3dNow) , F(None) , EF(________), 0 , 0 , O(Mm) , O(MmMem) , U , U , U ), - INST(kX86InstIdPfrcp , "pfrcp" , O_000F0F(96,U,_,_,_), U , Enc(Simd3dNow) , F(Move) , EF(________), 0 , 8 , O(Mm) , O(MmMem) , U , U , U ), - INST(kX86InstIdPfrcpit1 , "pfrcpit1" , O_000F0F(A6,U,_,_,_), U , Enc(Simd3dNow) , F(None) , EF(________), 0 , 0 , O(Mm) , O(MmMem) , U , U , U ), - INST(kX86InstIdPfrcpit2 , "pfrcpit2" , O_000F0F(B6,U,_,_,_), U , Enc(Simd3dNow) , F(None) , EF(________), 0 , 0 , O(Mm) , O(MmMem) , U , U , U ), - INST(kX86InstIdPfrsqit1 , "pfrsqit1" , O_000F0F(A7,U,_,_,_), U , Enc(Simd3dNow) , F(None) , EF(________), 0 , 0 , O(Mm) , O(MmMem) , U , U , U ), - INST(kX86InstIdPfrsqrt , "pfrsqrt" , O_000F0F(97,U,_,_,_), U , Enc(Simd3dNow) , F(None) , EF(________), 0 , 0 , O(Mm) , O(MmMem) , U , U , U ), - INST(kX86InstIdPfsub , "pfsub" , O_000F0F(9A,U,_,_,_), U , Enc(Simd3dNow) , F(None) , EF(________), 0 , 0 , O(Mm) , O(MmMem) , U , U , U ), - INST(kX86InstIdPfsubr , "pfsubr" , O_000F0F(AA,U,_,_,_), U , Enc(Simd3dNow) , F(None) , EF(________), 0 , 0 , O(Mm) , O(MmMem) , U , U , U ), - INST(kX86InstIdPhaddd , "phaddd" , O_000F38(02,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPhaddsw , "phaddsw" , O_000F38(03,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPhaddw , "phaddw" , O_000F38(01,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPhminposuw , "phminposuw" , O_660F38(41,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdPhsubd , "phsubd" , O_000F38(06,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPhsubsw , "phsubsw" , O_000F38(07,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPhsubw , "phsubw" , O_000F38(05,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPi2fd , "pi2fd" , O_000F0F(0D,U,_,_,_), U , Enc(Simd3dNow) , F(Move) , EF(________), 0 , 8 , O(Mm) , O(MmMem) , U , U , U ), - INST(kX86InstIdPi2fw , "pi2fw" , O_000F0F(0C,U,_,_,_), U , Enc(Simd3dNow) , F(Move) , EF(________), 0 , 8 , O(Mm) , O(MmMem) , U , U , U ), - INST(kX86InstIdPinsrb , "pinsrb" , O_660F3A(20,U,_,_,_), U , Enc(SimdRmi) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(GdMem) , O(Imm) , U , U ), - INST(kX86InstIdPinsrd , "pinsrd" , O_660F3A(22,U,_,_,_), U , Enc(SimdRmi) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(GdMem) , O(Imm) , U , U ), - INST(kX86InstIdPinsrq , "pinsrq" , O_660F3A(22,U,_,W,_), U , Enc(SimdRmi) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(GqMem) , O(Imm) , U , U ), - INST(kX86InstIdPinsrw , "pinsrw" , O_000F00(C4,U,_,_,_), U , Enc(SimdRmi_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(GdMem) , O(Imm) , U , U ), - INST(kX86InstIdPmaddubsw , "pmaddubsw" , O_000F38(04,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPmaddwd , "pmaddwd" , O_000F00(F5,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPmaxsb , "pmaxsb" , O_660F38(3C,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdPmaxsd , "pmaxsd" , O_660F38(3D,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdPmaxsw , "pmaxsw" , O_000F00(EE,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPmaxub , "pmaxub" , O_000F00(DE,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPmaxud , "pmaxud" , O_660F38(3F,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdPmaxuw , "pmaxuw" , O_660F38(3E,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdPminsb , "pminsb" , O_660F38(38,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdPminsd , "pminsd" , O_660F38(39,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdPminsw , "pminsw" , O_000F00(EA,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPminub , "pminub" , O_000F00(DA,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPminud , "pminud" , O_660F38(3B,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdPminuw , "pminuw" , O_660F38(3A,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdPmovmskb , "pmovmskb" , O_000F00(D7,U,_,_,_), U , Enc(SimdRm_PQ) , F(Move) , EF(________), 0 , 8 , O(Gqd) , O(MmXmm) , U , U , U ), - INST(kX86InstIdPmovsxbd , "pmovsxbd" , O_660F38(21,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdPmovsxbq , "pmovsxbq" , O_660F38(22,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdPmovsxbw , "pmovsxbw" , O_660F38(20,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdPmovsxdq , "pmovsxdq" , O_660F38(25,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdPmovsxwd , "pmovsxwd" , O_660F38(23,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdPmovsxwq , "pmovsxwq" , O_660F38(24,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdPmovzxbd , "pmovzxbd" , O_660F38(31,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdPmovzxbq , "pmovzxbq" , O_660F38(32,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdPmovzxbw , "pmovzxbw" , O_660F38(30,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdPmovzxdq , "pmovzxdq" , O_660F38(35,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdPmovzxwd , "pmovzxwd" , O_660F38(33,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdPmovzxwq , "pmovzxwq" , O_660F38(34,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdPmuldq , "pmuldq" , O_660F38(28,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdPmulhrsw , "pmulhrsw" , O_000F38(0B,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPmulhuw , "pmulhuw" , O_000F00(E4,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPmulhw , "pmulhw" , O_000F00(E5,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPmulld , "pmulld" , O_660F38(40,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdPmullw , "pmullw" , O_000F00(D5,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPmuludq , "pmuludq" , O_000F00(F4,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPop , "pop" , O_000000(8F,0,_,_,_), O_000000(58,U,_,_,_), Enc(X86Pop) , F(None)|F(Special) , EF(________), 0 , 0 , 0 , U , U , U , U ), - INST(kX86InstIdPopa , "popa" , O_000000(61,U,_,_,_), U , Enc(X86Op) , F(None)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdPopcnt , "popcnt" , O_F30F00(B8,U,_,_,_), U , Enc(X86RegRm) , F(None) , EF(WWWWWW__), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdPopf , "popf" , O_000000(9D,U,_,_,_), U , Enc(X86Op) , F(None)|F(Special) , EF(WWWWWWWW), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdPor , "por" , O_000F00(EB,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPrefetch , "prefetch" , O_000F00(18,U,_,_,_), U , Enc(X86Prefetch) , F(None) , EF(________), 0 , 0 , O(Mem) , O(Imm) , U , U , U ), - INST(kX86InstIdPrefetch3dNow , "prefetch_3dnow" , O_000F00(0D,0,_,_,_), U , Enc(X86M) , F(None) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdPrefetchw3dNow , "prefetchw_3dnow" , O_000F00(0D,1,_,_,_), U , Enc(X86M) , F(None) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdPsadbw , "psadbw" , O_000F00(F6,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPshufb , "pshufb" , O_000F38(00,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPshufd , "pshufd" , O_660F00(70,U,_,_,_), U , Enc(SimdRmi) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , O(Imm) , U , U ), - INST(kX86InstIdPshufhw , "pshufhw" , O_F30F00(70,U,_,_,_), U , Enc(SimdRmi) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , O(Imm) , U , U ), - INST(kX86InstIdPshuflw , "pshuflw" , O_F20F00(70,U,_,_,_), U , Enc(SimdRmi) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , O(Imm) , U , U ), - INST(kX86InstIdPshufw , "pshufw" , O_000F00(70,U,_,_,_), U , Enc(SimdRmi_P) , F(Move) , EF(________), 0 , 8 , O(Mm) , O(MmMem) , O(Imm) , U , U ), - INST(kX86InstIdPsignb , "psignb" , O_000F38(08,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPsignd , "psignd" , O_000F38(0A,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPsignw , "psignw" , O_000F38(09,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPslld , "pslld" , O_000F00(F2,U,_,_,_), O_000F00(72,6,_,_,_), Enc(SimdRmRi_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem)|O(Imm), U , U , U ), - INST(kX86InstIdPslldq , "pslldq" , U , O_660F00(73,7,_,_,_), Enc(SimdRmRi) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(Imm) , U , U , U ), - INST(kX86InstIdPsllq , "psllq" , O_000F00(F3,U,_,_,_), O_000F00(73,6,_,_,_), Enc(SimdRmRi_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem)|O(Imm), U , U , U ), - INST(kX86InstIdPsllw , "psllw" , O_000F00(F1,U,_,_,_), O_000F00(71,6,_,_,_), Enc(SimdRmRi_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem)|O(Imm), U , U , U ), - INST(kX86InstIdPsrad , "psrad" , O_000F00(E2,U,_,_,_), O_000F00(72,4,_,_,_), Enc(SimdRmRi_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem)|O(Imm), U , U , U ), - INST(kX86InstIdPsraw , "psraw" , O_000F00(E1,U,_,_,_), O_000F00(71,4,_,_,_), Enc(SimdRmRi_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem)|O(Imm), U , U , U ), - INST(kX86InstIdPsrld , "psrld" , O_000F00(D2,U,_,_,_), O_000F00(72,2,_,_,_), Enc(SimdRmRi_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem)|O(Imm), U , U , U ), - INST(kX86InstIdPsrldq , "psrldq" , U , O_660F00(73,3,_,_,_), Enc(SimdRmRi) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(Imm) , U , U , U ), - INST(kX86InstIdPsrlq , "psrlq" , O_000F00(D3,U,_,_,_), O_000F00(73,2,_,_,_), Enc(SimdRmRi_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem)|O(Imm), U , U , U ), - INST(kX86InstIdPsrlw , "psrlw" , O_000F00(D1,U,_,_,_), O_000F00(71,2,_,_,_), Enc(SimdRmRi_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem)|O(Imm), U , U , U ), - INST(kX86InstIdPsubb , "psubb" , O_000F00(F8,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPsubd , "psubd" , O_000F00(FA,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPsubq , "psubq" , O_000F00(FB,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPsubsb , "psubsb" , O_000F00(E8,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPsubsw , "psubsw" , O_000F00(E9,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPsubusb , "psubusb" , O_000F00(D8,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPsubusw , "psubusw" , O_000F00(D9,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPsubw , "psubw" , O_000F00(F9,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPswapd , "pswapd" , O_000F0F(BB,U,_,_,_), U , Enc(Simd3dNow) , F(Move) , EF(________), 0 , 8 , O(Mm) , O(MmMem) , U , U , U ), - INST(kX86InstIdPtest , "ptest" , O_660F38(17,U,_,_,_), U , Enc(SimdRm) , F(Test) , EF(WWWWWW__), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdPunpckhbw , "punpckhbw" , O_000F00(68,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPunpckhdq , "punpckhdq" , O_000F00(6A,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPunpckhqdq , "punpckhqdq" , O_660F00(6D,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdPunpckhwd , "punpckhwd" , O_000F00(69,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPunpcklbw , "punpcklbw" , O_000F00(60,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPunpckldq , "punpckldq" , O_000F00(62,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPunpcklqdq , "punpcklqdq" , O_660F00(6C,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdPunpcklwd , "punpcklwd" , O_000F00(61,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdPush , "push" , O_000000(FF,6,_,_,_), O_000000(50,U,_,_,_), Enc(X86Push) , F(None)|F(Special) , EF(________), 0 , 0 , 0 , U , U , U , U ), - INST(kX86InstIdPusha , "pusha" , O_000000(60,U,_,_,_), U , Enc(X86Op) , F(None)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdPushf , "pushf" , O_000000(9C,U,_,_,_), U , Enc(X86Op) , F(None)|F(Special) , EF(RRRRRRRR), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdPxor , "pxor" , O_000F00(EF,U,_,_,_), U , Enc(SimdRm_P) , F(None) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), - INST(kX86InstIdRcl , "rcl" , O_000000(D0,2,_,_,_), U , Enc(X86Rot) , F(None)|F(Special) , EF(W____X__), 0 , 0 , O(GqdwbMem) , O(Gb)|O(Imm) , U , U , U ), - INST(kX86InstIdRcpps , "rcpps" , O_000F00(53,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdRcpss , "rcpss" , O_F30F00(53,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 4 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdRcr , "rcr" , O_000000(D0,3,_,_,_), U , Enc(X86Rot) , F(None)|F(Special) , EF(W____X__), 0 , 0 , O(GqdwbMem) , O(Gb)|O(Imm) , U , U , U ), - INST(kX86InstIdRdfsbase , "rdfsbase" , O_F30F00(AE,0,_,_,_), U , Enc(X86Rm) , F(Move) , EF(________), 0 , 8 , O(Gqd) , U , U , U , U ), - INST(kX86InstIdRdgsbase , "rdgsbase" , O_F30F00(AE,1,_,_,_), U , Enc(X86Rm) , F(Move) , EF(________), 0 , 8 , O(Gqd) , U , U , U , U ), - INST(kX86InstIdRdrand , "rdrand" , O_000F00(C7,6,_,_,_), U , Enc(X86Rm) , F(Move) , EF(WWWWWW__), 0 , 8 , O(Gqdw) , U , U , U , U ), - INST(kX86InstIdRdtsc , "rdtsc" , O_000F00(31,U,_,_,_), U , Enc(X86Op) , F(None)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdRdtscp , "rdtscp" , O_000F01(F9,U,_,_,_), U , Enc(X86Op) , F(None)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdRepLodsB , "rep lods_b" , O_000000(AC,1,_,_,_), U , Enc(X86Rep) , F(None)|F(Special) , EF(______R_), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdRepLodsD , "rep lods_d" , O_000000(AD,1,_,_,_), U , Enc(X86Rep) , F(None)|F(Special) , EF(______R_), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdRepLodsQ , "rep lods_q" , O_000000(AD,1,_,W,_), U , Enc(X86Rep) , F(None)|F(Special) , EF(______R_), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdRepLodsW , "rep lods_w" , O_660000(AD,1,_,_,_), U , Enc(X86Rep) , F(None)|F(Special) , EF(______R_), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdRepMovsB , "rep movs_b" , O_000000(A4,1,_,_,_), U , Enc(X86Rep) , F(None)|F(Special) , EF(______R_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), - INST(kX86InstIdRepMovsD , "rep movs_d" , O_000000(A5,1,_,_,_), U , Enc(X86Rep) , F(None)|F(Special) , EF(______R_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), - INST(kX86InstIdRepMovsQ , "rep movs_q" , O_000000(A5,1,_,W,_), U , Enc(X86Rep) , F(None)|F(Special) , EF(______R_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), - INST(kX86InstIdRepMovsW , "rep movs_w" , O_660000(A5,1,_,_,_), U , Enc(X86Rep) , F(None)|F(Special) , EF(______R_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), - INST(kX86InstIdRepStosB , "rep stos_b" , O_000000(AA,1,_,_,_), U , Enc(X86Rep) , F(None)|F(Special) , EF(______R_), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdRepStosD , "rep stos_d" , O_000000(AB,1,_,_,_), U , Enc(X86Rep) , F(None)|F(Special) , EF(______R_), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdRepStosQ , "rep stos_q" , O_000000(AB,1,_,W,_), U , Enc(X86Rep) , F(None)|F(Special) , EF(______R_), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdRepStosW , "rep stos_w" , O_660000(AB,1,_,_,_), U , Enc(X86Rep) , F(None)|F(Special) , EF(______R_), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdRepeCmpsB , "repe cmps_b" , O_000000(A6,1,_,_,_), U , Enc(X86Rep) , F(None)|F(Special) , EF(WWWWWWR_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), - INST(kX86InstIdRepeCmpsD , "repe cmps_d" , O_000000(A7,1,_,_,_), U , Enc(X86Rep) , F(None)|F(Special) , EF(WWWWWWR_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), - INST(kX86InstIdRepeCmpsQ , "repe cmps_q" , O_000000(A7,1,_,W,_), U , Enc(X86Rep) , F(None)|F(Special) , EF(WWWWWWR_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), - INST(kX86InstIdRepeCmpsW , "repe cmps_w" , O_660000(A7,1,_,_,_), U , Enc(X86Rep) , F(None)|F(Special) , EF(WWWWWWR_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), - INST(kX86InstIdRepeScasB , "repe scas_b" , O_000000(AE,1,_,_,_), U , Enc(X86Rep) , F(None)|F(Special) , EF(WWWWWWR_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), - INST(kX86InstIdRepeScasD , "repe scas_d" , O_000000(AF,1,_,_,_), U , Enc(X86Rep) , F(None)|F(Special) , EF(WWWWWWR_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), - INST(kX86InstIdRepeScasQ , "repe scas_q" , O_000000(AF,1,_,W,_), U , Enc(X86Rep) , F(None)|F(Special) , EF(WWWWWWR_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), - INST(kX86InstIdRepeScasW , "repe scas_w" , O_660000(AF,1,_,_,_), U , Enc(X86Rep) , F(None)|F(Special) , EF(WWWWWWR_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), - INST(kX86InstIdRepneCmpsB , "repne cmps_b" , O_000000(A6,0,_,_,_), U , Enc(X86Rep) , F(None)|F(Special) , EF(WWWWWWR_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), - INST(kX86InstIdRepneCmpsD , "repne cmps_d" , O_000000(A7,0,_,_,_), U , Enc(X86Rep) , F(None)|F(Special) , EF(WWWWWWR_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), - INST(kX86InstIdRepneCmpsQ , "repne cmps_q" , O_000000(A7,0,_,W,_), U , Enc(X86Rep) , F(None)|F(Special) , EF(WWWWWWR_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), - INST(kX86InstIdRepneCmpsW , "repne cmps_w" , O_660000(A7,0,_,_,_), U , Enc(X86Rep) , F(None)|F(Special) , EF(WWWWWWR_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), - INST(kX86InstIdRepneScasB , "repne scas_b" , O_000000(AE,0,_,_,_), U , Enc(X86Rep) , F(None)|F(Special) , EF(WWWWWWR_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), - INST(kX86InstIdRepneScasD , "repne scas_d" , O_000000(AF,0,_,_,_), U , Enc(X86Rep) , F(None)|F(Special) , EF(WWWWWWR_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), - INST(kX86InstIdRepneScasQ , "repne scas_q" , O_000000(AF,0,_,W,_), U , Enc(X86Rep) , F(None)|F(Special) , EF(WWWWWWR_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), - INST(kX86InstIdRepneScasW , "repne scas_w" , O_660000(AF,0,_,_,_), U , Enc(X86Rep) , F(None)|F(Special) , EF(WWWWWWR_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), - INST(kX86InstIdRet , "ret" , O_000000(C2,U,_,_,_), U , Enc(X86Ret) , F(None)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdRol , "rol" , O_000000(D0,0,_,_,_), U , Enc(X86Rot) , F(None)|F(Special) , EF(W____W__), 0 , 0 , O(GqdwbMem) , O(Gb)|O(Imm) , U , U , U ), - INST(kX86InstIdRor , "ror" , O_000000(D0,1,_,_,_), U , Enc(X86Rot) , F(None)|F(Special) , EF(W____W__), 0 , 0 , O(GqdwbMem) , O(Gb)|O(Imm) , U , U , U ), - INST(kX86InstIdRorx , "rorx" , O_F20F3A(F0,U,_,_,_), U , Enc(AvxRmi_OptW) , F(None) , EF(________), 0 , 0 , O(Gqd) , O(GqdMem) , O(Imm) , U , U ), - INST(kX86InstIdRoundpd , "roundpd" , O_660F3A(09,U,_,_,_), U , Enc(SimdRmi) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , O(Imm) , U , U ), - INST(kX86InstIdRoundps , "roundps" , O_660F3A(08,U,_,_,_), U , Enc(SimdRmi) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , O(Imm) , U , U ), - INST(kX86InstIdRoundsd , "roundsd" , O_660F3A(0B,U,_,_,_), U , Enc(SimdRmi) , F(Move) , EF(________), 0 , 8 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), - INST(kX86InstIdRoundss , "roundss" , O_660F3A(0A,U,_,_,_), U , Enc(SimdRmi) , F(Move) , EF(________), 0 , 4 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), - INST(kX86InstIdRsqrtps , "rsqrtps" , O_000F00(52,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdRsqrtss , "rsqrtss" , O_F30F00(52,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 4 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdSahf , "sahf" , O_000000(9E,U,_,_,_), U , Enc(X86Op) , F(None)|F(Special) , EF(_WWWWW__), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdSal , "sal" , O_000000(D0,4,_,_,_), U , Enc(X86Rot) , F(None)|F(Special) , EF(WWWUWW__), 0 , 0 , O(GqdwbMem) , O(Gb)|O(Imm) , U , U , U ), - INST(kX86InstIdSar , "sar" , O_000000(D0,7,_,_,_), U , Enc(X86Rot) , F(None)|F(Special) , EF(WWWUWW__), 0 , 0 , O(GqdwbMem) , O(Gb)|O(Imm) , U , U , U ), - INST(kX86InstIdSarx , "sarx" , O_F30F38(F7,U,_,_,_), U , Enc(AvxRmv_OptW) , F(None) , EF(________), 0 , 0 , O(Gqd) , O(GqdMem) , O(Gqd) , U , U ), - INST(kX86InstIdSbb , "sbb" , O_000000(18,3,_,_,_), U , Enc(X86Arith) , F(Lock) , EF(WWWWWX__), 0 , 0 , O(GqdwbMem) , O(GqdwbMem)|O(Imm), U , U , U ), - INST(kX86InstIdScasB , "scas_b" , O_000000(AE,U,_,_,_), U , Enc(X86Op) , F(None)|F(Special) , EF(WWWWWWR_), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdScasD , "scas_d" , O_000000(AF,U,_,_,_), U , Enc(X86Op) , F(None)|F(Special) , EF(WWWWWWR_), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdScasQ , "scas_q" , O_000000(AF,U,_,W,_), U , Enc(X86Op) , F(None)|F(Special) , EF(WWWWWWR_), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdScasW , "scas_w" , O_000000(AF,U,_,_,_), U , Enc(X86Op_66H) , F(None)|F(Special) , EF(WWWWWWR_), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdSeta , "seta" , O_000F00(97,U,_,_,_), U , Enc(X86Set) , F(Move) , EF(__R__R__), 0 , 1 , O(GbMem) , U , U , U , U ), - INST(kX86InstIdSetae , "setae" , O_000F00(93,U,_,_,_), U , Enc(X86Set) , F(Move) , EF(_____R__), 0 , 1 , O(GbMem) , U , U , U , U ), - INST(kX86InstIdSetb , "setb" , O_000F00(92,U,_,_,_), U , Enc(X86Set) , F(Move) , EF(_____R__), 0 , 1 , O(GbMem) , U , U , U , U ), - INST(kX86InstIdSetbe , "setbe" , O_000F00(96,U,_,_,_), U , Enc(X86Set) , F(Move) , EF(__R__R__), 0 , 1 , O(GbMem) , U , U , U , U ), - INST(kX86InstIdSetc , "setc" , O_000F00(92,U,_,_,_), U , Enc(X86Set) , F(Move) , EF(_____R__), 0 , 1 , O(GbMem) , U , U , U , U ), - INST(kX86InstIdSete , "sete" , O_000F00(94,U,_,_,_), U , Enc(X86Set) , F(Move) , EF(__R_____), 0 , 1 , O(GbMem) , U , U , U , U ), - INST(kX86InstIdSetg , "setg" , O_000F00(9F,U,_,_,_), U , Enc(X86Set) , F(Move) , EF(RRR_____), 0 , 1 , O(GbMem) , U , U , U , U ), - INST(kX86InstIdSetge , "setge" , O_000F00(9D,U,_,_,_), U , Enc(X86Set) , F(Move) , EF(RR______), 0 , 1 , O(GbMem) , U , U , U , U ), - INST(kX86InstIdSetl , "setl" , O_000F00(9C,U,_,_,_), U , Enc(X86Set) , F(Move) , EF(RR______), 0 , 1 , O(GbMem) , U , U , U , U ), - INST(kX86InstIdSetle , "setle" , O_000F00(9E,U,_,_,_), U , Enc(X86Set) , F(Move) , EF(RRR_____), 0 , 1 , O(GbMem) , U , U , U , U ), - INST(kX86InstIdSetna , "setna" , O_000F00(96,U,_,_,_), U , Enc(X86Set) , F(Move) , EF(__R__R__), 0 , 1 , O(GbMem) , U , U , U , U ), - INST(kX86InstIdSetnae , "setnae" , O_000F00(92,U,_,_,_), U , Enc(X86Set) , F(Move) , EF(_____R__), 0 , 1 , O(GbMem) , U , U , U , U ), - INST(kX86InstIdSetnb , "setnb" , O_000F00(93,U,_,_,_), U , Enc(X86Set) , F(Move) , EF(_____R__), 0 , 1 , O(GbMem) , U , U , U , U ), - INST(kX86InstIdSetnbe , "setnbe" , O_000F00(97,U,_,_,_), U , Enc(X86Set) , F(Move) , EF(__R__R__), 0 , 1 , O(GbMem) , U , U , U , U ), - INST(kX86InstIdSetnc , "setnc" , O_000F00(93,U,_,_,_), U , Enc(X86Set) , F(Move) , EF(_____R__), 0 , 1 , O(GbMem) , U , U , U , U ), - INST(kX86InstIdSetne , "setne" , O_000F00(95,U,_,_,_), U , Enc(X86Set) , F(Move) , EF(__R_____), 0 , 1 , O(GbMem) , U , U , U , U ), - INST(kX86InstIdSetng , "setng" , O_000F00(9E,U,_,_,_), U , Enc(X86Set) , F(Move) , EF(RRR_____), 0 , 1 , O(GbMem) , U , U , U , U ), - INST(kX86InstIdSetnge , "setnge" , O_000F00(9C,U,_,_,_), U , Enc(X86Set) , F(Move) , EF(RR______), 0 , 1 , O(GbMem) , U , U , U , U ), - INST(kX86InstIdSetnl , "setnl" , O_000F00(9D,U,_,_,_), U , Enc(X86Set) , F(Move) , EF(RR______), 0 , 1 , O(GbMem) , U , U , U , U ), - INST(kX86InstIdSetnle , "setnle" , O_000F00(9F,U,_,_,_), U , Enc(X86Set) , F(Move) , EF(RRR_____), 0 , 1 , O(GbMem) , U , U , U , U ), - INST(kX86InstIdSetno , "setno" , O_000F00(91,U,_,_,_), U , Enc(X86Set) , F(Move) , EF(R_______), 0 , 1 , O(GbMem) , U , U , U , U ), - INST(kX86InstIdSetnp , "setnp" , O_000F00(9B,U,_,_,_), U , Enc(X86Set) , F(Move) , EF(____R___), 0 , 1 , O(GbMem) , U , U , U , U ), - INST(kX86InstIdSetns , "setns" , O_000F00(99,U,_,_,_), U , Enc(X86Set) , F(Move) , EF(_R______), 0 , 1 , O(GbMem) , U , U , U , U ), - INST(kX86InstIdSetnz , "setnz" , O_000F00(95,U,_,_,_), U , Enc(X86Set) , F(Move) , EF(__R_____), 0 , 1 , O(GbMem) , U , U , U , U ), - INST(kX86InstIdSeto , "seto" , O_000F00(90,U,_,_,_), U , Enc(X86Set) , F(Move) , EF(R_______), 0 , 1 , O(GbMem) , U , U , U , U ), - INST(kX86InstIdSetp , "setp" , O_000F00(9A,U,_,_,_), U , Enc(X86Set) , F(Move) , EF(____R___), 0 , 1 , O(GbMem) , U , U , U , U ), - INST(kX86InstIdSetpe , "setpe" , O_000F00(9A,U,_,_,_), U , Enc(X86Set) , F(Move) , EF(____R___), 0 , 1 , O(GbMem) , U , U , U , U ), - INST(kX86InstIdSetpo , "setpo" , O_000F00(9B,U,_,_,_), U , Enc(X86Set) , F(Move) , EF(____R___), 0 , 1 , O(GbMem) , U , U , U , U ), - INST(kX86InstIdSets , "sets" , O_000F00(98,U,_,_,_), U , Enc(X86Set) , F(Move) , EF(_R______), 0 , 1 , O(GbMem) , U , U , U , U ), - INST(kX86InstIdSetz , "setz" , O_000F00(94,U,_,_,_), U , Enc(X86Set) , F(Move) , EF(__R_____), 0 , 1 , O(GbMem) , U , U , U , U ), - INST(kX86InstIdSfence , "sfence" , O_000F00(AE,7,_,_,_), U , Enc(X86Fence) , F(None) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdShl , "shl" , O_000000(D0,4,_,_,_), U , Enc(X86Rot) , F(None)|F(Special) , EF(WWWUWW__), 0 , 0 , O(GqdwbMem) , O(Gb)|O(Imm) , U , U , U ), - INST(kX86InstIdShld , "shld" , O_000F00(A4,U,_,_,_), U , Enc(X86Shlrd) , F(None)|F(Special) , EF(UWWUWW__), 0 , 0 , O(GqdwbMem) , O(Gb) , U , U , U ), - INST(kX86InstIdShlx , "shlx" , O_660F38(F7,U,_,_,_), U , Enc(AvxRmv_OptW) , F(None) , EF(________), 0 , 0 , O(Gqd) , O(GqdMem) , O(Gqd) , U , U ), - INST(kX86InstIdShr , "shr" , O_000000(D0,5,_,_,_), U , Enc(X86Rot) , F(None)|F(Special) , EF(WWWUWW__), 0 , 0 , O(GqdwbMem) , O(Gb)|O(Imm) , U , U , U ), - INST(kX86InstIdShrd , "shrd" , O_000F00(AC,U,_,_,_), U , Enc(X86Shlrd) , F(None)|F(Special) , EF(UWWUWW__), 0 , 0 , O(GqdwbMem) , O(Gqdwb) , U , U , U ), - INST(kX86InstIdShrx , "shrx" , O_F20F38(F7,U,_,_,_), U , Enc(AvxRmv_OptW) , F(None) , EF(________), 0 , 0 , O(Gqd) , O(GqdMem) , O(Gqd) , U , U ), - INST(kX86InstIdShufpd , "shufpd" , O_660F00(C6,U,_,_,_), U , Enc(SimdRmi) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), - INST(kX86InstIdShufps , "shufps" , O_000F00(C6,U,_,_,_), U , Enc(SimdRmi) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), - INST(kX86InstIdSqrtpd , "sqrtpd" , O_660F00(51,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdSqrtps , "sqrtps" , O_000F00(51,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdSqrtsd , "sqrtsd" , O_F20F00(51,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 8 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdSqrtss , "sqrtss" , O_F30F00(51,U,_,_,_), U , Enc(SimdRm) , F(Move) , EF(________), 0 , 4 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdStc , "stc" , O_000000(F9,U,_,_,_), U , Enc(X86Op) , F(None) , EF(_____W__), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdStd , "std" , O_000000(FD,U,_,_,_), U , Enc(X86Op) , F(None) , EF(______W_), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdStmxcsr , "stmxcsr" , O_000F00(AE,3,_,_,_), U , Enc(X86M) , F(None) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdStosB , "stos_b" , O_000000(AA,U,_,_,_), U , Enc(X86Op) , F(None)|F(Special) , EF(______R_), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdStosD , "stos_d" , O_000000(AB,U,_,_,_), U , Enc(X86Op) , F(None)|F(Special) , EF(______R_), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdStosQ , "stos_q" , O_000000(AB,U,_,W,_), U , Enc(X86Op) , F(None)|F(Special) , EF(______R_), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdStosW , "stos_w" , O_000000(AB,U,_,_,_), U , Enc(X86Op_66H) , F(None)|F(Special) , EF(______R_), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdSub , "sub" , O_000000(28,5,_,_,_), U , Enc(X86Arith) , F(Lock) , EF(WWWWWW__), 0 , 0 , O(GqdwbMem) , O(GqdwbMem)|O(Imm), U , U , U ), - INST(kX86InstIdSubpd , "subpd" , O_660F00(5C,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdSubps , "subps" , O_000F00(5C,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdSubsd , "subsd" , O_F20F00(5C,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdSubss , "subss" , O_F30F00(5C,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdTest , "test" , O_000000(84,U,_,_,_), O_000000(F6,U,_,_,_), Enc(X86Test) , F(Test) , EF(WWWUWW__), 0 , 0 , O(GqdwbMem) , O(Gqdwb)|O(Imm) , U , U , U ), - INST(kX86InstIdTzcnt , "tzcnt" , O_F30F00(BC,U,_,_,_), U , Enc(X86RegRm) , F(Move) , EF(UUWUUW__), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), - INST(kX86InstIdUcomisd , "ucomisd" , O_660F00(2E,U,_,_,_), U , Enc(SimdRm) , F(Test) , EF(WWWWWW__), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdUcomiss , "ucomiss" , O_000F00(2E,U,_,_,_), U , Enc(SimdRm) , F(Test) , EF(WWWWWW__), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdUd2 , "ud2" , O_000F00(0B,U,_,_,_), U , Enc(X86Op) , F(None) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdUnpckhpd , "unpckhpd" , O_660F00(15,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdUnpckhps , "unpckhps" , O_000F00(15,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdUnpcklpd , "unpcklpd" , O_660F00(14,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdUnpcklps , "unpcklps" , O_000F00(14,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVaddpd , "vaddpd" , O_660F00(58,U,_,I,1), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVaddps , "vaddps" , O_000F00(58,U,_,I,0), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVaddsd , "vaddsd" , O_F20F00(58,U,0,I,1), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVaddss , "vaddss" , O_F30F00(58,U,0,I,0), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVaddsubpd , "vaddsubpd" , O_660F00(D0,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVaddsubps , "vaddsubps" , O_F20F00(D0,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVaesdec , "vaesdec" , O_660F38(DE,U,_,_,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVaesdeclast , "vaesdeclast" , O_660F38(DF,U,_,_,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVaesenc , "vaesenc" , O_660F38(DC,U,_,_,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVaesenclast , "vaesenclast" , O_660F38(DD,U,_,_,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVaesimc , "vaesimc" , O_660F38(DB,U,_,_,_), U , Enc(AvxRm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVaeskeygenassist , "vaeskeygenassist" , O_660F3A(DF,U,_,_,_), U , Enc(AvxRmi) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), - INST(kX86InstIdVandnpd , "vandnpd" , O_660F00(55,U,_,_,1), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVandnps , "vandnps" , O_000F00(55,U,_,_,0), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVandpd , "vandpd" , O_660F00(54,U,_,_,1), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVandps , "vandps" , O_000F00(54,U,_,_,0), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVblendpd , "vblendpd" , O_660F3A(0D,U,_,_,_), U , Enc(AvxRvmi_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(Imm) , U ), - INST(kX86InstIdVblendps , "vblendps" , O_660F3A(0C,U,_,_,_), U , Enc(AvxRvmi_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(Imm) , U ), - INST(kX86InstIdVblendvpd , "vblendvpd" , O_660F3A(4B,U,_,_,_), U , Enc(AvxRvmr_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(Xy) , U ), - INST(kX86InstIdVblendvps , "vblendvps" , O_660F3A(4A,U,_,_,_), U , Enc(AvxRvmr_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(Xy) , U ), - INST(kX86InstIdVbroadcastf128 , "vbroadcastf128" , O_660F38(1A,U,L,_,_), U , Enc(AvxRm) , F(Avx) , EF(________), 0 , 0 , O(Ymm) , O(Mem) , U , U , U ), - INST(kX86InstIdVbroadcasti128 , "vbroadcasti128" , O_660F38(5A,U,L,_,_), U , Enc(AvxRm) , F(Avx) , EF(________), 0 , 0 , O(Ymm) , O(Mem) , U , U , U ), - INST(kX86InstIdVbroadcastsd , "vbroadcastsd" , O_660F38(19,U,L,0,1), U , Enc(AvxRm) , F(Avx) , EF(________), 0 , 0 , O(Ymm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVbroadcastss , "vbroadcastss" , O_660F38(18,U,_,0,0), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVcmppd , "vcmppd" , O_660F00(C2,U,_,_,_), U , Enc(AvxRvmi_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(Imm) , U ), - INST(kX86InstIdVcmpps , "vcmpps" , O_000F00(C2,U,_,_,_), U , Enc(AvxRvmi_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(Imm) , U ), - INST(kX86InstIdVcmpsd , "vcmpsd" , O_F20F00(C2,U,_,_,_), U , Enc(AvxRvmi) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Imm) , U ), - INST(kX86InstIdVcmpss , "vcmpss" , O_F30F00(C2,U,_,_,_), U , Enc(AvxRvmi) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Imm) , U ), - INST(kX86InstIdVcomisd , "vcomisd" , O_660F00(2F,U,_,_,_), U , Enc(AvxRm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVcomiss , "vcomiss" , O_000F00(2F,U,_,_,_), U , Enc(AvxRm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVcvtdq2pd , "vcvtdq2pd" , O_F30F00(E6,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVcvtdq2ps , "vcvtdq2ps" , O_000F00(5B,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), - INST(kX86InstIdVcvtpd2dq , "vcvtpd2dq" , O_F20F00(E6,U,_,_,_), U , Enc(AvxRm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XyMem) , U , U , U ), - INST(kX86InstIdVcvtpd2ps , "vcvtpd2ps" , O_660F00(5A,U,_,_,_), U , Enc(AvxRm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XyMem) , U , U , U ), - INST(kX86InstIdVcvtph2ps , "vcvtph2ps" , O_660F38(13,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVcvtps2dq , "vcvtps2dq" , O_660F00(5B,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), - INST(kX86InstIdVcvtps2pd , "vcvtps2pd" , O_000F00(5A,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVcvtps2ph , "vcvtps2ph" , O_660F3A(1D,U,_,_,_), U , Enc(AvxMri_OptL) , F(Avx) , EF(________), 0 , 0 , O(XmmMem) , O(Xy) , O(Imm) , U , U ), - INST(kX86InstIdVcvtsd2si , "vcvtsd2si" , O_F20F00(2D,U,_,_,_), U , Enc(AvxRm) , F(Avx) , EF(________), 0 , 0 , O(Gqd) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVcvtsd2ss , "vcvtsd2ss" , O_F20F00(5A,U,_,_,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVcvtsi2sd , "vcvtsi2sd" , O_F20F00(2A,U,_,_,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(GqdMem) , U , U ), - INST(kX86InstIdVcvtsi2ss , "vcvtsi2ss" , O_F30F00(2A,U,_,_,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(GqdMem) , U , U ), - INST(kX86InstIdVcvtss2sd , "vcvtss2sd" , O_F30F00(5A,U,_,_,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVcvtss2si , "vcvtss2si" , O_F20F00(2D,U,_,_,_), U , Enc(AvxRm) , F(Avx) , EF(________), 0 , 0 , O(Gqd) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVcvttpd2dq , "vcvttpd2dq" , O_660F00(E6,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XyMem) , U , U , U ), - INST(kX86InstIdVcvttps2dq , "vcvttps2dq" , O_F30F00(5B,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), - INST(kX86InstIdVcvttsd2si , "vcvttsd2si" , O_F20F00(2C,U,_,_,_), U , Enc(AvxRm) , F(Avx) , EF(________), 0 , 0 , O(Gqd) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVcvttss2si , "vcvttss2si" , O_F30F00(2C,U,_,_,_), U , Enc(AvxRm) , F(Avx) , EF(________), 0 , 0 , O(Gqd) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVdivpd , "vdivpd" , O_660F00(5E,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVdivps , "vdivps" , O_000F00(5E,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVdivsd , "vdivsd" , O_F20F00(5E,U,_,_,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVdivss , "vdivss" , O_F30F00(5E,U,_,_,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVdppd , "vdppd" , O_660F3A(41,U,_,_,_), U , Enc(AvxRvmi) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Imm) , U ), - INST(kX86InstIdVdpps , "vdpps" , O_660F3A(40,U,_,_,_), U , Enc(AvxRvmi_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(Imm) , U ), - INST(kX86InstIdVextractf128 , "vextractf128" , O_660F3A(19,U,L,_,_), U , Enc(AvxMri) , F(Avx) , EF(________), 0 , 0 , O(XmmMem) , O(Ymm) , O(Imm) , U , U ), - INST(kX86InstIdVextracti128 , "vextracti128" , O_660F3A(39,U,L,_,_), U , Enc(AvxMri) , F(Avx) , EF(________), 0 , 0 , O(XmmMem) , O(Ymm) , O(Imm) , U , U ), - INST(kX86InstIdVextractps , "vextractps" , O_660F3A(17,U,_,_,_), U , Enc(AvxMri) , F(Avx) , EF(________), 0 , 0 , O(GqdMem) , O(Xmm) , O(Imm) , U , U ), - INST(kX86InstIdVfmadd132pd , "vfmadd132pd" , O_660F38(98,U,_,W,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfmadd132ps , "vfmadd132ps" , O_660F38(98,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfmadd132sd , "vfmadd132sd" , O_660F38(99,U,_,W,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVfmadd132ss , "vfmadd132ss" , O_660F38(99,U,_,_,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVfmadd213pd , "vfmadd213pd" , O_660F38(A8,U,_,W,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfmadd213ps , "vfmadd213ps" , O_660F38(A8,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfmadd213sd , "vfmadd213sd" , O_660F38(A9,U,_,W,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVfmadd213ss , "vfmadd213ss" , O_660F38(A9,U,_,_,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVfmadd231pd , "vfmadd231pd" , O_660F38(B8,U,_,W,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfmadd231ps , "vfmadd231ps" , O_660F38(B8,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfmadd231sd , "vfmadd231sd" , O_660F38(B9,U,_,W,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVfmadd231ss , "vfmadd231ss" , O_660F38(B9,U,_,_,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVfmaddpd , "vfmaddpd" , O_660F3A(69,U,_,_,_), U , Enc(Fma4_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U ), - INST(kX86InstIdVfmaddps , "vfmaddps" , O_660F3A(68,U,_,_,_), U , Enc(Fma4_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U ), - INST(kX86InstIdVfmaddsd , "vfmaddsd" , O_660F3A(6B,U,_,_,_), U , Enc(Fma4) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(XmmMem) , U ), - INST(kX86InstIdVfmaddss , "vfmaddss" , O_660F3A(6A,U,_,_,_), U , Enc(Fma4) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(XmmMem) , U ), - INST(kX86InstIdVfmaddsub132pd , "vfmaddsub132pd" , O_660F38(96,U,_,W,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfmaddsub132ps , "vfmaddsub132ps" , O_660F38(96,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfmaddsub213pd , "vfmaddsub213pd" , O_660F38(A6,U,_,W,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfmaddsub213ps , "vfmaddsub213ps" , O_660F38(A6,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfmaddsub231pd , "vfmaddsub231pd" , O_660F38(B6,U,_,W,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfmaddsub231ps , "vfmaddsub231ps" , O_660F38(B6,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfmaddsubpd , "vfmaddsubpd" , O_660F3A(5D,U,_,_,_), U , Enc(Fma4_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U ), - INST(kX86InstIdVfmaddsubps , "vfmaddsubps" , O_660F3A(5C,U,_,_,_), U , Enc(Fma4_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U ), - INST(kX86InstIdVfmsub132pd , "vfmsub132pd" , O_660F38(9A,U,_,W,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfmsub132ps , "vfmsub132ps" , O_660F38(9A,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfmsub132sd , "vfmsub132sd" , O_660F38(9B,U,_,W,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVfmsub132ss , "vfmsub132ss" , O_660F38(9B,U,_,_,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVfmsub213pd , "vfmsub213pd" , O_660F38(AA,U,_,W,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfmsub213ps , "vfmsub213ps" , O_660F38(AA,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfmsub213sd , "vfmsub213sd" , O_660F38(AB,U,_,W,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVfmsub213ss , "vfmsub213ss" , O_660F38(AB,U,_,_,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVfmsub231pd , "vfmsub231pd" , O_660F38(BA,U,_,W,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfmsub231ps , "vfmsub231ps" , O_660F38(BA,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfmsub231sd , "vfmsub231sd" , O_660F38(BB,U,_,W,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVfmsub231ss , "vfmsub231ss" , O_660F38(BB,U,_,_,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVfmsubadd132pd , "vfmsubadd132pd" , O_660F38(97,U,_,W,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfmsubadd132ps , "vfmsubadd132ps" , O_660F38(97,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfmsubadd213pd , "vfmsubadd213pd" , O_660F38(A7,U,_,W,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfmsubadd213ps , "vfmsubadd213ps" , O_660F38(A7,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfmsubadd231pd , "vfmsubadd231pd" , O_660F38(B7,U,_,W,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfmsubadd231ps , "vfmsubadd231ps" , O_660F38(B7,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfmsubaddpd , "vfmsubaddpd" , O_660F3A(5F,U,_,_,_), U , Enc(Fma4_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U ), - INST(kX86InstIdVfmsubaddps , "vfmsubaddps" , O_660F3A(5E,U,_,_,_), U , Enc(Fma4_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U ), - INST(kX86InstIdVfmsubpd , "vfmsubpd" , O_660F3A(6D,U,_,_,_), U , Enc(Fma4_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U ), - INST(kX86InstIdVfmsubps , "vfmsubps" , O_660F3A(6C,U,_,_,_), U , Enc(Fma4_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U ), - INST(kX86InstIdVfmsubsd , "vfmsubsd" , O_660F3A(6F,U,_,_,_), U , Enc(Fma4) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(XmmMem) , U ), - INST(kX86InstIdVfmsubss , "vfmsubss" , O_660F3A(6E,U,_,_,_), U , Enc(Fma4) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(XmmMem) , U ), - INST(kX86InstIdVfnmadd132pd , "vfnmadd132pd" , O_660F38(9C,U,_,W,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfnmadd132ps , "vfnmadd132ps" , O_660F38(9C,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfnmadd132sd , "vfnmadd132sd" , O_660F38(9D,U,_,W,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVfnmadd132ss , "vfnmadd132ss" , O_660F38(9D,U,_,_,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVfnmadd213pd , "vfnmadd213pd" , O_660F38(AC,U,_,W,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfnmadd213ps , "vfnmadd213ps" , O_660F38(AC,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfnmadd213sd , "vfnmadd213sd" , O_660F38(AD,U,_,W,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVfnmadd213ss , "vfnmadd213ss" , O_660F38(AD,U,_,_,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVfnmadd231pd , "vfnmadd231pd" , O_660F38(BC,U,_,W,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfnmadd231ps , "vfnmadd231ps" , O_660F38(BC,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfnmadd231sd , "vfnmadd231sd" , O_660F38(BC,U,_,W,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVfnmadd231ss , "vfnmadd231ss" , O_660F38(BC,U,_,_,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVfnmaddpd , "vfnmaddpd" , O_660F3A(79,U,_,_,_), U , Enc(Fma4_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U ), - INST(kX86InstIdVfnmaddps , "vfnmaddps" , O_660F3A(78,U,_,_,_), U , Enc(Fma4_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U ), - INST(kX86InstIdVfnmaddsd , "vfnmaddsd" , O_660F3A(7B,U,_,_,_), U , Enc(Fma4) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(XmmMem) , U ), - INST(kX86InstIdVfnmaddss , "vfnmaddss" , O_660F3A(7A,U,_,_,_), U , Enc(Fma4) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(XmmMem) , U ), - INST(kX86InstIdVfnmsub132pd , "vfnmsub132pd" , O_660F38(9E,U,_,W,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfnmsub132ps , "vfnmsub132ps" , O_660F38(9E,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfnmsub132sd , "vfnmsub132sd" , O_660F38(9F,U,_,W,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVfnmsub132ss , "vfnmsub132ss" , O_660F38(9F,U,_,_,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVfnmsub213pd , "vfnmsub213pd" , O_660F38(AE,U,_,W,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfnmsub213ps , "vfnmsub213ps" , O_660F38(AE,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfnmsub213sd , "vfnmsub213sd" , O_660F38(AF,U,_,W,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVfnmsub213ss , "vfnmsub213ss" , O_660F38(AF,U,_,_,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVfnmsub231pd , "vfnmsub231pd" , O_660F38(BE,U,_,W,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfnmsub231ps , "vfnmsub231ps" , O_660F38(BE,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVfnmsub231sd , "vfnmsub231sd" , O_660F38(BF,U,_,W,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVfnmsub231ss , "vfnmsub231ss" , O_660F38(BF,U,_,_,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVfnmsubpd , "vfnmsubpd" , O_660F3A(7D,U,_,_,_), U , Enc(Fma4_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U ), - INST(kX86InstIdVfnmsubps , "vfnmsubps" , O_660F3A(7C,U,_,_,_), U , Enc(Fma4_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U ), - INST(kX86InstIdVfnmsubsd , "vfnmsubsd" , O_660F3A(7F,U,_,_,_), U , Enc(Fma4) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(XmmMem) , U ), - INST(kX86InstIdVfnmsubss , "vfnmsubss" , O_660F3A(7E,U,_,_,_), U , Enc(Fma4) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(XmmMem) , U ), - INST(kX86InstIdVfrczpd , "vfrczpd" , O_00_M09(81,U,_,_,_), U , Enc(XopRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), - INST(kX86InstIdVfrczps , "vfrczps" , O_00_M09(80,U,_,_,_), U , Enc(XopRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), - INST(kX86InstIdVfrczsd , "vfrczsd" , O_00_M09(83,U,_,_,_), U , Enc(XopRm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVfrczss , "vfrczss" , O_00_M09(82,U,_,_,_), U , Enc(XopRm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVgatherdpd , "vgatherdpd" , O_660F38(92,U,_,W,_), U , Enc(AvxGather) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Mem) , O(Xy) , U , U ), - INST(kX86InstIdVgatherdps , "vgatherdps" , O_660F38(92,U,_,_,_), U , Enc(AvxGather) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Mem) , O(Xy) , U , U ), - INST(kX86InstIdVgatherqpd , "vgatherqpd" , O_660F38(93,U,_,W,_), U , Enc(AvxGather) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Mem) , O(Xy) , U , U ), - INST(kX86InstIdVgatherqps , "vgatherqps" , O_660F38(93,U,_,_,_), U , Enc(AvxGatherEx) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Mem) , O(Xmm) , U , U ), - INST(kX86InstIdVhaddpd , "vhaddpd" , O_660F00(7C,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVhaddps , "vhaddps" , O_F20F00(7C,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVhsubpd , "vhsubpd" , O_660F00(7D,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVhsubps , "vhsubps" , O_F20F00(7D,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVinsertf128 , "vinsertf128" , O_660F3A(18,U,L,_,_), U , Enc(AvxRvmi) , F(Avx) , EF(________), 0 , 0 , O(Ymm) , O(Ymm) , O(XmmMem) , O(Imm) , U ), - INST(kX86InstIdVinserti128 , "vinserti128" , O_660F3A(38,U,L,_,_), U , Enc(AvxRvmi) , F(Avx) , EF(________), 0 , 0 , O(Ymm) , O(Ymm) , O(XmmMem) , O(Imm) , U ), - INST(kX86InstIdVinsertps , "vinsertps" , O_660F3A(21,U,_,_,_), U , Enc(AvxRvmi) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Imm) , U ), - INST(kX86InstIdVlddqu , "vlddqu" , O_F20F00(F0,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Mem) , U , U , U ), - INST(kX86InstIdVldmxcsr , "vldmxcsr" , O_000F00(AE,2,_,_,_), U , Enc(AvxM) , F(Avx) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdVmaskmovdqu , "vmaskmovdqu" , O_660F00(F7,U,_,_,_), U , Enc(AvxRm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , U , U , U ), - INST(kX86InstIdVmaskmovpd , "vmaskmovpd" , O_660F38(2D,U,_,_,_), O_660F38(2F,U,_,_,_), Enc(AvxRvmMvr_OptL) , F(Avx) , EF(________), 0 , 0 , O(XyMem) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVmaskmovps , "vmaskmovps" , O_660F38(2C,U,_,_,_), O_660F38(2E,U,_,_,_), Enc(AvxRvmMvr_OptL) , F(Avx) , EF(________), 0 , 0 , O(XyMem) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVmaxpd , "vmaxpd" , O_660F00(5F,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVmaxps , "vmaxps" , O_000F00(5F,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVmaxsd , "vmaxsd" , O_F20F00(5F,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVmaxss , "vmaxss" , O_F30F00(5F,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVminpd , "vminpd" , O_660F00(5D,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVminps , "vminps" , O_000F00(5D,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVminsd , "vminsd" , O_F20F00(5D,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVminss , "vminss" , O_F30F00(5D,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVmovapd , "vmovapd" , O_660F00(28,U,_,_,_), O_660F00(29,U,_,_,_), Enc(AvxRmMr_OptL) , F(Avx) , EF(________), 0 , 0 , O(XyMem) , O(XyMem) , U , U , U ), - INST(kX86InstIdVmovaps , "vmovaps" , O_000F00(28,U,_,_,_), O_000F00(29,U,_,_,_), Enc(AvxRmMr_OptL) , F(Avx) , EF(________), 0 , 0 , O(XyMem) , O(XyMem) , U , U , U ), - INST(kX86InstIdVmovd , "vmovd" , O_660F00(6E,U,_,_,_), O_660F00(7E,U,_,_,_), Enc(AvxMovDQ) , F(Avx) , EF(________), 0 , 0 , O(XmmMem) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVmovddup , "vmovddup" , O_F20F00(12,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), - INST(kX86InstIdVmovdqa , "vmovdqa" , O_660F00(6F,U,_,_,_), O_660F00(7F,U,_,_,_), Enc(AvxRmMr_OptL) , F(Avx) , EF(________), 0 , 0 , O(XyMem) , O(XyMem) , U , U , U ), - INST(kX86InstIdVmovdqu , "vmovdqu" , O_F30F00(6F,U,_,_,_), O_F30F00(7F,U,_,_,_), Enc(AvxRmMr_OptL) , F(Avx) , EF(________), 0 , 0 , O(XyMem) , O(XyMem) , U , U , U ), - INST(kX86InstIdVmovhlps , "vmovhlps" , O_000F00(12,U,_,_,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(Xmm) , U , U ), - INST(kX86InstIdVmovhpd , "vmovhpd" , O_660F00(16,U,_,_,_), O_660F00(17,U,_,_,_), Enc(AvxRvmMr) , F(Avx) , EF(________), 0 , 0 , O(XmmMem) , O(Xmm) , O(Mem) , U , U ), - INST(kX86InstIdVmovhps , "vmovhps" , O_000F00(16,U,_,_,_), O_000F00(17,U,_,_,_), Enc(AvxRvmMr) , F(Avx) , EF(________), 0 , 0 , O(XmmMem) , O(Xmm) , O(Mem) , U , U ), - INST(kX86InstIdVmovlhps , "vmovlhps" , O_000F00(16,U,_,_,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(Xmm) , U , U ), - INST(kX86InstIdVmovlpd , "vmovlpd" , O_660F00(12,U,_,_,_), O_660F00(13,U,_,_,_), Enc(AvxRvmMr) , F(Avx) , EF(________), 0 , 0 , O(XmmMem) , O(Xmm) , O(Mem) , U , U ), - INST(kX86InstIdVmovlps , "vmovlps" , O_000F00(12,U,_,_,_), O_000F00(13,U,_,_,_), Enc(AvxRvmMr) , F(Avx) , EF(________), 0 , 0 , O(XmmMem) , O(Xmm) , O(Mem) , U , U ), - INST(kX86InstIdVmovmskpd , "vmovmskpd" , O_660F00(50,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Gqd) , O(Xy) , U , U , U ), - INST(kX86InstIdVmovmskps , "vmovmskps" , O_000F00(50,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Gqd) , O(Xy) , U , U , U ), - INST(kX86InstIdVmovntdq , "vmovntdq" , O_660F00(E7,U,_,_,_), U , Enc(AvxMr_OptL) , F(Avx) , EF(________), 0 , 0 , O(Mem) , O(Xy) , U , U , U ), - INST(kX86InstIdVmovntdqa , "vmovntdqa" , O_660F38(2A,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Mem) , U , U , U ), - INST(kX86InstIdVmovntpd , "vmovntpd" , O_660F00(2B,U,_,_,_), U , Enc(AvxMr_OptL) , F(Avx) , EF(________), 0 , 0 , O(Mem) , O(Xy) , U , U , U ), - INST(kX86InstIdVmovntps , "vmovntps" , O_000F00(2B,U,_,_,_), U , Enc(AvxMr_OptL) , F(Avx) , EF(________), 0 , 0 , O(Mem) , O(Xy) , U , U , U ), - INST(kX86InstIdVmovq , "vmovq" , O_660F00(6E,U,_,W,_), O_660F00(7E,U,_,_,_), Enc(AvxMovDQ) , F(Avx) , EF(________), 0 , 0 , O(XmmMem) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVmovsd , "vmovsd" , O_F20F00(10,U,_,_,_), O_F20F00(11,U,_,_,_), Enc(AvxMovSsSd) , F(Avx) , EF(________), 0 , 0 , O(XmmMem) , O(XmmMem) , O(Xmm) , U , U ), - INST(kX86InstIdVmovshdup , "vmovshdup" , O_F30F00(16,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), - INST(kX86InstIdVmovsldup , "vmovsldup" , O_F30F00(12,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), - INST(kX86InstIdVmovss , "vmovss" , O_F30F00(10,U,_,_,_), O_F30F00(11,U,_,_,_), Enc(AvxMovSsSd) , F(Avx) , EF(________), 0 , 0 , O(XmmMem) , O(Xmm) , O(Xmm) , U , U ), - INST(kX86InstIdVmovupd , "vmovupd" , O_660F00(10,U,_,_,_), O_660F00(11,U,_,_,_), Enc(AvxRmMr_OptL) , F(Avx) , EF(________), 0 , 0 , O(XyMem) , O(XyMem) , U , U , U ), - INST(kX86InstIdVmovups , "vmovups" , O_000F00(10,U,_,_,_), O_000F00(11,U,_,_,_), Enc(AvxRmMr_OptL) , F(Avx) , EF(________), 0 , 0 , O(XyMem) , O(XyMem) , U , U , U ), - INST(kX86InstIdVmpsadbw , "vmpsadbw" , O_660F3A(42,U,_,_,_), U , Enc(AvxRvmi_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(Imm) , U ), - INST(kX86InstIdVmulpd , "vmulpd" , O_660F00(59,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVmulps , "vmulps" , O_000F00(59,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVmulsd , "vmulsd" , O_F20F00(59,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVmulss , "vmulss" , O_F30F00(59,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVorpd , "vorpd" , O_660F00(56,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVorps , "vorps" , O_000F00(56,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpabsb , "vpabsb" , O_660F38(1C,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), - INST(kX86InstIdVpabsd , "vpabsd" , O_660F38(1E,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), - INST(kX86InstIdVpabsw , "vpabsw" , O_660F38(1D,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), - INST(kX86InstIdVpackssdw , "vpackssdw" , O_660F00(6B,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpacksswb , "vpacksswb" , O_660F00(63,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpackusdw , "vpackusdw" , O_660F38(2B,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpackuswb , "vpackuswb" , O_660F00(67,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpaddb , "vpaddb" , O_660F00(FC,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpaddd , "vpaddd" , O_660F00(FE,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpaddq , "vpaddq" , O_660F00(D4,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpaddsb , "vpaddsb" , O_660F00(EC,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpaddsw , "vpaddsw" , O_660F00(ED,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpaddusb , "vpaddusb" , O_660F00(DC,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpaddusw , "vpaddusw" , O_660F00(DD,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpaddw , "vpaddw" , O_660F00(FD,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpalignr , "vpalignr" , O_660F3A(0F,U,_,_,_), U , Enc(AvxRvmi_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(Imm) , U ), - INST(kX86InstIdVpand , "vpand" , O_660F00(DB,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpandn , "vpandn" , O_660F00(DF,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpavgb , "vpavgb" , O_660F00(E0,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpavgw , "vpavgw" , O_660F00(E3,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpblendd , "vpblendd" , O_660F3A(02,U,_,_,_), U , Enc(AvxRvmi_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(Imm) , U ), - INST(kX86InstIdVpblendvb , "vpblendvb" , O_660F3A(4C,U,_,_,_), U , Enc(AvxRvmr) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(Xy) , U ), - INST(kX86InstIdVpblendw , "vpblendw" , O_660F3A(0E,U,_,_,_), U , Enc(AvxRvmi_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(Imm) , U ), - INST(kX86InstIdVpbroadcastb , "vpbroadcastb" , O_660F38(78,U,_,_,0), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVpbroadcastd , "vpbroadcastd" , O_660F38(58,U,_,_,0), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVpbroadcastq , "vpbroadcastq" , O_660F38(59,U,_,_,1), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVpbroadcastw , "vpbroadcastw" , O_660F38(79,U,_,_,0), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVpclmulqdq , "vpclmulqdq" , O_660F3A(44,U,_,_,_), U , Enc(AvxRvmi) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Imm) , U ), - INST(kX86InstIdVpcmov , "vpcmov" , O_00_M08(A2,U,_,_,_), U , Enc(XopRvrmRvmr_OptL), F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U ), - INST(kX86InstIdVpcmpeqb , "vpcmpeqb" , O_660F00(74,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpcmpeqd , "vpcmpeqd" , O_660F00(76,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpcmpeqq , "vpcmpeqq" , O_660F38(29,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpcmpeqw , "vpcmpeqw" , O_660F00(75,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpcmpestri , "vpcmpestri" , O_660F3A(61,U,_,_,_), U , Enc(AvxRmi) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), - INST(kX86InstIdVpcmpestrm , "vpcmpestrm" , O_660F3A(60,U,_,_,_), U , Enc(AvxRmi) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), - INST(kX86InstIdVpcmpgtb , "vpcmpgtb" , O_660F00(64,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpcmpgtd , "vpcmpgtd" , O_660F00(66,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpcmpgtq , "vpcmpgtq" , O_660F38(37,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpcmpgtw , "vpcmpgtw" , O_660F00(65,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpcmpistri , "vpcmpistri" , O_660F3A(63,U,_,_,_), U , Enc(AvxRmi) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), - INST(kX86InstIdVpcmpistrm , "vpcmpistrm" , O_660F3A(62,U,_,_,_), U , Enc(AvxRmi) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), - INST(kX86InstIdVpcomb , "vpcomb" , O_00_M08(CC,U,_,_,_), U , Enc(XopRvmi) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Imm) , U ), - INST(kX86InstIdVpcomd , "vpcomd" , O_00_M08(CE,U,_,_,_), U , Enc(XopRvmi) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Imm) , U ), - INST(kX86InstIdVpcomq , "vpcomq" , O_00_M08(CF,U,_,_,_), U , Enc(XopRvmi) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Imm) , U ), - INST(kX86InstIdVpcomub , "vpcomub" , O_00_M08(EC,U,_,_,_), U , Enc(XopRvmi) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Imm) , U ), - INST(kX86InstIdVpcomud , "vpcomud" , O_00_M08(EE,U,_,_,_), U , Enc(XopRvmi) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Imm) , U ), - INST(kX86InstIdVpcomuq , "vpcomuq" , O_00_M08(EF,U,_,_,_), U , Enc(XopRvmi) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Imm) , U ), - INST(kX86InstIdVpcomuw , "vpcomuw" , O_00_M08(ED,U,_,_,_), U , Enc(XopRvmi) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Imm) , U ), - INST(kX86InstIdVpcomw , "vpcomw" , O_00_M08(CD,U,_,_,_), U , Enc(XopRvmi) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Imm) , U ), - INST(kX86InstIdVperm2f128 , "vperm2f128" , O_660F3A(06,U,L,_,_), U , Enc(AvxRvmi) , F(Avx) , EF(________), 0 , 0 , O(Ymm) , O(Ymm) , O(YmmMem) , O(Imm) , U ), - INST(kX86InstIdVperm2i128 , "vperm2i128" , O_660F3A(46,U,L,_,_), U , Enc(AvxRvmi) , F(Avx) , EF(________), 0 , 0 , O(Ymm) , O(Ymm) , O(YmmMem) , O(Imm) , U ), - INST(kX86InstIdVpermd , "vpermd" , O_660F38(36,U,L,_,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Ymm) , O(Ymm) , O(YmmMem) , U , U ), - INST(kX86InstIdVpermil2pd , "vpermil2pd" , O_66_M03(49,U,_,_,_), U , Enc(AvxRvrmRvmr_OptL), F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U ), - INST(kX86InstIdVpermil2ps , "vpermil2ps" , O_66_M03(48,U,_,_,_), U , Enc(AvxRvrmRvmr_OptL), F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U ), - INST(kX86InstIdVpermilpd , "vpermilpd" , O_660F38(0D,U,_,_,_), O_660F3A(05,U,_,_,_), Enc(AvxRvmRmi_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U ), - INST(kX86InstIdVpermilps , "vpermilps" , O_660F38(0C,U,_,_,_), O_660F3A(04,U,_,_,_), Enc(AvxRvmRmi_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U ), - INST(kX86InstIdVpermpd , "vpermpd" , O_660F3A(01,U,L,W,_), U , Enc(AvxRmi) , F(Avx) , EF(________), 0 , 0 , O(Ymm) , O(YmmMem) , O(Imm) , U , U ), - INST(kX86InstIdVpermps , "vpermps" , O_660F38(16,U,L,_,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Ymm) , O(Ymm) , O(YmmMem) , U , U ), - INST(kX86InstIdVpermq , "vpermq" , O_660F3A(00,U,L,W,_), U , Enc(AvxRmi) , F(Avx) , EF(________), 0 , 0 , O(Ymm) , O(YmmMem) , O(Imm) , U , U ), - INST(kX86InstIdVpextrb , "vpextrb" , O_660F3A(14,U,_,_,_), U , Enc(AvxMri) , F(Avx) , EF(________), 0 , 0 , O(GqdwbMem) , O(Xmm) , O(Imm) , U , U ), - INST(kX86InstIdVpextrd , "vpextrd" , O_660F3A(16,U,_,_,_), U , Enc(AvxMri) , F(Avx) , EF(________), 0 , 0 , O(GqdMem) , O(Xmm) , O(Imm) , U , U ), - INST(kX86InstIdVpextrq , "vpextrq" , O_660F3A(16,U,_,W,_), U , Enc(AvxMri) , F(Avx) , EF(________), 0 , 0 , O(GqMem) , O(Xmm) , O(Imm) , U , U ), - INST(kX86InstIdVpextrw , "vpextrw" , O_660F3A(15,U,_,_,_), U , Enc(AvxMri) , F(Avx) , EF(________), 0 , 0 , O(GqdwMem) , O(Xmm) , O(Imm) , U , U ), - INST(kX86InstIdVpgatherdd , "vpgatherdd" , O_660F38(90,U,_,_,_), U , Enc(AvxGather) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Mem) , O(Xy) , U , U ), - INST(kX86InstIdVpgatherdq , "vpgatherdq" , O_660F38(90,U,_,W,_), U , Enc(AvxGather) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Mem) , O(Xy) , U , U ), - INST(kX86InstIdVpgatherqd , "vpgatherqd" , O_660F38(91,U,_,_,_), U , Enc(AvxGatherEx) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Mem) , O(Xmm) , U , U ), - INST(kX86InstIdVpgatherqq , "vpgatherqq" , O_660F38(91,U,_,W,_), U , Enc(AvxGather) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Mem) , O(Xy) , U , U ), - INST(kX86InstIdVphaddbd , "vphaddbd" , O_00_M09(C2,U,_,_,_), U , Enc(XopRm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVphaddbq , "vphaddbq" , O_00_M09(C3,U,_,_,_), U , Enc(XopRm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVphaddbw , "vphaddbw" , O_00_M09(C1,U,_,_,_), U , Enc(XopRm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVphaddd , "vphaddd" , O_660F38(02,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVphadddq , "vphadddq" , O_00_M09(CB,U,_,_,_), U , Enc(XopRm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVphaddsw , "vphaddsw" , O_660F38(03,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVphaddubd , "vphaddubd" , O_00_M09(D2,U,_,_,_), U , Enc(XopRm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVphaddubq , "vphaddubq" , O_00_M09(D3,U,_,_,_), U , Enc(XopRm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVphaddubw , "vphaddubw" , O_00_M09(D1,U,_,_,_), U , Enc(XopRm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVphaddudq , "vphaddudq" , O_00_M09(DB,U,_,_,_), U , Enc(XopRm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVphadduwd , "vphadduwd" , O_00_M09(D6,U,_,_,_), U , Enc(XopRm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVphadduwq , "vphadduwq" , O_00_M09(D7,U,_,_,_), U , Enc(XopRm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVphaddw , "vphaddw" , O_660F38(01,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVphaddwd , "vphaddwd" , O_00_M09(C6,U,_,_,_), U , Enc(XopRm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVphaddwq , "vphaddwq" , O_00_M09(C7,U,_,_,_), U , Enc(XopRm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVphminposuw , "vphminposuw" , O_660F38(41,U,_,_,_), U , Enc(AvxRm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVphsubbw , "vphsubbw" , O_00_M09(E1,U,_,_,_), U , Enc(XopRm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVphsubd , "vphsubd" , O_660F38(06,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVphsubdq , "vphsubdq" , O_00_M09(E3,U,_,_,_), U , Enc(XopRm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVphsubsw , "vphsubsw" , O_660F38(07,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVphsubw , "vphsubw" , O_660F38(05,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVphsubwd , "vphsubwd" , O_00_M09(E2,U,_,_,_), U , Enc(XopRm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVpinsrb , "vpinsrb" , O_660F3A(20,U,_,_,_), U , Enc(AvxRvmi) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(GqdwbMem) , O(Imm) , U ), - INST(kX86InstIdVpinsrd , "vpinsrd" , O_660F3A(22,U,_,_,_), U , Enc(AvxRvmi) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(GqdMem) , O(Imm) , U ), - INST(kX86InstIdVpinsrq , "vpinsrq" , O_660F3A(22,U,_,W,_), U , Enc(AvxRvmi) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(GqMem) , O(Imm) , U ), - INST(kX86InstIdVpinsrw , "vpinsrw" , O_660F00(C4,U,_,_,_), U , Enc(AvxRvmi) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(GqdwMem) , O(Imm) , U ), - INST(kX86InstIdVpmacsdd , "vpmacsdd" , O_00_M08(9E,U,_,_,_), U , Enc(XopRvmr) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Xmm) , U ), - INST(kX86InstIdVpmacsdqh , "vpmacsdqh" , O_00_M08(9F,U,_,_,_), U , Enc(XopRvmr) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Xmm) , U ), - INST(kX86InstIdVpmacsdql , "vpmacsdql" , O_00_M08(97,U,_,_,_), U , Enc(XopRvmr) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Xmm) , U ), - INST(kX86InstIdVpmacssdd , "vpmacssdd" , O_00_M08(8E,U,_,_,_), U , Enc(XopRvmr) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Xmm) , U ), - INST(kX86InstIdVpmacssdqh , "vpmacssdqh" , O_00_M08(8F,U,_,_,_), U , Enc(XopRvmr) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Xmm) , U ), - INST(kX86InstIdVpmacssdql , "vpmacssdql" , O_00_M08(87,U,_,_,_), U , Enc(XopRvmr) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Xmm) , U ), - INST(kX86InstIdVpmacsswd , "vpmacsswd" , O_00_M08(86,U,_,_,_), U , Enc(XopRvmr) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Xmm) , U ), - INST(kX86InstIdVpmacssww , "vpmacssww" , O_00_M08(85,U,_,_,_), U , Enc(XopRvmr) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Xmm) , U ), - INST(kX86InstIdVpmacswd , "vpmacswd" , O_00_M08(96,U,_,_,_), U , Enc(XopRvmr) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Xmm) , U ), - INST(kX86InstIdVpmacsww , "vpmacsww" , O_00_M08(95,U,_,_,_), U , Enc(XopRvmr) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Xmm) , U ), - INST(kX86InstIdVpmadcsswd , "vpmadcsswd" , O_00_M08(A6,U,_,_,_), U , Enc(XopRvmr) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Xmm) , U ), - INST(kX86InstIdVpmadcswd , "vpmadcswd" , O_00_M08(B6,U,_,_,_), U , Enc(XopRvmr) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Xmm) , U ), - INST(kX86InstIdVpmaddubsw , "vpmaddubsw" , O_660F38(04,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpmaddwd , "vpmaddwd" , O_660F00(F5,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpmaskmovd , "vpmaskmovd" , O_660F38(8C,U,_,_,_), O_660F38(8E,U,_,_,_), Enc(AvxRvmMvr_OptL) , F(Avx) , EF(________), 0 , 0 , O(XyMem) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpmaskmovq , "vpmaskmovq" , O_660F38(8C,U,_,W,_), O_660F38(8E,U,_,_,_), Enc(AvxRvmMvr_OptL) , F(Avx) , EF(________), 0 , 0 , O(XyMem) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpmaxsb , "vpmaxsb" , O_660F38(3C,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpmaxsd , "vpmaxsd" , O_660F38(3D,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpmaxsw , "vpmaxsw" , O_660F00(EE,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpmaxub , "vpmaxub" , O_660F00(DE,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpmaxud , "vpmaxud" , O_660F38(3F,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpmaxuw , "vpmaxuw" , O_660F38(3E,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpminsb , "vpminsb" , O_660F38(38,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpminsd , "vpminsd" , O_660F38(39,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpminsw , "vpminsw" , O_660F00(EA,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpminub , "vpminub" , O_660F00(DA,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpminud , "vpminud" , O_660F38(3B,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpminuw , "vpminuw" , O_660F38(3A,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpmovmskb , "vpmovmskb" , O_660F00(D7,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Gqd) , O(Xy) , U , U , U ), - INST(kX86InstIdVpmovsxbd , "vpmovsxbd" , O_660F38(21,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), - INST(kX86InstIdVpmovsxbq , "vpmovsxbq" , O_660F38(22,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), - INST(kX86InstIdVpmovsxbw , "vpmovsxbw" , O_660F38(20,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), - INST(kX86InstIdVpmovsxdq , "vpmovsxdq" , O_660F38(25,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), - INST(kX86InstIdVpmovsxwd , "vpmovsxwd" , O_660F38(23,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), - INST(kX86InstIdVpmovsxwq , "vpmovsxwq" , O_660F38(24,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), - INST(kX86InstIdVpmovzxbd , "vpmovzxbd" , O_660F38(31,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), - INST(kX86InstIdVpmovzxbq , "vpmovzxbq" , O_660F38(32,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), - INST(kX86InstIdVpmovzxbw , "vpmovzxbw" , O_660F38(30,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), - INST(kX86InstIdVpmovzxdq , "vpmovzxdq" , O_660F38(35,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), - INST(kX86InstIdVpmovzxwd , "vpmovzxwd" , O_660F38(33,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), - INST(kX86InstIdVpmovzxwq , "vpmovzxwq" , O_660F38(34,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), - INST(kX86InstIdVpmuldq , "vpmuldq" , O_660F38(28,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpmulhrsw , "vpmulhrsw" , O_660F38(0B,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpmulhuw , "vpmulhuw" , O_660F00(E4,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpmulhw , "vpmulhw" , O_660F00(E5,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpmulld , "vpmulld" , O_660F38(40,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpmullw , "vpmullw" , O_660F00(D5,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpmuludq , "vpmuludq" , O_660F00(F4,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpor , "vpor" , O_660F00(EB,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpperm , "vpperm" , O_00_M08(A3,U,_,_,_), U , Enc(XopRvrmRvmr) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(XmmMem) , U ), - INST(kX86InstIdVprotb , "vprotb" , O_00_M09(90,U,_,_,_), O_00_M08(C0,U,_,_,_), Enc(XopRvmRmi) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(XmmMem)|O(Imm) , U , U ), - INST(kX86InstIdVprotd , "vprotd" , O_00_M09(92,U,_,_,_), O_00_M08(C2,U,_,_,_), Enc(XopRvmRmi) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(XmmMem)|O(Imm) , U , U ), - INST(kX86InstIdVprotq , "vprotq" , O_00_M09(93,U,_,_,_), O_00_M08(C3,U,_,_,_), Enc(XopRvmRmi) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(XmmMem)|O(Imm) , U , U ), - INST(kX86InstIdVprotw , "vprotw" , O_00_M09(91,U,_,_,_), O_00_M08(C1,U,_,_,_), Enc(XopRvmRmi) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(XmmMem)|O(Imm) , U , U ), - INST(kX86InstIdVpsadbw , "vpsadbw" , O_660F00(F6,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpshab , "vpshab" , O_00_M09(98,U,_,_,_), U , Enc(XopRvmRmv) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(XmmMem) , U , U ), - INST(kX86InstIdVpshad , "vpshad" , O_00_M09(9A,U,_,_,_), U , Enc(XopRvmRmv) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(XmmMem) , U , U ), - INST(kX86InstIdVpshaq , "vpshaq" , O_00_M09(9B,U,_,_,_), U , Enc(XopRvmRmv) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(XmmMem) , U , U ), - INST(kX86InstIdVpshaw , "vpshaw" , O_00_M09(99,U,_,_,_), U , Enc(XopRvmRmv) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(XmmMem) , U , U ), - INST(kX86InstIdVpshlb , "vpshlb" , O_00_M09(94,U,_,_,_), U , Enc(XopRvmRmv) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(XmmMem) , U , U ), - INST(kX86InstIdVpshld , "vpshld" , O_00_M09(96,U,_,_,_), U , Enc(XopRvmRmv) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(XmmMem) , U , U ), - INST(kX86InstIdVpshlq , "vpshlq" , O_00_M09(97,U,_,_,_), U , Enc(XopRvmRmv) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(XmmMem) , U , U ), - INST(kX86InstIdVpshlw , "vpshlw" , O_00_M09(95,U,_,_,_), U , Enc(XopRvmRmv) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(XmmMem) , U , U ), - INST(kX86InstIdVpshufb , "vpshufb" , O_660F38(00,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpshufd , "vpshufd" , O_660F00(70,U,_,_,_), U , Enc(AvxRmi_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , O(Imm) , U , U ), - INST(kX86InstIdVpshufhw , "vpshufhw" , O_F30F00(70,U,_,_,_), U , Enc(AvxRmi_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , O(Imm) , U , U ), - INST(kX86InstIdVpshuflw , "vpshuflw" , O_F20F00(70,U,_,_,_), U , Enc(AvxRmi_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , O(Imm) , U , U ), - INST(kX86InstIdVpsignb , "vpsignb" , O_660F38(08,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpsignd , "vpsignd" , O_660F38(0A,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpsignw , "vpsignw" , O_660F38(09,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpslld , "vpslld" , O_660F00(F2,U,_,_,_), O_660F00(72,6,_,_,_), Enc(AvxRvmVmi_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U ), - INST(kX86InstIdVpslldq , "vpslldq" , O_660F00(73,7,_,_,_), U , Enc(AvxVmi_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , O(Imm) , U , U ), - INST(kX86InstIdVpsllq , "vpsllq" , O_660F00(F3,U,_,_,_), O_660F00(73,6,_,_,_), Enc(AvxRvmVmi_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U ), - INST(kX86InstIdVpsllvd , "vpsllvd" , O_660F38(47,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpsllvq , "vpsllvq" , O_660F38(47,U,_,W,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpsllw , "vpsllw" , O_660F00(F1,U,_,_,_), O_660F00(71,6,_,_,_), Enc(AvxRvmVmi_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U ), - INST(kX86InstIdVpsrad , "vpsrad" , O_660F00(E2,U,_,_,_), O_660F00(72,4,_,_,_), Enc(AvxRvmVmi_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U ), - INST(kX86InstIdVpsravd , "vpsravd" , O_660F38(46,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpsraw , "vpsraw" , O_660F00(E1,U,_,_,_), O_660F00(71,4,_,_,_), Enc(AvxRvmVmi_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U ), - INST(kX86InstIdVpsrld , "vpsrld" , O_660F00(D2,U,_,_,_), O_660F00(72,2,_,_,_), Enc(AvxRvmVmi_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U ), - INST(kX86InstIdVpsrldq , "vpsrldq" , O_660F00(73,3,_,_,_), U , Enc(AvxVmi_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , O(Imm) , U , U ), - INST(kX86InstIdVpsrlq , "vpsrlq" , O_660F00(D3,U,_,_,_), O_660F00(73,2,_,_,_), Enc(AvxRvmVmi_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U ), - INST(kX86InstIdVpsrlvd , "vpsrlvd" , O_660F38(45,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpsrlvq , "vpsrlvq" , O_660F38(45,U,_,W,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpsrlw , "vpsrlw" , O_660F00(D1,U,_,_,_), O_660F00(71,2,_,_,_), Enc(AvxRvmVmi_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U ), - INST(kX86InstIdVpsubb , "vpsubb" , O_660F00(F8,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpsubd , "vpsubd" , O_660F00(FA,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpsubq , "vpsubq" , O_660F00(FB,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpsubsb , "vpsubsb" , O_660F00(E8,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpsubsw , "vpsubsw" , O_660F00(E9,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpsubusb , "vpsubusb" , O_660F00(D8,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpsubusw , "vpsubusw" , O_660F00(D9,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpsubw , "vpsubw" , O_660F00(F9,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVptest , "vptest" , O_660F38(17,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(WWWWWW__), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), - INST(kX86InstIdVpunpckhbw , "vpunpckhbw" , O_660F00(68,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpunpckhdq , "vpunpckhdq" , O_660F00(6A,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpunpckhqdq , "vpunpckhqdq" , O_660F00(6D,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpunpckhwd , "vpunpckhwd" , O_660F00(69,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpunpcklbw , "vpunpcklbw" , O_660F00(60,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpunpckldq , "vpunpckldq" , O_660F00(62,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpunpcklqdq , "vpunpcklqdq" , O_660F00(6C,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpunpcklwd , "vpunpcklwd" , O_660F00(61,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVpxor , "vpxor" , O_660F00(EF,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVrcpps , "vrcpps" , O_000F00(53,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), - INST(kX86InstIdVrcpss , "vrcpss" , O_F30F00(53,U,_,_,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVroundpd , "vroundpd" , O_660F3A(09,U,_,_,_), U , Enc(AvxRmi_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , O(Imm) , U , U ), - INST(kX86InstIdVroundps , "vroundps" , O_660F3A(08,U,_,_,_), U , Enc(AvxRmi_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , O(Imm) , U , U ), - INST(kX86InstIdVroundsd , "vroundsd" , O_660F3A(0B,U,_,_,_), U , Enc(AvxRvmi) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Imm) , U ), - INST(kX86InstIdVroundss , "vroundss" , O_660F3A(0A,U,_,_,_), U , Enc(AvxRvmi) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Imm) , U ), - INST(kX86InstIdVrsqrtps , "vrsqrtps" , O_000F00(52,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), - INST(kX86InstIdVrsqrtss , "vrsqrtss" , O_F30F00(52,U,_,_,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVshufpd , "vshufpd" , O_660F00(C6,U,_,_,_), U , Enc(AvxRvmi_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(Imm) , U ), - INST(kX86InstIdVshufps , "vshufps" , O_000F00(C6,U,_,_,_), U , Enc(AvxRvmi_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(Imm) , U ), - INST(kX86InstIdVsqrtpd , "vsqrtpd" , O_660F00(51,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), - INST(kX86InstIdVsqrtps , "vsqrtps" , O_000F00(51,U,_,_,_), U , Enc(AvxRm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), - INST(kX86InstIdVsqrtsd , "vsqrtsd" , O_F20F00(51,U,_,_,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVsqrtss , "vsqrtss" , O_F30F00(51,U,_,_,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVstmxcsr , "vstmxcsr" , O_000F00(AE,3,_,_,_), U , Enc(AvxM) , F(Avx) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdVsubpd , "vsubpd" , O_660F00(5C,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVsubps , "vsubps" , O_000F00(5C,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVsubsd , "vsubsd" , O_F20F00(5C,U,_,_,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVsubss , "vsubss" , O_F30F00(5C,U,_,_,_), U , Enc(AvxRvm) , F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), - INST(kX86InstIdVtestpd , "vtestpd" , O_660F38(0F,U,_,_,_), U , Enc(AvxRm_OptL) , F(Test) , EF(WWWWWW__), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), - INST(kX86InstIdVtestps , "vtestps" , O_660F38(0E,U,_,_,_), U , Enc(AvxRm_OptL) , F(Test) , EF(WWWWWW__), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), - INST(kX86InstIdVucomisd , "vucomisd" , O_660F00(2E,U,_,_,_), U , Enc(AvxRm) , F(Avx) , EF(WWWWWW__), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVucomiss , "vucomiss" , O_000F00(2E,U,_,_,_), U , Enc(AvxRm) , F(Avx) , EF(WWWWWW__), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdVunpckhpd , "vunpckhpd" , O_660F00(15,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVunpckhps , "vunpckhps" , O_000F00(15,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVunpcklpd , "vunpcklpd" , O_660F00(14,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVunpcklps , "vunpcklps" , O_000F00(14,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVxorpd , "vxorpd" , O_660F00(57,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVxorps , "vxorps" , O_000F00(57,U,_,_,_), U , Enc(AvxRvm_OptL) , F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), - INST(kX86InstIdVzeroall , "vzeroall" , O_000F00(77,U,L,_,_), U , Enc(AvxOp) , F(Avx) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdVzeroupper , "vzeroupper" , O_000F00(77,U,_,_,_), U , Enc(AvxOp) , F(Avx) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdWrfsbase , "wrfsbase" , O_F30F00(AE,2,_,_,_), U , Enc(X86Rm) , F(None) , EF(________), 0 , 0 , O(Gqd) , U , U , U , U ), - INST(kX86InstIdWrgsbase , "wrgsbase" , O_F30F00(AE,3,_,_,_), U , Enc(X86Rm) , F(None) , EF(________), 0 , 0 , O(Gqd) , U , U , U , U ), - INST(kX86InstIdXadd , "xadd" , O_000F00(C0,U,_,_,_), U , Enc(X86Xadd) , F(Xchg)|F(Lock) , EF(WWWWWW__), 0 , 0 , O(GqdwbMem) , O(Gqdwb) , U , U , U ), - INST(kX86InstIdXchg , "xchg" , O_000000(86,U,_,_,_), U , Enc(X86Xchg) , F(Xchg)|F(Lock) , EF(________), 0 , 0 , O(GqdwbMem) , O(Gqdwb) , U , U , U ), - INST(kX86InstIdXgetbv , "xgetbv" , O_000F01(D0,U,_,_,_), U , Enc(X86Op) , F(None)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), - INST(kX86InstIdXor , "xor" , O_000000(30,6,_,_,_), U , Enc(X86Arith) , F(Lock) , EF(WWWUWW__), 0 , 0 , O(GqdwbMem) , O(GqdwbMem)|O(Imm), U , U , U ), - INST(kX86InstIdXorpd , "xorpd" , O_660F00(57,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdXorps , "xorps" , O_000F00(57,U,_,_,_), U , Enc(SimdRm) , F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), - INST(kX86InstIdXrstor , "xrstor" , O_000F00(AE,5,_,_,_), U , Enc(X86M) , F(None)|F(Special) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdXrstor64 , "xrstor64" , O_000F00(AE,5,_,W,_), U , Enc(X86M) , F(None)|F(Special) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdXsave , "xsave" , O_000F00(AE,4,_,_,_), U , Enc(X86M) , F(None)|F(Special) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdXsave64 , "xsave64" , O_000F00(AE,4,_,W,_), U , Enc(X86M) , F(None)|F(Special) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdXsaveopt , "xsaveopt" , O_000F00(AE,6,_,_,_), U , Enc(X86M) , F(None)|F(Special) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdXsaveopt64 , "xsaveopt64" , O_000F00(AE,6,_,W,_), U , Enc(X86M) , F(None)|F(Special) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), - INST(kX86InstIdXsetbv , "xsetbv" , O_000F01(D1,U,_,_,_), U , Enc(X86Op) , F(None)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ) + // <-----------------+-------------------+----------------------+-------------------------------------------+------------------------------------+-------------+-------+---------------------------------------------------------------------------------------------------+ + // | | | Instruction Opcodes | Instruction Flags | E-FLAGS | Write | Operands (Gp/Fp/Mm/K/Xmm/Ymm/Zmm Regs, Mem, Imm, Label, None/Undefined) | + // Instruction Id | Instruction Name | Instruction Encoding +---------------------+---------------------+---------------+--------------------+-------------+---+---+-------------------+-------------------+-------------------+-------------------+-------------------+ + // | | | 0:PP-MMM OP/O L/W/EW| 1:PP-MMM OP/O L/W/EW| Global Flags |A512(ID|VL|kz|rnd|b)| EF:OSZAPCDX |Idx| Sz| [0] 1st Operand | [1] 2nd Operand | [2] 3rd Operand | [3] 4th Operand | [4] 5th Operand | + // <-----------------+-------------------+----------------------+---------------------+---------------------+---------------+--------------------+-------------+---+---+-------------------+-------------------+-------------------+-------------------+-------------------+ + INST(None , "" , Enc(None) , U , U , F(None) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Adc , "adc" , Enc(X86Arith) , O_000000(10,2,_,_,_), U , F(RW)|F(Lock) , EF(WWWWWX__), 0 , 0 , O(GqdwbMem) , O(GqdwbMem)|O(Imm), U , U , U ), + INST(Adcx , "adcx" , Enc(X86RegRm) , O_660F38(F6,U,_,_,_), U , F(RW) , EF(_____X__), 0 , 0 , O(Gqd) , O(GqdMem) , U , U , U ), + INST(Add , "add" , Enc(X86Arith) , O_000000(00,0,_,_,_), U , F(RW)|F(Lock) , EF(WWWWWW__), 0 , 0 , O(GqdwbMem) , O(GqdwbMem)|O(Imm), U , U , U ), + INST(Addpd , "addpd" , Enc(SimdRm) , O_660F00(58,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Addps , "addps" , Enc(SimdRm) , O_000F00(58,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Addsd , "addsd" , Enc(SimdRm) , O_F20F00(58,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Addss , "addss" , Enc(SimdRm) , O_F30F00(58,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Addsubpd , "addsubpd" , Enc(SimdRm) , O_660F00(D0,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Addsubps , "addsubps" , Enc(SimdRm) , O_F20F00(D0,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Adox , "adox" , Enc(X86RegRm) , O_F30F38(F6,U,_,_,_), U , F(RW) , EF(X_______), 0 , 0 , O(Gqd) , O(GqdMem) , U , U , U ), + INST(Aesdec , "aesdec" , Enc(SimdRm) , O_660F38(DE,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Aesdeclast , "aesdeclast" , Enc(SimdRm) , O_660F38(DF,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Aesenc , "aesenc" , Enc(SimdRm) , O_660F38(DC,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Aesenclast , "aesenclast" , Enc(SimdRm) , O_660F38(DD,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Aesimc , "aesimc" , Enc(SimdRm) , O_660F38(DB,U,_,_,_), U , F(WO) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Aeskeygenassist , "aeskeygenassist" , Enc(SimdRmi) , O_660F3A(DF,U,_,_,_), U , F(WO) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), + INST(And , "and" , Enc(X86Arith) , O_000000(20,4,_,_,_), U , F(RW)|F(Lock) , EF(WWWUWW__), 0 , 0 , O(GqdwbMem) , O(GqdwbMem)|O(Imm), U , U , U ), + INST(Andn , "andn" , Enc(AvxRvm_OptW) , O_000F38(F2,U,_,_,_), U , F(RW) , EF(WWWUUW__), 0 , 0 , O(Gqd) , O(Gqd) , O(GqdMem) , U , U ), + INST(Andnpd , "andnpd" , Enc(SimdRm) , O_660F00(55,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Andnps , "andnps" , Enc(SimdRm) , O_000F00(55,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Andpd , "andpd" , Enc(SimdRm) , O_660F00(54,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Andps , "andps" , Enc(SimdRm) , O_000F00(54,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Bextr , "bextr" , Enc(AvxRmv_OptW) , O_000F38(F7,U,_,_,_), U , F(RW) , EF(WUWUUW__), 0 , 0 , O(Gqd) , O(GqdMem) , O(Gqd) , U , U ), + INST(Blcfill , "blcfill" , Enc(XopVm_OptW) , O_00_M09(01,1,_,_,_), U , F(WO) , EF(WWWUUW__), 0 , 0 , O(Gqd) , O(GqdMem) , U , U , U ), + INST(Blci , "blci" , Enc(XopVm_OptW) , O_00_M09(02,6,_,_,_), U , F(WO) , EF(WWWUUW__), 0 , 0 , O(Gqd) , O(GqdMem) , U , U , U ), + INST(Blcic , "blcic" , Enc(XopVm_OptW) , O_00_M09(01,5,_,_,_), U , F(WO) , EF(WWWUUW__), 0 , 0 , O(Gqd) , O(GqdMem) , U , U , U ), + INST(Blcmsk , "blcmsk" , Enc(XopVm_OptW) , O_00_M09(02,1,_,_,_), U , F(WO) , EF(WWWUUW__), 0 , 0 , O(Gqd) , O(GqdMem) , U , U , U ), + INST(Blcs , "blcs" , Enc(XopVm_OptW) , O_00_M09(01,3,_,_,_), U , F(WO) , EF(WWWUUW__), 0 , 0 , O(Gqd) , O(GqdMem) , U , U , U ), + INST(Blendpd , "blendpd" , Enc(SimdRmi) , O_660F3A(0D,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), + INST(Blendps , "blendps" , Enc(SimdRmi) , O_660F3A(0C,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), + INST(Blendvpd , "blendvpd" , Enc(SimdRm) , O_660F38(15,U,_,_,_), U , F(RW)|F(Special) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Blendvps , "blendvps" , Enc(SimdRm) , O_660F38(14,U,_,_,_), U , F(RW)|F(Special) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Blsfill , "blsfill" , Enc(XopVm_OptW) , O_00_M09(01,2,_,_,_), U , F(WO) , EF(WWWUUW__), 0 , 0 , O(Gqd) , O(GqdMem) , U , U , U ), + INST(Blsi , "blsi" , Enc(AvxVm_OptW) , O_000F38(F3,3,_,_,_), U , F(RW) , EF(WWWUUW__), 0 , 0 , O(Gqd) , O(GqdMem) , U , U , U ), + INST(Blsic , "blsic" , Enc(XopVm_OptW) , O_00_M09(01,6,_,_,_), U , F(WO) , EF(WWWUUW__), 0 , 0 , O(Gqd) , O(GqdMem) , U , U , U ), + INST(Blsmsk , "blsmsk" , Enc(AvxVm_OptW) , O_000F38(F3,2,_,_,_), U , F(RW) , EF(WWWUUW__), 0 , 0 , O(Gqd) , O(GqdMem) , U , U , U ), + INST(Blsr , "blsr" , Enc(AvxVm_OptW) , O_000F38(F3,1,_,_,_), U , F(RW) , EF(WWWUUW__), 0 , 0 , O(Gqd) , O(GqdMem) , U , U , U ), + INST(Bsf , "bsf" , Enc(X86RegRm) , O_000F00(BC,U,_,_,_), U , F(RW) , EF(UUWUUU__), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Bsr , "bsr" , Enc(X86RegRm) , O_000F00(BD,U,_,_,_), U , F(RW) , EF(UUWUUU__), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Bswap , "bswap" , Enc(X86BSwap) , O_000F00(C8,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Gqd) , U , U , U , U ), + INST(Bt , "bt" , Enc(X86BTest) , O_000F00(A3,U,_,_,_), O_000F00(BA,4,_,_,_), F(RO) , EF(UU_UUW__), 0 , 0 , O(GqdwMem) , O(Gqdw)|O(Imm) , U , U , U ), + INST(Btc , "btc" , Enc(X86BTest) , O_000F00(BB,U,_,_,_), O_000F00(BA,7,_,_,_), F(RW)|F(Lock) , EF(UU_UUW__), 0 , 0 , O(GqdwMem) , O(Gqdw)|O(Imm) , U , U , U ), + INST(Btr , "btr" , Enc(X86BTest) , O_000F00(B3,U,_,_,_), O_000F00(BA,6,_,_,_), F(RW)|F(Lock) , EF(UU_UUW__), 0 , 0 , O(GqdwMem) , O(Gqdw)|O(Imm) , U , U , U ), + INST(Bts , "bts" , Enc(X86BTest) , O_000F00(AB,U,_,_,_), O_000F00(BA,5,_,_,_), F(RW)|F(Lock) , EF(UU_UUW__), 0 , 0 , O(GqdwMem) , O(Gqdw)|O(Imm) , U , U , U ), + INST(Bzhi , "bzhi" , Enc(AvxRmv_OptW) , O_000F38(F5,U,_,_,_), U , F(RW) , EF(WWWUUW__), 0 , 0 , O(Gqd) , O(GqdMem) , O(Gqd) , U , U ), + INST(Call , "call" , Enc(X86Call) , O_000000(FF,2,_,_,_), O_000000(E8,U,_,_,_), F(RW)|F(Flow)|F(Volatile) , EF(________), 0 , 0 , O(GqdMem)|O(LImm) , U , U , U , U ), + INST(Cbw , "cbw" , Enc(X86Op) , O_660000(98,U,_,_,_), U , F(RW)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Cdq , "cdq" , Enc(X86Op) , O_000000(99,U,_,_,_), U , F(RW)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Cdqe , "cdqe" , Enc(X86Op) , O_000000(98,U,_,W,_), U , F(RW)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Clc , "clc" , Enc(X86Op) , O_000000(F8,U,_,_,_), U , F(Volatile) , EF(_____W__), 0 , 0 , U , U , U , U , U ), + INST(Cld , "cld" , Enc(X86Op) , O_000000(FC,U,_,_,_), U , F(Volatile) , EF(______W_), 0 , 0 , U , U , U , U , U ), + INST(Clflush , "clflush" , Enc(X86M) , O_000F00(AE,7,_,_,_), U , F(RO)|F(Volatile) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Clflushopt , "clflushopt" , Enc(X86M) , O_660F00(AE,7,_,_,_), U , F(RO)|F(Volatile) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Cmc , "cmc" , Enc(X86Op) , O_000000(F5,U,_,_,_), U , F(None) , EF(_____X__), 0 , 0 , U , U , U , U , U ), + INST(Cmova , "cmova" , Enc(X86RegRm) , O_000F00(47,U,_,_,_), U , F(RW) , EF(__R__R__), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Cmovae , "cmovae" , Enc(X86RegRm) , O_000F00(43,U,_,_,_), U , F(RW) , EF(_____R__), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Cmovb , "cmovb" , Enc(X86RegRm) , O_000F00(42,U,_,_,_), U , F(RW) , EF(_____R__), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Cmovbe , "cmovbe" , Enc(X86RegRm) , O_000F00(46,U,_,_,_), U , F(RW) , EF(__R__R__), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Cmovc , "cmovc" , Enc(X86RegRm) , O_000F00(42,U,_,_,_), U , F(RW) , EF(_____R__), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Cmove , "cmove" , Enc(X86RegRm) , O_000F00(44,U,_,_,_), U , F(RW) , EF(__R_____), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Cmovg , "cmovg" , Enc(X86RegRm) , O_000F00(4F,U,_,_,_), U , F(RW) , EF(RRR_____), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Cmovge , "cmovge" , Enc(X86RegRm) , O_000F00(4D,U,_,_,_), U , F(RW) , EF(RR______), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Cmovl , "cmovl" , Enc(X86RegRm) , O_000F00(4C,U,_,_,_), U , F(RW) , EF(RR______), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Cmovle , "cmovle" , Enc(X86RegRm) , O_000F00(4E,U,_,_,_), U , F(RW) , EF(RRR_____), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Cmovna , "cmovna" , Enc(X86RegRm) , O_000F00(46,U,_,_,_), U , F(RW) , EF(__R__R__), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Cmovnae , "cmovnae" , Enc(X86RegRm) , O_000F00(42,U,_,_,_), U , F(RW) , EF(_____R__), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Cmovnb , "cmovnb" , Enc(X86RegRm) , O_000F00(43,U,_,_,_), U , F(RW) , EF(_____R__), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Cmovnbe , "cmovnbe" , Enc(X86RegRm) , O_000F00(47,U,_,_,_), U , F(RW) , EF(__R__R__), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Cmovnc , "cmovnc" , Enc(X86RegRm) , O_000F00(43,U,_,_,_), U , F(RW) , EF(_____R__), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Cmovne , "cmovne" , Enc(X86RegRm) , O_000F00(45,U,_,_,_), U , F(RW) , EF(__R_____), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Cmovng , "cmovng" , Enc(X86RegRm) , O_000F00(4E,U,_,_,_), U , F(RW) , EF(RRR_____), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Cmovnge , "cmovnge" , Enc(X86RegRm) , O_000F00(4C,U,_,_,_), U , F(RW) , EF(RR______), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Cmovnl , "cmovnl" , Enc(X86RegRm) , O_000F00(4D,U,_,_,_), U , F(RW) , EF(RR______), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Cmovnle , "cmovnle" , Enc(X86RegRm) , O_000F00(4F,U,_,_,_), U , F(RW) , EF(RRR_____), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Cmovno , "cmovno" , Enc(X86RegRm) , O_000F00(41,U,_,_,_), U , F(RW) , EF(R_______), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Cmovnp , "cmovnp" , Enc(X86RegRm) , O_000F00(4B,U,_,_,_), U , F(RW) , EF(____R___), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Cmovns , "cmovns" , Enc(X86RegRm) , O_000F00(49,U,_,_,_), U , F(RW) , EF(_R______), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Cmovnz , "cmovnz" , Enc(X86RegRm) , O_000F00(45,U,_,_,_), U , F(RW) , EF(__R_____), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Cmovo , "cmovo" , Enc(X86RegRm) , O_000F00(40,U,_,_,_), U , F(RW) , EF(R_______), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Cmovp , "cmovp" , Enc(X86RegRm) , O_000F00(4A,U,_,_,_), U , F(RW) , EF(____R___), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Cmovpe , "cmovpe" , Enc(X86RegRm) , O_000F00(4A,U,_,_,_), U , F(RW) , EF(____R___), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Cmovpo , "cmovpo" , Enc(X86RegRm) , O_000F00(4B,U,_,_,_), U , F(RW) , EF(____R___), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Cmovs , "cmovs" , Enc(X86RegRm) , O_000F00(48,U,_,_,_), U , F(RW) , EF(_R______), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Cmovz , "cmovz" , Enc(X86RegRm) , O_000F00(44,U,_,_,_), U , F(RW) , EF(__R_____), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Cmp , "cmp" , Enc(X86Arith) , O_000000(38,7,_,_,_), U , F(RO) , EF(WWWWWW__), 0 , 0 , O(GqdwbMem) , O(GqdwbMem)|O(Imm), U , U , U ), + INST(Cmppd , "cmppd" , Enc(SimdRmi) , O_660F00(C2,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), + INST(Cmpps , "cmpps" , Enc(SimdRmi) , O_000F00(C2,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), + INST(CmpsB , "cmps_b" , Enc(X86Op) , O_000000(A6,U,_,_,_), U , F(RW)|F(Volatile)|F(Special) , EF(WWWWWWR_), 0 , 0 , U , U , U , U , U ), + INST(CmpsD , "cmps_d" , Enc(X86Op) , O_000000(A7,U,_,_,_), U , F(RW)|F(Volatile)|F(Special) , EF(WWWWWWR_), 0 , 0 , U , U , U , U , U ), + INST(CmpsQ , "cmps_q" , Enc(X86Op) , O_000000(A7,U,_,W,_), U , F(RW)|F(Volatile)|F(Special) , EF(WWWWWWR_), 0 , 0 , U , U , U , U , U ), + INST(CmpsW , "cmps_w" , Enc(X86Op_66H) , O_000000(A7,U,_,_,_), U , F(RW)|F(Volatile)|F(Special) , EF(WWWWWWR_), 0 , 0 , U , U , U , U , U ), + INST(Cmpsd , "cmpsd" , Enc(SimdRmi) , O_F20F00(C2,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), + INST(Cmpss , "cmpss" , Enc(SimdRmi) , O_F30F00(C2,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), + INST(Cmpxchg , "cmpxchg" , Enc(X86RmReg) , O_000F00(B0,U,_,_,_), U , F(RW)|F(Lock)|F(Special) , EF(WWWWWW__), 0 , 0 , U , U , U , U , U ), + INST(Cmpxchg16b , "cmpxchg16b" , Enc(X86M) , O_000F00(C7,1,_,W,_), U , F(RW)|F(Lock)|F(Special) , EF(__W_____), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Cmpxchg8b , "cmpxchg8b" , Enc(X86M) , O_000F00(C7,1,_,_,_), U , F(RW)|F(Lock)|F(Special) , EF(__W_____), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Comisd , "comisd" , Enc(SimdRm) , O_660F00(2F,U,_,_,_), U , F(RO) , EF(WWWWWW__), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Comiss , "comiss" , Enc(SimdRm) , O_000F00(2F,U,_,_,_), U , F(RO) , EF(WWWWWW__), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Cpuid , "cpuid" , Enc(X86Op) , O_000F00(A2,U,_,_,_), U , F(RW)|F(Volatile)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Cqo , "cqo" , Enc(X86Op) , O_000000(99,U,_,W,_), U , F(RW)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Crc32 , "crc32" , Enc(X86Crc) , O_F20F38(F0,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Gqd) , O(GqdwbMem) , U , U , U ), + INST(Cvtdq2pd , "cvtdq2pd" , Enc(SimdRm) , O_F30F00(E6,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), + INST(Cvtdq2ps , "cvtdq2ps" , Enc(SimdRm) , O_000F00(5B,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), + INST(Cvtpd2dq , "cvtpd2dq" , Enc(SimdRm) , O_F20F00(E6,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), + INST(Cvtpd2pi , "cvtpd2pi" , Enc(SimdRm) , O_660F00(2D,U,_,_,_), U , F(WO) , EF(________), 0 , 8 , O(Mm) , O(XmmMem) , U , U , U ), + INST(Cvtpd2ps , "cvtpd2ps" , Enc(SimdRm) , O_660F00(5A,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), + INST(Cvtpi2pd , "cvtpi2pd" , Enc(SimdRm) , O_660F00(2A,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(MmMem) , U , U , U ), + INST(Cvtpi2ps , "cvtpi2ps" , Enc(SimdRm) , O_000F00(2A,U,_,_,_), U , F(WO) , EF(________), 0 , 8 , O(Xmm) , O(MmMem) , U , U , U ), + INST(Cvtps2dq , "cvtps2dq" , Enc(SimdRm) , O_660F00(5B,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), + INST(Cvtps2pd , "cvtps2pd" , Enc(SimdRm) , O_000F00(5A,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), + INST(Cvtps2pi , "cvtps2pi" , Enc(SimdRm) , O_000F00(2D,U,_,_,_), U , F(WO) , EF(________), 0 , 8 , O(Mm) , O(XmmMem) , U , U , U ), + INST(Cvtsd2si , "cvtsd2si" , Enc(SimdRm_Q) , O_F20F00(2D,U,_,_,_), U , F(WO) , EF(________), 0 , 8 , O(Gqd) , O(XmmMem) , U , U , U ), + INST(Cvtsd2ss , "cvtsd2ss" , Enc(SimdRm) , O_F20F00(5A,U,_,_,_), U , F(WO) , EF(________), 0 , 4 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Cvtsi2sd , "cvtsi2sd" , Enc(SimdRm_Q) , O_F20F00(2A,U,_,_,_), U , F(WO) , EF(________), 0 , 8 , O(Xmm) , O(GqdMem) , U , U , U ), + INST(Cvtsi2ss , "cvtsi2ss" , Enc(SimdRm_Q) , O_F30F00(2A,U,_,_,_), U , F(WO) , EF(________), 0 , 4 , O(Xmm) , O(GqdMem) , U , U , U ), + INST(Cvtss2sd , "cvtss2sd" , Enc(SimdRm) , O_F30F00(5A,U,_,_,_), U , F(WO) , EF(________), 0 , 8 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Cvtss2si , "cvtss2si" , Enc(SimdRm_Q) , O_F30F00(2D,U,_,_,_), U , F(WO) , EF(________), 0 , 8 , O(Gqd) , O(XmmMem) , U , U , U ), + INST(Cvttpd2dq , "cvttpd2dq" , Enc(SimdRm) , O_660F00(E6,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), + INST(Cvttpd2pi , "cvttpd2pi" , Enc(SimdRm) , O_660F00(2C,U,_,_,_), U , F(WO) , EF(________), 0 , 8 , O(Mm) , O(XmmMem) , U , U , U ), + INST(Cvttps2dq , "cvttps2dq" , Enc(SimdRm) , O_F30F00(5B,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), + INST(Cvttps2pi , "cvttps2pi" , Enc(SimdRm) , O_000F00(2C,U,_,_,_), U , F(WO) , EF(________), 0 , 8 , O(Mm) , O(XmmMem) , U , U , U ), + INST(Cvttsd2si , "cvttsd2si" , Enc(SimdRm_Q) , O_F20F00(2C,U,_,_,_), U , F(WO) , EF(________), 0 , 8 , O(Gqd) , O(XmmMem) , U , U , U ), + INST(Cvttss2si , "cvttss2si" , Enc(SimdRm_Q) , O_F30F00(2C,U,_,_,_), U , F(WO) , EF(________), 0 , 8 , O(Gqd) , O(XmmMem) , U , U , U ), + INST(Cwd , "cwd" , Enc(X86Op) , O_660000(99,U,_,_,_), U , F(RW)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Cwde , "cwde" , Enc(X86Op) , O_000000(98,U,_,_,_), U , F(RW)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Daa , "daa" , Enc(X86Op) , O_000000(27,U,_,_,_), U , F(RW)|F(Special) , EF(UWWXWX__), 0 , 0 , U , U , U , U , U ), + INST(Das , "das" , Enc(X86Op) , O_000000(2F,U,_,_,_), U , F(RW)|F(Special) , EF(UWWXWX__), 0 , 0 , U , U , U , U , U ), + INST(Dec , "dec" , Enc(X86IncDec) , O_000000(FE,1,_,_,_), O_000000(48,U,_,_,_), F(RW)|F(Lock) , EF(WWWWW___), 0 , 0 , O(GqdwbMem) , U , U , U , U ), + INST(Div , "div" , Enc(X86Rm_B) , O_000000(F6,6,_,_,_), U , F(RW)|F(Special) , EF(UUUUUU__), 0 , 0 , U , U , U , U , U ), + INST(Divpd , "divpd" , Enc(SimdRm) , O_660F00(5E,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Divps , "divps" , Enc(SimdRm) , O_000F00(5E,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Divsd , "divsd" , Enc(SimdRm) , O_F20F00(5E,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Divss , "divss" , Enc(SimdRm) , O_F30F00(5E,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Dppd , "dppd" , Enc(SimdRmi) , O_660F3A(41,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), + INST(Dpps , "dpps" , Enc(SimdRmi) , O_660F3A(40,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), + INST(Emms , "emms" , Enc(X86Op) , O_000F00(77,U,_,_,_), U , F(Volatile) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Enter , "enter" , Enc(X86Enter) , O_000000(C8,U,_,_,_), U , F(Volatile)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Extractps , "extractps" , Enc(SimdExtract) , O_660F3A(17,U,_,_,_), U , F(WO) , EF(________), 0 , 8 , O(GqdMem) , O(Xmm) , U , U , U ), + INST(Extrq , "extrq" , Enc(SimdExtrq) , O_660F00(79,U,_,_,_), O_660F00(78,0,_,_,_), F(RW) , EF(________), 0 , 0 , O(Xmm) , O(Xmm)|O(Imm) , O(None)|O(Imm) , U , U ), + INST(F2xm1 , "f2xm1" , Enc(FpuOp) , O_00_X(D9F0,U) , U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Fabs , "fabs" , Enc(FpuOp) , O_00_X(D9E1,U) , U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Fadd , "fadd" , Enc(FpuArith) , O_00_X(C0C0,0) , U , F(Fp)|F(Mem4_8) , EF(________), 0 , 0 , O(FpMem) , O(Fp) , U , U , U ), + INST(Faddp , "faddp" , Enc(FpuRDef) , O_00_X(DEC0,U) , U , F(Fp) , EF(________), 0 , 0 , O(Fp) , U , U , U , U ), + INST(Fbld , "fbld" , Enc(X86M) , O_000000(DF,4,_,_,_), U , F(Fp) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Fbstp , "fbstp" , Enc(X86M) , O_000000(DF,6,_,_,_), U , F(Fp) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Fchs , "fchs" , Enc(FpuOp) , O_00_X(D9E0,U) , U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Fclex , "fclex" , Enc(FpuOp) , O_9B_X(DBE2,U) , U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Fcmovb , "fcmovb" , Enc(FpuR) , O_00_X(DAC0,U) , U , F(Fp) , EF(_____R__), 0 , 0 , O(Fp) , U , U , U , U ), + INST(Fcmovbe , "fcmovbe" , Enc(FpuR) , O_00_X(DAD0,U) , U , F(Fp) , EF(__R__R__), 0 , 0 , O(Fp) , U , U , U , U ), + INST(Fcmove , "fcmove" , Enc(FpuR) , O_00_X(DAC8,U) , U , F(Fp) , EF(__R_____), 0 , 0 , O(Fp) , U , U , U , U ), + INST(Fcmovnb , "fcmovnb" , Enc(FpuR) , O_00_X(DBC0,U) , U , F(Fp) , EF(_____R__), 0 , 0 , O(Fp) , U , U , U , U ), + INST(Fcmovnbe , "fcmovnbe" , Enc(FpuR) , O_00_X(DBD0,U) , U , F(Fp) , EF(__R__R__), 0 , 0 , O(Fp) , U , U , U , U ), + INST(Fcmovne , "fcmovne" , Enc(FpuR) , O_00_X(DBC8,U) , U , F(Fp) , EF(__R_____), 0 , 0 , O(Fp) , U , U , U , U ), + INST(Fcmovnu , "fcmovnu" , Enc(FpuR) , O_00_X(DBD8,U) , U , F(Fp) , EF(____R___), 0 , 0 , O(Fp) , U , U , U , U ), + INST(Fcmovu , "fcmovu" , Enc(FpuR) , O_00_X(DAD8,U) , U , F(Fp) , EF(____R___), 0 , 0 , O(Fp) , U , U , U , U ), + INST(Fcom , "fcom" , Enc(FpuCom) , O_00_X(D0D0,2) , U , F(Fp) , EF(________), 0 , 0 , O(Fp)|O(Mem) , O(Fp) , U , U , U ), + INST(Fcomi , "fcomi" , Enc(FpuR) , O_00_X(DBF0,U) , U , F(Fp) , EF(WWWWWW__), 0 , 0 , O(Fp) , U , U , U , U ), + INST(Fcomip , "fcomip" , Enc(FpuR) , O_00_X(DFF0,U) , U , F(Fp) , EF(WWWWWW__), 0 , 0 , O(Fp) , U , U , U , U ), + INST(Fcomp , "fcomp" , Enc(FpuCom) , O_00_X(D8D8,3) , U , F(Fp) , EF(________), 0 , 0 , O(Fp)|O(Mem) , O(Fp) , U , U , U ), + INST(Fcompp , "fcompp" , Enc(FpuOp) , O_00_X(DED9,U) , U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Fcos , "fcos" , Enc(FpuOp) , O_00_X(D9FF,U) , U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Fdecstp , "fdecstp" , Enc(FpuOp) , O_00_X(D9F6,U) , U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Fdiv , "fdiv" , Enc(FpuArith) , O_00_X(F0F8,6) , U , F(Fp)|F(Mem4_8) , EF(________), 0 , 0 , O(FpMem) , O(Fp) , U , U , U ), + INST(Fdivp , "fdivp" , Enc(FpuRDef) , O_00_X(DEF8,U) , U , F(Fp) , EF(________), 0 , 0 , O(Fp) , U , U , U , U ), + INST(Fdivr , "fdivr" , Enc(FpuArith) , O_00_X(F8F0,7) , U , F(Fp)|F(Mem4_8) , EF(________), 0 , 0 , O(FpMem) , O(Fp) , U , U , U ), + INST(Fdivrp , "fdivrp" , Enc(FpuRDef) , O_00_X(DEF0,U) , U , F(Fp) , EF(________), 0 , 0 , O(Fp) , U , U , U , U ), + INST(Femms , "femms" , Enc(X86Op) , O_000F00(0E,U,_,_,_), U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Ffree , "ffree" , Enc(FpuR) , O_00_X(DDC0,U) , U , F(Fp) , EF(________), 0 , 0 , O(Fp) , U , U , U , U ), + INST(Fiadd , "fiadd" , Enc(FpuM) , O_000000(DA,0,_,_,_), U , F(Fp)|F(Mem2_4) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Ficom , "ficom" , Enc(FpuM) , O_000000(DA,2,_,_,_), U , F(Fp)|F(Mem2_4) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Ficomp , "ficomp" , Enc(FpuM) , O_000000(DA,3,_,_,_), U , F(Fp)|F(Mem2_4) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Fidiv , "fidiv" , Enc(FpuM) , O_000000(DA,6,_,_,_), U , F(Fp)|F(Mem2_4) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Fidivr , "fidivr" , Enc(FpuM) , O_000000(DA,7,_,_,_), U , F(Fp)|F(Mem2_4) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Fild , "fild" , Enc(FpuM) , O_000000(DB,0,_,_,_), O_000000(DF,5,_,_,_), F(Fp)|F(Mem2_4_8) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Fimul , "fimul" , Enc(FpuM) , O_000000(DA,1,_,_,_), U , F(Fp)|F(Mem2_4) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Fincstp , "fincstp" , Enc(FpuOp) , O_00_X(D9F7,U) , U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Finit , "finit" , Enc(FpuOp) , O_9B_X(DBE3,U) , U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Fist , "fist" , Enc(FpuM) , O_000000(DB,2,_,_,_), U , F(Fp)|F(Mem2_4) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Fistp , "fistp" , Enc(FpuM) , O_000000(DB,3,_,_,_), O_000000(DF,7,_,_,_), F(Fp)|F(Mem2_4_8) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Fisttp , "fisttp" , Enc(FpuM) , O_000000(DB,1,_,_,_), O_000000(DD,1,_,_,_), F(Fp)|F(Mem2_4_8) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Fisub , "fisub" , Enc(FpuM) , O_000000(DA,4,_,_,_), U , F(Fp)|F(Mem2_4) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Fisubr , "fisubr" , Enc(FpuM) , O_000000(DA,5,_,_,_), U , F(Fp)|F(Mem2_4) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Fld , "fld" , Enc(FpuFldFst) , O_000000(D9,0,_,_,_), O_000000(DB,5,_,_,_), F(Fp)|F(Mem4_8_10) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Fld1 , "fld1" , Enc(FpuOp) , O_00_X(D9E8,U) , U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Fldcw , "fldcw" , Enc(X86M) , O_000000(D9,5,_,_,_), U , F(Fp) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Fldenv , "fldenv" , Enc(X86M) , O_000000(D9,4,_,_,_), U , F(Fp) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Fldl2e , "fldl2e" , Enc(FpuOp) , O_00_X(D9EA,U) , U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Fldl2t , "fldl2t" , Enc(FpuOp) , O_00_X(D9E9,U) , U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Fldlg2 , "fldlg2" , Enc(FpuOp) , O_00_X(D9EC,U) , U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Fldln2 , "fldln2" , Enc(FpuOp) , O_00_X(D9ED,U) , U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Fldpi , "fldpi" , Enc(FpuOp) , O_00_X(D9EB,U) , U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Fldz , "fldz" , Enc(FpuOp) , O_00_X(D9EE,U) , U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Fmul , "fmul" , Enc(FpuArith) , O_00_X(C8C8,1) , U , F(Fp)|F(Mem4_8) , EF(________), 0 , 0 , O(FpMem) , O(Fp) , U , U , U ), + INST(Fmulp , "fmulp" , Enc(FpuRDef) , O_00_X(DEC8,U) , U , F(Fp) , EF(________), 0 , 0 , O(Fp) , U , U , U , U ), + INST(Fnclex , "fnclex" , Enc(FpuOp) , O_00_X(DBE2,U) , U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Fninit , "fninit" , Enc(FpuOp) , O_00_X(DBE3,U) , U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Fnop , "fnop" , Enc(FpuOp) , O_00_X(D9D0,U) , U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Fnsave , "fnsave" , Enc(X86M) , O_000000(DD,6,_,_,_), U , F(Fp) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Fnstcw , "fnstcw" , Enc(X86M) , O_000000(D9,7,_,_,_), U , F(Fp) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Fnstenv , "fnstenv" , Enc(X86M) , O_000000(D9,6,_,_,_), U , F(Fp) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Fnstsw , "fnstsw" , Enc(FpuStsw) , O_000000(DD,7,_,_,_), O_00_X(DFE0,U) , F(Fp) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Fpatan , "fpatan" , Enc(FpuOp) , O_00_X(D9F3,U) , U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Fprem , "fprem" , Enc(FpuOp) , O_00_X(D9F8,U) , U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Fprem1 , "fprem1" , Enc(FpuOp) , O_00_X(D9F5,U) , U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Fptan , "fptan" , Enc(FpuOp) , O_00_X(D9F2,U) , U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Frndint , "frndint" , Enc(FpuOp) , O_00_X(D9FC,U) , U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Frstor , "frstor" , Enc(X86M) , O_000000(DD,4,_,_,_), U , F(Fp) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Fsave , "fsave" , Enc(X86M) , O_9B0000(DD,6,_,_,_), U , F(Fp) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Fscale , "fscale" , Enc(FpuOp) , O_00_X(D9FD,U) , U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Fsin , "fsin" , Enc(FpuOp) , O_00_X(D9FE,U) , U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Fsincos , "fsincos" , Enc(FpuOp) , O_00_X(D9FB,U) , U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Fsqrt , "fsqrt" , Enc(FpuOp) , O_00_X(D9FA,U) , U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Fst , "fst" , Enc(FpuFldFst) , O_000000(D9,2,_,_,_), U , F(Fp)|F(Mem4_8) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Fstcw , "fstcw" , Enc(X86M) , O_9B0000(D9,7,_,_,_), U , F(Fp) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Fstenv , "fstenv" , Enc(X86M) , O_9B0000(D9,6,_,_,_), U , F(Fp) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Fstp , "fstp" , Enc(FpuFldFst) , O_000000(D9,3,_,_,_), O_000000(DB,7,_,_,_), F(Fp)|F(Mem4_8_10) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Fstsw , "fstsw" , Enc(FpuStsw) , O_9B0000(DD,7,_,_,_), O_9B_X(DFE0,U) , F(Fp) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Fsub , "fsub" , Enc(FpuArith) , O_00_X(E0E8,4) , U , F(Fp)|F(Mem4_8) , EF(________), 0 , 0 , O(FpMem) , O(Fp) , U , U , U ), + INST(Fsubp , "fsubp" , Enc(FpuRDef) , O_00_X(DEE8,U) , U , F(Fp) , EF(________), 0 , 0 , O(Fp) , U , U , U , U ), + INST(Fsubr , "fsubr" , Enc(FpuArith) , O_00_X(E8E0,5) , U , F(Fp)|F(Mem4_8) , EF(________), 0 , 0 , O(FpMem) , O(Fp) , U , U , U ), + INST(Fsubrp , "fsubrp" , Enc(FpuRDef) , O_00_X(DEE0,U) , U , F(Fp) , EF(________), 0 , 0 , O(Fp) , U , U , U , U ), + INST(Ftst , "ftst" , Enc(FpuOp) , O_00_X(D9E4,U) , U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Fucom , "fucom" , Enc(FpuRDef) , O_00_X(DDE0,U) , U , F(Fp) , EF(________), 0 , 0 , O(Fp) , U , U , U , U ), + INST(Fucomi , "fucomi" , Enc(FpuR) , O_00_X(DBE8,U) , U , F(Fp) , EF(WWWWWW__), 0 , 0 , O(Fp) , U , U , U , U ), + INST(Fucomip , "fucomip" , Enc(FpuR) , O_00_X(DFE8,U) , U , F(Fp) , EF(WWWWWW__), 0 , 0 , O(Fp) , U , U , U , U ), + INST(Fucomp , "fucomp" , Enc(FpuRDef) , O_00_X(DDE8,U) , U , F(Fp) , EF(________), 0 , 0 , O(Fp) , U , U , U , U ), + INST(Fucompp , "fucompp" , Enc(FpuOp) , O_00_X(DAE9,U) , U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Fwait , "fwait" , Enc(X86Op) , O_000000(DB,U,_,_,_), U , F(Fp)|F(Volatile) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Fxam , "fxam" , Enc(FpuOp) , O_00_X(D9E5,U) , U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Fxch , "fxch" , Enc(FpuR) , O_00_X(D9C8,U) , U , F(Fp) , EF(________), 0 , 0 , O(Fp) , U , U , U , U ), + INST(Fxrstor , "fxrstor" , Enc(X86M) , O_000F00(AE,1,_,_,_), U , F(Fp) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Fxrstor64 , "fxrstor64" , Enc(X86M) , O_000F00(AE,1,_,W,_), U , F(Fp) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Fxsave , "fxsave" , Enc(X86M) , O_000F00(AE,0,_,_,_), U , F(Fp) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Fxsave64 , "fxsave64" , Enc(X86M) , O_000F00(AE,0,_,W,_), U , F(Fp) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Fxtract , "fxtract" , Enc(FpuOp) , O_00_X(D9F4,U) , U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Fyl2x , "fyl2x" , Enc(FpuOp) , O_00_X(D9F1,U) , U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Fyl2xp1 , "fyl2xp1" , Enc(FpuOp) , O_00_X(D9F9,U) , U , F(Fp) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Haddpd , "haddpd" , Enc(SimdRm) , O_660F00(7C,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Haddps , "haddps" , Enc(SimdRm) , O_F20F00(7C,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Hsubpd , "hsubpd" , Enc(SimdRm) , O_660F00(7D,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Hsubps , "hsubps" , Enc(SimdRm) , O_F20F00(7D,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Idiv , "idiv" , Enc(X86Rm_B) , O_000000(F6,7,_,_,_), U , F(RW)|F(Special) , EF(UUUUUU__), 0 , 0 , 0 , 0 , U , U , U ), + INST(Imul , "imul" , Enc(X86Imul) , U , U , F(RW)|F(Special) , EF(WUUUUW__), 0 , 0 , 0 , 0 , U , U , U ), + INST(Inc , "inc" , Enc(X86IncDec) , O_000000(FE,0,_,_,_), O_000000(40,U,_,_,_), F(RW)|F(Lock) , EF(WWWWW___), 0 , 0 , O(GqdwbMem) , U , U , U , U ), + INST(Insertps , "insertps" , Enc(SimdRmi) , O_660F3A(21,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), + INST(Insertq , "insertq" , Enc(SimdInsertq) , O_F20F00(79,U,_,_,_), O_F20F00(78,U,_,_,_), F(RW) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(None)|O(Imm) , O(None)|O(Imm) , U ), + INST(Int , "int" , Enc(X86Int) , O_000000(CC,U,_,_,_), U , F(Volatile) , EF(_______W), 0 , 0 , U , U , U , U , U ), + INST(Ja , "ja" , Enc(X86Jcc) , O_000000(77,U,_,_,_), U , F(Flow)|F(Volatile) , EF(__R__R__), 0 , 0 , O(Label) , U , U , U , U ), + INST(Jae , "jae" , Enc(X86Jcc) , O_000000(73,U,_,_,_), U , F(Flow)|F(Volatile) , EF(_____R__), 0 , 0 , O(Label) , U , U , U , U ), + INST(Jb , "jb" , Enc(X86Jcc) , O_000000(72,U,_,_,_), U , F(Flow)|F(Volatile) , EF(_____R__), 0 , 0 , O(Label) , U , U , U , U ), + INST(Jbe , "jbe" , Enc(X86Jcc) , O_000000(76,U,_,_,_), U , F(Flow)|F(Volatile) , EF(__R__R__), 0 , 0 , O(Label) , U , U , U , U ), + INST(Jc , "jc" , Enc(X86Jcc) , O_000000(72,U,_,_,_), U , F(Flow)|F(Volatile) , EF(_____R__), 0 , 0 , O(Label) , U , U , U , U ), + INST(Je , "je" , Enc(X86Jcc) , O_000000(74,U,_,_,_), U , F(Flow)|F(Volatile) , EF(__R_____), 0 , 0 , O(Label) , U , U , U , U ), + INST(Jg , "jg" , Enc(X86Jcc) , O_000000(7F,U,_,_,_), U , F(Flow)|F(Volatile) , EF(RRR_____), 0 , 0 , O(Label) , U , U , U , U ), + INST(Jge , "jge" , Enc(X86Jcc) , O_000000(7D,U,_,_,_), U , F(Flow)|F(Volatile) , EF(RR______), 0 , 0 , O(Label) , U , U , U , U ), + INST(Jl , "jl" , Enc(X86Jcc) , O_000000(7C,U,_,_,_), U , F(Flow)|F(Volatile) , EF(RR______), 0 , 0 , O(Label) , U , U , U , U ), + INST(Jle , "jle" , Enc(X86Jcc) , O_000000(7E,U,_,_,_), U , F(Flow)|F(Volatile) , EF(RRR_____), 0 , 0 , O(Label) , U , U , U , U ), + INST(Jna , "jna" , Enc(X86Jcc) , O_000000(76,U,_,_,_), U , F(Flow)|F(Volatile) , EF(__R__R__), 0 , 0 , O(Label) , U , U , U , U ), + INST(Jnae , "jnae" , Enc(X86Jcc) , O_000000(72,U,_,_,_), U , F(Flow)|F(Volatile) , EF(_____R__), 0 , 0 , O(Label) , U , U , U , U ), + INST(Jnb , "jnb" , Enc(X86Jcc) , O_000000(73,U,_,_,_), U , F(Flow)|F(Volatile) , EF(_____R__), 0 , 0 , O(Label) , U , U , U , U ), + INST(Jnbe , "jnbe" , Enc(X86Jcc) , O_000000(77,U,_,_,_), U , F(Flow)|F(Volatile) , EF(__R__R__), 0 , 0 , O(Label) , U , U , U , U ), + INST(Jnc , "jnc" , Enc(X86Jcc) , O_000000(73,U,_,_,_), U , F(Flow)|F(Volatile) , EF(_____R__), 0 , 0 , O(Label) , U , U , U , U ), + INST(Jne , "jne" , Enc(X86Jcc) , O_000000(75,U,_,_,_), U , F(Flow)|F(Volatile) , EF(__R_____), 0 , 0 , O(Label) , U , U , U , U ), + INST(Jng , "jng" , Enc(X86Jcc) , O_000000(7E,U,_,_,_), U , F(Flow)|F(Volatile) , EF(RRR_____), 0 , 0 , O(Label) , U , U , U , U ), + INST(Jnge , "jnge" , Enc(X86Jcc) , O_000000(7C,U,_,_,_), U , F(Flow)|F(Volatile) , EF(RR______), 0 , 0 , O(Label) , U , U , U , U ), + INST(Jnl , "jnl" , Enc(X86Jcc) , O_000000(7D,U,_,_,_), U , F(Flow)|F(Volatile) , EF(RR______), 0 , 0 , O(Label) , U , U , U , U ), + INST(Jnle , "jnle" , Enc(X86Jcc) , O_000000(7F,U,_,_,_), U , F(Flow)|F(Volatile) , EF(RRR_____), 0 , 0 , O(Label) , U , U , U , U ), + INST(Jno , "jno" , Enc(X86Jcc) , O_000000(71,U,_,_,_), U , F(Flow)|F(Volatile) , EF(R_______), 0 , 0 , O(Label) , U , U , U , U ), + INST(Jnp , "jnp" , Enc(X86Jcc) , O_000000(7B,U,_,_,_), U , F(Flow)|F(Volatile) , EF(____R___), 0 , 0 , O(Label) , U , U , U , U ), + INST(Jns , "jns" , Enc(X86Jcc) , O_000000(79,U,_,_,_), U , F(Flow)|F(Volatile) , EF(_R______), 0 , 0 , O(Label) , U , U , U , U ), + INST(Jnz , "jnz" , Enc(X86Jcc) , O_000000(75,U,_,_,_), U , F(Flow)|F(Volatile) , EF(__R_____), 0 , 0 , O(Label) , U , U , U , U ), + INST(Jo , "jo" , Enc(X86Jcc) , O_000000(70,U,_,_,_), U , F(Flow)|F(Volatile) , EF(R_______), 0 , 0 , O(Label) , U , U , U , U ), + INST(Jp , "jp" , Enc(X86Jcc) , O_000000(7A,U,_,_,_), U , F(Flow)|F(Volatile) , EF(____R___), 0 , 0 , O(Label) , U , U , U , U ), + INST(Jpe , "jpe" , Enc(X86Jcc) , O_000000(7A,U,_,_,_), U , F(Flow)|F(Volatile) , EF(____R___), 0 , 0 , O(Label) , U , U , U , U ), + INST(Jpo , "jpo" , Enc(X86Jcc) , O_000000(7B,U,_,_,_), U , F(Flow)|F(Volatile) , EF(____R___), 0 , 0 , O(Label) , U , U , U , U ), + INST(Js , "js" , Enc(X86Jcc) , O_000000(78,U,_,_,_), U , F(Flow)|F(Volatile) , EF(_R______), 0 , 0 , O(Label) , U , U , U , U ), + INST(Jz , "jz" , Enc(X86Jcc) , O_000000(74,U,_,_,_), U , F(Flow)|F(Volatile) , EF(__R_____), 0 , 0 , O(Label) , U , U , U , U ), + INST(Jecxz , "jecxz" , Enc(X86Jecxz) , O_000000(E3,U,_,_,_), U , F(Flow)|F(Volatile)|F(Special) , EF(________), 0 , 0 , O(Gqdw) , O(Label) , U , U , U ), + INST(Jmp , "jmp" , Enc(X86Jmp) , O_000000(FF,4,_,_,_), O_000000(E9,U,_,_,_), F(Flow)|F(Volatile) , EF(________), 0 , 0 , O(Label)|O(Imm) , U , U , U , U ), + INST(Lahf , "lahf" , Enc(X86Op) , O_000000(9F,U,_,_,_), U , F(RW)|F(Volatile)|F(Special) , EF(_RRRRR__), 0 , 0 , U , U , U , U , U ), + INST(Lddqu , "lddqu" , Enc(SimdRm) , O_F20F00(F0,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(Mem) , U , U , U ), + INST(Ldmxcsr , "ldmxcsr" , Enc(X86M) , O_000F00(AE,2,_,_,_), U , F(RO)|F(Volatile) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Lea , "lea" , Enc(X86Lea) , O_000000(8D,U,_,_,_), U , F(WO) , EF(________), 0 , 0 , O(Gqd) , O(Mem) , U , U , U ), + INST(Leave , "leave" , Enc(X86Op) , O_000000(C9,U,_,_,_), U , F(Volatile)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Lfence , "lfence" , Enc(X86Fence) , O_000F00(AE,5,_,_,_), U , F(Volatile) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(LodsB , "lods_b" , Enc(X86Op) , O_000000(AC,U,_,_,_), U , F(WO)|F(Special) , EF(______R_), 0 , 1 , U , U , U , U , U ), + INST(LodsD , "lods_d" , Enc(X86Op) , O_000000(AD,U,_,_,_), U , F(WO)|F(Special) , EF(______R_), 0 , 4 , U , U , U , U , U ), + INST(LodsQ , "lods_q" , Enc(X86Op) , O_000000(AD,U,_,W,_), U , F(WO)|F(Special) , EF(______R_), 0 , 8 , U , U , U , U , U ), + INST(LodsW , "lods_w" , Enc(X86Op_66H) , O_000000(AD,U,_,_,_), U , F(WO)|F(Special) , EF(______R_), 0 , 2 , U , U , U , U , U ), + INST(Lzcnt , "lzcnt" , Enc(X86RegRm) , O_F30F00(BD,U,_,_,_), U , F(RW) , EF(UUWUUW__), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Maskmovdqu , "maskmovdqu" , Enc(SimdRm) , O_660F00(57,U,_,_,_), U , F(RW)|F(Special) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , U , U , U ), + INST(Maskmovq , "maskmovq" , Enc(SimdRm) , O_000F00(F7,U,_,_,_), U , F(RW)|F(Special) , EF(________), 0 , 0 , O(Mm) , O(Mm) , U , U , U ), + INST(Maxpd , "maxpd" , Enc(SimdRm) , O_660F00(5F,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Maxps , "maxps" , Enc(SimdRm) , O_000F00(5F,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Maxsd , "maxsd" , Enc(SimdRm) , O_F20F00(5F,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Maxss , "maxss" , Enc(SimdRm) , O_F30F00(5F,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Mfence , "mfence" , Enc(X86Fence) , O_000F00(AE,6,_,_,_), U , F(RW) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Minpd , "minpd" , Enc(SimdRm) , O_660F00(5D,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Minps , "minps" , Enc(SimdRm) , O_000F00(5D,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Minsd , "minsd" , Enc(SimdRm) , O_F20F00(5D,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Minss , "minss" , Enc(SimdRm) , O_F30F00(5D,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Monitor , "monitor" , Enc(X86Op) , O_000F01(C8,U,_,_,_), U , F(RO)|F(Volatile)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Mov , "mov" , Enc(X86Mov) , U , U , F(WO) , EF(________), 0 , 0 , O(GqdwbMem) , O(GqdwbMem)|O(Imm), U , U , U ), + INST(MovPtr , "mov_ptr" , Enc(X86MovPtr) , O_000000(A0,U,_,_,_), O_000000(A2,U,_,_,_), F(WO)|F(Special) , EF(________), 0 , 0 , O(Gqdwb) , O(Imm) , U , U , U ), + INST(Movapd , "movapd" , Enc(SimdMov) , O_660F00(28,U,_,_,_), O_660F00(29,U,_,_,_), F(WO) , EF(________), 0 , 16, O(XmmMem) , O(XmmMem) , U , U , U ), + INST(Movaps , "movaps" , Enc(SimdMov) , O_000F00(28,U,_,_,_), O_000F00(29,U,_,_,_), F(WO) , EF(________), 0 , 16, O(XmmMem) , O(XmmMem) , U , U , U ), + INST(Movbe , "movbe" , Enc(SimdMovBe) , O_000F38(F0,U,_,_,_), O_000F38(F1,U,_,_,_), F(WO) , EF(________), 0 , 0 , O(GqdwMem) , O(GqdwMem) , U , U , U ), + INST(Movd , "movd" , Enc(SimdMovD) , O_000F00(6E,U,_,_,_), O_000F00(7E,U,_,_,_), F(WO) , EF(________), 0 , 16, O(Gd)|O(MmXmmMem) , O(Gd)|O(MmXmmMem) , U , U , U ), + INST(Movddup , "movddup" , Enc(SimdMov) , O_F20F00(12,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), + INST(Movdq2q , "movdq2q" , Enc(SimdMov) , O_F20F00(D6,U,_,_,_), U , F(WO) , EF(________), 0 , 8 , O(Mm) , O(Xmm) , U , U , U ), + INST(Movdqa , "movdqa" , Enc(SimdMov) , O_660F00(6F,U,_,_,_), O_660F00(7F,U,_,_,_), F(WO) , EF(________), 0 , 16, O(XmmMem) , O(XmmMem) , U , U , U ), + INST(Movdqu , "movdqu" , Enc(SimdMov) , O_F30F00(6F,U,_,_,_), O_F30F00(7F,U,_,_,_), F(WO) , EF(________), 0 , 16, O(XmmMem) , O(XmmMem) , U , U , U ), + INST(Movhlps , "movhlps" , Enc(SimdMov) , O_000F00(12,U,_,_,_), U , F(WO) , EF(________), 0 , 8 , O(Xmm) , O(Xmm) , U , U , U ), + INST(Movhpd , "movhpd" , Enc(SimdMov) , O_660F00(16,U,_,_,_), O_660F00(17,U,_,_,_), F(RW) , EF(________), 8 , 8 , O(XmmMem) , O(XmmMem) , U , U , U ), + INST(Movhps , "movhps" , Enc(SimdMov) , O_000F00(16,U,_,_,_), O_000F00(17,U,_,_,_), F(RW) , EF(________), 8 , 8 , O(XmmMem) , O(XmmMem) , U , U , U ), + INST(Movlhps , "movlhps" , Enc(SimdMov) , O_000F00(16,U,_,_,_), U , F(RW) , EF(________), 8 , 8 , O(Xmm) , O(Xmm) , U , U , U ), + INST(Movlpd , "movlpd" , Enc(SimdMov) , O_660F00(12,U,_,_,_), O_660F00(13,U,_,_,_), F(WO) , EF(________), 0 , 8 , O(XmmMem) , O(XmmMem) , U , U , U ), + INST(Movlps , "movlps" , Enc(SimdMov) , O_000F00(12,U,_,_,_), O_000F00(13,U,_,_,_), F(WO) , EF(________), 0 , 8 , O(XmmMem) , O(XmmMem) , U , U , U ), + INST(Movmskpd , "movmskpd" , Enc(SimdMovNoRexW) , O_660F00(50,U,_,_,_), U , F(WO) , EF(________), 0 , 8 , O(Gqd) , O(Xmm) , U , U , U ), + INST(Movmskps , "movmskps" , Enc(SimdMovNoRexW) , O_000F00(50,U,_,_,_), U , F(WO) , EF(________), 0 , 8 , O(Gqd) , O(Xmm) , U , U , U ), + INST(Movntdq , "movntdq" , Enc(SimdMov) , U , O_660F00(E7,U,_,_,_), F(WO) , EF(________), 0 , 16, O(Mem) , O(Xmm) , U , U , U ), + INST(Movntdqa , "movntdqa" , Enc(SimdMov) , O_660F38(2A,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(Mem) , U , U , U ), + INST(Movnti , "movnti" , Enc(SimdMov) , U , O_000F00(C3,U,_,_,_), F(WO) , EF(________), 0 , 8 , O(Mem) , O(Gqd) , U , U , U ), + INST(Movntpd , "movntpd" , Enc(SimdMov) , U , O_660F00(2B,U,_,_,_), F(WO) , EF(________), 0 , 16, O(Mem) , O(Xmm) , U , U , U ), + INST(Movntps , "movntps" , Enc(SimdMov) , U , O_000F00(2B,U,_,_,_), F(WO) , EF(________), 0 , 16, O(Mem) , O(Xmm) , U , U , U ), + INST(Movntq , "movntq" , Enc(SimdMov) , U , O_000F00(E7,U,_,_,_), F(WO) , EF(________), 0 , 8 , O(Mem) , O(Mm) , U , U , U ), + INST(Movntsd , "movntsd" , Enc(SimdMov) , U , O_F20F00(2B,U,_,_,_), F(WO) , EF(________), 0 , 8 , O(Mem) , O(Xmm) , U , U , U ), + INST(Movntss , "movntss" , Enc(SimdMov) , U , O_F30F00(2B,U,_,_,_), F(WO) , EF(________), 0 , 4 , O(Mem) , O(Xmm) , U , U , U ), + INST(Movq , "movq" , Enc(SimdMovQ) , O_000F00(6E,U,_,W,_), O_000F00(7E,U,_,W,_), F(WO) , EF(________), 0 , 16, O(Gq)|O(MmXmmMem) , O(Gq)|O(MmXmmMem) , U , U , U ), + INST(Movq2dq , "movq2dq" , Enc(SimdRm) , O_F30F00(D6,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(Mm) , U , U , U ), + INST(MovsB , "movs_b" , Enc(X86Op) , O_000000(A4,U,_,_,_), U , F(WO)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(MovsD , "movs_d" , Enc(X86Op) , O_000000(A5,U,_,_,_), U , F(WO)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(MovsQ , "movs_q" , Enc(X86Op) , O_000000(A5,U,_,W,_), U , F(WO)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(MovsW , "movs_w" , Enc(X86Op_66H) , O_000000(A5,U,_,_,_), U , F(WO)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Movsd , "movsd" , Enc(SimdMov) , O_F20F00(10,U,_,_,_), O_F20F00(11,U,_,_,_), F(WO)|F(ZeroIfMem) , EF(________), 0 , 8 , O(XmmMem) , O(XmmMem) , U , U , U ), + INST(Movshdup , "movshdup" , Enc(SimdRm) , O_F30F00(16,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), + INST(Movsldup , "movsldup" , Enc(SimdRm) , O_F30F00(12,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), + INST(Movss , "movss" , Enc(SimdMov) , O_F30F00(10,U,_,_,_), O_F30F00(11,U,_,_,_), F(WO)|F(ZeroIfMem) , EF(________), 0 , 4 , O(XmmMem) , O(XmmMem) , U , U , U ), + INST(Movsx , "movsx" , Enc(X86MovsxMovzx) , O_000F00(BE,U,_,_,_), U , F(WO) , EF(________), 0 , 0 , O(Gqdw) , O(GwbMem) , U , U , U ), + INST(Movsxd , "movsxd" , Enc(X86Movsxd) , O_000000(63,U,_,_,_), U , F(WO) , EF(________), 0 , 0 , O(Gq) , O(GdMem) , U , U , U ), + INST(Movupd , "movupd" , Enc(SimdMov) , O_660F00(10,U,_,_,_), O_660F00(11,U,_,_,_), F(WO) , EF(________), 0 , 16, O(XmmMem) , O(XmmMem) , U , U , U ), + INST(Movups , "movups" , Enc(SimdMov) , O_000F00(10,U,_,_,_), O_000F00(11,U,_,_,_), F(WO) , EF(________), 0 , 16, O(XmmMem) , O(XmmMem) , U , U , U ), + INST(Movzx , "movzx" , Enc(X86MovsxMovzx) , O_000F00(B6,U,_,_,_), U , F(WO) , EF(________), 0 , 0 , O(Gqdw) , O(GwbMem) , U , U , U ), + INST(Mpsadbw , "mpsadbw" , Enc(SimdRmi) , O_660F3A(42,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), + INST(Mul , "mul" , Enc(X86Rm_B) , O_000000(F6,4,_,_,_), U , F(RW)|F(Special) , EF(WUUUUW__), 0 , 0 , 0 , 0 , U , U , U ), + INST(Mulpd , "mulpd" , Enc(SimdRm) , O_660F00(59,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Mulps , "mulps" , Enc(SimdRm) , O_000F00(59,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Mulsd , "mulsd" , Enc(SimdRm) , O_F20F00(59,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Mulss , "mulss" , Enc(SimdRm) , O_F30F00(59,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Mulx , "mulx" , Enc(AvxRvm_OptW) , O_F20F38(F6,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Gqd) , O(Gqd) , O(GqdMem) , U , U ), + INST(Mwait , "mwait" , Enc(X86Op) , O_000F01(C9,U,_,_,_), U , F(RO)|F(Volatile)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Neg , "neg" , Enc(X86Rm_B) , O_000000(F6,3,_,_,_), U , F(RW)|F(Lock) , EF(WWWWWW__), 0 , 0 , O(GqdwbMem) , U , U , U , U ), + INST(Nop , "nop" , Enc(X86Op) , O_000000(90,U,_,_,_), U , F(None) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Not , "not" , Enc(X86Rm_B) , O_000000(F6,2,_,_,_), U , F(RW)|F(Lock) , EF(________), 0 , 0 , O(GqdwbMem) , U , U , U , U ), + INST(Or , "or" , Enc(X86Arith) , O_000000(08,1,_,_,_), U , F(RW)|F(Lock) , EF(WWWUWW__), 0 , 0 , O(GqdwbMem) , O(GqdwbMem)|O(Imm), U , U , U ), + INST(Orpd , "orpd" , Enc(SimdRm) , O_660F00(56,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Orps , "orps" , Enc(SimdRm) , O_000F00(56,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Pabsb , "pabsb" , Enc(SimdRm_P) , O_000F38(1C,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Pabsd , "pabsd" , Enc(SimdRm_P) , O_000F38(1E,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Pabsw , "pabsw" , Enc(SimdRm_P) , O_000F38(1D,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Packssdw , "packssdw" , Enc(SimdRm_P) , O_000F00(6B,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Packsswb , "packsswb" , Enc(SimdRm_P) , O_000F00(63,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Packusdw , "packusdw" , Enc(SimdRm) , O_660F38(2B,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Packuswb , "packuswb" , Enc(SimdRm_P) , O_000F00(67,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Paddb , "paddb" , Enc(SimdRm_P) , O_000F00(FC,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Paddd , "paddd" , Enc(SimdRm_P) , O_000F00(FE,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Paddq , "paddq" , Enc(SimdRm_P) , O_000F00(D4,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Paddsb , "paddsb" , Enc(SimdRm_P) , O_000F00(EC,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Paddsw , "paddsw" , Enc(SimdRm_P) , O_000F00(ED,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Paddusb , "paddusb" , Enc(SimdRm_P) , O_000F00(DC,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Paddusw , "paddusw" , Enc(SimdRm_P) , O_000F00(DD,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Paddw , "paddw" , Enc(SimdRm_P) , O_000F00(FD,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Palignr , "palignr" , Enc(SimdRmi_P) , O_000F3A(0F,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , O(Imm) , U , U ), + INST(Pand , "pand" , Enc(SimdRm_P) , O_000F00(DB,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Pandn , "pandn" , Enc(SimdRm_P) , O_000F00(DF,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Pause , "pause" , Enc(X86Op) , O_F30000(90,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Pavgb , "pavgb" , Enc(SimdRm_P) , O_000F00(E0,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Pavgusb , "pavgusb" , Enc(Simd3dNow) , O_000F0F(BF,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Mm) , O(MmMem) , U , U , U ), + INST(Pavgw , "pavgw" , Enc(SimdRm_P) , O_000F00(E3,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Pblendvb , "pblendvb" , Enc(SimdRm) , O_660F38(10,U,_,_,_), U , F(RW)|F(Special) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Pblendw , "pblendw" , Enc(SimdRmi) , O_660F3A(0E,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), + INST(Pclmulqdq , "pclmulqdq" , Enc(SimdRmi) , O_660F3A(44,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), + INST(Pcmpeqb , "pcmpeqb" , Enc(SimdRm_P) , O_000F00(74,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Pcmpeqd , "pcmpeqd" , Enc(SimdRm_P) , O_000F00(76,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Pcmpeqq , "pcmpeqq" , Enc(SimdRm) , O_660F38(29,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Pcmpeqw , "pcmpeqw" , Enc(SimdRm_P) , O_000F00(75,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Pcmpestri , "pcmpestri" , Enc(SimdRmi) , O_660F3A(61,U,_,_,_), U , F(WO)|F(Special) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), + INST(Pcmpestrm , "pcmpestrm" , Enc(SimdRmi) , O_660F3A(60,U,_,_,_), U , F(WO)|F(Special) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), + INST(Pcmpgtb , "pcmpgtb" , Enc(SimdRm_P) , O_000F00(64,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Pcmpgtd , "pcmpgtd" , Enc(SimdRm_P) , O_000F00(66,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Pcmpgtq , "pcmpgtq" , Enc(SimdRm) , O_660F38(37,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Pcmpgtw , "pcmpgtw" , Enc(SimdRm_P) , O_000F00(65,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Pcmpistri , "pcmpistri" , Enc(SimdRmi) , O_660F3A(63,U,_,_,_), U , F(WO)|F(Special) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), + INST(Pcmpistrm , "pcmpistrm" , Enc(SimdRmi) , O_660F3A(62,U,_,_,_), U , F(WO)|F(Special) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), + INST(Pdep , "pdep" , Enc(AvxRvm_OptW) , O_F20F38(F5,U,_,_,_), U , F(WO) , EF(________), 0 , 0 , O(Gqd) , O(Gqd) , O(GqdMem) , U , U ), + INST(Pext , "pext" , Enc(AvxRvm_OptW) , O_F30F38(F5,U,_,_,_), U , F(WO) , EF(________), 0 , 0 , O(Gqd) , O(Gqd) , O(GqdMem) , U , U ), + INST(Pextrb , "pextrb" , Enc(SimdExtract) , O_000F3A(14,U,_,_,_), U , F(WO) , EF(________), 0 , 8 , O(Gd)|O(Gb)|O(Mem), O(Xmm) , U , U , U ), + INST(Pextrd , "pextrd" , Enc(SimdExtract) , O_000F3A(16,U,_,_,_), U , F(WO) , EF(________), 0 , 8 , O(GdMem) , O(Xmm) , U , U , U ), + INST(Pextrq , "pextrq" , Enc(SimdExtract) , O_000F3A(16,U,_,W,_), U , F(WO) , EF(________), 0 , 8 , O(GqdMem) , O(Xmm) , U , U , U ), + INST(Pextrw , "pextrw" , Enc(SimdPextrw) , O_000F00(C5,U,_,_,_), O_000F3A(15,U,_,_,_), F(WO) , EF(________), 0 , 8 , O(GdMem) , O(MmXmm) , U , U , U ), + INST(Pf2id , "pf2id" , Enc(Simd3dNow) , O_000F0F(1D,U,_,_,_), U , F(WO) , EF(________), 0 , 8 , O(Mm) , O(MmMem) , U , U , U ), + INST(Pf2iw , "pf2iw" , Enc(Simd3dNow) , O_000F0F(1C,U,_,_,_), U , F(WO) , EF(________), 0 , 8 , O(Mm) , O(MmMem) , U , U , U ), + INST(Pfacc , "pfacc" , Enc(Simd3dNow) , O_000F0F(AE,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Mm) , O(MmMem) , U , U , U ), + INST(Pfadd , "pfadd" , Enc(Simd3dNow) , O_000F0F(9E,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Mm) , O(MmMem) , U , U , U ), + INST(Pfcmpeq , "pfcmpeq" , Enc(Simd3dNow) , O_000F0F(B0,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Mm) , O(MmMem) , U , U , U ), + INST(Pfcmpge , "pfcmpge" , Enc(Simd3dNow) , O_000F0F(90,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Mm) , O(MmMem) , U , U , U ), + INST(Pfcmpgt , "pfcmpgt" , Enc(Simd3dNow) , O_000F0F(A0,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Mm) , O(MmMem) , U , U , U ), + INST(Pfmax , "pfmax" , Enc(Simd3dNow) , O_000F0F(A4,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Mm) , O(MmMem) , U , U , U ), + INST(Pfmin , "pfmin" , Enc(Simd3dNow) , O_000F0F(94,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Mm) , O(MmMem) , U , U , U ), + INST(Pfmul , "pfmul" , Enc(Simd3dNow) , O_000F0F(B4,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Mm) , O(MmMem) , U , U , U ), + INST(Pfnacc , "pfnacc" , Enc(Simd3dNow) , O_000F0F(8A,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Mm) , O(MmMem) , U , U , U ), + INST(Pfpnacc , "pfpnacc" , Enc(Simd3dNow) , O_000F0F(8E,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Mm) , O(MmMem) , U , U , U ), + INST(Pfrcp , "pfrcp" , Enc(Simd3dNow) , O_000F0F(96,U,_,_,_), U , F(WO) , EF(________), 0 , 8 , O(Mm) , O(MmMem) , U , U , U ), + INST(Pfrcpit1 , "pfrcpit1" , Enc(Simd3dNow) , O_000F0F(A6,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Mm) , O(MmMem) , U , U , U ), + INST(Pfrcpit2 , "pfrcpit2" , Enc(Simd3dNow) , O_000F0F(B6,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Mm) , O(MmMem) , U , U , U ), + INST(Pfrsqit1 , "pfrsqit1" , Enc(Simd3dNow) , O_000F0F(A7,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Mm) , O(MmMem) , U , U , U ), + INST(Pfrsqrt , "pfrsqrt" , Enc(Simd3dNow) , O_000F0F(97,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Mm) , O(MmMem) , U , U , U ), + INST(Pfsub , "pfsub" , Enc(Simd3dNow) , O_000F0F(9A,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Mm) , O(MmMem) , U , U , U ), + INST(Pfsubr , "pfsubr" , Enc(Simd3dNow) , O_000F0F(AA,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Mm) , O(MmMem) , U , U , U ), + INST(Phaddd , "phaddd" , Enc(SimdRm_P) , O_000F38(02,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Phaddsw , "phaddsw" , Enc(SimdRm_P) , O_000F38(03,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Phaddw , "phaddw" , Enc(SimdRm_P) , O_000F38(01,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Phminposuw , "phminposuw" , Enc(SimdRm) , O_660F38(41,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Phsubd , "phsubd" , Enc(SimdRm_P) , O_000F38(06,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Phsubsw , "phsubsw" , Enc(SimdRm_P) , O_000F38(07,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Phsubw , "phsubw" , Enc(SimdRm_P) , O_000F38(05,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Pi2fd , "pi2fd" , Enc(Simd3dNow) , O_000F0F(0D,U,_,_,_), U , F(WO) , EF(________), 0 , 8 , O(Mm) , O(MmMem) , U , U , U ), + INST(Pi2fw , "pi2fw" , Enc(Simd3dNow) , O_000F0F(0C,U,_,_,_), U , F(WO) , EF(________), 0 , 8 , O(Mm) , O(MmMem) , U , U , U ), + INST(Pinsrb , "pinsrb" , Enc(SimdRmi) , O_660F3A(20,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(GdMem) , O(Imm) , U , U ), + INST(Pinsrd , "pinsrd" , Enc(SimdRmi) , O_660F3A(22,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(GdMem) , O(Imm) , U , U ), + INST(Pinsrq , "pinsrq" , Enc(SimdRmi) , O_660F3A(22,U,_,W,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(GqMem) , O(Imm) , U , U ), + INST(Pinsrw , "pinsrw" , Enc(SimdRmi_P) , O_000F00(C4,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(GdMem) , O(Imm) , U , U ), + INST(Pmaddubsw , "pmaddubsw" , Enc(SimdRm_P) , O_000F38(04,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Pmaddwd , "pmaddwd" , Enc(SimdRm_P) , O_000F00(F5,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Pmaxsb , "pmaxsb" , Enc(SimdRm) , O_660F38(3C,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Pmaxsd , "pmaxsd" , Enc(SimdRm) , O_660F38(3D,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Pmaxsw , "pmaxsw" , Enc(SimdRm_P) , O_000F00(EE,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Pmaxub , "pmaxub" , Enc(SimdRm_P) , O_000F00(DE,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Pmaxud , "pmaxud" , Enc(SimdRm) , O_660F38(3F,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Pmaxuw , "pmaxuw" , Enc(SimdRm) , O_660F38(3E,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Pminsb , "pminsb" , Enc(SimdRm) , O_660F38(38,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Pminsd , "pminsd" , Enc(SimdRm) , O_660F38(39,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Pminsw , "pminsw" , Enc(SimdRm_P) , O_000F00(EA,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Pminub , "pminub" , Enc(SimdRm_P) , O_000F00(DA,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Pminud , "pminud" , Enc(SimdRm) , O_660F38(3B,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Pminuw , "pminuw" , Enc(SimdRm) , O_660F38(3A,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Pmovmskb , "pmovmskb" , Enc(SimdRm_PQ) , O_000F00(D7,U,_,_,_), U , F(WO) , EF(________), 0 , 8 , O(Gqd) , O(MmXmm) , U , U , U ), + INST(Pmovsxbd , "pmovsxbd" , Enc(SimdRm) , O_660F38(21,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), + INST(Pmovsxbq , "pmovsxbq" , Enc(SimdRm) , O_660F38(22,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), + INST(Pmovsxbw , "pmovsxbw" , Enc(SimdRm) , O_660F38(20,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), + INST(Pmovsxdq , "pmovsxdq" , Enc(SimdRm) , O_660F38(25,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), + INST(Pmovsxwd , "pmovsxwd" , Enc(SimdRm) , O_660F38(23,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), + INST(Pmovsxwq , "pmovsxwq" , Enc(SimdRm) , O_660F38(24,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), + INST(Pmovzxbd , "pmovzxbd" , Enc(SimdRm) , O_660F38(31,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), + INST(Pmovzxbq , "pmovzxbq" , Enc(SimdRm) , O_660F38(32,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), + INST(Pmovzxbw , "pmovzxbw" , Enc(SimdRm) , O_660F38(30,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), + INST(Pmovzxdq , "pmovzxdq" , Enc(SimdRm) , O_660F38(35,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), + INST(Pmovzxwd , "pmovzxwd" , Enc(SimdRm) , O_660F38(33,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), + INST(Pmovzxwq , "pmovzxwq" , Enc(SimdRm) , O_660F38(34,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), + INST(Pmuldq , "pmuldq" , Enc(SimdRm) , O_660F38(28,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Pmulhrsw , "pmulhrsw" , Enc(SimdRm_P) , O_000F38(0B,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Pmulhrw , "pmulhrw" , Enc(Simd3dNow) , O_000F0F(B7,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Mm) , O(MmMem) , U , U , U ), + INST(Pmulhuw , "pmulhuw" , Enc(SimdRm_P) , O_000F00(E4,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Pmulhw , "pmulhw" , Enc(SimdRm_P) , O_000F00(E5,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Pmulld , "pmulld" , Enc(SimdRm) , O_660F38(40,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Pmullw , "pmullw" , Enc(SimdRm_P) , O_000F00(D5,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Pmuludq , "pmuludq" , Enc(SimdRm_P) , O_000F00(F4,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Pop , "pop" , Enc(X86Pop) , O_000000(8F,0,_,_,_), O_000000(58,U,_,_,_), F(WO)|F(Volatile)|F(Special) , EF(________), 0 , 0 , 0 , U , U , U , U ), + INST(Popa , "popa" , Enc(X86Op) , O_000000(61,U,_,_,_), U , F(Volatile)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Popcnt , "popcnt" , Enc(X86RegRm) , O_F30F00(B8,U,_,_,_), U , F(WO) , EF(WWWWWW__), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Popf , "popf" , Enc(X86Op) , O_000000(9D,U,_,_,_), U , F(Volatile)|F(Special) , EF(WWWWWWWW), 0 , 0 , U , U , U , U , U ), + INST(Por , "por" , Enc(SimdRm_P) , O_000F00(EB,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Prefetch , "prefetch" , Enc(X86Prefetch) , O_000F00(18,U,_,_,_), U , F(RO)|F(Volatile) , EF(________), 0 , 0 , O(Mem) , O(Imm) , U , U , U ), + INST(Prefetch3dNow , "prefetch3dnow" , Enc(X86M) , O_000F00(0D,0,_,_,_), U , F(RO)|F(Volatile) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Prefetchw , "prefetchw" , Enc(X86M) , O_000F00(0D,1,_,_,_), U , F(RO)|F(Volatile) , EF(UUUUUU__), 0 , 0 , O(Mem) , O(Imm) , U , U , U ), + INST(Prefetchwt1 , "prefetchwt1" , Enc(X86M) , O_000F00(0D,2,_,_,_), U , F(RO)|F(Volatile) , EF(UUUUUU__), 0 , 0 , O(Mem) , O(Imm) , U , U , U ), + INST(Psadbw , "psadbw" , Enc(SimdRm_P) , O_000F00(F6,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Pshufb , "pshufb" , Enc(SimdRm_P) , O_000F38(00,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Pshufd , "pshufd" , Enc(SimdRmi) , O_660F00(70,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , O(Imm) , U , U ), + INST(Pshufhw , "pshufhw" , Enc(SimdRmi) , O_F30F00(70,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , O(Imm) , U , U ), + INST(Pshuflw , "pshuflw" , Enc(SimdRmi) , O_F20F00(70,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , O(Imm) , U , U ), + INST(Pshufw , "pshufw" , Enc(SimdRmi_P) , O_000F00(70,U,_,_,_), U , F(WO) , EF(________), 0 , 8 , O(Mm) , O(MmMem) , O(Imm) , U , U ), + INST(Psignb , "psignb" , Enc(SimdRm_P) , O_000F38(08,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Psignd , "psignd" , Enc(SimdRm_P) , O_000F38(0A,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Psignw , "psignw" , Enc(SimdRm_P) , O_000F38(09,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Pslld , "pslld" , Enc(SimdRmRi_P) , O_000F00(F2,U,_,_,_), O_000F00(72,6,_,_,_), F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem)|O(Imm), U , U , U ), + INST(Pslldq , "pslldq" , Enc(SimdRmRi) , U , O_660F00(73,7,_,_,_), F(RW) , EF(________), 0 , 0 , O(Xmm) , O(Imm) , U , U , U ), + INST(Psllq , "psllq" , Enc(SimdRmRi_P) , O_000F00(F3,U,_,_,_), O_000F00(73,6,_,_,_), F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem)|O(Imm), U , U , U ), + INST(Psllw , "psllw" , Enc(SimdRmRi_P) , O_000F00(F1,U,_,_,_), O_000F00(71,6,_,_,_), F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem)|O(Imm), U , U , U ), + INST(Psrad , "psrad" , Enc(SimdRmRi_P) , O_000F00(E2,U,_,_,_), O_000F00(72,4,_,_,_), F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem)|O(Imm), U , U , U ), + INST(Psraw , "psraw" , Enc(SimdRmRi_P) , O_000F00(E1,U,_,_,_), O_000F00(71,4,_,_,_), F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem)|O(Imm), U , U , U ), + INST(Psrld , "psrld" , Enc(SimdRmRi_P) , O_000F00(D2,U,_,_,_), O_000F00(72,2,_,_,_), F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem)|O(Imm), U , U , U ), + INST(Psrldq , "psrldq" , Enc(SimdRmRi) , U , O_660F00(73,3,_,_,_), F(RW) , EF(________), 0 , 0 , O(Xmm) , O(Imm) , U , U , U ), + INST(Psrlq , "psrlq" , Enc(SimdRmRi_P) , O_000F00(D3,U,_,_,_), O_000F00(73,2,_,_,_), F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem)|O(Imm), U , U , U ), + INST(Psrlw , "psrlw" , Enc(SimdRmRi_P) , O_000F00(D1,U,_,_,_), O_000F00(71,2,_,_,_), F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem)|O(Imm), U , U , U ), + INST(Psubb , "psubb" , Enc(SimdRm_P) , O_000F00(F8,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Psubd , "psubd" , Enc(SimdRm_P) , O_000F00(FA,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Psubq , "psubq" , Enc(SimdRm_P) , O_000F00(FB,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Psubsb , "psubsb" , Enc(SimdRm_P) , O_000F00(E8,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Psubsw , "psubsw" , Enc(SimdRm_P) , O_000F00(E9,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Psubusb , "psubusb" , Enc(SimdRm_P) , O_000F00(D8,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Psubusw , "psubusw" , Enc(SimdRm_P) , O_000F00(D9,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Psubw , "psubw" , Enc(SimdRm_P) , O_000F00(F9,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Pswapd , "pswapd" , Enc(Simd3dNow) , O_000F0F(BB,U,_,_,_), U , F(WO) , EF(________), 0 , 8 , O(Mm) , O(MmMem) , U , U , U ), + INST(Ptest , "ptest" , Enc(SimdRm) , O_660F38(17,U,_,_,_), U , F(RO) , EF(WWWWWW__), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Punpckhbw , "punpckhbw" , Enc(SimdRm_P) , O_000F00(68,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Punpckhdq , "punpckhdq" , Enc(SimdRm_P) , O_000F00(6A,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Punpckhqdq , "punpckhqdq" , Enc(SimdRm) , O_660F00(6D,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Punpckhwd , "punpckhwd" , Enc(SimdRm_P) , O_000F00(69,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Punpcklbw , "punpcklbw" , Enc(SimdRm_P) , O_000F00(60,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Punpckldq , "punpckldq" , Enc(SimdRm_P) , O_000F00(62,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Punpcklqdq , "punpcklqdq" , Enc(SimdRm) , O_660F00(6C,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Punpcklwd , "punpcklwd" , Enc(SimdRm_P) , O_000F00(61,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Push , "push" , Enc(X86Push) , O_000000(FF,6,_,_,_), O_000000(50,U,_,_,_), F(RO)|F(Volatile)|F(Special) , EF(________), 0 , 0 , 0 , U , U , U , U ), + INST(Pusha , "pusha" , Enc(X86Op) , O_000000(60,U,_,_,_), U , F(Volatile)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Pushf , "pushf" , Enc(X86Op) , O_000000(9C,U,_,_,_), U , F(Volatile)|F(Special) , EF(RRRRRRRR), 0 , 0 , U , U , U , U , U ), + INST(Pxor , "pxor" , Enc(SimdRm_P) , O_000F00(EF,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(MmXmm) , O(MmXmmMem) , U , U , U ), + INST(Rcl , "rcl" , Enc(X86Rot) , O_000000(D0,2,_,_,_), U , F(RW)|F(Special) , EF(W____X__), 0 , 0 , O(GqdwbMem) , O(Gb)|O(Imm) , U , U , U ), + INST(Rcpps , "rcpps" , Enc(SimdRm) , O_000F00(53,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), + INST(Rcpss , "rcpss" , Enc(SimdRm) , O_F30F00(53,U,_,_,_), U , F(WO) , EF(________), 0 , 4 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Rcr , "rcr" , Enc(X86Rot) , O_000000(D0,3,_,_,_), U , F(RW)|F(Special) , EF(W____X__), 0 , 0 , O(GqdwbMem) , O(Gb)|O(Imm) , U , U , U ), + INST(Rdfsbase , "rdfsbase" , Enc(X86Rm) , O_F30F00(AE,0,_,_,_), U , F(WO) , EF(________), 0 , 8 , O(Gqd) , U , U , U , U ), + INST(Rdgsbase , "rdgsbase" , Enc(X86Rm) , O_F30F00(AE,1,_,_,_), U , F(WO) , EF(________), 0 , 8 , O(Gqd) , U , U , U , U ), + INST(Rdrand , "rdrand" , Enc(X86Rm) , O_000F00(C7,6,_,_,_), U , F(WO) , EF(WWWWWW__), 0 , 8 , O(Gqdw) , U , U , U , U ), + INST(Rdseed , "rdseed" , Enc(X86Rm) , O_000F00(C7,7,_,_,_), U , F(WO) , EF(WWWWWW__), 0 , 8 , O(Gqdw) , U , U , U , U ), + INST(Rdtsc , "rdtsc" , Enc(X86Op) , O_000F00(31,U,_,_,_), U , F(WO)|F(Volatile)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Rdtscp , "rdtscp" , Enc(X86Op) , O_000F01(F9,U,_,_,_), U , F(WO)|F(Volatile)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(RepLodsB , "rep lods_b" , Enc(X86Rep) , O_000000(AC,1,_,_,_), U , F(RW)|F(Volatile)|F(Special) , EF(______R_), 0 , 0 , O(Mem) , U , U , U , U ), + INST(RepLodsD , "rep lods_d" , Enc(X86Rep) , O_000000(AD,1,_,_,_), U , F(RW)|F(Volatile)|F(Special) , EF(______R_), 0 , 0 , O(Mem) , U , U , U , U ), + INST(RepLodsQ , "rep lods_q" , Enc(X86Rep) , O_000000(AD,1,_,W,_), U , F(RW)|F(Volatile)|F(Special) , EF(______R_), 0 , 0 , O(Mem) , U , U , U , U ), + INST(RepLodsW , "rep lods_w" , Enc(X86Rep) , O_660000(AD,1,_,_,_), U , F(RW)|F(Volatile)|F(Special) , EF(______R_), 0 , 0 , O(Mem) , U , U , U , U ), + INST(RepMovsB , "rep movs_b" , Enc(X86Rep) , O_000000(A4,1,_,_,_), U , F(RW)|F(Volatile)|F(Special) , EF(______R_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), + INST(RepMovsD , "rep movs_d" , Enc(X86Rep) , O_000000(A5,1,_,_,_), U , F(RW)|F(Volatile)|F(Special) , EF(______R_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), + INST(RepMovsQ , "rep movs_q" , Enc(X86Rep) , O_000000(A5,1,_,W,_), U , F(RW)|F(Volatile)|F(Special) , EF(______R_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), + INST(RepMovsW , "rep movs_w" , Enc(X86Rep) , O_660000(A5,1,_,_,_), U , F(RW)|F(Volatile)|F(Special) , EF(______R_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), + INST(RepStosB , "rep stos_b" , Enc(X86Rep) , O_000000(AA,1,_,_,_), U , F(RW)|F(Volatile)|F(Special) , EF(______R_), 0 , 0 , O(Mem) , U , U , U , U ), + INST(RepStosD , "rep stos_d" , Enc(X86Rep) , O_000000(AB,1,_,_,_), U , F(RW)|F(Volatile)|F(Special) , EF(______R_), 0 , 0 , O(Mem) , U , U , U , U ), + INST(RepStosQ , "rep stos_q" , Enc(X86Rep) , O_000000(AB,1,_,W,_), U , F(RW)|F(Volatile)|F(Special) , EF(______R_), 0 , 0 , O(Mem) , U , U , U , U ), + INST(RepStosW , "rep stos_w" , Enc(X86Rep) , O_660000(AB,1,_,_,_), U , F(RW)|F(Volatile)|F(Special) , EF(______R_), 0 , 0 , O(Mem) , U , U , U , U ), + INST(RepeCmpsB , "repe cmps_b" , Enc(X86Rep) , O_000000(A6,1,_,_,_), U , F(RW)|F(Volatile)|F(Special) , EF(WWWWWWR_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), + INST(RepeCmpsD , "repe cmps_d" , Enc(X86Rep) , O_000000(A7,1,_,_,_), U , F(RW)|F(Volatile)|F(Special) , EF(WWWWWWR_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), + INST(RepeCmpsQ , "repe cmps_q" , Enc(X86Rep) , O_000000(A7,1,_,W,_), U , F(RW)|F(Volatile)|F(Special) , EF(WWWWWWR_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), + INST(RepeCmpsW , "repe cmps_w" , Enc(X86Rep) , O_660000(A7,1,_,_,_), U , F(RW)|F(Volatile)|F(Special) , EF(WWWWWWR_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), + INST(RepeScasB , "repe scas_b" , Enc(X86Rep) , O_000000(AE,1,_,_,_), U , F(RW)|F(Volatile)|F(Special) , EF(WWWWWWR_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), + INST(RepeScasD , "repe scas_d" , Enc(X86Rep) , O_000000(AF,1,_,_,_), U , F(RW)|F(Volatile)|F(Special) , EF(WWWWWWR_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), + INST(RepeScasQ , "repe scas_q" , Enc(X86Rep) , O_000000(AF,1,_,W,_), U , F(RW)|F(Volatile)|F(Special) , EF(WWWWWWR_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), + INST(RepeScasW , "repe scas_w" , Enc(X86Rep) , O_660000(AF,1,_,_,_), U , F(RW)|F(Volatile)|F(Special) , EF(WWWWWWR_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), + INST(RepneCmpsB , "repne cmps_b" , Enc(X86Rep) , O_000000(A6,0,_,_,_), U , F(RW)|F(Volatile)|F(Special) , EF(WWWWWWR_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), + INST(RepneCmpsD , "repne cmps_d" , Enc(X86Rep) , O_000000(A7,0,_,_,_), U , F(RW)|F(Volatile)|F(Special) , EF(WWWWWWR_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), + INST(RepneCmpsQ , "repne cmps_q" , Enc(X86Rep) , O_000000(A7,0,_,W,_), U , F(RW)|F(Volatile)|F(Special) , EF(WWWWWWR_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), + INST(RepneCmpsW , "repne cmps_w" , Enc(X86Rep) , O_660000(A7,0,_,_,_), U , F(RW)|F(Volatile)|F(Special) , EF(WWWWWWR_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), + INST(RepneScasB , "repne scas_b" , Enc(X86Rep) , O_000000(AE,0,_,_,_), U , F(RW)|F(Volatile)|F(Special) , EF(WWWWWWR_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), + INST(RepneScasD , "repne scas_d" , Enc(X86Rep) , O_000000(AF,0,_,_,_), U , F(RW)|F(Volatile)|F(Special) , EF(WWWWWWR_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), + INST(RepneScasQ , "repne scas_q" , Enc(X86Rep) , O_000000(AF,0,_,W,_), U , F(RW)|F(Volatile)|F(Special) , EF(WWWWWWR_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), + INST(RepneScasW , "repne scas_w" , Enc(X86Rep) , O_660000(AF,0,_,_,_), U , F(RW)|F(Volatile)|F(Special) , EF(WWWWWWR_), 0 , 0 , O(Mem) , O(Mem) , U , U , U ), + INST(Ret , "ret" , Enc(X86Ret) , O_000000(C2,U,_,_,_), U , F(RW)|F(Volatile)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Rol , "rol" , Enc(X86Rot) , O_000000(D0,0,_,_,_), U , F(RW)|F(Special) , EF(W____W__), 0 , 0 , O(GqdwbMem) , O(Gb)|O(Imm) , U , U , U ), + INST(Ror , "ror" , Enc(X86Rot) , O_000000(D0,1,_,_,_), U , F(RW)|F(Special) , EF(W____W__), 0 , 0 , O(GqdwbMem) , O(Gb)|O(Imm) , U , U , U ), + INST(Rorx , "rorx" , Enc(AvxRmi_OptW) , O_F20F3A(F0,U,_,_,_), U , F(WO) , EF(________), 0 , 0 , O(Gqd) , O(GqdMem) , O(Imm) , U , U ), + INST(Roundpd , "roundpd" , Enc(SimdRmi) , O_660F3A(09,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , O(Imm) , U , U ), + INST(Roundps , "roundps" , Enc(SimdRmi) , O_660F3A(08,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , O(Imm) , U , U ), + INST(Roundsd , "roundsd" , Enc(SimdRmi) , O_660F3A(0B,U,_,_,_), U , F(WO) , EF(________), 0 , 8 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), + INST(Roundss , "roundss" , Enc(SimdRmi) , O_660F3A(0A,U,_,_,_), U , F(WO) , EF(________), 0 , 4 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), + INST(Rsqrtps , "rsqrtps" , Enc(SimdRm) , O_000F00(52,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), + INST(Rsqrtss , "rsqrtss" , Enc(SimdRm) , O_F30F00(52,U,_,_,_), U , F(WO) , EF(________), 0 , 4 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Sahf , "sahf" , Enc(X86Op) , O_000000(9E,U,_,_,_), U , F(RO)|F(Volatile)|F(Special) , EF(_WWWWW__), 0 , 0 , U , U , U , U , U ), + INST(Sal , "sal" , Enc(X86Rot) , O_000000(D0,4,_,_,_), U , F(RW)|F(Special) , EF(WWWUWW__), 0 , 0 , O(GqdwbMem) , O(Gb)|O(Imm) , U , U , U ), + INST(Sar , "sar" , Enc(X86Rot) , O_000000(D0,7,_,_,_), U , F(RW)|F(Special) , EF(WWWUWW__), 0 , 0 , O(GqdwbMem) , O(Gb)|O(Imm) , U , U , U ), + INST(Sarx , "sarx" , Enc(AvxRmv_OptW) , O_F30F38(F7,U,_,_,_), U , F(WO) , EF(________), 0 , 0 , O(Gqd) , O(GqdMem) , O(Gqd) , U , U ), + INST(Sbb , "sbb" , Enc(X86Arith) , O_000000(18,3,_,_,_), U , F(RW)|F(Lock) , EF(WWWWWX__), 0 , 0 , O(GqdwbMem) , O(GqdwbMem)|O(Imm), U , U , U ), + INST(ScasB , "scas_b" , Enc(X86Op) , O_000000(AE,U,_,_,_), U , F(RW)|F(Volatile)|F(Special) , EF(WWWWWWR_), 0 , 0 , U , U , U , U , U ), + INST(ScasD , "scas_d" , Enc(X86Op) , O_000000(AF,U,_,_,_), U , F(RW)|F(Volatile)|F(Special) , EF(WWWWWWR_), 0 , 0 , U , U , U , U , U ), + INST(ScasQ , "scas_q" , Enc(X86Op) , O_000000(AF,U,_,W,_), U , F(RW)|F(Volatile)|F(Special) , EF(WWWWWWR_), 0 , 0 , U , U , U , U , U ), + INST(ScasW , "scas_w" , Enc(X86Op_66H) , O_000000(AF,U,_,_,_), U , F(RW)|F(Volatile)|F(Special) , EF(WWWWWWR_), 0 , 0 , U , U , U , U , U ), + INST(Seta , "seta" , Enc(X86Set) , O_000F00(97,U,_,_,_), U , F(WO) , EF(__R__R__), 0 , 1 , O(GbMem) , U , U , U , U ), + INST(Setae , "setae" , Enc(X86Set) , O_000F00(93,U,_,_,_), U , F(WO) , EF(_____R__), 0 , 1 , O(GbMem) , U , U , U , U ), + INST(Setb , "setb" , Enc(X86Set) , O_000F00(92,U,_,_,_), U , F(WO) , EF(_____R__), 0 , 1 , O(GbMem) , U , U , U , U ), + INST(Setbe , "setbe" , Enc(X86Set) , O_000F00(96,U,_,_,_), U , F(WO) , EF(__R__R__), 0 , 1 , O(GbMem) , U , U , U , U ), + INST(Setc , "setc" , Enc(X86Set) , O_000F00(92,U,_,_,_), U , F(WO) , EF(_____R__), 0 , 1 , O(GbMem) , U , U , U , U ), + INST(Sete , "sete" , Enc(X86Set) , O_000F00(94,U,_,_,_), U , F(WO) , EF(__R_____), 0 , 1 , O(GbMem) , U , U , U , U ), + INST(Setg , "setg" , Enc(X86Set) , O_000F00(9F,U,_,_,_), U , F(WO) , EF(RRR_____), 0 , 1 , O(GbMem) , U , U , U , U ), + INST(Setge , "setge" , Enc(X86Set) , O_000F00(9D,U,_,_,_), U , F(WO) , EF(RR______), 0 , 1 , O(GbMem) , U , U , U , U ), + INST(Setl , "setl" , Enc(X86Set) , O_000F00(9C,U,_,_,_), U , F(WO) , EF(RR______), 0 , 1 , O(GbMem) , U , U , U , U ), + INST(Setle , "setle" , Enc(X86Set) , O_000F00(9E,U,_,_,_), U , F(WO) , EF(RRR_____), 0 , 1 , O(GbMem) , U , U , U , U ), + INST(Setna , "setna" , Enc(X86Set) , O_000F00(96,U,_,_,_), U , F(WO) , EF(__R__R__), 0 , 1 , O(GbMem) , U , U , U , U ), + INST(Setnae , "setnae" , Enc(X86Set) , O_000F00(92,U,_,_,_), U , F(WO) , EF(_____R__), 0 , 1 , O(GbMem) , U , U , U , U ), + INST(Setnb , "setnb" , Enc(X86Set) , O_000F00(93,U,_,_,_), U , F(WO) , EF(_____R__), 0 , 1 , O(GbMem) , U , U , U , U ), + INST(Setnbe , "setnbe" , Enc(X86Set) , O_000F00(97,U,_,_,_), U , F(WO) , EF(__R__R__), 0 , 1 , O(GbMem) , U , U , U , U ), + INST(Setnc , "setnc" , Enc(X86Set) , O_000F00(93,U,_,_,_), U , F(WO) , EF(_____R__), 0 , 1 , O(GbMem) , U , U , U , U ), + INST(Setne , "setne" , Enc(X86Set) , O_000F00(95,U,_,_,_), U , F(WO) , EF(__R_____), 0 , 1 , O(GbMem) , U , U , U , U ), + INST(Setng , "setng" , Enc(X86Set) , O_000F00(9E,U,_,_,_), U , F(WO) , EF(RRR_____), 0 , 1 , O(GbMem) , U , U , U , U ), + INST(Setnge , "setnge" , Enc(X86Set) , O_000F00(9C,U,_,_,_), U , F(WO) , EF(RR______), 0 , 1 , O(GbMem) , U , U , U , U ), + INST(Setnl , "setnl" , Enc(X86Set) , O_000F00(9D,U,_,_,_), U , F(WO) , EF(RR______), 0 , 1 , O(GbMem) , U , U , U , U ), + INST(Setnle , "setnle" , Enc(X86Set) , O_000F00(9F,U,_,_,_), U , F(WO) , EF(RRR_____), 0 , 1 , O(GbMem) , U , U , U , U ), + INST(Setno , "setno" , Enc(X86Set) , O_000F00(91,U,_,_,_), U , F(WO) , EF(R_______), 0 , 1 , O(GbMem) , U , U , U , U ), + INST(Setnp , "setnp" , Enc(X86Set) , O_000F00(9B,U,_,_,_), U , F(WO) , EF(____R___), 0 , 1 , O(GbMem) , U , U , U , U ), + INST(Setns , "setns" , Enc(X86Set) , O_000F00(99,U,_,_,_), U , F(WO) , EF(_R______), 0 , 1 , O(GbMem) , U , U , U , U ), + INST(Setnz , "setnz" , Enc(X86Set) , O_000F00(95,U,_,_,_), U , F(WO) , EF(__R_____), 0 , 1 , O(GbMem) , U , U , U , U ), + INST(Seto , "seto" , Enc(X86Set) , O_000F00(90,U,_,_,_), U , F(WO) , EF(R_______), 0 , 1 , O(GbMem) , U , U , U , U ), + INST(Setp , "setp" , Enc(X86Set) , O_000F00(9A,U,_,_,_), U , F(WO) , EF(____R___), 0 , 1 , O(GbMem) , U , U , U , U ), + INST(Setpe , "setpe" , Enc(X86Set) , O_000F00(9A,U,_,_,_), U , F(WO) , EF(____R___), 0 , 1 , O(GbMem) , U , U , U , U ), + INST(Setpo , "setpo" , Enc(X86Set) , O_000F00(9B,U,_,_,_), U , F(WO) , EF(____R___), 0 , 1 , O(GbMem) , U , U , U , U ), + INST(Sets , "sets" , Enc(X86Set) , O_000F00(98,U,_,_,_), U , F(WO) , EF(_R______), 0 , 1 , O(GbMem) , U , U , U , U ), + INST(Setz , "setz" , Enc(X86Set) , O_000F00(94,U,_,_,_), U , F(WO) , EF(__R_____), 0 , 1 , O(GbMem) , U , U , U , U ), + INST(Sfence , "sfence" , Enc(X86Fence) , O_000F00(AE,7,_,_,_), U , F(Volatile) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Sha1msg1 , "sha1msg1" , Enc(SimdRm) , O_000F38(C9,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Sha1msg2 , "sha1msg2" , Enc(SimdRm) , O_000F38(CA,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Sha1nexte , "sha1nexte" , Enc(SimdRm) , O_000F38(C8,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Sha1rnds4 , "sha1rnds4" , Enc(SimdRmi) , O_000F3A(CC,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), + INST(Sha256msg1 , "sha256msg1" , Enc(SimdRm) , O_000F38(CC,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Sha256msg2 , "sha256msg2" , Enc(SimdRm) , O_000F38(CD,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Sha256rnds2 , "sha256rnds2" , Enc(SimdRm) , O_000F38(CB,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Shl , "shl" , Enc(X86Rot) , O_000000(D0,4,_,_,_), U , F(RW)|F(Special) , EF(WWWUWW__), 0 , 0 , O(GqdwbMem) , O(Gb)|O(Imm) , U , U , U ), + INST(Shld , "shld" , Enc(X86ShldShrd) , O_000F00(A4,U,_,_,_), U , F(RW)|F(Special) , EF(UWWUWW__), 0 , 0 , O(GqdwbMem) , O(Gb) , U , U , U ), + INST(Shlx , "shlx" , Enc(AvxRmv_OptW) , O_660F38(F7,U,_,_,_), U , F(WO) , EF(________), 0 , 0 , O(Gqd) , O(GqdMem) , O(Gqd) , U , U ), + INST(Shr , "shr" , Enc(X86Rot) , O_000000(D0,5,_,_,_), U , F(RW)|F(Special) , EF(WWWUWW__), 0 , 0 , O(GqdwbMem) , O(Gb)|O(Imm) , U , U , U ), + INST(Shrd , "shrd" , Enc(X86ShldShrd) , O_000F00(AC,U,_,_,_), U , F(RW)|F(Special) , EF(UWWUWW__), 0 , 0 , O(GqdwbMem) , O(Gqdwb) , U , U , U ), + INST(Shrx , "shrx" , Enc(AvxRmv_OptW) , O_F20F38(F7,U,_,_,_), U , F(WO) , EF(________), 0 , 0 , O(Gqd) , O(GqdMem) , O(Gqd) , U , U ), + INST(Shufpd , "shufpd" , Enc(SimdRmi) , O_660F00(C6,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), + INST(Shufps , "shufps" , Enc(SimdRmi) , O_000F00(C6,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), + INST(Sqrtpd , "sqrtpd" , Enc(SimdRm) , O_660F00(51,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), + INST(Sqrtps , "sqrtps" , Enc(SimdRm) , O_000F00(51,U,_,_,_), U , F(WO) , EF(________), 0 , 16, O(Xmm) , O(XmmMem) , U , U , U ), + INST(Sqrtsd , "sqrtsd" , Enc(SimdRm) , O_F20F00(51,U,_,_,_), U , F(WO) , EF(________), 0 , 8 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Sqrtss , "sqrtss" , Enc(SimdRm) , O_F30F00(51,U,_,_,_), U , F(WO) , EF(________), 0 , 4 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Stc , "stc" , Enc(X86Op) , O_000000(F9,U,_,_,_), U , F(None) , EF(_____W__), 0 , 0 , U , U , U , U , U ), + INST(Std , "std" , Enc(X86Op) , O_000000(FD,U,_,_,_), U , F(None) , EF(______W_), 0 , 0 , U , U , U , U , U ), + INST(Stmxcsr , "stmxcsr" , Enc(X86M) , O_000F00(AE,3,_,_,_), U , F(Volatile) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(StosB , "stos_b" , Enc(X86Op) , O_000000(AA,U,_,_,_), U , F(RW)|F(Volatile)|F(Special) , EF(______R_), 0 , 0 , U , U , U , U , U ), + INST(StosD , "stos_d" , Enc(X86Op) , O_000000(AB,U,_,_,_), U , F(RW)|F(Volatile)|F(Special) , EF(______R_), 0 , 0 , U , U , U , U , U ), + INST(StosQ , "stos_q" , Enc(X86Op) , O_000000(AB,U,_,W,_), U , F(RW)|F(Volatile)|F(Special) , EF(______R_), 0 , 0 , U , U , U , U , U ), + INST(StosW , "stos_w" , Enc(X86Op_66H) , O_000000(AB,U,_,_,_), U , F(RW)|F(Volatile)|F(Special) , EF(______R_), 0 , 0 , U , U , U , U , U ), + INST(Sub , "sub" , Enc(X86Arith) , O_000000(28,5,_,_,_), U , F(RW)|F(Lock) , EF(WWWWWW__), 0 , 0 , O(GqdwbMem) , O(GqdwbMem)|O(Imm), U , U , U ), + INST(Subpd , "subpd" , Enc(SimdRm) , O_660F00(5C,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Subps , "subps" , Enc(SimdRm) , O_000F00(5C,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Subsd , "subsd" , Enc(SimdRm) , O_F20F00(5C,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Subss , "subss" , Enc(SimdRm) , O_F30F00(5C,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(T1mskc , "t1mskc" , Enc(XopVm_OptW) , O_00_M09(01,7,_,_,_), U , F(WO) , EF(WWWUUW__), 0 , 0 , O(Gqd) , O(GqdMem) , U , U , U ), + INST(Test , "test" , Enc(X86Test) , O_000000(84,U,_,_,_), O_000000(F6,U,_,_,_), F(RO) , EF(WWWUWW__), 0 , 0 , O(GqdwbMem) , O(Gqdwb)|O(Imm) , U , U , U ), + INST(Tzcnt , "tzcnt" , Enc(X86RegRm) , O_F30F00(BC,U,_,_,_), U , F(WO) , EF(UUWUUW__), 0 , 0 , O(Gqdw) , O(GqdwMem) , U , U , U ), + INST(Tzmsk , "tzmsk" , Enc(XopVm_OptW) , O_00_M09(01,4,_,_,_), U , F(WO) , EF(WWWUUW__), 0 , 0 , O(Gqd) , O(GqdMem) , U , U , U ), + INST(Ucomisd , "ucomisd" , Enc(SimdRm) , O_660F00(2E,U,_,_,_), U , F(RO) , EF(WWWWWW__), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Ucomiss , "ucomiss" , Enc(SimdRm) , O_000F00(2E,U,_,_,_), U , F(RO) , EF(WWWWWW__), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Ud2 , "ud2" , Enc(X86Op) , O_000F00(0B,U,_,_,_), U , F(None) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Unpckhpd , "unpckhpd" , Enc(SimdRm) , O_660F00(15,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Unpckhps , "unpckhps" , Enc(SimdRm) , O_000F00(15,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Unpcklpd , "unpcklpd" , Enc(SimdRm) , O_660F00(14,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Unpcklps , "unpcklps" , Enc(SimdRm) , O_000F00(14,U,_,_,_), U , F(RW) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Vaddpd , "vaddpd" , Enc(AvxRvm_OptL) , O_660F00(58,U,_,I,1), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vaddps , "vaddps" , Enc(AvxRvm_OptL) , O_000F00(58,U,_,I,0), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vaddsd , "vaddsd" , Enc(AvxRvm) , O_F20F00(58,U,0,I,1), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vaddss , "vaddss" , Enc(AvxRvm) , O_F30F00(58,U,0,I,0), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vaddsubpd , "vaddsubpd" , Enc(AvxRvm_OptL) , O_660F00(D0,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vaddsubps , "vaddsubps" , Enc(AvxRvm_OptL) , O_F20F00(D0,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vaesdec , "vaesdec" , Enc(AvxRvm) , O_660F38(DE,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vaesdeclast , "vaesdeclast" , Enc(AvxRvm) , O_660F38(DF,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vaesenc , "vaesenc" , Enc(AvxRvm) , O_660F38(DC,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vaesenclast , "vaesenclast" , Enc(AvxRvm) , O_660F38(DD,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vaesimc , "vaesimc" , Enc(AvxRm) , O_660F38(DB,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Vaeskeygenassist, "vaeskeygenassist", Enc(AvxRmi) , O_660F3A(DF,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), + INST(Vandnpd , "vandnpd" , Enc(AvxRvm_OptL) , O_660F00(55,U,_,_,1), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vandnps , "vandnps" , Enc(AvxRvm_OptL) , O_000F00(55,U,_,_,0), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vandpd , "vandpd" , Enc(AvxRvm_OptL) , O_660F00(54,U,_,_,1), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vandps , "vandps" , Enc(AvxRvm_OptL) , O_000F00(54,U,_,_,0), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vblendpd , "vblendpd" , Enc(AvxRvmi_OptL) , O_660F3A(0D,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(Imm) , U ), + INST(Vblendps , "vblendps" , Enc(AvxRvmi_OptL) , O_660F3A(0C,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(Imm) , U ), + INST(Vblendvpd , "vblendvpd" , Enc(AvxRvmr_OptL) , O_660F3A(4B,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(Xy) , U ), + INST(Vblendvps , "vblendvps" , Enc(AvxRvmr_OptL) , O_660F3A(4A,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(Xy) , U ), + INST(Vbroadcastf128 , "vbroadcastf128" , Enc(AvxRm) , O_660F38(1A,U,L,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Ymm) , O(Mem) , U , U , U ), + INST(Vbroadcasti128 , "vbroadcasti128" , Enc(AvxRm) , O_660F38(5A,U,L,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Ymm) , O(Mem) , U , U , U ), + INST(Vbroadcastsd , "vbroadcastsd" , Enc(AvxRm) , O_660F38(19,U,L,0,1), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Ymm) , O(XmmMem) , U , U , U ), + INST(Vbroadcastss , "vbroadcastss" , Enc(AvxRm_OptL) , O_660F38(18,U,_,0,0), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XmmMem) , U , U , U ), + INST(Vcmppd , "vcmppd" , Enc(AvxRvmi_OptL) , O_660F00(C2,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(Imm) , U ), + INST(Vcmpps , "vcmpps" , Enc(AvxRvmi_OptL) , O_000F00(C2,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(Imm) , U ), + INST(Vcmpsd , "vcmpsd" , Enc(AvxRvmi) , O_F20F00(C2,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Imm) , U ), + INST(Vcmpss , "vcmpss" , Enc(AvxRvmi) , O_F30F00(C2,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Imm) , U ), + INST(Vcomisd , "vcomisd" , Enc(AvxRm) , O_660F00(2F,U,_,_,_), U , F(RO)|F(Avx) , EF(WWWWWW__), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Vcomiss , "vcomiss" , Enc(AvxRm) , O_000F00(2F,U,_,_,_), U , F(RO)|F(Avx) , EF(WWWWWW__), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Vcvtdq2pd , "vcvtdq2pd" , Enc(AvxRm_OptL) , O_F30F00(E6,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XmmMem) , U , U , U ), + INST(Vcvtdq2ps , "vcvtdq2ps" , Enc(AvxRm_OptL) , O_000F00(5B,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), + INST(Vcvtpd2dq , "vcvtpd2dq" , Enc(AvxRm) , O_F20F00(E6,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XyMem) , U , U , U ), + INST(Vcvtpd2ps , "vcvtpd2ps" , Enc(AvxRm) , O_660F00(5A,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XyMem) , U , U , U ), + INST(Vcvtph2ps , "vcvtph2ps" , Enc(AvxRm_OptL) , O_660F38(13,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XmmMem) , U , U , U ), + INST(Vcvtps2dq , "vcvtps2dq" , Enc(AvxRm_OptL) , O_660F00(5B,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), + INST(Vcvtps2pd , "vcvtps2pd" , Enc(AvxRm_OptL) , O_000F00(5A,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XmmMem) , U , U , U ), + INST(Vcvtps2ph , "vcvtps2ph" , Enc(AvxMri_OptL) , O_660F3A(1D,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(XmmMem) , O(Xy) , O(Imm) , U , U ), + INST(Vcvtsd2si , "vcvtsd2si" , Enc(AvxRm) , O_F20F00(2D,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Gqd) , O(XmmMem) , U , U , U ), + INST(Vcvtsd2ss , "vcvtsd2ss" , Enc(AvxRvm) , O_F20F00(5A,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vcvtsi2sd , "vcvtsi2sd" , Enc(AvxRvm) , O_F20F00(2A,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(GqdMem) , U , U ), + INST(Vcvtsi2ss , "vcvtsi2ss" , Enc(AvxRvm) , O_F30F00(2A,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(GqdMem) , U , U ), + INST(Vcvtss2sd , "vcvtss2sd" , Enc(AvxRvm) , O_F30F00(5A,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vcvtss2si , "vcvtss2si" , Enc(AvxRm) , O_F20F00(2D,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Gqd) , O(XmmMem) , U , U , U ), + INST(Vcvttpd2dq , "vcvttpd2dq" , Enc(AvxRm_OptL) , O_660F00(E6,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XyMem) , U , U , U ), + INST(Vcvttps2dq , "vcvttps2dq" , Enc(AvxRm_OptL) , O_F30F00(5B,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), + INST(Vcvttsd2si , "vcvttsd2si" , Enc(AvxRm) , O_F20F00(2C,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Gqd) , O(XmmMem) , U , U , U ), + INST(Vcvttss2si , "vcvttss2si" , Enc(AvxRm) , O_F30F00(2C,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Gqd) , O(XmmMem) , U , U , U ), + INST(Vdivpd , "vdivpd" , Enc(AvxRvm_OptL) , O_660F00(5E,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vdivps , "vdivps" , Enc(AvxRvm_OptL) , O_000F00(5E,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vdivsd , "vdivsd" , Enc(AvxRvm) , O_F20F00(5E,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vdivss , "vdivss" , Enc(AvxRvm) , O_F30F00(5E,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vdppd , "vdppd" , Enc(AvxRvmi) , O_660F3A(41,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Imm) , U ), + INST(Vdpps , "vdpps" , Enc(AvxRvmi_OptL) , O_660F3A(40,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(Imm) , U ), + INST(Vextractf128 , "vextractf128" , Enc(AvxMri) , O_660F3A(19,U,L,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(XmmMem) , O(Ymm) , O(Imm) , U , U ), + INST(Vextracti128 , "vextracti128" , Enc(AvxMri) , O_660F3A(39,U,L,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(XmmMem) , O(Ymm) , O(Imm) , U , U ), + INST(Vextractps , "vextractps" , Enc(AvxMri) , O_660F3A(17,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(GqdMem) , O(Xmm) , O(Imm) , U , U ), + INST(Vfmadd132pd , "vfmadd132pd" , Enc(AvxRvm_OptL) , O_660F38(98,U,_,W,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfmadd132ps , "vfmadd132ps" , Enc(AvxRvm_OptL) , O_660F38(98,U,_,_,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfmadd132sd , "vfmadd132sd" , Enc(AvxRvm) , O_660F38(99,U,_,W,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vfmadd132ss , "vfmadd132ss" , Enc(AvxRvm) , O_660F38(99,U,_,_,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vfmadd213pd , "vfmadd213pd" , Enc(AvxRvm_OptL) , O_660F38(A8,U,_,W,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfmadd213ps , "vfmadd213ps" , Enc(AvxRvm_OptL) , O_660F38(A8,U,_,_,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfmadd213sd , "vfmadd213sd" , Enc(AvxRvm) , O_660F38(A9,U,_,W,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vfmadd213ss , "vfmadd213ss" , Enc(AvxRvm) , O_660F38(A9,U,_,_,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vfmadd231pd , "vfmadd231pd" , Enc(AvxRvm_OptL) , O_660F38(B8,U,_,W,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfmadd231ps , "vfmadd231ps" , Enc(AvxRvm_OptL) , O_660F38(B8,U,_,_,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfmadd231sd , "vfmadd231sd" , Enc(AvxRvm) , O_660F38(B9,U,_,W,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vfmadd231ss , "vfmadd231ss" , Enc(AvxRvm) , O_660F38(B9,U,_,_,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vfmaddpd , "vfmaddpd" , Enc(Fma4_OptL) , O_660F3A(69,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U ), + INST(Vfmaddps , "vfmaddps" , Enc(Fma4_OptL) , O_660F3A(68,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U ), + INST(Vfmaddsd , "vfmaddsd" , Enc(Fma4) , O_660F3A(6B,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(XmmMem) , U ), + INST(Vfmaddss , "vfmaddss" , Enc(Fma4) , O_660F3A(6A,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(XmmMem) , U ), + INST(Vfmaddsub132pd , "vfmaddsub132pd" , Enc(AvxRvm_OptL) , O_660F38(96,U,_,W,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfmaddsub132ps , "vfmaddsub132ps" , Enc(AvxRvm_OptL) , O_660F38(96,U,_,_,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfmaddsub213pd , "vfmaddsub213pd" , Enc(AvxRvm_OptL) , O_660F38(A6,U,_,W,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfmaddsub213ps , "vfmaddsub213ps" , Enc(AvxRvm_OptL) , O_660F38(A6,U,_,_,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfmaddsub231pd , "vfmaddsub231pd" , Enc(AvxRvm_OptL) , O_660F38(B6,U,_,W,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfmaddsub231ps , "vfmaddsub231ps" , Enc(AvxRvm_OptL) , O_660F38(B6,U,_,_,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfmaddsubpd , "vfmaddsubpd" , Enc(Fma4_OptL) , O_660F3A(5D,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U ), + INST(Vfmaddsubps , "vfmaddsubps" , Enc(Fma4_OptL) , O_660F3A(5C,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U ), + INST(Vfmsub132pd , "vfmsub132pd" , Enc(AvxRvm_OptL) , O_660F38(9A,U,_,W,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfmsub132ps , "vfmsub132ps" , Enc(AvxRvm_OptL) , O_660F38(9A,U,_,_,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfmsub132sd , "vfmsub132sd" , Enc(AvxRvm) , O_660F38(9B,U,_,W,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vfmsub132ss , "vfmsub132ss" , Enc(AvxRvm) , O_660F38(9B,U,_,_,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vfmsub213pd , "vfmsub213pd" , Enc(AvxRvm_OptL) , O_660F38(AA,U,_,W,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfmsub213ps , "vfmsub213ps" , Enc(AvxRvm_OptL) , O_660F38(AA,U,_,_,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfmsub213sd , "vfmsub213sd" , Enc(AvxRvm) , O_660F38(AB,U,_,W,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vfmsub213ss , "vfmsub213ss" , Enc(AvxRvm) , O_660F38(AB,U,_,_,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vfmsub231pd , "vfmsub231pd" , Enc(AvxRvm_OptL) , O_660F38(BA,U,_,W,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfmsub231ps , "vfmsub231ps" , Enc(AvxRvm_OptL) , O_660F38(BA,U,_,_,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfmsub231sd , "vfmsub231sd" , Enc(AvxRvm) , O_660F38(BB,U,_,W,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vfmsub231ss , "vfmsub231ss" , Enc(AvxRvm) , O_660F38(BB,U,_,_,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vfmsubadd132pd , "vfmsubadd132pd" , Enc(AvxRvm_OptL) , O_660F38(97,U,_,W,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfmsubadd132ps , "vfmsubadd132ps" , Enc(AvxRvm_OptL) , O_660F38(97,U,_,_,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfmsubadd213pd , "vfmsubadd213pd" , Enc(AvxRvm_OptL) , O_660F38(A7,U,_,W,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfmsubadd213ps , "vfmsubadd213ps" , Enc(AvxRvm_OptL) , O_660F38(A7,U,_,_,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfmsubadd231pd , "vfmsubadd231pd" , Enc(AvxRvm_OptL) , O_660F38(B7,U,_,W,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfmsubadd231ps , "vfmsubadd231ps" , Enc(AvxRvm_OptL) , O_660F38(B7,U,_,_,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfmsubaddpd , "vfmsubaddpd" , Enc(Fma4_OptL) , O_660F3A(5F,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U ), + INST(Vfmsubaddps , "vfmsubaddps" , Enc(Fma4_OptL) , O_660F3A(5E,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U ), + INST(Vfmsubpd , "vfmsubpd" , Enc(Fma4_OptL) , O_660F3A(6D,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U ), + INST(Vfmsubps , "vfmsubps" , Enc(Fma4_OptL) , O_660F3A(6C,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U ), + INST(Vfmsubsd , "vfmsubsd" , Enc(Fma4) , O_660F3A(6F,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(XmmMem) , U ), + INST(Vfmsubss , "vfmsubss" , Enc(Fma4) , O_660F3A(6E,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(XmmMem) , U ), + INST(Vfnmadd132pd , "vfnmadd132pd" , Enc(AvxRvm_OptL) , O_660F38(9C,U,_,W,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfnmadd132ps , "vfnmadd132ps" , Enc(AvxRvm_OptL) , O_660F38(9C,U,_,_,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfnmadd132sd , "vfnmadd132sd" , Enc(AvxRvm) , O_660F38(9D,U,_,W,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vfnmadd132ss , "vfnmadd132ss" , Enc(AvxRvm) , O_660F38(9D,U,_,_,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vfnmadd213pd , "vfnmadd213pd" , Enc(AvxRvm_OptL) , O_660F38(AC,U,_,W,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfnmadd213ps , "vfnmadd213ps" , Enc(AvxRvm_OptL) , O_660F38(AC,U,_,_,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfnmadd213sd , "vfnmadd213sd" , Enc(AvxRvm) , O_660F38(AD,U,_,W,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vfnmadd213ss , "vfnmadd213ss" , Enc(AvxRvm) , O_660F38(AD,U,_,_,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vfnmadd231pd , "vfnmadd231pd" , Enc(AvxRvm_OptL) , O_660F38(BC,U,_,W,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfnmadd231ps , "vfnmadd231ps" , Enc(AvxRvm_OptL) , O_660F38(BC,U,_,_,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfnmadd231sd , "vfnmadd231sd" , Enc(AvxRvm) , O_660F38(BC,U,_,W,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vfnmadd231ss , "vfnmadd231ss" , Enc(AvxRvm) , O_660F38(BC,U,_,_,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vfnmaddpd , "vfnmaddpd" , Enc(Fma4_OptL) , O_660F3A(79,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U ), + INST(Vfnmaddps , "vfnmaddps" , Enc(Fma4_OptL) , O_660F3A(78,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U ), + INST(Vfnmaddsd , "vfnmaddsd" , Enc(Fma4) , O_660F3A(7B,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(XmmMem) , U ), + INST(Vfnmaddss , "vfnmaddss" , Enc(Fma4) , O_660F3A(7A,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(XmmMem) , U ), + INST(Vfnmsub132pd , "vfnmsub132pd" , Enc(AvxRvm_OptL) , O_660F38(9E,U,_,W,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfnmsub132ps , "vfnmsub132ps" , Enc(AvxRvm_OptL) , O_660F38(9E,U,_,_,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfnmsub132sd , "vfnmsub132sd" , Enc(AvxRvm) , O_660F38(9F,U,_,W,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vfnmsub132ss , "vfnmsub132ss" , Enc(AvxRvm) , O_660F38(9F,U,_,_,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vfnmsub213pd , "vfnmsub213pd" , Enc(AvxRvm_OptL) , O_660F38(AE,U,_,W,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfnmsub213ps , "vfnmsub213ps" , Enc(AvxRvm_OptL) , O_660F38(AE,U,_,_,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfnmsub213sd , "vfnmsub213sd" , Enc(AvxRvm) , O_660F38(AF,U,_,W,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vfnmsub213ss , "vfnmsub213ss" , Enc(AvxRvm) , O_660F38(AF,U,_,_,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vfnmsub231pd , "vfnmsub231pd" , Enc(AvxRvm_OptL) , O_660F38(BE,U,_,W,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfnmsub231ps , "vfnmsub231ps" , Enc(AvxRvm_OptL) , O_660F38(BE,U,_,_,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vfnmsub231sd , "vfnmsub231sd" , Enc(AvxRvm) , O_660F38(BF,U,_,W,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vfnmsub231ss , "vfnmsub231ss" , Enc(AvxRvm) , O_660F38(BF,U,_,_,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vfnmsubpd , "vfnmsubpd" , Enc(Fma4_OptL) , O_660F3A(7D,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U ), + INST(Vfnmsubps , "vfnmsubps" , Enc(Fma4_OptL) , O_660F3A(7C,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U ), + INST(Vfnmsubsd , "vfnmsubsd" , Enc(Fma4) , O_660F3A(7F,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(XmmMem) , U ), + INST(Vfnmsubss , "vfnmsubss" , Enc(Fma4) , O_660F3A(7E,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(XmmMem) , U ), + INST(Vfrczpd , "vfrczpd" , Enc(XopRm_OptL) , O_00_M09(81,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), + INST(Vfrczps , "vfrczps" , Enc(XopRm_OptL) , O_00_M09(80,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), + INST(Vfrczsd , "vfrczsd" , Enc(XopRm) , O_00_M09(83,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Vfrczss , "vfrczss" , Enc(XopRm) , O_00_M09(82,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Vgatherdpd , "vgatherdpd" , Enc(AvxGather) , O_660F38(92,U,_,W,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Mem) , O(Xy) , U , U ), + INST(Vgatherdps , "vgatherdps" , Enc(AvxGather) , O_660F38(92,U,_,_,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Mem) , O(Xy) , U , U ), + INST(Vgatherqpd , "vgatherqpd" , Enc(AvxGather) , O_660F38(93,U,_,W,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Mem) , O(Xy) , U , U ), + INST(Vgatherqps , "vgatherqps" , Enc(AvxGatherEx) , O_660F38(93,U,_,_,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Mem) , O(Xmm) , U , U ), + INST(Vhaddpd , "vhaddpd" , Enc(AvxRvm_OptL) , O_660F00(7C,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vhaddps , "vhaddps" , Enc(AvxRvm_OptL) , O_F20F00(7C,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vhsubpd , "vhsubpd" , Enc(AvxRvm_OptL) , O_660F00(7D,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vhsubps , "vhsubps" , Enc(AvxRvm_OptL) , O_F20F00(7D,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vinsertf128 , "vinsertf128" , Enc(AvxRvmi) , O_660F3A(18,U,L,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Ymm) , O(Ymm) , O(XmmMem) , O(Imm) , U ), + INST(Vinserti128 , "vinserti128" , Enc(AvxRvmi) , O_660F3A(38,U,L,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Ymm) , O(Ymm) , O(XmmMem) , O(Imm) , U ), + INST(Vinsertps , "vinsertps" , Enc(AvxRvmi) , O_660F3A(21,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Imm) , U ), + INST(Vlddqu , "vlddqu" , Enc(AvxRm_OptL) , O_F20F00(F0,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Mem) , U , U , U ), + INST(Vldmxcsr , "vldmxcsr" , Enc(AvxM) , O_000F00(AE,2,_,_,_), U , F(RO)|F(Avx)|F(Volatile) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Vmaskmovdqu , "vmaskmovdqu" , Enc(AvxRm) , O_660F00(F7,U,_,_,_), U , F(RO)|F(Avx)|F(Special) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , U , U , U ), + INST(Vmaskmovpd , "vmaskmovpd" , Enc(AvxRvmMvr_OptL) , O_660F38(2D,U,_,_,_), O_660F38(2F,U,_,_,_), F(RW)|F(Avx) , EF(________), 0 , 0 , O(XyMem) , O(Xy) , O(XyMem) , U , U ), + INST(Vmaskmovps , "vmaskmovps" , Enc(AvxRvmMvr_OptL) , O_660F38(2C,U,_,_,_), O_660F38(2E,U,_,_,_), F(RW)|F(Avx) , EF(________), 0 , 0 , O(XyMem) , O(Xy) , O(XyMem) , U , U ), + INST(Vmaxpd , "vmaxpd" , Enc(AvxRvm_OptL) , O_660F00(5F,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vmaxps , "vmaxps" , Enc(AvxRvm_OptL) , O_000F00(5F,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vmaxsd , "vmaxsd" , Enc(AvxRvm_OptL) , O_F20F00(5F,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vmaxss , "vmaxss" , Enc(AvxRvm_OptL) , O_F30F00(5F,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vminpd , "vminpd" , Enc(AvxRvm_OptL) , O_660F00(5D,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vminps , "vminps" , Enc(AvxRvm_OptL) , O_000F00(5D,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vminsd , "vminsd" , Enc(AvxRvm_OptL) , O_F20F00(5D,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vminss , "vminss" , Enc(AvxRvm_OptL) , O_F30F00(5D,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vmovapd , "vmovapd" , Enc(AvxRmMr_OptL) , O_660F00(28,U,_,_,_), O_660F00(29,U,_,_,_), F(WO)|F(Avx) , EF(________), 0 , 0 , O(XyMem) , O(XyMem) , U , U , U ), + INST(Vmovaps , "vmovaps" , Enc(AvxRmMr_OptL) , O_000F00(28,U,_,_,_), O_000F00(29,U,_,_,_), F(WO)|F(Avx) , EF(________), 0 , 0 , O(XyMem) , O(XyMem) , U , U , U ), + INST(Vmovd , "vmovd" , Enc(AvxMovDQ) , O_660F00(6E,U,_,_,_), O_660F00(7E,U,_,_,_), F(WO)|F(Avx) , EF(________), 0 , 0 , O(XmmMem) , O(XmmMem) , U , U , U ), + INST(Vmovddup , "vmovddup" , Enc(AvxRm_OptL) , O_F20F00(12,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), + INST(Vmovdqa , "vmovdqa" , Enc(AvxRmMr_OptL) , O_660F00(6F,U,_,_,_), O_660F00(7F,U,_,_,_), F(WO)|F(Avx) , EF(________), 0 , 0 , O(XyMem) , O(XyMem) , U , U , U ), + INST(Vmovdqu , "vmovdqu" , Enc(AvxRmMr_OptL) , O_F30F00(6F,U,_,_,_), O_F30F00(7F,U,_,_,_), F(WO)|F(Avx) , EF(________), 0 , 0 , O(XyMem) , O(XyMem) , U , U , U ), + INST(Vmovhlps , "vmovhlps" , Enc(AvxRvm) , O_000F00(12,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(Xmm) , U , U ), + INST(Vmovhpd , "vmovhpd" , Enc(AvxRvmMr) , O_660F00(16,U,_,_,_), O_660F00(17,U,_,_,_), F(WO)|F(Avx) , EF(________), 0 , 0 , O(XmmMem) , O(Xmm) , O(Mem) , U , U ), + INST(Vmovhps , "vmovhps" , Enc(AvxRvmMr) , O_000F00(16,U,_,_,_), O_000F00(17,U,_,_,_), F(WO)|F(Avx) , EF(________), 0 , 0 , O(XmmMem) , O(Xmm) , O(Mem) , U , U ), + INST(Vmovlhps , "vmovlhps" , Enc(AvxRvm) , O_000F00(16,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(Xmm) , U , U ), + INST(Vmovlpd , "vmovlpd" , Enc(AvxRvmMr) , O_660F00(12,U,_,_,_), O_660F00(13,U,_,_,_), F(WO)|F(Avx) , EF(________), 0 , 0 , O(XmmMem) , O(Xmm) , O(Mem) , U , U ), + INST(Vmovlps , "vmovlps" , Enc(AvxRvmMr) , O_000F00(12,U,_,_,_), O_000F00(13,U,_,_,_), F(WO)|F(Avx) , EF(________), 0 , 0 , O(XmmMem) , O(Xmm) , O(Mem) , U , U ), + INST(Vmovmskpd , "vmovmskpd" , Enc(AvxRm_OptL) , O_660F00(50,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Gqd) , O(Xy) , U , U , U ), + INST(Vmovmskps , "vmovmskps" , Enc(AvxRm_OptL) , O_000F00(50,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Gqd) , O(Xy) , U , U , U ), + INST(Vmovntdq , "vmovntdq" , Enc(AvxMr_OptL) , O_660F00(E7,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Mem) , O(Xy) , U , U , U ), + INST(Vmovntdqa , "vmovntdqa" , Enc(AvxRm_OptL) , O_660F38(2A,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Mem) , U , U , U ), + INST(Vmovntpd , "vmovntpd" , Enc(AvxMr_OptL) , O_660F00(2B,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Mem) , O(Xy) , U , U , U ), + INST(Vmovntps , "vmovntps" , Enc(AvxMr_OptL) , O_000F00(2B,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Mem) , O(Xy) , U , U , U ), + INST(Vmovq , "vmovq" , Enc(AvxMovDQ) , O_660F00(6E,U,_,W,_), O_660F00(7E,U,_,_,_), F(WO)|F(Avx) , EF(________), 0 , 0 , O(XmmMem) , O(XmmMem) , U , U , U ), + INST(Vmovsd , "vmovsd" , Enc(AvxMovSsSd) , O_F20F00(10,U,_,_,_), O_F20F00(11,U,_,_,_), F(WO)|F(Avx) , EF(________), 0 , 0 , O(XmmMem) , O(XmmMem) , O(Xmm) , U , U ), + INST(Vmovshdup , "vmovshdup" , Enc(AvxRm_OptL) , O_F30F00(16,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), + INST(Vmovsldup , "vmovsldup" , Enc(AvxRm_OptL) , O_F30F00(12,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), + INST(Vmovss , "vmovss" , Enc(AvxMovSsSd) , O_F30F00(10,U,_,_,_), O_F30F00(11,U,_,_,_), F(WO)|F(Avx) , EF(________), 0 , 0 , O(XmmMem) , O(Xmm) , O(Xmm) , U , U ), + INST(Vmovupd , "vmovupd" , Enc(AvxRmMr_OptL) , O_660F00(10,U,_,_,_), O_660F00(11,U,_,_,_), F(WO)|F(Avx) , EF(________), 0 , 0 , O(XyMem) , O(XyMem) , U , U , U ), + INST(Vmovups , "vmovups" , Enc(AvxRmMr_OptL) , O_000F00(10,U,_,_,_), O_000F00(11,U,_,_,_), F(WO)|F(Avx) , EF(________), 0 , 0 , O(XyMem) , O(XyMem) , U , U , U ), + INST(Vmpsadbw , "vmpsadbw" , Enc(AvxRvmi_OptL) , O_660F3A(42,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(Imm) , U ), + INST(Vmulpd , "vmulpd" , Enc(AvxRvm_OptL) , O_660F00(59,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vmulps , "vmulps" , Enc(AvxRvm_OptL) , O_000F00(59,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vmulsd , "vmulsd" , Enc(AvxRvm_OptL) , O_F20F00(59,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vmulss , "vmulss" , Enc(AvxRvm_OptL) , O_F30F00(59,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vorpd , "vorpd" , Enc(AvxRvm_OptL) , O_660F00(56,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vorps , "vorps" , Enc(AvxRvm_OptL) , O_000F00(56,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpabsb , "vpabsb" , Enc(AvxRm_OptL) , O_660F38(1C,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), + INST(Vpabsd , "vpabsd" , Enc(AvxRm_OptL) , O_660F38(1E,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), + INST(Vpabsw , "vpabsw" , Enc(AvxRm_OptL) , O_660F38(1D,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), + INST(Vpackssdw , "vpackssdw" , Enc(AvxRvm_OptL) , O_660F00(6B,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpacksswb , "vpacksswb" , Enc(AvxRvm_OptL) , O_660F00(63,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpackusdw , "vpackusdw" , Enc(AvxRvm_OptL) , O_660F38(2B,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpackuswb , "vpackuswb" , Enc(AvxRvm_OptL) , O_660F00(67,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpaddb , "vpaddb" , Enc(AvxRvm_OptL) , O_660F00(FC,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpaddd , "vpaddd" , Enc(AvxRvm_OptL) , O_660F00(FE,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpaddq , "vpaddq" , Enc(AvxRvm_OptL) , O_660F00(D4,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpaddsb , "vpaddsb" , Enc(AvxRvm_OptL) , O_660F00(EC,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpaddsw , "vpaddsw" , Enc(AvxRvm_OptL) , O_660F00(ED,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpaddusb , "vpaddusb" , Enc(AvxRvm_OptL) , O_660F00(DC,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpaddusw , "vpaddusw" , Enc(AvxRvm_OptL) , O_660F00(DD,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpaddw , "vpaddw" , Enc(AvxRvm_OptL) , O_660F00(FD,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpalignr , "vpalignr" , Enc(AvxRvmi_OptL) , O_660F3A(0F,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(Imm) , U ), + INST(Vpand , "vpand" , Enc(AvxRvm_OptL) , O_660F00(DB,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpandn , "vpandn" , Enc(AvxRvm_OptL) , O_660F00(DF,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpavgb , "vpavgb" , Enc(AvxRvm_OptL) , O_660F00(E0,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpavgw , "vpavgw" , Enc(AvxRvm_OptL) , O_660F00(E3,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpblendd , "vpblendd" , Enc(AvxRvmi_OptL) , O_660F3A(02,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(Imm) , U ), + INST(Vpblendvb , "vpblendvb" , Enc(AvxRvmr) , O_660F3A(4C,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(Xy) , U ), + INST(Vpblendw , "vpblendw" , Enc(AvxRvmi_OptL) , O_660F3A(0E,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(Imm) , U ), + INST(Vpbroadcastb , "vpbroadcastb" , Enc(AvxRm_OptL) , O_660F38(78,U,_,_,0), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XmmMem) , U , U , U ), + INST(Vpbroadcastd , "vpbroadcastd" , Enc(AvxRm_OptL) , O_660F38(58,U,_,_,0), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XmmMem) , U , U , U ), + INST(Vpbroadcastq , "vpbroadcastq" , Enc(AvxRm_OptL) , O_660F38(59,U,_,_,1), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XmmMem) , U , U , U ), + INST(Vpbroadcastw , "vpbroadcastw" , Enc(AvxRm_OptL) , O_660F38(79,U,_,_,0), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XmmMem) , U , U , U ), + INST(Vpclmulqdq , "vpclmulqdq" , Enc(AvxRvmi) , O_660F3A(44,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Imm) , U ), + INST(Vpcmov , "vpcmov" , Enc(XopRvrmRvmr_OptL), O_00_M08(A2,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U ), + INST(Vpcmpeqb , "vpcmpeqb" , Enc(AvxRvm_OptL) , O_660F00(74,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpcmpeqd , "vpcmpeqd" , Enc(AvxRvm_OptL) , O_660F00(76,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpcmpeqq , "vpcmpeqq" , Enc(AvxRvm_OptL) , O_660F38(29,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpcmpeqw , "vpcmpeqw" , Enc(AvxRvm_OptL) , O_660F00(75,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpcmpestri , "vpcmpestri" , Enc(AvxRmi) , O_660F3A(61,U,_,_,_), U , F(WO)|F(Avx)|F(Special) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), + INST(Vpcmpestrm , "vpcmpestrm" , Enc(AvxRmi) , O_660F3A(60,U,_,_,_), U , F(WO)|F(Avx)|F(Special) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), + INST(Vpcmpgtb , "vpcmpgtb" , Enc(AvxRvm_OptL) , O_660F00(64,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpcmpgtd , "vpcmpgtd" , Enc(AvxRvm_OptL) , O_660F00(66,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpcmpgtq , "vpcmpgtq" , Enc(AvxRvm_OptL) , O_660F38(37,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpcmpgtw , "vpcmpgtw" , Enc(AvxRvm_OptL) , O_660F00(65,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpcmpistri , "vpcmpistri" , Enc(AvxRmi) , O_660F3A(63,U,_,_,_), U , F(WO)|F(Avx)|F(Special) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), + INST(Vpcmpistrm , "vpcmpistrm" , Enc(AvxRmi) , O_660F3A(62,U,_,_,_), U , F(WO)|F(Avx)|F(Special) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(Imm) , U , U ), + INST(Vpcomb , "vpcomb" , Enc(XopRvmi) , O_00_M08(CC,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Imm) , U ), + INST(Vpcomd , "vpcomd" , Enc(XopRvmi) , O_00_M08(CE,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Imm) , U ), + INST(Vpcomq , "vpcomq" , Enc(XopRvmi) , O_00_M08(CF,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Imm) , U ), + INST(Vpcomub , "vpcomub" , Enc(XopRvmi) , O_00_M08(EC,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Imm) , U ), + INST(Vpcomud , "vpcomud" , Enc(XopRvmi) , O_00_M08(EE,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Imm) , U ), + INST(Vpcomuq , "vpcomuq" , Enc(XopRvmi) , O_00_M08(EF,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Imm) , U ), + INST(Vpcomuw , "vpcomuw" , Enc(XopRvmi) , O_00_M08(ED,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Imm) , U ), + INST(Vpcomw , "vpcomw" , Enc(XopRvmi) , O_00_M08(CD,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Imm) , U ), + INST(Vperm2f128 , "vperm2f128" , Enc(AvxRvmi) , O_660F3A(06,U,L,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Ymm) , O(Ymm) , O(YmmMem) , O(Imm) , U ), + INST(Vperm2i128 , "vperm2i128" , Enc(AvxRvmi) , O_660F3A(46,U,L,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Ymm) , O(Ymm) , O(YmmMem) , O(Imm) , U ), + INST(Vpermd , "vpermd" , Enc(AvxRvm) , O_660F38(36,U,L,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Ymm) , O(Ymm) , O(YmmMem) , U , U ), + INST(Vpermil2pd , "vpermil2pd" , Enc(AvxRvrmRvmr_OptL), O_66_M03(49,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U ), + INST(Vpermil2ps , "vpermil2ps" , Enc(AvxRvrmRvmr_OptL), O_66_M03(48,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(XyMem) , U ), + INST(Vpermilpd , "vpermilpd" , Enc(AvxRvmRmi_OptL) , O_660F38(0D,U,_,_,_), O_660F3A(05,U,_,_,_), F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U ), + INST(Vpermilps , "vpermilps" , Enc(AvxRvmRmi_OptL) , O_660F38(0C,U,_,_,_), O_660F3A(04,U,_,_,_), F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U ), + INST(Vpermpd , "vpermpd" , Enc(AvxRmi) , O_660F3A(01,U,L,W,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Ymm) , O(YmmMem) , O(Imm) , U , U ), + INST(Vpermps , "vpermps" , Enc(AvxRvm) , O_660F38(16,U,L,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Ymm) , O(Ymm) , O(YmmMem) , U , U ), + INST(Vpermq , "vpermq" , Enc(AvxRmi) , O_660F3A(00,U,L,W,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Ymm) , O(YmmMem) , O(Imm) , U , U ), + INST(Vpextrb , "vpextrb" , Enc(AvxMri) , O_660F3A(14,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(GqdwbMem) , O(Xmm) , O(Imm) , U , U ), + INST(Vpextrd , "vpextrd" , Enc(AvxMri) , O_660F3A(16,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(GqdMem) , O(Xmm) , O(Imm) , U , U ), + INST(Vpextrq , "vpextrq" , Enc(AvxMri) , O_660F3A(16,U,_,W,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(GqMem) , O(Xmm) , O(Imm) , U , U ), + INST(Vpextrw , "vpextrw" , Enc(AvxMri) , O_660F3A(15,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(GqdwMem) , O(Xmm) , O(Imm) , U , U ), + INST(Vpgatherdd , "vpgatherdd" , Enc(AvxGather) , O_660F38(90,U,_,_,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Mem) , O(Xy) , U , U ), + INST(Vpgatherdq , "vpgatherdq" , Enc(AvxGather) , O_660F38(90,U,_,W,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Mem) , O(Xy) , U , U ), + INST(Vpgatherqd , "vpgatherqd" , Enc(AvxGatherEx) , O_660F38(91,U,_,_,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Mem) , O(Xmm) , U , U ), + INST(Vpgatherqq , "vpgatherqq" , Enc(AvxGather) , O_660F38(91,U,_,W,_), U , F(RW)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Mem) , O(Xy) , U , U ), + INST(Vphaddbd , "vphaddbd" , Enc(XopRm) , O_00_M09(C2,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Vphaddbq , "vphaddbq" , Enc(XopRm) , O_00_M09(C3,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Vphaddbw , "vphaddbw" , Enc(XopRm) , O_00_M09(C1,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Vphaddd , "vphaddd" , Enc(AvxRvm_OptL) , O_660F38(02,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vphadddq , "vphadddq" , Enc(XopRm) , O_00_M09(CB,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Vphaddsw , "vphaddsw" , Enc(AvxRvm_OptL) , O_660F38(03,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vphaddubd , "vphaddubd" , Enc(XopRm) , O_00_M09(D2,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Vphaddubq , "vphaddubq" , Enc(XopRm) , O_00_M09(D3,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Vphaddubw , "vphaddubw" , Enc(XopRm) , O_00_M09(D1,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Vphaddudq , "vphaddudq" , Enc(XopRm) , O_00_M09(DB,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Vphadduwd , "vphadduwd" , Enc(XopRm) , O_00_M09(D6,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Vphadduwq , "vphadduwq" , Enc(XopRm) , O_00_M09(D7,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Vphaddw , "vphaddw" , Enc(AvxRvm_OptL) , O_660F38(01,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vphaddwd , "vphaddwd" , Enc(XopRm) , O_00_M09(C6,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Vphaddwq , "vphaddwq" , Enc(XopRm) , O_00_M09(C7,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Vphminposuw , "vphminposuw" , Enc(AvxRm) , O_660F38(41,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Vphsubbw , "vphsubbw" , Enc(XopRm) , O_00_M09(E1,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Vphsubd , "vphsubd" , Enc(AvxRvm_OptL) , O_660F38(06,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vphsubdq , "vphsubdq" , Enc(XopRm) , O_00_M09(E3,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Vphsubsw , "vphsubsw" , Enc(AvxRvm_OptL) , O_660F38(07,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vphsubw , "vphsubw" , Enc(AvxRvm_OptL) , O_660F38(05,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vphsubwd , "vphsubwd" , Enc(XopRm) , O_00_M09(E2,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Vpinsrb , "vpinsrb" , Enc(AvxRvmi) , O_660F3A(20,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(GqdwbMem) , O(Imm) , U ), + INST(Vpinsrd , "vpinsrd" , Enc(AvxRvmi) , O_660F3A(22,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(GqdMem) , O(Imm) , U ), + INST(Vpinsrq , "vpinsrq" , Enc(AvxRvmi) , O_660F3A(22,U,_,W,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(GqMem) , O(Imm) , U ), + INST(Vpinsrw , "vpinsrw" , Enc(AvxRvmi) , O_660F00(C4,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(GqdwMem) , O(Imm) , U ), + INST(Vpmacsdd , "vpmacsdd" , Enc(XopRvmr) , O_00_M08(9E,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Xmm) , U ), + INST(Vpmacsdqh , "vpmacsdqh" , Enc(XopRvmr) , O_00_M08(9F,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Xmm) , U ), + INST(Vpmacsdql , "vpmacsdql" , Enc(XopRvmr) , O_00_M08(97,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Xmm) , U ), + INST(Vpmacssdd , "vpmacssdd" , Enc(XopRvmr) , O_00_M08(8E,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Xmm) , U ), + INST(Vpmacssdqh , "vpmacssdqh" , Enc(XopRvmr) , O_00_M08(8F,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Xmm) , U ), + INST(Vpmacssdql , "vpmacssdql" , Enc(XopRvmr) , O_00_M08(87,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Xmm) , U ), + INST(Vpmacsswd , "vpmacsswd" , Enc(XopRvmr) , O_00_M08(86,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Xmm) , U ), + INST(Vpmacssww , "vpmacssww" , Enc(XopRvmr) , O_00_M08(85,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Xmm) , U ), + INST(Vpmacswd , "vpmacswd" , Enc(XopRvmr) , O_00_M08(96,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Xmm) , U ), + INST(Vpmacsww , "vpmacsww" , Enc(XopRvmr) , O_00_M08(95,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Xmm) , U ), + INST(Vpmadcsswd , "vpmadcsswd" , Enc(XopRvmr) , O_00_M08(A6,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Xmm) , U ), + INST(Vpmadcswd , "vpmadcswd" , Enc(XopRvmr) , O_00_M08(B6,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Xmm) , U ), + INST(Vpmaddubsw , "vpmaddubsw" , Enc(AvxRvm_OptL) , O_660F38(04,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpmaddwd , "vpmaddwd" , Enc(AvxRvm_OptL) , O_660F00(F5,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpmaskmovd , "vpmaskmovd" , Enc(AvxRvmMvr_OptL) , O_660F38(8C,U,_,_,_), O_660F38(8E,U,_,_,_), F(WO)|F(Avx) , EF(________), 0 , 0 , O(XyMem) , O(Xy) , O(XyMem) , U , U ), + INST(Vpmaskmovq , "vpmaskmovq" , Enc(AvxRvmMvr_OptL) , O_660F38(8C,U,_,W,_), O_660F38(8E,U,_,_,_), F(WO)|F(Avx) , EF(________), 0 , 0 , O(XyMem) , O(Xy) , O(XyMem) , U , U ), + INST(Vpmaxsb , "vpmaxsb" , Enc(AvxRvm_OptL) , O_660F38(3C,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpmaxsd , "vpmaxsd" , Enc(AvxRvm_OptL) , O_660F38(3D,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpmaxsw , "vpmaxsw" , Enc(AvxRvm_OptL) , O_660F00(EE,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpmaxub , "vpmaxub" , Enc(AvxRvm_OptL) , O_660F00(DE,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpmaxud , "vpmaxud" , Enc(AvxRvm_OptL) , O_660F38(3F,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpmaxuw , "vpmaxuw" , Enc(AvxRvm_OptL) , O_660F38(3E,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpminsb , "vpminsb" , Enc(AvxRvm_OptL) , O_660F38(38,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpminsd , "vpminsd" , Enc(AvxRvm_OptL) , O_660F38(39,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpminsw , "vpminsw" , Enc(AvxRvm_OptL) , O_660F00(EA,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpminub , "vpminub" , Enc(AvxRvm_OptL) , O_660F00(DA,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpminud , "vpminud" , Enc(AvxRvm_OptL) , O_660F38(3B,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpminuw , "vpminuw" , Enc(AvxRvm_OptL) , O_660F38(3A,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpmovmskb , "vpmovmskb" , Enc(AvxRm_OptL) , O_660F00(D7,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Gqd) , O(Xy) , U , U , U ), + INST(Vpmovsxbd , "vpmovsxbd" , Enc(AvxRm_OptL) , O_660F38(21,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), + INST(Vpmovsxbq , "vpmovsxbq" , Enc(AvxRm_OptL) , O_660F38(22,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), + INST(Vpmovsxbw , "vpmovsxbw" , Enc(AvxRm_OptL) , O_660F38(20,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), + INST(Vpmovsxdq , "vpmovsxdq" , Enc(AvxRm_OptL) , O_660F38(25,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), + INST(Vpmovsxwd , "vpmovsxwd" , Enc(AvxRm_OptL) , O_660F38(23,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), + INST(Vpmovsxwq , "vpmovsxwq" , Enc(AvxRm_OptL) , O_660F38(24,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), + INST(Vpmovzxbd , "vpmovzxbd" , Enc(AvxRm_OptL) , O_660F38(31,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), + INST(Vpmovzxbq , "vpmovzxbq" , Enc(AvxRm_OptL) , O_660F38(32,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), + INST(Vpmovzxbw , "vpmovzxbw" , Enc(AvxRm_OptL) , O_660F38(30,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), + INST(Vpmovzxdq , "vpmovzxdq" , Enc(AvxRm_OptL) , O_660F38(35,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), + INST(Vpmovzxwd , "vpmovzxwd" , Enc(AvxRm_OptL) , O_660F38(33,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), + INST(Vpmovzxwq , "vpmovzxwq" , Enc(AvxRm_OptL) , O_660F38(34,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), + INST(Vpmuldq , "vpmuldq" , Enc(AvxRvm_OptL) , O_660F38(28,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpmulhrsw , "vpmulhrsw" , Enc(AvxRvm_OptL) , O_660F38(0B,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpmulhuw , "vpmulhuw" , Enc(AvxRvm_OptL) , O_660F00(E4,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpmulhw , "vpmulhw" , Enc(AvxRvm_OptL) , O_660F00(E5,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpmulld , "vpmulld" , Enc(AvxRvm_OptL) , O_660F38(40,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpmullw , "vpmullw" , Enc(AvxRvm_OptL) , O_660F00(D5,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpmuludq , "vpmuludq" , Enc(AvxRvm_OptL) , O_660F00(F4,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpor , "vpor" , Enc(AvxRvm_OptL) , O_660F00(EB,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpperm , "vpperm" , Enc(XopRvrmRvmr) , O_00_M08(A3,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(XmmMem) , U ), + INST(Vprotb , "vprotb" , Enc(XopRvmRmi) , O_00_M09(90,U,_,_,_), O_00_M08(C0,U,_,_,_), F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(XmmMem)|O(Imm) , U , U ), + INST(Vprotd , "vprotd" , Enc(XopRvmRmi) , O_00_M09(92,U,_,_,_), O_00_M08(C2,U,_,_,_), F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(XmmMem)|O(Imm) , U , U ), + INST(Vprotq , "vprotq" , Enc(XopRvmRmi) , O_00_M09(93,U,_,_,_), O_00_M08(C3,U,_,_,_), F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(XmmMem)|O(Imm) , U , U ), + INST(Vprotw , "vprotw" , Enc(XopRvmRmi) , O_00_M09(91,U,_,_,_), O_00_M08(C1,U,_,_,_), F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(XmmMem)|O(Imm) , U , U ), + INST(Vpsadbw , "vpsadbw" , Enc(AvxRvm_OptL) , O_660F00(F6,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpshab , "vpshab" , Enc(XopRvmRmv) , O_00_M09(98,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(XmmMem) , U , U ), + INST(Vpshad , "vpshad" , Enc(XopRvmRmv) , O_00_M09(9A,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(XmmMem) , U , U ), + INST(Vpshaq , "vpshaq" , Enc(XopRvmRmv) , O_00_M09(9B,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(XmmMem) , U , U ), + INST(Vpshaw , "vpshaw" , Enc(XopRvmRmv) , O_00_M09(99,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(XmmMem) , U , U ), + INST(Vpshlb , "vpshlb" , Enc(XopRvmRmv) , O_00_M09(94,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(XmmMem) , U , U ), + INST(Vpshld , "vpshld" , Enc(XopRvmRmv) , O_00_M09(96,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(XmmMem) , U , U ), + INST(Vpshlq , "vpshlq" , Enc(XopRvmRmv) , O_00_M09(97,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(XmmMem) , U , U ), + INST(Vpshlw , "vpshlw" , Enc(XopRvmRmv) , O_00_M09(95,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , O(XmmMem) , U , U ), + INST(Vpshufb , "vpshufb" , Enc(AvxRvm_OptL) , O_660F38(00,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpshufd , "vpshufd" , Enc(AvxRmi_OptL) , O_660F00(70,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , O(Imm) , U , U ), + INST(Vpshufhw , "vpshufhw" , Enc(AvxRmi_OptL) , O_F30F00(70,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , O(Imm) , U , U ), + INST(Vpshuflw , "vpshuflw" , Enc(AvxRmi_OptL) , O_F20F00(70,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , O(Imm) , U , U ), + INST(Vpsignb , "vpsignb" , Enc(AvxRvm_OptL) , O_660F38(08,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpsignd , "vpsignd" , Enc(AvxRvm_OptL) , O_660F38(0A,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpsignw , "vpsignw" , Enc(AvxRvm_OptL) , O_660F38(09,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpslld , "vpslld" , Enc(AvxRvmVmi_OptL) , O_660F00(F2,U,_,_,_), O_660F00(72,6,_,_,_), F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U ), + INST(Vpslldq , "vpslldq" , Enc(AvxVmi_OptL) , O_660F00(73,7,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , O(Imm) , U , U ), + INST(Vpsllq , "vpsllq" , Enc(AvxRvmVmi_OptL) , O_660F00(F3,U,_,_,_), O_660F00(73,6,_,_,_), F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U ), + INST(Vpsllvd , "vpsllvd" , Enc(AvxRvm_OptL) , O_660F38(47,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpsllvq , "vpsllvq" , Enc(AvxRvm_OptL) , O_660F38(47,U,_,W,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpsllw , "vpsllw" , Enc(AvxRvmVmi_OptL) , O_660F00(F1,U,_,_,_), O_660F00(71,6,_,_,_), F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U ), + INST(Vpsrad , "vpsrad" , Enc(AvxRvmVmi_OptL) , O_660F00(E2,U,_,_,_), O_660F00(72,4,_,_,_), F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U ), + INST(Vpsravd , "vpsravd" , Enc(AvxRvm_OptL) , O_660F38(46,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpsraw , "vpsraw" , Enc(AvxRvmVmi_OptL) , O_660F00(E1,U,_,_,_), O_660F00(71,4,_,_,_), F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U ), + INST(Vpsrld , "vpsrld" , Enc(AvxRvmVmi_OptL) , O_660F00(D2,U,_,_,_), O_660F00(72,2,_,_,_), F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U ), + INST(Vpsrldq , "vpsrldq" , Enc(AvxVmi_OptL) , O_660F00(73,3,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , O(Imm) , U , U ), + INST(Vpsrlq , "vpsrlq" , Enc(AvxRvmVmi_OptL) , O_660F00(D3,U,_,_,_), O_660F00(73,2,_,_,_), F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U ), + INST(Vpsrlvd , "vpsrlvd" , Enc(AvxRvm_OptL) , O_660F38(45,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpsrlvq , "vpsrlvq" , Enc(AvxRvm_OptL) , O_660F38(45,U,_,W,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpsrlw , "vpsrlw" , Enc(AvxRvmVmi_OptL) , O_660F00(D1,U,_,_,_), O_660F00(71,2,_,_,_), F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , O(XyMem)|O(Imm) , U , U ), + INST(Vpsubb , "vpsubb" , Enc(AvxRvm_OptL) , O_660F00(F8,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpsubd , "vpsubd" , Enc(AvxRvm_OptL) , O_660F00(FA,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpsubq , "vpsubq" , Enc(AvxRvm_OptL) , O_660F00(FB,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpsubsb , "vpsubsb" , Enc(AvxRvm_OptL) , O_660F00(E8,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpsubsw , "vpsubsw" , Enc(AvxRvm_OptL) , O_660F00(E9,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpsubusb , "vpsubusb" , Enc(AvxRvm_OptL) , O_660F00(D8,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpsubusw , "vpsubusw" , Enc(AvxRvm_OptL) , O_660F00(D9,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpsubw , "vpsubw" , Enc(AvxRvm_OptL) , O_660F00(F9,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vptest , "vptest" , Enc(AvxRm_OptL) , O_660F38(17,U,_,_,_), U , F(RO)|F(Avx) , EF(WWWWWW__), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), + INST(Vpunpckhbw , "vpunpckhbw" , Enc(AvxRvm_OptL) , O_660F00(68,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpunpckhdq , "vpunpckhdq" , Enc(AvxRvm_OptL) , O_660F00(6A,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpunpckhqdq , "vpunpckhqdq" , Enc(AvxRvm_OptL) , O_660F00(6D,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpunpckhwd , "vpunpckhwd" , Enc(AvxRvm_OptL) , O_660F00(69,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpunpcklbw , "vpunpcklbw" , Enc(AvxRvm_OptL) , O_660F00(60,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpunpckldq , "vpunpckldq" , Enc(AvxRvm_OptL) , O_660F00(62,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpunpcklqdq , "vpunpcklqdq" , Enc(AvxRvm_OptL) , O_660F00(6C,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpunpcklwd , "vpunpcklwd" , Enc(AvxRvm_OptL) , O_660F00(61,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vpxor , "vpxor" , Enc(AvxRvm_OptL) , O_660F00(EF,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vrcpps , "vrcpps" , Enc(AvxRm_OptL) , O_000F00(53,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), + INST(Vrcpss , "vrcpss" , Enc(AvxRvm) , O_F30F00(53,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vroundpd , "vroundpd" , Enc(AvxRmi_OptL) , O_660F3A(09,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , O(Imm) , U , U ), + INST(Vroundps , "vroundps" , Enc(AvxRmi_OptL) , O_660F3A(08,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , O(Imm) , U , U ), + INST(Vroundsd , "vroundsd" , Enc(AvxRvmi) , O_660F3A(0B,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Imm) , U ), + INST(Vroundss , "vroundss" , Enc(AvxRvmi) , O_660F3A(0A,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , O(Imm) , U ), + INST(Vrsqrtps , "vrsqrtps" , Enc(AvxRm_OptL) , O_000F00(52,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), + INST(Vrsqrtss , "vrsqrtss" , Enc(AvxRvm) , O_F30F00(52,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vshufpd , "vshufpd" , Enc(AvxRvmi_OptL) , O_660F00(C6,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(Imm) , U ), + INST(Vshufps , "vshufps" , Enc(AvxRvmi_OptL) , O_000F00(C6,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , O(Imm) , U ), + INST(Vsqrtpd , "vsqrtpd" , Enc(AvxRm_OptL) , O_660F00(51,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), + INST(Vsqrtps , "vsqrtps" , Enc(AvxRm_OptL) , O_000F00(51,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), + INST(Vsqrtsd , "vsqrtsd" , Enc(AvxRvm) , O_F20F00(51,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vsqrtss , "vsqrtss" , Enc(AvxRvm) , O_F30F00(51,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vstmxcsr , "vstmxcsr" , Enc(AvxM) , O_000F00(AE,3,_,_,_), U , F(Volatile)|F(Avx) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Vsubpd , "vsubpd" , Enc(AvxRvm_OptL) , O_660F00(5C,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vsubps , "vsubps" , Enc(AvxRvm_OptL) , O_000F00(5C,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vsubsd , "vsubsd" , Enc(AvxRvm) , O_F20F00(5C,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vsubss , "vsubss" , Enc(AvxRvm) , O_F30F00(5C,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xmm) , O(Xmm) , O(XmmMem) , U , U ), + INST(Vtestpd , "vtestpd" , Enc(AvxRm_OptL) , O_660F38(0F,U,_,_,_), U , F(RO)|F(Avx) , EF(WWWWWW__), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), + INST(Vtestps , "vtestps" , Enc(AvxRm_OptL) , O_660F38(0E,U,_,_,_), U , F(RO)|F(Avx) , EF(WWWWWW__), 0 , 0 , O(Xy) , O(XyMem) , U , U , U ), + INST(Vucomisd , "vucomisd" , Enc(AvxRm) , O_660F00(2E,U,_,_,_), U , F(RO)|F(Avx) , EF(WWWWWW__), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Vucomiss , "vucomiss" , Enc(AvxRm) , O_000F00(2E,U,_,_,_), U , F(RO)|F(Avx) , EF(WWWWWW__), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Vunpckhpd , "vunpckhpd" , Enc(AvxRvm_OptL) , O_660F00(15,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vunpckhps , "vunpckhps" , Enc(AvxRvm_OptL) , O_000F00(15,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vunpcklpd , "vunpcklpd" , Enc(AvxRvm_OptL) , O_660F00(14,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vunpcklps , "vunpcklps" , Enc(AvxRvm_OptL) , O_000F00(14,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vxorpd , "vxorpd" , Enc(AvxRvm_OptL) , O_660F00(57,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vxorps , "vxorps" , Enc(AvxRvm_OptL) , O_000F00(57,U,_,_,_), U , F(WO)|F(Avx) , EF(________), 0 , 0 , O(Xy) , O(Xy) , O(XyMem) , U , U ), + INST(Vzeroall , "vzeroall" , Enc(AvxOp) , O_000F00(77,U,L,_,_), U , F(Volatile)|F(Avx) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Vzeroupper , "vzeroupper" , Enc(AvxOp) , O_000F00(77,U,_,_,_), U , F(Volatile)|F(Avx) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Wrfsbase , "wrfsbase" , Enc(X86Rm) , O_F30F00(AE,2,_,_,_), U , F(RO)|F(Volatile) , EF(________), 0 , 0 , O(Gqd) , U , U , U , U ), + INST(Wrgsbase , "wrgsbase" , Enc(X86Rm) , O_F30F00(AE,3,_,_,_), U , F(RO)|F(Volatile) , EF(________), 0 , 0 , O(Gqd) , U , U , U , U ), + INST(Xadd , "xadd" , Enc(X86Xadd) , O_000F00(C0,U,_,_,_), U , F(RW)|F(Xchg)|F(Lock) , EF(WWWWWW__), 0 , 0 , O(GqdwbMem) , O(Gqdwb) , U , U , U ), + INST(Xchg , "xchg" , Enc(X86Xchg) , O_000000(86,U,_,_,_), U , F(RW)|F(Xchg)|F(Lock) , EF(________), 0 , 0 , O(GqdwbMem) , O(Gqdwb) , U , U , U ), + INST(Xgetbv , "xgetbv" , Enc(X86Op) , O_000F01(D0,U,_,_,_), U , F(WO)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ), + INST(Xor , "xor" , Enc(X86Arith) , O_000000(30,6,_,_,_), U , F(RW)|F(Lock) , EF(WWWUWW__), 0 , 0 , O(GqdwbMem) , O(GqdwbMem)|O(Imm), U , U , U ), + INST(Xorpd , "xorpd" , Enc(SimdRm) , O_660F00(57,U,_,_,_), U , F(RW)|F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Xorps , "xorps" , Enc(SimdRm) , O_000F00(57,U,_,_,_), U , F(RW)|F(None) , EF(________), 0 , 0 , O(Xmm) , O(XmmMem) , U , U , U ), + INST(Xrstor , "xrstor" , Enc(X86M) , O_000F00(AE,5,_,_,_), U , F(RO)|F(Volatile)|F(Special) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Xrstor64 , "xrstor64" , Enc(X86M) , O_000F00(AE,5,_,W,_), U , F(RO)|F(Volatile)|F(Special) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Xsave , "xsave" , Enc(X86M) , O_000F00(AE,4,_,_,_), U , F(RO)|F(Volatile)|F(Special) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Xsave64 , "xsave64" , Enc(X86M) , O_000F00(AE,4,_,W,_), U , F(RO)|F(Volatile)|F(Special) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Xsaveopt , "xsaveopt" , Enc(X86M) , O_000F00(AE,6,_,_,_), U , F(RO)|F(Volatile)|F(Special) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Xsaveopt64 , "xsaveopt64" , Enc(X86M) , O_000F00(AE,6,_,W,_), U , F(RO)|F(Volatile)|F(Special) , EF(________), 0 , 0 , O(Mem) , U , U , U , U ), + INST(Xsetbv , "xsetbv" , Enc(X86Op) , O_000F01(D1,U,_,_,_), U , F(RO)|F(Volatile)|F(Special) , EF(________), 0 , 0 , U , U , U , U , U ) }; - #undef INST #undef O_00_X @@ -4480,12 +2929,11 @@ const X86InstInfo _x86InstInfo[] = { #undef O_000F00 #undef O_000000 -#undef O +#undef Enc #undef EF +#undef O #undef A #undef F -#undef Enc - #undef U // ============================================================================ @@ -4523,7 +2971,7 @@ const uint32_t _x86CondToSetcc [20] = CC_TO_INST(kX86InstIdSet ); //! //! Compare two instruction names. //! -//! `a` is null terminated instruction name from `_x86InstName[]` table. +//! `a` is null terminated instruction name from `_x86InstNameData[]` table. //! `b` is non-null terminated instruction name passed to `getInstIdByName()`. static ASMJIT_INLINE int X86Util_cmpInstName(const char* a, const char* b, size_t len) noexcept { for (size_t i = 0; i < len; i++) { @@ -4554,8 +3002,8 @@ uint32_t X86Util::getInstIdByName(const char* name, size_t len) noexcept { if (index == kX86InstAlphaIndexInvalid) return kInstIdNone; - const X86InstInfo* base = _x86InstInfo + index; - const X86InstInfo* end = _x86InstInfo + _kX86InstIdCount; + const uint16_t* base = _x86InstNameIndex + index; + const uint16_t* end = _x86InstNameIndex + _kX86InstIdCount; // Handle instructions starting with 'j' specially. `jcc` instruction breaks // the sorting, because of the suffixes (it's considered as one instruction), @@ -4566,21 +3014,21 @@ uint32_t X86Util::getInstIdByName(const char* name, size_t len) noexcept { index = _x86InstAlphaIndex[prefix]; if (index == kX86InstAlphaIndexInvalid) continue; - end = _x86InstInfo + index; + end = _x86InstNameIndex + index; break; } if (linearSearch) { while (base != end) { - if (X86Util_cmpInstName(base->getInstName(), name, len) == 0) - return static_cast((size_t)(base - _x86InstInfo)); + if (X86Util_cmpInstName(_x86InstNameData + base[0], name, len) == 0) + return static_cast((size_t)(base - _x86InstNameIndex)); base++; } } else { for (size_t lim = (size_t)(end - base); lim != 0; lim >>= 1) { - const X86InstInfo* cur = base + (lim >> 1); - int result = X86Util_cmpInstName(cur->getInstName(), name, len); + const uint16_t* cur = base + (lim >> 1); + int result = X86Util_cmpInstName(_x86InstNameData + cur[0], name, len); if (result < 0) { base = cur + 1; @@ -4591,12 +3039,18 @@ uint32_t X86Util::getInstIdByName(const char* name, size_t len) noexcept { if (result > 0) continue; - return static_cast((size_t)(cur - _x86InstInfo)); + return static_cast((size_t)(cur - _x86InstNameIndex)); } } return kInstIdNone; } + +const char* X86Util::getInstNameById(uint32_t id) noexcept { + if (id >= _kX86InstIdCount) + return nullptr; + return _x86InstNameData + _x86InstNameIndex[id]; +} #endif // ASMJIT_DISABLE_TEXT // ============================================================================ @@ -4608,11 +3062,11 @@ UNIT(x86_inst_name) { // All known instructions should be matched. INFO("Matching all X86/X64 instructions."); for (uint32_t a = 0; a < _kX86InstIdCount; a++) { - uint32_t b = X86Util::getInstIdByName(_x86InstInfo[a].getInstName()); + uint32_t b = X86Util::getInstIdByName(_x86InstNameData + _x86InstNameIndex[a]); EXPECT(a == b, "Should match existing instruction \"%s\" {id:%u} != \"%s\" {id:%u}.", - _x86InstInfo[a].getInstName(), a, - _x86InstInfo[b].getInstName(), b); + _x86InstNameData + _x86InstNameIndex[a], a, + _x86InstNameData + _x86InstNameIndex[b], b); } // Everything else should return `kInstIdNone`. diff --git a/src/asmjit/x86/x86inst.h b/src/asmjit/x86/x86inst.h index 5588984..3fe391a 100644 --- a/src/asmjit/x86/x86inst.h +++ b/src/asmjit/x86/x86inst.h @@ -34,13 +34,6 @@ struct X86InstExtendedInfo; // [asmjit::X86Inst/X86Cond - Globals] // ============================================================================ -#if !defined(ASMJIT_DISABLE_TEXT) -//! \internal -//! -//! X86/X64 instructions' names, accessible through `X86InstInfo`. -ASMJIT_VARAPI const char _x86InstName[]; -#endif // !ASMJIT_DISABLE_TEXT - //! \internal //! //! X86/X64 instructions' extended information, accessible through `X86InstInfo`. @@ -85,1067 +78,1093 @@ ASMJIT_VARAPI const uint32_t _x86CondToSetcc[20]; //! \ref X86Util::getInstIdByName() if you need instruction name to ID mapping //! and are not aware on how to handle such case. ASMJIT_ENUM(X86InstId) { - kX86InstIdAdc = 1, // X86/X64 - kX86InstIdAdd, // X86/X64 - kX86InstIdAddpd, // SSE2 - kX86InstIdAddps, // SSE - kX86InstIdAddsd, // SSE2 - kX86InstIdAddss, // SSE - kX86InstIdAddsubpd, // SSE3 - kX86InstIdAddsubps, // SSE3 - kX86InstIdAesdec, // AESNI - kX86InstIdAesdeclast, // AESNI - kX86InstIdAesenc, // AESNI - kX86InstIdAesenclast, // AESNI - kX86InstIdAesimc, // AESNI - kX86InstIdAeskeygenassist, // AESNI - kX86InstIdAnd, // X86/X64 - kX86InstIdAndn, // BMI - kX86InstIdAndnpd, // SSE2 - kX86InstIdAndnps, // SSE - kX86InstIdAndpd, // SSE2 - kX86InstIdAndps, // SSE - kX86InstIdBextr, // BMI - kX86InstIdBlendpd, // SSE4.1 - kX86InstIdBlendps, // SSE4.1 - kX86InstIdBlendvpd, // SSE4.1 - kX86InstIdBlendvps, // SSE4.1 - kX86InstIdBlsi, // BMI - kX86InstIdBlsmsk, // BMI - kX86InstIdBlsr, // BMI - kX86InstIdBsf, // X86/X64 - kX86InstIdBsr, // X86/X64 - kX86InstIdBswap, // X86/X64 (i486+) - kX86InstIdBt, // X86/X64 - kX86InstIdBtc, // X86/X64 - kX86InstIdBtr, // X86/X64 - kX86InstIdBts, // X86/X64 - kX86InstIdBzhi, // BMI2 - kX86InstIdCall, // X86/X64 - kX86InstIdCbw, // X86/X64 - kX86InstIdCdq, // X86/X64 - kX86InstIdCdqe, // X64 only - kX86InstIdClc, // X86/X64 - kX86InstIdCld, // X86/X64 - kX86InstIdClflush, // SSE2 - kX86InstIdCmc, // X86/X64 - kX86InstIdCmova, // X86/X64 (cmovcc) (i586+) - kX86InstIdCmovae, // X86/X64 (cmovcc) (i586+) - kX86InstIdCmovb, // X86/X64 (cmovcc) (i586+) - kX86InstIdCmovbe, // X86/X64 (cmovcc) (i586+) - kX86InstIdCmovc, // X86/X64 (cmovcc) (i586+) - kX86InstIdCmove, // X86/X64 (cmovcc) (i586+) - kX86InstIdCmovg, // X86/X64 (cmovcc) (i586+) - kX86InstIdCmovge, // X86/X64 (cmovcc) (i586+) - kX86InstIdCmovl, // X86/X64 (cmovcc) (i586+) - kX86InstIdCmovle, // X86/X64 (cmovcc) (i586+) - kX86InstIdCmovna, // X86/X64 (cmovcc) (i586+) - kX86InstIdCmovnae, // X86/X64 (cmovcc) (i586+) - kX86InstIdCmovnb, // X86/X64 (cmovcc) (i586+) - kX86InstIdCmovnbe, // X86/X64 (cmovcc) (i586+) - kX86InstIdCmovnc, // X86/X64 (cmovcc) (i586+) - kX86InstIdCmovne, // X86/X64 (cmovcc) (i586+) - kX86InstIdCmovng, // X86/X64 (cmovcc) (i586+) - kX86InstIdCmovnge, // X86/X64 (cmovcc) (i586+) - kX86InstIdCmovnl, // X86/X64 (cmovcc) (i586+) - kX86InstIdCmovnle, // X86/X64 (cmovcc) (i586+) - kX86InstIdCmovno, // X86/X64 (cmovcc) (i586+) - kX86InstIdCmovnp, // X86/X64 (cmovcc) (i586+) - kX86InstIdCmovns, // X86/X64 (cmovcc) (i586+) - kX86InstIdCmovnz, // X86/X64 (cmovcc) (i586+) - kX86InstIdCmovo, // X86/X64 (cmovcc) (i586+) - kX86InstIdCmovp, // X86/X64 (cmovcc) (i586+) - kX86InstIdCmovpe, // X86/X64 (cmovcc) (i586+) - kX86InstIdCmovpo, // X86/X64 (cmovcc) (i586+) - kX86InstIdCmovs, // X86/X64 (cmovcc) (i586+) - kX86InstIdCmovz, // X86/X64 (cmovcc) (i586+) - kX86InstIdCmp, // X86/X64 - kX86InstIdCmppd, // SSE2 - kX86InstIdCmpps, // SSE - kX86InstIdCmpsB, // CMPS - X86/X64 - kX86InstIdCmpsD, // CMPS - X86/X64 - kX86InstIdCmpsQ, // CMPS - X64 - kX86InstIdCmpsW, // CMPS - X86/X64 - kX86InstIdCmpsd, // SSE2 - kX86InstIdCmpss, // SSE - kX86InstIdCmpxchg, // X86/X64 (i486+) - kX86InstIdCmpxchg16b, // X64 only - kX86InstIdCmpxchg8b, // X86/X64 (i586+) - kX86InstIdComisd, // SSE2 - kX86InstIdComiss, // SSE - kX86InstIdCpuid, // X86/X64 (i486/i586+) - kX86InstIdCqo, // X64 only - kX86InstIdCrc32, // SSE4.2 - kX86InstIdCvtdq2pd, // SSE2 - kX86InstIdCvtdq2ps, // SSE2 - kX86InstIdCvtpd2dq, // SSE2 - kX86InstIdCvtpd2pi, // SSE2 - kX86InstIdCvtpd2ps, // SSE2 - kX86InstIdCvtpi2pd, // SSE2 - kX86InstIdCvtpi2ps, // SSE - kX86InstIdCvtps2dq, // SSE2 - kX86InstIdCvtps2pd, // SSE2 - kX86InstIdCvtps2pi, // SSE - kX86InstIdCvtsd2si, // SSE2 - kX86InstIdCvtsd2ss, // SSE2 - kX86InstIdCvtsi2sd, // SSE2 - kX86InstIdCvtsi2ss, // SSE - kX86InstIdCvtss2sd, // SSE2 - kX86InstIdCvtss2si, // SSE - kX86InstIdCvttpd2dq, // SSE2 - kX86InstIdCvttpd2pi, // SSE2 - kX86InstIdCvttps2dq, // SSE2 - kX86InstIdCvttps2pi, // SSE - kX86InstIdCvttsd2si, // SSE2 - kX86InstIdCvttss2si, // SSE - kX86InstIdCwd, // X86/X64 - kX86InstIdCwde, // X86/X64 - kX86InstIdDaa, // X86 only - kX86InstIdDas, // X86 only - kX86InstIdDec, // X86/X64 - kX86InstIdDiv, // X86/X64 - kX86InstIdDivpd, // SSE2 - kX86InstIdDivps, // SSE - kX86InstIdDivsd, // SSE2 - kX86InstIdDivss, // SSE - kX86InstIdDppd, // SSE4.1 - kX86InstIdDpps, // SSE4.1 - kX86InstIdEmms, // MMX - kX86InstIdEnter, // X86/X64 - kX86InstIdExtractps, // SSE4.1 - kX86InstIdExtrq, // SSE4a - kX86InstIdF2xm1, // FPU - kX86InstIdFabs, // FPU - kX86InstIdFadd, // FPU - kX86InstIdFaddp, // FPU - kX86InstIdFbld, // FPU - kX86InstIdFbstp, // FPU - kX86InstIdFchs, // FPU - kX86InstIdFclex, // FPU - kX86InstIdFcmovb, // FPU - kX86InstIdFcmovbe, // FPU - kX86InstIdFcmove, // FPU - kX86InstIdFcmovnb, // FPU - kX86InstIdFcmovnbe, // FPU - kX86InstIdFcmovne, // FPU - kX86InstIdFcmovnu, // FPU - kX86InstIdFcmovu, // FPU - kX86InstIdFcom, // FPU - kX86InstIdFcomi, // FPU - kX86InstIdFcomip, // FPU - kX86InstIdFcomp, // FPU - kX86InstIdFcompp, // FPU - kX86InstIdFcos, // FPU - kX86InstIdFdecstp, // FPU - kX86InstIdFdiv, // FPU - kX86InstIdFdivp, // FPU - kX86InstIdFdivr, // FPU - kX86InstIdFdivrp, // FPU - kX86InstIdFemms, // 3dNow! - kX86InstIdFfree, // FPU - kX86InstIdFiadd, // FPU - kX86InstIdFicom, // FPU - kX86InstIdFicomp, // FPU - kX86InstIdFidiv, // FPU - kX86InstIdFidivr, // FPU - kX86InstIdFild, // FPU - kX86InstIdFimul, // FPU - kX86InstIdFincstp, // FPU - kX86InstIdFinit, // FPU - kX86InstIdFist, // FPU - kX86InstIdFistp, // FPU - kX86InstIdFisttp, // SSE3 - kX86InstIdFisub, // FPU - kX86InstIdFisubr, // FPU - kX86InstIdFld, // FPU - kX86InstIdFld1, // FPU - kX86InstIdFldcw, // FPU - kX86InstIdFldenv, // FPU - kX86InstIdFldl2e, // FPU - kX86InstIdFldl2t, // FPU - kX86InstIdFldlg2, // FPU - kX86InstIdFldln2, // FPU - kX86InstIdFldpi, // FPU - kX86InstIdFldz, // FPU - kX86InstIdFmul, // FPU - kX86InstIdFmulp, // FPU - kX86InstIdFnclex, // FPU - kX86InstIdFninit, // FPU - kX86InstIdFnop, // FPU - kX86InstIdFnsave, // FPU - kX86InstIdFnstcw, // FPU - kX86InstIdFnstenv, // FPU - kX86InstIdFnstsw, // FPU - kX86InstIdFpatan, // FPU - kX86InstIdFprem, // FPU - kX86InstIdFprem1, // FPU - kX86InstIdFptan, // FPU - kX86InstIdFrndint, // FPU - kX86InstIdFrstor, // FPU - kX86InstIdFsave, // FPU - kX86InstIdFscale, // FPU - kX86InstIdFsin, // FPU - kX86InstIdFsincos, // FPU - kX86InstIdFsqrt, // FPU - kX86InstIdFst, // FPU - kX86InstIdFstcw, // FPU - kX86InstIdFstenv, // FPU - kX86InstIdFstp, // FPU - kX86InstIdFstsw, // FPU - kX86InstIdFsub, // FPU - kX86InstIdFsubp, // FPU - kX86InstIdFsubr, // FPU - kX86InstIdFsubrp, // FPU - kX86InstIdFtst, // FPU - kX86InstIdFucom, // FPU - kX86InstIdFucomi, // FPU - kX86InstIdFucomip, // FPU - kX86InstIdFucomp, // FPU - kX86InstIdFucompp, // FPU - kX86InstIdFwait, // FPU - kX86InstIdFxam, // FPU - kX86InstIdFxch, // FPU - kX86InstIdFxrstor, // FPU - kX86InstIdFxsave, // FPU - kX86InstIdFxtract, // FPU - kX86InstIdFyl2x, // FPU - kX86InstIdFyl2xp1, // FPU - kX86InstIdHaddpd, // SSE3 - kX86InstIdHaddps, // SSE3 - kX86InstIdHsubpd, // SSE3 - kX86InstIdHsubps, // SSE3 - kX86InstIdIdiv, // X86/X64 - kX86InstIdImul, // X86/X64 - kX86InstIdInc, // X86/X64 - kX86InstIdInsertps, // SSE4.1 - kX86InstIdInsertq, // SSE4a - kX86InstIdInt, // X86/X64 - kX86InstIdJa, // X86/X64 (jcc) - kX86InstIdJae, // X86/X64 (jcc) - kX86InstIdJb, // X86/X64 (jcc) - kX86InstIdJbe, // X86/X64 (jcc) - kX86InstIdJc, // X86/X64 (jcc) - kX86InstIdJe, // X86/X64 (jcc) - kX86InstIdJg, // X86/X64 (jcc) - kX86InstIdJge, // X86/X64 (jcc) - kX86InstIdJl, // X86/X64 (jcc) - kX86InstIdJle, // X86/X64 (jcc) - kX86InstIdJna, // X86/X64 (jcc) - kX86InstIdJnae, // X86/X64 (jcc) - kX86InstIdJnb, // X86/X64 (jcc) - kX86InstIdJnbe, // X86/X64 (jcc) - kX86InstIdJnc, // X86/X64 (jcc) - kX86InstIdJne, // X86/X64 (jcc) - kX86InstIdJng, // X86/X64 (jcc) - kX86InstIdJnge, // X86/X64 (jcc) - kX86InstIdJnl, // X86/X64 (jcc) - kX86InstIdJnle, // X86/X64 (jcc) - kX86InstIdJno, // X86/X64 (jcc) - kX86InstIdJnp, // X86/X64 (jcc) - kX86InstIdJns, // X86/X64 (jcc) - kX86InstIdJnz, // X86/X64 (jcc) - kX86InstIdJo, // X86/X64 (jcc) - kX86InstIdJp, // X86/X64 (jcc) - kX86InstIdJpe, // X86/X64 (jcc) - kX86InstIdJpo, // X86/X64 (jcc) - kX86InstIdJs, // X86/X64 (jcc) - kX86InstIdJz, // X86/X64 (jcc) - kX86InstIdJecxz, // X86/X64 (jcxz/jecxz/jrcxz) - kX86InstIdJmp, // X86/X64 (jmp) - kX86InstIdLahf, // X86/X64 (CPUID NEEDED) - kX86InstIdLddqu, // SSE3 - kX86InstIdLdmxcsr, // SSE - kX86InstIdLea, // X86/X64 - kX86InstIdLeave, // X86/X64 - kX86InstIdLfence, // SSE2 - kX86InstIdLodsB, // LODS - X86/X64 - kX86InstIdLodsD, // LODS - X86/X64 - kX86InstIdLodsQ, // LODS - X86/X64 - kX86InstIdLodsW, // LODS - X86/X64 - kX86InstIdLzcnt, // LZCNT - kX86InstIdMaskmovdqu, // SSE2 - kX86InstIdMaskmovq, // MMX-Ext - kX86InstIdMaxpd, // SSE2 - kX86InstIdMaxps, // SSE - kX86InstIdMaxsd, // SSE2 - kX86InstIdMaxss, // SSE - kX86InstIdMfence, // SSE2 - kX86InstIdMinpd, // SSE2 - kX86InstIdMinps, // SSE - kX86InstIdMinsd, // SSE2 - kX86InstIdMinss, // SSE - kX86InstIdMonitor, // SSE3 - kX86InstIdMov, // X86/X64 - kX86InstIdMovPtr, // X86/X64 - kX86InstIdMovapd, // SSE2 - kX86InstIdMovaps, // SSE - kX86InstIdMovbe, // SSE3 - Intel-Atom - kX86InstIdMovd, // MMX/SSE2 - kX86InstIdMovddup, // SSE3 - kX86InstIdMovdq2q, // SSE2 - kX86InstIdMovdqa, // SSE2 - kX86InstIdMovdqu, // SSE2 - kX86InstIdMovhlps, // SSE - kX86InstIdMovhpd, // SSE2 - kX86InstIdMovhps, // SSE - kX86InstIdMovlhps, // SSE - kX86InstIdMovlpd, // SSE2 - kX86InstIdMovlps, // SSE - kX86InstIdMovmskpd, // SSE2 - kX86InstIdMovmskps, // SSE2 - kX86InstIdMovntdq, // SSE2 - kX86InstIdMovntdqa, // SSE4.1 - kX86InstIdMovnti, // SSE2 - kX86InstIdMovntpd, // SSE2 - kX86InstIdMovntps, // SSE - kX86InstIdMovntq, // MMX-Ext - kX86InstIdMovntsd, // SSE4a - kX86InstIdMovntss, // SSE4a - kX86InstIdMovq, // MMX/SSE/SSE2 - kX86InstIdMovq2dq, // SSE2 - kX86InstIdMovsB, // MOVS - X86/X64 - kX86InstIdMovsD, // MOVS - X86/X64 - kX86InstIdMovsQ, // MOVS - X64 - kX86InstIdMovsW, // MOVS - X86/X64 - kX86InstIdMovsd, // SSE2 - kX86InstIdMovshdup, // SSE3 - kX86InstIdMovsldup, // SSE3 - kX86InstIdMovss, // SSE - kX86InstIdMovsx, // X86/X64 - kX86InstIdMovsxd, // X86/X64 - kX86InstIdMovupd, // SSE2 - kX86InstIdMovups, // SSE - kX86InstIdMovzx, // X86/X64 - kX86InstIdMpsadbw, // SSE4.1 - kX86InstIdMul, // X86/X64 - kX86InstIdMulpd, // SSE2 - kX86InstIdMulps, // SSE - kX86InstIdMulsd, // SSE2 - kX86InstIdMulss, // SSE - kX86InstIdMulx, // BMI2 - kX86InstIdMwait, // SSE3 - kX86InstIdNeg, // X86/X64 - kX86InstIdNop, // X86/X64 - kX86InstIdNot, // X86/X64 - kX86InstIdOr, // X86/X64 - kX86InstIdOrpd, // SSE2 - kX86InstIdOrps, // SSE - kX86InstIdPabsb, // SSSE3 - kX86InstIdPabsd, // SSSE3 - kX86InstIdPabsw, // SSSE3 - kX86InstIdPackssdw, // MMX/SSE2 - kX86InstIdPacksswb, // MMX/SSE2 - kX86InstIdPackusdw, // SSE4.1 - kX86InstIdPackuswb, // MMX/SSE2 - kX86InstIdPaddb, // MMX/SSE2 - kX86InstIdPaddd, // MMX/SSE2 - kX86InstIdPaddq, // SSE2 - kX86InstIdPaddsb, // MMX/SSE2 - kX86InstIdPaddsw, // MMX/SSE2 - kX86InstIdPaddusb, // MMX/SSE2 - kX86InstIdPaddusw, // MMX/SSE2 - kX86InstIdPaddw, // MMX/SSE2 - kX86InstIdPalignr, // SSSE3 - kX86InstIdPand, // MMX/SSE2 - kX86InstIdPandn, // MMX/SSE2 - kX86InstIdPause, // SSE2. - kX86InstIdPavgb, // MMX-Ext - kX86InstIdPavgw, // MMX-Ext - kX86InstIdPblendvb, // SSE4.1 - kX86InstIdPblendw, // SSE4.1 - kX86InstIdPclmulqdq, // PCLMULQDQ - kX86InstIdPcmpeqb, // MMX/SSE2 - kX86InstIdPcmpeqd, // MMX/SSE2 - kX86InstIdPcmpeqq, // SSE4.1 - kX86InstIdPcmpeqw, // MMX/SSE2 - kX86InstIdPcmpestri, // SSE4.2 - kX86InstIdPcmpestrm, // SSE4.2 - kX86InstIdPcmpgtb, // MMX/SSE2 - kX86InstIdPcmpgtd, // MMX/SSE2 - kX86InstIdPcmpgtq, // SSE4.2 - kX86InstIdPcmpgtw, // MMX/SSE2 - kX86InstIdPcmpistri, // SSE4.2 - kX86InstIdPcmpistrm, // SSE4.2 - kX86InstIdPdep, // BMI2 - kX86InstIdPext, // BMI2 - kX86InstIdPextrb, // SSE4.1 - kX86InstIdPextrd, // SSE4.1 - kX86InstIdPextrq, // SSE4.1 - kX86InstIdPextrw, // MMX-Ext/SSE2 - kX86InstIdPf2id, // 3dNow! - kX86InstIdPf2iw, // Enhanced 3dNow! - kX86InstIdPfacc, // 3dNow! - kX86InstIdPfadd, // 3dNow! - kX86InstIdPfcmpeq, // 3dNow! - kX86InstIdPfcmpge, // 3dNow! - kX86InstIdPfcmpgt, // 3dNow! - kX86InstIdPfmax, // 3dNow! - kX86InstIdPfmin, // 3dNow! - kX86InstIdPfmul, // 3dNow! - kX86InstIdPfnacc, // Enhanced 3dNow! - kX86InstIdPfpnacc, // Enhanced 3dNow! - kX86InstIdPfrcp, // 3dNow! - kX86InstIdPfrcpit1, // 3dNow! - kX86InstIdPfrcpit2, // 3dNow! - kX86InstIdPfrsqit1, // 3dNow! - kX86InstIdPfrsqrt, // 3dNow! - kX86InstIdPfsub, // 3dNow! - kX86InstIdPfsubr, // 3dNow! - kX86InstIdPhaddd, // SSSE3 - kX86InstIdPhaddsw, // SSSE3 - kX86InstIdPhaddw, // SSSE3 - kX86InstIdPhminposuw, // SSE4.1 - kX86InstIdPhsubd, // SSSE3 - kX86InstIdPhsubsw, // SSSE3 - kX86InstIdPhsubw, // SSSE3 - kX86InstIdPi2fd, // 3dNow! - kX86InstIdPi2fw, // Enhanced 3dNow! - kX86InstIdPinsrb, // SSE4.1 - kX86InstIdPinsrd, // SSE4.1 - kX86InstIdPinsrq, // SSE4.1 - kX86InstIdPinsrw, // MMX-Ext - kX86InstIdPmaddubsw, // SSSE3 - kX86InstIdPmaddwd, // MMX/SSE2 - kX86InstIdPmaxsb, // SSE4.1 - kX86InstIdPmaxsd, // SSE4.1 - kX86InstIdPmaxsw, // MMX-Ext - kX86InstIdPmaxub, // MMX-Ext - kX86InstIdPmaxud, // SSE4.1 - kX86InstIdPmaxuw, // SSE4.1 - kX86InstIdPminsb, // SSE4.1 - kX86InstIdPminsd, // SSE4.1 - kX86InstIdPminsw, // MMX-Ext - kX86InstIdPminub, // MMX-Ext - kX86InstIdPminud, // SSE4.1 - kX86InstIdPminuw, // SSE4.1 - kX86InstIdPmovmskb, // MMX-Ext - kX86InstIdPmovsxbd, // SSE4.1 - kX86InstIdPmovsxbq, // SSE4.1 - kX86InstIdPmovsxbw, // SSE4.1 - kX86InstIdPmovsxdq, // SSE4.1 - kX86InstIdPmovsxwd, // SSE4.1 - kX86InstIdPmovsxwq, // SSE4.1 - kX86InstIdPmovzxbd, // SSE4.1 - kX86InstIdPmovzxbq, // SSE4.1 - kX86InstIdPmovzxbw, // SSE4.1 - kX86InstIdPmovzxdq, // SSE4.1 - kX86InstIdPmovzxwd, // SSE4.1 - kX86InstIdPmovzxwq, // SSE4.1 - kX86InstIdPmuldq, // SSE4.1 - kX86InstIdPmulhrsw, // SSSE3 - kX86InstIdPmulhuw, // MMX-Ext - kX86InstIdPmulhw, // MMX/SSE2 - kX86InstIdPmulld, // SSE4.1 - kX86InstIdPmullw, // MMX/SSE2 - kX86InstIdPmuludq, // SSE2 - kX86InstIdPop, // X86/X64 - kX86InstIdPopa, // X86 only - kX86InstIdPopcnt, // SSE4.2 - kX86InstIdPopf, // X86/X64 - kX86InstIdPor, // MMX/SSE2 - kX86InstIdPrefetch, // MMX-Ext/SSE - kX86InstIdPrefetch3dNow, // 3dNow! - kX86InstIdPrefetchw3dNow, // 3dNow! - kX86InstIdPsadbw, // MMX-Ext - kX86InstIdPshufb, // SSSE3 - kX86InstIdPshufd, // SSE2 - kX86InstIdPshufhw, // SSE2 - kX86InstIdPshuflw, // SSE2 - kX86InstIdPshufw, // MMX-Ext - kX86InstIdPsignb, // SSSE3 - kX86InstIdPsignd, // SSSE3 - kX86InstIdPsignw, // SSSE3 - kX86InstIdPslld, // MMX/SSE2 - kX86InstIdPslldq, // SSE2 - kX86InstIdPsllq, // MMX/SSE2 - kX86InstIdPsllw, // MMX/SSE2 - kX86InstIdPsrad, // MMX/SSE2 - kX86InstIdPsraw, // MMX/SSE2 - kX86InstIdPsrld, // MMX/SSE2 - kX86InstIdPsrldq, // SSE2 - kX86InstIdPsrlq, // MMX/SSE2 - kX86InstIdPsrlw, // MMX/SSE2 - kX86InstIdPsubb, // MMX/SSE2 - kX86InstIdPsubd, // MMX/SSE2 - kX86InstIdPsubq, // SSE2 - kX86InstIdPsubsb, // MMX/SSE2 - kX86InstIdPsubsw, // MMX/SSE2 - kX86InstIdPsubusb, // MMX/SSE2 - kX86InstIdPsubusw, // MMX/SSE2 - kX86InstIdPsubw, // MMX/SSE2 - kX86InstIdPswapd, // Enhanced 3dNow! - kX86InstIdPtest, // SSE4.1 - kX86InstIdPunpckhbw, // MMX/SSE2 - kX86InstIdPunpckhdq, // MMX/SSE2 - kX86InstIdPunpckhqdq, // SSE2 - kX86InstIdPunpckhwd, // MMX/SSE2 - kX86InstIdPunpcklbw, // MMX/SSE2 - kX86InstIdPunpckldq, // MMX/SSE2 - kX86InstIdPunpcklqdq, // SSE2 - kX86InstIdPunpcklwd, // MMX/SSE2 - kX86InstIdPush, // X86/X64 - kX86InstIdPusha, // X86 only - kX86InstIdPushf, // X86/X64 - kX86InstIdPxor, // MMX/SSE2 - kX86InstIdRcl, // X86/X64 - kX86InstIdRcpps, // SSE - kX86InstIdRcpss, // SSE - kX86InstIdRcr, // X86/X64 - kX86InstIdRdfsbase, // FSGSBASE (x64) - kX86InstIdRdgsbase, // FSGSBASE (x64) - kX86InstIdRdrand, // RDRAND - kX86InstIdRdtsc, // X86/X64 - kX86InstIdRdtscp, // X86/X64 - kX86InstIdRepLodsB, // X86/X64 (REP) - kX86InstIdRepLodsD, // X86/X64 (REP) - kX86InstIdRepLodsQ, // X64 only (REP) - kX86InstIdRepLodsW, // X86/X64 (REP) - kX86InstIdRepMovsB, // X86/X64 (REP) - kX86InstIdRepMovsD, // X86/X64 (REP) - kX86InstIdRepMovsQ, // X64 only (REP) - kX86InstIdRepMovsW, // X86/X64 (REP) - kX86InstIdRepStosB, // X86/X64 (REP) - kX86InstIdRepStosD, // X86/X64 (REP) - kX86InstIdRepStosQ, // X64 only (REP) - kX86InstIdRepStosW, // X86/X64 (REP) - kX86InstIdRepeCmpsB, // X86/X64 (REP) - kX86InstIdRepeCmpsD, // X86/X64 (REP) - kX86InstIdRepeCmpsQ, // X64 only (REP) - kX86InstIdRepeCmpsW, // X86/X64 (REP) - kX86InstIdRepeScasB, // X86/X64 (REP) - kX86InstIdRepeScasD, // X86/X64 (REP) - kX86InstIdRepeScasQ, // X64 only (REP) - kX86InstIdRepeScasW, // X86/X64 (REP) - kX86InstIdRepneCmpsB, // X86/X64 (REP) - kX86InstIdRepneCmpsD, // X86/X64 (REP) - kX86InstIdRepneCmpsQ, // X64 only (REP) - kX86InstIdRepneCmpsW, // X86/X64 (REP) - kX86InstIdRepneScasB, // X86/X64 (REP) - kX86InstIdRepneScasD, // X86/X64 (REP) - kX86InstIdRepneScasQ, // X64 only (REP) - kX86InstIdRepneScasW, // X86/X64 (REP) - kX86InstIdRet, // X86/X64 - kX86InstIdRol, // X86/X64 - kX86InstIdRor, // X86/X64 - kX86InstIdRorx, // BMI2 - kX86InstIdRoundpd, // SSE4.1 - kX86InstIdRoundps, // SSE4.1 - kX86InstIdRoundsd, // SSE4.1 - kX86InstIdRoundss, // SSE4.1 - kX86InstIdRsqrtps, // SSE - kX86InstIdRsqrtss, // SSE - kX86InstIdSahf, // X86/X64 (CPUID NEEDED) - kX86InstIdSal, // X86/X64 - kX86InstIdSar, // X86/X64 - kX86InstIdSarx, // BMI2 - kX86InstIdSbb, // X86/X64 - kX86InstIdScasB, // SCAS - X86/X64 - kX86InstIdScasD, // SCAS - X86/X64 - kX86InstIdScasQ, // SCAS - X64 - kX86InstIdScasW, // SCAS - X86/X64 - kX86InstIdSeta, // X86/X64 (setcc) - kX86InstIdSetae, // X86/X64 (setcc) - kX86InstIdSetb, // X86/X64 (setcc) - kX86InstIdSetbe, // X86/X64 (setcc) - kX86InstIdSetc, // X86/X64 (setcc) - kX86InstIdSete, // X86/X64 (setcc) - kX86InstIdSetg, // X86/X64 (setcc) - kX86InstIdSetge, // X86/X64 (setcc) - kX86InstIdSetl, // X86/X64 (setcc) - kX86InstIdSetle, // X86/X64 (setcc) - kX86InstIdSetna, // X86/X64 (setcc) - kX86InstIdSetnae, // X86/X64 (setcc) - kX86InstIdSetnb, // X86/X64 (setcc) - kX86InstIdSetnbe, // X86/X64 (setcc) - kX86InstIdSetnc, // X86/X64 (setcc) - kX86InstIdSetne, // X86/X64 (setcc) - kX86InstIdSetng, // X86/X64 (setcc) - kX86InstIdSetnge, // X86/X64 (setcc) - kX86InstIdSetnl, // X86/X64 (setcc) - kX86InstIdSetnle, // X86/X64 (setcc) - kX86InstIdSetno, // X86/X64 (setcc) - kX86InstIdSetnp, // X86/X64 (setcc) - kX86InstIdSetns, // X86/X64 (setcc) - kX86InstIdSetnz, // X86/X64 (setcc) - kX86InstIdSeto, // X86/X64 (setcc) - kX86InstIdSetp, // X86/X64 (setcc) - kX86InstIdSetpe, // X86/X64 (setcc) - kX86InstIdSetpo, // X86/X64 (setcc) - kX86InstIdSets, // X86/X64 (setcc) - kX86InstIdSetz, // X86/X64 (setcc) - kX86InstIdSfence, // MMX-Ext/SSE - kX86InstIdShl, // X86/X64 - kX86InstIdShld, // X86/X64 - kX86InstIdShlx, // BMI2 - kX86InstIdShr, // X86/X64 - kX86InstIdShrd, // X86/X64 - kX86InstIdShrx, // BMI2 - kX86InstIdShufpd, // SSE2 - kX86InstIdShufps, // SSE - kX86InstIdSqrtpd, // SSE2 - kX86InstIdSqrtps, // SSE - kX86InstIdSqrtsd, // SSE2 - kX86InstIdSqrtss, // SSE - kX86InstIdStc, // X86/X64 - kX86InstIdStd, // X86/X64 - kX86InstIdStmxcsr, // SSE - kX86InstIdStosB, // STOS - X86/X64 - kX86InstIdStosD, // STOS - X86/X64 - kX86InstIdStosQ, // STOS - X64 - kX86InstIdStosW, // STOS - X86/X64 - kX86InstIdSub, // X86/X64 - kX86InstIdSubpd, // SSE2 - kX86InstIdSubps, // SSE - kX86InstIdSubsd, // SSE2 - kX86InstIdSubss, // SSE - kX86InstIdTest, // X86/X64 - kX86InstIdTzcnt, // TZCNT - kX86InstIdUcomisd, // SSE2 - kX86InstIdUcomiss, // SSE - kX86InstIdUd2, // X86/X64 - kX86InstIdUnpckhpd, // SSE2 - kX86InstIdUnpckhps, // SSE - kX86InstIdUnpcklpd, // SSE2 - kX86InstIdUnpcklps, // SSE - kX86InstIdVaddpd, // AVX - kX86InstIdVaddps, // AVX - kX86InstIdVaddsd, // AVX - kX86InstIdVaddss, // AVX - kX86InstIdVaddsubpd, // AVX - kX86InstIdVaddsubps, // AVX - kX86InstIdVaesdec, // AVX+AESNI - kX86InstIdVaesdeclast, // AVX+AESNI - kX86InstIdVaesenc, // AVX+AESNI - kX86InstIdVaesenclast, // AVX+AESNI - kX86InstIdVaesimc, // AVX+AESNI - kX86InstIdVaeskeygenassist,// AVX+AESNI - kX86InstIdVandnpd, // AVX - kX86InstIdVandnps, // AVX - kX86InstIdVandpd, // AVX - kX86InstIdVandps, // AVX - kX86InstIdVblendpd, // AVX - kX86InstIdVblendps, // AVX - kX86InstIdVblendvpd, // AVX - kX86InstIdVblendvps, // AVX - kX86InstIdVbroadcastf128, // AVX - kX86InstIdVbroadcasti128, // AVX2 - kX86InstIdVbroadcastsd, // AVX/AVX2 - kX86InstIdVbroadcastss, // AVX/AVX2 - kX86InstIdVcmppd, // AVX - kX86InstIdVcmpps, // AVX - kX86InstIdVcmpsd, // AVX - kX86InstIdVcmpss, // AVX - kX86InstIdVcomisd, // AVX - kX86InstIdVcomiss, // AVX - kX86InstIdVcvtdq2pd, // AVX - kX86InstIdVcvtdq2ps, // AVX - kX86InstIdVcvtpd2dq, // AVX - kX86InstIdVcvtpd2ps, // AVX - kX86InstIdVcvtph2ps, // F16C - kX86InstIdVcvtps2dq, // AVX - kX86InstIdVcvtps2pd, // AVX - kX86InstIdVcvtps2ph, // F16C - kX86InstIdVcvtsd2si, // AVX - kX86InstIdVcvtsd2ss, // AVX - kX86InstIdVcvtsi2sd, // AVX - kX86InstIdVcvtsi2ss, // AVX - kX86InstIdVcvtss2sd, // AVX - kX86InstIdVcvtss2si, // AVX - kX86InstIdVcvttpd2dq, // AVX - kX86InstIdVcvttps2dq, // AVX - kX86InstIdVcvttsd2si, // AVX - kX86InstIdVcvttss2si, // AVX - kX86InstIdVdivpd, // AVX - kX86InstIdVdivps, // AVX - kX86InstIdVdivsd, // AVX - kX86InstIdVdivss, // AVX - kX86InstIdVdppd, // AVX - kX86InstIdVdpps, // AVX - kX86InstIdVextractf128, // AVX - kX86InstIdVextracti128, // AVX2 - kX86InstIdVextractps, // AVX - kX86InstIdVfmadd132pd, // FMA3 - kX86InstIdVfmadd132ps, // FMA3 - kX86InstIdVfmadd132sd, // FMA3 - kX86InstIdVfmadd132ss, // FMA3 - kX86InstIdVfmadd213pd, // FMA3 - kX86InstIdVfmadd213ps, // FMA3 - kX86InstIdVfmadd213sd, // FMA3 - kX86InstIdVfmadd213ss, // FMA3 - kX86InstIdVfmadd231pd, // FMA3 - kX86InstIdVfmadd231ps, // FMA3 - kX86InstIdVfmadd231sd, // FMA3 - kX86InstIdVfmadd231ss, // FMA3 - kX86InstIdVfmaddpd, // FMA4 - kX86InstIdVfmaddps, // FMA4 - kX86InstIdVfmaddsd, // FMA4 - kX86InstIdVfmaddss, // FMA4 - kX86InstIdVfmaddsub132pd, // FMA3 - kX86InstIdVfmaddsub132ps, // FMA3 - kX86InstIdVfmaddsub213pd, // FMA3 - kX86InstIdVfmaddsub213ps, // FMA3 - kX86InstIdVfmaddsub231pd, // FMA3 - kX86InstIdVfmaddsub231ps, // FMA3 - kX86InstIdVfmaddsubpd, // FMA4 - kX86InstIdVfmaddsubps, // FMA4 - kX86InstIdVfmsub132pd, // FMA3 - kX86InstIdVfmsub132ps, // FMA3 - kX86InstIdVfmsub132sd, // FMA3 - kX86InstIdVfmsub132ss, // FMA3 - kX86InstIdVfmsub213pd, // FMA3 - kX86InstIdVfmsub213ps, // FMA3 - kX86InstIdVfmsub213sd, // FMA3 - kX86InstIdVfmsub213ss, // FMA3 - kX86InstIdVfmsub231pd, // FMA3 - kX86InstIdVfmsub231ps, // FMA3 - kX86InstIdVfmsub231sd, // FMA3 - kX86InstIdVfmsub231ss, // FMA3 - kX86InstIdVfmsubadd132pd, // FMA3 - kX86InstIdVfmsubadd132ps, // FMA3 - kX86InstIdVfmsubadd213pd, // FMA3 - kX86InstIdVfmsubadd213ps, // FMA3 - kX86InstIdVfmsubadd231pd, // FMA3 - kX86InstIdVfmsubadd231ps, // FMA3 - kX86InstIdVfmsubaddpd, // FMA4 - kX86InstIdVfmsubaddps, // FMA4 - kX86InstIdVfmsubpd, // FMA4 - kX86InstIdVfmsubps, // FMA4 - kX86InstIdVfmsubsd, // FMA4 - kX86InstIdVfmsubss, // FMA4 - kX86InstIdVfnmadd132pd, // FMA3 - kX86InstIdVfnmadd132ps, // FMA3 - kX86InstIdVfnmadd132sd, // FMA3 - kX86InstIdVfnmadd132ss, // FMA3 - kX86InstIdVfnmadd213pd, // FMA3 - kX86InstIdVfnmadd213ps, // FMA3 - kX86InstIdVfnmadd213sd, // FMA3 - kX86InstIdVfnmadd213ss, // FMA3 - kX86InstIdVfnmadd231pd, // FMA3 - kX86InstIdVfnmadd231ps, // FMA3 - kX86InstIdVfnmadd231sd, // FMA3 - kX86InstIdVfnmadd231ss, // FMA3 - kX86InstIdVfnmaddpd, // FMA4 - kX86InstIdVfnmaddps, // FMA4 - kX86InstIdVfnmaddsd, // FMA4 - kX86InstIdVfnmaddss, // FMA4 - kX86InstIdVfnmsub132pd, // FMA3 - kX86InstIdVfnmsub132ps, // FMA3 - kX86InstIdVfnmsub132sd, // FMA3 - kX86InstIdVfnmsub132ss, // FMA3 - kX86InstIdVfnmsub213pd, // FMA3 - kX86InstIdVfnmsub213ps, // FMA3 - kX86InstIdVfnmsub213sd, // FMA3 - kX86InstIdVfnmsub213ss, // FMA3 - kX86InstIdVfnmsub231pd, // FMA3 - kX86InstIdVfnmsub231ps, // FMA3 - kX86InstIdVfnmsub231sd, // FMA3 - kX86InstIdVfnmsub231ss, // FMA3 - kX86InstIdVfnmsubpd, // FMA4 - kX86InstIdVfnmsubps, // FMA4 - kX86InstIdVfnmsubsd, // FMA4 - kX86InstIdVfnmsubss, // FMA4 - kX86InstIdVfrczpd, // XOP - kX86InstIdVfrczps, // XOP - kX86InstIdVfrczsd, // XOP - kX86InstIdVfrczss, // XOP - kX86InstIdVgatherdpd, // AVX2 - kX86InstIdVgatherdps, // AVX2 - kX86InstIdVgatherqpd, // AVX2 - kX86InstIdVgatherqps, // AVX2 - kX86InstIdVhaddpd, // AVX - kX86InstIdVhaddps, // AVX - kX86InstIdVhsubpd, // AVX - kX86InstIdVhsubps, // AVX - kX86InstIdVinsertf128, // AVX - kX86InstIdVinserti128, // AVX2 - kX86InstIdVinsertps, // AVX - kX86InstIdVlddqu, // AVX - kX86InstIdVldmxcsr, // AVX - kX86InstIdVmaskmovdqu, // AVX - kX86InstIdVmaskmovpd, // AVX - kX86InstIdVmaskmovps, // AVX - kX86InstIdVmaxpd, // AVX - kX86InstIdVmaxps, // AVX - kX86InstIdVmaxsd, // AVX - kX86InstIdVmaxss, // AVX - kX86InstIdVminpd, // AVX - kX86InstIdVminps, // AVX - kX86InstIdVminsd, // AVX - kX86InstIdVminss, // AVX - kX86InstIdVmovapd, // AVX - kX86InstIdVmovaps, // AVX - kX86InstIdVmovd, // AVX - kX86InstIdVmovddup, // AVX - kX86InstIdVmovdqa, // AVX - kX86InstIdVmovdqu, // AVX - kX86InstIdVmovhlps, // AVX - kX86InstIdVmovhpd, // AVX - kX86InstIdVmovhps, // AVX - kX86InstIdVmovlhps, // AVX - kX86InstIdVmovlpd, // AVX - kX86InstIdVmovlps, // AVX - kX86InstIdVmovmskpd, // AVX - kX86InstIdVmovmskps, // AVX - kX86InstIdVmovntdq, // AVX - kX86InstIdVmovntdqa, // AVX/AVX2 - kX86InstIdVmovntpd, // AVX - kX86InstIdVmovntps, // AVX - kX86InstIdVmovq, // AVX - kX86InstIdVmovsd, // AVX - kX86InstIdVmovshdup, // AVX - kX86InstIdVmovsldup, // AVX - kX86InstIdVmovss, // AVX - kX86InstIdVmovupd, // AVX - kX86InstIdVmovups, // AVX - kX86InstIdVmpsadbw, // AVX/AVX2 - kX86InstIdVmulpd, // AVX - kX86InstIdVmulps, // AVX - kX86InstIdVmulsd, // AVX - kX86InstIdVmulss, // AVX - kX86InstIdVorpd, // AVX - kX86InstIdVorps, // AVX - kX86InstIdVpabsb, // AVX2 - kX86InstIdVpabsd, // AVX2 - kX86InstIdVpabsw, // AVX2 - kX86InstIdVpackssdw, // AVX2 - kX86InstIdVpacksswb, // AVX2 - kX86InstIdVpackusdw, // AVX2 - kX86InstIdVpackuswb, // AVX2 - kX86InstIdVpaddb, // AVX2 - kX86InstIdVpaddd, // AVX2 - kX86InstIdVpaddq, // AVX2 - kX86InstIdVpaddsb, // AVX2 - kX86InstIdVpaddsw, // AVX2 - kX86InstIdVpaddusb, // AVX2 - kX86InstIdVpaddusw, // AVX2 - kX86InstIdVpaddw, // AVX2 - kX86InstIdVpalignr, // AVX2 - kX86InstIdVpand, // AVX2 - kX86InstIdVpandn, // AVX2 - kX86InstIdVpavgb, // AVX2 - kX86InstIdVpavgw, // AVX2 - kX86InstIdVpblendd, // AVX2 - kX86InstIdVpblendvb, // AVX2 - kX86InstIdVpblendw, // AVX2 - kX86InstIdVpbroadcastb, // AVX2 - kX86InstIdVpbroadcastd, // AVX2 - kX86InstIdVpbroadcastq, // AVX2 - kX86InstIdVpbroadcastw, // AVX2 - kX86InstIdVpclmulqdq, // AVX+PCLMULQDQ - kX86InstIdVpcmov, // XOP - kX86InstIdVpcmpeqb, // AVX2 - kX86InstIdVpcmpeqd, // AVX2 - kX86InstIdVpcmpeqq, // AVX2 - kX86InstIdVpcmpeqw, // AVX2 - kX86InstIdVpcmpestri, // AVX - kX86InstIdVpcmpestrm, // AVX - kX86InstIdVpcmpgtb, // AVX2 - kX86InstIdVpcmpgtd, // AVX2 - kX86InstIdVpcmpgtq, // AVX2 - kX86InstIdVpcmpgtw, // AVX2 - kX86InstIdVpcmpistri, // AVX - kX86InstIdVpcmpistrm, // AVX - kX86InstIdVpcomb, // XOP - kX86InstIdVpcomd, // XOP - kX86InstIdVpcomq, // XOP - kX86InstIdVpcomub, // XOP - kX86InstIdVpcomud, // XOP - kX86InstIdVpcomuq, // XOP - kX86InstIdVpcomuw, // XOP - kX86InstIdVpcomw, // XOP - kX86InstIdVperm2f128, // AVX - kX86InstIdVperm2i128, // AVX2 - kX86InstIdVpermd, // AVX2 - kX86InstIdVpermil2pd, // XOP - kX86InstIdVpermil2ps, // XOP - kX86InstIdVpermilpd, // AVX - kX86InstIdVpermilps, // AVX - kX86InstIdVpermpd, // AVX2 - kX86InstIdVpermps, // AVX2 - kX86InstIdVpermq, // AVX2 - kX86InstIdVpextrb, // AVX - kX86InstIdVpextrd, // AVX - kX86InstIdVpextrq, // AVX (x64 only) - kX86InstIdVpextrw, // AVX - kX86InstIdVpgatherdd, // AVX2 - kX86InstIdVpgatherdq, // AVX2 - kX86InstIdVpgatherqd, // AVX2 - kX86InstIdVpgatherqq, // AVX2 - kX86InstIdVphaddbd, // XOP - kX86InstIdVphaddbq, // XOP - kX86InstIdVphaddbw, // XOP - kX86InstIdVphaddd, // AVX2 - kX86InstIdVphadddq, // XOP - kX86InstIdVphaddsw, // AVX2 - kX86InstIdVphaddubd, // XOP - kX86InstIdVphaddubq, // XOP - kX86InstIdVphaddubw, // XOP - kX86InstIdVphaddudq, // XOP - kX86InstIdVphadduwd, // XOP - kX86InstIdVphadduwq, // XOP - kX86InstIdVphaddw, // AVX2 - kX86InstIdVphaddwd, // XOP - kX86InstIdVphaddwq, // XOP - kX86InstIdVphminposuw, // AVX - kX86InstIdVphsubbw, // XOP - kX86InstIdVphsubd, // AVX2 - kX86InstIdVphsubdq, // XOP - kX86InstIdVphsubsw, // AVX2 - kX86InstIdVphsubw, // AVX2 - kX86InstIdVphsubwd, // XOP - kX86InstIdVpinsrb, // AVX - kX86InstIdVpinsrd, // AVX - kX86InstIdVpinsrq, // AVX (x64 only) - kX86InstIdVpinsrw, // AVX - kX86InstIdVpmacsdd, // XOP - kX86InstIdVpmacsdqh, // XOP - kX86InstIdVpmacsdql, // XOP - kX86InstIdVpmacssdd, // XOP - kX86InstIdVpmacssdqh, // XOP - kX86InstIdVpmacssdql, // XOP - kX86InstIdVpmacsswd, // XOP - kX86InstIdVpmacssww, // XOP - kX86InstIdVpmacswd, // XOP - kX86InstIdVpmacsww, // XOP - kX86InstIdVpmadcsswd, // XOP - kX86InstIdVpmadcswd, // XOP - kX86InstIdVpmaddubsw, // AVX/AVX2 - kX86InstIdVpmaddwd, // AVX/AVX2 - kX86InstIdVpmaskmovd, // AVX2 - kX86InstIdVpmaskmovq, // AVX2 - kX86InstIdVpmaxsb, // AVX/AVX2 - kX86InstIdVpmaxsd, // AVX/AVX2 - kX86InstIdVpmaxsw, // AVX/AVX2 - kX86InstIdVpmaxub, // AVX/AVX2 - kX86InstIdVpmaxud, // AVX/AVX2 - kX86InstIdVpmaxuw, // AVX/AVX2 - kX86InstIdVpminsb, // AVX/AVX2 - kX86InstIdVpminsd, // AVX/AVX2 - kX86InstIdVpminsw, // AVX/AVX2 - kX86InstIdVpminub, // AVX/AVX2 - kX86InstIdVpminud, // AVX/AVX2 - kX86InstIdVpminuw, // AVX/AVX2 - kX86InstIdVpmovmskb, // AVX/AVX2 - kX86InstIdVpmovsxbd, // AVX/AVX2 - kX86InstIdVpmovsxbq, // AVX/AVX2 - kX86InstIdVpmovsxbw, // AVX/AVX2 - kX86InstIdVpmovsxdq, // AVX/AVX2 - kX86InstIdVpmovsxwd, // AVX/AVX2 - kX86InstIdVpmovsxwq, // AVX/AVX2 - kX86InstIdVpmovzxbd, // AVX/AVX2 - kX86InstIdVpmovzxbq, // AVX/AVX2 - kX86InstIdVpmovzxbw, // AVX/AVX2 - kX86InstIdVpmovzxdq, // AVX/AVX2 - kX86InstIdVpmovzxwd, // AVX/AVX2 - kX86InstIdVpmovzxwq, // AVX/AVX2 - kX86InstIdVpmuldq, // AVX/AVX2 - kX86InstIdVpmulhrsw, // AVX/AVX2 - kX86InstIdVpmulhuw, // AVX/AVX2 - kX86InstIdVpmulhw, // AVX/AVX2 - kX86InstIdVpmulld, // AVX/AVX2 - kX86InstIdVpmullw, // AVX/AVX2 - kX86InstIdVpmuludq, // AVX/AVX2 - kX86InstIdVpor, // AVX/AVX2 - kX86InstIdVpperm, // XOP - kX86InstIdVprotb, // XOP - kX86InstIdVprotd, // XOP - kX86InstIdVprotq, // XOP - kX86InstIdVprotw, // XOP - kX86InstIdVpsadbw, // AVX/AVX2 - kX86InstIdVpshab, // XOP - kX86InstIdVpshad, // XOP - kX86InstIdVpshaq, // XOP - kX86InstIdVpshaw, // XOP - kX86InstIdVpshlb, // XOP - kX86InstIdVpshld, // XOP - kX86InstIdVpshlq, // XOP - kX86InstIdVpshlw, // XOP - kX86InstIdVpshufb, // AVX/AVX2 - kX86InstIdVpshufd, // AVX/AVX2 - kX86InstIdVpshufhw, // AVX/AVX2 - kX86InstIdVpshuflw, // AVX/AVX2 - kX86InstIdVpsignb, // AVX/AVX2 - kX86InstIdVpsignd, // AVX/AVX2 - kX86InstIdVpsignw, // AVX/AVX2 - kX86InstIdVpslld, // AVX/AVX2 - kX86InstIdVpslldq, // AVX/AVX2 - kX86InstIdVpsllq, // AVX/AVX2 - kX86InstIdVpsllvd, // AVX2 - kX86InstIdVpsllvq, // AVX2 - kX86InstIdVpsllw, // AVX/AVX2 - kX86InstIdVpsrad, // AVX/AVX2 - kX86InstIdVpsravd, // AVX2 - kX86InstIdVpsraw, // AVX/AVX2 - kX86InstIdVpsrld, // AVX/AVX2 - kX86InstIdVpsrldq, // AVX/AVX2 - kX86InstIdVpsrlq, // AVX/AVX2 - kX86InstIdVpsrlvd, // AVX2 - kX86InstIdVpsrlvq, // AVX2 - kX86InstIdVpsrlw, // AVX/AVX2 - kX86InstIdVpsubb, // AVX/AVX2 - kX86InstIdVpsubd, // AVX/AVX2 - kX86InstIdVpsubq, // AVX/AVX2 - kX86InstIdVpsubsb, // AVX/AVX2 - kX86InstIdVpsubsw, // AVX/AVX2 - kX86InstIdVpsubusb, // AVX/AVX2 - kX86InstIdVpsubusw, // AVX/AVX2 - kX86InstIdVpsubw, // AVX/AVX2 - kX86InstIdVptest, // AVX - kX86InstIdVpunpckhbw, // AVX/AVX2 - kX86InstIdVpunpckhdq, // AVX/AVX2 - kX86InstIdVpunpckhqdq, // AVX/AVX2 - kX86InstIdVpunpckhwd, // AVX/AVX2 - kX86InstIdVpunpcklbw, // AVX/AVX2 - kX86InstIdVpunpckldq, // AVX/AVX2 - kX86InstIdVpunpcklqdq, // AVX/AVX2 - kX86InstIdVpunpcklwd, // AVX/AVX2 - kX86InstIdVpxor, // AVX/AVX2 - kX86InstIdVrcpps, // AVX - kX86InstIdVrcpss, // AVX - kX86InstIdVroundpd, // AVX - kX86InstIdVroundps, // AVX - kX86InstIdVroundsd, // AVX - kX86InstIdVroundss, // AVX - kX86InstIdVrsqrtps, // AVX - kX86InstIdVrsqrtss, // AVX - kX86InstIdVshufpd, // AVX - kX86InstIdVshufps, // AVX - kX86InstIdVsqrtpd, // AVX - kX86InstIdVsqrtps, // AVX - kX86InstIdVsqrtsd, // AVX - kX86InstIdVsqrtss, // AVX - kX86InstIdVstmxcsr, // AVX - kX86InstIdVsubpd, // AVX - kX86InstIdVsubps, // AVX - kX86InstIdVsubsd, // AVX - kX86InstIdVsubss, // AVX - kX86InstIdVtestpd, // AVX - kX86InstIdVtestps, // AVX - kX86InstIdVucomisd, // AVX - kX86InstIdVucomiss, // AVX - kX86InstIdVunpckhpd, // AVX - kX86InstIdVunpckhps, // AVX - kX86InstIdVunpcklpd, // AVX - kX86InstIdVunpcklps, // AVX - kX86InstIdVxorpd, // AVX - kX86InstIdVxorps, // AVX - kX86InstIdVzeroall, // AVX - kX86InstIdVzeroupper, // AVX - kX86InstIdWrfsbase, // FSGSBASE (x64) - kX86InstIdWrgsbase, // FSGSBASE (x64) - kX86InstIdXadd, // X86/X64 (i486+) - kX86InstIdXchg, // X86/X64 - kX86InstIdXgetbv, // XSAVE - kX86InstIdXor, // X86/X64 - kX86InstIdXorpd, // SSE2 - kX86InstIdXorps, // SSE - kX86InstIdXrstor, // XSAVE - kX86InstIdXrstor64, // XSAVE - kX86InstIdXsave, // XSAVE - kX86InstIdXsave64, // XSAVE - kX86InstIdXsaveopt, // XSAVE - kX86InstIdXsaveopt64, // XSAVE - kX86InstIdXsetbv, // XSAVE + kX86InstIdNone = 0, + kX86InstIdAdc, // X86/X64 + kX86InstIdAdcx, // ADX + kX86InstIdAdd, // X86/X64 + kX86InstIdAddpd, // SSE2 + kX86InstIdAddps, // SSE + kX86InstIdAddsd, // SSE2 + kX86InstIdAddss, // SSE + kX86InstIdAddsubpd, // SSE3 + kX86InstIdAddsubps, // SSE3 + kX86InstIdAdox, // ADX + kX86InstIdAesdec, // AESNI + kX86InstIdAesdeclast, // AESNI + kX86InstIdAesenc, // AESNI + kX86InstIdAesenclast, // AESNI + kX86InstIdAesimc, // AESNI + kX86InstIdAeskeygenassist, // AESNI + kX86InstIdAnd, // X86/X64 + kX86InstIdAndn, // BMI + kX86InstIdAndnpd, // SSE2 + kX86InstIdAndnps, // SSE + kX86InstIdAndpd, // SSE2 + kX86InstIdAndps, // SSE + kX86InstIdBextr, // BMI + kX86InstIdBlcfill, // TBM + kX86InstIdBlci, // TBM + kX86InstIdBlcic, // TBM + kX86InstIdBlcmsk, // TBM + kX86InstIdBlcs, // TBM + kX86InstIdBlendpd, // SSE4.1 + kX86InstIdBlendps, // SSE4.1 + kX86InstIdBlendvpd, // SSE4.1 + kX86InstIdBlendvps, // SSE4.1 + kX86InstIdBlsfill, // TBM + kX86InstIdBlsi, // BMI + kX86InstIdBlsic, // TBM + kX86InstIdBlsmsk, // BMI + kX86InstIdBlsr, // BMI + kX86InstIdBsf, // X86/X64 + kX86InstIdBsr, // X86/X64 + kX86InstIdBswap, // X86/X64 (i486+) + kX86InstIdBt, // X86/X64 + kX86InstIdBtc, // X86/X64 + kX86InstIdBtr, // X86/X64 + kX86InstIdBts, // X86/X64 + kX86InstIdBzhi, // BMI2 + kX86InstIdCall, // X86/X64 + kX86InstIdCbw, // X86/X64 + kX86InstIdCdq, // X86/X64 + kX86InstIdCdqe, // X64 only + kX86InstIdClc, // X86/X64 + kX86InstIdCld, // X86/X64 + kX86InstIdClflush, // CLFLUSH + kX86InstIdClflushopt, // CLFLUSH_OPT + kX86InstIdCmc, // X86/X64 + kX86InstIdCmova, // X86/X64 (cmovcc) (i586+) + kX86InstIdCmovae, // X86/X64 (cmovcc) (i586+) + kX86InstIdCmovb, // X86/X64 (cmovcc) (i586+) + kX86InstIdCmovbe, // X86/X64 (cmovcc) (i586+) + kX86InstIdCmovc, // X86/X64 (cmovcc) (i586+) + kX86InstIdCmove, // X86/X64 (cmovcc) (i586+) + kX86InstIdCmovg, // X86/X64 (cmovcc) (i586+) + kX86InstIdCmovge, // X86/X64 (cmovcc) (i586+) + kX86InstIdCmovl, // X86/X64 (cmovcc) (i586+) + kX86InstIdCmovle, // X86/X64 (cmovcc) (i586+) + kX86InstIdCmovna, // X86/X64 (cmovcc) (i586+) + kX86InstIdCmovnae, // X86/X64 (cmovcc) (i586+) + kX86InstIdCmovnb, // X86/X64 (cmovcc) (i586+) + kX86InstIdCmovnbe, // X86/X64 (cmovcc) (i586+) + kX86InstIdCmovnc, // X86/X64 (cmovcc) (i586+) + kX86InstIdCmovne, // X86/X64 (cmovcc) (i586+) + kX86InstIdCmovng, // X86/X64 (cmovcc) (i586+) + kX86InstIdCmovnge, // X86/X64 (cmovcc) (i586+) + kX86InstIdCmovnl, // X86/X64 (cmovcc) (i586+) + kX86InstIdCmovnle, // X86/X64 (cmovcc) (i586+) + kX86InstIdCmovno, // X86/X64 (cmovcc) (i586+) + kX86InstIdCmovnp, // X86/X64 (cmovcc) (i586+) + kX86InstIdCmovns, // X86/X64 (cmovcc) (i586+) + kX86InstIdCmovnz, // X86/X64 (cmovcc) (i586+) + kX86InstIdCmovo, // X86/X64 (cmovcc) (i586+) + kX86InstIdCmovp, // X86/X64 (cmovcc) (i586+) + kX86InstIdCmovpe, // X86/X64 (cmovcc) (i586+) + kX86InstIdCmovpo, // X86/X64 (cmovcc) (i586+) + kX86InstIdCmovs, // X86/X64 (cmovcc) (i586+) + kX86InstIdCmovz, // X86/X64 (cmovcc) (i586+) + kX86InstIdCmp, // X86/X64 + kX86InstIdCmppd, // SSE2 + kX86InstIdCmpps, // SSE + kX86InstIdCmpsB, // CMPS + kX86InstIdCmpsD, // CMPS + kX86InstIdCmpsQ, // CMPS (X64) + kX86InstIdCmpsW, // CMPS + kX86InstIdCmpsd, // SSE2 + kX86InstIdCmpss, // SSE + kX86InstIdCmpxchg, // X86/X64 (i486+) + kX86InstIdCmpxchg16b, // X64 only + kX86InstIdCmpxchg8b, // X86/X64 (i586+) + kX86InstIdComisd, // SSE2 + kX86InstIdComiss, // SSE + kX86InstIdCpuid, // X86/X64 (i486/i586+) + kX86InstIdCqo, // X64 only + kX86InstIdCrc32, // SSE4.2 + kX86InstIdCvtdq2pd, // SSE2 + kX86InstIdCvtdq2ps, // SSE2 + kX86InstIdCvtpd2dq, // SSE2 + kX86InstIdCvtpd2pi, // SSE2 + kX86InstIdCvtpd2ps, // SSE2 + kX86InstIdCvtpi2pd, // SSE2 + kX86InstIdCvtpi2ps, // SSE + kX86InstIdCvtps2dq, // SSE2 + kX86InstIdCvtps2pd, // SSE2 + kX86InstIdCvtps2pi, // SSE + kX86InstIdCvtsd2si, // SSE2 + kX86InstIdCvtsd2ss, // SSE2 + kX86InstIdCvtsi2sd, // SSE2 + kX86InstIdCvtsi2ss, // SSE + kX86InstIdCvtss2sd, // SSE2 + kX86InstIdCvtss2si, // SSE + kX86InstIdCvttpd2dq, // SSE2 + kX86InstIdCvttpd2pi, // SSE2 + kX86InstIdCvttps2dq, // SSE2 + kX86InstIdCvttps2pi, // SSE + kX86InstIdCvttsd2si, // SSE2 + kX86InstIdCvttss2si, // SSE + kX86InstIdCwd, // X86/X64 + kX86InstIdCwde, // X86/X64 + kX86InstIdDaa, // X86 only + kX86InstIdDas, // X86 only + kX86InstIdDec, // X86/X64 + kX86InstIdDiv, // X86/X64 + kX86InstIdDivpd, // SSE2 + kX86InstIdDivps, // SSE + kX86InstIdDivsd, // SSE2 + kX86InstIdDivss, // SSE + kX86InstIdDppd, // SSE4.1 + kX86InstIdDpps, // SSE4.1 + kX86InstIdEmms, // MMX + kX86InstIdEnter, // X86/X64 + kX86InstIdExtractps, // SSE4.1 + kX86InstIdExtrq, // SSE4a + kX86InstIdF2xm1, // FPU + kX86InstIdFabs, // FPU + kX86InstIdFadd, // FPU + kX86InstIdFaddp, // FPU + kX86InstIdFbld, // FPU + kX86InstIdFbstp, // FPU + kX86InstIdFchs, // FPU + kX86InstIdFclex, // FPU + kX86InstIdFcmovb, // FPU + kX86InstIdFcmovbe, // FPU + kX86InstIdFcmove, // FPU + kX86InstIdFcmovnb, // FPU + kX86InstIdFcmovnbe, // FPU + kX86InstIdFcmovne, // FPU + kX86InstIdFcmovnu, // FPU + kX86InstIdFcmovu, // FPU + kX86InstIdFcom, // FPU + kX86InstIdFcomi, // FPU + kX86InstIdFcomip, // FPU + kX86InstIdFcomp, // FPU + kX86InstIdFcompp, // FPU + kX86InstIdFcos, // FPU + kX86InstIdFdecstp, // FPU + kX86InstIdFdiv, // FPU + kX86InstIdFdivp, // FPU + kX86InstIdFdivr, // FPU + kX86InstIdFdivrp, // FPU + kX86InstIdFemms, // 3DNOW + kX86InstIdFfree, // FPU + kX86InstIdFiadd, // FPU + kX86InstIdFicom, // FPU + kX86InstIdFicomp, // FPU + kX86InstIdFidiv, // FPU + kX86InstIdFidivr, // FPU + kX86InstIdFild, // FPU + kX86InstIdFimul, // FPU + kX86InstIdFincstp, // FPU + kX86InstIdFinit, // FPU + kX86InstIdFist, // FPU + kX86InstIdFistp, // FPU + kX86InstIdFisttp, // SSE3 + kX86InstIdFisub, // FPU + kX86InstIdFisubr, // FPU + kX86InstIdFld, // FPU + kX86InstIdFld1, // FPU + kX86InstIdFldcw, // FPU + kX86InstIdFldenv, // FPU + kX86InstIdFldl2e, // FPU + kX86InstIdFldl2t, // FPU + kX86InstIdFldlg2, // FPU + kX86InstIdFldln2, // FPU + kX86InstIdFldpi, // FPU + kX86InstIdFldz, // FPU + kX86InstIdFmul, // FPU + kX86InstIdFmulp, // FPU + kX86InstIdFnclex, // FPU + kX86InstIdFninit, // FPU + kX86InstIdFnop, // FPU + kX86InstIdFnsave, // FPU + kX86InstIdFnstcw, // FPU + kX86InstIdFnstenv, // FPU + kX86InstIdFnstsw, // FPU + kX86InstIdFpatan, // FPU + kX86InstIdFprem, // FPU + kX86InstIdFprem1, // FPU + kX86InstIdFptan, // FPU + kX86InstIdFrndint, // FPU + kX86InstIdFrstor, // FPU + kX86InstIdFsave, // FPU + kX86InstIdFscale, // FPU + kX86InstIdFsin, // FPU + kX86InstIdFsincos, // FPU + kX86InstIdFsqrt, // FPU + kX86InstIdFst, // FPU + kX86InstIdFstcw, // FPU + kX86InstIdFstenv, // FPU + kX86InstIdFstp, // FPU + kX86InstIdFstsw, // FPU + kX86InstIdFsub, // FPU + kX86InstIdFsubp, // FPU + kX86InstIdFsubr, // FPU + kX86InstIdFsubrp, // FPU + kX86InstIdFtst, // FPU + kX86InstIdFucom, // FPU + kX86InstIdFucomi, // FPU + kX86InstIdFucomip, // FPU + kX86InstIdFucomp, // FPU + kX86InstIdFucompp, // FPU + kX86InstIdFwait, // FPU + kX86InstIdFxam, // FPU + kX86InstIdFxch, // FPU + kX86InstIdFxrstor, // FPU + kX86InstIdFxrstor64, // FPU (X64) + kX86InstIdFxsave, // FPU + kX86InstIdFxsave64, // FPU (X64) + kX86InstIdFxtract, // FPU + kX86InstIdFyl2x, // FPU + kX86InstIdFyl2xp1, // FPU + kX86InstIdHaddpd, // SSE3 + kX86InstIdHaddps, // SSE3 + kX86InstIdHsubpd, // SSE3 + kX86InstIdHsubps, // SSE3 + kX86InstIdIdiv, // X86/X64 + kX86InstIdImul, // X86/X64 + kX86InstIdInc, // X86/X64 + kX86InstIdInsertps, // SSE4.1 + kX86InstIdInsertq, // SSE4a + kX86InstIdInt, // X86/X64 + kX86InstIdJa, // X86/X64 (jcc) + kX86InstIdJae, // X86/X64 (jcc) + kX86InstIdJb, // X86/X64 (jcc) + kX86InstIdJbe, // X86/X64 (jcc) + kX86InstIdJc, // X86/X64 (jcc) + kX86InstIdJe, // X86/X64 (jcc) + kX86InstIdJg, // X86/X64 (jcc) + kX86InstIdJge, // X86/X64 (jcc) + kX86InstIdJl, // X86/X64 (jcc) + kX86InstIdJle, // X86/X64 (jcc) + kX86InstIdJna, // X86/X64 (jcc) + kX86InstIdJnae, // X86/X64 (jcc) + kX86InstIdJnb, // X86/X64 (jcc) + kX86InstIdJnbe, // X86/X64 (jcc) + kX86InstIdJnc, // X86/X64 (jcc) + kX86InstIdJne, // X86/X64 (jcc) + kX86InstIdJng, // X86/X64 (jcc) + kX86InstIdJnge, // X86/X64 (jcc) + kX86InstIdJnl, // X86/X64 (jcc) + kX86InstIdJnle, // X86/X64 (jcc) + kX86InstIdJno, // X86/X64 (jcc) + kX86InstIdJnp, // X86/X64 (jcc) + kX86InstIdJns, // X86/X64 (jcc) + kX86InstIdJnz, // X86/X64 (jcc) + kX86InstIdJo, // X86/X64 (jcc) + kX86InstIdJp, // X86/X64 (jcc) + kX86InstIdJpe, // X86/X64 (jcc) + kX86InstIdJpo, // X86/X64 (jcc) + kX86InstIdJs, // X86/X64 (jcc) + kX86InstIdJz, // X86/X64 (jcc) + kX86InstIdJecxz, // X86/X64 (jcxz/jecxz/jrcxz) + kX86InstIdJmp, // X86/X64 (jmp) + kX86InstIdLahf, // X86/X64 (LAHF/SAHF) + kX86InstIdLddqu, // SSE3 + kX86InstIdLdmxcsr, // SSE + kX86InstIdLea, // X86/X64 + kX86InstIdLeave, // X86/X64 + kX86InstIdLfence, // SSE2 + kX86InstIdLodsB, // LODS + kX86InstIdLodsD, // LODS + kX86InstIdLodsQ, // LODS (X64) + kX86InstIdLodsW, // LODS + kX86InstIdLzcnt, // LZCNT + kX86InstIdMaskmovdqu, // SSE2 + kX86InstIdMaskmovq, // MMX2 + kX86InstIdMaxpd, // SSE2 + kX86InstIdMaxps, // SSE + kX86InstIdMaxsd, // SSE2 + kX86InstIdMaxss, // SSE + kX86InstIdMfence, // SSE2 + kX86InstIdMinpd, // SSE2 + kX86InstIdMinps, // SSE + kX86InstIdMinsd, // SSE2 + kX86InstIdMinss, // SSE + kX86InstIdMonitor, // SSE3 + kX86InstIdMov, // X86/X64 + kX86InstIdMovPtr, // X86/X64 + kX86InstIdMovapd, // SSE2 + kX86InstIdMovaps, // SSE + kX86InstIdMovbe, // SSE3 (Atom) + kX86InstIdMovd, // MMX/SSE2 + kX86InstIdMovddup, // SSE3 + kX86InstIdMovdq2q, // SSE2 + kX86InstIdMovdqa, // SSE2 + kX86InstIdMovdqu, // SSE2 + kX86InstIdMovhlps, // SSE + kX86InstIdMovhpd, // SSE2 + kX86InstIdMovhps, // SSE + kX86InstIdMovlhps, // SSE + kX86InstIdMovlpd, // SSE2 + kX86InstIdMovlps, // SSE + kX86InstIdMovmskpd, // SSE2 + kX86InstIdMovmskps, // SSE2 + kX86InstIdMovntdq, // SSE2 + kX86InstIdMovntdqa, // SSE4.1 + kX86InstIdMovnti, // SSE2 + kX86InstIdMovntpd, // SSE2 + kX86InstIdMovntps, // SSE + kX86InstIdMovntq, // MMX2 + kX86InstIdMovntsd, // SSE4a + kX86InstIdMovntss, // SSE4a + kX86InstIdMovq, // MMX/SSE/SSE2 + kX86InstIdMovq2dq, // SSE2 + kX86InstIdMovsB, // MOVS + kX86InstIdMovsD, // MOVS + kX86InstIdMovsQ, // MOVS (X64) + kX86InstIdMovsW, // MOVS + kX86InstIdMovsd, // SSE2 + kX86InstIdMovshdup, // SSE3 + kX86InstIdMovsldup, // SSE3 + kX86InstIdMovss, // SSE + kX86InstIdMovsx, // X86/X64 + kX86InstIdMovsxd, // X86/X64 + kX86InstIdMovupd, // SSE2 + kX86InstIdMovups, // SSE + kX86InstIdMovzx, // X86/X64 + kX86InstIdMpsadbw, // SSE4.1 + kX86InstIdMul, // X86/X64 + kX86InstIdMulpd, // SSE2 + kX86InstIdMulps, // SSE + kX86InstIdMulsd, // SSE2 + kX86InstIdMulss, // SSE + kX86InstIdMulx, // BMI2 + kX86InstIdMwait, // SSE3 + kX86InstIdNeg, // X86/X64 + kX86InstIdNop, // X86/X64 + kX86InstIdNot, // X86/X64 + kX86InstIdOr, // X86/X64 + kX86InstIdOrpd, // SSE2 + kX86InstIdOrps, // SSE + kX86InstIdPabsb, // SSSE3 + kX86InstIdPabsd, // SSSE3 + kX86InstIdPabsw, // SSSE3 + kX86InstIdPackssdw, // MMX/SSE2 + kX86InstIdPacksswb, // MMX/SSE2 + kX86InstIdPackusdw, // SSE4.1 + kX86InstIdPackuswb, // MMX/SSE2 + kX86InstIdPaddb, // MMX/SSE2 + kX86InstIdPaddd, // MMX/SSE2 + kX86InstIdPaddq, // SSE2 + kX86InstIdPaddsb, // MMX/SSE2 + kX86InstIdPaddsw, // MMX/SSE2 + kX86InstIdPaddusb, // MMX/SSE2 + kX86InstIdPaddusw, // MMX/SSE2 + kX86InstIdPaddw, // MMX/SSE2 + kX86InstIdPalignr, // SSSE3 + kX86InstIdPand, // MMX/SSE2 + kX86InstIdPandn, // MMX/SSE2 + kX86InstIdPause, // SSE2. + kX86InstIdPavgb, // MMX2 + kX86InstIdPavgusb, // 3DNOW + kX86InstIdPavgw, // MMX2 + kX86InstIdPblendvb, // SSE4.1 + kX86InstIdPblendw, // SSE4.1 + kX86InstIdPclmulqdq, // PCLMULQDQ + kX86InstIdPcmpeqb, // MMX/SSE2 + kX86InstIdPcmpeqd, // MMX/SSE2 + kX86InstIdPcmpeqq, // SSE4.1 + kX86InstIdPcmpeqw, // MMX/SSE2 + kX86InstIdPcmpestri, // SSE4.2 + kX86InstIdPcmpestrm, // SSE4.2 + kX86InstIdPcmpgtb, // MMX/SSE2 + kX86InstIdPcmpgtd, // MMX/SSE2 + kX86InstIdPcmpgtq, // SSE4.2 + kX86InstIdPcmpgtw, // MMX/SSE2 + kX86InstIdPcmpistri, // SSE4.2 + kX86InstIdPcmpistrm, // SSE4.2 + kX86InstIdPdep, // BMI2 + kX86InstIdPext, // BMI2 + kX86InstIdPextrb, // SSE4.1 + kX86InstIdPextrd, // SSE4.1 + kX86InstIdPextrq, // SSE4.1 + kX86InstIdPextrw, // MMX2/SSE2 + kX86InstIdPf2id, // 3DNOW + kX86InstIdPf2iw, // 3DNOW2 + kX86InstIdPfacc, // 3DNOW + kX86InstIdPfadd, // 3DNOW + kX86InstIdPfcmpeq, // 3DNOW + kX86InstIdPfcmpge, // 3DNOW + kX86InstIdPfcmpgt, // 3DNOW + kX86InstIdPfmax, // 3DNOW + kX86InstIdPfmin, // 3DNOW + kX86InstIdPfmul, // 3DNOW + kX86InstIdPfnacc, // 3DNOW2 + kX86InstIdPfpnacc, // 3DNOW2 + kX86InstIdPfrcp, // 3DNOW + kX86InstIdPfrcpit1, // 3DNOW + kX86InstIdPfrcpit2, // 3DNOW + kX86InstIdPfrsqit1, // 3DNOW + kX86InstIdPfrsqrt, // 3DNOW + kX86InstIdPfsub, // 3DNOW + kX86InstIdPfsubr, // 3DNOW + kX86InstIdPhaddd, // SSSE3 + kX86InstIdPhaddsw, // SSSE3 + kX86InstIdPhaddw, // SSSE3 + kX86InstIdPhminposuw, // SSE4.1 + kX86InstIdPhsubd, // SSSE3 + kX86InstIdPhsubsw, // SSSE3 + kX86InstIdPhsubw, // SSSE3 + kX86InstIdPi2fd, // 3DNOW + kX86InstIdPi2fw, // 3DNOW2 + kX86InstIdPinsrb, // SSE4.1 + kX86InstIdPinsrd, // SSE4.1 + kX86InstIdPinsrq, // SSE4.1 + kX86InstIdPinsrw, // MMX2 + kX86InstIdPmaddubsw, // SSSE3 + kX86InstIdPmaddwd, // MMX/SSE2 + kX86InstIdPmaxsb, // SSE4.1 + kX86InstIdPmaxsd, // SSE4.1 + kX86InstIdPmaxsw, // MMX2 + kX86InstIdPmaxub, // MMX2 + kX86InstIdPmaxud, // SSE4.1 + kX86InstIdPmaxuw, // SSE4.1 + kX86InstIdPminsb, // SSE4.1 + kX86InstIdPminsd, // SSE4.1 + kX86InstIdPminsw, // MMX2 + kX86InstIdPminub, // MMX2 + kX86InstIdPminud, // SSE4.1 + kX86InstIdPminuw, // SSE4.1 + kX86InstIdPmovmskb, // MMX2 + kX86InstIdPmovsxbd, // SSE4.1 + kX86InstIdPmovsxbq, // SSE4.1 + kX86InstIdPmovsxbw, // SSE4.1 + kX86InstIdPmovsxdq, // SSE4.1 + kX86InstIdPmovsxwd, // SSE4.1 + kX86InstIdPmovsxwq, // SSE4.1 + kX86InstIdPmovzxbd, // SSE4.1 + kX86InstIdPmovzxbq, // SSE4.1 + kX86InstIdPmovzxbw, // SSE4.1 + kX86InstIdPmovzxdq, // SSE4.1 + kX86InstIdPmovzxwd, // SSE4.1 + kX86InstIdPmovzxwq, // SSE4.1 + kX86InstIdPmuldq, // SSE4.1 + kX86InstIdPmulhrsw, // SSSE3 + kX86InstIdPmulhrw, // 3DNOW + kX86InstIdPmulhuw, // MMX2 + kX86InstIdPmulhw, // MMX/SSE2 + kX86InstIdPmulld, // SSE4.1 + kX86InstIdPmullw, // MMX/SSE2 + kX86InstIdPmuludq, // SSE2 + kX86InstIdPop, // X86/X64 + kX86InstIdPopa, // X86 only + kX86InstIdPopcnt, // SSE4.2 + kX86InstIdPopf, // X86/X64 + kX86InstIdPor, // MMX/SSE2 + kX86InstIdPrefetch, // MMX2/SSE + kX86InstIdPrefetch3dNow, // 3DNOW + kX86InstIdPrefetchw, // PREFETCHW + kX86InstIdPrefetchwt1, // PREFETCHWT1 + kX86InstIdPsadbw, // MMX2 + kX86InstIdPshufb, // SSSE3 + kX86InstIdPshufd, // SSE2 + kX86InstIdPshufhw, // SSE2 + kX86InstIdPshuflw, // SSE2 + kX86InstIdPshufw, // MMX2 + kX86InstIdPsignb, // SSSE3 + kX86InstIdPsignd, // SSSE3 + kX86InstIdPsignw, // SSSE3 + kX86InstIdPslld, // MMX/SSE2 + kX86InstIdPslldq, // SSE2 + kX86InstIdPsllq, // MMX/SSE2 + kX86InstIdPsllw, // MMX/SSE2 + kX86InstIdPsrad, // MMX/SSE2 + kX86InstIdPsraw, // MMX/SSE2 + kX86InstIdPsrld, // MMX/SSE2 + kX86InstIdPsrldq, // SSE2 + kX86InstIdPsrlq, // MMX/SSE2 + kX86InstIdPsrlw, // MMX/SSE2 + kX86InstIdPsubb, // MMX/SSE2 + kX86InstIdPsubd, // MMX/SSE2 + kX86InstIdPsubq, // SSE2 + kX86InstIdPsubsb, // MMX/SSE2 + kX86InstIdPsubsw, // MMX/SSE2 + kX86InstIdPsubusb, // MMX/SSE2 + kX86InstIdPsubusw, // MMX/SSE2 + kX86InstIdPsubw, // MMX/SSE2 + kX86InstIdPswapd, // 3DNOW2 + kX86InstIdPtest, // SSE4.1 + kX86InstIdPunpckhbw, // MMX/SSE2 + kX86InstIdPunpckhdq, // MMX/SSE2 + kX86InstIdPunpckhqdq, // SSE2 + kX86InstIdPunpckhwd, // MMX/SSE2 + kX86InstIdPunpcklbw, // MMX/SSE2 + kX86InstIdPunpckldq, // MMX/SSE2 + kX86InstIdPunpcklqdq, // SSE2 + kX86InstIdPunpcklwd, // MMX/SSE2 + kX86InstIdPush, // X86/X64 + kX86InstIdPusha, // X86 only + kX86InstIdPushf, // X86/X64 + kX86InstIdPxor, // MMX/SSE2 + kX86InstIdRcl, // X86/X64 + kX86InstIdRcpps, // SSE + kX86InstIdRcpss, // SSE + kX86InstIdRcr, // X86/X64 + kX86InstIdRdfsbase, // FSGSBASE (X64) + kX86InstIdRdgsbase, // FSGSBASE (X64) + kX86InstIdRdrand, // RDRAND (RDRAND) + kX86InstIdRdseed, // RDSEED (RDSEED) + kX86InstIdRdtsc, // X86/X64 + kX86InstIdRdtscp, // X86/X64 + kX86InstIdRepLodsB, // X86/X64 (REP) + kX86InstIdRepLodsD, // X86/X64 (REP) + kX86InstIdRepLodsQ, // X64 only (REP) + kX86InstIdRepLodsW, // X86/X64 (REP) + kX86InstIdRepMovsB, // X86/X64 (REP) + kX86InstIdRepMovsD, // X86/X64 (REP) + kX86InstIdRepMovsQ, // X64 only (REP) + kX86InstIdRepMovsW, // X86/X64 (REP) + kX86InstIdRepStosB, // X86/X64 (REP) + kX86InstIdRepStosD, // X86/X64 (REP) + kX86InstIdRepStosQ, // X64 only (REP) + kX86InstIdRepStosW, // X86/X64 (REP) + kX86InstIdRepeCmpsB, // X86/X64 (REP) + kX86InstIdRepeCmpsD, // X86/X64 (REP) + kX86InstIdRepeCmpsQ, // X64 only (REP) + kX86InstIdRepeCmpsW, // X86/X64 (REP) + kX86InstIdRepeScasB, // X86/X64 (REP) + kX86InstIdRepeScasD, // X86/X64 (REP) + kX86InstIdRepeScasQ, // X64 only (REP) + kX86InstIdRepeScasW, // X86/X64 (REP) + kX86InstIdRepneCmpsB, // X86/X64 (REP) + kX86InstIdRepneCmpsD, // X86/X64 (REP) + kX86InstIdRepneCmpsQ, // X64 only (REP) + kX86InstIdRepneCmpsW, // X86/X64 (REP) + kX86InstIdRepneScasB, // X86/X64 (REP) + kX86InstIdRepneScasD, // X86/X64 (REP) + kX86InstIdRepneScasQ, // X64 only (REP) + kX86InstIdRepneScasW, // X86/X64 (REP) + kX86InstIdRet, // X86/X64 + kX86InstIdRol, // X86/X64 + kX86InstIdRor, // X86/X64 + kX86InstIdRorx, // BMI2 + kX86InstIdRoundpd, // SSE4.1 + kX86InstIdRoundps, // SSE4.1 + kX86InstIdRoundsd, // SSE4.1 + kX86InstIdRoundss, // SSE4.1 + kX86InstIdRsqrtps, // SSE + kX86InstIdRsqrtss, // SSE + kX86InstIdSahf, // X86/X64 (LAHF/SAHF) + kX86InstIdSal, // X86/X64 + kX86InstIdSar, // X86/X64 + kX86InstIdSarx, // BMI2 + kX86InstIdSbb, // X86/X64 + kX86InstIdScasB, // SCAS + kX86InstIdScasD, // SCAS + kX86InstIdScasQ, // SCAS (X64) + kX86InstIdScasW, // SCAS + kX86InstIdSeta, // X86/X64 (setcc) + kX86InstIdSetae, // X86/X64 (setcc) + kX86InstIdSetb, // X86/X64 (setcc) + kX86InstIdSetbe, // X86/X64 (setcc) + kX86InstIdSetc, // X86/X64 (setcc) + kX86InstIdSete, // X86/X64 (setcc) + kX86InstIdSetg, // X86/X64 (setcc) + kX86InstIdSetge, // X86/X64 (setcc) + kX86InstIdSetl, // X86/X64 (setcc) + kX86InstIdSetle, // X86/X64 (setcc) + kX86InstIdSetna, // X86/X64 (setcc) + kX86InstIdSetnae, // X86/X64 (setcc) + kX86InstIdSetnb, // X86/X64 (setcc) + kX86InstIdSetnbe, // X86/X64 (setcc) + kX86InstIdSetnc, // X86/X64 (setcc) + kX86InstIdSetne, // X86/X64 (setcc) + kX86InstIdSetng, // X86/X64 (setcc) + kX86InstIdSetnge, // X86/X64 (setcc) + kX86InstIdSetnl, // X86/X64 (setcc) + kX86InstIdSetnle, // X86/X64 (setcc) + kX86InstIdSetno, // X86/X64 (setcc) + kX86InstIdSetnp, // X86/X64 (setcc) + kX86InstIdSetns, // X86/X64 (setcc) + kX86InstIdSetnz, // X86/X64 (setcc) + kX86InstIdSeto, // X86/X64 (setcc) + kX86InstIdSetp, // X86/X64 (setcc) + kX86InstIdSetpe, // X86/X64 (setcc) + kX86InstIdSetpo, // X86/X64 (setcc) + kX86InstIdSets, // X86/X64 (setcc) + kX86InstIdSetz, // X86/X64 (setcc) + kX86InstIdSfence, // MMX2/SSE + kX86InstIdSha1msg1, // SHA + kX86InstIdSha1msg2, // SHA + kX86InstIdSha1nexte, // SHA + kX86InstIdSha1rnds4, // SHA + kX86InstIdSha256msg1, // SHA + kX86InstIdSha256msg2, // SHA + kX86InstIdSha256rnds2, // SHA + kX86InstIdShl, // X86/X64 + kX86InstIdShld, // X86/X64 + kX86InstIdShlx, // BMI2 + kX86InstIdShr, // X86/X64 + kX86InstIdShrd, // X86/X64 + kX86InstIdShrx, // BMI2 + kX86InstIdShufpd, // SSE2 + kX86InstIdShufps, // SSE + kX86InstIdSqrtpd, // SSE2 + kX86InstIdSqrtps, // SSE + kX86InstIdSqrtsd, // SSE2 + kX86InstIdSqrtss, // SSE + kX86InstIdStc, // X86/X64 + kX86InstIdStd, // X86/X64 + kX86InstIdStmxcsr, // SSE + kX86InstIdStosB, // STOS + kX86InstIdStosD, // STOS + kX86InstIdStosQ, // STOS (X64) + kX86InstIdStosW, // STOS + kX86InstIdSub, // X86/X64 + kX86InstIdSubpd, // SSE2 + kX86InstIdSubps, // SSE + kX86InstIdSubsd, // SSE2 + kX86InstIdSubss, // SSE + kX86InstIdT1mskc, // TBM + kX86InstIdTest, // X86/X64 + kX86InstIdTzcnt, // TZCNT + kX86InstIdTzmsk, // TBM + kX86InstIdUcomisd, // SSE2 + kX86InstIdUcomiss, // SSE + kX86InstIdUd2, // X86/X64 + kX86InstIdUnpckhpd, // SSE2 + kX86InstIdUnpckhps, // SSE + kX86InstIdUnpcklpd, // SSE2 + kX86InstIdUnpcklps, // SSE + kX86InstIdVaddpd, // AVX + kX86InstIdVaddps, // AVX + kX86InstIdVaddsd, // AVX + kX86InstIdVaddss, // AVX + kX86InstIdVaddsubpd, // AVX + kX86InstIdVaddsubps, // AVX + kX86InstIdVaesdec, // AVX+AESNI + kX86InstIdVaesdeclast, // AVX+AESNI + kX86InstIdVaesenc, // AVX+AESNI + kX86InstIdVaesenclast, // AVX+AESNI + kX86InstIdVaesimc, // AVX+AESNI + kX86InstIdVaeskeygenassist, // AVX+AESNI + kX86InstIdVandnpd, // AVX + kX86InstIdVandnps, // AVX + kX86InstIdVandpd, // AVX + kX86InstIdVandps, // AVX + kX86InstIdVblendpd, // AVX + kX86InstIdVblendps, // AVX + kX86InstIdVblendvpd, // AVX + kX86InstIdVblendvps, // AVX + kX86InstIdVbroadcastf128, // AVX + kX86InstIdVbroadcasti128, // AVX2 + kX86InstIdVbroadcastsd, // AVX/AVX2 + kX86InstIdVbroadcastss, // AVX/AVX2 + kX86InstIdVcmppd, // AVX + kX86InstIdVcmpps, // AVX + kX86InstIdVcmpsd, // AVX + kX86InstIdVcmpss, // AVX + kX86InstIdVcomisd, // AVX + kX86InstIdVcomiss, // AVX + kX86InstIdVcvtdq2pd, // AVX + kX86InstIdVcvtdq2ps, // AVX + kX86InstIdVcvtpd2dq, // AVX + kX86InstIdVcvtpd2ps, // AVX + kX86InstIdVcvtph2ps, // F16C + kX86InstIdVcvtps2dq, // AVX + kX86InstIdVcvtps2pd, // AVX + kX86InstIdVcvtps2ph, // F16C + kX86InstIdVcvtsd2si, // AVX + kX86InstIdVcvtsd2ss, // AVX + kX86InstIdVcvtsi2sd, // AVX + kX86InstIdVcvtsi2ss, // AVX + kX86InstIdVcvtss2sd, // AVX + kX86InstIdVcvtss2si, // AVX + kX86InstIdVcvttpd2dq, // AVX + kX86InstIdVcvttps2dq, // AVX + kX86InstIdVcvttsd2si, // AVX + kX86InstIdVcvttss2si, // AVX + kX86InstIdVdivpd, // AVX + kX86InstIdVdivps, // AVX + kX86InstIdVdivsd, // AVX + kX86InstIdVdivss, // AVX + kX86InstIdVdppd, // AVX + kX86InstIdVdpps, // AVX + kX86InstIdVextractf128, // AVX + kX86InstIdVextracti128, // AVX2 + kX86InstIdVextractps, // AVX + kX86InstIdVfmadd132pd, // FMA3 + kX86InstIdVfmadd132ps, // FMA3 + kX86InstIdVfmadd132sd, // FMA3 + kX86InstIdVfmadd132ss, // FMA3 + kX86InstIdVfmadd213pd, // FMA3 + kX86InstIdVfmadd213ps, // FMA3 + kX86InstIdVfmadd213sd, // FMA3 + kX86InstIdVfmadd213ss, // FMA3 + kX86InstIdVfmadd231pd, // FMA3 + kX86InstIdVfmadd231ps, // FMA3 + kX86InstIdVfmadd231sd, // FMA3 + kX86InstIdVfmadd231ss, // FMA3 + kX86InstIdVfmaddpd, // FMA4 + kX86InstIdVfmaddps, // FMA4 + kX86InstIdVfmaddsd, // FMA4 + kX86InstIdVfmaddss, // FMA4 + kX86InstIdVfmaddsub132pd, // FMA3 + kX86InstIdVfmaddsub132ps, // FMA3 + kX86InstIdVfmaddsub213pd, // FMA3 + kX86InstIdVfmaddsub213ps, // FMA3 + kX86InstIdVfmaddsub231pd, // FMA3 + kX86InstIdVfmaddsub231ps, // FMA3 + kX86InstIdVfmaddsubpd, // FMA4 + kX86InstIdVfmaddsubps, // FMA4 + kX86InstIdVfmsub132pd, // FMA3 + kX86InstIdVfmsub132ps, // FMA3 + kX86InstIdVfmsub132sd, // FMA3 + kX86InstIdVfmsub132ss, // FMA3 + kX86InstIdVfmsub213pd, // FMA3 + kX86InstIdVfmsub213ps, // FMA3 + kX86InstIdVfmsub213sd, // FMA3 + kX86InstIdVfmsub213ss, // FMA3 + kX86InstIdVfmsub231pd, // FMA3 + kX86InstIdVfmsub231ps, // FMA3 + kX86InstIdVfmsub231sd, // FMA3 + kX86InstIdVfmsub231ss, // FMA3 + kX86InstIdVfmsubadd132pd, // FMA3 + kX86InstIdVfmsubadd132ps, // FMA3 + kX86InstIdVfmsubadd213pd, // FMA3 + kX86InstIdVfmsubadd213ps, // FMA3 + kX86InstIdVfmsubadd231pd, // FMA3 + kX86InstIdVfmsubadd231ps, // FMA3 + kX86InstIdVfmsubaddpd, // FMA4 + kX86InstIdVfmsubaddps, // FMA4 + kX86InstIdVfmsubpd, // FMA4 + kX86InstIdVfmsubps, // FMA4 + kX86InstIdVfmsubsd, // FMA4 + kX86InstIdVfmsubss, // FMA4 + kX86InstIdVfnmadd132pd, // FMA3 + kX86InstIdVfnmadd132ps, // FMA3 + kX86InstIdVfnmadd132sd, // FMA3 + kX86InstIdVfnmadd132ss, // FMA3 + kX86InstIdVfnmadd213pd, // FMA3 + kX86InstIdVfnmadd213ps, // FMA3 + kX86InstIdVfnmadd213sd, // FMA3 + kX86InstIdVfnmadd213ss, // FMA3 + kX86InstIdVfnmadd231pd, // FMA3 + kX86InstIdVfnmadd231ps, // FMA3 + kX86InstIdVfnmadd231sd, // FMA3 + kX86InstIdVfnmadd231ss, // FMA3 + kX86InstIdVfnmaddpd, // FMA4 + kX86InstIdVfnmaddps, // FMA4 + kX86InstIdVfnmaddsd, // FMA4 + kX86InstIdVfnmaddss, // FMA4 + kX86InstIdVfnmsub132pd, // FMA3 + kX86InstIdVfnmsub132ps, // FMA3 + kX86InstIdVfnmsub132sd, // FMA3 + kX86InstIdVfnmsub132ss, // FMA3 + kX86InstIdVfnmsub213pd, // FMA3 + kX86InstIdVfnmsub213ps, // FMA3 + kX86InstIdVfnmsub213sd, // FMA3 + kX86InstIdVfnmsub213ss, // FMA3 + kX86InstIdVfnmsub231pd, // FMA3 + kX86InstIdVfnmsub231ps, // FMA3 + kX86InstIdVfnmsub231sd, // FMA3 + kX86InstIdVfnmsub231ss, // FMA3 + kX86InstIdVfnmsubpd, // FMA4 + kX86InstIdVfnmsubps, // FMA4 + kX86InstIdVfnmsubsd, // FMA4 + kX86InstIdVfnmsubss, // FMA4 + kX86InstIdVfrczpd, // XOP + kX86InstIdVfrczps, // XOP + kX86InstIdVfrczsd, // XOP + kX86InstIdVfrczss, // XOP + kX86InstIdVgatherdpd, // AVX2 + kX86InstIdVgatherdps, // AVX2 + kX86InstIdVgatherqpd, // AVX2 + kX86InstIdVgatherqps, // AVX2 + kX86InstIdVhaddpd, // AVX + kX86InstIdVhaddps, // AVX + kX86InstIdVhsubpd, // AVX + kX86InstIdVhsubps, // AVX + kX86InstIdVinsertf128, // AVX + kX86InstIdVinserti128, // AVX2 + kX86InstIdVinsertps, // AVX + kX86InstIdVlddqu, // AVX + kX86InstIdVldmxcsr, // AVX + kX86InstIdVmaskmovdqu, // AVX + kX86InstIdVmaskmovpd, // AVX + kX86InstIdVmaskmovps, // AVX + kX86InstIdVmaxpd, // AVX + kX86InstIdVmaxps, // AVX + kX86InstIdVmaxsd, // AVX + kX86InstIdVmaxss, // AVX + kX86InstIdVminpd, // AVX + kX86InstIdVminps, // AVX + kX86InstIdVminsd, // AVX + kX86InstIdVminss, // AVX + kX86InstIdVmovapd, // AVX + kX86InstIdVmovaps, // AVX + kX86InstIdVmovd, // AVX + kX86InstIdVmovddup, // AVX + kX86InstIdVmovdqa, // AVX + kX86InstIdVmovdqu, // AVX + kX86InstIdVmovhlps, // AVX + kX86InstIdVmovhpd, // AVX + kX86InstIdVmovhps, // AVX + kX86InstIdVmovlhps, // AVX + kX86InstIdVmovlpd, // AVX + kX86InstIdVmovlps, // AVX + kX86InstIdVmovmskpd, // AVX + kX86InstIdVmovmskps, // AVX + kX86InstIdVmovntdq, // AVX + kX86InstIdVmovntdqa, // AVX/AVX2 + kX86InstIdVmovntpd, // AVX + kX86InstIdVmovntps, // AVX + kX86InstIdVmovq, // AVX + kX86InstIdVmovsd, // AVX + kX86InstIdVmovshdup, // AVX + kX86InstIdVmovsldup, // AVX + kX86InstIdVmovss, // AVX + kX86InstIdVmovupd, // AVX + kX86InstIdVmovups, // AVX + kX86InstIdVmpsadbw, // AVX/AVX2 + kX86InstIdVmulpd, // AVX + kX86InstIdVmulps, // AVX + kX86InstIdVmulsd, // AVX + kX86InstIdVmulss, // AVX + kX86InstIdVorpd, // AVX + kX86InstIdVorps, // AVX + kX86InstIdVpabsb, // AVX2 + kX86InstIdVpabsd, // AVX2 + kX86InstIdVpabsw, // AVX2 + kX86InstIdVpackssdw, // AVX2 + kX86InstIdVpacksswb, // AVX2 + kX86InstIdVpackusdw, // AVX2 + kX86InstIdVpackuswb, // AVX2 + kX86InstIdVpaddb, // AVX2 + kX86InstIdVpaddd, // AVX2 + kX86InstIdVpaddq, // AVX2 + kX86InstIdVpaddsb, // AVX2 + kX86InstIdVpaddsw, // AVX2 + kX86InstIdVpaddusb, // AVX2 + kX86InstIdVpaddusw, // AVX2 + kX86InstIdVpaddw, // AVX2 + kX86InstIdVpalignr, // AVX2 + kX86InstIdVpand, // AVX2 + kX86InstIdVpandn, // AVX2 + kX86InstIdVpavgb, // AVX2 + kX86InstIdVpavgw, // AVX2 + kX86InstIdVpblendd, // AVX2 + kX86InstIdVpblendvb, // AVX2 + kX86InstIdVpblendw, // AVX2 + kX86InstIdVpbroadcastb, // AVX2 + kX86InstIdVpbroadcastd, // AVX2 + kX86InstIdVpbroadcastq, // AVX2 + kX86InstIdVpbroadcastw, // AVX2 + kX86InstIdVpclmulqdq, // AVX+PCLMULQDQ + kX86InstIdVpcmov, // XOP + kX86InstIdVpcmpeqb, // AVX2 + kX86InstIdVpcmpeqd, // AVX2 + kX86InstIdVpcmpeqq, // AVX2 + kX86InstIdVpcmpeqw, // AVX2 + kX86InstIdVpcmpestri, // AVX + kX86InstIdVpcmpestrm, // AVX + kX86InstIdVpcmpgtb, // AVX2 + kX86InstIdVpcmpgtd, // AVX2 + kX86InstIdVpcmpgtq, // AVX2 + kX86InstIdVpcmpgtw, // AVX2 + kX86InstIdVpcmpistri, // AVX + kX86InstIdVpcmpistrm, // AVX + kX86InstIdVpcomb, // XOP + kX86InstIdVpcomd, // XOP + kX86InstIdVpcomq, // XOP + kX86InstIdVpcomub, // XOP + kX86InstIdVpcomud, // XOP + kX86InstIdVpcomuq, // XOP + kX86InstIdVpcomuw, // XOP + kX86InstIdVpcomw, // XOP + kX86InstIdVperm2f128, // AVX + kX86InstIdVperm2i128, // AVX2 + kX86InstIdVpermd, // AVX2 + kX86InstIdVpermil2pd, // XOP + kX86InstIdVpermil2ps, // XOP + kX86InstIdVpermilpd, // AVX + kX86InstIdVpermilps, // AVX + kX86InstIdVpermpd, // AVX2 + kX86InstIdVpermps, // AVX2 + kX86InstIdVpermq, // AVX2 + kX86InstIdVpextrb, // AVX + kX86InstIdVpextrd, // AVX + kX86InstIdVpextrq, // AVX (X64) + kX86InstIdVpextrw, // AVX + kX86InstIdVpgatherdd, // AVX2 + kX86InstIdVpgatherdq, // AVX2 + kX86InstIdVpgatherqd, // AVX2 + kX86InstIdVpgatherqq, // AVX2 + kX86InstIdVphaddbd, // XOP + kX86InstIdVphaddbq, // XOP + kX86InstIdVphaddbw, // XOP + kX86InstIdVphaddd, // AVX2 + kX86InstIdVphadddq, // XOP + kX86InstIdVphaddsw, // AVX2 + kX86InstIdVphaddubd, // XOP + kX86InstIdVphaddubq, // XOP + kX86InstIdVphaddubw, // XOP + kX86InstIdVphaddudq, // XOP + kX86InstIdVphadduwd, // XOP + kX86InstIdVphadduwq, // XOP + kX86InstIdVphaddw, // AVX2 + kX86InstIdVphaddwd, // XOP + kX86InstIdVphaddwq, // XOP + kX86InstIdVphminposuw, // AVX + kX86InstIdVphsubbw, // XOP + kX86InstIdVphsubd, // AVX2 + kX86InstIdVphsubdq, // XOP + kX86InstIdVphsubsw, // AVX2 + kX86InstIdVphsubw, // AVX2 + kX86InstIdVphsubwd, // XOP + kX86InstIdVpinsrb, // AVX + kX86InstIdVpinsrd, // AVX + kX86InstIdVpinsrq, // AVX (X64) + kX86InstIdVpinsrw, // AVX + kX86InstIdVpmacsdd, // XOP + kX86InstIdVpmacsdqh, // XOP + kX86InstIdVpmacsdql, // XOP + kX86InstIdVpmacssdd, // XOP + kX86InstIdVpmacssdqh, // XOP + kX86InstIdVpmacssdql, // XOP + kX86InstIdVpmacsswd, // XOP + kX86InstIdVpmacssww, // XOP + kX86InstIdVpmacswd, // XOP + kX86InstIdVpmacsww, // XOP + kX86InstIdVpmadcsswd, // XOP + kX86InstIdVpmadcswd, // XOP + kX86InstIdVpmaddubsw, // AVX/AVX2 + kX86InstIdVpmaddwd, // AVX/AVX2 + kX86InstIdVpmaskmovd, // AVX2 + kX86InstIdVpmaskmovq, // AVX2 + kX86InstIdVpmaxsb, // AVX/AVX2 + kX86InstIdVpmaxsd, // AVX/AVX2 + kX86InstIdVpmaxsw, // AVX/AVX2 + kX86InstIdVpmaxub, // AVX/AVX2 + kX86InstIdVpmaxud, // AVX/AVX2 + kX86InstIdVpmaxuw, // AVX/AVX2 + kX86InstIdVpminsb, // AVX/AVX2 + kX86InstIdVpminsd, // AVX/AVX2 + kX86InstIdVpminsw, // AVX/AVX2 + kX86InstIdVpminub, // AVX/AVX2 + kX86InstIdVpminud, // AVX/AVX2 + kX86InstIdVpminuw, // AVX/AVX2 + kX86InstIdVpmovmskb, // AVX/AVX2 + kX86InstIdVpmovsxbd, // AVX/AVX2 + kX86InstIdVpmovsxbq, // AVX/AVX2 + kX86InstIdVpmovsxbw, // AVX/AVX2 + kX86InstIdVpmovsxdq, // AVX/AVX2 + kX86InstIdVpmovsxwd, // AVX/AVX2 + kX86InstIdVpmovsxwq, // AVX/AVX2 + kX86InstIdVpmovzxbd, // AVX/AVX2 + kX86InstIdVpmovzxbq, // AVX/AVX2 + kX86InstIdVpmovzxbw, // AVX/AVX2 + kX86InstIdVpmovzxdq, // AVX/AVX2 + kX86InstIdVpmovzxwd, // AVX/AVX2 + kX86InstIdVpmovzxwq, // AVX/AVX2 + kX86InstIdVpmuldq, // AVX/AVX2 + kX86InstIdVpmulhrsw, // AVX/AVX2 + kX86InstIdVpmulhuw, // AVX/AVX2 + kX86InstIdVpmulhw, // AVX/AVX2 + kX86InstIdVpmulld, // AVX/AVX2 + kX86InstIdVpmullw, // AVX/AVX2 + kX86InstIdVpmuludq, // AVX/AVX2 + kX86InstIdVpor, // AVX/AVX2 + kX86InstIdVpperm, // XOP + kX86InstIdVprotb, // XOP + kX86InstIdVprotd, // XOP + kX86InstIdVprotq, // XOP + kX86InstIdVprotw, // XOP + kX86InstIdVpsadbw, // AVX/AVX2 + kX86InstIdVpshab, // XOP + kX86InstIdVpshad, // XOP + kX86InstIdVpshaq, // XOP + kX86InstIdVpshaw, // XOP + kX86InstIdVpshlb, // XOP + kX86InstIdVpshld, // XOP + kX86InstIdVpshlq, // XOP + kX86InstIdVpshlw, // XOP + kX86InstIdVpshufb, // AVX/AVX2 + kX86InstIdVpshufd, // AVX/AVX2 + kX86InstIdVpshufhw, // AVX/AVX2 + kX86InstIdVpshuflw, // AVX/AVX2 + kX86InstIdVpsignb, // AVX/AVX2 + kX86InstIdVpsignd, // AVX/AVX2 + kX86InstIdVpsignw, // AVX/AVX2 + kX86InstIdVpslld, // AVX/AVX2 + kX86InstIdVpslldq, // AVX/AVX2 + kX86InstIdVpsllq, // AVX/AVX2 + kX86InstIdVpsllvd, // AVX2 + kX86InstIdVpsllvq, // AVX2 + kX86InstIdVpsllw, // AVX/AVX2 + kX86InstIdVpsrad, // AVX/AVX2 + kX86InstIdVpsravd, // AVX2 + kX86InstIdVpsraw, // AVX/AVX2 + kX86InstIdVpsrld, // AVX/AVX2 + kX86InstIdVpsrldq, // AVX/AVX2 + kX86InstIdVpsrlq, // AVX/AVX2 + kX86InstIdVpsrlvd, // AVX2 + kX86InstIdVpsrlvq, // AVX2 + kX86InstIdVpsrlw, // AVX/AVX2 + kX86InstIdVpsubb, // AVX/AVX2 + kX86InstIdVpsubd, // AVX/AVX2 + kX86InstIdVpsubq, // AVX/AVX2 + kX86InstIdVpsubsb, // AVX/AVX2 + kX86InstIdVpsubsw, // AVX/AVX2 + kX86InstIdVpsubusb, // AVX/AVX2 + kX86InstIdVpsubusw, // AVX/AVX2 + kX86InstIdVpsubw, // AVX/AVX2 + kX86InstIdVptest, // AVX + kX86InstIdVpunpckhbw, // AVX/AVX2 + kX86InstIdVpunpckhdq, // AVX/AVX2 + kX86InstIdVpunpckhqdq, // AVX/AVX2 + kX86InstIdVpunpckhwd, // AVX/AVX2 + kX86InstIdVpunpcklbw, // AVX/AVX2 + kX86InstIdVpunpckldq, // AVX/AVX2 + kX86InstIdVpunpcklqdq, // AVX/AVX2 + kX86InstIdVpunpcklwd, // AVX/AVX2 + kX86InstIdVpxor, // AVX/AVX2 + kX86InstIdVrcpps, // AVX + kX86InstIdVrcpss, // AVX + kX86InstIdVroundpd, // AVX + kX86InstIdVroundps, // AVX + kX86InstIdVroundsd, // AVX + kX86InstIdVroundss, // AVX + kX86InstIdVrsqrtps, // AVX + kX86InstIdVrsqrtss, // AVX + kX86InstIdVshufpd, // AVX + kX86InstIdVshufps, // AVX + kX86InstIdVsqrtpd, // AVX + kX86InstIdVsqrtps, // AVX + kX86InstIdVsqrtsd, // AVX + kX86InstIdVsqrtss, // AVX + kX86InstIdVstmxcsr, // AVX + kX86InstIdVsubpd, // AVX + kX86InstIdVsubps, // AVX + kX86InstIdVsubsd, // AVX + kX86InstIdVsubss, // AVX + kX86InstIdVtestpd, // AVX + kX86InstIdVtestps, // AVX + kX86InstIdVucomisd, // AVX + kX86InstIdVucomiss, // AVX + kX86InstIdVunpckhpd, // AVX + kX86InstIdVunpckhps, // AVX + kX86InstIdVunpcklpd, // AVX + kX86InstIdVunpcklps, // AVX + kX86InstIdVxorpd, // AVX + kX86InstIdVxorps, // AVX + kX86InstIdVzeroall, // AVX + kX86InstIdVzeroupper, // AVX + kX86InstIdWrfsbase, // FSGSBASE (X64) + kX86InstIdWrgsbase, // FSGSBASE (X64) + kX86InstIdXadd, // X86/X64 (i486+) + kX86InstIdXchg, // X86/X64 + kX86InstIdXgetbv, // XSAVE + kX86InstIdXor, // X86/X64 + kX86InstIdXorpd, // SSE2 + kX86InstIdXorps, // SSE + kX86InstIdXrstor, // XSAVE + kX86InstIdXrstor64, // XSAVE + kX86InstIdXsave, // XSAVE + kX86InstIdXsave64, // XSAVE + kX86InstIdXsaveopt, // XSAVE + kX86InstIdXsaveopt64, // XSAVE + kX86InstIdXsetbv, // XSAVE _kX86InstIdCount, @@ -1209,8 +1228,8 @@ ASMJIT_ENUM(X86InstEncoding) { kX86InstEncodingX86Jmp, //!< X86 encoding - jmp. kX86InstEncodingX86Lea, //!< X86 encoding - lea. kX86InstEncodingX86Mov, //!< X86 encoding - mov. - kX86InstEncodingX86MovSxZx, //!< X86 encoding - movsx, movzx. - kX86InstEncodingX86MovSxd, //!< X86 encoding - movsxd. + kX86InstEncodingX86MovsxMovzx, //!< X86 encoding - movsx, movzx. + kX86InstEncodingX86Movsxd, //!< X86 encoding - movsxd. kX86InstEncodingX86MovPtr, //!< X86 encoding - mov with absolute memory operand (x86/x64). kX86InstEncodingX86Push, //!< X86 encoding - push. kX86InstEncodingX86Pop, //!< X86 encoding - pop. @@ -1218,7 +1237,7 @@ ASMJIT_ENUM(X86InstEncoding) { kX86InstEncodingX86Ret, //!< X86 encoding - ret. kX86InstEncodingX86Rot, //!< X86 encoding - rcl, rcr, rol, ror, sal, sar, shl, shr. kX86InstEncodingX86Set, //!< X86 encoding - setcc. - kX86InstEncodingX86Shlrd, //!< X86 encoding - shld, shrd. + kX86InstEncodingX86ShldShrd, //!< X86 encoding - shld, shrd. kX86InstEncodingX86Test, //!< X86 encoding - test. kX86InstEncodingX86Xadd, //!< X86 encoding - xadd. kX86InstEncodingX86Xchg, //!< X86 encoding - xchg. @@ -1234,16 +1253,16 @@ ASMJIT_ENUM(X86InstEncoding) { kX86InstEncodingFpuRDef, //!< FPU encoding - faddp, fdivp, fdivrp, fmulp, fsubp, fsubrp. kX86InstEncodingFpuStsw, //!< FPU encoding - fnstsw, Fstsw. kX86InstEncodingSimdRm, //!< SIMD encoding - [RM]. - kX86InstEncodingSimdRm_P, //!< SIMD encoding - [RM] (propagates 66H if the instruction uses Xmm register). + kX86InstEncodingSimdRm_P, //!< SIMD encoding - [RM] (propagates 66H if the instruction uses XMM register). kX86InstEncodingSimdRm_Q, //!< SIMD encoding - [RM] (propagates REX.W if GPQ is used). kX86InstEncodingSimdRm_PQ, //!< SIMD encoding - [RM] (propagates 66H and REX.W). kX86InstEncodingSimdRmRi, //!< SIMD encoding - [RM|RI]. - kX86InstEncodingSimdRmRi_P, //!< SIMD encoding - [RM|RI] (propagates 66H if the instruction uses Xmm register). + kX86InstEncodingSimdRmRi_P, //!< SIMD encoding - [RM|RI] (propagates 66H if the instruction uses XMM register). kX86InstEncodingSimdRmi, //!< SIMD encoding - [RMI]. - kX86InstEncodingSimdRmi_P, //!< SIMD encoding - [RMI] (propagates 66H if the instruction uses Xmm register). + kX86InstEncodingSimdRmi_P, //!< SIMD encoding - [RMI] (propagates 66H if the instruction uses XMM register). kX86InstEncodingSimdPextrw, //!< SIMD encoding - pextrw. kX86InstEncodingSimdExtract, //!< SIMD encoding - pextrb, pextrd, pextrq, extractps. - kX86InstEncodingSimdMov, //!< SIMD encoding - mov - primary opcode means `(X)Mm <- (X)Mm/X86Mem`, secondary `(X)Mm/X86Mem <- (X)Mm format`. + kX86InstEncodingSimdMov, //!< SIMD encoding - mov - primary opcode means `(X)MM <- (X)MM/Mem`, secondary `(X)Mm/Mem <- (X)Mm format`. kX86InstEncodingSimdMovNoRexW, //!< SIMD encoding - movmskpd, movmskps. kX86InstEncodingSimdMovBe, //!< Used by movbe. kX86InstEncodingSimdMovD, //!< SIMD encoding - movd. @@ -1254,55 +1273,56 @@ ASMJIT_ENUM(X86InstEncoding) { kX86InstEncodingAvxOp, //!< AVX encoding - [OP]. kX86InstEncodingAvxM, //!< AVX encoding - [M]. kX86InstEncodingAvxMr, //!< AVX encoding - [MR]. - kX86InstEncodingAvxMr_OptL, //!< AVX encoding - [MR] (Propagates AVX.L if Ymm used). + kX86InstEncodingAvxMr_OptL, //!< AVX encoding - [MR] (Propagates AVX.L if YMM used). kX86InstEncodingAvxMri, //!< AVX encoding - [MRI]. - kX86InstEncodingAvxMri_OptL, //!< AVX encoding - [MRI] (Propagates AVX.L if Ymm used). + kX86InstEncodingAvxMri_OptL, //!< AVX encoding - [MRI] (Propagates AVX.L if YMM used). kX86InstEncodingAvxRm, //!< AVX encoding - [RM]. - kX86InstEncodingAvxRm_OptL, //!< AVX encoding - [RM] (Propagates AVX.L if Ymm used). + kX86InstEncodingAvxRm_OptL, //!< AVX encoding - [RM] (Propagates AVX.L if YMM used). kX86InstEncodingAvxRmi, //!< AVX encoding - [RMI]. - kX86InstEncodingAvxRmi_OptW, //!< AVX encoding - [RMI] (Propagates AVX.W if Gpq used). - kX86InstEncodingAvxRmi_OptL, //!< AVX encoding - [RMI] (Propagates AVX.L if Ymm used). + kX86InstEncodingAvxRmi_OptW, //!< AVX encoding - [RMI] (Propagates AVX.W if GPQ used). + kX86InstEncodingAvxRmi_OptL, //!< AVX encoding - [RMI] (Propagates AVX.L if YMM used). kX86InstEncodingAvxRvm, //!< AVX encoding - [RVM]. - kX86InstEncodingAvxRvm_OptW, //!< AVX encoding - [RVM] (Propagates AVX.W if Gpq used). - kX86InstEncodingAvxRvm_OptL, //!< AVX encoding - [RVM] (Propagates AVX.L if Ymm used). + kX86InstEncodingAvxRvm_OptW, //!< AVX encoding - [RVM] (Propagates AVX.W if GPQ used). + kX86InstEncodingAvxRvm_OptL, //!< AVX encoding - [RVM] (Propagates AVX.L if YMM used). kX86InstEncodingAvxRvmr, //!< AVX encoding - [RVMR]. - kX86InstEncodingAvxRvmr_OptL, //!< AVX encoding - [RVMR] (Propagates AVX.L if Ymm used). + kX86InstEncodingAvxRvmr_OptL, //!< AVX encoding - [RVMR] (Propagates AVX.L if YMM used). kX86InstEncodingAvxRvmi, //!< AVX encoding - [RVMI]. - kX86InstEncodingAvxRvmi_OptL, //!< AVX encoding - [RVMI] (Propagates AVX.L if Ymm used). + kX86InstEncodingAvxRvmi_OptL, //!< AVX encoding - [RVMI] (Propagates AVX.L if YMM used). kX86InstEncodingAvxRmv, //!< AVX encoding - [RMV]. - kX86InstEncodingAvxRmv_OptW, //!< AVX encoding - [RMV] (Propagates AVX.W if Gpq used). + kX86InstEncodingAvxRmv_OptW, //!< AVX encoding - [RMV] (Propagates AVX.W if GPQ used). kX86InstEncodingAvxRmvi, //!< AVX encoding - [RMVI]. kX86InstEncodingAvxRmMr, //!< AVX encoding - [RM|MR]. - kX86InstEncodingAvxRmMr_OptL, //!< AVX encoding - [RM|MR] (Propagates AVX.L if Ymm used). + kX86InstEncodingAvxRmMr_OptL, //!< AVX encoding - [RM|MR] (Propagates AVX.L if YMM used). kX86InstEncodingAvxRvmRmi, //!< AVX encoding - [RVM|RMI]. - kX86InstEncodingAvxRvmRmi_OptL, //!< AVX encoding - [RVM|RMI] (Propagates AVX.L if Ymm used). + kX86InstEncodingAvxRvmRmi_OptL, //!< AVX encoding - [RVM|RMI] (Propagates AVX.L if YMM used). kX86InstEncodingAvxRvmMr, //!< AVX encoding - [RVM|MR]. kX86InstEncodingAvxRvmMvr, //!< AVX encoding - [RVM|MVR]. - kX86InstEncodingAvxRvmMvr_OptL, //!< AVX encoding - [RVM|MVR] (Propagates AVX.L if Ymm used). + kX86InstEncodingAvxRvmMvr_OptL, //!< AVX encoding - [RVM|MVR] (Propagates AVX.L if YMM used). kX86InstEncodingAvxRvmVmi, //!< AVX encoding - [RVM|VMI]. - kX86InstEncodingAvxRvmVmi_OptL, //!< AVX encoding - [RVM|VMI] (Propagates AVX.L if Ymm used). + kX86InstEncodingAvxRvmVmi_OptL, //!< AVX encoding - [RVM|VMI] (Propagates AVX.L if YMM used). kX86InstEncodingAvxVm, //!< AVX encoding - [VM]. - kX86InstEncodingAvxVm_OptW, //!< AVX encoding - [VM] (Propagates AVX.W if Gpq used). + kX86InstEncodingAvxVm_OptW, //!< AVX encoding - [VM] (Propagates AVX.W if GPQ used). kX86InstEncodingAvxVmi, //!< AVX encoding - [VMI]. - kX86InstEncodingAvxVmi_OptL, //!< AVX encoding - [VMI] (Propagates AVX.L if Ymm used). + kX86InstEncodingAvxVmi_OptL, //!< AVX encoding - [VMI] (Propagates AVX.L if YMM used). kX86InstEncodingAvxRvrmRvmr, //!< AVX encoding - [RVRM|RVMR]. - kX86InstEncodingAvxRvrmRvmr_OptL, //!< AVX encoding - [RVRM|RVMR] (Propagates AVX.L if Ymm used). + kX86InstEncodingAvxRvrmRvmr_OptL, //!< AVX encoding - [RVRM|RVMR] (Propagates AVX.L if YMM used). kX86InstEncodingAvxMovDQ, //!< AVX encoding - vmovd, vmovq. kX86InstEncodingAvxMovSsSd, //!< AVX encoding - vmovss, vmovsd. kX86InstEncodingAvxGather, //!< AVX encoding - gather (VSIB). - kX86InstEncodingAvxGatherEx, //!< AVX encoding - gather (VSIB), differs only in mem operand. + kX86InstEncodingAvxGatherEx, //!< AVX encoding - gather (VSIB), differs only in MEM operand. kX86InstEncodingFma4, //!< FMA4 encoding - [R, R, R/M, R/M]. - kX86InstEncodingFma4_OptL, //!< FMA4 encoding - [R, R, R/M, R/M] (Propagates AVX.L if Ymm used). + kX86InstEncodingFma4_OptL, //!< FMA4 encoding - [R, R, R/M, R/M] (Propagates AVX.L if YMM used). kX86InstEncodingXopRm, //!< XOP encoding - [RM]. - kX86InstEncodingXopRm_OptL, //!< XOP encoding - [RM] (Propagates AVX.L if Ymm used). + kX86InstEncodingXopRm_OptL, //!< XOP encoding - [RM] (Propagates AVX.L if YMM used). kX86InstEncodingXopRvmRmv, //!< XOP encoding - [RVM | RMV]. kX86InstEncodingXopRvmRmi, //!< XOP encoding - [RVM | RMI]. kX86InstEncodingXopRvmr, //!< XOP encoding - [RVMR]. - kX86InstEncodingXopRvmr_OptL, //!< XOP encoding - [RVMR] (Propagates AVX.L if Ymm used). + kX86InstEncodingXopRvmr_OptL, //!< XOP encoding - [RVMR] (Propagates AVX.L if YMM used). kX86InstEncodingXopRvmi, //!< XOP encoding - [RVMI]. - kX86InstEncodingXopRvmi_OptL, //!< XOP encoding - [RVMI] (Propagates AVX.L if Ymm used). + kX86InstEncodingXopRvmi_OptL, //!< XOP encoding - [RVMI] (Propagates AVX.L if YMM used). kX86InstEncodingXopRvrmRvmr, //!< XOP encoding - [RVRM | RVMR]. - kX86InstEncodingXopRvrmRvmr_OptL, //!< XOP encoding - [RVRM | RVMR] (Propagates AVX.L if Ymm used). + kX86InstEncodingXopRvrmRvmr_OptL, //!< XOP encoding - [RVRM | RVMR] (Propagates AVX.L if YMM used). + kX86InstEncodingXopVm_OptW, //!< XOP encoding - [VM]. _kX86InstEncodingCount //!< Count of X86 instruction encodings. }; @@ -1335,8 +1355,8 @@ ASMJIT_ENUM(X86InstEncoding) { //! part of VEX/EVEX prefix. //! //! - `L` field is used exclusively by AVX+ and AVX512+ instruction sets. It -//! describes vector size, which is 128-bit for Xmm register `L_128`, 256 -//! for Ymm register `L_256` and 512-bit for Zmm register `L_512`. The `L` +//! describes vector size, which is 128-bit for XMM register `L_128`, 256 +//! for YMM register `L_256` and 512-bit for ZMM register `L_512`. The `L` //! field is omitted in case that instruction supports multiple vector lengths, //! however, if the instruction requires specific `L` value it's specified as //! a part of the opcode. @@ -1346,18 +1366,17 @@ ASMJIT_ENUM(X86InstEncoding) { //! operation by default require to override the width to 64-bit explicitly). //! There is nothing wrong on this, however, some instructions introduced //! implicit `W` override, for example a `cdqe` instruction is basically a -//! `cwde` instructiontion with overridden `W` (set to 1). There are some -//! others in the base X86 instruction set. More recent instruction sets -//! started using `W` field more often: +//! `cwde` instruction with overridden `W` (set to 1). There are some others +//! in the base X86 instruction set. More recent instruction sets started +//! using `W` field more often: //! //! - AVX instructions started using `W` field as an extended opcode for FMA, //! GATHER, PERM, and other instructions. It also uses `W` field to override -//! the default operation width in instructions like `vmovq`. AVX `W` field -//! is +//! the default operation width in instructions like `vmovq`. //! //! - AVX-512 instructions started using `W` field as an extended opcode for //! all new instructions. This wouldn't have been an issue if the `W` field -//! of AVX-512 have matched AVX, but this is not the case. +//! of AVX-512 have matched AVX, but this is not always the case. //! //! - `O` field is an extended opcode field (3) bytes used by ModR/M BYTE. ASMJIT_ENUM(X86InstOpCodeFlags) { @@ -1399,8 +1418,8 @@ ASMJIT_ENUM(X86InstOpCodeFlags) { // // AVX/XOP can only use the first bit `L.128` or `L.256`. AVX-512 makes it // possible to use also `L.512`. - // - // \note If the instruction set manual describes an instruction by using `LIG` + + // NOTE: If the instruction set manual describes an instruction by using `LIG` // it means that the `L` field is ignored. AsmJit emits `0` in such case. kX86InstOpCode_L_Shift = 23, kX86InstOpCode_L_Mask = 0x03U << kX86InstOpCode_L_Shift, @@ -1412,14 +1431,14 @@ ASMJIT_ENUM(X86InstOpCodeFlags) { kX86InstOpCode_O_Shift = 25, kX86InstOpCode_O_Mask = 0x07U << kX86InstOpCode_O_Shift, - // `W` field used in EVEX instruction encoding. + // `W` field used by EVEX instruction encoding. kX86InstOpCode_EW_Shift = 30, kX86InstOpCode_EW_Mask = 0x01U << kX86InstOpCode_EW_Shift, kX86InstOpCode_EW = 0x01U << kX86InstOpCode_EW_Shift, - // `W` field used in REX/VEX instruction encoding. + // `W` field used by REX/VEX instruction encoding. // - // \note If the instruction set manual describes an instruction by using `WIG` + // NOTE: If the instruction set manual describes an instruction by using `WIG` // it means that the `W` field is ignored. AsmJit emits `0` in such case. kX86InstOpCode_W_Shift = 31, kX86InstOpCode_W_Mask = 0x01U << kX86InstOpCode_W_Shift, @@ -1434,45 +1453,18 @@ ASMJIT_ENUM(X86InstOpCodeFlags) { //! //! X86/X64 instruction flags. ASMJIT_ENUM(X86InstFlags) { - kX86InstFlagNone = 0x00000000, //! No flags. + kX86InstFlagNone = 0x00000000, //!< No flags. - //! Instruction is a control-flow instruction. - //! - //! Control flow instructions are jmp, jcc, call and ret. - kX86InstFlagFlow = 0x00000001, + kX86InstFlagRO = 0x00000001, //!< The first operand is read (read-only without `kX86InstFlagWO`). + kX86InstFlagWO = 0x00000002, //!< The first operand is written (write-only without `kX86InstFlagRO`). + kX86InstFlagRW = 0x00000003, //!< The first operand is read-write. - //! Instruction is a compare/test like instruction. - kX86InstFlagTest = 0x00000002, + kX86InstFlagXchg = 0x00000004, //!< Instruction is an exchange like instruction (xchg, xadd). + kX86InstFlagFlow = 0x00000008, //!< Control-flow instruction (jmp, jcc, call, ret). - //! Instruction is a move like instruction. - //! - //! Move instructions typically overwrite the first operand by the second - //! operand. The first operand can be the exact copy of the second operand - //! or it can be any kind of conversion or shuffling. - //! - //! Mov instructions are 'mov', 'movd', 'movq', movdq', 'lea', multimedia - //! instructions like 'cvtdq2pd', shuffle instructions like 'pshufb' and - //! SSE/SSE2 mathematic instructions like 'rcp?', 'round?' and 'rsqrt?'. - //! - //! There are some MOV instructions that do only a partial move (for example - //! 'cvtsi2ss'), register allocator has to know the variable size and use - //! the flag accordingly to it. - kX86InstFlagMove = 0x00000004, - - //! Instruction is an exchange like instruction. - //! - //! Exchange instruction typically overwrite first and second operand. So - //! far only the instructions 'xchg' and 'xadd' are considered. - kX86InstFlagXchg = 0x00000008, - - //! Instruction accesses Fp register(s). - kX86InstFlagFp = 0x00000010, - - //! Instruction can be prefixed by using the LOCK prefix. - kX86InstFlagLock = 0x00000020, - - //! Instruction requires special handling, used by \ref Compiler. - kX86InstFlagSpecial = 0x00000040, + kX86InstFlagFp = 0x00000010, //!< Instruction accesses FPU register(s). + kX86InstFlagLock = 0x00000020, //!< Instruction can be prefixed by using the LOCK prefix. + kX86InstFlagSpecial = 0x00000040, //!< Instruction requires special handling (implicit operands), used by \ref Compiler. //! Instruction always performs memory access. //! @@ -1481,50 +1473,30 @@ ASMJIT_ENUM(X86InstFlags) { //! and/or ESI/RSI). kX86InstFlagSpecialMem = 0x00000080, - //! Instruction memory operand can refer to 16-bit address (used by FPU). - kX86InstFlagMem2 = 0x00000100, - //! Instruction memory operand can refer to 32-bit address (used by FPU). - kX86InstFlagMem4 = 0x00000200, - //! Instruction memory operand can refer to 64-bit address (used by FPU). - kX86InstFlagMem8 = 0x00000400, - //! Instruction memory operand can refer to 80-bit address (used by FPU). - kX86InstFlagMem10 = 0x00000800, + kX86InstFlagMem2 = 0x00000100, //!< Instruction memory operand can refer to 16-bit address (used by FPU). + kX86InstFlagMem4 = 0x00000200, //!< Instruction memory operand can refer to 32-bit address (used by FPU). + kX86InstFlagMem8 = 0x00000400, //!< Instruction memory operand can refer to 64-bit address (used by FPU). + kX86InstFlagMem10 = 0x00000800, //!< Instruction memory operand can refer to 80-bit address (used by FPU). - //! Cleans the rest of the register if the source operand is memory. - //! - //! Special behavior related to some SIMD load instructions. - kX86InstFlagZ = 0x00001000, + kX86InstFlagZeroIfMem = 0x00001000, //!< Cleans the rest of destination if source is memory (movss, movsd). + kX86InstFlagVolatile = 0x00002000, //!< Hint for instruction scheduler to not reorder this instruction. - //! Instruction is supported by AVX. - kX86InstFlagAvx = 0x00010000, - //! Instruction is supported by XOP. - kX86InstFlagXop = 0x00020000, + kX86InstFlagAvx = 0x00010000, //!< AVX/AVX2 instruction. + kX86InstFlagXop = 0x00020000, //!< XOP instruction. - //! Instruction is supported by AVX-512 F (Zmm). - kX86InstFlagAvx512F = 0x00100000, - //! Instruction is supported by AVX-512 CD (Zmm). - kX86InstFlagAvx512CD = 0x00200000, - //! Instruction is supported by AVX-512 PF (Zmm). - kX86InstFlagAvx512PF = 0x00400000, - //! Instruction is supported by AVX-512 ER (Zmm). - kX86InstFlagAvx512ER = 0x00800000, - //! Instruction is supported by AVX-512 DQ (Zmm). - kX86InstFlagAvx512DQ = 0x01000000, - //! Instruction is supported by AVX-512 BW (Zmm). - kX86InstFlagAvx512BW = 0x02000000, - //! Instruction is supported by AVX-512 VL (Xmm/Ymm). - kX86InstFlagAvx512VL = 0x04000000, + kX86InstFlagAvx512F = 0x00100000, //!< Supported by AVX-512 F (ZMM). + kX86InstFlagAvx512CD = 0x00200000, //!< Supported by AVX-512 CD (ZMM). + kX86InstFlagAvx512PF = 0x00400000, //!< Supported by AVX-512 PF (ZMM). + kX86InstFlagAvx512ER = 0x00800000, //!< Supported by AVX-512 ER (ZMM). + kX86InstFlagAvx512DQ = 0x01000000, //!< Supported by AVX-512 DQ (ZMM). + kX86InstFlagAvx512BW = 0x02000000, //!< Supported by AVX-512 BW (ZMM). + kX86InstFlagAvx512VL = 0x04000000, //!< Supported by AVX-512 VL (XMM/YMM). - //! Instruction supports masking {k0..k7}. - kX86InstFlagAvx512KMask = 0x08000000, - //! Instruction supports zeroing of elements {k0z..k7z}. - kX86InstFlagAvx512KZero = 0x10000000, - //! Instruction supports broadcast {1toN}. - kX86InstFlagAvx512BCast = 0x20000000, - //! Instruction supports suppressing all exceptions {sae}. - kX86InstFlagAvx512Sae = 0x40000000, - //! Instruction supports static rounding control with SAE {rnd-sae}, - kX86InstFlagAvx512Rnd = 0x80000000 + kX86InstFlagAvx512KMask = 0x08000000, //!< Supports masking {k0..k7}. + kX86InstFlagAvx512KZero = 0x10000000, //!< Supports zeroing of elements {k0z..k7z}. + kX86InstFlagAvx512BCast = 0x20000000, //!< Supports broadcast {1..N}. + kX86InstFlagAvx512Sae = 0x40000000, //!< Supports suppressing all exceptions {sae}. + kX86InstFlagAvx512Rnd = 0x80000000 //!< Supports static rounding control & SAE {rnd-sae}, }; // ============================================================================ @@ -1535,17 +1507,17 @@ ASMJIT_ENUM(X86InstFlags) { //! //! X86/X64 instruction operand flags. ASMJIT_ENUM(X86InstOp) { - kX86InstOpGb = 0x0001, //!< Operand can be 8-bit Gpb register. - kX86InstOpGw = 0x0002, //!< Operand can be 16-bit Gpw register. - kX86InstOpGd = 0x0004, //!< Operand operand can be 32-bit Gpd register. - kX86InstOpGq = 0x0008, //!< Operand can be 64-bit Gpq register. - kX86InstOpFp = 0x0010, //!< Operand can be Fp register. - kX86InstOpMm = 0x0020, //!< Operand can be 64-bit Mm register. + kX86InstOpGb = 0x0001, //!< Operand can be 8-bit GPB register. + kX86InstOpGw = 0x0002, //!< Operand can be 16-bit GPW register. + kX86InstOpGd = 0x0004, //!< Operand operand can be 32-bit GPD register. + kX86InstOpGq = 0x0008, //!< Operand can be 64-bit GPQ register. + kX86InstOpFp = 0x0010, //!< Operand can be FPU register. + kX86InstOpMm = 0x0020, //!< Operand can be 64-bit MMX register. kX86InstOpK = 0x0040, //!< Operand can be 64-bit K register. - kX86InstOpXmm = 0x0100, //!< Operand can be 128-bit Xmm register. - kX86InstOpYmm = 0x0200, //!< Operand can be 256-bit Ymm register. - kX86InstOpZmm = 0x0400, //!< Operand can be 512-bit Zmm register. + kX86InstOpXmm = 0x0100, //!< Operand can be 128-bit XMM register. + kX86InstOpYmm = 0x0200, //!< Operand can be 256-bit YMM register. + kX86InstOpZmm = 0x0400, //!< Operand can be 512-bit ZMM register. kX86InstOpMem = 0x1000, //!< Operand can be memory. kX86InstOpImm = 0x2000, //!< Operand can be immediate. @@ -1553,7 +1525,7 @@ ASMJIT_ENUM(X86InstOp) { //! Instruction operand doesn't have to be used. //! - //! \note If no operand is specified the meaning is clear (the operand at the + //! NOTE: If no operand is specified the meaning is clear (the operand at the //! particular index doesn't exist), however, when one or more operand is //! specified, it's not clear whether the operand can be omitted or not. When //! `kX86InstOpNone` is used it means that the operand is not used in some @@ -1625,7 +1597,7 @@ ASMJIT_ENUM(X86Cond) { kX86CondNegative = kX86CondS, kX86CondPositive = kX86CondNS, - // Fpu-only. + // FPU-only. kX86CondFpuUnordered = 0x10, kX86CondFpuNotUnordered = 0x11, @@ -1644,10 +1616,10 @@ ASMJIT_ENUM(X86Cond) { //! instruction reordering, but can be used by third parties as it's part of //! AsmJit API. //! -//! \note Flags defined here don't correspond to real flags used by X86/X64 +//! NOTE: Flags defined here don't correspond to real flags used by X86/X64 //! architecture, defined in Intel's Manual Section `3.4.3 - EFLAGS Register`. //! -//! \note Flags are designed to fit in an 8-bit integer. +//! NOTE: Flags are designed to fit in an 8-bit integer. ASMJIT_ENUM(X86EFlags) { // -------------------------------------------------------------------------- // src-gendefs.js relies on the values of these masks, the tool has to be @@ -1831,67 +1803,64 @@ struct X86InstExtendedInfo { // -------------------------------------------------------------------------- //! Get whether the instruction has a `flag`, see `X86InstFlags`. - ASMJIT_INLINE bool hasInstFlag(uint32_t flag) const noexcept { + ASMJIT_INLINE bool hasFlag(uint32_t flag) const noexcept { return (_instFlags & flag) != 0; } //! Get all instruction flags, see `X86InstFlags`. - ASMJIT_INLINE uint32_t getInstFlags() const noexcept { + ASMJIT_INLINE uint32_t getFlags() const noexcept { return _instFlags; } + //! Get if the first operand is read-only. + ASMJIT_INLINE bool isRO() const noexcept { + return (getFlags() & kX86InstFlagRW) == kX86InstFlagRO; + } + + //! Get if the first operand is write-only. + ASMJIT_INLINE bool isWO() const noexcept { + return (getFlags() & kX86InstFlagRW) == kX86InstFlagWO; + } + + //! Get if the first operand is read-write. + ASMJIT_INLINE bool isRW() const noexcept { + return (getFlags() & kX86InstFlagRW) == kX86InstFlagRW; + } + + //! Get whether the instruction is a typical Exchange instruction. + //! + //! Exchange instructions are 'xchg' and 'xadd'. + ASMJIT_INLINE bool isXchg() const noexcept { + return hasFlag(kX86InstFlagXchg); + } + //! Get whether the instruction is a control-flow instruction. //! //! Control flow instruction is instruction that can perform a branch, //! typically `jmp`, `jcc`, `call`, or `ret`. ASMJIT_INLINE bool isFlow() const noexcept { - return (getInstFlags() & kX86InstFlagFlow) != 0; - } - - //! Get whether the instruction is a compare/test like instruction. - ASMJIT_INLINE bool isTest() const noexcept { - return (getInstFlags() & kX86InstFlagTest) != 0; - } - - //! Get whether the instruction is a typical move instruction. - //! - //! Move instructions overwrite the first operand or at least part of it, - //! This is a very useful hint that is used by variable liveness analysis - //! and `Compiler` in general to know which variable is completely - //! overwritten. - //! - //! All AVX/XOP instructions that have 3 or more operands are considered to - //! have move semantics move by default. - ASMJIT_INLINE bool isMove() const noexcept { - return (getInstFlags() & kX86InstFlagMove) != 0; - } - - //! Get whether the instruction is a typical Exchange instruction. - //! - //! Exchange instructions are 'xchg' and 'xadd'. - ASMJIT_INLINE bool isXchg() const noexcept { - return (getInstFlags() & kX86InstFlagXchg) != 0; + return hasFlag(kX86InstFlagFlow); } //! Get whether the instruction accesses Fp register(s). ASMJIT_INLINE bool isFp() const noexcept { - return (getInstFlags() & kX86InstFlagFp) != 0; + return hasFlag(kX86InstFlagFp); } //! Get whether the instruction can be prefixed by LOCK prefix. ASMJIT_INLINE bool isLockable() const noexcept { - return (getInstFlags() & kX86InstFlagLock) != 0; + return hasFlag(kX86InstFlagLock); } //! Get whether the instruction is special type (this is used by `Compiler` //! to manage additional variables or functionality). ASMJIT_INLINE bool isSpecial() const noexcept { - return (getInstFlags() & kX86InstFlagSpecial) != 0; + return hasFlag(kX86InstFlagSpecial); } //! Get whether the instruction is special type and it performs memory access. ASMJIT_INLINE bool isSpecialMem() const noexcept { - return (getInstFlags() & kX86InstFlagSpecialMem) != 0; + return hasFlag(kX86InstFlagSpecialMem); } //! Get whether the move instruction zeroes the rest of the register @@ -1899,7 +1868,7 @@ struct X86InstExtendedInfo { //! //! Basically flag needed only to support `movsd` and `movss` instructions. ASMJIT_INLINE bool isZeroIfMem() const noexcept { - return (getInstFlags() & kX86InstFlagZ) != 0; + return hasFlag(kX86InstFlagZeroIfMem); } // -------------------------------------------------------------------------- @@ -1960,20 +1929,20 @@ struct X86InstExtendedInfo { //! Instruction encoding. uint8_t _encoding; - //! Destination index of WRITE operation, default 0. + //! Destination byte of WRITE operation, default 0. uint8_t _writeIndex; //! Count of bytes affected by a write operation, needed by analysis for all //! instructions that do not read the overwritten register. Only used with - //! `kX86InstFlagMove` flag. If `_writeSize` is zero it is automatically - //! deduced from the size of the destination register. + //! `kX86InstFlagWO` flag. If `_writeSize` is zero it is automatically deduced + //! from the size of the destination register. //! //! In general most of SSE write-only instructions should use 16 bytes as - //! this is the size of the register (and of Ymm/Zmm registers). This means + //! this is the size of the register (and of YMM/ZMM registers). This means //! that 16-bytes of the register are changed, the rest remains unchanged. - //! However, AVX instructions should use the size of Zmm register as every + //! However, AVX instructions should use the size of ZMM register as every //! AVX instruction clears the rest of the register (AVX/AVX2 instructions - //! zero the HI part of Zmm if available). + //! zero the HI part of ZMM if available). uint8_t _writeSize; //! EFlags read by the instruction. @@ -2000,22 +1969,6 @@ struct X86InstExtendedInfo { //! X86/X64 instruction information. struct X86InstInfo { - // -------------------------------------------------------------------------- - // [Accessors - Instruction Name] - // -------------------------------------------------------------------------- - -#if !defined(ASMJIT_DISABLE_TEXT) - //! Get instruction name string (null terminated). - ASMJIT_INLINE const char* getInstName() const noexcept { - return _x86InstName + static_cast(_nameIndex); - } - - //! Get instruction name index to `_x86InstName` array. - ASMJIT_INLINE uint32_t _getNameIndex() const noexcept { - return _nameIndex; - } -#endif // !ASMJIT_DISABLE_TEXT - // -------------------------------------------------------------------------- // [Accessors - Extended-Info] // -------------------------------------------------------------------------- @@ -2043,14 +1996,14 @@ struct X86InstInfo { // [Accessors - Instruction Flags] // -------------------------------------------------------------------------- - //! Get instruction flags, see `X86InstFlags`. - ASMJIT_INLINE uint32_t getInstFlags() const noexcept { - return getExtendedInfo().getInstFlags(); + //! Get whether the instruction has flag `flag`, see `X86InstFlags`. + ASMJIT_INLINE bool hasFlag(uint32_t flag) const noexcept { + return (getFlags() & flag) != 0; } - //! Get whether the instruction has flag `flag`, see `X86InstFlags`. - ASMJIT_INLINE bool hasInstFlag(uint32_t flag) const noexcept { - return (getInstFlags() & flag) != 0; + //! Get instruction flags, see `X86InstFlags`. + ASMJIT_INLINE uint32_t getFlags() const noexcept { + return getExtendedInfo().getFlags(); } // -------------------------------------------------------------------------- @@ -2108,8 +2061,8 @@ struct X86InstInfo { // [Members] // -------------------------------------------------------------------------- - //! Instruction name index in `_x86InstName[]` array. - uint16_t _nameIndex; + //! \internal + uint16_t _reserved; //! Extended information name index in `_x86InstExtendedInfo[]` array. uint16_t _extendedIndex; @@ -2123,18 +2076,9 @@ struct X86InstInfo { struct X86Util { // -------------------------------------------------------------------------- - // [Instruction Info] + // [Instruction Id <-> Name] // -------------------------------------------------------------------------- - //! Get instruction information based on `instId`. - //! - //! \note `instId` has to be valid instruction ID, it can't be greater than - //! or equal to `_kX86InstIdCount`. It asserts in debug mode. - static ASMJIT_INLINE const X86InstInfo& getInstInfo(uint32_t instId) noexcept { - ASMJIT_ASSERT(instId < _kX86InstIdCount); - return _x86InstInfo[instId]; - } - #if !defined(ASMJIT_DISABLE_TEXT) //! Get an instruction ID from a given instruction `name`. //! @@ -2143,8 +2087,24 @@ struct X86Util { //! //! The given `name` doesn't have to be null-terminated if `len` is provided. ASMJIT_API static uint32_t getInstIdByName(const char* name, size_t len = kInvalidIndex) noexcept; + + //! Get an instruction name from a given instruction `id`. + ASMJIT_API static const char* getInstNameById(uint32_t id) noexcept; #endif // !ASMJIT_DISABLE_TEXT + // -------------------------------------------------------------------------- + // [Instruction Info] + // -------------------------------------------------------------------------- + + //! Get instruction information based on `instId`. + //! + //! NOTE: `instId` has to be valid instruction ID, it can't be greater than + //! or equal to `_kX86InstIdCount`. It asserts in debug mode. + static ASMJIT_INLINE const X86InstInfo& getInstInfo(uint32_t instId) noexcept { + ASMJIT_ASSERT(instId < _kX86InstIdCount); + return _x86InstInfo[instId]; + } + // -------------------------------------------------------------------------- // [Condition Codes] // -------------------------------------------------------------------------- diff --git a/src/asmjit/x86/x86operand.h b/src/asmjit/x86/x86operand.h index d2e7e69..249b6b8 100644 --- a/src/asmjit/x86/x86operand.h +++ b/src/asmjit/x86/x86operand.h @@ -71,7 +71,7 @@ ASMJIT_ENUM(X86RegClass) { kX86RegClassMm = 1, //! X86/X64 K register class. kX86RegClassK = 2, - //! X86/X64 Xmm/Ymm/Zmm register class. + //! X86/X64 XMM/YMM/ZMM register class. kX86RegClassXyz = 3, //! \internal @@ -96,36 +96,36 @@ ASMJIT_ENUM(X86RegClass) { //! X86/X64 register type. ASMJIT_ENUM(X86RegType) { - //! Gpb-lo register (AL, BL, CL, DL, ...). + //! Low GPB register (AL, BL, CL, DL, ...). kX86RegTypeGpbLo = 0x01, - //! Gpb-hi register (AH, BH, CH, DH only). + //! High GPB register (AH, BH, CH, DH only). kX86RegTypeGpbHi = 0x02, //! \internal //! - //! Gpb-hi register patched to native index (4-7). + //! High GPB register patched to a native index (4-7). _kX86RegTypePatchedGpbHi = kX86RegTypeGpbLo | kX86RegTypeGpbHi, - //! Gpw register. + //! GPW register. kX86RegTypeGpw = 0x10, - //! Gpd register. + //! GPD register. kX86RegTypeGpd = 0x20, - //! Gpq register (X64). + //! GPQ register (X64). kX86RegTypeGpq = 0x30, - //! Fp register. + //! FPU register. kX86RegTypeFp = 0x40, - //! Mm register (MMX+). + //! MMX register (MMX+). kX86RegTypeMm = 0x50, //! K register (AVX512+). kX86RegTypeK = 0x60, - //! Xmm register (SSE+). + //! XMM register (SSE+). kX86RegTypeXmm = 0x70, - //! Ymm register (AVX+). + //! YMM register (AVX+). kX86RegTypeYmm = 0x80, - //! Zmm register (AVX512+). + //! ZMM register (AVX512+). kX86RegTypeZmm = 0x90, //! Instruction pointer (RIP). @@ -140,7 +140,7 @@ ASMJIT_ENUM(X86RegType) { //! X86/X64 register indexes. //! -//! \note Register indexes have been reduced to only support general purpose +//! NOTE: Register indexes have been reduced to only support general purpose //! registers. There is no need to have enumerations with number suffix that //! expands to the exactly same value as the suffix value itself. ASMJIT_ENUM(X86RegIndex) { @@ -201,7 +201,7 @@ ASMJIT_ENUM(X86Seg) { //! Count of X86 segment registers supported by AsmJit. //! - //! \note X86 architecture has 6 segment registers - ES, CS, SS, DS, FS, GS. + //! NOTE: X86 architecture has 6 segment registers - ES, CS, SS, DS, FS, GS. //! X64 architecture lowers them down to just FS and GS. AsmJit supports 7 //! segment registers - all addressable in both X86 and X64 modes and one //! extra called `kX86SegDefault`, which is AsmJit specific and means that there @@ -215,13 +215,13 @@ ASMJIT_ENUM(X86Seg) { //! X86/X64 index register legacy and AVX2 (VSIB) support. ASMJIT_ENUM(X86MemVSib) { - //! Memory operand uses Gpd/Gpq index (or no index register). + //! Memory operand uses GPD/GPQ index (or no index register). kX86MemVSibGpz = 0, - //! Memory operand uses Xmm index (or no index register). + //! Memory operand uses XMM index (or no index register). kX86MemVSibXmm = 1, - //! Memory operand uses Ymm index (or no index register). + //! Memory operand uses YMM index (or no index register). kX86MemVSibYmm = 2, - //! Memory operand uses Zmm index (or no index register). + //! Memory operand uses ZMM index (or no index register). kX86MemVSibZmm = 3 }; @@ -256,40 +256,40 @@ ASMJIT_ENUM(X86MemFlags) { //! X86/X64 variable type. ASMJIT_ENUM(X86VarType) { - //! Variable is SP-FP (x87). + //! Variable is SP-FP (FPU). kX86VarTypeFp32 = kVarTypeFp32, - //! Variable is DP-FP (x87). + //! Variable is DP-FP (FPU). kX86VarTypeFp64 = kVarTypeFp64, - //! Variable is Mm (MMX). + //! Variable is MMX (MMX). kX86VarTypeMm = 12, //! Variable is K (AVX512+) kX86VarTypeK, - //! Variable is Xmm (SSE+). + //! Variable is XMM (SSE+). kX86VarTypeXmm, - //! Variable is a scalar Xmm SP-FP number. + //! Variable is a scalar XMM SP-FP number. kX86VarTypeXmmSs, - //! Variable is a packed Xmm SP-FP number (4 floats). + //! Variable is a packed XMM SP-FP number (4 floats). kX86VarTypeXmmPs, - //! Variable is a scalar Xmm DP-FP number. + //! Variable is a scalar XMM DP-FP number. kX86VarTypeXmmSd, - //! Variable is a packed Xmm DP-FP number (2 doubles). + //! Variable is a packed XMM DP-FP number (2 doubles). kX86VarTypeXmmPd, - //! Variable is Ymm (AVX+). + //! Variable is YMM (AVX+). kX86VarTypeYmm, - //! Variable is a packed Ymm SP-FP number (8 floats). + //! Variable is a packed YMM SP-FP number (8 floats). kX86VarTypeYmmPs, - //! Variable is a packed Ymm DP-FP number (4 doubles). + //! Variable is a packed YMM DP-FP number (4 doubles). kX86VarTypeYmmPd, - //! Variable is Zmm (AVX512+). + //! Variable is ZMM (AVX512+). kX86VarTypeZmm, - //! Variable is a packed Zmm SP-FP number (16 floats). + //! Variable is a packed ZMM SP-FP number (16 floats). kX86VarTypeZmmPs, - //! Variable is a packed Zmm DP-FP number (8 doubles). + //! Variable is a packed ZMM DP-FP number (8 doubles). kX86VarTypeZmmPd, //! Count of variable types. @@ -323,15 +323,15 @@ ASMJIT_ENUM(X86VarType) { //! class is used by `X86Assembler` and `X86Compiler` to provide a way to get //! number of available registers dynamically. 32-bit mode offers always only //! 8 registers of all classes, however, 64-bit mode offers 16 Gp registers and -//! 16 Xmm/Ymm/Zmm registers. AVX512 instruction set doubles the number of SIMD -//! registers (Xmm/Ymm/Zmm) to 32, this mode has to be explicitly enabled to +//! 16 XMM/YMM/ZMM registers. AVX512 instruction set doubles the number of SIMD +//! registers (XMM/YMM/ZMM) to 32, this mode has to be explicitly enabled to //! take effect as it changes some assumptions. //! //! `X86RegCount` is also used extensively by `X86Compiler`'s register allocator //! and data structures. Fp registers were omitted as they are never mapped to //! variables, thus, not needed to be managed. //! -//! \note At the moment `X86RegCount` can fit into 32-bits, having 8-bits for +//! NOTE: At the moment `X86RegCount` can fit into 32-bits, having 8-bits for //! each register class except `fp`. This can change in the future after a //! new instruction set, which adds more registers, is introduced. struct X86RegCount { @@ -360,7 +360,7 @@ struct X86RegCount { ASMJIT_INLINE uint32_t getMm() const noexcept { return get(kX86RegClassMm); } //! Get K count. ASMJIT_INLINE uint32_t getK() const noexcept { return get(kX86RegClassK); } - //! Get Xmm/Ymm/Zmm count. + //! Get XMM/YMM/ZMM count. ASMJIT_INLINE uint32_t getXyz() const noexcept { return get(kX86RegClassXyz); } // -------------------------------------------------------------------------- @@ -382,7 +382,7 @@ struct X86RegCount { ASMJIT_INLINE void setMm(uint32_t n) noexcept { set(kX86RegClassMm, n); } //! Set K count. ASMJIT_INLINE void setK(uint32_t n) noexcept { set(kX86RegClassK, n); } - //! Set Xmm/Ymm/Zmm count. + //! Set XMM/YMM/ZMM count. ASMJIT_INLINE void setXyz(uint32_t n) noexcept { set(kX86RegClassXyz, n); } // -------------------------------------------------------------------------- @@ -398,13 +398,13 @@ struct X86RegCount { _packed += n << shift; } - //! Add Gp count. + //! Add GP count. ASMJIT_INLINE void addGp(uint32_t n) noexcept { add(kX86RegClassGp, n); } - //! Add Mm count. + //! Add MMX count. ASMJIT_INLINE void addMm(uint32_t n) noexcept { add(kX86RegClassMm, n); } //! Add K count. ASMJIT_INLINE void addK(uint32_t n) noexcept { add(kX86RegClassK, n); } - //! Add Xmm/Ymm/Zmm count. + //! Add XMM/YMM/ZMM count. ASMJIT_INLINE void addXyz(uint32_t n) noexcept { add(kX86RegClassXyz, n); } // -------------------------------------------------------------------------- @@ -428,13 +428,13 @@ struct X86RegCount { union { struct { - //! Count of Gp registers. + //! Count of GP registers. uint8_t _gp; - //! Count of Mm registers. + //! Count of MMX registers. uint8_t _mm; //! Count of K registers. uint8_t _k; - //! Count of Xmm/Ymm/Zmm registers. + //! Count of XMM/YMM/ZMM registers. uint8_t _xyz; }; @@ -654,13 +654,13 @@ struct X86RegMask { union { struct { - //! Gp registers mask (16 bits). + //! GP registers mask (16 bits). uint16_t _gp; - //! Mm registers mask (8 bits). + //! MMX registers mask (8 bits). uint8_t _mm; //! K registers mask (8 bits). uint8_t _k; - //! Xmm/Ymm/Zmm registers mask (32 bits). + //! XMM/YMM/ZMM registers mask (32 bits). uint32_t _xyz; }; @@ -720,46 +720,46 @@ class X86Reg : public Reg { ASMJIT_REG_OP(X86Reg) - //! Get whether the register is Gp register. + //! Get whether the register is a GP register (any size). ASMJIT_INLINE bool isGp() const noexcept { return _vreg.type <= kX86RegTypeGpq; } - //! Get whether the register is Gp byte (8-bit) register. + //! Get whether the register is a GPB register (8-bit). ASMJIT_INLINE bool isGpb() const noexcept { return _vreg.type <= _kX86RegTypePatchedGpbHi; } - //! Get whether the register is Gp lo-byte (8-bit) register. + //! Get whether the register is a low GPB register (8-bit). ASMJIT_INLINE bool isGpbLo() const noexcept { return _vreg.type == kX86RegTypeGpbLo; } - //! Get whether the register is Gp hi-byte (8-bit) register. + //! Get whether the register is a high GPB register (8-bit). ASMJIT_INLINE bool isGpbHi() const noexcept { return _vreg.type == kX86RegTypeGpbHi; } - //! Get whether the register is Gp word (16-bit) register. + //! Get whether the register is a GPW register (16-bit). ASMJIT_INLINE bool isGpw() const noexcept { return _vreg.type == kX86RegTypeGpw; } - //! Get whether the register is Gp dword (32-bit) register. + //! Get whether the register is a GPD register (32-bit). ASMJIT_INLINE bool isGpd() const noexcept { return _vreg.type == kX86RegTypeGpd; } - //! Get whether the register is Gp qword (64-bit) register. + //! Get whether the register is a GPQ register (64-bit). ASMJIT_INLINE bool isGpq() const noexcept { return _vreg.type == kX86RegTypeGpq; } - //! Get whether the register is Fp register. + //! Get whether the register is an FPU register (80-bit). ASMJIT_INLINE bool isFp() const noexcept { return _vreg.type == kX86RegTypeFp; } - //! Get whether the register is Mm (64-bit) register. + //! Get whether the register is an MMX register (64-bit). ASMJIT_INLINE bool isMm() const noexcept { return _vreg.type == kX86RegTypeMm; } - //! Get whether the register is K (64-bit) register. + //! Get whether the register is a K register (64-bit). ASMJIT_INLINE bool isK() const noexcept { return _vreg.type == kX86RegTypeK; } - //! Get whether the register is Xmm (128-bit) register. + //! Get whether the register is an XMM register (128-bit). ASMJIT_INLINE bool isXmm() const noexcept { return _vreg.type == kX86RegTypeXmm; } - //! Get whether the register is Ymm (256-bit) register. + //! Get whether the register is a YMM register (256-bit). ASMJIT_INLINE bool isYmm() const noexcept { return _vreg.type == kX86RegTypeYmm; } - //! Get whether the register is Zmm (512-bit) register. + //! Get whether the register is a ZMM register (512-bit). ASMJIT_INLINE bool isZmm() const noexcept { return _vreg.type == kX86RegTypeZmm; } //! Get whether the register is RIP. ASMJIT_INLINE bool isRip() const noexcept { return _vreg.type == kX86RegTypeRip; } - //! Get whether the register is Segment. + //! Get whether the register is a segment register. ASMJIT_INLINE bool isSeg() const noexcept { return _vreg.type == kX86RegTypeSeg; } // -------------------------------------------------------------------------- // [Statics] // -------------------------------------------------------------------------- - //! Get whether the `op` operand is Gpb-Lo or Gpb-Hi register. + //! Get whether the `op` operand is low or high GPB register. static ASMJIT_INLINE bool isGpbReg(const Operand& op) noexcept { const uint32_t mask = Utils::pack32_2x8_1x16( 0xFF, 0xFF, ~(_kX86RegTypePatchedGpbHi << 8) & 0xFF00); @@ -826,7 +826,7 @@ class X86SegReg : public X86Reg { // [asmjit::X86GpReg] // ============================================================================ -//! X86/X64 Gpb/Gpw/Gpd/Gpq register. +//! X86/X64 general purpose register (GPB, GPW, GPD, GPQ). class X86GpReg : public X86Reg { public: // -------------------------------------------------------------------------- @@ -923,9 +923,9 @@ class X86FpReg : public X86Reg { //! //! MMX Register //! +-----------------------+ -//! | QWord | +//! | QWORD | //! +-----------+-----------+ -//! | HI-DWord | LO-DWord | +//! | HI-DWORD | LO-DWORD | //! +-----------+-----------+ //! | W3 | W2 | W1 | W0 | //! +--+--+--+--+--+--+--+--+ @@ -935,8 +935,8 @@ class X86FpReg : public X86Reg { //! //! Move instruction semantics: //! -//! - `movd` - writes 4-bytes in `LO-DWord` and zeroes `HI-DWord`. -//! - `movq` - writes 8-bytes in `QWord`. +//! - `movd` - writes 4-bytes in low DWORD and clears high DWORD. +//! - `movq` - writes 8-bytes in `QWORD`. class X86MmReg : public X86Reg { public: // -------------------------------------------------------------------------- @@ -994,7 +994,7 @@ class X86KReg : public X86Reg { // [asmjit::X86XmmReg] // ============================================================================ -//! X86/X64 128-bit Xmm register (SSE+). +//! X86/X64 128-bit XMM register (SSE+). //! //! Structure of XMM register and it's memory mapping: //! @@ -1006,9 +1006,9 @@ class X86KReg : public X86Reg { //! //! XMM Register //! +-----------------------------------------------+ -//! | OWord | +//! | DQWORD | //! +-----------------------+-----------------------+ -//! | HI-QWord/PD | LO-QWord/SD | +//! | HI-QWORD/PD | LO-QWORD/SD | //! +-----------+-----------+-----------+-----------+ //! | D3/PS | D2/PS | D1/PS | D0/SS | //! +-----------+-----------+-----------+-----------+ @@ -1020,13 +1020,13 @@ class X86KReg : public X86Reg { //! //! Move instruction semantics: //! -//! - `movd` - writes 4-bytes in `D0` and zeroes the rest. -//! - `movq` - writes 8-bytes in `Lo-QWord` and zeroes the rest. -//! - `movq2dq` - writes 8 bytes in `Lo-QWord` and zeroes the rest. +//! - `movd` - writes 4-bytes in `D0` and clears the rest. +//! - `movq` - writes 8-bytes in low QWORD and clears the rest. +//! - `movq2dq` - writes 8 bytes in low QWORD and clears the rest. //! //! - `movss` - writes 4-bytes in `D0` //! (the rest is zeroed only if the source operand is a memory location). -//! - `movsd` - writes 8-bytes in `Lo-QWord` +//! - `movsd` - writes 8-bytes in low QWORD //! (the rest is zeroed only if the source operand is a memory location). //! //! - `movaps`, @@ -1035,34 +1035,34 @@ class X86KReg : public X86Reg { //! `movupd`, //! `movdqu`, //! `movdqa`, -//! `lddqu` - writes 16-bytes in `OWord`. +//! `lddqu` - writes 16-bytes in DQWORD. //! //! - `movlps`, //! `movlpd`, -//! `movhlps` - writes 8-bytes in `Lo-QWord` and keeps the rest untouched. +//! `movhlps` - writes 8-bytes in low QWORD and keeps the rest untouched. //! //! - `movhps`, //! `movhpd`, -//! `movlhps` - writes 8-bytes in `Hi-QWord` and keeps the rest untouched. +//! `movlhps` - writes 8-bytes in high QWORD and keeps the rest untouched. //! //! - `movddup`, //! - `movsldup`, -//! - `movshdup` - writes 16 bytes in `OWord`. +//! - `movshdup` - writes 16 bytes in DQWORD. class X86XmmReg : public X86Reg { public: // -------------------------------------------------------------------------- // [Construction / Destruction] // -------------------------------------------------------------------------- - //! Create a dummy Xmm register. + //! Create a dummy XMM register. ASMJIT_INLINE X86XmmReg() noexcept : X86Reg() {} - //! Create a reference to `other` Xmm register. + //! Create a reference to `other` XMM register. ASMJIT_INLINE X86XmmReg(const X86XmmReg& other) noexcept : X86Reg(other) {} - //! Create a reference to `other` Xmm register and change the index to `index`. + //! Create a reference to `other` XMM register and change the index to `index`. ASMJIT_INLINE X86XmmReg(const X86XmmReg& other, uint32_t index) noexcept : X86Reg(other, index) {} - //! Create a custom Xmm register. + //! Create a custom XMM register. ASMJIT_INLINE X86XmmReg(uint32_t type, uint32_t index, uint32_t size) noexcept : X86Reg(type, index, size) {} - //! Create non-initialized Xmm register. + //! Create non-initialized XMM register. explicit ASMJIT_INLINE X86XmmReg(const _NoInit&) noexcept : X86Reg(NoInit) {} // -------------------------------------------------------------------------- @@ -1075,11 +1075,11 @@ class X86XmmReg : public X86Reg { // [X86XmmReg Cast] // -------------------------------------------------------------------------- - //! Cast this register to Xmm (clone). + //! Cast this register to XMM (clone). ASMJIT_INLINE X86XmmReg xmm() const noexcept { return X86XmmReg(kX86RegTypeXmm, getRegIndex(), 16); } - //! Cast this register to Ymm. + //! Cast this register to YMM. ASMJIT_INLINE X86YmmReg ymm() const noexcept; - //! Cast this register to Zmm. + //! Cast this register to ZMM. ASMJIT_INLINE X86ZmmReg zmm() const noexcept; }; @@ -1087,7 +1087,7 @@ class X86XmmReg : public X86Reg { // [asmjit::X86YmmReg] // ============================================================================ -//! X86/X64 256-bit Ymm register (AVX+). +//! X86/X64 256-bit YMM register (AVX+). //! //! Structure of YMM register and it's memory mapping: //! @@ -1099,7 +1099,7 @@ class X86XmmReg : public X86Reg { //! //! YMM Register //! +-----------------------------------------------+-----------------------------------------------+ -//! | HI-DQWord | LO-DQWord | +//! | HI-DQWORD | LO-DQWORD | //! +-----------------------+-----------------------+-----------------------+-----------------------+ //! | Q3/PD | Q2/PD | Q1/PD | Q0/SD | //! +-----------+-----------+-----------+-----------+-----------+-----------+-----------+-----------+ @@ -1116,15 +1116,15 @@ class X86YmmReg : public X86Reg { // [Construction / Destruction] // -------------------------------------------------------------------------- - //! Create a dummy Ymm register. + //! Create a dummy YMM register. ASMJIT_INLINE X86YmmReg() noexcept : X86Reg() {} - //! Create a reference to `other` Ymm register. + //! Create a reference to `other` YMM register. ASMJIT_INLINE X86YmmReg(const X86YmmReg& other) noexcept : X86Reg(other) {} - //! Create a reference to `other` Ymm register and change the index to `index`. + //! Create a reference to `other` YMM register and change the index to `index`. ASMJIT_INLINE X86YmmReg(const X86YmmReg& other, uint32_t index) noexcept : X86Reg(other, index) {} - //! Create a custom Ymm register. + //! Create a custom YMM register. ASMJIT_INLINE X86YmmReg(uint32_t type, uint32_t index, uint32_t size) noexcept : X86Reg(type, index, size) {} - //! Create non-initialized Ymm register. + //! Create non-initialized YMM register. explicit ASMJIT_INLINE X86YmmReg(const _NoInit&) noexcept : X86Reg(NoInit) {} // -------------------------------------------------------------------------- @@ -1137,11 +1137,11 @@ class X86YmmReg : public X86Reg { // [X86YmmReg Cast] // -------------------------------------------------------------------------- - //! Cast this register to Xmm. + //! Cast this register to XMM. ASMJIT_INLINE X86XmmReg xmm() const noexcept{ return X86XmmReg(kX86RegTypeXmm, getRegIndex(), 16); } - //! Cast this register to Ymm (clone). + //! Cast this register to YMM (clone). ASMJIT_INLINE X86YmmReg ymm() const noexcept { return X86YmmReg(kX86RegTypeYmm, getRegIndex(), 32); } - //! Cast this register to Zmm. + //! Cast this register to ZMM. ASMJIT_INLINE X86ZmmReg zmm() const noexcept; }; @@ -1151,22 +1151,22 @@ ASMJIT_INLINE X86YmmReg X86XmmReg::ymm() const noexcept { return X86YmmReg(kX86R // [asmjit::X86ZmmReg] // ============================================================================ -//! X86/X64 512-bit Zmm register (AVX512+). +//! X86/X64 512-bit ZMM register (AVX512+). class X86ZmmReg : public X86Reg { public: // -------------------------------------------------------------------------- // [Construction / Destruction] // -------------------------------------------------------------------------- - //! Create a dummy Zmm register. + //! Create a dummy ZMM register. ASMJIT_INLINE X86ZmmReg() noexcept : X86Reg() {} - //! Create a reference to `other` Zmm register. + //! Create a reference to `other` ZMM register. ASMJIT_INLINE X86ZmmReg(const X86ZmmReg& other) noexcept : X86Reg(other) {} - //! Create a reference to `other` Zmm register and change the index to `index`. + //! Create a reference to `other` ZMM register and change the index to `index`. ASMJIT_INLINE X86ZmmReg(const X86ZmmReg& other, uint32_t index) noexcept : X86Reg(other, index) {} - //! Create a custom Zmm register. + //! Create a custom ZMM register. ASMJIT_INLINE X86ZmmReg(uint32_t type, uint32_t index, uint32_t size) noexcept : X86Reg(type, index, size) {} - //! Create non-initialized Zmm register. + //! Create non-initialized ZMM register. explicit ASMJIT_INLINE X86ZmmReg(const _NoInit&) noexcept : X86Reg(NoInit) {} // -------------------------------------------------------------------------- @@ -1179,11 +1179,11 @@ class X86ZmmReg : public X86Reg { // [X86ZmmReg Cast] // -------------------------------------------------------------------------- - //! Cast this register to Xmm. + //! Cast this register to XMM. ASMJIT_INLINE X86XmmReg xmm() const noexcept { return X86XmmReg(kX86RegTypeXmm, getRegIndex(), 16); } - //! Cast this register to Ymm. + //! Cast this register to YMM. ASMJIT_INLINE X86YmmReg ymm() const noexcept { return X86YmmReg(kX86RegTypeYmm, getRegIndex(), 32); } - //! Cast this register to Zmm (clone). + //! Cast this register to ZMM (clone). ASMJIT_INLINE X86ZmmReg zmm() const noexcept { return X86ZmmReg(kX86RegTypeZmm, getRegIndex(), 64); } }; @@ -1689,31 +1689,31 @@ class X86Var : public Var { //! Get variable type. ASMJIT_INLINE uint32_t getVarType() const noexcept { return _vreg.vType; } - //! Get whether the variable is Gp register. + //! Get whether the variable is a general purpose register. ASMJIT_INLINE bool isGp() const noexcept { return _vreg.type <= kX86RegTypeGpq; } - //! Get whether the variable is Gpb (8-bit) register. + //! Get whether the variable is a GPB (8-bit) register. ASMJIT_INLINE bool isGpb() const noexcept { return _vreg.type <= kX86RegTypeGpbHi; } - //! Get whether the variable is Gpb-lo (8-bit) register. + //! Get whether the variable is a low GPB (8-bit) register. ASMJIT_INLINE bool isGpbLo() const noexcept { return _vreg.type == kX86RegTypeGpbLo; } - //! Get whether the variable is Gpb-hi (8-bit) register. + //! Get whether the variable is a high GPB (8-bit) register. ASMJIT_INLINE bool isGpbHi() const noexcept { return _vreg.type == kX86RegTypeGpbHi; } - //! Get whether the variable is Gpw (16-bit) register. + //! Get whether the variable is a GPW (16-bit) register. ASMJIT_INLINE bool isGpw() const noexcept { return _vreg.type == kX86RegTypeGpw; } - //! Get whether the variable is Gpd (32-bit) register. + //! Get whether the variable is a GPD (32-bit) register. ASMJIT_INLINE bool isGpd() const noexcept { return _vreg.type == kX86RegTypeGpd; } - //! Get whether the variable is Gpq (64-bit) register. + //! Get whether the variable is a GPQ (64-bit) register. ASMJIT_INLINE bool isGpq() const noexcept { return _vreg.type == kX86RegTypeGpq; } - //! Get whether the variable is Mm (64-bit) register. + //! Get whether the variable is MMX (64-bit) register. ASMJIT_INLINE bool isMm() const noexcept { return _vreg.type == kX86RegTypeMm; } //! Get whether the variable is K (64-bit) register. ASMJIT_INLINE bool isK() const noexcept { return _vreg.type == kX86RegTypeK; } - //! Get whether the variable is Xmm (128-bit) register. + //! Get whether the variable is XMM (128-bit) register. ASMJIT_INLINE bool isXmm() const noexcept { return _vreg.type == kX86RegTypeXmm; } - //! Get whether the variable is Ymm (256-bit) register. + //! Get whether the variable is YMM (256-bit) register. ASMJIT_INLINE bool isYmm() const noexcept { return _vreg.type == kX86RegTypeYmm; } - //! Get whether the variable is Zmm (512-bit) register. + //! Get whether the variable is ZMM (512-bit) register. ASMJIT_INLINE bool isZmm() const noexcept { return _vreg.type == kX86RegTypeZmm; } // -------------------------------------------------------------------------- @@ -1722,7 +1722,7 @@ class X86Var : public Var { //! Cast this variable to a memory operand. //! - //! \note Size of operand depends on native variable type, you can use other + //! NOTE: Size of operand depends on native variable type, you can use other //! variants if you want specific one. ASMJIT_INLINE X86Mem m(int32_t disp = 0) const noexcept { return X86Mem(Init, kMemTypeStackIndex, *this, disp, getSize()); @@ -1958,7 +1958,7 @@ class X86MmVar : public X86Var { // ============================================================================ #if !defined(ASMJIT_DISABLE_COMPILER) -//! Xmm variable. +//! XMM variable. class X86XmmVar : public X86Var { public: // -------------------------------------------------------------------------- @@ -2013,7 +2013,7 @@ public: // ============================================================================ #if !defined(ASMJIT_DISABLE_COMPILER) -//! Ymm variable. +//! YMM variable. class X86YmmVar : public X86Var { public: // -------------------------------------------------------------------------- @@ -2070,7 +2070,7 @@ ASMJIT_INLINE X86YmmVar X86XmmVar::ymm() const noexcept { return X86YmmVar(*this // ============================================================================ #if !defined(ASMJIT_DISABLE_COMPILER) -//! Zmm variable. +//! ZMM variable. class X86ZmmVar : public X86Var { public: // -------------------------------------------------------------------------- @@ -2167,177 +2167,177 @@ namespace x86 { #define ASMJIT_DEF_REG(_Type_, _Name_, _Field_) \ static const _Type_& _Name_ = x86RegData._Field_; -ASMJIT_DEF_REG(X86GpReg , eax , gpd[0]) //!< 32-bit Gpd register. -ASMJIT_DEF_REG(X86GpReg , ecx , gpd[1]) //!< 32-bit Gpd register. -ASMJIT_DEF_REG(X86GpReg , edx , gpd[2]) //!< 32-bit Gpd register. -ASMJIT_DEF_REG(X86GpReg , ebx , gpd[3]) //!< 32-bit Gpd register. -ASMJIT_DEF_REG(X86GpReg , esp , gpd[4]) //!< 32-bit Gpd register. -ASMJIT_DEF_REG(X86GpReg , ebp , gpd[5]) //!< 32-bit Gpd register. -ASMJIT_DEF_REG(X86GpReg , esi , gpd[6]) //!< 32-bit Gpd register. -ASMJIT_DEF_REG(X86GpReg , edi , gpd[7]) //!< 32-bit Gpd register. -ASMJIT_DEF_REG(X86GpReg , r8d , gpd[8]) //!< 32-bit Gpd register (X64). -ASMJIT_DEF_REG(X86GpReg , r9d , gpd[9]) //!< 32-bit Gpd register (X64). -ASMJIT_DEF_REG(X86GpReg , r10d , gpd[10]) //!< 32-bit Gpd register (X64). -ASMJIT_DEF_REG(X86GpReg , r11d , gpd[11]) //!< 32-bit Gpd register (X64). -ASMJIT_DEF_REG(X86GpReg , r12d , gpd[12]) //!< 32-bit Gpd register (X64). -ASMJIT_DEF_REG(X86GpReg , r13d , gpd[13]) //!< 32-bit Gpd register (X64). -ASMJIT_DEF_REG(X86GpReg , r14d , gpd[14]) //!< 32-bit Gpd register (X64). -ASMJIT_DEF_REG(X86GpReg , r15d , gpd[15]) //!< 32-bit Gpd register (X64). +ASMJIT_DEF_REG(X86GpReg , eax , gpd[0]) //!< 32-bit GPD register. +ASMJIT_DEF_REG(X86GpReg , ecx , gpd[1]) //!< 32-bit GPD register. +ASMJIT_DEF_REG(X86GpReg , edx , gpd[2]) //!< 32-bit GPD register. +ASMJIT_DEF_REG(X86GpReg , ebx , gpd[3]) //!< 32-bit GPD register. +ASMJIT_DEF_REG(X86GpReg , esp , gpd[4]) //!< 32-bit GPD register. +ASMJIT_DEF_REG(X86GpReg , ebp , gpd[5]) //!< 32-bit GPD register. +ASMJIT_DEF_REG(X86GpReg , esi , gpd[6]) //!< 32-bit GPD register. +ASMJIT_DEF_REG(X86GpReg , edi , gpd[7]) //!< 32-bit GPD register. +ASMJIT_DEF_REG(X86GpReg , r8d , gpd[8]) //!< 32-bit GPD register (X64). +ASMJIT_DEF_REG(X86GpReg , r9d , gpd[9]) //!< 32-bit GPD register (X64). +ASMJIT_DEF_REG(X86GpReg , r10d , gpd[10]) //!< 32-bit GPD register (X64). +ASMJIT_DEF_REG(X86GpReg , r11d , gpd[11]) //!< 32-bit GPD register (X64). +ASMJIT_DEF_REG(X86GpReg , r12d , gpd[12]) //!< 32-bit GPD register (X64). +ASMJIT_DEF_REG(X86GpReg , r13d , gpd[13]) //!< 32-bit GPD register (X64). +ASMJIT_DEF_REG(X86GpReg , r14d , gpd[14]) //!< 32-bit GPD register (X64). +ASMJIT_DEF_REG(X86GpReg , r15d , gpd[15]) //!< 32-bit GPD register (X64). -ASMJIT_DEF_REG(X86GpReg , rax , gpq[0]) //!< 64-bit Gpq register (X64). -ASMJIT_DEF_REG(X86GpReg , rcx , gpq[1]) //!< 64-bit Gpq register (X64). -ASMJIT_DEF_REG(X86GpReg , rdx , gpq[2]) //!< 64-bit Gpq register (X64). -ASMJIT_DEF_REG(X86GpReg , rbx , gpq[3]) //!< 64-bit Gpq register (X64). -ASMJIT_DEF_REG(X86GpReg , rsp , gpq[4]) //!< 64-bit Gpq register (X64). -ASMJIT_DEF_REG(X86GpReg , rbp , gpq[5]) //!< 64-bit Gpq register (X64). -ASMJIT_DEF_REG(X86GpReg , rsi , gpq[6]) //!< 64-bit Gpq register (X64). -ASMJIT_DEF_REG(X86GpReg , rdi , gpq[7]) //!< 64-bit Gpq register (X64). -ASMJIT_DEF_REG(X86GpReg , r8 , gpq[8]) //!< 64-bit Gpq register (X64). -ASMJIT_DEF_REG(X86GpReg , r9 , gpq[9]) //!< 64-bit Gpq register (X64). -ASMJIT_DEF_REG(X86GpReg , r10 , gpq[10]) //!< 64-bit Gpq register (X64). -ASMJIT_DEF_REG(X86GpReg , r11 , gpq[11]) //!< 64-bit Gpq register (X64). -ASMJIT_DEF_REG(X86GpReg , r12 , gpq[12]) //!< 64-bit Gpq register (X64). -ASMJIT_DEF_REG(X86GpReg , r13 , gpq[13]) //!< 64-bit Gpq register (X64). -ASMJIT_DEF_REG(X86GpReg , r14 , gpq[14]) //!< 64-bit Gpq register (X64). -ASMJIT_DEF_REG(X86GpReg , r15 , gpq[15]) //!< 64-bit Gpq register (X64). +ASMJIT_DEF_REG(X86GpReg , rax , gpq[0]) //!< 64-bit GPQ register (X64). +ASMJIT_DEF_REG(X86GpReg , rcx , gpq[1]) //!< 64-bit GPQ register (X64). +ASMJIT_DEF_REG(X86GpReg , rdx , gpq[2]) //!< 64-bit GPQ register (X64). +ASMJIT_DEF_REG(X86GpReg , rbx , gpq[3]) //!< 64-bit GPQ register (X64). +ASMJIT_DEF_REG(X86GpReg , rsp , gpq[4]) //!< 64-bit GPQ register (X64). +ASMJIT_DEF_REG(X86GpReg , rbp , gpq[5]) //!< 64-bit GPQ register (X64). +ASMJIT_DEF_REG(X86GpReg , rsi , gpq[6]) //!< 64-bit GPQ register (X64). +ASMJIT_DEF_REG(X86GpReg , rdi , gpq[7]) //!< 64-bit GPQ register (X64). +ASMJIT_DEF_REG(X86GpReg , r8 , gpq[8]) //!< 64-bit GPQ register (X64). +ASMJIT_DEF_REG(X86GpReg , r9 , gpq[9]) //!< 64-bit GPQ register (X64). +ASMJIT_DEF_REG(X86GpReg , r10 , gpq[10]) //!< 64-bit GPQ register (X64). +ASMJIT_DEF_REG(X86GpReg , r11 , gpq[11]) //!< 64-bit GPQ register (X64). +ASMJIT_DEF_REG(X86GpReg , r12 , gpq[12]) //!< 64-bit GPQ register (X64). +ASMJIT_DEF_REG(X86GpReg , r13 , gpq[13]) //!< 64-bit GPQ register (X64). +ASMJIT_DEF_REG(X86GpReg , r14 , gpq[14]) //!< 64-bit GPQ register (X64). +ASMJIT_DEF_REG(X86GpReg , r15 , gpq[15]) //!< 64-bit GPQ register (X64). -ASMJIT_DEF_REG(X86GpReg , al , gpbLo[0]) //!< 8-bit Gpb-lo register. -ASMJIT_DEF_REG(X86GpReg , cl , gpbLo[1]) //!< 8-bit Gpb-lo register. -ASMJIT_DEF_REG(X86GpReg , dl , gpbLo[2]) //!< 8-bit Gpb-lo register. -ASMJIT_DEF_REG(X86GpReg , bl , gpbLo[3]) //!< 8-bit Gpb-lo register. -ASMJIT_DEF_REG(X86GpReg , spl , gpbLo[4]) //!< 8-bit Gpb-lo register (X64). -ASMJIT_DEF_REG(X86GpReg , bpl , gpbLo[5]) //!< 8-bit Gpb-lo register (X64). -ASMJIT_DEF_REG(X86GpReg , sil , gpbLo[6]) //!< 8-bit Gpb-lo register (X64). -ASMJIT_DEF_REG(X86GpReg , dil , gpbLo[7]) //!< 8-bit Gpb-lo register (X64). -ASMJIT_DEF_REG(X86GpReg , r8b , gpbLo[8]) //!< 8-bit Gpb-lo register (X64). -ASMJIT_DEF_REG(X86GpReg , r9b , gpbLo[9]) //!< 8-bit Gpb-lo register (X64). -ASMJIT_DEF_REG(X86GpReg , r10b , gpbLo[10])//!< 8-bit Gpb-lo register (X64). -ASMJIT_DEF_REG(X86GpReg , r11b , gpbLo[11])//!< 8-bit Gpb-lo register (X64). -ASMJIT_DEF_REG(X86GpReg , r12b , gpbLo[12])//!< 8-bit Gpb-lo register (X64). -ASMJIT_DEF_REG(X86GpReg , r13b , gpbLo[13])//!< 8-bit Gpb-lo register (X64). -ASMJIT_DEF_REG(X86GpReg , r14b , gpbLo[14])//!< 8-bit Gpb-lo register (X64). -ASMJIT_DEF_REG(X86GpReg , r15b , gpbLo[15])//!< 8-bit Gpb-lo register (X64). +ASMJIT_DEF_REG(X86GpReg , al , gpbLo[0]) //!< 8-bit low GPB register. +ASMJIT_DEF_REG(X86GpReg , cl , gpbLo[1]) //!< 8-bit low GPB register. +ASMJIT_DEF_REG(X86GpReg , dl , gpbLo[2]) //!< 8-bit low GPB register. +ASMJIT_DEF_REG(X86GpReg , bl , gpbLo[3]) //!< 8-bit low GPB register. +ASMJIT_DEF_REG(X86GpReg , spl , gpbLo[4]) //!< 8-bit low GPB register (X64). +ASMJIT_DEF_REG(X86GpReg , bpl , gpbLo[5]) //!< 8-bit low GPB register (X64). +ASMJIT_DEF_REG(X86GpReg , sil , gpbLo[6]) //!< 8-bit low GPB register (X64). +ASMJIT_DEF_REG(X86GpReg , dil , gpbLo[7]) //!< 8-bit low GPB register (X64). +ASMJIT_DEF_REG(X86GpReg , r8b , gpbLo[8]) //!< 8-bit low GPB register (X64). +ASMJIT_DEF_REG(X86GpReg , r9b , gpbLo[9]) //!< 8-bit low GPB register (X64). +ASMJIT_DEF_REG(X86GpReg , r10b , gpbLo[10])//!< 8-bit low GPB register (X64). +ASMJIT_DEF_REG(X86GpReg , r11b , gpbLo[11])//!< 8-bit low GPB register (X64). +ASMJIT_DEF_REG(X86GpReg , r12b , gpbLo[12])//!< 8-bit low GPB register (X64). +ASMJIT_DEF_REG(X86GpReg , r13b , gpbLo[13])//!< 8-bit low GPB register (X64). +ASMJIT_DEF_REG(X86GpReg , r14b , gpbLo[14])//!< 8-bit low GPB register (X64). +ASMJIT_DEF_REG(X86GpReg , r15b , gpbLo[15])//!< 8-bit low GPB register (X64). -ASMJIT_DEF_REG(X86GpReg , ah , gpbHi[0]) //!< 8-bit Gpb-hi register. -ASMJIT_DEF_REG(X86GpReg , ch , gpbHi[1]) //!< 8-bit Gpb-hi register. -ASMJIT_DEF_REG(X86GpReg , dh , gpbHi[2]) //!< 8-bit Gpb-hi register. -ASMJIT_DEF_REG(X86GpReg , bh , gpbHi[3]) //!< 8-bit Gpb-hi register. +ASMJIT_DEF_REG(X86GpReg , ah , gpbHi[0]) //!< 8-bit high GPB register. +ASMJIT_DEF_REG(X86GpReg , ch , gpbHi[1]) //!< 8-bit high GPB register. +ASMJIT_DEF_REG(X86GpReg , dh , gpbHi[2]) //!< 8-bit high GPB register. +ASMJIT_DEF_REG(X86GpReg , bh , gpbHi[3]) //!< 8-bit high GPB register. -ASMJIT_DEF_REG(X86GpReg , ax , gpw[0]) //!< 16-bit Gpw register. -ASMJIT_DEF_REG(X86GpReg , cx , gpw[1]) //!< 16-bit Gpw register. -ASMJIT_DEF_REG(X86GpReg , dx , gpw[2]) //!< 16-bit Gpw register. -ASMJIT_DEF_REG(X86GpReg , bx , gpw[3]) //!< 16-bit Gpw register. -ASMJIT_DEF_REG(X86GpReg , sp , gpw[4]) //!< 16-bit Gpw register. -ASMJIT_DEF_REG(X86GpReg , bp , gpw[5]) //!< 16-bit Gpw register. -ASMJIT_DEF_REG(X86GpReg , si , gpw[6]) //!< 16-bit Gpw register. -ASMJIT_DEF_REG(X86GpReg , di , gpw[7]) //!< 16-bit Gpw register. -ASMJIT_DEF_REG(X86GpReg , r8w , gpw[8]) //!< 16-bit Gpw register (X64). -ASMJIT_DEF_REG(X86GpReg , r9w , gpw[9]) //!< 16-bit Gpw register (X64). -ASMJIT_DEF_REG(X86GpReg , r10w , gpw[10]) //!< 16-bit Gpw register (X64). -ASMJIT_DEF_REG(X86GpReg , r11w , gpw[11]) //!< 16-bit Gpw register (X64). -ASMJIT_DEF_REG(X86GpReg , r12w , gpw[12]) //!< 16-bit Gpw register (X64). -ASMJIT_DEF_REG(X86GpReg , r13w , gpw[13]) //!< 16-bit Gpw register (X64). -ASMJIT_DEF_REG(X86GpReg , r14w , gpw[14]) //!< 16-bit Gpw register (X64). -ASMJIT_DEF_REG(X86GpReg , r15w , gpw[15]) //!< 16-bit Gpw register (X64). +ASMJIT_DEF_REG(X86GpReg , ax , gpw[0]) //!< 16-bit GPW register. +ASMJIT_DEF_REG(X86GpReg , cx , gpw[1]) //!< 16-bit GPW register. +ASMJIT_DEF_REG(X86GpReg , dx , gpw[2]) //!< 16-bit GPW register. +ASMJIT_DEF_REG(X86GpReg , bx , gpw[3]) //!< 16-bit GPW register. +ASMJIT_DEF_REG(X86GpReg , sp , gpw[4]) //!< 16-bit GPW register. +ASMJIT_DEF_REG(X86GpReg , bp , gpw[5]) //!< 16-bit GPW register. +ASMJIT_DEF_REG(X86GpReg , si , gpw[6]) //!< 16-bit GPW register. +ASMJIT_DEF_REG(X86GpReg , di , gpw[7]) //!< 16-bit GPW register. +ASMJIT_DEF_REG(X86GpReg , r8w , gpw[8]) //!< 16-bit GPW register (X64). +ASMJIT_DEF_REG(X86GpReg , r9w , gpw[9]) //!< 16-bit GPW register (X64). +ASMJIT_DEF_REG(X86GpReg , r10w , gpw[10]) //!< 16-bit GPW register (X64). +ASMJIT_DEF_REG(X86GpReg , r11w , gpw[11]) //!< 16-bit GPW register (X64). +ASMJIT_DEF_REG(X86GpReg , r12w , gpw[12]) //!< 16-bit GPW register (X64). +ASMJIT_DEF_REG(X86GpReg , r13w , gpw[13]) //!< 16-bit GPW register (X64). +ASMJIT_DEF_REG(X86GpReg , r14w , gpw[14]) //!< 16-bit GPW register (X64). +ASMJIT_DEF_REG(X86GpReg , r15w , gpw[15]) //!< 16-bit GPW register (X64). -ASMJIT_DEF_REG(X86XmmReg, xmm0 , xmm[0]) //!< 128-bit Xmm register. -ASMJIT_DEF_REG(X86XmmReg, xmm1 , xmm[1]) //!< 128-bit Xmm register. -ASMJIT_DEF_REG(X86XmmReg, xmm2 , xmm[2]) //!< 128-bit Xmm register. -ASMJIT_DEF_REG(X86XmmReg, xmm3 , xmm[3]) //!< 128-bit Xmm register. -ASMJIT_DEF_REG(X86XmmReg, xmm4 , xmm[4]) //!< 128-bit Xmm register. -ASMJIT_DEF_REG(X86XmmReg, xmm5 , xmm[5]) //!< 128-bit Xmm register. -ASMJIT_DEF_REG(X86XmmReg, xmm6 , xmm[6]) //!< 128-bit Xmm register. -ASMJIT_DEF_REG(X86XmmReg, xmm7 , xmm[7]) //!< 128-bit Xmm register. -ASMJIT_DEF_REG(X86XmmReg, xmm8 , xmm[8]) //!< 128-bit Xmm register (X64). -ASMJIT_DEF_REG(X86XmmReg, xmm9 , xmm[9]) //!< 128-bit Xmm register (X64). -ASMJIT_DEF_REG(X86XmmReg, xmm10, xmm[10]) //!< 128-bit Xmm register (X64). -ASMJIT_DEF_REG(X86XmmReg, xmm11, xmm[11]) //!< 128-bit Xmm register (X64). -ASMJIT_DEF_REG(X86XmmReg, xmm12, xmm[12]) //!< 128-bit Xmm register (X64). -ASMJIT_DEF_REG(X86XmmReg, xmm13, xmm[13]) //!< 128-bit Xmm register (X64). -ASMJIT_DEF_REG(X86XmmReg, xmm14, xmm[14]) //!< 128-bit Xmm register (X64). -ASMJIT_DEF_REG(X86XmmReg, xmm15, xmm[15]) //!< 128-bit Xmm register (X64). -ASMJIT_DEF_REG(X86XmmReg, xmm16, xmm[16]) //!< 128-bit Xmm register (X64 & AVX512VL+). -ASMJIT_DEF_REG(X86XmmReg, xmm17, xmm[17]) //!< 128-bit Xmm register (X64 & AVX512VL+). -ASMJIT_DEF_REG(X86XmmReg, xmm18, xmm[18]) //!< 128-bit Xmm register (X64 & AVX512VL+). -ASMJIT_DEF_REG(X86XmmReg, xmm19, xmm[19]) //!< 128-bit Xmm register (X64 & AVX512VL+). -ASMJIT_DEF_REG(X86XmmReg, xmm20, xmm[20]) //!< 128-bit Xmm register (X64 & AVX512VL+). -ASMJIT_DEF_REG(X86XmmReg, xmm21, xmm[21]) //!< 128-bit Xmm register (X64 & AVX512VL+). -ASMJIT_DEF_REG(X86XmmReg, xmm22, xmm[22]) //!< 128-bit Xmm register (X64 & AVX512VL+). -ASMJIT_DEF_REG(X86XmmReg, xmm23, xmm[23]) //!< 128-bit Xmm register (X64 & AVX512VL+). -ASMJIT_DEF_REG(X86XmmReg, xmm24, xmm[24]) //!< 128-bit Xmm register (X64 & AVX512VL+). -ASMJIT_DEF_REG(X86XmmReg, xmm25, xmm[25]) //!< 128-bit Xmm register (X64 & AVX512VL+). -ASMJIT_DEF_REG(X86XmmReg, xmm26, xmm[26]) //!< 128-bit Xmm register (X64 & AVX512VL+). -ASMJIT_DEF_REG(X86XmmReg, xmm27, xmm[27]) //!< 128-bit Xmm register (X64 & AVX512VL+). -ASMJIT_DEF_REG(X86XmmReg, xmm28, xmm[28]) //!< 128-bit Xmm register (X64 & AVX512VL+). -ASMJIT_DEF_REG(X86XmmReg, xmm29, xmm[29]) //!< 128-bit Xmm register (X64 & AVX512VL+). -ASMJIT_DEF_REG(X86XmmReg, xmm30, xmm[30]) //!< 128-bit Xmm register (X64 & AVX512VL+). -ASMJIT_DEF_REG(X86XmmReg, xmm31, xmm[31]) //!< 128-bit Xmm register (X64 & AVX512VL+). +ASMJIT_DEF_REG(X86XmmReg, xmm0 , xmm[0]) //!< 128-bit XMM register. +ASMJIT_DEF_REG(X86XmmReg, xmm1 , xmm[1]) //!< 128-bit XMM register. +ASMJIT_DEF_REG(X86XmmReg, xmm2 , xmm[2]) //!< 128-bit XMM register. +ASMJIT_DEF_REG(X86XmmReg, xmm3 , xmm[3]) //!< 128-bit XMM register. +ASMJIT_DEF_REG(X86XmmReg, xmm4 , xmm[4]) //!< 128-bit XMM register. +ASMJIT_DEF_REG(X86XmmReg, xmm5 , xmm[5]) //!< 128-bit XMM register. +ASMJIT_DEF_REG(X86XmmReg, xmm6 , xmm[6]) //!< 128-bit XMM register. +ASMJIT_DEF_REG(X86XmmReg, xmm7 , xmm[7]) //!< 128-bit XMM register. +ASMJIT_DEF_REG(X86XmmReg, xmm8 , xmm[8]) //!< 128-bit XMM register (X64). +ASMJIT_DEF_REG(X86XmmReg, xmm9 , xmm[9]) //!< 128-bit XMM register (X64). +ASMJIT_DEF_REG(X86XmmReg, xmm10, xmm[10]) //!< 128-bit XMM register (X64). +ASMJIT_DEF_REG(X86XmmReg, xmm11, xmm[11]) //!< 128-bit XMM register (X64). +ASMJIT_DEF_REG(X86XmmReg, xmm12, xmm[12]) //!< 128-bit XMM register (X64). +ASMJIT_DEF_REG(X86XmmReg, xmm13, xmm[13]) //!< 128-bit XMM register (X64). +ASMJIT_DEF_REG(X86XmmReg, xmm14, xmm[14]) //!< 128-bit XMM register (X64). +ASMJIT_DEF_REG(X86XmmReg, xmm15, xmm[15]) //!< 128-bit XMM register (X64). +ASMJIT_DEF_REG(X86XmmReg, xmm16, xmm[16]) //!< 128-bit XMM register (X64 & AVX512VL+). +ASMJIT_DEF_REG(X86XmmReg, xmm17, xmm[17]) //!< 128-bit XMM register (X64 & AVX512VL+). +ASMJIT_DEF_REG(X86XmmReg, xmm18, xmm[18]) //!< 128-bit XMM register (X64 & AVX512VL+). +ASMJIT_DEF_REG(X86XmmReg, xmm19, xmm[19]) //!< 128-bit XMM register (X64 & AVX512VL+). +ASMJIT_DEF_REG(X86XmmReg, xmm20, xmm[20]) //!< 128-bit XMM register (X64 & AVX512VL+). +ASMJIT_DEF_REG(X86XmmReg, xmm21, xmm[21]) //!< 128-bit XMM register (X64 & AVX512VL+). +ASMJIT_DEF_REG(X86XmmReg, xmm22, xmm[22]) //!< 128-bit XMM register (X64 & AVX512VL+). +ASMJIT_DEF_REG(X86XmmReg, xmm23, xmm[23]) //!< 128-bit XMM register (X64 & AVX512VL+). +ASMJIT_DEF_REG(X86XmmReg, xmm24, xmm[24]) //!< 128-bit XMM register (X64 & AVX512VL+). +ASMJIT_DEF_REG(X86XmmReg, xmm25, xmm[25]) //!< 128-bit XMM register (X64 & AVX512VL+). +ASMJIT_DEF_REG(X86XmmReg, xmm26, xmm[26]) //!< 128-bit XMM register (X64 & AVX512VL+). +ASMJIT_DEF_REG(X86XmmReg, xmm27, xmm[27]) //!< 128-bit XMM register (X64 & AVX512VL+). +ASMJIT_DEF_REG(X86XmmReg, xmm28, xmm[28]) //!< 128-bit XMM register (X64 & AVX512VL+). +ASMJIT_DEF_REG(X86XmmReg, xmm29, xmm[29]) //!< 128-bit XMM register (X64 & AVX512VL+). +ASMJIT_DEF_REG(X86XmmReg, xmm30, xmm[30]) //!< 128-bit XMM register (X64 & AVX512VL+). +ASMJIT_DEF_REG(X86XmmReg, xmm31, xmm[31]) //!< 128-bit XMM register (X64 & AVX512VL+). -ASMJIT_DEF_REG(X86YmmReg, ymm0 , ymm[0]) //!< 256-bit Ymm register. -ASMJIT_DEF_REG(X86YmmReg, ymm1 , ymm[1]) //!< 256-bit Ymm register. -ASMJIT_DEF_REG(X86YmmReg, ymm2 , ymm[2]) //!< 256-bit Ymm register. -ASMJIT_DEF_REG(X86YmmReg, ymm3 , ymm[3]) //!< 256-bit Ymm register. -ASMJIT_DEF_REG(X86YmmReg, ymm4 , ymm[4]) //!< 256-bit Ymm register. -ASMJIT_DEF_REG(X86YmmReg, ymm5 , ymm[5]) //!< 256-bit Ymm register. -ASMJIT_DEF_REG(X86YmmReg, ymm6 , ymm[6]) //!< 256-bit Ymm register. -ASMJIT_DEF_REG(X86YmmReg, ymm7 , ymm[7]) //!< 256-bit Ymm register. -ASMJIT_DEF_REG(X86YmmReg, ymm8 , ymm[8]) //!< 256-bit Ymm register (X64). -ASMJIT_DEF_REG(X86YmmReg, ymm9 , ymm[9]) //!< 256-bit Ymm register (X64). -ASMJIT_DEF_REG(X86YmmReg, ymm10, ymm[10]) //!< 256-bit Ymm register (X64). -ASMJIT_DEF_REG(X86YmmReg, ymm11, ymm[11]) //!< 256-bit Ymm register (X64). -ASMJIT_DEF_REG(X86YmmReg, ymm12, ymm[12]) //!< 256-bit Ymm register (X64). -ASMJIT_DEF_REG(X86YmmReg, ymm13, ymm[13]) //!< 256-bit Ymm register (X64). -ASMJIT_DEF_REG(X86YmmReg, ymm14, ymm[14]) //!< 256-bit Ymm register (X64). -ASMJIT_DEF_REG(X86YmmReg, ymm15, ymm[15]) //!< 256-bit Ymm register (X64). -ASMJIT_DEF_REG(X86YmmReg, ymm16, ymm[16]) //!< 256-bit Ymm register (X64 & AVX512VL+). -ASMJIT_DEF_REG(X86YmmReg, ymm17, ymm[17]) //!< 256-bit Ymm register (X64 & AVX512VL+). -ASMJIT_DEF_REG(X86YmmReg, ymm18, ymm[18]) //!< 256-bit Ymm register (X64 & AVX512VL+). -ASMJIT_DEF_REG(X86YmmReg, ymm19, ymm[19]) //!< 256-bit Ymm register (X64 & AVX512VL+). -ASMJIT_DEF_REG(X86YmmReg, ymm20, ymm[20]) //!< 256-bit Ymm register (X64 & AVX512VL+). -ASMJIT_DEF_REG(X86YmmReg, ymm21, ymm[21]) //!< 256-bit Ymm register (X64 & AVX512VL+). -ASMJIT_DEF_REG(X86YmmReg, ymm22, ymm[22]) //!< 256-bit Ymm register (X64 & AVX512VL+). -ASMJIT_DEF_REG(X86YmmReg, ymm23, ymm[23]) //!< 256-bit Ymm register (X64 & AVX512VL+). -ASMJIT_DEF_REG(X86YmmReg, ymm24, ymm[24]) //!< 256-bit Ymm register (X64 & AVX512VL+). -ASMJIT_DEF_REG(X86YmmReg, ymm25, ymm[25]) //!< 256-bit Ymm register (X64 & AVX512VL+). -ASMJIT_DEF_REG(X86YmmReg, ymm26, ymm[26]) //!< 256-bit Ymm register (X64 & AVX512VL+). -ASMJIT_DEF_REG(X86YmmReg, ymm27, ymm[27]) //!< 256-bit Ymm register (X64 & AVX512VL+). -ASMJIT_DEF_REG(X86YmmReg, ymm28, ymm[28]) //!< 256-bit Ymm register (X64 & AVX512VL+). -ASMJIT_DEF_REG(X86YmmReg, ymm29, ymm[29]) //!< 256-bit Ymm register (X64 & AVX512VL+). -ASMJIT_DEF_REG(X86YmmReg, ymm30, ymm[30]) //!< 256-bit Ymm register (X64 & AVX512VL+). -ASMJIT_DEF_REG(X86YmmReg, ymm31, ymm[31]) //!< 256-bit Ymm register (X64 & AVX512VL+). +ASMJIT_DEF_REG(X86YmmReg, ymm0 , ymm[0]) //!< 256-bit YMM register. +ASMJIT_DEF_REG(X86YmmReg, ymm1 , ymm[1]) //!< 256-bit YMM register. +ASMJIT_DEF_REG(X86YmmReg, ymm2 , ymm[2]) //!< 256-bit YMM register. +ASMJIT_DEF_REG(X86YmmReg, ymm3 , ymm[3]) //!< 256-bit YMM register. +ASMJIT_DEF_REG(X86YmmReg, ymm4 , ymm[4]) //!< 256-bit YMM register. +ASMJIT_DEF_REG(X86YmmReg, ymm5 , ymm[5]) //!< 256-bit YMM register. +ASMJIT_DEF_REG(X86YmmReg, ymm6 , ymm[6]) //!< 256-bit YMM register. +ASMJIT_DEF_REG(X86YmmReg, ymm7 , ymm[7]) //!< 256-bit YMM register. +ASMJIT_DEF_REG(X86YmmReg, ymm8 , ymm[8]) //!< 256-bit YMM register (X64). +ASMJIT_DEF_REG(X86YmmReg, ymm9 , ymm[9]) //!< 256-bit YMM register (X64). +ASMJIT_DEF_REG(X86YmmReg, ymm10, ymm[10]) //!< 256-bit YMM register (X64). +ASMJIT_DEF_REG(X86YmmReg, ymm11, ymm[11]) //!< 256-bit YMM register (X64). +ASMJIT_DEF_REG(X86YmmReg, ymm12, ymm[12]) //!< 256-bit YMM register (X64). +ASMJIT_DEF_REG(X86YmmReg, ymm13, ymm[13]) //!< 256-bit YMM register (X64). +ASMJIT_DEF_REG(X86YmmReg, ymm14, ymm[14]) //!< 256-bit YMM register (X64). +ASMJIT_DEF_REG(X86YmmReg, ymm15, ymm[15]) //!< 256-bit YMM register (X64). +ASMJIT_DEF_REG(X86YmmReg, ymm16, ymm[16]) //!< 256-bit YMM register (X64 & AVX512VL+). +ASMJIT_DEF_REG(X86YmmReg, ymm17, ymm[17]) //!< 256-bit YMM register (X64 & AVX512VL+). +ASMJIT_DEF_REG(X86YmmReg, ymm18, ymm[18]) //!< 256-bit YMM register (X64 & AVX512VL+). +ASMJIT_DEF_REG(X86YmmReg, ymm19, ymm[19]) //!< 256-bit YMM register (X64 & AVX512VL+). +ASMJIT_DEF_REG(X86YmmReg, ymm20, ymm[20]) //!< 256-bit YMM register (X64 & AVX512VL+). +ASMJIT_DEF_REG(X86YmmReg, ymm21, ymm[21]) //!< 256-bit YMM register (X64 & AVX512VL+). +ASMJIT_DEF_REG(X86YmmReg, ymm22, ymm[22]) //!< 256-bit YMM register (X64 & AVX512VL+). +ASMJIT_DEF_REG(X86YmmReg, ymm23, ymm[23]) //!< 256-bit YMM register (X64 & AVX512VL+). +ASMJIT_DEF_REG(X86YmmReg, ymm24, ymm[24]) //!< 256-bit YMM register (X64 & AVX512VL+). +ASMJIT_DEF_REG(X86YmmReg, ymm25, ymm[25]) //!< 256-bit YMM register (X64 & AVX512VL+). +ASMJIT_DEF_REG(X86YmmReg, ymm26, ymm[26]) //!< 256-bit YMM register (X64 & AVX512VL+). +ASMJIT_DEF_REG(X86YmmReg, ymm27, ymm[27]) //!< 256-bit YMM register (X64 & AVX512VL+). +ASMJIT_DEF_REG(X86YmmReg, ymm28, ymm[28]) //!< 256-bit YMM register (X64 & AVX512VL+). +ASMJIT_DEF_REG(X86YmmReg, ymm29, ymm[29]) //!< 256-bit YMM register (X64 & AVX512VL+). +ASMJIT_DEF_REG(X86YmmReg, ymm30, ymm[30]) //!< 256-bit YMM register (X64 & AVX512VL+). +ASMJIT_DEF_REG(X86YmmReg, ymm31, ymm[31]) //!< 256-bit YMM register (X64 & AVX512VL+). -ASMJIT_DEF_REG(X86ZmmReg, zmm0 , zmm[0]) //!< 512-bit Zmm register. -ASMJIT_DEF_REG(X86ZmmReg, zmm1 , zmm[1]) //!< 512-bit Zmm register. -ASMJIT_DEF_REG(X86ZmmReg, zmm2 , zmm[2]) //!< 512-bit Zmm register. -ASMJIT_DEF_REG(X86ZmmReg, zmm3 , zmm[3]) //!< 512-bit Zmm register. -ASMJIT_DEF_REG(X86ZmmReg, zmm4 , zmm[4]) //!< 512-bit Zmm register. -ASMJIT_DEF_REG(X86ZmmReg, zmm5 , zmm[5]) //!< 512-bit Zmm register. -ASMJIT_DEF_REG(X86ZmmReg, zmm6 , zmm[6]) //!< 512-bit Zmm register. -ASMJIT_DEF_REG(X86ZmmReg, zmm7 , zmm[7]) //!< 512-bit Zmm register. -ASMJIT_DEF_REG(X86ZmmReg, zmm8 , zmm[8]) //!< 512-bit Zmm register (X64). -ASMJIT_DEF_REG(X86ZmmReg, zmm9 , zmm[9]) //!< 512-bit Zmm register (X64). -ASMJIT_DEF_REG(X86ZmmReg, zmm10, zmm[10]) //!< 512-bit Zmm register (X64). -ASMJIT_DEF_REG(X86ZmmReg, zmm11, zmm[11]) //!< 512-bit Zmm register (X64). -ASMJIT_DEF_REG(X86ZmmReg, zmm12, zmm[12]) //!< 512-bit Zmm register (X64). -ASMJIT_DEF_REG(X86ZmmReg, zmm13, zmm[13]) //!< 512-bit Zmm register (X64). -ASMJIT_DEF_REG(X86ZmmReg, zmm14, zmm[14]) //!< 512-bit Zmm register (X64). -ASMJIT_DEF_REG(X86ZmmReg, zmm15, zmm[15]) //!< 512-bit Zmm register (X64). -ASMJIT_DEF_REG(X86ZmmReg, zmm16, zmm[16]) //!< 512-bit Zmm register (X64 & AVX512+). -ASMJIT_DEF_REG(X86ZmmReg, zmm17, zmm[17]) //!< 512-bit Zmm register (X64 & AVX512+). -ASMJIT_DEF_REG(X86ZmmReg, zmm18, zmm[18]) //!< 512-bit Zmm register (X64 & AVX512+). -ASMJIT_DEF_REG(X86ZmmReg, zmm19, zmm[19]) //!< 512-bit Zmm register (X64 & AVX512+). -ASMJIT_DEF_REG(X86ZmmReg, zmm20, zmm[20]) //!< 512-bit Zmm register (X64 & AVX512+). -ASMJIT_DEF_REG(X86ZmmReg, zmm21, zmm[21]) //!< 512-bit Zmm register (X64 & AVX512+). -ASMJIT_DEF_REG(X86ZmmReg, zmm22, zmm[22]) //!< 512-bit Zmm register (X64 & AVX512+). -ASMJIT_DEF_REG(X86ZmmReg, zmm23, zmm[23]) //!< 512-bit Zmm register (X64 & AVX512+). -ASMJIT_DEF_REG(X86ZmmReg, zmm24, zmm[24]) //!< 512-bit Zmm register (X64 & AVX512+). -ASMJIT_DEF_REG(X86ZmmReg, zmm25, zmm[25]) //!< 512-bit Zmm register (X64 & AVX512+). -ASMJIT_DEF_REG(X86ZmmReg, zmm26, zmm[26]) //!< 512-bit Zmm register (X64 & AVX512+). -ASMJIT_DEF_REG(X86ZmmReg, zmm27, zmm[27]) //!< 512-bit Zmm register (X64 & AVX512+). -ASMJIT_DEF_REG(X86ZmmReg, zmm28, zmm[28]) //!< 512-bit Zmm register (X64 & AVX512+). -ASMJIT_DEF_REG(X86ZmmReg, zmm29, zmm[29]) //!< 512-bit Zmm register (X64 & AVX512+). -ASMJIT_DEF_REG(X86ZmmReg, zmm30, zmm[30]) //!< 512-bit Zmm register (X64 & AVX512+). -ASMJIT_DEF_REG(X86ZmmReg, zmm31, zmm[31]) //!< 512-bit Zmm register (X64 & AVX512+). +ASMJIT_DEF_REG(X86ZmmReg, zmm0 , zmm[0]) //!< 512-bit ZMM register. +ASMJIT_DEF_REG(X86ZmmReg, zmm1 , zmm[1]) //!< 512-bit ZMM register. +ASMJIT_DEF_REG(X86ZmmReg, zmm2 , zmm[2]) //!< 512-bit ZMM register. +ASMJIT_DEF_REG(X86ZmmReg, zmm3 , zmm[3]) //!< 512-bit ZMM register. +ASMJIT_DEF_REG(X86ZmmReg, zmm4 , zmm[4]) //!< 512-bit ZMM register. +ASMJIT_DEF_REG(X86ZmmReg, zmm5 , zmm[5]) //!< 512-bit ZMM register. +ASMJIT_DEF_REG(X86ZmmReg, zmm6 , zmm[6]) //!< 512-bit ZMM register. +ASMJIT_DEF_REG(X86ZmmReg, zmm7 , zmm[7]) //!< 512-bit ZMM register. +ASMJIT_DEF_REG(X86ZmmReg, zmm8 , zmm[8]) //!< 512-bit ZMM register (X64). +ASMJIT_DEF_REG(X86ZmmReg, zmm9 , zmm[9]) //!< 512-bit ZMM register (X64). +ASMJIT_DEF_REG(X86ZmmReg, zmm10, zmm[10]) //!< 512-bit ZMM register (X64). +ASMJIT_DEF_REG(X86ZmmReg, zmm11, zmm[11]) //!< 512-bit ZMM register (X64). +ASMJIT_DEF_REG(X86ZmmReg, zmm12, zmm[12]) //!< 512-bit ZMM register (X64). +ASMJIT_DEF_REG(X86ZmmReg, zmm13, zmm[13]) //!< 512-bit ZMM register (X64). +ASMJIT_DEF_REG(X86ZmmReg, zmm14, zmm[14]) //!< 512-bit ZMM register (X64). +ASMJIT_DEF_REG(X86ZmmReg, zmm15, zmm[15]) //!< 512-bit ZMM register (X64). +ASMJIT_DEF_REG(X86ZmmReg, zmm16, zmm[16]) //!< 512-bit ZMM register (X64 & AVX512+). +ASMJIT_DEF_REG(X86ZmmReg, zmm17, zmm[17]) //!< 512-bit ZMM register (X64 & AVX512+). +ASMJIT_DEF_REG(X86ZmmReg, zmm18, zmm[18]) //!< 512-bit ZMM register (X64 & AVX512+). +ASMJIT_DEF_REG(X86ZmmReg, zmm19, zmm[19]) //!< 512-bit ZMM register (X64 & AVX512+). +ASMJIT_DEF_REG(X86ZmmReg, zmm20, zmm[20]) //!< 512-bit ZMM register (X64 & AVX512+). +ASMJIT_DEF_REG(X86ZmmReg, zmm21, zmm[21]) //!< 512-bit ZMM register (X64 & AVX512+). +ASMJIT_DEF_REG(X86ZmmReg, zmm22, zmm[22]) //!< 512-bit ZMM register (X64 & AVX512+). +ASMJIT_DEF_REG(X86ZmmReg, zmm23, zmm[23]) //!< 512-bit ZMM register (X64 & AVX512+). +ASMJIT_DEF_REG(X86ZmmReg, zmm24, zmm[24]) //!< 512-bit ZMM register (X64 & AVX512+). +ASMJIT_DEF_REG(X86ZmmReg, zmm25, zmm[25]) //!< 512-bit ZMM register (X64 & AVX512+). +ASMJIT_DEF_REG(X86ZmmReg, zmm26, zmm[26]) //!< 512-bit ZMM register (X64 & AVX512+). +ASMJIT_DEF_REG(X86ZmmReg, zmm27, zmm[27]) //!< 512-bit ZMM register (X64 & AVX512+). +ASMJIT_DEF_REG(X86ZmmReg, zmm28, zmm[28]) //!< 512-bit ZMM register (X64 & AVX512+). +ASMJIT_DEF_REG(X86ZmmReg, zmm29, zmm[29]) //!< 512-bit ZMM register (X64 & AVX512+). +ASMJIT_DEF_REG(X86ZmmReg, zmm30, zmm[30]) //!< 512-bit ZMM register (X64 & AVX512+). +ASMJIT_DEF_REG(X86ZmmReg, zmm31, zmm[31]) //!< 512-bit ZMM register (X64 & AVX512+). ASMJIT_DEF_REG(X86KReg , k0 , k[0]) //!< 64-bit K register. ASMJIT_DEF_REG(X86KReg , k1 , k[1]) //!< 64-bit K register. @@ -2348,23 +2348,23 @@ ASMJIT_DEF_REG(X86KReg , k5 , k[5]) //!< 64-bit K register. ASMJIT_DEF_REG(X86KReg , k6 , k[6]) //!< 64-bit K register. ASMJIT_DEF_REG(X86KReg , k7 , k[7]) //!< 64-bit K register. -ASMJIT_DEF_REG(X86FpReg , fp0 , fp[0]) //!< 80-bit Fp register. -ASMJIT_DEF_REG(X86FpReg , fp1 , fp[1]) //!< 80-bit Fp register. -ASMJIT_DEF_REG(X86FpReg , fp2 , fp[2]) //!< 80-bit Fp register. -ASMJIT_DEF_REG(X86FpReg , fp3 , fp[3]) //!< 80-bit Fp register. -ASMJIT_DEF_REG(X86FpReg , fp4 , fp[4]) //!< 80-bit Fp register. -ASMJIT_DEF_REG(X86FpReg , fp5 , fp[5]) //!< 80-bit Fp register. -ASMJIT_DEF_REG(X86FpReg , fp6 , fp[6]) //!< 80-bit Fp register. -ASMJIT_DEF_REG(X86FpReg , fp7 , fp[7]) //!< 80-bit Fp register. +ASMJIT_DEF_REG(X86FpReg , fp0 , fp[0]) //!< 80-bit FPU register. +ASMJIT_DEF_REG(X86FpReg , fp1 , fp[1]) //!< 80-bit FPU register. +ASMJIT_DEF_REG(X86FpReg , fp2 , fp[2]) //!< 80-bit FPU register. +ASMJIT_DEF_REG(X86FpReg , fp3 , fp[3]) //!< 80-bit FPU register. +ASMJIT_DEF_REG(X86FpReg , fp4 , fp[4]) //!< 80-bit FPU register. +ASMJIT_DEF_REG(X86FpReg , fp5 , fp[5]) //!< 80-bit FPU register. +ASMJIT_DEF_REG(X86FpReg , fp6 , fp[6]) //!< 80-bit FPU register. +ASMJIT_DEF_REG(X86FpReg , fp7 , fp[7]) //!< 80-bit FPU register. -ASMJIT_DEF_REG(X86MmReg , mm0 , mm[0]) //!< 64-bit Mm register. -ASMJIT_DEF_REG(X86MmReg , mm1 , mm[1]) //!< 64-bit Mm register. -ASMJIT_DEF_REG(X86MmReg , mm2 , mm[2]) //!< 64-bit Mm register. -ASMJIT_DEF_REG(X86MmReg , mm3 , mm[3]) //!< 64-bit Mm register. -ASMJIT_DEF_REG(X86MmReg , mm4 , mm[4]) //!< 64-bit Mm register. -ASMJIT_DEF_REG(X86MmReg , mm5 , mm[5]) //!< 64-bit Mm register. -ASMJIT_DEF_REG(X86MmReg , mm6 , mm[6]) //!< 64-bit Mm register. -ASMJIT_DEF_REG(X86MmReg , mm7 , mm[7]) //!< 64-bit Mm register. +ASMJIT_DEF_REG(X86MmReg , mm0 , mm[0]) //!< 64-bit MMX register. +ASMJIT_DEF_REG(X86MmReg , mm1 , mm[1]) //!< 64-bit MMX register. +ASMJIT_DEF_REG(X86MmReg , mm2 , mm[2]) //!< 64-bit MMX register. +ASMJIT_DEF_REG(X86MmReg , mm3 , mm[3]) //!< 64-bit MMX register. +ASMJIT_DEF_REG(X86MmReg , mm4 , mm[4]) //!< 64-bit MMX register. +ASMJIT_DEF_REG(X86MmReg , mm5 , mm[5]) //!< 64-bit MMX register. +ASMJIT_DEF_REG(X86MmReg , mm6 , mm[6]) //!< 64-bit MMX register. +ASMJIT_DEF_REG(X86MmReg , mm7 , mm[7]) //!< 64-bit MMX register. ASMJIT_DEF_REG(X86SegReg, es , seg[1]) //!< Cs segment register. ASMJIT_DEF_REG(X86SegReg, cs , seg[2]) //!< Ss segment register. @@ -2378,15 +2378,15 @@ ASMJIT_DEF_REG(X86RipReg, rip, rip) //!< RIP register. #undef ASMJIT_DEF_REG -//! Create 8-bit Gpb-lo register operand. +//! Create 8-bit low GPB register operand. static ASMJIT_INLINE X86GpReg gpb_lo(uint32_t index) noexcept { return X86GpReg(kX86RegTypeGpbLo, index, 1); } -//! Create 8-bit Gpb-hi register operand. +//! Create 8-bit high GPB register operand. static ASMJIT_INLINE X86GpReg gpb_hi(uint32_t index) noexcept { return X86GpReg(kX86RegTypeGpbHi, index, 1); } -//! Create 16-bit Gpw register operand. +//! Create 16-bit GPW register operand. static ASMJIT_INLINE X86GpReg gpw(uint32_t index) noexcept { return X86GpReg(kX86RegTypeGpw, index, 2); } -//! Create 32-bit Gpd register operand. +//! Create 32-bit GPD register operand. static ASMJIT_INLINE X86GpReg gpd(uint32_t index) noexcept { return X86GpReg(kX86RegTypeGpd, index, 4); } -//! Create 64-bit Gpq register operand (X64). +//! Create 64-bit GPQ register operand (X64). static ASMJIT_INLINE X86GpReg gpq(uint32_t index) noexcept { return X86GpReg(kX86RegTypeGpq, index, 8); } //! Create 80-bit Fp register operand. static ASMJIT_INLINE X86FpReg fp(uint32_t index) noexcept { return X86FpReg(kX86RegTypeFp, index, 10); } @@ -2394,11 +2394,11 @@ static ASMJIT_INLINE X86FpReg fp(uint32_t index) noexcept { return X86FpReg(kX86 static ASMJIT_INLINE X86MmReg mm(uint32_t index) noexcept { return X86MmReg(kX86RegTypeMm, index, 8); } //! Create 64-bit K register operand. static ASMJIT_INLINE X86KReg k(uint32_t index) noexcept { return X86KReg(kX86RegTypeK, index, 8); } -//! Create 128-bit Xmm register operand. +//! Create 128-bit XMM register operand. static ASMJIT_INLINE X86XmmReg xmm(uint32_t index) noexcept { return X86XmmReg(kX86RegTypeXmm, index, 16); } -//! Create 256-bit Ymm register operand. +//! Create 256-bit YMM register operand. static ASMJIT_INLINE X86YmmReg ymm(uint32_t index) noexcept { return X86YmmReg(kX86RegTypeYmm, index, 32); } -//! Create 512-bit Zmm register operand. +//! Create 512-bit ZMM register operand. static ASMJIT_INLINE X86ZmmReg zmm(uint32_t index) noexcept { return X86ZmmReg(kX86RegTypeZmm, index, 64); } // ============================================================================ diff --git a/src/test/asmjit_test_opcode.h b/src/test/asmjit_test_opcode.h index 92f3b96..ca7f3f1 100644 --- a/src/test/asmjit_test_opcode.h +++ b/src/test/asmjit_test_opcode.h @@ -600,12 +600,182 @@ static void opcode(asmjit::X86Assembler& a, bool useRex1 = false, bool useRex2 = a.fucomp(fpB); a.fucompp(); a.fxam(); - a.fxrstor(anyptr_gpA); - a.fxsave(anyptr_gpA); a.fxtract(); a.fyl2x(); a.fyl2xp1(); + // FXSR. + a.fxrstor(anyptr_gpA); + a.fxsave(anyptr_gpA); + + // XSAVE. + a.nop(); + + a.xgetbv(); + a.xsetbv(); + + a.xsave(anyptr_gpA); + a.xsaveopt(anyptr_gpA); + a.xrstor(anyptr_gpA); + + // POPCNT. + a.nop(); + + a.popcnt(gdA, gdB); + a.popcnt(gzA, gzB); + a.popcnt(gdA, anyptr_gpB); + a.popcnt(gzA, anyptr_gpB); + + // LZCNT. + a.nop(); + + a.lzcnt(gdA, gdB); + a.lzcnt(gzA, gzB); + a.lzcnt(gdA, anyptr_gpB); + a.lzcnt(gzA, anyptr_gpB); + + // BMI. + a.nop(); + + a.andn(gdA, gdB, gdC); + a.andn(gzA, gzB, gzC); + a.andn(gdA, gdB, anyptr_gpC); + a.andn(gzA, gzB, anyptr_gpC); + a.bextr(gdA, gdB, gdC); + a.bextr(gzA, gzB, gzC); + a.bextr(gdA, anyptr_gpB, gdC); + a.bextr(gzA, anyptr_gpB, gzC); + a.blsi(gdA, gdB); + a.blsi(gzA, gzB); + a.blsi(gdA, anyptr_gpB); + a.blsi(gzA, anyptr_gpB); + a.blsmsk(gdA, gdB); + a.blsmsk(gzA, gzB); + a.blsmsk(gdA, anyptr_gpB); + a.blsmsk(gzA, anyptr_gpB); + a.blsr(gdA, gdB); + a.blsr(gzA, gzB); + a.blsr(gdA, anyptr_gpB); + a.blsr(gzA, anyptr_gpB); + a.tzcnt(gdA, gdB); + a.tzcnt(gzA, gzB); + a.tzcnt(gdA, anyptr_gpB); + a.tzcnt(gzA, anyptr_gpB); + + // BMI2. + a.nop(); + + a.bzhi(gdA, gdB, gdC); + a.bzhi(gzA, gzB, gzC); + a.bzhi(gdA, anyptr_gpB, gdC); + a.bzhi(gzA, anyptr_gpB, gzC); + a.mulx(gdA, gdB, gdC); + a.mulx(gzA, gzB, gzC); + a.mulx(gdA, gdB, anyptr_gpC); + a.mulx(gzA, gzB, anyptr_gpC); + a.pdep(gdA, gdB, gdC); + a.pdep(gzA, gzB, gzC); + a.pdep(gdA, gdB, anyptr_gpC); + a.pdep(gzA, gzB, anyptr_gpC); + a.pext(gdA, gdB, gdC); + a.pext(gzA, gzB, gzC); + a.pext(gdA, gdB, anyptr_gpC); + a.pext(gzA, gzB, anyptr_gpC); + a.rorx(gdA, gdB, 0); + a.rorx(gzA, gzB, 0); + a.rorx(gdA, anyptr_gpB, 0); + a.rorx(gzA, anyptr_gpB, 0); + a.sarx(gdA, gdB, gdC); + a.sarx(gzA, gzB, gzC); + a.sarx(gdA, anyptr_gpB, gdC); + a.sarx(gzA, anyptr_gpB, gzC); + a.shlx(gdA, gdB, gdC); + a.shlx(gzA, gzB, gzC); + a.shlx(gdA, anyptr_gpB, gdC); + a.shlx(gzA, anyptr_gpB, gzC); + a.shrx(gdA, gdB, gdC); + a.shrx(gzA, gzB, gzC); + a.shrx(gdA, anyptr_gpB, gdC); + a.shrx(gzA, anyptr_gpB, gzC); + + // ADX. + a.nop(); + + a.adcx(gdA, gdB); + a.adcx(gzA, gzB); + a.adcx(gdA, anyptr_gpB); + a.adcx(gzA, anyptr_gpB); + a.adox(gdA, gdB); + a.adox(gzA, gzB); + a.adox(gdA, anyptr_gpB); + a.adox(gzA, anyptr_gpB); + + // TBM. + a.nop(); + + a.blcfill(gdA, gdB); + a.blcfill(gzA, gzB); + a.blcfill(gdA, anyptr_gpB); + a.blcfill(gzA, anyptr_gpB); + + a.blci(gdA, gdB); + a.blci(gzA, gzB); + a.blci(gdA, anyptr_gpB); + a.blci(gzA, anyptr_gpB); + + a.blcic(gdA, gdB); + a.blcic(gzA, gzB); + a.blcic(gdA, anyptr_gpB); + a.blcic(gzA, anyptr_gpB); + + a.blcmsk(gdA, gdB); + a.blcmsk(gzA, gzB); + a.blcmsk(gdA, anyptr_gpB); + a.blcmsk(gzA, anyptr_gpB); + + a.blcs(gdA, gdB); + a.blcs(gzA, gzB); + a.blcs(gdA, anyptr_gpB); + a.blcs(gzA, anyptr_gpB); + + a.blsfill(gdA, gdB); + a.blsfill(gzA, gzB); + a.blsfill(gdA, anyptr_gpB); + a.blsfill(gzA, anyptr_gpB); + + a.blsic(gdA, gdB); + a.blsic(gzA, gzB); + a.blsic(gdA, anyptr_gpB); + a.blsic(gzA, anyptr_gpB); + + a.t1mskc(gdA, gdB); + a.t1mskc(gzA, gzB); + a.t1mskc(gdA, anyptr_gpB); + a.t1mskc(gzA, anyptr_gpB); + + a.tzmsk(gdA, gdB); + a.tzmsk(gzA, gzB); + a.tzmsk(gdA, anyptr_gpB); + a.tzmsk(gzA, anyptr_gpB); + + // CLFLUSH / CLFLUSH_OPT. + a.nop(); + a.clflush(anyptr_gpA); + a.clflushopt(anyptr_gpA); + + // PREFETCHW / PREFETCHWT1. + a.nop(); + a.prefetchw(anyptr_gpA); + a.prefetchwt1(anyptr_gpA); + + // RDRAND / RDSEED. + a.nop(); + + a.rdrand(gdA); + a.rdrand(gzA); + a.rdseed(gdA); + a.rdseed(gzA); + // MMX/MMX-EXT. a.nop(); @@ -713,6 +883,8 @@ static void opcode(asmjit::X86Assembler& a, bool useRex1 = false, bool useRex2 = // 3DNOW! a.nop(); + a.pavgusb(mmA, mmB); + a.pavgusb(mmA, anyptr_gpB); a.pf2id(mmA, mmB); a.pf2id(mmA, anyptr_gpB); a.pf2iw(mmA, mmB); @@ -755,10 +927,11 @@ static void opcode(asmjit::X86Assembler& a, bool useRex1 = false, bool useRex2 = a.pi2fd(mmA, anyptr_gpB); a.pi2fw(mmA, mmB); a.pi2fw(mmA, anyptr_gpB); + a.pmulhrw(mmA, mmB); + a.pmulhrw(mmA, anyptr_gpB); a.pswapd(mmA, mmB); a.pswapd(mmA, anyptr_gpB); a.prefetch3dnow(anyptr_gpA); - a.prefetchw3dnow(anyptr_gpA); a.femms(); // SSE. @@ -899,7 +1072,6 @@ static void opcode(asmjit::X86Assembler& a, bool useRex1 = false, bool useRex2 = a.andnpd(xmmA, anyptr_gpB); a.andpd(xmmA, xmmB); a.andpd(xmmA, anyptr_gpB); - a.clflush(anyptr_gpA); a.cmppd(xmmA, xmmB, 0); a.cmppd(xmmA, anyptr_gpB, 0); a.cmpsd(xmmA, xmmB, 0); @@ -1358,12 +1530,6 @@ static void opcode(asmjit::X86Assembler& a, bool useRex1 = false, bool useRex2 = a.movntsd(anyptr_gpA, xmmB); a.movntss(anyptr_gpA, xmmB); - // POPCNT. - a.nop(); - - a.popcnt(gzA, gzB); - a.popcnt(gzA, anyptr_gpB); - // AESNI. a.nop(); @@ -1380,22 +1546,30 @@ static void opcode(asmjit::X86Assembler& a, bool useRex1 = false, bool useRex2 = a.aeskeygenassist(xmmA, xmmB, 0); a.aeskeygenassist(xmmA, anyptr_gpB, 0); + // SHA. + a.nop(); + + a.sha1msg1(xmmA, xmmB); + a.sha1msg1(xmmA, anyptr_gpB); + a.sha1msg2(xmmA, xmmB); + a.sha1msg2(xmmA, anyptr_gpB); + a.sha1nexte(xmmA, xmmB); + a.sha1nexte(xmmA, anyptr_gpB); + a.sha1rnds4(xmmA, xmmB, 0); + a.sha1rnds4(xmmA, anyptr_gpB, 0); + a.sha256msg1(xmmA, xmmB); + a.sha256msg1(xmmA, anyptr_gpB); + a.sha256msg2(xmmA, xmmB); + a.sha256msg2(xmmA, anyptr_gpB); + a.sha256rnds2(xmmA, xmmB); + a.sha256rnds2(xmmA, anyptr_gpB); + // PCLMULQDQ. a.nop(); a.pclmulqdq(xmmA, xmmB, 0); a.pclmulqdq(xmmA, anyptr_gpB, 0); - // XSAVE. - a.nop(); - - a.xgetbv(); - a.xsetbv(); - - a.xsave(anyptr_gpA); - a.xsaveopt(anyptr_gpA); - a.xrstor(anyptr_gpA); - // AVX. a.nop(); @@ -2823,87 +2997,6 @@ static void opcode(asmjit::X86Assembler& a, bool useRex1 = false, bool useRex2 = a.vpshlw(xmmA, anyptr_gpB, xmmC); a.vpshlw(xmmA, xmmB, anyptr_gpC); - // BMI. - a.nop(); - - a.andn(gdA, gdB, gdC); - a.andn(gzA, gzB, gzC); - a.andn(gdA, gdB, anyptr_gpC); - a.andn(gzA, gzB, anyptr_gpC); - a.bextr(gdA, gdB, gdC); - a.bextr(gzA, gzB, gzC); - a.bextr(gdA, anyptr_gpB, gdC); - a.bextr(gzA, anyptr_gpB, gzC); - a.blsi(gdA, gdB); - a.blsi(gzA, gzB); - a.blsi(gdA, anyptr_gpB); - a.blsi(gzA, anyptr_gpB); - a.blsmsk(gdA, gdB); - a.blsmsk(gzA, gzB); - a.blsmsk(gdA, anyptr_gpB); - a.blsmsk(gzA, anyptr_gpB); - a.blsr(gdA, gdB); - a.blsr(gzA, gzB); - a.blsr(gdA, anyptr_gpB); - a.blsr(gzA, anyptr_gpB); - - // LZCNT. - a.nop(); - - a.lzcnt(gdA, gdB); - a.lzcnt(gzA, gzB); - a.lzcnt(gdA, anyptr_gpB); - a.lzcnt(gzA, anyptr_gpB); - - // TZCNT. - a.nop(); - - a.tzcnt(gdA, gdB); - a.tzcnt(gzA, gzB); - a.tzcnt(gdA, anyptr_gpB); - a.tzcnt(gzA, anyptr_gpB); - - // BMI2. - a.nop(); - - a.bzhi(gdA, gdB, gdC); - a.bzhi(gzA, gzB, gzC); - a.bzhi(gdA, anyptr_gpB, gdC); - a.bzhi(gzA, anyptr_gpB, gzC); - a.mulx(gdA, gdB, gdC); - a.mulx(gzA, gzB, gzC); - a.mulx(gdA, gdB, anyptr_gpC); - a.mulx(gzA, gzB, anyptr_gpC); - a.pdep(gdA, gdB, gdC); - a.pdep(gzA, gzB, gzC); - a.pdep(gdA, gdB, anyptr_gpC); - a.pdep(gzA, gzB, anyptr_gpC); - a.pext(gdA, gdB, gdC); - a.pext(gzA, gzB, gzC); - a.pext(gdA, gdB, anyptr_gpC); - a.pext(gzA, gzB, anyptr_gpC); - a.rorx(gdA, gdB, 0); - a.rorx(gzA, gzB, 0); - a.rorx(gdA, anyptr_gpB, 0); - a.rorx(gzA, anyptr_gpB, 0); - a.sarx(gdA, gdB, gdC); - a.sarx(gzA, gzB, gzC); - a.sarx(gdA, anyptr_gpB, gdC); - a.sarx(gzA, anyptr_gpB, gzC); - a.shlx(gdA, gdB, gdC); - a.shlx(gzA, gzB, gzC); - a.shlx(gdA, anyptr_gpB, gdC); - a.shlx(gzA, anyptr_gpB, gzC); - a.shrx(gdA, gdB, gdC); - a.shrx(gzA, gzB, gzC); - a.shrx(gdA, anyptr_gpB, gdC); - a.shrx(gzA, anyptr_gpB, gzC); - - // RDRAND. - a.nop(); - - a.rdrand(gzA); - // F16C. a.nop(); diff --git a/src/test/asmjit_test_unit.cpp b/src/test/asmjit_test_unit.cpp index 16a4420..f130eac 100644 --- a/src/test/asmjit_test_unit.cpp +++ b/src/test/asmjit_test_unit.cpp @@ -79,6 +79,8 @@ static void dumpCpu(void) { { asmjit::CpuInfo::kX86FeatureCMPXCHG16B , "CMPXCHG16B" }, { asmjit::CpuInfo::kX86FeatureCLFLUSH , "CLFLUSH" }, { asmjit::CpuInfo::kX86FeatureCLFLUSH_OPT , "CLFLUSH (Opt)" }, + { asmjit::CpuInfo::kX86FeatureCLWB , "CLWB" }, + { asmjit::CpuInfo::kX86FeaturePCOMMIT , "PCOMMIT" }, { asmjit::CpuInfo::kX86FeaturePREFETCH , "PREFETCH" }, { asmjit::CpuInfo::kX86FeaturePREFETCHWT1 , "PREFETCHWT1" }, { asmjit::CpuInfo::kX86FeatureLAHF_SAHF , "LAHF/SAHF" }, @@ -104,6 +106,8 @@ static void dumpCpu(void) { { asmjit::CpuInfo::kX86FeaturePCLMULQDQ , "PCLMULQDQ" }, { asmjit::CpuInfo::kX86FeatureRDRAND , "RDRAND" }, { asmjit::CpuInfo::kX86FeatureRDSEED , "RDSEED" }, + { asmjit::CpuInfo::kX86FeatureSMAP , "SMAP" }, + { asmjit::CpuInfo::kX86FeatureSMEP , "SMEP" }, { asmjit::CpuInfo::kX86FeatureSHA , "SHA" }, { asmjit::CpuInfo::kX86FeatureXSAVE , "XSAVE" }, { asmjit::CpuInfo::kX86FeatureXSAVE_OS , "XSAVE (OS)" }, @@ -115,19 +119,22 @@ static void dumpCpu(void) { { asmjit::CpuInfo::kX86FeatureXOP , "XOP" }, { asmjit::CpuInfo::kX86FeatureBMI , "BMI" }, { asmjit::CpuInfo::kX86FeatureBMI2 , "BMI2" }, + { asmjit::CpuInfo::kX86FeatureADX , "ADX" }, + { asmjit::CpuInfo::kX86FeatureTBM , "TBM" }, + { asmjit::CpuInfo::kX86FeatureMPX , "MPX" }, { asmjit::CpuInfo::kX86FeatureHLE , "HLE" }, { asmjit::CpuInfo::kX86FeatureRTM , "RTM" }, - { asmjit::CpuInfo::kX86FeatureADX , "ADX" }, - { asmjit::CpuInfo::kX86FeatureMPX , "MPX" }, + { asmjit::CpuInfo::kX86FeatureERMS , "ERMS" }, { asmjit::CpuInfo::kX86FeatureFSGSBASE , "FS/GS Base" }, - { asmjit::CpuInfo::kX86FeatureMOVSBSTOSB_OPT, "REP MOVSB/STOSB (Opt)" }, { asmjit::CpuInfo::kX86FeatureAVX512F , "AVX512F" }, { asmjit::CpuInfo::kX86FeatureAVX512CD , "AVX512CD" }, { asmjit::CpuInfo::kX86FeatureAVX512PF , "AVX512PF" }, { asmjit::CpuInfo::kX86FeatureAVX512ER , "AVX512ER" }, { asmjit::CpuInfo::kX86FeatureAVX512DQ , "AVX512DQ" }, { asmjit::CpuInfo::kX86FeatureAVX512BW , "AVX512BW" }, - { asmjit::CpuInfo::kX86FeatureAVX512VL , "AVX512VL" } + { asmjit::CpuInfo::kX86FeatureAVX512VL , "AVX512VL" }, + { asmjit::CpuInfo::kX86FeatureAVX512IFMA , "AVX512IFMA" }, + { asmjit::CpuInfo::kX86FeatureAVX512VBMI , "AVX512VBMI" } }; INFO("X86 Specific:"); diff --git a/tools/src-gendefs.js b/tools/src-gendefs.js index a1bcdf3..6393ce7 100644 --- a/tools/src-gendefs.js +++ b/tools/src-gendefs.js @@ -12,290 +12,303 @@ var fs = require("fs"); var hasOwn = Object.prototype.hasOwnProperty; // ---------------------------------------------------------------------------- -// [Utilities] +// [Misc] // ---------------------------------------------------------------------------- -function upFirst(s) { - if (!s) return ""; - return s[0].toUpperCase() + s.substr(1); -} +const kIndent = " "; +const kJustify = 79; -function trimLeft(s) { - return s.replace(/^\s+/, ""); -} +const kDisclaimerStart = "// ------------------- Automatically generated, do not edit -------------------\n"; +const kDisclaimerEnd = "// ----------------------------------------------------------------------------\n"; -function padLeft(s, n) { - while (s.length < n) - s += " "; - return s; -} +// ---------------------------------------------------------------------------- +// [Utils] +// ---------------------------------------------------------------------------- -function inject(s, start, end, code) { - var iStart = s.indexOf(start); - var iEnd = s.indexOf(end); +class Utils { + static upFirst(s) { + if (!s) return ""; + return s[0].toUpperCase() + s.substr(1); + } - if (iStart === -1) - throw new Error("Couldn't locate start mark."); + static trimLeft(s) { + return s.replace(/^\s+/, ""); + } - if (iEnd === -1) - throw new Error("Couldn't locate end mark."); + static padLeft(s, n) { + while (s.length < n) + s += " "; + return s; + } - return s.substr(0, iStart + start.length) + code + s.substr(iEnd); + static inject(s, start, end, code) { + var iStart = s.indexOf(start); + var iEnd = s.indexOf(end); + + if (iStart === -1) + throw new Error(`Couldn't locate start mark.`); + + if (iEnd === -1) + throw new Error(`Couldn't locate end mark.`); + + return s.substr(0, iStart + start.length) + code + s.substr(iEnd); + } } // ---------------------------------------------------------------------------- // [IndexedString] // ---------------------------------------------------------------------------- -var IndexedString = function() { - this.map = {}; - this.size = -1; - this.array = []; -}; +class IndexedString { + constructor() { + this.map = Object.create(null); + this.size = -1; + this.array = []; + } -IndexedString.prototype.add = function(s) { - this.map[s] = -1; -}; + add(s) { + this.map[s] = -1; + } -IndexedString.prototype.index = function() { - var map = this.map; - var array = this.array; + index() { + const map = this.map; + const array = this.array; + const partialMap = Object.create(null); - var partialMap = {}; - var k, kp; - var i, len; + var k, kp; + var i, len; - // Create a map that will contain all keys and partial keys. - for (k in map) { - if (!k) { - partialMap[k] = k; - } - else { - for (i = 0, len = k.length; i < len; i++) { - var kp = k.substr(i); - if (!hasOwn.call(partialMap, kp) || partialMap[kp].length < len) - partialMap[kp] = k; + // Create a map that will contain all keys and partial keys. + for (k in map) { + if (!k) { + partialMap[k] = k; + } + else { + for (i = 0, len = k.length; i < len; i++) { + kp = k.substr(i); + if (!hasOwn.call(partialMap, kp) || partialMap[kp].length < len) + partialMap[kp] = k; + } } } - } - // Create an array that will only contain keys that are needed. - for (k in map) { - if (partialMap[k] === k) - array.push(k); - } - array.sort(); + // Create an array that will only contain keys that are needed. + for (k in map) + if (partialMap[k] === k) + array.push(k); + array.sort(); - // Create valid offsets to the `array`. - var offMap = {}; - var offset = 0; + // Create valid offsets to the `array`. + var offMap = {}; + var offset = 0; - for (i = 0, len = array.length; i < len; i++) { - k = array[i]; - - offMap[k] = offset; - offset += k.length + 1; - } - this.size = offset; - - // Assign valid offsets to `map`. - for (kp in map) { - k = partialMap[kp]; - map[kp] = offMap[k] + k.length - kp.length; - } - - /* - (function() { - // Testing code to experiment with eliminating suffixes from instruction names. - var suffixList = [ - "ss", "ps", "sd", "pd", - "bw", "bd", "bq", - "ww", "wd", "wq", - "dq", "b", "w", "d", "q" - ]; - var reducedMap = {}; - var reducedSize = 0; - - var xMap = {}; - var xArr = []; - for (i = 0, len = array.length; i < len; i++) { k = array[i]; - var suffix = null; - var after = k; - - for (var j = 0; j < suffixList.length; j++) { - suffix = suffixList[j]; - if (k.lastIndexOf(suffix) === k.length - suffix.length) { - after = k.substr(0, k.length - suffix.length); - break; - } - } - - reducedMap[after] = true; + offMap[k] = offset; + offset += k.length + 1; } + this.size = offset; - // Testing code to get which suffixes are the most used. - for (k in map) { - for (i = 1; i < k.length; i++) { - var xKey = k.substr(i); - if (hasOwn.call(xMap, xKey)) { - xMap[xKey]++; - } - else { - xMap[xKey] = 1; - xArr.push(xKey); - } - } + // Assign valid offsets to `map`. + for (kp in map) { + k = partialMap[kp]; + map[kp] = offMap[k] + k.length - kp.length; } - - xArr.sort(function(a, b) { - return xMap[a] - xMap[b]; - }); - for (i = 0; i < xArr.length; i++) { - console.log(xArr[i] + " " + xMap[xArr[i]]); - } - - for (k in reducedMap) - reducedSize += k.length + 1; - console.log("ReducedSize=" + reducedSize); - })(); - */ -}; - -IndexedString.prototype.format = function(indent) { - if (this.size === -1) - throw new Error("IndexedString - not indexed yet, call index()"); - - var s = ""; - var array = this.array; - - for (var i = 0; i < array.length; i++) { - s += indent + "\"" + array[i]; - s += (i !== array.length - 1) ? "\\0\"" : "\";"; - s += "\n"; } - return s; -}; + format(indent, justify) { + if (this.size === -1) + throw new Error(`IndexedString - not indexed yet, call index()`); -IndexedString.prototype.getSize = function() { - if (this.size === -1) - throw new Error("IndexedString - not indexed yet, call index()"); - return this.size; -}; + const array = this.array; + if (!justify) justify = 0; -IndexedString.prototype.getIndex = function(k) { - if (this.size === -1) - throw new Error("IndexedString - not indexed yet, call index()"); + var i; + var s = ""; + var line = ""; - if (!hasOwn.call(this.map, k)) - throw new Error("IndexedString - key '" + k + "' not found."); + for (i = 0; i < array.length; i++) { + const item = "\"" + array[i] + ((i !== array.length - 1) ? "\\0\"" : "\";"); + const newl = line + (line ? " " : indent) + item; - return this.map[k]; -}; + if (newl.length <= justify) { + line = newl; + continue; + } + else { + s += line + "\n"; + line = indent + item; + } + } + + s += line + "\n"; + return s; + } + + getSize() { + if (this.size === -1) + throw new Error(`IndexedString - not indexed yet, call index()`); + return this.size; + } + + getIndex(k) { + if (this.size === -1) + throw new Error(`IndexedString - not indexed yet, call index()`); + + if (!hasOwn.call(this.map, k)) + throw new Error(`IndexedString - key '${k}' not found.`); + + return this.map[k]; + } +} // ---------------------------------------------------------------------------- // [Database] // ---------------------------------------------------------------------------- -var Database = function() { - this.instMap = {}; - this.instNames = new IndexedString(); - this.instAlpha = new Array(26); +class Database { + constructor() { + this.instMap = Object.create(null); + this.instArray = []; - this.extendedData = []; - this.extendedMap = {}; -}; + this.instNames = new IndexedString(); + this.instAlpha = new Array(26); -Database.prototype.add = function(name, id, extendedData) { - this.instMap[name] = { - id : id, // Instruction ID. - nameIndex : -1, // Instruction name-index. - extendedData : extendedData, - extendedIndex : "" - }; - this.instNames.add(name); -}; + this.extendedData = []; + this.extendedMap = {}; + } -Database.prototype.index = function() { - var instMap = this.instMap; - var instNames = this.instNames; - var instAlpha = this.instAlpha; + add(name, enum_, id, extendedData) { + const inst = { + id : id, // Instruction index (number). + name : name, // Instruction name. + enum : enum_, // Instruction enum string. + nameIndex : -1, // Instruction name-index. + extendedData : extendedData, + extendedIndex : "" + }; - var extendedData = this.extendedData; - var extendedMap = this.extendedMap; + this.instMap[name] = inst; + this.instArray[id] = inst; - instNames.index(); + this.instNames.add(name); + } - for (var name in instMap) { - var inst = instMap[name]; + index() { + const instMap = this.instMap; + const instNames = this.instNames; + const instAlpha = this.instAlpha; - var nameIndex = instNames.getIndex(name); - var extendedIndex = extendedMap[inst.extendedData]; + var extendedData = this.extendedData; + var extendedMap = this.extendedMap; - if (typeof extendedIndex !== "number") { - extendedIndex = extendedData.length; - extendedMap[inst.extendedData] = extendedIndex; - extendedData.push(inst.extendedData); + instNames.index(); + + for (var name in instMap) { + var inst = instMap[name]; + + var nameIndex = instNames.getIndex(name); + var extendedIndex = extendedMap[inst.extendedData]; + + if (typeof extendedIndex !== "number") { + extendedIndex = extendedData.length; + extendedMap[inst.extendedData] = extendedIndex; + extendedData.push(inst.extendedData); + } + + inst.nameIndex = nameIndex; + inst.extendedIndex = extendedIndex; + + var aIndex = name.charCodeAt(0) - 'a'.charCodeAt(0); + if (aIndex < 0 || aIndex >= 26) + throw new Error("Alphabetical index error"); + + if (instAlpha[aIndex] === undefined) + instAlpha[aIndex] = inst.enum; + } + } + + formatInstNameIndex(indent, justify) { + const instArray = this.instArray; + if (!justify) justify = 0; + + for (var i = 0; i < instArray; i++) { + const inst = instArray[i]; + if (inst === undefined) + throw new Error(`Database - no instruction #${i}`); } - inst.nameIndex = nameIndex; - inst.extendedIndex = extendedIndex; + var i; + var s = ""; + var line = ""; - var aIndex = name.charCodeAt(0) - 'a'.charCodeAt(0); - if (aIndex < 0 || aIndex >= 26) - throw new Error("Alphabetical index error"); + for (i = 0; i < instArray.length; i++) { + const inst = instArray[i]; + if (inst === undefined) + throw new Error(`Database - no instruction #${i}`); - if (instAlpha[aIndex] === undefined) - instAlpha[aIndex] = inst.id; + const item = String(inst.nameIndex) + ((i !== instArray.length - 1) ? "," : ""); + const newl = line + (line ? " " : indent) + item; + + if (newl.length <= justify) { + line = newl; + continue; + } + else { + s += line + "\n"; + line = indent + item; + } + } + + s += line + "\n"; + return s; } -}; +} // ---------------------------------------------------------------------------- // [Generate] // ---------------------------------------------------------------------------- -var decToHex = function(n, nPad) { +function decToHex(n, nPad) { var hex = Number(n < 0 ? 0x100000000 + n : n).toString(16); while (nPad > hex.length) hex = "0" + hex; return "0x" + hex.toUpperCase(); -}; +} -var getEFlagsMask = function(eflags, passing) { +function getEFlagsMask(eflags, passing) { var msk = 0x0; var bit = 0x1; - for (var i = 0; i < 8; i++, bit <<= 1) { + for (var i = 0; i < 8; i++, bit <<= 1) if (passing.indexOf(eflags[i]) !== -1) msk |= bit; - } return msk; -}; +} -var generate = function(fileName, arch) { - var Arch = upFirst(arch); - var oldData = fs.readFileSync(fileName, "utf8").replace(/\r\n/g, "\n"); +function generate(fileName, arch) { + const Arch = Utils.upFirst(arch); + const oldData = fs.readFileSync(fileName, "utf8").replace(/\r\n/g, "\n"); var data = oldData; var code = ""; - var disclaimer = "// Automatically generated, do not edit.\n"; var instCount = 0; var sizeof_X86InstInfo = 8; var sizeof_X86InstExtendedInfo = 24; + var kX86InstPrefix = "kX86InstId"; + // Create database. var db = new Database(); var re = new RegExp( "INST\\(([A-Za-z0-9_]+)\\s*," + // [01] Id. "\\s*\\\"([A-Za-z0-9_ ]*)\\\"\\s*," + // [02] Name. - "(.{20}[^,]*)," + // [03] Opcode[0]. - "(.{20}[^,]*)," + // [04] Opcode[1]. - "([^,]+)," + // [05] Encoding. + "([^,]+)," + // [03] Encoding. + "(.{20}[^,]*)," + // [04] Opcode[0]. + "(.{20}[^,]*)," + // [05] Opcode[1]. "([^,]+)," + // [06] IFLAGS. "\\s*EF\\(([A-Z_]+)\\)\\s*," + // [07] EFLAGS. "([^,]+)," + // [08] Write-Index. @@ -308,62 +321,41 @@ var generate = function(fileName, arch) { "g"); var i, k, m; - var srcForm = ""; + var opCombinations = {}; while (m = re.exec(data)) { // Extract instruction ID and Name. - var id = m[1]; - var name = m[2]; + const enum_ = kX86InstPrefix + m[1]; + const name = m[2]; // Extract data that goes to the secondary table (X86InstExtendedInfo). - var opcode0 = trimLeft(m[3]); - var opcode1 = trimLeft(m[4]); - var encoding = trimLeft(m[5]); - var iflags = trimLeft(m[6]); - var eflags = m[7]; - var writeIndex = trimLeft(m[8]); - var writeSize = trimLeft(m[9]); - var oflags0 = trimLeft(m[10]); - var oflags1 = trimLeft(m[11]); - var oflags2 = trimLeft(m[12]); - var oflags3 = trimLeft(m[13]); - var oflags4 = trimLeft(m[14]); + const encoding = Utils.trimLeft(m[3]); + const opcode0 = Utils.trimLeft(m[4]); + const opcode1 = Utils.trimLeft(m[5]); + const iflags = Utils.trimLeft(m[6]); + const eflags = m[7]; + const writeIndex = Utils.trimLeft(m[8]); + const writeSize = Utils.trimLeft(m[9]); + const oflags0 = Utils.trimLeft(m[10]); + const oflags1 = Utils.trimLeft(m[11]); + const oflags2 = Utils.trimLeft(m[12]); + const oflags3 = Utils.trimLeft(m[13]); + const oflags4 = Utils.trimLeft(m[14]); // Generate EFlags-In and EFlags-Out. var eflagsIn = decToHex(getEFlagsMask(eflags, "RX" ), 2); var eflagsOut = decToHex(getEFlagsMask(eflags, "WXU"), 2); - var extData = - encoding + ", " + - writeIndex + ", " + - writeSize + ", " + - eflagsIn + ", " + - eflagsOut + ", " + - "0" + ", " + - "{ " + oflags0 + ", " + oflags1 + ", " + oflags2 + ", " + oflags3 + ", " + oflags4 + " }, " + - iflags + ", " + - opcode1; + var ops = `{ ${oflags0}, ${oflags1}, ${oflags2}, ${oflags3}, ${oflags4} }`; + var extData = `${encoding}, ${writeIndex}, ${writeSize}, ${eflagsIn}, ${eflagsOut}, 0, ${ops}, ${iflags}, ${opcode1}`; - srcForm += " INST(" + - padLeft(id, 27) + ", " + - padLeft('"' + name + '"', 19) + ", " + - opcode0 + ", " + - opcode1 + ", " + - encoding + ", " + - iflags + ", " + - "EF(" + eflags + "), " + - writeIndex + ", " + - writeSize + ", " + - oflags0 + ", " + - oflags1 + ", " + - oflags2 + ", " + - oflags3 + ", " + - oflags4 + "),\n"; + if (!opCombinations[ops]) opCombinations[ops] = 0; + opCombinations[ops]++; - db.add(name, id, extData); + db.add(name, enum_, instCount, extData); instCount++; } - // fs.writeFileSync("srcform.cpp", srcForm, "utf8"); + db.index(); var instDataSize = instCount * sizeof_X86InstInfo + db.extendedData.length * sizeof_X86InstExtendedInfo; @@ -373,83 +365,83 @@ var generate = function(fileName, arch) { console.log("Instructions' Data Size: " + instDataSize); console.log("Instructions' Names Size: " + db.instNames.getSize()); - // Generate InstName[] string. - code += disclaimer; - code += "#if !defined(ASMJIT_DISABLE_NAMES)\n"; - code += "const char _" + arch + "InstName[] =\n"; - code += db.instNames.format(" ") + "\n"; + // Generate _x86InstNameData[]. + code += kDisclaimerStart; + code += `#if !defined(ASMJIT_DISABLE_NAMES)\n`; + + code += `static const char _${arch}InstNameData[] =\n`; + code += db.instNames.format(kIndent, kJustify); + code += kDisclaimerEnd; + code += `\n`; + + // Generate _x86InstNameIndex[]. + code += `static const uint16_t _${arch}InstNameIndex[] = {\n`; + code += db.formatInstNameIndex(kIndent, kJustify); + code += `};\n`; + code += `\n`; // Generate AlphaIndex. - code += disclaimer; - code += "enum " + Arch + "InstAlphaIndex {\n"; - code += " k" + Arch + "InstAlphaIndexFirst = 'a',\n"; - code += " k" + Arch + "InstAlphaIndexLast = 'z',\n"; - code += " k" + Arch + "InstAlphaIndexInvalid = 0xFFFF\n"; - code += "};\n"; - code += "\n"; + code += `enum ${Arch}InstAlphaIndex {\n`; + code += ` k${Arch}InstAlphaIndexFirst = 'a',\n`; + code += ` k${Arch}InstAlphaIndexLast = 'z',\n`; + code += ` k${Arch}InstAlphaIndexInvalid = 0xFFFF\n`; + code += `};\n`; + code += `\n`; - code += disclaimer; - code += "static const uint16_t _" + arch + "InstAlphaIndex[26] = {\n"; + code += `static const uint16_t _${arch}InstAlphaIndex[26] = {\n`; for (i = 0; i < db.instAlpha.length; i++) { var id = db.instAlpha[i]; - code += " " + (id === undefined ? "0xFFFF" : id); + code += kIndent + (id === undefined ? "0xFFFF" : id); if (i !== db.instAlpha.length - 1) - code += ","; - code += "\n"; + code += `,`; + code += `\n`; } - code += "};\n\n"; + code += `};\n`; - // Generate NameIndex. - code += disclaimer; - code += "enum " + Arch + "InstData_NameIndex {\n"; - for (k in db.instMap) { - var inst = db.instMap[k]; - code += " " + inst.id + "_NameIndex = " + inst.nameIndex + ",\n"; - } - code = code.substr(0, code.length - 2) + "\n};\n"; - code += "#endif // !ASMJIT_DISABLE_NAMES\n" - code += "\n"; + code += `#endif // !ASMJIT_DISABLE_NAMES\n`; + code += kDisclaimerEnd; + code += `\n`; // Generate ExtendedInfo. - code += disclaimer; - code += "const " + Arch + "InstExtendedInfo _" + arch + "InstExtendedInfo[] = {\n"; + code += kDisclaimerStart; + code += `const ${Arch}InstExtendedInfo _${arch}InstExtendedInfo[] = {\n`; for (i = 0; i < db.extendedData.length; i++) { - code += " { " + db.extendedData[i] + " }"; - if (i !== db.extendedData.length - 1) - code += ","; - code += "\n"; + code += `${kIndent}{ ${db.extendedData[i]} }`; + if (i !== db.extendedData.length - 1) code += `,`; + code += `\n`; } - code += "};\n"; - code += "\n"; + code += `};\n`; + code += kDisclaimerEnd; + code += `\n`; - code += disclaimer; - code += "enum " + Arch + "InstData_ExtendedIndex {\n"; + code += kDisclaimerStart; + code += `enum ${Arch}InstData_ExtendedIndex {\n`; for (k in db.instMap) { var inst = db.instMap[k]; - code += " " + inst.id + "_ExtendedIndex = " + inst.extendedIndex + ",\n"; + code += `${kIndent} ${inst.enum}_ExtendedIndex = ${inst.extendedIndex},\n`; } code = code.substr(0, code.length - 2) + "\n};\n"; + code += kDisclaimerEnd; // Inject. - data = inject(data, + data = Utils.inject(data, "// ${" + Arch + "InstData:Begin}\n", - "// ${" + Arch + "InstData:End}\n", - code); + "// ${" + Arch + "InstData:End}\n", code); // Save only if modified. if (data !== oldData) fs.writeFileSync(fileName, data, "utf8"); -}; +} // ---------------------------------------------------------------------------- // [Main] // ---------------------------------------------------------------------------- -var main = function(files) { +function main(files) { files.forEach(function(file) { generate(file.name, file.arch); }); -}; +} main([{ name: "../src/asmjit/x86/x86inst.cpp",