gas/
authorH.J. Lu <hjl.tools@gmail.com>
Sun, 9 Sep 2007 01:22:57 +0000 (01:22 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Sun, 9 Sep 2007 01:22:57 +0000 (01:22 +0000)
2007-09-08  H.J. Lu  <hongjiu.lu@intel.com>

* configure.in (AC_CHECK_HEADERS): Add limits.h.
* configure: Regenerated.
* config.in: Likewise.

* config/tc-i386.c: Include "opcodes/i386-init.h".
(_i386_insn): Use i386_operand_type for types.
(cpu_arch_flags): Updated to new types with bitfield.
(cpu_arch_tune_flags): Likewise.
(cpu_arch_isa_flags): Likewise.
(cpu_arch): Likewise.
(i386_align_code): Likewise.
(set_code_flag): Likewise.
(set_16bit_gcc_code_flag): Likewise.
(set_cpu_arch): Likewise.
(md_assemble): Likewise.
(parse_insn): Likewise.
(process_operands): Likewise.
(output_branch): Likewise.
(output_jump): Likewise.
(parse_real_register): Likewise.
(mode_from_disp_size): Likewise.
(smallest_imm_type): Likewise.
(pi): Likewise.
(type_names): Likewise.
(pt): Likewise.
(pte): Likewise.
(swap_2_operands): Likewise.
(optimize_imm): Likewise.
(optimize_disp): Likewise.
(match_template): Likewise.
(check_string): Likewise.
(process_suffix): Likewise.
(check_byte_reg): Likewise.
(check_long_reg): Likewise.
(check_qword_reg): Likewise.
(check_word_reg): Likewise.
(finalize_imm): Likewise.
(build_modrm_byte): Likewise.
(output_insn): Likewise.
(disp_size): Likewise.
(imm_size): Likewise.
(output_disp): Likewise.
(output_imm): Likewise.
(gotrel): Likewise.
(i386_immediate): Likewise.
(i386_displacement): Likewise.
(i386_index_check): Likewise.
(i386_operand): Likewise.
(parse_real_register): Likewise.
(i386_intel_operand): Likewise.
(intel_e09): Likewise.
(intel_bracket_expr): Likewise.
(intel_e11): Likewise.
(cpu_arch_flags_not): New.
(cpu_flags_check_x64): Likewise.
(cpu_flags_all_zero): Likewise.
(cpu_flags_not): Likewise.
(i386_cpu_flags_biop): Likewise.
(cpu_flags_biop): Likewise.
(cpu_flags_match); Likewise.
(acc32): New.
(acc64): Likewise.
(control): Likewise.
(reg16_inoutportreg): Likewise.
(disp16): Likewise.
(disp32): Likewise.
(disp32s): Likewise.
(disp16_32): Likewise.
(anydisp): Likewise.
(baseindex): Likewise.
(regxmm): Likewise.
(imm8): Likewise.
(imm8s): Likewise.
(imm16): Likewise.
(imm32): Likewise.
(imm32s): Likewise.
(imm64): Likewise.
(imm16_32): Likewise.
(imm16_32s): Likewise.
(imm16_32_32s): Likewise.
(operand_type): Likewise.
(operand_type_check): Likewise.
(operand_type_match): Likewise.
(operand_type_register_match): Likewise.
(update_imm): Likewise.
(set_code_flag): Also update cpu_arch_flags_not.
(set_16bit_gcc_code_flag): Likewise.
(md_begin): Likewise.
(parse_insn): Use cpu_flags_check_x64 to check 64bit support.
Use cpu_flags_match to match instructions.
(i386_target_format): Update cpu_arch_isa_flags and
cpu_arch_tune_flags to i386_cpu_flags type with bitfield.
(smallest_imm_type): Check cpu_arch_tune to tune for i486.
(match_template): Don't initialize overlap0, overlap1,
overlap2, overlap3 and operand_types.
(process_suffix): Handle crc32 with 64bit register.
(MATCH): Removed.
(CONSISTENT_REGISTER_MATCH): Likewise.

* config/tc-i386.h (arch_entry): Updated to i386_cpu_flags
type.

opcodes/

2007-09-08  H.J. Lu  <hongjiu.lu@intel.com>

* configure.in (AC_CHECK_HEADERS): Add limits.h.
* configure: Regenerated.
* config.in: Likewise.

* i386-gen.c: Include "sysdep.h" instead of <stdlib.h> and
<string.h>.  Use xstrerror instead of strerror.
(initializer): New.
(cpu_flag_init): Likewise.
(bitfield): Likewise.
(BITFIELD): New.
(cpu_flags): Likewise.
(opcode_modifiers): Likewise.
(operand_types): Likewise.
(compare): Likewise.
(set_cpu_flags): Likewise.
(output_cpu_flags): Likewise.
(process_i386_cpu_flags): Likewise.
(output_opcode_modifier): Likewise.
(process_i386_opcode_modifier): Likewise.
(output_operand_type): Likewise.
(process_i386_operand_type): Likewise.
(set_bitfield): Likewise.
(operand_type_init): Likewise.
(process_i386_initializers): Likewise.
(process_i386_opcodes): Call process_i386_opcode_modifier to
process opcode_modifier.  Call process_i386_operand_type to
process operand_types.
(process_i386_registers): Call process_i386_operand_type to
process reg_type.
(main): Check unused bits in i386_cpu_flags and i386_operand_type.
Sort cpu_flags, opcode_modifiers and operand_types.  Call
process_i386_initializers.

* i386-init.h: New.
* i386-tbl.h: Regenerated.

* i386-opc.h: Include <limits.h>.
(CHAR_BIT): Define as 8 if not defined.
(Cpu186): Changed to position of bitfiled.
(Cpu286): Likewise.
(Cpu386): Likewise.
(Cpu486): Likewise.
(Cpu586): Likewise.
(Cpu686): Likewise.
(CpuP4): Likewise.
(CpuK6): Likewise.
(CpuK8): Likewise.
(CpuMMX): Likewise.
(CpuMMX2): Likewise.
(CpuSSE): Likewise.
(CpuSSE2): Likewise.
(Cpu3dnow): Likewise.
(Cpu3dnowA): Likewise.
(CpuSSE3): Likewise.
(CpuPadLock): Likewise.
(CpuSVME): Likewise.
(CpuVMX): Likewise.
(CpuSSSE3): Likewise.
(CpuSSE4a): Likewise.
(CpuABM): Likewise.
(CpuSSE4_1): Likewise.
(CpuSSE4_2): Likewise.
(Cpu64): Likewise.
(CpuNo64): Likewise.
(D): Likewise.
(W): Likewise.
(Modrm): Likewise.
(ShortForm): Likewise.
(Jump): Likewise.
(JumpDword): Likewise.
(JumpByte): Likewise.
(JumpInterSegment): Likewise.
(FloatMF): Likewise.
(FloatR): Likewise.
(FloatD): Likewise.
(Size16): Likewise.
(Size32): Likewise.
(Size64): Likewise.
(IgnoreSize): Likewise.
(DefaultSize): Likewise.
(No_bSuf): Likewise.
(No_wSuf): Likewise.
(No_lSuf): Likewise.
(No_sSuf): Likewise.
(No_qSuf): Likewise.
(No_xSuf): Likewise.
(FWait): Likewise.
(IsString): Likewise.
(RegKludge): Likewise.
(IsPrefix): Likewise.
(ImmExt): Likewise.
(NoRex64): Likewise.
(Rex64): Likewise.
(Ugh): Likewise.
(Reg8): Likewise.
(Reg16): Likewise.
(Reg32): Likewise.
(Reg64): Likewise.
(FloatReg): Likewise.
(RegMMX): Likewise.
(RegXMM): Likewise.
(Imm8): Likewise.
(Imm8S): Likewise.
(Imm16): Likewise.
(Imm32): Likewise.
(Imm32S): Likewise.
(Imm64): Likewise.
(Imm1): Likewise.
(BaseIndex): Likewise.
(Disp8): Likewise.
(Disp16): Likewise.
(Disp32): Likewise.
(Disp32S): Likewise.
(Disp64): Likewise.
(InOutPortReg): Likewise.
(ShiftCount): Likewise.
(Control): Likewise.
(Debug): Likewise.
(Test): Likewise.
(SReg2): Likewise.
(SReg3): Likewise.
(Acc): Likewise.
(FloatAcc): Likewise.
(JumpAbsolute): Likewise.
(EsSeg): Likewise.
(RegMem): Likewise.
(OTMax): Likewise.
(Reg): Commented out.
(WordReg): Likewise.
(ImplicitRegister): Likewise.
(Imm): Likewise.
(EncImm): Likewise.
(Disp): Likewise.
(AnyMem): Likewise.
(LLongMem): Likewise.
(LongMem): Likewise.
(ShortMem): Likewise.
(WordMem): Likewise.
(ByteMem): Likewise.
(CpuMax): New
(CpuLM): Likewise.
(CpuNumOfUints): Likewise.
(CpuNumOfBits): Likewise.
(CpuUnused): Likewise.
(OTNumOfUints): Likewise.
(OTNumOfBits): Likewise.
(OTUnused): Likewise.
(i386_cpu_flags): New type.
(i386_operand_type): Likewise.
(i386_opcode_modifier): Likewise.
(CpuSledgehammer): Removed.
(CpuSSE4): Likewise.
(CpuUnknownFlags): Likewise.
(Reg): Likewise.
(WordReg): Likewise.
(ImplicitRegister): Likewise.
(Imm): Likewise.
(EncImm): Likewise.
(Disp): Likewise.
(AnyMem): Likewise.
(LLongMem): Likewise.
(LongMem): Likewise.
(ShortMem): Likewise.
(WordMem): Likewise.
(ByteMem): Likewise.
(template): Use i386_cpu_flags for cpu_flags, use
i386_opcode_modifier for opcode_modifier, use
i386_operand_type for operand_types.
(reg_entry): Use i386_operand_type for reg_type.

* Makefile.am (HFILES): Add i386-init.h.
($(srcdir)/i386-init.h): New rule.
($(srcdir)/i386-tbl.h): Depend on $(srcdir)/i386-init.h
instead.
* Makefile.in: Regenerated.

16 files changed:
gas/ChangeLog
gas/config.in
gas/config/tc-i386.c
gas/config/tc-i386.h
gas/configure
gas/configure.in
opcodes/ChangeLog
opcodes/Makefile.am
opcodes/Makefile.in
opcodes/config.in
opcodes/configure
opcodes/configure.in
opcodes/i386-gen.c
opcodes/i386-init.h [new file with mode: 0644]
opcodes/i386-opc.h
opcodes/i386-tbl.h

index fd303ff1246540dac7612d1169c5c6629a9fd704..64d64d569efb8b174fdb880deea03433211a380d 100644 (file)
@@ -1,3 +1,107 @@
+2007-09-08  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * configure.in (AC_CHECK_HEADERS): Add limits.h.
+       * configure: Regenerated.
+       * config.in: Likewise.
+
+       * config/tc-i386.c: Include "opcodes/i386-init.h".
+       (_i386_insn): Use i386_operand_type for types.
+       (cpu_arch_flags): Updated to new types with bitfield.
+       (cpu_arch_tune_flags): Likewise.
+       (cpu_arch_isa_flags): Likewise.
+       (cpu_arch): Likewise.
+       (i386_align_code): Likewise.
+       (set_code_flag): Likewise.
+       (set_16bit_gcc_code_flag): Likewise.
+       (set_cpu_arch): Likewise.
+       (md_assemble): Likewise.
+       (parse_insn): Likewise.
+       (process_operands): Likewise.
+       (output_branch): Likewise.
+       (output_jump): Likewise.
+       (parse_real_register): Likewise.
+       (mode_from_disp_size): Likewise.
+       (smallest_imm_type): Likewise.
+       (pi): Likewise.
+       (type_names): Likewise.
+       (pt): Likewise.
+       (pte): Likewise.
+       (swap_2_operands): Likewise.
+       (optimize_imm): Likewise.
+       (optimize_disp): Likewise.
+       (match_template): Likewise.
+       (check_string): Likewise.
+       (process_suffix): Likewise.
+       (check_byte_reg): Likewise.
+       (check_long_reg): Likewise.
+       (check_qword_reg): Likewise.
+       (check_word_reg): Likewise.
+       (finalize_imm): Likewise.
+       (build_modrm_byte): Likewise.
+       (output_insn): Likewise.
+       (disp_size): Likewise.
+       (imm_size): Likewise.
+       (output_disp): Likewise.
+       (output_imm): Likewise.
+       (gotrel): Likewise.
+       (i386_immediate): Likewise.
+       (i386_displacement): Likewise.
+       (i386_index_check): Likewise.
+       (i386_operand): Likewise.
+       (parse_real_register): Likewise.
+       (i386_intel_operand): Likewise.
+       (intel_e09): Likewise.
+       (intel_bracket_expr): Likewise.
+       (intel_e11): Likewise.
+       (cpu_arch_flags_not): New.
+       (cpu_flags_check_x64): Likewise.
+       (cpu_flags_all_zero): Likewise.
+       (cpu_flags_not): Likewise.
+       (i386_cpu_flags_biop): Likewise.
+       (cpu_flags_biop): Likewise.
+       (cpu_flags_match); Likewise.
+       (acc32): New.
+       (acc64): Likewise.
+       (control): Likewise.
+       (reg16_inoutportreg): Likewise.
+       (disp16): Likewise.
+       (disp32): Likewise.
+       (disp32s): Likewise.
+       (disp16_32): Likewise.
+       (anydisp): Likewise.
+       (baseindex): Likewise.
+       (regxmm): Likewise.
+       (imm8): Likewise.
+       (imm8s): Likewise.
+       (imm16): Likewise.
+       (imm32): Likewise.
+       (imm32s): Likewise.
+       (imm64): Likewise.
+       (imm16_32): Likewise.
+       (imm16_32s): Likewise.
+       (imm16_32_32s): Likewise.
+       (operand_type): Likewise.
+       (operand_type_check): Likewise.
+       (operand_type_match): Likewise.
+       (operand_type_register_match): Likewise.
+       (update_imm): Likewise.
+       (set_code_flag): Also update cpu_arch_flags_not.
+       (set_16bit_gcc_code_flag): Likewise.
+       (md_begin): Likewise.
+       (parse_insn): Use cpu_flags_check_x64 to check 64bit support.
+       Use cpu_flags_match to match instructions.
+       (i386_target_format): Update cpu_arch_isa_flags and
+       cpu_arch_tune_flags to i386_cpu_flags type with bitfield.
+       (smallest_imm_type): Check cpu_arch_tune to tune for i486.
+       (match_template): Don't initialize overlap0, overlap1,
+       overlap2, overlap3 and operand_types.
+       (process_suffix): Handle crc32 with 64bit register.
+       (MATCH): Removed.
+       (CONSISTENT_REGISTER_MATCH): Likewise.
+
+       * config/tc-i386.h (arch_entry): Updated to i386_cpu_flags
+       type.
+
 2007-09-06  H.J. Lu  <hongjiu.lu@intel.com>
 
        * config/tc-i386.c (match_template): Handle invlpga, vmload,
index 20d5df9a4e2f8432cbec1a277edbcd43fb0693cc..7ac901d6fdbb48bb6484c22370a67581119891d4 100644 (file)
@@ -59,6 +59,9 @@
 /* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H
 
+/* Define to 1 if you have the <limits.h> header file. */
+#undef HAVE_LIMITS_H
+
 /* Define to 1 if you have the <memory.h> header file. */
 #undef HAVE_MEMORY_H
 
index 54841b17578de662b99d340d89b3cc57e4b9592e..451e466a7974e16af15ff6dcf6a544a91091ce05 100644 (file)
@@ -33,6 +33,7 @@
 #include "dwarf2dbg.h"
 #include "dw2gencfi.h"
 #include "elf/x86-64.h"
+#include "opcodes/i386-init.h"
 
 #ifndef REGISTER_WARNINGS
 #define REGISTER_WARNINGS 1
@@ -131,7 +132,7 @@ struct _i386_insn
 
     /* TYPES [i] is the type (see above #defines) which tells us how to
        use OP[i] for the corresponding operand.  */
-    unsigned int types[MAX_OPERANDS];
+    i386_operand_type types[MAX_OPERANDS];
 
     /* Displacement expression, immediate expression, or register for each
        operand.  */
@@ -309,7 +310,10 @@ static const char *cpu_arch_name = NULL;
 static const char *cpu_sub_arch_name = NULL;
 
 /* CPU feature flags.  */
-static unsigned int cpu_arch_flags = CpuUnknownFlags | CpuNo64;
+static i386_cpu_flags cpu_arch_flags = CPU_UNKNOWN_FLAGS;
+
+/* Bitwise NOT of cpu_arch_flags.  */
+static i386_cpu_flags cpu_arch_flags_not;
 
 /* If we have selected a cpu we are generating instructions for.  */
 static int cpu_arch_tune_set = 0;
@@ -318,13 +322,13 @@ static int cpu_arch_tune_set = 0;
 static enum processor_type cpu_arch_tune = PROCESSOR_UNKNOWN;
 
 /* CPU feature flags of cpu we are generating instructions for.  */
-static unsigned int cpu_arch_tune_flags = 0;
+static i386_cpu_flags cpu_arch_tune_flags;
 
 /* CPU instruction set architecture used.  */
 static enum processor_type cpu_arch_isa = PROCESSOR_UNKNOWN;
 
 /* CPU feature flags of instruction set architecture used.  */
-static unsigned int cpu_arch_isa_flags = 0;
+static i386_cpu_flags cpu_arch_isa_flags;
 
 /* If set, conditional jumps are not automatically promoted to handle
    larger than a byte offset.  */
@@ -421,103 +425,89 @@ const relax_typeS md_relax_table[] =
 static const arch_entry cpu_arch[] =
 {
   {"generic32", PROCESSOR_GENERIC32,
-   Cpu186|Cpu286|Cpu386},
+   CPU_GENERIC32_FLAGS },
   {"generic64", PROCESSOR_GENERIC64,
-   Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuP4|CpuMMX
-   |CpuMMX2|CpuSSE|CpuSSE2},
+   CPU_GENERIC64_FLAGS },
   {"i8086", PROCESSOR_UNKNOWN,
-   0},
+   CPU_NONE_FLAGS },
   {"i186", PROCESSOR_UNKNOWN,
-   Cpu186},
+   CPU_I186_FLAGS },
   {"i286", PROCESSOR_UNKNOWN,
-   Cpu186|Cpu286},
+   CPU_I286_FLAGS },
   {"i386", PROCESSOR_I386,
-   Cpu186|Cpu286|Cpu386},
+   CPU_I386_FLAGS },
   {"i486", PROCESSOR_I486,
-   Cpu186|Cpu286|Cpu386|Cpu486},
+   CPU_I486_FLAGS },
   {"i586", PROCESSOR_PENTIUM,
-   Cpu186|Cpu286|Cpu386|Cpu486|Cpu586},
+   CPU_I586_FLAGS },
   {"i686", PROCESSOR_PENTIUMPRO,
-   Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686},
+   CPU_I686_FLAGS },
   {"pentium", PROCESSOR_PENTIUM,
-   Cpu186|Cpu286|Cpu386|Cpu486|Cpu586},
+   CPU_I586_FLAGS },
   {"pentiumpro",PROCESSOR_PENTIUMPRO,
-   Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686},
+   CPU_I686_FLAGS },
   {"pentiumii",        PROCESSOR_PENTIUMPRO,
-   Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuMMX},
+   CPU_P2_FLAGS },
   {"pentiumiii",PROCESSOR_PENTIUMPRO,
-   Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuMMX|CpuMMX2|CpuSSE},
+   CPU_P3_FLAGS },
   {"pentium4", PROCESSOR_PENTIUM4,
-   Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuP4|CpuMMX
-   |CpuMMX2|CpuSSE|CpuSSE2},
+   CPU_P4_FLAGS },
   {"prescott", PROCESSOR_NOCONA,
-   Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuP4|CpuMMX
-   |CpuMMX2|CpuSSE|CpuSSE2|CpuSSE3},
+   CPU_CORE_FLAGS },
   {"nocona", PROCESSOR_NOCONA,
-   Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuP4|CpuMMX
-   |CpuMMX2|CpuSSE|CpuSSE2|CpuSSE3},
+   CPU_NOCONA_FLAGS },
   {"yonah", PROCESSOR_CORE,
-   Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuP4|CpuMMX
-   |CpuMMX2|CpuSSE|CpuSSE2|CpuSSE3},
+   CPU_CORE_FLAGS },
   {"core", PROCESSOR_CORE,
-   Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuP4|CpuMMX
-   |CpuMMX2|CpuSSE|CpuSSE2|CpuSSE3},
+   CPU_CORE_FLAGS },
   {"merom", PROCESSOR_CORE2,
-   Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuP4|CpuMMX
-   |CpuMMX2|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3},
+   CPU_CORE2_FLAGS },
   {"core2", PROCESSOR_CORE2,
-   Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuP4|CpuMMX
-   |CpuMMX2|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3},
+   CPU_CORE2_FLAGS },
   {"k6", PROCESSOR_K6,
-   Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|CpuK6|CpuMMX},
+   CPU_K6_FLAGS },
   {"k6_2", PROCESSOR_K6,
-   Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|CpuK6|CpuMMX|Cpu3dnow},
+   CPU_K6_2_FLAGS },
   {"athlon", PROCESSOR_ATHLON,
-   Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuK6
-   |CpuMMX|CpuMMX2|Cpu3dnow|Cpu3dnowA},
+   CPU_ATHLON_FLAGS },
   {"sledgehammer", PROCESSOR_K8,
-   Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuK6
-   |CpuSledgehammer|CpuMMX|CpuMMX2|Cpu3dnow|Cpu3dnowA|CpuSSE|CpuSSE2},
+   CPU_K8_FLAGS },
   {"opteron", PROCESSOR_K8,
-   Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuK6
-   |CpuSledgehammer|CpuMMX|CpuMMX2|Cpu3dnow|Cpu3dnowA|CpuSSE|CpuSSE2},
+   CPU_K8_FLAGS },
   {"k8", PROCESSOR_K8,
-   Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuK6
-   |CpuSledgehammer|CpuMMX|CpuMMX2|Cpu3dnow|Cpu3dnowA|CpuSSE|CpuSSE2},
+   CPU_K8_FLAGS },
   {"amdfam10", PROCESSOR_AMDFAM10,
-   Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuK6|CpuSledgehammer
-   |CpuMMX|CpuMMX2|Cpu3dnow|Cpu3dnowA|CpuSSE|CpuSSE2|CpuSSE3|CpuSSE4a
-   |CpuABM},
+   CPU_AMDFAM10_FLAGS },
   {".mmx", PROCESSOR_UNKNOWN,
-   CpuMMX},
+   CPU_MMX_FLAGS },
   {".sse", PROCESSOR_UNKNOWN,
-   CpuMMX|CpuMMX2|CpuSSE},
+   CPU_SSE_FLAGS },
   {".sse2", PROCESSOR_UNKNOWN,
-   CpuMMX|CpuMMX2|CpuSSE|CpuSSE2},
+   CPU_SSE2_FLAGS },
   {".sse3", PROCESSOR_UNKNOWN,
-   CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuSSE3},
+   CPU_SSE3_FLAGS },
   {".ssse3", PROCESSOR_UNKNOWN,
-   CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3},
+   CPU_SSSE3_FLAGS },
   {".sse4.1", PROCESSOR_UNKNOWN,
-   CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuSSE4_1},
+   CPU_SSE4_1_FLAGS },
   {".sse4.2", PROCESSOR_UNKNOWN,
-   CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuSSE4},
+   CPU_SSE4_2_FLAGS },
   {".sse4", PROCESSOR_UNKNOWN,
-   CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuSSE4},
+   CPU_SSE4_2_FLAGS },
   {".3dnow", PROCESSOR_UNKNOWN,
-   CpuMMX|Cpu3dnow},
+   CPU_3DNOW_FLAGS },
   {".3dnowa", PROCESSOR_UNKNOWN,
-   CpuMMX|CpuMMX2|Cpu3dnow|Cpu3dnowA},
+   CPU_3DNOWA_FLAGS },
   {".padlock", PROCESSOR_UNKNOWN,
-   CpuPadLock},
+   CPU_PADLOCK_FLAGS },
   {".pacifica", PROCESSOR_UNKNOWN,
-   CpuSVME},
+   CPU_SVME_FLAGS },
   {".svme", PROCESSOR_UNKNOWN,
-   CpuSVME},
+   CPU_SVME_FLAGS },
   {".sse4a", PROCESSOR_UNKNOWN,
-   CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuSSE3|CpuSSE4a},
+   CPU_SSE4A_FLAGS },
   {".abm", PROCESSOR_UNKNOWN,
-   CpuABM}
+   CPU_ABM_FLAGS },
 };
 
 const pseudo_typeS md_pseudo_table[] =
@@ -788,7 +778,7 @@ i386_align_code (fragS *fragP, int count)
            case PROCESSOR_UNKNOWN:
              /* We use cpu_arch_isa_flags to check if we SHOULD
                 optimize for Cpu686.  */
-             if ((cpu_arch_isa_flags & Cpu686) != 0)
+             if (cpu_arch_isa_flags.bitfield.cpui686)
                patt = alt_long_patt;
              else
                patt = f32_patt;
@@ -835,7 +825,7 @@ i386_align_code (fragS *fragP, int count)
            case PROCESSOR_GENERIC32:
              /* We use cpu_arch_isa_flags to check if we CAN optimize
                 for Cpu686.  */
-             if ((cpu_arch_isa_flags & Cpu686) != 0)
+             if (cpu_arch_isa_flags.bitfield.cpui686)
                patt = alt_short_patt;
              else
                patt = f32_patt;
@@ -845,7 +835,7 @@ i386_align_code (fragS *fragP, int count)
            case PROCESSOR_NOCONA:
            case PROCESSOR_CORE:
            case PROCESSOR_CORE2:
-             if ((cpu_arch_isa_flags & Cpu686) != 0)
+             if (cpu_arch_isa_flags.bitfield.cpui686)
                patt = alt_long_patt;
              else
                patt = f32_patt;
@@ -893,10 +883,275 @@ i386_align_code (fragS *fragP, int count)
   fragP->fr_var = count;
 }
 
+static int
+cpu_flags_check_x64 (i386_cpu_flags f)
+{
+  return !((flag_code == CODE_64BIT && f.bitfield.cpuno64)
+          || (flag_code != CODE_64BIT && f.bitfield.cpu64));
+}
+
+static int
+cpu_flags_all_zero (i386_cpu_flags f)
+{
+  unsigned int j;
+
+  for (j = 0; j < ARRAY_SIZE (f.array); j++)
+    if (f.array [j])
+      return 0;
+
+  return 1;
+}
+
+static i386_cpu_flags
+cpu_flags_not (i386_cpu_flags x)
+{
+  unsigned int j;
+
+  for (j = 0; j < ARRAY_SIZE (x.array); j++)
+    x.array [j] = ~x.array [j];
+
+#ifdef CpuUnused
+  x.bitfield.unused = 0;
+#endif
+
+  return x;
+}
+
+enum i386_array_biop
+{
+  and,
+  or,
+  xor
+};
+
+static i386_cpu_flags
+cpu_flags_biop (i386_cpu_flags x, i386_cpu_flags y,
+               enum i386_array_biop op)
+{
+  unsigned int j;
+
+  switch (op)
+    {
+    case and:
+      for (j = 0; j < ARRAY_SIZE (x.array); j++)
+       x.array [j] &= y.array [j];
+      break;
+    case or:
+      for (j = 0; j < ARRAY_SIZE (x.array); j++)
+       x.array [j] |= y.array [j];
+      break;
+    case xor:
+      for (j = 0; j < ARRAY_SIZE (x.array); j++)
+       x.array [j] ^= y.array [j];
+      break;
+    default:
+      abort ();
+    }
+
+  return x;
+}
+
+static int
+cpu_flags_match (i386_cpu_flags x)
+{
+  i386_cpu_flags not = cpu_arch_flags_not;
+
+  not.bitfield.cpu64 = 1;
+  not.bitfield.cpuno64 = 1;
+
+  x.bitfield.cpu64 = 0;
+  x.bitfield.cpuno64 = 0;
+
+  return cpu_flags_all_zero (cpu_flags_biop (x, not, and));
+}
+
+static int
+operand_type_all_zero (i386_operand_type t)
+{
+  unsigned int j;
+
+  for (j = 0; j < ARRAY_SIZE (t.array); j++)
+    if (t.array [j])
+      return 0;
+
+  return 1;
+}
+
+static i386_operand_type
+operand_type_biop (i386_operand_type x, i386_operand_type y,
+                  enum i386_array_biop op)
+{
+  unsigned int j;
+
+  switch (op)
+    {
+    case and:
+      for (j = 0; j < ARRAY_SIZE (x.array); j++)
+       x.array [j] &= y.array [j];
+      break;
+    case or:
+      for (j = 0; j < ARRAY_SIZE (x.array); j++)
+       x.array [j] |= y.array [j];
+      break;
+    case xor:
+      for (j = 0; j < ARRAY_SIZE (x.array); j++)
+       x.array [j] ^= y.array [j];
+      break;
+    default:
+      abort ();
+    }
+
+  return x;
+}
+
+static const i386_operand_type acc32 = OPERAND_TYPE_ACC32;
+static const i386_operand_type acc64 = OPERAND_TYPE_ACC64;
+static const i386_operand_type control = OPERAND_TYPE_CONTROL;
+static const i386_operand_type reg16_inoutportreg
+  = OPERAND_TYPE_REG16_INOUTPORTREG;
+static const i386_operand_type disp16 = OPERAND_TYPE_DISP16;
+static const i386_operand_type disp32 = OPERAND_TYPE_DISP32;
+static const i386_operand_type disp32s = OPERAND_TYPE_DISP32S;
+static const i386_operand_type disp16_32 = OPERAND_TYPE_DISP16_32;
+static const i386_operand_type anydisp
+  = OPERAND_TYPE_ANYDISP;
+static const i386_operand_type baseindex = OPERAND_TYPE_BASEINDEX;
+static const i386_operand_type regxmm = OPERAND_TYPE_REGXMM;
+static const i386_operand_type imm8 = OPERAND_TYPE_IMM8;
+static const i386_operand_type imm8s = OPERAND_TYPE_IMM8S;
+static const i386_operand_type imm16 = OPERAND_TYPE_IMM16;
+static const i386_operand_type imm32 = OPERAND_TYPE_IMM32;
+static const i386_operand_type imm32s = OPERAND_TYPE_IMM32S;
+static const i386_operand_type imm64 = OPERAND_TYPE_IMM64;
+static const i386_operand_type imm16_32 = OPERAND_TYPE_IMM16_32;
+static const i386_operand_type imm16_32s = OPERAND_TYPE_IMM16_32S;
+static const i386_operand_type imm16_32_32s = OPERAND_TYPE_IMM16_32_32S;
+
+enum operand_type
+{
+  reg,
+  implicitregister,
+  imm,
+  disp,
+  anymem
+};
+
+static int
+operand_type_check (i386_operand_type t, enum operand_type c)
+{
+  switch (c)
+    {
+    case reg:
+      return (t.bitfield.reg8
+             || t.bitfield.reg16
+             || t.bitfield.reg32
+             || t.bitfield.reg64);
+
+    case implicitregister:
+      return (t.bitfield.inoutportreg
+             || t.bitfield.shiftcount
+             || t.bitfield.acc
+             || t.bitfield.floatacc);
+
+    case imm:
+      return (t.bitfield.imm8
+             || t.bitfield.imm8s
+             || t.bitfield.imm16
+             || t.bitfield.imm32
+             || t.bitfield.imm32s
+             || t.bitfield.imm64);
+
+    case disp:
+      return (t.bitfield.disp8
+             || t.bitfield.disp16
+             || t.bitfield.disp32
+             || t.bitfield.disp32s
+             || t.bitfield.disp64);
+
+    case anymem:
+      return (t.bitfield.disp8
+             || t.bitfield.disp16
+             || t.bitfield.disp32
+             || t.bitfield.disp32s
+             || t.bitfield.disp64
+             || t.bitfield.baseindex);
+
+    default:
+      abort ();
+    }
+}
+
+static int
+operand_type_match (i386_operand_type overlap,
+                   i386_operand_type given)
+{
+  i386_operand_type temp = overlap;
+
+  temp.bitfield.jumpabsolute = 0;
+  if (operand_type_all_zero (temp))
+    return 0;
+
+  return (given.bitfield.baseindex == overlap.bitfield.baseindex
+         && given.bitfield.jumpabsolute == overlap.bitfield.jumpabsolute);
+}
+
+/* If given types r0 and r1 are registers they must be of the same type
+   unless the expected operand type register overlap is null.
+   Note that Acc in a template matches every size of reg.  */
+
+static int
+operand_type_register_match (i386_operand_type m0,
+                            i386_operand_type g0,
+                            i386_operand_type t0,
+                            i386_operand_type m1,
+                            i386_operand_type g1,
+                            i386_operand_type t1)
+{
+  if (!operand_type_check (g0, reg))
+    return 1;
+
+  if (!operand_type_check (g1, reg))
+    return 1;
+
+  if (g0.bitfield.reg8 == g1.bitfield.reg8
+      && g0.bitfield.reg16 == g1.bitfield.reg16
+      && g0.bitfield.reg32 == g1.bitfield.reg32
+      && g0.bitfield.reg64 == g1.bitfield.reg64)
+    return 1;
+
+  if (m0.bitfield.acc)
+    {
+      t0.bitfield.reg8 = 1;
+      t0.bitfield.reg16 = 1;
+      t0.bitfield.reg32 = 1;
+      t0.bitfield.reg64 = 1;
+    }
+
+  if (m1.bitfield.acc)
+    {
+      t1.bitfield.reg8 = 1;
+      t1.bitfield.reg16 = 1;
+      t1.bitfield.reg32 = 1;
+      t1.bitfield.reg64 = 1;
+    }
+
+  return (!(t0.bitfield.reg8 & t1.bitfield.reg8)
+         && !(t0.bitfield.reg16 & t1.bitfield.reg16)
+         && !(t0.bitfield.reg32 & t1.bitfield.reg32)
+         && !(t0.bitfield.reg64 & t1.bitfield.reg64));
+}
+
 static INLINE unsigned int
-mode_from_disp_size (unsigned int t)
+mode_from_disp_size (i386_operand_type t)
 {
-  return (t & Disp8) ? 1 : (t & (Disp16 | Disp32 | Disp32S)) ? 2 : 0;
+  if (t.bitfield.disp8)
+    return 1;
+  else if (t.bitfield.disp16
+          || t.bitfield.disp32
+          || t.bitfield.disp32s)
+    return 2;
+  else
+    return 0;
 }
 
 static INLINE int
@@ -944,30 +1199,58 @@ fits_in_unsigned_long (offsetT num ATTRIBUTE_UNUSED)
 #endif
 }                              /* fits_in_unsigned_long() */
 
-static unsigned int
+static i386_operand_type
 smallest_imm_type (offsetT num)
 {
-  if (cpu_arch_flags != (Cpu186 | Cpu286 | Cpu386 | Cpu486 | CpuNo64))
+  i386_operand_type t;
+  memset (&t, 0, sizeof (t));
+  t.bitfield.imm64 = 1;
+
+  if (cpu_arch_tune != PROCESSOR_I486 && num == 1)
     {
       /* This code is disabled on the 486 because all the Imm1 forms
         in the opcode table are slower on the i486.  They're the
         versions with the implicitly specified single-position
         displacement, which has another syntax if you really want to
         use that form.  */
-      if (num == 1)
-       return Imm1 | Imm8 | Imm8S | Imm16 | Imm32 | Imm32S | Imm64;
-    }
-  return (fits_in_signed_byte (num)
-         ? (Imm8S | Imm8 | Imm16 | Imm32 | Imm32S | Imm64)
-         : fits_in_unsigned_byte (num)
-         ? (Imm8 | Imm16 | Imm32 | Imm32S | Imm64)
-         : (fits_in_signed_word (num) || fits_in_unsigned_word (num))
-         ? (Imm16 | Imm32 | Imm32S | Imm64)
-         : fits_in_signed_long (num)
-         ? (Imm32 | Imm32S | Imm64)
-         : fits_in_unsigned_long (num)
-         ? (Imm32 | Imm64)
-         : Imm64);
+      t.bitfield.imm1 = 1;
+      t.bitfield.imm8 = 1;
+      t.bitfield.imm8s = 1;
+      t.bitfield.imm16 = 1;
+      t.bitfield.imm32 = 1;
+      t.bitfield.imm32s = 1;
+    }
+  else if (fits_in_signed_byte (num))
+    {
+      t.bitfield.imm8 = 1;
+      t.bitfield.imm8s = 1;
+      t.bitfield.imm16 = 1;
+      t.bitfield.imm32 = 1;
+      t.bitfield.imm32s = 1;
+    }
+  else if (fits_in_unsigned_byte (num))
+    {
+      t.bitfield.imm8 = 1;
+      t.bitfield.imm16 = 1;
+      t.bitfield.imm32 = 1;
+      t.bitfield.imm32s = 1;
+    }
+  else if (fits_in_signed_word (num) || fits_in_unsigned_word (num))
+    {
+      t.bitfield.imm16 = 1;
+      t.bitfield.imm32 = 1;
+      t.bitfield.imm32s = 1;
+    }
+  else if (fits_in_signed_long (num))
+    {
+      t.bitfield.imm32 = 1;
+      t.bitfield.imm32s = 1;
+    }
+  else if (fits_in_unsigned_long (num))
+    t.bitfield.imm32 = 1;
+
+  return t;
 }
 
 static offsetT
@@ -1076,13 +1359,25 @@ static void
 set_code_flag (int value)
 {
   flag_code = value;
-  cpu_arch_flags &= ~(Cpu64 | CpuNo64);
-  cpu_arch_flags |= (flag_code == CODE_64BIT ? Cpu64 : CpuNo64);
-  if (value == CODE_64BIT && !(cpu_arch_flags & CpuSledgehammer))
+  if (flag_code == CODE_64BIT)
+    {
+      cpu_arch_flags.bitfield.cpu64 = 1;
+      cpu_arch_flags.bitfield.cpuno64 = 0;
+      cpu_arch_flags_not.bitfield.cpu64 = 0;
+      cpu_arch_flags_not.bitfield.cpuno64 = 1;
+    }
+  else
+    {
+      cpu_arch_flags.bitfield.cpu64 = 0;
+      cpu_arch_flags.bitfield.cpuno64 = 1;
+      cpu_arch_flags_not.bitfield.cpu64 = 1;
+      cpu_arch_flags_not.bitfield.cpuno64 = 0;
+    }
+  if (value == CODE_64BIT && !cpu_arch_flags.bitfield.cpulm )
     {
       as_bad (_("64bit mode not supported on this CPU."));
     }
-  if (value == CODE_32BIT && !(cpu_arch_flags & Cpu386))
+  if (value == CODE_32BIT && !cpu_arch_flags.bitfield.cpui386)
     {
       as_bad (_("32bit mode not supported on this CPU."));
     }
@@ -1093,8 +1388,12 @@ static void
 set_16bit_gcc_code_flag (int new_code_flag)
 {
   flag_code = new_code_flag;
-  cpu_arch_flags &= ~(Cpu64 | CpuNo64);
-  cpu_arch_flags |= (flag_code == CODE_64BIT ? Cpu64 : CpuNo64);
+  if (flag_code != CODE_16BIT)
+    abort ();
+  cpu_arch_flags.bitfield.cpu64 = 0;
+  cpu_arch_flags.bitfield.cpuno64 = 1;
+  cpu_arch_flags_not.bitfield.cpu64 = 1;
+  cpu_arch_flags_not.bitfield.cpuno64 = 0;
   stackop_size = LONG_MNEM_SUFFIX;
 }
 
@@ -1143,6 +1442,7 @@ set_cpu_arch (int dummy ATTRIBUTE_UNUSED)
       char *string = input_line_pointer;
       int e = get_symbol_end ();
       unsigned int i;
+      i386_cpu_flags flags;
 
       for (i = 0; i < ARRAY_SIZE (cpu_arch); i++)
        {
@@ -1152,9 +1452,18 @@ set_cpu_arch (int dummy ATTRIBUTE_UNUSED)
                {
                  cpu_arch_name = cpu_arch[i].name;
                  cpu_sub_arch_name = NULL;
-                 cpu_arch_flags = (cpu_arch[i].flags
-                                   | (flag_code == CODE_64BIT
-                                      ? Cpu64 : CpuNo64));
+                 cpu_arch_flags = cpu_arch[i].flags;
+                 if (flag_code == CODE_64BIT)
+                   {
+                     cpu_arch_flags.bitfield.cpu64 = 1;
+                     cpu_arch_flags.bitfield.cpuno64 = 0;
+                   }
+                 else
+                   {
+                     cpu_arch_flags.bitfield.cpu64 = 0;
+                     cpu_arch_flags.bitfield.cpuno64 = 1;
+                   }
+                 cpu_arch_flags_not = cpu_flags_not (cpu_arch_flags);
                  cpu_arch_isa = cpu_arch[i].type;
                  cpu_arch_isa_flags = cpu_arch[i].flags;
                  if (!cpu_arch_tune_set)
@@ -1164,10 +1473,14 @@ set_cpu_arch (int dummy ATTRIBUTE_UNUSED)
                    }
                  break;
                }
-             if ((cpu_arch_flags | cpu_arch[i].flags) != cpu_arch_flags)
+
+             flags = cpu_flags_biop (cpu_arch_flags,
+                                     cpu_arch[i].flags, or);
+             if (memcmp (&flags, &cpu_arch_flags, sizeof (flags)))
                {
                  cpu_sub_arch_name = cpu_arch[i].name;
-                 cpu_arch_flags |= cpu_arch[i].flags;
+                 cpu_arch_flags = flags;
+                 cpu_arch_flags_not = cpu_flags_not (cpu_arch_flags);
                }
              *input_line_pointer = e;
              demand_empty_rest_of_line ();
@@ -1218,6 +1531,8 @@ md_begin ()
 {
   const char *hash_err;
 
+  cpu_arch_flags_not = cpu_flags_not (cpu_arch_flags);
+
   /* Initialize op_hash hash table.  */
   op_hash = hash_new ();
 
@@ -1357,7 +1672,7 @@ i386_print_statistics (FILE *file)
 
 /* Debugging routines for md_assemble.  */
 static void pte (template *);
-static void pt (unsigned int);
+static void pt (i386_operand_type);
 static void pe (expressionS *);
 static void ps (symbolS *);
 
@@ -1386,12 +1701,21 @@ pi (char *line, i386_insn *x)
       fprintf (stdout, "    #%d:  ", i + 1);
       pt (x->types[i]);
       fprintf (stdout, "\n");
-      if (x->types[i]
-         & (Reg | SReg2 | SReg3 | Control | Debug | Test | RegMMX | RegXMM))
+      if (x->types[i].bitfield.reg8
+         || x->types[i].bitfield.reg16
+         || x->types[i].bitfield.reg32
+         || x->types[i].bitfield.reg64
+         || x->types[i].bitfield.regmmx
+         || x->types[i].bitfield.regxmm
+         || x->types[i].bitfield.sreg2
+         || x->types[i].bitfield.sreg3
+         || x->types[i].bitfield.control
+         || x->types[i].bitfield.debug
+         || x->types[i].bitfield.test)
        fprintf (stdout, "%s\n", x->op[i].regs->reg_name);
-      if (x->types[i] & Imm)
+      if (operand_type_check (x->types[i], imm))
        pe (x->op[i].imms);
-      if (x->types[i] & Disp)
+      if (operand_type_check (x->types[i], disp))
        pe (x->op[i].disps);
     }
 }
@@ -1404,9 +1728,9 @@ pte (template *t)
   fprintf (stdout, "opcode %x ", t->base_opcode);
   if (t->extension_opcode != None)
     fprintf (stdout, "ext %x ", t->extension_opcode);
-  if (t->opcode_modifier & D)
+  if (t->opcode_modifier.d)
     fprintf (stdout, "D");
-  if (t->opcode_modifier & W)
+  if (t->opcode_modifier.w)
     fprintf (stdout, "W");
   fprintf (stdout, "\n");
   for (i = 0; i < t->operands; i++)
@@ -1448,54 +1772,54 @@ ps (symbolS *s)
 
 static struct type_name
   {
-    unsigned int mask;
-    char *tname;
+    i386_operand_type mask;
+    const char *name;
   }
 const type_names[] =
 {
-  { Reg8, "r8" },
-  { Reg16, "r16" },
-  { Reg32, "r32" },
-  { Reg64, "r64" },
-  { Imm8, "i8" },
-  { Imm8S, "i8s" },
-  { Imm16, "i16" },
-  { Imm32, "i32" },
-  { Imm32S, "i32s" },
-  { Imm64, "i64" },
-  { Imm1, "i1" },
-  { BaseIndex, "BaseIndex" },
-  { Disp8, "d8" },
-  { Disp16, "d16" },
-  { Disp32, "d32" },
-  { Disp32S, "d32s" },
-  { Disp64, "d64" },
-  { InOutPortReg, "InOutPortReg" },
-  { ShiftCount, "ShiftCount" },
-  { Control, "control reg" },
-  { Test, "test reg" },
-  { Debug, "debug reg" },
-  { FloatReg, "FReg" },
-  { FloatAcc, "FAcc" },
-  { SReg2, "SReg2" },
-  { SReg3, "SReg3" },
-  { Acc, "Acc" },
-  { JumpAbsolute, "Jump Absolute" },
-  { RegMMX, "rMMX" },
-  { RegXMM, "rXMM" },
-  { EsSeg, "es" },
-  { 0, "" }
+  { OPERAND_TYPE_REG8, "r8" },
+  { OPERAND_TYPE_REG16, "r16" },
+  { OPERAND_TYPE_REG32, "r32" },
+  { OPERAND_TYPE_REG64, "r64" },
+  { OPERAND_TYPE_IMM8, "i8" },
+  { OPERAND_TYPE_IMM8, "i8s" },
+  { OPERAND_TYPE_IMM16, "i16" },
+  { OPERAND_TYPE_IMM32, "i32" },
+  { OPERAND_TYPE_IMM32S, "i32s" },
+  { OPERAND_TYPE_IMM64, "i64" },
+  { OPERAND_TYPE_IMM1, "i1" },
+  { OPERAND_TYPE_BASEINDEX, "BaseIndex" },
+  { OPERAND_TYPE_DISP8, "d8" },
+  { OPERAND_TYPE_DISP16, "d16" },
+  { OPERAND_TYPE_DISP32, "d32" },
+  { OPERAND_TYPE_DISP32S, "d32s" },
+  { OPERAND_TYPE_DISP64, "d64" },
+  { OPERAND_TYPE_INOUTPORTREG, "InOutPortReg" },
+  { OPERAND_TYPE_SHIFTCOUNT, "ShiftCount" },
+  { OPERAND_TYPE_CONTROL, "control reg" },
+  { OPERAND_TYPE_TEST, "test reg" },
+  { OPERAND_TYPE_DEBUG, "debug reg" },
+  { OPERAND_TYPE_FLOATREG, "FReg" },
+  { OPERAND_TYPE_FLOATACC, "FAcc" },
+  { OPERAND_TYPE_SREG2, "SReg2" },
+  { OPERAND_TYPE_SREG3, "SReg3" },
+  { OPERAND_TYPE_ACC, "Acc" },
+  { OPERAND_TYPE_JUMPABSOLUTE, "Jump Absolute" },
+  { OPERAND_TYPE_REGMMX, "rMMX" },
+  { OPERAND_TYPE_REGXMM, "rXMM" },
+  { OPERAND_TYPE_ESSEG, "es" },
 };
 
 static void
-pt (t)
-     unsigned int t;
+pt (i386_operand_type t)
 {
-  const struct type_name *ty;
+  unsigned int j;
 
-  for (ty = type_names; ty->mask; ty++)
-    if (t & ty->mask)
-      fprintf (stdout, "%s, ", ty->tname);
+  for (j = 0; j < ARRAY_SIZE (type_names); j++)
+    if (!operand_type_all_zero (operand_type_biop (t,
+                                                  type_names[j].mask,
+                                                  and)))
+      fprintf (stdout, "%s, ",  type_names[j].name);
   fflush (stdout);
 }
 
@@ -1715,7 +2039,7 @@ void
 md_assemble (line)
      char *line;
 {
-  int j;
+  unsigned int j;
   char mnemonic[MAX_MNEM_SIZE];
 
   /* Initialize globals.  */
@@ -1763,7 +2087,8 @@ md_assemble (line)
       && i.operands > 1
       && (strcmp (mnemonic, "bound") != 0)
       && (strcmp (mnemonic, "invlpga") != 0)
-      && !((i.types[0] & Imm) && (i.types[1] & Imm)))
+      && !(operand_type_check (i.types[0], imm)
+          && operand_type_check (i.types[1], imm)))
     swap_operands ();
 
   if (i.imm_operands)
@@ -1797,25 +2122,24 @@ md_assemble (line)
        {
          if (i.reg_operands < 2
              && !i.suffix
-             && (~i.tm.opcode_modifier
-                 & (No_bSuf
-                    | No_wSuf
-                    | No_lSuf
-                    | No_sSuf
-                    | No_xSuf
-                    | No_qSuf)))
+             && (!i.tm.opcode_modifier.no_bsuf
+                 || !i.tm.opcode_modifier.no_wsuf
+                 || !i.tm.opcode_modifier.no_lsuf
+                 || !i.tm.opcode_modifier.no_ssuf
+                 || !i.tm.opcode_modifier.no_xsuf
+                 || !i.tm.opcode_modifier.no_qsuf))
            as_bad (_("ambiguous operand size for `%s'"), i.tm.name);
 
          i.suffix = 0;
        }
     }
 
-  if (i.tm.opcode_modifier & FWait)
+  if (i.tm.opcode_modifier.fwait)
     if (!add_prefix (FWAIT_OPCODE))
       return;
 
   /* Check string instruction segment overrides.  */
-  if ((i.tm.opcode_modifier & IsString) != 0 && i.mem_operands != 0)
+  if (i.tm.opcode_modifier.isstring && i.mem_operands != 0)
     {
       if (!check_string ())
        return;
@@ -1829,20 +2153,18 @@ md_assemble (line)
   if (!finalize_imm ())
     return;
 
-  if (i.types[0] & Imm1)
+  if (i.types[0].bitfield.imm1)
     i.imm_operands = 0;        /* kludge for shift insns.  */
-  if (i.types[0] & ImplicitRegister)
-    i.reg_operands--;
-  if (i.types[1] & ImplicitRegister)
-    i.reg_operands--;
-  if (i.types[2] & ImplicitRegister)
-    i.reg_operands--;
 
-  if (i.tm.opcode_modifier & ImmExt)
+  for (j = 0; j < 3; j++)
+    if (operand_type_check (i.types[j], implicitregister))
+      i.reg_operands--;
+
+  if (i.tm.opcode_modifier.immext)
     {
       expressionS *exp;
 
-      if ((i.tm.cpu_flags & CpuSSE3) && i.operands > 0)
+      if (i.tm.cpu_flags.bitfield.cpusse3 && i.operands > 0)
        {
          /* Streaming SIMD extensions 3 Instructions have the fixed
             operands with an opcode suffix which is coded in the same
@@ -1869,7 +2191,9 @@ md_assemble (line)
 
       exp = &im_expressions[i.imm_operands++];
       i.op[i.operands].imms = exp;
-      i.types[i.operands++] = Imm8;
+      memset (&i.types[i.operands], 0, sizeof (i.types[i.operands]));
+      i.types[i.operands].bitfield.imm8 = 1;
+      i.operands++;
       exp->X_op = O_constant;
       exp->X_add_number = i.tm.extension_opcode;
       i.tm.extension_opcode = None;
@@ -1881,7 +2205,7 @@ md_assemble (line)
       if (!process_operands ())
        return;
     }
-  else if (!quiet_warnings && (i.tm.opcode_modifier & Ugh) != 0)
+  else if (!quiet_warnings && i.tm.opcode_modifier.ugh)
     {
       /* UnixWare fsub no args is alias for fsubp, fadd -> faddp, etc.  */
       as_warn (_("translating to `%sp'"), i.tm.name);
@@ -1894,7 +2218,9 @@ md_assemble (line)
       i.imm_operands = 0;
     }
 
-  if ((i.tm.opcode_modifier & (Jump | JumpByte | JumpDword))
+  if ((i.tm.opcode_modifier.jump
+       || i.tm.opcode_modifier.jumpbyte
+       || i.tm.opcode_modifier.jumpdword)
       && i.op[0].disps->X_op == O_constant)
     {
       /* Convert "jmp constant" (and "call constant") to a jump (call) to
@@ -1904,18 +2230,19 @@ md_assemble (line)
       i.op[0].disps->X_op = O_symbol;
     }
 
-  if ((i.tm.opcode_modifier & Rex64) != 0)
+  if (i.tm.opcode_modifier.rex64)
     i.rex |= REX_W;
 
   /* For 8 bit registers we need an empty rex prefix.  Also if the
      instruction already has a prefix, we need to convert old
      registers to new ones.  */
 
-  if (((i.types[0] & Reg8) != 0
+  if ((i.types[0].bitfield.reg8
        && (i.op[0].regs->reg_flags & RegRex64) != 0)
-      || ((i.types[1] & Reg8) != 0
+      || (i.types[1].bitfield.reg8
          && (i.op[1].regs->reg_flags & RegRex64) != 0)
-      || (((i.types[0] & Reg8) != 0 || (i.types[1] & Reg8) != 0)
+      || ((i.types[0].bitfield.reg8
+          || i.types[1].bitfield.reg8)
          && i.rex != 0))
     {
       int x;
@@ -1924,7 +2251,7 @@ md_assemble (line)
       for (x = 0; x < 2; x++)
        {
          /* Look for 8 bit operand that uses old registers.  */
-         if ((i.types[x] & Reg8) != 0
+         if (i.types[x].bitfield.reg8
              && (i.op[x].regs->reg_flags & RegRex64) == 0)
            {
              /* In case it is "hi" register, give up.  */
@@ -1999,10 +2326,9 @@ parse_insn (char *line, char *mnemonic)
       if (*l != END_OF_INSN
          && (!is_space_char (*l) || l[1] != END_OF_INSN)
          && current_templates
-         && (current_templates->start->opcode_modifier & IsPrefix))
+         && current_templates->start->opcode_modifier.isprefix)
        {
-         if (current_templates->start->cpu_flags
-             & (flag_code != CODE_64BIT ? Cpu64 : CpuNo64))
+         if (!cpu_flags_check_x64 (current_templates->start->cpu_flags))
            {
              as_bad ((flag_code != CODE_64BIT
                       ? _("`%s' is only supported in 64-bit mode")
@@ -2012,9 +2338,10 @@ parse_insn (char *line, char *mnemonic)
            }
          /* If we are in 16-bit mode, do not allow addr16 or data16.
             Similarly, in 32-bit mode, do not allow addr32 or data32.  */
-         if ((current_templates->start->opcode_modifier & (Size16 | Size32))
+         if ((current_templates->start->opcode_modifier.size16
+              || current_templates->start->opcode_modifier.size32)
              && flag_code != CODE_64BIT
-             && (((current_templates->start->opcode_modifier & Size32) != 0)
+             && (current_templates->start->opcode_modifier.size32
                  ^ (flag_code == CODE_16BIT)))
            {
              as_bad (_("redundant %s prefix"),
@@ -2082,7 +2409,8 @@ parse_insn (char *line, char *mnemonic)
        }
     }
 
-  if (current_templates->start->opcode_modifier & (Jump | JumpByte))
+  if (current_templates->start->opcode_modifier.jump
+      || current_templates->start->opcode_modifier.jumpbyte)
     {
       /* Check for a branch hint.  We allow ",pt" and ",pn" for
         predict taken and predict not taken respectively.
@@ -2118,10 +2446,9 @@ parse_insn (char *line, char *mnemonic)
   supported = 0;
   for (t = current_templates->start; t < current_templates->end; ++t)
     {
-      if (!((t->cpu_flags & ~(Cpu64 | CpuNo64))
-           & ~(cpu_arch_flags & ~(Cpu64 | CpuNo64))))
+      if (cpu_flags_match (t->cpu_flags))
        supported |= 1;
-      if (!(t->cpu_flags & (flag_code == CODE_64BIT ? CpuNo64 : Cpu64)))
+      if (cpu_flags_check_x64 (t->cpu_flags))
        supported |= 2;
     }
   if (!(supported & 2))
@@ -2139,7 +2466,8 @@ parse_insn (char *line, char *mnemonic)
               cpu_arch_name,
               cpu_sub_arch_name ? cpu_sub_arch_name : "");
     }
-  else if ((Cpu386 & ~cpu_arch_flags) && (flag_code != CODE_16BIT))
+  else if (!cpu_arch_flags.bitfield.cpui386
+          && (flag_code != CODE_16BIT))
     {
       as_warn (_("use .code16 to ensure correct addressing mode"));
     }
@@ -2150,7 +2478,7 @@ parse_insn (char *line, char *mnemonic)
       static templates override;
 
       for (t = current_templates->start; t < current_templates->end; ++t)
-       if (t->opcode_modifier & IsString)
+       if (t->opcode_modifier.isstring)
          break;
       if (t >= current_templates->end)
        {
@@ -2159,7 +2487,7 @@ parse_insn (char *line, char *mnemonic)
          return NULL;
        }
       for (override.start = t; t < current_templates->end; ++t)
-       if (!(t->opcode_modifier & IsString))
+       if (!t->opcode_modifier.isstring)
          break;
       override.end = t;
       current_templates = &override;
@@ -2290,7 +2618,7 @@ static void
 swap_2_operands (int xchg1, int xchg2)
 {
   union i386_op temp_op;
-  unsigned int temp_type;
+  i386_operand_type temp_type;
   enum bfd_reloc_code_real temp_reloc;
 
   temp_type = i.types[xchg2];
@@ -2345,16 +2673,24 @@ optimize_imm (void)
         but the following works for instructions with immediates.
         In any case, we can't set i.suffix yet.  */
       for (op = i.operands; --op >= 0;)
-       if (i.types[op] & Reg)
+       if (i.types[op].bitfield.reg8)
+         { 
+           guess_suffix = BYTE_MNEM_SUFFIX;
+           break;
+         }
+       else if (i.types[op].bitfield.reg16)
          {
-           if (i.types[op] & Reg8)
-             guess_suffix = BYTE_MNEM_SUFFIX;
-           else if (i.types[op] & Reg16)
-             guess_suffix = WORD_MNEM_SUFFIX;
-           else if (i.types[op] & Reg32)
-             guess_suffix = LONG_MNEM_SUFFIX;
-           else if (i.types[op] & Reg64)
-             guess_suffix = QWORD_MNEM_SUFFIX;
+           guess_suffix = WORD_MNEM_SUFFIX;
+           break;
+         }
+       else if (i.types[op].bitfield.reg32)
+         {
+           guess_suffix = LONG_MNEM_SUFFIX;
+           break;
+         }
+       else if (i.types[op].bitfield.reg64)
+         {
+           guess_suffix = QWORD_MNEM_SUFFIX;
            break;
          }
     }
@@ -2362,7 +2698,7 @@ optimize_imm (void)
     guess_suffix = WORD_MNEM_SUFFIX;
 
   for (op = i.operands; --op >= 0;)
-    if (i.types[op] & Imm)
+    if (operand_type_check (i.types[op], imm))
       {
        switch (i.op[op].imms->X_op)
          {
@@ -2371,13 +2707,22 @@ optimize_imm (void)
            switch (guess_suffix)
              {
              case LONG_MNEM_SUFFIX:
-               i.types[op] |= Imm32 | Imm64;
+               i.types[op].bitfield.imm32 = 1;
+               i.types[op].bitfield.imm64 = 1;
                break;
              case WORD_MNEM_SUFFIX:
-               i.types[op] |= Imm16 | Imm32S | Imm32 | Imm64;
+               i.types[op].bitfield.imm16 = 1;
+               i.types[op].bitfield.imm32 = 1;
+               i.types[op].bitfield.imm32s = 1;
+               i.types[op].bitfield.imm64 = 1;
                break;
              case BYTE_MNEM_SUFFIX:
-               i.types[op] |= Imm16 | Imm8 | Imm8S | Imm32S | Imm32 | Imm64;
+               i.types[op].bitfield.imm8 = 1;
+               i.types[op].bitfield.imm8s = 1;
+               i.types[op].bitfield.imm16 = 1;
+               i.types[op].bitfield.imm32 = 1;
+               i.types[op].bitfield.imm32s = 1;
+               i.types[op].bitfield.imm64 = 1;
                break;
              }
 
@@ -2386,13 +2731,13 @@ optimize_imm (void)
               whether it will fit in an even smaller size.
               This allows a 16-bit operand such as $0xffe0 to
               be recognised as within Imm8S range.  */
-           if ((i.types[op] & Imm16)
+           if ((i.types[op].bitfield.imm16)
                && (i.op[op].imms->X_add_number & ~(offsetT) 0xffff) == 0)
              {
                i.op[op].imms->X_add_number =
                  (((i.op[op].imms->X_add_number & 0xffff) ^ 0x8000) - 0x8000);
              }
-           if ((i.types[op] & Imm32)
+           if ((i.types[op].bitfield.imm32)
                && ((i.op[op].imms->X_add_number & ~(((offsetT) 2 << 31) - 1))
                    == 0))
              {
@@ -2400,12 +2745,15 @@ optimize_imm (void)
                                                ^ ((offsetT) 1 << 31))
                                               - ((offsetT) 1 << 31));
              }
-           i.types[op] |= smallest_imm_type (i.op[op].imms->X_add_number);
+           i.types[op]
+             = operand_type_biop (i.types[op],
+                                  smallest_imm_type (i.op[op].imms->X_add_number),
+                                  or);
 
            /* We must avoid matching of Imm32 templates when 64bit
               only immediate is available.  */
            if (guess_suffix == QWORD_MNEM_SUFFIX)
-             i.types[op] &= ~Imm32;
+             i.types[op].bitfield.imm32 = 0;
            break;
 
          case O_absent:
@@ -2418,33 +2766,40 @@ optimize_imm (void)
               prevent matching a set of insns that only supports sizes other
               than those matching the insn suffix.  */
            {
-             unsigned int mask, allowed = 0;
+             i386_operand_type mask, allowed;
              const template *t;
 
+             memset (&mask, 0, sizeof (mask));
+             memset (&allowed, 0, sizeof (allowed));
+
              for (t = current_templates->start;
                   t < current_templates->end;
                   ++t)
-               allowed |= t->operand_types[op];
+               allowed = operand_type_biop (allowed,
+                                            t->operand_types[op], or);
              switch (guess_suffix)
                {
                case QWORD_MNEM_SUFFIX:
-                 mask = Imm64 | Imm32S;
+                 mask.bitfield.imm64 = 1;
+                 mask.bitfield.imm32s = 1;
                  break;
                case LONG_MNEM_SUFFIX:
-                 mask = Imm32;
+                 mask.bitfield.imm32 = 1;
                  break;
                case WORD_MNEM_SUFFIX:
-                 mask = Imm16;
+                 mask.bitfield.imm16 = 1;
                  break;
                case BYTE_MNEM_SUFFIX:
-                 mask = Imm8;
+                 mask.bitfield.imm8 = 1;
                  break;
                default:
-                 mask = 0;
                  break;
                }
-             if (mask & allowed)
-               i.types[op] &= mask;
+             if (!operand_type_all_zero (operand_type_biop (mask,
+                                                            allowed,
+                                                            and)))
+               i.types[op] = operand_type_biop (i.types[op],
+                                                mask, and);
            }
            break;
          }
@@ -2458,22 +2813,22 @@ optimize_disp (void)
   int op;
 
   for (op = i.operands; --op >= 0;)
-    if (i.types[op] & Disp)
+    if (operand_type_check (i.types[op], disp))
       {
        if (i.op[op].disps->X_op == O_constant)
          {
            offsetT disp = i.op[op].disps->X_add_number;
 
-           if ((i.types[op] & Disp16)
+           if (i.types[op].bitfield.disp16
                && (disp & ~(offsetT) 0xffff) == 0)
              {
                /* If this operand is at most 16 bits, convert
                   to a signed 16 bit number and don't use 64bit
                   displacement.  */
                disp = (((disp & 0xffff) ^ 0x8000) - 0x8000);
-               i.types[op] &= ~Disp64;
+               i.types[op].bitfield.disp64 = 0;
              }
-           if ((i.types[op] & Disp32)
+           if (i.types[op].bitfield.disp32
                && (disp & ~(((offsetT) 2 << 31) - 1)) == 0)
              {
                /* If this operand is at most 32 bits, convert
@@ -2481,11 +2836,15 @@ optimize_disp (void)
                   displacement.  */
                disp &= (((offsetT) 2 << 31) - 1);
                disp = (disp ^ ((offsetT) 1 << 31)) - ((addressT) 1 << 31);
-               i.types[op] &= ~Disp64;
+               i.types[op].bitfield.disp64 = 0;
              }
-           if (!disp && (i.types[op] & BaseIndex))
+           if (!disp && i.types[op].bitfield.baseindex)
              {
-               i.types[op] &= ~Disp;
+               i.types[op].bitfield.disp8 = 0;
+               i.types[op].bitfield.disp16 = 0;
+               i.types[op].bitfield.disp32 = 0;
+               i.types[op].bitfield.disp32s = 0;
+               i.types[op].bitfield.disp64 = 0;
                i.op[op].disps = 0;
                i.disp_operands--;
              }
@@ -2493,26 +2852,32 @@ optimize_disp (void)
              {
                if (fits_in_signed_long (disp))
                  {
-                   i.types[op] &= ~Disp64;
-                   i.types[op] |= Disp32S;
+                   i.types[op].bitfield.disp64 = 0;
+                   i.types[op].bitfield.disp32s = 1;
                  }
                if (fits_in_unsigned_long (disp))
-                 i.types[op] |= Disp32;
+                 i.types[op].bitfield.disp32 = 1;
              }
-           if ((i.types[op] & (Disp32 | Disp32S | Disp16))
+           if ((i.types[op].bitfield.disp32
+                || i.types[op].bitfield.disp32s
+                || i.types[op].bitfield.disp16)
                && fits_in_signed_byte (disp))
-             i.types[op] |= Disp8;
+             i.types[op].bitfield.disp8 = 1;
          }
        else if (i.reloc[op] == BFD_RELOC_386_TLS_DESC_CALL
                 || i.reloc[op] == BFD_RELOC_X86_64_TLSDESC_CALL)
          {
            fix_new_exp (frag_now, frag_more (0) - frag_now->fr_literal, 0,
                         i.op[op].disps, 0, i.reloc[op]);
-           i.types[op] &= ~Disp;
+           i.types[op].bitfield.disp8 = 0;
+           i.types[op].bitfield.disp16 = 0;
+           i.types[op].bitfield.disp32 = 0;
+           i.types[op].bitfield.disp32s = 0;
+           i.types[op].bitfield.disp64 = 0;
          }
        else
          /* We only support 64bit displacement on constants.  */
-         i.types[op] &= ~Disp64;
+         i.types[op].bitfield.disp64 = 0;
       }
 }
 
@@ -2521,10 +2886,10 @@ match_template (void)
 {
   /* Points to template once we've found it.  */
   const template *t;
-  unsigned int overlap0, overlap1, overlap2, overlap3;
+  i386_operand_type overlap0, overlap1, overlap2, overlap3;
   unsigned int found_reverse_match;
-  int suffix_check;
-  unsigned int operand_types [MAX_OPERANDS];
+  i386_opcode_modifier suffix_check;
+  i386_operand_type operand_types [MAX_OPERANDS];
   int addr_prefix_disp;
   unsigned int j;
 
@@ -2532,39 +2897,22 @@ match_template (void)
 # error "MAX_OPERANDS must be 4."
 #endif
 
-#define MATCH(overlap, given, template)                                \
-  ((overlap & ~JumpAbsolute)                                   \
-   && (((given) & (BaseIndex | JumpAbsolute))                  \
-       == ((overlap) & (BaseIndex | JumpAbsolute))))
-
-  /* If given types r0 and r1 are registers they must be of the same type
-     unless the expected operand type register overlap is null.
-     Note that Acc in a template matches every size of reg.  */
-#define CONSISTENT_REGISTER_MATCH(m0, g0, t0, m1, g1, t1)      \
-  (((g0) & Reg) == 0 || ((g1) & Reg) == 0                      \
-   || ((g0) & Reg) == ((g1) & Reg)                             \
-   || ((((m0) & Acc) ? Reg : (t0)) & (((m1) & Acc) ? Reg : (t1)) & Reg) == 0 )
-
-  overlap0 = 0;
-  overlap1 = 0;
-  overlap2 = 0;
-  overlap3 = 0;
   found_reverse_match = 0;
-  for (j = 0; j < MAX_OPERANDS; j++)
-    operand_types [j] = 0;
   addr_prefix_disp = -1;
-  suffix_check = (i.suffix == BYTE_MNEM_SUFFIX
-                 ? No_bSuf
-                 : (i.suffix == WORD_MNEM_SUFFIX
-                    ? No_wSuf
-                    : (i.suffix == SHORT_MNEM_SUFFIX
-                       ? No_sSuf
-                       : (i.suffix == LONG_MNEM_SUFFIX
-                          ? No_lSuf
-                          : (i.suffix == QWORD_MNEM_SUFFIX
-                             ? No_qSuf
-                             : (i.suffix == LONG_DOUBLE_MNEM_SUFFIX
-                                ? No_xSuf : 0))))));
+
+  memset (&suffix_check, 0, sizeof (suffix_check));
+  if (i.suffix == BYTE_MNEM_SUFFIX)
+    suffix_check.no_bsuf = 1;
+  else if (i.suffix == WORD_MNEM_SUFFIX)
+    suffix_check.no_wsuf = 1;
+  else if (i.suffix == SHORT_MNEM_SUFFIX)
+    suffix_check.no_ssuf = 1;
+  else if (i.suffix == LONG_MNEM_SUFFIX)
+    suffix_check.no_lsuf = 1;
+  else if (i.suffix == QWORD_MNEM_SUFFIX)
+    suffix_check.no_qsuf = 1;
+  else if (i.suffix == LONG_DOUBLE_MNEM_SUFFIX)
+    suffix_check.no_xsuf = 1;
 
   for (t = current_templates->start; t < current_templates->end; t++)
     {
@@ -2575,9 +2923,13 @@ match_template (void)
        continue;
 
       /* Check the suffix, except for some instructions in intel mode.  */
-      if ((t->opcode_modifier & suffix_check)
-         && !(intel_syntax
-              && (t->opcode_modifier & IgnoreSize)))
+      if (((t->opcode_modifier.no_bsuf & suffix_check.no_bsuf)
+          || (t->opcode_modifier.no_wsuf & suffix_check.no_wsuf)
+          || (t->opcode_modifier.no_lsuf & suffix_check.no_lsuf)
+          || (t->opcode_modifier.no_ssuf & suffix_check.no_ssuf)
+          || (t->opcode_modifier.no_qsuf & suffix_check.no_qsuf)
+          || (t->opcode_modifier.no_xsuf & suffix_check.no_xsuf))
+         && !(intel_syntax && t->opcode_modifier.ignoresize))
        continue;
 
       for (j = 0; j < MAX_OPERANDS; j++)
@@ -2587,11 +2939,13 @@ match_template (void)
       if (i.suffix == QWORD_MNEM_SUFFIX
          && flag_code != CODE_64BIT
          && (intel_syntax
-             ? (!(t->opcode_modifier & IgnoreSize)
+             ? (!t->opcode_modifier.ignoresize
                 && !intel_float_operand (t->name))
              : intel_float_operand (t->name) != 2)
-         && (!(operand_types[0] & (RegMMX | RegXMM))
-             || !(operand_types[t->operands > 1] & (RegMMX | RegXMM)))
+         && ((!operand_types[0].bitfield.regmmx
+              && !operand_types[0].bitfield.regxmm)
+             || (!operand_types[t->operands > 1].bitfield.regmmx
+                 && !!operand_types[t->operands > 1].bitfield.regxmm))
          && (t->base_opcode != 0x0fc7
              || t->extension_opcode != 1 /* cmpxchg8b */))
        continue;
@@ -2599,7 +2953,9 @@ match_template (void)
       /* Do not verify operands when there are none.  */
       else if (!t->operands)
        {
-         if (t->cpu_flags & ~cpu_arch_flags)
+         if (!cpu_flags_all_zero (cpu_flags_biop (t->cpu_flags,
+                                                  cpu_arch_flags_not,
+                                                  and)))
            continue;
          /* We've found a match; break out of loop.  */
          break;
@@ -2609,42 +2965,54 @@ match_template (void)
         into Disp32/Disp16/Disp32 operand.  */
       if (i.prefix[ADDR_PREFIX] != 0)
          {
-           unsigned int DispOn = 0, DispOff = 0;
-
+           /* There should be only one Disp operand.  */
            switch (flag_code)
            {
            case CODE_16BIT:
-             DispOn = Disp32;
-             DispOff = Disp16;
+             for (j = 0; j < MAX_OPERANDS; j++)
+               {
+                 if (operand_types[j].bitfield.disp16)
+                   {
+                     addr_prefix_disp = j;
+                     operand_types[j].bitfield.disp32 = 1;
+                     operand_types[j].bitfield.disp16 = 0;
+                     break;
+                   }
+               }
              break;
            case CODE_32BIT:
-             DispOn = Disp16;
-             DispOff = Disp32;
+             for (j = 0; j < MAX_OPERANDS; j++)
+               {
+                 if (operand_types[j].bitfield.disp32)
+                   {
+                     addr_prefix_disp = j;
+                     operand_types[j].bitfield.disp32 = 0;
+                     operand_types[j].bitfield.disp16 = 1;
+                     break;
+                   }
+               }
              break;
            case CODE_64BIT:
-             DispOn = Disp32;
-             DispOff = Disp64;
+             for (j = 0; j < MAX_OPERANDS; j++)
+               {
+                 if (operand_types[j].bitfield.disp64)
+                   {
+                     addr_prefix_disp = j;
+                     operand_types[j].bitfield.disp64 = 0;
+                     operand_types[j].bitfield.disp32 = 1;
+                     break;
+                   }
+               }
              break;
            }
-
-           for (j = 0; j < MAX_OPERANDS; j++)
-             {
-               /* There should be only one Disp operand.  */
-               if ((operand_types[j] & DispOff))
-                 {
-                   addr_prefix_disp = j;
-                   operand_types[j] |= DispOn;
-                   operand_types[j] &= ~DispOff;
-                   break;
-                 }
-             }
          }
 
-      overlap0 = i.types[0] & operand_types[0];
+      overlap0 = operand_type_biop (i.types[0], operand_types[0],
+                                   and);
       switch (t->operands)
        {
        case 1:
-         if (!MATCH (overlap0, i.types[0], operand_types[0]))
+         if (!operand_type_match (overlap0, i.types[0]))
            continue;
          break;
        case 2:
@@ -2654,14 +3022,15 @@ match_template (void)
             zero-extend %eax to %rax.  */
          if (flag_code == CODE_64BIT
              && t->base_opcode == 0x90
-             && i.types [0] == (Acc | Reg32)
-             && i.types [1] == (Acc | Reg32))
+             && memcmp (&i.types [0], &acc32, sizeof (acc32)) == 0
+             && memcmp (&i.types [1], &acc32, sizeof (acc32)) == 0)
            continue;
        case 3:
        case 4:
-         overlap1 = i.types[1] & operand_types[1];
-         if (!MATCH (overlap0, i.types[0], operand_types[0])
-             || !MATCH (overlap1, i.types[1], operand_types[1])
+         overlap1 = operand_type_biop (i.types[1], operand_types[1],
+                                       and);
+         if (!operand_type_match (overlap0, i.types[0])
+             || !operand_type_match (overlap1, i.types[1])
              /* monitor in SSE3 is a very special case.  The first
                 register and the second register may have different
                 sizes.  The same applies to crc32 in SSE4.2.  It is
@@ -2674,37 +3043,39 @@ match_template (void)
                        || t->extension_opcode == 0xdb
                        || t->extension_opcode == 0xdf))
                   || t->base_opcode == 0xf20f38f1
-                  || CONSISTENT_REGISTER_MATCH (overlap0, i.types[0],
-                                                operand_types[0],
-                                                overlap1, i.types[1],
-                                                operand_types[1])))
+                  || operand_type_register_match (overlap0, i.types[0],
+                                                  operand_types[0],
+                                                  overlap1, i.types[1],
+                                                  operand_types[1])))
            {
              /* Check if other direction is valid ...  */
-             if ((t->opcode_modifier & (D | FloatD)) == 0)
+             if (!t->opcode_modifier.d && !t->opcode_modifier.floatd)
                continue;
 
              /* Try reversing direction of operands.  */
-             overlap0 = i.types[0] & operand_types[1];
-             overlap1 = i.types[1] & operand_types[0];
-             if (!MATCH (overlap0, i.types[0], operand_types[1])
-                 || !MATCH (overlap1, i.types[1], operand_types[0])
-                 || !CONSISTENT_REGISTER_MATCH (overlap0, i.types[0],
-                                                operand_types[1],
-                                                overlap1, i.types[1],
-                                                operand_types[0]))
+             overlap0 = operand_type_biop (i.types[0], operand_types[1],
+                                           and);
+             overlap1 = operand_type_biop (i.types[1], operand_types[0],
+                                           and);
+             if (!operand_type_match (overlap0, i.types[0])
+                 || !operand_type_match (overlap1, i.types[1])
+                 || !operand_type_register_match (overlap0, i.types[0],
+                                                  operand_types[1],
+                                                  overlap1, i.types[1],
+                                                  operand_types[0]))
                {
                  /* Does not match either direction.  */
                  continue;
                }
              /* found_reverse_match holds which of D or FloatDR
                 we've found.  */
-             if ((t->opcode_modifier & D))
+             if (t->opcode_modifier.d)
                found_reverse_match = Opcode_D;
-             else if ((t->opcode_modifier & FloatD))
+             else if (t->opcode_modifier.floatd)
                found_reverse_match = Opcode_FloatD;
              else
                found_reverse_match = 0;
-             if ((t->opcode_modifier & FloatR))
+             if (t->opcode_modifier.floatr)
                found_reverse_match |= Opcode_FloatR;
            }
          else
@@ -2713,35 +3084,37 @@ match_template (void)
              switch (t->operands)
                {
                case 4:
-                 overlap3 = i.types[3] & operand_types[3];
+                 overlap3 = operand_type_biop (i.types[3],
+                                               operand_types[3], and);
                case 3:
-                 overlap2 = i.types[2] & operand_types[2];
+                 overlap2 = operand_type_biop (i.types[2],
+                                               operand_types[2], and);
                  break;
                }
 
              switch (t->operands)
                {
                case 4:
-                 if (!MATCH (overlap3, i.types[3], operand_types[3])
-                     || !CONSISTENT_REGISTER_MATCH (overlap2,
-                                                    i.types[2],
-                                                    operand_types[2],
-                                                    overlap3,
-                                                    i.types[3],
-                                                    operand_types[3]))
+                 if (!operand_type_match (overlap3, i.types[3])
+                     || !operand_type_register_match (overlap2,
+                                                      i.types[2],
+                                                      operand_types[2],
+                                                      overlap3,
+                                                      i.types[3],
+                                                      operand_types[3]))
                    continue;
                case 3:
                  /* Here we make use of the fact that there are no
                     reverse match 3 operand instructions, and all 3
                     operand instructions only need to be checked for
                     register consistency between operands 2 and 3.  */
-                 if (!MATCH (overlap2, i.types[2], operand_types[2])
-                     || !CONSISTENT_REGISTER_MATCH (overlap1,
-                                                    i.types[1],
-                                                    operand_types[1],
-                                                    overlap2,
-                                                    i.types[2],
-                                                    operand_types[2]))
+                 if (!operand_type_match (overlap2, i.types[2])
+                     || !operand_type_register_match (overlap1,
+                                                      i.types[1],
+                                                      operand_types[1],
+                                                      overlap2,
+                                                      i.types[2],
+                                                      operand_types[2]))
                    continue;
                  break;
                }
@@ -2749,7 +3122,9 @@ match_template (void)
          /* Found either forward/reverse 2, 3 or 4 operand match here:
             slip through to break.  */
        }
-      if (t->cpu_flags & ~cpu_arch_flags)
+      if (!cpu_flags_all_zero (cpu_flags_biop (t->cpu_flags,
+                                              cpu_arch_flags_not,
+                                              and)))
        {
          found_reverse_match = 0;
          continue;
@@ -2769,14 +3144,14 @@ match_template (void)
   if (!quiet_warnings)
     {
       if (!intel_syntax
-         && ((i.types[0] & JumpAbsolute)
-             != (operand_types[0] & JumpAbsolute)))
+         && (i.types[0].bitfield.jumpabsolute
+             != operand_types[0].bitfield.jumpabsolute))
        {
          as_warn (_("indirect %s without `*'"), t->name);
        }
 
-      if ((t->opcode_modifier & (IsPrefix | IgnoreSize))
-         == (IsPrefix | IgnoreSize))
+      if (t->opcode_modifier.isprefix
+         && t->opcode_modifier.ignoresize)
        {
          /* Warn them that a data or address size prefix doesn't
             affect assembly of the next line of code.  */
@@ -2809,8 +3184,8 @@ match_template (void)
 static int
 check_string (void)
 {
-  int mem_op = (i.types[0] & AnyMem) ? 0 : 1;
-  if ((i.tm.operand_types[mem_op] & EsSeg) != 0)
+  int mem_op = operand_type_check (i.types[0], anymem) ? 0 : 1;
+  if (i.tm.operand_types[mem_op].bitfield.esseg)
     {
       if (i.seg[0] != NULL && i.seg[0] != &es)
        {
@@ -2825,7 +3200,7 @@ check_string (void)
         instructions store it, allowing common code.  */
       i.seg[0] = i.seg[1];
     }
-  else if ((i.tm.operand_types[mem_op + 1] & EsSeg) != 0)
+  else if (i.tm.operand_types[mem_op + 1].bitfield.esseg)
     {
       if (i.seg[1] != NULL && i.seg[1] != &es)
        {
@@ -2843,15 +3218,12 @@ process_suffix (void)
 {
   /* If matched instruction specifies an explicit instruction mnemonic
      suffix, use it.  */
-  if (i.tm.opcode_modifier & (Size16 | Size32 | Size64))
-    {
-      if (i.tm.opcode_modifier & Size16)
-       i.suffix = WORD_MNEM_SUFFIX;
-      else if (i.tm.opcode_modifier & Size64)
-       i.suffix = QWORD_MNEM_SUFFIX;
-      else
-       i.suffix = LONG_MNEM_SUFFIX;
-    }
+  if (i.tm.opcode_modifier.size16)
+    i.suffix = WORD_MNEM_SUFFIX;
+  else if (i.tm.opcode_modifier.size32)
+    i.suffix = LONG_MNEM_SUFFIX;
+  else if (i.tm.opcode_modifier.size64)
+    i.suffix = QWORD_MNEM_SUFFIX;
   else if (i.reg_operands)
     {
       /* If there's no instruction mnemonic suffix we try to invent one
@@ -2864,13 +3236,16 @@ process_suffix (void)
             type. */
          if (i.tm.base_opcode == 0xf20f38f1)
            {
-             if ((i.types[0] & Reg))
-               i.suffix = ((i.types[0] & Reg16) ? WORD_MNEM_SUFFIX :
-                           LONG_MNEM_SUFFIX);
+             if (i.types[0].bitfield.reg16)
+               i.suffix = WORD_MNEM_SUFFIX;
+             else if (i.types[0].bitfield.reg32)
+               i.suffix = LONG_MNEM_SUFFIX;
+             else if (i.types[0].bitfield.reg64)
+               i.suffix = QWORD_MNEM_SUFFIX;
            }
          else if (i.tm.base_opcode == 0xf20f38f0)
            {
-             if ((i.types[0] & Reg8))
+             if (i.types[0].bitfield.reg8)
                i.suffix = BYTE_MNEM_SUFFIX;
            }
 
@@ -2888,14 +3263,28 @@ process_suffix (void)
                }
 
              for (op = i.operands; --op >= 0;)
-               if ((i.types[op] & Reg)
-                   && !(i.tm.operand_types[op] & InOutPortReg))
+               if (!i.tm.operand_types[op].bitfield.inoutportreg)
                  {
-                   i.suffix = ((i.types[op] & Reg8) ? BYTE_MNEM_SUFFIX :
-                               (i.types[op] & Reg16) ? WORD_MNEM_SUFFIX :
-                               (i.types[op] & Reg64) ? QWORD_MNEM_SUFFIX :
-                               LONG_MNEM_SUFFIX);
-                   break;
+                   if (i.types[op].bitfield.reg8)
+                     {
+                       i.suffix = BYTE_MNEM_SUFFIX;
+                       break;
+                     }
+                   else if (i.types[op].bitfield.reg16)
+                     {
+                       i.suffix = WORD_MNEM_SUFFIX;
+                       break;
+                     }
+                   else if (i.types[op].bitfield.reg32)
+                     {
+                       i.suffix = LONG_MNEM_SUFFIX;
+                       break;
+                     }
+                   else if (i.types[op].bitfield.reg64)
+                     {
+                       i.suffix = QWORD_MNEM_SUFFIX;
+                       break;
+                     }
                  }
            }
        }
@@ -2919,40 +3308,41 @@ process_suffix (void)
          if (!check_word_reg ())
            return 0;
        }
-      else if (intel_syntax && (i.tm.opcode_modifier & IgnoreSize))
+      else if (intel_syntax && i.tm.opcode_modifier.ignoresize)
        /* Do nothing if the instruction is going to ignore the prefix.  */
        ;
       else
        abort ();
     }
-  else if ((i.tm.opcode_modifier & DefaultSize)
+  else if (i.tm.opcode_modifier.defaultsize
           && !i.suffix
           /* exclude fldenv/frstor/fsave/fstenv */
-          && (i.tm.opcode_modifier & No_sSuf))
+          && i.tm.opcode_modifier.no_ssuf)
     {
       i.suffix = stackop_size;
     }
   else if (intel_syntax
           && !i.suffix
-          && ((i.tm.operand_types[0] & JumpAbsolute)
-              || (i.tm.opcode_modifier & (JumpByte|JumpInterSegment))
+          && (i.tm.operand_types[0].bitfield.jumpabsolute
+              || i.tm.opcode_modifier.jumpbyte
+              || i.tm.opcode_modifier.jumpintersegment
               || (i.tm.base_opcode == 0x0f01 /* [ls][gi]dt */
                   && i.tm.extension_opcode <= 3)))
     {
       switch (flag_code)
        {
        case CODE_64BIT:
-         if (!(i.tm.opcode_modifier & No_qSuf))
+         if (!i.tm.opcode_modifier.no_qsuf)
            {
              i.suffix = QWORD_MNEM_SUFFIX;
              break;
            }
        case CODE_32BIT:
-         if (!(i.tm.opcode_modifier & No_lSuf))
+         if (!i.tm.opcode_modifier.no_lsuf)
            i.suffix = LONG_MNEM_SUFFIX;
          break;
        case CODE_16BIT:
-         if (!(i.tm.opcode_modifier & No_wSuf))
+         if (!i.tm.opcode_modifier.no_wsuf)
            i.suffix = WORD_MNEM_SUFFIX;
          break;
        }
@@ -2962,7 +3352,7 @@ process_suffix (void)
     {
       if (!intel_syntax)
        {
-         if (i.tm.opcode_modifier & W)
+         if (i.tm.opcode_modifier.w)
            {
              as_bad (_("no instruction mnemonic suffix given and "
                        "no register operands; can't size instruction"));
@@ -2971,17 +3361,25 @@ process_suffix (void)
        }
       else
        {
-         unsigned int suffixes = (~i.tm.opcode_modifier
-                                  & (No_bSuf
-                                     | No_wSuf
-                                     | No_lSuf
-                                     | No_sSuf
-                                     | No_xSuf
-                                     | No_qSuf));
-
-         if ((i.tm.opcode_modifier & W)
+         unsigned int suffixes;
+         
+         suffixes = !i.tm.opcode_modifier.no_bsuf;
+         if (!i.tm.opcode_modifier.no_wsuf)
+           suffixes |= 1 << 1;
+         if (!i.tm.opcode_modifier.no_lsuf)
+           suffixes |= 1 << 2;
+         if (!i.tm.opcode_modifier.no_lsuf)
+           suffixes |= 1 << 3;
+         if (!i.tm.opcode_modifier.no_ssuf)
+           suffixes |= 1 << 4;
+         if (!i.tm.opcode_modifier.no_qsuf)
+           suffixes |= 1 << 5;
+
+         /* There are more than suffix matches.  */
+         if (i.tm.opcode_modifier.w
              || ((suffixes & (suffixes - 1))
-                 && !(i.tm.opcode_modifier & (DefaultSize | IgnoreSize))))
+                 && !i.tm.opcode_modifier.defaultsize
+                 && !i.tm.opcode_modifier.ignoresize))
            {
              as_bad (_("ambiguous operand size for `%s'"), i.tm.name);
              return 0;
@@ -2995,9 +3393,9 @@ process_suffix (void)
   if (i.suffix && i.suffix != BYTE_MNEM_SUFFIX)
     {
       /* It's not a byte, select word/dword operation.  */
-      if (i.tm.opcode_modifier & W)
+      if (i.tm.opcode_modifier.w)
        {
-         if (i.tm.opcode_modifier & ShortForm)
+         if (i.tm.opcode_modifier.shortform)
            i.tm.base_opcode |= 8;
          else
            i.tm.base_opcode |= 1;
@@ -3017,21 +3415,24 @@ process_suffix (void)
             of AX is the size of mode. The address size override
             prefix will change the size of AX.  It is also true for
             invlpga, vmload, vmrun and vmsave in SVME.  */
-         if (i.op->regs[0].reg_type &
-             (flag_code == CODE_32BIT ? Reg16 : Reg32))
+         if ((flag_code == CODE_32BIT
+              && i.op->regs[0].reg_type.bitfield.reg16)
+             || (flag_code != CODE_32BIT
+                 && i.op->regs[0].reg_type.bitfield.reg32))
            if (!add_prefix (ADDR_PREFIX_OPCODE))
              return 0;
        }
       else if (i.suffix != QWORD_MNEM_SUFFIX
               && i.suffix != LONG_DOUBLE_MNEM_SUFFIX
-              && !(i.tm.opcode_modifier & (IgnoreSize | FloatMF))
+              && !i.tm.opcode_modifier.ignoresize
+              && !i.tm.opcode_modifier.floatmf
               && ((i.suffix == LONG_MNEM_SUFFIX) == (flag_code == CODE_16BIT)
                   || (flag_code == CODE_64BIT
-                      && (i.tm.opcode_modifier & JumpByte))))
+                      && i.tm.opcode_modifier.jumpbyte)))
        {
          unsigned int prefix = DATA_PREFIX_OPCODE;
 
-         if (i.tm.opcode_modifier & JumpByte) /* jcxz, loop */
+         if (i.tm.opcode_modifier.jumpbyte) /* jcxz, loop */
            prefix = ADDR_PREFIX_OPCODE;
 
          if (!add_prefix (prefix))
@@ -3041,26 +3442,26 @@ process_suffix (void)
       /* Set mode64 for an operand.  */
       if (i.suffix == QWORD_MNEM_SUFFIX
          && flag_code == CODE_64BIT
-         && (i.tm.opcode_modifier & NoRex64) == 0)
+         && !i.tm.opcode_modifier.norex64)
        {
          /* Special case for xchg %rax,%rax.  It is NOP and doesn't
             need rex64.  cmpxchg8b is also a special case. */
          if (! (i.operands == 2
                 && i.tm.base_opcode == 0x90
                 && i.tm.extension_opcode == None
-                && i.types [0] == (Acc | Reg64)
-                && i.types [1] == (Acc | Reg64))
+                && memcmp (&i.types [0], &acc64, sizeof (acc64)) == 0
+                && memcmp (&i.types [1], &acc64, sizeof (acc64)) == 0)
              && ! (i.operands == 1
                    && i.tm.base_opcode == 0xfc7
                    && i.tm.extension_opcode == 1
-                   && (i.types [0] & Reg) == 0
-                   && (i.types [0] & AnyMem) != 0))
+                   && !operand_type_check (i.types [0], reg)
+                   && operand_type_check (i.types [0], anymem)))
            i.rex |= REX_W;
        }
 
       /* Size floating point instruction.  */
       if (i.suffix == LONG_MNEM_SUFFIX)
-       if (i.tm.opcode_modifier & FloatMF)
+       if (i.tm.opcode_modifier.floatmf)
          i.tm.base_opcode ^= 4;
     }
 
@@ -3077,7 +3478,7 @@ check_byte_reg (void)
       /* If this is an eight bit register, it's OK.  If it's the 16 or
         32 bit version of an eight bit register, we will just use the
         low portion, and that's OK too.  */
-      if (i.types[op] & Reg8)
+      if (i.types[op].bitfield.reg8)
        continue;
 
       /* movzx, movsx, pextrb and pinsrb should not generate this
@@ -3096,12 +3497,15 @@ check_byte_reg (void)
       if (i.tm.base_opcode == 0xf20f38f0)
        continue;
 
-      if ((i.types[op] & WordReg) && i.op[op].regs->reg_num < 4)
+      if ((i.types[op].bitfield.reg16
+          || i.types[op].bitfield.reg32
+          || i.types[op].bitfield.reg64)
+         && i.op[op].regs->reg_num < 4)
        {
          /* Prohibit these changes in the 64bit mode, since the
             lowering is more complicated.  */
          if (flag_code == CODE_64BIT
-             && (i.tm.operand_types[op] & InOutPortReg) == 0)
+             && !i.tm.operand_types[op].bitfield.inoutportreg)
            {
              as_bad (_("Incorrect register `%s%s' used with `%c' suffix"),
                      register_prefix, i.op[op].regs->reg_name,
@@ -3110,10 +3514,10 @@ check_byte_reg (void)
            }
 #if REGISTER_WARNINGS
          if (!quiet_warnings
-             && (i.tm.operand_types[op] & InOutPortReg) == 0)
+             && !i.tm.operand_types[op].bitfield.inoutportreg)
            as_warn (_("using `%s%s' instead of `%s%s' due to `%c' suffix"),
                     register_prefix,
-                    (i.op[op].regs + (i.types[op] & Reg16
+                    (i.op[op].regs + (i.types[op].bitfield.reg16
                                       ? REGNAM_AL - REGNAM_AX
                                       : REGNAM_AL - REGNAM_EAX))->reg_name,
                     register_prefix,
@@ -3123,10 +3527,18 @@ check_byte_reg (void)
          continue;
        }
       /* Any other register is bad.  */
-      if (i.types[op] & (Reg | RegMMX | RegXMM
-                        | SReg2 | SReg3
-                        | Control | Debug | Test
-                        | FloatReg | FloatAcc))
+      if (i.types[op].bitfield.reg16
+         || i.types[op].bitfield.reg32
+         || i.types[op].bitfield.reg64
+         || i.types[op].bitfield.regmmx
+         || i.types[op].bitfield.regxmm
+         || i.types[op].bitfield.sreg2
+         || i.types[op].bitfield.sreg3
+         || i.types[op].bitfield.control
+         || i.types[op].bitfield.debug
+         || i.types[op].bitfield.test
+         || i.types[op].bitfield.floatreg
+         || i.types[op].bitfield.floatacc)
        {
          as_bad (_("`%s%s' not allowed with `%s%c'"),
                  register_prefix,
@@ -3147,8 +3559,10 @@ check_long_reg (void)
   for (op = i.operands; --op >= 0;)
     /* Reject eight bit registers, except where the template requires
        them. (eg. movzb)  */
-    if ((i.types[op] & Reg8) != 0
-       && (i.tm.operand_types[op] & (Reg16 | Reg32 | Acc)) != 0)
+    if (i.types[op].bitfield.reg8
+       && (i.tm.operand_types[op].bitfield.reg16
+           || i.tm.operand_types[op].bitfield.reg32
+           || i.tm.operand_types[op].bitfield.acc))
       {
        as_bad (_("`%s%s' not allowed with `%s%c'"),
                register_prefix,
@@ -3159,8 +3573,9 @@ check_long_reg (void)
       }
   /* Warn if the e prefix on a general reg is missing.  */
     else if ((!quiet_warnings || flag_code == CODE_64BIT)
-            && (i.types[op] & Reg16) != 0
-            && (i.tm.operand_types[op] & (Reg32 | Acc)) != 0)
+            && i.types[op].bitfield.reg16
+            && (i.tm.operand_types[op].bitfield.reg32
+                || i.tm.operand_types[op].bitfield.acc))
       {
        /* Prohibit these changes in the 64bit mode, since the
           lowering is more complicated.  */
@@ -3182,12 +3597,13 @@ check_long_reg (void)
 #endif
       }
   /* Warn if the r prefix on a general reg is missing.  */
-    else if ((i.types[op] & Reg64) != 0
-            && (i.tm.operand_types[op] & (Reg32 | Acc)) != 0)
+    else if (i.types[op].bitfield.reg64
+            && (i.tm.operand_types[op].bitfield.reg32
+                || i.tm.operand_types[op].bitfield.acc))
       {
        if (intel_syntax
            && i.tm.base_opcode == 0xf30f2d
-           && (i.types[0] & RegXMM) == 0)
+           && !i.types[0].bitfield.regxmm)
          {
            /* cvtss2si converts DWORD memory to Reg64.  We want
               REX byte. */
@@ -3212,8 +3628,10 @@ check_qword_reg (void)
   for (op = i.operands; --op >= 0; )
     /* Reject eight bit registers, except where the template requires
        them. (eg. movzb)  */
-    if ((i.types[op] & Reg8) != 0
-       && (i.tm.operand_types[op] & (Reg16 | Reg32 | Acc)) != 0)
+    if (i.types[op].bitfield.reg8
+       && (i.tm.operand_types[op].bitfield.reg16
+           || i.tm.operand_types[op].bitfield.reg32
+           || i.tm.operand_types[op].bitfield.acc))
       {
        as_bad (_("`%s%s' not allowed with `%s%c'"),
                register_prefix,
@@ -3223,14 +3641,16 @@ check_qword_reg (void)
        return 0;
       }
   /* Warn if the e prefix on a general reg is missing.  */
-    else if ((i.types[op] & (Reg16 | Reg32)) != 0
-            && (i.tm.operand_types[op] & (Reg32 | Acc)) != 0)
+    else if ((i.types[op].bitfield.reg16
+             || i.types[op].bitfield.reg32)
+            && (i.tm.operand_types[op].bitfield.reg32
+                || i.tm.operand_types[op].bitfield.acc))
       {
        /* Prohibit these changes in the 64bit mode, since the
           lowering is more complicated.  */
        if (intel_syntax
            && i.tm.base_opcode == 0xf20f2d
-           && (i.types[0] & RegXMM) == 0)
+           && !i.types[0].bitfield.regxmm)
          {
            /* cvtsd2si converts QWORD memory to Reg32.  We don't want
               REX byte. */
@@ -3254,8 +3674,10 @@ check_word_reg (void)
   for (op = i.operands; --op >= 0;)
     /* Reject eight bit registers, except where the template requires
        them. (eg. movzb)  */
-    if ((i.types[op] & Reg8) != 0
-       && (i.tm.operand_types[op] & (Reg16 | Reg32 | Acc)) != 0)
+    if (i.types[op].bitfield.reg8
+       && (i.tm.operand_types[op].bitfield.reg16
+           || i.tm.operand_types[op].bitfield.reg32
+           || i.tm.operand_types[op].bitfield.acc))
       {
        as_bad (_("`%s%s' not allowed with `%s%c'"),
                register_prefix,
@@ -3266,8 +3688,9 @@ check_word_reg (void)
       }
   /* Warn if the e prefix on a general reg is present.  */
     else if ((!quiet_warnings || flag_code == CODE_64BIT)
-            && (i.types[op] & Reg32) != 0
-            && (i.tm.operand_types[op] & (Reg16 | Acc)) != 0)
+            && i.types[op].bitfield.reg32
+            && (i.tm.operand_types[op].bitfield.reg16
+                || i.tm.operand_types[op].bitfield.acc))
       {
        /* Prohibit these changes in the 64bit mode, since the
           lowering is more complicated.  */
@@ -3292,82 +3715,85 @@ check_word_reg (void)
 }
 
 static int
-finalize_imm (void)
+update_imm (unsigned int j)
 {
-  unsigned int overlap0, overlap1, overlap2;
-
-  overlap0 = i.types[0] & i.tm.operand_types[0];
-  if ((overlap0 & (Imm8 | Imm8S | Imm16 | Imm32 | Imm32S | Imm64))
-      && overlap0 != Imm8 && overlap0 != Imm8S
-      && overlap0 != Imm16 && overlap0 != Imm32S
-      && overlap0 != Imm32 && overlap0 != Imm64)
+  i386_operand_type overlap;
+
+  overlap = operand_type_biop (i.types[j], i.tm.operand_types[j],
+                              and);
+  if ((overlap.bitfield.imm8
+       || overlap.bitfield.imm8s
+       || overlap.bitfield.imm16
+       || overlap.bitfield.imm32
+       || overlap.bitfield.imm32s
+       || overlap.bitfield.imm64)
+      && memcmp (&overlap, &imm8, sizeof (overlap))
+      && memcmp (&overlap, &imm8s, sizeof (overlap))
+      && memcmp (&overlap, &imm16, sizeof (overlap))
+      && memcmp (&overlap, &imm32, sizeof (overlap))
+      && memcmp (&overlap, &imm32s, sizeof (overlap))
+      && memcmp (&overlap, &imm64, sizeof (overlap)))
     {
       if (i.suffix)
        {
-         overlap0 &= (i.suffix == BYTE_MNEM_SUFFIX
-                      ? Imm8 | Imm8S
-                      : (i.suffix == WORD_MNEM_SUFFIX
-                         ? Imm16
-                         : (i.suffix == QWORD_MNEM_SUFFIX
-                            ? Imm64 | Imm32S
-                            : Imm32)));
+         i386_operand_type temp;
+
+         memset (&temp, 0, sizeof (temp));
+         if (i.suffix == BYTE_MNEM_SUFFIX) 
+           {
+             temp.bitfield.imm8 = overlap.bitfield.imm8;
+             temp.bitfield.imm8s = overlap.bitfield.imm8s;
+           }
+         else if (i.suffix == WORD_MNEM_SUFFIX)
+           temp.bitfield.imm16 = overlap.bitfield.imm16;
+         else if (i.suffix == QWORD_MNEM_SUFFIX)
+           {
+             temp.bitfield.imm64 = overlap.bitfield.imm64;
+             temp.bitfield.imm32s = overlap.bitfield.imm32s;
+           }
+         else
+           temp.bitfield.imm32 = overlap.bitfield.imm32;
+         overlap = temp;
        }
-      else if (overlap0 == (Imm16 | Imm32S | Imm32)
-              || overlap0 == (Imm16 | Imm32)
-              || overlap0 == (Imm16 | Imm32S))
+      else if (memcmp (&overlap, &imm16_32_32s, sizeof (overlap)) == 0
+              || memcmp (&overlap, &imm16_32, sizeof (overlap)) == 0
+              || memcmp (&overlap, &imm16_32s, sizeof (overlap)) == 0)
        {
-         overlap0 = ((flag_code == CODE_16BIT) ^ (i.prefix[DATA_PREFIX] != 0)
-                     ? Imm16 : Imm32S);
+         memset (&overlap, 0, sizeof (overlap));
+         if ((flag_code == CODE_16BIT) ^ (i.prefix[DATA_PREFIX] != 0))
+           overlap.bitfield.imm16 = 1;
+         else
+           overlap.bitfield.imm32s = 1;
        }
-      if (overlap0 != Imm8 && overlap0 != Imm8S
-         && overlap0 != Imm16 && overlap0 != Imm32S
-         && overlap0 != Imm32 && overlap0 != Imm64)
+      if (memcmp (&overlap, &imm8, sizeof (overlap))
+         && memcmp (&overlap, &imm8s, sizeof (overlap))
+         && memcmp (&overlap, &imm16, sizeof (overlap))
+         && memcmp (&overlap, &imm32, sizeof (overlap))
+         && memcmp (&overlap, &imm32s, sizeof (overlap))
+         && memcmp (&overlap, &imm64, sizeof (overlap)))
        {
          as_bad (_("no instruction mnemonic suffix given; "
                    "can't determine immediate size"));
          return 0;
        }
     }
-  i.types[0] = overlap0;
+  i.types[j] = overlap;
 
-  overlap1 = i.types[1] & i.tm.operand_types[1];
-  if ((overlap1 & (Imm8 | Imm8S | Imm16 | Imm32S | Imm32 | Imm64))
-      && overlap1 != Imm8 && overlap1 != Imm8S
-      && overlap1 != Imm16 && overlap1 != Imm32S
-      && overlap1 != Imm32 && overlap1 != Imm64)
-    {
-      if (i.suffix)
-       {
-         overlap1 &= (i.suffix == BYTE_MNEM_SUFFIX
-                      ? Imm8 | Imm8S
-                      : (i.suffix == WORD_MNEM_SUFFIX
-                         ? Imm16
-                         : (i.suffix == QWORD_MNEM_SUFFIX
-                            ? Imm64 | Imm32S
-                            : Imm32)));
-       }
-      else if (overlap1 == (Imm16 | Imm32 | Imm32S)
-              || overlap1 == (Imm16 | Imm32)
-              || overlap1 == (Imm16 | Imm32S))
-       {
-         overlap1 = ((flag_code == CODE_16BIT) ^ (i.prefix[DATA_PREFIX] != 0)
-                     ? Imm16 : Imm32S);
-       }
-      if (overlap1 != Imm8 && overlap1 != Imm8S
-         && overlap1 != Imm16 && overlap1 != Imm32S
-         && overlap1 != Imm32 && overlap1 != Imm64)
-       {
-         as_bad (_("no instruction mnemonic suffix given; "
-                   "can't determine immediate size %x %c"),
-                 overlap1, i.suffix);
-         return 0;
-       }
-    }
-  i.types[1] = overlap1;
+  return 1;
+}
+
+static int
+finalize_imm (void)
+{
+  unsigned int j;
 
-  overlap2 = i.types[2] & i.tm.operand_types[2];
-  assert ((overlap2 & Imm) == 0);
-  i.types[2] = overlap2;
+  for (j = 0; j < 2; j++)
+    if (update_imm (j) == 0)
+      return 0;
+
+  i.types[2] = operand_type_biop (i.types[2], i.tm.operand_types[2],
+                                 and);
+  assert (operand_type_check (i.types[2], imm) == 0);
 
   return 1;
 }
@@ -3383,15 +3809,15 @@ process_operands (void)
   /* The imul $imm, %reg instruction is converted into
      imul $imm, %reg, %reg, and the clr %reg instruction
      is converted into xor %reg, %reg.  */
-  if (i.tm.opcode_modifier & RegKludge)
+  if (i.tm.opcode_modifier.regkludge)
     {
-       if ((i.tm.cpu_flags & CpuSSE4_1))
+       if (i.tm.cpu_flags.bitfield.cpusse4_1)
         {
           /* The first operand in instruction blendvpd, blendvps and
              pblendvb in SSE4.1 is implicit and must be xmm0.  */
           assert (i.operands == 3
                   && i.reg_operands >= 2
-                  && i.types[0] == RegXMM);
+                  && memcmp (&i.types[0], &regxmm, sizeof (regxmm)) == 0);
           if (i.op[0].regs->reg_num != 0)
             {
               if (intel_syntax)
@@ -3417,7 +3843,12 @@ process_operands (void)
         }
        else
         {
-          unsigned int first_reg_op = (i.types[0] & Reg) ? 0 : 1;
+          unsigned int first_reg_op;
+          
+          if (operand_type_check (i.types[0], reg))
+            first_reg_op = 0;
+          else
+            first_reg_op = 1;
           /* Pretend we saw the extra register operand.  */
           assert (i.reg_operands == 1
                   && i.op[first_reg_op + 1].regs == 0);
@@ -3428,9 +3859,10 @@ process_operands (void)
         }
     }
 
-  if (i.tm.opcode_modifier & ShortForm)
+  if (i.tm.opcode_modifier.shortform)
     {
-      if (i.types[0] & (SReg2 | SReg3))
+      if (i.types[0].bitfield.sreg2
+         || i.types[0].bitfield.sreg3)
        {
          if (i.tm.base_opcode == POP_SEG_SHORT
              && i.op[0].regs->reg_num == 1)
@@ -3445,12 +3877,18 @@ process_operands (void)
       else
        {
          /* The register or float register operand is in operand 0 or 1.  */
-         unsigned int op = (i.types[0] & (Reg | FloatReg)) ? 0 : 1;
+         unsigned int op;
+         
+          if (i.types[0].bitfield.floatreg
+              || operand_type_check (i.types[0], reg))
+            op = 0;
+          else
+            op = 1;
          /* Register goes in low 3 bits of opcode.  */
          i.tm.base_opcode |= i.op[op].regs->reg_num;
          if ((i.op[op].regs->reg_flags & RegRex) != 0)
            i.rex |= REX_B;
-         if (!quiet_warnings && (i.tm.opcode_modifier & Ugh) != 0)
+         if (!quiet_warnings && i.tm.opcode_modifier.ugh)
            {
              /* Warn about some common errors, but press on regardless.
                 The first case can be generated by gcc (<= 2.8.1).  */
@@ -3470,7 +3908,7 @@ process_operands (void)
            }
        }
     }
-  else if (i.tm.opcode_modifier & Modrm)
+  else if (i.tm.opcode_modifier.modrm)
     {
       /* The opcode is completed (modulo i.tm.extension_opcode which
         must be put into the modrm byte).  Now, we make the modrm and
@@ -3482,7 +3920,7 @@ process_operands (void)
     {
       default_seg = &ds;
     }
-  else if ((i.tm.opcode_modifier & IsString) != 0)
+  else if (i.tm.opcode_modifier.isstring)
     {
       /* For the string instructions that allow a segment override
         on one of their operands, the default segment is ds.  */
@@ -3529,15 +3967,19 @@ build_modrm_byte (void)
             the first operand must be shift count register (cl). */
          assert (i.imm_operands == 1
                  || (i.imm_operands == 0
-                     && (i.types[0] & ShiftCount)));
-         source = (i.types[0] & (Imm | ShiftCount)) ? 1 : 0;
+                     && i.types[0].bitfield.shiftcount));
+         if (operand_type_check (i.types[0], imm)
+             || i.types[0].bitfield.shiftcount)
+           source = 1;
+         else
+           source = 0;
          break;
        case 4:
          /* When there are 4 operands, the first two must be immediate
             operands. The source operand will be the 3rd one.  */
          assert (i.imm_operands == 2
-                 && (i.types[0] & Imm)
-                 && (i.types[1] & Imm));
+                 && operand_type_check (i.types[0], imm)
+                 && operand_type_check (i.types[1], imm));
          source = 2;
          break;
        default:
@@ -3553,7 +3995,8 @@ build_modrm_byte (void)
         destination operand, then we assume the source operand may
         sometimes be a memory operand and so we need to store the
         destination in the i.rm.reg field.  */
-      if ((i.tm.operand_types[dest] & (AnyMem | RegMem)) == 0)
+      if (!i.tm.operand_types[dest].bitfield.regmem
+         && operand_type_check (i.tm.operand_types[dest], anymem) == 0)
        {
          i.rm.reg = i.op[dest].regs->reg_num;
          i.rm.regmem = i.op[source].regs->reg_num;
@@ -3573,7 +4016,8 @@ build_modrm_byte (void)
        }
       if (flag_code != CODE_64BIT && (i.rex & (REX_R | REX_B)))
        {
-         if (!((i.types[0] | i.types[1]) & Control))
+         if (!i.types[0].bitfield.control
+             && !i.types[1].bitfield.control)
            abort ();
          i.rex &= ~(REX_R | REX_B);
          add_prefix (LOCK_PREFIX_OPCODE);
@@ -3587,7 +4031,7 @@ build_modrm_byte (void)
          unsigned int op;
 
          for (op = 0; op < i.operands; op++)
-           if ((i.types[op] & AnyMem))
+           if (operand_type_check (i.types[op], anymem))
              break;
          assert (op < i.operands);
 
@@ -3611,18 +4055,18 @@ build_modrm_byte (void)
                      i.sib.base = NO_BASE_REGISTER;
                      i.sib.index = NO_INDEX_REGISTER;
                      i.types[op] = ((i.prefix[ADDR_PREFIX] == 0)
-                                    ? Disp32S : Disp32);
+                                    ? disp32s : disp32);
                    }
                  else if ((flag_code == CODE_16BIT)
                           ^ (i.prefix[ADDR_PREFIX] != 0))
                    {
                      i.rm.regmem = NO_BASE_REGISTER_16;
-                     i.types[op] = Disp16;
+                     i.types[op] = disp16;
                    }
                  else
                    {
                      i.rm.regmem = NO_BASE_REGISTER;
-                     i.types[op] = Disp32;
+                     i.types[op] = disp32;
                    }
                }
              else /* !i.base_reg && i.index_reg  */
@@ -3631,26 +4075,39 @@ build_modrm_byte (void)
                  i.sib.base = NO_BASE_REGISTER;
                  i.sib.scale = i.log2_scale_factor;
                  i.rm.regmem = ESCAPE_TO_TWO_BYTE_ADDRESSING;
-                 i.types[op] &= ~Disp;
+                 i.types[op].bitfield.disp8 = 0;
+                 i.types[op].bitfield.disp16 = 0;
+                 i.types[op].bitfield.disp64 = 0;
                  if (flag_code != CODE_64BIT)
-                   i.types[op] |= Disp32;      /* Must be 32 bit */
+                   {
+                     /* Must be 32 bit */
+                     i.types[op].bitfield.disp32 = 1;
+                     i.types[op].bitfield.disp32s = 0;
+                   }
                  else
-                   i.types[op] |= Disp32S;
+                   {
+                     i.types[op].bitfield.disp32 = 0;
+                     i.types[op].bitfield.disp32s = 1;
+                   }
                  if ((i.index_reg->reg_flags & RegRex) != 0)
                    i.rex |= REX_X;
                }
            }
          /* RIP addressing for 64bit mode.  */
-         else if (i.base_reg->reg_type == BaseIndex)
+         else if (memcmp (&i.base_reg->reg_type, &baseindex,
+                          sizeof (baseindex)) == 0)
            {
              i.rm.regmem = NO_BASE_REGISTER;
-             i.types[op] &= ~ Disp;
-             i.types[op] |= Disp32S;
+             i.types[op].bitfield.disp8 = 0;
+             i.types[op].bitfield.disp16 = 0;
+             i.types[op].bitfield.disp32 = 0;
+             i.types[op].bitfield.disp32s = 1;
+             i.types[op].bitfield.disp64 = 0;
              i.flags[op] |= Operand_PCrel;
              if (! i.disp_operands)
                fake_zero_displacement = 1;
            }
-         else if (i.base_reg->reg_type & Reg16)
+         else if (i.base_reg->reg_type.bitfield.reg16)
            {
              switch (i.base_reg->reg_num)
                {
@@ -3665,10 +4122,10 @@ build_modrm_byte (void)
                  if (i.index_reg == 0)
                    {
                      i.rm.regmem = 6;
-                     if ((i.types[op] & Disp) == 0)
+                     if (operand_type_check (i.types[op], disp) == 0)
                        {
                          /* fake (%bp) into 0(%bp)  */
-                         i.types[op] |= Disp8;
+                         i.types[op].bitfield.disp8 = 1;
                          fake_zero_displacement = 1;
                        }
                    }
@@ -3683,10 +4140,18 @@ build_modrm_byte (void)
          else /* i.base_reg and 32/64 bit mode  */
            {
              if (flag_code == CODE_64BIT
-                 && (i.types[op] & Disp))
-               i.types[op] = ((i.types[op] & Disp8)
-                              | (i.prefix[ADDR_PREFIX] == 0
-                                 ? Disp32S : Disp32));
+                 && operand_type_check (i.types[op], disp))
+               {
+                 i386_operand_type temp;
+
+                 memset (&temp, 0, sizeof (temp));
+                 temp.bitfield.disp8 = i.types[op].bitfield.disp8;
+                 i.types[op] = temp;
+                 if (i.prefix[ADDR_PREFIX] == 0)
+                   i.types[op].bitfield.disp32s = 1;
+                 else
+                   i.types[op].bitfield.disp32 = 1;
+               }
 
              i.rm.regmem = i.base_reg->reg_num;
              if ((i.base_reg->reg_flags & RegRex) != 0)
@@ -3700,7 +4165,7 @@ build_modrm_byte (void)
                  if (i.disp_operands == 0)
                    {
                      fake_zero_displacement = 1;
-                     i.types[op] |= Disp8;
+                     i.types[op].bitfield.disp8 = 1;
                    }
                }
              else if (i.base_reg->reg_num == ESP_REG_NUM)
@@ -3763,9 +4228,17 @@ build_modrm_byte (void)
          unsigned int op;
 
          for (op = 0; op < i.operands; op++)
-           if ((i.types[op] & (Reg | RegMMX | RegXMM
-                               | SReg2 | SReg3
-                               | Control | Debug | Test)))
+           if (i.types[op].bitfield.reg8
+               || i.types[op].bitfield.reg16
+               || i.types[op].bitfield.reg32
+               || i.types[op].bitfield.reg64
+               || i.types[op].bitfield.regmmx
+               || i.types[op].bitfield.regxmm
+               || i.types[op].bitfield.sreg2
+               || i.types[op].bitfield.sreg3
+               || i.types[op].bitfield.control
+               || i.types[op].bitfield.debug
+               || i.types[op].bitfield.test)
              break;
          assert (op < i.operands);
 
@@ -3854,7 +4327,7 @@ output_branch (void)
 
   if ((unsigned char) *p == JUMP_PC_RELATIVE)
     subtype = ENCODE_RELAX_STATE (UNCOND_JUMP, SMALL);
-  else if ((cpu_arch_flags & Cpu386) != 0)
+  else if (cpu_arch_flags.bitfield.cpui386)
     subtype = ENCODE_RELAX_STATE (COND_JUMP, SMALL);
   else
     subtype = ENCODE_RELAX_STATE (COND_JUMP86, SMALL);
@@ -3883,7 +4356,7 @@ output_jump (void)
   int size;
   fixS *fixP;
 
-  if (i.tm.opcode_modifier & JumpByte)
+  if (i.tm.opcode_modifier.jumpbyte)
     {
       /* This is a loop or jecxz type instruction.  */
       size = 1;
@@ -4021,11 +4494,12 @@ output_insn (void)
   insn_start_off = frag_now_fix ();
 
   /* Output jumps.  */
-  if (i.tm.opcode_modifier & Jump)
+  if (i.tm.opcode_modifier.jump)
     output_branch ();
-  else if (i.tm.opcode_modifier & (JumpByte | JumpDword))
+  else if (i.tm.opcode_modifier.jumpbyte
+          || i.tm.opcode_modifier.jumpdword)
     output_jump ();
-  else if (i.tm.opcode_modifier & JumpInterSegment)
+  else if (i.tm.opcode_modifier.jumpintersegment)
     output_interseg_jump ();
   else
     {
@@ -4033,13 +4507,17 @@ output_insn (void)
       char *p;
       unsigned char *q;
       unsigned int prefix;
+      int opc_3b;
 
       /* All opcodes on i386 have either 1 or 2 bytes.  SSSE3 and
         SSE4 instructions have 3 bytes.  We may use one more higher
         byte to specify a prefix the instruction requires.  Exclude
         instructions which are in both SSE4 and ABM.  */
-      if ((i.tm.cpu_flags & (CpuSSSE3 | CpuSSE4)) != 0
-         && (i.tm.cpu_flags & CpuABM) == 0)
+      opc_3b = ((i.tm.cpu_flags.bitfield.cpussse3
+                || i.tm.cpu_flags.bitfield.cpusse4_1
+                || i.tm.cpu_flags.bitfield.cpusse4_2)
+               && !i.tm.cpu_flags.bitfield.cpuabm);
+      if (opc_3b)
        {
          if (i.tm.base_opcode & 0xff000000)
            {
@@ -4050,7 +4528,7 @@ output_insn (void)
       else if ((i.tm.base_opcode & 0xff0000) != 0)
        {
          prefix = (i.tm.base_opcode >> 16) & 0xff;
-         if ((i.tm.cpu_flags & CpuPadLock) != 0)
+         if (i.tm.cpu_flags.bitfield.cpupadlock)
            {
            check_prefix:
              if (prefix != REPE_PREFIX_OPCODE
@@ -4080,8 +4558,7 @@ output_insn (void)
        }
       else
        {
-         if ((i.tm.cpu_flags & (CpuSSSE3 | CpuSSE4)) != 0
-             && (i.tm.cpu_flags & CpuABM) == 0)
+         if (opc_3b)
            {
              p = frag_more (3);
              *p++ = (i.tm.base_opcode >> 16) & 0xff;
@@ -4095,7 +4572,7 @@ output_insn (void)
        }
 
       /* Now the modrm byte and sib byte (if present).  */
-      if (i.tm.opcode_modifier & Modrm)
+      if (i.tm.opcode_modifier.modrm)
        {
          p = frag_more (1);
          md_number_to_chars (p,
@@ -4109,7 +4586,7 @@ output_insn (void)
             ==> need second modrm byte.  */
          if (i.rm.regmem == ESCAPE_TO_TWO_BYTE_ADDRESSING
              && i.rm.mode != 3
-             && !(i.base_reg && (i.base_reg->reg_type & Reg16) != 0))
+             && !(i.base_reg && i.base_reg->reg_type.bitfield.reg16))
            {
              p = frag_more (1);
              md_number_to_chars (p,
@@ -4141,14 +4618,12 @@ static int
 disp_size (unsigned int n)
 {
   int size = 4;
-  if (i.types[n] & (Disp8 | Disp16 | Disp64))
-    {
-      size = 2;
-      if (i.types[n] & Disp8)
-       size = 1;
-      if (i.types[n] & Disp64)
-       size = 8;
-    }
+  if (i.types[n].bitfield.disp64)
+    size = 8;
+  else if (i.types[n].bitfield.disp8)
+    size = 1;
+  else if (i.types[n].bitfield.disp16)
+    size = 2;
   return size;
 }
 
@@ -4158,14 +4633,12 @@ static int
 imm_size (unsigned int n)
 {
   int size = 4;
-  if (i.types[n] & (Imm8 | Imm8S | Imm16 | Imm64))
-    {
-      size = 2;
-      if (i.types[n] & (Imm8 | Imm8S))
-       size = 1;
-      if (i.types[n] & Imm64)
-       size = 8;
-    }
+  if (i.types[n].bitfield.imm64)
+    size = 8;
+  else if (i.types[n].bitfield.imm8 || i.types[n].bitfield.imm8s)
+    size = 1;
+  else if (i.types[n].bitfield.imm16)
+    size = 2;
   return size;
 }
 
@@ -4177,7 +4650,7 @@ output_disp (fragS *insn_start_frag, offsetT insn_start_off)
 
   for (n = 0; n < i.operands; n++)
     {
-      if (i.types[n] & Disp)
+      if (operand_type_check (i.types[n], disp))
        {
          if (i.op[n].disps->X_op == O_constant)
            {
@@ -4193,11 +4666,11 @@ output_disp (fragS *insn_start_frag, offsetT insn_start_off)
            {
              enum bfd_reloc_code_real reloc_type;
              int size = disp_size (n);
-             int sign = (i.types[n] & Disp32S) != 0;
+             int sign = i.types[n].bitfield.disp32s;
              int pcrel = (i.flags[n] & Operand_PCrel) != 0;
 
              /* We can't have 8 bit displacement here.  */
-             assert ((i.types[n] & Disp8) == 0);
+             assert (!i.types[n].bitfield.disp8);
 
              /* The PC relative address is computed relative
                 to the instruction boundary, so in case immediate
@@ -4208,7 +4681,7 @@ output_disp (fragS *insn_start_frag, offsetT insn_start_off)
                  int sz = 0;
 
                  for (n1 = 0; n1 < i.operands; n1++)
-                   if (i.types[n1] & Imm)
+                   if (operand_type_check (i.types[n1], imm))
                      {
                        /* Only one immediate is allowed for PC
                           relative address.  */
@@ -4278,7 +4751,7 @@ output_imm (fragS *insn_start_frag, offsetT insn_start_off)
 
   for (n = 0; n < i.operands; n++)
     {
-      if (i.types[n] & Imm)
+      if (operand_type_check (i.types[n], imm))
        {
          if (i.op[n].imms->X_op == O_constant)
            {
@@ -4300,9 +4773,9 @@ output_imm (fragS *insn_start_frag, offsetT insn_start_off)
              int size = imm_size (n);
              int sign;
 
-             if ((i.types[n] & (Imm32S))
+             if (i.types[n].bitfield.imm32s
                  && (i.suffix == QWORD_MNEM_SUFFIX
-                     || (!i.suffix && (i.tm.opcode_modifier & No_lSuf))))
+                     || (!i.suffix && i.tm.opcode_modifier.no_lsuf)))
                sign = 1;
              else
                sign = 0;
@@ -4432,7 +4905,7 @@ x86_cons_fix_new (fragS *frag, unsigned int off, unsigned int len,
 static char *
 lex_got (enum bfd_reloc_code_real *reloc,
         int *adjust,
-        unsigned int *types)
+        i386_operand_type *types)
 {
   /* Some of the relocations depend on the size of what field is to
      be relocated.  But in our callers i386_immediate and i386_displacement
@@ -4442,59 +4915,60 @@ lex_got (enum bfd_reloc_code_real *reloc,
   static const struct {
     const char *str;
     const enum bfd_reloc_code_real rel[2];
-    const unsigned int types64;
+    const i386_operand_type types64;
   } gotrel[] = {
     { "PLTOFF",   { 0,
                    BFD_RELOC_X86_64_PLTOFF64 },
-      Imm64 },
+      OPERAND_TYPE_IMM64 },
     { "PLT",      { BFD_RELOC_386_PLT32,
                    BFD_RELOC_X86_64_PLT32    },
-      Imm32 | Imm32S | Disp32 },
+      OPERAND_TYPE_IMM32_32S_DISP32 },
     { "GOTPLT",   { 0,
                    BFD_RELOC_X86_64_GOTPLT64 },
-      Imm64 | Disp64 },
+      OPERAND_TYPE_IMM64_DISP64 },
     { "GOTOFF",   { BFD_RELOC_386_GOTOFF,
                    BFD_RELOC_X86_64_GOTOFF64 },
-      Imm64 | Disp64 },
+      OPERAND_TYPE_IMM64_DISP64 },
     { "GOTPCREL", { 0,
                    BFD_RELOC_X86_64_GOTPCREL },
-      Imm32 | Imm32S | Disp32 },
+      OPERAND_TYPE_IMM32_32S_DISP32 },
     { "TLSGD",    { BFD_RELOC_386_TLS_GD,
                    BFD_RELOC_X86_64_TLSGD    },
-      Imm32 | Imm32S | Disp32 },
+      OPERAND_TYPE_IMM32_32S_DISP32 },
     { "TLSLDM",   { BFD_RELOC_386_TLS_LDM,
                    0                         },
-      0 },
+      OPERAND_TYPE_NONE },
     { "TLSLD",    { 0,
                    BFD_RELOC_X86_64_TLSLD    },
-      Imm32 | Imm32S | Disp32 },
+      OPERAND_TYPE_IMM32_32S_DISP32 },
     { "GOTTPOFF", { BFD_RELOC_386_TLS_IE_32,
                    BFD_RELOC_X86_64_GOTTPOFF },
-      Imm32 | Imm32S | Disp32 },
+      OPERAND_TYPE_IMM32_32S_DISP32 },
     { "TPOFF",    { BFD_RELOC_386_TLS_LE_32,
                    BFD_RELOC_X86_64_TPOFF32  },
-      Imm32 | Imm32S | Imm64 | Disp32 | Disp64 },
+      OPERAND_TYPE_IMM32_32S_64_DISP32_64 },
     { "NTPOFF",   { BFD_RELOC_386_TLS_LE,
                    0                         },
-      0 },
+      OPERAND_TYPE_NONE },
     { "DTPOFF",   { BFD_RELOC_386_TLS_LDO_32,
                    BFD_RELOC_X86_64_DTPOFF32 },
-      Imm32 | Imm32S | Imm64 | Disp32 | Disp64 },
+      
+      OPERAND_TYPE_IMM32_32S_64_DISP32_64 },
     { "GOTNTPOFF",{ BFD_RELOC_386_TLS_GOTIE,
                    0                         },
-      0 },
+      OPERAND_TYPE_NONE },
     { "INDNTPOFF",{ BFD_RELOC_386_TLS_IE,
                    0                         },
-      0 },
+      OPERAND_TYPE_NONE },
     { "GOT",      { BFD_RELOC_386_GOT32,
                    BFD_RELOC_X86_64_GOT32    },
-      Imm32 | Imm32S | Disp32 | Imm64 },
+      OPERAND_TYPE_IMM32_32S_64_DISP32 },
     { "TLSDESC",  { BFD_RELOC_386_TLS_GOTDESC,
                    BFD_RELOC_X86_64_GOTPC32_TLSDESC },
-      Imm32 | Imm32S | Disp32 },
+      OPERAND_TYPE_IMM32_32S_DISP32 },
     { "TLSCALL",  { BFD_RELOC_386_TLS_DESC_CALL,
                    BFD_RELOC_X86_64_TLSDESC_CALL },
-      Imm32 | Imm32S | Disp32 }
+      OPERAND_TYPE_IMM32_32S_DISP32 },
   };
   char *cp;
   unsigned int j;
@@ -4525,7 +4999,10 @@ lex_got (enum bfd_reloc_code_real *reloc,
              if (types)
                {
                  if (flag_code != CODE_64BIT)
-                   *types = Imm32 | Disp32;
+                   {
+                     types->bitfield.imm32 = 1;
+                     types->bitfield.disp32 = 1;
+                   }
                  else
                    *types = gotrel[j].types64;
                }
@@ -4648,7 +5125,9 @@ i386_immediate (char *imm_start)
   char *gotfree_input_line;
   segT exp_seg = 0;
   expressionS *exp;
-  unsigned int types = ~0U;
+  i386_operand_type types;
+
+  memset (&types, ~0, sizeof (types));
 
   if (i.imm_operands == MAX_IMMEDIATE_OPERANDS)
     {
@@ -4694,7 +5173,7 @@ i386_immediate (char *imm_start)
   else if (exp->X_op == O_constant)
     {
       /* Size it properly later.  */
-      i.types[this_operand] |= Imm64;
+      i.types[this_operand].bitfield.imm64 = 1;
       /* If BFD64, sign extend val.  */
       if (!use_rela_relocations
          && (exp->X_add_number & ~(((addressT) 2 << 31) - 1)) == 0)
@@ -4724,8 +5203,13 @@ i386_immediate (char *imm_start)
       /* This is an address.  The size of the address will be
         determined later, depending on destination register,
         suffix, or the default for the section.  */
-      i.types[this_operand] |= Imm8 | Imm16 | Imm32 | Imm32S | Imm64;
-      i.types[this_operand] &= types;
+      i.types[this_operand].bitfield.imm8 = 1;
+      i.types[this_operand].bitfield.imm16 = 1;
+      i.types[this_operand].bitfield.imm32 = 1;
+      i.types[this_operand].bitfield.imm32s = 1;
+      i.types[this_operand].bitfield.imm64 = 1;
+      i.types[this_operand] = operand_type_biop (i.types[this_operand],
+                                                types, and);
     }
 
   return 1;
@@ -4786,8 +5270,8 @@ i386_displacement (char *disp_start, char *disp_end)
   segT exp_seg = 0;
   char *save_input_line_pointer;
   char *gotfree_input_line;
-  int bigdisp, override;
-  unsigned int types = Disp;
+  int override;
+  i386_operand_type bigdisp, types = anydisp;
   int ret;
 
   if (i.disp_operands == MAX_MEMORY_OPERANDS)
@@ -4797,42 +5281,58 @@ i386_displacement (char *disp_start, char *disp_end)
       return 0;
     }
 
-  if ((i.types[this_operand] & JumpAbsolute)
-      || !(current_templates->start->opcode_modifier & (Jump | JumpDword)))
+  memset (&bigdisp, 0, sizeof (bigdisp));
+  if ((i.types[this_operand].bitfield.jumpabsolute)
+      || (!current_templates->start->opcode_modifier.jump
+         && !current_templates->start->opcode_modifier.jumpdword))
     {
-      bigdisp = Disp32;
+      bigdisp.bitfield.disp32 = 1;
       override = (i.prefix[ADDR_PREFIX] != 0);
+      if (flag_code == CODE_64BIT)
+       {
+         if (!override)
+           {
+             bigdisp.bitfield.disp32s = 1;
+             bigdisp.bitfield.disp64 = 1;
+           }
+       }
+      else if ((flag_code == CODE_16BIT) ^ override)
+       {
+         bigdisp.bitfield.disp32 = 0;
+         bigdisp.bitfield.disp16 = 1;
+       }
     }
   else
     {
       /* For PC-relative branches, the width of the displacement
         is dependent upon data size, not address size.  */
-      bigdisp = 0;
       override = (i.prefix[DATA_PREFIX] != 0);
-    }
-  if (flag_code == CODE_64BIT)
-    {
-      if (!bigdisp)
-       bigdisp = ((override || i.suffix == WORD_MNEM_SUFFIX)
-                  ? Disp16
-                  : Disp32S | Disp32);
-      else if (!override)
-       bigdisp = Disp64 | Disp32S | Disp32;
-    }
-  else
-    {
-      if (!bigdisp)
+      if (flag_code == CODE_64BIT)
+       {
+         if (override || i.suffix == WORD_MNEM_SUFFIX)
+           bigdisp.bitfield.disp16 = 1;
+         else
+           {
+             bigdisp.bitfield.disp32 = 1;
+             bigdisp.bitfield.disp32s = 1;
+           }
+       }
+      else
        {
          if (!override)
            override = (i.suffix == (flag_code != CODE_16BIT
                                     ? WORD_MNEM_SUFFIX
                                     : LONG_MNEM_SUFFIX));
-         bigdisp = Disp32;
+         bigdisp.bitfield.disp32 = 1;
+         if ((flag_code == CODE_16BIT) ^ override)
+           {
+             bigdisp.bitfield.disp32 = 0;
+             bigdisp.bitfield.disp16 = 1;
+           }
        }
-      if ((flag_code == CODE_16BIT) ^ override)
-       bigdisp = Disp16;
     }
-  i.types[this_operand] |= bigdisp;
+  i.types[this_operand] = operand_type_biop (i.types[this_operand],
+                                            bigdisp, or);
 
   exp = &disp_expressions[i.disp_operands];
   i.op[this_operand].disps = exp;
@@ -4846,7 +5346,7 @@ i386_displacement (char *disp_start, char *disp_end)
 #endif
 #if GCC_ASM_O_HACK
   END_STRING_AND_SAVE (disp_end + 1);
-  if ((i.types[this_operand] & BaseIndex) != 0
+  if (i.types[this_operand].bitfield.baseIndex
       && displacement_string_end[-1] == '+')
     {
       /* This hack is to avoid a warning when using the "o"
@@ -4955,8 +5455,16 @@ i386_displacement (char *disp_start, char *disp_end)
 
   RESTORE_END_STRING (disp_end);
 
-  if (!(i.types[this_operand] & ~Disp))
-    i.types[this_operand] &= types;
+  /* Check if this is a displacement only operand.  */
+  bigdisp = i.types[this_operand];
+  bigdisp.bitfield.disp8 = 0;
+  bigdisp.bitfield.disp16 = 0;
+  bigdisp.bitfield.disp32 = 0;
+  bigdisp.bitfield.disp32s = 0;
+  bigdisp.bitfield.disp64 = 0;
+  if (operand_type_all_zero (bigdisp))
+    i.types[this_operand] = operand_type_biop (i.types[this_operand],
+                                              types, and);
 
   return ret;
 }
@@ -4976,15 +5484,20 @@ i386_index_check (const char *operand_string)
   ok = 1;
   if (flag_code == CODE_64BIT)
     {
-      unsigned RegXX = (i.prefix[ADDR_PREFIX] == 0 ? Reg64 : Reg32);
-
       if ((i.base_reg
-          && ((i.base_reg->reg_type & RegXX) == 0)
-          && (i.base_reg->reg_type != BaseIndex
-              || i.index_reg))
+          && ((i.prefix[ADDR_PREFIX] == 0
+               && !i.base_reg->reg_type.bitfield.reg64)
+              || (i.prefix[ADDR_PREFIX]
+                  && !i.base_reg->reg_type.bitfield.reg32))
+          && (i.index_reg
+              || memcmp (&i.base_reg->reg_type, &baseindex,
+                         sizeof (baseindex))))
          || (i.index_reg
-             && ((i.index_reg->reg_type & (RegXX | BaseIndex))
-                 != (RegXX | BaseIndex))))
+             && (!i.index_reg->reg_type.bitfield.baseindex
+                 || (i.prefix[ADDR_PREFIX] == 0
+                     && !i.index_reg->reg_type.bitfield.reg64)
+                 || (i.prefix[ADDR_PREFIX]
+                     && !i.index_reg->reg_type.bitfield.reg32))))
        ok = 0;
     }
   else
@@ -4993,11 +5506,11 @@ i386_index_check (const char *operand_string)
        {
          /* 16bit checks.  */
          if ((i.base_reg
-              && ((i.base_reg->reg_type & (Reg16 | BaseIndex))
-                  != (Reg16 | BaseIndex)))
+              && (!i.base_reg->reg_type.bitfield.reg16
+                  || !i.base_reg->reg_type.bitfield.baseindex))
              || (i.index_reg
-                 && (((i.index_reg->reg_type & (Reg16 | BaseIndex))
-                      != (Reg16 | BaseIndex))
+                 && (!i.index_reg->reg_type.bitfield.reg16
+                     || !i.index_reg->reg_type.bitfield.baseindex
                      || !(i.base_reg
                           && i.base_reg->reg_num < 6
                           && i.index_reg->reg_num >= 6
@@ -5008,10 +5521,10 @@ i386_index_check (const char *operand_string)
        {
          /* 32bit checks.  */
          if ((i.base_reg
-              && (i.base_reg->reg_type & Reg32) != Reg32)
+              && !i.base_reg->reg_type.bitfield.reg32)
              || (i.index_reg
-                 && ((i.index_reg->reg_type & (Reg32 | BaseIndex))
-                     != (Reg32 | BaseIndex))))
+                 && (!i.index_reg->reg_type.bitfield.reg32
+                     || !i.index_reg->reg_type.bitfield.baseindex)))
            ok = 0;
        }
     }
@@ -5028,8 +5541,11 @@ i386_index_check (const char *operand_string)
             Disp16 and Disp32 flags.  The same goes for Imm16 and Imm32.
             Removing them would probably clean up the code quite a lot.  */
          if (flag_code != CODE_64BIT
-             && (i.types[this_operand] & (Disp16 | Disp32)))
-           i.types[this_operand] ^= (Disp16 | Disp32);
+             && (i.types[this_operand].bitfield.disp16
+                 || i.types[this_operand].bitfield.disp32))
+           i.types[this_operand]
+             = operand_type_biop (i.types[this_operand], disp16_32,
+                                  xor);
          fudged = 1;
          goto tryprefix;
        }
@@ -5065,18 +5581,22 @@ i386_operand (char *operand_string)
       ++op_string;
       if (is_space_char (*op_string))
        ++op_string;
-      i.types[this_operand] |= JumpAbsolute;
+      i.types[this_operand].bitfield.jumpabsolute = 1;
     }
 
   /* Check if operand is a register.  */
   if ((r = parse_register (op_string, &end_op)) != NULL)
     {
+      i386_operand_type temp;
+
       /* Check for a segment override by searching for ':' after a
         segment register.  */
       op_string = end_op;
       if (is_space_char (*op_string))
        ++op_string;
-      if (*op_string == ':' && (r->reg_type & (SReg2 | SReg3)))
+      if (*op_string == ':'
+         && (r->reg_type.bitfield.sreg2
+             || r->reg_type.bitfield.sreg3))
        {
          switch (r->reg_num)
            {
@@ -5119,7 +5639,7 @@ i386_operand (char *operand_string)
              ++op_string;
              if (is_space_char (*op_string))
                ++op_string;
-             i.types[this_operand] |= JumpAbsolute;
+             i.types[this_operand].bitfield.jumpabsolute = 1;
            }
          goto do_memory_reference;
        }
@@ -5128,7 +5648,10 @@ i386_operand (char *operand_string)
          as_bad (_("junk `%s' after register"), op_string);
          return 0;
        }
-      i.types[this_operand] |= r->reg_type & ~BaseIndex;
+      temp = r->reg_type;
+      temp.bitfield.baseindex = 0;
+      i.types[this_operand] = operand_type_biop (i.types[this_operand],
+                                                temp, or);
       i.op[this_operand].regs = r;
       i.reg_operands++;
     }
@@ -5140,7 +5663,7 @@ i386_operand (char *operand_string)
   else if (*op_string == IMMEDIATE_PREFIX)
     {
       ++op_string;
-      if (i.types[this_operand] & JumpAbsolute)
+      if (i.types[this_operand].bitfield.jumpabsolute)
        {
          as_bad (_("immediate operand illegal with absolute jump"));
          return 0;
@@ -5161,7 +5684,7 @@ i386_operand (char *operand_string)
 
     do_memory_reference:
       if ((i.mem_operands == 1
-          && (current_templates->start->opcode_modifier & IsString) == 0)
+          && !current_templates->start->opcode_modifier.isstring)
          || i.mem_operands == 2)
        {
          as_bad (_("too many memory references for `%s'"),
@@ -5212,7 +5735,7 @@ i386_operand (char *operand_string)
            {
              displacement_string_end = temp_string;
 
-             i.types[this_operand] |= BaseIndex;
+             i.types[this_operand].bitfield.baseindex = 1;
 
              if (i.base_reg)
                {
@@ -5308,13 +5831,16 @@ i386_operand (char *operand_string)
 
       /* Special case for (%dx) while doing input/output op.  */
       if (i.base_reg
-         && i.base_reg->reg_type == (Reg16 | InOutPortReg)
+         && memcmp (&i.base_reg->reg_type, &reg16_inoutportreg,
+                    sizeof (reg16_inoutportreg)) == 0
          && i.index_reg == 0
          && i.log2_scale_factor == 0
          && i.seg[i.mem_operands] == 0
-         && (i.types[this_operand] & Disp) == 0)
+         && !operand_type_check (i.types[this_operand], disp))
        {
-         i.types[this_operand] = InOutPortReg;
+         memset (&i.types[this_operand], 0,
+                 sizeof (i.types[this_operand]));
+         i.types[this_operand].bitfield.inoutportreg = 1;
          return 1;
        }
 
@@ -5898,8 +6424,9 @@ parse_real_register (char *reg_string, char **end_op)
 
   if (r != NULL
       && ((r->reg_flags & (RegRex64 | RegRex))
-         || (r->reg_type & Reg64))
-      && (r->reg_type != Control || !(cpu_arch_flags & CpuSledgehammer))
+         || r->reg_type.bitfield.reg64)
+      && (!cpu_arch_flags.bitfield.cpulm
+         || memcmp (&r->reg_type, &control, sizeof (control)))
       && flag_code != CODE_64BIT)
     return (const reg_entry *) NULL;
 
@@ -6174,22 +6701,50 @@ i386_target_format (void)
   if (!strcmp (default_arch, "x86_64"))
     {
       set_code_flag (CODE_64BIT);
-      if (cpu_arch_isa_flags == 0)
-       cpu_arch_isa_flags = Cpu186|Cpu286|Cpu386|Cpu486
-                            |Cpu586|Cpu686|CpuP4|CpuMMX|CpuMMX2
-                            |CpuSSE|CpuSSE2;
-      if (cpu_arch_tune_flags == 0)
-       cpu_arch_tune_flags = Cpu186|Cpu286|Cpu386|Cpu486
-                             |Cpu586|Cpu686|CpuP4|CpuMMX|CpuMMX2
-                             |CpuSSE|CpuSSE2;
+      if (cpu_flags_all_zero (cpu_arch_isa_flags))
+       {
+         cpu_arch_isa_flags.bitfield.cpui186 = 1;
+         cpu_arch_isa_flags.bitfield.cpui286 = 1;
+         cpu_arch_isa_flags.bitfield.cpui386 = 1;
+         cpu_arch_isa_flags.bitfield.cpui486 = 1;
+         cpu_arch_isa_flags.bitfield.cpui586 = 1;
+         cpu_arch_isa_flags.bitfield.cpui686 = 1;
+         cpu_arch_isa_flags.bitfield.cpup4 = 1;
+         cpu_arch_isa_flags.bitfield.cpummx= 1;
+         cpu_arch_isa_flags.bitfield.cpummx2 = 1;
+         cpu_arch_isa_flags.bitfield.cpusse = 1;
+         cpu_arch_isa_flags.bitfield.cpusse2 = 1;
+       }
+      if (cpu_flags_all_zero (cpu_arch_tune_flags))
+       {
+         cpu_arch_tune_flags.bitfield.cpui186 = 1;
+         cpu_arch_tune_flags.bitfield.cpui286 = 1;
+         cpu_arch_tune_flags.bitfield.cpui386 = 1;
+         cpu_arch_tune_flags.bitfield.cpui486 = 1;
+         cpu_arch_tune_flags.bitfield.cpui586 = 1;
+         cpu_arch_tune_flags.bitfield.cpui686 = 1;
+         cpu_arch_tune_flags.bitfield.cpup4 = 1;
+         cpu_arch_tune_flags.bitfield.cpummx= 1;
+         cpu_arch_tune_flags.bitfield.cpummx2 = 1;
+         cpu_arch_tune_flags.bitfield.cpusse = 1;
+         cpu_arch_tune_flags.bitfield.cpusse2 = 1;
+       }
     }
   else if (!strcmp (default_arch, "i386"))
     {
       set_code_flag (CODE_32BIT);
-      if (cpu_arch_isa_flags == 0)
-       cpu_arch_isa_flags = Cpu186|Cpu286|Cpu386;
-      if (cpu_arch_tune_flags == 0)
-       cpu_arch_tune_flags = Cpu186|Cpu286|Cpu386;
+      if (cpu_flags_all_zero (cpu_arch_isa_flags))
+       {
+         cpu_arch_isa_flags.bitfield.cpui186 = 1;
+         cpu_arch_isa_flags.bitfield.cpui286 = 1;
+         cpu_arch_isa_flags.bitfield.cpui386 = 1;
+       }
+      if (cpu_flags_all_zero (cpu_arch_tune_flags))
+       {
+         cpu_arch_tune_flags.bitfield.cpui186 = 1;
+         cpu_arch_tune_flags.bitfield.cpui286 = 1;
+         cpu_arch_tune_flags.bitfield.cpui386 = 1;
+       }
     }
   else
     as_fatal (_("Unknown architecture"));
@@ -6788,7 +7343,7 @@ i386_intel_operand (char *operand_string, int got_a_float)
       else if (intel_parser.is_mem)
        {
          if ((i.mem_operands == 1
-              && (current_templates->start->opcode_modifier & IsString) == 0)
+              && !current_templates->start->opcode_modifier.isstring)
              || i.mem_operands == 2)
            {
              as_bad (_("too many memory references for '%s'"),
@@ -6814,8 +7369,8 @@ i386_intel_operand (char *operand_string, int got_a_float)
                     mode we have to do that here.  */
                  if (i.base_reg
                      && i.index_reg
-                     && (i.base_reg->reg_type & Reg16)
-                     && (i.index_reg->reg_type & Reg16)
+                     && i.base_reg->reg_type.bitfield.reg16
+                     && i.index_reg->reg_type.bitfield.reg16
                      && i.base_reg->reg_num >= 6
                      && i.index_reg->reg_num < 6)
                    {
@@ -7069,8 +7624,8 @@ intel_e09 (void)
                  && current_templates->start->name[3] == 0)
                suffix = WORD_MNEM_SUFFIX;
              else if (flag_code == CODE_16BIT
-                      && (current_templates->start->opcode_modifier
-                          & (Jump | JumpDword)))
+                      && (current_templates->start->opcode_modifier.jump
+                          || current_templates->start->opcode_modifier.jumpdword))
                suffix = LONG_DOUBLE_MNEM_SUFFIX;
              else if (intel_parser.got_a_float == 1)   /* "f..." */
                suffix = SHORT_MNEM_SUFFIX;
@@ -7124,8 +7679,9 @@ intel_e09 (void)
 
          /* Operands for jump/call using 'ptr' notation denote absolute
             addresses.  */
-         if (current_templates->start->opcode_modifier & (Jump | JumpDword))
-           i.types[this_operand] |= JumpAbsolute;
+         if (current_templates->start->opcode_modifier.jump
+             || current_templates->start->opcode_modifier.jumpdword)
+           i.types[this_operand].bitfield.jumpabsolute = 1;
 
          if (current_templates->start->base_opcode == 0x8d /* lea */)
            ;
@@ -7151,10 +7707,10 @@ intel_e09 (void)
              if (this_operand != 0
                  || intel_parser.in_offset
                  || intel_parser.in_bracket
-                 || (!(current_templates->start->opcode_modifier
-                       & (Jump|JumpDword|JumpInterSegment))
-                     && !(current_templates->start->operand_types[0]
-                          & JumpAbsolute)))
+                 || (!current_templates->start->opcode_modifier.jump
+                     && !current_templates->start->opcode_modifier.jumpdword
+                     && !current_templates->start->opcode_modifier.jumpintersegment
+                     && !current_templates->start->operand_types[0].bitfield.jumpabsolute))
                return intel_match_token (T_NIL);
              /* Remember the start of the 2nd operand and terminate 1st
                 operand here.
@@ -7213,8 +7769,9 @@ intel_bracket_expr (void)
       ++intel_parser.in_bracket;
 
       /* Operands for jump/call inside brackets denote absolute addresses.  */
-      if (current_templates->start->opcode_modifier & (Jump | JumpDword))
-       i.types[this_operand] |= JumpAbsolute;
+      if (current_templates->start->opcode_modifier.jump
+         || current_templates->start->opcode_modifier.jumpdword)
+       i.types[this_operand].bitfield.jumpabsolute = 1;
 
       /* Unfortunately gas always diverged from MASM in a respect that can't
         be easily fixed without risking to break code sequences likely to be
@@ -7344,7 +7901,8 @@ intel_e11 (void)
        /* Check for segment change.  */
        if (cur_token.code == ':')
          {
-           if (!(reg->reg_type & (SReg2 | SReg3)))
+           if (!reg->reg_type.bitfield.sreg2
+               && !reg->reg_type.bitfield.sreg3)
              {
                as_bad (_("`%s' is not a valid segment register"),
                        reg->reg_name);
@@ -7389,7 +7947,7 @@ intel_e11 (void)
                return 0;
              }
 
-           if (reg->reg_type & Reg16) /* Disallow things like [si*1]. */
+           if (reg->reg_type.bitfield.reg16) /* Disallow things like [si*1]. */
              reg = i386_regtab + REGNAM_AX + 4; /* sp is invalid as index */
            else if (i.index_reg)
              reg = i386_regtab + REGNAM_EAX + 4; /* esp is invalid as index */
@@ -7397,7 +7955,7 @@ intel_e11 (void)
            /* What follows must be a valid scale.  */
            intel_match_token ('*');
            i.index_reg = reg;
-           i.types[this_operand] |= BaseIndex;
+           i.types[this_operand].bitfield.baseindex = 1;
 
            /* Set the scale after setting the register (otherwise,
               i386_scale will complain)  */
@@ -7439,13 +7997,16 @@ intel_e11 (void)
                return 0;
              }
 
-           i.types[this_operand] |= BaseIndex;
+           i.types[this_operand].bitfield.baseindex = 1;
          }
 
        /* It's neither base nor index.  */
        else if (!intel_parser.in_offset && !intel_parser.is_mem)
          {
-           i.types[this_operand] |= reg->reg_type & ~BaseIndex;
+           i386_operand_type temp = reg->reg_type;
+           temp.bitfield.baseindex = 0;
+           i.types[this_operand] = operand_type_biop (i.types[this_operand],
+                                                      temp, or);
            i.op[this_operand].regs = reg;
            i.reg_operands++;
          }
@@ -7554,7 +8115,7 @@ intel_e11 (void)
 
                 /* Disallow things like [1*si].
                    sp and esp are invalid as index.  */
-               if (reg->reg_type & Reg16)
+               if (reg->reg_type.bitfield.reg16)
                  reg = i386_regtab + REGNAM_AX + 4;
                else if (i.index_reg)
                  reg = i386_regtab + REGNAM_EAX + 4;
@@ -7562,7 +8123,7 @@ intel_e11 (void)
                /* The constant is followed by `* reg', so it must be
                   a valid scale.  */
                i.index_reg = reg;
-               i.types[this_operand] |= BaseIndex;
+               i.types[this_operand].bitfield.baseindex = 1;
 
                /* Set the scale after setting the register (otherwise,
                   i386_scale will complain)  */
index e303a3923aef844d903885df602a41ff4c705f4c..78c7ad359502049d7fc1ded7e87735ba6a003c6c 100644 (file)
@@ -186,7 +186,7 @@ typedef struct
 {
   const char *name;            /* arch name */
   enum processor_type type;    /* arch type */
-  unsigned int flags;          /* cpu feature flags */
+  i386_cpu_flags flags;                /* cpu feature flags */
 }
 arch_entry;
 
index d2cc2e704e04527357563f9cf7392b01640280b7..10f4ac5410ed8861d58271d70453a4bb96e6dbc1 100755 (executable)
@@ -12049,7 +12049,8 @@ fi
 
 
 
-for ac_header in string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h
+
+for ac_header in string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h limits.h
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
 if eval "test \"\${$as_ac_Header+set}\" = set"; then
index 02e8e53af4feccce0c2616767995d55ce282e72f..d95a80c49b5bdcdf61f4e3496a8ea45d7e771583 100644 (file)
@@ -608,7 +608,7 @@ AM_MAINTAINER_MODE
 AM_CONDITIONAL(GENINSRC_NEVER, false)
 AC_EXEEXT
 
-AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
+AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h limits.h)
 
 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
 # people who are not cross-compiling but are compiling cross-assemblers.
index 86a079e663c08bb705a736019fb2e66d568eefb2..747df36f228b2415d2fba0006a34f2aca9345e90 100644 (file)
@@ -1,3 +1,181 @@
+2007-09-08  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * configure.in (AC_CHECK_HEADERS): Add limits.h.
+       * configure: Regenerated.
+       * config.in: Likewise.
+
+       * i386-gen.c: Include "sysdep.h" instead of <stdlib.h> and
+       <string.h>.  Use xstrerror instead of strerror.
+       (initializer): New.
+       (cpu_flag_init): Likewise.
+       (bitfield): Likewise.
+       (BITFIELD): New.
+       (cpu_flags): Likewise.
+       (opcode_modifiers): Likewise.
+       (operand_types): Likewise.
+       (compare): Likewise.
+       (set_cpu_flags): Likewise.
+       (output_cpu_flags): Likewise.
+       (process_i386_cpu_flags): Likewise.
+       (output_opcode_modifier): Likewise.
+       (process_i386_opcode_modifier): Likewise.
+       (output_operand_type): Likewise.
+       (process_i386_operand_type): Likewise.
+       (set_bitfield): Likewise.
+       (operand_type_init): Likewise.
+       (process_i386_initializers): Likewise.
+       (process_i386_opcodes): Call process_i386_opcode_modifier to
+       process opcode_modifier.  Call process_i386_operand_type to
+       process operand_types.
+       (process_i386_registers): Call process_i386_operand_type to
+       process reg_type.
+       (main): Check unused bits in i386_cpu_flags and i386_operand_type.
+       Sort cpu_flags, opcode_modifiers and operand_types.  Call
+       process_i386_initializers.
+
+       * i386-init.h: New.
+       * i386-tbl.h: Regenerated.
+
+       * i386-opc.h: Include <limits.h>.
+       (CHAR_BIT): Define as 8 if not defined.
+       (Cpu186): Changed to position of bitfiled.
+       (Cpu286): Likewise.
+       (Cpu386): Likewise.
+       (Cpu486): Likewise.
+       (Cpu586): Likewise.
+       (Cpu686): Likewise.
+       (CpuP4): Likewise.
+       (CpuK6): Likewise.
+       (CpuK8): Likewise.
+       (CpuMMX): Likewise.
+       (CpuMMX2): Likewise.
+       (CpuSSE): Likewise.
+       (CpuSSE2): Likewise.
+       (Cpu3dnow): Likewise.
+       (Cpu3dnowA): Likewise.
+       (CpuSSE3): Likewise.
+       (CpuPadLock): Likewise.
+       (CpuSVME): Likewise.
+       (CpuVMX): Likewise.
+       (CpuSSSE3): Likewise.
+       (CpuSSE4a): Likewise.
+       (CpuABM): Likewise.
+       (CpuSSE4_1): Likewise.
+       (CpuSSE4_2): Likewise.
+       (Cpu64): Likewise.
+       (CpuNo64): Likewise.
+       (D): Likewise.
+       (W): Likewise.
+       (Modrm): Likewise.
+       (ShortForm): Likewise.
+       (Jump): Likewise.
+       (JumpDword): Likewise.
+       (JumpByte): Likewise.
+       (JumpInterSegment): Likewise.
+       (FloatMF): Likewise.
+       (FloatR): Likewise.
+       (FloatD): Likewise.
+       (Size16): Likewise.
+       (Size32): Likewise.
+       (Size64): Likewise.
+       (IgnoreSize): Likewise.
+       (DefaultSize): Likewise.
+       (No_bSuf): Likewise.
+       (No_wSuf): Likewise.
+       (No_lSuf): Likewise.
+       (No_sSuf): Likewise.
+       (No_qSuf): Likewise.
+       (No_xSuf): Likewise.
+       (FWait): Likewise.
+       (IsString): Likewise.
+       (RegKludge): Likewise.
+       (IsPrefix): Likewise.
+       (ImmExt): Likewise.
+       (NoRex64): Likewise.
+       (Rex64): Likewise.
+       (Ugh): Likewise.
+       (Reg8): Likewise.
+       (Reg16): Likewise.
+       (Reg32): Likewise.
+       (Reg64): Likewise.
+       (FloatReg): Likewise.
+       (RegMMX): Likewise.
+       (RegXMM): Likewise.
+       (Imm8): Likewise.
+       (Imm8S): Likewise.
+       (Imm16): Likewise.
+       (Imm32): Likewise.
+       (Imm32S): Likewise.
+       (Imm64): Likewise.
+       (Imm1): Likewise.
+       (BaseIndex): Likewise.
+       (Disp8): Likewise.
+       (Disp16): Likewise.
+       (Disp32): Likewise.
+       (Disp32S): Likewise.
+       (Disp64): Likewise.
+       (InOutPortReg): Likewise.
+       (ShiftCount): Likewise.
+       (Control): Likewise.
+       (Debug): Likewise.
+       (Test): Likewise.
+       (SReg2): Likewise.
+       (SReg3): Likewise.
+       (Acc): Likewise.
+       (FloatAcc): Likewise.
+       (JumpAbsolute): Likewise.
+       (EsSeg): Likewise.
+       (RegMem): Likewise.
+       (OTMax): Likewise.
+       (Reg): Commented out.
+       (WordReg): Likewise.
+       (ImplicitRegister): Likewise.
+       (Imm): Likewise.
+       (EncImm): Likewise.
+       (Disp): Likewise.
+       (AnyMem): Likewise.
+       (LLongMem): Likewise.
+       (LongMem): Likewise.
+       (ShortMem): Likewise.
+       (WordMem): Likewise.
+       (ByteMem): Likewise.
+       (CpuMax): New
+       (CpuLM): Likewise.
+       (CpuNumOfUints): Likewise.
+       (CpuNumOfBits): Likewise.
+       (CpuUnused): Likewise.
+       (OTNumOfUints): Likewise.
+       (OTNumOfBits): Likewise.
+       (OTUnused): Likewise.
+       (i386_cpu_flags): New type.
+       (i386_operand_type): Likewise.
+       (i386_opcode_modifier): Likewise.
+       (CpuSledgehammer): Removed.
+       (CpuSSE4): Likewise.
+       (CpuUnknownFlags): Likewise.
+       (Reg): Likewise.
+       (WordReg): Likewise.
+       (ImplicitRegister): Likewise.
+       (Imm): Likewise.
+       (EncImm): Likewise.
+       (Disp): Likewise.
+       (AnyMem): Likewise.
+       (LLongMem): Likewise.
+       (LongMem): Likewise.
+       (ShortMem): Likewise.
+       (WordMem): Likewise.
+       (ByteMem): Likewise.
+       (template): Use i386_cpu_flags for cpu_flags, use
+       i386_opcode_modifier for opcode_modifier, use
+       i386_operand_type for operand_types.
+       (reg_entry): Use i386_operand_type for reg_type.
+
+       * Makefile.am (HFILES): Add i386-init.h.
+       ($(srcdir)/i386-init.h): New rule.
+       ($(srcdir)/i386-tbl.h): Depend on $(srcdir)/i386-init.h
+       instead.
+       * Makefile.in: Regenerated.
+
 2007-09-06  H.J. Lu  <hongjiu.lu@intel.com>
 
        * i386-gen.c (next_field): Updated to take a separator.
index b0d81140504cba838a9845820efbf14160fddc2c..8306f4d9e3350ed27104cfc54804a0c0e4c04a9b 100644 (file)
@@ -33,6 +33,7 @@ HFILES = \
        fr30-desc.h fr30-opc.h \
        frv-desc.h frv-opc.h \
        h8500-opc.h \
+       i386-init.h \
        i386-opc.h \
        i386-tbl.h \
        ia64-asmtab.h \
@@ -575,7 +576,10 @@ i386-gen: i386-gen.o
 
 i386-gen.o: i386-gen.c i386-opc.h
 
-$(srcdir)/i386-tbl.h: @MAINT@ i386-gen i386-opc.tbl i386-reg.tbl
+$(srcdir)/i386-tbl.h: $(srcdir)/i386-init.h 
+       @echo $@
+
+$(srcdir)/i386-init.h: @MAINT@ i386-gen i386-opc.tbl i386-reg.tbl
        ./i386-gen --srcdir $(srcdir)
 
 ia64-gen: ia64-gen.o
index 42f83ad865c01139e107178ffdaab199e2d14e44..31ad442013ec6e9b99eb53df231c763ae24c5f2f 100644 (file)
@@ -260,6 +260,7 @@ HFILES = \
        fr30-desc.h fr30-opc.h \
        frv-desc.h frv-opc.h \
        h8500-opc.h \
+       i386-init.h \
        i386-opc.h \
        i386-tbl.h \
        ia64-asmtab.h \
@@ -1126,7 +1127,10 @@ i386-gen: i386-gen.o
 
 i386-gen.o: i386-gen.c i386-opc.h
 
-$(srcdir)/i386-tbl.h: @MAINT@ i386-gen i386-opc.tbl i386-reg.tbl
+$(srcdir)/i386-tbl.h: $(srcdir)/i386-init.h 
+       @echo $@
+
+$(srcdir)/i386-init.h: @MAINT@ i386-gen i386-opc.tbl i386-reg.tbl
        ./i386-gen --srcdir $(srcdir)
 
 ia64-gen: ia64-gen.o
index aee9c40b89db27fd049d56ec2dfe488f1c0b60eb..350caf49a7fc626aa6ad5be62b3df256724ed45d 100644 (file)
@@ -18,6 +18,9 @@
 /* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H
 
+/* Define to 1 if you have the <limits.h> header file. */
+#undef HAVE_LIMITS_H
+
 /* Define to 1 if you have the <memory.h> header file. */
 #undef HAVE_MEMORY_H
 
index 4601926d13a5696132b85e4c39e2dd1dcd680deb..270bdaee3e82dc491c0e678877c21ddb2844b879 100755 (executable)
@@ -11108,7 +11108,8 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
 
 
-for ac_header in string.h strings.h stdlib.h
+
+for ac_header in string.h strings.h stdlib.h limits.h
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
 if eval "test \"\${$as_ac_Header+set}\" = set"; then
index b3a9fef4aa1843df2db06b44f6d70e3207d5a467..c37a5f5c693f13a11cf37d5ed762288672cf0527 100644 (file)
@@ -72,7 +72,7 @@ BFD_CC_FOR_BUILD
 AC_SUBST(HDEFINES)
 AC_PROG_INSTALL
 
-AC_CHECK_HEADERS(string.h strings.h stdlib.h)
+AC_CHECK_HEADERS(string.h strings.h stdlib.h limits.h)
 
 AC_CHECK_DECLS([basename, stpcpy])
 
index 2451d0e96480a6add5cd32d50eceb383f5a8b7ff..44bf052e99c75e142c55b14a934cde7645f1b653 100644 (file)
@@ -17,9 +17,8 @@
    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
    MA 02110-1301, USA.  */
 
+#include "sysdep.h"
 #include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
 #include <errno.h>
 #include "getopt.h"
 #include "libiberty.h"
 static const char *program_name = NULL;
 static int debug = 0;
 
+typedef struct initializer
+{
+  const char *name;
+  const char *init;
+} initializer;
+
+static initializer cpu_flag_init [] =
+{
+  { "CPU_UNKNOWN_FLAGS",
+    "unknown" },
+  { "CPU_GENERIC32_FLAGS",
+    "Cpu186|Cpu286|Cpu386" },
+  { "CPU_GENERIC64_FLAGS", 
+    "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuP4|CpuMMX|CpuMMX2|CpuSSE|CpuSSE2" },
+  { "CPU_NONE_FLAGS",
+   "0" },
+  { "CPU_I186_FLAGS",
+    "Cpu186" },
+  { "CPU_I286_FLAGS",
+    "Cpu186|Cpu286" },
+  { "CPU_I386_FLAGS",
+    "Cpu186|Cpu286|Cpu386" },
+  { "CPU_I486_FLAGS",
+    "Cpu186|Cpu286|Cpu386|Cpu486" },
+  { "CPU_I586_FLAGS",
+    "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586" },
+  { "CPU_I686_FLAGS",
+    "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686" },
+  { "CPU_P2_FLAGS",
+    "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuMMX" },
+  { "CPU_P3_FLAGS",
+    "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuMMX|CpuMMX2|CpuSSE" },
+  { "CPU_P4_FLAGS",
+    "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuP4|CpuMMX|CpuMMX2|CpuSSE|CpuSSE2" },
+  { "CPU_NOCONA_FLAGS",
+    "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuP4|CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuSSE3|CpuLM" },
+  { "CPU_CORE_FLAGS",
+    "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuP4|CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuSSE3" },
+  { "CPU_CORE2_FLAGS",
+    "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuP4|CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuLM" },
+  { "CPU_K6_FLAGS",
+    "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|CpuK6|CpuMMX" },
+  { "CPU_K6_2_FLAGS",
+    "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|CpuK6|CpuMMX|Cpu3dnow" },
+  { "CPU_ATHLON_FLAGS",
+    "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuK6|CpuMMX|CpuMMX2|Cpu3dnow|Cpu3dnowA" },
+  { "CPU_K8_FLAGS",
+    "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuK6|CpuK8|CpuMMX|CpuMMX2|Cpu3dnow|Cpu3dnowA|CpuSSE|CpuSSE2|CpuLM" },
+  { "CPU_AMDFAM10_FLAGS",
+    "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuK6|CpuK8|CpuMMX|CpuMMX2|Cpu3dnow|Cpu3dnowA|CpuSSE|CpuSSE2|CpuSSE3|CpuSSE4a|CpuABM|CpuLM" },
+  { "CPU_MMX_FLAGS",
+    "CpuMMX" },
+  { "CPU_SSE_FLAGS",
+    "CpuMMX|CpuMMX2|CpuSSE" },
+  { "CPU_SSE2_FLAGS",
+    "CpuMMX|CpuMMX2|CpuSSE|CpuSSE2" },
+  { "CPU_SSE3_FLAGS",
+    "CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuSSE3" },
+  { "CPU_SSSE3_FLAGS",
+    "CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3" },
+  { "CPU_SSE4_1_FLAGS",
+    "CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuSSE4_1" },
+  { "CPU_SSE4_2_FLAGS",
+    "CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuSSE4_1|CpuSSE4_2" },
+  { "CPU_3DNOW_FLAGS",
+    "CpuMMX|Cpu3dnow" },
+  { "CPU_3DNOWA_FLAGS",
+    "CpuMMX|CpuMMX2|Cpu3dnow|Cpu3dnowA" },
+  { "CPU_PADLOCK_FLAGS",
+    "CpuPadLock" },
+  { "CPU_SVME_FLAGS",
+    "CpuSVME" },
+  { "CPU_SSE4A_FLAGS",
+    "CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuSSE3|CpuSSE4a" },
+  { "CPU_ABM_FLAGS",
+    "CpuABM" }
+};
+
+static initializer operand_type_init [] =
+{
+  { "OPERAND_TYPE_NONE",
+    "0" },
+  { "OPERAND_TYPE_REG8",
+    "Reg8" },
+  { "OPERAND_TYPE_REG16",
+    "Reg16" },
+  { "OPERAND_TYPE_REG32",
+    "Reg32" },
+  { "OPERAND_TYPE_REG64",
+    "Reg64" },
+  { "OPERAND_TYPE_IMM1",
+    "Imm1" },
+  { "OPERAND_TYPE_IMM8",
+    "Imm8" },
+  { "OPERAND_TYPE_IMM8S",
+    "Imm8S" },
+  { "OPERAND_TYPE_IMM16",
+    "Imm16" },
+  { "OPERAND_TYPE_IMM32",
+    "Imm32" },
+  { "OPERAND_TYPE_IMM32S",
+    "Imm32S" },
+  { "OPERAND_TYPE_IMM64",
+    "Imm64" },
+  { "OPERAND_TYPE_BASEINDEX",
+    "BaseIndex" },
+  { "OPERAND_TYPE_DISP8",
+    "Disp8" },
+  { "OPERAND_TYPE_DISP16",
+    "Disp16" },
+  { "OPERAND_TYPE_DISP32",
+    "Disp32" },
+  { "OPERAND_TYPE_DISP32S",
+    "Disp32S" },
+  { "OPERAND_TYPE_DISP64",
+    "Disp64" },
+  { "OPERAND_TYPE_INOUTPORTREG",
+    "InOutPortReg" },
+  { "OPERAND_TYPE_SHIFTCOUNT",
+    "ShiftCount" },
+  { "OPERAND_TYPE_CONTROL",
+    "Control" },
+  { "OPERAND_TYPE_TEST",
+    "Test" },
+  { "OPERAND_TYPE_DEBUG",
+    "FloatReg" },
+  { "OPERAND_TYPE_FLOATREG",
+    "FloatReg" },
+  { "OPERAND_TYPE_FLOATACC",
+    "FloatAcc" },
+  { "OPERAND_TYPE_SREG2",
+    "SReg2" },
+  { "OPERAND_TYPE_SREG3",
+    "SReg3" },
+  { "OPERAND_TYPE_ACC",
+    "Acc" },
+  { "OPERAND_TYPE_JUMPABSOLUTE",
+    "JumpAbsolute" },
+  { "OPERAND_TYPE_REGMMX",
+    "RegMMX" },
+  { "OPERAND_TYPE_REGXMM",
+    "RegXMM" },
+  { "OPERAND_TYPE_ESSEG",
+    "EsSeg" },
+  { "OPERAND_TYPE_ACC32",
+    "Reg32|Acc" },
+  { "OPERAND_TYPE_ACC64",
+    "Reg64|Acc" },
+  { "OPERAND_TYPE_REG16_INOUTPORTREG",
+    "Reg16|InOutPortReg" },
+  { "OPERAND_TYPE_DISP16_32",
+    "Disp16|Disp32" },
+  { "OPERAND_TYPE_ANYDISP",
+    "Disp8|Disp16|Disp32|Disp32S|Disp64" },
+  { "OPERAND_TYPE_IMM16_32",
+    "Imm16|Imm32" },
+  { "OPERAND_TYPE_IMM16_32S",
+    "Imm16|Imm32S" },
+  { "OPERAND_TYPE_IMM16_32_32S",
+    "Imm16|Imm32|Imm32S" },
+  { "OPERAND_TYPE_IMM32_32S_DISP32",
+    "Imm32|Imm32S|Disp32" },
+  { "OPERAND_TYPE_IMM64_DISP64",
+    "Imm64|Disp64" },
+  { "OPERAND_TYPE_IMM32_32S_64_DISP32",
+    "Imm32|Imm32S|Imm64|Disp32" },
+  { "OPERAND_TYPE_IMM32_32S_64_DISP32_64",
+    "Imm32|Imm32S|Imm64|Disp32|Disp64" },
+};
+
+typedef struct bitfield
+{
+  int position;
+  int value;
+  const char *name;
+} bitfield;
+
+#define BITFIELD(n) { n, 0, #n }
+
+static bitfield cpu_flags[] =
+{
+  BITFIELD (Cpu186),
+  BITFIELD (Cpu286),
+  BITFIELD (Cpu386),
+  BITFIELD (Cpu486),
+  BITFIELD (Cpu586),
+  BITFIELD (Cpu686),
+  BITFIELD (CpuP4),
+  BITFIELD (CpuK6),
+  BITFIELD (CpuK8),
+  BITFIELD (CpuMMX),
+  BITFIELD (CpuMMX2),
+  BITFIELD (CpuSSE),
+  BITFIELD (CpuSSE2),
+  BITFIELD (CpuSSE3),
+  BITFIELD (CpuSSSE3),
+  BITFIELD (CpuSSE4_1),
+  BITFIELD (CpuSSE4_2),
+  BITFIELD (CpuSSE4a),
+  BITFIELD (Cpu3dnow),
+  BITFIELD (Cpu3dnowA),
+  BITFIELD (CpuPadLock),
+  BITFIELD (CpuSVME),
+  BITFIELD (CpuVMX),
+  BITFIELD (CpuABM),
+  BITFIELD (CpuLM),
+  BITFIELD (Cpu64),
+  BITFIELD (CpuNo64),
+#ifdef CpuUnused
+  BITFIELD (CpuUnused),
+#endif
+};
+
+static bitfield opcode_modifiers[] =
+{
+  BITFIELD (D),
+  BITFIELD (W),
+  BITFIELD (Modrm),
+  BITFIELD (ShortForm),
+  BITFIELD (Jump),
+  BITFIELD (JumpDword),
+  BITFIELD (JumpByte),
+  BITFIELD (JumpInterSegment),
+  BITFIELD (FloatMF),
+  BITFIELD (FloatR),
+  BITFIELD (FloatD),
+  BITFIELD (Size16),
+  BITFIELD (Size32),
+  BITFIELD (Size64),
+  BITFIELD (IgnoreSize),
+  BITFIELD (DefaultSize),
+  BITFIELD (No_bSuf),
+  BITFIELD (No_wSuf),
+  BITFIELD (No_lSuf),
+  BITFIELD (No_sSuf),
+  BITFIELD (No_qSuf),
+  BITFIELD (No_xSuf),
+  BITFIELD (FWait),
+  BITFIELD (IsString),
+  BITFIELD (RegKludge),
+  BITFIELD (IsPrefix),
+  BITFIELD (ImmExt),
+  BITFIELD (NoRex64),
+  BITFIELD (Rex64),
+  BITFIELD (Ugh),
+};
+
+static bitfield operand_types[] =
+{
+  BITFIELD (Reg8),
+  BITFIELD (Reg16),
+  BITFIELD (Reg32),
+  BITFIELD (Reg64),
+  BITFIELD (FloatReg),
+  BITFIELD (RegMMX),
+  BITFIELD (RegXMM),
+  BITFIELD (Imm8),
+  BITFIELD (Imm8S),
+  BITFIELD (Imm16),
+  BITFIELD (Imm32),
+  BITFIELD (Imm32S),
+  BITFIELD (Imm64),
+  BITFIELD (Imm1),
+  BITFIELD (BaseIndex),
+  BITFIELD (Disp8),
+  BITFIELD (Disp16),
+  BITFIELD (Disp32),
+  BITFIELD (Disp32S),
+  BITFIELD (Disp64),
+  BITFIELD (InOutPortReg),
+  BITFIELD (ShiftCount),
+  BITFIELD (Control),
+  BITFIELD (Debug),
+  BITFIELD (Test),
+  BITFIELD (SReg2),
+  BITFIELD (SReg3),
+  BITFIELD (Acc),
+  BITFIELD (FloatAcc),
+  BITFIELD (JumpAbsolute),
+  BITFIELD (EsSeg),
+  BITFIELD (RegMem),
+#ifdef OTUnused
+  BITFIELD (OTUnused),
+#endif
+};
+
+static int
+compare (const void *x, const void *y)
+{
+  const bitfield *xp = (const bitfield *) x;
+  const bitfield *yp = (const bitfield *) y;
+  return xp->position - yp->position;
+}
+
 static void
 fail (const char *message, ...)
 {
@@ -119,6 +412,171 @@ next_field (char *str, char sep, char **next)
   return p;
 }
 
+static void
+set_bitfield (const char *f, bitfield *array, unsigned int size)
+{
+  unsigned int i;
+
+  if (strcmp (f, "CpuSledgehammer") == 0)
+    f= "CpuK8";
+
+  for (i = 0; i < size; i++)
+    if (strcasecmp (array[i].name, f) == 0)
+      {
+       array[i].value = 1;
+       return;
+      }
+
+  printf ("Unknown bitfield: %s\n", f);
+  abort ();
+}
+
+static void
+output_cpu_flags (FILE *table, bitfield *flags, unsigned int size,
+                 int macro, const char *comma, const char *indent)
+{
+  unsigned int i;
+
+  fprintf (table, "%s{ { ", indent);
+
+  for (i = 0; i < size - 1; i++)
+    {
+      fprintf (table, "%d, ", flags[i].value);
+      if (((i + 1) % 20) == 0)
+       {
+         /* We need \\ for macro.  */
+         if (macro)
+           fprintf (table, " \\\n    %s", indent);
+         else
+           fprintf (table, "\n    %s", indent);
+       }
+    }
+
+  fprintf (table, "%d } }%s\n", flags[i].value, comma);
+}
+
+static void
+process_i386_cpu_flag (FILE *table, char *flag, int macro,
+                      const char *comma, const char *indent)
+{
+  char *str, *next, *last;
+  bitfield flags [ARRAY_SIZE (cpu_flags)];
+
+  /* Copy the default cpu flags.  */
+  memcpy (flags, cpu_flags, sizeof (cpu_flags));
+
+  if (strcasecmp (flag, "unknown") == 0)
+    {
+      unsigned int i;
+
+      /* We turn on everything except for cpu64 in case of
+        CPU_UNKNOWN_FLAGS. */
+      for (i = 0; i < ARRAY_SIZE (flags); i++)
+       if (flags[i].position != Cpu64)
+         flags[i].value = 1;
+    }
+  else if (strcmp (flag, "0"))
+    {
+      last = flag + strlen (flag);
+      for (next = flag; next && next < last; )
+       {
+         str = next_field (next, '|', &next);
+         if (str)
+           set_bitfield (str, flags, ARRAY_SIZE (flags));
+       }
+    }
+
+  output_cpu_flags (table, flags, ARRAY_SIZE (flags), macro,
+                   comma, indent);
+}
+
+static void
+output_opcode_modifier (FILE *table, bitfield *modifier, unsigned int size)
+{
+  unsigned int i;
+
+  fprintf (table, "    { ");
+
+  for (i = 0; i < size - 1; i++)
+    {
+      fprintf (table, "%d, ", modifier[i].value);
+      if (((i + 1) % 20) == 0)
+       fprintf (table, "\n      ");
+    }
+
+  fprintf (table, "%d },\n", modifier[i].value);
+}
+
+static void
+process_i386_opcode_modifier (FILE *table, char *mod)
+{
+  char *str, *next, *last;
+  bitfield modifiers [ARRAY_SIZE (opcode_modifiers)];
+
+  /* Copy the default opcode modifier.  */
+  memcpy (modifiers, opcode_modifiers, sizeof (modifiers));
+
+  if (strcmp (mod, "0"))
+    {
+      last = mod + strlen (mod);
+      for (next = mod; next && next < last; )
+       {
+         str = next_field (next, '|', &next);
+         if (str)
+           set_bitfield (str, modifiers, ARRAY_SIZE (modifiers));
+       }
+    }
+  output_opcode_modifier (table, modifiers, ARRAY_SIZE (modifiers));
+}
+
+static void
+output_operand_type (FILE *table, bitfield *types, unsigned int size,
+                    int macro, const char *indent)
+{
+  unsigned int i;
+
+  fprintf (table, "{ { ");
+
+  for (i = 0; i < size - 1; i++)
+    {
+      fprintf (table, "%d, ", types[i].value);
+      if (((i + 1) % 20) == 0)
+       {
+         /* We need \\ for macro.  */
+         if (macro)
+           fprintf (table, "\\\n%s", indent);
+         else
+           fprintf (table, "\n%s", indent);
+       }
+    }
+
+  fprintf (table, "%d } }", types[i].value);
+}
+
+static void
+process_i386_operand_type (FILE *table, char *op, int macro,
+                          const char *indent)
+{
+  char *str, *next, *last;
+  bitfield types [ARRAY_SIZE (operand_types)];
+
+  /* Copy the default operand type.  */
+  memcpy (types, operand_types, sizeof (types));
+
+  if (strcmp (op, "0"))
+    {
+      last = op + strlen (op);
+      for (next = op; next && next < last; )
+       {
+         str = next_field (next, '|', &next);
+         if (str)
+           set_bitfield (str, types, ARRAY_SIZE (types));
+       }
+    }
+  output_operand_type (table, types, ARRAY_SIZE (types), macro,
+                      indent);
+}
+
 static void
 process_i386_opcodes (FILE *table)
 {
@@ -131,7 +589,7 @@ process_i386_opcodes (FILE *table)
 
   if (fp == NULL)
     fail (_("can't find i386-opc.tbl for reading, errno = %s\n"),
-         strerror (errno));
+         xstrerror (errno));
 
   fprintf (table, "\n/* i386 opcode table.  */\n\n");
   fprintf (table, "const template i386_optab[] =\n{\n");
@@ -243,11 +701,12 @@ process_i386_opcodes (FILE *table)
            }
        }
 
-      fprintf (table, "  { \"%s\", %s, %s, %s, %s,\n",
-              name, operands, base_opcode, extension_opcode,
-              cpu_flags);
+      fprintf (table, "  { \"%s\", %s, %s, %s,\n",
+              name, operands, base_opcode, extension_opcode);
+
+      process_i386_cpu_flag (table, cpu_flags, 0, ",", "    ");
 
-      fprintf (table, "    %s,\n", opcode_modifier);
+      process_i386_opcode_modifier (table, opcode_modifier);
 
       fprintf (table, "    { ");
 
@@ -257,21 +716,31 @@ process_i386_opcodes (FILE *table)
              || *operand_types[i] == '0')
            {
              if (i == 0)
-               fprintf (table, "0");
+               process_i386_operand_type (table, "0", 0, "\t  ");
              break;
            }
 
          if (i != 0)
            fprintf (table, ",\n      ");
 
-         fprintf (table, "%s", operand_types[i]);
+         process_i386_operand_type (table, operand_types[i], 0,
+                                    "\t  ");
        }
       fprintf (table, " } },\n");
     }
 
   fclose (fp);
 
-  fprintf (table, "  { NULL, 0, 0, 0, 0, 0, { 0 } }\n");
+  fprintf (table, "  { NULL, 0, 0, 0,\n");
+
+  process_i386_cpu_flag (table, "0", 0, ",", "    ");
+
+  process_i386_opcode_modifier (table, "0");
+  fprintf (table, "    { ");
+  process_i386_operand_type (table, "0", 0, "\t  ");
+  fprintf (table, " } }\n");
+
   fprintf (table, "};\n");
 }
 
@@ -285,7 +754,7 @@ process_i386_registers (FILE *table)
 
   if (fp == NULL)
     fail (_("can't find i386-reg.tbl for reading, errno = %s\n"),
-         strerror (errno));
+         xstrerror (errno));
 
   fprintf (table, "\n/* i386 register table.  */\n\n");
   fprintf (table, "const reg_entry i386_regtab[] =\n{\n");
@@ -339,8 +808,11 @@ process_i386_registers (FILE *table)
       /* Find reg_num.  */
       reg_num = next_field (str, ',', &str);
 
-      fprintf (table, "  { \"%s\", %s, %s, %s },\n",
-              reg_name, reg_type, reg_flags, reg_num);
+      fprintf (table, "  { \"%s\",\n    ", reg_name);
+
+      process_i386_operand_type (table, reg_type, 0, "\t");
+
+      fprintf (table, ",\n    %s, %s },\n", reg_flags, reg_num);
     }
 
   fclose (fp);
@@ -350,6 +822,39 @@ process_i386_registers (FILE *table)
   fprintf (table, "\nconst unsigned int i386_regtab_size = ARRAY_SIZE (i386_regtab);\n");
 }
 
+static void
+process_i386_initializers (void)
+{
+  unsigned int i;
+  FILE *fp = fopen ("i386-init.h", "w");
+  char *init;
+
+  if (fp == NULL)
+    fail (_("can't create i386-init.h, errno = %s\n"),
+         xstrerror (errno));
+
+  process_copyright (fp);
+
+  for (i = 0; i < ARRAY_SIZE (cpu_flag_init); i++)
+    {
+      fprintf (fp, "\n#define %s \\\n", cpu_flag_init[i].name);
+      init = xstrdup (cpu_flag_init[i].init);
+      process_i386_cpu_flag (fp, init, 1, "", "  ");
+      free (init);
+    }
+
+  for (i = 0; i < ARRAY_SIZE (operand_type_init); i++)
+    {
+      fprintf (fp, "\n\n#define %s \\\n  ", operand_type_init[i].name);
+      init = xstrdup (operand_type_init[i].init);
+      process_i386_operand_type (fp, init, 1, "      ");
+      free (init);
+    }
+  fprintf (fp, "\n");
+
+  fclose (fp);
+}
+
 /* Program options.  */
 #define OPTION_SRCDIR  200
 
@@ -382,7 +887,7 @@ main (int argc, char **argv)
 {
   extern int chdir (char *);
   char *srcdir = NULL;
-  int c;
+  int c, unused;
   FILE *table;
   
   program_name = *argv;
@@ -415,16 +920,41 @@ main (int argc, char **argv)
   if (srcdir != NULL) 
     if (chdir (srcdir) != 0)
       fail (_("unable to change directory to \"%s\", errno = %s\n"),
-           srcdir, strerror (errno));
+           srcdir, xstrerror (errno));
+
+  /* Check the unused bitfield in i386_cpu_flags.  */
+#ifndef CpuUnused
+  unused = CpuNumOfBits - CpuMax - 1;
+  if (unused)
+    fail (_("%d unused bits in i386_cpu_flags.\n"), unused);
+#endif
+
+  /* Check the unused bitfield in i386_operand_type.  */
+#ifndef OTUnused
+  unused = OTNumOfBits - OTMax - 1;
+  if (unused)
+    fail (_("%d unused bits in i386_operand_type.\n"), unused);
+#endif
+
+  qsort (cpu_flags, ARRAY_SIZE (cpu_flags), sizeof (cpu_flags [0]),
+        compare);
+
+  qsort (opcode_modifiers, ARRAY_SIZE (opcode_modifiers),
+        sizeof (opcode_modifiers [0]), compare);
+
+  qsort (operand_types, ARRAY_SIZE (operand_types),
+        sizeof (operand_types [0]), compare);
 
   table = fopen ("i386-tbl.h", "w");
   if (table == NULL)
-    fail (_("can't create i386-tbl.h, errno = %s\n"), strerror (errno));
+    fail (_("can't create i386-tbl.h, errno = %s\n"),
+         xstrerror (errno));
 
   process_copyright (table);
 
   process_i386_opcodes (table);
   process_i386_registers (table);
+  process_i386_initializers ();
 
   fclose (table);
 
diff --git a/opcodes/i386-init.h b/opcodes/i386-init.h
new file mode 100644 (file)
index 0000000..e9b9aad
--- /dev/null
@@ -0,0 +1,332 @@
+/* This file is automatically generated by i386-gen.  Do not edit!  */
+/* Copyright 2007  Free Software Foundation, Inc.
+
+   This file is part of the GNU opcodes library.
+
+   This library is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   It is distributed in the hope that it will be useful, but WITHOUT
+   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+   License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
+
+#define CPU_UNKNOWN_FLAGS \
+  { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,  \
+      1, 1, 1, 1, 1, 0, 1, 1 } }
+
+#define CPU_GENERIC32_FLAGS \
+  { { 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  \
+      0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define CPU_GENERIC64_FLAGS \
+  { { 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0,  \
+      0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define CPU_NONE_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  \
+      0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define CPU_I186_FLAGS \
+  { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  \
+      0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define CPU_I286_FLAGS \
+  { { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  \
+      0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define CPU_I386_FLAGS \
+  { { 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  \
+      0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define CPU_I486_FLAGS \
+  { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  \
+      0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define CPU_I586_FLAGS \
+  { { 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  \
+      0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define CPU_I686_FLAGS \
+  { { 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  \
+      0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define CPU_P2_FLAGS \
+  { { 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  \
+      0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define CPU_P3_FLAGS \
+  { { 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,  \
+      0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define CPU_P4_FLAGS \
+  { { 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0,  \
+      0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define CPU_NOCONA_FLAGS \
+  { { 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0,  \
+      0, 0, 0, 0, 1, 0, 0, 0 } }
+
+#define CPU_CORE_FLAGS \
+  { { 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0,  \
+      0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define CPU_CORE2_FLAGS \
+  { { 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1,  \
+      0, 0, 0, 0, 1, 0, 0, 0 } }
+
+#define CPU_K6_FLAGS \
+  { { 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  \
+      0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define CPU_K6_2_FLAGS \
+  { { 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,  \
+      0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define CPU_ATHLON_FLAGS \
+  { { 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,  \
+      0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define CPU_K8_FLAGS \
+  { { 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,  \
+      0, 0, 0, 0, 1, 0, 0, 0 } }
+
+#define CPU_AMDFAM10_FLAGS \
+  { { 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,  \
+      1, 1, 0, 0, 1, 0, 0, 0 } }
+
+#define CPU_MMX_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  \
+      0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define CPU_SSE_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,  \
+      0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define CPU_SSE2_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0,  \
+      0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define CPU_SSE3_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0,  \
+      0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define CPU_SSSE3_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1,  \
+      0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define CPU_SSE4_1_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1,  \
+      0, 0, 1, 0, 0, 0, 0, 0 } }
+
+#define CPU_SSE4_2_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1,  \
+      0, 0, 1, 1, 0, 0, 0, 0 } }
+
+#define CPU_3DNOW_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,  \
+      0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define CPU_3DNOWA_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,  \
+      0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define CPU_PADLOCK_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,  \
+      0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define CPU_SVME_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,  \
+      0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define CPU_SSE4A_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0,  \
+      1, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define CPU_ABM_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  \
+      0, 1, 0, 0, 0, 0, 0, 0 } }
+
+
+#define OPERAND_TYPE_NONE \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_REG8 \
+  { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_REG16 \
+  { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_REG32 \
+  { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_REG64 \
+  { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_IMM1 \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_IMM8 \
+  { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_IMM8S \
+  { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_IMM16 \
+  { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_IMM32 \
+  { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_IMM32S \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_IMM64 \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_BASEINDEX \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_DISP8 \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_DISP16 \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_DISP32 \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_DISP32S \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_DISP64 \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_INOUTPORTREG \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_SHIFTCOUNT \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_CONTROL \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_TEST \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_DEBUG \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_FLOATREG \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_FLOATACC \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_SREG2 \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_SREG3 \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_ACC \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_JUMPABSOLUTE \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_REGMMX \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } }
+
+#define OPERAND_TYPE_REGXMM \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } }
+
+#define OPERAND_TYPE_ESSEG \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } }
+
+#define OPERAND_TYPE_ACC32 \
+  { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_ACC64 \
+  { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_REG16_INOUTPORTREG \
+  { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_DISP16_32 \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_ANYDISP \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_IMM16_32 \
+  { { 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_IMM16_32S \
+  { { 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_IMM16_32_32S \
+  { { 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_IMM32_32S_DISP32 \
+  { { 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_IMM64_DISP64 \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_IMM32_32S_64_DISP32 \
+  { { 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+
+#define OPERAND_TYPE_IMM32_32S_64_DISP32_64 \
+  { { 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
index 2c810179b958d1fb73ad027bc2eeb0a7d2b25a19..5e7dbca82c6071a2323c84f7d4d5917c7cfb1d6b 100644 (file)
    02110-1301, USA.  */
 
 #include "opcode/i386.h"
+#ifdef HAVE_LIMITS_H
+#include <limits.h>
+#endif
+
+#ifndef CHAR_BIT
+#define CHAR_BIT 8
+#endif
+
+/* Position of cpu flags bitfiled.  */
+
+/* i186 or better required */
+#define Cpu186         0
+/* i286 or better required */
+#define Cpu286         (Cpu186 + 1)
+/* i386 or better required */
+#define Cpu386         (Cpu286 + 1)
+/* i486 or better required */
+#define Cpu486         (Cpu386 + 1)
+/* i585 or better required */
+#define Cpu586         (Cpu486 + 1)
+/* i686 or better required */
+#define Cpu686         (Cpu586 + 1)
+/* Pentium4 or better required */
+#define CpuP4          (Cpu686 + 1)
+/* AMD K6 or better required*/
+#define CpuK6          (CpuP4 + 1)
+/* AMD K8 or better required */
+#define CpuK8          (CpuK6 + 1)
+/* MMX support required */
+#define CpuMMX         (CpuK8 + 1)
+/* extended MMX support (with SSE or 3DNow!Ext) required */
+#define CpuMMX2                (CpuMMX + 1)
+/* SSE support required */
+#define CpuSSE         (CpuMMX2 + 1)
+/* SSE2 support required */
+#define CpuSSE2                (CpuSSE + 1)
+/* 3dnow! support required */
+#define Cpu3dnow       (CpuSSE2 + 1)
+/* 3dnow! Extensions support required */
+#define Cpu3dnowA      (Cpu3dnow + 1)
+/* SSE3 support required */
+#define CpuSSE3                (Cpu3dnowA + 1)
+/* VIA PadLock required */
+#define CpuPadLock     (CpuSSE3 + 1)
+/* AMD Secure Virtual Machine Ext-s required */
+#define CpuSVME                (CpuPadLock + 1)
+/* VMX Instructions required */
+#define CpuVMX         (CpuSVME + 1)
+/* SSSE3 support required */
+#define CpuSSSE3       (CpuVMX + 1)
+/* SSE4a support required */
+#define CpuSSE4a       (CpuSSSE3 + 1)
+/* ABM New Instructions required */
+#define CpuABM         (CpuSSE4a + 1)
+/* SSE4.1 support required */
+#define CpuSSE4_1      (CpuABM + 1)
+/* SSE4.2 support required */
+#define CpuSSE4_2      (CpuSSE4_1 + 1)
+/* 64bit support available, used by -march= in assembler.  */
+#define CpuLM          (CpuSSE4_2 + 1)
+/* 64bit support required  */
+#define Cpu64          (CpuLM + 1)
+/* Not supported in the 64bit mode  */
+#define CpuNo64                (Cpu64 + 1)
+/* The last bitfield in i386_cpu_flags.  */
+#define CpuMax         CpuNo64
+
+#define CpuNumOfUints \
+  (CpuMax / sizeof (unsigned int) / CHAR_BIT + 1)
+#define CpuNumOfBits \
+  (CpuNumOfUints * sizeof (unsigned int) * CHAR_BIT)
+
+/* If you get a compiler error for zero width of the unused field,
+   comment it out.  */
+#define CpuUnused      (CpuNo64 + 1)
+
+/* We can check if an instruction is available with array instead
+   of bitfield. */
+typedef union i386_cpu_flags
+{
+  struct
+    {
+      unsigned int cpui186:1;
+      unsigned int cpui286:1;
+      unsigned int cpui386:1;
+      unsigned int cpui486:1;
+      unsigned int cpui586:1;
+      unsigned int cpui686:1;
+      unsigned int cpup4:1;
+      unsigned int cpuk6:1;
+      unsigned int cpuk8:1;
+      unsigned int cpummx:1;
+      unsigned int cpummx2:1;
+      unsigned int cpusse:1;
+      unsigned int cpusse2:1;
+      unsigned int cpua3dnow:1;
+      unsigned int cpua3dnowa:1;
+      unsigned int cpusse3:1;
+      unsigned int cpupadlock:1;
+      unsigned int cpusvme:1;
+      unsigned int cpuvmx:1;
+      unsigned int cpussse3:1;
+      unsigned int cpusse4a:1;
+      unsigned int cpuabm:1;
+      unsigned int cpusse4_1:1;
+      unsigned int cpusse4_2:1;
+      unsigned int cpulm:1;
+      unsigned int cpu64:1;
+      unsigned int cpuno64:1;
+#ifdef CpuUnused
+      unsigned int unused:(CpuNumOfBits - CpuUnused);
+#endif
+    } bitfield;
+  unsigned int array[CpuNumOfUints];
+} i386_cpu_flags;
+
+/* Position of opcode_modifier bits.  */
+
+/* has direction bit. */
+#define D                      0
+/* set if operands can be words or dwords encoded the canonical way */
+#define W                      (D + 1)
+/* insn has a modrm byte. */
+#define Modrm                  (W + 1)
+/* register is in low 3 bits of opcode */
+#define ShortForm              (Modrm + 1)
+/* special case for jump insns.  */
+#define Jump                   (ShortForm + 1)
+/* call and jump */
+#define JumpDword              (Jump + 1)
+/* loop and jecxz */
+#define JumpByte               (JumpDword + 1)
+/* special case for intersegment leaps/calls */
+#define JumpInterSegment       (JumpByte + 1)
+/* FP insn memory format bit, sized by 0x4 */
+#define FloatMF                        (JumpInterSegment + 1)
+/* src/dest swap for floats. */
+#define FloatR                 (FloatMF + 1)
+/* has float insn direction bit. */
+#define FloatD                 (FloatR + 1)
+/* needs size prefix if in 32-bit mode */
+#define Size16                 (FloatD + 1)
+/* needs size prefix if in 16-bit mode */
+#define Size32                 (Size16 + 1)
+/* needs size prefix if in 64-bit mode */
+#define Size64                 (Size32 + 1)
+/* instruction ignores operand size prefix */
+#define IgnoreSize             (Size64 + 1)
+/* default insn size depends on mode */
+#define DefaultSize            (IgnoreSize + 1)
+/* b suffix on instruction illegal */
+#define No_bSuf                        (DefaultSize + 1)
+/* w suffix on instruction illegal */
+#define No_wSuf                        (No_bSuf + 1)
+/* l suffix on instruction illegal */
+#define No_lSuf                        (No_wSuf + 1)
+/* s suffix on instruction illegal */
+#define No_sSuf                        (No_lSuf + 1)
+/* q suffix on instruction illegal */
+#define No_qSuf                        (No_sSuf + 1)
+/* x suffix on instruction illegal */
+#define No_xSuf                        (No_qSuf + 1)
+/* instruction needs FWAIT */
+#define FWait                  (No_xSuf + 1)
+/* quick test for string instructions */
+#define IsString               (FWait + 1)
+/* fake an extra reg operand for clr, imul and special register
+   processing for some instructions.  */
+#define RegKludge              (IsString + 1)
+/* opcode is a prefix */
+#define IsPrefix               (RegKludge + 1)
+/* instruction has extension in 8 bit imm */
+#define ImmExt                 (IsPrefix + 1)
+/* instruction don't need Rex64 prefix.  */
+#define NoRex64                        (ImmExt + 1)
+/* instruction require Rex64 prefix.  */
+#define Rex64                  (NoRex64 + 1)
+/* deprecated fp insn, gets a warning */
+#define Ugh                    (Rex64 + 1)
+/* The last bitfield in i386_opcode_modifier.  */
+#define Opcode_Modifier_Max    Ugh
+
+typedef struct i386_opcode_modifier
+{
+  unsigned int d:1;
+  unsigned int w:1;
+  unsigned int modrm:1;
+  unsigned int shortform:1;
+  unsigned int jump:1;
+  unsigned int jumpdword:1;
+  unsigned int jumpbyte:1;
+  unsigned int jumpintersegment:1;
+  unsigned int floatmf:1;
+  unsigned int floatr:1;
+  unsigned int floatd:1;
+  unsigned int size16:1;
+  unsigned int size32:1;
+  unsigned int size64:1;
+  unsigned int ignoresize:1;
+  unsigned int defaultsize:1;
+  unsigned int no_bsuf:1;
+  unsigned int no_wsuf:1;
+  unsigned int no_lsuf:1;
+  unsigned int no_ssuf:1;
+  unsigned int no_qsuf:1;
+  unsigned int no_xsuf:1;
+  unsigned int fwait:1;
+  unsigned int isstring:1;
+  unsigned int regkludge:1;
+  unsigned int isprefix:1;
+  unsigned int immext:1;
+  unsigned int norex64:1;
+  unsigned int rex64:1;
+  unsigned int ugh:1;
+} i386_opcode_modifier;
+
+/* Position of operand_type bits.  */
+
+/* Registers  */
+
+/* 8 bit reg */
+#define Reg8                   0
+/* 16 bit reg */
+#define Reg16                  (Reg8 + 1)
+/* 32 bit reg */
+#define Reg32                  (Reg16 + 1)
+/* 64 bit reg */
+#define Reg64                  (Reg32 + 1)
+
+/* immediate */
+
+/* 8 bit immediate */
+#define Imm8                   (Reg64 + 1)
+/* 8 bit immediate sign extended */
+#define Imm8S                  (Imm8 + 1)
+/* 16 bit immediate */
+#define Imm16                  (Imm8S + 1)
+/* 32 bit immediate */
+#define Imm32                  (Imm16 + 1)
+/* 32 bit immediate sign extended */
+#define Imm32S                 (Imm32 + 1)
+/* 64 bit immediate */
+#define Imm64                  (Imm32S + 1)
+/* 1 bit immediate */
+#define Imm1                   (Imm64 + 1)
+
+/* memory */
+
+#define BaseIndex              (Imm1 + 1)
+/* Disp8,16,32 are used in different ways, depending on the
+   instruction.  For jumps, they specify the size of the PC relative
+   displacement, for baseindex type instructions, they specify the
+   size of the offset relative to the base register, and for memory
+   offset instructions such as `mov 1234,%al' they specify the size of
+   the offset relative to the segment base.  */
+/* 8 bit displacement */
+#define Disp8                  (BaseIndex + 1)
+/* 16 bit displacement */
+#define Disp16                 (Disp8 + 1)
+/* 32 bit displacement */
+#define Disp32                 (Disp16 + 1)
+/* 32 bit signed displacement */
+#define Disp32S                        (Disp32 + 1)
+/* 64 bit displacement */
+#define Disp64                 (Disp32S + 1)
+
+/* specials */
+
+/* register to hold in/out port addr = dx */
+#define InOutPortReg           (Disp64 + 1)
+/* register to hold shift count = cl */
+#define ShiftCount             (InOutPortReg + 1)
+/* Control register */
+#define Control                        (ShiftCount + 1)
+/* Debug register */
+#define Debug                  (Control + 1)
+/* Test register */
+#define Test                   (Debug + 1)
+/* Float register */
+#define FloatReg               (Test + 1)
+/* Float stack top %st(0) */
+#define FloatAcc               (FloatReg + 1)
+/* 2 bit segment register */
+#define SReg2                  (FloatAcc + 1)
+/* 3 bit segment register */
+#define SReg3                  (SReg2 + 1)
+/* Accumulator %al or %ax or %eax */
+#define Acc                    (SReg3 + 1)
+#define JumpAbsolute           (Acc + 1)
+/* MMX register */
+#define RegMMX                 (JumpAbsolute + 1)
+/* XMM registers in PIII */
+#define RegXMM                 (RegMMX + 1)
+/* String insn operand with fixed es segment */
+#define EsSeg                  (RegXMM + 1)
+
+/* RegMem is for instructions with a modrm byte where the register
+   destination operand should be encoded in the mod and regmem fields.
+   Normally, it will be encoded in the reg field. We add a RegMem
+   flag to the destination register operand to indicate that it should
+   be encoded in the regmem field.  */
+#define RegMem                 (EsSeg + 1)
+
+/* The last bitfield in i386_operand_type.  */
+#define OTMax                  RegMem
+
+#define OTNumOfUints \
+  (OTMax / sizeof (unsigned int) / CHAR_BIT + 1)
+#define OTNumOfBits \
+  (OTNumOfUints * sizeof (unsigned int) * CHAR_BIT)
+
+/* If you get a compiler error for zero width of the unused field,
+   comment it out.  */
+#if 0
+#define OTUnused               (RegMem + 1)
+#endif
+
+typedef union i386_operand_type
+{
+  struct
+    {
+      unsigned int reg8:1;
+      unsigned int reg16:1;
+      unsigned int reg32:1;
+      unsigned int reg64:1;
+      unsigned int imm8:1;
+      unsigned int imm8s:1;
+      unsigned int imm16:1;
+      unsigned int imm32:1;
+      unsigned int imm32s:1;
+      unsigned int imm64:1;
+      unsigned int imm1:1;
+      unsigned int baseindex:1;
+      unsigned int disp8:1;
+      unsigned int disp16:1;
+      unsigned int disp32:1;
+      unsigned int disp32s:1;
+      unsigned int disp64:1;
+      unsigned int inoutportreg:1;
+      unsigned int shiftcount:1;
+      unsigned int control:1;
+      unsigned int debug:1;
+      unsigned int test:1;
+      unsigned int floatreg:1;
+      unsigned int floatacc:1;
+      unsigned int sreg2:1;
+      unsigned int sreg3:1;
+      unsigned int acc:1;
+      unsigned int jumpabsolute:1;
+      unsigned int regmmx:1;
+      unsigned int regxmm:1;
+      unsigned int esseg:1;
+      unsigned int regmem:1;
+#ifdef OTUnused
+      unsigned int unused:(OTNumOfBits - OTUnused);
+#endif
+    } bitfield;
+  unsigned int array[OTNumOfUints];
+} i386_operand_type;
 
 typedef struct template
 {
@@ -46,159 +405,18 @@ typedef struct template
 #define None 0xffff            /* If no extension_opcode is possible.  */
 
   /* cpu feature flags */
-  unsigned int cpu_flags;
-#define Cpu186           0x1   /* i186 or better required */
-#define Cpu286           0x2   /* i286 or better required */
-#define Cpu386           0x4   /* i386 or better required */
-#define Cpu486           0x8   /* i486 or better required */
-#define Cpu586          0x10   /* i585 or better required */
-#define Cpu686          0x20   /* i686 or better required */
-#define CpuP4           0x40   /* Pentium4 or better required */
-#define CpuK6           0x80   /* AMD K6 or better required*/
-#define CpuSledgehammer 0x100  /* Sledgehammer or better required */
-#define CpuMMX         0x200   /* MMX support required */
-#define CpuMMX2                0x400   /* extended MMX support (with SSE or 3DNow!Ext) required */
-#define CpuSSE         0x800   /* Streaming SIMD extensions required */
-#define CpuSSE2               0x1000   /* Streaming SIMD extensions 2 required */
-#define Cpu3dnow       0x2000  /* 3dnow! support required */
-#define Cpu3dnowA      0x4000  /* 3dnow!Extensions support required */
-#define CpuSSE3               0x8000   /* Streaming SIMD extensions 3 required */
-#define CpuPadLock    0x10000  /* VIA PadLock required */
-#define CpuSVME              0x20000   /* AMD Secure Virtual Machine Ext-s required */
-#define CpuVMX       0x40000   /* VMX Instructions required */
-#define CpuSSSE3      0x80000  /* Supplemental Streaming SIMD extensions 3 required */
-#define CpuSSE4a     0x100000   /* SSE4a New Instuctions required */
-#define CpuABM       0x200000   /* ABM New Instructions required */
-#define CpuSSE4_1    0x400000  /* SSE4.1 Instructions required */
-#define CpuSSE4_2    0x800000  /* SSE4.2 Instructions required */
-
-/* SSE4.1/4.2 Instructions required */
-#define CpuSSE4             (CpuSSE4_1|CpuSSE4_2)
-
-  /* These flags are set by gas depending on the flag_code.  */
-#define Cpu64       0x4000000   /* 64bit support required  */
-#define CpuNo64      0x8000000   /* Not supported in the 64bit mode  */
-
-  /* The default value for unknown CPUs - enable all features to avoid problems.  */
-#define CpuUnknownFlags (Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686 \
-       |CpuP4|CpuSledgehammer|CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuSSE3|CpuVMX \
-       |Cpu3dnow|Cpu3dnowA|CpuK6|CpuPadLock|CpuSVME|CpuSSSE3|CpuSSE4_1 \
-       |CpuSSE4_2|CpuABM|CpuSSE4a)
+  i386_cpu_flags cpu_flags;
 
   /* the bits in opcode_modifier are used to generate the final opcode from
      the base_opcode.  These bits also are used to detect alternate forms of
      the same instruction */
-  unsigned int opcode_modifier;
-
-  /* opcode_modifier bits: */
-#define D                 0x1  /* has direction bit. */
-#define W                 0x2  /* set if operands can be words or dwords
-                                  encoded the canonical way */
-#define Modrm             0x4  /* insn has a modrm byte. */
-#define ShortForm         0x8  /* register is in low 3 bits of opcode */
-#define Jump             0x10  /* special case for jump insns.  */
-#define JumpDword        0x20  /* call and jump */
-#define JumpByte         0x40  /* loop and jecxz */
-#define JumpInterSegment  0x80 /* special case for intersegment leaps/calls */
-#define FloatMF                 0x100  /* FP insn memory format bit, sized by 0x4 */
-#define FloatR          0x200  /* src/dest swap for floats. */
-#define FloatD          0x400  /* has float insn direction bit. */
-#define Size16          0x800  /* needs size prefix if in 32-bit mode */
-#define Size32         0x1000  /* needs size prefix if in 16-bit mode */
-#define Size64         0x2000  /* needs size prefix if in 64-bit mode */
-#define IgnoreSize      0x4000  /* instruction ignores operand size prefix */
-#define DefaultSize     0x8000  /* default insn size depends on mode */
-#define No_bSuf               0x10000  /* b suffix on instruction illegal */
-#define No_wSuf               0x20000  /* w suffix on instruction illegal */
-#define No_lSuf               0x40000  /* l suffix on instruction illegal */
-#define No_sSuf               0x80000  /* s suffix on instruction illegal */
-#define No_qSuf       0x100000  /* q suffix on instruction illegal */
-#define No_xSuf       0x200000  /* x suffix on instruction illegal */
-#define FWait        0x400000  /* instruction needs FWAIT */
-#define IsString      0x800000 /* quick test for string instructions */
-#define RegKludge    0x1000000 /* fake an extra reg operand for clr, imul
-                                  and special register processing for
-                                  some instructions.  */
-#define IsPrefix     0x2000000 /* opcode is a prefix */
-#define ImmExt      0x4000000  /* instruction has extension in 8 bit imm */
-#define NoRex64             0x8000000  /* instruction don't need Rex64 prefix.  */
-#define Rex64      0x10000000  /* instruction require Rex64 prefix.  */
-#define Ugh        0x20000000  /* deprecated fp insn, gets a warning */
+  i386_opcode_modifier opcode_modifier;
 
   /* operand_types[i] describes the type of operand i.  This is made
      by OR'ing together all of the possible type masks.  (e.g.
      'operand_types[i] = Reg|Imm' specifies that operand i can be
      either a register or an immediate operand.  */
-  unsigned int operand_types[MAX_OPERANDS];
-
-  /* operand_types[i] bits */
-  /* register */
-#define Reg8              0x1  /* 8 bit reg */
-#define Reg16             0x2  /* 16 bit reg */
-#define Reg32             0x4  /* 32 bit reg */
-#define Reg64             0x8  /* 64 bit reg */
-  /* immediate */
-#define Imm8             0x10  /* 8 bit immediate */
-#define Imm8S            0x20  /* 8 bit immediate sign extended */
-#define Imm16            0x40  /* 16 bit immediate */
-#define Imm32            0x80  /* 32 bit immediate */
-#define Imm32S          0x100  /* 32 bit immediate sign extended */
-#define Imm64           0x200  /* 64 bit immediate */
-#define Imm1            0x400  /* 1 bit immediate */
-  /* memory */
-#define BaseIndex       0x800
-  /* Disp8,16,32 are used in different ways, depending on the
-     instruction.  For jumps, they specify the size of the PC relative
-     displacement, for baseindex type instructions, they specify the
-     size of the offset relative to the base register, and for memory
-     offset instructions such as `mov 1234,%al' they specify the size of
-     the offset relative to the segment base.  */
-#define Disp8          0x1000  /* 8 bit displacement */
-#define Disp16         0x2000  /* 16 bit displacement */
-#define Disp32         0x4000  /* 32 bit displacement */
-#define Disp32S                0x8000  /* 32 bit signed displacement */
-#define Disp64        0x10000  /* 64 bit displacement */
-  /* specials */
-#define InOutPortReg   0x20000 /* register to hold in/out port addr = dx */
-#define ShiftCount     0x40000 /* register to hold shift count = cl */
-#define Control               0x80000  /* Control register */
-#define Debug        0x100000  /* Debug register */
-#define Test         0x200000  /* Test register */
-#define FloatReg      0x400000 /* Float register */
-#define FloatAcc      0x800000 /* Float stack top %st(0) */
-#define SReg2       0x1000000  /* 2 bit segment register */
-#define SReg3       0x2000000  /* 3 bit segment register */
-#define Acc         0x4000000  /* Accumulator %al or %ax or %eax */
-#define JumpAbsolute 0x8000000
-#define RegMMX     0x10000000  /* MMX register */
-#define RegXMM     0x20000000  /* XMM registers in PIII */
-#define EsSeg      0x40000000  /* String insn operand with fixed es segment */
-
-  /* RegMem is for instructions with a modrm byte where the register
-     destination operand should be encoded in the mod and regmem fields.
-     Normally, it will be encoded in the reg field. We add a RegMem
-     flag to the destination register operand to indicate that it should
-     be encoded in the regmem field.  */
-#define RegMem     0x80000000
-
-#define Reg    (Reg8|Reg16|Reg32|Reg64) /* gen'l register */
-#define WordReg (Reg16|Reg32|Reg64)
-#define ImplicitRegister (InOutPortReg|ShiftCount|Acc|FloatAcc)
-#define Imm    (Imm8|Imm8S|Imm16|Imm32S|Imm32|Imm64) /* gen'l immediate */
-#define EncImm (Imm8|Imm16|Imm32|Imm32S) /* Encodable gen'l immediate */
-#define Disp   (Disp8|Disp16|Disp32|Disp32S|Disp64) /* General displacement */
-#define AnyMem (Disp8|Disp16|Disp32|Disp32S|BaseIndex) /* General memory */
-  /* The following aliases are defined because the opcode table
-     carefully specifies the allowed memory types for each instruction.
-     At the moment we can only tell a memory reference size by the
-     instruction suffix, so there's not much point in defining Mem8,
-     Mem16, Mem32 and Mem64 opcode modifiers - We might as well just use
-     the suffix directly to check memory operands.  */
-#define LLongMem AnyMem                /* 64 bits (or more) */
-#define LongMem AnyMem         /* 32 bit memory ref */
-#define ShortMem AnyMem                /* 16 bit memory ref */
-#define WordMem AnyMem         /* 16, 32 or 64 bit memory ref */
-#define ByteMem AnyMem         /* 8 bit memory ref */
+  i386_operand_type operand_types[MAX_OPERANDS];
 }
 template;
 
@@ -208,7 +426,7 @@ extern const template i386_optab[];
 typedef struct
 {
   char *reg_name;
-  unsigned int reg_type;
+  i386_operand_type reg_type;
   unsigned int reg_flags;
 #define RegRex     0x1  /* Extended register.  */
 #define RegRex64    0x2  /* Extended 8 bit register.  */
index f5121e1c427efa10a9aea7592a94d36474cc7e43..7a76ebfb6c86f68ad71657bd12471618f61f79cd 100644 (file)
 
 const template i386_optab[] =
 {
-  { "mov", 2, 0xa0, None, Cpu64,
-    D|W|No_sSuf|No_xSuf,
-    { Disp64,
-      Acc } },
-  { "mov", 2, 0xa0, None, CpuNo64,
-    D|W|No_sSuf|No_qSuf|No_xSuf,
-    { Disp16|Disp32,
-      Acc } },
-  { "mov", 2, 0x88, None, 0,
-    D|W|Modrm|No_sSuf|No_xSuf,
-    { Reg8|Reg16|Reg32|Reg64,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "mov", 2, 0xb0, None, 0,
-    W|ShortForm|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8|Imm16|Imm32|Imm32S,
-      Reg8|Reg16|Reg32 } },
-  { "mov", 2, 0xc6, 0x0, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Imm8|Imm16|Imm32|Imm32S,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "mov", 2, 0xb0, None, Cpu64,
-    W|ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf,
-    { Imm64,
-      Reg64 } },
-  { "mov", 2, 0x8c, None, 0,
-    Modrm|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { SReg2,
-      Reg16|Reg32|Reg64|RegMem } },
-  { "mov", 2, 0x8c, None, 0,
-    Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { SReg2,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "mov", 2, 0x8c, None, Cpu386,
-    Modrm|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { SReg3,
-      Reg16|Reg32|Reg64|RegMem } },
-  { "mov", 2, 0x8c, None, Cpu386,
-    Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { SReg3,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "mov", 2, 0x8e, None, 0,
-    Modrm|IgnoreSize|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg16|Reg32|Reg64,
-      SReg2 } },
-  { "mov", 2, 0x8e, None, 0,
-    Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      SReg2 } },
-  { "mov", 2, 0x8e, None, Cpu386,
-    Modrm|IgnoreSize|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg16|Reg32|Reg64,
-      SReg3 } },
-  { "mov", 2, 0x8e, None, Cpu386,
-    Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      SReg3 } },
-  { "mov", 2, 0xf20, None, Cpu386|CpuNo64,
-    D|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Control,
-      Reg32|RegMem } },
-  { "mov", 2, 0xf20, None, Cpu64,
-    D|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf|NoRex64,
-    { Control,
-      Reg64|RegMem } },
-  { "mov", 2, 0xf21, None, Cpu386|CpuNo64,
-    D|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Debug,
-      Reg32|RegMem } },
-  { "mov", 2, 0xf21, None, Cpu64,
-    D|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf|NoRex64,
-    { Debug,
-      Reg64|RegMem } },
-  { "mov", 2, 0xf24, None, Cpu386|CpuNo64,
-    D|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Test,
-      Reg32|RegMem } },
-  { "movabs", 2, 0xa0, None, Cpu64,
-    D|W|No_sSuf|No_xSuf,
-    { Disp64,
-      Acc } },
-  { "movabs", 2, 0xb0, None, Cpu64,
-    W|ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf,
-    { Imm64,
-      Reg64 } },
-  { "movsbl", 2, 0xfbe, None, Cpu386,
-    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg32 } },
-  { "movsbw", 2, 0xfbe, None, Cpu386,
-    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16 } },
-  { "movswl", 2, 0xfbf, None, Cpu386,
-    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg16|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg32 } },
-  { "movsbq", 2, 0xfbe, None, Cpu64,
-    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|Rex64,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg64 } },
-  { "movswq", 2, 0xfbf, None, Cpu64,
-    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|Rex64,
-    { Reg16|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg64 } },
-  { "movslq", 2, 0x63, None, Cpu64,
-    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|Rex64,
-    { Reg32|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg64 } },
-  { "movsx", 2, 0xfbe, None, Cpu386,
-    Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "movsx", 2, 0xfbf, None, Cpu386,
-    Modrm|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg16|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg32|Reg64 } },
-  { "movsx", 2, 0x63, None, Cpu64,
-    Modrm|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_xSuf|Rex64,
-    { Reg32|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg64 } },
-  { "movzb", 2, 0xfb6, None, Cpu386,
-    Modrm|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "movzbl", 2, 0xfb6, None, Cpu386,
-    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg32 } },
-  { "movzbw", 2, 0xfb6, None, Cpu386,
-    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16 } },
-  { "movzwl", 2, 0xfb7, None, Cpu386,
-    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg16|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg32 } },
-  { "movzbq", 2, 0xfb6, None, Cpu64,
-    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|Rex64,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg64 } },
-  { "movzwq", 2, 0xfb7, None, Cpu64,
-    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|Rex64,
-    { Reg16|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg64 } },
-  { "movzx", 2, 0xfb6, None, Cpu386,
-    Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "movzx", 2, 0xfb7, None, Cpu386,
-    Modrm|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg16|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg32|Reg64 } },
-  { "push", 1, 0x50, None, CpuNo64,
-    ShortForm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg16|Reg32|Reg64 } },
-  { "push", 1, 0xff, 0x6, CpuNo64,
-    Modrm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "push", 1, 0x6a, None, Cpu186|CpuNo64,
-    DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8S } },
-  { "push", 1, 0x68, None, Cpu186|CpuNo64,
-    DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm16|Imm32 } },
-  { "push", 1, 0x6, None, CpuNo64,
-    ShortForm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { SReg2 } },
-  { "push", 1, 0xfa0, None, Cpu386|CpuNo64,
-    ShortForm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { SReg3 } },
-  { "push", 1, 0x50, None, Cpu64,
-    ShortForm|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_xSuf|NoRex64,
-    { Reg16|Reg64 } },
-  { "push", 1, 0xff, 0x6, Cpu64,
-    Modrm|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_xSuf|NoRex64,
-    { Reg16|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "push", 1, 0x6a, None, Cpu64,
-    DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_xSuf|NoRex64,
-    { Imm8S } },
-  { "push", 1, 0x68, None, Cpu64,
-    DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_xSuf|NoRex64,
-    { Imm16|Imm32S } },
-  { "push", 1, 0xfa0, None, Cpu64,
-    ShortForm|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_xSuf|NoRex64,
-    { SReg3 } },
-  { "pusha", 0, 0x60, None, Cpu186|CpuNo64,
-    DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "pop", 1, 0x58, None, CpuNo64,
-    ShortForm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg16|Reg32|Reg64 } },
-  { "pop", 1, 0x8f, 0x0, CpuNo64,
-    Modrm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "pop", 1, 0x7, None, CpuNo64,
-    ShortForm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { SReg2 } },
-  { "pop", 1, 0xfa1, None, Cpu386|CpuNo64,
-    ShortForm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { SReg3 } },
-  { "pop", 1, 0x58, None, Cpu64,
-    ShortForm|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_xSuf|NoRex64,
-    { Reg16|Reg64 } },
-  { "pop", 1, 0x8f, 0x0, Cpu64,
-    Modrm|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_xSuf|NoRex64,
-    { Reg16|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "pop", 1, 0xfa1, None, Cpu64,
-    ShortForm|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_xSuf|NoRex64,
-    { SReg3 } },
-  { "popa", 0, 0x61, None, Cpu186|CpuNo64,
-    DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "xchg", 2, 0x90, None, 0,
-    ShortForm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64,
-      Acc } },
-  { "xchg", 2, 0x90, None, 0,
-    ShortForm|No_bSuf|No_sSuf|No_xSuf,
-    { Acc,
-      Reg16|Reg32|Reg64 } },
-  { "xchg", 2, 0x86, None, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Reg8|Reg16|Reg32|Reg64,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "xchg", 2, 0x86, None, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg8|Reg16|Reg32|Reg64 } },
-  { "in", 2, 0xe4, None, 0,
-    W|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      Acc } },
-  { "in", 2, 0xec, None, 0,
-    W|No_sSuf|No_qSuf|No_xSuf,
-    { InOutPortReg,
-      Acc } },
-  { "in", 1, 0xe4, None, 0,
-    W|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8 } },
-  { "in", 1, 0xec, None, 0,
-    W|No_sSuf|No_qSuf|No_xSuf,
-    { InOutPortReg } },
-  { "out", 2, 0xe6, None, 0,
-    W|No_sSuf|No_qSuf|No_xSuf,
-    { Acc,
-      Imm8 } },
-  { "out", 2, 0xee, None, 0,
-    W|No_sSuf|No_qSuf|No_xSuf,
-    { Acc,
-      InOutPortReg } },
-  { "out", 1, 0xe6, None, 0,
-    W|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8 } },
-  { "out", 1, 0xee, None, 0,
-    W|No_sSuf|No_qSuf|No_xSuf,
-    { InOutPortReg } },
-  { "lea", 2, 0x8d, None, 0,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "lds", 2, 0xc5, None, CpuNo64,
-    Modrm|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "les", 2, 0xc4, None, CpuNo64,
-    Modrm|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "lfs", 2, 0xfb4, None, Cpu386,
-    Modrm|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "lgs", 2, 0xfb5, None, Cpu386,
-    Modrm|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "lss", 2, 0xfb2, None, Cpu386,
-    Modrm|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "clc", 0, 0xf8, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "cld", 0, 0xfc, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "cli", 0, 0xfa, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "clts", 0, 0xf06, None, Cpu286,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "cmc", 0, 0xf5, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "lahf", 0, 0x9f, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "sahf", 0, 0x9e, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "pushf", 0, 0x9c, None, CpuNo64,
-    DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "pushf", 0, 0x9c, None, Cpu64,
-    DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_xSuf|NoRex64,
-    { 0 } },
-  { "popf", 0, 0x9d, None, CpuNo64,
-    DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "popf", 0, 0x9d, None, Cpu64,
-    DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_xSuf|NoRex64,
-    { 0 } },
-  { "stc", 0, 0xf9, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "std", 0, 0xfd, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "sti", 0, 0xfb, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "add", 2, 0x0, None, 0,
-    D|W|Modrm|No_sSuf|No_xSuf,
-    { Reg8|Reg16|Reg32|Reg64,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "add", 2, 0x83, 0x0, 0,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Imm8S,
-      Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "add", 2, 0x4, None, 0,
-    W|No_sSuf|No_xSuf,
-    { Imm8|Imm16|Imm32|Imm32S,
-      Acc } },
-  { "add", 2, 0x80, 0x0, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Imm8|Imm16|Imm32|Imm32S,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "inc", 1, 0x40, None, CpuNo64,
-    ShortForm|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg16|Reg32|Reg64 } },
-  { "inc", 1, 0xfe, 0x0, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "sub", 2, 0x28, None, 0,
-    D|W|Modrm|No_sSuf|No_xSuf,
-    { Reg8|Reg16|Reg32|Reg64,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "sub", 2, 0x83, 0x5, 0,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Imm8S,
-      Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "sub", 2, 0x2c, None, 0,
-    W|No_sSuf|No_xSuf,
-    { Imm8|Imm16|Imm32|Imm32S,
-      Acc } },
-  { "sub", 2, 0x80, 0x5, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Imm8|Imm16|Imm32|Imm32S,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "dec", 1, 0x48, None, CpuNo64,
-    ShortForm|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg16|Reg32|Reg64 } },
-  { "dec", 1, 0xfe, 0x1, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "sbb", 2, 0x18, None, 0,
-    D|W|Modrm|No_sSuf|No_xSuf,
-    { Reg8|Reg16|Reg32|Reg64,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "sbb", 2, 0x83, 0x3, 0,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Imm8S,
-      Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "sbb", 2, 0x1c, None, 0,
-    W|No_sSuf|No_xSuf,
-    { Imm8|Imm16|Imm32|Imm32S,
-      Acc } },
-  { "sbb", 2, 0x80, 0x3, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Imm8|Imm16|Imm32|Imm32S,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "cmp", 2, 0x38, None, 0,
-    D|W|Modrm|No_sSuf|No_xSuf,
-    { Reg8|Reg16|Reg32|Reg64,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "cmp", 2, 0x83, 0x7, 0,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Imm8S,
-      Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "cmp", 2, 0x3c, None, 0,
-    W|No_sSuf|No_xSuf,
-    { Imm8|Imm16|Imm32|Imm32S,
-      Acc } },
-  { "cmp", 2, 0x80, 0x7, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Imm8|Imm16|Imm32|Imm32S,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "test", 2, 0x84, None, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Reg8|Reg16|Reg32|Reg64,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "test", 2, 0x84, None, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg8|Reg16|Reg32|Reg64 } },
-  { "test", 2, 0xa8, None, 0,
-    W|No_sSuf|No_xSuf,
-    { Imm8|Imm16|Imm32|Imm32S,
-      Acc } },
-  { "test", 2, 0xf6, 0x0, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Imm8|Imm16|Imm32|Imm32S,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "and", 2, 0x20, None, 0,
-    D|W|Modrm|No_sSuf|No_xSuf,
-    { Reg8|Reg16|Reg32|Reg64,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "and", 2, 0x83, 0x4, 0,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Imm8S,
-      Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "and", 2, 0x24, None, 0,
-    W|No_sSuf|No_xSuf,
-    { Imm8|Imm16|Imm32|Imm32S,
-      Acc } },
-  { "and", 2, 0x80, 0x4, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Imm8|Imm16|Imm32|Imm32S,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "or", 2, 0x8, None, 0,
-    D|W|Modrm|No_sSuf|No_xSuf,
-    { Reg8|Reg16|Reg32|Reg64,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "or", 2, 0x83, 0x1, 0,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Imm8S,
-      Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "or", 2, 0xc, None, 0,
-    W|No_sSuf|No_xSuf,
-    { Imm8|Imm16|Imm32|Imm32S,
-      Acc } },
-  { "or", 2, 0x80, 0x1, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Imm8|Imm16|Imm32|Imm32S,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "xor", 2, 0x30, None, 0,
-    D|W|Modrm|No_sSuf|No_xSuf,
-    { Reg8|Reg16|Reg32|Reg64,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "xor", 2, 0x83, 0x6, 0,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Imm8S,
-      Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "xor", 2, 0x34, None, 0,
-    W|No_sSuf|No_xSuf,
-    { Imm8|Imm16|Imm32|Imm32S,
-      Acc } },
-  { "xor", 2, 0x80, 0x6, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Imm8|Imm16|Imm32|Imm32S,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "clr", 1, 0x30, None, 0,
-    W|Modrm|No_sSuf|No_xSuf|RegKludge,
-    { Reg8|Reg16|Reg32|Reg64 } },
-  { "adc", 2, 0x10, None, 0,
-    D|W|Modrm|No_sSuf|No_xSuf,
-    { Reg8|Reg16|Reg32|Reg64,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "adc", 2, 0x83, 0x2, 0,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Imm8S,
-      Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "adc", 2, 0x14, None, 0,
-    W|No_sSuf|No_xSuf,
-    { Imm8|Imm16|Imm32|Imm32S,
-      Acc } },
-  { "adc", 2, 0x80, 0x2, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Imm8|Imm16|Imm32|Imm32S,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "neg", 1, 0xf6, 0x3, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "not", 1, 0xf6, 0x2, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "aaa", 0, 0x37, None, CpuNo64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "aas", 0, 0x3f, None, CpuNo64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "daa", 0, 0x27, None, CpuNo64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "das", 0, 0x2f, None, CpuNo64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "aad", 0, 0xd50a, None, CpuNo64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "aad", 1, 0xd5, None, CpuNo64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8 } },
-  { "aam", 0, 0xd40a, None, CpuNo64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "aam", 1, 0xd4, None, CpuNo64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8 } },
-  { "cbw", 0, 0x98, None, 0,
-    Size16|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "cdqe", 0, 0x98, None, Cpu64,
-    Size64|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "cwde", 0, 0x98, None, 0,
-    Size32|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "cwd", 0, 0x99, None, 0,
-    Size16|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "cdq", 0, 0x99, None, 0,
-    Size32|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "cqo", 0, 0x99, None, Cpu64,
-    Size64|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "cbtw", 0, 0x98, None, 0,
-    Size16|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "cltq", 0, 0x98, None, Cpu64,
-    Size64|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "cwtl", 0, 0x98, None, 0,
-    Size32|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "cwtd", 0, 0x99, None, 0,
-    Size16|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "cltd", 0, 0x99, None, 0,
-    Size32|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "cqto", 0, 0x99, None, Cpu64,
-    Size64|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "mul", 1, 0xf6, 0x4, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "imul", 1, 0xf6, 0x5, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "imul", 2, 0xfaf, None, Cpu386,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "imul", 3, 0x6b, None, Cpu186,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Imm8S,
-      Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "imul", 3, 0x69, None, Cpu186,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Imm16|Imm32|Imm32S,
-      Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "imul", 2, 0x6b, None, Cpu186,
-    Modrm|No_bSuf|No_sSuf|No_xSuf|RegKludge,
-    { Imm8S,
-      Reg16|Reg32|Reg64 } },
-  { "imul", 2, 0x69, None, Cpu186,
-    Modrm|No_bSuf|No_sSuf|No_xSuf|RegKludge,
-    { Imm16|Imm32|Imm32S,
-      Reg16|Reg32|Reg64 } },
-  { "div", 1, 0xf6, 0x6, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "div", 2, 0xf6, 0x6, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Acc } },
-  { "idiv", 1, 0xf6, 0x7, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "idiv", 2, 0xf6, 0x7, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Acc } },
-  { "rol", 2, 0xd0, 0x0, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Imm1,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "rol", 2, 0xc0, 0x0, Cpu186,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Imm8,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "rol", 2, 0xd2, 0x0, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { ShiftCount,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "rol", 1, 0xd0, 0x0, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "ror", 2, 0xd0, 0x1, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Imm1,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "ror", 2, 0xc0, 0x1, Cpu186,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Imm8,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "ror", 2, 0xd2, 0x1, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { ShiftCount,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "ror", 1, 0xd0, 0x1, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "rcl", 2, 0xd0, 0x2, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Imm1,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "rcl", 2, 0xc0, 0x2, Cpu186,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Imm8,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "rcl", 2, 0xd2, 0x2, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { ShiftCount,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "rcl", 1, 0xd0, 0x2, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "rcr", 2, 0xd0, 0x3, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Imm1,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "rcr", 2, 0xc0, 0x3, Cpu186,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Imm8,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "rcr", 2, 0xd2, 0x3, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { ShiftCount,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "rcr", 1, 0xd0, 0x3, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "sal", 2, 0xd0, 0x4, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Imm1,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "sal", 2, 0xc0, 0x4, Cpu186,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Imm8,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "sal", 2, 0xd2, 0x4, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { ShiftCount,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "sal", 1, 0xd0, 0x4, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "shl", 2, 0xd0, 0x4, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Imm1,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "shl", 2, 0xc0, 0x4, Cpu186,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Imm8,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "shl", 2, 0xd2, 0x4, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { ShiftCount,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "shl", 1, 0xd0, 0x4, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "shr", 2, 0xd0, 0x5, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Imm1,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "shr", 2, 0xc0, 0x5, Cpu186,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Imm8,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "shr", 2, 0xd2, 0x5, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { ShiftCount,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "shr", 1, 0xd0, 0x5, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "sar", 2, 0xd0, 0x7, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Imm1,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "sar", 2, 0xc0, 0x7, Cpu186,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Imm8,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "sar", 2, 0xd2, 0x7, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { ShiftCount,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "sar", 1, 0xd0, 0x7, 0,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "shld", 3, 0xfa4, None, Cpu386,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Imm8,
-      Reg16|Reg32|Reg64,
-      Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "shld", 3, 0xfa5, None, Cpu386,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { ShiftCount,
-      Reg16|Reg32|Reg64,
-      Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "shld", 2, 0xfa5, None, Cpu386,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64,
-      Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "shrd", 3, 0xfac, None, Cpu386,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Imm8,
-      Reg16|Reg32|Reg64,
-      Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "shrd", 3, 0xfad, None, Cpu386,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { ShiftCount,
-      Reg16|Reg32|Reg64,
-      Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "shrd", 2, 0xfad, None, Cpu386,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64,
-      Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "call", 1, 0xe8, None, CpuNo64,
-    JumpDword|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp16|Disp32 } },
-  { "call", 1, 0xe8, None, Cpu64,
-    JumpDword|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_xSuf|NoRex64,
-    { Disp16|Disp32 } },
-  { "call", 1, 0xff, 0x2, CpuNo64,
-    Modrm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S|JumpAbsolute } },
-  { "call", 1, 0xff, 0x2, Cpu64,
-    Modrm|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_xSuf|NoRex64,
-    { Reg16|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S|JumpAbsolute } },
-  { "call", 2, 0x9a, None, CpuNo64,
-    JumpInterSegment|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm16,
-      Imm16|Imm32 } },
-  { "call", 1, 0xff, 0x3, 0,
-    Modrm|DefaultSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|JumpAbsolute } },
-  { "lcall", 2, 0x9a, None, CpuNo64,
-    JumpInterSegment|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm16,
-      Imm16|Imm32 } },
-  { "lcall", 1, 0xff, 0x3, 0,
-    Modrm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|JumpAbsolute } },
-  { "jmp", 1, 0xeb, None, 0,
-    Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "jmp", 1, 0xff, 0x4, CpuNo64,
-    Modrm|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S|JumpAbsolute } },
-  { "jmp", 1, 0xff, 0x4, Cpu64,
-    Modrm|No_bSuf|No_lSuf|No_sSuf|No_xSuf|NoRex64,
-    { Reg16|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S|JumpAbsolute } },
-  { "jmp", 2, 0xea, None, CpuNo64,
-    JumpInterSegment|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm16,
-      Imm16|Imm32 } },
-  { "jmp", 1, 0xff, 0x5, 0,
-    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|JumpAbsolute } },
-  { "ljmp", 2, 0xea, None, CpuNo64,
-    JumpInterSegment|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm16,
-      Imm16|Imm32 } },
-  { "ljmp", 1, 0xff, 0x5, 0,
-    Modrm|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|JumpAbsolute } },
-  { "ret", 0, 0xc3, None, CpuNo64,
-    DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "ret", 1, 0xc2, None, CpuNo64,
-    DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm16 } },
-  { "ret", 0, 0xc3, None, Cpu64,
-    DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_xSuf|NoRex64,
-    { 0 } },
-  { "ret", 1, 0xc2, None, Cpu64,
-    DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_xSuf|NoRex64,
-    { Imm16 } },
-  { "lret", 0, 0xcb, None, 0,
-    DefaultSize|No_bSuf|No_sSuf|No_xSuf,
-    { 0 } },
-  { "lret", 1, 0xca, None, 0,
-    DefaultSize|No_bSuf|No_sSuf|No_xSuf,
-    { Imm16 } },
-  { "enter", 2, 0xc8, None, Cpu186|CpuNo64,
-    DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm16,
-      Imm8 } },
-  { "enter", 2, 0xc8, None, Cpu64,
-    DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_xSuf|NoRex64,
-    { Imm16,
-      Imm8 } },
-  { "leave", 0, 0xc9, None, Cpu186|CpuNo64,
-    DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "leave", 0, 0xc9, None, Cpu64,
-    DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_xSuf|NoRex64,
-    { 0 } },
-  { "jo", 1, 0x70, None, 0,
-    Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "jno", 1, 0x71, None, 0,
-    Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "jb", 1, 0x72, None, 0,
-    Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "jc", 1, 0x72, None, 0,
-    Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "jnae", 1, 0x72, None, 0,
-    Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "jnb", 1, 0x73, None, 0,
-    Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "jnc", 1, 0x73, None, 0,
-    Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "jae", 1, 0x73, None, 0,
-    Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "je", 1, 0x74, None, 0,
-    Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "jz", 1, 0x74, None, 0,
-    Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "jne", 1, 0x75, None, 0,
-    Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "jnz", 1, 0x75, None, 0,
-    Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "jbe", 1, 0x76, None, 0,
-    Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "jna", 1, 0x76, None, 0,
-    Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "jnbe", 1, 0x77, None, 0,
-    Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "ja", 1, 0x77, None, 0,
-    Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "js", 1, 0x78, None, 0,
-    Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "jns", 1, 0x79, None, 0,
-    Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "jp", 1, 0x7a, None, 0,
-    Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "jpe", 1, 0x7a, None, 0,
-    Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "jnp", 1, 0x7b, None, 0,
-    Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "jpo", 1, 0x7b, None, 0,
-    Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "jl", 1, 0x7c, None, 0,
-    Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "jnge", 1, 0x7c, None, 0,
-    Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "jnl", 1, 0x7d, None, 0,
-    Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "jge", 1, 0x7d, None, 0,
-    Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "jle", 1, 0x7e, None, 0,
-    Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "jng", 1, 0x7e, None, 0,
-    Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "jnle", 1, 0x7f, None, 0,
-    Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "jg", 1, 0x7f, None, 0,
-    Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "jcxz", 1, 0xe3, None, CpuNo64,
-    JumpByte|Size16|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "jecxz", 1, 0xe3, None, CpuNo64,
-    JumpByte|Size32|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "jecxz", 1, 0x67e3, None, Cpu64,
-    JumpByte|Size32|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "jrcxz", 1, 0xe3, None, Cpu64,
-    JumpByte|Size64|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|NoRex64,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "loop", 1, 0xe2, None, CpuNo64,
-    JumpByte|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "loop", 1, 0xe2, None, Cpu64,
-    JumpByte|No_bSuf|No_wSuf|No_sSuf|No_xSuf|NoRex64,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "loopz", 1, 0xe1, None, CpuNo64,
-    JumpByte|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "loopz", 1, 0xe1, None, Cpu64,
-    JumpByte|No_bSuf|No_wSuf|No_sSuf|No_xSuf|NoRex64,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "loope", 1, 0xe1, None, CpuNo64,
-    JumpByte|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "loope", 1, 0xe1, None, Cpu64,
-    JumpByte|No_bSuf|No_wSuf|No_sSuf|No_xSuf|NoRex64,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "loopnz", 1, 0xe0, None, CpuNo64,
-    JumpByte|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "loopnz", 1, 0xe0, None, Cpu64,
-    JumpByte|No_bSuf|No_wSuf|No_sSuf|No_xSuf|NoRex64,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "loopne", 1, 0xe0, None, CpuNo64,
-    JumpByte|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "loopne", 1, 0xe0, None, Cpu64,
-    JumpByte|No_bSuf|No_wSuf|No_sSuf|No_xSuf|NoRex64,
-    { Disp8|Disp16|Disp32|Disp32S|Disp64 } },
-  { "seto", 1, 0xf90, 0x0, Cpu386,
-    Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "setno", 1, 0xf91, 0x0, Cpu386,
-    Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "setb", 1, 0xf92, 0x0, Cpu386,
-    Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "setc", 1, 0xf92, 0x0, Cpu386,
-    Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "setnae", 1, 0xf92, 0x0, Cpu386,
-    Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "setnb", 1, 0xf93, 0x0, Cpu386,
-    Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "setnc", 1, 0xf93, 0x0, Cpu386,
-    Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "setae", 1, 0xf93, 0x0, Cpu386,
-    Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "sete", 1, 0xf94, 0x0, Cpu386,
-    Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "setz", 1, 0xf94, 0x0, Cpu386,
-    Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "setne", 1, 0xf95, 0x0, Cpu386,
-    Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "setnz", 1, 0xf95, 0x0, Cpu386,
-    Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "setbe", 1, 0xf96, 0x0, Cpu386,
-    Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "setna", 1, 0xf96, 0x0, Cpu386,
-    Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "setnbe", 1, 0xf97, 0x0, Cpu386,
-    Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "seta", 1, 0xf97, 0x0, Cpu386,
-    Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "sets", 1, 0xf98, 0x0, Cpu386,
-    Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "setns", 1, 0xf99, 0x0, Cpu386,
-    Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "setp", 1, 0xf9a, 0x0, Cpu386,
-    Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "setpe", 1, 0xf9a, 0x0, Cpu386,
-    Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "setnp", 1, 0xf9b, 0x0, Cpu386,
-    Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "setpo", 1, 0xf9b, 0x0, Cpu386,
-    Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "setl", 1, 0xf9c, 0x0, Cpu386,
-    Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "setnge", 1, 0xf9c, 0x0, Cpu386,
-    Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "setnl", 1, 0xf9d, 0x0, Cpu386,
-    Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "setge", 1, 0xf9d, 0x0, Cpu386,
-    Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "setle", 1, 0xf9e, 0x0, Cpu386,
-    Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "setng", 1, 0xf9e, 0x0, Cpu386,
-    Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "setnle", 1, 0xf9f, 0x0, Cpu386,
-    Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "setg", 1, 0xf9f, 0x0, Cpu386,
-    Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "cmps", 0, 0xa6, None, 0,
-    W|No_sSuf|No_xSuf|IsString,
-    { 0 } },
-  { "cmps", 2, 0xa6, None, 0,
-    W|No_sSuf|No_xSuf|IsString,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|EsSeg,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "scmp", 0, 0xa6, None, 0,
-    W|No_sSuf|No_xSuf|IsString,
-    { 0 } },
-  { "scmp", 2, 0xa6, None, 0,
-    W|No_sSuf|No_xSuf|IsString,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|EsSeg,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "ins", 0, 0x6c, None, Cpu186,
-    W|No_sSuf|No_qSuf|No_xSuf|IsString,
-    { 0 } },
-  { "ins", 2, 0x6c, None, Cpu186,
-    W|No_sSuf|No_qSuf|No_xSuf|IsString,
-    { InOutPortReg,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|EsSeg } },
-  { "outs", 0, 0x6e, None, Cpu186,
-    W|No_sSuf|No_qSuf|No_xSuf|IsString,
-    { 0 } },
-  { "outs", 2, 0x6e, None, Cpu186,
-    W|No_sSuf|No_qSuf|No_xSuf|IsString,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      InOutPortReg } },
-  { "lods", 0, 0xac, None, 0,
-    W|No_sSuf|No_xSuf|IsString,
-    { 0 } },
-  { "lods", 1, 0xac, None, 0,
-    W|No_sSuf|No_xSuf|IsString,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "lods", 2, 0xac, None, 0,
-    W|No_sSuf|No_xSuf|IsString,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Acc } },
-  { "slod", 0, 0xac, None, 0,
-    W|No_sSuf|No_xSuf|IsString,
-    { 0 } },
-  { "slod", 1, 0xac, None, 0,
-    W|No_sSuf|No_xSuf|IsString,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "slod", 2, 0xac, None, 0,
-    W|No_sSuf|No_xSuf|IsString,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Acc } },
-  { "movs", 0, 0xa4, None, 0,
-    W|No_sSuf|No_xSuf|IsString,
-    { 0 } },
-  { "movs", 2, 0xa4, None, 0,
-    W|No_sSuf|No_xSuf|IsString,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|EsSeg } },
-  { "smov", 0, 0xa4, None, 0,
-    W|No_sSuf|No_xSuf|IsString,
-    { 0 } },
-  { "smov", 2, 0xa4, None, 0,
-    W|No_sSuf|No_xSuf|IsString,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|EsSeg } },
-  { "scas", 0, 0xae, None, 0,
-    W|No_sSuf|No_xSuf|IsString,
-    { 0 } },
-  { "scas", 1, 0xae, None, 0,
-    W|No_sSuf|No_xSuf|IsString,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|EsSeg } },
-  { "scas", 2, 0xae, None, 0,
-    W|No_sSuf|No_xSuf|IsString,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|EsSeg,
-      Acc } },
-  { "ssca", 0, 0xae, None, 0,
-    W|No_sSuf|No_xSuf|IsString,
-    { 0 } },
-  { "ssca", 1, 0xae, None, 0,
-    W|No_sSuf|No_xSuf|IsString,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|EsSeg } },
-  { "ssca", 2, 0xae, None, 0,
-    W|No_sSuf|No_xSuf|IsString,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|EsSeg,
-      Acc } },
-  { "stos", 0, 0xaa, None, 0,
-    W|No_sSuf|No_xSuf|IsString,
-    { 0 } },
-  { "stos", 1, 0xaa, None, 0,
-    W|No_sSuf|No_xSuf|IsString,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|EsSeg } },
-  { "stos", 2, 0xaa, None, 0,
-    W|No_sSuf|No_xSuf|IsString,
-    { Acc,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|EsSeg } },
-  { "ssto", 0, 0xaa, None, 0,
-    W|No_sSuf|No_xSuf|IsString,
-    { 0 } },
-  { "ssto", 1, 0xaa, None, 0,
-    W|No_sSuf|No_xSuf|IsString,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|EsSeg } },
-  { "ssto", 2, 0xaa, None, 0,
-    W|No_sSuf|No_xSuf|IsString,
-    { Acc,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|EsSeg } },
-  { "xlat", 0, 0xd7, None, 0,
-    No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsString,
-    { 0 } },
-  { "xlat", 1, 0xd7, None, 0,
-    No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsString,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "bsf", 2, 0xfbc, None, Cpu386,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "bsr", 2, 0xfbd, None, Cpu386,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "bt", 2, 0xfa3, None, Cpu386,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64,
-      Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "bt", 2, 0xfba, 0x4, Cpu386,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Imm8,
-      Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "btc", 2, 0xfbb, None, Cpu386,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64,
-      Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "btc", 2, 0xfba, 0x7, Cpu386,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Imm8,
-      Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "btr", 2, 0xfb3, None, Cpu386,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64,
-      Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "btr", 2, 0xfba, 0x6, Cpu386,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Imm8,
-      Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "bts", 2, 0xfab, None, Cpu386,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64,
-      Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "bts", 2, 0xfba, 0x5, Cpu386,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Imm8,
-      Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "int", 1, 0xcd, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8 } },
-  { "int3", 0, 0xcc, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "into", 0, 0xce, None, CpuNo64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "iret", 0, 0xcf, None, 0,
-    DefaultSize|No_bSuf|No_sSuf|No_xSuf,
-    { 0 } },
-  { "rsm", 0, 0xfaa, None, Cpu386,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "bound", 2, 0x62, None, Cpu186|CpuNo64,
-    Modrm|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg16|Reg32|Reg64,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "hlt", 0, 0xf4, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "nop", 1, 0xf1f, 0x0, Cpu686,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "nop", 0, 0x90, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "arpl", 2, 0x63, None, Cpu286|CpuNo64,
-    Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg16,
-      Reg16|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "lar", 2, 0xf02, None, Cpu286,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "lgdt", 1, 0xf01, 0x2, Cpu286|CpuNo64,
-    Modrm|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "lgdt", 1, 0xf01, 0x2, Cpu64,
-    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf|NoRex64,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "lidt", 1, 0xf01, 0x3, Cpu286|CpuNo64,
-    Modrm|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "lidt", 1, 0xf01, 0x3, Cpu64,
-    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf|NoRex64,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "lldt", 1, 0xf00, 0x2, Cpu286,
-    Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg16|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "lmsw", 1, 0xf01, 0x6, Cpu286,
-    Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg16|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "lsl", 2, 0xf03, None, Cpu286,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "ltr", 1, 0xf00, 0x3, Cpu286,
-    Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg16|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "sgdt", 1, 0xf01, 0x0, Cpu286|CpuNo64,
-    Modrm|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "sgdt", 1, 0xf01, 0x0, Cpu64,
-    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf|NoRex64,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "sidt", 1, 0xf01, 0x1, Cpu286|CpuNo64,
-    Modrm|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "sidt", 1, 0xf01, 0x1, Cpu64,
-    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf|NoRex64,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "sldt", 1, 0xf00, 0x0, Cpu286,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64 } },
-  { "sldt", 1, 0xf00, 0x0, Cpu286,
-    Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "smsw", 1, 0xf01, 0x4, Cpu286,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64 } },
-  { "smsw", 1, 0xf01, 0x4, Cpu286,
-    Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "str", 1, 0xf00, 0x1, Cpu286,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64 } },
-  { "str", 1, 0xf00, 0x1, Cpu286,
-    Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "verr", 1, 0xf00, 0x4, Cpu286,
-    Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg16|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "verw", 1, 0xf00, 0x5, Cpu286,
-    Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg16|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fld", 1, 0xd9c0, None, 0,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg } },
-  { "fld", 1, 0xd9, 0x0, 0,
-    Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fld", 1, 0xd9c0, None, 0,
-    ShortForm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_xSuf|Ugh,
-    { FloatReg } },
-  { "fld", 1, 0xdb, 0x5, 0,
-    Modrm|FloatMF|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fild", 1, 0xdf, 0x0, 0,
-    Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fild", 1, 0xdf, 0x5, 0,
-    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf|NoRex64,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fildll", 1, 0xdf, 0x5, 0,
-    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fldt", 1, 0xdb, 0x5, 0,
-    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fbld", 1, 0xdf, 0x4, 0,
-    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fst", 1, 0xddd0, None, 0,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg } },
-  { "fst", 1, 0xd9, 0x2, 0,
-    Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fst", 1, 0xddd0, None, 0,
-    ShortForm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_xSuf|Ugh,
-    { FloatReg } },
-  { "fist", 1, 0xdf, 0x2, 0,
-    Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fstp", 1, 0xddd8, None, 0,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg } },
-  { "fstp", 1, 0xd9, 0x3, 0,
-    Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fstp", 1, 0xddd8, None, 0,
-    ShortForm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_xSuf|Ugh,
-    { FloatReg } },
-  { "fstp", 1, 0xdb, 0x7, 0,
-    Modrm|FloatMF|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fistp", 1, 0xdf, 0x3, 0,
-    Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fistp", 1, 0xdf, 0x7, 0,
-    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf|NoRex64,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fistpll", 1, 0xdf, 0x7, 0,
-    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fstpt", 1, 0xdb, 0x7, 0,
-    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fbstp", 1, 0xdf, 0x6, 0,
-    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fxch", 1, 0xd9c8, None, 0,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg } },
-  { "fxch", 0, 0xd9c9, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fcom", 1, 0xd8d0, None, 0,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg } },
-  { "fcom", 0, 0xd8d1, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fcom", 1, 0xd8, 0x2, 0,
-    Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fcom", 1, 0xd8d0, None, 0,
-    ShortForm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_xSuf|Ugh,
-    { FloatReg } },
-  { "ficom", 1, 0xde, 0x2, 0,
-    Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fcomp", 1, 0xd8d8, None, 0,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg } },
-  { "fcomp", 0, 0xd8d9, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fcomp", 1, 0xd8, 0x3, 0,
-    Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fcomp", 1, 0xd8d8, None, 0,
-    ShortForm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_xSuf|Ugh,
-    { FloatReg } },
-  { "ficomp", 1, 0xde, 0x3, 0,
-    Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fcompp", 0, 0xded9, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fucom", 1, 0xdde0, None, Cpu286,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg } },
-  { "fucom", 0, 0xdde1, None, Cpu286,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fucomp", 1, 0xdde8, None, Cpu286,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg } },
-  { "fucomp", 0, 0xdde9, None, Cpu286,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fucompp", 0, 0xdae9, None, Cpu286,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "ftst", 0, 0xd9e4, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fxam", 0, 0xd9e5, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fld1", 0, 0xd9e8, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fldl2t", 0, 0xd9e9, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fldl2e", 0, 0xd9ea, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fldpi", 0, 0xd9eb, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fldlg2", 0, 0xd9ec, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fldln2", 0, 0xd9ed, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fldz", 0, 0xd9ee, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fadd", 2, 0xd8c0, None, 0,
-    ShortForm|FloatD|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg,
-      FloatAcc } },
-  { "fadd", 1, 0xd8c0, None, 0,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg } },
+  { "mov", 2, 0xa0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+  { "mov", 2, 0xa0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+  { "mov", 2, 0x88, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "mov", 2, 0xb0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "mov", 2, 0xc6, 0x0,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "mov", 2, 0xb0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "mov", 2, 0x8c, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } } } },
+  { "mov", 2, 0x8c, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "mov", 2, 0x8c, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } } } },
+  { "mov", 2, 0x8c, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "mov", 2, 0x8e, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "mov", 2, 0x8e, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "mov", 2, 0x8e, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } } } },
+  { "mov", 2, 0x8e, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } } } },
+  { "mov", 2, 0xf20, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } } } },
+  { "mov", 2, 0xf20, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } } } },
+  { "mov", 2, 0xf21, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } } } },
+  { "mov", 2, 0xf21, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } } } },
+  { "mov", 2, 0xf24, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } } } },
+  { "movabs", 2, 0xa0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+  { "movabs", 2, 0xb0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movsbl", 2, 0xfbe, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movsbw", 2, 0xfbe, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movswl", 2, 0xfbf, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movsbq", 2, 0xfbe, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movswq", 2, 0xfbf, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movslq", 2, 0x63, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movsx", 2, 0xfbe, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movsx", 2, 0xfbf, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movsx", 2, 0x63, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movzb", 2, 0xfb6, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movzbl", 2, 0xfb6, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movzbw", 2, 0xfb6, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movzwl", 2, 0xfb7, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movzbq", 2, 0xfb6, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movzwq", 2, 0xfb7, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movzx", 2, 0xfb6, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movzx", 2, 0xfb7, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "push", 1, 0x50, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "push", 1, 0xff, 0x6,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "push", 1, 0x6a, None,
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "push", 1, 0x68, None,
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "push", 1, 0x6, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "push", 1, 0xfa0, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } } } },
+  { "push", 1, 0x50, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
+      0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "push", 1, 0xff, 0x6,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
+      0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "push", 1, 0x6a, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
+      0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "push", 1, 0x68, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
+      0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "push", 1, 0xfa0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
+      0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } } } },
+  { "pusha", 0, 0x60, None,
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "pop", 1, 0x58, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "pop", 1, 0x8f, 0x0,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "pop", 1, 0x7, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "pop", 1, 0xfa1, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } } } },
+  { "pop", 1, 0x58, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
+      0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "pop", 1, 0x8f, 0x0,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
+      0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "pop", 1, 0xfa1, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
+      0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } } } },
+  { "popa", 0, 0x61, None,
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "xchg", 2, 0x90, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+  { "xchg", 2, 0x90, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "xchg", 2, 0x86, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "xchg", 2, 0x86, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "in", 2, 0xe4, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+  { "in", 2, 0xec, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+  { "in", 1, 0xe4, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "in", 1, 0xec, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "out", 2, 0xe6, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "out", 2, 0xee, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "out", 1, 0xe6, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "out", 1, 0xee, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "lea", 2, 0x8d, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "lds", 2, 0xc5, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "les", 2, 0xc4, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "lfs", 2, 0xfb4, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "lgs", 2, 0xfb5, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "lss", 2, 0xfb2, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "clc", 0, 0xf8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cld", 0, 0xfc, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cli", 0, 0xfa, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "clts", 0, 0xf06, None,
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmc", 0, 0xf5, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "lahf", 0, 0x9f, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "sahf", 0, 0x9e, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "pushf", 0, 0x9c, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "pushf", 0, 0x9c, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
+      0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "popf", 0, 0x9d, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "popf", 0, 0x9d, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
+      0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "stc", 0, 0xf9, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "std", 0, 0xfd, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "sti", 0, 0xfb, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "add", 2, 0x0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "add", 2, 0x83, 0x0,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "add", 2, 0x4, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+  { "add", 2, 0x80, 0x0,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "inc", 1, 0x40, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "inc", 1, 0xfe, 0x0,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "sub", 2, 0x28, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "sub", 2, 0x83, 0x5,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "sub", 2, 0x2c, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+  { "sub", 2, 0x80, 0x5,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "dec", 1, 0x48, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "dec", 1, 0xfe, 0x1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "sbb", 2, 0x18, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "sbb", 2, 0x83, 0x3,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "sbb", 2, 0x1c, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+  { "sbb", 2, 0x80, 0x3,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmp", 2, 0x38, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmp", 2, 0x83, 0x7,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmp", 2, 0x3c, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+  { "cmp", 2, 0x80, 0x7,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "test", 2, 0x84, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "test", 2, 0x84, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "test", 2, 0xa8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+  { "test", 2, 0xf6, 0x0,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "and", 2, 0x20, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "and", 2, 0x83, 0x4,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "and", 2, 0x24, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+  { "and", 2, 0x80, 0x4,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "or", 2, 0x8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "or", 2, 0x83, 0x1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "or", 2, 0xc, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+  { "or", 2, 0x80, 0x1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "xor", 2, 0x30, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "xor", 2, 0x83, 0x6,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "xor", 2, 0x34, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+  { "xor", 2, 0x80, 0x6,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "clr", 1, 0x30, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 1, 0, 0, 0, 0, 0 },
+    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "adc", 2, 0x10, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "adc", 2, 0x83, 0x2,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "adc", 2, 0x14, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+  { "adc", 2, 0x80, 0x2,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "neg", 1, 0xf6, 0x3,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "not", 1, 0xf6, 0x2,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "aaa", 0, 0x37, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "aas", 0, 0x3f, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "daa", 0, 0x27, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "das", 0, 0x2f, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "aad", 0, 0xd50a, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "aad", 1, 0xd5, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "aam", 0, 0xd40a, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "aam", 1, 0xd4, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cbw", 0, 0x98, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cdqe", 0, 0x98, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cwde", 0, 0x98, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cwd", 0, 0x99, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cdq", 0, 0x99, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cqo", 0, 0x99, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cbtw", 0, 0x98, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cltq", 0, 0x98, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cwtl", 0, 0x98, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cwtd", 0, 0x99, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cltd", 0, 0x99, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cqto", 0, 0x99, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "mul", 1, 0xf6, 0x4,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "imul", 1, 0xf6, 0x5,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "imul", 2, 0xfaf, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "imul", 3, 0x6b, None,
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "imul", 3, 0x69, None,
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "imul", 2, 0x6b, None,
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 1, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "imul", 2, 0x69, None,
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 1, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "div", 1, 0xf6, 0x6,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "div", 2, 0xf6, 0x6,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+  { "idiv", 1, 0xf6, 0x7,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "idiv", 2, 0xf6, 0x7,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+  { "rol", 2, 0xd0, 0x0,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rol", 2, 0xc0, 0x0,
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rol", 2, 0xd2, 0x0,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rol", 1, 0xd0, 0x0,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "ror", 2, 0xd0, 0x1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "ror", 2, 0xc0, 0x1,
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "ror", 2, 0xd2, 0x1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "ror", 1, 0xd0, 0x1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rcl", 2, 0xd0, 0x2,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rcl", 2, 0xc0, 0x2,
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rcl", 2, 0xd2, 0x2,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rcl", 1, 0xd0, 0x2,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rcr", 2, 0xd0, 0x3,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rcr", 2, 0xc0, 0x3,
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rcr", 2, 0xd2, 0x3,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rcr", 1, 0xd0, 0x3,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "sal", 2, 0xd0, 0x4,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "sal", 2, 0xc0, 0x4,
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "sal", 2, 0xd2, 0x4,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "sal", 1, 0xd0, 0x4,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "shl", 2, 0xd0, 0x4,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "shl", 2, 0xc0, 0x4,
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "shl", 2, 0xd2, 0x4,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "shl", 1, 0xd0, 0x4,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "shr", 2, 0xd0, 0x5,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "shr", 2, 0xc0, 0x5,
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "shr", 2, 0xd2, 0x5,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "shr", 1, 0xd0, 0x5,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "sar", 2, 0xd0, 0x7,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "sar", 2, 0xc0, 0x7,
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "sar", 2, 0xd2, 0x7,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "sar", 1, 0xd0, 0x7,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "shld", 3, 0xfa4, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "shld", 3, 0xfa5, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "shld", 2, 0xfa5, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "shrd", 3, 0xfac, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "shrd", 3, 0xfad, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "shrd", 2, 0xfad, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "call", 1, 0xe8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "call", 1, 0xe8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
+      0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "call", 1, 0xff, 0x2,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } } } },
+  { "call", 1, 0xff, 0x2,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
+      0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } } } },
+  { "call", 2, 0x9a, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "call", 1, 0xff, 0x3,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 
+      1, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } } } },
+  { "lcall", 2, 0x9a, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "lcall", 1, 0xff, 0x3,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } } } },
+  { "jmp", 1, 0xeb, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "jmp", 1, 0xff, 0x4,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } } } },
+  { "jmp", 1, 0xff, 0x4,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 
+      0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } } } },
+  { "jmp", 2, 0xea, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "jmp", 1, 0xff, 0x5,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } } } },
+  { "ljmp", 2, 0xea, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "ljmp", 1, 0xff, 0x5,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } } } },
+  { "ret", 0, 0xc3, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "ret", 1, 0xc2, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "ret", 0, 0xc3, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
+      0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "ret", 1, 0xc2, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
+      0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "lret", 0, 0xcb, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "lret", 1, 0xca, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "enter", 2, 0xc8, None,
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "enter", 2, 0xc8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
+      0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "leave", 0, 0xc9, None,
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "leave", 0, 0xc9, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
+      0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "jo", 1, 0x70, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "jno", 1, 0x71, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "jb", 1, 0x72, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "jc", 1, 0x72, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "jnae", 1, 0x72, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "jnb", 1, 0x73, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "jnc", 1, 0x73, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "jae", 1, 0x73, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "je", 1, 0x74, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "jz", 1, 0x74, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "jne", 1, 0x75, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "jnz", 1, 0x75, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "jbe", 1, 0x76, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "jna", 1, 0x76, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "jnbe", 1, 0x77, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "ja", 1, 0x77, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "js", 1, 0x78, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "jns", 1, 0x79, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "jp", 1, 0x7a, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "jpe", 1, 0x7a, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "jnp", 1, 0x7b, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "jpo", 1, 0x7b, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "jl", 1, 0x7c, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "jnge", 1, 0x7c, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "jnl", 1, 0x7d, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "jge", 1, 0x7d, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "jle", 1, 0x7e, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "jng", 1, 0x7e, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "jnle", 1, 0x7f, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "jg", 1, 0x7f, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "jcxz", 1, 0xe3, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "jecxz", 1, 0xe3, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "jecxz", 1, 0x67e3, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "jrcxz", 1, 0xe3, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "loop", 1, 0xe2, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "loop", 1, 0xe2, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "loopz", 1, 0xe1, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "loopz", 1, 0xe1, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "loope", 1, 0xe1, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "loope", 1, 0xe1, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "loopnz", 1, 0xe0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "loopnz", 1, 0xe0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "loopne", 1, 0xe0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "loopne", 1, 0xe0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "seto", 1, 0xf90, 0x0,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "setno", 1, 0xf91, 0x0,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "setb", 1, 0xf92, 0x0,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "setc", 1, 0xf92, 0x0,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "setnae", 1, 0xf92, 0x0,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "setnb", 1, 0xf93, 0x0,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "setnc", 1, 0xf93, 0x0,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "setae", 1, 0xf93, 0x0,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "sete", 1, 0xf94, 0x0,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "setz", 1, 0xf94, 0x0,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "setne", 1, 0xf95, 0x0,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "setnz", 1, 0xf95, 0x0,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "setbe", 1, 0xf96, 0x0,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "setna", 1, 0xf96, 0x0,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "setnbe", 1, 0xf97, 0x0,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "seta", 1, 0xf97, 0x0,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "sets", 1, 0xf98, 0x0,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "setns", 1, 0xf99, 0x0,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "setp", 1, 0xf9a, 0x0,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "setpe", 1, 0xf9a, 0x0,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "setnp", 1, 0xf9b, 0x0,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "setpo", 1, 0xf9b, 0x0,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "setl", 1, 0xf9c, 0x0,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "setnge", 1, 0xf9c, 0x0,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "setnl", 1, 0xf9d, 0x0,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "setge", 1, 0xf9d, 0x0,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "setle", 1, 0xf9e, 0x0,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "setng", 1, 0xf9e, 0x0,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "setnle", 1, 0xf9f, 0x0,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "setg", 1, 0xf9f, 0x0,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmps", 0, 0xa6, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmps", 2, 0xa6, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "scmp", 0, 0xa6, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "scmp", 2, 0xa6, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "ins", 0, 0x6c, None,
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      1, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "ins", 2, 0x6c, None,
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      1, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } } } },
+  { "outs", 0, 0x6e, None,
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      1, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "outs", 2, 0x6e, None,
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      1, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "lods", 0, 0xac, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "lods", 1, 0xac, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "lods", 2, 0xac, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+  { "slod", 0, 0xac, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "slod", 1, 0xac, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "slod", 2, 0xac, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+  { "movs", 0, 0xa4, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movs", 2, 0xa4, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } } } },
+  { "smov", 0, 0xa4, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "smov", 2, 0xa4, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } } } },
+  { "scas", 0, 0xae, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "scas", 1, 0xae, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } } } },
+  { "scas", 2, 0xae, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+  { "ssca", 0, 0xae, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "ssca", 1, 0xae, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } } } },
+  { "ssca", 2, 0xae, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+  { "stos", 0, 0xaa, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "stos", 1, 0xaa, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } } } },
+  { "stos", 2, 0xaa, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } } } },
+  { "ssto", 0, 0xaa, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "ssto", 1, 0xaa, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } } } },
+  { "ssto", 2, 0xaa, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } } } },
+  { "xlat", 0, 0xd7, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "xlat", 1, 0xd7, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "bsf", 2, 0xfbc, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "bsr", 2, 0xfbd, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "bt", 2, 0xfa3, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "bt", 2, 0xfba, 0x4,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "btc", 2, 0xfbb, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "btc", 2, 0xfba, 0x7,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "btr", 2, 0xfb3, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "btr", 2, 0xfba, 0x6,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "bts", 2, 0xfab, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "bts", 2, 0xfba, 0x5,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "int", 1, 0xcd, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "int3", 0, 0xcc, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "into", 0, 0xce, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "iret", 0, 0xcf, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rsm", 0, 0xfaa, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "bound", 2, 0x62, None,
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "hlt", 0, 0xf4, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "nop", 1, 0xf1f, 0x0,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "nop", 0, 0x90, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "arpl", 2, 0x63, None,
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "lar", 2, 0xf02, None,
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "lgdt", 1, 0xf01, 0x2,
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "lgdt", 1, 0xf01, 0x2,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "lidt", 1, 0xf01, 0x3,
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "lidt", 1, 0xf01, 0x3,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "lldt", 1, 0xf00, 0x2,
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "lmsw", 1, 0xf01, 0x6,
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "lsl", 2, 0xf03, None,
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "ltr", 1, 0xf00, 0x3,
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "sgdt", 1, 0xf01, 0x0,
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "sgdt", 1, 0xf01, 0x0,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "sidt", 1, 0xf01, 0x1,
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "sidt", 1, 0xf01, 0x1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "sldt", 1, 0xf00, 0x0,
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "sldt", 1, 0xf00, 0x0,
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "smsw", 1, 0xf01, 0x4,
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "smsw", 1, 0xf01, 0x4,
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "str", 1, 0xf00, 0x1,
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "str", 1, 0xf00, 0x1,
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "verr", 1, 0xf00, 0x4,
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "verw", 1, 0xf00, 0x5,
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fld", 1, 0xd9c0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fld", 1, 0xd9, 0x0,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fld", 1, 0xd9c0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 1 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fld", 1, 0xdb, 0x5,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fild", 1, 0xdf, 0x0,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fild", 1, 0xdf, 0x5,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fildll", 1, 0xdf, 0x5,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fldt", 1, 0xdb, 0x5,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fbld", 1, 0xdf, 0x4,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fst", 1, 0xddd0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fst", 1, 0xd9, 0x2,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fst", 1, 0xddd0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 1 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fist", 1, 0xdf, 0x2,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fstp", 1, 0xddd8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fstp", 1, 0xd9, 0x3,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fstp", 1, 0xddd8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 1 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fstp", 1, 0xdb, 0x7,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fistp", 1, 0xdf, 0x3,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fistp", 1, 0xdf, 0x7,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fistpll", 1, 0xdf, 0x7,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fstpt", 1, 0xdb, 0x7,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fbstp", 1, 0xdf, 0x6,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fxch", 1, 0xd9c8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fxch", 0, 0xd9c9, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fcom", 1, 0xd8d0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fcom", 0, 0xd8d1, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fcom", 1, 0xd8, 0x2,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fcom", 1, 0xd8d0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 1 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "ficom", 1, 0xde, 0x2,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fcomp", 1, 0xd8d8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fcomp", 0, 0xd8d9, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fcomp", 1, 0xd8, 0x3,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fcomp", 1, 0xd8d8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 1 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "ficomp", 1, 0xde, 0x3,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fcompp", 0, 0xded9, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fucom", 1, 0xdde0, None,
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fucom", 0, 0xdde1, None,
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fucomp", 1, 0xdde8, None,
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fucomp", 0, 0xdde9, None,
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fucompp", 0, 0xdae9, None,
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "ftst", 0, 0xd9e4, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fxam", 0, 0xd9e5, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fld1", 0, 0xd9e8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fldl2t", 0, 0xd9e9, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fldl2e", 0, 0xd9ea, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fldpi", 0, 0xd9eb, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fldlg2", 0, 0xd9ec, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fldln2", 0, 0xd9ed, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fldz", 0, 0xd9ee, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fadd", 2, 0xd8c0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fadd", 1, 0xd8c0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
 #if SYSV386_COMPAT
-  { "fadd", 0, 0xdec1, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|Ugh,
-    { 0 } },
+  { "fadd", 0, 0xdec1, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 1 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
 #endif
-  { "fadd", 1, 0xd8, 0x0, 0,
-    Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fiadd", 1, 0xde, 0x0, 0,
-    Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "faddp", 2, 0xdec0, None, 0,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatAcc,
-      FloatReg } },
-  { "faddp", 1, 0xdec0, None, 0,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg } },
-  { "faddp", 0, 0xdec1, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "faddp", 2, 0xdec0, None, 0,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|Ugh,
-    { FloatReg,
-      FloatAcc } },
-  { "fsub", 1, 0xd8e0, None, 0,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg } },
+  { "fadd", 1, 0xd8, 0x0,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fiadd", 1, 0xde, 0x0,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "faddp", 2, 0xdec0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "faddp", 1, 0xdec0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "faddp", 0, 0xdec1, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "faddp", 2, 0xdec0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 1 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fsub", 1, 0xd8e0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
 #if SYSV386_COMPAT
-  { "fsub", 2, 0xd8e0, None, 0,
-    ShortForm|FloatD|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg,
-      FloatAcc } },
-  { "fsub", 0, 0xdee1, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|Ugh,
-    { 0 } },
+  { "fsub", 2, 0xd8e0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fsub", 0, 0xdee1, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 1 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
 #else
-  { "fsub", 2, 0xd8e0, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf|No_qSuf|ShortForm|FloatD|FloatR,
-    { FloatReg,
-      FloatAcc } },
+  { "fsub", 2, 0xd8e0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
 #endif
-  { "fsub", 1, 0xd8, 0x4, 0,
-    Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fisub", 1, 0xde, 0x4, 0,
-    Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
+  { "fsub", 1, 0xd8, 0x4,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fisub", 1, 0xde, 0x4,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
 #if SYSV386_COMPAT
-  { "fsubp", 2, 0xdee0, None, 0,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatAcc,
-      FloatReg } },
-  { "fsubp", 1, 0xdee0, None, 0,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg } },
-  { "fsubp", 0, 0xdee1, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
+  { "fsubp", 2, 0xdee0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fsubp", 1, 0xdee0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fsubp", 0, 0xdee1, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
 #if OLDGCC_COMPAT
-  { "fsubp", 2, 0xdee0, None, 0,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|Ugh,
-    { FloatReg,
-      FloatAcc } },
+  { "fsubp", 2, 0xdee0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 1 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
 #endif
 #else
-  { "fsubp", 2, 0xdee8, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf|No_qSuf|ShortForm,
-    { FloatAcc,
-      FloatReg } },
-  { "fsubp", 1, 0xdee8, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf|No_qSuf|ShortForm,
-    { FloatReg } },
-  { "fsubp", 0, 0xdee9, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf|No_qSuf,
-    { 0 } },
+  { "fsubp", 2, 0xdee8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fsubp", 1, 0xdee8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fsubp", 0, 0xdee9, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
 #endif
-  { "fsubr", 1, 0xd8e8, None, 0,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg } },
+  { "fsubr", 1, 0xd8e8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
 #if SYSV386_COMPAT
-  { "fsubr", 2, 0xd8e8, None, 0,
-    ShortForm|FloatD|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg,
-      FloatAcc } },
-  { "fsubr", 0, 0xdee9, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|Ugh,
-    { 0 } },
+  { "fsubr", 2, 0xd8e8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fsubr", 0, 0xdee9, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 1 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
 #else
-  { "fsubr", 2, 0xd8e8, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf|No_qSuf|ShortForm|FloatD|FloatR,
-    { FloatReg,
-      FloatAcc } },
+  { "fsubr", 2, 0xd8e8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
 #endif
-  { "fsubr", 1, 0xd8, 0x5, 0,
-    Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fisubr", 1, 0xde, 0x5, 0,
-    Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
+  { "fsubr", 1, 0xd8, 0x5,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fisubr", 1, 0xde, 0x5,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
 #if SYSV386_COMPAT
-  { "fsubrp", 2, 0xdee8, None, 0,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatAcc,
-      FloatReg } },
-  { "fsubrp", 1, 0xdee8, None, 0,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg } },
-  { "fsubrp", 0, 0xdee9, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
+  { "fsubrp", 2, 0xdee8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fsubrp", 1, 0xdee8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fsubrp", 0, 0xdee9, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
 #if OLDGCC_COMPAT
-  { "fsubrp", 2, 0xdee8, None, 0,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|Ugh,
-    { FloatReg,
-      FloatAcc } },
+  { "fsubrp", 2, 0xdee8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 1 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
 #endif
 #else
-  { "fsubrp", 2, 0xdee0, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf|No_qSuf|ShortForm,
-    { FloatAcc,
-      FloatReg } },
-  { "fsubrp", 1, 0xdee0, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf|No_qSuf|ShortForm,
-    { FloatReg } },
-  { "fsubrp", 0, 0xdee1, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf|No_qSuf,
-    { 0 } },
+  { "fsubrp", 2, 0xdee0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fsubrp", 1, 0xdee0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fsubrp", 0, 0xdee1, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
 #endif
-  { "fmul", 2, 0xd8c8, None, 0,
-    ShortForm|FloatD|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg,
-      FloatAcc } },
-  { "fmul", 1, 0xd8c8, None, 0,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg } },
+  { "fmul", 2, 0xd8c8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fmul", 1, 0xd8c8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
 #if SYSV386_COMPAT
-  { "fmul", 0, 0xdec9, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|Ugh,
-    { 0 } },
+  { "fmul", 0, 0xdec9, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 1 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
 #endif
-  { "fmul", 1, 0xd8, 0x1, 0,
-    Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fimul", 1, 0xde, 0x1, 0,
-    Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fmulp", 2, 0xdec8, None, 0,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatAcc,
-      FloatReg } },
-  { "fmulp", 1, 0xdec8, None, 0,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg } },
-  { "fmulp", 0, 0xdec9, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fmulp", 2, 0xdec8, None, 0,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|Ugh,
-    { FloatReg,
-      FloatAcc } },
-  { "fdiv", 1, 0xd8f0, None, 0,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg } },
+  { "fmul", 1, 0xd8, 0x1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fimul", 1, 0xde, 0x1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fmulp", 2, 0xdec8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fmulp", 1, 0xdec8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fmulp", 0, 0xdec9, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fmulp", 2, 0xdec8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 1 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fdiv", 1, 0xd8f0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
 #if SYSV386_COMPAT
-  { "fdiv", 2, 0xd8f0, None, 0,
-    ShortForm|FloatD|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg,
-      FloatAcc } },
-  { "fdiv", 0, 0xdef1, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|Ugh,
-    { 0 } },
+  { "fdiv", 2, 0xd8f0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fdiv", 0, 0xdef1, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 1 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
 #else
-  { "fdiv", 2, 0xd8f0, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf|No_qSuf|ShortForm|FloatD|FloatR,
-    { FloatReg,
-      FloatAcc } },
+  { "fdiv", 2, 0xd8f0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
 #endif
-  { "fdiv", 1, 0xd8, 0x6, 0,
-    Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fidiv", 1, 0xde, 0x6, 0,
-    Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
+  { "fdiv", 1, 0xd8, 0x6,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fidiv", 1, 0xde, 0x6,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
 #if SYSV386_COMPAT
-  { "fdivp", 2, 0xdef0, None, 0,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatAcc,
-      FloatReg } },
-  { "fdivp", 1, 0xdef0, None, 0,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg } },
-  { "fdivp", 0, 0xdef1, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
+  { "fdivp", 2, 0xdef0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fdivp", 1, 0xdef0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fdivp", 0, 0xdef1, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
 #if OLDGCC_COMPAT
-  { "fdivp", 2, 0xdef0, None, 0,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|Ugh,
-    { FloatReg,
-      FloatAcc } },
+  { "fdivp", 2, 0xdef0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 1 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
 #endif
 #else
-  { "fdivp", 2, 0xdef8, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf|No_qSuf|ShortForm,
-    { FloatAcc,
-      FloatReg } },
-  { "fdivp", 1, 0xdef8, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf|No_qSuf|ShortForm,
-    { FloatReg } },
-  { "fdivp", 0, 0xdef9, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf|No_qSuf,
-    { 0 } },
+  { "fdivp", 2, 0xdef8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fdivp", 1, 0xdef8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fdivp", 0, 0xdef9, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
 #endif
-  { "fdivr", 1, 0xd8f8, None, 0,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg } },
+  { "fdivr", 1, 0xd8f8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
 #if SYSV386_COMPAT
-  { "fdivr", 2, 0xd8f8, None, 0,
-    ShortForm|FloatD|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg,
-      FloatAcc } },
-  { "fdivr", 0, 0xdef9, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|Ugh,
-    { 0 } },
+  { "fdivr", 2, 0xd8f8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fdivr", 0, 0xdef9, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 1 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
 #else
-  { "fdivr", 2, 0xd8f8, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf|No_qSuf|ShortForm|FloatD|FloatR,
-    { FloatReg,
-      FloatAcc } },
+  { "fdivr", 2, 0xd8f8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
 #endif
-  { "fdivr", 1, 0xd8, 0x7, 0,
-    Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fidivr", 1, 0xde, 0x7, 0,
-    Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
+  { "fdivr", 1, 0xd8, 0x7,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fidivr", 1, 0xde, 0x7,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
 #if SYSV386_COMPAT
-  { "fdivrp", 2, 0xdef8, None, 0,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatAcc,
-      FloatReg } },
-  { "fdivrp", 1, 0xdef8, None, 0,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg } },
-  { "fdivrp", 0, 0xdef9, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
+  { "fdivrp", 2, 0xdef8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fdivrp", 1, 0xdef8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fdivrp", 0, 0xdef9, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
 #if OLDGCC_COMPAT
-  { "fdivrp", 2, 0xdef8, None, 0,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|Ugh,
-    { FloatReg,
-      FloatAcc } },
+  { "fdivrp", 2, 0xdef8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 1 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
 #endif
 #else
-  { "fdivrp", 2, 0xdef0, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf|No_qSuf|ShortForm,
-    { FloatAcc,
-      FloatReg } },
-  { "fdivrp", 1, 0xdef0, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf|No_qSuf|ShortForm,
-    { FloatReg } },
-  { "fdivrp", 0, 0xdef1, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf|No_qSuf,
-    { 0 } },
+  { "fdivrp", 2, 0xdef0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fdivrp", 1, 0xdef0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fdivrp", 0, 0xdef1, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
 #endif
-  { "f2xm1", 0, 0xd9f0, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fyl2x", 0, 0xd9f1, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fptan", 0, 0xd9f2, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fpatan", 0, 0xd9f3, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fxtract", 0, 0xd9f4, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fprem1", 0, 0xd9f5, None, Cpu286,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fdecstp", 0, 0xd9f6, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fincstp", 0, 0xd9f7, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fprem", 0, 0xd9f8, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fyl2xp1", 0, 0xd9f9, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fsqrt", 0, 0xd9fa, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fsincos", 0, 0xd9fb, None, Cpu286,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "frndint", 0, 0xd9fc, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fscale", 0, 0xd9fd, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fsin", 0, 0xd9fe, None, Cpu286,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fcos", 0, 0xd9ff, None, Cpu286,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fchs", 0, 0xd9e0, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fabs", 0, 0xd9e1, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fninit", 0, 0xdbe3, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "finit", 0, 0xdbe3, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|FWait,
-    { 0 } },
-  { "fldcw", 1, 0xd9, 0x5, 0,
-    Modrm|FloatMF|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fnstcw", 1, 0xd9, 0x7, 0,
-    Modrm|FloatMF|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fstcw", 1, 0xd9, 0x7, 0,
-    Modrm|FloatMF|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|FWait,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fnstsw", 1, 0xdfe0, None, 0,
-    IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Acc } },
-  { "fnstsw", 1, 0xdd, 0x7, 0,
-    Modrm|FloatMF|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fnstsw", 0, 0xdfe0, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fstsw", 1, 0xdfe0, None, 0,
-    IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|FWait,
-    { Acc } },
-  { "fstsw", 1, 0xdd, 0x7, 0,
-    Modrm|FloatMF|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|FWait,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fstsw", 0, 0xdfe0, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|FWait,
-    { 0 } },
-  { "fnclex", 0, 0xdbe2, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fclex", 0, 0xdbe2, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|FWait,
-    { 0 } },
-  { "fnstenv", 1, 0xd9, 0x6, 0,
-    Modrm|DefaultSize|No_bSuf|No_wSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fstenv", 1, 0xd9, 0x6, 0,
-    Modrm|DefaultSize|No_bSuf|No_wSuf|No_qSuf|No_xSuf|FWait,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fldenv", 1, 0xd9, 0x4, 0,
-    Modrm|DefaultSize|No_bSuf|No_wSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fnsave", 1, 0xdd, 0x6, 0,
-    Modrm|DefaultSize|No_bSuf|No_wSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fsave", 1, 0xdd, 0x6, 0,
-    Modrm|DefaultSize|No_bSuf|No_wSuf|No_qSuf|No_xSuf|FWait,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "frstor", 1, 0xdd, 0x4, 0,
-    Modrm|DefaultSize|No_bSuf|No_wSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "ffree", 1, 0xddc0, None, 0,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg } },
-  { "ffreep", 1, 0xdfc0, None, Cpu686,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg } },
-  { "fnop", 0, 0xd9d0, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fwait", 0, 0x9b, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "addr16", 0, 0x67, None, Cpu386|CpuNo64,
-    Size16|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "addr32", 0, 0x67, None, Cpu386,
-    Size32|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "aword", 0, 0x67, None, Cpu386|CpuNo64,
-    Size16|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "adword", 0, 0x67, None, Cpu386,
-    Size32|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "data16", 0, 0x66, None, Cpu386,
-    Size16|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "data32", 0, 0x66, None, Cpu386|CpuNo64,
-    Size32|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "word", 0, 0x66, None, Cpu386,
-    Size16|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "dword", 0, 0x66, None, Cpu386|CpuNo64,
-    Size32|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "lock", 0, 0xf0, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "wait", 0, 0x9b, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "cs", 0, 0x2e, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "ds", 0, 0x3e, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "es", 0, 0x26, None, CpuNo64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "fs", 0, 0x64, None, Cpu386,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "gs", 0, 0x65, None, Cpu386,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "ss", 0, 0x36, None, CpuNo64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "rep", 0, 0xf3, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "repe", 0, 0xf3, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "repz", 0, 0xf3, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "repne", 0, 0xf2, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "repnz", 0, 0xf2, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "ht", 0, 0x3e, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "hnt", 0, 0x2e, None, 0,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "rex", 0, 0x40, None, Cpu64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "rexz", 0, 0x41, None, Cpu64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "rexy", 0, 0x42, None, Cpu64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "rexyz", 0, 0x43, None, Cpu64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "rexx", 0, 0x44, None, Cpu64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "rexxz", 0, 0x45, None, Cpu64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "rexxy", 0, 0x46, None, Cpu64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "rexxyz", 0, 0x47, None, Cpu64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "rex64", 0, 0x48, None, Cpu64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "rex64z", 0, 0x49, None, Cpu64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "rex64y", 0, 0x4a, None, Cpu64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "rex64yz", 0, 0x4b, None, Cpu64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "rex64x", 0, 0x4c, None, Cpu64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "rex64xz", 0, 0x4d, None, Cpu64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "rex64xy", 0, 0x4e, None, Cpu64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "rex64xyz", 0, 0x4f, None, Cpu64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "rex.b", 0, 0x41, None, Cpu64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "rex.x", 0, 0x42, None, Cpu64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "rex.xb", 0, 0x43, None, Cpu64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "rex.r", 0, 0x44, None, Cpu64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "rex.rb", 0, 0x45, None, Cpu64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "rex.rx", 0, 0x46, None, Cpu64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "rex.rxb", 0, 0x47, None, Cpu64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "rex.w", 0, 0x48, None, Cpu64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "rex.wb", 0, 0x49, None, Cpu64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "rex.wx", 0, 0x4a, None, Cpu64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "rex.wxb", 0, 0x4b, None, Cpu64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "rex.wr", 0, 0x4c, None, Cpu64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "rex.wrb", 0, 0x4d, None, Cpu64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "rex.wrx", 0, 0x4e, None, Cpu64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "rex.wrxb", 0, 0x4f, None, Cpu64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsPrefix,
-    { 0 } },
-  { "bswap", 1, 0xfc8, None, Cpu486,
-    ShortForm|No_bSuf|No_wSuf|No_sSuf|No_xSuf,
-    { Reg32|Reg64 } },
-  { "xadd", 2, 0xfc0, None, Cpu486,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Reg8|Reg16|Reg32|Reg64,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "cmpxchg", 2, 0xfb0, None, Cpu486,
-    W|Modrm|No_sSuf|No_xSuf,
-    { Reg8|Reg16|Reg32|Reg64,
-      Reg8|Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "invd", 0, 0xf08, None, Cpu486,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "wbinvd", 0, 0xf09, None, Cpu486,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "invlpg", 1, 0xf01, 0x7, Cpu486,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "cpuid", 0, 0xfa2, None, Cpu486,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "wrmsr", 0, 0xf30, None, Cpu586,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "rdtsc", 0, 0xf31, None, Cpu586,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "rdmsr", 0, 0xf32, None, Cpu586,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "cmpxchg8b", 1, 0xfc7, 0x1, Cpu586,
-    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "sysenter", 0, 0xf34, None, Cpu686,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "sysexit", 0, 0xf35, None, Cpu686,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fxsave", 1, 0xfae, 0x0, Cpu686,
-    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fxrstor", 1, 0xfae, 0x1, Cpu686,
-    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "rdpmc", 0, 0xf33, None, Cpu686,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "ud2", 0, 0xf0b, None, Cpu686,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "ud2a", 0, 0xf0b, None, Cpu686,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "ud2b", 0, 0xfb9, None, Cpu686,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "cmovo", 2, 0xf40, None, Cpu686,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "cmovno", 2, 0xf41, None, Cpu686,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "cmovb", 2, 0xf42, None, Cpu686,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "cmovc", 2, 0xf42, None, Cpu686,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "cmovnae", 2, 0xf42, None, Cpu686,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "cmovae", 2, 0xf43, None, Cpu686,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "cmovnc", 2, 0xf43, None, Cpu686,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "cmovnb", 2, 0xf43, None, Cpu686,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "cmove", 2, 0xf44, None, Cpu686,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "cmovz", 2, 0xf44, None, Cpu686,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "cmovne", 2, 0xf45, None, Cpu686,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "cmovnz", 2, 0xf45, None, Cpu686,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "cmovbe", 2, 0xf46, None, Cpu686,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "cmovna", 2, 0xf46, None, Cpu686,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "cmova", 2, 0xf47, None, Cpu686,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "cmovnbe", 2, 0xf47, None, Cpu686,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "cmovs", 2, 0xf48, None, Cpu686,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "cmovns", 2, 0xf49, None, Cpu686,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "cmovp", 2, 0xf4a, None, Cpu686,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "cmovnp", 2, 0xf4b, None, Cpu686,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "cmovl", 2, 0xf4c, None, Cpu686,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "cmovnge", 2, 0xf4c, None, Cpu686,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "cmovge", 2, 0xf4d, None, Cpu686,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "cmovnl", 2, 0xf4d, None, Cpu686,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "cmovle", 2, 0xf4e, None, Cpu686,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "cmovng", 2, 0xf4e, None, Cpu686,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "cmovg", 2, 0xf4f, None, Cpu686,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "cmovnle", 2, 0xf4f, None, Cpu686,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "fcmovb", 2, 0xdac0, None, Cpu686,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg,
-      FloatAcc } },
-  { "fcmovnae", 2, 0xdac0, None, Cpu686,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg,
-      FloatAcc } },
-  { "fcmove", 2, 0xdac8, None, Cpu686,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg,
-      FloatAcc } },
-  { "fcmovbe", 2, 0xdad0, None, Cpu686,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg,
-      FloatAcc } },
-  { "fcmovna", 2, 0xdad0, None, Cpu686,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg,
-      FloatAcc } },
-  { "fcmovu", 2, 0xdad8, None, Cpu686,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg,
-      FloatAcc } },
-  { "fcmovae", 2, 0xdbc0, None, Cpu686,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg,
-      FloatAcc } },
-  { "fcmovnb", 2, 0xdbc0, None, Cpu686,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg,
-      FloatAcc } },
-  { "fcmovne", 2, 0xdbc8, None, Cpu686,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg,
-      FloatAcc } },
-  { "fcmova", 2, 0xdbd0, None, Cpu686,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg,
-      FloatAcc } },
-  { "fcmovnbe", 2, 0xdbd0, None, Cpu686,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg,
-      FloatAcc } },
-  { "fcmovnu", 2, 0xdbd8, None, Cpu686,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg,
-      FloatAcc } },
-  { "fcomi", 2, 0xdbf0, None, Cpu686,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg,
-      FloatAcc } },
-  { "fcomi", 0, 0xdbf1, None, Cpu686,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fcomi", 1, 0xdbf0, None, Cpu686,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg } },
-  { "fucomi", 2, 0xdbe8, None, Cpu686,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg,
-      FloatAcc } },
-  { "fucomi", 0, 0xdbe9, None, Cpu686,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fucomi", 1, 0xdbe8, None, Cpu686,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg } },
-  { "fcomip", 2, 0xdff0, None, Cpu686,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg,
-      FloatAcc } },
-  { "fcompi", 2, 0xdff0, None, Cpu686,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg,
-      FloatAcc } },
-  { "fcompi", 0, 0xdff1, None, Cpu686,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fcompi", 1, 0xdff0, None, Cpu686,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg } },
-  { "fucomip", 2, 0xdfe8, None, Cpu686,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg,
-      FloatAcc } },
-  { "fucompi", 2, 0xdfe8, None, Cpu686,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg,
-      FloatAcc } },
-  { "fucompi", 0, 0xdfe9, None, Cpu686,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "fucompi", 1, 0xdfe8, None, Cpu686,
-    ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { FloatReg } },
-  { "movnti", 2, 0xfc3, None, CpuP4,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "clflush", 1, 0xfae, 0x7, CpuP4,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "lfence", 0, 0xfae, 0xe8, CpuP4,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { 0 } },
-  { "mfence", 0, 0xfae, 0xf0, CpuP4,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { 0 } },
-  { "pause", 0, 0xf390, None, CpuP4,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "emms", 0, 0xf77, None, CpuMMX,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "movd", 2, 0xf6e, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      RegMMX } },
-  { "movd", 2, 0xf7e, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { RegMMX,
-      Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "movd", 2, 0x660f6e, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      RegXMM } },
-  { "movd", 2, 0x660f7e, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { RegXMM,
-      Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "movq", 2, 0xf6f, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|NoRex64,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "movq", 2, 0xf7f, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|NoRex64,
-    { RegMMX,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX } },
-  { "movq", 2, 0xf30f7e, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|NoRex64,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "movq", 2, 0x660fd6, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|NoRex64,
-    { RegXMM,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM } },
-  { "movq", 2, 0xf6e, None, Cpu64,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      RegMMX } },
-  { "movq", 2, 0xf7e, None, Cpu64,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { RegMMX,
-      Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "movq", 2, 0x660f6e, None, Cpu64,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      RegXMM } },
-  { "movq", 2, 0x660f7e, None, Cpu64,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { RegXMM,
-      Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "movq", 2, 0xa0, None, Cpu64,
-    D|W|Size64|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Disp64,
-      Acc } },
-  { "movq", 2, 0x88, None, Cpu64,
-    D|W|Modrm|Size64|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg64,
-      Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "movq", 2, 0xc6, 0x0, Cpu64,
-    W|Modrm|Size64|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm32S,
-      Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "movq", 2, 0xb0, None, Cpu64,
-    W|ShortForm|Size64|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm64,
-      Reg64 } },
-  { "movq", 2, 0x8c, None, Cpu64,
-    Modrm|Size64|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { SReg2|SReg3,
-      Reg64|RegMem } },
-  { "movq", 2, 0x8e, None, Cpu64,
-    Modrm|Size64|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg64,
-      SReg2|SReg3 } },
-  { "movq", 2, 0xf20, None, Cpu64,
-    D|Modrm|Size64|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|NoRex64,
-    { Control,
-      Reg64|RegMem } },
-  { "movq", 2, 0xf21, None, Cpu64,
-    D|Modrm|Size64|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|NoRex64,
-    { Debug,
-      Reg64|RegMem } },
-  { "packssdw", 2, 0xf6b, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "packssdw", 2, 0x660f6b, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "packsswb", 2, 0xf63, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "packsswb", 2, 0x660f63, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "packuswb", 2, 0xf67, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "packuswb", 2, 0x660f67, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "paddb", 2, 0xffc, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "paddb", 2, 0x660ffc, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "paddw", 2, 0xffd, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "paddw", 2, 0x660ffd, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "paddd", 2, 0xffe, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "paddd", 2, 0x660ffe, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "paddq", 2, 0xfd4, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "paddq", 2, 0x660fd4, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "paddsb", 2, 0xfec, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "paddsb", 2, 0x660fec, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "paddsw", 2, 0xfed, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "paddsw", 2, 0x660fed, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "paddusb", 2, 0xfdc, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "paddusb", 2, 0x660fdc, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "paddusw", 2, 0xfdd, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "paddusw", 2, 0x660fdd, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pand", 2, 0xfdb, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pand", 2, 0x660fdb, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pandn", 2, 0xfdf, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pandn", 2, 0x660fdf, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pcmpeqb", 2, 0xf74, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pcmpeqb", 2, 0x660f74, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pcmpeqw", 2, 0xf75, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pcmpeqw", 2, 0x660f75, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pcmpeqd", 2, 0xf76, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pcmpeqd", 2, 0x660f76, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pcmpgtb", 2, 0xf64, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pcmpgtb", 2, 0x660f64, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pcmpgtw", 2, 0xf65, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pcmpgtw", 2, 0x660f65, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pcmpgtd", 2, 0xf66, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pcmpgtd", 2, 0x660f66, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pmaddwd", 2, 0xff5, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pmaddwd", 2, 0x660ff5, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pmulhw", 2, 0xfe5, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pmulhw", 2, 0x660fe5, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pmullw", 2, 0xfd5, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pmullw", 2, 0x660fd5, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "por", 2, 0xfeb, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "por", 2, 0x660feb, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "psllw", 2, 0xff1, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "psllw", 2, 0x660ff1, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "psllw", 2, 0xf71, 0x6, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      RegMMX } },
-  { "psllw", 2, 0x660f71, 0x6, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      RegXMM } },
-  { "pslld", 2, 0xff2, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pslld", 2, 0x660ff2, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pslld", 2, 0xf72, 0x6, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      RegMMX } },
-  { "pslld", 2, 0x660f72, 0x6, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      RegXMM } },
-  { "psllq", 2, 0xff3, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "psllq", 2, 0x660ff3, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "psllq", 2, 0xf73, 0x6, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      RegMMX } },
-  { "psllq", 2, 0x660f73, 0x6, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      RegXMM } },
-  { "psraw", 2, 0xfe1, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "psraw", 2, 0x660fe1, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "psraw", 2, 0xf71, 0x4, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      RegMMX } },
-  { "psraw", 2, 0x660f71, 0x4, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      RegXMM } },
-  { "psrad", 2, 0xfe2, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "psrad", 2, 0x660fe2, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "psrad", 2, 0xf72, 0x4, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      RegMMX } },
-  { "psrad", 2, 0x660f72, 0x4, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      RegXMM } },
-  { "psrlw", 2, 0xfd1, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "psrlw", 2, 0x660fd1, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "psrlw", 2, 0xf71, 0x2, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      RegMMX } },
-  { "psrlw", 2, 0x660f71, 0x2, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      RegXMM } },
-  { "psrld", 2, 0xfd2, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "psrld", 2, 0x660fd2, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "psrld", 2, 0xf72, 0x2, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      RegMMX } },
-  { "psrld", 2, 0x660f72, 0x2, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      RegXMM } },
-  { "psrlq", 2, 0xfd3, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "psrlq", 2, 0x660fd3, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "psrlq", 2, 0xf73, 0x2, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      RegMMX } },
-  { "psrlq", 2, 0x660f73, 0x2, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      RegXMM } },
-  { "psubb", 2, 0xff8, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "psubb", 2, 0x660ff8, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "psubw", 2, 0xff9, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "psubw", 2, 0x660ff9, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "psubd", 2, 0xffa, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "psubd", 2, 0x660ffa, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "psubq", 2, 0xffb, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "psubq", 2, 0x660ffb, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "psubsb", 2, 0xfe8, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "psubsb", 2, 0x660fe8, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "psubsw", 2, 0xfe9, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "psubsw", 2, 0x660fe9, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "psubusb", 2, 0xfd8, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "psubusb", 2, 0x660fd8, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "psubusw", 2, 0xfd9, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "psubusw", 2, 0x660fd9, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "punpckhbw", 2, 0xf68, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "punpckhbw", 2, 0x660f68, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "punpckhwd", 2, 0xf69, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "punpckhwd", 2, 0x660f69, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "punpckhdq", 2, 0xf6a, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "punpckhdq", 2, 0x660f6a, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "punpcklbw", 2, 0xf60, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "punpcklbw", 2, 0x660f60, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "punpcklwd", 2, 0xf61, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "punpcklwd", 2, 0x660f61, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "punpckldq", 2, 0xf62, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "punpckldq", 2, 0x660f62, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pxor", 2, 0xfef, None, CpuMMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pxor", 2, 0x660fef, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "addps", 2, 0xf58, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "addss", 2, 0xf30f58, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "andnps", 2, 0xf55, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "andps", 2, 0xf54, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmpeqps", 2, 0xfc2, 0x0, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmpeqss", 2, 0xf30fc2, 0x0, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmpleps", 2, 0xfc2, 0x2, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmpless", 2, 0xf30fc2, 0x2, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmpltps", 2, 0xfc2, 0x1, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmpltss", 2, 0xf30fc2, 0x1, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmpneqps", 2, 0xfc2, 0x4, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmpneqss", 2, 0xf30fc2, 0x4, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmpnleps", 2, 0xfc2, 0x6, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmpnless", 2, 0xf30fc2, 0x6, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmpnltps", 2, 0xfc2, 0x5, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmpnltss", 2, 0xf30fc2, 0x5, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmpordps", 2, 0xfc2, 0x7, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmpordss", 2, 0xf30fc2, 0x7, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmpunordps", 2, 0xfc2, 0x3, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmpunordss", 2, 0xf30fc2, 0x3, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmpps", 3, 0xfc2, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmpss", 3, 0xf30fc2, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "comiss", 2, 0xf2f, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cvtpi2ps", 2, 0xf2a, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegXMM } },
-  { "cvtps2pi", 2, 0xf2d, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegMMX } },
-  { "cvtsi2ss", 2, 0xf30f2a, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_xSuf,
-    { Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      RegXMM } },
-  { "cvtss2si", 2, 0xf30f2d, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      Reg32|Reg64 } },
-  { "cvttps2pi", 2, 0xf2c, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegMMX } },
-  { "cvttss2si", 2, 0xf30f2c, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      Reg32|Reg64 } },
-  { "divps", 2, 0xf5e, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "divss", 2, 0xf30f5e, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "ldmxcsr", 1, 0xfae, 0x2, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "maskmovq", 2, 0xff7, None, CpuMMX2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { RegMMX,
-      RegMMX } },
-  { "maxps", 2, 0xf5f, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "maxss", 2, 0xf30f5f, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "minps", 2, 0xf5d, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "minss", 2, 0xf30f5d, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "movaps", 2, 0xf28, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "movaps", 2, 0xf29, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { RegXMM,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM } },
-  { "movhlps", 2, 0xf12, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { RegXMM,
-      RegXMM } },
-  { "movhps", 2, 0xf16, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      RegXMM } },
-  { "movhps", 2, 0xf17, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { RegXMM,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "movlhps", 2, 0xf16, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { RegXMM,
-      RegXMM } },
-  { "movlps", 2, 0xf12, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      RegXMM } },
-  { "movlps", 2, 0xf13, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { RegXMM,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "movmskps", 2, 0xf50, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_xSuf,
-    { RegXMM,
-      Reg32|Reg64 } },
-  { "movntps", 2, 0xf2b, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { RegXMM,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "movntq", 2, 0xfe7, None, CpuMMX2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { RegMMX,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "movntdq", 2, 0x660fe7, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { RegXMM,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "movss", 2, 0xf30f10, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "movss", 2, 0xf30f11, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { RegXMM,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM } },
-  { "movups", 2, 0xf10, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "movups", 2, 0xf11, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { RegXMM,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM } },
-  { "mulps", 2, 0xf59, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "mulss", 2, 0xf30f59, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "orps", 2, 0xf56, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pavgb", 2, 0xfe0, None, CpuMMX2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pavgb", 2, 0x660fe0, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pavgw", 2, 0xfe3, None, CpuMMX2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pavgw", 2, 0x660fe3, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pextrw", 3, 0xfc5, None, CpuMMX2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_xSuf,
-    { Imm8,
-      RegMMX,
-      Reg32|Reg64 } },
-  { "pextrw", 3, 0x660fc5, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_xSuf,
-    { Imm8,
-      RegXMM,
-      Reg32|Reg64 } },
-  { "pextrw", 3, 0x660f3a15, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      RegXMM,
-      Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "pinsrw", 3, 0xfc4, None, CpuMMX2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_xSuf,
-    { Imm8,
-      Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      RegMMX } },
-  { "pinsrw", 3, 0x660fc4, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_xSuf,
-    { Imm8,
-      Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      RegXMM } },
-  { "pmaxsw", 2, 0xfee, None, CpuMMX2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pmaxsw", 2, 0x660fee, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pmaxub", 2, 0xfde, None, CpuMMX2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pmaxub", 2, 0x660fde, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pminsw", 2, 0xfea, None, CpuMMX2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pminsw", 2, 0x660fea, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pminub", 2, 0xfda, None, CpuMMX2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pminub", 2, 0x660fda, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pmovmskb", 2, 0xfd7, None, CpuMMX2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_xSuf,
-    { RegMMX,
-      Reg32|Reg64 } },
-  { "pmovmskb", 2, 0x660fd7, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_xSuf,
-    { RegXMM,
-      Reg32|Reg64 } },
-  { "pmulhuw", 2, 0xfe4, None, CpuMMX2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pmulhuw", 2, 0x660fe4, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "prefetchnta", 1, 0xf18, 0x0, CpuMMX2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "prefetcht0", 1, 0xf18, 0x1, CpuMMX2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "prefetcht1", 1, 0xf18, 0x2, CpuMMX2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "prefetcht2", 1, 0xf18, 0x3, CpuMMX2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "psadbw", 2, 0xff6, None, CpuMMX2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "psadbw", 2, 0x660ff6, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pshufw", 3, 0xf70, None, CpuMMX2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "rcpps", 2, 0xf53, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "rcpss", 2, 0xf30f53, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "rsqrtps", 2, 0xf52, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "rsqrtss", 2, 0xf30f52, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "sfence", 0, 0xfae, 0xf8, CpuMMX2,
-    IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { 0 } },
-  { "shufps", 3, 0xfc6, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "sqrtps", 2, 0xf51, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "sqrtss", 2, 0xf30f51, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "stmxcsr", 1, 0xfae, 0x3, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "subps", 2, 0xf5c, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "subss", 2, 0xf30f5c, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "ucomiss", 2, 0xf2e, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "unpckhps", 2, 0xf15, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "unpcklps", 2, 0xf14, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "xorps", 2, 0xf57, None, CpuSSE,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "addpd", 2, 0x660f58, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "addsd", 2, 0xf20f58, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "andnpd", 2, 0x660f55, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "andpd", 2, 0x660f54, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmpeqpd", 2, 0x660fc2, 0x0, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmpeqsd", 2, 0xf20fc2, 0x0, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmplepd", 2, 0x660fc2, 0x2, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmplesd", 2, 0xf20fc2, 0x2, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmpltpd", 2, 0x660fc2, 0x1, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmpltsd", 2, 0xf20fc2, 0x1, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmpneqpd", 2, 0x660fc2, 0x4, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmpneqsd", 2, 0xf20fc2, 0x4, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmpnlepd", 2, 0x660fc2, 0x6, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmpnlesd", 2, 0xf20fc2, 0x6, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmpnltpd", 2, 0x660fc2, 0x5, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmpnltsd", 2, 0xf20fc2, 0x5, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmpordpd", 2, 0x660fc2, 0x7, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmpordsd", 2, 0xf20fc2, 0x7, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmpunordpd", 2, 0x660fc2, 0x3, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmpunordsd", 2, 0xf20fc2, 0x3, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmppd", 3, 0x660fc2, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmpsd", 0, 0xa7, None, 0,
-    Size32|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsString,
-    { 0 } },
-  { "cmpsd", 2, 0xa7, None, 0,
-    Size32|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsString,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|EsSeg } },
-  { "cmpsd", 3, 0xf20fc2, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "comisd", 2, 0x660f2f, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cvtpi2pd", 2, 0x660f2a, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegXMM } },
-  { "cvtsi2sd", 2, 0xf20f2a, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_xSuf,
-    { Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      RegXMM } },
-  { "divpd", 2, 0x660f5e, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "divsd", 2, 0xf20f5e, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "maxpd", 2, 0x660f5f, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "maxsd", 2, 0xf20f5f, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "minpd", 2, 0x660f5d, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "minsd", 2, 0xf20f5d, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "movapd", 2, 0x660f28, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "movapd", 2, 0x660f29, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { RegXMM,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM } },
-  { "movhpd", 2, 0x660f16, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      RegXMM } },
-  { "movhpd", 2, 0x660f17, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { RegXMM,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "movlpd", 2, 0x660f12, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      RegXMM } },
-  { "movlpd", 2, 0x660f13, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { RegXMM,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "movmskpd", 2, 0x660f50, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_xSuf,
-    { RegXMM,
-      Reg32|Reg64 } },
-  { "movntpd", 2, 0x660f2b, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { RegXMM,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "movsd", 0, 0xa5, None, 0,
-    Size32|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsString,
-    { 0 } },
-  { "movsd", 2, 0xa5, None, 0,
-    Size32|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsString,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|EsSeg } },
-  { "movsd", 2, 0xf20f10, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "movsd", 2, 0xf20f11, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { RegXMM,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM } },
-  { "movupd", 2, 0x660f10, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "movupd", 2, 0x660f11, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { RegXMM,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM } },
-  { "mulpd", 2, 0x660f59, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "mulsd", 2, 0xf20f59, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "orpd", 2, 0x660f56, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "shufpd", 3, 0x660fc6, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "sqrtpd", 2, 0x660f51, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "sqrtsd", 2, 0xf20f51, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "subpd", 2, 0x660f5c, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "subsd", 2, 0xf20f5c, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "ucomisd", 2, 0x660f2e, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "unpckhpd", 2, 0x660f15, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "unpcklpd", 2, 0x660f14, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "xorpd", 2, 0x660f57, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cvtdq2pd", 2, 0xf30fe6, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cvtpd2dq", 2, 0xf20fe6, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cvtdq2ps", 2, 0xf5b, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cvtpd2pi", 2, 0x660f2d, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegMMX } },
-  { "cvtpd2ps", 2, 0x660f5a, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cvtps2pd", 2, 0xf5a, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cvtps2dq", 2, 0x660f5b, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cvtsd2si", 2, 0xf20f2d, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      Reg32|Reg64 } },
-  { "cvtsd2ss", 2, 0xf20f5a, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cvtss2sd", 2, 0xf30f5a, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cvttpd2pi", 2, 0x660f2c, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegMMX } },
-  { "cvttsd2si", 2, 0xf20f2c, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      Reg32|Reg64 } },
-  { "cvttpd2dq", 2, 0x660fe6, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cvttps2dq", 2, 0xf30f5b, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "maskmovdqu", 2, 0x660ff7, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { RegXMM,
-      RegXMM } },
-  { "movdqa", 2, 0x660f6f, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "movdqa", 2, 0x660f7f, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { RegXMM,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM } },
-  { "movdqu", 2, 0xf30f6f, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "movdqu", 2, 0xf30f7f, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { RegXMM,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM } },
-  { "movdq2q", 2, 0xf20fd6, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { RegXMM,
-      RegMMX } },
-  { "movq2dq", 2, 0xf30fd6, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { RegMMX,
-      RegXMM } },
-  { "pmuludq", 2, 0xff4, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pmuludq", 2, 0x660ff4, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pshufd", 3, 0x660f70, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pshufhw", 3, 0xf30f70, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pshuflw", 3, 0xf20f70, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pslldq", 2, 0x660f73, 0x7, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      RegXMM } },
-  { "psrldq", 2, 0x660f73, 0x3, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      RegXMM } },
-  { "punpckhqdq", 2, 0x660f6d, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "punpcklqdq", 2, 0x660f6c, None, CpuSSE2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "addsubpd", 2, 0x660fd0, None, CpuSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "addsubps", 2, 0xf20fd0, None, CpuSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "cmpxchg16b", 1, 0xfc7, 0x1, CpuSSE3|Cpu64,
-    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|Rex64,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fisttp", 1, 0xdf, 0x1, CpuSSE3,
-    Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fisttp", 1, 0xdd, 0x1, CpuSSE3,
-    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf|NoRex64,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "fisttpll", 1, 0xdd, 0x1, CpuSSE3,
-    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "haddpd", 2, 0x660f7c, None, CpuSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "haddps", 2, 0xf20f7c, None, CpuSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "hsubpd", 2, 0x660f7d, None, CpuSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "hsubps", 2, 0xf20f7d, None, CpuSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "lddqu", 2, 0xf20ff0, None, CpuSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      RegXMM } },
-  { "monitor", 0, 0xf01, 0xc8, CpuSSE3,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { 0 } },
-  { "monitor", 3, 0xf01, 0xc8, CpuSSE3|CpuNo64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { Reg16|Reg32,
-      Reg32,
-      Reg32 } },
-  { "monitor", 3, 0xf01, 0xc8, CpuSSE3|Cpu64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt|NoRex64,
-    { Reg32|Reg64,
-      Reg64,
-      Reg64 } },
-  { "movddup", 2, 0xf20f12, None, CpuSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "movshdup", 2, 0xf30f16, None, CpuSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "movsldup", 2, 0xf30f12, None, CpuSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "mwait", 0, 0xf01, 0xc9, CpuSSE3,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { 0 } },
-  { "mwait", 2, 0xf01, 0xc9, CpuSSE3|CpuNo64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { Reg32,
-      Reg32 } },
-  { "mwait", 2, 0xf01, 0xc9, CpuSSE3|Cpu64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt|NoRex64,
-    { Reg64,
-      Reg64 } },
-  { "vmcall", 0, 0xf01, 0xc1, CpuVMX,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { 0 } },
-  { "vmclear", 1, 0x660fc7, 0x6, CpuVMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|NoRex64,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "vmlaunch", 0, 0xf01, 0xc2, CpuVMX,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { 0 } },
-  { "vmresume", 0, 0xf01, 0xc3, CpuVMX,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { 0 } },
-  { "vmptrld", 1, 0xfc7, 0x6, CpuVMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|NoRex64,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "vmptrst", 1, 0xfc7, 0x7, CpuVMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|NoRex64,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "vmread", 2, 0xf78, None, CpuVMX|CpuNo64,
-    Modrm|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg32,
-      Reg32|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "vmread", 2, 0xf78, None, CpuVMX|Cpu64,
-    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf|NoRex64,
-    { Reg64,
-      Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "vmwrite", 2, 0xf79, None, CpuVMX|CpuNo64,
-    Modrm|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg32|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg32 } },
-  { "vmwrite", 2, 0xf79, None, CpuVMX|Cpu64,
-    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf|NoRex64,
-    { Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg64 } },
-  { "vmxoff", 0, 0xf01, 0xc4, CpuVMX,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { 0 } },
-  { "vmxon", 1, 0xf30fc7, 0x6, CpuVMX,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|NoRex64,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "phaddw", 2, 0xf3801, None, CpuSSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "phaddw", 2, 0x660f3801, None, CpuSSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "phaddd", 2, 0xf3802, None, CpuSSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "phaddd", 2, 0x660f3802, None, CpuSSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "phaddsw", 2, 0xf3803, None, CpuSSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "phaddsw", 2, 0x660f3803, None, CpuSSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "phsubw", 2, 0xf3805, None, CpuSSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "phsubw", 2, 0x660f3805, None, CpuSSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "phsubd", 2, 0xf3806, None, CpuSSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "phsubd", 2, 0x660f3806, None, CpuSSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "phsubsw", 2, 0xf3807, None, CpuSSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "phsubsw", 2, 0x660f3807, None, CpuSSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pmaddubsw", 2, 0xf3804, None, CpuSSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pmaddubsw", 2, 0x660f3804, None, CpuSSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pmulhrsw", 2, 0xf380b, None, CpuSSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pmulhrsw", 2, 0x660f380b, None, CpuSSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pshufb", 2, 0xf3800, None, CpuSSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pshufb", 2, 0x660f3800, None, CpuSSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "psignb", 2, 0xf3808, None, CpuSSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "psignb", 2, 0x660f3808, None, CpuSSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "psignw", 2, 0xf3809, None, CpuSSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "psignw", 2, 0x660f3809, None, CpuSSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "psignd", 2, 0xf380a, None, CpuSSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "psignd", 2, 0x660f380a, None, CpuSSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "palignr", 3, 0xf3a0f, None, CpuSSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "palignr", 3, 0x660f3a0f, None, CpuSSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pabsb", 2, 0xf381c, None, CpuSSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pabsb", 2, 0x660f381c, None, CpuSSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pabsw", 2, 0xf381d, None, CpuSSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pabsw", 2, 0x660f381d, None, CpuSSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pabsd", 2, 0xf381e, None, CpuSSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pabsd", 2, 0x660f381e, None, CpuSSSE3,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "blendpd", 3, 0x660f3a0d, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "blendps", 3, 0x660f3a0c, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "blendvpd", 3, 0x660f3815, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|RegKludge,
-    { RegXMM,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "blendvps", 3, 0x660f3814, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|RegKludge,
-    { RegXMM,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "dppd", 3, 0x660f3a41, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "dpps", 3, 0x660f3a40, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "extractps", 3, 0x660f3a17, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      RegXMM,
-      Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "insertps", 3, 0x660f3a21, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "movntdqa", 2, 0x660f382a, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      RegXMM } },
-  { "mpsadbw", 3, 0x660f3a42, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "packusdw", 2, 0x660f382b, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pblendvb", 3, 0x660f3810, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|RegKludge,
-    { RegXMM,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pblendw", 3, 0x660f3a0e, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pcmpeqq", 2, 0x660f3829, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pextrb", 3, 0x660f3a14, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      RegXMM,
-      Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "pextrd", 3, 0x660f3a16, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      RegXMM,
-      Reg32|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "pextrq", 3, 0x660f3a16, None, CpuSSE4_1|Cpu64,
-    Modrm|Size64|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      RegXMM,
-      Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "phminposuw", 2, 0x660f3841, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pinsrb", 3, 0x660f3a20, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      RegXMM } },
-  { "pinsrd", 3, 0x660f3a22, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      Reg32|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      RegXMM } },
-  { "pinsrq", 3, 0x660f3a22, None, CpuSSE4_1|Cpu64,
-    Modrm|Size64|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      RegXMM } },
-  { "pmaxsb", 2, 0x660f383c, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pmaxsd", 2, 0x660f383d, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pmaxud", 2, 0x660f383f, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pmaxuw", 2, 0x660f383e, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pminsb", 2, 0x660f3838, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pminsd", 2, 0x660f3839, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pminud", 2, 0x660f383b, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pminuw", 2, 0x660f383a, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pmovsxbw", 2, 0x660f3820, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|NoRex64,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pmovsxbd", 2, 0x660f3821, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pmovsxbq", 2, 0x660f3822, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pmovsxwd", 2, 0x660f3823, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|NoRex64,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pmovsxwq", 2, 0x660f3824, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pmovsxdq", 2, 0x660f3825, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|NoRex64,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pmovzxbw", 2, 0x660f3830, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|NoRex64,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pmovzxbd", 2, 0x660f3831, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pmovzxbq", 2, 0x660f3832, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pmovzxwd", 2, 0x660f3833, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|NoRex64,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pmovzxwq", 2, 0x660f3834, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pmovzxdq", 2, 0x660f3835, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|NoRex64,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pmuldq", 2, 0x660f3828, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pmulld", 2, 0x660f3840, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "ptest", 2, 0x660f3817, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "roundpd", 3, 0x660f3a09, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "roundps", 3, 0x660f3a08, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "roundsd", 3, 0x660f3a0b, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|NoRex64,
-    { Imm8,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "roundss", 3, 0x660f3a0a, None, CpuSSE4_1,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pcmpgtq", 2, 0x660f3837, None, CpuSSE4_2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pcmpestri", 3, 0x660f3a61, None, CpuSSE4_2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pcmpestrm", 3, 0x660f3a60, None, CpuSSE4_2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pcmpistri", 3, 0x660f3a63, None, CpuSSE4_2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "pcmpistrm", 3, 0x660f3a62, None, CpuSSE4_2,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM,
-      RegXMM } },
-  { "crc32", 2, 0xf20f38f1, None, CpuSSE4_2,
-    Modrm|No_bSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg16|Reg32|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg32 } },
-  { "crc32", 2, 0xf20f38f1, None, CpuSSE4_2|Cpu64,
-    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf|Rex64,
-    { Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg64 } },
-  { "crc32", 2, 0xf20f38f0, None, CpuSSE4_2,
-    Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg32 } },
-  { "crc32", 2, 0xf20f38f0, None, CpuSSE4_2|Cpu64,
-    Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|Rex64,
-    { Reg8|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg64 } },
-  { "prefetch", 1, 0xf0d, 0x0, Cpu3dnow,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "prefetchw", 1, 0xf0d, 0x1, Cpu3dnow,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "femms", 0, 0xf0e, None, Cpu3dnow,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "pavgusb", 2, 0xf0f, 0xbf, Cpu3dnow,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pf2id", 2, 0xf0f, 0x1d, Cpu3dnow,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pf2iw", 2, 0xf0f, 0x1c, Cpu3dnowA,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pfacc", 2, 0xf0f, 0xae, Cpu3dnow,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pfadd", 2, 0xf0f, 0x9e, Cpu3dnow,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pfcmpeq", 2, 0xf0f, 0xb0, Cpu3dnow,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pfcmpge", 2, 0xf0f, 0x90, Cpu3dnow,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pfcmpgt", 2, 0xf0f, 0xa0, Cpu3dnow,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pfmax", 2, 0xf0f, 0xa4, Cpu3dnow,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pfmin", 2, 0xf0f, 0x94, Cpu3dnow,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pfmul", 2, 0xf0f, 0xb4, Cpu3dnow,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pfnacc", 2, 0xf0f, 0x8a, Cpu3dnowA,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pfpnacc", 2, 0xf0f, 0x8e, Cpu3dnowA,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pfrcp", 2, 0xf0f, 0x96, Cpu3dnow,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pfrcpit1", 2, 0xf0f, 0xa6, Cpu3dnow,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pfrcpit2", 2, 0xf0f, 0xb6, Cpu3dnow,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pfrsqit1", 2, 0xf0f, 0xa7, Cpu3dnow,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pfrsqrt", 2, 0xf0f, 0x97, Cpu3dnow,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pfsub", 2, 0xf0f, 0x9a, Cpu3dnow,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pfsubr", 2, 0xf0f, 0xaa, Cpu3dnow,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pi2fd", 2, 0xf0f, 0xd, Cpu3dnow,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pi2fw", 2, 0xf0f, 0xc, Cpu3dnowA,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pmulhrw", 2, 0xf0f, 0xb7, Cpu3dnow,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "pswapd", 2, 0xf0f, 0xbb, Cpu3dnowA,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX,
-      RegMMX } },
-  { "syscall", 0, 0xf05, None, CpuK6,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { 0 } },
-  { "sysret", 0, 0xf07, None, CpuK6,
-    DefaultSize|No_bSuf|No_wSuf|No_sSuf|No_xSuf,
-    { 0 } },
-  { "swapgs", 0, 0xf01, 0xf8, Cpu64,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { 0 } },
-  { "rdtscp", 0, 0xf01, 0xf9, CpuSledgehammer,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { 0 } },
-  { "clgi", 0, 0xf01, 0xdd, CpuSVME,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { 0 } },
-  { "invlpga", 0, 0xf01, 0xdf, CpuSVME,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { 0 } },
-  { "invlpga", 2, 0xf01, 0xdf, CpuSVME,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt|NoRex64,
-    { Reg32|Reg64,
-      Reg32 } },
-  { "skinit", 0, 0xf01, 0xde, CpuSVME,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { 0 } },
-  { "skinit", 1, 0xf01, 0xde, CpuSVME,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { Reg32 } },
-  { "stgi", 0, 0xf01, 0xdc, CpuSVME,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { 0 } },
-  { "vmload", 0, 0xf01, 0xda, CpuSVME,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { 0 } },
-  { "vmload", 1, 0xf01, 0xda, CpuSVME,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt|NoRex64,
-    { Reg32|Reg64 } },
-  { "vmmcall", 0, 0xf01, 0xd9, CpuSVME,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { 0 } },
-  { "vmrun", 0, 0xf01, 0xd8, CpuSVME,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { 0 } },
-  { "vmrun", 1, 0xf01, 0xd8, CpuSVME,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt|NoRex64,
-    { Reg32|Reg64 } },
-  { "vmsave", 0, 0xf01, 0xdb, CpuSVME,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
-    { 0 } },
-  { "vmsave", 1, 0xf01, 0xdb, CpuSVME,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt|NoRex64,
-    { Reg32|Reg64 } },
-  { "movntsd", 2, 0xf20f2b, None, CpuSSE4a,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { RegXMM,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "movntss", 2, 0xf30f2b, None, CpuSSE4a,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { RegXMM,
-      BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
-  { "extrq", 3, 0x660f78, 0x0, CpuSSE4a,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      Imm8,
-      RegXMM } },
-  { "extrq", 2, 0x660f79, None, CpuSSE4a,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { RegXMM,
-      RegXMM } },
-  { "insertq", 2, 0xf20f79, None, CpuSSE4a,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { RegXMM,
-      RegXMM } },
-  { "insertq", 4, 0xf20f78, None, CpuSSE4a,
-    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf,
-    { Imm8,
-      Imm8,
-      RegXMM,
-      RegXMM } },
-  { "popcnt", 2, 0xf30fb8, None, CpuABM|CpuSSE4_2,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "lzcnt", 2, 0xf30fbd, None, CpuABM,
-    Modrm|No_bSuf|No_sSuf|No_xSuf,
-    { Reg16|Reg32|Reg64|BaseIndex|Disp8|Disp16|Disp32|Disp32S,
-      Reg16|Reg32|Reg64 } },
-  { "xstore-rng", 0, 0xfa7, 0xc0, Cpu686|CpuPadLock,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsString|ImmExt,
-    { 0 } },
-  { "xcrypt-ecb", 0, 0xf30fa7, 0xc8, Cpu686|CpuPadLock,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsString|ImmExt,
-    { 0 } },
-  { "xcrypt-cbc", 0, 0xf30fa7, 0xd0, Cpu686|CpuPadLock,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsString|ImmExt,
-    { 0 } },
-  { "xcrypt-ctr", 0, 0xf30fa7, 0xd8, Cpu686|CpuPadLock,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsString|ImmExt,
-    { 0 } },
-  { "xcrypt-cfb", 0, 0xf30fa7, 0xe0, Cpu686|CpuPadLock,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsString|ImmExt,
-    { 0 } },
-  { "xcrypt-ofb", 0, 0xf30fa7, 0xe8, Cpu686|CpuPadLock,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsString|ImmExt,
-    { 0 } },
-  { "montmul", 0, 0xf30fa6, 0xc0, Cpu686|CpuPadLock,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsString|ImmExt,
-    { 0 } },
-  { "xsha1", 0, 0xf30fa6, 0xc8, Cpu686|CpuPadLock,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsString|ImmExt,
-    { 0 } },
-  { "xsha256", 0, 0xf30fa6, 0xd0, Cpu686|CpuPadLock,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsString|ImmExt,
-    { 0 } },
-  { "xstorerng", 0, 0xfa7, 0xc0, Cpu686|CpuPadLock,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsString|ImmExt,
-    { 0 } },
-  { "xcryptecb", 0, 0xf30fa7, 0xc8, Cpu686|CpuPadLock,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsString|ImmExt,
-    { 0 } },
-  { "xcryptcbc", 0, 0xf30fa7, 0xd0, Cpu686|CpuPadLock,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsString|ImmExt,
-    { 0 } },
-  { "xcryptctr", 0, 0xf30fa7, 0xd8, Cpu686|CpuPadLock,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsString|ImmExt,
-    { 0 } },
-  { "xcryptcfb", 0, 0xf30fa7, 0xe0, Cpu686|CpuPadLock,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsString|ImmExt,
-    { 0 } },
-  { "xcryptofb", 0, 0xf30fa7, 0xe8, Cpu686|CpuPadLock,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsString|ImmExt,
-    { 0 } },
-  { "xstore", 0, 0xfa7, 0xc0, Cpu686|CpuPadLock,
-    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsString|ImmExt,
-    { 0 } },
-  { NULL, 0, 0, 0, 0, 0, { 0 } }
+  { "f2xm1", 0, 0xd9f0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fyl2x", 0, 0xd9f1, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fptan", 0, 0xd9f2, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fpatan", 0, 0xd9f3, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fxtract", 0, 0xd9f4, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fprem1", 0, 0xd9f5, None,
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fdecstp", 0, 0xd9f6, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fincstp", 0, 0xd9f7, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fprem", 0, 0xd9f8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fyl2xp1", 0, 0xd9f9, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fsqrt", 0, 0xd9fa, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fsincos", 0, 0xd9fb, None,
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "frndint", 0, 0xd9fc, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fscale", 0, 0xd9fd, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fsin", 0, 0xd9fe, None,
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fcos", 0, 0xd9ff, None,
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fchs", 0, 0xd9e0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fabs", 0, 0xd9e1, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fninit", 0, 0xdbe3, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "finit", 0, 0xdbe3, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 1, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fldcw", 1, 0xd9, 0x5,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fnstcw", 1, 0xd9, 0x7,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fstcw", 1, 0xd9, 0x7,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 
+      1, 1, 1, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fnstsw", 1, 0xdfe0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+  { "fnstsw", 1, 0xdd, 0x7,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fnstsw", 0, 0xdfe0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fstsw", 1, 0xdfe0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 1, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+  { "fstsw", 1, 0xdd, 0x7,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 
+      1, 1, 1, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fstsw", 0, 0xdfe0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 1, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fnclex", 0, 0xdbe2, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fclex", 0, 0xdbe2, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 1, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fnstenv", 1, 0xd9, 0x6,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fstenv", 1, 0xd9, 0x6,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 
+      1, 1, 1, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fldenv", 1, 0xd9, 0x4,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fnsave", 1, 0xdd, 0x6,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fsave", 1, 0xdd, 0x6,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 
+      1, 1, 1, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "frstor", 1, 0xdd, 0x4,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "ffree", 1, 0xddc0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "ffreep", 1, 0xdfc0, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fnop", 0, 0xd9d0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fwait", 0, 0x9b, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "addr16", 0, 0x67, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "addr32", 0, 0x67, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "aword", 0, 0x67, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "adword", 0, 0x67, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "data16", 0, 0x66, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "data32", 0, 0x66, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "word", 0, 0x66, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "dword", 0, 0x66, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "lock", 0, 0xf0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "wait", 0, 0x9b, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cs", 0, 0x2e, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "ds", 0, 0x3e, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "es", 0, 0x26, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fs", 0, 0x64, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "gs", 0, 0x65, None,
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "ss", 0, 0x36, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rep", 0, 0xf3, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "repe", 0, 0xf3, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "repz", 0, 0xf3, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "repne", 0, 0xf2, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "repnz", 0, 0xf2, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "ht", 0, 0x3e, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "hnt", 0, 0x2e, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rex", 0, 0x40, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rexz", 0, 0x41, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rexy", 0, 0x42, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rexyz", 0, 0x43, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rexx", 0, 0x44, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rexxz", 0, 0x45, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rexxy", 0, 0x46, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rexxyz", 0, 0x47, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rex64", 0, 0x48, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rex64z", 0, 0x49, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rex64y", 0, 0x4a, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rex64yz", 0, 0x4b, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rex64x", 0, 0x4c, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rex64xz", 0, 0x4d, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rex64xy", 0, 0x4e, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rex64xyz", 0, 0x4f, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rex.b", 0, 0x41, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rex.x", 0, 0x42, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rex.xb", 0, 0x43, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rex.r", 0, 0x44, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rex.rb", 0, 0x45, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rex.rx", 0, 0x46, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rex.rxb", 0, 0x47, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rex.w", 0, 0x48, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rex.wb", 0, 0x49, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rex.wx", 0, 0x4a, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rex.wxb", 0, 0x4b, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rex.wr", 0, 0x4c, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rex.wrb", 0, 0x4d, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rex.wrx", 0, 0x4e, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rex.wrxb", 0, 0x4f, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "bswap", 1, 0xfc8, None,
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "xadd", 2, 0xfc0, None,
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmpxchg", 2, 0xfb0, None,
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "invd", 0, 0xf08, None,
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "wbinvd", 0, 0xf09, None,
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "invlpg", 1, 0xf01, 0x7,
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cpuid", 0, 0xfa2, None,
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "wrmsr", 0, 0xf30, None,
+    { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rdtsc", 0, 0xf31, None,
+    { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rdmsr", 0, 0xf32, None,
+    { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmpxchg8b", 1, 0xfc7, 0x1,
+    { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "sysenter", 0, 0xf34, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "sysexit", 0, 0xf35, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fxsave", 1, 0xfae, 0x0,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fxrstor", 1, 0xfae, 0x1,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rdpmc", 0, 0xf33, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "ud2", 0, 0xf0b, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "ud2a", 0, 0xf0b, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "ud2b", 0, 0xfb9, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmovo", 2, 0xf40, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmovno", 2, 0xf41, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmovb", 2, 0xf42, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmovc", 2, 0xf42, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmovnae", 2, 0xf42, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmovae", 2, 0xf43, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmovnc", 2, 0xf43, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmovnb", 2, 0xf43, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmove", 2, 0xf44, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmovz", 2, 0xf44, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmovne", 2, 0xf45, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmovnz", 2, 0xf45, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmovbe", 2, 0xf46, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmovna", 2, 0xf46, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmova", 2, 0xf47, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmovnbe", 2, 0xf47, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmovs", 2, 0xf48, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmovns", 2, 0xf49, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmovp", 2, 0xf4a, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmovnp", 2, 0xf4b, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmovl", 2, 0xf4c, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmovnge", 2, 0xf4c, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmovge", 2, 0xf4d, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmovnl", 2, 0xf4d, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmovle", 2, 0xf4e, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmovng", 2, 0xf4e, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmovg", 2, 0xf4f, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmovnle", 2, 0xf4f, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fcmovb", 2, 0xdac0, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fcmovnae", 2, 0xdac0, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fcmove", 2, 0xdac8, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fcmovbe", 2, 0xdad0, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fcmovna", 2, 0xdad0, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fcmovu", 2, 0xdad8, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fcmovae", 2, 0xdbc0, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fcmovnb", 2, 0xdbc0, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fcmovne", 2, 0xdbc8, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fcmova", 2, 0xdbd0, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fcmovnbe", 2, 0xdbd0, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fcmovnu", 2, 0xdbd8, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fcomi", 2, 0xdbf0, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fcomi", 0, 0xdbf1, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fcomi", 1, 0xdbf0, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fucomi", 2, 0xdbe8, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fucomi", 0, 0xdbe9, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fucomi", 1, 0xdbe8, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fcomip", 2, 0xdff0, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fcompi", 2, 0xdff0, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fcompi", 0, 0xdff1, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fcompi", 1, 0xdff0, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fucomip", 2, 0xdfe8, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fucompi", 2, 0xdfe8, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fucompi", 0, 0xdfe9, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fucompi", 1, 0xdfe8, None,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movnti", 2, 0xfc3, None,
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "clflush", 1, 0xfae, 0x7,
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "lfence", 0, 0xfae, 0xe8,
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "mfence", 0, 0xfae, 0xf0,
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "pause", 0, 0xf390, None,
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "emms", 0, 0xf77, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movd", 2, 0xf6e, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "movd", 2, 0xf7e, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movd", 2, 0x660f6e, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "movd", 2, 0x660f7e, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movq", 2, 0xf6f, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "movq", 2, 0xf7f, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "movq", 2, 0xf30f7e, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "movq", 2, 0x660fd6, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "movq", 2, 0xf6e, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "movq", 2, 0xf7e, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movq", 2, 0x660f6e, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "movq", 2, 0x660f7e, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movq", 2, 0xa0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+  { "movq", 2, 0x88, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movq", 2, 0xc6, 0x0,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movq", 2, 0xb0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movq", 2, 0x8c, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } } } },
+  { "movq", 2, 0x8e, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 } } } },
+  { "movq", 2, 0xf20, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } } } },
+  { "movq", 2, 0xf21, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } } } },
+  { "packssdw", 2, 0xf6b, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "packssdw", 2, 0x660f6b, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "packsswb", 2, 0xf63, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "packsswb", 2, 0x660f63, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "packuswb", 2, 0xf67, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "packuswb", 2, 0x660f67, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "paddb", 2, 0xffc, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "paddb", 2, 0x660ffc, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "paddw", 2, 0xffd, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "paddw", 2, 0x660ffd, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "paddd", 2, 0xffe, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "paddd", 2, 0x660ffe, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "paddq", 2, 0xfd4, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "paddq", 2, 0x660fd4, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "paddsb", 2, 0xfec, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "paddsb", 2, 0x660fec, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "paddsw", 2, 0xfed, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "paddsw", 2, 0x660fed, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "paddusb", 2, 0xfdc, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "paddusb", 2, 0x660fdc, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "paddusw", 2, 0xfdd, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "paddusw", 2, 0x660fdd, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pand", 2, 0xfdb, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pand", 2, 0x660fdb, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pandn", 2, 0xfdf, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pandn", 2, 0x660fdf, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pcmpeqb", 2, 0xf74, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pcmpeqb", 2, 0x660f74, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pcmpeqw", 2, 0xf75, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pcmpeqw", 2, 0x660f75, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pcmpeqd", 2, 0xf76, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pcmpeqd", 2, 0x660f76, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pcmpgtb", 2, 0xf64, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pcmpgtb", 2, 0x660f64, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pcmpgtw", 2, 0xf65, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pcmpgtw", 2, 0x660f65, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pcmpgtd", 2, 0xf66, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pcmpgtd", 2, 0x660f66, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pmaddwd", 2, 0xff5, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pmaddwd", 2, 0x660ff5, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pmulhw", 2, 0xfe5, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pmulhw", 2, 0x660fe5, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pmullw", 2, 0xfd5, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pmullw", 2, 0x660fd5, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "por", 2, 0xfeb, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "por", 2, 0x660feb, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "psllw", 2, 0xff1, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "psllw", 2, 0x660ff1, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "psllw", 2, 0xf71, 0x6,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "psllw", 2, 0x660f71, 0x6,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pslld", 2, 0xff2, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pslld", 2, 0x660ff2, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pslld", 2, 0xf72, 0x6,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pslld", 2, 0x660f72, 0x6,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "psllq", 2, 0xff3, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "psllq", 2, 0x660ff3, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "psllq", 2, 0xf73, 0x6,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "psllq", 2, 0x660f73, 0x6,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "psraw", 2, 0xfe1, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "psraw", 2, 0x660fe1, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "psraw", 2, 0xf71, 0x4,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "psraw", 2, 0x660f71, 0x4,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "psrad", 2, 0xfe2, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "psrad", 2, 0x660fe2, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "psrad", 2, 0xf72, 0x4,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "psrad", 2, 0x660f72, 0x4,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "psrlw", 2, 0xfd1, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "psrlw", 2, 0x660fd1, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "psrlw", 2, 0xf71, 0x2,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "psrlw", 2, 0x660f71, 0x2,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "psrld", 2, 0xfd2, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "psrld", 2, 0x660fd2, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "psrld", 2, 0xf72, 0x2,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "psrld", 2, 0x660f72, 0x2,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "psrlq", 2, 0xfd3, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "psrlq", 2, 0x660fd3, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "psrlq", 2, 0xf73, 0x2,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "psrlq", 2, 0x660f73, 0x2,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "psubb", 2, 0xff8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "psubb", 2, 0x660ff8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "psubw", 2, 0xff9, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "psubw", 2, 0x660ff9, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "psubd", 2, 0xffa, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "psubd", 2, 0x660ffa, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "psubq", 2, 0xffb, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "psubq", 2, 0x660ffb, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "psubsb", 2, 0xfe8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "psubsb", 2, 0x660fe8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "psubsw", 2, 0xfe9, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "psubsw", 2, 0x660fe9, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "psubusb", 2, 0xfd8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "psubusb", 2, 0x660fd8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "psubusw", 2, 0xfd9, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "psubusw", 2, 0x660fd9, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "punpckhbw", 2, 0xf68, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "punpckhbw", 2, 0x660f68, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "punpckhwd", 2, 0xf69, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "punpckhwd", 2, 0x660f69, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "punpckhdq", 2, 0xf6a, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "punpckhdq", 2, 0x660f6a, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "punpcklbw", 2, 0xf60, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "punpcklbw", 2, 0x660f60, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "punpcklwd", 2, 0xf61, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "punpcklwd", 2, 0x660f61, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "punpckldq", 2, 0xf62, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "punpckldq", 2, 0x660f62, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pxor", 2, 0xfef, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pxor", 2, 0x660fef, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "addps", 2, 0xf58, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "addss", 2, 0xf30f58, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "andnps", 2, 0xf55, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "andps", 2, 0xf54, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmpeqps", 2, 0xfc2, 0x0,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmpeqss", 2, 0xf30fc2, 0x0,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmpleps", 2, 0xfc2, 0x2,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmpless", 2, 0xf30fc2, 0x2,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmpltps", 2, 0xfc2, 0x1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmpltss", 2, 0xf30fc2, 0x1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmpneqps", 2, 0xfc2, 0x4,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmpneqss", 2, 0xf30fc2, 0x4,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmpnleps", 2, 0xfc2, 0x6,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmpnless", 2, 0xf30fc2, 0x6,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmpnltps", 2, 0xfc2, 0x5,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmpnltss", 2, 0xf30fc2, 0x5,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmpordps", 2, 0xfc2, 0x7,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmpordss", 2, 0xf30fc2, 0x7,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmpunordps", 2, 0xfc2, 0x3,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmpunordss", 2, 0xf30fc2, 0x3,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmpps", 3, 0xfc2, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmpss", 3, 0xf30fc2, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "comiss", 2, 0xf2f, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cvtpi2ps", 2, 0xf2a, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cvtps2pi", 2, 0xf2d, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "cvtsi2ss", 2, 0xf30f2a, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cvtss2si", 2, 0xf30f2d, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cvttps2pi", 2, 0xf2c, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "cvttss2si", 2, 0xf30f2c, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "divps", 2, 0xf5e, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "divss", 2, 0xf30f5e, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "ldmxcsr", 1, 0xfae, 0x2,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "maskmovq", 2, 0xff7, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "maxps", 2, 0xf5f, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "maxss", 2, 0xf30f5f, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "minps", 2, 0xf5d, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "minss", 2, 0xf30f5d, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "movaps", 2, 0xf28, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "movaps", 2, 0xf29, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "movhlps", 2, 0xf12, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "movhps", 2, 0xf16, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "movhps", 2, 0xf17, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movlhps", 2, 0xf16, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "movlps", 2, 0xf12, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "movlps", 2, 0xf13, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movmskps", 2, 0xf50, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movntps", 2, 0xf2b, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movntq", 2, 0xfe7, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movntdq", 2, 0x660fe7, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movss", 2, 0xf30f10, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "movss", 2, 0xf30f11, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "movups", 2, 0xf10, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "movups", 2, 0xf11, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "mulps", 2, 0xf59, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "mulss", 2, 0xf30f59, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "orps", 2, 0xf56, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pavgb", 2, 0xfe0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pavgb", 2, 0x660fe0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pavgw", 2, 0xfe3, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pavgw", 2, 0x660fe3, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pextrw", 3, 0xfc5, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "pextrw", 3, 0x660fc5, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "pextrw", 3, 0x660f3a15, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "pinsrw", 3, 0xfc4, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pinsrw", 3, 0x660fc4, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pmaxsw", 2, 0xfee, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pmaxsw", 2, 0x660fee, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pmaxub", 2, 0xfde, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pmaxub", 2, 0x660fde, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pminsw", 2, 0xfea, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pminsw", 2, 0x660fea, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pminub", 2, 0xfda, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pminub", 2, 0x660fda, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pmovmskb", 2, 0xfd7, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "pmovmskb", 2, 0x660fd7, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "pmulhuw", 2, 0xfe4, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pmulhuw", 2, 0x660fe4, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "prefetchnta", 1, 0xf18, 0x0,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "prefetcht0", 1, 0xf18, 0x1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "prefetcht1", 1, 0xf18, 0x2,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "prefetcht2", 1, 0xf18, 0x3,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "psadbw", 2, 0xff6, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "psadbw", 2, 0x660ff6, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pshufw", 3, 0xf70, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "rcpps", 2, 0xf53, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "rcpss", 2, 0xf30f53, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "rsqrtps", 2, 0xf52, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "rsqrtss", 2, 0xf30f52, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "sfence", 0, 0xfae, 0xf8,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "shufps", 3, 0xfc6, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "sqrtps", 2, 0xf51, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "sqrtss", 2, 0xf30f51, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "stmxcsr", 1, 0xfae, 0x3,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "subps", 2, 0xf5c, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "subss", 2, 0xf30f5c, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "ucomiss", 2, 0xf2e, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "unpckhps", 2, 0xf15, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "unpcklps", 2, 0xf14, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "xorps", 2, 0xf57, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "addpd", 2, 0x660f58, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "addsd", 2, 0xf20f58, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "andnpd", 2, 0x660f55, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "andpd", 2, 0x660f54, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmpeqpd", 2, 0x660fc2, 0x0,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmpeqsd", 2, 0xf20fc2, 0x0,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmplepd", 2, 0x660fc2, 0x2,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmplesd", 2, 0xf20fc2, 0x2,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmpltpd", 2, 0x660fc2, 0x1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmpltsd", 2, 0xf20fc2, 0x1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmpneqpd", 2, 0x660fc2, 0x4,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmpneqsd", 2, 0xf20fc2, 0x4,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmpnlepd", 2, 0x660fc2, 0x6,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmpnlesd", 2, 0xf20fc2, 0x6,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmpnltpd", 2, 0x660fc2, 0x5,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmpnltsd", 2, 0xf20fc2, 0x5,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmpordpd", 2, 0x660fc2, 0x7,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmpordsd", 2, 0xf20fc2, 0x7,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmpunordpd", 2, 0x660fc2, 0x3,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmpunordsd", 2, 0xf20fc2, 0x3,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmppd", 3, 0x660fc2, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmpsd", 0, 0xa7, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cmpsd", 2, 0xa7, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } } } },
+  { "cmpsd", 3, 0xf20fc2, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "comisd", 2, 0x660f2f, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cvtpi2pd", 2, 0x660f2a, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cvtsi2sd", 2, 0xf20f2a, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "divpd", 2, 0x660f5e, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "divsd", 2, 0xf20f5e, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "maxpd", 2, 0x660f5f, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "maxsd", 2, 0xf20f5f, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "minpd", 2, 0x660f5d, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "minsd", 2, 0xf20f5d, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "movapd", 2, 0x660f28, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "movapd", 2, 0x660f29, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "movhpd", 2, 0x660f16, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "movhpd", 2, 0x660f17, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movlpd", 2, 0x660f12, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "movlpd", 2, 0x660f13, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movmskpd", 2, 0x660f50, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movntpd", 2, 0x660f2b, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movsd", 0, 0xa5, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movsd", 2, 0xa5, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 1, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } } } },
+  { "movsd", 2, 0xf20f10, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "movsd", 2, 0xf20f11, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "movupd", 2, 0x660f10, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "movupd", 2, 0x660f11, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "mulpd", 2, 0x660f59, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "mulsd", 2, 0xf20f59, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "orpd", 2, 0x660f56, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "shufpd", 3, 0x660fc6, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "sqrtpd", 2, 0x660f51, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "sqrtsd", 2, 0xf20f51, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "subpd", 2, 0x660f5c, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "subsd", 2, 0xf20f5c, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "ucomisd", 2, 0x660f2e, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "unpckhpd", 2, 0x660f15, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "unpcklpd", 2, 0x660f14, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "xorpd", 2, 0x660f57, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cvtdq2pd", 2, 0xf30fe6, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cvtpd2dq", 2, 0xf20fe6, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cvtdq2ps", 2, 0xf5b, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cvtpd2pi", 2, 0x660f2d, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "cvtpd2ps", 2, 0x660f5a, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cvtps2pd", 2, 0xf5a, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cvtps2dq", 2, 0x660f5b, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cvtsd2si", 2, 0xf20f2d, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cvtsd2ss", 2, 0xf20f5a, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cvtss2sd", 2, 0xf30f5a, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cvttpd2pi", 2, 0x660f2c, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "cvttsd2si", 2, 0xf20f2c, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "cvttpd2dq", 2, 0x660fe6, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cvttps2dq", 2, 0xf30f5b, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "maskmovdqu", 2, 0x660ff7, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "movdqa", 2, 0x660f6f, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "movdqa", 2, 0x660f7f, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "movdqu", 2, 0xf30f6f, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "movdqu", 2, 0xf30f7f, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "movdq2q", 2, 0xf20fd6, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "movq2dq", 2, 0xf30fd6, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pmuludq", 2, 0xff4, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pmuludq", 2, 0x660ff4, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pshufd", 3, 0x660f70, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pshufhw", 3, 0xf30f70, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pshuflw", 3, 0xf20f70, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pslldq", 2, 0x660f73, 0x7,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "psrldq", 2, 0x660f73, 0x3,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "punpckhqdq", 2, 0x660f6d, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "punpcklqdq", 2, 0x660f6c, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "addsubpd", 2, 0x660fd0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "addsubps", 2, 0xf20fd0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "cmpxchg16b", 1, 0xfc7, 0x1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fisttp", 1, 0xdf, 0x1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fisttp", 1, 0xdd, 0x1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "fisttpll", 1, 0xdd, 0x1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "haddpd", 2, 0x660f7c, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "haddps", 2, 0xf20f7c, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "hsubpd", 2, 0x660f7d, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "hsubps", 2, 0xf20f7d, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "lddqu", 2, 0xf20ff0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "monitor", 0, 0xf01, 0xc8,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "monitor", 3, 0xf01, 0xc8,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "monitor", 3, 0xf01, 0xc8,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 1, 0, 0 },
+    { { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movddup", 2, 0xf20f12, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "movshdup", 2, 0xf30f16, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "movsldup", 2, 0xf30f12, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "mwait", 0, 0xf01, 0xc9,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "mwait", 2, 0xf01, 0xc9,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "mwait", 2, 0xf01, 0xc9,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 1, 0, 0 },
+    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "vmcall", 0, 0xf01, 0xc1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "vmclear", 1, 0x660fc7, 0x6,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "vmlaunch", 0, 0xf01, 0xc2,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "vmresume", 0, 0xf01, 0xc3,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "vmptrld", 1, 0xfc7, 0x6,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "vmptrst", 1, 0xfc7, 0x7,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "vmread", 2, 0xf78, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "vmread", 2, 0xf78, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "vmwrite", 2, 0xf79, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
+        0, 0, 0, 0, 0, 0, 1, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "vmwrite", 2, 0xf79, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "vmxoff", 0, 0xf01, 0xc4,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "vmxon", 1, 0xf30fc7, 0x6,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "phaddw", 2, 0xf3801, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "phaddw", 2, 0x660f3801, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "phaddd", 2, 0xf3802, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "phaddd", 2, 0x660f3802, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "phaddsw", 2, 0xf3803, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "phaddsw", 2, 0x660f3803, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "phsubw", 2, 0xf3805, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "phsubw", 2, 0x660f3805, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "phsubd", 2, 0xf3806, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "phsubd", 2, 0x660f3806, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "phsubsw", 2, 0xf3807, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "phsubsw", 2, 0x660f3807, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pmaddubsw", 2, 0xf3804, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pmaddubsw", 2, 0x660f3804, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pmulhrsw", 2, 0xf380b, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pmulhrsw", 2, 0x660f380b, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pshufb", 2, 0xf3800, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pshufb", 2, 0x660f3800, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "psignb", 2, 0xf3808, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "psignb", 2, 0x660f3808, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "psignw", 2, 0xf3809, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "psignw", 2, 0x660f3809, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "psignd", 2, 0xf380a, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "psignd", 2, 0x660f380a, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "palignr", 3, 0xf3a0f, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "palignr", 3, 0x660f3a0f, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pabsb", 2, 0xf381c, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pabsb", 2, 0x660f381c, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pabsw", 2, 0xf381d, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pabsw", 2, 0x660f381d, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pabsd", 2, 0xf381e, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pabsd", 2, 0x660f381e, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "blendpd", 3, 0x660f3a0d, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "blendps", 3, 0x660f3a0c, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "blendvpd", 3, 0x660f3815, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 1, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "blendvps", 3, 0x660f3814, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 1, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "dppd", 3, 0x660f3a41, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "dpps", 3, 0x660f3a40, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "extractps", 3, 0x660f3a17, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "insertps", 3, 0x660f3a21, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "movntdqa", 2, 0x660f382a, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "mpsadbw", 3, 0x660f3a42, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "packusdw", 2, 0x660f382b, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pblendvb", 3, 0x660f3810, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 1, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pblendw", 3, 0x660f3a0e, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pcmpeqq", 2, 0x660f3829, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pextrb", 3, 0x660f3a14, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "pextrd", 3, 0x660f3a16, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "pextrq", 3, 0x660f3a16, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 1, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "phminposuw", 2, 0x660f3841, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pinsrb", 3, 0x660f3a20, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pinsrd", 3, 0x660f3a22, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pinsrq", 3, 0x660f3a22, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 1, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pmaxsb", 2, 0x660f383c, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pmaxsd", 2, 0x660f383d, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pmaxud", 2, 0x660f383f, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pmaxuw", 2, 0x660f383e, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pminsb", 2, 0x660f3838, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pminsd", 2, 0x660f3839, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pminud", 2, 0x660f383b, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pminuw", 2, 0x660f383a, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pmovsxbw", 2, 0x660f3820, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pmovsxbd", 2, 0x660f3821, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pmovsxbq", 2, 0x660f3822, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pmovsxwd", 2, 0x660f3823, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pmovsxwq", 2, 0x660f3824, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pmovsxdq", 2, 0x660f3825, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pmovzxbw", 2, 0x660f3830, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pmovzxbd", 2, 0x660f3831, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pmovzxbq", 2, 0x660f3832, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pmovzxwd", 2, 0x660f3833, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pmovzxwq", 2, 0x660f3834, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pmovzxdq", 2, 0x660f3835, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pmuldq", 2, 0x660f3828, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pmulld", 2, 0x660f3840, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "ptest", 2, 0x660f3817, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "roundpd", 3, 0x660f3a09, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "roundps", 3, 0x660f3a08, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "roundsd", 3, 0x660f3a0b, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "roundss", 3, 0x660f3a0a, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 1, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pcmpgtq", 2, 0x660f3837, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 1, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pcmpestri", 3, 0x660f3a61, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 1, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pcmpestrm", 3, 0x660f3a60, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 1, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pcmpistri", 3, 0x660f3a63, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 1, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "pcmpistrm", 3, 0x660f3a62, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 1, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "crc32", 2, 0xf20f38f1, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 1, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "crc32", 2, 0xf20f38f1, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 1, 0, 1, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
+    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "crc32", 2, 0xf20f38f0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 1, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "crc32", 2, 0xf20f38f0, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 1, 0, 1, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 1, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "prefetch", 1, 0xf0d, 0x0,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "prefetchw", 1, 0xf0d, 0x1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "femms", 0, 0xf0e, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "pavgusb", 2, 0xf0f, 0xbf,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pf2id", 2, 0xf0f, 0x1d,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pf2iw", 2, 0xf0f, 0x1c,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pfacc", 2, 0xf0f, 0xae,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pfadd", 2, 0xf0f, 0x9e,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pfcmpeq", 2, 0xf0f, 0xb0,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pfcmpge", 2, 0xf0f, 0x90,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pfcmpgt", 2, 0xf0f, 0xa0,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pfmax", 2, 0xf0f, 0xa4,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pfmin", 2, 0xf0f, 0x94,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pfmul", 2, 0xf0f, 0xb4,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pfnacc", 2, 0xf0f, 0x8a,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pfpnacc", 2, 0xf0f, 0x8e,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pfrcp", 2, 0xf0f, 0x96,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pfrcpit1", 2, 0xf0f, 0xa6,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pfrcpit2", 2, 0xf0f, 0xb6,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pfrsqit1", 2, 0xf0f, 0xa7,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pfrsqrt", 2, 0xf0f, 0x97,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pfsub", 2, 0xf0f, 0x9a,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pfsubr", 2, 0xf0f, 0xaa,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pi2fd", 2, 0xf0f, 0xd,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pi2fw", 2, 0xf0f, 0xc,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pmulhrw", 2, 0xf0f, 0xb7,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pswapd", 2, 0xf0f, 0xbb,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "syscall", 0, 0xf05, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "sysret", 0, 0xf07, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "swapgs", 0, 0xf01, 0xf8,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "rdtscp", 0, 0xf01, 0xf9,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "clgi", 0, 0xf01, 0xdd,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "invlpga", 0, 0xf01, 0xdf,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "invlpga", 2, 0xf01, 0xdf,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 1, 0, 0 },
+    { { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "skinit", 0, 0xf01, 0xde,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "skinit", 1, 0xf01, 0xde,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "stgi", 0, 0xf01, 0xdc,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "vmload", 0, 0xf01, 0xda,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "vmload", 1, 0xf01, 0xda,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 1, 0, 0 },
+    { { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "vmmcall", 0, 0xf01, 0xd9,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "vmrun", 0, 0xf01, 0xd8,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "vmrun", 1, 0xf01, 0xd8,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 1, 0, 0 },
+    { { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "vmsave", 0, 0xf01, 0xdb,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "vmsave", 1, 0xf01, 0xdb,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 1, 1, 0, 0 },
+    { { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movntsd", 2, 0xf20f2b, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        1, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "movntss", 2, 0xf30f2b, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        1, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "extrq", 3, 0x660f78, 0x0,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        1, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "extrq", 2, 0x660f79, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        1, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "insertq", 2, 0xf20f79, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        1, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "insertq", 4, 0xf20f78, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        1, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } } } },
+  { "popcnt", 2, 0xf30fb8, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 1, 0, 1, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "lzcnt", 2, 0xf30fbd, None,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 1, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "xstore-rng", 0, 0xfa7, 0xc0,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 1, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "xcrypt-ecb", 0, 0xf30fa7, 0xc8,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 1, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "xcrypt-cbc", 0, 0xf30fa7, 0xd0,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 1, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "xcrypt-ctr", 0, 0xf30fa7, 0xd8,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 1, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "xcrypt-cfb", 0, 0xf30fa7, 0xe0,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 1, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "xcrypt-ofb", 0, 0xf30fa7, 0xe8,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 1, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "montmul", 0, 0xf30fa6, 0xc0,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 1, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "xsha1", 0, 0xf30fa6, 0xc8,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 1, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "xsha256", 0, 0xf30fa6, 0xd0,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 1, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "xstorerng", 0, 0xfa7, 0xc0,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 1, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "xcryptecb", 0, 0xf30fa7, 0xc8,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 1, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "xcryptcbc", 0, 0xf30fa7, 0xd0,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 1, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "xcryptctr", 0, 0xf30fa7, 0xd8,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 1, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "xcryptcfb", 0, 0xf30fa7, 0xe0,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 1, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "xcryptofb", 0, 0xf30fa7, 0xe8,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 1, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "xstore", 0, 0xfa7, 0xc0,
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
+      1, 1, 0, 1, 0, 0, 1, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { NULL, 0, 0, 0,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+        0, 0, 0, 0, 0, 0, 0, 0 } },
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } }
 };
 
 /* i386 register table.  */
 
 const reg_entry i386_regtab[] =
 {
-  { "st", FloatReg|FloatAcc, 0, 0 },
-  { "al", Reg8|Acc, 0, 0 },
-  { "cl", Reg8|ShiftCount, 0, 1 },
-  { "dl", Reg8, 0, 2 },
-  { "bl", Reg8, 0, 3 },
-  { "ah", Reg8, 0, 4 },
-  { "ch", Reg8, 0, 5 },
-  { "dh", Reg8, 0, 6 },
-  { "bh", Reg8, 0, 7 },
-  { "axl", Reg8|Acc, RegRex64, 0 },
-  { "cxl", Reg8, RegRex64, 1 },
-  { "dxl", Reg8, RegRex64, 2 },
-  { "bxl", Reg8, RegRex64, 3 },
-  { "spl", Reg8, RegRex64, 4 },
-  { "bpl", Reg8, RegRex64, 5 },
-  { "sil", Reg8, RegRex64, 6 },
-  { "dil", Reg8, RegRex64, 7 },
-  { "r8b", Reg8, RegRex|RegRex64, 0 },
-  { "r9b", Reg8, RegRex|RegRex64, 1 },
-  { "r10b", Reg8, RegRex|RegRex64, 2 },
-  { "r11b", Reg8, RegRex|RegRex64, 3 },
-  { "r12b", Reg8, RegRex|RegRex64, 4 },
-  { "r13b", Reg8, RegRex|RegRex64, 5 },
-  { "r14b", Reg8, RegRex|RegRex64, 6 },
-  { "r15b", Reg8, RegRex|RegRex64, 7 },
-  { "ax", Reg16|Acc, 0, 0 },
-  { "cx", Reg16, 0, 1 },
-  { "dx", Reg16|InOutPortReg, 0, 2 },
-  { "bx", Reg16|BaseIndex, 0, 3 },
-  { "sp", Reg16, 0, 4 },
-  { "bp", Reg16|BaseIndex, 0, 5 },
-  { "si", Reg16|BaseIndex, 0, 6 },
-  { "di", Reg16|BaseIndex, 0, 7 },
-  { "r8w", Reg16, RegRex, 0 },
-  { "r9w", Reg16, RegRex, 1 },
-  { "r10w", Reg16, RegRex, 2 },
-  { "r11w", Reg16, RegRex, 3 },
-  { "r12w", Reg16, RegRex, 4 },
-  { "r13w", Reg16, RegRex, 5 },
-  { "r14w", Reg16, RegRex, 6 },
-  { "r15w", Reg16, RegRex, 7 },
-  { "eax", Reg32|BaseIndex|Acc, 0, 0 },
-  { "ecx", Reg32|BaseIndex, 0, 1 },
-  { "edx", Reg32|BaseIndex, 0, 2 },
-  { "ebx", Reg32|BaseIndex, 0, 3 },
-  { "esp", Reg32, 0, 4 },
-  { "ebp", Reg32|BaseIndex, 0, 5 },
-  { "esi", Reg32|BaseIndex, 0, 6 },
-  { "edi", Reg32|BaseIndex, 0, 7 },
-  { "r8d", Reg32|BaseIndex, RegRex, 0 },
-  { "r9d", Reg32|BaseIndex, RegRex, 1 },
-  { "r10d", Reg32|BaseIndex, RegRex, 2 },
-  { "r11d", Reg32|BaseIndex, RegRex, 3 },
-  { "r12d", Reg32|BaseIndex, RegRex, 4 },
-  { "r13d", Reg32|BaseIndex, RegRex, 5 },
-  { "r14d", Reg32|BaseIndex, RegRex, 6 },
-  { "r15d", Reg32|BaseIndex, RegRex, 7 },
-  { "rax", Reg64|BaseIndex|Acc, 0, 0 },
-  { "rcx", Reg64|BaseIndex, 0, 1 },
-  { "rdx", Reg64|BaseIndex, 0, 2 },
-  { "rbx", Reg64|BaseIndex, 0, 3 },
-  { "rsp", Reg64, 0, 4 },
-  { "rbp", Reg64|BaseIndex, 0, 5 },
-  { "rsi", Reg64|BaseIndex, 0, 6 },
-  { "rdi", Reg64|BaseIndex, 0, 7 },
-  { "r8", Reg64|BaseIndex, RegRex, 0 },
-  { "r9", Reg64|BaseIndex, RegRex, 1 },
-  { "r10", Reg64|BaseIndex, RegRex, 2 },
-  { "r11", Reg64|BaseIndex, RegRex, 3 },
-  { "r12", Reg64|BaseIndex, RegRex, 4 },
-  { "r13", Reg64|BaseIndex, RegRex, 5 },
-  { "r14", Reg64|BaseIndex, RegRex, 6 },
-  { "r15", Reg64|BaseIndex, RegRex, 7 },
-  { "es", SReg2, 0, 0 },
-  { "cs", SReg2, 0, 1 },
-  { "ss", SReg2, 0, 2 },
-  { "ds", SReg2, 0, 3 },
-  { "fs", SReg3, 0, 4 },
-  { "gs", SReg3, 0, 5 },
-  { "cr0", Control, 0, 0 },
-  { "cr1", Control, 0, 1 },
-  { "cr2", Control, 0, 2 },
-  { "cr3", Control, 0, 3 },
-  { "cr4", Control, 0, 4 },
-  { "cr5", Control, 0, 5 },
-  { "cr6", Control, 0, 6 },
-  { "cr7", Control, 0, 7 },
-  { "cr8", Control, RegRex, 0 },
-  { "cr9", Control, RegRex, 1 },
-  { "cr10", Control, RegRex, 2 },
-  { "cr11", Control, RegRex, 3 },
-  { "cr12", Control, RegRex, 4 },
-  { "cr13", Control, RegRex, 5 },
-  { "cr14", Control, RegRex, 6 },
-  { "cr15", Control, RegRex, 7 },
-  { "db0", Debug, 0, 0 },
-  { "db1", Debug, 0, 1 },
-  { "db2", Debug, 0, 2 },
-  { "db3", Debug, 0, 3 },
-  { "db4", Debug, 0, 4 },
-  { "db5", Debug, 0, 5 },
-  { "db6", Debug, 0, 6 },
-  { "db7", Debug, 0, 7 },
-  { "db8", Debug, RegRex, 0 },
-  { "db9", Debug, RegRex, 1 },
-  { "db10", Debug, RegRex, 2 },
-  { "db11", Debug, RegRex, 3 },
-  { "db12", Debug, RegRex, 4 },
-  { "db13", Debug, RegRex, 5 },
-  { "db14", Debug, RegRex, 6 },
-  { "db15", Debug, RegRex, 7 },
-  { "dr0", Debug, 0, 0 },
-  { "dr1", Debug, 0, 1 },
-  { "dr2", Debug, 0, 2 },
-  { "dr3", Debug, 0, 3 },
-  { "dr4", Debug, 0, 4 },
-  { "dr5", Debug, 0, 5 },
-  { "dr6", Debug, 0, 6 },
-  { "dr7", Debug, 0, 7 },
-  { "dr8", Debug, RegRex, 0 },
-  { "dr9", Debug, RegRex, 1 },
-  { "dr10", Debug, RegRex, 2 },
-  { "dr11", Debug, RegRex, 3 },
-  { "dr12", Debug, RegRex, 4 },
-  { "dr13", Debug, RegRex, 5 },
-  { "dr14", Debug, RegRex, 6 },
-  { "dr15", Debug, RegRex, 7 },
-  { "tr0", Test, 0, 0 },
-  { "tr1", Test, 0, 1 },
-  { "tr2", Test, 0, 2 },
-  { "tr3", Test, 0, 3 },
-  { "tr4", Test, 0, 4 },
-  { "tr5", Test, 0, 5 },
-  { "tr6", Test, 0, 6 },
-  { "tr7", Test, 0, 7 },
-  { "mm0", RegMMX, 0, 0 },
-  { "mm1", RegMMX, 0, 1 },
-  { "mm2", RegMMX, 0, 2 },
-  { "mm3", RegMMX, 0, 3 },
-  { "mm4", RegMMX, 0, 4 },
-  { "mm5", RegMMX, 0, 5 },
-  { "mm6", RegMMX, 0, 6 },
-  { "mm7", RegMMX, 0, 7 },
-  { "xmm0", RegXMM, 0, 0 },
-  { "xmm1", RegXMM, 0, 1 },
-  { "xmm2", RegXMM, 0, 2 },
-  { "xmm3", RegXMM, 0, 3 },
-  { "xmm4", RegXMM, 0, 4 },
-  { "xmm5", RegXMM, 0, 5 },
-  { "xmm6", RegXMM, 0, 6 },
-  { "xmm7", RegXMM, 0, 7 },
-  { "xmm8", RegXMM, RegRex, 0 },
-  { "xmm9", RegXMM, RegRex, 1 },
-  { "xmm10", RegXMM, RegRex, 2 },
-  { "xmm11", RegXMM, RegRex, 3 },
-  { "xmm12", RegXMM, RegRex, 4 },
-  { "xmm13", RegXMM, RegRex, 5 },
-  { "xmm14", RegXMM, RegRex, 6 },
-  { "xmm15", RegXMM, RegRex, 7 },
-  { "rip", BaseIndex, 0, 0 },
-  { "st(0)", FloatReg|FloatAcc, 0, 0 },
-  { "st(1)", FloatReg, 0, 1 },
-  { "st(2)", FloatReg, 0, 2 },
-  { "st(3)", FloatReg, 0, 3 },
-  { "st(4)", FloatReg, 0, 4 },
-  { "st(5)", FloatReg, 0, 5 },
-  { "st(6)", FloatReg, 0, 6 },
-  { "st(7)", FloatReg, 0, 7 },
+  { "st",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 0 },
+  { "al",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+    0, 0 },
+  { "cl",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 1 },
+  { "dl",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 2 },
+  { "bl",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 3 },
+  { "ah",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 4 },
+  { "ch",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 5 },
+  { "dh",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 6 },
+  { "bh",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 7 },
+  { "axl",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+    RegRex64, 0 },
+  { "cxl",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex64, 1 },
+  { "dxl",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex64, 2 },
+  { "bxl",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex64, 3 },
+  { "spl",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex64, 4 },
+  { "bpl",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex64, 5 },
+  { "sil",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex64, 6 },
+  { "dil",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex64, 7 },
+  { "r8b",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex|RegRex64, 0 },
+  { "r9b",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex|RegRex64, 1 },
+  { "r10b",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex|RegRex64, 2 },
+  { "r11b",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex|RegRex64, 3 },
+  { "r12b",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex|RegRex64, 4 },
+  { "r13b",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex|RegRex64, 5 },
+  { "r14b",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex|RegRex64, 6 },
+  { "r15b",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex|RegRex64, 7 },
+  { "ax",
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+    0, 0 },
+  { "cx",
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 1 },
+  { "dx",
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 2 },
+  { "bx",
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 3 },
+  { "sp",
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 4 },
+  { "bp",
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 5 },
+  { "si",
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 6 },
+  { "di",
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 7 },
+  { "r8w",
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 0 },
+  { "r9w",
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 1 },
+  { "r10w",
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 2 },
+  { "r11w",
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 3 },
+  { "r12w",
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 4 },
+  { "r13w",
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 5 },
+  { "r14w",
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 6 },
+  { "r15w",
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 7 },
+  { "eax",
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+    0, 0 },
+  { "ecx",
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 1 },
+  { "edx",
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 2 },
+  { "ebx",
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 3 },
+  { "esp",
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 4 },
+  { "ebp",
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 5 },
+  { "esi",
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 6 },
+  { "edi",
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 7 },
+  { "r8d",
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 0 },
+  { "r9d",
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 1 },
+  { "r10d",
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 2 },
+  { "r11d",
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 3 },
+  { "r12d",
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 4 },
+  { "r13d",
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 5 },
+  { "r14d",
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 6 },
+  { "r15d",
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 7 },
+  { "rax",
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+    0, 0 },
+  { "rcx",
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 1 },
+  { "rdx",
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 2 },
+  { "rbx",
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 3 },
+  { "rsp",
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 4 },
+  { "rbp",
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 5 },
+  { "rsi",
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 6 },
+  { "rdi",
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 7 },
+  { "r8",
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 0 },
+  { "r9",
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 1 },
+  { "r10",
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 2 },
+  { "r11",
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 3 },
+  { "r12",
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 4 },
+  { "r13",
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 5 },
+  { "r14",
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 6 },
+  { "r15",
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 7 },
+  { "es",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 0 },
+  { "cs",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 1 },
+  { "ss",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 2 },
+  { "ds",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 3 },
+  { "fs",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+    0, 4 },
+  { "gs",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+    0, 5 },
+  { "cr0",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 0 },
+  { "cr1",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 1 },
+  { "cr2",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 2 },
+  { "cr3",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 3 },
+  { "cr4",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 4 },
+  { "cr5",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 5 },
+  { "cr6",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 6 },
+  { "cr7",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 7 },
+  { "cr8",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 0 },
+  { "cr9",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 1 },
+  { "cr10",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 2 },
+  { "cr11",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 3 },
+  { "cr12",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 4 },
+  { "cr13",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 5 },
+  { "cr14",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 6 },
+  { "cr15",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 7 },
+  { "db0",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 0 },
+  { "db1",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 1 },
+  { "db2",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 2 },
+  { "db3",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 3 },
+  { "db4",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 4 },
+  { "db5",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 5 },
+  { "db6",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 6 },
+  { "db7",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 7 },
+  { "db8",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 0 },
+  { "db9",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 1 },
+  { "db10",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 2 },
+  { "db11",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 3 },
+  { "db12",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 4 },
+  { "db13",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 5 },
+  { "db14",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 6 },
+  { "db15",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 7 },
+  { "dr0",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 0 },
+  { "dr1",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 1 },
+  { "dr2",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 2 },
+  { "dr3",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 3 },
+  { "dr4",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 4 },
+  { "dr5",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 5 },
+  { "dr6",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 6 },
+  { "dr7",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 7 },
+  { "dr8",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 0 },
+  { "dr9",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 1 },
+  { "dr10",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 2 },
+  { "dr11",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 3 },
+  { "dr12",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 4 },
+  { "dr13",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 5 },
+  { "dr14",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 6 },
+  { "dr15",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    RegRex, 7 },
+  { "tr0",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 0 },
+  { "tr1",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 1 },
+  { "tr2",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 2 },
+  { "tr3",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 3 },
+  { "tr4",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 4 },
+  { "tr5",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 5 },
+  { "tr6",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 6 },
+  { "tr7",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 7 },
+  { "mm0",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+    0, 0 },
+  { "mm1",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+    0, 1 },
+  { "mm2",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+    0, 2 },
+  { "mm3",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+    0, 3 },
+  { "mm4",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+    0, 4 },
+  { "mm5",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+    0, 5 },
+  { "mm6",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+    0, 6 },
+  { "mm7",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+    0, 7 },
+  { "xmm0",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+    0, 0 },
+  { "xmm1",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+    0, 1 },
+  { "xmm2",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+    0, 2 },
+  { "xmm3",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+    0, 3 },
+  { "xmm4",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+    0, 4 },
+  { "xmm5",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+    0, 5 },
+  { "xmm6",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+    0, 6 },
+  { "xmm7",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+    0, 7 },
+  { "xmm8",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+    RegRex, 0 },
+  { "xmm9",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+    RegRex, 1 },
+  { "xmm10",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+    RegRex, 2 },
+  { "xmm11",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+    RegRex, 3 },
+  { "xmm12",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+    RegRex, 4 },
+  { "xmm13",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+    RegRex, 5 },
+  { "xmm14",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+    RegRex, 6 },
+  { "xmm15",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+    RegRex, 7 },
+  { "rip",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 0 },
+  { "st(0)",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 0 },
+  { "st(1)",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 1 },
+  { "st(2)",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 2 },
+  { "st(3)",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 3 },
+  { "st(4)",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 4 },
+  { "st(5)",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 5 },
+  { "st(6)",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 6 },
+  { "st(7)",
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    0, 7 },
 };
 
 const unsigned int i386_regtab_size = ARRAY_SIZE (i386_regtab);