Ignore:
Timestamp:
Feb 6, 2017, 1:00:00 PM (8 years ago)
Author:
Silvan Scherrer
Message:

binutils: update trunk to version 2.27

Location:
binutils/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • binutils/trunk

  • TabularUnified binutils/trunk/opcodes/i386-dis.c

    r970 r1973  
    11/* Print i386 instructions for GDB, the GNU debugger.
    2    Copyright (C) 1988-2014 Free Software Foundation, Inc.
     2   Copyright (C) 1988-2016 Free Software Foundation, Inc.
    33
    44   This file is part of the GNU opcodes library.
     
    103103static void OP_Monitor (int, int);
    104104static void OP_Mwait (int, int);
     105static void OP_Mwaitx (int, int);
    105106static void NOP_Fixup1 (int, int);
    106107static void NOP_Fixup2 (int, int);
     
    222223}
    223224
     225/* Possible values for prefix requirement.  */
     226#define PREFIX_IGNORED_SHIFT    16
     227#define PREFIX_IGNORED_REPZ     (PREFIX_REPZ << PREFIX_IGNORED_SHIFT)
     228#define PREFIX_IGNORED_REPNZ    (PREFIX_REPNZ << PREFIX_IGNORED_SHIFT)
     229#define PREFIX_IGNORED_DATA     (PREFIX_DATA << PREFIX_IGNORED_SHIFT)
     230#define PREFIX_IGNORED_ADDR     (PREFIX_ADDR << PREFIX_IGNORED_SHIFT)
     231#define PREFIX_IGNORED_LOCK     (PREFIX_LOCK << PREFIX_IGNORED_SHIFT)
     232
     233/* Opcode prefixes.  */
     234#define PREFIX_OPCODE           (PREFIX_REPZ \
     235                                 | PREFIX_REPNZ \
     236                                 | PREFIX_DATA)
     237
     238/* Prefixes ignored.  */
     239#define PREFIX_IGNORED          (PREFIX_IGNORED_REPZ \
     240                                 | PREFIX_IGNORED_REPNZ \
     241                                 | PREFIX_IGNORED_DATA)
     242
    224243#define XX { NULL, 0 }
    225 #define Bad_Opcode NULL, { { NULL, 0 } }
     244#define Bad_Opcode NULL, { { NULL, 0 } }, 0
    226245
    227246#define Eb { OP_E, b_mode }
     
    240259#define Edqd { OP_E, dqd_mode }
    241260#define Eq { OP_E, q_mode }
    242 #define indirEv { OP_indirE, stack_v_mode }
     261#define indirEv { OP_indirE, indir_v_mode }
    243262#define indirEp { OP_indirE, f_mode }
    244263#define stackEv { OP_E, stack_v_mode }
     
    543562  f_mode,
    544563  const_1_mode,
     564  /* v_mode for indirect branch opcodes.  */
     565  indir_v_mode,
    545566  /* v_mode for stack-related opcodes.  */
    546567  stack_v_mode,
     
    664685};
    665686
    666 #define FLOAT                   NULL, { { NULL, FLOATCODE } }
    667 
    668 #define DIS386(T, I)            NULL, { { NULL, (T)}, { NULL,  (I) } }
     687#define FLOAT                   NULL, { { NULL, FLOATCODE } }, 0
     688
     689#define DIS386(T, I)            NULL, { { NULL, (T)}, { NULL,  (I) } }, 0
     690#define DIS386_PREFIX(T, I, P)          NULL, { { NULL, (T)}, { NULL,  (I) } }, P
    669691#define REG_TABLE(I)            DIS386 (USE_REG_TABLE, (I))
    670692#define MOD_TABLE(I)            DIS386 (USE_MOD_TABLE, (I))
     
    673695#define X86_64_TABLE(I)         DIS386 (USE_X86_64_TABLE, (I))
    674696#define THREE_BYTE_TABLE(I)     DIS386 (USE_3BYTE_TABLE, (I))
     697#define THREE_BYTE_TABLE_PREFIX(I, P)   DIS386_PREFIX (USE_3BYTE_TABLE, (I), P)
    675698#define XOP_8F_TABLE(I)         DIS386 (USE_XOP_8F_TABLE, (I))
    676699#define VEX_C4_TABLE(I)         DIS386 (USE_VEX_C4_TABLE, (I))
     
    738761  MOD_0F01_REG_2,
    739762  MOD_0F01_REG_3,
     763  MOD_0F01_REG_5,
    740764  MOD_0F01_REG_7,
    741765  MOD_0F12_PREFIX_0,
     
    782806  MOD_0FB4,
    783807  MOD_0FB5,
     808  MOD_0FC3,
    784809  MOD_0FC7_REG_3,
    785810  MOD_0FC7_REG_4,
     
    799824  MOD_VEX_0F17,
    800825  MOD_VEX_0F2B,
     826  MOD_VEX_W_0_0F41_P_0_LEN_1,
     827  MOD_VEX_W_1_0F41_P_0_LEN_1,
     828  MOD_VEX_W_0_0F41_P_2_LEN_1,
     829  MOD_VEX_W_1_0F41_P_2_LEN_1,
     830  MOD_VEX_W_0_0F42_P_0_LEN_1,
     831  MOD_VEX_W_1_0F42_P_0_LEN_1,
     832  MOD_VEX_W_0_0F42_P_2_LEN_1,
     833  MOD_VEX_W_1_0F42_P_2_LEN_1,
     834  MOD_VEX_W_0_0F44_P_0_LEN_1,
     835  MOD_VEX_W_1_0F44_P_0_LEN_1,
     836  MOD_VEX_W_0_0F44_P_2_LEN_1,
     837  MOD_VEX_W_1_0F44_P_2_LEN_1,
     838  MOD_VEX_W_0_0F45_P_0_LEN_1,
     839  MOD_VEX_W_1_0F45_P_0_LEN_1,
     840  MOD_VEX_W_0_0F45_P_2_LEN_1,
     841  MOD_VEX_W_1_0F45_P_2_LEN_1,
     842  MOD_VEX_W_0_0F46_P_0_LEN_1,
     843  MOD_VEX_W_1_0F46_P_0_LEN_1,
     844  MOD_VEX_W_0_0F46_P_2_LEN_1,
     845  MOD_VEX_W_1_0F46_P_2_LEN_1,
     846  MOD_VEX_W_0_0F47_P_0_LEN_1,
     847  MOD_VEX_W_1_0F47_P_0_LEN_1,
     848  MOD_VEX_W_0_0F47_P_2_LEN_1,
     849  MOD_VEX_W_1_0F47_P_2_LEN_1,
     850  MOD_VEX_W_0_0F4A_P_0_LEN_1,
     851  MOD_VEX_W_1_0F4A_P_0_LEN_1,
     852  MOD_VEX_W_0_0F4A_P_2_LEN_1,
     853  MOD_VEX_W_1_0F4A_P_2_LEN_1,
     854  MOD_VEX_W_0_0F4B_P_0_LEN_1,
     855  MOD_VEX_W_1_0F4B_P_0_LEN_1,
     856  MOD_VEX_W_0_0F4B_P_2_LEN_1,
    801857  MOD_VEX_0F50,
    802858  MOD_VEX_0F71_REG_2,
     
    810866  MOD_VEX_0F73_REG_6,
    811867  MOD_VEX_0F73_REG_7,
     868  MOD_VEX_W_0_0F91_P_0_LEN_0,
     869  MOD_VEX_W_1_0F91_P_0_LEN_0,
     870  MOD_VEX_W_0_0F91_P_2_LEN_0,
     871  MOD_VEX_W_1_0F91_P_2_LEN_0,
     872  MOD_VEX_W_0_0F92_P_0_LEN_0,
     873  MOD_VEX_W_0_0F92_P_2_LEN_0,
     874  MOD_VEX_W_0_0F92_P_3_LEN_0,
     875  MOD_VEX_W_1_0F92_P_3_LEN_0,
     876  MOD_VEX_W_0_0F93_P_0_LEN_0,
     877  MOD_VEX_W_0_0F93_P_2_LEN_0,
     878  MOD_VEX_W_0_0F93_P_3_LEN_0,
     879  MOD_VEX_W_1_0F93_P_3_LEN_0,
     880  MOD_VEX_W_0_0F98_P_0_LEN_0,
     881  MOD_VEX_W_1_0F98_P_0_LEN_0,
     882  MOD_VEX_W_0_0F98_P_2_LEN_0,
     883  MOD_VEX_W_1_0F98_P_2_LEN_0,
     884  MOD_VEX_W_0_0F99_P_0_LEN_0,
     885  MOD_VEX_W_1_0F99_P_0_LEN_0,
     886  MOD_VEX_W_0_0F99_P_2_LEN_0,
     887  MOD_VEX_W_1_0F99_P_2_LEN_0,
    812888  MOD_VEX_0FAE_REG_2,
    813889  MOD_VEX_0FAE_REG_3,
     
    824900  MOD_VEX_0F388C_PREFIX_2,
    825901  MOD_VEX_0F388E_PREFIX_2,
     902  MOD_VEX_W_0_0F3A30_P_2_LEN_0,
     903  MOD_VEX_W_1_0F3A30_P_2_LEN_0,
     904  MOD_VEX_W_0_0F3A31_P_2_LEN_0,
     905  MOD_VEX_W_1_0F3A31_P_2_LEN_0,
     906  MOD_VEX_W_0_0F3A32_P_2_LEN_0,
     907  MOD_VEX_W_1_0F3A32_P_2_LEN_0,
     908  MOD_VEX_W_0_0F3A33_P_2_LEN_0,
     909  MOD_VEX_W_1_0F3A33_P_2_LEN_0,
    826910
    827911  MOD_EVEX_0F10_PREFIX_1,
     
    849933  RM_0F01_REG_2,
    850934  RM_0F01_REG_3,
     935  RM_0F01_REG_5,
    851936  RM_0F01_REG_7,
    852937  RM_0FAE_REG_5,
     
    907992  PREFIX_0FBD,
    908993  PREFIX_0FC2,
    909   PREFIX_0FC3,
    910   PREFIX_0FC7_REG_6,
     994  PREFIX_MOD_0_0FC3,
     995  PREFIX_MOD_0_0FC7_REG_6,
     996  PREFIX_MOD_3_0FC7_REG_6,
     997  PREFIX_MOD_3_0FC7_REG_7,
    911998  PREFIX_0FD0,
    912999  PREFIX_0FD6,
     
    16111698  X86_64_D4,
    16121699  X86_64_D5,
     1700  X86_64_E8,
     1701  X86_64_E9,
    16131702  X86_64_EA,
    16141703  X86_64_0F01_REG_0,
     
    23522441      int bytemode;
    23532442    } op[MAX_OPERANDS];
     2443  unsigned int prefix_requirement;
    23542444};
    23552445
     
    23792469   'R' => print 'w', 'l' or 'q' ('d' for 'l' and 'e' in Intel mode)
    23802470   'S' => print 'w', 'l' or 'q' if suffix_always is true
    2381    'T' => print 'q' in 64bit mode and behave as 'P' otherwise
    2382    'U' => print 'q' in 64bit mode and behave as 'Q' otherwise
    2383    'V' => print 'q' in 64bit mode and behave as 'S' otherwise
     2471   'T' => print 'q' in 64bit mode if instruction has no operand size
     2472          prefix and behave as 'P' otherwise
     2473   'U' => print 'q' in 64bit mode if instruction has no operand size
     2474          prefix and behave as 'Q' otherwise
     2475   'V' => print 'q' in 64bit mode if instruction has no operand size
     2476          prefix and behave as 'S' otherwise
    23842477   'W' => print 'b', 'w' or 'l' ('d' in Intel mode)
    23852478   'X' => print 's', 'd' depending on data16 prefix (for XMM)
     
    23892482   '!' => change condition from true to false or from false to true.
    23902483   '%' => add 1 upper case letter to the macro.
     2484   '^' => print 'w' or 'l' depending on operand size prefix or
     2485          suffix_always is true (lcall/ljmp).
     2486   '@' => print 'q' for Intel64 ISA, 'w' or 'q' for AMD64 ISA depending
     2487          on operand size prefix.
     2488   '&' => print 'q' in 64bit mode for Intel64 ISA or if instruction
     2489          has no operand size prefix for AMD64 ISA, behave as 'P'
     2490          otherwise
    23912491
    23922492   2 upper case letter macros:
    2393    "XY" => print 'x' or 'y' if no register operands or suffix_always
    2394            is true.
     2493   "XY" => print 'x' or 'y' if suffix_always is true or no register
     2494           operands and no broadcast.
     2495   "XZ" => print 'x', 'y', or 'z' if suffix_always is true or no
     2496           register operands and no broadcast.
    23952497   "XW" => print 's', 'd' depending on the VEX.W bit (for FMA)
    23962498   "LQ" => print 'l' ('d' in Intel mode) or 'q' for memory operand
     
    24122514static const struct dis386 dis386[] = {
    24132515  /* 00 */
    2414   { "addB",             { Ebh1, Gb } },
    2415   { "addS",             { Evh1, Gv } },
    2416   { "addB",             { Gb, EbS } },
    2417   { "addS",             { Gv, EvS } },
    2418   { "addB",             { AL, Ib } },
    2419   { "addS",             { eAX, Iv } },
     2516  { "addB",             { Ebh1, Gb }, 0 },
     2517  { "addS",             { Evh1, Gv }, 0 },
     2518  { "addB",             { Gb, EbS }, 0 },
     2519  { "addS",             { Gv, EvS }, 0 },
     2520  { "addB",             { AL, Ib }, 0 },
     2521  { "addS",             { eAX, Iv }, 0 },
    24202522  { X86_64_TABLE (X86_64_06) },
    24212523  { X86_64_TABLE (X86_64_07) },
    24222524  /* 08 */
    2423   { "orB",              { Ebh1, Gb } },
    2424   { "orS",              { Evh1, Gv } },
    2425   { "orB",              { Gb, EbS } },
    2426   { "orS",              { Gv, EvS } },
    2427   { "orB",              { AL, Ib } },
    2428   { "orS",              { eAX, Iv } },
     2525  { "orB",              { Ebh1, Gb }, 0 },
     2526  { "orS",              { Evh1, Gv }, 0 },
     2527  { "orB",              { Gb, EbS }, 0 },
     2528  { "orS",              { Gv, EvS }, 0 },
     2529  { "orB",              { AL, Ib }, 0 },
     2530  { "orS",              { eAX, Iv }, 0 },
    24292531  { X86_64_TABLE (X86_64_0D) },
    24302532  { Bad_Opcode },       /* 0x0f extended opcode escape */
    24312533  /* 10 */
    2432   { "adcB",             { Ebh1, Gb } },
    2433   { "adcS",             { Evh1, Gv } },
    2434   { "adcB",             { Gb, EbS } },
    2435   { "adcS",             { Gv, EvS } },
    2436   { "adcB",             { AL, Ib } },
    2437   { "adcS",             { eAX, Iv } },
     2534  { "adcB",             { Ebh1, Gb }, 0 },
     2535  { "adcS",             { Evh1, Gv }, 0 },
     2536  { "adcB",             { Gb, EbS }, 0 },
     2537  { "adcS",             { Gv, EvS }, 0 },
     2538  { "adcB",             { AL, Ib }, 0 },
     2539  { "adcS",             { eAX, Iv }, 0 },
    24382540  { X86_64_TABLE (X86_64_16) },
    24392541  { X86_64_TABLE (X86_64_17) },
    24402542  /* 18 */
    2441   { "sbbB",             { Ebh1, Gb } },
    2442   { "sbbS",             { Evh1, Gv } },
    2443   { "sbbB",             { Gb, EbS } },
    2444   { "sbbS",             { Gv, EvS } },
    2445   { "sbbB",             { AL, Ib } },
    2446   { "sbbS",             { eAX, Iv } },
     2543  { "sbbB",             { Ebh1, Gb }, 0 },
     2544  { "sbbS",             { Evh1, Gv }, 0 },
     2545  { "sbbB",             { Gb, EbS }, 0 },
     2546  { "sbbS",             { Gv, EvS }, 0 },
     2547  { "sbbB",             { AL, Ib }, 0 },
     2548  { "sbbS",             { eAX, Iv }, 0 },
    24472549  { X86_64_TABLE (X86_64_1E) },
    24482550  { X86_64_TABLE (X86_64_1F) },
    24492551  /* 20 */
    2450   { "andB",             { Ebh1, Gb } },
    2451   { "andS",             { Evh1, Gv } },
    2452   { "andB",             { Gb, EbS } },
    2453   { "andS",             { Gv, EvS } },
    2454   { "andB",             { AL, Ib } },
    2455   { "andS",             { eAX, Iv } },
     2552  { "andB",             { Ebh1, Gb }, 0 },
     2553  { "andS",             { Evh1, Gv }, 0 },
     2554  { "andB",             { Gb, EbS }, 0 },
     2555  { "andS",             { Gv, EvS }, 0 },
     2556  { "andB",             { AL, Ib }, 0 },
     2557  { "andS",             { eAX, Iv }, 0 },
    24562558  { Bad_Opcode },       /* SEG ES prefix */
    24572559  { X86_64_TABLE (X86_64_27) },
    24582560  /* 28 */
    2459   { "subB",             { Ebh1, Gb } },
    2460   { "subS",             { Evh1, Gv } },
    2461   { "subB",             { Gb, EbS } },
    2462   { "subS",             { Gv, EvS } },
    2463   { "subB",             { AL, Ib } },
    2464   { "subS",             { eAX, Iv } },
     2561  { "subB",             { Ebh1, Gb }, 0 },
     2562  { "subS",             { Evh1, Gv }, 0 },
     2563  { "subB",             { Gb, EbS }, 0 },
     2564  { "subS",             { Gv, EvS }, 0 },
     2565  { "subB",             { AL, Ib }, 0 },
     2566  { "subS",             { eAX, Iv }, 0 },
    24652567  { Bad_Opcode },       /* SEG CS prefix */
    24662568  { X86_64_TABLE (X86_64_2F) },
    24672569  /* 30 */
    2468   { "xorB",             { Ebh1, Gb } },
    2469   { "xorS",             { Evh1, Gv } },
    2470   { "xorB",             { Gb, EbS } },
    2471   { "xorS",             { Gv, EvS } },
    2472   { "xorB",             { AL, Ib } },
    2473   { "xorS",             { eAX, Iv } },
     2570  { "xorB",             { Ebh1, Gb }, 0 },
     2571  { "xorS",             { Evh1, Gv }, 0 },
     2572  { "xorB",             { Gb, EbS }, 0 },
     2573  { "xorS",             { Gv, EvS }, 0 },
     2574  { "xorB",             { AL, Ib }, 0 },
     2575  { "xorS",             { eAX, Iv }, 0 },
    24742576  { Bad_Opcode },       /* SEG SS prefix */
    24752577  { X86_64_TABLE (X86_64_37) },
    24762578  /* 38 */
    2477   { "cmpB",             { Eb, Gb } },
    2478   { "cmpS",             { Ev, Gv } },
    2479   { "cmpB",             { Gb, EbS } },
    2480   { "cmpS",             { Gv, EvS } },
    2481   { "cmpB",             { AL, Ib } },
    2482   { "cmpS",             { eAX, Iv } },
     2579  { "cmpB",             { Eb, Gb }, 0 },
     2580  { "cmpS",             { Ev, Gv }, 0 },
     2581  { "cmpB",             { Gb, EbS }, 0 },
     2582  { "cmpS",             { Gv, EvS }, 0 },
     2583  { "cmpB",             { AL, Ib }, 0 },
     2584  { "cmpS",             { eAX, Iv }, 0 },
    24832585  { Bad_Opcode },       /* SEG DS prefix */
    24842586  { X86_64_TABLE (X86_64_3F) },
    24852587  /* 40 */
    2486   { "inc{S|}",          { RMeAX } },
    2487   { "inc{S|}",          { RMeCX } },
    2488   { "inc{S|}",          { RMeDX } },
    2489   { "inc{S|}",          { RMeBX } },
    2490   { "inc{S|}",          { RMeSP } },
    2491   { "inc{S|}",          { RMeBP } },
    2492   { "inc{S|}",          { RMeSI } },
    2493   { "inc{S|}",          { RMeDI } },
     2588  { "inc{S|}",          { RMeAX }, 0 },
     2589  { "inc{S|}",          { RMeCX }, 0 },
     2590  { "inc{S|}",          { RMeDX }, 0 },
     2591  { "inc{S|}",          { RMeBX }, 0 },
     2592  { "inc{S|}",          { RMeSP }, 0 },
     2593  { "inc{S|}",          { RMeBP }, 0 },
     2594  { "inc{S|}",          { RMeSI }, 0 },
     2595  { "inc{S|}",          { RMeDI }, 0 },
    24942596  /* 48 */
    2495   { "dec{S|}",          { RMeAX } },
    2496   { "dec{S|}",          { RMeCX } },
    2497   { "dec{S|}",          { RMeDX } },
    2498   { "dec{S|}",          { RMeBX } },
    2499   { "dec{S|}",          { RMeSP } },
    2500   { "dec{S|}",          { RMeBP } },
    2501   { "dec{S|}",          { RMeSI } },
    2502   { "dec{S|}",          { RMeDI } },
     2597  { "dec{S|}",          { RMeAX }, 0 },
     2598  { "dec{S|}",          { RMeCX }, 0 },
     2599  { "dec{S|}",          { RMeDX }, 0 },
     2600  { "dec{S|}",          { RMeBX }, 0 },
     2601  { "dec{S|}",          { RMeSP }, 0 },
     2602  { "dec{S|}",          { RMeBP }, 0 },
     2603  { "dec{S|}",          { RMeSI }, 0 },
     2604  { "dec{S|}",          { RMeDI }, 0 },
    25032605  /* 50 */
    2504   { "pushV",            { RMrAX } },
    2505   { "pushV",            { RMrCX } },
    2506   { "pushV",            { RMrDX } },
    2507   { "pushV",            { RMrBX } },
    2508   { "pushV",            { RMrSP } },
    2509   { "pushV",            { RMrBP } },
    2510   { "pushV",            { RMrSI } },
    2511   { "pushV",            { RMrDI } },
     2606  { "pushV",            { RMrAX }, 0 },
     2607  { "pushV",            { RMrCX }, 0 },
     2608  { "pushV",            { RMrDX }, 0 },
     2609  { "pushV",            { RMrBX }, 0 },
     2610  { "pushV",            { RMrSP }, 0 },
     2611  { "pushV",            { RMrBP }, 0 },
     2612  { "pushV",            { RMrSI }, 0 },
     2613  { "pushV",            { RMrDI }, 0 },
    25122614  /* 58 */
    2513   { "popV",             { RMrAX } },
    2514   { "popV",             { RMrCX } },
    2515   { "popV",             { RMrDX } },
    2516   { "popV",             { RMrBX } },
    2517   { "popV",             { RMrSP } },
    2518   { "popV",             { RMrBP } },
    2519   { "popV",             { RMrSI } },
    2520   { "popV",             { RMrDI } },
     2615  { "popV",             { RMrAX }, 0 },
     2616  { "popV",             { RMrCX }, 0 },
     2617  { "popV",             { RMrDX }, 0 },
     2618  { "popV",             { RMrBX }, 0 },
     2619  { "popV",             { RMrSP }, 0 },
     2620  { "popV",             { RMrBP }, 0 },
     2621  { "popV",             { RMrSI }, 0 },
     2622  { "popV",             { RMrDI }, 0 },
    25212623  /* 60 */
    25222624  { X86_64_TABLE (X86_64_60) },
     
    25292631  { Bad_Opcode },       /* adr size prefix */
    25302632  /* 68 */
    2531   { "pushT",            { sIv } },
    2532   { "imulS",            { Gv, Ev, Iv } },
    2533   { "pushT",            { sIbT } },
    2534   { "imulS",            { Gv, Ev, sIb } },
    2535   { "ins{b|}",          { Ybr, indirDX } },
     2633  { "pushT",            { sIv }, 0 },
     2634  { "imulS",            { Gv, Ev, Iv }, 0 },
     2635  { "pushT",            { sIbT }, 0 },
     2636  { "imulS",            { Gv, Ev, sIb }, 0 },
     2637  { "ins{b|}",          { Ybr, indirDX }, 0 },
    25362638  { X86_64_TABLE (X86_64_6D) },
    2537   { "outs{b|}",         { indirDXr, Xb } },
     2639  { "outs{b|}",         { indirDXr, Xb }, 0 },
    25382640  { X86_64_TABLE (X86_64_6F) },
    25392641  /* 70 */
    2540   { "joH",              { Jb, BND, cond_jump_flag } },
    2541   { "jnoH",             { Jb, BND, cond_jump_flag } },
    2542   { "jbH",              { Jb, BND, cond_jump_flag } },
    2543   { "jaeH",             { Jb, BND, cond_jump_flag } },
    2544   { "jeH",              { Jb, BND, cond_jump_flag } },
    2545   { "jneH",             { Jb, BND, cond_jump_flag } },
    2546   { "jbeH",             { Jb, BND, cond_jump_flag } },
    2547   { "jaH",              { Jb, BND, cond_jump_flag } },
     2642  { "joH",              { Jb, BND, cond_jump_flag }, 0 },
     2643  { "jnoH",             { Jb, BND, cond_jump_flag }, 0 },
     2644  { "jbH",              { Jb, BND, cond_jump_flag }, 0 },
     2645  { "jaeH",             { Jb, BND, cond_jump_flag }, 0 },
     2646  { "jeH",              { Jb, BND, cond_jump_flag }, 0 },
     2647  { "jneH",             { Jb, BND, cond_jump_flag }, 0 },
     2648  { "jbeH",             { Jb, BND, cond_jump_flag }, 0 },
     2649  { "jaH",              { Jb, BND, cond_jump_flag }, 0 },
    25482650  /* 78 */
    2549   { "jsH",              { Jb, BND, cond_jump_flag } },
    2550   { "jnsH",             { Jb, BND, cond_jump_flag } },
    2551   { "jpH",              { Jb, BND, cond_jump_flag } },
    2552   { "jnpH",             { Jb, BND, cond_jump_flag } },
    2553   { "jlH",              { Jb, BND, cond_jump_flag } },
    2554   { "jgeH",             { Jb, BND, cond_jump_flag } },
    2555   { "jleH",             { Jb, BND, cond_jump_flag } },
    2556   { "jgH",              { Jb, BND, cond_jump_flag } },
     2651  { "jsH",              { Jb, BND, cond_jump_flag }, 0 },
     2652  { "jnsH",             { Jb, BND, cond_jump_flag }, 0 },
     2653  { "jpH",              { Jb, BND, cond_jump_flag }, 0 },
     2654  { "jnpH",             { Jb, BND, cond_jump_flag }, 0 },
     2655  { "jlH",              { Jb, BND, cond_jump_flag }, 0 },
     2656  { "jgeH",             { Jb, BND, cond_jump_flag }, 0 },
     2657  { "jleH",             { Jb, BND, cond_jump_flag }, 0 },
     2658  { "jgH",              { Jb, BND, cond_jump_flag }, 0 },
    25572659  /* 80 */
    25582660  { REG_TABLE (REG_80) },
     
    25602662  { Bad_Opcode },
    25612663  { REG_TABLE (REG_82) },
    2562   { "testB",            { Eb, Gb } },
    2563   { "testS",            { Ev, Gv } },
    2564   { "xchgB",            { Ebh2, Gb } },
    2565   { "xchgS",            { Evh2, Gv } },
     2664  { "testB",            { Eb, Gb }, 0 },
     2665  { "testS",            { Ev, Gv }, 0 },
     2666  { "xchgB",            { Ebh2, Gb }, 0 },
     2667  { "xchgS",            { Evh2, Gv }, 0 },
    25662668  /* 88 */
    2567   { "movB",             { Ebh3, Gb } },
    2568   { "movS",             { Evh3, Gv } },
    2569   { "movB",             { Gb, EbS } },
    2570   { "movS",             { Gv, EvS } },
    2571   { "movD",             { Sv, Sw } },
     2669  { "movB",             { Ebh3, Gb }, 0 },
     2670  { "movS",             { Evh3, Gv }, 0 },
     2671  { "movB",             { Gb, EbS }, 0 },
     2672  { "movS",             { Gv, EvS }, 0 },
     2673  { "movD",             { Sv, Sw }, 0 },
    25722674  { MOD_TABLE (MOD_8D) },
    2573   { "movD",             { Sw, Sv } },
     2675  { "movD",             { Sw, Sv }, 0 },
    25742676  { REG_TABLE (REG_8F) },
    25752677  /* 90 */
    25762678  { PREFIX_TABLE (PREFIX_90) },
    2577   { "xchgS",            { RMeCX, eAX } },
    2578   { "xchgS",            { RMeDX, eAX } },
    2579   { "xchgS",            { RMeBX, eAX } },
    2580   { "xchgS",            { RMeSP, eAX } },
    2581   { "xchgS",            { RMeBP, eAX } },
    2582   { "xchgS",            { RMeSI, eAX } },
    2583   { "xchgS",            { RMeDI, eAX } },
     2679  { "xchgS",            { RMeCX, eAX }, 0 },
     2680  { "xchgS",            { RMeDX, eAX }, 0 },
     2681  { "xchgS",            { RMeBX, eAX }, 0 },
     2682  { "xchgS",            { RMeSP, eAX }, 0 },
     2683  { "xchgS",            { RMeBP, eAX }, 0 },
     2684  { "xchgS",            { RMeSI, eAX }, 0 },
     2685  { "xchgS",            { RMeDI, eAX }, 0 },
    25842686  /* 98 */
    2585   { "cW{t|}R",          { XX } },
    2586   { "cR{t|}O",          { XX } },
     2687  { "cW{t|}R",          { XX }, 0 },
     2688  { "cR{t|}O",          { XX }, 0 },
    25872689  { X86_64_TABLE (X86_64_9A) },
    25882690  { Bad_Opcode },       /* fwait */
    2589   { "pushfT",           { XX } },
    2590   { "popfT",            { XX } },
    2591   { "sahf",             { XX } },
    2592   { "lahf",             { XX } },
     2691  { "pushfT",           { XX }, 0 },
     2692  { "popfT",            { XX }, 0 },
     2693  { "sahf",             { XX }, 0 },
     2694  { "lahf",             { XX }, 0 },
    25932695  /* a0 */
    2594   { "mov%LB",           { AL, Ob } },
    2595   { "mov%LS",           { eAX, Ov } },
    2596   { "mov%LB",           { Ob, AL } },
    2597   { "mov%LS",           { Ov, eAX } },
    2598   { "movs{b|}",         { Ybr, Xb } },
    2599   { "movs{R|}",         { Yvr, Xv } },
    2600   { "cmps{b|}",         { Xb, Yb } },
    2601   { "cmps{R|}",         { Xv, Yv } },
     2696  { "mov%LB",           { AL, Ob }, 0 },
     2697  { "mov%LS",           { eAX, Ov }, 0 },
     2698  { "mov%LB",           { Ob, AL }, 0 },
     2699  { "mov%LS",           { Ov, eAX }, 0 },
     2700  { "movs{b|}",         { Ybr, Xb }, 0 },
     2701  { "movs{R|}",         { Yvr, Xv }, 0 },
     2702  { "cmps{b|}",         { Xb, Yb }, 0 },
     2703  { "cmps{R|}",         { Xv, Yv }, 0 },
    26022704  /* a8 */
    2603   { "testB",            { AL, Ib } },
    2604   { "testS",            { eAX, Iv } },
    2605   { "stosB",            { Ybr, AL } },
    2606   { "stosS",            { Yvr, eAX } },
    2607   { "lodsB",            { ALr, Xb } },
    2608   { "lodsS",            { eAXr, Xv } },
    2609   { "scasB",            { AL, Yb } },
    2610   { "scasS",            { eAX, Yv } },
     2705  { "testB",            { AL, Ib }, 0 },
     2706  { "testS",            { eAX, Iv }, 0 },
     2707  { "stosB",            { Ybr, AL }, 0 },
     2708  { "stosS",            { Yvr, eAX }, 0 },
     2709  { "lodsB",            { ALr, Xb }, 0 },
     2710  { "lodsS",            { eAXr, Xv }, 0 },
     2711  { "scasB",            { AL, Yb }, 0 },
     2712  { "scasS",            { eAX, Yv }, 0 },
    26112713  /* b0 */
    2612   { "movB",             { RMAL, Ib } },
    2613   { "movB",             { RMCL, Ib } },
    2614   { "movB",             { RMDL, Ib } },
    2615   { "movB",             { RMBL, Ib } },
    2616   { "movB",             { RMAH, Ib } },
    2617   { "movB",             { RMCH, Ib } },
    2618   { "movB",             { RMDH, Ib } },
    2619   { "movB",             { RMBH, Ib } },
     2714  { "movB",             { RMAL, Ib }, 0 },
     2715  { "movB",             { RMCL, Ib }, 0 },
     2716  { "movB",             { RMDL, Ib }, 0 },
     2717  { "movB",             { RMBL, Ib }, 0 },
     2718  { "movB",             { RMAH, Ib }, 0 },
     2719  { "movB",             { RMCH, Ib }, 0 },
     2720  { "movB",             { RMDH, Ib }, 0 },
     2721  { "movB",             { RMBH, Ib }, 0 },
    26202722  /* b8 */
    2621   { "mov%LV",           { RMeAX, Iv64 } },
    2622   { "mov%LV",           { RMeCX, Iv64 } },
    2623   { "mov%LV",           { RMeDX, Iv64 } },
    2624   { "mov%LV",           { RMeBX, Iv64 } },
    2625   { "mov%LV",           { RMeSP, Iv64 } },
    2626   { "mov%LV",           { RMeBP, Iv64 } },
    2627   { "mov%LV",           { RMeSI, Iv64 } },
    2628   { "mov%LV",           { RMeDI, Iv64 } },
     2723  { "mov%LV",           { RMeAX, Iv64 }, 0 },
     2724  { "mov%LV",           { RMeCX, Iv64 }, 0 },
     2725  { "mov%LV",           { RMeDX, Iv64 }, 0 },
     2726  { "mov%LV",           { RMeBX, Iv64 }, 0 },
     2727  { "mov%LV",           { RMeSP, Iv64 }, 0 },
     2728  { "mov%LV",           { RMeBP, Iv64 }, 0 },
     2729  { "mov%LV",           { RMeSI, Iv64 }, 0 },
     2730  { "mov%LV",           { RMeDI, Iv64 }, 0 },
    26292731  /* c0 */
    26302732  { REG_TABLE (REG_C0) },
    26312733  { REG_TABLE (REG_C1) },
    2632   { "retT",             { Iw, BND } },
    2633   { "retT",             { BND } },
     2734  { "retT",             { Iw, BND }, 0 },
     2735  { "retT",             { BND }, 0 },
    26342736  { X86_64_TABLE (X86_64_C4) },
    26352737  { X86_64_TABLE (X86_64_C5) },
     
    26372739  { REG_TABLE (REG_C7) },
    26382740  /* c8 */
    2639   { "enterT",           { Iw, Ib } },
    2640   { "leaveT",           { XX } },
    2641   { "Jret{|f}P",        { Iw } },
    2642   { "Jret{|f}P",        { XX } },
    2643   { "int3",             { XX } },
    2644   { "int",              { Ib } },
     2741  { "enterT",           { Iw, Ib }, 0 },
     2742  { "leaveT",           { XX }, 0 },
     2743  { "Jret{|f}P",        { Iw }, 0 },
     2744  { "Jret{|f}P",        { XX }, 0 },
     2745  { "int3",             { XX }, 0 },
     2746  { "int",              { Ib }, 0 },
    26452747  { X86_64_TABLE (X86_64_CE) },
    2646   { "iret%LP",          { XX } },
     2748  { "iret%LP",          { XX }, 0 },
    26472749  /* d0 */
    26482750  { REG_TABLE (REG_D0) },
     
    26532755  { X86_64_TABLE (X86_64_D5) },
    26542756  { Bad_Opcode },
    2655   { "xlat",             { DSBX } },
     2757  { "xlat",             { DSBX }, 0 },
    26562758  /* d8 */
    26572759  { FLOAT },
     
    26642766  { FLOAT },
    26652767  /* e0 */
    2666   { "loopneFH",         { Jb, XX, loop_jcxz_flag } },
    2667   { "loopeFH",          { Jb, XX, loop_jcxz_flag } },
    2668   { "loopFH",           { Jb, XX, loop_jcxz_flag } },
    2669   { "jEcxzH",           { Jb, XX, loop_jcxz_flag } },
    2670   { "inB",              { AL, Ib } },
    2671   { "inG",              { zAX, Ib } },
    2672   { "outB",             { Ib, AL } },
    2673   { "outG",             { Ib, zAX } },
     2768  { "loopneFH",         { Jb, XX, loop_jcxz_flag }, 0 },
     2769  { "loopeFH",          { Jb, XX, loop_jcxz_flag }, 0 },
     2770  { "loopFH",           { Jb, XX, loop_jcxz_flag }, 0 },
     2771  { "jEcxzH",           { Jb, XX, loop_jcxz_flag }, 0 },
     2772  { "inB",              { AL, Ib }, 0 },
     2773  { "inG",              { zAX, Ib }, 0 },
     2774  { "outB",             { Ib, AL }, 0 },
     2775  { "outG",             { Ib, zAX }, 0 },
    26742776  /* e8 */
    2675   { "callT",            { Jv, BND } },
    2676   { "jmpT",             { Jv, BND } },
     2777  { X86_64_TABLE (X86_64_E8) },
     2778  { X86_64_TABLE (X86_64_E9) },
    26772779  { X86_64_TABLE (X86_64_EA) },
    2678   { "jmp",              { Jb, BND } },
    2679   { "inB",              { AL, indirDX } },
    2680   { "inG",              { zAX, indirDX } },
    2681   { "outB",             { indirDX, AL } },
    2682   { "outG",             { indirDX, zAX } },
     2780  { "jmp",              { Jb, BND }, 0 },
     2781  { "inB",              { AL, indirDX }, 0 },
     2782  { "inG",              { zAX, indirDX }, 0 },
     2783  { "outB",             { indirDX, AL }, 0 },
     2784  { "outG",             { indirDX, zAX }, 0 },
    26832785  /* f0 */
    26842786  { Bad_Opcode },       /* lock prefix */
    2685   { "icebp",            { XX } },
     2787  { "icebp",            { XX }, 0 },
    26862788  { Bad_Opcode },       /* repne */
    26872789  { Bad_Opcode },       /* repz */
    2688   { "hlt",              { XX } },
    2689   { "cmc",              { XX } },
     2790  { "hlt",              { XX }, 0 },
     2791  { "cmc",              { XX }, 0 },
    26902792  { REG_TABLE (REG_F6) },
    26912793  { REG_TABLE (REG_F7) },
    26922794  /* f8 */
    2693   { "clc",              { XX } },
    2694   { "stc",              { XX } },
    2695   { "cli",              { XX } },
    2696   { "sti",              { XX } },
    2697   { "cld",              { XX } },
    2698   { "std",              { XX } },
     2795  { "clc",              { XX }, 0 },
     2796  { "stc",              { XX }, 0 },
     2797  { "cli",              { XX }, 0 },
     2798  { "sti",              { XX }, 0 },
     2799  { "cld",              { XX }, 0 },
     2800  { "std",              { XX }, 0 },
    26992801  { REG_TABLE (REG_FE) },
    27002802  { REG_TABLE (REG_FF) },
     
    27052807  { REG_TABLE (REG_0F00 ) },
    27062808  { REG_TABLE (REG_0F01 ) },
    2707   { "larS",             { Gv, Ew } },
    2708   { "lslS",             { Gv, Ew } },
     2809  { "larS",             { Gv, Ew }, 0 },
     2810  { "lslS",             { Gv, Ew }, 0 },
    27092811  { Bad_Opcode },
    2710   { "syscall",          { XX } },
    2711   { "clts",             { XX } },
    2712   { "sysret%LP",                { XX } },
     2812  { "syscall",          { XX }, 0 },
     2813  { "clts",             { XX }, 0 },
     2814  { "sysret%LP",                { XX }, 0 },
    27132815  /* 08 */
    2714   { "invd",             { XX } },
    2715   { "wbinvd",           { XX } },
     2816  { "invd",             { XX }, 0 },
     2817  { "wbinvd",           { XX }, 0 },
    27162818  { Bad_Opcode },
    2717   { "ud2",              { XX } },
     2819  { "ud2",              { XX }, 0 },
    27182820  { Bad_Opcode },
    27192821  { REG_TABLE (REG_0F0D) },
    2720   { "femms",            { XX } },
    2721   { "",                 { MX, EM, OPSUF } }, /* See OP_3DNowSuffix.  */
     2822  { "femms",            { XX }, 0 },
     2823  { "",                 { MX, EM, OPSUF }, 0 }, /* See OP_3DNowSuffix.  */
    27222824  /* 10 */
    27232825  { PREFIX_TABLE (PREFIX_0F10) },
     
    27252827  { PREFIX_TABLE (PREFIX_0F12) },
    27262828  { MOD_TABLE (MOD_0F13) },
    2727   { "unpcklpX",         { XM, EXx } },
    2728   { "unpckhpX",         { XM, EXx } },
     2829  { "unpcklpX",         { XM, EXx }, PREFIX_OPCODE },
     2830  { "unpckhpX",         { XM, EXx }, PREFIX_OPCODE },
    27292831  { PREFIX_TABLE (PREFIX_0F16) },
    27302832  { MOD_TABLE (MOD_0F17) },
    27312833  /* 18 */
    27322834  { REG_TABLE (REG_0F18) },
    2733   { "nopQ",             { Ev } },
     2835  { "nopQ",             { Ev }, 0 },
    27342836  { PREFIX_TABLE (PREFIX_0F1A) },
    27352837  { PREFIX_TABLE (PREFIX_0F1B) },
    2736   { "nopQ",             { Ev } },
    2737   { "nopQ",             { Ev } },
    2738   { "nopQ",             { Ev } },
    2739   { "nopQ",             { Ev } },
     2838  { "nopQ",             { Ev }, 0 },
     2839  { "nopQ",             { Ev }, 0 },
     2840  { "nopQ",             { Ev }, 0 },
     2841  { "nopQ",             { Ev }, 0 },
    27402842  /* 20 */
    2741   { "movZ",             { Rm, Cm } },
    2742   { "movZ",             { Rm, Dm } },
    2743   { "movZ",             { Cm, Rm } },
    2744   { "movZ",             { Dm, Rm } },
     2843  { "movZ",             { Rm, Cm }, 0 },
     2844  { "movZ",             { Rm, Dm }, 0 },
     2845  { "movZ",             { Cm, Rm }, 0 },
     2846  { "movZ",             { Dm, Rm }, 0 },
    27452847  { MOD_TABLE (MOD_0F24) },
    27462848  { Bad_Opcode },
     
    27482850  { Bad_Opcode },
    27492851  /* 28 */
    2750   { "movapX",           { XM, EXx } },
    2751   { "movapX",           { EXxS, XM } },
     2852  { "movapX",           { XM, EXx }, PREFIX_OPCODE },
     2853  { "movapX",           { EXxS, XM }, PREFIX_OPCODE },
    27522854  { PREFIX_TABLE (PREFIX_0F2A) },
    27532855  { PREFIX_TABLE (PREFIX_0F2B) },
     
    27572859  { PREFIX_TABLE (PREFIX_0F2F) },
    27582860  /* 30 */
    2759   { "wrmsr",            { XX } },
    2760   { "rdtsc",            { XX } },
    2761   { "rdmsr",            { XX } },
    2762   { "rdpmc",            { XX } },
    2763   { "sysenter",         { XX } },
    2764   { "sysexit",          { XX } },
     2861  { "wrmsr",            { XX }, 0 },
     2862  { "rdtsc",            { XX }, 0 },
     2863  { "rdmsr",            { XX }, 0 },
     2864  { "rdpmc",            { XX }, 0 },
     2865  { "sysenter",         { XX }, 0 },
     2866  { "sysexit",          { XX }, 0 },
    27652867  { Bad_Opcode },
    2766   { "getsec",           { XX } },
     2868  { "getsec",           { XX }, 0 },
    27672869  /* 38 */
    2768   { THREE_BYTE_TABLE (THREE_BYTE_0F38) },
     2870  { THREE_BYTE_TABLE_PREFIX (THREE_BYTE_0F38, PREFIX_OPCODE) },
    27692871  { Bad_Opcode },
    2770   { THREE_BYTE_TABLE (THREE_BYTE_0F3A) },
     2872  { THREE_BYTE_TABLE_PREFIX (THREE_BYTE_0F3A, PREFIX_OPCODE) },
    27712873  { Bad_Opcode },
    27722874  { Bad_Opcode },
     
    27752877  { Bad_Opcode },
    27762878  /* 40 */
    2777   { "cmovoS",           { Gv, Ev } },
    2778   { "cmovnoS",          { Gv, Ev } },
    2779   { "cmovbS",           { Gv, Ev } },
    2780   { "cmovaeS",          { Gv, Ev } },
    2781   { "cmoveS",           { Gv, Ev } },
    2782   { "cmovneS",          { Gv, Ev } },
    2783   { "cmovbeS",          { Gv, Ev } },
    2784   { "cmovaS",           { Gv, Ev } },
     2879  { "cmovoS",           { Gv, Ev }, 0 },
     2880  { "cmovnoS",          { Gv, Ev }, 0 },
     2881  { "cmovbS",           { Gv, Ev }, 0 },
     2882  { "cmovaeS",          { Gv, Ev }, 0 },
     2883  { "cmoveS",           { Gv, Ev }, 0 },
     2884  { "cmovneS",          { Gv, Ev }, 0 },
     2885  { "cmovbeS",          { Gv, Ev }, 0 },
     2886  { "cmovaS",           { Gv, Ev }, 0 },
    27852887  /* 48 */
    2786   { "cmovsS",           { Gv, Ev } },
    2787   { "cmovnsS",          { Gv, Ev } },
    2788   { "cmovpS",           { Gv, Ev } },
    2789   { "cmovnpS",          { Gv, Ev } },
    2790   { "cmovlS",           { Gv, Ev } },
    2791   { "cmovgeS",          { Gv, Ev } },
    2792   { "cmovleS",          { Gv, Ev } },
    2793   { "cmovgS",           { Gv, Ev } },
     2888  { "cmovsS",           { Gv, Ev }, 0 },
     2889  { "cmovnsS",          { Gv, Ev }, 0 },
     2890  { "cmovpS",           { Gv, Ev }, 0 },
     2891  { "cmovnpS",          { Gv, Ev }, 0 },
     2892  { "cmovlS",           { Gv, Ev }, 0 },
     2893  { "cmovgeS",          { Gv, Ev }, 0 },
     2894  { "cmovleS",          { Gv, Ev }, 0 },
     2895  { "cmovgS",           { Gv, Ev }, 0 },
    27942896  /* 50 */
    27952897  { MOD_TABLE (MOD_0F51) },
     
    27972899  { PREFIX_TABLE (PREFIX_0F52) },
    27982900  { PREFIX_TABLE (PREFIX_0F53) },
    2799   { "andpX",            { XM, EXx } },
    2800   { "andnpX",           { XM, EXx } },
    2801   { "orpX",             { XM, EXx } },
    2802   { "xorpX",            { XM, EXx } },
     2901  { "andpX",            { XM, EXx }, PREFIX_OPCODE },
     2902  { "andnpX",           { XM, EXx }, PREFIX_OPCODE },
     2903  { "orpX",             { XM, EXx }, PREFIX_OPCODE },
     2904  { "xorpX",            { XM, EXx }, PREFIX_OPCODE },
    28032905  /* 58 */
    28042906  { PREFIX_TABLE (PREFIX_0F58) },
     
    28142916  { PREFIX_TABLE (PREFIX_0F61) },
    28152917  { PREFIX_TABLE (PREFIX_0F62) },
    2816   { "packsswb",         { MX, EM } },
    2817   { "pcmpgtb",          { MX, EM } },
    2818   { "pcmpgtw",          { MX, EM } },
    2819   { "pcmpgtd",          { MX, EM } },
    2820   { "packuswb",         { MX, EM } },
     2918  { "packsswb",         { MX, EM }, PREFIX_OPCODE },
     2919  { "pcmpgtb",          { MX, EM }, PREFIX_OPCODE },
     2920  { "pcmpgtw",          { MX, EM }, PREFIX_OPCODE },
     2921  { "pcmpgtd",          { MX, EM }, PREFIX_OPCODE },
     2922  { "packuswb",         { MX, EM }, PREFIX_OPCODE },
    28212923  /* 68 */
    2822   { "punpckhbw",        { MX, EM } },
    2823   { "punpckhwd",        { MX, EM } },
    2824   { "punpckhdq",        { MX, EM } },
    2825   { "packssdw",         { MX, EM } },
     2924  { "punpckhbw",        { MX, EM }, PREFIX_OPCODE },
     2925  { "punpckhwd",        { MX, EM }, PREFIX_OPCODE },
     2926  { "punpckhdq",        { MX, EM }, PREFIX_OPCODE },
     2927  { "packssdw",         { MX, EM }, PREFIX_OPCODE },
    28262928  { PREFIX_TABLE (PREFIX_0F6C) },
    28272929  { PREFIX_TABLE (PREFIX_0F6D) },
    2828   { "movK",             { MX, Edq } },
     2930  { "movK",             { MX, Edq }, PREFIX_OPCODE },
    28292931  { PREFIX_TABLE (PREFIX_0F6F) },
    28302932  /* 70 */
     
    28332935  { REG_TABLE (REG_0F72) },
    28342936  { REG_TABLE (REG_0F73) },
    2835   { "pcmpeqb",          { MX, EM } },
    2836   { "pcmpeqw",          { MX, EM } },
    2837   { "pcmpeqd",          { MX, EM } },
    2838   { "emms",             { XX } },
     2937  { "pcmpeqb",          { MX, EM }, PREFIX_OPCODE },
     2938  { "pcmpeqw",          { MX, EM }, PREFIX_OPCODE },
     2939  { "pcmpeqd",          { MX, EM }, PREFIX_OPCODE },
     2940  { "emms",             { XX }, PREFIX_OPCODE },
    28392941  /* 78 */
    28402942  { PREFIX_TABLE (PREFIX_0F78) },
     
    28472949  { PREFIX_TABLE (PREFIX_0F7F) },
    28482950  /* 80 */
    2849   { "joH",              { Jv, BND, cond_jump_flag } },
    2850   { "jnoH",             { Jv, BND, cond_jump_flag } },
    2851   { "jbH",              { Jv, BND, cond_jump_flag } },
    2852   { "jaeH",             { Jv, BND, cond_jump_flag } },
    2853   { "jeH",              { Jv, BND, cond_jump_flag } },
    2854   { "jneH",             { Jv, BND, cond_jump_flag } },
    2855   { "jbeH",             { Jv, BND, cond_jump_flag } },
    2856   { "jaH",              { Jv, BND, cond_jump_flag } },
     2951  { "joH",              { Jv, BND, cond_jump_flag }, 0 },
     2952  { "jnoH",             { Jv, BND, cond_jump_flag }, 0 },
     2953  { "jbH",              { Jv, BND, cond_jump_flag }, 0 },
     2954  { "jaeH",             { Jv, BND, cond_jump_flag }, 0 },
     2955  { "jeH",              { Jv, BND, cond_jump_flag }, 0 },
     2956  { "jneH",             { Jv, BND, cond_jump_flag }, 0 },
     2957  { "jbeH",             { Jv, BND, cond_jump_flag }, 0 },
     2958  { "jaH",              { Jv, BND, cond_jump_flag }, 0 },
    28572959  /* 88 */
    2858   { "jsH",              { Jv, BND, cond_jump_flag } },
    2859   { "jnsH",             { Jv, BND, cond_jump_flag } },
    2860   { "jpH",              { Jv, BND, cond_jump_flag } },
    2861   { "jnpH",             { Jv, BND, cond_jump_flag } },
    2862   { "jlH",              { Jv, BND, cond_jump_flag } },
    2863   { "jgeH",             { Jv, BND, cond_jump_flag } },
    2864   { "jleH",             { Jv, BND, cond_jump_flag } },
    2865   { "jgH",              { Jv, BND, cond_jump_flag } },
     2960  { "jsH",              { Jv, BND, cond_jump_flag }, 0 },
     2961  { "jnsH",             { Jv, BND, cond_jump_flag }, 0 },
     2962  { "jpH",              { Jv, BND, cond_jump_flag }, 0 },
     2963  { "jnpH",             { Jv, BND, cond_jump_flag }, 0 },
     2964  { "jlH",              { Jv, BND, cond_jump_flag }, 0 },
     2965  { "jgeH",             { Jv, BND, cond_jump_flag }, 0 },
     2966  { "jleH",             { Jv, BND, cond_jump_flag }, 0 },
     2967  { "jgH",              { Jv, BND, cond_jump_flag }, 0 },
    28662968  /* 90 */
    2867   { "seto",             { Eb } },
    2868   { "setno",            { Eb } },
    2869   { "setb",             { Eb } },
    2870   { "setae",            { Eb } },
    2871   { "sete",             { Eb } },
    2872   { "setne",            { Eb } },
    2873   { "setbe",            { Eb } },
    2874   { "seta",             { Eb } },
     2969  { "seto",             { Eb }, 0 },
     2970  { "setno",            { Eb }, 0 },
     2971  { "setb",             { Eb }, 0 },
     2972  { "setae",            { Eb }, 0 },
     2973  { "sete",             { Eb }, 0 },
     2974  { "setne",            { Eb }, 0 },
     2975  { "setbe",            { Eb }, 0 },
     2976  { "seta",             { Eb }, 0 },
    28752977  /* 98 */
    2876   { "sets",             { Eb } },
    2877   { "setns",            { Eb } },
    2878   { "setp",             { Eb } },
    2879   { "setnp",            { Eb } },
    2880   { "setl",             { Eb } },
    2881   { "setge",            { Eb } },
    2882   { "setle",            { Eb } },
    2883   { "setg",             { Eb } },
     2978  { "sets",             { Eb }, 0 },
     2979  { "setns",            { Eb }, 0 },
     2980  { "setp",             { Eb }, 0 },
     2981  { "setnp",            { Eb }, 0 },
     2982  { "setl",             { Eb }, 0 },
     2983  { "setge",            { Eb }, 0 },
     2984  { "setle",            { Eb }, 0 },
     2985  { "setg",             { Eb }, 0 },
    28842986  /* a0 */
    2885   { "pushT",            { fs } },
    2886   { "popT",             { fs } },
    2887   { "cpuid",            { XX } },
    2888   { "btS",              { Ev, Gv } },
    2889   { "shldS",            { Ev, Gv, Ib } },
    2890   { "shldS",            { Ev, Gv, CL } },
     2987  { "pushT",            { fs }, 0 },
     2988  { "popT",             { fs }, 0 },
     2989  { "cpuid",            { XX }, 0 },
     2990  { "btS",              { Ev, Gv }, 0 },
     2991  { "shldS",            { Ev, Gv, Ib }, 0 },
     2992  { "shldS",            { Ev, Gv, CL }, 0 },
    28912993  { REG_TABLE (REG_0FA6) },
    28922994  { REG_TABLE (REG_0FA7) },
    28932995  /* a8 */
    2894   { "pushT",            { gs } },
    2895   { "popT",             { gs } },
    2896   { "rsm",              { XX } },
    2897   { "btsS",             { Evh1, Gv } },
    2898   { "shrdS",            { Ev, Gv, Ib } },
    2899   { "shrdS",            { Ev, Gv, CL } },
     2996  { "pushT",            { gs }, 0 },
     2997  { "popT",             { gs }, 0 },
     2998  { "rsm",              { XX }, 0 },
     2999  { "btsS",             { Evh1, Gv }, 0 },
     3000  { "shrdS",            { Ev, Gv, Ib }, 0 },
     3001  { "shrdS",            { Ev, Gv, CL }, 0 },
    29003002  { REG_TABLE (REG_0FAE) },
    2901   { "imulS",            { Gv, Ev } },
     3003  { "imulS",            { Gv, Ev }, 0 },
    29023004  /* b0 */
    2903   { "cmpxchgB",         { Ebh1, Gb } },
    2904   { "cmpxchgS",         { Evh1, Gv } },
     3005  { "cmpxchgB",         { Ebh1, Gb }, 0 },
     3006  { "cmpxchgS",         { Evh1, Gv }, 0 },
    29053007  { MOD_TABLE (MOD_0FB2) },
    2906   { "btrS",             { Evh1, Gv } },
     3008  { "btrS",             { Evh1, Gv }, 0 },
    29073009  { MOD_TABLE (MOD_0FB4) },
    29083010  { MOD_TABLE (MOD_0FB5) },
    2909   { "movz{bR|x}",       { Gv, Eb } },
    2910   { "movz{wR|x}",       { Gv, Ew } }, /* yes, there really is movzww ! */
     3011  { "movz{bR|x}",       { Gv, Eb }, 0 },
     3012  { "movz{wR|x}",       { Gv, Ew }, 0 }, /* yes, there really is movzww ! */
    29113013  /* b8 */
    29123014  { PREFIX_TABLE (PREFIX_0FB8) },
    2913   { "ud1",              { XX } },
     3015  { "ud1",              { XX }, 0 },
    29143016  { REG_TABLE (REG_0FBA) },
    2915   { "btcS",             { Evh1, Gv } },
     3017  { "btcS",             { Evh1, Gv }, 0 },
    29163018  { PREFIX_TABLE (PREFIX_0FBC) },
    29173019  { PREFIX_TABLE (PREFIX_0FBD) },
    2918   { "movs{bR|x}",       { Gv, Eb } },
    2919   { "movs{wR|x}",       { Gv, Ew } }, /* yes, there really is movsww ! */
     3020  { "movs{bR|x}",       { Gv, Eb }, 0 },
     3021  { "movs{wR|x}",       { Gv, Ew }, 0 }, /* yes, there really is movsww ! */
    29203022  /* c0 */
    2921   { "xaddB",            { Ebh1, Gb } },
    2922   { "xaddS",            { Evh1, Gv } },
     3023  { "xaddB",            { Ebh1, Gb }, 0 },
     3024  { "xaddS",            { Evh1, Gv }, 0 },
    29233025  { PREFIX_TABLE (PREFIX_0FC2) },
    2924   { PREFIX_TABLE (PREFIX_0FC3) },
    2925   { "pinsrw",           { MX, Edqw, Ib } },
    2926   { "pextrw",           { Gdq, MS, Ib } },
    2927   { "shufpX",           { XM, EXx, Ib } },
     3026  { MOD_TABLE (MOD_0FC3) },
     3027  { "pinsrw",           { MX, Edqw, Ib }, PREFIX_OPCODE },
     3028  { "pextrw",           { Gdq, MS, Ib }, PREFIX_OPCODE },
     3029  { "shufpX",           { XM, EXx, Ib }, PREFIX_OPCODE },
    29283030  { REG_TABLE (REG_0FC7) },
    29293031  /* c8 */
    2930   { "bswap",            { RMeAX } },
    2931   { "bswap",            { RMeCX } },
    2932   { "bswap",            { RMeDX } },
    2933   { "bswap",            { RMeBX } },
    2934   { "bswap",            { RMeSP } },
    2935   { "bswap",            { RMeBP } },
    2936   { "bswap",            { RMeSI } },
    2937   { "bswap",            { RMeDI } },
     3032  { "bswap",            { RMeAX }, 0 },
     3033  { "bswap",            { RMeCX }, 0 },
     3034  { "bswap",            { RMeDX }, 0 },
     3035  { "bswap",            { RMeBX }, 0 },
     3036  { "bswap",            { RMeSP }, 0 },
     3037  { "bswap",            { RMeBP }, 0 },
     3038  { "bswap",            { RMeSI }, 0 },
     3039  { "bswap",            { RMeDI }, 0 },
    29383040  /* d0 */
    29393041  { PREFIX_TABLE (PREFIX_0FD0) },
    2940   { "psrlw",            { MX, EM } },
    2941   { "psrld",            { MX, EM } },
    2942   { "psrlq",            { MX, EM } },
    2943   { "paddq",            { MX, EM } },
    2944   { "pmullw",           { MX, EM } },
     3042  { "psrlw",            { MX, EM }, PREFIX_OPCODE },
     3043  { "psrld",            { MX, EM }, PREFIX_OPCODE },
     3044  { "psrlq",            { MX, EM }, PREFIX_OPCODE },
     3045  { "paddq",            { MX, EM }, PREFIX_OPCODE },
     3046  { "pmullw",           { MX, EM }, PREFIX_OPCODE },
    29453047  { PREFIX_TABLE (PREFIX_0FD6) },
    29463048  { MOD_TABLE (MOD_0FD7) },
    29473049  /* d8 */
    2948   { "psubusb",          { MX, EM } },
    2949   { "psubusw",          { MX, EM } },
    2950   { "pminub",           { MX, EM } },
    2951   { "pand",             { MX, EM } },
    2952   { "paddusb",          { MX, EM } },
    2953   { "paddusw",          { MX, EM } },
    2954   { "pmaxub",           { MX, EM } },
    2955   { "pandn",            { MX, EM } },
     3050  { "psubusb",          { MX, EM }, PREFIX_OPCODE },
     3051  { "psubusw",          { MX, EM }, PREFIX_OPCODE },
     3052  { "pminub",           { MX, EM }, PREFIX_OPCODE },
     3053  { "pand",             { MX, EM }, PREFIX_OPCODE },
     3054  { "paddusb",          { MX, EM }, PREFIX_OPCODE },
     3055  { "paddusw",          { MX, EM }, PREFIX_OPCODE },
     3056  { "pmaxub",           { MX, EM }, PREFIX_OPCODE },
     3057  { "pandn",            { MX, EM }, PREFIX_OPCODE },
    29563058  /* e0 */
    2957   { "pavgb",            { MX, EM } },
    2958   { "psraw",            { MX, EM } },
    2959   { "psrad",            { MX, EM } },
    2960   { "pavgw",            { MX, EM } },
    2961   { "pmulhuw",          { MX, EM } },
    2962   { "pmulhw",           { MX, EM } },
     3059  { "pavgb",            { MX, EM }, PREFIX_OPCODE },
     3060  { "psraw",            { MX, EM }, PREFIX_OPCODE },
     3061  { "psrad",            { MX, EM }, PREFIX_OPCODE },
     3062  { "pavgw",            { MX, EM }, PREFIX_OPCODE },
     3063  { "pmulhuw",          { MX, EM }, PREFIX_OPCODE },
     3064  { "pmulhw",           { MX, EM }, PREFIX_OPCODE },
    29633065  { PREFIX_TABLE (PREFIX_0FE6) },
    29643066  { PREFIX_TABLE (PREFIX_0FE7) },
    29653067  /* e8 */
    2966   { "psubsb",           { MX, EM } },
    2967   { "psubsw",           { MX, EM } },
    2968   { "pminsw",           { MX, EM } },
    2969   { "por",              { MX, EM } },
    2970   { "paddsb",           { MX, EM } },
    2971   { "paddsw",           { MX, EM } },
    2972   { "pmaxsw",           { MX, EM } },
    2973   { "pxor",             { MX, EM } },
     3068  { "psubsb",           { MX, EM }, PREFIX_OPCODE },
     3069  { "psubsw",           { MX, EM }, PREFIX_OPCODE },
     3070  { "pminsw",           { MX, EM }, PREFIX_OPCODE },
     3071  { "por",              { MX, EM }, PREFIX_OPCODE },
     3072  { "paddsb",           { MX, EM }, PREFIX_OPCODE },
     3073  { "paddsw",           { MX, EM }, PREFIX_OPCODE },
     3074  { "pmaxsw",           { MX, EM }, PREFIX_OPCODE },
     3075  { "pxor",             { MX, EM }, PREFIX_OPCODE },
    29743076  /* f0 */
    29753077  { PREFIX_TABLE (PREFIX_0FF0) },
    2976   { "psllw",            { MX, EM } },
    2977   { "pslld",            { MX, EM } },
    2978   { "psllq",            { MX, EM } },
    2979   { "pmuludq",          { MX, EM } },
    2980   { "pmaddwd",          { MX, EM } },
    2981   { "psadbw",           { MX, EM } },
     3078  { "psllw",            { MX, EM }, PREFIX_OPCODE },
     3079  { "pslld",            { MX, EM }, PREFIX_OPCODE },
     3080  { "psllq",            { MX, EM }, PREFIX_OPCODE },
     3081  { "pmuludq",          { MX, EM }, PREFIX_OPCODE },
     3082  { "pmaddwd",          { MX, EM }, PREFIX_OPCODE },
     3083  { "psadbw",           { MX, EM }, PREFIX_OPCODE },
    29823084  { PREFIX_TABLE (PREFIX_0FF7) },
    29833085  /* f8 */
    2984   { "psubb",            { MX, EM } },
    2985   { "psubw",            { MX, EM } },
    2986   { "psubd",            { MX, EM } },
    2987   { "psubq",            { MX, EM } },
    2988   { "paddb",            { MX, EM } },
    2989   { "paddw",            { MX, EM } },
    2990   { "paddd",            { MX, EM } },
     3086  { "psubb",            { MX, EM }, PREFIX_OPCODE },
     3087  { "psubw",            { MX, EM }, PREFIX_OPCODE },
     3088  { "psubd",            { MX, EM }, PREFIX_OPCODE },
     3089  { "psubq",            { MX, EM }, PREFIX_OPCODE },
     3090  { "paddb",            { MX, EM }, PREFIX_OPCODE },
     3091  { "paddw",            { MX, EM }, PREFIX_OPCODE },
     3092  { "paddd",            { MX, EM }, PREFIX_OPCODE },
    29913093  { Bad_Opcode },
    29923094};
     
    30383140};
    30393141
    3040 static const unsigned char twobyte_has_mandatory_prefix[256] = {
    3041   /*       0 1 2 3 4 5 6 7 8 9 a b c d e f        */
    3042   /*       -------------------------------        */
    3043   /* 00 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0f */
    3044   /* 10 */ 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, /* 1f */
    3045   /* 20 */ 0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0, /* 2f */
    3046   /* 30 */ 0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, /* 3f */
    3047   /* 40 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 4f */
    3048   /* 50 */ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 5f */
    3049   /* 60 */ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 6f */
    3050   /* 70 */ 1,0,0,0,1,1,1,1,0,0,1,1,1,1,1,1, /* 7f */
    3051   /* 80 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 8f */
    3052   /* 90 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 9f */
    3053   /* a0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* af */
    3054   /* b0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* bf */
    3055   /* c0 */ 0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0, /* cf */
    3056   /* d0 */ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* df */
    3057   /* e0 */ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* ef */
    3058   /* f0 */ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0  /* ff */
    3059   /*       -------------------------------        */
    3060   /*       0 1 2 3 4 5 6 7 8 9 a b c d e f        */
    3061 };
    3062 
    30633142static char obuf[100];
    30643143static char *obufp;
     
    30773156static int last_seg_prefix;
    30783157static int fwait_prefix;
    3079 /* The PREFIX_REPZ/PREFIX_REPNZ/PREFIX_DATA prefix is mandatory.  */
    3080 static int mandatory_prefix;
    30813158/* The active segment register prefix.  */
    30823159static int active_seg_prefix;
     
    33013378  /* REG_80 */
    33023379  {
    3303     { "addA",   { Ebh1, Ib } },
    3304     { "orA",    { Ebh1, Ib } },
    3305     { "adcA",   { Ebh1, Ib } },
    3306     { "sbbA",   { Ebh1, Ib } },
    3307     { "andA",   { Ebh1, Ib } },
    3308     { "subA",   { Ebh1, Ib } },
    3309     { "xorA",   { Ebh1, Ib } },
    3310     { "cmpA",   { Eb, Ib } },
     3380    { "addA",   { Ebh1, Ib }, 0 },
     3381    { "orA",    { Ebh1, Ib }, 0 },
     3382    { "adcA",   { Ebh1, Ib }, 0 },
     3383    { "sbbA",   { Ebh1, Ib }, 0 },
     3384    { "andA",   { Ebh1, Ib }, 0 },
     3385    { "subA",   { Ebh1, Ib }, 0 },
     3386    { "xorA",   { Ebh1, Ib }, 0 },
     3387    { "cmpA",   { Eb, Ib }, 0 },
    33113388  },
    33123389  /* REG_81 */
    33133390  {
    3314     { "addQ",   { Evh1, Iv } },
    3315     { "orQ",    { Evh1, Iv } },
    3316     { "adcQ",   { Evh1, Iv } },
    3317     { "sbbQ",   { Evh1, Iv } },
    3318     { "andQ",   { Evh1, Iv } },
    3319     { "subQ",   { Evh1, Iv } },
    3320     { "xorQ",   { Evh1, Iv } },
    3321     { "cmpQ",   { Ev, Iv } },
     3391    { "addQ",   { Evh1, Iv }, 0 },
     3392    { "orQ",    { Evh1, Iv }, 0 },
     3393    { "adcQ",   { Evh1, Iv }, 0 },
     3394    { "sbbQ",   { Evh1, Iv }, 0 },
     3395    { "andQ",   { Evh1, Iv }, 0 },
     3396    { "subQ",   { Evh1, Iv }, 0 },
     3397    { "xorQ",   { Evh1, Iv }, 0 },
     3398    { "cmpQ",   { Ev, Iv }, 0 },
    33223399  },
    33233400  /* REG_82 */
    33243401  {
    3325     { "addQ",   { Evh1, sIb } },
    3326     { "orQ",    { Evh1, sIb } },
    3327     { "adcQ",   { Evh1, sIb } },
    3328     { "sbbQ",   { Evh1, sIb } },
    3329     { "andQ",   { Evh1, sIb } },
    3330     { "subQ",   { Evh1, sIb } },
    3331     { "xorQ",   { Evh1, sIb } },
    3332     { "cmpQ",   { Ev, sIb } },
     3402    { "addQ",   { Evh1, sIb }, 0 },
     3403    { "orQ",    { Evh1, sIb }, 0 },
     3404    { "adcQ",   { Evh1, sIb }, 0 },
     3405    { "sbbQ",   { Evh1, sIb }, 0 },
     3406    { "andQ",   { Evh1, sIb }, 0 },
     3407    { "subQ",   { Evh1, sIb }, 0 },
     3408    { "xorQ",   { Evh1, sIb }, 0 },
     3409    { "cmpQ",   { Ev, sIb }, 0 },
    33333410  },
    33343411  /* REG_8F */
    33353412  {
    3336     { "popU",   { stackEv } },
     3413    { "popU",   { stackEv }, 0 },
    33373414    { XOP_8F_TABLE (XOP_09) },
    33383415    { Bad_Opcode },
     
    33433420  /* REG_C0 */
    33443421  {
    3345     { "rolA",   { Eb, Ib } },
    3346     { "rorA",   { Eb, Ib } },
    3347     { "rclA",   { Eb, Ib } },
    3348     { "rcrA",   { Eb, Ib } },
    3349     { "shlA",   { Eb, Ib } },
    3350     { "shrA",   { Eb, Ib } },
    3351     { Bad_Opcode },
    3352     { "sarA",   { Eb, Ib } },
     3422    { "rolA",   { Eb, Ib }, 0 },
     3423    { "rorA",   { Eb, Ib }, 0 },
     3424    { "rclA",   { Eb, Ib }, 0 },
     3425    { "rcrA",   { Eb, Ib }, 0 },
     3426    { "shlA",   { Eb, Ib }, 0 },
     3427    { "shrA",   { Eb, Ib }, 0 },
     3428    { Bad_Opcode },
     3429    { "sarA",   { Eb, Ib }, 0 },
    33533430  },
    33543431  /* REG_C1 */
    33553432  {
    3356     { "rolQ",   { Ev, Ib } },
    3357     { "rorQ",   { Ev, Ib } },
    3358     { "rclQ",   { Ev, Ib } },
    3359     { "rcrQ",   { Ev, Ib } },
    3360     { "shlQ",   { Ev, Ib } },
    3361     { "shrQ",   { Ev, Ib } },
    3362     { Bad_Opcode },
    3363     { "sarQ",   { Ev, Ib } },
     3433    { "rolQ",   { Ev, Ib }, 0 },
     3434    { "rorQ",   { Ev, Ib }, 0 },
     3435    { "rclQ",   { Ev, Ib }, 0 },
     3436    { "rcrQ",   { Ev, Ib }, 0 },
     3437    { "shlQ",   { Ev, Ib }, 0 },
     3438    { "shrQ",   { Ev, Ib }, 0 },
     3439    { Bad_Opcode },
     3440    { "sarQ",   { Ev, Ib }, 0 },
    33643441  },
    33653442  /* REG_C6 */
    33663443  {
    3367     { "movA",   { Ebh3, Ib } },
     3444    { "movA",   { Ebh3, Ib }, 0 },
    33683445    { Bad_Opcode },
    33693446    { Bad_Opcode },
     
    33763453  /* REG_C7 */
    33773454  {
    3378     { "movQ",   { Evh3, Iv } },
     3455    { "movQ",   { Evh3, Iv }, 0 },
    33793456    { Bad_Opcode },
    33803457    { Bad_Opcode },
     
    33873464  /* REG_D0 */
    33883465  {
    3389     { "rolA",   { Eb, I1 } },
    3390     { "rorA",   { Eb, I1 } },
    3391     { "rclA",   { Eb, I1 } },
    3392     { "rcrA",   { Eb, I1 } },
    3393     { "shlA",   { Eb, I1 } },
    3394     { "shrA",   { Eb, I1 } },
    3395     { Bad_Opcode },
    3396     { "sarA",   { Eb, I1 } },
     3466    { "rolA",   { Eb, I1 }, 0 },
     3467    { "rorA",   { Eb, I1 }, 0 },
     3468    { "rclA",   { Eb, I1 }, 0 },
     3469    { "rcrA",   { Eb, I1 }, 0 },
     3470    { "shlA",   { Eb, I1 }, 0 },
     3471    { "shrA",   { Eb, I1 }, 0 },
     3472    { Bad_Opcode },
     3473    { "sarA",   { Eb, I1 }, 0 },
    33973474  },
    33983475  /* REG_D1 */
    33993476  {
    3400     { "rolQ",   { Ev, I1 } },
    3401     { "rorQ",   { Ev, I1 } },
    3402     { "rclQ",   { Ev, I1 } },
    3403     { "rcrQ",   { Ev, I1 } },
    3404     { "shlQ",   { Ev, I1 } },
    3405     { "shrQ",   { Ev, I1 } },
    3406     { Bad_Opcode },
    3407     { "sarQ",   { Ev, I1 } },
     3477    { "rolQ",   { Ev, I1 }, 0 },
     3478    { "rorQ",   { Ev, I1 }, 0 },
     3479    { "rclQ",   { Ev, I1 }, 0 },
     3480    { "rcrQ",   { Ev, I1 }, 0 },
     3481    { "shlQ",   { Ev, I1 }, 0 },
     3482    { "shrQ",   { Ev, I1 }, 0 },
     3483    { Bad_Opcode },
     3484    { "sarQ",   { Ev, I1 }, 0 },
    34083485  },
    34093486  /* REG_D2 */
    34103487  {
    3411     { "rolA",   { Eb, CL } },
    3412     { "rorA",   { Eb, CL } },
    3413     { "rclA",   { Eb, CL } },
    3414     { "rcrA",   { Eb, CL } },
    3415     { "shlA",   { Eb, CL } },
    3416     { "shrA",   { Eb, CL } },
    3417     { Bad_Opcode },
    3418     { "sarA",   { Eb, CL } },
     3488    { "rolA",   { Eb, CL }, 0 },
     3489    { "rorA",   { Eb, CL }, 0 },
     3490    { "rclA",   { Eb, CL }, 0 },
     3491    { "rcrA",   { Eb, CL }, 0 },
     3492    { "shlA",   { Eb, CL }, 0 },
     3493    { "shrA",   { Eb, CL }, 0 },
     3494    { Bad_Opcode },
     3495    { "sarA",   { Eb, CL }, 0 },
    34193496  },
    34203497  /* REG_D3 */
    34213498  {
    3422     { "rolQ",   { Ev, CL } },
    3423     { "rorQ",   { Ev, CL } },
    3424     { "rclQ",   { Ev, CL } },
    3425     { "rcrQ",   { Ev, CL } },
    3426     { "shlQ",   { Ev, CL } },
    3427     { "shrQ",   { Ev, CL } },
    3428     { Bad_Opcode },
    3429     { "sarQ",   { Ev, CL } },
     3499    { "rolQ",   { Ev, CL }, 0 },
     3500    { "rorQ",   { Ev, CL }, 0 },
     3501    { "rclQ",   { Ev, CL }, 0 },
     3502    { "rcrQ",   { Ev, CL }, 0 },
     3503    { "shlQ",   { Ev, CL }, 0 },
     3504    { "shrQ",   { Ev, CL }, 0 },
     3505    { Bad_Opcode },
     3506    { "sarQ",   { Ev, CL }, 0 },
    34303507  },
    34313508  /* REG_F6 */
    34323509  {
    3433     { "testA",  { Eb, Ib } },
    3434     { Bad_Opcode },
    3435     { "notA",   { Ebh1 } },
    3436     { "negA",   { Ebh1 } },
    3437     { "mulA",   { Eb } },       /* Don't print the implicit %al register,  */
    3438     { "imulA",  { Eb } },       /* to distinguish these opcodes from other */
    3439     { "divA",   { Eb } },       /* mul/imul opcodes.  Do the same for div  */
    3440     { "idivA",  { Eb } },       /* and idiv for consistency.               */
     3510    { "testA",  { Eb, Ib }, 0 },
     3511    { Bad_Opcode },
     3512    { "notA",   { Ebh1 }, 0 },
     3513    { "negA",   { Ebh1 }, 0 },
     3514    { "mulA",   { Eb }, 0 },    /* Don't print the implicit %al register,  */
     3515    { "imulA",  { Eb }, 0 },    /* to distinguish these opcodes from other */
     3516    { "divA",   { Eb }, 0 },    /* mul/imul opcodes.  Do the same for div  */
     3517    { "idivA",  { Eb }, 0 },    /* and idiv for consistency.               */
    34413518  },
    34423519  /* REG_F7 */
    34433520  {
    3444     { "testQ",  { Ev, Iv } },
    3445     { Bad_Opcode },
    3446     { "notQ",   { Evh1 } },
    3447     { "negQ",   { Evh1 } },
    3448     { "mulQ",   { Ev } },       /* Don't print the implicit register.  */
    3449     { "imulQ",  { Ev } },
    3450     { "divQ",   { Ev } },
    3451     { "idivQ",  { Ev } },
     3521    { "testQ",  { Ev, Iv }, 0 },
     3522    { Bad_Opcode },
     3523    { "notQ",   { Evh1 }, 0 },
     3524    { "negQ",   { Evh1 }, 0 },
     3525    { "mulQ",   { Ev }, 0 },    /* Don't print the implicit register.  */
     3526    { "imulQ",  { Ev }, 0 },
     3527    { "divQ",   { Ev }, 0 },
     3528    { "idivQ",  { Ev }, 0 },
    34523529  },
    34533530  /* REG_FE */
    34543531  {
    3455     { "incA",   { Ebh1 } },
    3456     { "decA",   { Ebh1 } },
     3532    { "incA",   { Ebh1 }, 0 },
     3533    { "decA",   { Ebh1 }, 0 },
    34573534  },
    34583535  /* REG_FF */
    34593536  {
    3460     { "incQ",   { Evh1 } },
    3461     { "decQ",   { Evh1 } },
    3462     { "call{T|}", { indirEv, BND } },
     3537    { "incQ",   { Evh1 }, 0 },
     3538    { "decQ",   { Evh1 }, 0 },
     3539    { "call{&|}", { indirEv, BND }, 0 },
    34633540    { MOD_TABLE (MOD_FF_REG_3) },
    3464     { "jmp{T|}", { indirEv, BND } },
     3541    { "jmp{&|}", { indirEv, BND }, 0 },
    34653542    { MOD_TABLE (MOD_FF_REG_5) },
    3466     { "pushU",  { stackEv } },
     3543    { "pushU",  { stackEv }, 0 },
    34673544    { Bad_Opcode },
    34683545  },
    34693546  /* REG_0F00 */
    34703547  {
    3471     { "sldtD",  { Sv } },
    3472     { "strD",   { Sv } },
    3473     { "lldt",   { Ew } },
    3474     { "ltr",    { Ew } },
    3475     { "verr",   { Ew } },
    3476     { "verw",   { Ew } },
     3548    { "sldtD",  { Sv }, 0 },
     3549    { "strD",   { Sv }, 0 },
     3550    { "lldt",   { Ew }, 0 },
     3551    { "ltr",    { Ew }, 0 },
     3552    { "verr",   { Ew }, 0 },
     3553    { "verw",   { Ew }, 0 },
    34773554    { Bad_Opcode },
    34783555    { Bad_Opcode },
     
    34843561    { MOD_TABLE (MOD_0F01_REG_2) },
    34853562    { MOD_TABLE (MOD_0F01_REG_3) },
    3486     { "smswD",  { Sv } },
    3487     { Bad_Opcode },
    3488     { "lmsw",   { Ew } },
     3563    { "smswD",  { Sv }, 0 },
     3564    { MOD_TABLE (MOD_0F01_REG_5) },
     3565    { "lmsw",   { Ew }, 0 },
    34893566    { MOD_TABLE (MOD_0F01_REG_7) },
    34903567  },
    34913568  /* REG_0F0D */
    34923569  {
    3493     { "prefetch",       { Mb } },
    3494     { "prefetchw",      { Mb } },
    3495     { "prefetchwt1",    { Mb } },
    3496     { "prefetch",       { Mb } },
    3497     { "prefetch",       { Mb } },
    3498     { "prefetch",       { Mb } },
    3499     { "prefetch",       { Mb } },
    3500     { "prefetch",       { Mb } },
     3570    { "prefetch",       { Mb }, 0 },
     3571    { "prefetchw",      { Mb }, 0 },
     3572    { "prefetchwt1",    { Mb }, 0 },
     3573    { "prefetch",       { Mb }, 0 },
     3574    { "prefetch",       { Mb }, 0 },
     3575    { "prefetch",       { Mb }, 0 },
     3576    { "prefetch",       { Mb }, 0 },
     3577    { "prefetch",       { Mb }, 0 },
    35013578  },
    35023579  /* REG_0F18 */
     
    35443621  /* REG_0FA6 */
    35453622  {
    3546     { "montmul",        { { OP_0f07, 0 } } },
    3547     { "xsha1",          { { OP_0f07, 0 } } },
    3548     { "xsha256",        { { OP_0f07, 0 } } },
     3623    { "montmul",        { { OP_0f07, 0 } }, 0 },
     3624    { "xsha1",          { { OP_0f07, 0 } }, 0 },
     3625    { "xsha256",        { { OP_0f07, 0 } }, 0 },
    35493626  },
    35503627  /* REG_0FA7 */
    35513628  {
    3552     { "xstore-rng",     { { OP_0f07, 0 } } },
    3553     { "xcrypt-ecb",     { { OP_0f07, 0 } } },
    3554     { "xcrypt-cbc",     { { OP_0f07, 0 } } },
    3555     { "xcrypt-ctr",     { { OP_0f07, 0 } } },
    3556     { "xcrypt-cfb",     { { OP_0f07, 0 } } },
    3557     { "xcrypt-ofb",     { { OP_0f07, 0 } } },
     3629    { "xstore-rng",     { { OP_0f07, 0 } }, 0 },
     3630    { "xcrypt-ecb",     { { OP_0f07, 0 } }, 0 },
     3631    { "xcrypt-cbc",     { { OP_0f07, 0 } }, 0 },
     3632    { "xcrypt-ctr",     { { OP_0f07, 0 } }, 0 },
     3633    { "xcrypt-cfb",     { { OP_0f07, 0 } }, 0 },
     3634    { "xcrypt-ofb",     { { OP_0f07, 0 } }, 0 },
    35583635  },
    35593636  /* REG_0FAE */
     
    35743651    { Bad_Opcode },
    35753652    { Bad_Opcode },
    3576     { "btQ",    { Ev, Ib } },
    3577     { "btsQ",   { Evh1, Ib } },
    3578     { "btrQ",   { Evh1, Ib } },
    3579     { "btcQ",   { Evh1, Ib } },
     3653    { "btQ",    { Ev, Ib }, 0 },
     3654    { "btsQ",   { Evh1, Ib }, 0 },
     3655    { "btrQ",   { Evh1, Ib }, 0 },
     3656    { "btcQ",   { Evh1, Ib }, 0 },
    35803657  },
    35813658  /* REG_0FC7 */
    35823659  {
    35833660    { Bad_Opcode },
    3584     { "cmpxchg8b", { { CMPXCHG8B_Fixup, q_mode } } },
     3661    { "cmpxchg8b", { { CMPXCHG8B_Fixup, q_mode } }, 0 },
    35853662    { Bad_Opcode },
    35863663    { MOD_TABLE (MOD_0FC7_REG_3) },
     
    36373714  /* REG_XOP_LWPCB */
    36383715  {
    3639     { "llwpcb", { { OP_LWPCB_E, 0 } } },
    3640     { "slwpcb", { { OP_LWPCB_E, 0 } } },
     3716    { "llwpcb", { { OP_LWPCB_E, 0 } }, 0 },
     3717    { "slwpcb", { { OP_LWPCB_E, 0 } }, 0 },
    36413718  },
    36423719  /* REG_XOP_LWP */
    36433720  {
    3644     { "lwpins", { { OP_LWP_E, 0 }, Ed, Iq } },
    3645     { "lwpval", { { OP_LWP_E, 0 }, Ed, Iq } },
     3721    { "lwpins", { { OP_LWP_E, 0 }, Ed, Iq }, 0 },
     3722    { "lwpval", { { OP_LWP_E, 0 }, Ed, Iq }, 0 },
    36463723  },
    36473724  /* REG_XOP_TBM_01 */
    36483725  {
    36493726    { Bad_Opcode },
    3650     { "blcfill",        { { OP_LWP_E, 0 }, Ev } },
    3651     { "blsfill",        { { OP_LWP_E, 0 }, Ev } },
    3652     { "blcs",   { { OP_LWP_E, 0 }, Ev } },
    3653     { "tzmsk",  { { OP_LWP_E, 0 }, Ev } },
    3654     { "blcic",  { { OP_LWP_E, 0 }, Ev } },
    3655     { "blsic",  { { OP_LWP_E, 0 }, Ev } },
    3656     { "t1mskc", { { OP_LWP_E, 0 }, Ev } },
     3727    { "blcfill",        { { OP_LWP_E, 0 }, Ev }, 0 },
     3728    { "blsfill",        { { OP_LWP_E, 0 }, Ev }, 0 },
     3729    { "blcs",   { { OP_LWP_E, 0 }, Ev }, 0 },
     3730    { "tzmsk",  { { OP_LWP_E, 0 }, Ev }, 0 },
     3731    { "blcic",  { { OP_LWP_E, 0 }, Ev }, 0 },
     3732    { "blsic",  { { OP_LWP_E, 0 }, Ev }, 0 },
     3733    { "t1mskc", { { OP_LWP_E, 0 }, Ev }, 0 },
    36573734  },
    36583735  /* REG_XOP_TBM_02 */
    36593736  {
    36603737    { Bad_Opcode },
    3661     { "blcmsk", { { OP_LWP_E, 0 }, Ev } },
    3662     { Bad_Opcode },
    3663     { Bad_Opcode },
    3664     { Bad_Opcode },
    3665     { Bad_Opcode },
    3666     { "blci",   { { OP_LWP_E, 0 }, Ev } },
     3738    { "blcmsk", { { OP_LWP_E, 0 }, Ev }, 0 },
     3739    { Bad_Opcode },
     3740    { Bad_Opcode },
     3741    { Bad_Opcode },
     3742    { Bad_Opcode },
     3743    { "blci",   { { OP_LWP_E, 0 }, Ev }, 0 },
    36673744  },
    36683745#define NEED_REG_TABLE
     
    36743751  /* PREFIX_90 */
    36753752  {
    3676     { "xchgS", { { NOP_Fixup1, eAX_reg }, { NOP_Fixup2, eAX_reg } } },
    3677     { "pause", { XX } },
    3678     { "xchgS", { { NOP_Fixup1, eAX_reg }, { NOP_Fixup2, eAX_reg } } },
     3753    { "xchgS", { { NOP_Fixup1, eAX_reg }, { NOP_Fixup2, eAX_reg } }, 0 },
     3754    { "pause", { XX }, 0 },
     3755    { "xchgS", { { NOP_Fixup1, eAX_reg }, { NOP_Fixup2, eAX_reg } }, 0 },
     3756    { NULL, { { NULL, 0 } }, PREFIX_IGNORED }
    36793757  },
    36803758
    36813759  /* PREFIX_0F10 */
    36823760  {
    3683     { "movups", { XM, EXx } },
    3684     { "movss",  { XM, EXd } },
    3685     { "movupd", { XM, EXx } },
    3686     { "movsd",  { XM, EXq } },
     3761    { "movups", { XM, EXx }, PREFIX_OPCODE },
     3762    { "movss",  { XM, EXd }, PREFIX_OPCODE },
     3763    { "movupd", { XM, EXx }, PREFIX_OPCODE },
     3764    { "movsd",  { XM, EXq }, PREFIX_OPCODE },
    36873765  },
    36883766
    36893767  /* PREFIX_0F11 */
    36903768  {
    3691     { "movups", { EXxS, XM } },
    3692     { "movss",  { EXdS, XM } },
    3693     { "movupd", { EXxS, XM } },
    3694     { "movsd",  { EXqS, XM } },
     3769    { "movups", { EXxS, XM }, PREFIX_OPCODE },
     3770    { "movss",  { EXdS, XM }, PREFIX_OPCODE },
     3771    { "movupd", { EXxS, XM }, PREFIX_OPCODE },
     3772    { "movsd",  { EXqS, XM }, PREFIX_OPCODE },
    36953773  },
    36963774
     
    36983776  {
    36993777    { MOD_TABLE (MOD_0F12_PREFIX_0) },
    3700     { "movsldup", { XM, EXx } },
    3701     { "movlpd", { XM, EXq } },
    3702     { "movddup", { XM, EXq } },
     3778    { "movsldup", { XM, EXx }, PREFIX_OPCODE },
     3779    { "movlpd", { XM, EXq }, PREFIX_OPCODE },
     3780    { "movddup", { XM, EXq }, PREFIX_OPCODE },
    37033781  },
    37043782
     
    37063784  {
    37073785    { MOD_TABLE (MOD_0F16_PREFIX_0) },
    3708     { "movshdup", { XM, EXx } },
    3709     { "movhpd", { XM, EXq } },
     3786    { "movshdup", { XM, EXx }, PREFIX_OPCODE },
     3787    { "movhpd", { XM, EXq }, PREFIX_OPCODE },
    37103788  },
    37113789
     
    37133791  {
    37143792    { MOD_TABLE (MOD_0F1A_PREFIX_0) },
    3715     { "bndcl",  { Gbnd, Ev_bnd } },
    3716     { "bndmov", { Gbnd, Ebnd } },
    3717     { "bndcu",  { Gbnd, Ev_bnd } },
     3793    { "bndcl",  { Gbnd, Ev_bnd }, 0 },
     3794    { "bndmov", { Gbnd, Ebnd }, 0 },
     3795    { "bndcu",  { Gbnd, Ev_bnd }, 0 },
    37183796  },
    37193797
     
    37223800    { MOD_TABLE (MOD_0F1B_PREFIX_0) },
    37233801    { MOD_TABLE (MOD_0F1B_PREFIX_1) },
    3724     { "bndmov", { Ebnd, Gbnd } },
    3725     { "bndcn",  { Gbnd, Ev_bnd } },
     3802    { "bndmov", { Ebnd, Gbnd }, 0 },
     3803    { "bndcn",  { Gbnd, Ev_bnd }, 0 },
    37263804  },
    37273805
    37283806  /* PREFIX_0F2A */
    37293807  {
    3730     { "cvtpi2ps", { XM, EMCq } },
    3731     { "cvtsi2ss%LQ", { XM, Ev } },
    3732     { "cvtpi2pd", { XM, EMCq } },
    3733     { "cvtsi2sd%LQ", { XM, Ev } },
     3808    { "cvtpi2ps", { XM, EMCq }, PREFIX_OPCODE },
     3809    { "cvtsi2ss%LQ", { XM, Ev }, PREFIX_OPCODE },
     3810    { "cvtpi2pd", { XM, EMCq }, PREFIX_OPCODE },
     3811    { "cvtsi2sd%LQ", { XM, Ev }, 0 },
    37343812  },
    37353813
     
    37443822  /* PREFIX_0F2C */
    37453823  {
    3746     { "cvttps2pi", { MXC, EXq } },
    3747     { "cvttss2siY", { Gv, EXd } },
    3748     { "cvttpd2pi", { MXC, EXx } },
    3749     { "cvttsd2siY", { Gv, EXq } },
     3824    { "cvttps2pi", { MXC, EXq }, PREFIX_OPCODE },
     3825    { "cvttss2siY", { Gv, EXd }, PREFIX_OPCODE },
     3826    { "cvttpd2pi", { MXC, EXx }, PREFIX_OPCODE },
     3827    { "cvttsd2siY", { Gv, EXq }, PREFIX_OPCODE },
    37503828  },
    37513829
    37523830  /* PREFIX_0F2D */
    37533831  {
    3754     { "cvtps2pi", { MXC, EXq } },
    3755     { "cvtss2siY", { Gv, EXd } },
    3756     { "cvtpd2pi", { MXC, EXx } },
    3757     { "cvtsd2siY", { Gv, EXq } },
     3832    { "cvtps2pi", { MXC, EXq }, PREFIX_OPCODE },
     3833    { "cvtss2siY", { Gv, EXd }, PREFIX_OPCODE },
     3834    { "cvtpd2pi", { MXC, EXx }, PREFIX_OPCODE },
     3835    { "cvtsd2siY", { Gv, EXq }, PREFIX_OPCODE },
    37583836  },
    37593837
    37603838  /* PREFIX_0F2E */
    37613839  {
    3762     { "ucomiss",{ XM, EXd } },
    3763     { Bad_Opcode },
    3764     { "ucomisd",{ XM, EXq } },
     3840    { "ucomiss",{ XM, EXd }, 0 },
     3841    { Bad_Opcode },
     3842    { "ucomisd",{ XM, EXq }, 0 },
    37653843  },
    37663844
    37673845  /* PREFIX_0F2F */
    37683846  {
    3769     { "comiss", { XM, EXd } },
    3770     { Bad_Opcode },
    3771     { "comisd", { XM, EXq } },
     3847    { "comiss", { XM, EXd }, 0 },
     3848    { Bad_Opcode },
     3849    { "comisd", { XM, EXq }, 0 },
    37723850  },
    37733851
    37743852  /* PREFIX_0F51 */
    37753853  {
    3776     { "sqrtps", { XM, EXx } },
    3777     { "sqrtss", { XM, EXd } },
    3778     { "sqrtpd", { XM, EXx } },
    3779     { "sqrtsd", { XM, EXq } },
     3854    { "sqrtps", { XM, EXx }, PREFIX_OPCODE },
     3855    { "sqrtss", { XM, EXd }, PREFIX_OPCODE },
     3856    { "sqrtpd", { XM, EXx }, PREFIX_OPCODE },
     3857    { "sqrtsd", { XM, EXq }, PREFIX_OPCODE },
    37803858  },
    37813859
    37823860  /* PREFIX_0F52 */
    37833861  {
    3784     { "rsqrtps",{ XM, EXx } },
    3785     { "rsqrtss",{ XM, EXd } },
     3862    { "rsqrtps",{ XM, EXx }, PREFIX_OPCODE },
     3863    { "rsqrtss",{ XM, EXd }, PREFIX_OPCODE },
    37863864  },
    37873865
    37883866  /* PREFIX_0F53 */
    37893867  {
    3790     { "rcpps",  { XM, EXx } },
    3791     { "rcpss",  { XM, EXd } },
     3868    { "rcpps",  { XM, EXx }, PREFIX_OPCODE },
     3869    { "rcpss",  { XM, EXd }, PREFIX_OPCODE },
    37923870  },
    37933871
    37943872  /* PREFIX_0F58 */
    37953873  {
    3796     { "addps", { XM, EXx } },
    3797     { "addss", { XM, EXd } },
    3798     { "addpd", { XM, EXx } },
    3799     { "addsd", { XM, EXq } },
     3874    { "addps", { XM, EXx }, PREFIX_OPCODE },
     3875    { "addss", { XM, EXd }, PREFIX_OPCODE },
     3876    { "addpd", { XM, EXx }, PREFIX_OPCODE },
     3877    { "addsd", { XM, EXq }, PREFIX_OPCODE },
    38003878  },
    38013879
    38023880  /* PREFIX_0F59 */
    38033881  {
    3804     { "mulps",  { XM, EXx } },
    3805     { "mulss",  { XM, EXd } },
    3806     { "mulpd",  { XM, EXx } },
    3807     { "mulsd",  { XM, EXq } },
     3882    { "mulps",  { XM, EXx }, PREFIX_OPCODE },
     3883    { "mulss",  { XM, EXd }, PREFIX_OPCODE },
     3884    { "mulpd",  { XM, EXx }, PREFIX_OPCODE },
     3885    { "mulsd",  { XM, EXq }, PREFIX_OPCODE },
    38083886  },
    38093887
    38103888  /* PREFIX_0F5A */
    38113889  {
    3812     { "cvtps2pd", { XM, EXq } },
    3813     { "cvtss2sd", { XM, EXd } },
    3814     { "cvtpd2ps", { XM, EXx } },
    3815     { "cvtsd2ss", { XM, EXq } },
     3890    { "cvtps2pd", { XM, EXq }, PREFIX_OPCODE },
     3891    { "cvtss2sd", { XM, EXd }, PREFIX_OPCODE },
     3892    { "cvtpd2ps", { XM, EXx }, PREFIX_OPCODE },
     3893    { "cvtsd2ss", { XM, EXq }, PREFIX_OPCODE },
    38163894  },
    38173895
    38183896  /* PREFIX_0F5B */
    38193897  {
    3820     { "cvtdq2ps", { XM, EXx } },
    3821     { "cvttps2dq", { XM, EXx } },
    3822     { "cvtps2dq", { XM, EXx } },
     3898    { "cvtdq2ps", { XM, EXx }, PREFIX_OPCODE },
     3899    { "cvttps2dq", { XM, EXx }, PREFIX_OPCODE },
     3900    { "cvtps2dq", { XM, EXx }, PREFIX_OPCODE },
    38233901  },
    38243902
    38253903  /* PREFIX_0F5C */
    38263904  {
    3827     { "subps",  { XM, EXx } },
    3828     { "subss",  { XM, EXd } },
    3829     { "subpd",  { XM, EXx } },
    3830     { "subsd",  { XM, EXq } },
     3905    { "subps",  { XM, EXx }, PREFIX_OPCODE },
     3906    { "subss",  { XM, EXd }, PREFIX_OPCODE },
     3907    { "subpd",  { XM, EXx }, PREFIX_OPCODE },
     3908    { "subsd",  { XM, EXq }, PREFIX_OPCODE },
    38313909  },
    38323910
    38333911  /* PREFIX_0F5D */
    38343912  {
    3835     { "minps",  { XM, EXx } },
    3836     { "minss",  { XM, EXd } },
    3837     { "minpd",  { XM, EXx } },
    3838     { "minsd",  { XM, EXq } },
     3913    { "minps",  { XM, EXx }, PREFIX_OPCODE },
     3914    { "minss",  { XM, EXd }, PREFIX_OPCODE },
     3915    { "minpd",  { XM, EXx }, PREFIX_OPCODE },
     3916    { "minsd",  { XM, EXq }, PREFIX_OPCODE },
    38393917  },
    38403918
    38413919  /* PREFIX_0F5E */
    38423920  {
    3843     { "divps",  { XM, EXx } },
    3844     { "divss",  { XM, EXd } },
    3845     { "divpd",  { XM, EXx } },
    3846     { "divsd",  { XM, EXq } },
     3921    { "divps",  { XM, EXx }, PREFIX_OPCODE },
     3922    { "divss",  { XM, EXd }, PREFIX_OPCODE },
     3923    { "divpd",  { XM, EXx }, PREFIX_OPCODE },
     3924    { "divsd",  { XM, EXq }, PREFIX_OPCODE },
    38473925  },
    38483926
    38493927  /* PREFIX_0F5F */
    38503928  {
    3851     { "maxps",  { XM, EXx } },
    3852     { "maxss",  { XM, EXd } },
    3853     { "maxpd",  { XM, EXx } },
    3854     { "maxsd",  { XM, EXq } },
     3929    { "maxps",  { XM, EXx }, PREFIX_OPCODE },
     3930    { "maxss",  { XM, EXd }, PREFIX_OPCODE },
     3931    { "maxpd",  { XM, EXx }, PREFIX_OPCODE },
     3932    { "maxsd",  { XM, EXq }, PREFIX_OPCODE },
    38553933  },
    38563934
    38573935  /* PREFIX_0F60 */
    38583936  {
    3859     { "punpcklbw",{ MX, EMd } },
    3860     { Bad_Opcode },
    3861     { "punpcklbw",{ MX, EMx } },
     3937    { "punpcklbw",{ MX, EMd }, PREFIX_OPCODE },
     3938    { Bad_Opcode },
     3939    { "punpcklbw",{ MX, EMx }, PREFIX_OPCODE },
    38623940  },
    38633941
    38643942  /* PREFIX_0F61 */
    38653943  {
    3866     { "punpcklwd",{ MX, EMd } },
    3867     { Bad_Opcode },
    3868     { "punpcklwd",{ MX, EMx } },
     3944    { "punpcklwd",{ MX, EMd }, PREFIX_OPCODE },
     3945    { Bad_Opcode },
     3946    { "punpcklwd",{ MX, EMx }, PREFIX_OPCODE },
    38693947  },
    38703948
    38713949  /* PREFIX_0F62 */
    38723950  {
    3873     { "punpckldq",{ MX, EMd } },
    3874     { Bad_Opcode },
    3875     { "punpckldq",{ MX, EMx } },
     3951    { "punpckldq",{ MX, EMd }, PREFIX_OPCODE },
     3952    { Bad_Opcode },
     3953    { "punpckldq",{ MX, EMx }, PREFIX_OPCODE },
    38763954  },
    38773955
     
    38803958    { Bad_Opcode },
    38813959    { Bad_Opcode },
    3882     { "punpcklqdq", { XM, EXx } },
     3960    { "punpcklqdq", { XM, EXx }, PREFIX_OPCODE },
    38833961  },
    38843962
     
    38873965    { Bad_Opcode },
    38883966    { Bad_Opcode },
    3889     { "punpckhqdq", { XM, EXx } },
     3967    { "punpckhqdq", { XM, EXx }, PREFIX_OPCODE },
    38903968  },
    38913969
    38923970  /* PREFIX_0F6F */
    38933971  {
    3894     { "movq",   { MX, EM } },
    3895     { "movdqu", { XM, EXx } },
    3896     { "movdqa", { XM, EXx } },
     3972    { "movq",   { MX, EM }, PREFIX_OPCODE },
     3973    { "movdqu", { XM, EXx }, PREFIX_OPCODE },
     3974    { "movdqa", { XM, EXx }, PREFIX_OPCODE },
    38973975  },
    38983976
    38993977  /* PREFIX_0F70 */
    39003978  {
    3901     { "pshufw", { MX, EM, Ib } },
    3902     { "pshufhw",{ XM, EXx, Ib } },
    3903     { "pshufd", { XM, EXx, Ib } },
    3904     { "pshuflw",{ XM, EXx, Ib } },
     3979    { "pshufw", { MX, EM, Ib }, PREFIX_OPCODE },
     3980    { "pshufhw",{ XM, EXx, Ib }, PREFIX_OPCODE },
     3981    { "pshufd", { XM, EXx, Ib }, PREFIX_OPCODE },
     3982    { "pshuflw",{ XM, EXx, Ib }, PREFIX_OPCODE },
    39053983  },
    39063984
     
    39093987    { Bad_Opcode },
    39103988    { Bad_Opcode },
    3911     { "psrldq", { XS, Ib } },
     3989    { "psrldq", { XS, Ib }, 0 },
    39123990  },
    39133991
     
    39163994    { Bad_Opcode },
    39173995    { Bad_Opcode },
    3918     { "pslldq", { XS, Ib } },
     3996    { "pslldq", { XS, Ib }, 0 },
    39193997  },
    39203998
    39213999  /* PREFIX_0F78 */
    39224000  {
    3923     {"vmread",  { Em, Gm } },
    3924     { Bad_Opcode },
    3925     {"extrq",   { XS, Ib, Ib } },
    3926     {"insertq", { XM, XS, Ib, Ib } },
     4001    {"vmread",  { Em, Gm }, 0 },
     4002    { Bad_Opcode },
     4003    {"extrq",   { XS, Ib, Ib }, 0 },
     4004    {"insertq", { XM, XS, Ib, Ib }, 0 },
    39274005  },
    39284006
    39294007  /* PREFIX_0F79 */
    39304008  {
    3931     {"vmwrite", { Gm, Em } },
    3932     { Bad_Opcode },
    3933     {"extrq",   { XM, XS } },
    3934     {"insertq", { XM, XS } },
     4009    {"vmwrite", { Gm, Em }, 0 },
     4010    { Bad_Opcode },
     4011    {"extrq",   { XM, XS }, 0 },
     4012    {"insertq", { XM, XS }, 0 },
    39354013  },
    39364014
     
    39394017    { Bad_Opcode },
    39404018    { Bad_Opcode },
    3941     { "haddpd", { XM, EXx } },
    3942     { "haddps", { XM, EXx } },
     4019    { "haddpd", { XM, EXx }, PREFIX_OPCODE },
     4020    { "haddps", { XM, EXx }, PREFIX_OPCODE },
    39434021  },
    39444022
     
    39474025    { Bad_Opcode },
    39484026    { Bad_Opcode },
    3949     { "hsubpd", { XM, EXx } },
    3950     { "hsubps", { XM, EXx } },
     4027    { "hsubpd", { XM, EXx }, PREFIX_OPCODE },
     4028    { "hsubps", { XM, EXx }, PREFIX_OPCODE },
    39514029  },
    39524030
    39534031  /* PREFIX_0F7E */
    39544032  {
    3955     { "movK",   { Edq, MX } },
    3956     { "movq",   { XM, EXq } },
    3957     { "movK",   { Edq, XM } },
     4033    { "movK",   { Edq, MX }, PREFIX_OPCODE },
     4034    { "movq",   { XM, EXq }, PREFIX_OPCODE },
     4035    { "movK",   { Edq, XM }, PREFIX_OPCODE },
    39584036  },
    39594037
    39604038  /* PREFIX_0F7F */
    39614039  {
    3962     { "movq",   { EMS, MX } },
    3963     { "movdqu", { EXxS, XM } },
    3964     { "movdqa", { EXxS, XM } },
     4040    { "movq",   { EMS, MX }, PREFIX_OPCODE },
     4041    { "movdqu", { EXxS, XM }, PREFIX_OPCODE },
     4042    { "movdqa", { EXxS, XM }, PREFIX_OPCODE },
    39654043  },
    39664044
     
    39684046  {
    39694047    { Bad_Opcode },
    3970     { "rdfsbase", { Ev } },
     4048    { "rdfsbase", { Ev }, 0 },
    39714049  },
    39724050
     
    39744052  {
    39754053    { Bad_Opcode },
    3976     { "rdgsbase", { Ev } },
     4054    { "rdgsbase", { Ev }, 0 },
    39774055  },
    39784056
     
    39804058  {
    39814059    { Bad_Opcode },
    3982     { "wrfsbase", { Ev } },
     4060    { "wrfsbase", { Ev }, 0 },
    39834061  },
    39844062
     
    39864064  {
    39874065    { Bad_Opcode },
    3988     { "wrgsbase", { Ev } },
     4066    { "wrgsbase", { Ev }, 0 },
    39894067  },
    39904068
    39914069  /* PREFIX_0FAE_REG_6 */
    39924070  {
    3993     { "xsaveopt",      { FXSAVE } },
    3994     { Bad_Opcode },
    3995     { "clwb",   { Mb } },
     4071    { "xsaveopt",      { FXSAVE }, 0 },
     4072    { Bad_Opcode },
     4073    { "clwb",   { Mb }, 0 },
    39964074  },
    39974075
    39984076  /* PREFIX_0FAE_REG_7 */
    39994077  {
    4000     { "clflush",        { Mb } },
    4001     { Bad_Opcode },
    4002     { "clflushopt",     { Mb } },
     4078    { "clflush",        { Mb }, 0 },
     4079    { Bad_Opcode },
     4080    { "clflushopt",     { Mb }, 0 },
    40034081  },
    40044082
    40054083  /* PREFIX_RM_0_0FAE_REG_7 */
    40064084  {
    4007     { "sfence",         { Skip_MODRM } },
    4008     { Bad_Opcode },
    4009     { "pcommit",                { Skip_MODRM } },
     4085    { "sfence",         { Skip_MODRM }, 0 },
     4086    { Bad_Opcode },
     4087    { "pcommit",                { Skip_MODRM }, 0 },
    40104088  },
    40114089
     
    40134091  {
    40144092    { Bad_Opcode },
    4015     { "popcntS", { Gv, Ev } },
     4093    { "popcntS", { Gv, Ev }, 0 },
    40164094  },
    40174095
    40184096  /* PREFIX_0FBC */
    40194097  {
    4020     { "bsfS",   { Gv, Ev } },
    4021     { "tzcntS", { Gv, Ev } },
    4022     { "bsfS",   { Gv, Ev } },
     4098    { "bsfS",   { Gv, Ev }, 0 },
     4099    { "tzcntS", { Gv, Ev }, 0 },
     4100    { "bsfS",   { Gv, Ev }, 0 },
    40234101  },
    40244102
    40254103  /* PREFIX_0FBD */
    40264104  {
    4027     { "bsrS",   { Gv, Ev } },
    4028     { "lzcntS", { Gv, Ev } },
    4029     { "bsrS",   { Gv, Ev } },
     4105    { "bsrS",   { Gv, Ev }, 0 },
     4106    { "lzcntS", { Gv, Ev }, 0 },
     4107    { "bsrS",   { Gv, Ev }, 0 },
    40304108  },
    40314109
    40324110  /* PREFIX_0FC2 */
    40334111  {
    4034     { "cmpps",  { XM, EXx, CMP } },
    4035     { "cmpss",  { XM, EXd, CMP } },
    4036     { "cmppd",  { XM, EXx, CMP } },
    4037     { "cmpsd",  { XM, EXq, CMP } },
    4038   },
    4039 
    4040   /* PREFIX_0FC3 */
    4041   {
    4042     { "movntiS", { Ma, Gv } },
    4043   },
    4044 
    4045   /* PREFIX_0FC7_REG_6 */
    4046   {
    4047     { "vmptrld",{ Mq } },
    4048     { "vmxon",  { Mq } },
    4049     { "vmclear",{ Mq } },
     4112    { "cmpps",  { XM, EXx, CMP }, PREFIX_OPCODE },
     4113    { "cmpss",  { XM, EXd, CMP }, PREFIX_OPCODE },
     4114    { "cmppd",  { XM, EXx, CMP }, PREFIX_OPCODE },
     4115    { "cmpsd",  { XM, EXq, CMP }, PREFIX_OPCODE },
     4116  },
     4117
     4118  /* PREFIX_MOD_0_0FC3 */
     4119  {
     4120    { "movntiS", { Ev, Gv }, PREFIX_OPCODE },
     4121  },
     4122
     4123  /* PREFIX_MOD_0_0FC7_REG_6 */
     4124  {
     4125    { "vmptrld",{ Mq }, 0 },
     4126    { "vmxon",  { Mq }, 0 },
     4127    { "vmclear",{ Mq }, 0 },
     4128  },
     4129
     4130  /* PREFIX_MOD_3_0FC7_REG_6 */
     4131  {
     4132    { "rdrand", { Ev }, 0 },
     4133    { Bad_Opcode },
     4134    { "rdrand", { Ev }, 0 }
     4135  },
     4136
     4137  /* PREFIX_MOD_3_0FC7_REG_7 */
     4138  {
     4139    { "rdseed", { Ev }, 0 },
     4140    { "rdpid",  { Em }, 0 },
     4141    { "rdseed", { Ev }, 0 },
    40504142  },
    40514143
     
    40544146    { Bad_Opcode },
    40554147    { Bad_Opcode },
    4056     { "addsubpd", { XM, EXx } },
    4057     { "addsubps", { XM, EXx } },
     4148    { "addsubpd", { XM, EXx }, 0 },
     4149    { "addsubps", { XM, EXx }, 0 },
    40584150  },
    40594151
     
    40614153  {
    40624154    { Bad_Opcode },
    4063     { "movq2dq",{ XM, MS } },
    4064     { "movq",   { EXqS, XM } },
    4065     { "movdq2q",{ MX, XS } },
     4155    { "movq2dq",{ XM, MS }, 0 },
     4156    { "movq",   { EXqS, XM }, 0 },
     4157    { "movdq2q",{ MX, XS }, 0 },
    40664158  },
    40674159
     
    40694161  {
    40704162    { Bad_Opcode },
    4071     { "cvtdq2pd", { XM, EXq } },
    4072     { "cvttpd2dq", { XM, EXx } },
    4073     { "cvtpd2dq", { XM, EXx } },
     4163    { "cvtdq2pd", { XM, EXq }, PREFIX_OPCODE },
     4164    { "cvttpd2dq", { XM, EXx }, PREFIX_OPCODE },
     4165    { "cvtpd2dq", { XM, EXx }, PREFIX_OPCODE },
    40744166  },
    40754167
    40764168  /* PREFIX_0FE7 */
    40774169  {
    4078     { "movntq", { Mq, MX } },
     4170    { "movntq", { Mq, MX }, PREFIX_OPCODE },
    40794171    { Bad_Opcode },
    40804172    { MOD_TABLE (MOD_0FE7_PREFIX_2) },
     
    40914183  /* PREFIX_0FF7 */
    40924184  {
    4093     { "maskmovq", { MX, MS } },
    4094     { Bad_Opcode },
    4095     { "maskmovdqu", { XM, XS } },
     4185    { "maskmovq", { MX, MS }, PREFIX_OPCODE },
     4186    { Bad_Opcode },
     4187    { "maskmovdqu", { XM, XS }, PREFIX_OPCODE },
    40964188  },
    40974189
     
    41004192    { Bad_Opcode },
    41014193    { Bad_Opcode },
    4102     { "pblendvb", { XM, EXx, XMM0 } },
     4194    { "pblendvb", { XM, EXx, XMM0 }, PREFIX_OPCODE },
    41034195  },
    41044196
     
    41074199    { Bad_Opcode },
    41084200    { Bad_Opcode },
    4109     { "blendvps", { XM, EXx, XMM0 } },
     4201    { "blendvps", { XM, EXx, XMM0 }, PREFIX_OPCODE },
    41104202  },
    41114203
     
    41144206    { Bad_Opcode },
    41154207    { Bad_Opcode },
    4116     { "blendvpd", { XM, EXx, XMM0 } },
     4208    { "blendvpd", { XM, EXx, XMM0 }, PREFIX_OPCODE },
    41174209  },
    41184210
     
    41214213    { Bad_Opcode },
    41224214    { Bad_Opcode },
    4123     { "ptest",  { XM, EXx } },
     4215    { "ptest",  { XM, EXx }, PREFIX_OPCODE },
    41244216  },
    41254217
     
    41284220    { Bad_Opcode },
    41294221    { Bad_Opcode },
    4130     { "pmovsxbw", { XM, EXq } },
     4222    { "pmovsxbw", { XM, EXq }, PREFIX_OPCODE },
    41314223  },
    41324224
     
    41354227    { Bad_Opcode },
    41364228    { Bad_Opcode },
    4137     { "pmovsxbd", { XM, EXd } },
     4229    { "pmovsxbd", { XM, EXd }, PREFIX_OPCODE },
    41384230  },
    41394231
     
    41424234    { Bad_Opcode },
    41434235    { Bad_Opcode },
    4144     { "pmovsxbq", { XM, EXw } },
     4236    { "pmovsxbq", { XM, EXw }, PREFIX_OPCODE },
    41454237  },
    41464238
     
    41494241    { Bad_Opcode },
    41504242    { Bad_Opcode },
    4151     { "pmovsxwd", { XM, EXq } },
     4243    { "pmovsxwd", { XM, EXq }, PREFIX_OPCODE },
    41524244  },
    41534245
     
    41564248    { Bad_Opcode },
    41574249    { Bad_Opcode },
    4158     { "pmovsxwq", { XM, EXd } },
     4250    { "pmovsxwq", { XM, EXd }, PREFIX_OPCODE },
    41594251  },
    41604252
     
    41634255    { Bad_Opcode },
    41644256    { Bad_Opcode },
    4165     { "pmovsxdq", { XM, EXq } },
     4257    { "pmovsxdq", { XM, EXq }, PREFIX_OPCODE },
    41664258  },
    41674259
     
    41704262    { Bad_Opcode },
    41714263    { Bad_Opcode },
    4172     { "pmuldq", { XM, EXx } },
     4264    { "pmuldq", { XM, EXx }, PREFIX_OPCODE },
    41734265  },
    41744266
     
    41774269    { Bad_Opcode },
    41784270    { Bad_Opcode },
    4179     { "pcmpeqq", { XM, EXx } },
     4271    { "pcmpeqq", { XM, EXx }, PREFIX_OPCODE },
    41804272  },
    41814273
     
    41914283    { Bad_Opcode },
    41924284    { Bad_Opcode },
    4193     { "packusdw", { XM, EXx } },
     4285    { "packusdw", { XM, EXx }, PREFIX_OPCODE },
    41944286  },
    41954287
     
    41984290    { Bad_Opcode },
    41994291    { Bad_Opcode },
    4200     { "pmovzxbw", { XM, EXq } },
     4292    { "pmovzxbw", { XM, EXq }, PREFIX_OPCODE },
    42014293  },
    42024294
     
    42054297    { Bad_Opcode },
    42064298    { Bad_Opcode },
    4207     { "pmovzxbd", { XM, EXd } },
     4299    { "pmovzxbd", { XM, EXd }, PREFIX_OPCODE },
    42084300  },
    42094301
     
    42124304    { Bad_Opcode },
    42134305    { Bad_Opcode },
    4214     { "pmovzxbq", { XM, EXw } },
     4306    { "pmovzxbq", { XM, EXw }, PREFIX_OPCODE },
    42154307  },
    42164308
     
    42194311    { Bad_Opcode },
    42204312    { Bad_Opcode },
    4221     { "pmovzxwd", { XM, EXq } },
     4313    { "pmovzxwd", { XM, EXq }, PREFIX_OPCODE },
    42224314  },
    42234315
     
    42264318    { Bad_Opcode },
    42274319    { Bad_Opcode },
    4228     { "pmovzxwq", { XM, EXd } },
     4320    { "pmovzxwq", { XM, EXd }, PREFIX_OPCODE },
    42294321  },
    42304322
     
    42334325    { Bad_Opcode },
    42344326    { Bad_Opcode },
    4235     { "pmovzxdq", { XM, EXq } },
     4327    { "pmovzxdq", { XM, EXq }, PREFIX_OPCODE },
    42364328  },
    42374329
     
    42404332    { Bad_Opcode },
    42414333    { Bad_Opcode },
    4242     { "pcmpgtq", { XM, EXx } },
     4334    { "pcmpgtq", { XM, EXx }, PREFIX_OPCODE },
    42434335  },
    42444336
     
    42474339    { Bad_Opcode },
    42484340    { Bad_Opcode },
    4249     { "pminsb", { XM, EXx } },
     4341    { "pminsb", { XM, EXx }, PREFIX_OPCODE },
    42504342  },
    42514343
     
    42544346    { Bad_Opcode },
    42554347    { Bad_Opcode },
    4256     { "pminsd", { XM, EXx } },
     4348    { "pminsd", { XM, EXx }, PREFIX_OPCODE },
    42574349  },
    42584350
     
    42614353    { Bad_Opcode },
    42624354    { Bad_Opcode },
    4263     { "pminuw", { XM, EXx } },
     4355    { "pminuw", { XM, EXx }, PREFIX_OPCODE },
    42644356  },
    42654357
     
    42684360    { Bad_Opcode },
    42694361    { Bad_Opcode },
    4270     { "pminud", { XM, EXx } },
     4362    { "pminud", { XM, EXx }, PREFIX_OPCODE },
    42714363  },
    42724364
     
    42754367    { Bad_Opcode },
    42764368    { Bad_Opcode },
    4277     { "pmaxsb", { XM, EXx } },
     4369    { "pmaxsb", { XM, EXx }, PREFIX_OPCODE },
    42784370  },
    42794371
     
    42824374    { Bad_Opcode },
    42834375    { Bad_Opcode },
    4284     { "pmaxsd", { XM, EXx } },
     4376    { "pmaxsd", { XM, EXx }, PREFIX_OPCODE },
    42854377  },
    42864378
     
    42894381    { Bad_Opcode },
    42904382    { Bad_Opcode },
    4291     { "pmaxuw", { XM, EXx } },
     4383    { "pmaxuw", { XM, EXx }, PREFIX_OPCODE },
    42924384  },
    42934385
     
    42964388    { Bad_Opcode },
    42974389    { Bad_Opcode },
    4298     { "pmaxud", { XM, EXx } },
     4390    { "pmaxud", { XM, EXx }, PREFIX_OPCODE },
    42994391  },
    43004392
     
    43034395    { Bad_Opcode },
    43044396    { Bad_Opcode },
    4305     { "pmulld", { XM, EXx } },
     4397    { "pmulld", { XM, EXx }, PREFIX_OPCODE },
    43064398  },
    43074399
     
    43104402    { Bad_Opcode },
    43114403    { Bad_Opcode },
    4312     { "phminposuw", { XM, EXx } },
     4404    { "phminposuw", { XM, EXx }, PREFIX_OPCODE },
    43134405  },
    43144406
     
    43174409    { Bad_Opcode },
    43184410    { Bad_Opcode },
    4319     { "invept", { Gm, Mo } },
     4411    { "invept", { Gm, Mo }, PREFIX_OPCODE },
    43204412  },
    43214413
     
    43244416    { Bad_Opcode },
    43254417    { Bad_Opcode },
    4326     { "invvpid", { Gm, Mo } },
     4418    { "invvpid", { Gm, Mo }, PREFIX_OPCODE },
    43274419  },
    43284420
     
    43314423    { Bad_Opcode },
    43324424    { Bad_Opcode },
    4333     { "invpcid", { Gm, M } },
     4425    { "invpcid", { Gm, M }, PREFIX_OPCODE },
    43344426  },
    43354427
    43364428  /* PREFIX_0F38C8 */
    43374429  {
    4338     { "sha1nexte", { XM, EXxmm } },
     4430    { "sha1nexte", { XM, EXxmm }, PREFIX_OPCODE },
    43394431  },
    43404432
    43414433  /* PREFIX_0F38C9 */
    43424434  {
    4343     { "sha1msg1", { XM, EXxmm } },
     4435    { "sha1msg1", { XM, EXxmm }, PREFIX_OPCODE },
    43444436  },
    43454437
    43464438  /* PREFIX_0F38CA */
    43474439  {
    4348     { "sha1msg2", { XM, EXxmm } },
     4440    { "sha1msg2", { XM, EXxmm }, PREFIX_OPCODE },
    43494441  },
    43504442
    43514443  /* PREFIX_0F38CB */
    43524444  {
    4353     { "sha256rnds2", { XM, EXxmm, XMM0 } },
     4445    { "sha256rnds2", { XM, EXxmm, XMM0 }, PREFIX_OPCODE },
    43544446  },
    43554447
    43564448  /* PREFIX_0F38CC */
    43574449  {
    4358     { "sha256msg1", { XM, EXxmm } },
     4450    { "sha256msg1", { XM, EXxmm }, PREFIX_OPCODE },
    43594451  },
    43604452
    43614453  /* PREFIX_0F38CD */
    43624454  {
    4363     { "sha256msg2", { XM, EXxmm } },
     4455    { "sha256msg2", { XM, EXxmm }, PREFIX_OPCODE },
    43644456  },
    43654457
     
    43684460    { Bad_Opcode },
    43694461    { Bad_Opcode },
    4370     { "aesimc", { XM, EXx } },
     4462    { "aesimc", { XM, EXx }, PREFIX_OPCODE },
    43714463  },
    43724464
     
    43754467    { Bad_Opcode },
    43764468    { Bad_Opcode },
    4377     { "aesenc", { XM, EXx } },
     4469    { "aesenc", { XM, EXx }, PREFIX_OPCODE },
    43784470  },
    43794471
     
    43824474    { Bad_Opcode },
    43834475    { Bad_Opcode },
    4384     { "aesenclast", { XM, EXx } },
     4476    { "aesenclast", { XM, EXx }, PREFIX_OPCODE },
    43854477  },
    43864478
     
    43894481    { Bad_Opcode },
    43904482    { Bad_Opcode },
    4391     { "aesdec", { XM, EXx } },
     4483    { "aesdec", { XM, EXx }, PREFIX_OPCODE },
    43924484  },
    43934485
     
    43964488    { Bad_Opcode },
    43974489    { Bad_Opcode },
    4398     { "aesdeclast", { XM, EXx } },
     4490    { "aesdeclast", { XM, EXx }, PREFIX_OPCODE },
    43994491  },
    44004492
    44014493  /* PREFIX_0F38F0 */
    44024494  {
    4403     { "movbeS", { Gv, { MOVBE_Fixup, v_mode } } },
    4404     { Bad_Opcode },
    4405     { "movbeS", { Gv, { MOVBE_Fixup, v_mode } } },
    4406     { "crc32",  { Gdq, { CRC32_Fixup, b_mode } } },
     4495    { "movbeS", { Gv, { MOVBE_Fixup, v_mode } }, PREFIX_OPCODE },
     4496    { Bad_Opcode },
     4497    { "movbeS", { Gv, { MOVBE_Fixup, v_mode } }, PREFIX_OPCODE },
     4498    { "crc32",  { Gdq, { CRC32_Fixup, b_mode } }, PREFIX_OPCODE },
    44074499  },
    44084500
    44094501  /* PREFIX_0F38F1 */
    44104502  {
    4411     { "movbeS", { { MOVBE_Fixup, v_mode }, Gv } },
    4412     { Bad_Opcode },
    4413     { "movbeS", { { MOVBE_Fixup, v_mode }, Gv } },
    4414     { "crc32",  { Gdq, { CRC32_Fixup, v_mode } } },
     4503    { "movbeS", { { MOVBE_Fixup, v_mode }, Gv }, PREFIX_OPCODE },
     4504    { Bad_Opcode },
     4505    { "movbeS", { { MOVBE_Fixup, v_mode }, Gv }, PREFIX_OPCODE },
     4506    { "crc32",  { Gdq, { CRC32_Fixup, v_mode } }, PREFIX_OPCODE },
    44154507  },
    44164508
     
    44184510  {
    44194511    { Bad_Opcode },
    4420     { "adoxS",  { Gdq, Edq} },
    4421     { "adcxS",  { Gdq, Edq} },
     4512    { "adoxS",  { Gdq, Edq}, PREFIX_OPCODE },
     4513    { "adcxS",  { Gdq, Edq}, PREFIX_OPCODE },
    44224514    { Bad_Opcode },
    44234515  },
     
    44274519    { Bad_Opcode },
    44284520    { Bad_Opcode },
    4429     { "roundps", { XM, EXx, Ib } },
     4521    { "roundps", { XM, EXx, Ib }, PREFIX_OPCODE },
    44304522  },
    44314523
     
    44344526    { Bad_Opcode },
    44354527    { Bad_Opcode },
    4436     { "roundpd", { XM, EXx, Ib } },
     4528    { "roundpd", { XM, EXx, Ib }, PREFIX_OPCODE },
    44374529  },
    44384530
     
    44414533    { Bad_Opcode },
    44424534    { Bad_Opcode },
    4443     { "roundss", { XM, EXd, Ib } },
     4535    { "roundss", { XM, EXd, Ib }, PREFIX_OPCODE },
    44444536  },
    44454537
     
    44484540    { Bad_Opcode },
    44494541    { Bad_Opcode },
    4450     { "roundsd", { XM, EXq, Ib } },
     4542    { "roundsd", { XM, EXq, Ib }, PREFIX_OPCODE },
    44514543  },
    44524544
     
    44554547    { Bad_Opcode },
    44564548    { Bad_Opcode },
    4457     { "blendps", { XM, EXx, Ib } },
     4549    { "blendps", { XM, EXx, Ib }, PREFIX_OPCODE },
    44584550  },
    44594551
     
    44624554    { Bad_Opcode },
    44634555    { Bad_Opcode },
    4464     { "blendpd", { XM, EXx, Ib } },
     4556    { "blendpd", { XM, EXx, Ib }, PREFIX_OPCODE },
    44654557  },
    44664558
     
    44694561    { Bad_Opcode },
    44704562    { Bad_Opcode },
    4471     { "pblendw", { XM, EXx, Ib } },
     4563    { "pblendw", { XM, EXx, Ib }, PREFIX_OPCODE },
    44724564  },
    44734565
     
    44764568    { Bad_Opcode },
    44774569    { Bad_Opcode },
    4478     { "pextrb", { Edqb, XM, Ib } },
     4570    { "pextrb", { Edqb, XM, Ib }, PREFIX_OPCODE },
    44794571  },
    44804572
     
    44834575    { Bad_Opcode },
    44844576    { Bad_Opcode },
    4485     { "pextrw", { Edqw, XM, Ib } },
     4577    { "pextrw", { Edqw, XM, Ib }, PREFIX_OPCODE },
    44864578  },
    44874579
     
    44904582    { Bad_Opcode },
    44914583    { Bad_Opcode },
    4492     { "pextrK", { Edq, XM, Ib } },
     4584    { "pextrK", { Edq, XM, Ib }, PREFIX_OPCODE },
    44934585  },
    44944586
     
    44974589    { Bad_Opcode },
    44984590    { Bad_Opcode },
    4499     { "extractps", { Edqd, XM, Ib } },
     4591    { "extractps", { Edqd, XM, Ib }, PREFIX_OPCODE },
    45004592  },
    45014593
     
    45044596    { Bad_Opcode },
    45054597    { Bad_Opcode },
    4506     { "pinsrb", { XM, Edqb, Ib } },
     4598    { "pinsrb", { XM, Edqb, Ib }, PREFIX_OPCODE },
    45074599  },
    45084600
     
    45114603    { Bad_Opcode },
    45124604    { Bad_Opcode },
    4513     { "insertps", { XM, EXd, Ib } },
     4605    { "insertps", { XM, EXd, Ib }, PREFIX_OPCODE },
    45144606  },
    45154607
     
    45184610    { Bad_Opcode },
    45194611    { Bad_Opcode },
    4520     { "pinsrK", { XM, Edq, Ib } },
     4612    { "pinsrK", { XM, Edq, Ib }, PREFIX_OPCODE },
    45214613  },
    45224614
     
    45254617    { Bad_Opcode },
    45264618    { Bad_Opcode },
    4527     { "dpps",   { XM, EXx, Ib } },
     4619    { "dpps",   { XM, EXx, Ib }, PREFIX_OPCODE },
    45284620  },
    45294621
     
    45324624    { Bad_Opcode },
    45334625    { Bad_Opcode },
    4534     { "dppd",   { XM, EXx, Ib } },
     4626    { "dppd",   { XM, EXx, Ib }, PREFIX_OPCODE },
    45354627  },
    45364628
     
    45394631    { Bad_Opcode },
    45404632    { Bad_Opcode },
    4541     { "mpsadbw", { XM, EXx, Ib } },
     4633    { "mpsadbw", { XM, EXx, Ib }, PREFIX_OPCODE },
    45424634  },
    45434635
     
    45464638    { Bad_Opcode },
    45474639    { Bad_Opcode },
    4548     { "pclmulqdq", { XM, EXx, PCLMUL } },
     4640    { "pclmulqdq", { XM, EXx, PCLMUL }, PREFIX_OPCODE },
    45494641  },
    45504642
     
    45534645    { Bad_Opcode },
    45544646    { Bad_Opcode },
    4555     { "pcmpestrm", { XM, EXx, Ib } },
     4647    { "pcmpestrm", { XM, EXx, Ib }, PREFIX_OPCODE },
    45564648  },
    45574649
     
    45604652    { Bad_Opcode },
    45614653    { Bad_Opcode },
    4562     { "pcmpestri", { XM, EXx, Ib } },
     4654    { "pcmpestri", { XM, EXx, Ib }, PREFIX_OPCODE },
    45634655  },
    45644656
     
    45674659    { Bad_Opcode },
    45684660    { Bad_Opcode },
    4569     { "pcmpistrm", { XM, EXx, Ib } },
     4661    { "pcmpistrm", { XM, EXx, Ib }, PREFIX_OPCODE },
    45704662  },
    45714663
     
    45744666    { Bad_Opcode },
    45754667    { Bad_Opcode },
    4576     { "pcmpistri", { XM, EXx, Ib } },
     4668    { "pcmpistri", { XM, EXx, Ib }, PREFIX_OPCODE },
    45774669  },
    45784670
    45794671  /* PREFIX_0F3ACC */
    45804672  {
    4581     { "sha1rnds4", { XM, EXxmm, Ib } },
     4673    { "sha1rnds4", { XM, EXxmm, Ib }, PREFIX_OPCODE },
    45824674  },
    45834675
     
    45864678    { Bad_Opcode },
    45874679    { Bad_Opcode },
    4588     { "aeskeygenassist", { XM, EXx, Ib } },
     4680    { "aeskeygenassist", { XM, EXx, Ib }, PREFIX_OPCODE },
    45894681  },
    45904682
     
    47544846    { VEX_W_TABLE (VEX_W_0F5A_P_0) },
    47554847    { VEX_LEN_TABLE (VEX_LEN_0F5A_P_1) },
    4756     { "vcvtpd2ps%XY", { XMM, EXx } },
     4848    { "vcvtpd2ps%XY", { XMM, EXx }, 0 },
    47574849    { VEX_LEN_TABLE (VEX_LEN_0F5A_P_3) },
    47584850  },
     
    55575649    { Bad_Opcode },
    55585650    { Bad_Opcode },
    5559     { "vcvtph2ps", { XM, EXxmmq } },
     5651    { "vcvtph2ps", { XM, EXxmmq }, 0 },
    55605652  },
    55615653
     
    58445936    { Bad_Opcode },
    58455937    { Bad_Opcode },
    5846     { "vpsrlv%LW", { XM, Vex, EXx } },
     5938    { "vpsrlv%LW", { XM, Vex, EXx }, 0 },
    58475939  },
    58485940
     
    58585950    { Bad_Opcode },
    58595951    { Bad_Opcode },
    5860     { "vpsllv%LW", { XM, Vex, EXx } },
     5952    { "vpsllv%LW", { XM, Vex, EXx }, 0 },
    58615953  },
    58625954
     
    59146006    { Bad_Opcode },
    59156007    { Bad_Opcode },
    5916     { "vpgatherd%LW", { XM, MVexVSIBDWpX, Vex } },
     6008    { "vpgatherd%LW", { XM, MVexVSIBDWpX, Vex }, 0 },
    59176009  },
    59186010
     
    59216013    { Bad_Opcode },
    59226014    { Bad_Opcode },
    5923     { "vpgatherq%LW", { XMGatherQ, MVexVSIBQWpX, VexGatherQ } },
     6015    { "vpgatherq%LW", { XMGatherQ, MVexVSIBQWpX, VexGatherQ }, 0 },
    59246016  },
    59256017
     
    59286020    { Bad_Opcode },
    59296021    { Bad_Opcode },
    5930     { "vgatherdp%XW", { XM, MVexVSIBDWpX, Vex } },
     6022    { "vgatherdp%XW", { XM, MVexVSIBDWpX, Vex }, 0 },
    59316023  },
    59326024
     
    59356027    { Bad_Opcode },
    59366028    { Bad_Opcode },
    5937     { "vgatherqp%XW", { XMGatherQ, MVexVSIBQWpX, VexGatherQ } },
     6029    { "vgatherqp%XW", { XMGatherQ, MVexVSIBQWpX, VexGatherQ }, 0 },
    59386030  },
    59396031
     
    59426034    { Bad_Opcode },
    59436035    { Bad_Opcode },
    5944     { "vfmaddsub132p%XW", { XM, Vex, EXx } },
     6036    { "vfmaddsub132p%XW", { XM, Vex, EXx }, 0 },
    59456037  },
    59466038
     
    59496041    { Bad_Opcode },
    59506042    { Bad_Opcode },
    5951     { "vfmsubadd132p%XW", { XM, Vex, EXx } },
     6043    { "vfmsubadd132p%XW", { XM, Vex, EXx }, 0 },
    59526044  },
    59536045
     
    59566048    { Bad_Opcode },
    59576049    { Bad_Opcode },
    5958     { "vfmadd132p%XW", { XM, Vex, EXx } },
     6050    { "vfmadd132p%XW", { XM, Vex, EXx }, 0 },
    59596051  },
    59606052
     
    59636055    { Bad_Opcode },
    59646056    { Bad_Opcode },
    5965     { "vfmadd132s%XW", { XMScalar, VexScalar, EXVexWdqScalar } },
     6057    { "vfmadd132s%XW", { XMScalar, VexScalar, EXVexWdqScalar }, 0 },
    59666058  },
    59676059
     
    59706062    { Bad_Opcode },
    59716063    { Bad_Opcode },
    5972     { "vfmsub132p%XW", { XM, Vex, EXx } },
     6064    { "vfmsub132p%XW", { XM, Vex, EXx }, 0 },
    59736065  },
    59746066
     
    59776069    { Bad_Opcode },
    59786070    { Bad_Opcode },
    5979     { "vfmsub132s%XW", { XMScalar, VexScalar, EXVexWdqScalar } },
     6071    { "vfmsub132s%XW", { XMScalar, VexScalar, EXVexWdqScalar }, 0 },
    59806072  },
    59816073
     
    59846076    { Bad_Opcode },
    59856077    { Bad_Opcode },
    5986     { "vfnmadd132p%XW", { XM, Vex, EXx } },
     6078    { "vfnmadd132p%XW", { XM, Vex, EXx }, 0 },
    59876079  },
    59886080
     
    59916083    { Bad_Opcode },
    59926084    { Bad_Opcode },
    5993     { "vfnmadd132s%XW", { XMScalar, VexScalar, EXVexWdqScalar } },
     6085    { "vfnmadd132s%XW", { XMScalar, VexScalar, EXVexWdqScalar }, 0 },
    59946086  },
    59956087
     
    59986090    { Bad_Opcode },
    59996091    { Bad_Opcode },
    6000     { "vfnmsub132p%XW", { XM, Vex, EXx } },
     6092    { "vfnmsub132p%XW", { XM, Vex, EXx }, 0 },
    60016093  },
    60026094
     
    60056097    { Bad_Opcode },
    60066098    { Bad_Opcode },
    6007     { "vfnmsub132s%XW", { XMScalar, VexScalar, EXVexWdqScalar } },
     6099    { "vfnmsub132s%XW", { XMScalar, VexScalar, EXVexWdqScalar }, 0 },
    60086100  },
    60096101
     
    60126104    { Bad_Opcode },
    60136105    { Bad_Opcode },
    6014     { "vfmaddsub213p%XW", { XM, Vex, EXx } },
     6106    { "vfmaddsub213p%XW", { XM, Vex, EXx }, 0 },
    60156107    { Bad_Opcode },
    60166108  },
     
    60206112    { Bad_Opcode },
    60216113    { Bad_Opcode },
    6022     { "vfmsubadd213p%XW", { XM, Vex, EXx } },
     6114    { "vfmsubadd213p%XW", { XM, Vex, EXx }, 0 },
    60236115  },
    60246116
     
    60276119    { Bad_Opcode },
    60286120    { Bad_Opcode },
    6029     { "vfmadd213p%XW", { XM, Vex, EXx } },
     6121    { "vfmadd213p%XW", { XM, Vex, EXx }, 0 },
    60306122  },
    60316123
     
    60346126    { Bad_Opcode },
    60356127    { Bad_Opcode },
    6036     { "vfmadd213s%XW", { XMScalar, VexScalar, EXVexWdqScalar } },
     6128    { "vfmadd213s%XW", { XMScalar, VexScalar, EXVexWdqScalar }, 0 },
    60376129  },
    60386130
     
    60416133    { Bad_Opcode },
    60426134    { Bad_Opcode },
    6043     { "vfmsub213p%XW", { XM, Vex, EXx } },
     6135    { "vfmsub213p%XW", { XM, Vex, EXx }, 0 },
    60446136  },
    60456137
     
    60486140    { Bad_Opcode },
    60496141    { Bad_Opcode },
    6050     { "vfmsub213s%XW", { XMScalar, VexScalar, EXVexWdqScalar } },
     6142    { "vfmsub213s%XW", { XMScalar, VexScalar, EXVexWdqScalar }, 0 },
    60516143  },
    60526144
     
    60556147    { Bad_Opcode },
    60566148    { Bad_Opcode },
    6057     { "vfnmadd213p%XW", { XM, Vex, EXx } },
     6149    { "vfnmadd213p%XW", { XM, Vex, EXx }, 0 },
    60586150  },
    60596151
     
    60626154    { Bad_Opcode },
    60636155    { Bad_Opcode },
    6064     { "vfnmadd213s%XW", { XMScalar, VexScalar, EXVexWdqScalar } },
     6156    { "vfnmadd213s%XW", { XMScalar, VexScalar, EXVexWdqScalar }, 0 },
    60656157  },
    60666158
     
    60696161    { Bad_Opcode },
    60706162    { Bad_Opcode },
    6071     { "vfnmsub213p%XW", { XM, Vex, EXx } },
     6163    { "vfnmsub213p%XW", { XM, Vex, EXx }, 0 },
    60726164  },
    60736165
     
    60766168    { Bad_Opcode },
    60776169    { Bad_Opcode },
    6078     { "vfnmsub213s%XW", { XMScalar, VexScalar, EXVexWdqScalar } },
     6170    { "vfnmsub213s%XW", { XMScalar, VexScalar, EXVexWdqScalar }, 0 },
    60796171  },
    60806172
     
    60836175    { Bad_Opcode },
    60846176    { Bad_Opcode },
    6085     { "vfmaddsub231p%XW", { XM, Vex, EXx } },
     6177    { "vfmaddsub231p%XW", { XM, Vex, EXx }, 0 },
    60866178  },
    60876179
     
    60906182    { Bad_Opcode },
    60916183    { Bad_Opcode },
    6092     { "vfmsubadd231p%XW", { XM, Vex, EXx } },
     6184    { "vfmsubadd231p%XW", { XM, Vex, EXx }, 0 },
    60936185  },
    60946186
     
    60976189    { Bad_Opcode },
    60986190    { Bad_Opcode },
    6099     { "vfmadd231p%XW", { XM, Vex, EXx } },
     6191    { "vfmadd231p%XW", { XM, Vex, EXx }, 0 },
    61006192  },
    61016193
     
    61046196    { Bad_Opcode },
    61056197    { Bad_Opcode },
    6106     { "vfmadd231s%XW", { XMScalar, VexScalar, EXVexWdqScalar } },
     6198    { "vfmadd231s%XW", { XMScalar, VexScalar, EXVexWdqScalar }, 0 },
    61076199  },
    61086200
     
    61116203    { Bad_Opcode },
    61126204    { Bad_Opcode },
    6113     { "vfmsub231p%XW", { XM, Vex, EXx } },
     6205    { "vfmsub231p%XW", { XM, Vex, EXx }, 0 },
    61146206  },
    61156207
     
    61186210    { Bad_Opcode },
    61196211    { Bad_Opcode },
    6120     { "vfmsub231s%XW", { XMScalar, VexScalar, EXVexWdqScalar } },
     6212    { "vfmsub231s%XW", { XMScalar, VexScalar, EXVexWdqScalar }, 0 },
    61216213  },
    61226214
     
    61256217    { Bad_Opcode },
    61266218    { Bad_Opcode },
    6127     { "vfnmadd231p%XW", { XM, Vex, EXx } },
     6219    { "vfnmadd231p%XW", { XM, Vex, EXx }, 0 },
    61286220  },
    61296221
     
    61326224    { Bad_Opcode },
    61336225    { Bad_Opcode },
    6134     { "vfnmadd231s%XW", { XMScalar, VexScalar, EXVexWdqScalar } },
     6226    { "vfnmadd231s%XW", { XMScalar, VexScalar, EXVexWdqScalar }, 0 },
    61356227  },
    61366228
     
    61396231    { Bad_Opcode },
    61406232    { Bad_Opcode },
    6141     { "vfnmsub231p%XW", { XM, Vex, EXx } },
     6233    { "vfnmsub231p%XW", { XM, Vex, EXx }, 0 },
    61426234  },
    61436235
     
    61466238    { Bad_Opcode },
    61476239    { Bad_Opcode },
    6148     { "vfnmsub231s%XW", { XMScalar, VexScalar, EXVexWdqScalar } },
     6240    { "vfnmsub231s%XW", { XMScalar, VexScalar, EXVexWdqScalar }, 0 },
    61496241  },
    61506242
     
    63726464    { Bad_Opcode },
    63736465    { Bad_Opcode },
    6374     { "vcvtps2ph", { EXxmmq, XM, Ib } },
     6466    { "vcvtps2ph", { EXxmmq, XM, Ib }, 0 },
    63756467  },
    63766468
     
    65126604    { Bad_Opcode },
    65136605    { Bad_Opcode },
    6514     { "vfmaddsubps", { XMVexW, Vex, EXVexW, EXVexW, VexI4 } },
     6606    { "vfmaddsubps", { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
    65156607  },
    65166608
     
    65196611    { Bad_Opcode },
    65206612    { Bad_Opcode },
    6521     { "vfmaddsubpd", { XMVexW, Vex, EXVexW, EXVexW, VexI4 } },
     6613    { "vfmaddsubpd", { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
    65226614  },
    65236615
     
    65266618    { Bad_Opcode },
    65276619    { Bad_Opcode },
    6528     { "vfmsubaddps", { XMVexW, Vex, EXVexW, EXVexW, VexI4 } },
     6620    { "vfmsubaddps", { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
    65296621  },
    65306622
     
    65336625    { Bad_Opcode },
    65346626    { Bad_Opcode },
    6535     { "vfmsubaddpd", { XMVexW, Vex, EXVexW, EXVexW, VexI4 } },
     6627    { "vfmsubaddpd", { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
    65366628  },
    65376629
     
    65696661    { Bad_Opcode },
    65706662    { Bad_Opcode },
    6571     { "vfmaddps", { XMVexW, Vex, EXVexW, EXVexW, VexI4 } },
     6663    { "vfmaddps", { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
    65726664  },
    65736665
     
    65766668    { Bad_Opcode },
    65776669    { Bad_Opcode },
    6578     { "vfmaddpd", { XMVexW, Vex, EXVexW, EXVexW, VexI4 } },
     6670    { "vfmaddpd", { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
    65796671  },
    65806672
     
    65976689    { Bad_Opcode },
    65986690    { Bad_Opcode },
    6599     { "vfmsubps", { XMVexW, Vex, EXVexW, EXVexW, VexI4 } },
     6691    { "vfmsubps", { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
    66006692  },
    66016693
     
    66046696    { Bad_Opcode },
    66056697    { Bad_Opcode },
    6606     { "vfmsubpd", { XMVexW, Vex, EXVexW, EXVexW, VexI4 } },
     6698    { "vfmsubpd", { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
    66076699  },
    66086700
     
    66256717    { Bad_Opcode },
    66266718    { Bad_Opcode },
    6627     { "vfnmaddps", { XMVexW, Vex, EXVexW, EXVexW, VexI4 } },
     6719    { "vfnmaddps", { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
    66286720  },
    66296721
     
    66326724    { Bad_Opcode },
    66336725    { Bad_Opcode },
    6634     { "vfnmaddpd", { XMVexW, Vex, EXVexW, EXVexW, VexI4 } },
     6726    { "vfnmaddpd", { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
    66356727  },
    66366728
     
    66536745    { Bad_Opcode },
    66546746    { Bad_Opcode },
    6655     { "vfnmsubps", { XMVexW, Vex, EXVexW, EXVexW, VexI4 } },
     6747    { "vfnmsubps", { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
    66566748    { Bad_Opcode },
    66576749  },
     
    66616753    { Bad_Opcode },
    66626754    { Bad_Opcode },
    6663     { "vfnmsubpd", { XMVexW, Vex, EXVexW, EXVexW, VexI4 } },
     6755    { "vfnmsubpd", { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
    66646756  },
    66656757
     
    67016793  /* X86_64_06 */
    67026794  {
    6703     { "pushP", { es } },
     6795    { "pushP", { es }, 0 },
    67046796  },
    67056797
    67066798  /* X86_64_07 */
    67076799  {
    6708     { "popP", { es } },
     6800    { "popP", { es }, 0 },
    67096801  },
    67106802
    67116803  /* X86_64_0D */
    67126804  {
    6713     { "pushP", { cs } },
     6805    { "pushP", { cs }, 0 },
    67146806  },
    67156807
    67166808  /* X86_64_16 */
    67176809  {
    6718     { "pushP", { ss } },
     6810    { "pushP", { ss }, 0 },
    67196811  },
    67206812
    67216813  /* X86_64_17 */
    67226814  {
    6723     { "popP", { ss } },
     6815    { "popP", { ss }, 0 },
    67246816  },
    67256817
    67266818  /* X86_64_1E */
    67276819  {
    6728     { "pushP", { ds } },
     6820    { "pushP", { ds }, 0 },
    67296821  },
    67306822
    67316823  /* X86_64_1F */
    67326824  {
    6733     { "popP", { ds } },
     6825    { "popP", { ds }, 0 },
    67346826  },
    67356827
    67366828  /* X86_64_27 */
    67376829  {
    6738     { "daa", { XX } },
     6830    { "daa", { XX }, 0 },
    67396831  },
    67406832
    67416833  /* X86_64_2F */
    67426834  {
    6743     { "das", { XX } },
     6835    { "das", { XX }, 0 },
    67446836  },
    67456837
    67466838  /* X86_64_37 */
    67476839  {
    6748     { "aaa", { XX } },
     6840    { "aaa", { XX }, 0 },
    67496841  },
    67506842
    67516843  /* X86_64_3F */
    67526844  {
    6753     { "aas", { XX } },
     6845    { "aas", { XX }, 0 },
    67546846  },
    67556847
    67566848  /* X86_64_60 */
    67576849  {
    6758     { "pushaP", { XX } },
     6850    { "pushaP", { XX }, 0 },
    67596851  },
    67606852
    67616853  /* X86_64_61 */
    67626854  {
    6763     { "popaP", { XX } },
     6855    { "popaP", { XX }, 0 },
    67646856  },
    67656857
     
    67726864  /* X86_64_63 */
    67736865  {
    6774     { "arpl", { Ew, Gw } },
    6775     { "movs{lq|xd}", { Gv, Ed } },
     6866    { "arpl", { Ew, Gw }, 0 },
     6867    { "movs{lq|xd}", { Gv, Ed }, 0 },
    67766868  },
    67776869
    67786870  /* X86_64_6D */
    67796871  {
    6780     { "ins{R|}", { Yzr, indirDX } },
    6781     { "ins{G|}", { Yzr, indirDX } },
     6872    { "ins{R|}", { Yzr, indirDX }, 0 },
     6873    { "ins{G|}", { Yzr, indirDX }, 0 },
    67826874  },
    67836875
    67846876  /* X86_64_6F */
    67856877  {
    6786     { "outs{R|}", { indirDXr, Xz } },
    6787     { "outs{G|}", { indirDXr, Xz } },
     6878    { "outs{R|}", { indirDXr, Xz }, 0 },
     6879    { "outs{G|}", { indirDXr, Xz }, 0 },
    67886880  },
    67896881
    67906882  /* X86_64_9A */
    67916883  {
    6792     { "Jcall{T|}", { Ap } },
     6884    { "Jcall{T|}", { Ap }, 0 },
    67936885  },
    67946886
     
    68076899  /* X86_64_CE */
    68086900  {
    6809     { "into", { XX } },
     6901    { "into", { XX }, 0 },
    68106902  },
    68116903
    68126904  /* X86_64_D4 */
    68136905  {
    6814     { "aam", { Ib } },
     6906    { "aam", { Ib }, 0 },
    68156907  },
    68166908
    68176909  /* X86_64_D5 */
    68186910  {
    6819     { "aad", { Ib } },
     6911    { "aad", { Ib }, 0 },
     6912  },
     6913
     6914  /* X86_64_E8 */
     6915  {
     6916    { "callP",          { Jv, BND }, 0 },
     6917    { "call@",          { Jv, BND }, 0 }
     6918  },
     6919
     6920  /* X86_64_E9 */
     6921  {
     6922    { "jmpP",           { Jv, BND }, 0 },
     6923    { "jmp@",           { Jv, BND }, 0 }
    68206924  },
    68216925
    68226926  /* X86_64_EA */
    68236927  {
    6824     { "Jjmp{T|}", { Ap } },
     6928    { "Jjmp{T|}", { Ap }, 0 },
    68256929  },
    68266930
    68276931  /* X86_64_0F01_REG_0 */
    68286932  {
    6829     { "sgdt{Q|IQ}", { M } },
    6830     { "sgdt", { M } },
     6933    { "sgdt{Q|IQ}", { M }, 0 },
     6934    { "sgdt", { M }, 0 },
    68316935  },
    68326936
    68336937  /* X86_64_0F01_REG_1 */
    68346938  {
    6835     { "sidt{Q|IQ}", { M } },
    6836     { "sidt", { M } },
     6939    { "sidt{Q|IQ}", { M }, 0 },
     6940    { "sidt", { M }, 0 },
    68376941  },
    68386942
    68396943  /* X86_64_0F01_REG_2 */
    68406944  {
    6841     { "lgdt{Q|Q}", { M } },
    6842     { "lgdt", { M } },
     6945    { "lgdt{Q|Q}", { M }, 0 },
     6946    { "lgdt", { M }, 0 },
    68436947  },
    68446948
    68456949  /* X86_64_0F01_REG_3 */
    68466950  {
    6847     { "lidt{Q|Q}", { M } },
    6848     { "lidt", { M } },
     6951    { "lidt{Q|Q}", { M }, 0 },
     6952    { "lidt", { M }, 0 },
    68496953  },
    68506954};
     
    68556959  {
    68566960    /* 00 */
    6857     { "pshufb",         { MX, EM } },
    6858     { "phaddw",         { MX, EM } },
    6859     { "phaddd",         { MX, EM } },
    6860     { "phaddsw",        { MX, EM } },
    6861     { "pmaddubsw",      { MX, EM } },
    6862     { "phsubw",         { MX, EM } },
    6863     { "phsubd",         { MX, EM } },
    6864     { "phsubsw",        { MX, EM } },
     6961    { "pshufb",         { MX, EM }, PREFIX_OPCODE },
     6962    { "phaddw",         { MX, EM }, PREFIX_OPCODE },
     6963    { "phaddd",         { MX, EM }, PREFIX_OPCODE },
     6964    { "phaddsw",        { MX, EM }, PREFIX_OPCODE },
     6965    { "pmaddubsw",      { MX, EM }, PREFIX_OPCODE },
     6966    { "phsubw",         { MX, EM }, PREFIX_OPCODE },
     6967    { "phsubd",         { MX, EM }, PREFIX_OPCODE },
     6968    { "phsubsw",        { MX, EM }, PREFIX_OPCODE },
    68656969    /* 08 */
    6866     { "psignb",         { MX, EM } },
    6867     { "psignw",         { MX, EM } },
    6868     { "psignd",         { MX, EM } },
    6869     { "pmulhrsw",       { MX, EM } },
     6970    { "psignb",         { MX, EM }, PREFIX_OPCODE },
     6971    { "psignw",         { MX, EM }, PREFIX_OPCODE },
     6972    { "psignd",         { MX, EM }, PREFIX_OPCODE },
     6973    { "pmulhrsw",       { MX, EM }, PREFIX_OPCODE },
    68706974    { Bad_Opcode },
    68716975    { Bad_Opcode },
     
    68866990    { Bad_Opcode },
    68876991    { Bad_Opcode },
    6888     { "pabsb",          { MX, EM } },
    6889     { "pabsw",          { MX, EM } },
    6890     { "pabsd",          { MX, EM } },
     6992    { "pabsb",          { MX, EM }, PREFIX_OPCODE },
     6993    { "pabsw",          { MX, EM }, PREFIX_OPCODE },
     6994    { "pabsd",          { MX, EM }, PREFIX_OPCODE },
    68916995    { Bad_Opcode },
    68926996    /* 20 */
     
    71627266    { PREFIX_TABLE (PREFIX_0F3A0D) },
    71637267    { PREFIX_TABLE (PREFIX_0F3A0E) },
    7164     { "palignr",        { MX, EM, Ib } },
     7268    { "palignr",        { MX, EM, Ib }, PREFIX_OPCODE },
    71657269    /* 10 */
    71667270    { Bad_Opcode },
     
    74747578    { Bad_Opcode },
    74757579    /* 20 */
    7476     { "ptest",          { XX } },
     7580    { "ptest",          { XX }, PREFIX_OPCODE },
    74777581    { Bad_Opcode },
    74787582    { Bad_Opcode },
     
    75117615    /* 40 */
    75127616    { Bad_Opcode },
    7513     { "phaddbw",        { XM, EXq } },
    7514     { "phaddbd",        { XM, EXq } },
    7515     { "phaddbq",        { XM, EXq } },
    7516     { Bad_Opcode },
    7517     { Bad_Opcode },
    7518     { "phaddwd",        { XM, EXq } },
    7519     { "phaddwq",        { XM, EXq } },
     7617    { "phaddbw",        { XM, EXq }, PREFIX_OPCODE },
     7618    { "phaddbd",        { XM, EXq }, PREFIX_OPCODE },
     7619    { "phaddbq",        { XM, EXq }, PREFIX_OPCODE },
     7620    { Bad_Opcode },
     7621    { Bad_Opcode },
     7622    { "phaddwd",        { XM, EXq }, PREFIX_OPCODE },
     7623    { "phaddwq",        { XM, EXq }, PREFIX_OPCODE },
    75207624    /* 48 */
    75217625    { Bad_Opcode },
    75227626    { Bad_Opcode },
    75237627    { Bad_Opcode },
    7524     { "phadddq",        { XM, EXq } },
     7628    { "phadddq",        { XM, EXq }, PREFIX_OPCODE },
    75257629    { Bad_Opcode },
    75267630    { Bad_Opcode },
     
    75297633    /* 50 */
    75307634    { Bad_Opcode },
    7531     { "phaddubw",       { XM, EXq } },
    7532     { "phaddubd",       { XM, EXq } },
    7533     { "phaddubq",       { XM, EXq } },
    7534     { Bad_Opcode },
    7535     { Bad_Opcode },
    7536     { "phadduwd",       { XM, EXq } },
    7537     { "phadduwq",       { XM, EXq } },
     7635    { "phaddubw",       { XM, EXq }, PREFIX_OPCODE },
     7636    { "phaddubd",       { XM, EXq }, PREFIX_OPCODE },
     7637    { "phaddubq",       { XM, EXq }, PREFIX_OPCODE },
     7638    { Bad_Opcode },
     7639    { Bad_Opcode },
     7640    { "phadduwd",       { XM, EXq }, PREFIX_OPCODE },
     7641    { "phadduwq",       { XM, EXq }, PREFIX_OPCODE },
    75387642    /* 58 */
    75397643    { Bad_Opcode },
    75407644    { Bad_Opcode },
    75417645    { Bad_Opcode },
    7542     { "phaddudq",       { XM, EXq } },
     7646    { "phaddudq",       { XM, EXq }, PREFIX_OPCODE },
    75437647    { Bad_Opcode },
    75447648    { Bad_Opcode },
     
    75477651    /* 60 */
    75487652    { Bad_Opcode },
    7549     { "phsubbw",        { XM, EXq } },
    7550     { "phsubbd",        { XM, EXq } },
    7551     { "phsubbq",        { XM, EXq } },
     7653    { "phsubbw",        { XM, EXq }, PREFIX_OPCODE },
     7654    { "phsubbd",        { XM, EXq }, PREFIX_OPCODE },
     7655    { "phsubbq",        { XM, EXq }, PREFIX_OPCODE },
    75527656    { Bad_Opcode },
    75537657    { Bad_Opcode },
     
    78817985    { Bad_Opcode },
    78827986    { Bad_Opcode },
    7883     { "vpmacssww",      { XMVexW, Vex, EXVexW, EXVexW, VexI4 } },
    7884     { "vpmacsswd",      { XMVexW, Vex, EXVexW, EXVexW, VexI4 } },
    7885     { "vpmacssdql",     { XMVexW, Vex, EXVexW, EXVexW, VexI4 } },
     7987    { "vpmacssww",      { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
     7988    { "vpmacsswd",      { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
     7989    { "vpmacssdql",     { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
    78867990    /* 88 */
    78877991    { Bad_Opcode },
     
    78917995    { Bad_Opcode },
    78927996    { Bad_Opcode },
    7893     { "vpmacssdd",      { XMVexW, Vex, EXVexW, EXVexW, VexI4 } },
    7894     { "vpmacssdqh",     { XMVexW, Vex, EXVexW, EXVexW, VexI4 } },
     7997    { "vpmacssdd",      { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
     7998    { "vpmacssdqh",     { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
    78957999    /* 90 */
    78968000    { Bad_Opcode },
     
    78998003    { Bad_Opcode },
    79008004    { Bad_Opcode },
    7901     { "vpmacsww",       { XMVexW, Vex, EXVexW, EXVexW, VexI4 } },
    7902     { "vpmacswd",       { XMVexW, Vex, EXVexW, EXVexW, VexI4 } },
    7903     { "vpmacsdql",      { XMVexW, Vex, EXVexW, EXVexW, VexI4 } },
     8005    { "vpmacsww",       { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
     8006    { "vpmacswd",       { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
     8007    { "vpmacsdql",      { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
    79048008    /* 98 */
    79058009    { Bad_Opcode },
     
    79098013    { Bad_Opcode },
    79108014    { Bad_Opcode },
    7911     { "vpmacsdd",       { XMVexW, Vex, EXVexW, EXVexW, VexI4 } },
    7912     { "vpmacsdqh",      { XMVexW, Vex, EXVexW, EXVexW, VexI4 } },
     8015    { "vpmacsdd",       { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
     8016    { "vpmacsdqh",      { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
    79138017    /* a0 */
    79148018    { Bad_Opcode },
    79158019    { Bad_Opcode },
    7916     { "vpcmov",         { XMVexW, Vex, EXVexW, EXVexW, VexI4 } },
    7917     { "vpperm",         { XMVexW, Vex, EXVexW, EXVexW, VexI4 } },
    7918     { Bad_Opcode },
    7919     { Bad_Opcode },
    7920     { "vpmadcsswd",     { XMVexW, Vex, EXVexW, EXVexW, VexI4 } },
     8020    { "vpcmov",         { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
     8021    { "vpperm",         { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
     8022    { Bad_Opcode },
     8023    { Bad_Opcode },
     8024    { "vpmadcsswd",     { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
    79218025    { Bad_Opcode },
    79228026    /* a8 */
     
    79368040    { Bad_Opcode },
    79378041    { Bad_Opcode },
    7938     { "vpmadcswd",      { XMVexW, Vex, EXVexW, EXVexW, VexI4 } },
     8042    { "vpmadcswd",      { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
    79398043    { Bad_Opcode },
    79408044    /* b8 */
     
    79488052    { Bad_Opcode },
    79498053    /* c0 */
    7950     { "vprotb",         { XM, Vex_2src_1, Ib } },
    7951     { "vprotw",         { XM, Vex_2src_1, Ib } },
    7952     { "vprotd",         { XM, Vex_2src_1, Ib } },
    7953     { "vprotq",         { XM, Vex_2src_1, Ib } },
     8054    { "vprotb",         { XM, Vex_2src_1, Ib }, 0 },
     8055    { "vprotw",         { XM, Vex_2src_1, Ib }, 0 },
     8056    { "vprotd",         { XM, Vex_2src_1, Ib }, 0 },
     8057    { "vprotq",         { XM, Vex_2src_1, Ib }, 0 },
    79548058    { Bad_Opcode },
    79558059    { Bad_Opcode },
     
    81698273    { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_80) },
    81708274    { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_81) },
    8171     { "vfrczss",        { XM, EXd } },
    8172     { "vfrczsd",        { XM, EXq } },
     8275    { "vfrczss",        { XM, EXd }, 0 },
     8276    { "vfrczsd",        { XM, EXq }, 0 },
    81738277    { Bad_Opcode },
    81748278    { Bad_Opcode },
     
    81858289    { Bad_Opcode },
    81868290    /* 90 */
    8187     { "vprotb",         { XM, Vex_2src_1, Vex_2src_2 } },
    8188     { "vprotw",         { XM, Vex_2src_1, Vex_2src_2 } },
    8189     { "vprotd",         { XM, Vex_2src_1, Vex_2src_2 } },
    8190     { "vprotq",         { XM, Vex_2src_1, Vex_2src_2 } },
    8191     { "vpshlb",         { XM, Vex_2src_1, Vex_2src_2 } },
    8192     { "vpshlw",         { XM, Vex_2src_1, Vex_2src_2 } },
    8193     { "vpshld",         { XM, Vex_2src_1, Vex_2src_2 } },
    8194     { "vpshlq",         { XM, Vex_2src_1, Vex_2src_2 } },
     8291    { "vprotb",         { XM, Vex_2src_1, Vex_2src_2 }, 0 },
     8292    { "vprotw",         { XM, Vex_2src_1, Vex_2src_2 }, 0 },
     8293    { "vprotd",         { XM, Vex_2src_1, Vex_2src_2 }, 0 },
     8294    { "vprotq",         { XM, Vex_2src_1, Vex_2src_2 }, 0 },
     8295    { "vpshlb",         { XM, Vex_2src_1, Vex_2src_2 }, 0 },
     8296    { "vpshlw",         { XM, Vex_2src_1, Vex_2src_2 }, 0 },
     8297    { "vpshld",         { XM, Vex_2src_1, Vex_2src_2 }, 0 },
     8298    { "vpshlq",         { XM, Vex_2src_1, Vex_2src_2 }, 0 },
    81958299    /* 98 */
    8196     { "vpshab",         { XM, Vex_2src_1, Vex_2src_2 } },
    8197     { "vpshaw",         { XM, Vex_2src_1, Vex_2src_2 } },
    8198     { "vpshad",         { XM, Vex_2src_1, Vex_2src_2 } },
    8199     { "vpshaq",         { XM, Vex_2src_1, Vex_2src_2 } },
     8300    { "vpshab",         { XM, Vex_2src_1, Vex_2src_2 }, 0 },
     8301    { "vpshaw",         { XM, Vex_2src_1, Vex_2src_2 }, 0 },
     8302    { "vpshad",         { XM, Vex_2src_1, Vex_2src_2 }, 0 },
     8303    { "vpshaq",         { XM, Vex_2src_1, Vex_2src_2 }, 0 },
    82008304    { Bad_Opcode },
    82018305    { Bad_Opcode },
     
    82408344    /* c0 */
    82418345    { Bad_Opcode },
    8242     { "vphaddbw",       { XM, EXxmm } },
    8243     { "vphaddbd",       { XM, EXxmm } },
    8244     { "vphaddbq",       { XM, EXxmm } },
    8245     { Bad_Opcode },
    8246     { Bad_Opcode },
    8247     { "vphaddwd",       { XM, EXxmm } },
    8248     { "vphaddwq",       { XM, EXxmm } },
     8346    { "vphaddbw",       { XM, EXxmm }, 0 },
     8347    { "vphaddbd",       { XM, EXxmm }, 0 },
     8348    { "vphaddbq",       { XM, EXxmm }, 0 },
     8349    { Bad_Opcode },
     8350    { Bad_Opcode },
     8351    { "vphaddwd",       { XM, EXxmm }, 0 },
     8352    { "vphaddwq",       { XM, EXxmm }, 0 },
    82498353    /* c8 */
    82508354    { Bad_Opcode },
    82518355    { Bad_Opcode },
    82528356    { Bad_Opcode },
    8253     { "vphadddq",       { XM, EXxmm } },
     8357    { "vphadddq",       { XM, EXxmm }, 0 },
    82548358    { Bad_Opcode },
    82558359    { Bad_Opcode },
     
    82588362    /* d0 */
    82598363    { Bad_Opcode },
    8260     { "vphaddubw",      { XM, EXxmm } },
    8261     { "vphaddubd",      { XM, EXxmm } },
    8262     { "vphaddubq",      { XM, EXxmm } },
    8263     { Bad_Opcode },
    8264     { Bad_Opcode },
    8265     { "vphadduwd",      { XM, EXxmm } },
    8266     { "vphadduwq",      { XM, EXxmm } },
     8364    { "vphaddubw",      { XM, EXxmm }, 0 },
     8365    { "vphaddubd",      { XM, EXxmm }, 0 },
     8366    { "vphaddubq",      { XM, EXxmm }, 0 },
     8367    { Bad_Opcode },
     8368    { Bad_Opcode },
     8369    { "vphadduwd",      { XM, EXxmm }, 0 },
     8370    { "vphadduwq",      { XM, EXxmm }, 0 },
    82678371    /* d8 */
    82688372    { Bad_Opcode },
    82698373    { Bad_Opcode },
    82708374    { Bad_Opcode },
    8271     { "vphaddudq",      { XM, EXxmm } },
     8375    { "vphaddudq",      { XM, EXxmm }, 0 },
    82728376    { Bad_Opcode },
    82738377    { Bad_Opcode },
     
    82768380    /* e0 */
    82778381    { Bad_Opcode },
    8278     { "vphsubbw",       { XM, EXxmm } },
    8279     { "vphsubwd",       { XM, EXxmm } },
    8280     { "vphsubdq",       { XM, EXxmm } },
     8382    { "vphsubbw",       { XM, EXxmm }, 0 },
     8383    { "vphsubwd",       { XM, EXxmm }, 0 },
     8384    { "vphsubdq",       { XM, EXxmm }, 0 },
    82818385    { Bad_Opcode },
    82828386    { Bad_Opcode },
     
    83328436    { Bad_Opcode },
    83338437    /* 10 */
    8334     { "bextr",  { Gv, Ev, Iq } },
     8438    { "bextr",  { Gv, Ev, Iq }, 0 },
    83358439    { Bad_Opcode },
    83368440    { REG_TABLE (REG_XOP_LWP) },
     
    87028806    { PREFIX_TABLE (PREFIX_VEX_0F52) },
    87038807    { PREFIX_TABLE (PREFIX_VEX_0F53) },
    8704     { "vandpX",         { XM, Vex, EXx } },
    8705     { "vandnpX",        { XM, Vex, EXx } },
    8706     { "vorpX",          { XM, Vex, EXx } },
    8707     { "vxorpX",         { XM, Vex, EXx } },
     8808    { "vandpX",         { XM, Vex, EXx }, 0 },
     8809    { "vandnpX",        { XM, Vex, EXx }, 0 },
     8810    { "vorpX",          { XM, Vex, EXx }, 0 },
     8811    { "vxorpX",         { XM, Vex, EXx }, 0 },
    87088812    /* 58 */
    87098813    { PREFIX_TABLE (PREFIX_VEX_0F58) },
     
    88308934    { PREFIX_TABLE (PREFIX_VEX_0FC4) },
    88318935    { PREFIX_TABLE (PREFIX_VEX_0FC5) },
    8832     { "vshufpX",        { XM, Vex, EXx, Ib } },
     8936    { "vshufpX",        { XM, Vex, EXx, Ib }, 0 },
    88338937    { Bad_Opcode },
    88348938    /* c8 */
     
    95509654  /* VEX_LEN_0F2A_P_1 */
    95519655  {
    9552     { "vcvtsi2ss%LQ",   { XMScalar, VexScalar, Ev } },
    9553     { "vcvtsi2ss%LQ",   { XMScalar, VexScalar, Ev } },
     9656    { "vcvtsi2ss%LQ",   { XMScalar, VexScalar, Ev }, 0 },
     9657    { "vcvtsi2ss%LQ",   { XMScalar, VexScalar, Ev }, 0 },
    95549658  },
    95559659
    95569660  /* VEX_LEN_0F2A_P_3 */
    95579661  {
    9558     { "vcvtsi2sd%LQ",   { XMScalar, VexScalar, Ev } },
    9559     { "vcvtsi2sd%LQ",   { XMScalar, VexScalar, Ev } },
     9662    { "vcvtsi2sd%LQ",   { XMScalar, VexScalar, Ev }, 0 },
     9663    { "vcvtsi2sd%LQ",   { XMScalar, VexScalar, Ev }, 0 },
    95609664  },
    95619665
    95629666  /* VEX_LEN_0F2C_P_1 */
    95639667  {
    9564     { "vcvttss2siY",    { Gv, EXdScalar } },
    9565     { "vcvttss2siY",    { Gv, EXdScalar } },
     9668    { "vcvttss2siY",    { Gv, EXdScalar }, 0 },
     9669    { "vcvttss2siY",    { Gv, EXdScalar }, 0 },
    95669670  },
    95679671
    95689672  /* VEX_LEN_0F2C_P_3 */
    95699673  {
    9570     { "vcvttsd2siY",    { Gv, EXqScalar } },
    9571     { "vcvttsd2siY",    { Gv, EXqScalar } },
     9674    { "vcvttsd2siY",    { Gv, EXqScalar }, 0 },
     9675    { "vcvttsd2siY",    { Gv, EXqScalar }, 0 },
    95729676  },
    95739677
    95749678  /* VEX_LEN_0F2D_P_1 */
    95759679  {
    9576     { "vcvtss2siY",     { Gv, EXdScalar } },
    9577     { "vcvtss2siY",     { Gv, EXdScalar } },
     9680    { "vcvtss2siY",     { Gv, EXdScalar }, 0 },
     9681    { "vcvtss2siY",     { Gv, EXdScalar }, 0 },
    95789682  },
    95799683
    95809684  /* VEX_LEN_0F2D_P_3 */
    95819685  {
    9582     { "vcvtsd2siY",     { Gv, EXqScalar } },
    9583     { "vcvtsd2siY",     { Gv, EXqScalar } },
     9686    { "vcvtsd2siY",     { Gv, EXqScalar }, 0 },
     9687    { "vcvtsd2siY",     { Gv, EXqScalar }, 0 },
    95849688  },
    95859689
     
    97979901  /* VEX_LEN_0F6E_P_2 */
    97989902  {
    9799     { "vmovK",          { XMScalar, Edq } },
    9800     { "vmovK",          { XMScalar, Edq } },
     9903    { "vmovK",          { XMScalar, Edq }, 0 },
     9904    { "vmovK",          { XMScalar, Edq }, 0 },
    98019905  },
    98029906
     
    98099913  /* VEX_LEN_0F7E_P_2 */
    98109914  {
    9811     { "vmovK",          { Edq, XMScalar } },
    9812     { "vmovK",          { Edq, XMScalar } },
     9915    { "vmovK",          { Edq, XMScalar }, 0 },
     9916    { "vmovK",          { Edq, XMScalar }, 0 },
    98139917  },
    98149918
     
    998810092  /* VEX_LEN_0F38F2_P_0 */
    998910093  {
    9990     { "andnS",          { Gdq, VexGdq, Edq } },
     10094    { "andnS",          { Gdq, VexGdq, Edq }, 0 },
    999110095  },
    999210096
    999310097  /* VEX_LEN_0F38F3_R_1_P_0 */
    999410098  {
    9995     { "blsrS",          { VexGdq, Edq } },
     10099    { "blsrS",          { VexGdq, Edq }, 0 },
    999610100  },
    999710101
    999810102  /* VEX_LEN_0F38F3_R_2_P_0 */
    999910103  {
    10000     { "blsmskS",        { VexGdq, Edq } },
     10104    { "blsmskS",        { VexGdq, Edq }, 0 },
    1000110105  },
    1000210106
    1000310107  /* VEX_LEN_0F38F3_R_3_P_0 */
    1000410108  {
    10005     { "blsiS",          { VexGdq, Edq } },
     10109    { "blsiS",          { VexGdq, Edq }, 0 },
    1000610110  },
    1000710111
    1000810112  /* VEX_LEN_0F38F5_P_0 */
    1000910113  {
    10010     { "bzhiS",          { Gdq, Edq, VexGdq } },
     10114    { "bzhiS",          { Gdq, Edq, VexGdq }, 0 },
    1001110115  },
    1001210116
    1001310117  /* VEX_LEN_0F38F5_P_1 */
    1001410118  {
    10015     { "pextS",          { Gdq, VexGdq, Edq } },
     10119    { "pextS",          { Gdq, VexGdq, Edq }, 0 },
    1001610120  },
    1001710121
    1001810122  /* VEX_LEN_0F38F5_P_3 */
    1001910123  {
    10020     { "pdepS",          { Gdq, VexGdq, Edq } },
     10124    { "pdepS",          { Gdq, VexGdq, Edq }, 0 },
    1002110125  },
    1002210126
    1002310127  /* VEX_LEN_0F38F6_P_3 */
    1002410128  {
    10025     { "mulxS",          { Gdq, VexGdq, Edq } },
     10129    { "mulxS",          { Gdq, VexGdq, Edq }, 0 },
    1002610130  },
    1002710131
    1002810132  /* VEX_LEN_0F38F7_P_0 */
    1002910133  {
    10030     { "bextrS",         { Gdq, Edq, VexGdq } },
     10134    { "bextrS",         { Gdq, Edq, VexGdq }, 0 },
    1003110135  },
    1003210136
    1003310137  /* VEX_LEN_0F38F7_P_1 */
    1003410138  {
    10035     { "sarxS",          { Gdq, Edq, VexGdq } },
     10139    { "sarxS",          { Gdq, Edq, VexGdq }, 0 },
    1003610140  },
    1003710141
    1003810142  /* VEX_LEN_0F38F7_P_2 */
    1003910143  {
    10040     { "shlxS",          { Gdq, Edq, VexGdq } },
     10144    { "shlxS",          { Gdq, Edq, VexGdq }, 0 },
    1004110145  },
    1004210146
    1004310147  /* VEX_LEN_0F38F7_P_3 */
    1004410148  {
    10045     { "shrxS",          { Gdq, Edq, VexGdq } },
     10149    { "shrxS",          { Gdq, Edq, VexGdq }, 0 },
    1004610150  },
    1004710151
     
    1008810192  /* VEX_LEN_0F3A16_P_2  */
    1008910193  {
    10090     { "vpextrK",        { Edq, XM, Ib } },
     10194    { "vpextrK",        { Edq, XM, Ib }, 0 },
    1009110195  },
    1009210196
    1009310197  /* VEX_LEN_0F3A17_P_2 */
    1009410198  {
    10095     { "vextractps",     { Edqd, XM, Ib } },
     10199    { "vextractps",     { Edqd, XM, Ib }, 0 },
    1009610200  },
    1009710201
     
    1012010224  /* VEX_LEN_0F3A22_P_2 */
    1012110225  {
    10122     { "vpinsrK",        { XM, Vex128, Edq, Ib } },
     10226    { "vpinsrK",        { XM, Vex128, Edq, Ib }, 0 },
    1012310227  },
    1012410228
     
    1019310297  /* VEX_LEN_0F3A6A_P_2 */
    1019410298  {
    10195     { "vfmaddss",       { XMVexW, Vex128, EXdVexW, EXdVexW, VexI4 } },
     10299    { "vfmaddss",       { XMVexW, Vex128, EXdVexW, EXdVexW, VexI4 }, 0 },
    1019610300  },
    1019710301
    1019810302  /* VEX_LEN_0F3A6B_P_2 */
    1019910303  {
    10200     { "vfmaddsd",       { XMVexW, Vex128, EXqVexW, EXqVexW, VexI4 } },
     10304    { "vfmaddsd",       { XMVexW, Vex128, EXqVexW, EXqVexW, VexI4 }, 0 },
    1020110305  },
    1020210306
    1020310307  /* VEX_LEN_0F3A6E_P_2 */
    1020410308  {
    10205     { "vfmsubss",       { XMVexW, Vex128, EXdVexW, EXdVexW, VexI4 } },
     10309    { "vfmsubss",       { XMVexW, Vex128, EXdVexW, EXdVexW, VexI4 }, 0 },
    1020610310  },
    1020710311
    1020810312  /* VEX_LEN_0F3A6F_P_2 */
    1020910313  {
    10210     { "vfmsubsd",       { XMVexW, Vex128, EXqVexW, EXqVexW, VexI4 } },
     10314    { "vfmsubsd",       { XMVexW, Vex128, EXqVexW, EXqVexW, VexI4 }, 0 },
    1021110315  },
    1021210316
    1021310317  /* VEX_LEN_0F3A7A_P_2 */
    1021410318  {
    10215     { "vfnmaddss",      { XMVexW, Vex128, EXdVexW, EXdVexW, VexI4 } },
     10319    { "vfnmaddss",      { XMVexW, Vex128, EXdVexW, EXdVexW, VexI4 }, 0 },
    1021610320  },
    1021710321
    1021810322  /* VEX_LEN_0F3A7B_P_2 */
    1021910323  {
    10220     { "vfnmaddsd",      { XMVexW, Vex128, EXqVexW, EXqVexW, VexI4 } },
     10324    { "vfnmaddsd",      { XMVexW, Vex128, EXqVexW, EXqVexW, VexI4 }, 0 },
    1022110325  },
    1022210326
    1022310327  /* VEX_LEN_0F3A7E_P_2 */
    1022410328  {
    10225     { "vfnmsubss",      { XMVexW, Vex128, EXdVexW, EXdVexW, VexI4 } },
     10329    { "vfnmsubss",      { XMVexW, Vex128, EXdVexW, EXdVexW, VexI4 }, 0 },
    1022610330  },
    1022710331
    1022810332  /* VEX_LEN_0F3A7F_P_2 */
    1022910333  {
    10230     { "vfnmsubsd",      { XMVexW, Vex128, EXqVexW, EXqVexW, VexI4 } },
     10334    { "vfnmsubsd",      { XMVexW, Vex128, EXqVexW, EXqVexW, VexI4 }, 0 },
    1023110335  },
    1023210336
     
    1023810342  /* VEX_LEN_0F3AF0_P_3 */
    1023910343  {
    10240     { "rorxS",          { Gdq, Edq, Ib } },
     10344    { "rorxS",          { Gdq, Edq, Ib }, 0 },
    1024110345  },
    1024210346
    1024310347  /* VEX_LEN_0FXOP_08_CC */
    1024410348  {
    10245      { "vpcomb",        { XM, Vex128, EXx, Ib } },
     10349     { "vpcomb",        { XM, Vex128, EXx, Ib }, 0 },
    1024610350  },
    1024710351
    1024810352  /* VEX_LEN_0FXOP_08_CD */
    1024910353  {
    10250      { "vpcomw",        { XM, Vex128, EXx, Ib } },
     10354     { "vpcomw",        { XM, Vex128, EXx, Ib }, 0 },
    1025110355  },
    1025210356
    1025310357  /* VEX_LEN_0FXOP_08_CE */
    1025410358  {
    10255      { "vpcomd",        { XM, Vex128, EXx, Ib } },
     10359     { "vpcomd",        { XM, Vex128, EXx, Ib }, 0 },
    1025610360  },
    1025710361
    1025810362  /* VEX_LEN_0FXOP_08_CF */
    1025910363  {
    10260      { "vpcomq",        { XM, Vex128, EXx, Ib } },
     10364     { "vpcomq",        { XM, Vex128, EXx, Ib }, 0 },
    1026110365  },
    1026210366
    1026310367  /* VEX_LEN_0FXOP_08_EC */
    1026410368  {
    10265      { "vpcomub",       { XM, Vex128, EXx, Ib } },
     10369     { "vpcomub",       { XM, Vex128, EXx, Ib }, 0 },
    1026610370  },
    1026710371
    1026810372  /* VEX_LEN_0FXOP_08_ED */
    1026910373  {
    10270      { "vpcomuw",       { XM, Vex128, EXx, Ib } },
     10374     { "vpcomuw",       { XM, Vex128, EXx, Ib }, 0 },
    1027110375  },
    1027210376
    1027310377  /* VEX_LEN_0FXOP_08_EE */
    1027410378  {
    10275      { "vpcomud",       { XM, Vex128, EXx, Ib } },
     10379     { "vpcomud",       { XM, Vex128, EXx, Ib }, 0 },
    1027610380  },
    1027710381
    1027810382  /* VEX_LEN_0FXOP_08_EF */
    1027910383  {
    10280      { "vpcomuq",       { XM, Vex128, EXx, Ib } },
     10384     { "vpcomuq",       { XM, Vex128, EXx, Ib }, 0 },
    1028110385  },
    1028210386
    1028310387  /* VEX_LEN_0FXOP_09_80 */
    1028410388  {
    10285     { "vfrczps",        { XM, EXxmm } },
    10286     { "vfrczps",        { XM, EXymmq } },
     10389    { "vfrczps",        { XM, EXxmm }, 0 },
     10390    { "vfrczps",        { XM, EXymmq }, 0 },
    1028710391  },
    1028810392
    1028910393  /* VEX_LEN_0FXOP_09_81 */
    1029010394  {
    10291     { "vfrczpd",        { XM, EXxmm } },
    10292     { "vfrczpd",        { XM, EXymmq } },
     10395    { "vfrczpd",        { XM, EXxmm }, 0 },
     10396    { "vfrczpd",        { XM, EXymmq }, 0 },
    1029310397  },
    1029410398};
     
    1029710401  {
    1029810402    /* VEX_W_0F10_P_0 */
    10299     { "vmovups",        { XM, EXx } },
     10403    { "vmovups",        { XM, EXx }, 0 },
    1030010404  },
    1030110405  {
    1030210406    /* VEX_W_0F10_P_1 */
    10303     { "vmovss",         { XMVexScalar, VexScalar, EXdScalar } },
     10407    { "vmovss",         { XMVexScalar, VexScalar, EXdScalar }, 0 },
    1030410408  },
    1030510409  {
    1030610410    /* VEX_W_0F10_P_2 */
    10307     { "vmovupd",        { XM, EXx } },
     10411    { "vmovupd",        { XM, EXx }, 0 },
    1030810412  },
    1030910413  {
    1031010414    /* VEX_W_0F10_P_3 */
    10311     { "vmovsd",         { XMVexScalar, VexScalar, EXqScalar } },
     10415    { "vmovsd",         { XMVexScalar, VexScalar, EXqScalar }, 0 },
    1031210416  },
    1031310417  {
    1031410418    /* VEX_W_0F11_P_0 */
    10315     { "vmovups",        { EXxS, XM } },
     10419    { "vmovups",        { EXxS, XM }, 0 },
    1031610420  },
    1031710421  {
    1031810422    /* VEX_W_0F11_P_1 */
    10319     { "vmovss",         { EXdVexScalarS, VexScalar, XMScalar } },
     10423    { "vmovss",         { EXdVexScalarS, VexScalar, XMScalar }, 0 },
    1032010424  },
    1032110425  {
    1032210426    /* VEX_W_0F11_P_2 */
    10323     { "vmovupd",        { EXxS, XM } },
     10427    { "vmovupd",        { EXxS, XM }, 0 },
    1032410428  },
    1032510429  {
    1032610430    /* VEX_W_0F11_P_3 */
    10327     { "vmovsd",         { EXqVexScalarS, VexScalar, XMScalar } },
     10431    { "vmovsd",         { EXqVexScalarS, VexScalar, XMScalar }, 0 },
    1032810432  },
    1032910433  {
    1033010434    /* VEX_W_0F12_P_0_M_0 */
    10331     { "vmovlps",        { XM, Vex128, EXq } },
     10435    { "vmovlps",        { XM, Vex128, EXq }, 0 },
    1033210436  },
    1033310437  {
    1033410438    /* VEX_W_0F12_P_0_M_1 */
    10335     { "vmovhlps",       { XM, Vex128, EXq } },
     10439    { "vmovhlps",       { XM, Vex128, EXq }, 0 },
    1033610440  },
    1033710441  {
    1033810442    /* VEX_W_0F12_P_1 */
    10339     { "vmovsldup",      { XM, EXx } },
     10443    { "vmovsldup",      { XM, EXx }, 0 },
    1034010444  },
    1034110445  {
    1034210446    /* VEX_W_0F12_P_2 */
    10343     { "vmovlpd",        { XM, Vex128, EXq } },
     10447    { "vmovlpd",        { XM, Vex128, EXq }, 0 },
    1034410448  },
    1034510449  {
    1034610450    /* VEX_W_0F12_P_3 */
    10347     { "vmovddup",       { XM, EXymmq } },
     10451    { "vmovddup",       { XM, EXymmq }, 0 },
    1034810452  },
    1034910453  {
    1035010454    /* VEX_W_0F13_M_0 */
    10351     { "vmovlpX",        { EXq, XM } },
     10455    { "vmovlpX",        { EXq, XM }, 0 },
    1035210456  },
    1035310457  {
    1035410458    /* VEX_W_0F14 */
    10355     { "vunpcklpX",      { XM, Vex, EXx } },
     10459    { "vunpcklpX",      { XM, Vex, EXx }, 0 },
    1035610460  },
    1035710461  {
    1035810462    /* VEX_W_0F15 */
    10359     { "vunpckhpX",      { XM, Vex, EXx } },
     10463    { "vunpckhpX",      { XM, Vex, EXx }, 0 },
    1036010464  },
    1036110465  {
    1036210466    /* VEX_W_0F16_P_0_M_0 */
    10363     { "vmovhps",        { XM, Vex128, EXq } },
     10467    { "vmovhps",        { XM, Vex128, EXq }, 0 },
    1036410468  },
    1036510469  {
    1036610470    /* VEX_W_0F16_P_0_M_1 */
    10367     { "vmovlhps",       { XM, Vex128, EXq } },
     10471    { "vmovlhps",       { XM, Vex128, EXq }, 0 },
    1036810472  },
    1036910473  {
    1037010474    /* VEX_W_0F16_P_1 */
    10371     { "vmovshdup",      { XM, EXx } },
     10475    { "vmovshdup",      { XM, EXx }, 0 },
    1037210476  },
    1037310477  {
    1037410478    /* VEX_W_0F16_P_2 */
    10375     { "vmovhpd",        { XM, Vex128, EXq } },
     10479    { "vmovhpd",        { XM, Vex128, EXq }, 0 },
    1037610480  },
    1037710481  {
    1037810482    /* VEX_W_0F17_M_0 */
    10379     { "vmovhpX",        { EXq, XM } },
     10483    { "vmovhpX",        { EXq, XM }, 0 },
    1038010484  },
    1038110485  {
    1038210486    /* VEX_W_0F28 */
    10383     { "vmovapX",        { XM, EXx } },
     10487    { "vmovapX",        { XM, EXx }, 0 },
    1038410488  },
    1038510489  {
    1038610490    /* VEX_W_0F29 */
    10387     { "vmovapX",        { EXxS, XM } },
     10491    { "vmovapX",        { EXxS, XM }, 0 },
    1038810492  },
    1038910493  {
    1039010494    /* VEX_W_0F2B_M_0 */
    10391     { "vmovntpX",       { Mx, XM } },
     10495    { "vmovntpX",       { Mx, XM }, 0 },
    1039210496  },
    1039310497  {
    1039410498    /* VEX_W_0F2E_P_0 */
    10395     { "vucomiss",       { XMScalar, EXdScalar } },
     10499    { "vucomiss",       { XMScalar, EXdScalar }, 0 },
    1039610500  },
    1039710501  {
    1039810502    /* VEX_W_0F2E_P_2 */
    10399     { "vucomisd",       { XMScalar, EXqScalar } },
     10503    { "vucomisd",       { XMScalar, EXqScalar }, 0 },
    1040010504  },
    1040110505  {
    1040210506    /* VEX_W_0F2F_P_0 */
    10403     { "vcomiss",        { XMScalar, EXdScalar } },
     10507    { "vcomiss",        { XMScalar, EXdScalar }, 0 },
    1040410508  },
    1040510509  {
    1040610510    /* VEX_W_0F2F_P_2 */
    10407     { "vcomisd",        { XMScalar, EXqScalar } },
     10511    { "vcomisd",        { XMScalar, EXqScalar }, 0 },
    1040810512  },
    1040910513  {
    1041010514    /* VEX_W_0F41_P_0_LEN_1 */
    10411     { "kandw",          { MaskG, MaskVex, MaskR } },
    10412     { "kandq",          { MaskG, MaskVex, MaskR } },
     10515    { MOD_TABLE (MOD_VEX_W_0_0F41_P_0_LEN_1) },
     10516    { MOD_TABLE (MOD_VEX_W_1_0F41_P_0_LEN_1) },
    1041310517  },
    1041410518  {
    1041510519    /* VEX_W_0F41_P_2_LEN_1 */
    10416     { "kandb",          { MaskG, MaskVex, MaskR } },
    10417     { "kandd",          { MaskG, MaskVex, MaskR } },
     10520    { MOD_TABLE (MOD_VEX_W_0_0F41_P_2_LEN_1) },
     10521    { MOD_TABLE (MOD_VEX_W_1_0F41_P_2_LEN_1) }
    1041810522  },
    1041910523  {
    1042010524    /* VEX_W_0F42_P_0_LEN_1 */
    10421     { "kandnw",         { MaskG, MaskVex, MaskR } },
    10422     { "kandnq",         { MaskG, MaskVex, MaskR } },
     10525    { MOD_TABLE (MOD_VEX_W_0_0F42_P_0_LEN_1) },
     10526    { MOD_TABLE (MOD_VEX_W_1_0F42_P_0_LEN_1) },
    1042310527  },
    1042410528  {
    1042510529    /* VEX_W_0F42_P_2_LEN_1 */
    10426     { "kandnb",         { MaskG, MaskVex, MaskR } },
    10427     { "kandnd",         { MaskG, MaskVex, MaskR } },
     10530    { MOD_TABLE (MOD_VEX_W_0_0F42_P_2_LEN_1) },
     10531    { MOD_TABLE (MOD_VEX_W_1_0F42_P_2_LEN_1) },
    1042810532  },
    1042910533  {
    1043010534    /* VEX_W_0F44_P_0_LEN_0 */
    10431     { "knotw",          { MaskG, MaskR } },
    10432     { "knotq",          { MaskG, MaskR } },
     10535    { MOD_TABLE (MOD_VEX_W_0_0F44_P_0_LEN_1) },
     10536    { MOD_TABLE (MOD_VEX_W_1_0F44_P_0_LEN_1) },
    1043310537  },
    1043410538  {
    1043510539    /* VEX_W_0F44_P_2_LEN_0 */
    10436     { "knotb",          { MaskG, MaskR } },
    10437     { "knotd",          { MaskG, MaskR } },
     10540    { MOD_TABLE (MOD_VEX_W_0_0F44_P_2_LEN_1) },
     10541    { MOD_TABLE (MOD_VEX_W_1_0F44_P_2_LEN_1) },
    1043810542  },
    1043910543  {
    1044010544    /* VEX_W_0F45_P_0_LEN_1 */
    10441     { "korw",           { MaskG, MaskVex, MaskR } },
    10442     { "korq",           { MaskG, MaskVex, MaskR } },
     10545    { MOD_TABLE (MOD_VEX_W_0_0F45_P_0_LEN_1) },
     10546    { MOD_TABLE (MOD_VEX_W_1_0F45_P_0_LEN_1) },
    1044310547  },
    1044410548  {
    1044510549    /* VEX_W_0F45_P_2_LEN_1 */
    10446     { "korb",           { MaskG, MaskVex, MaskR } },
    10447     { "kord",           { MaskG, MaskVex, MaskR } },
     10550    { MOD_TABLE (MOD_VEX_W_0_0F45_P_2_LEN_1) },
     10551    { MOD_TABLE (MOD_VEX_W_1_0F45_P_2_LEN_1) },
    1044810552  },
    1044910553  {
    1045010554    /* VEX_W_0F46_P_0_LEN_1 */
    10451     { "kxnorw",         { MaskG, MaskVex, MaskR } },
    10452     { "kxnorq",         { MaskG, MaskVex, MaskR } },
     10555    { MOD_TABLE (MOD_VEX_W_0_0F46_P_0_LEN_1) },
     10556    { MOD_TABLE (MOD_VEX_W_1_0F46_P_0_LEN_1) },
    1045310557  },
    1045410558  {
    1045510559    /* VEX_W_0F46_P_2_LEN_1 */
    10456     { "kxnorb",         { MaskG, MaskVex, MaskR } },
    10457     { "kxnord",         { MaskG, MaskVex, MaskR } },
     10560    { MOD_TABLE (MOD_VEX_W_0_0F46_P_2_LEN_1) },
     10561    { MOD_TABLE (MOD_VEX_W_1_0F46_P_2_LEN_1) },
    1045810562  },
    1045910563  {
    1046010564    /* VEX_W_0F47_P_0_LEN_1 */
    10461     { "kxorw",          { MaskG, MaskVex, MaskR } },
    10462     { "kxorq",          { MaskG, MaskVex, MaskR } },
     10565    { MOD_TABLE (MOD_VEX_W_0_0F47_P_0_LEN_1) },
     10566    { MOD_TABLE (MOD_VEX_W_1_0F47_P_0_LEN_1) },
    1046310567  },
    1046410568  {
    1046510569    /* VEX_W_0F47_P_2_LEN_1 */
    10466     { "kxorb",          { MaskG, MaskVex, MaskR } },
    10467     { "kxord",          { MaskG, MaskVex, MaskR } },
     10570    { MOD_TABLE (MOD_VEX_W_0_0F47_P_2_LEN_1) },
     10571    { MOD_TABLE (MOD_VEX_W_1_0F47_P_2_LEN_1) },
    1046810572  },
    1046910573  {
    1047010574    /* VEX_W_0F4A_P_0_LEN_1 */
    10471     { "kaddw",          { MaskG, MaskVex, MaskR } },
    10472     { "kaddq",          { MaskG, MaskVex, MaskR } },
     10575    { MOD_TABLE (MOD_VEX_W_0_0F4A_P_0_LEN_1) },
     10576    { MOD_TABLE (MOD_VEX_W_1_0F4A_P_0_LEN_1) },
    1047310577  },
    1047410578  {
    1047510579    /* VEX_W_0F4A_P_2_LEN_1 */
    10476     { "kaddb",          { MaskG, MaskVex, MaskR } },
    10477     { "kaddd",          { MaskG, MaskVex, MaskR } },
     10580    { MOD_TABLE (MOD_VEX_W_0_0F4A_P_2_LEN_1) },
     10581    { MOD_TABLE (MOD_VEX_W_1_0F4A_P_2_LEN_1) },
    1047810582  },
    1047910583  {
    1048010584    /* VEX_W_0F4B_P_0_LEN_1 */
    10481     { "kunpckwd",       { MaskG, MaskVex, MaskR } },
    10482     { "kunpckdq",       { MaskG, MaskVex, MaskR } },
     10585    { MOD_TABLE (MOD_VEX_W_0_0F4B_P_0_LEN_1) },
     10586    { MOD_TABLE (MOD_VEX_W_1_0F4B_P_0_LEN_1) },
    1048310587  },
    1048410588  {
    1048510589    /* VEX_W_0F4B_P_2_LEN_1 */
    10486     { "kunpckbw",       { MaskG, MaskVex, MaskR } },
     10590    { MOD_TABLE (MOD_VEX_W_0_0F4B_P_2_LEN_1) },
    1048710591  },
    1048810592  {
    1048910593    /* VEX_W_0F50_M_0 */
    10490     { "vmovmskpX",      { Gdq, XS } },
     10594    { "vmovmskpX",      { Gdq, XS }, 0 },
    1049110595  },
    1049210596  {
    1049310597    /* VEX_W_0F51_P_0 */
    10494     { "vsqrtps",        { XM, EXx } },
     10598    { "vsqrtps",        { XM, EXx }, 0 },
    1049510599  },
    1049610600  {
    1049710601    /* VEX_W_0F51_P_1 */
    10498     { "vsqrtss",        { XMScalar, VexScalar, EXdScalar } },
     10602    { "vsqrtss",        { XMScalar, VexScalar, EXdScalar }, 0 },
    1049910603  },
    1050010604  {
    1050110605    /* VEX_W_0F51_P_2  */
    10502     { "vsqrtpd",        { XM, EXx } },
     10606    { "vsqrtpd",        { XM, EXx }, 0 },
    1050310607  },
    1050410608  {
    1050510609    /* VEX_W_0F51_P_3 */
    10506     { "vsqrtsd",        { XMScalar, VexScalar, EXqScalar } },
     10610    { "vsqrtsd",        { XMScalar, VexScalar, EXqScalar }, 0 },
    1050710611  },
    1050810612  {
    1050910613    /* VEX_W_0F52_P_0 */
    10510     { "vrsqrtps",       { XM, EXx } },
     10614    { "vrsqrtps",       { XM, EXx }, 0 },
    1051110615  },
    1051210616  {
    1051310617    /* VEX_W_0F52_P_1 */
    10514     { "vrsqrtss",       { XMScalar, VexScalar, EXdScalar } },
     10618    { "vrsqrtss",       { XMScalar, VexScalar, EXdScalar }, 0 },
    1051510619  },
    1051610620  {
    1051710621    /* VEX_W_0F53_P_0  */
    10518     { "vrcpps",         { XM, EXx } },
     10622    { "vrcpps",         { XM, EXx }, 0 },
    1051910623  },
    1052010624  {
    1052110625    /* VEX_W_0F53_P_1  */
    10522     { "vrcpss",         { XMScalar, VexScalar, EXdScalar } },
     10626    { "vrcpss",         { XMScalar, VexScalar, EXdScalar }, 0 },
    1052310627  },
    1052410628  {
    1052510629    /* VEX_W_0F58_P_0  */
    10526     { "vaddps",         { XM, Vex, EXx } },
     10630    { "vaddps",         { XM, Vex, EXx }, 0 },
    1052710631  },
    1052810632  {
    1052910633    /* VEX_W_0F58_P_1  */
    10530     { "vaddss",         { XMScalar, VexScalar, EXdScalar } },
     10634    { "vaddss",         { XMScalar, VexScalar, EXdScalar }, 0 },
    1053110635  },
    1053210636  {
    1053310637    /* VEX_W_0F58_P_2  */
    10534     { "vaddpd",         { XM, Vex, EXx } },
     10638    { "vaddpd",         { XM, Vex, EXx }, 0 },
    1053510639  },
    1053610640  {
    1053710641    /* VEX_W_0F58_P_3  */
    10538     { "vaddsd",         { XMScalar, VexScalar, EXqScalar } },
     10642    { "vaddsd",         { XMScalar, VexScalar, EXqScalar }, 0 },
    1053910643  },
    1054010644  {
    1054110645    /* VEX_W_0F59_P_0  */
    10542     { "vmulps",         { XM, Vex, EXx } },
     10646    { "vmulps",         { XM, Vex, EXx }, 0 },
    1054310647  },
    1054410648  {
    1054510649    /* VEX_W_0F59_P_1  */
    10546     { "vmulss",         { XMScalar, VexScalar, EXdScalar } },
     10650    { "vmulss",         { XMScalar, VexScalar, EXdScalar }, 0 },
    1054710651  },
    1054810652  {
    1054910653    /* VEX_W_0F59_P_2  */
    10550     { "vmulpd",         { XM, Vex, EXx } },
     10654    { "vmulpd",         { XM, Vex, EXx }, 0 },
    1055110655  },
    1055210656  {
    1055310657    /* VEX_W_0F59_P_3  */
    10554     { "vmulsd",         { XMScalar, VexScalar, EXqScalar } },
     10658    { "vmulsd",         { XMScalar, VexScalar, EXqScalar }, 0 },
    1055510659  },
    1055610660  {
    1055710661    /* VEX_W_0F5A_P_0  */
    10558     { "vcvtps2pd",      { XM, EXxmmq } },
     10662    { "vcvtps2pd",      { XM, EXxmmq }, 0 },
    1055910663  },
    1056010664  {
    1056110665    /* VEX_W_0F5A_P_1  */
    10562     { "vcvtss2sd",      { XMScalar, VexScalar, EXdScalar } },
     10666    { "vcvtss2sd",      { XMScalar, VexScalar, EXdScalar }, 0 },
    1056310667  },
    1056410668  {
    1056510669    /* VEX_W_0F5A_P_3  */
    10566     { "vcvtsd2ss",      { XMScalar, VexScalar, EXqScalar } },
     10670    { "vcvtsd2ss",      { XMScalar, VexScalar, EXqScalar }, 0 },
    1056710671  },
    1056810672  {
    1056910673    /* VEX_W_0F5B_P_0  */
    10570     { "vcvtdq2ps",      { XM, EXx } },
     10674    { "vcvtdq2ps",      { XM, EXx }, 0 },
    1057110675  },
    1057210676  {
    1057310677    /* VEX_W_0F5B_P_1  */
    10574     { "vcvttps2dq",     { XM, EXx } },
     10678    { "vcvttps2dq",     { XM, EXx }, 0 },
    1057510679  },
    1057610680  {
    1057710681    /* VEX_W_0F5B_P_2  */
    10578     { "vcvtps2dq",      { XM, EXx } },
     10682    { "vcvtps2dq",      { XM, EXx }, 0 },
    1057910683  },
    1058010684  {
    1058110685    /* VEX_W_0F5C_P_0  */
    10582     { "vsubps",         { XM, Vex, EXx } },
     10686    { "vsubps",         { XM, Vex, EXx }, 0 },
    1058310687  },
    1058410688  {
    1058510689    /* VEX_W_0F5C_P_1  */
    10586     { "vsubss",         { XMScalar, VexScalar, EXdScalar } },
     10690    { "vsubss",         { XMScalar, VexScalar, EXdScalar }, 0 },
    1058710691  },
    1058810692  {
    1058910693    /* VEX_W_0F5C_P_2  */
    10590     { "vsubpd",         { XM, Vex, EXx } },
     10694    { "vsubpd",         { XM, Vex, EXx }, 0 },
    1059110695  },
    1059210696  {
    1059310697    /* VEX_W_0F5C_P_3  */
    10594     { "vsubsd",         { XMScalar, VexScalar, EXqScalar } },
     10698    { "vsubsd",         { XMScalar, VexScalar, EXqScalar }, 0 },
    1059510699  },
    1059610700  {
    1059710701    /* VEX_W_0F5D_P_0  */
    10598     { "vminps",         { XM, Vex, EXx } },
     10702    { "vminps",         { XM, Vex, EXx }, 0 },
    1059910703  },
    1060010704  {
    1060110705    /* VEX_W_0F5D_P_1  */
    10602     { "vminss",         { XMScalar, VexScalar, EXdScalar } },
     10706    { "vminss",         { XMScalar, VexScalar, EXdScalar }, 0 },
    1060310707  },
    1060410708  {
    1060510709    /* VEX_W_0F5D_P_2  */
    10606     { "vminpd",         { XM, Vex, EXx } },
     10710    { "vminpd",         { XM, Vex, EXx }, 0 },
    1060710711  },
    1060810712  {
    1060910713    /* VEX_W_0F5D_P_3  */
    10610     { "vminsd",         { XMScalar, VexScalar, EXqScalar } },
     10714    { "vminsd",         { XMScalar, VexScalar, EXqScalar }, 0 },
    1061110715  },
    1061210716  {
    1061310717    /* VEX_W_0F5E_P_0  */
    10614     { "vdivps",         { XM, Vex, EXx } },
     10718    { "vdivps",         { XM, Vex, EXx }, 0 },
    1061510719  },
    1061610720  {
    1061710721    /* VEX_W_0F5E_P_1  */
    10618     { "vdivss",         { XMScalar, VexScalar, EXdScalar } },
     10722    { "vdivss",         { XMScalar, VexScalar, EXdScalar }, 0 },
    1061910723  },
    1062010724  {
    1062110725    /* VEX_W_0F5E_P_2  */
    10622     { "vdivpd",         { XM, Vex, EXx } },
     10726    { "vdivpd",         { XM, Vex, EXx }, 0 },
    1062310727  },
    1062410728  {
    1062510729    /* VEX_W_0F5E_P_3  */
    10626     { "vdivsd",         { XMScalar, VexScalar, EXqScalar } },
     10730    { "vdivsd",         { XMScalar, VexScalar, EXqScalar }, 0 },
    1062710731  },
    1062810732  {
    1062910733    /* VEX_W_0F5F_P_0  */
    10630     { "vmaxps",         { XM, Vex, EXx } },
     10734    { "vmaxps",         { XM, Vex, EXx }, 0 },
    1063110735  },
    1063210736  {
    1063310737    /* VEX_W_0F5F_P_1  */
    10634     { "vmaxss",         { XMScalar, VexScalar, EXdScalar } },
     10738    { "vmaxss",         { XMScalar, VexScalar, EXdScalar }, 0 },
    1063510739  },
    1063610740  {
    1063710741    /* VEX_W_0F5F_P_2  */
    10638     { "vmaxpd",         { XM, Vex, EXx } },
     10742    { "vmaxpd",         { XM, Vex, EXx }, 0 },
    1063910743  },
    1064010744  {
    1064110745    /* VEX_W_0F5F_P_3  */
    10642     { "vmaxsd",         { XMScalar, VexScalar, EXqScalar } },
     10746    { "vmaxsd",         { XMScalar, VexScalar, EXqScalar }, 0 },
    1064310747  },
    1064410748  {
    1064510749    /* VEX_W_0F60_P_2  */
    10646     { "vpunpcklbw",     { XM, Vex, EXx } },
     10750    { "vpunpcklbw",     { XM, Vex, EXx }, 0 },
    1064710751  },
    1064810752  {
    1064910753    /* VEX_W_0F61_P_2  */
    10650     { "vpunpcklwd",     { XM, Vex, EXx } },
     10754    { "vpunpcklwd",     { XM, Vex, EXx }, 0 },
    1065110755  },
    1065210756  {
    1065310757    /* VEX_W_0F62_P_2  */
    10654     { "vpunpckldq",     { XM, Vex, EXx } },
     10758    { "vpunpckldq",     { XM, Vex, EXx }, 0 },
    1065510759  },
    1065610760  {
    1065710761    /* VEX_W_0F63_P_2  */
    10658     { "vpacksswb",      { XM, Vex, EXx } },
     10762    { "vpacksswb",      { XM, Vex, EXx }, 0 },
    1065910763  },
    1066010764  {
    1066110765    /* VEX_W_0F64_P_2  */
    10662     { "vpcmpgtb",       { XM, Vex, EXx } },
     10766    { "vpcmpgtb",       { XM, Vex, EXx }, 0 },
    1066310767  },
    1066410768  {
    1066510769    /* VEX_W_0F65_P_2  */
    10666     { "vpcmpgtw",       { XM, Vex, EXx } },
     10770    { "vpcmpgtw",       { XM, Vex, EXx }, 0 },
    1066710771  },
    1066810772  {
    1066910773    /* VEX_W_0F66_P_2  */
    10670     { "vpcmpgtd",       { XM, Vex, EXx } },
     10774    { "vpcmpgtd",       { XM, Vex, EXx }, 0 },
    1067110775  },
    1067210776  {
    1067310777    /* VEX_W_0F67_P_2  */
    10674     { "vpackuswb",      { XM, Vex, EXx } },
     10778    { "vpackuswb",      { XM, Vex, EXx }, 0 },
    1067510779  },
    1067610780  {
    1067710781    /* VEX_W_0F68_P_2  */
    10678     { "vpunpckhbw",     { XM, Vex, EXx } },
     10782    { "vpunpckhbw",     { XM, Vex, EXx }, 0 },
    1067910783  },
    1068010784  {
    1068110785    /* VEX_W_0F69_P_2  */
    10682     { "vpunpckhwd",     { XM, Vex, EXx } },
     10786    { "vpunpckhwd",     { XM, Vex, EXx }, 0 },
    1068310787  },
    1068410788  {
    1068510789    /* VEX_W_0F6A_P_2  */
    10686     { "vpunpckhdq",     { XM, Vex, EXx } },
     10790    { "vpunpckhdq",     { XM, Vex, EXx }, 0 },
    1068710791  },
    1068810792  {
    1068910793    /* VEX_W_0F6B_P_2  */
    10690     { "vpackssdw",      { XM, Vex, EXx } },
     10794    { "vpackssdw",      { XM, Vex, EXx }, 0 },
    1069110795  },
    1069210796  {
    1069310797    /* VEX_W_0F6C_P_2  */
    10694     { "vpunpcklqdq",    { XM, Vex, EXx } },
     10798    { "vpunpcklqdq",    { XM, Vex, EXx }, 0 },
    1069510799  },
    1069610800  {
    1069710801    /* VEX_W_0F6D_P_2  */
    10698     { "vpunpckhqdq",    { XM, Vex, EXx } },
     10802    { "vpunpckhqdq",    { XM, Vex, EXx }, 0 },
    1069910803  },
    1070010804  {
    1070110805    /* VEX_W_0F6F_P_1  */
    10702     { "vmovdqu",        { XM, EXx } },
     10806    { "vmovdqu",        { XM, EXx }, 0 },
    1070310807  },
    1070410808  {
    1070510809    /* VEX_W_0F6F_P_2  */
    10706     { "vmovdqa",        { XM, EXx } },
     10810    { "vmovdqa",        { XM, EXx }, 0 },
    1070710811  },
    1070810812  {
    1070910813    /* VEX_W_0F70_P_1 */
    10710     { "vpshufhw",       { XM, EXx, Ib } },
     10814    { "vpshufhw",       { XM, EXx, Ib }, 0 },
    1071110815  },
    1071210816  {
    1071310817    /* VEX_W_0F70_P_2 */
    10714     { "vpshufd",        { XM, EXx, Ib } },
     10818    { "vpshufd",        { XM, EXx, Ib }, 0 },
    1071510819  },
    1071610820  {
    1071710821    /* VEX_W_0F70_P_3 */
    10718     { "vpshuflw",       { XM, EXx, Ib } },
     10822    { "vpshuflw",       { XM, EXx, Ib }, 0 },
    1071910823  },
    1072010824  {
    1072110825    /* VEX_W_0F71_R_2_P_2  */
    10722     { "vpsrlw",         { Vex, XS, Ib } },
     10826    { "vpsrlw",         { Vex, XS, Ib }, 0 },
    1072310827  },
    1072410828  {
    1072510829    /* VEX_W_0F71_R_4_P_2  */
    10726     { "vpsraw",         { Vex, XS, Ib } },
     10830    { "vpsraw",         { Vex, XS, Ib }, 0 },
    1072710831  },
    1072810832  {
    1072910833    /* VEX_W_0F71_R_6_P_2  */
    10730     { "vpsllw",         { Vex, XS, Ib } },
     10834    { "vpsllw",         { Vex, XS, Ib }, 0 },
    1073110835  },
    1073210836  {
    1073310837    /* VEX_W_0F72_R_2_P_2  */
    10734     { "vpsrld",         { Vex, XS, Ib } },
     10838    { "vpsrld",         { Vex, XS, Ib }, 0 },
    1073510839  },
    1073610840  {
    1073710841    /* VEX_W_0F72_R_4_P_2  */
    10738     { "vpsrad",         { Vex, XS, Ib } },
     10842    { "vpsrad",         { Vex, XS, Ib }, 0 },
    1073910843  },
    1074010844  {
    1074110845    /* VEX_W_0F72_R_6_P_2  */
    10742     { "vpslld",         { Vex, XS, Ib } },
     10846    { "vpslld",         { Vex, XS, Ib }, 0 },
    1074310847  },
    1074410848  {
    1074510849    /* VEX_W_0F73_R_2_P_2  */
    10746     { "vpsrlq",         { Vex, XS, Ib } },
     10850    { "vpsrlq",         { Vex, XS, Ib }, 0 },
    1074710851  },
    1074810852  {
    1074910853    /* VEX_W_0F73_R_3_P_2  */
    10750     { "vpsrldq",        { Vex, XS, Ib } },
     10854    { "vpsrldq",        { Vex, XS, Ib }, 0 },
    1075110855  },
    1075210856  {
    1075310857    /* VEX_W_0F73_R_6_P_2  */
    10754     { "vpsllq",         { Vex, XS, Ib } },
     10858    { "vpsllq",         { Vex, XS, Ib }, 0 },
    1075510859  },
    1075610860  {
    1075710861    /* VEX_W_0F73_R_7_P_2  */
    10758     { "vpslldq",        { Vex, XS, Ib } },
     10862    { "vpslldq",        { Vex, XS, Ib }, 0 },
    1075910863  },
    1076010864  {
    1076110865    /* VEX_W_0F74_P_2 */
    10762     { "vpcmpeqb",       { XM, Vex, EXx } },
     10866    { "vpcmpeqb",       { XM, Vex, EXx }, 0 },
    1076310867  },
    1076410868  {
    1076510869    /* VEX_W_0F75_P_2 */
    10766     { "vpcmpeqw",       { XM, Vex, EXx } },
     10870    { "vpcmpeqw",       { XM, Vex, EXx }, 0 },
    1076710871  },
    1076810872  {
    1076910873    /* VEX_W_0F76_P_2 */
    10770     { "vpcmpeqd",       { XM, Vex, EXx } },
     10874    { "vpcmpeqd",       { XM, Vex, EXx }, 0 },
    1077110875  },
    1077210876  {
    1077310877    /* VEX_W_0F77_P_0 */
    10774     { "",               { VZERO } },
     10878    { "",               { VZERO }, 0 },
    1077510879  },
    1077610880  {
    1077710881    /* VEX_W_0F7C_P_2 */
    10778     { "vhaddpd",        { XM, Vex, EXx } },
     10882    { "vhaddpd",        { XM, Vex, EXx }, 0 },
    1077910883  },
    1078010884  {
    1078110885    /* VEX_W_0F7C_P_3 */
    10782     { "vhaddps",        { XM, Vex, EXx } },
     10886    { "vhaddps",        { XM, Vex, EXx }, 0 },
    1078310887  },
    1078410888  {
    1078510889    /* VEX_W_0F7D_P_2 */
    10786     { "vhsubpd",        { XM, Vex, EXx } },
     10890    { "vhsubpd",        { XM, Vex, EXx }, 0 },
    1078710891  },
    1078810892  {
    1078910893    /* VEX_W_0F7D_P_3 */
    10790     { "vhsubps",        { XM, Vex, EXx } },
     10894    { "vhsubps",        { XM, Vex, EXx }, 0 },
    1079110895  },
    1079210896  {
    1079310897    /* VEX_W_0F7E_P_1 */
    10794     { "vmovq",          { XMScalar, EXqScalar } },
     10898    { "vmovq",          { XMScalar, EXqScalar }, 0 },
    1079510899  },
    1079610900  {
    1079710901    /* VEX_W_0F7F_P_1 */
    10798     { "vmovdqu",        { EXxS, XM } },
     10902    { "vmovdqu",        { EXxS, XM }, 0 },
    1079910903  },
    1080010904  {
    1080110905    /* VEX_W_0F7F_P_2 */
    10802     { "vmovdqa",        { EXxS, XM } },
     10906    { "vmovdqa",        { EXxS, XM }, 0 },
    1080310907  },
    1080410908  {
    1080510909    /* VEX_W_0F90_P_0_LEN_0 */
    10806     { "kmovw",          { MaskG, MaskE } },
    10807     { "kmovq",          { MaskG, MaskE } },
     10910    { "kmovw",          { MaskG, MaskE }, 0 },
     10911    { "kmovq",          { MaskG, MaskE }, 0 },
    1080810912  },
    1080910913  {
    1081010914    /* VEX_W_0F90_P_2_LEN_0 */
    10811     { "kmovb",          { MaskG, MaskBDE } },
    10812     { "kmovd",          { MaskG, MaskBDE } },
     10915    { "kmovb",          { MaskG, MaskBDE }, 0 },
     10916    { "kmovd",          { MaskG, MaskBDE }, 0 },
    1081310917  },
    1081410918  {
    1081510919    /* VEX_W_0F91_P_0_LEN_0 */
    10816     { "kmovw",          { Ew, MaskG } },
    10817     { "kmovq",          { Eq, MaskG } },
     10920    { MOD_TABLE (MOD_VEX_W_0_0F91_P_0_LEN_0) },
     10921    { MOD_TABLE (MOD_VEX_W_1_0F91_P_0_LEN_0) },
    1081810922  },
    1081910923  {
    1082010924    /* VEX_W_0F91_P_2_LEN_0 */
    10821     { "kmovb",          { Eb, MaskG } },
    10822     { "kmovd",          { Ed, MaskG } },
     10925    { MOD_TABLE (MOD_VEX_W_0_0F91_P_2_LEN_0) },
     10926    { MOD_TABLE (MOD_VEX_W_1_0F91_P_2_LEN_0) },
    1082310927  },
    1082410928  {
    1082510929    /* VEX_W_0F92_P_0_LEN_0 */
    10826     { "kmovw",          { MaskG, Rdq } },
     10930    { MOD_TABLE (MOD_VEX_W_0_0F92_P_0_LEN_0) },
    1082710931  },
    1082810932  {
    1082910933    /* VEX_W_0F92_P_2_LEN_0 */
    10830     { "kmovb",          { MaskG, Rdq } },
     10934    { MOD_TABLE (MOD_VEX_W_0_0F92_P_2_LEN_0) },
    1083110935  },
    1083210936  {
    1083310937    /* VEX_W_0F92_P_3_LEN_0 */
    10834     { "kmovd",          { MaskG, Rdq } },
    10835     { "kmovq",          { MaskG, Rdq } },
     10938    { MOD_TABLE (MOD_VEX_W_0_0F92_P_3_LEN_0) },
     10939    { MOD_TABLE (MOD_VEX_W_1_0F92_P_3_LEN_0) },
    1083610940  },
    1083710941  {
    1083810942    /* VEX_W_0F93_P_0_LEN_0 */
    10839     { "kmovw",          { Gdq, MaskR } },
     10943    { MOD_TABLE (MOD_VEX_W_0_0F93_P_0_LEN_0) },
    1084010944  },
    1084110945  {
    1084210946    /* VEX_W_0F93_P_2_LEN_0 */
    10843     { "kmovb",          { Gdq, MaskR } },
     10947    { MOD_TABLE (MOD_VEX_W_0_0F93_P_2_LEN_0) },
    1084410948  },
    1084510949  {
    1084610950    /* VEX_W_0F93_P_3_LEN_0 */
    10847     { "kmovd",          { Gdq, MaskR } },
    10848     { "kmovq",          { Gdq, MaskR } },
     10951    { MOD_TABLE (MOD_VEX_W_0_0F93_P_3_LEN_0) },
     10952    { MOD_TABLE (MOD_VEX_W_1_0F93_P_3_LEN_0) },
    1084910953  },
    1085010954  {
    1085110955    /* VEX_W_0F98_P_0_LEN_0 */
    10852     { "kortestw",       { MaskG, MaskR } },
    10853     { "kortestq",       { MaskG, MaskR } },
     10956    { MOD_TABLE (MOD_VEX_W_0_0F98_P_0_LEN_0) },
     10957    { MOD_TABLE (MOD_VEX_W_1_0F98_P_0_LEN_0) },
    1085410958  },
    1085510959  {
    1085610960    /* VEX_W_0F98_P_2_LEN_0 */
    10857     { "kortestb",       { MaskG, MaskR } },
    10858     { "kortestd",       { MaskG, MaskR } },
     10961    { MOD_TABLE (MOD_VEX_W_0_0F98_P_2_LEN_0) },
     10962    { MOD_TABLE (MOD_VEX_W_1_0F98_P_2_LEN_0) },
    1085910963  },
    1086010964  {
    1086110965    /* VEX_W_0F99_P_0_LEN_0 */
    10862     { "ktestw", { MaskG, MaskR } },
    10863     { "ktestq", { MaskG, MaskR } },
     10966    { MOD_TABLE (MOD_VEX_W_0_0F99_P_0_LEN_0) },
     10967    { MOD_TABLE (MOD_VEX_W_1_0F99_P_0_LEN_0) },
    1086410968  },
    1086510969  {
    1086610970    /* VEX_W_0F99_P_2_LEN_0 */
    10867     { "ktestb", { MaskG, MaskR } },
    10868     { "ktestd", { MaskG, MaskR } },
     10971    { MOD_TABLE (MOD_VEX_W_0_0F99_P_2_LEN_0) },
     10972    { MOD_TABLE (MOD_VEX_W_1_0F99_P_2_LEN_0) },
    1086910973  },
    1087010974  {
    1087110975    /* VEX_W_0FAE_R_2_M_0 */
    10872     { "vldmxcsr",       { Md } },
     10976    { "vldmxcsr",       { Md }, 0 },
    1087310977  },
    1087410978  {
    1087510979    /* VEX_W_0FAE_R_3_M_0 */
    10876     { "vstmxcsr",       { Md } },
     10980    { "vstmxcsr",       { Md }, 0 },
    1087710981  },
    1087810982  {
    1087910983    /* VEX_W_0FC2_P_0 */
    10880     { "vcmpps",         { XM, Vex, EXx, VCMP } },
     10984    { "vcmpps",         { XM, Vex, EXx, VCMP }, 0 },
    1088110985  },
    1088210986  {
    1088310987    /* VEX_W_0FC2_P_1 */
    10884     { "vcmpss",         { XMScalar, VexScalar, EXdScalar, VCMP } },
     10988    { "vcmpss",         { XMScalar, VexScalar, EXdScalar, VCMP }, 0 },
    1088510989  },
    1088610990  {
    1088710991    /* VEX_W_0FC2_P_2 */
    10888     { "vcmppd",         { XM, Vex, EXx, VCMP } },
     10992    { "vcmppd",         { XM, Vex, EXx, VCMP }, 0 },
    1088910993  },
    1089010994  {
    1089110995    /* VEX_W_0FC2_P_3 */
    10892     { "vcmpsd",         { XMScalar, VexScalar, EXqScalar, VCMP } },
     10996    { "vcmpsd",         { XMScalar, VexScalar, EXqScalar, VCMP }, 0 },
    1089310997  },
    1089410998  {
    1089510999    /* VEX_W_0FC4_P_2 */
    10896     { "vpinsrw",        { XM, Vex128, Edqw, Ib } },
     11000    { "vpinsrw",        { XM, Vex128, Edqw, Ib }, 0 },
    1089711001  },
    1089811002  {
    1089911003    /* VEX_W_0FC5_P_2 */
    10900     { "vpextrw",        { Gdq, XS, Ib } },
     11004    { "vpextrw",        { Gdq, XS, Ib }, 0 },
    1090111005  },
    1090211006  {
    1090311007    /* VEX_W_0FD0_P_2 */
    10904     { "vaddsubpd",      { XM, Vex, EXx } },
     11008    { "vaddsubpd",      { XM, Vex, EXx }, 0 },
    1090511009  },
    1090611010  {
    1090711011    /* VEX_W_0FD0_P_3 */
    10908     { "vaddsubps",      { XM, Vex, EXx } },
     11012    { "vaddsubps",      { XM, Vex, EXx }, 0 },
    1090911013  },
    1091011014  {
    1091111015    /* VEX_W_0FD1_P_2 */
    10912     { "vpsrlw",         { XM, Vex, EXxmm } },
     11016    { "vpsrlw",         { XM, Vex, EXxmm }, 0 },
    1091311017  },
    1091411018  {
    1091511019    /* VEX_W_0FD2_P_2 */
    10916     { "vpsrld",         { XM, Vex, EXxmm } },
     11020    { "vpsrld",         { XM, Vex, EXxmm }, 0 },
    1091711021  },
    1091811022  {
    1091911023    /* VEX_W_0FD3_P_2 */
    10920     { "vpsrlq",         { XM, Vex, EXxmm } },
     11024    { "vpsrlq",         { XM, Vex, EXxmm }, 0 },
    1092111025  },
    1092211026  {
    1092311027    /* VEX_W_0FD4_P_2 */
    10924     { "vpaddq",         { XM, Vex, EXx } },
     11028    { "vpaddq",         { XM, Vex, EXx }, 0 },
    1092511029  },
    1092611030  {
    1092711031    /* VEX_W_0FD5_P_2 */
    10928     { "vpmullw",        { XM, Vex, EXx } },
     11032    { "vpmullw",        { XM, Vex, EXx }, 0 },
    1092911033  },
    1093011034  {
    1093111035    /* VEX_W_0FD6_P_2 */
    10932     { "vmovq",          { EXqScalarS, XMScalar } },
     11036    { "vmovq",          { EXqScalarS, XMScalar }, 0 },
    1093311037  },
    1093411038  {
    1093511039    /* VEX_W_0FD7_P_2_M_1 */
    10936     { "vpmovmskb",      { Gdq, XS } },
     11040    { "vpmovmskb",      { Gdq, XS }, 0 },
    1093711041  },
    1093811042  {
    1093911043    /* VEX_W_0FD8_P_2 */
    10940     { "vpsubusb",       { XM, Vex, EXx } },
     11044    { "vpsubusb",       { XM, Vex, EXx }, 0 },
    1094111045  },
    1094211046  {
    1094311047    /* VEX_W_0FD9_P_2 */
    10944     { "vpsubusw",       { XM, Vex, EXx } },
     11048    { "vpsubusw",       { XM, Vex, EXx }, 0 },
    1094511049  },
    1094611050  {
    1094711051    /* VEX_W_0FDA_P_2 */
    10948     { "vpminub",        { XM, Vex, EXx } },
     11052    { "vpminub",        { XM, Vex, EXx }, 0 },
    1094911053  },
    1095011054  {
    1095111055    /* VEX_W_0FDB_P_2 */
    10952     { "vpand",          { XM, Vex, EXx } },
     11056    { "vpand",          { XM, Vex, EXx }, 0 },
    1095311057  },
    1095411058  {
    1095511059    /* VEX_W_0FDC_P_2 */
    10956     { "vpaddusb",       { XM, Vex, EXx } },
     11060    { "vpaddusb",       { XM, Vex, EXx }, 0 },
    1095711061  },
    1095811062  {
    1095911063    /* VEX_W_0FDD_P_2 */
    10960     { "vpaddusw",       { XM, Vex, EXx } },
     11064    { "vpaddusw",       { XM, Vex, EXx }, 0 },
    1096111065  },
    1096211066  {
    1096311067    /* VEX_W_0FDE_P_2 */
    10964     { "vpmaxub",        { XM, Vex, EXx } },
     11068    { "vpmaxub",        { XM, Vex, EXx }, 0 },
    1096511069  },
    1096611070  {
    1096711071    /* VEX_W_0FDF_P_2 */
    10968     { "vpandn",         { XM, Vex, EXx } },
     11072    { "vpandn",         { XM, Vex, EXx }, 0 },
    1096911073  },
    1097011074  {
    1097111075    /* VEX_W_0FE0_P_2  */
    10972     { "vpavgb",         { XM, Vex, EXx } },
     11076    { "vpavgb",         { XM, Vex, EXx }, 0 },
    1097311077  },
    1097411078  {
    1097511079    /* VEX_W_0FE1_P_2  */
    10976     { "vpsraw",         { XM, Vex, EXxmm } },
     11080    { "vpsraw",         { XM, Vex, EXxmm }, 0 },
    1097711081  },
    1097811082  {
    1097911083    /* VEX_W_0FE2_P_2  */
    10980     { "vpsrad",         { XM, Vex, EXxmm } },
     11084    { "vpsrad",         { XM, Vex, EXxmm }, 0 },
    1098111085  },
    1098211086  {
    1098311087    /* VEX_W_0FE3_P_2  */
    10984     { "vpavgw",         { XM, Vex, EXx } },
     11088    { "vpavgw",         { XM, Vex, EXx }, 0 },
    1098511089  },
    1098611090  {
    1098711091    /* VEX_W_0FE4_P_2  */
    10988     { "vpmulhuw",       { XM, Vex, EXx } },
     11092    { "vpmulhuw",       { XM, Vex, EXx }, 0 },
    1098911093  },
    1099011094  {
    1099111095    /* VEX_W_0FE5_P_2  */
    10992     { "vpmulhw",        { XM, Vex, EXx } },
     11096    { "vpmulhw",        { XM, Vex, EXx }, 0 },
    1099311097  },
    1099411098  {
    1099511099    /* VEX_W_0FE6_P_1  */
    10996     { "vcvtdq2pd",      { XM, EXxmmq } },
     11100    { "vcvtdq2pd",      { XM, EXxmmq }, 0 },
    1099711101  },
    1099811102  {
    1099911103    /* VEX_W_0FE6_P_2  */
    11000     { "vcvttpd2dq%XY",  { XMM, EXx } },
     11104    { "vcvttpd2dq%XY",  { XMM, EXx }, 0 },
    1100111105  },
    1100211106  {
    1100311107    /* VEX_W_0FE6_P_3  */
    11004     { "vcvtpd2dq%XY",   { XMM, EXx } },
     11108    { "vcvtpd2dq%XY",   { XMM, EXx }, 0 },
    1100511109  },
    1100611110  {
    1100711111    /* VEX_W_0FE7_P_2_M_0 */
    11008     { "vmovntdq",       { Mx, XM } },
     11112    { "vmovntdq",       { Mx, XM }, 0 },
    1100911113  },
    1101011114  {
    1101111115    /* VEX_W_0FE8_P_2  */
    11012     { "vpsubsb",        { XM, Vex, EXx } },
     11116    { "vpsubsb",        { XM, Vex, EXx }, 0 },
    1101311117  },
    1101411118  {
    1101511119    /* VEX_W_0FE9_P_2  */
    11016     { "vpsubsw",        { XM, Vex, EXx } },
     11120    { "vpsubsw",        { XM, Vex, EXx }, 0 },
    1101711121  },
    1101811122  {
    1101911123    /* VEX_W_0FEA_P_2  */
    11020     { "vpminsw",        { XM, Vex, EXx } },
     11124    { "vpminsw",        { XM, Vex, EXx }, 0 },
    1102111125  },
    1102211126  {
    1102311127    /* VEX_W_0FEB_P_2  */
    11024     { "vpor",           { XM, Vex, EXx } },
     11128    { "vpor",           { XM, Vex, EXx }, 0 },
    1102511129  },
    1102611130  {
    1102711131    /* VEX_W_0FEC_P_2  */
    11028     { "vpaddsb",        { XM, Vex, EXx } },
     11132    { "vpaddsb",        { XM, Vex, EXx }, 0 },
    1102911133  },
    1103011134  {
    1103111135    /* VEX_W_0FED_P_2  */
    11032     { "vpaddsw",        { XM, Vex, EXx } },
     11136    { "vpaddsw",        { XM, Vex, EXx }, 0 },
    1103311137  },
    1103411138  {
    1103511139    /* VEX_W_0FEE_P_2  */
    11036     { "vpmaxsw",        { XM, Vex, EXx } },
     11140    { "vpmaxsw",        { XM, Vex, EXx }, 0 },
    1103711141  },
    1103811142  {
    1103911143    /* VEX_W_0FEF_P_2  */
    11040     { "vpxor",          { XM, Vex, EXx } },
     11144    { "vpxor",          { XM, Vex, EXx }, 0 },
    1104111145  },
    1104211146  {
    1104311147    /* VEX_W_0FF0_P_3_M_0 */
    11044     { "vlddqu",         { XM, M } },
     11148    { "vlddqu",         { XM, M }, 0 },
    1104511149  },
    1104611150  {
    1104711151    /* VEX_W_0FF1_P_2 */
    11048     { "vpsllw",         { XM, Vex, EXxmm } },
     11152    { "vpsllw",         { XM, Vex, EXxmm }, 0 },
    1104911153  },
    1105011154  {
    1105111155    /* VEX_W_0FF2_P_2 */
    11052     { "vpslld",         { XM, Vex, EXxmm } },
     11156    { "vpslld",         { XM, Vex, EXxmm }, 0 },
    1105311157  },
    1105411158  {
    1105511159    /* VEX_W_0FF3_P_2 */
    11056     { "vpsllq",         { XM, Vex, EXxmm } },
     11160    { "vpsllq",         { XM, Vex, EXxmm }, 0 },
    1105711161  },
    1105811162  {
    1105911163    /* VEX_W_0FF4_P_2 */
    11060     { "vpmuludq",       { XM, Vex, EXx } },
     11164    { "vpmuludq",       { XM, Vex, EXx }, 0 },
    1106111165  },
    1106211166  {
    1106311167    /* VEX_W_0FF5_P_2 */
    11064     { "vpmaddwd",       { XM, Vex, EXx } },
     11168    { "vpmaddwd",       { XM, Vex, EXx }, 0 },
    1106511169  },
    1106611170  {
    1106711171    /* VEX_W_0FF6_P_2 */
    11068     { "vpsadbw",        { XM, Vex, EXx } },
     11172    { "vpsadbw",        { XM, Vex, EXx }, 0 },
    1106911173  },
    1107011174  {
    1107111175    /* VEX_W_0FF7_P_2 */
    11072     { "vmaskmovdqu",    { XM, XS } },
     11176    { "vmaskmovdqu",    { XM, XS }, 0 },
    1107311177  },
    1107411178  {
    1107511179    /* VEX_W_0FF8_P_2 */
    11076     { "vpsubb",         { XM, Vex, EXx } },
     11180    { "vpsubb",         { XM, Vex, EXx }, 0 },
    1107711181  },
    1107811182  {
    1107911183    /* VEX_W_0FF9_P_2 */
    11080     { "vpsubw",         { XM, Vex, EXx } },
     11184    { "vpsubw",         { XM, Vex, EXx }, 0 },
    1108111185  },
    1108211186  {
    1108311187    /* VEX_W_0FFA_P_2 */
    11084     { "vpsubd",         { XM, Vex, EXx } },
     11188    { "vpsubd",         { XM, Vex, EXx }, 0 },
    1108511189  },
    1108611190  {
    1108711191    /* VEX_W_0FFB_P_2 */
    11088     { "vpsubq",         { XM, Vex, EXx } },
     11192    { "vpsubq",         { XM, Vex, EXx }, 0 },
    1108911193  },
    1109011194  {
    1109111195    /* VEX_W_0FFC_P_2 */
    11092     { "vpaddb",         { XM, Vex, EXx } },
     11196    { "vpaddb",         { XM, Vex, EXx }, 0 },
    1109311197  },
    1109411198  {
    1109511199    /* VEX_W_0FFD_P_2 */
    11096     { "vpaddw",         { XM, Vex, EXx } },
     11200    { "vpaddw",         { XM, Vex, EXx }, 0 },
    1109711201  },
    1109811202  {
    1109911203    /* VEX_W_0FFE_P_2 */
    11100     { "vpaddd",         { XM, Vex, EXx } },
     11204    { "vpaddd",         { XM, Vex, EXx }, 0 },
    1110111205  },
    1110211206  {
    1110311207    /* VEX_W_0F3800_P_2  */
    11104     { "vpshufb",        { XM, Vex, EXx } },
     11208    { "vpshufb",        { XM, Vex, EXx }, 0 },
    1110511209  },
    1110611210  {
    1110711211    /* VEX_W_0F3801_P_2  */
    11108     { "vphaddw",        { XM, Vex, EXx } },
     11212    { "vphaddw",        { XM, Vex, EXx }, 0 },
    1110911213  },
    1111011214  {
    1111111215    /* VEX_W_0F3802_P_2  */
    11112     { "vphaddd",        { XM, Vex, EXx } },
     11216    { "vphaddd",        { XM, Vex, EXx }, 0 },
    1111311217  },
    1111411218  {
    1111511219    /* VEX_W_0F3803_P_2  */
    11116     { "vphaddsw",       { XM, Vex, EXx } },
     11220    { "vphaddsw",       { XM, Vex, EXx }, 0 },
    1111711221  },
    1111811222  {
    1111911223    /* VEX_W_0F3804_P_2  */
    11120     { "vpmaddubsw",     { XM, Vex, EXx } },
     11224    { "vpmaddubsw",     { XM, Vex, EXx }, 0 },
    1112111225  },
    1112211226  {
    1112311227    /* VEX_W_0F3805_P_2  */
    11124     { "vphsubw",        { XM, Vex, EXx } },
     11228    { "vphsubw",        { XM, Vex, EXx }, 0 },
    1112511229  },
    1112611230  {
    1112711231    /* VEX_W_0F3806_P_2  */
    11128     { "vphsubd",        { XM, Vex, EXx } },
     11232    { "vphsubd",        { XM, Vex, EXx }, 0 },
    1112911233  },
    1113011234  {
    1113111235    /* VEX_W_0F3807_P_2  */
    11132     { "vphsubsw",       { XM, Vex, EXx } },
     11236    { "vphsubsw",       { XM, Vex, EXx }, 0 },
    1113311237  },
    1113411238  {
    1113511239    /* VEX_W_0F3808_P_2  */
    11136     { "vpsignb",        { XM, Vex, EXx } },
     11240    { "vpsignb",        { XM, Vex, EXx }, 0 },
    1113711241  },
    1113811242  {
    1113911243    /* VEX_W_0F3809_P_2  */
    11140     { "vpsignw",        { XM, Vex, EXx } },
     11244    { "vpsignw",        { XM, Vex, EXx }, 0 },
    1114111245  },
    1114211246  {
    1114311247    /* VEX_W_0F380A_P_2  */
    11144     { "vpsignd",        { XM, Vex, EXx } },
     11248    { "vpsignd",        { XM, Vex, EXx }, 0 },
    1114511249  },
    1114611250  {
    1114711251    /* VEX_W_0F380B_P_2  */
    11148     { "vpmulhrsw",      { XM, Vex, EXx } },
     11252    { "vpmulhrsw",      { XM, Vex, EXx }, 0 },
    1114911253  },
    1115011254  {
    1115111255    /* VEX_W_0F380C_P_2  */
    11152     { "vpermilps",      { XM, Vex, EXx } },
     11256    { "vpermilps",      { XM, Vex, EXx }, 0 },
    1115311257  },
    1115411258  {
    1115511259    /* VEX_W_0F380D_P_2  */
    11156     { "vpermilpd",      { XM, Vex, EXx } },
     11260    { "vpermilpd",      { XM, Vex, EXx }, 0 },
    1115711261  },
    1115811262  {
    1115911263    /* VEX_W_0F380E_P_2  */
    11160     { "vtestps",        { XM, EXx } },
     11264    { "vtestps",        { XM, EXx }, 0 },
    1116111265  },
    1116211266  {
    1116311267    /* VEX_W_0F380F_P_2  */
    11164     { "vtestpd",        { XM, EXx } },
     11268    { "vtestpd",        { XM, EXx }, 0 },
    1116511269  },
    1116611270  {
    1116711271    /* VEX_W_0F3816_P_2  */
    11168     { "vpermps",        { XM, Vex, EXx } },
     11272    { "vpermps",        { XM, Vex, EXx }, 0 },
    1116911273  },
    1117011274  {
    1117111275    /* VEX_W_0F3817_P_2 */
    11172     { "vptest",         { XM, EXx } },
     11276    { "vptest",         { XM, EXx }, 0 },
    1117311277  },
    1117411278  {
    1117511279    /* VEX_W_0F3818_P_2 */
    11176     { "vbroadcastss",   { XM, EXxmm_md } },
     11280    { "vbroadcastss",   { XM, EXxmm_md }, 0 },
    1117711281  },
    1117811282  {
    1117911283    /* VEX_W_0F3819_P_2 */
    11180     { "vbroadcastsd",   { XM, EXxmm_mq } },
     11284    { "vbroadcastsd",   { XM, EXxmm_mq }, 0 },
    1118111285  },
    1118211286  {
    1118311287    /* VEX_W_0F381A_P_2_M_0 */
    11184     { "vbroadcastf128", { XM, Mxmm } },
     11288    { "vbroadcastf128", { XM, Mxmm }, 0 },
    1118511289  },
    1118611290  {
    1118711291    /* VEX_W_0F381C_P_2 */
    11188     { "vpabsb",         { XM, EXx } },
     11292    { "vpabsb",         { XM, EXx }, 0 },
    1118911293  },
    1119011294  {
    1119111295    /* VEX_W_0F381D_P_2 */
    11192     { "vpabsw",         { XM, EXx } },
     11296    { "vpabsw",         { XM, EXx }, 0 },
    1119311297  },
    1119411298  {
    1119511299    /* VEX_W_0F381E_P_2 */
    11196     { "vpabsd",         { XM, EXx } },
     11300    { "vpabsd",         { XM, EXx }, 0 },
    1119711301  },
    1119811302  {
    1119911303    /* VEX_W_0F3820_P_2 */
    11200     { "vpmovsxbw",      { XM, EXxmmq } },
     11304    { "vpmovsxbw",      { XM, EXxmmq }, 0 },
    1120111305  },
    1120211306  {
    1120311307    /* VEX_W_0F3821_P_2 */
    11204     { "vpmovsxbd",      { XM, EXxmmqd } },
     11308    { "vpmovsxbd",      { XM, EXxmmqd }, 0 },
    1120511309  },
    1120611310  {
    1120711311    /* VEX_W_0F3822_P_2 */
    11208     { "vpmovsxbq",      { XM, EXxmmdw } },
     11312    { "vpmovsxbq",      { XM, EXxmmdw }, 0 },
    1120911313  },
    1121011314  {
    1121111315    /* VEX_W_0F3823_P_2 */
    11212     { "vpmovsxwd",      { XM, EXxmmq } },
     11316    { "vpmovsxwd",      { XM, EXxmmq }, 0 },
    1121311317  },
    1121411318  {
    1121511319    /* VEX_W_0F3824_P_2 */
    11216     { "vpmovsxwq",      { XM, EXxmmqd } },
     11320    { "vpmovsxwq",      { XM, EXxmmqd }, 0 },
    1121711321  },
    1121811322  {
    1121911323    /* VEX_W_0F3825_P_2 */
    11220     { "vpmovsxdq",      { XM, EXxmmq } },
     11324    { "vpmovsxdq",      { XM, EXxmmq }, 0 },
    1122111325  },
    1122211326  {
    1122311327    /* VEX_W_0F3828_P_2 */
    11224     { "vpmuldq",        { XM, Vex, EXx } },
     11328    { "vpmuldq",        { XM, Vex, EXx }, 0 },
    1122511329  },
    1122611330  {
    1122711331    /* VEX_W_0F3829_P_2 */
    11228     { "vpcmpeqq",       { XM, Vex, EXx } },
     11332    { "vpcmpeqq",       { XM, Vex, EXx }, 0 },
    1122911333  },
    1123011334  {
    1123111335    /* VEX_W_0F382A_P_2_M_0 */
    11232     { "vmovntdqa",      { XM, Mx } },
     11336    { "vmovntdqa",      { XM, Mx }, 0 },
    1123311337  },
    1123411338  {
    1123511339    /* VEX_W_0F382B_P_2 */
    11236     { "vpackusdw",      { XM, Vex, EXx } },
     11340    { "vpackusdw",      { XM, Vex, EXx }, 0 },
    1123711341  },
    1123811342  {
    1123911343    /* VEX_W_0F382C_P_2_M_0 */
    11240     { "vmaskmovps",     { XM, Vex, Mx } },
     11344    { "vmaskmovps",     { XM, Vex, Mx }, 0 },
    1124111345  },
    1124211346  {
    1124311347    /* VEX_W_0F382D_P_2_M_0 */
    11244     { "vmaskmovpd",     { XM, Vex, Mx } },
     11348    { "vmaskmovpd",     { XM, Vex, Mx }, 0 },
    1124511349  },
    1124611350  {
    1124711351    /* VEX_W_0F382E_P_2_M_0 */
    11248     { "vmaskmovps",     { Mx, Vex, XM } },
     11352    { "vmaskmovps",     { Mx, Vex, XM }, 0 },
    1124911353  },
    1125011354  {
    1125111355    /* VEX_W_0F382F_P_2_M_0 */
    11252     { "vmaskmovpd",     { Mx, Vex, XM } },
     11356    { "vmaskmovpd",     { Mx, Vex, XM }, 0 },
    1125311357  },
    1125411358  {
    1125511359    /* VEX_W_0F3830_P_2 */
    11256     { "vpmovzxbw",      { XM, EXxmmq } },
     11360    { "vpmovzxbw",      { XM, EXxmmq }, 0 },
    1125711361  },
    1125811362  {
    1125911363    /* VEX_W_0F3831_P_2 */
    11260     { "vpmovzxbd",      { XM, EXxmmqd } },
     11364    { "vpmovzxbd",      { XM, EXxmmqd }, 0 },
    1126111365  },
    1126211366  {
    1126311367    /* VEX_W_0F3832_P_2 */
    11264     { "vpmovzxbq",      { XM, EXxmmdw } },
     11368    { "vpmovzxbq",      { XM, EXxmmdw }, 0 },
    1126511369  },
    1126611370  {
    1126711371    /* VEX_W_0F3833_P_2 */
    11268     { "vpmovzxwd",      { XM, EXxmmq } },
     11372    { "vpmovzxwd",      { XM, EXxmmq }, 0 },
    1126911373  },
    1127011374  {
    1127111375    /* VEX_W_0F3834_P_2 */
    11272     { "vpmovzxwq",      { XM, EXxmmqd } },
     11376    { "vpmovzxwq",      { XM, EXxmmqd }, 0 },
    1127311377  },
    1127411378  {
    1127511379    /* VEX_W_0F3835_P_2 */
    11276     { "vpmovzxdq",      { XM, EXxmmq } },
     11380    { "vpmovzxdq",      { XM, EXxmmq }, 0 },
    1127711381  },
    1127811382  {
    1127911383    /* VEX_W_0F3836_P_2  */
    11280     { "vpermd",         { XM, Vex, EXx } },
     11384    { "vpermd",         { XM, Vex, EXx }, 0 },
    1128111385  },
    1128211386  {
    1128311387    /* VEX_W_0F3837_P_2 */
    11284     { "vpcmpgtq",       { XM, Vex, EXx } },
     11388    { "vpcmpgtq",       { XM, Vex, EXx }, 0 },
    1128511389  },
    1128611390  {
    1128711391    /* VEX_W_0F3838_P_2 */
    11288     { "vpminsb",        { XM, Vex, EXx } },
     11392    { "vpminsb",        { XM, Vex, EXx }, 0 },
    1128911393  },
    1129011394  {
    1129111395    /* VEX_W_0F3839_P_2 */
    11292     { "vpminsd",        { XM, Vex, EXx } },
     11396    { "vpminsd",        { XM, Vex, EXx }, 0 },
    1129311397  },
    1129411398  {
    1129511399    /* VEX_W_0F383A_P_2 */
    11296     { "vpminuw",        { XM, Vex, EXx } },
     11400    { "vpminuw",        { XM, Vex, EXx }, 0 },
    1129711401  },
    1129811402  {
    1129911403    /* VEX_W_0F383B_P_2 */
    11300     { "vpminud",        { XM, Vex, EXx } },
     11404    { "vpminud",        { XM, Vex, EXx }, 0 },
    1130111405  },
    1130211406  {
    1130311407    /* VEX_W_0F383C_P_2 */
    11304     { "vpmaxsb",        { XM, Vex, EXx } },
     11408    { "vpmaxsb",        { XM, Vex, EXx }, 0 },
    1130511409  },
    1130611410  {
    1130711411    /* VEX_W_0F383D_P_2 */
    11308     { "vpmaxsd",        { XM, Vex, EXx } },
     11412    { "vpmaxsd",        { XM, Vex, EXx }, 0 },
    1130911413  },
    1131011414  {
    1131111415    /* VEX_W_0F383E_P_2 */
    11312     { "vpmaxuw",        { XM, Vex, EXx } },
     11416    { "vpmaxuw",        { XM, Vex, EXx }, 0 },
    1131311417  },
    1131411418  {
    1131511419    /* VEX_W_0F383F_P_2 */
    11316     { "vpmaxud",        { XM, Vex, EXx } },
     11420    { "vpmaxud",        { XM, Vex, EXx }, 0 },
    1131711421  },
    1131811422  {
    1131911423    /* VEX_W_0F3840_P_2 */
    11320     { "vpmulld",        { XM, Vex, EXx } },
     11424    { "vpmulld",        { XM, Vex, EXx }, 0 },
    1132111425  },
    1132211426  {
    1132311427    /* VEX_W_0F3841_P_2 */
    11324     { "vphminposuw",    { XM, EXx } },
     11428    { "vphminposuw",    { XM, EXx }, 0 },
    1132511429  },
    1132611430  {
    1132711431    /* VEX_W_0F3846_P_2 */
    11328     { "vpsravd",        { XM, Vex, EXx } },
     11432    { "vpsravd",        { XM, Vex, EXx }, 0 },
    1132911433  },
    1133011434  {
    1133111435    /* VEX_W_0F3858_P_2 */
    11332     { "vpbroadcastd", { XM, EXxmm_md } },
     11436    { "vpbroadcastd", { XM, EXxmm_md }, 0 },
    1133311437  },
    1133411438  {
    1133511439    /* VEX_W_0F3859_P_2 */
    11336     { "vpbroadcastq",   { XM, EXxmm_mq } },
     11440    { "vpbroadcastq",   { XM, EXxmm_mq }, 0 },
    1133711441  },
    1133811442  {
    1133911443    /* VEX_W_0F385A_P_2_M_0 */
    11340     { "vbroadcasti128", { XM, Mxmm } },
     11444    { "vbroadcasti128", { XM, Mxmm }, 0 },
    1134111445  },
    1134211446  {
    1134311447    /* VEX_W_0F3878_P_2 */
    11344     { "vpbroadcastb",   { XM, EXxmm_mb } },
     11448    { "vpbroadcastb",   { XM, EXxmm_mb }, 0 },
    1134511449  },
    1134611450  {
    1134711451    /* VEX_W_0F3879_P_2 */
    11348     { "vpbroadcastw",   { XM, EXxmm_mw } },
     11452    { "vpbroadcastw",   { XM, EXxmm_mw }, 0 },
    1134911453  },
    1135011454  {
    1135111455    /* VEX_W_0F38DB_P_2 */
    11352     { "vaesimc",        { XM, EXx } },
     11456    { "vaesimc",        { XM, EXx }, 0 },
    1135311457  },
    1135411458  {
    1135511459    /* VEX_W_0F38DC_P_2 */
    11356     { "vaesenc",        { XM, Vex128, EXx } },
     11460    { "vaesenc",        { XM, Vex128, EXx }, 0 },
    1135711461  },
    1135811462  {
    1135911463    /* VEX_W_0F38DD_P_2 */
    11360     { "vaesenclast",    { XM, Vex128, EXx } },
     11464    { "vaesenclast",    { XM, Vex128, EXx }, 0 },
    1136111465  },
    1136211466  {
    1136311467    /* VEX_W_0F38DE_P_2 */
    11364     { "vaesdec",        { XM, Vex128, EXx } },
     11468    { "vaesdec",        { XM, Vex128, EXx }, 0 },
    1136511469  },
    1136611470  {
    1136711471    /* VEX_W_0F38DF_P_2 */
    11368     { "vaesdeclast",    { XM, Vex128, EXx } },
     11472    { "vaesdeclast",    { XM, Vex128, EXx }, 0 },
    1136911473  },
    1137011474  {
    1137111475    /* VEX_W_0F3A00_P_2 */
    1137211476    { Bad_Opcode },
    11373     { "vpermq",         { XM, EXx, Ib } },
     11477    { "vpermq",         { XM, EXx, Ib }, 0 },
    1137411478  },
    1137511479  {
    1137611480    /* VEX_W_0F3A01_P_2 */
    1137711481    { Bad_Opcode },
    11378     { "vpermpd",        { XM, EXx, Ib } },
     11482    { "vpermpd",        { XM, EXx, Ib }, 0 },
    1137911483  },
    1138011484  {
    1138111485    /* VEX_W_0F3A02_P_2 */
    11382     { "vpblendd",       { XM, Vex, EXx, Ib } },
     11486    { "vpblendd",       { XM, Vex, EXx, Ib }, 0 },
    1138311487  },
    1138411488  {
    1138511489    /* VEX_W_0F3A04_P_2 */
    11386     { "vpermilps",      { XM, EXx, Ib } },
     11490    { "vpermilps",      { XM, EXx, Ib }, 0 },
    1138711491  },
    1138811492  {
    1138911493    /* VEX_W_0F3A05_P_2 */
    11390     { "vpermilpd",      { XM, EXx, Ib } },
     11494    { "vpermilpd",      { XM, EXx, Ib }, 0 },
    1139111495  },
    1139211496  {
    1139311497    /* VEX_W_0F3A06_P_2 */
    11394     { "vperm2f128",     { XM, Vex256, EXx, Ib } },
     11498    { "vperm2f128",     { XM, Vex256, EXx, Ib }, 0 },
    1139511499  },
    1139611500  {
    1139711501    /* VEX_W_0F3A08_P_2 */
    11398     { "vroundps",       { XM, EXx, Ib } },
     11502    { "vroundps",       { XM, EXx, Ib }, 0 },
    1139911503  },
    1140011504  {
    1140111505    /* VEX_W_0F3A09_P_2 */
    11402     { "vroundpd",       { XM, EXx, Ib } },
     11506    { "vroundpd",       { XM, EXx, Ib }, 0 },
    1140311507  },
    1140411508  {
    1140511509    /* VEX_W_0F3A0A_P_2 */
    11406     { "vroundss",       { XMScalar, VexScalar, EXdScalar, Ib } },
     11510    { "vroundss",       { XMScalar, VexScalar, EXdScalar, Ib }, 0 },
    1140711511  },
    1140811512  {
    1140911513    /* VEX_W_0F3A0B_P_2 */
    11410     { "vroundsd",       { XMScalar, VexScalar, EXqScalar, Ib } },
     11514    { "vroundsd",       { XMScalar, VexScalar, EXqScalar, Ib }, 0 },
    1141111515  },
    1141211516  {
    1141311517    /* VEX_W_0F3A0C_P_2 */
    11414     { "vblendps",       { XM, Vex, EXx, Ib } },
     11518    { "vblendps",       { XM, Vex, EXx, Ib }, 0 },
    1141511519  },
    1141611520  {
    1141711521    /* VEX_W_0F3A0D_P_2 */
    11418     { "vblendpd",       { XM, Vex, EXx, Ib } },
     11522    { "vblendpd",       { XM, Vex, EXx, Ib }, 0 },
    1141911523  },
    1142011524  {
    1142111525    /* VEX_W_0F3A0E_P_2 */
    11422     { "vpblendw",       { XM, Vex, EXx, Ib } },
     11526    { "vpblendw",       { XM, Vex, EXx, Ib }, 0 },
    1142311527  },
    1142411528  {
    1142511529    /* VEX_W_0F3A0F_P_2 */
    11426     { "vpalignr",       { XM, Vex, EXx, Ib } },
     11530    { "vpalignr",       { XM, Vex, EXx, Ib }, 0 },
    1142711531  },
    1142811532  {
    1142911533    /* VEX_W_0F3A14_P_2 */
    11430     { "vpextrb",        { Edqb, XM, Ib } },
     11534    { "vpextrb",        { Edqb, XM, Ib }, 0 },
    1143111535  },
    1143211536  {
    1143311537    /* VEX_W_0F3A15_P_2 */
    11434     { "vpextrw",        { Edqw, XM, Ib } },
     11538    { "vpextrw",        { Edqw, XM, Ib }, 0 },
    1143511539  },
    1143611540  {
    1143711541    /* VEX_W_0F3A18_P_2 */
    11438     { "vinsertf128",    { XM, Vex256, EXxmm, Ib } },
     11542    { "vinsertf128",    { XM, Vex256, EXxmm, Ib }, 0 },
    1143911543  },
    1144011544  {
    1144111545    /* VEX_W_0F3A19_P_2 */
    11442     { "vextractf128",   { EXxmm, XM, Ib } },
     11546    { "vextractf128",   { EXxmm, XM, Ib }, 0 },
    1144311547  },
    1144411548  {
    1144511549    /* VEX_W_0F3A20_P_2 */
    11446     { "vpinsrb",        { XM, Vex128, Edqb, Ib } },
     11550    { "vpinsrb",        { XM, Vex128, Edqb, Ib }, 0 },
    1144711551  },
    1144811552  {
    1144911553    /* VEX_W_0F3A21_P_2 */
    11450     { "vinsertps",      { XM, Vex128, EXd, Ib } },
     11554    { "vinsertps",      { XM, Vex128, EXd, Ib }, 0 },
    1145111555  },
    1145211556  {
    1145311557    /* VEX_W_0F3A30_P_2_LEN_0 */
    11454     { "kshiftrb",       { MaskG, MaskR, Ib } },
    11455     { "kshiftrw",       { MaskG, MaskR, Ib } },
     11558    { MOD_TABLE (MOD_VEX_W_0_0F3A30_P_2_LEN_0) },
     11559    { MOD_TABLE (MOD_VEX_W_1_0F3A30_P_2_LEN_0) },
    1145611560  },
    1145711561  {
    1145811562    /* VEX_W_0F3A31_P_2_LEN_0 */
    11459     { "kshiftrd",       { MaskG, MaskR, Ib } },
    11460     { "kshiftrq",       { MaskG, MaskR, Ib } },
     11563    { MOD_TABLE (MOD_VEX_W_0_0F3A31_P_2_LEN_0) },
     11564    { MOD_TABLE (MOD_VEX_W_1_0F3A31_P_2_LEN_0) },
    1146111565  },
    1146211566  {
    1146311567    /* VEX_W_0F3A32_P_2_LEN_0 */
    11464     { "kshiftlb",       { MaskG, MaskR, Ib } },
    11465     { "kshiftlw",       { MaskG, MaskR, Ib } },
     11568    { MOD_TABLE (MOD_VEX_W_0_0F3A32_P_2_LEN_0) },
     11569    { MOD_TABLE (MOD_VEX_W_1_0F3A32_P_2_LEN_0) },
    1146611570  },
    1146711571  {
    1146811572    /* VEX_W_0F3A33_P_2_LEN_0 */
    11469     { "kshiftld",       { MaskG, MaskR, Ib } },
    11470     { "kshiftlq",       { MaskG, MaskR, Ib } },
     11573    { MOD_TABLE (MOD_VEX_W_0_0F3A33_P_2_LEN_0) },
     11574    { MOD_TABLE (MOD_VEX_W_1_0F3A33_P_2_LEN_0) },
    1147111575  },
    1147211576  {
    1147311577    /* VEX_W_0F3A38_P_2 */
    11474     { "vinserti128",    { XM, Vex256, EXxmm, Ib } },
     11578    { "vinserti128",    { XM, Vex256, EXxmm, Ib }, 0 },
    1147511579  },
    1147611580  {
    1147711581    /* VEX_W_0F3A39_P_2 */
    11478     { "vextracti128",   { EXxmm, XM, Ib } },
     11582    { "vextracti128",   { EXxmm, XM, Ib }, 0 },
    1147911583  },
    1148011584  {
    1148111585    /* VEX_W_0F3A40_P_2 */
    11482     { "vdpps",          { XM, Vex, EXx, Ib } },
     11586    { "vdpps",          { XM, Vex, EXx, Ib }, 0 },
    1148311587  },
    1148411588  {
    1148511589    /* VEX_W_0F3A41_P_2 */
    11486     { "vdppd",          { XM, Vex128, EXx, Ib } },
     11590    { "vdppd",          { XM, Vex128, EXx, Ib }, 0 },
    1148711591  },
    1148811592  {
    1148911593    /* VEX_W_0F3A42_P_2 */
    11490     { "vmpsadbw",       { XM, Vex, EXx, Ib } },
     11594    { "vmpsadbw",       { XM, Vex, EXx, Ib }, 0 },
    1149111595  },
    1149211596  {
    1149311597    /* VEX_W_0F3A44_P_2 */
    11494     { "vpclmulqdq",     { XM, Vex128, EXx, PCLMUL } },
     11598    { "vpclmulqdq",     { XM, Vex128, EXx, PCLMUL }, 0 },
    1149511599  },
    1149611600  {
    1149711601    /* VEX_W_0F3A46_P_2 */
    11498     { "vperm2i128",     { XM, Vex256, EXx, Ib } },
     11602    { "vperm2i128",     { XM, Vex256, EXx, Ib }, 0 },
    1149911603  },
    1150011604  {
    1150111605    /* VEX_W_0F3A48_P_2 */
    11502     { "vpermil2ps",     { XMVexW, Vex, EXVexImmW, EXVexImmW, EXVexImmW } },
    11503     { "vpermil2ps",     { XMVexW, Vex, EXVexImmW, EXVexImmW, EXVexImmW } },
     11606    { "vpermil2ps",     { XMVexW, Vex, EXVexImmW, EXVexImmW, EXVexImmW }, 0 },
     11607    { "vpermil2ps",     { XMVexW, Vex, EXVexImmW, EXVexImmW, EXVexImmW }, 0 },
    1150411608  },
    1150511609  {
    1150611610    /* VEX_W_0F3A49_P_2 */
    11507     { "vpermil2pd",     { XMVexW, Vex, EXVexImmW, EXVexImmW, EXVexImmW } },
    11508     { "vpermil2pd",     { XMVexW, Vex, EXVexImmW, EXVexImmW, EXVexImmW } },
     11611    { "vpermil2pd",     { XMVexW, Vex, EXVexImmW, EXVexImmW, EXVexImmW }, 0 },
     11612    { "vpermil2pd",     { XMVexW, Vex, EXVexImmW, EXVexImmW, EXVexImmW }, 0 },
    1150911613  },
    1151011614  {
    1151111615    /* VEX_W_0F3A4A_P_2 */
    11512     { "vblendvps",      { XM, Vex, EXx, XMVexI4 } },
     11616    { "vblendvps",      { XM, Vex, EXx, XMVexI4 }, 0 },
    1151311617  },
    1151411618  {
    1151511619    /* VEX_W_0F3A4B_P_2 */
    11516     { "vblendvpd",      { XM, Vex, EXx, XMVexI4 } },
     11620    { "vblendvpd",      { XM, Vex, EXx, XMVexI4 }, 0 },
    1151711621  },
    1151811622  {
    1151911623    /* VEX_W_0F3A4C_P_2 */
    11520     { "vpblendvb",      { XM, Vex, EXx, XMVexI4 } },
     11624    { "vpblendvb",      { XM, Vex, EXx, XMVexI4 }, 0 },
    1152111625  },
    1152211626  {
    1152311627    /* VEX_W_0F3A60_P_2 */
    11524     { "vpcmpestrm",     { XM, EXx, Ib } },
     11628    { "vpcmpestrm",     { XM, EXx, Ib }, 0 },
    1152511629  },
    1152611630  {
    1152711631    /* VEX_W_0F3A61_P_2 */
    11528     { "vpcmpestri",     { XM, EXx, Ib } },
     11632    { "vpcmpestri",     { XM, EXx, Ib }, 0 },
    1152911633  },
    1153011634  {
    1153111635    /* VEX_W_0F3A62_P_2 */
    11532     { "vpcmpistrm",     { XM, EXx, Ib } },
     11636    { "vpcmpistrm",     { XM, EXx, Ib }, 0 },
    1153311637  },
    1153411638  {
    1153511639    /* VEX_W_0F3A63_P_2 */
    11536     { "vpcmpistri",     { XM, EXx, Ib } },
     11640    { "vpcmpistri",     { XM, EXx, Ib }, 0 },
    1153711641  },
    1153811642  {
    1153911643    /* VEX_W_0F3ADF_P_2 */
    11540     { "vaeskeygenassist", { XM, EXx, Ib } },
     11644    { "vaeskeygenassist", { XM, EXx, Ib }, 0 },
    1154111645  },
    1154211646#define NEED_VEX_W_TABLE
     
    1154811652  {
    1154911653    /* MOD_8D */
    11550     { "leaS",           { Gv, M } },
     11654    { "leaS",           { Gv, M }, 0 },
    1155111655  },
    1155211656  {
     
    1156211666  {
    1156311667    /* MOD_FF_REG_3 */
    11564     { "Jcall{T|}", { indirEp } },
     11668    { "Jcall^", { indirEp }, 0 },
    1156511669  },
    1156611670  {
    1156711671    /* MOD_FF_REG_5 */
    11568     { "Jjmp{T|}", { indirEp } },
     11672    { "Jjmp^", { indirEp }, 0 },
    1156911673  },
    1157011674  {
     
    1158911693  },
    1159011694  {
     11695    /* MOD_0F01_REG_5 */
     11696    { Bad_Opcode },
     11697    { RM_TABLE (RM_0F01_REG_5) },
     11698  },
     11699  {
    1159111700    /* MOD_0F01_REG_7 */
    11592     { "invlpg",         { Mb } },
     11701    { "invlpg",         { Mb }, 0 },
    1159311702    { RM_TABLE (RM_0F01_REG_7) },
    1159411703  },
    1159511704  {
    1159611705    /* MOD_0F12_PREFIX_0 */
    11597     { "movlps",         { XM, EXq } },
    11598     { "movhlps",        { XM, EXq } },
     11706    { "movlps",         { XM, EXq }, PREFIX_OPCODE },
     11707    { "movhlps",        { XM, EXq }, PREFIX_OPCODE },
    1159911708  },
    1160011709  {
    1160111710    /* MOD_0F13 */
    11602     { "movlpX",         { EXq, XM } },
     11711    { "movlpX",         { EXq, XM }, PREFIX_OPCODE },
    1160311712  },
    1160411713  {
    1160511714    /* MOD_0F16_PREFIX_0 */
    11606     { "movhps",         { XM, EXq } },
    11607     { "movlhps",        { XM, EXq } },
     11715    { "movhps",         { XM, EXq }, 0 },
     11716    { "movlhps",        { XM, EXq }, 0 },
    1160811717  },
    1160911718  {
    1161011719    /* MOD_0F17 */
    11611     { "movhpX",         { EXq, XM } },
     11720    { "movhpX",         { EXq, XM }, PREFIX_OPCODE },
    1161211721  },
    1161311722  {
    1161411723    /* MOD_0F18_REG_0 */
    11615     { "prefetchnta",    { Mb } },
     11724    { "prefetchnta",    { Mb }, 0 },
    1161611725  },
    1161711726  {
    1161811727    /* MOD_0F18_REG_1 */
    11619     { "prefetcht0",     { Mb } },
     11728    { "prefetcht0",     { Mb }, 0 },
    1162011729  },
    1162111730  {
    1162211731    /* MOD_0F18_REG_2 */
    11623     { "prefetcht1",     { Mb } },
     11732    { "prefetcht1",     { Mb }, 0 },
    1162411733  },
    1162511734  {
    1162611735    /* MOD_0F18_REG_3 */
    11627     { "prefetcht2",     { Mb } },
     11736    { "prefetcht2",     { Mb }, 0 },
    1162811737  },
    1162911738  {
    1163011739    /* MOD_0F18_REG_4 */
    11631     { "nop/reserved",   { Mb } },
     11740    { "nop/reserved",   { Mb }, 0 },
    1163211741  },
    1163311742  {
    1163411743    /* MOD_0F18_REG_5 */
    11635     { "nop/reserved",   { Mb } },
     11744    { "nop/reserved",   { Mb }, 0 },
    1163611745  },
    1163711746  {
    1163811747    /* MOD_0F18_REG_6 */
    11639     { "nop/reserved",   { Mb } },
     11748    { "nop/reserved",   { Mb }, 0 },
    1164011749  },
    1164111750  {
    1164211751    /* MOD_0F18_REG_7 */
    11643     { "nop/reserved",   { Mb } },
     11752    { "nop/reserved",   { Mb }, 0 },
    1164411753  },
    1164511754  {
    1164611755    /* MOD_0F1A_PREFIX_0 */
    11647     { "bndldx",         { Gbnd, Ev_bnd } },
    11648     { "nopQ",           { Ev } },
     11756    { "bndldx",         { Gbnd, Ev_bnd }, 0 },
     11757    { "nopQ",           { Ev }, 0 },
    1164911758  },
    1165011759  {
    1165111760    /* MOD_0F1B_PREFIX_0 */
    11652     { "bndstx",         { Ev_bnd, Gbnd } },
    11653     { "nopQ",           { Ev } },
     11761    { "bndstx",         { Ev_bnd, Gbnd }, 0 },
     11762    { "nopQ",           { Ev }, 0 },
    1165411763  },
    1165511764  {
    1165611765    /* MOD_0F1B_PREFIX_1 */
    11657     { "bndmk",          { Gbnd, Ev_bnd } },
    11658     { "nopQ",           { Ev } },
     11766    { "bndmk",          { Gbnd, Ev_bnd }, 0 },
     11767    { "nopQ",           { Ev }, 0 },
    1165911768  },
    1166011769  {
    1166111770    /* MOD_0F24 */
    1166211771    { Bad_Opcode },
    11663     { "movL",           { Rd, Td } },
     11772    { "movL",           { Rd, Td }, 0 },
    1166411773  },
    1166511774  {
    1166611775    /* MOD_0F26 */
    1166711776    { Bad_Opcode },
    11668     { "movL",           { Td, Rd } },
     11777    { "movL",           { Td, Rd }, 0 },
    1166911778  },
    1167011779  {
    1167111780    /* MOD_0F2B_PREFIX_0 */
    11672     {"movntps",         { Mx, XM } },
     11781    {"movntps",         { Mx, XM }, PREFIX_OPCODE },
    1167311782  },
    1167411783  {
    1167511784    /* MOD_0F2B_PREFIX_1 */
    11676     {"movntss",         { Md, XM } },
     11785    {"movntss",         { Md, XM }, PREFIX_OPCODE },
    1167711786  },
    1167811787  {
    1167911788    /* MOD_0F2B_PREFIX_2 */
    11680     {"movntpd",         { Mx, XM } },
     11789    {"movntpd",         { Mx, XM }, PREFIX_OPCODE },
    1168111790  },
    1168211791  {
    1168311792    /* MOD_0F2B_PREFIX_3 */
    11684     {"movntsd",         { Mq, XM } },
     11793    {"movntsd",         { Mq, XM }, PREFIX_OPCODE },
    1168511794  },
    1168611795  {
    1168711796    /* MOD_0F51 */
    1168811797    { Bad_Opcode },
    11689     { "movmskpX",       { Gdq, XS } },
     11798    { "movmskpX",       { Gdq, XS }, PREFIX_OPCODE },
    1169011799  },
    1169111800  {
    1169211801    /* MOD_0F71_REG_2 */
    1169311802    { Bad_Opcode },
    11694     { "psrlw",          { MS, Ib } },
     11803    { "psrlw",          { MS, Ib }, 0 },
    1169511804  },
    1169611805  {
    1169711806    /* MOD_0F71_REG_4 */
    1169811807    { Bad_Opcode },
    11699     { "psraw",          { MS, Ib } },
     11808    { "psraw",          { MS, Ib }, 0 },
    1170011809  },
    1170111810  {
    1170211811    /* MOD_0F71_REG_6 */
    1170311812    { Bad_Opcode },
    11704     { "psllw",          { MS, Ib } },
     11813    { "psllw",          { MS, Ib }, 0 },
    1170511814  },
    1170611815  {
    1170711816    /* MOD_0F72_REG_2 */
    1170811817    { Bad_Opcode },
    11709     { "psrld",          { MS, Ib } },
     11818    { "psrld",          { MS, Ib }, 0 },
    1171011819  },
    1171111820  {
    1171211821    /* MOD_0F72_REG_4 */
    1171311822    { Bad_Opcode },
    11714     { "psrad",          { MS, Ib } },
     11823    { "psrad",          { MS, Ib }, 0 },
    1171511824  },
    1171611825  {
    1171711826    /* MOD_0F72_REG_6 */
    1171811827    { Bad_Opcode },
    11719     { "pslld",          { MS, Ib } },
     11828    { "pslld",          { MS, Ib }, 0 },
    1172011829  },
    1172111830  {
    1172211831    /* MOD_0F73_REG_2 */
    1172311832    { Bad_Opcode },
    11724     { "psrlq",          { MS, Ib } },
     11833    { "psrlq",          { MS, Ib }, 0 },
    1172511834  },
    1172611835  {
     
    1173211841    /* MOD_0F73_REG_6 */
    1173311842    { Bad_Opcode },
    11734     { "psllq",          { MS, Ib } },
     11843    { "psllq",          { MS, Ib }, 0 },
    1173511844  },
    1173611845  {
     
    1174111850  {
    1174211851    /* MOD_0FAE_REG_0 */
    11743     { "fxsave",         { FXSAVE } },
     11852    { "fxsave",         { FXSAVE }, 0 },
    1174411853    { PREFIX_TABLE (PREFIX_0FAE_REG_0) },
    1174511854  },
    1174611855  {
    1174711856    /* MOD_0FAE_REG_1 */
    11748     { "fxrstor",        { FXSAVE } },
     11857    { "fxrstor",        { FXSAVE }, 0 },
    1174911858    { PREFIX_TABLE (PREFIX_0FAE_REG_1) },
    1175011859  },
    1175111860  {
    1175211861    /* MOD_0FAE_REG_2 */
    11753     { "ldmxcsr",        { Md } },
     11862    { "ldmxcsr",        { Md }, 0 },
    1175411863    { PREFIX_TABLE (PREFIX_0FAE_REG_2) },
    1175511864  },
    1175611865  {
    1175711866    /* MOD_0FAE_REG_3 */
    11758     { "stmxcsr",        { Md } },
     11867    { "stmxcsr",        { Md }, 0 },
    1175911868    { PREFIX_TABLE (PREFIX_0FAE_REG_3) },
    1176011869  },
    1176111870  {
    1176211871    /* MOD_0FAE_REG_4 */
    11763     { "xsave",          { FXSAVE } },
     11872    { "xsave",          { FXSAVE }, 0 },
    1176411873  },
    1176511874  {
    1176611875    /* MOD_0FAE_REG_5 */
    11767     { "xrstor",         { FXSAVE } },
     11876    { "xrstor",         { FXSAVE }, 0 },
    1176811877    { RM_TABLE (RM_0FAE_REG_5) },
    1176911878  },
     
    1178011889  {
    1178111890    /* MOD_0FB2 */
    11782     { "lssS",           { Gv, Mp } },
     11891    { "lssS",           { Gv, Mp }, 0 },
    1178311892  },
    1178411893  {
    1178511894    /* MOD_0FB4 */
    11786     { "lfsS",           { Gv, Mp } },
     11895    { "lfsS",           { Gv, Mp }, 0 },
    1178711896  },
    1178811897  {
    1178911898    /* MOD_0FB5 */
    11790     { "lgsS",           { Gv, Mp } },
     11899    { "lgsS",           { Gv, Mp }, 0 },
     11900  },
     11901  {
     11902    /* MOD_0FC3 */
     11903    { PREFIX_TABLE (PREFIX_MOD_0_0FC3) },
    1179111904  },
    1179211905  {
    1179311906    /* MOD_0FC7_REG_3 */
    11794     { "xrstors",                { FXSAVE } },
     11907    { "xrstors",        { FXSAVE }, 0 },
    1179511908  },
    1179611909  {
    1179711910    /* MOD_0FC7_REG_4 */
    11798     { "xsavec",         { FXSAVE } },
     11911    { "xsavec",         { FXSAVE }, 0 },
    1179911912  },
    1180011913  {
    1180111914    /* MOD_0FC7_REG_5 */
    11802     { "xsaves",         { FXSAVE } },
     11915    { "xsaves",         { FXSAVE }, 0 },
    1180311916  },
    1180411917  {
    1180511918    /* MOD_0FC7_REG_6 */
    11806     { PREFIX_TABLE (PREFIX_0FC7_REG_6) },
    11807     { "rdrand",         { Ev } },
     11919    { PREFIX_TABLE (PREFIX_MOD_0_0FC7_REG_6) },
     11920    { PREFIX_TABLE (PREFIX_MOD_3_0FC7_REG_6) }
    1180811921  },
    1180911922  {
    1181011923    /* MOD_0FC7_REG_7 */
    11811     { "vmptrst",        { Mq } },
    11812     { "rdseed",         { Ev } },
     11924    { "vmptrst",        { Mq }, 0 },
     11925    { PREFIX_TABLE (PREFIX_MOD_3_0FC7_REG_7) }
    1181311926  },
    1181411927  {
    1181511928    /* MOD_0FD7 */
    1181611929    { Bad_Opcode },
    11817     { "pmovmskb",       { Gdq, MS } },
     11930    { "pmovmskb",       { Gdq, MS }, 0 },
    1181811931  },
    1181911932  {
    1182011933    /* MOD_0FE7_PREFIX_2 */
    11821     { "movntdq",        { Mx, XM } },
     11934    { "movntdq",        { Mx, XM }, 0 },
    1182211935  },
    1182311936  {
    1182411937    /* MOD_0FF0_PREFIX_3 */
    11825     { "lddqu",          { XM, M } },
     11938    { "lddqu",          { XM, M }, 0 },
    1182611939  },
    1182711940  {
    1182811941    /* MOD_0F382A_PREFIX_2 */
    11829     { "movntdqa",       { XM, Mx } },
     11942    { "movntdqa",       { XM, Mx }, 0 },
    1183011943  },
    1183111944  {
    1183211945    /* MOD_62_32BIT */
    11833     { "bound{S|}",      { Gv, Ma } },
     11946    { "bound{S|}",      { Gv, Ma }, 0 },
    1183411947    { EVEX_TABLE (EVEX_0F) },
    1183511948  },
    1183611949  {
    1183711950    /* MOD_C4_32BIT */
    11838     { "lesS",           { Gv, Mp } },
     11951    { "lesS",           { Gv, Mp }, 0 },
    1183911952    { VEX_C4_TABLE (VEX_0F) },
    1184011953  },
    1184111954  {
    1184211955    /* MOD_C5_32BIT */
    11843     { "ldsS",           { Gv, Mp } },
     11956    { "ldsS",           { Gv, Mp }, 0 },
    1184411957    { VEX_C5_TABLE (VEX_0F) },
    1184511958  },
     
    1186711980  },
    1186811981  {
     11982    /* MOD_VEX_W_0_0F41_P_0_LEN_1 */
     11983    { Bad_Opcode },
     11984    { "kandw",          { MaskG, MaskVex, MaskR }, 0 },
     11985  },
     11986  {
     11987    /* MOD_VEX_W_1_0F41_P_0_LEN_1 */
     11988    { Bad_Opcode },
     11989    { "kandq",          { MaskG, MaskVex, MaskR }, 0 },
     11990  },
     11991  {
     11992    /* MOD_VEX_W_0_0F41_P_2_LEN_1 */
     11993    { Bad_Opcode },
     11994    { "kandb",          { MaskG, MaskVex, MaskR }, 0 },
     11995  },
     11996  {
     11997    /* MOD_VEX_W_1_0F41_P_2_LEN_1 */
     11998    { Bad_Opcode },
     11999    { "kandd",          { MaskG, MaskVex, MaskR }, 0 },
     12000  },
     12001  {
     12002    /* MOD_VEX_W_0_0F42_P_0_LEN_1 */
     12003    { Bad_Opcode },
     12004    { "kandnw",         { MaskG, MaskVex, MaskR }, 0 },
     12005  },
     12006  {
     12007    /* MOD_VEX_W_1_0F42_P_0_LEN_1 */
     12008    { Bad_Opcode },
     12009    { "kandnq",         { MaskG, MaskVex, MaskR }, 0 },
     12010  },
     12011  {
     12012    /* MOD_VEX_W_0_0F42_P_2_LEN_1 */
     12013    { Bad_Opcode },
     12014    { "kandnb",         { MaskG, MaskVex, MaskR }, 0 },
     12015  },
     12016  {
     12017    /* MOD_VEX_W_1_0F42_P_2_LEN_1 */
     12018    { Bad_Opcode },
     12019    { "kandnd",         { MaskG, MaskVex, MaskR }, 0 },
     12020  },
     12021  {
     12022    /* MOD_VEX_W_0_0F44_P_0_LEN_0 */
     12023    { Bad_Opcode },
     12024    { "knotw",          { MaskG, MaskR }, 0 },
     12025  },
     12026  {
     12027    /* MOD_VEX_W_1_0F44_P_0_LEN_0 */
     12028    { Bad_Opcode },
     12029    { "knotq",          { MaskG, MaskR }, 0 },
     12030  },
     12031  {
     12032    /* MOD_VEX_W_0_0F44_P_2_LEN_0 */
     12033    { Bad_Opcode },
     12034    { "knotb",          { MaskG, MaskR }, 0 },
     12035  },
     12036  {
     12037    /* MOD_VEX_W_1_0F44_P_2_LEN_0 */
     12038    { Bad_Opcode },
     12039    { "knotd",          { MaskG, MaskR }, 0 },
     12040  },
     12041  {
     12042    /* MOD_VEX_W_0_0F45_P_0_LEN_1 */
     12043    { Bad_Opcode },
     12044    { "korw",       { MaskG, MaskVex, MaskR }, 0 },
     12045  },
     12046  {
     12047    /* MOD_VEX_W_1_0F45_P_0_LEN_1 */
     12048    { Bad_Opcode },
     12049    { "korq",       { MaskG, MaskVex, MaskR }, 0 },
     12050  },
     12051  {
     12052    /* MOD_VEX_W_0_0F45_P_2_LEN_1 */
     12053    { Bad_Opcode },
     12054    { "korb",       { MaskG, MaskVex, MaskR }, 0 },
     12055  },
     12056  {
     12057    /* MOD_VEX_W_1_0F45_P_2_LEN_1 */
     12058    { Bad_Opcode },
     12059    { "kord",       { MaskG, MaskVex, MaskR }, 0 },
     12060  },
     12061 {
     12062    /* MOD_VEX_W_0_0F46_P_0_LEN_1 */
     12063    { Bad_Opcode },
     12064    { "kxnorw",     { MaskG, MaskVex, MaskR }, 0 },
     12065  },
     12066  {
     12067    /* MOD_VEX_W_1_0F46_P_0_LEN_1 */
     12068    { Bad_Opcode },
     12069    { "kxnorq",     { MaskG, MaskVex, MaskR }, 0 },
     12070  },
     12071  {
     12072    /* MOD_VEX_W_0_0F46_P_2_LEN_1 */
     12073    { Bad_Opcode },
     12074    { "kxnorb",     { MaskG, MaskVex, MaskR }, 0 },
     12075  },
     12076  {
     12077    /* MOD_VEX_W_1_0F46_P_2_LEN_1 */
     12078    { Bad_Opcode },
     12079    { "kxnord",     { MaskG, MaskVex, MaskR }, 0 },
     12080  },
     12081  {
     12082    /* MOD_VEX_W_0_0F47_P_0_LEN_1 */
     12083    { Bad_Opcode },
     12084    { "kxorw",      { MaskG, MaskVex, MaskR }, 0 },
     12085  },
     12086  {
     12087    /* MOD_VEX_W_1_0F47_P_0_LEN_1 */
     12088    { Bad_Opcode },
     12089    { "kxorq",      { MaskG, MaskVex, MaskR }, 0 },
     12090  },
     12091  {
     12092    /* MOD_VEX_W_0_0F47_P_2_LEN_1 */
     12093    { Bad_Opcode },
     12094    { "kxorb",      { MaskG, MaskVex, MaskR }, 0 },
     12095  },
     12096  {
     12097    /* MOD_VEX_W_1_0F47_P_2_LEN_1 */
     12098    { Bad_Opcode },
     12099    { "kxord",      { MaskG, MaskVex, MaskR }, 0 },
     12100  },
     12101  {
     12102    /* MOD_VEX_W_0_0F4A_P_0_LEN_1 */
     12103    { Bad_Opcode },
     12104    { "kaddw",          { MaskG, MaskVex, MaskR }, 0 },
     12105  },
     12106  {
     12107    /* MOD_VEX_W_1_0F4A_P_0_LEN_1 */
     12108    { Bad_Opcode },
     12109    { "kaddq",          { MaskG, MaskVex, MaskR }, 0 },
     12110  },
     12111  {
     12112    /* MOD_VEX_W_0_0F4A_P_2_LEN_1 */
     12113    { Bad_Opcode },
     12114    { "kaddb",          { MaskG, MaskVex, MaskR }, 0 },
     12115  },
     12116  {
     12117    /* MOD_VEX_W_1_0F4A_P_2_LEN_1 */
     12118    { Bad_Opcode },
     12119    { "kaddd",          { MaskG, MaskVex, MaskR }, 0 },
     12120  },
     12121  {
     12122    /* MOD_VEX_W_0_0F4B_P_0_LEN_1 */
     12123    { Bad_Opcode },
     12124    { "kunpckwd",   { MaskG, MaskVex, MaskR }, 0 },
     12125  },
     12126  {
     12127    /* MOD_VEX_W_1_0F4B_P_0_LEN_1 */
     12128    { Bad_Opcode },
     12129    { "kunpckdq",   { MaskG, MaskVex, MaskR }, 0 },
     12130  },
     12131  {
     12132    /* MOD_VEX_W_0_0F4B_P_2_LEN_1 */
     12133    { Bad_Opcode },
     12134    { "kunpckbw",   { MaskG, MaskVex, MaskR }, 0 },
     12135  },
     12136  {
    1186912137    /* MOD_VEX_0F50 */
    1187012138    { Bad_Opcode },
     
    1192012188    { Bad_Opcode },
    1192112189    { PREFIX_TABLE (PREFIX_VEX_0F73_REG_7) },
     12190  },
     12191  {
     12192    /* MOD_VEX_W_0_0F91_P_0_LEN_0 */
     12193    { "kmovw",          { Ew, MaskG }, 0 },
     12194    { Bad_Opcode },
     12195  },
     12196  {
     12197    /* MOD_VEX_W_0_0F91_P_0_LEN_0 */
     12198    { "kmovq",          { Eq, MaskG }, 0 },
     12199    { Bad_Opcode },
     12200  },
     12201  {
     12202    /* MOD_VEX_W_0_0F91_P_2_LEN_0 */
     12203    { "kmovb",          { Eb, MaskG }, 0 },
     12204    { Bad_Opcode },
     12205  },
     12206  {
     12207    /* MOD_VEX_W_0_0F91_P_2_LEN_0 */
     12208    { "kmovd",          { Ed, MaskG }, 0 },
     12209    { Bad_Opcode },
     12210  },
     12211  {
     12212    /* MOD_VEX_W_0_0F92_P_0_LEN_0 */
     12213    { Bad_Opcode },
     12214    { "kmovw",          { MaskG, Rdq }, 0 },
     12215  },
     12216  {
     12217    /* MOD_VEX_W_0_0F92_P_2_LEN_0 */
     12218    { Bad_Opcode },
     12219    { "kmovb",          { MaskG, Rdq }, 0 },
     12220  },
     12221  {
     12222    /* MOD_VEX_W_0_0F92_P_3_LEN_0 */
     12223    { Bad_Opcode },
     12224    { "kmovd",          { MaskG, Rdq }, 0 },
     12225  },
     12226  {
     12227    /* MOD_VEX_W_1_0F92_P_3_LEN_0 */
     12228    { Bad_Opcode },
     12229    { "kmovq",          { MaskG, Rdq }, 0 },
     12230  },
     12231  {
     12232    /* MOD_VEX_W_0_0F93_P_0_LEN_0 */
     12233    { Bad_Opcode },
     12234    { "kmovw",          { Gdq, MaskR }, 0 },
     12235  },
     12236  {
     12237    /* MOD_VEX_W_0_0F93_P_2_LEN_0 */
     12238    { Bad_Opcode },
     12239    { "kmovb",          { Gdq, MaskR }, 0 },
     12240  },
     12241  {
     12242    /* MOD_VEX_W_0_0F93_P_3_LEN_0 */
     12243    { Bad_Opcode },
     12244    { "kmovd",          { Gdq, MaskR }, 0 },
     12245  },
     12246  {
     12247    /* MOD_VEX_W_1_0F93_P_3_LEN_0 */
     12248    { Bad_Opcode },
     12249    { "kmovq",          { Gdq, MaskR }, 0 },
     12250  },
     12251  {
     12252    /* MOD_VEX_W_0_0F98_P_0_LEN_0 */
     12253    { Bad_Opcode },
     12254    { "kortestw", { MaskG, MaskR }, 0 },
     12255  },
     12256  {
     12257    /* MOD_VEX_W_1_0F98_P_0_LEN_0 */
     12258    { Bad_Opcode },
     12259    { "kortestq", { MaskG, MaskR }, 0 },
     12260  },
     12261  {
     12262    /* MOD_VEX_W_0_0F98_P_2_LEN_0 */
     12263    { Bad_Opcode },
     12264    { "kortestb", { MaskG, MaskR }, 0 },
     12265  },
     12266  {
     12267    /* MOD_VEX_W_1_0F98_P_2_LEN_0 */
     12268    { Bad_Opcode },
     12269    { "kortestd", { MaskG, MaskR }, 0 },
     12270  },
     12271  {
     12272    /* MOD_VEX_W_0_0F99_P_0_LEN_0 */
     12273    { Bad_Opcode },
     12274    { "ktestw", { MaskG, MaskR }, 0 },
     12275  },
     12276  {
     12277    /* MOD_VEX_W_1_0F99_P_0_LEN_0 */
     12278    { Bad_Opcode },
     12279    { "ktestq", { MaskG, MaskR }, 0 },
     12280  },
     12281  {
     12282    /* MOD_VEX_W_0_0F99_P_2_LEN_0 */
     12283    { Bad_Opcode },
     12284    { "ktestb", { MaskG, MaskR }, 0 },
     12285  },
     12286  {
     12287    /* MOD_VEX_W_1_0F99_P_2_LEN_0 */
     12288    { Bad_Opcode },
     12289    { "ktestd", { MaskG, MaskR }, 0 },
    1192212290  },
    1192312291  {
     
    1197212340  {
    1197312341    /* MOD_VEX_0F388C_PREFIX_2 */
    11974     { "vpmaskmov%LW",   { XM, Vex, Mx } },
     12342    { "vpmaskmov%LW",   { XM, Vex, Mx }, 0 },
    1197512343  },
    1197612344  {
    1197712345    /* MOD_VEX_0F388E_PREFIX_2 */
    11978     { "vpmaskmov%LW",   { Mx, Vex, XM } },
     12346    { "vpmaskmov%LW",   { Mx, Vex, XM }, 0 },
     12347  },
     12348  {
     12349    /* MOD_VEX_W_0_0F3A30_P_2_LEN_0 */
     12350    { Bad_Opcode },
     12351    { "kshiftrb",       { MaskG, MaskR, Ib }, 0 },
     12352  },
     12353  {
     12354    /* MOD_VEX_W_1_0F3A30_P_2_LEN_0 */
     12355    { Bad_Opcode },
     12356    { "kshiftrw",       { MaskG, MaskR, Ib }, 0 },
     12357  },
     12358  {
     12359    /* MOD_VEX_W_0_0F3A31_P_2_LEN_0 */
     12360    { Bad_Opcode },
     12361    { "kshiftrd",       { MaskG, MaskR, Ib }, 0 },
     12362  },
     12363  {
     12364    /* MOD_VEX_W_1_0F3A31_P_2_LEN_0 */
     12365    { Bad_Opcode },
     12366    { "kshiftrq",       { MaskG, MaskR, Ib }, 0 },
     12367  },
     12368  {
     12369    /* MOD_VEX_W_0_0F3A32_P_2_LEN_0 */
     12370    { Bad_Opcode },
     12371    { "kshiftlb",       { MaskG, MaskR, Ib }, 0 },
     12372  },
     12373  {
     12374    /* MOD_VEX_W_1_0F3A32_P_2_LEN_0 */
     12375    { Bad_Opcode },
     12376    { "kshiftlw",       { MaskG, MaskR, Ib }, 0 },
     12377  },
     12378  {
     12379    /* MOD_VEX_W_0_0F3A33_P_2_LEN_0 */
     12380    { Bad_Opcode },
     12381    { "kshiftld",       { MaskG, MaskR, Ib }, 0 },
     12382  },
     12383  {
     12384    /* MOD_VEX_W_1_0F3A33_P_2_LEN_0 */
     12385    { Bad_Opcode },
     12386    { "kshiftlq",       { MaskG, MaskR, Ib }, 0 },
    1197912387  },
    1198012388#define NEED_MOD_TABLE
     
    1198612394  {
    1198712395    /* RM_C6_REG_7 */
    11988     { "xabort",         { Skip_MODRM, Ib } },
     12396    { "xabort",         { Skip_MODRM, Ib }, 0 },
    1198912397  },
    1199012398  {
    1199112399    /* RM_C7_REG_7 */
    11992     { "xbeginT",        { Skip_MODRM, Jv } },
     12400    { "xbeginT",        { Skip_MODRM, Jv }, 0 },
    1199312401  },
    1199412402  {
    1199512403    /* RM_0F01_REG_0 */
    1199612404    { Bad_Opcode },
    11997     { "vmcall",         { Skip_MODRM } },
    11998     { "vmlaunch",       { Skip_MODRM } },
    11999     { "vmresume",       { Skip_MODRM } },
    12000     { "vmxoff",         { Skip_MODRM } },
     12405    { "vmcall",         { Skip_MODRM }, 0 },
     12406    { "vmlaunch",       { Skip_MODRM }, 0 },
     12407    { "vmresume",       { Skip_MODRM }, 0 },
     12408    { "vmxoff",         { Skip_MODRM }, 0 },
    1200112409  },
    1200212410  {
    1200312411    /* RM_0F01_REG_1 */
    12004     { "monitor",        { { OP_Monitor, 0 } } },
    12005     { "mwait",          { { OP_Mwait, 0 } } },
    12006     { "clac",           { Skip_MODRM } },
    12007     { "stac",           { Skip_MODRM } },
    12008     { Bad_Opcode },
    12009     { Bad_Opcode },
    12010     { Bad_Opcode },
    12011     { "encls",          { Skip_MODRM } },
     12412    { "monitor",        { { OP_Monitor, 0 } }, 0 },
     12413    { "mwait",          { { OP_Mwait, 0 } }, 0 },
     12414    { "clac",           { Skip_MODRM }, 0 },
     12415    { "stac",           { Skip_MODRM }, 0 },
     12416    { Bad_Opcode },
     12417    { Bad_Opcode },
     12418    { Bad_Opcode },
     12419    { "encls",          { Skip_MODRM }, 0 },
    1201212420  },
    1201312421  {
    1201412422    /* RM_0F01_REG_2 */
    12015     { "xgetbv",         { Skip_MODRM } },
    12016     { "xsetbv",         { Skip_MODRM } },
    12017     { Bad_Opcode },
    12018     { Bad_Opcode },
    12019     { "vmfunc",         { Skip_MODRM } },
    12020     { "xend",           { Skip_MODRM } },
    12021     { "xtest",          { Skip_MODRM } },
    12022     { "enclu",          { Skip_MODRM } },
     12423    { "xgetbv",         { Skip_MODRM }, 0 },
     12424    { "xsetbv",         { Skip_MODRM }, 0 },
     12425    { Bad_Opcode },
     12426    { Bad_Opcode },
     12427    { "vmfunc",         { Skip_MODRM }, 0 },
     12428    { "xend",           { Skip_MODRM }, 0 },
     12429    { "xtest",          { Skip_MODRM }, 0 },
     12430    { "enclu",          { Skip_MODRM }, 0 },
    1202312431  },
    1202412432  {
    1202512433    /* RM_0F01_REG_3 */
    12026     { "vmrun",          { Skip_MODRM } },
    12027     { "vmmcall",        { Skip_MODRM } },
    12028     { "vmload",         { Skip_MODRM } },
    12029     { "vmsave",         { Skip_MODRM } },
    12030     { "stgi",           { Skip_MODRM } },
    12031     { "clgi",           { Skip_MODRM } },
    12032     { "skinit",         { Skip_MODRM } },
    12033     { "invlpga",        { Skip_MODRM } },
     12434    { "vmrun",          { Skip_MODRM }, 0 },
     12435    { "vmmcall",        { Skip_MODRM }, 0 },
     12436    { "vmload",         { Skip_MODRM }, 0 },
     12437    { "vmsave",         { Skip_MODRM }, 0 },
     12438    { "stgi",           { Skip_MODRM }, 0 },
     12439    { "clgi",           { Skip_MODRM }, 0 },
     12440    { "skinit",         { Skip_MODRM }, 0 },
     12441    { "invlpga",        { Skip_MODRM }, 0 },
     12442  },
     12443  {
     12444    /* RM_0F01_REG_5 */
     12445    { Bad_Opcode },
     12446    { Bad_Opcode },
     12447    { Bad_Opcode },
     12448    { Bad_Opcode },
     12449    { Bad_Opcode },
     12450    { Bad_Opcode },
     12451    { "rdpkru",         { Skip_MODRM }, 0 },
     12452    { "wrpkru",         { Skip_MODRM }, 0 },
    1203412453  },
    1203512454  {
    1203612455    /* RM_0F01_REG_7 */
    12037     { "swapgs",         { Skip_MODRM } },
    12038     { "rdtscp",         { Skip_MODRM } },
     12456    { "swapgs",         { Skip_MODRM }, 0  },
     12457    { "rdtscp",         { Skip_MODRM }, 0  },
     12458    { "monitorx",       { { OP_Monitor, 0 } }, 0  },
     12459    { "mwaitx",         { { OP_Mwaitx,  0 } }, 0  },
     12460    { "clzero",         { Skip_MODRM }, 0  },
    1203912461  },
    1204012462  {
    1204112463    /* RM_0FAE_REG_5 */
    12042     { "lfence",         { Skip_MODRM } },
     12464    { "lfence",         { Skip_MODRM }, 0 },
    1204312465  },
    1204412466  {
    1204512467    /* RM_0FAE_REG_6 */
    12046     { "mfence",         { Skip_MODRM } },
     12468    { "mfence",         { Skip_MODRM }, 0 },
    1204712469  },
    1204812470  {
     
    1230612728static char scale_char;
    1230712729
     12730enum x86_64_isa
     12731{
     12732  amd64 = 0,
     12733  intel64
     12734};
     12735
     12736static enum x86_64_isa isa64;
     12737
    1230812738/* Here for backwards compatibility.  When gdb stops using
    1230912739   print_insn_i386_att and print_insn_i386_intel these functions can
     
    1235512785  fprintf (stream, _("  data16      Assume 16bit data size\n"));
    1235612786  fprintf (stream, _("  suffix      Always display instruction suffix in AT&T syntax\n"));
     12787  fprintf (stream, _("  amd64       Display instruction in AMD64 ISA\n"));
     12788  fprintf (stream, _("  intel64     Display instruction in Intel64 ISA\n"));
    1235712789}
    1235812790
    1235912791/* Bad opcode.  */
    12360 static const struct dis386 bad_opcode = { "(bad)", { XX } };
     12792static const struct dis386 bad_opcode = { "(bad)", { XX }, 0 };
    1236112793
    1236212794/* Get a pointer to struct dis386 with a valid name.  */
     
    1243112863                }
    1243212864
    12433               /* Ignore the invalid index if it isn't mandatory.  */
    12434               if (!mandatory_prefix
    12435                   && (prefix_table[dp->op[1].bytemode][vindex].name
    12436                       == NULL)
    12437                   && (prefix_table[dp->op[1].bytemode][vindex].op[0].bytemode
    12438                       == 0))
     12865              /* Check if prefix should be ignored.  */
     12866              if ((((prefix_table[dp->op[1].bytemode][vindex].prefix_requirement
     12867                     & PREFIX_IGNORED) >> PREFIX_IGNORED_SHIFT)
     12868                   & prefix) != 0)
    1243912869                vindex = 0;
    1244012870            }
     
    1284013270  for (p = info->disassembler_options; p != NULL; )
    1284113271    {
    12842       if (CONST_STRNEQ (p, "x86-64"))
     13272      if (CONST_STRNEQ (p, "amd64"))
     13273        isa64 = amd64;
     13274      else if (CONST_STRNEQ (p, "intel64"))
     13275        isa64 = intel64;
     13276      else if (CONST_STRNEQ (p, "x86-64"))
    1284313277        {
    1284413278          address_mode = mode_64bit;
     
    1289913333    }
    1290013334
     13335  if (address_mode == mode_64bit && sizeof (bfd_vma) < 8)
     13336    {
     13337      (*info->fprintf_func) (info->stream,
     13338                             _("64-bit address is disabled"));
     13339      return -1;
     13340    }
     13341
    1290113342  if (intel_syntax)
    1290213343    {
     
    1302813469    {
    1302913470      unsigned char threebyte;
    13030       FETCH_DATA (info, codep + 2);
    13031       threebyte = *++codep;
     13471
     13472      codep++;
     13473      FETCH_DATA (info, codep + 1);
     13474      threebyte = *codep;
    1303213475      dp = &dis386_twobyte[threebyte];
    1303313476      need_modrm = twobyte_has_modrm[*codep];
    13034       mandatory_prefix = twobyte_has_mandatory_prefix[*codep];
    1303513477      codep++;
    1303613478    }
     
    1303913481      dp = &dis386[*codep];
    1304013482      need_modrm = onebyte_has_modrm[*codep];
    13041       mandatory_prefix = 0;
    1304213483      codep++;
    1304313484    }
     
    1313913580     PREFIX_REPZ/PREFIX_REPNZ fix, we check the PREFIX_DATA prefix
    1314013581     separately.  */
    13141   if (mandatory_prefix
     13582  if (dp->prefix_requirement == PREFIX_OPCODE
    1314213583      && dp != &bad_opcode
    1314313584      && (((prefixes
     
    1317513616      for (i = 0; i < MAX_OPERANDS; ++i)
    1317613617        op_txt[i] = op_out[i];
     13618
     13619      if (intel_syntax && dp && dp->op[2].rtn == OP_Rounding
     13620          && dp->op[3].rtn == OP_E && dp->op[4].rtn == NULL)
     13621        {
     13622          op_txt[2] = op_out[3];
     13623          op_txt[3] = op_out[2];
     13624        }
    1317713625
    1317813626      for (i = 0; i < (MAX_OPERANDS >> 1); ++i)
     
    1320913657      {
    1321013658        (*info->fprintf_func) (info->stream, "        # ");
    13211         (*info->print_address_func) ((bfd_vma) (start_pc + codep - start_codep
     13659        (*info->print_address_func) ((bfd_vma) (start_pc + (codep - start_codep)
    1321213660                                                + op_address[op_index[i]]), info);
    1321313661        break;
     
    1336913817#define STi { OP_STi, 0 }
    1337013818
    13371 #define FGRPd9_2 NULL, { { NULL, 0 } }
    13372 #define FGRPd9_4 NULL, { { NULL, 1 } }
    13373 #define FGRPd9_5 NULL, { { NULL, 2 } }
    13374 #define FGRPd9_6 NULL, { { NULL, 3 } }
    13375 #define FGRPd9_7 NULL, { { NULL, 4 } }
    13376 #define FGRPda_5 NULL, { { NULL, 5 } }
    13377 #define FGRPdb_4 NULL, { { NULL, 6 } }
    13378 #define FGRPde_3 NULL, { { NULL, 7 } }
    13379 #define FGRPdf_4 NULL, { { NULL, 8 } }
     13819#define FGRPd9_2 NULL, { { NULL, 0 } }, 0
     13820#define FGRPd9_4 NULL, { { NULL, 1 } }, 0
     13821#define FGRPd9_5 NULL, { { NULL, 2 } }, 0
     13822#define FGRPd9_6 NULL, { { NULL, 3 } }, 0
     13823#define FGRPd9_7 NULL, { { NULL, 4 } }, 0
     13824#define FGRPda_5 NULL, { { NULL, 5 } }, 0
     13825#define FGRPdb_4 NULL, { { NULL, 6 } }, 0
     13826#define FGRPde_3 NULL, { { NULL, 7 } }, 0
     13827#define FGRPdf_4 NULL, { { NULL, 8 } }, 0
    1338013828
    1338113829static const struct dis386 float_reg[][8] = {
    1338213830  /* d8 */
    1338313831  {
    13384     { "fadd",   { ST, STi } },
    13385     { "fmul",   { ST, STi } },
    13386     { "fcom",   { STi } },
    13387     { "fcomp",  { STi } },
    13388     { "fsub",   { ST, STi } },
    13389     { "fsubr",  { ST, STi } },
    13390     { "fdiv",   { ST, STi } },
    13391     { "fdivr",  { ST, STi } },
     13832    { "fadd",   { ST, STi }, 0 },
     13833    { "fmul",   { ST, STi }, 0 },
     13834    { "fcom",   { STi }, 0 },
     13835    { "fcomp",  { STi }, 0 },
     13836    { "fsub",   { ST, STi }, 0 },
     13837    { "fsubr",  { ST, STi }, 0 },
     13838    { "fdiv",   { ST, STi }, 0 },
     13839    { "fdivr",  { ST, STi }, 0 },
    1339213840  },
    1339313841  /* d9 */
    1339413842  {
    13395     { "fld",    { STi } },
    13396     { "fxch",   { STi } },
     13843    { "fld",    { STi }, 0 },
     13844    { "fxch",   { STi }, 0 },
    1339713845    { FGRPd9_2 },
    1339813846    { Bad_Opcode },
     
    1340413852  /* da */
    1340513853  {
    13406     { "fcmovb", { ST, STi } },
    13407     { "fcmove", { ST, STi } },
    13408     { "fcmovbe",{ ST, STi } },
    13409     { "fcmovu", { ST, STi } },
     13854    { "fcmovb", { ST, STi }, 0 },
     13855    { "fcmove", { ST, STi }, 0 },
     13856    { "fcmovbe",{ ST, STi }, 0 },
     13857    { "fcmovu", { ST, STi }, 0 },
    1341013858    { Bad_Opcode },
    1341113859    { FGRPda_5 },
     
    1341513863  /* db */
    1341613864  {
    13417     { "fcmovnb",{ ST, STi } },
    13418     { "fcmovne",{ ST, STi } },
    13419     { "fcmovnbe",{ ST, STi } },
    13420     { "fcmovnu",{ ST, STi } },
     13865    { "fcmovnb",{ ST, STi }, 0 },
     13866    { "fcmovne",{ ST, STi }, 0 },
     13867    { "fcmovnbe",{ ST, STi }, 0 },
     13868    { "fcmovnu",{ ST, STi }, 0 },
    1342113869    { FGRPdb_4 },
    13422     { "fucomi", { ST, STi } },
    13423     { "fcomi",  { ST, STi } },
     13870    { "fucomi", { ST, STi }, 0 },
     13871    { "fcomi",  { ST, STi }, 0 },
    1342413872    { Bad_Opcode },
    1342513873  },
    1342613874  /* dc */
    1342713875  {
    13428     { "fadd",   { STi, ST } },
    13429     { "fmul",   { STi, ST } },
    13430     { Bad_Opcode },
    13431     { Bad_Opcode },
    13432     { "fsub!M", { STi, ST } },
    13433     { "fsubM",  { STi, ST } },
    13434     { "fdiv!M", { STi, ST } },
    13435     { "fdivM",  { STi, ST } },
     13876    { "fadd",   { STi, ST }, 0 },
     13877    { "fmul",   { STi, ST }, 0 },
     13878    { Bad_Opcode },
     13879    { Bad_Opcode },
     13880    { "fsub!M", { STi, ST }, 0 },
     13881    { "fsubM",  { STi, ST }, 0 },
     13882    { "fdiv!M", { STi, ST }, 0 },
     13883    { "fdivM",  { STi, ST }, 0 },
    1343613884  },
    1343713885  /* dd */
    1343813886  {
    13439     { "ffree",  { STi } },
    13440     { Bad_Opcode },
    13441     { "fst",    { STi } },
    13442     { "fstp",   { STi } },
    13443     { "fucom",  { STi } },
    13444     { "fucomp", { STi } },
     13887    { "ffree",  { STi }, 0 },
     13888    { Bad_Opcode },
     13889    { "fst",    { STi }, 0 },
     13890    { "fstp",   { STi }, 0 },
     13891    { "fucom",  { STi }, 0 },
     13892    { "fucomp", { STi }, 0 },
    1344513893    { Bad_Opcode },
    1344613894    { Bad_Opcode },
     
    1344813896  /* de */
    1344913897  {
    13450     { "faddp",  { STi, ST } },
    13451     { "fmulp",  { STi, ST } },
     13898    { "faddp",  { STi, ST }, 0 },
     13899    { "fmulp",  { STi, ST }, 0 },
    1345213900    { Bad_Opcode },
    1345313901    { FGRPde_3 },
    13454     { "fsub!Mp", { STi, ST } },
    13455     { "fsubMp", { STi, ST } },
    13456     { "fdiv!Mp", { STi, ST } },
    13457     { "fdivMp", { STi, ST } },
     13902    { "fsub!Mp", { STi, ST }, 0 },
     13903    { "fsubMp", { STi, ST }, 0 },
     13904    { "fdiv!Mp", { STi, ST }, 0 },
     13905    { "fdivMp", { STi, ST }, 0 },
    1345813906  },
    1345913907  /* df */
    1346013908  {
    13461     { "ffreep", { STi } },
     13909    { "ffreep", { STi }, 0 },
    1346213910    { Bad_Opcode },
    1346313911    { Bad_Opcode },
    1346413912    { Bad_Opcode },
    1346513913    { FGRPdf_4 },
    13466     { "fucomip", { ST, STi } },
    13467     { "fcomip", { ST, STi } },
     13914    { "fucomip", { ST, STi }, 0 },
     13915    { "fcomip", { ST, STi }, 0 },
    1346813916    { Bad_Opcode },
    1346913917  },
     
    1378414232          break;
    1378514233        case 'Z':
     14234          if (l != 0 || len != 1)
     14235            {
     14236              if (l != 1 || len != 2 || last[0] != 'X')
     14237                {
     14238                  SAVE_LAST (*p);
     14239                  break;
     14240                }
     14241              if (!need_vex || !vex.evex)
     14242                abort ();
     14243              if (intel_syntax
     14244                  || ((modrm.mod == 3 || vex.b) && !(sizeflag & SUFFIX_ALWAYS)))
     14245                break;
     14246              switch (vex.length)
     14247                {
     14248                case 128:
     14249                  *obufp++ = 'x';
     14250                  break;
     14251                case 256:
     14252                  *obufp++ = 'y';
     14253                  break;
     14254                case 512:
     14255                  *obufp++ = 'z';
     14256                  break;
     14257                default:
     14258                  abort ();
     14259                }
     14260              break;
     14261            }
    1378614262          if (intel_syntax)
    1378714263            break;
     
    1382614302            used_prefixes |= (prefixes & PREFIX_DATA);
    1382714303          break;
     14304        case '&':
     14305          if (!intel_syntax
     14306              && address_mode == mode_64bit
     14307              && isa64 == intel64)
     14308            {
     14309              *obufp++ = 'q';
     14310              break;
     14311            }
     14312          /* Fall through.  */
    1382814313        case 'T':
    1382914314          if (!intel_syntax
     
    1408214567                abort ();
    1408314568              if (intel_syntax
    14084                   || (modrm.mod == 3 && !(sizeflag & SUFFIX_ALWAYS)))
     14569                  || ((modrm.mod == 3 || vex.b) && !(sizeflag & SUFFIX_ALWAYS)))
    1408514570                break;
    1408614571              switch (vex.length)
     
    1409214577                  *obufp++ = 'y';
    1409314578                  break;
     14579                case 512:
     14580                  if (!vex.evex)
    1409414581                default:
    14095                   abort ();
     14582                    abort ();
    1409614583                }
    1409714584            }
     
    1413414621            }
    1413514622          break;
     14623        case '^':
     14624          if (intel_syntax)
     14625            break;
     14626          if ((prefixes & PREFIX_DATA) || (sizeflag & SUFFIX_ALWAYS))
     14627            {
     14628              if (sizeflag & DFLAG)
     14629                *obufp++ = 'l';
     14630              else
     14631                *obufp++ = 'w';
     14632              used_prefixes |= (prefixes & PREFIX_DATA);
     14633            }
     14634          break;
     14635        case '@':
     14636          if (intel_syntax)
     14637            break;
     14638          if (address_mode == mode_64bit
     14639              && (isa64 == intel64
     14640                  || ((sizeflag & DFLAG) || (rex & REX_W))))
     14641              *obufp++ = 'q';
     14642          else if ((prefixes & PREFIX_DATA))
     14643            {
     14644              if (!(sizeflag & DFLAG))
     14645                *obufp++ = 'w';
     14646              used_prefixes |= (prefixes & PREFIX_DATA);
     14647            }
     14648          break;
    1413614649        }
    1413714650      alt = 0;
     
    1431814831      oappend ("WORD PTR ");
    1431914832      break;
     14833    case indir_v_mode:
     14834      if (address_mode == mode_64bit && isa64 == intel64)
     14835        {
     14836          oappend ("QWORD PTR ");
     14837          break;
     14838        }
    1432014839    case stack_v_mode:
    1432114840      if (address_mode == mode_64bit && ((sizeflag & DFLAG) || (rex & REX_W)))
     
    1469515214      names = names_bnd;
    1469615215      break;
     15216    case indir_v_mode:
     15217      if (address_mode == mode_64bit && isa64 == intel64)
     15218        {
     15219          names = names64;
     15220          break;
     15221        }
    1469715222    case stack_v_mode:
    1469815223      if (address_mode == mode_64bit && ((sizeflag & DFLAG) || (rex & REX_W)))
     
    1527515800  a |= (*codep++ & 0xff) << 8;
    1527615801  a |= (*codep++ & 0xff) << 16;
    15277   a |= (*codep++ & 0xff) << 24;
     15802  a |= (*codep++ & 0xffu) << 24;
    1527815803  b = *codep++ & 0xff;
    1527915804  b |= (*codep++ & 0xff) << 8;
    1528015805  b |= (*codep++ & 0xff) << 16;
    15281   b |= (*codep++ & 0xff) << 24;
     15806  b |= (*codep++ & 0xffu) << 24;
    1528215807  x = a + ((bfd_vma) b << 32);
    1528315808#else
     
    1565016175      break;
    1565116176    case v_mode:
    15652       USED_REX (REX_W);
    15653       if ((sizeflag & DFLAG) || (rex & REX_W))
     16177      if (isa64 == amd64)
     16178        USED_REX (REX_W);
     16179      if ((sizeflag & DFLAG)
     16180          || (address_mode == mode_64bit
     16181              && (isa64 != amd64 || (rex & REX_W))))
    1565416182        disp = get32s ();
    1565516183      else
     
    1566416192          mask = 0xffff;
    1566516193          if ((prefixes & PREFIX_DATA) == 0)
    15666             segment = ((start_pc + codep - start_codep)
     16194            segment = ((start_pc + (codep - start_codep))
    1566716195                       & ~((bfd_vma) 0xffff));
    1566816196        }
    15669       if (!(rex & REX_W))
     16197      if (address_mode != mode_64bit
     16198          || (isa64 == amd64 && !(rex & REX_W)))
    1567016199        used_prefixes |= (prefixes & PREFIX_DATA);
    1567116200      break;
     
    1633716866
    1633816867static void
     16868OP_Mwaitx (int bytemode ATTRIBUTE_UNUSED,
     16869          int sizeflag ATTRIBUTE_UNUSED)
     16870{
     16871  /* mwaitx %eax,%ecx,%ebx */
     16872  if (!intel_syntax)
     16873    {
     16874      const char **names = (address_mode == mode_64bit
     16875                            ? names64 : names32);
     16876      strcpy (op_out[0], names[0]);
     16877      strcpy (op_out[1], names[1]);
     16878      strcpy (op_out[2], names[3]);
     16879      two_source_ops = 1;
     16880    }
     16881  /* Skip mod/rm byte.  */
     16882  MODRM_CHECK;
     16883  codep++;
     16884}
     16885
     16886static void
    1633916887OP_Mwait (int bytemode ATTRIBUTE_UNUSED,
    1634016888          int sizeflag ATTRIBUTE_UNUSED)
Note: See TracChangeset for help on using the changeset viewer.