From 1294501ab3c296c14694884d0f153e43878f2412 Mon Sep 17 00:00:00 2001 From: Dirk Steinke Date: Sun, 8 Jun 2014 15:47:07 +0200 Subject: [PATCH] Initial commit --- CMakeLists.txt | 48 + include/jitcs.h | 14 + include/jitcs_adt_bitstore.h | 61 + include/jitcs_adt_ref.h | 42 + include/jitcs_base.h | 116 + include/jitcs_bblock.h | 62 + include/jitcs_cpu.h | 104 + include/jitcs_function.h | 62 + include/jitcs_ids.h | 71 + include/jitcs_instruction.h | 91 + include/jitcs_memmgr.h | 53 + include/jitcs_memref.h | 108 + include/jitcs_refs.h | 26 + include/jitcs_vreg.h | 94 + include/tmp/jitcs_callconv.h | 189 + include/tmp/jitcs_tmpalloc.h | 105 + include/tmp/jitcs_x86_32.h | 15 + include/tmp/jitcs_x86_64.h | 15 + include/tmp/jitcs_x86_common_insids.h | 51 + include/tmp/jitcs_x86_xx_cons.lh | 245 + include/tmp/jitcs_x86_xx_insids.lh | 68 + include/tmp/jitcs_x86_xx_regs.lh | 185 + make.lua | 64 + makefile | 1 + src/cpu.cpp | 382 + src/data/x86_insalias.dat | 587 + src/data/x86_insalias.ltxt | 112 + src/data/x86_inslist.dat | 42227 ++++++++++++++++++++++++++++++++ src/data/x86_inslist.ltxt | 1193 + src/data/x86_reglist.dat | 110 + src/data/x86_reglist.ltxt | 105 + src/main.cpp | 6 + src/memmgr.cpp | 814 + src/tmpalloc.cpp | 77 + src/x86/x86_xx_regs.lh | 234 + tools/emblua.lua | 369 + tools/template2header.lua | 33 + tools/x86_insalias2data.lua | 76 + tools/x86_inslist2data.lua | 830 + tools/x86_reglist2data.lua | 179 + 40 files changed, 49224 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 include/jitcs.h create mode 100644 include/jitcs_adt_bitstore.h create mode 100644 include/jitcs_adt_ref.h create mode 100644 include/jitcs_base.h create mode 100644 include/jitcs_bblock.h create mode 100644 include/jitcs_cpu.h create mode 100644 include/jitcs_function.h create mode 100644 include/jitcs_ids.h create mode 100644 include/jitcs_instruction.h create mode 100644 include/jitcs_memmgr.h create mode 100644 include/jitcs_memref.h create mode 100644 include/jitcs_refs.h create mode 100644 include/jitcs_vreg.h create mode 100644 include/tmp/jitcs_callconv.h create mode 100644 include/tmp/jitcs_tmpalloc.h create mode 100644 include/tmp/jitcs_x86_32.h create mode 100644 include/tmp/jitcs_x86_64.h create mode 100644 include/tmp/jitcs_x86_common_insids.h create mode 100644 include/tmp/jitcs_x86_xx_cons.lh create mode 100644 include/tmp/jitcs_x86_xx_insids.lh create mode 100644 include/tmp/jitcs_x86_xx_regs.lh create mode 100644 make.lua create mode 100644 makefile create mode 100644 src/cpu.cpp create mode 100644 src/data/x86_insalias.dat create mode 100644 src/data/x86_insalias.ltxt create mode 100644 src/data/x86_inslist.dat create mode 100644 src/data/x86_inslist.ltxt create mode 100644 src/data/x86_reglist.dat create mode 100644 src/data/x86_reglist.ltxt create mode 100644 src/main.cpp create mode 100644 src/memmgr.cpp create mode 100644 src/tmpalloc.cpp create mode 100644 src/x86/x86_xx_regs.lh create mode 100644 tools/emblua.lua create mode 100644 tools/template2header.lua create mode 100644 tools/x86_insalias2data.lua create mode 100644 tools/x86_inslist2data.lua create mode 100644 tools/x86_reglist2data.lua diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..7b80861 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,48 @@ +# JITCS: a just-in-time compiler system (currently only JIT assembler) +# Copyright (C) 2014 Dirk Steinke +# +# Please see the file LICENSE.txt in the source's root directory. + +CMAKE_MINIMUM_REQUIRED(VERSION 2.4) + +PROJECT(JITCS) +SET(JITCS_VERSION 0.1.0) + +# Increment this if/when we break backwards compatibility. +SET(JITCS_SOVERSION 0) + +IF(WIN32 AND NOT WINDOWS) + SET(WINDOWS TRUE) +ENDIF(WIN32 AND NOT WINDOWS) +IF(APPLE AND NOT MACOSX) + SET(MACOSX TRUE) +ENDIF(APPLE AND NOT MACOSX) + +INCLUDE(CheckIncludeFile) +INCLUDE(CheckLibraryExists) +INCLUDE(CheckCSourceCompiles) + +INCLUDE_DIRECTORIES(.) + +# platform layers ... + +# See if some archiver required zlib, and see about using system version. + +OPTION(TEST_BUILD_APP "Build Hello, World! program" TRUE) +IF(TEST_BUILD_APP) + add_executable(test-app src/main.cpp) +ENDIF(TEST_BUILD_APP) + +MACRO(MESSAGE_BOOL_OPTION _NAME _VALUE) + IF(${_VALUE}) + MESSAGE(STATUS " ${_NAME}: enabled") + ELSE(${_VALUE}) + MESSAGE(STATUS " ${_NAME}: disabled") + ENDIF(${_VALUE}) +ENDMACRO(MESSAGE_BOOL_OPTION) + +MESSAGE(STATUS "TEST will build with the following options:") +MESSAGE_BOOL_OPTION("Build Hello, World! program" TEST_BUILD_APP) + +# end of CMakeLists.txt ... + diff --git a/include/jitcs.h b/include/jitcs.h new file mode 100644 index 0000000..ae17b7a --- /dev/null +++ b/include/jitcs.h @@ -0,0 +1,14 @@ +//===-- jitcs.h - Glue for JITCS --------------------------------*- C++ -*-===// +// +//===----------------------------------------------------------------------===// + +#ifndef _JITCS_H_ +#define _JITCS_H_ + +#include "jitcs_base.h" +#include "jitcs_memmgr.h" +#include "jitcs_function.h" +#include "jitcs_cpu.h" + +#endif +// _JITCS_H_ diff --git a/include/jitcs_adt_bitstore.h b/include/jitcs_adt_bitstore.h new file mode 100644 index 0000000..e1418a5 --- /dev/null +++ b/include/jitcs_adt_bitstore.h @@ -0,0 +1,61 @@ +//===-- jitcs_cpu.h - CPU feature detection ---------------------*- C++ -*-===// +// +// A basic block contains a list of instructions. +// +//===----------------------------------------------------------------------===// + +#ifndef _JITCS_ADT_BITSTORE_H_ +#define _JITCS_ADT_BITSTORE_H_ + +#include "jitcs_base.h" + +namespace jitcs { +// structure to contain a small, fixed amount of bits +// will either use a single integer value or an array of bytes +template struct _BitStore { + static_assert(N > 0); + u8 data[(N + 7) >> 3]; + + void setBit(u32 f, bool val) { + u32 ix = f >> 3; + u8 msk = 1 << (f & 7); + data[ix] = val ? (data[ix] | msk) : (data[ix] & ~msk); + } + bool testBit(u32 f) { + u32 ix = f >> 3; + u8 msk = 1 << (f & 7); + return (data[ix] & msk) != 0; + } + void clear() { + memset(&data, 0, sizeof(data)); + } +}; +template struct _BitStore { + static_assert(N > 0 && N <= 64); + enum { + N1 = N - 1, + N2 = N1 | (N1 >> 1), + N3 = N2 | (N2 >> 2), + N4 = N3 | (N3 >> 4), + N5 = N4 <= 7 ? 7 : N4; + }; + typedef typename UInt::Type DataType; + DataType data; + + void setBit(u32 f, bool val) { + DataType msk = DataType(1) << f; + data = val ? (data | msk) : (data & ~msk); + } + bool testBit(u32 f) { + DataType msk = DataType(1) << f; + return (data & msk) != 0; + } + void clear() { + data = 0; + } +}; +template struct BitStore : _BitStore {}; +} // end namespace jitcs + +#endif +// _JITCS_ADT_BITSTORE_H_ diff --git a/include/jitcs_adt_ref.h b/include/jitcs_adt_ref.h new file mode 100644 index 0000000..876f4da --- /dev/null +++ b/include/jitcs_adt_ref.h @@ -0,0 +1,42 @@ +//===-- jitcs_adt_ref.h - CPU feature detection ---------------------*- C++ -*-===// +// +// A basic block contains a list of instructions. +// +//===----------------------------------------------------------------------===// + +#ifndef _JITCS_ADT_REF_H_ +#define _JITCS_ADT_REF_H_ + +namespace jitcs { +// Ref represents a nonnull pointer to some object. +template struct Ref { + T* _ptr; + + Ref() = default; + Ref(const Ref&) = default; + Ref(T* d) { assert(d != nullptr); _ptr = d; } + + T* operator ->() { return _ptr; } +}; +// RefOrNull represents a normal pointer to some object. Accessing the +// data is achieved thru removeNullType, after which the "->" operator +// is accessible. Calling removeNullType without checking isNull first +// is considered a bug. +// The concept is taken from the Ceylon language which handles null +// pointers very nicely thru a clever type system. +template struct RefOrNull { + T* _ptr; + + Ref() = default; + Ref(const Ref&) = default; + Ref(T* d) { _ptr = d; } + + bool isNull() const { return _ptr == nullptr; } + Ref removeNullType() const { assert(!isNull()); return _ptr; } +}; +} +static_assert(std::is_pod>::value); +static_assert(std::is_pod>::value); + +#endif +// _JITCS_ADT_REF_H_ diff --git a/include/jitcs_base.h b/include/jitcs_base.h new file mode 100644 index 0000000..7e3ceb9 --- /dev/null +++ b/include/jitcs_base.h @@ -0,0 +1,116 @@ +//===-- jitcs_base.h C++ ------------------------------------------------*-===// +// +// Definition of basic types and basic macros. +// +//===----------------------------------------------------------------------===// + +#ifndef _JITCS_BASE_H_ +#define _JITCS_BASE_H_ + +#include +#include +#ifdef _MSC_VER +// import nullptr, offsetof +#include +#endif + +// TODO: check the existence of nullptr + +// first a few checks if the types are correctly defined, +// the architecture is 32 or 64 bit +static_assert(sizeof(int8_t) == 1 && sizeof(uint8_t) == 1); +static_assert(sizeof(int16_t) == 2 && sizeof(uint16_t) == 2); +static_assert(sizeof(int32_t) == 4 && sizeof(uint32_t) == 4); +static_assert(sizeof(int64_t) == 8 && sizeof(uint64_t) == 8); + +static_assert(sizeof(float) == 4 && sizeof(double) == 8); + +static_assert(sizeof(intptr_t) == sizeof(void*)); +static_assert(sizeof(uintptr_t) == sizeof(void*)); + +static_assert(sizeof(int) == 4 || sizeof(int) == 8); +static_assert(sizeof(void*) == 4 || sizeof(void*) == 8); +static_assert(sizeof(int) <= sizeof(void*)); + + +namespace jitcs { +// type shortcut alias +typedef unsigned int uint; + +// type constructors for use in templates +template struct Int {}; +template <> struct Int<8> { typedef int8_t Type; }; +template <> struct Int<16> { typedef int16_t Type; }; +template <> struct Int<32> { typedef int32_t Type; }; +template <> struct Int<64> { typedef int64_t Type; }; + +template struct UInt {}; +template <> struct UInt<8> { typedef uint8_t Type; }; +template <> struct UInt<16> { typedef uint16_t Type; }; +template <> struct UInt<32> { typedef uint32_t Type; }; +template <> struct UInt<64> { typedef uint64_t Type; }; + +template struct Float {}; +template <> struct Float<32> { typedef float Type; }; +template <> struct Float<64> { typedef double Type; }; + +// more type aliases +typedef int8_t i8; +typedef int16_t i16; +typedef int32_t i32; +typedef int64_t i64; +typedef uint8_t u8; +typedef uint16_t u16; +typedef uint32_t u32; +typedef uint64_t u64; + +typedef intptr_t iptr; +typedef uintptr_t uptr; + + +} // end of namespace jitcs + +// ------------------------------ +// debug macros +#define _JITCS_ALWAYS_CHECK_(X) do { if (!(X)) throw ("Assertion failed in " __FILE__ ": " #X); } while (0) + +#if defined(_DEBUG) && !defined(_JITCS_DEBUG) +#define _JITCS_DEBUG +#endif + +#if defined(_NDEBUG) && defined(_JITCS_DEBUG) +#undef _JITCS_DEBUG +#endif + + +#ifdef _JITCS_DEBUG +#define _JITCS_DBG_CHECK_(X) _JITCS_ALWAYS_CHECK_(X) +#define _JITCS_DBG_EXPR_(X) X +#define _JITCS_DBG_PARAM_(X) ,X +#else +#define _JITCS_DBG_CHECK_(X) +#define _JITCS_DBG_EXPR_(X) +#define _JITCS_DBG_PARAM_(X) +#endif + + +#ifdef _MSC_VER +#if defined(_M_IX86) || defined(_M_X64) +#define EVM_X86 +#endif +#if defined(_M_ARM) +#define EVM_ARM +#endif +#if defined(_M_MIPS) +#define EVM_MIPS +#endif +#endif + +#if defined(_MSC_VER) || defined(_WIN32) || defined(_WIN64) +#define EVM_WINDOWS +#else +#define EVM_POSIX +#endif + +#endif +// _JITCS_BASE_H_ diff --git a/include/jitcs_bblock.h b/include/jitcs_bblock.h new file mode 100644 index 0000000..e89f56f --- /dev/null +++ b/include/jitcs_bblock.h @@ -0,0 +1,62 @@ +//===-- jitcs_bblock.h - a single basic block -------------------*- C++ -*-===// +// +// The BasicBlock class is a wrapper for the BasicBlockImpl class. It allows access to +// relevant information while hiding implementation details from clients. +// Enumerating predecessors, successors and instructions is possible, but slow. +// +//===----------------------------------------------------------------------===// + +#ifndef _JITCS_BBLOCK_H_ +#define _JITCS_BBLOCK_H_ + +#include "jitcs_base.h" +#include "jitcs_ids.h" +#include "jitcs_instruction.h" + +namespace jitcs { +class Function; +class IDumper; + +class IBasicBlock { +protected: + IBasicBlock(Function& f, BBId id); +public: + ~IBasicBlock(); +private: + IBasicBlock() = delete; + IBasicBlock(const IBasicBlock &) = delete; + void operator=(const IBasicBlock &) = delete; + +public: + BBId id() const; + RefOrNull getFallThruFrom() const; + RefOrNull getFallThruTo() const; + + Enumerator predecessors(); + Enumerator successors(); + Enumerator instructions(); + +public: + // methods for use when constructing basic blocks + void addIns(InsRef const* ofss, size_t N); + void insertIns(u32 p, InsRef const* ofss, size_t N); + inline void addIns(InsRef ofs) { + addIns(&ofs, 1); + } + inline void insertIns(u32 p, InsRef ofs) { + insertIns(p, &ofs, 1); + } + template inline void addIns(InsRef ofss[N]) { + addIns(ofss, N); + } + template inline void insertIns(u32 p, InsRef ofss[N]) { + insertIns(p, ofss, N); + } + + void dump(IDumper&) const; +}; + +} // end of namespace jitcs + +#endif +// _JITCS_BBLOCK_H_ diff --git a/include/jitcs_cpu.h b/include/jitcs_cpu.h new file mode 100644 index 0000000..e7055d9 --- /dev/null +++ b/include/jitcs_cpu.h @@ -0,0 +1,104 @@ +//===-- jitcs_cpu.h - CPU feature detection ---------------------*- C++ -*-===// +// +// A basic block contains a list of instructions. +// +//===----------------------------------------------------------------------===// + +#ifndef _JITCS_CPU_H_ +#define _JITCS_CPU_H_ + +#include "jitcs_base.h" +#include "jitcs_adt_bitstore.h" + +namespace jitcs { +struct CPUInfo { +public: + enum FeatId { + // only for 32bit x86 + F_X86CMOV = 0, F_X86SSE, F_X86SSE2, F_X86_32_END, + // only for 64bit x86 + F_X86LSAHF64 = 0, F_X86_64_END, + // all x86 + F_X86RDTSC = (F_X86_32_END > F_X86_64_END ? F_X86_32_END : F_X86_32_END), + F_X86RDTSCP, F_X86CLFLUSH, + F_X86SSE3, F_X86SSSE3, F_X86SSE41, F_X86SSE42, + F_X86AVX, F_X86AVX2, + F_X86AES, F_X86PCLMULQDQ, + F_X86POPCNT, F_X86LZCNT, + F_X86BMI1, F_X86BMI2, + F_X86TSX, F_X86FMA3, F_X86F16C, // intel features + //F_MONITOR, <- only ring 0 + F_X86CMPXCHG8B, F_X86CMPXCHG16B, + //F_MISALIGNEDSSE <- all avx allow unaligned access (except movapX), + F_X86RDRAND, + + F_COUNT + }; + +public: + static inline uint GetPrefAlign() { return _sizeOfPreferredAlignment; } + static inline uint GetCachelineSize() { return _sizeOfCacheline; } + static inline uint GetCoreCount() { return _countOfLogCores; } + //static inline unsigned GetPhysCoreCount() { return _countOfPhysCores; } + //static inline unsigned GetLogCoreCount() { return _countOfLogCores; } + +#ifdef EVM_X86 + static inline bool IsX86() { return true; } +#else + static inline bool IsX86() { return false; } +#endif + static inline bool IsX86_32() { return IsX86() && sizeof(void*)==4; } + static inline bool IsX86_64() { return IsX86() && sizeof(void*)==8; } + + static inline bool HasX86CMOV() { return IsX86() && (IsX86_64() || _TestFeat(F_CMOV)); } + static inline bool HasX86SSE() { return IsX86() && (IsX86_64() || _TestFeat(F_SSE)); } + static inline bool HasX86SSE2() { return IsX86() && (IsX86_64() || _TestFeat(F_SSE2)); } + static inline bool HasX86LSAHF() { return IsX86() && (IsX86_32() || _TestFeat(F_LSAHF64)); } + static inline bool HasX86SSE3() { return IsX86() && _TestFeat(F_SSE3); } + static inline bool HasX86SSSE3() { return IsX86() && _TestFeat(F_SSSE3); } + static inline bool HasX86SSE41() { return IsX86() && _TestFeat(F_SSE41); } + static inline bool HasX86SSE42() { return IsX86() && _TestFeat(F_SSE42); } + static inline bool HasX86AVX() { return IsX86() && _TestFeat(F_AVX); } + static inline bool HasX86AVX2() { return IsX86() && _TestFeat(F_AVX2); } + static inline bool HasX86FMA3() { return IsX86() && _TestFeat(F_FMA3); } + static inline bool HasX86F16C() { return IsX86() && _TestFeat(F_F16C); } + static inline bool HasX86AES() { return IsX86() && _TestFeat(F_AES); } + static inline bool HasX86PCLMULQDQ(){ return IsX86() && _TestFeat(F_PCLMULQDQ); } + static inline bool HasX86POPCNT() { return IsX86() && _TestFeat(F_POPCNT); } + static inline bool HasX86LZCNT() { return IsX86() && _TestFeat(F_LZCNT); } + static inline bool HasX86BMI1() { return IsX86() && _TestFeat(F_BMI1); } + static inline bool HasX86BMI2() { return IsX86() && _TestFeat(F_BMI2); } + static inline bool HasX86TSX() { return IsX86() && _TestFeat(F_TSX); } + static inline bool HasX86RDTSC() { return IsX86() && _TestFeat(F_RDTSC); } + static inline bool HasX86RDTSCP() { return IsX86() && _TestFeat(F_RDTSCP); } + static inline bool HasX86CLFLUSH(){ return IsX86() && _TestFeat(F_CLFLUSH); } + static inline bool HasX86CMPXCHG8B(){ return IsX86() && _TestFeat(F_CMPXCHG8B); } + static inline bool HasX86CMPXCHG16B(){ return IsX86() && _TestFeat(F_CMPXCHG16B); } + static inline bool HasX86RDRAND(){ return IsX86() && _TestFeat(F_RDRAND); } +#endif + +public: + static bool IsValid() { return _infoIsValid; } + +public: + static void Initialize(); + static void Reinitialize(); + + static void DisableFeat(FeatId f); + +private: + static inline bool _TestFeat(FeatId f) { return _setOfFeats.testBit(f); } + static void _SetFeat(FeatId f,bool); + +private: + static BitStore _setOfFeats; + static bool _infoIsValid; + static unsigned _sizeOfPreferredAlignment; + static unsigned _sizeOfCacheline; + static unsigned _countOfPhysCores, _countOfLogCores; +}; + +} // end namespace jitcs + +#endif +// _JITCS_CPU_H_ diff --git a/include/jitcs_function.h b/include/jitcs_function.h new file mode 100644 index 0000000..6fcc5f9 --- /dev/null +++ b/include/jitcs_function.h @@ -0,0 +1,62 @@ +//===-- jitcs/function.h - Class to represent a function object --*- C++ -*-===// +// +// An interface class to the function object. +// +//===----------------------------------------------------------------------===// + +#ifndef _JITCS_FUNCTION_H_ +#define _JITCS_FUNCTION_H_ + +#include "jitcs_base.h" +#include "jitcs_adt_enumerator.h" +#include "jitcs_ids.h" +#include "jitcs_memmgr.h" + +namespace jitcs { +class IBasicBlock; +class IDumper; +class IVirtualRegister; +class TempAllocator; + +class IFunction { +public: + enum Strategy { + One_Pass_Linear_Scan, + Two_Pass_Linear_Scan, + }; +public: + // factory method to hide implementation detail + static std::unique_ptr Create(TempAllocator& ins, CallingConvention const& cc); + +protected: + Function(TempAllocator& ins, CallingConvention const& cc); +public: + virtual ~Function(); + +public: + virtual Enumerator enumerateBasicBlocks() = 0; + virtual Enumerator enumerateVirtualRegisters() = 0; + virtual CallingConvention const& getCallingConvention() const = 0; + virtual VirtualRegisterRef getArgumentRegister(uint n) const = 0; + virtual VirtualRegisterRef getResultRegister(uint n) const = 0; + +public: + virtual void check(); + virtual void clean(); + virtual void dump(IDumper&); + + virtual BasicBlock* getStartBlock(); + virtual BasicBlock* createBasicBlock(); + + VRegRef createVirtualRegister(RegClassId regclass, int sz = 0); + VRegRef allocateTemporary(VRegRef compatibleTo); + void deallocateTemporary(VRegRef id); + +public: + MemMgr::CodeAndData generate(MemMgr&, Strategy, bool dump); +}; + +} // End jitcs namespace + +#endif +// _JITCS_FUNCTION_H_ diff --git a/include/jitcs_ids.h b/include/jitcs_ids.h new file mode 100644 index 0000000..773972d --- /dev/null +++ b/include/jitcs_ids.h @@ -0,0 +1,71 @@ +//===-- jitcs_ids.h - ID types for instructions et al. ----------*- C++ -*-===// +// +// +// +//===----------------------------------------------------------------------===// + +#ifndef _JITCS_IDS_H_ +#define _JITCS_IDS_H_ + +#include "jitcs_base.h" + +namespace jitcs { + +enum CompilerMode { + CM_Construct, // add instructions to basic blocks + CM_Analyze, // use/def analysis, cross bb cluster construction, ... + CM_Allocate, // local and cross bb register allocation + CM_Generate, // layout and generate machine code +}; + +enum MemEnum { + M_None = 0, + MMODE_Bits = 4, + MMODE_Mask = (1 << MMODE_Bits) - 1, + MMODE_FPCount = 8, + MMODE_None = 0, // address undefined + MMODE_Base = 1, // base + scale * index + offset + MMODE_Sym = 2, // symbol + offset - the symbol may be global or local(SPREL/FPREL) + MMODE_Global= 3, // global pointer + offset (in X64 encoded as RIP-relative) + MMODE_VRegSpillSlot= 4, // memory address of a VReg spill slot + MMODE_SPRel= 8, // stack (aka FP0) pointer + offset + MMODE_FP1Rel= MMODE_SPRel+1, // frame pointer 1 + offset + MMODE_FP2Rel= MMODE_SPRel+2, // frame pointer 2 + offset + MMODE_FP3Rel= MMODE_SPRel+3, // frame pointer 3 + offset + MMODE_FP4Rel= MMODE_SPRel+4, // frame pointer 4 + offset + MMODE_FP5Rel= MMODE_SPRel+5, // frame pointer 5 + offset + MMODE_FP6Rel= MMODE_SPRel+6, // frame pointer 6 + offset + MMODE_FP7Rel= MMODE_SPRel+7, // frame pointer 7 + offset +}; +enum SymEnum { + S_None = ~0, +}; + +enum RegId { + R_None = ~0, + R_HardwareLimit = 0x100, +}; +enum ResId { + RES_None = ~0, +}; +enum RegClassId { + RC_None = 0xff, +}; +enum ResClassId { + RESCL_None = 0xff, +}; + +enum InsId { + I_None = 0, + I_Count, + I_Max = ~0, +}; + +enum BBId { + BB_None = ~0, +}; + +} // end of namespace jitcs + +#endif +// _JITCS_IDS_H_ diff --git a/include/jitcs_instruction.h b/include/jitcs_instruction.h new file mode 100644 index 0000000..91ca0a0 --- /dev/null +++ b/include/jitcs_instruction.h @@ -0,0 +1,91 @@ +//===-- jitcs_insref.h - Class to represent a single basic block --*- C++ -*-===// +// +// +// +//===----------------------------------------------------------------------===// + +#ifndef _JITCS_INSTRUCTION_H_ +#define _JITCS_INSTRUCTION_H_ + +#include "jitcs_base.h" +#include "jitcs_ids.h" +#include "jitcs_adt_ref.h" +#include "jitcs_memref.h" +#include "jitcs_vregref.h" +#include + +namespace jitcs { + +struct Instruction { + intptr_t _ptr[]; + + template + inline void setAll(InsId id, T... args) { setInsId(id); _setAll(1, args); } + + inline void setInsId(InsId id) { _ptr[0] = id; } + inline void setRRefOp(int i, VRegRef r) { _setOp(i, r._ptr); } + inline void setMRefOp(int i, MemRef m) { _setOp(i, m._ptr); } + inline void setBBOp(int i, BBRef bb) { _ptr[i] = bb._ptr; } + inline void setImmOp(int i, intptr_t imm) { _ptr[i] = imm; } + + InsId getInsId() const { return _getOp(0); } + VRegRef getRRefOp(int i) const { return VRegRef(_getOp(i)); } + MemRef getMRefOp(int i) const { return MemRef(_getOp(i)); } + BBRef getBBRefOp(int i) const { return BBRef(_getOp(i); } + intptr_t getImmOp(int i) const { return ptr[i]; } + +private: + template + inline void _setOp(int i, T* p) { _ptr[i] = reinterpret_cast(p); } + template + inline T _getOp(int i) const { return reinterpret_cast(_ptr[i]); } + + inline void _set(int i, VRegRef r) { setRRefOp(i, r); } + inline void _set(int i, MemRef m) { setMRefOp(i, m); } + inline void _set(int i, BBRef bb) { setBBOp(i, bb); } + inline void _set(int i, intptr_t imm) { setImmOp(i, imm); } + inline void _setAll(int i) {} + template + inline void _setAll(int i, U first, T... args) { _set(i, first); _setAll(i + 1, args); } +}; +static_assert(sizeof(Instruction) == sizeof(intptr_t)); + +typedef Ref InsRef; + +struct InsRefStream { + InsRef ip; + u32 space; + InsRef *c, *b, *e; + TempAllocator& tmp; + + void reserve(u32 d) { if (c == e || d > space) enlarge(); } + void advance(u32 d) { *c++ = ip; ip._ptr += d; space -= d; } + void _enlarge(); + void reinit(); + void push(BBRef bb); + + InsRefStream(TempAllocator& t, intptr_t dp[], u32 spc, InsRef* bb, InsRef* ee) + : c(bb), b(bb), e(ee), ip(InsRef((Instruction*)dp)), space(spc), tmp(t) {} +}; + +template { +struct InsRefStreamBuffer : InsRefStream { + InsRefOrNull insbuffer[INSN]; + + InsRefStreamBuffer(TempAllocator& t) + : InsRefStream(t, t.allocArray(INSSZ), INSSZ, &insbuffer[0], &insbuffer[INSN]) {} +}; + +typedef std::pair InstructionMixinPair; +typedef std::vector InstructionMixinList; + +class InstructionList + : public std::vector { +public: + void mixin(InstructionMixinList const&); + void mixin(InstructionMixinPair const&); +}; +} // enf of namespace jitcs + +#endif +// _JITCS_INSTRUCTION_H_ diff --git a/include/jitcs_memmgr.h b/include/jitcs_memmgr.h new file mode 100644 index 0000000..26dd3e0 --- /dev/null +++ b/include/jitcs_memmgr.h @@ -0,0 +1,53 @@ +//===-- jitcs_memmgr.h - A memory manager for code and data------*- C++ -*-===// +// +// The manager is an allocator based on Doug Leah's malloc. Memory is allocated +// from the system with execution permission. +// TODO: +// +//===----------------------------------------------------------------------===// + +#ifndef _JITCS_MEMMGR_H_ +#define _JITCS_MEMMGR_H_ + +#include "jitcs_base.h" + +namespace jitcs { +class MemoryMgrImpl; + +class MemoryMgr { +public: + struct Space { + u8* start; size_t size; + static Space Make(u8* s, size_t sz) { Space ps; ps.start = s; ps.size = sz; return ps; } + }; + struct CodeAndData { + Space data, code; + }; +public: + MemoryMgr(); + ~MemoryMgr(); + +public: + /* todo + * allocate area for function relevant constants (aligned to 16 byte) + * allocate area for code (aligned to cache line size, currently 64 byte) + * allocated areas are stored in a function object, function objects can be forced to free allocated storage + */ + CodeAndData allocate(size_t data, size_t code); + void deallocate(CodeAndData); + + bool check(); + size_t getTotalSpace(); + size_t getAllocatedSpace(); + size_t getFreeSpace(); + size_t getReachableFreeSpace(); + bool shrink(); + +private: + std::unique_ptr _mgr; +}; + +} // end of namespace jitcs + +#endif +// _JITCS_MEMMGR_H_ diff --git a/include/jitcs_memref.h b/include/jitcs_memref.h new file mode 100644 index 0000000..c14ebd4 --- /dev/null +++ b/include/jitcs_memref.h @@ -0,0 +1,108 @@ +//===-- jitcs_memref.h - Class to represent a single basic block --*- C++ -*-===// +// +//===----------------------------------------------------------------------===// + +#ifndef _JITCS_MEMREF_H_ +#define _JITCS_MEMREF_H_ + +#include "jitcs_base.h" +#include "jitcs_ids.h" +#include "jitcs_vregref.h" + +namespace jitcs { +class Function; + +template struct MemDataImpl {}; +template <> struct MemDataImpl<4> { + union { + struct { VRegRef base, index; } regs; +// struct { IOpType id, _dummy; } sym; + struct { u8* ptr; } global; + }; + int offset; + int modeAndScale; +}; +template <> struct MemDataImpl<8> { + union { + struct { VRegRef base, index; } regs; +// struct { IOpType id, _dummy; } sym; + struct { u8* ptr; } global; + }; + int modeAndScale; + int offset; + void* _padding; +}; + +typedef MemDataImpl MemData; +jitcs_static_assert((sizeof(MemData)&~15) == 0); + +struct MemRef { + MemData* _ptr; + + void setVRegSpillSlot(VRegRef id) { + _ptr->regs.base = id; + _ptr->regs.index.clear(); + _ptr->offset = 0; + _ptr->modeAndScale = MMODE_VRegSlot; + } + void setBaseAndOffset(VRegRef id, int o) { + _ptr->regs.base = id; + _ptr->regs.index.clear(); + _ptr->offset = o; + _ptr->modeAndScale = MMODE_Base; + } + void setBaseIndexAndOffset(VRegRef id, VRegRef id2, int s, int o) { + _ptr->regs.base = id; + _ptr->regs.index = id2; + _ptr->offset = o; + _ptr->modeAndScale = MMODE_Base + (s << MMODE_Bits); + } +/* void setSymbolAndOffset(SymId id, int o) { + ptr->modeAndScale = MMODE_Sym; + ptr->offset = o; + ptr->sym.id = id.id; + }*/ + void setFPRelative(uint fp, int o) { + assert(fp >= 0 && fp < MMODE_FPCount); + _ptr->offset = o; + _ptr->modeAndScale = MMODE_SPRel + fp; + } + inline void setSPRelative(int o) { + setFPRelative(0, o); + } + void setGlobal(u8* p, int o) { + _ptr->global.ptr = p; + _ptr->offset = o; + _ptr->modeAndScale = MMODE_Global; + } + + int getMode() const { return _ptr->modeAndScale & MMODE_Mask; } + int getScale() const { return _ptr->modeAndScale >> MMODE_Mask; } + int getOffset() const { return _ptr->offset; } + VRegRef getBaseReg() const { return _ptr->regs.base; } + VRegRef getIndexReg() const { return _ptr->regs.index; } +// SymId getSymbol() const { return SymId::Make(ptr->sym.id); } +// MemPtr getSymbolRef() const; +// MemPtr getSymbolRef(Function const&) const; + //IndMemPtr getVRegMemParm(Function const&) const; + MemRef getVRegSpillSlot() const; + const u8* getGlobal() const { return _ptr->global.ptr; } + + void setBaseReg(VRegRef r) { _ptr->regs.base = r; } + void setIndexReg(VRegRef r) { _ptr->regs.index = r; } + + static MemRef Make(MemData* ptr) { MemRef p; p._ptr = ptr; return p; } +}; +struct MemRefStream { + MemData *_ptr, *_end; + + void advance() { assert(_ptr < _end); ++_ptr; } + MemRef front() { assert(_ptr < _end); return MemRef::Make(_ptr); } + + static MemRefStream Make(MemData* p, unsigned n) { MemStreamPtr p; p._ptr = p; p._end = p + n; return p; } +}; + +} // end of namespace jitcs + +#endif +// _JITCS_MEMREF_H_ diff --git a/include/jitcs_refs.h b/include/jitcs_refs.h new file mode 100644 index 0000000..8e194a4 --- /dev/null +++ b/include/jitcs_refs.h @@ -0,0 +1,26 @@ +//===-- jitcs_ids.h - ID types for instructions et al. ----------*- C++ -*-===// +// +// +// +//===----------------------------------------------------------------------===// + +#ifndef _JITCS_REFS_H_ +#define _JITCS_REFS_H_ + +#include "jitcs_base.h" +#include "jitcs_adt_ref.h" + +namespace jitcs { + +class IFunction; +class IBasicBlock; +class Instruction; + +typedef Ref IFunctionRef; +typedef Ref IFunctionRef; +typedef Ref InstructionRef; + +} // end of namespace jitcs + +#endif +// _JITCS_REFS_H_ diff --git a/include/jitcs_vreg.h b/include/jitcs_vreg.h new file mode 100644 index 0000000..fc23ab5 --- /dev/null +++ b/include/jitcs_vreg.h @@ -0,0 +1,94 @@ +//===-- jitcs_vregref.h - Class to represent a single basic block --*- C++ -*-===// +// +// A basicblock contains nodes, and must end in a terminal instruction node. +// Nodes can be instructions, constants. Each node may produce more than one +// result. +// +//===----------------------------------------------------------------------===// + +#ifndef _JITCS_VREG_H_ +#define _JITCS_VREG_H_ + +#include "jitcs_ids.h" +//#include "jitcs_fragment.h" + +namespace jitcs { +class IDumper; +struct MemData; + +struct VRegPlacement { + int modeNOffset; + + bool isPlaced() const { return modeNOffset != 0; } + bool isMem() const { return isPlaced(); } + + void unplace() { + modeNOffset = (0 << MMODE_Bits) | MMODE_None; + } + void place(uint fpmode, int ofs) { + assert(fpmode >= MMODE_SPRel && fpmode < MMODE_SPRel + MMODE_FPCount); + assert((ofs << MMODE_Bits) >> MMODE_Bits == ofs); + modeNOffset = (ofs << 4) | (fpmode); + } + int getFP() { assert(isPlaced()); return (modeNOffset & 15) - MMODE_SPRel; } + int getOffset() { assert(isPlaced()); return modeNOffset >> 4; } + static VRegPlacement MakeEmpty() { VRegPlacement p; p.unplace(); return p; } + static VRegPlacement MakeMem(uint fp, int ofs) { VRegPlacement p; p.place(fp, ofs); return p; } + + void dump(IDumper& o) const; +}; + +struct VReg { + RegId id; + ResId res; + RegClassId regclass; + ResClassId resclass; + u32 mask; + u8 sz; + VRegPlacement spillplacement; + MemData* memref; + u32 spillCount, reloadCount; +// XFragmentList fragments; + + void dump(IDumper&) const; + + void setupDynamic(size_t vregno, RegClassId rc, u32 mask = 0, u8 sz = 0); + static VReg CreateStatic(RegId hwr, ResId, RegClassId, ResClassId, u8 sz); + + bool getsSpilled() const { return spillCount > 0; } + bool getsReloaded() const { return reloadCount > 0; } +}; + +struct VRegRef { + VReg const* _ptr; + + void operator =(VReg const* v) { _ptr = v; } + + void clear() { _ptr = jitcs_nullptr; } + VReg const* toVReg() const { return _ptr; } + operator VReg const*() const { return toVReg(); } + + VReg* toMutableVReg() { + VReg const* v = toVReg(); + assert(v->isMutable()); + return const_cast(v); + } + + RegId getId() const { return toVReg()->id; } + ResId getRes() const { return toVReg()->res; } + RegClassId getRegClass() const { return toVReg()->regclass; } + ResClassId getResClass() const { return toVReg()->resclass; } + + bool isHWReg() const { return getId() < R_HardwareLimit; } + bool isEmpty() const { return _ptr == jitcs_nullptr; } + bool isValid() const { return !isEmpty(); } + + static VRegRef Make(VReg const* r) { VRegRef v; v._ptr; return v; } +}; +inline bool operator ==(VRegRef r1, VRegRef r2) { return r1._ptr == r2._ptr; } +inline bool operator !=(VRegRef r1, VRegRef r2) { return r1._ptr != r2._ptr; } + +} // End EVM namespace + +#endif +// _JITCS_VREGREF_H_ diff --git a/include/tmp/jitcs_callconv.h b/include/tmp/jitcs_callconv.h new file mode 100644 index 0000000..e0923a2 --- /dev/null +++ b/include/tmp/jitcs_callconv.h @@ -0,0 +1,189 @@ +//===-- jitcs_callconv.h - Class to represent a single basic block --*- C++ -*-===// +// +// A basicblock contains nodes, and must end in a terminal instruction node. +// Nodes can be instructions, constants. Each node may produce more than one +// result. +// +//===----------------------------------------------------------------------===// + +#ifndef _JITCS_CALLCONV_H_ +#define _JITCS_CALLCONV_H_ + +#include "jitcs_base.h" +#include "jitcs_ids.h" +#include "jitcs_vregref.h" +#include + +namespace jitcs { +class IDumper; + +enum CCTypeId { + CC_CDecl, + CC_FastCall, + CC_StdCall, +}; +enum CCTypeParamId { + CCTP_Void, + CCTP_Int, + CCTP_PtrInt, + CCTP_Ptr, +}; +enum CCCallerCalleeStrategyId { + CCCCS_Scratch, + CCCCS_ByCaller, + CCCCS_ByCallee, +}; + +class CallConvDetails; +class CallConv { +public: + CallConv(); + ~CallConv(); + +public: + void dump(IDumper&) const; + +public: + CallConvDetails const* getDetails() const; + size_t getResultCount() const; + size_t getParamCount() const; + size_t getParamAreaSize() const; + VRegPlacement getResultSpillPlacement(size_t r) const; + VRegRef getResultRegister(size_t r) const; + VRegPlacement getParamSpillPlacement(size_t p) const; + VRegRef getParamRegister(size_t r) const; + size_t getRequiredStackAlignment() const; + size_t getRequiredStackAlignmentOffset() const; + +public: + void addResult(VRegRef, VRegPlacement); + void addParam(VRegRef, VRegPlacement); + void setStackAlignment(size_t align, size_t ofs); + void setParamAreaSize(size_t); + void setCleanStack(CCCallerCalleeStrategyId); + void initSaveResource(uint resNo, CCCallerCalleeStrategyId); + void changeSaveResource(uint res, CCCallerCalleeStrategyId); + +private: + void _setStackAlignment(size_t align, size_t ofs); + +private: + CallConvDetails* _details; +}; + +template +struct ParamTypes { + typedef R ResultType; + typedef P1 Param1Type; + typedef P2 Param2Type; + typedef P3 Param3Type; + typedef P4 Param4Type; + typedef P5 Param5Type; + typedef P6 Param6Type; + static const int ParamNo = N; + static const CCTypeId CCType = CC; +}; + +// ----------------- +#define _ void +template +struct FncType {}; +template +struct FncType : public ParamTypes<0, CC_CDecl, R, _, _, _, _, _, _> {}; +template +struct FncType : public ParamTypes<0, CC_FastCall, R, _, _, _, _, _, _> {}; +template +struct FncType : public ParamTypes<0, CC_StdCall, R, _, _, _, _, _, _> {}; +// ----------------- +template +struct FncType : public ParamTypes<1, CC_CDecl, R, P1, _, _, _, _, _> {}; +template +struct FncType : public ParamTypes<1, CC_FastCall, R, P1, _, _, _, _, _> {}; +template +struct FncType : public ParamTypes<1, CC_StdCall, R, P1, _, _, _, _, _> {}; +// ----------------- +template +struct FncType : public ParamTypes<2, CC_CDecl, R, P1, P2, _, _, _, _> {}; +template +struct FncType : public ParamTypes<2, CC_FastCall, R, P1, P2, _, _, _, _> {}; +template +struct FncType : public ParamTypes<2, CC_StdCall, R, P1, P2, _, _, _, _> {}; +// ----------------- +template +struct FncType : public ParamTypes<3, CC_CDecl, R, P1, P2, P3, _, _, _> {}; +template +struct FncType : public ParamTypes<3, CC_FastCall, R, P1, P2, P3, _, _, _> {}; +template +struct FncType : public ParamTypes<3, CC_StdCall, R, P1, P2, P3, _, _, _> {}; +// ----------------- +template +struct FncType : public ParamTypes<4, CC_CDecl, R, P1, P2, P3, P4, _, _> {}; +template +struct FncType : public ParamTypes<4, CC_FastCall, R, P1, P2, P3, P4, _, _> {}; +template +struct FncType : public ParamTypes<4, CC_StdCall, R, P1, P2, P3, P4, _, _> {}; +// ----------------- +template +struct FncType : public ParamTypes<5, CC_CDecl, R, P1, P2, P3, P4, P5, _> {}; +template +struct FncType : public ParamTypes<5, CC_FastCall, R, P1, P2, P3, P4, P5, _> {}; +template +struct FncType : public ParamTypes<5, CC_StdCall, R, P1, P2, P3, P4, P5, _> {}; +// ----------------- +template +struct FncType : public ParamTypes<6, CC_CDecl, R, P1, P2, P3, P4, P5, P6> {}; +template +struct FncType : public ParamTypes<6, CC_FastCall, R, P1, P2, P3, P4, P5, P6> {}; +template +struct FncType : public ParamTypes<6, CC_StdCall, R, P1, P2, P3, P4, P5, P6> {}; +#undef _ + +template struct AcceptableType +{ static const bool OK = false; }; +template <> struct AcceptableType +{ static const bool OK = true; static const CCTypeParamId Val = CCTP_Void; }; +template <> struct AcceptableType +{ static const bool OK = true; static const CCTypeParamId Val = CCTP_Int; }; +template <> struct AcceptableType +{ static const bool OK = true; static const CCTypeParamId Val = CCTP_Int; }; +//#ifdef EVM_64 +//template <> struct AcceptableType +//{ static const bool OK = true; static const teCCTypeParam Val = CCTP_PtrInt; }; +//template <> struct AcceptableType +//{ static const bool OK = true; static const teCCTypeParam Val = CCTP_PtrInt; }; +//#endif +template struct AcceptableType +{ static const bool OK = true; static const CCTypeParamId Val = CCTP_Ptr; }; +template struct AcceptableType +{ static const bool OK = true; static const CCTypeParamId Val = CCTP_Ptr; }; + +const CallConv& GetCC(CCTypeParamId, CCTypeParamId*, uint, CCTypeId); + +template +const CallConv& GetCC() { + static CallConv* cc = 0; + if (!cc) { + typedef FncType F; + jitcs_static_assert(AcceptableType::OK); + jitcs_static_assert(AcceptableType::OK); + jitcs_static_assert(AcceptableType::OK); + jitcs_static_assert(AcceptableType::OK); + jitcs_static_assert(AcceptableType::OK); + jitcs_static_assert(AcceptableType::OK); + jitcs_static_assert(AcceptableType::OK); + teCCTypeParam params[6] = { + AcceptableType::Val, + AcceptableType::Val, + AcceptableType::Val, + AcceptableType::Val, + AcceptableType::Val, + AcceptableType::Val, + }; + cc = GetCC(AcceptableType::Val, params, F::ParamNo, F::CCType); + } + return *cc; +} +} // end of namespace jitcs + +#endif +// _JITCS_CALLCONV_H_ diff --git a/include/tmp/jitcs_tmpalloc.h b/include/tmp/jitcs_tmpalloc.h new file mode 100644 index 0000000..9e81d2b --- /dev/null +++ b/include/tmp/jitcs_tmpalloc.h @@ -0,0 +1,105 @@ +//===-- jitcs_tmpalloc.h - Never-free allocator class -----------*- C++ -*-===// +// +// This is a never-free allocator. All allocated data is written into +// one memory block. All data are freed en bloc. No destructors are called! +// +//===----------------------------------------------------------------------===// + +#ifndef _JITCS_TMPALLOC_H_ +#define _JITCS_TMPALLOC_H_ + +#include "jitcs_base.h" +#include +#include + +namespace jitcs { + +class TempAllocator { +public: + enum { MINIMUM_BLOCK_SIZE= 4096*4 }; + +public: + TempAllocator(); + ~TempAllocator(); + +public: + void restart(); + +public: + template + inline bool isSizeAligned(size_t sz) { + return ((sz & (AL-1)) == 0); + } + template + inline bool isPtrAligned() { + return ((((ptrdiff_t)_ptr) & (AL-1)) == 0); + } + template + u8* allocAligned(size_t sz) { + jitcs_static_assert(AL > 0 && (AL & (AL-1)) == 0); + assert(isSizeAligned(sz) && isPtrAligned()); + if (sz <= _rem) { + u8* res = _cur; + _cur += sz; + _rem -= sz; + return res; + } + return _alloc(sz, AL); + } + template + void align() { + if (!isPtrAligned()) _align(AL); + } + template + u8* alloc(size_t sz) { + return _alloc(sz, AL); + } + template + T* allocArray(size_t sz) { + return reinterpret_cast(_alloc(sizeof(T) * sz, alignof(T))); + } + +private: + u8* _alloc(size_t sz, size_t alignment); + +private: + typedef std::list< std::vector > BlockList; + BlockList _blocks; + BlockList::iterator _curblock; + u8* _cur; + size_t _rem; + size_t _allocatedSpace; +}; + +template +class PoolAllocator { +public: + PoolAllocator(TempAllocator& a, size_t n, size_t align) + : _allocator(a) + , _ptr(jitcs_nullptr) + , _rem(0) + , _allocN(n) + , _allocAlignment(align) { + assert(n > 0); + } + +public: + inline T* alloc() { + if (_rem-- > 0) + return _ptr++; + return _alloc(); + } + +private: + T* _alloc(); + +private: + TempAllocator &_allocator; + T *_ptr; + size_t _rem, _allocN, _allocAlignment; +}; + +} // end of namespace jitcs + +#endif +// _JITCS_TMPALLOC_H_ diff --git a/include/tmp/jitcs_x86_32.h b/include/tmp/jitcs_x86_32.h new file mode 100644 index 0000000..41253ef --- /dev/null +++ b/include/tmp/jitcs_x86_32.h @@ -0,0 +1,15 @@ +//===-- jitcs_x86.h C++ -------------------------------------------------*-===// +// +// Header file for 32bit x86 platforms. +// +//===----------------------------------------------------------------------===// + +#ifndef _JITCS_X86_32_H_ +#define _JITCS_X86_32_H_ + +#include "jitcs_x86_32_insids.h" +#include "jitcs_x86_32_regs.h" +#include "jitcs_x86_32_inscons.h" + +#endif +// _JITCS_X86_32_H_ diff --git a/include/tmp/jitcs_x86_64.h b/include/tmp/jitcs_x86_64.h new file mode 100644 index 0000000..5cba6e8 --- /dev/null +++ b/include/tmp/jitcs_x86_64.h @@ -0,0 +1,15 @@ +//===-- jitcs_x64.h C++ -------------------------------------------------*-===// +// +// Header file for 64bit x86 platforms. +// +//===----------------------------------------------------------------------===// + +#ifndef _JITCS_X86_64_H_ +#define _JITCS_X86_64_H_ + +#include "jitcs_x86_64_insids.h" +#include "jitcs_x86_64_regs.h" +#include "jitcs_x86_64_inscons.h" + +#endif +// _JITCS_X86_64_H_ diff --git a/include/tmp/jitcs_x86_common_insids.h b/include/tmp/jitcs_x86_common_insids.h new file mode 100644 index 0000000..76234ad --- /dev/null +++ b/include/tmp/jitcs_x86_common_insids.h @@ -0,0 +1,51 @@ +//===-- jitcs_x86_common_insids.h C++ -----------------------------------*-===// +// +// Register definitions for 32bit x86 code. +// +//===----------------------------------------------------------------------===// + +#ifndef _JITCS_X86_COMMON_INSIDS_H_ +#define _JITCS_X86_COMMON_INSIDS_H_ + +namespace jitcs +{ +namespace x86_common +{ + enum CondCodeId { + CC_O = 0, + CC_NO = 1, + CC_B = 2, + CC_AE = 3, + CC_E = 4, + CC_NE = 5, + CC_BE = 6, + CC_A = 7, + CC_S = 8, + CC_NS = 9, + CC_PE = 10, + CC_PO = 11, + CC_L = 12, + CC_GE = 13, + CC_LE = 14, + CC_G = 15, + + CC_C = CC_B, + CC_NAE= CC_B, + CC_NB = CC_AE, + CC_NC = CC_AE, + CC_Z = CC_E, + CC_NZ = CC_NE, + CC_NA = CC_BE, + CC_NBE= CC_A, + CC_P = CC_PE, + CC_NP = CC_PO, + CC_NGE= CC_L, + CC_NL = CC_GE, + CC_NG = CC_LE, + CC_NLE= CC_G, + }; + +} // end of namespace jitcs::x86_common +} // end of namespace jitcs +#endif +// _JITCS_X86_COMMON_INSIDS_H_ diff --git a/include/tmp/jitcs_x86_xx_cons.lh b/include/tmp/jitcs_x86_xx_cons.lh new file mode 100644 index 0000000..8b8c4ef --- /dev/null +++ b/include/tmp/jitcs_x86_xx_cons.lh @@ -0,0 +1,245 @@ +#/bin/emblua LUAPREFIX=/*| +/*| --VARDELIM=% +/*| --CMTDELIM=// +/*| --XDUMPSCRIPT=true +/*| --*/ +/*| local N = $$$ +/*| function pred_ipairs(t, pred) +/*| return function(t,k) +/*| local v +/*| repeat +/*| k = k + 1 +/*| v = t[k] +/*| until not v or pred(k, v) +/*| return v and k, v +/*| end, t, 0 +/*| end +/*| function isa(v) return not v[N==32 and "x64" or "x32only"] end +//===-- jitcs_x86_%(N)_cons.h C++ -----------------------------------------*-===// +// +// Instruction constructors for %(N)bit x86 code. +// +//===----------------------------------------------------------------------===// +#ifndef _JITCS_X86_%(N)_CONS_H_ +#define _JITCS_X86_%(N)_CONS_H_ + +#include "jitcs_base.h" +#include "jitcs_x86_%(N)_insids.h" +#include "jitcs_x86_%(N)_regs.h" +#include "jitcs_instruction.h" +#include "jitcs_memref.h" +#include "jitcs_bblock.h" + +/*| local data= runfile("../src/data/x86_inslist.dat") +/*| --*/ + +namespace jitcs { +namespace x86_%(N) { + + extern const u8 ArrayInsClassSizes[IC_Count - IC_Invalid - 1]; + inline uint GetInsSize(InsId id) { + u32 cid = (id >> IC_SubBits); + assert(cid > x86::IC_Invalid && id < x86::IC_Count); + return ArrayInsClassSizes[cid - x86::IC_Invalid - 1]; + } + + template struct InsClassSizeCT {}; +/*| for k,cl in pred_ipairs(data.opclasses, function(k,cl) return isa(cl.isa)) do +/*| local sz = 1 + #cl.layout +/*| for k,v in ipairs(cl.layout) do +/*| if N == 64 and v[1]=="Imm" and v[3] == 32 then sz = sz - 1 end +/*| end +/*| local rsz = sz + template <> struct InsClassSizeCT { + static const u8 Value = %rsz; + }; +/*| end +/*| --*/ + template struct InsSizeCT : public InsClassSizeCT(ID >> IC_SubBits)> {}; + + // here come the meta-constructors +/*| local function islowimm(layout,it) +/*| return it+1 <= #layout and layout[it][1] == "Imm" and layout[it+1][1] == "Imm" and layout[it][2] == layout[it+1][2] +/*| and layout[it][3] == 0 and layout[it+1][3] > 0 +/*| end +/*| local opname2op = {} +/*| for k,v in ipairs(data.ops) do +/*| opname2op[v.name] = v +/*| end +/*| local layouts, layoutlu, layoutlu2 = {}, {}, {} +/*| local function sublayout(layout) +/*| local l = { sig = "" } +/*| for k,v in ipairs(layout) do +/*| l[#l + 1] = {v[1],v[3],v[4]} +/*| l.sig = (#l.sig > 0 and (l.sig .. ",") or "")..v[1].." "..v[3]..(v[4] and (" "..v[4]) or "") +/*| end +/*| if layoutlu[l.sig] then return layoutlu[l.sig] end +/*| layoutlu[l.sig] = l +/*| l.id = #layouts + 1 +/*| layouts[l.id] = l +/*| return l +/*| end +/*| for k,cl in ipairs(data.opclasses) do +/*| if not layoutlu2[cl.layout.id] then +/*| layoutlu2[cl.layout.id] = sublayout(cl.layout) +/*| end +/*| end +/*| for id,l in ipairs(layouts) do +/*| local parms = "" +/*| for it,t in ipairs(l) do +/*| if not (t[1] == "Imm" and t[3] > 0) then +/*| parms = parms .. ", "..(t[1] == "Imm" and (islowimm(l,it) and "i64" or "i32") +/*| or (t[1] == "RegId" and "VRegRef") +/*| or (t[1] == "MemId" and "MemRef") +/*| or t[1]) .. " " .. t[2] +/*| end +/*| end +/*| --*/ + //layout: %(l.sig) + inline void _ICons%(id)(InsRef ip, InsId id%(parms)) { + ip.setInsId(id); +/*| for ix,t in ipairs(l) do +/*| local value, fun = "", "" +/*| value = t[2] +/*| if t[1] == "MemId" then fun = "Mem" end +/*| if t[1] == "RegId" then fun = "VReg" end +/*| if t[1] == "BBId" then fun = "BB" end +/*| if t[1] == "Imm" then fun = "Imm" end +/*| if t[1] == "Imm" and t[3] == 32 then value = N == 32 and (value .. (" >> "..t[3])) end +/*| if value then + ip.set%(fun)Op(%ix, %(value)); +/*| end +/*| end + } +/*| end +/*| --*/ + + // here come the instructions +/*| local t2t={GR8="GR8Ref",GR16="GR16Ref",GR32="GR32Ref",GR64="GR64Ref",VR128="VR128Ref",VR256="VR256Ref",MemId="MemRef", +/*| ["i8*"]="Mem8Ref",["i16*"]="Mem16Ref",["i32*"]="Mem32Ref",["i64*"]="Mem64Ref", +/*| ["i128*"]="Mem128Ref",["i256*"]="Mem256Ref",["i512*"]="Mem512Ref"} +/*| function insparms(op) +/*| local parms="" +/*| for it,t in ipairs(op.operands) do +/*| if not t.fixed then +/*| parms = parms .. ", "..(t2t[t.type] or t.type).." "..op.orgnames[it] +/*| end +/*| end +/*| return parms +/*| end +/*| function relayparms(op) +/*| local parms="" +/*| for it,t in ipairs(op.operands) do +/*| if not t.fixed then +/*| parms = parms .. ", "..op.orgnames[it] +/*| end +/*| end +/*| return parms +/*| end +/*| function consname(op) +/*| return "_ICons"..layoutlu2[op.opclass.layout.id].id +/*| end +/*| function consparms(op) +/*| local ren = {} +/*| for it, v in ipairs(op.operands) do +/*| ren[v.name] = op.orgnames[it] +/*| end +/*| local parms, l = "", layoutlu2[op.opclass.layout.id] +/*| for k,v in ipairs(l) do +/*| parms = parms .. ", "..(ren[v[2]]) +/*| end +/*| return parms +/*| end +/*| #define ADVANCE(IS,I) IS.advance(InsSizeCT::Value) +/*| #define ALLOCINS(BB,I) bb->createTailIns(InsSizeCT::Value) +/*| for k,op in pred_ipairs(data.ops, function(k,cl) return isa(op.opclass.isa) end) do + static inline void %(op.name)(InsRef ip%(insparms(op))) + { %(consname(op))(ip, I_%(op.name)%(consparms(op))); } + static inline void %(op.name)(InsStream &is%(insparms(op))) + { %(consname(op))(is.ip, I_%(op.name)%(consparms(op))); ADVANCE(is,I_%(op.name)); } + static inline void %(op.name)(BBlock* bb%(insparms(op))) + { %(consname(op))(ALLOCINS(bb,I_%(op.name)), I_%(op.name)%(consparms(op))); } +/*| end +/*| --*/ + +/*| local function grm(rm,n) return rm == "R" and ("GR"..n.."Ref") or ("Mem"..n.."Ref") end +/*| local ccs = {"O", "NO", "B", "AE", "E", "NE", "BE", "A", "S", "NS", "PE", "PO", "L", "GE", "LE", "G"} +/*| local oo, tname, oname, RM +/*| for rm_,RM_ in ipairs{"R","M"} do +/*| for k,v in pred_ipairs({{N=16,R="H"}, {N=32,R="W"}, {N=64, R="D",x64=true}}, +/*| function(k,v) return v.N <= N end do +/*| RM = RM_ == "R" and v.R or "M" +/*| tname, oname = "CMOVCC_" .. v.R ..RM, "CMOVO_" .. v.R .. RM +/*| oo = opname2op[oname] +/*| for kk,vv in ipairs(ccs) do + jitcs_static_assert(I_%(oname) + CC_%(vv) == I_CMOV%(vv)_%(v.R)%(RM)); +/*| end + static inline void %(tname)(InsRef ip, CondCodeId cc%(insparms(oo))) { + %(consname(oo))(ip, static_cast(I_%(oname)+cc)%(consparms(oo))); + } + static inline void %(tname)(InsStream& is, CondCodeId cc%(insparms(oo))) { + %(consname(oo))(is.ip, static_cast(I_%(oname)+cc)%(consparms(oo))); ADVANCE(is,I_%(oname)); + } + static inline void %(tname)(BBlock *bb, CondCodeId cc%(insparms(oo))) { + %(consname(oo))(ALLOCINS(bb,I_%(oname)), static_cast(I_%(oname)+cc)%(consparms(oo))); + } +/*| end + +/*| RM = RM_ == "R" and "B" or "M8" +/*| tname, oname = "SETCC_" .. RM, "SETO_" .. RM +/*| oo = opname2op[oname] +/*| for kk,vv in ipairs(ccs) do + evm_static_assert(I_%(oname) + CC_%(vv) == I_SET%(vv)_%(RM)); +/*| end + static inline void %(tname)(InsRef ip, CondCodeId cc%(insparms(oo))) { + %(consname(oo))(ip, static_cast(I_%(oname)+cc)%(consparms(oo))); + } + static inline void %(tname)(InsStream& is, CondCodeId cc%(insparms(oo))) { + %(consname(oo))(is.ip, static_cast(I_%(oname)+cc)%(consparms(oo))); ADVANCE(is,I_%(oname)); + } + static inline void %(tname)(BBlock *bb, CondCodeId cc%(insparms(oo))) { + %(consname(oo))(ALLOCINS(bb,I_%(oname)), static_cast(I_%(oname)+cc)%(consparms(oo))); + } +/*| end +/*| --*/ +/*| tname, oname = "JCC_BB_FT", "JO_BB_FT" +/*| oo = opname2op[oname] +/*| for kk,vv in ipairs(ccs) do + evm_static_assert(I_%(oname) + CC_%(vv) == I_J%(vv)_BB_FT); +/*| end + static inline void %(tname)(InsRef ip, CondCodeId cc%(insparms(oo))) { + %(consname(oo))(ip, static_cast(I_%(oname)+cc)%(consparms(oo))); + } + static inline void %(tname)(InsStream& is, CondCodeId cc%(insparms(oo))) { + %(consname(oo))(is.ip, static_cast(I_%(oname)+cc)%(consparms(oo))); ADVANCE(is,I_%(oname)); + } + static inline void %(tname)(BBlock *bb, CondCodeId cc%(insparms(oo))) { + %(consname(oo))(ALLOCINS(bb,I_%(oname)), static_cast(I_%(oname)+cc)%(consparms(oo))); + } + +/*| local al= runfile("../../../src-lib/x86/src/_x86_insalias.dat") + // here come aliases +/*| local b = bar.start() +/*| for k,v in ipairs{{0,al.aliases}, {32,al.aliases32}, {64,al.aliases64}} do +/*| b = bar.continue2(b,v[1]==32,v[1]==64) +/*| for kk,vv in ipairs(v[2]) do +/*| tname, oname = vv[1], vv[2] +/*| oo = opname2op[oname] + static inline void %(tname)(InsRef ip%(insparms(oo))) { + %(consname(oo))(ip, I_%(oname)%(consparms(oo))); + } + static inline void %(tname)(InsStream& is%(insparms(oo))) { + %(consname(oo))(is.ip, I_%(oname)%(consparms(oo))); ADVANCE(is,I_%(oname)); + } + static inline void %(tname)(BBlock *bb%(insparms(oo))) { + %(consname(oo))(ALLOCINS(bb,I_%(oname)), I_%(oname)%(consparms(oo))); + } +/*| end +/*| end +/*| #undef ADVANCE +/*| #undef ALLOCINS + +} // end of namespace jitcs::x86_%(N) +} // end of namespace jitcs +#endif +// _JITCS_X86_%(N)_CONS_H_ diff --git a/include/tmp/jitcs_x86_xx_insids.lh b/include/tmp/jitcs_x86_xx_insids.lh new file mode 100644 index 0000000..51a3c14 --- /dev/null +++ b/include/tmp/jitcs_x86_xx_insids.lh @@ -0,0 +1,68 @@ +#/bin/emblua LUAPREFIX=/*| +/*| --VARDELIM=% +/*| --CMTDELIM=// +/*| --*/ +/*| local N = $$$ +/*| function pred_ipairs(t, pred) +/*| return function(t,k) +/*| local v +/*| repeat +/*| k = k + 1 +/*| v = t[k] +/*| until not v or pred(k, v) +/*| return v and k, v +/*| end, t, 0 +/*| end +/*| function isa(v) return not v[N==32 and "x64" or "x32only"] end +//===-- jitcs_x86_%(N)_regs.h C++ -----------------------------------------*-===// +// +// Instruction and instruction class ids (+ condition codes) for %(N)bit x86 code. +// +//===----------------------------------------------------------------------===// + +#ifndef _JITCS_X86_%(N)_INSIDS_H_ +#define _JITCS_X86_%(N)_INSIDS_H_ + +#include "jitcs_base.h" +#include "jitcs_ids.h" +#include "jitcs_x86_common_insids.h" + +/*| local data= runfile("../src/data/x86_inslist.dat") +/*| --*/ + +namespace jitcs { +namespace x86_%(N) { + +using x86_common::CondCodeId; +enum { + IC_SubBits = 5, + IC_SubMask = (1 << IC_SubBits) - 1, +}; +enum InsClassId { + IC_Invalid = (I_CoreMax + IC_SubMask) >> IC_SubBits, +/*| local function ps(n,s) return n .. (#n < s and string.rep(" ",s-#n) or "") end +/*| for k,cl in pred_ipairs(data.opclasses, function(k,cl) return isa(cl.isa) end) do + IC_%(cl.id), // ? members +/*| end +/*| --*/ + IC_Count, +}; +#define INSID(CID,SUB,SUB2) static_cast(((CID) << IC_SubBits) + (SUB) + (SUB2)) +/*| for k,op in pred_ipairs(data.ops, function(k,op) return isa(op.opclass.isa) end) do +static const InsId I_%(ps(op.name, 20)) = INSID(IC_%(op.opclass.id), %(op.sub or 0), %(op.sub2 or 0)); +/*| end +/*| --*/ +#undef INSID + +/*| local al= runfile("../src/data/x86_insalias.dat") +// here come aliases +/*| for k,v in ipairs{{0,al.aliases}, {N,al["aliases"..N]}} do +/*| for kk,vv in ipairs(v[2]) do +static const InsId I_%(ps(vv[1],20)) = I_%(vv[2]); +/*| end +/*| end + +} // end of namespace jitcs::x86_%(N) +} // end of namespace jitcs +#endif +// _JITCS_X86_%(N)_INSIDS_H_ diff --git a/include/tmp/jitcs_x86_xx_regs.lh b/include/tmp/jitcs_x86_xx_regs.lh new file mode 100644 index 0000000..e222183 --- /dev/null +++ b/include/tmp/jitcs_x86_xx_regs.lh @@ -0,0 +1,185 @@ +#/bin/emblua LUAPREFIX=/*| +/*| --VARDELIM=% +/*| --CMTDELIM=// +/*| --XDUMPSCRIPT=true +/*| --*/ +/*| local N = $$$ +/*| function pred_ipairs(t, pred) +/*| return function(t,k) +/*| local v +/*| repeat +/*| k = k + 1 +/*| v = t[k] +/*| until not v or pred(k, v) +/*| return v and k, v +/*| end, t, 0 +/*| end +/*| function isaN(k,v) return not v[N==32 and "x64" or "x32"] end +//===-- jitcs_x86_%(N)_regs.h C++ -----------------------------------------*-===// +// +// Register definitions for %(N)bit x86 code. +// +//===----------------------------------------------------------------------===// + +#ifndef _JITCS_X86_%(N)_REGS_H_ +#define _JITCS_X86_%(N)_REGS_H_ + +#include "jitcs_base.h" +#include "jitcs_ids.h" +#include "jitcs_registers.h" + +/*| local data= runfile("../src/data/x86_reglist.dat") +/*| local function hex2(n) return string.format("0x%02x", n) end +/*| --*/ + +namespace jitcs { +namespace x86_%(N) { + +/*| local n2c = {} +/*| for k,v in ipairs(data.classes) do +/*| n2c[v.name] = v +/*| end +/*| local c2r, c2ra, n2r = {}, {}, {} +/*| for k,v in ipairs(data.registers) do +/*| n2r[v.name] = v +/*| local c = c2r[v.class] or {} +/*| c2r[v.class] = c +/*| c[#c+1] = v +/*| end +/*| for k,v2 in ipairs(data.registeraliases) do +/*| local v = n2r[v2.dest] +/*| local c = c2ra[v.class] or {} +/*| c2ra[v.class] = c +/*| c[#c+1] = v2 +/*| end +/*| --*/ +enum { + RC_Count = %(#data.refclasses), +}; + +// special regs +#define RCLID(ID) static_cast((ID)) +/*| for l,cl in pred_ipairs(data.refclasses,isaN) do +static const RegClassId RC_%(cl.name) = RCLID(%l); +/*| end +/*| for l,cl in pred_ipairs(data.refclassaliases,isaN) do +static const RegClassId RC_%(cl.name) = RC_%(cl.dest); +/*| end +/*| --*/ +#undef RCLID + +enum RegSubClassEnum { +/*| for l,cl in pred_ipairs(data.classes,isaN) do + RSC_%(cl.name), +/*| end +/*| --*/ + RSC_Count, +}; + +/*| for l,cl in pred_ipairs(data.classes, isaN) do +enum %(cl.name)Enum { +/*| for k,v in pred_ipairs(c2r[cl.name], isaN) do + R_%(v.name) = %(hex2(v.id)), +/*| end +/*| if c2ra[cl.name] and #c2ra[cl.name] > 0 then + // aliases +/*| for k,v in pred_ipairs(c2ra[cl.name],isaN) do + R_%(v.name) = R_%(v.dest), +/*| end +/*| end +}; +/*| end +/*| for k,v in pred_ipairs(data.classaliases,isaN) do + typedef %(v.dest)Enum %(v.name)Enum; +/*| end +/*| --*/ + +/*| local nn32, nn64, v2nn = 0, 0, {} +/*| for z = 1,3 do +/*| for l,cl in ipairs(data.classes) do +/*| for k,v in ipairs(c2r[cl.name]) do +/*| local cond32 = (cl.x32 or not cl.x64) and (v.x32 or not v.x64) +/*| local cond64 = (not cl.x32 or cl.x64) and (not v.x32 or v.x64) +/*| if (z == 1 and cond32 and cond64) or (z == 2 and cond32 and not cond64) or (z == 3 and not cond32 and cond64) then +/*| v2nn[v.name] = {x32 = cond32 and nn32, x64 = cond64 and nn64} +/*| if (cond32) then nn32 = nn32 + 1 end +/*| if (cond64) then nn64 = nn64 + 1 end +/*| end +/*| end +/*| end +/*| end +/*| --*/ + +extern VReg const _fixedRegs[%(N==32 and nn32 or nn64)]; +template +struct RegLookup { + operator VReg const*() const { + assert(N < %(N==32 and nn32 or nn64)); + return &_fixedRegs[N]; + } +}; +/*| for l,cl in pred_ipairs(data.classes,isaN) do +// %(cl.name) +/*| for k,v in pred_ipairs(c2r[cl.name],isaN) do +static const RegLookup<%(N==32 and v2nn[v.name].x32 or v2nn[v.name].x64), RSC_%(cl.name)> %(v.name); +/*| end +/*| if c2ra[cl.name] and #c2ra[cl.name] > 0 then + // aliases +/*| for k,v in pred_ipairs(c2ra[cl.name],isaN) do +static const RegLookup<%(N==32 and v2nn[v.dest].x32 or v2nn[v.dest].x64), RSC_%(cl.name)> %(v.name); +/*| end +/*| end +/*| --*/ + +/*| function buildt(base, range) +/*| local f,t = range:match("^(%d+)%-(%d+)$") +/*| return "(r >= "..(base+tonumber(f)).." && r <= "..(base+tonumber(t))..")" +/*| end +/*| function testrn(v32, v64) +/*| if (v32 and v64 and v32 == v64) then return v32 end +/*| return "("..((N==32 and v32 or v64) or "false")..")" +/*| end +/*| for l,cl in pred_ipairs(data.refclasses,isaN) do +/*| local test, test2 = nil, nil +/*| for k,v in ipairs(cl.classes) do +/*| local b = n2c[v].regbase +/*| local t32, t64 = buildt(b,n2c[v].restrictres or n2c[v].restrictres_32 or "0-7"), +/*| buildt(b,n2c[v].restrictres or n2c[v].restrictres_64 or "0-15") +/*| test = (test and (test .. " || ") or "") +/*| test = test .. testrn((n2c[v].x32 or not n2c[v].x64) and t32, (n2c[v].x64 or not n2c[v].x32) and t64) +/*| end +/*| for k,v in ipairs(cl.superrefclasses or {}) do +/*| local t = "rc == RC_" .. v +/*| test2 = (test2 or "") .. " || " +/*| test2 = test2 .. testrn((n2c[v].x32 or not n2c[v].x64) and t, (n2c[v].x64 or not n2c[v].x32) and t) +/*| end +inline bool Is%(cl.name)(RegId r) { return %(test or ""); } +inline bool Is%(cl.name)(RegClassId rc) { return rc == RC_%(cl.name)%(test2 or ""); } +/*| end +/*| --*/ + +/*| for l,cl in pred_ipairs(data.refclasses,isaN) do +struct %(cl.name)Ref : public VRegRef { + %(cl.name)Ref(const %(cl.name)Ref& other) : VRegRef(other) {} + void operator =(const %(cl.name)Ref& other) { VRegRef::operator =(other); } +/*| for k,v in pred_ipairs(cl.classes,function(k,v) return isaN(nil,n2c[v]) end) do + template + %(cl.name)Ref(RegLookup r) : VRegRef(VRegRef::Make(r)) {} +/*| end + %(cl.name)Ref(VReg const* r) : VRegRef(VRegRef::Make(r)) { assert(Is%(cl.name)(getRegClass())); } + %(cl.name)Ref(VRegRef r) : VRegRef(r) { assert(Is%(cl.name)(getRegClass())); } +// private: + %(cl.name)Ref() { clear(); } +}; +/*| end +/*| --*/ + +/*| for l,cl in pred_ipairs(data.refclassaliases,isaN) do +typedef %(cl.dest)Ref %(cl.name)Ref; +/*| end +/*| --*/ + +} // end of namespace jitcs::x86_%(N) +} // end of namespace jitcs +#endif +// _JITCS_X86_%(N)_REGS_H_ diff --git a/make.lua b/make.lua new file mode 100644 index 0000000..8332a49 --- /dev/null +++ b/make.lua @@ -0,0 +1,64 @@ +generated_source_files = { + ["src/data/x86_inslist.@(ltxt -> dat)"] = { + tools = "tools/x86_inslist2data.lua", + params = {"$(SRC)", "$(DST)"}, + }, + ["src/data/x86_insalias.@(ltxt -> dat)"] = { + tools = "tools/x86_insalias2data.lua", + params = {"$(SRC)", "$(DST)"}, + }, +--[[ ["src/data/x86_reglist.@(ltxt -> dat)"] = { + tools = "tools/x86_reglist2data.lua", + params = {"$(SRC)", "$(DST)"}, + }, +--]] + ["include/jitcs_x86_xx_cons.lh -> include/jitcs_x86_$(N)_cons.h"] = { + tools = "tools/template2header.lua", + params = {"$(SRC)", "N=$(N)", "$(DST)" }, + N = {"32", "64"}, + add_deps = {"src/data/x86_inslist.dat", "src/data/x86_insalias.dat"}, + }, + ["include/jitcs_x86_xx_insids.lh -> include/jitcs_x86_$(N)_insids.h"] = { + tools = "tools/template2header.lua", + params = {"$(SRC)", "N=$(N)", "$(DST)" }, + N = {"32", "64"}, + add_deps = {"src/data/x86_inslist.dat", "src/data/x86_insalias.dat"}, + }, + ["include/jitcs_x86_xx_regs.lh -> include/jitcs_x86_$(N)_regs.h"] = { + tools = "tools/template2header.lua", + params = {"include/jitcs_x86_xx_regs.h", "N=$(N)", "$(DST)" }, + N = {"32", "64"}, + add_deps = {"src/data/x86_reglist.dat"}, + }, +} +includefiles = { + "include/jitcs.h", + "include/jitcs_adt_bitstore.h", + "include/jitcs_adt_ref.h", + "include/jitcs_base.h", + "include/jitcs_bblock.h", + "include/jitcs_callconv.h", + "include/jitcs_cpu.h", + "include/jitcs_function.h", + "include/jitcs_ids.h", + "include/jitcs_insref.h", + "include/jitcs_memmgr.h", + "include/jitcs_memref.h", + "include/jitcs_tmpalloc.h", + "include/jitcs_vregref.h", + "include/jitcs_x86_32.h", + "include/jitcs_x86_64.h", + "include/jitcs_x86_common_insids.h", + "include/jitcs_x86_32_cons.h", + "include/jitcs_x86_64_cons.h", + "include/jitcs_x86_32_insids.h", + "include/jitcs_x86_64_insids.h", + "include/jitcs_x86_32_regs.h", + "include/jitcs_x86_64_regs.h", +} +sourcefiles = { + "src/cpu.cpp", + "src/memmgr.cpp", +} +testfiles = { +} diff --git a/makefile b/makefile new file mode 100644 index 0000000..1263948 --- /dev/null +++ b/makefile @@ -0,0 +1 @@ +all: diff --git a/src/cpu.cpp b/src/cpu.cpp new file mode 100644 index 0000000..5c2d5c8 --- /dev/null +++ b/src/cpu.cpp @@ -0,0 +1,382 @@ +#include "jitcs_cpu.h" +//#include +#include + +// ------------------------------------------ +static inline bool _TestBit(int v, int bit) { + return (v & (1 << bit)) != 0; +} + +#ifdef EVM_X86 +typedef u32 DWORD; + +namespace { + enum { + OS_SUPPORT_SSE= 1, + OS_SUPPORT_AVX= 2, + }; + struct X86CPUinfo { + DWORD maxbasic; + DWORD features1; + DWORD features2; + DWORD features3; + DWORD max7; + DWORD maxextended; + DWORD ext_features1; + DWORD ext_features2; + DWORD processor; + char proc_idstr[16]; + char proc_namestr[48]; + // DWORD proc_cache_l1[4]; + // DWORD proc_cache_l2[4]; + unsigned char os_support_flags; + DWORD clflush_logcores, physcores; + //DWORD monitorlinesizemin, monitorlinesizemax, cacheinfo; + }; + struct dw4 { DWORD w_eax, w_ecx, w_edx, w_ebx; }; +} + +// ===================================== + +#if _MSC_VER >= 1400 +#include +static dw4 _CPUID(int n, int m = 0) +{ + dw4 result; + +// int _data[4]; +// __cpuid(_data, n); + __asm { + mov eax, n + mov ecx, m + cpuid + mov result.w_eax, eax + mov result.w_ebx, ebx + mov result.w_ecx, ecx + mov result.w_edx, edx + } + +// result.w_eax= _data[0]; +// result.w_ebx= _data[1]; +// result.w_ecx= _data[2]; +// result.w_edx= _data[3]; + return result; +} +static void _TestSSE() { + __asm { orps xmm0,xmm0 } +} +static bool _TestAVX() { + DWORD a, d; + __asm { + xor ecx, ecx + xgetbv + mov a, eax + mov d, edx + } + return (a & 6) == 6; +} +#elif defined(_MSC_VER) +#error Currently only newer VC++ supported +static dw4 _CPUID(int n) { + dw4 result; + __asm { + push ebx; + mov eax,n; + cpuid; + mov result.w_eax, eax; + mov result.w_ebx, ebx; + mov result.w_ecx, ecx; + mov result.w_edx, edx; + pop ebx, + } + return result; +} +static void _TestSSE() { + __asm { orps xmm0,xmm0: emit ...; emit ... } +} +static void _TestSSE2() { + __asm { orpd xmm0,xmm0 } +} +#else +#error Currently only newer VC++ supported +#endif + +static int _S_DetectBaseX86 (X86CPUinfo& _cpuinfo) { + memset(&_cpuinfo, 0, sizeof(_cpuinfo)); + + try { + { + dw4 cpuid0 = _CPUID(0); + _cpuinfo.maxbasic = cpuid0.w_eax; + DWORD* pstr = (DWORD*)_cpuinfo.proc_idstr; + pstr[0] = cpuid0.w_ebx; + pstr[1] = cpuid0.w_edx; + pstr[2] = cpuid0.w_ecx; + } + + if (_cpuinfo.maxbasic >= 1) { + dw4 cpuid1 = _CPUID(1); + // w_eax: (according to intel/amd) + // [ 3- 0]: stepping + // [ 7- 4]: model + // [11- 8]: family + // [13-12]: intel:processor type; amd:reserved + // [19-16]: extended model + // mode = bitconcat(extmodel, model) + // (intel: only when family is 0x6 or 0xf; amd: only if family is 0xf ) + // [27-20]: extended family + // family = family + extended family (only when family is 0xf) + // w_ebx: (according to intel) + // [ 7- 0]: brand index + // [15- 8]: clflush line size (in 8 bytes) + // [23-16]: max number of logical processors in this phys. package + // [31-24]: initial apic id + // w_ecx: (according to intel) + // w_edx: (according to intel) + _cpuinfo.processor = cpuid1.w_eax; + _cpuinfo.clflush_logcores = cpuid1.w_ebx; + _cpuinfo.features1 = cpuid1.w_edx; + _cpuinfo.features2 = cpuid1.w_ecx; + } + if (_cpuinfo.maxbasic >= 2) { // amd reserved + // dw4 cpuid2= _CPUID(2); + // w_*: (according to intel) + // cache & tlb infos + } + if (_cpuinfo.maxbasic >= 3) { // amd reserved + // dw4 cpuid3= _CPUID(3); + // w_eax,w_ebx: (according to intel) + // reserved + // w_ecx: bits 0-31 of serial#, in pentium iii only + // w_edx: bits 32-63 of serial#, in pentium iii only + // valid only if PSN feature enabled + } + if (_cpuinfo.maxbasic >= 4) { // amd reserved + // dw4 cpuid4= _CPUID2(4,X); + // output depends on initial value of ecx(=X) + // visible only when IA32_MISC_ENABLES.BOOT_NT4[bit 22] = 0 + // w_eax: (according to intel) + // [ 4- 0]: cache type field + // {0:none;1:data;2:instruction;3:unified;>=4:reserved} + // [ 7- 5]: cache level (starts @ 1) + // [ 8]: cache needs no SW-init + // [ 9]: cache fully associative + // [10]: WBINVD/INVD {0:ins act upon lower-level caches; 1:not guaranteed} + // [11]: inclusive {0:doesn't include lower-level caches; 1:does} + // [13-12]: reserved + // [25-14]:* max number of threads this cache in phys. package + // [31-26]:* max number of cores in phys. package + // w_ebx: (according to intel) + // [11- 0]:* system coherency line size (?) + // [21-12]:* physical line partitions + // [31-22]:* ways of associativity + // w_ecx: (according to intel) + // number of sets (?) + // w_edx: (according to intel) + // reserved + // *: +1 to get result. + } + if (_cpuinfo.maxbasic >= 5) { // amd: eax, ebx: the same + //dw4 cpuid5= _CPUID(5); + // w_eax: (according to intel) + // [15- 0]: smallest monitor-line size in bytes + // [31-16]: reserved + // w_ebx: (according to intel) + // [15- 0]: largest monitor-line size in bytes + // [31-16]: reserved + // w_ecx: (according to intel) + // ??? + // w_edx: (according to intel) + // ??? + // *: +1 to get result. + //_cpuinfo.monitorlinesizemin = cpuid5.w_eax; + //_cpuinfo.monitorlinesizemax = cpuid5.w_ebx; + } + if (_cpuinfo.maxbasic >= 6) { + // turbo boost stuff + } + if (_cpuinfo.maxbasic >= 7) { + dw4 cpuid7_0= _CPUID(7, 0); + // w_eax: (according to intel) + // [15- 0]: smallest monitor-line size in bytes + // [31-16]: reserved + // w_ebx: (according to intel) + // [15- 0]: largest monitor-line size in bytes + // [31-16]: reserved + // w_ecx: (according to intel) + // ??? + // w_edx: (according to intel) + // ??? + // *: +1 to get result. + _cpuinfo.max7 = cpuid7_0.w_eax; + _cpuinfo.features3 = cpuid7_0.w_ebx; + } + if (_cpuinfo.maxbasic >= 9) { + // direct cache access + } + if (_cpuinfo.maxbasic >= 10) { + // architectural performance monitoring + } + if (_cpuinfo.maxbasic >= 11) { + // extended topology + } + if (_cpuinfo.maxbasic >= 13) { + // extended state enumeration, e.g. size for sse/avx storage area + } + DWORD high = 0x80000000; + if (_cpuinfo.maxbasic > 0) { + dw4 cpuidf0 = _CPUID(high); + _cpuinfo.maxextended = cpuidf0.w_eax; + } + if ((_cpuinfo.maxextended & high) > 0) { + if (_cpuinfo.maxextended >= high + 1) { + dw4 cpuidf1 = _CPUID(high + 1); + _cpuinfo.ext_features1 = cpuidf1.w_edx; + _cpuinfo.ext_features2 = cpuidf1.w_ecx; + } + if (_cpuinfo.maxextended >= high + 4) { + dw4 cpuidf2 = _CPUID(high + 2); + dw4 cpuidf3 = _CPUID(high + 3); + dw4 cpuidf4 = _CPUID(high + 4); + DWORD* pstr = (DWORD*)_cpuinfo.proc_namestr; + pstr[0] = cpuidf2.w_eax; + pstr[1] = cpuidf2.w_ebx; + pstr[2] = cpuidf2.w_ecx; + pstr[3] = cpuidf2.w_edx; + pstr[4] = cpuidf3.w_eax; + pstr[5] = cpuidf3.w_ebx; + pstr[6] = cpuidf3.w_ecx; + pstr[7] = cpuidf3.w_edx; + pstr[8] = cpuidf4.w_eax; + pstr[9] = cpuidf4.w_ebx; + pstr[10]= cpuidf4.w_ecx; + pstr[11]= cpuidf4.w_edx; + } + if (_cpuinfo.maxextended >= high + 5) { + // intel: reserved + // amd: L1 cache info + // proc_cache_l1_info: eax,ebx,ecx,edx (in that order) + } + if (_cpuinfo.maxextended >= high + 6) { + //dw4 cpuidf6= _CPUID(high+6); + // intel: + // amd: L2 cache info + // proc_cache_l2_info: eax,ebx,ecx,edx (in that order) + //_cpuinfo.cacheinfo = cpuidf6.w_ecx; + } + } + } + catch (...) { + memset(&_cpuinfo,0,sizeof(_cpuinfo)); + return -1; + } + if (_TestBit(_cpuinfo.features1, 25)) { + try { + _TestSSE(); + _cpuinfo.os_support_flags |= OS_SUPPORT_SSE; + + if (_TestBit(_cpuinfo.features2, 27) && _TestAVX()) + _cpuinfo.os_support_flags |= OS_SUPPORT_AVX; + } + catch (...) {} + } + return 1; +} +#endif + +// ===================================== + +static int _s_flagHasRun = 0; + +unsigned jitcs::CPUInfo::_sizeOfPreferredAlignment = 16; +unsigned jitcs::CPUInfo::_sizeOfCacheline = 64; +unsigned jitcs::CPUInfo::_countOfPhysCores= 1; +unsigned jitcs::CPUInfo::_countOfLogCores = 1; + +bool jitcs::CPUInfo::_infoIsValid = false; +jitcs::BitStore jitcs::CPUInfo::_setOfFeats; + +void jitcs::CPUInfo::Initialize() { + if (!_infoIsValid) { + _setOfFeats.clear(); + _sizeOfPreferredAlignment= 16; + _sizeOfCacheline= 64; + +#ifdef EVM_X86 + if (_s_flagHasRun == 0) + _s_flagHasRun= _S_DetectBaseX86(); +#else + _s_flagHasRun = -1; +#endif + + if (_s_flagHasRun == -1) + return; // no CPUID + +#ifdef EVM_X86 + _SetFeat(F_X86RDTSC, _TestBit(_cpuinfo.features1, 4)); + _SetFeat(F_X86CMPXCHG8B, _TestBit(_cpuinfo.features1, 8)); + _SetFeat(F_X86CMOV, _TestBit(_cpuinfo.features1, 15)); + _SetFeat(F_X86CLFLUSH, _TestBit(_cpuinfo.features1, 19)); + //_SetFeat(F_MULTITHREADING, _TestBit(_cpuinfo.features1, 28)); + //_SetFeat(F_MONITOR, _TestBit(_cpuinfo.features2, 3)); + _SetFeat(F_X86CMPXCHG16B, _TestBit(_cpuinfo.features2, 13)); + _SetFeat(F_X86POPCNT, _TestBit(_cpuinfo.features2, 23)); + _SetFeat(F_X86RDRAND, _TestBit(_cpuinfo.features2, 30)); // amd 9/2010: reserved + _SetFeat(F_X86BMI1, _TestBit(_cpuinfo.features3, 3)); + _SetFeat(F_X86BMI2, _TestBit(_cpuinfo.features3, 8)); // amd 9/2010: not defined + _SetFeat(F_X86RDTSCP, _TestBit(_cpuinfo.ext_features1, 27)); // old intel confirms, newest avx2 says reserved + _SetFeat(F_X86LAHFSAHF64, _TestBit(_cpuinfo.ext_features2, 0)); + _SetFeat(F_X86LZCNT, _TestBit(_cpuinfo.ext_features2, 5)); // intel avx2 doc is not clear which register it uses + //_SetFeat(F_LWP_AMD, _TestBit(_cpuinfo.ext_features2,15)); // amd only + //_SetFeat(F_TBM_AMD, _TestBit(_cpuinfo.ext_features2,21)); // amd only + + //_SetFeat(F_MMX, _TestBit(_cpuinfo.features1,23)); + // FXSAVE/FXRSTOR: _TestBit(_cpuinfo.features1,24)); + //_SetFeat(F_MMXEXT, _TestBit(_cpuinfo.features1,25) + // || _TestBit(_cpuinfo.ext_features1,22)); + // 3dnow is abandoned by amd + if ((_cpuinfo.os_support_flags & OS_SUPPORT_SSE) != 0) { + _SetFeat(F_X86SSE, _TestBit(_cpuinfo.features1, 25)); + _SetFeat(F_X86SSE2, _TestBit(_cpuinfo.features1, 26)); + _SetFeat(F_X86SSE3, _TestBit(_cpuinfo.features2, 0)); + _SetFeat(F_X86PCLMULQDQ, _TestBit(_cpuinfo.features2, 1)); + _SetFeat(F_X86SSSE3, _TestBit(_cpuinfo.features2, 9)); + _SetFeat(F_X86SSE41, _TestBit(_cpuinfo.features2, 19)); + _SetFeat(F_X86SSE42, _TestBit(_cpuinfo.features2, 20)); + _SetFeat(F_X86AES, _TestBit(_cpuinfo.features2, 25)); + // XSAVE/...: _TestBit(_cpuinfo.features2,26) + // OSXSAVE/...: _TestBit(_cpuinfo.features2,27) + _SetFeat(F_X86F16C, _TestBit(_cpuinfo.features2, 29)); + //_SetFeat(F_XOP_AMD, _TestBit(_cpuinfo.ext_features2,11)); // amd only + //_SetFeat(F_FMA4_AMD, _TestBit(_cpuinfo.ext_features2,16)); // amd only + //_SetFeat(F_MISALIGNEDSSE, _TestBit(_cpuinfo.ext_features2,7)); // amd only + } + if ((_cpuinfo.os_support_flags & OS_SUPPORT_AVX) != 0) { + _SetFeat(F_X86AVX, _TestBit(_cpuinfo.features2, 28)); + _SetFeat(F_X86AVX2, _TestBit(_cpuinfo.features3, 5)); // amd 9/2010: not defined + _SetFeat(F_X86FMA3, _TestBit(_cpuinfo.features2, 12)); + } + + if (((_cpuinfo.clflush_logcores >> 8) & 0xff) > 0) { + _sizeOfCacheline = 8 * ((_cpuinfo.clflush_logcores >> 8) & 0xff); + } + if (_TestBit(_cpuinfo.features1, 28) + && ((_cpuinfo.clflush_logcores >> 16) & 0xff) > 0) { + _countOfLogCores = ((_cpuinfo.clflush_logcores >> 16) & 0xff); + } + +#endif + _infoIsValid= true; + } +} +void jitcs::CPUInfo::Reinitialize() { + _infoIsValid= false; + Init(); +} +void jitcs::CPUInfo::DisableFeat(teFeat f) { + _SetFeat(f, false); +} +void jitcs::CPUInfo::_SetFeat(teFeat f, bool b) { + if (f >= 0 && f < F_COUNT) + _setOfFeats.setBit(f, b); +} diff --git a/src/data/x86_insalias.dat b/src/data/x86_insalias.dat new file mode 100644 index 0000000..7f3f235 --- /dev/null +++ b/src/data/x86_insalias.dat @@ -0,0 +1,587 @@ +return { +aliases = { + {"SETNP_B", "SETPO_B"}, + {"SETNP_M8", "SETPO_M8"}, + {"JNP_BB_FT", "JPO_BB_FT"}, + {"SETP_B", "SETPE_B"}, + {"SETP_M8", "SETPE_M8"}, + {"JP_BB_FT", "JPE_BB_FT"}, + {"SETC_B", "SETB_B"}, + {"SETC_M8", "SETB_M8"}, + {"JC_BB_FT", "JB_BB_FT"}, + {"SETNGE_B", "SETL_B"}, + {"SETNGE_M8", "SETL_M8"}, + {"JNGE_BB_FT", "JL_BB_FT"}, + {"SETNLE_B", "SETG_B"}, + {"SETNLE_M8", "SETG_M8"}, + {"JNLE_BB_FT", "JG_BB_FT"}, + {"SETNA_B", "SETBE_B"}, + {"SETNA_M8", "SETBE_M8"}, + {"JNA_BB_FT", "JBE_BB_FT"}, + {"SETNL_B", "SETGE_B"}, + {"SETNL_M8", "SETGE_M8"}, + {"JNL_BB_FT", "JGE_BB_FT"}, + {"SETNBE_B", "SETA_B"}, + {"SETNBE_M8", "SETA_M8"}, + {"JNBE_BB_FT", "JA_BB_FT"}, + {"SETNG_B", "SETLE_B"}, + {"SETNG_M8", "SETLE_M8"}, + {"JNG_BB_FT", "JLE_BB_FT"}, + {"SETZ_B", "SETE_B"}, + {"SETZ_M8", "SETE_M8"}, + {"JZ_BB_FT", "JE_BB_FT"}, + {"SETNZ_B", "SETNE_B"}, + {"SETNZ_M8", "SETNE_M8"}, + {"JNZ_BB_FT", "JNE_BB_FT"}, + {"SETNAE_B", "SETB_B"}, + {"SETNAE_M8", "SETB_M8"}, + {"JNAE_BB_FT", "JB_BB_FT"}, + {"SETNB_B", "SETAE_B"}, + {"SETNB_M8", "SETAE_M8"}, + {"JNB_BB_FT", "JAE_BB_FT"}, + {"SETNC_B", "SETAE_B"}, + {"SETNC_M8", "SETAE_M8"}, + {"JNC_BB_FT", "JAE_BB_FT"}, + {"MOVZX_RW", "MOV_WW"}, + {"MOVZX_RM32", "MOV_WM"}, + {"CMOVNP_WW", "CMOVPO_WW"}, + {"CMOVP_WW", "CMOVPE_WW"}, + {"CMOVC_WW", "CMOVB_WW"}, + {"CMOVNGE_WW", "CMOVL_WW"}, + {"CMOVNLE_WW", "CMOVG_WW"}, + {"CMOVNA_WW", "CMOVBE_WW"}, + {"CMOVNL_WW", "CMOVGE_WW"}, + {"CMOVNBE_WW", "CMOVA_WW"}, + {"CMOVNG_WW", "CMOVLE_WW"}, + {"CMOVZ_WW", "CMOVE_WW"}, + {"CMOVNZ_WW", "CMOVNE_WW"}, + {"CMOVNAE_WW", "CMOVB_WW"}, + {"CMOVNB_WW", "CMOVAE_WW"}, + {"CMOVNC_WW", "CMOVAE_WW"}, + {"CMOVNP_WM", "CMOVPO_WM"}, + {"CMOVP_WM", "CMOVPE_WM"}, + {"CMOVC_WM", "CMOVB_WM"}, + {"CMOVNGE_WM", "CMOVL_WM"}, + {"CMOVNLE_WM", "CMOVG_WM"}, + {"CMOVNA_WM", "CMOVBE_WM"}, + {"CMOVNL_WM", "CMOVGE_WM"}, + {"CMOVNBE_WM", "CMOVA_WM"}, + {"CMOVNG_WM", "CMOVLE_WM"}, + {"CMOVZ_WM", "CMOVE_WM"}, + {"CMOVNZ_WM", "CMOVNE_WM"}, + {"CMOVNAE_WM", "CMOVB_WM"}, + {"CMOVNB_WM", "CMOVAE_WM"}, + {"CMOVNC_WM", "CMOVAE_WM"}, +}, aliases32 = { + {"MOV_MR", "MOV_MW"}, + {"LEA_RM", "LEA_WM"}, + {"LEA_RRRII", "LEA_WWWII"}, + {"ADD_MR", "ADD_MW"}, + {"OR_MR", "OR_MW"}, + {"AND_MR", "AND_MW"}, + {"SUB_MR", "SUB_MW"}, + {"XOR_MR", "XOR_MW"}, + {"ADC_MR", "ADC_MW"}, + {"SBB_MR", "SBB_MW"}, + {"CMP_MR", "CMP_MW"}, + {"TEST_MR", "TEST_MW"}, + {"INC_M", "INC_M32"}, + {"DEC_M", "DEC_M32"}, + {"BSWAP_R", "BSWAP_W"}, + {"SIGNRAX", "CDQ"}, + {"MOVZX_RB", "MOVZX_WB"}, + {"MOVZX_RM8", "MOVZX_WM8"}, + {"MOVSX_RB", "MOVSX_WB"}, + {"MOVSX_RM8", "MOVSX_WM8"}, + {"MOVZX_RH", "MOVZX_WH"}, + {"MOVZX_RM16", "MOVZX_WM16"}, + {"MOVSX_RH", "MOVSX_WH"}, + {"MOVSX_RM16", "MOVSX_WM16"}, + {"MOVSX_RW", "MOV_WW"}, + {"MOVSX_RM32", "MOV_WM"}, + {"MOV_RI", "MOV_WI"}, + {"MOV_RR", "MOV_WW"}, + {"ADD_RI", "ADD_WI"}, + {"ADD_RR", "ADD_WW"}, + {"OR_RI", "OR_WI"}, + {"OR_RR", "OR_WW"}, + {"AND_RI", "AND_WI"}, + {"AND_RR", "AND_WW"}, + {"SUB_RI", "SUB_WI"}, + {"SUB_RR", "SUB_WW"}, + {"XOR_RI", "XOR_WI"}, + {"XOR_RR", "XOR_WW"}, + {"ADC_RI", "ADC_WI"}, + {"ADC_RR", "ADC_WW"}, + {"SBB_RI", "SBB_WI"}, + {"SBB_RR", "SBB_WW"}, + {"CMP_RI", "CMP_WI"}, + {"CMP_RR", "CMP_WW"}, + {"TEST_RI", "TEST_WI"}, + {"TEST_RR", "TEST_WW"}, + {"NOT_R", "NOT_W"}, + {"NEG_R", "NEG_W"}, + {"DIV_R", "DIV_W"}, + {"IDIV_R", "IDIV_W"}, + {"MUL_R", "MUL_W"}, + {"IMUL_R", "IMUL_W"}, + {"ROL_RI", "ROL_WI"}, + {"ROL_R_CL", "ROL_W_CL"}, + {"ROR_RI", "ROR_WI"}, + {"ROR_R_CL", "ROR_W_CL"}, + {"SHL_RI", "SHL_WI"}, + {"SHL_R_CL", "SHL_W_CL"}, + {"SHR_RI", "SHR_WI"}, + {"SHR_R_CL", "SHR_W_CL"}, + {"SAR_RI", "SAR_WI"}, + {"SAR_R_CL", "SAR_W_CL"}, + {"RCL_RI", "RCL_WI"}, + {"RCL_R_CL", "RCL_W_CL"}, + {"RCR_RI", "RCR_WI"}, + {"RCR_R_CL", "RCR_W_CL"}, + {"SHLD_RRI", "SHLD_WWI"}, + {"SHLD_RR_CL", "SHLD_WW_CL"}, + {"SHRD_RRI", "SHRD_WWI"}, + {"SHRD_RR_CL", "SHRD_WW_CL"}, + {"IMUL_RR", "IMUL_WW"}, + {"IMUL_RRI", "IMUL_WWI"}, + {"BSF_RR", "BSF_WW"}, + {"BSR_RR", "BSR_WW"}, + {"BT_RR", "BT_WW"}, + {"BT_RI", "BT_WI"}, + {"BTC_RR", "BTC_WW"}, + {"BTC_RI", "BTC_WI"}, + {"BTR_RR", "BTR_WW"}, + {"BTR_RI", "BTR_WI"}, + {"BTS_RR", "BTS_WW"}, + {"BTS_RI", "BTS_WI"}, + {"CMOVO_RR", "CMOVO_WW"}, + {"CMOVNO_RR", "CMOVNO_WW"}, + {"CMOVB_RR", "CMOVB_WW"}, + {"CMOVAE_RR", "CMOVAE_WW"}, + {"CMOVE_RR", "CMOVE_WW"}, + {"CMOVNE_RR", "CMOVNE_WW"}, + {"CMOVBE_RR", "CMOVBE_WW"}, + {"CMOVA_RR", "CMOVA_WW"}, + {"CMOVS_RR", "CMOVS_WW"}, + {"CMOVNS_RR", "CMOVNS_WW"}, + {"CMOVPE_RR", "CMOVPE_WW"}, + {"CMOVPO_RR", "CMOVPO_WW"}, + {"CMOVL_RR", "CMOVL_WW"}, + {"CMOVGE_RR", "CMOVGE_WW"}, + {"CMOVLE_RR", "CMOVLE_WW"}, + {"CMOVG_RR", "CMOVG_WW"}, + {"POPCNT_RR", "POPCNT_WW"}, + {"CMOVNP_RR", "CMOVPO_WW"}, + {"CMOVP_RR", "CMOVPE_WW"}, + {"CMOVC_RR", "CMOVB_WW"}, + {"CMOVNGE_RR", "CMOVL_WW"}, + {"CMOVNLE_RR", "CMOVG_WW"}, + {"CMOVNA_RR", "CMOVBE_WW"}, + {"CMOVNL_RR", "CMOVGE_WW"}, + {"CMOVNBE_RR", "CMOVA_WW"}, + {"CMOVNG_RR", "CMOVLE_WW"}, + {"CMOVZ_RR", "CMOVE_WW"}, + {"CMOVNZ_RR", "CMOVNE_WW"}, + {"CMOVNAE_RR", "CMOVB_WW"}, + {"CMOVNB_RR", "CMOVAE_WW"}, + {"CMOVNC_RR", "CMOVAE_WW"}, + {"IJMP_R", "IJMP_W_x32"}, + {"ICALL_R", "ICALL_W_x32"}, + {"PUSH_R", "PUSH_W_x32"}, + {"POP_R", "POP_W_x32"}, + {"CRC32_WR", "CRC32_WW"}, + {"ANDN_RRR", "ANDN_WWW"}, + {"BEXTR_RRR", "BEXTR_WWW"}, + {"BLSI_RR", "BLSI_WW"}, + {"BLSMSK_RR", "BLSMSK_WW"}, + {"BLSR_RR", "BLSR_WW"}, + {"BZHI_RRR", "BZHI_WWW"}, + {"LZCNT_RR", "LZCNT_WW"}, + {"MULX_RRR", "MULX_WWW"}, + {"PDEP_RRR", "PDEP_WWW"}, + {"PEXT_RRR", "PEXT_WWW"}, + {"RORX_RRI", "RORX_WWI"}, + {"SARX_RRR", "SARX_WWW"}, + {"SHLX_RRR", "SHLX_WWW"}, + {"SHRX_RRR", "SHRX_WWW"}, + {"TZCNT_RR", "TZCNT_WW"}, + {"MOV_MI", "MOV_M32I"}, + {"MOV_RM", "MOV_WM"}, + {"ADD_MI", "ADD_M32I"}, + {"ADD_RM", "ADD_WM"}, + {"OR_MI", "OR_M32I"}, + {"OR_RM", "OR_WM"}, + {"AND_MI", "AND_M32I"}, + {"AND_RM", "AND_WM"}, + {"SUB_MI", "SUB_M32I"}, + {"SUB_RM", "SUB_WM"}, + {"XOR_MI", "XOR_M32I"}, + {"XOR_RM", "XOR_WM"}, + {"ADC_MI", "ADC_M32I"}, + {"ADC_RM", "ADC_WM"}, + {"SBB_MI", "SBB_M32I"}, + {"SBB_RM", "SBB_WM"}, + {"CMP_MI", "CMP_M32I"}, + {"CMP_RM", "CMP_WM"}, + {"TEST_MI", "TEST_M32I"}, + {"TEST_RM", "TEST_WM"}, + {"NOT_M", "NOT_M32"}, + {"NEG_M", "NEG_M32"}, + {"DIV_M", "DIV_M32"}, + {"IDIV_M", "IDIV_M32"}, + {"MUL_M", "MUL_M32"}, + {"IMUL_M", "IMUL_M32"}, + {"ROL_MI", "ROL_M32I"}, + {"ROL_M_CL", "ROL_M32_CL"}, + {"ROR_MI", "ROR_M32I"}, + {"ROR_M_CL", "ROR_M32_CL"}, + {"SHL_MI", "SHL_M32I"}, + {"SHL_M_CL", "SHL_M32_CL"}, + {"SHR_MI", "SHR_M32I"}, + {"SHR_M_CL", "SHR_M32_CL"}, + {"SAR_MI", "SAR_M32I"}, + {"SAR_M_CL", "SAR_M32_CL"}, + {"RCL_MI", "RCL_M32I"}, + {"RCL_M_CL", "RCL_M32_CL"}, + {"RCR_MI", "RCR_M32I"}, + {"RCR_M_CL", "RCR_M32_CL"}, + {"SHLD_MRI", "SHLD_MWI"}, + {"SHLD_MR_CL", "SHLD_MW_CL"}, + {"SHRD_MRI", "SHRD_MWI"}, + {"SHRD_MR_CL", "SHRD_MW_CL"}, + {"IMUL_RM", "IMUL_WM"}, + {"IMUL_RMI", "IMUL_WMI"}, + {"BSF_RM", "BSF_WM"}, + {"BSR_RM", "BSR_WM"}, + {"BT_MR", "BT_MW"}, + {"BT_MI", "BT_M32I"}, + {"BTC_MR", "BTC_MW"}, + {"BTC_MI", "BTC_M32I"}, + {"BTR_MR", "BTR_MW"}, + {"BTR_MI", "BTR_M32I"}, + {"BTS_MR", "BTS_MW"}, + {"BTS_MI", "BTS_M32I"}, + {"CMOVO_RM", "CMOVO_WM"}, + {"CMOVNO_RM", "CMOVNO_WM"}, + {"CMOVB_RM", "CMOVB_WM"}, + {"CMOVAE_RM", "CMOVAE_WM"}, + {"CMOVE_RM", "CMOVE_WM"}, + {"CMOVNE_RM", "CMOVNE_WM"}, + {"CMOVBE_RM", "CMOVBE_WM"}, + {"CMOVA_RM", "CMOVA_WM"}, + {"CMOVS_RM", "CMOVS_WM"}, + {"CMOVNS_RM", "CMOVNS_WM"}, + {"CMOVPE_RM", "CMOVPE_WM"}, + {"CMOVPO_RM", "CMOVPO_WM"}, + {"CMOVL_RM", "CMOVL_WM"}, + {"CMOVGE_RM", "CMOVGE_WM"}, + {"CMOVLE_RM", "CMOVLE_WM"}, + {"CMOVG_RM", "CMOVG_WM"}, + {"POPCNT_RM", "POPCNT_WM"}, + {"CMOVNP_RM", "CMOVPO_WM"}, + {"CMOVP_RM", "CMOVPE_WM"}, + {"CMOVC_RM", "CMOVB_WM"}, + {"CMOVNGE_RM", "CMOVL_WM"}, + {"CMOVNLE_RM", "CMOVG_WM"}, + {"CMOVNA_RM", "CMOVBE_WM"}, + {"CMOVNL_RM", "CMOVGE_WM"}, + {"CMOVNBE_RM", "CMOVA_WM"}, + {"CMOVNG_RM", "CMOVLE_WM"}, + {"CMOVZ_RM", "CMOVE_WM"}, + {"CMOVNZ_RM", "CMOVNE_WM"}, + {"CMOVNAE_RM", "CMOVB_WM"}, + {"CMOVNB_RM", "CMOVAE_WM"}, + {"CMOVNC_RM", "CMOVAE_WM"}, + {"IJMP_M", "IJMP_M32_x32"}, + {"ICALL_M", "ICALL_M32_x32"}, + {"PUSH_M", "PUSH_M32_x32"}, + {"POP_M", "POP_M32_x32"}, + {"CRC32_WM", "CRC32_WM32"}, + {"ANDN_RRM", "ANDN_WWM"}, + {"BEXTR_RMR", "BEXTR_WMW"}, + {"BLSI_RM", "BLSI_WM"}, + {"BLSMSK_RM", "BLSMSK_WM"}, + {"BLSR_RM", "BLSR_WM"}, + {"BZHI_RMR", "BZHI_WMW"}, + {"LZCNT_RM", "LZCNT_WM"}, + {"MULX_RRM", "MULX_WWM"}, + {"PDEP_RRM", "PDEP_WWM"}, + {"PEXT_RRM", "PEXT_WWM"}, + {"RORX_RMI", "RORX_WMI"}, + {"SARX_RMR", "SARX_WMW"}, + {"SHLX_RMR", "SHLX_WMW"}, + {"SHRX_RMR", "SHRX_WMW"}, + {"TZCNT_RM", "TZCNT_WM"}, +}, aliases64 = { + {"MOV_MR", "MOV_MD"}, + {"LEA_RM", "LEA_DM"}, + {"LEA_RRRII", "LEA_DDDII"}, + {"ADD_MR", "ADD_MD"}, + {"OR_MR", "OR_MD"}, + {"AND_MR", "AND_MD"}, + {"SUB_MR", "SUB_MD"}, + {"XOR_MR", "XOR_MD"}, + {"ADC_MR", "ADC_MD"}, + {"SBB_MR", "SBB_MD"}, + {"CMP_MR", "CMP_MD"}, + {"TEST_MR", "TEST_MD"}, + {"INC_M", "INC_M64"}, + {"DEC_M", "DEC_M64"}, + {"BSWAP_R", "BSWAP_D"}, + {"SIGNRAX", "CQO"}, + {"MOVZX_RB", "MOVZX_DB"}, + {"MOVZX_RM8", "MOVZX_DM8"}, + {"MOVSX_RB", "MOVSX_DB"}, + {"MOVSX_RM8", "MOVSX_DM8"}, + {"MOVZX_RH", "MOVZX_DH"}, + {"MOVZX_RM16", "MOVZX_DM16"}, + {"MOVSX_RH", "MOVSX_DH"}, + {"MOVSX_RM16", "MOVSX_DM16"}, + {"MOVSX_RW", "MOVSX_DW"}, + {"MOVSX_RM32", "MOVSX_DM32"}, + {"MOVZX_DW", "MOV_WW"}, + {"MOVZX_DM32", "MOV_WM"}, + {"MOV_RI", "MOV_DI"}, + {"MOV_RR", "MOV_DD"}, + {"ADD_RI", "ADD_DI"}, + {"ADD_RR", "ADD_DD"}, + {"OR_RI", "OR_DI"}, + {"OR_RR", "OR_DD"}, + {"AND_RI", "AND_DI"}, + {"AND_RR", "AND_DD"}, + {"SUB_RI", "SUB_DI"}, + {"SUB_RR", "SUB_DD"}, + {"XOR_RI", "XOR_DI"}, + {"XOR_RR", "XOR_DD"}, + {"ADC_RI", "ADC_DI"}, + {"ADC_RR", "ADC_DD"}, + {"SBB_RI", "SBB_DI"}, + {"SBB_RR", "SBB_DD"}, + {"CMP_RI", "CMP_DI"}, + {"CMP_RR", "CMP_DD"}, + {"TEST_RI", "TEST_DI"}, + {"TEST_RR", "TEST_DD"}, + {"NOT_R", "NOT_D"}, + {"NEG_R", "NEG_D"}, + {"DIV_R", "DIV_D"}, + {"IDIV_R", "IDIV_D"}, + {"MUL_R", "MUL_D"}, + {"IMUL_R", "IMUL_D"}, + {"ROL_RI", "ROL_DI"}, + {"ROL_R_CL", "ROL_D_CL"}, + {"ROR_RI", "ROR_DI"}, + {"ROR_R_CL", "ROR_D_CL"}, + {"SHL_RI", "SHL_DI"}, + {"SHL_R_CL", "SHL_D_CL"}, + {"SHR_RI", "SHR_DI"}, + {"SHR_R_CL", "SHR_D_CL"}, + {"SAR_RI", "SAR_DI"}, + {"SAR_R_CL", "SAR_D_CL"}, + {"RCL_RI", "RCL_DI"}, + {"RCL_R_CL", "RCL_D_CL"}, + {"RCR_RI", "RCR_DI"}, + {"RCR_R_CL", "RCR_D_CL"}, + {"SHLD_RRI", "SHLD_DDI"}, + {"SHLD_RR_CL", "SHLD_DD_CL"}, + {"SHRD_RRI", "SHRD_DDI"}, + {"SHRD_RR_CL", "SHRD_DD_CL"}, + {"IMUL_RR", "IMUL_DD"}, + {"IMUL_RRI", "IMUL_DDI"}, + {"BSF_RR", "BSF_DD"}, + {"BSR_RR", "BSR_DD"}, + {"BT_RR", "BT_DD"}, + {"BT_RI", "BT_DI"}, + {"BTC_RR", "BTC_DD"}, + {"BTC_RI", "BTC_DI"}, + {"BTR_RR", "BTR_DD"}, + {"BTR_RI", "BTR_DI"}, + {"BTS_RR", "BTS_DD"}, + {"BTS_RI", "BTS_DI"}, + {"CMOVO_RR", "CMOVO_DD"}, + {"CMOVNO_RR", "CMOVNO_DD"}, + {"CMOVB_RR", "CMOVB_DD"}, + {"CMOVAE_RR", "CMOVAE_DD"}, + {"CMOVE_RR", "CMOVE_DD"}, + {"CMOVNE_RR", "CMOVNE_DD"}, + {"CMOVBE_RR", "CMOVBE_DD"}, + {"CMOVA_RR", "CMOVA_DD"}, + {"CMOVS_RR", "CMOVS_DD"}, + {"CMOVNS_RR", "CMOVNS_DD"}, + {"CMOVPE_RR", "CMOVPE_DD"}, + {"CMOVPO_RR", "CMOVPO_DD"}, + {"CMOVL_RR", "CMOVL_DD"}, + {"CMOVGE_RR", "CMOVGE_DD"}, + {"CMOVLE_RR", "CMOVLE_DD"}, + {"CMOVG_RR", "CMOVG_DD"}, + {"POPCNT_RR", "POPCNT_DD"}, + {"CMOVNP_DD", "CMOVPO_DD"}, + {"CMOVNP_RR", "CMOVPO_DD"}, + {"CMOVP_DD", "CMOVPE_DD"}, + {"CMOVP_RR", "CMOVPE_DD"}, + {"CMOVC_DD", "CMOVB_DD"}, + {"CMOVC_RR", "CMOVB_DD"}, + {"CMOVNGE_DD", "CMOVL_DD"}, + {"CMOVNGE_RR", "CMOVL_DD"}, + {"CMOVNLE_DD", "CMOVG_DD"}, + {"CMOVNLE_RR", "CMOVG_DD"}, + {"CMOVNA_DD", "CMOVBE_DD"}, + {"CMOVNA_RR", "CMOVBE_DD"}, + {"CMOVNL_DD", "CMOVGE_DD"}, + {"CMOVNL_RR", "CMOVGE_DD"}, + {"CMOVNBE_DD", "CMOVA_DD"}, + {"CMOVNBE_RR", "CMOVA_DD"}, + {"CMOVNG_DD", "CMOVLE_DD"}, + {"CMOVNG_RR", "CMOVLE_DD"}, + {"CMOVZ_DD", "CMOVE_DD"}, + {"CMOVZ_RR", "CMOVE_DD"}, + {"CMOVNZ_DD", "CMOVNE_DD"}, + {"CMOVNZ_RR", "CMOVNE_DD"}, + {"CMOVNAE_DD", "CMOVB_DD"}, + {"CMOVNAE_RR", "CMOVB_DD"}, + {"CMOVNB_DD", "CMOVAE_DD"}, + {"CMOVNB_RR", "CMOVAE_DD"}, + {"CMOVNC_DD", "CMOVAE_DD"}, + {"CMOVNC_RR", "CMOVAE_DD"}, + {"IJMP_R", "IJMP_D_x64"}, + {"ICALL_R", "ICALL_D_x64"}, + {"PUSH_R", "PUSH_D_x64"}, + {"POP_R", "POP_D_x64"}, + {"CRC32_WR", "CRC32_WD"}, + {"ANDN_RRR", "ANDN_DDD"}, + {"BEXTR_RRR", "BEXTR_DDD"}, + {"BLSI_RR", "BLSI_DD"}, + {"BLSMSK_RR", "BLSMSK_DD"}, + {"BLSR_RR", "BLSR_DD"}, + {"BZHI_RRR", "BZHI_DDD"}, + {"LZCNT_RR", "LZCNT_DD"}, + {"MULX_RRR", "MULX_DDD"}, + {"PDEP_RRR", "PDEP_DDD"}, + {"PEXT_RRR", "PEXT_DDD"}, + {"RORX_RRI", "RORX_DDI"}, + {"SARX_RRR", "SARX_DDD"}, + {"SHLX_RRR", "SHLX_DDD"}, + {"SHRX_RRR", "SHRX_DDD"}, + {"TZCNT_RR", "TZCNT_DD"}, + {"MOV_MI", "MOV_M64I"}, + {"MOV_RM", "MOV_DM"}, + {"ADD_MI", "ADD_M64I"}, + {"ADD_RM", "ADD_DM"}, + {"OR_MI", "OR_M64I"}, + {"OR_RM", "OR_DM"}, + {"AND_MI", "AND_M64I"}, + {"AND_RM", "AND_DM"}, + {"SUB_MI", "SUB_M64I"}, + {"SUB_RM", "SUB_DM"}, + {"XOR_MI", "XOR_M64I"}, + {"XOR_RM", "XOR_DM"}, + {"ADC_MI", "ADC_M64I"}, + {"ADC_RM", "ADC_DM"}, + {"SBB_MI", "SBB_M64I"}, + {"SBB_RM", "SBB_DM"}, + {"CMP_MI", "CMP_M64I"}, + {"CMP_RM", "CMP_DM"}, + {"TEST_MI", "TEST_M64I"}, + {"TEST_RM", "TEST_DM"}, + {"NOT_M", "NOT_M64"}, + {"NEG_M", "NEG_M64"}, + {"DIV_M", "DIV_M64"}, + {"IDIV_M", "IDIV_M64"}, + {"MUL_M", "MUL_M64"}, + {"IMUL_M", "IMUL_M64"}, + {"ROL_MI", "ROL_M64I"}, + {"ROL_M_CL", "ROL_M64_CL"}, + {"ROR_MI", "ROR_M64I"}, + {"ROR_M_CL", "ROR_M64_CL"}, + {"SHL_MI", "SHL_M64I"}, + {"SHL_M_CL", "SHL_M64_CL"}, + {"SHR_MI", "SHR_M64I"}, + {"SHR_M_CL", "SHR_M64_CL"}, + {"SAR_MI", "SAR_M64I"}, + {"SAR_M_CL", "SAR_M64_CL"}, + {"RCL_MI", "RCL_M64I"}, + {"RCL_M_CL", "RCL_M64_CL"}, + {"RCR_MI", "RCR_M64I"}, + {"RCR_M_CL", "RCR_M64_CL"}, + {"SHLD_MRI", "SHLD_MDI"}, + {"SHLD_MR_CL", "SHLD_MD_CL"}, + {"SHRD_MRI", "SHRD_MDI"}, + {"SHRD_MR_CL", "SHRD_MD_CL"}, + {"IMUL_RM", "IMUL_DM"}, + {"IMUL_RMI", "IMUL_DMI"}, + {"BSF_RM", "BSF_DM"}, + {"BSR_RM", "BSR_DM"}, + {"BT_MR", "BT_MD"}, + {"BT_MI", "BT_M64I"}, + {"BTC_MR", "BTC_MD"}, + {"BTC_MI", "BTC_M64I"}, + {"BTR_MR", "BTR_MD"}, + {"BTR_MI", "BTR_M64I"}, + {"BTS_MR", "BTS_MD"}, + {"BTS_MI", "BTS_M64I"}, + {"CMOVO_RM", "CMOVO_DM"}, + {"CMOVNO_RM", "CMOVNO_DM"}, + {"CMOVB_RM", "CMOVB_DM"}, + {"CMOVAE_RM", "CMOVAE_DM"}, + {"CMOVE_RM", "CMOVE_DM"}, + {"CMOVNE_RM", "CMOVNE_DM"}, + {"CMOVBE_RM", "CMOVBE_DM"}, + {"CMOVA_RM", "CMOVA_DM"}, + {"CMOVS_RM", "CMOVS_DM"}, + {"CMOVNS_RM", "CMOVNS_DM"}, + {"CMOVPE_RM", "CMOVPE_DM"}, + {"CMOVPO_RM", "CMOVPO_DM"}, + {"CMOVL_RM", "CMOVL_DM"}, + {"CMOVGE_RM", "CMOVGE_DM"}, + {"CMOVLE_RM", "CMOVLE_DM"}, + {"CMOVG_RM", "CMOVG_DM"}, + {"POPCNT_RM", "POPCNT_DM"}, + {"CMOVNP_DM", "CMOVPO_DM"}, + {"CMOVNP_RM", "CMOVPO_DM"}, + {"CMOVP_DM", "CMOVPE_DM"}, + {"CMOVP_RM", "CMOVPE_DM"}, + {"CMOVC_DM", "CMOVB_DM"}, + {"CMOVC_RM", "CMOVB_DM"}, + {"CMOVNGE_DM", "CMOVL_DM"}, + {"CMOVNGE_RM", "CMOVL_DM"}, + {"CMOVNLE_DM", "CMOVG_DM"}, + {"CMOVNLE_RM", "CMOVG_DM"}, + {"CMOVNA_DM", "CMOVBE_DM"}, + {"CMOVNA_RM", "CMOVBE_DM"}, + {"CMOVNL_DM", "CMOVGE_DM"}, + {"CMOVNL_RM", "CMOVGE_DM"}, + {"CMOVNBE_DM", "CMOVA_DM"}, + {"CMOVNBE_RM", "CMOVA_DM"}, + {"CMOVNG_DM", "CMOVLE_DM"}, + {"CMOVNG_RM", "CMOVLE_DM"}, + {"CMOVZ_DM", "CMOVE_DM"}, + {"CMOVZ_RM", "CMOVE_DM"}, + {"CMOVNZ_DM", "CMOVNE_DM"}, + {"CMOVNZ_RM", "CMOVNE_DM"}, + {"CMOVNAE_DM", "CMOVB_DM"}, + {"CMOVNAE_RM", "CMOVB_DM"}, + {"CMOVNB_DM", "CMOVAE_DM"}, + {"CMOVNB_RM", "CMOVAE_DM"}, + {"CMOVNC_DM", "CMOVAE_DM"}, + {"CMOVNC_RM", "CMOVAE_DM"}, + {"IJMP_M", "IJMP_M64_x64"}, + {"ICALL_M", "ICALL_M64_x64"}, + {"PUSH_M", "PUSH_M64_x64"}, + {"POP_M", "POP_M64_x64"}, + {"CRC32_WM", "CRC32_WM64"}, + {"ANDN_RRM", "ANDN_DDM"}, + {"BEXTR_RMR", "BEXTR_DMD"}, + {"BLSI_RM", "BLSI_DM"}, + {"BLSMSK_RM", "BLSMSK_DM"}, + {"BLSR_RM", "BLSR_DM"}, + {"BZHI_RMR", "BZHI_DMD"}, + {"LZCNT_RM", "LZCNT_DM"}, + {"MULX_RRM", "MULX_DDM"}, + {"PDEP_RRM", "PDEP_DDM"}, + {"PEXT_RRM", "PEXT_DDM"}, + {"RORX_RMI", "RORX_DMI"}, + {"SARX_RMR", "SARX_DMD"}, + {"SHLX_RMR", "SHLX_DMD"}, + {"SHRX_RMR", "SHRX_DMD"}, + {"TZCNT_RM", "TZCNT_DM"}, +}} diff --git a/src/data/x86_insalias.ltxt b/src/data/x86_insalias.ltxt new file mode 100644 index 0000000..be2df8b --- /dev/null +++ b/src/data/x86_insalias.ltxt @@ -0,0 +1,112 @@ +#/bin/emblua LUAPREFIX=| +|--VARDELIM=% +|--CMTDELIM=// +| ------------------------------------ +| ccs = {"O", "NO", "B", "AE", "E", "NE", "BE", "A", "S", "NS", "PE", "PO", "L", "GE", "LE", "G"} +| ccalias={C = "B", NAE = "B", NB = "AE", NC = "AE", Z = "E", NZ = "NE", NA = "BE", NBE = "A", +| P = "PE", NP = "PO", NGE = "L", NL = "GE", NG = "LE", NLE = "G"} +MOV_M$R +| ------------------------------------ +LEA_$RM +LEA_$R$R$RII +| ------------------------------------ +| for l,w in ipairs{"ADD","OR","AND","SUB","XOR","ADC","SBB","CMP","TEST"} do +%(w)_M$R +| end +| ------------------------------------ +INC_$R -> INC_W_x32, INC_D +DEC_$R -> DEC_W_x32, DEC_D +INC_$M +DEC_$M +BSWAP_$R +SIGNRAX -> CDQ, CQO + +| for l,w in pairs(ccalias) do +SET%(l)_B -> SET%(w)_B, SET%(w)_B +SET%(l)_M8 -> SET%(w)_M8, SET%(w)_M8 +J%(l)_BB_FT -> J%(w)_BB_FT, J%(w)_BB_FT +| end + +| for k,v in ipairs{{"B",8},{"H",16}} do +MOVZX_$R%(v[1]) +MOVZX_$RM%(v[2]) +MOVSX_$R%(v[1]) +MOVSX_$RM%(v[2]) +| end +MOVSX_RW -> MOV_WW, MOVSX_DW +MOVSX_RM32 -> MOV_WM, MOVSX_DM32 +MOVZX_RW -> MOV_WW, MOV_WW +MOVZX_RM32 -> MOV_WM, MOV_WM + +MOVZX_DW -> INVALID, MOV_WW +MOVZX_DM32 -> INVALID, MOV_WM + +| ------------------------------------ +| for rm_,rm in ipairs{"rr","rm"} do +| local RM = rm=="rr" and "R" or "M" +| local Rm = rm=="rr" and "R" or "m" +| local WM = rm=="rr" and "W" or "M" +| local WM32 = rm=="rr" and "W" or "M32" +| local DM = rm=="rr" and "D" or "M" +| local DM64 = rm=="rr" and "D" or "M64" +MOV_$%(RM)I +MOV_$R$%(Rm) +| ------------------------------------ +| for l,w in ipairs{"ADD","OR","AND","SUB","XOR","ADC","SBB","CMP","TEST"} do +%(w)_$%(RM)I +%(w)_$R$%(Rm) +| end +| for l,w in ipairs{"NOT","NEG","DIV","IDIV","MUL","IMUL"} do +%(w)_$%(RM) +| end +| for l,w in ipairs{"ROL","ROR","SHL","SHR","SAR","RCL","RCR"} do +%(w)_$%(RM)I +%(w)_$%(RM)_CL +| end +| for l,w in ipairs{"SHLD","SHRD"} do +%(w)_$%(Rm)$RI +%(w)_$%(Rm)$R_CL +| end +IMUL_$R$%(Rm) +IMUL_$R$%(Rm)I +BSF_$R$%(Rm) +BSR_$R$%(Rm) +BT_$%(Rm)$R +BT_$%(RM)I +BTC_$%(Rm)$R +BTC_$%(RM)I +BTR_$%(Rm)$R +BTR_$%(RM)I +BTS_$%(Rm)$R +BTS_$%(RM)I +| for l,w in ipairs(ccs) do +CMOV%(w)_$R$%(Rm) +| end +POPCNT_$R$%(Rm) +| for l,w in pairs(ccalias) do +CMOV%(l)_W%(WM) -> CMOV%(w)_W%(WM), CMOV%(w)_W%(WM) +CMOV%(l)_D%(DM) -> INVALID, CMOV%(w)_D%(DM) +CMOV%(l)_R%(RM) -> CMOV%(w)_W%(WM), CMOV%(w)_D%(DM) +| end +// ---------------------------------- +IJMP_%(RM) -> IJMP_%(WM32)_x32, IJMP_%(DM64)_x64 +ICALL_%(RM) -> ICALL_%(WM32)_x32, ICALL_%(DM64)_x64 +PUSH_%(RM) -> PUSH_%(WM32)_x32, PUSH_%(DM64)_x64 +POP_%(RM) -> POP_%(WM32)_x32, POP_%(DM64)_x64 +CRC32_W$%(RM) +ANDN_$R$R$%(Rm) +BEXTR_$R$%(Rm)$R +BLSI_$R$%(Rm) +BLSMSK_$R$%(Rm) +BLSR_$R$%(Rm) +BZHI_$R$%(Rm)$R +LZCNT_$R$%(Rm) +MULX_$R$R$%(Rm) +PDEP_$R$R$%(Rm) +PEXT_$R$R$%(Rm) +RORX_$R$%(Rm)I +SARX_$R$%(Rm)$R +SHLX_$R$%(Rm)$R +SHRX_$R$%(Rm)$R +TZCNT_$R$%(Rm) +| end diff --git a/src/data/x86_inslist.dat b/src/data/x86_inslist.dat new file mode 100644 index 0000000..4b6d9c8 --- /dev/null +++ b/src/data/x86_inslist.dat @@ -0,0 +1,42227 @@ +local l = {}; for i = 1, 5302 do l[i] = {} end +do local k = l[1] +k.ops = l[2] +k.opclasses = l[5302] +end +do local k = l[2] +k[1] = l[3] +k[2] = l[20] +k[3] = l[34] +k[4] = l[35] +k[5] = l[36] +k[6] = l[37] +k[7] = l[38] +k[8] = l[39] +k[9] = l[40] +k[10] = l[51] +k[11] = l[61] +k[12] = l[74] +k[13] = l[86] +k[14] = l[97] +k[15] = l[107] +k[16] = l[108] +k[17] = l[109] +k[18] = l[110] +k[19] = l[111] +k[20] = l[112] +k[21] = l[113] +k[22] = l[115] +k[23] = l[117] +k[24] = l[120] +k[25] = l[123] +k[26] = l[139] +k[27] = l[153] +k[28] = l[161] +k[29] = l[168] +k[30] = l[172] +k[31] = l[173] +k[32] = l[185] +k[33] = l[196] +k[34] = l[213] +k[35] = l[222] +k[36] = l[224] +k[37] = l[228] +k[38] = l[229] +k[39] = l[230] +k[40] = l[231] +k[41] = l[232] +k[42] = l[240] +k[43] = l[249] +k[44] = l[252] +k[45] = l[256] +k[46] = l[264] +k[47] = l[273] +k[48] = l[282] +k[49] = l[295] +k[50] = l[302] +k[51] = l[309] +k[52] = l[316] +k[53] = l[318] +k[54] = l[323] +k[55] = l[325] +k[56] = l[330] +k[57] = l[332] +k[58] = l[336] +k[59] = l[338] +k[60] = l[342] +k[61] = l[343] +k[62] = l[347] +k[63] = l[348] +k[64] = l[352] +k[65] = l[353] +k[66] = l[357] +k[67] = l[358] +k[68] = l[360] +k[69] = l[362] +k[70] = l[370] +k[71] = l[378] +k[72] = l[384] +k[73] = l[391] +k[74] = l[392] +k[75] = l[393] +k[76] = l[394] +k[77] = l[395] +k[78] = l[396] +k[79] = l[402] +k[80] = l[403] +k[81] = l[409] +k[82] = l[410] +k[83] = l[411] +k[84] = l[421] +k[85] = l[427] +k[86] = l[429] +k[87] = l[431] +k[88] = l[433] +k[89] = l[435] +k[90] = l[437] +k[91] = l[439] +k[92] = l[441] +k[93] = l[443] +k[94] = l[445] +k[95] = l[447] +k[96] = l[449] +k[97] = l[452] +k[98] = l[454] +k[99] = l[457] +k[100] = l[458] +k[101] = l[459] +k[102] = l[460] +k[103] = l[461] +k[104] = l[462] +k[105] = l[463] +k[106] = l[464] +k[107] = l[465] +k[108] = l[466] +k[109] = l[467] +k[110] = l[468] +k[111] = l[469] +k[112] = l[470] +k[113] = l[471] +k[114] = l[472] +k[115] = l[473] +k[116] = l[477] +k[117] = l[480] +k[118] = l[483] +k[119] = l[486] +k[120] = l[489] +k[121] = l[492] +k[122] = l[495] +k[123] = l[498] +k[124] = l[500] +k[125] = l[502] +k[126] = l[504] +k[127] = l[506] +k[128] = l[508] +k[129] = l[510] +k[130] = l[512] +k[131] = l[514] +k[132] = l[515] +k[133] = l[516] +k[134] = l[517] +k[135] = l[518] +k[136] = l[519] +k[137] = l[520] +k[138] = l[521] +k[139] = l[522] +k[140] = l[523] +k[141] = l[524] +k[142] = l[525] +k[143] = l[526] +k[144] = l[527] +k[145] = l[528] +k[146] = l[529] +k[147] = l[530] +k[148] = l[532] +k[149] = l[534] +k[150] = l[536] +k[151] = l[538] +k[152] = l[541] +k[153] = l[544] +k[154] = l[547] +k[155] = l[550] +k[156] = l[553] +k[157] = l[556] +k[158] = l[558] +k[159] = l[560] +k[160] = l[561] +k[161] = l[562] +k[162] = l[563] +k[163] = l[564] +k[164] = l[566] +k[165] = l[567] +k[166] = l[569] +k[167] = l[570] +k[168] = l[573] +k[169] = l[576] +k[170] = l[578] +k[171] = l[580] +k[172] = l[582] +k[173] = l[584] +k[174] = l[586] +k[175] = l[588] +k[176] = l[595] +k[177] = l[598] +k[178] = l[605] +k[179] = l[608] +k[180] = l[609] +k[181] = l[610] +k[182] = l[611] +k[183] = l[612] +k[184] = l[613] +k[185] = l[614] +k[186] = l[615] +k[187] = l[616] +k[188] = l[617] +k[189] = l[618] +k[190] = l[619] +k[191] = l[620] +k[192] = l[621] +k[193] = l[622] +k[194] = l[623] +k[195] = l[624] +k[196] = l[625] +k[197] = l[626] +k[198] = l[627] +k[199] = l[628] +k[200] = l[629] +k[201] = l[630] +k[202] = l[631] +k[203] = l[632] +k[204] = l[633] +k[205] = l[634] +k[206] = l[635] +k[207] = l[636] +k[208] = l[637] +k[209] = l[638] +k[210] = l[639] +k[211] = l[640] +k[212] = l[641] +k[213] = l[642] +k[214] = l[643] +k[215] = l[644] +k[216] = l[645] +k[217] = l[646] +k[218] = l[647] +k[219] = l[648] +k[220] = l[649] +k[221] = l[650] +k[222] = l[651] +k[223] = l[652] +k[224] = l[653] +k[225] = l[654] +k[226] = l[655] +k[227] = l[656] +k[228] = l[657] +k[229] = l[658] +k[230] = l[659] +k[231] = l[660] +k[232] = l[661] +k[233] = l[662] +k[234] = l[663] +k[235] = l[664] +k[236] = l[665] +k[237] = l[666] +k[238] = l[667] +k[239] = l[668] +k[240] = l[669] +k[241] = l[670] +k[242] = l[671] +k[243] = l[672] +k[244] = l[673] +k[245] = l[674] +k[246] = l[675] +k[247] = l[676] +k[248] = l[677] +k[249] = l[678] +k[250] = l[679] +k[251] = l[680] +k[252] = l[681] +k[253] = l[682] +k[254] = l[683] +k[255] = l[684] +k[256] = l[685] +k[257] = l[686] +k[258] = l[687] +k[259] = l[688] +k[260] = l[689] +k[261] = l[690] +k[262] = l[691] +k[263] = l[692] +k[264] = l[704] +k[265] = l[714] +k[266] = l[720] +k[267] = l[723] +k[268] = l[726] +k[269] = l[729] +k[270] = l[732] +k[271] = l[735] +k[272] = l[737] +k[273] = l[739] +k[274] = l[745] +k[275] = l[751] +k[276] = l[754] +k[277] = l[760] +k[278] = l[763] +k[279] = l[769] +k[280] = l[771] +k[281] = l[774] +k[282] = l[776] +k[283] = l[779] +k[284] = l[780] +k[285] = l[781] +k[286] = l[782] +k[287] = l[783] +k[288] = l[784] +k[289] = l[785] +k[290] = l[786] +k[291] = l[787] +k[292] = l[794] +k[293] = l[801] +k[294] = l[806] +k[295] = l[811] +k[296] = l[813] +k[297] = l[815] +k[298] = l[822] +k[299] = l[824] +k[300] = l[827] +k[301] = l[833] +k[302] = l[836] +k[303] = l[838] +k[304] = l[841] +k[305] = l[843] +k[306] = l[845] +k[307] = l[847] +k[308] = l[853] +k[309] = l[856] +k[310] = l[861] +k[311] = l[863] +k[312] = l[865] +k[313] = l[867] +k[314] = l[869] +k[315] = l[871] +k[316] = l[873] +k[317] = l[875] +k[318] = l[877] +k[319] = l[879] +k[320] = l[880] +k[321] = l[881] +k[322] = l[882] +k[323] = l[883] +k[324] = l[884] +k[325] = l[885] +k[326] = l[886] +k[327] = l[887] +k[328] = l[888] +k[329] = l[889] +k[330] = l[890] +k[331] = l[891] +k[332] = l[892] +k[333] = l[893] +k[334] = l[894] +k[335] = l[895] +k[336] = l[897] +k[337] = l[899] +k[338] = l[901] +k[339] = l[903] +k[340] = l[905] +k[341] = l[907] +k[342] = l[909] +k[343] = l[911] +k[344] = l[913] +k[345] = l[915] +k[346] = l[922] +k[347] = l[929] +k[348] = l[931] +k[349] = l[933] +k[350] = l[935] +k[351] = l[937] +k[352] = l[939] +k[353] = l[941] +k[354] = l[943] +k[355] = l[945] +k[356] = l[946] +k[357] = l[947] +k[358] = l[948] +k[359] = l[949] +k[360] = l[950] +k[361] = l[951] +k[362] = l[952] +k[363] = l[953] +k[364] = l[954] +k[365] = l[955] +k[366] = l[962] +k[367] = l[964] +k[368] = l[965] +k[369] = l[966] +k[370] = l[976] +k[371] = l[982] +k[372] = l[983] +k[373] = l[984] +k[374] = l[985] +k[375] = l[986] +k[376] = l[987] +k[377] = l[988] +k[378] = l[989] +k[379] = l[990] +k[380] = l[991] +k[381] = l[992] +k[382] = l[993] +k[383] = l[994] +k[384] = l[995] +k[385] = l[996] +k[386] = l[997] +k[387] = l[998] +k[388] = l[1004] +k[389] = l[1009] +k[390] = l[1014] +k[391] = l[1017] +k[392] = l[1022] +k[393] = l[1027] +k[394] = l[1029] +k[395] = l[1031] +k[396] = l[1033] +k[397] = l[1035] +k[398] = l[1037] +k[399] = l[1039] +k[400] = l[1041] +k[401] = l[1043] +k[402] = l[1045] +k[403] = l[1047] +k[404] = l[1049] +k[405] = l[1051] +k[406] = l[1054] +k[407] = l[1057] +k[408] = l[1059] +k[409] = l[1061] +k[410] = l[1063] +k[411] = l[1065] +k[412] = l[1067] +k[413] = l[1069] +k[414] = l[1071] +k[415] = l[1073] +k[416] = l[1075] +k[417] = l[1080] +k[418] = l[1082] +k[419] = l[1087] +k[420] = l[1089] +k[421] = l[1091] +k[422] = l[1093] +k[423] = l[1094] +k[424] = l[1095] +k[425] = l[1096] +k[426] = l[1097] +k[427] = l[1098] +k[428] = l[1099] +k[429] = l[1103] +k[430] = l[1104] +k[431] = l[1105] +k[432] = l[1107] +k[433] = l[1109] +k[434] = l[1111] +k[435] = l[1113] +k[436] = l[1115] +k[437] = l[1117] +k[438] = l[1119] +k[439] = l[1121] +k[440] = l[1123] +k[441] = l[1125] +k[442] = l[1127] +k[443] = l[1129] +k[444] = l[1130] +k[445] = l[1132] +k[446] = l[1134] +k[447] = l[1136] +k[448] = l[1138] +k[449] = l[1140] +k[450] = l[1141] +k[451] = l[1142] +k[452] = l[1143] +k[453] = l[1144] +k[454] = l[1149] +k[455] = l[1150] +k[456] = l[1152] +k[457] = l[1154] +k[458] = l[1156] +k[459] = l[1158] +k[460] = l[1160] +k[461] = l[1162] +k[462] = l[1164] +k[463] = l[1166] +k[464] = l[1168] +k[465] = l[1170] +k[466] = l[1172] +k[467] = l[1174] +k[468] = l[1176] +k[469] = l[1177] +k[470] = l[1178] +k[471] = l[1179] +k[472] = l[1180] +k[473] = l[1181] +k[474] = l[1182] +k[475] = l[1183] +k[476] = l[1184] +k[477] = l[1185] +k[478] = l[1186] +k[479] = l[1187] +k[480] = l[1188] +k[481] = l[1189] +k[482] = l[1190] +k[483] = l[1191] +k[484] = l[1192] +k[485] = l[1193] +k[486] = l[1194] +k[487] = l[1195] +k[488] = l[1196] +k[489] = l[1198] +k[490] = l[1200] +k[491] = l[1202] +k[492] = l[1204] +k[493] = l[1205] +k[494] = l[1206] +k[495] = l[1207] +k[496] = l[1208] +k[497] = l[1209] +k[498] = l[1210] +k[499] = l[1211] +k[500] = l[1212] +k[501] = l[1213] +k[502] = l[1214] +k[503] = l[1215] +k[504] = l[1216] +k[505] = l[1217] +k[506] = l[1218] +k[507] = l[1219] +k[508] = l[1220] +k[509] = l[1222] +k[510] = l[1224] +k[511] = l[1226] +k[512] = l[1228] +k[513] = l[1229] +k[514] = l[1230] +k[515] = l[1231] +k[516] = l[1232] +k[517] = l[1234] +k[518] = l[1236] +k[519] = l[1238] +k[520] = l[1240] +k[521] = l[1241] +k[522] = l[1242] +k[523] = l[1243] +k[524] = l[1244] +k[525] = l[1245] +k[526] = l[1246] +k[527] = l[1247] +k[528] = l[1248] +k[529] = l[1249] +k[530] = l[1250] +k[531] = l[1251] +k[532] = l[1252] +k[533] = l[1253] +k[534] = l[1254] +k[535] = l[1255] +k[536] = l[1256] +k[537] = l[1257] +k[538] = l[1258] +k[539] = l[1259] +k[540] = l[1260] +k[541] = l[1261] +k[542] = l[1262] +k[543] = l[1263] +k[544] = l[1264] +k[545] = l[1265] +k[546] = l[1266] +k[547] = l[1267] +k[548] = l[1268] +k[549] = l[1271] +k[550] = l[1274] +k[551] = l[1276] +k[552] = l[1278] +k[553] = l[1279] +k[554] = l[1280] +k[555] = l[1281] +k[556] = l[1282] +k[557] = l[1283] +k[558] = l[1284] +k[559] = l[1285] +k[560] = l[1286] +k[561] = l[1287] +k[562] = l[1288] +k[563] = l[1289] +k[564] = l[1290] +k[565] = l[1291] +k[566] = l[1292] +k[567] = l[1293] +k[568] = l[1294] +k[569] = l[1295] +k[570] = l[1296] +k[571] = l[1297] +k[572] = l[1298] +k[573] = l[1299] +k[574] = l[1300] +k[575] = l[1301] +k[576] = l[1302] +k[577] = l[1303] +k[578] = l[1304] +k[579] = l[1305] +k[580] = l[1306] +k[581] = l[1307] +k[582] = l[1308] +k[583] = l[1309] +k[584] = l[1310] +k[585] = l[1311] +k[586] = l[1312] +k[587] = l[1313] +k[588] = l[1314] +k[589] = l[1329] +k[590] = l[1342] +k[591] = l[1356] +k[592] = l[1365] +k[593] = l[1366] +k[594] = l[1367] +k[595] = l[1368] +k[596] = l[1369] +k[597] = l[1370] +k[598] = l[1371] +k[599] = l[1372] +k[600] = l[1373] +k[601] = l[1374] +k[602] = l[1375] +k[603] = l[1376] +k[604] = l[1377] +k[605] = l[1378] +k[606] = l[1379] +k[607] = l[1380] +k[608] = l[1381] +k[609] = l[1392] +k[610] = l[1399] +k[611] = l[1409] +k[612] = l[1416] +k[613] = l[1417] +k[614] = l[1418] +k[615] = l[1420] +k[616] = l[1422] +k[617] = l[1423] +k[618] = l[1424] +k[619] = l[1426] +k[620] = l[1428] +k[621] = l[1429] +k[622] = l[1430] +k[623] = l[1431] +k[624] = l[1432] +k[625] = l[1433] +k[626] = l[1434] +k[627] = l[1435] +k[628] = l[1436] +k[629] = l[1437] +k[630] = l[1438] +k[631] = l[1443] +k[632] = l[1448] +k[633] = l[1449] +k[634] = l[1450] +k[635] = l[1455] +k[636] = l[1456] +k[637] = l[1463] +k[638] = l[1464] +k[639] = l[1465] +k[640] = l[1466] +k[641] = l[1467] +k[642] = l[1468] +k[643] = l[1469] +k[644] = l[1470] +k[645] = l[1471] +k[646] = l[1472] +k[647] = l[1473] +k[648] = l[1474] +k[649] = l[1475] +k[650] = l[1477] +k[651] = l[1479] +k[652] = l[1481] +k[653] = l[1483] +k[654] = l[1484] +k[655] = l[1485] +k[656] = l[1486] +k[657] = l[1487] +k[658] = l[1488] +k[659] = l[1489] +k[660] = l[1490] +k[661] = l[1491] +k[662] = l[1492] +k[663] = l[1493] +k[664] = l[1494] +k[665] = l[1495] +k[666] = l[1501] +k[667] = l[1507] +k[668] = l[1508] +k[669] = l[1509] +k[670] = l[1516] +k[671] = l[1518] +k[672] = l[1519] +k[673] = l[1520] +k[674] = l[1521] +k[675] = l[1522] +k[676] = l[1523] +k[677] = l[1524] +k[678] = l[1525] +k[679] = l[1526] +k[680] = l[1527] +k[681] = l[1528] +k[682] = l[1529] +k[683] = l[1530] +k[684] = l[1531] +k[685] = l[1532] +k[686] = l[1533] +k[687] = l[1534] +k[688] = l[1535] +k[689] = l[1536] +k[690] = l[1537] +k[691] = l[1538] +k[692] = l[1539] +k[693] = l[1540] +k[694] = l[1541] +k[695] = l[1542] +k[696] = l[1543] +k[697] = l[1544] +k[698] = l[1545] +k[699] = l[1546] +k[700] = l[1547] +k[701] = l[1548] +k[702] = l[1549] +k[703] = l[1550] +k[704] = l[1551] +k[705] = l[1552] +k[706] = l[1553] +k[707] = l[1554] +k[708] = l[1555] +k[709] = l[1556] +k[710] = l[1557] +k[711] = l[1558] +k[712] = l[1559] +k[713] = l[1560] +k[714] = l[1561] +k[715] = l[1562] +k[716] = l[1563] +k[717] = l[1564] +k[718] = l[1565] +k[719] = l[1566] +k[720] = l[1567] +k[721] = l[1568] +k[722] = l[1569] +k[723] = l[1570] +k[724] = l[1571] +k[725] = l[1572] +k[726] = l[1573] +k[727] = l[1574] +k[728] = l[1576] +k[729] = l[1578] +k[730] = l[1579] +k[731] = l[1581] +k[732] = l[1582] +k[733] = l[1584] +k[734] = l[1585] +k[735] = l[1586] +k[736] = l[1587] +k[737] = l[1588] +k[738] = l[1589] +k[739] = l[1590] +k[740] = l[1591] +k[741] = l[1592] +k[742] = l[1593] +k[743] = l[1594] +k[744] = l[1595] +k[745] = l[1596] +k[746] = l[1597] +k[747] = l[1598] +k[748] = l[1599] +k[749] = l[1600] +k[750] = l[1601] +k[751] = l[1602] +k[752] = l[1603] +k[753] = l[1604] +k[754] = l[1605] +k[755] = l[1606] +k[756] = l[1607] +k[757] = l[1608] +k[758] = l[1609] +k[759] = l[1610] +k[760] = l[1611] +k[761] = l[1612] +k[762] = l[1613] +k[763] = l[1614] +k[764] = l[1615] +k[765] = l[1616] +k[766] = l[1617] +k[767] = l[1618] +k[768] = l[1619] +k[769] = l[1620] +k[770] = l[1621] +k[771] = l[1622] +k[772] = l[1623] +k[773] = l[1624] +k[774] = l[1625] +k[775] = l[1626] +k[776] = l[1627] +k[777] = l[1628] +k[778] = l[1629] +k[779] = l[1630] +k[780] = l[1631] +k[781] = l[1632] +k[782] = l[1633] +k[783] = l[1634] +k[784] = l[1635] +k[785] = l[1636] +k[786] = l[1637] +k[787] = l[1638] +k[788] = l[1639] +k[789] = l[1640] +k[790] = l[1641] +k[791] = l[1642] +k[792] = l[1643] +k[793] = l[1644] +k[794] = l[1645] +k[795] = l[1646] +k[796] = l[1647] +k[797] = l[1648] +k[798] = l[1649] +k[799] = l[1650] +k[800] = l[1651] +k[801] = l[1652] +k[802] = l[1653] +k[803] = l[1654] +k[804] = l[1655] +k[805] = l[1656] +k[806] = l[1657] +k[807] = l[1658] +k[808] = l[1659] +k[809] = l[1660] +k[810] = l[1661] +k[811] = l[1662] +k[812] = l[1663] +k[813] = l[1664] +k[814] = l[1665] +k[815] = l[1666] +k[816] = l[1667] +k[817] = l[1668] +k[818] = l[1670] +k[819] = l[1672] +k[820] = l[1674] +k[821] = l[1676] +k[822] = l[1678] +k[823] = l[1680] +k[824] = l[1682] +k[825] = l[1684] +k[826] = l[1686] +k[827] = l[1688] +k[828] = l[1690] +k[829] = l[1692] +k[830] = l[1693] +k[831] = l[1694] +k[832] = l[1695] +k[833] = l[1696] +k[834] = l[1697] +k[835] = l[1698] +k[836] = l[1699] +k[837] = l[1700] +k[838] = l[1701] +k[839] = l[1702] +k[840] = l[1703] +k[841] = l[1704] +k[842] = l[1710] +k[843] = l[1718] +k[844] = l[1720] +k[845] = l[1721] +k[846] = l[1722] +k[847] = l[1724] +k[848] = l[1725] +k[849] = l[1726] +k[850] = l[1727] +k[851] = l[1728] +k[852] = l[1729] +k[853] = l[1730] +k[854] = l[1731] +k[855] = l[1732] +k[856] = l[1734] +k[857] = l[1735] +k[858] = l[1736] +k[859] = l[1738] +k[860] = l[1739] +k[861] = l[1740] +k[862] = l[1741] +k[863] = l[1742] +k[864] = l[1743] +k[865] = l[1744] +k[866] = l[1745] +k[867] = l[1746] +k[868] = l[1747] +k[869] = l[1748] +k[870] = l[1749] +k[871] = l[1750] +k[872] = l[1751] +k[873] = l[1752] +k[874] = l[1753] +k[875] = l[1754] +k[876] = l[1755] +k[877] = l[1756] +k[878] = l[1757] +k[879] = l[1758] +k[880] = l[1759] +k[881] = l[1760] +k[882] = l[1761] +k[883] = l[1762] +k[884] = l[1763] +k[885] = l[1764] +k[886] = l[1765] +k[887] = l[1766] +k[888] = l[1767] +k[889] = l[1768] +k[890] = l[1769] +k[891] = l[1770] +k[892] = l[1771] +k[893] = l[1772] +k[894] = l[1773] +k[895] = l[1774] +k[896] = l[1775] +k[897] = l[1776] +k[898] = l[1777] +k[899] = l[1778] +k[900] = l[1779] +k[901] = l[1780] +k[902] = l[1781] +k[903] = l[1782] +k[904] = l[1783] +k[905] = l[1784] +k[906] = l[1785] +k[907] = l[1786] +k[908] = l[1787] +k[909] = l[1788] +k[910] = l[1789] +k[911] = l[1790] +k[912] = l[1791] +k[913] = l[1792] +k[914] = l[1793] +k[915] = l[1794] +k[916] = l[1795] +k[917] = l[1796] +k[918] = l[1797] +k[919] = l[1798] +k[920] = l[1799] +k[921] = l[1800] +k[922] = l[1801] +k[923] = l[1802] +k[924] = l[1803] +k[925] = l[1804] +k[926] = l[1806] +k[927] = l[1808] +k[928] = l[1810] +k[929] = l[1812] +k[930] = l[1813] +k[931] = l[1814] +k[932] = l[1815] +k[933] = l[1816] +k[934] = l[1817] +k[935] = l[1818] +k[936] = l[1819] +k[937] = l[1820] +k[938] = l[1821] +k[939] = l[1822] +k[940] = l[1823] +k[941] = l[1824] +k[942] = l[1825] +k[943] = l[1826] +k[944] = l[1827] +k[945] = l[1828] +k[946] = l[1829] +k[947] = l[1830] +k[948] = l[1831] +k[949] = l[1832] +k[950] = l[1833] +k[951] = l[1834] +k[952] = l[1835] +k[953] = l[1836] +k[954] = l[1837] +k[955] = l[1838] +k[956] = l[1839] +k[957] = l[1840] +k[958] = l[1841] +k[959] = l[1842] +k[960] = l[1843] +k[961] = l[1844] +k[962] = l[1845] +k[963] = l[1846] +k[964] = l[1847] +k[965] = l[1848] +k[966] = l[1849] +k[967] = l[1850] +k[968] = l[1851] +k[969] = l[1852] +k[970] = l[1853] +k[971] = l[1854] +k[972] = l[1856] +k[973] = l[1858] +k[974] = l[1860] +k[975] = l[1862] +k[976] = l[1863] +k[977] = l[1864] +k[978] = l[1865] +k[979] = l[1866] +k[980] = l[1872] +k[981] = l[1873] +k[982] = l[1874] +k[983] = l[1875] +k[984] = l[1876] +k[985] = l[1877] +k[986] = l[1878] +k[987] = l[1879] +k[988] = l[1880] +k[989] = l[1881] +k[990] = l[1884] +k[991] = l[1887] +k[992] = l[1889] +k[993] = l[1891] +k[994] = l[1893] +k[995] = l[1895] +k[996] = l[1897] +k[997] = l[1899] +k[998] = l[1900] +k[999] = l[1901] +k[1000] = l[1902] +k[1001] = l[1903] +k[1002] = l[1904] +k[1003] = l[1905] +k[1004] = l[1906] +k[1005] = l[1907] +k[1006] = l[1908] +k[1007] = l[1909] +k[1008] = l[1910] +k[1009] = l[1911] +k[1010] = l[1912] +k[1011] = l[1913] +k[1012] = l[1914] +k[1013] = l[1915] +k[1014] = l[1916] +k[1015] = l[1917] +k[1016] = l[1918] +k[1017] = l[1919] +k[1018] = l[1920] +k[1019] = l[1921] +k[1020] = l[1922] +k[1021] = l[1923] +k[1022] = l[1924] +k[1023] = l[1925] +k[1024] = l[1926] +k[1025] = l[1927] +k[1026] = l[1928] +k[1027] = l[1930] +k[1028] = l[1932] +k[1029] = l[1934] +k[1030] = l[1935] +k[1031] = l[1937] +k[1032] = l[1939] +k[1033] = l[1941] +k[1034] = l[1942] +k[1035] = l[1943] +k[1036] = l[1944] +k[1037] = l[1945] +k[1038] = l[1946] +k[1039] = l[1947] +k[1040] = l[1948] +k[1041] = l[1949] +k[1042] = l[1950] +k[1043] = l[1951] +k[1044] = l[1952] +k[1045] = l[1953] +k[1046] = l[1954] +k[1047] = l[1955] +k[1048] = l[1956] +k[1049] = l[1957] +k[1050] = l[1965] +k[1051] = l[1969] +k[1052] = l[1983] +k[1053] = l[1991] +k[1054] = l[1998] +k[1055] = l[2004] +k[1056] = l[2009] +k[1057] = l[2014] +k[1058] = l[2021] +k[1059] = l[2022] +k[1060] = l[2023] +k[1061] = l[2024] +k[1062] = l[2025] +k[1063] = l[2028] +k[1064] = l[2031] +k[1065] = l[2034] +k[1066] = l[2036] +k[1067] = l[2051] +k[1068] = l[2063] +k[1069] = l[2065] +k[1070] = l[2067] +k[1071] = l[2070] +k[1072] = l[2073] +k[1073] = l[2080] +k[1074] = l[2087] +k[1075] = l[2088] +k[1076] = l[2089] +k[1077] = l[2091] +k[1078] = l[2093] +k[1079] = l[2094] +k[1080] = l[2095] +k[1081] = l[2106] +k[1082] = l[2117] +k[1083] = l[2127] +k[1084] = l[2137] +k[1085] = l[2144] +k[1086] = l[2149] +k[1087] = l[2154] +k[1088] = l[2155] +k[1089] = l[2156] +k[1090] = l[2157] +k[1091] = l[2158] +k[1092] = l[2159] +k[1093] = l[2160] +k[1094] = l[2161] +k[1095] = l[2162] +k[1096] = l[2163] +k[1097] = l[2164] +k[1098] = l[2165] +k[1099] = l[2166] +k[1100] = l[2167] +k[1101] = l[2168] +k[1102] = l[2169] +k[1103] = l[2170] +k[1104] = l[2171] +k[1105] = l[2172] +k[1106] = l[2173] +k[1107] = l[2174] +k[1108] = l[2175] +k[1109] = l[2176] +k[1110] = l[2177] +k[1111] = l[2178] +k[1112] = l[2179] +k[1113] = l[2180] +k[1114] = l[2181] +k[1115] = l[2182] +k[1116] = l[2183] +k[1117] = l[2184] +k[1118] = l[2185] +k[1119] = l[2186] +k[1120] = l[2187] +k[1121] = l[2188] +k[1122] = l[2189] +k[1123] = l[2190] +k[1124] = l[2191] +k[1125] = l[2192] +k[1126] = l[2193] +k[1127] = l[2194] +k[1128] = l[2195] +k[1129] = l[2196] +k[1130] = l[2197] +k[1131] = l[2198] +k[1132] = l[2199] +k[1133] = l[2200] +k[1134] = l[2201] +k[1135] = l[2202] +k[1136] = l[2203] +k[1137] = l[2204] +k[1138] = l[2205] +k[1139] = l[2206] +k[1140] = l[2207] +k[1141] = l[2208] +k[1142] = l[2209] +k[1143] = l[2210] +k[1144] = l[2211] +k[1145] = l[2212] +k[1146] = l[2213] +k[1147] = l[2214] +k[1148] = l[2217] +k[1149] = l[2219] +k[1150] = l[2221] +k[1151] = l[2223] +k[1152] = l[2225] +k[1153] = l[2231] +k[1154] = l[2233] +k[1155] = l[2235] +k[1156] = l[2246] +k[1157] = l[2256] +k[1158] = l[2262] +k[1159] = l[2268] +k[1160] = l[2270] +k[1161] = l[2272] +k[1162] = l[2274] +k[1163] = l[2276] +k[1164] = l[2281] +k[1165] = l[2282] +k[1166] = l[2287] +k[1167] = l[2288] +k[1168] = l[2293] +k[1169] = l[2294] +k[1170] = l[2299] +k[1171] = l[2300] +k[1172] = l[2302] +k[1173] = l[2304] +k[1174] = l[2306] +k[1175] = l[2308] +k[1176] = l[2310] +k[1177] = l[2312] +k[1178] = l[2314] +k[1179] = l[2316] +k[1180] = l[2317] +k[1181] = l[2318] +k[1182] = l[2319] +k[1183] = l[2320] +k[1184] = l[2321] +k[1185] = l[2322] +k[1186] = l[2323] +k[1187] = l[2324] +k[1188] = l[2325] +k[1189] = l[2326] +k[1190] = l[2327] +k[1191] = l[2328] +k[1192] = l[2329] +k[1193] = l[2330] +k[1194] = l[2331] +k[1195] = l[2332] +k[1196] = l[2333] +k[1197] = l[2334] +k[1198] = l[2335] +k[1199] = l[2336] +k[1200] = l[2337] +k[1201] = l[2338] +k[1202] = l[2339] +k[1203] = l[2340] +k[1204] = l[2341] +k[1205] = l[2342] +k[1206] = l[2343] +k[1207] = l[2344] +k[1208] = l[2345] +k[1209] = l[2346] +k[1210] = l[2347] +k[1211] = l[2348] +k[1212] = l[2349] +k[1213] = l[2350] +k[1214] = l[2351] +k[1215] = l[2352] +k[1216] = l[2353] +k[1217] = l[2354] +k[1218] = l[2355] +k[1219] = l[2356] +k[1220] = l[2357] +k[1221] = l[2358] +k[1222] = l[2359] +k[1223] = l[2360] +k[1224] = l[2361] +k[1225] = l[2362] +k[1226] = l[2363] +k[1227] = l[2364] +k[1228] = l[2365] +k[1229] = l[2366] +k[1230] = l[2367] +k[1231] = l[2368] +k[1232] = l[2369] +k[1233] = l[2370] +k[1234] = l[2371] +k[1235] = l[2372] +k[1236] = l[2373] +k[1237] = l[2374] +k[1238] = l[2375] +k[1239] = l[2376] +k[1240] = l[2377] +k[1241] = l[2378] +k[1242] = l[2379] +k[1243] = l[2380] +k[1244] = l[2381] +k[1245] = l[2382] +k[1246] = l[2383] +k[1247] = l[2384] +k[1248] = l[2385] +k[1249] = l[2386] +k[1250] = l[2387] +k[1251] = l[2388] +k[1252] = l[2389] +k[1253] = l[2390] +k[1254] = l[2391] +k[1255] = l[2392] +k[1256] = l[2393] +k[1257] = l[2394] +k[1258] = l[2395] +k[1259] = l[2396] +k[1260] = l[2397] +k[1261] = l[2398] +k[1262] = l[2399] +k[1263] = l[2400] +k[1264] = l[2401] +k[1265] = l[2402] +k[1266] = l[2403] +k[1267] = l[2404] +k[1268] = l[2405] +k[1269] = l[2406] +k[1270] = l[2407] +k[1271] = l[2408] +k[1272] = l[2409] +k[1273] = l[2410] +k[1274] = l[2411] +k[1275] = l[2412] +k[1276] = l[2413] +k[1277] = l[2414] +k[1278] = l[2415] +k[1279] = l[2416] +k[1280] = l[2417] +k[1281] = l[2418] +k[1282] = l[2419] +k[1283] = l[2420] +k[1284] = l[2421] +k[1285] = l[2422] +k[1286] = l[2423] +k[1287] = l[2424] +k[1288] = l[2425] +k[1289] = l[2426] +k[1290] = l[2427] +k[1291] = l[2428] +k[1292] = l[2429] +k[1293] = l[2430] +k[1294] = l[2431] +k[1295] = l[2432] +k[1296] = l[2433] +k[1297] = l[2434] +k[1298] = l[2435] +k[1299] = l[2436] +k[1300] = l[2437] +k[1301] = l[2438] +k[1302] = l[2439] +k[1303] = l[2440] +k[1304] = l[2441] +k[1305] = l[2442] +k[1306] = l[2443] +k[1307] = l[2444] +k[1308] = l[2445] +k[1309] = l[2446] +k[1310] = l[2447] +k[1311] = l[2448] +k[1312] = l[2449] +k[1313] = l[2450] +k[1314] = l[2451] +k[1315] = l[2452] +k[1316] = l[2453] +k[1317] = l[2454] +k[1318] = l[2455] +k[1319] = l[2456] +k[1320] = l[2457] +k[1321] = l[2458] +k[1322] = l[2459] +k[1323] = l[2460] +k[1324] = l[2461] +k[1325] = l[2462] +k[1326] = l[2463] +k[1327] = l[2464] +k[1328] = l[2465] +k[1329] = l[2466] +k[1330] = l[2467] +k[1331] = l[2468] +k[1332] = l[2469] +k[1333] = l[2470] +k[1334] = l[2471] +k[1335] = l[2472] +k[1336] = l[2473] +k[1337] = l[2474] +k[1338] = l[2475] +k[1339] = l[2476] +k[1340] = l[2477] +k[1341] = l[2478] +k[1342] = l[2479] +k[1343] = l[2480] +k[1344] = l[2481] +k[1345] = l[2482] +k[1346] = l[2483] +k[1347] = l[2484] +k[1348] = l[2485] +k[1349] = l[2486] +k[1350] = l[2487] +k[1351] = l[2488] +k[1352] = l[2489] +k[1353] = l[2490] +k[1354] = l[2491] +k[1355] = l[2492] +k[1356] = l[2493] +k[1357] = l[2494] +k[1358] = l[2495] +k[1359] = l[2496] +k[1360] = l[2497] +k[1361] = l[2498] +k[1362] = l[2499] +k[1363] = l[2500] +k[1364] = l[2501] +k[1365] = l[2502] +k[1366] = l[2503] +k[1367] = l[2504] +k[1368] = l[2505] +k[1369] = l[2506] +k[1370] = l[2507] +k[1371] = l[2508] +k[1372] = l[2509] +k[1373] = l[2510] +k[1374] = l[2511] +k[1375] = l[2512] +k[1376] = l[2513] +k[1377] = l[2514] +k[1378] = l[2515] +k[1379] = l[2516] +k[1380] = l[2517] +k[1381] = l[2518] +k[1382] = l[2519] +k[1383] = l[2520] +k[1384] = l[2521] +k[1385] = l[2522] +k[1386] = l[2523] +k[1387] = l[2524] +k[1388] = l[2525] +k[1389] = l[2526] +k[1390] = l[2527] +k[1391] = l[2528] +k[1392] = l[2529] +k[1393] = l[2530] +k[1394] = l[2531] +k[1395] = l[2532] +k[1396] = l[2536] +k[1397] = l[2537] +k[1398] = l[2541] +k[1399] = l[2544] +k[1400] = l[2547] +k[1401] = l[2552] +k[1402] = l[2558] +k[1403] = l[2560] +k[1404] = l[2563] +k[1405] = l[2565] +k[1406] = l[2575] +k[1407] = l[2588] +k[1408] = l[2598] +k[1409] = l[2607] +k[1410] = l[2617] +k[1411] = l[2620] +k[1412] = l[2622] +k[1413] = l[2624] +k[1414] = l[2627] +k[1415] = l[2629] +k[1416] = l[2631] +k[1417] = l[2633] +k[1418] = l[2636] +k[1419] = l[2639] +k[1420] = l[2641] +k[1421] = l[2643] +k[1422] = l[2644] +k[1423] = l[2645] +k[1424] = l[2646] +k[1425] = l[2647] +k[1426] = l[2651] +k[1427] = l[2655] +k[1428] = l[2657] +k[1429] = l[2659] +k[1430] = l[2664] +k[1431] = l[2666] +k[1432] = l[2671] +k[1433] = l[2676] +k[1434] = l[2678] +k[1435] = l[2683] +k[1436] = l[2686] +k[1437] = l[2688] +k[1438] = l[2691] +k[1439] = l[2693] +k[1440] = l[2695] +k[1441] = l[2697] +k[1442] = l[2699] +k[1443] = l[2701] +k[1444] = l[2703] +k[1445] = l[2705] +k[1446] = l[2707] +k[1447] = l[2709] +k[1448] = l[2711] +k[1449] = l[2713] +k[1450] = l[2714] +k[1451] = l[2715] +k[1452] = l[2716] +k[1453] = l[2717] +k[1454] = l[2718] +k[1455] = l[2719] +k[1456] = l[2720] +k[1457] = l[2721] +k[1458] = l[2723] +k[1459] = l[2725] +k[1460] = l[2727] +k[1461] = l[2728] +k[1462] = l[2730] +k[1463] = l[2732] +k[1464] = l[2734] +k[1465] = l[2736] +k[1466] = l[2738] +k[1467] = l[2740] +k[1468] = l[2742] +k[1469] = l[2744] +k[1470] = l[2746] +k[1471] = l[2748] +k[1472] = l[2750] +k[1473] = l[2752] +k[1474] = l[2754] +k[1475] = l[2756] +k[1476] = l[2758] +k[1477] = l[2760] +k[1478] = l[2761] +k[1479] = l[2762] +k[1480] = l[2763] +k[1481] = l[2764] +k[1482] = l[2766] +k[1483] = l[2768] +k[1484] = l[2769] +k[1485] = l[2770] +k[1486] = l[2772] +k[1487] = l[2774] +k[1488] = l[2775] +k[1489] = l[2776] +k[1490] = l[2777] +k[1491] = l[2778] +k[1492] = l[2779] +k[1493] = l[2780] +k[1494] = l[2781] +k[1495] = l[2782] +k[1496] = l[2783] +k[1497] = l[2784] +k[1498] = l[2785] +k[1499] = l[2786] +k[1500] = l[2787] +k[1501] = l[2788] +k[1502] = l[2789] +k[1503] = l[2790] +k[1504] = l[2791] +k[1505] = l[2792] +k[1506] = l[2793] +k[1507] = l[2794] +k[1508] = l[2795] +k[1509] = l[2796] +k[1510] = l[2797] +k[1511] = l[2798] +k[1512] = l[2799] +k[1513] = l[2800] +k[1514] = l[2801] +k[1515] = l[2802] +k[1516] = l[2803] +k[1517] = l[2804] +k[1518] = l[2806] +k[1519] = l[2812] +k[1520] = l[2818] +k[1521] = l[2819] +k[1522] = l[2820] +k[1523] = l[2821] +k[1524] = l[2822] +k[1525] = l[2823] +k[1526] = l[2824] +k[1527] = l[2825] +k[1528] = l[2826] +k[1529] = l[2827] +k[1530] = l[2828] +k[1531] = l[2830] +k[1532] = l[2831] +k[1533] = l[2832] +k[1534] = l[2833] +k[1535] = l[2834] +k[1536] = l[2835] +k[1537] = l[2836] +k[1538] = l[2837] +k[1539] = l[2838] +k[1540] = l[2839] +k[1541] = l[2840] +k[1542] = l[2841] +k[1543] = l[2842] +k[1544] = l[2844] +k[1545] = l[2846] +k[1546] = l[2848] +k[1547] = l[2850] +k[1548] = l[2852] +k[1549] = l[2854] +k[1550] = l[2865] +k[1551] = l[2867] +k[1552] = l[2868] +k[1553] = l[2869] +k[1554] = l[2870] +k[1555] = l[2871] +k[1556] = l[2872] +k[1557] = l[2874] +k[1558] = l[2875] +k[1559] = l[2876] +k[1560] = l[2877] +k[1561] = l[2878] +k[1562] = l[2879] +k[1563] = l[2880] +k[1564] = l[2881] +k[1565] = l[2882] +k[1566] = l[2883] +k[1567] = l[2884] +k[1568] = l[2885] +k[1569] = l[2886] +k[1570] = l[2887] +k[1571] = l[2888] +k[1572] = l[2889] +k[1573] = l[2890] +k[1574] = l[2891] +k[1575] = l[2892] +k[1576] = l[2893] +k[1577] = l[2894] +k[1578] = l[2895] +k[1579] = l[2896] +k[1580] = l[2897] +k[1581] = l[2898] +k[1582] = l[2899] +k[1583] = l[2900] +k[1584] = l[2901] +k[1585] = l[2902] +k[1586] = l[2903] +k[1587] = l[2904] +k[1588] = l[2905] +k[1589] = l[2906] +k[1590] = l[2907] +k[1591] = l[2908] +k[1592] = l[2909] +k[1593] = l[2910] +k[1594] = l[2911] +k[1595] = l[2912] +k[1596] = l[2913] +k[1597] = l[2914] +k[1598] = l[2915] +k[1599] = l[2916] +k[1600] = l[2917] +k[1601] = l[2918] +k[1602] = l[2919] +k[1603] = l[2920] +k[1604] = l[2921] +k[1605] = l[2922] +k[1606] = l[2923] +k[1607] = l[2924] +k[1608] = l[2925] +k[1609] = l[2926] +k[1610] = l[2929] +k[1611] = l[2931] +k[1612] = l[2933] +k[1613] = l[2935] +k[1614] = l[2937] +k[1615] = l[2939] +k[1616] = l[2941] +k[1617] = l[2943] +k[1618] = l[2944] +k[1619] = l[2945] +k[1620] = l[2946] +k[1621] = l[2947] +k[1622] = l[2949] +k[1623] = l[2951] +k[1624] = l[2953] +k[1625] = l[2955] +k[1626] = l[2957] +k[1627] = l[2958] +k[1628] = l[2959] +k[1629] = l[2961] +k[1630] = l[2963] +k[1631] = l[2964] +k[1632] = l[2965] +k[1633] = l[2966] +k[1634] = l[2967] +k[1635] = l[2968] +k[1636] = l[2969] +k[1637] = l[2970] +k[1638] = l[2971] +k[1639] = l[2972] +k[1640] = l[2973] +k[1641] = l[2974] +k[1642] = l[2975] +k[1643] = l[2976] +k[1644] = l[2977] +k[1645] = l[2978] +k[1646] = l[2979] +k[1647] = l[2980] +k[1648] = l[2981] +k[1649] = l[2982] +k[1650] = l[2983] +k[1651] = l[2984] +k[1652] = l[2985] +k[1653] = l[2986] +k[1654] = l[2987] +k[1655] = l[2988] +k[1656] = l[2989] +k[1657] = l[2990] +k[1658] = l[2991] +k[1659] = l[2994] +k[1660] = l[2996] +k[1661] = l[2999] +k[1662] = l[3002] +k[1663] = l[3011] +k[1664] = l[3017] +k[1665] = l[3018] +k[1666] = l[3019] +k[1667] = l[3021] +k[1668] = l[3023] +k[1669] = l[3025] +k[1670] = l[3027] +k[1671] = l[3029] +k[1672] = l[3031] +k[1673] = l[3037] +k[1674] = l[3039] +k[1675] = l[3040] +k[1676] = l[3041] +k[1677] = l[3043] +k[1678] = l[3044] +k[1679] = l[3045] +k[1680] = l[3047] +k[1681] = l[3049] +k[1682] = l[3050] +k[1683] = l[3051] +k[1684] = l[3052] +k[1685] = l[3053] +k[1686] = l[3054] +k[1687] = l[3055] +k[1688] = l[3056] +k[1689] = l[3057] +k[1690] = l[3058] +k[1691] = l[3059] +k[1692] = l[3060] +k[1693] = l[3061] +k[1694] = l[3062] +k[1695] = l[3063] +k[1696] = l[3065] +k[1697] = l[3067] +k[1698] = l[3072] +k[1699] = l[3073] +k[1700] = l[3074] +k[1701] = l[3075] +k[1702] = l[3076] +k[1703] = l[3077] +k[1704] = l[3078] +k[1705] = l[3079] +k[1706] = l[3080] +k[1707] = l[3081] +k[1708] = l[3082] +k[1709] = l[3083] +k[1710] = l[3084] +k[1711] = l[3085] +k[1712] = l[3086] +k[1713] = l[3087] +k[1714] = l[3088] +k[1715] = l[3089] +k[1716] = l[3090] +k[1717] = l[3091] +k[1718] = l[3092] +k[1719] = l[3094] +k[1720] = l[3095] +k[1721] = l[3096] +k[1722] = l[3097] +k[1723] = l[3098] +k[1724] = l[3099] +k[1725] = l[3100] +k[1726] = l[3101] +k[1727] = l[3102] +k[1728] = l[3103] +k[1729] = l[3104] +k[1730] = l[3105] +k[1731] = l[3106] +k[1732] = l[3107] +k[1733] = l[3108] +k[1734] = l[3109] +k[1735] = l[3110] +k[1736] = l[3111] +k[1737] = l[3112] +k[1738] = l[3113] +k[1739] = l[3114] +k[1740] = l[3115] +k[1741] = l[3116] +k[1742] = l[3117] +k[1743] = l[3118] +k[1744] = l[3119] +k[1745] = l[3120] +k[1746] = l[3122] +k[1747] = l[3124] +k[1748] = l[3126] +k[1749] = l[3128] +k[1750] = l[3129] +k[1751] = l[3130] +k[1752] = l[3135] +k[1753] = l[3136] +k[1754] = l[3137] +k[1755] = l[3138] +k[1756] = l[3145] +k[1757] = l[3149] +k[1758] = l[3155] +k[1759] = l[3156] +k[1760] = l[3160] +k[1761] = l[3161] +k[1762] = l[3163] +k[1763] = l[3165] +k[1764] = l[3167] +k[1765] = l[3169] +k[1766] = l[3171] +k[1767] = l[3173] +k[1768] = l[3175] +k[1769] = l[3177] +k[1770] = l[3180] +k[1771] = l[3182] +k[1772] = l[3184] +k[1773] = l[3186] +k[1774] = l[3187] +k[1775] = l[3188] +k[1776] = l[3189] +k[1777] = l[3190] +k[1778] = l[3191] +k[1779] = l[3192] +k[1780] = l[3193] +k[1781] = l[3194] +k[1782] = l[3196] +k[1783] = l[3198] +k[1784] = l[3200] +k[1785] = l[3202] +k[1786] = l[3204] +k[1787] = l[3206] +k[1788] = l[3208] +k[1789] = l[3210] +k[1790] = l[3211] +k[1791] = l[3212] +k[1792] = l[3213] +k[1793] = l[3214] +k[1794] = l[3215] +k[1795] = l[3216] +k[1796] = l[3217] +k[1797] = l[3218] +k[1798] = l[3219] +k[1799] = l[3220] +k[1800] = l[3221] +k[1801] = l[3222] +k[1802] = l[3223] +k[1803] = l[3224] +k[1804] = l[3225] +k[1805] = l[3226] +k[1806] = l[3227] +k[1807] = l[3228] +k[1808] = l[3229] +k[1809] = l[3230] +k[1810] = l[3231] +k[1811] = l[3232] +k[1812] = l[3233] +k[1813] = l[3234] +k[1814] = l[3235] +k[1815] = l[3236] +k[1816] = l[3237] +k[1817] = l[3238] +k[1818] = l[3239] +k[1819] = l[3240] +k[1820] = l[3241] +k[1821] = l[3242] +k[1822] = l[3243] +k[1823] = l[3244] +k[1824] = l[3245] +k[1825] = l[3246] +k[1826] = l[3247] +k[1827] = l[3248] +k[1828] = l[3249] +k[1829] = l[3250] +k[1830] = l[3251] +k[1831] = l[3252] +k[1832] = l[3253] +k[1833] = l[3254] +k[1834] = l[3255] +k[1835] = l[3256] +k[1836] = l[3257] +k[1837] = l[3258] +k[1838] = l[3259] +k[1839] = l[3260] +k[1840] = l[3261] +k[1841] = l[3262] +k[1842] = l[3263] +k[1843] = l[3264] +k[1844] = l[3265] +k[1845] = l[3266] +k[1846] = l[3268] +k[1847] = l[3270] +k[1848] = l[3272] +k[1849] = l[3274] +k[1850] = l[3275] +k[1851] = l[3276] +k[1852] = l[3277] +k[1853] = l[3278] +k[1854] = l[3282] +k[1855] = l[3283] +k[1856] = l[3284] +k[1857] = l[3285] +k[1858] = l[3286] +k[1859] = l[3287] +k[1860] = l[3288] +k[1861] = l[3289] +k[1862] = l[3290] +k[1863] = l[3292] +k[1864] = l[3294] +k[1865] = l[3296] +k[1866] = l[3298] +k[1867] = l[3300] +k[1868] = l[3302] +k[1869] = l[3304] +k[1870] = l[3306] +k[1871] = l[3308] +k[1872] = l[3310] +k[1873] = l[3312] +k[1874] = l[3313] +k[1875] = l[3314] +k[1876] = l[3315] +k[1877] = l[3316] +k[1878] = l[3317] +k[1879] = l[3319] +k[1880] = l[3321] +k[1881] = l[3323] +k[1882] = l[3325] +k[1883] = l[3327] +k[1884] = l[3329] +k[1885] = l[3331] +k[1886] = l[3333] +k[1887] = l[3335] +k[1888] = l[3337] +k[1889] = l[3339] +k[1890] = l[3341] +k[1891] = l[3343] +k[1892] = l[3345] +k[1893] = l[3346] +k[1894] = l[3347] +k[1895] = l[3348] +k[1896] = l[3349] +k[1897] = l[3350] +k[1898] = l[3351] +k[1899] = l[3352] +k[1900] = l[3353] +k[1901] = l[3354] +k[1902] = l[3355] +k[1903] = l[3357] +k[1904] = l[3359] +k[1905] = l[3360] +k[1906] = l[3361] +k[1907] = l[3362] +k[1908] = l[3363] +k[1909] = l[3365] +k[1910] = l[3368] +k[1911] = l[3370] +k[1912] = l[3372] +k[1913] = l[3374] +k[1914] = l[3375] +k[1915] = l[3376] +k[1916] = l[3377] +k[1917] = l[3378] +k[1918] = l[3380] +k[1919] = l[3381] +k[1920] = l[3382] +k[1921] = l[3383] +k[1922] = l[3384] +k[1923] = l[3385] +k[1924] = l[3386] +k[1925] = l[3387] +k[1926] = l[3388] +k[1927] = l[3389] +k[1928] = l[3391] +k[1929] = l[3392] +k[1930] = l[3393] +k[1931] = l[3394] +k[1932] = l[3395] +k[1933] = l[3396] +k[1934] = l[3397] +k[1935] = l[3398] +k[1936] = l[3399] +k[1937] = l[3400] +k[1938] = l[3401] +k[1939] = l[3405] +k[1940] = l[3408] +k[1941] = l[3419] +k[1942] = l[3425] +k[1943] = l[3434] +k[1944] = l[3440] +k[1945] = l[3448] +k[1946] = l[3454] +k[1947] = l[3457] +k[1948] = l[3464] +k[1949] = l[3467] +k[1950] = l[3478] +k[1951] = l[3485] +k[1952] = l[3491] +k[1953] = l[3496] +k[1954] = l[3498] +k[1955] = l[3500] +k[1956] = l[3509] +k[1957] = l[3511] +k[1958] = l[3513] +k[1959] = l[3518] +k[1960] = l[3520] +k[1961] = l[3522] +k[1962] = l[3524] +k[1963] = l[3526] +k[1964] = l[3528] +k[1965] = l[3530] +k[1966] = l[3532] +k[1967] = l[3534] +k[1968] = l[3537] +k[1969] = l[3539] +k[1970] = l[3541] +k[1971] = l[3543] +k[1972] = l[3545] +k[1973] = l[3547] +k[1974] = l[3549] +k[1975] = l[3551] +k[1976] = l[3553] +k[1977] = l[3554] +k[1978] = l[3555] +k[1979] = l[3556] +k[1980] = l[3557] +k[1981] = l[3558] +k[1982] = l[3559] +k[1983] = l[3560] +k[1984] = l[3561] +k[1985] = l[3562] +k[1986] = l[3563] +k[1987] = l[3564] +k[1988] = l[3565] +k[1989] = l[3566] +k[1990] = l[3567] +k[1991] = l[3568] +k[1992] = l[3569] +k[1993] = l[3570] +k[1994] = l[3571] +k[1995] = l[3573] +k[1996] = l[3575] +k[1997] = l[3577] +k[1998] = l[3579] +k[1999] = l[3580] +k[2000] = l[3581] +k[2001] = l[3582] +k[2002] = l[3583] +k[2003] = l[3590] +k[2004] = l[3598] +k[2005] = l[3603] +k[2006] = l[3609] +k[2007] = l[3614] +k[2008] = l[3616] +k[2009] = l[3618] +k[2010] = l[3623] +k[2011] = l[3631] +k[2012] = l[3632] +k[2013] = l[3633] +k[2014] = l[3634] +k[2015] = l[3635] +k[2016] = l[3636] +k[2017] = l[3637] +k[2018] = l[3638] +k[2019] = l[3639] +k[2020] = l[3640] +k[2021] = l[3641] +k[2022] = l[3642] +k[2023] = l[3643] +k[2024] = l[3644] +k[2025] = l[3645] +k[2026] = l[3646] +k[2027] = l[3647] +k[2028] = l[3652] +k[2029] = l[3660] +k[2030] = l[3662] +k[2031] = l[3664] +k[2032] = l[3666] +k[2033] = l[3668] +k[2034] = l[3673] +k[2035] = l[3678] +k[2036] = l[3688] +k[2037] = l[3696] +k[2038] = l[3703] +k[2039] = l[3711] +k[2040] = l[3714] +k[2041] = l[3717] +k[2042] = l[3733] +k[2043] = l[3746] +k[2044] = l[3752] +k[2045] = l[3758] +k[2046] = l[3764] +k[2047] = l[3769] +k[2048] = l[3774] +k[2049] = l[3779] +k[2050] = l[3784] +k[2051] = l[3789] +k[2052] = l[3794] +k[2053] = l[3799] +k[2054] = l[3804] +k[2055] = l[3809] +k[2056] = l[3814] +k[2057] = l[3819] +k[2058] = l[3821] +k[2059] = l[3823] +k[2060] = l[3825] +k[2061] = l[3827] +k[2062] = l[3829] +k[2063] = l[3831] +k[2064] = l[3836] +k[2065] = l[3841] +k[2066] = l[3846] +k[2067] = l[3859] +k[2068] = l[3867] +k[2069] = l[3871] +k[2070] = l[3875] +k[2071] = l[3879] +k[2072] = l[3884] +k[2073] = l[3886] +k[2074] = l[3888] +k[2075] = l[3890] +k[2076] = l[3898] +k[2077] = l[3909] +k[2078] = l[3915] +k[2079] = l[3921] +k[2080] = l[3926] +k[2081] = l[3932] +k[2082] = l[3933] +k[2083] = l[3934] +k[2084] = l[3935] +k[2085] = l[3936] +k[2086] = l[3937] +k[2087] = l[3938] +k[2088] = l[3943] +k[2089] = l[3945] +k[2090] = l[3947] +k[2091] = l[3954] +k[2092] = l[3956] +k[2093] = l[3963] +k[2094] = l[3964] +k[2095] = l[3974] +k[2096] = l[3978] +k[2097] = l[3984] +k[2098] = l[3986] +k[2099] = l[3993] +k[2100] = l[3995] +k[2101] = l[4002] +k[2102] = l[4003] +k[2103] = l[4004] +k[2104] = l[4005] +k[2105] = l[4006] +k[2106] = l[4007] +k[2107] = l[4008] +k[2108] = l[4019] +k[2109] = l[4020] +k[2110] = l[4021] +k[2111] = l[4022] +k[2112] = l[4023] +k[2113] = l[4024] +k[2114] = l[4025] +k[2115] = l[4026] +k[2116] = l[4027] +k[2117] = l[4032] +k[2118] = l[4037] +k[2119] = l[4038] +k[2120] = l[4039] +k[2121] = l[4040] +k[2122] = l[4041] +k[2123] = l[4042] +k[2124] = l[4043] +k[2125] = l[4044] +k[2126] = l[4052] +k[2127] = l[4057] +k[2128] = l[4075] +k[2129] = l[4077] +k[2130] = l[4082] +k[2131] = l[4086] +k[2132] = l[4091] +k[2133] = l[4092] +k[2134] = l[4093] +k[2135] = l[4094] +k[2136] = l[4095] +k[2137] = l[4096] +k[2138] = l[4098] +k[2139] = l[4101] +k[2140] = l[4103] +k[2141] = l[4105] +k[2142] = l[4108] +k[2143] = l[4110] +k[2144] = l[4113] +k[2145] = l[4116] +k[2146] = l[4118] +k[2147] = l[4120] +k[2148] = l[4122] +k[2149] = l[4124] +k[2150] = l[4127] +k[2151] = l[4129] +k[2152] = l[4131] +k[2153] = l[4132] +k[2154] = l[4133] +k[2155] = l[4134] +k[2156] = l[4135] +k[2157] = l[4136] +k[2158] = l[4137] +k[2159] = l[4139] +k[2160] = l[4141] +k[2161] = l[4143] +k[2162] = l[4145] +k[2163] = l[4147] +k[2164] = l[4149] +k[2165] = l[4151] +k[2166] = l[4153] +k[2167] = l[4155] +k[2168] = l[4157] +k[2169] = l[4159] +k[2170] = l[4161] +k[2171] = l[4162] +k[2172] = l[4163] +k[2173] = l[4164] +k[2174] = l[4165] +k[2175] = l[4166] +k[2176] = l[4167] +k[2177] = l[4168] +k[2178] = l[4169] +k[2179] = l[4170] +k[2180] = l[4171] +k[2181] = l[4172] +k[2182] = l[4173] +k[2183] = l[4174] +k[2184] = l[4175] +k[2185] = l[4176] +k[2186] = l[4177] +k[2187] = l[4178] +k[2188] = l[4179] +k[2189] = l[4181] +k[2190] = l[4190] +k[2191] = l[4196] +k[2192] = l[4201] +k[2193] = l[4205] +k[2194] = l[4213] +k[2195] = l[4215] +k[2196] = l[4220] +k[2197] = l[4223] +k[2198] = l[4228] +k[2199] = l[4230] +k[2200] = l[4235] +k[2201] = l[4237] +k[2202] = l[4242] +k[2203] = l[4244] +k[2204] = l[4249] +k[2205] = l[4250] +k[2206] = l[4251] +k[2207] = l[4252] +k[2208] = l[4253] +k[2209] = l[4254] +k[2210] = l[4255] +k[2211] = l[4256] +k[2212] = l[4257] +k[2213] = l[4258] +k[2214] = l[4259] +k[2215] = l[4260] +k[2216] = l[4261] +k[2217] = l[4264] +k[2218] = l[4267] +k[2219] = l[4273] +k[2220] = l[4275] +k[2221] = l[4280] +k[2222] = l[4282] +k[2223] = l[4284] +k[2224] = l[4286] +k[2225] = l[4288] +k[2226] = l[4290] +k[2227] = l[4292] +k[2228] = l[4294] +k[2229] = l[4296] +k[2230] = l[4298] +k[2231] = l[4300] +k[2232] = l[4301] +k[2233] = l[4302] +k[2234] = l[4303] +k[2235] = l[4304] +k[2236] = l[4305] +k[2237] = l[4306] +k[2238] = l[4307] +k[2239] = l[4308] +k[2240] = l[4309] +k[2241] = l[4310] +k[2242] = l[4311] +k[2243] = l[4312] +k[2244] = l[4316] +k[2245] = l[4317] +k[2246] = l[4318] +k[2247] = l[4319] +k[2248] = l[4320] +k[2249] = l[4321] +k[2250] = l[4322] +k[2251] = l[4323] +k[2252] = l[4324] +k[2253] = l[4325] +k[2254] = l[4326] +k[2255] = l[4327] +k[2256] = l[4328] +k[2257] = l[4329] +k[2258] = l[4330] +k[2259] = l[4331] +k[2260] = l[4332] +k[2261] = l[4333] +k[2262] = l[4334] +k[2263] = l[4335] +k[2264] = l[4336] +k[2265] = l[4337] +k[2266] = l[4338] +k[2267] = l[4339] +k[2268] = l[4340] +k[2269] = l[4341] +k[2270] = l[4342] +k[2271] = l[4343] +k[2272] = l[4344] +k[2273] = l[4345] +k[2274] = l[4346] +k[2275] = l[4349] +k[2276] = l[4353] +k[2277] = l[4354] +k[2278] = l[4355] +k[2279] = l[4356] +k[2280] = l[4357] +k[2281] = l[4358] +k[2282] = l[4359] +k[2283] = l[4360] +k[2284] = l[4361] +k[2285] = l[4362] +k[2286] = l[4363] +k[2287] = l[4364] +k[2288] = l[4365] +k[2289] = l[4366] +k[2290] = l[4367] +k[2291] = l[4368] +k[2292] = l[4369] +k[2293] = l[4370] +k[2294] = l[4371] +k[2295] = l[4372] +k[2296] = l[4373] +k[2297] = l[4374] +k[2298] = l[4375] +k[2299] = l[4376] +k[2300] = l[4377] +k[2301] = l[4378] +k[2302] = l[4379] +k[2303] = l[4380] +k[2304] = l[4381] +k[2305] = l[4382] +k[2306] = l[4383] +k[2307] = l[4394] +k[2308] = l[4400] +k[2309] = l[4406] +k[2310] = l[4412] +k[2311] = l[4418] +k[2312] = l[4424] +k[2313] = l[4430] +k[2314] = l[4436] +k[2315] = l[4437] +k[2316] = l[4438] +k[2317] = l[4439] +k[2318] = l[4440] +k[2319] = l[4441] +k[2320] = l[4442] +k[2321] = l[4443] +k[2322] = l[4444] +k[2323] = l[4445] +k[2324] = l[4446] +k[2325] = l[4447] +k[2326] = l[4448] +k[2327] = l[4449] +k[2328] = l[4450] +k[2329] = l[4451] +k[2330] = l[4452] +k[2331] = l[4453] +k[2332] = l[4454] +k[2333] = l[4455] +k[2334] = l[4456] +k[2335] = l[4457] +k[2336] = l[4458] +k[2337] = l[4459] +k[2338] = l[4460] +k[2339] = l[4461] +k[2340] = l[4462] +k[2341] = l[4463] +k[2342] = l[4464] +k[2343] = l[4465] +k[2344] = l[4466] +k[2345] = l[4467] +k[2346] = l[4468] +k[2347] = l[4469] +k[2348] = l[4470] +k[2349] = l[4471] +k[2350] = l[4472] +k[2351] = l[4473] +k[2352] = l[4474] +k[2353] = l[4475] +k[2354] = l[4476] +k[2355] = l[4477] +k[2356] = l[4478] +k[2357] = l[4479] +k[2358] = l[4480] +k[2359] = l[4481] +k[2360] = l[4482] +k[2361] = l[4483] +k[2362] = l[4484] +k[2363] = l[4485] +k[2364] = l[4486] +k[2365] = l[4487] +k[2366] = l[4492] +k[2367] = l[4494] +k[2368] = l[4496] +k[2369] = l[4498] +k[2370] = l[4501] +k[2371] = l[4503] +k[2372] = l[4505] +k[2373] = l[4507] +k[2374] = l[4509] +k[2375] = l[4510] +k[2376] = l[4511] +k[2377] = l[4513] +k[2378] = l[4516] +k[2379] = l[4517] +k[2380] = l[4519] +k[2381] = l[4525] +k[2382] = l[4530] +k[2383] = l[4535] +k[2384] = l[4540] +k[2385] = l[4544] +k[2386] = l[4548] +k[2387] = l[4554] +k[2388] = l[4556] +k[2389] = l[4561] +k[2390] = l[4563] +k[2391] = l[4565] +k[2392] = l[4567] +k[2393] = l[4568] +k[2394] = l[4569] +k[2395] = l[4570] +k[2396] = l[4571] +k[2397] = l[4572] +k[2398] = l[4573] +k[2399] = l[4574] +k[2400] = l[4575] +k[2401] = l[4576] +k[2402] = l[4577] +k[2403] = l[4578] +k[2404] = l[4579] +k[2405] = l[4580] +k[2406] = l[4581] +k[2407] = l[4582] +k[2408] = l[4583] +k[2409] = l[4584] +k[2410] = l[4585] +k[2411] = l[4586] +k[2412] = l[4587] +k[2413] = l[4590] +k[2414] = l[4592] +k[2415] = l[4595] +k[2416] = l[4599] +k[2417] = l[4602] +k[2418] = l[4604] +k[2419] = l[4605] +k[2420] = l[4606] +k[2421] = l[4613] +k[2422] = l[4618] +k[2423] = l[4621] +k[2424] = l[4626] +k[2425] = l[4629] +k[2426] = l[4634] +k[2427] = l[4640] +k[2428] = l[4645] +k[2429] = l[4652] +k[2430] = l[4655] +k[2431] = l[4662] +k[2432] = l[4664] +k[2433] = l[4672] +k[2434] = l[4679] +k[2435] = l[4684] +k[2436] = l[4689] +k[2437] = l[4696] +k[2438] = l[4700] +k[2439] = l[4701] +k[2440] = l[4702] +k[2441] = l[4703] +k[2442] = l[4704] +k[2443] = l[4707] +k[2444] = l[4710] +k[2445] = l[4713] +k[2446] = l[4715] +k[2447] = l[4723] +k[2448] = l[4731] +k[2449] = l[4733] +k[2450] = l[4735] +k[2451] = l[4738] +k[2452] = l[4741] +k[2453] = l[4748] +k[2454] = l[4755] +k[2455] = l[4756] +k[2456] = l[4757] +k[2457] = l[4759] +k[2458] = l[4761] +k[2459] = l[4762] +k[2460] = l[4763] +k[2461] = l[4766] +k[2462] = l[4768] +k[2463] = l[4772] +k[2464] = l[4777] +k[2465] = l[4780] +k[2466] = l[4782] +k[2467] = l[4789] +k[2468] = l[4793] +k[2469] = l[4796] +k[2470] = l[4802] +k[2471] = l[4804] +k[2472] = l[4811] +k[2473] = l[4817] +k[2474] = l[4824] +k[2475] = l[4830] +k[2476] = l[4836] +k[2477] = l[4843] +k[2478] = l[4845] +k[2479] = l[4852] +k[2480] = l[4854] +k[2481] = l[4856] +k[2482] = l[4858] +k[2483] = l[4860] +k[2484] = l[4862] +k[2485] = l[4864] +k[2486] = l[4865] +k[2487] = l[4866] +k[2488] = l[4867] +k[2489] = l[4868] +k[2490] = l[4869] +k[2491] = l[4870] +k[2492] = l[4872] +k[2493] = l[4874] +k[2494] = l[4875] +k[2495] = l[4876] +k[2496] = l[4880] +k[2497] = l[4885] +k[2498] = l[4890] +k[2499] = l[4896] +k[2500] = l[4898] +k[2501] = l[4899] +k[2502] = l[4900] +k[2503] = l[4901] +k[2504] = l[4902] +k[2505] = l[4903] +k[2506] = l[4904] +k[2507] = l[4905] +k[2508] = l[4906] +k[2509] = l[4911] +k[2510] = l[4916] +k[2511] = l[4918] +k[2512] = l[4920] +k[2513] = l[4924] +k[2514] = l[4926] +k[2515] = l[4928] +k[2516] = l[4929] +k[2517] = l[4930] +k[2518] = l[4931] +k[2519] = l[4932] +k[2520] = l[4933] +k[2521] = l[4934] +k[2522] = l[4935] +k[2523] = l[4936] +k[2524] = l[4937] +k[2525] = l[4938] +k[2526] = l[4939] +k[2527] = l[4940] +k[2528] = l[4941] +k[2529] = l[4942] +k[2530] = l[4943] +k[2531] = l[4944] +k[2532] = l[4945] +k[2533] = l[4946] +k[2534] = l[4947] +k[2535] = l[4948] +k[2536] = l[4949] +k[2537] = l[4950] +k[2538] = l[4951] +k[2539] = l[4952] +k[2540] = l[4953] +k[2541] = l[4954] +k[2542] = l[4955] +k[2543] = l[4956] +k[2544] = l[4957] +k[2545] = l[4958] +k[2546] = l[4966] +k[2547] = l[4972] +k[2548] = l[4978] +k[2549] = l[4983] +k[2550] = l[4988] +k[2551] = l[4993] +k[2552] = l[4995] +k[2553] = l[4997] +k[2554] = l[5002] +k[2555] = l[5007] +k[2556] = l[5009] +k[2557] = l[5013] +k[2558] = l[5019] +k[2559] = l[5025] +k[2560] = l[5029] +k[2561] = l[5031] +k[2562] = l[5032] +k[2563] = l[5033] +k[2564] = l[5035] +k[2565] = l[5037] +k[2566] = l[5043] +k[2567] = l[5045] +k[2568] = l[5051] +k[2569] = l[5053] +k[2570] = l[5059] +k[2571] = l[5065] +k[2572] = l[5066] +k[2573] = l[5067] +k[2574] = l[5077] +k[2575] = l[5082] +k[2576] = l[5084] +k[2577] = l[5086] +k[2578] = l[5089] +k[2579] = l[5091] +k[2580] = l[5096] +k[2581] = l[5100] +k[2582] = l[5105] +k[2583] = l[5107] +k[2584] = l[5108] +k[2585] = l[5113] +k[2586] = l[5114] +k[2587] = l[5115] +k[2588] = l[5116] +k[2589] = l[5117] +k[2590] = l[5119] +k[2591] = l[5129] +k[2592] = l[5131] +k[2593] = l[5133] +k[2594] = l[5135] +k[2595] = l[5137] +k[2596] = l[5139] +k[2597] = l[5140] +k[2598] = l[5141] +k[2599] = l[5143] +k[2600] = l[5145] +k[2601] = l[5147] +k[2602] = l[5149] +k[2603] = l[5150] +k[2604] = l[5151] +k[2605] = l[5152] +k[2606] = l[5153] +k[2607] = l[5154] +k[2608] = l[5155] +k[2609] = l[5160] +k[2610] = l[5162] +k[2611] = l[5167] +k[2612] = l[5172] +k[2613] = l[5174] +k[2614] = l[5179] +k[2615] = l[5181] +k[2616] = l[5186] +k[2617] = l[5187] +k[2618] = l[5188] +k[2619] = l[5189] +k[2620] = l[5190] +k[2621] = l[5193] +k[2622] = l[5196] +k[2623] = l[5197] +k[2624] = l[5198] +k[2625] = l[5200] +k[2626] = l[5202] +k[2627] = l[5204] +k[2628] = l[5206] +k[2629] = l[5207] +k[2630] = l[5208] +k[2631] = l[5209] +k[2632] = l[5210] +k[2633] = l[5211] +k[2634] = l[5212] +k[2635] = l[5213] +k[2636] = l[5214] +k[2637] = l[5215] +k[2638] = l[5216] +k[2639] = l[5217] +k[2640] = l[5218] +k[2641] = l[5219] +k[2642] = l[5220] +k[2643] = l[5226] +k[2644] = l[5232] +k[2645] = l[5238] +k[2646] = l[5244] +k[2647] = l[5245] +k[2648] = l[5246] +k[2649] = l[5247] +k[2650] = l[5248] +k[2651] = l[5249] +k[2652] = l[5250] +k[2653] = l[5251] +k[2654] = l[5252] +k[2655] = l[5253] +k[2656] = l[5254] +k[2657] = l[5255] +k[2658] = l[5256] +k[2659] = l[5257] +k[2660] = l[5258] +k[2661] = l[5259] +k[2662] = l[5260] +k[2663] = l[5261] +k[2664] = l[5262] +k[2665] = l[5264] +k[2666] = l[5266] +k[2667] = l[5268] +k[2668] = l[5270] +k[2669] = l[5271] +k[2670] = l[5273] +k[2671] = l[5275] +k[2672] = l[5276] +k[2673] = l[5277] +k[2674] = l[5282] +k[2675] = l[5287] +k[2676] = l[5289] +k[2677] = l[5291] +k[2678] = l[5296] +k[2679] = l[5297] +k[2680] = l[5298] +k[2681] = l[5299] +k[2682] = l[5300] +k[2683] = l[5301] +end +do local k = l[3] +k.orgnames = l[4] +k.opclass = l[5] +k.operands = l[16] +k.sub = 31 +k.name = "VAESDECLAST_XXM" +end +do local k = l[4] +k[1] = "dst" +k[2] = "src1" +k[3] = "src" +k.id = 11 +k.sig = "{dst, src1, src}" +end +do local k = l[5] +k.isa = l[6] +k.code = l[7] +k.id = 2 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 192 +k.sig = "{aes, avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PARC0|{rmem}" +k.prefixclass = l[14] +end +do local k = l[6] +k[1] = "aes" +k[2] = "avx" +k.id = 37 +k.sig = "{aes, avx}" +end +do local k = l[7] +k[1] = "$parm+$sub" +k[2] = "!RRMM($p2,$p1)" +k.id = 30 +k.sig = "{$parm+$sub, !RRMM($p2,$p1)}" +end +do local k = l[8] +k[1] = l[9] +k[2] = l[10] +k[3] = l[11] +k.id = 30 +k.sig = "{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}" +end +do local k = l[9] +k[1] = "MemId" +k[2] = "use" +k[3] = "p1" +end +do local k = l[10] +k[1] = "RegId" +k[2] = "def" +k[3] = "p2" +end +do local k = l[11] +k[1] = "RegId" +k[2] = "use" +k[3] = "p3" +end +do local k = l[12] +k.id = 1 +k.sig = "{}" +end +do local k = l[13] +k[1] = "rmem" +k.id = 8 +k.sig = "{rmem}" +end +do local k = l[14] +k.extopcode = "0f38" +k.rex = l[15] +k.id = 53 +k.pref = "66" +k.sig = "vex-66-0f38-R2M1S3" +end +do local k = l[15] +k.r64 = "0" +k.rm = "p1" +k.reg = "p2" +k.sig = "{r64 = 0,rm = p1,src1 = p3,reg = p2,mode = rm,vex = true,l = 0}" +k.src1 = "p3" +k.id = 17 +k.l = "0" +k.vex = true +k.mode = "rm" +end +do local k = l[16] +k[1] = l[17] +k[2] = l[18] +k[3] = l[19] +k.id = 228 +k.sig = "{{mode = o,type = VR128,name = p2}, {mode = i,type = VR128,name = p3}, {mode = i,type = i128*,name = p1}}" +end +do local k = l[17] +k.mode = "o" +k.type = "VR128" +k.name = "p2" +end +do local k = l[18] +k.mode = "i" +k.type = "VR128" +k.name = "p3" +end +do local k = l[19] +k.mode = "i" +k.type = "i128*" +k.name = "p1" +end +do local k = l[20] +k.orgnames = l[4] +k.opclass = l[21] +k.operands = l[30] +k.sub = 31 +k.name = "VAESDECLAST_XXX" +end +do local k = l[21] +k.isa = l[6] +k.code = l[22] +k.id = 5 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 192 +k.sig = "{aes, avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PARC0|{}" +k.prefixclass = l[28] +end +do local k = l[22] +k[1] = "$parm+$sub" +k[2] = "!RRMR($p2,$p1)" +k.id = 7 +k.sig = "{$parm+$sub, !RRMR($p2,$p1)}" +end +do local k = l[23] +k[1] = l[24] +k[2] = l[25] +k[3] = l[26] +k.id = 18 +k.sig = "{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}" +end +do local k = l[24] +k[1] = "RegId" +k[2] = "use" +k[3] = "p1" +end +do local k = l[25] +k[1] = "RegId" +k[2] = "def" +k[3] = "p2" +end +do local k = l[26] +k[1] = "RegId" +k[2] = "use" +k[3] = "p3" +end +do local k = l[27] +k.id = 1 +k.sig = "{}" +end +do local k = l[28] +k.extopcode = "0f38" +k.rex = l[29] +k.id = 18 +k.pref = "66" +k.sig = "vex-66-0f38-R2B1S3" +end +do local k = l[29] +k.r64 = "0" +k.rm = "p1" +k.reg = "p2" +k.sig = "{r64 = 0,rm = p1,src1 = p3,reg = p2,mode = rr,vex = true,l = 0}" +k.src1 = "p3" +k.id = 4 +k.l = "0" +k.vex = true +k.mode = "rr" +end +do local k = l[30] +k[1] = l[31] +k[2] = l[32] +k[3] = l[33] +k.id = 222 +k.sig = "{{mode = o,type = VR128,name = p2}, {mode = i,type = VR128,name = p3}, {mode = i,type = VR128,name = p1}}" +end +do local k = l[31] +k.mode = "o" +k.type = "VR128" +k.name = "p2" +end +do local k = l[32] +k.mode = "i" +k.type = "VR128" +k.name = "p3" +end +do local k = l[33] +k.mode = "i" +k.type = "VR128" +k.name = "p1" +end +do local k = l[34] +k.orgnames = l[4] +k.opclass = l[5] +k.operands = l[16] +k.sub = 30 +k.name = "VAESDEC_XXM" +end +do local k = l[35] +k.orgnames = l[4] +k.opclass = l[21] +k.operands = l[30] +k.sub = 30 +k.name = "VAESDEC_XXX" +end +do local k = l[36] +k.orgnames = l[4] +k.opclass = l[5] +k.operands = l[16] +k.sub = 29 +k.name = "VAESENCLAST_XXM" +end +do local k = l[37] +k.orgnames = l[4] +k.opclass = l[21] +k.operands = l[30] +k.sub = 29 +k.name = "VAESENCLAST_XXX" +end +do local k = l[38] +k.orgnames = l[4] +k.opclass = l[5] +k.operands = l[16] +k.sub = 28 +k.name = "VAESENC_XXM" +end +do local k = l[39] +k.orgnames = l[4] +k.opclass = l[21] +k.operands = l[30] +k.sub = 28 +k.name = "VAESENC_XXX" +end +do local k = l[40] +k.orgnames = l[41] +k.opclass = l[42] +k.operands = l[48] +k.sub = 27 +k.name = "VAESIMC_XM" +end +do local k = l[41] +k[1] = "dst" +k[2] = "src" +k.id = 1 +k.sig = "{dst, src}" +end +do local k = l[42] +k.isa = l[6] +k.code = l[7] +k.id = 3 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 192 +k.sig = "{aes, avx}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f38-R2M1Ssrc1|{$parm+$sub, !RRMM($p2,$p1)}|PARC0|{rmem}" +k.prefixclass = l[46] +end +do local k = l[43] +k[1] = l[44] +k[2] = l[45] +k.id = 28 +k.sig = "{{MemId, use, p1}, {RegId, def, p2}}" +end +do local k = l[44] +k[1] = "MemId" +k[2] = "use" +k[3] = "p1" +end +do local k = l[45] +k[1] = "RegId" +k[2] = "def" +k[3] = "p2" +end +do local k = l[46] +k.extopcode = "0f38" +k.rex = l[47] +k.id = 147 +k.pref = "66" +k.sig = "vex-66-0f38-R2M1Ssrc1" +end +do local k = l[47] +k.r64 = "0" +k.rm = "p1" +k.reg = "p2" +k.sig = "{r64 = 0,rm = p1,src1 = src1,reg = p2,mode = rm,vex = true,l = 0}" +k.src1 = "src1" +k.id = 34 +k.l = "0" +k.vex = true +k.mode = "rm" +end +do local k = l[48] +k[1] = l[49] +k[2] = l[50] +k.id = 211 +k.sig = "{{mode = o,type = VR128,name = p2}, {mode = i,type = i128*,name = p1}}" +end +do local k = l[49] +k.mode = "o" +k.type = "VR128" +k.name = "p2" +end +do local k = l[50] +k.mode = "i" +k.type = "i128*" +k.name = "p1" +end +do local k = l[51] +k.orgnames = l[41] +k.opclass = l[52] +k.operands = l[58] +k.sub = 27 +k.name = "VAESIMC_XX" +end +do local k = l[52] +k.isa = l[6] +k.code = l[22] +k.id = 6 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 192 +k.sig = "{aes, avx}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f38-R2B1Ssrc1|{$parm+$sub, !RRMR($p2,$p1)}|PARC0|{}" +k.prefixclass = l[56] +end +do local k = l[53] +k[1] = l[54] +k[2] = l[55] +k.id = 12 +k.sig = "{{RegId, use, p1}, {RegId, def, p2}}" +end +do local k = l[54] +k[1] = "RegId" +k[2] = "use" +k[3] = "p1" +end +do local k = l[55] +k[1] = "RegId" +k[2] = "def" +k[3] = "p2" +end +do local k = l[56] +k.extopcode = "0f38" +k.rex = l[57] +k.id = 143 +k.pref = "66" +k.sig = "vex-66-0f38-R2B1Ssrc1" +end +do local k = l[57] +k.r64 = "0" +k.rm = "p1" +k.reg = "p2" +k.sig = "{r64 = 0,rm = p1,src1 = src1,reg = p2,mode = rr,vex = true,l = 0}" +k.src1 = "src1" +k.id = 33 +k.l = "0" +k.vex = true +k.mode = "rr" +end +do local k = l[58] +k[1] = l[59] +k[2] = l[60] +k.id = 199 +k.sig = "{{mode = o,type = VR128,name = p2}, {mode = i,type = VR128,name = p1}}" +end +do local k = l[59] +k.mode = "o" +k.type = "VR128" +k.name = "p2" +end +do local k = l[60] +k.mode = "i" +k.type = "VR128" +k.name = "p1" +end +do local k = l[61] +k.orgnames = l[62] +k.opclass = l[63] +k.operands = l[70] +k.sub = 31 +k.name = "VAESKEYGENASSIST_XMI" +end +do local k = l[62] +k[1] = "dst" +k[2] = "src" +k[3] = "imm" +k.id = 10 +k.sig = "{dst, src, imm}" +end +do local k = l[63] +k.isa = l[6] +k.code = l[64] +k.id = 1 +k.layout = l[65] +k.impregs = l[12] +k.flags = l[13] +k.parm = 192 +k.sig = "{aes, avx}|{{MemId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f3a-R2M1Ssrc1|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PARC0|{rmem}" +k.prefixclass = l[69] +end +do local k = l[64] +k[1] = "$parm+$sub" +k[2] = "!RRMM($p2,$p1)" +k[3] = "!I8($p3)" +k.id = 33 +k.sig = "{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}" +end +do local k = l[65] +k[1] = l[66] +k[2] = l[67] +k[3] = l[68] +k.id = 29 +k.sig = "{{MemId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}" +end +do local k = l[66] +k[1] = "MemId" +k[2] = "use" +k[3] = "p1" +end +do local k = l[67] +k[1] = "RegId" +k[2] = "def" +k[3] = "p2" +end +do local k = l[68] +k[1] = "Imm" +k[2] = "use" +k[3] = "p3" +k[4] = 0 +end +do local k = l[69] +k.extopcode = "0f3a" +k.rex = l[47] +k.id = 148 +k.pref = "66" +k.sig = "vex-66-0f3a-R2M1Ssrc1" +end +do local k = l[70] +k[1] = l[71] +k[2] = l[72] +k[3] = l[73] +k.id = 210 +k.sig = "{{mode = o,type = VR128,name = p2}, {mode = i,type = i128*,name = p1}, {mode = i,type = i8,name = p3}}" +end +do local k = l[71] +k.mode = "o" +k.type = "VR128" +k.name = "p2" +end +do local k = l[72] +k.mode = "i" +k.type = "i128*" +k.name = "p1" +end +do local k = l[73] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[74] +k.orgnames = l[62] +k.opclass = l[75] +k.operands = l[82] +k.sub = 31 +k.name = "VAESKEYGENASSIST_XXI" +end +do local k = l[75] +k.isa = l[6] +k.code = l[76] +k.id = 4 +k.layout = l[77] +k.impregs = l[12] +k.flags = l[27] +k.parm = 192 +k.sig = "{aes, avx}|{{RegId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f3a-R2B1Ssrc1|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PARC0|{}" +k.prefixclass = l[81] +end +do local k = l[76] +k[1] = "$parm+$sub" +k[2] = "!RRMR($p2,$p1)" +k[3] = "!I8($p3)" +k.id = 13 +k.sig = "{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}" +end +do local k = l[77] +k[1] = l[78] +k[2] = l[79] +k[3] = l[80] +k.id = 17 +k.sig = "{{RegId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}" +end +do local k = l[78] +k[1] = "RegId" +k[2] = "use" +k[3] = "p1" +end +do local k = l[79] +k[1] = "RegId" +k[2] = "def" +k[3] = "p2" +end +do local k = l[80] +k[1] = "Imm" +k[2] = "use" +k[3] = "p3" +k[4] = 0 +end +do local k = l[81] +k.extopcode = "0f3a" +k.rex = l[57] +k.id = 144 +k.pref = "66" +k.sig = "vex-66-0f3a-R2B1Ssrc1" +end +do local k = l[82] +k[1] = l[83] +k[2] = l[84] +k[3] = l[85] +k.id = 198 +k.sig = "{{mode = o,type = VR128,name = p2}, {mode = i,type = VR128,name = p1}, {mode = i,type = i8,name = p3}}" +end +do local k = l[83] +k.mode = "o" +k.type = "VR128" +k.name = "p2" +end +do local k = l[84] +k.mode = "i" +k.type = "VR128" +k.name = "p1" +end +do local k = l[85] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[86] +k.orgnames = l[41] +k.opclass = l[87] +k.operands = l[94] +k.sub = 31 +k.name = "AESDECLAST_XM" +end +do local k = l[87] +k.isa = l[88] +k.code = l[7] +k.id = 9 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[13] +k.parm = 192 +k.sig = "{aes}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|66-rexR2M1-0f38|{$parm+$sub, !RRMM($p2,$p1)}|PARC0|{rmem}" +k.prefixclass = l[92] +end +do local k = l[88] +k[1] = "aes" +k.id = 34 +k.sig = "{aes}" +end +do local k = l[89] +k[1] = l[90] +k[2] = l[91] +k.id = 22 +k.sig = "{{MemId, use, p1}, {RegId, use/def, p2}}" +end +do local k = l[90] +k[1] = "MemId" +k[2] = "use" +k[3] = "p1" +end +do local k = l[91] +k[1] = "RegId" +k[2] = "use/def" +k[3] = "p2" +end +do local k = l[92] +k.extopcode = "0f38" +k.rex = l[93] +k.id = 44 +k.pref = "66" +k.sig = "66-rexR2M1-0f38" +end +do local k = l[93] +k.r64 = "0" +k.rm = "p1" +k.reg = "p2" +k.mode = "rm" +k.sig = "{reg = p2,mode = rm,rm = p1,r64 = 0}" +k.id = 15 +end +do local k = l[94] +k[1] = l[95] +k[2] = l[96] +k.id = 208 +k.sig = "{{mode = io,type = VR128,name = p2}, {mode = i,type = i128*,name = p1}}" +end +do local k = l[95] +k.mode = "io" +k.type = "VR128" +k.name = "p2" +end +do local k = l[96] +k.mode = "i" +k.type = "i128*" +k.name = "p1" +end +do local k = l[97] +k.orgnames = l[41] +k.opclass = l[98] +k.operands = l[104] +k.sub = 31 +k.name = "AESDECLAST_XX" +end +do local k = l[98] +k.isa = l[88] +k.code = l[22] +k.id = 12 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 192 +k.sig = "{aes}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|66-rexR2B1-0f38|{$parm+$sub, !RRMR($p2,$p1)}|PARC0|{}" +k.prefixclass = l[102] +end +do local k = l[99] +k[1] = l[100] +k[2] = l[101] +k.id = 1 +k.sig = "{{RegId, use, p1}, {RegId, use/def, p2}}" +end +do local k = l[100] +k[1] = "RegId" +k[2] = "use" +k[3] = "p1" +end +do local k = l[101] +k[1] = "RegId" +k[2] = "use/def" +k[3] = "p2" +end +do local k = l[102] +k.extopcode = "0f38" +k.rex = l[103] +k.id = 71 +k.pref = "66" +k.sig = "66-rexR2B1-0f38" +end +do local k = l[103] +k.r64 = "0" +k.rm = "p1" +k.reg = "p2" +k.mode = "rr" +k.sig = "{reg = p2,mode = rr,rm = p1,r64 = 0}" +k.id = 1 +end +do local k = l[104] +k[1] = l[105] +k[2] = l[106] +k.id = 196 +k.sig = "{{mode = io,type = VR128,name = p2}, {mode = i,type = VR128,name = p1}}" +end +do local k = l[105] +k.mode = "io" +k.type = "VR128" +k.name = "p2" +end +do local k = l[106] +k.mode = "i" +k.type = "VR128" +k.name = "p1" +end +do local k = l[107] +k.orgnames = l[41] +k.opclass = l[87] +k.operands = l[94] +k.sub = 30 +k.name = "AESDEC_XM" +end +do local k = l[108] +k.orgnames = l[41] +k.opclass = l[98] +k.operands = l[104] +k.sub = 30 +k.name = "AESDEC_XX" +end +do local k = l[109] +k.orgnames = l[41] +k.opclass = l[87] +k.operands = l[94] +k.sub = 29 +k.name = "AESENCLAST_XM" +end +do local k = l[110] +k.orgnames = l[41] +k.opclass = l[98] +k.operands = l[104] +k.sub = 29 +k.name = "AESENCLAST_XX" +end +do local k = l[111] +k.orgnames = l[41] +k.opclass = l[87] +k.operands = l[94] +k.sub = 28 +k.name = "AESENC_XM" +end +do local k = l[112] +k.orgnames = l[41] +k.opclass = l[98] +k.operands = l[104] +k.sub = 28 +k.name = "AESENC_XX" +end +do local k = l[113] +k.orgnames = l[41] +k.opclass = l[114] +k.operands = l[48] +k.sub = 27 +k.name = "AESIMC_XM" +end +do local k = l[114] +k.isa = l[88] +k.code = l[7] +k.id = 8 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 192 +k.sig = "{aes}|{{MemId, use, p1}, {RegId, def, p2}}|{}|66-rexR2M1-0f38|{$parm+$sub, !RRMM($p2,$p1)}|PARC0|{rmem}" +k.prefixclass = l[92] +end +do local k = l[115] +k.orgnames = l[41] +k.opclass = l[116] +k.operands = l[58] +k.sub = 27 +k.name = "AESIMC_XX" +end +do local k = l[116] +k.isa = l[88] +k.code = l[22] +k.id = 11 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 192 +k.sig = "{aes}|{{RegId, use, p1}, {RegId, def, p2}}|{}|66-rexR2B1-0f38|{$parm+$sub, !RRMR($p2,$p1)}|PARC0|{}" +k.prefixclass = l[102] +end +do local k = l[117] +k.orgnames = l[62] +k.opclass = l[118] +k.operands = l[70] +k.sub = 31 +k.name = "AESKEYGENASSIST_XMI" +end +do local k = l[118] +k.isa = l[88] +k.code = l[64] +k.id = 7 +k.layout = l[65] +k.impregs = l[12] +k.flags = l[13] +k.parm = 192 +k.sig = "{aes}|{{MemId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|66-rexR2M1-0f3a|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PARC0|{rmem}" +k.prefixclass = l[119] +end +do local k = l[119] +k.extopcode = "0f3a" +k.rex = l[93] +k.id = 72 +k.pref = "66" +k.sig = "66-rexR2M1-0f3a" +end +do local k = l[120] +k.orgnames = l[62] +k.opclass = l[121] +k.operands = l[82] +k.sub = 31 +k.name = "AESKEYGENASSIST_XXI" +end +do local k = l[121] +k.isa = l[88] +k.code = l[76] +k.id = 10 +k.layout = l[77] +k.impregs = l[12] +k.flags = l[27] +k.parm = 192 +k.sig = "{aes}|{{RegId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|66-rexR2B1-0f3a|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PARC0|{}" +k.prefixclass = l[122] +end +do local k = l[122] +k.extopcode = "0f3a" +k.rex = l[103] +k.id = 69 +k.pref = "66" +k.sig = "66-rexR2B1-0f3a" +end +do local k = l[123] +k.orgnames = l[124] +k.opclass = l[125] +k.operands = l[134] +k.sub = 4 +k.name = "VPCLMULQDQ_XXMI" +end +do local k = l[124] +k[1] = "dst" +k[2] = "src1" +k[3] = "src" +k[4] = "imm" +k.id = 34 +k.sig = "{dst, src1, src, imm}" +end +do local k = l[125] +k.isa = l[126] +k.code = l[127] +k.id = 13 +k.layout = l[128] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{avx, clmul}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-66-0f3a-R2M1S3|{$parm+$sub, !RRMM($p2,$p1), !I8($p4)}|PAR40|{rmem}" +k.prefixclass = l[133] +end +do local k = l[126] +k[1] = "avx" +k[2] = "clmul" +k.id = 38 +k.sig = "{avx, clmul}" +end +do local k = l[127] +k[1] = "$parm+$sub" +k[2] = "!RRMM($p2,$p1)" +k[3] = "!I8($p4)" +k.id = 60 +k.sig = "{$parm+$sub, !RRMM($p2,$p1), !I8($p4)}" +end +do local k = l[128] +k[1] = l[129] +k[2] = l[130] +k[3] = l[131] +k[4] = l[132] +k.id = 39 +k.sig = "{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}" +end +do local k = l[129] +k[1] = "MemId" +k[2] = "use" +k[3] = "p1" +end +do local k = l[130] +k[1] = "RegId" +k[2] = "def" +k[3] = "p2" +end +do local k = l[131] +k[1] = "RegId" +k[2] = "use" +k[3] = "p3" +end +do local k = l[132] +k[1] = "Imm" +k[2] = "use" +k[3] = "p4" +k[4] = 0 +end +do local k = l[133] +k.extopcode = "0f3a" +k.rex = l[15] +k.id = 92 +k.pref = "66" +k.sig = "vex-66-0f3a-R2M1S3" +end +do local k = l[134] +k[1] = l[135] +k[2] = l[136] +k[3] = l[137] +k[4] = l[138] +k.id = 229 +k.sig = "{{mode = o,type = VR128,name = p2}, {mode = i,type = VR128,name = p3}, {mode = i,type = i128*,name = p1}, {mode = i,type = i8,name = p4}}" +end +do local k = l[135] +k.mode = "o" +k.type = "VR128" +k.name = "p2" +end +do local k = l[136] +k.mode = "i" +k.type = "VR128" +k.name = "p3" +end +do local k = l[137] +k.mode = "i" +k.type = "i128*" +k.name = "p1" +end +do local k = l[138] +k.mode = "i" +k.type = "i8" +k.name = "p4" +end +do local k = l[139] +k.orgnames = l[124] +k.opclass = l[140] +k.operands = l[148] +k.sub = 4 +k.name = "VPCLMULQDQ_XXXI" +end +do local k = l[140] +k.isa = l[126] +k.code = l[141] +k.id = 14 +k.layout = l[142] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{avx, clmul}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-66-0f3a-R2B1S3|{$parm+$sub, !RRMR($p2,$p1), !I8($p4)}|PAR40|{}" +k.prefixclass = l[147] +end +do local k = l[141] +k[1] = "$parm+$sub" +k[2] = "!RRMR($p2,$p1)" +k[3] = "!I8($p4)" +k.id = 57 +k.sig = "{$parm+$sub, !RRMR($p2,$p1), !I8($p4)}" +end +do local k = l[142] +k[1] = l[143] +k[2] = l[144] +k[3] = l[145] +k[4] = l[146] +k.id = 36 +k.sig = "{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}" +end +do local k = l[143] +k[1] = "RegId" +k[2] = "use" +k[3] = "p1" +end +do local k = l[144] +k[1] = "RegId" +k[2] = "def" +k[3] = "p2" +end +do local k = l[145] +k[1] = "RegId" +k[2] = "use" +k[3] = "p3" +end +do local k = l[146] +k[1] = "Imm" +k[2] = "use" +k[3] = "p4" +k[4] = 0 +end +do local k = l[147] +k.extopcode = "0f3a" +k.rex = l[29] +k.id = 81 +k.pref = "66" +k.sig = "vex-66-0f3a-R2B1S3" +end +do local k = l[148] +k[1] = l[149] +k[2] = l[150] +k[3] = l[151] +k[4] = l[152] +k.id = 223 +k.sig = "{{mode = o,type = VR128,name = p2}, {mode = i,type = VR128,name = p3}, {mode = i,type = VR128,name = p1}, {mode = i,type = i8,name = p4}}" +end +do local k = l[149] +k.mode = "o" +k.type = "VR128" +k.name = "p2" +end +do local k = l[150] +k.mode = "i" +k.type = "VR128" +k.name = "p3" +end +do local k = l[151] +k.mode = "i" +k.type = "VR128" +k.name = "p1" +end +do local k = l[152] +k.mode = "i" +k.type = "i8" +k.name = "p4" +end +do local k = l[153] +k.orgnames = l[41] +k.opclass = l[154] +k.operands = l[158] +k.sub = 26 +k.name = "VBROADCASTI128_YM128" +end +do local k = l[154] +k.isa = l[155] +k.code = l[7] +k.id = 35 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{avx2}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f38-128.R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR40|{rmem}" +k.prefixclass = l[156] +end +do local k = l[155] +k[1] = "avx2" +k.id = 29 +k.sig = "{avx2}" +end +do local k = l[156] +k.extopcode = "0f38" +k.rex = l[157] +k.id = 111 +k.pref = "66" +k.sig = "vex-66-0f38-128.R2M1" +end +do local k = l[157] +k.r64 = "0" +k.rm = "p1" +k.reg = "p2" +k.sig = "{r64 = 0,rm = p1,src1 = 0,reg = p2,mode = rm,vex = true,l = 1}" +k.src1 = "0" +k.id = 27 +k.l = "1" +k.vex = true +k.mode = "rm" +end +do local k = l[158] +k[1] = l[159] +k[2] = l[160] +k.id = 255 +k.sig = "{{mode = o,type = VR256,name = p2}, {mode = i,type = i128*,name = p1}}" +end +do local k = l[159] +k.mode = "o" +k.type = "VR256" +k.name = "p2" +end +do local k = l[160] +k.mode = "i" +k.type = "i128*" +k.name = "p1" +end +do local k = l[161] +k.orgnames = l[41] +k.opclass = l[162] +k.operands = l[165] +k.sub = 25 +k.name = "VBROADCASTSD_YX" +end +do local k = l[162] +k.isa = l[155] +k.code = l[22] +k.id = 57 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{avx2}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f38-128.R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR 0|{}" +k.prefixclass = l[163] +end +do local k = l[163] +k.extopcode = "0f38" +k.rex = l[164] +k.id = 102 +k.pref = "66" +k.sig = "vex-66-0f38-128.R2B1" +end +do local k = l[164] +k.r64 = "0" +k.rm = "p1" +k.reg = "p2" +k.sig = "{r64 = 0,rm = p1,src1 = 0,reg = p2,mode = rr,vex = true,l = 1}" +k.src1 = "0" +k.id = 25 +k.l = "1" +k.vex = true +k.mode = "rr" +end +do local k = l[165] +k[1] = l[166] +k[2] = l[167] +k.id = 243 +k.sig = "{{mode = o,type = VR256,name = p2}, {mode = i,type = VR128,name = p1}}" +end +do local k = l[166] +k.mode = "o" +k.type = "VR256" +k.name = "p2" +end +do local k = l[167] +k.mode = "i" +k.type = "VR128" +k.name = "p1" +end +do local k = l[168] +k.orgnames = l[41] +k.opclass = l[169] +k.operands = l[58] +k.sub = 24 +k.name = "VBROADCASTSS_XX" +end +do local k = l[169] +k.isa = l[155] +k.code = l[22] +k.id = 60 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{avx2}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f38-R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR 0|{}" +k.prefixclass = l[170] +end +do local k = l[170] +k.extopcode = "0f38" +k.rex = l[171] +k.id = 80 +k.pref = "66" +k.sig = "vex-66-0f38-R2B1" +end +do local k = l[171] +k.r64 = "0" +k.rm = "p1" +k.reg = "p2" +k.sig = "{r64 = 0,rm = p1,src1 = 0,reg = p2,mode = rr,vex = true,l = 0}" +k.src1 = "0" +k.id = 6 +k.l = "0" +k.vex = true +k.mode = "rr" +end +do local k = l[172] +k.orgnames = l[41] +k.opclass = l[162] +k.operands = l[165] +k.sub = 24 +k.name = "VBROADCASTSS_YX" +end +do local k = l[173] +k.orgnames = l[62] +k.opclass = l[174] +k.operands = l[181] +k.sub = 25 +k.name = "VEXTRACTI128_M128YI" +end +do local k = l[174] +k.isa = l[155] +k.code = l[64] +k.id = 39 +k.layout = l[175] +k.impregs = l[12] +k.flags = l[179] +k.parm = 32 +k.sig = "{avx2}|{{MemId, use, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f3a-128.R2M1|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR20|{wmem}" +k.prefixclass = l[180] +end +do local k = l[175] +k[1] = l[176] +k[2] = l[177] +k[3] = l[178] +k.id = 26 +k.sig = "{{MemId, use, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}" +end +do local k = l[176] +k[1] = "MemId" +k[2] = "use" +k[3] = "p1" +end +do local k = l[177] +k[1] = "RegId" +k[2] = "use" +k[3] = "p2" +end +do local k = l[178] +k[1] = "Imm" +k[2] = "use" +k[3] = "p3" +k[4] = 0 +end +do local k = l[179] +k[1] = "wmem" +k.id = 15 +k.sig = "{wmem}" +end +do local k = l[180] +k.extopcode = "0f3a" +k.rex = l[157] +k.id = 107 +k.pref = "66" +k.sig = "vex-66-0f3a-128.R2M1" +end +do local k = l[181] +k[1] = l[182] +k[2] = l[183] +k[3] = l[184] +k.id = 258 +k.sig = "{{mode = i,type = i128*,name = p1}, {mode = i,type = VR256,name = p2}, {mode = i,type = i8,name = p3}}" +end +do local k = l[182] +k.mode = "i" +k.type = "i128*" +k.name = "p1" +end +do local k = l[183] +k.mode = "i" +k.type = "VR256" +k.name = "p2" +end +do local k = l[184] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[185] +k.orgnames = l[62] +k.opclass = l[186] +k.operands = l[192] +k.sub = 25 +k.name = "VEXTRACTI128_XYI" +end +do local k = l[186] +k.isa = l[155] +k.code = l[76] +k.id = 44 +k.layout = l[187] +k.impregs = l[12] +k.flags = l[27] +k.parm = 32 +k.sig = "{avx2}|{{RegId, def, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f3a-128.R2B1|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR20|{}" +k.prefixclass = l[191] +end +do local k = l[187] +k[1] = l[188] +k[2] = l[189] +k[3] = l[190] +k.id = 15 +k.sig = "{{RegId, def, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}" +end +do local k = l[188] +k[1] = "RegId" +k[2] = "def" +k[3] = "p1" +end +do local k = l[189] +k[1] = "RegId" +k[2] = "use" +k[3] = "p2" +end +do local k = l[190] +k[1] = "Imm" +k[2] = "use" +k[3] = "p3" +k[4] = 0 +end +do local k = l[191] +k.extopcode = "0f3a" +k.rex = l[164] +k.id = 98 +k.pref = "66" +k.sig = "vex-66-0f3a-128.R2B1" +end +do local k = l[192] +k[1] = l[193] +k[2] = l[194] +k[3] = l[195] +k.id = 245 +k.sig = "{{mode = o,type = VR128,name = p1}, {mode = i,type = VR256,name = p2}, {mode = i,type = i8,name = p3}}" +end +do local k = l[193] +k.mode = "o" +k.type = "VR128" +k.name = "p1" +end +do local k = l[194] +k.mode = "i" +k.type = "VR256" +k.name = "p2" +end +do local k = l[195] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[196] +k.orgnames = l[197] +k.opclass = l[198] +k.operands = l[208] +k.sub = 18 +k.name = "VGATHERDPD_XMXX" +end +do local k = l[197] +k[1] = "dst" +k[2] = "src" +k[3] = "ix" +k[4] = "src1" +k.id = 36 +k.sig = "{dst, src, ix, src1}" +end +do local k = l[198] +k.isa = l[155] +k.code = l[199] +k.id = 23 +k.layout = l[200] +k.impregs = l[12] +k.flags = l[205] +k.parm = 128 +k.sig = "{avx2}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {RegId, use, p4}}|{}|vex-66-0f38-WR2M1S3|{$parm+$sub, !RRMMVSIB($p2,$p1,$p4)}|PAR80|{rmem, vsib}" +k.prefixclass = l[206] +end +do local k = l[199] +k[1] = "$parm+$sub" +k[2] = "!RRMMVSIB($p2,$p1,$p4)" +k.id = 61 +k.sig = "{$parm+$sub, !RRMMVSIB($p2,$p1,$p4)}" +end +do local k = l[200] +k[1] = l[201] +k[2] = l[202] +k[3] = l[203] +k[4] = l[204] +k.id = 40 +k.sig = "{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {RegId, use, p4}}" +end +do local k = l[201] +k[1] = "MemId" +k[2] = "use" +k[3] = "p1" +end +do local k = l[202] +k[1] = "RegId" +k[2] = "def" +k[3] = "p2" +end +do local k = l[203] +k[1] = "RegId" +k[2] = "use" +k[3] = "p3" +end +do local k = l[204] +k[1] = "RegId" +k[2] = "use" +k[3] = "p4" +end +do local k = l[205] +k[1] = "rmem" +k[2] = "vsib" +k.id = 32 +k.sig = "{rmem, vsib}" +end +do local k = l[206] +k.extopcode = "0f38" +k.rex = l[207] +k.id = 66 +k.pref = "66" +k.sig = "vex-66-0f38-WR2M1S3" +end +do local k = l[207] +k.r64 = "1" +k.rm = "p1" +k.reg = "p2" +k.sig = "{r64 = 1,rm = p1,src1 = p3,reg = p2,mode = rm,vex = true,l = 0}" +k.src1 = "p3" +k.id = 22 +k.l = "0" +k.vex = true +k.mode = "rm" +end +do local k = l[208] +k[1] = l[209] +k[2] = l[210] +k[3] = l[211] +k[4] = l[212] +k.id = 230 +k.sig = "{{mode = o,type = VR128,name = p2}, {mode = i,type = i128*,name = p1}, {mode = i,type = VR128,name = p4}, {mode = i,type = VR128,name = p3}}" +end +do local k = l[209] +k.mode = "o" +k.type = "VR128" +k.name = "p2" +end +do local k = l[210] +k.mode = "i" +k.type = "i128*" +k.name = "p1" +end +do local k = l[211] +k.mode = "i" +k.type = "VR128" +k.name = "p4" +end +do local k = l[212] +k.mode = "i" +k.type = "VR128" +k.name = "p3" +end +do local k = l[213] +k.orgnames = l[197] +k.opclass = l[214] +k.operands = l[217] +k.sub = 18 +k.name = "VGATHERDPD_YMXY" +end +do local k = l[214] +k.isa = l[155] +k.code = l[199] +k.id = 21 +k.layout = l[200] +k.impregs = l[12] +k.flags = l[205] +k.parm = 128 +k.sig = "{avx2}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {RegId, use, p4}}|{}|vex-66-0f38-128.WR2M1S3|{$parm+$sub, !RRMMVSIB($p2,$p1,$p4)}|PAR80|{rmem, vsib}" +k.prefixclass = l[215] +end +do local k = l[215] +k.extopcode = "0f38" +k.rex = l[216] +k.id = 134 +k.pref = "66" +k.sig = "vex-66-0f38-128.WR2M1S3" +end +do local k = l[216] +k.r64 = "1" +k.rm = "p1" +k.reg = "p2" +k.sig = "{r64 = 1,rm = p1,src1 = p3,reg = p2,mode = rm,vex = true,l = 1}" +k.src1 = "p3" +k.id = 31 +k.l = "1" +k.vex = true +k.mode = "rm" +end +do local k = l[217] +k[1] = l[218] +k[2] = l[219] +k[3] = l[220] +k[4] = l[221] +k.id = 256 +k.sig = "{{mode = o,type = VR256,name = p2}, {mode = i,type = i256*,name = p1}, {mode = i,type = VR256,name = p4}, {mode = i,type = VR256,name = p3}}" +end +do local k = l[218] +k.mode = "o" +k.type = "VR256" +k.name = "p2" +end +do local k = l[219] +k.mode = "i" +k.type = "i256*" +k.name = "p1" +end +do local k = l[220] +k.mode = "i" +k.type = "VR256" +k.name = "p4" +end +do local k = l[221] +k.mode = "i" +k.type = "VR256" +k.name = "p3" +end +do local k = l[222] +k.orgnames = l[197] +k.opclass = l[223] +k.operands = l[208] +k.sub = 18 +k.name = "VGATHERDPS_XMXX" +end +do local k = l[223] +k.isa = l[155] +k.code = l[199] +k.id = 22 +k.layout = l[200] +k.impregs = l[12] +k.flags = l[205] +k.parm = 128 +k.sig = "{avx2}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {RegId, use, p4}}|{}|vex-66-0f38-R2M1S3|{$parm+$sub, !RRMMVSIB($p2,$p1,$p4)}|PAR80|{rmem, vsib}" +k.prefixclass = l[14] +end +do local k = l[224] +k.orgnames = l[197] +k.opclass = l[225] +k.operands = l[217] +k.sub = 18 +k.name = "VGATHERDPS_YMYY" +end +do local k = l[225] +k.isa = l[155] +k.code = l[199] +k.id = 20 +k.layout = l[200] +k.impregs = l[12] +k.flags = l[205] +k.parm = 128 +k.sig = "{avx2}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {RegId, use, p4}}|{}|vex-66-0f38-128.R2M1S3|{$parm+$sub, !RRMMVSIB($p2,$p1,$p4)}|PAR80|{rmem, vsib}" +k.prefixclass = l[226] +end +do local k = l[226] +k.extopcode = "0f38" +k.rex = l[227] +k.id = 112 +k.pref = "66" +k.sig = "vex-66-0f38-128.R2M1S3" +end +do local k = l[227] +k.r64 = "0" +k.rm = "p1" +k.reg = "p2" +k.sig = "{r64 = 0,rm = p1,src1 = p3,reg = p2,mode = rm,vex = true,l = 1}" +k.src1 = "p3" +k.id = 28 +k.l = "1" +k.vex = true +k.mode = "rm" +end +do local k = l[228] +k.orgnames = l[197] +k.opclass = l[198] +k.operands = l[208] +k.sub = 19 +k.name = "VGATHERQPD_XMXX" +end +do local k = l[229] +k.orgnames = l[197] +k.opclass = l[214] +k.operands = l[217] +k.sub = 19 +k.name = "VGATHERQPD_YMYY" +end +do local k = l[230] +k.orgnames = l[197] +k.opclass = l[223] +k.operands = l[208] +k.sub = 19 +k.name = "VGATHERQPS_XMXX" +end +do local k = l[231] +k.orgnames = l[197] +k.opclass = l[225] +k.operands = l[217] +k.sub = 19 +k.name = "VGATHERQPS_XMYX" +end +do local k = l[232] +k.orgnames = l[124] +k.opclass = l[233] +k.operands = l[235] +k.sub = 24 +k.name = "VINSERTI128_YYM128I" +end +do local k = l[233] +k.isa = l[155] +k.code = l[127] +k.id = 16 +k.layout = l[128] +k.impregs = l[12] +k.flags = l[13] +k.parm = 32 +k.sig = "{avx2}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-66-0f3a-128.R2M1S3|{$parm+$sub, !RRMM($p2,$p1), !I8($p4)}|PAR20|{rmem}" +k.prefixclass = l[234] +end +do local k = l[234] +k.extopcode = "0f3a" +k.rex = l[227] +k.id = 113 +k.pref = "66" +k.sig = "vex-66-0f3a-128.R2M1S3" +end +do local k = l[235] +k[1] = l[236] +k[2] = l[237] +k[3] = l[238] +k[4] = l[239] +k.id = 262 +k.sig = "{{mode = o,type = VR256,name = p2}, {mode = i,type = VR256,name = p3}, {mode = i,type = i128*,name = p1}, {mode = i,type = i8,name = p4}}" +end +do local k = l[236] +k.mode = "o" +k.type = "VR256" +k.name = "p2" +end +do local k = l[237] +k.mode = "i" +k.type = "VR256" +k.name = "p3" +end +do local k = l[238] +k.mode = "i" +k.type = "i128*" +k.name = "p1" +end +do local k = l[239] +k.mode = "i" +k.type = "i8" +k.name = "p4" +end +do local k = l[240] +k.orgnames = l[124] +k.opclass = l[241] +k.operands = l[244] +k.sub = 24 +k.name = "VINSERTI128_YYXI" +end +do local k = l[241] +k.isa = l[155] +k.code = l[141] +k.id = 46 +k.layout = l[142] +k.impregs = l[12] +k.flags = l[27] +k.parm = 32 +k.sig = "{avx2}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-66-0f3a-128.R2B1S3|{$parm+$sub, !RRMR($p2,$p1), !I8($p4)}|PAR20|{}" +k.prefixclass = l[242] +end +do local k = l[242] +k.extopcode = "0f3a" +k.rex = l[243] +k.id = 103 +k.pref = "66" +k.sig = "vex-66-0f3a-128.R2B1S3" +end +do local k = l[243] +k.r64 = "0" +k.rm = "p1" +k.reg = "p2" +k.sig = "{r64 = 0,rm = p1,src1 = p3,reg = p2,mode = rr,vex = true,l = 1}" +k.src1 = "p3" +k.id = 26 +k.l = "1" +k.vex = true +k.mode = "rr" +end +do local k = l[244] +k[1] = l[245] +k[2] = l[246] +k[3] = l[247] +k[4] = l[248] +k.id = 248 +k.sig = "{{mode = o,type = VR256,name = p2}, {mode = i,type = VR256,name = p3}, {mode = i,type = VR128,name = p1}, {mode = i,type = i8,name = p4}}" +end +do local k = l[245] +k.mode = "o" +k.type = "VR256" +k.name = "p2" +end +do local k = l[246] +k.mode = "i" +k.type = "VR256" +k.name = "p3" +end +do local k = l[247] +k.mode = "i" +k.type = "VR128" +k.name = "p1" +end +do local k = l[248] +k.mode = "i" +k.type = "i8" +k.name = "p4" +end +do local k = l[249] +k.orgnames = l[124] +k.opclass = l[250] +k.operands = l[134] +k.sub = 2 +k.name = "VPBLENDD_XXMI" +end +do local k = l[250] +k.isa = l[155] +k.code = l[127] +k.id = 19 +k.layout = l[128] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{avx2}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-66-0f3a-WR2M1S3|{$parm+$sub, !RRMM($p2,$p1), !I8($p4)}|PAR 0|{rmem}" +k.prefixclass = l[251] +end +do local k = l[251] +k.extopcode = "0f3a" +k.rex = l[207] +k.id = 145 +k.pref = "66" +k.sig = "vex-66-0f3a-WR2M1S3" +end +do local k = l[252] +k.orgnames = l[124] +k.opclass = l[253] +k.operands = l[148] +k.sub = 2 +k.name = "VPBLENDD_XXXI" +end +do local k = l[253] +k.isa = l[155] +k.code = l[141] +k.id = 49 +k.layout = l[142] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{avx2}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-66-0f3a-WR2B1S3|{$parm+$sub, !RRMR($p2,$p1), !I8($p4)}|PAR 0|{}" +k.prefixclass = l[254] +end +do local k = l[254] +k.extopcode = "0f3a" +k.rex = l[255] +k.id = 141 +k.pref = "66" +k.sig = "vex-66-0f3a-WR2B1S3" +end +do local k = l[255] +k.r64 = "1" +k.rm = "p1" +k.reg = "p2" +k.sig = "{r64 = 1,rm = p1,src1 = p3,reg = p2,mode = rr,vex = true,l = 0}" +k.src1 = "p3" +k.id = 11 +k.l = "0" +k.vex = true +k.mode = "rr" +end +do local k = l[256] +k.orgnames = l[124] +k.opclass = l[257] +k.operands = l[259] +k.sub = 2 +k.name = "VPBLENDD_YYMI" +end +do local k = l[257] +k.isa = l[155] +k.code = l[127] +k.id = 18 +k.layout = l[128] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{avx2}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-66-0f3a-128.WR2M1S3|{$parm+$sub, !RRMM($p2,$p1), !I8($p4)}|PAR 0|{rmem}" +k.prefixclass = l[258] +end +do local k = l[258] +k.extopcode = "0f3a" +k.rex = l[216] +k.id = 151 +k.pref = "66" +k.sig = "vex-66-0f3a-128.WR2M1S3" +end +do local k = l[259] +k[1] = l[260] +k[2] = l[261] +k[3] = l[262] +k[4] = l[263] +k.id = 252 +k.sig = "{{mode = o,type = VR256,name = p2}, {mode = i,type = VR256,name = p3}, {mode = i,type = i256*,name = p1}, {mode = i,type = i8,name = p4}}" +end +do local k = l[260] +k.mode = "o" +k.type = "VR256" +k.name = "p2" +end +do local k = l[261] +k.mode = "i" +k.type = "VR256" +k.name = "p3" +end +do local k = l[262] +k.mode = "i" +k.type = "i256*" +k.name = "p1" +end +do local k = l[263] +k.mode = "i" +k.type = "i8" +k.name = "p4" +end +do local k = l[264] +k.orgnames = l[124] +k.opclass = l[265] +k.operands = l[268] +k.sub = 2 +k.name = "VPBLENDD_YYYI" +end +do local k = l[265] +k.isa = l[155] +k.code = l[141] +k.id = 48 +k.layout = l[142] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{avx2}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-66-0f3a-128.WR2B1S3|{$parm+$sub, !RRMR($p2,$p1), !I8($p4)}|PAR 0|{}" +k.prefixclass = l[266] +end +do local k = l[266] +k.extopcode = "0f3a" +k.rex = l[267] +k.id = 150 +k.pref = "66" +k.sig = "vex-66-0f3a-128.WR2B1S3" +end +do local k = l[267] +k.r64 = "1" +k.rm = "p1" +k.reg = "p2" +k.sig = "{r64 = 1,rm = p1,src1 = p3,reg = p2,mode = rr,vex = true,l = 1}" +k.src1 = "p3" +k.id = 29 +k.l = "1" +k.vex = true +k.mode = "rr" +end +do local k = l[268] +k[1] = l[269] +k[2] = l[270] +k[3] = l[271] +k[4] = l[272] +k.id = 240 +k.sig = "{{mode = o,type = VR256,name = p2}, {mode = i,type = VR256,name = p3}, {mode = i,type = VR256,name = p1}, {mode = i,type = i8,name = p4}}" +end +do local k = l[269] +k.mode = "o" +k.type = "VR256" +k.name = "p2" +end +do local k = l[270] +k.mode = "i" +k.type = "VR256" +k.name = "p3" +end +do local k = l[271] +k.mode = "i" +k.type = "VR256" +k.name = "p1" +end +do local k = l[272] +k.mode = "i" +k.type = "i8" +k.name = "p4" +end +do local k = l[273] +k.orgnames = l[274] +k.opclass = l[275] +k.operands = l[277] +k.sub = 12 +k.name = "VPBLENDVB_XXMX" +end +do local k = l[274] +k[1] = "dst" +k[2] = "src1" +k[3] = "src" +k[4] = "msk" +k.id = 35 +k.sig = "{dst, src1, src, msk}" +end +do local k = l[275] +k.isa = l[155] +k.code = l[276] +k.id = 25 +k.layout = l[200] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{avx2}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {RegId, use, p4}}|{}|vex-66-0f3a-WR2M1S3|{$parm+$sub, !RRMM($p2,$p1), !I8($p4<<4)}|PAR40|{rmem}" +k.prefixclass = l[251] +end +do local k = l[276] +k[1] = "$parm+$sub" +k[2] = "!RRMM($p2,$p1)" +k[3] = "!I8($p4<<4)" +k.id = 71 +k.sig = "{$parm+$sub, !RRMM($p2,$p1), !I8($p4<<4)}" +end +do local k = l[277] +k[1] = l[278] +k[2] = l[279] +k[3] = l[280] +k[4] = l[281] +k.id = 232 +k.sig = "{{mode = o,type = VR128,name = p2}, {mode = i,type = VR128,name = p3}, {mode = i,type = i128*,name = p1}, {mode = i,type = VR128,name = p4}}" +end +do local k = l[278] +k.mode = "o" +k.type = "VR128" +k.name = "p2" +end +do local k = l[279] +k.mode = "i" +k.type = "VR128" +k.name = "p3" +end +do local k = l[280] +k.mode = "i" +k.type = "i128*" +k.name = "p1" +end +do local k = l[281] +k.mode = "i" +k.type = "VR128" +k.name = "p4" +end +do local k = l[282] +k.orgnames = l[274] +k.opclass = l[283] +k.operands = l[290] +k.sub = 12 +k.name = "VPBLENDVB_XXXX" +end +do local k = l[283] +k.isa = l[155] +k.code = l[284] +k.id = 51 +k.layout = l[285] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{avx2}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {RegId, use, p4}}|{}|vex-66-0f3a-WR2B1S3|{$parm+$sub, !RRMR($p2,$p1), !I8($p4<<4)}|PAR40|{}" +k.prefixclass = l[254] +end +do local k = l[284] +k[1] = "$parm+$sub" +k[2] = "!RRMR($p2,$p1)" +k[3] = "!I8($p4<<4)" +k.id = 69 +k.sig = "{$parm+$sub, !RRMR($p2,$p1), !I8($p4<<4)}" +end +do local k = l[285] +k[1] = l[286] +k[2] = l[287] +k[3] = l[288] +k[4] = l[289] +k.id = 37 +k.sig = "{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {RegId, use, p4}}" +end +do local k = l[286] +k[1] = "RegId" +k[2] = "use" +k[3] = "p1" +end +do local k = l[287] +k[1] = "RegId" +k[2] = "def" +k[3] = "p2" +end +do local k = l[288] +k[1] = "RegId" +k[2] = "use" +k[3] = "p3" +end +do local k = l[289] +k[1] = "RegId" +k[2] = "use" +k[3] = "p4" +end +do local k = l[290] +k[1] = l[291] +k[2] = l[292] +k[3] = l[293] +k[4] = l[294] +k.id = 224 +k.sig = "{{mode = o,type = VR128,name = p2}, {mode = i,type = VR128,name = p3}, {mode = i,type = VR128,name = p1}, {mode = i,type = VR128,name = p4}}" +end +do local k = l[291] +k.mode = "o" +k.type = "VR128" +k.name = "p2" +end +do local k = l[292] +k.mode = "i" +k.type = "VR128" +k.name = "p3" +end +do local k = l[293] +k.mode = "i" +k.type = "VR128" +k.name = "p1" +end +do local k = l[294] +k.mode = "i" +k.type = "VR128" +k.name = "p4" +end +do local k = l[295] +k.orgnames = l[274] +k.opclass = l[296] +k.operands = l[297] +k.sub = 12 +k.name = "VPBLENDVB_YYMY" +end +do local k = l[296] +k.isa = l[155] +k.code = l[276] +k.id = 24 +k.layout = l[200] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{avx2}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {RegId, use, p4}}|{}|vex-66-0f3a-128.WR2M1S3|{$parm+$sub, !RRMM($p2,$p1), !I8($p4<<4)}|PAR40|{rmem}" +k.prefixclass = l[258] +end +do local k = l[297] +k[1] = l[298] +k[2] = l[299] +k[3] = l[300] +k[4] = l[301] +k.id = 259 +k.sig = "{{mode = o,type = VR256,name = p2}, {mode = i,type = VR256,name = p3}, {mode = i,type = i256*,name = p1}, {mode = i,type = VR256,name = p4}}" +end +do local k = l[298] +k.mode = "o" +k.type = "VR256" +k.name = "p2" +end +do local k = l[299] +k.mode = "i" +k.type = "VR256" +k.name = "p3" +end +do local k = l[300] +k.mode = "i" +k.type = "i256*" +k.name = "p1" +end +do local k = l[301] +k.mode = "i" +k.type = "VR256" +k.name = "p4" +end +do local k = l[302] +k.orgnames = l[274] +k.opclass = l[303] +k.operands = l[304] +k.sub = 12 +k.name = "VPBLENDVB_YYYY" +end +do local k = l[303] +k.isa = l[155] +k.code = l[284] +k.id = 50 +k.layout = l[285] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{avx2}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {RegId, use, p4}}|{}|vex-66-0f3a-128.WR2B1S3|{$parm+$sub, !RRMR($p2,$p1), !I8($p4<<4)}|PAR40|{}" +k.prefixclass = l[266] +end +do local k = l[304] +k[1] = l[305] +k[2] = l[306] +k[3] = l[307] +k[4] = l[308] +k.id = 246 +k.sig = "{{mode = o,type = VR256,name = p2}, {mode = i,type = VR256,name = p3}, {mode = i,type = VR256,name = p1}, {mode = i,type = VR256,name = p4}}" +end +do local k = l[305] +k.mode = "o" +k.type = "VR256" +k.name = "p2" +end +do local k = l[306] +k.mode = "i" +k.type = "VR256" +k.name = "p3" +end +do local k = l[307] +k.mode = "i" +k.type = "VR256" +k.name = "p1" +end +do local k = l[308] +k.mode = "i" +k.type = "VR256" +k.name = "p4" +end +do local k = l[309] +k.orgnames = l[41] +k.opclass = l[310] +k.operands = l[313] +k.sub = 24 +k.name = "VPBROADCASTB_XM8" +end +do local k = l[310] +k.isa = l[155] +k.code = l[7] +k.id = 38 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 96 +k.sig = "{avx2}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f38-R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR60|{rmem}" +k.prefixclass = l[311] +end +do local k = l[311] +k.extopcode = "0f38" +k.rex = l[312] +k.id = 91 +k.pref = "66" +k.sig = "vex-66-0f38-R2M1" +end +do local k = l[312] +k.r64 = "0" +k.rm = "p1" +k.reg = "p2" +k.sig = "{r64 = 0,rm = p1,src1 = 0,reg = p2,mode = rm,vex = true,l = 0}" +k.src1 = "0" +k.id = 19 +k.l = "0" +k.vex = true +k.mode = "rm" +end +do local k = l[313] +k[1] = l[314] +k[2] = l[315] +k.id = 300 +k.sig = "{{mode = o,type = VR128,name = p2}, {mode = i,type = i8*,name = p1}}" +end +do local k = l[314] +k.mode = "o" +k.type = "VR128" +k.name = "p2" +end +do local k = l[315] +k.mode = "i" +k.type = "i8*" +k.name = "p1" +end +do local k = l[316] +k.orgnames = l[41] +k.opclass = l[317] +k.operands = l[58] +k.sub = 24 +k.name = "VPBROADCASTB_XX" +end +do local k = l[317] +k.isa = l[155] +k.code = l[22] +k.id = 62 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 96 +k.sig = "{avx2}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f38-R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR60|{}" +k.prefixclass = l[170] +end +do local k = l[318] +k.orgnames = l[41] +k.opclass = l[319] +k.operands = l[320] +k.sub = 24 +k.name = "VPBROADCASTB_YM8" +end +do local k = l[319] +k.isa = l[155] +k.code = l[7] +k.id = 36 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 96 +k.sig = "{avx2}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f38-128.R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR60|{rmem}" +k.prefixclass = l[156] +end +do local k = l[320] +k[1] = l[321] +k[2] = l[322] +k.id = 307 +k.sig = "{{mode = o,type = VR256,name = p2}, {mode = i,type = i8*,name = p1}}" +end +do local k = l[321] +k.mode = "o" +k.type = "VR256" +k.name = "p2" +end +do local k = l[322] +k.mode = "i" +k.type = "i8*" +k.name = "p1" +end +do local k = l[323] +k.orgnames = l[41] +k.opclass = l[324] +k.operands = l[165] +k.sub = 24 +k.name = "VPBROADCASTB_YX" +end +do local k = l[324] +k.isa = l[155] +k.code = l[22] +k.id = 59 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 96 +k.sig = "{avx2}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f38-128.R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR60|{}" +k.prefixclass = l[163] +end +do local k = l[325] +k.orgnames = l[41] +k.opclass = l[326] +k.operands = l[327] +k.sub = 24 +k.name = "VPBROADCASTD_XM32" +end +do local k = l[326] +k.isa = l[155] +k.code = l[7] +k.id = 37 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{avx2}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f38-R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR40|{rmem}" +k.prefixclass = l[311] +end +do local k = l[327] +k[1] = l[328] +k[2] = l[329] +k.id = 215 +k.sig = "{{mode = o,type = VR128,name = p2}, {mode = i,type = i32*,name = p1}}" +end +do local k = l[328] +k.mode = "o" +k.type = "VR128" +k.name = "p2" +end +do local k = l[329] +k.mode = "i" +k.type = "i32*" +k.name = "p1" +end +do local k = l[330] +k.orgnames = l[41] +k.opclass = l[331] +k.operands = l[58] +k.sub = 24 +k.name = "VPBROADCASTD_XX" +end +do local k = l[331] +k.isa = l[155] +k.code = l[22] +k.id = 61 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{avx2}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f38-R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR40|{}" +k.prefixclass = l[170] +end +do local k = l[332] +k.orgnames = l[41] +k.opclass = l[154] +k.operands = l[333] +k.sub = 24 +k.name = "VPBROADCASTD_YM32" +end +do local k = l[333] +k[1] = l[334] +k[2] = l[335] +k.id = 257 +k.sig = "{{mode = o,type = VR256,name = p2}, {mode = i,type = i32*,name = p1}}" +end +do local k = l[334] +k.mode = "o" +k.type = "VR256" +k.name = "p2" +end +do local k = l[335] +k.mode = "i" +k.type = "i32*" +k.name = "p1" +end +do local k = l[336] +k.orgnames = l[41] +k.opclass = l[337] +k.operands = l[165] +k.sub = 24 +k.name = "VPBROADCASTD_YX" +end +do local k = l[337] +k.isa = l[155] +k.code = l[22] +k.id = 58 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{avx2}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f38-128.R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR40|{}" +k.prefixclass = l[163] +end +do local k = l[338] +k.orgnames = l[41] +k.opclass = l[326] +k.operands = l[339] +k.sub = 25 +k.name = "VPBROADCASTQ_XM64" +end +do local k = l[339] +k[1] = l[340] +k[2] = l[341] +k.id = 212 +k.sig = "{{mode = o,type = VR128,name = p2}, {mode = i,type = i64*,name = p1}}" +end +do local k = l[340] +k.mode = "o" +k.type = "VR128" +k.name = "p2" +end +do local k = l[341] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[342] +k.orgnames = l[41] +k.opclass = l[331] +k.operands = l[58] +k.sub = 25 +k.name = "VPBROADCASTQ_XX" +end +do local k = l[343] +k.orgnames = l[41] +k.opclass = l[154] +k.operands = l[344] +k.sub = 25 +k.name = "VPBROADCASTQ_YM64" +end +do local k = l[344] +k[1] = l[345] +k[2] = l[346] +k.id = 270 +k.sig = "{{mode = o,type = VR256,name = p2}, {mode = i,type = i64*,name = p1}}" +end +do local k = l[345] +k.mode = "o" +k.type = "VR256" +k.name = "p2" +end +do local k = l[346] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[347] +k.orgnames = l[41] +k.opclass = l[337] +k.operands = l[165] +k.sub = 25 +k.name = "VPBROADCASTQ_YX" +end +do local k = l[348] +k.orgnames = l[41] +k.opclass = l[310] +k.operands = l[349] +k.sub = 25 +k.name = "VPBROADCASTW_XM16" +end +do local k = l[349] +k[1] = l[350] +k[2] = l[351] +k.id = 287 +k.sig = "{{mode = o,type = VR128,name = p2}, {mode = i,type = i16*,name = p1}}" +end +do local k = l[350] +k.mode = "o" +k.type = "VR128" +k.name = "p2" +end +do local k = l[351] +k.mode = "i" +k.type = "i16*" +k.name = "p1" +end +do local k = l[352] +k.orgnames = l[41] +k.opclass = l[317] +k.operands = l[58] +k.sub = 25 +k.name = "VPBROADCASTW_XX" +end +do local k = l[353] +k.orgnames = l[41] +k.opclass = l[319] +k.operands = l[354] +k.sub = 25 +k.name = "VPBROADCASTW_YM16" +end +do local k = l[354] +k[1] = l[355] +k[2] = l[356] +k.id = 308 +k.sig = "{{mode = o,type = VR256,name = p2}, {mode = i,type = i16*,name = p1}}" +end +do local k = l[355] +k.mode = "o" +k.type = "VR256" +k.name = "p2" +end +do local k = l[356] +k.mode = "i" +k.type = "i16*" +k.name = "p1" +end +do local k = l[357] +k.orgnames = l[41] +k.opclass = l[324] +k.operands = l[165] +k.sub = 25 +k.name = "VPBROADCASTW_YX" +end +do local k = l[358] +k.orgnames = l[124] +k.opclass = l[359] +k.operands = l[259] +k.sub = 6 +k.name = "VPERM2I128_YYMI" +end +do local k = l[359] +k.isa = l[155] +k.code = l[127] +k.id = 17 +k.layout = l[128] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{avx2}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-66-0f3a-128.R2M1S3|{$parm+$sub, !RRMM($p2,$p1), !I8($p4)}|PAR40|{rmem}" +k.prefixclass = l[234] +end +do local k = l[360] +k.orgnames = l[124] +k.opclass = l[361] +k.operands = l[268] +k.sub = 6 +k.name = "VPERM2I128_YYYI" +end +do local k = l[361] +k.isa = l[155] +k.code = l[141] +k.id = 47 +k.layout = l[142] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{avx2}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-66-0f3a-128.R2B1S3|{$parm+$sub, !RRMR($p2,$p1), !I8($p4)}|PAR40|{}" +k.prefixclass = l[242] +end +do local k = l[362] +k.orgnames = l[62] +k.opclass = l[363] +k.operands = l[366] +k.sub = 1 +k.name = "VPERMPD_YMI" +end +do local k = l[363] +k.isa = l[155] +k.code = l[64] +k.id = 15 +k.layout = l[65] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{avx2}|{{MemId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f3a-128.WR2M1|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR 0|{rmem}" +k.prefixclass = l[364] +end +do local k = l[364] +k.extopcode = "0f3a" +k.rex = l[365] +k.id = 135 +k.pref = "66" +k.sig = "vex-66-0f3a-128.WR2M1" +end +do local k = l[365] +k.r64 = "1" +k.rm = "p1" +k.reg = "p2" +k.sig = "{r64 = 1,rm = p1,src1 = 0,reg = p2,mode = rm,vex = true,l = 1}" +k.src1 = "0" +k.id = 32 +k.l = "1" +k.vex = true +k.mode = "rm" +end +do local k = l[366] +k[1] = l[367] +k[2] = l[368] +k[3] = l[369] +k.id = 253 +k.sig = "{{mode = o,type = VR256,name = p2}, {mode = i,type = i256*,name = p1}, {mode = i,type = i8,name = p3}}" +end +do local k = l[367] +k.mode = "o" +k.type = "VR256" +k.name = "p2" +end +do local k = l[368] +k.mode = "i" +k.type = "i256*" +k.name = "p1" +end +do local k = l[369] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[370] +k.orgnames = l[62] +k.opclass = l[371] +k.operands = l[374] +k.sub = 1 +k.name = "VPERMPD_YYI" +end +do local k = l[371] +k.isa = l[155] +k.code = l[76] +k.id = 45 +k.layout = l[77] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{avx2}|{{RegId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f3a-128.WR2B1|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR 0|{}" +k.prefixclass = l[372] +end +do local k = l[372] +k.extopcode = "0f3a" +k.rex = l[373] +k.id = 131 +k.pref = "66" +k.sig = "vex-66-0f3a-128.WR2B1" +end +do local k = l[373] +k.r64 = "1" +k.rm = "p1" +k.reg = "p2" +k.sig = "{r64 = 1,rm = p1,src1 = 0,reg = p2,mode = rr,vex = true,l = 1}" +k.src1 = "0" +k.id = 30 +k.l = "1" +k.vex = true +k.mode = "rr" +end +do local k = l[374] +k[1] = l[375] +k[2] = l[376] +k[3] = l[377] +k.id = 241 +k.sig = "{{mode = o,type = VR256,name = p2}, {mode = i,type = VR256,name = p1}, {mode = i,type = i8,name = p3}}" +end +do local k = l[375] +k.mode = "o" +k.type = "VR256" +k.name = "p2" +end +do local k = l[376] +k.mode = "i" +k.type = "VR256" +k.name = "p1" +end +do local k = l[377] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[378] +k.orgnames = l[4] +k.opclass = l[379] +k.operands = l[380] +k.sub = 22 +k.name = "VPERMPS_YYM" +end +do local k = l[379] +k.isa = l[155] +k.code = l[7] +k.id = 26 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{avx2}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-128.R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR 0|{rmem}" +k.prefixclass = l[226] +end +do local k = l[380] +k[1] = l[381] +k[2] = l[382] +k[3] = l[383] +k.id = 251 +k.sig = "{{mode = o,type = VR256,name = p2}, {mode = i,type = VR256,name = p3}, {mode = i,type = i256*,name = p1}}" +end +do local k = l[381] +k.mode = "o" +k.type = "VR256" +k.name = "p2" +end +do local k = l[382] +k.mode = "i" +k.type = "VR256" +k.name = "p3" +end +do local k = l[383] +k.mode = "i" +k.type = "i256*" +k.name = "p1" +end +do local k = l[384] +k.orgnames = l[4] +k.opclass = l[385] +k.operands = l[387] +k.sub = 22 +k.name = "VPERMPS_YYY" +end +do local k = l[385] +k.isa = l[155] +k.code = l[22] +k.id = 52 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{avx2}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-128.R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PAR 0|{}" +k.prefixclass = l[386] +end +do local k = l[386] +k.extopcode = "0f38" +k.rex = l[243] +k.id = 104 +k.pref = "66" +k.sig = "vex-66-0f38-128.R2B1S3" +end +do local k = l[387] +k[1] = l[388] +k[2] = l[389] +k[3] = l[390] +k.id = 239 +k.sig = "{{mode = o,type = VR256,name = p2}, {mode = i,type = VR256,name = p3}, {mode = i,type = VR256,name = p1}}" +end +do local k = l[388] +k.mode = "o" +k.type = "VR256" +k.name = "p2" +end +do local k = l[389] +k.mode = "i" +k.type = "VR256" +k.name = "p3" +end +do local k = l[390] +k.mode = "i" +k.type = "VR256" +k.name = "p1" +end +do local k = l[391] +k.orgnames = l[62] +k.opclass = l[363] +k.operands = l[366] +k.sub = 0 +k.name = "VPERMQ_YMI" +end +do local k = l[392] +k.orgnames = l[62] +k.opclass = l[371] +k.operands = l[374] +k.sub = 0 +k.name = "VPERMQ_YYI" +end +do local k = l[393] +k.orgnames = l[197] +k.opclass = l[223] +k.operands = l[208] +k.sub = 16 +k.name = "VPGATHERDD_XMXX" +end +do local k = l[394] +k.orgnames = l[197] +k.opclass = l[225] +k.operands = l[217] +k.sub = 16 +k.name = "VPGATHERDD_YMYY" +end +do local k = l[395] +k.orgnames = l[197] +k.opclass = l[198] +k.operands = l[208] +k.sub = 16 +k.name = "VPGATHERDQ_XMXX" +end +do local k = l[396] +k.orgnames = l[197] +k.opclass = l[214] +k.operands = l[397] +k.sub = 16 +k.name = "VPGATHERDQ_YMXY" +end +do local k = l[397] +k[1] = l[398] +k[2] = l[399] +k[3] = l[400] +k[4] = l[401] +k.id = 304 +k.sig = "{{mode = o,type = VR256,name = p2}, {mode = i,type = i256*,name = p1}, {mode = i,type = VR128,name = p4}, {mode = i,type = VR256,name = p3}}" +end +do local k = l[398] +k.mode = "o" +k.type = "VR256" +k.name = "p2" +end +do local k = l[399] +k.mode = "i" +k.type = "i256*" +k.name = "p1" +end +do local k = l[400] +k.mode = "i" +k.type = "VR128" +k.name = "p4" +end +do local k = l[401] +k.mode = "i" +k.type = "VR256" +k.name = "p3" +end +do local k = l[402] +k.orgnames = l[197] +k.opclass = l[223] +k.operands = l[208] +k.sub = 17 +k.name = "VPGATHERQD_XMXX" +end +do local k = l[403] +k.orgnames = l[197] +k.opclass = l[225] +k.operands = l[404] +k.sub = 17 +k.name = "VPGATHERQD_XMYX" +end +do local k = l[404] +k[1] = l[405] +k[2] = l[406] +k[3] = l[407] +k[4] = l[408] +k.id = 305 +k.sig = "{{mode = o,type = VR128,name = p2}, {mode = i,type = i256*,name = p1}, {mode = i,type = VR256,name = p4}, {mode = i,type = VR128,name = p3}}" +end +do local k = l[405] +k.mode = "o" +k.type = "VR128" +k.name = "p2" +end +do local k = l[406] +k.mode = "i" +k.type = "i256*" +k.name = "p1" +end +do local k = l[407] +k.mode = "i" +k.type = "VR256" +k.name = "p4" +end +do local k = l[408] +k.mode = "i" +k.type = "VR128" +k.name = "p3" +end +do local k = l[409] +k.orgnames = l[197] +k.opclass = l[198] +k.operands = l[208] +k.sub = 17 +k.name = "VPGATHERQQ_XMXX" +end +do local k = l[410] +k.orgnames = l[197] +k.opclass = l[214] +k.operands = l[217] +k.sub = 17 +k.name = "VPGATHERQQ_YMYY" +end +do local k = l[411] +k.orgnames = l[4] +k.opclass = l[412] +k.operands = l[417] +k.sub = 14 +k.name = "VPMASKMOVD_MXX" +end +do local k = l[412] +k.isa = l[155] +k.code = l[7] +k.id = 42 +k.layout = l[413] +k.impregs = l[12] +k.flags = l[179] +k.parm = 128 +k.sig = "{avx2}|{{MemId, use, p1}, {RegId, use, p2}, {RegId, use, p3}}|{}|vex-66-0f38-R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR80|{wmem}" +k.prefixclass = l[14] +end +do local k = l[413] +k[1] = l[414] +k[2] = l[415] +k[3] = l[416] +k.id = 43 +k.sig = "{{MemId, use, p1}, {RegId, use, p2}, {RegId, use, p3}}" +end +do local k = l[414] +k[1] = "MemId" +k[2] = "use" +k[3] = "p1" +end +do local k = l[415] +k[1] = "RegId" +k[2] = "use" +k[3] = "p2" +end +do local k = l[416] +k[1] = "RegId" +k[2] = "use" +k[3] = "p3" +end +do local k = l[417] +k[1] = l[418] +k[2] = l[419] +k[3] = l[420] +k.id = 299 +k.sig = "{{mode = i,type = i128*,name = p1}, {mode = i,type = VR128,name = p3}, {mode = i,type = VR128,name = p2}}" +end +do local k = l[418] +k.mode = "i" +k.type = "i128*" +k.name = "p1" +end +do local k = l[419] +k.mode = "i" +k.type = "VR128" +k.name = "p3" +end +do local k = l[420] +k.mode = "i" +k.type = "VR128" +k.name = "p2" +end +do local k = l[421] +k.orgnames = l[4] +k.opclass = l[422] +k.operands = l[423] +k.sub = 14 +k.name = "VPMASKMOVD_MYY" +end +do local k = l[422] +k.isa = l[155] +k.code = l[7] +k.id = 40 +k.layout = l[413] +k.impregs = l[12] +k.flags = l[179] +k.parm = 128 +k.sig = "{avx2}|{{MemId, use, p1}, {RegId, use, p2}, {RegId, use, p3}}|{}|vex-66-0f38-128.R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR80|{wmem}" +k.prefixclass = l[226] +end +do local k = l[423] +k[1] = l[424] +k[2] = l[425] +k[3] = l[426] +k.id = 306 +k.sig = "{{mode = i,type = i256*,name = p1}, {mode = i,type = VR256,name = p3}, {mode = i,type = VR256,name = p2}}" +end +do local k = l[424] +k.mode = "i" +k.type = "i256*" +k.name = "p1" +end +do local k = l[425] +k.mode = "i" +k.type = "VR256" +k.name = "p3" +end +do local k = l[426] +k.mode = "i" +k.type = "VR256" +k.name = "p2" +end +do local k = l[427] +k.orgnames = l[4] +k.opclass = l[428] +k.operands = l[16] +k.sub = 12 +k.name = "VPMASKMOVD_XXM" +end +do local k = l[428] +k.isa = l[155] +k.code = l[7] +k.id = 32 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 128 +k.sig = "{avx2}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR80|{rmem}" +k.prefixclass = l[14] +end +do local k = l[429] +k.orgnames = l[4] +k.opclass = l[430] +k.operands = l[380] +k.sub = 12 +k.name = "VPMASKMOVD_YYM" +end +do local k = l[430] +k.isa = l[155] +k.code = l[7] +k.id = 28 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 128 +k.sig = "{avx2}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-128.R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR80|{rmem}" +k.prefixclass = l[226] +end +do local k = l[431] +k.orgnames = l[4] +k.opclass = l[432] +k.operands = l[417] +k.sub = 14 +k.name = "VPMASKMOVQ_MXX" +end +do local k = l[432] +k.isa = l[155] +k.code = l[7] +k.id = 43 +k.layout = l[413] +k.impregs = l[12] +k.flags = l[179] +k.parm = 128 +k.sig = "{avx2}|{{MemId, use, p1}, {RegId, use, p2}, {RegId, use, p3}}|{}|vex-66-0f38-WR2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR80|{wmem}" +k.prefixclass = l[206] +end +do local k = l[433] +k.orgnames = l[4] +k.opclass = l[434] +k.operands = l[423] +k.sub = 14 +k.name = "VPMASKMOVQ_MYY" +end +do local k = l[434] +k.isa = l[155] +k.code = l[7] +k.id = 41 +k.layout = l[413] +k.impregs = l[12] +k.flags = l[179] +k.parm = 128 +k.sig = "{avx2}|{{MemId, use, p1}, {RegId, use, p2}, {RegId, use, p3}}|{}|vex-66-0f38-128.WR2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR80|{wmem}" +k.prefixclass = l[215] +end +do local k = l[435] +k.orgnames = l[4] +k.opclass = l[436] +k.operands = l[16] +k.sub = 12 +k.name = "VPMASKMOVQ_XXM" +end +do local k = l[436] +k.isa = l[155] +k.code = l[7] +k.id = 34 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 128 +k.sig = "{avx2}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-WR2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR80|{rmem}" +k.prefixclass = l[206] +end +do local k = l[437] +k.orgnames = l[4] +k.opclass = l[438] +k.operands = l[380] +k.sub = 12 +k.name = "VPMASKMOVQ_YYM" +end +do local k = l[438] +k.isa = l[155] +k.code = l[7] +k.id = 30 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 128 +k.sig = "{avx2}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-128.WR2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR80|{rmem}" +k.prefixclass = l[215] +end +do local k = l[439] +k.orgnames = l[4] +k.opclass = l[440] +k.operands = l[16] +k.sub = 7 +k.name = "VPSLLVD_XXM" +end +do local k = l[440] +k.isa = l[155] +k.code = l[7] +k.id = 31 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{avx2}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR40|{rmem}" +k.prefixclass = l[14] +end +do local k = l[441] +k.orgnames = l[4] +k.opclass = l[442] +k.operands = l[30] +k.sub = 7 +k.name = "VPSLLVD_XXX" +end +do local k = l[442] +k.isa = l[155] +k.code = l[22] +k.id = 55 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{avx2}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PAR40|{}" +k.prefixclass = l[28] +end +do local k = l[443] +k.orgnames = l[4] +k.opclass = l[444] +k.operands = l[380] +k.sub = 7 +k.name = "VPSLLVD_YYM" +end +do local k = l[444] +k.isa = l[155] +k.code = l[7] +k.id = 27 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{avx2}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-128.R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR40|{rmem}" +k.prefixclass = l[226] +end +do local k = l[445] +k.orgnames = l[4] +k.opclass = l[446] +k.operands = l[387] +k.sub = 7 +k.name = "VPSLLVD_YYY" +end +do local k = l[446] +k.isa = l[155] +k.code = l[22] +k.id = 53 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{avx2}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-128.R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PAR40|{}" +k.prefixclass = l[386] +end +do local k = l[447] +k.orgnames = l[4] +k.opclass = l[448] +k.operands = l[16] +k.sub = 7 +k.name = "VPSLLVQ_XXM" +end +do local k = l[448] +k.isa = l[155] +k.code = l[7] +k.id = 33 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{avx2}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-WR2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR40|{rmem}" +k.prefixclass = l[206] +end +do local k = l[449] +k.orgnames = l[4] +k.opclass = l[450] +k.operands = l[30] +k.sub = 7 +k.name = "VPSLLVQ_XXX" +end +do local k = l[450] +k.isa = l[155] +k.code = l[22] +k.id = 56 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{avx2}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-WR2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PAR40|{}" +k.prefixclass = l[451] +end +do local k = l[451] +k.extopcode = "0f38" +k.rex = l[255] +k.id = 33 +k.pref = "66" +k.sig = "vex-66-0f38-WR2B1S3" +end +do local k = l[452] +k.orgnames = l[4] +k.opclass = l[453] +k.operands = l[380] +k.sub = 7 +k.name = "VPSLLVQ_YYM" +end +do local k = l[453] +k.isa = l[155] +k.code = l[7] +k.id = 29 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{avx2}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-128.WR2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR40|{rmem}" +k.prefixclass = l[215] +end +do local k = l[454] +k.orgnames = l[4] +k.opclass = l[455] +k.operands = l[387] +k.sub = 7 +k.name = "VPSLLVQ_YYY" +end +do local k = l[455] +k.isa = l[155] +k.code = l[22] +k.id = 54 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{avx2}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-128.WR2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PAR40|{}" +k.prefixclass = l[456] +end +do local k = l[456] +k.extopcode = "0f38" +k.rex = l[267] +k.id = 130 +k.pref = "66" +k.sig = "vex-66-0f38-128.WR2B1S3" +end +do local k = l[457] +k.orgnames = l[4] +k.opclass = l[440] +k.operands = l[16] +k.sub = 6 +k.name = "VPSRAVD_XXM" +end +do local k = l[458] +k.orgnames = l[4] +k.opclass = l[442] +k.operands = l[30] +k.sub = 6 +k.name = "VPSRAVD_XXX" +end +do local k = l[459] +k.orgnames = l[4] +k.opclass = l[444] +k.operands = l[380] +k.sub = 6 +k.name = "VPSRAVD_YYM" +end +do local k = l[460] +k.orgnames = l[4] +k.opclass = l[446] +k.operands = l[387] +k.sub = 6 +k.name = "VPSRAVD_YYY" +end +do local k = l[461] +k.orgnames = l[4] +k.opclass = l[448] +k.operands = l[16] +k.sub = 6 +k.name = "VPSRAVQ_XXM" +end +do local k = l[462] +k.orgnames = l[4] +k.opclass = l[450] +k.operands = l[30] +k.sub = 6 +k.name = "VPSRAVQ_XXX" +end +do local k = l[463] +k.orgnames = l[4] +k.opclass = l[453] +k.operands = l[380] +k.sub = 6 +k.name = "VPSRAVQ_YYM" +end +do local k = l[464] +k.orgnames = l[4] +k.opclass = l[455] +k.operands = l[387] +k.sub = 6 +k.name = "VPSRAVQ_YYY" +end +do local k = l[465] +k.orgnames = l[4] +k.opclass = l[440] +k.operands = l[16] +k.sub = 5 +k.name = "VPSRLVD_XXM" +end +do local k = l[466] +k.orgnames = l[4] +k.opclass = l[442] +k.operands = l[30] +k.sub = 5 +k.name = "VPSRLVD_XXX" +end +do local k = l[467] +k.orgnames = l[4] +k.opclass = l[444] +k.operands = l[380] +k.sub = 5 +k.name = "VPSRLVD_YYM" +end +do local k = l[468] +k.orgnames = l[4] +k.opclass = l[446] +k.operands = l[387] +k.sub = 5 +k.name = "VPSRLVD_YYY" +end +do local k = l[469] +k.orgnames = l[4] +k.opclass = l[448] +k.operands = l[16] +k.sub = 5 +k.name = "VPSRLVQ_XXM" +end +do local k = l[470] +k.orgnames = l[4] +k.opclass = l[450] +k.operands = l[30] +k.sub = 5 +k.name = "VPSRLVQ_XXX" +end +do local k = l[471] +k.orgnames = l[4] +k.opclass = l[453] +k.operands = l[380] +k.sub = 5 +k.name = "VPSRLVQ_YYM" +end +do local k = l[472] +k.orgnames = l[4] +k.opclass = l[455] +k.operands = l[387] +k.sub = 5 +k.name = "VPSRLVQ_YYY" +end +do local k = l[473] +k.orgnames = l[4] +k.opclass = l[474] +k.operands = l[16] +k.sub = 24 +k.name = "VADDPD_XXM" +end +do local k = l[474] +k.isa = l[475] +k.code = l[7] +k.id = 108 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f-R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR40|{rmem}" +k.prefixclass = l[476] +end +do local k = l[475] +k[1] = "avx" +k.id = 24 +k.sig = "{avx}" +end +do local k = l[476] +k.extopcode = "0f" +k.rex = l[15] +k.id = 123 +k.pref = "66" +k.sig = "vex-66-0f-R2M1S3" +end +do local k = l[477] +k.orgnames = l[4] +k.opclass = l[478] +k.operands = l[30] +k.sub = 24 +k.name = "VADDPD_XXX" +end +do local k = l[478] +k.isa = l[475] +k.code = l[22] +k.id = 254 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f-R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PAR40|{}" +k.prefixclass = l[479] +end +do local k = l[479] +k.extopcode = "0f" +k.rex = l[29] +k.id = 118 +k.pref = "66" +k.sig = "vex-66-0f-R2B1S3" +end +do local k = l[480] +k.orgnames = l[4] +k.opclass = l[481] +k.operands = l[380] +k.sub = 24 +k.name = "VADDPD_YYM" +end +do local k = l[481] +k.isa = l[475] +k.code = l[7] +k.id = 102 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f-128.R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR40|{rmem}" +k.prefixclass = l[482] +end +do local k = l[482] +k.extopcode = "0f" +k.rex = l[227] +k.id = 132 +k.pref = "66" +k.sig = "vex-66-0f-128.R2M1S3" +end +do local k = l[483] +k.orgnames = l[4] +k.opclass = l[484] +k.operands = l[387] +k.sub = 24 +k.name = "VADDPD_YYY" +end +do local k = l[484] +k.isa = l[475] +k.code = l[22] +k.id = 248 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f-128.R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PAR40|{}" +k.prefixclass = l[485] +end +do local k = l[485] +k.extopcode = "0f" +k.rex = l[243] +k.id = 128 +k.pref = "66" +k.sig = "vex-66-0f-128.R2B1S3" +end +do local k = l[486] +k.orgnames = l[4] +k.opclass = l[487] +k.operands = l[16] +k.sub = 24 +k.name = "VADDPS_XXM" +end +do local k = l[487] +k.isa = l[475] +k.code = l[7] +k.id = 97 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-0f-R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR40|{rmem}" +k.prefixclass = l[488] +end +do local k = l[488] +k.extopcode = "0f" +k.rex = l[15] +k.id = 86 +k.pref = "" +k.sig = "vex-0f-R2M1S3" +end +do local k = l[489] +k.orgnames = l[4] +k.opclass = l[490] +k.operands = l[30] +k.sub = 24 +k.name = "VADDPS_XXX" +end +do local k = l[490] +k.isa = l[475] +k.code = l[22] +k.id = 242 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-0f-R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PAR40|{}" +k.prefixclass = l[491] +end +do local k = l[491] +k.extopcode = "0f" +k.rex = l[29] +k.id = 75 +k.pref = "" +k.sig = "vex-0f-R2B1S3" +end +do local k = l[492] +k.orgnames = l[4] +k.opclass = l[493] +k.operands = l[380] +k.sub = 24 +k.name = "VADDPS_YYM" +end +do local k = l[493] +k.isa = l[475] +k.code = l[7] +k.id = 92 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-0f-128.R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR40|{rmem}" +k.prefixclass = l[494] +end +do local k = l[494] +k.extopcode = "0f" +k.rex = l[227] +k.id = 106 +k.pref = "" +k.sig = "vex-0f-128.R2M1S3" +end +do local k = l[495] +k.orgnames = l[4] +k.opclass = l[496] +k.operands = l[387] +k.sub = 24 +k.name = "VADDPS_YYY" +end +do local k = l[496] +k.isa = l[475] +k.code = l[22] +k.id = 237 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-0f-128.R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PAR40|{}" +k.prefixclass = l[497] +end +do local k = l[497] +k.extopcode = "0f" +k.rex = l[243] +k.id = 97 +k.pref = "" +k.sig = "vex-0f-128.R2B1S3" +end +do local k = l[498] +k.orgnames = l[4] +k.opclass = l[499] +k.operands = l[16] +k.sub = 16 +k.name = "VADDSUBPD_XXM" +end +do local k = l[499] +k.isa = l[475] +k.code = l[7] +k.id = 110 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 192 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f-R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PARC0|{rmem}" +k.prefixclass = l[476] +end +do local k = l[500] +k.orgnames = l[4] +k.opclass = l[501] +k.operands = l[30] +k.sub = 16 +k.name = "VADDSUBPD_XXX" +end +do local k = l[501] +k.isa = l[475] +k.code = l[22] +k.id = 256 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 192 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f-R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PARC0|{}" +k.prefixclass = l[479] +end +do local k = l[502] +k.orgnames = l[4] +k.opclass = l[503] +k.operands = l[380] +k.sub = 16 +k.name = "VADDSUBPD_YYM" +end +do local k = l[503] +k.isa = l[475] +k.code = l[7] +k.id = 104 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 192 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f-128.R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PARC0|{rmem}" +k.prefixclass = l[482] +end +do local k = l[504] +k.orgnames = l[4] +k.opclass = l[505] +k.operands = l[387] +k.sub = 16 +k.name = "VADDSUBPD_YYY" +end +do local k = l[505] +k.isa = l[475] +k.code = l[22] +k.id = 250 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 192 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f-128.R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PARC0|{}" +k.prefixclass = l[485] +end +do local k = l[506] +k.orgnames = l[4] +k.opclass = l[507] +k.operands = l[16] +k.sub = 16 +k.name = "VADDSUBPS_XXM" +end +do local k = l[507] +k.isa = l[475] +k.code = l[7] +k.id = 99 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 192 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-0f-R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PARC0|{rmem}" +k.prefixclass = l[488] +end +do local k = l[508] +k.orgnames = l[4] +k.opclass = l[509] +k.operands = l[30] +k.sub = 16 +k.name = "VADDSUBPS_XXX" +end +do local k = l[509] +k.isa = l[475] +k.code = l[22] +k.id = 244 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 192 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-0f-R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PARC0|{}" +k.prefixclass = l[491] +end +do local k = l[510] +k.orgnames = l[4] +k.opclass = l[511] +k.operands = l[380] +k.sub = 16 +k.name = "VADDSUBPS_YYM" +end +do local k = l[511] +k.isa = l[475] +k.code = l[7] +k.id = 94 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 192 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-0f-128.R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PARC0|{rmem}" +k.prefixclass = l[494] +end +do local k = l[512] +k.orgnames = l[4] +k.opclass = l[513] +k.operands = l[387] +k.sub = 16 +k.name = "VADDSUBPS_YYY" +end +do local k = l[513] +k.isa = l[475] +k.code = l[22] +k.id = 239 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 192 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-0f-128.R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PARC0|{}" +k.prefixclass = l[497] +end +do local k = l[514] +k.orgnames = l[4] +k.opclass = l[474] +k.operands = l[16] +k.sub = 21 +k.name = "VANDNPD_XXM" +end +do local k = l[515] +k.orgnames = l[4] +k.opclass = l[478] +k.operands = l[30] +k.sub = 21 +k.name = "VANDNPD_XXX" +end +do local k = l[516] +k.orgnames = l[4] +k.opclass = l[481] +k.operands = l[380] +k.sub = 21 +k.name = "VANDNPD_YYM" +end +do local k = l[517] +k.orgnames = l[4] +k.opclass = l[484] +k.operands = l[387] +k.sub = 21 +k.name = "VANDNPD_YYY" +end +do local k = l[518] +k.orgnames = l[4] +k.opclass = l[487] +k.operands = l[16] +k.sub = 21 +k.name = "VANDNPS_XXM" +end +do local k = l[519] +k.orgnames = l[4] +k.opclass = l[490] +k.operands = l[30] +k.sub = 21 +k.name = "VANDNPS_XXX" +end +do local k = l[520] +k.orgnames = l[4] +k.opclass = l[493] +k.operands = l[380] +k.sub = 21 +k.name = "VANDNPS_YYM" +end +do local k = l[521] +k.orgnames = l[4] +k.opclass = l[496] +k.operands = l[387] +k.sub = 21 +k.name = "VANDNPS_YYY" +end +do local k = l[522] +k.orgnames = l[4] +k.opclass = l[474] +k.operands = l[16] +k.sub = 20 +k.name = "VANDPD_XXM" +end +do local k = l[523] +k.orgnames = l[4] +k.opclass = l[478] +k.operands = l[30] +k.sub = 20 +k.name = "VANDPD_XXX" +end +do local k = l[524] +k.orgnames = l[4] +k.opclass = l[481] +k.operands = l[380] +k.sub = 20 +k.name = "VANDPD_YYM" +end +do local k = l[525] +k.orgnames = l[4] +k.opclass = l[484] +k.operands = l[387] +k.sub = 20 +k.name = "VANDPD_YYY" +end +do local k = l[526] +k.orgnames = l[4] +k.opclass = l[487] +k.operands = l[16] +k.sub = 20 +k.name = "VANDPS_XXM" +end +do local k = l[527] +k.orgnames = l[4] +k.opclass = l[490] +k.operands = l[30] +k.sub = 20 +k.name = "VANDPS_XXX" +end +do local k = l[528] +k.orgnames = l[4] +k.opclass = l[493] +k.operands = l[380] +k.sub = 20 +k.name = "VANDPS_YYM" +end +do local k = l[529] +k.orgnames = l[4] +k.opclass = l[496] +k.operands = l[387] +k.sub = 20 +k.name = "VANDPS_YYY" +end +do local k = l[530] +k.orgnames = l[124] +k.opclass = l[531] +k.operands = l[134] +k.sub = 13 +k.name = "VBLENDPD_XXMI" +end +do local k = l[531] +k.isa = l[475] +k.code = l[127] +k.id = 86 +k.layout = l[128] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-66-0f3a-R2M1S3|{$parm+$sub, !RRMM($p2,$p1), !I8($p4)}|PAR 0|{rmem}" +k.prefixclass = l[133] +end +do local k = l[532] +k.orgnames = l[124] +k.opclass = l[533] +k.operands = l[148] +k.sub = 13 +k.name = "VBLENDPD_XXXI" +end +do local k = l[533] +k.isa = l[475] +k.code = l[141] +k.id = 231 +k.layout = l[142] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-66-0f3a-R2B1S3|{$parm+$sub, !RRMR($p2,$p1), !I8($p4)}|PAR 0|{}" +k.prefixclass = l[147] +end +do local k = l[534] +k.orgnames = l[124] +k.opclass = l[535] +k.operands = l[259] +k.sub = 13 +k.name = "VBLENDPD_YYMI" +end +do local k = l[535] +k.isa = l[475] +k.code = l[127] +k.id = 83 +k.layout = l[128] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-66-0f3a-128.R2M1S3|{$parm+$sub, !RRMM($p2,$p1), !I8($p4)}|PAR 0|{rmem}" +k.prefixclass = l[234] +end +do local k = l[536] +k.orgnames = l[124] +k.opclass = l[537] +k.operands = l[268] +k.sub = 13 +k.name = "VBLENDPD_YYYI" +end +do local k = l[537] +k.isa = l[475] +k.code = l[141] +k.id = 228 +k.layout = l[142] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-66-0f3a-128.R2B1S3|{$parm+$sub, !RRMR($p2,$p1), !I8($p4)}|PAR 0|{}" +k.prefixclass = l[242] +end +do local k = l[538] +k.orgnames = l[124] +k.opclass = l[539] +k.operands = l[134] +k.sub = 12 +k.name = "VBLENDPS_XXMI" +end +do local k = l[539] +k.isa = l[475] +k.code = l[127] +k.id = 77 +k.layout = l[128] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-0f3a-R2M1S3|{$parm+$sub, !RRMM($p2,$p1), !I8($p4)}|PAR 0|{rmem}" +k.prefixclass = l[540] +end +do local k = l[540] +k.extopcode = "0f3a" +k.rex = l[15] +k.id = 88 +k.pref = "" +k.sig = "vex-0f3a-R2M1S3" +end +do local k = l[541] +k.orgnames = l[124] +k.opclass = l[542] +k.operands = l[148] +k.sub = 12 +k.name = "VBLENDPS_XXXI" +end +do local k = l[542] +k.isa = l[475] +k.code = l[141] +k.id = 222 +k.layout = l[142] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-0f3a-R2B1S3|{$parm+$sub, !RRMR($p2,$p1), !I8($p4)}|PAR 0|{}" +k.prefixclass = l[543] +end +do local k = l[543] +k.extopcode = "0f3a" +k.rex = l[29] +k.id = 77 +k.pref = "" +k.sig = "vex-0f3a-R2B1S3" +end +do local k = l[544] +k.orgnames = l[124] +k.opclass = l[545] +k.operands = l[259] +k.sub = 12 +k.name = "VBLENDPS_YYMI" +end +do local k = l[545] +k.isa = l[475] +k.code = l[127] +k.id = 75 +k.layout = l[128] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-0f3a-128.R2M1S3|{$parm+$sub, !RRMM($p2,$p1), !I8($p4)}|PAR 0|{rmem}" +k.prefixclass = l[546] +end +do local k = l[546] +k.extopcode = "0f3a" +k.rex = l[227] +k.id = 108 +k.pref = "" +k.sig = "vex-0f3a-128.R2M1S3" +end +do local k = l[547] +k.orgnames = l[124] +k.opclass = l[548] +k.operands = l[268] +k.sub = 12 +k.name = "VBLENDPS_YYYI" +end +do local k = l[548] +k.isa = l[475] +k.code = l[141] +k.id = 220 +k.layout = l[142] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-0f3a-128.R2B1S3|{$parm+$sub, !RRMR($p2,$p1), !I8($p4)}|PAR 0|{}" +k.prefixclass = l[549] +end +do local k = l[549] +k.extopcode = "0f3a" +k.rex = l[243] +k.id = 99 +k.pref = "" +k.sig = "vex-0f3a-128.R2B1S3" +end +do local k = l[550] +k.orgnames = l[274] +k.opclass = l[551] +k.operands = l[277] +k.sub = 11 +k.name = "VBLENDVPD_XXMX" +end +do local k = l[551] +k.isa = l[475] +k.code = l[552] +k.id = 90 +k.layout = l[200] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {RegId, use, p4}}|{}|vex-66-0f3a-R2M1S3|{$parm+$sub, !RRMM($p2,$p1), ($p4<<4)}|PAR40|{rmem}" +k.prefixclass = l[133] +end +do local k = l[552] +k[1] = "$parm+$sub" +k[2] = "!RRMM($p2,$p1)" +k[3] = "($p4<<4)" +k.id = 62 +k.sig = "{$parm+$sub, !RRMM($p2,$p1), ($p4<<4)}" +end +do local k = l[553] +k.orgnames = l[274] +k.opclass = l[554] +k.operands = l[290] +k.sub = 11 +k.name = "VBLENDVPD_XXXX" +end +do local k = l[554] +k.isa = l[475] +k.code = l[555] +k.id = 235 +k.layout = l[285] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {RegId, use, p4}}|{}|vex-66-0f3a-R2B1S3|{$parm+$sub, !RRMR($p2,$p1), ($p4<<4)}|PAR40|{}" +k.prefixclass = l[147] +end +do local k = l[555] +k[1] = "$parm+$sub" +k[2] = "!RRMR($p2,$p1)" +k[3] = "($p4<<4)" +k.id = 58 +k.sig = "{$parm+$sub, !RRMR($p2,$p1), ($p4<<4)}" +end +do local k = l[556] +k.orgnames = l[274] +k.opclass = l[557] +k.operands = l[297] +k.sub = 11 +k.name = "VBLENDVPD_YYMY" +end +do local k = l[557] +k.isa = l[475] +k.code = l[552] +k.id = 89 +k.layout = l[200] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {RegId, use, p4}}|{}|vex-66-0f3a-128.R2M1S3|{$parm+$sub, !RRMM($p2,$p1), ($p4<<4)}|PAR40|{rmem}" +k.prefixclass = l[234] +end +do local k = l[558] +k.orgnames = l[274] +k.opclass = l[559] +k.operands = l[304] +k.sub = 11 +k.name = "VBLENDVPD_YYYY" +end +do local k = l[559] +k.isa = l[475] +k.code = l[555] +k.id = 234 +k.layout = l[285] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {RegId, use, p4}}|{}|vex-66-0f3a-128.R2B1S3|{$parm+$sub, !RRMR($p2,$p1), ($p4<<4)}|PAR40|{}" +k.prefixclass = l[242] +end +do local k = l[560] +k.orgnames = l[274] +k.opclass = l[551] +k.operands = l[277] +k.sub = 10 +k.name = "VBLENDVPS_XXMX" +end +do local k = l[561] +k.orgnames = l[274] +k.opclass = l[554] +k.operands = l[290] +k.sub = 10 +k.name = "VBLENDVPS_XXXX" +end +do local k = l[562] +k.orgnames = l[274] +k.opclass = l[557] +k.operands = l[297] +k.sub = 10 +k.name = "VBLENDVPS_YYMY" +end +do local k = l[563] +k.orgnames = l[274] +k.opclass = l[559] +k.operands = l[304] +k.sub = 10 +k.name = "VBLENDVPS_YYYY" +end +do local k = l[564] +k.orgnames = l[41] +k.opclass = l[565] +k.operands = l[158] +k.sub = 26 +k.name = "VBROADCASTF128_YM128" +end +do local k = l[565] +k.isa = l[475] +k.code = l[7] +k.id = 136 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f38-128.R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR 0|{rmem}" +k.prefixclass = l[156] +end +do local k = l[566] +k.orgnames = l[41] +k.opclass = l[565] +k.operands = l[344] +k.sub = 25 +k.name = "VBROADCASTSD_YM64" +end +do local k = l[567] +k.orgnames = l[41] +k.opclass = l[568] +k.operands = l[327] +k.sub = 24 +k.name = "VBROADCASTSS_XM32" +end +do local k = l[568] +k.isa = l[475] +k.code = l[7] +k.id = 138 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f38-R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR 0|{rmem}" +k.prefixclass = l[311] +end +do local k = l[569] +k.orgnames = l[41] +k.opclass = l[565] +k.operands = l[333] +k.sub = 24 +k.name = "VBROADCASTSS_YM32" +end +do local k = l[570] +k.orgnames = l[4] +k.opclass = l[571] +k.operands = l[16] +k.sub = 0 +k.name = "VCMPEQPD_XXM" +end +do local k = l[571] +k.isa = l[475] +k.code = l[572] +k.id = 112 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 194 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f-R2M1S3|{$parm, !RRMM($p2,$p1), !I8($sub)}|PARC2|{rmem}" +k.prefixclass = l[476] +end +do local k = l[572] +k[1] = "$parm" +k[2] = "!RRMM($p2,$p1)" +k[3] = "!I8($sub)" +k.id = 54 +k.sig = "{$parm, !RRMM($p2,$p1), !I8($sub)}" +end +do local k = l[573] +k.orgnames = l[4] +k.opclass = l[574] +k.operands = l[30] +k.sub = 0 +k.name = "VCMPEQPD_XXX" +end +do local k = l[574] +k.isa = l[475] +k.code = l[575] +k.id = 258 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 194 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f-R2B1S3|{$parm, !RRMR($p2,$p1), !I8($sub)}|PARC2|{}" +k.prefixclass = l[479] +end +do local k = l[575] +k[1] = "$parm" +k[2] = "!RRMR($p2,$p1)" +k[3] = "!I8($sub)" +k.id = 52 +k.sig = "{$parm, !RRMR($p2,$p1), !I8($sub)}" +end +do local k = l[576] +k.orgnames = l[4] +k.opclass = l[577] +k.operands = l[380] +k.sub = 0 +k.name = "VCMPEQPD_YYM" +end +do local k = l[577] +k.isa = l[475] +k.code = l[572] +k.id = 106 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 194 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f-128.R2M1S3|{$parm, !RRMM($p2,$p1), !I8($sub)}|PARC2|{rmem}" +k.prefixclass = l[482] +end +do local k = l[578] +k.orgnames = l[4] +k.opclass = l[579] +k.operands = l[387] +k.sub = 0 +k.name = "VCMPEQPD_YYY" +end +do local k = l[579] +k.isa = l[475] +k.code = l[575] +k.id = 252 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 194 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f-128.R2B1S3|{$parm, !RRMR($p2,$p1), !I8($sub)}|PARC2|{}" +k.prefixclass = l[485] +end +do local k = l[580] +k.orgnames = l[4] +k.opclass = l[581] +k.operands = l[16] +k.sub = 0 +k.name = "VCMPEQPS_XXM" +end +do local k = l[581] +k.isa = l[475] +k.code = l[572] +k.id = 100 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 194 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-0f-R2M1S3|{$parm, !RRMM($p2,$p1), !I8($sub)}|PARC2|{rmem}" +k.prefixclass = l[488] +end +do local k = l[582] +k.orgnames = l[4] +k.opclass = l[583] +k.operands = l[30] +k.sub = 0 +k.name = "VCMPEQPS_XXX" +end +do local k = l[583] +k.isa = l[475] +k.code = l[575] +k.id = 245 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 194 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-0f-R2B1S3|{$parm, !RRMR($p2,$p1), !I8($sub)}|PARC2|{}" +k.prefixclass = l[491] +end +do local k = l[584] +k.orgnames = l[4] +k.opclass = l[585] +k.operands = l[380] +k.sub = 0 +k.name = "VCMPEQPS_YYM" +end +do local k = l[585] +k.isa = l[475] +k.code = l[572] +k.id = 95 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 194 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-0f-128.R2M1S3|{$parm, !RRMM($p2,$p1), !I8($sub)}|PARC2|{rmem}" +k.prefixclass = l[494] +end +do local k = l[586] +k.orgnames = l[4] +k.opclass = l[587] +k.operands = l[387] +k.sub = 0 +k.name = "VCMPEQPS_YYY" +end +do local k = l[587] +k.isa = l[475] +k.code = l[575] +k.id = 240 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 194 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-0f-128.R2B1S3|{$parm, !RRMR($p2,$p1), !I8($sub)}|PARC2|{}" +k.prefixclass = l[497] +end +do local k = l[588] +k.orgnames = l[4] +k.opclass = l[589] +k.operands = l[591] +k.sub = 0 +k.name = "VCMPEQSD_XXM64" +end +do local k = l[589] +k.isa = l[475] +k.code = l[572] +k.id = 121 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 194 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-f2-0f-R2M1S3|{$parm, !RRMM($p2,$p1), !I8($sub)}|PARC2|{rmem}" +k.prefixclass = l[590] +end +do local k = l[590] +k.extopcode = "0f" +k.rex = l[15] +k.id = 125 +k.pref = "f2" +k.sig = "vex-f2-0f-R2M1S3" +end +do local k = l[591] +k[1] = l[592] +k[2] = l[593] +k[3] = l[594] +k.id = 235 +k.sig = "{{mode = o,type = VR128,name = p2}, {mode = i,type = VR128,name = p3}, {mode = i,type = i64*,name = p1}}" +end +do local k = l[592] +k.mode = "o" +k.type = "VR128" +k.name = "p2" +end +do local k = l[593] +k.mode = "i" +k.type = "VR128" +k.name = "p3" +end +do local k = l[594] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[595] +k.orgnames = l[4] +k.opclass = l[596] +k.operands = l[30] +k.sub = 0 +k.name = "VCMPEQSD_XXX" +end +do local k = l[596] +k.isa = l[475] +k.code = l[575] +k.id = 267 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 194 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-f2-0f-R2B1S3|{$parm, !RRMR($p2,$p1), !I8($sub)}|PARC2|{}" +k.prefixclass = l[597] +end +do local k = l[597] +k.extopcode = "0f" +k.rex = l[29] +k.id = 120 +k.pref = "f2" +k.sig = "vex-f2-0f-R2B1S3" +end +do local k = l[598] +k.orgnames = l[4] +k.opclass = l[599] +k.operands = l[601] +k.sub = 0 +k.name = "VCMPEQSS_XXM32" +end +do local k = l[599] +k.isa = l[475] +k.code = l[572] +k.id = 125 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 194 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-f3-0f-R2M1S3|{$parm, !RRMM($p2,$p1), !I8($sub)}|PARC2|{rmem}" +k.prefixclass = l[600] +end +do local k = l[600] +k.extopcode = "0f" +k.rex = l[15] +k.id = 93 +k.pref = "f3" +k.sig = "vex-f3-0f-R2M1S3" +end +do local k = l[601] +k[1] = l[602] +k[2] = l[603] +k[3] = l[604] +k.id = 236 +k.sig = "{{mode = o,type = VR128,name = p2}, {mode = i,type = VR128,name = p3}, {mode = i,type = i32*,name = p1}}" +end +do local k = l[602] +k.mode = "o" +k.type = "VR128" +k.name = "p2" +end +do local k = l[603] +k.mode = "i" +k.type = "VR128" +k.name = "p3" +end +do local k = l[604] +k.mode = "i" +k.type = "i32*" +k.name = "p1" +end +do local k = l[605] +k.orgnames = l[4] +k.opclass = l[606] +k.operands = l[30] +k.sub = 0 +k.name = "VCMPEQSS_XXX" +end +do local k = l[606] +k.isa = l[475] +k.code = l[575] +k.id = 272 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 194 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-f3-0f-R2B1S3|{$parm, !RRMR($p2,$p1), !I8($sub)}|PARC2|{}" +k.prefixclass = l[607] +end +do local k = l[607] +k.extopcode = "0f" +k.rex = l[29] +k.id = 82 +k.pref = "f3" +k.sig = "vex-f3-0f-R2B1S3" +end +do local k = l[608] +k.orgnames = l[4] +k.opclass = l[571] +k.operands = l[16] +k.sub = 2 +k.name = "VCMPLEPD_XXM" +end +do local k = l[609] +k.orgnames = l[4] +k.opclass = l[574] +k.operands = l[30] +k.sub = 2 +k.name = "VCMPLEPD_XXX" +end +do local k = l[610] +k.orgnames = l[4] +k.opclass = l[577] +k.operands = l[380] +k.sub = 2 +k.name = "VCMPLEPD_YYM" +end +do local k = l[611] +k.orgnames = l[4] +k.opclass = l[579] +k.operands = l[387] +k.sub = 2 +k.name = "VCMPLEPD_YYY" +end +do local k = l[612] +k.orgnames = l[4] +k.opclass = l[581] +k.operands = l[16] +k.sub = 2 +k.name = "VCMPLEPS_XXM" +end +do local k = l[613] +k.orgnames = l[4] +k.opclass = l[583] +k.operands = l[30] +k.sub = 2 +k.name = "VCMPLEPS_XXX" +end +do local k = l[614] +k.orgnames = l[4] +k.opclass = l[585] +k.operands = l[380] +k.sub = 2 +k.name = "VCMPLEPS_YYM" +end +do local k = l[615] +k.orgnames = l[4] +k.opclass = l[587] +k.operands = l[387] +k.sub = 2 +k.name = "VCMPLEPS_YYY" +end +do local k = l[616] +k.orgnames = l[4] +k.opclass = l[589] +k.operands = l[591] +k.sub = 2 +k.name = "VCMPLESD_XXM64" +end +do local k = l[617] +k.orgnames = l[4] +k.opclass = l[596] +k.operands = l[30] +k.sub = 2 +k.name = "VCMPLESD_XXX" +end +do local k = l[618] +k.orgnames = l[4] +k.opclass = l[599] +k.operands = l[601] +k.sub = 2 +k.name = "VCMPLESS_XXM32" +end +do local k = l[619] +k.orgnames = l[4] +k.opclass = l[606] +k.operands = l[30] +k.sub = 2 +k.name = "VCMPLESS_XXX" +end +do local k = l[620] +k.orgnames = l[4] +k.opclass = l[571] +k.operands = l[16] +k.sub = 1 +k.name = "VCMPLTPD_XXM" +end +do local k = l[621] +k.orgnames = l[4] +k.opclass = l[574] +k.operands = l[30] +k.sub = 1 +k.name = "VCMPLTPD_XXX" +end +do local k = l[622] +k.orgnames = l[4] +k.opclass = l[577] +k.operands = l[380] +k.sub = 1 +k.name = "VCMPLTPD_YYM" +end +do local k = l[623] +k.orgnames = l[4] +k.opclass = l[579] +k.operands = l[387] +k.sub = 1 +k.name = "VCMPLTPD_YYY" +end +do local k = l[624] +k.orgnames = l[4] +k.opclass = l[581] +k.operands = l[16] +k.sub = 1 +k.name = "VCMPLTPS_XXM" +end +do local k = l[625] +k.orgnames = l[4] +k.opclass = l[583] +k.operands = l[30] +k.sub = 1 +k.name = "VCMPLTPS_XXX" +end +do local k = l[626] +k.orgnames = l[4] +k.opclass = l[585] +k.operands = l[380] +k.sub = 1 +k.name = "VCMPLTPS_YYM" +end +do local k = l[627] +k.orgnames = l[4] +k.opclass = l[587] +k.operands = l[387] +k.sub = 1 +k.name = "VCMPLTPS_YYY" +end +do local k = l[628] +k.orgnames = l[4] +k.opclass = l[589] +k.operands = l[591] +k.sub = 1 +k.name = "VCMPLTSD_XXM64" +end +do local k = l[629] +k.orgnames = l[4] +k.opclass = l[596] +k.operands = l[30] +k.sub = 1 +k.name = "VCMPLTSD_XXX" +end +do local k = l[630] +k.orgnames = l[4] +k.opclass = l[599] +k.operands = l[601] +k.sub = 1 +k.name = "VCMPLTSS_XXM32" +end +do local k = l[631] +k.orgnames = l[4] +k.opclass = l[606] +k.operands = l[30] +k.sub = 1 +k.name = "VCMPLTSS_XXX" +end +do local k = l[632] +k.orgnames = l[4] +k.opclass = l[571] +k.operands = l[16] +k.sub = 4 +k.name = "VCMPNEQPD_XXM" +end +do local k = l[633] +k.orgnames = l[4] +k.opclass = l[574] +k.operands = l[30] +k.sub = 4 +k.name = "VCMPNEQPD_XXX" +end +do local k = l[634] +k.orgnames = l[4] +k.opclass = l[577] +k.operands = l[380] +k.sub = 4 +k.name = "VCMPNEQPD_YYM" +end +do local k = l[635] +k.orgnames = l[4] +k.opclass = l[579] +k.operands = l[387] +k.sub = 4 +k.name = "VCMPNEQPD_YYY" +end +do local k = l[636] +k.orgnames = l[4] +k.opclass = l[581] +k.operands = l[16] +k.sub = 4 +k.name = "VCMPNEQPS_XXM" +end +do local k = l[637] +k.orgnames = l[4] +k.opclass = l[583] +k.operands = l[30] +k.sub = 4 +k.name = "VCMPNEQPS_XXX" +end +do local k = l[638] +k.orgnames = l[4] +k.opclass = l[585] +k.operands = l[380] +k.sub = 4 +k.name = "VCMPNEQPS_YYM" +end +do local k = l[639] +k.orgnames = l[4] +k.opclass = l[587] +k.operands = l[387] +k.sub = 4 +k.name = "VCMPNEQPS_YYY" +end +do local k = l[640] +k.orgnames = l[4] +k.opclass = l[589] +k.operands = l[591] +k.sub = 4 +k.name = "VCMPNEQSD_XXM64" +end +do local k = l[641] +k.orgnames = l[4] +k.opclass = l[596] +k.operands = l[30] +k.sub = 4 +k.name = "VCMPNEQSD_XXX" +end +do local k = l[642] +k.orgnames = l[4] +k.opclass = l[599] +k.operands = l[601] +k.sub = 4 +k.name = "VCMPNEQSS_XXM32" +end +do local k = l[643] +k.orgnames = l[4] +k.opclass = l[606] +k.operands = l[30] +k.sub = 4 +k.name = "VCMPNEQSS_XXX" +end +do local k = l[644] +k.orgnames = l[4] +k.opclass = l[571] +k.operands = l[16] +k.sub = 6 +k.name = "VCMPNLEPD_XXM" +end +do local k = l[645] +k.orgnames = l[4] +k.opclass = l[574] +k.operands = l[30] +k.sub = 6 +k.name = "VCMPNLEPD_XXX" +end +do local k = l[646] +k.orgnames = l[4] +k.opclass = l[577] +k.operands = l[380] +k.sub = 6 +k.name = "VCMPNLEPD_YYM" +end +do local k = l[647] +k.orgnames = l[4] +k.opclass = l[579] +k.operands = l[387] +k.sub = 6 +k.name = "VCMPNLEPD_YYY" +end +do local k = l[648] +k.orgnames = l[4] +k.opclass = l[581] +k.operands = l[16] +k.sub = 6 +k.name = "VCMPNLEPS_XXM" +end +do local k = l[649] +k.orgnames = l[4] +k.opclass = l[583] +k.operands = l[30] +k.sub = 6 +k.name = "VCMPNLEPS_XXX" +end +do local k = l[650] +k.orgnames = l[4] +k.opclass = l[585] +k.operands = l[380] +k.sub = 6 +k.name = "VCMPNLEPS_YYM" +end +do local k = l[651] +k.orgnames = l[4] +k.opclass = l[587] +k.operands = l[387] +k.sub = 6 +k.name = "VCMPNLEPS_YYY" +end +do local k = l[652] +k.orgnames = l[4] +k.opclass = l[589] +k.operands = l[591] +k.sub = 6 +k.name = "VCMPNLESD_XXM64" +end +do local k = l[653] +k.orgnames = l[4] +k.opclass = l[596] +k.operands = l[30] +k.sub = 6 +k.name = "VCMPNLESD_XXX" +end +do local k = l[654] +k.orgnames = l[4] +k.opclass = l[599] +k.operands = l[601] +k.sub = 6 +k.name = "VCMPNLESS_XXM32" +end +do local k = l[655] +k.orgnames = l[4] +k.opclass = l[606] +k.operands = l[30] +k.sub = 6 +k.name = "VCMPNLESS_XXX" +end +do local k = l[656] +k.orgnames = l[4] +k.opclass = l[571] +k.operands = l[16] +k.sub = 5 +k.name = "VCMPNLTPD_XXM" +end +do local k = l[657] +k.orgnames = l[4] +k.opclass = l[574] +k.operands = l[30] +k.sub = 5 +k.name = "VCMPNLTPD_XXX" +end +do local k = l[658] +k.orgnames = l[4] +k.opclass = l[577] +k.operands = l[380] +k.sub = 5 +k.name = "VCMPNLTPD_YYM" +end +do local k = l[659] +k.orgnames = l[4] +k.opclass = l[579] +k.operands = l[387] +k.sub = 5 +k.name = "VCMPNLTPD_YYY" +end +do local k = l[660] +k.orgnames = l[4] +k.opclass = l[581] +k.operands = l[16] +k.sub = 5 +k.name = "VCMPNLTPS_XXM" +end +do local k = l[661] +k.orgnames = l[4] +k.opclass = l[583] +k.operands = l[30] +k.sub = 5 +k.name = "VCMPNLTPS_XXX" +end +do local k = l[662] +k.orgnames = l[4] +k.opclass = l[585] +k.operands = l[380] +k.sub = 5 +k.name = "VCMPNLTPS_YYM" +end +do local k = l[663] +k.orgnames = l[4] +k.opclass = l[587] +k.operands = l[387] +k.sub = 5 +k.name = "VCMPNLTPS_YYY" +end +do local k = l[664] +k.orgnames = l[4] +k.opclass = l[589] +k.operands = l[591] +k.sub = 5 +k.name = "VCMPNLTSD_XXM64" +end +do local k = l[665] +k.orgnames = l[4] +k.opclass = l[596] +k.operands = l[30] +k.sub = 5 +k.name = "VCMPNLTSD_XXX" +end +do local k = l[666] +k.orgnames = l[4] +k.opclass = l[599] +k.operands = l[601] +k.sub = 5 +k.name = "VCMPNLTSS_XXM32" +end +do local k = l[667] +k.orgnames = l[4] +k.opclass = l[606] +k.operands = l[30] +k.sub = 5 +k.name = "VCMPNLTSS_XXX" +end +do local k = l[668] +k.orgnames = l[4] +k.opclass = l[571] +k.operands = l[16] +k.sub = 7 +k.name = "VCMPORDPD_XXM" +end +do local k = l[669] +k.orgnames = l[4] +k.opclass = l[574] +k.operands = l[30] +k.sub = 7 +k.name = "VCMPORDPD_XXX" +end +do local k = l[670] +k.orgnames = l[4] +k.opclass = l[577] +k.operands = l[380] +k.sub = 7 +k.name = "VCMPORDPD_YYM" +end +do local k = l[671] +k.orgnames = l[4] +k.opclass = l[579] +k.operands = l[387] +k.sub = 7 +k.name = "VCMPORDPD_YYY" +end +do local k = l[672] +k.orgnames = l[4] +k.opclass = l[581] +k.operands = l[16] +k.sub = 7 +k.name = "VCMPORDPS_XXM" +end +do local k = l[673] +k.orgnames = l[4] +k.opclass = l[583] +k.operands = l[30] +k.sub = 7 +k.name = "VCMPORDPS_XXX" +end +do local k = l[674] +k.orgnames = l[4] +k.opclass = l[585] +k.operands = l[380] +k.sub = 7 +k.name = "VCMPORDPS_YYM" +end +do local k = l[675] +k.orgnames = l[4] +k.opclass = l[587] +k.operands = l[387] +k.sub = 7 +k.name = "VCMPORDPS_YYY" +end +do local k = l[676] +k.orgnames = l[4] +k.opclass = l[589] +k.operands = l[591] +k.sub = 7 +k.name = "VCMPORDSD_XXM64" +end +do local k = l[677] +k.orgnames = l[4] +k.opclass = l[596] +k.operands = l[30] +k.sub = 7 +k.name = "VCMPORDSD_XXX" +end +do local k = l[678] +k.orgnames = l[4] +k.opclass = l[599] +k.operands = l[601] +k.sub = 7 +k.name = "VCMPORDSS_XXM32" +end +do local k = l[679] +k.orgnames = l[4] +k.opclass = l[606] +k.operands = l[30] +k.sub = 7 +k.name = "VCMPORDSS_XXX" +end +do local k = l[680] +k.orgnames = l[4] +k.opclass = l[571] +k.operands = l[16] +k.sub = 3 +k.name = "VCMPUNORDPD_XXM" +end +do local k = l[681] +k.orgnames = l[4] +k.opclass = l[574] +k.operands = l[30] +k.sub = 3 +k.name = "VCMPUNORDPD_XXX" +end +do local k = l[682] +k.orgnames = l[4] +k.opclass = l[577] +k.operands = l[380] +k.sub = 3 +k.name = "VCMPUNORDPD_YYM" +end +do local k = l[683] +k.orgnames = l[4] +k.opclass = l[579] +k.operands = l[387] +k.sub = 3 +k.name = "VCMPUNORDPD_YYY" +end +do local k = l[684] +k.orgnames = l[4] +k.opclass = l[581] +k.operands = l[16] +k.sub = 3 +k.name = "VCMPUNORDPS_XXM" +end +do local k = l[685] +k.orgnames = l[4] +k.opclass = l[583] +k.operands = l[30] +k.sub = 3 +k.name = "VCMPUNORDPS_XXX" +end +do local k = l[686] +k.orgnames = l[4] +k.opclass = l[585] +k.operands = l[380] +k.sub = 3 +k.name = "VCMPUNORDPS_YYM" +end +do local k = l[687] +k.orgnames = l[4] +k.opclass = l[587] +k.operands = l[387] +k.sub = 3 +k.name = "VCMPUNORDPS_YYY" +end +do local k = l[688] +k.orgnames = l[4] +k.opclass = l[589] +k.operands = l[591] +k.sub = 3 +k.name = "VCMPUNORDSD_XXM64" +end +do local k = l[689] +k.orgnames = l[4] +k.opclass = l[596] +k.operands = l[30] +k.sub = 3 +k.name = "VCMPUNORDSD_XXX" +end +do local k = l[690] +k.orgnames = l[4] +k.opclass = l[599] +k.operands = l[601] +k.sub = 3 +k.name = "VCMPUNORDSS_XXM32" +end +do local k = l[691] +k.orgnames = l[4] +k.opclass = l[606] +k.operands = l[30] +k.sub = 3 +k.name = "VCMPUNORDSS_XXX" +end +do local k = l[692] +k.orgnames = l[41] +k.opclass = l[693] +k.operands = l[701] +k.sub = 15 +k.name = "VCOMISD_XM64" +end +do local k = l[693] +k.isa = l[475] +k.code = l[7] +k.id = 164 +k.layout = l[694] +k.impregs = l[697] +k.flags = l[699] +k.parm = 32 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|vex-66-0f-R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{rmem, wflags}" +k.prefixclass = l[700] +end +do local k = l[694] +k[1] = l[695] +k[2] = l[696] +k.id = 24 +k.sig = "{{MemId, use, p1}, {RegId, use, p2}}" +end +do local k = l[695] +k[1] = "MemId" +k[2] = "use" +k[3] = "p1" +end +do local k = l[696] +k[1] = "RegId" +k[2] = "use" +k[3] = "p2" +end +do local k = l[697] +k[1] = l[698] +k.id = 2 +k.sig = "{{FLAGS, def}}" +end +do local k = l[698] +k[1] = "FLAGS" +k[2] = "def" +end +do local k = l[699] +k[1] = "rmem" +k[2] = "wflags" +k.id = 10 +k.sig = "{rmem, wflags}" +end +do local k = l[700] +k.extopcode = "0f" +k.rex = l[312] +k.id = 89 +k.pref = "66" +k.sig = "vex-66-0f-R2M1" +end +do local k = l[701] +k[1] = l[702] +k[2] = l[703] +k.id = 264 +k.sig = "{{mode = i,type = VR128,name = p2}, {mode = i,type = i64*,name = p1}}" +end +do local k = l[702] +k.mode = "i" +k.type = "VR128" +k.name = "p2" +end +do local k = l[703] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[704] +k.orgnames = l[41] +k.opclass = l[705] +k.operands = l[711] +k.sub = 15 +k.name = "VCOMISD_XX" +end +do local k = l[705] +k.isa = l[475] +k.code = l[22] +k.id = 310 +k.layout = l[706] +k.impregs = l[697] +k.flags = l[709] +k.parm = 32 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|vex-66-0f-R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR20|{wflags}" +k.prefixclass = l[710] +end +do local k = l[706] +k[1] = l[707] +k[2] = l[708] +k.id = 5 +k.sig = "{{RegId, use, p1}, {RegId, use, p2}}" +end +do local k = l[707] +k[1] = "RegId" +k[2] = "use" +k[3] = "p1" +end +do local k = l[708] +k[1] = "RegId" +k[2] = "use" +k[3] = "p2" +end +do local k = l[709] +k[1] = "wflags" +k.id = 2 +k.sig = "{wflags}" +end +do local k = l[710] +k.extopcode = "0f" +k.rex = l[171] +k.id = 78 +k.pref = "66" +k.sig = "vex-66-0f-R2B1" +end +do local k = l[711] +k[1] = l[712] +k[2] = l[713] +k.id = 195 +k.sig = "{{mode = i,type = VR128,name = p2}, {mode = i,type = VR128,name = p1}}" +end +do local k = l[712] +k.mode = "i" +k.type = "VR128" +k.name = "p2" +end +do local k = l[713] +k.mode = "i" +k.type = "VR128" +k.name = "p1" +end +do local k = l[714] +k.orgnames = l[41] +k.opclass = l[715] +k.operands = l[717] +k.sub = 15 +k.name = "VCOMISS_XM32" +end +do local k = l[715] +k.isa = l[475] +k.code = l[7] +k.id = 163 +k.layout = l[694] +k.impregs = l[697] +k.flags = l[699] +k.parm = 32 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|vex-0f-R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{rmem, wflags}" +k.prefixclass = l[716] +end +do local k = l[716] +k.extopcode = "0f" +k.rex = l[312] +k.id = 85 +k.pref = "" +k.sig = "vex-0f-R2M1" +end +do local k = l[717] +k[1] = l[718] +k[2] = l[719] +k.id = 221 +k.sig = "{{mode = i,type = VR128,name = p2}, {mode = i,type = i32*,name = p1}}" +end +do local k = l[718] +k.mode = "i" +k.type = "VR128" +k.name = "p2" +end +do local k = l[719] +k.mode = "i" +k.type = "i32*" +k.name = "p1" +end +do local k = l[720] +k.orgnames = l[41] +k.opclass = l[721] +k.operands = l[711] +k.sub = 15 +k.name = "VCOMISS_XX" +end +do local k = l[721] +k.isa = l[475] +k.code = l[22] +k.id = 309 +k.layout = l[706] +k.impregs = l[697] +k.flags = l[709] +k.parm = 32 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|vex-0f-R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR20|{wflags}" +k.prefixclass = l[722] +end +do local k = l[722] +k.extopcode = "0f" +k.rex = l[171] +k.id = 74 +k.pref = "" +k.sig = "vex-0f-R2B1" +end +do local k = l[723] +k.orgnames = l[41] +k.opclass = l[724] +k.operands = l[339] +k.sub = 6 +k.name = "VCVTDQ2PD_XM64" +end +do local k = l[724] +k.isa = l[475] +k.code = l[7] +k.id = 154 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 224 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-f3-0f-R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{rmem}" +k.prefixclass = l[725] +end +do local k = l[725] +k.extopcode = "0f" +k.rex = l[312] +k.id = 90 +k.pref = "f3" +k.sig = "vex-f3-0f-R2M1" +end +do local k = l[726] +k.orgnames = l[41] +k.opclass = l[727] +k.operands = l[58] +k.sub = 6 +k.name = "VCVTDQ2PD_XX" +end +do local k = l[727] +k.isa = l[475] +k.code = l[22] +k.id = 302 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 224 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-f3-0f-R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PARE0|{}" +k.prefixclass = l[728] +end +do local k = l[728] +k.extopcode = "0f" +k.rex = l[171] +k.id = 79 +k.pref = "f3" +k.sig = "vex-f3-0f-R2B1" +end +do local k = l[729] +k.orgnames = l[41] +k.opclass = l[730] +k.operands = l[158] +k.sub = 6 +k.name = "VCVTDQ2PD_YM128" +end +do local k = l[730] +k.isa = l[475] +k.code = l[7] +k.id = 148 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 224 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-f3-0f-128.R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{rmem}" +k.prefixclass = l[731] +end +do local k = l[731] +k.extopcode = "0f" +k.rex = l[157] +k.id = 110 +k.pref = "f3" +k.sig = "vex-f3-0f-128.R2M1" +end +do local k = l[732] +k.orgnames = l[41] +k.opclass = l[733] +k.operands = l[165] +k.sub = 6 +k.name = "VCVTDQ2PD_YX" +end +do local k = l[733] +k.isa = l[475] +k.code = l[22] +k.id = 296 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 224 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-f3-0f-128.R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PARE0|{}" +k.prefixclass = l[734] +end +do local k = l[734] +k.extopcode = "0f" +k.rex = l[164] +k.id = 101 +k.pref = "f3" +k.sig = "vex-f3-0f-128.R2B1" +end +do local k = l[735] +k.orgnames = l[41] +k.opclass = l[736] +k.operands = l[48] +k.sub = 27 +k.name = "VCVTDQ2PS_XM" +end +do local k = l[736] +k.isa = l[475] +k.code = l[7] +k.id = 128 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-0f-R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR40|{rmem}" +k.prefixclass = l[716] +end +do local k = l[737] +k.orgnames = l[41] +k.opclass = l[738] +k.operands = l[58] +k.sub = 27 +k.name = "VCVTDQ2PS_XX" +end +do local k = l[738] +k.isa = l[475] +k.code = l[22] +k.id = 276 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-0f-R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR40|{}" +k.prefixclass = l[722] +end +do local k = l[739] +k.orgnames = l[41] +k.opclass = l[740] +k.operands = l[742] +k.sub = 27 +k.name = "VCVTDQ2PS_YM" +end +do local k = l[740] +k.isa = l[475] +k.code = l[7] +k.id = 127 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-0f-128.R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR40|{rmem}" +k.prefixclass = l[741] +end +do local k = l[741] +k.extopcode = "0f" +k.rex = l[157] +k.id = 105 +k.pref = "" +k.sig = "vex-0f-128.R2M1" +end +do local k = l[742] +k[1] = l[743] +k[2] = l[744] +k.id = 254 +k.sig = "{{mode = o,type = VR256,name = p2}, {mode = i,type = i256*,name = p1}}" +end +do local k = l[743] +k.mode = "o" +k.type = "VR256" +k.name = "p2" +end +do local k = l[744] +k.mode = "i" +k.type = "i256*" +k.name = "p1" +end +do local k = l[745] +k.orgnames = l[41] +k.opclass = l[746] +k.operands = l[748] +k.sub = 27 +k.name = "VCVTDQ2PS_YY" +end +do local k = l[746] +k.isa = l[475] +k.code = l[22] +k.id = 275 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-0f-128.R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR40|{}" +k.prefixclass = l[747] +end +do local k = l[747] +k.extopcode = "0f" +k.rex = l[164] +k.id = 96 +k.pref = "" +k.sig = "vex-0f-128.R2B1" +end +do local k = l[748] +k[1] = l[749] +k[2] = l[750] +k.id = 242 +k.sig = "{{mode = o,type = VR256,name = p2}, {mode = i,type = VR256,name = p1}}" +end +do local k = l[749] +k.mode = "o" +k.type = "VR256" +k.name = "p2" +end +do local k = l[750] +k.mode = "i" +k.type = "VR256" +k.name = "p1" +end +do local k = l[751] +k.orgnames = l[41] +k.opclass = l[752] +k.operands = l[48] +k.sub = 6 +k.name = "VCVTPD2DQ_XM" +end +do local k = l[752] +k.isa = l[475] +k.code = l[7] +k.id = 144 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 224 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-f2-0f-R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{rmem}" +k.prefixclass = l[753] +end +do local k = l[753] +k.extopcode = "0f" +k.rex = l[312] +k.id = 124 +k.pref = "f2" +k.sig = "vex-f2-0f-R2M1" +end +do local k = l[754] +k.orgnames = l[41] +k.opclass = l[755] +k.operands = l[757] +k.sub = 6 +k.name = "VCVTPD2DQ_XM256" +end +do local k = l[755] +k.isa = l[475] +k.code = l[7] +k.id = 141 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 224 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-f2-0f-128.R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{rmem}" +k.prefixclass = l[756] +end +do local k = l[756] +k.extopcode = "0f" +k.rex = l[157] +k.id = 133 +k.pref = "f2" +k.sig = "vex-f2-0f-128.R2M1" +end +do local k = l[757] +k[1] = l[758] +k[2] = l[759] +k.id = 269 +k.sig = "{{mode = o,type = VR128,name = p2}, {mode = i,type = i256*,name = p1}}" +end +do local k = l[758] +k.mode = "o" +k.type = "VR128" +k.name = "p2" +end +do local k = l[759] +k.mode = "i" +k.type = "i256*" +k.name = "p1" +end +do local k = l[760] +k.orgnames = l[41] +k.opclass = l[761] +k.operands = l[58] +k.sub = 6 +k.name = "VCVTPD2DQ_XX" +end +do local k = l[761] +k.isa = l[475] +k.code = l[22] +k.id = 292 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 224 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-f2-0f-R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PARE0|{}" +k.prefixclass = l[762] +end +do local k = l[762] +k.extopcode = "0f" +k.rex = l[171] +k.id = 119 +k.pref = "f2" +k.sig = "vex-f2-0f-R2B1" +end +do local k = l[763] +k.orgnames = l[41] +k.opclass = l[764] +k.operands = l[766] +k.sub = 6 +k.name = "VCVTPD2DQ_XY" +end +do local k = l[764] +k.isa = l[475] +k.code = l[22] +k.id = 289 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 224 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-f2-0f-128.R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PARE0|{}" +k.prefixclass = l[765] +end +do local k = l[765] +k.extopcode = "0f" +k.rex = l[164] +k.id = 129 +k.pref = "f2" +k.sig = "vex-f2-0f-128.R2B1" +end +do local k = l[766] +k[1] = l[767] +k[2] = l[768] +k.id = 268 +k.sig = "{{mode = o,type = VR128,name = p2}, {mode = i,type = VR256,name = p1}}" +end +do local k = l[767] +k.mode = "o" +k.type = "VR128" +k.name = "p2" +end +do local k = l[768] +k.mode = "i" +k.type = "VR256" +k.name = "p1" +end +do local k = l[769] +k.orgnames = l[41] +k.opclass = l[770] +k.operands = l[48] +k.sub = 26 +k.name = "VCVTPD2PS_XM" +end +do local k = l[770] +k.isa = l[475] +k.code = l[7] +k.id = 132 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f-R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR40|{rmem}" +k.prefixclass = l[700] +end +do local k = l[771] +k.orgnames = l[41] +k.opclass = l[772] +k.operands = l[757] +k.sub = 26 +k.name = "VCVTPD2PS_XM256" +end +do local k = l[772] +k.isa = l[475] +k.code = l[7] +k.id = 129 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f-128.R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR40|{rmem}" +k.prefixclass = l[773] +end +do local k = l[773] +k.extopcode = "0f" +k.rex = l[157] +k.id = 109 +k.pref = "66" +k.sig = "vex-66-0f-128.R2M1" +end +do local k = l[774] +k.orgnames = l[41] +k.opclass = l[775] +k.operands = l[58] +k.sub = 26 +k.name = "VCVTPD2PS_XX" +end +do local k = l[775] +k.isa = l[475] +k.code = l[22] +k.id = 281 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f-R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR40|{}" +k.prefixclass = l[710] +end +do local k = l[776] +k.orgnames = l[41] +k.opclass = l[777] +k.operands = l[766] +k.sub = 26 +k.name = "VCVTPD2PS_XY" +end +do local k = l[777] +k.isa = l[475] +k.code = l[22] +k.id = 277 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f-128.R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR40|{}" +k.prefixclass = l[778] +end +do local k = l[778] +k.extopcode = "0f" +k.rex = l[164] +k.id = 100 +k.pref = "66" +k.sig = "vex-66-0f-128.R2B1" +end +do local k = l[779] +k.orgnames = l[41] +k.opclass = l[770] +k.operands = l[48] +k.sub = 27 +k.name = "VCVTPS2DQ_XM" +end +do local k = l[780] +k.orgnames = l[41] +k.opclass = l[775] +k.operands = l[58] +k.sub = 27 +k.name = "VCVTPS2DQ_XX" +end +do local k = l[781] +k.orgnames = l[41] +k.opclass = l[772] +k.operands = l[742] +k.sub = 27 +k.name = "VCVTPS2DQ_YM" +end +do local k = l[782] +k.orgnames = l[41] +k.opclass = l[777] +k.operands = l[748] +k.sub = 27 +k.name = "VCVTPS2DQ_YY" +end +do local k = l[783] +k.orgnames = l[41] +k.opclass = l[736] +k.operands = l[339] +k.sub = 26 +k.name = "VCVTPS2PD_XM64" +end +do local k = l[784] +k.orgnames = l[41] +k.opclass = l[738] +k.operands = l[58] +k.sub = 26 +k.name = "VCVTPS2PD_XX" +end +do local k = l[785] +k.orgnames = l[41] +k.opclass = l[740] +k.operands = l[158] +k.sub = 26 +k.name = "VCVTPS2PD_YM128" +end +do local k = l[786] +k.orgnames = l[41] +k.opclass = l[746] +k.operands = l[165] +k.sub = 26 +k.name = "VCVTPS2PD_YX" +end +do local k = l[787] +k.orgnames = l[41] +k.opclass = l[788] +k.operands = l[791] +k.sub = 13 +k.name = "VCVTSD2SI_DM64" +end +do local k = l[788] +k.isa = l[475] +k.code = l[7] +k.id = 145 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 32 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-f2-0f-WR2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{rmem}" +k.prefixclass = l[789] +end +do local k = l[789] +k.extopcode = "0f" +k.rex = l[790] +k.id = 127 +k.pref = "f2" +k.sig = "vex-f2-0f-WR2M1" +end +do local k = l[790] +k.r64 = "1" +k.rm = "p1" +k.reg = "p2" +k.sig = "{r64 = 1,rm = p1,src1 = 0,reg = p2,mode = rm,vex = true,l = 0}" +k.src1 = "0" +k.id = 24 +k.l = "0" +k.vex = true +k.mode = "rm" +end +do local k = l[791] +k[1] = l[792] +k[2] = l[793] +k.id = 142 +k.sig = "{{mode = o,type = GR64,name = p2}, {mode = i,type = i64*,name = p1}}" +end +do local k = l[792] +k.mode = "o" +k.type = "GR64" +k.name = "p2" +end +do local k = l[793] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[794] +k.orgnames = l[41] +k.opclass = l[795] +k.operands = l[798] +k.sub = 13 +k.name = "VCVTSD2SI_DX" +end +do local k = l[795] +k.isa = l[475] +k.code = l[22] +k.id = 293 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 32 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-f2-0f-WR2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR20|{}" +k.prefixclass = l[796] +end +do local k = l[796] +k.extopcode = "0f" +k.rex = l[797] +k.id = 122 +k.pref = "f2" +k.sig = "vex-f2-0f-WR2B1" +end +do local k = l[797] +k.r64 = "1" +k.rm = "p1" +k.reg = "p2" +k.sig = "{r64 = 1,rm = p1,src1 = 0,reg = p2,mode = rr,vex = true,l = 0}" +k.src1 = "0" +k.id = 13 +k.l = "0" +k.vex = true +k.mode = "rr" +end +do local k = l[798] +k[1] = l[799] +k[2] = l[800] +k.id = 205 +k.sig = "{{mode = o,type = GR64,name = p2}, {mode = i,type = VR128,name = p1}}" +end +do local k = l[799] +k.mode = "o" +k.type = "GR64" +k.name = "p2" +end +do local k = l[800] +k.mode = "i" +k.type = "VR128" +k.name = "p1" +end +do local k = l[801] +k.orgnames = l[41] +k.opclass = l[802] +k.operands = l[803] +k.sub = 13 +k.name = "VCVTSD2SI_WM64" +end +do local k = l[802] +k.isa = l[475] +k.code = l[7] +k.id = 143 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 32 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-f2-0f-R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{rmem}" +k.prefixclass = l[753] +end +do local k = l[803] +k[1] = l[804] +k[2] = l[805] +k.id = 265 +k.sig = "{{mode = o,type = GR32,name = p2}, {mode = i,type = i64*,name = p1}}" +end +do local k = l[804] +k.mode = "o" +k.type = "GR32" +k.name = "p2" +end +do local k = l[805] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[806] +k.orgnames = l[41] +k.opclass = l[807] +k.operands = l[808] +k.sub = 13 +k.name = "VCVTSD2SI_WX" +end +do local k = l[807] +k.isa = l[475] +k.code = l[22] +k.id = 291 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 32 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-f2-0f-R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR20|{}" +k.prefixclass = l[762] +end +do local k = l[808] +k[1] = l[809] +k[2] = l[810] +k.id = 200 +k.sig = "{{mode = o,type = GR32,name = p2}, {mode = i,type = VR128,name = p1}}" +end +do local k = l[809] +k.mode = "o" +k.type = "GR32" +k.name = "p2" +end +do local k = l[810] +k.mode = "i" +k.type = "VR128" +k.name = "p1" +end +do local k = l[811] +k.orgnames = l[4] +k.opclass = l[812] +k.operands = l[591] +k.sub = 26 +k.name = "VCVTSD2SS_XXM64" +end +do local k = l[812] +k.isa = l[475] +k.code = l[7] +k.id = 120 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-f2-0f-R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR40|{rmem}" +k.prefixclass = l[590] +end +do local k = l[813] +k.orgnames = l[4] +k.opclass = l[814] +k.operands = l[30] +k.sub = 26 +k.name = "VCVTSD2SS_XXX" +end +do local k = l[814] +k.isa = l[475] +k.code = l[22] +k.id = 266 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-f2-0f-R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PAR40|{}" +k.prefixclass = l[597] +end +do local k = l[815] +k.orgnames = l[4] +k.opclass = l[816] +k.operands = l[818] +k.sub = 10 +k.name = "VCVTSI2SD_XXD" +end +do local k = l[816] +k.isa = l[475] +k.code = l[22] +k.id = 269 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 32 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-f2-0f-WR2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PAR20|{}" +k.prefixclass = l[817] +end +do local k = l[817] +k.extopcode = "0f" +k.rex = l[255] +k.id = 121 +k.pref = "f2" +k.sig = "vex-f2-0f-WR2B1S3" +end +do local k = l[818] +k[1] = l[819] +k[2] = l[820] +k[3] = l[821] +k.id = 227 +k.sig = "{{mode = o,type = VR128,name = p2}, {mode = i,type = VR128,name = p3}, {mode = i,type = GR64,name = p1}}" +end +do local k = l[819] +k.mode = "o" +k.type = "VR128" +k.name = "p2" +end +do local k = l[820] +k.mode = "i" +k.type = "VR128" +k.name = "p3" +end +do local k = l[821] +k.mode = "i" +k.type = "GR64" +k.name = "p1" +end +do local k = l[822] +k.orgnames = l[4] +k.opclass = l[823] +k.operands = l[601] +k.sub = 10 +k.name = "VCVTSI2SD_XXM32" +end +do local k = l[823] +k.isa = l[475] +k.code = l[7] +k.id = 119 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 32 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-f2-0f-R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{rmem}" +k.prefixclass = l[590] +end +do local k = l[824] +k.orgnames = l[4] +k.opclass = l[825] +k.operands = l[591] +k.sub = 10 +k.name = "VCVTSI2SD_XXM64" +end +do local k = l[825] +k.isa = l[475] +k.code = l[7] +k.id = 122 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 32 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-f2-0f-WR2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{rmem}" +k.prefixclass = l[826] +end +do local k = l[826] +k.extopcode = "0f" +k.rex = l[207] +k.id = 126 +k.pref = "f2" +k.sig = "vex-f2-0f-WR2M1S3" +end +do local k = l[827] +k.orgnames = l[4] +k.opclass = l[828] +k.operands = l[829] +k.sub = 10 +k.name = "VCVTSI2SD_XXW" +end +do local k = l[828] +k.isa = l[475] +k.code = l[22] +k.id = 265 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 32 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-f2-0f-R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PAR20|{}" +k.prefixclass = l[597] +end +do local k = l[829] +k[1] = l[830] +k[2] = l[831] +k[3] = l[832] +k.id = 226 +k.sig = "{{mode = o,type = VR128,name = p2}, {mode = i,type = VR128,name = p3}, {mode = i,type = GR32,name = p1}}" +end +do local k = l[830] +k.mode = "o" +k.type = "VR128" +k.name = "p2" +end +do local k = l[831] +k.mode = "i" +k.type = "VR128" +k.name = "p3" +end +do local k = l[832] +k.mode = "i" +k.type = "GR32" +k.name = "p1" +end +do local k = l[833] +k.orgnames = l[4] +k.opclass = l[834] +k.operands = l[818] +k.sub = 10 +k.name = "VCVTSI2SS_XXD" +end +do local k = l[834] +k.isa = l[475] +k.code = l[22] +k.id = 274 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 32 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-f3-0f-WR2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PAR20|{}" +k.prefixclass = l[835] +end +do local k = l[835] +k.extopcode = "0f" +k.rex = l[255] +k.id = 83 +k.pref = "f3" +k.sig = "vex-f3-0f-WR2B1S3" +end +do local k = l[836] +k.orgnames = l[4] +k.opclass = l[837] +k.operands = l[601] +k.sub = 10 +k.name = "VCVTSI2SS_XXM32" +end +do local k = l[837] +k.isa = l[475] +k.code = l[7] +k.id = 123 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 32 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-f3-0f-R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{rmem}" +k.prefixclass = l[600] +end +do local k = l[838] +k.orgnames = l[4] +k.opclass = l[839] +k.operands = l[591] +k.sub = 10 +k.name = "VCVTSI2SS_XXM64" +end +do local k = l[839] +k.isa = l[475] +k.code = l[7] +k.id = 126 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 32 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-f3-0f-WR2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{rmem}" +k.prefixclass = l[840] +end +do local k = l[840] +k.extopcode = "0f" +k.rex = l[207] +k.id = 94 +k.pref = "f3" +k.sig = "vex-f3-0f-WR2M1S3" +end +do local k = l[841] +k.orgnames = l[4] +k.opclass = l[842] +k.operands = l[829] +k.sub = 10 +k.name = "VCVTSI2SS_XXW" +end +do local k = l[842] +k.isa = l[475] +k.code = l[22] +k.id = 270 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 32 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-f3-0f-R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PAR20|{}" +k.prefixclass = l[607] +end +do local k = l[843] +k.orgnames = l[4] +k.opclass = l[844] +k.operands = l[601] +k.sub = 26 +k.name = "VCVTSS2SD_XXM32" +end +do local k = l[844] +k.isa = l[475] +k.code = l[7] +k.id = 124 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-f3-0f-R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR40|{rmem}" +k.prefixclass = l[600] +end +do local k = l[845] +k.orgnames = l[4] +k.opclass = l[846] +k.operands = l[30] +k.sub = 26 +k.name = "VCVTSS2SD_XXX" +end +do local k = l[846] +k.isa = l[475] +k.code = l[22] +k.id = 271 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-f3-0f-R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PAR40|{}" +k.prefixclass = l[607] +end +do local k = l[847] +k.orgnames = l[41] +k.opclass = l[848] +k.operands = l[850] +k.sub = 13 +k.name = "VCVTSS2SI_DM32" +end +do local k = l[848] +k.isa = l[475] +k.code = l[7] +k.id = 156 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 32 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-f3-0f-WR2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{rmem}" +k.prefixclass = l[849] +end +do local k = l[849] +k.extopcode = "0f" +k.rex = l[790] +k.id = 95 +k.pref = "f3" +k.sig = "vex-f3-0f-WR2M1" +end +do local k = l[850] +k[1] = l[851] +k[2] = l[852] +k.id = 164 +k.sig = "{{mode = o,type = GR64,name = p2}, {mode = i,type = i32*,name = p1}}" +end +do local k = l[851] +k.mode = "o" +k.type = "GR64" +k.name = "p2" +end +do local k = l[852] +k.mode = "i" +k.type = "i32*" +k.name = "p1" +end +do local k = l[853] +k.orgnames = l[41] +k.opclass = l[854] +k.operands = l[798] +k.sub = 13 +k.name = "VCVTSS2SI_DX" +end +do local k = l[854] +k.isa = l[475] +k.code = l[22] +k.id = 304 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 32 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-f3-0f-WR2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR20|{}" +k.prefixclass = l[855] +end +do local k = l[855] +k.extopcode = "0f" +k.rex = l[797] +k.id = 84 +k.pref = "f3" +k.sig = "vex-f3-0f-WR2B1" +end +do local k = l[856] +k.orgnames = l[41] +k.opclass = l[857] +k.operands = l[858] +k.sub = 13 +k.name = "VCVTSS2SI_WM32" +end +do local k = l[857] +k.isa = l[475] +k.code = l[7] +k.id = 151 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 32 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-f3-0f-R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{rmem}" +k.prefixclass = l[725] +end +do local k = l[858] +k[1] = l[859] +k[2] = l[860] +k.id = 121 +k.sig = "{{mode = o,type = GR32,name = p2}, {mode = i,type = i32*,name = p1}}" +end +do local k = l[859] +k.mode = "o" +k.type = "GR32" +k.name = "p2" +end +do local k = l[860] +k.mode = "i" +k.type = "i32*" +k.name = "p1" +end +do local k = l[861] +k.orgnames = l[41] +k.opclass = l[862] +k.operands = l[808] +k.sub = 13 +k.name = "VCVTSS2SI_WX" +end +do local k = l[862] +k.isa = l[475] +k.code = l[22] +k.id = 299 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 32 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-f3-0f-R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR20|{}" +k.prefixclass = l[728] +end +do local k = l[863] +k.orgnames = l[41] +k.opclass = l[864] +k.operands = l[48] +k.sub = 6 +k.name = "VCVTTPD2DQ_XM" +end +do local k = l[864] +k.isa = l[475] +k.code = l[7] +k.id = 134 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 224 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f-R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{rmem}" +k.prefixclass = l[700] +end +do local k = l[865] +k.orgnames = l[41] +k.opclass = l[866] +k.operands = l[757] +k.sub = 6 +k.name = "VCVTTPD2DQ_XM256" +end +do local k = l[866] +k.isa = l[475] +k.code = l[7] +k.id = 130 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 224 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f-128.R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{rmem}" +k.prefixclass = l[773] +end +do local k = l[867] +k.orgnames = l[41] +k.opclass = l[868] +k.operands = l[58] +k.sub = 6 +k.name = "VCVTTPD2DQ_XX" +end +do local k = l[868] +k.isa = l[475] +k.code = l[22] +k.id = 284 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 224 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f-R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PARE0|{}" +k.prefixclass = l[710] +end +do local k = l[869] +k.orgnames = l[41] +k.opclass = l[870] +k.operands = l[766] +k.sub = 6 +k.name = "VCVTTPD2DQ_XY" +end +do local k = l[870] +k.isa = l[475] +k.code = l[22] +k.id = 279 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 224 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f-128.R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PARE0|{}" +k.prefixclass = l[778] +end +do local k = l[871] +k.orgnames = l[41] +k.opclass = l[872] +k.operands = l[48] +k.sub = 27 +k.name = "VCVTTPS2DQ_XM" +end +do local k = l[872] +k.isa = l[475] +k.code = l[7] +k.id = 152 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-f3-0f-R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR40|{rmem}" +k.prefixclass = l[725] +end +do local k = l[873] +k.orgnames = l[41] +k.opclass = l[874] +k.operands = l[58] +k.sub = 27 +k.name = "VCVTTPS2DQ_XX" +end +do local k = l[874] +k.isa = l[475] +k.code = l[22] +k.id = 300 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-f3-0f-R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR40|{}" +k.prefixclass = l[728] +end +do local k = l[875] +k.orgnames = l[41] +k.opclass = l[876] +k.operands = l[742] +k.sub = 27 +k.name = "VCVTTPS2DQ_YM" +end +do local k = l[876] +k.isa = l[475] +k.code = l[7] +k.id = 147 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-f3-0f-128.R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR40|{rmem}" +k.prefixclass = l[731] +end +do local k = l[877] +k.orgnames = l[41] +k.opclass = l[878] +k.operands = l[748] +k.sub = 27 +k.name = "VCVTTPS2DQ_YY" +end +do local k = l[878] +k.isa = l[475] +k.code = l[22] +k.id = 295 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-f3-0f-128.R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR40|{}" +k.prefixclass = l[734] +end +do local k = l[879] +k.orgnames = l[41] +k.opclass = l[788] +k.operands = l[791] +k.sub = 12 +k.name = "VCVTTSD2SI_DM64" +end +do local k = l[880] +k.orgnames = l[41] +k.opclass = l[795] +k.operands = l[798] +k.sub = 12 +k.name = "VCVTTSD2SI_DX" +end +do local k = l[881] +k.orgnames = l[41] +k.opclass = l[802] +k.operands = l[803] +k.sub = 12 +k.name = "VCVTTSD2SI_WM64" +end +do local k = l[882] +k.orgnames = l[41] +k.opclass = l[807] +k.operands = l[808] +k.sub = 12 +k.name = "VCVTTSD2SI_WX" +end +do local k = l[883] +k.orgnames = l[41] +k.opclass = l[848] +k.operands = l[850] +k.sub = 12 +k.name = "VCVTTSS2SI_DM32" +end +do local k = l[884] +k.orgnames = l[41] +k.opclass = l[854] +k.operands = l[798] +k.sub = 12 +k.name = "VCVTTSS2SI_DX" +end +do local k = l[885] +k.orgnames = l[41] +k.opclass = l[857] +k.operands = l[858] +k.sub = 12 +k.name = "VCVTTSS2SI_WM32" +end +do local k = l[886] +k.orgnames = l[41] +k.opclass = l[862] +k.operands = l[808] +k.sub = 12 +k.name = "VCVTTSS2SI_WX" +end +do local k = l[887] +k.orgnames = l[4] +k.opclass = l[474] +k.operands = l[16] +k.sub = 30 +k.name = "VDIVPD_XXM" +end +do local k = l[888] +k.orgnames = l[4] +k.opclass = l[478] +k.operands = l[30] +k.sub = 30 +k.name = "VDIVPD_XXX" +end +do local k = l[889] +k.orgnames = l[4] +k.opclass = l[481] +k.operands = l[380] +k.sub = 30 +k.name = "VDIVPD_YYM" +end +do local k = l[890] +k.orgnames = l[4] +k.opclass = l[484] +k.operands = l[387] +k.sub = 30 +k.name = "VDIVPD_YYY" +end +do local k = l[891] +k.orgnames = l[4] +k.opclass = l[487] +k.operands = l[16] +k.sub = 30 +k.name = "VDIVPS_XXM" +end +do local k = l[892] +k.orgnames = l[4] +k.opclass = l[490] +k.operands = l[30] +k.sub = 30 +k.name = "VDIVPS_XXX" +end +do local k = l[893] +k.orgnames = l[4] +k.opclass = l[493] +k.operands = l[380] +k.sub = 30 +k.name = "VDIVPS_YYM" +end +do local k = l[894] +k.orgnames = l[4] +k.opclass = l[496] +k.operands = l[387] +k.sub = 30 +k.name = "VDIVPS_YYY" +end +do local k = l[895] +k.orgnames = l[124] +k.opclass = l[896] +k.operands = l[134] +k.sub = 1 +k.name = "VDPPD_XXMI" +end +do local k = l[896] +k.isa = l[475] +k.code = l[127] +k.id = 88 +k.layout = l[128] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-66-0f3a-R2M1S3|{$parm+$sub, !RRMM($p2,$p1), !I8($p4)}|PAR40|{rmem}" +k.prefixclass = l[133] +end +do local k = l[897] +k.orgnames = l[124] +k.opclass = l[898] +k.operands = l[148] +k.sub = 1 +k.name = "VDPPD_XXXI" +end +do local k = l[898] +k.isa = l[475] +k.code = l[141] +k.id = 233 +k.layout = l[142] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-66-0f3a-R2B1S3|{$parm+$sub, !RRMR($p2,$p1), !I8($p4)}|PAR40|{}" +k.prefixclass = l[147] +end +do local k = l[899] +k.orgnames = l[124] +k.opclass = l[900] +k.operands = l[259] +k.sub = 1 +k.name = "VDPPD_YYMI" +end +do local k = l[900] +k.isa = l[475] +k.code = l[127] +k.id = 84 +k.layout = l[128] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-66-0f3a-128.R2M1S3|{$parm+$sub, !RRMM($p2,$p1), !I8($p4)}|PAR40|{rmem}" +k.prefixclass = l[234] +end +do local k = l[901] +k.orgnames = l[124] +k.opclass = l[902] +k.operands = l[268] +k.sub = 1 +k.name = "VDPPD_YYYI" +end +do local k = l[902] +k.isa = l[475] +k.code = l[141] +k.id = 229 +k.layout = l[142] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-66-0f3a-128.R2B1S3|{$parm+$sub, !RRMR($p2,$p1), !I8($p4)}|PAR40|{}" +k.prefixclass = l[242] +end +do local k = l[903] +k.orgnames = l[124] +k.opclass = l[904] +k.operands = l[134] +k.sub = 0 +k.name = "VDPPS_XXMI" +end +do local k = l[904] +k.isa = l[475] +k.code = l[127] +k.id = 78 +k.layout = l[128] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-0f3a-R2M1S3|{$parm+$sub, !RRMM($p2,$p1), !I8($p4)}|PAR40|{rmem}" +k.prefixclass = l[540] +end +do local k = l[905] +k.orgnames = l[124] +k.opclass = l[906] +k.operands = l[148] +k.sub = 0 +k.name = "VDPPS_XXXI" +end +do local k = l[906] +k.isa = l[475] +k.code = l[141] +k.id = 223 +k.layout = l[142] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-0f3a-R2B1S3|{$parm+$sub, !RRMR($p2,$p1), !I8($p4)}|PAR40|{}" +k.prefixclass = l[543] +end +do local k = l[907] +k.orgnames = l[124] +k.opclass = l[908] +k.operands = l[259] +k.sub = 0 +k.name = "VDPPS_YYMI" +end +do local k = l[908] +k.isa = l[475] +k.code = l[127] +k.id = 76 +k.layout = l[128] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-0f3a-128.R2M1S3|{$parm+$sub, !RRMM($p2,$p1), !I8($p4)}|PAR40|{rmem}" +k.prefixclass = l[546] +end +do local k = l[909] +k.orgnames = l[124] +k.opclass = l[910] +k.operands = l[268] +k.sub = 0 +k.name = "VDPPS_YYYI" +end +do local k = l[910] +k.isa = l[475] +k.code = l[141] +k.id = 221 +k.layout = l[142] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-0f3a-128.R2B1S3|{$parm+$sub, !RRMR($p2,$p1), !I8($p4)}|PAR40|{}" +k.prefixclass = l[549] +end +do local k = l[911] +k.orgnames = l[62] +k.opclass = l[912] +k.operands = l[181] +k.sub = 25 +k.name = "VEXTRACTF128_M128YI" +end +do local k = l[912] +k.isa = l[475] +k.code = l[64] +k.id = 161 +k.layout = l[175] +k.impregs = l[12] +k.flags = l[179] +k.parm = 0 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f3a-128.R2M1|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR 0|{wmem}" +k.prefixclass = l[180] +end +do local k = l[913] +k.orgnames = l[62] +k.opclass = l[914] +k.operands = l[192] +k.sub = 25 +k.name = "VEXTRACTF128_XYI" +end +do local k = l[914] +k.isa = l[475] +k.code = l[76] +k.id = 205 +k.layout = l[187] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{avx}|{{RegId, def, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f3a-128.R2B1|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR 0|{}" +k.prefixclass = l[191] +end +do local k = l[915] +k.orgnames = l[62] +k.opclass = l[916] +k.operands = l[918] +k.sub = 23 +k.name = "VEXTRACTPS_M32XI" +end +do local k = l[916] +k.isa = l[475] +k.code = l[64] +k.id = 162 +k.layout = l[175] +k.impregs = l[12] +k.flags = l[179] +k.parm = 0 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f3a-R2M1|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR 0|{wmem}" +k.prefixclass = l[917] +end +do local k = l[917] +k.extopcode = "0f3a" +k.rex = l[312] +k.id = 87 +k.pref = "66" +k.sig = "vex-66-0f3a-R2M1" +end +do local k = l[918] +k[1] = l[919] +k[2] = l[920] +k[3] = l[921] +k.id = 220 +k.sig = "{{mode = i,type = i32*,name = p1}, {mode = i,type = VR128,name = p2}, {mode = i,type = i8,name = p3}}" +end +do local k = l[919] +k.mode = "i" +k.type = "i32*" +k.name = "p1" +end +do local k = l[920] +k.mode = "i" +k.type = "VR128" +k.name = "p2" +end +do local k = l[921] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[922] +k.orgnames = l[62] +k.opclass = l[923] +k.operands = l[925] +k.sub = 23 +k.name = "VEXTRACTPS_WXI" +end +do local k = l[923] +k.isa = l[475] +k.code = l[76] +k.id = 206 +k.layout = l[187] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{avx}|{{RegId, def, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f3a-R2B1|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR 0|{}" +k.prefixclass = l[924] +end +do local k = l[924] +k.extopcode = "0f3a" +k.rex = l[171] +k.id = 76 +k.pref = "66" +k.sig = "vex-66-0f3a-R2B1" +end +do local k = l[925] +k[1] = l[926] +k[2] = l[927] +k[3] = l[928] +k.id = 202 +k.sig = "{{mode = o,type = VR128,name = p1}, {mode = i,type = VR128,name = p2}, {mode = i,type = i8,name = p3}}" +end +do local k = l[926] +k.mode = "o" +k.type = "VR128" +k.name = "p1" +end +do local k = l[927] +k.mode = "i" +k.type = "VR128" +k.name = "p2" +end +do local k = l[928] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[929] +k.orgnames = l[4] +k.opclass = l[930] +k.operands = l[16] +k.sub = 28 +k.name = "VHADDPD_XXM" +end +do local k = l[930] +k.isa = l[475] +k.code = l[7] +k.id = 109 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 96 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f-R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR60|{rmem}" +k.prefixclass = l[476] +end +do local k = l[931] +k.orgnames = l[4] +k.opclass = l[932] +k.operands = l[30] +k.sub = 28 +k.name = "VHADDPD_XXX" +end +do local k = l[932] +k.isa = l[475] +k.code = l[22] +k.id = 255 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 96 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f-R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PAR60|{}" +k.prefixclass = l[479] +end +do local k = l[933] +k.orgnames = l[4] +k.opclass = l[934] +k.operands = l[380] +k.sub = 28 +k.name = "VHADDPD_YYM" +end +do local k = l[934] +k.isa = l[475] +k.code = l[7] +k.id = 103 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 96 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f-128.R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR60|{rmem}" +k.prefixclass = l[482] +end +do local k = l[935] +k.orgnames = l[4] +k.opclass = l[936] +k.operands = l[387] +k.sub = 28 +k.name = "VHADDPD_YYY" +end +do local k = l[936] +k.isa = l[475] +k.code = l[22] +k.id = 249 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 96 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f-128.R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PAR60|{}" +k.prefixclass = l[485] +end +do local k = l[937] +k.orgnames = l[4] +k.opclass = l[938] +k.operands = l[16] +k.sub = 28 +k.name = "VHADDPS_XXM" +end +do local k = l[938] +k.isa = l[475] +k.code = l[7] +k.id = 98 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 96 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-0f-R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR60|{rmem}" +k.prefixclass = l[488] +end +do local k = l[939] +k.orgnames = l[4] +k.opclass = l[940] +k.operands = l[30] +k.sub = 28 +k.name = "VHADDPS_XXX" +end +do local k = l[940] +k.isa = l[475] +k.code = l[22] +k.id = 243 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 96 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-0f-R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PAR60|{}" +k.prefixclass = l[491] +end +do local k = l[941] +k.orgnames = l[4] +k.opclass = l[942] +k.operands = l[380] +k.sub = 28 +k.name = "VHADDPS_YYM" +end +do local k = l[942] +k.isa = l[475] +k.code = l[7] +k.id = 93 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 96 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-0f-128.R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR60|{rmem}" +k.prefixclass = l[494] +end +do local k = l[943] +k.orgnames = l[4] +k.opclass = l[944] +k.operands = l[387] +k.sub = 28 +k.name = "VHADDPS_YYY" +end +do local k = l[944] +k.isa = l[475] +k.code = l[22] +k.id = 238 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 96 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-0f-128.R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PAR60|{}" +k.prefixclass = l[497] +end +do local k = l[945] +k.orgnames = l[4] +k.opclass = l[930] +k.operands = l[16] +k.sub = 29 +k.name = "VHSUBPD_XXM" +end +do local k = l[946] +k.orgnames = l[4] +k.opclass = l[932] +k.operands = l[30] +k.sub = 29 +k.name = "VHSUBPD_XXX" +end +do local k = l[947] +k.orgnames = l[4] +k.opclass = l[934] +k.operands = l[380] +k.sub = 29 +k.name = "VHSUBPD_YYM" +end +do local k = l[948] +k.orgnames = l[4] +k.opclass = l[936] +k.operands = l[387] +k.sub = 29 +k.name = "VHSUBPD_YYY" +end +do local k = l[949] +k.orgnames = l[4] +k.opclass = l[938] +k.operands = l[16] +k.sub = 29 +k.name = "VHSUBPS_XXM" +end +do local k = l[950] +k.orgnames = l[4] +k.opclass = l[940] +k.operands = l[30] +k.sub = 29 +k.name = "VHSUBPS_XXX" +end +do local k = l[951] +k.orgnames = l[4] +k.opclass = l[942] +k.operands = l[380] +k.sub = 29 +k.name = "VHSUBPS_YYM" +end +do local k = l[952] +k.orgnames = l[4] +k.opclass = l[944] +k.operands = l[387] +k.sub = 29 +k.name = "VHSUBPS_YYY" +end +do local k = l[953] +k.orgnames = l[124] +k.opclass = l[535] +k.operands = l[235] +k.sub = 24 +k.name = "VINSERTF128_YYM128I" +end +do local k = l[954] +k.orgnames = l[124] +k.opclass = l[537] +k.operands = l[244] +k.sub = 24 +k.name = "VINSERTF128_YYXI" +end +do local k = l[955] +k.orgnames = l[124] +k.opclass = l[956] +k.operands = l[957] +k.sub = 1 +k.name = "VINSERTPS_XXM32I" +end +do local k = l[956] +k.isa = l[475] +k.code = l[127] +k.id = 87 +k.layout = l[128] +k.impregs = l[12] +k.flags = l[13] +k.parm = 32 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-66-0f3a-R2M1S3|{$parm+$sub, !RRMM($p2,$p1), !I8($p4)}|PAR20|{rmem}" +k.prefixclass = l[133] +end +do local k = l[957] +k[1] = l[958] +k[2] = l[959] +k[3] = l[960] +k[4] = l[961] +k.id = 237 +k.sig = "{{mode = o,type = VR128,name = p2}, {mode = i,type = VR128,name = p3}, {mode = i,type = i32*,name = p1}, {mode = i,type = i8,name = p4}}" +end +do local k = l[958] +k.mode = "o" +k.type = "VR128" +k.name = "p2" +end +do local k = l[959] +k.mode = "i" +k.type = "VR128" +k.name = "p3" +end +do local k = l[960] +k.mode = "i" +k.type = "i32*" +k.name = "p1" +end +do local k = l[961] +k.mode = "i" +k.type = "i8" +k.name = "p4" +end +do local k = l[962] +k.orgnames = l[124] +k.opclass = l[963] +k.operands = l[148] +k.sub = 1 +k.name = "VINSERTPS_XXXI" +end +do local k = l[963] +k.isa = l[475] +k.code = l[141] +k.id = 232 +k.layout = l[142] +k.impregs = l[12] +k.flags = l[27] +k.parm = 32 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-66-0f3a-R2B1S3|{$parm+$sub, !RRMR($p2,$p1), !I8($p4)}|PAR20|{}" +k.prefixclass = l[147] +end +do local k = l[964] +k.orgnames = l[41] +k.opclass = l[752] +k.operands = l[48] +k.sub = 16 +k.name = "VLDDQU_XM" +end +do local k = l[965] +k.orgnames = l[41] +k.opclass = l[755] +k.operands = l[742] +k.sub = 16 +k.name = "VLDDQU_YM" +end +do local k = l[966] +k.orgnames = l[967] +k.opclass = l[968] +k.operands = l[972] +k.sub = 23 +k.name = "VMASKMOVDQU_RDI_XM" +end +do local k = l[967] +k[1] = "tgt" +k[2] = "dst" +k[3] = "src" +k.id = 37 +k.sig = "{tgt, dst, src}" +end +do local k = l[968] +k.isa = l[475] +k.code = l[7] +k.id = 167 +k.layout = l[694] +k.impregs = l[969] +k.flags = l[971] +k.parm = 224 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{{rdi, use}}|vex-66-0f-R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{rmem, wmem}" +k.prefixclass = l[700] +end +do local k = l[969] +k[1] = l[970] +k.id = 26 +k.sig = "{{rdi, use}}" +end +do local k = l[970] +k[1] = "rdi" +k[2] = "use" +end +do local k = l[971] +k[1] = "rmem" +k[2] = "wmem" +k.id = 33 +k.sig = "{rmem, wmem}" +end +do local k = l[972] +k[1] = l[973] +k[2] = l[974] +k[3] = l[975] +k.id = 292 +k.sig = "{{mode = i,type = GR32,name = p3,fixed = rdi}, {mode = i,type = VR128,name = p2}, {mode = i,type = i128*,name = p1}}" +end +do local k = l[973] +k.mode = "i" +k.type = "GR32" +k.name = "p3" +k.fixed = "rdi" +end +do local k = l[974] +k.mode = "i" +k.type = "VR128" +k.name = "p2" +end +do local k = l[975] +k.mode = "i" +k.type = "i128*" +k.name = "p1" +end +do local k = l[976] +k.orgnames = l[967] +k.opclass = l[977] +k.operands = l[978] +k.sub = 23 +k.name = "VMASKMOVDQU_RDI_XX" +end +do local k = l[977] +k.isa = l[475] +k.code = l[22] +k.id = 313 +k.layout = l[706] +k.impregs = l[969] +k.flags = l[179] +k.parm = 224 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, use, p2}}|{{rdi, use}}|vex-66-0f-R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PARE0|{wmem}" +k.prefixclass = l[710] +end +do local k = l[978] +k[1] = l[979] +k[2] = l[980] +k[3] = l[981] +k.id = 282 +k.sig = "{{mode = i,type = GR32,name = p3,fixed = rdi}, {mode = i,type = VR128,name = p2}, {mode = i,type = VR128,name = p1}}" +end +do local k = l[979] +k.mode = "i" +k.type = "GR32" +k.name = "p3" +k.fixed = "rdi" +end +do local k = l[980] +k.mode = "i" +k.type = "VR128" +k.name = "p2" +end +do local k = l[981] +k.mode = "i" +k.type = "VR128" +k.name = "p1" +end +do local k = l[982] +k.orgnames = l[4] +k.opclass = l[474] +k.operands = l[16] +k.sub = 31 +k.name = "VMAXPD_XXM" +end +do local k = l[983] +k.orgnames = l[4] +k.opclass = l[478] +k.operands = l[30] +k.sub = 31 +k.name = "VMAXPD_XXX" +end +do local k = l[984] +k.orgnames = l[4] +k.opclass = l[481] +k.operands = l[380] +k.sub = 31 +k.name = "VMAXPD_YYM" +end +do local k = l[985] +k.orgnames = l[4] +k.opclass = l[484] +k.operands = l[387] +k.sub = 31 +k.name = "VMAXPD_YYY" +end +do local k = l[986] +k.orgnames = l[4] +k.opclass = l[487] +k.operands = l[16] +k.sub = 31 +k.name = "VMAXPS_XXM" +end +do local k = l[987] +k.orgnames = l[4] +k.opclass = l[490] +k.operands = l[30] +k.sub = 31 +k.name = "VMAXPS_XXX" +end +do local k = l[988] +k.orgnames = l[4] +k.opclass = l[493] +k.operands = l[380] +k.sub = 31 +k.name = "VMAXPS_YYM" +end +do local k = l[989] +k.orgnames = l[4] +k.opclass = l[496] +k.operands = l[387] +k.sub = 31 +k.name = "VMAXPS_YYY" +end +do local k = l[990] +k.orgnames = l[4] +k.opclass = l[474] +k.operands = l[16] +k.sub = 29 +k.name = "VMINPD_XXM" +end +do local k = l[991] +k.orgnames = l[4] +k.opclass = l[478] +k.operands = l[30] +k.sub = 29 +k.name = "VMINPD_XXX" +end +do local k = l[992] +k.orgnames = l[4] +k.opclass = l[481] +k.operands = l[380] +k.sub = 29 +k.name = "VMINPD_YYM" +end +do local k = l[993] +k.orgnames = l[4] +k.opclass = l[484] +k.operands = l[387] +k.sub = 29 +k.name = "VMINPD_YYY" +end +do local k = l[994] +k.orgnames = l[4] +k.opclass = l[487] +k.operands = l[16] +k.sub = 29 +k.name = "VMINPS_XXM" +end +do local k = l[995] +k.orgnames = l[4] +k.opclass = l[490] +k.operands = l[30] +k.sub = 29 +k.name = "VMINPS_XXX" +end +do local k = l[996] +k.orgnames = l[4] +k.opclass = l[493] +k.operands = l[380] +k.sub = 29 +k.name = "VMINPS_YYM" +end +do local k = l[997] +k.orgnames = l[4] +k.opclass = l[496] +k.operands = l[387] +k.sub = 29 +k.name = "VMINPS_YYY" +end +do local k = l[998] +k.orgnames = l[41] +k.opclass = l[999] +k.operands = l[1001] +k.name = "VMOVAPD_MX" +end +do local k = l[999] +k.isa = l[475] +k.code = l[1000] +k.id = 194 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 41 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{}|vex-66-0f-R2M1|{$parm, !RRMM($p2,$p1)}|PAR29|{wmem}" +k.prefixclass = l[700] +end +do local k = l[1000] +k[1] = "$parm" +k[2] = "!RRMM($p2,$p1)" +k.id = 25 +k.sig = "{$parm, !RRMM($p2,$p1)}" +end +do local k = l[1001] +k[1] = l[1002] +k[2] = l[1003] +k.id = 206 +k.sig = "{{mode = i,type = i128*,name = p1}, {mode = i,type = VR128,name = p2}}" +end +do local k = l[1002] +k.mode = "i" +k.type = "i128*" +k.name = "p1" +end +do local k = l[1003] +k.mode = "i" +k.type = "VR128" +k.name = "p2" +end +do local k = l[1004] +k.orgnames = l[41] +k.opclass = l[1005] +k.operands = l[1006] +k.name = "VMOVAPD_MY" +end +do local k = l[1005] +k.isa = l[475] +k.code = l[1000] +k.id = 185 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 41 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{}|vex-66-0f-128.R2M1|{$parm, !RRMM($p2,$p1)}|PAR29|{wmem}" +k.prefixclass = l[773] +end +do local k = l[1006] +k[1] = l[1007] +k[2] = l[1008] +k.id = 249 +k.sig = "{{mode = i,type = i256*,name = p1}, {mode = i,type = VR256,name = p2}}" +end +do local k = l[1007] +k.mode = "i" +k.type = "i256*" +k.name = "p1" +end +do local k = l[1008] +k.mode = "i" +k.type = "VR256" +k.name = "p2" +end +do local k = l[1009] +k.orgnames = l[41] +k.opclass = l[1010] +k.operands = l[1011] +k.name = "VMOVAPD_XM" +end +do local k = l[1010] +k.isa = l[475] +k.code = l[1000] +k.id = 193 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 40 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{}|vex-66-0f-R2M1|{$parm, !RRMM($p2,$p1)}|PAR28|{wmem}" +k.prefixclass = l[700] +end +do local k = l[1011] +k[1] = l[1012] +k[2] = l[1013] +k.id = 207 +k.sig = "{{mode = i,type = VR128,name = p2}, {mode = i,type = i128*,name = p1}}" +end +do local k = l[1012] +k.mode = "i" +k.type = "VR128" +k.name = "p2" +end +do local k = l[1013] +k.mode = "i" +k.type = "i128*" +k.name = "p1" +end +do local k = l[1014] +k.orgnames = l[41] +k.opclass = l[1015] +k.operands = l[711] +k.name = "VMOVAPD_XX" +end +do local k = l[1015] +k.isa = l[475] +k.code = l[1016] +k.id = 321 +k.layout = l[706] +k.impregs = l[12] +k.flags = l[179] +k.parm = 40 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, use, p2}}|{}|vex-66-0f-R2B1|{$parm, !RRMR($p2,$p1)}|PAR28|{wmem}" +k.prefixclass = l[710] +end +do local k = l[1016] +k[1] = "$parm" +k[2] = "!RRMR($p2,$p1)" +k.id = 1 +k.sig = "{$parm, !RRMR($p2,$p1)}" +end +do local k = l[1017] +k.orgnames = l[41] +k.opclass = l[1018] +k.operands = l[1019] +k.name = "VMOVAPD_YM" +end +do local k = l[1018] +k.isa = l[475] +k.code = l[1000] +k.id = 184 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 40 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{}|vex-66-0f-128.R2M1|{$parm, !RRMM($p2,$p1)}|PAR28|{wmem}" +k.prefixclass = l[773] +end +do local k = l[1019] +k[1] = l[1020] +k[2] = l[1021] +k.id = 250 +k.sig = "{{mode = i,type = VR256,name = p2}, {mode = i,type = i256*,name = p1}}" +end +do local k = l[1020] +k.mode = "i" +k.type = "VR256" +k.name = "p2" +end +do local k = l[1021] +k.mode = "i" +k.type = "i256*" +k.name = "p1" +end +do local k = l[1022] +k.orgnames = l[41] +k.opclass = l[1023] +k.operands = l[1024] +k.name = "VMOVAPD_YY" +end +do local k = l[1023] +k.isa = l[475] +k.code = l[1016] +k.id = 319 +k.layout = l[706] +k.impregs = l[12] +k.flags = l[179] +k.parm = 40 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, use, p2}}|{}|vex-66-0f-128.R2B1|{$parm, !RRMR($p2,$p1)}|PAR28|{wmem}" +k.prefixclass = l[778] +end +do local k = l[1024] +k[1] = l[1025] +k[2] = l[1026] +k.id = 238 +k.sig = "{{mode = i,type = VR256,name = p2}, {mode = i,type = VR256,name = p1}}" +end +do local k = l[1025] +k.mode = "i" +k.type = "VR256" +k.name = "p2" +end +do local k = l[1026] +k.mode = "i" +k.type = "VR256" +k.name = "p1" +end +do local k = l[1027] +k.orgnames = l[41] +k.opclass = l[1028] +k.operands = l[1001] +k.name = "VMOVAPS_MX" +end +do local k = l[1028] +k.isa = l[475] +k.code = l[1000] +k.id = 178 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 41 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{}|vex-0f-R2M1|{$parm, !RRMM($p2,$p1)}|PAR29|{wmem}" +k.prefixclass = l[716] +end +do local k = l[1029] +k.orgnames = l[41] +k.opclass = l[1030] +k.operands = l[1006] +k.name = "VMOVAPS_MY" +end +do local k = l[1030] +k.isa = l[475] +k.code = l[1000] +k.id = 172 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 41 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{}|vex-0f-128.R2M1|{$parm, !RRMM($p2,$p1)}|PAR29|{wmem}" +k.prefixclass = l[741] +end +do local k = l[1031] +k.orgnames = l[41] +k.opclass = l[1032] +k.operands = l[1011] +k.name = "VMOVAPS_XM" +end +do local k = l[1032] +k.isa = l[475] +k.code = l[1000] +k.id = 177 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 40 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{}|vex-0f-R2M1|{$parm, !RRMM($p2,$p1)}|PAR28|{wmem}" +k.prefixclass = l[716] +end +do local k = l[1033] +k.orgnames = l[41] +k.opclass = l[1034] +k.operands = l[711] +k.name = "VMOVAPS_XX" +end +do local k = l[1034] +k.isa = l[475] +k.code = l[1016] +k.id = 317 +k.layout = l[706] +k.impregs = l[12] +k.flags = l[179] +k.parm = 40 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, use, p2}}|{}|vex-0f-R2B1|{$parm, !RRMR($p2,$p1)}|PAR28|{wmem}" +k.prefixclass = l[722] +end +do local k = l[1035] +k.orgnames = l[41] +k.opclass = l[1036] +k.operands = l[1019] +k.name = "VMOVAPS_YM" +end +do local k = l[1036] +k.isa = l[475] +k.code = l[1000] +k.id = 171 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 40 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{}|vex-0f-128.R2M1|{$parm, !RRMM($p2,$p1)}|PAR28|{wmem}" +k.prefixclass = l[741] +end +do local k = l[1037] +k.orgnames = l[41] +k.opclass = l[1038] +k.operands = l[1024] +k.name = "VMOVAPS_YY" +end +do local k = l[1038] +k.isa = l[475] +k.code = l[1016] +k.id = 315 +k.layout = l[706] +k.impregs = l[12] +k.flags = l[179] +k.parm = 40 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, use, p2}}|{}|vex-0f-128.R2B1|{$parm, !RRMR($p2,$p1)}|PAR28|{wmem}" +k.prefixclass = l[747] +end +do local k = l[1039] +k.orgnames = l[41] +k.opclass = l[1040] +k.operands = l[339] +k.sub = 18 +k.name = "VMOVDDUP_XM64" +end +do local k = l[1040] +k.isa = l[475] +k.code = l[7] +k.id = 142 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-f2-0f-R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR 0|{rmem}" +k.prefixclass = l[753] +end +do local k = l[1041] +k.orgnames = l[41] +k.opclass = l[1042] +k.operands = l[58] +k.sub = 18 +k.name = "VMOVDDUP_XX" +end +do local k = l[1042] +k.isa = l[475] +k.code = l[22] +k.id = 290 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-f2-0f-R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR 0|{}" +k.prefixclass = l[762] +end +do local k = l[1043] +k.orgnames = l[41] +k.opclass = l[1044] +k.operands = l[742] +k.sub = 18 +k.name = "VMOVDDUP_YM" +end +do local k = l[1044] +k.isa = l[475] +k.code = l[7] +k.id = 140 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-f2-0f-128.R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR 0|{rmem}" +k.prefixclass = l[756] +end +do local k = l[1045] +k.orgnames = l[41] +k.opclass = l[1046] +k.operands = l[748] +k.sub = 18 +k.name = "VMOVDDUP_YY" +end +do local k = l[1046] +k.isa = l[475] +k.code = l[22] +k.id = 288 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-f2-0f-128.R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR 0|{}" +k.prefixclass = l[765] +end +do local k = l[1047] +k.orgnames = l[41] +k.opclass = l[1048] +k.operands = l[1001] +k.sub = 31 +k.name = "VMOVDQA_MX" +end +do local k = l[1048] +k.isa = l[475] +k.code = l[7] +k.id = 188 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 96 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{}|vex-66-0f-R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR60|{wmem}" +k.prefixclass = l[700] +end +do local k = l[1049] +k.orgnames = l[41] +k.opclass = l[1050] +k.operands = l[1006] +k.sub = 31 +k.name = "VMOVDQA_MY" +end +do local k = l[1050] +k.isa = l[475] +k.code = l[7] +k.id = 180 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 96 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{}|vex-66-0f-128.R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR60|{wmem}" +k.prefixclass = l[773] +end +do local k = l[1051] +k.orgnames = l[41] +k.opclass = l[1052] +k.operands = l[48] +k.sub = 15 +k.name = "VMOVDQA_XM" +end +do local k = l[1052] +k.isa = l[475] +k.code = l[1053] +k.id = 135 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 96 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f-R2M1|{$parm+$sub, !RRMM($p2,, $p1)}|PAR60|{rmem}" +k.prefixclass = l[700] +end +do local k = l[1053] +k[1] = "$parm+$sub" +k[2] = "!RRMM($p2," +k[3] = "$p1)" +k.id = 65 +k.sig = "{$parm+$sub, !RRMM($p2,, $p1)}" +end +do local k = l[1054] +k.orgnames = l[41] +k.opclass = l[1055] +k.operands = l[58] +k.sub = 15 +k.name = "VMOVDQA_XX" +end +do local k = l[1055] +k.isa = l[475] +k.code = l[1056] +k.id = 285 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 96 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f-R2B1|{$parm+$sub, !RRMR($p2,, $p1)}|PAR60|{}" +k.prefixclass = l[710] +end +do local k = l[1056] +k[1] = "$parm+$sub" +k[2] = "!RRMR($p2," +k[3] = "$p1)" +k.id = 63 +k.sig = "{$parm+$sub, !RRMR($p2,, $p1)}" +end +do local k = l[1057] +k.orgnames = l[41] +k.opclass = l[1058] +k.operands = l[742] +k.sub = 15 +k.name = "VMOVDQA_YM" +end +do local k = l[1058] +k.isa = l[475] +k.code = l[1053] +k.id = 131 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 96 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f-128.R2M1|{$parm+$sub, !RRMM($p2,, $p1)}|PAR60|{rmem}" +k.prefixclass = l[773] +end +do local k = l[1059] +k.orgnames = l[41] +k.opclass = l[1060] +k.operands = l[748] +k.sub = 15 +k.name = "VMOVDQA_YY" +end +do local k = l[1060] +k.isa = l[475] +k.code = l[1056] +k.id = 280 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 96 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f-128.R2B1|{$parm+$sub, !RRMR($p2,, $p1)}|PAR60|{}" +k.prefixclass = l[778] +end +do local k = l[1061] +k.orgnames = l[41] +k.opclass = l[1062] +k.operands = l[1001] +k.sub = 9 +k.name = "VMOVDQU_MX" +end +do local k = l[1062] +k.isa = l[475] +k.code = l[7] +k.id = 198 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 32 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{}|vex-f3-0f-R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{wmem}" +k.prefixclass = l[725] +end +do local k = l[1063] +k.orgnames = l[41] +k.opclass = l[1064] +k.operands = l[1006] +k.sub = 9 +k.name = "VMOVDQU_MY" +end +do local k = l[1064] +k.isa = l[475] +k.code = l[7] +k.id = 196 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 32 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{}|vex-f3-0f-128.R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{wmem}" +k.prefixclass = l[731] +end +do local k = l[1065] +k.orgnames = l[41] +k.opclass = l[1066] +k.operands = l[48] +k.sub = 8 +k.name = "VMOVDQU_XM" +end +do local k = l[1066] +k.isa = l[475] +k.code = l[1053] +k.id = 155 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 32 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-f3-0f-R2M1|{$parm+$sub, !RRMM($p2,, $p1)}|PAR20|{rmem}" +k.prefixclass = l[725] +end +do local k = l[1067] +k.orgnames = l[41] +k.opclass = l[1068] +k.operands = l[58] +k.sub = 8 +k.name = "VMOVDQU_XX" +end +do local k = l[1068] +k.isa = l[475] +k.code = l[1056] +k.id = 303 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 32 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-f3-0f-R2B1|{$parm+$sub, !RRMR($p2,, $p1)}|PAR20|{}" +k.prefixclass = l[728] +end +do local k = l[1069] +k.orgnames = l[41] +k.opclass = l[1070] +k.operands = l[742] +k.sub = 8 +k.name = "VMOVDQU_YM" +end +do local k = l[1070] +k.isa = l[475] +k.code = l[1053] +k.id = 149 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 32 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-f3-0f-128.R2M1|{$parm+$sub, !RRMM($p2,, $p1)}|PAR20|{rmem}" +k.prefixclass = l[731] +end +do local k = l[1071] +k.orgnames = l[41] +k.opclass = l[1072] +k.operands = l[748] +k.sub = 8 +k.name = "VMOVDQU_YY" +end +do local k = l[1072] +k.isa = l[475] +k.code = l[1056] +k.id = 297 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 32 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-f3-0f-128.R2B1|{$parm+$sub, !RRMR($p2,, $p1)}|PAR20|{}" +k.prefixclass = l[734] +end +do local k = l[1073] +k.orgnames = l[41] +k.opclass = l[1074] +k.operands = l[327] +k.sub = 14 +k.name = "VMOVD_XM32" +end +do local k = l[1074] +k.isa = l[475] +k.code = l[7] +k.id = 133 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 96 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f-R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR60|{rmem}" +k.prefixclass = l[700] +end +do local k = l[1075] +k.orgnames = l[41] +k.opclass = l[1076] +k.operands = l[1077] +k.sub = 14 +k.name = "VMOVD_XW" +end +do local k = l[1076] +k.isa = l[475] +k.code = l[22] +k.id = 282 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 96 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f-R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR60|{}" +k.prefixclass = l[710] +end +do local k = l[1077] +k[1] = l[1078] +k[2] = l[1079] +k.id = 276 +k.sig = "{{mode = o,type = VR128,name = p2}, {mode = i,type = GR32,name = p1}}" +end +do local k = l[1078] +k.mode = "o" +k.type = "VR128" +k.name = "p2" +end +do local k = l[1079] +k.mode = "i" +k.type = "GR32" +k.name = "p1" +end +do local k = l[1080] +k.orgnames = l[4] +k.opclass = l[1081] +k.operands = l[30] +k.name = "VMOVHLPS_XXX" +k.sub = 18 +end +do local k = l[1081] +k.isa = l[475] +k.code = l[22] +k.id = 246 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-0f-R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR 0|{}" +k.prefixclass = l[722] +end +do local k = l[1082] +k.orgnames = l[41] +k.opclass = l[1083] +k.operands = l[1084] +k.sub = 23 +k.name = "VMOVHPD_MX" +end +do local k = l[1083] +k.isa = l[475] +k.code = l[7] +k.id = 186 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 0 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{}|vex-66-0f-R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR 0|{wmem}" +k.prefixclass = l[700] +end +do local k = l[1084] +k[1] = l[1085] +k[2] = l[1086] +k.id = 217 +k.sig = "{{mode = i,type = i64*,name = p1}, {mode = i,type = VR128,name = p2}}" +end +do local k = l[1085] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[1086] +k.mode = "i" +k.type = "VR128" +k.name = "p2" +end +do local k = l[1087] +k.orgnames = l[4] +k.opclass = l[1088] +k.operands = l[591] +k.sub = 22 +k.name = "VMOVHPD_XXM" +end +do local k = l[1088] +k.isa = l[475] +k.code = l[7] +k.id = 107 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f-R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR 0|{rmem}" +k.prefixclass = l[476] +end +do local k = l[1089] +k.orgnames = l[41] +k.opclass = l[1090] +k.operands = l[1084] +k.sub = 23 +k.name = "VMOVHPS_MX" +end +do local k = l[1090] +k.isa = l[475] +k.code = l[7] +k.id = 173 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 0 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{}|vex-0f-R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR 0|{wmem}" +k.prefixclass = l[716] +end +do local k = l[1091] +k.orgnames = l[4] +k.opclass = l[1092] +k.operands = l[591] +k.sub = 22 +k.name = "VMOVHPS_XXM" +end +do local k = l[1092] +k.isa = l[475] +k.code = l[7] +k.id = 96 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-0f-R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR 0|{rmem}" +k.prefixclass = l[488] +end +do local k = l[1093] +k.orgnames = l[4] +k.opclass = l[1081] +k.operands = l[30] +k.name = "VMOVLHPS_XXX" +k.sub = 22 +end +do local k = l[1094] +k.orgnames = l[41] +k.opclass = l[1083] +k.operands = l[1084] +k.sub = 19 +k.name = "VMOVLPD_MX" +end +do local k = l[1095] +k.orgnames = l[4] +k.opclass = l[1088] +k.operands = l[591] +k.sub = 18 +k.name = "VMOVLPD_XXM" +end +do local k = l[1096] +k.orgnames = l[41] +k.opclass = l[1090] +k.operands = l[1084] +k.sub = 19 +k.name = "VMOVLPS_MX" +end +do local k = l[1097] +k.orgnames = l[4] +k.opclass = l[1092] +k.operands = l[591] +k.sub = 18 +k.name = "VMOVLPS_XXM" +end +do local k = l[1098] +k.orgnames = l[41] +k.opclass = l[775] +k.operands = l[808] +k.name = "VMOVMSKPD_WX" +k.sub = 16 +end +do local k = l[1099] +k.orgnames = l[41] +k.opclass = l[777] +k.operands = l[1100] +k.name = "VMOVMSKPD_WY" +k.sub = 16 +end +do local k = l[1100] +k[1] = l[1101] +k[2] = l[1102] +k.id = 244 +k.sig = "{{mode = o,type = GR32,name = p2}, {mode = i,type = VR256,name = p1}}" +end +do local k = l[1101] +k.mode = "o" +k.type = "GR32" +k.name = "p2" +end +do local k = l[1102] +k.mode = "i" +k.type = "VR256" +k.name = "p1" +end +do local k = l[1103] +k.orgnames = l[41] +k.opclass = l[738] +k.operands = l[808] +k.name = "VMOVMSKPS_WX" +k.sub = 16 +end +do local k = l[1104] +k.orgnames = l[41] +k.opclass = l[746] +k.operands = l[1100] +k.name = "VMOVMSKPS_WY" +k.sub = 16 +end +do local k = l[1105] +k.orgnames = l[41] +k.opclass = l[1106] +k.operands = l[48] +k.sub = 10 +k.name = "VMOVNTDQA_XM" +end +do local k = l[1106] +k.isa = l[475] +k.code = l[7] +k.id = 139 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 32 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f38-R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{rmem}" +k.prefixclass = l[311] +end +do local k = l[1107] +k.orgnames = l[41] +k.opclass = l[1108] +k.operands = l[742] +k.sub = 10 +k.name = "VMOVNTDQA_YM" +end +do local k = l[1108] +k.isa = l[475] +k.code = l[7] +k.id = 137 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 32 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f38-128.R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{rmem}" +k.prefixclass = l[156] +end +do local k = l[1109] +k.orgnames = l[41] +k.opclass = l[1110] +k.operands = l[1001] +k.sub = 7 +k.name = "VMOVNTDQ_MX" +end +do local k = l[1110] +k.isa = l[475] +k.code = l[7] +k.id = 190 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 224 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{}|vex-66-0f-R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{wmem}" +k.prefixclass = l[700] +end +do local k = l[1111] +k.orgnames = l[41] +k.opclass = l[1112] +k.operands = l[1006] +k.sub = 7 +k.name = "VMOVNTDQ_MY" +end +do local k = l[1112] +k.isa = l[475] +k.code = l[7] +k.id = 181 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 224 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{}|vex-66-0f-128.R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{wmem}" +k.prefixclass = l[773] +end +do local k = l[1113] +k.orgnames = l[41] +k.opclass = l[1114] +k.operands = l[1001] +k.sub = 11 +k.name = "VMOVNTPD_MX" +end +do local k = l[1114] +k.isa = l[475] +k.code = l[7] +k.id = 187 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 32 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{}|vex-66-0f-R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{wmem}" +k.prefixclass = l[700] +end +do local k = l[1115] +k.orgnames = l[41] +k.opclass = l[1116] +k.operands = l[1006] +k.sub = 11 +k.name = "VMOVNTPD_MY" +end +do local k = l[1116] +k.isa = l[475] +k.code = l[7] +k.id = 179 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 32 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{}|vex-66-0f-128.R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{wmem}" +k.prefixclass = l[773] +end +do local k = l[1117] +k.orgnames = l[41] +k.opclass = l[1118] +k.operands = l[1001] +k.sub = 11 +k.name = "VMOVNTPS_MX" +end +do local k = l[1118] +k.isa = l[475] +k.code = l[7] +k.id = 174 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 32 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{}|vex-0f-R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{wmem}" +k.prefixclass = l[716] +end +do local k = l[1119] +k.orgnames = l[41] +k.opclass = l[1120] +k.operands = l[1006] +k.sub = 11 +k.name = "VMOVNTPS_MY" +end +do local k = l[1120] +k.isa = l[475] +k.code = l[7] +k.id = 168 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 32 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{}|vex-0f-128.R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{wmem}" +k.prefixclass = l[741] +end +do local k = l[1121] +k.orgnames = l[41] +k.opclass = l[1122] +k.operands = l[1084] +k.sub = 22 +k.name = "VMOVQ_M64X" +end +do local k = l[1122] +k.isa = l[475] +k.code = l[7] +k.id = 189 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 192 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{}|vex-66-0f-R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PARC0|{wmem}" +k.prefixclass = l[700] +end +do local k = l[1123] +k.orgnames = l[41] +k.opclass = l[1124] +k.operands = l[339] +k.sub = 30 +k.name = "VMOVQ_XM" +end +do local k = l[1124] +k.isa = l[475] +k.code = l[7] +k.id = 153 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 96 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-f3-0f-R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR60|{rmem}" +k.prefixclass = l[725] +end +do local k = l[1125] +k.orgnames = l[41] +k.opclass = l[1126] +k.operands = l[58] +k.sub = 30 +k.name = "VMOVQ_XX" +end +do local k = l[1126] +k.isa = l[475] +k.code = l[22] +k.id = 301 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 96 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-f3-0f-R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR60|{}" +k.prefixclass = l[728] +end +do local k = l[1127] +k.orgnames = l[41] +k.opclass = l[1128] +k.operands = l[1084] +k.sub = 17 +k.name = "VMOVSD_MX" +end +do local k = l[1128] +k.isa = l[475] +k.code = l[7] +k.id = 195 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 0 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{}|vex-f2-0f-R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR 0|{wmem}" +k.prefixclass = l[753] +end +do local k = l[1129] +k.orgnames = l[41] +k.opclass = l[1040] +k.operands = l[339] +k.sub = 16 +k.name = "VMOVSD_XM" +end +do local k = l[1130] +k.orgnames = l[4] +k.opclass = l[1131] +k.operands = l[30] +k.name = "VMOVSD_XXX" +k.sub = 16 +end +do local k = l[1131] +k.isa = l[475] +k.code = l[22] +k.id = 268 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-f2-0f-R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR 0|{}" +k.prefixclass = l[762] +end +do local k = l[1132] +k.orgnames = l[41] +k.opclass = l[1133] +k.operands = l[48] +k.sub = 22 +k.name = "VMOVSHDUP_XM" +end +do local k = l[1133] +k.isa = l[475] +k.code = l[7] +k.id = 150 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-f3-0f-R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR 0|{rmem}" +k.prefixclass = l[725] +end +do local k = l[1134] +k.orgnames = l[41] +k.opclass = l[1135] +k.operands = l[58] +k.sub = 22 +k.name = "VMOVSHDUP_XX" +end +do local k = l[1135] +k.isa = l[475] +k.code = l[22] +k.id = 298 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-f3-0f-R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR 0|{}" +k.prefixclass = l[728] +end +do local k = l[1136] +k.orgnames = l[41] +k.opclass = l[1137] +k.operands = l[742] +k.sub = 22 +k.name = "VMOVSHDUP_YM" +end +do local k = l[1137] +k.isa = l[475] +k.code = l[7] +k.id = 146 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-f3-0f-128.R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR 0|{rmem}" +k.prefixclass = l[731] +end +do local k = l[1138] +k.orgnames = l[41] +k.opclass = l[1139] +k.operands = l[748] +k.sub = 22 +k.name = "VMOVSHDUP_YY" +end +do local k = l[1139] +k.isa = l[475] +k.code = l[22] +k.id = 294 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-f3-0f-128.R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR 0|{}" +k.prefixclass = l[734] +end +do local k = l[1140] +k.orgnames = l[41] +k.opclass = l[1133] +k.operands = l[48] +k.sub = 18 +k.name = "VMOVSLDUP_XM" +end +do local k = l[1141] +k.orgnames = l[41] +k.opclass = l[1135] +k.operands = l[58] +k.sub = 18 +k.name = "VMOVSLDUP_XX" +end +do local k = l[1142] +k.orgnames = l[41] +k.opclass = l[1137] +k.operands = l[742] +k.sub = 18 +k.name = "VMOVSLDUP_YM" +end +do local k = l[1143] +k.orgnames = l[41] +k.opclass = l[1139] +k.operands = l[748] +k.sub = 18 +k.name = "VMOVSLDUP_YY" +end +do local k = l[1144] +k.orgnames = l[41] +k.opclass = l[1145] +k.operands = l[1146] +k.sub = 17 +k.name = "VMOVSS_MX" +end +do local k = l[1145] +k.isa = l[475] +k.code = l[7] +k.id = 197 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 0 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{}|vex-f3-0f-R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR 0|{wmem}" +k.prefixclass = l[725] +end +do local k = l[1146] +k[1] = l[1147] +k[2] = l[1148] +k.id = 214 +k.sig = "{{mode = i,type = i32*,name = p1}, {mode = i,type = VR128,name = p2}}" +end +do local k = l[1147] +k.mode = "i" +k.type = "i32*" +k.name = "p1" +end +do local k = l[1148] +k.mode = "i" +k.type = "VR128" +k.name = "p2" +end +do local k = l[1149] +k.orgnames = l[41] +k.opclass = l[1133] +k.operands = l[327] +k.sub = 16 +k.name = "VMOVSS_XM" +end +do local k = l[1150] +k.orgnames = l[4] +k.opclass = l[1151] +k.operands = l[30] +k.name = "VMOVSS_XXX" +k.sub = 16 +end +do local k = l[1151] +k.isa = l[475] +k.code = l[22] +k.id = 273 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-f3-0f-R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR 0|{}" +k.prefixclass = l[728] +end +do local k = l[1152] +k.orgnames = l[41] +k.opclass = l[1153] +k.operands = l[1001] +k.name = "VMOVUPD_MX" +end +do local k = l[1153] +k.isa = l[475] +k.code = l[1000] +k.id = 192 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 17 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{}|vex-66-0f-R2M1|{$parm, !RRMM($p2,$p1)}|PAR11|{wmem}" +k.prefixclass = l[700] +end +do local k = l[1154] +k.orgnames = l[41] +k.opclass = l[1155] +k.operands = l[1006] +k.name = "VMOVUPD_MY" +end +do local k = l[1155] +k.isa = l[475] +k.code = l[1000] +k.id = 183 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 17 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{}|vex-66-0f-128.R2M1|{$parm, !RRMM($p2,$p1)}|PAR11|{wmem}" +k.prefixclass = l[773] +end +do local k = l[1156] +k.orgnames = l[41] +k.opclass = l[1157] +k.operands = l[1011] +k.name = "VMOVUPD_XM" +end +do local k = l[1157] +k.isa = l[475] +k.code = l[1000] +k.id = 191 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 16 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{}|vex-66-0f-R2M1|{$parm, !RRMM($p2,$p1)}|PAR10|{wmem}" +k.prefixclass = l[700] +end +do local k = l[1158] +k.orgnames = l[41] +k.opclass = l[1159] +k.operands = l[711] +k.name = "VMOVUPD_XX" +end +do local k = l[1159] +k.isa = l[475] +k.code = l[1016] +k.id = 320 +k.layout = l[706] +k.impregs = l[12] +k.flags = l[179] +k.parm = 16 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, use, p2}}|{}|vex-66-0f-R2B1|{$parm, !RRMR($p2,$p1)}|PAR10|{wmem}" +k.prefixclass = l[710] +end +do local k = l[1160] +k.orgnames = l[41] +k.opclass = l[1161] +k.operands = l[1019] +k.name = "VMOVUPD_YM" +end +do local k = l[1161] +k.isa = l[475] +k.code = l[1000] +k.id = 182 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 16 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{}|vex-66-0f-128.R2M1|{$parm, !RRMM($p2,$p1)}|PAR10|{wmem}" +k.prefixclass = l[773] +end +do local k = l[1162] +k.orgnames = l[41] +k.opclass = l[1163] +k.operands = l[1024] +k.name = "VMOVUPD_YY" +end +do local k = l[1163] +k.isa = l[475] +k.code = l[1016] +k.id = 318 +k.layout = l[706] +k.impregs = l[12] +k.flags = l[179] +k.parm = 16 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, use, p2}}|{}|vex-66-0f-128.R2B1|{$parm, !RRMR($p2,$p1)}|PAR10|{wmem}" +k.prefixclass = l[778] +end +do local k = l[1164] +k.orgnames = l[41] +k.opclass = l[1165] +k.operands = l[1001] +k.name = "VMOVUPS_MX" +end +do local k = l[1165] +k.isa = l[475] +k.code = l[1000] +k.id = 176 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 17 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{}|vex-0f-R2M1|{$parm, !RRMM($p2,$p1)}|PAR11|{wmem}" +k.prefixclass = l[716] +end +do local k = l[1166] +k.orgnames = l[41] +k.opclass = l[1167] +k.operands = l[1006] +k.name = "VMOVUPS_MY" +end +do local k = l[1167] +k.isa = l[475] +k.code = l[1000] +k.id = 170 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 17 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{}|vex-0f-128.R2M1|{$parm, !RRMM($p2,$p1)}|PAR11|{wmem}" +k.prefixclass = l[741] +end +do local k = l[1168] +k.orgnames = l[41] +k.opclass = l[1169] +k.operands = l[1011] +k.name = "VMOVUPS_XM" +end +do local k = l[1169] +k.isa = l[475] +k.code = l[1000] +k.id = 175 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 16 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{}|vex-0f-R2M1|{$parm, !RRMM($p2,$p1)}|PAR10|{wmem}" +k.prefixclass = l[716] +end +do local k = l[1170] +k.orgnames = l[41] +k.opclass = l[1171] +k.operands = l[711] +k.name = "VMOVUPS_XX" +end +do local k = l[1171] +k.isa = l[475] +k.code = l[1016] +k.id = 316 +k.layout = l[706] +k.impregs = l[12] +k.flags = l[179] +k.parm = 16 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, use, p2}}|{}|vex-0f-R2B1|{$parm, !RRMR($p2,$p1)}|PAR10|{wmem}" +k.prefixclass = l[722] +end +do local k = l[1172] +k.orgnames = l[41] +k.opclass = l[1173] +k.operands = l[1019] +k.name = "VMOVUPS_YM" +end +do local k = l[1173] +k.isa = l[475] +k.code = l[1000] +k.id = 169 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 16 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{}|vex-0f-128.R2M1|{$parm, !RRMM($p2,$p1)}|PAR10|{wmem}" +k.prefixclass = l[741] +end +do local k = l[1174] +k.orgnames = l[41] +k.opclass = l[1175] +k.operands = l[1024] +k.name = "VMOVUPS_YY" +end +do local k = l[1175] +k.isa = l[475] +k.code = l[1016] +k.id = 314 +k.layout = l[706] +k.impregs = l[12] +k.flags = l[179] +k.parm = 16 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, use, p2}}|{}|vex-0f-128.R2B1|{$parm, !RRMR($p2,$p1)}|PAR10|{wmem}" +k.prefixclass = l[747] +end +do local k = l[1176] +k.orgnames = l[124] +k.opclass = l[896] +k.operands = l[134] +k.sub = 2 +k.name = "VMPSADBW_XXMI" +end +do local k = l[1177] +k.orgnames = l[124] +k.opclass = l[898] +k.operands = l[148] +k.sub = 2 +k.name = "VMPSADBW_XXXI" +end +do local k = l[1178] +k.orgnames = l[124] +k.opclass = l[900] +k.operands = l[259] +k.sub = 2 +k.name = "VMPSADBW_YYMI" +end +do local k = l[1179] +k.orgnames = l[124] +k.opclass = l[902] +k.operands = l[268] +k.sub = 2 +k.name = "VMPSADBW_YYYI" +end +do local k = l[1180] +k.orgnames = l[4] +k.opclass = l[474] +k.operands = l[16] +k.sub = 25 +k.name = "VMULPD_XXM" +end +do local k = l[1181] +k.orgnames = l[4] +k.opclass = l[478] +k.operands = l[30] +k.sub = 25 +k.name = "VMULPD_XXX" +end +do local k = l[1182] +k.orgnames = l[4] +k.opclass = l[481] +k.operands = l[380] +k.sub = 25 +k.name = "VMULPD_YYM" +end +do local k = l[1183] +k.orgnames = l[4] +k.opclass = l[484] +k.operands = l[387] +k.sub = 25 +k.name = "VMULPD_YYY" +end +do local k = l[1184] +k.orgnames = l[4] +k.opclass = l[487] +k.operands = l[16] +k.sub = 25 +k.name = "VMULPS_XXM" +end +do local k = l[1185] +k.orgnames = l[4] +k.opclass = l[490] +k.operands = l[30] +k.sub = 25 +k.name = "VMULPS_XXX" +end +do local k = l[1186] +k.orgnames = l[4] +k.opclass = l[493] +k.operands = l[380] +k.sub = 25 +k.name = "VMULPS_YYM" +end +do local k = l[1187] +k.orgnames = l[4] +k.opclass = l[496] +k.operands = l[387] +k.sub = 25 +k.name = "VMULPS_YYY" +end +do local k = l[1188] +k.orgnames = l[4] +k.opclass = l[474] +k.operands = l[16] +k.sub = 22 +k.name = "VORPD_XXM" +end +do local k = l[1189] +k.orgnames = l[4] +k.opclass = l[478] +k.operands = l[30] +k.sub = 22 +k.name = "VORPD_XXX" +end +do local k = l[1190] +k.orgnames = l[4] +k.opclass = l[481] +k.operands = l[380] +k.sub = 22 +k.name = "VORPD_YYM" +end +do local k = l[1191] +k.orgnames = l[4] +k.opclass = l[484] +k.operands = l[387] +k.sub = 22 +k.name = "VORPD_YYY" +end +do local k = l[1192] +k.orgnames = l[4] +k.opclass = l[487] +k.operands = l[16] +k.sub = 22 +k.name = "VORPS_XXM" +end +do local k = l[1193] +k.orgnames = l[4] +k.opclass = l[490] +k.operands = l[30] +k.sub = 22 +k.name = "VORPS_XXX" +end +do local k = l[1194] +k.orgnames = l[4] +k.opclass = l[493] +k.operands = l[380] +k.sub = 22 +k.name = "VORPS_YYM" +end +do local k = l[1195] +k.orgnames = l[4] +k.opclass = l[496] +k.operands = l[387] +k.sub = 22 +k.name = "VORPS_YYY" +end +do local k = l[1196] +k.orgnames = l[4] +k.opclass = l[1197] +k.operands = l[16] +k.sub = 28 +k.name = "VPABSB_XXM" +end +do local k = l[1197] +k.isa = l[475] +k.code = l[7] +k.id = 116 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR 0|{rmem}" +k.prefixclass = l[14] +end +do local k = l[1198] +k.orgnames = l[4] +k.opclass = l[1199] +k.operands = l[30] +k.sub = 28 +k.name = "VPABSB_XXX" +end +do local k = l[1199] +k.isa = l[475] +k.code = l[22] +k.id = 262 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PAR 0|{}" +k.prefixclass = l[28] +end +do local k = l[1200] +k.orgnames = l[4] +k.opclass = l[1201] +k.operands = l[380] +k.sub = 28 +k.name = "VPABSB_YYM" +end +do local k = l[1201] +k.isa = l[475] +k.code = l[7] +k.id = 113 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-128.R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR 0|{rmem}" +k.prefixclass = l[226] +end +do local k = l[1202] +k.orgnames = l[4] +k.opclass = l[1203] +k.operands = l[387] +k.sub = 28 +k.name = "VPABSB_YYY" +end +do local k = l[1203] +k.isa = l[475] +k.code = l[22] +k.id = 259 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-128.R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PAR 0|{}" +k.prefixclass = l[386] +end +do local k = l[1204] +k.orgnames = l[4] +k.opclass = l[1197] +k.operands = l[16] +k.sub = 30 +k.name = "VPABSD_XXM" +end +do local k = l[1205] +k.orgnames = l[4] +k.opclass = l[1199] +k.operands = l[30] +k.sub = 30 +k.name = "VPABSD_XXX" +end +do local k = l[1206] +k.orgnames = l[4] +k.opclass = l[1201] +k.operands = l[380] +k.sub = 30 +k.name = "VPABSD_YYM" +end +do local k = l[1207] +k.orgnames = l[4] +k.opclass = l[1203] +k.operands = l[387] +k.sub = 30 +k.name = "VPABSD_YYY" +end +do local k = l[1208] +k.orgnames = l[4] +k.opclass = l[1197] +k.operands = l[16] +k.sub = 29 +k.name = "VPABSW_XXM" +end +do local k = l[1209] +k.orgnames = l[4] +k.opclass = l[1199] +k.operands = l[30] +k.sub = 29 +k.name = "VPABSW_XXX" +end +do local k = l[1210] +k.orgnames = l[4] +k.opclass = l[1201] +k.operands = l[380] +k.sub = 29 +k.name = "VPABSW_YYM" +end +do local k = l[1211] +k.orgnames = l[4] +k.opclass = l[1203] +k.operands = l[387] +k.sub = 29 +k.name = "VPABSW_YYY" +end +do local k = l[1212] +k.orgnames = l[4] +k.opclass = l[930] +k.operands = l[16] +k.sub = 11 +k.name = "VPACKSSDW_XXM" +end +do local k = l[1213] +k.orgnames = l[4] +k.opclass = l[932] +k.operands = l[30] +k.sub = 11 +k.name = "VPACKSSDW_XXX" +end +do local k = l[1214] +k.orgnames = l[4] +k.opclass = l[934] +k.operands = l[380] +k.sub = 11 +k.name = "VPACKSSDW_YYM" +end +do local k = l[1215] +k.orgnames = l[4] +k.opclass = l[936] +k.operands = l[387] +k.sub = 11 +k.name = "VPACKSSDW_YYY" +end +do local k = l[1216] +k.orgnames = l[4] +k.opclass = l[930] +k.operands = l[16] +k.sub = 3 +k.name = "VPACKSSWB_XXM" +end +do local k = l[1217] +k.orgnames = l[4] +k.opclass = l[932] +k.operands = l[30] +k.sub = 3 +k.name = "VPACKSSWB_XXX" +end +do local k = l[1218] +k.orgnames = l[4] +k.opclass = l[934] +k.operands = l[380] +k.sub = 3 +k.name = "VPACKSSWB_YYM" +end +do local k = l[1219] +k.orgnames = l[4] +k.opclass = l[936] +k.operands = l[387] +k.sub = 3 +k.name = "VPACKSSWB_YYY" +end +do local k = l[1220] +k.orgnames = l[4] +k.opclass = l[1221] +k.operands = l[16] +k.sub = 11 +k.name = "VPACKUSDW_XXM" +end +do local k = l[1221] +k.isa = l[475] +k.code = l[7] +k.id = 117 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 32 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{rmem}" +k.prefixclass = l[14] +end +do local k = l[1222] +k.orgnames = l[4] +k.opclass = l[1223] +k.operands = l[30] +k.sub = 11 +k.name = "VPACKUSDW_XXX" +end +do local k = l[1223] +k.isa = l[475] +k.code = l[22] +k.id = 263 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 32 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PAR20|{}" +k.prefixclass = l[28] +end +do local k = l[1224] +k.orgnames = l[4] +k.opclass = l[1225] +k.operands = l[380] +k.sub = 11 +k.name = "VPACKUSDW_YYM" +end +do local k = l[1225] +k.isa = l[475] +k.code = l[7] +k.id = 114 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 32 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-128.R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{rmem}" +k.prefixclass = l[226] +end +do local k = l[1226] +k.orgnames = l[4] +k.opclass = l[1227] +k.operands = l[387] +k.sub = 11 +k.name = "VPACKUSDW_YYY" +end +do local k = l[1227] +k.isa = l[475] +k.code = l[22] +k.id = 260 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 32 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-128.R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PAR20|{}" +k.prefixclass = l[386] +end +do local k = l[1228] +k.orgnames = l[4] +k.opclass = l[930] +k.operands = l[16] +k.sub = 7 +k.name = "VPACKUSWB_XXM" +end +do local k = l[1229] +k.orgnames = l[4] +k.opclass = l[932] +k.operands = l[30] +k.sub = 7 +k.name = "VPACKUSWB_XXX" +end +do local k = l[1230] +k.orgnames = l[4] +k.opclass = l[934] +k.operands = l[380] +k.sub = 7 +k.name = "VPACKUSWB_YYM" +end +do local k = l[1231] +k.orgnames = l[4] +k.opclass = l[936] +k.operands = l[387] +k.sub = 7 +k.name = "VPACKUSWB_YYY" +end +do local k = l[1232] +k.orgnames = l[4] +k.opclass = l[1233] +k.operands = l[16] +k.sub = 28 +k.name = "VPADDB_XXM" +end +do local k = l[1233] +k.isa = l[475] +k.code = l[7] +k.id = 111 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 224 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f-R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{rmem}" +k.prefixclass = l[476] +end +do local k = l[1234] +k.orgnames = l[4] +k.opclass = l[1235] +k.operands = l[30] +k.sub = 28 +k.name = "VPADDB_XXX" +end +do local k = l[1235] +k.isa = l[475] +k.code = l[22] +k.id = 257 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 224 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f-R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PARE0|{}" +k.prefixclass = l[479] +end +do local k = l[1236] +k.orgnames = l[4] +k.opclass = l[1237] +k.operands = l[380] +k.sub = 28 +k.name = "VPADDB_YYM" +end +do local k = l[1237] +k.isa = l[475] +k.code = l[7] +k.id = 105 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 224 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f-128.R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{rmem}" +k.prefixclass = l[482] +end +do local k = l[1238] +k.orgnames = l[4] +k.opclass = l[1239] +k.operands = l[387] +k.sub = 28 +k.name = "VPADDB_YYY" +end +do local k = l[1239] +k.isa = l[475] +k.code = l[22] +k.id = 251 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 224 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f-128.R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PARE0|{}" +k.prefixclass = l[485] +end +do local k = l[1240] +k.orgnames = l[4] +k.opclass = l[1233] +k.operands = l[16] +k.sub = 30 +k.name = "VPADDD_XXM" +end +do local k = l[1241] +k.orgnames = l[4] +k.opclass = l[1235] +k.operands = l[30] +k.sub = 30 +k.name = "VPADDD_XXX" +end +do local k = l[1242] +k.orgnames = l[4] +k.opclass = l[1237] +k.operands = l[380] +k.sub = 30 +k.name = "VPADDD_YYM" +end +do local k = l[1243] +k.orgnames = l[4] +k.opclass = l[1239] +k.operands = l[387] +k.sub = 30 +k.name = "VPADDD_YYY" +end +do local k = l[1244] +k.orgnames = l[4] +k.opclass = l[499] +k.operands = l[16] +k.sub = 20 +k.name = "VPADDQ_XXM" +end +do local k = l[1245] +k.orgnames = l[4] +k.opclass = l[501] +k.operands = l[30] +k.sub = 20 +k.name = "VPADDQ_XXX" +end +do local k = l[1246] +k.orgnames = l[4] +k.opclass = l[503] +k.operands = l[380] +k.sub = 20 +k.name = "VPADDQ_YYM" +end +do local k = l[1247] +k.orgnames = l[4] +k.opclass = l[505] +k.operands = l[387] +k.sub = 20 +k.name = "VPADDQ_YYY" +end +do local k = l[1248] +k.orgnames = l[4] +k.opclass = l[1233] +k.operands = l[16] +k.sub = 12 +k.name = "VPADDSB_XXM" +end +do local k = l[1249] +k.orgnames = l[4] +k.opclass = l[1235] +k.operands = l[30] +k.sub = 12 +k.name = "VPADDSB_XXX" +end +do local k = l[1250] +k.orgnames = l[4] +k.opclass = l[1237] +k.operands = l[380] +k.sub = 12 +k.name = "VPADDSB_YYM" +end +do local k = l[1251] +k.orgnames = l[4] +k.opclass = l[1239] +k.operands = l[387] +k.sub = 12 +k.name = "VPADDSB_YYY" +end +do local k = l[1252] +k.orgnames = l[4] +k.opclass = l[1233] +k.operands = l[16] +k.sub = 13 +k.name = "VPADDSW_XXM" +end +do local k = l[1253] +k.orgnames = l[4] +k.opclass = l[1235] +k.operands = l[30] +k.sub = 13 +k.name = "VPADDSW_XXX" +end +do local k = l[1254] +k.orgnames = l[4] +k.opclass = l[1237] +k.operands = l[380] +k.sub = 13 +k.name = "VPADDSW_YYM" +end +do local k = l[1255] +k.orgnames = l[4] +k.opclass = l[1239] +k.operands = l[387] +k.sub = 13 +k.name = "VPADDSW_YYY" +end +do local k = l[1256] +k.orgnames = l[4] +k.opclass = l[499] +k.operands = l[16] +k.sub = 28 +k.name = "VPADDUSB_XXM" +end +do local k = l[1257] +k.orgnames = l[4] +k.opclass = l[501] +k.operands = l[30] +k.sub = 28 +k.name = "VPADDUSB_XXX" +end +do local k = l[1258] +k.orgnames = l[4] +k.opclass = l[503] +k.operands = l[380] +k.sub = 28 +k.name = "VPADDUSB_YYM" +end +do local k = l[1259] +k.orgnames = l[4] +k.opclass = l[505] +k.operands = l[387] +k.sub = 28 +k.name = "VPADDUSB_YYY" +end +do local k = l[1260] +k.orgnames = l[4] +k.opclass = l[499] +k.operands = l[16] +k.sub = 29 +k.name = "VPADDUSW_XXM" +end +do local k = l[1261] +k.orgnames = l[4] +k.opclass = l[501] +k.operands = l[30] +k.sub = 29 +k.name = "VPADDUSW_XXX" +end +do local k = l[1262] +k.orgnames = l[4] +k.opclass = l[503] +k.operands = l[380] +k.sub = 29 +k.name = "VPADDUSW_YYM" +end +do local k = l[1263] +k.orgnames = l[4] +k.opclass = l[505] +k.operands = l[387] +k.sub = 29 +k.name = "VPADDUSW_YYY" +end +do local k = l[1264] +k.orgnames = l[4] +k.opclass = l[1233] +k.operands = l[16] +k.sub = 29 +k.name = "VPADDW_XXM" +end +do local k = l[1265] +k.orgnames = l[4] +k.opclass = l[1235] +k.operands = l[30] +k.sub = 29 +k.name = "VPADDW_XXX" +end +do local k = l[1266] +k.orgnames = l[4] +k.opclass = l[1237] +k.operands = l[380] +k.sub = 29 +k.name = "VPADDW_YYM" +end +do local k = l[1267] +k.orgnames = l[4] +k.opclass = l[1239] +k.operands = l[387] +k.sub = 29 +k.name = "VPADDW_YYY" +end +do local k = l[1268] +k.orgnames = l[124] +k.opclass = l[1269] +k.operands = l[134] +k.sub = 15 +k.name = "VPALIGNR_XXMI" +end +do local k = l[1269] +k.isa = l[475] +k.code = l[1270] +k.id = 85 +k.layout = l[128] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-66-0f3a-R2M1S3|{$parm+$sub), !RRMM($p2,$p1), !I8($p4)}|PAR 0|{rmem}" +k.prefixclass = l[133] +end +do local k = l[1270] +k[1] = "$parm+$sub)" +k[2] = "!RRMM($p2,$p1)" +k[3] = "!I8($p4)" +k.id = 70 +k.sig = "{$parm+$sub), !RRMM($p2,$p1), !I8($p4)}" +end +do local k = l[1271] +k.orgnames = l[124] +k.opclass = l[1272] +k.operands = l[148] +k.sub = 15 +k.name = "VPALIGNR_XXXI" +end +do local k = l[1272] +k.isa = l[475] +k.code = l[1273] +k.id = 230 +k.layout = l[142] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-66-0f3a-R2B1S3|{$parm+$sub), !RRMR($p2,$p1), !I8($p4)}|PAR 0|{}" +k.prefixclass = l[147] +end +do local k = l[1273] +k[1] = "$parm+$sub)" +k[2] = "!RRMR($p2,$p1)" +k[3] = "!I8($p4)" +k.id = 67 +k.sig = "{$parm+$sub), !RRMR($p2,$p1), !I8($p4)}" +end +do local k = l[1274] +k.orgnames = l[124] +k.opclass = l[1275] +k.operands = l[259] +k.sub = 15 +k.name = "VPALIGNR_YYMI" +end +do local k = l[1275] +k.isa = l[475] +k.code = l[1270] +k.id = 82 +k.layout = l[128] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-66-0f3a-128.R2M1S3|{$parm+$sub), !RRMM($p2,$p1), !I8($p4)}|PAR 0|{rmem}" +k.prefixclass = l[234] +end +do local k = l[1276] +k.orgnames = l[124] +k.opclass = l[1277] +k.operands = l[268] +k.sub = 15 +k.name = "VPALIGNR_YYYI" +end +do local k = l[1277] +k.isa = l[475] +k.code = l[1273] +k.id = 227 +k.layout = l[142] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-66-0f3a-128.R2B1S3|{$parm+$sub), !RRMR($p2,$p1), !I8($p4)}|PAR 0|{}" +k.prefixclass = l[242] +end +do local k = l[1278] +k.orgnames = l[4] +k.opclass = l[499] +k.operands = l[16] +k.sub = 31 +k.name = "VPANDN_XXM" +end +do local k = l[1279] +k.orgnames = l[4] +k.opclass = l[501] +k.operands = l[30] +k.sub = 31 +k.name = "VPANDN_XXX" +end +do local k = l[1280] +k.orgnames = l[4] +k.opclass = l[503] +k.operands = l[380] +k.sub = 31 +k.name = "VPANDN_YYM" +end +do local k = l[1281] +k.orgnames = l[4] +k.opclass = l[505] +k.operands = l[387] +k.sub = 31 +k.name = "VPANDN_YYY" +end +do local k = l[1282] +k.orgnames = l[4] +k.opclass = l[499] +k.operands = l[16] +k.sub = 27 +k.name = "VPAND_XXM" +end +do local k = l[1283] +k.orgnames = l[4] +k.opclass = l[501] +k.operands = l[30] +k.sub = 27 +k.name = "VPAND_XXX" +end +do local k = l[1284] +k.orgnames = l[4] +k.opclass = l[503] +k.operands = l[380] +k.sub = 27 +k.name = "VPAND_YYM" +end +do local k = l[1285] +k.orgnames = l[4] +k.opclass = l[505] +k.operands = l[387] +k.sub = 27 +k.name = "VPAND_YYY" +end +do local k = l[1286] +k.orgnames = l[4] +k.opclass = l[1233] +k.operands = l[16] +k.sub = 0 +k.name = "VPAVGB_XXM" +end +do local k = l[1287] +k.orgnames = l[4] +k.opclass = l[1235] +k.operands = l[30] +k.sub = 0 +k.name = "VPAVGB_XXX" +end +do local k = l[1288] +k.orgnames = l[4] +k.opclass = l[1237] +k.operands = l[380] +k.sub = 0 +k.name = "VPAVGB_YYM" +end +do local k = l[1289] +k.orgnames = l[4] +k.opclass = l[1239] +k.operands = l[387] +k.sub = 0 +k.name = "VPAVGB_YYY" +end +do local k = l[1290] +k.orgnames = l[4] +k.opclass = l[1233] +k.operands = l[16] +k.sub = 3 +k.name = "VPAVGW_XXM" +end +do local k = l[1291] +k.orgnames = l[4] +k.opclass = l[1235] +k.operands = l[30] +k.sub = 3 +k.name = "VPAVGW_XXX" +end +do local k = l[1292] +k.orgnames = l[4] +k.opclass = l[1237] +k.operands = l[380] +k.sub = 3 +k.name = "VPAVGW_YYM" +end +do local k = l[1293] +k.orgnames = l[4] +k.opclass = l[1239] +k.operands = l[387] +k.sub = 3 +k.name = "VPAVGW_YYY" +end +do local k = l[1294] +k.orgnames = l[124] +k.opclass = l[531] +k.operands = l[134] +k.sub = 14 +k.name = "VPBLENDW_XXMI" +end +do local k = l[1295] +k.orgnames = l[124] +k.opclass = l[533] +k.operands = l[148] +k.sub = 14 +k.name = "VPBLENDW_XXXI" +end +do local k = l[1296] +k.orgnames = l[124] +k.opclass = l[535] +k.operands = l[259] +k.sub = 14 +k.name = "VPBLENDW_YYMI" +end +do local k = l[1297] +k.orgnames = l[124] +k.opclass = l[537] +k.operands = l[268] +k.sub = 14 +k.name = "VPBLENDW_YYYI" +end +do local k = l[1298] +k.orgnames = l[4] +k.opclass = l[930] +k.operands = l[16] +k.sub = 20 +k.name = "VPCMPEQB_XXM" +end +do local k = l[1299] +k.orgnames = l[4] +k.opclass = l[932] +k.operands = l[30] +k.sub = 20 +k.name = "VPCMPEQB_XXX" +end +do local k = l[1300] +k.orgnames = l[4] +k.opclass = l[934] +k.operands = l[380] +k.sub = 20 +k.name = "VPCMPEQB_YYM" +end +do local k = l[1301] +k.orgnames = l[4] +k.opclass = l[936] +k.operands = l[387] +k.sub = 20 +k.name = "VPCMPEQB_YYY" +end +do local k = l[1302] +k.orgnames = l[4] +k.opclass = l[930] +k.operands = l[16] +k.sub = 22 +k.name = "VPCMPEQD_XXM" +end +do local k = l[1303] +k.orgnames = l[4] +k.opclass = l[932] +k.operands = l[30] +k.sub = 22 +k.name = "VPCMPEQD_XXX" +end +do local k = l[1304] +k.orgnames = l[4] +k.opclass = l[934] +k.operands = l[380] +k.sub = 22 +k.name = "VPCMPEQD_YYM" +end +do local k = l[1305] +k.orgnames = l[4] +k.opclass = l[936] +k.operands = l[387] +k.sub = 22 +k.name = "VPCMPEQD_YYY" +end +do local k = l[1306] +k.orgnames = l[4] +k.opclass = l[1221] +k.operands = l[16] +k.sub = 9 +k.name = "VPCMPEQQ_XXM" +end +do local k = l[1307] +k.orgnames = l[4] +k.opclass = l[1223] +k.operands = l[30] +k.sub = 9 +k.name = "VPCMPEQQ_XXX" +end +do local k = l[1308] +k.orgnames = l[4] +k.opclass = l[1225] +k.operands = l[380] +k.sub = 9 +k.name = "VPCMPEQQ_YYM" +end +do local k = l[1309] +k.orgnames = l[4] +k.opclass = l[1227] +k.operands = l[387] +k.sub = 9 +k.name = "VPCMPEQQ_YYY" +end +do local k = l[1310] +k.orgnames = l[4] +k.opclass = l[930] +k.operands = l[16] +k.sub = 21 +k.name = "VPCMPEQW_XXM" +end +do local k = l[1311] +k.orgnames = l[4] +k.opclass = l[932] +k.operands = l[30] +k.sub = 21 +k.name = "VPCMPEQW_XXX" +end +do local k = l[1312] +k.orgnames = l[4] +k.opclass = l[934] +k.operands = l[380] +k.sub = 21 +k.name = "VPCMPEQW_YYM" +end +do local k = l[1313] +k.orgnames = l[4] +k.opclass = l[936] +k.operands = l[387] +k.sub = 21 +k.name = "VPCMPEQW_YYY" +end +do local k = l[1314] +k.orgnames = l[1315] +k.opclass = l[1316] +k.operands = l[1322] +k.sub = 1 +k.name = "VPCMPESTRI_ECX_X_EAX_M_EDX_I" +end +do local k = l[1315] +k[1] = "ix" +k[2] = "dst" +k[3] = "dstlen" +k[4] = "src" +k[5] = "srclen" +k[6] = "imm" +k.id = 38 +k.sig = "{ix, dst, dstlen, src, srclen, imm}" +end +do local k = l[1316] +k.isa = l[475] +k.code = l[64] +k.id = 158 +k.layout = l[175] +k.impregs = l[1317] +k.flags = l[699] +k.parm = 96 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{{rcx, def}, {rax, use}, {rdx, use}, {FLAGS, def}}|vex-66-0f3a-R2M1|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR60|{rmem, wflags}" +k.prefixclass = l[917] +end +do local k = l[1317] +k[1] = l[1318] +k[2] = l[1319] +k[3] = l[1320] +k[4] = l[1321] +k.id = 27 +k.sig = "{{rcx, def}, {rax, use}, {rdx, use}, {FLAGS, def}}" +end +do local k = l[1318] +k[1] = "rcx" +k[2] = "def" +end +do local k = l[1319] +k[1] = "rax" +k[2] = "use" +end +do local k = l[1320] +k[1] = "rdx" +k[2] = "use" +end +do local k = l[1321] +k[1] = "FLAGS" +k[2] = "def" +end +do local k = l[1322] +k[1] = l[1323] +k[2] = l[1324] +k[3] = l[1325] +k[4] = l[1326] +k[5] = l[1327] +k[6] = l[1328] +k.id = 293 +k.sig = "{{mode = o,type = GR32,name = p4,fixed = rcx}, {mode = i,type = VR128,name = p2}, {mode = i,type = GR32,name = p5,fixed = rax}, {mode = i,type = i128*,name = p1}, {mode = i,type = GR32,name = p6,fixed = rdx}, {mode = i,type = i8,name = p3}}" +end +do local k = l[1323] +k.mode = "o" +k.type = "GR32" +k.name = "p4" +k.fixed = "rcx" +end +do local k = l[1324] +k.mode = "i" +k.type = "VR128" +k.name = "p2" +end +do local k = l[1325] +k.mode = "i" +k.type = "GR32" +k.name = "p5" +k.fixed = "rax" +end +do local k = l[1326] +k.mode = "i" +k.type = "i128*" +k.name = "p1" +end +do local k = l[1327] +k.mode = "i" +k.type = "GR32" +k.name = "p6" +k.fixed = "rdx" +end +do local k = l[1328] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[1329] +k.orgnames = l[1315] +k.opclass = l[1330] +k.operands = l[1335] +k.sub = 1 +k.name = "VPCMPESTRI_ECX_X_EAX_X_EDX_I" +end +do local k = l[1330] +k.isa = l[475] +k.code = l[76] +k.id = 306 +k.layout = l[1331] +k.impregs = l[1317] +k.flags = l[709] +k.parm = 96 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{{rcx, def}, {rax, use}, {rdx, use}, {FLAGS, def}}|vex-66-0f3a-R2B1|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR60|{wflags}" +k.prefixclass = l[924] +end +do local k = l[1331] +k[1] = l[1332] +k[2] = l[1333] +k[3] = l[1334] +k.id = 42 +k.sig = "{{RegId, use, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}" +end +do local k = l[1332] +k[1] = "RegId" +k[2] = "use" +k[3] = "p1" +end +do local k = l[1333] +k[1] = "RegId" +k[2] = "use" +k[3] = "p2" +end +do local k = l[1334] +k[1] = "Imm" +k[2] = "use" +k[3] = "p3" +k[4] = 0 +end +do local k = l[1335] +k[1] = l[1336] +k[2] = l[1337] +k[3] = l[1338] +k[4] = l[1339] +k[5] = l[1340] +k[6] = l[1341] +k.id = 283 +k.sig = "{{mode = o,type = GR32,name = p4,fixed = rcx}, {mode = i,type = VR128,name = p2}, {mode = i,type = GR32,name = p5,fixed = rax}, {mode = i,type = VR128,name = p1}, {mode = i,type = GR32,name = p6,fixed = rdx}, {mode = i,type = i8,name = p3}}" +end +do local k = l[1336] +k.mode = "o" +k.type = "GR32" +k.name = "p4" +k.fixed = "rcx" +end +do local k = l[1337] +k.mode = "i" +k.type = "VR128" +k.name = "p2" +end +do local k = l[1338] +k.mode = "i" +k.type = "GR32" +k.name = "p5" +k.fixed = "rax" +end +do local k = l[1339] +k.mode = "i" +k.type = "VR128" +k.name = "p1" +end +do local k = l[1340] +k.mode = "i" +k.type = "GR32" +k.name = "p6" +k.fixed = "rdx" +end +do local k = l[1341] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[1342] +k.orgnames = l[1315] +k.opclass = l[1343] +k.operands = l[1349] +k.sub = 0 +k.name = "VPCMPESTRM_XMM0_X_EAX_M_EDX_I" +end +do local k = l[1343] +k.isa = l[475] +k.code = l[64] +k.id = 160 +k.layout = l[175] +k.impregs = l[1344] +k.flags = l[699] +k.parm = 96 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{{xmm0, def}, {rax, use}, {rdx, use}, {FLAGS, def}}|vex-66-0f3a-R2M1|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR60|{rmem, wflags}" +k.prefixclass = l[917] +end +do local k = l[1344] +k[1] = l[1345] +k[2] = l[1346] +k[3] = l[1347] +k[4] = l[1348] +k.id = 28 +k.sig = "{{xmm0, def}, {rax, use}, {rdx, use}, {FLAGS, def}}" +end +do local k = l[1345] +k[1] = "xmm0" +k[2] = "def" +end +do local k = l[1346] +k[1] = "rax" +k[2] = "use" +end +do local k = l[1347] +k[1] = "rdx" +k[2] = "use" +end +do local k = l[1348] +k[1] = "FLAGS" +k[2] = "def" +end +do local k = l[1349] +k[1] = l[1350] +k[2] = l[1351] +k[3] = l[1352] +k[4] = l[1353] +k[5] = l[1354] +k[6] = l[1355] +k.id = 294 +k.sig = "{{mode = o,type = VR128,name = p4,fixed = xmm0}, {mode = i,type = VR128,name = p2}, {mode = i,type = GR32,name = p5,fixed = rax}, {mode = i,type = i128*,name = p1}, {mode = i,type = GR32,name = p6,fixed = rdx}, {mode = i,type = i8,name = p3}}" +end +do local k = l[1350] +k.mode = "o" +k.type = "VR128" +k.name = "p4" +k.fixed = "xmm0" +end +do local k = l[1351] +k.mode = "i" +k.type = "VR128" +k.name = "p2" +end +do local k = l[1352] +k.mode = "i" +k.type = "GR32" +k.name = "p5" +k.fixed = "rax" +end +do local k = l[1353] +k.mode = "i" +k.type = "i128*" +k.name = "p1" +end +do local k = l[1354] +k.mode = "i" +k.type = "GR32" +k.name = "p6" +k.fixed = "rdx" +end +do local k = l[1355] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[1356] +k.orgnames = l[1315] +k.opclass = l[1357] +k.operands = l[1358] +k.sub = 0 +k.name = "VPCMPESTRM_XMM0_X_EAX_X_EDX_I" +end +do local k = l[1357] +k.isa = l[475] +k.code = l[76] +k.id = 308 +k.layout = l[1331] +k.impregs = l[1344] +k.flags = l[709] +k.parm = 96 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{{xmm0, def}, {rax, use}, {rdx, use}, {FLAGS, def}}|vex-66-0f3a-R2B1|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR60|{wflags}" +k.prefixclass = l[924] +end +do local k = l[1358] +k[1] = l[1359] +k[2] = l[1360] +k[3] = l[1361] +k[4] = l[1362] +k[5] = l[1363] +k[6] = l[1364] +k.id = 284 +k.sig = "{{mode = o,type = VR128,name = p4,fixed = xmm0}, {mode = i,type = VR128,name = p2}, {mode = i,type = GR32,name = p5,fixed = rax}, {mode = i,type = VR128,name = p1}, {mode = i,type = GR32,name = p6,fixed = rdx}, {mode = i,type = i8,name = p3}}" +end +do local k = l[1359] +k.mode = "o" +k.type = "VR128" +k.name = "p4" +k.fixed = "xmm0" +end +do local k = l[1360] +k.mode = "i" +k.type = "VR128" +k.name = "p2" +end +do local k = l[1361] +k.mode = "i" +k.type = "GR32" +k.name = "p5" +k.fixed = "rax" +end +do local k = l[1362] +k.mode = "i" +k.type = "VR128" +k.name = "p1" +end +do local k = l[1363] +k.mode = "i" +k.type = "GR32" +k.name = "p6" +k.fixed = "rdx" +end +do local k = l[1364] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[1365] +k.orgnames = l[4] +k.opclass = l[930] +k.operands = l[16] +k.sub = 4 +k.name = "VPCMPGTB_XXM" +end +do local k = l[1366] +k.orgnames = l[4] +k.opclass = l[932] +k.operands = l[30] +k.sub = 4 +k.name = "VPCMPGTB_XXX" +end +do local k = l[1367] +k.orgnames = l[4] +k.opclass = l[934] +k.operands = l[380] +k.sub = 4 +k.name = "VPCMPGTB_YYM" +end +do local k = l[1368] +k.orgnames = l[4] +k.opclass = l[936] +k.operands = l[387] +k.sub = 4 +k.name = "VPCMPGTB_YYY" +end +do local k = l[1369] +k.orgnames = l[4] +k.opclass = l[930] +k.operands = l[16] +k.sub = 6 +k.name = "VPCMPGTD_XXM" +end +do local k = l[1370] +k.orgnames = l[4] +k.opclass = l[932] +k.operands = l[30] +k.sub = 6 +k.name = "VPCMPGTD_XXX" +end +do local k = l[1371] +k.orgnames = l[4] +k.opclass = l[934] +k.operands = l[380] +k.sub = 6 +k.name = "VPCMPGTD_YYM" +end +do local k = l[1372] +k.orgnames = l[4] +k.opclass = l[936] +k.operands = l[387] +k.sub = 6 +k.name = "VPCMPGTD_YYY" +end +do local k = l[1373] +k.orgnames = l[4] +k.opclass = l[1221] +k.operands = l[16] +k.sub = 23 +k.name = "VPCMPGTQ_XXM" +end +do local k = l[1374] +k.orgnames = l[4] +k.opclass = l[1223] +k.operands = l[30] +k.sub = 23 +k.name = "VPCMPGTQ_XXX" +end +do local k = l[1375] +k.orgnames = l[4] +k.opclass = l[1225] +k.operands = l[380] +k.sub = 23 +k.name = "VPCMPGTQ_YYM" +end +do local k = l[1376] +k.orgnames = l[4] +k.opclass = l[1227] +k.operands = l[387] +k.sub = 23 +k.name = "VPCMPGTQ_YYY" +end +do local k = l[1377] +k.orgnames = l[4] +k.opclass = l[930] +k.operands = l[16] +k.sub = 5 +k.name = "VPCMPGTW_XXM" +end +do local k = l[1378] +k.orgnames = l[4] +k.opclass = l[932] +k.operands = l[30] +k.sub = 5 +k.name = "VPCMPGTW_XXX" +end +do local k = l[1379] +k.orgnames = l[4] +k.opclass = l[934] +k.operands = l[380] +k.sub = 5 +k.name = "VPCMPGTW_YYM" +end +do local k = l[1380] +k.orgnames = l[4] +k.opclass = l[936] +k.operands = l[387] +k.sub = 5 +k.name = "VPCMPGTW_YYY" +end +do local k = l[1381] +k.orgnames = l[1382] +k.opclass = l[1383] +k.operands = l[1387] +k.sub = 3 +k.name = "VPCMPISTRI_ECX_XMI" +end +do local k = l[1382] +k[1] = "ix" +k[2] = "dst" +k[3] = "src" +k[4] = "imm" +k.id = 39 +k.sig = "{ix, dst, src, imm}" +end +do local k = l[1383] +k.isa = l[475] +k.code = l[64] +k.id = 157 +k.layout = l[175] +k.impregs = l[1384] +k.flags = l[699] +k.parm = 96 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{{rcx, def}, {FLAGS, def}}|vex-66-0f3a-R2M1|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR60|{rmem, wflags}" +k.prefixclass = l[917] +end +do local k = l[1384] +k[1] = l[1385] +k[2] = l[1386] +k.id = 29 +k.sig = "{{rcx, def}, {FLAGS, def}}" +end +do local k = l[1385] +k[1] = "rcx" +k[2] = "def" +end +do local k = l[1386] +k[1] = "FLAGS" +k[2] = "def" +end +do local k = l[1387] +k[1] = l[1388] +k[2] = l[1389] +k[3] = l[1390] +k[4] = l[1391] +k.id = 295 +k.sig = "{{mode = o,type = GR32,name = p4,fixed = rcx}, {mode = i,type = VR128,name = p2}, {mode = i,type = i128*,name = p1}, {mode = i,type = i8,name = p3}}" +end +do local k = l[1388] +k.mode = "o" +k.type = "GR32" +k.name = "p4" +k.fixed = "rcx" +end +do local k = l[1389] +k.mode = "i" +k.type = "VR128" +k.name = "p2" +end +do local k = l[1390] +k.mode = "i" +k.type = "i128*" +k.name = "p1" +end +do local k = l[1391] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[1392] +k.orgnames = l[1382] +k.opclass = l[1393] +k.operands = l[1394] +k.sub = 3 +k.name = "VPCMPISTRI_ECX_XXI" +end +do local k = l[1393] +k.isa = l[475] +k.code = l[76] +k.id = 305 +k.layout = l[1331] +k.impregs = l[1384] +k.flags = l[709] +k.parm = 96 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{{rcx, def}, {FLAGS, def}}|vex-66-0f3a-R2B1|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR60|{wflags}" +k.prefixclass = l[924] +end +do local k = l[1394] +k[1] = l[1395] +k[2] = l[1396] +k[3] = l[1397] +k[4] = l[1398] +k.id = 285 +k.sig = "{{mode = o,type = GR32,name = p4,fixed = rcx}, {mode = i,type = VR128,name = p2}, {mode = i,type = VR128,name = p1}, {mode = i,type = i8,name = p3}}" +end +do local k = l[1395] +k.mode = "o" +k.type = "GR32" +k.name = "p4" +k.fixed = "rcx" +end +do local k = l[1396] +k.mode = "i" +k.type = "VR128" +k.name = "p2" +end +do local k = l[1397] +k.mode = "i" +k.type = "VR128" +k.name = "p1" +end +do local k = l[1398] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[1399] +k.orgnames = l[1382] +k.opclass = l[1400] +k.operands = l[1404] +k.sub = 2 +k.name = "VPCMPISTRM_XMM0_XMI" +end +do local k = l[1400] +k.isa = l[475] +k.code = l[64] +k.id = 159 +k.layout = l[175] +k.impregs = l[1401] +k.flags = l[699] +k.parm = 96 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{{xmm0, def}, {FLAGS, def}}|vex-66-0f3a-R2M1|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR60|{rmem, wflags}" +k.prefixclass = l[917] +end +do local k = l[1401] +k[1] = l[1402] +k[2] = l[1403] +k.id = 30 +k.sig = "{{xmm0, def}, {FLAGS, def}}" +end +do local k = l[1402] +k[1] = "xmm0" +k[2] = "def" +end +do local k = l[1403] +k[1] = "FLAGS" +k[2] = "def" +end +do local k = l[1404] +k[1] = l[1405] +k[2] = l[1406] +k[3] = l[1407] +k[4] = l[1408] +k.id = 296 +k.sig = "{{mode = o,type = VR128,name = p4,fixed = xmm0}, {mode = i,type = VR128,name = p2}, {mode = i,type = i128*,name = p1}, {mode = i,type = i8,name = p3}}" +end +do local k = l[1405] +k.mode = "o" +k.type = "VR128" +k.name = "p4" +k.fixed = "xmm0" +end +do local k = l[1406] +k.mode = "i" +k.type = "VR128" +k.name = "p2" +end +do local k = l[1407] +k.mode = "i" +k.type = "i128*" +k.name = "p1" +end +do local k = l[1408] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[1409] +k.orgnames = l[1382] +k.opclass = l[1410] +k.operands = l[1411] +k.sub = 2 +k.name = "VPCMPISTRM_XMM0_XXI" +end +do local k = l[1410] +k.isa = l[475] +k.code = l[76] +k.id = 307 +k.layout = l[1331] +k.impregs = l[1401] +k.flags = l[709] +k.parm = 96 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{{xmm0, def}, {FLAGS, def}}|vex-66-0f3a-R2B1|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR60|{wflags}" +k.prefixclass = l[924] +end +do local k = l[1411] +k[1] = l[1412] +k[2] = l[1413] +k[3] = l[1414] +k[4] = l[1415] +k.id = 286 +k.sig = "{{mode = o,type = VR128,name = p4,fixed = xmm0}, {mode = i,type = VR128,name = p2}, {mode = i,type = VR128,name = p1}, {mode = i,type = i8,name = p3}}" +end +do local k = l[1412] +k.mode = "o" +k.type = "VR128" +k.name = "p4" +k.fixed = "xmm0" +end +do local k = l[1413] +k.mode = "i" +k.type = "VR128" +k.name = "p2" +end +do local k = l[1414] +k.mode = "i" +k.type = "VR128" +k.name = "p1" +end +do local k = l[1415] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[1416] +k.orgnames = l[124] +k.opclass = l[535] +k.operands = l[259] +k.sub = 6 +k.name = "VPERM2F128_YYMI" +end +do local k = l[1417] +k.orgnames = l[124] +k.opclass = l[537] +k.operands = l[268] +k.sub = 6 +k.name = "VPERM2F128_YYYI" +end +do local k = l[1418] +k.orgnames = l[62] +k.opclass = l[1419] +k.operands = l[70] +k.sub = 5 +k.name = "VPERMILPD_XMI" +end +do local k = l[1419] +k.isa = l[475] +k.code = l[64] +k.id = 66 +k.layout = l[65] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f38-R2M1|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR 0|{rmem}" +k.prefixclass = l[311] +end +do local k = l[1420] +k.orgnames = l[62] +k.opclass = l[1421] +k.operands = l[82] +k.sub = 5 +k.name = "VPERMILPD_XXI" +end +do local k = l[1421] +k.isa = l[475] +k.code = l[76] +k.id = 211 +k.layout = l[77] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f38-R2B1|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR 0|{}" +k.prefixclass = l[170] +end +do local k = l[1422] +k.orgnames = l[4] +k.opclass = l[1197] +k.operands = l[16] +k.sub = 13 +k.name = "VPERMILPD_XXM" +end +do local k = l[1423] +k.orgnames = l[4] +k.opclass = l[1199] +k.operands = l[30] +k.sub = 13 +k.name = "VPERMILPD_XXX" +end +do local k = l[1424] +k.orgnames = l[62] +k.opclass = l[1425] +k.operands = l[366] +k.sub = 5 +k.name = "VPERMILPD_YMI" +end +do local k = l[1425] +k.isa = l[475] +k.code = l[64] +k.id = 65 +k.layout = l[65] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f38-128.R2M1|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR 0|{rmem}" +k.prefixclass = l[156] +end +do local k = l[1426] +k.orgnames = l[62] +k.opclass = l[1427] +k.operands = l[374] +k.sub = 5 +k.name = "VPERMILPD_YYI" +end +do local k = l[1427] +k.isa = l[475] +k.code = l[76] +k.id = 210 +k.layout = l[77] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f38-128.R2B1|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR 0|{}" +k.prefixclass = l[163] +end +do local k = l[1428] +k.orgnames = l[4] +k.opclass = l[1201] +k.operands = l[380] +k.sub = 13 +k.name = "VPERMILPD_YYM" +end +do local k = l[1429] +k.orgnames = l[4] +k.opclass = l[1203] +k.operands = l[387] +k.sub = 13 +k.name = "VPERMILPD_YYY" +end +do local k = l[1430] +k.orgnames = l[62] +k.opclass = l[1419] +k.operands = l[70] +k.sub = 4 +k.name = "VPERMILPS_XMI" +end +do local k = l[1431] +k.orgnames = l[62] +k.opclass = l[1421] +k.operands = l[82] +k.sub = 4 +k.name = "VPERMILPS_XXI" +end +do local k = l[1432] +k.orgnames = l[4] +k.opclass = l[1197] +k.operands = l[16] +k.sub = 12 +k.name = "VPERMILPS_XXM" +end +do local k = l[1433] +k.orgnames = l[4] +k.opclass = l[1199] +k.operands = l[30] +k.sub = 12 +k.name = "VPERMILPS_XXX" +end +do local k = l[1434] +k.orgnames = l[62] +k.opclass = l[1425] +k.operands = l[366] +k.sub = 4 +k.name = "VPERMILPS_YMI" +end +do local k = l[1435] +k.orgnames = l[62] +k.opclass = l[1427] +k.operands = l[374] +k.sub = 4 +k.name = "VPERMILPS_YYI" +end +do local k = l[1436] +k.orgnames = l[4] +k.opclass = l[1201] +k.operands = l[380] +k.sub = 12 +k.name = "VPERMILPS_YYM" +end +do local k = l[1437] +k.orgnames = l[4] +k.opclass = l[1203] +k.operands = l[387] +k.sub = 12 +k.name = "VPERMILPS_YYY" +end +do local k = l[1438] +k.orgnames = l[62] +k.opclass = l[916] +k.operands = l[1439] +k.sub = 20 +k.name = "VPEXTRB128_M8XI" +end +do local k = l[1439] +k[1] = l[1440] +k[2] = l[1441] +k[3] = l[1442] +k.id = 289 +k.sig = "{{mode = i,type = i8*,name = p1}, {mode = i,type = VR128,name = p2}, {mode = i,type = i8,name = p3}}" +end +do local k = l[1440] +k.mode = "i" +k.type = "i8*" +k.name = "p1" +end +do local k = l[1441] +k.mode = "i" +k.type = "VR128" +k.name = "p2" +end +do local k = l[1442] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[1443] +k.orgnames = l[62] +k.opclass = l[923] +k.operands = l[1444] +k.sub = 20 +k.name = "VPEXTRB128_WXI" +end +do local k = l[1444] +k[1] = l[1445] +k[2] = l[1446] +k[3] = l[1447] +k.id = 279 +k.sig = "{{mode = o,type = GR32,name = p1}, {mode = i,type = VR128,name = p2}, {mode = i,type = i8,name = p3}}" +end +do local k = l[1445] +k.mode = "o" +k.type = "GR32" +k.name = "p1" +end +do local k = l[1446] +k.mode = "i" +k.type = "VR128" +k.name = "p2" +end +do local k = l[1447] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[1448] +k.orgnames = l[62] +k.opclass = l[916] +k.operands = l[918] +k.sub = 22 +k.name = "VPEXTRD128_M32XI" +end +do local k = l[1449] +k.orgnames = l[62] +k.opclass = l[923] +k.operands = l[1444] +k.sub = 22 +k.name = "VPEXTRD128_WXI" +end +do local k = l[1450] +k.orgnames = l[62] +k.opclass = l[916] +k.operands = l[1451] +k.sub = 21 +k.name = "VPEXTRWX128_M16XI" +end +do local k = l[1451] +k[1] = l[1452] +k[2] = l[1453] +k[3] = l[1454] +k.id = 291 +k.sig = "{{mode = i,type = i16*,name = p1}, {mode = i,type = VR128,name = p2}, {mode = i,type = i8,name = p3}}" +end +do local k = l[1452] +k.mode = "i" +k.type = "i16*" +k.name = "p1" +end +do local k = l[1453] +k.mode = "i" +k.type = "VR128" +k.name = "p2" +end +do local k = l[1454] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[1455] +k.orgnames = l[62] +k.opclass = l[923] +k.operands = l[1444] +k.sub = 21 +k.name = "VPEXTRWX128_WXI" +end +do local k = l[1456] +k.orgnames = l[62] +k.opclass = l[1457] +k.operands = l[1459] +k.name = "VPEXTRW_WXI" +end +do local k = l[1457] +k.isa = l[475] +k.code = l[1458] +k.id = 209 +k.layout = l[77] +k.impregs = l[12] +k.flags = l[27] +k.parm = 197 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f-R2B1|{$parm, !RRMR($p2,$p1), !I8($p3)}|PARC5|{}" +k.prefixclass = l[710] +end +do local k = l[1458] +k[1] = "$parm" +k[2] = "!RRMR($p2,$p1)" +k[3] = "!I8($p3)" +k.id = 53 +k.sig = "{$parm, !RRMR($p2,$p1), !I8($p3)}" +end +do local k = l[1459] +k[1] = l[1460] +k[2] = l[1461] +k[3] = l[1462] +k.id = 273 +k.sig = "{{mode = o,type = GR32,name = p2}, {mode = i,type = VR128,name = p1}, {mode = i,type = i8,name = p3}}" +end +do local k = l[1460] +k.mode = "o" +k.type = "GR32" +k.name = "p2" +end +do local k = l[1461] +k.mode = "i" +k.type = "VR128" +k.name = "p1" +end +do local k = l[1462] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[1463] +k.orgnames = l[4] +k.opclass = l[1197] +k.operands = l[16] +k.sub = 2 +k.name = "VPHADDD_XXM" +end +do local k = l[1464] +k.orgnames = l[4] +k.opclass = l[1199] +k.operands = l[30] +k.sub = 2 +k.name = "VPHADDD_XXX" +end +do local k = l[1465] +k.orgnames = l[4] +k.opclass = l[1201] +k.operands = l[380] +k.sub = 2 +k.name = "VPHADDD_YYM" +end +do local k = l[1466] +k.orgnames = l[4] +k.opclass = l[1203] +k.operands = l[387] +k.sub = 2 +k.name = "VPHADDD_YYY" +end +do local k = l[1467] +k.orgnames = l[4] +k.opclass = l[1197] +k.operands = l[16] +k.sub = 3 +k.name = "VPHADDSW_XXM" +end +do local k = l[1468] +k.orgnames = l[4] +k.opclass = l[1199] +k.operands = l[30] +k.sub = 3 +k.name = "VPHADDSW_XXX" +end +do local k = l[1469] +k.orgnames = l[4] +k.opclass = l[1201] +k.operands = l[380] +k.sub = 3 +k.name = "VPHADDSW_YYM" +end +do local k = l[1470] +k.orgnames = l[4] +k.opclass = l[1203] +k.operands = l[387] +k.sub = 3 +k.name = "VPHADDSW_YYY" +end +do local k = l[1471] +k.orgnames = l[4] +k.opclass = l[1197] +k.operands = l[16] +k.sub = 1 +k.name = "VPHADDW_XXM" +end +do local k = l[1472] +k.orgnames = l[4] +k.opclass = l[1199] +k.operands = l[30] +k.sub = 1 +k.name = "VPHADDW_XXX" +end +do local k = l[1473] +k.orgnames = l[4] +k.opclass = l[1201] +k.operands = l[380] +k.sub = 1 +k.name = "VPHADDW_YYM" +end +do local k = l[1474] +k.orgnames = l[4] +k.opclass = l[1203] +k.operands = l[387] +k.sub = 1 +k.name = "VPHADDW_YYY" +end +do local k = l[1475] +k.orgnames = l[4] +k.opclass = l[1476] +k.operands = l[16] +k.sub = 1 +k.name = "VPHMINPOSUW_XXM" +end +do local k = l[1476] +k.isa = l[475] +k.code = l[7] +k.id = 118 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR40|{rmem}" +k.prefixclass = l[14] +end +do local k = l[1477] +k.orgnames = l[4] +k.opclass = l[1478] +k.operands = l[30] +k.sub = 1 +k.name = "VPHMINPOSUW_XXX" +end +do local k = l[1478] +k.isa = l[475] +k.code = l[22] +k.id = 264 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PAR40|{}" +k.prefixclass = l[28] +end +do local k = l[1479] +k.orgnames = l[4] +k.opclass = l[1480] +k.operands = l[380] +k.sub = 1 +k.name = "VPHMINPOSUW_YYM" +end +do local k = l[1480] +k.isa = l[475] +k.code = l[7] +k.id = 115 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-128.R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR40|{rmem}" +k.prefixclass = l[226] +end +do local k = l[1481] +k.orgnames = l[4] +k.opclass = l[1482] +k.operands = l[387] +k.sub = 1 +k.name = "VPHMINPOSUW_YYY" +end +do local k = l[1482] +k.isa = l[475] +k.code = l[22] +k.id = 261 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-128.R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PAR40|{}" +k.prefixclass = l[386] +end +do local k = l[1483] +k.orgnames = l[4] +k.opclass = l[1197] +k.operands = l[16] +k.sub = 6 +k.name = "VPHSUBD_XXM" +end +do local k = l[1484] +k.orgnames = l[4] +k.opclass = l[1199] +k.operands = l[30] +k.sub = 6 +k.name = "VPHSUBD_XXX" +end +do local k = l[1485] +k.orgnames = l[4] +k.opclass = l[1201] +k.operands = l[380] +k.sub = 6 +k.name = "VPHSUBD_YYM" +end +do local k = l[1486] +k.orgnames = l[4] +k.opclass = l[1203] +k.operands = l[387] +k.sub = 6 +k.name = "VPHSUBD_YYY" +end +do local k = l[1487] +k.orgnames = l[4] +k.opclass = l[1197] +k.operands = l[16] +k.sub = 7 +k.name = "VPHSUBSW_XXM" +end +do local k = l[1488] +k.orgnames = l[4] +k.opclass = l[1199] +k.operands = l[30] +k.sub = 7 +k.name = "VPHSUBSW_XXX" +end +do local k = l[1489] +k.orgnames = l[4] +k.opclass = l[1201] +k.operands = l[380] +k.sub = 7 +k.name = "VPHSUBSW_YYM" +end +do local k = l[1490] +k.orgnames = l[4] +k.opclass = l[1203] +k.operands = l[387] +k.sub = 7 +k.name = "VPHSUBSW_YYY" +end +do local k = l[1491] +k.orgnames = l[4] +k.opclass = l[1197] +k.operands = l[16] +k.sub = 5 +k.name = "VPHSUBW_XXM" +end +do local k = l[1492] +k.orgnames = l[4] +k.opclass = l[1199] +k.operands = l[30] +k.sub = 5 +k.name = "VPHSUBW_XXX" +end +do local k = l[1493] +k.orgnames = l[4] +k.opclass = l[1201] +k.operands = l[380] +k.sub = 5 +k.name = "VPHSUBW_YYM" +end +do local k = l[1494] +k.orgnames = l[4] +k.opclass = l[1203] +k.operands = l[387] +k.sub = 5 +k.name = "VPHSUBW_YYY" +end +do local k = l[1495] +k.orgnames = l[124] +k.opclass = l[956] +k.operands = l[1496] +k.sub = 0 +k.name = "VPINSRB_XXM8I" +end +do local k = l[1496] +k[1] = l[1497] +k[2] = l[1498] +k[3] = l[1499] +k[4] = l[1500] +k.id = 302 +k.sig = "{{mode = o,type = VR128,name = p2}, {mode = i,type = VR128,name = p3}, {mode = i,type = i8*,name = p1}, {mode = i,type = i8,name = p4}}" +end +do local k = l[1497] +k.mode = "o" +k.type = "VR128" +k.name = "p2" +end +do local k = l[1498] +k.mode = "i" +k.type = "VR128" +k.name = "p3" +end +do local k = l[1499] +k.mode = "i" +k.type = "i8*" +k.name = "p1" +end +do local k = l[1500] +k.mode = "i" +k.type = "i8" +k.name = "p4" +end +do local k = l[1501] +k.orgnames = l[124] +k.opclass = l[963] +k.operands = l[1502] +k.sub = 0 +k.name = "VPINSRB_XXWI" +end +do local k = l[1502] +k[1] = l[1503] +k[2] = l[1504] +k[3] = l[1505] +k[4] = l[1506] +k.id = 297 +k.sig = "{{mode = o,type = VR128,name = p2}, {mode = i,type = VR128,name = p3}, {mode = i,type = GR32,name = p1}, {mode = i,type = i8,name = p4}}" +end +do local k = l[1503] +k.mode = "o" +k.type = "VR128" +k.name = "p2" +end +do local k = l[1504] +k.mode = "i" +k.type = "VR128" +k.name = "p3" +end +do local k = l[1505] +k.mode = "i" +k.type = "GR32" +k.name = "p1" +end +do local k = l[1506] +k.mode = "i" +k.type = "i8" +k.name = "p4" +end +do local k = l[1507] +k.orgnames = l[124] +k.opclass = l[956] +k.operands = l[957] +k.sub = 2 +k.name = "VPINSRD_XXM32I" +end +do local k = l[1508] +k.orgnames = l[124] +k.opclass = l[963] +k.operands = l[1502] +k.sub = 2 +k.name = "VPINSRD_XXWI" +end +do local k = l[1509] +k.orgnames = l[124] +k.opclass = l[1510] +k.operands = l[1511] +k.sub = 4 +k.name = "VPINSRW_XXM16I" +end +do local k = l[1510] +k.isa = l[475] +k.code = l[127] +k.id = 80 +k.layout = l[128] +k.impregs = l[12] +k.flags = l[13] +k.parm = 192 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-66-0f-R2M1S3|{$parm+$sub, !RRMM($p2,$p1), !I8($p4)}|PARC0|{rmem}" +k.prefixclass = l[476] +end +do local k = l[1511] +k[1] = l[1512] +k[2] = l[1513] +k[3] = l[1514] +k[4] = l[1515] +k.id = 301 +k.sig = "{{mode = o,type = VR128,name = p2}, {mode = i,type = VR128,name = p3}, {mode = i,type = i16*,name = p1}, {mode = i,type = i8,name = p4}}" +end +do local k = l[1512] +k.mode = "o" +k.type = "VR128" +k.name = "p2" +end +do local k = l[1513] +k.mode = "i" +k.type = "VR128" +k.name = "p3" +end +do local k = l[1514] +k.mode = "i" +k.type = "i16*" +k.name = "p1" +end +do local k = l[1515] +k.mode = "i" +k.type = "i8" +k.name = "p4" +end +do local k = l[1516] +k.orgnames = l[124] +k.opclass = l[1517] +k.operands = l[1502] +k.sub = 4 +k.name = "VPINSRW_XXWI" +end +do local k = l[1517] +k.isa = l[475] +k.code = l[141] +k.id = 225 +k.layout = l[142] +k.impregs = l[12] +k.flags = l[27] +k.parm = 192 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-66-0f-R2B1S3|{$parm+$sub, !RRMR($p2,$p1), !I8($p4)}|PARC0|{}" +k.prefixclass = l[479] +end +do local k = l[1518] +k.orgnames = l[4] +k.opclass = l[1197] +k.operands = l[16] +k.sub = 4 +k.name = "VPMADDUBSW_XXM" +end +do local k = l[1519] +k.orgnames = l[4] +k.opclass = l[1199] +k.operands = l[30] +k.sub = 4 +k.name = "VPMADDUBSW_XXX" +end +do local k = l[1520] +k.orgnames = l[4] +k.opclass = l[1201] +k.operands = l[380] +k.sub = 4 +k.name = "VPMADDUBSW_YYM" +end +do local k = l[1521] +k.orgnames = l[4] +k.opclass = l[1203] +k.operands = l[387] +k.sub = 4 +k.name = "VPMADDUBSW_YYY" +end +do local k = l[1522] +k.orgnames = l[4] +k.opclass = l[1233] +k.operands = l[16] +k.sub = 21 +k.name = "VPMADDWD_XXM" +end +do local k = l[1523] +k.orgnames = l[4] +k.opclass = l[1235] +k.operands = l[30] +k.sub = 21 +k.name = "VPMADDWD_XXX" +end +do local k = l[1524] +k.orgnames = l[4] +k.opclass = l[1237] +k.operands = l[380] +k.sub = 21 +k.name = "VPMADDWD_YYM" +end +do local k = l[1525] +k.orgnames = l[4] +k.opclass = l[1239] +k.operands = l[387] +k.sub = 21 +k.name = "VPMADDWD_YYY" +end +do local k = l[1526] +k.orgnames = l[4] +k.opclass = l[1221] +k.operands = l[16] +k.sub = 28 +k.name = "VPMAXSB_XXM" +end +do local k = l[1527] +k.orgnames = l[4] +k.opclass = l[1223] +k.operands = l[30] +k.sub = 28 +k.name = "VPMAXSB_XXX" +end +do local k = l[1528] +k.orgnames = l[4] +k.opclass = l[1225] +k.operands = l[380] +k.sub = 28 +k.name = "VPMAXSB_YYM" +end +do local k = l[1529] +k.orgnames = l[4] +k.opclass = l[1227] +k.operands = l[387] +k.sub = 28 +k.name = "VPMAXSB_YYY" +end +do local k = l[1530] +k.orgnames = l[4] +k.opclass = l[1221] +k.operands = l[16] +k.sub = 29 +k.name = "VPMAXSD_XXM" +end +do local k = l[1531] +k.orgnames = l[4] +k.opclass = l[1223] +k.operands = l[30] +k.sub = 29 +k.name = "VPMAXSD_XXX" +end +do local k = l[1532] +k.orgnames = l[4] +k.opclass = l[1225] +k.operands = l[380] +k.sub = 29 +k.name = "VPMAXSD_YYM" +end +do local k = l[1533] +k.orgnames = l[4] +k.opclass = l[1227] +k.operands = l[387] +k.sub = 29 +k.name = "VPMAXSD_YYY" +end +do local k = l[1534] +k.orgnames = l[4] +k.opclass = l[1233] +k.operands = l[16] +k.sub = 14 +k.name = "VPMAXSW_XXM" +end +do local k = l[1535] +k.orgnames = l[4] +k.opclass = l[1235] +k.operands = l[30] +k.sub = 14 +k.name = "VPMAXSW_XXX" +end +do local k = l[1536] +k.orgnames = l[4] +k.opclass = l[1237] +k.operands = l[380] +k.sub = 14 +k.name = "VPMAXSW_YYM" +end +do local k = l[1537] +k.orgnames = l[4] +k.opclass = l[1239] +k.operands = l[387] +k.sub = 14 +k.name = "VPMAXSW_YYY" +end +do local k = l[1538] +k.orgnames = l[4] +k.opclass = l[499] +k.operands = l[16] +k.sub = 30 +k.name = "VPMAXUB_XXM" +end +do local k = l[1539] +k.orgnames = l[4] +k.opclass = l[501] +k.operands = l[30] +k.sub = 30 +k.name = "VPMAXUB_XXX" +end +do local k = l[1540] +k.orgnames = l[4] +k.opclass = l[503] +k.operands = l[380] +k.sub = 30 +k.name = "VPMAXUB_YYM" +end +do local k = l[1541] +k.orgnames = l[4] +k.opclass = l[505] +k.operands = l[387] +k.sub = 30 +k.name = "VPMAXUB_YYY" +end +do local k = l[1542] +k.orgnames = l[4] +k.opclass = l[1221] +k.operands = l[16] +k.sub = 31 +k.name = "VPMAXUD_XXM" +end +do local k = l[1543] +k.orgnames = l[4] +k.opclass = l[1223] +k.operands = l[30] +k.sub = 31 +k.name = "VPMAXUD_XXX" +end +do local k = l[1544] +k.orgnames = l[4] +k.opclass = l[1225] +k.operands = l[380] +k.sub = 31 +k.name = "VPMAXUD_YYM" +end +do local k = l[1545] +k.orgnames = l[4] +k.opclass = l[1227] +k.operands = l[387] +k.sub = 31 +k.name = "VPMAXUD_YYY" +end +do local k = l[1546] +k.orgnames = l[4] +k.opclass = l[1221] +k.operands = l[16] +k.sub = 30 +k.name = "VPMAXUW_XXM" +end +do local k = l[1547] +k.orgnames = l[4] +k.opclass = l[1223] +k.operands = l[30] +k.sub = 30 +k.name = "VPMAXUW_XXX" +end +do local k = l[1548] +k.orgnames = l[4] +k.opclass = l[1225] +k.operands = l[380] +k.sub = 30 +k.name = "VPMAXUW_YYM" +end +do local k = l[1549] +k.orgnames = l[4] +k.opclass = l[1227] +k.operands = l[387] +k.sub = 30 +k.name = "VPMAXUW_YYY" +end +do local k = l[1550] +k.orgnames = l[4] +k.opclass = l[1221] +k.operands = l[16] +k.sub = 24 +k.name = "VPMINSB_XXM" +end +do local k = l[1551] +k.orgnames = l[4] +k.opclass = l[1223] +k.operands = l[30] +k.sub = 24 +k.name = "VPMINSB_XXX" +end +do local k = l[1552] +k.orgnames = l[4] +k.opclass = l[1225] +k.operands = l[380] +k.sub = 24 +k.name = "VPMINSB_YYM" +end +do local k = l[1553] +k.orgnames = l[4] +k.opclass = l[1227] +k.operands = l[387] +k.sub = 24 +k.name = "VPMINSB_YYY" +end +do local k = l[1554] +k.orgnames = l[4] +k.opclass = l[1221] +k.operands = l[16] +k.sub = 25 +k.name = "VPMINSD_XXM" +end +do local k = l[1555] +k.orgnames = l[4] +k.opclass = l[1223] +k.operands = l[30] +k.sub = 25 +k.name = "VPMINSD_XXX" +end +do local k = l[1556] +k.orgnames = l[4] +k.opclass = l[1225] +k.operands = l[380] +k.sub = 25 +k.name = "VPMINSD_YYM" +end +do local k = l[1557] +k.orgnames = l[4] +k.opclass = l[1227] +k.operands = l[387] +k.sub = 25 +k.name = "VPMINSD_YYY" +end +do local k = l[1558] +k.orgnames = l[4] +k.opclass = l[1233] +k.operands = l[16] +k.sub = 10 +k.name = "VPMINSW_XXM" +end +do local k = l[1559] +k.orgnames = l[4] +k.opclass = l[1235] +k.operands = l[30] +k.sub = 10 +k.name = "VPMINSW_XXX" +end +do local k = l[1560] +k.orgnames = l[4] +k.opclass = l[1237] +k.operands = l[380] +k.sub = 10 +k.name = "VPMINSW_YYM" +end +do local k = l[1561] +k.orgnames = l[4] +k.opclass = l[1239] +k.operands = l[387] +k.sub = 10 +k.name = "VPMINSW_YYY" +end +do local k = l[1562] +k.orgnames = l[4] +k.opclass = l[499] +k.operands = l[16] +k.sub = 26 +k.name = "VPMINUB_XXM" +end +do local k = l[1563] +k.orgnames = l[4] +k.opclass = l[501] +k.operands = l[30] +k.sub = 26 +k.name = "VPMINUB_XXX" +end +do local k = l[1564] +k.orgnames = l[4] +k.opclass = l[503] +k.operands = l[380] +k.sub = 26 +k.name = "VPMINUB_YYM" +end +do local k = l[1565] +k.orgnames = l[4] +k.opclass = l[505] +k.operands = l[387] +k.sub = 26 +k.name = "VPMINUB_YYY" +end +do local k = l[1566] +k.orgnames = l[4] +k.opclass = l[1221] +k.operands = l[16] +k.sub = 27 +k.name = "VPMINUD_XXM" +end +do local k = l[1567] +k.orgnames = l[4] +k.opclass = l[1223] +k.operands = l[30] +k.sub = 27 +k.name = "VPMINUD_XXX" +end +do local k = l[1568] +k.orgnames = l[4] +k.opclass = l[1225] +k.operands = l[380] +k.sub = 27 +k.name = "VPMINUD_YYM" +end +do local k = l[1569] +k.orgnames = l[4] +k.opclass = l[1227] +k.operands = l[387] +k.sub = 27 +k.name = "VPMINUD_YYY" +end +do local k = l[1570] +k.orgnames = l[4] +k.opclass = l[1221] +k.operands = l[16] +k.sub = 26 +k.name = "VPMINUW_XXM" +end +do local k = l[1571] +k.orgnames = l[4] +k.opclass = l[1223] +k.operands = l[30] +k.sub = 26 +k.name = "VPMINUW_XXX" +end +do local k = l[1572] +k.orgnames = l[4] +k.opclass = l[1225] +k.operands = l[380] +k.sub = 26 +k.name = "VPMINUW_YYM" +end +do local k = l[1573] +k.orgnames = l[4] +k.opclass = l[1227] +k.operands = l[387] +k.sub = 26 +k.name = "VPMINUW_YYY" +end +do local k = l[1574] +k.orgnames = l[41] +k.opclass = l[1575] +k.operands = l[808] +k.name = "VPMOVMSK_WX" +k.sub = 23 +end +do local k = l[1575] +k.isa = l[475] +k.code = l[22] +k.id = 283 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 192 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f-R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PARC0|{}" +k.prefixclass = l[710] +end +do local k = l[1576] +k.orgnames = l[41] +k.opclass = l[1577] +k.operands = l[1100] +k.name = "VPMOVMSK_WY" +k.sub = 23 +end +do local k = l[1577] +k.isa = l[475] +k.code = l[22] +k.id = 278 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 192 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f-128.R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PARC0|{}" +k.prefixclass = l[778] +end +do local k = l[1578] +k.orgnames = l[41] +k.opclass = l[1106] +k.operands = l[327] +k.sub = 1 +k.name = "VPMOVSXBD_XM32" +end +do local k = l[1579] +k.orgnames = l[41] +k.opclass = l[1580] +k.operands = l[58] +k.sub = 1 +k.name = "VPMOVSXBD_XR" +end +do local k = l[1580] +k.isa = l[475] +k.code = l[22] +k.id = 287 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 32 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f38-R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR20|{}" +k.prefixclass = l[170] +end +do local k = l[1581] +k.orgnames = l[41] +k.opclass = l[1108] +k.operands = l[344] +k.sub = 1 +k.name = "VPMOVSXBD_YM64" +end +do local k = l[1582] +k.orgnames = l[41] +k.opclass = l[1583] +k.operands = l[165] +k.sub = 1 +k.name = "VPMOVSXBD_YR" +end +do local k = l[1583] +k.isa = l[475] +k.code = l[22] +k.id = 286 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 32 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f38-128.R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR20|{}" +k.prefixclass = l[163] +end +do local k = l[1584] +k.orgnames = l[41] +k.opclass = l[1106] +k.operands = l[349] +k.sub = 2 +k.name = "VPMOVSXBQ_XM16" +end +do local k = l[1585] +k.orgnames = l[41] +k.opclass = l[1580] +k.operands = l[58] +k.sub = 2 +k.name = "VPMOVSXBQ_XR" +end +do local k = l[1586] +k.orgnames = l[41] +k.opclass = l[1108] +k.operands = l[333] +k.sub = 2 +k.name = "VPMOVSXBQ_YM32" +end +do local k = l[1587] +k.orgnames = l[41] +k.opclass = l[1583] +k.operands = l[165] +k.sub = 2 +k.name = "VPMOVSXBQ_YR" +end +do local k = l[1588] +k.orgnames = l[41] +k.opclass = l[1106] +k.operands = l[339] +k.sub = 0 +k.name = "VPMOVSXBW_XM64" +end +do local k = l[1589] +k.orgnames = l[41] +k.opclass = l[1580] +k.operands = l[58] +k.sub = 0 +k.name = "VPMOVSXBW_XR" +end +do local k = l[1590] +k.orgnames = l[41] +k.opclass = l[1108] +k.operands = l[158] +k.sub = 0 +k.name = "VPMOVSXBW_YM128" +end +do local k = l[1591] +k.orgnames = l[41] +k.opclass = l[1583] +k.operands = l[165] +k.sub = 0 +k.name = "VPMOVSXBW_YR" +end +do local k = l[1592] +k.orgnames = l[41] +k.opclass = l[1106] +k.operands = l[339] +k.sub = 5 +k.name = "VPMOVSXDQ_XM64" +end +do local k = l[1593] +k.orgnames = l[41] +k.opclass = l[1580] +k.operands = l[58] +k.sub = 5 +k.name = "VPMOVSXDQ_XR" +end +do local k = l[1594] +k.orgnames = l[41] +k.opclass = l[1108] +k.operands = l[158] +k.sub = 5 +k.name = "VPMOVSXDQ_YM128" +end +do local k = l[1595] +k.orgnames = l[41] +k.opclass = l[1583] +k.operands = l[165] +k.sub = 5 +k.name = "VPMOVSXDQ_YR" +end +do local k = l[1596] +k.orgnames = l[41] +k.opclass = l[1106] +k.operands = l[339] +k.sub = 3 +k.name = "VPMOVSXWD_XM64" +end +do local k = l[1597] +k.orgnames = l[41] +k.opclass = l[1580] +k.operands = l[58] +k.sub = 3 +k.name = "VPMOVSXWD_XR" +end +do local k = l[1598] +k.orgnames = l[41] +k.opclass = l[1108] +k.operands = l[158] +k.sub = 3 +k.name = "VPMOVSXWD_YM128" +end +do local k = l[1599] +k.orgnames = l[41] +k.opclass = l[1583] +k.operands = l[165] +k.sub = 3 +k.name = "VPMOVSXWD_YR" +end +do local k = l[1600] +k.orgnames = l[41] +k.opclass = l[1106] +k.operands = l[327] +k.sub = 4 +k.name = "VPMOVSXWQ_XM32" +end +do local k = l[1601] +k.orgnames = l[41] +k.opclass = l[1580] +k.operands = l[58] +k.sub = 4 +k.name = "VPMOVSXWQ_XR" +end +do local k = l[1602] +k.orgnames = l[41] +k.opclass = l[1108] +k.operands = l[344] +k.sub = 4 +k.name = "VPMOVSXWQ_YM64" +end +do local k = l[1603] +k.orgnames = l[41] +k.opclass = l[1583] +k.operands = l[165] +k.sub = 4 +k.name = "VPMOVSXWQ_YR" +end +do local k = l[1604] +k.orgnames = l[41] +k.opclass = l[1106] +k.operands = l[327] +k.sub = 17 +k.name = "VPMOVZXBD_XM32" +end +do local k = l[1605] +k.orgnames = l[41] +k.opclass = l[1580] +k.operands = l[58] +k.sub = 17 +k.name = "VPMOVZXBD_XR" +end +do local k = l[1606] +k.orgnames = l[41] +k.opclass = l[1108] +k.operands = l[344] +k.sub = 17 +k.name = "VPMOVZXBD_YM64" +end +do local k = l[1607] +k.orgnames = l[41] +k.opclass = l[1583] +k.operands = l[165] +k.sub = 17 +k.name = "VPMOVZXBD_YR" +end +do local k = l[1608] +k.orgnames = l[41] +k.opclass = l[1106] +k.operands = l[349] +k.sub = 18 +k.name = "VPMOVZXBQ_XM16" +end +do local k = l[1609] +k.orgnames = l[41] +k.opclass = l[1580] +k.operands = l[58] +k.sub = 18 +k.name = "VPMOVZXBQ_XR" +end +do local k = l[1610] +k.orgnames = l[41] +k.opclass = l[1108] +k.operands = l[333] +k.sub = 18 +k.name = "VPMOVZXBQ_YM32" +end +do local k = l[1611] +k.orgnames = l[41] +k.opclass = l[1583] +k.operands = l[165] +k.sub = 18 +k.name = "VPMOVZXBQ_YR" +end +do local k = l[1612] +k.orgnames = l[41] +k.opclass = l[1106] +k.operands = l[339] +k.sub = 16 +k.name = "VPMOVZXBW_XM64" +end +do local k = l[1613] +k.orgnames = l[41] +k.opclass = l[1580] +k.operands = l[58] +k.sub = 16 +k.name = "VPMOVZXBW_XR" +end +do local k = l[1614] +k.orgnames = l[41] +k.opclass = l[1108] +k.operands = l[158] +k.sub = 16 +k.name = "VPMOVZXBW_YM128" +end +do local k = l[1615] +k.orgnames = l[41] +k.opclass = l[1583] +k.operands = l[165] +k.sub = 16 +k.name = "VPMOVZXBW_YR" +end +do local k = l[1616] +k.orgnames = l[41] +k.opclass = l[1106] +k.operands = l[339] +k.sub = 21 +k.name = "VPMOVZXDQ_XM64" +end +do local k = l[1617] +k.orgnames = l[41] +k.opclass = l[1580] +k.operands = l[58] +k.sub = 21 +k.name = "VPMOVZXDQ_XR" +end +do local k = l[1618] +k.orgnames = l[41] +k.opclass = l[1108] +k.operands = l[158] +k.sub = 21 +k.name = "VPMOVZXDQ_YM128" +end +do local k = l[1619] +k.orgnames = l[41] +k.opclass = l[1583] +k.operands = l[165] +k.sub = 21 +k.name = "VPMOVZXDQ_YR" +end +do local k = l[1620] +k.orgnames = l[41] +k.opclass = l[1106] +k.operands = l[339] +k.sub = 19 +k.name = "VPMOVZXWD_XM64" +end +do local k = l[1621] +k.orgnames = l[41] +k.opclass = l[1580] +k.operands = l[58] +k.sub = 19 +k.name = "VPMOVZXWD_XR" +end +do local k = l[1622] +k.orgnames = l[41] +k.opclass = l[1108] +k.operands = l[158] +k.sub = 19 +k.name = "VPMOVZXWD_YM128" +end +do local k = l[1623] +k.orgnames = l[41] +k.opclass = l[1583] +k.operands = l[165] +k.sub = 19 +k.name = "VPMOVZXWD_YR" +end +do local k = l[1624] +k.orgnames = l[41] +k.opclass = l[1106] +k.operands = l[327] +k.sub = 20 +k.name = "VPMOVZXWQ_XM32" +end +do local k = l[1625] +k.orgnames = l[41] +k.opclass = l[1580] +k.operands = l[58] +k.sub = 20 +k.name = "VPMOVZXWQ_XR" +end +do local k = l[1626] +k.orgnames = l[41] +k.opclass = l[1108] +k.operands = l[344] +k.sub = 20 +k.name = "VPMOVZXWQ_YM64" +end +do local k = l[1627] +k.orgnames = l[41] +k.opclass = l[1583] +k.operands = l[165] +k.sub = 20 +k.name = "VPMOVZXWQ_YR" +end +do local k = l[1628] +k.orgnames = l[4] +k.opclass = l[1221] +k.operands = l[16] +k.sub = 8 +k.name = "VPMULDQ_XXM" +end +do local k = l[1629] +k.orgnames = l[4] +k.opclass = l[1223] +k.operands = l[30] +k.sub = 8 +k.name = "VPMULDQ_XXX" +end +do local k = l[1630] +k.orgnames = l[4] +k.opclass = l[1225] +k.operands = l[380] +k.sub = 8 +k.name = "VPMULDQ_YYM" +end +do local k = l[1631] +k.orgnames = l[4] +k.opclass = l[1227] +k.operands = l[387] +k.sub = 8 +k.name = "VPMULDQ_YYY" +end +do local k = l[1632] +k.orgnames = l[4] +k.opclass = l[1197] +k.operands = l[16] +k.sub = 11 +k.name = "VPMULHRSW_XXM" +end +do local k = l[1633] +k.orgnames = l[4] +k.opclass = l[1199] +k.operands = l[30] +k.sub = 11 +k.name = "VPMULHRSW_XXX" +end +do local k = l[1634] +k.orgnames = l[4] +k.opclass = l[1201] +k.operands = l[380] +k.sub = 11 +k.name = "VPMULHRSW_YYM" +end +do local k = l[1635] +k.orgnames = l[4] +k.opclass = l[1203] +k.operands = l[387] +k.sub = 11 +k.name = "VPMULHRSW_YYY" +end +do local k = l[1636] +k.orgnames = l[4] +k.opclass = l[1233] +k.operands = l[16] +k.sub = 4 +k.name = "VPMULHUW_XXM" +end +do local k = l[1637] +k.orgnames = l[4] +k.opclass = l[1235] +k.operands = l[30] +k.sub = 4 +k.name = "VPMULHUW_XXX" +end +do local k = l[1638] +k.orgnames = l[4] +k.opclass = l[1237] +k.operands = l[380] +k.sub = 4 +k.name = "VPMULHUW_YYM" +end +do local k = l[1639] +k.orgnames = l[4] +k.opclass = l[1239] +k.operands = l[387] +k.sub = 4 +k.name = "VPMULHUW_YYY" +end +do local k = l[1640] +k.orgnames = l[4] +k.opclass = l[1233] +k.operands = l[16] +k.sub = 5 +k.name = "VPMULHW_XXM" +end +do local k = l[1641] +k.orgnames = l[4] +k.opclass = l[1235] +k.operands = l[30] +k.sub = 5 +k.name = "VPMULHW_XXX" +end +do local k = l[1642] +k.orgnames = l[4] +k.opclass = l[1237] +k.operands = l[380] +k.sub = 5 +k.name = "VPMULHW_YYM" +end +do local k = l[1643] +k.orgnames = l[4] +k.opclass = l[1239] +k.operands = l[387] +k.sub = 5 +k.name = "VPMULHW_YYY" +end +do local k = l[1644] +k.orgnames = l[4] +k.opclass = l[1476] +k.operands = l[16] +k.sub = 0 +k.name = "VPMULLD_XXM" +end +do local k = l[1645] +k.orgnames = l[4] +k.opclass = l[1478] +k.operands = l[30] +k.sub = 0 +k.name = "VPMULLD_XXX" +end +do local k = l[1646] +k.orgnames = l[4] +k.opclass = l[1480] +k.operands = l[380] +k.sub = 0 +k.name = "VPMULLD_YYM" +end +do local k = l[1647] +k.orgnames = l[4] +k.opclass = l[1482] +k.operands = l[387] +k.sub = 0 +k.name = "VPMULLD_YYY" +end +do local k = l[1648] +k.orgnames = l[4] +k.opclass = l[499] +k.operands = l[16] +k.sub = 21 +k.name = "VPMULLW_XXM" +end +do local k = l[1649] +k.orgnames = l[4] +k.opclass = l[501] +k.operands = l[30] +k.sub = 21 +k.name = "VPMULLW_XXX" +end +do local k = l[1650] +k.orgnames = l[4] +k.opclass = l[503] +k.operands = l[380] +k.sub = 21 +k.name = "VPMULLW_YYM" +end +do local k = l[1651] +k.orgnames = l[4] +k.opclass = l[505] +k.operands = l[387] +k.sub = 21 +k.name = "VPMULLW_YYY" +end +do local k = l[1652] +k.orgnames = l[4] +k.opclass = l[1233] +k.operands = l[16] +k.sub = 20 +k.name = "VPMULUDQ_XXM" +end +do local k = l[1653] +k.orgnames = l[4] +k.opclass = l[1235] +k.operands = l[30] +k.sub = 20 +k.name = "VPMULUDQ_XXX" +end +do local k = l[1654] +k.orgnames = l[4] +k.opclass = l[1237] +k.operands = l[380] +k.sub = 20 +k.name = "VPMULUDQ_YYM" +end +do local k = l[1655] +k.orgnames = l[4] +k.opclass = l[1239] +k.operands = l[387] +k.sub = 20 +k.name = "VPMULUDQ_YYY" +end +do local k = l[1656] +k.orgnames = l[4] +k.opclass = l[1233] +k.operands = l[16] +k.sub = 11 +k.name = "VPOR_XXM" +end +do local k = l[1657] +k.orgnames = l[4] +k.opclass = l[1235] +k.operands = l[30] +k.sub = 11 +k.name = "VPOR_XXX" +end +do local k = l[1658] +k.orgnames = l[4] +k.opclass = l[1237] +k.operands = l[380] +k.sub = 11 +k.name = "VPOR_YYM" +end +do local k = l[1659] +k.orgnames = l[4] +k.opclass = l[1239] +k.operands = l[387] +k.sub = 11 +k.name = "VPOR_YYY" +end +do local k = l[1660] +k.orgnames = l[4] +k.opclass = l[1233] +k.operands = l[16] +k.sub = 22 +k.name = "VPSADBW_XXM" +end +do local k = l[1661] +k.orgnames = l[4] +k.opclass = l[1235] +k.operands = l[30] +k.sub = 22 +k.name = "VPSADBW_XXX" +end +do local k = l[1662] +k.orgnames = l[4] +k.opclass = l[1237] +k.operands = l[380] +k.sub = 22 +k.name = "VPSADBW_YYM" +end +do local k = l[1663] +k.orgnames = l[4] +k.opclass = l[1239] +k.operands = l[387] +k.sub = 22 +k.name = "VPSADBW_YYY" +end +do local k = l[1664] +k.orgnames = l[4] +k.opclass = l[1197] +k.operands = l[16] +k.sub = 0 +k.name = "VPSHUFB_XXM" +end +do local k = l[1665] +k.orgnames = l[4] +k.opclass = l[1199] +k.operands = l[30] +k.sub = 0 +k.name = "VPSHUFB_XXX" +end +do local k = l[1666] +k.orgnames = l[4] +k.opclass = l[1201] +k.operands = l[380] +k.sub = 0 +k.name = "VPSHUFB_YYM" +end +do local k = l[1667] +k.orgnames = l[4] +k.opclass = l[1203] +k.operands = l[387] +k.sub = 0 +k.name = "VPSHUFB_YYY" +end +do local k = l[1668] +k.orgnames = l[62] +k.opclass = l[1669] +k.operands = l[70] +k.sub = 16 +k.name = "VPSHUFD_XMI" +end +do local k = l[1669] +k.isa = l[475] +k.code = l[64] +k.id = 64 +k.layout = l[65] +k.impregs = l[12] +k.flags = l[13] +k.parm = 96 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f-R2M1|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR60|{rmem}" +k.prefixclass = l[700] +end +do local k = l[1670] +k.orgnames = l[62] +k.opclass = l[1671] +k.operands = l[82] +k.sub = 16 +k.name = "VPSHUFD_XXI" +end +do local k = l[1671] +k.isa = l[475] +k.code = l[76] +k.id = 208 +k.layout = l[77] +k.impregs = l[12] +k.flags = l[27] +k.parm = 96 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f-R2B1|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR60|{}" +k.prefixclass = l[710] +end +do local k = l[1672] +k.orgnames = l[62] +k.opclass = l[1673] +k.operands = l[366] +k.sub = 16 +k.name = "VPSHUFD_YMI" +end +do local k = l[1673] +k.isa = l[475] +k.code = l[64] +k.id = 63 +k.layout = l[65] +k.impregs = l[12] +k.flags = l[13] +k.parm = 96 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f-128.R2M1|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR60|{rmem}" +k.prefixclass = l[773] +end +do local k = l[1674] +k.orgnames = l[62] +k.opclass = l[1675] +k.operands = l[374] +k.sub = 16 +k.name = "VPSHUFD_YYI" +end +do local k = l[1675] +k.isa = l[475] +k.code = l[76] +k.id = 207 +k.layout = l[77] +k.impregs = l[12] +k.flags = l[27] +k.parm = 96 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f-128.R2B1|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR60|{}" +k.prefixclass = l[778] +end +do local k = l[1676] +k.orgnames = l[62] +k.opclass = l[1677] +k.operands = l[70] +k.sub = 16 +k.name = "VPSHUFHW_XMI" +end +do local k = l[1677] +k.isa = l[475] +k.code = l[64] +k.id = 72 +k.layout = l[65] +k.impregs = l[12] +k.flags = l[13] +k.parm = 96 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|vex-f3-0f-R2M1|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR60|{rmem}" +k.prefixclass = l[725] +end +do local k = l[1678] +k.orgnames = l[62] +k.opclass = l[1679] +k.operands = l[82] +k.sub = 16 +k.name = "VPSHUFHW_XXI" +end +do local k = l[1679] +k.isa = l[475] +k.code = l[76] +k.id = 217 +k.layout = l[77] +k.impregs = l[12] +k.flags = l[27] +k.parm = 96 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|vex-f3-0f-R2B1|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR60|{}" +k.prefixclass = l[728] +end +do local k = l[1680] +k.orgnames = l[62] +k.opclass = l[1681] +k.operands = l[366] +k.sub = 16 +k.name = "VPSHUFHW_YMI" +end +do local k = l[1681] +k.isa = l[475] +k.code = l[64] +k.id = 71 +k.layout = l[65] +k.impregs = l[12] +k.flags = l[13] +k.parm = 96 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|vex-f3-0f-128.R2M1|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR60|{rmem}" +k.prefixclass = l[731] +end +do local k = l[1682] +k.orgnames = l[62] +k.opclass = l[1683] +k.operands = l[374] +k.sub = 16 +k.name = "VPSHUFHW_YYI" +end +do local k = l[1683] +k.isa = l[475] +k.code = l[76] +k.id = 216 +k.layout = l[77] +k.impregs = l[12] +k.flags = l[27] +k.parm = 96 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|vex-f3-0f-128.R2B1|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR60|{}" +k.prefixclass = l[734] +end +do local k = l[1684] +k.orgnames = l[62] +k.opclass = l[1685] +k.operands = l[70] +k.sub = 16 +k.name = "VPSHUFLW_XMI" +end +do local k = l[1685] +k.isa = l[475] +k.code = l[64] +k.id = 70 +k.layout = l[65] +k.impregs = l[12] +k.flags = l[13] +k.parm = 96 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|vex-f2-0f-R2M1|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR60|{rmem}" +k.prefixclass = l[753] +end +do local k = l[1686] +k.orgnames = l[62] +k.opclass = l[1687] +k.operands = l[82] +k.sub = 16 +k.name = "VPSHUFLW_XXI" +end +do local k = l[1687] +k.isa = l[475] +k.code = l[76] +k.id = 215 +k.layout = l[77] +k.impregs = l[12] +k.flags = l[27] +k.parm = 96 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|vex-f2-0f-R2B1|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR60|{}" +k.prefixclass = l[762] +end +do local k = l[1688] +k.orgnames = l[62] +k.opclass = l[1689] +k.operands = l[366] +k.sub = 16 +k.name = "VPSHUFLW_YMI" +end +do local k = l[1689] +k.isa = l[475] +k.code = l[64] +k.id = 69 +k.layout = l[65] +k.impregs = l[12] +k.flags = l[13] +k.parm = 96 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|vex-f2-0f-128.R2M1|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR60|{rmem}" +k.prefixclass = l[756] +end +do local k = l[1690] +k.orgnames = l[62] +k.opclass = l[1691] +k.operands = l[374] +k.sub = 16 +k.name = "VPSHUFLW_YYI" +end +do local k = l[1691] +k.isa = l[475] +k.code = l[76] +k.id = 214 +k.layout = l[77] +k.impregs = l[12] +k.flags = l[27] +k.parm = 96 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|vex-f2-0f-128.R2B1|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR60|{}" +k.prefixclass = l[765] +end +do local k = l[1692] +k.orgnames = l[4] +k.opclass = l[1197] +k.operands = l[16] +k.sub = 8 +k.name = "VPSIGNB_XXM" +end +do local k = l[1693] +k.orgnames = l[4] +k.opclass = l[1199] +k.operands = l[30] +k.sub = 8 +k.name = "VPSIGNB_XXX" +end +do local k = l[1694] +k.orgnames = l[4] +k.opclass = l[1201] +k.operands = l[380] +k.sub = 8 +k.name = "VPSIGNB_YYM" +end +do local k = l[1695] +k.orgnames = l[4] +k.opclass = l[1203] +k.operands = l[387] +k.sub = 8 +k.name = "VPSIGNB_YYY" +end +do local k = l[1696] +k.orgnames = l[4] +k.opclass = l[1197] +k.operands = l[16] +k.sub = 10 +k.name = "VPSIGND_XXM" +end +do local k = l[1697] +k.orgnames = l[4] +k.opclass = l[1199] +k.operands = l[30] +k.sub = 10 +k.name = "VPSIGND_XXX" +end +do local k = l[1698] +k.orgnames = l[4] +k.opclass = l[1201] +k.operands = l[380] +k.sub = 10 +k.name = "VPSIGND_YYM" +end +do local k = l[1699] +k.orgnames = l[4] +k.opclass = l[1203] +k.operands = l[387] +k.sub = 10 +k.name = "VPSIGND_YYY" +end +do local k = l[1700] +k.orgnames = l[4] +k.opclass = l[1197] +k.operands = l[16] +k.sub = 9 +k.name = "VPSIGNW_XXM" +end +do local k = l[1701] +k.orgnames = l[4] +k.opclass = l[1199] +k.operands = l[30] +k.sub = 9 +k.name = "VPSIGNW_XXX" +end +do local k = l[1702] +k.orgnames = l[4] +k.opclass = l[1201] +k.operands = l[380] +k.sub = 9 +k.name = "VPSIGNW_YYM" +end +do local k = l[1703] +k.orgnames = l[4] +k.opclass = l[1203] +k.operands = l[387] +k.sub = 9 +k.name = "VPSIGNW_YYY" +end +do local k = l[1704] +k.orgnames = l[1705] +k.opclass = l[1706] +k.operands = l[925] +k.name = "VPSLLDQ_XXI" +k.sub = 7 +end +do local k = l[1705] +k[1] = "dst" +k[2] = "src1" +k[3] = "imm" +k.id = 40 +k.sig = "{dst, src1, imm}" +end +do local k = l[1706] +k.isa = l[475] +k.code = l[1707] +k.id = 204 +k.layout = l[187] +k.impregs = l[12] +k.flags = l[27] +k.parm = 115 +k.sig = "{avx}|{{RegId, def, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f-B1S2|{$parm, !RRMR($sub,$p1), !I8($p3)}|PAR73|{}" +k.prefixclass = l[1708] +end +do local k = l[1707] +k[1] = "$parm" +k[2] = "!RRMR($sub,$p1)" +k[3] = "!I8($p3)" +k.id = 68 +k.sig = "{$parm, !RRMR($sub,$p1), !I8($p3)}" +end +do local k = l[1708] +k.extopcode = "0f" +k.rex = l[1709] +k.id = 139 +k.pref = "66" +k.sig = "vex-66-0f-B1S2" +end +do local k = l[1709] +k.r64 = "0" +k.rm = "p1" +k.reg = "0" +k.sig = "{r64 = 0,rm = p1,src1 = p2,reg = 0,mode = rr,vex = true,l = 0}" +k.src1 = "p2" +k.id = 5 +k.l = "0" +k.vex = true +k.mode = "rr" +end +do local k = l[1710] +k.orgnames = l[1705] +k.opclass = l[1711] +k.operands = l[1714] +k.name = "VPSLLDQ_YYI" +k.sub = 7 +end +do local k = l[1711] +k.isa = l[475] +k.code = l[1707] +k.id = 201 +k.layout = l[187] +k.impregs = l[12] +k.flags = l[27] +k.parm = 115 +k.sig = "{avx}|{{RegId, def, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f-128.B1S2|{$parm, !RRMR($sub,$p1), !I8($p3)}|PAR73|{}" +k.prefixclass = l[1712] +end +do local k = l[1712] +k.extopcode = "0f" +k.rex = l[1713] +k.id = 149 +k.pref = "66" +k.sig = "vex-66-0f-128.B1S2" +end +do local k = l[1713] +k.r64 = "0" +k.rm = "p1" +k.reg = "0" +k.sig = "{r64 = 0,rm = p1,src1 = p2,reg = 0,mode = rr,vex = true,l = 1}" +k.src1 = "p2" +k.id = 35 +k.l = "1" +k.vex = true +k.mode = "rr" +end +do local k = l[1714] +k[1] = l[1715] +k[2] = l[1716] +k[3] = l[1717] +k.id = 303 +k.sig = "{{mode = o,type = VR256,name = p1}, {mode = i,type = VR256,name = p2}, {mode = i,type = i8,name = p3}}" +end +do local k = l[1715] +k.mode = "o" +k.type = "VR256" +k.name = "p1" +end +do local k = l[1716] +k.mode = "i" +k.type = "VR256" +k.name = "p2" +end +do local k = l[1717] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[1718] +k.orgnames = l[1705] +k.opclass = l[1719] +k.operands = l[925] +k.name = "VPSLLD_XXI" +k.sub = 6 +end +do local k = l[1719] +k.isa = l[475] +k.code = l[1707] +k.id = 203 +k.layout = l[187] +k.impregs = l[12] +k.flags = l[27] +k.parm = 114 +k.sig = "{avx}|{{RegId, def, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f-B1S2|{$parm, !RRMR($sub,$p1), !I8($p3)}|PAR72|{}" +k.prefixclass = l[1708] +end +do local k = l[1720] +k.orgnames = l[4] +k.opclass = l[1233] +k.operands = l[16] +k.sub = 18 +k.name = "VPSLLD_XXM" +end +do local k = l[1721] +k.orgnames = l[4] +k.opclass = l[1235] +k.operands = l[30] +k.sub = 18 +k.name = "VPSLLD_XXX" +end +do local k = l[1722] +k.orgnames = l[1705] +k.opclass = l[1723] +k.operands = l[1714] +k.name = "VPSLLD_YYI" +k.sub = 6 +end +do local k = l[1723] +k.isa = l[475] +k.code = l[1707] +k.id = 200 +k.layout = l[187] +k.impregs = l[12] +k.flags = l[27] +k.parm = 114 +k.sig = "{avx}|{{RegId, def, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f-128.B1S2|{$parm, !RRMR($sub,$p1), !I8($p3)}|PAR72|{}" +k.prefixclass = l[1712] +end +do local k = l[1724] +k.orgnames = l[4] +k.opclass = l[1237] +k.operands = l[380] +k.sub = 18 +k.name = "VPSLLD_YYM" +end +do local k = l[1725] +k.orgnames = l[4] +k.opclass = l[1239] +k.operands = l[387] +k.sub = 18 +k.name = "VPSLLD_YYY" +end +do local k = l[1726] +k.orgnames = l[1705] +k.opclass = l[1706] +k.operands = l[925] +k.name = "VPSLLQ_XXI" +k.sub = 6 +end +do local k = l[1727] +k.orgnames = l[4] +k.opclass = l[1233] +k.operands = l[16] +k.sub = 19 +k.name = "VPSLLQ_XXM" +end +do local k = l[1728] +k.orgnames = l[4] +k.opclass = l[1235] +k.operands = l[30] +k.sub = 19 +k.name = "VPSLLQ_XXX" +end +do local k = l[1729] +k.orgnames = l[1705] +k.opclass = l[1711] +k.operands = l[1714] +k.name = "VPSLLQ_YYI" +k.sub = 6 +end +do local k = l[1730] +k.orgnames = l[4] +k.opclass = l[1237] +k.operands = l[380] +k.sub = 19 +k.name = "VPSLLQ_YYM" +end +do local k = l[1731] +k.orgnames = l[4] +k.opclass = l[1239] +k.operands = l[387] +k.sub = 19 +k.name = "VPSLLQ_YYY" +end +do local k = l[1732] +k.orgnames = l[1705] +k.opclass = l[1733] +k.operands = l[925] +k.name = "VPSLLW_XXI" +k.sub = 6 +end +do local k = l[1733] +k.isa = l[475] +k.code = l[1707] +k.id = 202 +k.layout = l[187] +k.impregs = l[12] +k.flags = l[27] +k.parm = 113 +k.sig = "{avx}|{{RegId, def, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f-B1S2|{$parm, !RRMR($sub,$p1), !I8($p3)}|PAR71|{}" +k.prefixclass = l[1708] +end +do local k = l[1734] +k.orgnames = l[4] +k.opclass = l[1233] +k.operands = l[16] +k.sub = 17 +k.name = "VPSLLW_XXM" +end +do local k = l[1735] +k.orgnames = l[4] +k.opclass = l[1235] +k.operands = l[30] +k.sub = 17 +k.name = "VPSLLW_XXX" +end +do local k = l[1736] +k.orgnames = l[1705] +k.opclass = l[1737] +k.operands = l[1714] +k.name = "VPSLLW_YYI" +k.sub = 6 +end +do local k = l[1737] +k.isa = l[475] +k.code = l[1707] +k.id = 199 +k.layout = l[187] +k.impregs = l[12] +k.flags = l[27] +k.parm = 113 +k.sig = "{avx}|{{RegId, def, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f-128.B1S2|{$parm, !RRMR($sub,$p1), !I8($p3)}|PAR71|{}" +k.prefixclass = l[1712] +end +do local k = l[1738] +k.orgnames = l[4] +k.opclass = l[1237] +k.operands = l[380] +k.sub = 17 +k.name = "VPSLLW_YYM" +end +do local k = l[1739] +k.orgnames = l[4] +k.opclass = l[1239] +k.operands = l[387] +k.sub = 17 +k.name = "VPSLLW_YYY" +end +do local k = l[1740] +k.orgnames = l[1705] +k.opclass = l[1719] +k.operands = l[925] +k.name = "VPSRAD_XXI" +k.sub = 4 +end +do local k = l[1741] +k.orgnames = l[4] +k.opclass = l[1233] +k.operands = l[16] +k.sub = 2 +k.name = "VPSRAD_XXM" +end +do local k = l[1742] +k.orgnames = l[4] +k.opclass = l[1235] +k.operands = l[30] +k.sub = 2 +k.name = "VPSRAD_XXX" +end +do local k = l[1743] +k.orgnames = l[1705] +k.opclass = l[1723] +k.operands = l[1714] +k.name = "VPSRAD_YYI" +k.sub = 4 +end +do local k = l[1744] +k.orgnames = l[4] +k.opclass = l[1237] +k.operands = l[380] +k.sub = 2 +k.name = "VPSRAD_YYM" +end +do local k = l[1745] +k.orgnames = l[4] +k.opclass = l[1239] +k.operands = l[387] +k.sub = 2 +k.name = "VPSRAD_YYY" +end +do local k = l[1746] +k.orgnames = l[1705] +k.opclass = l[1733] +k.operands = l[925] +k.name = "VPSRAW_XXI" +k.sub = 4 +end +do local k = l[1747] +k.orgnames = l[4] +k.opclass = l[1233] +k.operands = l[16] +k.sub = 1 +k.name = "VPSRAW_XXM" +end +do local k = l[1748] +k.orgnames = l[4] +k.opclass = l[1235] +k.operands = l[30] +k.sub = 1 +k.name = "VPSRAW_XXX" +end +do local k = l[1749] +k.orgnames = l[1705] +k.opclass = l[1737] +k.operands = l[1714] +k.name = "VPSRAW_YYI" +k.sub = 4 +end +do local k = l[1750] +k.orgnames = l[4] +k.opclass = l[1237] +k.operands = l[380] +k.sub = 1 +k.name = "VPSRAW_YYM" +end +do local k = l[1751] +k.orgnames = l[4] +k.opclass = l[1239] +k.operands = l[387] +k.sub = 1 +k.name = "VPSRAW_YYY" +end +do local k = l[1752] +k.orgnames = l[1705] +k.opclass = l[1706] +k.operands = l[925] +k.name = "VPSRLDQ_XXI" +k.sub = 3 +end +do local k = l[1753] +k.orgnames = l[1705] +k.opclass = l[1711] +k.operands = l[1714] +k.name = "VPSRLDQ_YYI" +k.sub = 3 +end +do local k = l[1754] +k.orgnames = l[1705] +k.opclass = l[1719] +k.operands = l[925] +k.name = "VPSRLD_XXI" +k.sub = 2 +end +do local k = l[1755] +k.orgnames = l[4] +k.opclass = l[499] +k.operands = l[16] +k.sub = 18 +k.name = "VPSRLD_XXM" +end +do local k = l[1756] +k.orgnames = l[4] +k.opclass = l[501] +k.operands = l[30] +k.sub = 18 +k.name = "VPSRLD_XXX" +end +do local k = l[1757] +k.orgnames = l[1705] +k.opclass = l[1723] +k.operands = l[1714] +k.name = "VPSRLD_YYI" +k.sub = 2 +end +do local k = l[1758] +k.orgnames = l[4] +k.opclass = l[503] +k.operands = l[380] +k.sub = 18 +k.name = "VPSRLD_YYM" +end +do local k = l[1759] +k.orgnames = l[4] +k.opclass = l[505] +k.operands = l[387] +k.sub = 18 +k.name = "VPSRLD_YYY" +end +do local k = l[1760] +k.orgnames = l[1705] +k.opclass = l[1706] +k.operands = l[925] +k.name = "VPSRLQ_XXI" +k.sub = 2 +end +do local k = l[1761] +k.orgnames = l[4] +k.opclass = l[499] +k.operands = l[16] +k.sub = 19 +k.name = "VPSRLQ_XXM" +end +do local k = l[1762] +k.orgnames = l[4] +k.opclass = l[501] +k.operands = l[30] +k.sub = 19 +k.name = "VPSRLQ_XXX" +end +do local k = l[1763] +k.orgnames = l[1705] +k.opclass = l[1711] +k.operands = l[1714] +k.name = "VPSRLQ_YYI" +k.sub = 2 +end +do local k = l[1764] +k.orgnames = l[4] +k.opclass = l[503] +k.operands = l[380] +k.sub = 19 +k.name = "VPSRLQ_YYM" +end +do local k = l[1765] +k.orgnames = l[4] +k.opclass = l[505] +k.operands = l[387] +k.sub = 19 +k.name = "VPSRLQ_YYY" +end +do local k = l[1766] +k.orgnames = l[1705] +k.opclass = l[1733] +k.operands = l[925] +k.name = "VPSRLW_XXI" +k.sub = 2 +end +do local k = l[1767] +k.orgnames = l[4] +k.opclass = l[499] +k.operands = l[16] +k.sub = 17 +k.name = "VPSRLW_XXM" +end +do local k = l[1768] +k.orgnames = l[4] +k.opclass = l[501] +k.operands = l[30] +k.sub = 17 +k.name = "VPSRLW_XXX" +end +do local k = l[1769] +k.orgnames = l[1705] +k.opclass = l[1737] +k.operands = l[1714] +k.name = "VPSRLW_YYI" +k.sub = 2 +end +do local k = l[1770] +k.orgnames = l[4] +k.opclass = l[503] +k.operands = l[380] +k.sub = 17 +k.name = "VPSRLW_YYM" +end +do local k = l[1771] +k.orgnames = l[4] +k.opclass = l[505] +k.operands = l[387] +k.sub = 17 +k.name = "VPSRLW_YYY" +end +do local k = l[1772] +k.orgnames = l[4] +k.opclass = l[1233] +k.operands = l[16] +k.sub = 24 +k.name = "VPSUBB_XXM" +end +do local k = l[1773] +k.orgnames = l[4] +k.opclass = l[1235] +k.operands = l[30] +k.sub = 24 +k.name = "VPSUBB_XXX" +end +do local k = l[1774] +k.orgnames = l[4] +k.opclass = l[1237] +k.operands = l[380] +k.sub = 24 +k.name = "VPSUBB_YYM" +end +do local k = l[1775] +k.orgnames = l[4] +k.opclass = l[1239] +k.operands = l[387] +k.sub = 24 +k.name = "VPSUBB_YYY" +end +do local k = l[1776] +k.orgnames = l[4] +k.opclass = l[1233] +k.operands = l[16] +k.sub = 26 +k.name = "VPSUBD_XXM" +end +do local k = l[1777] +k.orgnames = l[4] +k.opclass = l[1235] +k.operands = l[30] +k.sub = 26 +k.name = "VPSUBD_XXX" +end +do local k = l[1778] +k.orgnames = l[4] +k.opclass = l[1237] +k.operands = l[380] +k.sub = 26 +k.name = "VPSUBD_YYM" +end +do local k = l[1779] +k.orgnames = l[4] +k.opclass = l[1239] +k.operands = l[387] +k.sub = 26 +k.name = "VPSUBD_YYY" +end +do local k = l[1780] +k.orgnames = l[4] +k.opclass = l[1233] +k.operands = l[16] +k.sub = 27 +k.name = "VPSUBQ_XXM" +end +do local k = l[1781] +k.orgnames = l[4] +k.opclass = l[1235] +k.operands = l[30] +k.sub = 27 +k.name = "VPSUBQ_XXX" +end +do local k = l[1782] +k.orgnames = l[4] +k.opclass = l[1237] +k.operands = l[380] +k.sub = 27 +k.name = "VPSUBQ_YYM" +end +do local k = l[1783] +k.orgnames = l[4] +k.opclass = l[1239] +k.operands = l[387] +k.sub = 27 +k.name = "VPSUBQ_YYY" +end +do local k = l[1784] +k.orgnames = l[4] +k.opclass = l[1233] +k.operands = l[16] +k.sub = 8 +k.name = "VPSUBSB_XXM" +end +do local k = l[1785] +k.orgnames = l[4] +k.opclass = l[1235] +k.operands = l[30] +k.sub = 8 +k.name = "VPSUBSB_XXX" +end +do local k = l[1786] +k.orgnames = l[4] +k.opclass = l[1237] +k.operands = l[380] +k.sub = 8 +k.name = "VPSUBSB_YYM" +end +do local k = l[1787] +k.orgnames = l[4] +k.opclass = l[1239] +k.operands = l[387] +k.sub = 8 +k.name = "VPSUBSB_YYY" +end +do local k = l[1788] +k.orgnames = l[4] +k.opclass = l[1233] +k.operands = l[16] +k.sub = 9 +k.name = "VPSUBSW_XXM" +end +do local k = l[1789] +k.orgnames = l[4] +k.opclass = l[1235] +k.operands = l[30] +k.sub = 9 +k.name = "VPSUBSW_XXX" +end +do local k = l[1790] +k.orgnames = l[4] +k.opclass = l[1237] +k.operands = l[380] +k.sub = 9 +k.name = "VPSUBSW_YYM" +end +do local k = l[1791] +k.orgnames = l[4] +k.opclass = l[1239] +k.operands = l[387] +k.sub = 9 +k.name = "VPSUBSW_YYY" +end +do local k = l[1792] +k.orgnames = l[4] +k.opclass = l[499] +k.operands = l[16] +k.sub = 24 +k.name = "VPSUBUSB_XXM" +end +do local k = l[1793] +k.orgnames = l[4] +k.opclass = l[501] +k.operands = l[30] +k.sub = 24 +k.name = "VPSUBUSB_XXX" +end +do local k = l[1794] +k.orgnames = l[4] +k.opclass = l[503] +k.operands = l[380] +k.sub = 24 +k.name = "VPSUBUSB_YYM" +end +do local k = l[1795] +k.orgnames = l[4] +k.opclass = l[505] +k.operands = l[387] +k.sub = 24 +k.name = "VPSUBUSB_YYY" +end +do local k = l[1796] +k.orgnames = l[4] +k.opclass = l[499] +k.operands = l[16] +k.sub = 25 +k.name = "VPSUBUSW_XXM" +end +do local k = l[1797] +k.orgnames = l[4] +k.opclass = l[501] +k.operands = l[30] +k.sub = 25 +k.name = "VPSUBUSW_XXX" +end +do local k = l[1798] +k.orgnames = l[4] +k.opclass = l[503] +k.operands = l[380] +k.sub = 25 +k.name = "VPSUBUSW_YYM" +end +do local k = l[1799] +k.orgnames = l[4] +k.opclass = l[505] +k.operands = l[387] +k.sub = 25 +k.name = "VPSUBUSW_YYY" +end +do local k = l[1800] +k.orgnames = l[4] +k.opclass = l[1233] +k.operands = l[16] +k.sub = 25 +k.name = "VPSUBW_XXM" +end +do local k = l[1801] +k.orgnames = l[4] +k.opclass = l[1235] +k.operands = l[30] +k.sub = 25 +k.name = "VPSUBW_XXX" +end +do local k = l[1802] +k.orgnames = l[4] +k.opclass = l[1237] +k.operands = l[380] +k.sub = 25 +k.name = "VPSUBW_YYM" +end +do local k = l[1803] +k.orgnames = l[4] +k.opclass = l[1239] +k.operands = l[387] +k.sub = 25 +k.name = "VPSUBW_YYY" +end +do local k = l[1804] +k.orgnames = l[41] +k.opclass = l[1805] +k.operands = l[1011] +k.sub = 23 +k.name = "VPTEST_XM" +end +do local k = l[1805] +k.isa = l[475] +k.code = l[7] +k.id = 166 +k.layout = l[694] +k.impregs = l[697] +k.flags = l[699] +k.parm = 0 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|vex-66-0f38-R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR 0|{rmem, wflags}" +k.prefixclass = l[311] +end +do local k = l[1806] +k.orgnames = l[41] +k.opclass = l[1807] +k.operands = l[711] +k.sub = 23 +k.name = "VPTEST_XX" +end +do local k = l[1807] +k.isa = l[475] +k.code = l[22] +k.id = 312 +k.layout = l[706] +k.impregs = l[697] +k.flags = l[709] +k.parm = 0 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|vex-66-0f38-R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR 0|{wflags}" +k.prefixclass = l[170] +end +do local k = l[1808] +k.orgnames = l[41] +k.opclass = l[1809] +k.operands = l[1019] +k.sub = 23 +k.name = "VPTEST_YM" +end +do local k = l[1809] +k.isa = l[475] +k.code = l[7] +k.id = 165 +k.layout = l[694] +k.impregs = l[697] +k.flags = l[699] +k.parm = 0 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|vex-66-0f38-128.R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR 0|{rmem, wflags}" +k.prefixclass = l[156] +end +do local k = l[1810] +k.orgnames = l[41] +k.opclass = l[1811] +k.operands = l[1024] +k.sub = 23 +k.name = "VPTEST_YY" +end +do local k = l[1811] +k.isa = l[475] +k.code = l[22] +k.id = 311 +k.layout = l[706] +k.impregs = l[697] +k.flags = l[709] +k.parm = 0 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|vex-66-0f38-128.R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR 0|{wflags}" +k.prefixclass = l[163] +end +do local k = l[1812] +k.orgnames = l[4] +k.opclass = l[930] +k.operands = l[16] +k.sub = 8 +k.name = "VPUNPCKHBW_XXM" +end +do local k = l[1813] +k.orgnames = l[4] +k.opclass = l[932] +k.operands = l[30] +k.sub = 8 +k.name = "VPUNPCKHBW_XXX" +end +do local k = l[1814] +k.orgnames = l[4] +k.opclass = l[934] +k.operands = l[380] +k.sub = 8 +k.name = "VPUNPCKHBW_YYM" +end +do local k = l[1815] +k.orgnames = l[4] +k.opclass = l[936] +k.operands = l[387] +k.sub = 8 +k.name = "VPUNPCKHBW_YYY" +end +do local k = l[1816] +k.orgnames = l[4] +k.opclass = l[930] +k.operands = l[16] +k.sub = 10 +k.name = "VPUNPCKHDQ_XXM" +end +do local k = l[1817] +k.orgnames = l[4] +k.opclass = l[932] +k.operands = l[30] +k.sub = 10 +k.name = "VPUNPCKHDQ_XXX" +end +do local k = l[1818] +k.orgnames = l[4] +k.opclass = l[934] +k.operands = l[380] +k.sub = 10 +k.name = "VPUNPCKHDQ_YYM" +end +do local k = l[1819] +k.orgnames = l[4] +k.opclass = l[936] +k.operands = l[387] +k.sub = 10 +k.name = "VPUNPCKHDQ_YYY" +end +do local k = l[1820] +k.orgnames = l[4] +k.opclass = l[930] +k.operands = l[16] +k.sub = 13 +k.name = "VPUNPCKHQDQ_XXM" +end +do local k = l[1821] +k.orgnames = l[4] +k.opclass = l[932] +k.operands = l[30] +k.sub = 13 +k.name = "VPUNPCKHQDQ_XXX" +end +do local k = l[1822] +k.orgnames = l[4] +k.opclass = l[934] +k.operands = l[380] +k.sub = 13 +k.name = "VPUNPCKHQDQ_YYM" +end +do local k = l[1823] +k.orgnames = l[4] +k.opclass = l[936] +k.operands = l[387] +k.sub = 13 +k.name = "VPUNPCKHQDQ_YYY" +end +do local k = l[1824] +k.orgnames = l[4] +k.opclass = l[930] +k.operands = l[16] +k.sub = 9 +k.name = "VPUNPCKHWD_XXM" +end +do local k = l[1825] +k.orgnames = l[4] +k.opclass = l[932] +k.operands = l[30] +k.sub = 9 +k.name = "VPUNPCKHWD_XXX" +end +do local k = l[1826] +k.orgnames = l[4] +k.opclass = l[934] +k.operands = l[380] +k.sub = 9 +k.name = "VPUNPCKHWD_YYM" +end +do local k = l[1827] +k.orgnames = l[4] +k.opclass = l[936] +k.operands = l[387] +k.sub = 9 +k.name = "VPUNPCKHWD_YYY" +end +do local k = l[1828] +k.orgnames = l[4] +k.opclass = l[930] +k.operands = l[16] +k.sub = 0 +k.name = "VPUNPCKLBW_XXM" +end +do local k = l[1829] +k.orgnames = l[4] +k.opclass = l[932] +k.operands = l[30] +k.sub = 0 +k.name = "VPUNPCKLBW_XXX" +end +do local k = l[1830] +k.orgnames = l[4] +k.opclass = l[934] +k.operands = l[380] +k.sub = 0 +k.name = "VPUNPCKLBW_YYM" +end +do local k = l[1831] +k.orgnames = l[4] +k.opclass = l[936] +k.operands = l[387] +k.sub = 0 +k.name = "VPUNPCKLBW_YYY" +end +do local k = l[1832] +k.orgnames = l[4] +k.opclass = l[930] +k.operands = l[16] +k.sub = 2 +k.name = "VPUNPCKLDQ_XXM" +end +do local k = l[1833] +k.orgnames = l[4] +k.opclass = l[932] +k.operands = l[30] +k.sub = 2 +k.name = "VPUNPCKLDQ_XXX" +end +do local k = l[1834] +k.orgnames = l[4] +k.opclass = l[934] +k.operands = l[380] +k.sub = 2 +k.name = "VPUNPCKLDQ_YYM" +end +do local k = l[1835] +k.orgnames = l[4] +k.opclass = l[936] +k.operands = l[387] +k.sub = 2 +k.name = "VPUNPCKLDQ_YYY" +end +do local k = l[1836] +k.orgnames = l[4] +k.opclass = l[930] +k.operands = l[16] +k.sub = 12 +k.name = "VPUNPCKLQDQ_XXM" +end +do local k = l[1837] +k.orgnames = l[4] +k.opclass = l[932] +k.operands = l[30] +k.sub = 12 +k.name = "VPUNPCKLQDQ_XXX" +end +do local k = l[1838] +k.orgnames = l[4] +k.opclass = l[934] +k.operands = l[380] +k.sub = 12 +k.name = "VPUNPCKLQDQ_YYM" +end +do local k = l[1839] +k.orgnames = l[4] +k.opclass = l[936] +k.operands = l[387] +k.sub = 12 +k.name = "VPUNPCKLQDQ_YYY" +end +do local k = l[1840] +k.orgnames = l[4] +k.opclass = l[930] +k.operands = l[16] +k.sub = 1 +k.name = "VPUNPCKLWD_XXM" +end +do local k = l[1841] +k.orgnames = l[4] +k.opclass = l[932] +k.operands = l[30] +k.sub = 1 +k.name = "VPUNPCKLWD_XXX" +end +do local k = l[1842] +k.orgnames = l[4] +k.opclass = l[934] +k.operands = l[380] +k.sub = 1 +k.name = "VPUNPCKLWD_YYM" +end +do local k = l[1843] +k.orgnames = l[4] +k.opclass = l[936] +k.operands = l[387] +k.sub = 1 +k.name = "VPUNPCKLWD_YYY" +end +do local k = l[1844] +k.orgnames = l[4] +k.opclass = l[1233] +k.operands = l[16] +k.sub = 15 +k.name = "VPXOR_XXM" +end +do local k = l[1845] +k.orgnames = l[4] +k.opclass = l[1235] +k.operands = l[30] +k.sub = 15 +k.name = "VPXOR_XXX" +end +do local k = l[1846] +k.orgnames = l[4] +k.opclass = l[1237] +k.operands = l[380] +k.sub = 15 +k.name = "VPXOR_YYM" +end +do local k = l[1847] +k.orgnames = l[4] +k.opclass = l[1239] +k.operands = l[387] +k.sub = 15 +k.name = "VPXOR_YYY" +end +do local k = l[1848] +k.orgnames = l[4] +k.opclass = l[487] +k.operands = l[16] +k.sub = 19 +k.name = "VRCPPS_XXM" +end +do local k = l[1849] +k.orgnames = l[4] +k.opclass = l[490] +k.operands = l[30] +k.sub = 19 +k.name = "VRCPPS_XXX" +end +do local k = l[1850] +k.orgnames = l[4] +k.opclass = l[493] +k.operands = l[380] +k.sub = 19 +k.name = "VRCPPS_YYM" +end +do local k = l[1851] +k.orgnames = l[4] +k.opclass = l[496] +k.operands = l[387] +k.sub = 19 +k.name = "VRCPPS_YYY" +end +do local k = l[1852] +k.orgnames = l[4] +k.opclass = l[844] +k.operands = l[601] +k.sub = 19 +k.name = "VRCPSS_XXM32" +end +do local k = l[1853] +k.orgnames = l[4] +k.opclass = l[846] +k.operands = l[30] +k.sub = 19 +k.name = "VRCPSS_XXX" +end +do local k = l[1854] +k.orgnames = l[62] +k.opclass = l[1855] +k.operands = l[70] +k.sub = 9 +k.name = "VROUNDPD_XMI" +end +do local k = l[1855] +k.isa = l[475] +k.code = l[64] +k.id = 68 +k.layout = l[65] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f3a-R2M1|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR 0|{rmem}" +k.prefixclass = l[917] +end +do local k = l[1856] +k.orgnames = l[62] +k.opclass = l[1857] +k.operands = l[82] +k.sub = 9 +k.name = "VROUNDPD_XXI" +end +do local k = l[1857] +k.isa = l[475] +k.code = l[76] +k.id = 213 +k.layout = l[77] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f3a-R2B1|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR 0|{}" +k.prefixclass = l[924] +end +do local k = l[1858] +k.orgnames = l[62] +k.opclass = l[1859] +k.operands = l[366] +k.sub = 9 +k.name = "VROUNDPD_YMI" +end +do local k = l[1859] +k.isa = l[475] +k.code = l[64] +k.id = 67 +k.layout = l[65] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f3a-128.R2M1|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR 0|{rmem}" +k.prefixclass = l[180] +end +do local k = l[1860] +k.orgnames = l[62] +k.opclass = l[1861] +k.operands = l[374] +k.sub = 9 +k.name = "VROUNDPD_YYI" +end +do local k = l[1861] +k.isa = l[475] +k.code = l[76] +k.id = 212 +k.layout = l[77] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f3a-128.R2B1|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR 0|{}" +k.prefixclass = l[191] +end +do local k = l[1862] +k.orgnames = l[62] +k.opclass = l[1855] +k.operands = l[70] +k.sub = 8 +k.name = "VROUNDPS_XMI" +end +do local k = l[1863] +k.orgnames = l[62] +k.opclass = l[1857] +k.operands = l[82] +k.sub = 8 +k.name = "VROUNDPS_XXI" +end +do local k = l[1864] +k.orgnames = l[62] +k.opclass = l[1859] +k.operands = l[366] +k.sub = 8 +k.name = "VROUNDPS_YMI" +end +do local k = l[1865] +k.orgnames = l[62] +k.opclass = l[1861] +k.operands = l[374] +k.sub = 8 +k.name = "VROUNDPS_YYI" +end +do local k = l[1866] +k.orgnames = l[124] +k.opclass = l[531] +k.operands = l[1867] +k.sub = 11 +k.name = "VROUNDSD_XXM64I" +end +do local k = l[1867] +k[1] = l[1868] +k[2] = l[1869] +k[3] = l[1870] +k[4] = l[1871] +k.id = 267 +k.sig = "{{mode = o,type = VR128,name = p2}, {mode = i,type = VR128,name = p3}, {mode = i,type = i64*,name = p1}, {mode = i,type = i8,name = p4}}" +end +do local k = l[1868] +k.mode = "o" +k.type = "VR128" +k.name = "p2" +end +do local k = l[1869] +k.mode = "i" +k.type = "VR128" +k.name = "p3" +end +do local k = l[1870] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[1871] +k.mode = "i" +k.type = "i8" +k.name = "p4" +end +do local k = l[1872] +k.orgnames = l[124] +k.opclass = l[533] +k.operands = l[148] +k.sub = 11 +k.name = "VROUNDSD_XXXI" +end +do local k = l[1873] +k.orgnames = l[124] +k.opclass = l[531] +k.operands = l[957] +k.sub = 10 +k.name = "VROUNDSS_XXM32I" +end +do local k = l[1874] +k.orgnames = l[124] +k.opclass = l[533] +k.operands = l[148] +k.sub = 10 +k.name = "VROUNDSS_XXXI" +end +do local k = l[1875] +k.orgnames = l[4] +k.opclass = l[487] +k.operands = l[16] +k.sub = 18 +k.name = "VRSQRTPS_XXM" +end +do local k = l[1876] +k.orgnames = l[4] +k.opclass = l[490] +k.operands = l[30] +k.sub = 18 +k.name = "VRSQRTPS_XXX" +end +do local k = l[1877] +k.orgnames = l[4] +k.opclass = l[493] +k.operands = l[380] +k.sub = 18 +k.name = "VRSQRTPS_YYM" +end +do local k = l[1878] +k.orgnames = l[4] +k.opclass = l[496] +k.operands = l[387] +k.sub = 18 +k.name = "VRSQRTPS_YYY" +end +do local k = l[1879] +k.orgnames = l[4] +k.opclass = l[844] +k.operands = l[601] +k.sub = 18 +k.name = "VRSQRTSS_XXM32" +end +do local k = l[1880] +k.orgnames = l[4] +k.opclass = l[846] +k.operands = l[30] +k.sub = 18 +k.name = "VRSQRTSS_XXX" +end +do local k = l[1881] +k.orgnames = l[124] +k.opclass = l[1882] +k.operands = l[134] +k.name = "VSHUFPD_XXMI" +end +do local k = l[1882] +k.isa = l[475] +k.code = l[1883] +k.id = 81 +k.layout = l[128] +k.impregs = l[12] +k.flags = l[13] +k.parm = 198 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-66-0f-R2M1S3|{$parm, !RRMM($p2,$p1), !I8($p4)}|PARC6|{rmem}" +k.prefixclass = l[476] +end +do local k = l[1883] +k[1] = "$parm" +k[2] = "!RRMM($p2,$p1)" +k[3] = "!I8($p4)" +k.id = 59 +k.sig = "{$parm, !RRMM($p2,$p1), !I8($p4)}" +end +do local k = l[1884] +k.orgnames = l[124] +k.opclass = l[1885] +k.operands = l[148] +k.name = "VSHUFPD_XXXI" +end +do local k = l[1885] +k.isa = l[475] +k.code = l[1886] +k.id = 226 +k.layout = l[142] +k.impregs = l[12] +k.flags = l[27] +k.parm = 198 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-66-0f-R2B1S3|{$parm, !RRMR($p2,$p1), !I8($p4)}|PARC6|{}" +k.prefixclass = l[479] +end +do local k = l[1886] +k[1] = "$parm" +k[2] = "!RRMR($p2,$p1)" +k[3] = "!I8($p4)" +k.id = 56 +k.sig = "{$parm, !RRMR($p2,$p1), !I8($p4)}" +end +do local k = l[1887] +k.orgnames = l[124] +k.opclass = l[1888] +k.operands = l[259] +k.name = "VSHUFPD_YYMI" +end +do local k = l[1888] +k.isa = l[475] +k.code = l[1883] +k.id = 79 +k.layout = l[128] +k.impregs = l[12] +k.flags = l[13] +k.parm = 198 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-66-0f-128.R2M1S3|{$parm, !RRMM($p2,$p1), !I8($p4)}|PARC6|{rmem}" +k.prefixclass = l[482] +end +do local k = l[1889] +k.orgnames = l[124] +k.opclass = l[1890] +k.operands = l[268] +k.name = "VSHUFPD_YYYI" +end +do local k = l[1890] +k.isa = l[475] +k.code = l[1886] +k.id = 224 +k.layout = l[142] +k.impregs = l[12] +k.flags = l[27] +k.parm = 198 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-66-0f-128.R2B1S3|{$parm, !RRMR($p2,$p1), !I8($p4)}|PARC6|{}" +k.prefixclass = l[485] +end +do local k = l[1891] +k.orgnames = l[124] +k.opclass = l[1892] +k.operands = l[134] +k.name = "VSHUFPS_XXMI" +end +do local k = l[1892] +k.isa = l[475] +k.code = l[1883] +k.id = 74 +k.layout = l[128] +k.impregs = l[12] +k.flags = l[13] +k.parm = 198 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-0f-R2M1S3|{$parm, !RRMM($p2,$p1), !I8($p4)}|PARC6|{rmem}" +k.prefixclass = l[488] +end +do local k = l[1893] +k.orgnames = l[124] +k.opclass = l[1894] +k.operands = l[148] +k.name = "VSHUFPS_XXXI" +end +do local k = l[1894] +k.isa = l[475] +k.code = l[1886] +k.id = 219 +k.layout = l[142] +k.impregs = l[12] +k.flags = l[27] +k.parm = 198 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-0f-R2B1S3|{$parm, !RRMR($p2,$p1), !I8($p4)}|PARC6|{}" +k.prefixclass = l[491] +end +do local k = l[1895] +k.orgnames = l[124] +k.opclass = l[1896] +k.operands = l[259] +k.name = "VSHUFPS_YYMI" +end +do local k = l[1896] +k.isa = l[475] +k.code = l[1883] +k.id = 73 +k.layout = l[128] +k.impregs = l[12] +k.flags = l[13] +k.parm = 198 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-0f-128.R2M1S3|{$parm, !RRMM($p2,$p1), !I8($p4)}|PARC6|{rmem}" +k.prefixclass = l[494] +end +do local k = l[1897] +k.orgnames = l[124] +k.opclass = l[1898] +k.operands = l[268] +k.name = "VSHUFPS_YYYI" +end +do local k = l[1898] +k.isa = l[475] +k.code = l[1886] +k.id = 218 +k.layout = l[142] +k.impregs = l[12] +k.flags = l[27] +k.parm = 198 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-0f-128.R2B1S3|{$parm, !RRMR($p2,$p1), !I8($p4)}|PARC6|{}" +k.prefixclass = l[497] +end +do local k = l[1899] +k.orgnames = l[4] +k.opclass = l[474] +k.operands = l[16] +k.sub = 17 +k.name = "VSQRTPD_XM" +end +do local k = l[1900] +k.orgnames = l[4] +k.opclass = l[478] +k.operands = l[30] +k.sub = 17 +k.name = "VSQRTPD_XX" +end +do local k = l[1901] +k.orgnames = l[4] +k.opclass = l[481] +k.operands = l[380] +k.sub = 17 +k.name = "VSQRTPD_YM" +end +do local k = l[1902] +k.orgnames = l[4] +k.opclass = l[484] +k.operands = l[387] +k.sub = 17 +k.name = "VSQRTPD_YY" +end +do local k = l[1903] +k.orgnames = l[4] +k.opclass = l[487] +k.operands = l[16] +k.sub = 17 +k.name = "VSQRTPS_XM" +end +do local k = l[1904] +k.orgnames = l[4] +k.opclass = l[490] +k.operands = l[30] +k.sub = 17 +k.name = "VSQRTPS_XX" +end +do local k = l[1905] +k.orgnames = l[4] +k.opclass = l[493] +k.operands = l[380] +k.sub = 17 +k.name = "VSQRTPS_YM" +end +do local k = l[1906] +k.orgnames = l[4] +k.opclass = l[496] +k.operands = l[387] +k.sub = 17 +k.name = "VSQRTPS_YY" +end +do local k = l[1907] +k.orgnames = l[4] +k.opclass = l[474] +k.operands = l[16] +k.sub = 28 +k.name = "VSUBPD_XXM" +end +do local k = l[1908] +k.orgnames = l[4] +k.opclass = l[478] +k.operands = l[30] +k.sub = 28 +k.name = "VSUBPD_XXX" +end +do local k = l[1909] +k.orgnames = l[4] +k.opclass = l[481] +k.operands = l[380] +k.sub = 28 +k.name = "VSUBPD_YYM" +end +do local k = l[1910] +k.orgnames = l[4] +k.opclass = l[484] +k.operands = l[387] +k.sub = 28 +k.name = "VSUBPD_YYY" +end +do local k = l[1911] +k.orgnames = l[4] +k.opclass = l[487] +k.operands = l[16] +k.sub = 28 +k.name = "VSUBPS_XXM" +end +do local k = l[1912] +k.orgnames = l[4] +k.opclass = l[490] +k.operands = l[30] +k.sub = 28 +k.name = "VSUBPS_XXX" +end +do local k = l[1913] +k.orgnames = l[4] +k.opclass = l[493] +k.operands = l[380] +k.sub = 28 +k.name = "VSUBPS_YYM" +end +do local k = l[1914] +k.orgnames = l[4] +k.opclass = l[496] +k.operands = l[387] +k.sub = 28 +k.name = "VSUBPS_YYY" +end +do local k = l[1915] +k.orgnames = l[41] +k.opclass = l[1805] +k.operands = l[1011] +k.sub = 15 +k.name = "VTESTPD_XM" +end +do local k = l[1916] +k.orgnames = l[41] +k.opclass = l[1807] +k.operands = l[711] +k.sub = 15 +k.name = "VTESTPD_XX" +end +do local k = l[1917] +k.orgnames = l[41] +k.opclass = l[1809] +k.operands = l[1019] +k.sub = 15 +k.name = "VTESTPD_YM" +end +do local k = l[1918] +k.orgnames = l[41] +k.opclass = l[1811] +k.operands = l[1024] +k.sub = 15 +k.name = "VTESTPD_YY" +end +do local k = l[1919] +k.orgnames = l[41] +k.opclass = l[1805] +k.operands = l[1011] +k.sub = 14 +k.name = "VTESTPS_XM" +end +do local k = l[1920] +k.orgnames = l[41] +k.opclass = l[1807] +k.operands = l[711] +k.sub = 14 +k.name = "VTESTPS_XX" +end +do local k = l[1921] +k.orgnames = l[41] +k.opclass = l[1809] +k.operands = l[1019] +k.sub = 14 +k.name = "VTESTPS_YM" +end +do local k = l[1922] +k.orgnames = l[41] +k.opclass = l[1811] +k.operands = l[1024] +k.sub = 14 +k.name = "VTESTPS_YY" +end +do local k = l[1923] +k.orgnames = l[41] +k.opclass = l[693] +k.operands = l[701] +k.sub = 14 +k.name = "VUCOMISD_XM64" +end +do local k = l[1924] +k.orgnames = l[41] +k.opclass = l[705] +k.operands = l[711] +k.sub = 14 +k.name = "VUCOMISD_XX" +end +do local k = l[1925] +k.orgnames = l[41] +k.opclass = l[715] +k.operands = l[717] +k.sub = 14 +k.name = "VUCOMISS_XM32" +end +do local k = l[1926] +k.orgnames = l[41] +k.opclass = l[721] +k.operands = l[711] +k.sub = 14 +k.name = "VUCOMISS_XX" +end +do local k = l[1927] +k.orgnames = l[4] +k.opclass = l[1088] +k.operands = l[16] +k.sub = 21 +k.name = "VUNPCKHPD_XXM" +end +do local k = l[1928] +k.orgnames = l[4] +k.opclass = l[1929] +k.operands = l[30] +k.sub = 21 +k.name = "VUNPCKHPD_XXX" +end +do local k = l[1929] +k.isa = l[475] +k.code = l[22] +k.id = 253 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f-R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PAR 0|{}" +k.prefixclass = l[479] +end +do local k = l[1930] +k.orgnames = l[4] +k.opclass = l[1931] +k.operands = l[380] +k.sub = 21 +k.name = "VUNPCKHPD_YYM" +end +do local k = l[1931] +k.isa = l[475] +k.code = l[7] +k.id = 101 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f-128.R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR 0|{rmem}" +k.prefixclass = l[482] +end +do local k = l[1932] +k.orgnames = l[4] +k.opclass = l[1933] +k.operands = l[387] +k.sub = 21 +k.name = "VUNPCKHPD_YYY" +end +do local k = l[1933] +k.isa = l[475] +k.code = l[22] +k.id = 247 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f-128.R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PAR 0|{}" +k.prefixclass = l[485] +end +do local k = l[1934] +k.orgnames = l[4] +k.opclass = l[1092] +k.operands = l[16] +k.sub = 21 +k.name = "VUNPCKHPS_XXM" +end +do local k = l[1935] +k.orgnames = l[4] +k.opclass = l[1936] +k.operands = l[30] +k.sub = 21 +k.name = "VUNPCKHPS_XXX" +end +do local k = l[1936] +k.isa = l[475] +k.code = l[22] +k.id = 241 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-0f-R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PAR 0|{}" +k.prefixclass = l[491] +end +do local k = l[1937] +k.orgnames = l[4] +k.opclass = l[1938] +k.operands = l[380] +k.sub = 21 +k.name = "VUNPCKHPS_YYM" +end +do local k = l[1938] +k.isa = l[475] +k.code = l[7] +k.id = 91 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{avx}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-0f-128.R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR 0|{rmem}" +k.prefixclass = l[494] +end +do local k = l[1939] +k.orgnames = l[4] +k.opclass = l[1940] +k.operands = l[387] +k.sub = 21 +k.name = "VUNPCKHPS_YYY" +end +do local k = l[1940] +k.isa = l[475] +k.code = l[22] +k.id = 236 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{avx}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-0f-128.R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PAR 0|{}" +k.prefixclass = l[497] +end +do local k = l[1941] +k.orgnames = l[4] +k.opclass = l[1088] +k.operands = l[16] +k.sub = 20 +k.name = "VUNPCKLPD_XXM" +end +do local k = l[1942] +k.orgnames = l[4] +k.opclass = l[1929] +k.operands = l[30] +k.sub = 20 +k.name = "VUNPCKLPD_XXX" +end +do local k = l[1943] +k.orgnames = l[4] +k.opclass = l[1931] +k.operands = l[380] +k.sub = 20 +k.name = "VUNPCKLPD_YYM" +end +do local k = l[1944] +k.orgnames = l[4] +k.opclass = l[1933] +k.operands = l[387] +k.sub = 20 +k.name = "VUNPCKLPD_YYY" +end +do local k = l[1945] +k.orgnames = l[4] +k.opclass = l[1092] +k.operands = l[16] +k.sub = 20 +k.name = "VUNPCKLPS_XXM" +end +do local k = l[1946] +k.orgnames = l[4] +k.opclass = l[1936] +k.operands = l[30] +k.sub = 20 +k.name = "VUNPCKLPS_XXX" +end +do local k = l[1947] +k.orgnames = l[4] +k.opclass = l[1938] +k.operands = l[380] +k.sub = 20 +k.name = "VUNPCKLPS_YYM" +end +do local k = l[1948] +k.orgnames = l[4] +k.opclass = l[1940] +k.operands = l[387] +k.sub = 20 +k.name = "VUNPCKLPS_YYY" +end +do local k = l[1949] +k.orgnames = l[4] +k.opclass = l[474] +k.operands = l[16] +k.sub = 23 +k.name = "VXORPD_XXM" +end +do local k = l[1950] +k.orgnames = l[4] +k.opclass = l[478] +k.operands = l[30] +k.sub = 23 +k.name = "VXORPD_XXX" +end +do local k = l[1951] +k.orgnames = l[4] +k.opclass = l[481] +k.operands = l[380] +k.sub = 23 +k.name = "VXORPD_YYM" +end +do local k = l[1952] +k.orgnames = l[4] +k.opclass = l[484] +k.operands = l[387] +k.sub = 23 +k.name = "VXORPD_YYY" +end +do local k = l[1953] +k.orgnames = l[4] +k.opclass = l[487] +k.operands = l[16] +k.sub = 23 +k.name = "VXORPS_XXM" +end +do local k = l[1954] +k.orgnames = l[4] +k.opclass = l[490] +k.operands = l[30] +k.sub = 23 +k.name = "VXORPS_XXX" +end +do local k = l[1955] +k.orgnames = l[4] +k.opclass = l[493] +k.operands = l[380] +k.sub = 23 +k.name = "VXORPS_YYM" +end +do local k = l[1956] +k.orgnames = l[4] +k.opclass = l[496] +k.operands = l[387] +k.sub = 23 +k.name = "VXORPS_YYY" +end +do local k = l[1957] +k.orgnames = l[1958] +k.opclass = l[1959] +k.operands = l[1964] +k.name = "VZEROALL" +k.sub = 23 +end +do local k = l[1958] +k.id = 18 +k.sig = "{}" +end +do local k = l[1959] +k.isa = l[475] +k.code = l[1960] +k.id = 323 +k.layout = l[1961] +k.impregs = l[12] +k.flags = l[27] +k.parm = 96 +k.sig = "{avx}|{}|{}|vex-0f-128.|{$parm+$sub}|PAR60|{}" +k.prefixclass = l[1962] +end +do local k = l[1960] +k[1] = "$parm+$sub" +k.id = 41 +k.sig = "{$parm+$sub}" +end +do local k = l[1961] +k.id = 32 +k.sig = "{}" +end +do local k = l[1962] +k.extopcode = "0f" +k.rex = l[1963] +k.id = 152 +k.pref = "" +k.sig = "vex-0f-128." +end +do local k = l[1963] +k.r64 = "0" +k.rm = "0" +k.reg = "0" +k.sig = "{r64 = 0,rm = 0,src1 = 0,reg = 0,mode = rr,vex = true,l = 1}" +k.src1 = "0" +k.id = 36 +k.l = "1" +k.vex = true +k.mode = "rr" +end +do local k = l[1964] +k.id = 173 +k.sig = "{}" +end +do local k = l[1965] +k.orgnames = l[1958] +k.opclass = l[1966] +k.operands = l[1964] +k.name = "VZEROUPPER" +k.sub = 23 +end +do local k = l[1966] +k.isa = l[475] +k.code = l[1960] +k.id = 324 +k.layout = l[1961] +k.impregs = l[12] +k.flags = l[27] +k.parm = 96 +k.sig = "{avx}|{}|{}|vex-0f-|{$parm+$sub}|PAR60|{}" +k.prefixclass = l[1967] +end +do local k = l[1967] +k.extopcode = "0f" +k.rex = l[1968] +k.id = 153 +k.pref = "" +k.sig = "vex-0f-" +end +do local k = l[1968] +k.r64 = "0" +k.rm = "0" +k.reg = "0" +k.sig = "{r64 = 0,rm = 0,src1 = 0,reg = 0,mode = rr,vex = true,l = 0}" +k.src1 = "0" +k.id = 37 +k.l = "0" +k.vex = true +k.mode = "rr" +end +do local k = l[1969] +k.orgnames = l[1970] +k.opclass = l[1971] +k.operands = l[1979] +k.name = "XGETBV_EDX_EAX_ECX" +k.sub = 2 +end +do local k = l[1970] +k[1] = "hi" +k[2] = "lo" +k[3] = "sel" +k.id = 21 +k.sig = "{hi, lo, sel}" +end +do local k = l[1971] +k.isa = l[475] +k.code = l[1972] +k.id = 322 +k.layout = l[1961] +k.impregs = l[1973] +k.flags = l[27] +k.parm = 1 +k.sig = "{avx}|{}|{{rdx, def}, {rax, def}, {rcx, use}}|rex-0f|{$parm, !RRMR($sub,0)}|PAR 1|{}" +k.prefixclass = l[1977] +end +do local k = l[1972] +k[1] = "$parm" +k[2] = "!RRMR($sub,0)" +k.id = 42 +k.sig = "{$parm, !RRMR($sub,0)}" +end +do local k = l[1973] +k[1] = l[1974] +k[2] = l[1975] +k[3] = l[1976] +k.id = 17 +k.sig = "{{rdx, def}, {rax, def}, {rcx, use}}" +end +do local k = l[1974] +k[1] = "rdx" +k[2] = "def" +end +do local k = l[1975] +k[1] = "rax" +k[2] = "def" +end +do local k = l[1976] +k[1] = "rcx" +k[2] = "use" +end +do local k = l[1977] +k.extopcode = "0f" +k.rex = l[1978] +k.id = 67 +k.pref = "" +k.sig = "rex-0f" +end +do local k = l[1978] +k.r64 = "0" +k.rm = "0" +k.reg = "0" +k.mode = "rr" +k.sig = "{reg = 0,mode = rr,rm = 0,r64 = 0}" +k.id = 3 +end +do local k = l[1979] +k[1] = l[1980] +k[2] = l[1981] +k[3] = l[1982] +k.id = 178 +k.sig = "{{mode = o,type = GR32,name = p1,fixed = rdx}, {mode = o,type = GR32,name = p2,fixed = rax}, {mode = i,type = GR32,name = p3,fixed = rcx}}" +end +do local k = l[1980] +k.mode = "o" +k.type = "GR32" +k.name = "p1" +k.fixed = "rdx" +end +do local k = l[1981] +k.mode = "o" +k.type = "GR32" +k.name = "p2" +k.fixed = "rax" +end +do local k = l[1982] +k.mode = "i" +k.type = "GR32" +k.name = "p3" +k.fixed = "rcx" +end +do local k = l[1983] +k.orgnames = l[4] +k.opclass = l[1984] +k.operands = l[1987] +k.sub = 18 +k.name = "ANDN_WWM" +end +do local k = l[1984] +k.isa = l[1985] +k.code = l[7] +k.id = 325 +k.layout = l[8] +k.impregs = l[697] +k.flags = l[699] +k.parm = 224 +k.sig = "{bmi1}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{{FLAGS, def}}|vex-0f38-R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{rmem, wflags}" +k.prefixclass = l[1986] +end +do local k = l[1985] +k[1] = "bmi1" +k.id = 5 +k.sig = "{bmi1}" +end +do local k = l[1986] +k.extopcode = "0f38" +k.rex = l[15] +k.id = 48 +k.pref = "" +k.sig = "vex-0f38-R2M1S3" +end +do local k = l[1987] +k[1] = l[1988] +k[2] = l[1989] +k[3] = l[1990] +k.id = 138 +k.sig = "{{mode = o,type = GR32,name = p2}, {mode = i,type = GR32,name = p3}, {mode = i,type = i32*,name = p1}}" +end +do local k = l[1988] +k.mode = "o" +k.type = "GR32" +k.name = "p2" +end +do local k = l[1989] +k.mode = "i" +k.type = "GR32" +k.name = "p3" +end +do local k = l[1990] +k.mode = "i" +k.type = "i32*" +k.name = "p1" +end +do local k = l[1991] +k.orgnames = l[4] +k.opclass = l[1992] +k.operands = l[1994] +k.sub = 18 +k.name = "ANDN_WWW" +end +do local k = l[1992] +k.isa = l[1985] +k.code = l[22] +k.id = 328 +k.layout = l[23] +k.impregs = l[697] +k.flags = l[709] +k.parm = 224 +k.sig = "{bmi1}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{{FLAGS, def}}|vex-0f38-R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PARE0|{wflags}" +k.prefixclass = l[1993] +end +do local k = l[1993] +k.extopcode = "0f38" +k.rex = l[29] +k.id = 13 +k.pref = "" +k.sig = "vex-0f38-R2B1S3" +end +do local k = l[1994] +k[1] = l[1995] +k[2] = l[1996] +k[3] = l[1997] +k.id = 56 +k.sig = "{{mode = o,type = GR32,name = p2}, {mode = i,type = GR32,name = p3}, {mode = i,type = GR32,name = p1}}" +end +do local k = l[1995] +k.mode = "o" +k.type = "GR32" +k.name = "p2" +end +do local k = l[1996] +k.mode = "i" +k.type = "GR32" +k.name = "p3" +end +do local k = l[1997] +k.mode = "i" +k.type = "GR32" +k.name = "p1" +end +do local k = l[1998] +k.orgnames = l[1999] +k.opclass = l[1984] +k.operands = l[2000] +k.sub = 23 +k.name = "BEXTR_WMW" +end +do local k = l[1999] +k[1] = "dst" +k[2] = "src" +k[3] = "src1" +k.id = 12 +k.sig = "{dst, src, src1}" +end +do local k = l[2000] +k[1] = l[2001] +k[2] = l[2002] +k[3] = l[2003] +k.id = 139 +k.sig = "{{mode = o,type = GR32,name = p2}, {mode = i,type = i32*,name = p1}, {mode = i,type = GR32,name = p3}}" +end +do local k = l[2001] +k.mode = "o" +k.type = "GR32" +k.name = "p2" +end +do local k = l[2002] +k.mode = "i" +k.type = "i32*" +k.name = "p1" +end +do local k = l[2003] +k.mode = "i" +k.type = "GR32" +k.name = "p3" +end +do local k = l[2004] +k.orgnames = l[1999] +k.opclass = l[1992] +k.operands = l[2005] +k.sub = 23 +k.name = "BEXTR_WWW" +end +do local k = l[2005] +k[1] = l[2006] +k[2] = l[2007] +k[3] = l[2008] +k.id = 57 +k.sig = "{{mode = o,type = GR32,name = p2}, {mode = i,type = GR32,name = p1}, {mode = i,type = GR32,name = p3}}" +end +do local k = l[2006] +k.mode = "o" +k.type = "GR32" +k.name = "p2" +end +do local k = l[2007] +k.mode = "i" +k.type = "GR32" +k.name = "p1" +end +do local k = l[2008] +k.mode = "i" +k.type = "GR32" +k.name = "p3" +end +do local k = l[2009] +k.orgnames = l[41] +k.opclass = l[2010] +k.operands = l[858] +k.sub = 3 +k.name = "BLSI_WM" +end +do local k = l[2010] +k.isa = l[1985] +k.code = l[2011] +k.id = 327 +k.layout = l[43] +k.impregs = l[697] +k.flags = l[699] +k.parm = 243 +k.sig = "{bmi1}|{{MemId, use, p1}, {RegId, def, p2}}|{{FLAGS, def}}|vex-0f38-M1S2|{$parm, !RRMM($sub,$p1)}|PARF3|{rmem, wflags}" +k.prefixclass = l[2012] +end +do local k = l[2011] +k[1] = "$parm" +k[2] = "!RRMM($sub,$p1)" +k.id = 28 +k.sig = "{$parm, !RRMM($sub,$p1)}" +end +do local k = l[2012] +k.extopcode = "0f38" +k.rex = l[2013] +k.id = 49 +k.pref = "" +k.sig = "vex-0f38-M1S2" +end +do local k = l[2013] +k.r64 = "0" +k.rm = "p1" +k.reg = "0" +k.sig = "{r64 = 0,rm = p1,src1 = p2,reg = 0,mode = rm,vex = true,l = 0}" +k.src1 = "p2" +k.id = 18 +k.l = "0" +k.vex = true +k.mode = "rm" +end +do local k = l[2014] +k.orgnames = l[41] +k.opclass = l[2015] +k.operands = l[2018] +k.sub = 3 +k.name = "BLSI_WW" +end +do local k = l[2015] +k.isa = l[1985] +k.code = l[2016] +k.id = 330 +k.layout = l[53] +k.impregs = l[697] +k.flags = l[709] +k.parm = 243 +k.sig = "{bmi1}|{{RegId, use, p1}, {RegId, def, p2}}|{{FLAGS, def}}|vex-0f38-B1S2|{$parm, !RRMR($sub,$p1)}|PARF3|{wflags}" +k.prefixclass = l[2017] +end +do local k = l[2016] +k[1] = "$parm" +k[2] = "!RRMR($sub,$p1)" +k.id = 5 +k.sig = "{$parm, !RRMR($sub,$p1)}" +end +do local k = l[2017] +k.extopcode = "0f38" +k.rex = l[1709] +k.id = 14 +k.pref = "" +k.sig = "vex-0f38-B1S2" +end +do local k = l[2018] +k[1] = l[2019] +k[2] = l[2020] +k.id = 33 +k.sig = "{{mode = o,type = GR32,name = p2}, {mode = i,type = GR32,name = p1}}" +end +do local k = l[2019] +k.mode = "o" +k.type = "GR32" +k.name = "p2" +end +do local k = l[2020] +k.mode = "i" +k.type = "GR32" +k.name = "p1" +end +do local k = l[2021] +k.orgnames = l[41] +k.opclass = l[2010] +k.operands = l[858] +k.sub = 2 +k.name = "BLSMSK_WM" +end +do local k = l[2022] +k.orgnames = l[41] +k.opclass = l[2015] +k.operands = l[2018] +k.sub = 2 +k.name = "BLSMSK_WW" +end +do local k = l[2023] +k.orgnames = l[41] +k.opclass = l[2010] +k.operands = l[858] +k.sub = 1 +k.name = "BLSR_WM" +end +do local k = l[2024] +k.orgnames = l[41] +k.opclass = l[2015] +k.operands = l[2018] +k.sub = 1 +k.name = "BLSR_WW" +end +do local k = l[2025] +k.orgnames = l[41] +k.opclass = l[2026] +k.operands = l[858] +k.sub = 28 +k.name = "TZCNT_WM" +end +do local k = l[2026] +k.isa = l[1985] +k.code = l[7] +k.id = 326 +k.layout = l[43] +k.impregs = l[697] +k.flags = l[699] +k.parm = 160 +k.sig = "{bmi1}|{{MemId, use, p1}, {RegId, def, p2}}|{{FLAGS, def}}|rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARA0|{rmem, wflags}" +k.prefixclass = l[2027] +end +do local k = l[2027] +k.extopcode = "0f" +k.rex = l[93] +k.id = 39 +k.pref = "" +k.sig = "rexR2M1-0f" +end +do local k = l[2028] +k.orgnames = l[41] +k.opclass = l[2029] +k.operands = l[2018] +k.sub = 28 +k.name = "TZCNT_WW" +end +do local k = l[2029] +k.isa = l[1985] +k.code = l[22] +k.id = 329 +k.layout = l[53] +k.impregs = l[697] +k.flags = l[709] +k.parm = 160 +k.sig = "{bmi1}|{{RegId, use, p1}, {RegId, def, p2}}|{{FLAGS, def}}|rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PARA0|{wflags}" +k.prefixclass = l[2030] +end +do local k = l[2030] +k.extopcode = "0f" +k.rex = l[103] +k.id = 5 +k.pref = "" +k.sig = "rexR2B1-0f" +end +do local k = l[2031] +k.orgnames = l[1999] +k.opclass = l[2032] +k.operands = l[2000] +k.sub = 21 +k.name = "BZHI_WMW" +end +do local k = l[2032] +k.isa = l[2033] +k.code = l[7] +k.id = 333 +k.layout = l[8] +k.impregs = l[697] +k.flags = l[699] +k.parm = 224 +k.sig = "{bmi2}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{{FLAGS, def}}|vex-0f38-R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{rmem, wflags}" +k.prefixclass = l[1986] +end +do local k = l[2033] +k[1] = "bmi2" +k.id = 6 +k.sig = "{bmi2}" +end +do local k = l[2034] +k.orgnames = l[1999] +k.opclass = l[2035] +k.operands = l[2005] +k.sub = 21 +k.name = "BZHI_WWW" +end +do local k = l[2035] +k.isa = l[2033] +k.code = l[22] +k.id = 339 +k.layout = l[23] +k.impregs = l[697] +k.flags = l[709] +k.parm = 224 +k.sig = "{bmi2}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{{FLAGS, def}}|vex-0f38-R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PARE0|{wflags}" +k.prefixclass = l[1993] +end +do local k = l[2036] +k.orgnames = l[2037] +k.opclass = l[2038] +k.operands = l[2046] +k.sub = 22 +k.name = "MULX_WWM" +end +do local k = l[2037] +k[1] = "dst" +k[2] = "src1" +k[3] = "src" +k[4] = "src2" +k.id = 13 +k.sig = "{dst, src1, src, src2}" +end +do local k = l[2038] +k.isa = l[2033] +k.code = l[7] +k.id = 332 +k.layout = l[2039] +k.impregs = l[2043] +k.flags = l[13] +k.parm = 224 +k.sig = "{bmi2}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, def, p3}}|{{rdx, use}}|vex-f2-0f38-R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{rmem}" +k.prefixclass = l[2045] +end +do local k = l[2039] +k[1] = l[2040] +k[2] = l[2041] +k[3] = l[2042] +k.id = 31 +k.sig = "{{MemId, use, p1}, {RegId, def, p2}, {RegId, def, p3}}" +end +do local k = l[2040] +k[1] = "MemId" +k[2] = "use" +k[3] = "p1" +end +do local k = l[2041] +k[1] = "RegId" +k[2] = "def" +k[3] = "p2" +end +do local k = l[2042] +k[1] = "RegId" +k[2] = "def" +k[3] = "p3" +end +do local k = l[2043] +k[1] = l[2044] +k.id = 13 +k.sig = "{{rdx, use}}" +end +do local k = l[2044] +k[1] = "rdx" +k[2] = "use" +end +do local k = l[2045] +k.extopcode = "0f38" +k.rex = l[15] +k.id = 50 +k.pref = "f2" +k.sig = "vex-f2-0f38-R2M1S3" +end +do local k = l[2046] +k[1] = l[2047] +k[2] = l[2048] +k[3] = l[2049] +k[4] = l[2050] +k.id = 140 +k.sig = "{{mode = o,type = GR32,name = p2}, {mode = o,type = GR32,name = p3}, {mode = i,type = i32*,name = p1}, {mode = i,type = GR32,name = p4,fixed = rdx}}" +end +do local k = l[2047] +k.mode = "o" +k.type = "GR32" +k.name = "p2" +end +do local k = l[2048] +k.mode = "o" +k.type = "GR32" +k.name = "p3" +end +do local k = l[2049] +k.mode = "i" +k.type = "i32*" +k.name = "p1" +end +do local k = l[2050] +k.mode = "i" +k.type = "GR32" +k.name = "p4" +k.fixed = "rdx" +end +do local k = l[2051] +k.orgnames = l[2037] +k.opclass = l[2052] +k.operands = l[2058] +k.sub = 22 +k.name = "MULX_WWW" +end +do local k = l[2052] +k.isa = l[2033] +k.code = l[22] +k.id = 338 +k.layout = l[2053] +k.impregs = l[2043] +k.flags = l[27] +k.parm = 224 +k.sig = "{bmi2}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, def, p3}}|{{rdx, use}}|vex-f2-0f38-R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PARE0|{}" +k.prefixclass = l[2057] +end +do local k = l[2053] +k[1] = l[2054] +k[2] = l[2055] +k[3] = l[2056] +k.id = 19 +k.sig = "{{RegId, use, p1}, {RegId, def, p2}, {RegId, def, p3}}" +end +do local k = l[2054] +k[1] = "RegId" +k[2] = "use" +k[3] = "p1" +end +do local k = l[2055] +k[1] = "RegId" +k[2] = "def" +k[3] = "p2" +end +do local k = l[2056] +k[1] = "RegId" +k[2] = "def" +k[3] = "p3" +end +do local k = l[2057] +k.extopcode = "0f38" +k.rex = l[29] +k.id = 15 +k.pref = "f2" +k.sig = "vex-f2-0f38-R2B1S3" +end +do local k = l[2058] +k[1] = l[2059] +k[2] = l[2060] +k[3] = l[2061] +k[4] = l[2062] +k.id = 58 +k.sig = "{{mode = o,type = GR32,name = p2}, {mode = o,type = GR32,name = p3}, {mode = i,type = GR32,name = p1}, {mode = i,type = GR32,name = p4,fixed = rdx}}" +end +do local k = l[2059] +k.mode = "o" +k.type = "GR32" +k.name = "p2" +end +do local k = l[2060] +k.mode = "o" +k.type = "GR32" +k.name = "p3" +end +do local k = l[2061] +k.mode = "i" +k.type = "GR32" +k.name = "p1" +end +do local k = l[2062] +k.mode = "i" +k.type = "GR32" +k.name = "p4" +k.fixed = "rdx" +end +do local k = l[2063] +k.orgnames = l[4] +k.opclass = l[2064] +k.operands = l[1987] +k.sub = 21 +k.name = "PDEP_WWM" +end +do local k = l[2064] +k.isa = l[2033] +k.code = l[7] +k.id = 335 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 224 +k.sig = "{bmi2}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-f2-0f38-R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{rmem}" +k.prefixclass = l[2045] +end +do local k = l[2065] +k.orgnames = l[4] +k.opclass = l[2066] +k.operands = l[1994] +k.sub = 21 +k.name = "PDEP_WWW" +end +do local k = l[2066] +k.isa = l[2033] +k.code = l[22] +k.id = 341 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 224 +k.sig = "{bmi2}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-f2-0f38-R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PARE0|{}" +k.prefixclass = l[2057] +end +do local k = l[2067] +k.orgnames = l[4] +k.opclass = l[2068] +k.operands = l[1987] +k.sub = 21 +k.name = "PEXT_WWM" +end +do local k = l[2068] +k.isa = l[2033] +k.code = l[7] +k.id = 336 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 224 +k.sig = "{bmi2}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-f3-0f38-R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{rmem}" +k.prefixclass = l[2069] +end +do local k = l[2069] +k.extopcode = "0f38" +k.rex = l[15] +k.id = 51 +k.pref = "f3" +k.sig = "vex-f3-0f38-R2M1S3" +end +do local k = l[2070] +k.orgnames = l[4] +k.opclass = l[2071] +k.operands = l[1994] +k.sub = 21 +k.name = "PEXT_WWW" +end +do local k = l[2071] +k.isa = l[2033] +k.code = l[22] +k.id = 342 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 224 +k.sig = "{bmi2}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-f3-0f38-R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PARE0|{}" +k.prefixclass = l[2072] +end +do local k = l[2072] +k.extopcode = "0f38" +k.rex = l[29] +k.id = 16 +k.pref = "f3" +k.sig = "vex-f3-0f38-R2B1S3" +end +do local k = l[2073] +k.orgnames = l[62] +k.opclass = l[2074] +k.operands = l[2076] +k.sub = 16 +k.name = "RORX_WMI" +end +do local k = l[2074] +k.isa = l[2033] +k.code = l[64] +k.id = 331 +k.layout = l[65] +k.impregs = l[12] +k.flags = l[13] +k.parm = 224 +k.sig = "{bmi2}|{{MemId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|vex-f2-0f3a-R2M1|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PARE0|{rmem}" +k.prefixclass = l[2075] +end +do local k = l[2075] +k.extopcode = "0f3a" +k.rex = l[312] +k.id = 52 +k.pref = "f2" +k.sig = "vex-f2-0f3a-R2M1" +end +do local k = l[2076] +k[1] = l[2077] +k[2] = l[2078] +k[3] = l[2079] +k.id = 141 +k.sig = "{{mode = o,type = GR32,name = p2}, {mode = i,type = i32*,name = p1}, {mode = i,type = i8,name = p3}}" +end +do local k = l[2077] +k.mode = "o" +k.type = "GR32" +k.name = "p2" +end +do local k = l[2078] +k.mode = "i" +k.type = "i32*" +k.name = "p1" +end +do local k = l[2079] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[2080] +k.orgnames = l[62] +k.opclass = l[2081] +k.operands = l[2083] +k.sub = 16 +k.name = "RORX_WWI" +end +do local k = l[2081] +k.isa = l[2033] +k.code = l[76] +k.id = 337 +k.layout = l[77] +k.impregs = l[12] +k.flags = l[27] +k.parm = 224 +k.sig = "{bmi2}|{{RegId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|vex-f2-0f3a-R2B1|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PARE0|{}" +k.prefixclass = l[2082] +end +do local k = l[2082] +k.extopcode = "0f3a" +k.rex = l[171] +k.id = 17 +k.pref = "f2" +k.sig = "vex-f2-0f3a-R2B1" +end +do local k = l[2083] +k[1] = l[2084] +k[2] = l[2085] +k[3] = l[2086] +k.id = 59 +k.sig = "{{mode = o,type = GR32,name = p2}, {mode = i,type = GR32,name = p1}, {mode = i,type = i8,name = p3}}" +end +do local k = l[2084] +k.mode = "o" +k.type = "GR32" +k.name = "p2" +end +do local k = l[2085] +k.mode = "i" +k.type = "GR32" +k.name = "p1" +end +do local k = l[2086] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[2087] +k.orgnames = l[1999] +k.opclass = l[2068] +k.operands = l[2000] +k.sub = 23 +k.name = "SARX_WMW" +end +do local k = l[2088] +k.orgnames = l[1999] +k.opclass = l[2071] +k.operands = l[2005] +k.sub = 23 +k.name = "SARX_WWW" +end +do local k = l[2089] +k.orgnames = l[1999] +k.opclass = l[2090] +k.operands = l[2000] +k.sub = 23 +k.name = "SHLX_WMW" +end +do local k = l[2090] +k.isa = l[2033] +k.code = l[7] +k.id = 334 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 224 +k.sig = "{bmi2}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{rmem}" +k.prefixclass = l[14] +end +do local k = l[2091] +k.orgnames = l[1999] +k.opclass = l[2092] +k.operands = l[2005] +k.sub = 23 +k.name = "SHLX_WWW" +end +do local k = l[2092] +k.isa = l[2033] +k.code = l[22] +k.id = 340 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 224 +k.sig = "{bmi2}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PARE0|{}" +k.prefixclass = l[28] +end +do local k = l[2093] +k.orgnames = l[1999] +k.opclass = l[2064] +k.operands = l[2000] +k.sub = 23 +k.name = "SHRX_WMW" +end +do local k = l[2094] +k.orgnames = l[1999] +k.opclass = l[2066] +k.operands = l[2005] +k.sub = 23 +k.name = "SHRX_WWW" +end +do local k = l[2095] +k.orgnames = l[2096] +k.opclass = l[2097] +k.operands = l[2104] +k.sub = 7 +k.name = "CLFLUSH" +end +do local k = l[2096] +k[1] = "src" +k.id = 17 +k.sig = "{src}" +end +do local k = l[2097] +k.isa = l[2098] +k.code = l[2011] +k.id = 343 +k.layout = l[2099] +k.impregs = l[12] +k.flags = l[2101] +k.parm = 174 +k.sig = "{clflush}|{{MemId, use, p1}}|{}|rexM1-0f|{$parm, !RRMM($sub,$p1)}|PARAE|{rmem, rwmem, wmem}" +k.prefixclass = l[2102] +end +do local k = l[2098] +k[1] = "clflush" +k.id = 19 +k.sig = "{clflush}" +end +do local k = l[2099] +k[1] = l[2100] +k.id = 25 +k.sig = "{{MemId, use, p1}}" +end +do local k = l[2100] +k[1] = "MemId" +k[2] = "use" +k[3] = "p1" +end +do local k = l[2101] +k[1] = "rmem" +k[2] = "rwmem" +k[3] = "wmem" +k.id = 14 +k.sig = "{rmem, rwmem, wmem}" +end +do local k = l[2102] +k.extopcode = "0f" +k.rex = l[2103] +k.id = 45 +k.pref = "" +k.sig = "rexM1-0f" +end +do local k = l[2103] +k.r64 = "0" +k.rm = "p1" +k.reg = "0" +k.mode = "rm" +k.sig = "{reg = 0,mode = rm,rm = p1,r64 = 0}" +k.id = 16 +end +do local k = l[2104] +k[1] = l[2105] +k.id = 102 +k.sig = "{{mode = i,type = i8*,name = p1}}" +end +do local k = l[2105] +k.mode = "i" +k.type = "i8*" +k.name = "p1" +end +do local k = l[2106] +k.orgnames = l[62] +k.opclass = l[2107] +k.operands = l[2113] +k.sub = 4 +k.name = "PCLMULQDQ_XMI" +end +do local k = l[2107] +k.isa = l[2108] +k.code = l[64] +k.id = 344 +k.layout = l[2109] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{clmul}|{{MemId, use, p1}, {RegId, use/def, p2}, {Imm, use, p3, 0}}|{}|66-rexR2M1-0f3a|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR40|{rmem}" +k.prefixclass = l[119] +end +do local k = l[2108] +k[1] = "clmul" +k.id = 35 +k.sig = "{clmul}" +end +do local k = l[2109] +k[1] = l[2110] +k[2] = l[2111] +k[3] = l[2112] +k.id = 27 +k.sig = "{{MemId, use, p1}, {RegId, use/def, p2}, {Imm, use, p3, 0}}" +end +do local k = l[2110] +k[1] = "MemId" +k[2] = "use" +k[3] = "p1" +end +do local k = l[2111] +k[1] = "RegId" +k[2] = "use/def" +k[3] = "p2" +end +do local k = l[2112] +k[1] = "Imm" +k[2] = "use" +k[3] = "p3" +k[4] = 0 +end +do local k = l[2113] +k[1] = l[2114] +k[2] = l[2115] +k[3] = l[2116] +k.id = 209 +k.sig = "{{mode = io,type = VR128,name = p2}, {mode = i,type = i128*,name = p1}, {mode = i,type = i8,name = p3}}" +end +do local k = l[2114] +k.mode = "io" +k.type = "VR128" +k.name = "p2" +end +do local k = l[2115] +k.mode = "i" +k.type = "i128*" +k.name = "p1" +end +do local k = l[2116] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[2117] +k.orgnames = l[62] +k.opclass = l[2118] +k.operands = l[2123] +k.sub = 4 +k.name = "PCLMULQDQ_XXI" +end +do local k = l[2118] +k.isa = l[2108] +k.code = l[76] +k.id = 345 +k.layout = l[2119] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{clmul}|{{RegId, use, p1}, {RegId, use/def, p2}, {Imm, use, p3, 0}}|{}|66-rexR2B1-0f3a|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR40|{}" +k.prefixclass = l[122] +end +do local k = l[2119] +k[1] = l[2120] +k[2] = l[2121] +k[3] = l[2122] +k.id = 11 +k.sig = "{{RegId, use, p1}, {RegId, use/def, p2}, {Imm, use, p3, 0}}" +end +do local k = l[2120] +k[1] = "RegId" +k[2] = "use" +k[3] = "p1" +end +do local k = l[2121] +k[1] = "RegId" +k[2] = "use/def" +k[3] = "p2" +end +do local k = l[2122] +k[1] = "Imm" +k[2] = "use" +k[3] = "p3" +k[4] = 0 +end +do local k = l[2123] +k[1] = l[2124] +k[2] = l[2125] +k[3] = l[2126] +k.id = 197 +k.sig = "{{mode = io,type = VR128,name = p2}, {mode = i,type = VR128,name = p1}, {mode = i,type = i8,name = p3}}" +end +do local k = l[2124] +k.mode = "io" +k.type = "VR128" +k.name = "p2" +end +do local k = l[2125] +k.mode = "i" +k.type = "VR128" +k.name = "p1" +end +do local k = l[2126] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[2127] +k.orgnames = l[41] +k.opclass = l[2128] +k.operands = l[2134] +k.sub = 3 +k.name = "CMOVAE_HH" +end +do local k = l[2128] +k.isa = l[2129] +k.code = l[22] +k.id = 348 +k.layout = l[99] +k.impregs = l[2130] +k.flags = l[2132] +k.parm = 64 +k.sig = "{cmov}|{{RegId, use, p1}, {RegId, use/def, p2}}|{{FLAGS, use}}|66-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR40|{subflags}" +k.prefixclass = l[2133] +end +do local k = l[2129] +k[1] = "cmov" +k.id = 3 +k.sig = "{cmov}" +end +do local k = l[2130] +k[1] = l[2131] +k.id = 10 +k.sig = "{{FLAGS, use}}" +end +do local k = l[2131] +k[1] = "FLAGS" +k[2] = "use" +end +do local k = l[2132] +k[1] = "subflags" +k.id = 5 +k.sig = "{subflags}" +end +do local k = l[2133] +k.extopcode = "0f" +k.rex = l[103] +k.id = 9 +k.pref = "66" +k.sig = "66-rexR2B1-0f" +end +do local k = l[2134] +k[1] = l[2135] +k[2] = l[2136] +k.id = 13 +k.sig = "{{mode = io,type = GR16,name = p2}, {mode = i,type = GR16,name = p1}}" +end +do local k = l[2135] +k.mode = "io" +k.type = "GR16" +k.name = "p2" +end +do local k = l[2136] +k.mode = "i" +k.type = "GR16" +k.name = "p1" +end +do local k = l[2137] +k.orgnames = l[41] +k.opclass = l[2138] +k.operands = l[2141] +k.sub = 3 +k.name = "CMOVAE_HM" +end +do local k = l[2138] +k.isa = l[2129] +k.code = l[7] +k.id = 346 +k.layout = l[89] +k.impregs = l[2130] +k.flags = l[2139] +k.parm = 64 +k.sig = "{cmov}|{{MemId, use, p1}, {RegId, use/def, p2}}|{{FLAGS, use}}|66-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR40|{rmem, subflags}" +k.prefixclass = l[2140] +end +do local k = l[2139] +k[1] = "rmem" +k[2] = "subflags" +k.id = 16 +k.sig = "{rmem, subflags}" +end +do local k = l[2140] +k.extopcode = "0f" +k.rex = l[93] +k.id = 42 +k.pref = "66" +k.sig = "66-rexR2M1-0f" +end +do local k = l[2141] +k[1] = l[2142] +k[2] = l[2143] +k.id = 107 +k.sig = "{{mode = io,type = GR16,name = p2}, {mode = i,type = i16*,name = p1}}" +end +do local k = l[2142] +k.mode = "io" +k.type = "GR16" +k.name = "p2" +end +do local k = l[2143] +k.mode = "i" +k.type = "i16*" +k.name = "p1" +end +do local k = l[2144] +k.orgnames = l[41] +k.opclass = l[2145] +k.operands = l[2146] +k.sub = 3 +k.name = "CMOVAE_WM" +end +do local k = l[2145] +k.isa = l[2129] +k.code = l[7] +k.id = 347 +k.layout = l[89] +k.impregs = l[2130] +k.flags = l[2139] +k.parm = 64 +k.sig = "{cmov}|{{MemId, use, p1}, {RegId, use/def, p2}}|{{FLAGS, use}}|rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR40|{rmem, subflags}" +k.prefixclass = l[2027] +end +do local k = l[2146] +k[1] = l[2147] +k[2] = l[2148] +k.id = 123 +k.sig = "{{mode = io,type = GR32,name = p2}, {mode = i,type = i32*,name = p1}}" +end +do local k = l[2147] +k.mode = "io" +k.type = "GR32" +k.name = "p2" +end +do local k = l[2148] +k.mode = "i" +k.type = "i32*" +k.name = "p1" +end +do local k = l[2149] +k.orgnames = l[41] +k.opclass = l[2150] +k.operands = l[2151] +k.sub = 3 +k.name = "CMOVAE_WW" +end +do local k = l[2150] +k.isa = l[2129] +k.code = l[22] +k.id = 349 +k.layout = l[99] +k.impregs = l[2130] +k.flags = l[2132] +k.parm = 64 +k.sig = "{cmov}|{{RegId, use, p1}, {RegId, use/def, p2}}|{{FLAGS, use}}|rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR40|{subflags}" +k.prefixclass = l[2030] +end +do local k = l[2151] +k[1] = l[2152] +k[2] = l[2153] +k.id = 35 +k.sig = "{{mode = io,type = GR32,name = p2}, {mode = i,type = GR32,name = p1}}" +end +do local k = l[2152] +k.mode = "io" +k.type = "GR32" +k.name = "p2" +end +do local k = l[2153] +k.mode = "i" +k.type = "GR32" +k.name = "p1" +end +do local k = l[2154] +k.orgnames = l[41] +k.opclass = l[2128] +k.operands = l[2134] +k.sub = 7 +k.name = "CMOVA_HH" +end +do local k = l[2155] +k.orgnames = l[41] +k.opclass = l[2138] +k.operands = l[2141] +k.sub = 7 +k.name = "CMOVA_HM" +end +do local k = l[2156] +k.orgnames = l[41] +k.opclass = l[2145] +k.operands = l[2146] +k.sub = 7 +k.name = "CMOVA_WM" +end +do local k = l[2157] +k.orgnames = l[41] +k.opclass = l[2150] +k.operands = l[2151] +k.sub = 7 +k.name = "CMOVA_WW" +end +do local k = l[2158] +k.orgnames = l[41] +k.opclass = l[2128] +k.operands = l[2134] +k.sub = 6 +k.name = "CMOVBE_HH" +end +do local k = l[2159] +k.orgnames = l[41] +k.opclass = l[2138] +k.operands = l[2141] +k.sub = 6 +k.name = "CMOVBE_HM" +end +do local k = l[2160] +k.orgnames = l[41] +k.opclass = l[2145] +k.operands = l[2146] +k.sub = 6 +k.name = "CMOVBE_WM" +end +do local k = l[2161] +k.orgnames = l[41] +k.opclass = l[2150] +k.operands = l[2151] +k.sub = 6 +k.name = "CMOVBE_WW" +end +do local k = l[2162] +k.orgnames = l[41] +k.opclass = l[2128] +k.operands = l[2134] +k.sub = 2 +k.name = "CMOVB_HH" +end +do local k = l[2163] +k.orgnames = l[41] +k.opclass = l[2138] +k.operands = l[2141] +k.sub = 2 +k.name = "CMOVB_HM" +end +do local k = l[2164] +k.orgnames = l[41] +k.opclass = l[2145] +k.operands = l[2146] +k.sub = 2 +k.name = "CMOVB_WM" +end +do local k = l[2165] +k.orgnames = l[41] +k.opclass = l[2150] +k.operands = l[2151] +k.sub = 2 +k.name = "CMOVB_WW" +end +do local k = l[2166] +k.orgnames = l[41] +k.opclass = l[2128] +k.operands = l[2134] +k.sub = 4 +k.name = "CMOVE_HH" +end +do local k = l[2167] +k.orgnames = l[41] +k.opclass = l[2138] +k.operands = l[2141] +k.sub = 4 +k.name = "CMOVE_HM" +end +do local k = l[2168] +k.orgnames = l[41] +k.opclass = l[2145] +k.operands = l[2146] +k.sub = 4 +k.name = "CMOVE_WM" +end +do local k = l[2169] +k.orgnames = l[41] +k.opclass = l[2150] +k.operands = l[2151] +k.sub = 4 +k.name = "CMOVE_WW" +end +do local k = l[2170] +k.orgnames = l[41] +k.opclass = l[2128] +k.operands = l[2134] +k.sub = 13 +k.name = "CMOVGE_HH" +end +do local k = l[2171] +k.orgnames = l[41] +k.opclass = l[2138] +k.operands = l[2141] +k.sub = 13 +k.name = "CMOVGE_HM" +end +do local k = l[2172] +k.orgnames = l[41] +k.opclass = l[2145] +k.operands = l[2146] +k.sub = 13 +k.name = "CMOVGE_WM" +end +do local k = l[2173] +k.orgnames = l[41] +k.opclass = l[2150] +k.operands = l[2151] +k.sub = 13 +k.name = "CMOVGE_WW" +end +do local k = l[2174] +k.orgnames = l[41] +k.opclass = l[2128] +k.operands = l[2134] +k.sub = 15 +k.name = "CMOVG_HH" +end +do local k = l[2175] +k.orgnames = l[41] +k.opclass = l[2138] +k.operands = l[2141] +k.sub = 15 +k.name = "CMOVG_HM" +end +do local k = l[2176] +k.orgnames = l[41] +k.opclass = l[2145] +k.operands = l[2146] +k.sub = 15 +k.name = "CMOVG_WM" +end +do local k = l[2177] +k.orgnames = l[41] +k.opclass = l[2150] +k.operands = l[2151] +k.sub = 15 +k.name = "CMOVG_WW" +end +do local k = l[2178] +k.orgnames = l[41] +k.opclass = l[2128] +k.operands = l[2134] +k.sub = 14 +k.name = "CMOVLE_HH" +end +do local k = l[2179] +k.orgnames = l[41] +k.opclass = l[2138] +k.operands = l[2141] +k.sub = 14 +k.name = "CMOVLE_HM" +end +do local k = l[2180] +k.orgnames = l[41] +k.opclass = l[2145] +k.operands = l[2146] +k.sub = 14 +k.name = "CMOVLE_WM" +end +do local k = l[2181] +k.orgnames = l[41] +k.opclass = l[2150] +k.operands = l[2151] +k.sub = 14 +k.name = "CMOVLE_WW" +end +do local k = l[2182] +k.orgnames = l[41] +k.opclass = l[2128] +k.operands = l[2134] +k.sub = 12 +k.name = "CMOVL_HH" +end +do local k = l[2183] +k.orgnames = l[41] +k.opclass = l[2138] +k.operands = l[2141] +k.sub = 12 +k.name = "CMOVL_HM" +end +do local k = l[2184] +k.orgnames = l[41] +k.opclass = l[2145] +k.operands = l[2146] +k.sub = 12 +k.name = "CMOVL_WM" +end +do local k = l[2185] +k.orgnames = l[41] +k.opclass = l[2150] +k.operands = l[2151] +k.sub = 12 +k.name = "CMOVL_WW" +end +do local k = l[2186] +k.orgnames = l[41] +k.opclass = l[2128] +k.operands = l[2134] +k.sub = 5 +k.name = "CMOVNE_HH" +end +do local k = l[2187] +k.orgnames = l[41] +k.opclass = l[2138] +k.operands = l[2141] +k.sub = 5 +k.name = "CMOVNE_HM" +end +do local k = l[2188] +k.orgnames = l[41] +k.opclass = l[2145] +k.operands = l[2146] +k.sub = 5 +k.name = "CMOVNE_WM" +end +do local k = l[2189] +k.orgnames = l[41] +k.opclass = l[2150] +k.operands = l[2151] +k.sub = 5 +k.name = "CMOVNE_WW" +end +do local k = l[2190] +k.orgnames = l[41] +k.opclass = l[2128] +k.operands = l[2134] +k.sub = 1 +k.name = "CMOVNO_HH" +end +do local k = l[2191] +k.orgnames = l[41] +k.opclass = l[2138] +k.operands = l[2141] +k.sub = 1 +k.name = "CMOVNO_HM" +end +do local k = l[2192] +k.orgnames = l[41] +k.opclass = l[2145] +k.operands = l[2146] +k.sub = 1 +k.name = "CMOVNO_WM" +end +do local k = l[2193] +k.orgnames = l[41] +k.opclass = l[2150] +k.operands = l[2151] +k.sub = 1 +k.name = "CMOVNO_WW" +end +do local k = l[2194] +k.orgnames = l[41] +k.opclass = l[2128] +k.operands = l[2134] +k.sub = 9 +k.name = "CMOVNS_HH" +end +do local k = l[2195] +k.orgnames = l[41] +k.opclass = l[2138] +k.operands = l[2141] +k.sub = 9 +k.name = "CMOVNS_HM" +end +do local k = l[2196] +k.orgnames = l[41] +k.opclass = l[2145] +k.operands = l[2146] +k.sub = 9 +k.name = "CMOVNS_WM" +end +do local k = l[2197] +k.orgnames = l[41] +k.opclass = l[2150] +k.operands = l[2151] +k.sub = 9 +k.name = "CMOVNS_WW" +end +do local k = l[2198] +k.orgnames = l[41] +k.opclass = l[2128] +k.operands = l[2134] +k.sub = 0 +k.name = "CMOVO_HH" +end +do local k = l[2199] +k.orgnames = l[41] +k.opclass = l[2138] +k.operands = l[2141] +k.sub = 0 +k.name = "CMOVO_HM" +end +do local k = l[2200] +k.orgnames = l[41] +k.opclass = l[2145] +k.operands = l[2146] +k.sub = 0 +k.name = "CMOVO_WM" +end +do local k = l[2201] +k.orgnames = l[41] +k.opclass = l[2150] +k.operands = l[2151] +k.sub = 0 +k.name = "CMOVO_WW" +end +do local k = l[2202] +k.orgnames = l[41] +k.opclass = l[2128] +k.operands = l[2134] +k.sub = 10 +k.name = "CMOVPE_HH" +end +do local k = l[2203] +k.orgnames = l[41] +k.opclass = l[2138] +k.operands = l[2141] +k.sub = 10 +k.name = "CMOVPE_HM" +end +do local k = l[2204] +k.orgnames = l[41] +k.opclass = l[2145] +k.operands = l[2146] +k.sub = 10 +k.name = "CMOVPE_WM" +end +do local k = l[2205] +k.orgnames = l[41] +k.opclass = l[2150] +k.operands = l[2151] +k.sub = 10 +k.name = "CMOVPE_WW" +end +do local k = l[2206] +k.orgnames = l[41] +k.opclass = l[2128] +k.operands = l[2134] +k.sub = 11 +k.name = "CMOVPO_HH" +end +do local k = l[2207] +k.orgnames = l[41] +k.opclass = l[2138] +k.operands = l[2141] +k.sub = 11 +k.name = "CMOVPO_HM" +end +do local k = l[2208] +k.orgnames = l[41] +k.opclass = l[2145] +k.operands = l[2146] +k.sub = 11 +k.name = "CMOVPO_WM" +end +do local k = l[2209] +k.orgnames = l[41] +k.opclass = l[2150] +k.operands = l[2151] +k.sub = 11 +k.name = "CMOVPO_WW" +end +do local k = l[2210] +k.orgnames = l[41] +k.opclass = l[2128] +k.operands = l[2134] +k.sub = 8 +k.name = "CMOVS_HH" +end +do local k = l[2211] +k.orgnames = l[41] +k.opclass = l[2138] +k.operands = l[2141] +k.sub = 8 +k.name = "CMOVS_HM" +end +do local k = l[2212] +k.orgnames = l[41] +k.opclass = l[2145] +k.operands = l[2146] +k.sub = 8 +k.name = "CMOVS_WM" +end +do local k = l[2213] +k.orgnames = l[41] +k.opclass = l[2150] +k.operands = l[2151] +k.sub = 8 +k.name = "CMOVS_WW" +end +do local k = l[2214] +k.orgnames = l[41] +k.opclass = l[2215] +k.operands = l[339] +k.sub = 19 +k.name = "VCVTPH2PS_XM64" +end +do local k = l[2215] +k.isa = l[2216] +k.code = l[7] +k.id = 351 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{f16c}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f38-R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR 0|{rmem}" +k.prefixclass = l[311] +end +do local k = l[2216] +k[1] = "f16c" +k.id = 30 +k.sig = "{f16c}" +end +do local k = l[2217] +k.orgnames = l[41] +k.opclass = l[2218] +k.operands = l[58] +k.sub = 19 +k.name = "VCVTPH2PS_XX" +end +do local k = l[2218] +k.isa = l[2216] +k.code = l[22] +k.id = 357 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{f16c}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f38-R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR 0|{}" +k.prefixclass = l[170] +end +do local k = l[2219] +k.orgnames = l[41] +k.opclass = l[2220] +k.operands = l[158] +k.sub = 19 +k.name = "VCVTPH2PS_YM128" +end +do local k = l[2220] +k.isa = l[2216] +k.code = l[7] +k.id = 350 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{f16c}|{{MemId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f38-128.R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR 0|{rmem}" +k.prefixclass = l[156] +end +do local k = l[2221] +k.orgnames = l[41] +k.opclass = l[2222] +k.operands = l[165] +k.sub = 19 +k.name = "VCVTPH2PS_YX" +end +do local k = l[2222] +k.isa = l[2216] +k.code = l[22] +k.id = 356 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{f16c}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f38-128.R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR 0|{}" +k.prefixclass = l[163] +end +do local k = l[2223] +k.orgnames = l[62] +k.opclass = l[2224] +k.operands = l[181] +k.sub = 29 +k.name = "VCVTPS2PH_M128Y" +end +do local k = l[2224] +k.isa = l[2216] +k.code = l[64] +k.id = 352 +k.layout = l[175] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{f16c}|{{MemId, use, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f3a-128.R2M1|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR 0|{rmem}" +k.prefixclass = l[180] +end +do local k = l[2225] +k.orgnames = l[62] +k.opclass = l[2226] +k.operands = l[2227] +k.sub = 29 +k.name = "VCVTPS2PH_M64X" +end +do local k = l[2226] +k.isa = l[2216] +k.code = l[64] +k.id = 353 +k.layout = l[175] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{f16c}|{{MemId, use, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f3a-R2M1|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR 0|{rmem}" +k.prefixclass = l[917] +end +do local k = l[2227] +k[1] = l[2228] +k[2] = l[2229] +k[3] = l[2230] +k.id = 231 +k.sig = "{{mode = i,type = i64*,name = p1}, {mode = i,type = VR128,name = p2}, {mode = i,type = i8,name = p3}}" +end +do local k = l[2228] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[2229] +k.mode = "i" +k.type = "VR128" +k.name = "p2" +end +do local k = l[2230] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[2231] +k.orgnames = l[62] +k.opclass = l[2232] +k.operands = l[925] +k.sub = 29 +k.name = "VCVTPS2PH_XX" +end +do local k = l[2232] +k.isa = l[2216] +k.code = l[76] +k.id = 355 +k.layout = l[187] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{f16c}|{{RegId, def, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f3a-R2B1|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR 0|{}" +k.prefixclass = l[924] +end +do local k = l[2233] +k.orgnames = l[62] +k.opclass = l[2234] +k.operands = l[192] +k.sub = 29 +k.name = "VCVTPS2PH_XY" +end +do local k = l[2234] +k.isa = l[2216] +k.code = l[76] +k.id = 354 +k.layout = l[187] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{f16c}|{{RegId, def, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f3a-128.R2B1|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR 0|{}" +k.prefixclass = l[191] +end +do local k = l[2235] +k.orgnames = l[4] +k.opclass = l[2236] +k.operands = l[2242] +k.sub = 24 +k.name = "VFMADD132PD_XXM" +end +do local k = l[2236] +k.isa = l[2237] +k.code = l[7] +k.id = 364 +k.layout = l[2238] +k.impregs = l[12] +k.flags = l[13] +k.parm = 128 +k.sig = "{fma3}|{{MemId, use, p1}, {RegId, use/def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-WR2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR80|{rmem}" +k.prefixclass = l[206] +end +do local k = l[2237] +k[1] = "fma3" +k.id = 31 +k.sig = "{fma3}" +end +do local k = l[2238] +k[1] = l[2239] +k[2] = l[2240] +k[3] = l[2241] +k.id = 41 +k.sig = "{{MemId, use, p1}, {RegId, use/def, p2}, {RegId, use, p3}}" +end +do local k = l[2239] +k[1] = "MemId" +k[2] = "use" +k[3] = "p1" +end +do local k = l[2240] +k[1] = "RegId" +k[2] = "use/def" +k[3] = "p2" +end +do local k = l[2241] +k[1] = "RegId" +k[2] = "use" +k[3] = "p3" +end +do local k = l[2242] +k[1] = l[2243] +k[2] = l[2244] +k[3] = l[2245] +k.id = 233 +k.sig = "{{mode = io,type = VR128,name = p2}, {mode = i,type = VR128,name = p3}, {mode = i,type = i128*,name = p1}}" +end +do local k = l[2243] +k.mode = "io" +k.type = "VR128" +k.name = "p2" +end +do local k = l[2244] +k.mode = "i" +k.type = "VR128" +k.name = "p3" +end +do local k = l[2245] +k.mode = "i" +k.type = "i128*" +k.name = "p1" +end +do local k = l[2246] +k.orgnames = l[4] +k.opclass = l[2247] +k.operands = l[2252] +k.sub = 24 +k.name = "VFMADD132PD_XXX" +end +do local k = l[2247] +k.isa = l[2237] +k.code = l[22] +k.id = 372 +k.layout = l[2248] +k.impregs = l[12] +k.flags = l[27] +k.parm = 128 +k.sig = "{fma3}|{{RegId, use, p1}, {RegId, use/def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-WR2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PAR80|{}" +k.prefixclass = l[451] +end +do local k = l[2248] +k[1] = l[2249] +k[2] = l[2250] +k[3] = l[2251] +k.id = 38 +k.sig = "{{RegId, use, p1}, {RegId, use/def, p2}, {RegId, use, p3}}" +end +do local k = l[2249] +k[1] = "RegId" +k[2] = "use" +k[3] = "p1" +end +do local k = l[2250] +k[1] = "RegId" +k[2] = "use/def" +k[3] = "p2" +end +do local k = l[2251] +k[1] = "RegId" +k[2] = "use" +k[3] = "p3" +end +do local k = l[2252] +k[1] = l[2253] +k[2] = l[2254] +k[3] = l[2255] +k.id = 225 +k.sig = "{{mode = io,type = VR128,name = p2}, {mode = i,type = VR128,name = p3}, {mode = i,type = VR128,name = p1}}" +end +do local k = l[2253] +k.mode = "io" +k.type = "VR128" +k.name = "p2" +end +do local k = l[2254] +k.mode = "i" +k.type = "VR128" +k.name = "p3" +end +do local k = l[2255] +k.mode = "i" +k.type = "VR128" +k.name = "p1" +end +do local k = l[2256] +k.orgnames = l[4] +k.opclass = l[2257] +k.operands = l[2258] +k.sub = 24 +k.name = "VFMADD132PD_YYM" +end +do local k = l[2257] +k.isa = l[2237] +k.code = l[7] +k.id = 360 +k.layout = l[2238] +k.impregs = l[12] +k.flags = l[13] +k.parm = 128 +k.sig = "{fma3}|{{MemId, use, p1}, {RegId, use/def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-128.WR2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR80|{rmem}" +k.prefixclass = l[215] +end +do local k = l[2258] +k[1] = l[2259] +k[2] = l[2260] +k[3] = l[2261] +k.id = 260 +k.sig = "{{mode = io,type = VR256,name = p2}, {mode = i,type = VR256,name = p3}, {mode = i,type = i256*,name = p1}}" +end +do local k = l[2259] +k.mode = "io" +k.type = "VR256" +k.name = "p2" +end +do local k = l[2260] +k.mode = "i" +k.type = "VR256" +k.name = "p3" +end +do local k = l[2261] +k.mode = "i" +k.type = "i256*" +k.name = "p1" +end +do local k = l[2262] +k.orgnames = l[4] +k.opclass = l[2263] +k.operands = l[2264] +k.sub = 24 +k.name = "VFMADD132PD_YYY" +end +do local k = l[2263] +k.isa = l[2237] +k.code = l[22] +k.id = 368 +k.layout = l[2248] +k.impregs = l[12] +k.flags = l[27] +k.parm = 128 +k.sig = "{fma3}|{{RegId, use, p1}, {RegId, use/def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-128.WR2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PAR80|{}" +k.prefixclass = l[456] +end +do local k = l[2264] +k[1] = l[2265] +k[2] = l[2266] +k[3] = l[2267] +k.id = 247 +k.sig = "{{mode = io,type = VR256,name = p2}, {mode = i,type = VR256,name = p3}, {mode = i,type = VR256,name = p1}}" +end +do local k = l[2265] +k.mode = "io" +k.type = "VR256" +k.name = "p2" +end +do local k = l[2266] +k.mode = "i" +k.type = "VR256" +k.name = "p3" +end +do local k = l[2267] +k.mode = "i" +k.type = "VR256" +k.name = "p1" +end +do local k = l[2268] +k.orgnames = l[4] +k.opclass = l[2269] +k.operands = l[2242] +k.sub = 24 +k.name = "VFMADD132PS_XXM" +end +do local k = l[2269] +k.isa = l[2237] +k.code = l[7] +k.id = 362 +k.layout = l[2238] +k.impregs = l[12] +k.flags = l[13] +k.parm = 128 +k.sig = "{fma3}|{{MemId, use, p1}, {RegId, use/def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR80|{rmem}" +k.prefixclass = l[14] +end +do local k = l[2270] +k.orgnames = l[4] +k.opclass = l[2271] +k.operands = l[2252] +k.sub = 24 +k.name = "VFMADD132PS_XXX" +end +do local k = l[2271] +k.isa = l[2237] +k.code = l[22] +k.id = 370 +k.layout = l[2248] +k.impregs = l[12] +k.flags = l[27] +k.parm = 128 +k.sig = "{fma3}|{{RegId, use, p1}, {RegId, use/def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PAR80|{}" +k.prefixclass = l[28] +end +do local k = l[2272] +k.orgnames = l[4] +k.opclass = l[2273] +k.operands = l[2258] +k.sub = 24 +k.name = "VFMADD132PS_YYM" +end +do local k = l[2273] +k.isa = l[2237] +k.code = l[7] +k.id = 358 +k.layout = l[2238] +k.impregs = l[12] +k.flags = l[13] +k.parm = 128 +k.sig = "{fma3}|{{MemId, use, p1}, {RegId, use/def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-128.R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PAR80|{rmem}" +k.prefixclass = l[226] +end +do local k = l[2274] +k.orgnames = l[4] +k.opclass = l[2275] +k.operands = l[2264] +k.sub = 24 +k.name = "VFMADD132PS_YYY" +end +do local k = l[2275] +k.isa = l[2237] +k.code = l[22] +k.id = 366 +k.layout = l[2248] +k.impregs = l[12] +k.flags = l[27] +k.parm = 128 +k.sig = "{fma3}|{{RegId, use, p1}, {RegId, use/def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-128.R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PAR80|{}" +k.prefixclass = l[386] +end +do local k = l[2276] +k.orgnames = l[4] +k.opclass = l[2236] +k.operands = l[2277] +k.sub = 25 +k.name = "VFMADD132SD_XXM64" +end +do local k = l[2277] +k[1] = l[2278] +k[2] = l[2279] +k[3] = l[2280] +k.id = 266 +k.sig = "{{mode = io,type = VR128,name = p2}, {mode = i,type = VR128,name = p3}, {mode = i,type = i64*,name = p1}}" +end +do local k = l[2278] +k.mode = "io" +k.type = "VR128" +k.name = "p2" +end +do local k = l[2279] +k.mode = "i" +k.type = "VR128" +k.name = "p3" +end +do local k = l[2280] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[2281] +k.orgnames = l[4] +k.opclass = l[2247] +k.operands = l[2252] +k.sub = 25 +k.name = "VFMADD132SD_XXX" +end +do local k = l[2282] +k.orgnames = l[4] +k.opclass = l[2257] +k.operands = l[2283] +k.sub = 25 +k.name = "VFMADD132SD_YYM64" +end +do local k = l[2283] +k[1] = l[2284] +k[2] = l[2285] +k[3] = l[2286] +k.id = 271 +k.sig = "{{mode = io,type = VR256,name = p2}, {mode = i,type = VR256,name = p3}, {mode = i,type = i64*,name = p1}}" +end +do local k = l[2284] +k.mode = "io" +k.type = "VR256" +k.name = "p2" +end +do local k = l[2285] +k.mode = "i" +k.type = "VR256" +k.name = "p3" +end +do local k = l[2286] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[2287] +k.orgnames = l[4] +k.opclass = l[2263] +k.operands = l[2264] +k.sub = 25 +k.name = "VFMADD132SD_YYY" +end +do local k = l[2288] +k.orgnames = l[4] +k.opclass = l[2269] +k.operands = l[2289] +k.sub = 25 +k.name = "VFMADD132SS_XXM32" +end +do local k = l[2289] +k[1] = l[2290] +k[2] = l[2291] +k[3] = l[2292] +k.id = 234 +k.sig = "{{mode = io,type = VR128,name = p2}, {mode = i,type = VR128,name = p3}, {mode = i,type = i32*,name = p1}}" +end +do local k = l[2290] +k.mode = "io" +k.type = "VR128" +k.name = "p2" +end +do local k = l[2291] +k.mode = "i" +k.type = "VR128" +k.name = "p3" +end +do local k = l[2292] +k.mode = "i" +k.type = "i32*" +k.name = "p1" +end +do local k = l[2293] +k.orgnames = l[4] +k.opclass = l[2271] +k.operands = l[2252] +k.sub = 25 +k.name = "VFMADD132SS_XXX" +end +do local k = l[2294] +k.orgnames = l[4] +k.opclass = l[2273] +k.operands = l[2295] +k.sub = 25 +k.name = "VFMADD132SS_YYM32" +end +do local k = l[2295] +k[1] = l[2296] +k[2] = l[2297] +k[3] = l[2298] +k.id = 261 +k.sig = "{{mode = io,type = VR256,name = p2}, {mode = i,type = VR256,name = p3}, {mode = i,type = i32*,name = p1}}" +end +do local k = l[2296] +k.mode = "io" +k.type = "VR256" +k.name = "p2" +end +do local k = l[2297] +k.mode = "i" +k.type = "VR256" +k.name = "p3" +end +do local k = l[2298] +k.mode = "i" +k.type = "i32*" +k.name = "p1" +end +do local k = l[2299] +k.orgnames = l[4] +k.opclass = l[2275] +k.operands = l[2264] +k.sub = 25 +k.name = "VFMADD132SS_YYY" +end +do local k = l[2300] +k.orgnames = l[4] +k.opclass = l[2301] +k.operands = l[2242] +k.sub = 8 +k.name = "VFMADD213PD_XXM" +end +do local k = l[2301] +k.isa = l[2237] +k.code = l[7] +k.id = 365 +k.layout = l[2238] +k.impregs = l[12] +k.flags = l[13] +k.parm = 160 +k.sig = "{fma3}|{{MemId, use, p1}, {RegId, use/def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-WR2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PARA0|{rmem}" +k.prefixclass = l[206] +end +do local k = l[2302] +k.orgnames = l[4] +k.opclass = l[2303] +k.operands = l[2252] +k.sub = 8 +k.name = "VFMADD213PD_XXX" +end +do local k = l[2303] +k.isa = l[2237] +k.code = l[22] +k.id = 373 +k.layout = l[2248] +k.impregs = l[12] +k.flags = l[27] +k.parm = 160 +k.sig = "{fma3}|{{RegId, use, p1}, {RegId, use/def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-WR2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PARA0|{}" +k.prefixclass = l[451] +end +do local k = l[2304] +k.orgnames = l[4] +k.opclass = l[2305] +k.operands = l[2258] +k.sub = 8 +k.name = "VFMADD213PD_YYM" +end +do local k = l[2305] +k.isa = l[2237] +k.code = l[7] +k.id = 361 +k.layout = l[2238] +k.impregs = l[12] +k.flags = l[13] +k.parm = 160 +k.sig = "{fma3}|{{MemId, use, p1}, {RegId, use/def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-128.WR2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PARA0|{rmem}" +k.prefixclass = l[215] +end +do local k = l[2306] +k.orgnames = l[4] +k.opclass = l[2307] +k.operands = l[2264] +k.sub = 8 +k.name = "VFMADD213PD_YYY" +end +do local k = l[2307] +k.isa = l[2237] +k.code = l[22] +k.id = 369 +k.layout = l[2248] +k.impregs = l[12] +k.flags = l[27] +k.parm = 160 +k.sig = "{fma3}|{{RegId, use, p1}, {RegId, use/def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-128.WR2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PARA0|{}" +k.prefixclass = l[456] +end +do local k = l[2308] +k.orgnames = l[4] +k.opclass = l[2309] +k.operands = l[2242] +k.sub = 8 +k.name = "VFMADD213PS_XXM" +end +do local k = l[2309] +k.isa = l[2237] +k.code = l[7] +k.id = 363 +k.layout = l[2238] +k.impregs = l[12] +k.flags = l[13] +k.parm = 160 +k.sig = "{fma3}|{{MemId, use, p1}, {RegId, use/def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PARA0|{rmem}" +k.prefixclass = l[14] +end +do local k = l[2310] +k.orgnames = l[4] +k.opclass = l[2311] +k.operands = l[2252] +k.sub = 8 +k.name = "VFMADD213PS_XXX" +end +do local k = l[2311] +k.isa = l[2237] +k.code = l[22] +k.id = 371 +k.layout = l[2248] +k.impregs = l[12] +k.flags = l[27] +k.parm = 160 +k.sig = "{fma3}|{{RegId, use, p1}, {RegId, use/def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PARA0|{}" +k.prefixclass = l[28] +end +do local k = l[2312] +k.orgnames = l[4] +k.opclass = l[2313] +k.operands = l[2258] +k.sub = 8 +k.name = "VFMADD213PS_YYM" +end +do local k = l[2313] +k.isa = l[2237] +k.code = l[7] +k.id = 359 +k.layout = l[2238] +k.impregs = l[12] +k.flags = l[13] +k.parm = 160 +k.sig = "{fma3}|{{MemId, use, p1}, {RegId, use/def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-128.R2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PARA0|{rmem}" +k.prefixclass = l[226] +end +do local k = l[2314] +k.orgnames = l[4] +k.opclass = l[2315] +k.operands = l[2264] +k.sub = 8 +k.name = "VFMADD213PS_YYY" +end +do local k = l[2315] +k.isa = l[2237] +k.code = l[22] +k.id = 367 +k.layout = l[2248] +k.impregs = l[12] +k.flags = l[27] +k.parm = 160 +k.sig = "{fma3}|{{RegId, use, p1}, {RegId, use/def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-128.R2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PARA0|{}" +k.prefixclass = l[386] +end +do local k = l[2316] +k.orgnames = l[4] +k.opclass = l[2301] +k.operands = l[2277] +k.sub = 9 +k.name = "VFMADD213SD_XXM64" +end +do local k = l[2317] +k.orgnames = l[4] +k.opclass = l[2303] +k.operands = l[2252] +k.sub = 9 +k.name = "VFMADD213SD_XXX" +end +do local k = l[2318] +k.orgnames = l[4] +k.opclass = l[2305] +k.operands = l[2283] +k.sub = 9 +k.name = "VFMADD213SD_YYM64" +end +do local k = l[2319] +k.orgnames = l[4] +k.opclass = l[2307] +k.operands = l[2264] +k.sub = 9 +k.name = "VFMADD213SD_YYY" +end +do local k = l[2320] +k.orgnames = l[4] +k.opclass = l[2309] +k.operands = l[2289] +k.sub = 9 +k.name = "VFMADD213SS_XXM32" +end +do local k = l[2321] +k.orgnames = l[4] +k.opclass = l[2311] +k.operands = l[2252] +k.sub = 9 +k.name = "VFMADD213SS_XXX" +end +do local k = l[2322] +k.orgnames = l[4] +k.opclass = l[2313] +k.operands = l[2295] +k.sub = 9 +k.name = "VFMADD213SS_YYM32" +end +do local k = l[2323] +k.orgnames = l[4] +k.opclass = l[2315] +k.operands = l[2264] +k.sub = 9 +k.name = "VFMADD213SS_YYY" +end +do local k = l[2324] +k.orgnames = l[4] +k.opclass = l[2301] +k.operands = l[2242] +k.sub = 24 +k.name = "VFMADD231PD_XXM" +end +do local k = l[2325] +k.orgnames = l[4] +k.opclass = l[2303] +k.operands = l[2252] +k.sub = 24 +k.name = "VFMADD231PD_XXX" +end +do local k = l[2326] +k.orgnames = l[4] +k.opclass = l[2305] +k.operands = l[2258] +k.sub = 24 +k.name = "VFMADD231PD_YYM" +end +do local k = l[2327] +k.orgnames = l[4] +k.opclass = l[2307] +k.operands = l[2264] +k.sub = 24 +k.name = "VFMADD231PD_YYY" +end +do local k = l[2328] +k.orgnames = l[4] +k.opclass = l[2309] +k.operands = l[2242] +k.sub = 24 +k.name = "VFMADD231PS_XXM" +end +do local k = l[2329] +k.orgnames = l[4] +k.opclass = l[2311] +k.operands = l[2252] +k.sub = 24 +k.name = "VFMADD231PS_XXX" +end +do local k = l[2330] +k.orgnames = l[4] +k.opclass = l[2313] +k.operands = l[2258] +k.sub = 24 +k.name = "VFMADD231PS_YYM" +end +do local k = l[2331] +k.orgnames = l[4] +k.opclass = l[2315] +k.operands = l[2264] +k.sub = 24 +k.name = "VFMADD231PS_YYY" +end +do local k = l[2332] +k.orgnames = l[4] +k.opclass = l[2301] +k.operands = l[2277] +k.sub = 25 +k.name = "VFMADD231SD_XXM64" +end +do local k = l[2333] +k.orgnames = l[4] +k.opclass = l[2303] +k.operands = l[2252] +k.sub = 25 +k.name = "VFMADD231SD_XXX" +end +do local k = l[2334] +k.orgnames = l[4] +k.opclass = l[2305] +k.operands = l[2283] +k.sub = 25 +k.name = "VFMADD231SD_YYM64" +end +do local k = l[2335] +k.orgnames = l[4] +k.opclass = l[2307] +k.operands = l[2264] +k.sub = 25 +k.name = "VFMADD231SD_YYY" +end +do local k = l[2336] +k.orgnames = l[4] +k.opclass = l[2309] +k.operands = l[2289] +k.sub = 25 +k.name = "VFMADD231SS_XXM32" +end +do local k = l[2337] +k.orgnames = l[4] +k.opclass = l[2311] +k.operands = l[2252] +k.sub = 25 +k.name = "VFMADD231SS_XXX" +end +do local k = l[2338] +k.orgnames = l[4] +k.opclass = l[2313] +k.operands = l[2295] +k.sub = 25 +k.name = "VFMADD231SS_YYM32" +end +do local k = l[2339] +k.orgnames = l[4] +k.opclass = l[2315] +k.operands = l[2264] +k.sub = 25 +k.name = "VFMADD231SS_YYY" +end +do local k = l[2340] +k.orgnames = l[4] +k.opclass = l[2236] +k.operands = l[2242] +k.sub = 22 +k.name = "VFMADDSUB132PD_XXM" +end +do local k = l[2341] +k.orgnames = l[4] +k.opclass = l[2247] +k.operands = l[2252] +k.sub = 22 +k.name = "VFMADDSUB132PD_XXX" +end +do local k = l[2342] +k.orgnames = l[4] +k.opclass = l[2257] +k.operands = l[2258] +k.sub = 22 +k.name = "VFMADDSUB132PD_YYM" +end +do local k = l[2343] +k.orgnames = l[4] +k.opclass = l[2263] +k.operands = l[2264] +k.sub = 22 +k.name = "VFMADDSUB132PD_YYY" +end +do local k = l[2344] +k.orgnames = l[4] +k.opclass = l[2269] +k.operands = l[2242] +k.sub = 22 +k.name = "VFMADDSUB132PS_XXM" +end +do local k = l[2345] +k.orgnames = l[4] +k.opclass = l[2271] +k.operands = l[2252] +k.sub = 22 +k.name = "VFMADDSUB132PS_XXX" +end +do local k = l[2346] +k.orgnames = l[4] +k.opclass = l[2273] +k.operands = l[2258] +k.sub = 22 +k.name = "VFMADDSUB132PS_YYM" +end +do local k = l[2347] +k.orgnames = l[4] +k.opclass = l[2275] +k.operands = l[2264] +k.sub = 22 +k.name = "VFMADDSUB132PS_YYY" +end +do local k = l[2348] +k.orgnames = l[4] +k.opclass = l[2301] +k.operands = l[2242] +k.sub = 6 +k.name = "VFMADDSUB213PD_XXM" +end +do local k = l[2349] +k.orgnames = l[4] +k.opclass = l[2303] +k.operands = l[2252] +k.sub = 6 +k.name = "VFMADDSUB213PD_XXX" +end +do local k = l[2350] +k.orgnames = l[4] +k.opclass = l[2305] +k.operands = l[2258] +k.sub = 6 +k.name = "VFMADDSUB213PD_YYM" +end +do local k = l[2351] +k.orgnames = l[4] +k.opclass = l[2307] +k.operands = l[2264] +k.sub = 6 +k.name = "VFMADDSUB213PD_YYY" +end +do local k = l[2352] +k.orgnames = l[4] +k.opclass = l[2309] +k.operands = l[2242] +k.sub = 6 +k.name = "VFMADDSUB213PS_XXM" +end +do local k = l[2353] +k.orgnames = l[4] +k.opclass = l[2311] +k.operands = l[2252] +k.sub = 6 +k.name = "VFMADDSUB213PS_XXX" +end +do local k = l[2354] +k.orgnames = l[4] +k.opclass = l[2313] +k.operands = l[2258] +k.sub = 6 +k.name = "VFMADDSUB213PS_YYM" +end +do local k = l[2355] +k.orgnames = l[4] +k.opclass = l[2315] +k.operands = l[2264] +k.sub = 6 +k.name = "VFMADDSUB213PS_YYY" +end +do local k = l[2356] +k.orgnames = l[4] +k.opclass = l[2301] +k.operands = l[2242] +k.sub = 22 +k.name = "VFMADDSUB231PD_XXM" +end +do local k = l[2357] +k.orgnames = l[4] +k.opclass = l[2303] +k.operands = l[2252] +k.sub = 22 +k.name = "VFMADDSUB231PD_XXX" +end +do local k = l[2358] +k.orgnames = l[4] +k.opclass = l[2305] +k.operands = l[2258] +k.sub = 22 +k.name = "VFMADDSUB231PD_YYM" +end +do local k = l[2359] +k.orgnames = l[4] +k.opclass = l[2307] +k.operands = l[2264] +k.sub = 22 +k.name = "VFMADDSUB231PD_YYY" +end +do local k = l[2360] +k.orgnames = l[4] +k.opclass = l[2309] +k.operands = l[2242] +k.sub = 22 +k.name = "VFMADDSUB231PS_XXM" +end +do local k = l[2361] +k.orgnames = l[4] +k.opclass = l[2311] +k.operands = l[2252] +k.sub = 22 +k.name = "VFMADDSUB231PS_XXX" +end +do local k = l[2362] +k.orgnames = l[4] +k.opclass = l[2313] +k.operands = l[2258] +k.sub = 22 +k.name = "VFMADDSUB231PS_YYM" +end +do local k = l[2363] +k.orgnames = l[4] +k.opclass = l[2315] +k.operands = l[2264] +k.sub = 22 +k.name = "VFMADDSUB231PS_YYY" +end +do local k = l[2364] +k.orgnames = l[4] +k.opclass = l[2236] +k.operands = l[2242] +k.sub = 26 +k.name = "VFMSUB132PD_XXM" +end +do local k = l[2365] +k.orgnames = l[4] +k.opclass = l[2247] +k.operands = l[2252] +k.sub = 26 +k.name = "VFMSUB132PD_XXX" +end +do local k = l[2366] +k.orgnames = l[4] +k.opclass = l[2257] +k.operands = l[2258] +k.sub = 26 +k.name = "VFMSUB132PD_YYM" +end +do local k = l[2367] +k.orgnames = l[4] +k.opclass = l[2263] +k.operands = l[2264] +k.sub = 26 +k.name = "VFMSUB132PD_YYY" +end +do local k = l[2368] +k.orgnames = l[4] +k.opclass = l[2269] +k.operands = l[2242] +k.sub = 26 +k.name = "VFMSUB132PS_XXM" +end +do local k = l[2369] +k.orgnames = l[4] +k.opclass = l[2271] +k.operands = l[2252] +k.sub = 26 +k.name = "VFMSUB132PS_XXX" +end +do local k = l[2370] +k.orgnames = l[4] +k.opclass = l[2273] +k.operands = l[2258] +k.sub = 26 +k.name = "VFMSUB132PS_YYM" +end +do local k = l[2371] +k.orgnames = l[4] +k.opclass = l[2275] +k.operands = l[2264] +k.sub = 26 +k.name = "VFMSUB132PS_YYY" +end +do local k = l[2372] +k.orgnames = l[4] +k.opclass = l[2236] +k.operands = l[2277] +k.sub = 27 +k.name = "VFMSUB132SD_XXM64" +end +do local k = l[2373] +k.orgnames = l[4] +k.opclass = l[2247] +k.operands = l[2252] +k.sub = 27 +k.name = "VFMSUB132SD_XXX" +end +do local k = l[2374] +k.orgnames = l[4] +k.opclass = l[2257] +k.operands = l[2283] +k.sub = 27 +k.name = "VFMSUB132SD_YYM64" +end +do local k = l[2375] +k.orgnames = l[4] +k.opclass = l[2263] +k.operands = l[2264] +k.sub = 27 +k.name = "VFMSUB132SD_YYY" +end +do local k = l[2376] +k.orgnames = l[4] +k.opclass = l[2269] +k.operands = l[2289] +k.sub = 27 +k.name = "VFMSUB132SS_XXM32" +end +do local k = l[2377] +k.orgnames = l[4] +k.opclass = l[2271] +k.operands = l[2252] +k.sub = 27 +k.name = "VFMSUB132SS_XXX" +end +do local k = l[2378] +k.orgnames = l[4] +k.opclass = l[2273] +k.operands = l[2295] +k.sub = 27 +k.name = "VFMSUB132SS_YYM32" +end +do local k = l[2379] +k.orgnames = l[4] +k.opclass = l[2275] +k.operands = l[2264] +k.sub = 27 +k.name = "VFMSUB132SS_YYY" +end +do local k = l[2380] +k.orgnames = l[4] +k.opclass = l[2301] +k.operands = l[2242] +k.sub = 10 +k.name = "VFMSUB213PD_XXM" +end +do local k = l[2381] +k.orgnames = l[4] +k.opclass = l[2303] +k.operands = l[2252] +k.sub = 10 +k.name = "VFMSUB213PD_XXX" +end +do local k = l[2382] +k.orgnames = l[4] +k.opclass = l[2305] +k.operands = l[2258] +k.sub = 10 +k.name = "VFMSUB213PD_YYM" +end +do local k = l[2383] +k.orgnames = l[4] +k.opclass = l[2307] +k.operands = l[2264] +k.sub = 10 +k.name = "VFMSUB213PD_YYY" +end +do local k = l[2384] +k.orgnames = l[4] +k.opclass = l[2309] +k.operands = l[2242] +k.sub = 10 +k.name = "VFMSUB213PS_XXM" +end +do local k = l[2385] +k.orgnames = l[4] +k.opclass = l[2311] +k.operands = l[2252] +k.sub = 10 +k.name = "VFMSUB213PS_XXX" +end +do local k = l[2386] +k.orgnames = l[4] +k.opclass = l[2313] +k.operands = l[2258] +k.sub = 10 +k.name = "VFMSUB213PS_YYM" +end +do local k = l[2387] +k.orgnames = l[4] +k.opclass = l[2315] +k.operands = l[2264] +k.sub = 10 +k.name = "VFMSUB213PS_YYY" +end +do local k = l[2388] +k.orgnames = l[4] +k.opclass = l[2301] +k.operands = l[2277] +k.sub = 11 +k.name = "VFMSUB213SD_XXM64" +end +do local k = l[2389] +k.orgnames = l[4] +k.opclass = l[2303] +k.operands = l[2252] +k.sub = 11 +k.name = "VFMSUB213SD_XXX" +end +do local k = l[2390] +k.orgnames = l[4] +k.opclass = l[2305] +k.operands = l[2283] +k.sub = 11 +k.name = "VFMSUB213SD_YYM64" +end +do local k = l[2391] +k.orgnames = l[4] +k.opclass = l[2307] +k.operands = l[2264] +k.sub = 11 +k.name = "VFMSUB213SD_YYY" +end +do local k = l[2392] +k.orgnames = l[4] +k.opclass = l[2309] +k.operands = l[2289] +k.sub = 11 +k.name = "VFMSUB213SS_XXM32" +end +do local k = l[2393] +k.orgnames = l[4] +k.opclass = l[2311] +k.operands = l[2252] +k.sub = 11 +k.name = "VFMSUB213SS_XXX" +end +do local k = l[2394] +k.orgnames = l[4] +k.opclass = l[2313] +k.operands = l[2295] +k.sub = 11 +k.name = "VFMSUB213SS_YYM32" +end +do local k = l[2395] +k.orgnames = l[4] +k.opclass = l[2315] +k.operands = l[2264] +k.sub = 11 +k.name = "VFMSUB213SS_YYY" +end +do local k = l[2396] +k.orgnames = l[4] +k.opclass = l[2301] +k.operands = l[2242] +k.sub = 26 +k.name = "VFMSUB231PD_XXM" +end +do local k = l[2397] +k.orgnames = l[4] +k.opclass = l[2303] +k.operands = l[2252] +k.sub = 26 +k.name = "VFMSUB231PD_XXX" +end +do local k = l[2398] +k.orgnames = l[4] +k.opclass = l[2305] +k.operands = l[2258] +k.sub = 26 +k.name = "VFMSUB231PD_YYM" +end +do local k = l[2399] +k.orgnames = l[4] +k.opclass = l[2307] +k.operands = l[2264] +k.sub = 26 +k.name = "VFMSUB231PD_YYY" +end +do local k = l[2400] +k.orgnames = l[4] +k.opclass = l[2309] +k.operands = l[2242] +k.sub = 26 +k.name = "VFMSUB231PS_XXM" +end +do local k = l[2401] +k.orgnames = l[4] +k.opclass = l[2311] +k.operands = l[2252] +k.sub = 26 +k.name = "VFMSUB231PS_XXX" +end +do local k = l[2402] +k.orgnames = l[4] +k.opclass = l[2313] +k.operands = l[2258] +k.sub = 26 +k.name = "VFMSUB231PS_YYM" +end +do local k = l[2403] +k.orgnames = l[4] +k.opclass = l[2315] +k.operands = l[2264] +k.sub = 26 +k.name = "VFMSUB231PS_YYY" +end +do local k = l[2404] +k.orgnames = l[4] +k.opclass = l[2301] +k.operands = l[2277] +k.sub = 27 +k.name = "VFMSUB231SD_XXM64" +end +do local k = l[2405] +k.orgnames = l[4] +k.opclass = l[2303] +k.operands = l[2252] +k.sub = 27 +k.name = "VFMSUB231SD_XXX" +end +do local k = l[2406] +k.orgnames = l[4] +k.opclass = l[2305] +k.operands = l[2283] +k.sub = 27 +k.name = "VFMSUB231SD_YYM64" +end +do local k = l[2407] +k.orgnames = l[4] +k.opclass = l[2307] +k.operands = l[2264] +k.sub = 27 +k.name = "VFMSUB231SD_YYY" +end +do local k = l[2408] +k.orgnames = l[4] +k.opclass = l[2309] +k.operands = l[2289] +k.sub = 27 +k.name = "VFMSUB231SS_XXM32" +end +do local k = l[2409] +k.orgnames = l[4] +k.opclass = l[2311] +k.operands = l[2252] +k.sub = 27 +k.name = "VFMSUB231SS_XXX" +end +do local k = l[2410] +k.orgnames = l[4] +k.opclass = l[2313] +k.operands = l[2295] +k.sub = 27 +k.name = "VFMSUB231SS_YYM32" +end +do local k = l[2411] +k.orgnames = l[4] +k.opclass = l[2315] +k.operands = l[2264] +k.sub = 27 +k.name = "VFMSUB231SS_YYY" +end +do local k = l[2412] +k.orgnames = l[4] +k.opclass = l[2236] +k.operands = l[2242] +k.sub = 23 +k.name = "VFMSUBADD132PD_XXM" +end +do local k = l[2413] +k.orgnames = l[4] +k.opclass = l[2247] +k.operands = l[2252] +k.sub = 23 +k.name = "VFMSUBADD132PD_XXX" +end +do local k = l[2414] +k.orgnames = l[4] +k.opclass = l[2257] +k.operands = l[2258] +k.sub = 23 +k.name = "VFMSUBADD132PD_YYM" +end +do local k = l[2415] +k.orgnames = l[4] +k.opclass = l[2263] +k.operands = l[2264] +k.sub = 23 +k.name = "VFMSUBADD132PD_YYY" +end +do local k = l[2416] +k.orgnames = l[4] +k.opclass = l[2269] +k.operands = l[2242] +k.sub = 23 +k.name = "VFMSUBADD132PS_XXM" +end +do local k = l[2417] +k.orgnames = l[4] +k.opclass = l[2271] +k.operands = l[2252] +k.sub = 23 +k.name = "VFMSUBADD132PS_XXX" +end +do local k = l[2418] +k.orgnames = l[4] +k.opclass = l[2273] +k.operands = l[2258] +k.sub = 23 +k.name = "VFMSUBADD132PS_YYM" +end +do local k = l[2419] +k.orgnames = l[4] +k.opclass = l[2275] +k.operands = l[2264] +k.sub = 23 +k.name = "VFMSUBADD132PS_YYY" +end +do local k = l[2420] +k.orgnames = l[4] +k.opclass = l[2301] +k.operands = l[2242] +k.sub = 7 +k.name = "VFMSUBADD213PD_XXM" +end +do local k = l[2421] +k.orgnames = l[4] +k.opclass = l[2303] +k.operands = l[2252] +k.sub = 7 +k.name = "VFMSUBADD213PD_XXX" +end +do local k = l[2422] +k.orgnames = l[4] +k.opclass = l[2305] +k.operands = l[2258] +k.sub = 7 +k.name = "VFMSUBADD213PD_YYM" +end +do local k = l[2423] +k.orgnames = l[4] +k.opclass = l[2307] +k.operands = l[2264] +k.sub = 7 +k.name = "VFMSUBADD213PD_YYY" +end +do local k = l[2424] +k.orgnames = l[4] +k.opclass = l[2309] +k.operands = l[2242] +k.sub = 7 +k.name = "VFMSUBADD213PS_XXM" +end +do local k = l[2425] +k.orgnames = l[4] +k.opclass = l[2311] +k.operands = l[2252] +k.sub = 7 +k.name = "VFMSUBADD213PS_XXX" +end +do local k = l[2426] +k.orgnames = l[4] +k.opclass = l[2313] +k.operands = l[2258] +k.sub = 7 +k.name = "VFMSUBADD213PS_YYM" +end +do local k = l[2427] +k.orgnames = l[4] +k.opclass = l[2315] +k.operands = l[2264] +k.sub = 7 +k.name = "VFMSUBADD213PS_YYY" +end +do local k = l[2428] +k.orgnames = l[4] +k.opclass = l[2301] +k.operands = l[2242] +k.sub = 23 +k.name = "VFMSUBADD231PD_XXM" +end +do local k = l[2429] +k.orgnames = l[4] +k.opclass = l[2303] +k.operands = l[2252] +k.sub = 23 +k.name = "VFMSUBADD231PD_XXX" +end +do local k = l[2430] +k.orgnames = l[4] +k.opclass = l[2305] +k.operands = l[2258] +k.sub = 23 +k.name = "VFMSUBADD231PD_YYM" +end +do local k = l[2431] +k.orgnames = l[4] +k.opclass = l[2307] +k.operands = l[2264] +k.sub = 23 +k.name = "VFMSUBADD231PD_YYY" +end +do local k = l[2432] +k.orgnames = l[4] +k.opclass = l[2309] +k.operands = l[2242] +k.sub = 23 +k.name = "VFMSUBADD231PS_XXM" +end +do local k = l[2433] +k.orgnames = l[4] +k.opclass = l[2311] +k.operands = l[2252] +k.sub = 23 +k.name = "VFMSUBADD231PS_XXX" +end +do local k = l[2434] +k.orgnames = l[4] +k.opclass = l[2313] +k.operands = l[2258] +k.sub = 23 +k.name = "VFMSUBADD231PS_YYM" +end +do local k = l[2435] +k.orgnames = l[4] +k.opclass = l[2315] +k.operands = l[2264] +k.sub = 23 +k.name = "VFMSUBADD231PS_YYY" +end +do local k = l[2436] +k.orgnames = l[4] +k.opclass = l[2236] +k.operands = l[2242] +k.sub = 28 +k.name = "VFNMADD132PD_XXM" +end +do local k = l[2437] +k.orgnames = l[4] +k.opclass = l[2247] +k.operands = l[2252] +k.sub = 28 +k.name = "VFNMADD132PD_XXX" +end +do local k = l[2438] +k.orgnames = l[4] +k.opclass = l[2257] +k.operands = l[2258] +k.sub = 28 +k.name = "VFNMADD132PD_YYM" +end +do local k = l[2439] +k.orgnames = l[4] +k.opclass = l[2263] +k.operands = l[2264] +k.sub = 28 +k.name = "VFNMADD132PD_YYY" +end +do local k = l[2440] +k.orgnames = l[4] +k.opclass = l[2269] +k.operands = l[2242] +k.sub = 28 +k.name = "VFNMADD132PS_XXM" +end +do local k = l[2441] +k.orgnames = l[4] +k.opclass = l[2271] +k.operands = l[2252] +k.sub = 28 +k.name = "VFNMADD132PS_XXX" +end +do local k = l[2442] +k.orgnames = l[4] +k.opclass = l[2273] +k.operands = l[2258] +k.sub = 28 +k.name = "VFNMADD132PS_YYM" +end +do local k = l[2443] +k.orgnames = l[4] +k.opclass = l[2275] +k.operands = l[2264] +k.sub = 28 +k.name = "VFNMADD132PS_YYY" +end +do local k = l[2444] +k.orgnames = l[4] +k.opclass = l[2236] +k.operands = l[2277] +k.sub = 29 +k.name = "VFNMADD132SD_XXM64" +end +do local k = l[2445] +k.orgnames = l[4] +k.opclass = l[2247] +k.operands = l[2252] +k.sub = 29 +k.name = "VFNMADD132SD_XXX" +end +do local k = l[2446] +k.orgnames = l[4] +k.opclass = l[2257] +k.operands = l[2283] +k.sub = 29 +k.name = "VFNMADD132SD_YYM64" +end +do local k = l[2447] +k.orgnames = l[4] +k.opclass = l[2263] +k.operands = l[2264] +k.sub = 29 +k.name = "VFNMADD132SD_YYY" +end +do local k = l[2448] +k.orgnames = l[4] +k.opclass = l[2269] +k.operands = l[2289] +k.sub = 29 +k.name = "VFNMADD132SS_XXM32" +end +do local k = l[2449] +k.orgnames = l[4] +k.opclass = l[2271] +k.operands = l[2252] +k.sub = 29 +k.name = "VFNMADD132SS_XXX" +end +do local k = l[2450] +k.orgnames = l[4] +k.opclass = l[2273] +k.operands = l[2295] +k.sub = 29 +k.name = "VFNMADD132SS_YYM32" +end +do local k = l[2451] +k.orgnames = l[4] +k.opclass = l[2275] +k.operands = l[2264] +k.sub = 29 +k.name = "VFNMADD132SS_YYY" +end +do local k = l[2452] +k.orgnames = l[4] +k.opclass = l[2301] +k.operands = l[2242] +k.sub = 12 +k.name = "VFNMADD213PD_XXM" +end +do local k = l[2453] +k.orgnames = l[4] +k.opclass = l[2303] +k.operands = l[2252] +k.sub = 12 +k.name = "VFNMADD213PD_XXX" +end +do local k = l[2454] +k.orgnames = l[4] +k.opclass = l[2305] +k.operands = l[2258] +k.sub = 12 +k.name = "VFNMADD213PD_YYM" +end +do local k = l[2455] +k.orgnames = l[4] +k.opclass = l[2307] +k.operands = l[2264] +k.sub = 12 +k.name = "VFNMADD213PD_YYY" +end +do local k = l[2456] +k.orgnames = l[4] +k.opclass = l[2309] +k.operands = l[2242] +k.sub = 12 +k.name = "VFNMADD213PS_XXM" +end +do local k = l[2457] +k.orgnames = l[4] +k.opclass = l[2311] +k.operands = l[2252] +k.sub = 12 +k.name = "VFNMADD213PS_XXX" +end +do local k = l[2458] +k.orgnames = l[4] +k.opclass = l[2313] +k.operands = l[2258] +k.sub = 12 +k.name = "VFNMADD213PS_YYM" +end +do local k = l[2459] +k.orgnames = l[4] +k.opclass = l[2315] +k.operands = l[2264] +k.sub = 12 +k.name = "VFNMADD213PS_YYY" +end +do local k = l[2460] +k.orgnames = l[4] +k.opclass = l[2301] +k.operands = l[2277] +k.sub = 13 +k.name = "VFNMADD213SD_XXM64" +end +do local k = l[2461] +k.orgnames = l[4] +k.opclass = l[2303] +k.operands = l[2252] +k.sub = 13 +k.name = "VFNMADD213SD_XXX" +end +do local k = l[2462] +k.orgnames = l[4] +k.opclass = l[2305] +k.operands = l[2283] +k.sub = 13 +k.name = "VFNMADD213SD_YYM64" +end +do local k = l[2463] +k.orgnames = l[4] +k.opclass = l[2307] +k.operands = l[2264] +k.sub = 13 +k.name = "VFNMADD213SD_YYY" +end +do local k = l[2464] +k.orgnames = l[4] +k.opclass = l[2309] +k.operands = l[2289] +k.sub = 13 +k.name = "VFNMADD213SS_XXM32" +end +do local k = l[2465] +k.orgnames = l[4] +k.opclass = l[2311] +k.operands = l[2252] +k.sub = 13 +k.name = "VFNMADD213SS_XXX" +end +do local k = l[2466] +k.orgnames = l[4] +k.opclass = l[2313] +k.operands = l[2295] +k.sub = 13 +k.name = "VFNMADD213SS_YYM32" +end +do local k = l[2467] +k.orgnames = l[4] +k.opclass = l[2315] +k.operands = l[2264] +k.sub = 13 +k.name = "VFNMADD213SS_YYY" +end +do local k = l[2468] +k.orgnames = l[4] +k.opclass = l[2301] +k.operands = l[2242] +k.sub = 28 +k.name = "VFNMADD231PD_XXM" +end +do local k = l[2469] +k.orgnames = l[4] +k.opclass = l[2303] +k.operands = l[2252] +k.sub = 28 +k.name = "VFNMADD231PD_XXX" +end +do local k = l[2470] +k.orgnames = l[4] +k.opclass = l[2305] +k.operands = l[2258] +k.sub = 28 +k.name = "VFNMADD231PD_YYM" +end +do local k = l[2471] +k.orgnames = l[4] +k.opclass = l[2307] +k.operands = l[2264] +k.sub = 28 +k.name = "VFNMADD231PD_YYY" +end +do local k = l[2472] +k.orgnames = l[4] +k.opclass = l[2309] +k.operands = l[2242] +k.sub = 28 +k.name = "VFNMADD231PS_XXM" +end +do local k = l[2473] +k.orgnames = l[4] +k.opclass = l[2311] +k.operands = l[2252] +k.sub = 28 +k.name = "VFNMADD231PS_XXX" +end +do local k = l[2474] +k.orgnames = l[4] +k.opclass = l[2313] +k.operands = l[2258] +k.sub = 28 +k.name = "VFNMADD231PS_YYM" +end +do local k = l[2475] +k.orgnames = l[4] +k.opclass = l[2315] +k.operands = l[2264] +k.sub = 28 +k.name = "VFNMADD231PS_YYY" +end +do local k = l[2476] +k.orgnames = l[4] +k.opclass = l[2301] +k.operands = l[2277] +k.sub = 29 +k.name = "VFNMADD231SD_XXM64" +end +do local k = l[2477] +k.orgnames = l[4] +k.opclass = l[2303] +k.operands = l[2252] +k.sub = 29 +k.name = "VFNMADD231SD_XXX" +end +do local k = l[2478] +k.orgnames = l[4] +k.opclass = l[2305] +k.operands = l[2283] +k.sub = 29 +k.name = "VFNMADD231SD_YYM64" +end +do local k = l[2479] +k.orgnames = l[4] +k.opclass = l[2307] +k.operands = l[2264] +k.sub = 29 +k.name = "VFNMADD231SD_YYY" +end +do local k = l[2480] +k.orgnames = l[4] +k.opclass = l[2309] +k.operands = l[2289] +k.sub = 29 +k.name = "VFNMADD231SS_XXM32" +end +do local k = l[2481] +k.orgnames = l[4] +k.opclass = l[2311] +k.operands = l[2252] +k.sub = 29 +k.name = "VFNMADD231SS_XXX" +end +do local k = l[2482] +k.orgnames = l[4] +k.opclass = l[2313] +k.operands = l[2295] +k.sub = 29 +k.name = "VFNMADD231SS_YYM32" +end +do local k = l[2483] +k.orgnames = l[4] +k.opclass = l[2315] +k.operands = l[2264] +k.sub = 29 +k.name = "VFNMADD231SS_YYY" +end +do local k = l[2484] +k.orgnames = l[4] +k.opclass = l[2236] +k.operands = l[2242] +k.sub = 30 +k.name = "VFNMSUB132PD_XXM" +end +do local k = l[2485] +k.orgnames = l[4] +k.opclass = l[2247] +k.operands = l[2252] +k.sub = 30 +k.name = "VFNMSUB132PD_XXX" +end +do local k = l[2486] +k.orgnames = l[4] +k.opclass = l[2257] +k.operands = l[2258] +k.sub = 30 +k.name = "VFNMSUB132PD_YYM" +end +do local k = l[2487] +k.orgnames = l[4] +k.opclass = l[2263] +k.operands = l[2264] +k.sub = 30 +k.name = "VFNMSUB132PD_YYY" +end +do local k = l[2488] +k.orgnames = l[4] +k.opclass = l[2269] +k.operands = l[2242] +k.sub = 30 +k.name = "VFNMSUB132PS_XXM" +end +do local k = l[2489] +k.orgnames = l[4] +k.opclass = l[2271] +k.operands = l[2252] +k.sub = 30 +k.name = "VFNMSUB132PS_XXX" +end +do local k = l[2490] +k.orgnames = l[4] +k.opclass = l[2273] +k.operands = l[2258] +k.sub = 30 +k.name = "VFNMSUB132PS_YYM" +end +do local k = l[2491] +k.orgnames = l[4] +k.opclass = l[2275] +k.operands = l[2264] +k.sub = 30 +k.name = "VFNMSUB132PS_YYY" +end +do local k = l[2492] +k.orgnames = l[4] +k.opclass = l[2236] +k.operands = l[2277] +k.sub = 31 +k.name = "VFNMSUB132SD_XXM64" +end +do local k = l[2493] +k.orgnames = l[4] +k.opclass = l[2247] +k.operands = l[2252] +k.sub = 31 +k.name = "VFNMSUB132SD_XXX" +end +do local k = l[2494] +k.orgnames = l[4] +k.opclass = l[2257] +k.operands = l[2283] +k.sub = 31 +k.name = "VFNMSUB132SD_YYM64" +end +do local k = l[2495] +k.orgnames = l[4] +k.opclass = l[2263] +k.operands = l[2264] +k.sub = 31 +k.name = "VFNMSUB132SD_YYY" +end +do local k = l[2496] +k.orgnames = l[4] +k.opclass = l[2269] +k.operands = l[2289] +k.sub = 31 +k.name = "VFNMSUB132SS_XXM32" +end +do local k = l[2497] +k.orgnames = l[4] +k.opclass = l[2271] +k.operands = l[2252] +k.sub = 31 +k.name = "VFNMSUB132SS_XXX" +end +do local k = l[2498] +k.orgnames = l[4] +k.opclass = l[2273] +k.operands = l[2295] +k.sub = 31 +k.name = "VFNMSUB132SS_YYM32" +end +do local k = l[2499] +k.orgnames = l[4] +k.opclass = l[2275] +k.operands = l[2264] +k.sub = 31 +k.name = "VFNMSUB132SS_YYY" +end +do local k = l[2500] +k.orgnames = l[4] +k.opclass = l[2301] +k.operands = l[2242] +k.sub = 14 +k.name = "VFNMSUB213PD_XXM" +end +do local k = l[2501] +k.orgnames = l[4] +k.opclass = l[2303] +k.operands = l[2252] +k.sub = 14 +k.name = "VFNMSUB213PD_XXX" +end +do local k = l[2502] +k.orgnames = l[4] +k.opclass = l[2305] +k.operands = l[2258] +k.sub = 14 +k.name = "VFNMSUB213PD_YYM" +end +do local k = l[2503] +k.orgnames = l[4] +k.opclass = l[2307] +k.operands = l[2264] +k.sub = 14 +k.name = "VFNMSUB213PD_YYY" +end +do local k = l[2504] +k.orgnames = l[4] +k.opclass = l[2309] +k.operands = l[2242] +k.sub = 14 +k.name = "VFNMSUB213PS_XXM" +end +do local k = l[2505] +k.orgnames = l[4] +k.opclass = l[2311] +k.operands = l[2252] +k.sub = 14 +k.name = "VFNMSUB213PS_XXX" +end +do local k = l[2506] +k.orgnames = l[4] +k.opclass = l[2313] +k.operands = l[2258] +k.sub = 14 +k.name = "VFNMSUB213PS_YYM" +end +do local k = l[2507] +k.orgnames = l[4] +k.opclass = l[2315] +k.operands = l[2264] +k.sub = 14 +k.name = "VFNMSUB213PS_YYY" +end +do local k = l[2508] +k.orgnames = l[4] +k.opclass = l[2301] +k.operands = l[2277] +k.sub = 15 +k.name = "VFNMSUB213SD_XXM64" +end +do local k = l[2509] +k.orgnames = l[4] +k.opclass = l[2303] +k.operands = l[2252] +k.sub = 15 +k.name = "VFNMSUB213SD_XXX" +end +do local k = l[2510] +k.orgnames = l[4] +k.opclass = l[2305] +k.operands = l[2283] +k.sub = 15 +k.name = "VFNMSUB213SD_YYM64" +end +do local k = l[2511] +k.orgnames = l[4] +k.opclass = l[2307] +k.operands = l[2264] +k.sub = 15 +k.name = "VFNMSUB213SD_YYY" +end +do local k = l[2512] +k.orgnames = l[4] +k.opclass = l[2309] +k.operands = l[2289] +k.sub = 15 +k.name = "VFNMSUB213SS_XXM32" +end +do local k = l[2513] +k.orgnames = l[4] +k.opclass = l[2311] +k.operands = l[2252] +k.sub = 15 +k.name = "VFNMSUB213SS_XXX" +end +do local k = l[2514] +k.orgnames = l[4] +k.opclass = l[2313] +k.operands = l[2295] +k.sub = 15 +k.name = "VFNMSUB213SS_YYM32" +end +do local k = l[2515] +k.orgnames = l[4] +k.opclass = l[2315] +k.operands = l[2264] +k.sub = 15 +k.name = "VFNMSUB213SS_YYY" +end +do local k = l[2516] +k.orgnames = l[4] +k.opclass = l[2301] +k.operands = l[2242] +k.sub = 30 +k.name = "VFNMSUB231PD_XXM" +end +do local k = l[2517] +k.orgnames = l[4] +k.opclass = l[2303] +k.operands = l[2252] +k.sub = 30 +k.name = "VFNMSUB231PD_XXX" +end +do local k = l[2518] +k.orgnames = l[4] +k.opclass = l[2305] +k.operands = l[2258] +k.sub = 30 +k.name = "VFNMSUB231PD_YYM" +end +do local k = l[2519] +k.orgnames = l[4] +k.opclass = l[2307] +k.operands = l[2264] +k.sub = 30 +k.name = "VFNMSUB231PD_YYY" +end +do local k = l[2520] +k.orgnames = l[4] +k.opclass = l[2309] +k.operands = l[2242] +k.sub = 30 +k.name = "VFNMSUB231PS_XXM" +end +do local k = l[2521] +k.orgnames = l[4] +k.opclass = l[2311] +k.operands = l[2252] +k.sub = 30 +k.name = "VFNMSUB231PS_XXX" +end +do local k = l[2522] +k.orgnames = l[4] +k.opclass = l[2313] +k.operands = l[2258] +k.sub = 30 +k.name = "VFNMSUB231PS_YYM" +end +do local k = l[2523] +k.orgnames = l[4] +k.opclass = l[2315] +k.operands = l[2264] +k.sub = 30 +k.name = "VFNMSUB231PS_YYY" +end +do local k = l[2524] +k.orgnames = l[4] +k.opclass = l[2301] +k.operands = l[2277] +k.sub = 31 +k.name = "VFNMSUB231SD_XXM64" +end +do local k = l[2525] +k.orgnames = l[4] +k.opclass = l[2303] +k.operands = l[2252] +k.sub = 31 +k.name = "VFNMSUB231SD_XXX" +end +do local k = l[2526] +k.orgnames = l[4] +k.opclass = l[2305] +k.operands = l[2283] +k.sub = 31 +k.name = "VFNMSUB231SD_YYM64" +end +do local k = l[2527] +k.orgnames = l[4] +k.opclass = l[2307] +k.operands = l[2264] +k.sub = 31 +k.name = "VFNMSUB231SD_YYY" +end +do local k = l[2528] +k.orgnames = l[4] +k.opclass = l[2309] +k.operands = l[2289] +k.sub = 31 +k.name = "VFNMSUB231SS_XXM32" +end +do local k = l[2529] +k.orgnames = l[4] +k.opclass = l[2311] +k.operands = l[2252] +k.sub = 31 +k.name = "VFNMSUB231SS_XXX" +end +do local k = l[2530] +k.orgnames = l[4] +k.opclass = l[2313] +k.operands = l[2295] +k.sub = 31 +k.name = "VFNMSUB231SS_YYM32" +end +do local k = l[2531] +k.orgnames = l[4] +k.opclass = l[2315] +k.operands = l[2264] +k.sub = 31 +k.name = "VFNMSUB231SS_YYY" +end +do local k = l[2532] +k.orgnames = l[1958] +k.opclass = l[2533] +k.operands = l[1964] +k.name = "XACQUIRE" +k.sub = 18 +end +do local k = l[2533] +k.isa = l[2534] +k.code = l[1960] +k.id = 374 +k.layout = l[1961] +k.impregs = l[12] +k.flags = l[27] +k.parm = 224 +k.sig = "{hle}|{}|{}|rex|{$parm+$sub}|PARE0|{}" +k.prefixclass = l[2535] +end +do local k = l[2534] +k[1] = "hle" +k.id = 22 +k.sig = "{hle}" +end +do local k = l[2535] +k.extopcode = "" +k.rex = l[1978] +k.id = 3 +k.pref = "" +k.sig = "rex" +end +do local k = l[2536] +k.orgnames = l[1958] +k.opclass = l[2533] +k.operands = l[1964] +k.name = "XRELEASE" +k.sub = 19 +end +do local k = l[2537] +k.orgnames = l[41] +k.opclass = l[2538] +k.operands = l[858] +k.sub = 29 +k.name = "LZCNT_WM" +end +do local k = l[2538] +k.isa = l[2539] +k.code = l[7] +k.id = 375 +k.layout = l[43] +k.impregs = l[697] +k.flags = l[699] +k.parm = 160 +k.sig = "{lzcnt}|{{MemId, use, p1}, {RegId, def, p2}}|{{FLAGS, def}}|f3-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARA0|{rmem, wflags}" +k.prefixclass = l[2540] +end +do local k = l[2539] +k[1] = "lzcnt" +k.id = 7 +k.sig = "{lzcnt}" +end +do local k = l[2540] +k.extopcode = "0f" +k.rex = l[93] +k.id = 47 +k.pref = "f3" +k.sig = "f3-rexR2M1-0f" +end +do local k = l[2541] +k.orgnames = l[41] +k.opclass = l[2542] +k.operands = l[2018] +k.sub = 29 +k.name = "LZCNT_WW" +end +do local k = l[2542] +k.isa = l[2539] +k.code = l[22] +k.id = 376 +k.layout = l[53] +k.impregs = l[697] +k.flags = l[709] +k.parm = 160 +k.sig = "{lzcnt}|{{RegId, use, p1}, {RegId, def, p2}}|{{FLAGS, def}}|f3-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PARA0|{wflags}" +k.prefixclass = l[2543] +end +do local k = l[2543] +k.extopcode = "0f" +k.rex = l[103] +k.id = 12 +k.pref = "f3" +k.sig = "f3-rexR2B1-0f" +end +do local k = l[2544] +k.orgnames = l[41] +k.opclass = l[2545] +k.operands = l[2141] +k.sub = 16 +k.name = "MOVBE_HM" +end +do local k = l[2545] +k.isa = l[2546] +k.code = l[7] +k.id = 380 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[13] +k.parm = 224 +k.sig = "{movbe}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|66-rexR2M1-0f38|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{rmem}" +k.prefixclass = l[92] +end +do local k = l[2546] +k[1] = "movbe" +k.id = 17 +k.sig = "{movbe}" +end +do local k = l[2547] +k.orgnames = l[41] +k.opclass = l[2548] +k.operands = l[2549] +k.sub = 17 +k.name = "MOVBE_MH" +end +do local k = l[2548] +k.isa = l[2546] +k.code = l[7] +k.id = 378 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 224 +k.sig = "{movbe}|{{MemId, use, p1}, {RegId, use, p2}}|{}|66-rexR2M1-0f38|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{wmem}" +k.prefixclass = l[92] +end +do local k = l[2549] +k[1] = l[2550] +k[2] = l[2551] +k.id = 109 +k.sig = "{{mode = i,type = i16*,name = p1}, {mode = i,type = GR16,name = p2}}" +end +do local k = l[2550] +k.mode = "i" +k.type = "i16*" +k.name = "p1" +end +do local k = l[2551] +k.mode = "i" +k.type = "GR16" +k.name = "p2" +end +do local k = l[2552] +k.orgnames = l[41] +k.opclass = l[2553] +k.operands = l[2555] +k.sub = 17 +k.name = "MOVBE_MW" +end +do local k = l[2553] +k.isa = l[2546] +k.code = l[7] +k.id = 379 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 224 +k.sig = "{movbe}|{{MemId, use, p1}, {RegId, use, p2}}|{}|rexR2M1-0f38|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{wmem}" +k.prefixclass = l[2554] +end +do local k = l[2554] +k.extopcode = "0f38" +k.rex = l[93] +k.id = 46 +k.pref = "" +k.sig = "rexR2M1-0f38" +end +do local k = l[2555] +k[1] = l[2556] +k[2] = l[2557] +k.id = 124 +k.sig = "{{mode = i,type = i32*,name = p1}, {mode = i,type = GR32,name = p2}}" +end +do local k = l[2556] +k.mode = "i" +k.type = "i32*" +k.name = "p1" +end +do local k = l[2557] +k.mode = "i" +k.type = "GR32" +k.name = "p2" +end +do local k = l[2558] +k.orgnames = l[41] +k.opclass = l[2559] +k.operands = l[858] +k.sub = 16 +k.name = "MOVBE_WM" +end +do local k = l[2559] +k.isa = l[2546] +k.code = l[7] +k.id = 377 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 224 +k.sig = "{movbe}|{{MemId, use, p1}, {RegId, def, p2}}|{}|rexR2M1-0f38|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{rmem}" +k.prefixclass = l[2554] +end +do local k = l[2560] +k.orgnames = l[41] +k.opclass = l[2561] +k.operands = l[858] +k.name = "POPCNT_WM" +end +do local k = l[2561] +k.isa = l[2562] +k.code = l[1000] +k.id = 381 +k.layout = l[43] +k.impregs = l[697] +k.flags = l[699] +k.parm = 184 +k.sig = "{popcnt}|{{MemId, use, p1}, {RegId, def, p2}}|{{FLAGS, def}}|f3-rexR2M1-0f|{$parm, !RRMM($p2,$p1)}|PARB8|{rmem, wflags}" +k.prefixclass = l[2540] +end +do local k = l[2562] +k[1] = "popcnt" +k.id = 4 +k.sig = "{popcnt}" +end +do local k = l[2563] +k.orgnames = l[41] +k.opclass = l[2564] +k.operands = l[2018] +k.name = "POPCNT_WW" +end +do local k = l[2564] +k.isa = l[2562] +k.code = l[1016] +k.id = 382 +k.layout = l[53] +k.impregs = l[697] +k.flags = l[709] +k.parm = 184 +k.sig = "{popcnt}|{{RegId, use, p1}, {RegId, def, p2}}|{{FLAGS, def}}|f3-rexR2B1-0f|{$parm, !RRMR($p2,$p1)}|PARB8|{wflags}" +k.prefixclass = l[2543] +end +do local k = l[2565] +k.orgnames = l[2566] +k.opclass = l[2567] +k.operands = l[2573] +k.sub = 6 +k.name = "RDRAND_W" +end +do local k = l[2566] +k[1] = "dst" +k.id = 3 +k.sig = "{dst}" +end +do local k = l[2567] +k.isa = l[2568] +k.code = l[2016] +k.id = 383 +k.layout = l[2569] +k.impregs = l[697] +k.flags = l[709] +k.parm = 199 +k.sig = "{rdrand}|{{RegId, def, p1}}|{{FLAGS, def}}|rexB1-0f|{$parm, !RRMR($sub,$p1)}|PARC7|{wflags}" +k.prefixclass = l[2571] +end +do local k = l[2568] +k[1] = "rdrand" +k.id = 8 +k.sig = "{rdrand}" +end +do local k = l[2569] +k[1] = l[2570] +k.id = 14 +k.sig = "{{RegId, def, p1}}" +end +do local k = l[2570] +k[1] = "RegId" +k[2] = "def" +k[3] = "p1" +end +do local k = l[2571] +k.extopcode = "0f" +k.rex = l[2572] +k.id = 11 +k.pref = "" +k.sig = "rexB1-0f" +end +do local k = l[2572] +k.r64 = "0" +k.rm = "p1" +k.reg = "0" +k.mode = "rr" +k.sig = "{reg = 0,mode = rr,rm = p1,r64 = 0}" +k.id = 2 +end +do local k = l[2573] +k[1] = l[2574] +k.id = 40 +k.sig = "{{mode = o,type = GR32,name = p1}}" +end +do local k = l[2574] +k.mode = "o" +k.type = "GR32" +k.name = "p1" +end +do local k = l[2575] +k.orgnames = l[2576] +k.opclass = l[2577] +k.operands = l[2584] +k.name = "RDTSCP" +k.sub = 25 +end +do local k = l[2576] +k[1] = "lo" +k[2] = "hi" +k[3] = "aux" +k.id = 24 +k.sig = "{lo, hi, aux}" +end +do local k = l[2577] +k.isa = l[2578] +k.code = l[2579] +k.id = 384 +k.layout = l[1961] +k.impregs = l[2580] +k.flags = l[27] +k.parm = 224 +k.sig = "{rdtscp}|{}|{{rax, def}, {rdx, def}, {rcx, def}}|rex-0f|{0x01, $parm+$sub}|PARE0|{}" +k.prefixclass = l[1977] +end +do local k = l[2578] +k[1] = "rdtscp" +k.id = 26 +k.sig = "{rdtscp}" +end +do local k = l[2579] +k[1] = "0x01" +k[2] = "$parm+$sub" +k.id = 46 +k.sig = "{0x01, $parm+$sub}" +end +do local k = l[2580] +k[1] = l[2581] +k[2] = l[2582] +k[3] = l[2583] +k.id = 20 +k.sig = "{{rax, def}, {rdx, def}, {rcx, def}}" +end +do local k = l[2581] +k[1] = "rax" +k[2] = "def" +end +do local k = l[2582] +k[1] = "rdx" +k[2] = "def" +end +do local k = l[2583] +k[1] = "rcx" +k[2] = "def" +end +do local k = l[2584] +k[1] = l[2585] +k[2] = l[2586] +k[3] = l[2587] +k.id = 181 +k.sig = "{{mode = o,type = GR32,name = p1,fixed = rax}, {mode = o,type = GR32,name = p2,fixed = rdx}, {mode = o,type = GR32,name = p3,fixed = rcx}}" +end +do local k = l[2585] +k.mode = "o" +k.type = "GR32" +k.name = "p1" +k.fixed = "rax" +end +do local k = l[2586] +k.mode = "o" +k.type = "GR32" +k.name = "p2" +k.fixed = "rdx" +end +do local k = l[2587] +k.mode = "o" +k.type = "GR32" +k.name = "p3" +k.fixed = "rcx" +end +do local k = l[2588] +k.orgnames = l[2589] +k.opclass = l[2590] +k.operands = l[2595] +k.name = "RDTSC" +k.sub = 17 +end +do local k = l[2589] +k[1] = "lo" +k[2] = "hi" +k.id = 23 +k.sig = "{lo, hi}" +end +do local k = l[2590] +k.isa = l[2591] +k.code = l[1960] +k.id = 385 +k.layout = l[1961] +k.impregs = l[2592] +k.flags = l[27] +k.parm = 32 +k.sig = "{rdtsc}|{}|{{rax, def}, {rdx, def}}|rex-0f|{$parm+$sub}|PAR20|{}" +k.prefixclass = l[1977] +end +do local k = l[2591] +k[1] = "rdtsc" +k.id = 25 +k.sig = "{rdtsc}" +end +do local k = l[2592] +k[1] = l[2593] +k[2] = l[2594] +k.id = 19 +k.sig = "{{rax, def}, {rdx, def}}" +end +do local k = l[2593] +k[1] = "rax" +k[2] = "def" +end +do local k = l[2594] +k[1] = "rdx" +k[2] = "def" +end +do local k = l[2595] +k[1] = l[2596] +k[2] = l[2597] +k.id = 180 +k.sig = "{{mode = o,type = GR32,name = p1,fixed = rax}, {mode = o,type = GR32,name = p2,fixed = rdx}}" +end +do local k = l[2596] +k.mode = "o" +k.type = "GR32" +k.name = "p1" +k.fixed = "rax" +end +do local k = l[2597] +k.mode = "o" +k.type = "GR32" +k.name = "p2" +k.fixed = "rdx" +end +do local k = l[2598] +k.sub = 7 +k.orgnames = l[2599] +k.opclass = l[2600] +k.operands = l[2605] +k.name = "XABORT_I" +end +do local k = l[2599] +k[1] = "imm" +k.id = 19 +k.sig = "{imm}" +end +do local k = l[2600] +k.isa = l[2601] +k.code = l[2602] +k.id = 388 +k.layout = l[2603] +k.impregs = l[12] +k.flags = l[27] +k.parm = 198 +k.sig = "{rtm}|{{Imm, use, p1, 0}}|{}|rex|{$parm, !RRMR($sub,0), !I8($p1)}|PARC6|{}" +k.prefixclass = l[2535] +end +do local k = l[2601] +k[1] = "rtm" +k.id = 23 +k.sig = "{rtm}" +end +do local k = l[2602] +k[1] = "$parm" +k[2] = "!RRMR($sub,0)" +k[3] = "!I8($p1)" +k.id = 43 +k.sig = "{$parm, !RRMR($sub,0), !I8($p1)}" +end +do local k = l[2603] +k[1] = l[2604] +k.id = 3 +k.sig = "{{Imm, use, p1, 0}}" +end +do local k = l[2604] +k[1] = "Imm" +k[2] = "use" +k[3] = "p1" +k[4] = 0 +end +do local k = l[2605] +k[1] = l[2606] +k.id = 176 +k.sig = "{{mode = i,type = i8,name = p1}}" +end +do local k = l[2606] +k.mode = "i" +k.type = "i8" +k.name = "p1" +end +do local k = l[2607] +k.orgnames = l[2608] +k.opclass = l[2609] +k.operands = l[2615] +k.name = "XBEGIN_REL16" +k.sub = 7 +end +do local k = l[2608] +k[1] = "fback" +k.id = 20 +k.sig = "{fback}" +end +do local k = l[2609] +k.isa = l[2601] +k.code = l[2610] +k.id = 386 +k.layout = l[2611] +k.impregs = l[12] +k.flags = l[2613] +k.parm = 199 +k.sig = "{rtm}|{{BBId, use, p1}}|{}|66-rex|{$parm, !RRMR($sub,0), !REL16($p1)}|PARC7|{cf_fallthru, cf_jmp}" +k.prefixclass = l[2614] +end +do local k = l[2610] +k[1] = "$parm" +k[2] = "!RRMR($sub,0)" +k[3] = "!REL16($p1)" +k.id = 44 +k.sig = "{$parm, !RRMR($sub,0), !REL16($p1)}" +end +do local k = l[2611] +k[1] = l[2612] +k.id = 33 +k.sig = "{{BBId, use, p1}}" +end +do local k = l[2612] +k[1] = "BBId" +k[2] = "use" +k[3] = "p1" +end +do local k = l[2613] +k[1] = "cf_fallthru" +k[2] = "cf_jmp" +k.id = 22 +k.sig = "{cf_fallthru, cf_jmp}" +end +do local k = l[2614] +k.extopcode = "" +k.rex = l[1978] +k.id = 8 +k.pref = "66" +k.sig = "66-rex" +end +do local k = l[2615] +k[1] = l[2616] +k.id = 177 +k.sig = "{{mode = i,type = BB,name = p1}}" +end +do local k = l[2616] +k.mode = "i" +k.type = "BB" +k.name = "p1" +end +do local k = l[2617] +k.orgnames = l[2608] +k.opclass = l[2618] +k.operands = l[2615] +k.name = "XBEGIN_REL32" +k.sub = 7 +end +do local k = l[2618] +k.isa = l[2601] +k.code = l[2619] +k.id = 387 +k.layout = l[2611] +k.impregs = l[12] +k.flags = l[2613] +k.parm = 199 +k.sig = "{rtm}|{{BBId, use, p1}}|{}|rex|{$parm, !RRMR($sub,0), !REL32($p1)}|PARC7|{cf_fallthru, cf_jmp}" +k.prefixclass = l[2535] +end +do local k = l[2619] +k[1] = "$parm" +k[2] = "!RRMR($sub,0)" +k[3] = "!REL32($p1)" +k.id = 45 +k.sig = "{$parm, !RRMR($sub,0), !REL32($p1)}" +end +do local k = l[2620] +k.orgnames = l[1958] +k.opclass = l[2621] +k.operands = l[1964] +k.name = "XEND" +k.sub = 21 +end +do local k = l[2621] +k.isa = l[2601] +k.code = l[2579] +k.id = 390 +k.layout = l[1961] +k.impregs = l[12] +k.flags = l[27] +k.parm = 192 +k.sig = "{rtm}|{}|{}|rex-0f|{0x01, $parm+$sub}|PARC0|{}" +k.prefixclass = l[1977] +end +do local k = l[2622] +k.orgnames = l[1958] +k.opclass = l[2623] +k.operands = l[1964] +k.name = "XTEST" +k.sub = 22 +end +do local k = l[2623] +k.isa = l[2601] +k.code = l[2579] +k.id = 389 +k.layout = l[1961] +k.impregs = l[697] +k.flags = l[709] +k.parm = 192 +k.sig = "{rtm}|{}|{{FLAGS, def}}|rex-0f|{0x01, $parm+$sub}|PARC0|{wflags}" +k.prefixclass = l[1977] +end +do local k = l[2624] +k.orgnames = l[41] +k.opclass = l[2625] +k.operands = l[339] +k.sub = 6 +k.name = "CVTDQ2PD_XM64" +end +do local k = l[2625] +k.isa = l[2626] +k.code = l[7] +k.id = 404 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 224 +k.sig = "{sse2}|{{MemId, use, p1}, {RegId, def, p2}}|{}|f3-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{rmem}" +k.prefixclass = l[2540] +end +do local k = l[2626] +k[1] = "sse2" +k.id = 20 +k.sig = "{sse2}" +end +do local k = l[2627] +k.orgnames = l[41] +k.opclass = l[2628] +k.operands = l[58] +k.sub = 6 +k.name = "CVTDQ2PD_XX" +end +do local k = l[2628] +k.isa = l[2626] +k.code = l[22] +k.id = 440 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 224 +k.sig = "{sse2}|{{RegId, use, p1}, {RegId, def, p2}}|{}|f3-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PARE0|{}" +k.prefixclass = l[2543] +end +do local k = l[2629] +k.orgnames = l[41] +k.opclass = l[2630] +k.operands = l[48] +k.sub = 27 +k.name = "CVTDQ2PS_XM" +end +do local k = l[2630] +k.isa = l[2626] +k.code = l[7] +k.id = 407 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{sse2}|{{MemId, use, p1}, {RegId, def, p2}}|{}|rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR40|{rmem}" +k.prefixclass = l[2027] +end +do local k = l[2631] +k.orgnames = l[41] +k.opclass = l[2632] +k.operands = l[58] +k.sub = 27 +k.name = "CVTDQ2PS_XX" +end +do local k = l[2632] +k.isa = l[2626] +k.code = l[22] +k.id = 443 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{sse2}|{{RegId, use, p1}, {RegId, def, p2}}|{}|rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR40|{}" +k.prefixclass = l[2030] +end +do local k = l[2633] +k.orgnames = l[41] +k.opclass = l[2634] +k.operands = l[48] +k.sub = 6 +k.name = "CVTPD2DQ_XM" +end +do local k = l[2634] +k.isa = l[2626] +k.code = l[7] +k.id = 399 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 224 +k.sig = "{sse2}|{{MemId, use, p1}, {RegId, def, p2}}|{}|f2-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{rmem}" +k.prefixclass = l[2635] +end +do local k = l[2635] +k.extopcode = "0f" +k.rex = l[93] +k.id = 116 +k.pref = "f2" +k.sig = "f2-rexR2M1-0f" +end +do local k = l[2636] +k.orgnames = l[41] +k.opclass = l[2637] +k.operands = l[58] +k.sub = 6 +k.name = "CVTPD2DQ_XX" +end +do local k = l[2637] +k.isa = l[2626] +k.code = l[22] +k.id = 435 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 224 +k.sig = "{sse2}|{{RegId, use, p1}, {RegId, def, p2}}|{}|f2-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PARE0|{}" +k.prefixclass = l[2638] +end +do local k = l[2638] +k.extopcode = "0f" +k.rex = l[103] +k.id = 114 +k.pref = "f2" +k.sig = "f2-rexR2B1-0f" +end +do local k = l[2639] +k.orgnames = l[41] +k.opclass = l[2640] +k.operands = l[48] +k.sub = 26 +k.name = "CVTPD2PS_XM" +end +do local k = l[2640] +k.isa = l[2626] +k.code = l[7] +k.id = 394 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{sse2}|{{MemId, use, p1}, {RegId, def, p2}}|{}|66-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR40|{rmem}" +k.prefixclass = l[2140] +end +do local k = l[2641] +k.orgnames = l[41] +k.opclass = l[2642] +k.operands = l[58] +k.sub = 26 +k.name = "CVTPD2PS_XX" +end +do local k = l[2642] +k.isa = l[2626] +k.code = l[22] +k.id = 429 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{sse2}|{{RegId, use, p1}, {RegId, def, p2}}|{}|66-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR40|{}" +k.prefixclass = l[2133] +end +do local k = l[2643] +k.orgnames = l[41] +k.opclass = l[2640] +k.operands = l[48] +k.sub = 27 +k.name = "CVTPS2DQ_XM" +end +do local k = l[2644] +k.orgnames = l[41] +k.opclass = l[2642] +k.operands = l[58] +k.sub = 27 +k.name = "CVTPS2DQ_XX" +end +do local k = l[2645] +k.orgnames = l[41] +k.opclass = l[2630] +k.operands = l[339] +k.sub = 26 +k.name = "CVTPS2PD_XM64" +end +do local k = l[2646] +k.orgnames = l[41] +k.opclass = l[2632] +k.operands = l[58] +k.sub = 26 +k.name = "CVTPS2PD_XX" +end +do local k = l[2647] +k.orgnames = l[41] +k.opclass = l[2648] +k.operands = l[791] +k.sub = 13 +k.name = "CVTSD2SI_DM64" +end +do local k = l[2648] +k.isa = l[2626] +k.code = l[7] +k.id = 400 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 32 +k.sig = "{sse2}|{{MemId, use, p1}, {RegId, def, p2}}|{}|f2-rexWR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{rmem}" +k.prefixclass = l[2649] +end +do local k = l[2649] +k.extopcode = "0f" +k.rex = l[2650] +k.id = 117 +k.pref = "f2" +k.sig = "f2-rexWR2M1-0f" +end +do local k = l[2650] +k.r64 = "1" +k.rm = "p1" +k.reg = "p2" +k.mode = "rm" +k.sig = "{reg = p2,mode = rm,rm = p1,r64 = 1}" +k.id = 20 +end +do local k = l[2651] +k.orgnames = l[41] +k.opclass = l[2652] +k.operands = l[798] +k.sub = 13 +k.name = "CVTSD2SI_DX" +end +do local k = l[2652] +k.isa = l[2626] +k.code = l[22] +k.id = 436 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 32 +k.sig = "{sse2}|{{RegId, use, p1}, {RegId, def, p2}}|{}|f2-rexWR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR20|{}" +k.prefixclass = l[2653] +end +do local k = l[2653] +k.extopcode = "0f" +k.rex = l[2654] +k.id = 115 +k.pref = "f2" +k.sig = "f2-rexWR2B1-0f" +end +do local k = l[2654] +k.r64 = "1" +k.rm = "p1" +k.reg = "p2" +k.mode = "rr" +k.sig = "{reg = p2,mode = rr,rm = p1,r64 = 1}" +k.id = 8 +end +do local k = l[2655] +k.orgnames = l[41] +k.opclass = l[2656] +k.operands = l[803] +k.sub = 13 +k.name = "CVTSD2SI_WM64" +end +do local k = l[2656] +k.isa = l[2626] +k.code = l[7] +k.id = 398 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 32 +k.sig = "{sse2}|{{MemId, use, p1}, {RegId, def, p2}}|{}|f2-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{rmem}" +k.prefixclass = l[2635] +end +do local k = l[2657] +k.orgnames = l[41] +k.opclass = l[2658] +k.operands = l[808] +k.sub = 13 +k.name = "CVTSD2SI_WX" +end +do local k = l[2658] +k.isa = l[2626] +k.code = l[22] +k.id = 434 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 32 +k.sig = "{sse2}|{{RegId, use, p1}, {RegId, def, p2}}|{}|f2-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR20|{}" +k.prefixclass = l[2638] +end +do local k = l[2659] +k.orgnames = l[41] +k.opclass = l[2660] +k.operands = l[2661] +k.sub = 26 +k.name = "CVTSD2SS_XM64" +end +do local k = l[2660] +k.isa = l[2626] +k.code = l[7] +k.id = 420 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{sse2}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|f2-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR40|{rmem}" +k.prefixclass = l[2635] +end +do local k = l[2661] +k[1] = l[2662] +k[2] = l[2663] +k.id = 216 +k.sig = "{{mode = io,type = VR128,name = p2}, {mode = i,type = i64*,name = p1}}" +end +do local k = l[2662] +k.mode = "io" +k.type = "VR128" +k.name = "p2" +end +do local k = l[2663] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[2664] +k.orgnames = l[41] +k.opclass = l[2665] +k.operands = l[104] +k.sub = 26 +k.name = "CVTSD2SS_XX" +end +do local k = l[2665] +k.isa = l[2626] +k.code = l[22] +k.id = 450 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{sse2}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|f2-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR40|{}" +k.prefixclass = l[2638] +end +do local k = l[2666] +k.orgnames = l[41] +k.opclass = l[2667] +k.operands = l[2668] +k.sub = 10 +k.name = "CVTSI2SD_XD" +end +do local k = l[2667] +k.isa = l[2626] +k.code = l[22] +k.id = 451 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 32 +k.sig = "{sse2}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|f2-rexWR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR20|{}" +k.prefixclass = l[2653] +end +do local k = l[2668] +k[1] = l[2669] +k[2] = l[2670] +k.id = 204 +k.sig = "{{mode = io,type = VR128,name = p2}, {mode = i,type = GR64,name = p1}}" +end +do local k = l[2669] +k.mode = "io" +k.type = "VR128" +k.name = "p2" +end +do local k = l[2670] +k.mode = "i" +k.type = "GR64" +k.name = "p1" +end +do local k = l[2671] +k.orgnames = l[41] +k.opclass = l[2672] +k.operands = l[2673] +k.sub = 10 +k.name = "CVTSI2SD_XM32" +end +do local k = l[2672] +k.isa = l[2626] +k.code = l[7] +k.id = 419 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[13] +k.parm = 32 +k.sig = "{sse2}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|f2-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{rmem}" +k.prefixclass = l[2635] +end +do local k = l[2673] +k[1] = l[2674] +k[2] = l[2675] +k.id = 218 +k.sig = "{{mode = io,type = VR128,name = p2}, {mode = i,type = i32*,name = p1}}" +end +do local k = l[2674] +k.mode = "io" +k.type = "VR128" +k.name = "p2" +end +do local k = l[2675] +k.mode = "i" +k.type = "i32*" +k.name = "p1" +end +do local k = l[2676] +k.orgnames = l[41] +k.opclass = l[2677] +k.operands = l[2661] +k.sub = 10 +k.name = "CVTSI2SD_XM64" +end +do local k = l[2677] +k.isa = l[2626] +k.code = l[7] +k.id = 421 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[13] +k.parm = 32 +k.sig = "{sse2}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|f2-rexWR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{rmem}" +k.prefixclass = l[2649] +end +do local k = l[2678] +k.orgnames = l[41] +k.opclass = l[2679] +k.operands = l[2680] +k.sub = 10 +k.name = "CVTSI2SD_XW" +end +do local k = l[2679] +k.isa = l[2626] +k.code = l[22] +k.id = 449 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 32 +k.sig = "{sse2}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|f2-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR20|{}" +k.prefixclass = l[2638] +end +do local k = l[2680] +k[1] = l[2681] +k[2] = l[2682] +k.id = 203 +k.sig = "{{mode = io,type = VR128,name = p2}, {mode = i,type = GR32,name = p1}}" +end +do local k = l[2681] +k.mode = "io" +k.type = "VR128" +k.name = "p2" +end +do local k = l[2682] +k.mode = "i" +k.type = "GR32" +k.name = "p1" +end +do local k = l[2683] +k.orgnames = l[41] +k.opclass = l[2684] +k.operands = l[2668] +k.sub = 10 +k.name = "CVTSI2SS_XD" +end +do local k = l[2684] +k.isa = l[2626] +k.code = l[22] +k.id = 454 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 32 +k.sig = "{sse2}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|f3-rexWR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR20|{}" +k.prefixclass = l[2685] +end +do local k = l[2685] +k.extopcode = "0f" +k.rex = l[2654] +k.id = 27 +k.pref = "f3" +k.sig = "f3-rexWR2B1-0f" +end +do local k = l[2686] +k.orgnames = l[41] +k.opclass = l[2687] +k.operands = l[2673] +k.sub = 10 +k.name = "CVTSI2SS_XM32" +end +do local k = l[2687] +k.isa = l[2626] +k.code = l[7] +k.id = 422 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[13] +k.parm = 32 +k.sig = "{sse2}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|f3-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{rmem}" +k.prefixclass = l[2540] +end +do local k = l[2688] +k.orgnames = l[41] +k.opclass = l[2689] +k.operands = l[2661] +k.sub = 10 +k.name = "CVTSI2SS_XM64" +end +do local k = l[2689] +k.isa = l[2626] +k.code = l[7] +k.id = 424 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[13] +k.parm = 32 +k.sig = "{sse2}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|f3-rexWR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{rmem}" +k.prefixclass = l[2690] +end +do local k = l[2690] +k.extopcode = "0f" +k.rex = l[2650] +k.id = 60 +k.pref = "f3" +k.sig = "f3-rexWR2M1-0f" +end +do local k = l[2691] +k.orgnames = l[41] +k.opclass = l[2692] +k.operands = l[2680] +k.sub = 10 +k.name = "CVTSI2SS_XW" +end +do local k = l[2692] +k.isa = l[2626] +k.code = l[22] +k.id = 452 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 32 +k.sig = "{sse2}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|f3-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR20|{}" +k.prefixclass = l[2543] +end +do local k = l[2693] +k.orgnames = l[41] +k.opclass = l[2694] +k.operands = l[2673] +k.sub = 26 +k.name = "CVTSS2SD_XM32" +end +do local k = l[2694] +k.isa = l[2626] +k.code = l[7] +k.id = 423 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{sse2}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|f3-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR40|{rmem}" +k.prefixclass = l[2540] +end +do local k = l[2695] +k.orgnames = l[41] +k.opclass = l[2696] +k.operands = l[104] +k.sub = 26 +k.name = "CVTSS2SD_XX" +end +do local k = l[2696] +k.isa = l[2626] +k.code = l[22] +k.id = 453 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{sse2}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|f3-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR40|{}" +k.prefixclass = l[2543] +end +do local k = l[2697] +k.orgnames = l[41] +k.opclass = l[2698] +k.operands = l[850] +k.sub = 13 +k.name = "CVTSS2SI_DM32" +end +do local k = l[2698] +k.isa = l[2626] +k.code = l[7] +k.id = 406 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 32 +k.sig = "{sse2}|{{MemId, use, p1}, {RegId, def, p2}}|{}|f3-rexWR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{rmem}" +k.prefixclass = l[2690] +end +do local k = l[2699] +k.orgnames = l[41] +k.opclass = l[2700] +k.operands = l[798] +k.sub = 13 +k.name = "CVTSS2SI_DX" +end +do local k = l[2700] +k.isa = l[2626] +k.code = l[22] +k.id = 442 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 32 +k.sig = "{sse2}|{{RegId, use, p1}, {RegId, def, p2}}|{}|f3-rexWR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR20|{}" +k.prefixclass = l[2685] +end +do local k = l[2701] +k.orgnames = l[41] +k.opclass = l[2702] +k.operands = l[858] +k.sub = 13 +k.name = "CVTSS2SI_WM32" +end +do local k = l[2702] +k.isa = l[2626] +k.code = l[7] +k.id = 401 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 32 +k.sig = "{sse2}|{{MemId, use, p1}, {RegId, def, p2}}|{}|f3-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{rmem}" +k.prefixclass = l[2540] +end +do local k = l[2703] +k.orgnames = l[41] +k.opclass = l[2704] +k.operands = l[808] +k.sub = 13 +k.name = "CVTSS2SI_WX" +end +do local k = l[2704] +k.isa = l[2626] +k.code = l[22] +k.id = 437 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 32 +k.sig = "{sse2}|{{RegId, use, p1}, {RegId, def, p2}}|{}|f3-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR20|{}" +k.prefixclass = l[2543] +end +do local k = l[2705] +k.orgnames = l[41] +k.opclass = l[2706] +k.operands = l[48] +k.sub = 6 +k.name = "CVTTPD2DQ_XM" +end +do local k = l[2706] +k.isa = l[2626] +k.code = l[7] +k.id = 396 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 224 +k.sig = "{sse2}|{{MemId, use, p1}, {RegId, def, p2}}|{}|66-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{rmem}" +k.prefixclass = l[2140] +end +do local k = l[2707] +k.orgnames = l[41] +k.opclass = l[2708] +k.operands = l[58] +k.sub = 6 +k.name = "CVTTPD2DQ_XX" +end +do local k = l[2708] +k.isa = l[2626] +k.code = l[22] +k.id = 432 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 224 +k.sig = "{sse2}|{{RegId, use, p1}, {RegId, def, p2}}|{}|66-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PARE0|{}" +k.prefixclass = l[2133] +end +do local k = l[2709] +k.orgnames = l[41] +k.opclass = l[2710] +k.operands = l[48] +k.sub = 27 +k.name = "CVTTPS2DQ_XM" +end +do local k = l[2710] +k.isa = l[2626] +k.code = l[7] +k.id = 402 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{sse2}|{{MemId, use, p1}, {RegId, def, p2}}|{}|f3-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR40|{rmem}" +k.prefixclass = l[2540] +end +do local k = l[2711] +k.orgnames = l[41] +k.opclass = l[2712] +k.operands = l[58] +k.sub = 27 +k.name = "CVTTPS2DQ_XX" +end +do local k = l[2712] +k.isa = l[2626] +k.code = l[22] +k.id = 438 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{sse2}|{{RegId, use, p1}, {RegId, def, p2}}|{}|f3-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR40|{}" +k.prefixclass = l[2543] +end +do local k = l[2713] +k.orgnames = l[41] +k.opclass = l[2648] +k.operands = l[791] +k.sub = 12 +k.name = "CVTTSD2SI_DM64" +end +do local k = l[2714] +k.orgnames = l[41] +k.opclass = l[2652] +k.operands = l[798] +k.sub = 12 +k.name = "CVTTSD2SI_DX" +end +do local k = l[2715] +k.orgnames = l[41] +k.opclass = l[2656] +k.operands = l[803] +k.sub = 12 +k.name = "CVTTSD2SI_WM64" +end +do local k = l[2716] +k.orgnames = l[41] +k.opclass = l[2658] +k.operands = l[808] +k.sub = 12 +k.name = "CVTTSD2SI_WX" +end +do local k = l[2717] +k.orgnames = l[41] +k.opclass = l[2698] +k.operands = l[850] +k.sub = 12 +k.name = "CVTTSS2SI_DM32" +end +do local k = l[2718] +k.orgnames = l[41] +k.opclass = l[2700] +k.operands = l[798] +k.sub = 12 +k.name = "CVTTSS2SI_DX" +end +do local k = l[2719] +k.orgnames = l[41] +k.opclass = l[2702] +k.operands = l[858] +k.sub = 12 +k.name = "CVTTSS2SI_WM32" +end +do local k = l[2720] +k.orgnames = l[41] +k.opclass = l[2704] +k.operands = l[808] +k.sub = 12 +k.name = "CVTTSS2SI_WX" +end +do local k = l[2721] +k.orgnames = l[1958] +k.opclass = l[2722] +k.operands = l[1964] +k.name = "LFENCE" +k.sub = 5 +end +do local k = l[2722] +k.isa = l[2626] +k.code = l[1972] +k.id = 458 +k.layout = l[1961] +k.impregs = l[12] +k.flags = l[2101] +k.parm = 174 +k.sig = "{sse2}|{}|{}|rex-0f|{$parm, !RRMR($sub,0)}|PARAE|{rmem, rwmem, wmem}" +k.prefixclass = l[1977] +end +do local k = l[2723] +k.orgnames = l[967] +k.opclass = l[2724] +k.operands = l[972] +k.sub = 23 +k.name = "MASKMOVDQU_RDI_XM" +end +do local k = l[2724] +k.isa = l[2626] +k.code = l[7] +k.id = 408 +k.layout = l[694] +k.impregs = l[969] +k.flags = l[971] +k.parm = 224 +k.sig = "{sse2}|{{MemId, use, p1}, {RegId, use, p2}}|{{rdi, use}}|66-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{rmem, wmem}" +k.prefixclass = l[2140] +end +do local k = l[2725] +k.orgnames = l[967] +k.opclass = l[2726] +k.operands = l[978] +k.sub = 23 +k.name = "MASKMOVDQU_RDI_XX" +end +do local k = l[2726] +k.isa = l[2626] +k.code = l[22] +k.id = 444 +k.layout = l[706] +k.impregs = l[969] +k.flags = l[179] +k.parm = 224 +k.sig = "{sse2}|{{RegId, use, p1}, {RegId, use, p2}}|{{rdi, use}}|66-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PARE0|{wmem}" +k.prefixclass = l[2133] +end +do local k = l[2727] +k.orgnames = l[1958] +k.opclass = l[2722] +k.operands = l[1964] +k.name = "MFENCE" +k.sub = 6 +end +do local k = l[2728] +k.orgnames = l[41] +k.opclass = l[2729] +k.operands = l[1001] +k.sub = 31 +k.name = "MOVDQA_MX" +end +do local k = l[2729] +k.isa = l[2626] +k.code = l[7] +k.id = 410 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 96 +k.sig = "{sse2}|{{MemId, use, p1}, {RegId, use, p2}}|{}|66-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR60|{wmem}" +k.prefixclass = l[2140] +end +do local k = l[2730] +k.orgnames = l[41] +k.opclass = l[2731] +k.operands = l[48] +k.sub = 15 +k.name = "MOVDQA_XM" +end +do local k = l[2731] +k.isa = l[2626] +k.code = l[1053] +k.id = 397 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 96 +k.sig = "{sse2}|{{MemId, use, p1}, {RegId, def, p2}}|{}|66-rexR2M1-0f|{$parm+$sub, !RRMM($p2,, $p1)}|PAR60|{rmem}" +k.prefixclass = l[2140] +end +do local k = l[2732] +k.orgnames = l[41] +k.opclass = l[2733] +k.operands = l[58] +k.sub = 15 +k.name = "MOVDQA_XX" +end +do local k = l[2733] +k.isa = l[2626] +k.code = l[1056] +k.id = 433 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 96 +k.sig = "{sse2}|{{RegId, use, p1}, {RegId, def, p2}}|{}|66-rexR2B1-0f|{$parm+$sub, !RRMR($p2,, $p1)}|PAR60|{}" +k.prefixclass = l[2133] +end +do local k = l[2734] +k.orgnames = l[41] +k.opclass = l[2735] +k.operands = l[1001] +k.sub = 9 +k.name = "MOVDQU_MX" +end +do local k = l[2735] +k.isa = l[2626] +k.code = l[7] +k.id = 413 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 32 +k.sig = "{sse2}|{{MemId, use, p1}, {RegId, use, p2}}|{}|f3-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{wmem}" +k.prefixclass = l[2540] +end +do local k = l[2736] +k.orgnames = l[41] +k.opclass = l[2737] +k.operands = l[48] +k.sub = 8 +k.name = "MOVDQU_XM" +end +do local k = l[2737] +k.isa = l[2626] +k.code = l[1053] +k.id = 405 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 32 +k.sig = "{sse2}|{{MemId, use, p1}, {RegId, def, p2}}|{}|f3-rexR2M1-0f|{$parm+$sub, !RRMM($p2,, $p1)}|PAR20|{rmem}" +k.prefixclass = l[2540] +end +do local k = l[2738] +k.orgnames = l[41] +k.opclass = l[2739] +k.operands = l[58] +k.sub = 8 +k.name = "MOVDQU_XX" +end +do local k = l[2739] +k.isa = l[2626] +k.code = l[1056] +k.id = 441 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 32 +k.sig = "{sse2}|{{RegId, use, p1}, {RegId, def, p2}}|{}|f3-rexR2B1-0f|{$parm+$sub, !RRMR($p2,, $p1)}|PAR20|{}" +k.prefixclass = l[2543] +end +do local k = l[2740] +k.orgnames = l[41] +k.opclass = l[2741] +k.operands = l[327] +k.sub = 14 +k.name = "MOVD_XM32" +end +do local k = l[2741] +k.isa = l[2626] +k.code = l[7] +k.id = 395 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 96 +k.sig = "{sse2}|{{MemId, use, p1}, {RegId, def, p2}}|{}|66-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR60|{rmem}" +k.prefixclass = l[2140] +end +do local k = l[2742] +k.orgnames = l[41] +k.opclass = l[2743] +k.operands = l[1077] +k.sub = 14 +k.name = "MOVD_XW" +end +do local k = l[2743] +k.isa = l[2626] +k.code = l[22] +k.id = 430 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 96 +k.sig = "{sse2}|{{RegId, use, p1}, {RegId, def, p2}}|{}|66-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR60|{}" +k.prefixclass = l[2133] +end +do local k = l[2744] +k.orgnames = l[41] +k.opclass = l[2745] +k.operands = l[1001] +k.sub = 7 +k.name = "MOVNTDQ_MX" +end +do local k = l[2745] +k.isa = l[2626] +k.code = l[7] +k.id = 412 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 224 +k.sig = "{sse2}|{{MemId, use, p1}, {RegId, use, p2}}|{}|66-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{wmem}" +k.prefixclass = l[2140] +end +do local k = l[2746] +k.orgnames = l[41] +k.opclass = l[2747] +k.operands = l[1001] +k.sub = 11 +k.name = "MOVNTPD_MX" +end +do local k = l[2747] +k.isa = l[2626] +k.code = l[7] +k.id = 409 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 32 +k.sig = "{sse2}|{{MemId, use, p1}, {RegId, use, p2}}|{}|66-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{wmem}" +k.prefixclass = l[2140] +end +do local k = l[2748] +k.orgnames = l[41] +k.opclass = l[2749] +k.operands = l[1001] +k.sub = 11 +k.name = "MOVNTPS_MX" +end +do local k = l[2749] +k.isa = l[2626] +k.code = l[7] +k.id = 414 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 32 +k.sig = "{sse2}|{{MemId, use, p1}, {RegId, use, p2}}|{}|rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{wmem}" +k.prefixclass = l[2027] +end +do local k = l[2750] +k.orgnames = l[41] +k.opclass = l[2751] +k.operands = l[1084] +k.sub = 22 +k.name = "MOVQ_M64X" +end +do local k = l[2751] +k.isa = l[2626] +k.code = l[7] +k.id = 411 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 192 +k.sig = "{sse2}|{{MemId, use, p1}, {RegId, use, p2}}|{}|66-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARC0|{wmem}" +k.prefixclass = l[2140] +end +do local k = l[2752] +k.orgnames = l[41] +k.opclass = l[2753] +k.operands = l[339] +k.sub = 30 +k.name = "MOVQ_XM" +end +do local k = l[2753] +k.isa = l[2626] +k.code = l[7] +k.id = 403 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 96 +k.sig = "{sse2}|{{MemId, use, p1}, {RegId, def, p2}}|{}|f3-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR60|{rmem}" +k.prefixclass = l[2540] +end +do local k = l[2754] +k.orgnames = l[41] +k.opclass = l[2755] +k.operands = l[58] +k.sub = 30 +k.name = "MOVQ_XX" +end +do local k = l[2755] +k.isa = l[2626] +k.code = l[22] +k.id = 439 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 96 +k.sig = "{sse2}|{{RegId, use, p1}, {RegId, def, p2}}|{}|f3-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR60|{}" +k.prefixclass = l[2543] +end +do local k = l[2756] +k.orgnames = l[41] +k.opclass = l[2757] +k.operands = l[94] +k.sub = 11 +k.name = "PACKSSDW_XM" +end +do local k = l[2757] +k.isa = l[2626] +k.code = l[7] +k.id = 416 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[13] +k.parm = 96 +k.sig = "{sse2}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|66-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR60|{rmem}" +k.prefixclass = l[2140] +end +do local k = l[2758] +k.orgnames = l[41] +k.opclass = l[2759] +k.operands = l[104] +k.sub = 11 +k.name = "PACKSSDW_XX" +end +do local k = l[2759] +k.isa = l[2626] +k.code = l[22] +k.id = 446 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 96 +k.sig = "{sse2}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|66-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR60|{}" +k.prefixclass = l[2133] +end +do local k = l[2760] +k.orgnames = l[41] +k.opclass = l[2757] +k.operands = l[94] +k.sub = 3 +k.name = "PACKSSWB_XM" +end +do local k = l[2761] +k.orgnames = l[41] +k.opclass = l[2759] +k.operands = l[104] +k.sub = 3 +k.name = "PACKSSWB_XX" +end +do local k = l[2762] +k.orgnames = l[41] +k.opclass = l[2757] +k.operands = l[94] +k.sub = 7 +k.name = "PACKUSWB_XM" +end +do local k = l[2763] +k.orgnames = l[41] +k.opclass = l[2759] +k.operands = l[104] +k.sub = 7 +k.name = "PACKUSWB_XX" +end +do local k = l[2764] +k.orgnames = l[41] +k.opclass = l[2765] +k.operands = l[94] +k.sub = 28 +k.name = "PADDB_XM" +end +do local k = l[2765] +k.isa = l[2626] +k.code = l[7] +k.id = 418 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[13] +k.parm = 224 +k.sig = "{sse2}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|66-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{rmem}" +k.prefixclass = l[2140] +end +do local k = l[2766] +k.orgnames = l[41] +k.opclass = l[2767] +k.operands = l[104] +k.sub = 28 +k.name = "PADDB_XX" +end +do local k = l[2767] +k.isa = l[2626] +k.code = l[22] +k.id = 448 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 224 +k.sig = "{sse2}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|66-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PARE0|{}" +k.prefixclass = l[2133] +end +do local k = l[2768] +k.orgnames = l[41] +k.opclass = l[2765] +k.operands = l[94] +k.sub = 30 +k.name = "PADDD_XM" +end +do local k = l[2769] +k.orgnames = l[41] +k.opclass = l[2767] +k.operands = l[104] +k.sub = 30 +k.name = "PADDD_XX" +end +do local k = l[2770] +k.orgnames = l[41] +k.opclass = l[2771] +k.operands = l[94] +k.sub = 20 +k.name = "PADDQ_XM" +end +do local k = l[2771] +k.isa = l[2626] +k.code = l[7] +k.id = 417 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[13] +k.parm = 192 +k.sig = "{sse2}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|66-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARC0|{rmem}" +k.prefixclass = l[2140] +end +do local k = l[2772] +k.orgnames = l[41] +k.opclass = l[2773] +k.operands = l[104] +k.sub = 20 +k.name = "PADDQ_XX" +end +do local k = l[2773] +k.isa = l[2626] +k.code = l[22] +k.id = 447 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 192 +k.sig = "{sse2}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|66-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PARC0|{}" +k.prefixclass = l[2133] +end +do local k = l[2774] +k.orgnames = l[41] +k.opclass = l[2765] +k.operands = l[94] +k.sub = 12 +k.name = "PADDSB_XM" +end +do local k = l[2775] +k.orgnames = l[41] +k.opclass = l[2767] +k.operands = l[104] +k.sub = 12 +k.name = "PADDSB_XX" +end +do local k = l[2776] +k.orgnames = l[41] +k.opclass = l[2765] +k.operands = l[94] +k.sub = 13 +k.name = "PADDSW_XM" +end +do local k = l[2777] +k.orgnames = l[41] +k.opclass = l[2767] +k.operands = l[104] +k.sub = 13 +k.name = "PADDSW_XX" +end +do local k = l[2778] +k.orgnames = l[41] +k.opclass = l[2771] +k.operands = l[94] +k.sub = 28 +k.name = "PADDUSB_XM" +end +do local k = l[2779] +k.orgnames = l[41] +k.opclass = l[2773] +k.operands = l[104] +k.sub = 28 +k.name = "PADDUSB_XX" +end +do local k = l[2780] +k.orgnames = l[41] +k.opclass = l[2771] +k.operands = l[94] +k.sub = 29 +k.name = "PADDUSW_XM" +end +do local k = l[2781] +k.orgnames = l[41] +k.opclass = l[2773] +k.operands = l[104] +k.sub = 29 +k.name = "PADDUSW_XX" +end +do local k = l[2782] +k.orgnames = l[41] +k.opclass = l[2765] +k.operands = l[94] +k.sub = 29 +k.name = "PADDW_XM" +end +do local k = l[2783] +k.orgnames = l[41] +k.opclass = l[2767] +k.operands = l[104] +k.sub = 29 +k.name = "PADDW_XX" +end +do local k = l[2784] +k.orgnames = l[41] +k.opclass = l[2771] +k.operands = l[94] +k.sub = 31 +k.name = "PANDN_XM" +end +do local k = l[2785] +k.orgnames = l[41] +k.opclass = l[2773] +k.operands = l[104] +k.sub = 31 +k.name = "PANDN_XX" +end +do local k = l[2786] +k.orgnames = l[41] +k.opclass = l[2771] +k.operands = l[94] +k.sub = 27 +k.name = "PAND_XM" +end +do local k = l[2787] +k.orgnames = l[41] +k.opclass = l[2773] +k.operands = l[104] +k.sub = 27 +k.name = "PAND_XX" +end +do local k = l[2788] +k.orgnames = l[41] +k.opclass = l[2765] +k.operands = l[94] +k.sub = 0 +k.name = "PAVGB_XM" +end +do local k = l[2789] +k.orgnames = l[41] +k.opclass = l[2767] +k.operands = l[104] +k.sub = 0 +k.name = "PAVGB_XX" +end +do local k = l[2790] +k.orgnames = l[41] +k.opclass = l[2765] +k.operands = l[94] +k.sub = 3 +k.name = "PAVGW_XM" +end +do local k = l[2791] +k.orgnames = l[41] +k.opclass = l[2767] +k.operands = l[104] +k.sub = 3 +k.name = "PAVGW_XX" +end +do local k = l[2792] +k.orgnames = l[41] +k.opclass = l[2757] +k.operands = l[94] +k.sub = 20 +k.name = "PCMPEQB_XM" +end +do local k = l[2793] +k.orgnames = l[41] +k.opclass = l[2759] +k.operands = l[104] +k.sub = 20 +k.name = "PCMPEQB_XX" +end +do local k = l[2794] +k.orgnames = l[41] +k.opclass = l[2757] +k.operands = l[94] +k.sub = 22 +k.name = "PCMPEQD_XM" +end +do local k = l[2795] +k.orgnames = l[41] +k.opclass = l[2759] +k.operands = l[104] +k.sub = 22 +k.name = "PCMPEQD_XX" +end +do local k = l[2796] +k.orgnames = l[41] +k.opclass = l[2757] +k.operands = l[94] +k.sub = 21 +k.name = "PCMPEQW_XM" +end +do local k = l[2797] +k.orgnames = l[41] +k.opclass = l[2759] +k.operands = l[104] +k.sub = 21 +k.name = "PCMPEQW_XX" +end +do local k = l[2798] +k.orgnames = l[41] +k.opclass = l[2757] +k.operands = l[94] +k.sub = 4 +k.name = "PCMPGTB_XM" +end +do local k = l[2799] +k.orgnames = l[41] +k.opclass = l[2759] +k.operands = l[104] +k.sub = 4 +k.name = "PCMPGTB_XX" +end +do local k = l[2800] +k.orgnames = l[41] +k.opclass = l[2757] +k.operands = l[94] +k.sub = 6 +k.name = "PCMPGTD_XM" +end +do local k = l[2801] +k.orgnames = l[41] +k.opclass = l[2759] +k.operands = l[104] +k.sub = 6 +k.name = "PCMPGTD_XX" +end +do local k = l[2802] +k.orgnames = l[41] +k.opclass = l[2757] +k.operands = l[94] +k.sub = 5 +k.name = "PCMPGTW_XM" +end +do local k = l[2803] +k.orgnames = l[41] +k.opclass = l[2759] +k.operands = l[104] +k.sub = 5 +k.name = "PCMPGTW_XX" +end +do local k = l[2804] +k.orgnames = l[62] +k.opclass = l[2805] +k.operands = l[1459] +k.name = "PEXTRW_WXI" +end +do local k = l[2805] +k.isa = l[2626] +k.code = l[1458] +k.id = 426 +k.layout = l[77] +k.impregs = l[12] +k.flags = l[27] +k.parm = 197 +k.sig = "{sse2}|{{RegId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|66-rexR2B1-0f|{$parm, !RRMR($p2,$p1), !I8($p3)}|PARC5|{}" +k.prefixclass = l[2133] +end +do local k = l[2806] +k.orgnames = l[62] +k.opclass = l[2807] +k.operands = l[2808] +k.sub = 4 +k.name = "PINSRW_XM16I" +end +do local k = l[2807] +k.isa = l[2626] +k.code = l[64] +k.id = 415 +k.layout = l[2109] +k.impregs = l[12] +k.flags = l[13] +k.parm = 192 +k.sig = "{sse2}|{{MemId, use, p1}, {RegId, use/def, p2}, {Imm, use, p3, 0}}|{}|66-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PARC0|{rmem}" +k.prefixclass = l[2140] +end +do local k = l[2808] +k[1] = l[2809] +k[2] = l[2810] +k[3] = l[2811] +k.id = 288 +k.sig = "{{mode = io,type = VR128,name = p2}, {mode = i,type = i16*,name = p1}, {mode = i,type = i8,name = p3}}" +end +do local k = l[2809] +k.mode = "io" +k.type = "VR128" +k.name = "p2" +end +do local k = l[2810] +k.mode = "i" +k.type = "i16*" +k.name = "p1" +end +do local k = l[2811] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[2812] +k.orgnames = l[62] +k.opclass = l[2813] +k.operands = l[2814] +k.sub = 4 +k.name = "PINSRW_XWI" +end +do local k = l[2813] +k.isa = l[2626] +k.code = l[76] +k.id = 445 +k.layout = l[2119] +k.impregs = l[12] +k.flags = l[27] +k.parm = 192 +k.sig = "{sse2}|{{RegId, use, p1}, {RegId, use/def, p2}, {Imm, use, p3, 0}}|{}|66-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PARC0|{}" +k.prefixclass = l[2133] +end +do local k = l[2814] +k[1] = l[2815] +k[2] = l[2816] +k[3] = l[2817] +k.id = 278 +k.sig = "{{mode = io,type = VR128,name = p2}, {mode = i,type = GR32,name = p1}, {mode = i,type = i8,name = p3}}" +end +do local k = l[2815] +k.mode = "io" +k.type = "VR128" +k.name = "p2" +end +do local k = l[2816] +k.mode = "i" +k.type = "GR32" +k.name = "p1" +end +do local k = l[2817] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[2818] +k.orgnames = l[41] +k.opclass = l[2765] +k.operands = l[94] +k.sub = 21 +k.name = "PMADDWD_XM" +end +do local k = l[2819] +k.orgnames = l[41] +k.opclass = l[2767] +k.operands = l[104] +k.sub = 21 +k.name = "PMADDWD_XX" +end +do local k = l[2820] +k.orgnames = l[41] +k.opclass = l[2765] +k.operands = l[94] +k.sub = 14 +k.name = "PMAXSW_XM" +end +do local k = l[2821] +k.orgnames = l[41] +k.opclass = l[2767] +k.operands = l[104] +k.sub = 14 +k.name = "PMAXSW_XX" +end +do local k = l[2822] +k.orgnames = l[41] +k.opclass = l[2771] +k.operands = l[94] +k.sub = 30 +k.name = "PMAXUB_XM" +end +do local k = l[2823] +k.orgnames = l[41] +k.opclass = l[2773] +k.operands = l[104] +k.sub = 30 +k.name = "PMAXUB_XX" +end +do local k = l[2824] +k.orgnames = l[41] +k.opclass = l[2765] +k.operands = l[94] +k.sub = 10 +k.name = "PMINSW_XM" +end +do local k = l[2825] +k.orgnames = l[41] +k.opclass = l[2767] +k.operands = l[104] +k.sub = 10 +k.name = "PMINSW_XX" +end +do local k = l[2826] +k.orgnames = l[41] +k.opclass = l[2771] +k.operands = l[94] +k.sub = 26 +k.name = "PMINUB_XM" +end +do local k = l[2827] +k.orgnames = l[41] +k.opclass = l[2773] +k.operands = l[104] +k.sub = 26 +k.name = "PMINUB_XX" +end +do local k = l[2828] +k.orgnames = l[41] +k.opclass = l[2829] +k.operands = l[808] +k.name = "PMOVMSK_WX" +k.sub = 23 +end +do local k = l[2829] +k.isa = l[2626] +k.code = l[22] +k.id = 431 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 192 +k.sig = "{sse2}|{{RegId, use, p1}, {RegId, def, p2}}|{}|66-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PARC0|{}" +k.prefixclass = l[2133] +end +do local k = l[2830] +k.orgnames = l[41] +k.opclass = l[2765] +k.operands = l[94] +k.sub = 4 +k.name = "PMULHUW_XM" +end +do local k = l[2831] +k.orgnames = l[41] +k.opclass = l[2767] +k.operands = l[104] +k.sub = 4 +k.name = "PMULHUW_XX" +end +do local k = l[2832] +k.orgnames = l[41] +k.opclass = l[2765] +k.operands = l[94] +k.sub = 5 +k.name = "PMULHW_XM" +end +do local k = l[2833] +k.orgnames = l[41] +k.opclass = l[2767] +k.operands = l[104] +k.sub = 5 +k.name = "PMULHW_XX" +end +do local k = l[2834] +k.orgnames = l[41] +k.opclass = l[2771] +k.operands = l[94] +k.sub = 21 +k.name = "PMULLW_XM" +end +do local k = l[2835] +k.orgnames = l[41] +k.opclass = l[2773] +k.operands = l[104] +k.sub = 21 +k.name = "PMULLW_XX" +end +do local k = l[2836] +k.orgnames = l[41] +k.opclass = l[2765] +k.operands = l[94] +k.sub = 20 +k.name = "PMULUDQ_XM" +end +do local k = l[2837] +k.orgnames = l[41] +k.opclass = l[2767] +k.operands = l[104] +k.sub = 20 +k.name = "PMULUDQ_XX" +end +do local k = l[2838] +k.orgnames = l[41] +k.opclass = l[2765] +k.operands = l[94] +k.sub = 11 +k.name = "POR_XM" +end +do local k = l[2839] +k.orgnames = l[41] +k.opclass = l[2767] +k.operands = l[104] +k.sub = 11 +k.name = "POR_XX" +end +do local k = l[2840] +k.orgnames = l[41] +k.opclass = l[2765] +k.operands = l[94] +k.sub = 22 +k.name = "PSADBW_XM" +end +do local k = l[2841] +k.orgnames = l[41] +k.opclass = l[2767] +k.operands = l[104] +k.sub = 22 +k.name = "PSADBW_XX" +end +do local k = l[2842] +k.orgnames = l[62] +k.opclass = l[2843] +k.operands = l[70] +k.sub = 16 +k.name = "PSHUFD_XMI" +end +do local k = l[2843] +k.isa = l[2626] +k.code = l[64] +k.id = 391 +k.layout = l[65] +k.impregs = l[12] +k.flags = l[13] +k.parm = 96 +k.sig = "{sse2}|{{MemId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|66-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR60|{rmem}" +k.prefixclass = l[2140] +end +do local k = l[2844] +k.orgnames = l[62] +k.opclass = l[2845] +k.operands = l[82] +k.sub = 16 +k.name = "PSHUFD_XXI" +end +do local k = l[2845] +k.isa = l[2626] +k.code = l[76] +k.id = 425 +k.layout = l[77] +k.impregs = l[12] +k.flags = l[27] +k.parm = 96 +k.sig = "{sse2}|{{RegId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|66-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR60|{}" +k.prefixclass = l[2133] +end +do local k = l[2846] +k.orgnames = l[62] +k.opclass = l[2847] +k.operands = l[70] +k.sub = 16 +k.name = "PSHUFHW_XMI" +end +do local k = l[2847] +k.isa = l[2626] +k.code = l[64] +k.id = 393 +k.layout = l[65] +k.impregs = l[12] +k.flags = l[13] +k.parm = 96 +k.sig = "{sse2}|{{MemId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|f3-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR60|{rmem}" +k.prefixclass = l[2540] +end +do local k = l[2848] +k.orgnames = l[62] +k.opclass = l[2849] +k.operands = l[82] +k.sub = 16 +k.name = "PSHUFHW_XXI" +end +do local k = l[2849] +k.isa = l[2626] +k.code = l[76] +k.id = 428 +k.layout = l[77] +k.impregs = l[12] +k.flags = l[27] +k.parm = 96 +k.sig = "{sse2}|{{RegId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|f3-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR60|{}" +k.prefixclass = l[2543] +end +do local k = l[2850] +k.orgnames = l[62] +k.opclass = l[2851] +k.operands = l[70] +k.sub = 16 +k.name = "PSHUFLW_XMI" +end +do local k = l[2851] +k.isa = l[2626] +k.code = l[64] +k.id = 392 +k.layout = l[65] +k.impregs = l[12] +k.flags = l[13] +k.parm = 96 +k.sig = "{sse2}|{{MemId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|f2-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR60|{rmem}" +k.prefixclass = l[2635] +end +do local k = l[2852] +k.orgnames = l[62] +k.opclass = l[2853] +k.operands = l[82] +k.sub = 16 +k.name = "PSHUFLW_XXI" +end +do local k = l[2853] +k.isa = l[2626] +k.code = l[76] +k.id = 427 +k.layout = l[77] +k.impregs = l[12] +k.flags = l[27] +k.parm = 96 +k.sig = "{sse2}|{{RegId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|f2-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR60|{}" +k.prefixclass = l[2638] +end +do local k = l[2854] +k.orgnames = l[2855] +k.opclass = l[2856] +k.operands = l[2862] +k.name = "PSLLDQ_XI" +k.sub = 7 +end +do local k = l[2855] +k[1] = "dst" +k[2] = "imm" +k.id = 2 +k.sig = "{dst, imm}" +end +do local k = l[2856] +k.isa = l[2626] +k.code = l[2857] +k.id = 457 +k.layout = l[2858] +k.impregs = l[12] +k.flags = l[27] +k.parm = 115 +k.sig = "{sse2}|{{RegId, use/def, p1}, {Imm, use, p2, 0}}|{}|66-rexB1-0f|{$parm, !RRMR($sub,$p1), !I8($p2)}|PAR73|{}" +k.prefixclass = l[2861] +end +do local k = l[2857] +k[1] = "$parm" +k[2] = "!RRMR($sub,$p1)" +k[3] = "!I8($p2)" +k.id = 2 +k.sig = "{$parm, !RRMR($sub,$p1), !I8($p2)}" +end +do local k = l[2858] +k[1] = l[2859] +k[2] = l[2860] +k.id = 2 +k.sig = "{{RegId, use/def, p1}, {Imm, use, p2, 0}}" +end +do local k = l[2859] +k[1] = "RegId" +k[2] = "use/def" +k[3] = "p1" +end +do local k = l[2860] +k[1] = "Imm" +k[2] = "use" +k[3] = "p2" +k[4] = 0 +end +do local k = l[2861] +k.extopcode = "0f" +k.rex = l[2572] +k.id = 10 +k.pref = "66" +k.sig = "66-rexB1-0f" +end +do local k = l[2862] +k[1] = l[2863] +k[2] = l[2864] +k.id = 272 +k.sig = "{{mode = io,type = VR128,name = p1}, {mode = i,type = i8,name = p2}}" +end +do local k = l[2863] +k.mode = "io" +k.type = "VR128" +k.name = "p1" +end +do local k = l[2864] +k.mode = "i" +k.type = "i8" +k.name = "p2" +end +do local k = l[2865] +k.orgnames = l[2855] +k.opclass = l[2866] +k.operands = l[2862] +k.name = "PSLLD_XI" +k.sub = 6 +end +do local k = l[2866] +k.isa = l[2626] +k.code = l[2857] +k.id = 456 +k.layout = l[2858] +k.impregs = l[12] +k.flags = l[27] +k.parm = 114 +k.sig = "{sse2}|{{RegId, use/def, p1}, {Imm, use, p2, 0}}|{}|66-rexB1-0f|{$parm, !RRMR($sub,$p1), !I8($p2)}|PAR72|{}" +k.prefixclass = l[2861] +end +do local k = l[2867] +k.orgnames = l[41] +k.opclass = l[2765] +k.operands = l[94] +k.sub = 18 +k.name = "PSLLD_XM" +end +do local k = l[2868] +k.orgnames = l[41] +k.opclass = l[2767] +k.operands = l[104] +k.sub = 18 +k.name = "PSLLD_XX" +end +do local k = l[2869] +k.orgnames = l[2855] +k.opclass = l[2856] +k.operands = l[2862] +k.name = "PSLLQ_XI" +k.sub = 6 +end +do local k = l[2870] +k.orgnames = l[41] +k.opclass = l[2765] +k.operands = l[94] +k.sub = 19 +k.name = "PSLLQ_XM" +end +do local k = l[2871] +k.orgnames = l[41] +k.opclass = l[2767] +k.operands = l[104] +k.sub = 19 +k.name = "PSLLQ_XX" +end +do local k = l[2872] +k.orgnames = l[2855] +k.opclass = l[2873] +k.operands = l[2862] +k.name = "PSLLW_XI" +k.sub = 6 +end +do local k = l[2873] +k.isa = l[2626] +k.code = l[2857] +k.id = 455 +k.layout = l[2858] +k.impregs = l[12] +k.flags = l[27] +k.parm = 113 +k.sig = "{sse2}|{{RegId, use/def, p1}, {Imm, use, p2, 0}}|{}|66-rexB1-0f|{$parm, !RRMR($sub,$p1), !I8($p2)}|PAR71|{}" +k.prefixclass = l[2861] +end +do local k = l[2874] +k.orgnames = l[41] +k.opclass = l[2765] +k.operands = l[94] +k.sub = 17 +k.name = "PSLLW_XM" +end +do local k = l[2875] +k.orgnames = l[41] +k.opclass = l[2767] +k.operands = l[104] +k.sub = 17 +k.name = "PSLLW_XX" +end +do local k = l[2876] +k.orgnames = l[2855] +k.opclass = l[2866] +k.operands = l[2862] +k.name = "PSRAD_XI" +k.sub = 4 +end +do local k = l[2877] +k.orgnames = l[41] +k.opclass = l[2765] +k.operands = l[94] +k.sub = 2 +k.name = "PSRAD_XM" +end +do local k = l[2878] +k.orgnames = l[41] +k.opclass = l[2767] +k.operands = l[104] +k.sub = 2 +k.name = "PSRAD_XX" +end +do local k = l[2879] +k.orgnames = l[2855] +k.opclass = l[2873] +k.operands = l[2862] +k.name = "PSRAW_XI" +k.sub = 4 +end +do local k = l[2880] +k.orgnames = l[41] +k.opclass = l[2765] +k.operands = l[94] +k.sub = 1 +k.name = "PSRAW_XM" +end +do local k = l[2881] +k.orgnames = l[41] +k.opclass = l[2767] +k.operands = l[104] +k.sub = 1 +k.name = "PSRAW_XX" +end +do local k = l[2882] +k.orgnames = l[2855] +k.opclass = l[2856] +k.operands = l[2862] +k.name = "PSRLDQ_XI" +k.sub = 3 +end +do local k = l[2883] +k.orgnames = l[2855] +k.opclass = l[2866] +k.operands = l[2862] +k.name = "PSRLD_XI" +k.sub = 2 +end +do local k = l[2884] +k.orgnames = l[41] +k.opclass = l[2771] +k.operands = l[94] +k.sub = 18 +k.name = "PSRLD_XM" +end +do local k = l[2885] +k.orgnames = l[41] +k.opclass = l[2773] +k.operands = l[104] +k.sub = 18 +k.name = "PSRLD_XX" +end +do local k = l[2886] +k.orgnames = l[2855] +k.opclass = l[2856] +k.operands = l[2862] +k.name = "PSRLQ_XI" +k.sub = 2 +end +do local k = l[2887] +k.orgnames = l[41] +k.opclass = l[2771] +k.operands = l[94] +k.sub = 19 +k.name = "PSRLQ_XM" +end +do local k = l[2888] +k.orgnames = l[41] +k.opclass = l[2773] +k.operands = l[104] +k.sub = 19 +k.name = "PSRLQ_XX" +end +do local k = l[2889] +k.orgnames = l[2855] +k.opclass = l[2873] +k.operands = l[2862] +k.name = "PSRLW_XI" +k.sub = 2 +end +do local k = l[2890] +k.orgnames = l[41] +k.opclass = l[2771] +k.operands = l[94] +k.sub = 17 +k.name = "PSRLW_XM" +end +do local k = l[2891] +k.orgnames = l[41] +k.opclass = l[2773] +k.operands = l[104] +k.sub = 17 +k.name = "PSRLW_XX" +end +do local k = l[2892] +k.orgnames = l[41] +k.opclass = l[2765] +k.operands = l[94] +k.sub = 24 +k.name = "PSUBB_XM" +end +do local k = l[2893] +k.orgnames = l[41] +k.opclass = l[2767] +k.operands = l[104] +k.sub = 24 +k.name = "PSUBB_XX" +end +do local k = l[2894] +k.orgnames = l[41] +k.opclass = l[2765] +k.operands = l[94] +k.sub = 26 +k.name = "PSUBD_XM" +end +do local k = l[2895] +k.orgnames = l[41] +k.opclass = l[2767] +k.operands = l[104] +k.sub = 26 +k.name = "PSUBD_XX" +end +do local k = l[2896] +k.orgnames = l[41] +k.opclass = l[2765] +k.operands = l[94] +k.sub = 27 +k.name = "PSUBQ_XM" +end +do local k = l[2897] +k.orgnames = l[41] +k.opclass = l[2767] +k.operands = l[104] +k.sub = 27 +k.name = "PSUBQ_XX" +end +do local k = l[2898] +k.orgnames = l[41] +k.opclass = l[2765] +k.operands = l[94] +k.sub = 8 +k.name = "PSUBSB_XM" +end +do local k = l[2899] +k.orgnames = l[41] +k.opclass = l[2767] +k.operands = l[104] +k.sub = 8 +k.name = "PSUBSB_XX" +end +do local k = l[2900] +k.orgnames = l[41] +k.opclass = l[2765] +k.operands = l[94] +k.sub = 9 +k.name = "PSUBSW_XM" +end +do local k = l[2901] +k.orgnames = l[41] +k.opclass = l[2767] +k.operands = l[104] +k.sub = 9 +k.name = "PSUBSW_XX" +end +do local k = l[2902] +k.orgnames = l[41] +k.opclass = l[2771] +k.operands = l[94] +k.sub = 24 +k.name = "PSUBUSB_XM" +end +do local k = l[2903] +k.orgnames = l[41] +k.opclass = l[2773] +k.operands = l[104] +k.sub = 24 +k.name = "PSUBUSB_XX" +end +do local k = l[2904] +k.orgnames = l[41] +k.opclass = l[2771] +k.operands = l[94] +k.sub = 25 +k.name = "PSUBUSW_XM" +end +do local k = l[2905] +k.orgnames = l[41] +k.opclass = l[2773] +k.operands = l[104] +k.sub = 25 +k.name = "PSUBUSW_XX" +end +do local k = l[2906] +k.orgnames = l[41] +k.opclass = l[2765] +k.operands = l[94] +k.sub = 25 +k.name = "PSUBW_XM" +end +do local k = l[2907] +k.orgnames = l[41] +k.opclass = l[2767] +k.operands = l[104] +k.sub = 25 +k.name = "PSUBW_XX" +end +do local k = l[2908] +k.orgnames = l[41] +k.opclass = l[2757] +k.operands = l[94] +k.sub = 8 +k.name = "PUNPCKHBW_XM" +end +do local k = l[2909] +k.orgnames = l[41] +k.opclass = l[2759] +k.operands = l[104] +k.sub = 8 +k.name = "PUNPCKHBW_XX" +end +do local k = l[2910] +k.orgnames = l[41] +k.opclass = l[2757] +k.operands = l[94] +k.sub = 10 +k.name = "PUNPCKHDQ_XM" +end +do local k = l[2911] +k.orgnames = l[41] +k.opclass = l[2759] +k.operands = l[104] +k.sub = 10 +k.name = "PUNPCKHDQ_XX" +end +do local k = l[2912] +k.orgnames = l[41] +k.opclass = l[2757] +k.operands = l[94] +k.sub = 13 +k.name = "PUNPCKHQDQ_XM" +end +do local k = l[2913] +k.orgnames = l[41] +k.opclass = l[2759] +k.operands = l[104] +k.sub = 13 +k.name = "PUNPCKHQDQ_XX" +end +do local k = l[2914] +k.orgnames = l[41] +k.opclass = l[2757] +k.operands = l[94] +k.sub = 9 +k.name = "PUNPCKHWD_XM" +end +do local k = l[2915] +k.orgnames = l[41] +k.opclass = l[2759] +k.operands = l[104] +k.sub = 9 +k.name = "PUNPCKHWD_XX" +end +do local k = l[2916] +k.orgnames = l[41] +k.opclass = l[2757] +k.operands = l[94] +k.sub = 0 +k.name = "PUNPCKLBW_XM" +end +do local k = l[2917] +k.orgnames = l[41] +k.opclass = l[2759] +k.operands = l[104] +k.sub = 0 +k.name = "PUNPCKLBW_XX" +end +do local k = l[2918] +k.orgnames = l[41] +k.opclass = l[2757] +k.operands = l[94] +k.sub = 2 +k.name = "PUNPCKLDQ_XM" +end +do local k = l[2919] +k.orgnames = l[41] +k.opclass = l[2759] +k.operands = l[104] +k.sub = 2 +k.name = "PUNPCKLDQ_XX" +end +do local k = l[2920] +k.orgnames = l[41] +k.opclass = l[2757] +k.operands = l[94] +k.sub = 12 +k.name = "PUNPCKLQDQ_XM" +end +do local k = l[2921] +k.orgnames = l[41] +k.opclass = l[2759] +k.operands = l[104] +k.sub = 12 +k.name = "PUNPCKLQDQ_XX" +end +do local k = l[2922] +k.orgnames = l[41] +k.opclass = l[2757] +k.operands = l[94] +k.sub = 1 +k.name = "PUNPCKLWD_XM" +end +do local k = l[2923] +k.orgnames = l[41] +k.opclass = l[2759] +k.operands = l[104] +k.sub = 1 +k.name = "PUNPCKLWD_XX" +end +do local k = l[2924] +k.orgnames = l[41] +k.opclass = l[2765] +k.operands = l[94] +k.sub = 15 +k.name = "PXOR_XM" +end +do local k = l[2925] +k.orgnames = l[41] +k.opclass = l[2767] +k.operands = l[104] +k.sub = 15 +k.name = "PXOR_XX" +end +do local k = l[2926] +k.orgnames = l[41] +k.opclass = l[2927] +k.operands = l[94] +k.sub = 16 +k.name = "ADDSUBPD_XM" +end +do local k = l[2927] +k.isa = l[2928] +k.code = l[7] +k.id = 464 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[13] +k.parm = 192 +k.sig = "{sse3}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|66-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARC0|{rmem}" +k.prefixclass = l[2140] +end +do local k = l[2928] +k[1] = "sse3" +k.id = 27 +k.sig = "{sse3}" +end +do local k = l[2929] +k.orgnames = l[41] +k.opclass = l[2930] +k.operands = l[104] +k.sub = 16 +k.name = "ADDSUBPD_XX" +end +do local k = l[2930] +k.isa = l[2928] +k.code = l[22] +k.id = 471 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 192 +k.sig = "{sse3}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|66-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PARC0|{}" +k.prefixclass = l[2133] +end +do local k = l[2931] +k.orgnames = l[41] +k.opclass = l[2932] +k.operands = l[94] +k.sub = 16 +k.name = "ADDSUBPS_XM" +end +do local k = l[2932] +k.isa = l[2928] +k.code = l[7] +k.id = 466 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[13] +k.parm = 192 +k.sig = "{sse3}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARC0|{rmem}" +k.prefixclass = l[2027] +end +do local k = l[2933] +k.orgnames = l[41] +k.opclass = l[2934] +k.operands = l[104] +k.sub = 16 +k.name = "ADDSUBPS_XX" +end +do local k = l[2934] +k.isa = l[2928] +k.code = l[22] +k.id = 473 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 192 +k.sig = "{sse3}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PARC0|{}" +k.prefixclass = l[2030] +end +do local k = l[2935] +k.orgnames = l[41] +k.opclass = l[2936] +k.operands = l[94] +k.sub = 28 +k.name = "HADDPD_XM" +end +do local k = l[2936] +k.isa = l[2928] +k.code = l[7] +k.id = 463 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[13] +k.parm = 96 +k.sig = "{sse3}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|66-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR60|{rmem}" +k.prefixclass = l[2140] +end +do local k = l[2937] +k.orgnames = l[41] +k.opclass = l[2938] +k.operands = l[104] +k.sub = 28 +k.name = "HADDPD_XX" +end +do local k = l[2938] +k.isa = l[2928] +k.code = l[22] +k.id = 470 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 96 +k.sig = "{sse3}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|66-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR60|{}" +k.prefixclass = l[2133] +end +do local k = l[2939] +k.orgnames = l[41] +k.opclass = l[2940] +k.operands = l[94] +k.sub = 28 +k.name = "HADDPS_XM" +end +do local k = l[2940] +k.isa = l[2928] +k.code = l[7] +k.id = 465 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[13] +k.parm = 96 +k.sig = "{sse3}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR60|{rmem}" +k.prefixclass = l[2027] +end +do local k = l[2941] +k.orgnames = l[41] +k.opclass = l[2942] +k.operands = l[104] +k.sub = 28 +k.name = "HADDPS_XX" +end +do local k = l[2942] +k.isa = l[2928] +k.code = l[22] +k.id = 472 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 96 +k.sig = "{sse3}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR60|{}" +k.prefixclass = l[2030] +end +do local k = l[2943] +k.orgnames = l[41] +k.opclass = l[2936] +k.operands = l[94] +k.sub = 29 +k.name = "HSUBPD_XM" +end +do local k = l[2944] +k.orgnames = l[41] +k.opclass = l[2938] +k.operands = l[104] +k.sub = 29 +k.name = "HSUBPD_XX" +end +do local k = l[2945] +k.orgnames = l[41] +k.opclass = l[2940] +k.operands = l[94] +k.sub = 29 +k.name = "HSUBPS_XM" +end +do local k = l[2946] +k.orgnames = l[41] +k.opclass = l[2942] +k.operands = l[104] +k.sub = 29 +k.name = "HSUBPS_XX" +end +do local k = l[2947] +k.orgnames = l[41] +k.opclass = l[2948] +k.operands = l[48] +k.sub = 16 +k.name = "LDDQU_XM" +end +do local k = l[2948] +k.isa = l[2928] +k.code = l[7] +k.id = 460 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 224 +k.sig = "{sse3}|{{MemId, use, p1}, {RegId, def, p2}}|{}|f2-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{rmem}" +k.prefixclass = l[2635] +end +do local k = l[2949] +k.orgnames = l[41] +k.opclass = l[2950] +k.operands = l[339] +k.sub = 18 +k.name = "MOVDDUP_XM64" +end +do local k = l[2950] +k.isa = l[2928] +k.code = l[7] +k.id = 459 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{sse3}|{{MemId, use, p1}, {RegId, def, p2}}|{}|f2-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR 0|{rmem}" +k.prefixclass = l[2635] +end +do local k = l[2951] +k.orgnames = l[41] +k.opclass = l[2952] +k.operands = l[58] +k.sub = 18 +k.name = "MOVDDUP_XX" +end +do local k = l[2952] +k.isa = l[2928] +k.code = l[22] +k.id = 467 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{sse3}|{{RegId, use, p1}, {RegId, def, p2}}|{}|f2-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR 0|{}" +k.prefixclass = l[2638] +end +do local k = l[2953] +k.orgnames = l[41] +k.opclass = l[2954] +k.operands = l[48] +k.sub = 22 +k.name = "MOVSHDUP_XM" +end +do local k = l[2954] +k.isa = l[2928] +k.code = l[7] +k.id = 461 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{sse3}|{{MemId, use, p1}, {RegId, def, p2}}|{}|f3-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR 0|{rmem}" +k.prefixclass = l[2540] +end +do local k = l[2955] +k.orgnames = l[41] +k.opclass = l[2956] +k.operands = l[58] +k.sub = 22 +k.name = "MOVSHDUP_XX" +end +do local k = l[2956] +k.isa = l[2928] +k.code = l[22] +k.id = 468 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{sse3}|{{RegId, use, p1}, {RegId, def, p2}}|{}|f3-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR 0|{}" +k.prefixclass = l[2543] +end +do local k = l[2957] +k.orgnames = l[41] +k.opclass = l[2954] +k.operands = l[48] +k.sub = 18 +k.name = "MOVSLDUP_XM" +end +do local k = l[2958] +k.orgnames = l[41] +k.opclass = l[2956] +k.operands = l[58] +k.sub = 18 +k.name = "MOVSLDUP_XX" +end +do local k = l[2959] +k.orgnames = l[41] +k.opclass = l[2960] +k.operands = l[94] +k.sub = 28 +k.name = "PABSB_XM" +end +do local k = l[2960] +k.isa = l[2928] +k.code = l[7] +k.id = 462 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{sse3}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|66-rexR2M1-0f38|{$parm+$sub, !RRMM($p2,$p1)}|PAR 0|{rmem}" +k.prefixclass = l[92] +end +do local k = l[2961] +k.orgnames = l[41] +k.opclass = l[2962] +k.operands = l[104] +k.sub = 28 +k.name = "PABSB_XX" +end +do local k = l[2962] +k.isa = l[2928] +k.code = l[22] +k.id = 469 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{sse3}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|66-rexR2B1-0f38|{$parm+$sub, !RRMR($p2,$p1)}|PAR 0|{}" +k.prefixclass = l[102] +end +do local k = l[2963] +k.orgnames = l[41] +k.opclass = l[2960] +k.operands = l[94] +k.sub = 30 +k.name = "PABSD_XM" +end +do local k = l[2964] +k.orgnames = l[41] +k.opclass = l[2962] +k.operands = l[104] +k.sub = 30 +k.name = "PABSD_XX" +end +do local k = l[2965] +k.orgnames = l[41] +k.opclass = l[2960] +k.operands = l[94] +k.sub = 29 +k.name = "PABSW_XM" +end +do local k = l[2966] +k.orgnames = l[41] +k.opclass = l[2962] +k.operands = l[104] +k.sub = 29 +k.name = "PABSW_XX" +end +do local k = l[2967] +k.orgnames = l[41] +k.opclass = l[2960] +k.operands = l[94] +k.sub = 2 +k.name = "PHADDD_XM" +end +do local k = l[2968] +k.orgnames = l[41] +k.opclass = l[2962] +k.operands = l[104] +k.sub = 2 +k.name = "PHADDD_XX" +end +do local k = l[2969] +k.orgnames = l[41] +k.opclass = l[2960] +k.operands = l[94] +k.sub = 3 +k.name = "PHADDSW_XM" +end +do local k = l[2970] +k.orgnames = l[41] +k.opclass = l[2962] +k.operands = l[104] +k.sub = 3 +k.name = "PHADDSW_XX" +end +do local k = l[2971] +k.orgnames = l[41] +k.opclass = l[2960] +k.operands = l[94] +k.sub = 1 +k.name = "PHADDW_XM" +end +do local k = l[2972] +k.orgnames = l[41] +k.opclass = l[2962] +k.operands = l[104] +k.sub = 1 +k.name = "PHADDW_XX" +end +do local k = l[2973] +k.orgnames = l[41] +k.opclass = l[2960] +k.operands = l[94] +k.sub = 6 +k.name = "PHSUBD_XM" +end +do local k = l[2974] +k.orgnames = l[41] +k.opclass = l[2962] +k.operands = l[104] +k.sub = 6 +k.name = "PHSUBD_XX" +end +do local k = l[2975] +k.orgnames = l[41] +k.opclass = l[2960] +k.operands = l[94] +k.sub = 7 +k.name = "PHSUBSW_XM" +end +do local k = l[2976] +k.orgnames = l[41] +k.opclass = l[2962] +k.operands = l[104] +k.sub = 7 +k.name = "PHSUBSW_XX" +end +do local k = l[2977] +k.orgnames = l[41] +k.opclass = l[2960] +k.operands = l[94] +k.sub = 5 +k.name = "PHSUBW_XM" +end +do local k = l[2978] +k.orgnames = l[41] +k.opclass = l[2962] +k.operands = l[104] +k.sub = 5 +k.name = "PHSUBW_XX" +end +do local k = l[2979] +k.orgnames = l[41] +k.opclass = l[2960] +k.operands = l[94] +k.sub = 4 +k.name = "PMADDUBSW_XM" +end +do local k = l[2980] +k.orgnames = l[41] +k.opclass = l[2962] +k.operands = l[104] +k.sub = 4 +k.name = "PMADDUBSW_XX" +end +do local k = l[2981] +k.orgnames = l[41] +k.opclass = l[2960] +k.operands = l[94] +k.sub = 11 +k.name = "PMULHRSW_XM" +end +do local k = l[2982] +k.orgnames = l[41] +k.opclass = l[2962] +k.operands = l[104] +k.sub = 11 +k.name = "PMULHRSW_XX" +end +do local k = l[2983] +k.orgnames = l[41] +k.opclass = l[2960] +k.operands = l[94] +k.sub = 0 +k.name = "PSHUFB_XM" +end +do local k = l[2984] +k.orgnames = l[41] +k.opclass = l[2962] +k.operands = l[104] +k.sub = 0 +k.name = "PSHUFB_XX" +end +do local k = l[2985] +k.orgnames = l[41] +k.opclass = l[2960] +k.operands = l[94] +k.sub = 8 +k.name = "PSIGNB_XM" +end +do local k = l[2986] +k.orgnames = l[41] +k.opclass = l[2962] +k.operands = l[104] +k.sub = 8 +k.name = "PSIGNB_XX" +end +do local k = l[2987] +k.orgnames = l[41] +k.opclass = l[2960] +k.operands = l[94] +k.sub = 10 +k.name = "PSIGND_XM" +end +do local k = l[2988] +k.orgnames = l[41] +k.opclass = l[2962] +k.operands = l[104] +k.sub = 10 +k.name = "PSIGND_XX" +end +do local k = l[2989] +k.orgnames = l[41] +k.opclass = l[2960] +k.operands = l[94] +k.sub = 9 +k.name = "PSIGNW_XM" +end +do local k = l[2990] +k.orgnames = l[41] +k.opclass = l[2962] +k.operands = l[104] +k.sub = 9 +k.name = "PSIGNW_XX" +end +do local k = l[2991] +k.orgnames = l[62] +k.opclass = l[2992] +k.operands = l[2113] +k.sub = 13 +k.name = "BLENDPD_XMI" +end +do local k = l[2992] +k.isa = l[2993] +k.code = l[64] +k.id = 478 +k.layout = l[2109] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{sse41}|{{MemId, use, p1}, {RegId, use/def, p2}, {Imm, use, p3, 0}}|{}|66-rexR2M1-0f3a|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR 0|{rmem}" +k.prefixclass = l[119] +end +do local k = l[2993] +k[1] = "sse41" +k.id = 28 +k.sig = "{sse41}" +end +do local k = l[2994] +k.orgnames = l[62] +k.opclass = l[2995] +k.operands = l[2123] +k.sub = 13 +k.name = "BLENDPD_XXI" +end +do local k = l[2995] +k.isa = l[2993] +k.code = l[76] +k.id = 490 +k.layout = l[2119] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{sse41}|{{RegId, use, p1}, {RegId, use/def, p2}, {Imm, use, p3, 0}}|{}|66-rexR2B1-0f3a|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR 0|{}" +k.prefixclass = l[122] +end +do local k = l[2996] +k.orgnames = l[62] +k.opclass = l[2997] +k.operands = l[2113] +k.sub = 12 +k.name = "BLENDPS_XMI" +end +do local k = l[2997] +k.isa = l[2993] +k.code = l[64] +k.id = 481 +k.layout = l[2109] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{sse41}|{{MemId, use, p1}, {RegId, use/def, p2}, {Imm, use, p3, 0}}|{}|rexR2M1-0f3a|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR 0|{rmem}" +k.prefixclass = l[2998] +end +do local k = l[2998] +k.extopcode = "0f3a" +k.rex = l[93] +k.id = 73 +k.pref = "" +k.sig = "rexR2M1-0f3a" +end +do local k = l[2999] +k.orgnames = l[62] +k.opclass = l[3000] +k.operands = l[2123] +k.sub = 12 +k.name = "BLENDPS_XXI" +end +do local k = l[3000] +k.isa = l[2993] +k.code = l[76] +k.id = 493 +k.layout = l[2119] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{sse41}|{{RegId, use, p1}, {RegId, use/def, p2}, {Imm, use, p3, 0}}|{}|rexR2B1-0f3a|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR 0|{}" +k.prefixclass = l[3001] +end +do local k = l[3001] +k.extopcode = "0f3a" +k.rex = l[103] +k.id = 70 +k.pref = "" +k.sig = "rexR2B1-0f3a" +end +do local k = l[3002] +k.orgnames = l[3003] +k.opclass = l[3004] +k.operands = l[3007] +k.sub = 21 +k.name = "BLENDVPD_XM_XMM0" +end +do local k = l[3003] +k[1] = "dst" +k[2] = "src" +k[3] = "msk" +k.id = 33 +k.sig = "{dst, src, msk}" +end +do local k = l[3004] +k.isa = l[2993] +k.code = l[7] +k.id = 483 +k.layout = l[89] +k.impregs = l[3005] +k.flags = l[13] +k.parm = 0 +k.sig = "{sse41}|{{MemId, use, p1}, {RegId, use/def, p2}}|{{xmm0, use}}|66-rexR2M1-0f38|{$parm+$sub, !RRMM($p2,$p1)}|PAR 0|{rmem}" +k.prefixclass = l[92] +end +do local k = l[3005] +k[1] = l[3006] +k.id = 25 +k.sig = "{{xmm0, use}}" +end +do local k = l[3006] +k[1] = "xmm0" +k[2] = "use" +end +do local k = l[3007] +k[1] = l[3008] +k[2] = l[3009] +k[3] = l[3010] +k.id = 213 +k.sig = "{{mode = io,type = VR128,name = p2}, {mode = i,type = i128*,name = p1}, {mode = i,type = VR128,name = p3,fixed = xmm0}}" +end +do local k = l[3008] +k.mode = "io" +k.type = "VR128" +k.name = "p2" +end +do local k = l[3009] +k.mode = "i" +k.type = "i128*" +k.name = "p1" +end +do local k = l[3010] +k.mode = "i" +k.type = "VR128" +k.name = "p3" +k.fixed = "xmm0" +end +do local k = l[3011] +k.orgnames = l[3003] +k.opclass = l[3012] +k.operands = l[3013] +k.sub = 21 +k.name = "BLENDVPD_XX_XMM0" +end +do local k = l[3012] +k.isa = l[2993] +k.code = l[22] +k.id = 495 +k.layout = l[99] +k.impregs = l[3005] +k.flags = l[27] +k.parm = 0 +k.sig = "{sse41}|{{RegId, use, p1}, {RegId, use/def, p2}}|{{xmm0, use}}|66-rexR2B1-0f38|{$parm+$sub, !RRMR($p2,$p1)}|PAR 0|{}" +k.prefixclass = l[102] +end +do local k = l[3013] +k[1] = l[3014] +k[2] = l[3015] +k[3] = l[3016] +k.id = 201 +k.sig = "{{mode = io,type = VR128,name = p2}, {mode = i,type = VR128,name = p1}, {mode = i,type = VR128,name = p3,fixed = xmm0}}" +end +do local k = l[3014] +k.mode = "io" +k.type = "VR128" +k.name = "p2" +end +do local k = l[3015] +k.mode = "i" +k.type = "VR128" +k.name = "p1" +end +do local k = l[3016] +k.mode = "i" +k.type = "VR128" +k.name = "p3" +k.fixed = "xmm0" +end +do local k = l[3017] +k.orgnames = l[3003] +k.opclass = l[3004] +k.operands = l[3007] +k.sub = 20 +k.name = "BLENDVPS_XM_XMM0" +end +do local k = l[3018] +k.orgnames = l[3003] +k.opclass = l[3012] +k.operands = l[3013] +k.sub = 20 +k.name = "BLENDVPS_XX_XMM0" +end +do local k = l[3019] +k.orgnames = l[62] +k.opclass = l[3020] +k.operands = l[2113] +k.sub = 1 +k.name = "DPPD_XMI" +end +do local k = l[3020] +k.isa = l[2993] +k.code = l[64] +k.id = 480 +k.layout = l[2109] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{sse41}|{{MemId, use, p1}, {RegId, use/def, p2}, {Imm, use, p3, 0}}|{}|66-rexR2M1-0f3a|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR40|{rmem}" +k.prefixclass = l[119] +end +do local k = l[3021] +k.orgnames = l[62] +k.opclass = l[3022] +k.operands = l[2123] +k.sub = 1 +k.name = "DPPD_XXI" +end +do local k = l[3022] +k.isa = l[2993] +k.code = l[76] +k.id = 492 +k.layout = l[2119] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{sse41}|{{RegId, use, p1}, {RegId, use/def, p2}, {Imm, use, p3, 0}}|{}|66-rexR2B1-0f3a|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR40|{}" +k.prefixclass = l[122] +end +do local k = l[3023] +k.orgnames = l[62] +k.opclass = l[3024] +k.operands = l[2113] +k.sub = 0 +k.name = "DPPS_XMI" +end +do local k = l[3024] +k.isa = l[2993] +k.code = l[64] +k.id = 482 +k.layout = l[2109] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{sse41}|{{MemId, use, p1}, {RegId, use/def, p2}, {Imm, use, p3, 0}}|{}|rexR2M1-0f3a|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR40|{rmem}" +k.prefixclass = l[2998] +end +do local k = l[3025] +k.orgnames = l[62] +k.opclass = l[3026] +k.operands = l[2123] +k.sub = 0 +k.name = "DPPS_XXI" +end +do local k = l[3026] +k.isa = l[2993] +k.code = l[76] +k.id = 494 +k.layout = l[2119] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{sse41}|{{RegId, use, p1}, {RegId, use/def, p2}, {Imm, use, p3, 0}}|{}|rexR2B1-0f3a|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR40|{}" +k.prefixclass = l[3001] +end +do local k = l[3027] +k.orgnames = l[62] +k.opclass = l[3028] +k.operands = l[918] +k.sub = 23 +k.name = "EXTRACTPS_M32XI" +end +do local k = l[3028] +k.isa = l[2993] +k.code = l[64] +k.id = 476 +k.layout = l[175] +k.impregs = l[12] +k.flags = l[179] +k.parm = 0 +k.sig = "{sse41}|{{MemId, use, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{}|66-rexR2M1-0f3a|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR 0|{wmem}" +k.prefixclass = l[119] +end +do local k = l[3029] +k.orgnames = l[62] +k.opclass = l[3030] +k.operands = l[925] +k.sub = 23 +k.name = "EXTRACTPS_WXI" +end +do local k = l[3030] +k.isa = l[2993] +k.code = l[76] +k.id = 486 +k.layout = l[187] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{sse41}|{{RegId, def, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{}|66-rexR2B1-0f3a|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR 0|{}" +k.prefixclass = l[122] +end +do local k = l[3031] +k.orgnames = l[62] +k.opclass = l[3032] +k.operands = l[3033] +k.sub = 1 +k.name = "INSERTPS_XM32I" +end +do local k = l[3032] +k.isa = l[2993] +k.code = l[64] +k.id = 479 +k.layout = l[2109] +k.impregs = l[12] +k.flags = l[13] +k.parm = 32 +k.sig = "{sse41}|{{MemId, use, p1}, {RegId, use/def, p2}, {Imm, use, p3, 0}}|{}|66-rexR2M1-0f3a|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR20|{rmem}" +k.prefixclass = l[119] +end +do local k = l[3033] +k[1] = l[3034] +k[2] = l[3035] +k[3] = l[3036] +k.id = 219 +k.sig = "{{mode = io,type = VR128,name = p2}, {mode = i,type = i32*,name = p1}, {mode = i,type = i8,name = p3}}" +end +do local k = l[3034] +k.mode = "io" +k.type = "VR128" +k.name = "p2" +end +do local k = l[3035] +k.mode = "i" +k.type = "i32*" +k.name = "p1" +end +do local k = l[3036] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[3037] +k.orgnames = l[62] +k.opclass = l[3038] +k.operands = l[2123] +k.sub = 1 +k.name = "INSERTPS_XXI" +end +do local k = l[3038] +k.isa = l[2993] +k.code = l[76] +k.id = 491 +k.layout = l[2119] +k.impregs = l[12] +k.flags = l[27] +k.parm = 32 +k.sig = "{sse41}|{{RegId, use, p1}, {RegId, use/def, p2}, {Imm, use, p3, 0}}|{}|66-rexR2B1-0f3a|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR20|{}" +k.prefixclass = l[122] +end +do local k = l[3039] +k.orgnames = l[3003] +k.opclass = l[3004] +k.operands = l[3007] +k.sub = 16 +k.name = "MASKMOVDQU_XM_XMM0" +end +do local k = l[3040] +k.orgnames = l[3003] +k.opclass = l[3012] +k.operands = l[3013] +k.sub = 16 +k.name = "MASKMOVDQU_XX_XMM0" +end +do local k = l[3041] +k.orgnames = l[41] +k.opclass = l[3042] +k.operands = l[48] +k.sub = 10 +k.name = "MOVNTDQA_XM" +end +do local k = l[3042] +k.isa = l[2993] +k.code = l[7] +k.id = 475 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 32 +k.sig = "{sse41}|{{MemId, use, p1}, {RegId, def, p2}}|{}|66-rexR2M1-0f38|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{rmem}" +k.prefixclass = l[92] +end +do local k = l[3043] +k.orgnames = l[62] +k.opclass = l[3020] +k.operands = l[2113] +k.sub = 2 +k.name = "MPSADBW_XMI" +end +do local k = l[3044] +k.orgnames = l[62] +k.opclass = l[3022] +k.operands = l[2123] +k.sub = 2 +k.name = "MPSADBW_XXI" +end +do local k = l[3045] +k.orgnames = l[41] +k.opclass = l[3046] +k.operands = l[94] +k.sub = 11 +k.name = "PACKUSDW_XM" +end +do local k = l[3046] +k.isa = l[2993] +k.code = l[7] +k.id = 484 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[13] +k.parm = 32 +k.sig = "{sse41}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|66-rexR2M1-0f38|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{rmem}" +k.prefixclass = l[92] +end +do local k = l[3047] +k.orgnames = l[41] +k.opclass = l[3048] +k.operands = l[104] +k.sub = 11 +k.name = "PACKUSDW_XX" +end +do local k = l[3048] +k.isa = l[2993] +k.code = l[22] +k.id = 496 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 32 +k.sig = "{sse41}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|66-rexR2B1-0f38|{$parm+$sub, !RRMR($p2,$p1)}|PAR20|{}" +k.prefixclass = l[102] +end +do local k = l[3049] +k.orgnames = l[3003] +k.opclass = l[3004] +k.operands = l[3007] +k.sub = 16 +k.name = "PBLENDVB_XM_XMM0" +end +do local k = l[3050] +k.orgnames = l[3003] +k.opclass = l[3012] +k.operands = l[3013] +k.sub = 16 +k.name = "PBLENDVB_XX_XMM0" +end +do local k = l[3051] +k.orgnames = l[62] +k.opclass = l[2992] +k.operands = l[2113] +k.sub = 14 +k.name = "PBLENDW_XMI" +end +do local k = l[3052] +k.orgnames = l[62] +k.opclass = l[2995] +k.operands = l[2123] +k.sub = 14 +k.name = "PBLENDW_XXI" +end +do local k = l[3053] +k.orgnames = l[41] +k.opclass = l[3046] +k.operands = l[94] +k.sub = 9 +k.name = "PCMPEQQ_XM" +end +do local k = l[3054] +k.orgnames = l[41] +k.opclass = l[3048] +k.operands = l[104] +k.sub = 9 +k.name = "PCMPEQQ_XX" +end +do local k = l[3055] +k.orgnames = l[41] +k.opclass = l[3046] +k.operands = l[94] +k.sub = 23 +k.name = "PCMPGTQ_XM" +end +do local k = l[3056] +k.orgnames = l[41] +k.opclass = l[3048] +k.operands = l[104] +k.sub = 23 +k.name = "PCMPGTQ_XX" +end +do local k = l[3057] +k.orgnames = l[62] +k.opclass = l[3028] +k.operands = l[1439] +k.sub = 20 +k.name = "PEXTRB128_M8XI" +end +do local k = l[3058] +k.orgnames = l[62] +k.opclass = l[3030] +k.operands = l[1444] +k.sub = 20 +k.name = "PEXTRB128_WXI" +end +do local k = l[3059] +k.orgnames = l[62] +k.opclass = l[3028] +k.operands = l[918] +k.sub = 22 +k.name = "PEXTRD128_M32XI" +end +do local k = l[3060] +k.orgnames = l[62] +k.opclass = l[3030] +k.operands = l[1444] +k.sub = 22 +k.name = "PEXTRD128_WXI" +end +do local k = l[3061] +k.orgnames = l[62] +k.opclass = l[3028] +k.operands = l[1451] +k.sub = 21 +k.name = "PEXTRWX128_M16XI" +end +do local k = l[3062] +k.orgnames = l[62] +k.opclass = l[3030] +k.operands = l[1444] +k.sub = 21 +k.name = "PEXTRWX128_WXI" +end +do local k = l[3063] +k.orgnames = l[41] +k.opclass = l[3064] +k.operands = l[94] +k.sub = 1 +k.name = "PHMINPOSUW_XM" +end +do local k = l[3064] +k.isa = l[2993] +k.code = l[7] +k.id = 485 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{sse41}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|66-rexR2M1-0f38|{$parm+$sub, !RRMM($p2,$p1)}|PAR40|{rmem}" +k.prefixclass = l[92] +end +do local k = l[3065] +k.orgnames = l[41] +k.opclass = l[3066] +k.operands = l[104] +k.sub = 1 +k.name = "PHMINPOSUW_XX" +end +do local k = l[3066] +k.isa = l[2993] +k.code = l[22] +k.id = 497 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{sse41}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|66-rexR2B1-0f38|{$parm+$sub, !RRMR($p2,$p1)}|PAR40|{}" +k.prefixclass = l[102] +end +do local k = l[3067] +k.orgnames = l[62] +k.opclass = l[3032] +k.operands = l[3068] +k.sub = 0 +k.name = "PINSRB_XM8I" +end +do local k = l[3068] +k[1] = l[3069] +k[2] = l[3070] +k[3] = l[3071] +k.id = 290 +k.sig = "{{mode = io,type = VR128,name = p2}, {mode = i,type = i8*,name = p1}, {mode = i,type = i8,name = p3}}" +end +do local k = l[3069] +k.mode = "io" +k.type = "VR128" +k.name = "p2" +end +do local k = l[3070] +k.mode = "i" +k.type = "i8*" +k.name = "p1" +end +do local k = l[3071] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[3072] +k.orgnames = l[62] +k.opclass = l[3038] +k.operands = l[2814] +k.sub = 0 +k.name = "PINSRB_XWI" +end +do local k = l[3073] +k.orgnames = l[62] +k.opclass = l[3032] +k.operands = l[3033] +k.sub = 2 +k.name = "PINSRD_XM32I" +end +do local k = l[3074] +k.orgnames = l[62] +k.opclass = l[3038] +k.operands = l[2814] +k.sub = 2 +k.name = "PINSRD_XWI" +end +do local k = l[3075] +k.orgnames = l[41] +k.opclass = l[3046] +k.operands = l[94] +k.sub = 28 +k.name = "PMAXSB_XM" +end +do local k = l[3076] +k.orgnames = l[41] +k.opclass = l[3048] +k.operands = l[104] +k.sub = 28 +k.name = "PMAXSB_XX" +end +do local k = l[3077] +k.orgnames = l[41] +k.opclass = l[3046] +k.operands = l[94] +k.sub = 29 +k.name = "PMAXSD_XM" +end +do local k = l[3078] +k.orgnames = l[41] +k.opclass = l[3048] +k.operands = l[104] +k.sub = 29 +k.name = "PMAXSD_XX" +end +do local k = l[3079] +k.orgnames = l[41] +k.opclass = l[3046] +k.operands = l[94] +k.sub = 31 +k.name = "PMAXUD_XM" +end +do local k = l[3080] +k.orgnames = l[41] +k.opclass = l[3048] +k.operands = l[104] +k.sub = 31 +k.name = "PMAXUD_XX" +end +do local k = l[3081] +k.orgnames = l[41] +k.opclass = l[3046] +k.operands = l[94] +k.sub = 30 +k.name = "PMAXUW_XM" +end +do local k = l[3082] +k.orgnames = l[41] +k.opclass = l[3048] +k.operands = l[104] +k.sub = 30 +k.name = "PMAXUW_XX" +end +do local k = l[3083] +k.orgnames = l[41] +k.opclass = l[3046] +k.operands = l[94] +k.sub = 24 +k.name = "PMINSB_XM" +end +do local k = l[3084] +k.orgnames = l[41] +k.opclass = l[3048] +k.operands = l[104] +k.sub = 24 +k.name = "PMINSB_XX" +end +do local k = l[3085] +k.orgnames = l[41] +k.opclass = l[3046] +k.operands = l[94] +k.sub = 25 +k.name = "PMINSD_XM" +end +do local k = l[3086] +k.orgnames = l[41] +k.opclass = l[3048] +k.operands = l[104] +k.sub = 25 +k.name = "PMINSD_XX" +end +do local k = l[3087] +k.orgnames = l[41] +k.opclass = l[3046] +k.operands = l[94] +k.sub = 27 +k.name = "PMINUD_XM" +end +do local k = l[3088] +k.orgnames = l[41] +k.opclass = l[3048] +k.operands = l[104] +k.sub = 27 +k.name = "PMINUD_XX" +end +do local k = l[3089] +k.orgnames = l[41] +k.opclass = l[3046] +k.operands = l[94] +k.sub = 26 +k.name = "PMINUW_XM" +end +do local k = l[3090] +k.orgnames = l[41] +k.opclass = l[3048] +k.operands = l[104] +k.sub = 26 +k.name = "PMINUW_XX" +end +do local k = l[3091] +k.orgnames = l[41] +k.opclass = l[3042] +k.operands = l[327] +k.sub = 1 +k.name = "PMOVSXBD_XM32" +end +do local k = l[3092] +k.orgnames = l[41] +k.opclass = l[3093] +k.operands = l[58] +k.sub = 1 +k.name = "PMOVSXBD_XR" +end +do local k = l[3093] +k.isa = l[2993] +k.code = l[22] +k.id = 488 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 32 +k.sig = "{sse41}|{{RegId, use, p1}, {RegId, def, p2}}|{}|66-rexR2B1-0f38|{$parm+$sub, !RRMR($p2,$p1)}|PAR20|{}" +k.prefixclass = l[102] +end +do local k = l[3094] +k.orgnames = l[41] +k.opclass = l[3042] +k.operands = l[349] +k.sub = 2 +k.name = "PMOVSXBQ_XM16" +end +do local k = l[3095] +k.orgnames = l[41] +k.opclass = l[3093] +k.operands = l[58] +k.sub = 2 +k.name = "PMOVSXBQ_XR" +end +do local k = l[3096] +k.orgnames = l[41] +k.opclass = l[3042] +k.operands = l[339] +k.sub = 0 +k.name = "PMOVSXBW_XM64" +end +do local k = l[3097] +k.orgnames = l[41] +k.opclass = l[3093] +k.operands = l[58] +k.sub = 0 +k.name = "PMOVSXBW_XR" +end +do local k = l[3098] +k.orgnames = l[41] +k.opclass = l[3042] +k.operands = l[339] +k.sub = 5 +k.name = "PMOVSXDQ_XM64" +end +do local k = l[3099] +k.orgnames = l[41] +k.opclass = l[3093] +k.operands = l[58] +k.sub = 5 +k.name = "PMOVSXDQ_XR" +end +do local k = l[3100] +k.orgnames = l[41] +k.opclass = l[3042] +k.operands = l[339] +k.sub = 3 +k.name = "PMOVSXWD_XM64" +end +do local k = l[3101] +k.orgnames = l[41] +k.opclass = l[3093] +k.operands = l[58] +k.sub = 3 +k.name = "PMOVSXWD_XR" +end +do local k = l[3102] +k.orgnames = l[41] +k.opclass = l[3042] +k.operands = l[327] +k.sub = 4 +k.name = "PMOVSXWQ_XM32" +end +do local k = l[3103] +k.orgnames = l[41] +k.opclass = l[3093] +k.operands = l[58] +k.sub = 4 +k.name = "PMOVSXWQ_XR" +end +do local k = l[3104] +k.orgnames = l[41] +k.opclass = l[3042] +k.operands = l[327] +k.sub = 17 +k.name = "PMOVZXBD_XM32" +end +do local k = l[3105] +k.orgnames = l[41] +k.opclass = l[3093] +k.operands = l[58] +k.sub = 17 +k.name = "PMOVZXBD_XR" +end +do local k = l[3106] +k.orgnames = l[41] +k.opclass = l[3042] +k.operands = l[349] +k.sub = 18 +k.name = "PMOVZXBQ_XM16" +end +do local k = l[3107] +k.orgnames = l[41] +k.opclass = l[3093] +k.operands = l[58] +k.sub = 18 +k.name = "PMOVZXBQ_XR" +end +do local k = l[3108] +k.orgnames = l[41] +k.opclass = l[3042] +k.operands = l[339] +k.sub = 16 +k.name = "PMOVZXBW_XM64" +end +do local k = l[3109] +k.orgnames = l[41] +k.opclass = l[3093] +k.operands = l[58] +k.sub = 16 +k.name = "PMOVZXBW_XR" +end +do local k = l[3110] +k.orgnames = l[41] +k.opclass = l[3042] +k.operands = l[339] +k.sub = 21 +k.name = "PMOVZXDQ_XM64" +end +do local k = l[3111] +k.orgnames = l[41] +k.opclass = l[3093] +k.operands = l[58] +k.sub = 21 +k.name = "PMOVZXDQ_XR" +end +do local k = l[3112] +k.orgnames = l[41] +k.opclass = l[3042] +k.operands = l[339] +k.sub = 19 +k.name = "PMOVZXWD_XM64" +end +do local k = l[3113] +k.orgnames = l[41] +k.opclass = l[3093] +k.operands = l[58] +k.sub = 19 +k.name = "PMOVZXWD_XR" +end +do local k = l[3114] +k.orgnames = l[41] +k.opclass = l[3042] +k.operands = l[327] +k.sub = 20 +k.name = "PMOVZXWQ_XM32" +end +do local k = l[3115] +k.orgnames = l[41] +k.opclass = l[3093] +k.operands = l[58] +k.sub = 20 +k.name = "PMOVZXWQ_XR" +end +do local k = l[3116] +k.orgnames = l[41] +k.opclass = l[3046] +k.operands = l[94] +k.sub = 8 +k.name = "PMULDQ_XM" +end +do local k = l[3117] +k.orgnames = l[41] +k.opclass = l[3048] +k.operands = l[104] +k.sub = 8 +k.name = "PMULDQ_XX" +end +do local k = l[3118] +k.orgnames = l[41] +k.opclass = l[3064] +k.operands = l[94] +k.sub = 0 +k.name = "PMULLD_XM" +end +do local k = l[3119] +k.orgnames = l[41] +k.opclass = l[3066] +k.operands = l[104] +k.sub = 0 +k.name = "PMULLD_XX" +end +do local k = l[3120] +k.orgnames = l[41] +k.opclass = l[3121] +k.operands = l[1011] +k.sub = 23 +k.name = "PTEST_XM" +end +do local k = l[3121] +k.isa = l[2993] +k.code = l[7] +k.id = 477 +k.layout = l[694] +k.impregs = l[697] +k.flags = l[699] +k.parm = 0 +k.sig = "{sse41}|{{MemId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|66-rexR2M1-0f38|{$parm+$sub, !RRMM($p2,$p1)}|PAR 0|{rmem, wflags}" +k.prefixclass = l[92] +end +do local k = l[3122] +k.orgnames = l[41] +k.opclass = l[3123] +k.operands = l[711] +k.sub = 23 +k.name = "PTEST_XX" +end +do local k = l[3123] +k.isa = l[2993] +k.code = l[22] +k.id = 489 +k.layout = l[706] +k.impregs = l[697] +k.flags = l[709] +k.parm = 0 +k.sig = "{sse41}|{{RegId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|66-rexR2B1-0f38|{$parm+$sub, !RRMR($p2,$p1)}|PAR 0|{wflags}" +k.prefixclass = l[102] +end +do local k = l[3124] +k.orgnames = l[62] +k.opclass = l[3125] +k.operands = l[70] +k.sub = 9 +k.name = "ROUNDPD_XMI" +end +do local k = l[3125] +k.isa = l[2993] +k.code = l[64] +k.id = 474 +k.layout = l[65] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{sse41}|{{MemId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|66-rexR2M1-0f3a|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR 0|{rmem}" +k.prefixclass = l[119] +end +do local k = l[3126] +k.orgnames = l[62] +k.opclass = l[3127] +k.operands = l[82] +k.sub = 9 +k.name = "ROUNDPD_XXI" +end +do local k = l[3127] +k.isa = l[2993] +k.code = l[76] +k.id = 487 +k.layout = l[77] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{sse41}|{{RegId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|66-rexR2B1-0f3a|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR 0|{}" +k.prefixclass = l[122] +end +do local k = l[3128] +k.orgnames = l[62] +k.opclass = l[3125] +k.operands = l[70] +k.sub = 8 +k.name = "ROUNDPS_XMI" +end +do local k = l[3129] +k.orgnames = l[62] +k.opclass = l[3127] +k.operands = l[82] +k.sub = 8 +k.name = "ROUNDPS_XXI" +end +do local k = l[3130] +k.orgnames = l[62] +k.opclass = l[2992] +k.operands = l[3131] +k.sub = 11 +k.name = "ROUNDSD_XM64I" +end +do local k = l[3131] +k[1] = l[3132] +k[2] = l[3133] +k[3] = l[3134] +k.id = 263 +k.sig = "{{mode = io,type = VR128,name = p2}, {mode = i,type = i64*,name = p1}, {mode = i,type = i8,name = p3}}" +end +do local k = l[3132] +k.mode = "io" +k.type = "VR128" +k.name = "p2" +end +do local k = l[3133] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[3134] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[3135] +k.orgnames = l[62] +k.opclass = l[2995] +k.operands = l[2123] +k.sub = 11 +k.name = "ROUNDSD_XXI" +end +do local k = l[3136] +k.orgnames = l[62] +k.opclass = l[2992] +k.operands = l[3033] +k.sub = 10 +k.name = "ROUNDSS_XM32I" +end +do local k = l[3137] +k.orgnames = l[62] +k.opclass = l[2995] +k.operands = l[2123] +k.sub = 10 +k.name = "ROUNDSS_XXI" +end +do local k = l[3138] +k.orgnames = l[41] +k.opclass = l[3139] +k.operands = l[3142] +k.sub = 16 +k.name = "CRC32_WB" +end +do local k = l[3139] +k.isa = l[3140] +k.code = l[22] +k.id = 507 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 224 +k.sig = "{sse42}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|f2-rexR2B1-0f38|{$parm+$sub, !RRMR($p2,$p1)}|PARE0|{}" +k.prefixclass = l[3141] +end +do local k = l[3140] +k[1] = "sse42" +k.id = 2 +k.sig = "{sse42}" +end +do local k = l[3141] +k.extopcode = "0f38" +k.rex = l[103] +k.id = 4 +k.pref = "f2" +k.sig = "f2-rexR2B1-0f38" +end +do local k = l[3142] +k[1] = l[3143] +k[2] = l[3144] +k.id = 9 +k.sig = "{{mode = io,type = GR32,name = p2}, {mode = i,type = GR8,name = p1}}" +end +do local k = l[3143] +k.mode = "io" +k.type = "GR32" +k.name = "p2" +end +do local k = l[3144] +k.mode = "i" +k.type = "GR8" +k.name = "p1" +end +do local k = l[3145] +k.orgnames = l[41] +k.opclass = l[3139] +k.operands = l[3146] +k.sub = 17 +k.name = "CRC32_WH" +end +do local k = l[3146] +k[1] = l[3147] +k[2] = l[3148] +k.id = 22 +k.sig = "{{mode = io,type = GR32,name = p2}, {mode = i,type = GR16,name = p1}}" +end +do local k = l[3147] +k.mode = "io" +k.type = "GR32" +k.name = "p2" +end +do local k = l[3148] +k.mode = "i" +k.type = "GR16" +k.name = "p1" +end +do local k = l[3149] +k.orgnames = l[41] +k.opclass = l[3150] +k.operands = l[3152] +k.sub = 17 +k.name = "CRC32_WM16" +end +do local k = l[3150] +k.isa = l[3140] +k.code = l[7] +k.id = 502 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[13] +k.parm = 224 +k.sig = "{sse42}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|f2-rexR2M1-0f38|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{rmem}" +k.prefixclass = l[3151] +end +do local k = l[3151] +k.extopcode = "0f38" +k.rex = l[93] +k.id = 38 +k.pref = "f2" +k.sig = "f2-rexR2M1-0f38" +end +do local k = l[3152] +k[1] = l[3153] +k[2] = l[3154] +k.id = 114 +k.sig = "{{mode = io,type = GR32,name = p2}, {mode = i,type = i16*,name = p1}}" +end +do local k = l[3153] +k.mode = "io" +k.type = "GR32" +k.name = "p2" +end +do local k = l[3154] +k.mode = "i" +k.type = "i16*" +k.name = "p1" +end +do local k = l[3155] +k.orgnames = l[41] +k.opclass = l[3150] +k.operands = l[2146] +k.sub = 17 +k.name = "CRC32_WM32" +end +do local k = l[3156] +k.orgnames = l[41] +k.opclass = l[3150] +k.operands = l[3157] +k.sub = 16 +k.name = "CRC32_WM8" +end +do local k = l[3157] +k[1] = l[3158] +k[2] = l[3159] +k.id = 104 +k.sig = "{{mode = io,type = GR32,name = p2}, {mode = i,type = i8*,name = p1}}" +end +do local k = l[3158] +k.mode = "io" +k.type = "GR32" +k.name = "p2" +end +do local k = l[3159] +k.mode = "i" +k.type = "i8*" +k.name = "p1" +end +do local k = l[3160] +k.orgnames = l[41] +k.opclass = l[3139] +k.operands = l[2151] +k.sub = 17 +k.name = "CRC32_WW" +end +do local k = l[3161] +k.orgnames = l[1315] +k.opclass = l[3162] +k.operands = l[1322] +k.sub = 1 +k.name = "PCMPESTRI_ECX_X_EAX_M_EDX_I" +end +do local k = l[3162] +k.isa = l[3140] +k.code = l[64] +k.id = 499 +k.layout = l[175] +k.impregs = l[1317] +k.flags = l[699] +k.parm = 96 +k.sig = "{sse42}|{{MemId, use, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{{rcx, def}, {rax, use}, {rdx, use}, {FLAGS, def}}|66-rexR2M1-0f3a|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR60|{rmem, wflags}" +k.prefixclass = l[119] +end +do local k = l[3163] +k.orgnames = l[1315] +k.opclass = l[3164] +k.operands = l[1335] +k.sub = 1 +k.name = "PCMPESTRI_ECX_X_EAX_X_EDX_I" +end +do local k = l[3164] +k.isa = l[3140] +k.code = l[76] +k.id = 504 +k.layout = l[1331] +k.impregs = l[1317] +k.flags = l[709] +k.parm = 96 +k.sig = "{sse42}|{{RegId, use, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{{rcx, def}, {rax, use}, {rdx, use}, {FLAGS, def}}|66-rexR2B1-0f3a|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR60|{wflags}" +k.prefixclass = l[122] +end +do local k = l[3165] +k.orgnames = l[1315] +k.opclass = l[3166] +k.operands = l[1349] +k.sub = 0 +k.name = "PCMPESTRM_XMM0_X_EAX_M_EDX_I" +end +do local k = l[3166] +k.isa = l[3140] +k.code = l[64] +k.id = 501 +k.layout = l[175] +k.impregs = l[1344] +k.flags = l[699] +k.parm = 96 +k.sig = "{sse42}|{{MemId, use, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{{xmm0, def}, {rax, use}, {rdx, use}, {FLAGS, def}}|66-rexR2M1-0f3a|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR60|{rmem, wflags}" +k.prefixclass = l[119] +end +do local k = l[3167] +k.orgnames = l[1315] +k.opclass = l[3168] +k.operands = l[1358] +k.sub = 0 +k.name = "PCMPESTRM_XMM0_X_EAX_X_EDX_I" +end +do local k = l[3168] +k.isa = l[3140] +k.code = l[76] +k.id = 506 +k.layout = l[1331] +k.impregs = l[1344] +k.flags = l[709] +k.parm = 96 +k.sig = "{sse42}|{{RegId, use, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{{xmm0, def}, {rax, use}, {rdx, use}, {FLAGS, def}}|66-rexR2B1-0f3a|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR60|{wflags}" +k.prefixclass = l[122] +end +do local k = l[3169] +k.orgnames = l[1382] +k.opclass = l[3170] +k.operands = l[1387] +k.sub = 3 +k.name = "PCMPISTRI_ECX_XMI" +end +do local k = l[3170] +k.isa = l[3140] +k.code = l[64] +k.id = 498 +k.layout = l[175] +k.impregs = l[1384] +k.flags = l[699] +k.parm = 96 +k.sig = "{sse42}|{{MemId, use, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{{rcx, def}, {FLAGS, def}}|66-rexR2M1-0f3a|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR60|{rmem, wflags}" +k.prefixclass = l[119] +end +do local k = l[3171] +k.orgnames = l[1382] +k.opclass = l[3172] +k.operands = l[1394] +k.sub = 3 +k.name = "PCMPISTRI_ECX_XXI" +end +do local k = l[3172] +k.isa = l[3140] +k.code = l[76] +k.id = 503 +k.layout = l[1331] +k.impregs = l[1384] +k.flags = l[709] +k.parm = 96 +k.sig = "{sse42}|{{RegId, use, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{{rcx, def}, {FLAGS, def}}|66-rexR2B1-0f3a|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR60|{wflags}" +k.prefixclass = l[122] +end +do local k = l[3173] +k.orgnames = l[1382] +k.opclass = l[3174] +k.operands = l[1404] +k.sub = 2 +k.name = "PCMPISTRM_XMM0_XMI" +end +do local k = l[3174] +k.isa = l[3140] +k.code = l[64] +k.id = 500 +k.layout = l[175] +k.impregs = l[1401] +k.flags = l[699] +k.parm = 96 +k.sig = "{sse42}|{{MemId, use, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{{xmm0, def}, {FLAGS, def}}|66-rexR2M1-0f3a|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR60|{rmem, wflags}" +k.prefixclass = l[119] +end +do local k = l[3175] +k.orgnames = l[1382] +k.opclass = l[3176] +k.operands = l[1411] +k.sub = 2 +k.name = "PCMPISTRM_XMM0_XXI" +end +do local k = l[3176] +k.isa = l[3140] +k.code = l[76] +k.id = 505 +k.layout = l[1331] +k.impregs = l[1401] +k.flags = l[709] +k.parm = 96 +k.sig = "{sse42}|{{RegId, use, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{{xmm0, def}, {FLAGS, def}}|66-rexR2B1-0f3a|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR60|{wflags}" +k.prefixclass = l[122] +end +do local k = l[3177] +k.orgnames = l[41] +k.opclass = l[3178] +k.operands = l[94] +k.sub = 24 +k.name = "ADDPD_XM" +end +do local k = l[3178] +k.isa = l[3179] +k.code = l[7] +k.id = 527 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{sse}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|66-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR40|{rmem}" +k.prefixclass = l[2140] +end +do local k = l[3179] +k[1] = "sse" +k.id = 21 +k.sig = "{sse}" +end +do local k = l[3180] +k.orgnames = l[41] +k.opclass = l[3181] +k.operands = l[104] +k.sub = 24 +k.name = "ADDPD_XX" +end +do local k = l[3181] +k.isa = l[3179] +k.code = l[22] +k.id = 548 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{sse}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|66-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR40|{}" +k.prefixclass = l[2133] +end +do local k = l[3182] +k.orgnames = l[41] +k.opclass = l[3183] +k.operands = l[94] +k.sub = 24 +k.name = "ADDPS_XM" +end +do local k = l[3183] +k.isa = l[3179] +k.code = l[7] +k.id = 533 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{sse}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR40|{rmem}" +k.prefixclass = l[2027] +end +do local k = l[3184] +k.orgnames = l[41] +k.opclass = l[3185] +k.operands = l[104] +k.sub = 24 +k.name = "ADDPS_XX" +end +do local k = l[3185] +k.isa = l[3179] +k.code = l[22] +k.id = 556 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{sse}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR40|{}" +k.prefixclass = l[2030] +end +do local k = l[3186] +k.orgnames = l[41] +k.opclass = l[3178] +k.operands = l[94] +k.sub = 21 +k.name = "ANDNPD_XM" +end +do local k = l[3187] +k.orgnames = l[41] +k.opclass = l[3181] +k.operands = l[104] +k.sub = 21 +k.name = "ANDNPD_XX" +end +do local k = l[3188] +k.orgnames = l[41] +k.opclass = l[3183] +k.operands = l[94] +k.sub = 21 +k.name = "ANDNPS_XM" +end +do local k = l[3189] +k.orgnames = l[41] +k.opclass = l[3185] +k.operands = l[104] +k.sub = 21 +k.name = "ANDNPS_XX" +end +do local k = l[3190] +k.orgnames = l[41] +k.opclass = l[3178] +k.operands = l[94] +k.sub = 20 +k.name = "ANDPD_XM" +end +do local k = l[3191] +k.orgnames = l[41] +k.opclass = l[3181] +k.operands = l[104] +k.sub = 20 +k.name = "ANDPD_XX" +end +do local k = l[3192] +k.orgnames = l[41] +k.opclass = l[3183] +k.operands = l[94] +k.sub = 20 +k.name = "ANDPS_XM" +end +do local k = l[3193] +k.orgnames = l[41] +k.opclass = l[3185] +k.operands = l[104] +k.sub = 20 +k.name = "ANDPS_XX" +end +do local k = l[3194] +k.orgnames = l[41] +k.opclass = l[3195] +k.operands = l[94] +k.sub = 0 +k.name = "CMPEQPD_XM" +end +do local k = l[3195] +k.isa = l[3179] +k.code = l[572] +k.id = 528 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[13] +k.parm = 194 +k.sig = "{sse}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|66-rexR2M1-0f|{$parm, !RRMM($p2,$p1), !I8($sub)}|PARC2|{rmem}" +k.prefixclass = l[2140] +end +do local k = l[3196] +k.orgnames = l[41] +k.opclass = l[3197] +k.operands = l[104] +k.sub = 0 +k.name = "CMPEQPD_XX" +end +do local k = l[3197] +k.isa = l[3179] +k.code = l[575] +k.id = 549 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 194 +k.sig = "{sse}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|66-rexR2B1-0f|{$parm, !RRMR($p2,$p1), !I8($sub)}|PARC2|{}" +k.prefixclass = l[2133] +end +do local k = l[3198] +k.orgnames = l[41] +k.opclass = l[3199] +k.operands = l[94] +k.sub = 0 +k.name = "CMPEQPS_XM" +end +do local k = l[3199] +k.isa = l[3179] +k.code = l[572] +k.id = 534 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[13] +k.parm = 194 +k.sig = "{sse}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|rexR2M1-0f|{$parm, !RRMM($p2,$p1), !I8($sub)}|PARC2|{rmem}" +k.prefixclass = l[2027] +end +do local k = l[3200] +k.orgnames = l[41] +k.opclass = l[3201] +k.operands = l[104] +k.sub = 0 +k.name = "CMPEQPS_XX" +end +do local k = l[3201] +k.isa = l[3179] +k.code = l[575] +k.id = 557 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 194 +k.sig = "{sse}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|rexR2B1-0f|{$parm, !RRMR($p2,$p1), !I8($sub)}|PARC2|{}" +k.prefixclass = l[2030] +end +do local k = l[3202] +k.orgnames = l[41] +k.opclass = l[3203] +k.operands = l[2661] +k.sub = 0 +k.name = "CMPEQSD_XM64" +end +do local k = l[3203] +k.isa = l[3179] +k.code = l[572] +k.id = 529 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[13] +k.parm = 194 +k.sig = "{sse}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|f2-rexR2M1-0f|{$parm, !RRMM($p2,$p1), !I8($sub)}|PARC2|{rmem}" +k.prefixclass = l[2635] +end +do local k = l[3204] +k.orgnames = l[41] +k.opclass = l[3205] +k.operands = l[104] +k.sub = 0 +k.name = "CMPEQSD_XX" +end +do local k = l[3205] +k.isa = l[3179] +k.code = l[575] +k.id = 551 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 194 +k.sig = "{sse}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|f2-rexR2B1-0f|{$parm, !RRMR($p2,$p1), !I8($sub)}|PARC2|{}" +k.prefixclass = l[2638] +end +do local k = l[3206] +k.orgnames = l[41] +k.opclass = l[3207] +k.operands = l[2673] +k.sub = 0 +k.name = "CMPEQSS_XM32" +end +do local k = l[3207] +k.isa = l[3179] +k.code = l[572] +k.id = 531 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[13] +k.parm = 194 +k.sig = "{sse}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|f3-rexR2M1-0f|{$parm, !RRMM($p2,$p1), !I8($sub)}|PARC2|{rmem}" +k.prefixclass = l[2540] +end +do local k = l[3208] +k.orgnames = l[41] +k.opclass = l[3209] +k.operands = l[104] +k.sub = 0 +k.name = "CMPEQSS_XX" +end +do local k = l[3209] +k.isa = l[3179] +k.code = l[575] +k.id = 554 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 194 +k.sig = "{sse}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|f3-rexR2B1-0f|{$parm, !RRMR($p2,$p1), !I8($sub)}|PARC2|{}" +k.prefixclass = l[2543] +end +do local k = l[3210] +k.orgnames = l[41] +k.opclass = l[3195] +k.operands = l[94] +k.sub = 2 +k.name = "CMPLEPD_XM" +end +do local k = l[3211] +k.orgnames = l[41] +k.opclass = l[3197] +k.operands = l[104] +k.sub = 2 +k.name = "CMPLEPD_XX" +end +do local k = l[3212] +k.orgnames = l[41] +k.opclass = l[3199] +k.operands = l[94] +k.sub = 2 +k.name = "CMPLEPS_XM" +end +do local k = l[3213] +k.orgnames = l[41] +k.opclass = l[3201] +k.operands = l[104] +k.sub = 2 +k.name = "CMPLEPS_XX" +end +do local k = l[3214] +k.orgnames = l[41] +k.opclass = l[3203] +k.operands = l[2661] +k.sub = 2 +k.name = "CMPLESD_XM64" +end +do local k = l[3215] +k.orgnames = l[41] +k.opclass = l[3205] +k.operands = l[104] +k.sub = 2 +k.name = "CMPLESD_XX" +end +do local k = l[3216] +k.orgnames = l[41] +k.opclass = l[3207] +k.operands = l[2673] +k.sub = 2 +k.name = "CMPLESS_XM32" +end +do local k = l[3217] +k.orgnames = l[41] +k.opclass = l[3209] +k.operands = l[104] +k.sub = 2 +k.name = "CMPLESS_XX" +end +do local k = l[3218] +k.orgnames = l[41] +k.opclass = l[3195] +k.operands = l[94] +k.sub = 1 +k.name = "CMPLTPD_XM" +end +do local k = l[3219] +k.orgnames = l[41] +k.opclass = l[3197] +k.operands = l[104] +k.sub = 1 +k.name = "CMPLTPD_XX" +end +do local k = l[3220] +k.orgnames = l[41] +k.opclass = l[3199] +k.operands = l[94] +k.sub = 1 +k.name = "CMPLTPS_XM" +end +do local k = l[3221] +k.orgnames = l[41] +k.opclass = l[3201] +k.operands = l[104] +k.sub = 1 +k.name = "CMPLTPS_XX" +end +do local k = l[3222] +k.orgnames = l[41] +k.opclass = l[3203] +k.operands = l[2661] +k.sub = 1 +k.name = "CMPLTSD_XM64" +end +do local k = l[3223] +k.orgnames = l[41] +k.opclass = l[3205] +k.operands = l[104] +k.sub = 1 +k.name = "CMPLTSD_XX" +end +do local k = l[3224] +k.orgnames = l[41] +k.opclass = l[3207] +k.operands = l[2673] +k.sub = 1 +k.name = "CMPLTSS_XM32" +end +do local k = l[3225] +k.orgnames = l[41] +k.opclass = l[3209] +k.operands = l[104] +k.sub = 1 +k.name = "CMPLTSS_XX" +end +do local k = l[3226] +k.orgnames = l[41] +k.opclass = l[3195] +k.operands = l[94] +k.sub = 4 +k.name = "CMPNEQPD_XM" +end +do local k = l[3227] +k.orgnames = l[41] +k.opclass = l[3197] +k.operands = l[104] +k.sub = 4 +k.name = "CMPNEQPD_XX" +end +do local k = l[3228] +k.orgnames = l[41] +k.opclass = l[3199] +k.operands = l[94] +k.sub = 4 +k.name = "CMPNEQPS_XM" +end +do local k = l[3229] +k.orgnames = l[41] +k.opclass = l[3201] +k.operands = l[104] +k.sub = 4 +k.name = "CMPNEQPS_XX" +end +do local k = l[3230] +k.orgnames = l[41] +k.opclass = l[3203] +k.operands = l[2661] +k.sub = 4 +k.name = "CMPNEQSD_XM64" +end +do local k = l[3231] +k.orgnames = l[41] +k.opclass = l[3205] +k.operands = l[104] +k.sub = 4 +k.name = "CMPNEQSD_XX" +end +do local k = l[3232] +k.orgnames = l[41] +k.opclass = l[3207] +k.operands = l[2673] +k.sub = 4 +k.name = "CMPNEQSS_XM32" +end +do local k = l[3233] +k.orgnames = l[41] +k.opclass = l[3209] +k.operands = l[104] +k.sub = 4 +k.name = "CMPNEQSS_XX" +end +do local k = l[3234] +k.orgnames = l[41] +k.opclass = l[3195] +k.operands = l[94] +k.sub = 6 +k.name = "CMPNLEPD_XM" +end +do local k = l[3235] +k.orgnames = l[41] +k.opclass = l[3197] +k.operands = l[104] +k.sub = 6 +k.name = "CMPNLEPD_XX" +end +do local k = l[3236] +k.orgnames = l[41] +k.opclass = l[3199] +k.operands = l[94] +k.sub = 6 +k.name = "CMPNLEPS_XM" +end +do local k = l[3237] +k.orgnames = l[41] +k.opclass = l[3201] +k.operands = l[104] +k.sub = 6 +k.name = "CMPNLEPS_XX" +end +do local k = l[3238] +k.orgnames = l[41] +k.opclass = l[3203] +k.operands = l[2661] +k.sub = 6 +k.name = "CMPNLESD_XM64" +end +do local k = l[3239] +k.orgnames = l[41] +k.opclass = l[3205] +k.operands = l[104] +k.sub = 6 +k.name = "CMPNLESD_XX" +end +do local k = l[3240] +k.orgnames = l[41] +k.opclass = l[3207] +k.operands = l[2673] +k.sub = 6 +k.name = "CMPNLESS_XM32" +end +do local k = l[3241] +k.orgnames = l[41] +k.opclass = l[3209] +k.operands = l[104] +k.sub = 6 +k.name = "CMPNLESS_XX" +end +do local k = l[3242] +k.orgnames = l[41] +k.opclass = l[3195] +k.operands = l[94] +k.sub = 5 +k.name = "CMPNLTPD_XM" +end +do local k = l[3243] +k.orgnames = l[41] +k.opclass = l[3197] +k.operands = l[104] +k.sub = 5 +k.name = "CMPNLTPD_XX" +end +do local k = l[3244] +k.orgnames = l[41] +k.opclass = l[3199] +k.operands = l[94] +k.sub = 5 +k.name = "CMPNLTPS_XM" +end +do local k = l[3245] +k.orgnames = l[41] +k.opclass = l[3201] +k.operands = l[104] +k.sub = 5 +k.name = "CMPNLTPS_XX" +end +do local k = l[3246] +k.orgnames = l[41] +k.opclass = l[3203] +k.operands = l[2661] +k.sub = 5 +k.name = "CMPNLTSD_XM64" +end +do local k = l[3247] +k.orgnames = l[41] +k.opclass = l[3205] +k.operands = l[104] +k.sub = 5 +k.name = "CMPNLTSD_XX" +end +do local k = l[3248] +k.orgnames = l[41] +k.opclass = l[3207] +k.operands = l[2673] +k.sub = 5 +k.name = "CMPNLTSS_XM32" +end +do local k = l[3249] +k.orgnames = l[41] +k.opclass = l[3209] +k.operands = l[104] +k.sub = 5 +k.name = "CMPNLTSS_XX" +end +do local k = l[3250] +k.orgnames = l[41] +k.opclass = l[3195] +k.operands = l[94] +k.sub = 7 +k.name = "CMPORDPD_XM" +end +do local k = l[3251] +k.orgnames = l[41] +k.opclass = l[3197] +k.operands = l[104] +k.sub = 7 +k.name = "CMPORDPD_XX" +end +do local k = l[3252] +k.orgnames = l[41] +k.opclass = l[3199] +k.operands = l[94] +k.sub = 7 +k.name = "CMPORDPS_XM" +end +do local k = l[3253] +k.orgnames = l[41] +k.opclass = l[3201] +k.operands = l[104] +k.sub = 7 +k.name = "CMPORDPS_XX" +end +do local k = l[3254] +k.orgnames = l[41] +k.opclass = l[3203] +k.operands = l[2661] +k.sub = 7 +k.name = "CMPORDSD_XM64" +end +do local k = l[3255] +k.orgnames = l[41] +k.opclass = l[3205] +k.operands = l[104] +k.sub = 7 +k.name = "CMPORDSD_XX" +end +do local k = l[3256] +k.orgnames = l[41] +k.opclass = l[3207] +k.operands = l[2673] +k.sub = 7 +k.name = "CMPORDSS_XM32" +end +do local k = l[3257] +k.orgnames = l[41] +k.opclass = l[3209] +k.operands = l[104] +k.sub = 7 +k.name = "CMPORDSS_XX" +end +do local k = l[3258] +k.orgnames = l[41] +k.opclass = l[3195] +k.operands = l[94] +k.sub = 3 +k.name = "CMPUNORDPD_XM" +end +do local k = l[3259] +k.orgnames = l[41] +k.opclass = l[3197] +k.operands = l[104] +k.sub = 3 +k.name = "CMPUNORDPD_XX" +end +do local k = l[3260] +k.orgnames = l[41] +k.opclass = l[3199] +k.operands = l[94] +k.sub = 3 +k.name = "CMPUNORDPS_XM" +end +do local k = l[3261] +k.orgnames = l[41] +k.opclass = l[3201] +k.operands = l[104] +k.sub = 3 +k.name = "CMPUNORDPS_XX" +end +do local k = l[3262] +k.orgnames = l[41] +k.opclass = l[3203] +k.operands = l[2661] +k.sub = 3 +k.name = "CMPUNORDSD_XM64" +end +do local k = l[3263] +k.orgnames = l[41] +k.opclass = l[3205] +k.operands = l[104] +k.sub = 3 +k.name = "CMPUNORDSD_XX" +end +do local k = l[3264] +k.orgnames = l[41] +k.opclass = l[3207] +k.operands = l[2673] +k.sub = 3 +k.name = "CMPUNORDSS_XM32" +end +do local k = l[3265] +k.orgnames = l[41] +k.opclass = l[3209] +k.operands = l[104] +k.sub = 3 +k.name = "CMPUNORDSS_XX" +end +do local k = l[3266] +k.orgnames = l[41] +k.opclass = l[3267] +k.operands = l[701] +k.sub = 15 +k.name = "COMISD_XM64" +end +do local k = l[3267] +k.isa = l[3179] +k.code = l[7] +k.id = 510 +k.layout = l[694] +k.impregs = l[697] +k.flags = l[699] +k.parm = 32 +k.sig = "{sse}|{{MemId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|66-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{rmem, wflags}" +k.prefixclass = l[2140] +end +do local k = l[3268] +k.orgnames = l[41] +k.opclass = l[3269] +k.operands = l[711] +k.sub = 15 +k.name = "COMISD_XX" +end +do local k = l[3269] +k.isa = l[3179] +k.code = l[22] +k.id = 539 +k.layout = l[706] +k.impregs = l[697] +k.flags = l[709] +k.parm = 32 +k.sig = "{sse}|{{RegId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|66-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR20|{wflags}" +k.prefixclass = l[2133] +end +do local k = l[3270] +k.orgnames = l[41] +k.opclass = l[3271] +k.operands = l[717] +k.sub = 15 +k.name = "COMISS_XM32" +end +do local k = l[3271] +k.isa = l[3179] +k.code = l[7] +k.id = 511 +k.layout = l[694] +k.impregs = l[697] +k.flags = l[699] +k.parm = 32 +k.sig = "{sse}|{{MemId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR20|{rmem, wflags}" +k.prefixclass = l[2027] +end +do local k = l[3272] +k.orgnames = l[41] +k.opclass = l[3273] +k.operands = l[711] +k.sub = 15 +k.name = "COMISS_XX" +end +do local k = l[3273] +k.isa = l[3179] +k.code = l[22] +k.id = 540 +k.layout = l[706] +k.impregs = l[697] +k.flags = l[709] +k.parm = 32 +k.sig = "{sse}|{{RegId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR20|{wflags}" +k.prefixclass = l[2030] +end +do local k = l[3274] +k.orgnames = l[41] +k.opclass = l[3178] +k.operands = l[94] +k.sub = 30 +k.name = "DIVPD_XM" +end +do local k = l[3275] +k.orgnames = l[41] +k.opclass = l[3181] +k.operands = l[104] +k.sub = 30 +k.name = "DIVPD_XX" +end +do local k = l[3276] +k.orgnames = l[41] +k.opclass = l[3183] +k.operands = l[94] +k.sub = 30 +k.name = "DIVPS_XM" +end +do local k = l[3277] +k.orgnames = l[41] +k.opclass = l[3185] +k.operands = l[104] +k.sub = 30 +k.name = "DIVPS_XX" +end +do local k = l[3278] +k.orgnames = l[2566] +k.opclass = l[3279] +k.operands = l[3280] +k.sub = 2 +k.name = "LDMXCSR_M32" +end +do local k = l[3279] +k.isa = l[3179] +k.code = l[2011] +k.id = 535 +k.layout = l[2099] +k.impregs = l[12] +k.flags = l[13] +k.parm = 174 +k.sig = "{sse}|{{MemId, use, p1}}|{}|rexM1-0f|{$parm, !RRMM($sub,$p1)}|PARAE|{rmem}" +k.prefixclass = l[2102] +end +do local k = l[3280] +k[1] = l[3281] +k.id = 126 +k.sig = "{{mode = i,type = i32*,name = p1}}" +end +do local k = l[3281] +k.mode = "i" +k.type = "i32*" +k.name = "p1" +end +do local k = l[3282] +k.orgnames = l[41] +k.opclass = l[3178] +k.operands = l[94] +k.sub = 31 +k.name = "MAXPD_XM" +end +do local k = l[3283] +k.orgnames = l[41] +k.opclass = l[3181] +k.operands = l[104] +k.sub = 31 +k.name = "MAXPD_XX" +end +do local k = l[3284] +k.orgnames = l[41] +k.opclass = l[3183] +k.operands = l[94] +k.sub = 31 +k.name = "MAXPS_XM" +end +do local k = l[3285] +k.orgnames = l[41] +k.opclass = l[3185] +k.operands = l[104] +k.sub = 31 +k.name = "MAXPS_XX" +end +do local k = l[3286] +k.orgnames = l[41] +k.opclass = l[3178] +k.operands = l[94] +k.sub = 29 +k.name = "MINPD_XM" +end +do local k = l[3287] +k.orgnames = l[41] +k.opclass = l[3181] +k.operands = l[104] +k.sub = 29 +k.name = "MINPD_XX" +end +do local k = l[3288] +k.orgnames = l[41] +k.opclass = l[3183] +k.operands = l[94] +k.sub = 29 +k.name = "MINPS_XM" +end +do local k = l[3289] +k.orgnames = l[41] +k.opclass = l[3185] +k.operands = l[104] +k.sub = 29 +k.name = "MINPS_XX" +end +do local k = l[3290] +k.orgnames = l[41] +k.opclass = l[3291] +k.operands = l[1001] +k.name = "MOVAPD_MX" +end +do local k = l[3291] +k.isa = l[3179] +k.code = l[1000] +k.id = 516 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 41 +k.sig = "{sse}|{{MemId, use, p1}, {RegId, use, p2}}|{}|66-rexR2M1-0f|{$parm, !RRMM($p2,$p1)}|PAR29|{wmem}" +k.prefixclass = l[2140] +end +do local k = l[3292] +k.orgnames = l[41] +k.opclass = l[3293] +k.operands = l[1011] +k.name = "MOVAPD_XM" +end +do local k = l[3293] +k.isa = l[3179] +k.code = l[1000] +k.id = 515 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 40 +k.sig = "{sse}|{{MemId, use, p1}, {RegId, use, p2}}|{}|66-rexR2M1-0f|{$parm, !RRMM($p2,$p1)}|PAR28|{wmem}" +k.prefixclass = l[2140] +end +do local k = l[3294] +k.orgnames = l[41] +k.opclass = l[3295] +k.operands = l[711] +k.name = "MOVAPD_XX" +end +do local k = l[3295] +k.isa = l[3179] +k.code = l[1016] +k.id = 542 +k.layout = l[706] +k.impregs = l[12] +k.flags = l[179] +k.parm = 40 +k.sig = "{sse}|{{RegId, use, p1}, {RegId, use, p2}}|{}|66-rexR2B1-0f|{$parm, !RRMR($p2,$p1)}|PAR28|{wmem}" +k.prefixclass = l[2133] +end +do local k = l[3296] +k.orgnames = l[41] +k.opclass = l[3297] +k.operands = l[1001] +k.name = "MOVAPS_MX" +end +do local k = l[3297] +k.isa = l[3179] +k.code = l[1000] +k.id = 523 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 41 +k.sig = "{sse}|{{MemId, use, p1}, {RegId, use, p2}}|{}|rexR2M1-0f|{$parm, !RRMM($p2,$p1)}|PAR29|{wmem}" +k.prefixclass = l[2027] +end +do local k = l[3298] +k.orgnames = l[41] +k.opclass = l[3299] +k.operands = l[1011] +k.name = "MOVAPS_XM" +end +do local k = l[3299] +k.isa = l[3179] +k.code = l[1000] +k.id = 522 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 40 +k.sig = "{sse}|{{MemId, use, p1}, {RegId, use, p2}}|{}|rexR2M1-0f|{$parm, !RRMM($p2,$p1)}|PAR28|{wmem}" +k.prefixclass = l[2027] +end +do local k = l[3300] +k.orgnames = l[41] +k.opclass = l[3301] +k.operands = l[711] +k.name = "MOVAPS_XX" +end +do local k = l[3301] +k.isa = l[3179] +k.code = l[1016] +k.id = 544 +k.layout = l[706] +k.impregs = l[12] +k.flags = l[179] +k.parm = 40 +k.sig = "{sse}|{{RegId, use, p1}, {RegId, use, p2}}|{}|rexR2B1-0f|{$parm, !RRMR($p2,$p1)}|PAR28|{wmem}" +k.prefixclass = l[2030] +end +do local k = l[3302] +k.orgnames = l[41] +k.opclass = l[3303] +k.operands = l[104] +k.name = "MOVHLPS_XX" +k.sub = 18 +end +do local k = l[3303] +k.isa = l[3179] +k.code = l[22] +k.id = 555 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{sse}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR 0|{}" +k.prefixclass = l[2030] +end +do local k = l[3304] +k.orgnames = l[41] +k.opclass = l[3305] +k.operands = l[1084] +k.sub = 23 +k.name = "MOVHPD_MX" +end +do local k = l[3305] +k.isa = l[3179] +k.code = l[7] +k.id = 512 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 0 +k.sig = "{sse}|{{MemId, use, p1}, {RegId, use, p2}}|{}|66-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR 0|{wmem}" +k.prefixclass = l[2140] +end +do local k = l[3306] +k.orgnames = l[41] +k.opclass = l[3307] +k.operands = l[2661] +k.sub = 22 +k.name = "MOVHPD_XM" +end +do local k = l[3307] +k.isa = l[3179] +k.code = l[7] +k.id = 526 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{sse}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|66-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR 0|{rmem}" +k.prefixclass = l[2140] +end +do local k = l[3308] +k.orgnames = l[41] +k.opclass = l[3309] +k.operands = l[1084] +k.sub = 23 +k.name = "MOVHPS_MX" +end +do local k = l[3309] +k.isa = l[3179] +k.code = l[7] +k.id = 519 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 0 +k.sig = "{sse}|{{MemId, use, p1}, {RegId, use, p2}}|{}|rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR 0|{wmem}" +k.prefixclass = l[2027] +end +do local k = l[3310] +k.orgnames = l[41] +k.opclass = l[3311] +k.operands = l[2661] +k.sub = 22 +k.name = "MOVHPS_XM" +end +do local k = l[3311] +k.isa = l[3179] +k.code = l[7] +k.id = 532 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{sse}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR 0|{rmem}" +k.prefixclass = l[2027] +end +do local k = l[3312] +k.orgnames = l[41] +k.opclass = l[3303] +k.operands = l[104] +k.name = "MOVLHPS_XX" +k.sub = 22 +end +do local k = l[3313] +k.orgnames = l[41] +k.opclass = l[3305] +k.operands = l[1084] +k.sub = 19 +k.name = "MOVLPD_MX" +end +do local k = l[3314] +k.orgnames = l[41] +k.opclass = l[3307] +k.operands = l[2661] +k.sub = 18 +k.name = "MOVLPD_XM" +end +do local k = l[3315] +k.orgnames = l[41] +k.opclass = l[3309] +k.operands = l[1084] +k.sub = 19 +k.name = "MOVLPS_MX" +end +do local k = l[3316] +k.orgnames = l[41] +k.opclass = l[3311] +k.operands = l[2661] +k.sub = 18 +k.name = "MOVLPS_XM" +end +do local k = l[3317] +k.orgnames = l[41] +k.opclass = l[3318] +k.operands = l[808] +k.name = "MOVMSKPD_WX" +k.sub = 16 +end +do local k = l[3318] +k.isa = l[3179] +k.code = l[22] +k.id = 537 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{sse}|{{RegId, use, p1}, {RegId, def, p2}}|{}|66-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR40|{}" +k.prefixclass = l[2133] +end +do local k = l[3319] +k.orgnames = l[41] +k.opclass = l[3320] +k.operands = l[808] +k.name = "MOVMSKPS_WX" +k.sub = 16 +end +do local k = l[3320] +k.isa = l[3179] +k.code = l[22] +k.id = 538 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{sse}|{{RegId, use, p1}, {RegId, def, p2}}|{}|rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR40|{}" +k.prefixclass = l[2030] +end +do local k = l[3321] +k.orgnames = l[41] +k.opclass = l[3322] +k.operands = l[1084] +k.sub = 17 +k.name = "MOVSD_MX" +end +do local k = l[3322] +k.isa = l[3179] +k.code = l[7] +k.id = 517 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 0 +k.sig = "{sse}|{{MemId, use, p1}, {RegId, use, p2}}|{}|f2-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR 0|{wmem}" +k.prefixclass = l[2635] +end +do local k = l[3323] +k.orgnames = l[41] +k.opclass = l[3324] +k.operands = l[339] +k.sub = 16 +k.name = "MOVSD_XM" +end +do local k = l[3324] +k.isa = l[3179] +k.code = l[7] +k.id = 508 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{sse}|{{MemId, use, p1}, {RegId, def, p2}}|{}|f2-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR 0|{rmem}" +k.prefixclass = l[2635] +end +do local k = l[3325] +k.orgnames = l[41] +k.opclass = l[3326] +k.operands = l[104] +k.name = "MOVSD_XX" +k.sub = 16 +end +do local k = l[3326] +k.isa = l[3179] +k.code = l[22] +k.id = 550 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{sse}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|f2-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR 0|{}" +k.prefixclass = l[2638] +end +do local k = l[3327] +k.orgnames = l[41] +k.opclass = l[3328] +k.operands = l[1146] +k.sub = 17 +k.name = "MOVSS_MX" +end +do local k = l[3328] +k.isa = l[3179] +k.code = l[7] +k.id = 518 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 0 +k.sig = "{sse}|{{MemId, use, p1}, {RegId, use, p2}}|{}|f3-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR 0|{wmem}" +k.prefixclass = l[2540] +end +do local k = l[3329] +k.orgnames = l[41] +k.opclass = l[3330] +k.operands = l[327] +k.sub = 16 +k.name = "MOVSS_XM" +end +do local k = l[3330] +k.isa = l[3179] +k.code = l[7] +k.id = 509 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{sse}|{{MemId, use, p1}, {RegId, def, p2}}|{}|f3-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR 0|{rmem}" +k.prefixclass = l[2540] +end +do local k = l[3331] +k.orgnames = l[41] +k.opclass = l[3332] +k.operands = l[104] +k.name = "MOVSS_XX" +k.sub = 16 +end +do local k = l[3332] +k.isa = l[3179] +k.code = l[22] +k.id = 552 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{sse}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|f3-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR 0|{}" +k.prefixclass = l[2543] +end +do local k = l[3333] +k.orgnames = l[41] +k.opclass = l[3334] +k.operands = l[1001] +k.name = "MOVUPD_MX" +end +do local k = l[3334] +k.isa = l[3179] +k.code = l[1000] +k.id = 514 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 17 +k.sig = "{sse}|{{MemId, use, p1}, {RegId, use, p2}}|{}|66-rexR2M1-0f|{$parm, !RRMM($p2,$p1)}|PAR11|{wmem}" +k.prefixclass = l[2140] +end +do local k = l[3335] +k.orgnames = l[41] +k.opclass = l[3336] +k.operands = l[1011] +k.name = "MOVUPD_XM" +end +do local k = l[3336] +k.isa = l[3179] +k.code = l[1000] +k.id = 513 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 16 +k.sig = "{sse}|{{MemId, use, p1}, {RegId, use, p2}}|{}|66-rexR2M1-0f|{$parm, !RRMM($p2,$p1)}|PAR10|{wmem}" +k.prefixclass = l[2140] +end +do local k = l[3337] +k.orgnames = l[41] +k.opclass = l[3338] +k.operands = l[711] +k.name = "MOVUPD_XX" +end +do local k = l[3338] +k.isa = l[3179] +k.code = l[1016] +k.id = 541 +k.layout = l[706] +k.impregs = l[12] +k.flags = l[179] +k.parm = 16 +k.sig = "{sse}|{{RegId, use, p1}, {RegId, use, p2}}|{}|66-rexR2B1-0f|{$parm, !RRMR($p2,$p1)}|PAR10|{wmem}" +k.prefixclass = l[2133] +end +do local k = l[3339] +k.orgnames = l[41] +k.opclass = l[3340] +k.operands = l[1001] +k.name = "MOVUPS_MX" +end +do local k = l[3340] +k.isa = l[3179] +k.code = l[1000] +k.id = 521 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 17 +k.sig = "{sse}|{{MemId, use, p1}, {RegId, use, p2}}|{}|rexR2M1-0f|{$parm, !RRMM($p2,$p1)}|PAR11|{wmem}" +k.prefixclass = l[2027] +end +do local k = l[3341] +k.orgnames = l[41] +k.opclass = l[3342] +k.operands = l[1011] +k.name = "MOVUPS_XM" +end +do local k = l[3342] +k.isa = l[3179] +k.code = l[1000] +k.id = 520 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 16 +k.sig = "{sse}|{{MemId, use, p1}, {RegId, use, p2}}|{}|rexR2M1-0f|{$parm, !RRMM($p2,$p1)}|PAR10|{wmem}" +k.prefixclass = l[2027] +end +do local k = l[3343] +k.orgnames = l[41] +k.opclass = l[3344] +k.operands = l[711] +k.name = "MOVUPS_XX" +end +do local k = l[3344] +k.isa = l[3179] +k.code = l[1016] +k.id = 543 +k.layout = l[706] +k.impregs = l[12] +k.flags = l[179] +k.parm = 16 +k.sig = "{sse}|{{RegId, use, p1}, {RegId, use, p2}}|{}|rexR2B1-0f|{$parm, !RRMR($p2,$p1)}|PAR10|{wmem}" +k.prefixclass = l[2030] +end +do local k = l[3345] +k.orgnames = l[41] +k.opclass = l[3178] +k.operands = l[94] +k.sub = 25 +k.name = "MULPD_XM" +end +do local k = l[3346] +k.orgnames = l[41] +k.opclass = l[3181] +k.operands = l[104] +k.sub = 25 +k.name = "MULPD_XX" +end +do local k = l[3347] +k.orgnames = l[41] +k.opclass = l[3183] +k.operands = l[94] +k.sub = 25 +k.name = "MULPS_XM" +end +do local k = l[3348] +k.orgnames = l[41] +k.opclass = l[3185] +k.operands = l[104] +k.sub = 25 +k.name = "MULPS_XX" +end +do local k = l[3349] +k.orgnames = l[41] +k.opclass = l[3178] +k.operands = l[94] +k.sub = 22 +k.name = "ORPD_XM" +end +do local k = l[3350] +k.orgnames = l[41] +k.opclass = l[3181] +k.operands = l[104] +k.sub = 22 +k.name = "ORPD_XX" +end +do local k = l[3351] +k.orgnames = l[41] +k.opclass = l[3183] +k.operands = l[94] +k.sub = 22 +k.name = "ORPS_XM" +end +do local k = l[3352] +k.orgnames = l[41] +k.opclass = l[3185] +k.operands = l[104] +k.sub = 22 +k.name = "ORPS_XX" +end +do local k = l[3353] +k.orgnames = l[41] +k.opclass = l[3183] +k.operands = l[94] +k.sub = 19 +k.name = "RCPPS_XM" +end +do local k = l[3354] +k.orgnames = l[41] +k.opclass = l[3185] +k.operands = l[104] +k.sub = 19 +k.name = "RCPPS_XX" +end +do local k = l[3355] +k.orgnames = l[41] +k.opclass = l[3356] +k.operands = l[2673] +k.sub = 19 +k.name = "RCPSS_XM32" +end +do local k = l[3356] +k.isa = l[3179] +k.code = l[7] +k.id = 530 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[13] +k.parm = 64 +k.sig = "{sse}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|f3-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR40|{rmem}" +k.prefixclass = l[2540] +end +do local k = l[3357] +k.orgnames = l[41] +k.opclass = l[3358] +k.operands = l[104] +k.sub = 19 +k.name = "RCPSS_XX" +end +do local k = l[3358] +k.isa = l[3179] +k.code = l[22] +k.id = 553 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 64 +k.sig = "{sse}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|f3-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR40|{}" +k.prefixclass = l[2543] +end +do local k = l[3359] +k.orgnames = l[41] +k.opclass = l[3183] +k.operands = l[94] +k.sub = 18 +k.name = "RSQRTPS_XM" +end +do local k = l[3360] +k.orgnames = l[41] +k.opclass = l[3185] +k.operands = l[104] +k.sub = 18 +k.name = "RSQRTPS_XX" +end +do local k = l[3361] +k.orgnames = l[41] +k.opclass = l[3356] +k.operands = l[2673] +k.sub = 18 +k.name = "RSQRTSS_XM32" +end +do local k = l[3362] +k.orgnames = l[41] +k.opclass = l[3358] +k.operands = l[104] +k.sub = 18 +k.name = "RSQRTSS_XX" +end +do local k = l[3363] +k.orgnames = l[1958] +k.opclass = l[3364] +k.operands = l[1964] +k.name = "SFENCE" +k.sub = 7 +end +do local k = l[3364] +k.isa = l[3179] +k.code = l[1972] +k.id = 558 +k.layout = l[1961] +k.impregs = l[12] +k.flags = l[2101] +k.parm = 174 +k.sig = "{sse}|{}|{}|rex-0f|{$parm, !RRMR($sub,0)}|PARAE|{rmem, rwmem, wmem}" +k.prefixclass = l[1977] +end +do local k = l[3365] +k.orgnames = l[62] +k.opclass = l[3366] +k.operands = l[2113] +k.name = "SHUFPD_XMI" +end +do local k = l[3366] +k.isa = l[3179] +k.code = l[3367] +k.id = 524 +k.layout = l[2109] +k.impregs = l[12] +k.flags = l[13] +k.parm = 198 +k.sig = "{sse}|{{MemId, use, p1}, {RegId, use/def, p2}, {Imm, use, p3, 0}}|{}|66-rexR2M1-0f|{$parm, !RRMM($p2,$p1), !I8($p3)}|PARC6|{rmem}" +k.prefixclass = l[2140] +end +do local k = l[3367] +k[1] = "$parm" +k[2] = "!RRMM($p2,$p1)" +k[3] = "!I8($p3)" +k.id = 55 +k.sig = "{$parm, !RRMM($p2,$p1), !I8($p3)}" +end +do local k = l[3368] +k.orgnames = l[62] +k.opclass = l[3369] +k.operands = l[2123] +k.name = "SHUFPD_XXI" +end +do local k = l[3369] +k.isa = l[3179] +k.code = l[1458] +k.id = 545 +k.layout = l[2119] +k.impregs = l[12] +k.flags = l[27] +k.parm = 198 +k.sig = "{sse}|{{RegId, use, p1}, {RegId, use/def, p2}, {Imm, use, p3, 0}}|{}|66-rexR2B1-0f|{$parm, !RRMR($p2,$p1), !I8($p3)}|PARC6|{}" +k.prefixclass = l[2133] +end +do local k = l[3370] +k.orgnames = l[62] +k.opclass = l[3371] +k.operands = l[2113] +k.name = "SHUFPS_XMI" +end +do local k = l[3371] +k.isa = l[3179] +k.code = l[3367] +k.id = 525 +k.layout = l[2109] +k.impregs = l[12] +k.flags = l[13] +k.parm = 198 +k.sig = "{sse}|{{MemId, use, p1}, {RegId, use/def, p2}, {Imm, use, p3, 0}}|{}|rexR2M1-0f|{$parm, !RRMM($p2,$p1), !I8($p3)}|PARC6|{rmem}" +k.prefixclass = l[2027] +end +do local k = l[3372] +k.orgnames = l[62] +k.opclass = l[3373] +k.operands = l[2123] +k.name = "SHUFPS_XXI" +end +do local k = l[3373] +k.isa = l[3179] +k.code = l[1458] +k.id = 546 +k.layout = l[2119] +k.impregs = l[12] +k.flags = l[27] +k.parm = 198 +k.sig = "{sse}|{{RegId, use, p1}, {RegId, use/def, p2}, {Imm, use, p3, 0}}|{}|rexR2B1-0f|{$parm, !RRMR($p2,$p1), !I8($p3)}|PARC6|{}" +k.prefixclass = l[2030] +end +do local k = l[3374] +k.orgnames = l[41] +k.opclass = l[3178] +k.operands = l[94] +k.sub = 17 +k.name = "SQRTPD_XM" +end +do local k = l[3375] +k.orgnames = l[41] +k.opclass = l[3181] +k.operands = l[104] +k.sub = 17 +k.name = "SQRTPD_XX" +end +do local k = l[3376] +k.orgnames = l[41] +k.opclass = l[3183] +k.operands = l[94] +k.sub = 17 +k.name = "SQRTPS_XM" +end +do local k = l[3377] +k.orgnames = l[41] +k.opclass = l[3185] +k.operands = l[104] +k.sub = 17 +k.name = "SQRTPS_XX" +end +do local k = l[3378] +k.orgnames = l[2566] +k.opclass = l[3379] +k.operands = l[3280] +k.sub = 3 +k.name = "STMXCSR_M32" +end +do local k = l[3379] +k.isa = l[3179] +k.code = l[2011] +k.id = 536 +k.layout = l[2099] +k.impregs = l[12] +k.flags = l[179] +k.parm = 174 +k.sig = "{sse}|{{MemId, use, p1}}|{}|rexM1-0f|{$parm, !RRMM($sub,$p1)}|PARAE|{wmem}" +k.prefixclass = l[2102] +end +do local k = l[3380] +k.orgnames = l[41] +k.opclass = l[3178] +k.operands = l[94] +k.sub = 28 +k.name = "SUBPD_XM" +end +do local k = l[3381] +k.orgnames = l[41] +k.opclass = l[3181] +k.operands = l[104] +k.sub = 28 +k.name = "SUBPD_XX" +end +do local k = l[3382] +k.orgnames = l[41] +k.opclass = l[3183] +k.operands = l[94] +k.sub = 28 +k.name = "SUBPS_XM" +end +do local k = l[3383] +k.orgnames = l[41] +k.opclass = l[3185] +k.operands = l[104] +k.sub = 28 +k.name = "SUBPS_XX" +end +do local k = l[3384] +k.orgnames = l[41] +k.opclass = l[3267] +k.operands = l[701] +k.sub = 14 +k.name = "UCOMISD_XM64" +end +do local k = l[3385] +k.orgnames = l[41] +k.opclass = l[3269] +k.operands = l[711] +k.sub = 14 +k.name = "UCOMISD_XX" +end +do local k = l[3386] +k.orgnames = l[41] +k.opclass = l[3271] +k.operands = l[717] +k.sub = 14 +k.name = "UCOMISS_XM32" +end +do local k = l[3387] +k.orgnames = l[41] +k.opclass = l[3273] +k.operands = l[711] +k.sub = 14 +k.name = "UCOMISS_XX" +end +do local k = l[3388] +k.orgnames = l[41] +k.opclass = l[3307] +k.operands = l[94] +k.sub = 21 +k.name = "UNPCKHPD_XM" +end +do local k = l[3389] +k.orgnames = l[41] +k.opclass = l[3390] +k.operands = l[104] +k.sub = 21 +k.name = "UNPCKHPD_XX" +end +do local k = l[3390] +k.isa = l[3179] +k.code = l[22] +k.id = 547 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{sse}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|66-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR 0|{}" +k.prefixclass = l[2133] +end +do local k = l[3391] +k.orgnames = l[41] +k.opclass = l[3311] +k.operands = l[94] +k.sub = 21 +k.name = "UNPCKHPS_XM" +end +do local k = l[3392] +k.orgnames = l[41] +k.opclass = l[3303] +k.operands = l[104] +k.sub = 21 +k.name = "UNPCKHPS_XX" +end +do local k = l[3393] +k.orgnames = l[41] +k.opclass = l[3307] +k.operands = l[94] +k.sub = 20 +k.name = "UNPCKLPD_XM" +end +do local k = l[3394] +k.orgnames = l[41] +k.opclass = l[3390] +k.operands = l[104] +k.sub = 20 +k.name = "UNPCKLPD_XX" +end +do local k = l[3395] +k.orgnames = l[41] +k.opclass = l[3311] +k.operands = l[94] +k.sub = 20 +k.name = "UNPCKLPS_XM" +end +do local k = l[3396] +k.orgnames = l[41] +k.opclass = l[3303] +k.operands = l[104] +k.sub = 20 +k.name = "UNPCKLPS_XX" +end +do local k = l[3397] +k.orgnames = l[41] +k.opclass = l[3178] +k.operands = l[94] +k.sub = 23 +k.name = "XORPD_XM" +end +do local k = l[3398] +k.orgnames = l[41] +k.opclass = l[3181] +k.operands = l[104] +k.sub = 23 +k.name = "XORPD_XX" +end +do local k = l[3399] +k.orgnames = l[41] +k.opclass = l[3183] +k.operands = l[94] +k.sub = 23 +k.name = "XORPS_XM" +end +do local k = l[3400] +k.orgnames = l[41] +k.opclass = l[3185] +k.operands = l[104] +k.sub = 23 +k.name = "XORPS_XX" +end +do local k = l[3401] +k.orgnames = l[62] +k.opclass = l[3402] +k.operands = l[2113] +k.sub = 15 +k.name = "PALIGNR_XMI" +end +do local k = l[3402] +k.isa = l[3403] +k.code = l[3404] +k.id = 559 +k.layout = l[2109] +k.impregs = l[12] +k.flags = l[13] +k.parm = 0 +k.sig = "{ssse3}|{{MemId, use, p1}, {RegId, use/def, p2}, {Imm, use, p3, 0}}|{}|66-rexR2M1-0f3a|{$parm+$sub), !RRMM($p2,$p1), !I8($p3)}|PAR 0|{rmem}" +k.prefixclass = l[119] +end +do local k = l[3403] +k[1] = "ssse3" +k.id = 32 +k.sig = "{ssse3}" +end +do local k = l[3404] +k[1] = "$parm+$sub)" +k[2] = "!RRMM($p2,$p1)" +k[3] = "!I8($p3)" +k.id = 66 +k.sig = "{$parm+$sub), !RRMM($p2,$p1), !I8($p3)}" +end +do local k = l[3405] +k.orgnames = l[62] +k.opclass = l[3406] +k.operands = l[2123] +k.sub = 15 +k.name = "PALIGNR_XXI" +end +do local k = l[3406] +k.isa = l[3403] +k.code = l[3407] +k.id = 560 +k.layout = l[2119] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{ssse3}|{{RegId, use, p1}, {RegId, use/def, p2}, {Imm, use, p3, 0}}|{}|66-rexR2B1-0f3a|{$parm+$sub), !RRMR($p2,$p1), !I8($p3)}|PAR 0|{}" +k.prefixclass = l[122] +end +do local k = l[3407] +k[1] = "$parm+$sub)" +k[2] = "!RRMR($p2,$p1)" +k[3] = "!I8($p3)" +k.id = 64 +k.sig = "{$parm+$sub), !RRMR($p2,$p1), !I8($p3)}" +end +do local k = l[3408] +k.orgnames = l[2855] +k.opclass = l[3409] +k.operands = l[3416] +k.name = "ADC_AL_I" +k.sub = 2 +end +do local k = l[3409] +k.isa = l[3410] +k.code = l[3411] +k.id = 570 +k.layout = l[2603] +k.impregs = l[3412] +k.flags = l[3415] +k.parm = 4 +k.sig = "{}|{{Imm, use, p1, 0}}|{{rax, use/def}, {FLAGS, use/def}}|rex|{$sub*8+$parm, !I8($p1))}|PAR 4|{rflag_c, wflags}" +k.prefixclass = l[2535] +end +do local k = l[3410] +k.id = 1 +k.sig = "{}" +end +do local k = l[3411] +k[1] = "$sub*8+$parm" +k[2] = "!I8($p1))" +k.id = 4 +k.sig = "{$sub*8+$parm, !I8($p1))}" +end +do local k = l[3412] +k[1] = l[3413] +k[2] = l[3414] +k.id = 5 +k.sig = "{{rax, use/def}, {FLAGS, use/def}}" +end +do local k = l[3413] +k[1] = "rax" +k[2] = "use/def" +end +do local k = l[3414] +k[1] = "FLAGS" +k[2] = "use/def" +end +do local k = l[3415] +k[1] = "rflag_c" +k[2] = "wflags" +k.id = 3 +k.sig = "{rflag_c, wflags}" +end +do local k = l[3416] +k[1] = l[3417] +k[2] = l[3418] +k.id = 3 +k.sig = "{{mode = io,type = GR8,name = p2,fixed = rax}, {mode = i,type = i8,name = p1}}" +end +do local k = l[3417] +k.mode = "io" +k.type = "GR8" +k.name = "p2" +k.fixed = "rax" +end +do local k = l[3418] +k.mode = "i" +k.type = "i8" +k.name = "p1" +end +do local k = l[3419] +k.orgnames = l[2855] +k.opclass = l[3420] +k.operands = l[3422] +k.name = "ADC_AX_I" +k.sub = 2 +end +do local k = l[3420] +k.isa = l[3410] +k.code = l[3421] +k.id = 568 +k.layout = l[2603] +k.impregs = l[3412] +k.flags = l[3415] +k.parm = 5 +k.sig = "{}|{{Imm, use, p1, 0}}|{{rax, use/def}, {FLAGS, use/def}}|66-rex|{$sub*8+$parm, !I16_8($p1))}|PAR 5|{rflag_c, wflags}" +k.prefixclass = l[2614] +end +do local k = l[3421] +k[1] = "$sub*8+$parm" +k[2] = "!I16_8($p1))" +k.id = 10 +k.sig = "{$sub*8+$parm, !I16_8($p1))}" +end +do local k = l[3422] +k[1] = l[3423] +k[2] = l[3424] +k.id = 15 +k.sig = "{{mode = io,type = GR16,name = p2,fixed = rax}, {mode = i,type = i16,name = p1}}" +end +do local k = l[3423] +k.mode = "io" +k.type = "GR16" +k.name = "p2" +k.fixed = "rax" +end +do local k = l[3424] +k.mode = "i" +k.type = "i16" +k.name = "p1" +end +do local k = l[3425] +k.orgnames = l[41] +k.opclass = l[3426] +k.operands = l[3431] +k.name = "ADC_BB" +k.sub = 2 +end +do local k = l[3426] +k.isa = l[3410] +k.code = l[3427] +k.id = 715 +k.layout = l[99] +k.impregs = l[3428] +k.flags = l[3415] +k.parm = 2 +k.sig = "{}|{{RegId, use, p1}, {RegId, use/def, p2}}|{{FLAGS, use/def}}|rexR2B1|{$sub*8+$parm, !RRMR($p2,$p1)}|PAR 2|{rflag_c, wflags}" +k.prefixclass = l[3430] +end +do local k = l[3427] +k[1] = "$sub*8+$parm" +k[2] = "!RRMR($p2,$p1)" +k.id = 3 +k.sig = "{$sub*8+$parm, !RRMR($p2,$p1)}" +end +do local k = l[3428] +k[1] = l[3429] +k.id = 4 +k.sig = "{{FLAGS, use/def}}" +end +do local k = l[3429] +k[1] = "FLAGS" +k[2] = "use/def" +end +do local k = l[3430] +k.extopcode = "" +k.rex = l[103] +k.id = 1 +k.pref = "" +k.sig = "rexR2B1" +end +do local k = l[3431] +k[1] = l[3432] +k[2] = l[3433] +k.id = 1 +k.sig = "{{mode = io,type = GR8,name = p2}, {mode = i,type = GR8,name = p1}}" +end +do local k = l[3432] +k.mode = "io" +k.type = "GR8" +k.name = "p2" +end +do local k = l[3433] +k.mode = "i" +k.type = "GR8" +k.name = "p1" +end +do local k = l[3434] +k.orgnames = l[2855] +k.opclass = l[3435] +k.operands = l[3437] +k.name = "ADC_BI" +k.sub = 2 +end +do local k = l[3435] +k.isa = l[3410] +k.code = l[2857] +k.id = 734 +k.layout = l[2858] +k.impregs = l[3428] +k.flags = l[3415] +k.parm = 128 +k.sig = "{}|{{RegId, use/def, p1}, {Imm, use, p2, 0}}|{{FLAGS, use/def}}|rexB1|{$parm, !RRMR($sub,$p1), !I8($p2)}|PAR80|{rflag_c, wflags}" +k.prefixclass = l[3436] +end +do local k = l[3436] +k.extopcode = "" +k.rex = l[2572] +k.id = 2 +k.pref = "" +k.sig = "rexB1" +end +do local k = l[3437] +k[1] = l[3438] +k[2] = l[3439] +k.id = 2 +k.sig = "{{mode = io,type = GR8,name = p1}, {mode = i,type = i8,name = p2}}" +end +do local k = l[3438] +k.mode = "io" +k.type = "GR8" +k.name = "p1" +end +do local k = l[3439] +k.mode = "i" +k.type = "i8" +k.name = "p2" +end +do local k = l[3440] +k.orgnames = l[41] +k.opclass = l[3441] +k.operands = l[3445] +k.name = "ADC_BM" +k.sub = 2 +end +do local k = l[3441] +k.isa = l[3410] +k.code = l[3442] +k.id = 641 +k.layout = l[89] +k.impregs = l[3428] +k.flags = l[3443] +k.parm = 2 +k.sig = "{}|{{MemId, use, p1}, {RegId, use/def, p2}}|{{FLAGS, use/def}}|rexR2M1|{$sub*8+$parm, !RRMM($p2,$p1)}|PAR 2|{rflag_c, rmem, wflags}" +k.prefixclass = l[3444] +end +do local k = l[3442] +k[1] = "$sub*8+$parm" +k[2] = "!RRMM($p2,$p1)" +k.id = 27 +k.sig = "{$sub*8+$parm, !RRMM($p2,$p1)}" +end +do local k = l[3443] +k[1] = "rflag_c" +k[2] = "rmem" +k[3] = "wflags" +k.id = 12 +k.sig = "{rflag_c, rmem, wflags}" +end +do local k = l[3444] +k.extopcode = "" +k.rex = l[93] +k.id = 36 +k.pref = "" +k.sig = "rexR2M1" +end +do local k = l[3445] +k[1] = l[3446] +k[2] = l[3447] +k.id = 98 +k.sig = "{{mode = io,type = GR8,name = p2}, {mode = i,type = i8*,name = p1}}" +end +do local k = l[3446] +k.mode = "io" +k.type = "GR8" +k.name = "p2" +end +do local k = l[3447] +k.mode = "i" +k.type = "i8*" +k.name = "p1" +end +do local k = l[3448] +k.orgnames = l[2855] +k.opclass = l[3449] +k.operands = l[3451] +k.name = "ADC_EAX_I" +k.sub = 2 +end +do local k = l[3449] +k.isa = l[3410] +k.code = l[3450] +k.id = 569 +k.layout = l[2603] +k.impregs = l[3412] +k.flags = l[3415] +k.parm = 5 +k.sig = "{}|{{Imm, use, p1, 0}}|{{rax, use/def}, {FLAGS, use/def}}|rex|{$sub*8+$parm, !I32_8($p1))}|PAR 5|{rflag_c, wflags}" +k.prefixclass = l[2535] +end +do local k = l[3450] +k[1] = "$sub*8+$parm" +k[2] = "!I32_8($p1))" +k.id = 17 +k.sig = "{$sub*8+$parm, !I32_8($p1))}" +end +do local k = l[3451] +k[1] = l[3452] +k[2] = l[3453] +k.id = 36 +k.sig = "{{mode = io,type = GR32,name = p2,fixed = rax}, {mode = i,type = i32,name = p1}}" +end +do local k = l[3452] +k.mode = "io" +k.type = "GR32" +k.name = "p2" +k.fixed = "rax" +end +do local k = l[3453] +k.mode = "i" +k.type = "i32" +k.name = "p1" +end +do local k = l[3454] +k.orgnames = l[41] +k.opclass = l[3455] +k.operands = l[2134] +k.name = "ADC_HH" +k.sub = 2 +end +do local k = l[3455] +k.isa = l[3410] +k.code = l[3427] +k.id = 714 +k.layout = l[99] +k.impregs = l[3428] +k.flags = l[3415] +k.parm = 3 +k.sig = "{}|{{RegId, use, p1}, {RegId, use/def, p2}}|{{FLAGS, use/def}}|66-rexR2B1|{$sub*8+$parm, !RRMR($p2,$p1)}|PAR 3|{rflag_c, wflags}" +k.prefixclass = l[3456] +end +do local k = l[3456] +k.extopcode = "" +k.rex = l[103] +k.id = 6 +k.pref = "66" +k.sig = "66-rexR2B1" +end +do local k = l[3457] +k.orgnames = l[2855] +k.opclass = l[3458] +k.operands = l[3461] +k.name = "ADC_HI" +k.sub = 2 +end +do local k = l[3458] +k.isa = l[3410] +k.code = l[3459] +k.id = 732 +k.layout = l[2858] +k.impregs = l[3428] +k.flags = l[3415] +k.parm = 129 +k.sig = "{}|{{RegId, use/def, p1}, {Imm, use, p2, 0}}|{{FLAGS, use/def}}|66-rexB1|{$parm, !RRMR($sub,$p1), !I16_8($p2)}|PAR81|{rflag_c, wflags}" +k.prefixclass = l[3460] +end +do local k = l[3459] +k[1] = "$parm" +k[2] = "!RRMR($sub,$p1)" +k[3] = "!I16_8($p2)" +k.id = 9 +k.sig = "{$parm, !RRMR($sub,$p1), !I16_8($p2)}" +end +do local k = l[3460] +k.extopcode = "" +k.rex = l[2572] +k.id = 7 +k.pref = "66" +k.sig = "66-rexB1" +end +do local k = l[3461] +k[1] = l[3462] +k[2] = l[3463] +k.id = 14 +k.sig = "{{mode = io,type = GR16,name = p1}, {mode = i,type = i16,name = p2}}" +end +do local k = l[3462] +k.mode = "io" +k.type = "GR16" +k.name = "p1" +end +do local k = l[3463] +k.mode = "i" +k.type = "i16" +k.name = "p2" +end +do local k = l[3464] +k.orgnames = l[41] +k.opclass = l[3465] +k.operands = l[2141] +k.name = "ADC_HM" +k.sub = 2 +end +do local k = l[3465] +k.isa = l[3410] +k.code = l[3442] +k.id = 640 +k.layout = l[89] +k.impregs = l[3428] +k.flags = l[3443] +k.parm = 3 +k.sig = "{}|{{MemId, use, p1}, {RegId, use/def, p2}}|{{FLAGS, use/def}}|66-rexR2M1|{$sub*8+$parm, !RRMM($p2,$p1)}|PAR 3|{rflag_c, rmem, wflags}" +k.prefixclass = l[3466] +end +do local k = l[3466] +k.extopcode = "" +k.rex = l[93] +k.id = 40 +k.pref = "66" +k.sig = "66-rexR2M1" +end +do local k = l[3467] +k.orgnames = l[2855] +k.opclass = l[3468] +k.operands = l[3475] +k.name = "ADC_M16I" +k.sub = 2 +end +do local k = l[3468] +k.isa = l[3410] +k.code = l[3469] +k.id = 593 +k.layout = l[3470] +k.impregs = l[3428] +k.flags = l[3473] +k.parm = 129 +k.sig = "{}|{{MemId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, use/def}}|66-rexM1|{$parm, !RRMM($sub,$p1), !I16_8($p2)}|PAR81|{rflag_c, rmem, rwmem, wflags, wmem}" +k.prefixclass = l[3474] +end +do local k = l[3469] +k[1] = "$parm" +k[2] = "!RRMM($sub,$p1)" +k[3] = "!I16_8($p2)" +k.id = 31 +k.sig = "{$parm, !RRMM($sub,$p1), !I16_8($p2)}" +end +do local k = l[3470] +k[1] = l[3471] +k[2] = l[3472] +k.id = 23 +k.sig = "{{MemId, use, p1}, {Imm, use, p2, 0}}" +end +do local k = l[3471] +k[1] = "MemId" +k[2] = "use" +k[3] = "p1" +end +do local k = l[3472] +k[1] = "Imm" +k[2] = "use" +k[3] = "p2" +k[4] = 0 +end +do local k = l[3473] +k[1] = "rflag_c" +k[2] = "rmem" +k[3] = "rwmem" +k[4] = "wflags" +k[5] = "wmem" +k.id = 11 +k.sig = "{rflag_c, rmem, rwmem, wflags, wmem}" +end +do local k = l[3474] +k.extopcode = "" +k.rex = l[2103] +k.id = 41 +k.pref = "66" +k.sig = "66-rexM1" +end +do local k = l[3475] +k[1] = l[3476] +k[2] = l[3477] +k.id = 108 +k.sig = "{{mode = i,type = i16*,name = p1}, {mode = i,type = i16,name = p2}}" +end +do local k = l[3476] +k.mode = "i" +k.type = "i16*" +k.name = "p1" +end +do local k = l[3477] +k.mode = "i" +k.type = "i16" +k.name = "p2" +end +do local k = l[3478] +k.orgnames = l[2855] +k.opclass = l[3479] +k.operands = l[3482] +k.name = "ADC_M32I" +k.sub = 2 +end +do local k = l[3479] +k.isa = l[3410] +k.code = l[3480] +k.id = 595 +k.layout = l[3470] +k.impregs = l[3428] +k.flags = l[3473] +k.parm = 129 +k.sig = "{}|{{MemId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, use/def}}|rexM1|{$parm, !RRMM($sub,$p1), !I32_8($p2)}|PAR81|{rflag_c, rmem, rwmem, wflags, wmem}" +k.prefixclass = l[3481] +end +do local k = l[3480] +k[1] = "$parm" +k[2] = "!RRMM($sub,$p1)" +k[3] = "!I32_8($p2)" +k.id = 35 +k.sig = "{$parm, !RRMM($sub,$p1), !I32_8($p2)}" +end +do local k = l[3481] +k.extopcode = "" +k.rex = l[2103] +k.id = 37 +k.pref = "" +k.sig = "rexM1" +end +do local k = l[3482] +k[1] = l[3483] +k[2] = l[3484] +k.id = 122 +k.sig = "{{mode = i,type = i32*,name = p1}, {mode = i,type = i32,name = p2}}" +end +do local k = l[3483] +k.mode = "i" +k.type = "i32*" +k.name = "p1" +end +do local k = l[3484] +k.mode = "i" +k.type = "i32" +k.name = "p2" +end +do local k = l[3485] +k.orgnames = l[2855] +k.opclass = l[3486] +k.operands = l[3488] +k.name = "ADC_M8I" +k.sub = 2 +end +do local k = l[3486] +k.isa = l[3410] +k.code = l[3487] +k.id = 596 +k.layout = l[3470] +k.impregs = l[3428] +k.flags = l[3473] +k.parm = 128 +k.sig = "{}|{{MemId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, use/def}}|rexM1|{$parm, !RRMM($sub,$p1), !I8($p2)}|PAR80|{rflag_c, rmem, rwmem, wflags, wmem}" +k.prefixclass = l[3481] +end +do local k = l[3487] +k[1] = "$parm" +k[2] = "!RRMM($sub,$p1)" +k[3] = "!I8($p2)" +k.id = 26 +k.sig = "{$parm, !RRMM($sub,$p1), !I8($p2)}" +end +do local k = l[3488] +k[1] = l[3489] +k[2] = l[3490] +k.id = 99 +k.sig = "{{mode = i,type = i8*,name = p1}, {mode = i,type = i8,name = p2}}" +end +do local k = l[3489] +k.mode = "i" +k.type = "i8*" +k.name = "p1" +end +do local k = l[3490] +k.mode = "i" +k.type = "i8" +k.name = "p2" +end +do local k = l[3491] +k.orgnames = l[41] +k.opclass = l[3492] +k.operands = l[3493] +k.name = "ADC_MB" +k.sub = 2 +end +do local k = l[3492] +k.isa = l[3410] +k.code = l[3442] +k.id = 626 +k.layout = l[694] +k.impregs = l[3428] +k.flags = l[3473] +k.parm = 0 +k.sig = "{}|{{MemId, use, p1}, {RegId, use, p2}}|{{FLAGS, use/def}}|rexR2M1|{$sub*8+$parm, !RRMM($p2,$p1)}|PAR 0|{rflag_c, rmem, rwmem, wflags, wmem}" +k.prefixclass = l[3444] +end +do local k = l[3493] +k[1] = l[3494] +k[2] = l[3495] +k.id = 100 +k.sig = "{{mode = i,type = i8*,name = p1}, {mode = i,type = GR8,name = p2}}" +end +do local k = l[3494] +k.mode = "i" +k.type = "i8*" +k.name = "p1" +end +do local k = l[3495] +k.mode = "i" +k.type = "GR8" +k.name = "p2" +end +do local k = l[3496] +k.orgnames = l[41] +k.opclass = l[3497] +k.operands = l[2549] +k.name = "ADC_MH" +k.sub = 2 +end +do local k = l[3497] +k.isa = l[3410] +k.code = l[3442] +k.id = 625 +k.layout = l[694] +k.impregs = l[3428] +k.flags = l[3473] +k.parm = 1 +k.sig = "{}|{{MemId, use, p1}, {RegId, use, p2}}|{{FLAGS, use/def}}|66-rexR2M1|{$sub*8+$parm, !RRMM($p2,$p1)}|PAR 1|{rflag_c, rmem, rwmem, wflags, wmem}" +k.prefixclass = l[3466] +end +do local k = l[3498] +k.orgnames = l[41] +k.opclass = l[3499] +k.operands = l[2555] +k.name = "ADC_MW" +k.sub = 2 +end +do local k = l[3499] +k.isa = l[3410] +k.code = l[3442] +k.id = 627 +k.layout = l[694] +k.impregs = l[3428] +k.flags = l[3473] +k.parm = 1 +k.sig = "{}|{{MemId, use, p1}, {RegId, use, p2}}|{{FLAGS, use/def}}|rexR2M1|{$sub*8+$parm, !RRMM($p2,$p1)}|PAR 1|{rflag_c, rmem, rwmem, wflags, wmem}" +k.prefixclass = l[3444] +end +do local k = l[3500] +k.orgnames = l[2855] +k.opclass = l[3501] +k.operands = l[3506] +k.name = "ADC_WI" +k.sub = 2 +end +do local k = l[3501] +k.isa = l[3410] +k.code = l[3502] +k.id = 675 +k.layout = l[3503] +k.impregs = l[3428] +k.flags = l[3415] +k.parm = 129 +k.sig = "{}|{{RegId, def, p1}, {Imm, use, p2, 0}}|{{FLAGS, use/def}}|rexB1|{$parm, !RRMR($sub,$p1), !I32_8($p2)}|PAR81|{rflag_c, wflags}" +k.prefixclass = l[3436] +end +do local k = l[3502] +k[1] = "$parm" +k[2] = "!RRMR($sub,$p1)" +k[3] = "!I32_8($p2)" +k.id = 16 +k.sig = "{$parm, !RRMR($sub,$p1), !I32_8($p2)}" +end +do local k = l[3503] +k[1] = l[3504] +k[2] = l[3505] +k.id = 13 +k.sig = "{{RegId, def, p1}, {Imm, use, p2, 0}}" +end +do local k = l[3504] +k[1] = "RegId" +k[2] = "def" +k[3] = "p1" +end +do local k = l[3505] +k[1] = "Imm" +k[2] = "use" +k[3] = "p2" +k[4] = 0 +end +do local k = l[3506] +k[1] = l[3507] +k[2] = l[3508] +k.id = 34 +k.sig = "{{mode = o,type = GR32,name = p1}, {mode = i,type = i32,name = p2}}" +end +do local k = l[3507] +k.mode = "o" +k.type = "GR32" +k.name = "p1" +end +do local k = l[3508] +k.mode = "i" +k.type = "i32" +k.name = "p2" +end +do local k = l[3509] +k.orgnames = l[41] +k.opclass = l[3510] +k.operands = l[2146] +k.name = "ADC_WM" +k.sub = 2 +end +do local k = l[3510] +k.isa = l[3410] +k.code = l[3442] +k.id = 642 +k.layout = l[89] +k.impregs = l[3428] +k.flags = l[3443] +k.parm = 3 +k.sig = "{}|{{MemId, use, p1}, {RegId, use/def, p2}}|{{FLAGS, use/def}}|rexR2M1|{$sub*8+$parm, !RRMM($p2,$p1)}|PAR 3|{rflag_c, rmem, wflags}" +k.prefixclass = l[3444] +end +do local k = l[3511] +k.orgnames = l[41] +k.opclass = l[3512] +k.operands = l[2151] +k.name = "ADC_WW" +k.sub = 2 +end +do local k = l[3512] +k.isa = l[3410] +k.code = l[3427] +k.id = 716 +k.layout = l[99] +k.impregs = l[3428] +k.flags = l[3415] +k.parm = 3 +k.sig = "{}|{{RegId, use, p1}, {RegId, use/def, p2}}|{{FLAGS, use/def}}|rexR2B1|{$sub*8+$parm, !RRMR($p2,$p1)}|PAR 3|{rflag_c, wflags}" +k.prefixclass = l[3430] +end +do local k = l[3513] +k.orgnames = l[2855] +k.opclass = l[3514] +k.operands = l[3416] +k.name = "ADD_AL_I" +k.sub = 0 +end +do local k = l[3514] +k.isa = l[3410] +k.code = l[3411] +k.id = 567 +k.layout = l[2603] +k.impregs = l[3515] +k.flags = l[709] +k.parm = 4 +k.sig = "{}|{{Imm, use, p1, 0}}|{{rax, use/def}, {FLAGS, def}}|rex|{$sub*8+$parm, !I8($p1))}|PAR 4|{wflags}" +k.prefixclass = l[2535] +end +do local k = l[3515] +k[1] = l[3516] +k[2] = l[3517] +k.id = 3 +k.sig = "{{rax, use/def}, {FLAGS, def}}" +end +do local k = l[3516] +k[1] = "rax" +k[2] = "use/def" +end +do local k = l[3517] +k[1] = "FLAGS" +k[2] = "def" +end +do local k = l[3518] +k.orgnames = l[2855] +k.opclass = l[3519] +k.operands = l[3422] +k.name = "ADD_AX_I" +k.sub = 0 +end +do local k = l[3519] +k.isa = l[3410] +k.code = l[3421] +k.id = 565 +k.layout = l[2603] +k.impregs = l[3515] +k.flags = l[709] +k.parm = 5 +k.sig = "{}|{{Imm, use, p1, 0}}|{{rax, use/def}, {FLAGS, def}}|66-rex|{$sub*8+$parm, !I16_8($p1))}|PAR 5|{wflags}" +k.prefixclass = l[2614] +end +do local k = l[3520] +k.orgnames = l[41] +k.opclass = l[3521] +k.operands = l[3431] +k.name = "ADD_BB" +k.sub = 0 +end +do local k = l[3521] +k.isa = l[3410] +k.code = l[3427] +k.id = 712 +k.layout = l[99] +k.impregs = l[697] +k.flags = l[709] +k.parm = 2 +k.sig = "{}|{{RegId, use, p1}, {RegId, use/def, p2}}|{{FLAGS, def}}|rexR2B1|{$sub*8+$parm, !RRMR($p2,$p1)}|PAR 2|{wflags}" +k.prefixclass = l[3430] +end +do local k = l[3522] +k.orgnames = l[2855] +k.opclass = l[3523] +k.operands = l[3437] +k.name = "ADD_BI" +k.sub = 0 +end +do local k = l[3523] +k.isa = l[3410] +k.code = l[2857] +k.id = 730 +k.layout = l[2858] +k.impregs = l[697] +k.flags = l[709] +k.parm = 128 +k.sig = "{}|{{RegId, use/def, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|rexB1|{$parm, !RRMR($sub,$p1), !I8($p2)}|PAR80|{wflags}" +k.prefixclass = l[3436] +end +do local k = l[3524] +k.orgnames = l[41] +k.opclass = l[3525] +k.operands = l[3445] +k.name = "ADD_BM" +k.sub = 0 +end +do local k = l[3525] +k.isa = l[3410] +k.code = l[3442] +k.id = 638 +k.layout = l[89] +k.impregs = l[697] +k.flags = l[699] +k.parm = 2 +k.sig = "{}|{{MemId, use, p1}, {RegId, use/def, p2}}|{{FLAGS, def}}|rexR2M1|{$sub*8+$parm, !RRMM($p2,$p1)}|PAR 2|{rmem, wflags}" +k.prefixclass = l[3444] +end +do local k = l[3526] +k.orgnames = l[2855] +k.opclass = l[3527] +k.operands = l[3451] +k.name = "ADD_EAX_I" +k.sub = 0 +end +do local k = l[3527] +k.isa = l[3410] +k.code = l[3450] +k.id = 566 +k.layout = l[2603] +k.impregs = l[3515] +k.flags = l[709] +k.parm = 5 +k.sig = "{}|{{Imm, use, p1, 0}}|{{rax, use/def}, {FLAGS, def}}|rex|{$sub*8+$parm, !I32_8($p1))}|PAR 5|{wflags}" +k.prefixclass = l[2535] +end +do local k = l[3528] +k.orgnames = l[41] +k.opclass = l[3529] +k.operands = l[2134] +k.name = "ADD_HH" +k.sub = 0 +end +do local k = l[3529] +k.isa = l[3410] +k.code = l[3427] +k.id = 710 +k.layout = l[99] +k.impregs = l[697] +k.flags = l[709] +k.parm = 3 +k.sig = "{}|{{RegId, use, p1}, {RegId, use/def, p2}}|{{FLAGS, def}}|66-rexR2B1|{$sub*8+$parm, !RRMR($p2,$p1)}|PAR 3|{wflags}" +k.prefixclass = l[3456] +end +do local k = l[3530] +k.orgnames = l[2855] +k.opclass = l[3531] +k.operands = l[3461] +k.name = "ADD_HI" +k.sub = 0 +end +do local k = l[3531] +k.isa = l[3410] +k.code = l[3459] +k.id = 728 +k.layout = l[2858] +k.impregs = l[697] +k.flags = l[709] +k.parm = 129 +k.sig = "{}|{{RegId, use/def, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|66-rexB1|{$parm, !RRMR($sub,$p1), !I16_8($p2)}|PAR81|{wflags}" +k.prefixclass = l[3460] +end +do local k = l[3532] +k.orgnames = l[41] +k.opclass = l[3533] +k.operands = l[2141] +k.name = "ADD_HM" +k.sub = 0 +end +do local k = l[3533] +k.isa = l[3410] +k.code = l[3442] +k.id = 636 +k.layout = l[89] +k.impregs = l[697] +k.flags = l[699] +k.parm = 3 +k.sig = "{}|{{MemId, use, p1}, {RegId, use/def, p2}}|{{FLAGS, def}}|66-rexR2M1|{$sub*8+$parm, !RRMM($p2,$p1)}|PAR 3|{rmem, wflags}" +k.prefixclass = l[3466] +end +do local k = l[3534] +k.orgnames = l[2855] +k.opclass = l[3535] +k.operands = l[3475] +k.name = "ADD_M16I" +k.sub = 0 +end +do local k = l[3535] +k.isa = l[3410] +k.code = l[3469] +k.id = 580 +k.layout = l[3470] +k.impregs = l[697] +k.flags = l[3536] +k.parm = 129 +k.sig = "{}|{{MemId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|66-rexM1|{$parm, !RRMM($sub,$p1), !I16_8($p2)}|PAR81|{rmem, rwmem, wflags, wmem}" +k.prefixclass = l[3474] +end +do local k = l[3536] +k[1] = "rmem" +k[2] = "rwmem" +k[3] = "wflags" +k[4] = "wmem" +k.id = 9 +k.sig = "{rmem, rwmem, wflags, wmem}" +end +do local k = l[3537] +k.orgnames = l[2855] +k.opclass = l[3538] +k.operands = l[3482] +k.name = "ADD_M32I" +k.sub = 0 +end +do local k = l[3538] +k.isa = l[3410] +k.code = l[3480] +k.id = 586 +k.layout = l[3470] +k.impregs = l[697] +k.flags = l[3536] +k.parm = 129 +k.sig = "{}|{{MemId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|rexM1|{$parm, !RRMM($sub,$p1), !I32_8($p2)}|PAR81|{rmem, rwmem, wflags, wmem}" +k.prefixclass = l[3481] +end +do local k = l[3539] +k.orgnames = l[2855] +k.opclass = l[3540] +k.operands = l[3488] +k.name = "ADD_M8I" +k.sub = 0 +end +do local k = l[3540] +k.isa = l[3410] +k.code = l[3487] +k.id = 588 +k.layout = l[3470] +k.impregs = l[697] +k.flags = l[3536] +k.parm = 128 +k.sig = "{}|{{MemId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|rexM1|{$parm, !RRMM($sub,$p1), !I8($p2)}|PAR80|{rmem, rwmem, wflags, wmem}" +k.prefixclass = l[3481] +end +do local k = l[3541] +k.orgnames = l[41] +k.opclass = l[3542] +k.operands = l[3493] +k.name = "ADD_MB" +k.sub = 0 +end +do local k = l[3542] +k.isa = l[3410] +k.code = l[3442] +k.id = 619 +k.layout = l[694] +k.impregs = l[697] +k.flags = l[3536] +k.parm = 0 +k.sig = "{}|{{MemId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|rexR2M1|{$sub*8+$parm, !RRMM($p2,$p1)}|PAR 0|{rmem, rwmem, wflags, wmem}" +k.prefixclass = l[3444] +end +do local k = l[3543] +k.orgnames = l[41] +k.opclass = l[3544] +k.operands = l[2549] +k.name = "ADD_MH" +k.sub = 0 +end +do local k = l[3544] +k.isa = l[3410] +k.code = l[3442] +k.id = 612 +k.layout = l[694] +k.impregs = l[697] +k.flags = l[3536] +k.parm = 1 +k.sig = "{}|{{MemId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|66-rexR2M1|{$sub*8+$parm, !RRMM($p2,$p1)}|PAR 1|{rmem, rwmem, wflags, wmem}" +k.prefixclass = l[3466] +end +do local k = l[3545] +k.orgnames = l[41] +k.opclass = l[3546] +k.operands = l[2555] +k.name = "ADD_MW" +k.sub = 0 +end +do local k = l[3546] +k.isa = l[3410] +k.code = l[3442] +k.id = 621 +k.layout = l[694] +k.impregs = l[697] +k.flags = l[3536] +k.parm = 1 +k.sig = "{}|{{MemId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|rexR2M1|{$sub*8+$parm, !RRMM($p2,$p1)}|PAR 1|{rmem, rwmem, wflags, wmem}" +k.prefixclass = l[3444] +end +do local k = l[3547] +k.orgnames = l[2855] +k.opclass = l[3548] +k.operands = l[3506] +k.name = "ADD_WI" +k.sub = 0 +end +do local k = l[3548] +k.isa = l[3410] +k.code = l[3502] +k.id = 673 +k.layout = l[3503] +k.impregs = l[697] +k.flags = l[709] +k.parm = 129 +k.sig = "{}|{{RegId, def, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|rexB1|{$parm, !RRMR($sub,$p1), !I32_8($p2)}|PAR81|{wflags}" +k.prefixclass = l[3436] +end +do local k = l[3549] +k.orgnames = l[41] +k.opclass = l[3550] +k.operands = l[2146] +k.name = "ADD_WM" +k.sub = 0 +end +do local k = l[3550] +k.isa = l[3410] +k.code = l[3442] +k.id = 639 +k.layout = l[89] +k.impregs = l[697] +k.flags = l[699] +k.parm = 3 +k.sig = "{}|{{MemId, use, p1}, {RegId, use/def, p2}}|{{FLAGS, def}}|rexR2M1|{$sub*8+$parm, !RRMM($p2,$p1)}|PAR 3|{rmem, wflags}" +k.prefixclass = l[3444] +end +do local k = l[3551] +k.orgnames = l[41] +k.opclass = l[3552] +k.operands = l[2151] +k.name = "ADD_WW" +k.sub = 0 +end +do local k = l[3552] +k.isa = l[3410] +k.code = l[3427] +k.id = 713 +k.layout = l[99] +k.impregs = l[697] +k.flags = l[709] +k.parm = 3 +k.sig = "{}|{{RegId, use, p1}, {RegId, use/def, p2}}|{{FLAGS, def}}|rexR2B1|{$sub*8+$parm, !RRMR($p2,$p1)}|PAR 3|{wflags}" +k.prefixclass = l[3430] +end +do local k = l[3553] +k.orgnames = l[2855] +k.opclass = l[3514] +k.operands = l[3416] +k.name = "AND_AL_I" +k.sub = 4 +end +do local k = l[3554] +k.orgnames = l[2855] +k.opclass = l[3519] +k.operands = l[3422] +k.name = "AND_AX_I" +k.sub = 4 +end +do local k = l[3555] +k.orgnames = l[41] +k.opclass = l[3521] +k.operands = l[3431] +k.name = "AND_BB" +k.sub = 4 +end +do local k = l[3556] +k.orgnames = l[2855] +k.opclass = l[3523] +k.operands = l[3437] +k.name = "AND_BI" +k.sub = 4 +end +do local k = l[3557] +k.orgnames = l[41] +k.opclass = l[3525] +k.operands = l[3445] +k.name = "AND_BM" +k.sub = 4 +end +do local k = l[3558] +k.orgnames = l[2855] +k.opclass = l[3527] +k.operands = l[3451] +k.name = "AND_EAX_I" +k.sub = 4 +end +do local k = l[3559] +k.orgnames = l[41] +k.opclass = l[3529] +k.operands = l[2134] +k.name = "AND_HH" +k.sub = 4 +end +do local k = l[3560] +k.orgnames = l[2855] +k.opclass = l[3531] +k.operands = l[3461] +k.name = "AND_HI" +k.sub = 4 +end +do local k = l[3561] +k.orgnames = l[41] +k.opclass = l[3533] +k.operands = l[2141] +k.name = "AND_HM" +k.sub = 4 +end +do local k = l[3562] +k.orgnames = l[2855] +k.opclass = l[3535] +k.operands = l[3475] +k.name = "AND_M16I" +k.sub = 4 +end +do local k = l[3563] +k.orgnames = l[2855] +k.opclass = l[3538] +k.operands = l[3482] +k.name = "AND_M32I" +k.sub = 4 +end +do local k = l[3564] +k.orgnames = l[2855] +k.opclass = l[3540] +k.operands = l[3488] +k.name = "AND_M8I" +k.sub = 4 +end +do local k = l[3565] +k.orgnames = l[41] +k.opclass = l[3542] +k.operands = l[3493] +k.name = "AND_MB" +k.sub = 4 +end +do local k = l[3566] +k.orgnames = l[41] +k.opclass = l[3544] +k.operands = l[2549] +k.name = "AND_MH" +k.sub = 4 +end +do local k = l[3567] +k.orgnames = l[41] +k.opclass = l[3546] +k.operands = l[2555] +k.name = "AND_MW" +k.sub = 4 +end +do local k = l[3568] +k.orgnames = l[2855] +k.opclass = l[3548] +k.operands = l[3506] +k.name = "AND_WI" +k.sub = 4 +end +do local k = l[3569] +k.orgnames = l[41] +k.opclass = l[3550] +k.operands = l[2146] +k.name = "AND_WM" +k.sub = 4 +end +do local k = l[3570] +k.orgnames = l[41] +k.opclass = l[3552] +k.operands = l[2151] +k.name = "AND_WW" +k.sub = 4 +end +do local k = l[3571] +k.orgnames = l[41] +k.opclass = l[3572] +k.operands = l[2134] +k.sub = 28 +k.name = "BSF_HH" +end +do local k = l[3572] +k.isa = l[3410] +k.code = l[22] +k.id = 708 +k.layout = l[99] +k.impregs = l[697] +k.flags = l[709] +k.parm = 160 +k.sig = "{}|{{RegId, use, p1}, {RegId, use/def, p2}}|{{FLAGS, def}}|66-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PARA0|{wflags}" +k.prefixclass = l[2133] +end +do local k = l[3573] +k.orgnames = l[41] +k.opclass = l[3574] +k.operands = l[2141] +k.sub = 28 +k.name = "BSF_HM" +end +do local k = l[3574] +k.isa = l[3410] +k.code = l[7] +k.id = 634 +k.layout = l[89] +k.impregs = l[697] +k.flags = l[699] +k.parm = 160 +k.sig = "{}|{{MemId, use, p1}, {RegId, use/def, p2}}|{{FLAGS, def}}|66-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARA0|{rmem, wflags}" +k.prefixclass = l[2140] +end +do local k = l[3575] +k.orgnames = l[41] +k.opclass = l[3576] +k.operands = l[858] +k.sub = 28 +k.name = "BSF_WM" +end +do local k = l[3576] +k.isa = l[3410] +k.code = l[7] +k.id = 603 +k.layout = l[43] +k.impregs = l[697] +k.flags = l[699] +k.parm = 160 +k.sig = "{}|{{MemId, use, p1}, {RegId, def, p2}}|{{FLAGS, def}}|rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARA0|{rmem, wflags}" +k.prefixclass = l[2027] +end +do local k = l[3577] +k.orgnames = l[41] +k.opclass = l[3578] +k.operands = l[2018] +k.sub = 28 +k.name = "BSF_WW" +end +do local k = l[3578] +k.isa = l[3410] +k.code = l[22] +k.id = 696 +k.layout = l[53] +k.impregs = l[697] +k.flags = l[709] +k.parm = 160 +k.sig = "{}|{{RegId, use, p1}, {RegId, def, p2}}|{{FLAGS, def}}|rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PARA0|{wflags}" +k.prefixclass = l[2030] +end +do local k = l[3579] +k.orgnames = l[41] +k.opclass = l[3572] +k.operands = l[2134] +k.sub = 29 +k.name = "BSR_HH" +end +do local k = l[3580] +k.orgnames = l[41] +k.opclass = l[3574] +k.operands = l[2141] +k.sub = 29 +k.name = "BSR_HM" +end +do local k = l[3581] +k.orgnames = l[41] +k.opclass = l[3576] +k.operands = l[858] +k.sub = 29 +k.name = "BSR_WM" +end +do local k = l[3582] +k.orgnames = l[41] +k.opclass = l[3578] +k.operands = l[2018] +k.sub = 29 +k.name = "BSR_WW" +end +do local k = l[3583] +k.orgnames = l[2566] +k.opclass = l[3584] +k.operands = l[3588] +k.name = "BSWAP_W" +end +do local k = l[3584] +k.isa = l[3410] +k.code = l[3585] +k.id = 755 +k.layout = l[3586] +k.impregs = l[12] +k.flags = l[27] +k.parm = 200 +k.sig = "{}|{{RegId, use/def, p1}}|{}|rexB1-0f|{$parm+($p1&7)}|PARC8|{}" +k.prefixclass = l[2571] +end +do local k = l[3585] +k[1] = "$parm+($p1&7)" +k.id = 21 +k.sig = "{$parm+($p1&7)}" +end +do local k = l[3586] +k[1] = l[3587] +k.id = 6 +k.sig = "{{RegId, use/def, p1}}" +end +do local k = l[3587] +k[1] = "RegId" +k[2] = "use/def" +k[3] = "p1" +end +do local k = l[3588] +k[1] = l[3589] +k.id = 60 +k.sig = "{{mode = io,type = GR32,name = p1}}" +end +do local k = l[3589] +k.mode = "io" +k.type = "GR32" +k.name = "p1" +end +do local k = l[3590] +k.orgnames = l[41] +k.opclass = l[3591] +k.operands = l[3595] +k.sub = 27 +k.name = "BTC_HH" +end +do local k = l[3591] +k.isa = l[3410] +k.code = l[22] +k.id = 739 +k.layout = l[3592] +k.impregs = l[697] +k.flags = l[709] +k.parm = 160 +k.sig = "{}|{{RegId, use/def, p1}, {RegId, use, p2}}|{{FLAGS, def}}|66-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PARA0|{wflags}" +k.prefixclass = l[2133] +end +do local k = l[3592] +k[1] = l[3593] +k[2] = l[3594] +k.id = 9 +k.sig = "{{RegId, use/def, p1}, {RegId, use, p2}}" +end +do local k = l[3593] +k[1] = "RegId" +k[2] = "use/def" +k[3] = "p1" +end +do local k = l[3594] +k[1] = "RegId" +k[2] = "use" +k[3] = "p2" +end +do local k = l[3595] +k[1] = l[3596] +k[2] = l[3597] +k.id = 31 +k.sig = "{{mode = io,type = GR16,name = p1}, {mode = i,type = GR16,name = p2}}" +end +do local k = l[3596] +k.mode = "io" +k.type = "GR16" +k.name = "p1" +end +do local k = l[3597] +k.mode = "i" +k.type = "GR16" +k.name = "p2" +end +do local k = l[3598] +k.orgnames = l[2855] +k.opclass = l[3599] +k.operands = l[3600] +k.sub = 7 +k.name = "BTC_HI" +end +do local k = l[3599] +k.isa = l[3410] +k.code = l[2857] +k.id = 727 +k.layout = l[2858] +k.impregs = l[697] +k.flags = l[709] +k.parm = 186 +k.sig = "{}|{{RegId, use/def, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|66-rexB1-0f|{$parm, !RRMR($sub,$p1), !I8($p2)}|PARBA|{wflags}" +k.prefixclass = l[2861] +end +do local k = l[3600] +k[1] = l[3601] +k[2] = l[3602] +k.id = 20 +k.sig = "{{mode = io,type = GR16,name = p1}, {mode = i,type = i8,name = p2}}" +end +do local k = l[3601] +k.mode = "io" +k.type = "GR16" +k.name = "p1" +end +do local k = l[3602] +k.mode = "i" +k.type = "i8" +k.name = "p2" +end +do local k = l[3603] +k.orgnames = l[2855] +k.opclass = l[3604] +k.operands = l[3606] +k.sub = 7 +k.name = "BTC_M16I" +end +do local k = l[3604] +k.isa = l[3410] +k.code = l[3487] +k.id = 577 +k.layout = l[3470] +k.impregs = l[697] +k.flags = l[3536] +k.parm = 186 +k.sig = "{}|{{MemId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|66-rexM1-0f|{$parm, !RRMM($sub,$p1), !I8($p2)}|PARBA|{rmem, rwmem, wflags, wmem}" +k.prefixclass = l[3605] +end +do local k = l[3605] +k.extopcode = "0f" +k.rex = l[2103] +k.id = 43 +k.pref = "66" +k.sig = "66-rexM1-0f" +end +do local k = l[3606] +k[1] = l[3607] +k[2] = l[3608] +k.id = 112 +k.sig = "{{mode = i,type = i16*,name = p1}, {mode = i,type = i8,name = p2}}" +end +do local k = l[3607] +k.mode = "i" +k.type = "i16*" +k.name = "p1" +end +do local k = l[3608] +k.mode = "i" +k.type = "i8" +k.name = "p2" +end +do local k = l[3609] +k.orgnames = l[2855] +k.opclass = l[3610] +k.operands = l[3611] +k.sub = 7 +k.name = "BTC_M32I" +end +do local k = l[3610] +k.isa = l[3410] +k.code = l[3487] +k.id = 583 +k.layout = l[3470] +k.impregs = l[697] +k.flags = l[3536] +k.parm = 186 +k.sig = "{}|{{MemId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|rexM1-0f|{$parm, !RRMM($sub,$p1), !I8($p2)}|PARBA|{rmem, rwmem, wflags, wmem}" +k.prefixclass = l[2102] +end +do local k = l[3611] +k[1] = l[3612] +k[2] = l[3613] +k.id = 127 +k.sig = "{{mode = i,type = i32*,name = p1}, {mode = i,type = i8,name = p2}}" +end +do local k = l[3612] +k.mode = "i" +k.type = "i32*" +k.name = "p1" +end +do local k = l[3613] +k.mode = "i" +k.type = "i8" +k.name = "p2" +end +do local k = l[3614] +k.orgnames = l[41] +k.opclass = l[3615] +k.operands = l[2549] +k.sub = 27 +k.name = "BTC_MH" +end +do local k = l[3615] +k.isa = l[3410] +k.code = l[7] +k.id = 609 +k.layout = l[694] +k.impregs = l[697] +k.flags = l[3536] +k.parm = 160 +k.sig = "{}|{{MemId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|66-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARA0|{rmem, rwmem, wflags, wmem}" +k.prefixclass = l[2140] +end +do local k = l[3616] +k.orgnames = l[41] +k.opclass = l[3617] +k.operands = l[2555] +k.sub = 27 +k.name = "BTC_MW" +end +do local k = l[3617] +k.isa = l[3410] +k.code = l[7] +k.id = 615 +k.layout = l[694] +k.impregs = l[697] +k.flags = l[3536] +k.parm = 160 +k.sig = "{}|{{MemId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARA0|{rmem, rwmem, wflags, wmem}" +k.prefixclass = l[2027] +end +do local k = l[3618] +k.orgnames = l[2855] +k.opclass = l[3619] +k.operands = l[3620] +k.sub = 7 +k.name = "BTC_WI" +end +do local k = l[3619] +k.isa = l[3410] +k.code = l[2857] +k.id = 672 +k.layout = l[3503] +k.impregs = l[697] +k.flags = l[709] +k.parm = 186 +k.sig = "{}|{{RegId, def, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|rexB1-0f|{$parm, !RRMR($sub,$p1), !I8($p2)}|PARBA|{wflags}" +k.prefixclass = l[2571] +end +do local k = l[3620] +k[1] = l[3621] +k[2] = l[3622] +k.id = 41 +k.sig = "{{mode = o,type = GR32,name = p1}, {mode = i,type = i8,name = p2}}" +end +do local k = l[3621] +k.mode = "o" +k.type = "GR32" +k.name = "p1" +end +do local k = l[3622] +k.mode = "i" +k.type = "i8" +k.name = "p2" +end +do local k = l[3623] +k.orgnames = l[41] +k.opclass = l[3624] +k.operands = l[3628] +k.sub = 27 +k.name = "BTC_WW" +end +do local k = l[3624] +k.isa = l[3410] +k.code = l[22] +k.id = 680 +k.layout = l[3625] +k.impregs = l[697] +k.flags = l[709] +k.parm = 160 +k.sig = "{}|{{RegId, def, p1}, {RegId, use, p2}}|{{FLAGS, def}}|rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PARA0|{wflags}" +k.prefixclass = l[2030] +end +do local k = l[3625] +k[1] = l[3626] +k[2] = l[3627] +k.id = 16 +k.sig = "{{RegId, def, p1}, {RegId, use, p2}}" +end +do local k = l[3626] +k[1] = "RegId" +k[2] = "def" +k[3] = "p1" +end +do local k = l[3627] +k[1] = "RegId" +k[2] = "use" +k[3] = "p2" +end +do local k = l[3628] +k[1] = l[3629] +k[2] = l[3630] +k.id = 52 +k.sig = "{{mode = o,type = GR32,name = p1}, {mode = i,type = GR32,name = p2}}" +end +do local k = l[3629] +k.mode = "o" +k.type = "GR32" +k.name = "p1" +end +do local k = l[3630] +k.mode = "i" +k.type = "GR32" +k.name = "p2" +end +do local k = l[3631] +k.orgnames = l[41] +k.opclass = l[3591] +k.operands = l[3595] +k.sub = 19 +k.name = "BTR_HH" +end +do local k = l[3632] +k.orgnames = l[2855] +k.opclass = l[3599] +k.operands = l[3600] +k.sub = 6 +k.name = "BTR_HI" +end +do local k = l[3633] +k.orgnames = l[2855] +k.opclass = l[3604] +k.operands = l[3606] +k.sub = 6 +k.name = "BTR_M16I" +end +do local k = l[3634] +k.orgnames = l[2855] +k.opclass = l[3610] +k.operands = l[3611] +k.sub = 6 +k.name = "BTR_M32I" +end +do local k = l[3635] +k.orgnames = l[41] +k.opclass = l[3615] +k.operands = l[2549] +k.sub = 19 +k.name = "BTR_MH" +end +do local k = l[3636] +k.orgnames = l[41] +k.opclass = l[3617] +k.operands = l[2555] +k.sub = 19 +k.name = "BTR_MW" +end +do local k = l[3637] +k.orgnames = l[2855] +k.opclass = l[3619] +k.operands = l[3620] +k.sub = 6 +k.name = "BTR_WI" +end +do local k = l[3638] +k.orgnames = l[41] +k.opclass = l[3624] +k.operands = l[3628] +k.sub = 19 +k.name = "BTR_WW" +end +do local k = l[3639] +k.orgnames = l[41] +k.opclass = l[3591] +k.operands = l[3595] +k.sub = 11 +k.name = "BTS_HH" +end +do local k = l[3640] +k.orgnames = l[2855] +k.opclass = l[3599] +k.operands = l[3600] +k.sub = 5 +k.name = "BTS_HI" +end +do local k = l[3641] +k.orgnames = l[2855] +k.opclass = l[3604] +k.operands = l[3606] +k.sub = 5 +k.name = "BTS_M16I" +end +do local k = l[3642] +k.orgnames = l[2855] +k.opclass = l[3610] +k.operands = l[3611] +k.sub = 5 +k.name = "BTS_M32I" +end +do local k = l[3643] +k.orgnames = l[41] +k.opclass = l[3615] +k.operands = l[2549] +k.sub = 11 +k.name = "BTS_MH" +end +do local k = l[3644] +k.orgnames = l[41] +k.opclass = l[3617] +k.operands = l[2555] +k.sub = 11 +k.name = "BTS_MW" +end +do local k = l[3645] +k.orgnames = l[2855] +k.opclass = l[3619] +k.operands = l[3620] +k.sub = 5 +k.name = "BTS_WI" +end +do local k = l[3646] +k.orgnames = l[41] +k.opclass = l[3624] +k.operands = l[3628] +k.sub = 11 +k.name = "BTS_WW" +end +do local k = l[3647] +k.orgnames = l[41] +k.opclass = l[3648] +k.operands = l[3649] +k.sub = 3 +k.name = "BT_HH" +end +do local k = l[3648] +k.isa = l[3410] +k.code = l[22] +k.id = 699 +k.layout = l[706] +k.impregs = l[697] +k.flags = l[709] +k.parm = 160 +k.sig = "{}|{{RegId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|66-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PARA0|{wflags}" +k.prefixclass = l[2133] +end +do local k = l[3649] +k[1] = l[3650] +k[2] = l[3651] +k.id = 18 +k.sig = "{{mode = i,type = GR16,name = p1}, {mode = i,type = GR16,name = p2}}" +end +do local k = l[3650] +k.mode = "i" +k.type = "GR16" +k.name = "p1" +end +do local k = l[3651] +k.mode = "i" +k.type = "GR16" +k.name = "p2" +end +do local k = l[3652] +k.orgnames = l[2855] +k.opclass = l[3653] +k.operands = l[3657] +k.sub = 4 +k.name = "BT_HI" +end +do local k = l[3653] +k.isa = l[3410] +k.code = l[2857] +k.id = 687 +k.layout = l[3654] +k.impregs = l[697] +k.flags = l[709] +k.parm = 186 +k.sig = "{}|{{RegId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|66-rexB1-0f|{$parm, !RRMR($sub,$p1), !I8($p2)}|PARBA|{wflags}" +k.prefixclass = l[2861] +end +do local k = l[3654] +k[1] = l[3655] +k[2] = l[3656] +k.id = 4 +k.sig = "{{RegId, use, p1}, {Imm, use, p2, 0}}" +end +do local k = l[3655] +k[1] = "RegId" +k[2] = "use" +k[3] = "p1" +end +do local k = l[3656] +k[1] = "Imm" +k[2] = "use" +k[3] = "p2" +k[4] = 0 +end +do local k = l[3657] +k[1] = l[3658] +k[2] = l[3659] +k.id = 30 +k.sig = "{{mode = i,type = GR16,name = p1}, {mode = i,type = i8,name = p2}}" +end +do local k = l[3658] +k.mode = "i" +k.type = "GR16" +k.name = "p1" +end +do local k = l[3659] +k.mode = "i" +k.type = "i8" +k.name = "p2" +end +do local k = l[3660] +k.orgnames = l[2855] +k.opclass = l[3661] +k.operands = l[3606] +k.sub = 4 +k.name = "BT_M16I" +end +do local k = l[3661] +k.isa = l[3410] +k.code = l[3487] +k.id = 578 +k.layout = l[3470] +k.impregs = l[697] +k.flags = l[699] +k.parm = 186 +k.sig = "{}|{{MemId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|66-rexM1-0f|{$parm, !RRMM($sub,$p1), !I8($p2)}|PARBA|{rmem, wflags}" +k.prefixclass = l[3605] +end +do local k = l[3662] +k.orgnames = l[2855] +k.opclass = l[3663] +k.operands = l[3611] +k.sub = 4 +k.name = "BT_M32I" +end +do local k = l[3663] +k.isa = l[3410] +k.code = l[3487] +k.id = 584 +k.layout = l[3470] +k.impregs = l[697] +k.flags = l[699] +k.parm = 186 +k.sig = "{}|{{MemId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|rexM1-0f|{$parm, !RRMM($sub,$p1), !I8($p2)}|PARBA|{rmem, wflags}" +k.prefixclass = l[2102] +end +do local k = l[3664] +k.orgnames = l[41] +k.opclass = l[3665] +k.operands = l[2549] +k.sub = 3 +k.name = "BT_MH" +end +do local k = l[3665] +k.isa = l[3410] +k.code = l[7] +k.id = 610 +k.layout = l[694] +k.impregs = l[697] +k.flags = l[699] +k.parm = 160 +k.sig = "{}|{{MemId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|66-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARA0|{rmem, wflags}" +k.prefixclass = l[2140] +end +do local k = l[3666] +k.orgnames = l[41] +k.opclass = l[3667] +k.operands = l[2555] +k.sub = 3 +k.name = "BT_MW" +end +do local k = l[3667] +k.isa = l[3410] +k.code = l[7] +k.id = 616 +k.layout = l[694] +k.impregs = l[697] +k.flags = l[699] +k.parm = 160 +k.sig = "{}|{{MemId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARA0|{rmem, wflags}" +k.prefixclass = l[2027] +end +do local k = l[3668] +k.orgnames = l[2855] +k.opclass = l[3669] +k.operands = l[3670] +k.sub = 4 +k.name = "BT_WI" +end +do local k = l[3669] +k.isa = l[3410] +k.code = l[2857] +k.id = 690 +k.layout = l[3654] +k.impregs = l[697] +k.flags = l[709] +k.parm = 186 +k.sig = "{}|{{RegId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|rexB1-0f|{$parm, !RRMR($sub,$p1), !I8($p2)}|PARBA|{wflags}" +k.prefixclass = l[2571] +end +do local k = l[3670] +k[1] = l[3671] +k[2] = l[3672] +k.id = 51 +k.sig = "{{mode = i,type = GR32,name = p1}, {mode = i,type = i8,name = p2}}" +end +do local k = l[3671] +k.mode = "i" +k.type = "GR32" +k.name = "p1" +end +do local k = l[3672] +k.mode = "i" +k.type = "i8" +k.name = "p2" +end +do local k = l[3673] +k.orgnames = l[41] +k.opclass = l[3674] +k.operands = l[3675] +k.sub = 3 +k.name = "BT_WW" +end +do local k = l[3674] +k.isa = l[3410] +k.code = l[22] +k.id = 702 +k.layout = l[706] +k.impregs = l[697] +k.flags = l[709] +k.parm = 160 +k.sig = "{}|{{RegId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PARA0|{wflags}" +k.prefixclass = l[2030] +end +do local k = l[3675] +k[1] = l[3676] +k[2] = l[3677] +k.id = 39 +k.sig = "{{mode = i,type = GR32,name = p1}, {mode = i,type = GR32,name = p2}}" +end +do local k = l[3676] +k.mode = "i" +k.type = "GR32" +k.name = "p1" +end +do local k = l[3677] +k.mode = "i" +k.type = "GR32" +k.name = "p2" +end +do local k = l[3678] +k.orgnames = l[3679] +k.opclass = l[3680] +k.operands = l[3685] +k.name = "CALL_I_x32" +end +do local k = l[3679] +k[1] = "sp" +k[2] = "tgt" +k.id = 30 +k.sig = "{sp, tgt}" +end +do local k = l[3680] +k.isa = l[3410] +k.code = l[3681] +k.id = 576 +k.layout = l[2603] +k.impregs = l[3682] +k.flags = l[3684] +k.parm = 232 +k.sig = "{}|{{Imm, use, p1, 0}}|{{rsp, use/def}}|rex|{$parm, !REL32($p1)}|PARE8|{cf_call}" +k.prefixclass = l[2535] +end +do local k = l[3681] +k[1] = "$parm" +k[2] = "!REL32($p1)" +k.id = 51 +k.sig = "{$parm, !REL32($p1)}" +end +do local k = l[3682] +k[1] = l[3683] +k.id = 21 +k.sig = "{{rsp, use/def}}" +end +do local k = l[3683] +k[1] = "rsp" +k[2] = "use/def" +end +do local k = l[3684] +k[1] = "cf_call" +k.id = 7 +k.sig = "{cf_call}" +end +do local k = l[3685] +k[1] = l[3686] +k[2] = l[3687] +k.id = 185 +k.sig = "{{mode = io,type = GR32,name = p2,fixed = rsp}, {mode = i,type = i32,name = p1}}" +end +do local k = l[3686] +k.mode = "io" +k.type = "GR32" +k.name = "p2" +k.fixed = "rsp" +end +do local k = l[3687] +k.mode = "i" +k.type = "i32" +k.name = "p1" +end +do local k = l[3688] +k.orgnames = l[3679] +k.opclass = l[3689] +k.operands = l[3693] +k.name = "CALL_I_x64" +end +do local k = l[3689] +k.isa = l[3410] +k.code = l[3681] +k.id = 564 +k.layout = l[3690] +k.impregs = l[3682] +k.flags = l[3684] +k.parm = 232 +k.sig = "{}|{{Imm, use, p1, 0}, {Imm, use, p1, 32}}|{{rsp, use/def}}|rex|{$parm, !REL32($p1)}|PARE8|{cf_call}" +k.prefixclass = l[2535] +end +do local k = l[3690] +k[1] = l[3691] +k[2] = l[3692] +k.id = 35 +k.sig = "{{Imm, use, p1, 0}, {Imm, use, p1, 32}}" +end +do local k = l[3691] +k[1] = "Imm" +k[2] = "use" +k[3] = "p1" +k[4] = 0 +end +do local k = l[3692] +k[1] = "Imm" +k[2] = "use" +k[3] = "p1" +k[4] = 32 +end +do local k = l[3693] +k[1] = l[3694] +k[2] = l[3695] +k.id = 186 +k.sig = "{{mode = io,type = GR32,name = p2,fixed = rsp}, {mode = i,type = i64,name = p1}}" +end +do local k = l[3694] +k.mode = "io" +k.type = "GR32" +k.name = "p2" +k.fixed = "rsp" +end +do local k = l[3695] +k.mode = "i" +k.type = "i64" +k.name = "p1" +end +do local k = l[3696] +k.orgnames = l[2566] +k.opclass = l[3697] +k.operands = l[3701] +k.name = "CBW" +end +do local k = l[3697] +k.isa = l[3410] +k.code = l[3698] +k.id = 761 +k.layout = l[1961] +k.impregs = l[3699] +k.flags = l[27] +k.parm = 152 +k.sig = "{}|{}|{{rax, use/def}}|66-rex|{$parm}|PAR98|{}" +k.prefixclass = l[2614] +end +do local k = l[3698] +k[1] = "$parm" +k.id = 39 +k.sig = "{$parm}" +end +do local k = l[3699] +k[1] = l[3700] +k.id = 11 +k.sig = "{{rax, use/def}}" +end +do local k = l[3700] +k[1] = "rax" +k[2] = "use/def" +end +do local k = l[3701] +k[1] = l[3702] +k.id = 167 +k.sig = "{{mode = io,type = GR16,name = p1,fixed = rax}}" +end +do local k = l[3702] +k.mode = "io" +k.type = "GR16" +k.name = "p1" +k.fixed = "rax" +end +do local k = l[3703] +k.orgnames = l[41] +k.opclass = l[3704] +k.operands = l[3708] +k.name = "CDQ" +end +do local k = l[3704] +k.isa = l[3410] +k.code = l[3698] +k.id = 764 +k.layout = l[1961] +k.impregs = l[3705] +k.flags = l[27] +k.parm = 153 +k.sig = "{}|{}|{{rdx, def}, {rax, use}}|rex|{$parm}|PAR99|{}" +k.prefixclass = l[2535] +end +do local k = l[3705] +k[1] = l[3706] +k[2] = l[3707] +k.id = 15 +k.sig = "{{rdx, def}, {rax, use}}" +end +do local k = l[3706] +k[1] = "rdx" +k[2] = "def" +end +do local k = l[3707] +k[1] = "rax" +k[2] = "use" +end +do local k = l[3708] +k[1] = l[3709] +k[2] = l[3710] +k.id = 171 +k.sig = "{{mode = o,type = GR32,name = p1,fixed = rdx}, {mode = i,type = GR32,name = p2,fixed = rax}}" +end +do local k = l[3709] +k.mode = "o" +k.type = "GR32" +k.name = "p1" +k.fixed = "rdx" +end +do local k = l[3710] +k.mode = "i" +k.type = "GR32" +k.name = "p2" +k.fixed = "rax" +end +do local k = l[3711] +k.orgnames = l[1958] +k.opclass = l[3712] +k.operands = l[1964] +k.name = "CLC" +k.sub = 24 +end +do local k = l[3712] +k.isa = l[3410] +k.code = l[1960] +k.id = 758 +k.layout = l[1961] +k.impregs = l[3428] +k.flags = l[3713] +k.parm = 224 +k.sig = "{}|{}|{{FLAGS, use/def}}|rex|{$parm+$sub}|PARE0|{wflag_c}" +k.prefixclass = l[2535] +end +do local k = l[3713] +k[1] = "wflag_c" +k.id = 4 +k.sig = "{wflag_c}" +end +do local k = l[3714] +k.orgnames = l[1958] +k.opclass = l[3715] +k.operands = l[1964] +k.name = "CMC" +k.sub = 21 +end +do local k = l[3715] +k.isa = l[3410] +k.code = l[1960] +k.id = 757 +k.layout = l[1961] +k.impregs = l[3428] +k.flags = l[3716] +k.parm = 224 +k.sig = "{}|{}|{{FLAGS, use/def}}|rex|{$parm+$sub}|PARE0|{rflag_c, wflag_c}" +k.prefixclass = l[2535] +end +do local k = l[3716] +k[1] = "rflag_c" +k[2] = "wflag_c" +k.id = 20 +k.sig = "{rflag_c, wflag_c}" +end +do local k = l[3717] +k.orgnames = l[3718] +k.opclass = l[3719] +k.operands = l[3727] +k.sub = 1 +k.name = "CMPXCHG8B_M64_EDX_EAX_ECX_EBX" +end +do local k = l[3718] +k[1] = "dst" +k[2] = "v1lo" +k[3] = "v1hi" +k[4] = "v2lo" +k[5] = "v2hi" +k.id = 32 +k.sig = "{dst, v1lo, v1hi, v2lo, v2hi}" +end +do local k = l[3719] +k.isa = l[3410] +k.code = l[2011] +k.id = 662 +k.layout = l[2099] +k.impregs = l[3720] +k.flags = l[3726] +k.parm = 199 +k.sig = "{}|{{MemId, use, p1}}|{{rax, use/def}, {rdx, use/def}, {rbx, use}, {rcx, use}, {FLAGS, def}}|rexM1-0f|{$parm, !RRMM($sub,$p1)}|PARC7|{wflags, wmem}" +k.prefixclass = l[2102] +end +do local k = l[3720] +k[1] = l[3721] +k[2] = l[3722] +k[3] = l[3723] +k[4] = l[3724] +k[5] = l[3725] +k.id = 24 +k.sig = "{{rax, use/def}, {rdx, use/def}, {rbx, use}, {rcx, use}, {FLAGS, def}}" +end +do local k = l[3721] +k[1] = "rax" +k[2] = "use/def" +end +do local k = l[3722] +k[1] = "rdx" +k[2] = "use/def" +end +do local k = l[3723] +k[1] = "rbx" +k[2] = "use" +end +do local k = l[3724] +k[1] = "rcx" +k[2] = "use" +end +do local k = l[3725] +k[1] = "FLAGS" +k[2] = "def" +end +do local k = l[3726] +k[1] = "wflags" +k[2] = "wmem" +k.id = 31 +k.sig = "{wflags, wmem}" +end +do local k = l[3727] +k[1] = l[3728] +k[2] = l[3729] +k[3] = l[3730] +k[4] = l[3731] +k[5] = l[3732] +k.id = 193 +k.sig = "{{mode = i,type = i64*,name = p1}, {mode = io,type = GR32,name = p2,fixed = rax}, {mode = io,type = GR32,name = p3,fixed = rdx}, {mode = i,type = GR32,name = p4,fixed = rbx}, {mode = i,type = GR32,name = p5,fixed = rcx}}" +end +do local k = l[3728] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[3729] +k.mode = "io" +k.type = "GR32" +k.name = "p2" +k.fixed = "rax" +end +do local k = l[3730] +k.mode = "io" +k.type = "GR32" +k.name = "p3" +k.fixed = "rdx" +end +do local k = l[3731] +k.mode = "i" +k.type = "GR32" +k.name = "p4" +k.fixed = "rbx" +end +do local k = l[3732] +k.mode = "i" +k.type = "GR32" +k.name = "p5" +k.fixed = "rcx" +end +do local k = l[3733] +k.orgnames = l[3734] +k.opclass = l[3735] +k.operands = l[3742] +k.sub = 16 +k.name = "CMPXCHG_BB_AL" +end +do local k = l[3734] +k[1] = "dst" +k[2] = "src" +k[3] = "cmp" +k.id = 5 +k.sig = "{dst, src, cmp}" +end +do local k = l[3735] +k.isa = l[3410] +k.code = l[22] +k.id = 742 +k.layout = l[3736] +k.impregs = l[3739] +k.flags = l[709] +k.parm = 160 +k.sig = "{}|{{RegId, use/def, p1}, {RegId, use/def, p2}}|{{rax, use}, {FLAGS, def}}|rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PARA0|{wflags}" +k.prefixclass = l[2030] +end +do local k = l[3736] +k[1] = l[3737] +k[2] = l[3738] +k.id = 7 +k.sig = "{{RegId, use/def, p1}, {RegId, use/def, p2}}" +end +do local k = l[3737] +k[1] = "RegId" +k[2] = "use/def" +k[3] = "p1" +end +do local k = l[3738] +k[1] = "RegId" +k[2] = "use/def" +k[3] = "p2" +end +do local k = l[3739] +k[1] = l[3740] +k[2] = l[3741] +k.id = 8 +k.sig = "{{rax, use}, {FLAGS, def}}" +end +do local k = l[3740] +k[1] = "rax" +k[2] = "use" +end +do local k = l[3741] +k[1] = "FLAGS" +k[2] = "def" +end +do local k = l[3742] +k[1] = l[3743] +k[2] = l[3744] +k[3] = l[3745] +k.id = 10 +k.sig = "{{mode = io,type = GR8,name = p1}, {mode = io,type = GR8,name = p2}, {mode = i,type = GR8,name = p3,fixed = rax}}" +end +do local k = l[3743] +k.mode = "io" +k.type = "GR8" +k.name = "p1" +end +do local k = l[3744] +k.mode = "io" +k.type = "GR8" +k.name = "p2" +end +do local k = l[3745] +k.mode = "i" +k.type = "GR8" +k.name = "p3" +k.fixed = "rax" +end +do local k = l[3746] +k.orgnames = l[3734] +k.opclass = l[3747] +k.operands = l[3748] +k.sub = 17 +k.name = "CMPXCHG_HH_AX" +end +do local k = l[3747] +k.isa = l[3410] +k.code = l[22] +k.id = 741 +k.layout = l[3736] +k.impregs = l[3739] +k.flags = l[709] +k.parm = 160 +k.sig = "{}|{{RegId, use/def, p1}, {RegId, use/def, p2}}|{{rax, use}, {FLAGS, def}}|66-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PARA0|{wflags}" +k.prefixclass = l[2133] +end +do local k = l[3748] +k[1] = l[3749] +k[2] = l[3750] +k[3] = l[3751] +k.id = 23 +k.sig = "{{mode = io,type = GR16,name = p1}, {mode = io,type = GR16,name = p2}, {mode = i,type = GR16,name = p3,fixed = rax}}" +end +do local k = l[3749] +k.mode = "io" +k.type = "GR16" +k.name = "p1" +end +do local k = l[3750] +k.mode = "io" +k.type = "GR16" +k.name = "p2" +end +do local k = l[3751] +k.mode = "i" +k.type = "GR16" +k.name = "p3" +k.fixed = "rax" +end +do local k = l[3752] +k.orgnames = l[3734] +k.opclass = l[3753] +k.operands = l[3754] +k.sub = 16 +k.name = "CMPXCHG_MB_AL" +end +do local k = l[3753] +k.isa = l[3410] +k.code = l[7] +k.id = 644 +k.layout = l[89] +k.impregs = l[3739] +k.flags = l[699] +k.parm = 160 +k.sig = "{}|{{MemId, use, p1}, {RegId, use/def, p2}}|{{rax, use}, {FLAGS, def}}|rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARA0|{rmem, wflags}" +k.prefixclass = l[2027] +end +do local k = l[3754] +k[1] = l[3755] +k[2] = l[3756] +k[3] = l[3757] +k.id = 105 +k.sig = "{{mode = i,type = i8*,name = p1}, {mode = io,type = GR8,name = p2}, {mode = i,type = GR8,name = p3,fixed = rax}}" +end +do local k = l[3755] +k.mode = "i" +k.type = "i8*" +k.name = "p1" +end +do local k = l[3756] +k.mode = "io" +k.type = "GR8" +k.name = "p2" +end +do local k = l[3757] +k.mode = "i" +k.type = "GR8" +k.name = "p3" +k.fixed = "rax" +end +do local k = l[3758] +k.orgnames = l[3734] +k.opclass = l[3759] +k.operands = l[3760] +k.sub = 17 +k.name = "CMPXCHG_MH_AX" +end +do local k = l[3759] +k.isa = l[3410] +k.code = l[7] +k.id = 643 +k.layout = l[89] +k.impregs = l[3739] +k.flags = l[699] +k.parm = 160 +k.sig = "{}|{{MemId, use, p1}, {RegId, use/def, p2}}|{{rax, use}, {FLAGS, def}}|66-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARA0|{rmem, wflags}" +k.prefixclass = l[2140] +end +do local k = l[3760] +k[1] = l[3761] +k[2] = l[3762] +k[3] = l[3763] +k.id = 115 +k.sig = "{{mode = i,type = i16*,name = p1}, {mode = io,type = GR16,name = p2}, {mode = i,type = GR16,name = p3,fixed = rax}}" +end +do local k = l[3761] +k.mode = "i" +k.type = "i16*" +k.name = "p1" +end +do local k = l[3762] +k.mode = "io" +k.type = "GR16" +k.name = "p2" +end +do local k = l[3763] +k.mode = "i" +k.type = "GR16" +k.name = "p3" +k.fixed = "rax" +end +do local k = l[3764] +k.orgnames = l[3734] +k.opclass = l[3753] +k.operands = l[3765] +k.sub = 17 +k.name = "CMPXCHG_MW_EAX" +end +do local k = l[3765] +k[1] = l[3766] +k[2] = l[3767] +k[3] = l[3768] +k.id = 129 +k.sig = "{{mode = i,type = i32*,name = p1}, {mode = io,type = GR32,name = p2}, {mode = i,type = GR32,name = p3,fixed = rax}}" +end +do local k = l[3766] +k.mode = "i" +k.type = "i32*" +k.name = "p1" +end +do local k = l[3767] +k.mode = "io" +k.type = "GR32" +k.name = "p2" +end +do local k = l[3768] +k.mode = "i" +k.type = "GR32" +k.name = "p3" +k.fixed = "rax" +end +do local k = l[3769] +k.orgnames = l[3734] +k.opclass = l[3735] +k.operands = l[3770] +k.sub = 17 +k.name = "CMPXCHG_WW_EAX" +end +do local k = l[3770] +k[1] = l[3771] +k[2] = l[3772] +k[3] = l[3773] +k.id = 43 +k.sig = "{{mode = io,type = GR32,name = p1}, {mode = io,type = GR32,name = p2}, {mode = i,type = GR32,name = p3,fixed = rax}}" +end +do local k = l[3771] +k.mode = "io" +k.type = "GR32" +k.name = "p1" +end +do local k = l[3772] +k.mode = "io" +k.type = "GR32" +k.name = "p2" +end +do local k = l[3773] +k.mode = "i" +k.type = "GR32" +k.name = "p3" +k.fixed = "rax" +end +do local k = l[3774] +k.orgnames = l[2855] +k.opclass = l[3775] +k.operands = l[3776] +k.name = "CMP_AL_I" +k.sub = 7 +end +do local k = l[3775] +k.isa = l[3410] +k.code = l[3411] +k.id = 573 +k.layout = l[2603] +k.impregs = l[3739] +k.flags = l[709] +k.parm = 4 +k.sig = "{}|{{Imm, use, p1, 0}}|{{rax, use}, {FLAGS, def}}|rex|{$sub*8+$parm, !I8($p1))}|PAR 4|{wflags}" +k.prefixclass = l[2535] +end +do local k = l[3776] +k[1] = l[3777] +k[2] = l[3778] +k.id = 12 +k.sig = "{{mode = i,type = GR8,name = p2,fixed = rax}, {mode = i,type = i8,name = p1}}" +end +do local k = l[3777] +k.mode = "i" +k.type = "GR8" +k.name = "p2" +k.fixed = "rax" +end +do local k = l[3778] +k.mode = "i" +k.type = "i8" +k.name = "p1" +end +do local k = l[3779] +k.orgnames = l[2855] +k.opclass = l[3780] +k.operands = l[3781] +k.name = "CMP_AX_I" +k.sub = 7 +end +do local k = l[3780] +k.isa = l[3410] +k.code = l[3421] +k.id = 571 +k.layout = l[2603] +k.impregs = l[3739] +k.flags = l[709] +k.parm = 5 +k.sig = "{}|{{Imm, use, p1, 0}}|{{rax, use}, {FLAGS, def}}|66-rex|{$sub*8+$parm, !I16_8($p1))}|PAR 5|{wflags}" +k.prefixclass = l[2614] +end +do local k = l[3781] +k[1] = l[3782] +k[2] = l[3783] +k.id = 25 +k.sig = "{{mode = i,type = GR16,name = p2,fixed = rax}, {mode = i,type = i16,name = p1}}" +end +do local k = l[3782] +k.mode = "i" +k.type = "GR16" +k.name = "p2" +k.fixed = "rax" +end +do local k = l[3783] +k.mode = "i" +k.type = "i16" +k.name = "p1" +end +do local k = l[3784] +k.orgnames = l[41] +k.opclass = l[3785] +k.operands = l[3786] +k.name = "CMP_BB" +k.sub = 7 +end +do local k = l[3785] +k.isa = l[3410] +k.code = l[3427] +k.id = 705 +k.layout = l[706] +k.impregs = l[697] +k.flags = l[709] +k.parm = 2 +k.sig = "{}|{{RegId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|rexR2B1|{$sub*8+$parm, !RRMR($p2,$p1)}|PAR 2|{wflags}" +k.prefixclass = l[3430] +end +do local k = l[3786] +k[1] = l[3787] +k[2] = l[3788] +k.id = 5 +k.sig = "{{mode = i,type = GR8,name = p2}, {mode = i,type = GR8,name = p1}}" +end +do local k = l[3787] +k.mode = "i" +k.type = "GR8" +k.name = "p2" +end +do local k = l[3788] +k.mode = "i" +k.type = "GR8" +k.name = "p1" +end +do local k = l[3789] +k.orgnames = l[2855] +k.opclass = l[3790] +k.operands = l[3791] +k.name = "CMP_BI" +k.sub = 7 +end +do local k = l[3790] +k.isa = l[3410] +k.code = l[2857] +k.id = 693 +k.layout = l[3654] +k.impregs = l[697] +k.flags = l[709] +k.parm = 128 +k.sig = "{}|{{RegId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|rexB1|{$parm, !RRMR($sub,$p1), !I8($p2)}|PAR80|{wflags}" +k.prefixclass = l[3436] +end +do local k = l[3791] +k[1] = l[3792] +k[2] = l[3793] +k.id = 4 +k.sig = "{{mode = i,type = GR8,name = p1}, {mode = i,type = i8,name = p2}}" +end +do local k = l[3792] +k.mode = "i" +k.type = "GR8" +k.name = "p1" +end +do local k = l[3793] +k.mode = "i" +k.type = "i8" +k.name = "p2" +end +do local k = l[3794] +k.orgnames = l[41] +k.opclass = l[3795] +k.operands = l[3796] +k.name = "CMP_BM" +k.sub = 7 +end +do local k = l[3795] +k.isa = l[3410] +k.code = l[3442] +k.id = 623 +k.layout = l[694] +k.impregs = l[697] +k.flags = l[699] +k.parm = 2 +k.sig = "{}|{{MemId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|rexR2M1|{$sub*8+$parm, !RRMM($p2,$p1)}|PAR 2|{rmem, wflags}" +k.prefixclass = l[3444] +end +do local k = l[3796] +k[1] = l[3797] +k[2] = l[3798] +k.id = 101 +k.sig = "{{mode = i,type = GR8,name = p2}, {mode = i,type = i8*,name = p1}}" +end +do local k = l[3797] +k.mode = "i" +k.type = "GR8" +k.name = "p2" +end +do local k = l[3798] +k.mode = "i" +k.type = "i8*" +k.name = "p1" +end +do local k = l[3799] +k.orgnames = l[2855] +k.opclass = l[3800] +k.operands = l[3801] +k.name = "CMP_EAX_I" +k.sub = 7 +end +do local k = l[3800] +k.isa = l[3410] +k.code = l[3450] +k.id = 572 +k.layout = l[2603] +k.impregs = l[3739] +k.flags = l[709] +k.parm = 5 +k.sig = "{}|{{Imm, use, p1, 0}}|{{rax, use}, {FLAGS, def}}|rex|{$sub*8+$parm, !I32_8($p1))}|PAR 5|{wflags}" +k.prefixclass = l[2535] +end +do local k = l[3801] +k[1] = l[3802] +k[2] = l[3803] +k.id = 45 +k.sig = "{{mode = i,type = GR32,name = p2,fixed = rax}, {mode = i,type = i32,name = p1}}" +end +do local k = l[3802] +k.mode = "i" +k.type = "GR32" +k.name = "p2" +k.fixed = "rax" +end +do local k = l[3803] +k.mode = "i" +k.type = "i32" +k.name = "p1" +end +do local k = l[3804] +k.orgnames = l[41] +k.opclass = l[3805] +k.operands = l[3806] +k.name = "CMP_HH" +k.sub = 7 +end +do local k = l[3805] +k.isa = l[3410] +k.code = l[3427] +k.id = 701 +k.layout = l[706] +k.impregs = l[697] +k.flags = l[709] +k.parm = 3 +k.sig = "{}|{{RegId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|66-rexR2B1|{$sub*8+$parm, !RRMR($p2,$p1)}|PAR 3|{wflags}" +k.prefixclass = l[3456] +end +do local k = l[3806] +k[1] = l[3807] +k[2] = l[3808] +k.id = 17 +k.sig = "{{mode = i,type = GR16,name = p2}, {mode = i,type = GR16,name = p1}}" +end +do local k = l[3807] +k.mode = "i" +k.type = "GR16" +k.name = "p2" +end +do local k = l[3808] +k.mode = "i" +k.type = "GR16" +k.name = "p1" +end +do local k = l[3809] +k.orgnames = l[2855] +k.opclass = l[3810] +k.operands = l[3811] +k.name = "CMP_HI" +k.sub = 7 +end +do local k = l[3810] +k.isa = l[3410] +k.code = l[3459] +k.id = 689 +k.layout = l[3654] +k.impregs = l[697] +k.flags = l[709] +k.parm = 129 +k.sig = "{}|{{RegId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|66-rexB1|{$parm, !RRMR($sub,$p1), !I16_8($p2)}|PAR81|{wflags}" +k.prefixclass = l[3460] +end +do local k = l[3811] +k[1] = l[3812] +k[2] = l[3813] +k.id = 16 +k.sig = "{{mode = i,type = GR16,name = p1}, {mode = i,type = i16,name = p2}}" +end +do local k = l[3812] +k.mode = "i" +k.type = "GR16" +k.name = "p1" +end +do local k = l[3813] +k.mode = "i" +k.type = "i16" +k.name = "p2" +end +do local k = l[3814] +k.orgnames = l[41] +k.opclass = l[3815] +k.operands = l[3816] +k.name = "CMP_HM" +k.sub = 7 +end +do local k = l[3815] +k.isa = l[3410] +k.code = l[3442] +k.id = 614 +k.layout = l[694] +k.impregs = l[697] +k.flags = l[699] +k.parm = 3 +k.sig = "{}|{{MemId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|66-rexR2M1|{$sub*8+$parm, !RRMM($p2,$p1)}|PAR 3|{rmem, wflags}" +k.prefixclass = l[3466] +end +do local k = l[3816] +k[1] = l[3817] +k[2] = l[3818] +k.id = 110 +k.sig = "{{mode = i,type = GR16,name = p2}, {mode = i,type = i16*,name = p1}}" +end +do local k = l[3817] +k.mode = "i" +k.type = "GR16" +k.name = "p2" +end +do local k = l[3818] +k.mode = "i" +k.type = "i16*" +k.name = "p1" +end +do local k = l[3819] +k.orgnames = l[2855] +k.opclass = l[3820] +k.operands = l[3475] +k.name = "CMP_M16I" +k.sub = 7 +end +do local k = l[3820] +k.isa = l[3410] +k.code = l[3469] +k.id = 581 +k.layout = l[3470] +k.impregs = l[697] +k.flags = l[699] +k.parm = 129 +k.sig = "{}|{{MemId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|66-rexM1|{$parm, !RRMM($sub,$p1), !I16_8($p2)}|PAR81|{rmem, wflags}" +k.prefixclass = l[3474] +end +do local k = l[3821] +k.orgnames = l[2855] +k.opclass = l[3822] +k.operands = l[3482] +k.name = "CMP_M32I" +k.sub = 7 +end +do local k = l[3822] +k.isa = l[3410] +k.code = l[3480] +k.id = 587 +k.layout = l[3470] +k.impregs = l[697] +k.flags = l[699] +k.parm = 129 +k.sig = "{}|{{MemId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|rexM1|{$parm, !RRMM($sub,$p1), !I32_8($p2)}|PAR81|{rmem, wflags}" +k.prefixclass = l[3481] +end +do local k = l[3823] +k.orgnames = l[2855] +k.opclass = l[3824] +k.operands = l[3488] +k.name = "CMP_M8I" +k.sub = 7 +end +do local k = l[3824] +k.isa = l[3410] +k.code = l[3487] +k.id = 589 +k.layout = l[3470] +k.impregs = l[697] +k.flags = l[699] +k.parm = 128 +k.sig = "{}|{{MemId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|rexM1|{$parm, !RRMM($sub,$p1), !I8($p2)}|PAR80|{rmem, wflags}" +k.prefixclass = l[3481] +end +do local k = l[3825] +k.orgnames = l[41] +k.opclass = l[3826] +k.operands = l[3493] +k.name = "CMP_MB" +k.sub = 7 +end +do local k = l[3826] +k.isa = l[3410] +k.code = l[3442] +k.id = 620 +k.layout = l[694] +k.impregs = l[697] +k.flags = l[699] +k.parm = 0 +k.sig = "{}|{{MemId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|rexR2M1|{$sub*8+$parm, !RRMM($p2,$p1)}|PAR 0|{rmem, wflags}" +k.prefixclass = l[3444] +end +do local k = l[3827] +k.orgnames = l[41] +k.opclass = l[3828] +k.operands = l[2549] +k.name = "CMP_MH" +k.sub = 7 +end +do local k = l[3828] +k.isa = l[3410] +k.code = l[3442] +k.id = 613 +k.layout = l[694] +k.impregs = l[697] +k.flags = l[699] +k.parm = 1 +k.sig = "{}|{{MemId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|66-rexR2M1|{$sub*8+$parm, !RRMM($p2,$p1)}|PAR 1|{rmem, wflags}" +k.prefixclass = l[3466] +end +do local k = l[3829] +k.orgnames = l[41] +k.opclass = l[3830] +k.operands = l[2555] +k.name = "CMP_MW" +k.sub = 7 +end +do local k = l[3830] +k.isa = l[3410] +k.code = l[3442] +k.id = 622 +k.layout = l[694] +k.impregs = l[697] +k.flags = l[699] +k.parm = 1 +k.sig = "{}|{{MemId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|rexR2M1|{$sub*8+$parm, !RRMM($p2,$p1)}|PAR 1|{rmem, wflags}" +k.prefixclass = l[3444] +end +do local k = l[3831] +k.orgnames = l[2855] +k.opclass = l[3832] +k.operands = l[3833] +k.name = "CMP_WI" +k.sub = 7 +end +do local k = l[3832] +k.isa = l[3410] +k.code = l[3502] +k.id = 692 +k.layout = l[3654] +k.impregs = l[697] +k.flags = l[709] +k.parm = 129 +k.sig = "{}|{{RegId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|rexB1|{$parm, !RRMR($sub,$p1), !I32_8($p2)}|PAR81|{wflags}" +k.prefixclass = l[3436] +end +do local k = l[3833] +k[1] = l[3834] +k[2] = l[3835] +k.id = 37 +k.sig = "{{mode = i,type = GR32,name = p1}, {mode = i,type = i32,name = p2}}" +end +do local k = l[3834] +k.mode = "i" +k.type = "GR32" +k.name = "p1" +end +do local k = l[3835] +k.mode = "i" +k.type = "i32" +k.name = "p2" +end +do local k = l[3836] +k.orgnames = l[41] +k.opclass = l[3837] +k.operands = l[3838] +k.name = "CMP_WM" +k.sub = 7 +end +do local k = l[3837] +k.isa = l[3410] +k.code = l[3442] +k.id = 624 +k.layout = l[694] +k.impregs = l[697] +k.flags = l[699] +k.parm = 3 +k.sig = "{}|{{MemId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|rexR2M1|{$sub*8+$parm, !RRMM($p2,$p1)}|PAR 3|{rmem, wflags}" +k.prefixclass = l[3444] +end +do local k = l[3838] +k[1] = l[3839] +k[2] = l[3840] +k.id = 125 +k.sig = "{{mode = i,type = GR32,name = p2}, {mode = i,type = i32*,name = p1}}" +end +do local k = l[3839] +k.mode = "i" +k.type = "GR32" +k.name = "p2" +end +do local k = l[3840] +k.mode = "i" +k.type = "i32*" +k.name = "p1" +end +do local k = l[3841] +k.orgnames = l[41] +k.opclass = l[3842] +k.operands = l[3843] +k.name = "CMP_WW" +k.sub = 7 +end +do local k = l[3842] +k.isa = l[3410] +k.code = l[3427] +k.id = 706 +k.layout = l[706] +k.impregs = l[697] +k.flags = l[709] +k.parm = 3 +k.sig = "{}|{{RegId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|rexR2B1|{$sub*8+$parm, !RRMR($p2,$p1)}|PAR 3|{wflags}" +k.prefixclass = l[3430] +end +do local k = l[3843] +k[1] = l[3844] +k[2] = l[3845] +k.id = 38 +k.sig = "{{mode = i,type = GR32,name = p2}, {mode = i,type = GR32,name = p1}}" +end +do local k = l[3844] +k.mode = "i" +k.type = "GR32" +k.name = "p2" +end +do local k = l[3845] +k.mode = "i" +k.type = "GR32" +k.name = "p1" +end +do local k = l[3846] +k.sub = 2 +k.orgnames = l[3847] +k.opclass = l[3848] +k.operands = l[3854] +k.name = "CPUID" +end +do local k = l[3847] +k[1] = "r1" +k[2] = "r2" +k[3] = "r3" +k[4] = "r4" +k.id = 22 +k.sig = "{r1, r2, r3, r4}" +end +do local k = l[3848] +k.isa = l[3410] +k.code = l[1960] +k.id = 760 +k.layout = l[1961] +k.impregs = l[3849] +k.flags = l[27] +k.parm = 160 +k.sig = "{}|{}|{{rax, use/def}, {rbx, def}, {rcx, use/def}, {rdx, def}}|rex-0f|{$parm+$sub}|PARA0|{}" +k.prefixclass = l[1977] +end +do local k = l[3849] +k[1] = l[3850] +k[2] = l[3851] +k[3] = l[3852] +k[4] = l[3853] +k.id = 18 +k.sig = "{{rax, use/def}, {rbx, def}, {rcx, use/def}, {rdx, def}}" +end +do local k = l[3850] +k[1] = "rax" +k[2] = "use/def" +end +do local k = l[3851] +k[1] = "rbx" +k[2] = "def" +end +do local k = l[3852] +k[1] = "rcx" +k[2] = "use/def" +end +do local k = l[3853] +k[1] = "rdx" +k[2] = "def" +end +do local k = l[3854] +k[1] = l[3855] +k[2] = l[3856] +k[3] = l[3857] +k[4] = l[3858] +k.id = 179 +k.sig = "{{mode = io,type = GR32,name = p1,fixed = rax}, {mode = o,type = GR32,name = p2,fixed = rbx}, {mode = io,type = GR32,name = p3,fixed = rcx}, {mode = o,type = GR32,name = p4,fixed = rdx}}" +end +do local k = l[3855] +k.mode = "io" +k.type = "GR32" +k.name = "p1" +k.fixed = "rax" +end +do local k = l[3856] +k.mode = "o" +k.type = "GR32" +k.name = "p2" +k.fixed = "rbx" +end +do local k = l[3857] +k.mode = "io" +k.type = "GR32" +k.name = "p3" +k.fixed = "rcx" +end +do local k = l[3858] +k.mode = "o" +k.type = "GR32" +k.name = "p4" +k.fixed = "rdx" +end +do local k = l[3859] +k.orgnames = l[41] +k.opclass = l[3860] +k.operands = l[3864] +k.name = "CWD" +end +do local k = l[3860] +k.isa = l[3410] +k.code = l[3698] +k.id = 765 +k.layout = l[1961] +k.impregs = l[3861] +k.flags = l[27] +k.parm = 153 +k.sig = "{}|{}|{{rdx, use/def}, {rax, use}}|66-rex|{$parm}|PAR99|{}" +k.prefixclass = l[2614] +end +do local k = l[3861] +k[1] = l[3862] +k[2] = l[3863] +k.id = 14 +k.sig = "{{rdx, use/def}, {rax, use}}" +end +do local k = l[3862] +k[1] = "rdx" +k[2] = "use/def" +end +do local k = l[3863] +k[1] = "rax" +k[2] = "use" +end +do local k = l[3864] +k[1] = l[3865] +k[2] = l[3866] +k.id = 170 +k.sig = "{{mode = io,type = GR16,name = p1,fixed = rdx}, {mode = i,type = GR16,name = p2,fixed = rax}}" +end +do local k = l[3865] +k.mode = "io" +k.type = "GR16" +k.name = "p1" +k.fixed = "rdx" +end +do local k = l[3866] +k.mode = "i" +k.type = "GR16" +k.name = "p2" +k.fixed = "rax" +end +do local k = l[3867] +k.orgnames = l[2566] +k.opclass = l[3868] +k.operands = l[3869] +k.name = "CWDE" +end +do local k = l[3868] +k.isa = l[3410] +k.code = l[3698] +k.id = 762 +k.layout = l[1961] +k.impregs = l[3699] +k.flags = l[27] +k.parm = 152 +k.sig = "{}|{}|{{rax, use/def}}|rex|{$parm}|PAR98|{}" +k.prefixclass = l[2535] +end +do local k = l[3869] +k[1] = l[3870] +k.id = 168 +k.sig = "{{mode = io,type = GR32,name = p1,fixed = rax}}" +end +do local k = l[3870] +k.mode = "io" +k.type = "GR32" +k.name = "p1" +k.fixed = "rax" +end +do local k = l[3871] +k.orgnames = l[2566] +k.opclass = l[3872] +k.operands = l[3873] +k.name = "DEC_B" +k.sub = 1 +end +do local k = l[3872] +k.isa = l[3410] +k.code = l[2016] +k.id = 746 +k.layout = l[3586] +k.impregs = l[3428] +k.flags = l[3713] +k.parm = 254 +k.sig = "{}|{{RegId, use/def, p1}}|{{FLAGS, use/def}}|rexB1|{$parm, !RRMR($sub,$p1)}|PARFE|{wflag_c}" +k.prefixclass = l[3436] +end +do local k = l[3873] +k[1] = l[3874] +k.id = 7 +k.sig = "{{mode = io,type = GR8,name = p1}}" +end +do local k = l[3874] +k.mode = "io" +k.type = "GR8" +k.name = "p1" +end +do local k = l[3875] +k.orgnames = l[2566] +k.opclass = l[3876] +k.operands = l[3877] +k.name = "DEC_H" +k.sub = 1 +end +do local k = l[3876] +k.isa = l[3410] +k.code = l[2016] +k.id = 745 +k.layout = l[3586] +k.impregs = l[3428] +k.flags = l[3713] +k.parm = 255 +k.sig = "{}|{{RegId, use/def, p1}}|{{FLAGS, use/def}}|66-rexB1|{$parm, !RRMR($sub,$p1)}|PARFF|{wflag_c}" +k.prefixclass = l[3460] +end +do local k = l[3877] +k[1] = l[3878] +k.id = 19 +k.sig = "{{mode = io,type = GR16,name = p1}}" +end +do local k = l[3878] +k.mode = "io" +k.type = "GR16" +k.name = "p1" +end +do local k = l[3879] +k.orgnames = l[2566] +k.opclass = l[3880] +k.operands = l[3882] +k.name = "DEC_M16" +k.sub = 1 +end +do local k = l[3880] +k.isa = l[3410] +k.code = l[2011] +k.id = 654 +k.layout = l[2099] +k.impregs = l[3428] +k.flags = l[3881] +k.parm = 255 +k.sig = "{}|{{MemId, use, p1}}|{{FLAGS, use/def}}|66-rexM1|{$parm, !RRMM($sub,$p1)}|PARFF|{rmem, rwmem, wflag_c, wmem}" +k.prefixclass = l[3474] +end +do local k = l[3881] +k[1] = "rmem" +k[2] = "rwmem" +k[3] = "wflag_c" +k[4] = "wmem" +k.id = 13 +k.sig = "{rmem, rwmem, wflag_c, wmem}" +end +do local k = l[3882] +k[1] = l[3883] +k.id = 111 +k.sig = "{{mode = i,type = i16*,name = p1}}" +end +do local k = l[3883] +k.mode = "i" +k.type = "i16*" +k.name = "p1" +end +do local k = l[3884] +k.orgnames = l[2566] +k.opclass = l[3885] +k.operands = l[3280] +k.name = "DEC_M32" +k.sub = 1 +end +do local k = l[3885] +k.isa = l[3410] +k.code = l[2011] +k.id = 656 +k.layout = l[2099] +k.impregs = l[3428] +k.flags = l[3881] +k.parm = 255 +k.sig = "{}|{{MemId, use, p1}}|{{FLAGS, use/def}}|rexM1|{$parm, !RRMM($sub,$p1)}|PARFF|{rmem, rwmem, wflag_c, wmem}" +k.prefixclass = l[3481] +end +do local k = l[3886] +k.orgnames = l[2566] +k.opclass = l[3887] +k.operands = l[2104] +k.name = "DEC_M8" +k.sub = 1 +end +do local k = l[3887] +k.isa = l[3410] +k.code = l[2011] +k.id = 655 +k.layout = l[2099] +k.impregs = l[3428] +k.flags = l[3881] +k.parm = 254 +k.sig = "{}|{{MemId, use, p1}}|{{FLAGS, use/def}}|rexM1|{$parm, !RRMM($sub,$p1)}|PARFE|{rmem, rwmem, wflag_c, wmem}" +k.prefixclass = l[3481] +end +do local k = l[3888] +k.orgnames = l[2566] +k.opclass = l[3889] +k.operands = l[2573] +k.name = "DEC_W" +k.sub = 1 +end +do local k = l[3889] +k.isa = l[3410] +k.code = l[2016] +k.id = 683 +k.layout = l[2569] +k.impregs = l[3428] +k.flags = l[3713] +k.parm = 255 +k.sig = "{}|{{RegId, def, p1}}|{{FLAGS, use/def}}|rexB1|{$parm, !RRMR($sub,$p1)}|PARFF|{wflag_c}" +k.prefixclass = l[3436] +end +do local k = l[3890] +k.orgnames = l[3891] +k.opclass = l[3892] +k.operands = l[3895] +k.name = "DIV_B" +k.sub = 6 +end +do local k = l[3891] +k[1] = "quot" +k[2] = "src" +k.id = 15 +k.sig = "{quot, src}" +end +do local k = l[3892] +k.isa = l[3410] +k.code = l[2016] +k.id = 723 +k.layout = l[3893] +k.impregs = l[3515] +k.flags = l[709] +k.parm = 246 +k.sig = "{}|{{RegId, use, p1}}|{{rax, use/def}, {FLAGS, def}}|rexB1|{$parm, !RRMR($sub,$p1)}|PARF6|{wflags}" +k.prefixclass = l[3436] +end +do local k = l[3893] +k[1] = l[3894] +k.id = 10 +k.sig = "{{RegId, use, p1}}" +end +do local k = l[3894] +k[1] = "RegId" +k[2] = "use" +k[3] = "p1" +end +do local k = l[3895] +k[1] = l[3896] +k[2] = l[3897] +k.id = 96 +k.sig = "{{mode = io,type = GR8,name = p2,fixed = rax}, {mode = i,type = GR8,name = p1}}" +end +do local k = l[3896] +k.mode = "io" +k.type = "GR8" +k.name = "p2" +k.fixed = "rax" +end +do local k = l[3897] +k.mode = "i" +k.type = "GR8" +k.name = "p1" +end +do local k = l[3898] +k.orgnames = l[3899] +k.opclass = l[3900] +k.operands = l[3905] +k.name = "DIV_H" +k.sub = 6 +end +do local k = l[3899] +k[1] = "res" +k[2] = "rem" +k[3] = "src" +k.id = 8 +k.sig = "{res, rem, src}" +end +do local k = l[3900] +k.isa = l[3410] +k.code = l[2016] +k.id = 725 +k.layout = l[3893] +k.impregs = l[3901] +k.flags = l[709] +k.parm = 247 +k.sig = "{}|{{RegId, use, p1}}|{{rax, use/def}, {rdx, use/def}, {FLAGS, def}}|66-rexB1|{$parm, !RRMR($sub,$p1)}|PARF7|{wflags}" +k.prefixclass = l[3460] +end +do local k = l[3901] +k[1] = l[3902] +k[2] = l[3903] +k[3] = l[3904] +k.id = 9 +k.sig = "{{rax, use/def}, {rdx, use/def}, {FLAGS, def}}" +end +do local k = l[3902] +k[1] = "rax" +k[2] = "use/def" +end +do local k = l[3903] +k[1] = "rdx" +k[2] = "use/def" +end +do local k = l[3904] +k[1] = "FLAGS" +k[2] = "def" +end +do local k = l[3905] +k[1] = l[3906] +k[2] = l[3907] +k[3] = l[3908] +k.id = 28 +k.sig = "{{mode = io,type = GR16,name = p2,fixed = rax}, {mode = io,type = GR16,name = p3,fixed = rdx}, {mode = i,type = GR16,name = p1}}" +end +do local k = l[3906] +k.mode = "io" +k.type = "GR16" +k.name = "p2" +k.fixed = "rax" +end +do local k = l[3907] +k.mode = "io" +k.type = "GR16" +k.name = "p3" +k.fixed = "rdx" +end +do local k = l[3908] +k.mode = "i" +k.type = "GR16" +k.name = "p1" +end +do local k = l[3909] +k.orgnames = l[3899] +k.opclass = l[3910] +k.operands = l[3911] +k.name = "DIV_M16" +k.sub = 6 +end +do local k = l[3910] +k.isa = l[3410] +k.code = l[2011] +k.id = 660 +k.layout = l[2099] +k.impregs = l[3901] +k.flags = l[699] +k.parm = 247 +k.sig = "{}|{{MemId, use, p1}}|{{rax, use/def}, {rdx, use/def}, {FLAGS, def}}|66-rexM1|{$parm, !RRMM($sub,$p1)}|PARF7|{rmem, wflags}" +k.prefixclass = l[3474] +end +do local k = l[3911] +k[1] = l[3912] +k[2] = l[3913] +k[3] = l[3914] +k.id = 119 +k.sig = "{{mode = io,type = GR16,name = p2,fixed = rax}, {mode = io,type = GR16,name = p3,fixed = rdx}, {mode = i,type = i16*,name = p1}}" +end +do local k = l[3912] +k.mode = "io" +k.type = "GR16" +k.name = "p2" +k.fixed = "rax" +end +do local k = l[3913] +k.mode = "io" +k.type = "GR16" +k.name = "p3" +k.fixed = "rdx" +end +do local k = l[3914] +k.mode = "i" +k.type = "i16*" +k.name = "p1" +end +do local k = l[3915] +k.orgnames = l[3899] +k.opclass = l[3916] +k.operands = l[3917] +k.name = "DIV_M32" +k.sub = 6 +end +do local k = l[3916] +k.isa = l[3410] +k.code = l[2011] +k.id = 661 +k.layout = l[2099] +k.impregs = l[3901] +k.flags = l[699] +k.parm = 247 +k.sig = "{}|{{MemId, use, p1}}|{{rax, use/def}, {rdx, use/def}, {FLAGS, def}}|rexM1|{$parm, !RRMM($sub,$p1)}|PARF7|{rmem, wflags}" +k.prefixclass = l[3481] +end +do local k = l[3917] +k[1] = l[3918] +k[2] = l[3919] +k[3] = l[3920] +k.id = 133 +k.sig = "{{mode = io,type = GR32,name = p2,fixed = rax}, {mode = io,type = GR32,name = p3,fixed = rdx}, {mode = i,type = i32*,name = p1}}" +end +do local k = l[3918] +k.mode = "io" +k.type = "GR32" +k.name = "p2" +k.fixed = "rax" +end +do local k = l[3919] +k.mode = "io" +k.type = "GR32" +k.name = "p3" +k.fixed = "rdx" +end +do local k = l[3920] +k.mode = "i" +k.type = "i32*" +k.name = "p1" +end +do local k = l[3921] +k.orgnames = l[3891] +k.opclass = l[3922] +k.operands = l[3923] +k.name = "DIV_M8" +k.sub = 6 +end +do local k = l[3922] +k.isa = l[3410] +k.code = l[2011] +k.id = 658 +k.layout = l[2099] +k.impregs = l[3515] +k.flags = l[699] +k.parm = 246 +k.sig = "{}|{{MemId, use, p1}}|{{rax, use/def}, {FLAGS, def}}|rexM1|{$parm, !RRMM($sub,$p1)}|PARF6|{rmem, wflags}" +k.prefixclass = l[3481] +end +do local k = l[3923] +k[1] = l[3924] +k[2] = l[3925] +k.id = 165 +k.sig = "{{mode = io,type = GR8,name = p2,fixed = rax}, {mode = i,type = i8*,name = p1}}" +end +do local k = l[3924] +k.mode = "io" +k.type = "GR8" +k.name = "p2" +k.fixed = "rax" +end +do local k = l[3925] +k.mode = "i" +k.type = "i8*" +k.name = "p1" +end +do local k = l[3926] +k.orgnames = l[3899] +k.opclass = l[3927] +k.operands = l[3928] +k.name = "DIV_W" +k.sub = 6 +end +do local k = l[3927] +k.isa = l[3410] +k.code = l[2016] +k.id = 726 +k.layout = l[3893] +k.impregs = l[3901] +k.flags = l[709] +k.parm = 247 +k.sig = "{}|{{RegId, use, p1}}|{{rax, use/def}, {rdx, use/def}, {FLAGS, def}}|rexB1|{$parm, !RRMR($sub,$p1)}|PARF7|{wflags}" +k.prefixclass = l[3436] +end +do local k = l[3928] +k[1] = l[3929] +k[2] = l[3930] +k[3] = l[3931] +k.id = 48 +k.sig = "{{mode = io,type = GR32,name = p2,fixed = rax}, {mode = io,type = GR32,name = p3,fixed = rdx}, {mode = i,type = GR32,name = p1}}" +end +do local k = l[3929] +k.mode = "io" +k.type = "GR32" +k.name = "p2" +k.fixed = "rax" +end +do local k = l[3930] +k.mode = "io" +k.type = "GR32" +k.name = "p3" +k.fixed = "rdx" +end +do local k = l[3931] +k.mode = "i" +k.type = "GR32" +k.name = "p1" +end +do local k = l[3932] +k.orgnames = l[3891] +k.opclass = l[3892] +k.operands = l[3895] +k.name = "IDIV_B" +k.sub = 7 +end +do local k = l[3933] +k.orgnames = l[3899] +k.opclass = l[3900] +k.operands = l[3905] +k.name = "IDIV_H" +k.sub = 7 +end +do local k = l[3934] +k.orgnames = l[3899] +k.opclass = l[3910] +k.operands = l[3911] +k.name = "IDIV_M16" +k.sub = 7 +end +do local k = l[3935] +k.orgnames = l[3899] +k.opclass = l[3916] +k.operands = l[3917] +k.name = "IDIV_M32" +k.sub = 7 +end +do local k = l[3936] +k.orgnames = l[3891] +k.opclass = l[3922] +k.operands = l[3923] +k.name = "IDIV_M8" +k.sub = 7 +end +do local k = l[3937] +k.orgnames = l[3899] +k.opclass = l[3927] +k.operands = l[3928] +k.name = "IDIV_W" +k.sub = 7 +end +do local k = l[3938] +k.orgnames = l[3939] +k.opclass = l[3892] +k.operands = l[3940] +k.name = "IMUL_B" +k.sub = 5 +end +do local k = l[3939] +k[1] = "pr" +k[2] = "src" +k.id = 16 +k.sig = "{pr, src}" +end +do local k = l[3940] +k[1] = l[3941] +k[2] = l[3942] +k.id = 97 +k.sig = "{{mode = io,type = GR16,name = p2,fixed = rax}, {mode = i,type = GR8,name = p1}}" +end +do local k = l[3941] +k.mode = "io" +k.type = "GR16" +k.name = "p2" +k.fixed = "rax" +end +do local k = l[3942] +k.mode = "i" +k.type = "GR8" +k.name = "p1" +end +do local k = l[3943] +k.orgnames = l[3944] +k.opclass = l[3900] +k.operands = l[3905] +k.name = "IMUL_H" +k.sub = 5 +end +do local k = l[3944] +k[1] = "lo" +k[2] = "hi" +k[3] = "src" +k.id = 9 +k.sig = "{lo, hi, src}" +end +do local k = l[3945] +k.orgnames = l[41] +k.opclass = l[3946] +k.operands = l[2134] +k.name = "IMUL_HH" +end +do local k = l[3946] +k.isa = l[3410] +k.code = l[1016] +k.id = 709 +k.layout = l[99] +k.impregs = l[697] +k.flags = l[709] +k.parm = 175 +k.sig = "{}|{{RegId, use, p1}, {RegId, use/def, p2}}|{{FLAGS, def}}|66-rexR2B1|{$parm, !RRMR($p2,$p1)}|PARAF|{wflags}" +k.prefixclass = l[3456] +end +do local k = l[3947] +k.orgnames = l[62] +k.opclass = l[3948] +k.operands = l[3950] +k.name = "IMUL_HHI" +end +do local k = l[3948] +k.isa = l[3410] +k.code = l[3949] +k.id = 707 +k.layout = l[2119] +k.impregs = l[697] +k.flags = l[709] +k.parm = 105 +k.sig = "{}|{{RegId, use, p1}, {RegId, use/def, p2}, {Imm, use, p3, 0}}|{{FLAGS, def}}|66-rexR2B1|{$parm, !RRMR($p2,$p1), !I16_8($p3)}|PAR69|{wflags}" +k.prefixclass = l[3456] +end +do local k = l[3949] +k[1] = "$parm" +k[2] = "!RRMR($p2,$p1)" +k[3] = "!I16_8($p3)" +k.id = 14 +k.sig = "{$parm, !RRMR($p2,$p1), !I16_8($p3)}" +end +do local k = l[3950] +k[1] = l[3951] +k[2] = l[3952] +k[3] = l[3953] +k.id = 29 +k.sig = "{{mode = io,type = GR16,name = p2}, {mode = i,type = GR16,name = p1}, {mode = i,type = i16,name = p3}}" +end +do local k = l[3951] +k.mode = "io" +k.type = "GR16" +k.name = "p2" +end +do local k = l[3952] +k.mode = "i" +k.type = "GR16" +k.name = "p1" +end +do local k = l[3953] +k.mode = "i" +k.type = "i16" +k.name = "p3" +end +do local k = l[3954] +k.orgnames = l[41] +k.opclass = l[3955] +k.operands = l[2141] +k.name = "IMUL_HM" +end +do local k = l[3955] +k.isa = l[3410] +k.code = l[1000] +k.id = 635 +k.layout = l[89] +k.impregs = l[697] +k.flags = l[699] +k.parm = 175 +k.sig = "{}|{{MemId, use, p1}, {RegId, use/def, p2}}|{{FLAGS, def}}|66-rexR2M1|{$parm, !RRMM($p2,$p1)}|PARAF|{rmem, wflags}" +k.prefixclass = l[3466] +end +do local k = l[3956] +k.orgnames = l[62] +k.opclass = l[3957] +k.operands = l[3959] +k.name = "IMUL_HMI" +end +do local k = l[3957] +k.isa = l[3410] +k.code = l[3958] +k.id = 633 +k.layout = l[2109] +k.impregs = l[697] +k.flags = l[699] +k.parm = 105 +k.sig = "{}|{{MemId, use, p1}, {RegId, use/def, p2}, {Imm, use, p3, 0}}|{{FLAGS, def}}|66-rexR2M1|{$parm, !RRMM($p2,$p1), !I16_8($p3)}|PAR69|{rmem, wflags}" +k.prefixclass = l[3466] +end +do local k = l[3958] +k[1] = "$parm" +k[2] = "!RRMM($p2,$p1)" +k[3] = "!I16_8($p3)" +k.id = 34 +k.sig = "{$parm, !RRMM($p2,$p1), !I16_8($p3)}" +end +do local k = l[3959] +k[1] = l[3960] +k[2] = l[3961] +k[3] = l[3962] +k.id = 120 +k.sig = "{{mode = io,type = GR16,name = p2}, {mode = i,type = i16*,name = p1}, {mode = i,type = i16,name = p3}}" +end +do local k = l[3960] +k.mode = "io" +k.type = "GR16" +k.name = "p2" +end +do local k = l[3961] +k.mode = "i" +k.type = "i16*" +k.name = "p1" +end +do local k = l[3962] +k.mode = "i" +k.type = "i16" +k.name = "p3" +end +do local k = l[3963] +k.orgnames = l[3944] +k.opclass = l[3910] +k.operands = l[3911] +k.name = "IMUL_M16" +k.sub = 5 +end +do local k = l[3964] +k.orgnames = l[3944] +k.opclass = l[3965] +k.operands = l[3970] +k.name = "IMUL_M32" +k.sub = 5 +end +do local k = l[3965] +k.isa = l[3410] +k.code = l[2011] +k.id = 659 +k.layout = l[2099] +k.impregs = l[3966] +k.flags = l[699] +k.parm = 247 +k.sig = "{}|{{MemId, use, p1}}|{{rax, use/def}, {rdx, def}, {FLAGS, def}}|rexM1|{$parm, !RRMM($sub,$p1)}|PARF7|{rmem, wflags}" +k.prefixclass = l[3481] +end +do local k = l[3966] +k[1] = l[3967] +k[2] = l[3968] +k[3] = l[3969] +k.id = 12 +k.sig = "{{rax, use/def}, {rdx, def}, {FLAGS, def}}" +end +do local k = l[3967] +k[1] = "rax" +k[2] = "use/def" +end +do local k = l[3968] +k[1] = "rdx" +k[2] = "def" +end +do local k = l[3969] +k[1] = "FLAGS" +k[2] = "def" +end +do local k = l[3970] +k[1] = l[3971] +k[2] = l[3972] +k[3] = l[3973] +k.id = 134 +k.sig = "{{mode = io,type = GR32,name = p2,fixed = rax}, {mode = o,type = GR32,name = p3,fixed = rdx}, {mode = i,type = i32*,name = p1}}" +end +do local k = l[3971] +k.mode = "io" +k.type = "GR32" +k.name = "p2" +k.fixed = "rax" +end +do local k = l[3972] +k.mode = "o" +k.type = "GR32" +k.name = "p3" +k.fixed = "rdx" +end +do local k = l[3973] +k.mode = "i" +k.type = "i32*" +k.name = "p1" +end +do local k = l[3974] +k.orgnames = l[3939] +k.opclass = l[3922] +k.operands = l[3975] +k.name = "IMUL_M8" +k.sub = 5 +end +do local k = l[3975] +k[1] = l[3976] +k[2] = l[3977] +k.id = 166 +k.sig = "{{mode = io,type = GR16,name = p2,fixed = rax}, {mode = i,type = i8*,name = p1}}" +end +do local k = l[3976] +k.mode = "io" +k.type = "GR16" +k.name = "p2" +k.fixed = "rax" +end +do local k = l[3977] +k.mode = "i" +k.type = "i8*" +k.name = "p1" +end +do local k = l[3978] +k.orgnames = l[3944] +k.opclass = l[3979] +k.operands = l[3980] +k.name = "IMUL_W" +k.sub = 5 +end +do local k = l[3979] +k.isa = l[3410] +k.code = l[2016] +k.id = 724 +k.layout = l[3893] +k.impregs = l[3966] +k.flags = l[709] +k.parm = 247 +k.sig = "{}|{{RegId, use, p1}}|{{rax, use/def}, {rdx, def}, {FLAGS, def}}|rexB1|{$parm, !RRMR($sub,$p1)}|PARF7|{wflags}" +k.prefixclass = l[3436] +end +do local k = l[3980] +k[1] = l[3981] +k[2] = l[3982] +k[3] = l[3983] +k.id = 49 +k.sig = "{{mode = io,type = GR32,name = p2,fixed = rax}, {mode = o,type = GR32,name = p3,fixed = rdx}, {mode = i,type = GR32,name = p1}}" +end +do local k = l[3981] +k.mode = "io" +k.type = "GR32" +k.name = "p2" +k.fixed = "rax" +end +do local k = l[3982] +k.mode = "o" +k.type = "GR32" +k.name = "p3" +k.fixed = "rdx" +end +do local k = l[3983] +k.mode = "i" +k.type = "GR32" +k.name = "p1" +end +do local k = l[3984] +k.orgnames = l[41] +k.opclass = l[3985] +k.operands = l[2146] +k.name = "IMUL_WM" +end +do local k = l[3985] +k.isa = l[3410] +k.code = l[1000] +k.id = 637 +k.layout = l[89] +k.impregs = l[697] +k.flags = l[699] +k.parm = 175 +k.sig = "{}|{{MemId, use, p1}, {RegId, use/def, p2}}|{{FLAGS, def}}|rexR2M1|{$parm, !RRMM($p2,$p1)}|PARAF|{rmem, wflags}" +k.prefixclass = l[3444] +end +do local k = l[3986] +k.orgnames = l[62] +k.opclass = l[3987] +k.operands = l[3989] +k.name = "IMUL_WMI" +end +do local k = l[3987] +k.isa = l[3410] +k.code = l[3988] +k.id = 602 +k.layout = l[65] +k.impregs = l[697] +k.flags = l[699] +k.parm = 105 +k.sig = "{}|{{MemId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{{FLAGS, def}}|rexR2M1|{$parm, !RRMM($p2,$p1), !I32_8($p3)}|PAR69|{rmem, wflags}" +k.prefixclass = l[3444] +end +do local k = l[3988] +k[1] = "$parm" +k[2] = "!RRMM($p2,$p1)" +k[3] = "!I32_8($p3)" +k.id = 37 +k.sig = "{$parm, !RRMM($p2,$p1), !I32_8($p3)}" +end +do local k = l[3989] +k[1] = l[3990] +k[2] = l[3991] +k[3] = l[3992] +k.id = 135 +k.sig = "{{mode = o,type = GR32,name = p2}, {mode = i,type = i32*,name = p1}, {mode = i,type = i32,name = p3}}" +end +do local k = l[3990] +k.mode = "o" +k.type = "GR32" +k.name = "p2" +end +do local k = l[3991] +k.mode = "i" +k.type = "i32*" +k.name = "p1" +end +do local k = l[3992] +k.mode = "i" +k.type = "i32" +k.name = "p3" +end +do local k = l[3993] +k.orgnames = l[41] +k.opclass = l[3994] +k.operands = l[2151] +k.name = "IMUL_WW" +end +do local k = l[3994] +k.isa = l[3410] +k.code = l[1016] +k.id = 711 +k.layout = l[99] +k.impregs = l[697] +k.flags = l[709] +k.parm = 175 +k.sig = "{}|{{RegId, use, p1}, {RegId, use/def, p2}}|{{FLAGS, def}}|rexR2B1|{$parm, !RRMR($p2,$p1)}|PARAF|{wflags}" +k.prefixclass = l[3430] +end +do local k = l[3995] +k.orgnames = l[62] +k.opclass = l[3996] +k.operands = l[3998] +k.name = "IMUL_WWI" +end +do local k = l[3996] +k.isa = l[3410] +k.code = l[3997] +k.id = 695 +k.layout = l[77] +k.impregs = l[697] +k.flags = l[709] +k.parm = 105 +k.sig = "{}|{{RegId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{{FLAGS, def}}|rexR2B1|{$parm, !RRMR($p2,$p1), !I32_8($p3)}|PAR69|{wflags}" +k.prefixclass = l[3430] +end +do local k = l[3997] +k[1] = "$parm" +k[2] = "!RRMR($p2,$p1)" +k[3] = "!I32_8($p3)" +k.id = 20 +k.sig = "{$parm, !RRMR($p2,$p1), !I32_8($p3)}" +end +do local k = l[3998] +k[1] = l[3999] +k[2] = l[4000] +k[3] = l[4001] +k.id = 50 +k.sig = "{{mode = o,type = GR32,name = p2}, {mode = i,type = GR32,name = p1}, {mode = i,type = i32,name = p3}}" +end +do local k = l[3999] +k.mode = "o" +k.type = "GR32" +k.name = "p2" +end +do local k = l[4000] +k.mode = "i" +k.type = "GR32" +k.name = "p1" +end +do local k = l[4001] +k.mode = "i" +k.type = "i32" +k.name = "p3" +end +do local k = l[4002] +k.orgnames = l[2566] +k.opclass = l[3872] +k.operands = l[3873] +k.name = "INC_B" +k.sub = 0 +end +do local k = l[4003] +k.orgnames = l[2566] +k.opclass = l[3876] +k.operands = l[3877] +k.name = "INC_H" +k.sub = 0 +end +do local k = l[4004] +k.orgnames = l[2566] +k.opclass = l[3880] +k.operands = l[3882] +k.name = "INC_M16" +k.sub = 0 +end +do local k = l[4005] +k.orgnames = l[2566] +k.opclass = l[3885] +k.operands = l[3280] +k.name = "INC_M32" +k.sub = 0 +end +do local k = l[4006] +k.orgnames = l[2566] +k.opclass = l[3887] +k.operands = l[2104] +k.name = "INC_M8" +k.sub = 0 +end +do local k = l[4007] +k.orgnames = l[2566] +k.opclass = l[3889] +k.operands = l[2573] +k.name = "INC_W" +k.sub = 0 +end +do local k = l[4008] +k.sub = 3 +k.orgnames = l[4009] +k.opclass = l[4010] +k.operands = l[4016] +k.name = "JAE_BB_FT" +end +do local k = l[4009] +k[1] = "tgt" +k[2] = "ft" +k.id = 25 +k.sig = "{tgt, ft}" +end +do local k = l[4010] +k.isa = l[3410] +k.code = l[4011] +k.id = 561 +k.layout = l[4012] +k.impregs = l[2130] +k.flags = l[4015] +k.parm = 128 +k.sig = "{}|{{BBId, use, p1}, {BBId, use, p2}}|{{FLAGS, use}}|rex-0f|{$parm+$sub, !REL32_8_JCC($p1)}|PAR80|{cf_fallthru, cf_jmp, subflags}" +k.prefixclass = l[1977] +end +do local k = l[4011] +k[1] = "$parm+$sub" +k[2] = "!REL32_8_JCC($p1)" +k.id = 47 +k.sig = "{$parm+$sub, !REL32_8_JCC($p1)}" +end +do local k = l[4012] +k[1] = l[4013] +k[2] = l[4014] +k.id = 34 +k.sig = "{{BBId, use, p1}, {BBId, use, p2}}" +end +do local k = l[4013] +k[1] = "BBId" +k[2] = "use" +k[3] = "p1" +end +do local k = l[4014] +k[1] = "BBId" +k[2] = "use" +k[3] = "p2" +end +do local k = l[4015] +k[1] = "cf_fallthru" +k[2] = "cf_jmp" +k[3] = "subflags" +k.id = 23 +k.sig = "{cf_fallthru, cf_jmp, subflags}" +end +do local k = l[4016] +k[1] = l[4017] +k[2] = l[4018] +k.id = 182 +k.sig = "{{mode = i,type = BB,name = p1}, {mode = i,type = BB,name = p2}}" +end +do local k = l[4017] +k.mode = "i" +k.type = "BB" +k.name = "p1" +end +do local k = l[4018] +k.mode = "i" +k.type = "BB" +k.name = "p2" +end +do local k = l[4019] +k.sub = 7 +k.orgnames = l[4009] +k.opclass = l[4010] +k.operands = l[4016] +k.name = "JA_BB_FT" +end +do local k = l[4020] +k.sub = 6 +k.orgnames = l[4009] +k.opclass = l[4010] +k.operands = l[4016] +k.name = "JBE_BB_FT" +end +do local k = l[4021] +k.sub = 2 +k.orgnames = l[4009] +k.opclass = l[4010] +k.operands = l[4016] +k.name = "JB_BB_FT" +end +do local k = l[4022] +k.sub = 4 +k.orgnames = l[4009] +k.opclass = l[4010] +k.operands = l[4016] +k.name = "JE_BB_FT" +end +do local k = l[4023] +k.sub = 13 +k.orgnames = l[4009] +k.opclass = l[4010] +k.operands = l[4016] +k.name = "JGE_BB_FT" +end +do local k = l[4024] +k.sub = 15 +k.orgnames = l[4009] +k.opclass = l[4010] +k.operands = l[4016] +k.name = "JG_BB_FT" +end +do local k = l[4025] +k.sub = 14 +k.orgnames = l[4009] +k.opclass = l[4010] +k.operands = l[4016] +k.name = "JLE_BB_FT" +end +do local k = l[4026] +k.sub = 12 +k.orgnames = l[4009] +k.opclass = l[4010] +k.operands = l[4016] +k.name = "JL_BB_FT" +end +do local k = l[4027] +k.orgnames = l[4028] +k.opclass = l[4029] +k.operands = l[2615] +k.name = "JMP_BB" +end +do local k = l[4028] +k[1] = "tgt" +k.id = 26 +k.sig = "{tgt}" +end +do local k = l[4029] +k.isa = l[3410] +k.code = l[4030] +k.id = 562 +k.layout = l[2611] +k.impregs = l[12] +k.flags = l[4031] +k.parm = 233 +k.sig = "{}|{{BBId, use, p1}}|{}|rex|{$parm, !REL32_8_JMP($p1)}|PARE9|{cf_jmp}" +k.prefixclass = l[2535] +end +do local k = l[4030] +k[1] = "$parm" +k[2] = "!REL32_8_JMP($p1)" +k.id = 48 +k.sig = "{$parm, !REL32_8_JMP($p1)}" +end +do local k = l[4031] +k[1] = "cf_jmp" +k.id = 6 +k.sig = "{cf_jmp}" +end +do local k = l[4032] +k.orgnames = l[4033] +k.operands = l[2615] +k.opclass = l[4034] +k.name = "JMP_FT" +end +do local k = l[4033] +k[1] = "ft" +k.id = 27 +k.sig = "{ft}" +end +do local k = l[4034] +k.isa = l[3410] +k.sig = "{}|{{BBId, use, p1}}|{}|rex|{}|PAR 0|{cf_fallthru}" +k.flags = l[4035] +k.prefixclass = l[2535] +k.id = 563 +k.layout = l[2611] +k.code = l[4036] +k.impregs = l[12] +end +do local k = l[4035] +k[1] = "cf_fallthru" +k.id = 24 +k.sig = "{cf_fallthru}" +end +do local k = l[4036] +k.id = 40 +k.sig = "{}" +end +do local k = l[4037] +k.sub = 5 +k.orgnames = l[4009] +k.opclass = l[4010] +k.operands = l[4016] +k.name = "JNE_BB_FT" +end +do local k = l[4038] +k.sub = 1 +k.orgnames = l[4009] +k.opclass = l[4010] +k.operands = l[4016] +k.name = "JNO_BB_FT" +end +do local k = l[4039] +k.sub = 9 +k.orgnames = l[4009] +k.opclass = l[4010] +k.operands = l[4016] +k.name = "JNS_BB_FT" +end +do local k = l[4040] +k.sub = 0 +k.orgnames = l[4009] +k.opclass = l[4010] +k.operands = l[4016] +k.name = "JO_BB_FT" +end +do local k = l[4041] +k.sub = 10 +k.orgnames = l[4009] +k.opclass = l[4010] +k.operands = l[4016] +k.name = "JPE_BB_FT" +end +do local k = l[4042] +k.sub = 11 +k.orgnames = l[4009] +k.opclass = l[4010] +k.operands = l[4016] +k.name = "JPO_BB_FT" +end +do local k = l[4043] +k.sub = 8 +k.orgnames = l[4009] +k.opclass = l[4010] +k.operands = l[4016] +k.name = "JS_BB_FT" +end +do local k = l[4044] +k.sub = 31 +k.orgnames = l[2566] +k.opclass = l[4045] +k.operands = l[4050] +k.name = "LAHF" +end +do local k = l[4045] +k.isa = l[3410] +k.code = l[1960] +k.id = 759 +k.layout = l[1961] +k.impregs = l[4046] +k.flags = l[4049] +k.parm = 128 +k.sig = "{}|{}|{{rax, use/def}, {FLAGS, use}}|rex|{$parm+$sub}|PAR80|{rflags}" +k.prefixclass = l[2535] +end +do local k = l[4046] +k[1] = l[4047] +k[2] = l[4048] +k.id = 16 +k.sig = "{{rax, use/def}, {FLAGS, use}}" +end +do local k = l[4047] +k[1] = "rax" +k[2] = "use/def" +end +do local k = l[4048] +k[1] = "FLAGS" +k[2] = "use" +end +do local k = l[4049] +k[1] = "rflags" +k.id = 21 +k.sig = "{rflags}" +end +do local k = l[4050] +k[1] = l[4051] +k.id = 174 +k.sig = "{{mode = io,type = GR8,name = p1,fixed = rax}}" +end +do local k = l[4051] +k.mode = "io" +k.type = "GR8" +k.name = "p1" +k.fixed = "rax" +end +do local k = l[4052] +k.orgnames = l[41] +k.opclass = l[4053] +k.operands = l[4054] +k.name = "LEA_WM" +end +do local k = l[4053] +k.isa = l[3410] +k.code = l[1000] +k.id = 606 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[27] +k.parm = 141 +k.sig = "{}|{{MemId, use, p1}, {RegId, def, p2}}|{}|rexR2M1|{$parm, !RRMM($p2,$p1)}|PAR8D|{}" +k.prefixclass = l[3444] +end +do local k = l[4054] +k[1] = l[4055] +k[2] = l[4056] +k.id = 136 +k.sig = "{{mode = o,type = GR32,name = p2}, {mode = i,type = i8*,name = p1}}" +end +do local k = l[4055] +k.mode = "o" +k.type = "GR32" +k.name = "p2" +end +do local k = l[4056] +k.mode = "i" +k.type = "i8*" +k.name = "p1" +end +do local k = l[4057] +k.orgnames = l[4058] +k.opclass = l[4059] +k.operands = l[4069] +k.name = "LEA_WWWII" +end +do local k = l[4058] +k[1] = "dst" +k[2] = "src1" +k[3] = "src2" +k[4] = "mul2" +k[5] = "imm" +k.id = 14 +k.sig = "{dst, src1, src2, mul2, imm}" +end +do local k = l[4059] +k.isa = l[3410] +k.code = l[4060] +k.id = 679 +k.layout = l[4061] +k.impregs = l[12] +k.flags = l[27] +k.parm = 141 +k.sig = "{}|{{RegId, def, p1}, {RegId, use, p2}, {RegId, use, p3}, {Imm, use, p4, 0}, {Imm, use, p5, 0}}|{}|leaR1B2I3|{$parm, !RRMLEA($p1,$p2,$p3,$p4,$p5)}|PAR8D|{}" +k.prefixclass = l[4067] +end +do local k = l[4060] +k[1] = "$parm" +k[2] = "!RRMLEA($p1,$p2,$p3,$p4,$p5)" +k.id = 22 +k.sig = "{$parm, !RRMLEA($p1,$p2,$p3,$p4,$p5)}" +end +do local k = l[4061] +k[1] = l[4062] +k[2] = l[4063] +k[3] = l[4064] +k[4] = l[4065] +k[5] = l[4066] +k.id = 20 +k.sig = "{{RegId, def, p1}, {RegId, use, p2}, {RegId, use, p3}, {Imm, use, p4, 0}, {Imm, use, p5, 0}}" +end +do local k = l[4062] +k[1] = "RegId" +k[2] = "def" +k[3] = "p1" +end +do local k = l[4063] +k[1] = "RegId" +k[2] = "use" +k[3] = "p2" +end +do local k = l[4064] +k[1] = "RegId" +k[2] = "use" +k[3] = "p3" +end +do local k = l[4065] +k[1] = "Imm" +k[2] = "use" +k[3] = "p4" +k[4] = 0 +end +do local k = l[4066] +k[1] = "Imm" +k[2] = "use" +k[3] = "p5" +k[4] = 0 +end +do local k = l[4067] +k.extopcode = "" +k.rex = l[4068] +k.id = 19 +k.pref = "" +k.sig = "leaR1B2I3" +end +do local k = l[4068] +k.r64 = "0" +k.rmi = "p3" +k.sig = "{r64 = 0,rmi = p3,reg = p1,mode = lea,rmb = p2}" +k.reg = "p1" +k.mode = "lea" +k.id = 7 +k.rmb = "p2" +end +do local k = l[4069] +k[1] = l[4070] +k[2] = l[4071] +k[3] = l[4072] +k[4] = l[4073] +k[5] = l[4074] +k.id = 61 +k.sig = "{{mode = o,type = GR32,name = p1}, {mode = i,type = GR32,name = p2}, {mode = i,type = GR32,name = p3}, {mode = i,type = i8,name = p4}, {mode = i,type = i32,name = p5}}" +end +do local k = l[4070] +k.mode = "o" +k.type = "GR32" +k.name = "p1" +end +do local k = l[4071] +k.mode = "i" +k.type = "GR32" +k.name = "p2" +end +do local k = l[4072] +k.mode = "i" +k.type = "GR32" +k.name = "p3" +end +do local k = l[4073] +k.mode = "i" +k.type = "i8" +k.name = "p4" +end +do local k = l[4074] +k.mode = "i" +k.type = "i32" +k.name = "p5" +end +do local k = l[4075] +k.orgnames = l[1958] +k.opclass = l[4076] +k.operands = l[1964] +k.name = "LOCK" +k.sub = 16 +end +do local k = l[4076] +k.isa = l[3410] +k.code = l[1960] +k.id = 770 +k.layout = l[1961] +k.impregs = l[12] +k.flags = l[27] +k.parm = 224 +k.sig = "{}|{}|{}|rex|{$parm+$sub}|PARE0|{}" +k.prefixclass = l[2535] +end +do local k = l[4077] +k.orgnames = l[41] +k.opclass = l[4078] +k.operands = l[4079] +k.sub = 31 +k.name = "MOVSX_WB" +end +do local k = l[4078] +k.isa = l[3410] +k.code = l[22] +k.id = 697 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 160 +k.sig = "{}|{{RegId, use, p1}, {RegId, def, p2}}|{}|rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PARA0|{}" +k.prefixclass = l[2030] +end +do local k = l[4079] +k[1] = l[4080] +k[2] = l[4081] +k.id = 54 +k.sig = "{{mode = o,type = GR32,name = p2}, {mode = i,type = GR8,name = p1}}" +end +do local k = l[4080] +k.mode = "o" +k.type = "GR32" +k.name = "p2" +end +do local k = l[4081] +k.mode = "i" +k.type = "GR8" +k.name = "p1" +end +do local k = l[4082] +k.orgnames = l[41] +k.opclass = l[4078] +k.operands = l[4083] +k.sub = 31 +k.name = "MOVSX_WH" +end +do local k = l[4083] +k[1] = l[4084] +k[2] = l[4085] +k.id = 55 +k.sig = "{{mode = o,type = GR32,name = p2}, {mode = i,type = GR16,name = p1}}" +end +do local k = l[4084] +k.mode = "o" +k.type = "GR32" +k.name = "p2" +end +do local k = l[4085] +k.mode = "i" +k.type = "GR16" +k.name = "p1" +end +do local k = l[4086] +k.orgnames = l[41] +k.opclass = l[4087] +k.operands = l[4088] +k.sub = 31 +k.name = "MOVSX_WM16" +end +do local k = l[4087] +k.isa = l[3410] +k.code = l[7] +k.id = 604 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 160 +k.sig = "{}|{{MemId, use, p1}, {RegId, def, p2}}|{}|rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARA0|{rmem}" +k.prefixclass = l[2027] +end +do local k = l[4088] +k[1] = l[4089] +k[2] = l[4090] +k.id = 137 +k.sig = "{{mode = o,type = GR32,name = p2}, {mode = i,type = i16*,name = p1}}" +end +do local k = l[4089] +k.mode = "o" +k.type = "GR32" +k.name = "p2" +end +do local k = l[4090] +k.mode = "i" +k.type = "i16*" +k.name = "p1" +end +do local k = l[4091] +k.orgnames = l[41] +k.opclass = l[4087] +k.operands = l[4054] +k.sub = 31 +k.name = "MOVSX_WM8" +end +do local k = l[4092] +k.orgnames = l[41] +k.opclass = l[4078] +k.operands = l[4079] +k.sub = 23 +k.name = "MOVZX_WB" +end +do local k = l[4093] +k.orgnames = l[41] +k.opclass = l[4078] +k.operands = l[4083] +k.sub = 23 +k.name = "MOVZX_WH" +end +do local k = l[4094] +k.orgnames = l[41] +k.opclass = l[4087] +k.operands = l[4088] +k.sub = 23 +k.name = "MOVZX_WM16" +end +do local k = l[4095] +k.orgnames = l[41] +k.opclass = l[4087] +k.operands = l[4054] +k.sub = 23 +k.name = "MOVZX_WM8" +end +do local k = l[4096] +k.orgnames = l[41] +k.opclass = l[4097] +k.operands = l[3431] +k.name = "MOV_BB" +end +do local k = l[4097] +k.isa = l[3410] +k.code = l[1016] +k.id = 722 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 138 +k.sig = "{}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|rexR2B1|{$parm, !RRMR($p2,$p1)}|PAR8A|{}" +k.prefixclass = l[3430] +end +do local k = l[4098] +k.orgnames = l[2855] +k.opclass = l[4099] +k.operands = l[3437] +k.name = "MOV_BI" +end +do local k = l[4099] +k.isa = l[3410] +k.code = l[4100] +k.id = 737 +k.layout = l[2858] +k.impregs = l[12] +k.flags = l[27] +k.parm = 176 +k.sig = "{}|{{RegId, use/def, p1}, {Imm, use, p2, 0}}|{}|rexB1|{$parm+($p1&7), !I8($p2)}|PARB0|{}" +k.prefixclass = l[3436] +end +do local k = l[4100] +k[1] = "$parm+($p1&7)" +k[2] = "!I8($p2)" +k.id = 8 +k.sig = "{$parm+($p1&7), !I8($p2)}" +end +do local k = l[4101] +k.orgnames = l[41] +k.opclass = l[4102] +k.operands = l[3445] +k.name = "MOV_BM" +end +do local k = l[4102] +k.isa = l[3410] +k.code = l[1000] +k.id = 650 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[13] +k.parm = 138 +k.sig = "{}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|rexR2M1|{$parm, !RRMM($p2,$p1)}|PAR8A|{rmem}" +k.prefixclass = l[3444] +end +do local k = l[4103] +k.orgnames = l[41] +k.opclass = l[4104] +k.operands = l[2134] +k.name = "MOV_HH" +end +do local k = l[4104] +k.isa = l[3410] +k.code = l[1016] +k.id = 719 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 139 +k.sig = "{}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|66-rexR2B1|{$parm, !RRMR($p2,$p1)}|PAR8B|{}" +k.prefixclass = l[3456] +end +do local k = l[4105] +k.orgnames = l[2855] +k.opclass = l[4106] +k.operands = l[3461] +k.name = "MOV_HI" +end +do local k = l[4106] +k.isa = l[3410] +k.code = l[4107] +k.id = 736 +k.layout = l[2858] +k.impregs = l[12] +k.flags = l[27] +k.parm = 184 +k.sig = "{}|{{RegId, use/def, p1}, {Imm, use, p2, 0}}|{}|66-rexB1|{$parm+($p1&7), !I16($p2)}|PARB8|{}" +k.prefixclass = l[3460] +end +do local k = l[4107] +k[1] = "$parm+($p1&7)" +k[2] = "!I16($p2)" +k.id = 12 +k.sig = "{$parm+($p1&7), !I16($p2)}" +end +do local k = l[4108] +k.orgnames = l[41] +k.opclass = l[4109] +k.operands = l[2141] +k.name = "MOV_HM" +end +do local k = l[4109] +k.isa = l[3410] +k.code = l[1000] +k.id = 647 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[13] +k.parm = 139 +k.sig = "{}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|66-rexR2M1|{$parm, !RRMM($p2,$p1)}|PAR8B|{rmem}" +k.prefixclass = l[3466] +end +do local k = l[4110] +k.orgnames = l[2855] +k.opclass = l[4111] +k.operands = l[3475] +k.name = "MOV_M16I" +k.sub = 0 +end +do local k = l[4111] +k.isa = l[3410] +k.code = l[4112] +k.id = 599 +k.layout = l[3470] +k.impregs = l[12] +k.flags = l[179] +k.parm = 199 +k.sig = "{}|{{MemId, use, p1}, {Imm, use, p2, 0}}|{}|66-rexM1|{$parm, !RRMM($sub,$p1), !I16($p2)}|PARC7|{wmem}" +k.prefixclass = l[3474] +end +do local k = l[4112] +k[1] = "$parm" +k[2] = "!RRMM($sub,$p1)" +k[3] = "!I16($p2)" +k.id = 32 +k.sig = "{$parm, !RRMM($sub,$p1), !I16($p2)}" +end +do local k = l[4113] +k.orgnames = l[2855] +k.opclass = l[4114] +k.operands = l[3482] +k.name = "MOV_M32I" +k.sub = 0 +end +do local k = l[4114] +k.isa = l[3410] +k.code = l[4115] +k.id = 600 +k.layout = l[3470] +k.impregs = l[12] +k.flags = l[179] +k.parm = 199 +k.sig = "{}|{{MemId, use, p1}, {Imm, use, p2, 0}}|{}|rexM1|{$parm, !RRMM($sub,$p1), !I32($p2)}|PARC7|{wmem}" +k.prefixclass = l[3481] +end +do local k = l[4115] +k[1] = "$parm" +k[2] = "!RRMM($sub,$p1)" +k[3] = "!I32($p2)" +k.id = 36 +k.sig = "{$parm, !RRMM($sub,$p1), !I32($p2)}" +end +do local k = l[4116] +k.orgnames = l[2855] +k.opclass = l[4117] +k.operands = l[3488] +k.name = "MOV_M8I" +k.sub = 0 +end +do local k = l[4117] +k.isa = l[3410] +k.code = l[3487] +k.id = 601 +k.layout = l[3470] +k.impregs = l[12] +k.flags = l[179] +k.parm = 198 +k.sig = "{}|{{MemId, use, p1}, {Imm, use, p2, 0}}|{}|rexM1|{$parm, !RRMM($sub,$p1), !I8($p2)}|PARC6|{wmem}" +k.prefixclass = l[3481] +end +do local k = l[4118] +k.orgnames = l[41] +k.opclass = l[4119] +k.operands = l[3493] +k.name = "MOV_MB" +end +do local k = l[4119] +k.isa = l[3410] +k.code = l[1000] +k.id = 631 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 136 +k.sig = "{}|{{MemId, use, p1}, {RegId, use, p2}}|{}|rexR2M1|{$parm, !RRMM($p2,$p1)}|PAR88|{wmem}" +k.prefixclass = l[3444] +end +do local k = l[4120] +k.orgnames = l[41] +k.opclass = l[4121] +k.operands = l[2549] +k.name = "MOV_MH" +end +do local k = l[4121] +k.isa = l[3410] +k.code = l[1000] +k.id = 630 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 137 +k.sig = "{}|{{MemId, use, p1}, {RegId, use, p2}}|{}|66-rexR2M1|{$parm, !RRMM($p2,$p1)}|PAR89|{wmem}" +k.prefixclass = l[3466] +end +do local k = l[4122] +k.orgnames = l[41] +k.opclass = l[4123] +k.operands = l[2555] +k.name = "MOV_MW" +end +do local k = l[4123] +k.isa = l[3410] +k.code = l[1000] +k.id = 632 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 137 +k.sig = "{}|{{MemId, use, p1}, {RegId, use, p2}}|{}|rexR2M1|{$parm, !RRMM($p2,$p1)}|PAR89|{wmem}" +k.prefixclass = l[3444] +end +do local k = l[4124] +k.orgnames = l[2855] +k.opclass = l[4125] +k.operands = l[3506] +k.name = "MOV_WI" +end +do local k = l[4125] +k.isa = l[3410] +k.code = l[4126] +k.id = 677 +k.layout = l[3503] +k.impregs = l[12] +k.flags = l[27] +k.parm = 184 +k.sig = "{}|{{RegId, def, p1}, {Imm, use, p2, 0}}|{}|rexB1|{$parm+($p1&7), !I32($p2)}|PARB8|{}" +k.prefixclass = l[3436] +end +do local k = l[4126] +k[1] = "$parm+($p1&7)" +k[2] = "!I32($p2)" +k.id = 19 +k.sig = "{$parm+($p1&7), !I32($p2)}" +end +do local k = l[4127] +k.orgnames = l[41] +k.opclass = l[4128] +k.operands = l[858] +k.name = "MOV_WM" +end +do local k = l[4128] +k.isa = l[3410] +k.code = l[1000] +k.id = 605 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 139 +k.sig = "{}|{{MemId, use, p1}, {RegId, def, p2}}|{}|rexR2M1|{$parm, !RRMM($p2,$p1)}|PAR8B|{rmem}" +k.prefixclass = l[3444] +end +do local k = l[4129] +k.orgnames = l[41] +k.opclass = l[4130] +k.operands = l[2018] +k.name = "MOV_WW" +end +do local k = l[4130] +k.isa = l[3410] +k.code = l[1016] +k.id = 698 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 139 +k.sig = "{}|{{RegId, use, p1}, {RegId, def, p2}}|{}|rexR2B1|{$parm, !RRMR($p2,$p1)}|PAR8B|{}" +k.prefixclass = l[3430] +end +do local k = l[4131] +k.orgnames = l[3939] +k.opclass = l[3892] +k.operands = l[3940] +k.name = "MUL_B" +k.sub = 4 +end +do local k = l[4132] +k.orgnames = l[3944] +k.opclass = l[3900] +k.operands = l[3905] +k.name = "MUL_H" +k.sub = 4 +end +do local k = l[4133] +k.orgnames = l[3944] +k.opclass = l[3910] +k.operands = l[3911] +k.name = "MUL_M16" +k.sub = 4 +end +do local k = l[4134] +k.orgnames = l[3944] +k.opclass = l[3965] +k.operands = l[3970] +k.name = "MUL_M32" +k.sub = 4 +end +do local k = l[4135] +k.orgnames = l[3939] +k.opclass = l[3922] +k.operands = l[3975] +k.name = "MUL_M8" +k.sub = 4 +end +do local k = l[4136] +k.orgnames = l[3944] +k.opclass = l[3979] +k.operands = l[3980] +k.name = "MUL_W" +k.sub = 4 +end +do local k = l[4137] +k.orgnames = l[2566] +k.opclass = l[4138] +k.operands = l[3873] +k.name = "NEG_B" +k.sub = 3 +end +do local k = l[4138] +k.isa = l[3410] +k.code = l[2016] +k.id = 756 +k.layout = l[3586] +k.impregs = l[12] +k.flags = l[27] +k.parm = 246 +k.sig = "{}|{{RegId, use/def, p1}}|{}|rexB1|{$parm, !RRMR($sub,$p1)}|PARF6|{}" +k.prefixclass = l[3436] +end +do local k = l[4139] +k.orgnames = l[2566] +k.opclass = l[4140] +k.operands = l[3877] +k.name = "NEG_H" +k.sub = 3 +end +do local k = l[4140] +k.isa = l[3410] +k.code = l[2016] +k.id = 754 +k.layout = l[3586] +k.impregs = l[12] +k.flags = l[27] +k.parm = 247 +k.sig = "{}|{{RegId, use/def, p1}}|{}|66-rexB1|{$parm, !RRMR($sub,$p1)}|PARF7|{}" +k.prefixclass = l[3460] +end +do local k = l[4141] +k.orgnames = l[2566] +k.opclass = l[4142] +k.operands = l[3882] +k.name = "NEG_M16" +k.sub = 3 +end +do local k = l[4142] +k.isa = l[3410] +k.code = l[2011] +k.id = 669 +k.layout = l[2099] +k.impregs = l[12] +k.flags = l[2101] +k.parm = 247 +k.sig = "{}|{{MemId, use, p1}}|{}|66-rexM1|{$parm, !RRMM($sub,$p1)}|PARF7|{rmem, rwmem, wmem}" +k.prefixclass = l[3474] +end +do local k = l[4143] +k.orgnames = l[2566] +k.opclass = l[4144] +k.operands = l[3280] +k.name = "NEG_M32" +k.sub = 3 +end +do local k = l[4144] +k.isa = l[3410] +k.code = l[2011] +k.id = 671 +k.layout = l[2099] +k.impregs = l[12] +k.flags = l[2101] +k.parm = 247 +k.sig = "{}|{{MemId, use, p1}}|{}|rexM1|{$parm, !RRMM($sub,$p1)}|PARF7|{rmem, rwmem, wmem}" +k.prefixclass = l[3481] +end +do local k = l[4145] +k.orgnames = l[2566] +k.opclass = l[4146] +k.operands = l[2104] +k.name = "NEG_M8" +k.sub = 3 +end +do local k = l[4146] +k.isa = l[3410] +k.code = l[2011] +k.id = 670 +k.layout = l[2099] +k.impregs = l[12] +k.flags = l[2101] +k.parm = 246 +k.sig = "{}|{{MemId, use, p1}}|{}|rexM1|{$parm, !RRMM($sub,$p1)}|PARF6|{rmem, rwmem, wmem}" +k.prefixclass = l[3481] +end +do local k = l[4147] +k.orgnames = l[2566] +k.opclass = l[4148] +k.operands = l[2573] +k.name = "NEG_W" +k.sub = 3 +end +do local k = l[4148] +k.isa = l[3410] +k.code = l[2016] +k.id = 686 +k.layout = l[2569] +k.impregs = l[12] +k.flags = l[27] +k.parm = 247 +k.sig = "{}|{{RegId, def, p1}}|{}|rexB1|{$parm, !RRMR($sub,$p1)}|PARF7|{}" +k.prefixclass = l[3436] +end +do local k = l[4149] +k.orgnames = l[2566] +k.opclass = l[4150] +k.operands = l[3873] +k.name = "NOT_B" +k.sub = 2 +end +do local k = l[4150] +k.isa = l[3410] +k.code = l[2016] +k.id = 744 +k.layout = l[3586] +k.impregs = l[697] +k.flags = l[709] +k.parm = 246 +k.sig = "{}|{{RegId, use/def, p1}}|{{FLAGS, def}}|rexB1|{$parm, !RRMR($sub,$p1)}|PARF6|{wflags}" +k.prefixclass = l[3436] +end +do local k = l[4151] +k.orgnames = l[2566] +k.opclass = l[4152] +k.operands = l[3877] +k.name = "NOT_H" +k.sub = 2 +end +do local k = l[4152] +k.isa = l[3410] +k.code = l[2016] +k.id = 743 +k.layout = l[3586] +k.impregs = l[697] +k.flags = l[709] +k.parm = 247 +k.sig = "{}|{{RegId, use/def, p1}}|{{FLAGS, def}}|66-rexB1|{$parm, !RRMR($sub,$p1)}|PARF7|{wflags}" +k.prefixclass = l[3460] +end +do local k = l[4153] +k.orgnames = l[2566] +k.opclass = l[4154] +k.operands = l[3882] +k.name = "NOT_M16" +k.sub = 2 +end +do local k = l[4154] +k.isa = l[3410] +k.code = l[2011] +k.id = 651 +k.layout = l[2099] +k.impregs = l[697] +k.flags = l[3536] +k.parm = 247 +k.sig = "{}|{{MemId, use, p1}}|{{FLAGS, def}}|66-rexM1|{$parm, !RRMM($sub,$p1)}|PARF7|{rmem, rwmem, wflags, wmem}" +k.prefixclass = l[3474] +end +do local k = l[4155] +k.orgnames = l[2566] +k.opclass = l[4156] +k.operands = l[3280] +k.name = "NOT_M32" +k.sub = 2 +end +do local k = l[4156] +k.isa = l[3410] +k.code = l[2011] +k.id = 653 +k.layout = l[2099] +k.impregs = l[697] +k.flags = l[3536] +k.parm = 247 +k.sig = "{}|{{MemId, use, p1}}|{{FLAGS, def}}|rexM1|{$parm, !RRMM($sub,$p1)}|PARF7|{rmem, rwmem, wflags, wmem}" +k.prefixclass = l[3481] +end +do local k = l[4157] +k.orgnames = l[2566] +k.opclass = l[4158] +k.operands = l[2104] +k.name = "NOT_M8" +k.sub = 2 +end +do local k = l[4158] +k.isa = l[3410] +k.code = l[2011] +k.id = 652 +k.layout = l[2099] +k.impregs = l[697] +k.flags = l[3536] +k.parm = 246 +k.sig = "{}|{{MemId, use, p1}}|{{FLAGS, def}}|rexM1|{$parm, !RRMM($sub,$p1)}|PARF6|{rmem, rwmem, wflags, wmem}" +k.prefixclass = l[3481] +end +do local k = l[4159] +k.orgnames = l[2566] +k.opclass = l[4160] +k.operands = l[2573] +k.name = "NOT_W" +k.sub = 2 +end +do local k = l[4160] +k.isa = l[3410] +k.code = l[2016] +k.id = 682 +k.layout = l[2569] +k.impregs = l[697] +k.flags = l[709] +k.parm = 247 +k.sig = "{}|{{RegId, def, p1}}|{{FLAGS, def}}|rexB1|{$parm, !RRMR($sub,$p1)}|PARF7|{wflags}" +k.prefixclass = l[3436] +end +do local k = l[4161] +k.orgnames = l[2855] +k.opclass = l[3514] +k.operands = l[3416] +k.name = "OR_AL_I" +k.sub = 1 +end +do local k = l[4162] +k.orgnames = l[2855] +k.opclass = l[3519] +k.operands = l[3422] +k.name = "OR_AX_I" +k.sub = 1 +end +do local k = l[4163] +k.orgnames = l[41] +k.opclass = l[3521] +k.operands = l[3431] +k.name = "OR_BB" +k.sub = 1 +end +do local k = l[4164] +k.orgnames = l[2855] +k.opclass = l[3523] +k.operands = l[3437] +k.name = "OR_BI" +k.sub = 1 +end +do local k = l[4165] +k.orgnames = l[41] +k.opclass = l[3525] +k.operands = l[3445] +k.name = "OR_BM" +k.sub = 1 +end +do local k = l[4166] +k.orgnames = l[2855] +k.opclass = l[3527] +k.operands = l[3451] +k.name = "OR_EAX_I" +k.sub = 1 +end +do local k = l[4167] +k.orgnames = l[41] +k.opclass = l[3529] +k.operands = l[2134] +k.name = "OR_HH" +k.sub = 1 +end +do local k = l[4168] +k.orgnames = l[2855] +k.opclass = l[3531] +k.operands = l[3461] +k.name = "OR_HI" +k.sub = 1 +end +do local k = l[4169] +k.orgnames = l[41] +k.opclass = l[3533] +k.operands = l[2141] +k.name = "OR_HM" +k.sub = 1 +end +do local k = l[4170] +k.orgnames = l[2855] +k.opclass = l[3535] +k.operands = l[3475] +k.name = "OR_M16I" +k.sub = 1 +end +do local k = l[4171] +k.orgnames = l[2855] +k.opclass = l[3538] +k.operands = l[3482] +k.name = "OR_M32I" +k.sub = 1 +end +do local k = l[4172] +k.orgnames = l[2855] +k.opclass = l[3540] +k.operands = l[3488] +k.name = "OR_M8I" +k.sub = 1 +end +do local k = l[4173] +k.orgnames = l[41] +k.opclass = l[3542] +k.operands = l[3493] +k.name = "OR_MB" +k.sub = 1 +end +do local k = l[4174] +k.orgnames = l[41] +k.opclass = l[3544] +k.operands = l[2549] +k.name = "OR_MH" +k.sub = 1 +end +do local k = l[4175] +k.orgnames = l[41] +k.opclass = l[3546] +k.operands = l[2555] +k.name = "OR_MW" +k.sub = 1 +end +do local k = l[4176] +k.orgnames = l[2855] +k.opclass = l[3548] +k.operands = l[3506] +k.name = "OR_WI" +k.sub = 1 +end +do local k = l[4177] +k.orgnames = l[41] +k.opclass = l[3550] +k.operands = l[2146] +k.name = "OR_WM" +k.sub = 1 +end +do local k = l[4178] +k.orgnames = l[41] +k.opclass = l[3552] +k.operands = l[2151] +k.name = "OR_WW" +k.sub = 1 +end +do local k = l[4179] +k.orgnames = l[1958] +k.name = "PAUSE" +k.operands = l[1964] +k.opclass = l[4180] +end +do local k = l[4180] +k.isa = l[3410] +k.sig = "{}|{}|{}|rex|{}|PAR 0|{}" +k.flags = l[27] +k.prefixclass = l[2535] +k.id = 771 +k.layout = l[1961] +k.code = l[4036] +k.impregs = l[12] +end +do local k = l[4181] +k.sub = 29 +k.orgnames = l[4182] +k.opclass = l[4183] +k.operands = l[4188] +k.name = "POPF" +end +do local k = l[4182] +k[1] = "sp" +k.id = 28 +k.sig = "{sp}" +end +do local k = l[4183] +k.isa = l[3410] +k.code = l[1960] +k.id = 766 +k.layout = l[1961] +k.impregs = l[4184] +k.flags = l[4187] +k.parm = 128 +k.sig = "{}|{}|{{rsp, use/def}, {FLAGS, def}}|rex|{$parm+$sub}|PAR80|{usemem, wflags}" +k.prefixclass = l[2535] +end +do local k = l[4184] +k[1] = l[4185] +k[2] = l[4186] +k.id = 23 +k.sig = "{{rsp, use/def}, {FLAGS, def}}" +end +do local k = l[4185] +k[1] = "rsp" +k[2] = "use/def" +end +do local k = l[4186] +k[1] = "FLAGS" +k[2] = "def" +end +do local k = l[4187] +k[1] = "usemem" +k[2] = "wflags" +k.id = 30 +k.sig = "{usemem, wflags}" +end +do local k = l[4188] +k[1] = l[4189] +k.id = 183 +k.sig = "{{mode = io,type = GR32,name = p1,fixed = rsp}}" +end +do local k = l[4189] +k.mode = "io" +k.type = "GR32" +k.name = "p1" +k.fixed = "rsp" +end +do local k = l[4190] +k.sub = 28 +k.orgnames = l[4182] +k.opclass = l[4191] +k.operands = l[4188] +k.name = "PUSHF" +end +do local k = l[4191] +k.isa = l[3410] +k.code = l[1960] +k.id = 767 +k.layout = l[1961] +k.impregs = l[4192] +k.flags = l[4195] +k.parm = 128 +k.sig = "{}|{}|{{rsp, use/def}, {FLAGS, use}}|rex|{$parm+$sub}|PAR80|{rflags, usemem}" +k.prefixclass = l[2535] +end +do local k = l[4192] +k[1] = l[4193] +k[2] = l[4194] +k.id = 22 +k.sig = "{{rsp, use/def}, {FLAGS, use}}" +end +do local k = l[4193] +k[1] = "rsp" +k[2] = "use/def" +end +do local k = l[4194] +k[1] = "FLAGS" +k[2] = "use" +end +do local k = l[4195] +k[1] = "rflags" +k[2] = "usemem" +k.id = 29 +k.sig = "{rflags, usemem}" +end +do local k = l[4196] +k.orgnames = l[4197] +k.opclass = l[4198] +k.operands = l[3685] +k.name = "PUSH_I" +end +do local k = l[4197] +k[1] = "sp" +k[2] = "imm" +k.id = 29 +k.sig = "{sp, imm}" +end +do local k = l[4198] +k.isa = l[3410] +k.code = l[4199] +k.id = 575 +k.layout = l[2603] +k.impregs = l[3682] +k.flags = l[4200] +k.parm = 104 +k.sig = "{}|{{Imm, use, p1, 0}}|{{rsp, use/def}}|rex|{$parm, !I32_8($p1)}|PAR68|{usemem}" +k.prefixclass = l[2535] +end +do local k = l[4199] +k[1] = "$parm" +k[2] = "!I32_8($p1)" +k.id = 50 +k.sig = "{$parm, !I32_8($p1)}" +end +do local k = l[4200] +k[1] = "usemem" +k.id = 26 +k.sig = "{usemem}" +end +do local k = l[4201] +k.orgnames = l[4202] +k.opclass = l[4203] +k.operands = l[3437] +k.name = "RCL_BI" +k.sub = 2 +end +do local k = l[4202] +k[1] = "dst" +k[2] = "sa" +k.id = 4 +k.sig = "{dst, sa}" +end +do local k = l[4203] +k.isa = l[3410] +k.code = l[4204] +k.id = 735 +k.layout = l[2858] +k.impregs = l[3428] +k.flags = l[3415] +k.parm = 192 +k.sig = "{}|{{RegId, use/def, p1}, {Imm, use, p2, 0}}|{{FLAGS, use/def}}|rexB1|{$parm, !RRMR($sub,$p1), !I8_1($p2)}|PARC0|{rflag_c, wflags}" +k.prefixclass = l[3436] +end +do local k = l[4204] +k[1] = "$parm" +k[2] = "!RRMR($sub,$p1)" +k[3] = "!I8_1($p2)" +k.id = 6 +k.sig = "{$parm, !RRMR($sub,$p1), !I8_1($p2)}" +end +do local k = l[4205] +k.orgnames = l[4202] +k.opclass = l[4206] +k.operands = l[4210] +k.name = "RCL_B_CL" +k.sub = 2 +end +do local k = l[4206] +k.isa = l[3410] +k.code = l[2016] +k.id = 753 +k.layout = l[3586] +k.impregs = l[4207] +k.flags = l[3415] +k.parm = 210 +k.sig = "{}|{{RegId, use/def, p1}}|{{rcx, use}, {FLAGS, use/def}}|rexB1|{$parm, !RRMR($sub,$p1)}|PARD2|{rflag_c, wflags}" +k.prefixclass = l[3436] +end +do local k = l[4207] +k[1] = l[4208] +k[2] = l[4209] +k.id = 7 +k.sig = "{{rcx, use}, {FLAGS, use/def}}" +end +do local k = l[4208] +k[1] = "rcx" +k[2] = "use" +end +do local k = l[4209] +k[1] = "FLAGS" +k[2] = "use/def" +end +do local k = l[4210] +k[1] = l[4211] +k[2] = l[4212] +k.id = 8 +k.sig = "{{mode = io,type = GR8,name = p1}, {mode = i,type = GR8,name = p2,fixed = rcx}}" +end +do local k = l[4211] +k.mode = "io" +k.type = "GR8" +k.name = "p1" +end +do local k = l[4212] +k.mode = "i" +k.type = "GR8" +k.name = "p2" +k.fixed = "rcx" +end +do local k = l[4213] +k.orgnames = l[4202] +k.opclass = l[4214] +k.operands = l[3600] +k.name = "RCL_HI" +k.sub = 2 +end +do local k = l[4214] +k.isa = l[3410] +k.code = l[4204] +k.id = 733 +k.layout = l[2858] +k.impregs = l[3428] +k.flags = l[3415] +k.parm = 193 +k.sig = "{}|{{RegId, use/def, p1}, {Imm, use, p2, 0}}|{{FLAGS, use/def}}|66-rexB1|{$parm, !RRMR($sub,$p1), !I8_1($p2)}|PARC1|{rflag_c, wflags}" +k.prefixclass = l[3460] +end +do local k = l[4215] +k.orgnames = l[4202] +k.opclass = l[4216] +k.operands = l[4217] +k.name = "RCL_H_CL" +k.sub = 2 +end +do local k = l[4216] +k.isa = l[3410] +k.code = l[2016] +k.id = 752 +k.layout = l[3586] +k.impregs = l[4207] +k.flags = l[3415] +k.parm = 211 +k.sig = "{}|{{RegId, use/def, p1}}|{{rcx, use}, {FLAGS, use/def}}|66-rexB1|{$parm, !RRMR($sub,$p1)}|PARD3|{rflag_c, wflags}" +k.prefixclass = l[3460] +end +do local k = l[4217] +k[1] = l[4218] +k[2] = l[4219] +k.id = 21 +k.sig = "{{mode = io,type = GR16,name = p1}, {mode = i,type = GR8,name = p2,fixed = rcx}}" +end +do local k = l[4218] +k.mode = "io" +k.type = "GR16" +k.name = "p1" +end +do local k = l[4219] +k.mode = "i" +k.type = "GR8" +k.name = "p2" +k.fixed = "rcx" +end +do local k = l[4220] +k.orgnames = l[4202] +k.opclass = l[4221] +k.operands = l[3606] +k.name = "RCL_M16I" +k.sub = 2 +end +do local k = l[4221] +k.isa = l[3410] +k.code = l[4222] +k.id = 594 +k.layout = l[3470] +k.impregs = l[3428] +k.flags = l[3473] +k.parm = 193 +k.sig = "{}|{{MemId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, use/def}}|66-rexM1|{$parm, !RRMM($sub,$p1), !I8_1($p2)}|PARC1|{rflag_c, rmem, rwmem, wflags, wmem}" +k.prefixclass = l[3474] +end +do local k = l[4222] +k[1] = "$parm" +k[2] = "!RRMM($sub,$p1)" +k[3] = "!I8_1($p2)" +k.id = 29 +k.sig = "{$parm, !RRMM($sub,$p1), !I8_1($p2)}" +end +do local k = l[4223] +k.orgnames = l[4202] +k.opclass = l[4224] +k.operands = l[4225] +k.name = "RCL_M16_CL" +k.sub = 2 +end +do local k = l[4224] +k.isa = l[3410] +k.code = l[2011] +k.id = 666 +k.layout = l[2099] +k.impregs = l[4207] +k.flags = l[3473] +k.parm = 211 +k.sig = "{}|{{MemId, use, p1}}|{{rcx, use}, {FLAGS, use/def}}|66-rexM1|{$parm, !RRMM($sub,$p1)}|PARD3|{rflag_c, rmem, rwmem, wflags, wmem}" +k.prefixclass = l[3474] +end +do local k = l[4225] +k[1] = l[4226] +k[2] = l[4227] +k.id = 113 +k.sig = "{{mode = i,type = i16*,name = p1}, {mode = i,type = GR8,name = p2,fixed = rcx}}" +end +do local k = l[4226] +k.mode = "i" +k.type = "i16*" +k.name = "p1" +end +do local k = l[4227] +k.mode = "i" +k.type = "GR8" +k.name = "p2" +k.fixed = "rcx" +end +do local k = l[4228] +k.orgnames = l[4202] +k.opclass = l[4229] +k.operands = l[3611] +k.name = "RCL_M32I" +k.sub = 2 +end +do local k = l[4229] +k.isa = l[3410] +k.code = l[4222] +k.id = 598 +k.layout = l[3470] +k.impregs = l[3428] +k.flags = l[3473] +k.parm = 193 +k.sig = "{}|{{MemId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, use/def}}|rexM1|{$parm, !RRMM($sub,$p1), !I8_1($p2)}|PARC1|{rflag_c, rmem, rwmem, wflags, wmem}" +k.prefixclass = l[3481] +end +do local k = l[4230] +k.orgnames = l[4202] +k.opclass = l[4231] +k.operands = l[4232] +k.name = "RCL_M32_CL" +k.sub = 2 +end +do local k = l[4231] +k.isa = l[3410] +k.code = l[2011] +k.id = 668 +k.layout = l[2099] +k.impregs = l[4207] +k.flags = l[3473] +k.parm = 211 +k.sig = "{}|{{MemId, use, p1}}|{{rcx, use}, {FLAGS, use/def}}|rexM1|{$parm, !RRMM($sub,$p1)}|PARD3|{rflag_c, rmem, rwmem, wflags, wmem}" +k.prefixclass = l[3481] +end +do local k = l[4232] +k[1] = l[4233] +k[2] = l[4234] +k.id = 128 +k.sig = "{{mode = i,type = i32*,name = p1}, {mode = i,type = GR8,name = p2,fixed = rcx}}" +end +do local k = l[4233] +k.mode = "i" +k.type = "i32*" +k.name = "p1" +end +do local k = l[4234] +k.mode = "i" +k.type = "GR8" +k.name = "p2" +k.fixed = "rcx" +end +do local k = l[4235] +k.orgnames = l[4202] +k.opclass = l[4236] +k.operands = l[3488] +k.name = "RCL_M8I" +k.sub = 2 +end +do local k = l[4236] +k.isa = l[3410] +k.code = l[4222] +k.id = 597 +k.layout = l[3470] +k.impregs = l[3428] +k.flags = l[3473] +k.parm = 192 +k.sig = "{}|{{MemId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, use/def}}|rexM1|{$parm, !RRMM($sub,$p1), !I8_1($p2)}|PARC0|{rflag_c, rmem, rwmem, wflags, wmem}" +k.prefixclass = l[3481] +end +do local k = l[4237] +k.orgnames = l[4202] +k.opclass = l[4238] +k.operands = l[4239] +k.name = "RCL_M8_CL" +k.sub = 2 +end +do local k = l[4238] +k.isa = l[3410] +k.code = l[2011] +k.id = 667 +k.layout = l[2099] +k.impregs = l[4207] +k.flags = l[3473] +k.parm = 210 +k.sig = "{}|{{MemId, use, p1}}|{{rcx, use}, {FLAGS, use/def}}|rexM1|{$parm, !RRMM($sub,$p1)}|PARD2|{rflag_c, rmem, rwmem, wflags, wmem}" +k.prefixclass = l[3481] +end +do local k = l[4239] +k[1] = l[4240] +k[2] = l[4241] +k.id = 103 +k.sig = "{{mode = i,type = i8*,name = p1}, {mode = i,type = GR8,name = p2,fixed = rcx}}" +end +do local k = l[4240] +k.mode = "i" +k.type = "i8*" +k.name = "p1" +end +do local k = l[4241] +k.mode = "i" +k.type = "GR8" +k.name = "p2" +k.fixed = "rcx" +end +do local k = l[4242] +k.orgnames = l[4202] +k.opclass = l[4243] +k.operands = l[3620] +k.name = "RCL_WI" +k.sub = 2 +end +do local k = l[4243] +k.isa = l[3410] +k.code = l[4204] +k.id = 676 +k.layout = l[3503] +k.impregs = l[3428] +k.flags = l[3415] +k.parm = 193 +k.sig = "{}|{{RegId, def, p1}, {Imm, use, p2, 0}}|{{FLAGS, use/def}}|rexB1|{$parm, !RRMR($sub,$p1), !I8_1($p2)}|PARC1|{rflag_c, wflags}" +k.prefixclass = l[3436] +end +do local k = l[4244] +k.orgnames = l[4202] +k.opclass = l[4245] +k.operands = l[4246] +k.name = "RCL_W_CL" +k.sub = 2 +end +do local k = l[4245] +k.isa = l[3410] +k.code = l[2016] +k.id = 685 +k.layout = l[2569] +k.impregs = l[4207] +k.flags = l[3415] +k.parm = 211 +k.sig = "{}|{{RegId, def, p1}}|{{rcx, use}, {FLAGS, use/def}}|rexB1|{$parm, !RRMR($sub,$p1)}|PARD3|{rflag_c, wflags}" +k.prefixclass = l[3436] +end +do local k = l[4246] +k[1] = l[4247] +k[2] = l[4248] +k.id = 42 +k.sig = "{{mode = o,type = GR32,name = p1}, {mode = i,type = GR8,name = p2,fixed = rcx}}" +end +do local k = l[4247] +k.mode = "o" +k.type = "GR32" +k.name = "p1" +end +do local k = l[4248] +k.mode = "i" +k.type = "GR8" +k.name = "p2" +k.fixed = "rcx" +end +do local k = l[4249] +k.orgnames = l[4202] +k.opclass = l[4203] +k.operands = l[3437] +k.name = "RCR_BI" +k.sub = 3 +end +do local k = l[4250] +k.orgnames = l[4202] +k.opclass = l[4206] +k.operands = l[4210] +k.name = "RCR_B_CL" +k.sub = 3 +end +do local k = l[4251] +k.orgnames = l[4202] +k.opclass = l[4214] +k.operands = l[3600] +k.name = "RCR_HI" +k.sub = 3 +end +do local k = l[4252] +k.orgnames = l[4202] +k.opclass = l[4216] +k.operands = l[4217] +k.name = "RCR_H_CL" +k.sub = 3 +end +do local k = l[4253] +k.orgnames = l[4202] +k.opclass = l[4221] +k.operands = l[3606] +k.name = "RCR_M16I" +k.sub = 3 +end +do local k = l[4254] +k.orgnames = l[4202] +k.opclass = l[4224] +k.operands = l[4225] +k.name = "RCR_M16_CL" +k.sub = 3 +end +do local k = l[4255] +k.orgnames = l[4202] +k.opclass = l[4229] +k.operands = l[3611] +k.name = "RCR_M32I" +k.sub = 3 +end +do local k = l[4256] +k.orgnames = l[4202] +k.opclass = l[4231] +k.operands = l[4232] +k.name = "RCR_M32_CL" +k.sub = 3 +end +do local k = l[4257] +k.orgnames = l[4202] +k.opclass = l[4236] +k.operands = l[3488] +k.name = "RCR_M8I" +k.sub = 3 +end +do local k = l[4258] +k.orgnames = l[4202] +k.opclass = l[4238] +k.operands = l[4239] +k.name = "RCR_M8_CL" +k.sub = 3 +end +do local k = l[4259] +k.orgnames = l[4202] +k.opclass = l[4243] +k.operands = l[3620] +k.name = "RCR_WI" +k.sub = 3 +end +do local k = l[4260] +k.orgnames = l[4202] +k.opclass = l[4245] +k.operands = l[4246] +k.name = "RCR_W_CL" +k.sub = 3 +end +do local k = l[4261] +k.orgnames = l[4182] +k.opclass = l[4262] +k.operands = l[4188] +k.name = "RET" +end +do local k = l[4262] +k.isa = l[3410] +k.code = l[3698] +k.id = 769 +k.layout = l[1961] +k.impregs = l[3682] +k.flags = l[4263] +k.parm = 195 +k.sig = "{}|{}|{{rsp, use/def}}|rex|{$parm}|PARC3|{cf_ret}" +k.prefixclass = l[2535] +end +do local k = l[4263] +k[1] = "cf_ret" +k.id = 25 +k.sig = "{cf_ret}" +end +do local k = l[4264] +k.orgnames = l[4182] +k.opclass = l[4265] +k.operands = l[4188] +k.name = "RET_AMD" +end +do local k = l[4265] +k.isa = l[3410] +k.code = l[3698] +k.id = 768 +k.layout = l[1961] +k.impregs = l[3682] +k.flags = l[4263] +k.parm = 195 +k.sig = "{}|{}|{{rsp, use/def}}|f3-rex|{$parm}|PARC3|{cf_ret}" +k.prefixclass = l[4266] +end +do local k = l[4266] +k.extopcode = "" +k.rex = l[1978] +k.id = 68 +k.pref = "f3" +k.sig = "f3-rex" +end +do local k = l[4267] +k.orgnames = l[4197] +k.opclass = l[4268] +k.operands = l[4270] +k.name = "RET_I" +end +do local k = l[4268] +k.isa = l[3410] +k.code = l[4269] +k.id = 574 +k.layout = l[2603] +k.impregs = l[3682] +k.flags = l[4263] +k.parm = 194 +k.sig = "{}|{{Imm, use, p1, 0}}|{{rsp, use/def}}|rex|{$parm, !I16($p1)}|PARC2|{cf_ret}" +k.prefixclass = l[2535] +end +do local k = l[4269] +k[1] = "$parm" +k[2] = "!I16($p1)" +k.id = 49 +k.sig = "{$parm, !I16($p1)}" +end +do local k = l[4270] +k[1] = l[4271] +k[2] = l[4272] +k.id = 184 +k.sig = "{{mode = io,type = GR32,name = p2,fixed = rsp}, {mode = i,type = i16,name = p1}}" +end +do local k = l[4271] +k.mode = "io" +k.type = "GR32" +k.name = "p2" +k.fixed = "rsp" +end +do local k = l[4272] +k.mode = "i" +k.type = "i16" +k.name = "p1" +end +do local k = l[4273] +k.orgnames = l[4202] +k.opclass = l[4274] +k.operands = l[3437] +k.name = "ROL_BI" +k.sub = 0 +end +do local k = l[4274] +k.isa = l[3410] +k.code = l[4204] +k.id = 731 +k.layout = l[2858] +k.impregs = l[697] +k.flags = l[709] +k.parm = 192 +k.sig = "{}|{{RegId, use/def, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|rexB1|{$parm, !RRMR($sub,$p1), !I8_1($p2)}|PARC0|{wflags}" +k.prefixclass = l[3436] +end +do local k = l[4275] +k.orgnames = l[4202] +k.opclass = l[4276] +k.operands = l[4210] +k.name = "ROL_B_CL" +k.sub = 0 +end +do local k = l[4276] +k.isa = l[3410] +k.code = l[2016] +k.id = 751 +k.layout = l[3586] +k.impregs = l[4277] +k.flags = l[709] +k.parm = 210 +k.sig = "{}|{{RegId, use/def, p1}}|{{rcx, use}, {FLAGS, def}}|rexB1|{$parm, !RRMR($sub,$p1)}|PARD2|{wflags}" +k.prefixclass = l[3436] +end +do local k = l[4277] +k[1] = l[4278] +k[2] = l[4279] +k.id = 6 +k.sig = "{{rcx, use}, {FLAGS, def}}" +end +do local k = l[4278] +k[1] = "rcx" +k[2] = "use" +end +do local k = l[4279] +k[1] = "FLAGS" +k[2] = "def" +end +do local k = l[4280] +k.orgnames = l[4202] +k.opclass = l[4281] +k.operands = l[3600] +k.name = "ROL_HI" +k.sub = 0 +end +do local k = l[4281] +k.isa = l[3410] +k.code = l[4204] +k.id = 729 +k.layout = l[2858] +k.impregs = l[697] +k.flags = l[709] +k.parm = 193 +k.sig = "{}|{{RegId, use/def, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|66-rexB1|{$parm, !RRMR($sub,$p1), !I8_1($p2)}|PARC1|{wflags}" +k.prefixclass = l[3460] +end +do local k = l[4282] +k.orgnames = l[4202] +k.opclass = l[4283] +k.operands = l[4217] +k.name = "ROL_H_CL" +k.sub = 0 +end +do local k = l[4283] +k.isa = l[3410] +k.code = l[2016] +k.id = 750 +k.layout = l[3586] +k.impregs = l[4277] +k.flags = l[709] +k.parm = 211 +k.sig = "{}|{{RegId, use/def, p1}}|{{rcx, use}, {FLAGS, def}}|66-rexB1|{$parm, !RRMR($sub,$p1)}|PARD3|{wflags}" +k.prefixclass = l[3460] +end +do local k = l[4284] +k.orgnames = l[4202] +k.opclass = l[4285] +k.operands = l[3606] +k.name = "ROL_M16I" +k.sub = 0 +end +do local k = l[4285] +k.isa = l[3410] +k.code = l[4222] +k.id = 582 +k.layout = l[3470] +k.impregs = l[697] +k.flags = l[3536] +k.parm = 193 +k.sig = "{}|{{MemId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|66-rexM1|{$parm, !RRMM($sub,$p1), !I8_1($p2)}|PARC1|{rmem, rwmem, wflags, wmem}" +k.prefixclass = l[3474] +end +do local k = l[4286] +k.orgnames = l[4202] +k.opclass = l[4287] +k.operands = l[4225] +k.name = "ROL_M16_CL" +k.sub = 0 +end +do local k = l[4287] +k.isa = l[3410] +k.code = l[2011] +k.id = 663 +k.layout = l[2099] +k.impregs = l[4277] +k.flags = l[3536] +k.parm = 211 +k.sig = "{}|{{MemId, use, p1}}|{{rcx, use}, {FLAGS, def}}|66-rexM1|{$parm, !RRMM($sub,$p1)}|PARD3|{rmem, rwmem, wflags, wmem}" +k.prefixclass = l[3474] +end +do local k = l[4288] +k.orgnames = l[4202] +k.opclass = l[4289] +k.operands = l[3611] +k.name = "ROL_M32I" +k.sub = 0 +end +do local k = l[4289] +k.isa = l[3410] +k.code = l[4222] +k.id = 592 +k.layout = l[3470] +k.impregs = l[697] +k.flags = l[3536] +k.parm = 193 +k.sig = "{}|{{MemId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|rexM1|{$parm, !RRMM($sub,$p1), !I8_1($p2)}|PARC1|{rmem, rwmem, wflags, wmem}" +k.prefixclass = l[3481] +end +do local k = l[4290] +k.orgnames = l[4202] +k.opclass = l[4291] +k.operands = l[4232] +k.name = "ROL_M32_CL" +k.sub = 0 +end +do local k = l[4291] +k.isa = l[3410] +k.code = l[2011] +k.id = 665 +k.layout = l[2099] +k.impregs = l[4277] +k.flags = l[3536] +k.parm = 211 +k.sig = "{}|{{MemId, use, p1}}|{{rcx, use}, {FLAGS, def}}|rexM1|{$parm, !RRMM($sub,$p1)}|PARD3|{rmem, rwmem, wflags, wmem}" +k.prefixclass = l[3481] +end +do local k = l[4292] +k.orgnames = l[4202] +k.opclass = l[4293] +k.operands = l[3488] +k.name = "ROL_M8I" +k.sub = 0 +end +do local k = l[4293] +k.isa = l[3410] +k.code = l[4222] +k.id = 591 +k.layout = l[3470] +k.impregs = l[697] +k.flags = l[3536] +k.parm = 192 +k.sig = "{}|{{MemId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|rexM1|{$parm, !RRMM($sub,$p1), !I8_1($p2)}|PARC0|{rmem, rwmem, wflags, wmem}" +k.prefixclass = l[3481] +end +do local k = l[4294] +k.orgnames = l[4202] +k.opclass = l[4295] +k.operands = l[4239] +k.name = "ROL_M8_CL" +k.sub = 0 +end +do local k = l[4295] +k.isa = l[3410] +k.code = l[2011] +k.id = 664 +k.layout = l[2099] +k.impregs = l[4277] +k.flags = l[3536] +k.parm = 210 +k.sig = "{}|{{MemId, use, p1}}|{{rcx, use}, {FLAGS, def}}|rexM1|{$parm, !RRMM($sub,$p1)}|PARD2|{rmem, rwmem, wflags, wmem}" +k.prefixclass = l[3481] +end +do local k = l[4296] +k.orgnames = l[4202] +k.opclass = l[4297] +k.operands = l[3620] +k.name = "ROL_WI" +k.sub = 0 +end +do local k = l[4297] +k.isa = l[3410] +k.code = l[4204] +k.id = 674 +k.layout = l[3503] +k.impregs = l[697] +k.flags = l[709] +k.parm = 193 +k.sig = "{}|{{RegId, def, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|rexB1|{$parm, !RRMR($sub,$p1), !I8_1($p2)}|PARC1|{wflags}" +k.prefixclass = l[3436] +end +do local k = l[4298] +k.orgnames = l[4202] +k.opclass = l[4299] +k.operands = l[4246] +k.name = "ROL_W_CL" +k.sub = 0 +end +do local k = l[4299] +k.isa = l[3410] +k.code = l[2016] +k.id = 684 +k.layout = l[2569] +k.impregs = l[4277] +k.flags = l[709] +k.parm = 211 +k.sig = "{}|{{RegId, def, p1}}|{{rcx, use}, {FLAGS, def}}|rexB1|{$parm, !RRMR($sub,$p1)}|PARD3|{wflags}" +k.prefixclass = l[3436] +end +do local k = l[4300] +k.orgnames = l[4202] +k.opclass = l[4274] +k.operands = l[3437] +k.name = "ROR_BI" +k.sub = 1 +end +do local k = l[4301] +k.orgnames = l[4202] +k.opclass = l[4276] +k.operands = l[4210] +k.name = "ROR_B_CL" +k.sub = 1 +end +do local k = l[4302] +k.orgnames = l[4202] +k.opclass = l[4281] +k.operands = l[3600] +k.name = "ROR_HI" +k.sub = 1 +end +do local k = l[4303] +k.orgnames = l[4202] +k.opclass = l[4283] +k.operands = l[4217] +k.name = "ROR_H_CL" +k.sub = 1 +end +do local k = l[4304] +k.orgnames = l[4202] +k.opclass = l[4285] +k.operands = l[3606] +k.name = "ROR_M16I" +k.sub = 1 +end +do local k = l[4305] +k.orgnames = l[4202] +k.opclass = l[4287] +k.operands = l[4225] +k.name = "ROR_M16_CL" +k.sub = 1 +end +do local k = l[4306] +k.orgnames = l[4202] +k.opclass = l[4289] +k.operands = l[3611] +k.name = "ROR_M32I" +k.sub = 1 +end +do local k = l[4307] +k.orgnames = l[4202] +k.opclass = l[4291] +k.operands = l[4232] +k.name = "ROR_M32_CL" +k.sub = 1 +end +do local k = l[4308] +k.orgnames = l[4202] +k.opclass = l[4293] +k.operands = l[3488] +k.name = "ROR_M8I" +k.sub = 1 +end +do local k = l[4309] +k.orgnames = l[4202] +k.opclass = l[4295] +k.operands = l[4239] +k.name = "ROR_M8_CL" +k.sub = 1 +end +do local k = l[4310] +k.orgnames = l[4202] +k.opclass = l[4297] +k.operands = l[3620] +k.name = "ROR_WI" +k.sub = 1 +end +do local k = l[4311] +k.orgnames = l[4202] +k.opclass = l[4299] +k.operands = l[4246] +k.name = "ROR_W_CL" +k.sub = 1 +end +do local k = l[4312] +k.sub = 30 +k.orgnames = l[2566] +k.opclass = l[4313] +k.operands = l[4314] +k.name = "SAHF" +end +do local k = l[4313] +k.isa = l[3410] +k.code = l[1960] +k.id = 763 +k.layout = l[1961] +k.impregs = l[3739] +k.flags = l[709] +k.parm = 128 +k.sig = "{}|{}|{{rax, use}, {FLAGS, def}}|rex|{$parm+$sub}|PAR80|{wflags}" +k.prefixclass = l[2535] +end +do local k = l[4314] +k[1] = l[4315] +k.id = 175 +k.sig = "{{mode = i,type = GR8,name = p1,fixed = rax}}" +end +do local k = l[4315] +k.mode = "i" +k.type = "GR8" +k.name = "p1" +k.fixed = "rax" +end +do local k = l[4316] +k.orgnames = l[4202] +k.opclass = l[4274] +k.operands = l[3437] +k.name = "SAR_BI" +k.sub = 7 +end +do local k = l[4317] +k.orgnames = l[4202] +k.opclass = l[4276] +k.operands = l[4210] +k.name = "SAR_B_CL" +k.sub = 7 +end +do local k = l[4318] +k.orgnames = l[4202] +k.opclass = l[4281] +k.operands = l[3600] +k.name = "SAR_HI" +k.sub = 7 +end +do local k = l[4319] +k.orgnames = l[4202] +k.opclass = l[4283] +k.operands = l[4217] +k.name = "SAR_H_CL" +k.sub = 7 +end +do local k = l[4320] +k.orgnames = l[4202] +k.opclass = l[4285] +k.operands = l[3606] +k.name = "SAR_M16I" +k.sub = 7 +end +do local k = l[4321] +k.orgnames = l[4202] +k.opclass = l[4287] +k.operands = l[4225] +k.name = "SAR_M16_CL" +k.sub = 7 +end +do local k = l[4322] +k.orgnames = l[4202] +k.opclass = l[4289] +k.operands = l[3611] +k.name = "SAR_M32I" +k.sub = 7 +end +do local k = l[4323] +k.orgnames = l[4202] +k.opclass = l[4291] +k.operands = l[4232] +k.name = "SAR_M32_CL" +k.sub = 7 +end +do local k = l[4324] +k.orgnames = l[4202] +k.opclass = l[4293] +k.operands = l[3488] +k.name = "SAR_M8I" +k.sub = 7 +end +do local k = l[4325] +k.orgnames = l[4202] +k.opclass = l[4295] +k.operands = l[4239] +k.name = "SAR_M8_CL" +k.sub = 7 +end +do local k = l[4326] +k.orgnames = l[4202] +k.opclass = l[4297] +k.operands = l[3620] +k.name = "SAR_WI" +k.sub = 7 +end +do local k = l[4327] +k.orgnames = l[4202] +k.opclass = l[4299] +k.operands = l[4246] +k.name = "SAR_W_CL" +k.sub = 7 +end +do local k = l[4328] +k.orgnames = l[2855] +k.opclass = l[3409] +k.operands = l[3416] +k.name = "SBB_AL_I" +k.sub = 3 +end +do local k = l[4329] +k.orgnames = l[2855] +k.opclass = l[3420] +k.operands = l[3422] +k.name = "SBB_AX_I" +k.sub = 3 +end +do local k = l[4330] +k.orgnames = l[41] +k.opclass = l[3426] +k.operands = l[3431] +k.name = "SBB_BB" +k.sub = 3 +end +do local k = l[4331] +k.orgnames = l[2855] +k.opclass = l[3435] +k.operands = l[3437] +k.name = "SBB_BI" +k.sub = 3 +end +do local k = l[4332] +k.orgnames = l[41] +k.opclass = l[3441] +k.operands = l[3445] +k.name = "SBB_BM" +k.sub = 3 +end +do local k = l[4333] +k.orgnames = l[2855] +k.opclass = l[3449] +k.operands = l[3451] +k.name = "SBB_EAX_I" +k.sub = 3 +end +do local k = l[4334] +k.orgnames = l[41] +k.opclass = l[3455] +k.operands = l[2134] +k.name = "SBB_HH" +k.sub = 3 +end +do local k = l[4335] +k.orgnames = l[2855] +k.opclass = l[3458] +k.operands = l[3461] +k.name = "SBB_HI" +k.sub = 3 +end +do local k = l[4336] +k.orgnames = l[41] +k.opclass = l[3465] +k.operands = l[2141] +k.name = "SBB_HM" +k.sub = 3 +end +do local k = l[4337] +k.orgnames = l[2855] +k.opclass = l[3468] +k.operands = l[3475] +k.name = "SBB_M16I" +k.sub = 3 +end +do local k = l[4338] +k.orgnames = l[2855] +k.opclass = l[3479] +k.operands = l[3482] +k.name = "SBB_M32I" +k.sub = 3 +end +do local k = l[4339] +k.orgnames = l[2855] +k.opclass = l[3486] +k.operands = l[3488] +k.name = "SBB_M8I" +k.sub = 3 +end +do local k = l[4340] +k.orgnames = l[41] +k.opclass = l[3492] +k.operands = l[3493] +k.name = "SBB_MB" +k.sub = 3 +end +do local k = l[4341] +k.orgnames = l[41] +k.opclass = l[3497] +k.operands = l[2549] +k.name = "SBB_MH" +k.sub = 3 +end +do local k = l[4342] +k.orgnames = l[41] +k.opclass = l[3499] +k.operands = l[2555] +k.name = "SBB_MW" +k.sub = 3 +end +do local k = l[4343] +k.orgnames = l[2855] +k.opclass = l[3501] +k.operands = l[3506] +k.name = "SBB_WI" +k.sub = 3 +end +do local k = l[4344] +k.orgnames = l[41] +k.opclass = l[3510] +k.operands = l[2146] +k.name = "SBB_WM" +k.sub = 3 +end +do local k = l[4345] +k.orgnames = l[41] +k.opclass = l[3512] +k.operands = l[2151] +k.name = "SBB_WW" +k.sub = 3 +end +do local k = l[4346] +k.orgnames = l[2566] +k.opclass = l[4347] +k.operands = l[3873] +k.sub = 19 +k.name = "SETAE_B" +end +do local k = l[4347] +k.isa = l[3410] +k.code = l[4348] +k.id = 747 +k.layout = l[3586] +k.impregs = l[2130] +k.flags = l[2132] +k.parm = 128 +k.sig = "{}|{{RegId, use/def, p1}}|{{FLAGS, use}}|rexB1-0f|{$parm+$sub, !RRMR(0,$p1)}|PAR80|{subflags}" +k.prefixclass = l[2571] +end +do local k = l[4348] +k[1] = "$parm+$sub" +k[2] = "!RRMR(0,$p1)" +k.id = 24 +k.sig = "{$parm+$sub, !RRMR(0,$p1)}" +end +do local k = l[4349] +k.orgnames = l[2566] +k.opclass = l[4350] +k.operands = l[2104] +k.sub = 19 +k.name = "SETAE_M8" +end +do local k = l[4350] +k.isa = l[3410] +k.code = l[4351] +k.id = 657 +k.layout = l[2099] +k.impregs = l[2130] +k.flags = l[4352] +k.parm = 128 +k.sig = "{}|{{MemId, use, p1}}|{{FLAGS, use}}|rexM1-0f|{$parm+$sub, !RRMM(0,$p1)}|PAR80|{subflags, wmem}" +k.prefixclass = l[2102] +end +do local k = l[4351] +k[1] = "$parm+$sub" +k[2] = "!RRMM(0,$p1)" +k.id = 38 +k.sig = "{$parm+$sub, !RRMM(0,$p1)}" +end +do local k = l[4352] +k[1] = "subflags" +k[2] = "wmem" +k.id = 17 +k.sig = "{subflags, wmem}" +end +do local k = l[4353] +k.orgnames = l[2566] +k.opclass = l[4347] +k.operands = l[3873] +k.sub = 23 +k.name = "SETA_B" +end +do local k = l[4354] +k.orgnames = l[2566] +k.opclass = l[4350] +k.operands = l[2104] +k.sub = 23 +k.name = "SETA_M8" +end +do local k = l[4355] +k.orgnames = l[2566] +k.opclass = l[4347] +k.operands = l[3873] +k.sub = 22 +k.name = "SETBE_B" +end +do local k = l[4356] +k.orgnames = l[2566] +k.opclass = l[4350] +k.operands = l[2104] +k.sub = 22 +k.name = "SETBE_M8" +end +do local k = l[4357] +k.orgnames = l[2566] +k.opclass = l[4347] +k.operands = l[3873] +k.sub = 18 +k.name = "SETB_B" +end +do local k = l[4358] +k.orgnames = l[2566] +k.opclass = l[4350] +k.operands = l[2104] +k.sub = 18 +k.name = "SETB_M8" +end +do local k = l[4359] +k.orgnames = l[2566] +k.opclass = l[4347] +k.operands = l[3873] +k.sub = 20 +k.name = "SETE_B" +end +do local k = l[4360] +k.orgnames = l[2566] +k.opclass = l[4350] +k.operands = l[2104] +k.sub = 20 +k.name = "SETE_M8" +end +do local k = l[4361] +k.orgnames = l[2566] +k.opclass = l[4347] +k.operands = l[3873] +k.sub = 29 +k.name = "SETGE_B" +end +do local k = l[4362] +k.orgnames = l[2566] +k.opclass = l[4350] +k.operands = l[2104] +k.sub = 29 +k.name = "SETGE_M8" +end +do local k = l[4363] +k.orgnames = l[2566] +k.opclass = l[4347] +k.operands = l[3873] +k.sub = 31 +k.name = "SETG_B" +end +do local k = l[4364] +k.orgnames = l[2566] +k.opclass = l[4350] +k.operands = l[2104] +k.sub = 31 +k.name = "SETG_M8" +end +do local k = l[4365] +k.orgnames = l[2566] +k.opclass = l[4347] +k.operands = l[3873] +k.sub = 30 +k.name = "SETLE_B" +end +do local k = l[4366] +k.orgnames = l[2566] +k.opclass = l[4350] +k.operands = l[2104] +k.sub = 30 +k.name = "SETLE_M8" +end +do local k = l[4367] +k.orgnames = l[2566] +k.opclass = l[4347] +k.operands = l[3873] +k.sub = 28 +k.name = "SETL_B" +end +do local k = l[4368] +k.orgnames = l[2566] +k.opclass = l[4350] +k.operands = l[2104] +k.sub = 28 +k.name = "SETL_M8" +end +do local k = l[4369] +k.orgnames = l[2566] +k.opclass = l[4347] +k.operands = l[3873] +k.sub = 21 +k.name = "SETNE_B" +end +do local k = l[4370] +k.orgnames = l[2566] +k.opclass = l[4350] +k.operands = l[2104] +k.sub = 21 +k.name = "SETNE_M8" +end +do local k = l[4371] +k.orgnames = l[2566] +k.opclass = l[4347] +k.operands = l[3873] +k.sub = 17 +k.name = "SETNO_B" +end +do local k = l[4372] +k.orgnames = l[2566] +k.opclass = l[4350] +k.operands = l[2104] +k.sub = 17 +k.name = "SETNO_M8" +end +do local k = l[4373] +k.orgnames = l[2566] +k.opclass = l[4347] +k.operands = l[3873] +k.sub = 25 +k.name = "SETNS_B" +end +do local k = l[4374] +k.orgnames = l[2566] +k.opclass = l[4350] +k.operands = l[2104] +k.sub = 25 +k.name = "SETNS_M8" +end +do local k = l[4375] +k.orgnames = l[2566] +k.opclass = l[4347] +k.operands = l[3873] +k.sub = 16 +k.name = "SETO_B" +end +do local k = l[4376] +k.orgnames = l[2566] +k.opclass = l[4350] +k.operands = l[2104] +k.sub = 16 +k.name = "SETO_M8" +end +do local k = l[4377] +k.orgnames = l[2566] +k.opclass = l[4347] +k.operands = l[3873] +k.sub = 26 +k.name = "SETPE_B" +end +do local k = l[4378] +k.orgnames = l[2566] +k.opclass = l[4350] +k.operands = l[2104] +k.sub = 26 +k.name = "SETPE_M8" +end +do local k = l[4379] +k.orgnames = l[2566] +k.opclass = l[4347] +k.operands = l[3873] +k.sub = 27 +k.name = "SETPO_B" +end +do local k = l[4380] +k.orgnames = l[2566] +k.opclass = l[4350] +k.operands = l[2104] +k.sub = 27 +k.name = "SETPO_M8" +end +do local k = l[4381] +k.orgnames = l[2566] +k.opclass = l[4347] +k.operands = l[3873] +k.sub = 24 +k.name = "SETS_B" +end +do local k = l[4382] +k.orgnames = l[2566] +k.opclass = l[4350] +k.operands = l[2104] +k.sub = 24 +k.name = "SETS_M8" +end +do local k = l[4383] +k.orgnames = l[4384] +k.opclass = l[4385] +k.operands = l[4390] +k.sub = 4 +k.name = "SHLD_HHI" +end +do local k = l[4384] +k[1] = "dst" +k[2] = "src" +k[3] = "sa" +k.id = 7 +k.sig = "{dst, src, sa}" +end +do local k = l[4385] +k.isa = l[3410] +k.code = l[76] +k.id = 738 +k.layout = l[4386] +k.impregs = l[697] +k.flags = l[709] +k.parm = 160 +k.sig = "{}|{{RegId, use/def, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{{FLAGS, def}}|66-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PARA0|{wflags}" +k.prefixclass = l[2133] +end +do local k = l[4386] +k[1] = l[4387] +k[2] = l[4388] +k[3] = l[4389] +k.id = 8 +k.sig = "{{RegId, use/def, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}" +end +do local k = l[4387] +k[1] = "RegId" +k[2] = "use/def" +k[3] = "p1" +end +do local k = l[4388] +k[1] = "RegId" +k[2] = "use" +k[3] = "p2" +end +do local k = l[4389] +k[1] = "Imm" +k[2] = "use" +k[3] = "p3" +k[4] = 0 +end +do local k = l[4390] +k[1] = l[4391] +k[2] = l[4392] +k[3] = l[4393] +k.id = 26 +k.sig = "{{mode = io,type = GR16,name = p1}, {mode = i,type = GR16,name = p2}, {mode = i,type = i8,name = p3}}" +end +do local k = l[4391] +k.mode = "io" +k.type = "GR16" +k.name = "p1" +end +do local k = l[4392] +k.mode = "i" +k.type = "GR16" +k.name = "p2" +end +do local k = l[4393] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[4394] +k.orgnames = l[4384] +k.opclass = l[4395] +k.operands = l[4396] +k.sub = 5 +k.name = "SHLD_HH_CL" +end +do local k = l[4395] +k.isa = l[3410] +k.code = l[22] +k.id = 740 +k.layout = l[3592] +k.impregs = l[4277] +k.flags = l[709] +k.parm = 160 +k.sig = "{}|{{RegId, use/def, p1}, {RegId, use, p2}}|{{rcx, use}, {FLAGS, def}}|66-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PARA0|{wflags}" +k.prefixclass = l[2133] +end +do local k = l[4396] +k[1] = l[4397] +k[2] = l[4398] +k[3] = l[4399] +k.id = 27 +k.sig = "{{mode = io,type = GR16,name = p1}, {mode = i,type = GR16,name = p2}, {mode = i,type = GR8,name = p3,fixed = rcx}}" +end +do local k = l[4397] +k.mode = "io" +k.type = "GR16" +k.name = "p1" +end +do local k = l[4398] +k.mode = "i" +k.type = "GR16" +k.name = "p2" +end +do local k = l[4399] +k.mode = "i" +k.type = "GR8" +k.name = "p3" +k.fixed = "rcx" +end +do local k = l[4400] +k.orgnames = l[4384] +k.opclass = l[4401] +k.operands = l[4402] +k.sub = 4 +k.name = "SHLD_MHI" +end +do local k = l[4401] +k.isa = l[3410] +k.code = l[64] +k.id = 607 +k.layout = l[175] +k.impregs = l[697] +k.flags = l[3536] +k.parm = 160 +k.sig = "{}|{{MemId, use, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{{FLAGS, def}}|66-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PARA0|{rmem, rwmem, wflags, wmem}" +k.prefixclass = l[2140] +end +do local k = l[4402] +k[1] = l[4403] +k[2] = l[4404] +k[3] = l[4405] +k.id = 117 +k.sig = "{{mode = i,type = i16*,name = p1}, {mode = i,type = GR16,name = p2}, {mode = i,type = i8,name = p3}}" +end +do local k = l[4403] +k.mode = "i" +k.type = "i16*" +k.name = "p1" +end +do local k = l[4404] +k.mode = "i" +k.type = "GR16" +k.name = "p2" +end +do local k = l[4405] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[4406] +k.orgnames = l[4384] +k.opclass = l[4407] +k.operands = l[4408] +k.sub = 5 +k.name = "SHLD_MH_CL" +end +do local k = l[4407] +k.isa = l[3410] +k.code = l[7] +k.id = 628 +k.layout = l[694] +k.impregs = l[4277] +k.flags = l[3536] +k.parm = 160 +k.sig = "{}|{{MemId, use, p1}, {RegId, use, p2}}|{{rcx, use}, {FLAGS, def}}|66-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARA0|{rmem, rwmem, wflags, wmem}" +k.prefixclass = l[2140] +end +do local k = l[4408] +k[1] = l[4409] +k[2] = l[4410] +k[3] = l[4411] +k.id = 118 +k.sig = "{{mode = i,type = i16*,name = p1}, {mode = i,type = GR16,name = p2}, {mode = i,type = GR8,name = p3,fixed = rcx}}" +end +do local k = l[4409] +k.mode = "i" +k.type = "i16*" +k.name = "p1" +end +do local k = l[4410] +k.mode = "i" +k.type = "GR16" +k.name = "p2" +end +do local k = l[4411] +k.mode = "i" +k.type = "GR8" +k.name = "p3" +k.fixed = "rcx" +end +do local k = l[4412] +k.orgnames = l[4384] +k.opclass = l[4413] +k.operands = l[4414] +k.sub = 4 +k.name = "SHLD_MWI" +end +do local k = l[4413] +k.isa = l[3410] +k.code = l[64] +k.id = 608 +k.layout = l[175] +k.impregs = l[697] +k.flags = l[3536] +k.parm = 160 +k.sig = "{}|{{MemId, use, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{{FLAGS, def}}|rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PARA0|{rmem, rwmem, wflags, wmem}" +k.prefixclass = l[2027] +end +do local k = l[4414] +k[1] = l[4415] +k[2] = l[4416] +k[3] = l[4417] +k.id = 131 +k.sig = "{{mode = i,type = i32*,name = p1}, {mode = i,type = GR32,name = p2}, {mode = i,type = i8,name = p3}}" +end +do local k = l[4415] +k.mode = "i" +k.type = "i32*" +k.name = "p1" +end +do local k = l[4416] +k.mode = "i" +k.type = "GR32" +k.name = "p2" +end +do local k = l[4417] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[4418] +k.orgnames = l[4384] +k.opclass = l[4419] +k.operands = l[4420] +k.sub = 5 +k.name = "SHLD_MW_CL" +end +do local k = l[4419] +k.isa = l[3410] +k.code = l[7] +k.id = 629 +k.layout = l[694] +k.impregs = l[4277] +k.flags = l[3536] +k.parm = 160 +k.sig = "{}|{{MemId, use, p1}, {RegId, use, p2}}|{{rcx, use}, {FLAGS, def}}|rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARA0|{rmem, rwmem, wflags, wmem}" +k.prefixclass = l[2027] +end +do local k = l[4420] +k[1] = l[4421] +k[2] = l[4422] +k[3] = l[4423] +k.id = 132 +k.sig = "{{mode = i,type = i32*,name = p1}, {mode = i,type = GR32,name = p2}, {mode = i,type = GR8,name = p3,fixed = rcx}}" +end +do local k = l[4421] +k.mode = "i" +k.type = "i32*" +k.name = "p1" +end +do local k = l[4422] +k.mode = "i" +k.type = "GR32" +k.name = "p2" +end +do local k = l[4423] +k.mode = "i" +k.type = "GR8" +k.name = "p3" +k.fixed = "rcx" +end +do local k = l[4424] +k.orgnames = l[4384] +k.opclass = l[4425] +k.operands = l[4426] +k.sub = 4 +k.name = "SHLD_WWI" +end +do local k = l[4425] +k.isa = l[3410] +k.code = l[76] +k.id = 678 +k.layout = l[187] +k.impregs = l[697] +k.flags = l[709] +k.parm = 160 +k.sig = "{}|{{RegId, def, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{{FLAGS, def}}|rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PARA0|{wflags}" +k.prefixclass = l[2030] +end +do local k = l[4426] +k[1] = l[4427] +k[2] = l[4428] +k[3] = l[4429] +k.id = 46 +k.sig = "{{mode = o,type = GR32,name = p1}, {mode = i,type = GR32,name = p2}, {mode = i,type = i8,name = p3}}" +end +do local k = l[4427] +k.mode = "o" +k.type = "GR32" +k.name = "p1" +end +do local k = l[4428] +k.mode = "i" +k.type = "GR32" +k.name = "p2" +end +do local k = l[4429] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[4430] +k.orgnames = l[4384] +k.opclass = l[4431] +k.operands = l[4432] +k.sub = 5 +k.name = "SHLD_WW_CL" +end +do local k = l[4431] +k.isa = l[3410] +k.code = l[22] +k.id = 681 +k.layout = l[3625] +k.impregs = l[4277] +k.flags = l[709] +k.parm = 160 +k.sig = "{}|{{RegId, def, p1}, {RegId, use, p2}}|{{rcx, use}, {FLAGS, def}}|rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PARA0|{wflags}" +k.prefixclass = l[2030] +end +do local k = l[4432] +k[1] = l[4433] +k[2] = l[4434] +k[3] = l[4435] +k.id = 47 +k.sig = "{{mode = o,type = GR32,name = p1}, {mode = i,type = GR32,name = p2}, {mode = i,type = GR8,name = p3,fixed = rcx}}" +end +do local k = l[4433] +k.mode = "o" +k.type = "GR32" +k.name = "p1" +end +do local k = l[4434] +k.mode = "i" +k.type = "GR32" +k.name = "p2" +end +do local k = l[4435] +k.mode = "i" +k.type = "GR8" +k.name = "p3" +k.fixed = "rcx" +end +do local k = l[4436] +k.orgnames = l[4202] +k.opclass = l[4274] +k.operands = l[3437] +k.name = "SHL_BI" +k.sub = 4 +end +do local k = l[4437] +k.orgnames = l[4202] +k.opclass = l[4276] +k.operands = l[4210] +k.name = "SHL_B_CL" +k.sub = 4 +end +do local k = l[4438] +k.orgnames = l[4202] +k.opclass = l[4281] +k.operands = l[3600] +k.name = "SHL_HI" +k.sub = 4 +end +do local k = l[4439] +k.orgnames = l[4202] +k.opclass = l[4283] +k.operands = l[4217] +k.name = "SHL_H_CL" +k.sub = 4 +end +do local k = l[4440] +k.orgnames = l[4202] +k.opclass = l[4285] +k.operands = l[3606] +k.name = "SHL_M16I" +k.sub = 4 +end +do local k = l[4441] +k.orgnames = l[4202] +k.opclass = l[4287] +k.operands = l[4225] +k.name = "SHL_M16_CL" +k.sub = 4 +end +do local k = l[4442] +k.orgnames = l[4202] +k.opclass = l[4289] +k.operands = l[3611] +k.name = "SHL_M32I" +k.sub = 4 +end +do local k = l[4443] +k.orgnames = l[4202] +k.opclass = l[4291] +k.operands = l[4232] +k.name = "SHL_M32_CL" +k.sub = 4 +end +do local k = l[4444] +k.orgnames = l[4202] +k.opclass = l[4293] +k.operands = l[3488] +k.name = "SHL_M8I" +k.sub = 4 +end +do local k = l[4445] +k.orgnames = l[4202] +k.opclass = l[4295] +k.operands = l[4239] +k.name = "SHL_M8_CL" +k.sub = 4 +end +do local k = l[4446] +k.orgnames = l[4202] +k.opclass = l[4297] +k.operands = l[3620] +k.name = "SHL_WI" +k.sub = 4 +end +do local k = l[4447] +k.orgnames = l[4202] +k.opclass = l[4299] +k.operands = l[4246] +k.name = "SHL_W_CL" +k.sub = 4 +end +do local k = l[4448] +k.orgnames = l[4384] +k.opclass = l[4385] +k.operands = l[4390] +k.sub = 12 +k.name = "SHRD_HHI" +end +do local k = l[4449] +k.orgnames = l[4384] +k.opclass = l[4395] +k.operands = l[4396] +k.sub = 13 +k.name = "SHRD_HH_CL" +end +do local k = l[4450] +k.orgnames = l[4384] +k.opclass = l[4401] +k.operands = l[4402] +k.sub = 12 +k.name = "SHRD_MHI" +end +do local k = l[4451] +k.orgnames = l[4384] +k.opclass = l[4407] +k.operands = l[4408] +k.sub = 13 +k.name = "SHRD_MH_CL" +end +do local k = l[4452] +k.orgnames = l[4384] +k.opclass = l[4413] +k.operands = l[4414] +k.sub = 12 +k.name = "SHRD_MWI" +end +do local k = l[4453] +k.orgnames = l[4384] +k.opclass = l[4419] +k.operands = l[4420] +k.sub = 13 +k.name = "SHRD_MW_CL" +end +do local k = l[4454] +k.orgnames = l[4384] +k.opclass = l[4425] +k.operands = l[4426] +k.sub = 12 +k.name = "SHRD_WWI" +end +do local k = l[4455] +k.orgnames = l[4384] +k.opclass = l[4431] +k.operands = l[4432] +k.sub = 13 +k.name = "SHRD_WW_CL" +end +do local k = l[4456] +k.orgnames = l[4202] +k.opclass = l[4274] +k.operands = l[3437] +k.name = "SHR_BI" +k.sub = 5 +end +do local k = l[4457] +k.orgnames = l[4202] +k.opclass = l[4276] +k.operands = l[4210] +k.name = "SHR_B_CL" +k.sub = 5 +end +do local k = l[4458] +k.orgnames = l[4202] +k.opclass = l[4281] +k.operands = l[3600] +k.name = "SHR_HI" +k.sub = 5 +end +do local k = l[4459] +k.orgnames = l[4202] +k.opclass = l[4283] +k.operands = l[4217] +k.name = "SHR_H_CL" +k.sub = 5 +end +do local k = l[4460] +k.orgnames = l[4202] +k.opclass = l[4285] +k.operands = l[3606] +k.name = "SHR_M16I" +k.sub = 5 +end +do local k = l[4461] +k.orgnames = l[4202] +k.opclass = l[4287] +k.operands = l[4225] +k.name = "SHR_M16_CL" +k.sub = 5 +end +do local k = l[4462] +k.orgnames = l[4202] +k.opclass = l[4289] +k.operands = l[3611] +k.name = "SHR_M32I" +k.sub = 5 +end +do local k = l[4463] +k.orgnames = l[4202] +k.opclass = l[4291] +k.operands = l[4232] +k.name = "SHR_M32_CL" +k.sub = 5 +end +do local k = l[4464] +k.orgnames = l[4202] +k.opclass = l[4293] +k.operands = l[3488] +k.name = "SHR_M8I" +k.sub = 5 +end +do local k = l[4465] +k.orgnames = l[4202] +k.opclass = l[4295] +k.operands = l[4239] +k.name = "SHR_M8_CL" +k.sub = 5 +end +do local k = l[4466] +k.orgnames = l[4202] +k.opclass = l[4297] +k.operands = l[3620] +k.name = "SHR_WI" +k.sub = 5 +end +do local k = l[4467] +k.orgnames = l[4202] +k.opclass = l[4299] +k.operands = l[4246] +k.name = "SHR_W_CL" +k.sub = 5 +end +do local k = l[4468] +k.orgnames = l[1958] +k.opclass = l[3712] +k.operands = l[1964] +k.name = "STC" +k.sub = 25 +end +do local k = l[4469] +k.orgnames = l[2855] +k.opclass = l[3514] +k.operands = l[3416] +k.name = "SUB_AL_I" +k.sub = 5 +end +do local k = l[4470] +k.orgnames = l[2855] +k.opclass = l[3519] +k.operands = l[3422] +k.name = "SUB_AX_I" +k.sub = 5 +end +do local k = l[4471] +k.orgnames = l[41] +k.opclass = l[3521] +k.operands = l[3431] +k.name = "SUB_BB" +k.sub = 5 +end +do local k = l[4472] +k.orgnames = l[2855] +k.opclass = l[3523] +k.operands = l[3437] +k.name = "SUB_BI" +k.sub = 5 +end +do local k = l[4473] +k.orgnames = l[41] +k.opclass = l[3525] +k.operands = l[3445] +k.name = "SUB_BM" +k.sub = 5 +end +do local k = l[4474] +k.orgnames = l[2855] +k.opclass = l[3527] +k.operands = l[3451] +k.name = "SUB_EAX_I" +k.sub = 5 +end +do local k = l[4475] +k.orgnames = l[41] +k.opclass = l[3529] +k.operands = l[2134] +k.name = "SUB_HH" +k.sub = 5 +end +do local k = l[4476] +k.orgnames = l[2855] +k.opclass = l[3531] +k.operands = l[3461] +k.name = "SUB_HI" +k.sub = 5 +end +do local k = l[4477] +k.orgnames = l[41] +k.opclass = l[3533] +k.operands = l[2141] +k.name = "SUB_HM" +k.sub = 5 +end +do local k = l[4478] +k.orgnames = l[2855] +k.opclass = l[3535] +k.operands = l[3475] +k.name = "SUB_M16I" +k.sub = 5 +end +do local k = l[4479] +k.orgnames = l[2855] +k.opclass = l[3538] +k.operands = l[3482] +k.name = "SUB_M32I" +k.sub = 5 +end +do local k = l[4480] +k.orgnames = l[2855] +k.opclass = l[3540] +k.operands = l[3488] +k.name = "SUB_M8I" +k.sub = 5 +end +do local k = l[4481] +k.orgnames = l[41] +k.opclass = l[3542] +k.operands = l[3493] +k.name = "SUB_MB" +k.sub = 5 +end +do local k = l[4482] +k.orgnames = l[41] +k.opclass = l[3544] +k.operands = l[2549] +k.name = "SUB_MH" +k.sub = 5 +end +do local k = l[4483] +k.orgnames = l[41] +k.opclass = l[3546] +k.operands = l[2555] +k.name = "SUB_MW" +k.sub = 5 +end +do local k = l[4484] +k.orgnames = l[2855] +k.opclass = l[3548] +k.operands = l[3506] +k.name = "SUB_WI" +k.sub = 5 +end +do local k = l[4485] +k.orgnames = l[41] +k.opclass = l[3550] +k.operands = l[2146] +k.name = "SUB_WM" +k.sub = 5 +end +do local k = l[4486] +k.orgnames = l[41] +k.opclass = l[3552] +k.operands = l[2151] +k.name = "SUB_WW" +k.sub = 5 +end +do local k = l[4487] +k.orgnames = l[41] +k.opclass = l[4488] +k.operands = l[4489] +k.name = "TEST_BB" +end +do local k = l[4488] +k.isa = l[3410] +k.code = l[1016] +k.id = 703 +k.layout = l[706] +k.impregs = l[697] +k.flags = l[709] +k.parm = 132 +k.sig = "{}|{{RegId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|rexR2B1|{$parm, !RRMR($p2,$p1)}|PAR84|{wflags}" +k.prefixclass = l[3430] +end +do local k = l[4489] +k[1] = l[4490] +k[2] = l[4491] +k.id = 6 +k.sig = "{{mode = i,type = GR8,name = p1}, {mode = i,type = GR8,name = p2}}" +end +do local k = l[4490] +k.mode = "i" +k.type = "GR8" +k.name = "p1" +end +do local k = l[4491] +k.mode = "i" +k.type = "GR8" +k.name = "p2" +end +do local k = l[4492] +k.orgnames = l[2855] +k.opclass = l[4493] +k.operands = l[3791] +k.name = "TEST_BI" +k.sub = 0 +end +do local k = l[4493] +k.isa = l[3410] +k.code = l[2857] +k.id = 694 +k.layout = l[3654] +k.impregs = l[697] +k.flags = l[709] +k.parm = 246 +k.sig = "{}|{{RegId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|rexB1|{$parm, !RRMR($sub,$p1), !I8($p2)}|PARF6|{wflags}" +k.prefixclass = l[3436] +end +do local k = l[4494] +k.orgnames = l[41] +k.opclass = l[4495] +k.operands = l[3796] +k.name = "TEST_BM" +end +do local k = l[4495] +k.isa = l[3410] +k.code = l[1000] +k.id = 617 +k.layout = l[694] +k.impregs = l[697] +k.flags = l[699] +k.parm = 132 +k.sig = "{}|{{MemId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|rexR2M1|{$parm, !RRMM($p2,$p1)}|PAR84|{rmem, wflags}" +k.prefixclass = l[3444] +end +do local k = l[4496] +k.orgnames = l[41] +k.opclass = l[4497] +k.operands = l[3649] +k.name = "TEST_HH" +end +do local k = l[4497] +k.isa = l[3410] +k.code = l[1016] +k.id = 700 +k.layout = l[706] +k.impregs = l[697] +k.flags = l[709] +k.parm = 133 +k.sig = "{}|{{RegId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|66-rexR2B1|{$parm, !RRMR($p2,$p1)}|PAR85|{wflags}" +k.prefixclass = l[3456] +end +do local k = l[4498] +k.orgnames = l[2855] +k.opclass = l[4499] +k.operands = l[3811] +k.name = "TEST_HI" +k.sub = 0 +end +do local k = l[4499] +k.isa = l[3410] +k.code = l[4500] +k.id = 688 +k.layout = l[3654] +k.impregs = l[697] +k.flags = l[709] +k.parm = 247 +k.sig = "{}|{{RegId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|66-rexB1|{$parm, !RRMR($sub,$p1), !I16($p2)}|PARF7|{wflags}" +k.prefixclass = l[3460] +end +do local k = l[4500] +k[1] = "$parm" +k[2] = "!RRMR($sub,$p1)" +k[3] = "!I16($p2)" +k.id = 11 +k.sig = "{$parm, !RRMR($sub,$p1), !I16($p2)}" +end +do local k = l[4501] +k.orgnames = l[41] +k.opclass = l[4502] +k.operands = l[3816] +k.name = "TEST_HM" +end +do local k = l[4502] +k.isa = l[3410] +k.code = l[1000] +k.id = 611 +k.layout = l[694] +k.impregs = l[697] +k.flags = l[699] +k.parm = 133 +k.sig = "{}|{{MemId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|66-rexR2M1|{$parm, !RRMM($p2,$p1)}|PAR85|{rmem, wflags}" +k.prefixclass = l[3466] +end +do local k = l[4503] +k.orgnames = l[2855] +k.opclass = l[4504] +k.operands = l[3475] +k.name = "TEST_M16I" +k.sub = 0 +end +do local k = l[4504] +k.isa = l[3410] +k.code = l[4112] +k.id = 579 +k.layout = l[3470] +k.impregs = l[697] +k.flags = l[699] +k.parm = 247 +k.sig = "{}|{{MemId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|66-rexM1|{$parm, !RRMM($sub,$p1), !I16($p2)}|PARF7|{rmem, wflags}" +k.prefixclass = l[3474] +end +do local k = l[4505] +k.orgnames = l[2855] +k.opclass = l[4506] +k.operands = l[3482] +k.name = "TEST_M32I" +k.sub = 0 +end +do local k = l[4506] +k.isa = l[3410] +k.code = l[4115] +k.id = 585 +k.layout = l[3470] +k.impregs = l[697] +k.flags = l[699] +k.parm = 247 +k.sig = "{}|{{MemId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|rexM1|{$parm, !RRMM($sub,$p1), !I32($p2)}|PARF7|{rmem, wflags}" +k.prefixclass = l[3481] +end +do local k = l[4507] +k.orgnames = l[2855] +k.opclass = l[4508] +k.operands = l[3488] +k.name = "TEST_M8I" +k.sub = 0 +end +do local k = l[4508] +k.isa = l[3410] +k.code = l[3487] +k.id = 590 +k.layout = l[3470] +k.impregs = l[697] +k.flags = l[699] +k.parm = 246 +k.sig = "{}|{{MemId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|rexM1|{$parm, !RRMM($sub,$p1), !I8($p2)}|PARF6|{rmem, wflags}" +k.prefixclass = l[3481] +end +do local k = l[4509] +k.orgnames = l[41] +k.opclass = l[4495] +k.operands = l[3493] +k.name = "TEST_MB" +end +do local k = l[4510] +k.orgnames = l[41] +k.opclass = l[4502] +k.operands = l[2549] +k.name = "TEST_MH" +end +do local k = l[4511] +k.orgnames = l[41] +k.opclass = l[4512] +k.operands = l[2555] +k.name = "TEST_MW" +end +do local k = l[4512] +k.isa = l[3410] +k.code = l[1000] +k.id = 618 +k.layout = l[694] +k.impregs = l[697] +k.flags = l[699] +k.parm = 133 +k.sig = "{}|{{MemId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|rexR2M1|{$parm, !RRMM($p2,$p1)}|PAR85|{rmem, wflags}" +k.prefixclass = l[3444] +end +do local k = l[4513] +k.orgnames = l[2855] +k.opclass = l[4514] +k.operands = l[3833] +k.name = "TEST_WI" +k.sub = 0 +end +do local k = l[4514] +k.isa = l[3410] +k.code = l[4515] +k.id = 691 +k.layout = l[3654] +k.impregs = l[697] +k.flags = l[709] +k.parm = 247 +k.sig = "{}|{{RegId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|rexB1|{$parm, !RRMR($sub,$p1), !I32($p2)}|PARF7|{wflags}" +k.prefixclass = l[3436] +end +do local k = l[4515] +k[1] = "$parm" +k[2] = "!RRMR($sub,$p1)" +k[3] = "!I32($p2)" +k.id = 18 +k.sig = "{$parm, !RRMR($sub,$p1), !I32($p2)}" +end +do local k = l[4516] +k.orgnames = l[41] +k.opclass = l[4512] +k.operands = l[3838] +k.name = "TEST_WM" +end +do local k = l[4517] +k.orgnames = l[41] +k.opclass = l[4518] +k.operands = l[3675] +k.name = "TEST_WW" +end +do local k = l[4518] +k.isa = l[3410] +k.code = l[1016] +k.id = 704 +k.layout = l[706] +k.impregs = l[697] +k.flags = l[709] +k.parm = 133 +k.sig = "{}|{{RegId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|rexR2B1|{$parm, !RRMR($p2,$p1)}|PAR85|{wflags}" +k.prefixclass = l[3430] +end +do local k = l[4519] +k.orgnames = l[4520] +k.opclass = l[4521] +k.operands = l[4522] +k.sub = 0 +k.name = "XADD_BB" +end +do local k = l[4520] +k[1] = "src" +k[2] = "dst" +k.id = 6 +k.sig = "{src, dst}" +end +do local k = l[4521] +k.isa = l[3410] +k.code = l[22] +k.id = 720 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 192 +k.sig = "{}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PARC0|{}" +k.prefixclass = l[2030] +end +do local k = l[4522] +k[1] = l[4523] +k[2] = l[4524] +k.id = 11 +k.sig = "{{mode = i,type = GR8,name = p1}, {mode = io,type = GR8,name = p2}}" +end +do local k = l[4523] +k.mode = "i" +k.type = "GR8" +k.name = "p1" +end +do local k = l[4524] +k.mode = "io" +k.type = "GR8" +k.name = "p2" +end +do local k = l[4525] +k.orgnames = l[4520] +k.opclass = l[4526] +k.operands = l[4527] +k.sub = 1 +k.name = "XADD_HH" +end +do local k = l[4526] +k.isa = l[3410] +k.code = l[22] +k.id = 717 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 192 +k.sig = "{}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|66-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PARC0|{}" +k.prefixclass = l[2133] +end +do local k = l[4527] +k[1] = l[4528] +k[2] = l[4529] +k.id = 24 +k.sig = "{{mode = i,type = GR16,name = p1}, {mode = io,type = GR16,name = p2}}" +end +do local k = l[4528] +k.mode = "i" +k.type = "GR16" +k.name = "p1" +end +do local k = l[4529] +k.mode = "io" +k.type = "GR16" +k.name = "p2" +end +do local k = l[4530] +k.orgnames = l[4520] +k.opclass = l[4531] +k.operands = l[4532] +k.sub = 0 +k.name = "XADD_MB" +end +do local k = l[4531] +k.isa = l[3410] +k.code = l[7] +k.id = 648 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[2101] +k.parm = 192 +k.sig = "{}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARC0|{rmem, rwmem, wmem}" +k.prefixclass = l[2027] +end +do local k = l[4532] +k[1] = l[4533] +k[2] = l[4534] +k.id = 106 +k.sig = "{{mode = i,type = i8*,name = p1}, {mode = io,type = GR8,name = p2}}" +end +do local k = l[4533] +k.mode = "i" +k.type = "i8*" +k.name = "p1" +end +do local k = l[4534] +k.mode = "io" +k.type = "GR8" +k.name = "p2" +end +do local k = l[4535] +k.orgnames = l[4520] +k.opclass = l[4536] +k.operands = l[4537] +k.sub = 1 +k.name = "XADD_MH" +end +do local k = l[4536] +k.isa = l[3410] +k.code = l[7] +k.id = 645 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[2101] +k.parm = 192 +k.sig = "{}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|66-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARC0|{rmem, rwmem, wmem}" +k.prefixclass = l[2140] +end +do local k = l[4537] +k[1] = l[4538] +k[2] = l[4539] +k.id = 116 +k.sig = "{{mode = i,type = i16*,name = p1}, {mode = io,type = GR16,name = p2}}" +end +do local k = l[4538] +k.mode = "i" +k.type = "i16*" +k.name = "p1" +end +do local k = l[4539] +k.mode = "io" +k.type = "GR16" +k.name = "p2" +end +do local k = l[4540] +k.orgnames = l[4520] +k.opclass = l[4531] +k.operands = l[4541] +k.sub = 1 +k.name = "XADD_MW" +end +do local k = l[4541] +k[1] = l[4542] +k[2] = l[4543] +k.id = 130 +k.sig = "{{mode = i,type = i32*,name = p1}, {mode = io,type = GR32,name = p2}}" +end +do local k = l[4542] +k.mode = "i" +k.type = "i32*" +k.name = "p1" +end +do local k = l[4543] +k.mode = "io" +k.type = "GR32" +k.name = "p2" +end +do local k = l[4544] +k.orgnames = l[4520] +k.opclass = l[4521] +k.operands = l[4545] +k.sub = 1 +k.name = "XADD_WW" +end +do local k = l[4545] +k[1] = l[4546] +k[2] = l[4547] +k.id = 44 +k.sig = "{{mode = i,type = GR32,name = p1}, {mode = io,type = GR32,name = p2}}" +end +do local k = l[4546] +k.mode = "i" +k.type = "GR32" +k.name = "p1" +end +do local k = l[4547] +k.mode = "io" +k.type = "GR32" +k.name = "p2" +end +do local k = l[4548] +k.sub = 16 +k.orgnames = l[41] +k.opclass = l[4549] +k.operands = l[4551] +k.name = "XCHG_AX_H" +end +do local k = l[4549] +k.isa = l[3410] +k.code = l[4550] +k.id = 748 +k.layout = l[3586] +k.impregs = l[3699] +k.flags = l[27] +k.parm = 128 +k.sig = "{}|{{RegId, use/def, p1}}|{{rax, use/def}}|66-rexB1|{$parm+$sub+($p1&7)}|PAR80|{}" +k.prefixclass = l[3460] +end +do local k = l[4550] +k[1] = "$parm+$sub+($p1&7)" +k.id = 15 +k.sig = "{$parm+$sub+($p1&7)}" +end +do local k = l[4551] +k[1] = l[4552] +k[2] = l[4553] +k.id = 32 +k.sig = "{{mode = io,type = GR16,name = p1}, {mode = io,type = GR16,name = p2,fixed = rax}}" +end +do local k = l[4552] +k.mode = "io" +k.type = "GR16" +k.name = "p1" +end +do local k = l[4553] +k.mode = "io" +k.type = "GR16" +k.name = "p2" +k.fixed = "rax" +end +do local k = l[4554] +k.orgnames = l[4520] +k.opclass = l[4555] +k.operands = l[4522] +k.name = "XCHG_BB" +k.sub = 6 +end +do local k = l[4555] +k.isa = l[3410] +k.code = l[22] +k.id = 721 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 128 +k.sig = "{}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|rexR2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR80|{}" +k.prefixclass = l[3430] +end +do local k = l[4556] +k.sub = 16 +k.orgnames = l[41] +k.opclass = l[4557] +k.operands = l[4558] +k.name = "XCHG_EAX_W" +end +do local k = l[4557] +k.isa = l[3410] +k.code = l[4550] +k.id = 749 +k.layout = l[3586] +k.impregs = l[3699] +k.flags = l[27] +k.parm = 128 +k.sig = "{}|{{RegId, use/def, p1}}|{{rax, use/def}}|rexB1|{$parm+$sub+($p1&7)}|PAR80|{}" +k.prefixclass = l[3436] +end +do local k = l[4558] +k[1] = l[4559] +k[2] = l[4560] +k.id = 53 +k.sig = "{{mode = io,type = GR32,name = p1}, {mode = io,type = GR32,name = p2,fixed = rax}}" +end +do local k = l[4559] +k.mode = "io" +k.type = "GR32" +k.name = "p1" +end +do local k = l[4560] +k.mode = "io" +k.type = "GR32" +k.name = "p2" +k.fixed = "rax" +end +do local k = l[4561] +k.orgnames = l[4520] +k.opclass = l[4562] +k.operands = l[4527] +k.name = "XCHG_HH" +k.sub = 7 +end +do local k = l[4562] +k.isa = l[3410] +k.code = l[22] +k.id = 718 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 128 +k.sig = "{}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|66-rexR2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR80|{}" +k.prefixclass = l[3456] +end +do local k = l[4563] +k.orgnames = l[4520] +k.opclass = l[4564] +k.operands = l[4532] +k.name = "XCHG_MB" +k.sub = 6 +end +do local k = l[4564] +k.isa = l[3410] +k.code = l[7] +k.id = 649 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[2101] +k.parm = 128 +k.sig = "{}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|rexR2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR80|{rmem, rwmem, wmem}" +k.prefixclass = l[3444] +end +do local k = l[4565] +k.orgnames = l[4520] +k.opclass = l[4566] +k.operands = l[4537] +k.name = "XCHG_MH" +k.sub = 7 +end +do local k = l[4566] +k.isa = l[3410] +k.code = l[7] +k.id = 646 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[2101] +k.parm = 128 +k.sig = "{}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|66-rexR2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR80|{rmem, rwmem, wmem}" +k.prefixclass = l[3466] +end +do local k = l[4567] +k.orgnames = l[4520] +k.opclass = l[4564] +k.operands = l[4541] +k.name = "XCHG_MW" +k.sub = 7 +end +do local k = l[4568] +k.orgnames = l[4520] +k.opclass = l[4555] +k.operands = l[4545] +k.name = "XCHG_WW" +k.sub = 7 +end +do local k = l[4569] +k.orgnames = l[2855] +k.opclass = l[3514] +k.operands = l[3416] +k.name = "XOR_AL_I" +k.sub = 6 +end +do local k = l[4570] +k.orgnames = l[2855] +k.opclass = l[3519] +k.operands = l[3422] +k.name = "XOR_AX_I" +k.sub = 6 +end +do local k = l[4571] +k.orgnames = l[41] +k.opclass = l[3521] +k.operands = l[3431] +k.name = "XOR_BB" +k.sub = 6 +end +do local k = l[4572] +k.orgnames = l[2855] +k.opclass = l[3523] +k.operands = l[3437] +k.name = "XOR_BI" +k.sub = 6 +end +do local k = l[4573] +k.orgnames = l[41] +k.opclass = l[3525] +k.operands = l[3445] +k.name = "XOR_BM" +k.sub = 6 +end +do local k = l[4574] +k.orgnames = l[2855] +k.opclass = l[3527] +k.operands = l[3451] +k.name = "XOR_EAX_I" +k.sub = 6 +end +do local k = l[4575] +k.orgnames = l[41] +k.opclass = l[3529] +k.operands = l[2134] +k.name = "XOR_HH" +k.sub = 6 +end +do local k = l[4576] +k.orgnames = l[2855] +k.opclass = l[3531] +k.operands = l[3461] +k.name = "XOR_HI" +k.sub = 6 +end +do local k = l[4577] +k.orgnames = l[41] +k.opclass = l[3533] +k.operands = l[2141] +k.name = "XOR_HM" +k.sub = 6 +end +do local k = l[4578] +k.orgnames = l[2855] +k.opclass = l[3535] +k.operands = l[3475] +k.name = "XOR_M16I" +k.sub = 6 +end +do local k = l[4579] +k.orgnames = l[2855] +k.opclass = l[3538] +k.operands = l[3482] +k.name = "XOR_M32I" +k.sub = 6 +end +do local k = l[4580] +k.orgnames = l[2855] +k.opclass = l[3540] +k.operands = l[3488] +k.name = "XOR_M8I" +k.sub = 6 +end +do local k = l[4581] +k.orgnames = l[41] +k.opclass = l[3542] +k.operands = l[3493] +k.name = "XOR_MB" +k.sub = 6 +end +do local k = l[4582] +k.orgnames = l[41] +k.opclass = l[3544] +k.operands = l[2549] +k.name = "XOR_MH" +k.sub = 6 +end +do local k = l[4583] +k.orgnames = l[41] +k.opclass = l[3546] +k.operands = l[2555] +k.name = "XOR_MW" +k.sub = 6 +end +do local k = l[4584] +k.orgnames = l[2855] +k.opclass = l[3548] +k.operands = l[3506] +k.name = "XOR_WI" +k.sub = 6 +end +do local k = l[4585] +k.orgnames = l[41] +k.opclass = l[3550] +k.operands = l[2146] +k.name = "XOR_WM" +k.sub = 6 +end +do local k = l[4586] +k.orgnames = l[41] +k.opclass = l[3552] +k.operands = l[2151] +k.name = "XOR_WW" +k.sub = 6 +end +do local k = l[4587] +k.orgnames = l[2566] +k.opclass = l[4588] +k.operands = l[3877] +k.name = "DEC_H_x32" +k.sub = 8 +end +do local k = l[4588] +k.isa = l[4589] +k.code = l[4550] +k.id = 780 +k.layout = l[3586] +k.impregs = l[3428] +k.flags = l[3713] +k.parm = 64 +k.sig = "{x32only}|{{RegId, use/def, p1}}|{{FLAGS, use/def}}|66-rexB1|{$parm+$sub+($p1&7)}|PAR40|{wflag_c}" +k.prefixclass = l[3460] +end +do local k = l[4589] +k[1] = "x32only" +k.sig = "{x32only}" +k.id = 16 +k.x32only = true +end +do local k = l[4590] +k.orgnames = l[2566] +k.opclass = l[4591] +k.operands = l[3588] +k.name = "DEC_W_x32" +k.sub = 8 +end +do local k = l[4591] +k.isa = l[4589] +k.code = l[4550] +k.id = 781 +k.layout = l[3586] +k.impregs = l[3428] +k.flags = l[3713] +k.parm = 64 +k.sig = "{x32only}|{{RegId, use/def, p1}}|{{FLAGS, use/def}}|rexB1|{$parm+$sub+($p1&7)}|PAR40|{wflag_c}" +k.prefixclass = l[3436] +end +do local k = l[4592] +k.orgnames = l[2096] +k.opclass = l[4593] +k.operands = l[3280] +k.name = "ICALL_M32_x32" +k.sub = 2 +end +do local k = l[4593] +k.isa = l[4589] +k.code = l[2011] +k.id = 774 +k.layout = l[2099] +k.impregs = l[12] +k.flags = l[4594] +k.parm = 255 +k.sig = "{x32only}|{{MemId, use, p1}}|{}|rexM1|{$parm, !RRMM($sub,$p1)}|PARFF|{cf_call, rmem}" +k.prefixclass = l[3481] +end +do local k = l[4594] +k[1] = "cf_call" +k[2] = "rmem" +k.id = 19 +k.sig = "{cf_call, rmem}" +end +do local k = l[4595] +k.orgnames = l[2096] +k.opclass = l[4596] +k.operands = l[4597] +k.name = "ICALL_W_x32" +k.sub = 2 +end +do local k = l[4596] +k.isa = l[4589] +k.code = l[2016] +k.id = 778 +k.layout = l[3893] +k.impregs = l[12] +k.flags = l[3684] +k.parm = 255 +k.sig = "{x32only}|{{RegId, use, p1}}|{}|rexB1|{$parm, !RRMR($sub,$p1)}|PARFF|{cf_call}" +k.prefixclass = l[3436] +end +do local k = l[4597] +k[1] = l[4598] +k.id = 62 +k.sig = "{{mode = i,type = GR32,name = p1}}" +end +do local k = l[4598] +k.mode = "i" +k.type = "GR32" +k.name = "p1" +end +do local k = l[4599] +k.orgnames = l[2096] +k.opclass = l[4600] +k.operands = l[3280] +k.name = "IJMP_M32_x32" +k.sub = 4 +end +do local k = l[4600] +k.isa = l[4589] +k.code = l[2011] +k.id = 775 +k.layout = l[2099] +k.impregs = l[12] +k.flags = l[4601] +k.parm = 255 +k.sig = "{x32only}|{{MemId, use, p1}}|{}|rexM1|{$parm, !RRMM($sub,$p1)}|PARFF|{cf_jmp, rmem}" +k.prefixclass = l[3481] +end +do local k = l[4601] +k[1] = "cf_jmp" +k[2] = "rmem" +k.id = 18 +k.sig = "{cf_jmp, rmem}" +end +do local k = l[4602] +k.orgnames = l[2096] +k.opclass = l[4603] +k.operands = l[4597] +k.name = "IJMP_W_x32" +k.sub = 4 +end +do local k = l[4603] +k.isa = l[4589] +k.code = l[2016] +k.id = 779 +k.layout = l[3893] +k.impregs = l[12] +k.flags = l[4031] +k.parm = 255 +k.sig = "{x32only}|{{RegId, use, p1}}|{}|rexB1|{$parm, !RRMR($sub,$p1)}|PARFF|{cf_jmp}" +k.prefixclass = l[3436] +end +do local k = l[4604] +k.orgnames = l[2566] +k.opclass = l[4588] +k.operands = l[3877] +k.name = "INC_H_x32" +k.sub = 0 +end +do local k = l[4605] +k.orgnames = l[2566] +k.opclass = l[4591] +k.operands = l[3588] +k.name = "INC_W_x32" +k.sub = 0 +end +do local k = l[4606] +k.orgnames = l[4607] +k.opclass = l[4608] +k.operands = l[4610] +k.name = "POP_M32_x32" +k.sub = 0 +end +do local k = l[4607] +k[1] = "sp" +k[2] = "dst" +k.id = 31 +k.sig = "{sp, dst}" +end +do local k = l[4608] +k.isa = l[4589] +k.code = l[2011] +k.id = 772 +k.layout = l[2099] +k.impregs = l[3682] +k.flags = l[4609] +k.parm = 143 +k.sig = "{x32only}|{{MemId, use, p1}}|{{rsp, use/def}}|rexM1|{$parm, !RRMM($sub,$p1)}|PAR8F|{usemem, wmem}" +k.prefixclass = l[3481] +end +do local k = l[4609] +k[1] = "usemem" +k[2] = "wmem" +k.id = 28 +k.sig = "{usemem, wmem}" +end +do local k = l[4610] +k[1] = l[4611] +k[2] = l[4612] +k.id = 189 +k.sig = "{{mode = io,type = GR32,name = p2,fixed = rsp}, {mode = i,type = i32*,name = p1}}" +end +do local k = l[4611] +k.mode = "io" +k.type = "GR32" +k.name = "p2" +k.fixed = "rsp" +end +do local k = l[4612] +k.mode = "i" +k.type = "i32*" +k.name = "p1" +end +do local k = l[4613] +k.orgnames = l[4607] +k.opclass = l[4614] +k.operands = l[4615] +k.name = "POP_W_x32" +end +do local k = l[4614] +k.isa = l[4589] +k.code = l[3585] +k.id = 776 +k.layout = l[2569] +k.impregs = l[3682] +k.flags = l[4200] +k.parm = 88 +k.sig = "{x32only}|{{RegId, def, p1}}|{{rsp, use/def}}|rexB1|{$parm+($p1&7)}|PAR58|{usemem}" +k.prefixclass = l[3436] +end +do local k = l[4615] +k[1] = l[4616] +k[2] = l[4617] +k.id = 188 +k.sig = "{{mode = io,type = GR32,name = p2,fixed = rsp}, {mode = o,type = GR32,name = p1}}" +end +do local k = l[4616] +k.mode = "io" +k.type = "GR32" +k.name = "p2" +k.fixed = "rsp" +end +do local k = l[4617] +k.mode = "o" +k.type = "GR32" +k.name = "p1" +end +do local k = l[4618] +k.orgnames = l[4607] +k.opclass = l[4619] +k.operands = l[4610] +k.name = "PUSH_M32_x32" +k.sub = 6 +end +do local k = l[4619] +k.isa = l[4589] +k.code = l[2011] +k.id = 773 +k.layout = l[2099] +k.impregs = l[3682] +k.flags = l[4620] +k.parm = 255 +k.sig = "{x32only}|{{MemId, use, p1}}|{{rsp, use/def}}|rexM1|{$parm, !RRMM($sub,$p1)}|PARFF|{rmem, usemem}" +k.prefixclass = l[3481] +end +do local k = l[4620] +k[1] = "rmem" +k[2] = "usemem" +k.id = 27 +k.sig = "{rmem, usemem}" +end +do local k = l[4621] +k.orgnames = l[4607] +k.opclass = l[4622] +k.operands = l[4623] +k.name = "PUSH_W_x32" +end +do local k = l[4622] +k.isa = l[4589] +k.code = l[3585] +k.id = 777 +k.layout = l[3893] +k.impregs = l[3682] +k.flags = l[4200] +k.parm = 80 +k.sig = "{x32only}|{{RegId, use, p1}}|{{rsp, use/def}}|rexB1|{$parm+($p1&7)}|PAR50|{usemem}" +k.prefixclass = l[3436] +end +do local k = l[4623] +k[1] = l[4624] +k[2] = l[4625] +k.id = 187 +k.sig = "{{mode = io,type = GR32,name = p2,fixed = rsp}, {mode = i,type = GR32,name = p1}}" +end +do local k = l[4624] +k.mode = "io" +k.type = "GR32" +k.name = "p2" +k.fixed = "rsp" +end +do local k = l[4625] +k.mode = "i" +k.type = "GR32" +k.name = "p1" +end +do local k = l[4626] +k.orgnames = l[41] +k.opclass = l[4627] +k.operands = l[1146] +k.sub = 30 +k.name = "VMOVD_M32_X" +end +do local k = l[4627] +k.isa = l[4628] +k.code = l[7] +k.id = 784 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 96 +k.sig = "{avx, x64}|{{MemId, use, p1}, {RegId, use, p2}}|{}|vex-66-0f-R2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR60|{wmem}" +k.prefixclass = l[700] +end +do local k = l[4628] +k[1] = "avx" +k[2] = "x64" +k.sig = "{avx, x64}" +k.id = 36 +k.x64 = true +end +do local k = l[4629] +k.orgnames = l[41] +k.opclass = l[4630] +k.operands = l[4631] +k.sub = 30 +k.name = "VMOVD_W_X" +end +do local k = l[4630] +k.isa = l[4628] +k.code = l[22] +k.id = 786 +k.layout = l[3625] +k.impregs = l[12] +k.flags = l[27] +k.parm = 96 +k.sig = "{avx, x64}|{{RegId, def, p1}, {RegId, use, p2}}|{}|vex-66-0f-R2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR60|{}" +k.prefixclass = l[710] +end +do local k = l[4631] +k[1] = l[4632] +k[2] = l[4633] +k.id = 277 +k.sig = "{{mode = o,type = GR32,name = p1}, {mode = i,type = VR128,name = p2}}" +end +do local k = l[4632] +k.mode = "o" +k.type = "GR32" +k.name = "p1" +end +do local k = l[4633] +k.mode = "i" +k.type = "VR128" +k.name = "p2" +end +do local k = l[4634] +k.orgnames = l[41] +k.opclass = l[4635] +k.operands = l[4637] +k.sub = 30 +k.name = "VMOVQ_DX" +end +do local k = l[4635] +k.isa = l[4628] +k.code = l[22] +k.id = 787 +k.layout = l[3625] +k.impregs = l[12] +k.flags = l[27] +k.parm = 96 +k.sig = "{avx, x64}|{{RegId, def, p1}, {RegId, use, p2}}|{}|vex-66-0f-WR2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR60|{}" +k.prefixclass = l[4636] +end +do local k = l[4636] +k.extopcode = "0f" +k.rex = l[797] +k.id = 140 +k.pref = "66" +k.sig = "vex-66-0f-WR2B1" +end +do local k = l[4637] +k[1] = l[4638] +k[2] = l[4639] +k.id = 275 +k.sig = "{{mode = o,type = GR64,name = p1}, {mode = i,type = VR128,name = p2}}" +end +do local k = l[4638] +k.mode = "o" +k.type = "GR64" +k.name = "p1" +end +do local k = l[4639] +k.mode = "i" +k.type = "VR128" +k.name = "p2" +end +do local k = l[4640] +k.orgnames = l[41] +k.opclass = l[4641] +k.operands = l[4642] +k.sub = 14 +k.name = "VMOVQ_XD" +end +do local k = l[4641] +k.isa = l[4628] +k.code = l[22] +k.id = 789 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 96 +k.sig = "{avx, x64}|{{RegId, use, p1}, {RegId, def, p2}}|{}|vex-66-0f-WR2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR60|{}" +k.prefixclass = l[4636] +end +do local k = l[4642] +k[1] = l[4643] +k[2] = l[4644] +k.id = 274 +k.sig = "{{mode = o,type = VR128,name = p2}, {mode = i,type = GR64,name = p1}}" +end +do local k = l[4643] +k.mode = "o" +k.type = "VR128" +k.name = "p2" +end +do local k = l[4644] +k.mode = "i" +k.type = "GR64" +k.name = "p1" +end +do local k = l[4645] +k.orgnames = l[62] +k.opclass = l[4646] +k.operands = l[4648] +k.sub = 22 +k.name = "VPEXTRQ128_DXI" +end +do local k = l[4646] +k.isa = l[4628] +k.code = l[76] +k.id = 785 +k.layout = l[187] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{avx, x64}|{{RegId, def, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f3a-WR2B1|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR 0|{}" +k.prefixclass = l[4647] +end +do local k = l[4647] +k.extopcode = "0f3a" +k.rex = l[797] +k.id = 142 +k.pref = "66" +k.sig = "vex-66-0f3a-WR2B1" +end +do local k = l[4648] +k[1] = l[4649] +k[2] = l[4650] +k[3] = l[4651] +k.id = 280 +k.sig = "{{mode = o,type = GR64,name = p1}, {mode = i,type = VR128,name = p2}, {mode = i,type = i8,name = p3}}" +end +do local k = l[4649] +k.mode = "o" +k.type = "GR64" +k.name = "p1" +end +do local k = l[4650] +k.mode = "i" +k.type = "VR128" +k.name = "p2" +end +do local k = l[4651] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[4652] +k.orgnames = l[62] +k.opclass = l[4653] +k.operands = l[2227] +k.sub = 22 +k.name = "VPEXTRQ128_M64XI" +end +do local k = l[4653] +k.isa = l[4628] +k.code = l[64] +k.id = 783 +k.layout = l[175] +k.impregs = l[12] +k.flags = l[179] +k.parm = 0 +k.sig = "{avx, x64}|{{MemId, use, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{}|vex-66-0f3a-WR2M1|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR 0|{wmem}" +k.prefixclass = l[4654] +end +do local k = l[4654] +k.extopcode = "0f3a" +k.rex = l[790] +k.id = 146 +k.pref = "66" +k.sig = "vex-66-0f3a-WR2M1" +end +do local k = l[4655] +k.orgnames = l[124] +k.opclass = l[4656] +k.operands = l[4657] +k.sub = 2 +k.name = "VPINSRQ_XXDI" +end +do local k = l[4656] +k.isa = l[4628] +k.code = l[141] +k.id = 788 +k.layout = l[142] +k.impregs = l[12] +k.flags = l[27] +k.parm = 32 +k.sig = "{avx, x64}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-66-0f3a-WR2B1S3|{$parm+$sub, !RRMR($p2,$p1), !I8($p4)}|PAR20|{}" +k.prefixclass = l[254] +end +do local k = l[4657] +k[1] = l[4658] +k[2] = l[4659] +k[3] = l[4660] +k[4] = l[4661] +k.id = 298 +k.sig = "{{mode = o,type = VR128,name = p2}, {mode = i,type = VR128,name = p3}, {mode = i,type = GR64,name = p1}, {mode = i,type = i8,name = p4}}" +end +do local k = l[4658] +k.mode = "o" +k.type = "VR128" +k.name = "p2" +end +do local k = l[4659] +k.mode = "i" +k.type = "VR128" +k.name = "p3" +end +do local k = l[4660] +k.mode = "i" +k.type = "GR64" +k.name = "p1" +end +do local k = l[4661] +k.mode = "i" +k.type = "i8" +k.name = "p4" +end +do local k = l[4662] +k.orgnames = l[124] +k.opclass = l[4663] +k.operands = l[1867] +k.sub = 2 +k.name = "VPINSRQ_XXM64I" +end +do local k = l[4663] +k.isa = l[4628] +k.code = l[127] +k.id = 782 +k.layout = l[128] +k.impregs = l[12] +k.flags = l[13] +k.parm = 32 +k.sig = "{avx, x64}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}, {Imm, use, p4, 0}}|{}|vex-66-0f3a-WR2M1S3|{$parm+$sub, !RRMM($p2,$p1), !I8($p4)}|PAR20|{rmem}" +k.prefixclass = l[251] +end +do local k = l[4664] +k.orgnames = l[4] +k.opclass = l[4665] +k.operands = l[4668] +k.sub = 18 +k.name = "ANDN_DDD" +end +do local k = l[4665] +k.isa = l[4666] +k.code = l[22] +k.id = 793 +k.layout = l[23] +k.impregs = l[697] +k.flags = l[709] +k.parm = 224 +k.sig = "{bmi1, x64}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{{FLAGS, def}}|vex-0f38-WR2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PARE0|{wflags}" +k.prefixclass = l[4667] +end +do local k = l[4666] +k[1] = "bmi1" +k[2] = "x64" +k.sig = "{bmi1, x64}" +k.id = 12 +k.x64 = true +end +do local k = l[4667] +k.extopcode = "0f38" +k.rex = l[255] +k.id = 28 +k.pref = "" +k.sig = "vex-0f38-WR2B1S3" +end +do local k = l[4668] +k[1] = l[4669] +k[2] = l[4670] +k[3] = l[4671] +k.id = 88 +k.sig = "{{mode = o,type = GR64,name = p2}, {mode = i,type = GR64,name = p3}, {mode = i,type = GR64,name = p1}}" +end +do local k = l[4669] +k.mode = "o" +k.type = "GR64" +k.name = "p2" +end +do local k = l[4670] +k.mode = "i" +k.type = "GR64" +k.name = "p3" +end +do local k = l[4671] +k.mode = "i" +k.type = "GR64" +k.name = "p1" +end +do local k = l[4672] +k.orgnames = l[4] +k.opclass = l[4673] +k.operands = l[4675] +k.sub = 18 +k.name = "ANDN_DDM" +end +do local k = l[4673] +k.isa = l[4666] +k.code = l[7] +k.id = 790 +k.layout = l[8] +k.impregs = l[697] +k.flags = l[699] +k.parm = 224 +k.sig = "{bmi1, x64}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{{FLAGS, def}}|vex-0f38-WR2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{rmem, wflags}" +k.prefixclass = l[4674] +end +do local k = l[4674] +k.extopcode = "0f38" +k.rex = l[207] +k.id = 61 +k.pref = "" +k.sig = "vex-0f38-WR2M1S3" +end +do local k = l[4675] +k[1] = l[4676] +k[2] = l[4677] +k[3] = l[4678] +k.id = 160 +k.sig = "{{mode = o,type = GR64,name = p2}, {mode = i,type = GR64,name = p3}, {mode = i,type = i64*,name = p1}}" +end +do local k = l[4676] +k.mode = "o" +k.type = "GR64" +k.name = "p2" +end +do local k = l[4677] +k.mode = "i" +k.type = "GR64" +k.name = "p3" +end +do local k = l[4678] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[4679] +k.orgnames = l[1999] +k.opclass = l[4665] +k.operands = l[4680] +k.sub = 23 +k.name = "BEXTR_DDD" +end +do local k = l[4680] +k[1] = l[4681] +k[2] = l[4682] +k[3] = l[4683] +k.id = 89 +k.sig = "{{mode = o,type = GR64,name = p2}, {mode = i,type = GR64,name = p1}, {mode = i,type = GR64,name = p3}}" +end +do local k = l[4681] +k.mode = "o" +k.type = "GR64" +k.name = "p2" +end +do local k = l[4682] +k.mode = "i" +k.type = "GR64" +k.name = "p1" +end +do local k = l[4683] +k.mode = "i" +k.type = "GR64" +k.name = "p3" +end +do local k = l[4684] +k.orgnames = l[1999] +k.opclass = l[4673] +k.operands = l[4685] +k.sub = 23 +k.name = "BEXTR_DMD" +end +do local k = l[4685] +k[1] = l[4686] +k[2] = l[4687] +k[3] = l[4688] +k.id = 161 +k.sig = "{{mode = o,type = GR64,name = p2}, {mode = i,type = i64*,name = p1}, {mode = i,type = GR64,name = p3}}" +end +do local k = l[4686] +k.mode = "o" +k.type = "GR64" +k.name = "p2" +end +do local k = l[4687] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[4688] +k.mode = "i" +k.type = "GR64" +k.name = "p3" +end +do local k = l[4689] +k.orgnames = l[41] +k.opclass = l[4690] +k.operands = l[4693] +k.sub = 3 +k.name = "BLSI_DD" +end +do local k = l[4690] +k.isa = l[4666] +k.code = l[2016] +k.id = 795 +k.layout = l[53] +k.impregs = l[697] +k.flags = l[709] +k.parm = 243 +k.sig = "{bmi1, x64}|{{RegId, use, p1}, {RegId, def, p2}}|{{FLAGS, def}}|vex-0f38-WB1S2|{$parm, !RRMR($sub,$p1)}|PARF3|{wflags}" +k.prefixclass = l[4691] +end +do local k = l[4691] +k.extopcode = "0f38" +k.rex = l[4692] +k.id = 29 +k.pref = "" +k.sig = "vex-0f38-WB1S2" +end +do local k = l[4692] +k.r64 = "1" +k.rm = "p1" +k.reg = "0" +k.sig = "{r64 = 1,rm = p1,src1 = p2,reg = 0,mode = rr,vex = true,l = 0}" +k.src1 = "p2" +k.id = 12 +k.l = "0" +k.vex = true +k.mode = "rr" +end +do local k = l[4693] +k[1] = l[4694] +k[2] = l[4695] +k.id = 63 +k.sig = "{{mode = o,type = GR64,name = p2}, {mode = i,type = GR64,name = p1}}" +end +do local k = l[4694] +k.mode = "o" +k.type = "GR64" +k.name = "p2" +end +do local k = l[4695] +k.mode = "i" +k.type = "GR64" +k.name = "p1" +end +do local k = l[4696] +k.orgnames = l[41] +k.opclass = l[4697] +k.operands = l[791] +k.sub = 3 +k.name = "BLSI_DM" +end +do local k = l[4697] +k.isa = l[4666] +k.code = l[2011] +k.id = 792 +k.layout = l[43] +k.impregs = l[697] +k.flags = l[699] +k.parm = 243 +k.sig = "{bmi1, x64}|{{MemId, use, p1}, {RegId, def, p2}}|{{FLAGS, def}}|vex-0f38-WM1S2|{$parm, !RRMM($sub,$p1)}|PARF3|{rmem, wflags}" +k.prefixclass = l[4698] +end +do local k = l[4698] +k.extopcode = "0f38" +k.rex = l[4699] +k.id = 62 +k.pref = "" +k.sig = "vex-0f38-WM1S2" +end +do local k = l[4699] +k.r64 = "1" +k.rm = "p1" +k.reg = "0" +k.sig = "{r64 = 1,rm = p1,src1 = p2,reg = 0,mode = rm,vex = true,l = 0}" +k.src1 = "p2" +k.id = 23 +k.l = "0" +k.vex = true +k.mode = "rm" +end +do local k = l[4700] +k.orgnames = l[41] +k.opclass = l[4690] +k.operands = l[4693] +k.sub = 2 +k.name = "BLSMSK_DD" +end +do local k = l[4701] +k.orgnames = l[41] +k.opclass = l[4697] +k.operands = l[791] +k.sub = 2 +k.name = "BLSMSK_DM" +end +do local k = l[4702] +k.orgnames = l[41] +k.opclass = l[4690] +k.operands = l[4693] +k.sub = 1 +k.name = "BLSR_DD" +end +do local k = l[4703] +k.orgnames = l[41] +k.opclass = l[4697] +k.operands = l[791] +k.sub = 1 +k.name = "BLSR_DM" +end +do local k = l[4704] +k.orgnames = l[41] +k.opclass = l[4705] +k.operands = l[4693] +k.sub = 28 +k.name = "TZCNT_DD" +end +do local k = l[4705] +k.isa = l[4666] +k.code = l[22] +k.id = 794 +k.layout = l[53] +k.impregs = l[697] +k.flags = l[709] +k.parm = 160 +k.sig = "{bmi1, x64}|{{RegId, use, p1}, {RegId, def, p2}}|{{FLAGS, def}}|rexWR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PARA0|{wflags}" +k.prefixclass = l[4706] +end +do local k = l[4706] +k.extopcode = "0f" +k.rex = l[2654] +k.id = 25 +k.pref = "" +k.sig = "rexWR2B1-0f" +end +do local k = l[4707] +k.orgnames = l[41] +k.opclass = l[4708] +k.operands = l[791] +k.sub = 28 +k.name = "TZCNT_DM" +end +do local k = l[4708] +k.isa = l[4666] +k.code = l[7] +k.id = 791 +k.layout = l[43] +k.impregs = l[697] +k.flags = l[699] +k.parm = 160 +k.sig = "{bmi1, x64}|{{MemId, use, p1}, {RegId, def, p2}}|{{FLAGS, def}}|rexWR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARA0|{rmem, wflags}" +k.prefixclass = l[4709] +end +do local k = l[4709] +k.extopcode = "0f" +k.rex = l[2650] +k.id = 57 +k.pref = "" +k.sig = "rexWR2M1-0f" +end +do local k = l[4710] +k.orgnames = l[1999] +k.opclass = l[4711] +k.operands = l[4680] +k.sub = 21 +k.name = "BZHI_DDD" +end +do local k = l[4711] +k.isa = l[4712] +k.code = l[22] +k.id = 804 +k.layout = l[23] +k.impregs = l[697] +k.flags = l[709] +k.parm = 224 +k.sig = "{bmi2, x64}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{{FLAGS, def}}|vex-0f38-WR2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PARE0|{wflags}" +k.prefixclass = l[4667] +end +do local k = l[4712] +k[1] = "bmi2" +k[2] = "x64" +k.sig = "{bmi2, x64}" +k.id = 13 +k.x64 = true +end +do local k = l[4713] +k.orgnames = l[1999] +k.opclass = l[4714] +k.operands = l[4685] +k.sub = 21 +k.name = "BZHI_DMD" +end +do local k = l[4714] +k.isa = l[4712] +k.code = l[7] +k.id = 798 +k.layout = l[8] +k.impregs = l[697] +k.flags = l[699] +k.parm = 224 +k.sig = "{bmi2, x64}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{{FLAGS, def}}|vex-0f38-WR2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{rmem, wflags}" +k.prefixclass = l[4674] +end +do local k = l[4715] +k.orgnames = l[2037] +k.opclass = l[4716] +k.operands = l[4718] +k.sub = 22 +k.name = "MULX_DDD" +end +do local k = l[4716] +k.isa = l[4712] +k.code = l[22] +k.id = 803 +k.layout = l[2053] +k.impregs = l[2043] +k.flags = l[27] +k.parm = 224 +k.sig = "{bmi2, x64}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, def, p3}}|{{rdx, use}}|vex-f2-0f38-WR2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PARE0|{}" +k.prefixclass = l[4717] +end +do local k = l[4717] +k.extopcode = "0f38" +k.rex = l[255] +k.id = 30 +k.pref = "f2" +k.sig = "vex-f2-0f38-WR2B1S3" +end +do local k = l[4718] +k[1] = l[4719] +k[2] = l[4720] +k[3] = l[4721] +k[4] = l[4722] +k.id = 90 +k.sig = "{{mode = o,type = GR64,name = p2}, {mode = o,type = GR64,name = p3}, {mode = i,type = GR64,name = p1}, {mode = i,type = GR64,name = p4,fixed = rdx}}" +end +do local k = l[4719] +k.mode = "o" +k.type = "GR64" +k.name = "p2" +end +do local k = l[4720] +k.mode = "o" +k.type = "GR64" +k.name = "p3" +end +do local k = l[4721] +k.mode = "i" +k.type = "GR64" +k.name = "p1" +end +do local k = l[4722] +k.mode = "i" +k.type = "GR64" +k.name = "p4" +k.fixed = "rdx" +end +do local k = l[4723] +k.orgnames = l[2037] +k.opclass = l[4724] +k.operands = l[4726] +k.sub = 22 +k.name = "MULX_DDM" +end +do local k = l[4724] +k.isa = l[4712] +k.code = l[7] +k.id = 797 +k.layout = l[2039] +k.impregs = l[2043] +k.flags = l[13] +k.parm = 224 +k.sig = "{bmi2, x64}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, def, p3}}|{{rdx, use}}|vex-f2-0f38-WR2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{rmem}" +k.prefixclass = l[4725] +end +do local k = l[4725] +k.extopcode = "0f38" +k.rex = l[207] +k.id = 63 +k.pref = "f2" +k.sig = "vex-f2-0f38-WR2M1S3" +end +do local k = l[4726] +k[1] = l[4727] +k[2] = l[4728] +k[3] = l[4729] +k[4] = l[4730] +k.id = 162 +k.sig = "{{mode = o,type = GR64,name = p2}, {mode = o,type = GR64,name = p3}, {mode = i,type = i64*,name = p1}, {mode = i,type = GR64,name = p4,fixed = rdx}}" +end +do local k = l[4727] +k.mode = "o" +k.type = "GR64" +k.name = "p2" +end +do local k = l[4728] +k.mode = "o" +k.type = "GR64" +k.name = "p3" +end +do local k = l[4729] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[4730] +k.mode = "i" +k.type = "GR64" +k.name = "p4" +k.fixed = "rdx" +end +do local k = l[4731] +k.orgnames = l[4] +k.opclass = l[4732] +k.operands = l[4668] +k.sub = 21 +k.name = "PDEP_DDD" +end +do local k = l[4732] +k.isa = l[4712] +k.code = l[22] +k.id = 806 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 224 +k.sig = "{bmi2, x64}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-f2-0f38-WR2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PARE0|{}" +k.prefixclass = l[4717] +end +do local k = l[4733] +k.orgnames = l[4] +k.opclass = l[4734] +k.operands = l[4675] +k.sub = 21 +k.name = "PDEP_DDM" +end +do local k = l[4734] +k.isa = l[4712] +k.code = l[7] +k.id = 800 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 224 +k.sig = "{bmi2, x64}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-f2-0f38-WR2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{rmem}" +k.prefixclass = l[4725] +end +do local k = l[4735] +k.orgnames = l[4] +k.opclass = l[4736] +k.operands = l[4668] +k.sub = 21 +k.name = "PEXT_DDD" +end +do local k = l[4736] +k.isa = l[4712] +k.code = l[22] +k.id = 807 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 224 +k.sig = "{bmi2, x64}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-f3-0f38-WR2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PARE0|{}" +k.prefixclass = l[4737] +end +do local k = l[4737] +k.extopcode = "0f38" +k.rex = l[255] +k.id = 31 +k.pref = "f3" +k.sig = "vex-f3-0f38-WR2B1S3" +end +do local k = l[4738] +k.orgnames = l[4] +k.opclass = l[4739] +k.operands = l[4675] +k.sub = 21 +k.name = "PEXT_DDM" +end +do local k = l[4739] +k.isa = l[4712] +k.code = l[7] +k.id = 801 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 224 +k.sig = "{bmi2, x64}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-f3-0f38-WR2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{rmem}" +k.prefixclass = l[4740] +end +do local k = l[4740] +k.extopcode = "0f38" +k.rex = l[207] +k.id = 64 +k.pref = "f3" +k.sig = "vex-f3-0f38-WR2M1S3" +end +do local k = l[4741] +k.orgnames = l[62] +k.opclass = l[4742] +k.operands = l[4744] +k.sub = 16 +k.name = "RORX_DDI" +end +do local k = l[4742] +k.isa = l[4712] +k.code = l[76] +k.id = 802 +k.layout = l[77] +k.impregs = l[12] +k.flags = l[27] +k.parm = 224 +k.sig = "{bmi2, x64}|{{RegId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|vex-f2-0f3a-WR2B1|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PARE0|{}" +k.prefixclass = l[4743] +end +do local k = l[4743] +k.extopcode = "0f3a" +k.rex = l[797] +k.id = 32 +k.pref = "f2" +k.sig = "vex-f2-0f3a-WR2B1" +end +do local k = l[4744] +k[1] = l[4745] +k[2] = l[4746] +k[3] = l[4747] +k.id = 91 +k.sig = "{{mode = o,type = GR64,name = p2}, {mode = i,type = GR64,name = p1}, {mode = i,type = i8,name = p3}}" +end +do local k = l[4745] +k.mode = "o" +k.type = "GR64" +k.name = "p2" +end +do local k = l[4746] +k.mode = "i" +k.type = "GR64" +k.name = "p1" +end +do local k = l[4747] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[4748] +k.orgnames = l[62] +k.opclass = l[4749] +k.operands = l[4751] +k.sub = 16 +k.name = "RORX_DMI" +end +do local k = l[4749] +k.isa = l[4712] +k.code = l[64] +k.id = 796 +k.layout = l[65] +k.impregs = l[12] +k.flags = l[13] +k.parm = 224 +k.sig = "{bmi2, x64}|{{MemId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{}|vex-f2-0f3a-WR2M1|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PARE0|{rmem}" +k.prefixclass = l[4750] +end +do local k = l[4750] +k.extopcode = "0f3a" +k.rex = l[790] +k.id = 65 +k.pref = "f2" +k.sig = "vex-f2-0f3a-WR2M1" +end +do local k = l[4751] +k[1] = l[4752] +k[2] = l[4753] +k[3] = l[4754] +k.id = 163 +k.sig = "{{mode = o,type = GR64,name = p2}, {mode = i,type = i64*,name = p1}, {mode = i,type = i8,name = p3}}" +end +do local k = l[4752] +k.mode = "o" +k.type = "GR64" +k.name = "p2" +end +do local k = l[4753] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[4754] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[4755] +k.orgnames = l[1999] +k.opclass = l[4736] +k.operands = l[4680] +k.sub = 23 +k.name = "SARX_DDD" +end +do local k = l[4756] +k.orgnames = l[1999] +k.opclass = l[4739] +k.operands = l[4685] +k.sub = 23 +k.name = "SARX_DMD" +end +do local k = l[4757] +k.orgnames = l[1999] +k.opclass = l[4758] +k.operands = l[4680] +k.sub = 23 +k.name = "SHLX_DDD" +end +do local k = l[4758] +k.isa = l[4712] +k.code = l[22] +k.id = 805 +k.layout = l[23] +k.impregs = l[12] +k.flags = l[27] +k.parm = 224 +k.sig = "{bmi2, x64}|{{RegId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-WR2B1S3|{$parm+$sub, !RRMR($p2,$p1)}|PARE0|{}" +k.prefixclass = l[451] +end +do local k = l[4759] +k.orgnames = l[1999] +k.opclass = l[4760] +k.operands = l[4685] +k.sub = 23 +k.name = "SHLX_DMD" +end +do local k = l[4760] +k.isa = l[4712] +k.code = l[7] +k.id = 799 +k.layout = l[8] +k.impregs = l[12] +k.flags = l[13] +k.parm = 224 +k.sig = "{bmi2, x64}|{{MemId, use, p1}, {RegId, def, p2}, {RegId, use, p3}}|{}|vex-66-0f38-WR2M1S3|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{rmem}" +k.prefixclass = l[206] +end +do local k = l[4761] +k.orgnames = l[1999] +k.opclass = l[4732] +k.operands = l[4680] +k.sub = 23 +k.name = "SHRX_DDD" +end +do local k = l[4762] +k.orgnames = l[1999] +k.opclass = l[4734] +k.operands = l[4685] +k.sub = 23 +k.name = "SHRX_DMD" +end +do local k = l[4763] +k.orgnames = l[41] +k.opclass = l[4764] +k.operands = l[4693] +k.sub = 29 +k.name = "LZCNT_DD" +end +do local k = l[4764] +k.isa = l[4765] +k.code = l[22] +k.id = 809 +k.layout = l[53] +k.impregs = l[697] +k.flags = l[709] +k.parm = 160 +k.sig = "{lzcnt, x64}|{{RegId, use, p1}, {RegId, def, p2}}|{{FLAGS, def}}|f3-rexWR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PARA0|{wflags}" +k.prefixclass = l[2685] +end +do local k = l[4765] +k[1] = "lzcnt" +k[2] = "x64" +k.sig = "{lzcnt, x64}" +k.id = 14 +k.x64 = true +end +do local k = l[4766] +k.orgnames = l[41] +k.opclass = l[4767] +k.operands = l[791] +k.sub = 29 +k.name = "LZCNT_DM" +end +do local k = l[4767] +k.isa = l[4765] +k.code = l[7] +k.id = 808 +k.layout = l[43] +k.impregs = l[697] +k.flags = l[699] +k.parm = 160 +k.sig = "{lzcnt, x64}|{{MemId, use, p1}, {RegId, def, p2}}|{{FLAGS, def}}|f3-rexWR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARA0|{rmem, wflags}" +k.prefixclass = l[2690] +end +do local k = l[4768] +k.orgnames = l[41] +k.opclass = l[4769] +k.operands = l[791] +k.sub = 16 +k.name = "MOVBE_DM" +end +do local k = l[4769] +k.isa = l[4770] +k.code = l[7] +k.id = 810 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 224 +k.sig = "{movbe, x64}|{{MemId, use, p1}, {RegId, def, p2}}|{}|rexWR2M1-0f38|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{rmem}" +k.prefixclass = l[4771] +end +do local k = l[4770] +k[1] = "movbe" +k[2] = "x64" +k.sig = "{movbe, x64}" +k.id = 18 +k.x64 = true +end +do local k = l[4771] +k.extopcode = "0f38" +k.rex = l[2650] +k.id = 59 +k.pref = "" +k.sig = "rexWR2M1-0f38" +end +do local k = l[4772] +k.orgnames = l[41] +k.opclass = l[4773] +k.operands = l[4774] +k.sub = 17 +k.name = "MOVBE_MD" +end +do local k = l[4773] +k.isa = l[4770] +k.code = l[7] +k.id = 811 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 224 +k.sig = "{movbe, x64}|{{MemId, use, p1}, {RegId, use, p2}}|{}|rexWR2M1-0f38|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{wmem}" +k.prefixclass = l[4771] +end +do local k = l[4774] +k[1] = l[4775] +k[2] = l[4776] +k.id = 145 +k.sig = "{{mode = i,type = i64*,name = p1}, {mode = i,type = GR64,name = p2}}" +end +do local k = l[4775] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[4776] +k.mode = "i" +k.type = "GR64" +k.name = "p2" +end +do local k = l[4777] +k.orgnames = l[41] +k.opclass = l[4778] +k.operands = l[4693] +k.name = "POPCNT_DD" +end +do local k = l[4778] +k.isa = l[4779] +k.code = l[1016] +k.id = 813 +k.layout = l[53] +k.impregs = l[697] +k.flags = l[709] +k.parm = 184 +k.sig = "{popcnt, x64}|{{RegId, use, p1}, {RegId, def, p2}}|{{FLAGS, def}}|f3-rexWR2B1-0f|{$parm, !RRMR($p2,$p1)}|PARB8|{wflags}" +k.prefixclass = l[2685] +end +do local k = l[4779] +k[1] = "popcnt" +k[2] = "x64" +k.sig = "{popcnt, x64}" +k.id = 11 +k.x64 = true +end +do local k = l[4780] +k.orgnames = l[41] +k.opclass = l[4781] +k.operands = l[791] +k.name = "POPCNT_DM" +end +do local k = l[4781] +k.isa = l[4779] +k.code = l[1000] +k.id = 812 +k.layout = l[43] +k.impregs = l[697] +k.flags = l[699] +k.parm = 184 +k.sig = "{popcnt, x64}|{{MemId, use, p1}, {RegId, def, p2}}|{{FLAGS, def}}|f3-rexWR2M1-0f|{$parm, !RRMM($p2,$p1)}|PARB8|{rmem, wflags}" +k.prefixclass = l[2690] +end +do local k = l[4782] +k.orgnames = l[2566] +k.opclass = l[4783] +k.operands = l[4787] +k.sub = 6 +k.name = "RDRAND_D" +end +do local k = l[4783] +k.isa = l[4784] +k.code = l[2016] +k.id = 814 +k.layout = l[2569] +k.impregs = l[697] +k.flags = l[709] +k.parm = 199 +k.sig = "{rdrand, x64}|{{RegId, def, p1}}|{{FLAGS, def}}|rexWB1-0f|{$parm, !RRMR($sub,$p1)}|PARC7|{wflags}" +k.prefixclass = l[4785] +end +do local k = l[4784] +k[1] = "rdrand" +k[2] = "x64" +k.sig = "{rdrand, x64}" +k.id = 15 +k.x64 = true +end +do local k = l[4785] +k.extopcode = "0f" +k.rex = l[4786] +k.id = 26 +k.pref = "" +k.sig = "rexWB1-0f" +end +do local k = l[4786] +k.r64 = "1" +k.rm = "p1" +k.reg = "0" +k.mode = "rr" +k.sig = "{reg = 0,mode = rr,rm = p1,r64 = 1}" +k.id = 9 +end +do local k = l[4787] +k[1] = l[4788] +k.id = 70 +k.sig = "{{mode = o,type = GR64,name = p1}}" +end +do local k = l[4788] +k.mode = "o" +k.type = "GR64" +k.name = "p1" +end +do local k = l[4789] +k.orgnames = l[62] +k.opclass = l[4790] +k.operands = l[4648] +k.sub = 22 +k.name = "PEXTRQ128_DXI" +end +do local k = l[4790] +k.isa = l[4791] +k.code = l[76] +k.id = 817 +k.layout = l[187] +k.impregs = l[12] +k.flags = l[27] +k.parm = 0 +k.sig = "{sse41, x64}|{{RegId, def, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{}|66-rexWR2B1-0f3a|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR 0|{}" +k.prefixclass = l[4792] +end +do local k = l[4791] +k[1] = "sse41" +k[2] = "x64" +k.sig = "{sse41, x64}" +k.id = 33 +k.x64 = true +end +do local k = l[4792] +k.extopcode = "0f3a" +k.rex = l[2654] +k.id = 137 +k.pref = "66" +k.sig = "66-rexWR2B1-0f3a" +end +do local k = l[4793] +k.orgnames = l[62] +k.opclass = l[4794] +k.operands = l[2227] +k.sub = 22 +k.name = "PEXTRQ128_M64XI" +end +do local k = l[4794] +k.isa = l[4791] +k.code = l[64] +k.id = 815 +k.layout = l[175] +k.impregs = l[12] +k.flags = l[179] +k.parm = 0 +k.sig = "{sse41, x64}|{{MemId, use, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{}|66-rexWR2M1-0f3a|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR 0|{wmem}" +k.prefixclass = l[4795] +end +do local k = l[4795] +k.extopcode = "0f3a" +k.rex = l[2650] +k.id = 138 +k.pref = "66" +k.sig = "66-rexWR2M1-0f3a" +end +do local k = l[4796] +k.orgnames = l[62] +k.opclass = l[4797] +k.operands = l[4798] +k.sub = 2 +k.name = "PINSRQ_XDI" +end +do local k = l[4797] +k.isa = l[4791] +k.code = l[76] +k.id = 818 +k.layout = l[2119] +k.impregs = l[12] +k.flags = l[27] +k.parm = 32 +k.sig = "{sse41, x64}|{{RegId, use, p1}, {RegId, use/def, p2}, {Imm, use, p3, 0}}|{}|66-rexWR2B1-0f3a|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PAR20|{}" +k.prefixclass = l[4792] +end +do local k = l[4798] +k[1] = l[4799] +k[2] = l[4800] +k[3] = l[4801] +k.id = 281 +k.sig = "{{mode = io,type = VR128,name = p2}, {mode = i,type = GR64,name = p1}, {mode = i,type = i8,name = p3}}" +end +do local k = l[4799] +k.mode = "io" +k.type = "VR128" +k.name = "p2" +end +do local k = l[4800] +k.mode = "i" +k.type = "GR64" +k.name = "p1" +end +do local k = l[4801] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[4802] +k.orgnames = l[62] +k.opclass = l[4803] +k.operands = l[3131] +k.sub = 2 +k.name = "PINSRQ_XM64I" +end +do local k = l[4803] +k.isa = l[4791] +k.code = l[64] +k.id = 816 +k.layout = l[2109] +k.impregs = l[12] +k.flags = l[13] +k.parm = 32 +k.sig = "{sse41, x64}|{{MemId, use, p1}, {RegId, use/def, p2}, {Imm, use, p3, 0}}|{}|66-rexWR2M1-0f3a|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PAR20|{rmem}" +k.prefixclass = l[4795] +end +do local k = l[4804] +k.orgnames = l[41] +k.opclass = l[4805] +k.operands = l[4808] +k.sub = 17 +k.name = "CRC32_WD" +end +do local k = l[4805] +k.isa = l[4806] +k.code = l[22] +k.id = 820 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 224 +k.sig = "{sse42, x64}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|f2-rexWR2B1-0f38|{$parm+$sub, !RRMR($p2,$p1)}|PARE0|{}" +k.prefixclass = l[4807] +end +do local k = l[4806] +k[1] = "sse42" +k[2] = "x64" +k.sig = "{sse42, x64}" +k.id = 10 +k.x64 = true +end +do local k = l[4807] +k.extopcode = "0f38" +k.rex = l[2654] +k.id = 24 +k.pref = "f2" +k.sig = "f2-rexWR2B1-0f38" +end +do local k = l[4808] +k[1] = l[4809] +k[2] = l[4810] +k.id = 73 +k.sig = "{{mode = io,type = GR32,name = p2}, {mode = i,type = GR64,name = p1}}" +end +do local k = l[4809] +k.mode = "io" +k.type = "GR32" +k.name = "p2" +end +do local k = l[4810] +k.mode = "i" +k.type = "GR64" +k.name = "p1" +end +do local k = l[4811] +k.orgnames = l[41] +k.opclass = l[4812] +k.operands = l[4814] +k.sub = 17 +k.name = "CRC32_WM64" +end +do local k = l[4812] +k.isa = l[4806] +k.code = l[7] +k.id = 819 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[13] +k.parm = 224 +k.sig = "{sse42, x64}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|f2-rexWR2M1-0f38|{$parm+$sub, !RRMM($p2,$p1)}|PARE0|{rmem}" +k.prefixclass = l[4813] +end +do local k = l[4813] +k.extopcode = "0f38" +k.rex = l[2650] +k.id = 56 +k.pref = "f2" +k.sig = "f2-rexWR2M1-0f38" +end +do local k = l[4814] +k[1] = l[4815] +k[2] = l[4816] +k.id = 150 +k.sig = "{{mode = io,type = GR32,name = p2}, {mode = i,type = i64*,name = p1}}" +end +do local k = l[4815] +k.mode = "io" +k.type = "GR32" +k.name = "p2" +end +do local k = l[4816] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[4817] +k.orgnames = l[41] +k.opclass = l[4818] +k.operands = l[4821] +k.name = "ADC_DD" +k.sub = 2 +end +do local k = l[4818] +k.isa = l[4819] +k.code = l[3427] +k.id = 905 +k.layout = l[99] +k.impregs = l[3428] +k.flags = l[3415] +k.parm = 3 +k.sig = "{x64}|{{RegId, use, p1}, {RegId, use/def, p2}}|{{FLAGS, use/def}}|rexWR2B1|{$sub*8+$parm, !RRMR($p2,$p1)}|PAR 3|{rflag_c, wflags}" +k.prefixclass = l[4820] +end +do local k = l[4819] +k[1] = "x64" +k.sig = "{x64}" +k.id = 9 +k.x64 = true +end +do local k = l[4820] +k.extopcode = "" +k.rex = l[2654] +k.id = 21 +k.pref = "" +k.sig = "rexWR2B1" +end +do local k = l[4821] +k[1] = l[4822] +k[2] = l[4823] +k.id = 65 +k.sig = "{{mode = io,type = GR64,name = p2}, {mode = i,type = GR64,name = p1}}" +end +do local k = l[4822] +k.mode = "io" +k.type = "GR64" +k.name = "p2" +end +do local k = l[4823] +k.mode = "i" +k.type = "GR64" +k.name = "p1" +end +do local k = l[4824] +k.orgnames = l[2855] +k.opclass = l[4825] +k.operands = l[4827] +k.name = "ADC_DI" +k.sub = 2 +end +do local k = l[4825] +k.isa = l[4819] +k.code = l[3502] +k.id = 873 +k.layout = l[3503] +k.impregs = l[3428] +k.flags = l[3415] +k.parm = 129 +k.sig = "{x64}|{{RegId, def, p1}, {Imm, use, p2, 0}}|{{FLAGS, use/def}}|rexWB1|{$parm, !RRMR($sub,$p1), !I32_8($p2)}|PAR81|{rflag_c, wflags}" +k.prefixclass = l[4826] +end +do local k = l[4826] +k.extopcode = "" +k.rex = l[4786] +k.id = 22 +k.pref = "" +k.sig = "rexWB1" +end +do local k = l[4827] +k[1] = l[4828] +k[2] = l[4829] +k.id = 64 +k.sig = "{{mode = o,type = GR64,name = p1}, {mode = i,type = i32,name = p2}}" +end +do local k = l[4828] +k.mode = "o" +k.type = "GR64" +k.name = "p1" +end +do local k = l[4829] +k.mode = "i" +k.type = "i32" +k.name = "p2" +end +do local k = l[4830] +k.orgnames = l[41] +k.opclass = l[4831] +k.operands = l[4833] +k.name = "ADC_DM" +k.sub = 2 +end +do local k = l[4831] +k.isa = l[4819] +k.code = l[3442] +k.id = 852 +k.layout = l[89] +k.impregs = l[3428] +k.flags = l[3443] +k.parm = 3 +k.sig = "{x64}|{{MemId, use, p1}, {RegId, use/def, p2}}|{{FLAGS, use/def}}|rexWR2M1|{$sub*8+$parm, !RRMM($p2,$p1)}|PAR 3|{rflag_c, rmem, wflags}" +k.prefixclass = l[4832] +end +do local k = l[4832] +k.extopcode = "" +k.rex = l[2650] +k.id = 54 +k.pref = "" +k.sig = "rexWR2M1" +end +do local k = l[4833] +k[1] = l[4834] +k[2] = l[4835] +k.id = 144 +k.sig = "{{mode = io,type = GR64,name = p2}, {mode = i,type = i64*,name = p1}}" +end +do local k = l[4834] +k.mode = "io" +k.type = "GR64" +k.name = "p2" +end +do local k = l[4835] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[4836] +k.orgnames = l[2855] +k.opclass = l[4837] +k.operands = l[4840] +k.name = "ADC_M64I" +k.sub = 2 +end +do local k = l[4837] +k.isa = l[4819] +k.code = l[3480] +k.id = 830 +k.layout = l[3470] +k.impregs = l[3428] +k.flags = l[3473] +k.parm = 129 +k.sig = "{x64}|{{MemId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, use/def}}|rexWM1|{$parm, !RRMM($sub,$p1), !I32_8($p2)}|PAR81|{rflag_c, rmem, rwmem, wflags, wmem}" +k.prefixclass = l[4838] +end +do local k = l[4838] +k.extopcode = "" +k.rex = l[4839] +k.id = 55 +k.pref = "" +k.sig = "rexWM1" +end +do local k = l[4839] +k.r64 = "1" +k.rm = "p1" +k.reg = "0" +k.mode = "rm" +k.sig = "{reg = 0,mode = rm,rm = p1,r64 = 1}" +k.id = 21 +end +do local k = l[4840] +k[1] = l[4841] +k[2] = l[4842] +k.id = 143 +k.sig = "{{mode = i,type = i64*,name = p1}, {mode = i,type = i32,name = p2}}" +end +do local k = l[4841] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[4842] +k.mode = "i" +k.type = "i32" +k.name = "p2" +end +do local k = l[4843] +k.orgnames = l[41] +k.opclass = l[4844] +k.operands = l[4774] +k.name = "ADC_MD" +k.sub = 2 +end +do local k = l[4844] +k.isa = l[4819] +k.code = l[3442] +k.id = 846 +k.layout = l[694] +k.impregs = l[3428] +k.flags = l[3473] +k.parm = 1 +k.sig = "{x64}|{{MemId, use, p1}, {RegId, use, p2}}|{{FLAGS, use/def}}|rexWR2M1|{$sub*8+$parm, !RRMM($p2,$p1)}|PAR 1|{rflag_c, rmem, rwmem, wflags, wmem}" +k.prefixclass = l[4832] +end +do local k = l[4845] +k.orgnames = l[2855] +k.opclass = l[4846] +k.operands = l[4849] +k.name = "ADC_RAX_I" +k.sub = 2 +end +do local k = l[4846] +k.isa = l[4819] +k.code = l[3450] +k.id = 822 +k.layout = l[2603] +k.impregs = l[3412] +k.flags = l[3415] +k.parm = 5 +k.sig = "{x64}|{{Imm, use, p1, 0}}|{{rax, use/def}, {FLAGS, use/def}}|rexW|{$sub*8+$parm, !I32_8($p1))}|PAR 5|{rflag_c, wflags}" +k.prefixclass = l[4847] +end +do local k = l[4847] +k.extopcode = "" +k.rex = l[4848] +k.id = 23 +k.pref = "" +k.sig = "rexW" +end +do local k = l[4848] +k.r64 = "1" +k.rm = "0" +k.reg = "0" +k.mode = "rr" +k.sig = "{reg = 0,mode = rr,rm = 0,r64 = 1}" +k.id = 10 +end +do local k = l[4849] +k[1] = l[4850] +k[2] = l[4851] +k.id = 66 +k.sig = "{{mode = io,type = GR64,name = p2,fixed = rax}, {mode = i,type = i32,name = p1}}" +end +do local k = l[4850] +k.mode = "io" +k.type = "GR64" +k.name = "p2" +k.fixed = "rax" +end +do local k = l[4851] +k.mode = "i" +k.type = "i32" +k.name = "p1" +end +do local k = l[4852] +k.orgnames = l[41] +k.opclass = l[4853] +k.operands = l[4821] +k.name = "ADD_DD" +k.sub = 0 +end +do local k = l[4853] +k.isa = l[4819] +k.code = l[3427] +k.id = 904 +k.layout = l[99] +k.impregs = l[697] +k.flags = l[709] +k.parm = 3 +k.sig = "{x64}|{{RegId, use, p1}, {RegId, use/def, p2}}|{{FLAGS, def}}|rexWR2B1|{$sub*8+$parm, !RRMR($p2,$p1)}|PAR 3|{wflags}" +k.prefixclass = l[4820] +end +do local k = l[4854] +k.orgnames = l[2855] +k.opclass = l[4855] +k.operands = l[4827] +k.name = "ADD_DI" +k.sub = 0 +end +do local k = l[4855] +k.isa = l[4819] +k.code = l[3502] +k.id = 871 +k.layout = l[3503] +k.impregs = l[697] +k.flags = l[709] +k.parm = 129 +k.sig = "{x64}|{{RegId, def, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|rexWB1|{$parm, !RRMR($sub,$p1), !I32_8($p2)}|PAR81|{wflags}" +k.prefixclass = l[4826] +end +do local k = l[4856] +k.orgnames = l[41] +k.opclass = l[4857] +k.operands = l[4833] +k.name = "ADD_DM" +k.sub = 0 +end +do local k = l[4857] +k.isa = l[4819] +k.code = l[3442] +k.id = 851 +k.layout = l[89] +k.impregs = l[697] +k.flags = l[699] +k.parm = 3 +k.sig = "{x64}|{{MemId, use, p1}, {RegId, use/def, p2}}|{{FLAGS, def}}|rexWR2M1|{$sub*8+$parm, !RRMM($p2,$p1)}|PAR 3|{rmem, wflags}" +k.prefixclass = l[4832] +end +do local k = l[4858] +k.orgnames = l[2855] +k.opclass = l[4859] +k.operands = l[4840] +k.name = "ADD_M64I" +k.sub = 0 +end +do local k = l[4859] +k.isa = l[4819] +k.code = l[3480] +k.id = 827 +k.layout = l[3470] +k.impregs = l[697] +k.flags = l[3536] +k.parm = 129 +k.sig = "{x64}|{{MemId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|rexWM1|{$parm, !RRMM($sub,$p1), !I32_8($p2)}|PAR81|{rmem, rwmem, wflags, wmem}" +k.prefixclass = l[4838] +end +do local k = l[4860] +k.orgnames = l[41] +k.opclass = l[4861] +k.operands = l[4774] +k.name = "ADD_MD" +k.sub = 0 +end +do local k = l[4861] +k.isa = l[4819] +k.code = l[3442] +k.id = 843 +k.layout = l[694] +k.impregs = l[697] +k.flags = l[3536] +k.parm = 1 +k.sig = "{x64}|{{MemId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|rexWR2M1|{$sub*8+$parm, !RRMM($p2,$p1)}|PAR 1|{rmem, rwmem, wflags, wmem}" +k.prefixclass = l[4832] +end +do local k = l[4862] +k.orgnames = l[2855] +k.opclass = l[4863] +k.operands = l[4849] +k.name = "ADD_RAX_I" +k.sub = 0 +end +do local k = l[4863] +k.isa = l[4819] +k.code = l[3450] +k.id = 821 +k.layout = l[2603] +k.impregs = l[3515] +k.flags = l[709] +k.parm = 5 +k.sig = "{x64}|{{Imm, use, p1, 0}}|{{rax, use/def}, {FLAGS, def}}|rexW|{$sub*8+$parm, !I32_8($p1))}|PAR 5|{wflags}" +k.prefixclass = l[4847] +end +do local k = l[4864] +k.orgnames = l[41] +k.opclass = l[4853] +k.operands = l[4821] +k.name = "AND_DD" +k.sub = 4 +end +do local k = l[4865] +k.orgnames = l[2855] +k.opclass = l[4855] +k.operands = l[4827] +k.name = "AND_DI" +k.sub = 4 +end +do local k = l[4866] +k.orgnames = l[41] +k.opclass = l[4857] +k.operands = l[4833] +k.name = "AND_DM" +k.sub = 4 +end +do local k = l[4867] +k.orgnames = l[2855] +k.opclass = l[4859] +k.operands = l[4840] +k.name = "AND_M64I" +k.sub = 4 +end +do local k = l[4868] +k.orgnames = l[41] +k.opclass = l[4861] +k.operands = l[4774] +k.name = "AND_MD" +k.sub = 4 +end +do local k = l[4869] +k.orgnames = l[2855] +k.opclass = l[4863] +k.operands = l[4849] +k.name = "AND_RAX_I" +k.sub = 4 +end +do local k = l[4870] +k.orgnames = l[41] +k.opclass = l[4871] +k.operands = l[4693] +k.sub = 28 +k.name = "BSF_DD" +end +do local k = l[4871] +k.isa = l[4819] +k.code = l[22] +k.id = 895 +k.layout = l[53] +k.impregs = l[697] +k.flags = l[709] +k.parm = 160 +k.sig = "{x64}|{{RegId, use, p1}, {RegId, def, p2}}|{{FLAGS, def}}|rexWR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PARA0|{wflags}" +k.prefixclass = l[4706] +end +do local k = l[4872] +k.orgnames = l[41] +k.opclass = l[4873] +k.operands = l[791] +k.sub = 28 +k.name = "BSF_DM" +end +do local k = l[4873] +k.isa = l[4819] +k.code = l[7] +k.id = 834 +k.layout = l[43] +k.impregs = l[697] +k.flags = l[699] +k.parm = 160 +k.sig = "{x64}|{{MemId, use, p1}, {RegId, def, p2}}|{{FLAGS, def}}|rexWR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARA0|{rmem, wflags}" +k.prefixclass = l[4709] +end +do local k = l[4874] +k.orgnames = l[41] +k.opclass = l[4871] +k.operands = l[4693] +k.sub = 29 +k.name = "BSR_DD" +end +do local k = l[4875] +k.orgnames = l[41] +k.opclass = l[4873] +k.operands = l[791] +k.sub = 29 +k.name = "BSR_DM" +end +do local k = l[4876] +k.orgnames = l[2566] +k.opclass = l[4877] +k.operands = l[4878] +k.name = "BSWAP_D" +end +do local k = l[4877] +k.isa = l[4819] +k.code = l[3585] +k.id = 918 +k.layout = l[3586] +k.impregs = l[12] +k.flags = l[27] +k.parm = 200 +k.sig = "{x64}|{{RegId, use/def, p1}}|{}|rexWB1-0f|{$parm+($p1&7)}|PARC8|{}" +k.prefixclass = l[4785] +end +do local k = l[4878] +k[1] = l[4879] +k.id = 92 +k.sig = "{{mode = io,type = GR64,name = p1}}" +end +do local k = l[4879] +k.mode = "io" +k.type = "GR64" +k.name = "p1" +end +do local k = l[4880] +k.orgnames = l[41] +k.opclass = l[4881] +k.operands = l[4882] +k.sub = 27 +k.name = "BTC_DD" +end +do local k = l[4881] +k.isa = l[4819] +k.code = l[22] +k.id = 879 +k.layout = l[3625] +k.impregs = l[697] +k.flags = l[709] +k.parm = 160 +k.sig = "{x64}|{{RegId, def, p1}, {RegId, use, p2}}|{{FLAGS, def}}|rexWR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PARA0|{wflags}" +k.prefixclass = l[4706] +end +do local k = l[4882] +k[1] = l[4883] +k[2] = l[4884] +k.id = 84 +k.sig = "{{mode = o,type = GR64,name = p1}, {mode = i,type = GR64,name = p2}}" +end +do local k = l[4883] +k.mode = "o" +k.type = "GR64" +k.name = "p1" +end +do local k = l[4884] +k.mode = "i" +k.type = "GR64" +k.name = "p2" +end +do local k = l[4885] +k.orgnames = l[2855] +k.opclass = l[4886] +k.operands = l[4887] +k.sub = 7 +k.name = "BTC_DI" +end +do local k = l[4886] +k.isa = l[4819] +k.code = l[2857] +k.id = 870 +k.layout = l[3503] +k.impregs = l[697] +k.flags = l[709] +k.parm = 186 +k.sig = "{x64}|{{RegId, def, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|rexWB1-0f|{$parm, !RRMR($sub,$p1), !I8($p2)}|PARBA|{wflags}" +k.prefixclass = l[4785] +end +do local k = l[4887] +k[1] = l[4888] +k[2] = l[4889] +k.id = 71 +k.sig = "{{mode = o,type = GR64,name = p1}, {mode = i,type = i8,name = p2}}" +end +do local k = l[4888] +k.mode = "o" +k.type = "GR64" +k.name = "p1" +end +do local k = l[4889] +k.mode = "i" +k.type = "i8" +k.name = "p2" +end +do local k = l[4890] +k.orgnames = l[2855] +k.opclass = l[4891] +k.operands = l[4893] +k.sub = 7 +k.name = "BTC_M64I" +end +do local k = l[4891] +k.isa = l[4819] +k.code = l[3487] +k.id = 824 +k.layout = l[3470] +k.impregs = l[697] +k.flags = l[3536] +k.parm = 186 +k.sig = "{x64}|{{MemId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|rexWM1-0f|{$parm, !RRMM($sub,$p1), !I8($p2)}|PARBA|{rmem, rwmem, wflags, wmem}" +k.prefixclass = l[4892] +end +do local k = l[4892] +k.extopcode = "0f" +k.rex = l[4839] +k.id = 58 +k.pref = "" +k.sig = "rexWM1-0f" +end +do local k = l[4893] +k[1] = l[4894] +k[2] = l[4895] +k.id = 148 +k.sig = "{{mode = i,type = i64*,name = p1}, {mode = i,type = i8,name = p2}}" +end +do local k = l[4894] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[4895] +k.mode = "i" +k.type = "i8" +k.name = "p2" +end +do local k = l[4896] +k.orgnames = l[41] +k.opclass = l[4897] +k.operands = l[4774] +k.sub = 27 +k.name = "BTC_MD" +end +do local k = l[4897] +k.isa = l[4819] +k.code = l[7] +k.id = 840 +k.layout = l[694] +k.impregs = l[697] +k.flags = l[3536] +k.parm = 160 +k.sig = "{x64}|{{MemId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|rexWR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARA0|{rmem, rwmem, wflags, wmem}" +k.prefixclass = l[4709] +end +do local k = l[4898] +k.orgnames = l[41] +k.opclass = l[4881] +k.operands = l[4882] +k.sub = 19 +k.name = "BTR_DD" +end +do local k = l[4899] +k.orgnames = l[2855] +k.opclass = l[4886] +k.operands = l[4887] +k.sub = 6 +k.name = "BTR_DI" +end +do local k = l[4900] +k.orgnames = l[2855] +k.opclass = l[4891] +k.operands = l[4893] +k.sub = 6 +k.name = "BTR_M64I" +end +do local k = l[4901] +k.orgnames = l[41] +k.opclass = l[4897] +k.operands = l[4774] +k.sub = 19 +k.name = "BTR_MD" +end +do local k = l[4902] +k.orgnames = l[41] +k.opclass = l[4881] +k.operands = l[4882] +k.sub = 11 +k.name = "BTS_DD" +end +do local k = l[4903] +k.orgnames = l[2855] +k.opclass = l[4886] +k.operands = l[4887] +k.sub = 5 +k.name = "BTS_DI" +end +do local k = l[4904] +k.orgnames = l[2855] +k.opclass = l[4891] +k.operands = l[4893] +k.sub = 5 +k.name = "BTS_M64I" +end +do local k = l[4905] +k.orgnames = l[41] +k.opclass = l[4897] +k.operands = l[4774] +k.sub = 11 +k.name = "BTS_MD" +end +do local k = l[4906] +k.orgnames = l[41] +k.opclass = l[4907] +k.operands = l[4908] +k.sub = 3 +k.name = "BT_DD" +end +do local k = l[4907] +k.isa = l[4819] +k.code = l[22] +k.id = 900 +k.layout = l[706] +k.impregs = l[697] +k.flags = l[709] +k.parm = 160 +k.sig = "{x64}|{{RegId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|rexWR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PARA0|{wflags}" +k.prefixclass = l[4706] +end +do local k = l[4908] +k[1] = l[4909] +k[2] = l[4910] +k.id = 69 +k.sig = "{{mode = i,type = GR64,name = p1}, {mode = i,type = GR64,name = p2}}" +end +do local k = l[4909] +k.mode = "i" +k.type = "GR64" +k.name = "p1" +end +do local k = l[4910] +k.mode = "i" +k.type = "GR64" +k.name = "p2" +end +do local k = l[4911] +k.orgnames = l[2855] +k.opclass = l[4912] +k.operands = l[4913] +k.sub = 4 +k.name = "BT_DI" +end +do local k = l[4912] +k.isa = l[4819] +k.code = l[2857] +k.id = 891 +k.layout = l[3654] +k.impregs = l[697] +k.flags = l[709] +k.parm = 186 +k.sig = "{x64}|{{RegId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|rexWB1-0f|{$parm, !RRMR($sub,$p1), !I8($p2)}|PARBA|{wflags}" +k.prefixclass = l[4785] +end +do local k = l[4913] +k[1] = l[4914] +k[2] = l[4915] +k.id = 83 +k.sig = "{{mode = i,type = GR64,name = p1}, {mode = i,type = i8,name = p2}}" +end +do local k = l[4914] +k.mode = "i" +k.type = "GR64" +k.name = "p1" +end +do local k = l[4915] +k.mode = "i" +k.type = "i8" +k.name = "p2" +end +do local k = l[4916] +k.orgnames = l[2855] +k.opclass = l[4917] +k.operands = l[4893] +k.sub = 4 +k.name = "BT_M64I" +end +do local k = l[4917] +k.isa = l[4819] +k.code = l[3487] +k.id = 825 +k.layout = l[3470] +k.impregs = l[697] +k.flags = l[699] +k.parm = 186 +k.sig = "{x64}|{{MemId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|rexWM1-0f|{$parm, !RRMM($sub,$p1), !I8($p2)}|PARBA|{rmem, wflags}" +k.prefixclass = l[4892] +end +do local k = l[4918] +k.orgnames = l[41] +k.opclass = l[4919] +k.operands = l[4774] +k.sub = 3 +k.name = "BT_MD" +end +do local k = l[4919] +k.isa = l[4819] +k.code = l[7] +k.id = 841 +k.layout = l[694] +k.impregs = l[697] +k.flags = l[699] +k.parm = 160 +k.sig = "{x64}|{{MemId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|rexWR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARA0|{rmem, wflags}" +k.prefixclass = l[4709] +end +do local k = l[4920] +k.orgnames = l[2566] +k.opclass = l[4921] +k.operands = l[4922] +k.name = "CDQE" +end +do local k = l[4921] +k.isa = l[4819] +k.code = l[3698] +k.id = 919 +k.layout = l[1961] +k.impregs = l[3699] +k.flags = l[27] +k.parm = 152 +k.sig = "{x64}|{}|{{rax, use/def}}|rexW|{$parm}|PAR98|{}" +k.prefixclass = l[4847] +end +do local k = l[4922] +k[1] = l[4923] +k.id = 169 +k.sig = "{{mode = io,type = GR64,name = p1,fixed = rax}}" +end +do local k = l[4923] +k.mode = "io" +k.type = "GR64" +k.name = "p1" +k.fixed = "rax" +end +do local k = l[4924] +k.orgnames = l[41] +k.opclass = l[4925] +k.operands = l[4821] +k.sub = 3 +k.name = "CMOVAE_DD" +end +do local k = l[4925] +k.isa = l[4819] +k.code = l[22] +k.id = 906 +k.layout = l[99] +k.impregs = l[2130] +k.flags = l[2132] +k.parm = 64 +k.sig = "{x64}|{{RegId, use, p1}, {RegId, use/def, p2}}|{{FLAGS, use}}|rexWR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR40|{subflags}" +k.prefixclass = l[4706] +end +do local k = l[4926] +k.orgnames = l[41] +k.opclass = l[4927] +k.operands = l[4833] +k.sub = 3 +k.name = "CMOVAE_DM" +end +do local k = l[4927] +k.isa = l[4819] +k.code = l[7] +k.id = 853 +k.layout = l[89] +k.impregs = l[2130] +k.flags = l[2139] +k.parm = 64 +k.sig = "{x64}|{{MemId, use, p1}, {RegId, use/def, p2}}|{{FLAGS, use}}|rexWR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR40|{rmem, subflags}" +k.prefixclass = l[4709] +end +do local k = l[4928] +k.orgnames = l[41] +k.opclass = l[4925] +k.operands = l[4821] +k.sub = 7 +k.name = "CMOVA_DD" +end +do local k = l[4929] +k.orgnames = l[41] +k.opclass = l[4927] +k.operands = l[4833] +k.sub = 7 +k.name = "CMOVA_DM" +end +do local k = l[4930] +k.orgnames = l[41] +k.opclass = l[4925] +k.operands = l[4821] +k.sub = 6 +k.name = "CMOVBE_DD" +end +do local k = l[4931] +k.orgnames = l[41] +k.opclass = l[4927] +k.operands = l[4833] +k.sub = 6 +k.name = "CMOVBE_DM" +end +do local k = l[4932] +k.orgnames = l[41] +k.opclass = l[4925] +k.operands = l[4821] +k.sub = 2 +k.name = "CMOVB_DD" +end +do local k = l[4933] +k.orgnames = l[41] +k.opclass = l[4927] +k.operands = l[4833] +k.sub = 2 +k.name = "CMOVB_DM" +end +do local k = l[4934] +k.orgnames = l[41] +k.opclass = l[4925] +k.operands = l[4821] +k.sub = 4 +k.name = "CMOVE_DD" +end +do local k = l[4935] +k.orgnames = l[41] +k.opclass = l[4927] +k.operands = l[4833] +k.sub = 4 +k.name = "CMOVE_DM" +end +do local k = l[4936] +k.orgnames = l[41] +k.opclass = l[4925] +k.operands = l[4821] +k.sub = 13 +k.name = "CMOVGE_DD" +end +do local k = l[4937] +k.orgnames = l[41] +k.opclass = l[4927] +k.operands = l[4833] +k.sub = 13 +k.name = "CMOVGE_DM" +end +do local k = l[4938] +k.orgnames = l[41] +k.opclass = l[4925] +k.operands = l[4821] +k.sub = 15 +k.name = "CMOVG_DD" +end +do local k = l[4939] +k.orgnames = l[41] +k.opclass = l[4927] +k.operands = l[4833] +k.sub = 15 +k.name = "CMOVG_DM" +end +do local k = l[4940] +k.orgnames = l[41] +k.opclass = l[4925] +k.operands = l[4821] +k.sub = 14 +k.name = "CMOVLE_DD" +end +do local k = l[4941] +k.orgnames = l[41] +k.opclass = l[4927] +k.operands = l[4833] +k.sub = 14 +k.name = "CMOVLE_DM" +end +do local k = l[4942] +k.orgnames = l[41] +k.opclass = l[4925] +k.operands = l[4821] +k.sub = 12 +k.name = "CMOVL_DD" +end +do local k = l[4943] +k.orgnames = l[41] +k.opclass = l[4927] +k.operands = l[4833] +k.sub = 12 +k.name = "CMOVL_DM" +end +do local k = l[4944] +k.orgnames = l[41] +k.opclass = l[4925] +k.operands = l[4821] +k.sub = 5 +k.name = "CMOVNE_DD" +end +do local k = l[4945] +k.orgnames = l[41] +k.opclass = l[4927] +k.operands = l[4833] +k.sub = 5 +k.name = "CMOVNE_DM" +end +do local k = l[4946] +k.orgnames = l[41] +k.opclass = l[4925] +k.operands = l[4821] +k.sub = 1 +k.name = "CMOVNO_DD" +end +do local k = l[4947] +k.orgnames = l[41] +k.opclass = l[4927] +k.operands = l[4833] +k.sub = 1 +k.name = "CMOVNO_DM" +end +do local k = l[4948] +k.orgnames = l[41] +k.opclass = l[4925] +k.operands = l[4821] +k.sub = 9 +k.name = "CMOVNS_DD" +end +do local k = l[4949] +k.orgnames = l[41] +k.opclass = l[4927] +k.operands = l[4833] +k.sub = 9 +k.name = "CMOVNS_DM" +end +do local k = l[4950] +k.orgnames = l[41] +k.opclass = l[4925] +k.operands = l[4821] +k.sub = 0 +k.name = "CMOVO_DD" +end +do local k = l[4951] +k.orgnames = l[41] +k.opclass = l[4927] +k.operands = l[4833] +k.sub = 0 +k.name = "CMOVO_DM" +end +do local k = l[4952] +k.orgnames = l[41] +k.opclass = l[4925] +k.operands = l[4821] +k.sub = 10 +k.name = "CMOVPE_DD" +end +do local k = l[4953] +k.orgnames = l[41] +k.opclass = l[4927] +k.operands = l[4833] +k.sub = 10 +k.name = "CMOVPE_DM" +end +do local k = l[4954] +k.orgnames = l[41] +k.opclass = l[4925] +k.operands = l[4821] +k.sub = 11 +k.name = "CMOVPO_DD" +end +do local k = l[4955] +k.orgnames = l[41] +k.opclass = l[4927] +k.operands = l[4833] +k.sub = 11 +k.name = "CMOVPO_DM" +end +do local k = l[4956] +k.orgnames = l[41] +k.opclass = l[4925] +k.operands = l[4821] +k.sub = 8 +k.name = "CMOVS_DD" +end +do local k = l[4957] +k.orgnames = l[41] +k.opclass = l[4927] +k.operands = l[4833] +k.sub = 8 +k.name = "CMOVS_DM" +end +do local k = l[4958] +k.orgnames = l[3718] +k.opclass = l[4959] +k.operands = l[4960] +k.sub = 1 +k.name = "CMPXCHG16B_M128_RDX_RAX_RCX_RBX" +end +do local k = l[4959] +k.isa = l[4819] +k.code = l[2011] +k.id = 861 +k.layout = l[2099] +k.impregs = l[3720] +k.flags = l[3726] +k.parm = 199 +k.sig = "{x64}|{{MemId, use, p1}}|{{rax, use/def}, {rdx, use/def}, {rbx, use}, {rcx, use}, {FLAGS, def}}|rexWM1-0f|{$parm, !RRMM($sub,$p1)}|PARC7|{wflags, wmem}" +k.prefixclass = l[4892] +end +do local k = l[4960] +k[1] = l[4961] +k[2] = l[4962] +k[3] = l[4963] +k[4] = l[4964] +k[5] = l[4965] +k.id = 194 +k.sig = "{{mode = i,type = i64*,name = p1}, {mode = io,type = GR64,name = p2,fixed = rax}, {mode = io,type = GR64,name = p3,fixed = rdx}, {mode = i,type = GR64,name = p4,fixed = rbx}, {mode = i,type = GR64,name = p5,fixed = rcx}}" +end +do local k = l[4961] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[4962] +k.mode = "io" +k.type = "GR64" +k.name = "p2" +k.fixed = "rax" +end +do local k = l[4963] +k.mode = "io" +k.type = "GR64" +k.name = "p3" +k.fixed = "rdx" +end +do local k = l[4964] +k.mode = "i" +k.type = "GR64" +k.name = "p4" +k.fixed = "rbx" +end +do local k = l[4965] +k.mode = "i" +k.type = "GR64" +k.name = "p5" +k.fixed = "rcx" +end +do local k = l[4966] +k.orgnames = l[3734] +k.opclass = l[4967] +k.operands = l[4968] +k.sub = 17 +k.name = "CMPXCHG_DD_RAX" +end +do local k = l[4967] +k.isa = l[4819] +k.code = l[22] +k.id = 916 +k.layout = l[3736] +k.impregs = l[3739] +k.flags = l[709] +k.parm = 160 +k.sig = "{x64}|{{RegId, use/def, p1}, {RegId, use/def, p2}}|{{rax, use}, {FLAGS, def}}|rexWR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PARA0|{wflags}" +k.prefixclass = l[4706] +end +do local k = l[4968] +k[1] = l[4969] +k[2] = l[4970] +k[3] = l[4971] +k.id = 74 +k.sig = "{{mode = io,type = GR64,name = p1}, {mode = io,type = GR64,name = p2}, {mode = i,type = GR64,name = p3,fixed = rax}}" +end +do local k = l[4969] +k.mode = "io" +k.type = "GR64" +k.name = "p1" +end +do local k = l[4970] +k.mode = "io" +k.type = "GR64" +k.name = "p2" +end +do local k = l[4971] +k.mode = "i" +k.type = "GR64" +k.name = "p3" +k.fixed = "rax" +end +do local k = l[4972] +k.orgnames = l[3734] +k.opclass = l[4973] +k.operands = l[4974] +k.sub = 17 +k.name = "CMPXCHG_MD_RAX" +end +do local k = l[4973] +k.isa = l[4819] +k.code = l[7] +k.id = 854 +k.layout = l[89] +k.impregs = l[3739] +k.flags = l[699] +k.parm = 160 +k.sig = "{x64}|{{MemId, use, p1}, {RegId, use/def, p2}}|{{rax, use}, {FLAGS, def}}|rexWR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARA0|{rmem, wflags}" +k.prefixclass = l[4709] +end +do local k = l[4974] +k[1] = l[4975] +k[2] = l[4976] +k[3] = l[4977] +k.id = 151 +k.sig = "{{mode = i,type = i64*,name = p1}, {mode = io,type = GR64,name = p2}, {mode = i,type = GR64,name = p3,fixed = rax}}" +end +do local k = l[4975] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[4976] +k.mode = "io" +k.type = "GR64" +k.name = "p2" +end +do local k = l[4977] +k.mode = "i" +k.type = "GR64" +k.name = "p3" +k.fixed = "rax" +end +do local k = l[4978] +k.orgnames = l[41] +k.opclass = l[4979] +k.operands = l[4980] +k.name = "CMP_DD" +k.sub = 7 +end +do local k = l[4979] +k.isa = l[4819] +k.code = l[3427] +k.id = 902 +k.layout = l[706] +k.impregs = l[697] +k.flags = l[709] +k.parm = 3 +k.sig = "{x64}|{{RegId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|rexWR2B1|{$sub*8+$parm, !RRMR($p2,$p1)}|PAR 3|{wflags}" +k.prefixclass = l[4820] +end +do local k = l[4980] +k[1] = l[4981] +k[2] = l[4982] +k.id = 68 +k.sig = "{{mode = i,type = GR64,name = p2}, {mode = i,type = GR64,name = p1}}" +end +do local k = l[4981] +k.mode = "i" +k.type = "GR64" +k.name = "p2" +end +do local k = l[4982] +k.mode = "i" +k.type = "GR64" +k.name = "p1" +end +do local k = l[4983] +k.orgnames = l[2855] +k.opclass = l[4984] +k.operands = l[4985] +k.name = "CMP_DI" +k.sub = 7 +end +do local k = l[4984] +k.isa = l[4819] +k.code = l[3502] +k.id = 893 +k.layout = l[3654] +k.impregs = l[697] +k.flags = l[709] +k.parm = 129 +k.sig = "{x64}|{{RegId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|rexWB1|{$parm, !RRMR($sub,$p1), !I32_8($p2)}|PAR81|{wflags}" +k.prefixclass = l[4826] +end +do local k = l[4985] +k[1] = l[4986] +k[2] = l[4987] +k.id = 67 +k.sig = "{{mode = i,type = GR64,name = p1}, {mode = i,type = i32,name = p2}}" +end +do local k = l[4986] +k.mode = "i" +k.type = "GR64" +k.name = "p1" +end +do local k = l[4987] +k.mode = "i" +k.type = "i32" +k.name = "p2" +end +do local k = l[4988] +k.orgnames = l[41] +k.opclass = l[4989] +k.operands = l[4990] +k.name = "CMP_DM" +k.sub = 7 +end +do local k = l[4989] +k.isa = l[4819] +k.code = l[3442] +k.id = 845 +k.layout = l[694] +k.impregs = l[697] +k.flags = l[699] +k.parm = 3 +k.sig = "{x64}|{{MemId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|rexWR2M1|{$sub*8+$parm, !RRMM($p2,$p1)}|PAR 3|{rmem, wflags}" +k.prefixclass = l[4832] +end +do local k = l[4990] +k[1] = l[4991] +k[2] = l[4992] +k.id = 146 +k.sig = "{{mode = i,type = GR64,name = p2}, {mode = i,type = i64*,name = p1}}" +end +do local k = l[4991] +k.mode = "i" +k.type = "GR64" +k.name = "p2" +end +do local k = l[4992] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[4993] +k.orgnames = l[2855] +k.opclass = l[4994] +k.operands = l[4840] +k.name = "CMP_M64I" +k.sub = 7 +end +do local k = l[4994] +k.isa = l[4819] +k.code = l[3480] +k.id = 828 +k.layout = l[3470] +k.impregs = l[697] +k.flags = l[699] +k.parm = 129 +k.sig = "{x64}|{{MemId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|rexWM1|{$parm, !RRMM($sub,$p1), !I32_8($p2)}|PAR81|{rmem, wflags}" +k.prefixclass = l[4838] +end +do local k = l[4995] +k.orgnames = l[41] +k.opclass = l[4996] +k.operands = l[4774] +k.name = "CMP_MD" +k.sub = 7 +end +do local k = l[4996] +k.isa = l[4819] +k.code = l[3442] +k.id = 844 +k.layout = l[694] +k.impregs = l[697] +k.flags = l[699] +k.parm = 1 +k.sig = "{x64}|{{MemId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|rexWR2M1|{$sub*8+$parm, !RRMM($p2,$p1)}|PAR 1|{rmem, wflags}" +k.prefixclass = l[4832] +end +do local k = l[4997] +k.orgnames = l[2855] +k.opclass = l[4998] +k.operands = l[4999] +k.name = "CMP_RAX_I" +k.sub = 7 +end +do local k = l[4998] +k.isa = l[4819] +k.code = l[3450] +k.id = 823 +k.layout = l[2603] +k.impregs = l[3739] +k.flags = l[709] +k.parm = 5 +k.sig = "{x64}|{{Imm, use, p1, 0}}|{{rax, use}, {FLAGS, def}}|rexW|{$sub*8+$parm, !I32_8($p1))}|PAR 5|{wflags}" +k.prefixclass = l[4847] +end +do local k = l[4999] +k[1] = l[5000] +k[2] = l[5001] +k.id = 77 +k.sig = "{{mode = i,type = GR64,name = p2,fixed = rax}, {mode = i,type = i32,name = p1}}" +end +do local k = l[5000] +k.mode = "i" +k.type = "GR64" +k.name = "p2" +k.fixed = "rax" +end +do local k = l[5001] +k.mode = "i" +k.type = "i32" +k.name = "p1" +end +do local k = l[5002] +k.orgnames = l[41] +k.opclass = l[5003] +k.operands = l[5004] +k.name = "CQO" +end +do local k = l[5003] +k.isa = l[4819] +k.code = l[3698] +k.id = 920 +k.layout = l[1961] +k.impregs = l[3705] +k.flags = l[27] +k.parm = 153 +k.sig = "{x64}|{}|{{rdx, def}, {rax, use}}|rexW|{$parm}|PAR99|{}" +k.prefixclass = l[4847] +end +do local k = l[5004] +k[1] = l[5005] +k[2] = l[5006] +k.id = 172 +k.sig = "{{mode = o,type = GR64,name = p1,fixed = rdx}, {mode = i,type = GR64,name = p2,fixed = rax}}" +end +do local k = l[5005] +k.mode = "o" +k.type = "GR64" +k.name = "p1" +k.fixed = "rdx" +end +do local k = l[5006] +k.mode = "i" +k.type = "GR64" +k.name = "p2" +k.fixed = "rax" +end +do local k = l[5007] +k.orgnames = l[2566] +k.opclass = l[5008] +k.operands = l[4787] +k.name = "DEC_D" +k.sub = 1 +end +do local k = l[5008] +k.isa = l[4819] +k.code = l[2016] +k.id = 884 +k.layout = l[2569] +k.impregs = l[3428] +k.flags = l[3713] +k.parm = 255 +k.sig = "{x64}|{{RegId, def, p1}}|{{FLAGS, use/def}}|rexWB1|{$parm, !RRMR($sub,$p1)}|PARFF|{wflag_c}" +k.prefixclass = l[4826] +end +do local k = l[5009] +k.orgnames = l[2566] +k.opclass = l[5010] +k.operands = l[5011] +k.name = "DEC_M64" +k.sub = 1 +end +do local k = l[5010] +k.isa = l[4819] +k.code = l[2011] +k.id = 858 +k.layout = l[2099] +k.impregs = l[3428] +k.flags = l[3881] +k.parm = 255 +k.sig = "{x64}|{{MemId, use, p1}}|{{FLAGS, use/def}}|rexWM1|{$parm, !RRMM($sub,$p1)}|PARFF|{rmem, rwmem, wflag_c, wmem}" +k.prefixclass = l[4838] +end +do local k = l[5011] +k[1] = l[5012] +k.id = 147 +k.sig = "{{mode = i,type = i64*,name = p1}}" +end +do local k = l[5012] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[5013] +k.orgnames = l[3899] +k.opclass = l[5014] +k.operands = l[5015] +k.name = "DIV_D" +k.sub = 6 +end +do local k = l[5014] +k.isa = l[4819] +k.code = l[2016] +k.id = 910 +k.layout = l[3893] +k.impregs = l[3901] +k.flags = l[709] +k.parm = 247 +k.sig = "{x64}|{{RegId, use, p1}}|{{rax, use/def}, {rdx, use/def}, {FLAGS, def}}|rexWB1|{$parm, !RRMR($sub,$p1)}|PARF7|{wflags}" +k.prefixclass = l[4826] +end +do local k = l[5015] +k[1] = l[5016] +k[2] = l[5017] +k[3] = l[5018] +k.id = 80 +k.sig = "{{mode = io,type = GR64,name = p2,fixed = rax}, {mode = io,type = GR64,name = p3,fixed = rdx}, {mode = i,type = GR64,name = p1}}" +end +do local k = l[5016] +k.mode = "io" +k.type = "GR64" +k.name = "p2" +k.fixed = "rax" +end +do local k = l[5017] +k.mode = "io" +k.type = "GR64" +k.name = "p3" +k.fixed = "rdx" +end +do local k = l[5018] +k.mode = "i" +k.type = "GR64" +k.name = "p1" +end +do local k = l[5019] +k.orgnames = l[3899] +k.opclass = l[5020] +k.operands = l[5021] +k.name = "DIV_M64" +k.sub = 6 +end +do local k = l[5020] +k.isa = l[4819] +k.code = l[2011] +k.id = 860 +k.layout = l[2099] +k.impregs = l[3901] +k.flags = l[699] +k.parm = 247 +k.sig = "{x64}|{{MemId, use, p1}}|{{rax, use/def}, {rdx, use/def}, {FLAGS, def}}|rexWM1|{$parm, !RRMM($sub,$p1)}|PARF7|{rmem, wflags}" +k.prefixclass = l[4838] +end +do local k = l[5021] +k[1] = l[5022] +k[2] = l[5023] +k[3] = l[5024] +k.id = 155 +k.sig = "{{mode = io,type = GR64,name = p2,fixed = rax}, {mode = io,type = GR64,name = p3,fixed = rdx}, {mode = i,type = i64*,name = p1}}" +end +do local k = l[5022] +k.mode = "io" +k.type = "GR64" +k.name = "p2" +k.fixed = "rax" +end +do local k = l[5023] +k.mode = "io" +k.type = "GR64" +k.name = "p3" +k.fixed = "rdx" +end +do local k = l[5024] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[5025] +k.orgnames = l[2096] +k.opclass = l[5026] +k.operands = l[5027] +k.name = "ICALL_D_x64" +k.sub = 2 +end +do local k = l[5026] +k.isa = l[4819] +k.code = l[2016] +k.id = 914 +k.layout = l[3893] +k.impregs = l[12] +k.flags = l[3684] +k.parm = 255 +k.sig = "{x64}|{{RegId, use, p1}}|{}|rexB1|{$parm, !RRMR($sub,$p1)}|PARFF|{cf_call}" +k.prefixclass = l[3436] +end +do local k = l[5027] +k[1] = l[5028] +k.id = 94 +k.sig = "{{mode = i,type = GR64,name = p1}}" +end +do local k = l[5028] +k.mode = "i" +k.type = "GR64" +k.name = "p1" +end +do local k = l[5029] +k.orgnames = l[2096] +k.opclass = l[5030] +k.operands = l[5011] +k.name = "ICALL_M64_x64" +k.sub = 2 +end +do local k = l[5030] +k.isa = l[4819] +k.code = l[2011] +k.id = 866 +k.layout = l[2099] +k.impregs = l[12] +k.flags = l[4594] +k.parm = 255 +k.sig = "{x64}|{{MemId, use, p1}}|{}|rexM1|{$parm, !RRMM($sub,$p1)}|PARFF|{cf_call, rmem}" +k.prefixclass = l[3481] +end +do local k = l[5031] +k.orgnames = l[3899] +k.opclass = l[5014] +k.operands = l[5015] +k.name = "IDIV_D" +k.sub = 7 +end +do local k = l[5032] +k.orgnames = l[3899] +k.opclass = l[5020] +k.operands = l[5021] +k.name = "IDIV_M64" +k.sub = 7 +end +do local k = l[5033] +k.orgnames = l[2096] +k.opclass = l[5034] +k.operands = l[5027] +k.name = "IJMP_D_x64" +k.sub = 4 +end +do local k = l[5034] +k.isa = l[4819] +k.code = l[2016] +k.id = 915 +k.layout = l[3893] +k.impregs = l[12] +k.flags = l[4031] +k.parm = 255 +k.sig = "{x64}|{{RegId, use, p1}}|{}|rexB1|{$parm, !RRMR($sub,$p1)}|PARFF|{cf_jmp}" +k.prefixclass = l[3436] +end +do local k = l[5035] +k.orgnames = l[2096] +k.opclass = l[5036] +k.operands = l[5011] +k.name = "IJMP_M64_x64" +k.sub = 4 +end +do local k = l[5036] +k.isa = l[4819] +k.code = l[2011] +k.id = 867 +k.layout = l[2099] +k.impregs = l[12] +k.flags = l[4601] +k.parm = 255 +k.sig = "{x64}|{{MemId, use, p1}}|{}|rexM1|{$parm, !RRMM($sub,$p1)}|PARFF|{cf_jmp, rmem}" +k.prefixclass = l[3481] +end +do local k = l[5037] +k.orgnames = l[3944] +k.opclass = l[5038] +k.operands = l[5039] +k.name = "IMUL_D" +k.sub = 5 +end +do local k = l[5038] +k.isa = l[4819] +k.code = l[2016] +k.id = 909 +k.layout = l[3893] +k.impregs = l[3966] +k.flags = l[709] +k.parm = 247 +k.sig = "{x64}|{{RegId, use, p1}}|{{rax, use/def}, {rdx, def}, {FLAGS, def}}|rexWB1|{$parm, !RRMR($sub,$p1)}|PARF7|{wflags}" +k.prefixclass = l[4826] +end +do local k = l[5039] +k[1] = l[5040] +k[2] = l[5041] +k[3] = l[5042] +k.id = 81 +k.sig = "{{mode = io,type = GR64,name = p2,fixed = rax}, {mode = o,type = GR64,name = p3,fixed = rdx}, {mode = i,type = GR64,name = p1}}" +end +do local k = l[5040] +k.mode = "io" +k.type = "GR64" +k.name = "p2" +k.fixed = "rax" +end +do local k = l[5041] +k.mode = "o" +k.type = "GR64" +k.name = "p3" +k.fixed = "rdx" +end +do local k = l[5042] +k.mode = "i" +k.type = "GR64" +k.name = "p1" +end +do local k = l[5043] +k.orgnames = l[41] +k.opclass = l[5044] +k.operands = l[4821] +k.name = "IMUL_DD" +end +do local k = l[5044] +k.isa = l[4819] +k.code = l[1016] +k.id = 903 +k.layout = l[99] +k.impregs = l[697] +k.flags = l[709] +k.parm = 175 +k.sig = "{x64}|{{RegId, use, p1}, {RegId, use/def, p2}}|{{FLAGS, def}}|rexWR2B1|{$parm, !RRMR($p2,$p1)}|PARAF|{wflags}" +k.prefixclass = l[4820] +end +do local k = l[5045] +k.orgnames = l[62] +k.opclass = l[5046] +k.operands = l[5047] +k.name = "IMUL_DDI" +end +do local k = l[5046] +k.isa = l[4819] +k.code = l[3997] +k.id = 894 +k.layout = l[77] +k.impregs = l[697] +k.flags = l[709] +k.parm = 105 +k.sig = "{x64}|{{RegId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{{FLAGS, def}}|rexWR2B1|{$parm, !RRMR($p2,$p1), !I32_8($p3)}|PAR69|{wflags}" +k.prefixclass = l[4820] +end +do local k = l[5047] +k[1] = l[5048] +k[2] = l[5049] +k[3] = l[5050] +k.id = 82 +k.sig = "{{mode = o,type = GR64,name = p2}, {mode = i,type = GR64,name = p1}, {mode = i,type = i32,name = p3}}" +end +do local k = l[5048] +k.mode = "o" +k.type = "GR64" +k.name = "p2" +end +do local k = l[5049] +k.mode = "i" +k.type = "GR64" +k.name = "p1" +end +do local k = l[5050] +k.mode = "i" +k.type = "i32" +k.name = "p3" +end +do local k = l[5051] +k.orgnames = l[41] +k.opclass = l[5052] +k.operands = l[4833] +k.name = "IMUL_DM" +end +do local k = l[5052] +k.isa = l[4819] +k.code = l[1000] +k.id = 850 +k.layout = l[89] +k.impregs = l[697] +k.flags = l[699] +k.parm = 175 +k.sig = "{x64}|{{MemId, use, p1}, {RegId, use/def, p2}}|{{FLAGS, def}}|rexWR2M1|{$parm, !RRMM($p2,$p1)}|PARAF|{rmem, wflags}" +k.prefixclass = l[4832] +end +do local k = l[5053] +k.orgnames = l[62] +k.opclass = l[5054] +k.operands = l[5055] +k.name = "IMUL_DMI" +end +do local k = l[5054] +k.isa = l[4819] +k.code = l[3988] +k.id = 833 +k.layout = l[65] +k.impregs = l[697] +k.flags = l[699] +k.parm = 105 +k.sig = "{x64}|{{MemId, use, p1}, {RegId, def, p2}, {Imm, use, p3, 0}}|{{FLAGS, def}}|rexWR2M1|{$parm, !RRMM($p2,$p1), !I32_8($p3)}|PAR69|{rmem, wflags}" +k.prefixclass = l[4832] +end +do local k = l[5055] +k[1] = l[5056] +k[2] = l[5057] +k[3] = l[5058] +k.id = 157 +k.sig = "{{mode = o,type = GR64,name = p2}, {mode = i,type = i64*,name = p1}, {mode = i,type = i32,name = p3}}" +end +do local k = l[5056] +k.mode = "o" +k.type = "GR64" +k.name = "p2" +end +do local k = l[5057] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[5058] +k.mode = "i" +k.type = "i32" +k.name = "p3" +end +do local k = l[5059] +k.orgnames = l[3944] +k.opclass = l[5060] +k.operands = l[5061] +k.name = "IMUL_M64" +k.sub = 5 +end +do local k = l[5060] +k.isa = l[4819] +k.code = l[2011] +k.id = 859 +k.layout = l[2099] +k.impregs = l[3966] +k.flags = l[699] +k.parm = 247 +k.sig = "{x64}|{{MemId, use, p1}}|{{rax, use/def}, {rdx, def}, {FLAGS, def}}|rexWM1|{$parm, !RRMM($sub,$p1)}|PARF7|{rmem, wflags}" +k.prefixclass = l[4838] +end +do local k = l[5061] +k[1] = l[5062] +k[2] = l[5063] +k[3] = l[5064] +k.id = 156 +k.sig = "{{mode = io,type = GR64,name = p2,fixed = rax}, {mode = o,type = GR64,name = p3,fixed = rdx}, {mode = i,type = i64*,name = p1}}" +end +do local k = l[5062] +k.mode = "io" +k.type = "GR64" +k.name = "p2" +k.fixed = "rax" +end +do local k = l[5063] +k.mode = "o" +k.type = "GR64" +k.name = "p3" +k.fixed = "rdx" +end +do local k = l[5064] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[5065] +k.orgnames = l[2566] +k.opclass = l[5008] +k.operands = l[4787] +k.name = "INC_D" +k.sub = 0 +end +do local k = l[5066] +k.orgnames = l[2566] +k.opclass = l[5010] +k.operands = l[5011] +k.name = "INC_M64" +k.sub = 0 +end +do local k = l[5067] +k.orgnames = l[4058] +k.opclass = l[5068] +k.operands = l[5071] +k.name = "LEA_DDDII" +end +do local k = l[5068] +k.isa = l[4819] +k.code = l[4060] +k.id = 878 +k.layout = l[4061] +k.impregs = l[12] +k.flags = l[27] +k.parm = 141 +k.sig = "{x64}|{{RegId, def, p1}, {RegId, use, p2}, {RegId, use, p3}, {Imm, use, p4, 0}, {Imm, use, p5, 0}}|{}|leaWR1B2I3|{$parm, !RRMLEA($p1,$p2,$p3,$p4,$p5)}|PAR8D|{}" +k.prefixclass = l[5069] +end +do local k = l[5069] +k.extopcode = "" +k.rex = l[5070] +k.id = 34 +k.pref = "" +k.sig = "leaWR1B2I3" +end +do local k = l[5070] +k.r64 = "1" +k.rmi = "p3" +k.sig = "{r64 = 1,rmi = p3,reg = p1,mode = lea,rmb = p2}" +k.reg = "p1" +k.mode = "lea" +k.id = 14 +k.rmb = "p2" +end +do local k = l[5071] +k[1] = l[5072] +k[2] = l[5073] +k[3] = l[5074] +k[4] = l[5075] +k[5] = l[5076] +k.id = 93 +k.sig = "{{mode = o,type = GR64,name = p1}, {mode = i,type = GR64,name = p2}, {mode = i,type = GR64,name = p3}, {mode = i,type = i8,name = p4}, {mode = i,type = i32,name = p5}}" +end +do local k = l[5072] +k.mode = "o" +k.type = "GR64" +k.name = "p1" +end +do local k = l[5073] +k.mode = "i" +k.type = "GR64" +k.name = "p2" +end +do local k = l[5074] +k.mode = "i" +k.type = "GR64" +k.name = "p3" +end +do local k = l[5075] +k.mode = "i" +k.type = "i8" +k.name = "p4" +end +do local k = l[5076] +k.mode = "i" +k.type = "i32" +k.name = "p5" +end +do local k = l[5077] +k.orgnames = l[41] +k.opclass = l[5078] +k.operands = l[5079] +k.name = "LEA_DM" +end +do local k = l[5078] +k.isa = l[4819] +k.code = l[1000] +k.id = 838 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[27] +k.parm = 141 +k.sig = "{x64}|{{MemId, use, p1}, {RegId, def, p2}}|{}|rexWR2M1|{$parm, !RRMM($p2,$p1)}|PAR8D|{}" +k.prefixclass = l[4832] +end +do local k = l[5079] +k[1] = l[5080] +k[2] = l[5081] +k.id = 158 +k.sig = "{{mode = o,type = GR64,name = p2}, {mode = i,type = i8*,name = p1}}" +end +do local k = l[5080] +k.mode = "o" +k.type = "GR64" +k.name = "p2" +end +do local k = l[5081] +k.mode = "i" +k.type = "i8*" +k.name = "p1" +end +do local k = l[5082] +k.orgnames = l[41] +k.opclass = l[5083] +k.operands = l[1146] +k.sub = 30 +k.name = "MOVD_M32_X" +end +do local k = l[5083] +k.isa = l[4819] +k.code = l[7] +k.id = 848 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 96 +k.sig = "{x64}|{{MemId, use, p1}, {RegId, use, p2}}|{}|66-rexR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PAR60|{wmem}" +k.prefixclass = l[2140] +end +do local k = l[5084] +k.orgnames = l[41] +k.opclass = l[5085] +k.operands = l[4631] +k.sub = 30 +k.name = "MOVD_W_X" +end +do local k = l[5085] +k.isa = l[4819] +k.code = l[22] +k.id = 881 +k.layout = l[3625] +k.impregs = l[12] +k.flags = l[27] +k.parm = 96 +k.sig = "{x64}|{{RegId, def, p1}, {RegId, use, p2}}|{}|66-rexR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR60|{}" +k.prefixclass = l[2133] +end +do local k = l[5086] +k.orgnames = l[41] +k.opclass = l[5087] +k.operands = l[4637] +k.sub = 30 +k.name = "MOVQ_DX" +end +do local k = l[5087] +k.isa = l[4819] +k.code = l[22] +k.id = 882 +k.layout = l[3625] +k.impregs = l[12] +k.flags = l[27] +k.parm = 96 +k.sig = "{x64}|{{RegId, def, p1}, {RegId, use, p2}}|{}|66-rexWR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR60|{}" +k.prefixclass = l[5088] +end +do local k = l[5088] +k.extopcode = "0f" +k.rex = l[2654] +k.id = 136 +k.pref = "66" +k.sig = "66-rexWR2B1-0f" +end +do local k = l[5089] +k.orgnames = l[41] +k.opclass = l[5090] +k.operands = l[4642] +k.sub = 14 +k.name = "MOVQ_XD" +end +do local k = l[5090] +k.isa = l[4819] +k.code = l[22] +k.id = 896 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 96 +k.sig = "{x64}|{{RegId, use, p1}, {RegId, def, p2}}|{}|66-rexWR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PAR60|{}" +k.prefixclass = l[5088] +end +do local k = l[5091] +k.orgnames = l[41] +k.opclass = l[5092] +k.operands = l[5093] +k.sub = 31 +k.name = "MOVSX_DB" +end +do local k = l[5092] +k.isa = l[4819] +k.code = l[22] +k.id = 897 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 160 +k.sig = "{x64}|{{RegId, use, p1}, {RegId, def, p2}}|{}|rexWR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PARA0|{}" +k.prefixclass = l[4706] +end +do local k = l[5093] +k[1] = l[5094] +k[2] = l[5095] +k.id = 86 +k.sig = "{{mode = o,type = GR64,name = p2}, {mode = i,type = GR8,name = p1}}" +end +do local k = l[5094] +k.mode = "o" +k.type = "GR64" +k.name = "p2" +end +do local k = l[5095] +k.mode = "i" +k.type = "GR8" +k.name = "p1" +end +do local k = l[5096] +k.orgnames = l[41] +k.opclass = l[5092] +k.operands = l[5097] +k.sub = 31 +k.name = "MOVSX_DH" +end +do local k = l[5097] +k[1] = l[5098] +k[2] = l[5099] +k.id = 87 +k.sig = "{{mode = o,type = GR64,name = p2}, {mode = i,type = GR16,name = p1}}" +end +do local k = l[5098] +k.mode = "o" +k.type = "GR64" +k.name = "p2" +end +do local k = l[5099] +k.mode = "i" +k.type = "GR16" +k.name = "p1" +end +do local k = l[5100] +k.orgnames = l[41] +k.opclass = l[5101] +k.operands = l[5102] +k.sub = 31 +k.name = "MOVSX_DM16" +end +do local k = l[5101] +k.isa = l[4819] +k.code = l[7] +k.id = 835 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 160 +k.sig = "{x64}|{{MemId, use, p1}, {RegId, def, p2}}|{}|rexWR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARA0|{rmem}" +k.prefixclass = l[4709] +end +do local k = l[5102] +k[1] = l[5103] +k[2] = l[5104] +k.id = 159 +k.sig = "{{mode = o,type = GR64,name = p2}, {mode = i,type = i16*,name = p1}}" +end +do local k = l[5103] +k.mode = "o" +k.type = "GR64" +k.name = "p2" +end +do local k = l[5104] +k.mode = "i" +k.type = "i16*" +k.name = "p1" +end +do local k = l[5105] +k.orgnames = l[41] +k.opclass = l[5106] +k.operands = l[850] +k.name = "MOVSX_DM32" +end +do local k = l[5106] +k.isa = l[4819] +k.code = l[1000] +k.id = 836 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 99 +k.sig = "{x64}|{{MemId, use, p1}, {RegId, def, p2}}|{}|rexWR2M1|{$parm, !RRMM($p2,$p1)}|PAR63|{rmem}" +k.prefixclass = l[4832] +end +do local k = l[5107] +k.orgnames = l[41] +k.opclass = l[5101] +k.operands = l[5079] +k.sub = 31 +k.name = "MOVSX_DM8" +end +do local k = l[5108] +k.orgnames = l[41] +k.opclass = l[5109] +k.operands = l[5110] +k.name = "MOVSX_DW" +end +do local k = l[5109] +k.isa = l[4819] +k.code = l[1016] +k.id = 898 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 99 +k.sig = "{x64}|{{RegId, use, p1}, {RegId, def, p2}}|{}|rexWR2B1|{$parm, !RRMR($p2,$p1)}|PAR63|{}" +k.prefixclass = l[4820] +end +do local k = l[5110] +k[1] = l[5111] +k[2] = l[5112] +k.id = 95 +k.sig = "{{mode = o,type = GR64,name = p2}, {mode = i,type = GR32,name = p1}}" +end +do local k = l[5111] +k.mode = "o" +k.type = "GR64" +k.name = "p2" +end +do local k = l[5112] +k.mode = "i" +k.type = "GR32" +k.name = "p1" +end +do local k = l[5113] +k.orgnames = l[41] +k.opclass = l[5092] +k.operands = l[5093] +k.sub = 23 +k.name = "MOVZX_DB" +end +do local k = l[5114] +k.orgnames = l[41] +k.opclass = l[5092] +k.operands = l[5097] +k.sub = 23 +k.name = "MOVZX_DH" +end +do local k = l[5115] +k.orgnames = l[41] +k.opclass = l[5101] +k.operands = l[5102] +k.sub = 23 +k.name = "MOVZX_DM16" +end +do local k = l[5116] +k.orgnames = l[41] +k.opclass = l[5101] +k.operands = l[5079] +k.sub = 23 +k.name = "MOVZX_DM8" +end +do local k = l[5117] +k.orgnames = l[41] +k.opclass = l[5118] +k.operands = l[4693] +k.name = "MOV_DD" +end +do local k = l[5118] +k.isa = l[4819] +k.code = l[1016] +k.id = 899 +k.layout = l[53] +k.impregs = l[12] +k.flags = l[27] +k.parm = 139 +k.sig = "{x64}|{{RegId, use, p1}, {RegId, def, p2}}|{}|rexWR2B1|{$parm, !RRMR($p2,$p1)}|PAR8B|{}" +k.prefixclass = l[4820] +end +do local k = l[5119] +k.orgnames = l[2855] +k.opclass = l[5120] +k.operands = l[5126] +k.name = "MOV_DI" +end +do local k = l[5120] +k.isa = l[4819] +k.code = l[5121] +k.id = 869 +k.layout = l[5122] +k.impregs = l[12] +k.flags = l[27] +k.parm = 184 +k.sig = "{x64}|{{RegId, def, p1}, {Imm, use, p2, 0}, {Imm, use, p2, 32}}|{}|rexWB1|{$parm+($p1&7), !I64($p2)}|PARB8|{}" +k.prefixclass = l[4826] +end +do local k = l[5121] +k[1] = "$parm+($p1&7)" +k[2] = "!I64($p2)" +k.id = 23 +k.sig = "{$parm+($p1&7), !I64($p2)}" +end +do local k = l[5122] +k[1] = l[5123] +k[2] = l[5124] +k[3] = l[5125] +k.id = 21 +k.sig = "{{RegId, def, p1}, {Imm, use, p2, 0}, {Imm, use, p2, 32}}" +end +do local k = l[5123] +k[1] = "RegId" +k[2] = "def" +k[3] = "p1" +end +do local k = l[5124] +k[1] = "Imm" +k[2] = "use" +k[3] = "p2" +k[4] = 0 +end +do local k = l[5125] +k[1] = "Imm" +k[2] = "use" +k[3] = "p2" +k[4] = 32 +end +do local k = l[5126] +k[1] = l[5127] +k[2] = l[5128] +k.id = 76 +k.sig = "{{mode = o,type = GR64,name = p1}, {mode = i,type = i64,name = p2}}" +end +do local k = l[5127] +k.mode = "o" +k.type = "GR64" +k.name = "p1" +end +do local k = l[5128] +k.mode = "i" +k.type = "i64" +k.name = "p2" +end +do local k = l[5129] +k.sub = 0 +k.orgnames = l[2855] +k.opclass = l[5130] +k.operands = l[4827] +k.name = "MOV_DI32S" +end +do local k = l[5130] +k.isa = l[4819] +k.code = l[4515] +k.id = 876 +k.layout = l[3503] +k.impregs = l[12] +k.flags = l[27] +k.parm = 199 +k.sig = "{x64}|{{RegId, def, p1}, {Imm, use, p2, 0}}|{}|rexWB1|{$parm, !RRMR($sub,$p1), !I32($p2)}|PARC7|{}" +k.prefixclass = l[4826] +end +do local k = l[5131] +k.orgnames = l[2855] +k.opclass = l[5132] +k.operands = l[4827] +k.name = "MOV_DI32U" +end +do local k = l[5132] +k.isa = l[4819] +k.code = l[4126] +k.id = 875 +k.layout = l[3503] +k.impregs = l[12] +k.flags = l[27] +k.parm = 184 +k.sig = "{x64}|{{RegId, def, p1}, {Imm, use, p2, 0}}|{}|rexB1|{$parm+($p1&7), !I32($p2)}|PARB8|{}" +k.prefixclass = l[3436] +end +do local k = l[5133] +k.orgnames = l[41] +k.opclass = l[5134] +k.operands = l[791] +k.name = "MOV_DM" +end +do local k = l[5134] +k.isa = l[4819] +k.code = l[1000] +k.id = 837 +k.layout = l[43] +k.impregs = l[12] +k.flags = l[13] +k.parm = 139 +k.sig = "{x64}|{{MemId, use, p1}, {RegId, def, p2}}|{}|rexWR2M1|{$parm, !RRMM($p2,$p1)}|PAR8B|{rmem}" +k.prefixclass = l[4832] +end +do local k = l[5135] +k.orgnames = l[2855] +k.opclass = l[5136] +k.operands = l[4840] +k.name = "MOV_M64I" +k.sub = 0 +end +do local k = l[5136] +k.isa = l[4819] +k.code = l[4115] +k.id = 832 +k.layout = l[3470] +k.impregs = l[12] +k.flags = l[179] +k.parm = 199 +k.sig = "{x64}|{{MemId, use, p1}, {Imm, use, p2, 0}}|{}|rexWM1|{$parm, !RRMM($sub,$p1), !I32($p2)}|PARC7|{wmem}" +k.prefixclass = l[4838] +end +do local k = l[5137] +k.orgnames = l[41] +k.opclass = l[5138] +k.operands = l[4774] +k.name = "MOV_MD" +end +do local k = l[5138] +k.isa = l[4819] +k.code = l[1000] +k.id = 849 +k.layout = l[694] +k.impregs = l[12] +k.flags = l[179] +k.parm = 137 +k.sig = "{x64}|{{MemId, use, p1}, {RegId, use, p2}}|{}|rexWR2M1|{$parm, !RRMM($p2,$p1)}|PAR89|{wmem}" +k.prefixclass = l[4832] +end +do local k = l[5139] +k.orgnames = l[3944] +k.opclass = l[5038] +k.operands = l[5039] +k.name = "MUL_D" +k.sub = 4 +end +do local k = l[5140] +k.orgnames = l[3944] +k.opclass = l[5060] +k.operands = l[5061] +k.name = "MUL_M64" +k.sub = 4 +end +do local k = l[5141] +k.orgnames = l[2566] +k.opclass = l[5142] +k.operands = l[4787] +k.name = "NEG_D" +k.sub = 3 +end +do local k = l[5142] +k.isa = l[4819] +k.code = l[2016] +k.id = 890 +k.layout = l[2569] +k.impregs = l[12] +k.flags = l[27] +k.parm = 247 +k.sig = "{x64}|{{RegId, def, p1}}|{}|rexWB1|{$parm, !RRMR($sub,$p1)}|PARF7|{}" +k.prefixclass = l[4826] +end +do local k = l[5143] +k.orgnames = l[2566] +k.opclass = l[5144] +k.operands = l[5011] +k.name = "NEG_M64" +k.sub = 3 +end +do local k = l[5144] +k.isa = l[4819] +k.code = l[2011] +k.id = 868 +k.layout = l[2099] +k.impregs = l[12] +k.flags = l[2101] +k.parm = 247 +k.sig = "{x64}|{{MemId, use, p1}}|{}|rexWM1|{$parm, !RRMM($sub,$p1)}|PARF7|{rmem, rwmem, wmem}" +k.prefixclass = l[4838] +end +do local k = l[5145] +k.orgnames = l[2566] +k.opclass = l[5146] +k.operands = l[4787] +k.name = "NOT_D" +k.sub = 2 +end +do local k = l[5146] +k.isa = l[4819] +k.code = l[2016] +k.id = 883 +k.layout = l[2569] +k.impregs = l[697] +k.flags = l[709] +k.parm = 247 +k.sig = "{x64}|{{RegId, def, p1}}|{{FLAGS, def}}|rexWB1|{$parm, !RRMR($sub,$p1)}|PARF7|{wflags}" +k.prefixclass = l[4826] +end +do local k = l[5147] +k.orgnames = l[2566] +k.opclass = l[5148] +k.operands = l[5011] +k.name = "NOT_M64" +k.sub = 2 +end +do local k = l[5148] +k.isa = l[4819] +k.code = l[2011] +k.id = 857 +k.layout = l[2099] +k.impregs = l[697] +k.flags = l[3536] +k.parm = 247 +k.sig = "{x64}|{{MemId, use, p1}}|{{FLAGS, def}}|rexWM1|{$parm, !RRMM($sub,$p1)}|PARF7|{rmem, rwmem, wflags, wmem}" +k.prefixclass = l[4838] +end +do local k = l[5149] +k.orgnames = l[41] +k.opclass = l[4853] +k.operands = l[4821] +k.name = "OR_DD" +k.sub = 1 +end +do local k = l[5150] +k.orgnames = l[2855] +k.opclass = l[4855] +k.operands = l[4827] +k.name = "OR_DI" +k.sub = 1 +end +do local k = l[5151] +k.orgnames = l[41] +k.opclass = l[4857] +k.operands = l[4833] +k.name = "OR_DM" +k.sub = 1 +end +do local k = l[5152] +k.orgnames = l[2855] +k.opclass = l[4859] +k.operands = l[4840] +k.name = "OR_M64I" +k.sub = 1 +end +do local k = l[5153] +k.orgnames = l[41] +k.opclass = l[4861] +k.operands = l[4774] +k.name = "OR_MD" +k.sub = 1 +end +do local k = l[5154] +k.orgnames = l[2855] +k.opclass = l[4863] +k.operands = l[4849] +k.name = "OR_RAX_I" +k.sub = 1 +end +do local k = l[5155] +k.orgnames = l[4607] +k.opclass = l[5156] +k.operands = l[5157] +k.name = "POP_D_x64" +end +do local k = l[5156] +k.isa = l[4819] +k.code = l[3585] +k.id = 887 +k.layout = l[2569] +k.impregs = l[3682] +k.flags = l[4200] +k.parm = 88 +k.sig = "{x64}|{{RegId, def, p1}}|{{rsp, use/def}}|rexB1|{$parm+($p1&7)}|PAR58|{usemem}" +k.prefixclass = l[3436] +end +do local k = l[5157] +k[1] = l[5158] +k[2] = l[5159] +k.id = 191 +k.sig = "{{mode = io,type = GR32,name = p2,fixed = rsp}, {mode = o,type = GR64,name = p1}}" +end +do local k = l[5158] +k.mode = "io" +k.type = "GR32" +k.name = "p2" +k.fixed = "rsp" +end +do local k = l[5159] +k.mode = "o" +k.type = "GR64" +k.name = "p1" +end +do local k = l[5160] +k.orgnames = l[4607] +k.opclass = l[5161] +k.operands = l[4610] +k.name = "POP_M64_x64" +k.sub = 0 +end +do local k = l[5161] +k.isa = l[4819] +k.code = l[2011] +k.id = 864 +k.layout = l[2099] +k.impregs = l[3682] +k.flags = l[4609] +k.parm = 143 +k.sig = "{x64}|{{MemId, use, p1}}|{{rsp, use/def}}|rexM1|{$parm, !RRMM($sub,$p1)}|PAR8F|{usemem, wmem}" +k.prefixclass = l[3481] +end +do local k = l[5162] +k.orgnames = l[4607] +k.opclass = l[5163] +k.operands = l[5164] +k.name = "PUSH_D_x64" +end +do local k = l[5163] +k.isa = l[4819] +k.code = l[3585] +k.id = 911 +k.layout = l[3893] +k.impregs = l[3682] +k.flags = l[4200] +k.parm = 80 +k.sig = "{x64}|{{RegId, use, p1}}|{{rsp, use/def}}|rexB1|{$parm+($p1&7)}|PAR50|{usemem}" +k.prefixclass = l[3436] +end +do local k = l[5164] +k[1] = l[5165] +k[2] = l[5166] +k.id = 190 +k.sig = "{{mode = io,type = GR32,name = p2,fixed = rsp}, {mode = i,type = GR64,name = p1}}" +end +do local k = l[5165] +k.mode = "io" +k.type = "GR32" +k.name = "p2" +k.fixed = "rsp" +end +do local k = l[5166] +k.mode = "i" +k.type = "GR64" +k.name = "p1" +end +do local k = l[5167] +k.orgnames = l[4607] +k.opclass = l[5168] +k.operands = l[5169] +k.name = "PUSH_M64_x64" +k.sub = 6 +end +do local k = l[5168] +k.isa = l[4819] +k.code = l[2011] +k.id = 865 +k.layout = l[2099] +k.impregs = l[3682] +k.flags = l[4620] +k.parm = 255 +k.sig = "{x64}|{{MemId, use, p1}}|{{rsp, use/def}}|rexM1|{$parm, !RRMM($sub,$p1)}|PARFF|{rmem, usemem}" +k.prefixclass = l[3481] +end +do local k = l[5169] +k[1] = l[5170] +k[2] = l[5171] +k.id = 192 +k.sig = "{{mode = io,type = GR32,name = p2,fixed = rsp}, {mode = i,type = i64*,name = p1}}" +end +do local k = l[5170] +k.mode = "io" +k.type = "GR32" +k.name = "p2" +k.fixed = "rsp" +end +do local k = l[5171] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[5172] +k.orgnames = l[4202] +k.opclass = l[5173] +k.operands = l[4887] +k.name = "RCL_DI" +k.sub = 2 +end +do local k = l[5173] +k.isa = l[4819] +k.code = l[4204] +k.id = 874 +k.layout = l[3503] +k.impregs = l[3428] +k.flags = l[3415] +k.parm = 193 +k.sig = "{x64}|{{RegId, def, p1}, {Imm, use, p2, 0}}|{{FLAGS, use/def}}|rexWB1|{$parm, !RRMR($sub,$p1), !I8_1($p2)}|PARC1|{rflag_c, wflags}" +k.prefixclass = l[4826] +end +do local k = l[5174] +k.orgnames = l[4202] +k.opclass = l[5175] +k.operands = l[5176] +k.name = "RCL_D_CL" +k.sub = 2 +end +do local k = l[5175] +k.isa = l[4819] +k.code = l[2016] +k.id = 886 +k.layout = l[2569] +k.impregs = l[4207] +k.flags = l[3415] +k.parm = 211 +k.sig = "{x64}|{{RegId, def, p1}}|{{rcx, use}, {FLAGS, use/def}}|rexWB1|{$parm, !RRMR($sub,$p1)}|PARD3|{rflag_c, wflags}" +k.prefixclass = l[4826] +end +do local k = l[5176] +k[1] = l[5177] +k[2] = l[5178] +k.id = 72 +k.sig = "{{mode = o,type = GR64,name = p1}, {mode = i,type = GR8,name = p2,fixed = rcx}}" +end +do local k = l[5177] +k.mode = "o" +k.type = "GR64" +k.name = "p1" +end +do local k = l[5178] +k.mode = "i" +k.type = "GR8" +k.name = "p2" +k.fixed = "rcx" +end +do local k = l[5179] +k.orgnames = l[4202] +k.opclass = l[5180] +k.operands = l[4893] +k.name = "RCL_M64I" +k.sub = 2 +end +do local k = l[5180] +k.isa = l[4819] +k.code = l[4222] +k.id = 831 +k.layout = l[3470] +k.impregs = l[3428] +k.flags = l[3473] +k.parm = 193 +k.sig = "{x64}|{{MemId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, use/def}}|rexWM1|{$parm, !RRMM($sub,$p1), !I8_1($p2)}|PARC1|{rflag_c, rmem, rwmem, wflags, wmem}" +k.prefixclass = l[4838] +end +do local k = l[5181] +k.orgnames = l[4202] +k.opclass = l[5182] +k.operands = l[5183] +k.name = "RCL_M64_CL" +k.sub = 2 +end +do local k = l[5182] +k.isa = l[4819] +k.code = l[2011] +k.id = 863 +k.layout = l[2099] +k.impregs = l[4207] +k.flags = l[3473] +k.parm = 211 +k.sig = "{x64}|{{MemId, use, p1}}|{{rcx, use}, {FLAGS, use/def}}|rexWM1|{$parm, !RRMM($sub,$p1)}|PARD3|{rflag_c, rmem, rwmem, wflags, wmem}" +k.prefixclass = l[4838] +end +do local k = l[5183] +k[1] = l[5184] +k[2] = l[5185] +k.id = 149 +k.sig = "{{mode = i,type = i64*,name = p1}, {mode = i,type = GR8,name = p2,fixed = rcx}}" +end +do local k = l[5184] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[5185] +k.mode = "i" +k.type = "GR8" +k.name = "p2" +k.fixed = "rcx" +end +do local k = l[5186] +k.orgnames = l[4202] +k.opclass = l[5173] +k.operands = l[4887] +k.name = "RCR_DI" +k.sub = 3 +end +do local k = l[5187] +k.orgnames = l[4202] +k.opclass = l[5175] +k.operands = l[5176] +k.name = "RCR_D_CL" +k.sub = 3 +end +do local k = l[5188] +k.orgnames = l[4202] +k.opclass = l[5180] +k.operands = l[4893] +k.name = "RCR_M64I" +k.sub = 3 +end +do local k = l[5189] +k.orgnames = l[4202] +k.opclass = l[5182] +k.operands = l[5183] +k.name = "RCR_M64_CL" +k.sub = 3 +end +do local k = l[5190] +k.orgnames = l[2566] +k.opclass = l[5191] +k.operands = l[4787] +k.name = "RDFSBASE_D" +k.sub = 0 +end +do local k = l[5191] +k.isa = l[4819] +k.code = l[2016] +k.id = 889 +k.layout = l[2569] +k.impregs = l[12] +k.flags = l[27] +k.parm = 174 +k.sig = "{x64}|{{RegId, def, p1}}|{}|f3-rexWB1-0f|{$parm, !RRMR($sub,$p1)}|PARAE|{}" +k.prefixclass = l[5192] +end +do local k = l[5192] +k.extopcode = "0f" +k.rex = l[4786] +k.id = 35 +k.pref = "f3" +k.sig = "f3-rexWB1-0f" +end +do local k = l[5193] +k.orgnames = l[2566] +k.opclass = l[5194] +k.operands = l[2573] +k.name = "RDFSBASE_W" +k.sub = 0 +end +do local k = l[5194] +k.isa = l[4819] +k.code = l[2016] +k.id = 888 +k.layout = l[2569] +k.impregs = l[12] +k.flags = l[27] +k.parm = 174 +k.sig = "{x64}|{{RegId, def, p1}}|{}|f3-rexB1-0f|{$parm, !RRMR($sub,$p1)}|PARAE|{}" +k.prefixclass = l[5195] +end +do local k = l[5195] +k.extopcode = "0f" +k.rex = l[2572] +k.id = 20 +k.pref = "f3" +k.sig = "f3-rexB1-0f" +end +do local k = l[5196] +k.orgnames = l[2566] +k.opclass = l[5191] +k.operands = l[4787] +k.name = "RDGSBASE_D" +k.sub = 1 +end +do local k = l[5197] +k.orgnames = l[2566] +k.opclass = l[5194] +k.operands = l[2573] +k.name = "RDGSBASE_W" +k.sub = 1 +end +do local k = l[5198] +k.orgnames = l[4202] +k.opclass = l[5199] +k.operands = l[4887] +k.name = "ROL_DI" +k.sub = 0 +end +do local k = l[5199] +k.isa = l[4819] +k.code = l[4204] +k.id = 872 +k.layout = l[3503] +k.impregs = l[697] +k.flags = l[709] +k.parm = 193 +k.sig = "{x64}|{{RegId, def, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|rexWB1|{$parm, !RRMR($sub,$p1), !I8_1($p2)}|PARC1|{wflags}" +k.prefixclass = l[4826] +end +do local k = l[5200] +k.orgnames = l[4202] +k.opclass = l[5201] +k.operands = l[5176] +k.name = "ROL_D_CL" +k.sub = 0 +end +do local k = l[5201] +k.isa = l[4819] +k.code = l[2016] +k.id = 885 +k.layout = l[2569] +k.impregs = l[4277] +k.flags = l[709] +k.parm = 211 +k.sig = "{x64}|{{RegId, def, p1}}|{{rcx, use}, {FLAGS, def}}|rexWB1|{$parm, !RRMR($sub,$p1)}|PARD3|{wflags}" +k.prefixclass = l[4826] +end +do local k = l[5202] +k.orgnames = l[4202] +k.opclass = l[5203] +k.operands = l[4893] +k.name = "ROL_M64I" +k.sub = 0 +end +do local k = l[5203] +k.isa = l[4819] +k.code = l[4222] +k.id = 829 +k.layout = l[3470] +k.impregs = l[697] +k.flags = l[3536] +k.parm = 193 +k.sig = "{x64}|{{MemId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|rexWM1|{$parm, !RRMM($sub,$p1), !I8_1($p2)}|PARC1|{rmem, rwmem, wflags, wmem}" +k.prefixclass = l[4838] +end +do local k = l[5204] +k.orgnames = l[4202] +k.opclass = l[5205] +k.operands = l[5183] +k.name = "ROL_M64_CL" +k.sub = 0 +end +do local k = l[5205] +k.isa = l[4819] +k.code = l[2011] +k.id = 862 +k.layout = l[2099] +k.impregs = l[4277] +k.flags = l[3536] +k.parm = 211 +k.sig = "{x64}|{{MemId, use, p1}}|{{rcx, use}, {FLAGS, def}}|rexWM1|{$parm, !RRMM($sub,$p1)}|PARD3|{rmem, rwmem, wflags, wmem}" +k.prefixclass = l[4838] +end +do local k = l[5206] +k.orgnames = l[4202] +k.opclass = l[5199] +k.operands = l[4887] +k.name = "ROR_DI" +k.sub = 1 +end +do local k = l[5207] +k.orgnames = l[4202] +k.opclass = l[5201] +k.operands = l[5176] +k.name = "ROR_D_CL" +k.sub = 1 +end +do local k = l[5208] +k.orgnames = l[4202] +k.opclass = l[5203] +k.operands = l[4893] +k.name = "ROR_M64I" +k.sub = 1 +end +do local k = l[5209] +k.orgnames = l[4202] +k.opclass = l[5205] +k.operands = l[5183] +k.name = "ROR_M64_CL" +k.sub = 1 +end +do local k = l[5210] +k.orgnames = l[4202] +k.opclass = l[5199] +k.operands = l[4887] +k.name = "SAR_DI" +k.sub = 7 +end +do local k = l[5211] +k.orgnames = l[4202] +k.opclass = l[5201] +k.operands = l[5176] +k.name = "SAR_D_CL" +k.sub = 7 +end +do local k = l[5212] +k.orgnames = l[4202] +k.opclass = l[5203] +k.operands = l[4893] +k.name = "SAR_M64I" +k.sub = 7 +end +do local k = l[5213] +k.orgnames = l[4202] +k.opclass = l[5205] +k.operands = l[5183] +k.name = "SAR_M64_CL" +k.sub = 7 +end +do local k = l[5214] +k.orgnames = l[41] +k.opclass = l[4818] +k.operands = l[4821] +k.name = "SBB_DD" +k.sub = 3 +end +do local k = l[5215] +k.orgnames = l[2855] +k.opclass = l[4825] +k.operands = l[4827] +k.name = "SBB_DI" +k.sub = 3 +end +do local k = l[5216] +k.orgnames = l[41] +k.opclass = l[4831] +k.operands = l[4833] +k.name = "SBB_DM" +k.sub = 3 +end +do local k = l[5217] +k.orgnames = l[2855] +k.opclass = l[4837] +k.operands = l[4840] +k.name = "SBB_M64I" +k.sub = 3 +end +do local k = l[5218] +k.orgnames = l[41] +k.opclass = l[4844] +k.operands = l[4774] +k.name = "SBB_MD" +k.sub = 3 +end +do local k = l[5219] +k.orgnames = l[2855] +k.opclass = l[4846] +k.operands = l[4849] +k.name = "SBB_RAX_I" +k.sub = 3 +end +do local k = l[5220] +k.orgnames = l[4384] +k.opclass = l[5221] +k.operands = l[5222] +k.sub = 4 +k.name = "SHLD_DDI" +end +do local k = l[5221] +k.isa = l[4819] +k.code = l[76] +k.id = 877 +k.layout = l[187] +k.impregs = l[697] +k.flags = l[709] +k.parm = 160 +k.sig = "{x64}|{{RegId, def, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{{FLAGS, def}}|rexWR2B1-0f|{$parm+$sub, !RRMR($p2,$p1), !I8($p3)}|PARA0|{wflags}" +k.prefixclass = l[4706] +end +do local k = l[5222] +k[1] = l[5223] +k[2] = l[5224] +k[3] = l[5225] +k.id = 78 +k.sig = "{{mode = o,type = GR64,name = p1}, {mode = i,type = GR64,name = p2}, {mode = i,type = i8,name = p3}}" +end +do local k = l[5223] +k.mode = "o" +k.type = "GR64" +k.name = "p1" +end +do local k = l[5224] +k.mode = "i" +k.type = "GR64" +k.name = "p2" +end +do local k = l[5225] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[5226] +k.orgnames = l[4384] +k.opclass = l[5227] +k.operands = l[5228] +k.sub = 5 +k.name = "SHLD_DD_CL" +end +do local k = l[5227] +k.isa = l[4819] +k.code = l[22] +k.id = 880 +k.layout = l[3625] +k.impregs = l[4277] +k.flags = l[709] +k.parm = 160 +k.sig = "{x64}|{{RegId, def, p1}, {RegId, use, p2}}|{{rcx, use}, {FLAGS, def}}|rexWR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PARA0|{wflags}" +k.prefixclass = l[4706] +end +do local k = l[5228] +k[1] = l[5229] +k[2] = l[5230] +k[3] = l[5231] +k.id = 79 +k.sig = "{{mode = o,type = GR64,name = p1}, {mode = i,type = GR64,name = p2}, {mode = i,type = GR8,name = p3,fixed = rcx}}" +end +do local k = l[5229] +k.mode = "o" +k.type = "GR64" +k.name = "p1" +end +do local k = l[5230] +k.mode = "i" +k.type = "GR64" +k.name = "p2" +end +do local k = l[5231] +k.mode = "i" +k.type = "GR8" +k.name = "p3" +k.fixed = "rcx" +end +do local k = l[5232] +k.orgnames = l[4384] +k.opclass = l[5233] +k.operands = l[5234] +k.sub = 4 +k.name = "SHLD_MDI" +end +do local k = l[5233] +k.isa = l[4819] +k.code = l[64] +k.id = 839 +k.layout = l[175] +k.impregs = l[697] +k.flags = l[3536] +k.parm = 160 +k.sig = "{x64}|{{MemId, use, p1}, {RegId, use, p2}, {Imm, use, p3, 0}}|{{FLAGS, def}}|rexWR2M1-0f|{$parm+$sub, !RRMM($p2,$p1), !I8($p3)}|PARA0|{rmem, rwmem, wflags, wmem}" +k.prefixclass = l[4709] +end +do local k = l[5234] +k[1] = l[5235] +k[2] = l[5236] +k[3] = l[5237] +k.id = 153 +k.sig = "{{mode = i,type = i64*,name = p1}, {mode = i,type = GR64,name = p2}, {mode = i,type = i8,name = p3}}" +end +do local k = l[5235] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[5236] +k.mode = "i" +k.type = "GR64" +k.name = "p2" +end +do local k = l[5237] +k.mode = "i" +k.type = "i8" +k.name = "p3" +end +do local k = l[5238] +k.orgnames = l[4384] +k.opclass = l[5239] +k.operands = l[5240] +k.sub = 5 +k.name = "SHLD_MD_CL" +end +do local k = l[5239] +k.isa = l[4819] +k.code = l[7] +k.id = 847 +k.layout = l[694] +k.impregs = l[4277] +k.flags = l[3536] +k.parm = 160 +k.sig = "{x64}|{{MemId, use, p1}, {RegId, use, p2}}|{{rcx, use}, {FLAGS, def}}|rexWR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARA0|{rmem, rwmem, wflags, wmem}" +k.prefixclass = l[4709] +end +do local k = l[5240] +k[1] = l[5241] +k[2] = l[5242] +k[3] = l[5243] +k.id = 154 +k.sig = "{{mode = i,type = i64*,name = p1}, {mode = i,type = GR64,name = p2}, {mode = i,type = GR8,name = p3,fixed = rcx}}" +end +do local k = l[5241] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[5242] +k.mode = "i" +k.type = "GR64" +k.name = "p2" +end +do local k = l[5243] +k.mode = "i" +k.type = "GR8" +k.name = "p3" +k.fixed = "rcx" +end +do local k = l[5244] +k.orgnames = l[4202] +k.opclass = l[5199] +k.operands = l[4887] +k.name = "SHL_DI" +k.sub = 4 +end +do local k = l[5245] +k.orgnames = l[4202] +k.opclass = l[5201] +k.operands = l[5176] +k.name = "SHL_D_CL" +k.sub = 4 +end +do local k = l[5246] +k.orgnames = l[4202] +k.opclass = l[5203] +k.operands = l[4893] +k.name = "SHL_M64I" +k.sub = 4 +end +do local k = l[5247] +k.orgnames = l[4202] +k.opclass = l[5205] +k.operands = l[5183] +k.name = "SHL_M64_CL" +k.sub = 4 +end +do local k = l[5248] +k.orgnames = l[4384] +k.opclass = l[5221] +k.operands = l[5222] +k.sub = 12 +k.name = "SHRD_DDI" +end +do local k = l[5249] +k.orgnames = l[4384] +k.opclass = l[5227] +k.operands = l[5228] +k.sub = 13 +k.name = "SHRD_DD_CL" +end +do local k = l[5250] +k.orgnames = l[4384] +k.opclass = l[5233] +k.operands = l[5234] +k.sub = 12 +k.name = "SHRD_MDI" +end +do local k = l[5251] +k.orgnames = l[4384] +k.opclass = l[5239] +k.operands = l[5240] +k.sub = 13 +k.name = "SHRD_MD_CL" +end +do local k = l[5252] +k.orgnames = l[4202] +k.opclass = l[5199] +k.operands = l[4887] +k.name = "SHR_DI" +k.sub = 5 +end +do local k = l[5253] +k.orgnames = l[4202] +k.opclass = l[5201] +k.operands = l[5176] +k.name = "SHR_D_CL" +k.sub = 5 +end +do local k = l[5254] +k.orgnames = l[4202] +k.opclass = l[5203] +k.operands = l[4893] +k.name = "SHR_M64I" +k.sub = 5 +end +do local k = l[5255] +k.orgnames = l[4202] +k.opclass = l[5205] +k.operands = l[5183] +k.name = "SHR_M64_CL" +k.sub = 5 +end +do local k = l[5256] +k.orgnames = l[41] +k.opclass = l[4853] +k.operands = l[4821] +k.name = "SUB_DD" +k.sub = 5 +end +do local k = l[5257] +k.orgnames = l[2855] +k.opclass = l[4855] +k.operands = l[4827] +k.name = "SUB_DI" +k.sub = 5 +end +do local k = l[5258] +k.orgnames = l[41] +k.opclass = l[4857] +k.operands = l[4833] +k.name = "SUB_DM" +k.sub = 5 +end +do local k = l[5259] +k.orgnames = l[2855] +k.opclass = l[4859] +k.operands = l[4840] +k.name = "SUB_M64I" +k.sub = 5 +end +do local k = l[5260] +k.orgnames = l[41] +k.opclass = l[4861] +k.operands = l[4774] +k.name = "SUB_MD" +k.sub = 5 +end +do local k = l[5261] +k.orgnames = l[2855] +k.opclass = l[4863] +k.operands = l[4849] +k.name = "SUB_RAX_I" +k.sub = 5 +end +do local k = l[5262] +k.orgnames = l[41] +k.opclass = l[5263] +k.operands = l[4908] +k.name = "TEST_DD" +end +do local k = l[5263] +k.isa = l[4819] +k.code = l[1016] +k.id = 901 +k.layout = l[706] +k.impregs = l[697] +k.flags = l[709] +k.parm = 133 +k.sig = "{x64}|{{RegId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|rexWR2B1|{$parm, !RRMR($p2,$p1)}|PAR85|{wflags}" +k.prefixclass = l[4820] +end +do local k = l[5264] +k.orgnames = l[2855] +k.opclass = l[5265] +k.operands = l[4985] +k.name = "TEST_DI" +k.sub = 0 +end +do local k = l[5265] +k.isa = l[4819] +k.code = l[4515] +k.id = 892 +k.layout = l[3654] +k.impregs = l[697] +k.flags = l[709] +k.parm = 247 +k.sig = "{x64}|{{RegId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|rexWB1|{$parm, !RRMR($sub,$p1), !I32($p2)}|PARF7|{wflags}" +k.prefixclass = l[4826] +end +do local k = l[5266] +k.orgnames = l[41] +k.opclass = l[5267] +k.operands = l[4990] +k.name = "TEST_DM" +end +do local k = l[5267] +k.isa = l[4819] +k.code = l[1000] +k.id = 842 +k.layout = l[694] +k.impregs = l[697] +k.flags = l[699] +k.parm = 133 +k.sig = "{x64}|{{MemId, use, p1}, {RegId, use, p2}}|{{FLAGS, def}}|rexWR2M1|{$parm, !RRMM($p2,$p1)}|PAR85|{rmem, wflags}" +k.prefixclass = l[4832] +end +do local k = l[5268] +k.orgnames = l[2855] +k.opclass = l[5269] +k.operands = l[4840] +k.name = "TEST_M64I" +k.sub = 0 +end +do local k = l[5269] +k.isa = l[4819] +k.code = l[4115] +k.id = 826 +k.layout = l[3470] +k.impregs = l[697] +k.flags = l[699] +k.parm = 247 +k.sig = "{x64}|{{MemId, use, p1}, {Imm, use, p2, 0}}|{{FLAGS, def}}|rexWM1|{$parm, !RRMM($sub,$p1), !I32($p2)}|PARF7|{rmem, wflags}" +k.prefixclass = l[4838] +end +do local k = l[5270] +k.orgnames = l[41] +k.opclass = l[5267] +k.operands = l[4774] +k.name = "TEST_MD" +end +do local k = l[5271] +k.orgnames = l[2566] +k.opclass = l[5272] +k.operands = l[5027] +k.name = "WRFSBASE_D" +k.sub = 2 +end +do local k = l[5272] +k.isa = l[4819] +k.code = l[2016] +k.id = 913 +k.layout = l[3893] +k.impregs = l[12] +k.flags = l[27] +k.parm = 174 +k.sig = "{x64}|{{RegId, use, p1}}|{}|f3-rexWB1-0f|{$parm, !RRMR($sub,$p1)}|PARAE|{}" +k.prefixclass = l[5192] +end +do local k = l[5273] +k.orgnames = l[2566] +k.opclass = l[5274] +k.operands = l[4597] +k.name = "WRFSBASE_W" +k.sub = 2 +end +do local k = l[5274] +k.isa = l[4819] +k.code = l[2016] +k.id = 912 +k.layout = l[3893] +k.impregs = l[12] +k.flags = l[27] +k.parm = 174 +k.sig = "{x64}|{{RegId, use, p1}}|{}|f3-rexB1-0f|{$parm, !RRMR($sub,$p1)}|PARAE|{}" +k.prefixclass = l[5195] +end +do local k = l[5275] +k.orgnames = l[2566] +k.opclass = l[5272] +k.operands = l[5027] +k.name = "WRGSBASE_D" +k.sub = 3 +end +do local k = l[5276] +k.orgnames = l[2566] +k.opclass = l[5274] +k.operands = l[4597] +k.name = "WRGSBASE_W" +k.sub = 3 +end +do local k = l[5277] +k.orgnames = l[4520] +k.opclass = l[5278] +k.operands = l[5279] +k.sub = 1 +k.name = "XADD_DD" +end +do local k = l[5278] +k.isa = l[4819] +k.code = l[22] +k.id = 907 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 192 +k.sig = "{x64}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|rexWR2B1-0f|{$parm+$sub, !RRMR($p2,$p1)}|PARC0|{}" +k.prefixclass = l[4706] +end +do local k = l[5279] +k[1] = l[5280] +k[2] = l[5281] +k.id = 75 +k.sig = "{{mode = i,type = GR64,name = p1}, {mode = io,type = GR64,name = p2}}" +end +do local k = l[5280] +k.mode = "i" +k.type = "GR64" +k.name = "p1" +end +do local k = l[5281] +k.mode = "io" +k.type = "GR64" +k.name = "p2" +end +do local k = l[5282] +k.orgnames = l[4520] +k.opclass = l[5283] +k.operands = l[5284] +k.sub = 1 +k.name = "XADD_MD" +end +do local k = l[5283] +k.isa = l[4819] +k.code = l[7] +k.id = 855 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[2101] +k.parm = 192 +k.sig = "{x64}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|rexWR2M1-0f|{$parm+$sub, !RRMM($p2,$p1)}|PARC0|{rmem, rwmem, wmem}" +k.prefixclass = l[4709] +end +do local k = l[5284] +k[1] = l[5285] +k[2] = l[5286] +k.id = 152 +k.sig = "{{mode = i,type = i64*,name = p1}, {mode = io,type = GR64,name = p2}}" +end +do local k = l[5285] +k.mode = "i" +k.type = "i64*" +k.name = "p1" +end +do local k = l[5286] +k.mode = "io" +k.type = "GR64" +k.name = "p2" +end +do local k = l[5287] +k.orgnames = l[4520] +k.opclass = l[5288] +k.operands = l[5279] +k.name = "XCHG_DD" +k.sub = 7 +end +do local k = l[5288] +k.isa = l[4819] +k.code = l[22] +k.id = 908 +k.layout = l[99] +k.impregs = l[12] +k.flags = l[27] +k.parm = 128 +k.sig = "{x64}|{{RegId, use, p1}, {RegId, use/def, p2}}|{}|rexWR2B1|{$parm+$sub, !RRMR($p2,$p1)}|PAR80|{}" +k.prefixclass = l[4820] +end +do local k = l[5289] +k.orgnames = l[4520] +k.opclass = l[5290] +k.operands = l[5284] +k.name = "XCHG_MD" +k.sub = 7 +end +do local k = l[5290] +k.isa = l[4819] +k.code = l[7] +k.id = 856 +k.layout = l[89] +k.impregs = l[12] +k.flags = l[2101] +k.parm = 128 +k.sig = "{x64}|{{MemId, use, p1}, {RegId, use/def, p2}}|{}|rexWR2M1|{$parm+$sub, !RRMM($p2,$p1)}|PAR80|{rmem, rwmem, wmem}" +k.prefixclass = l[4832] +end +do local k = l[5291] +k.sub = 16 +k.orgnames = l[41] +k.opclass = l[5292] +k.operands = l[5293] +k.name = "XCHG_RAX_D" +end +do local k = l[5292] +k.isa = l[4819] +k.code = l[4550] +k.id = 917 +k.layout = l[3586] +k.impregs = l[3699] +k.flags = l[27] +k.parm = 128 +k.sig = "{x64}|{{RegId, use/def, p1}}|{{rax, use/def}}|rexWB1|{$parm+$sub+($p1&7)}|PAR80|{}" +k.prefixclass = l[4826] +end +do local k = l[5293] +k[1] = l[5294] +k[2] = l[5295] +k.id = 85 +k.sig = "{{mode = io,type = GR64,name = p1}, {mode = io,type = GR64,name = p2,fixed = rax}}" +end +do local k = l[5294] +k.mode = "io" +k.type = "GR64" +k.name = "p1" +end +do local k = l[5295] +k.mode = "io" +k.type = "GR64" +k.name = "p2" +k.fixed = "rax" +end +do local k = l[5296] +k.orgnames = l[41] +k.opclass = l[4853] +k.operands = l[4821] +k.name = "XOR_DD" +k.sub = 6 +end +do local k = l[5297] +k.orgnames = l[2855] +k.opclass = l[4855] +k.operands = l[4827] +k.name = "XOR_DI" +k.sub = 6 +end +do local k = l[5298] +k.orgnames = l[41] +k.opclass = l[4857] +k.operands = l[4833] +k.name = "XOR_DM" +k.sub = 6 +end +do local k = l[5299] +k.orgnames = l[2855] +k.opclass = l[4859] +k.operands = l[4840] +k.name = "XOR_M64I" +k.sub = 6 +end +do local k = l[5300] +k.orgnames = l[41] +k.opclass = l[4861] +k.operands = l[4774] +k.name = "XOR_MD" +k.sub = 6 +end +do local k = l[5301] +k.orgnames = l[2855] +k.opclass = l[4863] +k.operands = l[4849] +k.name = "XOR_RAX_I" +k.sub = 6 +end +do local k = l[5302] +k[1] = l[63] +k[2] = l[5] +k[3] = l[42] +k[4] = l[75] +k[5] = l[21] +k[6] = l[52] +k[7] = l[118] +k[8] = l[114] +k[9] = l[87] +k[10] = l[121] +k[11] = l[116] +k[12] = l[98] +k[13] = l[125] +k[14] = l[140] +k[15] = l[363] +k[16] = l[233] +k[17] = l[359] +k[18] = l[257] +k[19] = l[250] +k[20] = l[225] +k[21] = l[214] +k[22] = l[223] +k[23] = l[198] +k[24] = l[296] +k[25] = l[275] +k[26] = l[379] +k[27] = l[444] +k[28] = l[430] +k[29] = l[453] +k[30] = l[438] +k[31] = l[440] +k[32] = l[428] +k[33] = l[448] +k[34] = l[436] +k[35] = l[154] +k[36] = l[319] +k[37] = l[326] +k[38] = l[310] +k[39] = l[174] +k[40] = l[422] +k[41] = l[434] +k[42] = l[412] +k[43] = l[432] +k[44] = l[186] +k[45] = l[371] +k[46] = l[241] +k[47] = l[361] +k[48] = l[265] +k[49] = l[253] +k[50] = l[303] +k[51] = l[283] +k[52] = l[385] +k[53] = l[446] +k[54] = l[455] +k[55] = l[442] +k[56] = l[450] +k[57] = l[162] +k[58] = l[337] +k[59] = l[324] +k[60] = l[169] +k[61] = l[331] +k[62] = l[317] +k[63] = l[1673] +k[64] = l[1669] +k[65] = l[1425] +k[66] = l[1419] +k[67] = l[1859] +k[68] = l[1855] +k[69] = l[1689] +k[70] = l[1685] +k[71] = l[1681] +k[72] = l[1677] +k[73] = l[1896] +k[74] = l[1892] +k[75] = l[545] +k[76] = l[908] +k[77] = l[539] +k[78] = l[904] +k[79] = l[1888] +k[80] = l[1510] +k[81] = l[1882] +k[82] = l[1275] +k[83] = l[535] +k[84] = l[900] +k[85] = l[1269] +k[86] = l[531] +k[87] = l[956] +k[88] = l[896] +k[89] = l[557] +k[90] = l[551] +k[91] = l[1938] +k[92] = l[493] +k[93] = l[942] +k[94] = l[511] +k[95] = l[585] +k[96] = l[1092] +k[97] = l[487] +k[98] = l[938] +k[99] = l[507] +k[100] = l[581] +k[101] = l[1931] +k[102] = l[481] +k[103] = l[934] +k[104] = l[503] +k[105] = l[1237] +k[106] = l[577] +k[107] = l[1088] +k[108] = l[474] +k[109] = l[930] +k[110] = l[499] +k[111] = l[1233] +k[112] = l[571] +k[113] = l[1201] +k[114] = l[1225] +k[115] = l[1480] +k[116] = l[1197] +k[117] = l[1221] +k[118] = l[1476] +k[119] = l[823] +k[120] = l[812] +k[121] = l[589] +k[122] = l[825] +k[123] = l[837] +k[124] = l[844] +k[125] = l[599] +k[126] = l[839] +k[127] = l[740] +k[128] = l[736] +k[129] = l[772] +k[130] = l[866] +k[131] = l[1058] +k[132] = l[770] +k[133] = l[1074] +k[134] = l[864] +k[135] = l[1052] +k[136] = l[565] +k[137] = l[1108] +k[138] = l[568] +k[139] = l[1106] +k[140] = l[1044] +k[141] = l[755] +k[142] = l[1040] +k[143] = l[802] +k[144] = l[752] +k[145] = l[788] +k[146] = l[1137] +k[147] = l[876] +k[148] = l[730] +k[149] = l[1070] +k[150] = l[1133] +k[151] = l[857] +k[152] = l[872] +k[153] = l[1124] +k[154] = l[724] +k[155] = l[1066] +k[156] = l[848] +k[157] = l[1383] +k[158] = l[1316] +k[159] = l[1400] +k[160] = l[1343] +k[161] = l[912] +k[162] = l[916] +k[163] = l[715] +k[164] = l[693] +k[165] = l[1809] +k[166] = l[1805] +k[167] = l[968] +k[168] = l[1120] +k[169] = l[1173] +k[170] = l[1167] +k[171] = l[1036] +k[172] = l[1030] +k[173] = l[1090] +k[174] = l[1118] +k[175] = l[1169] +k[176] = l[1165] +k[177] = l[1032] +k[178] = l[1028] +k[179] = l[1116] +k[180] = l[1050] +k[181] = l[1112] +k[182] = l[1161] +k[183] = l[1155] +k[184] = l[1018] +k[185] = l[1005] +k[186] = l[1083] +k[187] = l[1114] +k[188] = l[1048] +k[189] = l[1122] +k[190] = l[1110] +k[191] = l[1157] +k[192] = l[1153] +k[193] = l[1010] +k[194] = l[999] +k[195] = l[1128] +k[196] = l[1064] +k[197] = l[1145] +k[198] = l[1062] +k[199] = l[1737] +k[200] = l[1723] +k[201] = l[1711] +k[202] = l[1733] +k[203] = l[1719] +k[204] = l[1706] +k[205] = l[914] +k[206] = l[923] +k[207] = l[1675] +k[208] = l[1671] +k[209] = l[1457] +k[210] = l[1427] +k[211] = l[1421] +k[212] = l[1861] +k[213] = l[1857] +k[214] = l[1691] +k[215] = l[1687] +k[216] = l[1683] +k[217] = l[1679] +k[218] = l[1898] +k[219] = l[1894] +k[220] = l[548] +k[221] = l[910] +k[222] = l[542] +k[223] = l[906] +k[224] = l[1890] +k[225] = l[1517] +k[226] = l[1885] +k[227] = l[1277] +k[228] = l[537] +k[229] = l[902] +k[230] = l[1272] +k[231] = l[533] +k[232] = l[963] +k[233] = l[898] +k[234] = l[559] +k[235] = l[554] +k[236] = l[1940] +k[237] = l[496] +k[238] = l[944] +k[239] = l[513] +k[240] = l[587] +k[241] = l[1936] +k[242] = l[490] +k[243] = l[940] +k[244] = l[509] +k[245] = l[583] +k[246] = l[1081] +k[247] = l[1933] +k[248] = l[484] +k[249] = l[936] +k[250] = l[505] +k[251] = l[1239] +k[252] = l[579] +k[253] = l[1929] +k[254] = l[478] +k[255] = l[932] +k[256] = l[501] +k[257] = l[1235] +k[258] = l[574] +k[259] = l[1203] +k[260] = l[1227] +k[261] = l[1482] +k[262] = l[1199] +k[263] = l[1223] +k[264] = l[1478] +k[265] = l[828] +k[266] = l[814] +k[267] = l[596] +k[268] = l[1131] +k[269] = l[816] +k[270] = l[842] +k[271] = l[846] +k[272] = l[606] +k[273] = l[1151] +k[274] = l[834] +k[275] = l[746] +k[276] = l[738] +k[277] = l[777] +k[278] = l[1577] +k[279] = l[870] +k[280] = l[1060] +k[281] = l[775] +k[282] = l[1076] +k[283] = l[1575] +k[284] = l[868] +k[285] = l[1055] +k[286] = l[1583] +k[287] = l[1580] +k[288] = l[1046] +k[289] = l[764] +k[290] = l[1042] +k[291] = l[807] +k[292] = l[761] +k[293] = l[795] +k[294] = l[1139] +k[295] = l[878] +k[296] = l[733] +k[297] = l[1072] +k[298] = l[1135] +k[299] = l[862] +k[300] = l[874] +k[301] = l[1126] +k[302] = l[727] +k[303] = l[1068] +k[304] = l[854] +k[305] = l[1393] +k[306] = l[1330] +k[307] = l[1410] +k[308] = l[1357] +k[309] = l[721] +k[310] = l[705] +k[311] = l[1811] +k[312] = l[1807] +k[313] = l[977] +k[314] = l[1175] +k[315] = l[1038] +k[316] = l[1171] +k[317] = l[1034] +k[318] = l[1163] +k[319] = l[1023] +k[320] = l[1159] +k[321] = l[1015] +k[322] = l[1971] +k[323] = l[1959] +k[324] = l[1966] +k[325] = l[1984] +k[326] = l[2026] +k[327] = l[2010] +k[328] = l[1992] +k[329] = l[2029] +k[330] = l[2015] +k[331] = l[2074] +k[332] = l[2038] +k[333] = l[2032] +k[334] = l[2090] +k[335] = l[2064] +k[336] = l[2068] +k[337] = l[2081] +k[338] = l[2052] +k[339] = l[2035] +k[340] = l[2092] +k[341] = l[2066] +k[342] = l[2071] +k[343] = l[2097] +k[344] = l[2107] +k[345] = l[2118] +k[346] = l[2138] +k[347] = l[2145] +k[348] = l[2128] +k[349] = l[2150] +k[350] = l[2220] +k[351] = l[2215] +k[352] = l[2224] +k[353] = l[2226] +k[354] = l[2234] +k[355] = l[2232] +k[356] = l[2222] +k[357] = l[2218] +k[358] = l[2273] +k[359] = l[2313] +k[360] = l[2257] +k[361] = l[2305] +k[362] = l[2269] +k[363] = l[2309] +k[364] = l[2236] +k[365] = l[2301] +k[366] = l[2275] +k[367] = l[2315] +k[368] = l[2263] +k[369] = l[2307] +k[370] = l[2271] +k[371] = l[2311] +k[372] = l[2247] +k[373] = l[2303] +k[374] = l[2533] +k[375] = l[2538] +k[376] = l[2542] +k[377] = l[2559] +k[378] = l[2548] +k[379] = l[2553] +k[380] = l[2545] +k[381] = l[2561] +k[382] = l[2564] +k[383] = l[2567] +k[384] = l[2577] +k[385] = l[2590] +k[386] = l[2609] +k[387] = l[2618] +k[388] = l[2600] +k[389] = l[2623] +k[390] = l[2621] +k[391] = l[2843] +k[392] = l[2851] +k[393] = l[2847] +k[394] = l[2640] +k[395] = l[2741] +k[396] = l[2706] +k[397] = l[2731] +k[398] = l[2656] +k[399] = l[2634] +k[400] = l[2648] +k[401] = l[2702] +k[402] = l[2710] +k[403] = l[2753] +k[404] = l[2625] +k[405] = l[2737] +k[406] = l[2698] +k[407] = l[2630] +k[408] = l[2724] +k[409] = l[2747] +k[410] = l[2729] +k[411] = l[2751] +k[412] = l[2745] +k[413] = l[2735] +k[414] = l[2749] +k[415] = l[2807] +k[416] = l[2757] +k[417] = l[2771] +k[418] = l[2765] +k[419] = l[2672] +k[420] = l[2660] +k[421] = l[2677] +k[422] = l[2687] +k[423] = l[2694] +k[424] = l[2689] +k[425] = l[2845] +k[426] = l[2805] +k[427] = l[2853] +k[428] = l[2849] +k[429] = l[2642] +k[430] = l[2743] +k[431] = l[2829] +k[432] = l[2708] +k[433] = l[2733] +k[434] = l[2658] +k[435] = l[2637] +k[436] = l[2652] +k[437] = l[2704] +k[438] = l[2712] +k[439] = l[2755] +k[440] = l[2628] +k[441] = l[2739] +k[442] = l[2700] +k[443] = l[2632] +k[444] = l[2726] +k[445] = l[2813] +k[446] = l[2759] +k[447] = l[2773] +k[448] = l[2767] +k[449] = l[2679] +k[450] = l[2665] +k[451] = l[2667] +k[452] = l[2692] +k[453] = l[2696] +k[454] = l[2684] +k[455] = l[2873] +k[456] = l[2866] +k[457] = l[2856] +k[458] = l[2722] +k[459] = l[2950] +k[460] = l[2948] +k[461] = l[2954] +k[462] = l[2960] +k[463] = l[2936] +k[464] = l[2927] +k[465] = l[2940] +k[466] = l[2932] +k[467] = l[2952] +k[468] = l[2956] +k[469] = l[2962] +k[470] = l[2938] +k[471] = l[2930] +k[472] = l[2942] +k[473] = l[2934] +k[474] = l[3125] +k[475] = l[3042] +k[476] = l[3028] +k[477] = l[3121] +k[478] = l[2992] +k[479] = l[3032] +k[480] = l[3020] +k[481] = l[2997] +k[482] = l[3024] +k[483] = l[3004] +k[484] = l[3046] +k[485] = l[3064] +k[486] = l[3030] +k[487] = l[3127] +k[488] = l[3093] +k[489] = l[3123] +k[490] = l[2995] +k[491] = l[3038] +k[492] = l[3022] +k[493] = l[3000] +k[494] = l[3026] +k[495] = l[3012] +k[496] = l[3048] +k[497] = l[3066] +k[498] = l[3170] +k[499] = l[3162] +k[500] = l[3174] +k[501] = l[3166] +k[502] = l[3150] +k[503] = l[3172] +k[504] = l[3164] +k[505] = l[3176] +k[506] = l[3168] +k[507] = l[3139] +k[508] = l[3324] +k[509] = l[3330] +k[510] = l[3267] +k[511] = l[3271] +k[512] = l[3305] +k[513] = l[3336] +k[514] = l[3334] +k[515] = l[3293] +k[516] = l[3291] +k[517] = l[3322] +k[518] = l[3328] +k[519] = l[3309] +k[520] = l[3342] +k[521] = l[3340] +k[522] = l[3299] +k[523] = l[3297] +k[524] = l[3366] +k[525] = l[3371] +k[526] = l[3307] +k[527] = l[3178] +k[528] = l[3195] +k[529] = l[3203] +k[530] = l[3356] +k[531] = l[3207] +k[532] = l[3311] +k[533] = l[3183] +k[534] = l[3199] +k[535] = l[3279] +k[536] = l[3379] +k[537] = l[3318] +k[538] = l[3320] +k[539] = l[3269] +k[540] = l[3273] +k[541] = l[3338] +k[542] = l[3295] +k[543] = l[3344] +k[544] = l[3301] +k[545] = l[3369] +k[546] = l[3373] +k[547] = l[3390] +k[548] = l[3181] +k[549] = l[3197] +k[550] = l[3326] +k[551] = l[3205] +k[552] = l[3332] +k[553] = l[3358] +k[554] = l[3209] +k[555] = l[3303] +k[556] = l[3185] +k[557] = l[3201] +k[558] = l[3364] +k[559] = l[3402] +k[560] = l[3406] +k[561] = l[4010] +k[562] = l[4029] +k[563] = l[4034] +k[564] = l[3689] +k[565] = l[3519] +k[566] = l[3527] +k[567] = l[3514] +k[568] = l[3420] +k[569] = l[3449] +k[570] = l[3409] +k[571] = l[3780] +k[572] = l[3800] +k[573] = l[3775] +k[574] = l[4268] +k[575] = l[4198] +k[576] = l[3680] +k[577] = l[3604] +k[578] = l[3661] +k[579] = l[4504] +k[580] = l[3535] +k[581] = l[3820] +k[582] = l[4285] +k[583] = l[3610] +k[584] = l[3663] +k[585] = l[4506] +k[586] = l[3538] +k[587] = l[3822] +k[588] = l[3540] +k[589] = l[3824] +k[590] = l[4508] +k[591] = l[4293] +k[592] = l[4289] +k[593] = l[3468] +k[594] = l[4221] +k[595] = l[3479] +k[596] = l[3486] +k[597] = l[4236] +k[598] = l[4229] +k[599] = l[4111] +k[600] = l[4114] +k[601] = l[4117] +k[602] = l[3987] +k[603] = l[3576] +k[604] = l[4087] +k[605] = l[4128] +k[606] = l[4053] +k[607] = l[4401] +k[608] = l[4413] +k[609] = l[3615] +k[610] = l[3665] +k[611] = l[4502] +k[612] = l[3544] +k[613] = l[3828] +k[614] = l[3815] +k[615] = l[3617] +k[616] = l[3667] +k[617] = l[4495] +k[618] = l[4512] +k[619] = l[3542] +k[620] = l[3826] +k[621] = l[3546] +k[622] = l[3830] +k[623] = l[3795] +k[624] = l[3837] +k[625] = l[3497] +k[626] = l[3492] +k[627] = l[3499] +k[628] = l[4407] +k[629] = l[4419] +k[630] = l[4121] +k[631] = l[4119] +k[632] = l[4123] +k[633] = l[3957] +k[634] = l[3574] +k[635] = l[3955] +k[636] = l[3533] +k[637] = l[3985] +k[638] = l[3525] +k[639] = l[3550] +k[640] = l[3465] +k[641] = l[3441] +k[642] = l[3510] +k[643] = l[3759] +k[644] = l[3753] +k[645] = l[4536] +k[646] = l[4566] +k[647] = l[4109] +k[648] = l[4531] +k[649] = l[4564] +k[650] = l[4102] +k[651] = l[4154] +k[652] = l[4158] +k[653] = l[4156] +k[654] = l[3880] +k[655] = l[3887] +k[656] = l[3885] +k[657] = l[4350] +k[658] = l[3922] +k[659] = l[3965] +k[660] = l[3910] +k[661] = l[3916] +k[662] = l[3719] +k[663] = l[4287] +k[664] = l[4295] +k[665] = l[4291] +k[666] = l[4224] +k[667] = l[4238] +k[668] = l[4231] +k[669] = l[4142] +k[670] = l[4146] +k[671] = l[4144] +k[672] = l[3619] +k[673] = l[3548] +k[674] = l[4297] +k[675] = l[3501] +k[676] = l[4243] +k[677] = l[4125] +k[678] = l[4425] +k[679] = l[4059] +k[680] = l[3624] +k[681] = l[4431] +k[682] = l[4160] +k[683] = l[3889] +k[684] = l[4299] +k[685] = l[4245] +k[686] = l[4148] +k[687] = l[3653] +k[688] = l[4499] +k[689] = l[3810] +k[690] = l[3669] +k[691] = l[4514] +k[692] = l[3832] +k[693] = l[3790] +k[694] = l[4493] +k[695] = l[3996] +k[696] = l[3578] +k[697] = l[4078] +k[698] = l[4130] +k[699] = l[3648] +k[700] = l[4497] +k[701] = l[3805] +k[702] = l[3674] +k[703] = l[4488] +k[704] = l[4518] +k[705] = l[3785] +k[706] = l[3842] +k[707] = l[3948] +k[708] = l[3572] +k[709] = l[3946] +k[710] = l[3529] +k[711] = l[3994] +k[712] = l[3521] +k[713] = l[3552] +k[714] = l[3455] +k[715] = l[3426] +k[716] = l[3512] +k[717] = l[4526] +k[718] = l[4562] +k[719] = l[4104] +k[720] = l[4521] +k[721] = l[4555] +k[722] = l[4097] +k[723] = l[3892] +k[724] = l[3979] +k[725] = l[3900] +k[726] = l[3927] +k[727] = l[3599] +k[728] = l[3531] +k[729] = l[4281] +k[730] = l[3523] +k[731] = l[4274] +k[732] = l[3458] +k[733] = l[4214] +k[734] = l[3435] +k[735] = l[4203] +k[736] = l[4106] +k[737] = l[4099] +k[738] = l[4385] +k[739] = l[3591] +k[740] = l[4395] +k[741] = l[3747] +k[742] = l[3735] +k[743] = l[4152] +k[744] = l[4150] +k[745] = l[3876] +k[746] = l[3872] +k[747] = l[4347] +k[748] = l[4549] +k[749] = l[4557] +k[750] = l[4283] +k[751] = l[4276] +k[752] = l[4216] +k[753] = l[4206] +k[754] = l[4140] +k[755] = l[3584] +k[756] = l[4138] +k[757] = l[3715] +k[758] = l[3712] +k[759] = l[4045] +k[760] = l[3848] +k[761] = l[3697] +k[762] = l[3868] +k[763] = l[4313] +k[764] = l[3704] +k[765] = l[3860] +k[766] = l[4183] +k[767] = l[4191] +k[768] = l[4265] +k[769] = l[4262] +k[770] = l[4076] +k[771] = l[4180] +k[772] = l[4608] +k[773] = l[4619] +k[774] = l[4593] +k[775] = l[4600] +k[776] = l[4614] +k[777] = l[4622] +k[778] = l[4596] +k[779] = l[4603] +k[780] = l[4588] +k[781] = l[4591] +k[782] = l[4663] +k[783] = l[4653] +k[784] = l[4627] +k[785] = l[4646] +k[786] = l[4630] +k[787] = l[4635] +k[788] = l[4656] +k[789] = l[4641] +k[790] = l[4673] +k[791] = l[4708] +k[792] = l[4697] +k[793] = l[4665] +k[794] = l[4705] +k[795] = l[4690] +k[796] = l[4749] +k[797] = l[4724] +k[798] = l[4714] +k[799] = l[4760] +k[800] = l[4734] +k[801] = l[4739] +k[802] = l[4742] +k[803] = l[4716] +k[804] = l[4711] +k[805] = l[4758] +k[806] = l[4732] +k[807] = l[4736] +k[808] = l[4767] +k[809] = l[4764] +k[810] = l[4769] +k[811] = l[4773] +k[812] = l[4781] +k[813] = l[4778] +k[814] = l[4783] +k[815] = l[4794] +k[816] = l[4803] +k[817] = l[4790] +k[818] = l[4797] +k[819] = l[4812] +k[820] = l[4805] +k[821] = l[4863] +k[822] = l[4846] +k[823] = l[4998] +k[824] = l[4891] +k[825] = l[4917] +k[826] = l[5269] +k[827] = l[4859] +k[828] = l[4994] +k[829] = l[5203] +k[830] = l[4837] +k[831] = l[5180] +k[832] = l[5136] +k[833] = l[5054] +k[834] = l[4873] +k[835] = l[5101] +k[836] = l[5106] +k[837] = l[5134] +k[838] = l[5078] +k[839] = l[5233] +k[840] = l[4897] +k[841] = l[4919] +k[842] = l[5267] +k[843] = l[4861] +k[844] = l[4996] +k[845] = l[4989] +k[846] = l[4844] +k[847] = l[5239] +k[848] = l[5083] +k[849] = l[5138] +k[850] = l[5052] +k[851] = l[4857] +k[852] = l[4831] +k[853] = l[4927] +k[854] = l[4973] +k[855] = l[5283] +k[856] = l[5290] +k[857] = l[5148] +k[858] = l[5010] +k[859] = l[5060] +k[860] = l[5020] +k[861] = l[4959] +k[862] = l[5205] +k[863] = l[5182] +k[864] = l[5161] +k[865] = l[5168] +k[866] = l[5030] +k[867] = l[5036] +k[868] = l[5144] +k[869] = l[5120] +k[870] = l[4886] +k[871] = l[4855] +k[872] = l[5199] +k[873] = l[4825] +k[874] = l[5173] +k[875] = l[5132] +k[876] = l[5130] +k[877] = l[5221] +k[878] = l[5068] +k[879] = l[4881] +k[880] = l[5227] +k[881] = l[5085] +k[882] = l[5087] +k[883] = l[5146] +k[884] = l[5008] +k[885] = l[5201] +k[886] = l[5175] +k[887] = l[5156] +k[888] = l[5194] +k[889] = l[5191] +k[890] = l[5142] +k[891] = l[4912] +k[892] = l[5265] +k[893] = l[4984] +k[894] = l[5046] +k[895] = l[4871] +k[896] = l[5090] +k[897] = l[5092] +k[898] = l[5109] +k[899] = l[5118] +k[900] = l[4907] +k[901] = l[5263] +k[902] = l[4979] +k[903] = l[5044] +k[904] = l[4853] +k[905] = l[4818] +k[906] = l[4925] +k[907] = l[5278] +k[908] = l[5288] +k[909] = l[5038] +k[910] = l[5014] +k[911] = l[5163] +k[912] = l[5274] +k[913] = l[5272] +k[914] = l[5026] +k[915] = l[5034] +k[916] = l[4967] +k[917] = l[5292] +k[918] = l[4877] +k[919] = l[4921] +k[920] = l[5003] +end +return l[1] diff --git a/src/data/x86_inslist.ltxt b/src/data/x86_inslist.ltxt new file mode 100644 index 0000000..4a593ef --- /dev/null +++ b/src/data/x86_inslist.ltxt @@ -0,0 +1,1193 @@ +#/bin/emblua LUAPREFIX=| +|--VARDELIM=% +|--CMTDELIM=// +|--XDUMPSCRIPT=true +| ----------------------------------- +| function imm(bits) return "i"..(bits <= 32 and bits or 32) end +| function immv(bits) return imm(bits)..(bits > 8 and "_8" or "") end +| function IMM(bits) return "!I"..(bits <= 32 and bits or 32) end +| function IMMV(bits) return IMM(bits)..(bits > 8 and "_8" or "") end +| function pref16(bits) return bits == 16 and "66" or "" end +| function isa64(bits,x,y) return bits > 32 and (y or "x64") or x or "" end +| function greg(bits) return "GR"..bits end +| function gmem(bits) return "i"..bits.."*" end +| function r64bit(bits) return bits == 64 and 1 or 0 end +| function r16bit(bits) return bits > 8 and 1 or 0 end +| function rrm(rm,r,m) return rm == "rr" and r or m end +| function grm(rm,n) return rrm(rm,greg(n),gmem(n)) end +| ccs = {"O", "NO", "B", "AE", "E", "NE", "BE", "A", "S", "NS", "PE", "PO", "L", "GE", "LE", "G"} +| ccsflags = {"rflag_o", "rflag_o", "rflag_c", "rflag_c", "rflag_z", "rflag_z", "rflag_c rflag_z", "rflag_c rflag_z", +| "rflag_s", "rflag_s", "rflag_p", "rflag_p", "rflag_o", "rflag_s rflag_o", "rflag_s rflag_o rflag_z", "rflag_s rflag_o rflag_z"} +| --// local _ccalias={[2]="c",[2]="nae",[3]="nb",[3]="nc",[4]="z",[5]="nz",[6]="na",[7]="nbe", +| --// [10]="p",[11]="np",[12]="nge",[13]="nl",[14]="ng",[15]="nle"} +| local _RN = {[8] = "B", [16] = "H", [32] = "W", [64] = "D"} +| local _EAX = {[8] = "AL", [16] = "AX", [32] = "EAX", [64] = "RAX"} +| local _EDX = {[8] = "DL", [16] = "DX", [32] = "EDX", [64] = "RDX"} +| local RN = function(N) return _RN[N] end +| local MN = function(N) return "M"..N end +| local RNM = function(rm, N) return rrm(rm, RN(N), "M") end +| local RNMN = function(rm, N) return rrm(rm, RN(N), MN(N)) end +| local EAX = function(N) return _EAX[N] or "??" end +| local EDX = function(N) return _EDX[N] or "??" end +| +| for rm_,rm in ipairs{"rr","rm"} do +| local RM, ROMI = rrm(rm,"R","M"), rrm(rm, "o", "i") +| local RMEM, WMEM, RWMEM = rrm(rm,"","rmem"), rrm(rm,"","wmem"), rrm(rm,"","rwmem") +| for k,v in ipairs{8,16,32,64} do +| local M,R,I, R16,W = gmem(v),greg(v),imm(v),r16bit(v),r64bit(v) +| local RRM = rrm(rm,R,M) +| local ISA, P = isa64(v), pref16(v) +MOV_%(RN(v))%(RNM(rm,v)) + {isa %ISA; ops %R dst/o, %RRM src/i; flags %RMEM; + pref %P; rex %rm %W dst src; coding !par(%(0x8a+R16)) !RRM%(RM)($dst,$src); + fold MOV_M%(RN(v)) MOV_%(RN(v))M} +| for l,w in ipairs{{"ADD",0, 1}, {"OR",1, 1}, {"AND",4, 1}, {"SUB",5, 0}, {"XOR",6, 1}, +| {"ADC",2, 1, 1}, {"SBB",3, 0, 1}} do +%(w[1])_%(RNMN(rm,v))I //= ARITH%(v)_%(RM)I.%(w[2]) + {isa %ISA; ops %RRM dst/%(ROMI), %I imm/i; flags wflags %RWMEM %(w[4] and "rflag_c" or ""); + pref %P; rex %rm %W 0 dst; coding !par(%(0x80+R16)) !RRM%(RM)(!sub(%(w[2])),$dst) %(IMMV(v))($imm); + fold %(w[1])_%(MN(v))I} +%(w[1])_%(RN(v))%(RNM(rm,v)) //= ARITH%(v)_R%(RM).%(w[2]) + {isa %ISA; ops %R dst/io, %RRM src/i; flags wflags %RMEM %(w[4] and "rflag_c" or ""); + pref %P; rex %rm %W dst src; coding !sub(%(w[2]))*8+!par(%(0x02+R16)) !RRM%(RM)($dst,$src); + fold %(w[1])_M%(RN(v)) %(w[1])_%(RN(v))M; commute %(w[3] > 0 and "dst<->src" or "")} + +| if rm == "rm" then +%(w[1])_M%(RN(v)) //: ARITH_M%(RN(v)) + {isa %ISA; ops %M dst/i, %R src/i; flags wflags rwmem %(w[4] and "rflag_c" or ""); + pref %P; rex rm %W src dst; coding !sub(%(w[2]))*8+!par(%(0x00+R16)) !RRMM($src,$dst)} +| else +%(w[1])_%(EAX(v))_I //: ARITH_%(EAX(v))_I + {isa %ISA; ops %R {%(EAX(v))} dst/io, %I imm/i; flags wflags %(w[4] and "rflag_c" or ""); + pref %P; rex rr %W 0 0; coding !sub(%(w[2]))*8+!par(%(0x04+R16)) %(IMMV(v))($imm))} +| end +| end +CMP_%(RNMN(rm,v))I + {isa %ISA; ops %RRM dst/i, %I imm/i; flags wflags %RMEM; + pref %P; rex %rm %W 0 dst; coding !par(%(0x80+R16)) !RRM%(RM)(!sub(7),$dst) %(IMMV(v))($imm); + fold CMP_%(MN(v))I} +CMP_%(RN(v))%(RNM(rm,v)) + {isa %ISA; ops %R dst/i, %RRM src/i; flags wflags %RMEM; + pref %P; rex %rm %W dst src; coding !sub(7)*8+!par(%(0x02+R16)) !RRM%(RM)($dst,$src); + fold CMP_M%(RN(v)) CMP_%(RN(v))M} +TEST_%(RNMN(rm,v))I + {isa %ISA; ops %RRM dst/i, %I imm/i; flags wflags %RMEM; + pref %P; rex %rm %W 0 dst; coding !par(%(0xf6+R16)) !RRM%(RM)(!sub(0),$dst) %(IMM(v))($imm); + fold TEST_%(MN(v))I} +TEST_%(RNM(rm,v))%(RN(v)) + {isa %ISA; ops %RRM dst/i, %R src/i; flags wflags %RMEM; + pref %P; rex %rm %W src dst; coding !par(%(0x84+R16)) !RRM%(RM)($src,$dst); + fold TEST_%(RN(v))M TEST_M%(RN(v)); commute dst<->src} +| for l,w in ipairs{{"INC",0,0xfe,"wflag_c"},{"DEC",1,0xfe,"wflag_c"},{"NOT",2,0xf6,"wflags"},{"NEG",3,0xf6,""}} do +%(w[1])_%(RNMN(rm,v)) //= UNARY%(v)_%(RM).%(w[2]) + {isa %ISA; ops %RRM dst/%(ROMI); flags %(w[4]) %RWMEM; + pref %P; rex %rm %W 0 dst; coding !par(%(w[3]+R16)) !RRM%(RM)(!sub(%(w[2])),$dst); + fold %(w[1])_%(MN(v))} +| end +| for l,w in ipairs{{"ROL",0},{"ROR",1},{"SHL",4},{"SHR",5},{"SAR",7}} do +%(w[1])_%(RNMN(rm,v))I //= SHIFT%(v)_%(RM)I.%(w[2]) + {isa %ISA; ops %RRM dst/%(ROMI), i8 sa/i; flags wflags %RWMEM; + pref %P; rex %rm %W 0 dst; coding !par(%(0xc0+R16)) !RRM%(RM)(!sub(%(w[2])),$dst) !I8_1($sa); + fold %(w[1])_%(MN(v))I} +%(w[1])_%(RNMN(rm,v))_CL //= SHIFT%(v)_%(RM)_CL.%(w[2]) + {isa %ISA; ops %RRM dst/%(ROMI), GR8{cl} sa/i; flags wflags %RWMEM; + pref %P; rex %rm %W 0 dst; coding !par(%(0xd2+R16)) !RRM%(RM)(!sub(%(w[2])),$dst); + fold %(w[1])_%(MN(v))_CL} +| end +| for l,w in ipairs{{"RCL",2},{"RCR",3}} do +%(w[1])_%(RNMN(rm,v))I //= SHIFTC%(v)_%(RM)I.%(w[2]) + {isa %ISA; ops %RRM dst/%(ROMI), i8 sa/i; flags wflags %RWMEM rflag_c; + pref %P; rex %rm %W 0 dst; coding !par(%(0xc0+R16)) !RRM%(RM)(!sub(%(w[2])),$dst) !I8_1($sa); + fold %(w[1])_%(MN(v))I} +%(w[1])_%(RNMN(rm,v))_CL //= SHIFTC%(v)_%(RM)_CL.%(w[2]) + {isa %ISA; ops %RRM dst/%(ROMI), GR8{cl} sa/i; flags wflags %RWMEM rflag_c; + pref %P; rex %rm %W 0 dst; coding !par(%(0xd2+R16)) !RRM%(RM)(!sub(%(w[2])),$dst); + fold %(w[1])_%(MN(v))_CL} +| end +CRC32_W%(RNMN(rm,v)) + {isa %ISA sse42; ops GR32 dst/io, %RRM src/i; flags %RMEM; + pref f2; rex %rm %W dst src; extopcode 0f38; coding !parsub(%(0xf0+R16)) !RRM%(RM)($dst,$src); + fold CRC32_W%(MN(v))} +CMPXCHG_%(RNM(rm,v))%(RN(v))_%(EAX(v)) + {isa %ISA; ops %RRM dst/%(rrm(rm,"io","i")), %R src/io, %R{%(EAX(v))} cmp/i; flags %RMEM wflags; + pref %P; rex %rm %W src dst; extopcode 0f; coding !parsub(%(0xb0+R16)) !RRM%(RM)($src,$dst); + fold CMPXCHG_M%(RN(v))_%(EAX(v))} +XADD_%(RNM(rm,v))%(RN(v)) + {isa %ISA; ops %RRM src/i, %R dst/io; flags %RWMEM; + pref %P; rex %rm %W dst src; extopcode 0f; coding !parsub(%(0xc0+R16)) !RRM%(RM)($dst,$src); + fold XADD_M%(RN(v))} +XCHG_%(RNM(rm,v))%(RN(v)) + {isa %ISA; ops %RRM src/i, %R dst/io; flags %RWMEM; + pref %P; rex %rm %W dst src; coding !parsub(%(0x86+R16)) !RRM%(RM)($dst,$src); + fold XCHG_M%(RN(v)); commute dst<->src} +| if rm == "rm" then +MOV_M%(v)I + {isa %ISA; ops %M dst/i, %I imm/i; flags wmem; + pref %P; rex rm %W 0 dst; coding !par(%(0xc6+R16)) !RRMM(!sub(0),$dst) %(IMM(v))($imm)} +MOV_M%(RN(v)) + {isa %ISA; ops %M dst/i, %R src/i; flags wmem; + pref %P; rex rm %W src dst; coding !par(%(0x88+R16)) !RRMM($src,$dst)} +CMP_M%(RN(v)) + {isa %ISA; ops %M dst/i, %R src/i; flags wflags rmem; + pref %P; rex rm %W src dst; coding !sub(7)*8+!par(%(0x00+R16)) !RRMM($src,$dst)} +TEST_%(RN(v))M + {isa %ISA; ops %R dst/i, %M src/i; flags wflags rmem; + pref %P; rex rm %W dst src; coding !par(%(0x84+R16)) !RRMM($dst,$src)} +| else +MOV_%(RN(v))I + {isa %ISA; ops %R dst/o, i%v imm/i; + pref %P; rex rr %W 0 dst; coding !par(%(0xb0+R16*8))+($dst&7) !I%v($imm); + fold %(v < 64 and ("MOV_M"..v.."I"))} +CMP_%(EAX(v))_I + {isa %ISA; ops %R {%(EAX(v))} dst/i, %I imm/i; flags wflags; + pref %P; rex rr %W 0 0; coding !sub(7)*8+!par(%(0x04+R16)) %(IMMV(v))($imm))} +| end + + +| if v > 8 then +| for l,w in ipairs{{"SHLD",0xa4},{"SHRD",0xac}} do +%(w[1])_%(RNM(rm,v))%(RN(v))I //= SHD_%(RNM(rm,v))%(RN(v))I.%(w[2]%16)} + {isa %ISA; ops %RRM dst/%(ROMI), %R src/i, i8 sa/i; flags wflags %RWMEM; + pref %P; rex %rm %W src dst; extopcode 0f; coding !parsub(%(w[2])) !RRM%(RM)($src,$dst) !I8($sa); + fold %(w[1])_M%(RN(v))I} +%(w[1])_%(RNM(rm,v))%(RN(v))_CL //= SHD%(v)_%(RNM(rm,v))%(RN(v))_CL.%(w[2]%16) + {isa %ISA; ops %RRM dst/%(ROMI), %R src/i, GR8{cl} sa/i; flags wflags %RWMEM; + pref %P; rex %rm %W src dst; extopcode 0f; coding !parsub(%(w[2]+1)) !RRM%(RM)($src,$dst); + fold %(w[1])_M%(RN(v))_CL} +| end +| local RAX, RDX = EAX(v), EDX(v) +| for l,w in ipairs{{"",6},{"I",7}} do +%(w[1])DIV_%(RNMN(rm,v)) //= DIVREM_%(RNMN(rm,v)).%(w[2]) + {isa %ISA; ops %R{%RAX} res/io, %R{%RDX} rem/io, %RRM src/i; flags wflags %RMEM; + pref %P; rex %rm %W 0 src; coding !par(0xf7) !RRM%(RM)(!sub(%(w[2])),$src); + fold %(w[1])DIV_%(MN(v))} +%(w[1])MUL_%(RNMN(rm,v)) //= XMUL_%(RNMN(rm,v)).%(w[2]-2)) + {isa %ISA; ops %R{%RAX} lo/io, %R{%RDX} hi/o, %RRM src/i; flags wflags %RMEM; + pref %P; rex %rm %W 0 src; coding !par(0xf7) !RRM%(RM)(!sub(%(w[2]-2)),$src); + fold %(w[1])MUL_%(MN(v)); commute lo<->src} +| end +IMUL_%(RN(v))%(RNM(rm,v)) + {isa %ISA; ops %R dst/io, %RRM src/i; flags wflags %RMEM; + pref %P; rex %rm %W dst src; coding !par(0xaf) !RRM%(RM)($dst,$src); + fold IMUL_%(RN(v))RM; commute dst<->src} +IMUL_%(RN(v))%(RNM(rm,v))I + {isa %ISA; ops %R dst/o, %RRM src/i, %I imm/i; flags wflags %RMEM; + pref %P; rex %rm %W dst src; coding !par(0x69) !RRM%(RM)($dst,$src) %(IMMV(v))($imm); + fold IMUL_%(RN(v))MI} +BSF_%(RN(v))%(RNM(rm,v)) //= BS%(v)_%(RN(v))%(RNM(rm,v)).12 + {isa %ISA; ops %R dst/o, %RRM src/i; flags wflags %RMEM; + pref %P; rex %rm %W dst src; extopcode 0f; coding !parsub(0xbc) !RRM%(RM)($dst,$src); + fold BSF_%(RN(v))M} +BSR_%(RN(v))%(RNM(rm,v)) //= BS%(v)_%(RN(v))%(RNM(rm,v)).13 + {isa %ISA; ops %R dst/o, %RRM src/i; flags wflags %RMEM; + pref %P; rex %rm %W dst src; extopcode 0f; coding !parsub(0xbd) !RRM%(RM)($dst,$src); + fold BSR_%(RN(v))M} +BT_%(RNM(rm,v))%(RN(v)) + {isa %ISA; ops %RRM dst/i, %R src/i; flags wflags %RMEM; + pref %P; rex %rm %W src dst; extopcode 0f; coding !parsub(0xa3) !RRM%(RM)($src,$dst)} +BT_%(RNMN(rm,v))I + {isa %ISA; ops %RRM dst/i, i8 imm/i; flags wflags %RMEM; + pref %P; rex %rm %W 0 dst; extopcode 0f; coding !par(0xba) !RRM%(RM)(!sub(4),$dst) !I8($imm)} +| for l,w in ipairs{{"S",0xab,5},{"R",0xb3,6},{"C",0xbb,7}} do +BT%(w[1])_%(RNM(rm,v))%(RN(v)) //= BTX_%(RNM(rm,v))%(RN(v)).11 + {isa %ISA; ops %RRM dst/%(ROMI), %R src/i; flags wflags %RWMEM; + pref %P; rex %rm %W src dst; extopcode 0f; coding !parsub(%(w[2])) !RRM%(RM)($src,$dst)} +BT%(w[1])_%(RNMN(rm,v))I //= BTX_%(RNMN(rm,v))I.5 { + {isa %ISA; ops %RRM dst/%(ROMI), i8 imm/i; flags wflags %RWMEM; + pref %P; rex %rm %W 0 dst; extopcode 0f; coding !par(0xba) !RRM%(RM)(!sub(%(w[3])),$dst) !I8($imm)} +| end +| for l,w in ipairs(ccs) do +CMOV%(w)_%(RN(v))%(RNM(rm,v)) //= CMOV_%(RN(v))%(RNM(rm,v)).%(l-1) + {isa cmov %ISA; ops %R dst/io, %RRM src/i; flags subflags %RMEM; + pref %P; rex %rm %W dst src; extopcode 0f; coding !parsub(%(0x40+l-1)) !RRM%(RM)($dst,$src); + fold CMOV%(w)_%(RN(v))M} +| end +| if rm == "rm" then +MOVBE_%(RN(v))M + {isa movbe %ISA; ops %R dst/o, %RRM src/i; flags rmem; + pref %P; rex rm %W dst src; extopcode 0f38; coding !parsub(0xf0) !RRMM($dst,$src)} +MOVBE_M%(RN(v)) + {isa movbe %ISA; ops %RRM dst/i, %R src/i; flags wmem; + pref %P; rex rm %W src dst; extopcode 0f38; coding !parsub(0xf1) !RRMM($src,$dst)} +| else +XCHG_%(EAX(v))_%(RN(v)) + {isa %ISA; ops %R dst/io, %R{%(EAX(v))} src/io; + pref %P; rex rr %W 0 dst; coding !parsub(0x90)+($dst&7)} +| end +| end + + +| if v > 16 then +POPCNT_%(RN(v))%(RNM(rm,v)) + {isa popcnt %ISA; ops %R dst/o, %RRM src/i; flags wflags %RMEM; + pref f3; rex %rm %W dst src; extopcode 0f; coding !par(0xb8) !RRM%(RM)($dst,$src); + fold POPCNT_%(RN(v))M} +| for l,w in ipairs{8,16} do +MOVZX_%(RN(v))%(RNMN(rm,w)) //= MOVX_%(RN(v))%(RNMN(rm,w)).6 + {isa %ISA; ops %R dst/o, %(grm(rm,w)) src/i; flags %RMEM; + rex %rm %W dst src; extopcode 0f; coding !parsub(%(0xb6+R16)) !RRM%(RM)($dst,$src); + fold MOVZX_%(RN(v))%(MN(w))} +MOVSX_%(RN(v))%(RNMN(rm,w)) //= MOVX_%(RN(v))%(RNMN(rm,w)).14 + {isa %ISA; ops %R dst/o, %(grm(rm,w)) src/i; flags %RMEM; + rex %rm %W dst src; extopcode 0f; coding !parsub(%(0xbe+R16)) !RRM%(RM)($dst,$src); + fold MOVSX_%(RN(v))%(MN(w))} +| end +ANDN_%(RN(v))%(RN(v))%(RNM(rm,v)) + {isa bmi1 %ISA; ops %R dst/o, %R src1/i, %RRM src/i; flags wflags %RMEM; + vex %rm %W src1 dst src 0; extopcode 0f38; coding !parsub(0xf2) !RRM%(RM)($dst,$src); + fold ANDN_%(RN(v))%(RN(v))M} +BEXTR_%(RN(v))%(RNM(rm,v))%(RN(v)) + {isa bmi1 %ISA; ops %R dst/o, %RRM src/i, %R src1/i; flags wflags %RMEM; + vex %rm %W src1 dst src 0; extopcode 0f38; coding !parsub(0xf7) !RRM%(RM)($dst,$src); + fold BEXTR_%(RN(v))M%(RN(v))} +BLSI_%(RN(v))%(RNM(rm,v)) //= BMI1B_%(RN(v))%(RNM(rm,v)).3 + {isa bmi1 %ISA; ops %R dst/o, %RRM src/i; flags wflags %RMEM; + vex %rm %W dst 0 src 0; extopcode 0f38; coding !par(0xf3) !RRM%(RM)(!sub(3),$src); + fold BLSI_%(RN(v))M} +BLSMSK_%(RN(v))%(RNM(rm,v)) //= BMI1B_%(RN(v))%(RNM(rm,v)).2 + {isa bmi1 %ISA; ops %R dst/o, %RRM src/i; flags wflags %RMEM; + vex %rm %W dst 0 src 0; extopcode 0f38; coding !par(0xf3) !RRM%(RM)(!sub(2),$src); + fold BLSMSK_%(RN(v))M} +BLSR_%(RN(v))%(RNM(rm,v)) //= BMI1B%(v)_%(RN(v))%(RNM(rm,v)).1 + {isa bmi1 %ISA; ops %R dst/o, %RRM src/i; flags wflags %RMEM; + vex %rm %W dst 0 src 0; extopcode 0f38; coding !par(0xf3) !RRM%(RM)(!sub(1),$src); + fold BLSR_%(RN(v))M} +BZHI_%(RN(v))%(RNM(rm,v))%(RN(v)) + {isa bmi2 %ISA; ops %R dst/o, %RRM src/i, %R src1/i; flags wflags %RMEM; + vex %rm %W src1 dst src 0; extopcode 0f38; coding !parsub(0xf5) !RRM%(RM)($dst,$src); + fold BZHI_%(RN(v))M%(RN(v))} +LZCNT_%(RN(v))%(RNM(rm,v)) + {isa lzcnt %ISA; ops %R dst/o, %RRM src/i; flags wflags %RMEM; + pref f3 %P; rex %rm %W dst src; extopcode 0f; coding !parsub(0xbd) !RRM%(RM)($dst,$src); + fold LZCNT_%(RN(v))M} +TZCNT_%(RN(v))%(RNM(rm,v)) + {isa bmi1 %ISA; ops %R dst/o, %RRM src/i; flags wflags %RMEM; + pref %P; rex %rm %W dst src; extopcode 0f; coding !parsub(0xbc) !RRM%(RM)($dst,$src); + fold TZCNT_%(RN(v))M} +MULX_%(RN(v))%(RN(v))%(RNM(rm,v)) + {isa bmi2 %ISA; ops %R dst/o, %R src1/o, %RRM src/i, %R{%(EDX(v))} src2/i; flags %RMEM; + pref f2; vex %rm %W src1 dst src 0; extopcode 0f38; coding !parsub(0xf6) !RRM%(RM)($dst,$src); + fold MULX_%(RN(v))%(RN(v))M; commute src1<->src2} +PDEP_%(RN(v))%(RN(v))%(RNM(rm,v)) + {isa bmi2 %ISA; ops %R dst/o, %R src1/i, %RRM src/i; flags %RMEM; + pref f2; vex %rm %W src1 dst src 0; extopcode 0f38; coding !parsub(0xf5) !RRM%(RM)($dst,$src); + fold PDEP_%(RN(v))%(RN(v))M} +PEXT_%(RN(v))%(RN(v))%(RNM(rm,v)) + {isa bmi2 %ISA; ops %R dst/o, %R src1/i, %RRM src/i; flags %RMEM; + pref f3; vex %rm %W src1 dst src 0; extopcode 0f38; coding !parsub(0xf5) !RRM%(RM)($dst,$src); + fold PEXT_%(RN(v))%(RN(v))M} +RORX_%(RN(v))%(RNM(rm,v))I + {isa bmi2 %ISA; ops %R dst/o, %RRM src/i, i8 imm/i; flags %RMEM; + pref f2; vex %rm %W 0 dst src 0; extopcode 0f3a; coding !parsub(0xf0) !RRM%(RM)($dst,$src) !I8($imm); + fold RORX_%(RN(v))MI} +SARX_%(RN(v))%(RNM(rm,v))%(RN(v)) + {isa bmi2 %ISA; ops %R dst/o, %RRM src/i, %R src1/i; flags %RMEM; + pref f3; vex %rm %W src1 dst src 0; extopcode 0f38; coding !parsub(0xf7) !RRM%(RM)($dst,$src); + fold SARX_%(RN(v))M%(RN(v))} +SHLX_%(RN(v))%(RNM(rm,v))%(RN(v)) + {isa bmi2 %ISA; ops %R dst/o, %RRM src/i, %R src1/i; flags %RMEM; + pref 66; vex %rm %W src1 dst src 0; extopcode 0f38; coding !parsub(0xf7) !RRM%(RM)($dst,$src); + fold SHLX_%(RN(v))M%(RN(v))} +SHRX_%(RN(v))%(RNM(rm,v))%(RN(v)) + {isa bmi2 %ISA; ops %R dst/o, %RRM src/i, %R src1/i; flags %RMEM; + pref f2; vex %rm %W src1 dst src 0; extopcode 0f38; coding !parsub(0xf7) !RRM%(RM)($dst,$src); + fold SHRX_%(RN(v))M%(RN(v))} +| if rm == "rm" then +LEA_%(RN(v))M + {isa %ISA; ops %R dst/o, i8* src/i; + rex rm %W dst src; coding !par(0x8d) !RRMM($dst,$src)} +| else +BSWAP_%(RN(v)) + {isa %ISA; ops %R dst/io; + pref %P; rex rr %W 0 dst; extopcode 0f; coding !par(0xc8)+($dst&7)} +LEA_%(RN(v))%(RN(v))%(RN(v))II + {isa %ISA; ops %R dst/o, %R src1/i, %R src2/i, i8 mul2/i, i32 imm/i; + rexlea %W dst src1 src2; coding !par(0x8d) !RRMLEA($dst,$src1,$src2,$mul2,$imm)} +RDRAND_%(RN(v)) + {isa rdrand %ISA; ops %R dst/o; flags wflags; + pref %P; rex rr %W 0 dst; extopcode 0f; coding !par(0xc7) !RRMR(!sub(6),$dst)} +RDFSBASE_%(RN(v)) + {isa x64; ops %R dst/o; + pref f3; rex rr %W 0 dst; extopcode 0f; coding !par(0xae) !RRMR(!sub(0),$dst)} +RDGSBASE_%(RN(v)) + {isa x64; ops %R dst/o; + pref f3; rex rr %W 0 dst; extopcode 0f; coding !par(0xae) !RRMR(!sub(1),$dst)} +WRFSBASE_%(RN(v)) + {isa x64; ops %R dst/i; + pref f3; rex rr %W 0 dst; extopcode 0f; coding !par(0xae) !RRMR(!sub(2),$dst)} +WRGSBASE_%(RN(v)) + {isa x64; ops %R dst/i; + pref f3; rex rr %W 0 dst; extopcode 0f; coding !par(0xae) !RRMR(!sub(3),$dst)} +| end +| end +| end +MOVSX_D%(RNMN(rm,32)) + {isa x64only; ops GR64 dst/o, %(grm(rm,32)) src/i; flags %RMEM; + rex %rm 1 dst src; coding !par(%(0x63)) !RRM%(RM)($dst,$src); + fold MOVSX_DM32} +DIV_%(RNMN(rm,8)) //= DIVREM8_%(RM).6 + {isa ; ops GR8{al} quot/o, GR8{ah} rem/o, GR16{ax} div/i, %(grm(rm,8)) src/i; flags wflags %RMEM; + rex %rm 0 0 src; coding !par(0xf6) !RRM%(RM)(!sub(6),$src); + fold DIV_M8} +IDIV_%(RNMN(rm,8)) //= DIVREM8_%(RM).7 + {isa ; ops GR8{al} quot/o, GR8{ah} rem/o, GR16{ax} div/i, %(grm(rm,8)) src/i; flags wflags %RMEM; + rex %rm 0 0 src; coding !par(0xf6) !RRM%(RM)(!sub(7),$src); + fold IDIV_M8} +MUL_%(RNMN(rm,8)) //= XMUL8_%(RM).4 + {isa ; ops GR16{ax} pr/o, GR8{al} src2/i, %(grm(rm,8)) src/i; flags wflags %RMEM; + rex %rm 0 0 src; coding !par(0xf6) !RRM%(RM)(!sub(4),$src); + fold MUL_M8; commute src<->src2} +IMUL_%(RNMN(rm,8)) //= XMUL8_%(RM).5 + {isa ; ops GR16{ax} pr/o, GR8{al} src2/i, %(grm(rm,8)) src/i; flags wflags %RMEM; + rex %rm 0 0 src; coding !par(0xf6) !RRM%(RM)(!sub(5),$src); + fold IMUL_M8; commute src<->src2} +| for l,w in ipairs(ccs) do +SET%(w)_%(RNMN(rm,8)) //= SET_%(RM).%(l-1) + {isa ; ops %(grm(rm,8)) dst/%(ROMI); flags subflags %WMEM; + rex %rm 0 0 dst; extopcode 0f; coding !parsub(%(0x90+l-1)) !RRM%(RM)(0,$dst); + fold SET%(w)_M8} +| end +IJMP_%(RNMN(rm,32))_x32 //= IJMP%(RM)_x32.4 + {isa x32only; ops %(grm(rm,32)) src/i; flags cf_jmp %RMEM; + rex %rm 0 0 src; coding !par(0xff) !RRM%(RM)(!sub(4),$src); + fold IJMP_M32_x32} +IJMP_%(RNMN(rm,64))_x64 //= IJMP%(RM)_x64.4 + {isa x64only; ops %(grm(rm,64)) src/i; flags cf_jmp %RMEM; + rex %rm 0 0 src; coding !par(0xff) !RRM%(RM)(!sub(4),$src); + fold IJMP_M64_x64} +ICALL_%(RNMN(rm,32))_x32 //= ICALL%(RM)_x32.2 + {isa x32only; ops %(grm(rm,32)) src/i; flags cf_call %RMEM; + rex %rm 0 0 src; coding !par(0xff) !RRM%(RM)(!sub(2),$src); + fold ICALL_M32_x32} +ICALL_%(RNMN(rm,64))_x64 //= ICALL%(RM)_x64.2 + {isa x64only; ops %(grm(rm,64)) src/i; flags cf_call %RMEM; + rex %rm 0 0 src; coding !par(0xff) !RRM%(RM)(!sub(2),$src); + fold ICALL_M64_x64} +| end + +| ------------------------------------ +MOV_DI32S + {isa x64; ops GR64 dst/o, i32 imm/i; + rex rr 1 0 dst; coding !par(0xc7) !RRMR(!sub(0),$dst) !I32($imm); + fold MOV_M64I} +MOV_DI32U + {isa x64; ops GR64 dst/o, i32 imm/i; + rex rr 0 0 dst; coding !par(0xb8)+($dst&7) !I32($imm)} +| ------------------------------------ +INC_H_x32 //= INCDEC_H_x32.0 + {isa x32only; ops GR16 dst/io; flags wflag_c; + pref 66; rex rr 0 0 dst; coding !parsub(0x40)+($dst&7); + fold INC_M16} +DEC_H_x32 //= INCDEC_H_x32.8 + {isa x32only; ops GR16 dst/io; flags wflag_c; + pref 66; rex rr 0 0 dst; coding !parsub(0x48)+($dst&7); + fold DEC_M16} +INC_W_x32 //= INCDEC_W_x32.0 + {isa x32only; ops GR32 dst/io; flags wflag_c; + rex rr 0 0 dst; coding !parsub(0x40)+($dst&7); + fold INC_M32} +DEC_W_x32 //= INCDEC_W_x32.8 + {isa x32only; ops GR32 dst/io; flags wflag_c; + rex rr 0 0 dst; coding !parsub(0x48)+($dst&7); + fold DEC_M32} +CBW {ops GR16{ax} dst/o, GR8{al} src/i; pref 66; rex rr 0 0 0; coding !par(0x98)} +CWDE {ops GR32{eax} dst/o, GR16{ax} src/i; rex rr 0 0 0; coding !par(0x98)} +CDQE {ops GR64{rax} dst/o, GR32{eax} src/i; rex rr 1 0 0; coding !par(0x98); isa x64} +CWD {ops GR16{dx} dst/o, GR16{ax} src/i; pref 66; rex rr 0 0 0; coding !par(0x99)} +CDQ {ops GR32{edx} dst/o, GR32{eax} src/i; rex rr 0 0 0; coding !par(0x99)} +CQO {ops GR64{rdx} dst/o, GR64{rax} src/i; rex rr 1 0 0; coding !par(0x99); isa x64} +PAUSE {} {pref f3; coding !parsub(0x90)} +CLC {flags wflag_c; coding !parsub(0xf8)} +//CLD {flags wflag_d; coding !parsub(0xfc)} +//CLI {flags wflag_i; coding !parsub(0xfa)} +CMC {flags rflag_c wflag_c; coding !parsub(0xf5)} +STC {flags wflag_c; coding !parsub(0xf9)} +//STD {flags wflag_d; coding !parsub(0xfd)} +//STI {flags wflag_i; coding !parsub(0xfb)} +CLFLUSH {isa clflush; ops i8* src/i; flags rwmem; rex rm 0 0 src; extopcode 0f; coding !par(0xae) !RRMM(!sub(7),$src)} +LAHF {ops GR8{ah} dst/o; flags rflags; coding !parsub(0x9f)} +SAHF {ops GR8{ah} dst/i; flags wflags; coding !parsub(0x9e)} +LFENCE {isa sse2; flags rwmem; rex rr 0 0 0; extopcode 0f; coding !par(0xae) !RRMR(!sub(5),0)} +MFENCE {isa sse2; flags rwmem; rex rr 0 0 0; extopcode 0f; coding !par(0xae) !RRMR(!sub(6),0)} +SFENCE {isa sse; flags rwmem; rex rr 0 0 0; extopcode 0f; coding !par(0xae) !RRMR(!sub(7),0)} +//MONITOR_RAX_ECX_EDX +// {isa monitor; ops GR32{eax} dst/i, GR32{ecx} ext/i, GR32{edx} hint/i; flags rwmem; +// extopcode 0f; coding 0x01 !parsub(0xc8)} //--0xc8 +//MWAIT_ECX_EAX +// {isa monitor; ops GR32{ecx} ext/i, GR32{eax} hint/i; flags rwmem; +// extopcode 0f; coding 0x01 !parsub(0xc9)} //--0xc9 + +LOCK {coding !parsub(0xf0)} +//RDPMC {isa rdpmc; ops GR32{edx} hi/o, GR32{eax} lo/o, GR32{ecx} sel/i; extopcode 0f; coding !parsub(0x33)} +//xacquire is ignored if hle is not present +//useable with lock_{add,adc,and,btc,btr,bts,cmpxchg,cmpxchg8b,dec,inc,neg,not,or,sbb,sub,xor,xadd,xchg}_mr, +//useable with xchg_mr +XACQUIRE {isa hle; coding !parsub(0xf2)} +//xrelease is ignored if hle is not present +//useable with lock_{add,adc,and,btc,btr,bts,cmpxchg,cmpxchg8b,dec,inc,neg,not,or,sbb,sub,xor,xadd,xchg}_mr, +//useable with xchg_mr, mov_mr, mov_mi +XRELEASE {isa hle; coding !parsub(0xf3)} +// resume operation at fallback address of outermost xbegin fallback address, imm is provided as EAX[31:24] +XABORT_I {isa rtm; ops i8 imm/i; rex rr 0 0 0; coding !par(0xc6) !RRMR(!sub(7),0) !I8($imm)} +XBEGIN_REL16 {isa rtm; ops BB fback/i; flags cf_jmp cf_fallthru; pref 66; coding !par(0xc7) !RRMR(!sub(7),0) !REL16($fback)} +XBEGIN_REL32 {isa rtm; ops BB fback/i; flags cf_jmp cf_fallthru; coding !par(0xc7) !RRMR(!sub(7),0) !REL32($fback)} +XEND {isa rtm; extopcode 0f; coding 0x01 !parsub(0xd5)} +XTEST {isa rtm; flags wflags; extopcode 0f; coding 0x01 !parsub(0xd6)} + +XGETBV_EDX_EAX_ECX + {isa avx; ops GR32{edx} hi/o, GR32{eax} lo/o, GR32{ecx} sel/i; extopcode 0f; coding !par(1) !RRMR(!sub(2),0)} + +CPUID + {ops GR32{eax} r1/io, GR32{ebx} r2/o, GR32{ecx} r3/io, GR32{edx} r4/o; extopcode 0f; coding !parsub(0xa2)} +RDTSC + {isa rdtsc; ops GR32{eax} lo/o, GR32{edx} hi/o; extopcode 0f; coding !parsub(0x31)} +RDTSCP + {isa rdtscp; ops GR32{eax} lo/o, GR32{edx} hi/o, GR32{ecx} aux/o; extopcode 0f; coding 0x01 !parsub(0xf9)} + +| -------------------------- +| for l,w in ipairs(ccs) do +J%(w)_BB_FT //= JCC_BB_FT.%(l-1) + {ops BB tgt/i, BB ft/i; flags cf_jmp cf_fallthru subflags; + extopcode 0f; coding !parsub(%(0x80+l-1)) !REL32_8_JCC($tgt) } +| end +JMP_BB {ops BB tgt/i; flags cf_jmp; coding !par(0xe9) !REL32_8_JMP($tgt)} +JMP_FT {ops BB ft/i; flags cf_fallthru } +RET {ops GR32{esp} sp/io; flags cf_ret; coding !par(0xc3) } +RET_AMD {ops GR32{esp} sp/io; flags cf_ret; pref f3; coding !par(0xc3)} +RET_I {ops GR32{esp} sp/io, i16 imm/i; flags cf_ret; coding !par(0xc2) !I16($imm) } +PUSH_I {ops GR32{esp} sp/io, i32 imm/i; flags usemem; coding !par(0x68) !I32_8($imm) } +CALL_I_x32 {ops GR32{esp} sp/io, i32 tgt/i; flags cf_call; coding !par(0xe8) !REL32($tgt) } +CALL_I_x64 {ops GR32{esp} sp/io, i64 tgt/i; flags cf_call; coding !par(0xe8) !REL32($tgt) } +PUSH_W_x32 + {isa x32only; ops GR32{esp} sp/io, GR32 dst/i; flags usemem; + rex rr 0 0 dst; coding !par(0x50)+($dst&7); + fold PUSH_M32_x32} +POP_W_x32 + {isa x32only; ops GR32{esp} sp/io, GR32 dst/o; flags usemem; + rex rr 0 0 dst; coding !par(0x58)+($dst&7); + fold POP_M32_x32} +PUSH_M32_x32 + {isa x32only; ops GR32{esp} sp/io, i32* dst/i; flags usemem rmem; + rex rm 0 0 dst; coding !par(0xff) !RRMM(!sub(6),$dst) } +POP_M32_x32 + {isa x32only; ops GR32{esp} sp/io, i32* dst/i; flags usemem wmem; + rex rm 0 0 dst; coding !par(0x8f) !RRMM(!sub(0),$dst) } +PUSH_D_x64 + {isa x64only; ops GR32{esp} sp/io, GR64 dst/i; flags usemem; + rex rr 0 0 dst; coding !par(0x50)+($dst&7); + fold PUSH_M64_x64} +POP_D_x64 + {isa x64only; ops GR32{esp} sp/io, GR64 dst/o; flags usemem; + rex rr 0 0 dst; coding !par(0x58)+($dst&7); + fold POP_M64_x64} +PUSH_M64_x64 + {isa x64only; ops GR32{esp} sp/io, i64* dst/i; flags usemem rmem; + rex rm 0 0 dst; coding !par(0xff) !RRMM(!sub(6),$dst) } +POP_M64_x64 + {isa x64only; ops GR32{esp} sp/io, i32* dst/i; flags usemem wmem; + rex rm 0 0 dst; coding !par(0x8f) !RRMM(!sub(0),$dst) } +| --EMMS {} { parm 0x77; coding !par() : pref 0x0f }{ mmx } +PUSHF + {ops GR32{esp} sp/io; flags rflags usemem; + coding !parsub(0x9c)} +POPF + {ops GR32{esp} sp/io; flags wflags usemem; + coding !parsub(0x9d)} + +CMPXCHG8B_M64_EDX_EAX_ECX_EBX + {isa ; ops i64* dst/i, GR32{eax} v1lo/io, GR32{edx} v1hi/io, GR32{ebx} v2lo/i, GR32{ecx} v2hi/i; flags wflags, wmem; + pref ; rex rm 0 0 dst; extopcode 0f; coding !par(0xc7) !RRMM(!sub(1),$dst)} +CMPXCHG16B_M128_RDX_RAX_RCX_RBX + {isa x64; ops i64* dst/i, GR64{rax} v1lo/io, GR64{rdx} v1hi/io, GR64{rbx} v2lo/i, GR64{rcx} v2hi/i; flags wflags, wmem; + pref ; rex rm 1 0 dst; extopcode 0f; coding !par(0xc7) !RRMM(!sub(1),$dst)} +| ------------------------------------ +| function SDBITS(SD) return SD == "S" and 32 or 64 end +| function vreg(x,n) return "VR"..(n >= 128 and n or 128) end +| function vmem(x,n) return gmem(n) end +| function vmems(x,n) return vmem(x,SDBITS(x)) end +| function vrm(rm,x,n) return rrm(rm,vreg(x,n),vmem(x,n)) end +| function vrms(rm,x,n) return rrm(rm,vreg(x,n),vmems(x,n)) end +| local _XN = {[8] = "X", [16] = "X", [32] = "X", [64] = "X", [128] = "X", [256] = "Y", [512] = "Z"} +| local function V(w) return w[1] == "avx" and "V" or "" end +| local function XN(w) return _XN[w[2]] or "?" end +| local function XNH(w,h) return _XN[h and w[2]/2 or w[2]]end +| local function XNM(w) return rrm(w[3],XN(w),"M") end +| local function MH(w,h,f) return (h and ("M"..(w[2]/2))) or (f and "M"..w[2]) or "M" end +| local function XNMH(w,h,f) return rrm(w[3],XNH(w,h),MH(w,h,f)) end +| local function XNMN(w,h) return rrm(w[3],XN(w),(h and "M"..w[2] or "M")) end +| local function SN(SD) return "M"..SDBITS(SD) end +| local function XSN(w,SD) return rrm(w[3],"X",SN(SD)) end +| local function XNSN(w,SD) return rrm(w[3],XN(w),SN(SD)) end +| local function X(w) return w[1] == "avx" and XN(w) or "" end +| local function XM(w) return rrm(w[3],"X",w[2] == 128 and "M" or "M128") end +| local function XMN(w,n) return rrm(w[3],"X",w[2] == n and "M" or MN(n)) end +| local function YM(w) return rrm(w[3],"Y",w[2] == 256 and "M" or "M256") end +| local function DST(w, T) return w[1] == "avx" and (T.." dst/o, "..T.." src1/i") or (T.." dst/io") end +| do -- only fp sse +| function s_66(x) return x == "S" and "" or "66" end +| function s_f3(x) return x == "S" and "" or "f3" end +| function s66f2(x) return x == "S" and "66" or "f2" end +| function sf366(x) return x == "S" and "f3" or "66" end +| function sf3f2(x) return x == "S" and "f3" or "f2" end +| function s5be6(x) return x == "S" and "0x5b" or "0xe6" end +| function dupmem(x,n) return x == "D" and n == 128 and vmems(x,n) or vmem(x,n) end +| ------------------------------------ +| sse = {{"ADD",0x58,1}, {"MUL",0x59,1}, {"MIN",0x5d,1}, {"MAX",0x5f,1}, {"SUB",0x5c,0}, {"DIV",0x5e,0}} +| ssea = {{"SQRT",0x51}} +| ssec = {{"RSQRT",0x52,"S"}, {"RCP",0x53,"S"}} +| sseb = {{"AND",0x54, 1}, {"ANDN",0x55, 0}, {"OR",0x56, 1}, {"XOR",0x57, 0}, {"UNPCKL",0x14,0}, {"UNPCKH",0x15,0}, +| {"ADDSUB",0xd0,0,"sse3",{S="0xf2",D="0x66"}}, {"HADD",0x7c,0,"sse3",{S="0xf2",D="0x66"}}, {"HSUB",0x7d,0,"sse3",{S="0xf2",D="0x66"}},} +| ssecmp = {{"EQ",0}, {"LT",1}, {"LE",2}, {"UNORD",3}, {"NEQ",4}, {"NLT",5}, {"NLE",6}, {"ORD",7} } +| ssefma = {{"MADD",0x8,true},{"MSUB",0xa,true},{"NMADD",0xc,true},{"NMSUB",0xe,true}, +| {"MADDSUB",6,false},{"MSUBADD",7,false}} +| function VEX(w,wbit,src1,reg,rm) +| return (w[1]=="avx" and "vex" or "rex").." "..w[3].." " +| ..wbit.." "..(w[1]=="avx" and src1 or "").." "..reg.." "..rm +| ..(w[1]=="avx" and (" "..(w[2] == 256 and 1 or 0)) or "") +| end +| local function wbit(W) local t = {S=0,D=1}; return t[W] or W or 0 end +| function VEX_D0S(w,W) return VEX(w,wbit(W),"0","dst","src") end +| function VEX_S0D(w,W) return VEX(w,wbit(W),"0","src","dst") end +| function VEX_DS(w,W) return VEX(w,wbit(W),"src1","dst","src") end +| function VEX_SD(w,W) return VEX(w,wbit(W),"src1","src","dst") end +| function VEX_0D(w,W) return VEX(w,wbit(W),"src1",0,"dst") end +| for k,SD in ipairs{"S","D"} do +| local D = SD == "D" and 1 or 0 +| local PP, PS = s_66(SD), sf3f2(SD) +| for l,w in ipairs{{"sse",128,"rr"},{"sse",128,"rm"}, +| {"avx",128,"rr"},{"avx",128,"rm"},{"avx",256,"rr"},{"avx",256,"rm"}} do +| local VR, VM, SM = vreg(SD,w[2]), vmem(SD,w[2]), vmems(SD) +| local RM, ROMI = rrm(w[3],"R","M"), rrm(w[3], "o", "i") +| local VRM, SRM = rrm(w[3],VR,VM), rrm(w[3],VR,SM) +| local RMEM, WMEM = rrm(w[3],"","rmem"), rrm(w[3],"","wmem") +| local COMMUTE = (w[1]=="avx" and "src1" or "dst").."<->src" +| local DS = SD == "D" and "S" or "D" +| local ISA = (w[1]=="avx" and w[1]) or (d == "D" and "sse2" or "sse") +| for m,u in ipairs{{"A",0x28},{"U",0x10}} do +| local PM, AU, PAR = PP, u[1], u[2] +| if w[3] == "rm" then +%(V(w))MOV%(AU)P%(SD)_M%(XN(w)) + {isa %ISA; ops %VM dst/i, %VR src/i; flags wmem; + pref %PM; %(VEX_S0D(w)); extopcode 0f; coding !par(%(PAR+1)) !RRMM($src,$dst)} +| end +%(V(w))MOV%(AU)P%(SD)_%(XN(w))%(XNM(w)) + {isa %ISA; ops %VR dst/i, %VRM src/i; flags wmem; + pref %PM; %(VEX_D0S(w)); extopcode 0f; coding !par(%(PAR)) !RRM%(RM)($dst,$src); + fold %(V(w))MOV%(AU)P%(SD)_M%(XN(w)) %(V(w))MOV%(AU)P%(SD)_%(XN(w))M} +| end +| for m,u in ipairs(sse) do +%(V(w))%(u[1])P%(SD)_%(XN(w))%(X(w))%(XNM(w)) + {isa %ISA; ops %(DST(w,VR)), %VRM src/i; flags %RMEM; + pref %PP; %(VEX_DS(w)); extopcode 0f; coding !parsub(%(u[2])) !RRM%(RM)($dst,$src); + fold %(V(w))%(u[1])P%(SD)_%(XN(w))%(X(w))M; commute %(u[3] > 0 and COMMUTE or "")} +| end +| for m,u in ipairs(ssea) do +%(V(w))%(u[1])P%(SD)_%(XN(w))%(XNM(w)) + {isa %ISA; ops %(DST(w,VR)), %VRM src/i; flags %RMEM; + pref %PP; %(VEX_DS(w)); extopcode 0f; coding !parsub(%(u[2])) !RRM%(RM)($dst,$src); + fold %(V(w))%(u[1])P%(SD)_%(XN(w))M} +| end +| for m,u in ipairs(sseb) do +%(V(w))%(u[1])P%(SD)_%(XN(w))%(X(w))%(XNM(w)) + {isa %ISA %(u[4] or ""); ops %(DST(w,VR)), %VRM src/i; flags %RMEM; + pref %(u[5] and u[5][v] or PP); %(VEX_DS(w)); extopcode 0f; coding !parsub(%(u[2])) !RRM%(RM)($dst,$src); + fold %(V(w))%(u[1])P%(SD)_%(XN(w))%(X(w))M; commute %(u[3] > 0 and COMMUTE or "")} +| end +| for m,u in ipairs(ssecmp) do +%(V(w))CMP%(u[1])P%(SD)_%(XN(w))%(X(w))%(XNM(w)) //= %(V(w))SIMDCMPP%(SD)_%(XN(w))%(X(w))%(XNM(w)).%(u[2]) + {isa %ISA; ops %(DST(w,VR)), %VRM src/i; flags %RMEM; + pref %PP; %(VEX_DS(w)); extopcode 0f; coding !par(0xc2) !RRM%(RM)($dst,$src) !I8(!sub(%(u[2]))); + fold %(V(w))CMP%(u[1])P%(SD)_%(XN(w))%(X(w))M} +| end +%(V(w))SHUFP%(SD)_%(XN(w))%(X(w))%(XNM(w))I + {isa %ISA; ops %(DST(w,VR)), %VRM src/i, i8 imm/i; flags %RMEM; + pref %PP; %(VEX_DS(w)); extopcode 0f; coding !par(0xc6) !RRM%(RM)($dst,$src) !I8($imm); + fold %(V(w))SHUFP%(SD)_%(XN(w))%(X(w))MI} +%(V(w))ROUNDP%(SD)_%(XN(w))%(XNM(w))I + {isa %ISA sse41; ops %VR dst/o, %VRM src/i, i8 imm/i; flags %RMEM; + pref 66; %(VEX_D0S(w)); extopcode 0f3a; coding !parsub(%(0x08+D)) !RRM%(RM)($dst,$src) !I8($imm); + fold %(V(w))ROUNDP%(SD)_%(XN(w))MI} +%(V(w))DPP%(SD)_%(XN(w))%(X(w))%(XNM(w))I + {isa %ISA sse41; ops %(DST(w,VR)), %VRM src/i, i8 imm/i; flags %RMEM; + pref %PP; %(VEX_DS(w)); extopcode 0f3a; coding !parsub(%(0x40+D)) !RRM%(RM)($dst,$src) !I8($imm); + fold %(V(w))DPP%(SD)_%(XN(w))%(X(w))MI; commute %COMMUTE} +%(V(w))BLENDP%(SD)_%(XN(w))%(X(w))%(XNM(w))I + {isa %ISA sse41; ops %(DST(w,VR)), %VRM src/i, i8 imm/i; flags %RMEM; + pref %PP; %(VEX_DS(w)); extopcode 0f3a; coding !parsub(%(0x0c+D)) !RRM%(RM)($dst,$src) !I8($imm); + fold %(V(w))BLENDP%(SD)_%(XN(w))%(X(w))MI} +| local VRX1, VRMX1 = vreg(SD,w[2]/(2-D)), vrm(w[3],SD,w[2]/(1+D)) +| local VRX2, VRMX2 = vreg(SD,w[2]/(1+D)), vrm(w[3],SD,w[2]/(2-D)) +%(V(w))CVTDQ2P%(SD)_%(XNH(w))%(XNMH(w,SD=="D")) + {isa %ISA sse2; ops %VR dst/o, %VRMX1 src/i; flags %RMEM; + pref %(s_f3(SD)); %(VEX_D0S(w)); extopcode 0f; coding !parsub(%(s5be6(SD))) !RRM%(RM)($dst,$src); + fold %(V(w))CVTDQ2P%(SD)_%(XNH(w))%(MH(w,SD=="D"))} +%(V(w))CVTP%(SD)2DQ_%(XNH(w,SD=="D"))%(XNMN(w,SD=="D" and w[2]>128)) + {isa %ISA sse2; ops %VRX2 dst/o, %VRM src/i; flags %RMEM; + pref %(s66f2(SD)); %(VEX_D0S(w)); extopcode 0f; coding !parsub(%(s5be6(SD))) !RRM%(RM)($dst,$src); + fold %(V(w))CVTP%(SD)2DQ_%(XNH(w,SD=="D"))%(SD=="D" and w[2]>128 and MN(w[2]) or "M")} +%(V(w))CVTTP%(SD)2DQ_%(XNH(w,SD=="D"))%(XNMN(w,SD=="D" and w[2]>128)) + {isa %ISA sse2; ops %VRX2 dst/o, %VRM src/i; flags %RMEM; + pref %(sf366(SD)); %(VEX_D0S(w)); extopcode 0f; coding !parsub(%(s5be6(SD))) !RRM%(RM)($dst,$src); + fold %(V(w))CVTTP%(SD)2DQ_%(XNH(w,SD=="D"))%(SD=="D" and w[2]>128 and MN(w[2]) or "M")} +%(V(w))CVTP%(SD)2P%(DS)_%(XNH(w,SD=="D"))%(XNMH(w,SD=="S",SD=="D" and w[2]>128)) + {isa %ISA sse2; ops %VRX2 dst/o, %VRMX2 src/i; flags %RMEM; + pref %PP; %(VEX_D0S(w)); extopcode 0f; coding !parsub(0x5a) !RRM%(RM)($dst,$src); + fold %(V(w))CVTP%(SD)2P%(DS)_%(XNH(w,SD=="D"))%(MH(w,SD=="S",SD=="D" and w[2]>128))} +| if w[3] == "rr" then +%(V(w))MOVMSKP%(SD)_W%(XN(w)) + {isa %ISA; ops GR32 dst/o, %VR src/i; + pref %(s_66(SD)); %(VEX_D0S(w)); extopcode 0f; coding !parsub(0x50) !RRM%(RM)($dst,$src)} +| end +| if w[1] == "avx" then +VTESTP%(SD)_%(XN(w))%(XNM(w)) + {isa avx; ops %VR dst/i, %VRM src/i; flags %RMEM wflags; + pref 66; %(VEX_D0S(w)); extopcode 0f38; coding !parsub(%(0x0e+D)) !RRM%(RM)($dst,$src); + fold VTESTP%(SD)_%(XN(w))M; commute dst<->src} +| if w[3] == "rm" then +VGATHERDP%(SD)_%(XN(w))M%(XNH(w,SD=="D"))%(XN(w)) //= %(V(w))GATHERP%(SD)_%(XN(w))M%(XN(w)).2 + {isa avx2; ops %VR dst/o, %VM src/i, %VR ix/i, %VR src1/i; flags rmem vsib; + pref 66; %(VEX_DS(w,D)); extopcode 0f38; coding !parsub(0x92) !RRMMVSIB($dst,$src,$ix)} +VGATHERQP%(SD)_%(XNH(w,SD=="S"))M%(XN(w))%(XNH(w,SD=="S")) //= %(V(w))GATHERP%(SD)_%(XN(w))M%(XN(w)).3 + {isa avx2; ops %VR dst/o, %VM src/i, %VR ix/i, %VR src1/i; flags rmem vsib; + pref 66; %(VEX_DS(w,D)); extopcode 0f38; coding !parsub(0x93) !RRMMVSIB($dst,$src,$ix)} +| end +| if SD == "S" or w[2] == 256 then +VBROADCASTS%(SD)_%(XN(w))%(XSN(w,SD)) + {isa %(rrm(w[3],"avx2","avx")); ops %VR dst/o, %(vrm(w[3],SD,SDBITS(SD))) src/i; flags %RMEM; + pref 66; %(VEX_D0S(w)); extopcode 0f38; coding !parsub(%(0x18+D)) !RRM%(RM)($dst,$src)} +| end +| if SD == "S" then +VCVTPH2PS_%(XN(w))%(XNMH(w,true)) + {isa f16c; ops %VR dst/o, %(vrm(w[3],"I",w[2]/2)) src/i; flags %RMEM; + pref 66; %(VEX_D0S(w)); extopcode 0f38; coding !parsub(0x13) !RRM%(RM)($dst,$src); + fold VCVTPH2PS_%(XN(w))%(MH(w,true))} +VCVTPS2PH_%(XNMH(w,true))%(XN(w)) + {isa f16c; ops %(vrm(w[3],"I",w[2]/2)) dst/%(ROMI), %VR src/i, i8 imm/i; flags %RMEM; + pref 66; %(VEX_S0D(w)); extopcode 0f3a; coding !parsub(0x1d) !RRM%(RM)($src,$dst) !I8($imm); + fold VCVTPS2PH_%(MH(w,true))%(XN(w))} +| end +VBLENDVP%(SD)_%(XN(w))%(XN(w))%(XNM(w))%(XN(w)) //= VSIMD_AVX_660F3A_40_%(XN(w))%(XN(w))%(XNM(w))%(XN(w)).%(0x0a+D) + {isa avx; ops %VR dst/o, %VR src1/i, %VRM src/i, %VR msk/i; flags %RMEM; + pref 66; %(VEX_DS(w)); extopcode 0f3a; coding !parsub(%(0x4a+D)) !RRM%(RM)($dst,$src) ($msk<<4); + fold VBLENDVP%(SD)_%(XN(w))%(XN(w))M%(XN(w))} +VPERMILP%(SD)_%(XN(w))%(XN(w))%(XNM(w)) //= VSIMD_AVX_660F38_00_%(XN(w))%(XN(w))%(XNM(w))%(XN(w)).%(0x0c+D) + {isa avx; ops %VR dst/o, %VR src1/i, %VRM src/i; flags %RMEM; + pref 66; %(VEX_DS(w)); extopcode 0f38; coding !parsub(%(0x0c+D)) !RRM%(RM)($dst,$src); + fold VPERMILP%(SD)_%(XN(w))%(XN(w))M} +VPERMILP%(SD)_%(XN(w))%(XNM(w))I //= VSIMD_AVX_660F3A_00_%(XN(w))%(XNM(w))I.%(0x04+D) + {isa avx; ops %VR dst/o, %VRM src/i, i8 imm/i; flags %RMEM; + pref 66; %(VEX_D0S(w)); extopcode 0f38; coding !parsub(%(0x04+D)) !RRM%(RM)($dst,$src) !I8($imm); + fold VPERMILP%(SD)_%(XN(w))MI} +| for m,u in ipairs(ssefma) do +| for n,x in ipairs{{"132",0x90},{"213",0xa0},{"231",0xb0}} do +VF%(u[1])%(x[1])P%(SD)_%(XN(w))%(XN(w))%(XNM(w)) + {isa fma3; ops %VR dst/io, %VR src1/i, %VRM src/i; flags %RMEM; + pref 66; %(VEX_DS(w,D)); extopcode 0f38; coding !parsub(%(x[2]+u[2])) !RRM%(RM)($dst,$src); + fold VF%(u[1])%(x[1])P%(SD)_%(XN(w))%(XN(w))M} +| if u[3] then +VF%(u[1])%(x[1])S%(SD)_%(XN(w))%(XN(w))%(XNSN(w,SD)) + {isa fma3; ops %VR dst/io, %VR src1/i, %SRM src/i; flags %RMEM; + pref 66; %(VEX_DS(w,D)); extopcode 0f38; coding !parsub(%(x[2]+u[2]+1)) !RRM%(RM)($dst,$src)} +| end +| end +| end +| else -- sse +BLENDVP%(SD)_X%(XM(w))_XMM0 //= SIMD_SSE41_660F38_10_X%(XM(w))_XMM0.%(0x04+D) + {isa sse41; ops %VR dst/io, %VRM src/i, %VR{xmm0} msk/i; flags %RMEM; + pref 66; %(VEX_DS(w)); extopcode 0f38; coding !parsub(%(0x14+D)) !RRM%(RM)($dst,$src); + fold BLENDVP%(SD)_XM_XMM0} +| end +| if w[2] == 128 then +| if w[3] == "rr" then +%(V(w))MOVS%(SD)_X%(X(w))X + {isa %ISA; ops %(DST(w,VR)), %VR src/i; + pref %PS; %(VEX_D0S(w)); extopcode 0f; coding !parsub(0x10) !RRM%(RM)($dst,$src)} +| if SD == "S" then +%(V(w))MOVHLPS_X%(X(w))X + {isa %ISA; ops %(DST(w,VR)), %VR src/i; + %(VEX_D0S(w)); extopcode 0f; coding !parsub(0x12) !RRM%(RM)($dst,$src)} +%(V(w))MOVLHPS_X%(X(w))X + {isa %ISA; ops %(DST(w,VR)), %VR src/i; + %(VEX_D0S(w)); extopcode 0f; coding !parsub(0x16) !RRM%(RM)($dst,$src)} +| end +| else -- rm +%(V(w))MOVS%(SD)_MX + {isa %ISA; ops %(vmems(SD)) dst/i, %VR src/i; flags %WMEM; + pref %PS; %(VEX_S0D(w)); extopcode 0f; coding !parsub(0x11) !RRM%(RM)($src,$dst)} +%(V(w))MOVS%(SD)_XM + {isa %ISA; ops %VR dst/o, %SM src/i; flags %RMEM; + pref %PS; %(VEX_D0S(w)); extopcode 0f; coding !parsub(0x10) !RRM%(RM)($dst,$src)} +%(V(w))MOVLP%(SD)_X%(X(w))M //= %(V(w))MOVLORHP%(SD)_RM.2 + {isa %ISA; ops %(DST(w,VR)), %(vmem(SD,64)) src/i; flags %RMEM; + pref %(s_66(SD)); %(VEX_DS(w)); extopcode 0f; coding !parsub(0x12) !RRM%(RM)($dst,$src)} +%(V(w))MOVHP%(SD)_X%(X(w))M //= %(V(w))MOVLORHP%(SD)_RM.6 + {isa %ISA; ops %(DST(w,VR)), %(vmem(SD,64)) src/i; flags %RMEM; + pref %(s_66(SD)); %(VEX_DS(w)); extopcode 0f; coding !parsub(0x16) !RRM%(RM)($dst,$src)} +%(V(w))MOVLP%(SD)_MX //= %(V(w))MOVLORHP%(SD)_MR.3 + {isa %ISA; ops %(vmem(SD,64)) dst/i, %VR src/i; flags %WMEM; + pref %(s_66(SD)); %(VEX_S0D(w)); extopcode 0f; coding !parsub(0x13) !RRM%(RM)($src,$dst)} +%(V(w))MOVHP%(SD)_MX //= %(V(w))MOVLORHP%(SD)_MR.7 + {isa %ISA; ops %(vmem(SD,64)) dst/i, %VR src/i; flags %WMEM; + pref %(s_66(SD)); %(VEX_S0D(w)); extopcode 0f; coding !parsub(0x17) !RRM%(RM)($src,$dst)} +| end +| if SD == "S" then +| for m,u in ipairs(ssec) do +%(V(w))%(u[1])SS_X%(X(w))%(XNSN(w,SD)) + {isa %ISA; ops %(DST(w,VR)), %SRM src/i; flags %RMEM; + pref %PS; %(VEX_DS(w)); extopcode 0f; coding !parsub(%(u[2])) !RRM%(RM)($dst,$src)} +| end +%(V(w))INSERTPS_X%(X(w))%(XNSN(w,SD))I + {isa %ISA sse41; ops %(DST(w,VR)), %SRM src/i, i8 imm/i; flags %RMEM; + pref 66; %(VEX_DS(w)); extopcode 0f3a; coding !parsub(0x21) !RRM%(RM)($dst,$src) !I8($imm)} +%(V(w))EXTRACTPS_%(RNMN(w[3],32))XI + {isa %ISA sse41; ops %SRM dst/%(ROMI), %VR src/i, i8 imm/i; flags %WMEM; + pref 66; %(VEX_S0D(w)); extopcode 0f3a; coding !parsub(0x17) !RRM%(RM)($src,$dst) !I8($imm)} +| end +| for m,u in ipairs(sse) do +%(V(w))%(u[1])S%(SD)_X%(X(w))%(XNSN(w,SD)) + {isa %ISA; ops %(DST(w,VR)), %SRM src/i; flags %RMEM; + pref %PS; %(VEX_DS(w)); extopcode 0f; coding !parsub(%(u[2])) !RRM%(RM)($dst,$src) +| end +| for m,u in ipairs(ssea) do +%(V(w))%(u[1])S%(SD)_X%(X(w))%(XNSN(w,SD)) + {isa %ISA; ops %(DST(w,VR)), %SRM src/i; flags %RMEM; + pref %PS; %(VEX_DS(w)); extopcode 0f; coding !parsub(%(u[2])) !RRM%(RM)($dst,$src) +| end +%(V(w))ROUNDS%(SD)_X%(X(w))%(XNSN(w,SD))I + {isa %ISA sse41; ops %(DST(w,VR)), %SRM src/i, i8 imm/i; flags %RMEM; + pref 66; %(VEX_DS(w)); extopcode 0f3a; coding !parsub(%(0x0a+D)) !RRM%(RM)($dst,$src) !I8($imm)} +| for m,u in ipairs(ssecmp) do +%(V(w))CMP%(u[1])S%(SD)_X%(X(w))%(XNSN(w,SD)) //= %(V(w))SIMDCMPS%(SD)_X%(X(w))%(XNSN(w,SD)).%(u[2]) + {isa %ISA; ops %(DST(w,VR)), %SRM src/i; flags %RMEM; + pref %PS; %(VEX_DS(w)); extopcode 0f; coding !par(0xc2) !RRM%(RM)($dst,$src) !I8(!sub(%(u[2])))} +| end +| for m,u in ipairs{{"",0x2f},{"U",0x2e}} do +%(V(w))%(u[1])COMIS%(SD)_X%(XNSN(w,SD)) //= %(V(w))SIMDCOMIS%(SD)_X%(XNSN(w,SD)).%(u[2]%16) + {isa %ISA; ops %VR dst/i, %SRM src/i; flags %RMEM wflags; + pref %PP; %(VEX_D0S(w)); extopcode 0f; coding !parsub(%(u[2])) !RRM%(RM)($dst,$src)} +| end +%(V(w))CVTSI2S%(SD)_X%(X(w))%(RNMN(w[3],32)) + {isa sse2 %ISA; ops %(DST(w,VR)), %(grm(w[3],32)) src/i; flags %RMEM; + pref %PS; %(VEX_DS(w)); extopcode 0f; coding !parsub(0x2a) !RRM%(RM)($dst,$src)} +%(V(w))CVTSI2S%(SD)_X%(X(w))%(RNMN(w[3],64)) + {isa sse2 %ISA; ops %(DST(w,VR)), %(grm(w[3],64)) src/i; flags %RMEM; + pref %PS; %(VEX_DS(w,1)); extopcode 0f; coding !parsub(0x2a) !RRM%(RM)($dst,$src)} +%(V(w))CVTS%(SD)2SI_W%(XNSN(w,SD)) //= %(V(w))CVTXS%(SD)2SI_W%(XNSN(w,SD)).13 + {isa sse2 %ISA; ops GR32 dst/o, %SRM src/i; flags %RMEM; + pref %PS; %(VEX_D0S(w)); extopcode 0f; coding !parsub(0x2d) !RRM%(RM)($dst,$src)} +%(V(w))CVTS%(SD)2SI_D%(XNSN(w,SD)) //= %(V(w))CVTXS%(SD)2SI_D%(XNSN(w,SD)).13 + {isa sse2 %ISA; ops GR64 dst/o, %SRM src/i; flags %RMEM; + pref %PS; %(VEX_D0S(w,1)); extopcode 0f; coding !parsub(0x2d) !RRM%(RM)($dst,$src)} +%(V(w))CVTTS%(SD)2SI_W%(XNSN(w,SD)) //= %(V(w))CVTXS%(SD)2SI_W%(XNSN(w,SD)).12 + {isa sse2 %ISA; ops GR32 dst/o, %SRM src/i; flags %RMEM; + pref %PS; %(VEX_D0S(w)); extopcode 0f; coding !parsub(0x2c) !RRM%(RM)($dst,$src)} +%(V(w))CVTTS%(SD)2SI_D%(XNSN(w,SD)) //= %(V(w))CVTXS%(SD)2SI_D%(XNSN(w,SD)).12 + {isa sse2 %ISA; ops GR64 dst/o, %SRM src/i; flags %RMEM; + pref %PS; %(VEX_D0S(w,1)); extopcode 0f; coding !parsub(0x2c) !RRM%(RM)($dst,$src)} +%(V(w))CVTS%(SD)2S%(DS)_X%(X(w))%(XNSN(w,SD)) + {isa sse2 %ISA; ops %(DST(w,VR)), %SRM src/i; flags %RMEM; + pref %PS; %(VEX_DS(w)); extopcode 0f; coding !parsub(0x5a) !RRM%(RM)($dst,$src)} +| else -- 256 +| if SD == "S" then +| if w[3] == "rm" then +VBROADCASTF128_YM128 + {isa avx; ops %VR dst/o, %(vmem(SD,128)) src/i; flags %RMEM; + pref 66; %(VEX_D0S(w)); extopcode 0f38; coding !parsub(0x1a) !RRM%(RM)($dst,$src)} +| end +VEXTRACTF128_%(XM(w))YI + {isa avx; ops %(vrm(w[3],SD,128)) dst/%(ROMI), %VR src/i, i8 imm/i; flags %WMEM; + pref 66; %(VEX_S0D(w)); extopcode 0f3a; coding !parsub(0x19) !RRM%(RM)($src,$dst) !I8($imm); + fold VEXTRACTF128_M128YI} +VINSERTF128_YY%(XM(w))I + {isa avx; ops %(DST(w,VR)), %(vrm(w[3],SD,128)) src/i, i8 imm/i; flags %RMEM; + pref 66; %(VEX_DS(w)); extopcode 0f3a; coding !parsub(0x18) !RRM%(RM)($dst,$src) !I8($imm); + fold VINSERTF128_YYM128I} +VPERM2F128_YY%(YM(w))I + {isa avx; ops %(DST(w,VR)), %VRM src/i, i8 imm/i; flags %RMEM; + pref 66; %(VEX_DS(w)); extopcode 0f3a; coding !parsub(0x06) !RRM%(RM)($dst,$src) !I8($imm); + fold VPERM2F128_YYMI} +VPERMPS_YY%(XNM(w)) + {isa avx2; ops %(DST(w,VR)), %VRM src/i; flags %RMEM; + pref 66; %(VEX_DS(w)); extopcode 0f38; coding !parsub(0x16) !RRM%(RM)($dst,$src); + fold VPERMPS_YYM} +| end +| if SD == "D" then +VPERMPD_Y%(XNM(w))I + {isa avx2; ops %VR dst/o, %VRM src/i, i8 imm/i; flags %RMEM; + pref 66; %(VEX_D0S(w,1)); extopcode 0f3a; coding !parsub(0x01) !RRM%(RM)($dst,$src) !I8($imm); + fold VPERMPD_YMI} +| end +| end +| if SD == "S" then +| for m,u in ipairs(ssec) do +%(V(w))%(u[1])PS_%(XN(w))%(X(w))%(XNM(w)) + {isa %ISA; ops %(DST(w,VR)), %VRM src/i; flags %RMEM; + pref %PP; %(VEX_DS(w)); extopcode 0f; coding !parsub(%(u[2])) !RRM%(RM)($dst,$src); + fold %(V(w))%(u[1])PS_%(XN(w))%(X(w))M} +| end +| for m,u in ipairs{{"L","0x12"},{"H","0x16"}} do +| local VRXM = rrm(w[3],VR,dupmem(SD,w[2])) +%(V(w))MOVS%(u[1])DUP_%(XN(w))%(XNM(w)) //= %(V(w))MOVSLORHDUP_%(XN(w))%(XNM(w)).%(u[2]%16) + {isa sse3 %ISA; ops %VR dst/o, %VRXM src/i; flags %RMEM; + pref f3; %(VEX_D0S(w)); extopcode 0f; coding !parsub(%(u[2])) !RRM%(RM)($dst,$src); + fold %(V(w))MOVS%(u[1])DUP_%(XN(w))M} +| end +| else -- D +| local XD, VRXM = XNMH(w,w[3]=="rm" and w[2]==128), rrm(w[3],VR,dupmem(SD,w[2])) +%(V(w))MOVDDUP_%(XN(w))%(XD) + {isa sse3 %ISA; ops %VR dst/o, %VRXM src/i; flags %RMEM; + pref f2; %(VEX_D0S(w)); extopcode 0f; coding !parsub(0x12) !RRM%(RM)($dst,$src)} +| end +| end +| end +| end +| ------------------------------------ +| mmx = {{"ADDB",0xfc,1}, {"ADDSB",0xec,1}, {"ADDUSB", 0xdc,1}, +| {"SUBB",0xf8,0}, {"SUBSB",0xe8,0}, {"SUBUSB", 0xd8,0}, +| {"CMPEQB",0x74,1}, {"CMPGTB",0x64,0}, +| {"AND",0xdb,1}, {"ANDN",0xdf,0}, {"OR", 0xeb,1}, {"XOR", 0xef,1}, +| {"ADDW",0xfd,1}, {"ADDSW",0xed,1}, {"ADDUSW", 0xdd,1}, +| {"SUBW",0xf9,0}, {"SUBSW",0xe9,0}, {"SUBUSW", 0xd9,0}, +| {"CMPEQW",0x75,1}, {"CMPGTW",0x65,0}, +| {"ADDD",0xfe,1}, +| {"SUBD",0xfa,0}, +| {"CMPEQD",0x76,1}, {"CMPGTD",0x66,0}, +| {"MULLW",0xd5,1}, {"MULHW",0xe5,1}, {"MADDWD",0xf5,1}, +| {"UNPCKLBW",0x60,0}, {"UNPCKHBW",0x68,0}, {"UNPCKLWD",0x61,0}, {"UNPCKHWD",0x69,0}, +| {"UNPCKLDQ",0x62,0}, {"UNPCKHDQ",0x6a,0}, +| {"ACKUSWB",0x67,0}, {"ACKSSWB",0x63,0}, {"ACKSSDW",0x6b,0}, +| {"AVGB",0xe0,1,"mmxext"}, {"AVGW",0xe3,1,"mmxext"}, +| {"MAXUB",0xde,1,"mmxext"}, {"MAXSW",0xee,1,"mmxext"}, {"MINUB",0xda,1,"mmxext"}, {"MINSW",0xea,1,"mmxext"}, +| {"MULHUW",0xe4,1,"mmxext"}, {"SADBW",0xf6,1,"mmxext"}, +| {"ADDQ",0xd4,1,"sse2"}, {"SUBQ",0xfb,0,"sse2"}, {"MULUDQ",0xf4,1,"sse2"}, +| {"HADDW",0x01,0,"sse3","0f38"}, {"HADDD",0x02,0,"sse3","0f38"}, {"HADDSW", 0x03,0,"sse3","0f38"}, +| {"HSUBW",0x05,0,"sse3","0f38"}, {"HSUBD",0x06,0,"sse3","0f38"}, {"HSUBSW", 0x07,0,"sse3","0f38"}, +| {"MADDUBSW",0x04,1,"sse3","0f38"},{"MULHRSW",0x0b,1,"sse3","0f38"},{"SHUFB",0x00,0,"sse3","0f38"}, +| {"ABSB",0x1c,0,"sse3","0f38"},{"ABSW",0x1d,0,"sse3","0f38"},{"ABSD",0x1e,0,"sse3","0f38"}, +| {"SIGNB",0x08,0,"sse3","0f38"},{"SIGNW",0x09,0,"sse3","0f38"},{"SIGND",0x0a,0,"sse3","0f38"}, +| {"MAXSB",0x3c,1,"sse41","0f38",true}, {"MAXSD",0x3d,1,"sse41","0f38",true}, {"MAXUW",0x3e,1,"sse41","0f38",true}, {"MAXUD",0x3f,1,"sse41","0f38",true}, +| {"MINSB",0x38,1,"sse41","0f38",true}, {"MINSD",0x39,1,"sse41","0f38",true}, {"MINUW",0x3a,1,"sse41","0f38",true}, {"MINUD",0x3b,1,"sse41","0f38",true}, +| {"MULDQ",0x28,1,"sse41","0f38",true}, {"MULLD",0x40,1,"sse41","0f38",true}, +| {"CMPEQQ",0x29,1,"sse41","0f38",true}, {"CMPGTQ",0x37,0,"sse41","0f38",true}, +| {"HMINPOSUW",0x41,0,"sse41","0f38",true},{"ACKUSDW",0x2b,0,"sse41","0f38",true}, +| {"UNPCKLQDQ",0x6c,0,nil,nil,true},{"UNPCKHQDQ",0x6d,0,nil,nil,true}, +| } +| local mmxsse41b = { +| {"SXBW", 0x20, 2}, {"SXBD", 0x21, 4}, {"SXBQ", 0x22, 8}, {"SXWD", 0x23, 2}, {"SXWQ", 0x24, 4}, {"SXDQ", 0x25, 2}, +| {"ZXBW", 0x30, 2}, {"ZXBD", 0x31, 4}, {"ZXBQ", 0x32, 8}, {"ZXWD", 0x33, 2}, {"ZXWQ", 0x34, 4}, {"ZXDQ", 0x35, 2}, +| } +| local mmxsll = {{"SLLW",0xf1,0x71,6}, {"SLLD",0xf2,0x72,6}, {"SLLQ",0xf3,0x73,6}, +| {"SRLW", 0xd1,0x71,2}, {"SRLD", 0xd2,0x72,2}, {"SRLQ",0xd3,0x73,2}, +| {"SRAW", 0xe1,0x71,4}, {"SRAD", 0xe2,0x72,4}, +| } +| for l,w in ipairs{{"sse",128,"rr"},{"sse",128,"rm"}, +| {"avx",128,"rr"},{"avx",128,"rm"},{"avx",256,"rr"},{"avx",256,"rm"}} do +| local VR, VM = vreg("I",w[2]), vmem("I",w[2]) +| -- code with ONLY reg OR memory variants +| local RM, ROMI = rrm(w[3],"R","M"), rrm(w[3], "o", "i") +| local VRM, SRM = rrm(w[3],VR,VM), rrm(w[3],VR,SM) +| local RMEM, WMEM = rrm(w[3],"","rmem"), rrm(w[3],"","wmem") +| local COMMUTE = (w[1]=="avx" and "src1" or "dst").."<->src" +| local ISA = (w[1]=="avx" and "avx") or "sse2" +| for m,u in ipairs{{"A",0x7f,0x6f,"66"},{"U",0x29,0x28,"f3"}} do +%(V(w))MOVDQ%(u[1])_%(XN(w))%(XNM(w)) + {isa %ISA; ops %VR dst/o, %VRM src/i; flags %RMEM; + pref %(u[4]); %(VEX_D0S(w)); extopcode 0f; coding !parsub(%(u[3])) !RRM%(RM)($dst, $src); + fold %(V(w))MOVDQ%(u[1])_M%(XN(w)) %(V(w))MOVDQ%(u[1])_%(XN(w))M} +| if w[3] == "rm" then +%(V(w))MOVDQ%(u[1])_%(XNM(w))%(XN(w)) + {isa %ISA; ops %VM dst/i, %VR src/i; flags %WMEM; + pref %(u[4]); %(VEX_S0D(w)); extopcode 0f; coding !parsub(%(u[2])) !RRM%(RM)($src,$dst)} +| end +| end +| for m,u in ipairs(mmx) do +%(V(w))P%(u[1])_%(XN(w))%(X(w))%(XNM(w)) + {isa %ISA %(u[4] or ""); ops %(DST(w,VR)), %VRM src/i; flags %RMEM; + pref 66; %(VEX_DS(w)); extopcode %(u[5] or "0f"); coding !parsub(%(u[2])) !RRM%(RM)($dst,$src); + fold %(V(w))P%(u[1])_%(XN(w))%(X(w))M; commute %(u[3] > 0 and COMMUTE or "")} +| end +| for m,u in ipairs(mmxsse41b) do +| local RMX = RM == "M" and ("M" .. w[2]/u[3]) or RM +%(V(w))PMOV%(u[1])_%(XN(w))%(RMX) + {isa %ISA sse41; ops %VR dst/o, %(vrm(w[3],"I",w[2]/u[3])) src/i; flags %RMEM; + pref 66; %(VEX_D0S(w)); extopcode 0f38; coding !parsub(%(u[2])) !RRM%(RM)($dst,$src); + fold %(V(w))PMOV%(u[1])_%(XN(w))%("M" .. w[2]/u[3])} +| end +| for m,u in ipairs(mmxsll) do +%(V(w))P%(u[1])_%(XN(w))%(X(w))%(XNM(w)) + {isa %ISA; ops %(DST(w,VR)), %VRM src/i; flags %RMEM; + pref 66; %(VEX_DS(w)); extopcode 0f; coding !parsub(%(u[2])) !RRM%(RM)($dst,$src); + fold %(V(w))P%(u[1])_%(XN(w))%(X(w))M} +| end +| for m,u in ipairs{{"D","66"}, {"LW","f2"}, {"HW","f3"}} do +%(V(w))PSHUF%(u[1])_%(XN(w))%(XNM(w))I + {isa %ISA; ops %VR dst/o, %VRM src/i, i8 imm/i; flags %RMEM; + pref %(u[2]); %(VEX_D0S(w)); extopcode 0f; coding !parsub(0x70) !RRM%(RM)($dst,$src) !I8($imm); + fold %(V(w))PSHUF%(u[1])_%(XN(w))MI} +| end +%(V(w))PALIGNR_%(XN(w))%(X(w))%(XNM(w))I + {isa ssse3 %ISA; ops %(DST(w,VR)), %VRM src/i, i8 imm/i; flags %RMEM; + pref 66; %(VEX_DS(w)); extopcode 0f3a; coding !parsub(0x0f)) !RRM%(RM)($dst,$src) !I8($imm); + fold %(V(w))PALIGNR_%(XN(w))%(X(w))MI} +%(V(w))MPSADBW_%(XN(w))%(X(w))%(XNM(w))I + {isa sse41 %ISA; ops %(DST(w,VR)), %VRM src/i, i8 imm/i; flags %RMEM; + pref 66; %(VEX_DS(w)); extopcode 0f3a; coding !parsub(0x42) !RRM%(RM)($dst,$src) !I8($imm); + fold %(V(w))MPSADBW_%(XN(w))%(X(w))MI} +%(V(w))PBLENDW_%(XN(w))%(X(w))%(XNM(w))I + {isa sse41 %ISA; ops %(DST(w,VR)), %VRM src/i, i8 imm/i; flags %RMEM; + pref 66; %(VEX_DS(w)); extopcode 0f3a; coding !parsub(0x0e) !RRM%(RM)($dst,$src) !I8($imm); + fold %(V(w))PBLENDW_%(XN(w))%(X(w))MI} +%(V(w))PTEST_%(XN(w))%(XNM(w)) + {isa sse41 %ISA; ops %VR dst/i, %VRM src/i; flags %RMEM wflags; + pref 66; %(VEX_D0S(w)); extopcode 0f38; coding !parsub(0x17) !RRM%(RM)($dst,$src); + fold %(V(w))PTEST_%(XN(w))M, commute dst<->src} + +| if w[3] == "rm" then +%(V(w))MOVNTDQA_%(XN(w))%(XNM(w)) + {isa sse41 %ISA; ops %VR dst/o, %VM src/i; flags %RMEM; + pref 66; %(VEX_D0S(w)); extopcode 0f38; coding !parsub(0x2a) !RRM%(RM)($dst,$src)} +%(V(w))MOVNTDQ_%(XNM(w))%(XN(w)) + {isa sse2 %ISA; ops %VM dst/i, %VR src/i; flags %WMEM; + pref 66; %(VEX_S0D(w)); extopcode 0f; coding !parsub(0xe7) !RRM%(RM)($src,$dst)} +%(V(w))MOVNTPD_%(XNM(w))%(XN(w)) + {isa sse2 %ISA; ops %VM dst/i, %VR src/i; flags %WMEM; + pref 66; %(VEX_S0D(w)); extopcode 0f; coding !parsub(0x2b) !RRM%(RM)($src,$dst)} +%(V(w))MOVNTPS_%(XNM(w))%(XN(w)) + {isa sse2 %ISA; ops %VM dst/i, %VR src/i; flags %WMEM; + pref ; %(VEX_S0D(w)); extopcode 0f; coding !parsub(0x2b) !RRM%(RM)($src,$dst)} +%(V(w))LDDQU_%(XN(w))%(XNM(w)) + {isa sse3 %ISA; ops %VR dst/o, %VM src/i; flags %RMEM; + pref f2; %(VEX_D0S(w)); extopcode 0f; coding !parsub(0xf0) !RRM%(RM)($dst,$src)} +| if w[2] == 128 then +%(V(w))MOVQ_M64X + {isa %ISA; ops i64* dst/i, %VR src/i; flags %WMEM; + pref 66; %(VEX_S0D(w)); extopcode 0f; coding !parsub(0xd6) !RRM%(RM)($src,$dst)} +| else -- w[2] == 256 +VBROADCASTI128_YM128 + {isa avx2; ops %VR dst/o, %(vmem(w[1],128)) src/i; flags %RMEM; + pref 66; %(VEX_D0S(w)); extopcode 0f38; coding !parsub(0x5a) !RRM%(RM)($dst,$src)} +| end +| if w[1] == "avx" then +| local VR0, VM0 = vreg(w[1],w[2]/2), vmem(w[1],w[2]/2) +VPGATHERDD_%(XN(w))M%(XN(w))%(XN(w)) + {isa avx2; ops %VR dst/o, %VM src/i, %VR ix/i, %VR src1/i; flags %RMEM vsib; + pref 66; %(VEX_DS(w)); extopcode 0f38; coding !parsub(0x90) !RRM%(RM)VSIB($dst,$src,$ix)} +VPGATHERDQ_%(XN(w))M%(XNH(w,true))%(XN(w)) + {isa avx2; ops %VR dst/o, %VM src/i, %VR0 ix/i, %VR src1/i; flags %RMEM vsib; + pref 66; %(VEX_DS(w,1)); extopcode 0f38; coding !parsub(0x90) !RRM%(RM)VSIB($dst,$src,$ix)} +VPGATHERQD_%(XNH(w,true))M%(XN(w))%(XNH(w,true)) + {isa avx2; ops %VR0 dst/o, %VM src/i, %VR ix/i, %VR0 src1/i; flags %RMEM vsib; + pref 66; %(VEX_DS(w)); extopcode 0f38; coding !parsub(0x91) !RRM%(RM)VSIB($dst,$src,$ix)} +VPGATHERQQ_%(XN(w))M%(XN(w))%(XN(w)) + {isa avx2; ops %VR dst/o, %VM src/i, %VR ix/i, %VR src1/i; flags %RMEM vsib; + pref 66; %(VEX_DS(w,1)); extopcode 0f38; coding !parsub(0x91) !RRM%(RM)VSIB($dst,$src,$ix)} +VPMASKMOVD_%(XN(w))%(XN(w))M + {isa avx2; ops %VR dst/o, %VR src1/i, %VM src/i; flags %RMEM; + pref 66; %(VEX_DS(w)); extopcode 0f38; coding !parsub(0x8c) !RRM%(RM)($dst,$src)} +VPMASKMOVQ_%(XN(w))%(XN(w))M + {isa avx2; ops %VR dst/o, %VR src1/i, %VM src/i; flags %RMEM; + pref 66; %(VEX_DS(w,1)); extopcode 0f38; coding !parsub(0x8c) !RRM%(RM)($dst,$src)} +VPMASKMOVD_M%(XN(w))%(XN(w)) + {isa avx2; ops %VM dst/i, %VR src1/i, %VR src/i; flags %WMEM; + pref 66; %(VEX_SD(w)); extopcode 0f38; coding !parsub(0x8e) !RRM%(RM)($src,$dst)} +VPMASKMOVQ_M%(XN(w))%(XN(w)) + {isa avx2; ops %VM dst/i, %VR src1/i, %VR src/i; flags %WMEM; + pref 66; %(VEX_SD(w,1)); extopcode 0f38; coding !parsub(0x8e) !RRM%(RM)($src,$dst)} +| end +| else -- rr +%(V(w))PMOVMSK_W%(XN(w)) + {isa %ISA; ops GR32 dst/o, %VR src/i; + pref 66; %(VEX_D0S(w)); extopcode 0f; coding !parsub(0xd7) !RRM%(RM)($dst,$src)} +| for m,u in ipairs(mmxsll) do +| --P%(u[1])64_RI { out VRI64 dst : in VRI64 dst,i8 imm } { parm (xx(w[3])) : sub %(w[4]) : rexrr 0 0 dst : code $parm !RRMR($sub,$dst) !I8($imm) : pref 0x0f } {mmx} +%(V(w))P%(u[1])_%(XN(w))%(X(w))I + {isa %ISA; ops %(DST(w,VR)), i8 imm/i; + pref 66; %(VEX_0D(w)); extopcode 0f; coding !par(%(u[3])) !RRM%(RM)(!sub(%(u[4])),$dst) !I8($imm)} +| end +| for m,u in ipairs{{"SLLDQ",7}, {"SRLDQ",3}} do +%(V(w))P%(u[1])_%(XN(w))%(X(w))I + {isa %ISA; ops %(DST(w,VR)), i8 imm/i; + pref 66; %(VEX_0D(w)); extopcode 0f; coding !par(0x73) !RRM%(RM)(!sub(%(u[2])),$dst) !I8($imm)} +| end +| if w[2] == 128 then +%(V(w))PEXTRW_WXI + {isa %ISA; ops GR32 dst/o, %VR src/i, i8 imm/i; + pref 66; %(VEX_D0S(w)); extopcode 0f; coding !par(0xc5) !RRM%(RM)($dst,$src) !I8($imm)} +%(V(w))MOVQ_%(XN(w))%(RNMN(w[3],64)) + {isa %ISA x64; ops %VR dst/o, %(grm(w[3],64)) src/i; flags %RMEM; + pref 66; %(VEX_D0S(w,1)); extopcode 0f; coding !parsub(0x6e) !RRM%(RM)($dst,$src)} +%(V(w))MOVQ_%(RNMN(w[3],64))%(XN(w)) + {isa %ISA x64; ops %(grm(w[3],64)) dst/%(ROMI), %VR src/i; flags %WMEM; + pref 66; %(VEX_S0D(w,1)); extopcode 0f; coding !parsub(0x7e) !RRM%(RM)($src,$dst)} +| end +| end +| if w[1] == "sse" then +PBLENDVB_%(XN(w))%(X(w))%(XNM(w))_XMM0 + {isa sse41; ops %VR dst/io, %VRM src/i, %VR{xmm0} msk/i; flags %RMEM; + pref 66; %(VEX_DS(w)); extopcode 0f38; coding !parsub(0x10) !RRM%(RM)($dst,$src); + fold PBLENDVB_%(XN(w))%(X(w))M_XMM0} +MASKMOVDQU_%(XN(w))%(X(w))%(XNM(w))_XMM0 + {isa sse41; ops %VR dst/io, %VRM src/i, %VR{xmm0} msk/i; flags %RMEM; + pref 66; %(VEX_DS(w)); extopcode 0f38; coding !parsub(0x10) !RRM%(RM)($dst,$src)} +| else -- avx +| for m,u in ipairs{{"B",0x78,8}, {"W",0x79,16}, {"D",0x58,32}, {"Q",0x59,64}} do +VPBROADCAST%(u[1])_%(XN(w))%(XMN(w,u[3])) + {isa avx2; ops %VR dst/o, %(vrm(w[3],"I",u[3])) src/i; flags %RMEM; + pref 66; %(VEX_D0S(w)); extopcode 0f38; coding !parsub(%(u[2])) !RRM%(RM)($dst,$src); + fold VPBROADCAST%(u[1])_%(XN(w))%(MN(u[3]))} +| end +| for m,u in ipairs{{"SLL",0x47}, {"SRA",0x46}, {"SRL",0x45}} do +VP%(u[1])VD_%(XN(w))%(X(w))%(XNM(w)) + {isa avx2; ops %(DST(w,VR)), %VRM src/i; flags %RMEM; + pref 66; %(VEX_DS(w)); extopcode 0f38; coding !parsub(%(u[2])) !RRM%(RM)($dst,$src); + fold VP%(u[1])VD_%(XN(w))%(X(w))M} +VP%(u[1])VQ_%(XN(w))%(X(w))%(XNM(w)) + {isa avx2; ops %(DST(w,VR)), %VRM src/i; flags %RMEM; + pref 66; %(VEX_DS(w,1)); extopcode 0f38; coding !parsub(%(u[2])) !RRM%(RM)($dst,$src); + fold VP%(u[1])VQ_%(XN(w))%(X(w))M} +| end +VPBLENDD_%(XN(w))%(X(w))%(XNM(w))I + {isa avx2; ops %(DST(w,VR)), %VRM src/i, i8 imm/i; flags %RMEM; + pref 66; %(VEX_DS(w,1)); extopcode 0f3a; coding !parsub(0x02) !RRM%(RM)($dst,$src) !I8($imm); + fold VPBLENDD_%(XN(w))%(X(w))MI} +VPBLENDVB_%(XN(w))%(X(w))%(XNM(w))%(XN(w)) + {isa avx2; ops %(DST(w,VR)), %VRM src/i, %VR msk/i; flags %RMEM; + pref 66; %(VEX_DS(w,1)); extopcode 0f3a; coding !parsub(0x4c) !RRM%(RM)($dst,$src) !I8($msk<<4); + fold VPBLENDVB_%(XN(w))%(X(w))M%(XN(w))} +| end +| if w[2] == 128 then +%(V(w))MOVD_%(XN(w))%(RNMN(w[3],32)) + {isa %ISA; ops %VR dst/o, %(grm(w[3],32)) src/i; flags %RMEM; + pref 66; %(VEX_D0S(w)); extopcode 0f; coding !parsub(0x6e) !RRM%(RM)($dst,$src)} +%(V(w))MOVD_%(RNMN(w[3],32))_%(XN(w)) + {isa %ISA x64; ops %(grm(w[3],32)) dst/%(ROMI), %VR src/i; flags %WMEM; + pref 66; %(VEX_S0D(w)); extopcode 0f; coding !parsub(0x7e) !RRM%(RM)($src,$dst)} +%(V(w))MOVQ_%(XN(w))%(XNM(w)) + {isa %ISA; ops %VR dst/o, %(rrm(w[3],vreg(w[1],64),vmem(w[1],64))) src/i; flags %RMEM; + pref f3; %(VEX_D0S(w)); extopcode 0f; coding !parsub(0x7e) !RRM%(RM)($dst,$src)} +%(V(w))PINSRW_%(XN(w))%(X(w))%(rrm(w[3],RN(32),MN(16)))I + {isa %ISA; ops %(DST(w,VR)), %(rrm(w[3],greg(32),gmem(16))) src/i, i8 imm/i; flags %RMEM; + pref 66; %(VEX_DS(w)); extopcode 0f; coding !parsub(0xc4) !RRM%(RM)($dst,$src) !I8($imm); + fold %(V(w))PINSRW_%(XN(w))%(X(w))%(MN(16))I} +| for m,u in ipairs{{"B",8,"0x14",32,"0x20"}, {"WX",16,"0x15",32}, {"D",32,"0x16",32,"0x22"}, {"Q",64,"0x16",64,"0x22"}} do +%(V(w))PEXTR%(u[1])128_%(rrm(w[3],RN(u[4]),"M"..u[2]))%(XN(w))I + {isa %ISA sse41 %(u[4]==64 and "x64" or ""); ops %(rrm(w[3],greg(u[4]),gmem(u[2]))) dst/%(ROMI), %VR src/i, i8 imm/i; flags %WMEM; + pref 66; %(VEX_S0D(w,r64bit(u[4]))); extopcode 0f3a; coding !parsub(%(u[3])) !RRM%(RM)($src,$dst) !I8($imm); + fold %(V(w))PEXTR%(u[1])128_%("M"..u[2])%(XN(w))I} +| if u[2] ~= 16 then +%(V(w))PINSR%(u[1])_%(XN(w))%(X(w))%(rrm(w[3],RN(u[4]),"M"..u[2]))I + {isa %ISA sse41 %(u[4]==64 and "x64" or ""); ops %(DST(w,VR)), %(rrm(w[3],greg(u[4]),gmem(u[2]))) src/i, i8 imm/i; flags %RMEM; + pref 66; %(VEX_DS(w,r64bit(u[4]))); extopcode 0f3a; coding !parsub(%(u[5])) !RRM%(RM)($dst,$src) !I8($imm); + fold %(V(w))PINSR%(u[1])_%(XN(w))%(X(w))%("M"..u[2])I} +| end +| end +%(V(w))MASKMOVDQU_RDI_%(XN(w))%(XNM(w)) + {isa %ISA sse2; ops GR32{edi} tgt/i, %VR dst/i, %VRM src/i; flags wmem %RMEM; + pref 66; %(VEX_D0S(w)); extopcode 0f; coding !parsub(0xf7) !RRM%(RM)($dst,$src)} +%(V(w))PCMPESTRI_ECX_%(XN(w))_EAX_%(XNM(w))_EDX_I + {isa %ISA sse42; ops GR32{ecx} ix/o, %VR dst/i, GR32{eax} dstlen/i, %VRM src/i, GR32{edx} srclen/i, i8 imm/i; flags %RMEM wflags; + pref 66; %(VEX_D0S(w)); extopcode 0f3a; coding !parsub(0x61) !RRM%(RM)($dst,$src) !I8($imm); + fold %(V(w))PCMPESTRI_ECX_%(XN(w))_EAX_M_EDX_I} +%(V(w))PCMPESTRM_XMM0_%(XN(w))_EAX_%(XNM(w))_EDX_I + {isa %ISA sse42; ops %VR{xmm0} ix/o, %VR dst/i, GR32{eax} dstlen/i, %VRM src/i, GR32{edx} srclen/i, i8 imm/i; flags %RMEM wflags; + pref 66; %(VEX_D0S(w)); extopcode 0f3a; coding !parsub(0x60) !RRM%(RM)($dst,$src) !I8($imm); + fold %(V(w))PCMPESTRM_XMM0_%(XN(w))_EAX_M_EDX_I} +%(V(w))PCMPISTRI_ECX_%(XN(w))%(XNM(w))I + {isa %ISA sse42; ops GR32{ecx} ix/o, %VR dst/i, %VRM src/i, i8 imm/i; flags %RMEM wflags; + pref 66; %(VEX_D0S(w)); extopcode 0f3a; coding !parsub(0x63) !RRM%(RM)($dst,$src) !I8($imm); + fold %(V(w))PCMPISTRI_ECX_%(XN(w))MI} +%(V(w))PCMPISTRM_XMM0_%(XN(w))%(XNM(w))I + {isa %ISA sse42; ops %VR{xmm0} ix/o, %VR dst/i, %VRM src/i, i8 imm/i; flags %RMEM wflags; + pref 66; %(VEX_D0S(w)); extopcode 0f3a; coding !parsub(0x62) !RRM%(RM)($dst,$src) !I8($imm); + fold %(V(w))PCMPISTRM_XMM0_%(XN(w))MI} +%(V(w))AESDEC_%(XN(w))%(X(w))%(XNM(w)) + {isa aes %(w[1]); ops %(DST(w,VR)), %VRM src/i; flags %RMEM; + pref 66; %(VEX_DS(w)); extopcode 0f38; coding !parsub(0xde) !RRM%(RM)($dst,$src); + fold %(V(w))AESDEC_%(XN(w))%(X(w))M } +%(V(w))AESDECLAST_%(XN(w))%(X(w))%(XNM(w)) + {isa aes %(w[1]); ops %(DST(w,VR)), %VRM src/i; flags %RMEM; + pref 66; %(VEX_DS(w)); extopcode 0f38; coding !parsub(0xdf) !RRM%(RM)($dst,$src); + fold %(V(w))AESDECLAST_%(XN(w))%(X(w))M} +%(V(w))AESENC_%(XN(w))%(X(w))%(XNM(w)) + {isa aes %(w[1]); ops %(DST(w,VR)), %VRM src/i; flags %RMEM; + pref 66; %(VEX_DS(w)); extopcode 0f38; coding !parsub(0xdc) !RRM%(RM)($dst,$src); + fold %(V(w))AESENC_%(XN(w))%(X(w))M} +%(V(w))AESENCLAST_%(XN(w))%(X(w))%(XNM(w)) + {isa aes %(w[1]); ops %(DST(w,VR)), %VRM src/i; flags %RMEM; + pref 66; %(VEX_DS(w)); extopcode 0f38; coding !parsub(0xdd) !RRM%(RM)($dst,$src); + fold %(V(w))AESENCLAST_%(XN(w))%(X(w))M} +%(V(w))AESIMC_%(XN(w))%(XNM(w)) + {isa aes %(w[1]); ops %VR dst/o, %VRM src/i; flags %RMEM; + pref 66; %(VEX_DS(w)); extopcode 0f38; coding !parsub(0xdb) !RRM%(RM)($dst,$src); + fold %(V(w))AESIMC_%(XN(w))M} +%(V(w))AESKEYGENASSIST_%(XN(w))%(XNM(w))I + {isa aes %(w[1]); ops %VR dst/o, %VRM src/i, i8 imm/i; flags %RMEM; + pref 66; %(VEX_DS(w)); extopcode 0f3a; coding !parsub(0xdf) !RRM%(RM)($dst,$src) !I8($imm); + fold %(V(w))AESKEYGENASSIST_%(XN(w))MI} +%(V(w))PCLMULQDQ_%(XN(w))%(X(w))%(XNM(w))I + {isa clmul %(w[1]); ops %(DST(w,VR)), %VRM src/i, i8 imm/i; flags %RMEM; + pref 66; %(VEX_DS(w)); extopcode 0f3a; coding !parsub(0x44) !RRM%(RM)($dst,$src) !I8($imm); + fold %(V(w))PCLMULQDQ_%(XN(w))%(X(w))MI} +| else -- w[2] == 256 +VPERMD_YY%(XNM(w))) + {isa avx2; ops %(DST(w,VR)), %VRM src/i; flags %RMEM; + pref 66; %(VEX_DS(w)); extopcode 0f38; coding !parsub(0x36) !RRM%(RM)($dst,$src); + fold VPERMD_YYM} +VPERMQ_Y%(XNM(w))I + {isa avx2; ops %VR dst/o, %VRM src/i, i8 imm/i; flags %RMEM; + pref 66; %(VEX_D0S(w,1)); extopcode 0f3a; coding !parsub(0x00) !RRM%(RM)($dst,$src) !I8($imm); + fold VPERMQ_YMI} +VPERM2I128_YY%(YM(w))I + {isa avx2; ops %(DST(w,VR)), %VRM src/i, i8 imm/i; flags %RMEM; + pref 66; %(VEX_DS(w)); extopcode 0f3a; coding !parsub(0x46) !RRM%(RM)($dst,$src) !I8($imm); + fold VPERM2I128_YYMI} +VEXTRACTI128_%(XM(w))YI + {isa avx2; ops %(rrm(w[3],vreg("I",128),vmem("I",128))) dst/%(ROMI), %VR src/i, i8 imm/i; flags %WMEM; + pref 66; %(VEX_S0D(w)); extopcode 0f3a; coding !parsub(0x39) !RRM%(RM)($src,$dst) !I8($imm); + fold VEXTRACTI128_M128YI} +VINSERTI128_YY%(XM(w))I + {isa avx2; ops %(DST(w,VR)), %(rrm(w[3],vreg("I",128),vmem("I",128))) src/i, i8 imm/i; flags %RMEM; + pref 66; %(VEX_DS(w)); extopcode 0f3a; coding !parsub(0x38) !RRM%(RM)($dst,$src) !I8($imm); + fold VINSERTI128_YYM128I} +| end +| end +VZEROALL {isa avx; vex rr 0 0 0 0 1; extopcode 0f; coding !parsub(0x77)} +VZEROUPPER {isa avx; vex rr 0 0 0 0 0; extopcode 0f; coding !parsub(0x77)} + +| --MOVDV64_32_RR { out VRI64 dst : in GR32 src } {parm 0x6e : rexrr 0 dst src : code $parm !RRMR($dst,$src) : pref 0x0f} {mmx} +| --MOVDV64_32_RM { out VRI64 dst : in i32* src : rmem } {parm 0x6e : rexrm 0 dst src : code $parm !RRMM($dst,$src) : pref 0x0f} {mmx} +| --MOVD32_V64_MR { in i32* dst, VRI64 src : wmem } {parm 0x7e : rexrm 0 src dst : code $parm !RRMM($src,$dst) : pref 0x0f} {mmx} +| --MOVD32_V64_RR { out GR32 dst : in VRI64 src } {parm 0x7e : rexrr 0 src dst : code $parm !RRMR($src,$dst) : pref 0x0f} {mmx} + +| --MOVQV64_64_RR { out VRI64 dst : in GR64 src } {parm 0x6e : rexrr 1 dst src : code $parm !RRMR($dst,$src) : pref 0x0f} {x64} +| --MOVQV64_64_RM { out VRI64 dst : in i64* src : rmem } {parm 0x6e : rexrm 1 dst src : code $parm !RRMM($dst,$src) : pref 0x0f} {x64} +| --MOVQ64_V64_MR { in i64* dst, VRI64 src : wmem } {parm 0x7e : rexrm 1 src dst : code $parm !RRMM($src,$dst) : pref 0x0f} {x64} +| --MOVQ64_V64_RR { out GR64 dst : in VRI64 src } {parm 0x7e : rexrr 1 src dst : code $parm !RRMR($src,$dst) : pref 0x0f} {x64} + +| --MOVQV64_MR { in VI64* dst, VRI64 src : wmem } {parm 0x7f : rexrm 0 src dst : code $parm !RRMM($src,$dst) : pref 0x0f} {mmx} +| --MOVQV64_RR { out VRI64 dst : in VRI64 src } {parm 0x6f : rexrr 0 dst src : code $parm !RRMR($dst,$src) : pref 0x0f} {mmx} +| --MOVQV64_RM { out VRI64 dst : in VI64* src : rmem } {parm 0x6f : rexrm 0 dst src : code $parm !RRMM($dst,$src) : pref 0x0f} {mmx} +| -- ---------------------------------- + +| --MOVQ2DQ_RR { out VRI128 dst : in VRI64 src} {parm 0xd6 : rexrr 0 dst src : code $parm !RRMR($dst,$src) : pref 0x0f 0xf2} {sse2} +| --MOVDQ2Q_RR { out VRI64 dst : in VRI128 src} {parm 0xd6 : rexrr 0 dst src : code $parm !RRMR($dst,$src) : pref 0x0f 0xf3} {sse2} +| --MOVQV128_V64_RR { out VRI128 dst : in VRI64 src} {parm 0xd6 : rexrr 0 dst src : code $parm !RRMR($dst,$src) : pref 0x0f 0xf2} {sse2} +| --MOVQV64_V128_RR { out VRI64 dst : in VRI128 src} {parm 0xd6 : rexrr 0 dst src : code $parm !RRMR($dst,$src) : pref 0x0f 0xf3} {sse2} +| -- ---------------------------------- +| --PMOVMSK64_RR { out GR32 dst : in VRI64 src } {parm 0xd7 : rexrr 0 dst src : code $parm !RRMR($dst,$src) : pref 0x0f} {mmxext} +| --PSHUFW64_RRI { out VRI64 dst : in VRI64 src,i8 imm } { parm 0x70 : rexrr 0 dst src : code $parm !RRMR($dst,$src) !I8($imm) : pref 0x0f } {mmxext} +| --PSHUFW64_RMI { out VRI64 dst : in VI64* src,i8 imm : rmem } { parm 0x70 : rexrm 0 dst src : code $parm !RRMM($dst,$src) !I8($imm) : pref 0x0f } {mmxext} + +LDMXCSR_M32 //= LDMXCSR.2 + {isa sse; ops i32* dst/i; flags rmem; rex rm 0 0 dst; extopcode 0f; coding !par(0xae) !RRMM(!sub(2),$dst)} +STMXCSR_M32 //= STMXCSR.3 + {isa sse; ops i32* dst/i; flags wmem; rex rm 0 0 dst; extopcode 0f; coding !par(0xae) !RRMM(!sub(3),$dst)} + +| --PINSRW64_RRI { out VRI64 dst : in VRI64 dst, GR32 src,i8 imm } { parm 0xc4 : rexrr 0 dst src : code $parm !RRMR($dst,$src) !I8($imm) : pref 0x0f } {mmxext} +| --PINSRW64_RMI { out VRI64 dst : in VRI64 dst, i16* src,i8 imm : rmem } { parm 0xc4 : rexrm 0 dst src : code $parm !RRMM($dst,$src) !I8($imm) : pref 0x0f } {mmxext} + +| --PEXTRW64_RRI { out GR32 dst : in VRI64 src,i8 imm } { parm 0xc5 : rexrr 0 dst src : code $parm !RRMR($dst,$src) !I8($imm) : pref 0x0f } {mmxext} +| -- there exist 64bit versions of pinsrw & pextrw, but they don't make sense, do they? + +| --PALIGNR64_RR { out VRI64 dst : in VRI64 dst,VRI64 src,i8 imm } { parm 0x0f : rexrr 0 dst src : code $parm !RRMR($dst,$src) !I8($imm) : pref 0x0f3a } {ssse3} +| --PALIGNR64_RM { out VRI64 dst : in VRI64 dst,VI64* src,i8 imm : rmem } { parm 0x0f : rexrm 0 dst src : code $parm !RRMM($dst,$src) !I8($imm) : pref 0x0f3a } {ssse3} diff --git a/src/data/x86_reglist.dat b/src/data/x86_reglist.dat new file mode 100644 index 0000000..b54f055 --- /dev/null +++ b/src/data/x86_reglist.dat @@ -0,0 +1,110 @@ +local _pairs = pairs +local _sort = table.sort + +----------------------------------------- +-- selector +----------------------------------------- + +local data = {} +data.classes = { + {name = "FLAGSR", resclass = "FLAGRSC", subres = "0x01", regbase = 1}, + {name = "GR8L", partial = "true", subres = "0x01", resclass = "GRRSC", restrictres = "0-3", regbase = 32}, + {name = "GR8H", partial = "true", subres = "0x02", resclass = "GRRSC", restrictres = "0-3", regbase = 36}, + {name = "GR16", partial = "true", subres = "0x03", resclass = "GRRSC", regbase = 64}, + {name = "GR32", subres = "0x07", resclass = "GRRSC", regbase = 16}, + {name = "VR128", subres = "0x01", resclass = "VRRSC", regbase = 96, restrictres_64 = "0-31"}, + {name = "VR256", subres = "0x03", resclass = "VRRSC", regbase = 128, restrictres_64 = "0-31"}, + {name = "VR512", subres = "0x07", resclass = "VRRSC", regbase = 160, restrictres_64 = "0-31"}, + {name = "GR8X", partial = "true", subres = "0x01", x64 = true, resclass = "GRRSC", restrictres = "4-15", regbase = 48}, + {name = "GR64", subres = "0x07", x64 = true, resclass = "GRRSC", regbase = 80}, +} +data.classaliases = { + {name = "GR", dest = "GR32", x32 = true}, + {name = "GR", dest = "GR64", x64 = true}, +} +data.resources = { + {name = "GRRSC", cnt = 8, resbits = 4, x32 = true}, + {name = "VRRSC", cnt = 8, resbits = 4, x32 = true}, + {name = "GRRSC", cnt = 16, resbits = 4, x64 = true}, + {name = "VRRSC", cnt = 32, resbits = 4, x64 = true}, + {name = "FLAGRSC", cnt = 1, resbits = 1}, +} +data.registers = { + {name = "FLAGS", class = "FLAGSR", id = 1, refclass = "FLAGS", resindex = 0}, +} +local r = data.registers +for k,v in _pairs({ A = 0, C = 1, D = 2, B = 3}) do + r[#r+1] = {name = k.."L", id = 32+v, class = "GR8L", refclass = "GR8", resindex = v} + r[#r+1] = {name = k.."H", id = 32+4+v, class = "GR8H", refclass = "GR8", resindex = v} + r[#r+1] = {name = k.."X", id = 64+v, class = "GR16", refclass = "GR16", resindex = v} + r[#r+1] = {name = "E"..k.."X", id = 16+v, class = "GR32", refclass = "GR32", resindex = v} + r[#r+1] = {name = "R"..k.."X", id = 80+v, class = "GR64", refclass = "GR64", resindex = v, x64 = true} +end +for k,v in _pairs({ SP = 4, BP = 5, SI = 6, DI = 7}) do + r[#r+1] = {name = k.."L", id = 48+v, class = "GR8X", refclass = "GR8", resindex = v, x64 = true} + r[#r+1] = {name = k, id = 64+v, class = "GR16", refclass = "GR16", resindex = v} + r[#r+1] = {name = "E"..k, id = 16+v, class = "GR32", refclass = "GR32", resindex = v} + r[#r+1] = {name = "R"..k, id = 80+v, class = "GR64", refclass = "GR64", resindex = v, x64 = true} +end +for v = 0,7 do + r[#r+1] = {name = "XMM"..v, namemask = "XMM%d", id = 96+v, class = "VR128", refclass = "VR128", resindex = v} + r[#r+1] = {name = "YMM"..v, namemask = "YMM%d", id = 128+v, class = "VR256", refclass = "VR256", resindex = v} + r[#r+1] = {name = "ZMM"..v, namemask = "ZMM%d", id = 160+v, class = "VR512", refclass = "VR512", resindex = v} +end +for v = 8,31 do + if v < 16 then + r[#r+1] = {name = "R"..v.."L", namemask = "R%dL", id = 48+v, class = "GR8X", refclass = "GR8", resindex = v, x64 = true} + r[#r+1] = {name = "R"..v.."W", namemask = "R%dW", id = 64+v, class = "GR16", refclass = "GR16", resindex = v, x64 = true} + r[#r+1] = {name = "R"..v.."D", namemask = "R%dD", id = 16+v, class = "GR32", refclass = "GR32", resindex = v, x64 = true} + r[#r+1] = {name = "R"..v, namemask = "R%d", id = 80+v, class = "GR64", refclass = "GR64", resindex = v, x64 = true} + end + r[#r+1] = {name = "XMM"..v, namemask = "XMM%d", id = 96+v, class = "VR128", refclass = "VR128", resindex = v, x64 = true} + r[#r+1] = {name = "YMM"..v, namemask = "YMM%d", id = 128+v, class = "VR256", refclass = "VR256", resindex = v, x64 = true} + r[#r+1] = {name = "ZMM"..v, namemask = "ZMM%d", id = 160+v, class = "VR512", refclass = "VR512", resindex = v, x64 = true} +end +_sort(r,function(a,b) + if a.x64 ~= b.x64 then return b.x64 end + if a.x32 ~= b.x32 then return b.x32 end + return a.id GRC32 +GRC32 -> GRC64 +VRC128 -> VRC256 +VRC256 -> VRC512 +:allocation +GRC8 = 0-3; x32 +GRC8 = 0-3, 8-15; x64 +GRC16 = 0-7; x32 +GRC16 = 0-15; x64 +GRC32 = 0-7; x32 +GRC32 = 0-15; x64 +GRC64 = 0-15; x64 +VRC128 = 8-15; x32 +VRC128 = 16-47; x64 +VRC256 = 8-15; x32 +VRC256 = 16-47; x64 +VRC512 = 8-15; x32 +VRC512 = 16-47; x64 +:deallocation +GRC8 = 0-3:AL; x32 +GRC8 = 0-3:AL, 8-15:R8L; x64 +GRC16 = 0-15:AX +GRC32 = 0-15:EAX +GRC64 = 0-15:RAX +VRC128 = 16-47:XMM0 +VRC256 = 16-47:YMM0 +VRC512 = 16-47:ZMM0 diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..8285d50 --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,6 @@ +#include "stdio.h" + +int main() { + puts("Hello, World!"); + return 0; +} diff --git a/src/memmgr.cpp b/src/memmgr.cpp new file mode 100644 index 0000000..9b59786 --- /dev/null +++ b/src/memmgr.cpp @@ -0,0 +1,814 @@ +// this allocator is based on Doug Leah's malloc. it contains slight modifications such as: +// - the returned memory is executable. so don't used it for normal allocations +// - allocated blocks always fill whole cache lines +// - allocations are for data and code. data and code do not share cache lines, but pages. +// TODO: +// the code lacks comments + +#include "jitcs_memmgr.h" +#include "jitcs_cpu.h" + +#if defined(EVM_WINDOWS) +#define WIN32_LEAN_AND_MEAN +#include +#endif +#if defined(EVM_POSIX) +#include +#include +#include +// MacOS uses MAP_ANON instead of MAP_ANONYMOUS +#ifndef MAP_ANONYMOUS +# define MAP_ANONYMOUS MAP_ANON +#endif +#endif + +namespace jitcs { +class MemoryMgrImpl { +public: + typedef MemoryMgr::Space MemoryArea; + typedef MemoryMgr::CodeAndData CodeDataArea; +public: + MemoryMgrImpl(); + ~MemoryMgrImpl(); + +public: + /* todo + * allocate area for function relevant constants (aligned to 16 byte) + * allocate area for code (aligned to cache line size, currently 64 byte) + * allocated areas are stored in a function object, function objects can be forced to free allocated storage + */ + CodeDataArea allocate(size_t data, size_t code); + void deallocate(CodeDataArea); + + bool check(); + size_t getTotalSpace(); + size_t getAllocatedSpace(); + size_t getFreeSpace(); + size_t getReachableFreeSpace(); + bool shrink(); + +private: + template static T* _diffcast(U* org, ptrdiff_t diff) { return reinterpret_cast(reinterpret_cast(org) + diff); } + template static T* _cast(U* org) { return _diffcast(org, 0); } + +private: + enum { + ARENA_SHIFT = 17, + SUM_ARENA_SHIFT = 22, + LIST_BIN_SHIFT = 4, + TREE_BIN_SHIFT = 8, + MAX_BIN_SHIFT = ARENA_SHIFT - 1, + MAX_LIST_CHUNK_SIZE = 1 << TREE_BIN_SHIFT, + MAX_REQUEST_SHIFT = 15, + LIST_BIN_COUNT = 1 << (TREE_BIN_SHIFT - LIST_BIN_SHIFT), + TREE_BIN_COUNT = 2 * (ARENA_SHIFT - TREE_BIN_SHIFT), + CBIT = 1, + FBIT = 4, + ALLBITS = 7, + }; + + struct _ListNode; + struct _TreeNode; + struct _SysNode; + struct _BlockNode { + size_t size, prevsize; + _BlockNode* getPrev() { return _diffcast<_BlockNode>(this, -(ptrdiff_t)prevsize); } + _BlockNode* getNext() { return _diffcast<_BlockNode>(this, getSize()); } + bool knowsPrev() { return prevsize > 0; } + bool isInUse() { return (size & CBIT) != 0; } + void setFooterSize(ptrdiff_t sz) { getNext()->prevsize = sz; } + void setSize(ptrdiff_t sz) { size = (size & ALLBITS) + sz; } + void setCBitFalse() { size &= ~CBIT; } + void setCBitTrue() { size |= CBIT; } + void init() { size = 16 | CBIT; } + size_t getSize() { return size & ~ALLBITS; } + + _ListNode* toList() { return _diffcast<_ListNode>(this, 0); } + _TreeNode* toTree() { return _diffcast<_TreeNode>(this, 0); } + _SysNode* toSys() { return _diffcast<_SysNode>(this, 0); } + MemoryArea payload() { return MemoryArea::Make(_diffcast(this, 16), getSize()-16); } + CodeDataArea payload(size_t dsz) { CodeDataArea cda; + cda.data = MemoryArea::Make(_diffcast(this, 16), dsz-16); + cda.code = MemoryArea::Make(_diffcast(this, dsz), getSize()-dsz); + return cda; } + }; + struct _ListNode : public _BlockNode { + _ListNode *prev, *next; + bool isLast() { return next == this; } + void init() { prev = next = this; } + void linkInAfter(_ListNode* n) { next = n->next; prev = n; n->next = this; next->prev = this; } + void linkInBefore(_ListNode* n) { next = n; prev = n->prev; n->prev = this; prev->next = this; } + void linkOut() { prev->next = next; next->prev = prev; } + }; + struct _TreeNode : public _BlockNode { + _TreeNode *prev, *next, *children[2], *parent; + size_t binno; + bool isLast() { return next == this; } + void init() { prev = next = this; } + void linkInAfter(_TreeNode* n) { next = n->next; prev = n; n->next = this; next->prev = this; } + void linkInBefore(_TreeNode* n) { next = n; prev = n->prev; n->prev = this; prev->next = this; } + void linkOut() { prev->next = next; next->prev = prev; } + }; + struct _SysNode : public _BlockNode { + _SysNode *prev, *next; + bool touched; + bool isLast() { return next == this; } + void init() { prev = next = this; } + void linkInAfter(_SysNode* n) { next = n->next; prev = n; n->next = this; next->prev = this; } + void linkInBefore(_SysNode* n) { next = n; prev = n->prev; n->prev = this; prev->next = this; } + void linkOut() { prev->next = next; next->prev = prev; } + }; + +private: + MemoryArea _allocSystemPages(size_t); + void _freeSystemPages(MemoryArea); + + void _allocArena(); + + static size_t _getListIndex(size_t S); + static size_t _getTreeIndex(size_t S); + static _TreeNode* _getLeaf(_TreeNode* n); + static _TreeNode* _getSmallestSh(_TreeNode* chunk, size_t sh); + static _TreeNode* _getSmallest(_TreeNode* chunk, size_t binno); + static _TreeNode* _getBest(_TreeNode* chunk, size_t binno, size_t sz); + static size_t _getFreeListSize(_ListNode* sentinel); + static size_t _getFreeTreeSize(_TreeNode* sentinel); + + void _moveTreeNode(_TreeNode* next, _TreeNode* org); + void _unlinkTreeNode(_TreeNode* chunk); + void _linkTreeNode(_TreeNode* chunk); + void _unlinkListNode(_ListNode* chunk); + void _linkListNode(_ListNode* chunk); + void _unlinkNode(_BlockNode* chunk); + void _linkNode(_BlockNode* chunk); + void _fuseAndLinkNode(_BlockNode* chunk); + + void _replaceVictim(_BlockNode* chunk); + _BlockNode* _allocVictim(size_t); + _BlockNode* _allocTop(size_t); + +private: + size_t _sizeOfPage, _alignmentOfPage, _cacheLineSize; + + // bins: 16, 32, 48, 64, ... (2^n, 2^n+2^(n-1), 2^(n+1), ...) + u32 _listBinMap, _treeBinMap; + _ListNode _listBins[LIST_BIN_COUNT]; + _TreeNode* _treeBins[TREE_BIN_COUNT]; + _TreeNode _root; + _BlockNode* _victim, *_top; + _SysNode _pageList; +}; +} // End jitcs namespace + +static size_t _IsZeroOrPowerOf2(size_t base) { + return ((base & (base - 1)) == 0); +} +static size_t _RoundUpToPowerOf2(size_t base) { + if (_IsZeroOrPowerOf2(base)) return base; + --base; + base = base | (base >> 1); + base = base | (base >> 2); + base = base | (base >> 4); + base = base | (base >> 8); + base = base | (base >> 16); + if (sizeof(base) > 4) + base = base | (base >> 32); + return ++base; +} +static size_t _GetLowBitIndex(size_t X) { +#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) + unsigned int J = __builtin_ctz(X); +#elif defined (__INTEL_COMPILER) + unsigned int J = _bit_scan_forward (X); +#elif defined(_MSC_VER) && _MSC_VER>=1300 + unsigned int J; + _BitScanForward((DWORD *) &J, X); +#elif USE_BUILTIN_FFS + unsigned int J = ffs(X)-1; +#else + unsigned int Y = X - 1; + unsigned int K = Y >> (16-4) & 16; + unsigned int N = K; Y >>= K; + N += K = Y >> (8-3) & 8; Y >>= K; + N += K = Y >> (4-2) & 4; Y >>= K; + N += K = Y >> (2-1) & 2; Y >>= K; + N += K = Y >> (1-0) & 1; Y >>= K; + unsigned int J = (N + Y); +#endif + return J; +} + +jitcs::MemoryMgrImpl::MemoryMgrImpl() { +#if defined(EVM_WINDOWS) + SYSTEM_INFO info; + GetSystemInfo(&info); + + _alignmentOfPage = info.dwAllocationGranularity; + _sizeOfPage = roundUpToPowerOf2(info.dwPageSize); +#endif +#if defined(EVM_POSIX) + _alignmentOfPage = _sizeOfPage = getpagesize(); +#endif + CPUInfo::Initialize(); + _cacheLineSize = CPUInfo::GetCachelineSize(); + _listBinMap = 0; + _treeBinMap = 0; + int i; + for (i = 0; i < LIST_BIN_COUNT; ++i) + _listBins[i].init(); + for (i = 0; i < TREE_BIN_COUNT; ++i) + _treeBins[i] = 0; + _victim = 0; + _top = 0; + _pageList.init(); +} +jitcs::MemoryMgrImpl::~MemoryMgrImpl() { + while (!_pageList.isLast()) { + _SysNode* sys = _pageList.next; + sys->linkOut(); + _freeSystemPages(MemoryArea::Make(_cast(sys), sys->getSize())); + } +} + +jitcs::MemoryMgrImpl::MemoryArea jitcs::MemoryMgrImpl::_allocSystemPages(size_t sz) { + size_t msize = (sz + _sizeOfPage - 1) & -(ptrdiff_t)_sizeOfPage; +#if defined(EVM_WINDOWS) + WORD protect = PAGE_EXECUTE_READWRITE; + void* mbase = VirtualAllocEx(GetCurrentProcess(), NULL, msize, MEM_COMMIT | MEM_RESERVE, protect); + if (mbase == NULL) return MemoryArea::Make(NULL, 0); +#endif +#if defined(EVM_POSIX) + int protection = PROT_READ | PROT_WRITE | (executable ? PROT_EXEC : 0); + void* mbase = mmap(NULL, msize, protection, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); + if (mbase == MAP_FAILED) return _makeMemoryArea(NULL, 0); +#endif + return MemoryArea::Make(reinterpret_cast(mbase), msize); +} + +void jitcs::MemoryMgrImpl::_freeSystemPages(MemoryArea ps) { +#if defined(EVM_WINDOWS) + VirtualFreeEx(GetCurrentProcess(), ps.start, 0, MEM_RELEASE); +#endif +#if defined(EVM_POSIX) + munmap(ps.start, ps.size); +#endif +} + +void jitcs::MemoryMgrImpl::_allocArena() { + MemoryArea ma = _allocSystemPages(1 << ARENA_SHIFT); + + _SysNode* sys = _diffcast<_SysNode>(ma.start,0); + sys->prevsize = 0; + sys->size = ma.size | CBIT; + sys->touched = true; + sys->linkInBefore(&_pageList); + _BlockNode* first = _diffcast<_BlockNode>(sys, _cacheLineSize); + _BlockNode* last = _diffcast<_BlockNode>(sys, ma.size - _cacheLineSize); + first->prevsize = _cacheLineSize; + first->size = ma.size - 2 * _cacheLineSize | CBIT | FBIT; + last->prevsize = 0; + last->size = _cacheLineSize | CBIT; + if (_top) { + _fuseAndLinkNode(_top); + } + _top = first; +} + +/* -------------------------- public routines ---------------------------- */ + +/* assign tree index for size S to variable I. Use x86 asm if possible */ +size_t jitcs::MemoryMgrImpl::_getListIndex(size_t S) { + return (S >> LIST_BIN_SHIFT) - 1; +} +size_t jitcs::MemoryMgrImpl::_getTreeIndex(size_t S) { + size_t X = S >> TREE_BIN_SHIFT; + if (X == 0) return 0; + if (X >= 1 << (TREE_BIN_COUNT/2)) return TREE_BIN_COUNT - 1; +#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) + unsigned int K = (unsigned) sizeof(X)*__CHAR_BIT__ - 1 - (unsigned) __builtin_clz(X); +#elif defined (__INTEL_COMPILER) + unsigned int K = _bit_scan_reverse (X); +#elif defined(_MSC_VER) && _MSC_VER>=1300 + unsigned int K; + _BitScanReverse((DWORD *) &K, (DWORD) X); +#else /* GNUC */ + unsigned int Y = (unsigned int)X; + unsigned int N = ((Y - 0x100) >> 16) & 8; + unsigned int K = (((Y <<= N) - 0x1000) >> 16) & 4; + N += K; + N += K = (((Y <<= K) - 0x4000) >> 16) & 2; + K = 14 - N + ((Y <<= K) >> 15); +#endif + return (K << 1) + ((S >> (K + (TREE_BIN_SHIFT-1)) & 1)); +} +jitcs::MemoryMgrImpl::CodeDataArea jitcs::MemoryMgrImpl::allocate(size_t data, size_t code) { + size_t dsz = (16 + data + _cacheLineSize - 1) & -(ptrdiff_t)_cacheLineSize; + size_t csz = (code + _cacheLineSize - 1) & -(ptrdiff_t)_cacheLineSize; + size_t sz = dsz + csz; + /* + Basic algorithm: + If a small request (< 256 bytes minus per-chunk overhead): + 1. If one exists, use a remainderless chunk in associated smallbin. + (Remainderless means that there are too few excess bytes to + represent as a chunk.) + 2. If it is big enough, use the dv chunk, which is normally the + chunk adjacent to the one used for the most recent small request. + 3. If one exists, split the smallest available chunk in a bin, + saving remainder in dv. + 4. If it is big enough, use the top chunk. + 5. If available, get memory from system and use it + Otherwise, for a large request: + 1. Find the smallest available binned chunk that fits, and use it + if it is better fitting than dv chunk, splitting if necessary. + 2. If better fitting than any binned chunk, use the dv chunk. + 3. If it is big enough, use the top chunk. + 4. If request size >= mmap threshold, try to directly mmap this chunk. + 5. If available, get memory from system and use it + + The ugly goto's here ensure that postaction occurs along all paths. + */ + + if (sz <= MAX_LIST_CHUNK_SIZE) { + size_t index = _getListIndex(sz); + u32 map = _listBinMap >> index; + if ((map & 3) != 0) { + index += ~map & 1; + _ListNode* chunk = _listBins[index].next; + chunk->linkOut(); + if (_listBins[index].isLast()) + _listBinMap &= ~(1 << index); + chunk->setCBitTrue(); + return chunk->payload(dsz); + } + if (_victim && sz <= _victim->getSize()) { + _BlockNode* newchunk = _allocVictim(sz); + return newchunk->payload(dsz); + } + if (map != 0) { /* Use chunk in next nonempty smallbin */ + index += _GetLowBitIndex(map); + _ListNode* chunk = _listBins[index].next; + chunk->linkOut(); + if (_listBins[index].isLast()) + _listBinMap &= ~(1 << index); + _replaceVictim(chunk); + _BlockNode* newchunk = _allocVictim(sz); + return newchunk->payload(dsz); + } + if (_treeBinMap != 0) { + index = _GetLowBitIndex(_treeBinMap); + _TreeNode* chunk = _getSmallest(_treeBins[index], index)->next; + _unlinkTreeNode(chunk); + _replaceVictim(chunk); + _BlockNode* newchunk = _allocVictim(sz); + return newchunk->payload(dsz); + } + if (!_top || _top->getSize() < sz) + _allocArena(); + _BlockNode* newchunk = _allocTop(sz); + return newchunk->payload(dsz); + } else { + // todo: handle large requests... + size_t index = _getTreeIndex(sz); + u32 map = _treeBinMap >> index; + _TreeNode* chunk = 0; + if ((map & 1) != 0) { + chunk = _getBest(_treeBins[index], index, sz); + assert(!chunk || chunk->getSize() >= sz); + } + if (!chunk && map >= 2) { + index += _GetLowBitIndex(map & ~1); + chunk = _getSmallest(_treeBins[index], index); + } + if (chunk && (!_victim || _victim->getSize() <= sz || chunk->getSize() < _victim->getSize())) { + chunk = chunk->next; + _unlinkTreeNode(chunk); + _replaceVictim(chunk); + _BlockNode* newchunk = _allocVictim(sz); + return newchunk->payload(dsz); + } else if (_victim && sz <= _victim->getSize()) { + _BlockNode* newchunk = _allocVictim(sz); + return newchunk->payload(dsz); + } + if (!_top || _top->getSize() < sz) + _allocArena(); + _BlockNode* newchunk = _allocTop(sz); + return newchunk->payload(dsz); + } +} + +void jitcs::MemoryMgrImpl::_fuseAndLinkNode(_BlockNode* chunk) { + size_t sz = chunk->getSize(); + _BlockNode* next = chunk->getNext(); + if (!next->isInUse()) { + _unlinkNode(next); + sz += next->getSize(); + } + if (chunk->knowsPrev() && !chunk->getPrev()->isInUse()) { + chunk = chunk->getPrev(); + sz += chunk->getSize(); + _unlinkNode(chunk); + } + chunk->setSize(sz); + chunk->setCBitFalse(); + chunk->setFooterSize(sz); + _linkNode(chunk); +} + +void jitcs::MemoryMgrImpl::deallocate(CodeDataArea x) { + if (!x.data.start || !x.data.size || x.data.start + x.data.size != x.code.start) return; + + _BlockNode* chunk = _diffcast<_BlockNode>(x.data.start, -16); + if ((chunk->size & CBIT) == 0) return; + size_t sz = 16 + x.data.size + x.code.size; + if ((chunk->size & ~7) != sz) return; + + _fuseAndLinkNode(chunk); +} + +jitcs::MemoryMgrImpl::_TreeNode* jitcs::MemoryMgrImpl::_getLeaf(_TreeNode* n) { + if (n->children[0]) return _getLeaf(n->children[0]); + if (n->children[1]) return _getLeaf(n->children[1]); + return n; +} + +void jitcs::MemoryMgrImpl::_moveTreeNode(_TreeNode* next, _TreeNode* org) { + next->children[0] = org->children[0]; + if (next->children[0]) next->children[0]->parent = next; + next->children[1] = org->children[1]; + if (next->children[1]) next->children[1]->parent = next; + next->parent = org->parent; + if (next->parent) { + if (next->parent == &_root) + _treeBins[org->binno] = next; + else + next->parent->children[next->parent->children[1] == org] = next; + } +} + +void jitcs::MemoryMgrImpl::_unlinkTreeNode(_TreeNode* chunk) { + if (chunk->size & FBIT) { + if (chunk->getSize() + 2 * _cacheLineSize == _diffcast<_SysNode>(chunk, -(ptrdiff_t)_cacheLineSize)->getSize()) { + _diffcast<_SysNode>(chunk, -(ptrdiff_t)_cacheLineSize)->touched = true; + } + } + if (!chunk->isLast()) { + chunk->linkOut(); + if (chunk->parent != 0) + _moveTreeNode(chunk->next, chunk); + return; + } + assert(chunk->parent != 0); + _TreeNode* leaf = _getLeaf(chunk); + if (leaf == chunk) { + if (_cast<_TreeNode>(leaf->parent) == &_root) { + _treeBinMap &= ~(1 << chunk->binno); + _treeBins[chunk->binno] = 0; + } else + chunk->parent->children[chunk->parent->children[1] == chunk] = 0; + } else { + leaf->parent->children[leaf->parent->children[1] == leaf] = 0; + _moveTreeNode(leaf, chunk); + } +} + +void jitcs::MemoryMgrImpl::_linkTreeNode(_TreeNode* chunk) { + size_t binno = _getTreeIndex(chunk->size); + if ((_treeBinMap & (1 << binno)) == 0) { + _treeBinMap |= (1 << binno); + _treeBins[binno] = chunk; + chunk->parent = &_root; + chunk->children[0] = chunk->children[1] = 0; + chunk->binno = binno; + chunk->prev = chunk->next = chunk; + return; + } + size_t sz = chunk->size; + _TreeNode** r = &_treeBins[binno], *p = &_root; + size_t sh = (binno >> 1) + TREE_BIN_SHIFT - 2; + while (*r) { + if ((*r)->size == sz) { + chunk->linkInBefore(*r); + chunk->parent = 0; + chunk->binno = binno; + return; + } + p = *r; + r = &(*r)->children[(sz >> sh) & 1]; + sh--; + } + *r = chunk; + chunk->parent = p; + chunk->children[0] = chunk->children[1] = 0; + chunk->binno = binno; + chunk->prev = chunk->next = chunk; +} + +jitcs::MemoryMgrImpl::_TreeNode* jitcs::MemoryMgrImpl::_getSmallestSh(_TreeNode* chunk, size_t sh) { + _TreeNode* r = chunk, *best = r; + size_t bestsize = ~0; + while (r) { + if (r->getSize() < bestsize) { + best = r; + bestsize = r->getSize(); + } + if (r->children[0] != 0) + r = r->children[0]; + else if (r->children[1] != 0 /*&& ((bestsize >> sh) & 1) != 0*/) + r = r->children[1]; + else + break; +// sh--; + } + return best; +} +jitcs::MemoryMgrImpl::_TreeNode* jitcs::MemoryMgrImpl::_getSmallest(_TreeNode* chunk, size_t binno) { + return _getSmallestSh(chunk, (binno >> 1) + TREE_BIN_SHIFT - 2); +} +jitcs::MemoryMgrImpl::_TreeNode* jitcs::MemoryMgrImpl::_getBest(_TreeNode* chunk, size_t binno, size_t sz) { + _TreeNode* r = chunk, *best = 0, *reset = 0, *rt; + size_t bestsize = ~0; + size_t sh = (binno >> 1) + TREE_BIN_SHIFT - 2, sh2 = sh; + while (r) { + if (r->getSize() >= sz && r->getSize() < bestsize) { + best = r; + bestsize = r->getSize(); + if (bestsize == sz) return best; + } + rt = r->children[1]; + r = r->children[(sz >> sh) & 1]; + if (rt && rt != r) { reset = rt; sh2 = sh-1; } + if (!r) { + if (reset) { + rt = _getSmallestSh(reset, sh2); + if (rt->getSize() >= sz && rt->getSize() < bestsize) + return rt; + } + } + } + return best; +} + + +void jitcs::MemoryMgrImpl::_unlinkListNode(_ListNode* chunk) { + if (chunk->size & FBIT) { + if (chunk->getSize() + 2 * _cacheLineSize == _diffcast<_SysNode>(chunk, -(ptrdiff_t)_cacheLineSize)->getSize()) { + _diffcast<_SysNode>(chunk, -(ptrdiff_t)_cacheLineSize)->touched = true; + } + } + size_t binno = _getListIndex(chunk->size); + assert((_listBinMap & (1 << binno)) != 0); + chunk->linkOut(); + if (_listBins[binno].isLast()) + _listBinMap &= ~(1 << binno); +} + +void jitcs::MemoryMgrImpl::_linkListNode(_ListNode* chunk) { + size_t binno = _getListIndex(chunk->size); + chunk->linkInBefore(&_listBins[binno]); + _listBinMap |= (1 << binno); +} + +void jitcs::MemoryMgrImpl::_unlinkNode(_BlockNode* chunk) { + if (chunk->getSize() <= MAX_LIST_CHUNK_SIZE) + _unlinkListNode(chunk->toList()); + else + _unlinkTreeNode(chunk->toTree()); +} + +void jitcs::MemoryMgrImpl::_linkNode(_BlockNode* chunk) { + if (chunk->getSize() <= MAX_LIST_CHUNK_SIZE) + _linkListNode(chunk->toList()); + else + _linkTreeNode(chunk->toTree()); +} + +void jitcs::MemoryMgrImpl::_replaceVictim(_BlockNode* chunk) { + chunk->setCBitTrue(); + chunk->setFooterSize(0); + if (_victim) { + _fuseAndLinkNode(_victim); + } + _victim = chunk; +} +jitcs::MemoryMgrImpl::_BlockNode* jitcs::MemoryMgrImpl::_allocVictim(size_t sz) { + assert(_victim && _victim->getSize() >= sz); + assert((sz & (_cacheLineSize - 1)) == 0); + size_t vsz = _victim->getSize(); + if (vsz <= sz + _cacheLineSize) { + _BlockNode* r = _victim; + r->setFooterSize(vsz); + r->setCBitTrue(); + _victim = 0; + return r; + } + _BlockNode* r = _victim; + r->setSize(sz); + _victim = _diffcast<_BlockNode>(r, sz); + _victim->size = (vsz - sz) | CBIT; + _victim->prevsize = sz; + assert(_victim->getNext()->prevsize == 0); + return r; +} +jitcs::MemoryMgrImpl::_BlockNode* jitcs::MemoryMgrImpl::_allocTop(size_t sz) { + assert(_top && _top->getSize() >= sz); + assert((sz & (_cacheLineSize - 1)) == 0); + size_t vsz = _top->getSize(); + if (vsz <= sz + _cacheLineSize) { + _BlockNode* r = _top; + r->setFooterSize(vsz); + r->setCBitTrue(); + _top = 0; + return r; + } + _BlockNode* r = _top; + r->setSize(sz); + _top = _diffcast<_BlockNode>(r, sz); + _top->size = (vsz - sz) | CBIT; + _top->prevsize = sz; + assert(_top->getNext()->prevsize == 0); + return r; +} + +bool jitcs::MemoryMgrImpl::check() { + _SysNode* sys = _pageList.next; + bool foundvictim = false; + bool foundtop = false; + while (sys != &_pageList) { + u8* top = _diffcast(sys, sys->getSize()); + size_t lastsize = 0; + bool lastinuse = true; + bool first = true; + _BlockNode* n = _diffcast<_BlockNode>(sys, _cacheLineSize); + while (_cast(n) < top) { + if (n == _top) foundtop = true; + if (n == _victim) foundvictim = true; + if (first && (n->prevsize != _cacheLineSize)) { + return false; + } + if (!first && !(n->prevsize == 0 || n->prevsize == lastsize)) { + return false; + } + if (((n->size & FBIT) != 0) != first) { + return false; + } + if (!((n->getSize() & (_cacheLineSize-1)) == 0)) { + return false; + } + if (!(lastinuse || n->isInUse())) { + return false; + } + lastsize = n->getSize(); + lastinuse = n->isInUse(); + n = n->getNext(); + first = false; + } + if (!(_cast(n) == top)) { + return false; + } + sys = sys->next; + } + if ((_victim && !foundvictim) || (_top && !foundtop)) { + return false; + } + + int i; + for (i = 0; i < LIST_BIN_COUNT; ++i) { + bool bininuse1 = (_listBinMap & (1 << i)) != 0; + bool bininuse2 = !_listBins[i].isLast(); + if (bininuse1 != bininuse2) { + return false; + } + } + for (i = 0; i < TREE_BIN_COUNT; ++i) { + bool bininuse1 = (_treeBinMap & (1 << i)) != 0; + bool bininuse2 = _treeBins[i] != 0; + if (bininuse1 != bininuse2) { + return false; + } + } + return true; +} +size_t jitcs::MemoryMgrImpl::getAllocatedSpace() { + size_t sum = 0; + _SysNode* sys = _pageList.next; + while (sys != &_pageList) { + u8* top = _diffcast(sys, sys->getSize()); + _BlockNode* n = _diffcast<_BlockNode>(sys, _cacheLineSize); + while (_cast(n) < top) { + if (n->isInUse()) sum += n->getSize(); + n = n->getNext(); + } + sys = sys->next; + } + return sum; +} +size_t jitcs::MemoryMgrImpl::getFreeSpace() { + size_t sum = 0; + _SysNode* sys = _pageList.next; + while (sys != &_pageList) { + u8* top = _diffcast(sys, sys->getSize()); + _BlockNode* n = _diffcast<_BlockNode>(sys, _cacheLineSize); + while (_cast(n) < top) { + if (!n->isInUse()) sum += n->getSize(); + n = n->getNext(); + } + sys = sys->next; + } + return sum; +} +size_t jitcs::MemoryMgrImpl::_getFreeListSize(_ListNode* sentinel) { + size_t sum = 0; + _ListNode* n = sentinel->next; + while (n != sentinel) { + sum += n->getSize(); + n = n->next; + } + return sum; +} +size_t jitcs::MemoryMgrImpl::_getFreeTreeSize(_TreeNode* sentinel) { + size_t sum = 0; + if (!sentinel) return sum; + assert(sentinel->parent != 0); + _TreeNode* n = sentinel->next; + sum += sentinel->getSize(); + while (n != sentinel) { + sum += n->getSize(); + n = n->next; + } + if (sentinel->children[0]) + sum += _getFreeTreeSize(sentinel->children[0]); + if (sentinel->children[1]) + sum += _getFreeTreeSize(sentinel->children[1]); + return sum; +} +size_t jitcs::MemoryMgrImpl::getReachableFreeSpace() { + size_t sum = 0; + int i; + for (i = 0; i < LIST_BIN_COUNT; ++i) { + sum += _getFreeListSize(&_listBins[i]); + } + for (i = 0; i < TREE_BIN_COUNT; ++i) { + sum += _getFreeTreeSize(_treeBins[i]); + } + return sum; +} +size_t jitcs::MemoryMgrImpl::getTotalSpace() { + size_t sum = 0; + _SysNode* sys = _pageList.next; + while (sys != &_pageList) { + sum += sys->getSize(); + sys = sys->next; + } + return sum; +} +bool jitcs::MemoryMgrImpl::shrink() { + bool freedpages = false; + _SysNode* sys = _pageList.next; + while (sys != &_pageList) { + bool isempty = false; + _BlockNode* first = _diffcast<_BlockNode>(sys, _cacheLineSize); + if (!first->isInUse() && first->getSize() == sys->getSize() - 2 * _cacheLineSize) + isempty = true; + if (isempty && !sys->touched) { + _SysNode* next = sys->next; + _unlinkNode(first); + sys->linkOut(); + _freeSystemPages(MemoryArea::Make(_cast(sys), sys->getSize())); + freedpages = true; + sys = next; + } else { + sys->touched = !isempty; + sys = sys->next; + } + } + return freedpages; +} + +jitcs::MemoryMgr::MemoryMgr() + : _mgr(new MemoryMgrImpl) { +} + +jitcs::MemoryMgr::CodeAndData jitcs::MemoryMgr::allocate(size_t data, size_t code) { + return _mgr->allocate(data, code); +} +void jitcs::MemoryMgr::deallocate(CodeAndData cad) { + _mgr->deallocate(cad); +} +bool jitcs::MemoryMgr::check() { + return _mgr->check(); +} +size_t jitcs::MemoryMgr::getTotalSpace() { + return _mgr->getTotalSpace(); +} +size_t jitcs::MemoryMgr::getAllocatedSpace() { + return _mgr->getAllocatedSpace(); +} +size_t jitcs::MemoryMgr::getFreeSpace() { + return _mgr->getFreeSpace(); +} +size_t jitcs::MemoryMgr::getReachableFreeSpace() { + return _mgr->getReachableFreeSpace(); +} +bool jitcs::MemoryMgr::shrink() { + return _mgr->shrink(); +} diff --git a/src/tmpalloc.cpp b/src/tmpalloc.cpp new file mode 100644 index 0000000..8e43dbf --- /dev/null +++ b/src/tmpalloc.cpp @@ -0,0 +1,77 @@ +//===-- vmjit_tmpalloc.h - Never-free allocator class -----------*- C++ -*-===// +// +// This is a never-free allocator. All allocated data is written into +// one memory block. All data are freed en bloc. No destructors are called! +// +//===----------------------------------------------------------------------===// + +#include "vmjit_base.h" +#include "vmjit_tmpalloc.h" + +namespace vmjit { + +class TempAllocator { +public: + enum { MINIMUM_BLOCK_SIZE= 4096*4 }; + +public: + TempAllocator(); + ~TempAllocator(); + +public: + void restart(); + u8* allocAligned(size_t sz) { + assert(RoundUpToP2(sz, _alignment) == sz); + if (sz <= _rem) { + u8* res = _cur; + _cur += sz; + _rem -= sz; + return res; + } + return _alloc(sz); + } + u8* allocUnaligned(size_t sz) { + return allocAligned(RoundUpToP2(sz, _alignment)); + } + u8* alloc(size_t sz) { return allocUnaligned(sz); } + template + T* allocArray(size_t sz) { return reinterpret_cast(alloc(sizeof(T) * sz)); } + void setAlignment(size_t a); + +private: + u8* _alloc(size_t sz); + void _align(); + +private: + typedef std::list< std::vector > BlockList; + BlockList _blocks; + BlockList::iterator _curblock; + u8* _cur; + size_t _rem; + size_t _allocatedSpace, _alignment; +}; + +template +class PoolAllocator { +public: + PoolAllocator(TempAllocator& a, size_t n, size_t align) : _allocator(a), _ptr(vmjit_nullptr), _rem(0), _allocN(n) { + assert(n > 0); + } + +public: + T* alloc() { if (_rem > 0) { T* res = _ptr++; --_rem; return res; } else return _alloc(); } + +private: + T* _alloc() { _ptr = reinterpret_cast(_allocator.allocUnaligned(sizeof(T)*_allocN)); _rem = _allocN; return alloc(); } + +private: + TempAllocator &_allocator; + T* _ptr; + size_t _rem, _allocN; +}; + + +} // End namespace + +#endif +// _VMJIT_TMPALLOC_H_ diff --git a/src/x86/x86_xx_regs.lh b/src/x86/x86_xx_regs.lh new file mode 100644 index 0000000..ad2b2f7 --- /dev/null +++ b/src/x86/x86_xx_regs.lh @@ -0,0 +1,234 @@ +#/bin/emblua LUAPREFIX=/*| +/*| --VARDELIM=% +/*| --CMTDELIM=// +/*| --XDUMPSCRIPT=true +/*| --*/ +/*| local N = $$$ +/*| function pred_ipairs(t, pred) +/*| return function(t,k) +/*| local v +/*| repeat +/*| k = k + 1 +/*| v = t[k] +/*| until not v or pred(k, v) +/*| return v and k, v +/*| end, t, 0 +/*| end +/*| function isaN(k,v) return not v[N==32 and "x64" or "x32"] end +//===-- x86/x86_%(N)_regs.h C++ -----------------------------------------*-===// +// +// Register definitions for %(N)bit x86 code. +// +//===----------------------------------------------------------------------===// + +#ifndef _VMJIT_X86_X86_%(N)_REGS_H_ +#define _VMJIT_X86_X86_%(N)_REGS_H_ + +#include "vmjit_base.h" +#include "vmjit_ids.h" +#include "vmjit_x86_%(N)_regs.h" + +/*| local data= runfile("../src/data/x86_reglist.dat") +/*| local function hex2(n) return string.format("0x%02x", n) end +/*| --*/ + +namespace vmjit { +namespace x86_%(N) { + +/*| local n2c = {} +/*| for k,v in ipairs(data.classes) do +/*| n2c[v.name] = v +/*| end +/*| local c2r, c2ra, n2r = {}, {}, {} +/*| for k,v in ipairs(data.registers) do +/*| n2r[v.name] = v +/*| local c = c2r[v.class] or {} +/*| c2r[v.class] = c +/*| c[#c+1] = v +/*| end +/*| for k,v2 in ipairs(data.registeraliases) do +/*| local v = n2r[v2.dest] +/*| local c = c2ra[v.class] or {} +/*| c2ra[v.class] = c +/*| c[#c+1] = v2 +/*| end +/*| resc2resid = {x32 = {}, sizex32 = {}, x32cnt = 0, x64 = {}, sizex64 = {}, x64cnt = 0} +/*| for k,v in ipairs(data.resources) do +/*| if not v.x64 then +/*| resc2resid.x32[v.name] = resc2resid.x32cnt; +/*| resc2resid.x32cnt = resc2resid.x32cnt + v.cnt +/*| resc2resid.sizex32[v.name] = v.cnt +/*| end +/*| if not v.x32 then +/*| resc2resid.x64[v.name] = resc2resid.x64cnt; +/*| resc2resid.x64cnt = resc2resid.x64cnt + v.cnt +/*| resc2resid.sizex64[v.name] = v.cnt +/*| end +/*| end +/*| resc2rescid, rescidcnt, rescid2resc = {}, 0, {} +/*| regc2resc = {} +/*| for k,v in ipairs(data.classes) do +/*| regc2resc[v.name] = v.resclass +/*| if not resc2rescid[v.resclass] then +/*| resc2rescid[v.resclass] = rescidcnt +/*| rescid2resc[rescidcnt] = v.resclass +/*| rescidcnt = rescidcnt + 1 +/*| end +/*| end +/*| local rescnt = 0 +/*| for k,v in ipairs(data.resources) do +/*| if isaN(nil, v) then rescnt = rescnt + v.cnt end +/*| end +/*| --*/ +enum { + RES_Count = %(rescnt), + RESCL_Count = %(rescidcnt), +}; +/*| for k = 1, rescidcnt do +static const ResClassId RESCL_%(rescid2resc[k - 1]) = static_cast(%(k - 1)); +/*| end +/*| --*/ + +/*| local nn32, nn64, v2nn = 0, 0, {} +/*| for z = 1,3 do +/*| for l,cl in ipairs(data.classes) do +/*| for k,v in ipairs(c2r[cl.name]) do +/*| local cond32 = (cl.x32 or not cl.x64) and (v.x32 or not v.x64) +/*| local cond64 = (not cl.x32 or cl.x64) and (not v.x32 or v.x64) +/*| if (z == 1 and cond32 and cond64) or (z == 2 and cond32 and not cond64) or (z == 3 and not cond32 and cond64) then +/*| v2nn[v.name] = {x32 = cond32 and nn32, x64 = cond64 and nn64} +/*| if (cond32) then nn32 = nn32 + 1 end +/*| if (cond64) then nn64 = nn64 + 1 end +/*| end +/*| end +/*| end +/*| end +/*| --*/ + +template struct RegInfoCT {}; +template struct ResInfoCT {}; +template struct RegClassInfoCT {}; +template struct ResClassInfoCT {}; + +/*| for k = 1, rescidcnt do +/*| local i = resc2resid["x"..N][rescid2resc[k - 1]] +/*| local v = resc2resid["sizex"..N][rescid2resc[k - 1]] +template<> struct ResClassInfoCT { + enum { RES_Idx = %(i), RES_PoolSize = %(v) }; +}; +/*| end +/*| --*/ + +/*| reg2resid = {x32 = {}, x64 = {}} +/*| for k,v in ipairs(data.registers) do +/*| if not v.x64 then +/*| reg2resid.x32[v.name] = resc2resid.x32[regc2resc[v.class]] + v.resindex +/*| end +/*| if not v.x32 then +/*| reg2resid.x64[v.name] = resc2resid.x64[regc2resc[v.class]] + v.resindex +/*| end +/*| end +/*| local function sum(rlist, subtype) +/*| local s = 0 +/*| for k,v in ipairs(rlist) do +/*| s = s + math.pow(2, reg2resid[subtype][v]) +/*| end +/*| return string.format("0x%x", s) +/*| end +/*| local res2rescl = {} +/*| for k,v in pred_ipairs(data.registers, isaN) do +/*| local vv = reg2resid["x"..N][v.name] +/*| if vv then +/*| if not res2rescl[vv] then +/*| res2rescl[vv] = { ["x"..N] = regc2resc[v.class] } +/*| else +/*| assert(not res2rescl[vv]["x"..N] or res2rescl[vv]["x"..N] == regc2resc[v.class]) +/*| res2rescl[vv]["x"..N] = regc2resc[v.class] +/*| end +/*| end +template <> struct RegInfoCT { + static const ResId RES_Id = static_cast(%(vv)); + static const ResClassId RESCL_Id = RESCL_%(regc2resc[v.class]); + static const RegClassId RC_Id = RC_%(v.refclass or "Count"); + static uint VR_Idx = %(v2nn[v.name]["x"..N]); +}; +/*| end +/*| for k = 1, rescnt do +/*| local vv = res2rescl[k-1]["x"..N] +template <> struct ResInfoCT<%(k-1)> { + static const ResClassId RESCL_Id = RESCL_%(vv); +}; +/*| end + +/*| for l,cl in pred_ipairs(data.refclasses, isaN) do +/*| local da = 0 +/*| if cl.dontalloc then +/*| local f,t = cl.dontalloc:match("^(%d+)%-(%d+)$") +/*| if f and t then da = 2 ^ (t+1) - 2 ^ f end +/*| end +template <> struct RegClassInfoCT { + static const ResClassId RESCL_Id = RESCL_%(regc2resc[cl.classes[1]]); + static const u16 MASK_DontAlloc = %(da); + static const u8 SIZE = %(cl.defsz); +}; +/*| end +/*| --*/ + +/*| local minid, maxid = 255, 0 +/*| for k,v in ipairs(data.registers) do +/*| if v.id > maxid then maxid = v.id end +/*| if v.id < minid then minid = v.id end +/*| end +extern const u8 ArrayReg2RegClass[%(maxid-minid+1)]; +extern const u8 ArrayReg2Res[%(maxid-minid+1)]; +extern const u8 ArrayReg2ResClass[%(maxid-minid+1)]; +extern const u8 ArrayRegClass2ResClass[RC_Count]; +extern const u8 ArrayRegClass2Size[RC_Count]; +extern const u16 ArrayRegClass2DontAlloc[RC_Count]; +extern const u8 ArrayRes2ResClass[RES_Count]; +extern const u8 ArrayResClass2ResClassIndex[RESCL_Count]; +extern const u8 ArrayResClass2ResClassSize[RESCL_Count]; +static inline RegClassId GetRegClassOfReg(RegId r) { + assert(r >= %(minid) && r <= %(maxid)); + return static_cast(ArrayReg2RegClass[r-%(minid)]); +} +static inline ResId GetResOfReg(RegId r) { + if (r >= R_HardwareLimit) return static_cast(RES_Count + r - R_HardwareLimit); + assert(r >= %(minid) && r <= %(maxid)); + return static_cast(ArrayReg2Res[r-%(minid)]); +} +static inline ResClassId GetResClassOfReg(RegId r) { + assert(r >= %(minid) && r <= %(maxid)); + return static_cast(ArrayReg2ResClass[r-%(minid)]); +} +static inline ResClassId GetResClassOfRegClass(RegClassId rc) { + assert(rc < RC_Count); + return static_cast(ArrayRegClass2ResClass[rc]); +} +static inline u8 GetSizeOfRegClass(RegClassId rc) { + assert(rc < RC_Count); + return ArrayRegClass2Size[rc]; +} +static inline u16 GetDontAllocOfRegClass(RegClassId rc) { + assert(rc < RC_Count); + return ArrayRegClass2DontAlloc[rc]; +} +static inline ResClassId GetResClassOfRes(ResId res) { + assert(res < RES_Count); + return static_cast(ArrayRes2ResClass[res]); +} +static inline u8 GetResIndexOfResClass(ResClassId rescl) { + assert(rescl < RESCL_Count); + return ArrayResClass2ResClassIndex[rescl]; +} +static inline u8 GetSizeOfResClass(ResClassId rescl) { + assert(rescl < RESCL_Count); + return ArrayResClass2ResClassSize[rescl]; +} +RegId GetRegForRes(RegClassId rc, ResId res); +VRegRef GetRRefForRes(RegClassId rc, ResId res); + +} // end of namespace vmjit::x86_%(N) +} // end of namespace vmjit +#endif +// _VMJIT_X86_X86_%(N)_REGS_H_ diff --git a/tools/emblua.lua b/tools/emblua.lua new file mode 100644 index 0000000..862bbea --- /dev/null +++ b/tools/emblua.lua @@ -0,0 +1,369 @@ +---------------------------------------------------- +local _setfenv, _ipairs, _pairs, _select, _tostr = setfenv, ipairs, pairs, select, tostring +local _loadstr, _pcall, _type = loadstring, pcall, type +local _open, _write, _err, _rerouteoutput = io.open, io.write, io.stderr, io.output +local _flush, _filelines = io.flush, io.lines +local _match, _gmatch, _fmt, _upper = string.match, string.gmatch, string.format, string.upper +local _gsub, _sub, _byte = string.gsub, string.sub, string.byte +local _exec, _getenv = os.execute, os.getenv +local _cat = table.concat + +local _filesep = _match(_getenv("OS"),"Windows") and "\\" or "/" + +local function _existfile(n) + local f = _open(n) + if not f then return false end + f:close() + return true +end + +local function _readfile(n) + local f = _open(n) + local ctnt = f:read("*a") + f:close() + return ctnt +end +local function _writefile(n, c) + local f = _open(n, "w") + f:write(c) + f:close() +end + +local function _strlines(self) + local me, ix = self[1], self[2] + local n = #me + if ix > n then return nil end + local ix2 = ix + local c = _byte(me, ix2) + while c ~= 13 and c ~= 10 and ix2 <= n do + ix2 = ix2 + 1 + c = _byte(me, ix2) + end + local ix3 = ix2 + while ix3 <= n and _byte(me, ix3) == 13 do ix3 = ix3 + 1 end + if ix3 <= n and _byte(me, ix3) == 10 then ix3 = ix3 + 1 end + self[2] = ix3 + return _sub(me, ix, ix2 - 1) +end +local function strlines(str) return _strlines,{str,1} end + +local function stream_valid_input(s) + if type(s) == "string" then return _existfile(s) end + if type(s) == "table" and s.type == "file" then return _existfile(s.value) end + if type(s) == "table" and s.type == "string" then return true end + return false +end +local function _stream_filename(s) + if type(s) == "string" then return s or "" end + if type(s) == "table" and s.type == "file" then return s.value or "" end + if type(s) == "table" and s.type == "string" then return s.file or "" end + return "" +end + +local function stream_lines(s) + if type(s) == "string" then return _filelines(s) end + if type(s) == "table" and s.type == "file" then return _filelines(s.value) end + if type(s) == "table" and s.type == "string" then return strlines(s.value) end + return nil, nil +end +local function _nil_output_stream() + return { + close = function(self) end, + write = function(self, c) end, + } +end +local function _file_output_stream(s) + return { + _f = _open(s, "w"), + close = function(self) self.f:close() end, + write = function(self, c) self.f:write(c) end, + } +end +local function _string_output_stream(t) + return { + _ref = t, + _t = {}, + _tt = {}, + _flush = function(self) + if #self._tt == 0 then return end + local t = self._t; + t[#t + 1] = _cat(self._tt, "") + self._tt = {} + end, + close = function(self) self:_flush(); self._ref.value = _cat(self._t, "") end, + write = function(self, c) + local tt = self._tt; + tt[#tt + 1] = c; + if #self._tt >= 32 then self:_flush() end + end, + } +end +local function stream_output(s) + if type(s) == "string" then return _file_output_stream(s) end + if type(s) == "table" and s.type == "file" then return _file_output_stream(s.value) end + if type(s) == "table" and s.type == "string" then return _string_output_stream(s) end +end + +local myprint,myprintf= print,printf +local print_outstream = nil +function _printwrite(s) + if print_outstream then + print_outstream:write(s) + return + end + _write(s) +end +function print( ... ) + local n= _select( "#",... ) + for i=1,n do + _printwrite( _tostr(_select(i,...)) ) + if i " .. _gsub(l, "%$([RMm])", rep_w) + .. ", " .. _gsub(l, "%$([RMm])", rep_d) + end + local l,r32,r64 = l:match("^%s*(%S+)%s*%->%s*(%S+)%s*,%s*(%S+)%s*$") + if l and r32 and r64 then + if r32 == r64 and r32 ~= "INVALID" then + aliases[#aliases+1] = {l,r32}; + else + if r32 ~= "INVALID" then aliases32[#aliases32+1] = {l,r32}; end + if r64 ~= "INVALID" then aliases64[#aliases64+1] = {l,r64}; end + end + end + end +end +local f = _open(outname, "w") +f:write("return {\n") +f:write("aliases = {\n") +for k,v in _ipairs(aliases) do + f:write(_fmt(" {%q, %q},\n", v[1], v[2])) +end +f:write("}, aliases32 = {\n") +for k,v in _ipairs(aliases32) do + f:write(_fmt(" {%q, %q},\n", v[1], v[2])) +end +f:write("}, aliases64 = {\n") +for k,v in _ipairs(aliases64) do + f:write(_fmt(" {%q, %q},\n", v[1], v[2])) +end +f:write("}}\n") +f:close() diff --git a/tools/x86_inslist2data.lua b/tools/x86_inslist2data.lua new file mode 100644 index 0000000..4d0ae43 --- /dev/null +++ b/tools/x86_inslist2data.lua @@ -0,0 +1,830 @@ +local _type, _ipairs, _pairs, _tonum, _tostr, _assert, _error = type, ipairs, pairs, tonumber, tostring, assert, error +local _loadstr = loadstring +local _match, _gmatch, _sub, _lower, _upper = string.match, string.gmatch, string.sub, string.lower, string.upper +local _fmt, _gsub = string.format, string.gsub +local _sort = table.sort +local _open = io.open +local _ceil, _pow = math.ceil, math.pow + +require"dump" + +local _trim = function(s) return _match(s, "^%s*(.-)%s*$") or s end +function _dump(x, unquote) + if not unquote and _type(x) == "string" then + return _fmt("%q", x) + elseif _type(x) ~= "table" then + return tostring(x) + else + local r = "{" + local n = #x + for i = 1,n do r = r .. (i > 1 and ", " or "") .. _dump(x[i], unquote) end + local pending = n > 0 and ";" + for k,v in _pairs(x) do + if _type(k) == "number" and k == _ceil(k) and k >= 1 and k <=n then + -- + elseif _type(k) == "string" and _match(k,"^%a[%w_]*$") then + if pending then r = r .. pending; pending = nil end + r = r .. k .. " = " .. _dump(v, unquote) + pending = "," + else + if pending then r = r .. pending; pending = nil end + r = r .. "[" .. _dump(k, unquote) .. "] = " .. _dump(v, unquote) + pending = "," + end + end + r = r .. "}" + return r + end +end +-------------- +local function readfile(n) + local f = _open(n) + local ctnt = f:read("*a") + f:close() + return ctnt +end + +local testname, outname = ... +if (testname == nil or testname == "") then + testname = "..\\src-lib\\x86\\src\\_x86_inslist.ltxt" +end +if outname == nil or outname == "" then + outname = _match(testname, "^(.-)%.[^.\\/]*$") .. ".dat" +end + +local emblua = _loadstr(readfile("emblua.lua")) +local inslist = emblua(testname,{type="string"}) +--local inslist = readfile("..\\evm\\x86\\src\\_x86_inslist.txt") +----------------------------------------------------------------- +-- +----------------------------------------------------------------- + +local _cacheMatchWords = {} +local function matchWords(w, n) + local v = _cacheMatchWords[n] + if not v then + v = "^%s*" + for i = 1, n do v = v .. "(%w+)%s*" end + v = v .. "$" + _cacheMatchWords[n] = v + end + return _match(w, v) +end +local _cacheMatchID = {} +local function matchID(w, n) + local v = _cacheMatchID[n] + if not v then + v = _gsub(n, "$ID", "%%a[%%w_]*") + v = _gsub(v, "$NUM", "%%d+") + v = _gsub(v, "$OP", "[^,]-") + v = _gsub(v, " ", "%%s*") + v = "^%s*" .. v .. "%s*$" + _cacheMatchID[n] = v + end + return _match(w, v) +end + + +----------------------------------------------------------------- +-- +----------------------------------------------------------------- + + +----------------------------------------------------------------- +-- +----------------------------------------------------------------- + +local cache, cachecount = {}, {} +local function unify(section, t, pred) + local subcache = cache[section] + if not subcache then subcache = {}; cache[section] = subcache end + local sig = (pred or _dump)(t, true) + local data = subcache[sig] + if not data then + local id = (cachecount[section] or 0) + 1 + data = t; data.id = id; data.sig = sig; subcache[sig] = data; cachecount[section] = id end + return data +end +local function _opassert(cond, op, msg, ...) + if cond then return end + assert(false, _fmt("op %s: "..msg, op.name, ...)) +end +-------------------------------------- +local _isetset= { + def = {}, + cmov = {}, + mmx = {}, + mmxext = {"mmx"}, + sse = {}, + sse2 = {"sse", "mmxext"}, + sse3 = {"sse2"}, + ssse3 = {"sse3"}, + sse41 = {"ssse3"}, + sse42 = {"sse41"}, + avx = {"sse42"}, + avx2 = {"avx"}, + fma3 = {"avx"}, + aes = {"sse2"}, + clmul = {"sse2"}, + hle = {}, + rtm = {}, + bmi1 = {"avx"}, + bmi2 = {"avx"}, + movbe = {}, + lzcnt = {}, + popcnt = {}, + rdrand = {}, + clflush = {}, + rdtsc = {}, + rdtscp = {}, + f16c = {"avx"}, + x32only = {}, + x64 = {"sse2","cmov"}, + x64only = {"x64"}, + avx512f = {"avx2","f16c","fma3"}} +local function _simplifyISA(t, v) + --if not _isetset[v] then return end + for k,vv in _ipairs(_isetset[v]) do + t[vv] = true + _simplifyISA(t, vv) + end +end + +local function _parseISA(op, data) + _opassert(not op.isa, op, "double ISA declaration") + local iset = {} + for i in _gmatch(data,"[%w_]+") do + _opassert(_isetset[i], op, "invalid isa %s", i) + if i == "x64only" then i = "x64" end + iset[i] = true + _simplifyISA(iset, i) + end + local dep = {} + for k,v in _pairs(iset) do + _simplifyISA(dep, k) + end + local iset2 = {} + for k,v in _pairs(iset) do if not dep[k] then iset2[#iset2 + 1] = k end end + _sort(iset2) + op.isa = unify("isa", iset2) + if iset.x64 then op.isa.x64 = true end + if iset.x32only then op.isa.x32only = true end +end +-------------------------------------- +local function list2set( list ) + local set= {} + for k,v in _ipairs(list) do set[v]= k end + return set +end +local _typeset= list2set{"GR8","GR16","GR32","GR64","VR128","VR256","VR512","KR", + "i8","i16","i32","i64", + "i8*","i16*","i32*","i64*","i128*","i256*","i512*", + "BB"} +local _fixedregs = { + al = "rax", ah = "rax", ax = "rax", eax = "rax", rax = "rax", + cl = "rcx", ecx = "rcx", rcx = "rcx", + dx = "rdx", edx = "rdx", rdx = "rdx", + ebx = "rbx", rbx = "rbx", + edi = "rdi", rdi = "rdi", + esp = "rsp", + xmm0 = "xmm0", +} +local function _parseOps(op, data) + _opassert(not op.ops, op, "double operands declaration") + local varlist, varset = {}, {} + for p in _gmatch(data, "[^,]+") do + p = _trim(p) + if p ~= "" then + local tp, fixedreg, vname, mode = matchID(p, "($ID%*?) { ($ID) } ($ID)/($ID)" ) + if not tp then + tp,vname,mode= matchID(p, "($ID%*?) ($ID)/($ID)") + fixedreg= nil + end + fixedreg = fixedreg and _lower(fixedreg) + _opassert(tp and vname, op, "invalid operand \"%s\"", p) + _opassert(_typeset[tp], op, "invalid type %s", tp) + _opassert(not varset[vname], op, "double declaration of operand %s", vname) + _opassert(mode == "i" or mode == "o" or mode == "io", + op, "operand %s uses invalid mode %s", vname, mode) + varset[vname]= true + if (tp == "GR8" or tp == "GR16") and mode == "o" then mode = "io" end + local skip = false + if fixedreg then + _opassert(_fixedregs[fixedreg], op, "unsupported fixed reg %s", fixedreg) + fixedreg = _fixedregs[fixedreg] + for i,v in _ipairs(varlist) do + if v.fixed == fixedreg then + local mi = _match(v.mode, "i") or _match(mode, "i") + local mo = _match(v.mode, "o") or _match(mode, "o") + v.mode = (mi and "i" or "")..(mo and "o" or "") + skip = true + break + end + end + end + if not skip then + varlist[ #varlist+1 ]= {name=vname,type=tp,fixed=fixedreg,mode=mode} + end + end + end + op.operands = varlist +end +-------------------------------------- +local _flagset= { + rflags = {flagin = true}, rflag_c = {flagin = true}, rflag_o = {flagin = true}, + rflag_s = {flagin = true}, rflag_z = {flagin = true}, rflag_p = {flagin = true}, + wflags = {flagout = true}, + wflag_c = {flagin = true, flagout = true}, wflag_o = {flagin = true, flagout = true}, + subflags = {flagin = true}, + wmem = {}, rmem = {}, rwmem = {}, usemem = {}, amem = {}, umem = {}, + cf_jmp = {}, cf_call = {}, cf_ret = {}, cf_fallthru = {}, + vsib = {}, + } + +local function _parseFlags(op, data) + _opassert(not op.flags, op, "double flags declaration") + local fset = {} + for i in _gmatch(data,"[%w_]+") do + _opassert(_flagset[i], op, "invalid flag %s", i) + fset[i] = true + end + if fset.rwmem then fset.wmem = true; fset.rmem = true; fset.rwmem = false end + local fset2 = {} + for k,v in _pairs(fset) do fset2[#fset2 + 1] = k end + _sort(fset2) + op.flags = unify("flags", fset2) +end +-------------------------------------- +local _prefset= { + ["66"] = {}, + ["f2"] = {}, + ["f3"] = {}, + } +local function _parsePref(op, data) + _opassert(not op.pref, op, "double prefix declaration") + if data == "" then op.pref = ""; return end + local p = _match(data, "^([%w_]+)$") + _opassert(p and _prefset[p], op, "invalid prefix %s", _tostr(p)) + op.pref = p +end +-------------------------------------- +local _extopcodeset= { + ["0f"] = {}, + ["0f38"] = {}, + ["0f3a"] = {}, + } +local function _parseExtOpcode(op, data) + _opassert(not op.extopcode, op, "double extended opcode declaration") + if data == "" then op.extopcode = ""; return end + local p = _match(data, "^([%w_]+)$") + _opassert(p and _extopcodeset[p], op, "invalid extended opcode %s", _tostr(p)) + op.extopcode = p +end +-------------------------------------- +local function _parseCoding(op, data) + _opassert(not op.code, op, "double coding declaration") + local result= {} + for c in _gmatch(data, "%S+") do + c = _gsub(c, "!par%((%w+)%)", function (p) + _opassert(not op.parm, op, "double !par declaration") + _opassert(_tonum(p), op, "invalid !par value") + op.parm = _tonum(p) + return "$parm" + end) + c = _gsub(c, "!sub%((%w+)%)", function (p) + _opassert(not op.sub, op, "double !sub declaration") + _opassert(_tonum(p), op, "invalid !sub value") + op.sub = _tonum(p) + return "$sub" + end) + c = _gsub(c, "!parsub%((%w+)%)", function (p) + _opassert(not op.par, op, "double !par declaration") + _opassert(not op.sub, op, "double !sub declaration") + _opassert(_tonum(p), op, "invalid !parsub value") + op.parm = _tonum(p) + op.sub = op.parm % 32 + op.parm = op.parm - op.sub + return "$parm+$sub" + end) + result[ #result+1 ]= c + end + op.code = result +end +-------------------------------------- +local function _parseLEAREX(op, data) + _opassert(not op.rex, op, "double rex/vex declaration in op "..op.name) + local w, reg, base, index = matchWords(data,4) + _opassert(reg, op, "invalid rexlea parameters") + _opassert(w == "0" or w == "1", op, "invalid rex w field") + op.rex = {mode = "lea", reg = reg, rmb = base, rmi = index, r64 = w} +end +local function _parseREX(op, data) + _opassert(not op.rex, op, "double rex/vex declaration in op "..op.name) + local rm, w, rmr, rmm = matchWords(data,4) + _opassert(rm, op, "invalid rex parameters") + _opassert(rm == "rr" or rm == "rm", op, "invalid rex rm field") + _opassert(w == "0" or w == "1", op, "invalid rex w field") + op.rex = {mode = rm, reg = rmr, rm = rmm, r64 = w} +end +local function _parseVEX(op, data) + _opassert(not op.rex, op, "double rex/vex declaration") + local rm, w, src1, rmr, rmm, l = matchWords(data,6) + _opassert(rm, op, "invalid rex parameters") + _opassert(rm == "rr" or rm == "rm", op, "invalid vex rm field") + _opassert(w == "0" or w == "1", op, "invalid vex w field") + _opassert(l == "0" or l == "1", op, "invalid vex l field") + op.rex = {vex = true, mode = rm, reg = rmr, rm = rmm, r64 = w, l = l, src1 = src1} +end +local function _parseEVEX(op, data) + _opassert(not op.rex, op, "double rex/vex declaration in op "..op.name) + local rm, w, src1, rmr, rmm, l, k, z, b = matchWords(data,9) + _opassert(rm, op, "invalid rex parameters") + _opassert(rm == "rr" or rm == "rm", op, "invalid evex rm field") + _opassert(w == "0" or w == "1", op, "invalid evex w field") + _opassert(l == "0" or l == "1" or l == "2" or l == "3", op, "invalid evex l field") + _opassert(z == "0" or z == "1", op, "invalid evex z field") + _opassert(b == "0" or b == "1", op, "invalid evex b field") + op.rex = {evex = true, mode = rm, reg = rmr, rm = rmm, r64 = w, l = l, src1 = src1, + k = k, z = z, b = b} +end +local function _parseFold(op, data) +end +local function _parseCommute(op, data) +end + +-------------------------------------- + +local function _getValidVarSet( op ) +--print( op.name ) + local vars={ parm="i8", sub="i8" } + for _,v in _ipairs(op.operands) do vars[v.name]= v.type end + return vars +end + +local function _ptrtype(s) + return s and _sub(s,-1,-1)=="*" +end +local function _immtype(s) + return s and _sub(s,1,1)=="i" and not _ptrtype(s) +end +local function _regtype(s) + return s and not _ptrtype(s) and not _immtype(s) +end + +local function _checkOp( op ) + local vars= _getValidVarSet(op) + + local memops = 0 + for _,v in _ipairs(op.operands) do + if _ptrtype(v.type) then + _opassert(v.mode == "i", op, "memory operands are input only") + _opassert(memops == 0, op, "only one memory operand allowed") + memops = memops + 1 + end + end + + for _,v in _ipairs(op.code) do + for vv in _gmatch(v, "%$(%a%w*)") do + _opassert(vars[vv], op, "invalid variable %s", vv) + end + + local p1,p2,p3,p4,p5= matchID(v,"!RRMLEA%( ($OP) , ($OP) , ($OP) , ($OP) , ($OP) %)") + if p1 then + _opassert(op.rex.mode=="lea", op, "RRM?-rex mode mismatch" ) + _opassert(not op.rex.vex and not op.rex.evex, op, "RRMLEA and vex don't mix" ) + _opassert(_sub(p1,1,1)=="$" and vars[_sub(p1,2)], op, ": RRMLEA-reg error" ) + _opassert(_sub(p1,2)==op.rex.reg, op, "RRMLEA-rex reg mismatch" ) + _opassert(_sub(p2,1,1)=="$" and vars[_sub(p2,2)], op, "RRMLEA-rm base error" ) + _opassert(_sub(p2,2)==op.rex.rmb, op, "RRMLEA-rex rm base mismatch" ) + _opassert(_sub(p3,1,1)=="$" and vars[_sub(p3,2)], op, "RRMLEA-rm index error" ) + _opassert(_sub(p3,2)==op.rex.rmi, op, "RRMLEA-rex rm index mismatch" ) + end + + p1,p2,p3= matchID(v, "!RRMMVSIB([RM])%( ($OP) , ($OP) , ($OP) %)") + if p1 then + _opassert(op.rex.mode=="rm", op, "RRMMVSIB-rex mode mismatch" ) + _opassert(op.rex.vex or op.rex.evex, op, "RRMMVSIB requires vex" ) + _opassert(_sub(p1,1,1)=="$" and vars[_sub(p1,2)], op, ": RRMMVSIB-reg error" ) + _opassert(_sub(p1,2)==op.rex.reg, op, "RRMMVSIB-rex reg mismatch" ) + _opassert(_sub(p2,1,1)=="$" and vars[_sub(p2,2)], op, "RRMMVSIB-rm base error" ) + _opassert(_sub(p2,2)==op.rex.rm, op, "RRMMVSIB-rex rm base mismatch" ) + _opassert(_sub(p3,1,1)=="$" and vars[_sub(p3,2)], op, "RRMMVSIB-vsib index error" ) + end + local x + x,p1,p2= matchID(v, "!RRM([RM])%( ($OP) , ($OP) %)") + if x then + local rm = "r".._lower(x) + _opassert(op.rex.mode == rm, op, "RRM%s-rex mode mismatch", x) + if _tonum(p1) then + _opassert( op.rex.reg==p1, op, "RRM%s-rex reg(#) mismatch", x) + elseif p1=="$parm" then + _opassert( op.parm>=0 and op.parm<8 and op.rex.reg=="0", op, "RRM%s-rex reg(parm) mismatch", x) + elseif p1=="$sub" then + local sub= op.sub or 0 + _opassert( sub>=0 and sub<8 and op.rex.reg=="0", op, "RRM%s-rex reg(parm) mismatch", x) + else + _opassert(_sub(p1,1,1)=="$" and vars[_sub(p1,2)], op, "RRM%s-reg error", x) + _opassert(_sub(p1,2)==op.rex.reg, op, "RRM%s-rex reg mismatch", x) + end + if _tonum(p2) then + _opassert((op.rex.rm or "0") == "0", op, "RRM%s-rex rm mismatch", x) + else + _opassert(_sub(p2,1,1)=="$" and vars[_sub(p2,2)], op, "RRM%s-rm error", x) + _opassert(_sub(p2,2)==op.rex.rm, op, "RRM%s-rex rm mismatch", x) + end + end + end + _opassert( op.rex.reg=="0" or _regtype(vars[op.rex.reg]), op, "rex-reg error" ) + if op.rex.mode=="rr" then + _opassert( op.rex.rm=="0" or _regtype(vars[op.rex.rm]), op, "rex-rmr error" ) + elseif op.rex.mode=="rm" then + _opassert( op.rex.mode=="rm" and _ptrtype(vars[op.rex.rm]), op, "rex-rmm error" ) + end +end + +local function _createLayout(op) + local layout, renametab, pnum = {}, {}, nil + local indices = {} + --print(op.name, dump(op.rex)) + local function renameVar(v) + local res = renametab[v] + if not res then + pnum = (pnum or 0) + 1 + res = {"p".._tostr(pnum), pnum} + renametab[v] = res + end + return res[1] + end + local function add2layout(v, defuse) + if v.fixed then return end + local n = renameVar(v.name) + if indices[v.name] then return end + local mode, lp3 + if _ptrtype(v.type) then + mode = "MemId" + elseif _immtype(v.type) then + mode, lp3 = "Imm", 0 + elseif v.type == "BB" then + mode = "BBId" + else + mode, lp3 = "RegId", v.fixed + end + layout[#layout + 1] = {mode, defuse, n, lp3}; + indices[v.name] = #layout + if v.type == "i64" then + layout[#layout + 1] = {"Imm", "use", n, 32} + end + end + + -- make sure, memory operands are the first parameter + -- this preferred order should simplify the code generator a bit + for _,v in _ipairs(op.operands) do + if _ptrtype(v.type) then add2layout(v, "use") end + end + local orderedlayout = {} + if op.rex.rm and not _tonum(op.rex.rm) then orderedlayout[#orderedlayout+1] = op.rex.rm end + if op.rex.reg and not _tonum(op.rex.reg) then orderedlayout[#orderedlayout+1] = op.rex.reg end + if op.rex.src1 and not _tonum(op.rex.src1) then orderedlayout[#orderedlayout+1] = op.rex.src1 end + if op.rex.msk and not _tonum(op.rex.msk) then orderedlayout[#orderedlayout+1] = op.rex.msk end + local t = {i = "use", o = "def", io = "use/def"} + for _1,v1 in _ipairs(orderedlayout) do + for _,v in _ipairs(op.operands) do + if v.name == v1 then + add2layout(v, t[v.mode]) + end + end + end + + for _,v in _ipairs(op.operands) do + add2layout(v, t[v.mode]) + end + for _,v in _ipairs(op.operands) do + if v.fixed then + local n = renameVar(v.name) + end + end + op.layout = unify("layout", layout) + op.rename2layout = renametab +end + +local function _renameFromLayout(op) + op.orgnames = {} + for i,v in _ipairs(op.operands) do + op.orgnames[i] = v.name + v.name = op.rename2layout[v.name][1] + end + for _,v in _ipairs{"reg", "rm", "src1", "msk", "rmb", "rmi"} do + if op.rex[v] and op.rename2layout[op.rex[v]] then + op.rex[v] = op.rename2layout[op.rex[v]][1] + end + end + for i,v in _ipairs(op.code) do + op.code[i] = _gsub(v, "%$(%a%w*)", function (vv) + if op.rename2layout[vv] then return "$"..op.rename2layout[vv][1] end + end) + end + + op.operands = unify("operands", op.operands) + op.orgnames = unify("orgnames", op.orgnames) + op.rex = unify("rex", op.rex) + op.code = unify("code", op.code) + op.rename2layout = nil +end +local function _createImpRegs(op) + local regs = {} + local t = {i = "use", o = "def", io = "use/def"} + for _,v in _ipairs(op.operands) do + if not _ptrtype(v.type) and not _immtype(v.type) and not (v.type == "BB") then + if v.fixed then + regs[#regs + 1] = {v.fixed, t[v.mode]} + end + end + end + -- flag comes last + local flagin, flagout = false, false + for _,v in _ipairs(op.flags) do + flagin = flagin or _flagset[v].flagin + flagout = flagout or _flagset[v].flagout + end + if flagin or flagout then + regs[#regs + 1] = {"FLAGS", flagout and (flagin and "use/def" or "def") or "use"} + end + op.impregs = unify("impregs", regs) +end +function _getPrefixSig(op) + local r, pending = "" + if op.rex.vex then + r = "vex" + if op.pref ~= "" then r = r .. "-" .. op.pref end + if op.extopcode ~= "" then r = r .. "-" .. op.extopcode end + r = r .. "-" + if tonumber(op.rex.l) > 0 then r = r .. _pow(128,tonumber(op.rex.l)) .. "." end + if tonumber(op.rex.r64) > 0 then r = r .. "W" end + if not tonumber(op.rex.reg) then r = r .. "R".._gsub(op.rex.reg,"p","") end + if not tonumber(op.rex.rm) then + r = r .. (op.rex.mode == "rr" and "B" or "M").._gsub(op.rex.rm,"p","") + end + if not tonumber(op.rex.src1) then r = r .. "S".._gsub(op.rex.src1,"p","") end + else + if op.pref ~= "" then r = r .. op.pref; pending = "-" end + if op.rex.mode == "lea" then + if pending then r = r .. pending; pending = nil end; + r = r .. "lea" + if tonumber(op.rex.r64) > 0 then r = r .. "W" end + if not tonumber(op.rex.reg) then r = r .. "R".._gsub(op.rex.reg,"p","") end + if not tonumber(op.rex.rmb) then r = r .. "B".._gsub(op.rex.rmb,"p","") end + if not tonumber(op.rex.rmi) then r = r .. "I".._gsub(op.rex.rmi,"p","") end + pending = "-" + elseif tonumber(op.rex.r64) or not tonumber(op.rex.reg) or not tonumber(op.rex.rm) then + if pending then r = r .. pending; pending = nil end; + r = r .. "rex" + if tonumber(op.rex.r64) > 0 then r = r .. "W" end + if not tonumber(op.rex.reg) then r = r .. "R".._gsub(op.rex.reg,"p","") end + if not tonumber(op.rex.rm) then + r = r .. (op.rex.mode == "rr" and "B" or "M").._gsub(op.rex.rm,"p","") + end + pending = "-" + end + if op.extopcode ~= "" then + if pending then r = r .. pending; pending = nil end; + r = r .. op.extopcode + end + if r == "" then r = "none" end + end + return r +end +function _getPrefixClass(op) + local pcl = {pref = op.pref, rex = op.rex, extopcode = op.extopcode} + pcl = unify("prefixclass", pcl, _getPrefixSig) +-- print(dump(pcl)) + op.prefixclass = pcl + op.pref = nil + op.rex = nil + op.extopcode = nil +end + +function _getOpClassSig(op) + return op.isa.sig .. "|" .. op.layout.sig .. "|" .. op.impregs.sig + .. "|" .. op.prefixclass.sig .. "|" .. op.code.sig + .. "|" .. _fmt("PAR%2X",op.parm or 0) + .. "|" .. op.flags.sig +end +function _getOpClass(op) + local cl = {isa = op.isa, layout = op.layout, impregs = op.impregs, + prefixclass = op.prefixclass, code = op.code, parm = op.parm, flags = op.flags} + cl = unify("opclass", cl, _getOpClassSig) +-- print(dump(pcl)) + op.opclass = cl + op.isa = nil + op.layout = nil + op.impregs = nil + op.prefixclass = nil + op.code = nil + op.parm = nil + op.flags = nil +end + +-------------------------------------- +--KORW_KKK +-- {isa avx512f; ops KR dst/o, KR src1/i, KR src/i; +-- pref ; %(VEXDS({"avx",256,"rr"},"S")); extopcode 0f; coding !parsub(0x45) !RRMR($dst,$src)} +-------------------------------------- + +local _parsePart = { + isa = _parseISA, + ops = _parseOps, + flags = _parseFlags, + pref = _parsePref, + extopcode = _parseExtOpcode, + coding = _parseCoding, + rex = _parseREX, + learex = _parseLEAREX, + rexlea = _parseLEAREX, + vex = _parseVEX, + evex = _parseEVEX, + fold = _parseFold, + commute = _parseCommute, +} + +local function parseLine(name, defs) + local op= { name = name } + for part,info in _gmatch(defs,"%s*(%w+)%s+([^;]*);?") do + info = _match(info, "^%s*(.-)%s*$") + _assert(_parsePart[part], "invalid option "..part.." in opcode "..name) + _parsePart[part](op, info) + end + if not op.isa then op.isa = unify("isa", {}) end + if not op.operands then op.operands = {} end + if not op.flags then op.flags = unify("flags", {}) end + if not op.pref then op.pref = "" end + if not op.rex then op.rex = {mode = "rr", reg = "0", rm = "0", r64 = "0"} end + if not op.extopcode then op.extopcode = "" end + if not op.code then op.code = {} end + --print(1, dump(op)) + _checkOp(op) + _createLayout(op) + _renameFromLayout(op) + _createImpRegs(op) + _getPrefixClass(op) + _getOpClass(op) + return op +end + +----------------------------------------------------------------- +-- +----------------------------------------------------------------- +--local mode,file= ... + +local ops,opset= {},{} +local opclasses = {} + +----------------------------------------------------------------- +-- output functions +----------------------------------------------------------------- +inslist= _gsub(inslist, "(//[^\r\n]*)([\r\n])","%2") +inslist= _gsub(inslist, "(/%*.-%*/)","" ) + +for opname, def in _gmatch(inslist, "%s*([%w_]+)%s*(%b{})") do + def = _sub(_gsub(def,"[\r\n]"," "),2,-2) + _assert( not opset[opname],"double definition of "..opname ) + local ok, op = pcall(parseLine,opname, def) + if (ok) then + ops[ #ops+1 ]= op + opset[op.name]= op + --print(_dump(op)) + else + print(op) + end +end +for k,v in _pairs(cache.opclass) do + opclasses[#opclasses + 1] = v +end +-- before avx2: 120 prefix (prefix + rex + extopcode/vex) classes, 60 coding classes +-- total: isa 39, rex 37, code 73, defuse 42, flags 61, layout 96, operands 321, orgnames 40 +-- bits: isa 6, rex 6, code 7, defuse 6, flags 7, layout 7 -> sum 39 bits +-- class: to check if op is available): isa + 1 bit per opcodesubmask checking +-- prefix encoding: pref + rex + extopcode +-- main encoding: code +-- data flow: defuse + ??? +-- register class is setup at construction time (of the vregs), and as such, not +-- relevant for def use. instruction constructors do the type checking for us. +-- allocation and data flow is done for virtual and fixed regs.so we have fixed registers to worry about, + +--local + +local function opclassid(op) + if op.flags.rmem then r = r .. "R" end + if op.flags.wmem then r = r .. "W" end + if op.flags.usemem then r = r .. "U" end + return r +-- if cl.subs[op.sub or 0] then +-- print("class "..(op.class or op.name).." contains the sub "..(op.sub or 0).." multiple times") +end + +local function _compareISA(a, b) + if a == b then return false end + if (a.x64 or false) ~= (b.x64 or false) then return b.x64 end + if (a.x32only or false) ~= (b.x32only or false) then return b.x32only end + if a.sig ~= b.sig then return a.sig < b.sig end + _assert("comparing ISA failed") +end +_sort(opclasses,function(a,b) + if a.isa ~= b.isa then return _compareISA(a.isa, b.isa) end + return a.sig < b.sig + end) +for i,v in _ipairs(opclasses) do v.id = i end + +_sort(ops,function(a,b) + if a.opclass.isa ~= b.opclass.isa then return _compareISA(a.opclass.isa, b.opclass.isa) end + return a.name < b.name + end) + +----------------------------------------- +-- selector +----------------------------------------- +local type2type={ + GR8="T_I8", GR16= "T_I16", GR32= "T_I32", GR64= "T_I64", + VRI64="T_V1I64", VRI128="T_V2I64", VRI256="T_V4I64", VRI128Z="T_V2I64", VRI512="T_V8I64", + VR4F32="T_V4F32", VR2F64= "T_V2F64", VR8F32="T_V8F32", VR4F64= "T_V4F64", + VR4F32Z="T_V4F32", VR2F64Z= "T_V2F64", VR16F32="T_V16F32", VR8F64 = "T_V8F64", + BB="T_BBLOCK", + i8="T_I8", i16= "T_I16", i32= "T_I32", i64= "T_I64", +} +local ptr2type={ + ["i8*"]= "T_I8", ["i16*"]= "T_I16", ["i32*"]= "T_I32", ["i64*"]= "T_I64", + ["VI16*"]= "T_I16", ["VI32*"]= "T_I32", ["VI64*"]= "T_V1I64", + ["VI128*"]= "T_V2I64", ["VI256*"]= "T_V4I64", ["VI512*"]= "T_V8I64", + ["V2F32*"]= "T_V2F32", ["V4F32*"]= "T_V4F32", ["V2F64*"]= "T_V2F64", + ["V8F32*"]= "T_V8F32", ["V4F64*"]= "T_V4F64", + ["V16F32*"]= "T_V16F32", ["V8F64*"]= "T_V8F64", + ["f32*"]= "T_F32", ["f64*"]= "T_F64", ["V1F64*"]= "T_F64", +} +--local data = {ops=ops,type2type=type2type,ptr2type=ptr2type,opclasses=opclasses} +local data = {ops=ops,opclasses=opclasses} +-- lib for creating/loading/storing/changing memory blocks + +--------------------------------------------- +local function _scandump(x, m) + if _type(x) == "table" then + if not m[x] then m[#m + 1] = x; m[x] = {0, "l["..#m.."]"}; end + m[x][1] = m[x][1] + 1 + if (m[x][1] > 1) then return m end + for k,v in _pairs(x) do + _scandump(k, m) + _scandump(v, m) + end + end + return m +end +local function _write_value(f,x,m) + if _type(x)=="string" then + f:write(_fmt("%q",x)) + return + end + if _type(x)=="table" then + f:write(m[x] and m[x][2] or "$ERROR") + return + end + f:write(tostring(x)) +end +local function _write_index(f,x,m) + if type(x)=="string" and _match(x, "^[%a_][%w_]*$") then + f:write(".") + f:write(x) + return + end + f:write("[") + _write_value(f,x,m) + f:write("]") +end +local function writedump(f,x) + if _type(x) ~= "table" then + f:write("return ") + _write_value(f,x) + f:write("\n") + return + end + local m = _scandump(x, {}) + local i = 0 + -- create refs for all tables + f:write("local l = {}; for i = 1, "..#m.." do l[i] = {} end\n") + -- fill fields + for k,v in _ipairs(m) do + f:write("do local k = "..m[v][2].."\n") + for kk,vv in _pairs(v) do +-- f:write(m[v][2]) + f:write("k") + _write_index(f,kk,m) + f:write(" = ") + _write_value(f,vv,m) + f:write("\n") + end + f:write("end\n") + end + f:write("return "..m[x][2].."\n") +end +do + local f = io.open(outname, "w") + writedump(f, data) + f:close() +end diff --git a/tools/x86_reglist2data.lua b/tools/x86_reglist2data.lua new file mode 100644 index 0000000..e4ded9e --- /dev/null +++ b/tools/x86_reglist2data.lua @@ -0,0 +1,179 @@ +local _setfenv, _ipairs, _loadstr = setfenv, ipairs, loadstring +local _open = io.open +local _match, _gmatch, _fmt = string.match, string.gmatch, string.format +local _gsub, _sub = string.gsub, string.sub +local _exec = os.execute + +--local function readfile(n) +-- local f = _open(n) +-- local ctnt = f:read("*a") +-- f:close() +-- return ctnt +--end + +--local testname, outname = ... +--if (testname == nil or testname == "") then +-- testname = "..\\evm\\x86\\src\\_x86_insalias.ltxt" +--end +--if outname == nil or outname == "" then +-- outname = _match(testname, "^(.-)%.[^.\\/]*$") .. ".dat" +--end + +--local emblua = _loadstr(readfile("emblua.lua")) +--local aliaslist = emblua(testname,{type="string"}) + +--f= ... +-- +--f= f:gsub( "(//[^\r\n]*)([\r\n])","%2" ) +--f= f:gsub( "(/%*.-%*/)","" ) +-- +--local mode, lines, data = "", {}, {} +--for l in f:lines() do +-- l= l:trim() +-- if (l~="") then +-- local m = l:match("^:(%w+)$") +-- if m then +-- mode = m +-- else +-- local ll = lines[mode] or {} +-- ll[#ll + 1] = l +-- lines[mode] = ll +-- end +-- end +--end + +----------------------------------------- +local barrier = {} +barrier.start = function() return {false,false} end +barrier.stop = function(b) + if b[1] or b[2] then + print(" #endif") + end +end +barrier.continue2 = function(b,newx32,newx64) + if (b[1] and not newx64) or (b[2] and not newx32) then + print(" #endif") + b = {false,false} + end + if not b[1] and newx64 then + print(" #ifdef EVM_64") + return {true,false} + end + if not b[2] and newx32 then + print(" #ifndef EVM_64") + return {false,true} + end + return b +end +barrier.continue = function(b,op) + return barrier.continue2(b,op.x32only,op.x64) +end +----------------------------------------- +-- selector +----------------------------------------- + +local data = {} +data.classes = { + {name = "FLAGSR", resclass = "FLAGRSC", subres = "0x01", regbase = 1}, + {name = "GR8L", partial = "true", subres = "0x01", resclass = "GRRSC", restrictres = "0-3", regbase = 32}, + {name = "GR8H", partial = "true", subres = "0x02", resclass = "GRRSC", restrictres = "0-3", regbase = 36}, + {name = "GR16", partial = "true", subres = "0x03", resclass = "GRRSC", regbase = 64}, + {name = "GR32", subres = "0x07", resclass = "GRRSC", regbase = 16}, + {name = "VR128", subres = "0x01", resclass = "VRRSC", regbase = 96, restrictres_64 = "0-31"}, + {name = "VR256", subres = "0x03", resclass = "VRRSC", regbase = 128, restrictres_64 = "0-31"}, + {name = "VR512", subres = "0x07", resclass = "VRRSC", regbase = 160, restrictres_64 = "0-31"}, + {name = "GR8X", partial = "true", subres = "0x01", x64 = true, resclass = "GRRSC", restrictres = "4-15", regbase = 48}, + {name = "GR64", subres = "0x07", x64 = true, resclass = "GRRSC", regbase = 80}, +} +data.classaliases = { + {name = "GR", dest = "GR32", x32 = true}, + {name = "GR", dest = "GR64", x64 = true}, +} +data.resources = { + {name = "GRRSC", cnt = 8, resbits = 4, x32 = true}, + {name = "VRRSC", cnt = 8, resbits = 4, x32 = true}, + {name = "GRRSC", cnt = 16, resbits = 4, x64 = true}, + {name = "VRRSC", cnt = 32, resbits = 4, x64 = true}, + {name = "FLAGRSC", cnt = 1, resbits = 1}, +} +data.registers = { + {name = "FLAGS", class = "FLAGSR", id = 1, refclass = "FLAGS", resindex = 0}, +} +local r = data.registers +for k,v in pairs({ A = 0, C = 1, D = 2, B = 3}) do + r[#r+1] = {name = k.."L", id = 32+v, class = "GR8L", refclass = "GR8", resindex = v} + r[#r+1] = {name = k.."H", id = 32+4+v, class = "GR8H", refclass = "GR8", resindex = v} + r[#r+1] = {name = k.."X", id = 64+v, class = "GR16", refclass = "GR16", resindex = v} + r[#r+1] = {name = "E"..k.."X", id = 16+v, class = "GR32", refclass = "GR32", resindex = v} + r[#r+1] = {name = "R"..k.."X", id = 80+v, class = "GR64", refclass = "GR64", resindex = v, x64 = true} +end +for k,v in pairs({ SP = 4, BP = 5, SI = 6, DI = 7}) do + r[#r+1] = {name = k.."L", id = 48+v, class = "GR8X", refclass = "GR8", resindex = v, x64 = true} + r[#r+1] = {name = k, id = 64+v, class = "GR16", refclass = "GR16", resindex = v} + r[#r+1] = {name = "E"..k, id = 16+v, class = "GR32", refclass = "GR32", resindex = v} + r[#r+1] = {name = "R"..k, id = 80+v, class = "GR64", refclass = "GR64", resindex = v, x64 = true} +end +for v = 0,7 do + r[#r+1] = {name = "XMM"..v, namemask = "XMM%d", id = 96+v, class = "VR128", refclass = "VR128", resindex = v} + r[#r+1] = {name = "YMM"..v, namemask = "YMM%d", id = 128+v, class = "VR256", refclass = "VR256", resindex = v} + r[#r+1] = {name = "ZMM"..v, namemask = "ZMM%d", id = 160+v, class = "VR512", refclass = "VR512", resindex = v} +end +for v = 8,31 do + if v < 16 then + r[#r+1] = {name = "R"..v.."L", namemask = "R%dL", id = 48+v, class = "GR8X", refclass = "GR8", resindex = v, x64 = true} + r[#r+1] = {name = "R"..v.."W", namemask = "R%dW", id = 64+v, class = "GR16", refclass = "GR16", resindex = v, x64 = true} + r[#r+1] = {name = "R"..v.."D", namemask = "R%dD", id = 16+v, class = "GR32", refclass = "GR32", resindex = v, x64 = true} + r[#r+1] = {name = "R"..v, namemask = "R%d", id = 80+v, class = "GR64", refclass = "GR64", resindex = v, x64 = true} + end + r[#r+1] = {name = "XMM"..v, namemask = "XMM%d", id = 96+v, class = "VR128", refclass = "VR128", resindex = v, x64 = true} + r[#r+1] = {name = "YMM"..v, namemask = "YMM%d", id = 128+v, class = "VR256", refclass = "VR256", resindex = v, x64 = true} + r[#r+1] = {name = "ZMM"..v, namemask = "ZMM%d", id = 160+v, class = "VR512", refclass = "VR512", resindex = v, x64 = true} +end +table.sort(r,function(a,b) + if a.x64 ~= b.x64 then return b.x64 end + if a.x32 ~= b.x32 then return b.x32 end + return a.id