Merge pull request #657 from davidcarne/fix-uninit

x86: initialize eaDisplacement in 16-bit mode.  Fixes #656
diff --git a/.gitignore b/.gitignore
index c69f5b2..d0bb91c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
+.DS_Store
+
 # Object files
 *.o
 *.ko
@@ -82,6 +84,8 @@
 *.opensdf
 *.suo
 *.user
+*.VC.db
+*.VC.opendb
 
 # Xcode
 xcode/Capstone.xcodeproj/xcuserdata
diff --git a/.travis.yml b/.travis.yml
index bd7085a..aa8f5a1 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -5,8 +5,8 @@
 script:
         - ./make.sh
         - make check
-        - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then cp libcapstone.so bindings/python/; fi
-        - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then cp libcapstone.dylib bindings/python/; fi
+        - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then cp libcapstone.so.* bindings/python/libcapstone.so; fi
+        - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then cp libcapstone.*.dylib bindings/python/libcapstone.dylib; fi
         - cd bindings/python && make check
 compiler:
         - clang
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a0e8eea..36e7061 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -88,7 +88,6 @@
     MCInst.h
     MCInstrDesc.h
     MCRegisterInfo.h
-    myinttypes.h
     SStream.h
     utils.h
     )
diff --git a/COMPILE_MSVC.TXT b/COMPILE_MSVC.TXT
index e9de12a..31748be 100644
--- a/COMPILE_MSVC.TXT
+++ b/COMPILE_MSVC.TXT
@@ -7,12 +7,15 @@
 
                         *-*-*-*-*-*
 
-Capstone requires no prerequisite packages, so it is easy to compile & install.
-Open the Visual Studio solution "msvc/capstone.sln" and follow the instructions
-below.
+Capstone requires no prerequisite packages with default configurations, so it is
+easy to compile & install. Open the Visual Studio solution "msvc/capstone.sln"
+and follow the instructions below.
 
 NOTE: This requires Visual Studio 2010 or newer versions.
 
+If you wish to embed Capstone in a kernel driver, Visual Studio 2013 or newer
+versions, and Windows Driver Kit 8.1 Update 1 or newer versions are required.
+
 
 (0) Tailor Capstone to your need.
 
@@ -60,8 +63,46 @@
 
   - Choose the configuration and the platform you want: Release/Debug & Win32/Win64.
   - Build only the libraries, or the libraries along with all the tests.
+  - "capstone_static_winkernel" is for compiling Capstone for a driver and
+    "test_winkernel" is a test for a driver, and those are excluded from build by
+    default. To compile them, open the Configuration Manager through the [Build]
+    menu and check "Build" check boxes for those project.
 
 
 
 (2) You can make sure the prior steps successfully worked by launching one of the
   testing binary (test*.exe).
+
+  The testing binary for a driver "test_winkernel.sys" is made up of all tests for
+  supported architectures configured with the step (0) along side its own tests.
+  Below explains a procedure to run the test driver and check test results.
+
+  On the x64 platform, the test signing mode has to be enabled to install the test
+  driver. To do it, open the command prompt with the administrator privileges and
+  type the following command, and then restart the system to activate the change:
+
+      >bcdedit /set testsigning on
+
+  Test results from the test driver is sent to kernel debug buffer. In order to
+  see those results, download DebugView and run it with the administrator
+  privileges, then check [Capture Kernel] through the [Capture] menu.
+
+  DebugView: https://technet.microsoft.com/en-us/sysinternals/debugview.aspx
+
+  To install and uninstall the driver, use the 'sc' command. For installing and
+  executing test_winkernel.sys, execute the following commands with the
+  administrator privileges:
+
+      >sc create test_winkernel type= kernel binPath= <full path to test_winkernel.sys>
+      [SC] CreateService SUCCESS
+
+      >sc start test_winkernel
+      [SC] StartService FAILED 995:
+
+      The I/O operation has been aborted because of either a thread exit or an application request.
+
+  To uninstall the driver, execute the following commands with the administrator
+  privileges:
+
+      >sc delete test_winkernel
+      >bcdedit /deletevalue testsigning
diff --git a/CREDITS.TXT b/CREDITS.TXT
index 4000637..8a3dea5 100644
--- a/CREDITS.TXT
+++ b/CREDITS.TXT
@@ -61,4 +61,6 @@
 Felix Gröbert (Google): fuzz testing harness.
 Daniel Collin & Nicolas Planel: M68K architecture.
 Pranith Kumar: Explicit registers accessed for Arm64.
+Xipiter LLC: Capstone logo redesigned.
+Satoshi Tanda: Support Windows kernel driver.
 Koutheir Attouchi: Support for Windows CE.
diff --git a/HACK.TXT b/HACK.TXT
index db373e2..19099bb 100644
--- a/HACK.TXT
+++ b/HACK.TXT
@@ -21,6 +21,7 @@
 ├── include         <- API headers in C language (*.h)
 ├── msvc            <- Microsoft Visual Studio support (for Windows compile)
 ├── packages        <- Packages for Linux/OSX/BSD.
+├── windows         <- Windows support (for Windows kernel driver compile)
 ├── suite           <- Development test tools - for Capstone developers only
 ├── tests           <- Test code (in C language)
 └── xcode           <- Xcode support (for MacOSX compile)
diff --git a/MCInst.c b/MCInst.c
index 17cbcf2..0a42091 100644
--- a/MCInst.c
+++ b/MCInst.c
@@ -22,6 +22,7 @@
 	inst->op1_size = 0;
 	inst->writeback = false;
 	inst->ac_idx = 0;
+	inst->popcode_adjust = 0;
 }
 
 void MCInst_clear(MCInst *inst)
diff --git a/MCInst.h b/MCInst.h
index 677fd75..3d25bc8 100644
--- a/MCInst.h
+++ b/MCInst.h
@@ -107,6 +107,7 @@
 	bool writeback;	// writeback for ARM
 	// operand access index for list of registers sharing the same access right (for ARM)
 	uint8_t ac_idx;
+	uint8_t popcode_adjust;   // Pseudo X86 instruction adjust
 };
 
 void MCInst_Init(MCInst *inst);
diff --git a/Makefile b/Makefile
index e136b2b..73e89ef 100644
--- a/Makefile
+++ b/Makefile
@@ -330,11 +330,11 @@
 
 ifeq ($(CAPSTONE_SHARED),yes)
 ifeq ($(IS_MINGW),1)
-LIBRARY = $(BLDIR)/$(LIBNAME).$(EXT)
+LIBRARY = $(BLDIR)/$(LIBNAME).$(VERSION_EXT)
 else ifeq ($(IS_CYGWIN),1)
-LIBRARY = $(BLDIR)/$(LIBNAME).$(EXT)
+LIBRARY = $(BLDIR)/$(LIBNAME).$(VERSION_EXT)
 else	# *nix
-LIBRARY = $(BLDIR)/lib$(LIBNAME).$(EXT)
+LIBRARY = $(BLDIR)/lib$(LIBNAME).$(VERSION_EXT)
 CFLAGS += -fvisibility=hidden
 endif
 endif
@@ -412,7 +412,7 @@
 	$(INSTALL_LIB) $(LIBRARY) $(DESTDIR)/$(LIBDIR)
 ifneq ($(VERSION_EXT),)
 	cd $(DESTDIR)/$(LIBDIR) && \
-	mv lib$(LIBNAME).$(EXT) lib$(LIBNAME).$(VERSION_EXT) && \
+	rm -f lib$(LIBNAME).$(EXT) && \
 	ln -s lib$(LIBNAME).$(VERSION_EXT) lib$(LIBNAME).$(EXT)
 endif
 endif
diff --git a/MathExtras.h b/MathExtras.h
index 793b0d2..3292f73 100644
--- a/MathExtras.h
+++ b/MathExtras.h
@@ -20,7 +20,7 @@
 #if defined(_WIN32_WCE) && (_WIN32_WCE < 0x800)
 #include "windowsce/intrin.h"
 #elif defined(_MSC_VER)
-# include <intrin.h>
+#include <intrin.h>
 #endif
 
 #ifndef __cplusplus
diff --git a/SStream.c b/SStream.c
index ca478b0..c90cf1a 100644
--- a/SStream.c
+++ b/SStream.c
@@ -9,9 +9,10 @@
 #endif
 #include <string.h>
 
+#include <capstone/platform.h>
+
 #include "SStream.h"
 #include "cs_priv.h"
-#include "myinttypes.h"
 #include "utils.h"
 
 #ifdef _MSC_VER
diff --git a/arch/AArch64/AArch64BaseInfo.c b/arch/AArch64/AArch64BaseInfo.c
index e2b3436..26eb786 100644
--- a/arch/AArch64/AArch64BaseInfo.c
+++ b/arch/AArch64/AArch64BaseInfo.c
@@ -629,7 +629,7 @@
 	Op2S = utostr(Op2, false);
 
 	//printf("Op1S: %s, CRnS: %s, CRmS: %s, Op2S: %s\n", Op1S, CRnS, CRmS, Op2S);
-	dummy = sprintf(result, "s%s_%s_c%s_c%s_%s", Op0S, Op1S, CRnS, CRmS, Op2S);
+	dummy = cs_snprintf(result, 128, "s3_%s_c%s_c%s_%s", Op1S, CRnS, CRmS, Op2S);
 	(void)dummy;
 
 	cs_mem_free(Op0S);
diff --git a/arch/AArch64/AArch64Disassembler.c b/arch/AArch64/AArch64Disassembler.c
index 87859a5..e1654e2 100644
--- a/arch/AArch64/AArch64Disassembler.c
+++ b/arch/AArch64/AArch64Disassembler.c
@@ -1165,9 +1165,9 @@
 	DecodeGPR64spRegisterClass(Inst, Rn, Addr, Decoder);
 	MCOperand_CreateImm0(Inst, offset);
 
-	IsLoad = fieldFromInstruction(insn, 22, 1);
+	IsLoad = fieldFromInstruction(insn, 22, 1) != 0;
 	IsIndexed = fieldFromInstruction(insn, 10, 2) != 0;
-	IsFP = fieldFromInstruction(insn, 26, 1);
+	IsFP = fieldFromInstruction(insn, 26, 1) != 0;
 
 	// Cannot write back to a transfer register (but xzr != sp).
 	if (IsLoad && IsIndexed && !IsFP && Rn != 31 && Rt == Rn)
@@ -1260,7 +1260,7 @@
 	unsigned Rn = fieldFromInstruction(insn, 5, 5);
 	unsigned Rt2 = fieldFromInstruction(insn, 10, 5);
 	int32_t offset = fieldFromInstruction(insn, 15, 7);
-	bool IsLoad = fieldFromInstruction(insn, 22, 1);
+	bool IsLoad = fieldFromInstruction(insn, 22, 1) != 0;
 	unsigned Opcode = MCInst_getOpcode(Inst);
 	bool NeedsDisjointWritebackTransfer = false;
 
diff --git a/arch/AArch64/AArch64InstPrinter.c b/arch/AArch64/AArch64InstPrinter.c
index 0624eae..6ce9607 100644
--- a/arch/AArch64/AArch64InstPrinter.c
+++ b/arch/AArch64/AArch64InstPrinter.c
@@ -16,7 +16,7 @@
 
 #ifdef CAPSTONE_HAS_ARM64
 
-#include "../../myinttypes.h"
+#include <capstone/platform.h>
 #include <stdio.h>
 #include <stdlib.h>
 
@@ -1275,7 +1275,12 @@
 	double FPImm = MCOperand_isFPImm(MO) ? MCOperand_getFPImm(MO) : AArch64_AM_getFPImmFloat((int)MCOperand_getImm(MO));
 
 	// 8 decimal places are enough to perfectly represent permitted floats.
+#if defined(_KERNEL_MODE)
+	// Issue #681: Windows kernel does not support formatting float point
+	SStream_concat(O, "#<float_point_unsupported>");
+#else
 	SStream_concat(O, "#%.8f", FPImm);
+#endif
 	if (MI->csh->detail) {
 #ifndef CAPSTONE_DIET
 		uint8_t access;
@@ -1659,7 +1664,7 @@
 
 static void printSIMDType10Operand(MCInst *MI, unsigned OpNo, SStream *O)
 {
-	unsigned RawVal = (unsigned)MCOperand_getImm(MCInst_getOperand(MI, OpNo));
+	uint8_t RawVal = (uint8_t)MCOperand_getImm(MCInst_getOperand(MI, OpNo));
 	uint64_t Val = AArch64_AM_decodeAdvSIMDModImmType10(RawVal);
 	SStream_concat(O, "#%#016llx", Val);
 	if (MI->csh->detail) {
diff --git a/arch/AArch64/AArch64Mapping.c b/arch/AArch64/AArch64Mapping.c
index 5b9746c..03d9eb4 100644
--- a/arch/AArch64/AArch64Mapping.c
+++ b/arch/AArch64/AArch64Mapping.c
@@ -1049,26 +1049,26 @@
 		switch((int)op->type) {
 			case ARM64_OP_REG:
 				if ((op->access & CS_AC_READ) && !arr_exist(regs_read, read_count, op->reg)) {
-					regs_read[read_count] = op->reg;
+					regs_read[read_count] = (uint16_t)op->reg;
 					read_count++;
 				}
 				if ((op->access & CS_AC_WRITE) && !arr_exist(regs_write, write_count, op->reg)) {
-					regs_write[write_count] = op->reg;
+					regs_write[write_count] = (uint16_t)op->reg;
 					write_count++;
 				}
 				break;
 			case ARM_OP_MEM:
 				// registers appeared in memory references always being read
 				if ((op->mem.base != ARM64_REG_INVALID) && !arr_exist(regs_read, read_count, op->mem.base)) {
-					regs_read[read_count] = op->mem.base;
+					regs_read[read_count] = (uint16_t)op->mem.base;
 					read_count++;
 				}
 				if ((op->mem.index != ARM64_REG_INVALID) && !arr_exist(regs_read, read_count, op->mem.index)) {
-					regs_read[read_count] = op->mem.index;
+					regs_read[read_count] = (uint16_t)op->mem.index;
 					read_count++;
 				}
 				if ((arm64->writeback) && (op->mem.base != ARM64_REG_INVALID) && !arr_exist(regs_write, write_count, op->mem.base)) {
-					regs_write[write_count] = op->mem.base;
+					regs_write[write_count] = (uint16_t)op->mem.base;
 					write_count++;
 				}
 			default:
diff --git a/arch/ARM/ARMDisassembler.c b/arch/ARM/ARMDisassembler.c
index 8e700b1..0390112 100644
--- a/arch/ARM/ARMDisassembler.c
+++ b/arch/ARM/ARMDisassembler.c
@@ -15,7 +15,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
-#include "../../myinttypes.h"
+#include <capstone/platform.h>
 
 #include "ARMAddressingModes.h"
 #include "ARMBaseInfo.h"
diff --git a/arch/ARM/ARMInstPrinter.c b/arch/ARM/ARMInstPrinter.c
index 4f10cef..95ed9fb 100644
--- a/arch/ARM/ARMInstPrinter.c
+++ b/arch/ARM/ARMInstPrinter.c
@@ -19,7 +19,7 @@
 #include <stdio.h>	// DEBUG
 #include <stdlib.h>
 #include <string.h>
-#include "../../myinttypes.h"
+#include <capstone/platform.h>
 
 #include "ARMInstPrinter.h"
 #include "ARMAddressingModes.h"
@@ -1792,7 +1792,7 @@
 	if (MI->csh->detail) {
 		if (MI->csh->doing_mem) {
 			MI->flat_insn->detail->arm.op_count--;
-			MI->flat_insn->detail->arm.operands[MI->flat_insn->detail->arm.op_count].neon_lane = tmp;
+			MI->flat_insn->detail->arm.operands[MI->flat_insn->detail->arm.op_count].neon_lane = (int8_t)tmp;
 			MI->ac_idx--;	// consecutive operands share the same access right
 		} else {
 			MI->flat_insn->detail->arm.operands[MI->flat_insn->detail->arm.op_count].type = ARM_OP_IMM;
diff --git a/arch/ARM/ARMMapping.c b/arch/ARM/ARMMapping.c
index 642330e..e6b27f2 100644
--- a/arch/ARM/ARMMapping.c
+++ b/arch/ARM/ARMMapping.c
@@ -915,26 +915,26 @@
 		switch((int)op->type) {
 			case ARM_OP_REG:
 				if ((op->access & CS_AC_READ) && !arr_exist(regs_read, read_count, op->reg)) {
-					regs_read[read_count] = op->reg;
+					regs_read[read_count] = (uint16_t)op->reg;
 					read_count++;
 				}
 				if ((op->access & CS_AC_WRITE) && !arr_exist(regs_write, write_count, op->reg)) {
-					regs_write[write_count] = op->reg;
+					regs_write[write_count] = (uint16_t)op->reg;
 					write_count++;
 				}
 				break;
 			case ARM_OP_MEM:
 				// registers appeared in memory references always being read
 				if ((op->mem.base != ARM_REG_INVALID) && !arr_exist(regs_read, read_count, op->mem.base)) {
-					regs_read[read_count] = op->mem.base;
+					regs_read[read_count] = (uint16_t)op->mem.base;
 					read_count++;
 				}
 				if ((op->mem.index != ARM_REG_INVALID) && !arr_exist(regs_read, read_count, op->mem.index)) {
-					regs_read[read_count] = op->mem.index;
+					regs_read[read_count] = (uint16_t)op->mem.index;
 					read_count++;
 				}
 				if ((arm->writeback) && (op->mem.base != ARM_REG_INVALID) && !arr_exist(regs_write, write_count, op->mem.base)) {
-					regs_write[write_count] = op->mem.base;
+					regs_write[write_count] = (uint16_t)op->mem.base;
 					write_count++;
 				}
 			default:
diff --git a/arch/M68K/M68KDisassembler.c b/arch/M68K/M68KDisassembler.c
index 9582bef..474df21 100644
--- a/arch/M68K/M68KDisassembler.c
+++ b/arch/M68K/M68KDisassembler.c
@@ -48,8 +48,12 @@
 #include "M68KDisassembler.h"
 
 #ifndef DECL_SPEC
+#ifdef _MSC_VER
+#define DECL_SPEC __cdecl
+#else
 #define DECL_SPEC
-#endif
+#endif	// _MSC_VER
+#endif	// DECL_SPEC
 
 /* ======================================================================== */
 /* ============================ GENERAL DEFINES =========================== */
@@ -203,7 +207,7 @@
 {
 	const uint64_t addr = (address - info->baseAddress) & info->address_mask;
 	if (addr > (info->code_len - 8)) {
-		return 0xaaaaaaaaaaaaaaaa;
+		return 0xaaaaaaaaaaaaaaaaLL;
 	}
 	return m68k_read_disassembler_64(info, addr);
 }
@@ -457,7 +461,7 @@
 			/* address register indirect with displacement*/
 			op->address_mode = M68K_AM_REGI_ADDR_DISP;
 			op->mem.base_reg = M68K_REG_A0 + (instruction & 7);
-			op->mem.disp = read_imm_16(info);
+			op->mem.disp = (uint16_t)read_imm_16(info);
 			break;
 
 		case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: case 0x35: case 0x36: case 0x37:
@@ -480,7 +484,7 @@
 		case 0x3a:
 			/* program counter with displacement */
 			op->address_mode = M68K_AM_PCI_DISP;
-			op->mem.disp = read_imm_16(info);
+			op->mem.disp = (uint16_t)read_imm_16(info);
 			break;
 
 		case 0x3b:
@@ -489,7 +493,7 @@
 			break;
 
 		case 0x3c:
-			op->address_mode = M68K_AM_IMMIDIATE;
+			op->address_mode = M68K_AM_IMMEDIATE;
 			op->type = M68K_OP_IMM;
 
 			if (size == 1)
@@ -521,7 +525,7 @@
 
 	ext = &info->extension;
 
-	ext->op_count = count;
+	ext->op_count = (uint8_t)count;
 	ext->op_size.type = M68K_SIZE_TYPE_CPU;
 	ext->op_size.cpu_size = size;
 
@@ -593,7 +597,7 @@
 	if (imm > 0) {
 		ext->op_count = 3;
 		op2->type = M68K_OP_IMM;
-		op2->address_mode = M68K_AM_IMMIDIATE;
+		op2->address_mode = M68K_AM_IMMEDIATE;
 		op2->imm = imm;
 	}
 }
@@ -624,7 +628,7 @@
 	op1 = &ext->operands[1];
 
 	op0->type = M68K_OP_IMM;
-	op0->address_mode = M68K_AM_IMMIDIATE;
+	op0->address_mode = M68K_AM_IMMEDIATE;
 	op0->imm = imm;
 
 	get_ea_mode_op(info, op1, info->ir, size);
@@ -640,7 +644,7 @@
 	op1 = &ext->operands[1];
 
 	op0->type = M68K_OP_IMM;
-	op0->address_mode = M68K_AM_IMMIDIATE;
+	op0->address_mode = M68K_AM_IMMEDIATE;
 	op0->imm = g_3bit_qdata_table[(info->ir >> 9) & 7];
 
 	op1->address_mode = M68K_AM_REG_DIRECT_DATA;
@@ -657,7 +661,7 @@
 	op1 = &ext->operands[1];
 
 	op0->type = M68K_OP_IMM;
-	op0->address_mode = M68K_AM_IMMIDIATE;
+	op0->address_mode = M68K_AM_IMMEDIATE;
 	op0->imm = g_3bit_qdata_table[(info->ir >> 9) & 7];
 
 	get_ea_mode_op(info, op1, info->ir, size);
@@ -683,7 +687,7 @@
 	if (imm > 0) {
 		ext->op_count = 3;
 		op2->type = M68K_OP_IMM;
-		op2->address_mode = M68K_AM_IMMIDIATE;
+		op2->address_mode = M68K_AM_IMMEDIATE;
 		op2->imm = imm;
 	}
 }
@@ -748,7 +752,7 @@
 	op1 = &ext->operands[1];
 
 	op0->type = M68K_OP_IMM;
-	op0->address_mode = M68K_AM_IMMIDIATE;
+	op0->address_mode = M68K_AM_IMMEDIATE;
 	op0->imm = imm;
 
 	op1->address_mode = M68K_AM_NONE;
@@ -763,7 +767,7 @@
 	op = &ext->operands[0];
 
 	op->type = M68K_OP_IMM;
-	op->address_mode = M68K_AM_IMMIDIATE;
+	op->address_mode = M68K_AM_IMMEDIATE;
 	op->imm = jump_offset;
 
 	set_insn_group(info, M68K_GRP_JUMP);
@@ -792,7 +796,7 @@
 	op0->reg = M68K_REG_D0 + (info->ir & 7);
 
 	op1->type = M68K_OP_IMM;
-	op1->address_mode = M68K_AM_IMMIDIATE;
+	op1->address_mode = M68K_AM_IMMEDIATE;
 	op1->imm = jump_offset;
 
 	set_insn_group(info, M68K_GRP_JUMP);
@@ -844,7 +848,7 @@
 	if (BIT_5(extension))
 		width = extension & 7;
 	else
-		width = g_5bit_data_table[extension & 31];
+		width = (uint8_t)g_5bit_data_table[extension & 31];
 
 	if (has_d_arg) {
 		ext->op_count = 2;
@@ -942,7 +946,7 @@
 	op = &ext->operands[0];
 
 	op->type = M68K_OP_IMM;
-	op->address_mode = M68K_AM_IMMIDIATE;
+	op->address_mode = M68K_AM_IMMEDIATE;
 	op->imm = data;
 }
 
@@ -979,19 +983,21 @@
 
 	op0->address_mode = M68K_AM_NONE;
 	op0->type = M68K_OP_REG_PAIR;
-	op0->register_bits = (((extension >> 16) & 7) << 4) | (extension & 7);
+	op0->reg_pair.reg_0 = (extension >> 16) & 7;
+	op0->reg_pair.reg_1 = extension & 7;
 
 	op1->address_mode = M68K_AM_NONE;
 	op1->type = M68K_OP_REG_PAIR;
-	op1->register_bits = (((extension >> 22) & 7) << 4) | ((extension >> 6) & 7);
+	op1->reg_pair.reg_0 = (extension >> 22) & 7;
+	op1->reg_pair.reg_1 = (extension >> 6) & 7;
 
 	reg_0 = (extension >> 28) & 7;
 	reg_1 = (extension >> 12) & 7;
 
 	op2->address_mode = M68K_AM_NONE;
 	op2->type = M68K_OP_REG_PAIR;
-	op2->register_bits = ((reg_0 + (BIT_1F(extension) ? 8 : 0)) << 4) |
-		(reg_1 + (BIT_F(extension) ? 8 : 0));
+	op2->reg_pair.reg_0 = reg_0 + (BIT_1F(extension) ? 8 : 0);
+	op2->reg_pair.reg_1 = reg_1 + (BIT_F(extension) ? 8 : 0);
 }
 
 static void build_chk2_cmp2(m68k_info *info, int size)
@@ -1051,7 +1057,7 @@
 	op0->address_mode = M68K_AM_NONE;
 	op0->reg = M68K_REG_A0 + (info->ir & 7);
 
-	op1->address_mode = M68K_AM_IMMIDIATE;
+	op1->address_mode = M68K_AM_IMMEDIATE;
 	op1->type = M68K_OP_IMM;
 	op1->imm = disp;
 }
@@ -1085,7 +1091,7 @@
 	op0 = &ext->operands[0];
 	op1 = &ext->operands[1];
 
-	op0->address_mode = M68K_AM_IMMIDIATE;
+	op0->address_mode = M68K_AM_IMMEDIATE;
 	op0->type = M68K_OP_IMM;
 	op0->imm = (info->ir >> 6) & 3;
 
@@ -1108,7 +1114,7 @@
 	op1->address_mode = M68K_AM_REGI_ADDR_DISP;
 	op1->type = M68K_OP_MEM;
 	op1->mem.base_reg = M68K_REG_A0 + (info->ir & 7);
-	op1->mem.disp = read_imm_16(info);
+	op1->mem.disp = (uint16_t)read_imm_16(info);
 }
 
 static void build_movep_er(m68k_info *info, int size)
@@ -1123,7 +1129,7 @@
 	op0->address_mode = M68K_AM_REGI_ADDR_DISP;
 	op0->type = M68K_OP_MEM;
 	op0->mem.base_reg = M68K_REG_A0 + (info->ir & 7);
-	op0->mem.disp = read_imm_16(info);
+	op0->mem.disp = (uint16_t)read_imm_16(info);
 
 	op1->reg = M68K_REG_D0 + ((info->ir >> 9) & 7);
 }
@@ -1797,7 +1803,7 @@
 	ext = build_init_op(info, M68K_INS_FBF, 1, 2);
 	op0 = &ext->operands[0];
 
-	op0->address_mode = M68K_AM_IMMIDIATE;
+	op0->address_mode = M68K_AM_IMMEDIATE;
 	op0->type = M68K_OP_IMM;
 	op0->imm = new_pc;
 }
@@ -1822,7 +1828,7 @@
 	op0 = &ext->operands[0];
 
 	op0->type = M68K_OP_IMM;
-	op0->address_mode = M68K_AM_IMMIDIATE;
+	op0->address_mode = M68K_AM_IMMEDIATE;
 	op0->imm = new_pc;
 }
 
@@ -1850,7 +1856,7 @@
 
 	op0->reg = M68K_REG_D0 + (info->ir & 7);
 
-	op1->address_mode = M68K_AM_IMMIDIATE;
+	op1->address_mode = M68K_AM_IMMEDIATE;
 	op1->type = M68K_OP_IMM;
 	op1->imm = new_pc;
 }
@@ -1956,7 +1962,7 @@
 		op0 = &ext->operands[0];
 		op1 = &ext->operands[1];
 
-		op0->address_mode = M68K_AM_IMMIDIATE;
+		op0->address_mode = M68K_AM_IMMEDIATE;
 		op0->type = M68K_OP_IMM;
 		op0->imm = next & 0x3f;
 
@@ -2077,12 +2083,14 @@
 				ext->op_size.type = M68K_SIZE_TYPE_FPU;
 				ext->op_size.fpu_size = M68K_FPU_SIZE_SINGLE;
 				get_ea_mode_op(info, op0, info->ir, 4);
+				op0->type = M68K_OP_FP_SINGLE;
 				break;
 
 			case 0x05:
 				ext->op_size.type = M68K_SIZE_TYPE_FPU;
 				ext->op_size.fpu_size = M68K_FPU_SIZE_DOUBLE;
 				get_ea_mode_op(info, op0, info->ir, 8);
+				op0->type = M68K_OP_FP_DOUBLE;
 				break;
 
 			default :
@@ -2160,7 +2168,7 @@
 
 	op0 = &ext->operands[0];
 
-	op0->address_mode = M68K_AM_IMMIDIATE;
+	op0->address_mode = M68K_AM_IMMEDIATE;
 	op0->type = M68K_OP_IMM;
 	op0->imm = extension2;
 }
@@ -2183,7 +2191,7 @@
 
 	op0 = &ext->operands[0];
 
-	op0->address_mode = M68K_AM_IMMIDIATE;
+	op0->address_mode = M68K_AM_IMMEDIATE;
 	op0->type = M68K_OP_IMM;
 	op0->imm = extension2;
 }
@@ -2244,7 +2252,8 @@
 
 	op1->address_mode = M68K_AM_NONE;
 	op1->type = M68K_OP_REG_PAIR;
-	op1->register_bits = (reg_0 << 4) | reg_1;
+	op1->reg_pair.reg_0 = reg_0;
+	op1->reg_pair.reg_1 = reg_1;
 
 	if ((reg_0 == reg_1) || !BIT_A(extension)) {
 		op1->type = M68K_OP_REG;
@@ -2693,7 +2702,7 @@
 	op1 = &ext->operands[1];
 
 	op0->type = M68K_OP_IMM;
-	op0->address_mode = M68K_AM_IMMIDIATE;
+	op0->address_mode = M68K_AM_IMMEDIATE;
 	op0->imm = (info->ir & 0xff);
 
 	op1->address_mode = M68K_AM_REG_DIRECT_DATA;
@@ -2789,7 +2798,8 @@
 
 	op1->address_mode = M68K_AM_NONE;
 	op1->type = M68K_OP_REG_PAIR;
-	op1->register_bits = (reg_0 << 4) | reg_1;
+	op1->reg_pair.reg_0 = reg_0;
+	op1->reg_pair.reg_1 = reg_1;
 
 	if (!BIT_A(extension)) {
 		op1->type = M68K_OP_REG;
diff --git a/arch/M68K/M68KInstPrinter.c b/arch/M68K/M68KInstPrinter.c
index b56ca3b..df559bf 100644
--- a/arch/M68K/M68KInstPrinter.c
+++ b/arch/M68K/M68KInstPrinter.c
@@ -113,8 +113,8 @@
 
 static void registerPair(SStream* O, const cs_m68k_op* op)
 {
-	SStream_concat(O, "%s:%s", s_reg_names[M68K_REG_D0 + (op->register_bits >> 4)],
-			s_reg_names[M68K_REG_D0 + (op->register_bits & 0xf)]);
+	SStream_concat(O, "%s:%s", s_reg_names[M68K_REG_D0 + op->reg_pair.reg_0],
+			s_reg_names[M68K_REG_D0 + op->reg_pair.reg_1]);
 }
 
 void printAddressingMode(SStream* O, const cs_m68k* inst, const cs_m68k_op* op)
@@ -145,8 +145,13 @@
 		case M68K_AM_PCI_DISP: SStream_concat(O, "$%x(pc)", op->mem.disp); break;
 		case M68K_AM_ABSOLUTE_DATA_SHORT: SStream_concat(O, "$%x.w", op->imm); break;
 		case M68K_AM_ABSOLUTE_DATA_LONG: SStream_concat(O, "$%x.l", op->imm); break;
-		case M68K_AM_IMMIDIATE:
+		case M68K_AM_IMMEDIATE:
 			 if (inst->op_size.type == M68K_SIZE_TYPE_FPU) {
+#if defined(_KERNEL_MODE)
+				 // Issue #681: Windows kernel does not support formatting float point
+				 SStream_concat(O, "#<float_point_unsupported>");
+				 break;
+#else
 				 if (inst->op_size.fpu_size == M68K_FPU_SIZE_SINGLE)
 					 SStream_concat(O, "#%f", op->simm);
 				 else if (inst->op_size.fpu_size == M68K_FPU_SIZE_DOUBLE)
@@ -154,6 +159,7 @@
 				 else
 					 SStream_concat(O, "#<unsupported>");
 				 break;
+#endif
 			 }
 			 SStream_concat(O, "#$%x", op->imm);
 			 break;
diff --git a/arch/Mips/MipsDisassembler.c b/arch/Mips/MipsDisassembler.c
index 4f80934..846115f 100644
--- a/arch/Mips/MipsDisassembler.c
+++ b/arch/Mips/MipsDisassembler.c
@@ -19,7 +19,7 @@
 #include <stdio.h>
 #include <string.h>
 
-#include "../../myinttypes.h"
+#include "capstone/platform.h"
 
 #include "../../utils.h"
 
diff --git a/arch/Mips/MipsInstPrinter.c b/arch/Mips/MipsInstPrinter.c
index 844437a..e97bf4d 100644
--- a/arch/Mips/MipsInstPrinter.c
+++ b/arch/Mips/MipsInstPrinter.c
@@ -16,7 +16,7 @@
 
 #ifdef CAPSTONE_HAS_MIPS
 
-#include "../../myinttypes.h"
+#include <capstone/platform.h>
 #include <stdlib.h>
 #include <stdio.h>	// debug
 #include <string.h>
diff --git a/arch/Mips/MipsMapping.c b/arch/Mips/MipsMapping.c
index 81132c7..98fa0ed 100644
--- a/arch/Mips/MipsMapping.c
+++ b/arch/Mips/MipsMapping.c
@@ -902,6 +902,11 @@
 	// generic groups
 	{ MIPS_GRP_INVALID, NULL },
 	{ MIPS_GRP_JUMP, "jump" },
+	{ MIPS_GRP_CALL, "call" },
+	{ MIPS_GRP_RET, "ret" },
+	{ MIPS_GRP_INT, "int" },
+	{ MIPS_GRP_IRET, "iret" },
+	{ MIPS_GRP_PRIVILEGE, "privileged" },
 
 	// architecture-specific groups
 	{ MIPS_GRP_BITCOUNT, "bitcount" },
diff --git a/arch/Mips/MipsMappingInsn.inc b/arch/Mips/MipsMappingInsn.inc
index 7ccaf54..3b15e59 100644
--- a/arch/Mips/MipsMappingInsn.inc
+++ b/arch/Mips/MipsMappingInsn.inc
@@ -4720,43 +4720,43 @@
 {
 	Mips_JALR, MIPS_INS_JALR,
 #ifndef CAPSTONE_DIET
-	{ 0 }, { MIPS_REG_RA, 0 }, { MIPS_GRP_STDENC, MIPS_GRP_NOTINMICROMIPS, 0 }, 0, 0
+	{ 0 }, { MIPS_REG_RA, 0 }, { MIPS_GRP_STDENC, MIPS_GRP_NOTINMICROMIPS, MIPS_GRP_CALL, 0 }, 0, 0
 #endif
 },
 {
 	Mips_JALR16_MM, MIPS_INS_JALR,
 #ifndef CAPSTONE_DIET
-	{ 0 }, { MIPS_REG_RA, 0 }, { MIPS_GRP_MICROMIPS, 0 }, 0, 0
+	{ 0 }, { MIPS_REG_RA, 0 }, { MIPS_GRP_MICROMIPS, MIPS_GRP_CALL, 0 }, 0, 0
 #endif
 },
 {
 	Mips_JALR64, MIPS_INS_JALR,
 #ifndef CAPSTONE_DIET
-	{ 0 }, { MIPS_REG_RA, 0 }, { MIPS_GRP_STDENC, 0 }, 0, 0
+	{ 0 }, { MIPS_REG_RA, 0 }, { MIPS_GRP_STDENC, MIPS_GRP_CALL, 0 }, 0, 0
 #endif
 },
 {
 	Mips_JALRS16_MM, MIPS_INS_JALRS16,
 #ifndef CAPSTONE_DIET
-	{ 0 }, { MIPS_REG_RA, 0 }, { MIPS_GRP_MICROMIPS, 0 }, 0, 0
+	{ 0 }, { MIPS_REG_RA, 0 }, { MIPS_GRP_MICROMIPS, MIPS_GRP_CALL, 0 }, 0, 0
 #endif
 },
 {
 	Mips_JALRS_MM, MIPS_INS_JALRS,
 #ifndef CAPSTONE_DIET
-	{ 0 }, { MIPS_REG_RA, 0 }, { MIPS_GRP_MICROMIPS, 0 }, 0, 0
+	{ 0 }, { MIPS_REG_RA, 0 }, { MIPS_GRP_MICROMIPS, MIPS_GRP_CALL, 0 }, 0, 0
 #endif
 },
 {
 	Mips_JALR_HB, MIPS_INS_JALR_HB,
 #ifndef CAPSTONE_DIET
-	{ 0 }, { 0 }, { MIPS_GRP_STDENC, MIPS_GRP_MIPS32, 0 }, 0, 1
+	{ 0 }, { 0 }, { MIPS_GRP_STDENC, MIPS_GRP_MIPS32, MIPS_GRP_CALL, 0 }, 0, 1
 #endif
 },
 {
 	Mips_JALR_MM, MIPS_INS_JALR,
 #ifndef CAPSTONE_DIET
-	{ 0 }, { MIPS_REG_RA, 0 }, { MIPS_GRP_MICROMIPS, 0 }, 0, 0
+	{ 0 }, { MIPS_REG_RA, 0 }, { MIPS_GRP_MICROMIPS, MIPS_GRP_CALL, 0 }, 0, 0
 #endif
 },
 {
@@ -4876,7 +4876,7 @@
 {
 	Mips_JumpLinkReg16, MIPS_INS_JALRC,
 #ifndef CAPSTONE_DIET
-	{ 0 }, { MIPS_REG_RA, 0 }, { MIPS_GRP_MIPS16MODE, 0 }, 0, 0
+	{ 0 }, { MIPS_REG_RA, 0 }, { MIPS_GRP_MIPS16MODE, MIPS_GRP_CALL, 0 }, 0, 0
 #endif
 },
 {
@@ -8812,13 +8812,13 @@
 {
 	Mips_SYSCALL, MIPS_INS_SYSCALL,
 #ifndef CAPSTONE_DIET
-	{ 0 }, { 0 }, { MIPS_GRP_STDENC, 0 }, 0, 0
+	{ 0 }, { 0 }, { MIPS_GRP_STDENC, MIPS_GRP_INT, 0 }, 0, 0
 #endif
 },
 {
 	Mips_SYSCALL_MM, MIPS_INS_SYSCALL,
 #ifndef CAPSTONE_DIET
-	{ 0 }, { 0 }, { MIPS_GRP_MICROMIPS, 0 }, 0, 0
+	{ 0 }, { 0 }, { MIPS_GRP_MICROMIPS, MIPS_GRP_INT, 0 }, 0, 0
 #endif
 },
 {
diff --git a/arch/PowerPC/PPCGenAsmWriter.inc b/arch/PowerPC/PPCGenAsmWriter.inc
index 16f5fd1..447bd04 100644
--- a/arch/PowerPC/PPCGenAsmWriter.inc
+++ b/arch/PowerPC/PPCGenAsmWriter.inc
@@ -10,7 +10,7 @@
 /* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2015 */
 
 #include <stdio.h>	// debug
-#include "../../myinttypes.h"
+#include <capstone/platform.h>
 
 /// printInstruction - This method is automatically generated by tablegen
 /// from the instruction set description.
diff --git a/arch/PowerPC/PPCInstPrinter.c b/arch/PowerPC/PPCInstPrinter.c
index a9fd936..45680ec 100644
--- a/arch/PowerPC/PPCInstPrinter.c
+++ b/arch/PowerPC/PPCInstPrinter.c
@@ -19,7 +19,6 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include "../../myinttypes.h"
 
 #include "PPCInstPrinter.h"
 #include "PPCPredicates.h"
diff --git a/arch/Sparc/SparcDisassembler.c b/arch/Sparc/SparcDisassembler.c
index aa23fe8..78d9333 100644
--- a/arch/Sparc/SparcDisassembler.c
+++ b/arch/Sparc/SparcDisassembler.c
@@ -251,7 +251,7 @@
 	DecodeStatus status;
 	unsigned rd = fieldFromInstruction_4(insn, 25, 5);
 	unsigned rs1 = fieldFromInstruction_4(insn, 14, 5);
-	bool isImm = fieldFromInstruction_4(insn, 13, 1);
+	bool isImm = fieldFromInstruction_4(insn, 13, 1) != 0;
 	unsigned rs2 = 0;
 	unsigned simm13 = 0;
 
diff --git a/arch/Sparc/SparcGenAsmWriter.inc b/arch/Sparc/SparcGenAsmWriter.inc
index 1b8562c..9ed9760 100644
--- a/arch/Sparc/SparcGenAsmWriter.inc
+++ b/arch/Sparc/SparcGenAsmWriter.inc
@@ -10,7 +10,7 @@
 /* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2015 */
 
 #include <stdio.h>	// debug
-#include "../../myinttypes.h"
+#include <capstone/platform.h>
 
 
 /// printInstruction - This method is automatically generated by tablegen
diff --git a/arch/Sparc/SparcInstPrinter.c b/arch/Sparc/SparcInstPrinter.c
index c788548..c5f1e2c 100644
--- a/arch/Sparc/SparcInstPrinter.c
+++ b/arch/Sparc/SparcInstPrinter.c
@@ -81,7 +81,7 @@
 	if (insn->id == SPARC_INS_CASX) {
 		// first op is actually a memop, not regop
 		insn->detail->sparc.operands[0].type = SPARC_OP_MEM;
-		insn->detail->sparc.operands[0].mem.base = insn->detail->sparc.operands[0].reg;
+		insn->detail->sparc.operands[0].mem.base = (uint8_t)insn->detail->sparc.operands[0].reg;
 		insn->detail->sparc.operands[0].mem.disp = 0;
 	}
 }
@@ -172,9 +172,9 @@
 		if (MI->csh->detail) {
 			if (MI->csh->doing_mem) {
 				if (MI->flat_insn->detail->sparc.operands[MI->flat_insn->detail->sparc.op_count].mem.base)
-					MI->flat_insn->detail->sparc.operands[MI->flat_insn->detail->sparc.op_count].mem.index = reg;
+					MI->flat_insn->detail->sparc.operands[MI->flat_insn->detail->sparc.op_count].mem.index = (uint8_t)reg;
 				else
-					MI->flat_insn->detail->sparc.operands[MI->flat_insn->detail->sparc.op_count].mem.base = reg;
+					MI->flat_insn->detail->sparc.operands[MI->flat_insn->detail->sparc.op_count].mem.base = (uint8_t)reg;
 			} else {
 				MI->flat_insn->detail->sparc.operands[MI->flat_insn->detail->sparc.op_count].type = SPARC_OP_REG;
 				MI->flat_insn->detail->sparc.operands[MI->flat_insn->detail->sparc.op_count].reg = reg;
diff --git a/arch/SystemZ/SystemZGenAsmWriter.inc b/arch/SystemZ/SystemZGenAsmWriter.inc
index 0cec420..73baaaa 100644
--- a/arch/SystemZ/SystemZGenAsmWriter.inc
+++ b/arch/SystemZ/SystemZGenAsmWriter.inc
@@ -10,7 +10,7 @@
 /* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2015 */
 
 #include <stdio.h>	// debug
-#include "../../myinttypes.h"
+#include <capstone/platform.h>
 
 
 /// printInstruction - This method is automatically generated by tablegen
diff --git a/arch/SystemZ/SystemZInstPrinter.c b/arch/SystemZ/SystemZInstPrinter.c
index 67680f1..5a8f019 100644
--- a/arch/SystemZ/SystemZInstPrinter.c
+++ b/arch/SystemZ/SystemZInstPrinter.c
@@ -19,7 +19,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include "../../myinttypes.h"
+#include <capstone/platform.h>
 
 #include "SystemZInstPrinter.h"
 #include "../../MCInst.h"
diff --git a/arch/X86/X86ATTInstPrinter.c b/arch/X86/X86ATTInstPrinter.c
index 8ebcd77..3eb20e9 100644
--- a/arch/X86/X86ATTInstPrinter.c
+++ b/arch/X86/X86ATTInstPrinter.c
@@ -21,7 +21,7 @@
 #if !defined(CAPSTONE_HAS_OSXKERNEL)
 #include <ctype.h>
 #endif
-#include "../../myinttypes.h"
+#include <capstone/platform.h>
 #if defined(CAPSTONE_HAS_OSXKERNEL)
 #include <libkern/libkern.h>
 #else
@@ -225,7 +225,7 @@
 
 static void printSSECC(MCInst *MI, unsigned Op, SStream *OS)
 {
-	int64_t Imm = MCOperand_getImm(MCInst_getOperand(MI, Op)) & 7;
+	uint8_t Imm = (uint8_t)(MCOperand_getImm(MCInst_getOperand(MI, Op)) & 7);
 	switch (Imm) {
 		default: break;	// never reach
 		case    0: SStream_concat0(OS, "eq"); op_addSseCC(MI, X86_SSE_CC_EQ); break;
@@ -237,11 +237,13 @@
 		case    6: SStream_concat0(OS, "nle"); op_addSseCC(MI, X86_SSE_CC_NLE); break;
 		case    7: SStream_concat0(OS, "ord"); op_addSseCC(MI, X86_SSE_CC_ORD); break;
 	}
+
+	MI->popcode_adjust = Imm + 1;
 }
 
 static void printAVXCC(MCInst *MI, unsigned Op, SStream *O)
 {
-	int64_t Imm = MCOperand_getImm(MCInst_getOperand(MI, Op)) & 0x1f;
+	uint8_t Imm = (uint8_t)(MCOperand_getImm(MCInst_getOperand(MI, Op)) & 0x1f);
 	switch (Imm) {
 		default: break;//printf("Invalid avxcc argument!\n"); break;
 		case    0: SStream_concat0(O, "eq"); op_addAvxCC(MI, X86_AVX_CC_EQ); break;
@@ -277,6 +279,8 @@
 		case 0x1e: SStream_concat0(O, "gt_oq"); op_addAvxCC(MI, X86_AVX_CC_GT_OQ); break;
 		case 0x1f: SStream_concat0(O, "true_us"); op_addAvxCC(MI, X86_AVX_CC_TRUE_US); break;
 	}
+
+	MI->popcode_adjust = Imm + 1;
 }
 
 static void printXOPCC(MCInst *MI, unsigned Op, SStream *O)
@@ -654,7 +658,7 @@
 					else
 						SStream_concat(O, "$%"PRIu64, imm);
 				} else {
-					if (imm == 0x8000000000000000)  // imm == -imm
+					if (imm == 0x8000000000000000LL)  // imm == -imm
 						SStream_concat0(O, "$0x8000000000000000");
 					else if (imm < -HEX_THRESHOLD)
 						SStream_concat(O, "$-0x%"PRIx64, -imm);
@@ -723,7 +727,7 @@
 				MI->flat_insn->detail->x86.operands[MI->flat_insn->detail->x86.op_count].imm = imm;
 
 				if (opsize > 0)
-					MI->flat_insn->detail->x86.operands[MI->flat_insn->detail->x86.op_count].size = opsize;
+					MI->flat_insn->detail->x86.operands[MI->flat_insn->detail->x86.op_count].size = (uint8_t)opsize;
 				else if (MI->op1_size > 0)
 					MI->flat_insn->detail->x86.operands[MI->flat_insn->detail->x86.op_count].size = MI->op1_size;
 				else
@@ -798,6 +802,8 @@
 						SStream_concat(O, "%"PRIu64, DispVal);
 				}
 			}
+		} else {
+			SStream_concat0(O, "0");
 		}
 	}
 
diff --git a/arch/X86/X86Disassembler.c b/arch/X86/X86Disassembler.c
index 7ff165e..cd02d94 100644
--- a/arch/X86/X86Disassembler.c
+++ b/arch/X86/X86Disassembler.c
@@ -19,7 +19,7 @@
 
 #ifdef CAPSTONE_HAS_X86
 
-#include "../../myinttypes.h"	// debug
+#include <capstone/platform.h>
 #include <string.h>
 
 #include "../../cs_priv.h"
diff --git a/arch/X86/X86DisassemblerDecoder.c b/arch/X86/X86DisassemblerDecoder.c
index 6ba5d07..2fd290d 100644
--- a/arch/X86/X86DisassemblerDecoder.c
+++ b/arch/X86/X86DisassemblerDecoder.c
@@ -1094,7 +1094,7 @@
 
 	hasModRMExtension = modRMRequired(insn->opcodeType,
 			instructionClass,
-			insn->opcode);
+			insn->opcode) != 0;
 
 	if (hasModRMExtension) {
 		if (readModRM(insn))
diff --git a/arch/X86/X86IntelInstPrinter.c b/arch/X86/X86IntelInstPrinter.c
index 9feca58..d7c6d29 100644
--- a/arch/X86/X86IntelInstPrinter.c
+++ b/arch/X86/X86IntelInstPrinter.c
@@ -20,7 +20,7 @@
 #if !defined(CAPSTONE_HAS_OSXKERNEL)
 #include <ctype.h>
 #endif
-#include "../../myinttypes.h"
+#include <capstone/platform.h>
 #if defined(CAPSTONE_HAS_OSXKERNEL)
 #include <libkern/libkern.h>
 #else
@@ -256,7 +256,7 @@
 
 static void printSSECC(MCInst *MI, unsigned Op, SStream *OS)
 {
-	int64_t Imm = MCOperand_getImm(MCInst_getOperand(MI, Op)) & 7;
+	uint8_t Imm = (uint8_t)(MCOperand_getImm(MCInst_getOperand(MI, Op)) & 7);
 	switch (Imm) {
 		default: break;	// never reach
 		case    0: SStream_concat0(OS, "eq"); op_addSseCC(MI, X86_SSE_CC_EQ); break;
@@ -268,11 +268,13 @@
 		case    6: SStream_concat0(OS, "nle"); op_addSseCC(MI, X86_SSE_CC_NLE); break;
 		case    7: SStream_concat0(OS, "ord"); op_addSseCC(MI, X86_SSE_CC_ORD); break;
 	}
+
+	MI->popcode_adjust = Imm + 1;
 }
 
 static void printAVXCC(MCInst *MI, unsigned Op, SStream *O)
 {
-	int64_t Imm = MCOperand_getImm(MCInst_getOperand(MI, Op)) & 0x1f;
+	uint8_t Imm = (uint8_t)(MCOperand_getImm(MCInst_getOperand(MI, Op)) & 0x1f);
 	switch (Imm) {
 		default: break;//printf("Invalid avxcc argument!\n"); break;
 		case    0: SStream_concat0(O, "eq"); op_addAvxCC(MI, X86_AVX_CC_EQ); break;
@@ -308,6 +310,8 @@
 		case 0x1e: SStream_concat0(O, "gt_oq"); op_addAvxCC(MI, X86_AVX_CC_GT_OQ); break;
 		case 0x1f: SStream_concat0(O, "true_us"); op_addAvxCC(MI, X86_AVX_CC_TRUE_US); break;
 	}
+
+	MI->popcode_adjust = Imm + 1;
 }
 
 static void printXOPCC(MCInst *MI, unsigned Op, SStream *O)
@@ -367,7 +371,7 @@
 		// always print this number in positive form
 		if (syntax == CS_OPT_SYNTAX_MASM) {
 			if (imm < 0) {
-				if (imm == 0x8000000000000000)  // imm == -imm
+				if (imm == 0x8000000000000000LL)  // imm == -imm
 					SStream_concat0(O, "8000000000000000h");
 				else if (need_zero_prefix(imm))
 					SStream_concat(O, "0%"PRIx64"h", imm);
@@ -395,7 +399,7 @@
 	} else {
 		if (syntax == CS_OPT_SYNTAX_MASM) {
 			if (imm < 0) {
-				if (imm == 0x8000000000000000)  // imm == -imm
+				if (imm == 0x8000000000000000LL)  // imm == -imm
 					SStream_concat0(O, "8000000000000000h");
 				else if (imm < -HEX_THRESHOLD) {
 					if (need_zero_prefix(imm))
@@ -415,7 +419,7 @@
 			}
 		} else {	// Intel syntax
 			if (imm < 0) {
-				if (imm == 0x8000000000000000)  // imm == -imm
+				if (imm == 0x8000000000000000LL)  // imm == -imm
 					SStream_concat0(O, "0x8000000000000000");
 				else if (imm < -HEX_THRESHOLD)
 					SStream_concat(O, "-0x%"PRIx64, -imm);
@@ -807,7 +811,7 @@
 			if (MI->flat_insn->detail->x86.op_count > 0)
 				MI->flat_insn->detail->x86.operands[MI->flat_insn->detail->x86.op_count].size = MI->flat_insn->detail->x86.operands[0].size;
 			else if (opsize > 0)
-				MI->flat_insn->detail->x86.operands[MI->flat_insn->detail->x86.op_count].size = opsize;
+				MI->flat_insn->detail->x86.operands[MI->flat_insn->detail->x86.op_count].size = (uint8_t)opsize;
 			else
 				MI->flat_insn->detail->x86.operands[MI->flat_insn->detail->x86.op_count].size = MI->imm_size;
 			MI->flat_insn->detail->x86.operands[MI->flat_insn->detail->x86.op_count].imm = imm;
@@ -924,7 +928,7 @@
 
 				MI->flat_insn->detail->x86.operands[MI->flat_insn->detail->x86.op_count].type = X86_OP_IMM;
 				if (opsize > 0)
-					MI->flat_insn->detail->x86.operands[MI->flat_insn->detail->x86.op_count].size = opsize;
+					MI->flat_insn->detail->x86.operands[MI->flat_insn->detail->x86.op_count].size = (uint8_t)opsize;
 				else if (MI->flat_insn->detail->x86.op_count > 0) {
 					if (MI->flat_insn->id != X86_INS_LCALL && MI->flat_insn->id != X86_INS_LJMP) {
 						MI->flat_insn->detail->x86.operands[MI->flat_insn->detail->x86.op_count].size =
diff --git a/arch/X86/X86Mapping.c b/arch/X86/X86Mapping.c
index ece2080..4e785d5 100644
--- a/arch/X86/X86Mapping.c
+++ b/arch/X86/X86Mapping.c
@@ -4,6 +4,7 @@
 #ifdef CAPSTONE_HAS_X86
 
 #include <string.h>
+#include <stdlib.h>
 
 #include "X86Mapping.h"
 #include "X86DisassemblerDecoder.h"
@@ -17,7 +18,7 @@
 	0,
 	0xffffffff,
 	0, 0, 0,
-	0xffffffffffffffff
+	0xffffffffffffffffLL
 };
 
 static x86_reg sib_base_map[] = {
@@ -934,12 +935,8 @@
 	{ X86_INS_FCMOVU, "fcmovu" },
 	{ X86_INS_CMOVS, "cmovs" },
 	{ X86_INS_CMP, "cmp" },
-	{ X86_INS_CMPPD, "cmppd" },
-	{ X86_INS_CMPPS, "cmpps" },
 	{ X86_INS_CMPSB, "cmpsb" },
-	{ X86_INS_CMPSD, "cmpsd" },
 	{ X86_INS_CMPSQ, "cmpsq" },
-	{ X86_INS_CMPSS, "cmpss" },
 	{ X86_INS_CMPSW, "cmpsw" },
 	{ X86_INS_CMPXCHG16B, "cmpxchg16b" },
 	{ X86_INS_CMPXCHG, "cmpxchg" },
@@ -1586,10 +1583,6 @@
 	{ X86_INS_VBROADCASTI64X4, "vbroadcasti64x4" },
 	{ X86_INS_VBROADCASTSD, "vbroadcastsd" },
 	{ X86_INS_VBROADCASTSS, "vbroadcastss" },
-	{ X86_INS_VCMPPD, "vcmppd" },
-	{ X86_INS_VCMPPS, "vcmpps" },
-	{ X86_INS_VCMPSD, "vcmpsd" },
-	{ X86_INS_VCMPSS, "vcmpss" },
 	{ X86_INS_VCOMPRESSPD, "vcompresspd" },
 	{ X86_INS_VCOMPRESSPS, "vcompressps" },
 	{ X86_INS_VCVTDQ2PD, "vcvtdq2pd" },
@@ -2176,6 +2169,183 @@
 	{ X86_INS_XTEST, "xtest" },
 	{ X86_INS_FDISI8087_NOP, "fdisi8087_nop" },
 	{ X86_INS_FENI8087_NOP, "feni8087_nop" },
+
+	// pseudo instructions
+	{ X86_INS_CMPSS, "cmpss" },
+	{ X86_INS_CMPEQSS, "cmpeqss" },
+	{ X86_INS_CMPLTSS, "cmpltss" },
+	{ X86_INS_CMPLESS, "cmpless" },
+	{ X86_INS_CMPUNORDSS, "cmpunordss" },
+	{ X86_INS_CMPNEQSS, "cmpneqss" },
+	{ X86_INS_CMPNLTSS, "cmpnltss" },
+	{ X86_INS_CMPNLESS, "cmpnless" },
+	{ X86_INS_CMPORDSS, "cmpordss" },
+
+	{ X86_INS_CMPSD, "cmpsd" },
+	{ X86_INS_CMPEQSD, "cmpeqsd" },
+	{ X86_INS_CMPLTSD, "cmpltsd" },
+	{ X86_INS_CMPLESD, "cmplesd" },
+	{ X86_INS_CMPUNORDSD, "cmpunordsd" },
+	{ X86_INS_CMPNEQSD, "cmpneqsd" },
+	{ X86_INS_CMPNLTSD, "cmpnltsd" },
+	{ X86_INS_CMPNLESD, "cmpnlesd" },
+	{ X86_INS_CMPORDSD, "cmpordsd" },
+
+	{ X86_INS_CMPPS, "cmpps" },
+	{ X86_INS_CMPEQPS, "cmpeqps" },
+	{ X86_INS_CMPLTPS, "cmpltps" },
+	{ X86_INS_CMPLEPS, "cmpleps" },
+	{ X86_INS_CMPUNORDPS, "cmpunordps" },
+	{ X86_INS_CMPNEQPS, "cmpneqps" },
+	{ X86_INS_CMPNLTPS, "cmpnltps" },
+	{ X86_INS_CMPNLEPS, "cmpnleps" },
+	{ X86_INS_CMPORDPS, "cmpordps" },
+
+	{ X86_INS_CMPPD, "cmppd" },
+	{ X86_INS_CMPEQPD, "cmpeqpd" },
+	{ X86_INS_CMPLTPD, "cmpltpd" },
+	{ X86_INS_CMPLEPD, "cmplepd" },
+	{ X86_INS_CMPUNORDPD, "cmpunordpd" },
+	{ X86_INS_CMPNEQPD, "cmpneqpd" },
+	{ X86_INS_CMPNLTPD, "cmpnltpd" },
+	{ X86_INS_CMPNLEPD, "cmpnlepd" },
+	{ X86_INS_CMPORDPD, "cmpordpd" },
+
+	{ X86_INS_VCMPSS, "vcmpss" },
+	{ X86_INS_VCMPEQSS, "vcmpeqss" },
+	{ X86_INS_VCMPLTSS, "vcmpltss" },
+	{ X86_INS_VCMPLESS, "vcmpless" },
+	{ X86_INS_VCMPUNORDSS, "vcmpunordss" },
+	{ X86_INS_VCMPNEQSS, "vcmpneqss" },
+	{ X86_INS_VCMPNLTSS, "vcmpnltss" },
+	{ X86_INS_VCMPNLESS, "vcmpnless" },
+	{ X86_INS_VCMPORDSS, "vcmpordss" },
+	{ X86_INS_VCMPEQ_UQSS, "vcmpeq_uqss" },
+	{ X86_INS_VCMPNGESS, "vcmpngess" },
+	{ X86_INS_VCMPNGTSS, "vcmpngtss" },
+	{ X86_INS_VCMPFALSESS, "vcmpfalsess" },
+	{ X86_INS_VCMPNEQ_OQSS, "vcmpneq_oqss" },
+	{ X86_INS_VCMPGESS, "vcmpgess" },
+	{ X86_INS_VCMPGTSS, "vcmpgtss" },
+	{ X86_INS_VCMPTRUESS, "vcmptruess" },
+	{ X86_INS_VCMPEQ_OSSS, "vcmpeq_osss" },
+	{ X86_INS_VCMPLT_OQSS, "vcmplt_oqss" },
+	{ X86_INS_VCMPLE_OQSS, "vcmple_oqss" },
+	{ X86_INS_VCMPUNORD_SSS, "vcmpunord_sss" },
+	{ X86_INS_VCMPNEQ_USSS, "vcmpneq_usss" },
+	{ X86_INS_VCMPNLT_UQSS, "vcmpnlt_uqss" },
+	{ X86_INS_VCMPNLE_UQSS, "vcmpnle_uqss" },
+	{ X86_INS_VCMPORD_SSS, "vcmpord_sss" },
+	{ X86_INS_VCMPEQ_USSS, "vcmpeq_usss" },
+	{ X86_INS_VCMPNGE_UQSS, "vcmpnge_uqss" },
+	{ X86_INS_VCMPNGT_UQSS, "vcmpngt_uqss" },
+	{ X86_INS_VCMPFALSE_OSSS, "vcmpfalse_osss" },
+	{ X86_INS_VCMPNEQ_OSSS, "vcmpneq_osss" },
+	{ X86_INS_VCMPGE_OQSS, "vcmpge_oqss" },
+	{ X86_INS_VCMPGT_OQSS, "vcmpgt_oqss" },
+	{ X86_INS_VCMPTRUE_USSS, "vcmptrue_usss" },
+
+	{ X86_INS_VCMPSD, "vcmpsd" },
+	{ X86_INS_VCMPEQSD, "vcmpeqsd" },
+	{ X86_INS_VCMPLTSD, "vcmpltsd" },
+	{ X86_INS_VCMPLESD, "vcmplesd" },
+	{ X86_INS_VCMPUNORDSD, "vcmpunordsd" },
+	{ X86_INS_VCMPNEQSD, "vcmpneqsd" },
+	{ X86_INS_VCMPNLTSD, "vcmpnltsd" },
+	{ X86_INS_VCMPNLESD, "vcmpnlesd" },
+	{ X86_INS_VCMPORDSD, "vcmpordsd" },
+	{ X86_INS_VCMPEQ_UQSD, "vcmpeq_uqsd" },
+	{ X86_INS_VCMPNGESD, "vcmpngesd" },
+	{ X86_INS_VCMPNGTSD, "vcmpngtsd" },
+	{ X86_INS_VCMPFALSESD, "vcmpfalsesd" },
+	{ X86_INS_VCMPNEQ_OQSD, "vcmpneq_oqsd" },
+	{ X86_INS_VCMPGESD, "vcmpgesd" },
+	{ X86_INS_VCMPGTSD, "vcmpgtsd" },
+	{ X86_INS_VCMPTRUESD, "vcmptruesd" },
+	{ X86_INS_VCMPEQ_OSSD, "vcmpeq_ossd" },
+	{ X86_INS_VCMPLT_OQSD, "vcmplt_oqsd" },
+	{ X86_INS_VCMPLE_OQSD, "vcmple_oqsd" },
+	{ X86_INS_VCMPUNORD_SSD, "vcmpunord_ssd" },
+	{ X86_INS_VCMPNEQ_USSD, "vcmpneq_ussd" },
+	{ X86_INS_VCMPNLT_UQSD, "vcmpnlt_uqsd" },
+	{ X86_INS_VCMPNLE_UQSD, "vcmpnle_uqsd" },
+	{ X86_INS_VCMPORD_SSD, "vcmpord_ssd" },
+	{ X86_INS_VCMPEQ_USSD, "vcmpeq_ussd" },
+	{ X86_INS_VCMPNGE_UQSD, "vcmpnge_uqsd" },
+	{ X86_INS_VCMPNGT_UQSD, "vcmpngt_uqsd" },
+	{ X86_INS_VCMPFALSE_OSSD, "vcmpfalse_ossd" },
+	{ X86_INS_VCMPNEQ_OSSD, "vcmpneq_ossd" },
+	{ X86_INS_VCMPGE_OQSD, "vcmpge_oqsd" },
+	{ X86_INS_VCMPGT_OQSD, "vcmpgt_oqsd" },
+	{ X86_INS_VCMPTRUE_USSD, "vcmptrue_ussd" },
+
+	{ X86_INS_VCMPPS, "vcmpps" },
+	{ X86_INS_VCMPEQPS, "vcmpeqps" },
+	{ X86_INS_VCMPLTPS, "vcmpltps" },
+	{ X86_INS_VCMPLEPS, "vcmpleps" },
+	{ X86_INS_VCMPUNORDPS, "vcmpunordps" },
+	{ X86_INS_VCMPNEQPS, "vcmpneqps" },
+	{ X86_INS_VCMPNLTPS, "vcmpnltps" },
+	{ X86_INS_VCMPNLEPS, "vcmpnleps" },
+	{ X86_INS_VCMPORDPS, "vcmpordps" },
+	{ X86_INS_VCMPEQ_UQPS, "vcmpeq_uqps" },
+	{ X86_INS_VCMPNGEPS, "vcmpngeps" },
+	{ X86_INS_VCMPNGTPS, "vcmpngtps" },
+	{ X86_INS_VCMPFALSEPS, "vcmpfalseps" },
+	{ X86_INS_VCMPNEQ_OQPS, "vcmpneq_oqps" },
+	{ X86_INS_VCMPGEPS, "vcmpgeps" },
+	{ X86_INS_VCMPGTPS, "vcmpgtps" },
+	{ X86_INS_VCMPTRUEPS, "vcmptrueps" },
+	{ X86_INS_VCMPEQ_OSPS, "vcmpeq_osps" },
+	{ X86_INS_VCMPLT_OQPS, "vcmplt_oqps" },
+	{ X86_INS_VCMPLE_OQPS, "vcmple_oqps" },
+	{ X86_INS_VCMPUNORD_SPS, "vcmpunord_sps" },
+	{ X86_INS_VCMPNEQ_USPS, "vcmpneq_usps" },
+	{ X86_INS_VCMPNLT_UQPS, "vcmpnlt_uqps" },
+	{ X86_INS_VCMPNLE_UQPS, "vcmpnle_uqps" },
+	{ X86_INS_VCMPORD_SPS, "vcmpord_sps" },
+	{ X86_INS_VCMPEQ_USPS, "vcmpeq_usps" },
+	{ X86_INS_VCMPNGE_UQPS, "vcmpnge_uqps" },
+	{ X86_INS_VCMPNGT_UQPS, "vcmpngt_uqps" },
+	{ X86_INS_VCMPFALSE_OSPS, "vcmpfalse_osps" },
+	{ X86_INS_VCMPNEQ_OSPS, "vcmpneq_osps" },
+	{ X86_INS_VCMPGE_OQPS, "vcmpge_oqps" },
+	{ X86_INS_VCMPGT_OQPS, "vcmpgt_oqps" },
+	{ X86_INS_VCMPTRUE_USPS, "vcmptrue_usps" },
+
+	{ X86_INS_VCMPPD, "vcmppd" },
+	{ X86_INS_VCMPEQPD, "vcmpeqpd" },
+	{ X86_INS_VCMPLTPD, "vcmpltpd" },
+	{ X86_INS_VCMPLEPD, "vcmplepd" },
+	{ X86_INS_VCMPUNORDPD, "vcmpunordpd" },
+	{ X86_INS_VCMPNEQPD, "vcmpneqpd" },
+	{ X86_INS_VCMPNLTPD, "vcmpnltpd" },
+	{ X86_INS_VCMPNLEPD, "vcmpnlepd" },
+	{ X86_INS_VCMPORDPD, "vcmpordpd" },
+	{ X86_INS_VCMPEQ_UQPD, "vcmpeq_uqpd" },
+	{ X86_INS_VCMPNGEPD, "vcmpngepd" },
+	{ X86_INS_VCMPNGTPD, "vcmpngtpd" },
+	{ X86_INS_VCMPFALSEPD, "vcmpfalsepd" },
+	{ X86_INS_VCMPNEQ_OQPD, "vcmpneq_oqpd" },
+	{ X86_INS_VCMPGEPD, "vcmpgepd" },
+	{ X86_INS_VCMPGTPD, "vcmpgtpd" },
+	{ X86_INS_VCMPTRUEPD, "vcmptruepd" },
+	{ X86_INS_VCMPEQ_OSPD, "vcmpeq_ospd" },
+	{ X86_INS_VCMPLT_OQPD, "vcmplt_oqpd" },
+	{ X86_INS_VCMPLE_OQPD, "vcmple_oqpd" },
+	{ X86_INS_VCMPUNORD_SPD, "vcmpunord_spd" },
+	{ X86_INS_VCMPNEQ_USPD, "vcmpneq_uspd" },
+	{ X86_INS_VCMPNLT_UQPD, "vcmpnlt_uqpd" },
+	{ X86_INS_VCMPNLE_UQPD, "vcmpnle_uqpd" },
+	{ X86_INS_VCMPORD_SPD, "vcmpord_spd" },
+	{ X86_INS_VCMPEQ_USPD, "vcmpeq_uspd" },
+	{ X86_INS_VCMPNGE_UQPD, "vcmpnge_uqpd" },
+	{ X86_INS_VCMPNGT_UQPD, "vcmpngt_uqpd" },
+	{ X86_INS_VCMPFALSE_OSPD, "vcmpfalse_ospd" },
+	{ X86_INS_VCMPNEQ_OSPD, "vcmpneq_ospd" },
+	{ X86_INS_VCMPGE_OQPD, "vcmpge_oqpd" },
+	{ X86_INS_VCMPGT_OQPD, "vcmpgt_oqpd" },
+	{ X86_INS_VCMPTRUE_USPD, "vcmptrue_uspd" },
 };
 #endif
 
@@ -2751,19 +2921,46 @@
 	{ X86_INVLPGA64, X86_REG_RAX, X86_REG_ECX, CS_AC_READ, CS_AC_READ },
 };
 
+static struct insn_reg insn_regs_intel_sorted [ARR_SIZE(insn_regs_intel)];
+
+static int regs_cmp(const void *a, const void *b)
+{
+	uint16_t l = ((struct insn_reg *)a)->insn;
+	uint16_t r = ((struct insn_reg *)b)->insn;
+	return (l - r);
+}
+
+static bool intel_regs_sorted = false;
 // return register of given instruction id
 // return 0 if not found
 // this is to handle instructions embedding accumulate registers into AsmStrs[]
 x86_reg X86_insn_reg_intel(unsigned int id, enum cs_ac_type *access)
 {
-	unsigned int i;
+	unsigned int first = 0;
+	unsigned int last = ARR_SIZE(insn_regs_intel) - 1;
+	unsigned int mid = ARR_SIZE(insn_regs_intel) / 2;
 
-	for (i = 0; i < ARR_SIZE(insn_regs_intel); i++) {
-		if (insn_regs_intel[i].insn == id) {
-			if (access)
-				*access = insn_regs_intel[i].access;
-			return insn_regs_intel[i].reg;
+	if (!intel_regs_sorted) {
+		memcpy (insn_regs_intel_sorted, insn_regs_intel,
+				sizeof(insn_regs_intel_sorted));
+		qsort (insn_regs_intel_sorted,
+				ARR_SIZE(insn_regs_intel_sorted),
+				sizeof(struct insn_reg), regs_cmp);
+		intel_regs_sorted = true;
+	}
+
+	while (first <= last) {
+		if (insn_regs_intel_sorted[mid].insn < id) {
+			first = mid + 1;
+		} else if (insn_regs_intel_sorted[mid].insn == id) {
+			if (access) {
+				*access = insn_regs_intel_sorted[mid].access;
+			}
+			return insn_regs_intel_sorted[mid].reg;
+		} else {
+			last = mid - 1;
 		}
+		mid = (first + last) / 2;
 	}
 
 	// not found
diff --git a/arch/X86/X86MappingInsnOp.inc b/arch/X86/X86MappingInsnOp.inc
index 59abf34..12cea4f 100644
--- a/arch/X86/X86MappingInsnOp.inc
+++ b/arch/X86/X86MappingInsnOp.inc
@@ -970,196 +970,196 @@
 	{ CS_AC_READ | CS_AC_WRITE, 0 }
 },
 {	/* X86_BT16mi8, X86_INS_BT: bt{w}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
 	{ CS_AC_READ, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BT16mr, X86_INS_BT: bt{w}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
 	{ CS_AC_READ, CS_AC_READ, 0 }
 },
 {	/* X86_BT16ri8, X86_INS_BT: bt{w}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
 	{ CS_AC_READ, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BT16rr, X86_INS_BT: bt{w}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
 	{ CS_AC_READ, CS_AC_READ, 0 }
 },
 {	/* X86_BT32mi8, X86_INS_BT: bt{l}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
 	{ CS_AC_READ, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BT32mr, X86_INS_BT: bt{l}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
 	{ CS_AC_READ, CS_AC_READ, 0 }
 },
 {	/* X86_BT32ri8, X86_INS_BT: bt{l}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
 	{ CS_AC_READ, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BT32rr, X86_INS_BT: bt{l}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
 	{ CS_AC_READ, CS_AC_READ, 0 }
 },
 {	/* X86_BT64mi8, X86_INS_BT: bt{q}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
 	{ CS_AC_READ, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BT64mr, X86_INS_BT: bt{q}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
 	{ CS_AC_READ, CS_AC_READ, 0 }
 },
 {	/* X86_BT64ri8, X86_INS_BT: bt{q}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
 	{ CS_AC_READ, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BT64rr, X86_INS_BT: bt{q}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
 	{ CS_AC_READ, CS_AC_READ, 0 }
 },
 {	/* X86_BTC16mi8, X86_INS_BTC: btc{w}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTC16mr, X86_INS_BTC: btc{w}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BTC16ri8, X86_INS_BTC: btc{w}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTC16rr, X86_INS_BTC: btc{w}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BTC32mi8, X86_INS_BTC: btc{l}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTC32mr, X86_INS_BTC: btc{l}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BTC32ri8, X86_INS_BTC: btc{l}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTC32rr, X86_INS_BTC: btc{l}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BTC64mi8, X86_INS_BTC: btc{q}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTC64mr, X86_INS_BTC: btc{q}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BTC64ri8, X86_INS_BTC: btc{q}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTC64rr, X86_INS_BTC: btc{q}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BTR16mi8, X86_INS_BTR: btr{w}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTR16mr, X86_INS_BTR: btr{w}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BTR16ri8, X86_INS_BTR: btr{w}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTR16rr, X86_INS_BTR: btr{w}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BTR32mi8, X86_INS_BTR: btr{l}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTR32mr, X86_INS_BTR: btr{l}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BTR32ri8, X86_INS_BTR: btr{l}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTR32rr, X86_INS_BTR: btr{l}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BTR64mi8, X86_INS_BTR: btr{q}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTR64mr, X86_INS_BTR: btr{q}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BTR64ri8, X86_INS_BTR: btr{q}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTR64rr, X86_INS_BTR: btr{q}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BTS16mi8, X86_INS_BTS: bts{w}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTS16mr, X86_INS_BTS: bts{w}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BTS16ri8, X86_INS_BTS: bts{w}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTS16rr, X86_INS_BTS: bts{w}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BTS32mi8, X86_INS_BTS: bts{l}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTS32mr, X86_INS_BTS: bts{l}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BTS32ri8, X86_INS_BTS: bts{l}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTS32rr, X86_INS_BTS: bts{l}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BTS64mi8, X86_INS_BTS: bts{q}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTS64mr, X86_INS_BTS: bts{q}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BTS64ri8, X86_INS_BTS: bts{q}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTS64rr, X86_INS_BTS: bts{q}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BZHI32rm, X86_INS_BZHI: bzhi{l}	$dst, $src1, $src2 */
 	0,
@@ -5607,11 +5607,11 @@
 },
 {	/* X86_MOV16ao16, X86_INS_MOV: mov{w}	ax, $src */
 	0,
-	{ CS_AC_IGNORE, CS_AC_READ, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV16ao32, X86_INS_MOV: mov{w}	ax, $src */
 	0,
-	{ CS_AC_IGNORE, CS_AC_READ, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV16ao64, X86_INS_MOVABS: movabs{w}	ax, $src */
 	0,
@@ -5631,15 +5631,15 @@
 },
 {	/* X86_MOV16o16a, X86_INS_MOV: mov{w}	$dst, ax */
 	0,
-	{ CS_AC_WRITE, CS_AC_IGNORE, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV16o32a, X86_INS_MOV: mov{w}	$dst, ax */
 	0,
-	{ CS_AC_WRITE, CS_AC_IGNORE, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV16o64a, X86_INS_MOVABS: movabs{w}	$dst, ax */
 	0,
-	{ CS_AC_WRITE, CS_AC_IGNORE, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV16ri, X86_INS_MOV: mov{w}	$dst, $src */
 	0,
@@ -5675,11 +5675,11 @@
 },
 {	/* X86_MOV32ao16, X86_INS_MOV: mov{l}	eax, $src */
 	0,
-	{ CS_AC_IGNORE, CS_AC_READ, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV32ao32, X86_INS_MOV: mov{l}	eax, $src */
 	0,
-	{ CS_AC_IGNORE, CS_AC_READ, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV32ao64, X86_INS_MOVABS: movabs{l}	eax, $src */
 	0,
@@ -5707,15 +5707,15 @@
 },
 {	/* X86_MOV32o16a, X86_INS_MOV: mov{l}	$dst, eax */
 	0,
-	{ CS_AC_WRITE, CS_AC_IGNORE, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV32o32a, X86_INS_MOV: mov{l}	$dst, eax */
 	0,
-	{ CS_AC_WRITE, CS_AC_IGNORE, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV32o64a, X86_INS_MOVABS: movabs{l}	$dst, eax */
 	0,
-	{ CS_AC_WRITE, CS_AC_IGNORE, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV32rc, X86_INS_MOV: mov{l}	$dst, $src */
 	0,
@@ -5759,7 +5759,7 @@
 },
 {	/* X86_MOV64ao32, X86_INS_MOV: mov{q}	rax, $src */
 	0,
-	{ CS_AC_IGNORE, CS_AC_READ, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV64ao64, X86_INS_MOVABS: movabs{q}	rax, $src */
 	0,
@@ -5787,11 +5787,11 @@
 },
 {	/* X86_MOV64o32a, X86_INS_MOV: mov{q}	$dst, rax */
 	0,
-	{ CS_AC_WRITE, CS_AC_IGNORE, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV64o64a, X86_INS_MOVABS: movabs{q}	$dst, rax */
 	0,
-	{ CS_AC_WRITE, CS_AC_IGNORE, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV64rc, X86_INS_MOV: mov{q}	$dst, $src */
 	0,
@@ -5851,11 +5851,11 @@
 },
 {	/* X86_MOV8ao16, X86_INS_MOV: mov{b}	al, $src */
 	0,
-	{ CS_AC_IGNORE, CS_AC_READ, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV8ao32, X86_INS_MOV: mov{b}	al, $src */
 	0,
-	{ CS_AC_IGNORE, CS_AC_READ, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV8ao64, X86_INS_MOVABS: movabs{b}	al, $src */
 	0,
@@ -5875,15 +5875,15 @@
 },
 {	/* X86_MOV8o16a, X86_INS_MOV: mov{b}	$dst, al */
 	0,
-	{ CS_AC_WRITE, CS_AC_IGNORE, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV8o32a, X86_INS_MOV: mov{b}	$dst, al */
 	0,
-	{ CS_AC_WRITE, CS_AC_IGNORE, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV8o64a, X86_INS_MOVABS: movabs{b}	$dst, al */
 	0,
-	{ CS_AC_WRITE, CS_AC_IGNORE, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV8ri, X86_INS_MOV: mov{b}	$dst, $src */
 	0,
@@ -6195,7 +6195,7 @@
 },
 {	/* X86_MOVSSmr, X86_INS_MOVSS: movss	$dst, $src */
 	X86_EFLAGS_TEST_DF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOVSSrm, X86_INS_MOVSS: movss	$dst, $src */
 	X86_EFLAGS_TEST_DF,
@@ -7803,7 +7803,7 @@
 },
 {	/* X86_POP16rmm, X86_INS_POP: pop{w}	$dst */
 	0,
-	{ CS_AC_READ, 0 }
+	{ CS_AC_WRITE, 0 }
 },
 {	/* X86_POP16rmr, X86_INS_POP: pop{w}	$reg */
 	0,
@@ -7815,7 +7815,7 @@
 },
 {	/* X86_POP32rmm, X86_INS_POP: pop{l}	$dst */
 	0,
-	{ CS_AC_READ, 0 }
+	{ CS_AC_WRITE, 0 }
 },
 {	/* X86_POP32rmr, X86_INS_POP: pop{l}	$reg */
 	0,
@@ -7827,7 +7827,7 @@
 },
 {	/* X86_POP64rmm, X86_INS_POP: pop{q}	$dst */
 	0,
-	{ CS_AC_READ, 0 }
+	{ CS_AC_WRITE, 0 }
 },
 {	/* X86_POP64rmr, X86_INS_POP: pop{q}	$reg */
 	0,
@@ -33932,4 +33932,4 @@
 {	/* X86_feni8087_nop, X86_INS_FENI8087_NOP: feni8087_nop */
 	0,
 	{ 0 }
-},
\ No newline at end of file
+},
diff --git a/arch/X86/X86MappingInsnOp_reduce.inc b/arch/X86/X86MappingInsnOp_reduce.inc
index 85695bd..5da3fd4 100644
--- a/arch/X86/X86MappingInsnOp_reduce.inc
+++ b/arch/X86/X86MappingInsnOp_reduce.inc
@@ -762,196 +762,196 @@
 	{ CS_AC_READ | CS_AC_WRITE, 0 }
 },
 {	/* X86_BT16mi8, X86_INS_BT: bt{w}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
 	{ CS_AC_READ, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BT16mr, X86_INS_BT: bt{w}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
 	{ CS_AC_READ, CS_AC_READ, 0 }
 },
 {	/* X86_BT16ri8, X86_INS_BT: bt{w}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
 	{ CS_AC_READ, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BT16rr, X86_INS_BT: bt{w}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
 	{ CS_AC_READ, CS_AC_READ, 0 }
 },
 {	/* X86_BT32mi8, X86_INS_BT: bt{l}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
 	{ CS_AC_READ, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BT32mr, X86_INS_BT: bt{l}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
 	{ CS_AC_READ, CS_AC_READ, 0 }
 },
 {	/* X86_BT32ri8, X86_INS_BT: bt{l}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
 	{ CS_AC_READ, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BT32rr, X86_INS_BT: bt{l}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
 	{ CS_AC_READ, CS_AC_READ, 0 }
 },
 {	/* X86_BT64mi8, X86_INS_BT: bt{q}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
 	{ CS_AC_READ, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BT64mr, X86_INS_BT: bt{q}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
 	{ CS_AC_READ, CS_AC_READ, 0 }
 },
 {	/* X86_BT64ri8, X86_INS_BT: bt{q}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
 	{ CS_AC_READ, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BT64rr, X86_INS_BT: bt{q}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
 	{ CS_AC_READ, CS_AC_READ, 0 }
 },
 {	/* X86_BTC16mi8, X86_INS_BTC: btc{w}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTC16mr, X86_INS_BTC: btc{w}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BTC16ri8, X86_INS_BTC: btc{w}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTC16rr, X86_INS_BTC: btc{w}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BTC32mi8, X86_INS_BTC: btc{l}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTC32mr, X86_INS_BTC: btc{l}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BTC32ri8, X86_INS_BTC: btc{l}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTC32rr, X86_INS_BTC: btc{l}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BTC64mi8, X86_INS_BTC: btc{q}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTC64mr, X86_INS_BTC: btc{q}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BTC64ri8, X86_INS_BTC: btc{q}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTC64rr, X86_INS_BTC: btc{q}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BTR16mi8, X86_INS_BTR: btr{w}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTR16mr, X86_INS_BTR: btr{w}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BTR16ri8, X86_INS_BTR: btr{w}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTR16rr, X86_INS_BTR: btr{w}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BTR32mi8, X86_INS_BTR: btr{l}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTR32mr, X86_INS_BTR: btr{l}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BTR32ri8, X86_INS_BTR: btr{l}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTR32rr, X86_INS_BTR: btr{l}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BTR64mi8, X86_INS_BTR: btr{q}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTR64mr, X86_INS_BTR: btr{q}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BTR64ri8, X86_INS_BTR: btr{q}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTR64rr, X86_INS_BTR: btr{q}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BTS16mi8, X86_INS_BTS: bts{w}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTS16mr, X86_INS_BTS: bts{w}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BTS16ri8, X86_INS_BTS: bts{w}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTS16rr, X86_INS_BTS: bts{w}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BTS32mi8, X86_INS_BTS: bts{l}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTS32mr, X86_INS_BTS: bts{l}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BTS32ri8, X86_INS_BTS: bts{l}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTS32rr, X86_INS_BTS: bts{l}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BTS64mi8, X86_INS_BTS: bts{q}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTS64mr, X86_INS_BTS: bts{q}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BTS64ri8, X86_INS_BTS: bts{q}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_IGNORE, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_IGNORE, 0 }
 },
 {	/* X86_BTS64rr, X86_INS_BTS: bts{q}	$src1, $src2 */
-	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_ZF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
-	{ CS_AC_READ, CS_AC_READ, 0 }
+	X86_EFLAGS_UNDEFINED_OF | X86_EFLAGS_UNDEFINED_SF | X86_EFLAGS_UNDEFINED_AF | X86_EFLAGS_UNDEFINED_PF | X86_EFLAGS_MODIFY_CF,
+	{ CS_AC_READ | CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_BZHI32rm, X86_INS_BZHI: bzhi{l}	$dst, $src1, $src2 */
 	0,
@@ -2863,11 +2863,11 @@
 },
 {	/* X86_MOV16ao16, X86_INS_MOV: mov{w}	ax, $src */
 	0,
-	{ CS_AC_IGNORE, CS_AC_READ, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV16ao32, X86_INS_MOV: mov{w}	ax, $src */
 	0,
-	{ CS_AC_IGNORE, CS_AC_READ, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV16ao64, X86_INS_MOVABS: movabs{w}	ax, $src */
 	0,
@@ -2887,15 +2887,15 @@
 },
 {	/* X86_MOV16o16a, X86_INS_MOV: mov{w}	$dst, ax */
 	0,
-	{ CS_AC_WRITE, CS_AC_IGNORE, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV16o32a, X86_INS_MOV: mov{w}	$dst, ax */
 	0,
-	{ CS_AC_WRITE, CS_AC_IGNORE, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV16o64a, X86_INS_MOVABS: movabs{w}	$dst, ax */
 	0,
-	{ CS_AC_WRITE, CS_AC_IGNORE, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV16ri, X86_INS_MOV: mov{w}	$dst, $src */
 	0,
@@ -2931,11 +2931,11 @@
 },
 {	/* X86_MOV32ao16, X86_INS_MOV: mov{l}	eax, $src */
 	0,
-	{ CS_AC_IGNORE, CS_AC_READ, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV32ao32, X86_INS_MOV: mov{l}	eax, $src */
 	0,
-	{ CS_AC_IGNORE, CS_AC_READ, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV32ao64, X86_INS_MOVABS: movabs{l}	eax, $src */
 	0,
@@ -2963,15 +2963,15 @@
 },
 {	/* X86_MOV32o16a, X86_INS_MOV: mov{l}	$dst, eax */
 	0,
-	{ CS_AC_WRITE, CS_AC_IGNORE, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV32o32a, X86_INS_MOV: mov{l}	$dst, eax */
 	0,
-	{ CS_AC_WRITE, CS_AC_IGNORE, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV32o64a, X86_INS_MOVABS: movabs{l}	$dst, eax */
 	0,
-	{ CS_AC_WRITE, CS_AC_IGNORE, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV32rc, X86_INS_MOV: mov{l}	$dst, $src */
 	0,
@@ -3015,7 +3015,7 @@
 },
 {	/* X86_MOV64ao32, X86_INS_MOV: mov{q}	rax, $src */
 	0,
-	{ CS_AC_IGNORE, CS_AC_READ, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV64ao64, X86_INS_MOVABS: movabs{q}	rax, $src */
 	0,
@@ -3043,11 +3043,11 @@
 },
 {	/* X86_MOV64o32a, X86_INS_MOV: mov{q}	$dst, rax */
 	0,
-	{ CS_AC_WRITE, CS_AC_IGNORE, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV64o64a, X86_INS_MOVABS: movabs{q}	$dst, rax */
 	0,
-	{ CS_AC_WRITE, CS_AC_IGNORE, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV64rc, X86_INS_MOV: mov{q}	$dst, $src */
 	0,
@@ -3091,11 +3091,11 @@
 },
 {	/* X86_MOV8ao16, X86_INS_MOV: mov{b}	al, $src */
 	0,
-	{ CS_AC_IGNORE, CS_AC_READ, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV8ao32, X86_INS_MOV: mov{b}	al, $src */
 	0,
-	{ CS_AC_IGNORE, CS_AC_READ, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV8ao64, X86_INS_MOVABS: movabs{b}	al, $src */
 	0,
@@ -3115,15 +3115,15 @@
 },
 {	/* X86_MOV8o16a, X86_INS_MOV: mov{b}	$dst, al */
 	0,
-	{ CS_AC_WRITE, CS_AC_IGNORE, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV8o32a, X86_INS_MOV: mov{b}	$dst, al */
 	0,
-	{ CS_AC_WRITE, CS_AC_IGNORE, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV8o64a, X86_INS_MOVABS: movabs{b}	$dst, al */
 	0,
-	{ CS_AC_WRITE, CS_AC_IGNORE, 0 }
+	{ CS_AC_WRITE, CS_AC_READ, 0 }
 },
 {	/* X86_MOV8ri, X86_INS_MOV: mov{b}	$dst, $src */
 	0,
@@ -3771,7 +3771,7 @@
 },
 {	/* X86_POP16rmm, X86_INS_POP: pop{w}	$dst */
 	0,
-	{ CS_AC_READ, 0 }
+	{ CS_AC_WRITE, 0 }
 },
 {	/* X86_POP16rmr, X86_INS_POP: pop{w}	$reg */
 	0,
@@ -3783,7 +3783,7 @@
 },
 {	/* X86_POP32rmm, X86_INS_POP: pop{l}	$dst */
 	0,
-	{ CS_AC_READ, 0 }
+	{ CS_AC_WRITE, 0 }
 },
 {	/* X86_POP32rmr, X86_INS_POP: pop{l}	$reg */
 	0,
@@ -3795,7 +3795,7 @@
 },
 {	/* X86_POP64rmm, X86_INS_POP: pop{q}	$dst */
 	0,
-	{ CS_AC_READ, 0 }
+	{ CS_AC_WRITE, 0 }
 },
 {	/* X86_POP64rmr, X86_INS_POP: pop{q}	$reg */
 	0,
@@ -6232,4 +6232,4 @@
 {	/* X86_XSTORE, X86_INS_XSTORE: xstore */
 	0,
 	{ 0 }
-},
\ No newline at end of file
+},
diff --git a/arch/XCore/XCoreGenAsmWriter.inc b/arch/XCore/XCoreGenAsmWriter.inc
index 85c2fee..95babb2 100644
--- a/arch/XCore/XCoreGenAsmWriter.inc
+++ b/arch/XCore/XCoreGenAsmWriter.inc
@@ -10,7 +10,7 @@
 /* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2015 */
 
 #include <stdio.h>	// debug
-#include "../../myinttypes.h"
+#include <capstone/platform.h>
 
 
 /// printInstruction - This method is automatically generated by tablegen
diff --git a/arch/XCore/XCoreInstPrinter.c b/arch/XCore/XCoreInstPrinter.c
index c4c741f..c050c58 100644
--- a/arch/XCore/XCoreInstPrinter.c
+++ b/arch/XCore/XCoreInstPrinter.c
@@ -19,7 +19,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include "../../myinttypes.h"
+#include <capstone/platform.h>
 
 #include "XCoreInstPrinter.h"
 #include "../../MCInst.h"
@@ -91,7 +91,7 @@
 						// base register
 						if (MI->csh->detail) {
 							MI->flat_insn->detail->xcore.operands[MI->flat_insn->detail->xcore.op_count].type = XCORE_OP_MEM;
-							MI->flat_insn->detail->xcore.operands[MI->flat_insn->detail->xcore.op_count].mem.base = id;
+							MI->flat_insn->detail->xcore.operands[MI->flat_insn->detail->xcore.op_count].mem.base = (uint8_t)id;
 							MI->flat_insn->detail->xcore.operands[MI->flat_insn->detail->xcore.op_count].mem.index = XCORE_REG_INVALID;
 							MI->flat_insn->detail->xcore.operands[MI->flat_insn->detail->xcore.op_count].mem.disp = 0;
 							MI->flat_insn->detail->xcore.operands[MI->flat_insn->detail->xcore.op_count].mem.direct = 1;
@@ -109,7 +109,7 @@
 							if (id) {
 								// index register
 								if (MI->csh->detail) {
-									MI->flat_insn->detail->xcore.operands[MI->flat_insn->detail->xcore.op_count].mem.index = id;
+									MI->flat_insn->detail->xcore.operands[MI->flat_insn->detail->xcore.op_count].mem.index = (uint8_t)id;
 								}
 							} else {
 								// a number means disp
@@ -160,7 +160,7 @@
 		if (reg != 0xffff && reg != -0xffff) {
 			MI->flat_insn->detail->xcore.operands[MI->flat_insn->detail->xcore.op_count].type = XCORE_OP_MEM;
 			if (reg) {
-				MI->flat_insn->detail->xcore.operands[MI->flat_insn->detail->xcore.op_count].mem.base = reg;
+				MI->flat_insn->detail->xcore.operands[MI->flat_insn->detail->xcore.op_count].mem.base = (uint8_t)reg;
 			} else {
 				MI->flat_insn->detail->xcore.operands[MI->flat_insn->detail->xcore.op_count].mem.base = XCORE_REG_INVALID;
 			}
@@ -171,7 +171,7 @@
 			// the last op should be the memory base
 			MI->flat_insn->detail->xcore.op_count--;
 			MI->flat_insn->detail->xcore.operands[MI->flat_insn->detail->xcore.op_count].type = XCORE_OP_MEM;
-			MI->flat_insn->detail->xcore.operands[MI->flat_insn->detail->xcore.op_count].mem.base = MI->flat_insn->detail->xcore.operands[MI->flat_insn->detail->xcore.op_count].reg;
+			MI->flat_insn->detail->xcore.operands[MI->flat_insn->detail->xcore.op_count].mem.base = (uint8_t)MI->flat_insn->detail->xcore.operands[MI->flat_insn->detail->xcore.op_count].reg;
 			MI->flat_insn->detail->xcore.operands[MI->flat_insn->detail->xcore.op_count].mem.index = XCORE_REG_INVALID;
 			MI->flat_insn->detail->xcore.operands[MI->flat_insn->detail->xcore.op_count].mem.disp = 0;
 			if (reg > 0)
@@ -181,7 +181,7 @@
 		}
 	} else {
 		if (reg) {
-			MI->flat_insn->detail->xcore.operands[MI->flat_insn->detail->xcore.op_count].mem.index = reg;
+			MI->flat_insn->detail->xcore.operands[MI->flat_insn->detail->xcore.op_count].mem.index = (uint8_t)reg;
 			// done, create the next operand slot
 			MI->flat_insn->detail->xcore.op_count++;
 		}
@@ -199,9 +199,9 @@
 		if (MI->csh->detail) {
 			if (MI->csh->doing_mem) {
 				if (MI->flat_insn->detail->xcore.operands[MI->flat_insn->detail->xcore.op_count].mem.base == ARM_REG_INVALID)
-					MI->flat_insn->detail->xcore.operands[MI->flat_insn->detail->xcore.op_count].mem.base = reg;
+					MI->flat_insn->detail->xcore.operands[MI->flat_insn->detail->xcore.op_count].mem.base = (uint8_t)reg;
 				else
-					MI->flat_insn->detail->xcore.operands[MI->flat_insn->detail->xcore.op_count].mem.index = reg;
+					MI->flat_insn->detail->xcore.operands[MI->flat_insn->detail->xcore.op_count].mem.index = (uint8_t)reg;
 			} else {
 				MI->flat_insn->detail->xcore.operands[MI->flat_insn->detail->xcore.op_count].type = XCORE_OP_REG;
 				MI->flat_insn->detail->xcore.operands[MI->flat_insn->detail->xcore.op_count].reg = reg;
diff --git a/bindings/java/capstone/M68k_const.java b/bindings/java/capstone/M68k_const.java
index 39402f2..883681f 100644
--- a/bindings/java/capstone/M68k_const.java
+++ b/bindings/java/capstone/M68k_const.java
@@ -75,7 +75,7 @@
 	public static final int M68K_AM_PC_MEMI_PRE_INDEX = 15;
 	public static final int M68K_AM_ABSOLUTE_DATA_SHORT = 16;
 	public static final int M68K_AM_ABSOLUTE_DATA_LONG = 17;
-	public static final int M68K_AM_IMMIDIATE = 18;
+	public static final int M68K_AM_IMMEDIATE = 18;
 
 	// Operand type for instruction's operands
 
@@ -83,9 +83,10 @@
 	public static final int M68K_OP_REG = 1;
 	public static final int M68K_OP_IMM = 2;
 	public static final int M68K_OP_MEM = 3;
-	public static final int M68K_OP_FP = 4;
-	public static final int M68K_OP_REG_BITS = 5;
-	public static final int M68K_OP_REG_PAIR = 6;
+	public static final int M68K_OP_FP_SINGLE = 4;
+	public static final int M68K_OP_FP_DOUBLE = 5;
+	public static final int M68K_OP_REG_BITS = 6;
+	public static final int M68K_OP_REG_PAIR = 7;
 
 	public static final int M68K_CPU_SIZE_NONE = 0;
 	public static final int M68K_CPU_SIZE_BYTE = 1;
diff --git a/bindings/java/capstone/Mips_const.java b/bindings/java/capstone/Mips_const.java
index e13e3c0..fcbc669 100644
--- a/bindings/java/capstone/Mips_const.java
+++ b/bindings/java/capstone/Mips_const.java
@@ -844,6 +844,11 @@
 
 	// Generic groups
 	public static final int MIPS_GRP_JUMP = 1;
+	public static final int MIPS_GRP_CALL = 2;
+	public static final int MIPS_GRP_RET = 3;
+	public static final int MIPS_GRP_INT = 4;
+	public static final int MIPS_GRP_IRET = 5;
+	public static final int MIPS_GRP_PRIVILEGE = 6;
 
 	// Architecture-specific groups
 	public static final int MIPS_GRP_BITCOUNT = 128;
diff --git a/bindings/java/capstone/X86_const.java b/bindings/java/capstone/X86_const.java
index 850e8a4..c5d5542 100644
--- a/bindings/java/capstone/X86_const.java
+++ b/bindings/java/capstone/X86_const.java
@@ -492,1249 +492,1409 @@
 	public static final int X86_INS_FCMOVU = 93;
 	public static final int X86_INS_CMOVS = 94;
 	public static final int X86_INS_CMP = 95;
-	public static final int X86_INS_CMPPD = 96;
-	public static final int X86_INS_CMPPS = 97;
-	public static final int X86_INS_CMPSB = 98;
-	public static final int X86_INS_CMPSD = 99;
-	public static final int X86_INS_CMPSQ = 100;
-	public static final int X86_INS_CMPSS = 101;
-	public static final int X86_INS_CMPSW = 102;
-	public static final int X86_INS_CMPXCHG16B = 103;
-	public static final int X86_INS_CMPXCHG = 104;
-	public static final int X86_INS_CMPXCHG8B = 105;
-	public static final int X86_INS_COMISD = 106;
-	public static final int X86_INS_COMISS = 107;
-	public static final int X86_INS_FCOMP = 108;
-	public static final int X86_INS_FCOMPI = 109;
-	public static final int X86_INS_FCOMI = 110;
-	public static final int X86_INS_FCOM = 111;
-	public static final int X86_INS_FCOS = 112;
-	public static final int X86_INS_CPUID = 113;
-	public static final int X86_INS_CQO = 114;
-	public static final int X86_INS_CRC32 = 115;
-	public static final int X86_INS_CVTDQ2PD = 116;
-	public static final int X86_INS_CVTDQ2PS = 117;
-	public static final int X86_INS_CVTPD2DQ = 118;
-	public static final int X86_INS_CVTPD2PS = 119;
-	public static final int X86_INS_CVTPS2DQ = 120;
-	public static final int X86_INS_CVTPS2PD = 121;
-	public static final int X86_INS_CVTSD2SI = 122;
-	public static final int X86_INS_CVTSD2SS = 123;
-	public static final int X86_INS_CVTSI2SD = 124;
-	public static final int X86_INS_CVTSI2SS = 125;
-	public static final int X86_INS_CVTSS2SD = 126;
-	public static final int X86_INS_CVTSS2SI = 127;
-	public static final int X86_INS_CVTTPD2DQ = 128;
-	public static final int X86_INS_CVTTPS2DQ = 129;
-	public static final int X86_INS_CVTTSD2SI = 130;
-	public static final int X86_INS_CVTTSS2SI = 131;
-	public static final int X86_INS_CWD = 132;
-	public static final int X86_INS_CWDE = 133;
-	public static final int X86_INS_DAA = 134;
-	public static final int X86_INS_DAS = 135;
-	public static final int X86_INS_DATA16 = 136;
-	public static final int X86_INS_DEC = 137;
-	public static final int X86_INS_DIV = 138;
-	public static final int X86_INS_DIVPD = 139;
-	public static final int X86_INS_DIVPS = 140;
-	public static final int X86_INS_FDIVR = 141;
-	public static final int X86_INS_FIDIVR = 142;
-	public static final int X86_INS_FDIVRP = 143;
-	public static final int X86_INS_DIVSD = 144;
-	public static final int X86_INS_DIVSS = 145;
-	public static final int X86_INS_FDIV = 146;
-	public static final int X86_INS_FIDIV = 147;
-	public static final int X86_INS_FDIVP = 148;
-	public static final int X86_INS_DPPD = 149;
-	public static final int X86_INS_DPPS = 150;
-	public static final int X86_INS_RET = 151;
-	public static final int X86_INS_ENCLS = 152;
-	public static final int X86_INS_ENCLU = 153;
-	public static final int X86_INS_ENTER = 154;
-	public static final int X86_INS_EXTRACTPS = 155;
-	public static final int X86_INS_EXTRQ = 156;
-	public static final int X86_INS_F2XM1 = 157;
-	public static final int X86_INS_LCALL = 158;
-	public static final int X86_INS_LJMP = 159;
-	public static final int X86_INS_FBLD = 160;
-	public static final int X86_INS_FBSTP = 161;
-	public static final int X86_INS_FCOMPP = 162;
-	public static final int X86_INS_FDECSTP = 163;
-	public static final int X86_INS_FEMMS = 164;
-	public static final int X86_INS_FFREE = 165;
-	public static final int X86_INS_FICOM = 166;
-	public static final int X86_INS_FICOMP = 167;
-	public static final int X86_INS_FINCSTP = 168;
-	public static final int X86_INS_FLDCW = 169;
-	public static final int X86_INS_FLDENV = 170;
-	public static final int X86_INS_FLDL2E = 171;
-	public static final int X86_INS_FLDL2T = 172;
-	public static final int X86_INS_FLDLG2 = 173;
-	public static final int X86_INS_FLDLN2 = 174;
-	public static final int X86_INS_FLDPI = 175;
-	public static final int X86_INS_FNCLEX = 176;
-	public static final int X86_INS_FNINIT = 177;
-	public static final int X86_INS_FNOP = 178;
-	public static final int X86_INS_FNSTCW = 179;
-	public static final int X86_INS_FNSTSW = 180;
-	public static final int X86_INS_FPATAN = 181;
-	public static final int X86_INS_FPREM = 182;
-	public static final int X86_INS_FPREM1 = 183;
-	public static final int X86_INS_FPTAN = 184;
-	public static final int X86_INS_FFREEP = 185;
-	public static final int X86_INS_FRNDINT = 186;
-	public static final int X86_INS_FRSTOR = 187;
-	public static final int X86_INS_FNSAVE = 188;
-	public static final int X86_INS_FSCALE = 189;
-	public static final int X86_INS_FSETPM = 190;
-	public static final int X86_INS_FSINCOS = 191;
-	public static final int X86_INS_FNSTENV = 192;
-	public static final int X86_INS_FXAM = 193;
-	public static final int X86_INS_FXRSTOR = 194;
-	public static final int X86_INS_FXRSTOR64 = 195;
-	public static final int X86_INS_FXSAVE = 196;
-	public static final int X86_INS_FXSAVE64 = 197;
-	public static final int X86_INS_FXTRACT = 198;
-	public static final int X86_INS_FYL2X = 199;
-	public static final int X86_INS_FYL2XP1 = 200;
-	public static final int X86_INS_MOVAPD = 201;
-	public static final int X86_INS_MOVAPS = 202;
-	public static final int X86_INS_ORPD = 203;
-	public static final int X86_INS_ORPS = 204;
-	public static final int X86_INS_VMOVAPD = 205;
-	public static final int X86_INS_VMOVAPS = 206;
-	public static final int X86_INS_XORPD = 207;
-	public static final int X86_INS_XORPS = 208;
-	public static final int X86_INS_GETSEC = 209;
-	public static final int X86_INS_HADDPD = 210;
-	public static final int X86_INS_HADDPS = 211;
-	public static final int X86_INS_HLT = 212;
-	public static final int X86_INS_HSUBPD = 213;
-	public static final int X86_INS_HSUBPS = 214;
-	public static final int X86_INS_IDIV = 215;
-	public static final int X86_INS_FILD = 216;
-	public static final int X86_INS_IMUL = 217;
-	public static final int X86_INS_IN = 218;
-	public static final int X86_INS_INC = 219;
-	public static final int X86_INS_INSB = 220;
-	public static final int X86_INS_INSERTPS = 221;
-	public static final int X86_INS_INSERTQ = 222;
-	public static final int X86_INS_INSD = 223;
-	public static final int X86_INS_INSW = 224;
-	public static final int X86_INS_INT = 225;
-	public static final int X86_INS_INT1 = 226;
-	public static final int X86_INS_INT3 = 227;
-	public static final int X86_INS_INTO = 228;
-	public static final int X86_INS_INVD = 229;
-	public static final int X86_INS_INVEPT = 230;
-	public static final int X86_INS_INVLPG = 231;
-	public static final int X86_INS_INVLPGA = 232;
-	public static final int X86_INS_INVPCID = 233;
-	public static final int X86_INS_INVVPID = 234;
-	public static final int X86_INS_IRET = 235;
-	public static final int X86_INS_IRETD = 236;
-	public static final int X86_INS_IRETQ = 237;
-	public static final int X86_INS_FISTTP = 238;
-	public static final int X86_INS_FIST = 239;
-	public static final int X86_INS_FISTP = 240;
-	public static final int X86_INS_UCOMISD = 241;
-	public static final int X86_INS_UCOMISS = 242;
-	public static final int X86_INS_VCOMISD = 243;
-	public static final int X86_INS_VCOMISS = 244;
-	public static final int X86_INS_VCVTSD2SS = 245;
-	public static final int X86_INS_VCVTSI2SD = 246;
-	public static final int X86_INS_VCVTSI2SS = 247;
-	public static final int X86_INS_VCVTSS2SD = 248;
-	public static final int X86_INS_VCVTTSD2SI = 249;
-	public static final int X86_INS_VCVTTSD2USI = 250;
-	public static final int X86_INS_VCVTTSS2SI = 251;
-	public static final int X86_INS_VCVTTSS2USI = 252;
-	public static final int X86_INS_VCVTUSI2SD = 253;
-	public static final int X86_INS_VCVTUSI2SS = 254;
-	public static final int X86_INS_VUCOMISD = 255;
-	public static final int X86_INS_VUCOMISS = 256;
-	public static final int X86_INS_JAE = 257;
-	public static final int X86_INS_JA = 258;
-	public static final int X86_INS_JBE = 259;
-	public static final int X86_INS_JB = 260;
-	public static final int X86_INS_JCXZ = 261;
-	public static final int X86_INS_JECXZ = 262;
-	public static final int X86_INS_JE = 263;
-	public static final int X86_INS_JGE = 264;
-	public static final int X86_INS_JG = 265;
-	public static final int X86_INS_JLE = 266;
-	public static final int X86_INS_JL = 267;
-	public static final int X86_INS_JMP = 268;
-	public static final int X86_INS_JNE = 269;
-	public static final int X86_INS_JNO = 270;
-	public static final int X86_INS_JNP = 271;
-	public static final int X86_INS_JNS = 272;
-	public static final int X86_INS_JO = 273;
-	public static final int X86_INS_JP = 274;
-	public static final int X86_INS_JRCXZ = 275;
-	public static final int X86_INS_JS = 276;
-	public static final int X86_INS_KANDB = 277;
-	public static final int X86_INS_KANDD = 278;
-	public static final int X86_INS_KANDNB = 279;
-	public static final int X86_INS_KANDND = 280;
-	public static final int X86_INS_KANDNQ = 281;
-	public static final int X86_INS_KANDNW = 282;
-	public static final int X86_INS_KANDQ = 283;
-	public static final int X86_INS_KANDW = 284;
-	public static final int X86_INS_KMOVB = 285;
-	public static final int X86_INS_KMOVD = 286;
-	public static final int X86_INS_KMOVQ = 287;
-	public static final int X86_INS_KMOVW = 288;
-	public static final int X86_INS_KNOTB = 289;
-	public static final int X86_INS_KNOTD = 290;
-	public static final int X86_INS_KNOTQ = 291;
-	public static final int X86_INS_KNOTW = 292;
-	public static final int X86_INS_KORB = 293;
-	public static final int X86_INS_KORD = 294;
-	public static final int X86_INS_KORQ = 295;
-	public static final int X86_INS_KORTESTB = 296;
-	public static final int X86_INS_KORTESTD = 297;
-	public static final int X86_INS_KORTESTQ = 298;
-	public static final int X86_INS_KORTESTW = 299;
-	public static final int X86_INS_KORW = 300;
-	public static final int X86_INS_KSHIFTLB = 301;
-	public static final int X86_INS_KSHIFTLD = 302;
-	public static final int X86_INS_KSHIFTLQ = 303;
-	public static final int X86_INS_KSHIFTLW = 304;
-	public static final int X86_INS_KSHIFTRB = 305;
-	public static final int X86_INS_KSHIFTRD = 306;
-	public static final int X86_INS_KSHIFTRQ = 307;
-	public static final int X86_INS_KSHIFTRW = 308;
-	public static final int X86_INS_KUNPCKBW = 309;
-	public static final int X86_INS_KXNORB = 310;
-	public static final int X86_INS_KXNORD = 311;
-	public static final int X86_INS_KXNORQ = 312;
-	public static final int X86_INS_KXNORW = 313;
-	public static final int X86_INS_KXORB = 314;
-	public static final int X86_INS_KXORD = 315;
-	public static final int X86_INS_KXORQ = 316;
-	public static final int X86_INS_KXORW = 317;
-	public static final int X86_INS_LAHF = 318;
-	public static final int X86_INS_LAR = 319;
-	public static final int X86_INS_LDDQU = 320;
-	public static final int X86_INS_LDMXCSR = 321;
-	public static final int X86_INS_LDS = 322;
-	public static final int X86_INS_FLDZ = 323;
-	public static final int X86_INS_FLD1 = 324;
-	public static final int X86_INS_FLD = 325;
-	public static final int X86_INS_LEA = 326;
-	public static final int X86_INS_LEAVE = 327;
-	public static final int X86_INS_LES = 328;
-	public static final int X86_INS_LFENCE = 329;
-	public static final int X86_INS_LFS = 330;
-	public static final int X86_INS_LGDT = 331;
-	public static final int X86_INS_LGS = 332;
-	public static final int X86_INS_LIDT = 333;
-	public static final int X86_INS_LLDT = 334;
-	public static final int X86_INS_LMSW = 335;
-	public static final int X86_INS_OR = 336;
-	public static final int X86_INS_SUB = 337;
-	public static final int X86_INS_XOR = 338;
-	public static final int X86_INS_LODSB = 339;
-	public static final int X86_INS_LODSD = 340;
-	public static final int X86_INS_LODSQ = 341;
-	public static final int X86_INS_LODSW = 342;
-	public static final int X86_INS_LOOP = 343;
-	public static final int X86_INS_LOOPE = 344;
-	public static final int X86_INS_LOOPNE = 345;
-	public static final int X86_INS_RETF = 346;
-	public static final int X86_INS_RETFQ = 347;
-	public static final int X86_INS_LSL = 348;
-	public static final int X86_INS_LSS = 349;
-	public static final int X86_INS_LTR = 350;
-	public static final int X86_INS_XADD = 351;
-	public static final int X86_INS_LZCNT = 352;
-	public static final int X86_INS_MASKMOVDQU = 353;
-	public static final int X86_INS_MAXPD = 354;
-	public static final int X86_INS_MAXPS = 355;
-	public static final int X86_INS_MAXSD = 356;
-	public static final int X86_INS_MAXSS = 357;
-	public static final int X86_INS_MFENCE = 358;
-	public static final int X86_INS_MINPD = 359;
-	public static final int X86_INS_MINPS = 360;
-	public static final int X86_INS_MINSD = 361;
-	public static final int X86_INS_MINSS = 362;
-	public static final int X86_INS_CVTPD2PI = 363;
-	public static final int X86_INS_CVTPI2PD = 364;
-	public static final int X86_INS_CVTPI2PS = 365;
-	public static final int X86_INS_CVTPS2PI = 366;
-	public static final int X86_INS_CVTTPD2PI = 367;
-	public static final int X86_INS_CVTTPS2PI = 368;
-	public static final int X86_INS_EMMS = 369;
-	public static final int X86_INS_MASKMOVQ = 370;
-	public static final int X86_INS_MOVD = 371;
-	public static final int X86_INS_MOVDQ2Q = 372;
-	public static final int X86_INS_MOVNTQ = 373;
-	public static final int X86_INS_MOVQ2DQ = 374;
-	public static final int X86_INS_MOVQ = 375;
-	public static final int X86_INS_PABSB = 376;
-	public static final int X86_INS_PABSD = 377;
-	public static final int X86_INS_PABSW = 378;
-	public static final int X86_INS_PACKSSDW = 379;
-	public static final int X86_INS_PACKSSWB = 380;
-	public static final int X86_INS_PACKUSWB = 381;
-	public static final int X86_INS_PADDB = 382;
-	public static final int X86_INS_PADDD = 383;
-	public static final int X86_INS_PADDQ = 384;
-	public static final int X86_INS_PADDSB = 385;
-	public static final int X86_INS_PADDSW = 386;
-	public static final int X86_INS_PADDUSB = 387;
-	public static final int X86_INS_PADDUSW = 388;
-	public static final int X86_INS_PADDW = 389;
-	public static final int X86_INS_PALIGNR = 390;
-	public static final int X86_INS_PANDN = 391;
-	public static final int X86_INS_PAND = 392;
-	public static final int X86_INS_PAVGB = 393;
-	public static final int X86_INS_PAVGW = 394;
-	public static final int X86_INS_PCMPEQB = 395;
-	public static final int X86_INS_PCMPEQD = 396;
-	public static final int X86_INS_PCMPEQW = 397;
-	public static final int X86_INS_PCMPGTB = 398;
-	public static final int X86_INS_PCMPGTD = 399;
-	public static final int X86_INS_PCMPGTW = 400;
-	public static final int X86_INS_PEXTRW = 401;
-	public static final int X86_INS_PHADDSW = 402;
-	public static final int X86_INS_PHADDW = 403;
-	public static final int X86_INS_PHADDD = 404;
-	public static final int X86_INS_PHSUBD = 405;
-	public static final int X86_INS_PHSUBSW = 406;
-	public static final int X86_INS_PHSUBW = 407;
-	public static final int X86_INS_PINSRW = 408;
-	public static final int X86_INS_PMADDUBSW = 409;
-	public static final int X86_INS_PMADDWD = 410;
-	public static final int X86_INS_PMAXSW = 411;
-	public static final int X86_INS_PMAXUB = 412;
-	public static final int X86_INS_PMINSW = 413;
-	public static final int X86_INS_PMINUB = 414;
-	public static final int X86_INS_PMOVMSKB = 415;
-	public static final int X86_INS_PMULHRSW = 416;
-	public static final int X86_INS_PMULHUW = 417;
-	public static final int X86_INS_PMULHW = 418;
-	public static final int X86_INS_PMULLW = 419;
-	public static final int X86_INS_PMULUDQ = 420;
-	public static final int X86_INS_POR = 421;
-	public static final int X86_INS_PSADBW = 422;
-	public static final int X86_INS_PSHUFB = 423;
-	public static final int X86_INS_PSHUFW = 424;
-	public static final int X86_INS_PSIGNB = 425;
-	public static final int X86_INS_PSIGND = 426;
-	public static final int X86_INS_PSIGNW = 427;
-	public static final int X86_INS_PSLLD = 428;
-	public static final int X86_INS_PSLLQ = 429;
-	public static final int X86_INS_PSLLW = 430;
-	public static final int X86_INS_PSRAD = 431;
-	public static final int X86_INS_PSRAW = 432;
-	public static final int X86_INS_PSRLD = 433;
-	public static final int X86_INS_PSRLQ = 434;
-	public static final int X86_INS_PSRLW = 435;
-	public static final int X86_INS_PSUBB = 436;
-	public static final int X86_INS_PSUBD = 437;
-	public static final int X86_INS_PSUBQ = 438;
-	public static final int X86_INS_PSUBSB = 439;
-	public static final int X86_INS_PSUBSW = 440;
-	public static final int X86_INS_PSUBUSB = 441;
-	public static final int X86_INS_PSUBUSW = 442;
-	public static final int X86_INS_PSUBW = 443;
-	public static final int X86_INS_PUNPCKHBW = 444;
-	public static final int X86_INS_PUNPCKHDQ = 445;
-	public static final int X86_INS_PUNPCKHWD = 446;
-	public static final int X86_INS_PUNPCKLBW = 447;
-	public static final int X86_INS_PUNPCKLDQ = 448;
-	public static final int X86_INS_PUNPCKLWD = 449;
-	public static final int X86_INS_PXOR = 450;
-	public static final int X86_INS_MONITOR = 451;
-	public static final int X86_INS_MONTMUL = 452;
-	public static final int X86_INS_MOV = 453;
-	public static final int X86_INS_MOVABS = 454;
-	public static final int X86_INS_MOVBE = 455;
-	public static final int X86_INS_MOVDDUP = 456;
-	public static final int X86_INS_MOVDQA = 457;
-	public static final int X86_INS_MOVDQU = 458;
-	public static final int X86_INS_MOVHLPS = 459;
-	public static final int X86_INS_MOVHPD = 460;
-	public static final int X86_INS_MOVHPS = 461;
-	public static final int X86_INS_MOVLHPS = 462;
-	public static final int X86_INS_MOVLPD = 463;
-	public static final int X86_INS_MOVLPS = 464;
-	public static final int X86_INS_MOVMSKPD = 465;
-	public static final int X86_INS_MOVMSKPS = 466;
-	public static final int X86_INS_MOVNTDQA = 467;
-	public static final int X86_INS_MOVNTDQ = 468;
-	public static final int X86_INS_MOVNTI = 469;
-	public static final int X86_INS_MOVNTPD = 470;
-	public static final int X86_INS_MOVNTPS = 471;
-	public static final int X86_INS_MOVNTSD = 472;
-	public static final int X86_INS_MOVNTSS = 473;
-	public static final int X86_INS_MOVSB = 474;
-	public static final int X86_INS_MOVSD = 475;
-	public static final int X86_INS_MOVSHDUP = 476;
-	public static final int X86_INS_MOVSLDUP = 477;
-	public static final int X86_INS_MOVSQ = 478;
-	public static final int X86_INS_MOVSS = 479;
-	public static final int X86_INS_MOVSW = 480;
-	public static final int X86_INS_MOVSX = 481;
-	public static final int X86_INS_MOVSXD = 482;
-	public static final int X86_INS_MOVUPD = 483;
-	public static final int X86_INS_MOVUPS = 484;
-	public static final int X86_INS_MOVZX = 485;
-	public static final int X86_INS_MPSADBW = 486;
-	public static final int X86_INS_MUL = 487;
-	public static final int X86_INS_MULPD = 488;
-	public static final int X86_INS_MULPS = 489;
-	public static final int X86_INS_MULSD = 490;
-	public static final int X86_INS_MULSS = 491;
-	public static final int X86_INS_MULX = 492;
-	public static final int X86_INS_FMUL = 493;
-	public static final int X86_INS_FIMUL = 494;
-	public static final int X86_INS_FMULP = 495;
-	public static final int X86_INS_MWAIT = 496;
-	public static final int X86_INS_NEG = 497;
-	public static final int X86_INS_NOP = 498;
-	public static final int X86_INS_NOT = 499;
-	public static final int X86_INS_OUT = 500;
-	public static final int X86_INS_OUTSB = 501;
-	public static final int X86_INS_OUTSD = 502;
-	public static final int X86_INS_OUTSW = 503;
-	public static final int X86_INS_PACKUSDW = 504;
-	public static final int X86_INS_PAUSE = 505;
-	public static final int X86_INS_PAVGUSB = 506;
-	public static final int X86_INS_PBLENDVB = 507;
-	public static final int X86_INS_PBLENDW = 508;
-	public static final int X86_INS_PCLMULQDQ = 509;
-	public static final int X86_INS_PCMPEQQ = 510;
-	public static final int X86_INS_PCMPESTRI = 511;
-	public static final int X86_INS_PCMPESTRM = 512;
-	public static final int X86_INS_PCMPGTQ = 513;
-	public static final int X86_INS_PCMPISTRI = 514;
-	public static final int X86_INS_PCMPISTRM = 515;
-	public static final int X86_INS_PCOMMIT = 516;
-	public static final int X86_INS_PDEP = 517;
-	public static final int X86_INS_PEXT = 518;
-	public static final int X86_INS_PEXTRB = 519;
-	public static final int X86_INS_PEXTRD = 520;
-	public static final int X86_INS_PEXTRQ = 521;
-	public static final int X86_INS_PF2ID = 522;
-	public static final int X86_INS_PF2IW = 523;
-	public static final int X86_INS_PFACC = 524;
-	public static final int X86_INS_PFADD = 525;
-	public static final int X86_INS_PFCMPEQ = 526;
-	public static final int X86_INS_PFCMPGE = 527;
-	public static final int X86_INS_PFCMPGT = 528;
-	public static final int X86_INS_PFMAX = 529;
-	public static final int X86_INS_PFMIN = 530;
-	public static final int X86_INS_PFMUL = 531;
-	public static final int X86_INS_PFNACC = 532;
-	public static final int X86_INS_PFPNACC = 533;
-	public static final int X86_INS_PFRCPIT1 = 534;
-	public static final int X86_INS_PFRCPIT2 = 535;
-	public static final int X86_INS_PFRCP = 536;
-	public static final int X86_INS_PFRSQIT1 = 537;
-	public static final int X86_INS_PFRSQRT = 538;
-	public static final int X86_INS_PFSUBR = 539;
-	public static final int X86_INS_PFSUB = 540;
-	public static final int X86_INS_PHMINPOSUW = 541;
-	public static final int X86_INS_PI2FD = 542;
-	public static final int X86_INS_PI2FW = 543;
-	public static final int X86_INS_PINSRB = 544;
-	public static final int X86_INS_PINSRD = 545;
-	public static final int X86_INS_PINSRQ = 546;
-	public static final int X86_INS_PMAXSB = 547;
-	public static final int X86_INS_PMAXSD = 548;
-	public static final int X86_INS_PMAXUD = 549;
-	public static final int X86_INS_PMAXUW = 550;
-	public static final int X86_INS_PMINSB = 551;
-	public static final int X86_INS_PMINSD = 552;
-	public static final int X86_INS_PMINUD = 553;
-	public static final int X86_INS_PMINUW = 554;
-	public static final int X86_INS_PMOVSXBD = 555;
-	public static final int X86_INS_PMOVSXBQ = 556;
-	public static final int X86_INS_PMOVSXBW = 557;
-	public static final int X86_INS_PMOVSXDQ = 558;
-	public static final int X86_INS_PMOVSXWD = 559;
-	public static final int X86_INS_PMOVSXWQ = 560;
-	public static final int X86_INS_PMOVZXBD = 561;
-	public static final int X86_INS_PMOVZXBQ = 562;
-	public static final int X86_INS_PMOVZXBW = 563;
-	public static final int X86_INS_PMOVZXDQ = 564;
-	public static final int X86_INS_PMOVZXWD = 565;
-	public static final int X86_INS_PMOVZXWQ = 566;
-	public static final int X86_INS_PMULDQ = 567;
-	public static final int X86_INS_PMULHRW = 568;
-	public static final int X86_INS_PMULLD = 569;
-	public static final int X86_INS_POP = 570;
-	public static final int X86_INS_POPAW = 571;
-	public static final int X86_INS_POPAL = 572;
-	public static final int X86_INS_POPCNT = 573;
-	public static final int X86_INS_POPF = 574;
-	public static final int X86_INS_POPFD = 575;
-	public static final int X86_INS_POPFQ = 576;
-	public static final int X86_INS_PREFETCH = 577;
-	public static final int X86_INS_PREFETCHNTA = 578;
-	public static final int X86_INS_PREFETCHT0 = 579;
-	public static final int X86_INS_PREFETCHT1 = 580;
-	public static final int X86_INS_PREFETCHT2 = 581;
-	public static final int X86_INS_PREFETCHW = 582;
-	public static final int X86_INS_PSHUFD = 583;
-	public static final int X86_INS_PSHUFHW = 584;
-	public static final int X86_INS_PSHUFLW = 585;
-	public static final int X86_INS_PSLLDQ = 586;
-	public static final int X86_INS_PSRLDQ = 587;
-	public static final int X86_INS_PSWAPD = 588;
-	public static final int X86_INS_PTEST = 589;
-	public static final int X86_INS_PUNPCKHQDQ = 590;
-	public static final int X86_INS_PUNPCKLQDQ = 591;
-	public static final int X86_INS_PUSH = 592;
-	public static final int X86_INS_PUSHAW = 593;
-	public static final int X86_INS_PUSHAL = 594;
-	public static final int X86_INS_PUSHF = 595;
-	public static final int X86_INS_PUSHFD = 596;
-	public static final int X86_INS_PUSHFQ = 597;
-	public static final int X86_INS_RCL = 598;
-	public static final int X86_INS_RCPPS = 599;
-	public static final int X86_INS_RCPSS = 600;
-	public static final int X86_INS_RCR = 601;
-	public static final int X86_INS_RDFSBASE = 602;
-	public static final int X86_INS_RDGSBASE = 603;
-	public static final int X86_INS_RDMSR = 604;
-	public static final int X86_INS_RDPMC = 605;
-	public static final int X86_INS_RDRAND = 606;
-	public static final int X86_INS_RDSEED = 607;
-	public static final int X86_INS_RDTSC = 608;
-	public static final int X86_INS_RDTSCP = 609;
-	public static final int X86_INS_ROL = 610;
-	public static final int X86_INS_ROR = 611;
-	public static final int X86_INS_RORX = 612;
-	public static final int X86_INS_ROUNDPD = 613;
-	public static final int X86_INS_ROUNDPS = 614;
-	public static final int X86_INS_ROUNDSD = 615;
-	public static final int X86_INS_ROUNDSS = 616;
-	public static final int X86_INS_RSM = 617;
-	public static final int X86_INS_RSQRTPS = 618;
-	public static final int X86_INS_RSQRTSS = 619;
-	public static final int X86_INS_SAHF = 620;
-	public static final int X86_INS_SAL = 621;
-	public static final int X86_INS_SALC = 622;
-	public static final int X86_INS_SAR = 623;
-	public static final int X86_INS_SARX = 624;
-	public static final int X86_INS_SBB = 625;
-	public static final int X86_INS_SCASB = 626;
-	public static final int X86_INS_SCASD = 627;
-	public static final int X86_INS_SCASQ = 628;
-	public static final int X86_INS_SCASW = 629;
-	public static final int X86_INS_SETAE = 630;
-	public static final int X86_INS_SETA = 631;
-	public static final int X86_INS_SETBE = 632;
-	public static final int X86_INS_SETB = 633;
-	public static final int X86_INS_SETE = 634;
-	public static final int X86_INS_SETGE = 635;
-	public static final int X86_INS_SETG = 636;
-	public static final int X86_INS_SETLE = 637;
-	public static final int X86_INS_SETL = 638;
-	public static final int X86_INS_SETNE = 639;
-	public static final int X86_INS_SETNO = 640;
-	public static final int X86_INS_SETNP = 641;
-	public static final int X86_INS_SETNS = 642;
-	public static final int X86_INS_SETO = 643;
-	public static final int X86_INS_SETP = 644;
-	public static final int X86_INS_SETS = 645;
-	public static final int X86_INS_SFENCE = 646;
-	public static final int X86_INS_SGDT = 647;
-	public static final int X86_INS_SHA1MSG1 = 648;
-	public static final int X86_INS_SHA1MSG2 = 649;
-	public static final int X86_INS_SHA1NEXTE = 650;
-	public static final int X86_INS_SHA1RNDS4 = 651;
-	public static final int X86_INS_SHA256MSG1 = 652;
-	public static final int X86_INS_SHA256MSG2 = 653;
-	public static final int X86_INS_SHA256RNDS2 = 654;
-	public static final int X86_INS_SHL = 655;
-	public static final int X86_INS_SHLD = 656;
-	public static final int X86_INS_SHLX = 657;
-	public static final int X86_INS_SHR = 658;
-	public static final int X86_INS_SHRD = 659;
-	public static final int X86_INS_SHRX = 660;
-	public static final int X86_INS_SHUFPD = 661;
-	public static final int X86_INS_SHUFPS = 662;
-	public static final int X86_INS_SIDT = 663;
-	public static final int X86_INS_FSIN = 664;
-	public static final int X86_INS_SKINIT = 665;
-	public static final int X86_INS_SLDT = 666;
-	public static final int X86_INS_SMSW = 667;
-	public static final int X86_INS_SQRTPD = 668;
-	public static final int X86_INS_SQRTPS = 669;
-	public static final int X86_INS_SQRTSD = 670;
-	public static final int X86_INS_SQRTSS = 671;
-	public static final int X86_INS_FSQRT = 672;
-	public static final int X86_INS_STAC = 673;
-	public static final int X86_INS_STC = 674;
-	public static final int X86_INS_STD = 675;
-	public static final int X86_INS_STGI = 676;
-	public static final int X86_INS_STI = 677;
-	public static final int X86_INS_STMXCSR = 678;
-	public static final int X86_INS_STOSB = 679;
-	public static final int X86_INS_STOSD = 680;
-	public static final int X86_INS_STOSQ = 681;
-	public static final int X86_INS_STOSW = 682;
-	public static final int X86_INS_STR = 683;
-	public static final int X86_INS_FST = 684;
-	public static final int X86_INS_FSTP = 685;
-	public static final int X86_INS_FSTPNCE = 686;
-	public static final int X86_INS_FXCH = 687;
-	public static final int X86_INS_SUBPD = 688;
-	public static final int X86_INS_SUBPS = 689;
-	public static final int X86_INS_FSUBR = 690;
-	public static final int X86_INS_FISUBR = 691;
-	public static final int X86_INS_FSUBRP = 692;
-	public static final int X86_INS_SUBSD = 693;
-	public static final int X86_INS_SUBSS = 694;
-	public static final int X86_INS_FSUB = 695;
-	public static final int X86_INS_FISUB = 696;
-	public static final int X86_INS_FSUBP = 697;
-	public static final int X86_INS_SWAPGS = 698;
-	public static final int X86_INS_SYSCALL = 699;
-	public static final int X86_INS_SYSENTER = 700;
-	public static final int X86_INS_SYSEXIT = 701;
-	public static final int X86_INS_SYSRET = 702;
-	public static final int X86_INS_T1MSKC = 703;
-	public static final int X86_INS_TEST = 704;
-	public static final int X86_INS_UD2 = 705;
-	public static final int X86_INS_FTST = 706;
-	public static final int X86_INS_TZCNT = 707;
-	public static final int X86_INS_TZMSK = 708;
-	public static final int X86_INS_FUCOMPI = 709;
-	public static final int X86_INS_FUCOMI = 710;
-	public static final int X86_INS_FUCOMPP = 711;
-	public static final int X86_INS_FUCOMP = 712;
-	public static final int X86_INS_FUCOM = 713;
-	public static final int X86_INS_UD2B = 714;
-	public static final int X86_INS_UNPCKHPD = 715;
-	public static final int X86_INS_UNPCKHPS = 716;
-	public static final int X86_INS_UNPCKLPD = 717;
-	public static final int X86_INS_UNPCKLPS = 718;
-	public static final int X86_INS_VADDPD = 719;
-	public static final int X86_INS_VADDPS = 720;
-	public static final int X86_INS_VADDSD = 721;
-	public static final int X86_INS_VADDSS = 722;
-	public static final int X86_INS_VADDSUBPD = 723;
-	public static final int X86_INS_VADDSUBPS = 724;
-	public static final int X86_INS_VAESDECLAST = 725;
-	public static final int X86_INS_VAESDEC = 726;
-	public static final int X86_INS_VAESENCLAST = 727;
-	public static final int X86_INS_VAESENC = 728;
-	public static final int X86_INS_VAESIMC = 729;
-	public static final int X86_INS_VAESKEYGENASSIST = 730;
-	public static final int X86_INS_VALIGND = 731;
-	public static final int X86_INS_VALIGNQ = 732;
-	public static final int X86_INS_VANDNPD = 733;
-	public static final int X86_INS_VANDNPS = 734;
-	public static final int X86_INS_VANDPD = 735;
-	public static final int X86_INS_VANDPS = 736;
-	public static final int X86_INS_VBLENDMPD = 737;
-	public static final int X86_INS_VBLENDMPS = 738;
-	public static final int X86_INS_VBLENDPD = 739;
-	public static final int X86_INS_VBLENDPS = 740;
-	public static final int X86_INS_VBLENDVPD = 741;
-	public static final int X86_INS_VBLENDVPS = 742;
-	public static final int X86_INS_VBROADCASTF128 = 743;
-	public static final int X86_INS_VBROADCASTI32X4 = 744;
-	public static final int X86_INS_VBROADCASTI64X4 = 745;
-	public static final int X86_INS_VBROADCASTSD = 746;
-	public static final int X86_INS_VBROADCASTSS = 747;
-	public static final int X86_INS_VCMPPD = 748;
-	public static final int X86_INS_VCMPPS = 749;
-	public static final int X86_INS_VCMPSD = 750;
-	public static final int X86_INS_VCMPSS = 751;
-	public static final int X86_INS_VCOMPRESSPD = 752;
-	public static final int X86_INS_VCOMPRESSPS = 753;
-	public static final int X86_INS_VCVTDQ2PD = 754;
-	public static final int X86_INS_VCVTDQ2PS = 755;
-	public static final int X86_INS_VCVTPD2DQX = 756;
-	public static final int X86_INS_VCVTPD2DQ = 757;
-	public static final int X86_INS_VCVTPD2PSX = 758;
-	public static final int X86_INS_VCVTPD2PS = 759;
-	public static final int X86_INS_VCVTPD2UDQ = 760;
-	public static final int X86_INS_VCVTPH2PS = 761;
-	public static final int X86_INS_VCVTPS2DQ = 762;
-	public static final int X86_INS_VCVTPS2PD = 763;
-	public static final int X86_INS_VCVTPS2PH = 764;
-	public static final int X86_INS_VCVTPS2UDQ = 765;
-	public static final int X86_INS_VCVTSD2SI = 766;
-	public static final int X86_INS_VCVTSD2USI = 767;
-	public static final int X86_INS_VCVTSS2SI = 768;
-	public static final int X86_INS_VCVTSS2USI = 769;
-	public static final int X86_INS_VCVTTPD2DQX = 770;
-	public static final int X86_INS_VCVTTPD2DQ = 771;
-	public static final int X86_INS_VCVTTPD2UDQ = 772;
-	public static final int X86_INS_VCVTTPS2DQ = 773;
-	public static final int X86_INS_VCVTTPS2UDQ = 774;
-	public static final int X86_INS_VCVTUDQ2PD = 775;
-	public static final int X86_INS_VCVTUDQ2PS = 776;
-	public static final int X86_INS_VDIVPD = 777;
-	public static final int X86_INS_VDIVPS = 778;
-	public static final int X86_INS_VDIVSD = 779;
-	public static final int X86_INS_VDIVSS = 780;
-	public static final int X86_INS_VDPPD = 781;
-	public static final int X86_INS_VDPPS = 782;
-	public static final int X86_INS_VERR = 783;
-	public static final int X86_INS_VERW = 784;
-	public static final int X86_INS_VEXP2PD = 785;
-	public static final int X86_INS_VEXP2PS = 786;
-	public static final int X86_INS_VEXPANDPD = 787;
-	public static final int X86_INS_VEXPANDPS = 788;
-	public static final int X86_INS_VEXTRACTF128 = 789;
-	public static final int X86_INS_VEXTRACTF32X4 = 790;
-	public static final int X86_INS_VEXTRACTF64X4 = 791;
-	public static final int X86_INS_VEXTRACTI128 = 792;
-	public static final int X86_INS_VEXTRACTI32X4 = 793;
-	public static final int X86_INS_VEXTRACTI64X4 = 794;
-	public static final int X86_INS_VEXTRACTPS = 795;
-	public static final int X86_INS_VFMADD132PD = 796;
-	public static final int X86_INS_VFMADD132PS = 797;
-	public static final int X86_INS_VFMADDPD = 798;
-	public static final int X86_INS_VFMADD213PD = 799;
-	public static final int X86_INS_VFMADD231PD = 800;
-	public static final int X86_INS_VFMADDPS = 801;
-	public static final int X86_INS_VFMADD213PS = 802;
-	public static final int X86_INS_VFMADD231PS = 803;
-	public static final int X86_INS_VFMADDSD = 804;
-	public static final int X86_INS_VFMADD213SD = 805;
-	public static final int X86_INS_VFMADD132SD = 806;
-	public static final int X86_INS_VFMADD231SD = 807;
-	public static final int X86_INS_VFMADDSS = 808;
-	public static final int X86_INS_VFMADD213SS = 809;
-	public static final int X86_INS_VFMADD132SS = 810;
-	public static final int X86_INS_VFMADD231SS = 811;
-	public static final int X86_INS_VFMADDSUB132PD = 812;
-	public static final int X86_INS_VFMADDSUB132PS = 813;
-	public static final int X86_INS_VFMADDSUBPD = 814;
-	public static final int X86_INS_VFMADDSUB213PD = 815;
-	public static final int X86_INS_VFMADDSUB231PD = 816;
-	public static final int X86_INS_VFMADDSUBPS = 817;
-	public static final int X86_INS_VFMADDSUB213PS = 818;
-	public static final int X86_INS_VFMADDSUB231PS = 819;
-	public static final int X86_INS_VFMSUB132PD = 820;
-	public static final int X86_INS_VFMSUB132PS = 821;
-	public static final int X86_INS_VFMSUBADD132PD = 822;
-	public static final int X86_INS_VFMSUBADD132PS = 823;
-	public static final int X86_INS_VFMSUBADDPD = 824;
-	public static final int X86_INS_VFMSUBADD213PD = 825;
-	public static final int X86_INS_VFMSUBADD231PD = 826;
-	public static final int X86_INS_VFMSUBADDPS = 827;
-	public static final int X86_INS_VFMSUBADD213PS = 828;
-	public static final int X86_INS_VFMSUBADD231PS = 829;
-	public static final int X86_INS_VFMSUBPD = 830;
-	public static final int X86_INS_VFMSUB213PD = 831;
-	public static final int X86_INS_VFMSUB231PD = 832;
-	public static final int X86_INS_VFMSUBPS = 833;
-	public static final int X86_INS_VFMSUB213PS = 834;
-	public static final int X86_INS_VFMSUB231PS = 835;
-	public static final int X86_INS_VFMSUBSD = 836;
-	public static final int X86_INS_VFMSUB213SD = 837;
-	public static final int X86_INS_VFMSUB132SD = 838;
-	public static final int X86_INS_VFMSUB231SD = 839;
-	public static final int X86_INS_VFMSUBSS = 840;
-	public static final int X86_INS_VFMSUB213SS = 841;
-	public static final int X86_INS_VFMSUB132SS = 842;
-	public static final int X86_INS_VFMSUB231SS = 843;
-	public static final int X86_INS_VFNMADD132PD = 844;
-	public static final int X86_INS_VFNMADD132PS = 845;
-	public static final int X86_INS_VFNMADDPD = 846;
-	public static final int X86_INS_VFNMADD213PD = 847;
-	public static final int X86_INS_VFNMADD231PD = 848;
-	public static final int X86_INS_VFNMADDPS = 849;
-	public static final int X86_INS_VFNMADD213PS = 850;
-	public static final int X86_INS_VFNMADD231PS = 851;
-	public static final int X86_INS_VFNMADDSD = 852;
-	public static final int X86_INS_VFNMADD213SD = 853;
-	public static final int X86_INS_VFNMADD132SD = 854;
-	public static final int X86_INS_VFNMADD231SD = 855;
-	public static final int X86_INS_VFNMADDSS = 856;
-	public static final int X86_INS_VFNMADD213SS = 857;
-	public static final int X86_INS_VFNMADD132SS = 858;
-	public static final int X86_INS_VFNMADD231SS = 859;
-	public static final int X86_INS_VFNMSUB132PD = 860;
-	public static final int X86_INS_VFNMSUB132PS = 861;
-	public static final int X86_INS_VFNMSUBPD = 862;
-	public static final int X86_INS_VFNMSUB213PD = 863;
-	public static final int X86_INS_VFNMSUB231PD = 864;
-	public static final int X86_INS_VFNMSUBPS = 865;
-	public static final int X86_INS_VFNMSUB213PS = 866;
-	public static final int X86_INS_VFNMSUB231PS = 867;
-	public static final int X86_INS_VFNMSUBSD = 868;
-	public static final int X86_INS_VFNMSUB213SD = 869;
-	public static final int X86_INS_VFNMSUB132SD = 870;
-	public static final int X86_INS_VFNMSUB231SD = 871;
-	public static final int X86_INS_VFNMSUBSS = 872;
-	public static final int X86_INS_VFNMSUB213SS = 873;
-	public static final int X86_INS_VFNMSUB132SS = 874;
-	public static final int X86_INS_VFNMSUB231SS = 875;
-	public static final int X86_INS_VFRCZPD = 876;
-	public static final int X86_INS_VFRCZPS = 877;
-	public static final int X86_INS_VFRCZSD = 878;
-	public static final int X86_INS_VFRCZSS = 879;
-	public static final int X86_INS_VORPD = 880;
-	public static final int X86_INS_VORPS = 881;
-	public static final int X86_INS_VXORPD = 882;
-	public static final int X86_INS_VXORPS = 883;
-	public static final int X86_INS_VGATHERDPD = 884;
-	public static final int X86_INS_VGATHERDPS = 885;
-	public static final int X86_INS_VGATHERPF0DPD = 886;
-	public static final int X86_INS_VGATHERPF0DPS = 887;
-	public static final int X86_INS_VGATHERPF0QPD = 888;
-	public static final int X86_INS_VGATHERPF0QPS = 889;
-	public static final int X86_INS_VGATHERPF1DPD = 890;
-	public static final int X86_INS_VGATHERPF1DPS = 891;
-	public static final int X86_INS_VGATHERPF1QPD = 892;
-	public static final int X86_INS_VGATHERPF1QPS = 893;
-	public static final int X86_INS_VGATHERQPD = 894;
-	public static final int X86_INS_VGATHERQPS = 895;
-	public static final int X86_INS_VHADDPD = 896;
-	public static final int X86_INS_VHADDPS = 897;
-	public static final int X86_INS_VHSUBPD = 898;
-	public static final int X86_INS_VHSUBPS = 899;
-	public static final int X86_INS_VINSERTF128 = 900;
-	public static final int X86_INS_VINSERTF32X4 = 901;
-	public static final int X86_INS_VINSERTF32X8 = 902;
-	public static final int X86_INS_VINSERTF64X2 = 903;
-	public static final int X86_INS_VINSERTF64X4 = 904;
-	public static final int X86_INS_VINSERTI128 = 905;
-	public static final int X86_INS_VINSERTI32X4 = 906;
-	public static final int X86_INS_VINSERTI32X8 = 907;
-	public static final int X86_INS_VINSERTI64X2 = 908;
-	public static final int X86_INS_VINSERTI64X4 = 909;
-	public static final int X86_INS_VINSERTPS = 910;
-	public static final int X86_INS_VLDDQU = 911;
-	public static final int X86_INS_VLDMXCSR = 912;
-	public static final int X86_INS_VMASKMOVDQU = 913;
-	public static final int X86_INS_VMASKMOVPD = 914;
-	public static final int X86_INS_VMASKMOVPS = 915;
-	public static final int X86_INS_VMAXPD = 916;
-	public static final int X86_INS_VMAXPS = 917;
-	public static final int X86_INS_VMAXSD = 918;
-	public static final int X86_INS_VMAXSS = 919;
-	public static final int X86_INS_VMCALL = 920;
-	public static final int X86_INS_VMCLEAR = 921;
-	public static final int X86_INS_VMFUNC = 922;
-	public static final int X86_INS_VMINPD = 923;
-	public static final int X86_INS_VMINPS = 924;
-	public static final int X86_INS_VMINSD = 925;
-	public static final int X86_INS_VMINSS = 926;
-	public static final int X86_INS_VMLAUNCH = 927;
-	public static final int X86_INS_VMLOAD = 928;
-	public static final int X86_INS_VMMCALL = 929;
-	public static final int X86_INS_VMOVQ = 930;
-	public static final int X86_INS_VMOVDDUP = 931;
-	public static final int X86_INS_VMOVD = 932;
-	public static final int X86_INS_VMOVDQA32 = 933;
-	public static final int X86_INS_VMOVDQA64 = 934;
-	public static final int X86_INS_VMOVDQA = 935;
-	public static final int X86_INS_VMOVDQU16 = 936;
-	public static final int X86_INS_VMOVDQU32 = 937;
-	public static final int X86_INS_VMOVDQU64 = 938;
-	public static final int X86_INS_VMOVDQU8 = 939;
-	public static final int X86_INS_VMOVDQU = 940;
-	public static final int X86_INS_VMOVHLPS = 941;
-	public static final int X86_INS_VMOVHPD = 942;
-	public static final int X86_INS_VMOVHPS = 943;
-	public static final int X86_INS_VMOVLHPS = 944;
-	public static final int X86_INS_VMOVLPD = 945;
-	public static final int X86_INS_VMOVLPS = 946;
-	public static final int X86_INS_VMOVMSKPD = 947;
-	public static final int X86_INS_VMOVMSKPS = 948;
-	public static final int X86_INS_VMOVNTDQA = 949;
-	public static final int X86_INS_VMOVNTDQ = 950;
-	public static final int X86_INS_VMOVNTPD = 951;
-	public static final int X86_INS_VMOVNTPS = 952;
-	public static final int X86_INS_VMOVSD = 953;
-	public static final int X86_INS_VMOVSHDUP = 954;
-	public static final int X86_INS_VMOVSLDUP = 955;
-	public static final int X86_INS_VMOVSS = 956;
-	public static final int X86_INS_VMOVUPD = 957;
-	public static final int X86_INS_VMOVUPS = 958;
-	public static final int X86_INS_VMPSADBW = 959;
-	public static final int X86_INS_VMPTRLD = 960;
-	public static final int X86_INS_VMPTRST = 961;
-	public static final int X86_INS_VMREAD = 962;
-	public static final int X86_INS_VMRESUME = 963;
-	public static final int X86_INS_VMRUN = 964;
-	public static final int X86_INS_VMSAVE = 965;
-	public static final int X86_INS_VMULPD = 966;
-	public static final int X86_INS_VMULPS = 967;
-	public static final int X86_INS_VMULSD = 968;
-	public static final int X86_INS_VMULSS = 969;
-	public static final int X86_INS_VMWRITE = 970;
-	public static final int X86_INS_VMXOFF = 971;
-	public static final int X86_INS_VMXON = 972;
-	public static final int X86_INS_VPABSB = 973;
-	public static final int X86_INS_VPABSD = 974;
-	public static final int X86_INS_VPABSQ = 975;
-	public static final int X86_INS_VPABSW = 976;
-	public static final int X86_INS_VPACKSSDW = 977;
-	public static final int X86_INS_VPACKSSWB = 978;
-	public static final int X86_INS_VPACKUSDW = 979;
-	public static final int X86_INS_VPACKUSWB = 980;
-	public static final int X86_INS_VPADDB = 981;
-	public static final int X86_INS_VPADDD = 982;
-	public static final int X86_INS_VPADDQ = 983;
-	public static final int X86_INS_VPADDSB = 984;
-	public static final int X86_INS_VPADDSW = 985;
-	public static final int X86_INS_VPADDUSB = 986;
-	public static final int X86_INS_VPADDUSW = 987;
-	public static final int X86_INS_VPADDW = 988;
-	public static final int X86_INS_VPALIGNR = 989;
-	public static final int X86_INS_VPANDD = 990;
-	public static final int X86_INS_VPANDND = 991;
-	public static final int X86_INS_VPANDNQ = 992;
-	public static final int X86_INS_VPANDN = 993;
-	public static final int X86_INS_VPANDQ = 994;
-	public static final int X86_INS_VPAND = 995;
-	public static final int X86_INS_VPAVGB = 996;
-	public static final int X86_INS_VPAVGW = 997;
-	public static final int X86_INS_VPBLENDD = 998;
-	public static final int X86_INS_VPBLENDMB = 999;
-	public static final int X86_INS_VPBLENDMD = 1000;
-	public static final int X86_INS_VPBLENDMQ = 1001;
-	public static final int X86_INS_VPBLENDMW = 1002;
-	public static final int X86_INS_VPBLENDVB = 1003;
-	public static final int X86_INS_VPBLENDW = 1004;
-	public static final int X86_INS_VPBROADCASTB = 1005;
-	public static final int X86_INS_VPBROADCASTD = 1006;
-	public static final int X86_INS_VPBROADCASTMB2Q = 1007;
-	public static final int X86_INS_VPBROADCASTMW2D = 1008;
-	public static final int X86_INS_VPBROADCASTQ = 1009;
-	public static final int X86_INS_VPBROADCASTW = 1010;
-	public static final int X86_INS_VPCLMULQDQ = 1011;
-	public static final int X86_INS_VPCMOV = 1012;
-	public static final int X86_INS_VPCMPB = 1013;
-	public static final int X86_INS_VPCMPD = 1014;
-	public static final int X86_INS_VPCMPEQB = 1015;
-	public static final int X86_INS_VPCMPEQD = 1016;
-	public static final int X86_INS_VPCMPEQQ = 1017;
-	public static final int X86_INS_VPCMPEQW = 1018;
-	public static final int X86_INS_VPCMPESTRI = 1019;
-	public static final int X86_INS_VPCMPESTRM = 1020;
-	public static final int X86_INS_VPCMPGTB = 1021;
-	public static final int X86_INS_VPCMPGTD = 1022;
-	public static final int X86_INS_VPCMPGTQ = 1023;
-	public static final int X86_INS_VPCMPGTW = 1024;
-	public static final int X86_INS_VPCMPISTRI = 1025;
-	public static final int X86_INS_VPCMPISTRM = 1026;
-	public static final int X86_INS_VPCMPQ = 1027;
-	public static final int X86_INS_VPCMPUB = 1028;
-	public static final int X86_INS_VPCMPUD = 1029;
-	public static final int X86_INS_VPCMPUQ = 1030;
-	public static final int X86_INS_VPCMPUW = 1031;
-	public static final int X86_INS_VPCMPW = 1032;
-	public static final int X86_INS_VPCOMB = 1033;
-	public static final int X86_INS_VPCOMD = 1034;
-	public static final int X86_INS_VPCOMPRESSD = 1035;
-	public static final int X86_INS_VPCOMPRESSQ = 1036;
-	public static final int X86_INS_VPCOMQ = 1037;
-	public static final int X86_INS_VPCOMUB = 1038;
-	public static final int X86_INS_VPCOMUD = 1039;
-	public static final int X86_INS_VPCOMUQ = 1040;
-	public static final int X86_INS_VPCOMUW = 1041;
-	public static final int X86_INS_VPCOMW = 1042;
-	public static final int X86_INS_VPCONFLICTD = 1043;
-	public static final int X86_INS_VPCONFLICTQ = 1044;
-	public static final int X86_INS_VPERM2F128 = 1045;
-	public static final int X86_INS_VPERM2I128 = 1046;
-	public static final int X86_INS_VPERMD = 1047;
-	public static final int X86_INS_VPERMI2D = 1048;
-	public static final int X86_INS_VPERMI2PD = 1049;
-	public static final int X86_INS_VPERMI2PS = 1050;
-	public static final int X86_INS_VPERMI2Q = 1051;
-	public static final int X86_INS_VPERMIL2PD = 1052;
-	public static final int X86_INS_VPERMIL2PS = 1053;
-	public static final int X86_INS_VPERMILPD = 1054;
-	public static final int X86_INS_VPERMILPS = 1055;
-	public static final int X86_INS_VPERMPD = 1056;
-	public static final int X86_INS_VPERMPS = 1057;
-	public static final int X86_INS_VPERMQ = 1058;
-	public static final int X86_INS_VPERMT2D = 1059;
-	public static final int X86_INS_VPERMT2PD = 1060;
-	public static final int X86_INS_VPERMT2PS = 1061;
-	public static final int X86_INS_VPERMT2Q = 1062;
-	public static final int X86_INS_VPEXPANDD = 1063;
-	public static final int X86_INS_VPEXPANDQ = 1064;
-	public static final int X86_INS_VPEXTRB = 1065;
-	public static final int X86_INS_VPEXTRD = 1066;
-	public static final int X86_INS_VPEXTRQ = 1067;
-	public static final int X86_INS_VPEXTRW = 1068;
-	public static final int X86_INS_VPGATHERDD = 1069;
-	public static final int X86_INS_VPGATHERDQ = 1070;
-	public static final int X86_INS_VPGATHERQD = 1071;
-	public static final int X86_INS_VPGATHERQQ = 1072;
-	public static final int X86_INS_VPHADDBD = 1073;
-	public static final int X86_INS_VPHADDBQ = 1074;
-	public static final int X86_INS_VPHADDBW = 1075;
-	public static final int X86_INS_VPHADDDQ = 1076;
-	public static final int X86_INS_VPHADDD = 1077;
-	public static final int X86_INS_VPHADDSW = 1078;
-	public static final int X86_INS_VPHADDUBD = 1079;
-	public static final int X86_INS_VPHADDUBQ = 1080;
-	public static final int X86_INS_VPHADDUBW = 1081;
-	public static final int X86_INS_VPHADDUDQ = 1082;
-	public static final int X86_INS_VPHADDUWD = 1083;
-	public static final int X86_INS_VPHADDUWQ = 1084;
-	public static final int X86_INS_VPHADDWD = 1085;
-	public static final int X86_INS_VPHADDWQ = 1086;
-	public static final int X86_INS_VPHADDW = 1087;
-	public static final int X86_INS_VPHMINPOSUW = 1088;
-	public static final int X86_INS_VPHSUBBW = 1089;
-	public static final int X86_INS_VPHSUBDQ = 1090;
-	public static final int X86_INS_VPHSUBD = 1091;
-	public static final int X86_INS_VPHSUBSW = 1092;
-	public static final int X86_INS_VPHSUBWD = 1093;
-	public static final int X86_INS_VPHSUBW = 1094;
-	public static final int X86_INS_VPINSRB = 1095;
-	public static final int X86_INS_VPINSRD = 1096;
-	public static final int X86_INS_VPINSRQ = 1097;
-	public static final int X86_INS_VPINSRW = 1098;
-	public static final int X86_INS_VPLZCNTD = 1099;
-	public static final int X86_INS_VPLZCNTQ = 1100;
-	public static final int X86_INS_VPMACSDD = 1101;
-	public static final int X86_INS_VPMACSDQH = 1102;
-	public static final int X86_INS_VPMACSDQL = 1103;
-	public static final int X86_INS_VPMACSSDD = 1104;
-	public static final int X86_INS_VPMACSSDQH = 1105;
-	public static final int X86_INS_VPMACSSDQL = 1106;
-	public static final int X86_INS_VPMACSSWD = 1107;
-	public static final int X86_INS_VPMACSSWW = 1108;
-	public static final int X86_INS_VPMACSWD = 1109;
-	public static final int X86_INS_VPMACSWW = 1110;
-	public static final int X86_INS_VPMADCSSWD = 1111;
-	public static final int X86_INS_VPMADCSWD = 1112;
-	public static final int X86_INS_VPMADDUBSW = 1113;
-	public static final int X86_INS_VPMADDWD = 1114;
-	public static final int X86_INS_VPMASKMOVD = 1115;
-	public static final int X86_INS_VPMASKMOVQ = 1116;
-	public static final int X86_INS_VPMAXSB = 1117;
-	public static final int X86_INS_VPMAXSD = 1118;
-	public static final int X86_INS_VPMAXSQ = 1119;
-	public static final int X86_INS_VPMAXSW = 1120;
-	public static final int X86_INS_VPMAXUB = 1121;
-	public static final int X86_INS_VPMAXUD = 1122;
-	public static final int X86_INS_VPMAXUQ = 1123;
-	public static final int X86_INS_VPMAXUW = 1124;
-	public static final int X86_INS_VPMINSB = 1125;
-	public static final int X86_INS_VPMINSD = 1126;
-	public static final int X86_INS_VPMINSQ = 1127;
-	public static final int X86_INS_VPMINSW = 1128;
-	public static final int X86_INS_VPMINUB = 1129;
-	public static final int X86_INS_VPMINUD = 1130;
-	public static final int X86_INS_VPMINUQ = 1131;
-	public static final int X86_INS_VPMINUW = 1132;
-	public static final int X86_INS_VPMOVDB = 1133;
-	public static final int X86_INS_VPMOVDW = 1134;
-	public static final int X86_INS_VPMOVM2B = 1135;
-	public static final int X86_INS_VPMOVM2D = 1136;
-	public static final int X86_INS_VPMOVM2Q = 1137;
-	public static final int X86_INS_VPMOVM2W = 1138;
-	public static final int X86_INS_VPMOVMSKB = 1139;
-	public static final int X86_INS_VPMOVQB = 1140;
-	public static final int X86_INS_VPMOVQD = 1141;
-	public static final int X86_INS_VPMOVQW = 1142;
-	public static final int X86_INS_VPMOVSDB = 1143;
-	public static final int X86_INS_VPMOVSDW = 1144;
-	public static final int X86_INS_VPMOVSQB = 1145;
-	public static final int X86_INS_VPMOVSQD = 1146;
-	public static final int X86_INS_VPMOVSQW = 1147;
-	public static final int X86_INS_VPMOVSXBD = 1148;
-	public static final int X86_INS_VPMOVSXBQ = 1149;
-	public static final int X86_INS_VPMOVSXBW = 1150;
-	public static final int X86_INS_VPMOVSXDQ = 1151;
-	public static final int X86_INS_VPMOVSXWD = 1152;
-	public static final int X86_INS_VPMOVSXWQ = 1153;
-	public static final int X86_INS_VPMOVUSDB = 1154;
-	public static final int X86_INS_VPMOVUSDW = 1155;
-	public static final int X86_INS_VPMOVUSQB = 1156;
-	public static final int X86_INS_VPMOVUSQD = 1157;
-	public static final int X86_INS_VPMOVUSQW = 1158;
-	public static final int X86_INS_VPMOVZXBD = 1159;
-	public static final int X86_INS_VPMOVZXBQ = 1160;
-	public static final int X86_INS_VPMOVZXBW = 1161;
-	public static final int X86_INS_VPMOVZXDQ = 1162;
-	public static final int X86_INS_VPMOVZXWD = 1163;
-	public static final int X86_INS_VPMOVZXWQ = 1164;
-	public static final int X86_INS_VPMULDQ = 1165;
-	public static final int X86_INS_VPMULHRSW = 1166;
-	public static final int X86_INS_VPMULHUW = 1167;
-	public static final int X86_INS_VPMULHW = 1168;
-	public static final int X86_INS_VPMULLD = 1169;
-	public static final int X86_INS_VPMULLQ = 1170;
-	public static final int X86_INS_VPMULLW = 1171;
-	public static final int X86_INS_VPMULUDQ = 1172;
-	public static final int X86_INS_VPORD = 1173;
-	public static final int X86_INS_VPORQ = 1174;
-	public static final int X86_INS_VPOR = 1175;
-	public static final int X86_INS_VPPERM = 1176;
-	public static final int X86_INS_VPROTB = 1177;
-	public static final int X86_INS_VPROTD = 1178;
-	public static final int X86_INS_VPROTQ = 1179;
-	public static final int X86_INS_VPROTW = 1180;
-	public static final int X86_INS_VPSADBW = 1181;
-	public static final int X86_INS_VPSCATTERDD = 1182;
-	public static final int X86_INS_VPSCATTERDQ = 1183;
-	public static final int X86_INS_VPSCATTERQD = 1184;
-	public static final int X86_INS_VPSCATTERQQ = 1185;
-	public static final int X86_INS_VPSHAB = 1186;
-	public static final int X86_INS_VPSHAD = 1187;
-	public static final int X86_INS_VPSHAQ = 1188;
-	public static final int X86_INS_VPSHAW = 1189;
-	public static final int X86_INS_VPSHLB = 1190;
-	public static final int X86_INS_VPSHLD = 1191;
-	public static final int X86_INS_VPSHLQ = 1192;
-	public static final int X86_INS_VPSHLW = 1193;
-	public static final int X86_INS_VPSHUFB = 1194;
-	public static final int X86_INS_VPSHUFD = 1195;
-	public static final int X86_INS_VPSHUFHW = 1196;
-	public static final int X86_INS_VPSHUFLW = 1197;
-	public static final int X86_INS_VPSIGNB = 1198;
-	public static final int X86_INS_VPSIGND = 1199;
-	public static final int X86_INS_VPSIGNW = 1200;
-	public static final int X86_INS_VPSLLDQ = 1201;
-	public static final int X86_INS_VPSLLD = 1202;
-	public static final int X86_INS_VPSLLQ = 1203;
-	public static final int X86_INS_VPSLLVD = 1204;
-	public static final int X86_INS_VPSLLVQ = 1205;
-	public static final int X86_INS_VPSLLW = 1206;
-	public static final int X86_INS_VPSRAD = 1207;
-	public static final int X86_INS_VPSRAQ = 1208;
-	public static final int X86_INS_VPSRAVD = 1209;
-	public static final int X86_INS_VPSRAVQ = 1210;
-	public static final int X86_INS_VPSRAW = 1211;
-	public static final int X86_INS_VPSRLDQ = 1212;
-	public static final int X86_INS_VPSRLD = 1213;
-	public static final int X86_INS_VPSRLQ = 1214;
-	public static final int X86_INS_VPSRLVD = 1215;
-	public static final int X86_INS_VPSRLVQ = 1216;
-	public static final int X86_INS_VPSRLW = 1217;
-	public static final int X86_INS_VPSUBB = 1218;
-	public static final int X86_INS_VPSUBD = 1219;
-	public static final int X86_INS_VPSUBQ = 1220;
-	public static final int X86_INS_VPSUBSB = 1221;
-	public static final int X86_INS_VPSUBSW = 1222;
-	public static final int X86_INS_VPSUBUSB = 1223;
-	public static final int X86_INS_VPSUBUSW = 1224;
-	public static final int X86_INS_VPSUBW = 1225;
-	public static final int X86_INS_VPTESTMD = 1226;
-	public static final int X86_INS_VPTESTMQ = 1227;
-	public static final int X86_INS_VPTESTNMD = 1228;
-	public static final int X86_INS_VPTESTNMQ = 1229;
-	public static final int X86_INS_VPTEST = 1230;
-	public static final int X86_INS_VPUNPCKHBW = 1231;
-	public static final int X86_INS_VPUNPCKHDQ = 1232;
-	public static final int X86_INS_VPUNPCKHQDQ = 1233;
-	public static final int X86_INS_VPUNPCKHWD = 1234;
-	public static final int X86_INS_VPUNPCKLBW = 1235;
-	public static final int X86_INS_VPUNPCKLDQ = 1236;
-	public static final int X86_INS_VPUNPCKLQDQ = 1237;
-	public static final int X86_INS_VPUNPCKLWD = 1238;
-	public static final int X86_INS_VPXORD = 1239;
-	public static final int X86_INS_VPXORQ = 1240;
-	public static final int X86_INS_VPXOR = 1241;
-	public static final int X86_INS_VRCP14PD = 1242;
-	public static final int X86_INS_VRCP14PS = 1243;
-	public static final int X86_INS_VRCP14SD = 1244;
-	public static final int X86_INS_VRCP14SS = 1245;
-	public static final int X86_INS_VRCP28PD = 1246;
-	public static final int X86_INS_VRCP28PS = 1247;
-	public static final int X86_INS_VRCP28SD = 1248;
-	public static final int X86_INS_VRCP28SS = 1249;
-	public static final int X86_INS_VRCPPS = 1250;
-	public static final int X86_INS_VRCPSS = 1251;
-	public static final int X86_INS_VRNDSCALEPD = 1252;
-	public static final int X86_INS_VRNDSCALEPS = 1253;
-	public static final int X86_INS_VRNDSCALESD = 1254;
-	public static final int X86_INS_VRNDSCALESS = 1255;
-	public static final int X86_INS_VROUNDPD = 1256;
-	public static final int X86_INS_VROUNDPS = 1257;
-	public static final int X86_INS_VROUNDSD = 1258;
-	public static final int X86_INS_VROUNDSS = 1259;
-	public static final int X86_INS_VRSQRT14PD = 1260;
-	public static final int X86_INS_VRSQRT14PS = 1261;
-	public static final int X86_INS_VRSQRT14SD = 1262;
-	public static final int X86_INS_VRSQRT14SS = 1263;
-	public static final int X86_INS_VRSQRT28PD = 1264;
-	public static final int X86_INS_VRSQRT28PS = 1265;
-	public static final int X86_INS_VRSQRT28SD = 1266;
-	public static final int X86_INS_VRSQRT28SS = 1267;
-	public static final int X86_INS_VRSQRTPS = 1268;
-	public static final int X86_INS_VRSQRTSS = 1269;
-	public static final int X86_INS_VSCATTERDPD = 1270;
-	public static final int X86_INS_VSCATTERDPS = 1271;
-	public static final int X86_INS_VSCATTERPF0DPD = 1272;
-	public static final int X86_INS_VSCATTERPF0DPS = 1273;
-	public static final int X86_INS_VSCATTERPF0QPD = 1274;
-	public static final int X86_INS_VSCATTERPF0QPS = 1275;
-	public static final int X86_INS_VSCATTERPF1DPD = 1276;
-	public static final int X86_INS_VSCATTERPF1DPS = 1277;
-	public static final int X86_INS_VSCATTERPF1QPD = 1278;
-	public static final int X86_INS_VSCATTERPF1QPS = 1279;
-	public static final int X86_INS_VSCATTERQPD = 1280;
-	public static final int X86_INS_VSCATTERQPS = 1281;
-	public static final int X86_INS_VSHUFPD = 1282;
-	public static final int X86_INS_VSHUFPS = 1283;
-	public static final int X86_INS_VSQRTPD = 1284;
-	public static final int X86_INS_VSQRTPS = 1285;
-	public static final int X86_INS_VSQRTSD = 1286;
-	public static final int X86_INS_VSQRTSS = 1287;
-	public static final int X86_INS_VSTMXCSR = 1288;
-	public static final int X86_INS_VSUBPD = 1289;
-	public static final int X86_INS_VSUBPS = 1290;
-	public static final int X86_INS_VSUBSD = 1291;
-	public static final int X86_INS_VSUBSS = 1292;
-	public static final int X86_INS_VTESTPD = 1293;
-	public static final int X86_INS_VTESTPS = 1294;
-	public static final int X86_INS_VUNPCKHPD = 1295;
-	public static final int X86_INS_VUNPCKHPS = 1296;
-	public static final int X86_INS_VUNPCKLPD = 1297;
-	public static final int X86_INS_VUNPCKLPS = 1298;
-	public static final int X86_INS_VZEROALL = 1299;
-	public static final int X86_INS_VZEROUPPER = 1300;
-	public static final int X86_INS_WAIT = 1301;
-	public static final int X86_INS_WBINVD = 1302;
-	public static final int X86_INS_WRFSBASE = 1303;
-	public static final int X86_INS_WRGSBASE = 1304;
-	public static final int X86_INS_WRMSR = 1305;
-	public static final int X86_INS_XABORT = 1306;
-	public static final int X86_INS_XACQUIRE = 1307;
-	public static final int X86_INS_XBEGIN = 1308;
-	public static final int X86_INS_XCHG = 1309;
-	public static final int X86_INS_XCRYPTCBC = 1310;
-	public static final int X86_INS_XCRYPTCFB = 1311;
-	public static final int X86_INS_XCRYPTCTR = 1312;
-	public static final int X86_INS_XCRYPTECB = 1313;
-	public static final int X86_INS_XCRYPTOFB = 1314;
-	public static final int X86_INS_XEND = 1315;
-	public static final int X86_INS_XGETBV = 1316;
-	public static final int X86_INS_XLATB = 1317;
-	public static final int X86_INS_XRELEASE = 1318;
-	public static final int X86_INS_XRSTOR = 1319;
-	public static final int X86_INS_XRSTOR64 = 1320;
-	public static final int X86_INS_XRSTORS = 1321;
-	public static final int X86_INS_XRSTORS64 = 1322;
-	public static final int X86_INS_XSAVE = 1323;
-	public static final int X86_INS_XSAVE64 = 1324;
-	public static final int X86_INS_XSAVEC = 1325;
-	public static final int X86_INS_XSAVEC64 = 1326;
-	public static final int X86_INS_XSAVEOPT = 1327;
-	public static final int X86_INS_XSAVEOPT64 = 1328;
-	public static final int X86_INS_XSAVES = 1329;
-	public static final int X86_INS_XSAVES64 = 1330;
-	public static final int X86_INS_XSETBV = 1331;
-	public static final int X86_INS_XSHA1 = 1332;
-	public static final int X86_INS_XSHA256 = 1333;
-	public static final int X86_INS_XSTORE = 1334;
-	public static final int X86_INS_XTEST = 1335;
-	public static final int X86_INS_FDISI8087_NOP = 1336;
-	public static final int X86_INS_FENI8087_NOP = 1337;
-	public static final int X86_INS_ENDING = 1338;
+	public static final int X86_INS_CMPSB = 96;
+	public static final int X86_INS_CMPSQ = 97;
+	public static final int X86_INS_CMPSW = 98;
+	public static final int X86_INS_CMPXCHG16B = 99;
+	public static final int X86_INS_CMPXCHG = 100;
+	public static final int X86_INS_CMPXCHG8B = 101;
+	public static final int X86_INS_COMISD = 102;
+	public static final int X86_INS_COMISS = 103;
+	public static final int X86_INS_FCOMP = 104;
+	public static final int X86_INS_FCOMPI = 105;
+	public static final int X86_INS_FCOMI = 106;
+	public static final int X86_INS_FCOM = 107;
+	public static final int X86_INS_FCOS = 108;
+	public static final int X86_INS_CPUID = 109;
+	public static final int X86_INS_CQO = 110;
+	public static final int X86_INS_CRC32 = 111;
+	public static final int X86_INS_CVTDQ2PD = 112;
+	public static final int X86_INS_CVTDQ2PS = 113;
+	public static final int X86_INS_CVTPD2DQ = 114;
+	public static final int X86_INS_CVTPD2PS = 115;
+	public static final int X86_INS_CVTPS2DQ = 116;
+	public static final int X86_INS_CVTPS2PD = 117;
+	public static final int X86_INS_CVTSD2SI = 118;
+	public static final int X86_INS_CVTSD2SS = 119;
+	public static final int X86_INS_CVTSI2SD = 120;
+	public static final int X86_INS_CVTSI2SS = 121;
+	public static final int X86_INS_CVTSS2SD = 122;
+	public static final int X86_INS_CVTSS2SI = 123;
+	public static final int X86_INS_CVTTPD2DQ = 124;
+	public static final int X86_INS_CVTTPS2DQ = 125;
+	public static final int X86_INS_CVTTSD2SI = 126;
+	public static final int X86_INS_CVTTSS2SI = 127;
+	public static final int X86_INS_CWD = 128;
+	public static final int X86_INS_CWDE = 129;
+	public static final int X86_INS_DAA = 130;
+	public static final int X86_INS_DAS = 131;
+	public static final int X86_INS_DATA16 = 132;
+	public static final int X86_INS_DEC = 133;
+	public static final int X86_INS_DIV = 134;
+	public static final int X86_INS_DIVPD = 135;
+	public static final int X86_INS_DIVPS = 136;
+	public static final int X86_INS_FDIVR = 137;
+	public static final int X86_INS_FIDIVR = 138;
+	public static final int X86_INS_FDIVRP = 139;
+	public static final int X86_INS_DIVSD = 140;
+	public static final int X86_INS_DIVSS = 141;
+	public static final int X86_INS_FDIV = 142;
+	public static final int X86_INS_FIDIV = 143;
+	public static final int X86_INS_FDIVP = 144;
+	public static final int X86_INS_DPPD = 145;
+	public static final int X86_INS_DPPS = 146;
+	public static final int X86_INS_RET = 147;
+	public static final int X86_INS_ENCLS = 148;
+	public static final int X86_INS_ENCLU = 149;
+	public static final int X86_INS_ENTER = 150;
+	public static final int X86_INS_EXTRACTPS = 151;
+	public static final int X86_INS_EXTRQ = 152;
+	public static final int X86_INS_F2XM1 = 153;
+	public static final int X86_INS_LCALL = 154;
+	public static final int X86_INS_LJMP = 155;
+	public static final int X86_INS_FBLD = 156;
+	public static final int X86_INS_FBSTP = 157;
+	public static final int X86_INS_FCOMPP = 158;
+	public static final int X86_INS_FDECSTP = 159;
+	public static final int X86_INS_FEMMS = 160;
+	public static final int X86_INS_FFREE = 161;
+	public static final int X86_INS_FICOM = 162;
+	public static final int X86_INS_FICOMP = 163;
+	public static final int X86_INS_FINCSTP = 164;
+	public static final int X86_INS_FLDCW = 165;
+	public static final int X86_INS_FLDENV = 166;
+	public static final int X86_INS_FLDL2E = 167;
+	public static final int X86_INS_FLDL2T = 168;
+	public static final int X86_INS_FLDLG2 = 169;
+	public static final int X86_INS_FLDLN2 = 170;
+	public static final int X86_INS_FLDPI = 171;
+	public static final int X86_INS_FNCLEX = 172;
+	public static final int X86_INS_FNINIT = 173;
+	public static final int X86_INS_FNOP = 174;
+	public static final int X86_INS_FNSTCW = 175;
+	public static final int X86_INS_FNSTSW = 176;
+	public static final int X86_INS_FPATAN = 177;
+	public static final int X86_INS_FPREM = 178;
+	public static final int X86_INS_FPREM1 = 179;
+	public static final int X86_INS_FPTAN = 180;
+	public static final int X86_INS_FFREEP = 181;
+	public static final int X86_INS_FRNDINT = 182;
+	public static final int X86_INS_FRSTOR = 183;
+	public static final int X86_INS_FNSAVE = 184;
+	public static final int X86_INS_FSCALE = 185;
+	public static final int X86_INS_FSETPM = 186;
+	public static final int X86_INS_FSINCOS = 187;
+	public static final int X86_INS_FNSTENV = 188;
+	public static final int X86_INS_FXAM = 189;
+	public static final int X86_INS_FXRSTOR = 190;
+	public static final int X86_INS_FXRSTOR64 = 191;
+	public static final int X86_INS_FXSAVE = 192;
+	public static final int X86_INS_FXSAVE64 = 193;
+	public static final int X86_INS_FXTRACT = 194;
+	public static final int X86_INS_FYL2X = 195;
+	public static final int X86_INS_FYL2XP1 = 196;
+	public static final int X86_INS_MOVAPD = 197;
+	public static final int X86_INS_MOVAPS = 198;
+	public static final int X86_INS_ORPD = 199;
+	public static final int X86_INS_ORPS = 200;
+	public static final int X86_INS_VMOVAPD = 201;
+	public static final int X86_INS_VMOVAPS = 202;
+	public static final int X86_INS_XORPD = 203;
+	public static final int X86_INS_XORPS = 204;
+	public static final int X86_INS_GETSEC = 205;
+	public static final int X86_INS_HADDPD = 206;
+	public static final int X86_INS_HADDPS = 207;
+	public static final int X86_INS_HLT = 208;
+	public static final int X86_INS_HSUBPD = 209;
+	public static final int X86_INS_HSUBPS = 210;
+	public static final int X86_INS_IDIV = 211;
+	public static final int X86_INS_FILD = 212;
+	public static final int X86_INS_IMUL = 213;
+	public static final int X86_INS_IN = 214;
+	public static final int X86_INS_INC = 215;
+	public static final int X86_INS_INSB = 216;
+	public static final int X86_INS_INSERTPS = 217;
+	public static final int X86_INS_INSERTQ = 218;
+	public static final int X86_INS_INSD = 219;
+	public static final int X86_INS_INSW = 220;
+	public static final int X86_INS_INT = 221;
+	public static final int X86_INS_INT1 = 222;
+	public static final int X86_INS_INT3 = 223;
+	public static final int X86_INS_INTO = 224;
+	public static final int X86_INS_INVD = 225;
+	public static final int X86_INS_INVEPT = 226;
+	public static final int X86_INS_INVLPG = 227;
+	public static final int X86_INS_INVLPGA = 228;
+	public static final int X86_INS_INVPCID = 229;
+	public static final int X86_INS_INVVPID = 230;
+	public static final int X86_INS_IRET = 231;
+	public static final int X86_INS_IRETD = 232;
+	public static final int X86_INS_IRETQ = 233;
+	public static final int X86_INS_FISTTP = 234;
+	public static final int X86_INS_FIST = 235;
+	public static final int X86_INS_FISTP = 236;
+	public static final int X86_INS_UCOMISD = 237;
+	public static final int X86_INS_UCOMISS = 238;
+	public static final int X86_INS_VCOMISD = 239;
+	public static final int X86_INS_VCOMISS = 240;
+	public static final int X86_INS_VCVTSD2SS = 241;
+	public static final int X86_INS_VCVTSI2SD = 242;
+	public static final int X86_INS_VCVTSI2SS = 243;
+	public static final int X86_INS_VCVTSS2SD = 244;
+	public static final int X86_INS_VCVTTSD2SI = 245;
+	public static final int X86_INS_VCVTTSD2USI = 246;
+	public static final int X86_INS_VCVTTSS2SI = 247;
+	public static final int X86_INS_VCVTTSS2USI = 248;
+	public static final int X86_INS_VCVTUSI2SD = 249;
+	public static final int X86_INS_VCVTUSI2SS = 250;
+	public static final int X86_INS_VUCOMISD = 251;
+	public static final int X86_INS_VUCOMISS = 252;
+	public static final int X86_INS_JAE = 253;
+	public static final int X86_INS_JA = 254;
+	public static final int X86_INS_JBE = 255;
+	public static final int X86_INS_JB = 256;
+	public static final int X86_INS_JCXZ = 257;
+	public static final int X86_INS_JECXZ = 258;
+	public static final int X86_INS_JE = 259;
+	public static final int X86_INS_JGE = 260;
+	public static final int X86_INS_JG = 261;
+	public static final int X86_INS_JLE = 262;
+	public static final int X86_INS_JL = 263;
+	public static final int X86_INS_JMP = 264;
+	public static final int X86_INS_JNE = 265;
+	public static final int X86_INS_JNO = 266;
+	public static final int X86_INS_JNP = 267;
+	public static final int X86_INS_JNS = 268;
+	public static final int X86_INS_JO = 269;
+	public static final int X86_INS_JP = 270;
+	public static final int X86_INS_JRCXZ = 271;
+	public static final int X86_INS_JS = 272;
+	public static final int X86_INS_KANDB = 273;
+	public static final int X86_INS_KANDD = 274;
+	public static final int X86_INS_KANDNB = 275;
+	public static final int X86_INS_KANDND = 276;
+	public static final int X86_INS_KANDNQ = 277;
+	public static final int X86_INS_KANDNW = 278;
+	public static final int X86_INS_KANDQ = 279;
+	public static final int X86_INS_KANDW = 280;
+	public static final int X86_INS_KMOVB = 281;
+	public static final int X86_INS_KMOVD = 282;
+	public static final int X86_INS_KMOVQ = 283;
+	public static final int X86_INS_KMOVW = 284;
+	public static final int X86_INS_KNOTB = 285;
+	public static final int X86_INS_KNOTD = 286;
+	public static final int X86_INS_KNOTQ = 287;
+	public static final int X86_INS_KNOTW = 288;
+	public static final int X86_INS_KORB = 289;
+	public static final int X86_INS_KORD = 290;
+	public static final int X86_INS_KORQ = 291;
+	public static final int X86_INS_KORTESTB = 292;
+	public static final int X86_INS_KORTESTD = 293;
+	public static final int X86_INS_KORTESTQ = 294;
+	public static final int X86_INS_KORTESTW = 295;
+	public static final int X86_INS_KORW = 296;
+	public static final int X86_INS_KSHIFTLB = 297;
+	public static final int X86_INS_KSHIFTLD = 298;
+	public static final int X86_INS_KSHIFTLQ = 299;
+	public static final int X86_INS_KSHIFTLW = 300;
+	public static final int X86_INS_KSHIFTRB = 301;
+	public static final int X86_INS_KSHIFTRD = 302;
+	public static final int X86_INS_KSHIFTRQ = 303;
+	public static final int X86_INS_KSHIFTRW = 304;
+	public static final int X86_INS_KUNPCKBW = 305;
+	public static final int X86_INS_KXNORB = 306;
+	public static final int X86_INS_KXNORD = 307;
+	public static final int X86_INS_KXNORQ = 308;
+	public static final int X86_INS_KXNORW = 309;
+	public static final int X86_INS_KXORB = 310;
+	public static final int X86_INS_KXORD = 311;
+	public static final int X86_INS_KXORQ = 312;
+	public static final int X86_INS_KXORW = 313;
+	public static final int X86_INS_LAHF = 314;
+	public static final int X86_INS_LAR = 315;
+	public static final int X86_INS_LDDQU = 316;
+	public static final int X86_INS_LDMXCSR = 317;
+	public static final int X86_INS_LDS = 318;
+	public static final int X86_INS_FLDZ = 319;
+	public static final int X86_INS_FLD1 = 320;
+	public static final int X86_INS_FLD = 321;
+	public static final int X86_INS_LEA = 322;
+	public static final int X86_INS_LEAVE = 323;
+	public static final int X86_INS_LES = 324;
+	public static final int X86_INS_LFENCE = 325;
+	public static final int X86_INS_LFS = 326;
+	public static final int X86_INS_LGDT = 327;
+	public static final int X86_INS_LGS = 328;
+	public static final int X86_INS_LIDT = 329;
+	public static final int X86_INS_LLDT = 330;
+	public static final int X86_INS_LMSW = 331;
+	public static final int X86_INS_OR = 332;
+	public static final int X86_INS_SUB = 333;
+	public static final int X86_INS_XOR = 334;
+	public static final int X86_INS_LODSB = 335;
+	public static final int X86_INS_LODSD = 336;
+	public static final int X86_INS_LODSQ = 337;
+	public static final int X86_INS_LODSW = 338;
+	public static final int X86_INS_LOOP = 339;
+	public static final int X86_INS_LOOPE = 340;
+	public static final int X86_INS_LOOPNE = 341;
+	public static final int X86_INS_RETF = 342;
+	public static final int X86_INS_RETFQ = 343;
+	public static final int X86_INS_LSL = 344;
+	public static final int X86_INS_LSS = 345;
+	public static final int X86_INS_LTR = 346;
+	public static final int X86_INS_XADD = 347;
+	public static final int X86_INS_LZCNT = 348;
+	public static final int X86_INS_MASKMOVDQU = 349;
+	public static final int X86_INS_MAXPD = 350;
+	public static final int X86_INS_MAXPS = 351;
+	public static final int X86_INS_MAXSD = 352;
+	public static final int X86_INS_MAXSS = 353;
+	public static final int X86_INS_MFENCE = 354;
+	public static final int X86_INS_MINPD = 355;
+	public static final int X86_INS_MINPS = 356;
+	public static final int X86_INS_MINSD = 357;
+	public static final int X86_INS_MINSS = 358;
+	public static final int X86_INS_CVTPD2PI = 359;
+	public static final int X86_INS_CVTPI2PD = 360;
+	public static final int X86_INS_CVTPI2PS = 361;
+	public static final int X86_INS_CVTPS2PI = 362;
+	public static final int X86_INS_CVTTPD2PI = 363;
+	public static final int X86_INS_CVTTPS2PI = 364;
+	public static final int X86_INS_EMMS = 365;
+	public static final int X86_INS_MASKMOVQ = 366;
+	public static final int X86_INS_MOVD = 367;
+	public static final int X86_INS_MOVDQ2Q = 368;
+	public static final int X86_INS_MOVNTQ = 369;
+	public static final int X86_INS_MOVQ2DQ = 370;
+	public static final int X86_INS_MOVQ = 371;
+	public static final int X86_INS_PABSB = 372;
+	public static final int X86_INS_PABSD = 373;
+	public static final int X86_INS_PABSW = 374;
+	public static final int X86_INS_PACKSSDW = 375;
+	public static final int X86_INS_PACKSSWB = 376;
+	public static final int X86_INS_PACKUSWB = 377;
+	public static final int X86_INS_PADDB = 378;
+	public static final int X86_INS_PADDD = 379;
+	public static final int X86_INS_PADDQ = 380;
+	public static final int X86_INS_PADDSB = 381;
+	public static final int X86_INS_PADDSW = 382;
+	public static final int X86_INS_PADDUSB = 383;
+	public static final int X86_INS_PADDUSW = 384;
+	public static final int X86_INS_PADDW = 385;
+	public static final int X86_INS_PALIGNR = 386;
+	public static final int X86_INS_PANDN = 387;
+	public static final int X86_INS_PAND = 388;
+	public static final int X86_INS_PAVGB = 389;
+	public static final int X86_INS_PAVGW = 390;
+	public static final int X86_INS_PCMPEQB = 391;
+	public static final int X86_INS_PCMPEQD = 392;
+	public static final int X86_INS_PCMPEQW = 393;
+	public static final int X86_INS_PCMPGTB = 394;
+	public static final int X86_INS_PCMPGTD = 395;
+	public static final int X86_INS_PCMPGTW = 396;
+	public static final int X86_INS_PEXTRW = 397;
+	public static final int X86_INS_PHADDSW = 398;
+	public static final int X86_INS_PHADDW = 399;
+	public static final int X86_INS_PHADDD = 400;
+	public static final int X86_INS_PHSUBD = 401;
+	public static final int X86_INS_PHSUBSW = 402;
+	public static final int X86_INS_PHSUBW = 403;
+	public static final int X86_INS_PINSRW = 404;
+	public static final int X86_INS_PMADDUBSW = 405;
+	public static final int X86_INS_PMADDWD = 406;
+	public static final int X86_INS_PMAXSW = 407;
+	public static final int X86_INS_PMAXUB = 408;
+	public static final int X86_INS_PMINSW = 409;
+	public static final int X86_INS_PMINUB = 410;
+	public static final int X86_INS_PMOVMSKB = 411;
+	public static final int X86_INS_PMULHRSW = 412;
+	public static final int X86_INS_PMULHUW = 413;
+	public static final int X86_INS_PMULHW = 414;
+	public static final int X86_INS_PMULLW = 415;
+	public static final int X86_INS_PMULUDQ = 416;
+	public static final int X86_INS_POR = 417;
+	public static final int X86_INS_PSADBW = 418;
+	public static final int X86_INS_PSHUFB = 419;
+	public static final int X86_INS_PSHUFW = 420;
+	public static final int X86_INS_PSIGNB = 421;
+	public static final int X86_INS_PSIGND = 422;
+	public static final int X86_INS_PSIGNW = 423;
+	public static final int X86_INS_PSLLD = 424;
+	public static final int X86_INS_PSLLQ = 425;
+	public static final int X86_INS_PSLLW = 426;
+	public static final int X86_INS_PSRAD = 427;
+	public static final int X86_INS_PSRAW = 428;
+	public static final int X86_INS_PSRLD = 429;
+	public static final int X86_INS_PSRLQ = 430;
+	public static final int X86_INS_PSRLW = 431;
+	public static final int X86_INS_PSUBB = 432;
+	public static final int X86_INS_PSUBD = 433;
+	public static final int X86_INS_PSUBQ = 434;
+	public static final int X86_INS_PSUBSB = 435;
+	public static final int X86_INS_PSUBSW = 436;
+	public static final int X86_INS_PSUBUSB = 437;
+	public static final int X86_INS_PSUBUSW = 438;
+	public static final int X86_INS_PSUBW = 439;
+	public static final int X86_INS_PUNPCKHBW = 440;
+	public static final int X86_INS_PUNPCKHDQ = 441;
+	public static final int X86_INS_PUNPCKHWD = 442;
+	public static final int X86_INS_PUNPCKLBW = 443;
+	public static final int X86_INS_PUNPCKLDQ = 444;
+	public static final int X86_INS_PUNPCKLWD = 445;
+	public static final int X86_INS_PXOR = 446;
+	public static final int X86_INS_MONITOR = 447;
+	public static final int X86_INS_MONTMUL = 448;
+	public static final int X86_INS_MOV = 449;
+	public static final int X86_INS_MOVABS = 450;
+	public static final int X86_INS_MOVBE = 451;
+	public static final int X86_INS_MOVDDUP = 452;
+	public static final int X86_INS_MOVDQA = 453;
+	public static final int X86_INS_MOVDQU = 454;
+	public static final int X86_INS_MOVHLPS = 455;
+	public static final int X86_INS_MOVHPD = 456;
+	public static final int X86_INS_MOVHPS = 457;
+	public static final int X86_INS_MOVLHPS = 458;
+	public static final int X86_INS_MOVLPD = 459;
+	public static final int X86_INS_MOVLPS = 460;
+	public static final int X86_INS_MOVMSKPD = 461;
+	public static final int X86_INS_MOVMSKPS = 462;
+	public static final int X86_INS_MOVNTDQA = 463;
+	public static final int X86_INS_MOVNTDQ = 464;
+	public static final int X86_INS_MOVNTI = 465;
+	public static final int X86_INS_MOVNTPD = 466;
+	public static final int X86_INS_MOVNTPS = 467;
+	public static final int X86_INS_MOVNTSD = 468;
+	public static final int X86_INS_MOVNTSS = 469;
+	public static final int X86_INS_MOVSB = 470;
+	public static final int X86_INS_MOVSD = 471;
+	public static final int X86_INS_MOVSHDUP = 472;
+	public static final int X86_INS_MOVSLDUP = 473;
+	public static final int X86_INS_MOVSQ = 474;
+	public static final int X86_INS_MOVSS = 475;
+	public static final int X86_INS_MOVSW = 476;
+	public static final int X86_INS_MOVSX = 477;
+	public static final int X86_INS_MOVSXD = 478;
+	public static final int X86_INS_MOVUPD = 479;
+	public static final int X86_INS_MOVUPS = 480;
+	public static final int X86_INS_MOVZX = 481;
+	public static final int X86_INS_MPSADBW = 482;
+	public static final int X86_INS_MUL = 483;
+	public static final int X86_INS_MULPD = 484;
+	public static final int X86_INS_MULPS = 485;
+	public static final int X86_INS_MULSD = 486;
+	public static final int X86_INS_MULSS = 487;
+	public static final int X86_INS_MULX = 488;
+	public static final int X86_INS_FMUL = 489;
+	public static final int X86_INS_FIMUL = 490;
+	public static final int X86_INS_FMULP = 491;
+	public static final int X86_INS_MWAIT = 492;
+	public static final int X86_INS_NEG = 493;
+	public static final int X86_INS_NOP = 494;
+	public static final int X86_INS_NOT = 495;
+	public static final int X86_INS_OUT = 496;
+	public static final int X86_INS_OUTSB = 497;
+	public static final int X86_INS_OUTSD = 498;
+	public static final int X86_INS_OUTSW = 499;
+	public static final int X86_INS_PACKUSDW = 500;
+	public static final int X86_INS_PAUSE = 501;
+	public static final int X86_INS_PAVGUSB = 502;
+	public static final int X86_INS_PBLENDVB = 503;
+	public static final int X86_INS_PBLENDW = 504;
+	public static final int X86_INS_PCLMULQDQ = 505;
+	public static final int X86_INS_PCMPEQQ = 506;
+	public static final int X86_INS_PCMPESTRI = 507;
+	public static final int X86_INS_PCMPESTRM = 508;
+	public static final int X86_INS_PCMPGTQ = 509;
+	public static final int X86_INS_PCMPISTRI = 510;
+	public static final int X86_INS_PCMPISTRM = 511;
+	public static final int X86_INS_PCOMMIT = 512;
+	public static final int X86_INS_PDEP = 513;
+	public static final int X86_INS_PEXT = 514;
+	public static final int X86_INS_PEXTRB = 515;
+	public static final int X86_INS_PEXTRD = 516;
+	public static final int X86_INS_PEXTRQ = 517;
+	public static final int X86_INS_PF2ID = 518;
+	public static final int X86_INS_PF2IW = 519;
+	public static final int X86_INS_PFACC = 520;
+	public static final int X86_INS_PFADD = 521;
+	public static final int X86_INS_PFCMPEQ = 522;
+	public static final int X86_INS_PFCMPGE = 523;
+	public static final int X86_INS_PFCMPGT = 524;
+	public static final int X86_INS_PFMAX = 525;
+	public static final int X86_INS_PFMIN = 526;
+	public static final int X86_INS_PFMUL = 527;
+	public static final int X86_INS_PFNACC = 528;
+	public static final int X86_INS_PFPNACC = 529;
+	public static final int X86_INS_PFRCPIT1 = 530;
+	public static final int X86_INS_PFRCPIT2 = 531;
+	public static final int X86_INS_PFRCP = 532;
+	public static final int X86_INS_PFRSQIT1 = 533;
+	public static final int X86_INS_PFRSQRT = 534;
+	public static final int X86_INS_PFSUBR = 535;
+	public static final int X86_INS_PFSUB = 536;
+	public static final int X86_INS_PHMINPOSUW = 537;
+	public static final int X86_INS_PI2FD = 538;
+	public static final int X86_INS_PI2FW = 539;
+	public static final int X86_INS_PINSRB = 540;
+	public static final int X86_INS_PINSRD = 541;
+	public static final int X86_INS_PINSRQ = 542;
+	public static final int X86_INS_PMAXSB = 543;
+	public static final int X86_INS_PMAXSD = 544;
+	public static final int X86_INS_PMAXUD = 545;
+	public static final int X86_INS_PMAXUW = 546;
+	public static final int X86_INS_PMINSB = 547;
+	public static final int X86_INS_PMINSD = 548;
+	public static final int X86_INS_PMINUD = 549;
+	public static final int X86_INS_PMINUW = 550;
+	public static final int X86_INS_PMOVSXBD = 551;
+	public static final int X86_INS_PMOVSXBQ = 552;
+	public static final int X86_INS_PMOVSXBW = 553;
+	public static final int X86_INS_PMOVSXDQ = 554;
+	public static final int X86_INS_PMOVSXWD = 555;
+	public static final int X86_INS_PMOVSXWQ = 556;
+	public static final int X86_INS_PMOVZXBD = 557;
+	public static final int X86_INS_PMOVZXBQ = 558;
+	public static final int X86_INS_PMOVZXBW = 559;
+	public static final int X86_INS_PMOVZXDQ = 560;
+	public static final int X86_INS_PMOVZXWD = 561;
+	public static final int X86_INS_PMOVZXWQ = 562;
+	public static final int X86_INS_PMULDQ = 563;
+	public static final int X86_INS_PMULHRW = 564;
+	public static final int X86_INS_PMULLD = 565;
+	public static final int X86_INS_POP = 566;
+	public static final int X86_INS_POPAW = 567;
+	public static final int X86_INS_POPAL = 568;
+	public static final int X86_INS_POPCNT = 569;
+	public static final int X86_INS_POPF = 570;
+	public static final int X86_INS_POPFD = 571;
+	public static final int X86_INS_POPFQ = 572;
+	public static final int X86_INS_PREFETCH = 573;
+	public static final int X86_INS_PREFETCHNTA = 574;
+	public static final int X86_INS_PREFETCHT0 = 575;
+	public static final int X86_INS_PREFETCHT1 = 576;
+	public static final int X86_INS_PREFETCHT2 = 577;
+	public static final int X86_INS_PREFETCHW = 578;
+	public static final int X86_INS_PSHUFD = 579;
+	public static final int X86_INS_PSHUFHW = 580;
+	public static final int X86_INS_PSHUFLW = 581;
+	public static final int X86_INS_PSLLDQ = 582;
+	public static final int X86_INS_PSRLDQ = 583;
+	public static final int X86_INS_PSWAPD = 584;
+	public static final int X86_INS_PTEST = 585;
+	public static final int X86_INS_PUNPCKHQDQ = 586;
+	public static final int X86_INS_PUNPCKLQDQ = 587;
+	public static final int X86_INS_PUSH = 588;
+	public static final int X86_INS_PUSHAW = 589;
+	public static final int X86_INS_PUSHAL = 590;
+	public static final int X86_INS_PUSHF = 591;
+	public static final int X86_INS_PUSHFD = 592;
+	public static final int X86_INS_PUSHFQ = 593;
+	public static final int X86_INS_RCL = 594;
+	public static final int X86_INS_RCPPS = 595;
+	public static final int X86_INS_RCPSS = 596;
+	public static final int X86_INS_RCR = 597;
+	public static final int X86_INS_RDFSBASE = 598;
+	public static final int X86_INS_RDGSBASE = 599;
+	public static final int X86_INS_RDMSR = 600;
+	public static final int X86_INS_RDPMC = 601;
+	public static final int X86_INS_RDRAND = 602;
+	public static final int X86_INS_RDSEED = 603;
+	public static final int X86_INS_RDTSC = 604;
+	public static final int X86_INS_RDTSCP = 605;
+	public static final int X86_INS_ROL = 606;
+	public static final int X86_INS_ROR = 607;
+	public static final int X86_INS_RORX = 608;
+	public static final int X86_INS_ROUNDPD = 609;
+	public static final int X86_INS_ROUNDPS = 610;
+	public static final int X86_INS_ROUNDSD = 611;
+	public static final int X86_INS_ROUNDSS = 612;
+	public static final int X86_INS_RSM = 613;
+	public static final int X86_INS_RSQRTPS = 614;
+	public static final int X86_INS_RSQRTSS = 615;
+	public static final int X86_INS_SAHF = 616;
+	public static final int X86_INS_SAL = 617;
+	public static final int X86_INS_SALC = 618;
+	public static final int X86_INS_SAR = 619;
+	public static final int X86_INS_SARX = 620;
+	public static final int X86_INS_SBB = 621;
+	public static final int X86_INS_SCASB = 622;
+	public static final int X86_INS_SCASD = 623;
+	public static final int X86_INS_SCASQ = 624;
+	public static final int X86_INS_SCASW = 625;
+	public static final int X86_INS_SETAE = 626;
+	public static final int X86_INS_SETA = 627;
+	public static final int X86_INS_SETBE = 628;
+	public static final int X86_INS_SETB = 629;
+	public static final int X86_INS_SETE = 630;
+	public static final int X86_INS_SETGE = 631;
+	public static final int X86_INS_SETG = 632;
+	public static final int X86_INS_SETLE = 633;
+	public static final int X86_INS_SETL = 634;
+	public static final int X86_INS_SETNE = 635;
+	public static final int X86_INS_SETNO = 636;
+	public static final int X86_INS_SETNP = 637;
+	public static final int X86_INS_SETNS = 638;
+	public static final int X86_INS_SETO = 639;
+	public static final int X86_INS_SETP = 640;
+	public static final int X86_INS_SETS = 641;
+	public static final int X86_INS_SFENCE = 642;
+	public static final int X86_INS_SGDT = 643;
+	public static final int X86_INS_SHA1MSG1 = 644;
+	public static final int X86_INS_SHA1MSG2 = 645;
+	public static final int X86_INS_SHA1NEXTE = 646;
+	public static final int X86_INS_SHA1RNDS4 = 647;
+	public static final int X86_INS_SHA256MSG1 = 648;
+	public static final int X86_INS_SHA256MSG2 = 649;
+	public static final int X86_INS_SHA256RNDS2 = 650;
+	public static final int X86_INS_SHL = 651;
+	public static final int X86_INS_SHLD = 652;
+	public static final int X86_INS_SHLX = 653;
+	public static final int X86_INS_SHR = 654;
+	public static final int X86_INS_SHRD = 655;
+	public static final int X86_INS_SHRX = 656;
+	public static final int X86_INS_SHUFPD = 657;
+	public static final int X86_INS_SHUFPS = 658;
+	public static final int X86_INS_SIDT = 659;
+	public static final int X86_INS_FSIN = 660;
+	public static final int X86_INS_SKINIT = 661;
+	public static final int X86_INS_SLDT = 662;
+	public static final int X86_INS_SMSW = 663;
+	public static final int X86_INS_SQRTPD = 664;
+	public static final int X86_INS_SQRTPS = 665;
+	public static final int X86_INS_SQRTSD = 666;
+	public static final int X86_INS_SQRTSS = 667;
+	public static final int X86_INS_FSQRT = 668;
+	public static final int X86_INS_STAC = 669;
+	public static final int X86_INS_STC = 670;
+	public static final int X86_INS_STD = 671;
+	public static final int X86_INS_STGI = 672;
+	public static final int X86_INS_STI = 673;
+	public static final int X86_INS_STMXCSR = 674;
+	public static final int X86_INS_STOSB = 675;
+	public static final int X86_INS_STOSD = 676;
+	public static final int X86_INS_STOSQ = 677;
+	public static final int X86_INS_STOSW = 678;
+	public static final int X86_INS_STR = 679;
+	public static final int X86_INS_FST = 680;
+	public static final int X86_INS_FSTP = 681;
+	public static final int X86_INS_FSTPNCE = 682;
+	public static final int X86_INS_FXCH = 683;
+	public static final int X86_INS_SUBPD = 684;
+	public static final int X86_INS_SUBPS = 685;
+	public static final int X86_INS_FSUBR = 686;
+	public static final int X86_INS_FISUBR = 687;
+	public static final int X86_INS_FSUBRP = 688;
+	public static final int X86_INS_SUBSD = 689;
+	public static final int X86_INS_SUBSS = 690;
+	public static final int X86_INS_FSUB = 691;
+	public static final int X86_INS_FISUB = 692;
+	public static final int X86_INS_FSUBP = 693;
+	public static final int X86_INS_SWAPGS = 694;
+	public static final int X86_INS_SYSCALL = 695;
+	public static final int X86_INS_SYSENTER = 696;
+	public static final int X86_INS_SYSEXIT = 697;
+	public static final int X86_INS_SYSRET = 698;
+	public static final int X86_INS_T1MSKC = 699;
+	public static final int X86_INS_TEST = 700;
+	public static final int X86_INS_UD2 = 701;
+	public static final int X86_INS_FTST = 702;
+	public static final int X86_INS_TZCNT = 703;
+	public static final int X86_INS_TZMSK = 704;
+	public static final int X86_INS_FUCOMPI = 705;
+	public static final int X86_INS_FUCOMI = 706;
+	public static final int X86_INS_FUCOMPP = 707;
+	public static final int X86_INS_FUCOMP = 708;
+	public static final int X86_INS_FUCOM = 709;
+	public static final int X86_INS_UD2B = 710;
+	public static final int X86_INS_UNPCKHPD = 711;
+	public static final int X86_INS_UNPCKHPS = 712;
+	public static final int X86_INS_UNPCKLPD = 713;
+	public static final int X86_INS_UNPCKLPS = 714;
+	public static final int X86_INS_VADDPD = 715;
+	public static final int X86_INS_VADDPS = 716;
+	public static final int X86_INS_VADDSD = 717;
+	public static final int X86_INS_VADDSS = 718;
+	public static final int X86_INS_VADDSUBPD = 719;
+	public static final int X86_INS_VADDSUBPS = 720;
+	public static final int X86_INS_VAESDECLAST = 721;
+	public static final int X86_INS_VAESDEC = 722;
+	public static final int X86_INS_VAESENCLAST = 723;
+	public static final int X86_INS_VAESENC = 724;
+	public static final int X86_INS_VAESIMC = 725;
+	public static final int X86_INS_VAESKEYGENASSIST = 726;
+	public static final int X86_INS_VALIGND = 727;
+	public static final int X86_INS_VALIGNQ = 728;
+	public static final int X86_INS_VANDNPD = 729;
+	public static final int X86_INS_VANDNPS = 730;
+	public static final int X86_INS_VANDPD = 731;
+	public static final int X86_INS_VANDPS = 732;
+	public static final int X86_INS_VBLENDMPD = 733;
+	public static final int X86_INS_VBLENDMPS = 734;
+	public static final int X86_INS_VBLENDPD = 735;
+	public static final int X86_INS_VBLENDPS = 736;
+	public static final int X86_INS_VBLENDVPD = 737;
+	public static final int X86_INS_VBLENDVPS = 738;
+	public static final int X86_INS_VBROADCASTF128 = 739;
+	public static final int X86_INS_VBROADCASTI32X4 = 740;
+	public static final int X86_INS_VBROADCASTI64X4 = 741;
+	public static final int X86_INS_VBROADCASTSD = 742;
+	public static final int X86_INS_VBROADCASTSS = 743;
+	public static final int X86_INS_VCOMPRESSPD = 744;
+	public static final int X86_INS_VCOMPRESSPS = 745;
+	public static final int X86_INS_VCVTDQ2PD = 746;
+	public static final int X86_INS_VCVTDQ2PS = 747;
+	public static final int X86_INS_VCVTPD2DQX = 748;
+	public static final int X86_INS_VCVTPD2DQ = 749;
+	public static final int X86_INS_VCVTPD2PSX = 750;
+	public static final int X86_INS_VCVTPD2PS = 751;
+	public static final int X86_INS_VCVTPD2UDQ = 752;
+	public static final int X86_INS_VCVTPH2PS = 753;
+	public static final int X86_INS_VCVTPS2DQ = 754;
+	public static final int X86_INS_VCVTPS2PD = 755;
+	public static final int X86_INS_VCVTPS2PH = 756;
+	public static final int X86_INS_VCVTPS2UDQ = 757;
+	public static final int X86_INS_VCVTSD2SI = 758;
+	public static final int X86_INS_VCVTSD2USI = 759;
+	public static final int X86_INS_VCVTSS2SI = 760;
+	public static final int X86_INS_VCVTSS2USI = 761;
+	public static final int X86_INS_VCVTTPD2DQX = 762;
+	public static final int X86_INS_VCVTTPD2DQ = 763;
+	public static final int X86_INS_VCVTTPD2UDQ = 764;
+	public static final int X86_INS_VCVTTPS2DQ = 765;
+	public static final int X86_INS_VCVTTPS2UDQ = 766;
+	public static final int X86_INS_VCVTUDQ2PD = 767;
+	public static final int X86_INS_VCVTUDQ2PS = 768;
+	public static final int X86_INS_VDIVPD = 769;
+	public static final int X86_INS_VDIVPS = 770;
+	public static final int X86_INS_VDIVSD = 771;
+	public static final int X86_INS_VDIVSS = 772;
+	public static final int X86_INS_VDPPD = 773;
+	public static final int X86_INS_VDPPS = 774;
+	public static final int X86_INS_VERR = 775;
+	public static final int X86_INS_VERW = 776;
+	public static final int X86_INS_VEXP2PD = 777;
+	public static final int X86_INS_VEXP2PS = 778;
+	public static final int X86_INS_VEXPANDPD = 779;
+	public static final int X86_INS_VEXPANDPS = 780;
+	public static final int X86_INS_VEXTRACTF128 = 781;
+	public static final int X86_INS_VEXTRACTF32X4 = 782;
+	public static final int X86_INS_VEXTRACTF64X4 = 783;
+	public static final int X86_INS_VEXTRACTI128 = 784;
+	public static final int X86_INS_VEXTRACTI32X4 = 785;
+	public static final int X86_INS_VEXTRACTI64X4 = 786;
+	public static final int X86_INS_VEXTRACTPS = 787;
+	public static final int X86_INS_VFMADD132PD = 788;
+	public static final int X86_INS_VFMADD132PS = 789;
+	public static final int X86_INS_VFMADDPD = 790;
+	public static final int X86_INS_VFMADD213PD = 791;
+	public static final int X86_INS_VFMADD231PD = 792;
+	public static final int X86_INS_VFMADDPS = 793;
+	public static final int X86_INS_VFMADD213PS = 794;
+	public static final int X86_INS_VFMADD231PS = 795;
+	public static final int X86_INS_VFMADDSD = 796;
+	public static final int X86_INS_VFMADD213SD = 797;
+	public static final int X86_INS_VFMADD132SD = 798;
+	public static final int X86_INS_VFMADD231SD = 799;
+	public static final int X86_INS_VFMADDSS = 800;
+	public static final int X86_INS_VFMADD213SS = 801;
+	public static final int X86_INS_VFMADD132SS = 802;
+	public static final int X86_INS_VFMADD231SS = 803;
+	public static final int X86_INS_VFMADDSUB132PD = 804;
+	public static final int X86_INS_VFMADDSUB132PS = 805;
+	public static final int X86_INS_VFMADDSUBPD = 806;
+	public static final int X86_INS_VFMADDSUB213PD = 807;
+	public static final int X86_INS_VFMADDSUB231PD = 808;
+	public static final int X86_INS_VFMADDSUBPS = 809;
+	public static final int X86_INS_VFMADDSUB213PS = 810;
+	public static final int X86_INS_VFMADDSUB231PS = 811;
+	public static final int X86_INS_VFMSUB132PD = 812;
+	public static final int X86_INS_VFMSUB132PS = 813;
+	public static final int X86_INS_VFMSUBADD132PD = 814;
+	public static final int X86_INS_VFMSUBADD132PS = 815;
+	public static final int X86_INS_VFMSUBADDPD = 816;
+	public static final int X86_INS_VFMSUBADD213PD = 817;
+	public static final int X86_INS_VFMSUBADD231PD = 818;
+	public static final int X86_INS_VFMSUBADDPS = 819;
+	public static final int X86_INS_VFMSUBADD213PS = 820;
+	public static final int X86_INS_VFMSUBADD231PS = 821;
+	public static final int X86_INS_VFMSUBPD = 822;
+	public static final int X86_INS_VFMSUB213PD = 823;
+	public static final int X86_INS_VFMSUB231PD = 824;
+	public static final int X86_INS_VFMSUBPS = 825;
+	public static final int X86_INS_VFMSUB213PS = 826;
+	public static final int X86_INS_VFMSUB231PS = 827;
+	public static final int X86_INS_VFMSUBSD = 828;
+	public static final int X86_INS_VFMSUB213SD = 829;
+	public static final int X86_INS_VFMSUB132SD = 830;
+	public static final int X86_INS_VFMSUB231SD = 831;
+	public static final int X86_INS_VFMSUBSS = 832;
+	public static final int X86_INS_VFMSUB213SS = 833;
+	public static final int X86_INS_VFMSUB132SS = 834;
+	public static final int X86_INS_VFMSUB231SS = 835;
+	public static final int X86_INS_VFNMADD132PD = 836;
+	public static final int X86_INS_VFNMADD132PS = 837;
+	public static final int X86_INS_VFNMADDPD = 838;
+	public static final int X86_INS_VFNMADD213PD = 839;
+	public static final int X86_INS_VFNMADD231PD = 840;
+	public static final int X86_INS_VFNMADDPS = 841;
+	public static final int X86_INS_VFNMADD213PS = 842;
+	public static final int X86_INS_VFNMADD231PS = 843;
+	public static final int X86_INS_VFNMADDSD = 844;
+	public static final int X86_INS_VFNMADD213SD = 845;
+	public static final int X86_INS_VFNMADD132SD = 846;
+	public static final int X86_INS_VFNMADD231SD = 847;
+	public static final int X86_INS_VFNMADDSS = 848;
+	public static final int X86_INS_VFNMADD213SS = 849;
+	public static final int X86_INS_VFNMADD132SS = 850;
+	public static final int X86_INS_VFNMADD231SS = 851;
+	public static final int X86_INS_VFNMSUB132PD = 852;
+	public static final int X86_INS_VFNMSUB132PS = 853;
+	public static final int X86_INS_VFNMSUBPD = 854;
+	public static final int X86_INS_VFNMSUB213PD = 855;
+	public static final int X86_INS_VFNMSUB231PD = 856;
+	public static final int X86_INS_VFNMSUBPS = 857;
+	public static final int X86_INS_VFNMSUB213PS = 858;
+	public static final int X86_INS_VFNMSUB231PS = 859;
+	public static final int X86_INS_VFNMSUBSD = 860;
+	public static final int X86_INS_VFNMSUB213SD = 861;
+	public static final int X86_INS_VFNMSUB132SD = 862;
+	public static final int X86_INS_VFNMSUB231SD = 863;
+	public static final int X86_INS_VFNMSUBSS = 864;
+	public static final int X86_INS_VFNMSUB213SS = 865;
+	public static final int X86_INS_VFNMSUB132SS = 866;
+	public static final int X86_INS_VFNMSUB231SS = 867;
+	public static final int X86_INS_VFRCZPD = 868;
+	public static final int X86_INS_VFRCZPS = 869;
+	public static final int X86_INS_VFRCZSD = 870;
+	public static final int X86_INS_VFRCZSS = 871;
+	public static final int X86_INS_VORPD = 872;
+	public static final int X86_INS_VORPS = 873;
+	public static final int X86_INS_VXORPD = 874;
+	public static final int X86_INS_VXORPS = 875;
+	public static final int X86_INS_VGATHERDPD = 876;
+	public static final int X86_INS_VGATHERDPS = 877;
+	public static final int X86_INS_VGATHERPF0DPD = 878;
+	public static final int X86_INS_VGATHERPF0DPS = 879;
+	public static final int X86_INS_VGATHERPF0QPD = 880;
+	public static final int X86_INS_VGATHERPF0QPS = 881;
+	public static final int X86_INS_VGATHERPF1DPD = 882;
+	public static final int X86_INS_VGATHERPF1DPS = 883;
+	public static final int X86_INS_VGATHERPF1QPD = 884;
+	public static final int X86_INS_VGATHERPF1QPS = 885;
+	public static final int X86_INS_VGATHERQPD = 886;
+	public static final int X86_INS_VGATHERQPS = 887;
+	public static final int X86_INS_VHADDPD = 888;
+	public static final int X86_INS_VHADDPS = 889;
+	public static final int X86_INS_VHSUBPD = 890;
+	public static final int X86_INS_VHSUBPS = 891;
+	public static final int X86_INS_VINSERTF128 = 892;
+	public static final int X86_INS_VINSERTF32X4 = 893;
+	public static final int X86_INS_VINSERTF32X8 = 894;
+	public static final int X86_INS_VINSERTF64X2 = 895;
+	public static final int X86_INS_VINSERTF64X4 = 896;
+	public static final int X86_INS_VINSERTI128 = 897;
+	public static final int X86_INS_VINSERTI32X4 = 898;
+	public static final int X86_INS_VINSERTI32X8 = 899;
+	public static final int X86_INS_VINSERTI64X2 = 900;
+	public static final int X86_INS_VINSERTI64X4 = 901;
+	public static final int X86_INS_VINSERTPS = 902;
+	public static final int X86_INS_VLDDQU = 903;
+	public static final int X86_INS_VLDMXCSR = 904;
+	public static final int X86_INS_VMASKMOVDQU = 905;
+	public static final int X86_INS_VMASKMOVPD = 906;
+	public static final int X86_INS_VMASKMOVPS = 907;
+	public static final int X86_INS_VMAXPD = 908;
+	public static final int X86_INS_VMAXPS = 909;
+	public static final int X86_INS_VMAXSD = 910;
+	public static final int X86_INS_VMAXSS = 911;
+	public static final int X86_INS_VMCALL = 912;
+	public static final int X86_INS_VMCLEAR = 913;
+	public static final int X86_INS_VMFUNC = 914;
+	public static final int X86_INS_VMINPD = 915;
+	public static final int X86_INS_VMINPS = 916;
+	public static final int X86_INS_VMINSD = 917;
+	public static final int X86_INS_VMINSS = 918;
+	public static final int X86_INS_VMLAUNCH = 919;
+	public static final int X86_INS_VMLOAD = 920;
+	public static final int X86_INS_VMMCALL = 921;
+	public static final int X86_INS_VMOVQ = 922;
+	public static final int X86_INS_VMOVDDUP = 923;
+	public static final int X86_INS_VMOVD = 924;
+	public static final int X86_INS_VMOVDQA32 = 925;
+	public static final int X86_INS_VMOVDQA64 = 926;
+	public static final int X86_INS_VMOVDQA = 927;
+	public static final int X86_INS_VMOVDQU16 = 928;
+	public static final int X86_INS_VMOVDQU32 = 929;
+	public static final int X86_INS_VMOVDQU64 = 930;
+	public static final int X86_INS_VMOVDQU8 = 931;
+	public static final int X86_INS_VMOVDQU = 932;
+	public static final int X86_INS_VMOVHLPS = 933;
+	public static final int X86_INS_VMOVHPD = 934;
+	public static final int X86_INS_VMOVHPS = 935;
+	public static final int X86_INS_VMOVLHPS = 936;
+	public static final int X86_INS_VMOVLPD = 937;
+	public static final int X86_INS_VMOVLPS = 938;
+	public static final int X86_INS_VMOVMSKPD = 939;
+	public static final int X86_INS_VMOVMSKPS = 940;
+	public static final int X86_INS_VMOVNTDQA = 941;
+	public static final int X86_INS_VMOVNTDQ = 942;
+	public static final int X86_INS_VMOVNTPD = 943;
+	public static final int X86_INS_VMOVNTPS = 944;
+	public static final int X86_INS_VMOVSD = 945;
+	public static final int X86_INS_VMOVSHDUP = 946;
+	public static final int X86_INS_VMOVSLDUP = 947;
+	public static final int X86_INS_VMOVSS = 948;
+	public static final int X86_INS_VMOVUPD = 949;
+	public static final int X86_INS_VMOVUPS = 950;
+	public static final int X86_INS_VMPSADBW = 951;
+	public static final int X86_INS_VMPTRLD = 952;
+	public static final int X86_INS_VMPTRST = 953;
+	public static final int X86_INS_VMREAD = 954;
+	public static final int X86_INS_VMRESUME = 955;
+	public static final int X86_INS_VMRUN = 956;
+	public static final int X86_INS_VMSAVE = 957;
+	public static final int X86_INS_VMULPD = 958;
+	public static final int X86_INS_VMULPS = 959;
+	public static final int X86_INS_VMULSD = 960;
+	public static final int X86_INS_VMULSS = 961;
+	public static final int X86_INS_VMWRITE = 962;
+	public static final int X86_INS_VMXOFF = 963;
+	public static final int X86_INS_VMXON = 964;
+	public static final int X86_INS_VPABSB = 965;
+	public static final int X86_INS_VPABSD = 966;
+	public static final int X86_INS_VPABSQ = 967;
+	public static final int X86_INS_VPABSW = 968;
+	public static final int X86_INS_VPACKSSDW = 969;
+	public static final int X86_INS_VPACKSSWB = 970;
+	public static final int X86_INS_VPACKUSDW = 971;
+	public static final int X86_INS_VPACKUSWB = 972;
+	public static final int X86_INS_VPADDB = 973;
+	public static final int X86_INS_VPADDD = 974;
+	public static final int X86_INS_VPADDQ = 975;
+	public static final int X86_INS_VPADDSB = 976;
+	public static final int X86_INS_VPADDSW = 977;
+	public static final int X86_INS_VPADDUSB = 978;
+	public static final int X86_INS_VPADDUSW = 979;
+	public static final int X86_INS_VPADDW = 980;
+	public static final int X86_INS_VPALIGNR = 981;
+	public static final int X86_INS_VPANDD = 982;
+	public static final int X86_INS_VPANDND = 983;
+	public static final int X86_INS_VPANDNQ = 984;
+	public static final int X86_INS_VPANDN = 985;
+	public static final int X86_INS_VPANDQ = 986;
+	public static final int X86_INS_VPAND = 987;
+	public static final int X86_INS_VPAVGB = 988;
+	public static final int X86_INS_VPAVGW = 989;
+	public static final int X86_INS_VPBLENDD = 990;
+	public static final int X86_INS_VPBLENDMB = 991;
+	public static final int X86_INS_VPBLENDMD = 992;
+	public static final int X86_INS_VPBLENDMQ = 993;
+	public static final int X86_INS_VPBLENDMW = 994;
+	public static final int X86_INS_VPBLENDVB = 995;
+	public static final int X86_INS_VPBLENDW = 996;
+	public static final int X86_INS_VPBROADCASTB = 997;
+	public static final int X86_INS_VPBROADCASTD = 998;
+	public static final int X86_INS_VPBROADCASTMB2Q = 999;
+	public static final int X86_INS_VPBROADCASTMW2D = 1000;
+	public static final int X86_INS_VPBROADCASTQ = 1001;
+	public static final int X86_INS_VPBROADCASTW = 1002;
+	public static final int X86_INS_VPCLMULQDQ = 1003;
+	public static final int X86_INS_VPCMOV = 1004;
+	public static final int X86_INS_VPCMPB = 1005;
+	public static final int X86_INS_VPCMPD = 1006;
+	public static final int X86_INS_VPCMPEQB = 1007;
+	public static final int X86_INS_VPCMPEQD = 1008;
+	public static final int X86_INS_VPCMPEQQ = 1009;
+	public static final int X86_INS_VPCMPEQW = 1010;
+	public static final int X86_INS_VPCMPESTRI = 1011;
+	public static final int X86_INS_VPCMPESTRM = 1012;
+	public static final int X86_INS_VPCMPGTB = 1013;
+	public static final int X86_INS_VPCMPGTD = 1014;
+	public static final int X86_INS_VPCMPGTQ = 1015;
+	public static final int X86_INS_VPCMPGTW = 1016;
+	public static final int X86_INS_VPCMPISTRI = 1017;
+	public static final int X86_INS_VPCMPISTRM = 1018;
+	public static final int X86_INS_VPCMPQ = 1019;
+	public static final int X86_INS_VPCMPUB = 1020;
+	public static final int X86_INS_VPCMPUD = 1021;
+	public static final int X86_INS_VPCMPUQ = 1022;
+	public static final int X86_INS_VPCMPUW = 1023;
+	public static final int X86_INS_VPCMPW = 1024;
+	public static final int X86_INS_VPCOMB = 1025;
+	public static final int X86_INS_VPCOMD = 1026;
+	public static final int X86_INS_VPCOMPRESSD = 1027;
+	public static final int X86_INS_VPCOMPRESSQ = 1028;
+	public static final int X86_INS_VPCOMQ = 1029;
+	public static final int X86_INS_VPCOMUB = 1030;
+	public static final int X86_INS_VPCOMUD = 1031;
+	public static final int X86_INS_VPCOMUQ = 1032;
+	public static final int X86_INS_VPCOMUW = 1033;
+	public static final int X86_INS_VPCOMW = 1034;
+	public static final int X86_INS_VPCONFLICTD = 1035;
+	public static final int X86_INS_VPCONFLICTQ = 1036;
+	public static final int X86_INS_VPERM2F128 = 1037;
+	public static final int X86_INS_VPERM2I128 = 1038;
+	public static final int X86_INS_VPERMD = 1039;
+	public static final int X86_INS_VPERMI2D = 1040;
+	public static final int X86_INS_VPERMI2PD = 1041;
+	public static final int X86_INS_VPERMI2PS = 1042;
+	public static final int X86_INS_VPERMI2Q = 1043;
+	public static final int X86_INS_VPERMIL2PD = 1044;
+	public static final int X86_INS_VPERMIL2PS = 1045;
+	public static final int X86_INS_VPERMILPD = 1046;
+	public static final int X86_INS_VPERMILPS = 1047;
+	public static final int X86_INS_VPERMPD = 1048;
+	public static final int X86_INS_VPERMPS = 1049;
+	public static final int X86_INS_VPERMQ = 1050;
+	public static final int X86_INS_VPERMT2D = 1051;
+	public static final int X86_INS_VPERMT2PD = 1052;
+	public static final int X86_INS_VPERMT2PS = 1053;
+	public static final int X86_INS_VPERMT2Q = 1054;
+	public static final int X86_INS_VPEXPANDD = 1055;
+	public static final int X86_INS_VPEXPANDQ = 1056;
+	public static final int X86_INS_VPEXTRB = 1057;
+	public static final int X86_INS_VPEXTRD = 1058;
+	public static final int X86_INS_VPEXTRQ = 1059;
+	public static final int X86_INS_VPEXTRW = 1060;
+	public static final int X86_INS_VPGATHERDD = 1061;
+	public static final int X86_INS_VPGATHERDQ = 1062;
+	public static final int X86_INS_VPGATHERQD = 1063;
+	public static final int X86_INS_VPGATHERQQ = 1064;
+	public static final int X86_INS_VPHADDBD = 1065;
+	public static final int X86_INS_VPHADDBQ = 1066;
+	public static final int X86_INS_VPHADDBW = 1067;
+	public static final int X86_INS_VPHADDDQ = 1068;
+	public static final int X86_INS_VPHADDD = 1069;
+	public static final int X86_INS_VPHADDSW = 1070;
+	public static final int X86_INS_VPHADDUBD = 1071;
+	public static final int X86_INS_VPHADDUBQ = 1072;
+	public static final int X86_INS_VPHADDUBW = 1073;
+	public static final int X86_INS_VPHADDUDQ = 1074;
+	public static final int X86_INS_VPHADDUWD = 1075;
+	public static final int X86_INS_VPHADDUWQ = 1076;
+	public static final int X86_INS_VPHADDWD = 1077;
+	public static final int X86_INS_VPHADDWQ = 1078;
+	public static final int X86_INS_VPHADDW = 1079;
+	public static final int X86_INS_VPHMINPOSUW = 1080;
+	public static final int X86_INS_VPHSUBBW = 1081;
+	public static final int X86_INS_VPHSUBDQ = 1082;
+	public static final int X86_INS_VPHSUBD = 1083;
+	public static final int X86_INS_VPHSUBSW = 1084;
+	public static final int X86_INS_VPHSUBWD = 1085;
+	public static final int X86_INS_VPHSUBW = 1086;
+	public static final int X86_INS_VPINSRB = 1087;
+	public static final int X86_INS_VPINSRD = 1088;
+	public static final int X86_INS_VPINSRQ = 1089;
+	public static final int X86_INS_VPINSRW = 1090;
+	public static final int X86_INS_VPLZCNTD = 1091;
+	public static final int X86_INS_VPLZCNTQ = 1092;
+	public static final int X86_INS_VPMACSDD = 1093;
+	public static final int X86_INS_VPMACSDQH = 1094;
+	public static final int X86_INS_VPMACSDQL = 1095;
+	public static final int X86_INS_VPMACSSDD = 1096;
+	public static final int X86_INS_VPMACSSDQH = 1097;
+	public static final int X86_INS_VPMACSSDQL = 1098;
+	public static final int X86_INS_VPMACSSWD = 1099;
+	public static final int X86_INS_VPMACSSWW = 1100;
+	public static final int X86_INS_VPMACSWD = 1101;
+	public static final int X86_INS_VPMACSWW = 1102;
+	public static final int X86_INS_VPMADCSSWD = 1103;
+	public static final int X86_INS_VPMADCSWD = 1104;
+	public static final int X86_INS_VPMADDUBSW = 1105;
+	public static final int X86_INS_VPMADDWD = 1106;
+	public static final int X86_INS_VPMASKMOVD = 1107;
+	public static final int X86_INS_VPMASKMOVQ = 1108;
+	public static final int X86_INS_VPMAXSB = 1109;
+	public static final int X86_INS_VPMAXSD = 1110;
+	public static final int X86_INS_VPMAXSQ = 1111;
+	public static final int X86_INS_VPMAXSW = 1112;
+	public static final int X86_INS_VPMAXUB = 1113;
+	public static final int X86_INS_VPMAXUD = 1114;
+	public static final int X86_INS_VPMAXUQ = 1115;
+	public static final int X86_INS_VPMAXUW = 1116;
+	public static final int X86_INS_VPMINSB = 1117;
+	public static final int X86_INS_VPMINSD = 1118;
+	public static final int X86_INS_VPMINSQ = 1119;
+	public static final int X86_INS_VPMINSW = 1120;
+	public static final int X86_INS_VPMINUB = 1121;
+	public static final int X86_INS_VPMINUD = 1122;
+	public static final int X86_INS_VPMINUQ = 1123;
+	public static final int X86_INS_VPMINUW = 1124;
+	public static final int X86_INS_VPMOVDB = 1125;
+	public static final int X86_INS_VPMOVDW = 1126;
+	public static final int X86_INS_VPMOVM2B = 1127;
+	public static final int X86_INS_VPMOVM2D = 1128;
+	public static final int X86_INS_VPMOVM2Q = 1129;
+	public static final int X86_INS_VPMOVM2W = 1130;
+	public static final int X86_INS_VPMOVMSKB = 1131;
+	public static final int X86_INS_VPMOVQB = 1132;
+	public static final int X86_INS_VPMOVQD = 1133;
+	public static final int X86_INS_VPMOVQW = 1134;
+	public static final int X86_INS_VPMOVSDB = 1135;
+	public static final int X86_INS_VPMOVSDW = 1136;
+	public static final int X86_INS_VPMOVSQB = 1137;
+	public static final int X86_INS_VPMOVSQD = 1138;
+	public static final int X86_INS_VPMOVSQW = 1139;
+	public static final int X86_INS_VPMOVSXBD = 1140;
+	public static final int X86_INS_VPMOVSXBQ = 1141;
+	public static final int X86_INS_VPMOVSXBW = 1142;
+	public static final int X86_INS_VPMOVSXDQ = 1143;
+	public static final int X86_INS_VPMOVSXWD = 1144;
+	public static final int X86_INS_VPMOVSXWQ = 1145;
+	public static final int X86_INS_VPMOVUSDB = 1146;
+	public static final int X86_INS_VPMOVUSDW = 1147;
+	public static final int X86_INS_VPMOVUSQB = 1148;
+	public static final int X86_INS_VPMOVUSQD = 1149;
+	public static final int X86_INS_VPMOVUSQW = 1150;
+	public static final int X86_INS_VPMOVZXBD = 1151;
+	public static final int X86_INS_VPMOVZXBQ = 1152;
+	public static final int X86_INS_VPMOVZXBW = 1153;
+	public static final int X86_INS_VPMOVZXDQ = 1154;
+	public static final int X86_INS_VPMOVZXWD = 1155;
+	public static final int X86_INS_VPMOVZXWQ = 1156;
+	public static final int X86_INS_VPMULDQ = 1157;
+	public static final int X86_INS_VPMULHRSW = 1158;
+	public static final int X86_INS_VPMULHUW = 1159;
+	public static final int X86_INS_VPMULHW = 1160;
+	public static final int X86_INS_VPMULLD = 1161;
+	public static final int X86_INS_VPMULLQ = 1162;
+	public static final int X86_INS_VPMULLW = 1163;
+	public static final int X86_INS_VPMULUDQ = 1164;
+	public static final int X86_INS_VPORD = 1165;
+	public static final int X86_INS_VPORQ = 1166;
+	public static final int X86_INS_VPOR = 1167;
+	public static final int X86_INS_VPPERM = 1168;
+	public static final int X86_INS_VPROTB = 1169;
+	public static final int X86_INS_VPROTD = 1170;
+	public static final int X86_INS_VPROTQ = 1171;
+	public static final int X86_INS_VPROTW = 1172;
+	public static final int X86_INS_VPSADBW = 1173;
+	public static final int X86_INS_VPSCATTERDD = 1174;
+	public static final int X86_INS_VPSCATTERDQ = 1175;
+	public static final int X86_INS_VPSCATTERQD = 1176;
+	public static final int X86_INS_VPSCATTERQQ = 1177;
+	public static final int X86_INS_VPSHAB = 1178;
+	public static final int X86_INS_VPSHAD = 1179;
+	public static final int X86_INS_VPSHAQ = 1180;
+	public static final int X86_INS_VPSHAW = 1181;
+	public static final int X86_INS_VPSHLB = 1182;
+	public static final int X86_INS_VPSHLD = 1183;
+	public static final int X86_INS_VPSHLQ = 1184;
+	public static final int X86_INS_VPSHLW = 1185;
+	public static final int X86_INS_VPSHUFB = 1186;
+	public static final int X86_INS_VPSHUFD = 1187;
+	public static final int X86_INS_VPSHUFHW = 1188;
+	public static final int X86_INS_VPSHUFLW = 1189;
+	public static final int X86_INS_VPSIGNB = 1190;
+	public static final int X86_INS_VPSIGND = 1191;
+	public static final int X86_INS_VPSIGNW = 1192;
+	public static final int X86_INS_VPSLLDQ = 1193;
+	public static final int X86_INS_VPSLLD = 1194;
+	public static final int X86_INS_VPSLLQ = 1195;
+	public static final int X86_INS_VPSLLVD = 1196;
+	public static final int X86_INS_VPSLLVQ = 1197;
+	public static final int X86_INS_VPSLLW = 1198;
+	public static final int X86_INS_VPSRAD = 1199;
+	public static final int X86_INS_VPSRAQ = 1200;
+	public static final int X86_INS_VPSRAVD = 1201;
+	public static final int X86_INS_VPSRAVQ = 1202;
+	public static final int X86_INS_VPSRAW = 1203;
+	public static final int X86_INS_VPSRLDQ = 1204;
+	public static final int X86_INS_VPSRLD = 1205;
+	public static final int X86_INS_VPSRLQ = 1206;
+	public static final int X86_INS_VPSRLVD = 1207;
+	public static final int X86_INS_VPSRLVQ = 1208;
+	public static final int X86_INS_VPSRLW = 1209;
+	public static final int X86_INS_VPSUBB = 1210;
+	public static final int X86_INS_VPSUBD = 1211;
+	public static final int X86_INS_VPSUBQ = 1212;
+	public static final int X86_INS_VPSUBSB = 1213;
+	public static final int X86_INS_VPSUBSW = 1214;
+	public static final int X86_INS_VPSUBUSB = 1215;
+	public static final int X86_INS_VPSUBUSW = 1216;
+	public static final int X86_INS_VPSUBW = 1217;
+	public static final int X86_INS_VPTESTMD = 1218;
+	public static final int X86_INS_VPTESTMQ = 1219;
+	public static final int X86_INS_VPTESTNMD = 1220;
+	public static final int X86_INS_VPTESTNMQ = 1221;
+	public static final int X86_INS_VPTEST = 1222;
+	public static final int X86_INS_VPUNPCKHBW = 1223;
+	public static final int X86_INS_VPUNPCKHDQ = 1224;
+	public static final int X86_INS_VPUNPCKHQDQ = 1225;
+	public static final int X86_INS_VPUNPCKHWD = 1226;
+	public static final int X86_INS_VPUNPCKLBW = 1227;
+	public static final int X86_INS_VPUNPCKLDQ = 1228;
+	public static final int X86_INS_VPUNPCKLQDQ = 1229;
+	public static final int X86_INS_VPUNPCKLWD = 1230;
+	public static final int X86_INS_VPXORD = 1231;
+	public static final int X86_INS_VPXORQ = 1232;
+	public static final int X86_INS_VPXOR = 1233;
+	public static final int X86_INS_VRCP14PD = 1234;
+	public static final int X86_INS_VRCP14PS = 1235;
+	public static final int X86_INS_VRCP14SD = 1236;
+	public static final int X86_INS_VRCP14SS = 1237;
+	public static final int X86_INS_VRCP28PD = 1238;
+	public static final int X86_INS_VRCP28PS = 1239;
+	public static final int X86_INS_VRCP28SD = 1240;
+	public static final int X86_INS_VRCP28SS = 1241;
+	public static final int X86_INS_VRCPPS = 1242;
+	public static final int X86_INS_VRCPSS = 1243;
+	public static final int X86_INS_VRNDSCALEPD = 1244;
+	public static final int X86_INS_VRNDSCALEPS = 1245;
+	public static final int X86_INS_VRNDSCALESD = 1246;
+	public static final int X86_INS_VRNDSCALESS = 1247;
+	public static final int X86_INS_VROUNDPD = 1248;
+	public static final int X86_INS_VROUNDPS = 1249;
+	public static final int X86_INS_VROUNDSD = 1250;
+	public static final int X86_INS_VROUNDSS = 1251;
+	public static final int X86_INS_VRSQRT14PD = 1252;
+	public static final int X86_INS_VRSQRT14PS = 1253;
+	public static final int X86_INS_VRSQRT14SD = 1254;
+	public static final int X86_INS_VRSQRT14SS = 1255;
+	public static final int X86_INS_VRSQRT28PD = 1256;
+	public static final int X86_INS_VRSQRT28PS = 1257;
+	public static final int X86_INS_VRSQRT28SD = 1258;
+	public static final int X86_INS_VRSQRT28SS = 1259;
+	public static final int X86_INS_VRSQRTPS = 1260;
+	public static final int X86_INS_VRSQRTSS = 1261;
+	public static final int X86_INS_VSCATTERDPD = 1262;
+	public static final int X86_INS_VSCATTERDPS = 1263;
+	public static final int X86_INS_VSCATTERPF0DPD = 1264;
+	public static final int X86_INS_VSCATTERPF0DPS = 1265;
+	public static final int X86_INS_VSCATTERPF0QPD = 1266;
+	public static final int X86_INS_VSCATTERPF0QPS = 1267;
+	public static final int X86_INS_VSCATTERPF1DPD = 1268;
+	public static final int X86_INS_VSCATTERPF1DPS = 1269;
+	public static final int X86_INS_VSCATTERPF1QPD = 1270;
+	public static final int X86_INS_VSCATTERPF1QPS = 1271;
+	public static final int X86_INS_VSCATTERQPD = 1272;
+	public static final int X86_INS_VSCATTERQPS = 1273;
+	public static final int X86_INS_VSHUFPD = 1274;
+	public static final int X86_INS_VSHUFPS = 1275;
+	public static final int X86_INS_VSQRTPD = 1276;
+	public static final int X86_INS_VSQRTPS = 1277;
+	public static final int X86_INS_VSQRTSD = 1278;
+	public static final int X86_INS_VSQRTSS = 1279;
+	public static final int X86_INS_VSTMXCSR = 1280;
+	public static final int X86_INS_VSUBPD = 1281;
+	public static final int X86_INS_VSUBPS = 1282;
+	public static final int X86_INS_VSUBSD = 1283;
+	public static final int X86_INS_VSUBSS = 1284;
+	public static final int X86_INS_VTESTPD = 1285;
+	public static final int X86_INS_VTESTPS = 1286;
+	public static final int X86_INS_VUNPCKHPD = 1287;
+	public static final int X86_INS_VUNPCKHPS = 1288;
+	public static final int X86_INS_VUNPCKLPD = 1289;
+	public static final int X86_INS_VUNPCKLPS = 1290;
+	public static final int X86_INS_VZEROALL = 1291;
+	public static final int X86_INS_VZEROUPPER = 1292;
+	public static final int X86_INS_WAIT = 1293;
+	public static final int X86_INS_WBINVD = 1294;
+	public static final int X86_INS_WRFSBASE = 1295;
+	public static final int X86_INS_WRGSBASE = 1296;
+	public static final int X86_INS_WRMSR = 1297;
+	public static final int X86_INS_XABORT = 1298;
+	public static final int X86_INS_XACQUIRE = 1299;
+	public static final int X86_INS_XBEGIN = 1300;
+	public static final int X86_INS_XCHG = 1301;
+	public static final int X86_INS_XCRYPTCBC = 1302;
+	public static final int X86_INS_XCRYPTCFB = 1303;
+	public static final int X86_INS_XCRYPTCTR = 1304;
+	public static final int X86_INS_XCRYPTECB = 1305;
+	public static final int X86_INS_XCRYPTOFB = 1306;
+	public static final int X86_INS_XEND = 1307;
+	public static final int X86_INS_XGETBV = 1308;
+	public static final int X86_INS_XLATB = 1309;
+	public static final int X86_INS_XRELEASE = 1310;
+	public static final int X86_INS_XRSTOR = 1311;
+	public static final int X86_INS_XRSTOR64 = 1312;
+	public static final int X86_INS_XRSTORS = 1313;
+	public static final int X86_INS_XRSTORS64 = 1314;
+	public static final int X86_INS_XSAVE = 1315;
+	public static final int X86_INS_XSAVE64 = 1316;
+	public static final int X86_INS_XSAVEC = 1317;
+	public static final int X86_INS_XSAVEC64 = 1318;
+	public static final int X86_INS_XSAVEOPT = 1319;
+	public static final int X86_INS_XSAVEOPT64 = 1320;
+	public static final int X86_INS_XSAVES = 1321;
+	public static final int X86_INS_XSAVES64 = 1322;
+	public static final int X86_INS_XSETBV = 1323;
+	public static final int X86_INS_XSHA1 = 1324;
+	public static final int X86_INS_XSHA256 = 1325;
+	public static final int X86_INS_XSTORE = 1326;
+	public static final int X86_INS_XTEST = 1327;
+	public static final int X86_INS_FDISI8087_NOP = 1328;
+	public static final int X86_INS_FENI8087_NOP = 1329;
+	public static final int X86_INS_CMPSS = 1330;
+	public static final int X86_INS_CMPEQSS = 1331;
+	public static final int X86_INS_CMPLTSS = 1332;
+	public static final int X86_INS_CMPLESS = 1333;
+	public static final int X86_INS_CMPUNORDSS = 1334;
+	public static final int X86_INS_CMPNEQSS = 1335;
+	public static final int X86_INS_CMPNLTSS = 1336;
+	public static final int X86_INS_CMPNLESS = 1337;
+	public static final int X86_INS_CMPORDSS = 1338;
+	public static final int X86_INS_CMPSD = 1339;
+	public static final int X86_INS_CMPEQSD = 1340;
+	public static final int X86_INS_CMPLTSD = 1341;
+	public static final int X86_INS_CMPLESD = 1342;
+	public static final int X86_INS_CMPUNORDSD = 1343;
+	public static final int X86_INS_CMPNEQSD = 1344;
+	public static final int X86_INS_CMPNLTSD = 1345;
+	public static final int X86_INS_CMPNLESD = 1346;
+	public static final int X86_INS_CMPORDSD = 1347;
+	public static final int X86_INS_CMPPS = 1348;
+	public static final int X86_INS_CMPEQPS = 1349;
+	public static final int X86_INS_CMPLTPS = 1350;
+	public static final int X86_INS_CMPLEPS = 1351;
+	public static final int X86_INS_CMPUNORDPS = 1352;
+	public static final int X86_INS_CMPNEQPS = 1353;
+	public static final int X86_INS_CMPNLTPS = 1354;
+	public static final int X86_INS_CMPNLEPS = 1355;
+	public static final int X86_INS_CMPORDPS = 1356;
+	public static final int X86_INS_CMPPD = 1357;
+	public static final int X86_INS_CMPEQPD = 1358;
+	public static final int X86_INS_CMPLTPD = 1359;
+	public static final int X86_INS_CMPLEPD = 1360;
+	public static final int X86_INS_CMPUNORDPD = 1361;
+	public static final int X86_INS_CMPNEQPD = 1362;
+	public static final int X86_INS_CMPNLTPD = 1363;
+	public static final int X86_INS_CMPNLEPD = 1364;
+	public static final int X86_INS_CMPORDPD = 1365;
+	public static final int X86_INS_VCMPSS = 1366;
+	public static final int X86_INS_VCMPEQSS = 1367;
+	public static final int X86_INS_VCMPLTSS = 1368;
+	public static final int X86_INS_VCMPLESS = 1369;
+	public static final int X86_INS_VCMPUNORDSS = 1370;
+	public static final int X86_INS_VCMPNEQSS = 1371;
+	public static final int X86_INS_VCMPNLTSS = 1372;
+	public static final int X86_INS_VCMPNLESS = 1373;
+	public static final int X86_INS_VCMPORDSS = 1374;
+	public static final int X86_INS_VCMPEQ_UQSS = 1375;
+	public static final int X86_INS_VCMPNGESS = 1376;
+	public static final int X86_INS_VCMPNGTSS = 1377;
+	public static final int X86_INS_VCMPFALSESS = 1378;
+	public static final int X86_INS_VCMPNEQ_OQSS = 1379;
+	public static final int X86_INS_VCMPGESS = 1380;
+	public static final int X86_INS_VCMPGTSS = 1381;
+	public static final int X86_INS_VCMPTRUESS = 1382;
+	public static final int X86_INS_VCMPEQ_OSSS = 1383;
+	public static final int X86_INS_VCMPLT_OQSS = 1384;
+	public static final int X86_INS_VCMPLE_OQSS = 1385;
+	public static final int X86_INS_VCMPUNORD_SSS = 1386;
+	public static final int X86_INS_VCMPNEQ_USSS = 1387;
+	public static final int X86_INS_VCMPNLT_UQSS = 1388;
+	public static final int X86_INS_VCMPNLE_UQSS = 1389;
+	public static final int X86_INS_VCMPORD_SSS = 1390;
+	public static final int X86_INS_VCMPEQ_USSS = 1391;
+	public static final int X86_INS_VCMPNGE_UQSS = 1392;
+	public static final int X86_INS_VCMPNGT_UQSS = 1393;
+	public static final int X86_INS_VCMPFALSE_OSSS = 1394;
+	public static final int X86_INS_VCMPNEQ_OSSS = 1395;
+	public static final int X86_INS_VCMPGE_OQSS = 1396;
+	public static final int X86_INS_VCMPGT_OQSS = 1397;
+	public static final int X86_INS_VCMPTRUE_USSS = 1398;
+	public static final int X86_INS_VCMPSD = 1399;
+	public static final int X86_INS_VCMPEQSD = 1400;
+	public static final int X86_INS_VCMPLTSD = 1401;
+	public static final int X86_INS_VCMPLESD = 1402;
+	public static final int X86_INS_VCMPUNORDSD = 1403;
+	public static final int X86_INS_VCMPNEQSD = 1404;
+	public static final int X86_INS_VCMPNLTSD = 1405;
+	public static final int X86_INS_VCMPNLESD = 1406;
+	public static final int X86_INS_VCMPORDSD = 1407;
+	public static final int X86_INS_VCMPEQ_UQSD = 1408;
+	public static final int X86_INS_VCMPNGESD = 1409;
+	public static final int X86_INS_VCMPNGTSD = 1410;
+	public static final int X86_INS_VCMPFALSESD = 1411;
+	public static final int X86_INS_VCMPNEQ_OQSD = 1412;
+	public static final int X86_INS_VCMPGESD = 1413;
+	public static final int X86_INS_VCMPGTSD = 1414;
+	public static final int X86_INS_VCMPTRUESD = 1415;
+	public static final int X86_INS_VCMPEQ_OSSD = 1416;
+	public static final int X86_INS_VCMPLT_OQSD = 1417;
+	public static final int X86_INS_VCMPLE_OQSD = 1418;
+	public static final int X86_INS_VCMPUNORD_SSD = 1419;
+	public static final int X86_INS_VCMPNEQ_USSD = 1420;
+	public static final int X86_INS_VCMPNLT_UQSD = 1421;
+	public static final int X86_INS_VCMPNLE_UQSD = 1422;
+	public static final int X86_INS_VCMPORD_SSD = 1423;
+	public static final int X86_INS_VCMPEQ_USSD = 1424;
+	public static final int X86_INS_VCMPNGE_UQSD = 1425;
+	public static final int X86_INS_VCMPNGT_UQSD = 1426;
+	public static final int X86_INS_VCMPFALSE_OSSD = 1427;
+	public static final int X86_INS_VCMPNEQ_OSSD = 1428;
+	public static final int X86_INS_VCMPGE_OQSD = 1429;
+	public static final int X86_INS_VCMPGT_OQSD = 1430;
+	public static final int X86_INS_VCMPTRUE_USSD = 1431;
+	public static final int X86_INS_VCMPPS = 1432;
+	public static final int X86_INS_VCMPEQPS = 1433;
+	public static final int X86_INS_VCMPLTPS = 1434;
+	public static final int X86_INS_VCMPLEPS = 1435;
+	public static final int X86_INS_VCMPUNORDPS = 1436;
+	public static final int X86_INS_VCMPNEQPS = 1437;
+	public static final int X86_INS_VCMPNLTPS = 1438;
+	public static final int X86_INS_VCMPNLEPS = 1439;
+	public static final int X86_INS_VCMPORDPS = 1440;
+	public static final int X86_INS_VCMPEQ_UQPS = 1441;
+	public static final int X86_INS_VCMPNGEPS = 1442;
+	public static final int X86_INS_VCMPNGTPS = 1443;
+	public static final int X86_INS_VCMPFALSEPS = 1444;
+	public static final int X86_INS_VCMPNEQ_OQPS = 1445;
+	public static final int X86_INS_VCMPGEPS = 1446;
+	public static final int X86_INS_VCMPGTPS = 1447;
+	public static final int X86_INS_VCMPTRUEPS = 1448;
+	public static final int X86_INS_VCMPEQ_OSPS = 1449;
+	public static final int X86_INS_VCMPLT_OQPS = 1450;
+	public static final int X86_INS_VCMPLE_OQPS = 1451;
+	public static final int X86_INS_VCMPUNORD_SPS = 1452;
+	public static final int X86_INS_VCMPNEQ_USPS = 1453;
+	public static final int X86_INS_VCMPNLT_UQPS = 1454;
+	public static final int X86_INS_VCMPNLE_UQPS = 1455;
+	public static final int X86_INS_VCMPORD_SPS = 1456;
+	public static final int X86_INS_VCMPEQ_USPS = 1457;
+	public static final int X86_INS_VCMPNGE_UQPS = 1458;
+	public static final int X86_INS_VCMPNGT_UQPS = 1459;
+	public static final int X86_INS_VCMPFALSE_OSPS = 1460;
+	public static final int X86_INS_VCMPNEQ_OSPS = 1461;
+	public static final int X86_INS_VCMPGE_OQPS = 1462;
+	public static final int X86_INS_VCMPGT_OQPS = 1463;
+	public static final int X86_INS_VCMPTRUE_USPS = 1464;
+	public static final int X86_INS_VCMPPD = 1465;
+	public static final int X86_INS_VCMPEQPD = 1466;
+	public static final int X86_INS_VCMPLTPD = 1467;
+	public static final int X86_INS_VCMPLEPD = 1468;
+	public static final int X86_INS_VCMPUNORDPD = 1469;
+	public static final int X86_INS_VCMPNEQPD = 1470;
+	public static final int X86_INS_VCMPNLTPD = 1471;
+	public static final int X86_INS_VCMPNLEPD = 1472;
+	public static final int X86_INS_VCMPORDPD = 1473;
+	public static final int X86_INS_VCMPEQ_UQPD = 1474;
+	public static final int X86_INS_VCMPNGEPD = 1475;
+	public static final int X86_INS_VCMPNGTPD = 1476;
+	public static final int X86_INS_VCMPFALSEPD = 1477;
+	public static final int X86_INS_VCMPNEQ_OQPD = 1478;
+	public static final int X86_INS_VCMPGEPD = 1479;
+	public static final int X86_INS_VCMPGTPD = 1480;
+	public static final int X86_INS_VCMPTRUEPD = 1481;
+	public static final int X86_INS_VCMPEQ_OSPD = 1482;
+	public static final int X86_INS_VCMPLT_OQPD = 1483;
+	public static final int X86_INS_VCMPLE_OQPD = 1484;
+	public static final int X86_INS_VCMPUNORD_SPD = 1485;
+	public static final int X86_INS_VCMPNEQ_USPD = 1486;
+	public static final int X86_INS_VCMPNLT_UQPD = 1487;
+	public static final int X86_INS_VCMPNLE_UQPD = 1488;
+	public static final int X86_INS_VCMPORD_SPD = 1489;
+	public static final int X86_INS_VCMPEQ_USPD = 1490;
+	public static final int X86_INS_VCMPNGE_UQPD = 1491;
+	public static final int X86_INS_VCMPNGT_UQPD = 1492;
+	public static final int X86_INS_VCMPFALSE_OSPD = 1493;
+	public static final int X86_INS_VCMPNEQ_OSPD = 1494;
+	public static final int X86_INS_VCMPGE_OQPD = 1495;
+	public static final int X86_INS_VCMPGT_OQPD = 1496;
+	public static final int X86_INS_VCMPTRUE_USPD = 1497;
+	public static final int X86_INS_ENDING = 1498;
 
 	// Group of X86 instructions
 
diff --git a/bindings/ocaml/m68k_const.ml b/bindings/ocaml/m68k_const.ml
index 09919bc..1873734 100644
--- a/bindings/ocaml/m68k_const.ml
+++ b/bindings/ocaml/m68k_const.ml
@@ -72,7 +72,7 @@
 let _M68K_AM_PC_MEMI_PRE_INDEX = 15;;
 let _M68K_AM_ABSOLUTE_DATA_SHORT = 16;;
 let _M68K_AM_ABSOLUTE_DATA_LONG = 17;;
-let _M68K_AM_IMMIDIATE = 18;;
+let _M68K_AM_IMMEDIATE = 18;;
 
 (* Operand type for instruction's operands *)
 
@@ -80,9 +80,10 @@
 let _M68K_OP_REG = 1;;
 let _M68K_OP_IMM = 2;;
 let _M68K_OP_MEM = 3;;
-let _M68K_OP_FP = 4;;
-let _M68K_OP_REG_BITS = 5;;
-let _M68K_OP_REG_PAIR = 6;;
+let _M68K_OP_FP_SINGLE = 4;;
+let _M68K_OP_FP_DOUBLE = 5;;
+let _M68K_OP_REG_BITS = 6;;
+let _M68K_OP_REG_PAIR = 7;;
 
 let _M68K_CPU_SIZE_NONE = 0;;
 let _M68K_CPU_SIZE_BYTE = 1;;
diff --git a/bindings/ocaml/mips_const.ml b/bindings/ocaml/mips_const.ml
index 9186154..110705c 100644
--- a/bindings/ocaml/mips_const.ml
+++ b/bindings/ocaml/mips_const.ml
@@ -841,6 +841,11 @@
 
 (* Generic groups *)
 let _MIPS_GRP_JUMP = 1;;
+let _MIPS_GRP_CALL = 2;;
+let _MIPS_GRP_RET = 3;;
+let _MIPS_GRP_INT = 4;;
+let _MIPS_GRP_IRET = 5;;
+let _MIPS_GRP_PRIVILEGE = 6;;
 
 (* Architecture-specific groups *)
 let _MIPS_GRP_BITCOUNT = 128;;
diff --git a/bindings/ocaml/x86_const.ml b/bindings/ocaml/x86_const.ml
index 805bf4b..ee346c8 100644
--- a/bindings/ocaml/x86_const.ml
+++ b/bindings/ocaml/x86_const.ml
@@ -489,1249 +489,1409 @@
 let _X86_INS_FCMOVU = 93;;
 let _X86_INS_CMOVS = 94;;
 let _X86_INS_CMP = 95;;
-let _X86_INS_CMPPD = 96;;
-let _X86_INS_CMPPS = 97;;
-let _X86_INS_CMPSB = 98;;
-let _X86_INS_CMPSD = 99;;
-let _X86_INS_CMPSQ = 100;;
-let _X86_INS_CMPSS = 101;;
-let _X86_INS_CMPSW = 102;;
-let _X86_INS_CMPXCHG16B = 103;;
-let _X86_INS_CMPXCHG = 104;;
-let _X86_INS_CMPXCHG8B = 105;;
-let _X86_INS_COMISD = 106;;
-let _X86_INS_COMISS = 107;;
-let _X86_INS_FCOMP = 108;;
-let _X86_INS_FCOMPI = 109;;
-let _X86_INS_FCOMI = 110;;
-let _X86_INS_FCOM = 111;;
-let _X86_INS_FCOS = 112;;
-let _X86_INS_CPUID = 113;;
-let _X86_INS_CQO = 114;;
-let _X86_INS_CRC32 = 115;;
-let _X86_INS_CVTDQ2PD = 116;;
-let _X86_INS_CVTDQ2PS = 117;;
-let _X86_INS_CVTPD2DQ = 118;;
-let _X86_INS_CVTPD2PS = 119;;
-let _X86_INS_CVTPS2DQ = 120;;
-let _X86_INS_CVTPS2PD = 121;;
-let _X86_INS_CVTSD2SI = 122;;
-let _X86_INS_CVTSD2SS = 123;;
-let _X86_INS_CVTSI2SD = 124;;
-let _X86_INS_CVTSI2SS = 125;;
-let _X86_INS_CVTSS2SD = 126;;
-let _X86_INS_CVTSS2SI = 127;;
-let _X86_INS_CVTTPD2DQ = 128;;
-let _X86_INS_CVTTPS2DQ = 129;;
-let _X86_INS_CVTTSD2SI = 130;;
-let _X86_INS_CVTTSS2SI = 131;;
-let _X86_INS_CWD = 132;;
-let _X86_INS_CWDE = 133;;
-let _X86_INS_DAA = 134;;
-let _X86_INS_DAS = 135;;
-let _X86_INS_DATA16 = 136;;
-let _X86_INS_DEC = 137;;
-let _X86_INS_DIV = 138;;
-let _X86_INS_DIVPD = 139;;
-let _X86_INS_DIVPS = 140;;
-let _X86_INS_FDIVR = 141;;
-let _X86_INS_FIDIVR = 142;;
-let _X86_INS_FDIVRP = 143;;
-let _X86_INS_DIVSD = 144;;
-let _X86_INS_DIVSS = 145;;
-let _X86_INS_FDIV = 146;;
-let _X86_INS_FIDIV = 147;;
-let _X86_INS_FDIVP = 148;;
-let _X86_INS_DPPD = 149;;
-let _X86_INS_DPPS = 150;;
-let _X86_INS_RET = 151;;
-let _X86_INS_ENCLS = 152;;
-let _X86_INS_ENCLU = 153;;
-let _X86_INS_ENTER = 154;;
-let _X86_INS_EXTRACTPS = 155;;
-let _X86_INS_EXTRQ = 156;;
-let _X86_INS_F2XM1 = 157;;
-let _X86_INS_LCALL = 158;;
-let _X86_INS_LJMP = 159;;
-let _X86_INS_FBLD = 160;;
-let _X86_INS_FBSTP = 161;;
-let _X86_INS_FCOMPP = 162;;
-let _X86_INS_FDECSTP = 163;;
-let _X86_INS_FEMMS = 164;;
-let _X86_INS_FFREE = 165;;
-let _X86_INS_FICOM = 166;;
-let _X86_INS_FICOMP = 167;;
-let _X86_INS_FINCSTP = 168;;
-let _X86_INS_FLDCW = 169;;
-let _X86_INS_FLDENV = 170;;
-let _X86_INS_FLDL2E = 171;;
-let _X86_INS_FLDL2T = 172;;
-let _X86_INS_FLDLG2 = 173;;
-let _X86_INS_FLDLN2 = 174;;
-let _X86_INS_FLDPI = 175;;
-let _X86_INS_FNCLEX = 176;;
-let _X86_INS_FNINIT = 177;;
-let _X86_INS_FNOP = 178;;
-let _X86_INS_FNSTCW = 179;;
-let _X86_INS_FNSTSW = 180;;
-let _X86_INS_FPATAN = 181;;
-let _X86_INS_FPREM = 182;;
-let _X86_INS_FPREM1 = 183;;
-let _X86_INS_FPTAN = 184;;
-let _X86_INS_FFREEP = 185;;
-let _X86_INS_FRNDINT = 186;;
-let _X86_INS_FRSTOR = 187;;
-let _X86_INS_FNSAVE = 188;;
-let _X86_INS_FSCALE = 189;;
-let _X86_INS_FSETPM = 190;;
-let _X86_INS_FSINCOS = 191;;
-let _X86_INS_FNSTENV = 192;;
-let _X86_INS_FXAM = 193;;
-let _X86_INS_FXRSTOR = 194;;
-let _X86_INS_FXRSTOR64 = 195;;
-let _X86_INS_FXSAVE = 196;;
-let _X86_INS_FXSAVE64 = 197;;
-let _X86_INS_FXTRACT = 198;;
-let _X86_INS_FYL2X = 199;;
-let _X86_INS_FYL2XP1 = 200;;
-let _X86_INS_MOVAPD = 201;;
-let _X86_INS_MOVAPS = 202;;
-let _X86_INS_ORPD = 203;;
-let _X86_INS_ORPS = 204;;
-let _X86_INS_VMOVAPD = 205;;
-let _X86_INS_VMOVAPS = 206;;
-let _X86_INS_XORPD = 207;;
-let _X86_INS_XORPS = 208;;
-let _X86_INS_GETSEC = 209;;
-let _X86_INS_HADDPD = 210;;
-let _X86_INS_HADDPS = 211;;
-let _X86_INS_HLT = 212;;
-let _X86_INS_HSUBPD = 213;;
-let _X86_INS_HSUBPS = 214;;
-let _X86_INS_IDIV = 215;;
-let _X86_INS_FILD = 216;;
-let _X86_INS_IMUL = 217;;
-let _X86_INS_IN = 218;;
-let _X86_INS_INC = 219;;
-let _X86_INS_INSB = 220;;
-let _X86_INS_INSERTPS = 221;;
-let _X86_INS_INSERTQ = 222;;
-let _X86_INS_INSD = 223;;
-let _X86_INS_INSW = 224;;
-let _X86_INS_INT = 225;;
-let _X86_INS_INT1 = 226;;
-let _X86_INS_INT3 = 227;;
-let _X86_INS_INTO = 228;;
-let _X86_INS_INVD = 229;;
-let _X86_INS_INVEPT = 230;;
-let _X86_INS_INVLPG = 231;;
-let _X86_INS_INVLPGA = 232;;
-let _X86_INS_INVPCID = 233;;
-let _X86_INS_INVVPID = 234;;
-let _X86_INS_IRET = 235;;
-let _X86_INS_IRETD = 236;;
-let _X86_INS_IRETQ = 237;;
-let _X86_INS_FISTTP = 238;;
-let _X86_INS_FIST = 239;;
-let _X86_INS_FISTP = 240;;
-let _X86_INS_UCOMISD = 241;;
-let _X86_INS_UCOMISS = 242;;
-let _X86_INS_VCOMISD = 243;;
-let _X86_INS_VCOMISS = 244;;
-let _X86_INS_VCVTSD2SS = 245;;
-let _X86_INS_VCVTSI2SD = 246;;
-let _X86_INS_VCVTSI2SS = 247;;
-let _X86_INS_VCVTSS2SD = 248;;
-let _X86_INS_VCVTTSD2SI = 249;;
-let _X86_INS_VCVTTSD2USI = 250;;
-let _X86_INS_VCVTTSS2SI = 251;;
-let _X86_INS_VCVTTSS2USI = 252;;
-let _X86_INS_VCVTUSI2SD = 253;;
-let _X86_INS_VCVTUSI2SS = 254;;
-let _X86_INS_VUCOMISD = 255;;
-let _X86_INS_VUCOMISS = 256;;
-let _X86_INS_JAE = 257;;
-let _X86_INS_JA = 258;;
-let _X86_INS_JBE = 259;;
-let _X86_INS_JB = 260;;
-let _X86_INS_JCXZ = 261;;
-let _X86_INS_JECXZ = 262;;
-let _X86_INS_JE = 263;;
-let _X86_INS_JGE = 264;;
-let _X86_INS_JG = 265;;
-let _X86_INS_JLE = 266;;
-let _X86_INS_JL = 267;;
-let _X86_INS_JMP = 268;;
-let _X86_INS_JNE = 269;;
-let _X86_INS_JNO = 270;;
-let _X86_INS_JNP = 271;;
-let _X86_INS_JNS = 272;;
-let _X86_INS_JO = 273;;
-let _X86_INS_JP = 274;;
-let _X86_INS_JRCXZ = 275;;
-let _X86_INS_JS = 276;;
-let _X86_INS_KANDB = 277;;
-let _X86_INS_KANDD = 278;;
-let _X86_INS_KANDNB = 279;;
-let _X86_INS_KANDND = 280;;
-let _X86_INS_KANDNQ = 281;;
-let _X86_INS_KANDNW = 282;;
-let _X86_INS_KANDQ = 283;;
-let _X86_INS_KANDW = 284;;
-let _X86_INS_KMOVB = 285;;
-let _X86_INS_KMOVD = 286;;
-let _X86_INS_KMOVQ = 287;;
-let _X86_INS_KMOVW = 288;;
-let _X86_INS_KNOTB = 289;;
-let _X86_INS_KNOTD = 290;;
-let _X86_INS_KNOTQ = 291;;
-let _X86_INS_KNOTW = 292;;
-let _X86_INS_KORB = 293;;
-let _X86_INS_KORD = 294;;
-let _X86_INS_KORQ = 295;;
-let _X86_INS_KORTESTB = 296;;
-let _X86_INS_KORTESTD = 297;;
-let _X86_INS_KORTESTQ = 298;;
-let _X86_INS_KORTESTW = 299;;
-let _X86_INS_KORW = 300;;
-let _X86_INS_KSHIFTLB = 301;;
-let _X86_INS_KSHIFTLD = 302;;
-let _X86_INS_KSHIFTLQ = 303;;
-let _X86_INS_KSHIFTLW = 304;;
-let _X86_INS_KSHIFTRB = 305;;
-let _X86_INS_KSHIFTRD = 306;;
-let _X86_INS_KSHIFTRQ = 307;;
-let _X86_INS_KSHIFTRW = 308;;
-let _X86_INS_KUNPCKBW = 309;;
-let _X86_INS_KXNORB = 310;;
-let _X86_INS_KXNORD = 311;;
-let _X86_INS_KXNORQ = 312;;
-let _X86_INS_KXNORW = 313;;
-let _X86_INS_KXORB = 314;;
-let _X86_INS_KXORD = 315;;
-let _X86_INS_KXORQ = 316;;
-let _X86_INS_KXORW = 317;;
-let _X86_INS_LAHF = 318;;
-let _X86_INS_LAR = 319;;
-let _X86_INS_LDDQU = 320;;
-let _X86_INS_LDMXCSR = 321;;
-let _X86_INS_LDS = 322;;
-let _X86_INS_FLDZ = 323;;
-let _X86_INS_FLD1 = 324;;
-let _X86_INS_FLD = 325;;
-let _X86_INS_LEA = 326;;
-let _X86_INS_LEAVE = 327;;
-let _X86_INS_LES = 328;;
-let _X86_INS_LFENCE = 329;;
-let _X86_INS_LFS = 330;;
-let _X86_INS_LGDT = 331;;
-let _X86_INS_LGS = 332;;
-let _X86_INS_LIDT = 333;;
-let _X86_INS_LLDT = 334;;
-let _X86_INS_LMSW = 335;;
-let _X86_INS_OR = 336;;
-let _X86_INS_SUB = 337;;
-let _X86_INS_XOR = 338;;
-let _X86_INS_LODSB = 339;;
-let _X86_INS_LODSD = 340;;
-let _X86_INS_LODSQ = 341;;
-let _X86_INS_LODSW = 342;;
-let _X86_INS_LOOP = 343;;
-let _X86_INS_LOOPE = 344;;
-let _X86_INS_LOOPNE = 345;;
-let _X86_INS_RETF = 346;;
-let _X86_INS_RETFQ = 347;;
-let _X86_INS_LSL = 348;;
-let _X86_INS_LSS = 349;;
-let _X86_INS_LTR = 350;;
-let _X86_INS_XADD = 351;;
-let _X86_INS_LZCNT = 352;;
-let _X86_INS_MASKMOVDQU = 353;;
-let _X86_INS_MAXPD = 354;;
-let _X86_INS_MAXPS = 355;;
-let _X86_INS_MAXSD = 356;;
-let _X86_INS_MAXSS = 357;;
-let _X86_INS_MFENCE = 358;;
-let _X86_INS_MINPD = 359;;
-let _X86_INS_MINPS = 360;;
-let _X86_INS_MINSD = 361;;
-let _X86_INS_MINSS = 362;;
-let _X86_INS_CVTPD2PI = 363;;
-let _X86_INS_CVTPI2PD = 364;;
-let _X86_INS_CVTPI2PS = 365;;
-let _X86_INS_CVTPS2PI = 366;;
-let _X86_INS_CVTTPD2PI = 367;;
-let _X86_INS_CVTTPS2PI = 368;;
-let _X86_INS_EMMS = 369;;
-let _X86_INS_MASKMOVQ = 370;;
-let _X86_INS_MOVD = 371;;
-let _X86_INS_MOVDQ2Q = 372;;
-let _X86_INS_MOVNTQ = 373;;
-let _X86_INS_MOVQ2DQ = 374;;
-let _X86_INS_MOVQ = 375;;
-let _X86_INS_PABSB = 376;;
-let _X86_INS_PABSD = 377;;
-let _X86_INS_PABSW = 378;;
-let _X86_INS_PACKSSDW = 379;;
-let _X86_INS_PACKSSWB = 380;;
-let _X86_INS_PACKUSWB = 381;;
-let _X86_INS_PADDB = 382;;
-let _X86_INS_PADDD = 383;;
-let _X86_INS_PADDQ = 384;;
-let _X86_INS_PADDSB = 385;;
-let _X86_INS_PADDSW = 386;;
-let _X86_INS_PADDUSB = 387;;
-let _X86_INS_PADDUSW = 388;;
-let _X86_INS_PADDW = 389;;
-let _X86_INS_PALIGNR = 390;;
-let _X86_INS_PANDN = 391;;
-let _X86_INS_PAND = 392;;
-let _X86_INS_PAVGB = 393;;
-let _X86_INS_PAVGW = 394;;
-let _X86_INS_PCMPEQB = 395;;
-let _X86_INS_PCMPEQD = 396;;
-let _X86_INS_PCMPEQW = 397;;
-let _X86_INS_PCMPGTB = 398;;
-let _X86_INS_PCMPGTD = 399;;
-let _X86_INS_PCMPGTW = 400;;
-let _X86_INS_PEXTRW = 401;;
-let _X86_INS_PHADDSW = 402;;
-let _X86_INS_PHADDW = 403;;
-let _X86_INS_PHADDD = 404;;
-let _X86_INS_PHSUBD = 405;;
-let _X86_INS_PHSUBSW = 406;;
-let _X86_INS_PHSUBW = 407;;
-let _X86_INS_PINSRW = 408;;
-let _X86_INS_PMADDUBSW = 409;;
-let _X86_INS_PMADDWD = 410;;
-let _X86_INS_PMAXSW = 411;;
-let _X86_INS_PMAXUB = 412;;
-let _X86_INS_PMINSW = 413;;
-let _X86_INS_PMINUB = 414;;
-let _X86_INS_PMOVMSKB = 415;;
-let _X86_INS_PMULHRSW = 416;;
-let _X86_INS_PMULHUW = 417;;
-let _X86_INS_PMULHW = 418;;
-let _X86_INS_PMULLW = 419;;
-let _X86_INS_PMULUDQ = 420;;
-let _X86_INS_POR = 421;;
-let _X86_INS_PSADBW = 422;;
-let _X86_INS_PSHUFB = 423;;
-let _X86_INS_PSHUFW = 424;;
-let _X86_INS_PSIGNB = 425;;
-let _X86_INS_PSIGND = 426;;
-let _X86_INS_PSIGNW = 427;;
-let _X86_INS_PSLLD = 428;;
-let _X86_INS_PSLLQ = 429;;
-let _X86_INS_PSLLW = 430;;
-let _X86_INS_PSRAD = 431;;
-let _X86_INS_PSRAW = 432;;
-let _X86_INS_PSRLD = 433;;
-let _X86_INS_PSRLQ = 434;;
-let _X86_INS_PSRLW = 435;;
-let _X86_INS_PSUBB = 436;;
-let _X86_INS_PSUBD = 437;;
-let _X86_INS_PSUBQ = 438;;
-let _X86_INS_PSUBSB = 439;;
-let _X86_INS_PSUBSW = 440;;
-let _X86_INS_PSUBUSB = 441;;
-let _X86_INS_PSUBUSW = 442;;
-let _X86_INS_PSUBW = 443;;
-let _X86_INS_PUNPCKHBW = 444;;
-let _X86_INS_PUNPCKHDQ = 445;;
-let _X86_INS_PUNPCKHWD = 446;;
-let _X86_INS_PUNPCKLBW = 447;;
-let _X86_INS_PUNPCKLDQ = 448;;
-let _X86_INS_PUNPCKLWD = 449;;
-let _X86_INS_PXOR = 450;;
-let _X86_INS_MONITOR = 451;;
-let _X86_INS_MONTMUL = 452;;
-let _X86_INS_MOV = 453;;
-let _X86_INS_MOVABS = 454;;
-let _X86_INS_MOVBE = 455;;
-let _X86_INS_MOVDDUP = 456;;
-let _X86_INS_MOVDQA = 457;;
-let _X86_INS_MOVDQU = 458;;
-let _X86_INS_MOVHLPS = 459;;
-let _X86_INS_MOVHPD = 460;;
-let _X86_INS_MOVHPS = 461;;
-let _X86_INS_MOVLHPS = 462;;
-let _X86_INS_MOVLPD = 463;;
-let _X86_INS_MOVLPS = 464;;
-let _X86_INS_MOVMSKPD = 465;;
-let _X86_INS_MOVMSKPS = 466;;
-let _X86_INS_MOVNTDQA = 467;;
-let _X86_INS_MOVNTDQ = 468;;
-let _X86_INS_MOVNTI = 469;;
-let _X86_INS_MOVNTPD = 470;;
-let _X86_INS_MOVNTPS = 471;;
-let _X86_INS_MOVNTSD = 472;;
-let _X86_INS_MOVNTSS = 473;;
-let _X86_INS_MOVSB = 474;;
-let _X86_INS_MOVSD = 475;;
-let _X86_INS_MOVSHDUP = 476;;
-let _X86_INS_MOVSLDUP = 477;;
-let _X86_INS_MOVSQ = 478;;
-let _X86_INS_MOVSS = 479;;
-let _X86_INS_MOVSW = 480;;
-let _X86_INS_MOVSX = 481;;
-let _X86_INS_MOVSXD = 482;;
-let _X86_INS_MOVUPD = 483;;
-let _X86_INS_MOVUPS = 484;;
-let _X86_INS_MOVZX = 485;;
-let _X86_INS_MPSADBW = 486;;
-let _X86_INS_MUL = 487;;
-let _X86_INS_MULPD = 488;;
-let _X86_INS_MULPS = 489;;
-let _X86_INS_MULSD = 490;;
-let _X86_INS_MULSS = 491;;
-let _X86_INS_MULX = 492;;
-let _X86_INS_FMUL = 493;;
-let _X86_INS_FIMUL = 494;;
-let _X86_INS_FMULP = 495;;
-let _X86_INS_MWAIT = 496;;
-let _X86_INS_NEG = 497;;
-let _X86_INS_NOP = 498;;
-let _X86_INS_NOT = 499;;
-let _X86_INS_OUT = 500;;
-let _X86_INS_OUTSB = 501;;
-let _X86_INS_OUTSD = 502;;
-let _X86_INS_OUTSW = 503;;
-let _X86_INS_PACKUSDW = 504;;
-let _X86_INS_PAUSE = 505;;
-let _X86_INS_PAVGUSB = 506;;
-let _X86_INS_PBLENDVB = 507;;
-let _X86_INS_PBLENDW = 508;;
-let _X86_INS_PCLMULQDQ = 509;;
-let _X86_INS_PCMPEQQ = 510;;
-let _X86_INS_PCMPESTRI = 511;;
-let _X86_INS_PCMPESTRM = 512;;
-let _X86_INS_PCMPGTQ = 513;;
-let _X86_INS_PCMPISTRI = 514;;
-let _X86_INS_PCMPISTRM = 515;;
-let _X86_INS_PCOMMIT = 516;;
-let _X86_INS_PDEP = 517;;
-let _X86_INS_PEXT = 518;;
-let _X86_INS_PEXTRB = 519;;
-let _X86_INS_PEXTRD = 520;;
-let _X86_INS_PEXTRQ = 521;;
-let _X86_INS_PF2ID = 522;;
-let _X86_INS_PF2IW = 523;;
-let _X86_INS_PFACC = 524;;
-let _X86_INS_PFADD = 525;;
-let _X86_INS_PFCMPEQ = 526;;
-let _X86_INS_PFCMPGE = 527;;
-let _X86_INS_PFCMPGT = 528;;
-let _X86_INS_PFMAX = 529;;
-let _X86_INS_PFMIN = 530;;
-let _X86_INS_PFMUL = 531;;
-let _X86_INS_PFNACC = 532;;
-let _X86_INS_PFPNACC = 533;;
-let _X86_INS_PFRCPIT1 = 534;;
-let _X86_INS_PFRCPIT2 = 535;;
-let _X86_INS_PFRCP = 536;;
-let _X86_INS_PFRSQIT1 = 537;;
-let _X86_INS_PFRSQRT = 538;;
-let _X86_INS_PFSUBR = 539;;
-let _X86_INS_PFSUB = 540;;
-let _X86_INS_PHMINPOSUW = 541;;
-let _X86_INS_PI2FD = 542;;
-let _X86_INS_PI2FW = 543;;
-let _X86_INS_PINSRB = 544;;
-let _X86_INS_PINSRD = 545;;
-let _X86_INS_PINSRQ = 546;;
-let _X86_INS_PMAXSB = 547;;
-let _X86_INS_PMAXSD = 548;;
-let _X86_INS_PMAXUD = 549;;
-let _X86_INS_PMAXUW = 550;;
-let _X86_INS_PMINSB = 551;;
-let _X86_INS_PMINSD = 552;;
-let _X86_INS_PMINUD = 553;;
-let _X86_INS_PMINUW = 554;;
-let _X86_INS_PMOVSXBD = 555;;
-let _X86_INS_PMOVSXBQ = 556;;
-let _X86_INS_PMOVSXBW = 557;;
-let _X86_INS_PMOVSXDQ = 558;;
-let _X86_INS_PMOVSXWD = 559;;
-let _X86_INS_PMOVSXWQ = 560;;
-let _X86_INS_PMOVZXBD = 561;;
-let _X86_INS_PMOVZXBQ = 562;;
-let _X86_INS_PMOVZXBW = 563;;
-let _X86_INS_PMOVZXDQ = 564;;
-let _X86_INS_PMOVZXWD = 565;;
-let _X86_INS_PMOVZXWQ = 566;;
-let _X86_INS_PMULDQ = 567;;
-let _X86_INS_PMULHRW = 568;;
-let _X86_INS_PMULLD = 569;;
-let _X86_INS_POP = 570;;
-let _X86_INS_POPAW = 571;;
-let _X86_INS_POPAL = 572;;
-let _X86_INS_POPCNT = 573;;
-let _X86_INS_POPF = 574;;
-let _X86_INS_POPFD = 575;;
-let _X86_INS_POPFQ = 576;;
-let _X86_INS_PREFETCH = 577;;
-let _X86_INS_PREFETCHNTA = 578;;
-let _X86_INS_PREFETCHT0 = 579;;
-let _X86_INS_PREFETCHT1 = 580;;
-let _X86_INS_PREFETCHT2 = 581;;
-let _X86_INS_PREFETCHW = 582;;
-let _X86_INS_PSHUFD = 583;;
-let _X86_INS_PSHUFHW = 584;;
-let _X86_INS_PSHUFLW = 585;;
-let _X86_INS_PSLLDQ = 586;;
-let _X86_INS_PSRLDQ = 587;;
-let _X86_INS_PSWAPD = 588;;
-let _X86_INS_PTEST = 589;;
-let _X86_INS_PUNPCKHQDQ = 590;;
-let _X86_INS_PUNPCKLQDQ = 591;;
-let _X86_INS_PUSH = 592;;
-let _X86_INS_PUSHAW = 593;;
-let _X86_INS_PUSHAL = 594;;
-let _X86_INS_PUSHF = 595;;
-let _X86_INS_PUSHFD = 596;;
-let _X86_INS_PUSHFQ = 597;;
-let _X86_INS_RCL = 598;;
-let _X86_INS_RCPPS = 599;;
-let _X86_INS_RCPSS = 600;;
-let _X86_INS_RCR = 601;;
-let _X86_INS_RDFSBASE = 602;;
-let _X86_INS_RDGSBASE = 603;;
-let _X86_INS_RDMSR = 604;;
-let _X86_INS_RDPMC = 605;;
-let _X86_INS_RDRAND = 606;;
-let _X86_INS_RDSEED = 607;;
-let _X86_INS_RDTSC = 608;;
-let _X86_INS_RDTSCP = 609;;
-let _X86_INS_ROL = 610;;
-let _X86_INS_ROR = 611;;
-let _X86_INS_RORX = 612;;
-let _X86_INS_ROUNDPD = 613;;
-let _X86_INS_ROUNDPS = 614;;
-let _X86_INS_ROUNDSD = 615;;
-let _X86_INS_ROUNDSS = 616;;
-let _X86_INS_RSM = 617;;
-let _X86_INS_RSQRTPS = 618;;
-let _X86_INS_RSQRTSS = 619;;
-let _X86_INS_SAHF = 620;;
-let _X86_INS_SAL = 621;;
-let _X86_INS_SALC = 622;;
-let _X86_INS_SAR = 623;;
-let _X86_INS_SARX = 624;;
-let _X86_INS_SBB = 625;;
-let _X86_INS_SCASB = 626;;
-let _X86_INS_SCASD = 627;;
-let _X86_INS_SCASQ = 628;;
-let _X86_INS_SCASW = 629;;
-let _X86_INS_SETAE = 630;;
-let _X86_INS_SETA = 631;;
-let _X86_INS_SETBE = 632;;
-let _X86_INS_SETB = 633;;
-let _X86_INS_SETE = 634;;
-let _X86_INS_SETGE = 635;;
-let _X86_INS_SETG = 636;;
-let _X86_INS_SETLE = 637;;
-let _X86_INS_SETL = 638;;
-let _X86_INS_SETNE = 639;;
-let _X86_INS_SETNO = 640;;
-let _X86_INS_SETNP = 641;;
-let _X86_INS_SETNS = 642;;
-let _X86_INS_SETO = 643;;
-let _X86_INS_SETP = 644;;
-let _X86_INS_SETS = 645;;
-let _X86_INS_SFENCE = 646;;
-let _X86_INS_SGDT = 647;;
-let _X86_INS_SHA1MSG1 = 648;;
-let _X86_INS_SHA1MSG2 = 649;;
-let _X86_INS_SHA1NEXTE = 650;;
-let _X86_INS_SHA1RNDS4 = 651;;
-let _X86_INS_SHA256MSG1 = 652;;
-let _X86_INS_SHA256MSG2 = 653;;
-let _X86_INS_SHA256RNDS2 = 654;;
-let _X86_INS_SHL = 655;;
-let _X86_INS_SHLD = 656;;
-let _X86_INS_SHLX = 657;;
-let _X86_INS_SHR = 658;;
-let _X86_INS_SHRD = 659;;
-let _X86_INS_SHRX = 660;;
-let _X86_INS_SHUFPD = 661;;
-let _X86_INS_SHUFPS = 662;;
-let _X86_INS_SIDT = 663;;
-let _X86_INS_FSIN = 664;;
-let _X86_INS_SKINIT = 665;;
-let _X86_INS_SLDT = 666;;
-let _X86_INS_SMSW = 667;;
-let _X86_INS_SQRTPD = 668;;
-let _X86_INS_SQRTPS = 669;;
-let _X86_INS_SQRTSD = 670;;
-let _X86_INS_SQRTSS = 671;;
-let _X86_INS_FSQRT = 672;;
-let _X86_INS_STAC = 673;;
-let _X86_INS_STC = 674;;
-let _X86_INS_STD = 675;;
-let _X86_INS_STGI = 676;;
-let _X86_INS_STI = 677;;
-let _X86_INS_STMXCSR = 678;;
-let _X86_INS_STOSB = 679;;
-let _X86_INS_STOSD = 680;;
-let _X86_INS_STOSQ = 681;;
-let _X86_INS_STOSW = 682;;
-let _X86_INS_STR = 683;;
-let _X86_INS_FST = 684;;
-let _X86_INS_FSTP = 685;;
-let _X86_INS_FSTPNCE = 686;;
-let _X86_INS_FXCH = 687;;
-let _X86_INS_SUBPD = 688;;
-let _X86_INS_SUBPS = 689;;
-let _X86_INS_FSUBR = 690;;
-let _X86_INS_FISUBR = 691;;
-let _X86_INS_FSUBRP = 692;;
-let _X86_INS_SUBSD = 693;;
-let _X86_INS_SUBSS = 694;;
-let _X86_INS_FSUB = 695;;
-let _X86_INS_FISUB = 696;;
-let _X86_INS_FSUBP = 697;;
-let _X86_INS_SWAPGS = 698;;
-let _X86_INS_SYSCALL = 699;;
-let _X86_INS_SYSENTER = 700;;
-let _X86_INS_SYSEXIT = 701;;
-let _X86_INS_SYSRET = 702;;
-let _X86_INS_T1MSKC = 703;;
-let _X86_INS_TEST = 704;;
-let _X86_INS_UD2 = 705;;
-let _X86_INS_FTST = 706;;
-let _X86_INS_TZCNT = 707;;
-let _X86_INS_TZMSK = 708;;
-let _X86_INS_FUCOMPI = 709;;
-let _X86_INS_FUCOMI = 710;;
-let _X86_INS_FUCOMPP = 711;;
-let _X86_INS_FUCOMP = 712;;
-let _X86_INS_FUCOM = 713;;
-let _X86_INS_UD2B = 714;;
-let _X86_INS_UNPCKHPD = 715;;
-let _X86_INS_UNPCKHPS = 716;;
-let _X86_INS_UNPCKLPD = 717;;
-let _X86_INS_UNPCKLPS = 718;;
-let _X86_INS_VADDPD = 719;;
-let _X86_INS_VADDPS = 720;;
-let _X86_INS_VADDSD = 721;;
-let _X86_INS_VADDSS = 722;;
-let _X86_INS_VADDSUBPD = 723;;
-let _X86_INS_VADDSUBPS = 724;;
-let _X86_INS_VAESDECLAST = 725;;
-let _X86_INS_VAESDEC = 726;;
-let _X86_INS_VAESENCLAST = 727;;
-let _X86_INS_VAESENC = 728;;
-let _X86_INS_VAESIMC = 729;;
-let _X86_INS_VAESKEYGENASSIST = 730;;
-let _X86_INS_VALIGND = 731;;
-let _X86_INS_VALIGNQ = 732;;
-let _X86_INS_VANDNPD = 733;;
-let _X86_INS_VANDNPS = 734;;
-let _X86_INS_VANDPD = 735;;
-let _X86_INS_VANDPS = 736;;
-let _X86_INS_VBLENDMPD = 737;;
-let _X86_INS_VBLENDMPS = 738;;
-let _X86_INS_VBLENDPD = 739;;
-let _X86_INS_VBLENDPS = 740;;
-let _X86_INS_VBLENDVPD = 741;;
-let _X86_INS_VBLENDVPS = 742;;
-let _X86_INS_VBROADCASTF128 = 743;;
-let _X86_INS_VBROADCASTI32X4 = 744;;
-let _X86_INS_VBROADCASTI64X4 = 745;;
-let _X86_INS_VBROADCASTSD = 746;;
-let _X86_INS_VBROADCASTSS = 747;;
-let _X86_INS_VCMPPD = 748;;
-let _X86_INS_VCMPPS = 749;;
-let _X86_INS_VCMPSD = 750;;
-let _X86_INS_VCMPSS = 751;;
-let _X86_INS_VCOMPRESSPD = 752;;
-let _X86_INS_VCOMPRESSPS = 753;;
-let _X86_INS_VCVTDQ2PD = 754;;
-let _X86_INS_VCVTDQ2PS = 755;;
-let _X86_INS_VCVTPD2DQX = 756;;
-let _X86_INS_VCVTPD2DQ = 757;;
-let _X86_INS_VCVTPD2PSX = 758;;
-let _X86_INS_VCVTPD2PS = 759;;
-let _X86_INS_VCVTPD2UDQ = 760;;
-let _X86_INS_VCVTPH2PS = 761;;
-let _X86_INS_VCVTPS2DQ = 762;;
-let _X86_INS_VCVTPS2PD = 763;;
-let _X86_INS_VCVTPS2PH = 764;;
-let _X86_INS_VCVTPS2UDQ = 765;;
-let _X86_INS_VCVTSD2SI = 766;;
-let _X86_INS_VCVTSD2USI = 767;;
-let _X86_INS_VCVTSS2SI = 768;;
-let _X86_INS_VCVTSS2USI = 769;;
-let _X86_INS_VCVTTPD2DQX = 770;;
-let _X86_INS_VCVTTPD2DQ = 771;;
-let _X86_INS_VCVTTPD2UDQ = 772;;
-let _X86_INS_VCVTTPS2DQ = 773;;
-let _X86_INS_VCVTTPS2UDQ = 774;;
-let _X86_INS_VCVTUDQ2PD = 775;;
-let _X86_INS_VCVTUDQ2PS = 776;;
-let _X86_INS_VDIVPD = 777;;
-let _X86_INS_VDIVPS = 778;;
-let _X86_INS_VDIVSD = 779;;
-let _X86_INS_VDIVSS = 780;;
-let _X86_INS_VDPPD = 781;;
-let _X86_INS_VDPPS = 782;;
-let _X86_INS_VERR = 783;;
-let _X86_INS_VERW = 784;;
-let _X86_INS_VEXP2PD = 785;;
-let _X86_INS_VEXP2PS = 786;;
-let _X86_INS_VEXPANDPD = 787;;
-let _X86_INS_VEXPANDPS = 788;;
-let _X86_INS_VEXTRACTF128 = 789;;
-let _X86_INS_VEXTRACTF32X4 = 790;;
-let _X86_INS_VEXTRACTF64X4 = 791;;
-let _X86_INS_VEXTRACTI128 = 792;;
-let _X86_INS_VEXTRACTI32X4 = 793;;
-let _X86_INS_VEXTRACTI64X4 = 794;;
-let _X86_INS_VEXTRACTPS = 795;;
-let _X86_INS_VFMADD132PD = 796;;
-let _X86_INS_VFMADD132PS = 797;;
-let _X86_INS_VFMADDPD = 798;;
-let _X86_INS_VFMADD213PD = 799;;
-let _X86_INS_VFMADD231PD = 800;;
-let _X86_INS_VFMADDPS = 801;;
-let _X86_INS_VFMADD213PS = 802;;
-let _X86_INS_VFMADD231PS = 803;;
-let _X86_INS_VFMADDSD = 804;;
-let _X86_INS_VFMADD213SD = 805;;
-let _X86_INS_VFMADD132SD = 806;;
-let _X86_INS_VFMADD231SD = 807;;
-let _X86_INS_VFMADDSS = 808;;
-let _X86_INS_VFMADD213SS = 809;;
-let _X86_INS_VFMADD132SS = 810;;
-let _X86_INS_VFMADD231SS = 811;;
-let _X86_INS_VFMADDSUB132PD = 812;;
-let _X86_INS_VFMADDSUB132PS = 813;;
-let _X86_INS_VFMADDSUBPD = 814;;
-let _X86_INS_VFMADDSUB213PD = 815;;
-let _X86_INS_VFMADDSUB231PD = 816;;
-let _X86_INS_VFMADDSUBPS = 817;;
-let _X86_INS_VFMADDSUB213PS = 818;;
-let _X86_INS_VFMADDSUB231PS = 819;;
-let _X86_INS_VFMSUB132PD = 820;;
-let _X86_INS_VFMSUB132PS = 821;;
-let _X86_INS_VFMSUBADD132PD = 822;;
-let _X86_INS_VFMSUBADD132PS = 823;;
-let _X86_INS_VFMSUBADDPD = 824;;
-let _X86_INS_VFMSUBADD213PD = 825;;
-let _X86_INS_VFMSUBADD231PD = 826;;
-let _X86_INS_VFMSUBADDPS = 827;;
-let _X86_INS_VFMSUBADD213PS = 828;;
-let _X86_INS_VFMSUBADD231PS = 829;;
-let _X86_INS_VFMSUBPD = 830;;
-let _X86_INS_VFMSUB213PD = 831;;
-let _X86_INS_VFMSUB231PD = 832;;
-let _X86_INS_VFMSUBPS = 833;;
-let _X86_INS_VFMSUB213PS = 834;;
-let _X86_INS_VFMSUB231PS = 835;;
-let _X86_INS_VFMSUBSD = 836;;
-let _X86_INS_VFMSUB213SD = 837;;
-let _X86_INS_VFMSUB132SD = 838;;
-let _X86_INS_VFMSUB231SD = 839;;
-let _X86_INS_VFMSUBSS = 840;;
-let _X86_INS_VFMSUB213SS = 841;;
-let _X86_INS_VFMSUB132SS = 842;;
-let _X86_INS_VFMSUB231SS = 843;;
-let _X86_INS_VFNMADD132PD = 844;;
-let _X86_INS_VFNMADD132PS = 845;;
-let _X86_INS_VFNMADDPD = 846;;
-let _X86_INS_VFNMADD213PD = 847;;
-let _X86_INS_VFNMADD231PD = 848;;
-let _X86_INS_VFNMADDPS = 849;;
-let _X86_INS_VFNMADD213PS = 850;;
-let _X86_INS_VFNMADD231PS = 851;;
-let _X86_INS_VFNMADDSD = 852;;
-let _X86_INS_VFNMADD213SD = 853;;
-let _X86_INS_VFNMADD132SD = 854;;
-let _X86_INS_VFNMADD231SD = 855;;
-let _X86_INS_VFNMADDSS = 856;;
-let _X86_INS_VFNMADD213SS = 857;;
-let _X86_INS_VFNMADD132SS = 858;;
-let _X86_INS_VFNMADD231SS = 859;;
-let _X86_INS_VFNMSUB132PD = 860;;
-let _X86_INS_VFNMSUB132PS = 861;;
-let _X86_INS_VFNMSUBPD = 862;;
-let _X86_INS_VFNMSUB213PD = 863;;
-let _X86_INS_VFNMSUB231PD = 864;;
-let _X86_INS_VFNMSUBPS = 865;;
-let _X86_INS_VFNMSUB213PS = 866;;
-let _X86_INS_VFNMSUB231PS = 867;;
-let _X86_INS_VFNMSUBSD = 868;;
-let _X86_INS_VFNMSUB213SD = 869;;
-let _X86_INS_VFNMSUB132SD = 870;;
-let _X86_INS_VFNMSUB231SD = 871;;
-let _X86_INS_VFNMSUBSS = 872;;
-let _X86_INS_VFNMSUB213SS = 873;;
-let _X86_INS_VFNMSUB132SS = 874;;
-let _X86_INS_VFNMSUB231SS = 875;;
-let _X86_INS_VFRCZPD = 876;;
-let _X86_INS_VFRCZPS = 877;;
-let _X86_INS_VFRCZSD = 878;;
-let _X86_INS_VFRCZSS = 879;;
-let _X86_INS_VORPD = 880;;
-let _X86_INS_VORPS = 881;;
-let _X86_INS_VXORPD = 882;;
-let _X86_INS_VXORPS = 883;;
-let _X86_INS_VGATHERDPD = 884;;
-let _X86_INS_VGATHERDPS = 885;;
-let _X86_INS_VGATHERPF0DPD = 886;;
-let _X86_INS_VGATHERPF0DPS = 887;;
-let _X86_INS_VGATHERPF0QPD = 888;;
-let _X86_INS_VGATHERPF0QPS = 889;;
-let _X86_INS_VGATHERPF1DPD = 890;;
-let _X86_INS_VGATHERPF1DPS = 891;;
-let _X86_INS_VGATHERPF1QPD = 892;;
-let _X86_INS_VGATHERPF1QPS = 893;;
-let _X86_INS_VGATHERQPD = 894;;
-let _X86_INS_VGATHERQPS = 895;;
-let _X86_INS_VHADDPD = 896;;
-let _X86_INS_VHADDPS = 897;;
-let _X86_INS_VHSUBPD = 898;;
-let _X86_INS_VHSUBPS = 899;;
-let _X86_INS_VINSERTF128 = 900;;
-let _X86_INS_VINSERTF32X4 = 901;;
-let _X86_INS_VINSERTF32X8 = 902;;
-let _X86_INS_VINSERTF64X2 = 903;;
-let _X86_INS_VINSERTF64X4 = 904;;
-let _X86_INS_VINSERTI128 = 905;;
-let _X86_INS_VINSERTI32X4 = 906;;
-let _X86_INS_VINSERTI32X8 = 907;;
-let _X86_INS_VINSERTI64X2 = 908;;
-let _X86_INS_VINSERTI64X4 = 909;;
-let _X86_INS_VINSERTPS = 910;;
-let _X86_INS_VLDDQU = 911;;
-let _X86_INS_VLDMXCSR = 912;;
-let _X86_INS_VMASKMOVDQU = 913;;
-let _X86_INS_VMASKMOVPD = 914;;
-let _X86_INS_VMASKMOVPS = 915;;
-let _X86_INS_VMAXPD = 916;;
-let _X86_INS_VMAXPS = 917;;
-let _X86_INS_VMAXSD = 918;;
-let _X86_INS_VMAXSS = 919;;
-let _X86_INS_VMCALL = 920;;
-let _X86_INS_VMCLEAR = 921;;
-let _X86_INS_VMFUNC = 922;;
-let _X86_INS_VMINPD = 923;;
-let _X86_INS_VMINPS = 924;;
-let _X86_INS_VMINSD = 925;;
-let _X86_INS_VMINSS = 926;;
-let _X86_INS_VMLAUNCH = 927;;
-let _X86_INS_VMLOAD = 928;;
-let _X86_INS_VMMCALL = 929;;
-let _X86_INS_VMOVQ = 930;;
-let _X86_INS_VMOVDDUP = 931;;
-let _X86_INS_VMOVD = 932;;
-let _X86_INS_VMOVDQA32 = 933;;
-let _X86_INS_VMOVDQA64 = 934;;
-let _X86_INS_VMOVDQA = 935;;
-let _X86_INS_VMOVDQU16 = 936;;
-let _X86_INS_VMOVDQU32 = 937;;
-let _X86_INS_VMOVDQU64 = 938;;
-let _X86_INS_VMOVDQU8 = 939;;
-let _X86_INS_VMOVDQU = 940;;
-let _X86_INS_VMOVHLPS = 941;;
-let _X86_INS_VMOVHPD = 942;;
-let _X86_INS_VMOVHPS = 943;;
-let _X86_INS_VMOVLHPS = 944;;
-let _X86_INS_VMOVLPD = 945;;
-let _X86_INS_VMOVLPS = 946;;
-let _X86_INS_VMOVMSKPD = 947;;
-let _X86_INS_VMOVMSKPS = 948;;
-let _X86_INS_VMOVNTDQA = 949;;
-let _X86_INS_VMOVNTDQ = 950;;
-let _X86_INS_VMOVNTPD = 951;;
-let _X86_INS_VMOVNTPS = 952;;
-let _X86_INS_VMOVSD = 953;;
-let _X86_INS_VMOVSHDUP = 954;;
-let _X86_INS_VMOVSLDUP = 955;;
-let _X86_INS_VMOVSS = 956;;
-let _X86_INS_VMOVUPD = 957;;
-let _X86_INS_VMOVUPS = 958;;
-let _X86_INS_VMPSADBW = 959;;
-let _X86_INS_VMPTRLD = 960;;
-let _X86_INS_VMPTRST = 961;;
-let _X86_INS_VMREAD = 962;;
-let _X86_INS_VMRESUME = 963;;
-let _X86_INS_VMRUN = 964;;
-let _X86_INS_VMSAVE = 965;;
-let _X86_INS_VMULPD = 966;;
-let _X86_INS_VMULPS = 967;;
-let _X86_INS_VMULSD = 968;;
-let _X86_INS_VMULSS = 969;;
-let _X86_INS_VMWRITE = 970;;
-let _X86_INS_VMXOFF = 971;;
-let _X86_INS_VMXON = 972;;
-let _X86_INS_VPABSB = 973;;
-let _X86_INS_VPABSD = 974;;
-let _X86_INS_VPABSQ = 975;;
-let _X86_INS_VPABSW = 976;;
-let _X86_INS_VPACKSSDW = 977;;
-let _X86_INS_VPACKSSWB = 978;;
-let _X86_INS_VPACKUSDW = 979;;
-let _X86_INS_VPACKUSWB = 980;;
-let _X86_INS_VPADDB = 981;;
-let _X86_INS_VPADDD = 982;;
-let _X86_INS_VPADDQ = 983;;
-let _X86_INS_VPADDSB = 984;;
-let _X86_INS_VPADDSW = 985;;
-let _X86_INS_VPADDUSB = 986;;
-let _X86_INS_VPADDUSW = 987;;
-let _X86_INS_VPADDW = 988;;
-let _X86_INS_VPALIGNR = 989;;
-let _X86_INS_VPANDD = 990;;
-let _X86_INS_VPANDND = 991;;
-let _X86_INS_VPANDNQ = 992;;
-let _X86_INS_VPANDN = 993;;
-let _X86_INS_VPANDQ = 994;;
-let _X86_INS_VPAND = 995;;
-let _X86_INS_VPAVGB = 996;;
-let _X86_INS_VPAVGW = 997;;
-let _X86_INS_VPBLENDD = 998;;
-let _X86_INS_VPBLENDMB = 999;;
-let _X86_INS_VPBLENDMD = 1000;;
-let _X86_INS_VPBLENDMQ = 1001;;
-let _X86_INS_VPBLENDMW = 1002;;
-let _X86_INS_VPBLENDVB = 1003;;
-let _X86_INS_VPBLENDW = 1004;;
-let _X86_INS_VPBROADCASTB = 1005;;
-let _X86_INS_VPBROADCASTD = 1006;;
-let _X86_INS_VPBROADCASTMB2Q = 1007;;
-let _X86_INS_VPBROADCASTMW2D = 1008;;
-let _X86_INS_VPBROADCASTQ = 1009;;
-let _X86_INS_VPBROADCASTW = 1010;;
-let _X86_INS_VPCLMULQDQ = 1011;;
-let _X86_INS_VPCMOV = 1012;;
-let _X86_INS_VPCMPB = 1013;;
-let _X86_INS_VPCMPD = 1014;;
-let _X86_INS_VPCMPEQB = 1015;;
-let _X86_INS_VPCMPEQD = 1016;;
-let _X86_INS_VPCMPEQQ = 1017;;
-let _X86_INS_VPCMPEQW = 1018;;
-let _X86_INS_VPCMPESTRI = 1019;;
-let _X86_INS_VPCMPESTRM = 1020;;
-let _X86_INS_VPCMPGTB = 1021;;
-let _X86_INS_VPCMPGTD = 1022;;
-let _X86_INS_VPCMPGTQ = 1023;;
-let _X86_INS_VPCMPGTW = 1024;;
-let _X86_INS_VPCMPISTRI = 1025;;
-let _X86_INS_VPCMPISTRM = 1026;;
-let _X86_INS_VPCMPQ = 1027;;
-let _X86_INS_VPCMPUB = 1028;;
-let _X86_INS_VPCMPUD = 1029;;
-let _X86_INS_VPCMPUQ = 1030;;
-let _X86_INS_VPCMPUW = 1031;;
-let _X86_INS_VPCMPW = 1032;;
-let _X86_INS_VPCOMB = 1033;;
-let _X86_INS_VPCOMD = 1034;;
-let _X86_INS_VPCOMPRESSD = 1035;;
-let _X86_INS_VPCOMPRESSQ = 1036;;
-let _X86_INS_VPCOMQ = 1037;;
-let _X86_INS_VPCOMUB = 1038;;
-let _X86_INS_VPCOMUD = 1039;;
-let _X86_INS_VPCOMUQ = 1040;;
-let _X86_INS_VPCOMUW = 1041;;
-let _X86_INS_VPCOMW = 1042;;
-let _X86_INS_VPCONFLICTD = 1043;;
-let _X86_INS_VPCONFLICTQ = 1044;;
-let _X86_INS_VPERM2F128 = 1045;;
-let _X86_INS_VPERM2I128 = 1046;;
-let _X86_INS_VPERMD = 1047;;
-let _X86_INS_VPERMI2D = 1048;;
-let _X86_INS_VPERMI2PD = 1049;;
-let _X86_INS_VPERMI2PS = 1050;;
-let _X86_INS_VPERMI2Q = 1051;;
-let _X86_INS_VPERMIL2PD = 1052;;
-let _X86_INS_VPERMIL2PS = 1053;;
-let _X86_INS_VPERMILPD = 1054;;
-let _X86_INS_VPERMILPS = 1055;;
-let _X86_INS_VPERMPD = 1056;;
-let _X86_INS_VPERMPS = 1057;;
-let _X86_INS_VPERMQ = 1058;;
-let _X86_INS_VPERMT2D = 1059;;
-let _X86_INS_VPERMT2PD = 1060;;
-let _X86_INS_VPERMT2PS = 1061;;
-let _X86_INS_VPERMT2Q = 1062;;
-let _X86_INS_VPEXPANDD = 1063;;
-let _X86_INS_VPEXPANDQ = 1064;;
-let _X86_INS_VPEXTRB = 1065;;
-let _X86_INS_VPEXTRD = 1066;;
-let _X86_INS_VPEXTRQ = 1067;;
-let _X86_INS_VPEXTRW = 1068;;
-let _X86_INS_VPGATHERDD = 1069;;
-let _X86_INS_VPGATHERDQ = 1070;;
-let _X86_INS_VPGATHERQD = 1071;;
-let _X86_INS_VPGATHERQQ = 1072;;
-let _X86_INS_VPHADDBD = 1073;;
-let _X86_INS_VPHADDBQ = 1074;;
-let _X86_INS_VPHADDBW = 1075;;
-let _X86_INS_VPHADDDQ = 1076;;
-let _X86_INS_VPHADDD = 1077;;
-let _X86_INS_VPHADDSW = 1078;;
-let _X86_INS_VPHADDUBD = 1079;;
-let _X86_INS_VPHADDUBQ = 1080;;
-let _X86_INS_VPHADDUBW = 1081;;
-let _X86_INS_VPHADDUDQ = 1082;;
-let _X86_INS_VPHADDUWD = 1083;;
-let _X86_INS_VPHADDUWQ = 1084;;
-let _X86_INS_VPHADDWD = 1085;;
-let _X86_INS_VPHADDWQ = 1086;;
-let _X86_INS_VPHADDW = 1087;;
-let _X86_INS_VPHMINPOSUW = 1088;;
-let _X86_INS_VPHSUBBW = 1089;;
-let _X86_INS_VPHSUBDQ = 1090;;
-let _X86_INS_VPHSUBD = 1091;;
-let _X86_INS_VPHSUBSW = 1092;;
-let _X86_INS_VPHSUBWD = 1093;;
-let _X86_INS_VPHSUBW = 1094;;
-let _X86_INS_VPINSRB = 1095;;
-let _X86_INS_VPINSRD = 1096;;
-let _X86_INS_VPINSRQ = 1097;;
-let _X86_INS_VPINSRW = 1098;;
-let _X86_INS_VPLZCNTD = 1099;;
-let _X86_INS_VPLZCNTQ = 1100;;
-let _X86_INS_VPMACSDD = 1101;;
-let _X86_INS_VPMACSDQH = 1102;;
-let _X86_INS_VPMACSDQL = 1103;;
-let _X86_INS_VPMACSSDD = 1104;;
-let _X86_INS_VPMACSSDQH = 1105;;
-let _X86_INS_VPMACSSDQL = 1106;;
-let _X86_INS_VPMACSSWD = 1107;;
-let _X86_INS_VPMACSSWW = 1108;;
-let _X86_INS_VPMACSWD = 1109;;
-let _X86_INS_VPMACSWW = 1110;;
-let _X86_INS_VPMADCSSWD = 1111;;
-let _X86_INS_VPMADCSWD = 1112;;
-let _X86_INS_VPMADDUBSW = 1113;;
-let _X86_INS_VPMADDWD = 1114;;
-let _X86_INS_VPMASKMOVD = 1115;;
-let _X86_INS_VPMASKMOVQ = 1116;;
-let _X86_INS_VPMAXSB = 1117;;
-let _X86_INS_VPMAXSD = 1118;;
-let _X86_INS_VPMAXSQ = 1119;;
-let _X86_INS_VPMAXSW = 1120;;
-let _X86_INS_VPMAXUB = 1121;;
-let _X86_INS_VPMAXUD = 1122;;
-let _X86_INS_VPMAXUQ = 1123;;
-let _X86_INS_VPMAXUW = 1124;;
-let _X86_INS_VPMINSB = 1125;;
-let _X86_INS_VPMINSD = 1126;;
-let _X86_INS_VPMINSQ = 1127;;
-let _X86_INS_VPMINSW = 1128;;
-let _X86_INS_VPMINUB = 1129;;
-let _X86_INS_VPMINUD = 1130;;
-let _X86_INS_VPMINUQ = 1131;;
-let _X86_INS_VPMINUW = 1132;;
-let _X86_INS_VPMOVDB = 1133;;
-let _X86_INS_VPMOVDW = 1134;;
-let _X86_INS_VPMOVM2B = 1135;;
-let _X86_INS_VPMOVM2D = 1136;;
-let _X86_INS_VPMOVM2Q = 1137;;
-let _X86_INS_VPMOVM2W = 1138;;
-let _X86_INS_VPMOVMSKB = 1139;;
-let _X86_INS_VPMOVQB = 1140;;
-let _X86_INS_VPMOVQD = 1141;;
-let _X86_INS_VPMOVQW = 1142;;
-let _X86_INS_VPMOVSDB = 1143;;
-let _X86_INS_VPMOVSDW = 1144;;
-let _X86_INS_VPMOVSQB = 1145;;
-let _X86_INS_VPMOVSQD = 1146;;
-let _X86_INS_VPMOVSQW = 1147;;
-let _X86_INS_VPMOVSXBD = 1148;;
-let _X86_INS_VPMOVSXBQ = 1149;;
-let _X86_INS_VPMOVSXBW = 1150;;
-let _X86_INS_VPMOVSXDQ = 1151;;
-let _X86_INS_VPMOVSXWD = 1152;;
-let _X86_INS_VPMOVSXWQ = 1153;;
-let _X86_INS_VPMOVUSDB = 1154;;
-let _X86_INS_VPMOVUSDW = 1155;;
-let _X86_INS_VPMOVUSQB = 1156;;
-let _X86_INS_VPMOVUSQD = 1157;;
-let _X86_INS_VPMOVUSQW = 1158;;
-let _X86_INS_VPMOVZXBD = 1159;;
-let _X86_INS_VPMOVZXBQ = 1160;;
-let _X86_INS_VPMOVZXBW = 1161;;
-let _X86_INS_VPMOVZXDQ = 1162;;
-let _X86_INS_VPMOVZXWD = 1163;;
-let _X86_INS_VPMOVZXWQ = 1164;;
-let _X86_INS_VPMULDQ = 1165;;
-let _X86_INS_VPMULHRSW = 1166;;
-let _X86_INS_VPMULHUW = 1167;;
-let _X86_INS_VPMULHW = 1168;;
-let _X86_INS_VPMULLD = 1169;;
-let _X86_INS_VPMULLQ = 1170;;
-let _X86_INS_VPMULLW = 1171;;
-let _X86_INS_VPMULUDQ = 1172;;
-let _X86_INS_VPORD = 1173;;
-let _X86_INS_VPORQ = 1174;;
-let _X86_INS_VPOR = 1175;;
-let _X86_INS_VPPERM = 1176;;
-let _X86_INS_VPROTB = 1177;;
-let _X86_INS_VPROTD = 1178;;
-let _X86_INS_VPROTQ = 1179;;
-let _X86_INS_VPROTW = 1180;;
-let _X86_INS_VPSADBW = 1181;;
-let _X86_INS_VPSCATTERDD = 1182;;
-let _X86_INS_VPSCATTERDQ = 1183;;
-let _X86_INS_VPSCATTERQD = 1184;;
-let _X86_INS_VPSCATTERQQ = 1185;;
-let _X86_INS_VPSHAB = 1186;;
-let _X86_INS_VPSHAD = 1187;;
-let _X86_INS_VPSHAQ = 1188;;
-let _X86_INS_VPSHAW = 1189;;
-let _X86_INS_VPSHLB = 1190;;
-let _X86_INS_VPSHLD = 1191;;
-let _X86_INS_VPSHLQ = 1192;;
-let _X86_INS_VPSHLW = 1193;;
-let _X86_INS_VPSHUFB = 1194;;
-let _X86_INS_VPSHUFD = 1195;;
-let _X86_INS_VPSHUFHW = 1196;;
-let _X86_INS_VPSHUFLW = 1197;;
-let _X86_INS_VPSIGNB = 1198;;
-let _X86_INS_VPSIGND = 1199;;
-let _X86_INS_VPSIGNW = 1200;;
-let _X86_INS_VPSLLDQ = 1201;;
-let _X86_INS_VPSLLD = 1202;;
-let _X86_INS_VPSLLQ = 1203;;
-let _X86_INS_VPSLLVD = 1204;;
-let _X86_INS_VPSLLVQ = 1205;;
-let _X86_INS_VPSLLW = 1206;;
-let _X86_INS_VPSRAD = 1207;;
-let _X86_INS_VPSRAQ = 1208;;
-let _X86_INS_VPSRAVD = 1209;;
-let _X86_INS_VPSRAVQ = 1210;;
-let _X86_INS_VPSRAW = 1211;;
-let _X86_INS_VPSRLDQ = 1212;;
-let _X86_INS_VPSRLD = 1213;;
-let _X86_INS_VPSRLQ = 1214;;
-let _X86_INS_VPSRLVD = 1215;;
-let _X86_INS_VPSRLVQ = 1216;;
-let _X86_INS_VPSRLW = 1217;;
-let _X86_INS_VPSUBB = 1218;;
-let _X86_INS_VPSUBD = 1219;;
-let _X86_INS_VPSUBQ = 1220;;
-let _X86_INS_VPSUBSB = 1221;;
-let _X86_INS_VPSUBSW = 1222;;
-let _X86_INS_VPSUBUSB = 1223;;
-let _X86_INS_VPSUBUSW = 1224;;
-let _X86_INS_VPSUBW = 1225;;
-let _X86_INS_VPTESTMD = 1226;;
-let _X86_INS_VPTESTMQ = 1227;;
-let _X86_INS_VPTESTNMD = 1228;;
-let _X86_INS_VPTESTNMQ = 1229;;
-let _X86_INS_VPTEST = 1230;;
-let _X86_INS_VPUNPCKHBW = 1231;;
-let _X86_INS_VPUNPCKHDQ = 1232;;
-let _X86_INS_VPUNPCKHQDQ = 1233;;
-let _X86_INS_VPUNPCKHWD = 1234;;
-let _X86_INS_VPUNPCKLBW = 1235;;
-let _X86_INS_VPUNPCKLDQ = 1236;;
-let _X86_INS_VPUNPCKLQDQ = 1237;;
-let _X86_INS_VPUNPCKLWD = 1238;;
-let _X86_INS_VPXORD = 1239;;
-let _X86_INS_VPXORQ = 1240;;
-let _X86_INS_VPXOR = 1241;;
-let _X86_INS_VRCP14PD = 1242;;
-let _X86_INS_VRCP14PS = 1243;;
-let _X86_INS_VRCP14SD = 1244;;
-let _X86_INS_VRCP14SS = 1245;;
-let _X86_INS_VRCP28PD = 1246;;
-let _X86_INS_VRCP28PS = 1247;;
-let _X86_INS_VRCP28SD = 1248;;
-let _X86_INS_VRCP28SS = 1249;;
-let _X86_INS_VRCPPS = 1250;;
-let _X86_INS_VRCPSS = 1251;;
-let _X86_INS_VRNDSCALEPD = 1252;;
-let _X86_INS_VRNDSCALEPS = 1253;;
-let _X86_INS_VRNDSCALESD = 1254;;
-let _X86_INS_VRNDSCALESS = 1255;;
-let _X86_INS_VROUNDPD = 1256;;
-let _X86_INS_VROUNDPS = 1257;;
-let _X86_INS_VROUNDSD = 1258;;
-let _X86_INS_VROUNDSS = 1259;;
-let _X86_INS_VRSQRT14PD = 1260;;
-let _X86_INS_VRSQRT14PS = 1261;;
-let _X86_INS_VRSQRT14SD = 1262;;
-let _X86_INS_VRSQRT14SS = 1263;;
-let _X86_INS_VRSQRT28PD = 1264;;
-let _X86_INS_VRSQRT28PS = 1265;;
-let _X86_INS_VRSQRT28SD = 1266;;
-let _X86_INS_VRSQRT28SS = 1267;;
-let _X86_INS_VRSQRTPS = 1268;;
-let _X86_INS_VRSQRTSS = 1269;;
-let _X86_INS_VSCATTERDPD = 1270;;
-let _X86_INS_VSCATTERDPS = 1271;;
-let _X86_INS_VSCATTERPF0DPD = 1272;;
-let _X86_INS_VSCATTERPF0DPS = 1273;;
-let _X86_INS_VSCATTERPF0QPD = 1274;;
-let _X86_INS_VSCATTERPF0QPS = 1275;;
-let _X86_INS_VSCATTERPF1DPD = 1276;;
-let _X86_INS_VSCATTERPF1DPS = 1277;;
-let _X86_INS_VSCATTERPF1QPD = 1278;;
-let _X86_INS_VSCATTERPF1QPS = 1279;;
-let _X86_INS_VSCATTERQPD = 1280;;
-let _X86_INS_VSCATTERQPS = 1281;;
-let _X86_INS_VSHUFPD = 1282;;
-let _X86_INS_VSHUFPS = 1283;;
-let _X86_INS_VSQRTPD = 1284;;
-let _X86_INS_VSQRTPS = 1285;;
-let _X86_INS_VSQRTSD = 1286;;
-let _X86_INS_VSQRTSS = 1287;;
-let _X86_INS_VSTMXCSR = 1288;;
-let _X86_INS_VSUBPD = 1289;;
-let _X86_INS_VSUBPS = 1290;;
-let _X86_INS_VSUBSD = 1291;;
-let _X86_INS_VSUBSS = 1292;;
-let _X86_INS_VTESTPD = 1293;;
-let _X86_INS_VTESTPS = 1294;;
-let _X86_INS_VUNPCKHPD = 1295;;
-let _X86_INS_VUNPCKHPS = 1296;;
-let _X86_INS_VUNPCKLPD = 1297;;
-let _X86_INS_VUNPCKLPS = 1298;;
-let _X86_INS_VZEROALL = 1299;;
-let _X86_INS_VZEROUPPER = 1300;;
-let _X86_INS_WAIT = 1301;;
-let _X86_INS_WBINVD = 1302;;
-let _X86_INS_WRFSBASE = 1303;;
-let _X86_INS_WRGSBASE = 1304;;
-let _X86_INS_WRMSR = 1305;;
-let _X86_INS_XABORT = 1306;;
-let _X86_INS_XACQUIRE = 1307;;
-let _X86_INS_XBEGIN = 1308;;
-let _X86_INS_XCHG = 1309;;
-let _X86_INS_XCRYPTCBC = 1310;;
-let _X86_INS_XCRYPTCFB = 1311;;
-let _X86_INS_XCRYPTCTR = 1312;;
-let _X86_INS_XCRYPTECB = 1313;;
-let _X86_INS_XCRYPTOFB = 1314;;
-let _X86_INS_XEND = 1315;;
-let _X86_INS_XGETBV = 1316;;
-let _X86_INS_XLATB = 1317;;
-let _X86_INS_XRELEASE = 1318;;
-let _X86_INS_XRSTOR = 1319;;
-let _X86_INS_XRSTOR64 = 1320;;
-let _X86_INS_XRSTORS = 1321;;
-let _X86_INS_XRSTORS64 = 1322;;
-let _X86_INS_XSAVE = 1323;;
-let _X86_INS_XSAVE64 = 1324;;
-let _X86_INS_XSAVEC = 1325;;
-let _X86_INS_XSAVEC64 = 1326;;
-let _X86_INS_XSAVEOPT = 1327;;
-let _X86_INS_XSAVEOPT64 = 1328;;
-let _X86_INS_XSAVES = 1329;;
-let _X86_INS_XSAVES64 = 1330;;
-let _X86_INS_XSETBV = 1331;;
-let _X86_INS_XSHA1 = 1332;;
-let _X86_INS_XSHA256 = 1333;;
-let _X86_INS_XSTORE = 1334;;
-let _X86_INS_XTEST = 1335;;
-let _X86_INS_FDISI8087_NOP = 1336;;
-let _X86_INS_FENI8087_NOP = 1337;;
-let _X86_INS_ENDING = 1338;;
+let _X86_INS_CMPSB = 96;;
+let _X86_INS_CMPSQ = 97;;
+let _X86_INS_CMPSW = 98;;
+let _X86_INS_CMPXCHG16B = 99;;
+let _X86_INS_CMPXCHG = 100;;
+let _X86_INS_CMPXCHG8B = 101;;
+let _X86_INS_COMISD = 102;;
+let _X86_INS_COMISS = 103;;
+let _X86_INS_FCOMP = 104;;
+let _X86_INS_FCOMPI = 105;;
+let _X86_INS_FCOMI = 106;;
+let _X86_INS_FCOM = 107;;
+let _X86_INS_FCOS = 108;;
+let _X86_INS_CPUID = 109;;
+let _X86_INS_CQO = 110;;
+let _X86_INS_CRC32 = 111;;
+let _X86_INS_CVTDQ2PD = 112;;
+let _X86_INS_CVTDQ2PS = 113;;
+let _X86_INS_CVTPD2DQ = 114;;
+let _X86_INS_CVTPD2PS = 115;;
+let _X86_INS_CVTPS2DQ = 116;;
+let _X86_INS_CVTPS2PD = 117;;
+let _X86_INS_CVTSD2SI = 118;;
+let _X86_INS_CVTSD2SS = 119;;
+let _X86_INS_CVTSI2SD = 120;;
+let _X86_INS_CVTSI2SS = 121;;
+let _X86_INS_CVTSS2SD = 122;;
+let _X86_INS_CVTSS2SI = 123;;
+let _X86_INS_CVTTPD2DQ = 124;;
+let _X86_INS_CVTTPS2DQ = 125;;
+let _X86_INS_CVTTSD2SI = 126;;
+let _X86_INS_CVTTSS2SI = 127;;
+let _X86_INS_CWD = 128;;
+let _X86_INS_CWDE = 129;;
+let _X86_INS_DAA = 130;;
+let _X86_INS_DAS = 131;;
+let _X86_INS_DATA16 = 132;;
+let _X86_INS_DEC = 133;;
+let _X86_INS_DIV = 134;;
+let _X86_INS_DIVPD = 135;;
+let _X86_INS_DIVPS = 136;;
+let _X86_INS_FDIVR = 137;;
+let _X86_INS_FIDIVR = 138;;
+let _X86_INS_FDIVRP = 139;;
+let _X86_INS_DIVSD = 140;;
+let _X86_INS_DIVSS = 141;;
+let _X86_INS_FDIV = 142;;
+let _X86_INS_FIDIV = 143;;
+let _X86_INS_FDIVP = 144;;
+let _X86_INS_DPPD = 145;;
+let _X86_INS_DPPS = 146;;
+let _X86_INS_RET = 147;;
+let _X86_INS_ENCLS = 148;;
+let _X86_INS_ENCLU = 149;;
+let _X86_INS_ENTER = 150;;
+let _X86_INS_EXTRACTPS = 151;;
+let _X86_INS_EXTRQ = 152;;
+let _X86_INS_F2XM1 = 153;;
+let _X86_INS_LCALL = 154;;
+let _X86_INS_LJMP = 155;;
+let _X86_INS_FBLD = 156;;
+let _X86_INS_FBSTP = 157;;
+let _X86_INS_FCOMPP = 158;;
+let _X86_INS_FDECSTP = 159;;
+let _X86_INS_FEMMS = 160;;
+let _X86_INS_FFREE = 161;;
+let _X86_INS_FICOM = 162;;
+let _X86_INS_FICOMP = 163;;
+let _X86_INS_FINCSTP = 164;;
+let _X86_INS_FLDCW = 165;;
+let _X86_INS_FLDENV = 166;;
+let _X86_INS_FLDL2E = 167;;
+let _X86_INS_FLDL2T = 168;;
+let _X86_INS_FLDLG2 = 169;;
+let _X86_INS_FLDLN2 = 170;;
+let _X86_INS_FLDPI = 171;;
+let _X86_INS_FNCLEX = 172;;
+let _X86_INS_FNINIT = 173;;
+let _X86_INS_FNOP = 174;;
+let _X86_INS_FNSTCW = 175;;
+let _X86_INS_FNSTSW = 176;;
+let _X86_INS_FPATAN = 177;;
+let _X86_INS_FPREM = 178;;
+let _X86_INS_FPREM1 = 179;;
+let _X86_INS_FPTAN = 180;;
+let _X86_INS_FFREEP = 181;;
+let _X86_INS_FRNDINT = 182;;
+let _X86_INS_FRSTOR = 183;;
+let _X86_INS_FNSAVE = 184;;
+let _X86_INS_FSCALE = 185;;
+let _X86_INS_FSETPM = 186;;
+let _X86_INS_FSINCOS = 187;;
+let _X86_INS_FNSTENV = 188;;
+let _X86_INS_FXAM = 189;;
+let _X86_INS_FXRSTOR = 190;;
+let _X86_INS_FXRSTOR64 = 191;;
+let _X86_INS_FXSAVE = 192;;
+let _X86_INS_FXSAVE64 = 193;;
+let _X86_INS_FXTRACT = 194;;
+let _X86_INS_FYL2X = 195;;
+let _X86_INS_FYL2XP1 = 196;;
+let _X86_INS_MOVAPD = 197;;
+let _X86_INS_MOVAPS = 198;;
+let _X86_INS_ORPD = 199;;
+let _X86_INS_ORPS = 200;;
+let _X86_INS_VMOVAPD = 201;;
+let _X86_INS_VMOVAPS = 202;;
+let _X86_INS_XORPD = 203;;
+let _X86_INS_XORPS = 204;;
+let _X86_INS_GETSEC = 205;;
+let _X86_INS_HADDPD = 206;;
+let _X86_INS_HADDPS = 207;;
+let _X86_INS_HLT = 208;;
+let _X86_INS_HSUBPD = 209;;
+let _X86_INS_HSUBPS = 210;;
+let _X86_INS_IDIV = 211;;
+let _X86_INS_FILD = 212;;
+let _X86_INS_IMUL = 213;;
+let _X86_INS_IN = 214;;
+let _X86_INS_INC = 215;;
+let _X86_INS_INSB = 216;;
+let _X86_INS_INSERTPS = 217;;
+let _X86_INS_INSERTQ = 218;;
+let _X86_INS_INSD = 219;;
+let _X86_INS_INSW = 220;;
+let _X86_INS_INT = 221;;
+let _X86_INS_INT1 = 222;;
+let _X86_INS_INT3 = 223;;
+let _X86_INS_INTO = 224;;
+let _X86_INS_INVD = 225;;
+let _X86_INS_INVEPT = 226;;
+let _X86_INS_INVLPG = 227;;
+let _X86_INS_INVLPGA = 228;;
+let _X86_INS_INVPCID = 229;;
+let _X86_INS_INVVPID = 230;;
+let _X86_INS_IRET = 231;;
+let _X86_INS_IRETD = 232;;
+let _X86_INS_IRETQ = 233;;
+let _X86_INS_FISTTP = 234;;
+let _X86_INS_FIST = 235;;
+let _X86_INS_FISTP = 236;;
+let _X86_INS_UCOMISD = 237;;
+let _X86_INS_UCOMISS = 238;;
+let _X86_INS_VCOMISD = 239;;
+let _X86_INS_VCOMISS = 240;;
+let _X86_INS_VCVTSD2SS = 241;;
+let _X86_INS_VCVTSI2SD = 242;;
+let _X86_INS_VCVTSI2SS = 243;;
+let _X86_INS_VCVTSS2SD = 244;;
+let _X86_INS_VCVTTSD2SI = 245;;
+let _X86_INS_VCVTTSD2USI = 246;;
+let _X86_INS_VCVTTSS2SI = 247;;
+let _X86_INS_VCVTTSS2USI = 248;;
+let _X86_INS_VCVTUSI2SD = 249;;
+let _X86_INS_VCVTUSI2SS = 250;;
+let _X86_INS_VUCOMISD = 251;;
+let _X86_INS_VUCOMISS = 252;;
+let _X86_INS_JAE = 253;;
+let _X86_INS_JA = 254;;
+let _X86_INS_JBE = 255;;
+let _X86_INS_JB = 256;;
+let _X86_INS_JCXZ = 257;;
+let _X86_INS_JECXZ = 258;;
+let _X86_INS_JE = 259;;
+let _X86_INS_JGE = 260;;
+let _X86_INS_JG = 261;;
+let _X86_INS_JLE = 262;;
+let _X86_INS_JL = 263;;
+let _X86_INS_JMP = 264;;
+let _X86_INS_JNE = 265;;
+let _X86_INS_JNO = 266;;
+let _X86_INS_JNP = 267;;
+let _X86_INS_JNS = 268;;
+let _X86_INS_JO = 269;;
+let _X86_INS_JP = 270;;
+let _X86_INS_JRCXZ = 271;;
+let _X86_INS_JS = 272;;
+let _X86_INS_KANDB = 273;;
+let _X86_INS_KANDD = 274;;
+let _X86_INS_KANDNB = 275;;
+let _X86_INS_KANDND = 276;;
+let _X86_INS_KANDNQ = 277;;
+let _X86_INS_KANDNW = 278;;
+let _X86_INS_KANDQ = 279;;
+let _X86_INS_KANDW = 280;;
+let _X86_INS_KMOVB = 281;;
+let _X86_INS_KMOVD = 282;;
+let _X86_INS_KMOVQ = 283;;
+let _X86_INS_KMOVW = 284;;
+let _X86_INS_KNOTB = 285;;
+let _X86_INS_KNOTD = 286;;
+let _X86_INS_KNOTQ = 287;;
+let _X86_INS_KNOTW = 288;;
+let _X86_INS_KORB = 289;;
+let _X86_INS_KORD = 290;;
+let _X86_INS_KORQ = 291;;
+let _X86_INS_KORTESTB = 292;;
+let _X86_INS_KORTESTD = 293;;
+let _X86_INS_KORTESTQ = 294;;
+let _X86_INS_KORTESTW = 295;;
+let _X86_INS_KORW = 296;;
+let _X86_INS_KSHIFTLB = 297;;
+let _X86_INS_KSHIFTLD = 298;;
+let _X86_INS_KSHIFTLQ = 299;;
+let _X86_INS_KSHIFTLW = 300;;
+let _X86_INS_KSHIFTRB = 301;;
+let _X86_INS_KSHIFTRD = 302;;
+let _X86_INS_KSHIFTRQ = 303;;
+let _X86_INS_KSHIFTRW = 304;;
+let _X86_INS_KUNPCKBW = 305;;
+let _X86_INS_KXNORB = 306;;
+let _X86_INS_KXNORD = 307;;
+let _X86_INS_KXNORQ = 308;;
+let _X86_INS_KXNORW = 309;;
+let _X86_INS_KXORB = 310;;
+let _X86_INS_KXORD = 311;;
+let _X86_INS_KXORQ = 312;;
+let _X86_INS_KXORW = 313;;
+let _X86_INS_LAHF = 314;;
+let _X86_INS_LAR = 315;;
+let _X86_INS_LDDQU = 316;;
+let _X86_INS_LDMXCSR = 317;;
+let _X86_INS_LDS = 318;;
+let _X86_INS_FLDZ = 319;;
+let _X86_INS_FLD1 = 320;;
+let _X86_INS_FLD = 321;;
+let _X86_INS_LEA = 322;;
+let _X86_INS_LEAVE = 323;;
+let _X86_INS_LES = 324;;
+let _X86_INS_LFENCE = 325;;
+let _X86_INS_LFS = 326;;
+let _X86_INS_LGDT = 327;;
+let _X86_INS_LGS = 328;;
+let _X86_INS_LIDT = 329;;
+let _X86_INS_LLDT = 330;;
+let _X86_INS_LMSW = 331;;
+let _X86_INS_OR = 332;;
+let _X86_INS_SUB = 333;;
+let _X86_INS_XOR = 334;;
+let _X86_INS_LODSB = 335;;
+let _X86_INS_LODSD = 336;;
+let _X86_INS_LODSQ = 337;;
+let _X86_INS_LODSW = 338;;
+let _X86_INS_LOOP = 339;;
+let _X86_INS_LOOPE = 340;;
+let _X86_INS_LOOPNE = 341;;
+let _X86_INS_RETF = 342;;
+let _X86_INS_RETFQ = 343;;
+let _X86_INS_LSL = 344;;
+let _X86_INS_LSS = 345;;
+let _X86_INS_LTR = 346;;
+let _X86_INS_XADD = 347;;
+let _X86_INS_LZCNT = 348;;
+let _X86_INS_MASKMOVDQU = 349;;
+let _X86_INS_MAXPD = 350;;
+let _X86_INS_MAXPS = 351;;
+let _X86_INS_MAXSD = 352;;
+let _X86_INS_MAXSS = 353;;
+let _X86_INS_MFENCE = 354;;
+let _X86_INS_MINPD = 355;;
+let _X86_INS_MINPS = 356;;
+let _X86_INS_MINSD = 357;;
+let _X86_INS_MINSS = 358;;
+let _X86_INS_CVTPD2PI = 359;;
+let _X86_INS_CVTPI2PD = 360;;
+let _X86_INS_CVTPI2PS = 361;;
+let _X86_INS_CVTPS2PI = 362;;
+let _X86_INS_CVTTPD2PI = 363;;
+let _X86_INS_CVTTPS2PI = 364;;
+let _X86_INS_EMMS = 365;;
+let _X86_INS_MASKMOVQ = 366;;
+let _X86_INS_MOVD = 367;;
+let _X86_INS_MOVDQ2Q = 368;;
+let _X86_INS_MOVNTQ = 369;;
+let _X86_INS_MOVQ2DQ = 370;;
+let _X86_INS_MOVQ = 371;;
+let _X86_INS_PABSB = 372;;
+let _X86_INS_PABSD = 373;;
+let _X86_INS_PABSW = 374;;
+let _X86_INS_PACKSSDW = 375;;
+let _X86_INS_PACKSSWB = 376;;
+let _X86_INS_PACKUSWB = 377;;
+let _X86_INS_PADDB = 378;;
+let _X86_INS_PADDD = 379;;
+let _X86_INS_PADDQ = 380;;
+let _X86_INS_PADDSB = 381;;
+let _X86_INS_PADDSW = 382;;
+let _X86_INS_PADDUSB = 383;;
+let _X86_INS_PADDUSW = 384;;
+let _X86_INS_PADDW = 385;;
+let _X86_INS_PALIGNR = 386;;
+let _X86_INS_PANDN = 387;;
+let _X86_INS_PAND = 388;;
+let _X86_INS_PAVGB = 389;;
+let _X86_INS_PAVGW = 390;;
+let _X86_INS_PCMPEQB = 391;;
+let _X86_INS_PCMPEQD = 392;;
+let _X86_INS_PCMPEQW = 393;;
+let _X86_INS_PCMPGTB = 394;;
+let _X86_INS_PCMPGTD = 395;;
+let _X86_INS_PCMPGTW = 396;;
+let _X86_INS_PEXTRW = 397;;
+let _X86_INS_PHADDSW = 398;;
+let _X86_INS_PHADDW = 399;;
+let _X86_INS_PHADDD = 400;;
+let _X86_INS_PHSUBD = 401;;
+let _X86_INS_PHSUBSW = 402;;
+let _X86_INS_PHSUBW = 403;;
+let _X86_INS_PINSRW = 404;;
+let _X86_INS_PMADDUBSW = 405;;
+let _X86_INS_PMADDWD = 406;;
+let _X86_INS_PMAXSW = 407;;
+let _X86_INS_PMAXUB = 408;;
+let _X86_INS_PMINSW = 409;;
+let _X86_INS_PMINUB = 410;;
+let _X86_INS_PMOVMSKB = 411;;
+let _X86_INS_PMULHRSW = 412;;
+let _X86_INS_PMULHUW = 413;;
+let _X86_INS_PMULHW = 414;;
+let _X86_INS_PMULLW = 415;;
+let _X86_INS_PMULUDQ = 416;;
+let _X86_INS_POR = 417;;
+let _X86_INS_PSADBW = 418;;
+let _X86_INS_PSHUFB = 419;;
+let _X86_INS_PSHUFW = 420;;
+let _X86_INS_PSIGNB = 421;;
+let _X86_INS_PSIGND = 422;;
+let _X86_INS_PSIGNW = 423;;
+let _X86_INS_PSLLD = 424;;
+let _X86_INS_PSLLQ = 425;;
+let _X86_INS_PSLLW = 426;;
+let _X86_INS_PSRAD = 427;;
+let _X86_INS_PSRAW = 428;;
+let _X86_INS_PSRLD = 429;;
+let _X86_INS_PSRLQ = 430;;
+let _X86_INS_PSRLW = 431;;
+let _X86_INS_PSUBB = 432;;
+let _X86_INS_PSUBD = 433;;
+let _X86_INS_PSUBQ = 434;;
+let _X86_INS_PSUBSB = 435;;
+let _X86_INS_PSUBSW = 436;;
+let _X86_INS_PSUBUSB = 437;;
+let _X86_INS_PSUBUSW = 438;;
+let _X86_INS_PSUBW = 439;;
+let _X86_INS_PUNPCKHBW = 440;;
+let _X86_INS_PUNPCKHDQ = 441;;
+let _X86_INS_PUNPCKHWD = 442;;
+let _X86_INS_PUNPCKLBW = 443;;
+let _X86_INS_PUNPCKLDQ = 444;;
+let _X86_INS_PUNPCKLWD = 445;;
+let _X86_INS_PXOR = 446;;
+let _X86_INS_MONITOR = 447;;
+let _X86_INS_MONTMUL = 448;;
+let _X86_INS_MOV = 449;;
+let _X86_INS_MOVABS = 450;;
+let _X86_INS_MOVBE = 451;;
+let _X86_INS_MOVDDUP = 452;;
+let _X86_INS_MOVDQA = 453;;
+let _X86_INS_MOVDQU = 454;;
+let _X86_INS_MOVHLPS = 455;;
+let _X86_INS_MOVHPD = 456;;
+let _X86_INS_MOVHPS = 457;;
+let _X86_INS_MOVLHPS = 458;;
+let _X86_INS_MOVLPD = 459;;
+let _X86_INS_MOVLPS = 460;;
+let _X86_INS_MOVMSKPD = 461;;
+let _X86_INS_MOVMSKPS = 462;;
+let _X86_INS_MOVNTDQA = 463;;
+let _X86_INS_MOVNTDQ = 464;;
+let _X86_INS_MOVNTI = 465;;
+let _X86_INS_MOVNTPD = 466;;
+let _X86_INS_MOVNTPS = 467;;
+let _X86_INS_MOVNTSD = 468;;
+let _X86_INS_MOVNTSS = 469;;
+let _X86_INS_MOVSB = 470;;
+let _X86_INS_MOVSD = 471;;
+let _X86_INS_MOVSHDUP = 472;;
+let _X86_INS_MOVSLDUP = 473;;
+let _X86_INS_MOVSQ = 474;;
+let _X86_INS_MOVSS = 475;;
+let _X86_INS_MOVSW = 476;;
+let _X86_INS_MOVSX = 477;;
+let _X86_INS_MOVSXD = 478;;
+let _X86_INS_MOVUPD = 479;;
+let _X86_INS_MOVUPS = 480;;
+let _X86_INS_MOVZX = 481;;
+let _X86_INS_MPSADBW = 482;;
+let _X86_INS_MUL = 483;;
+let _X86_INS_MULPD = 484;;
+let _X86_INS_MULPS = 485;;
+let _X86_INS_MULSD = 486;;
+let _X86_INS_MULSS = 487;;
+let _X86_INS_MULX = 488;;
+let _X86_INS_FMUL = 489;;
+let _X86_INS_FIMUL = 490;;
+let _X86_INS_FMULP = 491;;
+let _X86_INS_MWAIT = 492;;
+let _X86_INS_NEG = 493;;
+let _X86_INS_NOP = 494;;
+let _X86_INS_NOT = 495;;
+let _X86_INS_OUT = 496;;
+let _X86_INS_OUTSB = 497;;
+let _X86_INS_OUTSD = 498;;
+let _X86_INS_OUTSW = 499;;
+let _X86_INS_PACKUSDW = 500;;
+let _X86_INS_PAUSE = 501;;
+let _X86_INS_PAVGUSB = 502;;
+let _X86_INS_PBLENDVB = 503;;
+let _X86_INS_PBLENDW = 504;;
+let _X86_INS_PCLMULQDQ = 505;;
+let _X86_INS_PCMPEQQ = 506;;
+let _X86_INS_PCMPESTRI = 507;;
+let _X86_INS_PCMPESTRM = 508;;
+let _X86_INS_PCMPGTQ = 509;;
+let _X86_INS_PCMPISTRI = 510;;
+let _X86_INS_PCMPISTRM = 511;;
+let _X86_INS_PCOMMIT = 512;;
+let _X86_INS_PDEP = 513;;
+let _X86_INS_PEXT = 514;;
+let _X86_INS_PEXTRB = 515;;
+let _X86_INS_PEXTRD = 516;;
+let _X86_INS_PEXTRQ = 517;;
+let _X86_INS_PF2ID = 518;;
+let _X86_INS_PF2IW = 519;;
+let _X86_INS_PFACC = 520;;
+let _X86_INS_PFADD = 521;;
+let _X86_INS_PFCMPEQ = 522;;
+let _X86_INS_PFCMPGE = 523;;
+let _X86_INS_PFCMPGT = 524;;
+let _X86_INS_PFMAX = 525;;
+let _X86_INS_PFMIN = 526;;
+let _X86_INS_PFMUL = 527;;
+let _X86_INS_PFNACC = 528;;
+let _X86_INS_PFPNACC = 529;;
+let _X86_INS_PFRCPIT1 = 530;;
+let _X86_INS_PFRCPIT2 = 531;;
+let _X86_INS_PFRCP = 532;;
+let _X86_INS_PFRSQIT1 = 533;;
+let _X86_INS_PFRSQRT = 534;;
+let _X86_INS_PFSUBR = 535;;
+let _X86_INS_PFSUB = 536;;
+let _X86_INS_PHMINPOSUW = 537;;
+let _X86_INS_PI2FD = 538;;
+let _X86_INS_PI2FW = 539;;
+let _X86_INS_PINSRB = 540;;
+let _X86_INS_PINSRD = 541;;
+let _X86_INS_PINSRQ = 542;;
+let _X86_INS_PMAXSB = 543;;
+let _X86_INS_PMAXSD = 544;;
+let _X86_INS_PMAXUD = 545;;
+let _X86_INS_PMAXUW = 546;;
+let _X86_INS_PMINSB = 547;;
+let _X86_INS_PMINSD = 548;;
+let _X86_INS_PMINUD = 549;;
+let _X86_INS_PMINUW = 550;;
+let _X86_INS_PMOVSXBD = 551;;
+let _X86_INS_PMOVSXBQ = 552;;
+let _X86_INS_PMOVSXBW = 553;;
+let _X86_INS_PMOVSXDQ = 554;;
+let _X86_INS_PMOVSXWD = 555;;
+let _X86_INS_PMOVSXWQ = 556;;
+let _X86_INS_PMOVZXBD = 557;;
+let _X86_INS_PMOVZXBQ = 558;;
+let _X86_INS_PMOVZXBW = 559;;
+let _X86_INS_PMOVZXDQ = 560;;
+let _X86_INS_PMOVZXWD = 561;;
+let _X86_INS_PMOVZXWQ = 562;;
+let _X86_INS_PMULDQ = 563;;
+let _X86_INS_PMULHRW = 564;;
+let _X86_INS_PMULLD = 565;;
+let _X86_INS_POP = 566;;
+let _X86_INS_POPAW = 567;;
+let _X86_INS_POPAL = 568;;
+let _X86_INS_POPCNT = 569;;
+let _X86_INS_POPF = 570;;
+let _X86_INS_POPFD = 571;;
+let _X86_INS_POPFQ = 572;;
+let _X86_INS_PREFETCH = 573;;
+let _X86_INS_PREFETCHNTA = 574;;
+let _X86_INS_PREFETCHT0 = 575;;
+let _X86_INS_PREFETCHT1 = 576;;
+let _X86_INS_PREFETCHT2 = 577;;
+let _X86_INS_PREFETCHW = 578;;
+let _X86_INS_PSHUFD = 579;;
+let _X86_INS_PSHUFHW = 580;;
+let _X86_INS_PSHUFLW = 581;;
+let _X86_INS_PSLLDQ = 582;;
+let _X86_INS_PSRLDQ = 583;;
+let _X86_INS_PSWAPD = 584;;
+let _X86_INS_PTEST = 585;;
+let _X86_INS_PUNPCKHQDQ = 586;;
+let _X86_INS_PUNPCKLQDQ = 587;;
+let _X86_INS_PUSH = 588;;
+let _X86_INS_PUSHAW = 589;;
+let _X86_INS_PUSHAL = 590;;
+let _X86_INS_PUSHF = 591;;
+let _X86_INS_PUSHFD = 592;;
+let _X86_INS_PUSHFQ = 593;;
+let _X86_INS_RCL = 594;;
+let _X86_INS_RCPPS = 595;;
+let _X86_INS_RCPSS = 596;;
+let _X86_INS_RCR = 597;;
+let _X86_INS_RDFSBASE = 598;;
+let _X86_INS_RDGSBASE = 599;;
+let _X86_INS_RDMSR = 600;;
+let _X86_INS_RDPMC = 601;;
+let _X86_INS_RDRAND = 602;;
+let _X86_INS_RDSEED = 603;;
+let _X86_INS_RDTSC = 604;;
+let _X86_INS_RDTSCP = 605;;
+let _X86_INS_ROL = 606;;
+let _X86_INS_ROR = 607;;
+let _X86_INS_RORX = 608;;
+let _X86_INS_ROUNDPD = 609;;
+let _X86_INS_ROUNDPS = 610;;
+let _X86_INS_ROUNDSD = 611;;
+let _X86_INS_ROUNDSS = 612;;
+let _X86_INS_RSM = 613;;
+let _X86_INS_RSQRTPS = 614;;
+let _X86_INS_RSQRTSS = 615;;
+let _X86_INS_SAHF = 616;;
+let _X86_INS_SAL = 617;;
+let _X86_INS_SALC = 618;;
+let _X86_INS_SAR = 619;;
+let _X86_INS_SARX = 620;;
+let _X86_INS_SBB = 621;;
+let _X86_INS_SCASB = 622;;
+let _X86_INS_SCASD = 623;;
+let _X86_INS_SCASQ = 624;;
+let _X86_INS_SCASW = 625;;
+let _X86_INS_SETAE = 626;;
+let _X86_INS_SETA = 627;;
+let _X86_INS_SETBE = 628;;
+let _X86_INS_SETB = 629;;
+let _X86_INS_SETE = 630;;
+let _X86_INS_SETGE = 631;;
+let _X86_INS_SETG = 632;;
+let _X86_INS_SETLE = 633;;
+let _X86_INS_SETL = 634;;
+let _X86_INS_SETNE = 635;;
+let _X86_INS_SETNO = 636;;
+let _X86_INS_SETNP = 637;;
+let _X86_INS_SETNS = 638;;
+let _X86_INS_SETO = 639;;
+let _X86_INS_SETP = 640;;
+let _X86_INS_SETS = 641;;
+let _X86_INS_SFENCE = 642;;
+let _X86_INS_SGDT = 643;;
+let _X86_INS_SHA1MSG1 = 644;;
+let _X86_INS_SHA1MSG2 = 645;;
+let _X86_INS_SHA1NEXTE = 646;;
+let _X86_INS_SHA1RNDS4 = 647;;
+let _X86_INS_SHA256MSG1 = 648;;
+let _X86_INS_SHA256MSG2 = 649;;
+let _X86_INS_SHA256RNDS2 = 650;;
+let _X86_INS_SHL = 651;;
+let _X86_INS_SHLD = 652;;
+let _X86_INS_SHLX = 653;;
+let _X86_INS_SHR = 654;;
+let _X86_INS_SHRD = 655;;
+let _X86_INS_SHRX = 656;;
+let _X86_INS_SHUFPD = 657;;
+let _X86_INS_SHUFPS = 658;;
+let _X86_INS_SIDT = 659;;
+let _X86_INS_FSIN = 660;;
+let _X86_INS_SKINIT = 661;;
+let _X86_INS_SLDT = 662;;
+let _X86_INS_SMSW = 663;;
+let _X86_INS_SQRTPD = 664;;
+let _X86_INS_SQRTPS = 665;;
+let _X86_INS_SQRTSD = 666;;
+let _X86_INS_SQRTSS = 667;;
+let _X86_INS_FSQRT = 668;;
+let _X86_INS_STAC = 669;;
+let _X86_INS_STC = 670;;
+let _X86_INS_STD = 671;;
+let _X86_INS_STGI = 672;;
+let _X86_INS_STI = 673;;
+let _X86_INS_STMXCSR = 674;;
+let _X86_INS_STOSB = 675;;
+let _X86_INS_STOSD = 676;;
+let _X86_INS_STOSQ = 677;;
+let _X86_INS_STOSW = 678;;
+let _X86_INS_STR = 679;;
+let _X86_INS_FST = 680;;
+let _X86_INS_FSTP = 681;;
+let _X86_INS_FSTPNCE = 682;;
+let _X86_INS_FXCH = 683;;
+let _X86_INS_SUBPD = 684;;
+let _X86_INS_SUBPS = 685;;
+let _X86_INS_FSUBR = 686;;
+let _X86_INS_FISUBR = 687;;
+let _X86_INS_FSUBRP = 688;;
+let _X86_INS_SUBSD = 689;;
+let _X86_INS_SUBSS = 690;;
+let _X86_INS_FSUB = 691;;
+let _X86_INS_FISUB = 692;;
+let _X86_INS_FSUBP = 693;;
+let _X86_INS_SWAPGS = 694;;
+let _X86_INS_SYSCALL = 695;;
+let _X86_INS_SYSENTER = 696;;
+let _X86_INS_SYSEXIT = 697;;
+let _X86_INS_SYSRET = 698;;
+let _X86_INS_T1MSKC = 699;;
+let _X86_INS_TEST = 700;;
+let _X86_INS_UD2 = 701;;
+let _X86_INS_FTST = 702;;
+let _X86_INS_TZCNT = 703;;
+let _X86_INS_TZMSK = 704;;
+let _X86_INS_FUCOMPI = 705;;
+let _X86_INS_FUCOMI = 706;;
+let _X86_INS_FUCOMPP = 707;;
+let _X86_INS_FUCOMP = 708;;
+let _X86_INS_FUCOM = 709;;
+let _X86_INS_UD2B = 710;;
+let _X86_INS_UNPCKHPD = 711;;
+let _X86_INS_UNPCKHPS = 712;;
+let _X86_INS_UNPCKLPD = 713;;
+let _X86_INS_UNPCKLPS = 714;;
+let _X86_INS_VADDPD = 715;;
+let _X86_INS_VADDPS = 716;;
+let _X86_INS_VADDSD = 717;;
+let _X86_INS_VADDSS = 718;;
+let _X86_INS_VADDSUBPD = 719;;
+let _X86_INS_VADDSUBPS = 720;;
+let _X86_INS_VAESDECLAST = 721;;
+let _X86_INS_VAESDEC = 722;;
+let _X86_INS_VAESENCLAST = 723;;
+let _X86_INS_VAESENC = 724;;
+let _X86_INS_VAESIMC = 725;;
+let _X86_INS_VAESKEYGENASSIST = 726;;
+let _X86_INS_VALIGND = 727;;
+let _X86_INS_VALIGNQ = 728;;
+let _X86_INS_VANDNPD = 729;;
+let _X86_INS_VANDNPS = 730;;
+let _X86_INS_VANDPD = 731;;
+let _X86_INS_VANDPS = 732;;
+let _X86_INS_VBLENDMPD = 733;;
+let _X86_INS_VBLENDMPS = 734;;
+let _X86_INS_VBLENDPD = 735;;
+let _X86_INS_VBLENDPS = 736;;
+let _X86_INS_VBLENDVPD = 737;;
+let _X86_INS_VBLENDVPS = 738;;
+let _X86_INS_VBROADCASTF128 = 739;;
+let _X86_INS_VBROADCASTI32X4 = 740;;
+let _X86_INS_VBROADCASTI64X4 = 741;;
+let _X86_INS_VBROADCASTSD = 742;;
+let _X86_INS_VBROADCASTSS = 743;;
+let _X86_INS_VCOMPRESSPD = 744;;
+let _X86_INS_VCOMPRESSPS = 745;;
+let _X86_INS_VCVTDQ2PD = 746;;
+let _X86_INS_VCVTDQ2PS = 747;;
+let _X86_INS_VCVTPD2DQX = 748;;
+let _X86_INS_VCVTPD2DQ = 749;;
+let _X86_INS_VCVTPD2PSX = 750;;
+let _X86_INS_VCVTPD2PS = 751;;
+let _X86_INS_VCVTPD2UDQ = 752;;
+let _X86_INS_VCVTPH2PS = 753;;
+let _X86_INS_VCVTPS2DQ = 754;;
+let _X86_INS_VCVTPS2PD = 755;;
+let _X86_INS_VCVTPS2PH = 756;;
+let _X86_INS_VCVTPS2UDQ = 757;;
+let _X86_INS_VCVTSD2SI = 758;;
+let _X86_INS_VCVTSD2USI = 759;;
+let _X86_INS_VCVTSS2SI = 760;;
+let _X86_INS_VCVTSS2USI = 761;;
+let _X86_INS_VCVTTPD2DQX = 762;;
+let _X86_INS_VCVTTPD2DQ = 763;;
+let _X86_INS_VCVTTPD2UDQ = 764;;
+let _X86_INS_VCVTTPS2DQ = 765;;
+let _X86_INS_VCVTTPS2UDQ = 766;;
+let _X86_INS_VCVTUDQ2PD = 767;;
+let _X86_INS_VCVTUDQ2PS = 768;;
+let _X86_INS_VDIVPD = 769;;
+let _X86_INS_VDIVPS = 770;;
+let _X86_INS_VDIVSD = 771;;
+let _X86_INS_VDIVSS = 772;;
+let _X86_INS_VDPPD = 773;;
+let _X86_INS_VDPPS = 774;;
+let _X86_INS_VERR = 775;;
+let _X86_INS_VERW = 776;;
+let _X86_INS_VEXP2PD = 777;;
+let _X86_INS_VEXP2PS = 778;;
+let _X86_INS_VEXPANDPD = 779;;
+let _X86_INS_VEXPANDPS = 780;;
+let _X86_INS_VEXTRACTF128 = 781;;
+let _X86_INS_VEXTRACTF32X4 = 782;;
+let _X86_INS_VEXTRACTF64X4 = 783;;
+let _X86_INS_VEXTRACTI128 = 784;;
+let _X86_INS_VEXTRACTI32X4 = 785;;
+let _X86_INS_VEXTRACTI64X4 = 786;;
+let _X86_INS_VEXTRACTPS = 787;;
+let _X86_INS_VFMADD132PD = 788;;
+let _X86_INS_VFMADD132PS = 789;;
+let _X86_INS_VFMADDPD = 790;;
+let _X86_INS_VFMADD213PD = 791;;
+let _X86_INS_VFMADD231PD = 792;;
+let _X86_INS_VFMADDPS = 793;;
+let _X86_INS_VFMADD213PS = 794;;
+let _X86_INS_VFMADD231PS = 795;;
+let _X86_INS_VFMADDSD = 796;;
+let _X86_INS_VFMADD213SD = 797;;
+let _X86_INS_VFMADD132SD = 798;;
+let _X86_INS_VFMADD231SD = 799;;
+let _X86_INS_VFMADDSS = 800;;
+let _X86_INS_VFMADD213SS = 801;;
+let _X86_INS_VFMADD132SS = 802;;
+let _X86_INS_VFMADD231SS = 803;;
+let _X86_INS_VFMADDSUB132PD = 804;;
+let _X86_INS_VFMADDSUB132PS = 805;;
+let _X86_INS_VFMADDSUBPD = 806;;
+let _X86_INS_VFMADDSUB213PD = 807;;
+let _X86_INS_VFMADDSUB231PD = 808;;
+let _X86_INS_VFMADDSUBPS = 809;;
+let _X86_INS_VFMADDSUB213PS = 810;;
+let _X86_INS_VFMADDSUB231PS = 811;;
+let _X86_INS_VFMSUB132PD = 812;;
+let _X86_INS_VFMSUB132PS = 813;;
+let _X86_INS_VFMSUBADD132PD = 814;;
+let _X86_INS_VFMSUBADD132PS = 815;;
+let _X86_INS_VFMSUBADDPD = 816;;
+let _X86_INS_VFMSUBADD213PD = 817;;
+let _X86_INS_VFMSUBADD231PD = 818;;
+let _X86_INS_VFMSUBADDPS = 819;;
+let _X86_INS_VFMSUBADD213PS = 820;;
+let _X86_INS_VFMSUBADD231PS = 821;;
+let _X86_INS_VFMSUBPD = 822;;
+let _X86_INS_VFMSUB213PD = 823;;
+let _X86_INS_VFMSUB231PD = 824;;
+let _X86_INS_VFMSUBPS = 825;;
+let _X86_INS_VFMSUB213PS = 826;;
+let _X86_INS_VFMSUB231PS = 827;;
+let _X86_INS_VFMSUBSD = 828;;
+let _X86_INS_VFMSUB213SD = 829;;
+let _X86_INS_VFMSUB132SD = 830;;
+let _X86_INS_VFMSUB231SD = 831;;
+let _X86_INS_VFMSUBSS = 832;;
+let _X86_INS_VFMSUB213SS = 833;;
+let _X86_INS_VFMSUB132SS = 834;;
+let _X86_INS_VFMSUB231SS = 835;;
+let _X86_INS_VFNMADD132PD = 836;;
+let _X86_INS_VFNMADD132PS = 837;;
+let _X86_INS_VFNMADDPD = 838;;
+let _X86_INS_VFNMADD213PD = 839;;
+let _X86_INS_VFNMADD231PD = 840;;
+let _X86_INS_VFNMADDPS = 841;;
+let _X86_INS_VFNMADD213PS = 842;;
+let _X86_INS_VFNMADD231PS = 843;;
+let _X86_INS_VFNMADDSD = 844;;
+let _X86_INS_VFNMADD213SD = 845;;
+let _X86_INS_VFNMADD132SD = 846;;
+let _X86_INS_VFNMADD231SD = 847;;
+let _X86_INS_VFNMADDSS = 848;;
+let _X86_INS_VFNMADD213SS = 849;;
+let _X86_INS_VFNMADD132SS = 850;;
+let _X86_INS_VFNMADD231SS = 851;;
+let _X86_INS_VFNMSUB132PD = 852;;
+let _X86_INS_VFNMSUB132PS = 853;;
+let _X86_INS_VFNMSUBPD = 854;;
+let _X86_INS_VFNMSUB213PD = 855;;
+let _X86_INS_VFNMSUB231PD = 856;;
+let _X86_INS_VFNMSUBPS = 857;;
+let _X86_INS_VFNMSUB213PS = 858;;
+let _X86_INS_VFNMSUB231PS = 859;;
+let _X86_INS_VFNMSUBSD = 860;;
+let _X86_INS_VFNMSUB213SD = 861;;
+let _X86_INS_VFNMSUB132SD = 862;;
+let _X86_INS_VFNMSUB231SD = 863;;
+let _X86_INS_VFNMSUBSS = 864;;
+let _X86_INS_VFNMSUB213SS = 865;;
+let _X86_INS_VFNMSUB132SS = 866;;
+let _X86_INS_VFNMSUB231SS = 867;;
+let _X86_INS_VFRCZPD = 868;;
+let _X86_INS_VFRCZPS = 869;;
+let _X86_INS_VFRCZSD = 870;;
+let _X86_INS_VFRCZSS = 871;;
+let _X86_INS_VORPD = 872;;
+let _X86_INS_VORPS = 873;;
+let _X86_INS_VXORPD = 874;;
+let _X86_INS_VXORPS = 875;;
+let _X86_INS_VGATHERDPD = 876;;
+let _X86_INS_VGATHERDPS = 877;;
+let _X86_INS_VGATHERPF0DPD = 878;;
+let _X86_INS_VGATHERPF0DPS = 879;;
+let _X86_INS_VGATHERPF0QPD = 880;;
+let _X86_INS_VGATHERPF0QPS = 881;;
+let _X86_INS_VGATHERPF1DPD = 882;;
+let _X86_INS_VGATHERPF1DPS = 883;;
+let _X86_INS_VGATHERPF1QPD = 884;;
+let _X86_INS_VGATHERPF1QPS = 885;;
+let _X86_INS_VGATHERQPD = 886;;
+let _X86_INS_VGATHERQPS = 887;;
+let _X86_INS_VHADDPD = 888;;
+let _X86_INS_VHADDPS = 889;;
+let _X86_INS_VHSUBPD = 890;;
+let _X86_INS_VHSUBPS = 891;;
+let _X86_INS_VINSERTF128 = 892;;
+let _X86_INS_VINSERTF32X4 = 893;;
+let _X86_INS_VINSERTF32X8 = 894;;
+let _X86_INS_VINSERTF64X2 = 895;;
+let _X86_INS_VINSERTF64X4 = 896;;
+let _X86_INS_VINSERTI128 = 897;;
+let _X86_INS_VINSERTI32X4 = 898;;
+let _X86_INS_VINSERTI32X8 = 899;;
+let _X86_INS_VINSERTI64X2 = 900;;
+let _X86_INS_VINSERTI64X4 = 901;;
+let _X86_INS_VINSERTPS = 902;;
+let _X86_INS_VLDDQU = 903;;
+let _X86_INS_VLDMXCSR = 904;;
+let _X86_INS_VMASKMOVDQU = 905;;
+let _X86_INS_VMASKMOVPD = 906;;
+let _X86_INS_VMASKMOVPS = 907;;
+let _X86_INS_VMAXPD = 908;;
+let _X86_INS_VMAXPS = 909;;
+let _X86_INS_VMAXSD = 910;;
+let _X86_INS_VMAXSS = 911;;
+let _X86_INS_VMCALL = 912;;
+let _X86_INS_VMCLEAR = 913;;
+let _X86_INS_VMFUNC = 914;;
+let _X86_INS_VMINPD = 915;;
+let _X86_INS_VMINPS = 916;;
+let _X86_INS_VMINSD = 917;;
+let _X86_INS_VMINSS = 918;;
+let _X86_INS_VMLAUNCH = 919;;
+let _X86_INS_VMLOAD = 920;;
+let _X86_INS_VMMCALL = 921;;
+let _X86_INS_VMOVQ = 922;;
+let _X86_INS_VMOVDDUP = 923;;
+let _X86_INS_VMOVD = 924;;
+let _X86_INS_VMOVDQA32 = 925;;
+let _X86_INS_VMOVDQA64 = 926;;
+let _X86_INS_VMOVDQA = 927;;
+let _X86_INS_VMOVDQU16 = 928;;
+let _X86_INS_VMOVDQU32 = 929;;
+let _X86_INS_VMOVDQU64 = 930;;
+let _X86_INS_VMOVDQU8 = 931;;
+let _X86_INS_VMOVDQU = 932;;
+let _X86_INS_VMOVHLPS = 933;;
+let _X86_INS_VMOVHPD = 934;;
+let _X86_INS_VMOVHPS = 935;;
+let _X86_INS_VMOVLHPS = 936;;
+let _X86_INS_VMOVLPD = 937;;
+let _X86_INS_VMOVLPS = 938;;
+let _X86_INS_VMOVMSKPD = 939;;
+let _X86_INS_VMOVMSKPS = 940;;
+let _X86_INS_VMOVNTDQA = 941;;
+let _X86_INS_VMOVNTDQ = 942;;
+let _X86_INS_VMOVNTPD = 943;;
+let _X86_INS_VMOVNTPS = 944;;
+let _X86_INS_VMOVSD = 945;;
+let _X86_INS_VMOVSHDUP = 946;;
+let _X86_INS_VMOVSLDUP = 947;;
+let _X86_INS_VMOVSS = 948;;
+let _X86_INS_VMOVUPD = 949;;
+let _X86_INS_VMOVUPS = 950;;
+let _X86_INS_VMPSADBW = 951;;
+let _X86_INS_VMPTRLD = 952;;
+let _X86_INS_VMPTRST = 953;;
+let _X86_INS_VMREAD = 954;;
+let _X86_INS_VMRESUME = 955;;
+let _X86_INS_VMRUN = 956;;
+let _X86_INS_VMSAVE = 957;;
+let _X86_INS_VMULPD = 958;;
+let _X86_INS_VMULPS = 959;;
+let _X86_INS_VMULSD = 960;;
+let _X86_INS_VMULSS = 961;;
+let _X86_INS_VMWRITE = 962;;
+let _X86_INS_VMXOFF = 963;;
+let _X86_INS_VMXON = 964;;
+let _X86_INS_VPABSB = 965;;
+let _X86_INS_VPABSD = 966;;
+let _X86_INS_VPABSQ = 967;;
+let _X86_INS_VPABSW = 968;;
+let _X86_INS_VPACKSSDW = 969;;
+let _X86_INS_VPACKSSWB = 970;;
+let _X86_INS_VPACKUSDW = 971;;
+let _X86_INS_VPACKUSWB = 972;;
+let _X86_INS_VPADDB = 973;;
+let _X86_INS_VPADDD = 974;;
+let _X86_INS_VPADDQ = 975;;
+let _X86_INS_VPADDSB = 976;;
+let _X86_INS_VPADDSW = 977;;
+let _X86_INS_VPADDUSB = 978;;
+let _X86_INS_VPADDUSW = 979;;
+let _X86_INS_VPADDW = 980;;
+let _X86_INS_VPALIGNR = 981;;
+let _X86_INS_VPANDD = 982;;
+let _X86_INS_VPANDND = 983;;
+let _X86_INS_VPANDNQ = 984;;
+let _X86_INS_VPANDN = 985;;
+let _X86_INS_VPANDQ = 986;;
+let _X86_INS_VPAND = 987;;
+let _X86_INS_VPAVGB = 988;;
+let _X86_INS_VPAVGW = 989;;
+let _X86_INS_VPBLENDD = 990;;
+let _X86_INS_VPBLENDMB = 991;;
+let _X86_INS_VPBLENDMD = 992;;
+let _X86_INS_VPBLENDMQ = 993;;
+let _X86_INS_VPBLENDMW = 994;;
+let _X86_INS_VPBLENDVB = 995;;
+let _X86_INS_VPBLENDW = 996;;
+let _X86_INS_VPBROADCASTB = 997;;
+let _X86_INS_VPBROADCASTD = 998;;
+let _X86_INS_VPBROADCASTMB2Q = 999;;
+let _X86_INS_VPBROADCASTMW2D = 1000;;
+let _X86_INS_VPBROADCASTQ = 1001;;
+let _X86_INS_VPBROADCASTW = 1002;;
+let _X86_INS_VPCLMULQDQ = 1003;;
+let _X86_INS_VPCMOV = 1004;;
+let _X86_INS_VPCMPB = 1005;;
+let _X86_INS_VPCMPD = 1006;;
+let _X86_INS_VPCMPEQB = 1007;;
+let _X86_INS_VPCMPEQD = 1008;;
+let _X86_INS_VPCMPEQQ = 1009;;
+let _X86_INS_VPCMPEQW = 1010;;
+let _X86_INS_VPCMPESTRI = 1011;;
+let _X86_INS_VPCMPESTRM = 1012;;
+let _X86_INS_VPCMPGTB = 1013;;
+let _X86_INS_VPCMPGTD = 1014;;
+let _X86_INS_VPCMPGTQ = 1015;;
+let _X86_INS_VPCMPGTW = 1016;;
+let _X86_INS_VPCMPISTRI = 1017;;
+let _X86_INS_VPCMPISTRM = 1018;;
+let _X86_INS_VPCMPQ = 1019;;
+let _X86_INS_VPCMPUB = 1020;;
+let _X86_INS_VPCMPUD = 1021;;
+let _X86_INS_VPCMPUQ = 1022;;
+let _X86_INS_VPCMPUW = 1023;;
+let _X86_INS_VPCMPW = 1024;;
+let _X86_INS_VPCOMB = 1025;;
+let _X86_INS_VPCOMD = 1026;;
+let _X86_INS_VPCOMPRESSD = 1027;;
+let _X86_INS_VPCOMPRESSQ = 1028;;
+let _X86_INS_VPCOMQ = 1029;;
+let _X86_INS_VPCOMUB = 1030;;
+let _X86_INS_VPCOMUD = 1031;;
+let _X86_INS_VPCOMUQ = 1032;;
+let _X86_INS_VPCOMUW = 1033;;
+let _X86_INS_VPCOMW = 1034;;
+let _X86_INS_VPCONFLICTD = 1035;;
+let _X86_INS_VPCONFLICTQ = 1036;;
+let _X86_INS_VPERM2F128 = 1037;;
+let _X86_INS_VPERM2I128 = 1038;;
+let _X86_INS_VPERMD = 1039;;
+let _X86_INS_VPERMI2D = 1040;;
+let _X86_INS_VPERMI2PD = 1041;;
+let _X86_INS_VPERMI2PS = 1042;;
+let _X86_INS_VPERMI2Q = 1043;;
+let _X86_INS_VPERMIL2PD = 1044;;
+let _X86_INS_VPERMIL2PS = 1045;;
+let _X86_INS_VPERMILPD = 1046;;
+let _X86_INS_VPERMILPS = 1047;;
+let _X86_INS_VPERMPD = 1048;;
+let _X86_INS_VPERMPS = 1049;;
+let _X86_INS_VPERMQ = 1050;;
+let _X86_INS_VPERMT2D = 1051;;
+let _X86_INS_VPERMT2PD = 1052;;
+let _X86_INS_VPERMT2PS = 1053;;
+let _X86_INS_VPERMT2Q = 1054;;
+let _X86_INS_VPEXPANDD = 1055;;
+let _X86_INS_VPEXPANDQ = 1056;;
+let _X86_INS_VPEXTRB = 1057;;
+let _X86_INS_VPEXTRD = 1058;;
+let _X86_INS_VPEXTRQ = 1059;;
+let _X86_INS_VPEXTRW = 1060;;
+let _X86_INS_VPGATHERDD = 1061;;
+let _X86_INS_VPGATHERDQ = 1062;;
+let _X86_INS_VPGATHERQD = 1063;;
+let _X86_INS_VPGATHERQQ = 1064;;
+let _X86_INS_VPHADDBD = 1065;;
+let _X86_INS_VPHADDBQ = 1066;;
+let _X86_INS_VPHADDBW = 1067;;
+let _X86_INS_VPHADDDQ = 1068;;
+let _X86_INS_VPHADDD = 1069;;
+let _X86_INS_VPHADDSW = 1070;;
+let _X86_INS_VPHADDUBD = 1071;;
+let _X86_INS_VPHADDUBQ = 1072;;
+let _X86_INS_VPHADDUBW = 1073;;
+let _X86_INS_VPHADDUDQ = 1074;;
+let _X86_INS_VPHADDUWD = 1075;;
+let _X86_INS_VPHADDUWQ = 1076;;
+let _X86_INS_VPHADDWD = 1077;;
+let _X86_INS_VPHADDWQ = 1078;;
+let _X86_INS_VPHADDW = 1079;;
+let _X86_INS_VPHMINPOSUW = 1080;;
+let _X86_INS_VPHSUBBW = 1081;;
+let _X86_INS_VPHSUBDQ = 1082;;
+let _X86_INS_VPHSUBD = 1083;;
+let _X86_INS_VPHSUBSW = 1084;;
+let _X86_INS_VPHSUBWD = 1085;;
+let _X86_INS_VPHSUBW = 1086;;
+let _X86_INS_VPINSRB = 1087;;
+let _X86_INS_VPINSRD = 1088;;
+let _X86_INS_VPINSRQ = 1089;;
+let _X86_INS_VPINSRW = 1090;;
+let _X86_INS_VPLZCNTD = 1091;;
+let _X86_INS_VPLZCNTQ = 1092;;
+let _X86_INS_VPMACSDD = 1093;;
+let _X86_INS_VPMACSDQH = 1094;;
+let _X86_INS_VPMACSDQL = 1095;;
+let _X86_INS_VPMACSSDD = 1096;;
+let _X86_INS_VPMACSSDQH = 1097;;
+let _X86_INS_VPMACSSDQL = 1098;;
+let _X86_INS_VPMACSSWD = 1099;;
+let _X86_INS_VPMACSSWW = 1100;;
+let _X86_INS_VPMACSWD = 1101;;
+let _X86_INS_VPMACSWW = 1102;;
+let _X86_INS_VPMADCSSWD = 1103;;
+let _X86_INS_VPMADCSWD = 1104;;
+let _X86_INS_VPMADDUBSW = 1105;;
+let _X86_INS_VPMADDWD = 1106;;
+let _X86_INS_VPMASKMOVD = 1107;;
+let _X86_INS_VPMASKMOVQ = 1108;;
+let _X86_INS_VPMAXSB = 1109;;
+let _X86_INS_VPMAXSD = 1110;;
+let _X86_INS_VPMAXSQ = 1111;;
+let _X86_INS_VPMAXSW = 1112;;
+let _X86_INS_VPMAXUB = 1113;;
+let _X86_INS_VPMAXUD = 1114;;
+let _X86_INS_VPMAXUQ = 1115;;
+let _X86_INS_VPMAXUW = 1116;;
+let _X86_INS_VPMINSB = 1117;;
+let _X86_INS_VPMINSD = 1118;;
+let _X86_INS_VPMINSQ = 1119;;
+let _X86_INS_VPMINSW = 1120;;
+let _X86_INS_VPMINUB = 1121;;
+let _X86_INS_VPMINUD = 1122;;
+let _X86_INS_VPMINUQ = 1123;;
+let _X86_INS_VPMINUW = 1124;;
+let _X86_INS_VPMOVDB = 1125;;
+let _X86_INS_VPMOVDW = 1126;;
+let _X86_INS_VPMOVM2B = 1127;;
+let _X86_INS_VPMOVM2D = 1128;;
+let _X86_INS_VPMOVM2Q = 1129;;
+let _X86_INS_VPMOVM2W = 1130;;
+let _X86_INS_VPMOVMSKB = 1131;;
+let _X86_INS_VPMOVQB = 1132;;
+let _X86_INS_VPMOVQD = 1133;;
+let _X86_INS_VPMOVQW = 1134;;
+let _X86_INS_VPMOVSDB = 1135;;
+let _X86_INS_VPMOVSDW = 1136;;
+let _X86_INS_VPMOVSQB = 1137;;
+let _X86_INS_VPMOVSQD = 1138;;
+let _X86_INS_VPMOVSQW = 1139;;
+let _X86_INS_VPMOVSXBD = 1140;;
+let _X86_INS_VPMOVSXBQ = 1141;;
+let _X86_INS_VPMOVSXBW = 1142;;
+let _X86_INS_VPMOVSXDQ = 1143;;
+let _X86_INS_VPMOVSXWD = 1144;;
+let _X86_INS_VPMOVSXWQ = 1145;;
+let _X86_INS_VPMOVUSDB = 1146;;
+let _X86_INS_VPMOVUSDW = 1147;;
+let _X86_INS_VPMOVUSQB = 1148;;
+let _X86_INS_VPMOVUSQD = 1149;;
+let _X86_INS_VPMOVUSQW = 1150;;
+let _X86_INS_VPMOVZXBD = 1151;;
+let _X86_INS_VPMOVZXBQ = 1152;;
+let _X86_INS_VPMOVZXBW = 1153;;
+let _X86_INS_VPMOVZXDQ = 1154;;
+let _X86_INS_VPMOVZXWD = 1155;;
+let _X86_INS_VPMOVZXWQ = 1156;;
+let _X86_INS_VPMULDQ = 1157;;
+let _X86_INS_VPMULHRSW = 1158;;
+let _X86_INS_VPMULHUW = 1159;;
+let _X86_INS_VPMULHW = 1160;;
+let _X86_INS_VPMULLD = 1161;;
+let _X86_INS_VPMULLQ = 1162;;
+let _X86_INS_VPMULLW = 1163;;
+let _X86_INS_VPMULUDQ = 1164;;
+let _X86_INS_VPORD = 1165;;
+let _X86_INS_VPORQ = 1166;;
+let _X86_INS_VPOR = 1167;;
+let _X86_INS_VPPERM = 1168;;
+let _X86_INS_VPROTB = 1169;;
+let _X86_INS_VPROTD = 1170;;
+let _X86_INS_VPROTQ = 1171;;
+let _X86_INS_VPROTW = 1172;;
+let _X86_INS_VPSADBW = 1173;;
+let _X86_INS_VPSCATTERDD = 1174;;
+let _X86_INS_VPSCATTERDQ = 1175;;
+let _X86_INS_VPSCATTERQD = 1176;;
+let _X86_INS_VPSCATTERQQ = 1177;;
+let _X86_INS_VPSHAB = 1178;;
+let _X86_INS_VPSHAD = 1179;;
+let _X86_INS_VPSHAQ = 1180;;
+let _X86_INS_VPSHAW = 1181;;
+let _X86_INS_VPSHLB = 1182;;
+let _X86_INS_VPSHLD = 1183;;
+let _X86_INS_VPSHLQ = 1184;;
+let _X86_INS_VPSHLW = 1185;;
+let _X86_INS_VPSHUFB = 1186;;
+let _X86_INS_VPSHUFD = 1187;;
+let _X86_INS_VPSHUFHW = 1188;;
+let _X86_INS_VPSHUFLW = 1189;;
+let _X86_INS_VPSIGNB = 1190;;
+let _X86_INS_VPSIGND = 1191;;
+let _X86_INS_VPSIGNW = 1192;;
+let _X86_INS_VPSLLDQ = 1193;;
+let _X86_INS_VPSLLD = 1194;;
+let _X86_INS_VPSLLQ = 1195;;
+let _X86_INS_VPSLLVD = 1196;;
+let _X86_INS_VPSLLVQ = 1197;;
+let _X86_INS_VPSLLW = 1198;;
+let _X86_INS_VPSRAD = 1199;;
+let _X86_INS_VPSRAQ = 1200;;
+let _X86_INS_VPSRAVD = 1201;;
+let _X86_INS_VPSRAVQ = 1202;;
+let _X86_INS_VPSRAW = 1203;;
+let _X86_INS_VPSRLDQ = 1204;;
+let _X86_INS_VPSRLD = 1205;;
+let _X86_INS_VPSRLQ = 1206;;
+let _X86_INS_VPSRLVD = 1207;;
+let _X86_INS_VPSRLVQ = 1208;;
+let _X86_INS_VPSRLW = 1209;;
+let _X86_INS_VPSUBB = 1210;;
+let _X86_INS_VPSUBD = 1211;;
+let _X86_INS_VPSUBQ = 1212;;
+let _X86_INS_VPSUBSB = 1213;;
+let _X86_INS_VPSUBSW = 1214;;
+let _X86_INS_VPSUBUSB = 1215;;
+let _X86_INS_VPSUBUSW = 1216;;
+let _X86_INS_VPSUBW = 1217;;
+let _X86_INS_VPTESTMD = 1218;;
+let _X86_INS_VPTESTMQ = 1219;;
+let _X86_INS_VPTESTNMD = 1220;;
+let _X86_INS_VPTESTNMQ = 1221;;
+let _X86_INS_VPTEST = 1222;;
+let _X86_INS_VPUNPCKHBW = 1223;;
+let _X86_INS_VPUNPCKHDQ = 1224;;
+let _X86_INS_VPUNPCKHQDQ = 1225;;
+let _X86_INS_VPUNPCKHWD = 1226;;
+let _X86_INS_VPUNPCKLBW = 1227;;
+let _X86_INS_VPUNPCKLDQ = 1228;;
+let _X86_INS_VPUNPCKLQDQ = 1229;;
+let _X86_INS_VPUNPCKLWD = 1230;;
+let _X86_INS_VPXORD = 1231;;
+let _X86_INS_VPXORQ = 1232;;
+let _X86_INS_VPXOR = 1233;;
+let _X86_INS_VRCP14PD = 1234;;
+let _X86_INS_VRCP14PS = 1235;;
+let _X86_INS_VRCP14SD = 1236;;
+let _X86_INS_VRCP14SS = 1237;;
+let _X86_INS_VRCP28PD = 1238;;
+let _X86_INS_VRCP28PS = 1239;;
+let _X86_INS_VRCP28SD = 1240;;
+let _X86_INS_VRCP28SS = 1241;;
+let _X86_INS_VRCPPS = 1242;;
+let _X86_INS_VRCPSS = 1243;;
+let _X86_INS_VRNDSCALEPD = 1244;;
+let _X86_INS_VRNDSCALEPS = 1245;;
+let _X86_INS_VRNDSCALESD = 1246;;
+let _X86_INS_VRNDSCALESS = 1247;;
+let _X86_INS_VROUNDPD = 1248;;
+let _X86_INS_VROUNDPS = 1249;;
+let _X86_INS_VROUNDSD = 1250;;
+let _X86_INS_VROUNDSS = 1251;;
+let _X86_INS_VRSQRT14PD = 1252;;
+let _X86_INS_VRSQRT14PS = 1253;;
+let _X86_INS_VRSQRT14SD = 1254;;
+let _X86_INS_VRSQRT14SS = 1255;;
+let _X86_INS_VRSQRT28PD = 1256;;
+let _X86_INS_VRSQRT28PS = 1257;;
+let _X86_INS_VRSQRT28SD = 1258;;
+let _X86_INS_VRSQRT28SS = 1259;;
+let _X86_INS_VRSQRTPS = 1260;;
+let _X86_INS_VRSQRTSS = 1261;;
+let _X86_INS_VSCATTERDPD = 1262;;
+let _X86_INS_VSCATTERDPS = 1263;;
+let _X86_INS_VSCATTERPF0DPD = 1264;;
+let _X86_INS_VSCATTERPF0DPS = 1265;;
+let _X86_INS_VSCATTERPF0QPD = 1266;;
+let _X86_INS_VSCATTERPF0QPS = 1267;;
+let _X86_INS_VSCATTERPF1DPD = 1268;;
+let _X86_INS_VSCATTERPF1DPS = 1269;;
+let _X86_INS_VSCATTERPF1QPD = 1270;;
+let _X86_INS_VSCATTERPF1QPS = 1271;;
+let _X86_INS_VSCATTERQPD = 1272;;
+let _X86_INS_VSCATTERQPS = 1273;;
+let _X86_INS_VSHUFPD = 1274;;
+let _X86_INS_VSHUFPS = 1275;;
+let _X86_INS_VSQRTPD = 1276;;
+let _X86_INS_VSQRTPS = 1277;;
+let _X86_INS_VSQRTSD = 1278;;
+let _X86_INS_VSQRTSS = 1279;;
+let _X86_INS_VSTMXCSR = 1280;;
+let _X86_INS_VSUBPD = 1281;;
+let _X86_INS_VSUBPS = 1282;;
+let _X86_INS_VSUBSD = 1283;;
+let _X86_INS_VSUBSS = 1284;;
+let _X86_INS_VTESTPD = 1285;;
+let _X86_INS_VTESTPS = 1286;;
+let _X86_INS_VUNPCKHPD = 1287;;
+let _X86_INS_VUNPCKHPS = 1288;;
+let _X86_INS_VUNPCKLPD = 1289;;
+let _X86_INS_VUNPCKLPS = 1290;;
+let _X86_INS_VZEROALL = 1291;;
+let _X86_INS_VZEROUPPER = 1292;;
+let _X86_INS_WAIT = 1293;;
+let _X86_INS_WBINVD = 1294;;
+let _X86_INS_WRFSBASE = 1295;;
+let _X86_INS_WRGSBASE = 1296;;
+let _X86_INS_WRMSR = 1297;;
+let _X86_INS_XABORT = 1298;;
+let _X86_INS_XACQUIRE = 1299;;
+let _X86_INS_XBEGIN = 1300;;
+let _X86_INS_XCHG = 1301;;
+let _X86_INS_XCRYPTCBC = 1302;;
+let _X86_INS_XCRYPTCFB = 1303;;
+let _X86_INS_XCRYPTCTR = 1304;;
+let _X86_INS_XCRYPTECB = 1305;;
+let _X86_INS_XCRYPTOFB = 1306;;
+let _X86_INS_XEND = 1307;;
+let _X86_INS_XGETBV = 1308;;
+let _X86_INS_XLATB = 1309;;
+let _X86_INS_XRELEASE = 1310;;
+let _X86_INS_XRSTOR = 1311;;
+let _X86_INS_XRSTOR64 = 1312;;
+let _X86_INS_XRSTORS = 1313;;
+let _X86_INS_XRSTORS64 = 1314;;
+let _X86_INS_XSAVE = 1315;;
+let _X86_INS_XSAVE64 = 1316;;
+let _X86_INS_XSAVEC = 1317;;
+let _X86_INS_XSAVEC64 = 1318;;
+let _X86_INS_XSAVEOPT = 1319;;
+let _X86_INS_XSAVEOPT64 = 1320;;
+let _X86_INS_XSAVES = 1321;;
+let _X86_INS_XSAVES64 = 1322;;
+let _X86_INS_XSETBV = 1323;;
+let _X86_INS_XSHA1 = 1324;;
+let _X86_INS_XSHA256 = 1325;;
+let _X86_INS_XSTORE = 1326;;
+let _X86_INS_XTEST = 1327;;
+let _X86_INS_FDISI8087_NOP = 1328;;
+let _X86_INS_FENI8087_NOP = 1329;;
+let _X86_INS_CMPSS = 1330;;
+let _X86_INS_CMPEQSS = 1331;;
+let _X86_INS_CMPLTSS = 1332;;
+let _X86_INS_CMPLESS = 1333;;
+let _X86_INS_CMPUNORDSS = 1334;;
+let _X86_INS_CMPNEQSS = 1335;;
+let _X86_INS_CMPNLTSS = 1336;;
+let _X86_INS_CMPNLESS = 1337;;
+let _X86_INS_CMPORDSS = 1338;;
+let _X86_INS_CMPSD = 1339;;
+let _X86_INS_CMPEQSD = 1340;;
+let _X86_INS_CMPLTSD = 1341;;
+let _X86_INS_CMPLESD = 1342;;
+let _X86_INS_CMPUNORDSD = 1343;;
+let _X86_INS_CMPNEQSD = 1344;;
+let _X86_INS_CMPNLTSD = 1345;;
+let _X86_INS_CMPNLESD = 1346;;
+let _X86_INS_CMPORDSD = 1347;;
+let _X86_INS_CMPPS = 1348;;
+let _X86_INS_CMPEQPS = 1349;;
+let _X86_INS_CMPLTPS = 1350;;
+let _X86_INS_CMPLEPS = 1351;;
+let _X86_INS_CMPUNORDPS = 1352;;
+let _X86_INS_CMPNEQPS = 1353;;
+let _X86_INS_CMPNLTPS = 1354;;
+let _X86_INS_CMPNLEPS = 1355;;
+let _X86_INS_CMPORDPS = 1356;;
+let _X86_INS_CMPPD = 1357;;
+let _X86_INS_CMPEQPD = 1358;;
+let _X86_INS_CMPLTPD = 1359;;
+let _X86_INS_CMPLEPD = 1360;;
+let _X86_INS_CMPUNORDPD = 1361;;
+let _X86_INS_CMPNEQPD = 1362;;
+let _X86_INS_CMPNLTPD = 1363;;
+let _X86_INS_CMPNLEPD = 1364;;
+let _X86_INS_CMPORDPD = 1365;;
+let _X86_INS_VCMPSS = 1366;;
+let _X86_INS_VCMPEQSS = 1367;;
+let _X86_INS_VCMPLTSS = 1368;;
+let _X86_INS_VCMPLESS = 1369;;
+let _X86_INS_VCMPUNORDSS = 1370;;
+let _X86_INS_VCMPNEQSS = 1371;;
+let _X86_INS_VCMPNLTSS = 1372;;
+let _X86_INS_VCMPNLESS = 1373;;
+let _X86_INS_VCMPORDSS = 1374;;
+let _X86_INS_VCMPEQ_UQSS = 1375;;
+let _X86_INS_VCMPNGESS = 1376;;
+let _X86_INS_VCMPNGTSS = 1377;;
+let _X86_INS_VCMPFALSESS = 1378;;
+let _X86_INS_VCMPNEQ_OQSS = 1379;;
+let _X86_INS_VCMPGESS = 1380;;
+let _X86_INS_VCMPGTSS = 1381;;
+let _X86_INS_VCMPTRUESS = 1382;;
+let _X86_INS_VCMPEQ_OSSS = 1383;;
+let _X86_INS_VCMPLT_OQSS = 1384;;
+let _X86_INS_VCMPLE_OQSS = 1385;;
+let _X86_INS_VCMPUNORD_SSS = 1386;;
+let _X86_INS_VCMPNEQ_USSS = 1387;;
+let _X86_INS_VCMPNLT_UQSS = 1388;;
+let _X86_INS_VCMPNLE_UQSS = 1389;;
+let _X86_INS_VCMPORD_SSS = 1390;;
+let _X86_INS_VCMPEQ_USSS = 1391;;
+let _X86_INS_VCMPNGE_UQSS = 1392;;
+let _X86_INS_VCMPNGT_UQSS = 1393;;
+let _X86_INS_VCMPFALSE_OSSS = 1394;;
+let _X86_INS_VCMPNEQ_OSSS = 1395;;
+let _X86_INS_VCMPGE_OQSS = 1396;;
+let _X86_INS_VCMPGT_OQSS = 1397;;
+let _X86_INS_VCMPTRUE_USSS = 1398;;
+let _X86_INS_VCMPSD = 1399;;
+let _X86_INS_VCMPEQSD = 1400;;
+let _X86_INS_VCMPLTSD = 1401;;
+let _X86_INS_VCMPLESD = 1402;;
+let _X86_INS_VCMPUNORDSD = 1403;;
+let _X86_INS_VCMPNEQSD = 1404;;
+let _X86_INS_VCMPNLTSD = 1405;;
+let _X86_INS_VCMPNLESD = 1406;;
+let _X86_INS_VCMPORDSD = 1407;;
+let _X86_INS_VCMPEQ_UQSD = 1408;;
+let _X86_INS_VCMPNGESD = 1409;;
+let _X86_INS_VCMPNGTSD = 1410;;
+let _X86_INS_VCMPFALSESD = 1411;;
+let _X86_INS_VCMPNEQ_OQSD = 1412;;
+let _X86_INS_VCMPGESD = 1413;;
+let _X86_INS_VCMPGTSD = 1414;;
+let _X86_INS_VCMPTRUESD = 1415;;
+let _X86_INS_VCMPEQ_OSSD = 1416;;
+let _X86_INS_VCMPLT_OQSD = 1417;;
+let _X86_INS_VCMPLE_OQSD = 1418;;
+let _X86_INS_VCMPUNORD_SSD = 1419;;
+let _X86_INS_VCMPNEQ_USSD = 1420;;
+let _X86_INS_VCMPNLT_UQSD = 1421;;
+let _X86_INS_VCMPNLE_UQSD = 1422;;
+let _X86_INS_VCMPORD_SSD = 1423;;
+let _X86_INS_VCMPEQ_USSD = 1424;;
+let _X86_INS_VCMPNGE_UQSD = 1425;;
+let _X86_INS_VCMPNGT_UQSD = 1426;;
+let _X86_INS_VCMPFALSE_OSSD = 1427;;
+let _X86_INS_VCMPNEQ_OSSD = 1428;;
+let _X86_INS_VCMPGE_OQSD = 1429;;
+let _X86_INS_VCMPGT_OQSD = 1430;;
+let _X86_INS_VCMPTRUE_USSD = 1431;;
+let _X86_INS_VCMPPS = 1432;;
+let _X86_INS_VCMPEQPS = 1433;;
+let _X86_INS_VCMPLTPS = 1434;;
+let _X86_INS_VCMPLEPS = 1435;;
+let _X86_INS_VCMPUNORDPS = 1436;;
+let _X86_INS_VCMPNEQPS = 1437;;
+let _X86_INS_VCMPNLTPS = 1438;;
+let _X86_INS_VCMPNLEPS = 1439;;
+let _X86_INS_VCMPORDPS = 1440;;
+let _X86_INS_VCMPEQ_UQPS = 1441;;
+let _X86_INS_VCMPNGEPS = 1442;;
+let _X86_INS_VCMPNGTPS = 1443;;
+let _X86_INS_VCMPFALSEPS = 1444;;
+let _X86_INS_VCMPNEQ_OQPS = 1445;;
+let _X86_INS_VCMPGEPS = 1446;;
+let _X86_INS_VCMPGTPS = 1447;;
+let _X86_INS_VCMPTRUEPS = 1448;;
+let _X86_INS_VCMPEQ_OSPS = 1449;;
+let _X86_INS_VCMPLT_OQPS = 1450;;
+let _X86_INS_VCMPLE_OQPS = 1451;;
+let _X86_INS_VCMPUNORD_SPS = 1452;;
+let _X86_INS_VCMPNEQ_USPS = 1453;;
+let _X86_INS_VCMPNLT_UQPS = 1454;;
+let _X86_INS_VCMPNLE_UQPS = 1455;;
+let _X86_INS_VCMPORD_SPS = 1456;;
+let _X86_INS_VCMPEQ_USPS = 1457;;
+let _X86_INS_VCMPNGE_UQPS = 1458;;
+let _X86_INS_VCMPNGT_UQPS = 1459;;
+let _X86_INS_VCMPFALSE_OSPS = 1460;;
+let _X86_INS_VCMPNEQ_OSPS = 1461;;
+let _X86_INS_VCMPGE_OQPS = 1462;;
+let _X86_INS_VCMPGT_OQPS = 1463;;
+let _X86_INS_VCMPTRUE_USPS = 1464;;
+let _X86_INS_VCMPPD = 1465;;
+let _X86_INS_VCMPEQPD = 1466;;
+let _X86_INS_VCMPLTPD = 1467;;
+let _X86_INS_VCMPLEPD = 1468;;
+let _X86_INS_VCMPUNORDPD = 1469;;
+let _X86_INS_VCMPNEQPD = 1470;;
+let _X86_INS_VCMPNLTPD = 1471;;
+let _X86_INS_VCMPNLEPD = 1472;;
+let _X86_INS_VCMPORDPD = 1473;;
+let _X86_INS_VCMPEQ_UQPD = 1474;;
+let _X86_INS_VCMPNGEPD = 1475;;
+let _X86_INS_VCMPNGTPD = 1476;;
+let _X86_INS_VCMPFALSEPD = 1477;;
+let _X86_INS_VCMPNEQ_OQPD = 1478;;
+let _X86_INS_VCMPGEPD = 1479;;
+let _X86_INS_VCMPGTPD = 1480;;
+let _X86_INS_VCMPTRUEPD = 1481;;
+let _X86_INS_VCMPEQ_OSPD = 1482;;
+let _X86_INS_VCMPLT_OQPD = 1483;;
+let _X86_INS_VCMPLE_OQPD = 1484;;
+let _X86_INS_VCMPUNORD_SPD = 1485;;
+let _X86_INS_VCMPNEQ_USPD = 1486;;
+let _X86_INS_VCMPNLT_UQPD = 1487;;
+let _X86_INS_VCMPNLE_UQPD = 1488;;
+let _X86_INS_VCMPORD_SPD = 1489;;
+let _X86_INS_VCMPEQ_USPD = 1490;;
+let _X86_INS_VCMPNGE_UQPD = 1491;;
+let _X86_INS_VCMPNGT_UQPD = 1492;;
+let _X86_INS_VCMPFALSE_OSPD = 1493;;
+let _X86_INS_VCMPNEQ_OSPD = 1494;;
+let _X86_INS_VCMPGE_OQPD = 1495;;
+let _X86_INS_VCMPGT_OQPD = 1496;;
+let _X86_INS_VCMPTRUE_USPD = 1497;;
+let _X86_INS_ENDING = 1498;;
 
 (* Group of X86 instructions *)
 
diff --git a/bindings/python/Makefile b/bindings/python/Makefile
index 0977218..ca4ebf8 100644
--- a/bindings/python/Makefile
+++ b/bindings/python/Makefile
@@ -132,6 +132,7 @@
 check:
 	@for t in $(TESTS); do \
 		echo Check $$t ... ; \
-		./$$t > /dev/null && echo OK || echo FAILED; \
+		./$$t > /dev/null; \
+		if [ $$? -eq 0 ]; then echo OK; else echo FAILED; exit 1; fi \
 	done
 
diff --git a/bindings/python/capstone/__init__.py b/bindings/python/capstone/__init__.py
index 851aa90..c6c1c8e 100644
--- a/bindings/python/capstone/__init__.py
+++ b/bindings/python/capstone/__init__.py
@@ -4,7 +4,6 @@
 _python2 = sys.version_info[0] < 3
 if _python2:
     range = xrange
-from . import arm, arm64, m68k, mips, ppc, sparc, systemz, x86, xcore
 
 __all__ = [
     'Cs',
@@ -289,6 +288,19 @@
 
 
 # low-level structure for C code
+
+def copy_ctypes(src):
+    """Returns a new ctypes object which is a bitwise copy of an existing one"""
+    dst = type(src)()
+    ctypes.memmove(ctypes.byref(dst), ctypes.byref(src), ctypes.sizeof(type(src)))
+    return dst
+
+def copy_ctypes_list(src):
+    return [copy_ctypes(n) for n in src]
+
+# Weird import placement because these modules are needed by the below code but need the above functions
+from . import arm, arm64, m68k, mips, ppc, sparc, systemz, x86, xcore
+
 class _cs_arch(ctypes.Union):
     _fields_ = (
         ('arm64', arm64.CsArm64),
@@ -479,17 +491,10 @@
     if status != CS_ERR_OK:
         raise CsError(status)
 
-
-# alternately
-def copy_ctypes(src):
-    """Returns a new ctypes object which is a bitwise copy of an existing one"""
-    dst = type(src)()
-    ctypes.pointer(dst)[0] = src
-    return dst
-
 def _ascii_name_or_default(name, default):
     return default if name is None else name.decode('ascii')
 
+
 # Python-style class to disasm code
 class CsInsn(object):
     def __init__(self, cs, all_info):
diff --git a/bindings/python/capstone/arm.py b/bindings/python/capstone/arm.py
index 74c45a4..4ed902e 100644
--- a/bindings/python/capstone/arm.py
+++ b/bindings/python/capstone/arm.py
@@ -1,6 +1,7 @@
 # Capstone Python bindings, by Nguyen Anh Quynnh <aquynh@gmail.com>
 
-import ctypes, copy
+import ctypes
+from . import copy_ctypes_list
 from .arm_const import *
 
 # define the API
@@ -77,5 +78,5 @@
 
 def get_arch_info(a):
     return (a.usermode, a.vector_size, a.vector_data, a.cps_mode, a.cps_flag, a.cc, a.update_flags, \
-        a.writeback, a.mem_barrier, copy.deepcopy(a.operands[:a.op_count]))
+        a.writeback, a.mem_barrier, copy_ctypes_list(a.operands[:a.op_count]))
 
diff --git a/bindings/python/capstone/arm64.py b/bindings/python/capstone/arm64.py
index 4ab31b7..1d4efc3 100644
--- a/bindings/python/capstone/arm64.py
+++ b/bindings/python/capstone/arm64.py
@@ -1,6 +1,7 @@
 # Capstone Python bindings, by Nguyen Anh Quynnh <aquynh@gmail.com>
 
-import ctypes, copy
+import ctypes
+from . import copy_ctypes_list
 from .arm64_const import *
 
 # define the API
@@ -85,5 +86,5 @@
     )
 
 def get_arch_info(a):
-    return (a.cc, a.update_flags, a.writeback, copy.deepcopy(a.operands[:a.op_count]))
+    return (a.cc, a.update_flags, a.writeback, copy_ctypes_list(a.operands[:a.op_count]))
 
diff --git a/bindings/python/capstone/m68k.py b/bindings/python/capstone/m68k.py
index cd6b70e..37b9a99 100644
--- a/bindings/python/capstone/m68k.py
+++ b/bindings/python/capstone/m68k.py
@@ -1,6 +1,7 @@
 # Capstone Python bindings, by Nicolas PLANEL <nplanel@gmail.com>
 
-import ctypes, copy
+import ctypes
+from . import copy_ctypes_list
 from .m68k_const import *
 
 # define the API
@@ -19,12 +20,19 @@
         ('index_size', ctypes.c_ubyte),
     )
 
+class M68KOpRegPair(ctypes.Structure):
+    _fields_ = (
+        ('reg_0', ctypes.c_uint),
+        ('reg_1', ctypes.c_uint),
+    )
+
 class M68KOpValue(ctypes.Union):
     _fields_ = (
         ('imm', ctypes.c_int64),
         ('dimm', ctypes.c_double),
         ('simm', ctypes.c_float),
         ('reg', ctypes.c_uint),
+        ('reg_pair', M68KOpRegPair),
         ('mem', M68KOpMem),
         ('register_bits', ctypes.c_uint),
     )
@@ -59,7 +67,7 @@
     @property
     def register_bits(self):
         return self.value.register_bits
-    
+
 class M68KOpSize(ctypes.Structure):
     _fields_ = (
         ('type', ctypes.c_uint),
@@ -67,8 +75,8 @@
     )
 
     def get(a):
-        return copy.deepcopy(type, size)
-    
+        return copy_ctypes_list(type, size)
+
 class CsM68K(ctypes.Structure):
     M68K_OPERAND_COUNT = 4
     _fields_ = (
@@ -78,5 +86,4 @@
     )
 
 def get_arch_info(a):
-    return (copy.deepcopy(a.operands[:a.op_count]), a.op_size)
-
+    return (copy_ctypes_list(a.operands[:a.op_count]), a.op_size)
diff --git a/bindings/python/capstone/m68k_const.py b/bindings/python/capstone/m68k_const.py
index 1d18349..7a3ff87 100644
--- a/bindings/python/capstone/m68k_const.py
+++ b/bindings/python/capstone/m68k_const.py
@@ -72,7 +72,7 @@
 M68K_AM_PC_MEMI_PRE_INDEX = 15
 M68K_AM_ABSOLUTE_DATA_SHORT = 16
 M68K_AM_ABSOLUTE_DATA_LONG = 17
-M68K_AM_IMMIDIATE = 18
+M68K_AM_IMMEDIATE = 18
 
 # Operand type for instruction's operands
 
@@ -80,9 +80,10 @@
 M68K_OP_REG = 1
 M68K_OP_IMM = 2
 M68K_OP_MEM = 3
-M68K_OP_FP = 4
-M68K_OP_REG_BITS = 5
-M68K_OP_REG_PAIR = 6
+M68K_OP_FP_SINGLE = 4
+M68K_OP_FP_DOUBLE = 5
+M68K_OP_REG_BITS = 6
+M68K_OP_REG_PAIR = 7
 
 M68K_CPU_SIZE_NONE = 0
 M68K_CPU_SIZE_BYTE = 1
diff --git a/bindings/python/capstone/mips.py b/bindings/python/capstone/mips.py
index 57e3d75..dd119e8 100644
--- a/bindings/python/capstone/mips.py
+++ b/bindings/python/capstone/mips.py
@@ -1,6 +1,7 @@
 # Capstone Python bindings, by Nguyen Anh Quynnh <aquynh@gmail.com>
 
-import ctypes, copy
+import ctypes
+from . import copy_ctypes_list
 from .mips_const import *
 
 # define the API
@@ -43,5 +44,5 @@
     )
 
 def get_arch_info(a):
-    return copy.deepcopy(a.operands[:a.op_count])
+    return copy_ctypes_list(a.operands[:a.op_count])
 
diff --git a/bindings/python/capstone/mips_const.py b/bindings/python/capstone/mips_const.py
index f94a279..81fdeae 100644
--- a/bindings/python/capstone/mips_const.py
+++ b/bindings/python/capstone/mips_const.py
@@ -841,6 +841,11 @@
 
 # Generic groups
 MIPS_GRP_JUMP = 1
+MIPS_GRP_CALL = 2
+MIPS_GRP_RET = 3
+MIPS_GRP_INT = 4
+MIPS_GRP_IRET = 5
+MIPS_GRP_PRIVILEGE = 6
 
 # Architecture-specific groups
 MIPS_GRP_BITCOUNT = 128
diff --git a/bindings/python/capstone/ppc.py b/bindings/python/capstone/ppc.py
index 79baefb..6ab177d 100644
--- a/bindings/python/capstone/ppc.py
+++ b/bindings/python/capstone/ppc.py
@@ -1,6 +1,7 @@
 # Capstone Python bindings, by Nguyen Anh Quynnh <aquynh@gmail.com>
 
-import ctypes, copy
+import ctypes
+from . import copy_ctypes_list
 from .ppc_const import *
 
 # define the API
@@ -58,5 +59,5 @@
     )
 
 def get_arch_info(a):
-    return (a.bc, a.bh, a.update_cr0, copy.deepcopy(a.operands[:a.op_count]))
+    return (a.bc, a.bh, a.update_cr0, copy_ctypes_list(a.operands[:a.op_count]))
 
diff --git a/bindings/python/capstone/sparc.py b/bindings/python/capstone/sparc.py
index 8213ca4..f181af8 100644
--- a/bindings/python/capstone/sparc.py
+++ b/bindings/python/capstone/sparc.py
@@ -1,6 +1,7 @@
 # Capstone Python bindings, by Nguyen Anh Quynnh <aquynh@gmail.com>
 
-import ctypes, copy
+import ctypes
+from . import copy_ctypes_list
 from .sparc_const import *
 
 # define the API
@@ -46,5 +47,5 @@
     )
 
 def get_arch_info(a):
-    return (a.cc, a.hint, copy.deepcopy(a.operands[:a.op_count]))
+    return (a.cc, a.hint, copy_ctypes_list(a.operands[:a.op_count]))
 
diff --git a/bindings/python/capstone/systemz.py b/bindings/python/capstone/systemz.py
index 7317757..398018b 100644
--- a/bindings/python/capstone/systemz.py
+++ b/bindings/python/capstone/systemz.py
@@ -1,6 +1,7 @@
 # Capstone Python bindings, by Nguyen Anh Quynnh <aquynh@gmail.com>
 
-import ctypes, copy
+import ctypes
+from . import copy_ctypes_list
 from .sysz_const import *
 
 # define the API
@@ -46,5 +47,5 @@
     )
 
 def get_arch_info(a):
-    return (a.cc, copy.deepcopy(a.operands[:a.op_count]))
+    return (a.cc, copy_ctypes_list(a.operands[:a.op_count]))
 
diff --git a/bindings/python/capstone/x86.py b/bindings/python/capstone/x86.py
index f2569cd..59aaa4b 100644
--- a/bindings/python/capstone/x86.py
+++ b/bindings/python/capstone/x86.py
@@ -1,6 +1,7 @@
 # Capstone Python bindings, by Nguyen Anh Quynnh <aquynh@gmail.com>
 
-import ctypes, copy
+import ctypes
+from . import copy_ctypes_list
 from .x86_const import *
 
 # define the API
@@ -69,5 +70,5 @@
     return (a.prefix[:], a.opcode[:], a.rex, a.addr_size, \
             a.modrm, a.sib, a.disp, a.sib_index, a.sib_scale, \
             a.sib_base, a.xop_cc, a.sse_cc, a.avx_cc, a.avx_sae, a.avx_rm, a.eflags, \
-            copy.deepcopy(a.operands[:a.op_count]))
+            copy_ctypes_list(a.operands[:a.op_count]))
 
diff --git a/bindings/python/capstone/x86_const.py b/bindings/python/capstone/x86_const.py
index 943a7e2..132a02c 100644
--- a/bindings/python/capstone/x86_const.py
+++ b/bindings/python/capstone/x86_const.py
@@ -489,1249 +489,1409 @@
 X86_INS_FCMOVU = 93
 X86_INS_CMOVS = 94
 X86_INS_CMP = 95
-X86_INS_CMPPD = 96
-X86_INS_CMPPS = 97
-X86_INS_CMPSB = 98
-X86_INS_CMPSD = 99
-X86_INS_CMPSQ = 100
-X86_INS_CMPSS = 101
-X86_INS_CMPSW = 102
-X86_INS_CMPXCHG16B = 103
-X86_INS_CMPXCHG = 104
-X86_INS_CMPXCHG8B = 105
-X86_INS_COMISD = 106
-X86_INS_COMISS = 107
-X86_INS_FCOMP = 108
-X86_INS_FCOMPI = 109
-X86_INS_FCOMI = 110
-X86_INS_FCOM = 111
-X86_INS_FCOS = 112
-X86_INS_CPUID = 113
-X86_INS_CQO = 114
-X86_INS_CRC32 = 115
-X86_INS_CVTDQ2PD = 116
-X86_INS_CVTDQ2PS = 117
-X86_INS_CVTPD2DQ = 118
-X86_INS_CVTPD2PS = 119
-X86_INS_CVTPS2DQ = 120
-X86_INS_CVTPS2PD = 121
-X86_INS_CVTSD2SI = 122
-X86_INS_CVTSD2SS = 123
-X86_INS_CVTSI2SD = 124
-X86_INS_CVTSI2SS = 125
-X86_INS_CVTSS2SD = 126
-X86_INS_CVTSS2SI = 127
-X86_INS_CVTTPD2DQ = 128
-X86_INS_CVTTPS2DQ = 129
-X86_INS_CVTTSD2SI = 130
-X86_INS_CVTTSS2SI = 131
-X86_INS_CWD = 132
-X86_INS_CWDE = 133
-X86_INS_DAA = 134
-X86_INS_DAS = 135
-X86_INS_DATA16 = 136
-X86_INS_DEC = 137
-X86_INS_DIV = 138
-X86_INS_DIVPD = 139
-X86_INS_DIVPS = 140
-X86_INS_FDIVR = 141
-X86_INS_FIDIVR = 142
-X86_INS_FDIVRP = 143
-X86_INS_DIVSD = 144
-X86_INS_DIVSS = 145
-X86_INS_FDIV = 146
-X86_INS_FIDIV = 147
-X86_INS_FDIVP = 148
-X86_INS_DPPD = 149
-X86_INS_DPPS = 150
-X86_INS_RET = 151
-X86_INS_ENCLS = 152
-X86_INS_ENCLU = 153
-X86_INS_ENTER = 154
-X86_INS_EXTRACTPS = 155
-X86_INS_EXTRQ = 156
-X86_INS_F2XM1 = 157
-X86_INS_LCALL = 158
-X86_INS_LJMP = 159
-X86_INS_FBLD = 160
-X86_INS_FBSTP = 161
-X86_INS_FCOMPP = 162
-X86_INS_FDECSTP = 163
-X86_INS_FEMMS = 164
-X86_INS_FFREE = 165
-X86_INS_FICOM = 166
-X86_INS_FICOMP = 167
-X86_INS_FINCSTP = 168
-X86_INS_FLDCW = 169
-X86_INS_FLDENV = 170
-X86_INS_FLDL2E = 171
-X86_INS_FLDL2T = 172
-X86_INS_FLDLG2 = 173
-X86_INS_FLDLN2 = 174
-X86_INS_FLDPI = 175
-X86_INS_FNCLEX = 176
-X86_INS_FNINIT = 177
-X86_INS_FNOP = 178
-X86_INS_FNSTCW = 179
-X86_INS_FNSTSW = 180
-X86_INS_FPATAN = 181
-X86_INS_FPREM = 182
-X86_INS_FPREM1 = 183
-X86_INS_FPTAN = 184
-X86_INS_FFREEP = 185
-X86_INS_FRNDINT = 186
-X86_INS_FRSTOR = 187
-X86_INS_FNSAVE = 188
-X86_INS_FSCALE = 189
-X86_INS_FSETPM = 190
-X86_INS_FSINCOS = 191
-X86_INS_FNSTENV = 192
-X86_INS_FXAM = 193
-X86_INS_FXRSTOR = 194
-X86_INS_FXRSTOR64 = 195
-X86_INS_FXSAVE = 196
-X86_INS_FXSAVE64 = 197
-X86_INS_FXTRACT = 198
-X86_INS_FYL2X = 199
-X86_INS_FYL2XP1 = 200
-X86_INS_MOVAPD = 201
-X86_INS_MOVAPS = 202
-X86_INS_ORPD = 203
-X86_INS_ORPS = 204
-X86_INS_VMOVAPD = 205
-X86_INS_VMOVAPS = 206
-X86_INS_XORPD = 207
-X86_INS_XORPS = 208
-X86_INS_GETSEC = 209
-X86_INS_HADDPD = 210
-X86_INS_HADDPS = 211
-X86_INS_HLT = 212
-X86_INS_HSUBPD = 213
-X86_INS_HSUBPS = 214
-X86_INS_IDIV = 215
-X86_INS_FILD = 216
-X86_INS_IMUL = 217
-X86_INS_IN = 218
-X86_INS_INC = 219
-X86_INS_INSB = 220
-X86_INS_INSERTPS = 221
-X86_INS_INSERTQ = 222
-X86_INS_INSD = 223
-X86_INS_INSW = 224
-X86_INS_INT = 225
-X86_INS_INT1 = 226
-X86_INS_INT3 = 227
-X86_INS_INTO = 228
-X86_INS_INVD = 229
-X86_INS_INVEPT = 230
-X86_INS_INVLPG = 231
-X86_INS_INVLPGA = 232
-X86_INS_INVPCID = 233
-X86_INS_INVVPID = 234
-X86_INS_IRET = 235
-X86_INS_IRETD = 236
-X86_INS_IRETQ = 237
-X86_INS_FISTTP = 238
-X86_INS_FIST = 239
-X86_INS_FISTP = 240
-X86_INS_UCOMISD = 241
-X86_INS_UCOMISS = 242
-X86_INS_VCOMISD = 243
-X86_INS_VCOMISS = 244
-X86_INS_VCVTSD2SS = 245
-X86_INS_VCVTSI2SD = 246
-X86_INS_VCVTSI2SS = 247
-X86_INS_VCVTSS2SD = 248
-X86_INS_VCVTTSD2SI = 249
-X86_INS_VCVTTSD2USI = 250
-X86_INS_VCVTTSS2SI = 251
-X86_INS_VCVTTSS2USI = 252
-X86_INS_VCVTUSI2SD = 253
-X86_INS_VCVTUSI2SS = 254
-X86_INS_VUCOMISD = 255
-X86_INS_VUCOMISS = 256
-X86_INS_JAE = 257
-X86_INS_JA = 258
-X86_INS_JBE = 259
-X86_INS_JB = 260
-X86_INS_JCXZ = 261
-X86_INS_JECXZ = 262
-X86_INS_JE = 263
-X86_INS_JGE = 264
-X86_INS_JG = 265
-X86_INS_JLE = 266
-X86_INS_JL = 267
-X86_INS_JMP = 268
-X86_INS_JNE = 269
-X86_INS_JNO = 270
-X86_INS_JNP = 271
-X86_INS_JNS = 272
-X86_INS_JO = 273
-X86_INS_JP = 274
-X86_INS_JRCXZ = 275
-X86_INS_JS = 276
-X86_INS_KANDB = 277
-X86_INS_KANDD = 278
-X86_INS_KANDNB = 279
-X86_INS_KANDND = 280
-X86_INS_KANDNQ = 281
-X86_INS_KANDNW = 282
-X86_INS_KANDQ = 283
-X86_INS_KANDW = 284
-X86_INS_KMOVB = 285
-X86_INS_KMOVD = 286
-X86_INS_KMOVQ = 287
-X86_INS_KMOVW = 288
-X86_INS_KNOTB = 289
-X86_INS_KNOTD = 290
-X86_INS_KNOTQ = 291
-X86_INS_KNOTW = 292
-X86_INS_KORB = 293
-X86_INS_KORD = 294
-X86_INS_KORQ = 295
-X86_INS_KORTESTB = 296
-X86_INS_KORTESTD = 297
-X86_INS_KORTESTQ = 298
-X86_INS_KORTESTW = 299
-X86_INS_KORW = 300
-X86_INS_KSHIFTLB = 301
-X86_INS_KSHIFTLD = 302
-X86_INS_KSHIFTLQ = 303
-X86_INS_KSHIFTLW = 304
-X86_INS_KSHIFTRB = 305
-X86_INS_KSHIFTRD = 306
-X86_INS_KSHIFTRQ = 307
-X86_INS_KSHIFTRW = 308
-X86_INS_KUNPCKBW = 309
-X86_INS_KXNORB = 310
-X86_INS_KXNORD = 311
-X86_INS_KXNORQ = 312
-X86_INS_KXNORW = 313
-X86_INS_KXORB = 314
-X86_INS_KXORD = 315
-X86_INS_KXORQ = 316
-X86_INS_KXORW = 317
-X86_INS_LAHF = 318
-X86_INS_LAR = 319
-X86_INS_LDDQU = 320
-X86_INS_LDMXCSR = 321
-X86_INS_LDS = 322
-X86_INS_FLDZ = 323
-X86_INS_FLD1 = 324
-X86_INS_FLD = 325
-X86_INS_LEA = 326
-X86_INS_LEAVE = 327
-X86_INS_LES = 328
-X86_INS_LFENCE = 329
-X86_INS_LFS = 330
-X86_INS_LGDT = 331
-X86_INS_LGS = 332
-X86_INS_LIDT = 333
-X86_INS_LLDT = 334
-X86_INS_LMSW = 335
-X86_INS_OR = 336
-X86_INS_SUB = 337
-X86_INS_XOR = 338
-X86_INS_LODSB = 339
-X86_INS_LODSD = 340
-X86_INS_LODSQ = 341
-X86_INS_LODSW = 342
-X86_INS_LOOP = 343
-X86_INS_LOOPE = 344
-X86_INS_LOOPNE = 345
-X86_INS_RETF = 346
-X86_INS_RETFQ = 347
-X86_INS_LSL = 348
-X86_INS_LSS = 349
-X86_INS_LTR = 350
-X86_INS_XADD = 351
-X86_INS_LZCNT = 352
-X86_INS_MASKMOVDQU = 353
-X86_INS_MAXPD = 354
-X86_INS_MAXPS = 355
-X86_INS_MAXSD = 356
-X86_INS_MAXSS = 357
-X86_INS_MFENCE = 358
-X86_INS_MINPD = 359
-X86_INS_MINPS = 360
-X86_INS_MINSD = 361
-X86_INS_MINSS = 362
-X86_INS_CVTPD2PI = 363
-X86_INS_CVTPI2PD = 364
-X86_INS_CVTPI2PS = 365
-X86_INS_CVTPS2PI = 366
-X86_INS_CVTTPD2PI = 367
-X86_INS_CVTTPS2PI = 368
-X86_INS_EMMS = 369
-X86_INS_MASKMOVQ = 370
-X86_INS_MOVD = 371
-X86_INS_MOVDQ2Q = 372
-X86_INS_MOVNTQ = 373
-X86_INS_MOVQ2DQ = 374
-X86_INS_MOVQ = 375
-X86_INS_PABSB = 376
-X86_INS_PABSD = 377
-X86_INS_PABSW = 378
-X86_INS_PACKSSDW = 379
-X86_INS_PACKSSWB = 380
-X86_INS_PACKUSWB = 381
-X86_INS_PADDB = 382
-X86_INS_PADDD = 383
-X86_INS_PADDQ = 384
-X86_INS_PADDSB = 385
-X86_INS_PADDSW = 386
-X86_INS_PADDUSB = 387
-X86_INS_PADDUSW = 388
-X86_INS_PADDW = 389
-X86_INS_PALIGNR = 390
-X86_INS_PANDN = 391
-X86_INS_PAND = 392
-X86_INS_PAVGB = 393
-X86_INS_PAVGW = 394
-X86_INS_PCMPEQB = 395
-X86_INS_PCMPEQD = 396
-X86_INS_PCMPEQW = 397
-X86_INS_PCMPGTB = 398
-X86_INS_PCMPGTD = 399
-X86_INS_PCMPGTW = 400
-X86_INS_PEXTRW = 401
-X86_INS_PHADDSW = 402
-X86_INS_PHADDW = 403
-X86_INS_PHADDD = 404
-X86_INS_PHSUBD = 405
-X86_INS_PHSUBSW = 406
-X86_INS_PHSUBW = 407
-X86_INS_PINSRW = 408
-X86_INS_PMADDUBSW = 409
-X86_INS_PMADDWD = 410
-X86_INS_PMAXSW = 411
-X86_INS_PMAXUB = 412
-X86_INS_PMINSW = 413
-X86_INS_PMINUB = 414
-X86_INS_PMOVMSKB = 415
-X86_INS_PMULHRSW = 416
-X86_INS_PMULHUW = 417
-X86_INS_PMULHW = 418
-X86_INS_PMULLW = 419
-X86_INS_PMULUDQ = 420
-X86_INS_POR = 421
-X86_INS_PSADBW = 422
-X86_INS_PSHUFB = 423
-X86_INS_PSHUFW = 424
-X86_INS_PSIGNB = 425
-X86_INS_PSIGND = 426
-X86_INS_PSIGNW = 427
-X86_INS_PSLLD = 428
-X86_INS_PSLLQ = 429
-X86_INS_PSLLW = 430
-X86_INS_PSRAD = 431
-X86_INS_PSRAW = 432
-X86_INS_PSRLD = 433
-X86_INS_PSRLQ = 434
-X86_INS_PSRLW = 435
-X86_INS_PSUBB = 436
-X86_INS_PSUBD = 437
-X86_INS_PSUBQ = 438
-X86_INS_PSUBSB = 439
-X86_INS_PSUBSW = 440
-X86_INS_PSUBUSB = 441
-X86_INS_PSUBUSW = 442
-X86_INS_PSUBW = 443
-X86_INS_PUNPCKHBW = 444
-X86_INS_PUNPCKHDQ = 445
-X86_INS_PUNPCKHWD = 446
-X86_INS_PUNPCKLBW = 447
-X86_INS_PUNPCKLDQ = 448
-X86_INS_PUNPCKLWD = 449
-X86_INS_PXOR = 450
-X86_INS_MONITOR = 451
-X86_INS_MONTMUL = 452
-X86_INS_MOV = 453
-X86_INS_MOVABS = 454
-X86_INS_MOVBE = 455
-X86_INS_MOVDDUP = 456
-X86_INS_MOVDQA = 457
-X86_INS_MOVDQU = 458
-X86_INS_MOVHLPS = 459
-X86_INS_MOVHPD = 460
-X86_INS_MOVHPS = 461
-X86_INS_MOVLHPS = 462
-X86_INS_MOVLPD = 463
-X86_INS_MOVLPS = 464
-X86_INS_MOVMSKPD = 465
-X86_INS_MOVMSKPS = 466
-X86_INS_MOVNTDQA = 467
-X86_INS_MOVNTDQ = 468
-X86_INS_MOVNTI = 469
-X86_INS_MOVNTPD = 470
-X86_INS_MOVNTPS = 471
-X86_INS_MOVNTSD = 472
-X86_INS_MOVNTSS = 473
-X86_INS_MOVSB = 474
-X86_INS_MOVSD = 475
-X86_INS_MOVSHDUP = 476
-X86_INS_MOVSLDUP = 477
-X86_INS_MOVSQ = 478
-X86_INS_MOVSS = 479
-X86_INS_MOVSW = 480
-X86_INS_MOVSX = 481
-X86_INS_MOVSXD = 482
-X86_INS_MOVUPD = 483
-X86_INS_MOVUPS = 484
-X86_INS_MOVZX = 485
-X86_INS_MPSADBW = 486
-X86_INS_MUL = 487
-X86_INS_MULPD = 488
-X86_INS_MULPS = 489
-X86_INS_MULSD = 490
-X86_INS_MULSS = 491
-X86_INS_MULX = 492
-X86_INS_FMUL = 493
-X86_INS_FIMUL = 494
-X86_INS_FMULP = 495
-X86_INS_MWAIT = 496
-X86_INS_NEG = 497
-X86_INS_NOP = 498
-X86_INS_NOT = 499
-X86_INS_OUT = 500
-X86_INS_OUTSB = 501
-X86_INS_OUTSD = 502
-X86_INS_OUTSW = 503
-X86_INS_PACKUSDW = 504
-X86_INS_PAUSE = 505
-X86_INS_PAVGUSB = 506
-X86_INS_PBLENDVB = 507
-X86_INS_PBLENDW = 508
-X86_INS_PCLMULQDQ = 509
-X86_INS_PCMPEQQ = 510
-X86_INS_PCMPESTRI = 511
-X86_INS_PCMPESTRM = 512
-X86_INS_PCMPGTQ = 513
-X86_INS_PCMPISTRI = 514
-X86_INS_PCMPISTRM = 515
-X86_INS_PCOMMIT = 516
-X86_INS_PDEP = 517
-X86_INS_PEXT = 518
-X86_INS_PEXTRB = 519
-X86_INS_PEXTRD = 520
-X86_INS_PEXTRQ = 521
-X86_INS_PF2ID = 522
-X86_INS_PF2IW = 523
-X86_INS_PFACC = 524
-X86_INS_PFADD = 525
-X86_INS_PFCMPEQ = 526
-X86_INS_PFCMPGE = 527
-X86_INS_PFCMPGT = 528
-X86_INS_PFMAX = 529
-X86_INS_PFMIN = 530
-X86_INS_PFMUL = 531
-X86_INS_PFNACC = 532
-X86_INS_PFPNACC = 533
-X86_INS_PFRCPIT1 = 534
-X86_INS_PFRCPIT2 = 535
-X86_INS_PFRCP = 536
-X86_INS_PFRSQIT1 = 537
-X86_INS_PFRSQRT = 538
-X86_INS_PFSUBR = 539
-X86_INS_PFSUB = 540
-X86_INS_PHMINPOSUW = 541
-X86_INS_PI2FD = 542
-X86_INS_PI2FW = 543
-X86_INS_PINSRB = 544
-X86_INS_PINSRD = 545
-X86_INS_PINSRQ = 546
-X86_INS_PMAXSB = 547
-X86_INS_PMAXSD = 548
-X86_INS_PMAXUD = 549
-X86_INS_PMAXUW = 550
-X86_INS_PMINSB = 551
-X86_INS_PMINSD = 552
-X86_INS_PMINUD = 553
-X86_INS_PMINUW = 554
-X86_INS_PMOVSXBD = 555
-X86_INS_PMOVSXBQ = 556
-X86_INS_PMOVSXBW = 557
-X86_INS_PMOVSXDQ = 558
-X86_INS_PMOVSXWD = 559
-X86_INS_PMOVSXWQ = 560
-X86_INS_PMOVZXBD = 561
-X86_INS_PMOVZXBQ = 562
-X86_INS_PMOVZXBW = 563
-X86_INS_PMOVZXDQ = 564
-X86_INS_PMOVZXWD = 565
-X86_INS_PMOVZXWQ = 566
-X86_INS_PMULDQ = 567
-X86_INS_PMULHRW = 568
-X86_INS_PMULLD = 569
-X86_INS_POP = 570
-X86_INS_POPAW = 571
-X86_INS_POPAL = 572
-X86_INS_POPCNT = 573
-X86_INS_POPF = 574
-X86_INS_POPFD = 575
-X86_INS_POPFQ = 576
-X86_INS_PREFETCH = 577
-X86_INS_PREFETCHNTA = 578
-X86_INS_PREFETCHT0 = 579
-X86_INS_PREFETCHT1 = 580
-X86_INS_PREFETCHT2 = 581
-X86_INS_PREFETCHW = 582
-X86_INS_PSHUFD = 583
-X86_INS_PSHUFHW = 584
-X86_INS_PSHUFLW = 585
-X86_INS_PSLLDQ = 586
-X86_INS_PSRLDQ = 587
-X86_INS_PSWAPD = 588
-X86_INS_PTEST = 589
-X86_INS_PUNPCKHQDQ = 590
-X86_INS_PUNPCKLQDQ = 591
-X86_INS_PUSH = 592
-X86_INS_PUSHAW = 593
-X86_INS_PUSHAL = 594
-X86_INS_PUSHF = 595
-X86_INS_PUSHFD = 596
-X86_INS_PUSHFQ = 597
-X86_INS_RCL = 598
-X86_INS_RCPPS = 599
-X86_INS_RCPSS = 600
-X86_INS_RCR = 601
-X86_INS_RDFSBASE = 602
-X86_INS_RDGSBASE = 603
-X86_INS_RDMSR = 604
-X86_INS_RDPMC = 605
-X86_INS_RDRAND = 606
-X86_INS_RDSEED = 607
-X86_INS_RDTSC = 608
-X86_INS_RDTSCP = 609
-X86_INS_ROL = 610
-X86_INS_ROR = 611
-X86_INS_RORX = 612
-X86_INS_ROUNDPD = 613
-X86_INS_ROUNDPS = 614
-X86_INS_ROUNDSD = 615
-X86_INS_ROUNDSS = 616
-X86_INS_RSM = 617
-X86_INS_RSQRTPS = 618
-X86_INS_RSQRTSS = 619
-X86_INS_SAHF = 620
-X86_INS_SAL = 621
-X86_INS_SALC = 622
-X86_INS_SAR = 623
-X86_INS_SARX = 624
-X86_INS_SBB = 625
-X86_INS_SCASB = 626
-X86_INS_SCASD = 627
-X86_INS_SCASQ = 628
-X86_INS_SCASW = 629
-X86_INS_SETAE = 630
-X86_INS_SETA = 631
-X86_INS_SETBE = 632
-X86_INS_SETB = 633
-X86_INS_SETE = 634
-X86_INS_SETGE = 635
-X86_INS_SETG = 636
-X86_INS_SETLE = 637
-X86_INS_SETL = 638
-X86_INS_SETNE = 639
-X86_INS_SETNO = 640
-X86_INS_SETNP = 641
-X86_INS_SETNS = 642
-X86_INS_SETO = 643
-X86_INS_SETP = 644
-X86_INS_SETS = 645
-X86_INS_SFENCE = 646
-X86_INS_SGDT = 647
-X86_INS_SHA1MSG1 = 648
-X86_INS_SHA1MSG2 = 649
-X86_INS_SHA1NEXTE = 650
-X86_INS_SHA1RNDS4 = 651
-X86_INS_SHA256MSG1 = 652
-X86_INS_SHA256MSG2 = 653
-X86_INS_SHA256RNDS2 = 654
-X86_INS_SHL = 655
-X86_INS_SHLD = 656
-X86_INS_SHLX = 657
-X86_INS_SHR = 658
-X86_INS_SHRD = 659
-X86_INS_SHRX = 660
-X86_INS_SHUFPD = 661
-X86_INS_SHUFPS = 662
-X86_INS_SIDT = 663
-X86_INS_FSIN = 664
-X86_INS_SKINIT = 665
-X86_INS_SLDT = 666
-X86_INS_SMSW = 667
-X86_INS_SQRTPD = 668
-X86_INS_SQRTPS = 669
-X86_INS_SQRTSD = 670
-X86_INS_SQRTSS = 671
-X86_INS_FSQRT = 672
-X86_INS_STAC = 673
-X86_INS_STC = 674
-X86_INS_STD = 675
-X86_INS_STGI = 676
-X86_INS_STI = 677
-X86_INS_STMXCSR = 678
-X86_INS_STOSB = 679
-X86_INS_STOSD = 680
-X86_INS_STOSQ = 681
-X86_INS_STOSW = 682
-X86_INS_STR = 683
-X86_INS_FST = 684
-X86_INS_FSTP = 685
-X86_INS_FSTPNCE = 686
-X86_INS_FXCH = 687
-X86_INS_SUBPD = 688
-X86_INS_SUBPS = 689
-X86_INS_FSUBR = 690
-X86_INS_FISUBR = 691
-X86_INS_FSUBRP = 692
-X86_INS_SUBSD = 693
-X86_INS_SUBSS = 694
-X86_INS_FSUB = 695
-X86_INS_FISUB = 696
-X86_INS_FSUBP = 697
-X86_INS_SWAPGS = 698
-X86_INS_SYSCALL = 699
-X86_INS_SYSENTER = 700
-X86_INS_SYSEXIT = 701
-X86_INS_SYSRET = 702
-X86_INS_T1MSKC = 703
-X86_INS_TEST = 704
-X86_INS_UD2 = 705
-X86_INS_FTST = 706
-X86_INS_TZCNT = 707
-X86_INS_TZMSK = 708
-X86_INS_FUCOMPI = 709
-X86_INS_FUCOMI = 710
-X86_INS_FUCOMPP = 711
-X86_INS_FUCOMP = 712
-X86_INS_FUCOM = 713
-X86_INS_UD2B = 714
-X86_INS_UNPCKHPD = 715
-X86_INS_UNPCKHPS = 716
-X86_INS_UNPCKLPD = 717
-X86_INS_UNPCKLPS = 718
-X86_INS_VADDPD = 719
-X86_INS_VADDPS = 720
-X86_INS_VADDSD = 721
-X86_INS_VADDSS = 722
-X86_INS_VADDSUBPD = 723
-X86_INS_VADDSUBPS = 724
-X86_INS_VAESDECLAST = 725
-X86_INS_VAESDEC = 726
-X86_INS_VAESENCLAST = 727
-X86_INS_VAESENC = 728
-X86_INS_VAESIMC = 729
-X86_INS_VAESKEYGENASSIST = 730
-X86_INS_VALIGND = 731
-X86_INS_VALIGNQ = 732
-X86_INS_VANDNPD = 733
-X86_INS_VANDNPS = 734
-X86_INS_VANDPD = 735
-X86_INS_VANDPS = 736
-X86_INS_VBLENDMPD = 737
-X86_INS_VBLENDMPS = 738
-X86_INS_VBLENDPD = 739
-X86_INS_VBLENDPS = 740
-X86_INS_VBLENDVPD = 741
-X86_INS_VBLENDVPS = 742
-X86_INS_VBROADCASTF128 = 743
-X86_INS_VBROADCASTI32X4 = 744
-X86_INS_VBROADCASTI64X4 = 745
-X86_INS_VBROADCASTSD = 746
-X86_INS_VBROADCASTSS = 747
-X86_INS_VCMPPD = 748
-X86_INS_VCMPPS = 749
-X86_INS_VCMPSD = 750
-X86_INS_VCMPSS = 751
-X86_INS_VCOMPRESSPD = 752
-X86_INS_VCOMPRESSPS = 753
-X86_INS_VCVTDQ2PD = 754
-X86_INS_VCVTDQ2PS = 755
-X86_INS_VCVTPD2DQX = 756
-X86_INS_VCVTPD2DQ = 757
-X86_INS_VCVTPD2PSX = 758
-X86_INS_VCVTPD2PS = 759
-X86_INS_VCVTPD2UDQ = 760
-X86_INS_VCVTPH2PS = 761
-X86_INS_VCVTPS2DQ = 762
-X86_INS_VCVTPS2PD = 763
-X86_INS_VCVTPS2PH = 764
-X86_INS_VCVTPS2UDQ = 765
-X86_INS_VCVTSD2SI = 766
-X86_INS_VCVTSD2USI = 767
-X86_INS_VCVTSS2SI = 768
-X86_INS_VCVTSS2USI = 769
-X86_INS_VCVTTPD2DQX = 770
-X86_INS_VCVTTPD2DQ = 771
-X86_INS_VCVTTPD2UDQ = 772
-X86_INS_VCVTTPS2DQ = 773
-X86_INS_VCVTTPS2UDQ = 774
-X86_INS_VCVTUDQ2PD = 775
-X86_INS_VCVTUDQ2PS = 776
-X86_INS_VDIVPD = 777
-X86_INS_VDIVPS = 778
-X86_INS_VDIVSD = 779
-X86_INS_VDIVSS = 780
-X86_INS_VDPPD = 781
-X86_INS_VDPPS = 782
-X86_INS_VERR = 783
-X86_INS_VERW = 784
-X86_INS_VEXP2PD = 785
-X86_INS_VEXP2PS = 786
-X86_INS_VEXPANDPD = 787
-X86_INS_VEXPANDPS = 788
-X86_INS_VEXTRACTF128 = 789
-X86_INS_VEXTRACTF32X4 = 790
-X86_INS_VEXTRACTF64X4 = 791
-X86_INS_VEXTRACTI128 = 792
-X86_INS_VEXTRACTI32X4 = 793
-X86_INS_VEXTRACTI64X4 = 794
-X86_INS_VEXTRACTPS = 795
-X86_INS_VFMADD132PD = 796
-X86_INS_VFMADD132PS = 797
-X86_INS_VFMADDPD = 798
-X86_INS_VFMADD213PD = 799
-X86_INS_VFMADD231PD = 800
-X86_INS_VFMADDPS = 801
-X86_INS_VFMADD213PS = 802
-X86_INS_VFMADD231PS = 803
-X86_INS_VFMADDSD = 804
-X86_INS_VFMADD213SD = 805
-X86_INS_VFMADD132SD = 806
-X86_INS_VFMADD231SD = 807
-X86_INS_VFMADDSS = 808
-X86_INS_VFMADD213SS = 809
-X86_INS_VFMADD132SS = 810
-X86_INS_VFMADD231SS = 811
-X86_INS_VFMADDSUB132PD = 812
-X86_INS_VFMADDSUB132PS = 813
-X86_INS_VFMADDSUBPD = 814
-X86_INS_VFMADDSUB213PD = 815
-X86_INS_VFMADDSUB231PD = 816
-X86_INS_VFMADDSUBPS = 817
-X86_INS_VFMADDSUB213PS = 818
-X86_INS_VFMADDSUB231PS = 819
-X86_INS_VFMSUB132PD = 820
-X86_INS_VFMSUB132PS = 821
-X86_INS_VFMSUBADD132PD = 822
-X86_INS_VFMSUBADD132PS = 823
-X86_INS_VFMSUBADDPD = 824
-X86_INS_VFMSUBADD213PD = 825
-X86_INS_VFMSUBADD231PD = 826
-X86_INS_VFMSUBADDPS = 827
-X86_INS_VFMSUBADD213PS = 828
-X86_INS_VFMSUBADD231PS = 829
-X86_INS_VFMSUBPD = 830
-X86_INS_VFMSUB213PD = 831
-X86_INS_VFMSUB231PD = 832
-X86_INS_VFMSUBPS = 833
-X86_INS_VFMSUB213PS = 834
-X86_INS_VFMSUB231PS = 835
-X86_INS_VFMSUBSD = 836
-X86_INS_VFMSUB213SD = 837
-X86_INS_VFMSUB132SD = 838
-X86_INS_VFMSUB231SD = 839
-X86_INS_VFMSUBSS = 840
-X86_INS_VFMSUB213SS = 841
-X86_INS_VFMSUB132SS = 842
-X86_INS_VFMSUB231SS = 843
-X86_INS_VFNMADD132PD = 844
-X86_INS_VFNMADD132PS = 845
-X86_INS_VFNMADDPD = 846
-X86_INS_VFNMADD213PD = 847
-X86_INS_VFNMADD231PD = 848
-X86_INS_VFNMADDPS = 849
-X86_INS_VFNMADD213PS = 850
-X86_INS_VFNMADD231PS = 851
-X86_INS_VFNMADDSD = 852
-X86_INS_VFNMADD213SD = 853
-X86_INS_VFNMADD132SD = 854
-X86_INS_VFNMADD231SD = 855
-X86_INS_VFNMADDSS = 856
-X86_INS_VFNMADD213SS = 857
-X86_INS_VFNMADD132SS = 858
-X86_INS_VFNMADD231SS = 859
-X86_INS_VFNMSUB132PD = 860
-X86_INS_VFNMSUB132PS = 861
-X86_INS_VFNMSUBPD = 862
-X86_INS_VFNMSUB213PD = 863
-X86_INS_VFNMSUB231PD = 864
-X86_INS_VFNMSUBPS = 865
-X86_INS_VFNMSUB213PS = 866
-X86_INS_VFNMSUB231PS = 867
-X86_INS_VFNMSUBSD = 868
-X86_INS_VFNMSUB213SD = 869
-X86_INS_VFNMSUB132SD = 870
-X86_INS_VFNMSUB231SD = 871
-X86_INS_VFNMSUBSS = 872
-X86_INS_VFNMSUB213SS = 873
-X86_INS_VFNMSUB132SS = 874
-X86_INS_VFNMSUB231SS = 875
-X86_INS_VFRCZPD = 876
-X86_INS_VFRCZPS = 877
-X86_INS_VFRCZSD = 878
-X86_INS_VFRCZSS = 879
-X86_INS_VORPD = 880
-X86_INS_VORPS = 881
-X86_INS_VXORPD = 882
-X86_INS_VXORPS = 883
-X86_INS_VGATHERDPD = 884
-X86_INS_VGATHERDPS = 885
-X86_INS_VGATHERPF0DPD = 886
-X86_INS_VGATHERPF0DPS = 887
-X86_INS_VGATHERPF0QPD = 888
-X86_INS_VGATHERPF0QPS = 889
-X86_INS_VGATHERPF1DPD = 890
-X86_INS_VGATHERPF1DPS = 891
-X86_INS_VGATHERPF1QPD = 892
-X86_INS_VGATHERPF1QPS = 893
-X86_INS_VGATHERQPD = 894
-X86_INS_VGATHERQPS = 895
-X86_INS_VHADDPD = 896
-X86_INS_VHADDPS = 897
-X86_INS_VHSUBPD = 898
-X86_INS_VHSUBPS = 899
-X86_INS_VINSERTF128 = 900
-X86_INS_VINSERTF32X4 = 901
-X86_INS_VINSERTF32X8 = 902
-X86_INS_VINSERTF64X2 = 903
-X86_INS_VINSERTF64X4 = 904
-X86_INS_VINSERTI128 = 905
-X86_INS_VINSERTI32X4 = 906
-X86_INS_VINSERTI32X8 = 907
-X86_INS_VINSERTI64X2 = 908
-X86_INS_VINSERTI64X4 = 909
-X86_INS_VINSERTPS = 910
-X86_INS_VLDDQU = 911
-X86_INS_VLDMXCSR = 912
-X86_INS_VMASKMOVDQU = 913
-X86_INS_VMASKMOVPD = 914
-X86_INS_VMASKMOVPS = 915
-X86_INS_VMAXPD = 916
-X86_INS_VMAXPS = 917
-X86_INS_VMAXSD = 918
-X86_INS_VMAXSS = 919
-X86_INS_VMCALL = 920
-X86_INS_VMCLEAR = 921
-X86_INS_VMFUNC = 922
-X86_INS_VMINPD = 923
-X86_INS_VMINPS = 924
-X86_INS_VMINSD = 925
-X86_INS_VMINSS = 926
-X86_INS_VMLAUNCH = 927
-X86_INS_VMLOAD = 928
-X86_INS_VMMCALL = 929
-X86_INS_VMOVQ = 930
-X86_INS_VMOVDDUP = 931
-X86_INS_VMOVD = 932
-X86_INS_VMOVDQA32 = 933
-X86_INS_VMOVDQA64 = 934
-X86_INS_VMOVDQA = 935
-X86_INS_VMOVDQU16 = 936
-X86_INS_VMOVDQU32 = 937
-X86_INS_VMOVDQU64 = 938
-X86_INS_VMOVDQU8 = 939
-X86_INS_VMOVDQU = 940
-X86_INS_VMOVHLPS = 941
-X86_INS_VMOVHPD = 942
-X86_INS_VMOVHPS = 943
-X86_INS_VMOVLHPS = 944
-X86_INS_VMOVLPD = 945
-X86_INS_VMOVLPS = 946
-X86_INS_VMOVMSKPD = 947
-X86_INS_VMOVMSKPS = 948
-X86_INS_VMOVNTDQA = 949
-X86_INS_VMOVNTDQ = 950
-X86_INS_VMOVNTPD = 951
-X86_INS_VMOVNTPS = 952
-X86_INS_VMOVSD = 953
-X86_INS_VMOVSHDUP = 954
-X86_INS_VMOVSLDUP = 955
-X86_INS_VMOVSS = 956
-X86_INS_VMOVUPD = 957
-X86_INS_VMOVUPS = 958
-X86_INS_VMPSADBW = 959
-X86_INS_VMPTRLD = 960
-X86_INS_VMPTRST = 961
-X86_INS_VMREAD = 962
-X86_INS_VMRESUME = 963
-X86_INS_VMRUN = 964
-X86_INS_VMSAVE = 965
-X86_INS_VMULPD = 966
-X86_INS_VMULPS = 967
-X86_INS_VMULSD = 968
-X86_INS_VMULSS = 969
-X86_INS_VMWRITE = 970
-X86_INS_VMXOFF = 971
-X86_INS_VMXON = 972
-X86_INS_VPABSB = 973
-X86_INS_VPABSD = 974
-X86_INS_VPABSQ = 975
-X86_INS_VPABSW = 976
-X86_INS_VPACKSSDW = 977
-X86_INS_VPACKSSWB = 978
-X86_INS_VPACKUSDW = 979
-X86_INS_VPACKUSWB = 980
-X86_INS_VPADDB = 981
-X86_INS_VPADDD = 982
-X86_INS_VPADDQ = 983
-X86_INS_VPADDSB = 984
-X86_INS_VPADDSW = 985
-X86_INS_VPADDUSB = 986
-X86_INS_VPADDUSW = 987
-X86_INS_VPADDW = 988
-X86_INS_VPALIGNR = 989
-X86_INS_VPANDD = 990
-X86_INS_VPANDND = 991
-X86_INS_VPANDNQ = 992
-X86_INS_VPANDN = 993
-X86_INS_VPANDQ = 994
-X86_INS_VPAND = 995
-X86_INS_VPAVGB = 996
-X86_INS_VPAVGW = 997
-X86_INS_VPBLENDD = 998
-X86_INS_VPBLENDMB = 999
-X86_INS_VPBLENDMD = 1000
-X86_INS_VPBLENDMQ = 1001
-X86_INS_VPBLENDMW = 1002
-X86_INS_VPBLENDVB = 1003
-X86_INS_VPBLENDW = 1004
-X86_INS_VPBROADCASTB = 1005
-X86_INS_VPBROADCASTD = 1006
-X86_INS_VPBROADCASTMB2Q = 1007
-X86_INS_VPBROADCASTMW2D = 1008
-X86_INS_VPBROADCASTQ = 1009
-X86_INS_VPBROADCASTW = 1010
-X86_INS_VPCLMULQDQ = 1011
-X86_INS_VPCMOV = 1012
-X86_INS_VPCMPB = 1013
-X86_INS_VPCMPD = 1014
-X86_INS_VPCMPEQB = 1015
-X86_INS_VPCMPEQD = 1016
-X86_INS_VPCMPEQQ = 1017
-X86_INS_VPCMPEQW = 1018
-X86_INS_VPCMPESTRI = 1019
-X86_INS_VPCMPESTRM = 1020
-X86_INS_VPCMPGTB = 1021
-X86_INS_VPCMPGTD = 1022
-X86_INS_VPCMPGTQ = 1023
-X86_INS_VPCMPGTW = 1024
-X86_INS_VPCMPISTRI = 1025
-X86_INS_VPCMPISTRM = 1026
-X86_INS_VPCMPQ = 1027
-X86_INS_VPCMPUB = 1028
-X86_INS_VPCMPUD = 1029
-X86_INS_VPCMPUQ = 1030
-X86_INS_VPCMPUW = 1031
-X86_INS_VPCMPW = 1032
-X86_INS_VPCOMB = 1033
-X86_INS_VPCOMD = 1034
-X86_INS_VPCOMPRESSD = 1035
-X86_INS_VPCOMPRESSQ = 1036
-X86_INS_VPCOMQ = 1037
-X86_INS_VPCOMUB = 1038
-X86_INS_VPCOMUD = 1039
-X86_INS_VPCOMUQ = 1040
-X86_INS_VPCOMUW = 1041
-X86_INS_VPCOMW = 1042
-X86_INS_VPCONFLICTD = 1043
-X86_INS_VPCONFLICTQ = 1044
-X86_INS_VPERM2F128 = 1045
-X86_INS_VPERM2I128 = 1046
-X86_INS_VPERMD = 1047
-X86_INS_VPERMI2D = 1048
-X86_INS_VPERMI2PD = 1049
-X86_INS_VPERMI2PS = 1050
-X86_INS_VPERMI2Q = 1051
-X86_INS_VPERMIL2PD = 1052
-X86_INS_VPERMIL2PS = 1053
-X86_INS_VPERMILPD = 1054
-X86_INS_VPERMILPS = 1055
-X86_INS_VPERMPD = 1056
-X86_INS_VPERMPS = 1057
-X86_INS_VPERMQ = 1058
-X86_INS_VPERMT2D = 1059
-X86_INS_VPERMT2PD = 1060
-X86_INS_VPERMT2PS = 1061
-X86_INS_VPERMT2Q = 1062
-X86_INS_VPEXPANDD = 1063
-X86_INS_VPEXPANDQ = 1064
-X86_INS_VPEXTRB = 1065
-X86_INS_VPEXTRD = 1066
-X86_INS_VPEXTRQ = 1067
-X86_INS_VPEXTRW = 1068
-X86_INS_VPGATHERDD = 1069
-X86_INS_VPGATHERDQ = 1070
-X86_INS_VPGATHERQD = 1071
-X86_INS_VPGATHERQQ = 1072
-X86_INS_VPHADDBD = 1073
-X86_INS_VPHADDBQ = 1074
-X86_INS_VPHADDBW = 1075
-X86_INS_VPHADDDQ = 1076
-X86_INS_VPHADDD = 1077
-X86_INS_VPHADDSW = 1078
-X86_INS_VPHADDUBD = 1079
-X86_INS_VPHADDUBQ = 1080
-X86_INS_VPHADDUBW = 1081
-X86_INS_VPHADDUDQ = 1082
-X86_INS_VPHADDUWD = 1083
-X86_INS_VPHADDUWQ = 1084
-X86_INS_VPHADDWD = 1085
-X86_INS_VPHADDWQ = 1086
-X86_INS_VPHADDW = 1087
-X86_INS_VPHMINPOSUW = 1088
-X86_INS_VPHSUBBW = 1089
-X86_INS_VPHSUBDQ = 1090
-X86_INS_VPHSUBD = 1091
-X86_INS_VPHSUBSW = 1092
-X86_INS_VPHSUBWD = 1093
-X86_INS_VPHSUBW = 1094
-X86_INS_VPINSRB = 1095
-X86_INS_VPINSRD = 1096
-X86_INS_VPINSRQ = 1097
-X86_INS_VPINSRW = 1098
-X86_INS_VPLZCNTD = 1099
-X86_INS_VPLZCNTQ = 1100
-X86_INS_VPMACSDD = 1101
-X86_INS_VPMACSDQH = 1102
-X86_INS_VPMACSDQL = 1103
-X86_INS_VPMACSSDD = 1104
-X86_INS_VPMACSSDQH = 1105
-X86_INS_VPMACSSDQL = 1106
-X86_INS_VPMACSSWD = 1107
-X86_INS_VPMACSSWW = 1108
-X86_INS_VPMACSWD = 1109
-X86_INS_VPMACSWW = 1110
-X86_INS_VPMADCSSWD = 1111
-X86_INS_VPMADCSWD = 1112
-X86_INS_VPMADDUBSW = 1113
-X86_INS_VPMADDWD = 1114
-X86_INS_VPMASKMOVD = 1115
-X86_INS_VPMASKMOVQ = 1116
-X86_INS_VPMAXSB = 1117
-X86_INS_VPMAXSD = 1118
-X86_INS_VPMAXSQ = 1119
-X86_INS_VPMAXSW = 1120
-X86_INS_VPMAXUB = 1121
-X86_INS_VPMAXUD = 1122
-X86_INS_VPMAXUQ = 1123
-X86_INS_VPMAXUW = 1124
-X86_INS_VPMINSB = 1125
-X86_INS_VPMINSD = 1126
-X86_INS_VPMINSQ = 1127
-X86_INS_VPMINSW = 1128
-X86_INS_VPMINUB = 1129
-X86_INS_VPMINUD = 1130
-X86_INS_VPMINUQ = 1131
-X86_INS_VPMINUW = 1132
-X86_INS_VPMOVDB = 1133
-X86_INS_VPMOVDW = 1134
-X86_INS_VPMOVM2B = 1135
-X86_INS_VPMOVM2D = 1136
-X86_INS_VPMOVM2Q = 1137
-X86_INS_VPMOVM2W = 1138
-X86_INS_VPMOVMSKB = 1139
-X86_INS_VPMOVQB = 1140
-X86_INS_VPMOVQD = 1141
-X86_INS_VPMOVQW = 1142
-X86_INS_VPMOVSDB = 1143
-X86_INS_VPMOVSDW = 1144
-X86_INS_VPMOVSQB = 1145
-X86_INS_VPMOVSQD = 1146
-X86_INS_VPMOVSQW = 1147
-X86_INS_VPMOVSXBD = 1148
-X86_INS_VPMOVSXBQ = 1149
-X86_INS_VPMOVSXBW = 1150
-X86_INS_VPMOVSXDQ = 1151
-X86_INS_VPMOVSXWD = 1152
-X86_INS_VPMOVSXWQ = 1153
-X86_INS_VPMOVUSDB = 1154
-X86_INS_VPMOVUSDW = 1155
-X86_INS_VPMOVUSQB = 1156
-X86_INS_VPMOVUSQD = 1157
-X86_INS_VPMOVUSQW = 1158
-X86_INS_VPMOVZXBD = 1159
-X86_INS_VPMOVZXBQ = 1160
-X86_INS_VPMOVZXBW = 1161
-X86_INS_VPMOVZXDQ = 1162
-X86_INS_VPMOVZXWD = 1163
-X86_INS_VPMOVZXWQ = 1164
-X86_INS_VPMULDQ = 1165
-X86_INS_VPMULHRSW = 1166
-X86_INS_VPMULHUW = 1167
-X86_INS_VPMULHW = 1168
-X86_INS_VPMULLD = 1169
-X86_INS_VPMULLQ = 1170
-X86_INS_VPMULLW = 1171
-X86_INS_VPMULUDQ = 1172
-X86_INS_VPORD = 1173
-X86_INS_VPORQ = 1174
-X86_INS_VPOR = 1175
-X86_INS_VPPERM = 1176
-X86_INS_VPROTB = 1177
-X86_INS_VPROTD = 1178
-X86_INS_VPROTQ = 1179
-X86_INS_VPROTW = 1180
-X86_INS_VPSADBW = 1181
-X86_INS_VPSCATTERDD = 1182
-X86_INS_VPSCATTERDQ = 1183
-X86_INS_VPSCATTERQD = 1184
-X86_INS_VPSCATTERQQ = 1185
-X86_INS_VPSHAB = 1186
-X86_INS_VPSHAD = 1187
-X86_INS_VPSHAQ = 1188
-X86_INS_VPSHAW = 1189
-X86_INS_VPSHLB = 1190
-X86_INS_VPSHLD = 1191
-X86_INS_VPSHLQ = 1192
-X86_INS_VPSHLW = 1193
-X86_INS_VPSHUFB = 1194
-X86_INS_VPSHUFD = 1195
-X86_INS_VPSHUFHW = 1196
-X86_INS_VPSHUFLW = 1197
-X86_INS_VPSIGNB = 1198
-X86_INS_VPSIGND = 1199
-X86_INS_VPSIGNW = 1200
-X86_INS_VPSLLDQ = 1201
-X86_INS_VPSLLD = 1202
-X86_INS_VPSLLQ = 1203
-X86_INS_VPSLLVD = 1204
-X86_INS_VPSLLVQ = 1205
-X86_INS_VPSLLW = 1206
-X86_INS_VPSRAD = 1207
-X86_INS_VPSRAQ = 1208
-X86_INS_VPSRAVD = 1209
-X86_INS_VPSRAVQ = 1210
-X86_INS_VPSRAW = 1211
-X86_INS_VPSRLDQ = 1212
-X86_INS_VPSRLD = 1213
-X86_INS_VPSRLQ = 1214
-X86_INS_VPSRLVD = 1215
-X86_INS_VPSRLVQ = 1216
-X86_INS_VPSRLW = 1217
-X86_INS_VPSUBB = 1218
-X86_INS_VPSUBD = 1219
-X86_INS_VPSUBQ = 1220
-X86_INS_VPSUBSB = 1221
-X86_INS_VPSUBSW = 1222
-X86_INS_VPSUBUSB = 1223
-X86_INS_VPSUBUSW = 1224
-X86_INS_VPSUBW = 1225
-X86_INS_VPTESTMD = 1226
-X86_INS_VPTESTMQ = 1227
-X86_INS_VPTESTNMD = 1228
-X86_INS_VPTESTNMQ = 1229
-X86_INS_VPTEST = 1230
-X86_INS_VPUNPCKHBW = 1231
-X86_INS_VPUNPCKHDQ = 1232
-X86_INS_VPUNPCKHQDQ = 1233
-X86_INS_VPUNPCKHWD = 1234
-X86_INS_VPUNPCKLBW = 1235
-X86_INS_VPUNPCKLDQ = 1236
-X86_INS_VPUNPCKLQDQ = 1237
-X86_INS_VPUNPCKLWD = 1238
-X86_INS_VPXORD = 1239
-X86_INS_VPXORQ = 1240
-X86_INS_VPXOR = 1241
-X86_INS_VRCP14PD = 1242
-X86_INS_VRCP14PS = 1243
-X86_INS_VRCP14SD = 1244
-X86_INS_VRCP14SS = 1245
-X86_INS_VRCP28PD = 1246
-X86_INS_VRCP28PS = 1247
-X86_INS_VRCP28SD = 1248
-X86_INS_VRCP28SS = 1249
-X86_INS_VRCPPS = 1250
-X86_INS_VRCPSS = 1251
-X86_INS_VRNDSCALEPD = 1252
-X86_INS_VRNDSCALEPS = 1253
-X86_INS_VRNDSCALESD = 1254
-X86_INS_VRNDSCALESS = 1255
-X86_INS_VROUNDPD = 1256
-X86_INS_VROUNDPS = 1257
-X86_INS_VROUNDSD = 1258
-X86_INS_VROUNDSS = 1259
-X86_INS_VRSQRT14PD = 1260
-X86_INS_VRSQRT14PS = 1261
-X86_INS_VRSQRT14SD = 1262
-X86_INS_VRSQRT14SS = 1263
-X86_INS_VRSQRT28PD = 1264
-X86_INS_VRSQRT28PS = 1265
-X86_INS_VRSQRT28SD = 1266
-X86_INS_VRSQRT28SS = 1267
-X86_INS_VRSQRTPS = 1268
-X86_INS_VRSQRTSS = 1269
-X86_INS_VSCATTERDPD = 1270
-X86_INS_VSCATTERDPS = 1271
-X86_INS_VSCATTERPF0DPD = 1272
-X86_INS_VSCATTERPF0DPS = 1273
-X86_INS_VSCATTERPF0QPD = 1274
-X86_INS_VSCATTERPF0QPS = 1275
-X86_INS_VSCATTERPF1DPD = 1276
-X86_INS_VSCATTERPF1DPS = 1277
-X86_INS_VSCATTERPF1QPD = 1278
-X86_INS_VSCATTERPF1QPS = 1279
-X86_INS_VSCATTERQPD = 1280
-X86_INS_VSCATTERQPS = 1281
-X86_INS_VSHUFPD = 1282
-X86_INS_VSHUFPS = 1283
-X86_INS_VSQRTPD = 1284
-X86_INS_VSQRTPS = 1285
-X86_INS_VSQRTSD = 1286
-X86_INS_VSQRTSS = 1287
-X86_INS_VSTMXCSR = 1288
-X86_INS_VSUBPD = 1289
-X86_INS_VSUBPS = 1290
-X86_INS_VSUBSD = 1291
-X86_INS_VSUBSS = 1292
-X86_INS_VTESTPD = 1293
-X86_INS_VTESTPS = 1294
-X86_INS_VUNPCKHPD = 1295
-X86_INS_VUNPCKHPS = 1296
-X86_INS_VUNPCKLPD = 1297
-X86_INS_VUNPCKLPS = 1298
-X86_INS_VZEROALL = 1299
-X86_INS_VZEROUPPER = 1300
-X86_INS_WAIT = 1301
-X86_INS_WBINVD = 1302
-X86_INS_WRFSBASE = 1303
-X86_INS_WRGSBASE = 1304
-X86_INS_WRMSR = 1305
-X86_INS_XABORT = 1306
-X86_INS_XACQUIRE = 1307
-X86_INS_XBEGIN = 1308
-X86_INS_XCHG = 1309
-X86_INS_XCRYPTCBC = 1310
-X86_INS_XCRYPTCFB = 1311
-X86_INS_XCRYPTCTR = 1312
-X86_INS_XCRYPTECB = 1313
-X86_INS_XCRYPTOFB = 1314
-X86_INS_XEND = 1315
-X86_INS_XGETBV = 1316
-X86_INS_XLATB = 1317
-X86_INS_XRELEASE = 1318
-X86_INS_XRSTOR = 1319
-X86_INS_XRSTOR64 = 1320
-X86_INS_XRSTORS = 1321
-X86_INS_XRSTORS64 = 1322
-X86_INS_XSAVE = 1323
-X86_INS_XSAVE64 = 1324
-X86_INS_XSAVEC = 1325
-X86_INS_XSAVEC64 = 1326
-X86_INS_XSAVEOPT = 1327
-X86_INS_XSAVEOPT64 = 1328
-X86_INS_XSAVES = 1329
-X86_INS_XSAVES64 = 1330
-X86_INS_XSETBV = 1331
-X86_INS_XSHA1 = 1332
-X86_INS_XSHA256 = 1333
-X86_INS_XSTORE = 1334
-X86_INS_XTEST = 1335
-X86_INS_FDISI8087_NOP = 1336
-X86_INS_FENI8087_NOP = 1337
-X86_INS_ENDING = 1338
+X86_INS_CMPSB = 96
+X86_INS_CMPSQ = 97
+X86_INS_CMPSW = 98
+X86_INS_CMPXCHG16B = 99
+X86_INS_CMPXCHG = 100
+X86_INS_CMPXCHG8B = 101
+X86_INS_COMISD = 102
+X86_INS_COMISS = 103
+X86_INS_FCOMP = 104
+X86_INS_FCOMPI = 105
+X86_INS_FCOMI = 106
+X86_INS_FCOM = 107
+X86_INS_FCOS = 108
+X86_INS_CPUID = 109
+X86_INS_CQO = 110
+X86_INS_CRC32 = 111
+X86_INS_CVTDQ2PD = 112
+X86_INS_CVTDQ2PS = 113
+X86_INS_CVTPD2DQ = 114
+X86_INS_CVTPD2PS = 115
+X86_INS_CVTPS2DQ = 116
+X86_INS_CVTPS2PD = 117
+X86_INS_CVTSD2SI = 118
+X86_INS_CVTSD2SS = 119
+X86_INS_CVTSI2SD = 120
+X86_INS_CVTSI2SS = 121
+X86_INS_CVTSS2SD = 122
+X86_INS_CVTSS2SI = 123
+X86_INS_CVTTPD2DQ = 124
+X86_INS_CVTTPS2DQ = 125
+X86_INS_CVTTSD2SI = 126
+X86_INS_CVTTSS2SI = 127
+X86_INS_CWD = 128
+X86_INS_CWDE = 129
+X86_INS_DAA = 130
+X86_INS_DAS = 131
+X86_INS_DATA16 = 132
+X86_INS_DEC = 133
+X86_INS_DIV = 134
+X86_INS_DIVPD = 135
+X86_INS_DIVPS = 136
+X86_INS_FDIVR = 137
+X86_INS_FIDIVR = 138
+X86_INS_FDIVRP = 139
+X86_INS_DIVSD = 140
+X86_INS_DIVSS = 141
+X86_INS_FDIV = 142
+X86_INS_FIDIV = 143
+X86_INS_FDIVP = 144
+X86_INS_DPPD = 145
+X86_INS_DPPS = 146
+X86_INS_RET = 147
+X86_INS_ENCLS = 148
+X86_INS_ENCLU = 149
+X86_INS_ENTER = 150
+X86_INS_EXTRACTPS = 151
+X86_INS_EXTRQ = 152
+X86_INS_F2XM1 = 153
+X86_INS_LCALL = 154
+X86_INS_LJMP = 155
+X86_INS_FBLD = 156
+X86_INS_FBSTP = 157
+X86_INS_FCOMPP = 158
+X86_INS_FDECSTP = 159
+X86_INS_FEMMS = 160
+X86_INS_FFREE = 161
+X86_INS_FICOM = 162
+X86_INS_FICOMP = 163
+X86_INS_FINCSTP = 164
+X86_INS_FLDCW = 165
+X86_INS_FLDENV = 166
+X86_INS_FLDL2E = 167
+X86_INS_FLDL2T = 168
+X86_INS_FLDLG2 = 169
+X86_INS_FLDLN2 = 170
+X86_INS_FLDPI = 171
+X86_INS_FNCLEX = 172
+X86_INS_FNINIT = 173
+X86_INS_FNOP = 174
+X86_INS_FNSTCW = 175
+X86_INS_FNSTSW = 176
+X86_INS_FPATAN = 177
+X86_INS_FPREM = 178
+X86_INS_FPREM1 = 179
+X86_INS_FPTAN = 180
+X86_INS_FFREEP = 181
+X86_INS_FRNDINT = 182
+X86_INS_FRSTOR = 183
+X86_INS_FNSAVE = 184
+X86_INS_FSCALE = 185
+X86_INS_FSETPM = 186
+X86_INS_FSINCOS = 187
+X86_INS_FNSTENV = 188
+X86_INS_FXAM = 189
+X86_INS_FXRSTOR = 190
+X86_INS_FXRSTOR64 = 191
+X86_INS_FXSAVE = 192
+X86_INS_FXSAVE64 = 193
+X86_INS_FXTRACT = 194
+X86_INS_FYL2X = 195
+X86_INS_FYL2XP1 = 196
+X86_INS_MOVAPD = 197
+X86_INS_MOVAPS = 198
+X86_INS_ORPD = 199
+X86_INS_ORPS = 200
+X86_INS_VMOVAPD = 201
+X86_INS_VMOVAPS = 202
+X86_INS_XORPD = 203
+X86_INS_XORPS = 204
+X86_INS_GETSEC = 205
+X86_INS_HADDPD = 206
+X86_INS_HADDPS = 207
+X86_INS_HLT = 208
+X86_INS_HSUBPD = 209
+X86_INS_HSUBPS = 210
+X86_INS_IDIV = 211
+X86_INS_FILD = 212
+X86_INS_IMUL = 213
+X86_INS_IN = 214
+X86_INS_INC = 215
+X86_INS_INSB = 216
+X86_INS_INSERTPS = 217
+X86_INS_INSERTQ = 218
+X86_INS_INSD = 219
+X86_INS_INSW = 220
+X86_INS_INT = 221
+X86_INS_INT1 = 222
+X86_INS_INT3 = 223
+X86_INS_INTO = 224
+X86_INS_INVD = 225
+X86_INS_INVEPT = 226
+X86_INS_INVLPG = 227
+X86_INS_INVLPGA = 228
+X86_INS_INVPCID = 229
+X86_INS_INVVPID = 230
+X86_INS_IRET = 231
+X86_INS_IRETD = 232
+X86_INS_IRETQ = 233
+X86_INS_FISTTP = 234
+X86_INS_FIST = 235
+X86_INS_FISTP = 236
+X86_INS_UCOMISD = 237
+X86_INS_UCOMISS = 238
+X86_INS_VCOMISD = 239
+X86_INS_VCOMISS = 240
+X86_INS_VCVTSD2SS = 241
+X86_INS_VCVTSI2SD = 242
+X86_INS_VCVTSI2SS = 243
+X86_INS_VCVTSS2SD = 244
+X86_INS_VCVTTSD2SI = 245
+X86_INS_VCVTTSD2USI = 246
+X86_INS_VCVTTSS2SI = 247
+X86_INS_VCVTTSS2USI = 248
+X86_INS_VCVTUSI2SD = 249
+X86_INS_VCVTUSI2SS = 250
+X86_INS_VUCOMISD = 251
+X86_INS_VUCOMISS = 252
+X86_INS_JAE = 253
+X86_INS_JA = 254
+X86_INS_JBE = 255
+X86_INS_JB = 256
+X86_INS_JCXZ = 257
+X86_INS_JECXZ = 258
+X86_INS_JE = 259
+X86_INS_JGE = 260
+X86_INS_JG = 261
+X86_INS_JLE = 262
+X86_INS_JL = 263
+X86_INS_JMP = 264
+X86_INS_JNE = 265
+X86_INS_JNO = 266
+X86_INS_JNP = 267
+X86_INS_JNS = 268
+X86_INS_JO = 269
+X86_INS_JP = 270
+X86_INS_JRCXZ = 271
+X86_INS_JS = 272
+X86_INS_KANDB = 273
+X86_INS_KANDD = 274
+X86_INS_KANDNB = 275
+X86_INS_KANDND = 276
+X86_INS_KANDNQ = 277
+X86_INS_KANDNW = 278
+X86_INS_KANDQ = 279
+X86_INS_KANDW = 280
+X86_INS_KMOVB = 281
+X86_INS_KMOVD = 282
+X86_INS_KMOVQ = 283
+X86_INS_KMOVW = 284
+X86_INS_KNOTB = 285
+X86_INS_KNOTD = 286
+X86_INS_KNOTQ = 287
+X86_INS_KNOTW = 288
+X86_INS_KORB = 289
+X86_INS_KORD = 290
+X86_INS_KORQ = 291
+X86_INS_KORTESTB = 292
+X86_INS_KORTESTD = 293
+X86_INS_KORTESTQ = 294
+X86_INS_KORTESTW = 295
+X86_INS_KORW = 296
+X86_INS_KSHIFTLB = 297
+X86_INS_KSHIFTLD = 298
+X86_INS_KSHIFTLQ = 299
+X86_INS_KSHIFTLW = 300
+X86_INS_KSHIFTRB = 301
+X86_INS_KSHIFTRD = 302
+X86_INS_KSHIFTRQ = 303
+X86_INS_KSHIFTRW = 304
+X86_INS_KUNPCKBW = 305
+X86_INS_KXNORB = 306
+X86_INS_KXNORD = 307
+X86_INS_KXNORQ = 308
+X86_INS_KXNORW = 309
+X86_INS_KXORB = 310
+X86_INS_KXORD = 311
+X86_INS_KXORQ = 312
+X86_INS_KXORW = 313
+X86_INS_LAHF = 314
+X86_INS_LAR = 315
+X86_INS_LDDQU = 316
+X86_INS_LDMXCSR = 317
+X86_INS_LDS = 318
+X86_INS_FLDZ = 319
+X86_INS_FLD1 = 320
+X86_INS_FLD = 321
+X86_INS_LEA = 322
+X86_INS_LEAVE = 323
+X86_INS_LES = 324
+X86_INS_LFENCE = 325
+X86_INS_LFS = 326
+X86_INS_LGDT = 327
+X86_INS_LGS = 328
+X86_INS_LIDT = 329
+X86_INS_LLDT = 330
+X86_INS_LMSW = 331
+X86_INS_OR = 332
+X86_INS_SUB = 333
+X86_INS_XOR = 334
+X86_INS_LODSB = 335
+X86_INS_LODSD = 336
+X86_INS_LODSQ = 337
+X86_INS_LODSW = 338
+X86_INS_LOOP = 339
+X86_INS_LOOPE = 340
+X86_INS_LOOPNE = 341
+X86_INS_RETF = 342
+X86_INS_RETFQ = 343
+X86_INS_LSL = 344
+X86_INS_LSS = 345
+X86_INS_LTR = 346
+X86_INS_XADD = 347
+X86_INS_LZCNT = 348
+X86_INS_MASKMOVDQU = 349
+X86_INS_MAXPD = 350
+X86_INS_MAXPS = 351
+X86_INS_MAXSD = 352
+X86_INS_MAXSS = 353
+X86_INS_MFENCE = 354
+X86_INS_MINPD = 355
+X86_INS_MINPS = 356
+X86_INS_MINSD = 357
+X86_INS_MINSS = 358
+X86_INS_CVTPD2PI = 359
+X86_INS_CVTPI2PD = 360
+X86_INS_CVTPI2PS = 361
+X86_INS_CVTPS2PI = 362
+X86_INS_CVTTPD2PI = 363
+X86_INS_CVTTPS2PI = 364
+X86_INS_EMMS = 365
+X86_INS_MASKMOVQ = 366
+X86_INS_MOVD = 367
+X86_INS_MOVDQ2Q = 368
+X86_INS_MOVNTQ = 369
+X86_INS_MOVQ2DQ = 370
+X86_INS_MOVQ = 371
+X86_INS_PABSB = 372
+X86_INS_PABSD = 373
+X86_INS_PABSW = 374
+X86_INS_PACKSSDW = 375
+X86_INS_PACKSSWB = 376
+X86_INS_PACKUSWB = 377
+X86_INS_PADDB = 378
+X86_INS_PADDD = 379
+X86_INS_PADDQ = 380
+X86_INS_PADDSB = 381
+X86_INS_PADDSW = 382
+X86_INS_PADDUSB = 383
+X86_INS_PADDUSW = 384
+X86_INS_PADDW = 385
+X86_INS_PALIGNR = 386
+X86_INS_PANDN = 387
+X86_INS_PAND = 388
+X86_INS_PAVGB = 389
+X86_INS_PAVGW = 390
+X86_INS_PCMPEQB = 391
+X86_INS_PCMPEQD = 392
+X86_INS_PCMPEQW = 393
+X86_INS_PCMPGTB = 394
+X86_INS_PCMPGTD = 395
+X86_INS_PCMPGTW = 396
+X86_INS_PEXTRW = 397
+X86_INS_PHADDSW = 398
+X86_INS_PHADDW = 399
+X86_INS_PHADDD = 400
+X86_INS_PHSUBD = 401
+X86_INS_PHSUBSW = 402
+X86_INS_PHSUBW = 403
+X86_INS_PINSRW = 404
+X86_INS_PMADDUBSW = 405
+X86_INS_PMADDWD = 406
+X86_INS_PMAXSW = 407
+X86_INS_PMAXUB = 408
+X86_INS_PMINSW = 409
+X86_INS_PMINUB = 410
+X86_INS_PMOVMSKB = 411
+X86_INS_PMULHRSW = 412
+X86_INS_PMULHUW = 413
+X86_INS_PMULHW = 414
+X86_INS_PMULLW = 415
+X86_INS_PMULUDQ = 416
+X86_INS_POR = 417
+X86_INS_PSADBW = 418
+X86_INS_PSHUFB = 419
+X86_INS_PSHUFW = 420
+X86_INS_PSIGNB = 421
+X86_INS_PSIGND = 422
+X86_INS_PSIGNW = 423
+X86_INS_PSLLD = 424
+X86_INS_PSLLQ = 425
+X86_INS_PSLLW = 426
+X86_INS_PSRAD = 427
+X86_INS_PSRAW = 428
+X86_INS_PSRLD = 429
+X86_INS_PSRLQ = 430
+X86_INS_PSRLW = 431
+X86_INS_PSUBB = 432
+X86_INS_PSUBD = 433
+X86_INS_PSUBQ = 434
+X86_INS_PSUBSB = 435
+X86_INS_PSUBSW = 436
+X86_INS_PSUBUSB = 437
+X86_INS_PSUBUSW = 438
+X86_INS_PSUBW = 439
+X86_INS_PUNPCKHBW = 440
+X86_INS_PUNPCKHDQ = 441
+X86_INS_PUNPCKHWD = 442
+X86_INS_PUNPCKLBW = 443
+X86_INS_PUNPCKLDQ = 444
+X86_INS_PUNPCKLWD = 445
+X86_INS_PXOR = 446
+X86_INS_MONITOR = 447
+X86_INS_MONTMUL = 448
+X86_INS_MOV = 449
+X86_INS_MOVABS = 450
+X86_INS_MOVBE = 451
+X86_INS_MOVDDUP = 452
+X86_INS_MOVDQA = 453
+X86_INS_MOVDQU = 454
+X86_INS_MOVHLPS = 455
+X86_INS_MOVHPD = 456
+X86_INS_MOVHPS = 457
+X86_INS_MOVLHPS = 458
+X86_INS_MOVLPD = 459
+X86_INS_MOVLPS = 460
+X86_INS_MOVMSKPD = 461
+X86_INS_MOVMSKPS = 462
+X86_INS_MOVNTDQA = 463
+X86_INS_MOVNTDQ = 464
+X86_INS_MOVNTI = 465
+X86_INS_MOVNTPD = 466
+X86_INS_MOVNTPS = 467
+X86_INS_MOVNTSD = 468
+X86_INS_MOVNTSS = 469
+X86_INS_MOVSB = 470
+X86_INS_MOVSD = 471
+X86_INS_MOVSHDUP = 472
+X86_INS_MOVSLDUP = 473
+X86_INS_MOVSQ = 474
+X86_INS_MOVSS = 475
+X86_INS_MOVSW = 476
+X86_INS_MOVSX = 477
+X86_INS_MOVSXD = 478
+X86_INS_MOVUPD = 479
+X86_INS_MOVUPS = 480
+X86_INS_MOVZX = 481
+X86_INS_MPSADBW = 482
+X86_INS_MUL = 483
+X86_INS_MULPD = 484
+X86_INS_MULPS = 485
+X86_INS_MULSD = 486
+X86_INS_MULSS = 487
+X86_INS_MULX = 488
+X86_INS_FMUL = 489
+X86_INS_FIMUL = 490
+X86_INS_FMULP = 491
+X86_INS_MWAIT = 492
+X86_INS_NEG = 493
+X86_INS_NOP = 494
+X86_INS_NOT = 495
+X86_INS_OUT = 496
+X86_INS_OUTSB = 497
+X86_INS_OUTSD = 498
+X86_INS_OUTSW = 499
+X86_INS_PACKUSDW = 500
+X86_INS_PAUSE = 501
+X86_INS_PAVGUSB = 502
+X86_INS_PBLENDVB = 503
+X86_INS_PBLENDW = 504
+X86_INS_PCLMULQDQ = 505
+X86_INS_PCMPEQQ = 506
+X86_INS_PCMPESTRI = 507
+X86_INS_PCMPESTRM = 508
+X86_INS_PCMPGTQ = 509
+X86_INS_PCMPISTRI = 510
+X86_INS_PCMPISTRM = 511
+X86_INS_PCOMMIT = 512
+X86_INS_PDEP = 513
+X86_INS_PEXT = 514
+X86_INS_PEXTRB = 515
+X86_INS_PEXTRD = 516
+X86_INS_PEXTRQ = 517
+X86_INS_PF2ID = 518
+X86_INS_PF2IW = 519
+X86_INS_PFACC = 520
+X86_INS_PFADD = 521
+X86_INS_PFCMPEQ = 522
+X86_INS_PFCMPGE = 523
+X86_INS_PFCMPGT = 524
+X86_INS_PFMAX = 525
+X86_INS_PFMIN = 526
+X86_INS_PFMUL = 527
+X86_INS_PFNACC = 528
+X86_INS_PFPNACC = 529
+X86_INS_PFRCPIT1 = 530
+X86_INS_PFRCPIT2 = 531
+X86_INS_PFRCP = 532
+X86_INS_PFRSQIT1 = 533
+X86_INS_PFRSQRT = 534
+X86_INS_PFSUBR = 535
+X86_INS_PFSUB = 536
+X86_INS_PHMINPOSUW = 537
+X86_INS_PI2FD = 538
+X86_INS_PI2FW = 539
+X86_INS_PINSRB = 540
+X86_INS_PINSRD = 541
+X86_INS_PINSRQ = 542
+X86_INS_PMAXSB = 543
+X86_INS_PMAXSD = 544
+X86_INS_PMAXUD = 545
+X86_INS_PMAXUW = 546
+X86_INS_PMINSB = 547
+X86_INS_PMINSD = 548
+X86_INS_PMINUD = 549
+X86_INS_PMINUW = 550
+X86_INS_PMOVSXBD = 551
+X86_INS_PMOVSXBQ = 552
+X86_INS_PMOVSXBW = 553
+X86_INS_PMOVSXDQ = 554
+X86_INS_PMOVSXWD = 555
+X86_INS_PMOVSXWQ = 556
+X86_INS_PMOVZXBD = 557
+X86_INS_PMOVZXBQ = 558
+X86_INS_PMOVZXBW = 559
+X86_INS_PMOVZXDQ = 560
+X86_INS_PMOVZXWD = 561
+X86_INS_PMOVZXWQ = 562
+X86_INS_PMULDQ = 563
+X86_INS_PMULHRW = 564
+X86_INS_PMULLD = 565
+X86_INS_POP = 566
+X86_INS_POPAW = 567
+X86_INS_POPAL = 568
+X86_INS_POPCNT = 569
+X86_INS_POPF = 570
+X86_INS_POPFD = 571
+X86_INS_POPFQ = 572
+X86_INS_PREFETCH = 573
+X86_INS_PREFETCHNTA = 574
+X86_INS_PREFETCHT0 = 575
+X86_INS_PREFETCHT1 = 576
+X86_INS_PREFETCHT2 = 577
+X86_INS_PREFETCHW = 578
+X86_INS_PSHUFD = 579
+X86_INS_PSHUFHW = 580
+X86_INS_PSHUFLW = 581
+X86_INS_PSLLDQ = 582
+X86_INS_PSRLDQ = 583
+X86_INS_PSWAPD = 584
+X86_INS_PTEST = 585
+X86_INS_PUNPCKHQDQ = 586
+X86_INS_PUNPCKLQDQ = 587
+X86_INS_PUSH = 588
+X86_INS_PUSHAW = 589
+X86_INS_PUSHAL = 590
+X86_INS_PUSHF = 591
+X86_INS_PUSHFD = 592
+X86_INS_PUSHFQ = 593
+X86_INS_RCL = 594
+X86_INS_RCPPS = 595
+X86_INS_RCPSS = 596
+X86_INS_RCR = 597
+X86_INS_RDFSBASE = 598
+X86_INS_RDGSBASE = 599
+X86_INS_RDMSR = 600
+X86_INS_RDPMC = 601
+X86_INS_RDRAND = 602
+X86_INS_RDSEED = 603
+X86_INS_RDTSC = 604
+X86_INS_RDTSCP = 605
+X86_INS_ROL = 606
+X86_INS_ROR = 607
+X86_INS_RORX = 608
+X86_INS_ROUNDPD = 609
+X86_INS_ROUNDPS = 610
+X86_INS_ROUNDSD = 611
+X86_INS_ROUNDSS = 612
+X86_INS_RSM = 613
+X86_INS_RSQRTPS = 614
+X86_INS_RSQRTSS = 615
+X86_INS_SAHF = 616
+X86_INS_SAL = 617
+X86_INS_SALC = 618
+X86_INS_SAR = 619
+X86_INS_SARX = 620
+X86_INS_SBB = 621
+X86_INS_SCASB = 622
+X86_INS_SCASD = 623
+X86_INS_SCASQ = 624
+X86_INS_SCASW = 625
+X86_INS_SETAE = 626
+X86_INS_SETA = 627
+X86_INS_SETBE = 628
+X86_INS_SETB = 629
+X86_INS_SETE = 630
+X86_INS_SETGE = 631
+X86_INS_SETG = 632
+X86_INS_SETLE = 633
+X86_INS_SETL = 634
+X86_INS_SETNE = 635
+X86_INS_SETNO = 636
+X86_INS_SETNP = 637
+X86_INS_SETNS = 638
+X86_INS_SETO = 639
+X86_INS_SETP = 640
+X86_INS_SETS = 641
+X86_INS_SFENCE = 642
+X86_INS_SGDT = 643
+X86_INS_SHA1MSG1 = 644
+X86_INS_SHA1MSG2 = 645
+X86_INS_SHA1NEXTE = 646
+X86_INS_SHA1RNDS4 = 647
+X86_INS_SHA256MSG1 = 648
+X86_INS_SHA256MSG2 = 649
+X86_INS_SHA256RNDS2 = 650
+X86_INS_SHL = 651
+X86_INS_SHLD = 652
+X86_INS_SHLX = 653
+X86_INS_SHR = 654
+X86_INS_SHRD = 655
+X86_INS_SHRX = 656
+X86_INS_SHUFPD = 657
+X86_INS_SHUFPS = 658
+X86_INS_SIDT = 659
+X86_INS_FSIN = 660
+X86_INS_SKINIT = 661
+X86_INS_SLDT = 662
+X86_INS_SMSW = 663
+X86_INS_SQRTPD = 664
+X86_INS_SQRTPS = 665
+X86_INS_SQRTSD = 666
+X86_INS_SQRTSS = 667
+X86_INS_FSQRT = 668
+X86_INS_STAC = 669
+X86_INS_STC = 670
+X86_INS_STD = 671
+X86_INS_STGI = 672
+X86_INS_STI = 673
+X86_INS_STMXCSR = 674
+X86_INS_STOSB = 675
+X86_INS_STOSD = 676
+X86_INS_STOSQ = 677
+X86_INS_STOSW = 678
+X86_INS_STR = 679
+X86_INS_FST = 680
+X86_INS_FSTP = 681
+X86_INS_FSTPNCE = 682
+X86_INS_FXCH = 683
+X86_INS_SUBPD = 684
+X86_INS_SUBPS = 685
+X86_INS_FSUBR = 686
+X86_INS_FISUBR = 687
+X86_INS_FSUBRP = 688
+X86_INS_SUBSD = 689
+X86_INS_SUBSS = 690
+X86_INS_FSUB = 691
+X86_INS_FISUB = 692
+X86_INS_FSUBP = 693
+X86_INS_SWAPGS = 694
+X86_INS_SYSCALL = 695
+X86_INS_SYSENTER = 696
+X86_INS_SYSEXIT = 697
+X86_INS_SYSRET = 698
+X86_INS_T1MSKC = 699
+X86_INS_TEST = 700
+X86_INS_UD2 = 701
+X86_INS_FTST = 702
+X86_INS_TZCNT = 703
+X86_INS_TZMSK = 704
+X86_INS_FUCOMPI = 705
+X86_INS_FUCOMI = 706
+X86_INS_FUCOMPP = 707
+X86_INS_FUCOMP = 708
+X86_INS_FUCOM = 709
+X86_INS_UD2B = 710
+X86_INS_UNPCKHPD = 711
+X86_INS_UNPCKHPS = 712
+X86_INS_UNPCKLPD = 713
+X86_INS_UNPCKLPS = 714
+X86_INS_VADDPD = 715
+X86_INS_VADDPS = 716
+X86_INS_VADDSD = 717
+X86_INS_VADDSS = 718
+X86_INS_VADDSUBPD = 719
+X86_INS_VADDSUBPS = 720
+X86_INS_VAESDECLAST = 721
+X86_INS_VAESDEC = 722
+X86_INS_VAESENCLAST = 723
+X86_INS_VAESENC = 724
+X86_INS_VAESIMC = 725
+X86_INS_VAESKEYGENASSIST = 726
+X86_INS_VALIGND = 727
+X86_INS_VALIGNQ = 728
+X86_INS_VANDNPD = 729
+X86_INS_VANDNPS = 730
+X86_INS_VANDPD = 731
+X86_INS_VANDPS = 732
+X86_INS_VBLENDMPD = 733
+X86_INS_VBLENDMPS = 734
+X86_INS_VBLENDPD = 735
+X86_INS_VBLENDPS = 736
+X86_INS_VBLENDVPD = 737
+X86_INS_VBLENDVPS = 738
+X86_INS_VBROADCASTF128 = 739
+X86_INS_VBROADCASTI32X4 = 740
+X86_INS_VBROADCASTI64X4 = 741
+X86_INS_VBROADCASTSD = 742
+X86_INS_VBROADCASTSS = 743
+X86_INS_VCOMPRESSPD = 744
+X86_INS_VCOMPRESSPS = 745
+X86_INS_VCVTDQ2PD = 746
+X86_INS_VCVTDQ2PS = 747
+X86_INS_VCVTPD2DQX = 748
+X86_INS_VCVTPD2DQ = 749
+X86_INS_VCVTPD2PSX = 750
+X86_INS_VCVTPD2PS = 751
+X86_INS_VCVTPD2UDQ = 752
+X86_INS_VCVTPH2PS = 753
+X86_INS_VCVTPS2DQ = 754
+X86_INS_VCVTPS2PD = 755
+X86_INS_VCVTPS2PH = 756
+X86_INS_VCVTPS2UDQ = 757
+X86_INS_VCVTSD2SI = 758
+X86_INS_VCVTSD2USI = 759
+X86_INS_VCVTSS2SI = 760
+X86_INS_VCVTSS2USI = 761
+X86_INS_VCVTTPD2DQX = 762
+X86_INS_VCVTTPD2DQ = 763
+X86_INS_VCVTTPD2UDQ = 764
+X86_INS_VCVTTPS2DQ = 765
+X86_INS_VCVTTPS2UDQ = 766
+X86_INS_VCVTUDQ2PD = 767
+X86_INS_VCVTUDQ2PS = 768
+X86_INS_VDIVPD = 769
+X86_INS_VDIVPS = 770
+X86_INS_VDIVSD = 771
+X86_INS_VDIVSS = 772
+X86_INS_VDPPD = 773
+X86_INS_VDPPS = 774
+X86_INS_VERR = 775
+X86_INS_VERW = 776
+X86_INS_VEXP2PD = 777
+X86_INS_VEXP2PS = 778
+X86_INS_VEXPANDPD = 779
+X86_INS_VEXPANDPS = 780
+X86_INS_VEXTRACTF128 = 781
+X86_INS_VEXTRACTF32X4 = 782
+X86_INS_VEXTRACTF64X4 = 783
+X86_INS_VEXTRACTI128 = 784
+X86_INS_VEXTRACTI32X4 = 785
+X86_INS_VEXTRACTI64X4 = 786
+X86_INS_VEXTRACTPS = 787
+X86_INS_VFMADD132PD = 788
+X86_INS_VFMADD132PS = 789
+X86_INS_VFMADDPD = 790
+X86_INS_VFMADD213PD = 791
+X86_INS_VFMADD231PD = 792
+X86_INS_VFMADDPS = 793
+X86_INS_VFMADD213PS = 794
+X86_INS_VFMADD231PS = 795
+X86_INS_VFMADDSD = 796
+X86_INS_VFMADD213SD = 797
+X86_INS_VFMADD132SD = 798
+X86_INS_VFMADD231SD = 799
+X86_INS_VFMADDSS = 800
+X86_INS_VFMADD213SS = 801
+X86_INS_VFMADD132SS = 802
+X86_INS_VFMADD231SS = 803
+X86_INS_VFMADDSUB132PD = 804
+X86_INS_VFMADDSUB132PS = 805
+X86_INS_VFMADDSUBPD = 806
+X86_INS_VFMADDSUB213PD = 807
+X86_INS_VFMADDSUB231PD = 808
+X86_INS_VFMADDSUBPS = 809
+X86_INS_VFMADDSUB213PS = 810
+X86_INS_VFMADDSUB231PS = 811
+X86_INS_VFMSUB132PD = 812
+X86_INS_VFMSUB132PS = 813
+X86_INS_VFMSUBADD132PD = 814
+X86_INS_VFMSUBADD132PS = 815
+X86_INS_VFMSUBADDPD = 816
+X86_INS_VFMSUBADD213PD = 817
+X86_INS_VFMSUBADD231PD = 818
+X86_INS_VFMSUBADDPS = 819
+X86_INS_VFMSUBADD213PS = 820
+X86_INS_VFMSUBADD231PS = 821
+X86_INS_VFMSUBPD = 822
+X86_INS_VFMSUB213PD = 823
+X86_INS_VFMSUB231PD = 824
+X86_INS_VFMSUBPS = 825
+X86_INS_VFMSUB213PS = 826
+X86_INS_VFMSUB231PS = 827
+X86_INS_VFMSUBSD = 828
+X86_INS_VFMSUB213SD = 829
+X86_INS_VFMSUB132SD = 830
+X86_INS_VFMSUB231SD = 831
+X86_INS_VFMSUBSS = 832
+X86_INS_VFMSUB213SS = 833
+X86_INS_VFMSUB132SS = 834
+X86_INS_VFMSUB231SS = 835
+X86_INS_VFNMADD132PD = 836
+X86_INS_VFNMADD132PS = 837
+X86_INS_VFNMADDPD = 838
+X86_INS_VFNMADD213PD = 839
+X86_INS_VFNMADD231PD = 840
+X86_INS_VFNMADDPS = 841
+X86_INS_VFNMADD213PS = 842
+X86_INS_VFNMADD231PS = 843
+X86_INS_VFNMADDSD = 844
+X86_INS_VFNMADD213SD = 845
+X86_INS_VFNMADD132SD = 846
+X86_INS_VFNMADD231SD = 847
+X86_INS_VFNMADDSS = 848
+X86_INS_VFNMADD213SS = 849
+X86_INS_VFNMADD132SS = 850
+X86_INS_VFNMADD231SS = 851
+X86_INS_VFNMSUB132PD = 852
+X86_INS_VFNMSUB132PS = 853
+X86_INS_VFNMSUBPD = 854
+X86_INS_VFNMSUB213PD = 855
+X86_INS_VFNMSUB231PD = 856
+X86_INS_VFNMSUBPS = 857
+X86_INS_VFNMSUB213PS = 858
+X86_INS_VFNMSUB231PS = 859
+X86_INS_VFNMSUBSD = 860
+X86_INS_VFNMSUB213SD = 861
+X86_INS_VFNMSUB132SD = 862
+X86_INS_VFNMSUB231SD = 863
+X86_INS_VFNMSUBSS = 864
+X86_INS_VFNMSUB213SS = 865
+X86_INS_VFNMSUB132SS = 866
+X86_INS_VFNMSUB231SS = 867
+X86_INS_VFRCZPD = 868
+X86_INS_VFRCZPS = 869
+X86_INS_VFRCZSD = 870
+X86_INS_VFRCZSS = 871
+X86_INS_VORPD = 872
+X86_INS_VORPS = 873
+X86_INS_VXORPD = 874
+X86_INS_VXORPS = 875
+X86_INS_VGATHERDPD = 876
+X86_INS_VGATHERDPS = 877
+X86_INS_VGATHERPF0DPD = 878
+X86_INS_VGATHERPF0DPS = 879
+X86_INS_VGATHERPF0QPD = 880
+X86_INS_VGATHERPF0QPS = 881
+X86_INS_VGATHERPF1DPD = 882
+X86_INS_VGATHERPF1DPS = 883
+X86_INS_VGATHERPF1QPD = 884
+X86_INS_VGATHERPF1QPS = 885
+X86_INS_VGATHERQPD = 886
+X86_INS_VGATHERQPS = 887
+X86_INS_VHADDPD = 888
+X86_INS_VHADDPS = 889
+X86_INS_VHSUBPD = 890
+X86_INS_VHSUBPS = 891
+X86_INS_VINSERTF128 = 892
+X86_INS_VINSERTF32X4 = 893
+X86_INS_VINSERTF32X8 = 894
+X86_INS_VINSERTF64X2 = 895
+X86_INS_VINSERTF64X4 = 896
+X86_INS_VINSERTI128 = 897
+X86_INS_VINSERTI32X4 = 898
+X86_INS_VINSERTI32X8 = 899
+X86_INS_VINSERTI64X2 = 900
+X86_INS_VINSERTI64X4 = 901
+X86_INS_VINSERTPS = 902
+X86_INS_VLDDQU = 903
+X86_INS_VLDMXCSR = 904
+X86_INS_VMASKMOVDQU = 905
+X86_INS_VMASKMOVPD = 906
+X86_INS_VMASKMOVPS = 907
+X86_INS_VMAXPD = 908
+X86_INS_VMAXPS = 909
+X86_INS_VMAXSD = 910
+X86_INS_VMAXSS = 911
+X86_INS_VMCALL = 912
+X86_INS_VMCLEAR = 913
+X86_INS_VMFUNC = 914
+X86_INS_VMINPD = 915
+X86_INS_VMINPS = 916
+X86_INS_VMINSD = 917
+X86_INS_VMINSS = 918
+X86_INS_VMLAUNCH = 919
+X86_INS_VMLOAD = 920
+X86_INS_VMMCALL = 921
+X86_INS_VMOVQ = 922
+X86_INS_VMOVDDUP = 923
+X86_INS_VMOVD = 924
+X86_INS_VMOVDQA32 = 925
+X86_INS_VMOVDQA64 = 926
+X86_INS_VMOVDQA = 927
+X86_INS_VMOVDQU16 = 928
+X86_INS_VMOVDQU32 = 929
+X86_INS_VMOVDQU64 = 930
+X86_INS_VMOVDQU8 = 931
+X86_INS_VMOVDQU = 932
+X86_INS_VMOVHLPS = 933
+X86_INS_VMOVHPD = 934
+X86_INS_VMOVHPS = 935
+X86_INS_VMOVLHPS = 936
+X86_INS_VMOVLPD = 937
+X86_INS_VMOVLPS = 938
+X86_INS_VMOVMSKPD = 939
+X86_INS_VMOVMSKPS = 940
+X86_INS_VMOVNTDQA = 941
+X86_INS_VMOVNTDQ = 942
+X86_INS_VMOVNTPD = 943
+X86_INS_VMOVNTPS = 944
+X86_INS_VMOVSD = 945
+X86_INS_VMOVSHDUP = 946
+X86_INS_VMOVSLDUP = 947
+X86_INS_VMOVSS = 948
+X86_INS_VMOVUPD = 949
+X86_INS_VMOVUPS = 950
+X86_INS_VMPSADBW = 951
+X86_INS_VMPTRLD = 952
+X86_INS_VMPTRST = 953
+X86_INS_VMREAD = 954
+X86_INS_VMRESUME = 955
+X86_INS_VMRUN = 956
+X86_INS_VMSAVE = 957
+X86_INS_VMULPD = 958
+X86_INS_VMULPS = 959
+X86_INS_VMULSD = 960
+X86_INS_VMULSS = 961
+X86_INS_VMWRITE = 962
+X86_INS_VMXOFF = 963
+X86_INS_VMXON = 964
+X86_INS_VPABSB = 965
+X86_INS_VPABSD = 966
+X86_INS_VPABSQ = 967
+X86_INS_VPABSW = 968
+X86_INS_VPACKSSDW = 969
+X86_INS_VPACKSSWB = 970
+X86_INS_VPACKUSDW = 971
+X86_INS_VPACKUSWB = 972
+X86_INS_VPADDB = 973
+X86_INS_VPADDD = 974
+X86_INS_VPADDQ = 975
+X86_INS_VPADDSB = 976
+X86_INS_VPADDSW = 977
+X86_INS_VPADDUSB = 978
+X86_INS_VPADDUSW = 979
+X86_INS_VPADDW = 980
+X86_INS_VPALIGNR = 981
+X86_INS_VPANDD = 982
+X86_INS_VPANDND = 983
+X86_INS_VPANDNQ = 984
+X86_INS_VPANDN = 985
+X86_INS_VPANDQ = 986
+X86_INS_VPAND = 987
+X86_INS_VPAVGB = 988
+X86_INS_VPAVGW = 989
+X86_INS_VPBLENDD = 990
+X86_INS_VPBLENDMB = 991
+X86_INS_VPBLENDMD = 992
+X86_INS_VPBLENDMQ = 993
+X86_INS_VPBLENDMW = 994
+X86_INS_VPBLENDVB = 995
+X86_INS_VPBLENDW = 996
+X86_INS_VPBROADCASTB = 997
+X86_INS_VPBROADCASTD = 998
+X86_INS_VPBROADCASTMB2Q = 999
+X86_INS_VPBROADCASTMW2D = 1000
+X86_INS_VPBROADCASTQ = 1001
+X86_INS_VPBROADCASTW = 1002
+X86_INS_VPCLMULQDQ = 1003
+X86_INS_VPCMOV = 1004
+X86_INS_VPCMPB = 1005
+X86_INS_VPCMPD = 1006
+X86_INS_VPCMPEQB = 1007
+X86_INS_VPCMPEQD = 1008
+X86_INS_VPCMPEQQ = 1009
+X86_INS_VPCMPEQW = 1010
+X86_INS_VPCMPESTRI = 1011
+X86_INS_VPCMPESTRM = 1012
+X86_INS_VPCMPGTB = 1013
+X86_INS_VPCMPGTD = 1014
+X86_INS_VPCMPGTQ = 1015
+X86_INS_VPCMPGTW = 1016
+X86_INS_VPCMPISTRI = 1017
+X86_INS_VPCMPISTRM = 1018
+X86_INS_VPCMPQ = 1019
+X86_INS_VPCMPUB = 1020
+X86_INS_VPCMPUD = 1021
+X86_INS_VPCMPUQ = 1022
+X86_INS_VPCMPUW = 1023
+X86_INS_VPCMPW = 1024
+X86_INS_VPCOMB = 1025
+X86_INS_VPCOMD = 1026
+X86_INS_VPCOMPRESSD = 1027
+X86_INS_VPCOMPRESSQ = 1028
+X86_INS_VPCOMQ = 1029
+X86_INS_VPCOMUB = 1030
+X86_INS_VPCOMUD = 1031
+X86_INS_VPCOMUQ = 1032
+X86_INS_VPCOMUW = 1033
+X86_INS_VPCOMW = 1034
+X86_INS_VPCONFLICTD = 1035
+X86_INS_VPCONFLICTQ = 1036
+X86_INS_VPERM2F128 = 1037
+X86_INS_VPERM2I128 = 1038
+X86_INS_VPERMD = 1039
+X86_INS_VPERMI2D = 1040
+X86_INS_VPERMI2PD = 1041
+X86_INS_VPERMI2PS = 1042
+X86_INS_VPERMI2Q = 1043
+X86_INS_VPERMIL2PD = 1044
+X86_INS_VPERMIL2PS = 1045
+X86_INS_VPERMILPD = 1046
+X86_INS_VPERMILPS = 1047
+X86_INS_VPERMPD = 1048
+X86_INS_VPERMPS = 1049
+X86_INS_VPERMQ = 1050
+X86_INS_VPERMT2D = 1051
+X86_INS_VPERMT2PD = 1052
+X86_INS_VPERMT2PS = 1053
+X86_INS_VPERMT2Q = 1054
+X86_INS_VPEXPANDD = 1055
+X86_INS_VPEXPANDQ = 1056
+X86_INS_VPEXTRB = 1057
+X86_INS_VPEXTRD = 1058
+X86_INS_VPEXTRQ = 1059
+X86_INS_VPEXTRW = 1060
+X86_INS_VPGATHERDD = 1061
+X86_INS_VPGATHERDQ = 1062
+X86_INS_VPGATHERQD = 1063
+X86_INS_VPGATHERQQ = 1064
+X86_INS_VPHADDBD = 1065
+X86_INS_VPHADDBQ = 1066
+X86_INS_VPHADDBW = 1067
+X86_INS_VPHADDDQ = 1068
+X86_INS_VPHADDD = 1069
+X86_INS_VPHADDSW = 1070
+X86_INS_VPHADDUBD = 1071
+X86_INS_VPHADDUBQ = 1072
+X86_INS_VPHADDUBW = 1073
+X86_INS_VPHADDUDQ = 1074
+X86_INS_VPHADDUWD = 1075
+X86_INS_VPHADDUWQ = 1076
+X86_INS_VPHADDWD = 1077
+X86_INS_VPHADDWQ = 1078
+X86_INS_VPHADDW = 1079
+X86_INS_VPHMINPOSUW = 1080
+X86_INS_VPHSUBBW = 1081
+X86_INS_VPHSUBDQ = 1082
+X86_INS_VPHSUBD = 1083
+X86_INS_VPHSUBSW = 1084
+X86_INS_VPHSUBWD = 1085
+X86_INS_VPHSUBW = 1086
+X86_INS_VPINSRB = 1087
+X86_INS_VPINSRD = 1088
+X86_INS_VPINSRQ = 1089
+X86_INS_VPINSRW = 1090
+X86_INS_VPLZCNTD = 1091
+X86_INS_VPLZCNTQ = 1092
+X86_INS_VPMACSDD = 1093
+X86_INS_VPMACSDQH = 1094
+X86_INS_VPMACSDQL = 1095
+X86_INS_VPMACSSDD = 1096
+X86_INS_VPMACSSDQH = 1097
+X86_INS_VPMACSSDQL = 1098
+X86_INS_VPMACSSWD = 1099
+X86_INS_VPMACSSWW = 1100
+X86_INS_VPMACSWD = 1101
+X86_INS_VPMACSWW = 1102
+X86_INS_VPMADCSSWD = 1103
+X86_INS_VPMADCSWD = 1104
+X86_INS_VPMADDUBSW = 1105
+X86_INS_VPMADDWD = 1106
+X86_INS_VPMASKMOVD = 1107
+X86_INS_VPMASKMOVQ = 1108
+X86_INS_VPMAXSB = 1109
+X86_INS_VPMAXSD = 1110
+X86_INS_VPMAXSQ = 1111
+X86_INS_VPMAXSW = 1112
+X86_INS_VPMAXUB = 1113
+X86_INS_VPMAXUD = 1114
+X86_INS_VPMAXUQ = 1115
+X86_INS_VPMAXUW = 1116
+X86_INS_VPMINSB = 1117
+X86_INS_VPMINSD = 1118
+X86_INS_VPMINSQ = 1119
+X86_INS_VPMINSW = 1120
+X86_INS_VPMINUB = 1121
+X86_INS_VPMINUD = 1122
+X86_INS_VPMINUQ = 1123
+X86_INS_VPMINUW = 1124
+X86_INS_VPMOVDB = 1125
+X86_INS_VPMOVDW = 1126
+X86_INS_VPMOVM2B = 1127
+X86_INS_VPMOVM2D = 1128
+X86_INS_VPMOVM2Q = 1129
+X86_INS_VPMOVM2W = 1130
+X86_INS_VPMOVMSKB = 1131
+X86_INS_VPMOVQB = 1132
+X86_INS_VPMOVQD = 1133
+X86_INS_VPMOVQW = 1134
+X86_INS_VPMOVSDB = 1135
+X86_INS_VPMOVSDW = 1136
+X86_INS_VPMOVSQB = 1137
+X86_INS_VPMOVSQD = 1138
+X86_INS_VPMOVSQW = 1139
+X86_INS_VPMOVSXBD = 1140
+X86_INS_VPMOVSXBQ = 1141
+X86_INS_VPMOVSXBW = 1142
+X86_INS_VPMOVSXDQ = 1143
+X86_INS_VPMOVSXWD = 1144
+X86_INS_VPMOVSXWQ = 1145
+X86_INS_VPMOVUSDB = 1146
+X86_INS_VPMOVUSDW = 1147
+X86_INS_VPMOVUSQB = 1148
+X86_INS_VPMOVUSQD = 1149
+X86_INS_VPMOVUSQW = 1150
+X86_INS_VPMOVZXBD = 1151
+X86_INS_VPMOVZXBQ = 1152
+X86_INS_VPMOVZXBW = 1153
+X86_INS_VPMOVZXDQ = 1154
+X86_INS_VPMOVZXWD = 1155
+X86_INS_VPMOVZXWQ = 1156
+X86_INS_VPMULDQ = 1157
+X86_INS_VPMULHRSW = 1158
+X86_INS_VPMULHUW = 1159
+X86_INS_VPMULHW = 1160
+X86_INS_VPMULLD = 1161
+X86_INS_VPMULLQ = 1162
+X86_INS_VPMULLW = 1163
+X86_INS_VPMULUDQ = 1164
+X86_INS_VPORD = 1165
+X86_INS_VPORQ = 1166
+X86_INS_VPOR = 1167
+X86_INS_VPPERM = 1168
+X86_INS_VPROTB = 1169
+X86_INS_VPROTD = 1170
+X86_INS_VPROTQ = 1171
+X86_INS_VPROTW = 1172
+X86_INS_VPSADBW = 1173
+X86_INS_VPSCATTERDD = 1174
+X86_INS_VPSCATTERDQ = 1175
+X86_INS_VPSCATTERQD = 1176
+X86_INS_VPSCATTERQQ = 1177
+X86_INS_VPSHAB = 1178
+X86_INS_VPSHAD = 1179
+X86_INS_VPSHAQ = 1180
+X86_INS_VPSHAW = 1181
+X86_INS_VPSHLB = 1182
+X86_INS_VPSHLD = 1183
+X86_INS_VPSHLQ = 1184
+X86_INS_VPSHLW = 1185
+X86_INS_VPSHUFB = 1186
+X86_INS_VPSHUFD = 1187
+X86_INS_VPSHUFHW = 1188
+X86_INS_VPSHUFLW = 1189
+X86_INS_VPSIGNB = 1190
+X86_INS_VPSIGND = 1191
+X86_INS_VPSIGNW = 1192
+X86_INS_VPSLLDQ = 1193
+X86_INS_VPSLLD = 1194
+X86_INS_VPSLLQ = 1195
+X86_INS_VPSLLVD = 1196
+X86_INS_VPSLLVQ = 1197
+X86_INS_VPSLLW = 1198
+X86_INS_VPSRAD = 1199
+X86_INS_VPSRAQ = 1200
+X86_INS_VPSRAVD = 1201
+X86_INS_VPSRAVQ = 1202
+X86_INS_VPSRAW = 1203
+X86_INS_VPSRLDQ = 1204
+X86_INS_VPSRLD = 1205
+X86_INS_VPSRLQ = 1206
+X86_INS_VPSRLVD = 1207
+X86_INS_VPSRLVQ = 1208
+X86_INS_VPSRLW = 1209
+X86_INS_VPSUBB = 1210
+X86_INS_VPSUBD = 1211
+X86_INS_VPSUBQ = 1212
+X86_INS_VPSUBSB = 1213
+X86_INS_VPSUBSW = 1214
+X86_INS_VPSUBUSB = 1215
+X86_INS_VPSUBUSW = 1216
+X86_INS_VPSUBW = 1217
+X86_INS_VPTESTMD = 1218
+X86_INS_VPTESTMQ = 1219
+X86_INS_VPTESTNMD = 1220
+X86_INS_VPTESTNMQ = 1221
+X86_INS_VPTEST = 1222
+X86_INS_VPUNPCKHBW = 1223
+X86_INS_VPUNPCKHDQ = 1224
+X86_INS_VPUNPCKHQDQ = 1225
+X86_INS_VPUNPCKHWD = 1226
+X86_INS_VPUNPCKLBW = 1227
+X86_INS_VPUNPCKLDQ = 1228
+X86_INS_VPUNPCKLQDQ = 1229
+X86_INS_VPUNPCKLWD = 1230
+X86_INS_VPXORD = 1231
+X86_INS_VPXORQ = 1232
+X86_INS_VPXOR = 1233
+X86_INS_VRCP14PD = 1234
+X86_INS_VRCP14PS = 1235
+X86_INS_VRCP14SD = 1236
+X86_INS_VRCP14SS = 1237
+X86_INS_VRCP28PD = 1238
+X86_INS_VRCP28PS = 1239
+X86_INS_VRCP28SD = 1240
+X86_INS_VRCP28SS = 1241
+X86_INS_VRCPPS = 1242
+X86_INS_VRCPSS = 1243
+X86_INS_VRNDSCALEPD = 1244
+X86_INS_VRNDSCALEPS = 1245
+X86_INS_VRNDSCALESD = 1246
+X86_INS_VRNDSCALESS = 1247
+X86_INS_VROUNDPD = 1248
+X86_INS_VROUNDPS = 1249
+X86_INS_VROUNDSD = 1250
+X86_INS_VROUNDSS = 1251
+X86_INS_VRSQRT14PD = 1252
+X86_INS_VRSQRT14PS = 1253
+X86_INS_VRSQRT14SD = 1254
+X86_INS_VRSQRT14SS = 1255
+X86_INS_VRSQRT28PD = 1256
+X86_INS_VRSQRT28PS = 1257
+X86_INS_VRSQRT28SD = 1258
+X86_INS_VRSQRT28SS = 1259
+X86_INS_VRSQRTPS = 1260
+X86_INS_VRSQRTSS = 1261
+X86_INS_VSCATTERDPD = 1262
+X86_INS_VSCATTERDPS = 1263
+X86_INS_VSCATTERPF0DPD = 1264
+X86_INS_VSCATTERPF0DPS = 1265
+X86_INS_VSCATTERPF0QPD = 1266
+X86_INS_VSCATTERPF0QPS = 1267
+X86_INS_VSCATTERPF1DPD = 1268
+X86_INS_VSCATTERPF1DPS = 1269
+X86_INS_VSCATTERPF1QPD = 1270
+X86_INS_VSCATTERPF1QPS = 1271
+X86_INS_VSCATTERQPD = 1272
+X86_INS_VSCATTERQPS = 1273
+X86_INS_VSHUFPD = 1274
+X86_INS_VSHUFPS = 1275
+X86_INS_VSQRTPD = 1276
+X86_INS_VSQRTPS = 1277
+X86_INS_VSQRTSD = 1278
+X86_INS_VSQRTSS = 1279
+X86_INS_VSTMXCSR = 1280
+X86_INS_VSUBPD = 1281
+X86_INS_VSUBPS = 1282
+X86_INS_VSUBSD = 1283
+X86_INS_VSUBSS = 1284
+X86_INS_VTESTPD = 1285
+X86_INS_VTESTPS = 1286
+X86_INS_VUNPCKHPD = 1287
+X86_INS_VUNPCKHPS = 1288
+X86_INS_VUNPCKLPD = 1289
+X86_INS_VUNPCKLPS = 1290
+X86_INS_VZEROALL = 1291
+X86_INS_VZEROUPPER = 1292
+X86_INS_WAIT = 1293
+X86_INS_WBINVD = 1294
+X86_INS_WRFSBASE = 1295
+X86_INS_WRGSBASE = 1296
+X86_INS_WRMSR = 1297
+X86_INS_XABORT = 1298
+X86_INS_XACQUIRE = 1299
+X86_INS_XBEGIN = 1300
+X86_INS_XCHG = 1301
+X86_INS_XCRYPTCBC = 1302
+X86_INS_XCRYPTCFB = 1303
+X86_INS_XCRYPTCTR = 1304
+X86_INS_XCRYPTECB = 1305
+X86_INS_XCRYPTOFB = 1306
+X86_INS_XEND = 1307
+X86_INS_XGETBV = 1308
+X86_INS_XLATB = 1309
+X86_INS_XRELEASE = 1310
+X86_INS_XRSTOR = 1311
+X86_INS_XRSTOR64 = 1312
+X86_INS_XRSTORS = 1313
+X86_INS_XRSTORS64 = 1314
+X86_INS_XSAVE = 1315
+X86_INS_XSAVE64 = 1316
+X86_INS_XSAVEC = 1317
+X86_INS_XSAVEC64 = 1318
+X86_INS_XSAVEOPT = 1319
+X86_INS_XSAVEOPT64 = 1320
+X86_INS_XSAVES = 1321
+X86_INS_XSAVES64 = 1322
+X86_INS_XSETBV = 1323
+X86_INS_XSHA1 = 1324
+X86_INS_XSHA256 = 1325
+X86_INS_XSTORE = 1326
+X86_INS_XTEST = 1327
+X86_INS_FDISI8087_NOP = 1328
+X86_INS_FENI8087_NOP = 1329
+X86_INS_CMPSS = 1330
+X86_INS_CMPEQSS = 1331
+X86_INS_CMPLTSS = 1332
+X86_INS_CMPLESS = 1333
+X86_INS_CMPUNORDSS = 1334
+X86_INS_CMPNEQSS = 1335
+X86_INS_CMPNLTSS = 1336
+X86_INS_CMPNLESS = 1337
+X86_INS_CMPORDSS = 1338
+X86_INS_CMPSD = 1339
+X86_INS_CMPEQSD = 1340
+X86_INS_CMPLTSD = 1341
+X86_INS_CMPLESD = 1342
+X86_INS_CMPUNORDSD = 1343
+X86_INS_CMPNEQSD = 1344
+X86_INS_CMPNLTSD = 1345
+X86_INS_CMPNLESD = 1346
+X86_INS_CMPORDSD = 1347
+X86_INS_CMPPS = 1348
+X86_INS_CMPEQPS = 1349
+X86_INS_CMPLTPS = 1350
+X86_INS_CMPLEPS = 1351
+X86_INS_CMPUNORDPS = 1352
+X86_INS_CMPNEQPS = 1353
+X86_INS_CMPNLTPS = 1354
+X86_INS_CMPNLEPS = 1355
+X86_INS_CMPORDPS = 1356
+X86_INS_CMPPD = 1357
+X86_INS_CMPEQPD = 1358
+X86_INS_CMPLTPD = 1359
+X86_INS_CMPLEPD = 1360
+X86_INS_CMPUNORDPD = 1361
+X86_INS_CMPNEQPD = 1362
+X86_INS_CMPNLTPD = 1363
+X86_INS_CMPNLEPD = 1364
+X86_INS_CMPORDPD = 1365
+X86_INS_VCMPSS = 1366
+X86_INS_VCMPEQSS = 1367
+X86_INS_VCMPLTSS = 1368
+X86_INS_VCMPLESS = 1369
+X86_INS_VCMPUNORDSS = 1370
+X86_INS_VCMPNEQSS = 1371
+X86_INS_VCMPNLTSS = 1372
+X86_INS_VCMPNLESS = 1373
+X86_INS_VCMPORDSS = 1374
+X86_INS_VCMPEQ_UQSS = 1375
+X86_INS_VCMPNGESS = 1376
+X86_INS_VCMPNGTSS = 1377
+X86_INS_VCMPFALSESS = 1378
+X86_INS_VCMPNEQ_OQSS = 1379
+X86_INS_VCMPGESS = 1380
+X86_INS_VCMPGTSS = 1381
+X86_INS_VCMPTRUESS = 1382
+X86_INS_VCMPEQ_OSSS = 1383
+X86_INS_VCMPLT_OQSS = 1384
+X86_INS_VCMPLE_OQSS = 1385
+X86_INS_VCMPUNORD_SSS = 1386
+X86_INS_VCMPNEQ_USSS = 1387
+X86_INS_VCMPNLT_UQSS = 1388
+X86_INS_VCMPNLE_UQSS = 1389
+X86_INS_VCMPORD_SSS = 1390
+X86_INS_VCMPEQ_USSS = 1391
+X86_INS_VCMPNGE_UQSS = 1392
+X86_INS_VCMPNGT_UQSS = 1393
+X86_INS_VCMPFALSE_OSSS = 1394
+X86_INS_VCMPNEQ_OSSS = 1395
+X86_INS_VCMPGE_OQSS = 1396
+X86_INS_VCMPGT_OQSS = 1397
+X86_INS_VCMPTRUE_USSS = 1398
+X86_INS_VCMPSD = 1399
+X86_INS_VCMPEQSD = 1400
+X86_INS_VCMPLTSD = 1401
+X86_INS_VCMPLESD = 1402
+X86_INS_VCMPUNORDSD = 1403
+X86_INS_VCMPNEQSD = 1404
+X86_INS_VCMPNLTSD = 1405
+X86_INS_VCMPNLESD = 1406
+X86_INS_VCMPORDSD = 1407
+X86_INS_VCMPEQ_UQSD = 1408
+X86_INS_VCMPNGESD = 1409
+X86_INS_VCMPNGTSD = 1410
+X86_INS_VCMPFALSESD = 1411
+X86_INS_VCMPNEQ_OQSD = 1412
+X86_INS_VCMPGESD = 1413
+X86_INS_VCMPGTSD = 1414
+X86_INS_VCMPTRUESD = 1415
+X86_INS_VCMPEQ_OSSD = 1416
+X86_INS_VCMPLT_OQSD = 1417
+X86_INS_VCMPLE_OQSD = 1418
+X86_INS_VCMPUNORD_SSD = 1419
+X86_INS_VCMPNEQ_USSD = 1420
+X86_INS_VCMPNLT_UQSD = 1421
+X86_INS_VCMPNLE_UQSD = 1422
+X86_INS_VCMPORD_SSD = 1423
+X86_INS_VCMPEQ_USSD = 1424
+X86_INS_VCMPNGE_UQSD = 1425
+X86_INS_VCMPNGT_UQSD = 1426
+X86_INS_VCMPFALSE_OSSD = 1427
+X86_INS_VCMPNEQ_OSSD = 1428
+X86_INS_VCMPGE_OQSD = 1429
+X86_INS_VCMPGT_OQSD = 1430
+X86_INS_VCMPTRUE_USSD = 1431
+X86_INS_VCMPPS = 1432
+X86_INS_VCMPEQPS = 1433
+X86_INS_VCMPLTPS = 1434
+X86_INS_VCMPLEPS = 1435
+X86_INS_VCMPUNORDPS = 1436
+X86_INS_VCMPNEQPS = 1437
+X86_INS_VCMPNLTPS = 1438
+X86_INS_VCMPNLEPS = 1439
+X86_INS_VCMPORDPS = 1440
+X86_INS_VCMPEQ_UQPS = 1441
+X86_INS_VCMPNGEPS = 1442
+X86_INS_VCMPNGTPS = 1443
+X86_INS_VCMPFALSEPS = 1444
+X86_INS_VCMPNEQ_OQPS = 1445
+X86_INS_VCMPGEPS = 1446
+X86_INS_VCMPGTPS = 1447
+X86_INS_VCMPTRUEPS = 1448
+X86_INS_VCMPEQ_OSPS = 1449
+X86_INS_VCMPLT_OQPS = 1450
+X86_INS_VCMPLE_OQPS = 1451
+X86_INS_VCMPUNORD_SPS = 1452
+X86_INS_VCMPNEQ_USPS = 1453
+X86_INS_VCMPNLT_UQPS = 1454
+X86_INS_VCMPNLE_UQPS = 1455
+X86_INS_VCMPORD_SPS = 1456
+X86_INS_VCMPEQ_USPS = 1457
+X86_INS_VCMPNGE_UQPS = 1458
+X86_INS_VCMPNGT_UQPS = 1459
+X86_INS_VCMPFALSE_OSPS = 1460
+X86_INS_VCMPNEQ_OSPS = 1461
+X86_INS_VCMPGE_OQPS = 1462
+X86_INS_VCMPGT_OQPS = 1463
+X86_INS_VCMPTRUE_USPS = 1464
+X86_INS_VCMPPD = 1465
+X86_INS_VCMPEQPD = 1466
+X86_INS_VCMPLTPD = 1467
+X86_INS_VCMPLEPD = 1468
+X86_INS_VCMPUNORDPD = 1469
+X86_INS_VCMPNEQPD = 1470
+X86_INS_VCMPNLTPD = 1471
+X86_INS_VCMPNLEPD = 1472
+X86_INS_VCMPORDPD = 1473
+X86_INS_VCMPEQ_UQPD = 1474
+X86_INS_VCMPNGEPD = 1475
+X86_INS_VCMPNGTPD = 1476
+X86_INS_VCMPFALSEPD = 1477
+X86_INS_VCMPNEQ_OQPD = 1478
+X86_INS_VCMPGEPD = 1479
+X86_INS_VCMPGTPD = 1480
+X86_INS_VCMPTRUEPD = 1481
+X86_INS_VCMPEQ_OSPD = 1482
+X86_INS_VCMPLT_OQPD = 1483
+X86_INS_VCMPLE_OQPD = 1484
+X86_INS_VCMPUNORD_SPD = 1485
+X86_INS_VCMPNEQ_USPD = 1486
+X86_INS_VCMPNLT_UQPD = 1487
+X86_INS_VCMPNLE_UQPD = 1488
+X86_INS_VCMPORD_SPD = 1489
+X86_INS_VCMPEQ_USPD = 1490
+X86_INS_VCMPNGE_UQPD = 1491
+X86_INS_VCMPNGT_UQPD = 1492
+X86_INS_VCMPFALSE_OSPD = 1493
+X86_INS_VCMPNEQ_OSPD = 1494
+X86_INS_VCMPGE_OQPD = 1495
+X86_INS_VCMPGT_OQPD = 1496
+X86_INS_VCMPTRUE_USPD = 1497
+X86_INS_ENDING = 1498
 
 # Group of X86 instructions
 
diff --git a/bindings/python/capstone/xcore.py b/bindings/python/capstone/xcore.py
index aac7f6c..ec95b78 100644
--- a/bindings/python/capstone/xcore.py
+++ b/bindings/python/capstone/xcore.py
@@ -1,6 +1,7 @@
 # Capstone Python bindings, by Nguyen Anh Quynnh <aquynh@gmail.com>
 
-import ctypes, copy
+import ctypes
+from . import copy_ctypes_list
 from .xcore_const import *
 
 # define the API
@@ -45,5 +46,5 @@
     )
 
 def get_arch_info(a):
-    return (copy.deepcopy(a.operands[:a.op_count]))
+    return (copy_ctypes_list(a.operands[:a.op_count]))
 
diff --git a/bindings/python/test_arm.py b/bindings/python/test_arm.py
index 0f3a0eb..17742ec 100755
--- a/bindings/python/test_arm.py
+++ b/bindings/python/test_arm.py
@@ -20,8 +20,8 @@
         (CS_ARCH_ARM, CS_MODE_THUMB, THUMB_CODE, "Thumb", None),
         (CS_ARCH_ARM, CS_MODE_THUMB, ARM_CODE2, "Thumb-mixed", None),
         (CS_ARCH_ARM, CS_MODE_THUMB, THUMB_CODE2, "Thumb-2 & register named with numbers", CS_OPT_SYNTAX_NOREGNAME),
-        (CS_ARCH_ARM, CS_MODE_THUMB + CS_MODE_MCLASS, THUMB_MCLASS, "Thumb-MClass", 0),
-        (CS_ARCH_ARM, CS_MODE_ARM + CS_MODE_V8, ARMV8, "Arm-V8", 0),
+        (CS_ARCH_ARM, CS_MODE_THUMB + CS_MODE_MCLASS, THUMB_MCLASS, "Thumb-MClass", None),
+        (CS_ARCH_ARM, CS_MODE_ARM + CS_MODE_V8, ARMV8, "Arm-V8", None),
         )
 
 
@@ -137,7 +137,7 @@
 
         try:
             md = Cs(arch, mode)
-            if syntax:
+            if syntax is not None:
                 md.syntax = syntax
             md.detail = True
             for insn in md.disasm(code, 0x1000):
diff --git a/bindings/python/test_basic.py b/bindings/python/test_basic.py
index 6b63c91..269a6c5 100755
--- a/bindings/python/test_basic.py
+++ b/bindings/python/test_basic.py
@@ -31,31 +31,33 @@
 SPARCV9_CODE = b"\x81\xa8\x0a\x24\x89\xa0\x10\x20\x89\xa0\x1a\x60\x89\xa0\x00\xe0"
 SYSZ_CODE = b"\xed\x00\x00\x00\x00\x1a\x5a\x0f\x1f\xff\xc2\x09\x80\x00\x00\x00\x07\xf7\xeb\x2a\xff\xff\x7f\x57\xe3\x01\xff\xff\x7f\x57\xeb\x00\xf0\x00\x00\x24\xb2\x4f\x00\x78"
 XCORE_CODE = b"\xfe\x0f\xfe\x17\x13\x17\xc6\xfe\xec\x17\x97\xf8\xec\x4f\x1f\xfd\xec\x37\x07\xf2\x45\x5b\xf9\xfa\x02\x06\x1b\x10"
+M68K_CODE = b"\xd4\x40\x87\x5a\x4e\x71\x02\xb4\xc0\xde\xc0\xde\x5c\x00\x1d\x80\x71\x12\x01\x23\xf2\x3c\x44\x22\x40\x49\x0e\x56\x54\xc5\xf2\x3c\x44\x00\x44\x7a\x00\x00\xf2\x00\x0a\x28\x4E\xB9\x00\x00\x00\x12\x4E\x75"
 
 all_tests = (
-        (CS_ARCH_X86, CS_MODE_16, X86_CODE16, "X86 16bit (Intel syntax)", 0),
+        (CS_ARCH_X86, CS_MODE_16, X86_CODE16, "X86 16bit (Intel syntax)", None),
         (CS_ARCH_X86, CS_MODE_32, X86_CODE32, "X86 32bit (ATT syntax)", CS_OPT_SYNTAX_ATT),
-        (CS_ARCH_X86, CS_MODE_32, X86_CODE32, "X86 32 (Intel syntax)", 0),
+        (CS_ARCH_X86, CS_MODE_32, X86_CODE32, "X86 32 (Intel syntax)", None),
         (CS_ARCH_X86, CS_MODE_32, X86_CODE32, "X86 32 (MASM syntax)", CS_OPT_SYNTAX_MASM),
-        (CS_ARCH_X86, CS_MODE_64, X86_CODE64, "X86 64 (Intel syntax)", 0),
-        (CS_ARCH_ARM, CS_MODE_ARM, ARM_CODE, "ARM", 0),
-        (CS_ARCH_ARM, CS_MODE_THUMB, THUMB_CODE2, "THUMB-2", 0),
-        (CS_ARCH_ARM, CS_MODE_ARM, ARM_CODE2, "ARM: Cortex-A15 + NEON", 0),
-        (CS_ARCH_ARM, CS_MODE_THUMB, THUMB_CODE, "THUMB", 0),
-        (CS_ARCH_ARM, CS_MODE_THUMB + CS_MODE_MCLASS, THUMB_MCLASS, "Thumb-MClass", 0),
-        (CS_ARCH_ARM, CS_MODE_ARM + CS_MODE_V8, ARMV8, "Arm-V8", 0),
-        (CS_ARCH_MIPS, CS_MODE_MIPS32 + CS_MODE_BIG_ENDIAN, MIPS_CODE, "MIPS-32 (Big-endian)", 0),
-        (CS_ARCH_MIPS, CS_MODE_MIPS64 + CS_MODE_LITTLE_ENDIAN, MIPS_CODE2, "MIPS-64-EL (Little-endian)", 0),
-        (CS_ARCH_MIPS, CS_MODE_MIPS32R6 + CS_MODE_MICRO + CS_MODE_BIG_ENDIAN, MIPS_32R6M, "MIPS-32R6 | Micro (Big-endian)", 0),
-        (CS_ARCH_MIPS, CS_MODE_MIPS32R6 + CS_MODE_BIG_ENDIAN, MIPS_32R6, "MIPS-32R6 (Big-endian)", 0),
-        (CS_ARCH_ARM64, CS_MODE_ARM, ARM64_CODE, "ARM-64", 0),
-        (CS_ARCH_PPC, CS_MODE_BIG_ENDIAN, PPC_CODE, "PPC-64", 0),
+        (CS_ARCH_X86, CS_MODE_64, X86_CODE64, "X86 64 (Intel syntax)", None),
+        (CS_ARCH_ARM, CS_MODE_ARM, ARM_CODE, "ARM", None),
+        (CS_ARCH_ARM, CS_MODE_THUMB, THUMB_CODE2, "THUMB-2", None),
+        (CS_ARCH_ARM, CS_MODE_ARM, ARM_CODE2, "ARM: Cortex-A15 + NEON", None),
+        (CS_ARCH_ARM, CS_MODE_THUMB, THUMB_CODE, "THUMB", None),
+        (CS_ARCH_ARM, CS_MODE_THUMB + CS_MODE_MCLASS, THUMB_MCLASS, "Thumb-MClass", None),
+        (CS_ARCH_ARM, CS_MODE_ARM + CS_MODE_V8, ARMV8, "Arm-V8", None),
+        (CS_ARCH_MIPS, CS_MODE_MIPS32 + CS_MODE_BIG_ENDIAN, MIPS_CODE, "MIPS-32 (Big-endian)", None),
+        (CS_ARCH_MIPS, CS_MODE_MIPS64 + CS_MODE_LITTLE_ENDIAN, MIPS_CODE2, "MIPS-64-EL (Little-endian)", None),
+        (CS_ARCH_MIPS, CS_MODE_MIPS32R6 + CS_MODE_MICRO + CS_MODE_BIG_ENDIAN, MIPS_32R6M, "MIPS-32R6 | Micro (Big-endian)", None),
+        (CS_ARCH_MIPS, CS_MODE_MIPS32R6 + CS_MODE_BIG_ENDIAN, MIPS_32R6, "MIPS-32R6 (Big-endian)", None),
+        (CS_ARCH_ARM64, CS_MODE_ARM, ARM64_CODE, "ARM-64", None),
+        (CS_ARCH_PPC, CS_MODE_BIG_ENDIAN, PPC_CODE, "PPC-64", None),
         (CS_ARCH_PPC, CS_MODE_BIG_ENDIAN, PPC_CODE, "PPC-64, print register with number only", CS_OPT_SYNTAX_NOREGNAME),
         (CS_ARCH_PPC, CS_MODE_BIG_ENDIAN + CS_MODE_QPX, PPC_CODE2, "PPC-64 + QPX", CS_OPT_SYNTAX_NOREGNAME),
-        (CS_ARCH_SPARC, CS_MODE_BIG_ENDIAN, SPARC_CODE, "Sparc", 0),
-        (CS_ARCH_SPARC, CS_MODE_BIG_ENDIAN + CS_MODE_V9, SPARCV9_CODE, "SparcV9", 0),
-        (CS_ARCH_SYSZ, 0, SYSZ_CODE, "SystemZ", 0),
-        (CS_ARCH_XCORE, 0, XCORE_CODE, "XCore", 0),
+        (CS_ARCH_SPARC, CS_MODE_BIG_ENDIAN, SPARC_CODE, "Sparc", None),
+        (CS_ARCH_SPARC, CS_MODE_BIG_ENDIAN + CS_MODE_V9, SPARCV9_CODE, "SparcV9", None),
+        (CS_ARCH_SYSZ, 0, SYSZ_CODE, "SystemZ", None),
+        (CS_ARCH_XCORE, 0, XCORE_CODE, "XCore", None),
+        (CS_ARCH_M68K, CS_MODE_BIG_ENDIAN | CS_MODE_M68K_040, M68K_CODE, "M68K (68040)", None),
 )
 
 # ## Test cs_disasm_quick()
@@ -81,7 +83,7 @@
         try:
             md = Cs(arch, mode)
 
-            if syntax != 0:
+            if syntax is not None:
                 md.syntax = syntax
 
             for insn in md.disasm(code, 0x1000):
diff --git a/bindings/python/test_detail.py b/bindings/python/test_detail.py
index 4f8ddbd..a06c63e 100755
--- a/bindings/python/test_detail.py
+++ b/bindings/python/test_detail.py
@@ -25,29 +25,31 @@
 SPARCV9_CODE = b"\x81\xa8\x0a\x24\x89\xa0\x10\x20\x89\xa0\x1a\x60\x89\xa0\x00\xe0"
 SYSZ_CODE = b"\xed\x00\x00\x00\x00\x1a\x5a\x0f\x1f\xff\xc2\x09\x80\x00\x00\x00\x07\xf7\xeb\x2a\xff\xff\x7f\x57\xe3\x01\xff\xff\x7f\x57\xeb\x00\xf0\x00\x00\x24\xb2\x4f\x00\x78"
 XCORE_CODE = b"\xfe\x0f\xfe\x17\x13\x17\xc6\xfe\xec\x17\x97\xf8\xec\x4f\x1f\xfd\xec\x37\x07\xf2\x45\x5b\xf9\xfa\x02\x06\x1b\x10"
+M68K_CODE = b"\xd4\x40\x87\x5a\x4e\x71\x02\xb4\xc0\xde\xc0\xde\x5c\x00\x1d\x80\x71\x12\x01\x23\xf2\x3c\x44\x22\x40\x49\x0e\x56\x54\xc5\xf2\x3c\x44\x00\x44\x7a\x00\x00\xf2\x00\x0a\x28\x4E\xB9\x00\x00\x00\x12\x4E\x75"
 
 all_tests = (
-        (CS_ARCH_X86, CS_MODE_16, X86_CODE16, "X86 16bit (Intel syntax)", 0),
+        (CS_ARCH_X86, CS_MODE_16, X86_CODE16, "X86 16bit (Intel syntax)", None),
         (CS_ARCH_X86, CS_MODE_32, X86_CODE32, "X86 32bit (ATT syntax)", CS_OPT_SYNTAX_ATT),
-        (CS_ARCH_X86, CS_MODE_32, X86_CODE32, "X86 32 (Intel syntax)", 0),
-        (CS_ARCH_X86, CS_MODE_64, X86_CODE64, "X86 64 (Intel syntax)", 0),
-        (CS_ARCH_ARM, CS_MODE_ARM, ARM_CODE, "ARM", 0),
-        (CS_ARCH_ARM, CS_MODE_ARM, ARM_CODE2, "ARM: Cortex-A15 + NEON", 0),
-        (CS_ARCH_ARM, CS_MODE_THUMB, THUMB_CODE, "THUMB", 0),
-        (CS_ARCH_ARM, CS_MODE_THUMB, THUMB_CODE2, "THUMB-2", 0),
-        (CS_ARCH_ARM, CS_MODE_THUMB + CS_MODE_MCLASS, THUMB_MCLASS, "Thumb-MClass", 0),
-        (CS_ARCH_ARM, CS_MODE_ARM + CS_MODE_V8, ARMV8, "Arm-V8", 0),
-        (CS_ARCH_ARM64, CS_MODE_ARM, ARM64_CODE, "ARM-64", 0),
-        (CS_ARCH_MIPS, CS_MODE_MIPS32 + CS_MODE_BIG_ENDIAN, MIPS_CODE, "MIPS-32 (Big-endian)", 0),
-        (CS_ARCH_MIPS, CS_MODE_MIPS64 + CS_MODE_LITTLE_ENDIAN, MIPS_CODE2, "MIPS-64-EL (Little-endian)", 0),
-        (CS_ARCH_MIPS, CS_MODE_MIPS32R6 + CS_MODE_MICRO + CS_MODE_BIG_ENDIAN, MIPS_32R6M, "MIPS-32R6 | Micro (Big-endian)", 0),
-        (CS_ARCH_MIPS, CS_MODE_MIPS32R6 + CS_MODE_BIG_ENDIAN, MIPS_32R6, "MIPS-32R6 (Big-endian)", 0),
-        (CS_ARCH_PPC, CS_MODE_BIG_ENDIAN, PPC_CODE, "PPC-64", 0),
-        (CS_ARCH_PPC, CS_MODE_BIG_ENDIAN + CS_MODE_QPX, PPC_CODE2, "PPC-64 + QPX", 0),
-        (CS_ARCH_SPARC, CS_MODE_BIG_ENDIAN, SPARC_CODE, "Sparc", 0),
-        (CS_ARCH_SPARC, CS_MODE_BIG_ENDIAN + CS_MODE_V9, SPARCV9_CODE, "SparcV9", 0),
-        (CS_ARCH_SYSZ, 0, SYSZ_CODE, "SystemZ", 0),
-        (CS_ARCH_XCORE, 0, XCORE_CODE, "XCore", 0),
+        (CS_ARCH_X86, CS_MODE_32, X86_CODE32, "X86 32 (Intel syntax)", None),
+        (CS_ARCH_X86, CS_MODE_64, X86_CODE64, "X86 64 (Intel syntax)", None),
+        (CS_ARCH_ARM, CS_MODE_ARM, ARM_CODE, "ARM", None),
+        (CS_ARCH_ARM, CS_MODE_ARM, ARM_CODE2, "ARM: Cortex-A15 + NEON", None),
+        (CS_ARCH_ARM, CS_MODE_THUMB, THUMB_CODE, "THUMB", None),
+        (CS_ARCH_ARM, CS_MODE_THUMB, THUMB_CODE2, "THUMB-2", None),
+        (CS_ARCH_ARM, CS_MODE_THUMB + CS_MODE_MCLASS, THUMB_MCLASS, "Thumb-MClass", None),
+        (CS_ARCH_ARM, CS_MODE_ARM + CS_MODE_V8, ARMV8, "Arm-V8", None),
+        (CS_ARCH_ARM64, CS_MODE_ARM, ARM64_CODE, "ARM-64", None),
+        (CS_ARCH_MIPS, CS_MODE_MIPS32 + CS_MODE_BIG_ENDIAN, MIPS_CODE, "MIPS-32 (Big-endian)", None),
+        (CS_ARCH_MIPS, CS_MODE_MIPS64 + CS_MODE_LITTLE_ENDIAN, MIPS_CODE2, "MIPS-64-EL (Little-endian)", None),
+        (CS_ARCH_MIPS, CS_MODE_MIPS32R6 + CS_MODE_MICRO + CS_MODE_BIG_ENDIAN, MIPS_32R6M, "MIPS-32R6 | Micro (Big-endian)", None),
+        (CS_ARCH_MIPS, CS_MODE_MIPS32R6 + CS_MODE_BIG_ENDIAN, MIPS_32R6, "MIPS-32R6 (Big-endian)", None),
+        (CS_ARCH_PPC, CS_MODE_BIG_ENDIAN, PPC_CODE, "PPC-64", None),
+        (CS_ARCH_PPC, CS_MODE_BIG_ENDIAN + CS_MODE_QPX, PPC_CODE2, "PPC-64 + QPX", None),
+        (CS_ARCH_SPARC, CS_MODE_BIG_ENDIAN, SPARC_CODE, "Sparc", None),
+        (CS_ARCH_SPARC, CS_MODE_BIG_ENDIAN + CS_MODE_V9, SPARCV9_CODE, "SparcV9", None),
+        (CS_ARCH_SYSZ, 0, SYSZ_CODE, "SystemZ", None),
+        (CS_ARCH_XCORE, 0, XCORE_CODE, "XCore", None),
+        (CS_ARCH_M68K, CS_MODE_BIG_ENDIAN | CS_MODE_M68K_040, M68K_CODE, "M68K (68040)", None),
 )
 
 
@@ -90,7 +92,7 @@
             md = Cs(arch, mode)
             md.detail = True
 
-            if syntax != 0:
+            if syntax is not None:
                 md.syntax = syntax
 
             for insn in md.disasm(code, 0x1000):
diff --git a/bindings/python/test_lite.py b/bindings/python/test_lite.py
index 33b8427..9ba7bd8 100755
--- a/bindings/python/test_lite.py
+++ b/bindings/python/test_lite.py
@@ -7,31 +7,52 @@
 
 
 X86_CODE16 = b"\x8d\x4c\x32\x08\x01\xd8\x81\xc6\x34\x12\x00\x00"
-X86_CODE32 = b"\x8d\x4c\x32\x08\x01\xd8\x81\xc6\x34\x12\x00\x00"
+X86_CODE32 = b"\xba\xcd\xab\x00\x00\x8d\x4c\x32\x08\x01\xd8\x81\xc6\x34\x12\x00\x00"
 X86_CODE64 = b"\x55\x48\x8b\x05\xb8\x13\x00\x00"
 ARM_CODE = b"\xED\xFF\xFF\xEB\x04\xe0\x2d\xe5\x00\x00\x00\x00\xe0\x83\x22\xe5\xf1\x02\x03\x0e\x00\x00\xa0\xe3\x02\x30\xc1\xe7\x00\x00\x53\xe3"
 ARM_CODE2 = b"\x10\xf1\x10\xe7\x11\xf2\x31\xe7\xdc\xa1\x2e\xf3\xe8\x4e\x62\xf3"
 THUMB_CODE = b"\x70\x47\xeb\x46\x83\xb0\xc9\x68"
 THUMB_CODE2 = b"\x4f\xf0\x00\x01\xbd\xe8\x00\x88\xd1\xe8\x00\xf0"
+THUMB_MCLASS = b"\xef\xf3\x02\x80"
+ARMV8 = b"\xe0\x3b\xb2\xee\x42\x00\x01\xe1\x51\xf0\x7f\xf5"
 MIPS_CODE = b"\x0C\x10\x00\x97\x00\x00\x00\x00\x24\x02\x00\x0c\x8f\xa2\x00\x00\x34\x21\x34\x56"
 MIPS_CODE2 = b"\x56\x34\x21\x34\xc2\x17\x01\x00"
+MIPS_32R6M = b"\x00\x07\x00\x07\x00\x11\x93\x7c\x01\x8c\x8b\x7c\x00\xc7\x48\xd0"
+MIPS_32R6 = b"\xec\x80\x00\x19\x7c\x43\x22\xa0"
 ARM64_CODE = b"\x21\x7c\x02\x9b\x21\x7c\x00\x53\x00\x40\x21\x4b\xe1\x0b\x40\xb9"
 PPC_CODE = b"\x80\x20\x00\x00\x80\x3f\x00\x00\x10\x43\x23\x0e\xd0\x44\x00\x80\x4c\x43\x22\x02\x2d\x03\x00\x80\x7c\x43\x20\x14\x7c\x43\x20\x93\x4f\x20\x00\x21\x4c\xc8\x00\x21"
+PPC_CODE2 = b"\x10\x60\x2a\x10\x10\x64\x28\x88\x7c\x4a\x5d\x0f"
+SPARC_CODE = b"\x80\xa0\x40\x02\x85\xc2\x60\x08\x85\xe8\x20\x01\x81\xe8\x00\x00\x90\x10\x20\x01\xd5\xf6\x10\x16\x21\x00\x00\x0a\x86\x00\x40\x02\x01\x00\x00\x00\x12\xbf\xff\xff\x10\xbf\xff\xff\xa0\x02\x00\x09\x0d\xbf\xff\xff\xd4\x20\x60\x00\xd4\x4e\x00\x16\x2a\xc2\x80\x03"
+SPARCV9_CODE = b"\x81\xa8\x0a\x24\x89\xa0\x10\x20\x89\xa0\x1a\x60\x89\xa0\x00\xe0"
+SYSZ_CODE = b"\xed\x00\x00\x00\x00\x1a\x5a\x0f\x1f\xff\xc2\x09\x80\x00\x00\x00\x07\xf7\xeb\x2a\xff\xff\x7f\x57\xe3\x01\xff\xff\x7f\x57\xeb\x00\xf0\x00\x00\x24\xb2\x4f\x00\x78"
+XCORE_CODE = b"\xfe\x0f\xfe\x17\x13\x17\xc6\xfe\xec\x17\x97\xf8\xec\x4f\x1f\xfd\xec\x37\x07\xf2\x45\x5b\xf9\xfa\x02\x06\x1b\x10"
+M68K_CODE = b"\xd4\x40\x87\x5a\x4e\x71\x02\xb4\xc0\xde\xc0\xde\x5c\x00\x1d\x80\x71\x12\x01\x23\xf2\x3c\x44\x22\x40\x49\x0e\x56\x54\xc5\xf2\x3c\x44\x00\x44\x7a\x00\x00\xf2\x00\x0a\x28\x4E\xB9\x00\x00\x00\x12\x4E\x75"
 
 all_tests = (
-        (CS_ARCH_X86, CS_MODE_16, X86_CODE16, "X86 16bit (Intel syntax)", 0),
+        (CS_ARCH_X86, CS_MODE_16, X86_CODE16, "X86 16bit (Intel syntax)", None),
         (CS_ARCH_X86, CS_MODE_32, X86_CODE32, "X86 32bit (ATT syntax)", CS_OPT_SYNTAX_ATT),
-        (CS_ARCH_X86, CS_MODE_32, X86_CODE32, "X86 32 (Intel syntax)", 0),
-        (CS_ARCH_X86, CS_MODE_64, X86_CODE64, "X86 64 (Intel syntax)", 0),
-        (CS_ARCH_ARM, CS_MODE_ARM, ARM_CODE, "ARM", 0),
-        (CS_ARCH_ARM, CS_MODE_THUMB, THUMB_CODE2, "THUMB-2", 0),
-        (CS_ARCH_ARM, CS_MODE_ARM, ARM_CODE2, "ARM: Cortex-A15 + NEON", 0),
-        (CS_ARCH_ARM, CS_MODE_THUMB, THUMB_CODE, "THUMB", 0),
-        (CS_ARCH_MIPS, CS_MODE_MIPS32 + CS_MODE_BIG_ENDIAN, MIPS_CODE, "MIPS-32 (Big-endian)", 0),
-        (CS_ARCH_MIPS, CS_MODE_MIPS64 + CS_MODE_LITTLE_ENDIAN, MIPS_CODE2, "MIPS-64-EL (Little-endian)", 0),
-        (CS_ARCH_ARM64, CS_MODE_ARM, ARM64_CODE, "ARM-64", 0),
-        (CS_ARCH_PPC, CS_MODE_BIG_ENDIAN, PPC_CODE, "PPC-64", 0),
+        (CS_ARCH_X86, CS_MODE_32, X86_CODE32, "X86 32 (Intel syntax)", None),
+        (CS_ARCH_X86, CS_MODE_32, X86_CODE32, "X86 32 (MASM syntax)", CS_OPT_SYNTAX_MASM),
+        (CS_ARCH_X86, CS_MODE_64, X86_CODE64, "X86 64 (Intel syntax)", None),
+        (CS_ARCH_ARM, CS_MODE_ARM, ARM_CODE, "ARM", None),
+        (CS_ARCH_ARM, CS_MODE_THUMB, THUMB_CODE2, "THUMB-2", None),
+        (CS_ARCH_ARM, CS_MODE_ARM, ARM_CODE2, "ARM: Cortex-A15 + NEON", None),
+        (CS_ARCH_ARM, CS_MODE_THUMB, THUMB_CODE, "THUMB", None),
+        (CS_ARCH_ARM, CS_MODE_THUMB + CS_MODE_MCLASS, THUMB_MCLASS, "Thumb-MClass", None),
+        (CS_ARCH_ARM, CS_MODE_ARM + CS_MODE_V8, ARMV8, "Arm-V8", None),
+        (CS_ARCH_MIPS, CS_MODE_MIPS32 + CS_MODE_BIG_ENDIAN, MIPS_CODE, "MIPS-32 (Big-endian)", None),
+        (CS_ARCH_MIPS, CS_MODE_MIPS64 + CS_MODE_LITTLE_ENDIAN, MIPS_CODE2, "MIPS-64-EL (Little-endian)", None),
+        (CS_ARCH_MIPS, CS_MODE_MIPS32R6 + CS_MODE_MICRO + CS_MODE_BIG_ENDIAN, MIPS_32R6M, "MIPS-32R6 | Micro (Big-endian)", None),
+        (CS_ARCH_MIPS, CS_MODE_MIPS32R6 + CS_MODE_BIG_ENDIAN, MIPS_32R6, "MIPS-32R6 (Big-endian)", None),
+        (CS_ARCH_ARM64, CS_MODE_ARM, ARM64_CODE, "ARM-64", None),
+        (CS_ARCH_PPC, CS_MODE_BIG_ENDIAN, PPC_CODE, "PPC-64", None),
         (CS_ARCH_PPC, CS_MODE_BIG_ENDIAN, PPC_CODE, "PPC-64, print register with number only", CS_OPT_SYNTAX_NOREGNAME),
+        (CS_ARCH_PPC, CS_MODE_BIG_ENDIAN + CS_MODE_QPX, PPC_CODE2, "PPC-64 + QPX", CS_OPT_SYNTAX_NOREGNAME),
+        (CS_ARCH_SPARC, CS_MODE_BIG_ENDIAN, SPARC_CODE, "Sparc", None),
+        (CS_ARCH_SPARC, CS_MODE_BIG_ENDIAN + CS_MODE_V9, SPARCV9_CODE, "SparcV9", None),
+        (CS_ARCH_SYSZ, 0, SYSZ_CODE, "SystemZ", None),
+        (CS_ARCH_XCORE, 0, XCORE_CODE, "XCore", None),
+        (CS_ARCH_M68K, CS_MODE_BIG_ENDIAN | CS_MODE_M68K_040, M68K_CODE, "M68K (68040)", None),
         )
 
 
@@ -58,7 +79,7 @@
         try:
             md = Cs(arch, mode)
 
-            if syntax != 0:
+            if syntax is not None:
                 md.syntax = syntax
 
             for (addr, size, mnemonic, op_str) in md.disasm_lite(code, 0x1000):
diff --git a/bindings/python/test_m68k.py b/bindings/python/test_m68k.py
index 8ae1f58..43961dd 100755
--- a/bindings/python/test_m68k.py
+++ b/bindings/python/test_m68k.py
@@ -39,7 +39,7 @@
 
 	16: "Absolute Data Addressing  - Short",
 	17: "Absolute Data Addressing  - Long",
-	18: "Immidate value",
+	18: "Immediate value",
 }
 
 def print_insn_detail(insn):
@@ -50,19 +50,9 @@
     for i, op in enumerate(insn.operands):
         if op.type == M68K_OP_REG:
             print("\t\toperands[%u].type: REG = %s" % (i, insn.reg_name(op.reg)))
-
-        if op.type == M68K_OP_IMM:
-            if insn.op_size.type == M68K_SIZE_TYPE_FPU:
-                if insn.op_size.size == M68K_FPU_SIZE_SINGLE:
-                    print("\t\toperands[%u].type: IMM = %f" % (i, op.simm))
-                elif insn.op_size.size == M68K_FPU_SIZE_DOUBLE:
-                    print("\t\toperands[%u].type: IMM = %lf" % (i, op.dimm))
-                else:
-                    print("\t\toperands[%u].type: IMM = <unsupported>" % (i))
-                continue
+        elif op.type == M68K_OP_IMM:
             print("\t\toperands[%u].type: IMM = 0x%x" % (i, op.imm & 0xffffffff))
-
-        if op.type == M68K_OP_MEM:
+        elif op.type == M68K_OP_MEM:
             print("\t\toperands[%u].type: MEM" % (i))
             if op.mem.base_reg != M68K_REG_INVALID:
                 print("\t\t\toperands[%u].mem.base: REG = %s" % (i, insn.reg_name(op.mem.base_reg)))
@@ -77,6 +67,12 @@
             if op.mem.scale != 0:
                 print("\t\t\toperands[%u].mem.scale: %d" % (i, op.mem.scale))
             print("\t\taddress mode: %s" % (s_addressing_modes[op.address_mode]))
+        elif op.type == M68K_OP_FP_SINGLE:
+            print("\t\toperands[%u].type: FP_SINGLE" % i)
+            print("\t\toperands[%u].simm: %f", i, op.simm)
+        elif op.type == M68K_OP_FP_DOUBLE:
+            print("\t\toperands[%u].type: FP_DOUBLE" % i)
+            print("\t\toperands[%u].dimm: %lf", i, op.dimm)
     print()
 
 # ## Test class Cs
diff --git a/bindings/python/test_skipdata.py b/bindings/python/test_skipdata.py
index 0caa20b..3b8dd75 100755
--- a/bindings/python/test_skipdata.py
+++ b/bindings/python/test_skipdata.py
@@ -12,8 +12,8 @@
 RANDOM_CODE = b"\xed\x00\x00\x00\x00\x1a\x5a\x0f\x1f\xff\xc2\x09\x80\x00\x00\x00\x07\xf7\xeb\x2a\xff\xff\x7f\x57\xe3\x01\xff\xff\x7f\x57\xeb\x00\xf0\x00\x00\x24\xb2\x4f\x00\x78"
 
 all_tests = (
-        (CS_ARCH_X86, CS_MODE_32, X86_CODE32, "X86 32 (Intel syntax)", 0),
-        (CS_ARCH_ARM, CS_MODE_ARM, RANDOM_CODE, "Arm", 0),
+        (CS_ARCH_X86, CS_MODE_32, X86_CODE32, "X86 32 (Intel syntax)", None),
+        (CS_ARCH_ARM, CS_MODE_ARM, RANDOM_CODE, "Arm", None),
 )
 
 
@@ -34,7 +34,7 @@
         try:
             md = Cs(arch, mode)
 
-            if syntax != 0:
+            if syntax is not None:
                 md.syntax = syntax
 
             md.skipdata = True
diff --git a/bindings/python/test_x86.py b/bindings/python/test_x86.py
index 3b77c75..e630eeb 100755
--- a/bindings/python/test_x86.py
+++ b/bindings/python/test_x86.py
@@ -12,10 +12,10 @@
 X86_CODE32 = b"\x8d\x4c\x32\x08\x01\xd8\x81\xc6\x34\x12\x00\x00\x05\x23\x01\x00\x00\x36\x8b\x84\x91\x23\x01\x00\x00\x41\x8d\x84\x39\x89\x67\x00\x00\x8d\x87\x89\x67\x00\x00\xb4\xc6"
 
 all_tests = (
-        (CS_ARCH_X86, CS_MODE_16, X86_CODE16, "X86 16bit (Intel syntax)", 0),
+        (CS_ARCH_X86, CS_MODE_16, X86_CODE16, "X86 16bit (Intel syntax)", None),
         (CS_ARCH_X86, CS_MODE_32, X86_CODE32, "X86 32 (AT&T syntax)", CS_OPT_SYNTAX_ATT),
-        (CS_ARCH_X86, CS_MODE_32, X86_CODE32, "X86 32 (Intel syntax)", 0),
-        (CS_ARCH_X86, CS_MODE_64, X86_CODE64, "X86 64 (Intel syntax)", 0),
+        (CS_ARCH_X86, CS_MODE_32, X86_CODE32, "X86 32 (Intel syntax)", None),
+        (CS_ARCH_X86, CS_MODE_64, X86_CODE64, "X86 64 (Intel syntax)", None),
         )
 
 
@@ -157,7 +157,7 @@
             md = Cs(arch, mode)
             md.detail = True
 
-            if syntax != 0:
+            if syntax is not None:
                 md.syntax = syntax
 
             for insn in md.disasm(code, 0x1000):
diff --git a/contrib/cs_driver/README b/contrib/cs_driver/README
new file mode 100644
index 0000000..f9a268a
--- /dev/null
+++ b/contrib/cs_driver/README
@@ -0,0 +1,5 @@
+This directory contains a sample project for using Capstone from a Windows 
+driver. Open cs_driver.sln with Visual Studio 2013 or newer and see cs_driver.c 
+for details.
+
+For prerequisites to compile Capstone for drivers, see COMPILE_MSVC.TXT.
diff --git a/contrib/cs_driver/cs_driver.sln b/contrib/cs_driver/cs_driver.sln
new file mode 100644
index 0000000..f36afa1
--- /dev/null
+++ b/contrib/cs_driver/cs_driver.sln
@@ -0,0 +1,49 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2013
+VisualStudioVersion = 12.0.40629.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cs_driver", "cs_driver\cs_driver.vcxproj", "{F29A9424-0ECD-4FFE-9CB7-C844756373BB}"
+	ProjectSection(ProjectDependencies) = postProject
+		{FE197816-EF84-4E8D-B29D-E0A6BA2B144B} = {FE197816-EF84-4E8D-B29D-E0A6BA2B144B}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "capstone_static_winkernel", "..\..\msvc\capstone_static_winkernel\capstone_static_winkernel.vcxproj", "{FE197816-EF84-4E8D-B29D-E0A6BA2B144B}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Debug|x64 = Debug|x64
+		Release|Win32 = Release|Win32
+		Release|x64 = Release|x64
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{F29A9424-0ECD-4FFE-9CB7-C844756373BB}.Debug|Win32.ActiveCfg = Debug|Win32
+		{F29A9424-0ECD-4FFE-9CB7-C844756373BB}.Debug|Win32.Build.0 = Debug|Win32
+		{F29A9424-0ECD-4FFE-9CB7-C844756373BB}.Debug|Win32.Deploy.0 = Debug|Win32
+		{F29A9424-0ECD-4FFE-9CB7-C844756373BB}.Debug|x64.ActiveCfg = Debug|x64
+		{F29A9424-0ECD-4FFE-9CB7-C844756373BB}.Debug|x64.Build.0 = Debug|x64
+		{F29A9424-0ECD-4FFE-9CB7-C844756373BB}.Debug|x64.Deploy.0 = Debug|x64
+		{F29A9424-0ECD-4FFE-9CB7-C844756373BB}.Release|Win32.ActiveCfg = Release|Win32
+		{F29A9424-0ECD-4FFE-9CB7-C844756373BB}.Release|Win32.Build.0 = Release|Win32
+		{F29A9424-0ECD-4FFE-9CB7-C844756373BB}.Release|Win32.Deploy.0 = Release|Win32
+		{F29A9424-0ECD-4FFE-9CB7-C844756373BB}.Release|x64.ActiveCfg = Release|x64
+		{F29A9424-0ECD-4FFE-9CB7-C844756373BB}.Release|x64.Build.0 = Release|x64
+		{F29A9424-0ECD-4FFE-9CB7-C844756373BB}.Release|x64.Deploy.0 = Release|x64
+		{FE197816-EF84-4E8D-B29D-E0A6BA2B144B}.Debug|Win32.ActiveCfg = Debug|Win32
+		{FE197816-EF84-4E8D-B29D-E0A6BA2B144B}.Debug|Win32.Build.0 = Debug|Win32
+		{FE197816-EF84-4E8D-B29D-E0A6BA2B144B}.Debug|Win32.Deploy.0 = Debug|Win32
+		{FE197816-EF84-4E8D-B29D-E0A6BA2B144B}.Debug|x64.ActiveCfg = Debug|x64
+		{FE197816-EF84-4E8D-B29D-E0A6BA2B144B}.Debug|x64.Build.0 = Debug|x64
+		{FE197816-EF84-4E8D-B29D-E0A6BA2B144B}.Debug|x64.Deploy.0 = Debug|x64
+		{FE197816-EF84-4E8D-B29D-E0A6BA2B144B}.Release|Win32.ActiveCfg = Release|Win32
+		{FE197816-EF84-4E8D-B29D-E0A6BA2B144B}.Release|Win32.Build.0 = Release|Win32
+		{FE197816-EF84-4E8D-B29D-E0A6BA2B144B}.Release|Win32.Deploy.0 = Release|Win32
+		{FE197816-EF84-4E8D-B29D-E0A6BA2B144B}.Release|x64.ActiveCfg = Release|x64
+		{FE197816-EF84-4E8D-B29D-E0A6BA2B144B}.Release|x64.Build.0 = Release|x64
+		{FE197816-EF84-4E8D-B29D-E0A6BA2B144B}.Release|x64.Deploy.0 = Release|x64
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/contrib/cs_driver/cs_driver/cs_driver.c b/contrib/cs_driver/cs_driver/cs_driver.c
new file mode 100644
index 0000000..11a129f
--- /dev/null
+++ b/contrib/cs_driver/cs_driver/cs_driver.c
@@ -0,0 +1,99 @@
+/* Capstone Driver */
+/* By Satoshi Tanda <tanda.sat@gmail.com>, 2016 */
+
+// Firstly, compile capstone_static_winkernel and
+// generate capstone_static_winkernel.lib. It can be done by adding the
+// capstone_static_winkernel project to your solution and compiling it first.
+//
+// Then, configure your driver project (cs_driver in this example) to locate to
+// capstone.h and capstone_static_winkernel.lib. To do it, open project
+// properties of the project and set Configuration to "All Configurations" and
+// Platform to "All Platforms". Then, add the following entries:
+//    - C/C++ > General > Additional Include Directories
+//      - $(SolutionDir)capstone\include
+//    - Linker > Input > Additional Dependencies
+//      - $(OutDir)capstone_static_winkernel.lib
+//      - ntstrsafe.lib
+//
+// Note that ntstrsafe.lib is required to resolve __fltused indirectly used in
+// Capstone.
+
+#include <ntddk.h>
+#include <capstone/capstone.h>
+
+// 'conversion' : from function pointer 'type1' to data pointer 'type2'
+#pragma warning(disable : 4054)
+
+
+DRIVER_INITIALIZE DriverEntry;
+static NTSTATUS cs_driver_hello();
+
+
+// Driver entry point
+EXTERN_C NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject,
+                              PUNICODE_STRING RegistryPath) {
+  printf("Entering DriverEntry()\n");
+
+  cs_driver_hello();
+
+  printf("Leaving DriverEntry()\n");
+  return STATUS_CANCELLED;
+}
+
+// Hello, Capstone!
+static NTSTATUS cs_driver_hello() {
+  csh handle;
+  cs_insn *insn;
+  size_t count;
+  KFLOATING_SAVE float_save;
+  NTSTATUS status = STATUS_UNSUCCESSFUL;
+
+  // Any of Capstone APIs cannot be called at IRQL higher than DISPATCH_LEVEL
+  // since our malloc implementation based on ExAllocatePoolWithTag() is not able
+  // to allocate memory at higher IRQL than the DISPATCH_LEVEL level.
+  NT_ASSERT(KeGetCurrentIrql() <= DISPATCH_LEVEL);
+
+  // On a 32bit driver, KeSaveFloatingPointState() is required before using any
+  // Capstone function because Capstone can access to the MMX/x87 registers and
+  // 32bit Windows requires drivers to use KeSaveFloatingPointState() before and
+  // KeRestoreFloatingPointState() after accesing to them. See "Using Floating
+  // Point or MMX in a WDM Driver" on MSDN for more details.
+  status = KeSaveFloatingPointState(&float_save);
+  if (!NT_SUCCESS(status)) {
+    return status;
+  }
+
+  // Do stuff just like user-mode. All functionalites are supported.
+  if (cs_open(CS_ARCH_X86, (sizeof(void *) == 4) ? CS_MODE_32 : CS_MODE_64,
+              &handle) != CS_ERR_OK) {
+    goto exit;
+  }
+
+  count = cs_disasm(handle, (uint8_t *)&cs_driver_hello, 0x80,
+                    (uint64_t)&cs_driver_hello, 0, &insn);
+  if (count > 0) {
+    printf("cs_driver!cs_driver_hello:\n");
+    for (size_t j = 0; j < count; j++) {
+      printf("0x%p\t%s\t\t%s\n", (void *)(uintptr_t)insn[j].address,
+             insn[j].mnemonic, insn[j].op_str);
+    }
+    cs_free(insn, count);
+  }
+  cs_close(&handle);
+
+exit:;
+  // Restores the nonvolatile floating-point context.
+  KeRestoreFloatingPointState(&float_save);
+  return status;
+}
+
+// printf()
+_Use_decl_annotations_ int __cdecl printf(const char *_Format, ...) {
+  NTSTATUS status;
+  va_list args;
+
+  va_start(args, _Format);
+  status = vDbgPrintEx(DPFLTR_DEFAULT_ID, DPFLTR_ERROR_LEVEL, _Format, args);
+  va_end(args);
+  return NT_SUCCESS(status);
+}
diff --git a/contrib/cs_driver/cs_driver/cs_driver.vcxproj b/contrib/cs_driver/cs_driver/cs_driver.vcxproj
new file mode 100644
index 0000000..623040c
--- /dev/null
+++ b/contrib/cs_driver/cs_driver/cs_driver.vcxproj
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{F29A9424-0ECD-4FFE-9CB7-C844756373BB}</ProjectGuid>
+    <TemplateGuid>{1bc93793-694f-48fe-9372-81e2b05556fd}</TemplateGuid>
+    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <MinimumVisualStudioVersion>11.0</MinimumVisualStudioVersion>
+    <Configuration>Win8.1 Debug</Configuration>
+    <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+    <RootNamespace>cs_driver</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <TargetVersion>Windows7</TargetVersion>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+    <ConfigurationType>Driver</ConfigurationType>
+    <DriverType>KMDF</DriverType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <TargetVersion>Windows7</TargetVersion>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+    <ConfigurationType>Driver</ConfigurationType>
+    <DriverType>KMDF</DriverType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <TargetVersion>Windows7</TargetVersion>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+    <ConfigurationType>Driver</ConfigurationType>
+    <DriverType>KMDF</DriverType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <TargetVersion>Windows7</TargetVersion>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+    <ConfigurationType>Driver</ConfigurationType>
+    <DriverType>KMDF</DriverType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)'  == ''">trace.h</WppScanConfigurationData>
+      <WppKernelMode>true</WppKernelMode>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\include;$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>$(OutDir)capstone_static_winkernel.lib;ntstrsafe.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)'  == ''">trace.h</WppScanConfigurationData>
+      <WppKernelMode>true</WppKernelMode>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\include;$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>$(OutDir)capstone_static_winkernel.lib;ntstrsafe.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)'  == ''">trace.h</WppScanConfigurationData>
+      <WppKernelMode>true</WppKernelMode>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\include;$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>$(OutDir)capstone_static_winkernel.lib;ntstrsafe.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)'  == ''">trace.h</WppScanConfigurationData>
+      <WppKernelMode>true</WppKernelMode>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\include;$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>$(OutDir)capstone_static_winkernel.lib;ntstrsafe.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+    <FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="cs_driver.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/contrib/cs_driver/cs_driver/cs_driver.vcxproj.filters b/contrib/cs_driver/cs_driver/cs_driver.vcxproj.filters
new file mode 100644
index 0000000..2949111
--- /dev/null
+++ b/contrib/cs_driver/cs_driver/cs_driver.vcxproj.filters
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+    </Filter>
+    <Filter Include="Driver Files">
+      <UniqueIdentifier>{8E41214B-6785-4CFE-B992-037D68949A14}</UniqueIdentifier>
+      <Extensions>inf;inv;inx;mof;mc;</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="cs_driver.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/contrib/objdump/objdump-m68k.py b/contrib/objdump/objdump-m68k.py
index fd59d7c..3454de3 100644
--- a/contrib/objdump/objdump-m68k.py
+++ b/contrib/objdump/objdump-m68k.py
@@ -141,7 +141,7 @@
         return format("0x%x" % (extsign1616(op.imm & 0xffff)))  
     if op.address_mode == M68K_AM_ABSOLUTE_DATA_LONG:
         return format("0x%x" % (op.imm & 0xffffffff))
-    if op.address_mode == M68K_AM_IMMIDIATE: 
+    if op.address_mode == M68K_AM_IMMEDIATE:
         if insn.op_size.type == M68K_SIZE_TYPE_FPU:
             map_fpu_size_str = { M68K_FPU_SIZE_SINGLE : op.simm, M68K_FPU_SIZE_DOUBLE : op.dimm }
             return format("#%f" % (insn.op_size.fpu_size[map_fpu_size_str]))
@@ -278,7 +278,7 @@
     15 : "M68K_AM_PC_MEMI_PRE_INDEX",
     16 : "M68K_AM_ABSOLUTE_DATA_SHORT",
     17 : "M68K_AM_ABSOLUTE_DATA_LONG",
-    18 : "M68K_AM_IMMIDIATE",
+    18 : "M68K_AM_IMMEDIATE",
     }
 
 
diff --git a/cs.c b/cs.c
index 1fbb2fb..c3becd8 100644
--- a/cs.c
+++ b/cs.c
@@ -17,7 +17,26 @@
 #include "utils.h"
 #include "MCRegisterInfo.h"
 
-#if !defined(CAPSTONE_HAS_OSXKERNEL) && !defined(CAPSTONE_DIET)
+#if defined(_KERNEL_MODE)
+#include "windows\winkernel_mm.h"
+#endif
+
+// Issue #681: Windows kernel does not support formatting float point
+#if defined(_KERNEL_MODE) && !defined(CAPSTONE_DIET)
+#if defined(CAPSTONE_HAS_ARM) || defined(CAPSTONE_HAS_ARM64) || defined(CAPSTONE_HAS_M68K)
+#define CAPSTONE_STR_INTERNAL(x) #x
+#define CAPSTONE_STR(x) CAPSTONE_STR_INTERNAL(x)
+#define CAPSTONE_MSVC_WRANING_PREFIX __FILE__ "("CAPSTONE_STR(__LINE__)") : warning message : "
+
+#pragma message(CAPSTONE_MSVC_WRANING_PREFIX "Windows driver does not support full features for selected architecture(s). Define CAPSTONE_DIET to compile Capstone with only supported features. See issue #681 for details.")
+
+#undef CAPSTONE_MSVC_WRANING_PREFIX
+#undef CAPSTONE_STR
+#undef CAPSTONE_STR_INTERNAL
+#endif
+#endif	// defined(_KERNEL_MODE) && !defined(CAPSTONE_DIET)
+
+#if !defined(CAPSTONE_HAS_OSXKERNEL) && !defined(CAPSTONE_DIET) && !defined(_KERNEL_MODE)
 #define INSN_CACHE_SIZE 32
 #else
 // reduce stack variable size for kernel/firmware
@@ -82,18 +101,29 @@
 
 unsigned int all_arch = 0;
 
-#ifdef CAPSTONE_USE_SYS_DYN_MEM
-#ifndef CAPSTONE_HAS_OSXKERNEL
+#if defined(CAPSTONE_USE_SYS_DYN_MEM)
+#if !defined(CAPSTONE_HAS_OSXKERNEL) && !defined(_KERNEL_MODE)
+// default
 cs_malloc_t cs_mem_malloc = malloc;
 cs_calloc_t cs_mem_calloc = calloc;
 cs_realloc_t cs_mem_realloc = realloc;
 cs_free_t cs_mem_free = free;
 #if defined(_WIN32_WCE)
 cs_vsnprintf_t cs_vsnprintf = _vsnprintf;
-#else // !_WIN32_WCE
-cs_vsnprintf_t cs_vsnprintf = vsnprintf;
-#endif // _WIN32_WCE
 #else
+cs_vsnprintf_t cs_vsnprintf = vsnprintf;
+#endif  // defined(_WIN32_WCE)
+
+#elif defined(_KERNEL_MODE)
+// Windows driver
+cs_malloc_t cs_mem_malloc = cs_winkernel_malloc;
+cs_calloc_t cs_mem_calloc = cs_winkernel_calloc;
+cs_realloc_t cs_mem_realloc = cs_winkernel_realloc;
+cs_free_t cs_mem_free = cs_winkernel_free;
+cs_vsnprintf_t cs_vsnprintf = cs_winkernel_vsnprintf;
+
+#else
+// OSX kernel
 extern void* kern_os_malloc(size_t size);
 extern void kern_os_free(void* addr);
 extern void* kern_os_realloc(void* addr, size_t nsize);
@@ -108,17 +138,20 @@
 cs_realloc_t cs_mem_realloc = kern_os_realloc;
 cs_free_t cs_mem_free = kern_os_free;
 cs_vsnprintf_t cs_vsnprintf = vsnprintf;
-#endif
+
+#endif  // !defined(CAPSTONE_HAS_OSXKERNEL) && !defined(_KERNEL_MODE)
 #else
+// User-defined
 cs_malloc_t cs_mem_malloc = NULL;
 cs_calloc_t cs_mem_calloc = NULL;
 cs_realloc_t cs_mem_realloc = NULL;
 cs_free_t cs_mem_free = NULL;
 cs_vsnprintf_t cs_vsnprintf = NULL;
-#endif
+
+#endif  // defined(CAPSTONE_USE_SYS_DYN_MEM)
 
 CAPSTONE_EXPORT
-unsigned int cs_version(int *major, int *minor)
+unsigned int CAPSTONE_API cs_version(int *major, int *minor)
 {
 	archs_enable();
 
@@ -131,7 +164,7 @@
 }
 
 CAPSTONE_EXPORT
-bool cs_support(int query)
+bool CAPSTONE_API cs_support(int query)
 {
 	archs_enable();
 
@@ -165,7 +198,7 @@
 }
 
 CAPSTONE_EXPORT
-cs_err cs_errno(csh handle)
+cs_err CAPSTONE_API cs_errno(csh handle)
 {
 	struct cs_struct *ud;
 	if (!handle)
@@ -177,7 +210,7 @@
 }
 
 CAPSTONE_EXPORT
-const char *cs_strerror(cs_err code)
+const char * CAPSTONE_API cs_strerror(cs_err code)
 {
 	switch(code) {
 		default:
@@ -216,7 +249,7 @@
 }
 
 CAPSTONE_EXPORT
-cs_err cs_open(cs_arch arch, cs_mode mode, csh *handle)
+cs_err CAPSTONE_API cs_open(cs_arch arch, cs_mode mode, csh *handle)
 {
 	cs_err err;
 	struct cs_struct *ud;
@@ -237,7 +270,7 @@
 		ud->errnum = CS_ERR_OK;
 		ud->arch = arch;
 		ud->mode = mode;
-		ud->big_endian = mode & CS_MODE_BIG_ENDIAN;
+		ud->big_endian = (mode & CS_MODE_BIG_ENDIAN) != 0;
 		// by default, do not break instruction into details
 		ud->detail = CS_OPT_OFF;
 
@@ -261,7 +294,7 @@
 }
 
 CAPSTONE_EXPORT
-cs_err cs_close(csh *handle)
+cs_err CAPSTONE_API cs_close(csh *handle)
 {
 	struct cs_struct *ud;
 	struct insn_mnem *next, *tmp;
@@ -302,7 +335,7 @@
 #ifndef CAPSTONE_DIET
 	char *sp, *mnem;
 #endif
-	unsigned int copy_size = MIN(sizeof(insn->bytes), insn->size);
+	uint16_t copy_size = MIN(sizeof(insn->bytes), insn->size);
 
 	// fill the instruction bytes.
 	// we might skip some redundant bytes in front in the case of X86
@@ -367,7 +400,7 @@
 	switch(handle->arch) {
 		default:
 			// should never reach
-			return -1;
+			return (uint8_t)-1;
 		case CS_ARCH_ARM:
 			// skip 2 bytes on Thumb mode.
 			if (handle->mode & CS_MODE_THUMB)
@@ -398,7 +431,7 @@
 }
 
 CAPSTONE_EXPORT
-cs_err cs_option(csh ud, cs_opt_type type, size_t value)
+cs_err CAPSTONE_API cs_option(csh ud, cs_opt_type type, size_t value)
 {
 	struct cs_struct *handle;
 	cs_opt_mnem *opt;
@@ -516,25 +549,34 @@
 	char *p = opstr;
 	int len;
 	size_t i;
+	size_t available = sizeof(((cs_insn*)NULL)->op_str);
 
 	if (!size) {
 		opstr[0] = '\0';
 		return;
 	}
 
-	len = sprintf(p, "0x%02x", buffer[0]);
+	len = cs_snprintf(p, available, "0x%02x", buffer[0]);
 	p+= len;
+	available -= len;
 
 	for(i = 1; i < size; i++) {
-		len = sprintf(p, ", 0x%02x", buffer[i]);
+		len = cs_snprintf(p, available, ", 0x%02x", buffer[i]);
+		if (len < 0) {
+			break;
+		}
+		if ((size_t)len > available - 1) {
+			break;
+		}
 		p+= len;
+		available -= len;
 	}
 }
 
 // dynamicly allocate memory to contain disasm insn
 // NOTE: caller must free() the allocated memory itself to avoid memory leaking
 CAPSTONE_EXPORT
-size_t cs_disasm(csh ud, const uint8_t *buffer, size_t size, uint64_t offset, size_t count, cs_insn **insn)
+size_t CAPSTONE_API cs_disasm(csh ud, const uint8_t *buffer, size_t size, uint64_t offset, size_t count, cs_insn **insn)
 {
 	struct cs_struct *handle;
 	MCInst mci;
@@ -620,9 +662,12 @@
 			handle->insn_id(handle, insn_cache, mci.Opcode);
 
 			handle->printer(&mci, &ss, handle->printer_info);
-
 			fill_insn(handle, insn_cache, ss.buffer, &mci, handle->post_printer, buffer);
 
+			// adjust for pseudo opcode (X86)
+			if (handle->arch == CS_ARCH_X86)
+				insn_cache->id += mci.popcode_adjust;
+
 			next_offset = insn_size;
 		} else	{
 			// encounter a broken instruction
@@ -736,13 +781,13 @@
 
 CAPSTONE_EXPORT
 CAPSTONE_DEPRECATED
-size_t cs_disasm_ex(csh ud, const uint8_t *buffer, size_t size, uint64_t offset, size_t count, cs_insn **insn)
+size_t CAPSTONE_API cs_disasm_ex(csh ud, const uint8_t *buffer, size_t size, uint64_t offset, size_t count, cs_insn **insn)
 {
 	return cs_disasm(ud, buffer, size, offset, count, insn);
 }
 
 CAPSTONE_EXPORT
-void cs_free(cs_insn *insn, size_t count)
+void CAPSTONE_API cs_free(cs_insn *insn, size_t count)
 {
 	size_t i;
 
@@ -755,7 +800,7 @@
 }
 
 CAPSTONE_EXPORT
-cs_insn *cs_malloc(csh ud)
+cs_insn * CAPSTONE_API cs_malloc(csh ud)
 {
 	cs_insn *insn;
 	struct cs_struct *handle = (struct cs_struct *)(uintptr_t)ud;
@@ -783,7 +828,7 @@
 
 // iterator for instruction "single-stepping"
 CAPSTONE_EXPORT
-bool cs_disasm_iter(csh ud, const uint8_t **code, size_t *size,
+bool CAPSTONE_API cs_disasm_iter(csh ud, const uint8_t **code, size_t *size,
 		uint64_t *address, cs_insn *insn)
 {
 	struct cs_struct *handle;
@@ -827,6 +872,10 @@
 
 		fill_insn(handle, insn, ss.buffer, &mci, handle->post_printer, *code);
 
+		// adjust for pseudo opcode (X86)
+		if (handle->arch == CS_ARCH_X86)
+			insn->id += mci.popcode_adjust;
+
 		*code += insn_size;
 		*size -= insn_size;
 		*address += insn_size;
@@ -870,7 +919,7 @@
 
 // return friendly name of regiser in a string
 CAPSTONE_EXPORT
-const char *cs_reg_name(csh ud, unsigned int reg)
+const char * CAPSTONE_API cs_reg_name(csh ud, unsigned int reg)
 {
 	struct cs_struct *handle = (struct cs_struct *)(uintptr_t)ud;
 
@@ -882,7 +931,7 @@
 }
 
 CAPSTONE_EXPORT
-const char *cs_insn_name(csh ud, unsigned int insn)
+const char * CAPSTONE_API cs_insn_name(csh ud, unsigned int insn)
 {
 	struct cs_struct *handle = (struct cs_struct *)(uintptr_t)ud;
 
@@ -894,7 +943,7 @@
 }
 
 CAPSTONE_EXPORT
-const char *cs_group_name(csh ud, unsigned int group)
+const char * CAPSTONE_API cs_group_name(csh ud, unsigned int group)
 {
 	struct cs_struct *handle = (struct cs_struct *)(uintptr_t)ud;
 
@@ -906,7 +955,7 @@
 }
 
 CAPSTONE_EXPORT
-bool cs_insn_group(csh ud, const cs_insn *insn, unsigned int group_id)
+bool CAPSTONE_API cs_insn_group(csh ud, const cs_insn *insn, unsigned int group_id)
 {
 	struct cs_struct *handle;
 	if (!ud)
@@ -933,7 +982,7 @@
 }
 
 CAPSTONE_EXPORT
-bool cs_reg_read(csh ud, const cs_insn *insn, unsigned int reg_id)
+bool CAPSTONE_API cs_reg_read(csh ud, const cs_insn *insn, unsigned int reg_id)
 {
 	struct cs_struct *handle;
 	if (!ud)
@@ -960,7 +1009,7 @@
 }
 
 CAPSTONE_EXPORT
-bool cs_reg_write(csh ud, const cs_insn *insn, unsigned int reg_id)
+bool CAPSTONE_API cs_reg_write(csh ud, const cs_insn *insn, unsigned int reg_id)
 {
 	struct cs_struct *handle;
 	if (!ud)
@@ -987,7 +1036,7 @@
 }
 
 CAPSTONE_EXPORT
-int cs_op_count(csh ud, const cs_insn *insn, unsigned int op_type)
+int CAPSTONE_API cs_op_count(csh ud, const cs_insn *insn, unsigned int op_type)
 {
 	struct cs_struct *handle;
 	unsigned int count = 0, i;
@@ -1063,7 +1112,7 @@
 }
 
 CAPSTONE_EXPORT
-int cs_op_index(csh ud, const cs_insn *insn, unsigned int op_type,
+int CAPSTONE_API cs_op_index(csh ud, const cs_insn *insn, unsigned int op_type,
 		unsigned int post)
 {
 	struct cs_struct *handle;
@@ -1164,7 +1213,7 @@
 }
 
 CAPSTONE_EXPORT
-cs_err cs_regs_access(csh ud, const cs_insn *insn,
+cs_err CAPSTONE_API cs_regs_access(csh ud, const cs_insn *insn,
 		cs_regs regs_read, uint8_t *regs_read_count,
 		cs_regs regs_write, uint8_t *regs_write_count)
 {
diff --git a/docs/README b/docs/README
index e2ee3c9..0865cca 100644
--- a/docs/README
+++ b/docs/README
@@ -52,9 +52,10 @@
 
 	http://capstone-engine.org/x86reduce.html
 
-* Sample application on how to embed Capstone into Windows kernel driver.
+* Sample applications on how to embed Capstone into Windows kernel driver.
 
-	https://github.com/aquynh/KernelProject
+	https://github.com/aquynh/capstone/tree/master/contrib/cs_driver (in C, basic)
+	https://github.com/aquynh/KernelProject (in C++)
 
 * Sample application on how to embed Capstone into Mac OSX Kext (kernel).
 
diff --git a/include/capstone/capstone.h b/include/capstone/capstone.h
index d6b88a4..11eb8b4 100644
--- a/include/capstone/capstone.h
+++ b/include/capstone/capstone.h
@@ -9,6 +9,7 @@
 #endif
 
 #include <stdarg.h>
+
 #if defined(CAPSTONE_HAS_OSXKERNEL)
 #include <libkern/libkern.h>
 #else
@@ -21,12 +22,14 @@
 #ifdef _MSC_VER
 #pragma warning(disable:4201)
 #pragma warning(disable:4100)
+#define CAPSTONE_API __cdecl
 #ifdef CAPSTONE_SHARED
 #define CAPSTONE_EXPORT __declspec(dllexport)
 #else    // defined(CAPSTONE_STATIC)
 #define CAPSTONE_EXPORT
 #endif
 #else
+#define CAPSTONE_API
 #ifdef __GNUC__
 #define CAPSTONE_EXPORT __attribute__((visibility("default")))
 #else
@@ -113,11 +116,11 @@
 	CS_MODE_MIPS64 = CS_MODE_64,	// Mips64 ISA (Mips)
 } cs_mode;
 
-typedef void* (*cs_malloc_t)(size_t size);
-typedef void* (*cs_calloc_t)(size_t nmemb, size_t size);
-typedef void* (*cs_realloc_t)(void *ptr, size_t size);
-typedef void (*cs_free_t)(void *ptr);
-typedef int (*cs_vsnprintf_t)(char *str, size_t size, const char *format, va_list ap);
+typedef void* (CAPSTONE_API *cs_malloc_t)(size_t size);
+typedef void* (CAPSTONE_API *cs_calloc_t)(size_t nmemb, size_t size);
+typedef void* (CAPSTONE_API *cs_realloc_t)(void *ptr, size_t size);
+typedef void (CAPSTONE_API *cs_free_t)(void *ptr);
+typedef int (CAPSTONE_API *cs_vsnprintf_t)(char *str, size_t size, const char *format, va_list ap);
 
 
 // User-defined dynamic memory related functions: malloc/calloc/realloc/free/vsnprintf()
@@ -143,7 +146,8 @@
 
 // Runtime option for the disassembled engine
 typedef enum cs_opt_type {
-	CS_OPT_SYNTAX = 1,	// Assembly output syntax
+	CS_OPT_INVALID = 0,	// No option specified
+	CS_OPT_SYNTAX,	// Assembly output syntax
 	CS_OPT_DETAIL,	// Break down instruction structure into details
 	CS_OPT_MODE,	// Change engine's mode at run-time
 	CS_OPT_MEM,	// User-defined dynamic memory related functions
@@ -206,7 +210,7 @@
 
  @return: return number of bytes to skip, or 0 to immediately stop disassembling.
 */
-typedef size_t (*cs_skipdata_cb_t)(const uint8_t *code, size_t code_size, size_t offset, void *user_data);
+typedef size_t (CAPSTONE_API *cs_skipdata_cb_t)(const uint8_t *code, size_t code_size, size_t offset, void *user_data);
 
 // User-customized setup for SKIPDATA option
 typedef struct cs_opt_skipdata {
@@ -357,7 +361,7 @@
  set both @major & @minor arguments to NULL.
 */
 CAPSTONE_EXPORT
-unsigned int cs_version(int *major, int *minor);
+unsigned int CAPSTONE_API cs_version(int *major, int *minor);
 
 
 /*
@@ -374,7 +378,7 @@
  @return True if this library supports the given arch, or in 'diet' mode.
 */
 CAPSTONE_EXPORT
-bool cs_support(int query);
+bool CAPSTONE_API cs_support(int query);
 
 /*
  Initialize CS handle: this must be done before any usage of CS.
@@ -387,7 +391,7 @@
  for detailed error).
 */
 CAPSTONE_EXPORT
-cs_err cs_open(cs_arch arch, cs_mode mode, csh *handle);
+cs_err CAPSTONE_API cs_open(cs_arch arch, cs_mode mode, csh *handle);
 
 /*
  Close CS handle: MUST do to release the handle when it is not used anymore.
@@ -404,7 +408,7 @@
  for detailed error).
 */
 CAPSTONE_EXPORT
-cs_err cs_close(csh *handle);
+cs_err CAPSTONE_API cs_close(csh *handle);
 
 /*
  Set option for disassembling engine at runtime
@@ -421,7 +425,7 @@
  even before cs_open()
 */
 CAPSTONE_EXPORT
-cs_err cs_option(csh handle, cs_opt_type type, size_t value);
+cs_err CAPSTONE_API cs_option(csh handle, cs_opt_type type, size_t value);
 
 /*
  Report the last error number when some API function fail.
@@ -432,7 +436,7 @@
  @return: error code of cs_err enum type (CS_ERR_*, see above)
 */
 CAPSTONE_EXPORT
-cs_err cs_errno(csh handle);
+cs_err CAPSTONE_API cs_errno(csh handle);
 
 
 /*
@@ -444,7 +448,7 @@
 	passed in the argument @code
 */
 CAPSTONE_EXPORT
-const char *cs_strerror(cs_err code);
+const char * CAPSTONE_API cs_strerror(cs_err code);
 
 /*
  Disassemble binary code, given the code buffer, size, address and number
@@ -480,7 +484,7 @@
  On failure, call cs_errno() for error code.
 */
 CAPSTONE_EXPORT
-size_t cs_disasm(csh handle,
+size_t CAPSTONE_API cs_disasm(csh handle,
 		const uint8_t *code, size_t code_size,
 		uint64_t address,
 		size_t count,
@@ -492,7 +496,7 @@
 */
 CAPSTONE_EXPORT
 CAPSTONE_DEPRECATED
-size_t cs_disasm_ex(csh handle,
+size_t CAPSTONE_API cs_disasm_ex(csh handle,
 		const uint8_t *code, size_t code_size,
 		uint64_t address,
 		size_t count,
@@ -506,7 +510,7 @@
      to free memory allocated by cs_malloc().
 */
 CAPSTONE_EXPORT
-void cs_free(cs_insn *insn, size_t count);
+void CAPSTONE_API cs_free(cs_insn *insn, size_t count);
 
 
 /*
@@ -518,7 +522,7 @@
  this instruction with cs_free(insn, 1)
 */
 CAPSTONE_EXPORT
-cs_insn *cs_malloc(csh handle);
+cs_insn * CAPSTONE_API cs_malloc(csh handle);
 
 /*
  Fast API to disassemble binary code, given the code buffer, size, address
@@ -556,7 +560,7 @@
  On failure, call cs_errno() for error code.
 */
 CAPSTONE_EXPORT
-bool cs_disasm_iter(csh handle,
+bool CAPSTONE_API cs_disasm_iter(csh handle,
 	const uint8_t **code, size_t *size,
 	uint64_t *address, cs_insn *insn);
 
@@ -574,7 +578,7 @@
  @return: string name of the register, or NULL if @reg_id is invalid.
 */
 CAPSTONE_EXPORT
-const char *cs_reg_name(csh handle, unsigned int reg_id);
+const char * CAPSTONE_API cs_reg_name(csh handle, unsigned int reg_id);
 
 /*
  Return friendly name of an instruction in a string.
@@ -589,7 +593,7 @@
  @return: string name of the instruction, or NULL if @insn_id is invalid.
 */
 CAPSTONE_EXPORT
-const char *cs_insn_name(csh handle, unsigned int insn_id);
+const char * CAPSTONE_API cs_insn_name(csh handle, unsigned int insn_id);
 
 /*
  Return friendly name of a group id (that an instruction can belong to)
@@ -604,7 +608,7 @@
  @return: string name of the group, or NULL if @group_id is invalid.
 */
 CAPSTONE_EXPORT
-const char *cs_group_name(csh handle, unsigned int group_id);
+const char * CAPSTONE_API cs_group_name(csh handle, unsigned int group_id);
 
 /*
  Check if a disassembled instruction belong to a particular group.
@@ -623,7 +627,7 @@
  @return: true if this instruction indeed belongs to aboved group, or false otherwise.
 */
 CAPSTONE_EXPORT
-bool cs_insn_group(csh handle, const cs_insn *insn, unsigned int group_id);
+bool CAPSTONE_API cs_insn_group(csh handle, const cs_insn *insn, unsigned int group_id);
 
 /*
  Check if a disassembled instruction IMPLICITLY used a particular register.
@@ -641,7 +645,7 @@
  @return: true if this instruction indeed implicitly used aboved register, or false otherwise.
 */
 CAPSTONE_EXPORT
-bool cs_reg_read(csh handle, const cs_insn *insn, unsigned int reg_id);
+bool CAPSTONE_API cs_reg_read(csh handle, const cs_insn *insn, unsigned int reg_id);
 
 /*
  Check if a disassembled instruction IMPLICITLY modified a particular register.
@@ -659,7 +663,7 @@
  @return: true if this instruction indeed implicitly modified aboved register, or false otherwise.
 */
 CAPSTONE_EXPORT
-bool cs_reg_write(csh handle, const cs_insn *insn, unsigned int reg_id);
+bool CAPSTONE_API cs_reg_write(csh handle, const cs_insn *insn, unsigned int reg_id);
 
 /*
  Count the number of operands of a given type.
@@ -675,7 +679,7 @@
  or -1 on failure.
 */
 CAPSTONE_EXPORT
-int cs_op_count(csh handle, const cs_insn *insn, unsigned int op_type);
+int CAPSTONE_API cs_op_count(csh handle, const cs_insn *insn, unsigned int op_type);
 
 /*
  Retrieve the position of operand of given type in <arch>.operands[] array.
@@ -694,7 +698,7 @@
  in instruction @insn, or -1 on failure.
 */
 CAPSTONE_EXPORT
-int cs_op_index(csh handle, const cs_insn *insn, unsigned int op_type,
+int CAPSTONE_API cs_op_index(csh handle, const cs_insn *insn, unsigned int op_type,
 		unsigned int position);
 
 // Type of array to keep the list of registers
@@ -718,7 +722,7 @@
  for detailed error).
 */
 CAPSTONE_EXPORT
-cs_err cs_regs_access(csh handle, const cs_insn *insn,
+cs_err CAPSTONE_API cs_regs_access(csh handle, const cs_insn *insn,
 		cs_regs regs_read, uint8_t *regs_read_count,
 		cs_regs regs_write, uint8_t *regs_write_count);
 
diff --git a/include/capstone/m68k.h b/include/capstone/m68k.h
index 91f69e5..39d1a6a 100644
--- a/include/capstone/m68k.h
+++ b/include/capstone/m68k.h
@@ -103,7 +103,7 @@
 
 	M68K_AM_ABSOLUTE_DATA_SHORT,	// Absolute Data Addressing  - Short
 	M68K_AM_ABSOLUTE_DATA_LONG,		// Absolute Data Addressing  - Long
-	M68K_AM_IMMIDIATE,              // Immediate value
+	M68K_AM_IMMEDIATE,              // Immediate value
 } m68k_address_mode;
 
 //> Operand type for instruction's operands
@@ -112,7 +112,8 @@
 	M68K_OP_REG,         // = CS_OP_REG (Register operand).
 	M68K_OP_IMM,         // = CS_OP_IMM (Immediate operand).
 	M68K_OP_MEM,         // = CS_OP_MEM (Memory operand).
-	M68K_OP_FP,          // = CS_OP_FP  (Floating-Point operand)
+	M68K_OP_FP_SINGLE,   // single precision Floating-Point operand
+	M68K_OP_FP_DOUBLE,   // double precision Floating-Point operand
 	M68K_OP_REG_BITS,    // Register bits move
 	M68K_OP_REG_PAIR,    // Register pair in the same op (upper 4 bits for first reg, lower for second) 
 } m68k_op_type;
@@ -136,12 +137,16 @@
 // Instruction operand
 typedef struct cs_m68k_op {
 	union {
-		uint64_t imm;           // immediate value for IMM operand
+		uint64_t imm;               // immediate value for IMM operand
 		double dimm; 		    // double imm
 		float simm; 		    // float imm
 		m68k_reg reg;		    // register value for REG operand
+		struct {		    // register pair in one operand
+			m68k_reg reg_0;
+			m68k_reg reg_1;
+		} reg_pair;
 		m68k_op_mem mem; 	    // data when operand is targeting memory
-		uint32_t register_bits; // register bits for movem/cas2/etc (always in d0-d7, a0-a7, fp0 - fp7 order)
+		uint32_t register_bits; // register bits for movem etc. (always in d0-d7, a0-a7, fp0 - fp7 order)
 	};
 	m68k_op_type type;
 	m68k_address_mode address_mode;	// M68K addressing mode for this op
diff --git a/include/capstone/mips.h b/include/capstone/mips.h
index 31b6696..5a710f9 100644
--- a/include/capstone/mips.h
+++ b/include/capstone/mips.h
@@ -898,6 +898,16 @@
 	//> Generic groups
 	// all jump instructions (conditional+direct+indirect jumps)
 	MIPS_GRP_JUMP,	// = CS_GRP_JUMP
+	// all call instructions
+	MIPS_GRP_CALL,	// = CS_GRP_CALL
+	// all return instructions
+	MIPS_GRP_RET,	// = CS_GRP_RET
+	// all interrupt instructions (int+syscall)
+	MIPS_GRP_INT,	// = CS_GRP_INT
+	// all interrupt return instructions
+	MIPS_GRP_IRET,	// = CS_GRP_IRET
+	// all privileged instructions
+	MIPS_GRP_PRIVILEGE,	// = CS_GRP_PRIVILEGE
 
 	//> Architecture-specific groups
 	MIPS_GRP_BITCOUNT = 128,
diff --git a/include/capstone/platform.h b/include/capstone/platform.h
index b0a313c..7455b8a 100644
--- a/include/capstone/platform.h
+++ b/include/capstone/platform.h
@@ -1,34 +1,110 @@
 /* Capstone Disassembly Engine */
 /* By Axel Souchet & Nguyen Anh Quynh, 2014 */
 
-// handle C99 issue (for pre-2013 VisualStudio)
 #ifndef CAPSTONE_PLATFORM_H
 #define CAPSTONE_PLATFORM_H
 
-#if defined(_WIN32_WCE) && (_WIN32_WCE < 0x800)
-#include "windowsce/stdint.h"
-#else // Platforms where stdint.h is provided
-#include <stdint.h>
-#endif
 
+// handle C99 issue (for pre-2013 VisualStudio)
 #if !defined(__CYGWIN__) && !defined(__MINGW32__) && !defined(__MINGW64__) && (defined (WIN32) || defined (WIN64) || defined (_WIN32) || defined (_WIN64))
 // MSVC
 
 // stdbool.h
-#if (_MSC_VER < 1800)
+#if (_MSC_VER < 1800) || defined(_KERNEL_MODE)
+// this system does not have stdbool.h
 #ifndef __cplusplus
 typedef unsigned char bool;
 #define false 0
 #define true 1
-#endif
+#endif  // __cplusplus
 
 #else
 // VisualStudio 2013+ -> C99 is supported
 #include <stdbool.h>
-#endif
+#endif  // (_MSC_VER < 1800) || defined(_KERNEL_MODE)
 
-#else // not MSVC -> C99 is supported
+#else
+// not MSVC -> C99 is supported
 #include <stdbool.h>
-#endif
+#endif  // !defined(__CYGWIN__) && !defined(__MINGW32__) && !defined(__MINGW64__) && (defined (WIN32) || defined (WIN64) || defined (_WIN32) || defined (_WIN64))
+
+
+// handle inttypes.h / stdint.h compatibility
+#if defined(_WIN32_WCE) && (_WIN32_WCE < 0x800)
+#include "windowsce/stdint.h"
+#endif  // defined(_WIN32_WCE) && (_WIN32_WCE < 0x800)
+
+#if defined(CAPSTONE_HAS_OSXKERNEL) || (defined(_MSC_VER) && (_MSC_VER <= 1700 || defined(_KERNEL_MODE)))
+// this system does not have inttypes.h
+
+#if defined(_MSC_VER) && (_MSC_VER <= 1700 || defined(_KERNEL_MODE))
+// this system does not have stdint.h
+typedef signed char  int8_t;
+typedef signed short int16_t;
+typedef signed int   int32_t;
+typedef unsigned char  uint8_t;
+typedef unsigned short uint16_t;
+typedef unsigned int   uint32_t;
+typedef signed long long   int64_t;
+typedef unsigned long long uint64_t;
+
+#define INT8_MIN         (-127i8 - 1)
+#define INT16_MIN        (-32767i16 - 1)
+#define INT32_MIN        (-2147483647i32 - 1)
+#define INT64_MIN        (-9223372036854775807i64 - 1)
+#define INT8_MAX         127i8
+#define INT16_MAX        32767i16
+#define INT32_MAX        2147483647i32
+#define INT64_MAX        9223372036854775807i64
+#define UINT8_MAX        0xffui8
+#define UINT16_MAX       0xffffui16
+#define UINT32_MAX       0xffffffffui32
+#define UINT64_MAX       0xffffffffffffffffui64
+#endif  // defined(_MSC_VER) && (_MSC_VER <= 1700 || defined(_KERNEL_MODE))
+
+#define __PRI_8_LENGTH_MODIFIER__ "hh"
+#define __PRI_64_LENGTH_MODIFIER__ "ll"
+
+#define PRId8         __PRI_8_LENGTH_MODIFIER__ "d"
+#define PRIi8         __PRI_8_LENGTH_MODIFIER__ "i"
+#define PRIo8         __PRI_8_LENGTH_MODIFIER__ "o"
+#define PRIu8         __PRI_8_LENGTH_MODIFIER__ "u"
+#define PRIx8         __PRI_8_LENGTH_MODIFIER__ "x"
+#define PRIX8         __PRI_8_LENGTH_MODIFIER__ "X"
+
+#define PRId16        "hd"
+#define PRIi16        "hi"
+#define PRIo16        "ho"
+#define PRIu16        "hu"
+#define PRIx16        "hx"
+#define PRIX16        "hX"
+
+#if defined(_MSC_VER) && _MSC_VER <= 1700
+#define PRId32        "ld"
+#define PRIi32        "li"
+#define PRIo32        "lo"
+#define PRIu32        "lu"
+#define PRIx32        "lx"
+#define PRIX32        "lX"
+#else	// OSX
+#define PRId32        "d"
+#define PRIi32        "i"
+#define PRIo32        "o"
+#define PRIu32        "u"
+#define PRIx32        "x"
+#define PRIX32        "X"
+#endif  // defined(_MSC_VER) && _MSC_VER <= 1700
+
+#define PRId64        __PRI_64_LENGTH_MODIFIER__ "d"
+#define PRIi64        __PRI_64_LENGTH_MODIFIER__ "i"
+#define PRIo64        __PRI_64_LENGTH_MODIFIER__ "o"
+#define PRIu64        __PRI_64_LENGTH_MODIFIER__ "u"
+#define PRIx64        __PRI_64_LENGTH_MODIFIER__ "x"
+#define PRIX64        __PRI_64_LENGTH_MODIFIER__ "X"
+
+#else
+// this system has inttypes.h by default
+#include <inttypes.h>
+#endif  // defined(CAPSTONE_HAS_OSXKERNEL) || (defined(_MSC_VER) && (_MSC_VER <= 1700 || defined(_KERNEL_MODE)))
 
 #endif
diff --git a/include/capstone/x86.h b/include/capstone/x86.h
index dbabbe6..a4fb97b 100644
--- a/include/capstone/x86.h
+++ b/include/capstone/x86.h
@@ -422,12 +422,8 @@
 	X86_INS_FCMOVU,
 	X86_INS_CMOVS,
 	X86_INS_CMP,
-	X86_INS_CMPPD,
-	X86_INS_CMPPS,
 	X86_INS_CMPSB,
-	X86_INS_CMPSD,
 	X86_INS_CMPSQ,
-	X86_INS_CMPSS,
 	X86_INS_CMPSW,
 	X86_INS_CMPXCHG16B,
 	X86_INS_CMPXCHG,
@@ -1074,10 +1070,6 @@
 	X86_INS_VBROADCASTI64X4,
 	X86_INS_VBROADCASTSD,
 	X86_INS_VBROADCASTSS,
-	X86_INS_VCMPPD,
-	X86_INS_VCMPPS,
-	X86_INS_VCMPSD,
-	X86_INS_VCMPSS,
 	X86_INS_VCOMPRESSPD,
 	X86_INS_VCOMPRESSPS,
 	X86_INS_VCVTDQ2PD,
@@ -1665,6 +1657,183 @@
 	X86_INS_FDISI8087_NOP,
 	X86_INS_FENI8087_NOP,
 
+	// pseudo instructions
+	X86_INS_CMPSS,
+	X86_INS_CMPEQSS,
+	X86_INS_CMPLTSS,
+	X86_INS_CMPLESS,
+	X86_INS_CMPUNORDSS,
+	X86_INS_CMPNEQSS,
+	X86_INS_CMPNLTSS,
+	X86_INS_CMPNLESS,
+	X86_INS_CMPORDSS,
+
+	X86_INS_CMPSD,
+	X86_INS_CMPEQSD,
+	X86_INS_CMPLTSD,
+	X86_INS_CMPLESD,
+	X86_INS_CMPUNORDSD,
+	X86_INS_CMPNEQSD,
+	X86_INS_CMPNLTSD,
+	X86_INS_CMPNLESD,
+	X86_INS_CMPORDSD,
+
+	X86_INS_CMPPS,
+	X86_INS_CMPEQPS,
+	X86_INS_CMPLTPS,
+	X86_INS_CMPLEPS,
+	X86_INS_CMPUNORDPS,
+	X86_INS_CMPNEQPS,
+	X86_INS_CMPNLTPS,
+	X86_INS_CMPNLEPS,
+	X86_INS_CMPORDPS,
+
+	X86_INS_CMPPD,
+	X86_INS_CMPEQPD,
+	X86_INS_CMPLTPD,
+	X86_INS_CMPLEPD,
+	X86_INS_CMPUNORDPD,
+	X86_INS_CMPNEQPD,
+	X86_INS_CMPNLTPD,
+	X86_INS_CMPNLEPD,
+	X86_INS_CMPORDPD,
+
+	X86_INS_VCMPSS,
+	X86_INS_VCMPEQSS,
+	X86_INS_VCMPLTSS,
+	X86_INS_VCMPLESS,
+	X86_INS_VCMPUNORDSS,
+	X86_INS_VCMPNEQSS,
+	X86_INS_VCMPNLTSS,
+	X86_INS_VCMPNLESS,
+	X86_INS_VCMPORDSS,
+	X86_INS_VCMPEQ_UQSS,
+	X86_INS_VCMPNGESS,
+	X86_INS_VCMPNGTSS,
+	X86_INS_VCMPFALSESS,
+	X86_INS_VCMPNEQ_OQSS,
+	X86_INS_VCMPGESS,
+	X86_INS_VCMPGTSS,
+	X86_INS_VCMPTRUESS,
+	X86_INS_VCMPEQ_OSSS,
+	X86_INS_VCMPLT_OQSS,
+	X86_INS_VCMPLE_OQSS,
+	X86_INS_VCMPUNORD_SSS,
+	X86_INS_VCMPNEQ_USSS,
+	X86_INS_VCMPNLT_UQSS,
+	X86_INS_VCMPNLE_UQSS,
+	X86_INS_VCMPORD_SSS,
+	X86_INS_VCMPEQ_USSS,
+	X86_INS_VCMPNGE_UQSS,
+	X86_INS_VCMPNGT_UQSS,
+	X86_INS_VCMPFALSE_OSSS,
+	X86_INS_VCMPNEQ_OSSS,
+	X86_INS_VCMPGE_OQSS,
+	X86_INS_VCMPGT_OQSS,
+	X86_INS_VCMPTRUE_USSS,
+
+	X86_INS_VCMPSD,
+	X86_INS_VCMPEQSD,
+	X86_INS_VCMPLTSD,
+	X86_INS_VCMPLESD,
+	X86_INS_VCMPUNORDSD,
+	X86_INS_VCMPNEQSD,
+	X86_INS_VCMPNLTSD,
+	X86_INS_VCMPNLESD,
+	X86_INS_VCMPORDSD,
+	X86_INS_VCMPEQ_UQSD,
+	X86_INS_VCMPNGESD,
+	X86_INS_VCMPNGTSD,
+	X86_INS_VCMPFALSESD,
+	X86_INS_VCMPNEQ_OQSD,
+	X86_INS_VCMPGESD,
+	X86_INS_VCMPGTSD,
+	X86_INS_VCMPTRUESD,
+	X86_INS_VCMPEQ_OSSD,
+	X86_INS_VCMPLT_OQSD,
+	X86_INS_VCMPLE_OQSD,
+	X86_INS_VCMPUNORD_SSD,
+	X86_INS_VCMPNEQ_USSD,
+	X86_INS_VCMPNLT_UQSD,
+	X86_INS_VCMPNLE_UQSD,
+	X86_INS_VCMPORD_SSD,
+	X86_INS_VCMPEQ_USSD,
+	X86_INS_VCMPNGE_UQSD,
+	X86_INS_VCMPNGT_UQSD,
+	X86_INS_VCMPFALSE_OSSD,
+	X86_INS_VCMPNEQ_OSSD,
+	X86_INS_VCMPGE_OQSD,
+	X86_INS_VCMPGT_OQSD,
+	X86_INS_VCMPTRUE_USSD,
+
+	X86_INS_VCMPPS,
+	X86_INS_VCMPEQPS,
+	X86_INS_VCMPLTPS,
+	X86_INS_VCMPLEPS,
+	X86_INS_VCMPUNORDPS,
+	X86_INS_VCMPNEQPS,
+	X86_INS_VCMPNLTPS,
+	X86_INS_VCMPNLEPS,
+	X86_INS_VCMPORDPS,
+	X86_INS_VCMPEQ_UQPS,
+	X86_INS_VCMPNGEPS,
+	X86_INS_VCMPNGTPS,
+	X86_INS_VCMPFALSEPS,
+	X86_INS_VCMPNEQ_OQPS,
+	X86_INS_VCMPGEPS,
+	X86_INS_VCMPGTPS,
+	X86_INS_VCMPTRUEPS,
+	X86_INS_VCMPEQ_OSPS,
+	X86_INS_VCMPLT_OQPS,
+	X86_INS_VCMPLE_OQPS,
+	X86_INS_VCMPUNORD_SPS,
+	X86_INS_VCMPNEQ_USPS,
+	X86_INS_VCMPNLT_UQPS,
+	X86_INS_VCMPNLE_UQPS,
+	X86_INS_VCMPORD_SPS,
+	X86_INS_VCMPEQ_USPS,
+	X86_INS_VCMPNGE_UQPS,
+	X86_INS_VCMPNGT_UQPS,
+	X86_INS_VCMPFALSE_OSPS,
+	X86_INS_VCMPNEQ_OSPS,
+	X86_INS_VCMPGE_OQPS,
+	X86_INS_VCMPGT_OQPS,
+	X86_INS_VCMPTRUE_USPS,
+
+	X86_INS_VCMPPD,
+	X86_INS_VCMPEQPD,
+	X86_INS_VCMPLTPD,
+	X86_INS_VCMPLEPD,
+	X86_INS_VCMPUNORDPD,
+	X86_INS_VCMPNEQPD,
+	X86_INS_VCMPNLTPD,
+	X86_INS_VCMPNLEPD,
+	X86_INS_VCMPORDPD,
+	X86_INS_VCMPEQ_UQPD,
+	X86_INS_VCMPNGEPD,
+	X86_INS_VCMPNGTPD,
+	X86_INS_VCMPFALSEPD,
+	X86_INS_VCMPNEQ_OQPD,
+	X86_INS_VCMPGEPD,
+	X86_INS_VCMPGTPD,
+	X86_INS_VCMPTRUEPD,
+	X86_INS_VCMPEQ_OSPD,
+	X86_INS_VCMPLT_OQPD,
+	X86_INS_VCMPLE_OQPD,
+	X86_INS_VCMPUNORD_SPD,
+	X86_INS_VCMPNEQ_USPD,
+	X86_INS_VCMPNLT_UQPD,
+	X86_INS_VCMPNLE_UQPD,
+	X86_INS_VCMPORD_SPD,
+	X86_INS_VCMPEQ_USPD,
+	X86_INS_VCMPNGE_UQPD,
+	X86_INS_VCMPNGT_UQPD,
+	X86_INS_VCMPFALSE_OSPD,
+	X86_INS_VCMPNEQ_OSPD,
+	X86_INS_VCMPGE_OQPD,
+	X86_INS_VCMPGT_OQPD,
+	X86_INS_VCMPTRUE_USPD,
+
 	X86_INS_ENDING, // mark the end of the list of insn
 } x86_insn;
 
diff --git a/msvc/README b/msvc/README
index 97e5524..c7248fe 100644
--- a/msvc/README
+++ b/msvc/README
@@ -6,11 +6,17 @@
 
 (1) Visual Studio 2010 or newer versions is required. Open "capstone.sln" to
     build the libraries & test code with Visual Studio. The resulted binaries
-	are put under either msvc/Debug or msvc/Release, depending on how you choose
-	to compile them.
+    are put under either msvc/Debug, msvc/Release, msvc/x64/Debug, or
+    msvc/x64/Release, depending on how you choose to compile them.
 
 (2) The solution (capstone.sln) & all project files (*.vcxproj) are made in
     Visual Studio 2010, so if you open them using newer version, an extra step
-	is needed to convert them to current version. Just accept this when
-	asked at the initial dialog, and proceed to build the solution normally
-	afterwards.
+    is needed to convert them to current version. Just accept this when
+    asked at the initial dialog, and proceed to build the solution normally
+    afterwards.
+
+(3) The capstone_static_winkernel and test_winkernel projects are for Windows
+    kernel drivers and excluded from build by default. In order to build them,
+    you need to install Visual Studio 2013 or newer versions, and Windows Driver
+    Kit 8.1 Update 1 or newer versions, then check "Build" check boxes for those
+    projects on the Configuration Manager through the [Build] menu.
diff --git a/msvc/capstone.sln b/msvc/capstone.sln
index 8109bd8..6b72ccf 100644
--- a/msvc/capstone.sln
+++ b/msvc/capstone.sln
@@ -75,6 +75,13 @@
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "capstone_dll", "capstone_dll\capstone_dll.vcxproj", "{2171C0E8-4915-49B9-AC23-A484FA08C126}"
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "capstone_static_winkernel", "capstone_static_winkernel\capstone_static_winkernel.vcxproj", "{FE197816-EF84-4E8D-B29D-E0A6BA2B144B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_winkernel", "test_winkernel\test_winkernel.vcxproj", "{C6E4974C-2CAF-499A-802A-FB906F86B4C8}"
+	ProjectSection(ProjectDependencies) = postProject
+		{FE197816-EF84-4E8D-B29D-E0A6BA2B144B} = {FE197816-EF84-4E8D-B29D-E0A6BA2B144B}
+	EndProjectSection
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Win32 = Debug|Win32
@@ -123,6 +130,14 @@
 		{CBE31473-7D0E-41F5-AFCB-8C8422ED8908}.Release|Win32.Build.0 = Release|Win32
 		{CBE31473-7D0E-41F5-AFCB-8C8422ED8908}.Release|x64.ActiveCfg = Release|x64
 		{CBE31473-7D0E-41F5-AFCB-8C8422ED8908}.Release|x64.Build.0 = Release|x64
+		{5B880AB5-E54F-11E3-8C65-B8E8563B7B00}.Debug|Win32.ActiveCfg = Debug|Win32
+		{5B880AB5-E54F-11E3-8C65-B8E8563B7B00}.Debug|Win32.Build.0 = Debug|Win32
+		{5B880AB5-E54F-11E3-8C65-B8E8563B7B00}.Debug|x64.ActiveCfg = Debug|x64
+		{5B880AB5-E54F-11E3-8C65-B8E8563B7B00}.Debug|x64.Build.0 = Debug|x64
+		{5B880AB5-E54F-11E3-8C65-B8E8563B7B00}.Release|Win32.ActiveCfg = Release|Win32
+		{5B880AB5-E54F-11E3-8C65-B8E8563B7B00}.Release|Win32.Build.0 = Release|Win32
+		{5B880AB5-E54F-11E3-8C65-B8E8563B7B00}.Release|x64.ActiveCfg = Release|x64
+		{5B880AB5-E54F-11E3-8C65-B8E8563B7B00}.Release|x64.Build.0 = Release|x64
 		{28B2D82F-3E95-4ECE-8118-0E891BD453E0}.Debug|Win32.ActiveCfg = Debug|Win32
 		{28B2D82F-3E95-4ECE-8118-0E891BD453E0}.Debug|Win32.Build.0 = Debug|Win32
 		{28B2D82F-3E95-4ECE-8118-0E891BD453E0}.Debug|x64.ActiveCfg = Debug|x64
@@ -171,14 +186,6 @@
 		{B09819BB-7EF1-4B04-945D-58117E6940A1}.Release|Win32.Build.0 = Release|Win32
 		{B09819BB-7EF1-4B04-945D-58117E6940A1}.Release|x64.ActiveCfg = Release|x64
 		{B09819BB-7EF1-4B04-945D-58117E6940A1}.Release|x64.Build.0 = Release|x64
-		{2171C0E8-4915-49B9-AC23-A484FA08C126}.Debug|Win32.ActiveCfg = Debug|Win32
-		{2171C0E8-4915-49B9-AC23-A484FA08C126}.Debug|Win32.Build.0 = Debug|Win32
-		{2171C0E8-4915-49B9-AC23-A484FA08C126}.Debug|x64.ActiveCfg = Debug|x64
-		{2171C0E8-4915-49B9-AC23-A484FA08C126}.Debug|x64.Build.0 = Debug|x64
-		{2171C0E8-4915-49B9-AC23-A484FA08C126}.Release|Win32.ActiveCfg = Release|Win32
-		{2171C0E8-4915-49B9-AC23-A484FA08C126}.Release|Win32.Build.0 = Release|Win32
-		{2171C0E8-4915-49B9-AC23-A484FA08C126}.Release|x64.ActiveCfg = Release|x64
-		{2171C0E8-4915-49B9-AC23-A484FA08C126}.Release|x64.Build.0 = Release|x64
 		{5B880AB5-E54F-11E3-8C65-B8E8563B7BDE}.Debug|Win32.ActiveCfg = Debug|Win32
 		{5B880AB5-E54F-11E3-8C65-B8E8563B7BDE}.Debug|Win32.Build.0 = Debug|Win32
 		{5B880AB5-E54F-11E3-8C65-B8E8563B7BDE}.Debug|x64.ActiveCfg = Debug|x64
@@ -203,6 +210,22 @@
 		{D622418C-A872-40D4-8C86-F3D996A4C823}.Release|Win32.Build.0 = Release|Win32
 		{D622418C-A872-40D4-8C86-F3D996A4C823}.Release|x64.ActiveCfg = Release|x64
 		{D622418C-A872-40D4-8C86-F3D996A4C823}.Release|x64.Build.0 = Release|x64
+		{2171C0E8-4915-49B9-AC23-A484FA08C126}.Debug|Win32.ActiveCfg = Debug|Win32
+		{2171C0E8-4915-49B9-AC23-A484FA08C126}.Debug|Win32.Build.0 = Debug|Win32
+		{2171C0E8-4915-49B9-AC23-A484FA08C126}.Debug|x64.ActiveCfg = Debug|x64
+		{2171C0E8-4915-49B9-AC23-A484FA08C126}.Debug|x64.Build.0 = Debug|x64
+		{2171C0E8-4915-49B9-AC23-A484FA08C126}.Release|Win32.ActiveCfg = Release|Win32
+		{2171C0E8-4915-49B9-AC23-A484FA08C126}.Release|Win32.Build.0 = Release|Win32
+		{2171C0E8-4915-49B9-AC23-A484FA08C126}.Release|x64.ActiveCfg = Release|x64
+		{2171C0E8-4915-49B9-AC23-A484FA08C126}.Release|x64.Build.0 = Release|x64
+		{FE197816-EF84-4E8D-B29D-E0A6BA2B144B}.Debug|Win32.ActiveCfg = Debug|Win32
+		{FE197816-EF84-4E8D-B29D-E0A6BA2B144B}.Debug|x64.ActiveCfg = Debug|x64
+		{FE197816-EF84-4E8D-B29D-E0A6BA2B144B}.Release|Win32.ActiveCfg = Release|Win32
+		{FE197816-EF84-4E8D-B29D-E0A6BA2B144B}.Release|x64.ActiveCfg = Release|x64
+		{C6E4974C-2CAF-499A-802A-FB906F86B4C8}.Debug|Win32.ActiveCfg = Debug|Win32
+		{C6E4974C-2CAF-499A-802A-FB906F86B4C8}.Debug|x64.ActiveCfg = Debug|x64
+		{C6E4974C-2CAF-499A-802A-FB906F86B4C8}.Release|Win32.ActiveCfg = Release|Win32
+		{C6E4974C-2CAF-499A-802A-FB906F86B4C8}.Release|x64.ActiveCfg = Release|x64
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
diff --git a/msvc/capstone_static_winkernel/capstone_static_winkernel.vcxproj b/msvc/capstone_static_winkernel/capstone_static_winkernel.vcxproj
new file mode 100644
index 0000000..2420031
--- /dev/null
+++ b/msvc/capstone_static_winkernel/capstone_static_winkernel.vcxproj
@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\arch\AArch64\AArch64BaseInfo.c" />
+    <ClCompile Include="..\..\arch\AArch64\AArch64Disassembler.c" />
+    <ClCompile Include="..\..\arch\AArch64\AArch64InstPrinter.c" />
+    <ClCompile Include="..\..\arch\AArch64\AArch64Mapping.c" />
+    <ClCompile Include="..\..\arch\AArch64\AArch64Module.c" />
+    <ClCompile Include="..\..\arch\ARM\ARMDisassembler.c" />
+    <ClCompile Include="..\..\arch\ARM\ARMInstPrinter.c" />
+    <ClCompile Include="..\..\arch\ARM\ARMMapping.c" />
+    <ClCompile Include="..\..\arch\ARM\ARMModule.c" />
+    <ClCompile Include="..\..\arch\M68K\M68KDisassembler.c" />
+    <ClCompile Include="..\..\arch\M68K\M68KInstPrinter.c" />
+    <ClCompile Include="..\..\arch\M68K\M68KModule.c" />
+    <ClCompile Include="..\..\arch\Mips\MipsDisassembler.c" />
+    <ClCompile Include="..\..\arch\Mips\MipsInstPrinter.c" />
+    <ClCompile Include="..\..\arch\Mips\MipsMapping.c" />
+    <ClCompile Include="..\..\arch\Mips\MipsModule.c" />
+    <ClCompile Include="..\..\arch\PowerPC\PPCDisassembler.c" />
+    <ClCompile Include="..\..\arch\PowerPC\PPCInstPrinter.c" />
+    <ClCompile Include="..\..\arch\PowerPC\PPCMapping.c" />
+    <ClCompile Include="..\..\arch\PowerPC\PPCModule.c" />
+    <ClCompile Include="..\..\arch\Sparc\SparcDisassembler.c" />
+    <ClCompile Include="..\..\arch\Sparc\SparcInstPrinter.c" />
+    <ClCompile Include="..\..\arch\Sparc\SparcMapping.c" />
+    <ClCompile Include="..\..\arch\Sparc\SparcModule.c" />
+    <ClCompile Include="..\..\arch\SystemZ\SystemZDisassembler.c" />
+    <ClCompile Include="..\..\arch\SystemZ\SystemZInstPrinter.c" />
+    <ClCompile Include="..\..\arch\SystemZ\SystemZMapping.c" />
+    <ClCompile Include="..\..\arch\SystemZ\SystemZMCTargetDesc.c" />
+    <ClCompile Include="..\..\arch\SystemZ\SystemZModule.c" />
+    <ClCompile Include="..\..\arch\X86\X86ATTInstPrinter.c" />
+    <ClCompile Include="..\..\arch\X86\X86Disassembler.c" />
+    <ClCompile Include="..\..\arch\X86\X86DisassemblerDecoder.c" />
+    <ClCompile Include="..\..\arch\X86\X86IntelInstPrinter.c" />
+    <ClCompile Include="..\..\arch\X86\X86Mapping.c" />
+    <ClCompile Include="..\..\arch\X86\X86Module.c" />
+    <ClCompile Include="..\..\arch\XCore\XCoreInstPrinter.c" />
+    <ClCompile Include="..\..\arch\XCore\XCoreDisassembler.c" />
+    <ClCompile Include="..\..\arch\XCore\XCoreMapping.c" />
+    <ClCompile Include="..\..\arch\XCore\XCoreModule.c" />
+    <ClCompile Include="..\..\cs.c" />
+    <ClCompile Include="..\..\MCInst.c" />
+    <ClCompile Include="..\..\MCInstrDesc.c" />
+    <ClCompile Include="..\..\MCRegisterInfo.c" />
+    <ClCompile Include="..\..\SStream.c" />
+    <ClCompile Include="..\..\utils.c" />
+    <ClCompile Include="..\..\windows\winkernel_mm.c" />
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{FE197816-EF84-4E8D-B29D-E0A6BA2B144B}</ProjectGuid>
+    <TemplateGuid>{1bc93793-694f-48fe-9372-81e2b05556fd}</TemplateGuid>
+    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <MinimumVisualStudioVersion>11.0</MinimumVisualStudioVersion>
+    <Configuration>Win8.1 Debug</Configuration>
+    <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+    <RootNamespace>capstone_static_winkernel</RootNamespace>
+    <ProjectName>capstone_static_winkernel</ProjectName>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <TargetVersion>Windows7</TargetVersion>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+    <DriverType>KMDF</DriverType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <TargetVersion>Windows7</TargetVersion>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+    <DriverType>KMDF</DriverType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <TargetVersion>Windows7</TargetVersion>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+    <DriverType>KMDF</DriverType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <TargetVersion>Windows7</TargetVersion>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+    <DriverType>KMDF</DriverType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)'  == ''">trace.h</WppScanConfigurationData>
+      <WppKernelMode>true</WppKernelMode>
+      <AdditionalIncludeDirectories>..\..\include;..\headers;$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>CAPSTONE_X86_ATT_DISABLE_NO;CAPSTONE_DIET_NO;CAPSTONE_X86_REDUCE_NO;CAPSTONE_HAS_ARM;CAPSTONE_HAS_ARM64;CAPSTONE_HAS_MIPS;CAPSTONE_HAS_M68K;CAPSTONE_HAS_POWERPC;CAPSTONE_HAS_SPARC;CAPSTONE_HAS_SYSZ;CAPSTONE_HAS_X86;CAPSTONE_HAS_XCORE;CAPSTONE_USE_SYS_DYN_MEM;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <TreatWarningAsError>false</TreatWarningAsError>
+      <WarningLevel>Level3</WarningLevel>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)'  == ''">trace.h</WppScanConfigurationData>
+      <WppKernelMode>true</WppKernelMode>
+      <AdditionalIncludeDirectories>..\..\include;..\headers;$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>CAPSTONE_X86_ATT_DISABLE_NO;CAPSTONE_DIET_NO;CAPSTONE_X86_REDUCE_NO;CAPSTONE_HAS_ARM;CAPSTONE_HAS_ARM64;CAPSTONE_HAS_MIPS;CAPSTONE_HAS_M68K;CAPSTONE_HAS_POWERPC;CAPSTONE_HAS_SPARC;CAPSTONE_HAS_SYSZ;CAPSTONE_HAS_X86;CAPSTONE_HAS_XCORE;CAPSTONE_USE_SYS_DYN_MEM;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <TreatWarningAsError>false</TreatWarningAsError>
+      <WarningLevel>Level3</WarningLevel>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)'  == ''">trace.h</WppScanConfigurationData>
+      <WppKernelMode>true</WppKernelMode>
+      <AdditionalIncludeDirectories>..\..\include;..\headers;$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>CAPSTONE_X86_ATT_DISABLE_NO;CAPSTONE_DIET_NO;CAPSTONE_X86_REDUCE_NO;CAPSTONE_HAS_ARM;CAPSTONE_HAS_ARM64;CAPSTONE_HAS_MIPS;CAPSTONE_HAS_M68K;CAPSTONE_HAS_POWERPC;CAPSTONE_HAS_SPARC;CAPSTONE_HAS_SYSZ;CAPSTONE_HAS_X86;CAPSTONE_HAS_XCORE;CAPSTONE_USE_SYS_DYN_MEM;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <TreatWarningAsError>false</TreatWarningAsError>
+      <WarningLevel>Level3</WarningLevel>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)'  == ''">trace.h</WppScanConfigurationData>
+      <WppKernelMode>true</WppKernelMode>
+      <AdditionalIncludeDirectories>..\..\include;..\headers;$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>CAPSTONE_X86_ATT_DISABLE_NO;CAPSTONE_DIET_NO;CAPSTONE_X86_REDUCE_NO;CAPSTONE_HAS_ARM;CAPSTONE_HAS_ARM64;CAPSTONE_HAS_MIPS;CAPSTONE_HAS_M68K;CAPSTONE_HAS_POWERPC;CAPSTONE_HAS_SPARC;CAPSTONE_HAS_SYSZ;CAPSTONE_HAS_X86;CAPSTONE_HAS_XCORE;CAPSTONE_USE_SYS_DYN_MEM;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <TreatWarningAsError>false</TreatWarningAsError>
+      <WarningLevel>Level3</WarningLevel>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+    <FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/msvc/test_basic/test_basic.vcxproj b/msvc/test_basic/test_basic.vcxproj
index a14a776..c410ccd 100644
--- a/msvc/test_basic/test_basic.vcxproj
+++ b/msvc/test_basic/test_basic.vcxproj
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
@@ -29,27 +29,23 @@
     <ConfigurationType>Application</ConfigurationType>
     <UseDebugLibraries>true</UseDebugLibraries>
     <CharacterSet>Unicode</CharacterSet>
-    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <UseDebugLibraries>true</UseDebugLibraries>
     <CharacterSet>Unicode</CharacterSet>
-    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <UseDebugLibraries>false</UseDebugLibraries>
     <WholeProgramOptimization>true</WholeProgramOptimization>
     <CharacterSet>Unicode</CharacterSet>
-    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <UseDebugLibraries>false</UseDebugLibraries>
     <WholeProgramOptimization>true</WholeProgramOptimization>
     <CharacterSet>Unicode</CharacterSet>
-    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
diff --git a/msvc/test_winkernel/test_winkernel.vcxproj b/msvc/test_winkernel/test_winkernel.vcxproj
new file mode 100644
index 0000000..ce84275
--- /dev/null
+++ b/msvc/test_winkernel/test_winkernel.vcxproj
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{C6E4974C-2CAF-499A-802A-FB906F86B4C8}</ProjectGuid>
+    <TemplateGuid>{1bc93793-694f-48fe-9372-81e2b05556fd}</TemplateGuid>
+    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <MinimumVisualStudioVersion>11.0</MinimumVisualStudioVersion>
+    <Configuration>Win8.1 Debug</Configuration>
+    <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+    <RootNamespace>test_winkernel</RootNamespace>
+    <ProjectName>test_winkernel</ProjectName>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <TargetVersion>Windows7</TargetVersion>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+    <ConfigurationType>Driver</ConfigurationType>
+    <DriverType>KMDF</DriverType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <TargetVersion>Windows7</TargetVersion>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+    <ConfigurationType>Driver</ConfigurationType>
+    <DriverType>KMDF</DriverType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <TargetVersion>Windows7</TargetVersion>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+    <ConfigurationType>Driver</ConfigurationType>
+    <DriverType>KMDF</DriverType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <TargetVersion>Windows7</TargetVersion>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
+    <ConfigurationType>Driver</ConfigurationType>
+    <DriverType>KMDF</DriverType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)'  == ''">trace.h</WppScanConfigurationData>
+      <WppKernelMode>true</WppKernelMode>
+      <AdditionalIncludeDirectories>..\..\include;..\headers;$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>CAPSTONE_X86_ATT_DISABLE_NO;CAPSTONE_DIET_NO;CAPSTONE_X86_REDUCE_NO;CAPSTONE_HAS_ARM;CAPSTONE_HAS_ARM64;CAPSTONE_HAS_M68K;CAPSTONE_HAS_MIPS;CAPSTONE_HAS_POWERPC;CAPSTONE_HAS_SPARC;CAPSTONE_HAS_SYSZ;CAPSTONE_HAS_X86;CAPSTONE_HAS_XCORE;CAPSTONE_USE_SYS_DYN_MEM;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>capstone_static_winkernel.lib;ntstrsafe.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>..\Debug</AdditionalLibraryDirectories>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)'  == ''">trace.h</WppScanConfigurationData>
+      <WppKernelMode>true</WppKernelMode>
+      <AdditionalIncludeDirectories>..\..\include;..\headers;$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>CAPSTONE_X86_ATT_DISABLE_NO;CAPSTONE_DIET_NO;CAPSTONE_X86_REDUCE_NO;CAPSTONE_HAS_ARM;CAPSTONE_HAS_ARM64;CAPSTONE_HAS_M68K;CAPSTONE_HAS_MIPS;CAPSTONE_HAS_POWERPC;CAPSTONE_HAS_SPARC;CAPSTONE_HAS_SYSZ;CAPSTONE_HAS_X86;CAPSTONE_HAS_XCORE;CAPSTONE_USE_SYS_DYN_MEM;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>capstone_static_winkernel.lib;ntstrsafe.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>..\Release</AdditionalLibraryDirectories>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)'  == ''">trace.h</WppScanConfigurationData>
+      <WppKernelMode>true</WppKernelMode>
+      <AdditionalIncludeDirectories>..\..\include;..\headers;$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>CAPSTONE_X86_ATT_DISABLE_NO;CAPSTONE_DIET_NO;CAPSTONE_X86_REDUCE_NO;CAPSTONE_HAS_ARM;CAPSTONE_HAS_ARM64;CAPSTONE_HAS_M68K;CAPSTONE_HAS_MIPS;CAPSTONE_HAS_POWERPC;CAPSTONE_HAS_SPARC;CAPSTONE_HAS_SYSZ;CAPSTONE_HAS_X86;CAPSTONE_HAS_XCORE;CAPSTONE_USE_SYS_DYN_MEM;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>capstone_static_winkernel.lib;ntstrsafe.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>..\x64\Debug</AdditionalLibraryDirectories>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)'  == ''">trace.h</WppScanConfigurationData>
+      <WppKernelMode>true</WppKernelMode>
+      <AdditionalIncludeDirectories>..\..\include;..\headers;$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>CAPSTONE_X86_ATT_DISABLE_NO;CAPSTONE_DIET_NO;CAPSTONE_X86_REDUCE_NO;CAPSTONE_HAS_ARM;CAPSTONE_HAS_ARM64;CAPSTONE_HAS_M68K;CAPSTONE_HAS_MIPS;CAPSTONE_HAS_POWERPC;CAPSTONE_HAS_SPARC;CAPSTONE_HAS_SYSZ;CAPSTONE_HAS_X86;CAPSTONE_HAS_XCORE;CAPSTONE_USE_SYS_DYN_MEM;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>capstone_static_winkernel.lib;ntstrsafe.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>..\x64\Release</AdditionalLibraryDirectories>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+    <FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\tests\test_winkernel.cpp" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/myinttypes.h b/myinttypes.h
deleted file mode 100644
index fe61331..0000000
--- a/myinttypes.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Capstone Disassembly Engine */
-/* By Axel Souchet, 2014 */
-
-#ifndef CS_MYINTTYPES_H
-#define CS_MYINTTYPES_H
-
-#if defined(CAPSTONE_HAS_OSXKERNEL) || (defined(_MSC_VER) && _MSC_VER <= 1700)
-// this system does not have inttypes.h
-
-#if defined(_MSC_VER) && _MSC_VER <= 1700
-typedef signed char  int8_t;
-typedef signed short int16_t;
-typedef signed int   int32_t;
-typedef unsigned char  uint8_t;
-typedef unsigned short uint16_t;
-typedef unsigned int   uint32_t;
-typedef signed long long   int64_t;
-typedef unsigned long long uint64_t;
-#endif
-
-#define __PRI_8_LENGTH_MODIFIER__ "hh"
-#define __PRI_64_LENGTH_MODIFIER__ "ll"
-
-#define PRId8         __PRI_8_LENGTH_MODIFIER__ "d"
-#define PRIi8         __PRI_8_LENGTH_MODIFIER__ "i"
-#define PRIo8         __PRI_8_LENGTH_MODIFIER__ "o"
-#define PRIu8         __PRI_8_LENGTH_MODIFIER__ "u"
-#define PRIx8         __PRI_8_LENGTH_MODIFIER__ "x"
-#define PRIX8         __PRI_8_LENGTH_MODIFIER__ "X"
-
-#define PRId16        "hd"
-#define PRIi16        "hi"
-#define PRIo16        "ho"
-#define PRIu16        "hu"
-#define PRIx16        "hx"
-#define PRIX16        "hX"
-
-#if defined(_MSC_VER) && _MSC_VER <= 1700
-#define PRId32        "ld"
-#define PRIi32        "li"
-#define PRIo32        "lo"
-#define PRIu32        "lu"
-#define PRIx32        "lx"
-#define PRIX32        "lX"
-#else	// OSX
-#define PRId32        "d"
-#define PRIi32        "i"
-#define PRIo32        "o"
-#define PRIu32        "u"
-#define PRIx32        "x"
-#define PRIX32        "X"
-#endif
-
-#define PRId64        __PRI_64_LENGTH_MODIFIER__ "d"
-#define PRIi64        __PRI_64_LENGTH_MODIFIER__ "i"
-#define PRIo64        __PRI_64_LENGTH_MODIFIER__ "o"
-#define PRIu64        __PRI_64_LENGTH_MODIFIER__ "u"
-#define PRIx64        __PRI_64_LENGTH_MODIFIER__ "x"
-#define PRIX64        __PRI_64_LENGTH_MODIFIER__ "X"
-
-#else	// this system has inttypes.h by default
-#include <inttypes.h>
-#endif
-
-#endif
diff --git a/suite/arm/test_arm_regression.c b/suite/arm/test_arm_regression.c
index a6cdc1c..d6bff5c 100644
--- a/suite/arm/test_arm_regression.c
+++ b/suite/arm/test_arm_regression.c
@@ -9,8 +9,8 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include "../../myinttypes.h"
 
+#include <capstone/platform.h>
 #include <capstone/capstone.h>
 
 static csh handle;
diff --git a/suite/benchmark/test_iter_benchmark.c b/suite/benchmark/test_iter_benchmark.c
index 0c04b8f..7aa7c02 100644
--- a/suite/benchmark/test_iter_benchmark.c
+++ b/suite/benchmark/test_iter_benchmark.c
@@ -4,9 +4,9 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <time.h>
-#include "../myinttypes.h"
 
-#include <capstone.h>
+#include <capstone/platform.h>
+#include <capstone/capstone.h>
 
 static void test()
 {
diff --git a/suite/test_group_name.py b/suite/test_group_name.py
index df6f83b..7a746f8 100755
--- a/suite/test_group_name.py
+++ b/suite/test_group_name.py
@@ -83,6 +83,11 @@
 
 mips_dict = {
     MIPS_GRP_JUMP: "jump",
+    MIPS_GRP_CALL: "call",
+    MIPS_GRP_RET: "ret",
+    MIPS_GRP_INT: "int",
+    MIPS_GRP_IRET: "iret",
+    MIPS_GRP_PRIVILEGE: "privilege",
     MIPS_GRP_BITCOUNT: "bitcount",
     MIPS_GRP_DSP: "dsp",
     MIPS_GRP_DSPR2: "dspr2",
diff --git a/tests/README b/tests/README
index 0296077..e5d3efb 100644
--- a/tests/README
+++ b/tests/README
@@ -26,3 +26,6 @@
 - test_<arch>.c
   These code show how to access architecture-specific information for each
   architecture.
+
+- test_winkernel.cpp
+  This code shows how to use Capstone from a Windows driver.
diff --git a/tests/test_arm.c b/tests/test_arm.c
index f368a88..89a622c 100644
--- a/tests/test_arm.c
+++ b/tests/test_arm.c
@@ -3,8 +3,8 @@
 
 #include <stdio.h>
 #include <stdlib.h>
-#include "../myinttypes.h"
 
+#include <capstone/platform.h>
 #include <capstone/capstone.h>
 
 static csh handle;
@@ -30,7 +30,7 @@
 	printf("\n");
 }
 
-static void print_insn_detail(csh handle, cs_insn *ins)
+static void print_insn_detail(csh cs_handle, cs_insn *ins)
 {
 	cs_arm *arm;
 	int i;
@@ -52,22 +52,27 @@
 			default:
 				break;
 			case ARM_OP_REG:
-				printf("\t\toperands[%u].type: REG = %s\n", i, cs_reg_name(handle, op->reg));
+				printf("\t\toperands[%u].type: REG = %s\n", i, cs_reg_name(cs_handle, op->reg));
 				break;
 			case ARM_OP_IMM:
 				printf("\t\toperands[%u].type: IMM = 0x%x\n", i, op->imm);
 				break;
 			case ARM_OP_FP:
+#if defined(_KERNEL_MODE)
+				// Issue #681: Windows kernel does not support formatting float point
+				printf("\t\toperands[%u].type: FP = <float_point_unsupported>\n", i);
+#else
 				printf("\t\toperands[%u].type: FP = %f\n", i, op->fp);
+#endif
 				break;
 			case ARM_OP_MEM:
 				printf("\t\toperands[%u].type: MEM\n", i);
-				if (op->mem.base != X86_REG_INVALID)
+				if (op->mem.base != ARM_REG_INVALID)
 					printf("\t\t\toperands[%u].mem.base: REG = %s\n",
-							i, cs_reg_name(handle, op->mem.base));
-				if (op->mem.index != X86_REG_INVALID)
+							i, cs_reg_name(cs_handle, op->mem.base));
+				if (op->mem.index != ARM_REG_INVALID)
 					printf("\t\t\toperands[%u].mem.index: REG = %s\n",
-							i, cs_reg_name(handle, op->mem.index));
+							i, cs_reg_name(cs_handle, op->mem.index));
 				if (op->mem.scale != 1)
 					printf("\t\t\toperands[%u].mem.scale: %u\n", i, op->mem.scale);
 				if (op->mem.disp != 0)
@@ -115,7 +120,7 @@
 			else
 				// shift with register
 				printf("\t\t\tShift: %u = %s\n", op->shift.type,
-						cs_reg_name(handle, op->shift.value));
+						cs_reg_name(cs_handle, op->shift.value));
 		}
 
 		if (op->vector_index != -1) {
@@ -154,13 +159,13 @@
 		printf("\tMemory-barrier: %u\n", arm->mem_barrier);
 
 	// Print out all registers accessed by this instruction (either implicit or explicit)
-	if (!cs_regs_access(handle, ins,
+	if (!cs_regs_access(cs_handle, ins,
 				regs_read, &regs_read_count,
 				regs_write, &regs_write_count)) {
 		if (regs_read_count) {
 			printf("\tRegisters read:");
 			for(i = 0; i < regs_read_count; i++) {
-				printf(" %s", cs_reg_name(handle, regs_read[i]));
+				printf(" %s", cs_reg_name(cs_handle, regs_read[i]));
 			}
 			printf("\n");
 		}
@@ -168,7 +173,7 @@
 		if (regs_write_count) {
 			printf("\tRegisters modified:");
 			for(i = 0; i < regs_write_count; i++) {
-				printf(" %s", cs_reg_name(handle, regs_write[i]));
+				printf(" %s", cs_reg_name(cs_handle, regs_write[i]));
 			}
 			printf("\n");
 		}
@@ -319,10 +324,10 @@
 			printf("Disasm:\n");
 
 			for (j = 0; j < count; j++) {
-				printf("0x%"PRIx64":\t%s\t%s\n", insn[j].address, insn[j].mnemonic, insn[j].op_str);
+				printf("0x%" PRIx64 ":\t%s\t%s\n", insn[j].address, insn[j].mnemonic, insn[j].op_str);
 				print_insn_detail(handle, &insn[j]);
 			}
-			printf("0x%"PRIx64":\n", insn[j-1].address + insn[j-1].size);
+			printf("0x%" PRIx64 ":\n", insn[j-1].address + insn[j-1].size);
 
 			// free memory allocated by cs_disasm()
 			cs_free(insn, count);
diff --git a/tests/test_arm64.c b/tests/test_arm64.c
index 9170ed4..4d77e5f 100644
--- a/tests/test_arm64.c
+++ b/tests/test_arm64.c
@@ -3,8 +3,8 @@
 
 #include <stdio.h>
 #include <stdlib.h>
-#include "../myinttypes.h"
 
+#include <capstone/platform.h>
 #include <capstone/capstone.h>
 
 static csh handle;
@@ -53,10 +53,15 @@
 				printf("\t\toperands[%u].type: REG = %s\n", i, cs_reg_name(handle, op->reg));
 				break;
 			case ARM64_OP_IMM:
-				printf("\t\toperands[%u].type: IMM = 0x%"PRIx64 "\n", i, op->imm);
+				printf("\t\toperands[%u].type: IMM = 0x%" PRIx64 "\n", i, op->imm);
 				break;
 			case ARM64_OP_FP:
+#if defined(_KERNEL_MODE)
+				// Issue #681: Windows kernel does not support formatting float point
+				printf("\t\toperands[%u].type: FP = <float_point_unsupported>\n", i);
+#else
 				printf("\t\toperands[%u].type: FP = %f\n", i, op->fp);
+#endif
 				break;
 			case ARM64_OP_MEM:
 				printf("\t\toperands[%u].type: MEM\n", i);
@@ -249,10 +254,10 @@
 			printf("Disasm:\n");
 
 			for (j = 0; j < count; j++) {
-				printf("0x%"PRIx64":\t%s\t%s\n", insn[j].address, insn[j].mnemonic, insn[j].op_str);
+				printf("0x%" PRIx64 ":\t%s\t%s\n", insn[j].address, insn[j].mnemonic, insn[j].op_str);
 				print_insn_detail(&insn[j]);
 			}
-			printf("0x%"PRIx64":\n", insn[j-1].address + insn[j-1].size);
+			printf("0x%" PRIx64 ":\n", insn[j-1].address + insn[j-1].size);
 
 			// free memory allocated by cs_disasm()
 			cs_free(insn, count);
diff --git a/tests/test_basic.c b/tests/test_basic.c
index 47c8b00..8227e4d 100644
--- a/tests/test_basic.c
+++ b/tests/test_basic.c
@@ -3,8 +3,8 @@
 
 #include <stdio.h>
 #include <stdlib.h>
-#include "../myinttypes.h"
 
+#include <capstone/platform.h>
 #include <capstone/capstone.h>
 
 struct platform {
@@ -272,7 +272,7 @@
 #ifdef CAPSTONE_HAS_M68K
 		{
 			CS_ARCH_M68K,
-			CS_MODE_BIG_ENDIAN | CS_MODE_M68K_040,
+			(cs_mode)(CS_MODE_BIG_ENDIAN | CS_MODE_M68K_040),
 			(unsigned char*)M68K_CODE,
 			sizeof(M68K_CODE) - 1,
 			"M68K",
@@ -307,12 +307,12 @@
 			printf("Disasm:\n");
 
 			for (j = 0; j < count; j++) {
-				printf("0x%"PRIx64":\t%s\t\t%s\n",
+				printf("0x%" PRIx64 ":\t%s\t\t%s\n",
 						insn[j].address, insn[j].mnemonic, insn[j].op_str);
 			}
 
 			// print out the next offset, after the last insn
-			printf("0x%"PRIx64":\n", insn[j-1].address + insn[j-1].size);
+			printf("0x%" PRIx64 ":\n", insn[j-1].address + insn[j-1].size);
 
 			// free memory allocated by cs_disasm()
 			cs_free(insn, count);
diff --git a/tests/test_customized_mnem.c b/tests/test_customized_mnem.c
index 4a56bf1..913586e 100644
--- a/tests/test_customized_mnem.c
+++ b/tests/test_customized_mnem.c
@@ -6,8 +6,8 @@
 
 #include <stdio.h>
 #include <stdlib.h>
-#include "../myinttypes.h"
 
+#include <capstone/platform.h>
 #include <capstone/capstone.h>
 
 #define X86_CODE32 "\x75\x01"
diff --git a/tests/test_detail.c b/tests/test_detail.c
index d0931e8..fd914a1 100644
--- a/tests/test_detail.c
+++ b/tests/test_detail.c
@@ -3,8 +3,8 @@
 
 #include <stdio.h>
 #include <stdlib.h>
-#include "../myinttypes.h"
 
+#include <capstone/platform.h>
 #include <capstone/capstone.h>
 
 struct platform {
@@ -253,7 +253,7 @@
 #ifdef CAPSTONE_HAS_M68K
 		{
 			CS_ARCH_M68K,
-			CS_MODE_BIG_ENDIAN | CS_MODE_M68K_040,
+			(cs_mode)(CS_MODE_BIG_ENDIAN | CS_MODE_M68K_040),
 			(unsigned char*)M68K_CODE,
 			sizeof(M68K_CODE) - 1,
 			"M68K",
@@ -293,7 +293,7 @@
 
 			for (j = 0; j < count; j++) {
 				cs_insn *in = &(all_insn[j]);
-				printf("0x%"PRIx64":\t%s\t\t%s // insn-ID: %u, insn-mnem: %s\n",
+				printf("0x%" PRIx64 ":\t%s\t\t%s // insn-ID: %u, insn-mnem: %s\n",
 						in->address, in->mnemonic, in->op_str,
 						in->id, cs_insn_name(handle, in->id));
 
@@ -328,7 +328,7 @@
 			}
 
 			// print out the next offset, after the last insn
-			printf("0x%"PRIx64":\n", all_insn[j-1].address + all_insn[j-1].size);
+			printf("0x%" PRIx64 ":\n", all_insn[j-1].address + all_insn[j-1].size);
 
 			// free memory allocated by cs_disasm()
 			cs_free(all_insn, count);
diff --git a/tests/test_iter.c b/tests/test_iter.c
index 894f5c9..47f2f95 100644
--- a/tests/test_iter.c
+++ b/tests/test_iter.c
@@ -4,8 +4,8 @@
 // This sample code demonstrates the APIs cs_malloc() & cs_disasm_iter().
 #include <stdio.h>
 #include <stdlib.h>
-#include "../myinttypes.h"
 
+#include <capstone/platform.h>
 #include <capstone/capstone.h>
 
 struct platform {
@@ -245,7 +245,7 @@
 		while(cs_disasm_iter(handle, &code, &size, &address, insn)) {
 			int n;
 
-			printf("0x%"PRIx64":\t%s\t\t%s // insn-ID: %u, insn-mnem: %s\n",
+			printf("0x%" PRIx64 ":\t%s\t\t%s // insn-ID: %u, insn-mnem: %s\n",
 					insn->address, insn->mnemonic, insn->op_str,
 					insn->id, cs_insn_name(handle, insn->id));
 
diff --git a/tests/test_m68k.c b/tests/test_m68k.c
index 18883f9..cdaff48 100644
--- a/tests/test_m68k.c
+++ b/tests/test_m68k.c
@@ -2,8 +2,8 @@
 /* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2014 */
 
 #include <stdio.h>
-#include "../myinttypes.h"
 
+#include <capstone/platform.h>
 #include <capstone/capstone.h>
 
 struct platform {
@@ -55,7 +55,7 @@
 
 	"Absolute Data Addressing  - Short",
 	"Absolute Data Addressing  - Long",
-	"Immidate value",
+	"Immediate value",
 };
 
 static void print_insn_detail(cs_insn *ins)
@@ -85,16 +85,6 @@
 				printf("\t\toperands[%u].type: REG = %s\n", i, cs_reg_name(handle, op->reg));
 				break;
 			case M68K_OP_IMM:
-				if (m68k->op_size.type == M68K_SIZE_TYPE_FPU) {
-					if (m68k->op_size.fpu_size == M68K_FPU_SIZE_SINGLE)
-						printf("\t\toperands[%u].type: IMM = %f\n", i, op->simm);
-					else if (m68k->op_size.fpu_size == M68K_FPU_SIZE_DOUBLE)
-						printf("\t\toperands[%u].type: IMM = %lf\n", i, op->dimm);
-					else
-						printf("\t\toperands[%u].type: IMM = <unsupported>\n", i);
-					break;
-				}
-
 				printf("\t\toperands[%u].type: IMM = 0x%x\n", i, (int)op->imm);
 				break;
 			case M68K_OP_MEM:
@@ -115,6 +105,14 @@
 
 				printf("\t\taddress mode: %s\n", s_addressing_modes[op->address_mode]);
 				break;
+			case M68K_OP_FP_SINGLE:
+				printf("\t\toperands[%u].type: FP_SINGLE\n", i);
+				printf("\t\t\toperands[%u].simm: %f\n", i, op->simm);
+				break;
+			case M68K_OP_FP_DOUBLE:
+				printf("\t\toperands[%u].type: FP_DOUBLE\n", i);
+				printf("\t\t\toperands[%u].dimm: %lf\n", i, op->dimm);
+				break;
 		}
 	}
 
@@ -130,7 +128,7 @@
 	struct platform platforms[] = {
 		{
 			CS_ARCH_M68K,
-			CS_MODE_BIG_ENDIAN | CS_MODE_M68K_040,
+			(cs_mode)(CS_MODE_BIG_ENDIAN | CS_MODE_M68K_040),
 			(unsigned char*)M68K_CODE,
 			sizeof(M68K_CODE) - 1,
 			"M68K",
@@ -161,10 +159,10 @@
 			printf("Disasm:\n");
 
 			for (j = 0; j < count; j++) {
-				printf("0x%"PRIx64":\t%s\t%s\n", insn[j].address, insn[j].mnemonic, insn[j].op_str);
+				printf("0x%" PRIx64 ":\t%s\t%s\n", insn[j].address, insn[j].mnemonic, insn[j].op_str);
 				print_insn_detail(&insn[j]);
 			}
-			printf("0x%"PRIx64":\n", insn[j-1].address + insn[j-1].size);
+			printf("0x%" PRIx64 ":\n", insn[j-1].address + insn[j-1].size);
 
 			// free memory allocated by cs_disasm()
 			cs_free(insn, count);
diff --git a/tests/test_mips.c b/tests/test_mips.c
index 6cb751f..9e2927c 100644
--- a/tests/test_mips.c
+++ b/tests/test_mips.c
@@ -3,8 +3,8 @@
 
 #include <stdio.h>
 #include <stdlib.h>
-#include "../myinttypes.h"
 
+#include <capstone/platform.h>
 #include <capstone/capstone.h>
 
 struct platform {
@@ -51,11 +51,11 @@
 				printf("\t\toperands[%u].type: REG = %s\n", i, cs_reg_name(handle, op->reg));
 				break;
 			case MIPS_OP_IMM:
-				printf("\t\toperands[%u].type: IMM = 0x%"PRIx64 "\n", i, op->imm);
+				printf("\t\toperands[%u].type: IMM = 0x%" PRIx64 "\n", i, op->imm);
 				break;
 			case MIPS_OP_MEM:
 				printf("\t\toperands[%u].type: MEM\n", i);
-				if (op->mem.base != X86_REG_INVALID)
+				if (op->mem.base != MIPS_REG_INVALID)
 					printf("\t\t\toperands[%u].mem.base: REG = %s\n",
 							i, cs_reg_name(handle, op->mem.base));
 				if (op->mem.disp != 0)
@@ -138,10 +138,10 @@
 			printf("Disasm:\n");
 
 			for (j = 0; j < count; j++) {
-				printf("0x%"PRIx64":\t%s\t%s\n", insn[j].address, insn[j].mnemonic, insn[j].op_str);
+				printf("0x%" PRIx64 ":\t%s\t%s\n", insn[j].address, insn[j].mnemonic, insn[j].op_str);
 				print_insn_detail(&insn[j]);
 			}
-			printf("0x%"PRIx64":\n", insn[j-1].address + insn[j-1].size);
+			printf("0x%" PRIx64 ":\n", insn[j-1].address + insn[j-1].size);
 
 			// free memory allocated by cs_disasm()
 			cs_free(insn, count);
diff --git a/tests/test_ppc.c b/tests/test_ppc.c
index a1c8800..31e597f 100644
--- a/tests/test_ppc.c
+++ b/tests/test_ppc.c
@@ -2,8 +2,8 @@
 /* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013> */
 
 #include <stdio.h>
-#include "../myinttypes.h"
 
+#include <capstone/platform.h>
 #include <capstone/capstone.h>
 
 struct platform {
@@ -83,7 +83,7 @@
 				break;
 			case PPC_OP_MEM:
 				printf("\t\toperands[%u].type: MEM\n", i);
-				if (op->mem.base != X86_REG_INVALID)
+				if (op->mem.base != PPC_REG_INVALID)
 					printf("\t\t\toperands[%u].mem.base: REG = %s\n",
 							i, cs_reg_name(handle, op->mem.base));
 				if (op->mem.disp != 0)
@@ -126,7 +126,7 @@
 		},
 		{
 			CS_ARCH_PPC,
-			CS_MODE_BIG_ENDIAN + CS_MODE_QPX,
+			(cs_mode)(CS_MODE_BIG_ENDIAN + CS_MODE_QPX),
 			(unsigned char*)PPC_CODE2,
 			sizeof(PPC_CODE2) - 1,
 			"PPC-64 + QPX",
@@ -157,10 +157,10 @@
 			printf("Disasm:\n");
 
 			for (j = 0; j < count; j++) {
-				printf("0x%"PRIx64":\t%s\t%s\n", insn[j].address, insn[j].mnemonic, insn[j].op_str);
+				printf("0x%" PRIx64 ":\t%s\t%s\n", insn[j].address, insn[j].mnemonic, insn[j].op_str);
 				print_insn_detail(&insn[j]);
 			}
-			printf("0x%"PRIx64":\n", insn[j-1].address + insn[j-1].size);
+			printf("0x%" PRIx64 ":\n", insn[j-1].address + insn[j-1].size);
 
 			// free memory allocated by cs_disasm()
 			cs_free(insn, count);
diff --git a/tests/test_skipdata.c b/tests/test_skipdata.c
index 8d3f94e..a625f41 100644
--- a/tests/test_skipdata.c
+++ b/tests/test_skipdata.c
@@ -3,8 +3,8 @@
 
 #include <stdio.h>
 #include <stdlib.h>
-#include "../myinttypes.h"
 
+#include <capstone/platform.h>
 #include <capstone/capstone.h>
 
 struct platform {
@@ -31,7 +31,7 @@
 }
 
 #ifdef CAPSTONE_HAS_ARM
-static size_t mycallback(const uint8_t *buffer, size_t buffer_size, size_t offset, void *p)
+static size_t CAPSTONE_API mycallback(const uint8_t *buffer, size_t buffer_size, size_t offset, void *p)
 {
 	// always skip 2 bytes when encountering data
 	return 2;
@@ -74,7 +74,8 @@
 			(unsigned char*)X86_CODE32,
 			sizeof(X86_CODE32) - 1,
 			"X86 32 (Intel syntax) - Skip data with custom mnemonic",
-			0, 0,
+			CS_OPT_INVALID,
+			CS_OPT_OFF,
 			CS_OPT_SKIPDATA_SETUP,
 			(size_t) &skipdata,
 		},
@@ -93,7 +94,8 @@
 			(unsigned char*)RANDOM_CODE,
 			sizeof(RANDOM_CODE) - 1,
 			"Arm - Skip data with callback",
-			0, 0,
+			CS_OPT_INVALID,
+			CS_OPT_OFF,
 			CS_OPT_SKIPDATA_SETUP,
 			(size_t) &skipdata_callback,
 		},
@@ -131,12 +133,12 @@
 			printf("Disasm:\n");
 
 			for (j = 0; j < count; j++) {
-				printf("0x%"PRIx64":\t%s\t\t%s\n",
+				printf("0x%" PRIx64 ":\t%s\t\t%s\n",
 						insn[j].address, insn[j].mnemonic, insn[j].op_str);
 			}
 
 			// print out the next offset, after the last insn
-			printf("0x%"PRIx64":\n", insn[j-1].address + insn[j-1].size);
+			printf("0x%" PRIx64 ":\n", insn[j-1].address + insn[j-1].size);
 
 			// free memory allocated by cs_disasm()
 			cs_free(insn, count);
diff --git a/tests/test_sparc.c b/tests/test_sparc.c
index 8417cb9..8444b1f 100644
--- a/tests/test_sparc.c
+++ b/tests/test_sparc.c
@@ -2,8 +2,8 @@
 /* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2014 */
 
 #include <stdio.h>
-#include "../myinttypes.h"
 
+#include <capstone/platform.h>
 #include <capstone/capstone.h>
 
 struct platform {
@@ -123,10 +123,10 @@
 			printf("Disasm:\n");
 
 			for (j = 0; j < count; j++) {
-				printf("0x%"PRIx64":\t%s\t%s\n", insn[j].address, insn[j].mnemonic, insn[j].op_str);
+				printf("0x%" PRIx64 ":\t%s\t%s\n", insn[j].address, insn[j].mnemonic, insn[j].op_str);
 				print_insn_detail(&insn[j]);
 			}
-			printf("0x%"PRIx64":\n", insn[j-1].address + insn[j-1].size);
+			printf("0x%" PRIx64 ":\n", insn[j-1].address + insn[j-1].size);
 
 			// free memory allocated by cs_disasm()
 			cs_free(insn, count);
diff --git a/tests/test_systemz.c b/tests/test_systemz.c
index 2b8ea3b..ec1af9d 100644
--- a/tests/test_systemz.c
+++ b/tests/test_systemz.c
@@ -2,8 +2,8 @@
 /* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2014 */
 
 #include <stdio.h>
-#include "../myinttypes.h"
 
+#include <capstone/platform.h>
 #include <capstone/capstone.h>
 
 struct platform {
@@ -53,7 +53,7 @@
 				printf("\t\toperands[%u].type: ACREG = %u\n", i, op->reg);
 				break;
 			case SYSZ_OP_IMM:
-				printf("\t\toperands[%u].type: IMM = 0x%"PRIx64"\n", i, op->imm);
+				printf("\t\toperands[%u].type: IMM = 0x%" PRIx64 "\n", i, op->imm);
 				break;
 			case SYSZ_OP_MEM:
 				printf("\t\toperands[%u].type: MEM\n", i);
@@ -64,9 +64,9 @@
 					printf("\t\t\toperands[%u].mem.index: REG = %s\n",
 							i, cs_reg_name(handle, op->mem.index));
 				if (op->mem.length != 0)
-					printf("\t\t\toperands[%u].mem.length: 0x%"PRIx64"\n", i, op->mem.length);
+					printf("\t\t\toperands[%u].mem.length: 0x%" PRIx64 "\n", i, op->mem.length);
 				if (op->mem.disp != 0)
-					printf("\t\t\toperands[%u].mem.disp: 0x%"PRIx64"\n", i, op->mem.disp);
+					printf("\t\t\toperands[%u].mem.disp: 0x%" PRIx64 "\n", i, op->mem.disp);
 
 				break;
 		}
@@ -116,10 +116,10 @@
 			printf("Disasm:\n");
 
 			for (j = 0; j < count; j++) {
-				printf("0x%"PRIx64":\t%s\t%s\n", insn[j].address, insn[j].mnemonic, insn[j].op_str);
+				printf("0x%" PRIx64 ":\t%s\t%s\n", insn[j].address, insn[j].mnemonic, insn[j].op_str);
 				print_insn_detail(&insn[j]);
 			}
-			printf("0x%"PRIx64":\n", insn[j-1].address + insn[j-1].size);
+			printf("0x%" PRIx64 ":\n", insn[j-1].address + insn[j-1].size);
 
 			// free memory allocated by cs_disasm()
 			cs_free(insn, count);
diff --git a/tests/test_winkernel.cpp b/tests/test_winkernel.cpp
new file mode 100644
index 0000000..dade779
--- /dev/null
+++ b/tests/test_winkernel.cpp
@@ -0,0 +1,171 @@
+/* Capstone Disassembly Engine */
+/* By Satoshi Tanda <tanda.sat@gmail.com>, 2016 */
+#include <ntddk.h>
+
+#include <capstone/platform.h>
+#include <capstone/capstone.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "../utils.h"   // for cs_snprintf
+
+#ifdef __cplusplus
+}
+#endif
+
+EXTERN_C DRIVER_INITIALIZE DriverEntry;
+
+#pragma warning(push)
+#pragma warning(disable : 4005)   // 'identifier' : macro redefinition
+#pragma warning(disable : 4007)   // 'main': must be '__cdecl'
+
+// Drivers must protect floating point hardware state. See use of float simm:
+// Use KeSaveFloatingPointState/KeRestoreFloatingPointState around floating
+// point operations. Display Drivers should use the corresponding Eng... routines.
+#pragma warning(disable : 28110)  // Suppress this, as it is false positive.
+
+// "Import" existing tests into this file. All code is encaptured into unique
+// namespace so that the same name does not conflict. Beware that those code
+// is going to be compiled as C++ source file and not C files because this file
+// is C++.
+
+namespace basic {
+#include "test_basic.c"
+}  // namespace basic
+
+namespace detail {
+#include "test_detail.c"
+}  // namespace detail
+
+namespace skipdata {
+#include "test_skipdata.c"
+}  // namespace skipdata
+
+namespace iter {
+#include "test_iter.c"
+}  // namespace iter
+
+namespace customized_mnem_ {
+#include "test_customized_mnem.c"
+}  // namespace customized_mnem_
+
+namespace arm {
+#include "test_arm.c"
+}  // namespace arm
+
+namespace arm64 {
+#include "test_arm64.c"
+}  // namespace arm64
+
+namespace mips {
+#include "test_mips.c"
+}  // namespace mips
+
+namespace m68k {
+#include "test_m68k.c"
+}  // namespace m68k
+
+namespace ppc {
+#include "test_ppc.c"
+}  // namespace ppc
+
+namespace sparc {
+#include "test_sparc.c"
+}  // namespace sparc
+
+namespace systemz {
+#include "test_systemz.c"
+}  // namespace systemz
+
+namespace x86 {
+#include "test_x86.c"
+}  // namespace x86
+
+namespace xcore {
+#include "test_xcore.c"
+}  // namespace xcore
+
+#pragma warning(pop)
+
+// Exercises all existing regression tests
+static void test()
+{
+	KFLOATING_SAVE float_save;
+	NTSTATUS status;
+
+	// Any of Capstone APIs cannot be called at IRQL higher than DISPATCH_LEVEL
+	// since our malloc implementation using ExAllocatePoolWithTag() is able to
+	// allocate memory only up to the DISPATCH_LEVEL level.
+	NT_ASSERT(KeGetCurrentIrql() <= DISPATCH_LEVEL);
+
+	// On a 32bit driver, KeSaveFloatingPointState() is required before using any
+	// Capstone function because Capstone can access to the MMX/x87 registers and
+	// 32bit Windows requires drivers to use KeSaveFloatingPointState() before and
+	// KeRestoreFloatingPointState() after accesing to them. See "Using Floating
+	// Point or MMX in a WDM Driver" on MSDN for more details.
+	status = KeSaveFloatingPointState(&float_save);
+	if (!NT_SUCCESS(status)) {
+		printf("ERROR: Failed to save floating point state!\n");
+		return;
+	}
+
+	basic::test();
+	detail::test();
+	skipdata::test();
+	iter::test();
+	customized_mnem_::test();
+	arm::test();
+	arm64::test();
+	mips::test();
+	m68k::test();
+	ppc::test();
+	sparc::test();
+	systemz::test();
+	x86::test();
+	xcore::test();
+
+	// Restores the nonvolatile floating-point context.
+	KeRestoreFloatingPointState(&float_save);
+}
+
+// Functional test for cs_winkernel_vsnprintf()
+static void cs_winkernel_vsnprintf_test()
+{
+	char buf[10];
+	bool ok = true;
+	ok = (ok && cs_snprintf(buf, sizeof(buf), "%s", "") == 0 && strcmp(buf, "") == 0);
+	ok = (ok && cs_snprintf(buf, sizeof(buf), "%s", "0") == 1 && strcmp(buf, "0") == 0);
+	ok = (ok && cs_snprintf(buf, sizeof(buf), "%s", "012345678") == 9 && strcmp(buf, "012345678") == 0);
+	ok = (ok && cs_snprintf(buf, sizeof(buf), "%s", "0123456789") == 10 && strcmp(buf, "012345678") == 0);
+	ok = (ok && cs_snprintf(buf, sizeof(buf), "%s", "01234567890") == 11 && strcmp(buf, "012345678") == 0);
+	ok = (ok && cs_snprintf(buf, sizeof(buf), "%s", "0123456789001234567890") == 22 && strcmp(buf, "012345678") == 0);
+	if (!ok) {
+		printf("ERROR: cs_winkernel_vsnprintf_test() did not produce expected results!\n");
+	}
+}
+
+// Driver entry point
+EXTERN_C NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath)
+{
+	UNREFERENCED_PARAMETER(DriverObject);
+	UNREFERENCED_PARAMETER(RegistryPath);
+	cs_winkernel_vsnprintf_test();
+	test();
+	return STATUS_CANCELLED;
+}
+
+// This functions mimics printf() but does not return the same value as printf()
+// would do. printf() is required to exercise regression tests.
+_Use_decl_annotations_
+int __cdecl printf(const char * format, ...)
+{
+	NTSTATUS status;
+	va_list args;
+
+	va_start(args, format);
+	status = vDbgPrintEx(DPFLTR_DEFAULT_ID, DPFLTR_ERROR_LEVEL, format, args);
+	va_end(args);
+	return NT_SUCCESS(status);
+}
diff --git a/tests/test_x86.c b/tests/test_x86.c
index c8c83c3..f3b7350 100644
--- a/tests/test_x86.c
+++ b/tests/test_x86.c
@@ -3,8 +3,8 @@
 
 #include <stdio.h>
 #include <stdlib.h>
-#include "../myinttypes.h"
 
+#include <capstone/platform.h>
 #include <capstone/capstone.h>
 
 static csh handle;
@@ -196,7 +196,7 @@
 		printf("\timm_count: %u\n", count);
 		for (i = 1; i < count + 1; i++) {
 			int index = cs_op_index(ud, ins, X86_OP_IMM, i);
-			printf("\t\timms[%u]: 0x%"PRIx64 "\n", i, x86->operands[index].imm);
+			printf("\t\timms[%u]: 0x%" PRIx64 "\n", i, x86->operands[index].imm);
 		}
 	}
 
@@ -212,7 +212,7 @@
 				printf("\t\toperands[%u].type: REG = %s\n", i, cs_reg_name(handle, op->reg));
 				break;
 			case X86_OP_IMM:
-				printf("\t\toperands[%u].type: IMM = 0x%"PRIx64 "\n", i, op->imm);
+				printf("\t\toperands[%u].type: IMM = 0x%" PRIx64 "\n", i, op->imm);
 				break;
 			case X86_OP_MEM:
 				printf("\t\toperands[%u].type: MEM\n", i);
@@ -378,10 +378,10 @@
 			printf("Disasm:\n");
 
 			for (j = 0; j < count; j++) {
-				printf("0x%"PRIx64":\t%s\t%s\n\n", insn[j].address, insn[j].mnemonic, insn[j].op_str);
+				printf("0x%" PRIx64 ":\t%s\t%s\n\n", insn[j].address, insn[j].mnemonic, insn[j].op_str);
 				print_insn_detail(handle, platforms[i].mode, &insn[j]);
 			}
-			printf("0x%"PRIx64":\n", insn[j-1].address + insn[j-1].size);
+			printf("0x%" PRIx64 ":\n", insn[j-1].address + insn[j-1].size);
 
 			// free memory allocated by cs_disasm()
 			cs_free(insn, count);
diff --git a/tests/test_xcore.c b/tests/test_xcore.c
index 778e152..b382ef6 100644
--- a/tests/test_xcore.c
+++ b/tests/test_xcore.c
@@ -2,8 +2,8 @@
 /* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2014 */
 
 #include <stdio.h>
-#include "../myinttypes.h"
 
+#include <capstone/platform.h>
 #include <capstone/capstone.h>
 
 struct platform {
@@ -111,10 +111,10 @@
 			printf("Disasm:\n");
 
 			for (j = 0; j < count; j++) {
-				printf("0x%"PRIx64":\t%s\t%s\n", insn[j].address, insn[j].mnemonic, insn[j].op_str);
+				printf("0x%" PRIx64 ":\t%s\t%s\n", insn[j].address, insn[j].mnemonic, insn[j].op_str);
 				print_insn_detail(&insn[j]);
 			}
-			printf("0x%"PRIx64":\n", insn[j-1].address + insn[j-1].size);
+			printf("0x%" PRIx64 ":\n", insn[j-1].address + insn[j-1].size);
 
 			// free memory allocated by cs_disasm()
 			cs_free(insn, count);
diff --git a/windows/README b/windows/README
new file mode 100644
index 0000000..8d3ccbe
--- /dev/null
+++ b/windows/README
@@ -0,0 +1 @@
+This directory contains code specific to Windows platforms. 
diff --git a/windows/winkernel_mm.c b/windows/winkernel_mm.c
new file mode 100644
index 0000000..08ca994
--- /dev/null
+++ b/windows/winkernel_mm.c
@@ -0,0 +1,116 @@
+/* Capstone Disassembly Engine */
+/* By Satoshi Tanda <tanda.sat@gmail.com>, 2016 */
+#include "winkernel_mm.h"
+#include <ntddk.h>
+
+// A pool tag for memory allocation
+static const ULONG CS_WINKERNEL_POOL_TAG = 'kwsC';
+
+
+// A structure to implement realloc()
+typedef struct _CS_WINKERNEL_MEMBLOCK {
+	size_t size;   // A number of bytes allocated
+	char data[1];  // An address returned to a caller
+} CS_WINKERNEL_MEMBLOCK;
+C_ASSERT(sizeof(CS_WINKERNEL_MEMBLOCK) == sizeof(void *) * 2);
+
+
+// free()
+void CAPSTONE_API cs_winkernel_free(void *ptr)
+{
+	if (ptr) {
+		ExFreePoolWithTag(CONTAINING_RECORD(ptr, CS_WINKERNEL_MEMBLOCK, data), CS_WINKERNEL_POOL_TAG);
+	}
+}
+
+// malloc()
+void * CAPSTONE_API cs_winkernel_malloc(size_t size)
+{
+	// Disallow zero length allocation because they waste pool header space and,
+	// in many cases, indicate a potential validation issue in the calling code.
+	NT_ASSERT(size);
+
+	CS_WINKERNEL_MEMBLOCK *block = (CS_WINKERNEL_MEMBLOCK *)ExAllocatePoolWithTag(
+			NonPagedPoolNx, size + sizeof(CS_WINKERNEL_MEMBLOCK), CS_WINKERNEL_POOL_TAG);
+	if (!block) {
+		return NULL;
+	}
+	block->size = size;
+
+	return block->data;
+}
+
+// calloc()
+void * CAPSTONE_API cs_winkernel_calloc(size_t n, size_t size)
+{
+	size_t total = n * size;
+
+	void *new_ptr = cs_winkernel_malloc(total);
+	if (!new_ptr) {
+		return NULL;
+	}
+
+	return RtlFillMemory(new_ptr, total, 0);
+}
+
+// realloc()
+void * CAPSTONE_API cs_winkernel_realloc(void *ptr, size_t size)
+{
+	void *new_ptr = NULL;
+	size_t current_size = 0;
+	size_t smaller_size = 0;
+
+	if (!ptr) {
+		return cs_winkernel_malloc(size);
+	}
+
+	new_ptr = cs_winkernel_malloc(size);
+	if (!new_ptr) {
+		return NULL;
+	}
+
+	current_size = CONTAINING_RECORD(ptr, CS_WINKERNEL_MEMBLOCK, data)->size;
+	smaller_size = (current_size < size) ? current_size : size;
+	RtlCopyMemory(new_ptr, ptr, smaller_size);
+	cs_winkernel_free(ptr);
+
+	return new_ptr;
+}
+
+// vsnprintf(). _vsnprintf() is avaialable for drivers, but it differs from
+// vsnprintf() in a return value and when a null-terminater is set.
+// cs_winkernel_vsnprintf() takes care of those differences.
+#pragma warning(push)
+#pragma warning(disable : 28719)  // Banned API Usage : _vsnprintf is a Banned
+// API as listed in dontuse.h for security
+// purposes.
+int CAPSTONE_API cs_winkernel_vsnprintf(char *buffer, size_t count, const char *format, va_list argptr)
+{
+	int result = _vsnprintf(buffer, count, format, argptr);
+
+	// _vsnprintf() returns -1 when a string is truncated, and returns "count"
+	// when an entire string is stored but without '\0' at the end of "buffer".
+	// In both cases, null-terminater needs to be added manually.
+	if (result == -1 || (size_t)result == count) {
+		buffer[count - 1] = '\0';
+	}
+
+	if (result == -1) {
+		// In case when -1 is returned, the function has to get and return a number
+		// of characters that would have been written. This attempts so by re-tring
+		// the same conversion with temp buffer that is most likely big enough to
+		// complete formatting and get a number of characters that would have been
+		// written.
+		char* tmp = cs_winkernel_malloc(0x1000);
+		if (!tmp) {
+			return result;
+		}
+
+		result = _vsnprintf(tmp, 0x1000, format, argptr);
+		NT_ASSERT(result != -1);
+		cs_winkernel_free(tmp);
+	}
+
+	return result;
+}
+#pragma warning(pop)
diff --git a/windows/winkernel_mm.h b/windows/winkernel_mm.h
new file mode 100644
index 0000000..2df3bfd
--- /dev/null
+++ b/windows/winkernel_mm.h
@@ -0,0 +1,22 @@
+/* Capstone Disassembly Engine */
+/* By Satoshi Tanda <tanda.sat@gmail.com>, 2016 */
+#ifndef CS_WINDOWS_WINKERNEL_MM_H
+#define CS_WINDOWS_WINKERNEL_MM_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <capstone/capstone.h>
+
+void CAPSTONE_API cs_winkernel_free(void *ptr);
+void * CAPSTONE_API cs_winkernel_malloc(size_t size);
+void * CAPSTONE_API cs_winkernel_calloc(size_t n, size_t size);
+void * CAPSTONE_API cs_winkernel_realloc(void *ptr, size_t size);
+int CAPSTONE_API cs_winkernel_vsnprintf(char *buffer, size_t count, const char *format, va_list argptr);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  // CS_WINDOWS_WINKERNEL_MM_H
diff --git a/xcode/Capstone.xcodeproj/project.pbxproj b/xcode/Capstone.xcodeproj/project.pbxproj
index efe9e71..404f459 100644
--- a/xcode/Capstone.xcodeproj/project.pbxproj
+++ b/xcode/Capstone.xcodeproj/project.pbxproj
@@ -347,7 +347,6 @@
 		DC474F6B19DE6F3B00BCA449 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
 		DC5BFF4019EE544E008CA585 /* test_iter */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = test_iter; sourceTree = BUILT_PRODUCTS_DIR; };
 		DC5BFF4819EE54BE008CA585 /* test_iter.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = test_iter.c; path = ../tests/test_iter.c; sourceTree = "<group>"; };
-		DC696C5E1AD4600200A56306 /* myinttypes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = myinttypes.h; path = ../myinttypes.h; sourceTree = "<group>"; };
 		DCA3577B1BC2C0290094BB3F /* M68KDisassembler.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = M68KDisassembler.c; sourceTree = "<group>"; };
 		DCA3577C1BC2C0290094BB3F /* M68KDisassembler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = M68KDisassembler.h; sourceTree = "<group>"; };
 		DCA3577D1BC2C0290094BB3F /* M68KInstPrinter.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = M68KInstPrinter.c; sourceTree = "<group>"; };
@@ -704,7 +703,6 @@
 				DCFE24B719DDCE1E00EF8EA9 /* MCInstrDesc.h */,
 				DCFE24A019DDCDEE00EF8EA9 /* MCRegisterInfo.c */,
 				DCFE24B819DDCE1E00EF8EA9 /* MCRegisterInfo.h */,
-				DC696C5E1AD4600200A56306 /* myinttypes.h */,
 				DCFE24A119DDCDEE00EF8EA9 /* SStream.c */,
 				DCFE24B919DDCE1E00EF8EA9 /* SStream.h */,
 				DCFE24A219DDCDEE00EF8EA9 /* utils.c */,