2009-10-15 H.J. Lu <hongjiu.lu@intel.com>
authorH.J. Lu <hjl.tools@gmail.com>
Thu, 15 Oct 2009 22:50:09 +0000 (22:50 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Thu, 15 Oct 2009 22:50:09 +0000 (22:50 +0000)
    Ineiev <ineiev@gmail.com>

PR binutils/10767
* i386-dis.c: Use enum instead of nested macros.

opcodes/ChangeLog
opcodes/i386-dis.c

index 80597002cae4aa296f08ea5569eab444174f3e2d..eb43a9ba792a8fb8b348a0d0b372ebd23bd45b2e 100644 (file)
@@ -1,3 +1,9 @@
+2009-10-15  H.J. Lu  <hongjiu.lu@intel.com>
+           Ineiev <ineiev@gmail.com>
+
+       PR binutils/10767
+       * i386-dis.c: Use enum instead of nested macros.
+
 2009-10-15  H.J. Lu  <hongjiu.lu@intel.com>
 
        * i386-dis.c (MAX_BYTEMODE): Removed.
index 0af804992d3830d83e99a5d6ab7eabf11ba29dbd..01d5ea313b13a4699e4fb6d93c3c0f998ac156cb 100644 (file)
@@ -397,125 +397,130 @@ fetch_data (struct disassemble_info *info, bfd_byte *addr)
 #define AFLAG 2
 #define DFLAG 1
 
-/* byte operand */
-#define b_mode                 1
-/* byte operand with operand swapped */
-#define b_swap_mode            (b_mode + 1)
-/* operand size depends on prefixes */
-#define v_mode                 (b_swap_mode + 1)
-/* operand size depends on prefixes with operand swapped */
-#define v_swap_mode            (v_mode + 1)
-/* word operand */
-#define w_mode                 (v_swap_mode + 1)
-/* double word operand  */
-#define d_mode                 (w_mode + 1)
-/* double word operand with operand swapped */
-#define d_swap_mode            (d_mode + 1)
-/* quad word operand */
-#define q_mode                 (d_swap_mode + 1)
-/* quad word operand with operand swapped */
-#define q_swap_mode            (q_mode + 1)
-/* ten-byte operand */
-#define t_mode                 (q_swap_mode + 1)
-/* 16-byte XMM or 32-byte YMM operand */
-#define x_mode                 (t_mode + 1)
-/* 16-byte XMM or 32-byte YMM operand with operand swapped */
-#define x_swap_mode            (x_mode + 1)
-/* 16-byte XMM operand */
-#define xmm_mode               (x_swap_mode + 1)
-/* 16-byte XMM or quad word operand */
-#define xmmq_mode              (xmm_mode + 1)
-/* 32-byte YMM or quad word operand */
-#define ymmq_mode              (xmmq_mode + 1)
-/* d_mode in 32bit, q_mode in 64bit mode.  */
-#define m_mode                 (ymmq_mode + 1)
-/* pair of v_mode operands */
-#define a_mode                 (m_mode + 1)
-#define cond_jump_mode         (a_mode + 1)
-#define loop_jcxz_mode         (cond_jump_mode + 1)
-/* operand size depends on REX prefixes.  */
-#define dq_mode                        (loop_jcxz_mode + 1)
-/* registers like dq_mode, memory like w_mode.  */
-#define dqw_mode               (dq_mode + 1)
-/* 4- or 6-byte pointer operand */
-#define f_mode                 (dqw_mode + 1)
-#define const_1_mode           (f_mode + 1)
-/* v_mode for stack-related opcodes.  */
-#define stack_v_mode           (const_1_mode + 1)
-/* non-quad operand size depends on prefixes */
-#define z_mode                 (stack_v_mode + 1)
-/* 16-byte operand */
-#define o_mode                 (z_mode + 1)
-/* registers like dq_mode, memory like b_mode.  */
-#define dqb_mode               (o_mode + 1)
-/* registers like dq_mode, memory like d_mode.  */
-#define dqd_mode               (dqb_mode + 1)
-/* normal vex mode */
-#define vex_mode               (dqd_mode + 1)
-/* 128bit vex mode */
-#define vex128_mode            (vex_mode + 1)
-/* 256bit vex mode */
-#define vex256_mode            (vex128_mode + 1)
-/* operand size depends on the VEX.W bit.  */
-#define vex_w_dq_mode          (vex256_mode + 1)
-
-#define es_reg                 (vex_w_dq_mode + 1)
-#define cs_reg                 (es_reg + 1)
-#define ss_reg                 (cs_reg + 1)
-#define ds_reg                 (ss_reg + 1)
-#define fs_reg                 (ds_reg + 1)
-#define gs_reg                 (fs_reg + 1)
-
-#define eAX_reg                        (gs_reg + 1)
-#define eCX_reg                        (eAX_reg + 1)
-#define eDX_reg                        (eCX_reg + 1)
-#define eBX_reg                        (eDX_reg + 1)
-#define eSP_reg                        (eBX_reg + 1)
-#define eBP_reg                        (eSP_reg + 1)
-#define eSI_reg                        (eBP_reg + 1)
-#define eDI_reg                        (eSI_reg + 1)
-
-#define al_reg                 (eDI_reg + 1)
-#define cl_reg                 (al_reg + 1)
-#define dl_reg                 (cl_reg + 1)
-#define bl_reg                 (dl_reg + 1)
-#define ah_reg                 (bl_reg + 1)
-#define ch_reg                 (ah_reg + 1)
-#define dh_reg                 (ch_reg + 1)
-#define bh_reg                 (dh_reg + 1)
-
-#define ax_reg                 (bh_reg + 1)
-#define cx_reg                 (ax_reg + 1)
-#define dx_reg                 (cx_reg + 1)
-#define bx_reg                 (dx_reg + 1)
-#define sp_reg                 (bx_reg + 1)
-#define bp_reg                 (sp_reg + 1)
-#define si_reg                 (bp_reg + 1)
-#define di_reg                 (si_reg + 1)
-
-#define rAX_reg                        (di_reg + 1)
-#define rCX_reg                        (rAX_reg + 1)
-#define rDX_reg                        (rCX_reg + 1)
-#define rBX_reg                        (rDX_reg + 1)
-#define rSP_reg                        (rBX_reg + 1)
-#define rBP_reg                        (rSP_reg + 1)
-#define rSI_reg                        (rBP_reg + 1)
-#define rDI_reg                        (rSI_reg + 1)
-
-#define z_mode_ax_reg          (rDI_reg + 1)
-#define indir_dx_reg           (z_mode_ax_reg + 1)
-
-
-#define FLOATCODE              1
-#define USE_REG_TABLE          (FLOATCODE + 1)
-#define USE_MOD_TABLE          (USE_REG_TABLE + 1)
-#define USE_RM_TABLE           (USE_MOD_TABLE + 1)
-#define USE_PREFIX_TABLE       (USE_RM_TABLE + 1)
-#define USE_X86_64_TABLE       (USE_PREFIX_TABLE + 1)
-#define USE_3BYTE_TABLE                (USE_X86_64_TABLE + 1)
-#define USE_VEX_C4_TABLE       (USE_3BYTE_TABLE + 1)
-#define USE_VEX_C5_TABLE       (USE_VEX_C4_TABLE + 1)
-#define USE_VEX_LEN_TABLE      (USE_VEX_C5_TABLE + 1)
+enum
+{
+  /* byte operand */
+  b_mode = 1,
+  /* byte operand with operand swapped */
+  b_swap_mode = b_mode + 1,
+  /* operand size depends on prefixes */
+  v_mode = b_swap_mode + 1,
+  /* operand size depends on prefixes with operand swapped */
+  v_swap_mode = v_mode + 1,
+  /* word operand */
+  w_mode = v_swap_mode + 1,
+  /* double word operand  */
+  d_mode = w_mode + 1,
+  /* double word operand with operand swapped */
+  d_swap_mode = d_mode + 1,
+  /* quad word operand */
+  q_mode = d_swap_mode + 1,
+  /* quad word operand with operand swapped */
+  q_swap_mode = q_mode + 1,
+  /* ten-byte operand */
+  t_mode = q_swap_mode + 1,
+  /* 16-byte XMM or 32-byte YMM operand */
+  x_mode = t_mode + 1,
+  /* 16-byte XMM or 32-byte YMM operand with operand swapped */
+  x_swap_mode = x_mode + 1,
+  /* 16-byte XMM operand */
+  xmm_mode = x_swap_mode + 1,
+  /* 16-byte XMM or quad word operand */
+  xmmq_mode = xmm_mode + 1,
+  /* 32-byte YMM or quad word operand */
+  ymmq_mode = xmmq_mode + 1,
+  /* d_mode in 32bit, q_mode in 64bit mode.  */
+  m_mode = ymmq_mode + 1,
+  /* pair of v_mode operands */
+  a_mode = m_mode + 1,
+  cond_jump_mode = a_mode + 1,
+  loop_jcxz_mode = cond_jump_mode + 1,
+  /* operand size depends on REX prefixes.  */
+  dq_mode = loop_jcxz_mode + 1,
+  /* registers like dq_mode, memory like w_mode.  */
+  dqw_mode = dq_mode + 1,
+  /* 4- or 6-byte pointer operand */
+  f_mode = dqw_mode + 1,
+  const_1_mode = f_mode + 1,
+  /* v_mode for stack-related opcodes.  */
+  stack_v_mode = const_1_mode + 1,
+  /* non-quad operand size depends on prefixes */
+  z_mode = stack_v_mode + 1,
+  /* 16-byte operand */
+  o_mode = z_mode + 1,
+  /* registers like dq_mode, memory like b_mode.  */
+  dqb_mode = o_mode + 1,
+  /* registers like dq_mode, memory like d_mode.  */
+  dqd_mode = dqb_mode + 1,
+  /* normal vex mode */
+  vex_mode = dqd_mode + 1,
+  /* 128bit vex mode */
+  vex128_mode = vex_mode + 1,
+  /* 256bit vex mode */
+  vex256_mode = vex128_mode + 1,
+  /* operand size depends on the VEX.W bit.  */
+  vex_w_dq_mode = vex256_mode + 1,
+
+  es_reg = vex_w_dq_mode + 1,
+  cs_reg = es_reg + 1,
+  ss_reg = cs_reg + 1,
+  ds_reg = ss_reg + 1,
+  fs_reg = ds_reg + 1,
+  gs_reg = fs_reg + 1,
+
+  eAX_reg = gs_reg + 1,
+  eCX_reg = eAX_reg + 1,
+  eDX_reg = eCX_reg + 1,
+  eBX_reg = eDX_reg + 1,
+  eSP_reg = eBX_reg + 1,
+  eBP_reg = eSP_reg + 1,
+  eSI_reg = eBP_reg + 1,
+  eDI_reg = eSI_reg + 1,
+
+  al_reg = eDI_reg + 1,
+  cl_reg = al_reg + 1,
+  dl_reg = cl_reg + 1,
+  bl_reg = dl_reg + 1,
+  ah_reg = bl_reg + 1,
+  ch_reg = ah_reg + 1,
+  dh_reg = ch_reg + 1,
+  bh_reg = dh_reg + 1,
+
+  ax_reg = bh_reg + 1,
+  cx_reg = ax_reg + 1,
+  dx_reg = cx_reg + 1,
+  bx_reg = dx_reg + 1,
+  sp_reg = bx_reg + 1,
+  bp_reg = sp_reg + 1,
+  si_reg = bp_reg + 1,
+  di_reg = si_reg + 1,
+
+  rAX_reg = di_reg + 1,
+  rCX_reg = rAX_reg + 1,
+  rDX_reg = rCX_reg + 1,
+  rBX_reg = rDX_reg + 1,
+  rSP_reg = rBX_reg + 1,
+  rBP_reg = rSP_reg + 1,
+  rSI_reg = rBP_reg + 1,
+  rDI_reg = rSI_reg + 1,
+
+  z_mode_ax_reg = rDI_reg + 1,
+  indir_dx_reg = z_mode_ax_reg + 1
+};
+
+enum
+{
+  FLOATCODE = 1,
+  USE_REG_TABLE = FLOATCODE + 1,
+  USE_MOD_TABLE = USE_REG_TABLE + 1,
+  USE_RM_TABLE = USE_MOD_TABLE + 1,
+  USE_PREFIX_TABLE = USE_RM_TABLE + 1,
+  USE_X86_64_TABLE = USE_PREFIX_TABLE + 1,
+  USE_3BYTE_TABLE = USE_X86_64_TABLE + 1,
+  USE_VEX_C4_TABLE = USE_3BYTE_TABLE + 1,
+  USE_VEX_C5_TABLE = USE_VEX_C4_TABLE + 1,
+  USE_VEX_LEN_TABLE = USE_VEX_C5_TABLE + 1
+};
 
 #define FLOAT                  NULL, { { NULL, FLOATCODE } }
 
@@ -530,730 +535,754 @@ fetch_data (struct disassemble_info *info, bfd_byte *addr)
 #define VEX_C5_TABLE(I)                DIS386 (USE_VEX_C5_TABLE, (I))
 #define VEX_LEN_TABLE(I)       DIS386 (USE_VEX_LEN_TABLE, (I))
 
-#define REG_80                 0
-#define REG_81                 (REG_80 + 1)
-#define REG_82                 (REG_81 + 1)
-#define REG_8F                 (REG_82 + 1)
-#define REG_C0                 (REG_8F + 1)
-#define REG_C1                 (REG_C0 + 1)
-#define REG_C6                 (REG_C1 + 1)
-#define REG_C7                 (REG_C6 + 1)
-#define REG_D0                 (REG_C7 + 1)
-#define REG_D1                 (REG_D0 + 1)
-#define REG_D2                 (REG_D1 + 1)
-#define REG_D3                 (REG_D2 + 1)
-#define REG_F6                 (REG_D3 + 1)
-#define REG_F7                 (REG_F6 + 1)
-#define REG_FE                 (REG_F7 + 1)
-#define REG_FF                 (REG_FE + 1)
-#define REG_0F00               (REG_FF + 1)
-#define REG_0F01               (REG_0F00 + 1)
-#define REG_0F0D               (REG_0F01 + 1)
-#define REG_0F18               (REG_0F0D + 1)
-#define REG_0F71               (REG_0F18 + 1)
-#define REG_0F72               (REG_0F71 + 1)
-#define REG_0F73               (REG_0F72 + 1)
-#define REG_0FA6               (REG_0F73 + 1)
-#define REG_0FA7               (REG_0FA6 + 1)
-#define REG_0FAE               (REG_0FA7 + 1)
-#define REG_0FBA               (REG_0FAE + 1)
-#define REG_0FC7               (REG_0FBA + 1)
-#define REG_VEX_71             (REG_0FC7 + 1)
-#define REG_VEX_72             (REG_VEX_71 + 1)
-#define REG_VEX_73             (REG_VEX_72 + 1)
-#define REG_VEX_AE             (REG_VEX_73 + 1)
-
-#define MOD_8D                 0
-#define MOD_0F01_REG_0         (MOD_8D + 1)
-#define MOD_0F01_REG_1         (MOD_0F01_REG_0 + 1)
-#define MOD_0F01_REG_2         (MOD_0F01_REG_1 + 1)
-#define MOD_0F01_REG_3         (MOD_0F01_REG_2 + 1)
-#define MOD_0F01_REG_7         (MOD_0F01_REG_3 + 1)
-#define MOD_0F12_PREFIX_0      (MOD_0F01_REG_7 + 1)
-#define MOD_0F13               (MOD_0F12_PREFIX_0 + 1)
-#define MOD_0F16_PREFIX_0      (MOD_0F13 + 1)
-#define MOD_0F17               (MOD_0F16_PREFIX_0 + 1)
-#define MOD_0F18_REG_0         (MOD_0F17 + 1)
-#define MOD_0F18_REG_1         (MOD_0F18_REG_0 + 1)
-#define MOD_0F18_REG_2         (MOD_0F18_REG_1 + 1)
-#define MOD_0F18_REG_3         (MOD_0F18_REG_2 + 1)
-#define MOD_0F20               (MOD_0F18_REG_3 + 1)
-#define MOD_0F21               (MOD_0F20 + 1)
-#define MOD_0F22               (MOD_0F21 + 1)
-#define MOD_0F23               (MOD_0F22 + 1)
-#define MOD_0F24               (MOD_0F23 + 1)
-#define MOD_0F26               (MOD_0F24 + 1)
-#define MOD_0F2B_PREFIX_0      (MOD_0F26 + 1)
-#define MOD_0F2B_PREFIX_1      (MOD_0F2B_PREFIX_0 + 1)
-#define MOD_0F2B_PREFIX_2      (MOD_0F2B_PREFIX_1 + 1)
-#define MOD_0F2B_PREFIX_3      (MOD_0F2B_PREFIX_2 + 1)
-#define MOD_0F51               (MOD_0F2B_PREFIX_3 + 1)
-#define MOD_0F71_REG_2         (MOD_0F51 + 1)
-#define MOD_0F71_REG_4         (MOD_0F71_REG_2 + 1)
-#define MOD_0F71_REG_6         (MOD_0F71_REG_4 + 1)
-#define MOD_0F72_REG_2         (MOD_0F71_REG_6 + 1)
-#define MOD_0F72_REG_4         (MOD_0F72_REG_2 + 1)
-#define MOD_0F72_REG_6         (MOD_0F72_REG_4 + 1)
-#define MOD_0F73_REG_2         (MOD_0F72_REG_6 + 1)
-#define MOD_0F73_REG_3         (MOD_0F73_REG_2 + 1)
-#define MOD_0F73_REG_6         (MOD_0F73_REG_3 + 1)
-#define MOD_0F73_REG_7         (MOD_0F73_REG_6 + 1)
-#define MOD_0FAE_REG_0         (MOD_0F73_REG_7 + 1)
-#define MOD_0FAE_REG_1         (MOD_0FAE_REG_0 + 1)
-#define MOD_0FAE_REG_2         (MOD_0FAE_REG_1 + 1)
-#define MOD_0FAE_REG_3         (MOD_0FAE_REG_2 + 1)
-#define MOD_0FAE_REG_4         (MOD_0FAE_REG_3 + 1)
-#define MOD_0FAE_REG_5         (MOD_0FAE_REG_4 + 1)
-#define MOD_0FAE_REG_6         (MOD_0FAE_REG_5 + 1)
-#define MOD_0FAE_REG_7         (MOD_0FAE_REG_6 + 1)
-#define MOD_0FB2               (MOD_0FAE_REG_7 + 1)
-#define MOD_0FB4               (MOD_0FB2 + 1)
-#define MOD_0FB5               (MOD_0FB4 + 1)
-#define MOD_0FC7_REG_6         (MOD_0FB5 + 1)
-#define MOD_0FC7_REG_7         (MOD_0FC7_REG_6 + 1)
-#define MOD_0FD7               (MOD_0FC7_REG_7 + 1)
-#define MOD_0FE7_PREFIX_2      (MOD_0FD7 + 1)
-#define MOD_0FF0_PREFIX_3      (MOD_0FE7_PREFIX_2 + 1)
-#define MOD_0F382A_PREFIX_2    (MOD_0FF0_PREFIX_3 + 1)
-#define MOD_62_32BIT           (MOD_0F382A_PREFIX_2 + 1)
-#define MOD_C4_32BIT           (MOD_62_32BIT + 1)
-#define MOD_C5_32BIT           (MOD_C4_32BIT + 1)
-#define MOD_VEX_12_PREFIX_0    (MOD_C5_32BIT + 1)
-#define MOD_VEX_13             (MOD_VEX_12_PREFIX_0 + 1)
-#define MOD_VEX_16_PREFIX_0    (MOD_VEX_13 + 1)
-#define MOD_VEX_17             (MOD_VEX_16_PREFIX_0 + 1)
-#define MOD_VEX_2B             (MOD_VEX_17 + 1)
-#define MOD_VEX_51             (MOD_VEX_2B + 1)
-#define MOD_VEX_71_REG_2       (MOD_VEX_51 + 1)
-#define MOD_VEX_71_REG_4       (MOD_VEX_71_REG_2 + 1)
-#define MOD_VEX_71_REG_6       (MOD_VEX_71_REG_4 + 1)
-#define MOD_VEX_72_REG_2       (MOD_VEX_71_REG_6 + 1)
-#define MOD_VEX_72_REG_4       (MOD_VEX_72_REG_2 + 1)
-#define MOD_VEX_72_REG_6       (MOD_VEX_72_REG_4 + 1)
-#define MOD_VEX_73_REG_2       (MOD_VEX_72_REG_6 + 1)
-#define MOD_VEX_73_REG_3       (MOD_VEX_73_REG_2 + 1)
-#define MOD_VEX_73_REG_6       (MOD_VEX_73_REG_3 + 1)
-#define MOD_VEX_73_REG_7       (MOD_VEX_73_REG_6 + 1)
-#define MOD_VEX_AE_REG_2       (MOD_VEX_73_REG_7 + 1)
-#define MOD_VEX_AE_REG_3       (MOD_VEX_AE_REG_2 + 1)
-#define MOD_VEX_D7_PREFIX_2    (MOD_VEX_AE_REG_3 + 1)
-#define MOD_VEX_E7_PREFIX_2    (MOD_VEX_D7_PREFIX_2 + 1)
-#define MOD_VEX_F0_PREFIX_3    (MOD_VEX_E7_PREFIX_2 + 1)
-#define MOD_VEX_3818_PREFIX_2  (MOD_VEX_F0_PREFIX_3 + 1)
-#define MOD_VEX_3819_PREFIX_2  (MOD_VEX_3818_PREFIX_2 + 1)
-#define MOD_VEX_381A_PREFIX_2  (MOD_VEX_3819_PREFIX_2 + 1)
-#define MOD_VEX_382A_PREFIX_2  (MOD_VEX_381A_PREFIX_2 + 1)
-#define MOD_VEX_382C_PREFIX_2  (MOD_VEX_382A_PREFIX_2 + 1)
-#define MOD_VEX_382D_PREFIX_2  (MOD_VEX_382C_PREFIX_2 + 1)
-#define MOD_VEX_382E_PREFIX_2  (MOD_VEX_382D_PREFIX_2 + 1)
-#define MOD_VEX_382F_PREFIX_2  (MOD_VEX_382E_PREFIX_2 + 1)
-
-#define RM_0F01_REG_0          0
-#define RM_0F01_REG_1          (RM_0F01_REG_0 + 1)
-#define RM_0F01_REG_2          (RM_0F01_REG_1 + 1)
-#define RM_0F01_REG_3          (RM_0F01_REG_2 + 1)
-#define RM_0F01_REG_7          (RM_0F01_REG_3 + 1)
-#define RM_0FAE_REG_5          (RM_0F01_REG_7 + 1)
-#define RM_0FAE_REG_6          (RM_0FAE_REG_5 + 1)
-#define RM_0FAE_REG_7          (RM_0FAE_REG_6 + 1)
-
-#define PREFIX_90              0
-#define PREFIX_0F10            (PREFIX_90 + 1)
-#define PREFIX_0F11            (PREFIX_0F10 + 1)
-#define PREFIX_0F12            (PREFIX_0F11 + 1)
-#define PREFIX_0F16            (PREFIX_0F12 + 1)
-#define PREFIX_0F2A            (PREFIX_0F16 + 1)
-#define PREFIX_0F2B            (PREFIX_0F2A + 1)
-#define PREFIX_0F2C            (PREFIX_0F2B + 1)
-#define PREFIX_0F2D            (PREFIX_0F2C + 1)
-#define PREFIX_0F2E            (PREFIX_0F2D + 1)
-#define PREFIX_0F2F            (PREFIX_0F2E + 1)
-#define PREFIX_0F51            (PREFIX_0F2F + 1)
-#define PREFIX_0F52            (PREFIX_0F51 + 1)
-#define PREFIX_0F53            (PREFIX_0F52 + 1)
-#define PREFIX_0F58            (PREFIX_0F53 + 1)
-#define PREFIX_0F59            (PREFIX_0F58 + 1)
-#define PREFIX_0F5A            (PREFIX_0F59 + 1)
-#define PREFIX_0F5B            (PREFIX_0F5A + 1)
-#define PREFIX_0F5C            (PREFIX_0F5B + 1)
-#define PREFIX_0F5D            (PREFIX_0F5C + 1)
-#define PREFIX_0F5E            (PREFIX_0F5D + 1)
-#define PREFIX_0F5F            (PREFIX_0F5E + 1)
-#define PREFIX_0F60            (PREFIX_0F5F + 1)
-#define PREFIX_0F61            (PREFIX_0F60 + 1)
-#define PREFIX_0F62            (PREFIX_0F61 + 1)
-#define PREFIX_0F6C            (PREFIX_0F62 + 1)
-#define PREFIX_0F6D            (PREFIX_0F6C + 1)
-#define PREFIX_0F6F            (PREFIX_0F6D + 1)
-#define PREFIX_0F70            (PREFIX_0F6F + 1)
-#define PREFIX_0F73_REG_3      (PREFIX_0F70 + 1)
-#define PREFIX_0F73_REG_7      (PREFIX_0F73_REG_3 + 1)
-#define PREFIX_0F78            (PREFIX_0F73_REG_7 + 1)
-#define PREFIX_0F79            (PREFIX_0F78 + 1)
-#define PREFIX_0F7C            (PREFIX_0F79 + 1)
-#define PREFIX_0F7D            (PREFIX_0F7C + 1)
-#define PREFIX_0F7E            (PREFIX_0F7D + 1)
-#define PREFIX_0F7F            (PREFIX_0F7E + 1)
-#define PREFIX_0FB8            (PREFIX_0F7F + 1)
-#define PREFIX_0FBD            (PREFIX_0FB8 + 1)
-#define PREFIX_0FC2            (PREFIX_0FBD + 1)
-#define PREFIX_0FC3            (PREFIX_0FC2 + 1)
-#define PREFIX_0FC7_REG_6      (PREFIX_0FC3 + 1)
-#define PREFIX_0FD0            (PREFIX_0FC7_REG_6 + 1)
-#define PREFIX_0FD6            (PREFIX_0FD0 + 1)
-#define PREFIX_0FE6            (PREFIX_0FD6 + 1)
-#define PREFIX_0FE7            (PREFIX_0FE6 + 1)
-#define PREFIX_0FF0            (PREFIX_0FE7 + 1)
-#define PREFIX_0FF7            (PREFIX_0FF0 + 1)
-#define PREFIX_0F3810          (PREFIX_0FF7 + 1)
-#define PREFIX_0F3814          (PREFIX_0F3810 + 1)
-#define PREFIX_0F3815          (PREFIX_0F3814 + 1)
-#define PREFIX_0F3817          (PREFIX_0F3815 + 1)
-#define PREFIX_0F3820          (PREFIX_0F3817 + 1)
-#define PREFIX_0F3821          (PREFIX_0F3820 + 1)
-#define PREFIX_0F3822          (PREFIX_0F3821 + 1)
-#define PREFIX_0F3823          (PREFIX_0F3822 + 1)
-#define PREFIX_0F3824          (PREFIX_0F3823 + 1)
-#define PREFIX_0F3825          (PREFIX_0F3824 + 1)
-#define PREFIX_0F3828          (PREFIX_0F3825 + 1)
-#define PREFIX_0F3829          (PREFIX_0F3828 + 1)
-#define PREFIX_0F382A          (PREFIX_0F3829 + 1)
-#define PREFIX_0F382B          (PREFIX_0F382A + 1)
-#define PREFIX_0F3830          (PREFIX_0F382B + 1)
-#define PREFIX_0F3831          (PREFIX_0F3830 + 1)
-#define PREFIX_0F3832          (PREFIX_0F3831 + 1)
-#define PREFIX_0F3833          (PREFIX_0F3832 + 1)
-#define PREFIX_0F3834          (PREFIX_0F3833 + 1)
-#define PREFIX_0F3835          (PREFIX_0F3834 + 1)
-#define PREFIX_0F3837          (PREFIX_0F3835 + 1)
-#define PREFIX_0F3838          (PREFIX_0F3837 + 1)
-#define PREFIX_0F3839          (PREFIX_0F3838 + 1)
-#define PREFIX_0F383A          (PREFIX_0F3839 + 1)
-#define PREFIX_0F383B          (PREFIX_0F383A + 1)
-#define PREFIX_0F383C          (PREFIX_0F383B + 1)
-#define PREFIX_0F383D          (PREFIX_0F383C + 1)
-#define PREFIX_0F383E          (PREFIX_0F383D + 1)
-#define PREFIX_0F383F          (PREFIX_0F383E + 1)
-#define PREFIX_0F3840          (PREFIX_0F383F + 1)
-#define PREFIX_0F3841          (PREFIX_0F3840 + 1)
-#define PREFIX_0F3880          (PREFIX_0F3841 + 1)
-#define PREFIX_0F3881          (PREFIX_0F3880 + 1)
-#define PREFIX_0F38DB          (PREFIX_0F3881 + 1)
-#define PREFIX_0F38DC          (PREFIX_0F38DB + 1)
-#define PREFIX_0F38DD          (PREFIX_0F38DC + 1)
-#define PREFIX_0F38DE          (PREFIX_0F38DD + 1)
-#define PREFIX_0F38DF          (PREFIX_0F38DE + 1)
-#define PREFIX_0F38F0          (PREFIX_0F38DF + 1)
-#define PREFIX_0F38F1          (PREFIX_0F38F0 + 1)
-#define PREFIX_0F3A08          (PREFIX_0F38F1 + 1)
-#define PREFIX_0F3A09          (PREFIX_0F3A08 + 1)
-#define PREFIX_0F3A0A          (PREFIX_0F3A09 + 1)
-#define PREFIX_0F3A0B          (PREFIX_0F3A0A + 1)
-#define PREFIX_0F3A0C          (PREFIX_0F3A0B + 1)
-#define PREFIX_0F3A0D          (PREFIX_0F3A0C + 1)
-#define PREFIX_0F3A0E          (PREFIX_0F3A0D + 1)
-#define PREFIX_0F3A14          (PREFIX_0F3A0E + 1)
-#define PREFIX_0F3A15          (PREFIX_0F3A14 + 1)
-#define PREFIX_0F3A16          (PREFIX_0F3A15 + 1)
-#define PREFIX_0F3A17          (PREFIX_0F3A16 + 1)
-#define PREFIX_0F3A20          (PREFIX_0F3A17 + 1)
-#define PREFIX_0F3A21          (PREFIX_0F3A20 + 1)
-#define PREFIX_0F3A22          (PREFIX_0F3A21 + 1)
-#define PREFIX_0F3A40          (PREFIX_0F3A22 + 1)
-#define PREFIX_0F3A41          (PREFIX_0F3A40 + 1)
-#define PREFIX_0F3A42          (PREFIX_0F3A41 + 1)
-#define PREFIX_0F3A44          (PREFIX_0F3A42 + 1)
-#define PREFIX_0F3A60          (PREFIX_0F3A44 + 1)
-#define PREFIX_0F3A61          (PREFIX_0F3A60 + 1)
-#define PREFIX_0F3A62          (PREFIX_0F3A61 + 1)
-#define PREFIX_0F3A63          (PREFIX_0F3A62 + 1)
-#define PREFIX_0F3ADF          (PREFIX_0F3A63 + 1)
-#define PREFIX_VEX_10          (PREFIX_0F3ADF + 1)
-#define PREFIX_VEX_11          (PREFIX_VEX_10 + 1)
-#define PREFIX_VEX_12          (PREFIX_VEX_11 + 1)
-#define PREFIX_VEX_16          (PREFIX_VEX_12 + 1)
-#define PREFIX_VEX_2A          (PREFIX_VEX_16 + 1)
-#define PREFIX_VEX_2C          (PREFIX_VEX_2A + 1)
-#define PREFIX_VEX_2D          (PREFIX_VEX_2C + 1)
-#define PREFIX_VEX_2E          (PREFIX_VEX_2D + 1)
-#define PREFIX_VEX_2F          (PREFIX_VEX_2E + 1)
-#define PREFIX_VEX_51          (PREFIX_VEX_2F + 1)
-#define PREFIX_VEX_52          (PREFIX_VEX_51 + 1)
-#define PREFIX_VEX_53          (PREFIX_VEX_52 + 1)
-#define PREFIX_VEX_58          (PREFIX_VEX_53 + 1)
-#define PREFIX_VEX_59          (PREFIX_VEX_58 + 1)
-#define PREFIX_VEX_5A          (PREFIX_VEX_59 + 1)
-#define PREFIX_VEX_5B          (PREFIX_VEX_5A + 1)
-#define PREFIX_VEX_5C          (PREFIX_VEX_5B + 1)
-#define PREFIX_VEX_5D          (PREFIX_VEX_5C + 1)
-#define PREFIX_VEX_5E          (PREFIX_VEX_5D + 1)
-#define PREFIX_VEX_5F          (PREFIX_VEX_5E + 1)
-#define PREFIX_VEX_60          (PREFIX_VEX_5F + 1)
-#define PREFIX_VEX_61          (PREFIX_VEX_60 + 1)
-#define PREFIX_VEX_62          (PREFIX_VEX_61 + 1)
-#define PREFIX_VEX_63          (PREFIX_VEX_62 + 1)
-#define PREFIX_VEX_64          (PREFIX_VEX_63 + 1)
-#define PREFIX_VEX_65          (PREFIX_VEX_64 + 1)
-#define PREFIX_VEX_66          (PREFIX_VEX_65 + 1)
-#define PREFIX_VEX_67          (PREFIX_VEX_66 + 1)
-#define PREFIX_VEX_68          (PREFIX_VEX_67 + 1)
-#define PREFIX_VEX_69          (PREFIX_VEX_68 + 1)
-#define PREFIX_VEX_6A          (PREFIX_VEX_69 + 1)
-#define PREFIX_VEX_6B          (PREFIX_VEX_6A + 1)
-#define PREFIX_VEX_6C          (PREFIX_VEX_6B + 1)
-#define PREFIX_VEX_6D          (PREFIX_VEX_6C + 1)
-#define PREFIX_VEX_6E          (PREFIX_VEX_6D + 1)
-#define PREFIX_VEX_6F          (PREFIX_VEX_6E + 1)
-#define PREFIX_VEX_70          (PREFIX_VEX_6F + 1)
-#define PREFIX_VEX_71_REG_2    (PREFIX_VEX_70 + 1)
-#define PREFIX_VEX_71_REG_4    (PREFIX_VEX_71_REG_2 + 1)
-#define PREFIX_VEX_71_REG_6    (PREFIX_VEX_71_REG_4 + 1)
-#define PREFIX_VEX_72_REG_2    (PREFIX_VEX_71_REG_6 + 1)
-#define PREFIX_VEX_72_REG_4    (PREFIX_VEX_72_REG_2 + 1)
-#define PREFIX_VEX_72_REG_6    (PREFIX_VEX_72_REG_4 + 1)
-#define PREFIX_VEX_73_REG_2    (PREFIX_VEX_72_REG_6 + 1)
-#define PREFIX_VEX_73_REG_3    (PREFIX_VEX_73_REG_2 + 1)
-#define PREFIX_VEX_73_REG_6    (PREFIX_VEX_73_REG_3 + 1)
-#define PREFIX_VEX_73_REG_7    (PREFIX_VEX_73_REG_6 + 1)
-#define PREFIX_VEX_74          (PREFIX_VEX_73_REG_7 + 1)
-#define PREFIX_VEX_75          (PREFIX_VEX_74 + 1)
-#define PREFIX_VEX_76          (PREFIX_VEX_75 + 1)
-#define PREFIX_VEX_77          (PREFIX_VEX_76 + 1)
-#define PREFIX_VEX_7C          (PREFIX_VEX_77 + 1)
-#define PREFIX_VEX_7D          (PREFIX_VEX_7C + 1)
-#define PREFIX_VEX_7E          (PREFIX_VEX_7D + 1)
-#define PREFIX_VEX_7F          (PREFIX_VEX_7E + 1)
-#define PREFIX_VEX_C2          (PREFIX_VEX_7F + 1)
-#define PREFIX_VEX_C4          (PREFIX_VEX_C2 + 1)
-#define PREFIX_VEX_C5          (PREFIX_VEX_C4 + 1)
-#define PREFIX_VEX_D0          (PREFIX_VEX_C5 + 1)
-#define PREFIX_VEX_D1          (PREFIX_VEX_D0 + 1)
-#define PREFIX_VEX_D2          (PREFIX_VEX_D1 + 1)
-#define PREFIX_VEX_D3          (PREFIX_VEX_D2 + 1)
-#define PREFIX_VEX_D4          (PREFIX_VEX_D3 + 1)
-#define PREFIX_VEX_D5          (PREFIX_VEX_D4 + 1)
-#define PREFIX_VEX_D6          (PREFIX_VEX_D5 + 1)
-#define PREFIX_VEX_D7          (PREFIX_VEX_D6 + 1)
-#define PREFIX_VEX_D8          (PREFIX_VEX_D7 + 1)
-#define PREFIX_VEX_D9          (PREFIX_VEX_D8 + 1)
-#define PREFIX_VEX_DA          (PREFIX_VEX_D9 + 1)
-#define PREFIX_VEX_DB          (PREFIX_VEX_DA + 1)
-#define PREFIX_VEX_DC          (PREFIX_VEX_DB + 1)
-#define PREFIX_VEX_DD          (PREFIX_VEX_DC + 1)
-#define PREFIX_VEX_DE          (PREFIX_VEX_DD + 1)
-#define PREFIX_VEX_DF          (PREFIX_VEX_DE + 1)
-#define PREFIX_VEX_E0          (PREFIX_VEX_DF + 1)
-#define PREFIX_VEX_E1          (PREFIX_VEX_E0 + 1)
-#define PREFIX_VEX_E2          (PREFIX_VEX_E1 + 1)
-#define PREFIX_VEX_E3          (PREFIX_VEX_E2 + 1)
-#define PREFIX_VEX_E4          (PREFIX_VEX_E3 + 1)
-#define PREFIX_VEX_E5          (PREFIX_VEX_E4 + 1)
-#define PREFIX_VEX_E6          (PREFIX_VEX_E5 + 1)
-#define PREFIX_VEX_E7          (PREFIX_VEX_E6 + 1)
-#define PREFIX_VEX_E8          (PREFIX_VEX_E7 + 1)
-#define PREFIX_VEX_E9          (PREFIX_VEX_E8 + 1)
-#define PREFIX_VEX_EA          (PREFIX_VEX_E9 + 1)
-#define PREFIX_VEX_EB          (PREFIX_VEX_EA + 1)
-#define PREFIX_VEX_EC          (PREFIX_VEX_EB + 1)
-#define PREFIX_VEX_ED          (PREFIX_VEX_EC + 1)
-#define PREFIX_VEX_EE          (PREFIX_VEX_ED + 1)
-#define PREFIX_VEX_EF          (PREFIX_VEX_EE + 1)
-#define PREFIX_VEX_F0          (PREFIX_VEX_EF + 1)
-#define PREFIX_VEX_F1          (PREFIX_VEX_F0 + 1)
-#define PREFIX_VEX_F2          (PREFIX_VEX_F1 + 1)
-#define PREFIX_VEX_F3          (PREFIX_VEX_F2 + 1)
-#define PREFIX_VEX_F4          (PREFIX_VEX_F3 + 1)
-#define PREFIX_VEX_F5          (PREFIX_VEX_F4 + 1)
-#define PREFIX_VEX_F6          (PREFIX_VEX_F5 + 1)
-#define PREFIX_VEX_F7          (PREFIX_VEX_F6 + 1)
-#define PREFIX_VEX_F8          (PREFIX_VEX_F7 + 1)
-#define PREFIX_VEX_F9          (PREFIX_VEX_F8 + 1)
-#define PREFIX_VEX_FA          (PREFIX_VEX_F9 + 1)
-#define PREFIX_VEX_FB          (PREFIX_VEX_FA + 1)
-#define PREFIX_VEX_FC          (PREFIX_VEX_FB + 1)
-#define PREFIX_VEX_FD          (PREFIX_VEX_FC + 1)
-#define PREFIX_VEX_FE          (PREFIX_VEX_FD + 1)
-#define PREFIX_VEX_3800                (PREFIX_VEX_FE + 1)
-#define PREFIX_VEX_3801                (PREFIX_VEX_3800 + 1)
-#define PREFIX_VEX_3802                (PREFIX_VEX_3801 + 1)
-#define PREFIX_VEX_3803                (PREFIX_VEX_3802 + 1)
-#define PREFIX_VEX_3804                (PREFIX_VEX_3803 + 1)
-#define PREFIX_VEX_3805                (PREFIX_VEX_3804 + 1)
-#define PREFIX_VEX_3806                (PREFIX_VEX_3805 + 1)
-#define PREFIX_VEX_3807                (PREFIX_VEX_3806 + 1)
-#define PREFIX_VEX_3808                (PREFIX_VEX_3807 + 1)
-#define PREFIX_VEX_3809                (PREFIX_VEX_3808 + 1)
-#define PREFIX_VEX_380A                (PREFIX_VEX_3809 + 1)
-#define PREFIX_VEX_380B                (PREFIX_VEX_380A + 1)
-#define PREFIX_VEX_380C                (PREFIX_VEX_380B + 1)
-#define PREFIX_VEX_380D                (PREFIX_VEX_380C + 1)
-#define PREFIX_VEX_380E                (PREFIX_VEX_380D + 1)
-#define PREFIX_VEX_380F                (PREFIX_VEX_380E + 1)
-#define PREFIX_VEX_3817                (PREFIX_VEX_380F + 1)
-#define PREFIX_VEX_3818                (PREFIX_VEX_3817 + 1)
-#define PREFIX_VEX_3819                (PREFIX_VEX_3818 + 1)
-#define PREFIX_VEX_381A                (PREFIX_VEX_3819 + 1)
-#define PREFIX_VEX_381C                (PREFIX_VEX_381A + 1)
-#define PREFIX_VEX_381D                (PREFIX_VEX_381C + 1)
-#define PREFIX_VEX_381E                (PREFIX_VEX_381D + 1)
-#define PREFIX_VEX_3820                (PREFIX_VEX_381E + 1)
-#define PREFIX_VEX_3821                (PREFIX_VEX_3820 + 1)
-#define PREFIX_VEX_3822                (PREFIX_VEX_3821 + 1)
-#define PREFIX_VEX_3823                (PREFIX_VEX_3822 + 1)
-#define PREFIX_VEX_3824                (PREFIX_VEX_3823 + 1)
-#define PREFIX_VEX_3825                (PREFIX_VEX_3824 + 1)
-#define PREFIX_VEX_3828                (PREFIX_VEX_3825 + 1)
-#define PREFIX_VEX_3829                (PREFIX_VEX_3828 + 1)
-#define PREFIX_VEX_382A                (PREFIX_VEX_3829 + 1)
-#define PREFIX_VEX_382B                (PREFIX_VEX_382A + 1)
-#define PREFIX_VEX_382C                (PREFIX_VEX_382B + 1)
-#define PREFIX_VEX_382D                (PREFIX_VEX_382C + 1)
-#define PREFIX_VEX_382E                (PREFIX_VEX_382D + 1)
-#define PREFIX_VEX_382F                (PREFIX_VEX_382E + 1)
-#define PREFIX_VEX_3830                (PREFIX_VEX_382F + 1)
-#define PREFIX_VEX_3831                (PREFIX_VEX_3830 + 1)
-#define PREFIX_VEX_3832                (PREFIX_VEX_3831 + 1)
-#define PREFIX_VEX_3833                (PREFIX_VEX_3832 + 1)
-#define PREFIX_VEX_3834                (PREFIX_VEX_3833 + 1)
-#define PREFIX_VEX_3835                (PREFIX_VEX_3834 + 1)
-#define PREFIX_VEX_3837                (PREFIX_VEX_3835 + 1)
-#define PREFIX_VEX_3838                (PREFIX_VEX_3837 + 1)
-#define PREFIX_VEX_3839                (PREFIX_VEX_3838 + 1)
-#define PREFIX_VEX_383A                (PREFIX_VEX_3839 + 1)
-#define PREFIX_VEX_383B                (PREFIX_VEX_383A + 1)
-#define PREFIX_VEX_383C                (PREFIX_VEX_383B + 1)
-#define PREFIX_VEX_383D                (PREFIX_VEX_383C + 1)
-#define PREFIX_VEX_383E                (PREFIX_VEX_383D + 1)
-#define PREFIX_VEX_383F                (PREFIX_VEX_383E + 1)
-#define PREFIX_VEX_3840                (PREFIX_VEX_383F + 1)
-#define PREFIX_VEX_3841                (PREFIX_VEX_3840 + 1)
-#define PREFIX_VEX_3896                (PREFIX_VEX_3841 + 1)
-#define PREFIX_VEX_3897                (PREFIX_VEX_3896 + 1)
-#define PREFIX_VEX_3898                (PREFIX_VEX_3897 + 1)
-#define PREFIX_VEX_3899                (PREFIX_VEX_3898 + 1)
-#define PREFIX_VEX_389A                (PREFIX_VEX_3899 + 1)
-#define PREFIX_VEX_389B                (PREFIX_VEX_389A + 1)
-#define PREFIX_VEX_389C                (PREFIX_VEX_389B + 1)
-#define PREFIX_VEX_389D                (PREFIX_VEX_389C + 1)
-#define PREFIX_VEX_389E                (PREFIX_VEX_389D + 1)
-#define PREFIX_VEX_389F                (PREFIX_VEX_389E + 1)
-#define PREFIX_VEX_38A6                (PREFIX_VEX_389F + 1)
-#define PREFIX_VEX_38A7                (PREFIX_VEX_38A6 + 1)
-#define PREFIX_VEX_38A8                (PREFIX_VEX_38A7 + 1)
-#define PREFIX_VEX_38A9                (PREFIX_VEX_38A8 + 1)
-#define PREFIX_VEX_38AA                (PREFIX_VEX_38A9 + 1)
-#define PREFIX_VEX_38AB                (PREFIX_VEX_38AA + 1)
-#define PREFIX_VEX_38AC                (PREFIX_VEX_38AB + 1)
-#define PREFIX_VEX_38AD                (PREFIX_VEX_38AC + 1)
-#define PREFIX_VEX_38AE                (PREFIX_VEX_38AD + 1)
-#define PREFIX_VEX_38AF                (PREFIX_VEX_38AE + 1)
-#define PREFIX_VEX_38B6                (PREFIX_VEX_38AF + 1)
-#define PREFIX_VEX_38B7                (PREFIX_VEX_38B6 + 1)
-#define PREFIX_VEX_38B8                (PREFIX_VEX_38B7 + 1)
-#define PREFIX_VEX_38B9                (PREFIX_VEX_38B8 + 1)
-#define PREFIX_VEX_38BA                (PREFIX_VEX_38B9 + 1)
-#define PREFIX_VEX_38BB                (PREFIX_VEX_38BA + 1)
-#define PREFIX_VEX_38BC                (PREFIX_VEX_38BB + 1)
-#define PREFIX_VEX_38BD                (PREFIX_VEX_38BC + 1)
-#define PREFIX_VEX_38BE                (PREFIX_VEX_38BD + 1)
-#define PREFIX_VEX_38BF                (PREFIX_VEX_38BE + 1)
-#define PREFIX_VEX_38DB                (PREFIX_VEX_38BF + 1)
-#define PREFIX_VEX_38DC                (PREFIX_VEX_38DB + 1)
-#define PREFIX_VEX_38DD                (PREFIX_VEX_38DC + 1)
-#define PREFIX_VEX_38DE                (PREFIX_VEX_38DD + 1)
-#define PREFIX_VEX_38DF                (PREFIX_VEX_38DE + 1)
-#define PREFIX_VEX_3A04                (PREFIX_VEX_38DF + 1)
-#define PREFIX_VEX_3A05                (PREFIX_VEX_3A04 + 1)
-#define PREFIX_VEX_3A06                (PREFIX_VEX_3A05 + 1)
-#define PREFIX_VEX_3A08                (PREFIX_VEX_3A06 + 1)
-#define PREFIX_VEX_3A09                (PREFIX_VEX_3A08 + 1)
-#define PREFIX_VEX_3A0A                (PREFIX_VEX_3A09 + 1)
-#define PREFIX_VEX_3A0B                (PREFIX_VEX_3A0A + 1)
-#define PREFIX_VEX_3A0C                (PREFIX_VEX_3A0B + 1)
-#define PREFIX_VEX_3A0D                (PREFIX_VEX_3A0C + 1)
-#define PREFIX_VEX_3A0E                (PREFIX_VEX_3A0D + 1)
-#define PREFIX_VEX_3A0F                (PREFIX_VEX_3A0E + 1)
-#define PREFIX_VEX_3A14                (PREFIX_VEX_3A0F + 1)
-#define PREFIX_VEX_3A15                (PREFIX_VEX_3A14 + 1)
-#define PREFIX_VEX_3A16                (PREFIX_VEX_3A15 + 1)
-#define PREFIX_VEX_3A17                (PREFIX_VEX_3A16 + 1)
-#define PREFIX_VEX_3A18                (PREFIX_VEX_3A17 + 1)
-#define PREFIX_VEX_3A19                (PREFIX_VEX_3A18 + 1)
-#define PREFIX_VEX_3A20                (PREFIX_VEX_3A19 + 1)
-#define PREFIX_VEX_3A21                (PREFIX_VEX_3A20 + 1)
-#define PREFIX_VEX_3A22                (PREFIX_VEX_3A21 + 1)
-#define PREFIX_VEX_3A40                (PREFIX_VEX_3A22 + 1)
-#define PREFIX_VEX_3A41                (PREFIX_VEX_3A40 + 1)
-#define PREFIX_VEX_3A42                (PREFIX_VEX_3A41 + 1)
-#define PREFIX_VEX_3A44                (PREFIX_VEX_3A42 + 1)
-#define PREFIX_VEX_3A4A                (PREFIX_VEX_3A44 + 1)
-#define PREFIX_VEX_3A4B                (PREFIX_VEX_3A4A + 1)
-#define PREFIX_VEX_3A4C                (PREFIX_VEX_3A4B + 1)
-#define PREFIX_VEX_3A5C                (PREFIX_VEX_3A4C + 1)
-#define PREFIX_VEX_3A5D                (PREFIX_VEX_3A5C + 1)
-#define PREFIX_VEX_3A5E                (PREFIX_VEX_3A5D + 1)
-#define PREFIX_VEX_3A5F                (PREFIX_VEX_3A5E + 1)
-#define PREFIX_VEX_3A60                (PREFIX_VEX_3A5F + 1)
-#define PREFIX_VEX_3A61                (PREFIX_VEX_3A60 + 1)
-#define PREFIX_VEX_3A62                (PREFIX_VEX_3A61 + 1)
-#define PREFIX_VEX_3A63                (PREFIX_VEX_3A62 + 1)
-#define PREFIX_VEX_3A68                (PREFIX_VEX_3A63 + 1)
-#define PREFIX_VEX_3A69                (PREFIX_VEX_3A68 + 1)
-#define PREFIX_VEX_3A6A                (PREFIX_VEX_3A69 + 1)
-#define PREFIX_VEX_3A6B                (PREFIX_VEX_3A6A + 1)
-#define PREFIX_VEX_3A6C                (PREFIX_VEX_3A6B + 1)
-#define PREFIX_VEX_3A6D                (PREFIX_VEX_3A6C + 1)
-#define PREFIX_VEX_3A6E                (PREFIX_VEX_3A6D + 1)
-#define PREFIX_VEX_3A6F                (PREFIX_VEX_3A6E + 1)
-#define PREFIX_VEX_3A78                (PREFIX_VEX_3A6F + 1)
-#define PREFIX_VEX_3A79                (PREFIX_VEX_3A78 + 1)
-#define PREFIX_VEX_3A7A                (PREFIX_VEX_3A79 + 1)
-#define PREFIX_VEX_3A7B                (PREFIX_VEX_3A7A + 1)
-#define PREFIX_VEX_3A7C                (PREFIX_VEX_3A7B + 1)
-#define PREFIX_VEX_3A7D                (PREFIX_VEX_3A7C + 1)
-#define PREFIX_VEX_3A7E                (PREFIX_VEX_3A7D + 1)
-#define PREFIX_VEX_3A7F                (PREFIX_VEX_3A7E + 1)
-#define PREFIX_VEX_3ADF                (PREFIX_VEX_3A7F + 1)
-
-#define X86_64_06              0
-#define X86_64_07              (X86_64_06 + 1)
-#define X86_64_0D              (X86_64_07 + 1)
-#define X86_64_16              (X86_64_0D + 1)
-#define X86_64_17              (X86_64_16 + 1)
-#define X86_64_1E              (X86_64_17 + 1)
-#define X86_64_1F              (X86_64_1E + 1)
-#define X86_64_27              (X86_64_1F + 1)
-#define X86_64_2F              (X86_64_27 + 1)
-#define X86_64_37              (X86_64_2F + 1)
-#define X86_64_3F              (X86_64_37 + 1)
-#define X86_64_60              (X86_64_3F + 1)
-#define X86_64_61              (X86_64_60 + 1)
-#define X86_64_62              (X86_64_61 + 1)
-#define X86_64_63              (X86_64_62 + 1)
-#define X86_64_6D              (X86_64_63 + 1)
-#define X86_64_6F              (X86_64_6D + 1)
-#define X86_64_9A              (X86_64_6F + 1)
-#define X86_64_C4              (X86_64_9A + 1)
-#define X86_64_C5              (X86_64_C4 + 1)
-#define X86_64_CE              (X86_64_C5 + 1)
-#define X86_64_D4              (X86_64_CE + 1)
-#define X86_64_D5              (X86_64_D4 + 1)
-#define X86_64_EA              (X86_64_D5 + 1)
-#define X86_64_0F01_REG_0      (X86_64_EA + 1)
-#define X86_64_0F01_REG_1      (X86_64_0F01_REG_0 + 1)
-#define X86_64_0F01_REG_2      (X86_64_0F01_REG_1 + 1)
-#define X86_64_0F01_REG_3      (X86_64_0F01_REG_2 + 1)
-
-#define THREE_BYTE_0F38                0
-#define THREE_BYTE_0F3A                (THREE_BYTE_0F38 + 1)
-#define THREE_BYTE_0F7A                (THREE_BYTE_0F3A + 1)
-
-#define VEX_0F                 0
-#define VEX_0F38               (VEX_0F + 1)
-#define VEX_0F3A               (VEX_0F38 + 1)
-
-#define VEX_LEN_10_P_1 0
-#define VEX_LEN_10_P_3 (VEX_LEN_10_P_1 + 1)
-#define VEX_LEN_11_P_1 (VEX_LEN_10_P_3 + 1)
-#define VEX_LEN_11_P_3 (VEX_LEN_11_P_1 + 1)
-#define VEX_LEN_12_P_0_M_0     (VEX_LEN_11_P_3 + 1)
-#define VEX_LEN_12_P_0_M_1     (VEX_LEN_12_P_0_M_0 + 1)
-#define VEX_LEN_12_P_2 (VEX_LEN_12_P_0_M_1 + 1)
-#define VEX_LEN_13_M_0 (VEX_LEN_12_P_2 + 1)
-#define VEX_LEN_16_P_0_M_0     (VEX_LEN_13_M_0 + 1)
-#define VEX_LEN_16_P_0_M_1     (VEX_LEN_16_P_0_M_0 + 1)
-#define VEX_LEN_16_P_2 (VEX_LEN_16_P_0_M_1 + 1)
-#define VEX_LEN_17_M_0 (VEX_LEN_16_P_2 + 1)
-#define VEX_LEN_2A_P_1 (VEX_LEN_17_M_0 + 1)
-#define VEX_LEN_2A_P_3 (VEX_LEN_2A_P_1 + 1)
-#define VEX_LEN_2C_P_1 (VEX_LEN_2A_P_3 + 1)
-#define VEX_LEN_2C_P_3 (VEX_LEN_2C_P_1 + 1)
-#define VEX_LEN_2D_P_1 (VEX_LEN_2C_P_3 + 1)
-#define VEX_LEN_2D_P_3 (VEX_LEN_2D_P_1 + 1)
-#define VEX_LEN_2E_P_0 (VEX_LEN_2D_P_3 + 1)
-#define VEX_LEN_2E_P_2 (VEX_LEN_2E_P_0 + 1)
-#define VEX_LEN_2F_P_0 (VEX_LEN_2E_P_2 + 1)
-#define VEX_LEN_2F_P_2 (VEX_LEN_2F_P_0 + 1)
-#define VEX_LEN_51_P_1 (VEX_LEN_2F_P_2 + 1)
-#define VEX_LEN_51_P_3 (VEX_LEN_51_P_1 + 1)
-#define VEX_LEN_52_P_1 (VEX_LEN_51_P_3 + 1)
-#define VEX_LEN_53_P_1 (VEX_LEN_52_P_1 + 1)
-#define VEX_LEN_58_P_1 (VEX_LEN_53_P_1 + 1)
-#define VEX_LEN_58_P_3 (VEX_LEN_58_P_1 + 1)
-#define VEX_LEN_59_P_1 (VEX_LEN_58_P_3 + 1)
-#define VEX_LEN_59_P_3 (VEX_LEN_59_P_1 + 1)
-#define VEX_LEN_5A_P_1 (VEX_LEN_59_P_3 + 1)
-#define VEX_LEN_5A_P_3 (VEX_LEN_5A_P_1 + 1)
-#define VEX_LEN_5C_P_1 (VEX_LEN_5A_P_3 + 1)
-#define VEX_LEN_5C_P_3 (VEX_LEN_5C_P_1 + 1)
-#define VEX_LEN_5D_P_1 (VEX_LEN_5C_P_3 + 1)
-#define VEX_LEN_5D_P_3 (VEX_LEN_5D_P_1 + 1)
-#define VEX_LEN_5E_P_1 (VEX_LEN_5D_P_3 + 1)
-#define VEX_LEN_5E_P_3 (VEX_LEN_5E_P_1 + 1)
-#define VEX_LEN_5F_P_1 (VEX_LEN_5E_P_3 + 1)
-#define VEX_LEN_5F_P_3 (VEX_LEN_5F_P_1 + 1)
-#define VEX_LEN_60_P_2 (VEX_LEN_5F_P_3 + 1)
-#define VEX_LEN_61_P_2 (VEX_LEN_60_P_2 + 1)
-#define VEX_LEN_62_P_2 (VEX_LEN_61_P_2 + 1)
-#define VEX_LEN_63_P_2 (VEX_LEN_62_P_2 + 1)
-#define VEX_LEN_64_P_2 (VEX_LEN_63_P_2 + 1)
-#define VEX_LEN_65_P_2 (VEX_LEN_64_P_2 + 1)
-#define VEX_LEN_66_P_2 (VEX_LEN_65_P_2 + 1)
-#define VEX_LEN_67_P_2 (VEX_LEN_66_P_2 + 1)
-#define VEX_LEN_68_P_2 (VEX_LEN_67_P_2 + 1)
-#define VEX_LEN_69_P_2 (VEX_LEN_68_P_2 + 1)
-#define VEX_LEN_6A_P_2 (VEX_LEN_69_P_2 + 1)
-#define VEX_LEN_6B_P_2 (VEX_LEN_6A_P_2 + 1)
-#define VEX_LEN_6C_P_2 (VEX_LEN_6B_P_2 + 1)
-#define VEX_LEN_6D_P_2 (VEX_LEN_6C_P_2 + 1)
-#define VEX_LEN_6E_P_2 (VEX_LEN_6D_P_2 + 1)
-#define VEX_LEN_70_P_1 (VEX_LEN_6E_P_2 + 1)
-#define VEX_LEN_70_P_2 (VEX_LEN_70_P_1 + 1)
-#define VEX_LEN_70_P_3 (VEX_LEN_70_P_2 + 1)
-#define VEX_LEN_71_R_2_P_2     (VEX_LEN_70_P_3 + 1)
-#define VEX_LEN_71_R_4_P_2     (VEX_LEN_71_R_2_P_2 + 1)
-#define VEX_LEN_71_R_6_P_2     (VEX_LEN_71_R_4_P_2 + 1)
-#define VEX_LEN_72_R_2_P_2     (VEX_LEN_71_R_6_P_2 + 1)
-#define VEX_LEN_72_R_4_P_2     (VEX_LEN_72_R_2_P_2 + 1)
-#define VEX_LEN_72_R_6_P_2     (VEX_LEN_72_R_4_P_2 + 1)
-#define VEX_LEN_73_R_2_P_2     (VEX_LEN_72_R_6_P_2 + 1)
-#define VEX_LEN_73_R_3_P_2     (VEX_LEN_73_R_2_P_2 + 1)
-#define VEX_LEN_73_R_6_P_2     (VEX_LEN_73_R_3_P_2 + 1)
-#define VEX_LEN_73_R_7_P_2     (VEX_LEN_73_R_6_P_2 + 1)
-#define VEX_LEN_74_P_2 (VEX_LEN_73_R_7_P_2 + 1)
-#define VEX_LEN_75_P_2 (VEX_LEN_74_P_2 + 1)
-#define VEX_LEN_76_P_2 (VEX_LEN_75_P_2 + 1)
-#define VEX_LEN_7E_P_1 (VEX_LEN_76_P_2 + 1)
-#define VEX_LEN_7E_P_2 (VEX_LEN_7E_P_1 + 1)
-#define VEX_LEN_AE_R_2_M_0     (VEX_LEN_7E_P_2 + 1)
-#define VEX_LEN_AE_R_3_M_0     (VEX_LEN_AE_R_2_M_0 + 1)
-#define VEX_LEN_C2_P_1 (VEX_LEN_AE_R_3_M_0 + 1)
-#define VEX_LEN_C2_P_3 (VEX_LEN_C2_P_1 + 1)
-#define VEX_LEN_C4_P_2 (VEX_LEN_C2_P_3 + 1)
-#define VEX_LEN_C5_P_2 (VEX_LEN_C4_P_2 + 1)
-#define VEX_LEN_D1_P_2 (VEX_LEN_C5_P_2 + 1)
-#define VEX_LEN_D2_P_2 (VEX_LEN_D1_P_2 + 1)
-#define VEX_LEN_D3_P_2 (VEX_LEN_D2_P_2 + 1)
-#define VEX_LEN_D4_P_2 (VEX_LEN_D3_P_2 + 1)
-#define VEX_LEN_D5_P_2 (VEX_LEN_D4_P_2 + 1)
-#define VEX_LEN_D6_P_2 (VEX_LEN_D5_P_2 + 1)
-#define VEX_LEN_D7_P_2_M_1     (VEX_LEN_D6_P_2 + 1)
-#define VEX_LEN_D8_P_2 (VEX_LEN_D7_P_2_M_1 + 1)
-#define VEX_LEN_D9_P_2 (VEX_LEN_D8_P_2 + 1)
-#define VEX_LEN_DA_P_2 (VEX_LEN_D9_P_2 + 1)
-#define VEX_LEN_DB_P_2 (VEX_LEN_DA_P_2 + 1)
-#define VEX_LEN_DC_P_2 (VEX_LEN_DB_P_2 + 1)
-#define VEX_LEN_DD_P_2 (VEX_LEN_DC_P_2 + 1)
-#define VEX_LEN_DE_P_2 (VEX_LEN_DD_P_2 + 1)
-#define VEX_LEN_DF_P_2 (VEX_LEN_DE_P_2 + 1)
-#define VEX_LEN_E0_P_2 (VEX_LEN_DF_P_2 + 1)
-#define VEX_LEN_E1_P_2 (VEX_LEN_E0_P_2 + 1)
-#define VEX_LEN_E2_P_2 (VEX_LEN_E1_P_2 + 1)
-#define VEX_LEN_E3_P_2 (VEX_LEN_E2_P_2 + 1)
-#define VEX_LEN_E4_P_2 (VEX_LEN_E3_P_2 + 1)
-#define VEX_LEN_E5_P_2 (VEX_LEN_E4_P_2 + 1)
-#define VEX_LEN_E8_P_2 (VEX_LEN_E5_P_2 + 1)
-#define VEX_LEN_E9_P_2 (VEX_LEN_E8_P_2 + 1)
-#define VEX_LEN_EA_P_2 (VEX_LEN_E9_P_2 + 1)
-#define VEX_LEN_EB_P_2 (VEX_LEN_EA_P_2 + 1)
-#define VEX_LEN_EC_P_2 (VEX_LEN_EB_P_2 + 1)
-#define VEX_LEN_ED_P_2 (VEX_LEN_EC_P_2 + 1)
-#define VEX_LEN_EE_P_2 (VEX_LEN_ED_P_2 + 1)
-#define VEX_LEN_EF_P_2 (VEX_LEN_EE_P_2 + 1)
-#define VEX_LEN_F1_P_2 (VEX_LEN_EF_P_2 + 1)
-#define VEX_LEN_F2_P_2 (VEX_LEN_F1_P_2 + 1)
-#define VEX_LEN_F3_P_2 (VEX_LEN_F2_P_2 + 1)
-#define VEX_LEN_F4_P_2 (VEX_LEN_F3_P_2 + 1)
-#define VEX_LEN_F5_P_2 (VEX_LEN_F4_P_2 + 1)
-#define VEX_LEN_F6_P_2 (VEX_LEN_F5_P_2 + 1)
-#define VEX_LEN_F7_P_2 (VEX_LEN_F6_P_2 + 1)
-#define VEX_LEN_F8_P_2 (VEX_LEN_F7_P_2 + 1)
-#define VEX_LEN_F9_P_2 (VEX_LEN_F8_P_2 + 1)
-#define VEX_LEN_FA_P_2 (VEX_LEN_F9_P_2 + 1)
-#define VEX_LEN_FB_P_2 (VEX_LEN_FA_P_2 + 1)
-#define VEX_LEN_FC_P_2 (VEX_LEN_FB_P_2 + 1)
-#define VEX_LEN_FD_P_2 (VEX_LEN_FC_P_2 + 1)
-#define VEX_LEN_FE_P_2 (VEX_LEN_FD_P_2 + 1)
-#define VEX_LEN_3800_P_2       (VEX_LEN_FE_P_2 + 1)
-#define VEX_LEN_3801_P_2       (VEX_LEN_3800_P_2 + 1)
-#define VEX_LEN_3802_P_2       (VEX_LEN_3801_P_2 + 1)
-#define VEX_LEN_3803_P_2       (VEX_LEN_3802_P_2 + 1)
-#define VEX_LEN_3804_P_2       (VEX_LEN_3803_P_2 + 1)
-#define VEX_LEN_3805_P_2       (VEX_LEN_3804_P_2 + 1)
-#define VEX_LEN_3806_P_2       (VEX_LEN_3805_P_2 + 1)
-#define VEX_LEN_3807_P_2       (VEX_LEN_3806_P_2 + 1)
-#define VEX_LEN_3808_P_2       (VEX_LEN_3807_P_2 + 1)
-#define VEX_LEN_3809_P_2       (VEX_LEN_3808_P_2 + 1)
-#define VEX_LEN_380A_P_2       (VEX_LEN_3809_P_2 + 1)
-#define VEX_LEN_380B_P_2       (VEX_LEN_380A_P_2 + 1)
-#define VEX_LEN_3819_P_2_M_0   (VEX_LEN_380B_P_2 + 1)
-#define VEX_LEN_381A_P_2_M_0   (VEX_LEN_3819_P_2_M_0 + 1)
-#define VEX_LEN_381C_P_2       (VEX_LEN_381A_P_2_M_0 + 1)
-#define VEX_LEN_381D_P_2       (VEX_LEN_381C_P_2 + 1)
-#define VEX_LEN_381E_P_2       (VEX_LEN_381D_P_2 + 1)
-#define VEX_LEN_3820_P_2       (VEX_LEN_381E_P_2 + 1)
-#define VEX_LEN_3821_P_2       (VEX_LEN_3820_P_2 + 1)
-#define VEX_LEN_3822_P_2       (VEX_LEN_3821_P_2 + 1)
-#define VEX_LEN_3823_P_2       (VEX_LEN_3822_P_2 + 1)
-#define VEX_LEN_3824_P_2       (VEX_LEN_3823_P_2 + 1)
-#define VEX_LEN_3825_P_2       (VEX_LEN_3824_P_2 + 1)
-#define VEX_LEN_3828_P_2       (VEX_LEN_3825_P_2 + 1)
-#define VEX_LEN_3829_P_2       (VEX_LEN_3828_P_2 + 1)
-#define VEX_LEN_382A_P_2_M_0   (VEX_LEN_3829_P_2 + 1)
-#define VEX_LEN_382B_P_2       (VEX_LEN_382A_P_2_M_0 + 1)
-#define VEX_LEN_3830_P_2       (VEX_LEN_382B_P_2 + 1)
-#define VEX_LEN_3831_P_2       (VEX_LEN_3830_P_2 + 1)
-#define VEX_LEN_3832_P_2       (VEX_LEN_3831_P_2 + 1)
-#define VEX_LEN_3833_P_2       (VEX_LEN_3832_P_2 + 1)
-#define VEX_LEN_3834_P_2       (VEX_LEN_3833_P_2 + 1)
-#define VEX_LEN_3835_P_2       (VEX_LEN_3834_P_2 + 1)
-#define VEX_LEN_3837_P_2       (VEX_LEN_3835_P_2 + 1)
-#define VEX_LEN_3838_P_2       (VEX_LEN_3837_P_2 + 1)
-#define VEX_LEN_3839_P_2       (VEX_LEN_3838_P_2 + 1)
-#define VEX_LEN_383A_P_2       (VEX_LEN_3839_P_2 + 1)
-#define VEX_LEN_383B_P_2       (VEX_LEN_383A_P_2 + 1)
-#define VEX_LEN_383C_P_2       (VEX_LEN_383B_P_2 + 1)
-#define VEX_LEN_383D_P_2       (VEX_LEN_383C_P_2 + 1)
-#define VEX_LEN_383E_P_2       (VEX_LEN_383D_P_2 + 1)
-#define VEX_LEN_383F_P_2       (VEX_LEN_383E_P_2 + 1)
-#define VEX_LEN_3840_P_2       (VEX_LEN_383F_P_2 + 1)
-#define VEX_LEN_3841_P_2       (VEX_LEN_3840_P_2 + 1)
-#define VEX_LEN_38DB_P_2       (VEX_LEN_3841_P_2 + 1)
-#define VEX_LEN_38DC_P_2       (VEX_LEN_38DB_P_2 + 1)
-#define VEX_LEN_38DD_P_2       (VEX_LEN_38DC_P_2 + 1)
-#define VEX_LEN_38DE_P_2       (VEX_LEN_38DD_P_2 + 1)
-#define VEX_LEN_38DF_P_2       (VEX_LEN_38DE_P_2 + 1)
-#define VEX_LEN_3A06_P_2       (VEX_LEN_38DF_P_2 + 1)
-#define VEX_LEN_3A0A_P_2       (VEX_LEN_3A06_P_2 + 1)
-#define VEX_LEN_3A0B_P_2       (VEX_LEN_3A0A_P_2 + 1)
-#define VEX_LEN_3A0E_P_2       (VEX_LEN_3A0B_P_2 + 1)
-#define VEX_LEN_3A0F_P_2       (VEX_LEN_3A0E_P_2 + 1)
-#define VEX_LEN_3A14_P_2       (VEX_LEN_3A0F_P_2 + 1)
-#define VEX_LEN_3A15_P_2       (VEX_LEN_3A14_P_2 + 1)
-#define VEX_LEN_3A16_P_2       (VEX_LEN_3A15_P_2 + 1)
-#define VEX_LEN_3A17_P_2       (VEX_LEN_3A16_P_2 + 1)
-#define VEX_LEN_3A18_P_2       (VEX_LEN_3A17_P_2 + 1)
-#define VEX_LEN_3A19_P_2       (VEX_LEN_3A18_P_2 + 1)
-#define VEX_LEN_3A20_P_2       (VEX_LEN_3A19_P_2 + 1)
-#define VEX_LEN_3A21_P_2       (VEX_LEN_3A20_P_2 + 1)
-#define VEX_LEN_3A22_P_2       (VEX_LEN_3A21_P_2 + 1)
-#define VEX_LEN_3A41_P_2       (VEX_LEN_3A22_P_2 + 1)
-#define VEX_LEN_3A42_P_2       (VEX_LEN_3A41_P_2 + 1)
-#define VEX_LEN_3A44_P_2       (VEX_LEN_3A42_P_2 + 1)
-#define VEX_LEN_3A4C_P_2       (VEX_LEN_3A44_P_2 + 1)
-#define VEX_LEN_3A60_P_2       (VEX_LEN_3A4C_P_2 + 1)
-#define VEX_LEN_3A61_P_2       (VEX_LEN_3A60_P_2 + 1)
-#define VEX_LEN_3A62_P_2       (VEX_LEN_3A61_P_2 + 1)
-#define VEX_LEN_3A63_P_2       (VEX_LEN_3A62_P_2 + 1)
-#define VEX_LEN_3A6A_P_2       (VEX_LEN_3A63_P_2 + 1)
-#define VEX_LEN_3A6B_P_2       (VEX_LEN_3A6A_P_2 + 1)
-#define VEX_LEN_3A6E_P_2       (VEX_LEN_3A6B_P_2 + 1)
-#define VEX_LEN_3A6F_P_2       (VEX_LEN_3A6E_P_2 + 1)
-#define VEX_LEN_3A7A_P_2       (VEX_LEN_3A6F_P_2 + 1)
-#define VEX_LEN_3A7B_P_2       (VEX_LEN_3A7A_P_2 + 1)
-#define VEX_LEN_3A7E_P_2       (VEX_LEN_3A7B_P_2 + 1)
-#define VEX_LEN_3A7F_P_2       (VEX_LEN_3A7E_P_2 + 1)
-#define VEX_LEN_3ADF_P_2       (VEX_LEN_3A7F_P_2 + 1)
+enum
+{
+  REG_80 = 0,
+  REG_81 = REG_80 + 1,
+  REG_82 = REG_81 + 1,
+  REG_8F = REG_82 + 1,
+  REG_C0 = REG_8F + 1,
+  REG_C1 = REG_C0 + 1,
+  REG_C6 = REG_C1 + 1,
+  REG_C7 = REG_C6 + 1,
+  REG_D0 = REG_C7 + 1,
+  REG_D1 = REG_D0 + 1,
+  REG_D2 = REG_D1 + 1,
+  REG_D3 = REG_D2 + 1,
+  REG_F6 = REG_D3 + 1,
+  REG_F7 = REG_F6 + 1,
+  REG_FE = REG_F7 + 1,
+  REG_FF = REG_FE + 1,
+  REG_0F00 = REG_FF + 1,
+  REG_0F01 = REG_0F00 + 1,
+  REG_0F0D = REG_0F01 + 1,
+  REG_0F18 = REG_0F0D + 1,
+  REG_0F71 = REG_0F18 + 1,
+  REG_0F72 = REG_0F71 + 1,
+  REG_0F73 = REG_0F72 + 1,
+  REG_0FA6 = REG_0F73 + 1,
+  REG_0FA7 = REG_0FA6 + 1,
+  REG_0FAE = REG_0FA7 + 1,
+  REG_0FBA = REG_0FAE + 1,
+  REG_0FC7 = REG_0FBA + 1,
+  REG_VEX_71 = REG_0FC7 + 1,
+  REG_VEX_72 = REG_VEX_71 + 1,
+  REG_VEX_73 = REG_VEX_72 + 1,
+  REG_VEX_AE = REG_VEX_73 + 1
+};
+
+enum
+{
+  MOD_8D = 0,
+  MOD_0F01_REG_0 = MOD_8D + 1,
+  MOD_0F01_REG_1 = MOD_0F01_REG_0 + 1,
+  MOD_0F01_REG_2 = MOD_0F01_REG_1 + 1,
+  MOD_0F01_REG_3 = MOD_0F01_REG_2 + 1,
+  MOD_0F01_REG_7 = MOD_0F01_REG_3 + 1,
+  MOD_0F12_PREFIX_0 = MOD_0F01_REG_7 + 1,
+  MOD_0F13 = MOD_0F12_PREFIX_0 + 1,
+  MOD_0F16_PREFIX_0 = MOD_0F13 + 1,
+  MOD_0F17 = MOD_0F16_PREFIX_0 + 1,
+  MOD_0F18_REG_0 = MOD_0F17 + 1,
+  MOD_0F18_REG_1 = MOD_0F18_REG_0 + 1,
+  MOD_0F18_REG_2 = MOD_0F18_REG_1 + 1,
+  MOD_0F18_REG_3 = MOD_0F18_REG_2 + 1,
+  MOD_0F20 = MOD_0F18_REG_3 + 1,
+  MOD_0F21 = MOD_0F20 + 1,
+  MOD_0F22 = MOD_0F21 + 1,
+  MOD_0F23 = MOD_0F22 + 1,
+  MOD_0F24 = MOD_0F23 + 1,
+  MOD_0F26 = MOD_0F24 + 1,
+  MOD_0F2B_PREFIX_0 = MOD_0F26 + 1,
+  MOD_0F2B_PREFIX_1 = MOD_0F2B_PREFIX_0 + 1,
+  MOD_0F2B_PREFIX_2 = MOD_0F2B_PREFIX_1 + 1,
+  MOD_0F2B_PREFIX_3 = MOD_0F2B_PREFIX_2 + 1,
+  MOD_0F51 = MOD_0F2B_PREFIX_3 + 1,
+  MOD_0F71_REG_2 = MOD_0F51 + 1,
+  MOD_0F71_REG_4 = MOD_0F71_REG_2 + 1,
+  MOD_0F71_REG_6 = MOD_0F71_REG_4 + 1,
+  MOD_0F72_REG_2 = MOD_0F71_REG_6 + 1,
+  MOD_0F72_REG_4 = MOD_0F72_REG_2 + 1,
+  MOD_0F72_REG_6 = MOD_0F72_REG_4 + 1,
+  MOD_0F73_REG_2 = MOD_0F72_REG_6 + 1,
+  MOD_0F73_REG_3 = MOD_0F73_REG_2 + 1,
+  MOD_0F73_REG_6 = MOD_0F73_REG_3 + 1,
+  MOD_0F73_REG_7 = MOD_0F73_REG_6 + 1,
+  MOD_0FAE_REG_0 = MOD_0F73_REG_7 + 1,
+  MOD_0FAE_REG_1 = MOD_0FAE_REG_0 + 1,
+  MOD_0FAE_REG_2 = MOD_0FAE_REG_1 + 1,
+  MOD_0FAE_REG_3 = MOD_0FAE_REG_2 + 1,
+  MOD_0FAE_REG_4 = MOD_0FAE_REG_3 + 1,
+  MOD_0FAE_REG_5 = MOD_0FAE_REG_4 + 1,
+  MOD_0FAE_REG_6 = MOD_0FAE_REG_5 + 1,
+  MOD_0FAE_REG_7 = MOD_0FAE_REG_6 + 1,
+  MOD_0FB2 = MOD_0FAE_REG_7 + 1,
+  MOD_0FB4 = MOD_0FB2 + 1,
+  MOD_0FB5 = MOD_0FB4 + 1,
+  MOD_0FC7_REG_6 = MOD_0FB5 + 1,
+  MOD_0FC7_REG_7 = MOD_0FC7_REG_6 + 1,
+  MOD_0FD7 = MOD_0FC7_REG_7 + 1,
+  MOD_0FE7_PREFIX_2 = MOD_0FD7 + 1,
+  MOD_0FF0_PREFIX_3 = MOD_0FE7_PREFIX_2 + 1,
+  MOD_0F382A_PREFIX_2 = MOD_0FF0_PREFIX_3 + 1,
+  MOD_62_32BIT = MOD_0F382A_PREFIX_2 + 1,
+  MOD_C4_32BIT = MOD_62_32BIT + 1,
+  MOD_C5_32BIT = MOD_C4_32BIT + 1,
+  MOD_VEX_12_PREFIX_0 = MOD_C5_32BIT + 1,
+  MOD_VEX_13 = MOD_VEX_12_PREFIX_0 + 1,
+  MOD_VEX_16_PREFIX_0 = MOD_VEX_13 + 1,
+  MOD_VEX_17 = MOD_VEX_16_PREFIX_0 + 1,
+  MOD_VEX_2B = MOD_VEX_17 + 1,
+  MOD_VEX_51 = MOD_VEX_2B + 1,
+  MOD_VEX_71_REG_2 = MOD_VEX_51 + 1,
+  MOD_VEX_71_REG_4 = MOD_VEX_71_REG_2 + 1,
+  MOD_VEX_71_REG_6 = MOD_VEX_71_REG_4 + 1,
+  MOD_VEX_72_REG_2 = MOD_VEX_71_REG_6 + 1,
+  MOD_VEX_72_REG_4 = MOD_VEX_72_REG_2 + 1,
+  MOD_VEX_72_REG_6 = MOD_VEX_72_REG_4 + 1,
+  MOD_VEX_73_REG_2 = MOD_VEX_72_REG_6 + 1,
+  MOD_VEX_73_REG_3 = MOD_VEX_73_REG_2 + 1,
+  MOD_VEX_73_REG_6 = MOD_VEX_73_REG_3 + 1,
+  MOD_VEX_73_REG_7 = MOD_VEX_73_REG_6 + 1,
+  MOD_VEX_AE_REG_2 = MOD_VEX_73_REG_7 + 1,
+  MOD_VEX_AE_REG_3 = MOD_VEX_AE_REG_2 + 1,
+  MOD_VEX_D7_PREFIX_2 = MOD_VEX_AE_REG_3 + 1,
+  MOD_VEX_E7_PREFIX_2 = MOD_VEX_D7_PREFIX_2 + 1,
+  MOD_VEX_F0_PREFIX_3 = MOD_VEX_E7_PREFIX_2 + 1,
+  MOD_VEX_3818_PREFIX_2 = MOD_VEX_F0_PREFIX_3 + 1,
+  MOD_VEX_3819_PREFIX_2 = MOD_VEX_3818_PREFIX_2 + 1,
+  MOD_VEX_381A_PREFIX_2 = MOD_VEX_3819_PREFIX_2 + 1,
+  MOD_VEX_382A_PREFIX_2 = MOD_VEX_381A_PREFIX_2 + 1,
+  MOD_VEX_382C_PREFIX_2 = MOD_VEX_382A_PREFIX_2 + 1,
+  MOD_VEX_382D_PREFIX_2 = MOD_VEX_382C_PREFIX_2 + 1,
+  MOD_VEX_382E_PREFIX_2 = MOD_VEX_382D_PREFIX_2 + 1,
+  MOD_VEX_382F_PREFIX_2 = MOD_VEX_382E_PREFIX_2 + 1
+};
+
+enum
+{
+  RM_0F01_REG_0 = 0,
+  RM_0F01_REG_1 = RM_0F01_REG_0 + 1,
+  RM_0F01_REG_2 = RM_0F01_REG_1 + 1,
+  RM_0F01_REG_3 = RM_0F01_REG_2 + 1,
+  RM_0F01_REG_7 = RM_0F01_REG_3 + 1,
+  RM_0FAE_REG_5 = RM_0F01_REG_7 + 1,
+  RM_0FAE_REG_6 = RM_0FAE_REG_5 + 1,
+  RM_0FAE_REG_7 = RM_0FAE_REG_6 + 1
+};
+
+enum
+{
+  PREFIX_90 = 0,
+  PREFIX_0F10 = PREFIX_90 + 1,
+  PREFIX_0F11 = PREFIX_0F10 + 1,
+  PREFIX_0F12 = PREFIX_0F11 + 1,
+  PREFIX_0F16 = PREFIX_0F12 + 1,
+  PREFIX_0F2A = PREFIX_0F16 + 1,
+  PREFIX_0F2B = PREFIX_0F2A + 1,
+  PREFIX_0F2C = PREFIX_0F2B + 1,
+  PREFIX_0F2D = PREFIX_0F2C + 1,
+  PREFIX_0F2E = PREFIX_0F2D + 1,
+  PREFIX_0F2F = PREFIX_0F2E + 1,
+  PREFIX_0F51 = PREFIX_0F2F + 1,
+  PREFIX_0F52 = PREFIX_0F51 + 1,
+  PREFIX_0F53 = PREFIX_0F52 + 1,
+  PREFIX_0F58 = PREFIX_0F53 + 1,
+  PREFIX_0F59 = PREFIX_0F58 + 1,
+  PREFIX_0F5A = PREFIX_0F59 + 1,
+  PREFIX_0F5B = PREFIX_0F5A + 1,
+  PREFIX_0F5C = PREFIX_0F5B + 1,
+  PREFIX_0F5D = PREFIX_0F5C + 1,
+  PREFIX_0F5E = PREFIX_0F5D + 1,
+  PREFIX_0F5F = PREFIX_0F5E + 1,
+  PREFIX_0F60 = PREFIX_0F5F + 1,
+  PREFIX_0F61 = PREFIX_0F60 + 1,
+  PREFIX_0F62 = PREFIX_0F61 + 1,
+  PREFIX_0F6C = PREFIX_0F62 + 1,
+  PREFIX_0F6D = PREFIX_0F6C + 1,
+  PREFIX_0F6F = PREFIX_0F6D + 1,
+  PREFIX_0F70 = PREFIX_0F6F + 1,
+  PREFIX_0F73_REG_3 = PREFIX_0F70 + 1,
+  PREFIX_0F73_REG_7 = PREFIX_0F73_REG_3 + 1,
+  PREFIX_0F78 = PREFIX_0F73_REG_7 + 1,
+  PREFIX_0F79 = PREFIX_0F78 + 1,
+  PREFIX_0F7C = PREFIX_0F79 + 1,
+  PREFIX_0F7D = PREFIX_0F7C + 1,
+  PREFIX_0F7E = PREFIX_0F7D + 1,
+  PREFIX_0F7F = PREFIX_0F7E + 1,
+  PREFIX_0FB8 = PREFIX_0F7F + 1,
+  PREFIX_0FBD = PREFIX_0FB8 + 1,
+  PREFIX_0FC2 = PREFIX_0FBD + 1,
+  PREFIX_0FC3 = PREFIX_0FC2 + 1,
+  PREFIX_0FC7_REG_6 = PREFIX_0FC3 + 1,
+  PREFIX_0FD0 = PREFIX_0FC7_REG_6 + 1,
+  PREFIX_0FD6 = PREFIX_0FD0 + 1,
+  PREFIX_0FE6 = PREFIX_0FD6 + 1,
+  PREFIX_0FE7 = PREFIX_0FE6 + 1,
+  PREFIX_0FF0 = PREFIX_0FE7 + 1,
+  PREFIX_0FF7 = PREFIX_0FF0 + 1,
+  PREFIX_0F3810 = PREFIX_0FF7 + 1,
+  PREFIX_0F3814 = PREFIX_0F3810 + 1,
+  PREFIX_0F3815 = PREFIX_0F3814 + 1,
+  PREFIX_0F3817 = PREFIX_0F3815 + 1,
+  PREFIX_0F3820 = PREFIX_0F3817 + 1,
+  PREFIX_0F3821 = PREFIX_0F3820 + 1,
+  PREFIX_0F3822 = PREFIX_0F3821 + 1,
+  PREFIX_0F3823 = PREFIX_0F3822 + 1,
+  PREFIX_0F3824 = PREFIX_0F3823 + 1,
+  PREFIX_0F3825 = PREFIX_0F3824 + 1,
+  PREFIX_0F3828 = PREFIX_0F3825 + 1,
+  PREFIX_0F3829 = PREFIX_0F3828 + 1,
+  PREFIX_0F382A = PREFIX_0F3829 + 1,
+  PREFIX_0F382B = PREFIX_0F382A + 1,
+  PREFIX_0F3830 = PREFIX_0F382B + 1,
+  PREFIX_0F3831 = PREFIX_0F3830 + 1,
+  PREFIX_0F3832 = PREFIX_0F3831 + 1,
+  PREFIX_0F3833 = PREFIX_0F3832 + 1,
+  PREFIX_0F3834 = PREFIX_0F3833 + 1,
+  PREFIX_0F3835 = PREFIX_0F3834 + 1,
+  PREFIX_0F3837 = PREFIX_0F3835 + 1,
+  PREFIX_0F3838 = PREFIX_0F3837 + 1,
+  PREFIX_0F3839 = PREFIX_0F3838 + 1,
+  PREFIX_0F383A = PREFIX_0F3839 + 1,
+  PREFIX_0F383B = PREFIX_0F383A + 1,
+  PREFIX_0F383C = PREFIX_0F383B + 1,
+  PREFIX_0F383D = PREFIX_0F383C + 1,
+  PREFIX_0F383E = PREFIX_0F383D + 1,
+  PREFIX_0F383F = PREFIX_0F383E + 1,
+  PREFIX_0F3840 = PREFIX_0F383F + 1,
+  PREFIX_0F3841 = PREFIX_0F3840 + 1,
+  PREFIX_0F3880 = PREFIX_0F3841 + 1,
+  PREFIX_0F3881 = PREFIX_0F3880 + 1,
+  PREFIX_0F38DB = PREFIX_0F3881 + 1,
+  PREFIX_0F38DC = PREFIX_0F38DB + 1,
+  PREFIX_0F38DD = PREFIX_0F38DC + 1,
+  PREFIX_0F38DE = PREFIX_0F38DD + 1,
+  PREFIX_0F38DF = PREFIX_0F38DE + 1,
+  PREFIX_0F38F0 = PREFIX_0F38DF + 1,
+  PREFIX_0F38F1 = PREFIX_0F38F0 + 1,
+  PREFIX_0F3A08 = PREFIX_0F38F1 + 1,
+  PREFIX_0F3A09 = PREFIX_0F3A08 + 1,
+  PREFIX_0F3A0A = PREFIX_0F3A09 + 1,
+  PREFIX_0F3A0B = PREFIX_0F3A0A + 1,
+  PREFIX_0F3A0C = PREFIX_0F3A0B + 1,
+  PREFIX_0F3A0D = PREFIX_0F3A0C + 1,
+  PREFIX_0F3A0E = PREFIX_0F3A0D + 1,
+  PREFIX_0F3A14 = PREFIX_0F3A0E + 1,
+  PREFIX_0F3A15 = PREFIX_0F3A14 + 1,
+  PREFIX_0F3A16 = PREFIX_0F3A15 + 1,
+  PREFIX_0F3A17 = PREFIX_0F3A16 + 1,
+  PREFIX_0F3A20 = PREFIX_0F3A17 + 1,
+  PREFIX_0F3A21 = PREFIX_0F3A20 + 1,
+  PREFIX_0F3A22 = PREFIX_0F3A21 + 1,
+  PREFIX_0F3A40 = PREFIX_0F3A22 + 1,
+  PREFIX_0F3A41 = PREFIX_0F3A40 + 1,
+  PREFIX_0F3A42 = PREFIX_0F3A41 + 1,
+  PREFIX_0F3A44 = PREFIX_0F3A42 + 1,
+  PREFIX_0F3A60 = PREFIX_0F3A44 + 1,
+  PREFIX_0F3A61 = PREFIX_0F3A60 + 1,
+  PREFIX_0F3A62 = PREFIX_0F3A61 + 1,
+  PREFIX_0F3A63 = PREFIX_0F3A62 + 1,
+  PREFIX_0F3ADF = PREFIX_0F3A63 + 1,
+  PREFIX_VEX_10 = PREFIX_0F3ADF + 1,
+  PREFIX_VEX_11 = PREFIX_VEX_10 + 1,
+  PREFIX_VEX_12 = PREFIX_VEX_11 + 1,
+  PREFIX_VEX_16 = PREFIX_VEX_12 + 1,
+  PREFIX_VEX_2A = PREFIX_VEX_16 + 1,
+  PREFIX_VEX_2C = PREFIX_VEX_2A + 1,
+  PREFIX_VEX_2D = PREFIX_VEX_2C + 1,
+  PREFIX_VEX_2E = PREFIX_VEX_2D + 1,
+  PREFIX_VEX_2F = PREFIX_VEX_2E + 1,
+  PREFIX_VEX_51 = PREFIX_VEX_2F + 1,
+  PREFIX_VEX_52 = PREFIX_VEX_51 + 1,
+  PREFIX_VEX_53 = PREFIX_VEX_52 + 1,
+  PREFIX_VEX_58 = PREFIX_VEX_53 + 1,
+  PREFIX_VEX_59 = PREFIX_VEX_58 + 1,
+  PREFIX_VEX_5A = PREFIX_VEX_59 + 1,
+  PREFIX_VEX_5B = PREFIX_VEX_5A + 1,
+  PREFIX_VEX_5C = PREFIX_VEX_5B + 1,
+  PREFIX_VEX_5D = PREFIX_VEX_5C + 1,
+  PREFIX_VEX_5E = PREFIX_VEX_5D + 1,
+  PREFIX_VEX_5F = PREFIX_VEX_5E + 1,
+  PREFIX_VEX_60 = PREFIX_VEX_5F + 1,
+  PREFIX_VEX_61 = PREFIX_VEX_60 + 1,
+  PREFIX_VEX_62 = PREFIX_VEX_61 + 1,
+  PREFIX_VEX_63 = PREFIX_VEX_62 + 1,
+  PREFIX_VEX_64 = PREFIX_VEX_63 + 1,
+  PREFIX_VEX_65 = PREFIX_VEX_64 + 1,
+  PREFIX_VEX_66 = PREFIX_VEX_65 + 1,
+  PREFIX_VEX_67 = PREFIX_VEX_66 + 1,
+  PREFIX_VEX_68 = PREFIX_VEX_67 + 1,
+  PREFIX_VEX_69 = PREFIX_VEX_68 + 1,
+  PREFIX_VEX_6A = PREFIX_VEX_69 + 1,
+  PREFIX_VEX_6B = PREFIX_VEX_6A + 1,
+  PREFIX_VEX_6C = PREFIX_VEX_6B + 1,
+  PREFIX_VEX_6D = PREFIX_VEX_6C + 1,
+  PREFIX_VEX_6E = PREFIX_VEX_6D + 1,
+  PREFIX_VEX_6F = PREFIX_VEX_6E + 1,
+  PREFIX_VEX_70 = PREFIX_VEX_6F + 1,
+  PREFIX_VEX_71_REG_2 = PREFIX_VEX_70 + 1,
+  PREFIX_VEX_71_REG_4 = PREFIX_VEX_71_REG_2 + 1,
+  PREFIX_VEX_71_REG_6 = PREFIX_VEX_71_REG_4 + 1,
+  PREFIX_VEX_72_REG_2 = PREFIX_VEX_71_REG_6 + 1,
+  PREFIX_VEX_72_REG_4 = PREFIX_VEX_72_REG_2 + 1,
+  PREFIX_VEX_72_REG_6 = PREFIX_VEX_72_REG_4 + 1,
+  PREFIX_VEX_73_REG_2 = PREFIX_VEX_72_REG_6 + 1,
+  PREFIX_VEX_73_REG_3 = PREFIX_VEX_73_REG_2 + 1,
+  PREFIX_VEX_73_REG_6 = PREFIX_VEX_73_REG_3 + 1,
+  PREFIX_VEX_73_REG_7 = PREFIX_VEX_73_REG_6 + 1,
+  PREFIX_VEX_74 = PREFIX_VEX_73_REG_7 + 1,
+  PREFIX_VEX_75 = PREFIX_VEX_74 + 1,
+  PREFIX_VEX_76 = PREFIX_VEX_75 + 1,
+  PREFIX_VEX_77 = PREFIX_VEX_76 + 1,
+  PREFIX_VEX_7C = PREFIX_VEX_77 + 1,
+  PREFIX_VEX_7D = PREFIX_VEX_7C + 1,
+  PREFIX_VEX_7E = PREFIX_VEX_7D + 1,
+  PREFIX_VEX_7F = PREFIX_VEX_7E + 1,
+  PREFIX_VEX_C2 = PREFIX_VEX_7F + 1,
+  PREFIX_VEX_C4 = PREFIX_VEX_C2 + 1,
+  PREFIX_VEX_C5 = PREFIX_VEX_C4 + 1,
+  PREFIX_VEX_D0 = PREFIX_VEX_C5 + 1,
+  PREFIX_VEX_D1 = PREFIX_VEX_D0 + 1,
+  PREFIX_VEX_D2 = PREFIX_VEX_D1 + 1,
+  PREFIX_VEX_D3 = PREFIX_VEX_D2 + 1,
+  PREFIX_VEX_D4 = PREFIX_VEX_D3 + 1,
+  PREFIX_VEX_D5 = PREFIX_VEX_D4 + 1,
+  PREFIX_VEX_D6 = PREFIX_VEX_D5 + 1,
+  PREFIX_VEX_D7 = PREFIX_VEX_D6 + 1,
+  PREFIX_VEX_D8 = PREFIX_VEX_D7 + 1,
+  PREFIX_VEX_D9 = PREFIX_VEX_D8 + 1,
+  PREFIX_VEX_DA = PREFIX_VEX_D9 + 1,
+  PREFIX_VEX_DB = PREFIX_VEX_DA + 1,
+  PREFIX_VEX_DC = PREFIX_VEX_DB + 1,
+  PREFIX_VEX_DD = PREFIX_VEX_DC + 1,
+  PREFIX_VEX_DE = PREFIX_VEX_DD + 1,
+  PREFIX_VEX_DF = PREFIX_VEX_DE + 1,
+  PREFIX_VEX_E0 = PREFIX_VEX_DF + 1,
+  PREFIX_VEX_E1 = PREFIX_VEX_E0 + 1,
+  PREFIX_VEX_E2 = PREFIX_VEX_E1 + 1,
+  PREFIX_VEX_E3 = PREFIX_VEX_E2 + 1,
+  PREFIX_VEX_E4 = PREFIX_VEX_E3 + 1,
+  PREFIX_VEX_E5 = PREFIX_VEX_E4 + 1,
+  PREFIX_VEX_E6 = PREFIX_VEX_E5 + 1,
+  PREFIX_VEX_E7 = PREFIX_VEX_E6 + 1,
+  PREFIX_VEX_E8 = PREFIX_VEX_E7 + 1,
+  PREFIX_VEX_E9 = PREFIX_VEX_E8 + 1,
+  PREFIX_VEX_EA = PREFIX_VEX_E9 + 1,
+  PREFIX_VEX_EB = PREFIX_VEX_EA + 1,
+  PREFIX_VEX_EC = PREFIX_VEX_EB + 1,
+  PREFIX_VEX_ED = PREFIX_VEX_EC + 1,
+  PREFIX_VEX_EE = PREFIX_VEX_ED + 1,
+  PREFIX_VEX_EF = PREFIX_VEX_EE + 1,
+  PREFIX_VEX_F0 = PREFIX_VEX_EF + 1,
+  PREFIX_VEX_F1 = PREFIX_VEX_F0 + 1,
+  PREFIX_VEX_F2 = PREFIX_VEX_F1 + 1,
+  PREFIX_VEX_F3 = PREFIX_VEX_F2 + 1,
+  PREFIX_VEX_F4 = PREFIX_VEX_F3 + 1,
+  PREFIX_VEX_F5 = PREFIX_VEX_F4 + 1,
+  PREFIX_VEX_F6 = PREFIX_VEX_F5 + 1,
+  PREFIX_VEX_F7 = PREFIX_VEX_F6 + 1,
+  PREFIX_VEX_F8 = PREFIX_VEX_F7 + 1,
+  PREFIX_VEX_F9 = PREFIX_VEX_F8 + 1,
+  PREFIX_VEX_FA = PREFIX_VEX_F9 + 1,
+  PREFIX_VEX_FB = PREFIX_VEX_FA + 1,
+  PREFIX_VEX_FC = PREFIX_VEX_FB + 1,
+  PREFIX_VEX_FD = PREFIX_VEX_FC + 1,
+  PREFIX_VEX_FE = PREFIX_VEX_FD + 1,
+  PREFIX_VEX_3800 = PREFIX_VEX_FE + 1,
+  PREFIX_VEX_3801 = PREFIX_VEX_3800 + 1,
+  PREFIX_VEX_3802 = PREFIX_VEX_3801 + 1,
+  PREFIX_VEX_3803 = PREFIX_VEX_3802 + 1,
+  PREFIX_VEX_3804 = PREFIX_VEX_3803 + 1,
+  PREFIX_VEX_3805 = PREFIX_VEX_3804 + 1,
+  PREFIX_VEX_3806 = PREFIX_VEX_3805 + 1,
+  PREFIX_VEX_3807 = PREFIX_VEX_3806 + 1,
+  PREFIX_VEX_3808 = PREFIX_VEX_3807 + 1,
+  PREFIX_VEX_3809 = PREFIX_VEX_3808 + 1,
+  PREFIX_VEX_380A = PREFIX_VEX_3809 + 1,
+  PREFIX_VEX_380B = PREFIX_VEX_380A + 1,
+  PREFIX_VEX_380C = PREFIX_VEX_380B + 1,
+  PREFIX_VEX_380D = PREFIX_VEX_380C + 1,
+  PREFIX_VEX_380E = PREFIX_VEX_380D + 1,
+  PREFIX_VEX_380F = PREFIX_VEX_380E + 1,
+  PREFIX_VEX_3817 = PREFIX_VEX_380F + 1,
+  PREFIX_VEX_3818 = PREFIX_VEX_3817 + 1,
+  PREFIX_VEX_3819 = PREFIX_VEX_3818 + 1,
+  PREFIX_VEX_381A = PREFIX_VEX_3819 + 1,
+  PREFIX_VEX_381C = PREFIX_VEX_381A + 1,
+  PREFIX_VEX_381D = PREFIX_VEX_381C + 1,
+  PREFIX_VEX_381E = PREFIX_VEX_381D + 1,
+  PREFIX_VEX_3820 = PREFIX_VEX_381E + 1,
+  PREFIX_VEX_3821 = PREFIX_VEX_3820 + 1,
+  PREFIX_VEX_3822 = PREFIX_VEX_3821 + 1,
+  PREFIX_VEX_3823 = PREFIX_VEX_3822 + 1,
+  PREFIX_VEX_3824 = PREFIX_VEX_3823 + 1,
+  PREFIX_VEX_3825 = PREFIX_VEX_3824 + 1,
+  PREFIX_VEX_3828 = PREFIX_VEX_3825 + 1,
+  PREFIX_VEX_3829 = PREFIX_VEX_3828 + 1,
+  PREFIX_VEX_382A = PREFIX_VEX_3829 + 1,
+  PREFIX_VEX_382B = PREFIX_VEX_382A + 1,
+  PREFIX_VEX_382C = PREFIX_VEX_382B + 1,
+  PREFIX_VEX_382D = PREFIX_VEX_382C + 1,
+  PREFIX_VEX_382E = PREFIX_VEX_382D + 1,
+  PREFIX_VEX_382F = PREFIX_VEX_382E + 1,
+  PREFIX_VEX_3830 = PREFIX_VEX_382F + 1,
+  PREFIX_VEX_3831 = PREFIX_VEX_3830 + 1,
+  PREFIX_VEX_3832 = PREFIX_VEX_3831 + 1,
+  PREFIX_VEX_3833 = PREFIX_VEX_3832 + 1,
+  PREFIX_VEX_3834 = PREFIX_VEX_3833 + 1,
+  PREFIX_VEX_3835 = PREFIX_VEX_3834 + 1,
+  PREFIX_VEX_3837 = PREFIX_VEX_3835 + 1,
+  PREFIX_VEX_3838 = PREFIX_VEX_3837 + 1,
+  PREFIX_VEX_3839 = PREFIX_VEX_3838 + 1,
+  PREFIX_VEX_383A = PREFIX_VEX_3839 + 1,
+  PREFIX_VEX_383B = PREFIX_VEX_383A + 1,
+  PREFIX_VEX_383C = PREFIX_VEX_383B + 1,
+  PREFIX_VEX_383D = PREFIX_VEX_383C + 1,
+  PREFIX_VEX_383E = PREFIX_VEX_383D + 1,
+  PREFIX_VEX_383F = PREFIX_VEX_383E + 1,
+  PREFIX_VEX_3840 = PREFIX_VEX_383F + 1,
+  PREFIX_VEX_3841 = PREFIX_VEX_3840 + 1,
+  PREFIX_VEX_3896 = PREFIX_VEX_3841 + 1,
+  PREFIX_VEX_3897 = PREFIX_VEX_3896 + 1,
+  PREFIX_VEX_3898 = PREFIX_VEX_3897 + 1,
+  PREFIX_VEX_3899 = PREFIX_VEX_3898 + 1,
+  PREFIX_VEX_389A = PREFIX_VEX_3899 + 1,
+  PREFIX_VEX_389B = PREFIX_VEX_389A + 1,
+  PREFIX_VEX_389C = PREFIX_VEX_389B + 1,
+  PREFIX_VEX_389D = PREFIX_VEX_389C + 1,
+  PREFIX_VEX_389E = PREFIX_VEX_389D + 1,
+  PREFIX_VEX_389F = PREFIX_VEX_389E + 1,
+  PREFIX_VEX_38A6 = PREFIX_VEX_389F + 1,
+  PREFIX_VEX_38A7 = PREFIX_VEX_38A6 + 1,
+  PREFIX_VEX_38A8 = PREFIX_VEX_38A7 + 1,
+  PREFIX_VEX_38A9 = PREFIX_VEX_38A8 + 1,
+  PREFIX_VEX_38AA = PREFIX_VEX_38A9 + 1,
+  PREFIX_VEX_38AB = PREFIX_VEX_38AA + 1,
+  PREFIX_VEX_38AC = PREFIX_VEX_38AB + 1,
+  PREFIX_VEX_38AD = PREFIX_VEX_38AC + 1,
+  PREFIX_VEX_38AE = PREFIX_VEX_38AD + 1,
+  PREFIX_VEX_38AF = PREFIX_VEX_38AE + 1,
+  PREFIX_VEX_38B6 = PREFIX_VEX_38AF + 1,
+  PREFIX_VEX_38B7 = PREFIX_VEX_38B6 + 1,
+  PREFIX_VEX_38B8 = PREFIX_VEX_38B7 + 1,
+  PREFIX_VEX_38B9 = PREFIX_VEX_38B8 + 1,
+  PREFIX_VEX_38BA = PREFIX_VEX_38B9 + 1,
+  PREFIX_VEX_38BB = PREFIX_VEX_38BA + 1,
+  PREFIX_VEX_38BC = PREFIX_VEX_38BB + 1,
+  PREFIX_VEX_38BD = PREFIX_VEX_38BC + 1,
+  PREFIX_VEX_38BE = PREFIX_VEX_38BD + 1,
+  PREFIX_VEX_38BF = PREFIX_VEX_38BE + 1,
+  PREFIX_VEX_38DB = PREFIX_VEX_38BF + 1,
+  PREFIX_VEX_38DC = PREFIX_VEX_38DB + 1,
+  PREFIX_VEX_38DD = PREFIX_VEX_38DC + 1,
+  PREFIX_VEX_38DE = PREFIX_VEX_38DD + 1,
+  PREFIX_VEX_38DF = PREFIX_VEX_38DE + 1,
+  PREFIX_VEX_3A04 = PREFIX_VEX_38DF + 1,
+  PREFIX_VEX_3A05 = PREFIX_VEX_3A04 + 1,
+  PREFIX_VEX_3A06 = PREFIX_VEX_3A05 + 1,
+  PREFIX_VEX_3A08 = PREFIX_VEX_3A06 + 1,
+  PREFIX_VEX_3A09 = PREFIX_VEX_3A08 + 1,
+  PREFIX_VEX_3A0A = PREFIX_VEX_3A09 + 1,
+  PREFIX_VEX_3A0B = PREFIX_VEX_3A0A + 1,
+  PREFIX_VEX_3A0C = PREFIX_VEX_3A0B + 1,
+  PREFIX_VEX_3A0D = PREFIX_VEX_3A0C + 1,
+  PREFIX_VEX_3A0E = PREFIX_VEX_3A0D + 1,
+  PREFIX_VEX_3A0F = PREFIX_VEX_3A0E + 1,
+  PREFIX_VEX_3A14 = PREFIX_VEX_3A0F + 1,
+  PREFIX_VEX_3A15 = PREFIX_VEX_3A14 + 1,
+  PREFIX_VEX_3A16 = PREFIX_VEX_3A15 + 1,
+  PREFIX_VEX_3A17 = PREFIX_VEX_3A16 + 1,
+  PREFIX_VEX_3A18 = PREFIX_VEX_3A17 + 1,
+  PREFIX_VEX_3A19 = PREFIX_VEX_3A18 + 1,
+  PREFIX_VEX_3A20 = PREFIX_VEX_3A19 + 1,
+  PREFIX_VEX_3A21 = PREFIX_VEX_3A20 + 1,
+  PREFIX_VEX_3A22 = PREFIX_VEX_3A21 + 1,
+  PREFIX_VEX_3A40 = PREFIX_VEX_3A22 + 1,
+  PREFIX_VEX_3A41 = PREFIX_VEX_3A40 + 1,
+  PREFIX_VEX_3A42 = PREFIX_VEX_3A41 + 1,
+  PREFIX_VEX_3A44 = PREFIX_VEX_3A42 + 1,
+  PREFIX_VEX_3A4A = PREFIX_VEX_3A44 + 1,
+  PREFIX_VEX_3A4B = PREFIX_VEX_3A4A + 1,
+  PREFIX_VEX_3A4C = PREFIX_VEX_3A4B + 1,
+  PREFIX_VEX_3A5C = PREFIX_VEX_3A4C + 1,
+  PREFIX_VEX_3A5D = PREFIX_VEX_3A5C + 1,
+  PREFIX_VEX_3A5E = PREFIX_VEX_3A5D + 1,
+  PREFIX_VEX_3A5F = PREFIX_VEX_3A5E + 1,
+  PREFIX_VEX_3A60 = PREFIX_VEX_3A5F + 1,
+  PREFIX_VEX_3A61 = PREFIX_VEX_3A60 + 1,
+  PREFIX_VEX_3A62 = PREFIX_VEX_3A61 + 1,
+  PREFIX_VEX_3A63 = PREFIX_VEX_3A62 + 1,
+  PREFIX_VEX_3A68 = PREFIX_VEX_3A63 + 1,
+  PREFIX_VEX_3A69 = PREFIX_VEX_3A68 + 1,
+  PREFIX_VEX_3A6A = PREFIX_VEX_3A69 + 1,
+  PREFIX_VEX_3A6B = PREFIX_VEX_3A6A + 1,
+  PREFIX_VEX_3A6C = PREFIX_VEX_3A6B + 1,
+  PREFIX_VEX_3A6D = PREFIX_VEX_3A6C + 1,
+  PREFIX_VEX_3A6E = PREFIX_VEX_3A6D + 1,
+  PREFIX_VEX_3A6F = PREFIX_VEX_3A6E + 1,
+  PREFIX_VEX_3A78 = PREFIX_VEX_3A6F + 1,
+  PREFIX_VEX_3A79 = PREFIX_VEX_3A78 + 1,
+  PREFIX_VEX_3A7A = PREFIX_VEX_3A79 + 1,
+  PREFIX_VEX_3A7B = PREFIX_VEX_3A7A + 1,
+  PREFIX_VEX_3A7C = PREFIX_VEX_3A7B + 1,
+  PREFIX_VEX_3A7D = PREFIX_VEX_3A7C + 1,
+  PREFIX_VEX_3A7E = PREFIX_VEX_3A7D + 1,
+  PREFIX_VEX_3A7F = PREFIX_VEX_3A7E + 1,
+  PREFIX_VEX_3ADF = PREFIX_VEX_3A7F + 1
+};
+
+enum
+{
+  X86_64_06 = 0,
+  X86_64_07 = X86_64_06 + 1,
+  X86_64_0D = X86_64_07 + 1,
+  X86_64_16 = X86_64_0D + 1,
+  X86_64_17 = X86_64_16 + 1,
+  X86_64_1E = X86_64_17 + 1,
+  X86_64_1F = X86_64_1E + 1,
+  X86_64_27 = X86_64_1F + 1,
+  X86_64_2F = X86_64_27 + 1,
+  X86_64_37 = X86_64_2F + 1,
+  X86_64_3F = X86_64_37 + 1,
+  X86_64_60 = X86_64_3F + 1,
+  X86_64_61 = X86_64_60 + 1,
+  X86_64_62 = X86_64_61 + 1,
+  X86_64_63 = X86_64_62 + 1,
+  X86_64_6D = X86_64_63 + 1,
+  X86_64_6F = X86_64_6D + 1,
+  X86_64_9A = X86_64_6F + 1,
+  X86_64_C4 = X86_64_9A + 1,
+  X86_64_C5 = X86_64_C4 + 1,
+  X86_64_CE = X86_64_C5 + 1,
+  X86_64_D4 = X86_64_CE + 1,
+  X86_64_D5 = X86_64_D4 + 1,
+  X86_64_EA = X86_64_D5 + 1,
+  X86_64_0F01_REG_0 = X86_64_EA + 1,
+  X86_64_0F01_REG_1 = X86_64_0F01_REG_0 + 1,
+  X86_64_0F01_REG_2 = X86_64_0F01_REG_1 + 1,
+  X86_64_0F01_REG_3 = X86_64_0F01_REG_2 + 1
+};
+
+enum
+{
+  THREE_BYTE_0F38 = 0,
+  THREE_BYTE_0F3A = THREE_BYTE_0F38 + 1,
+  THREE_BYTE_0F7A = THREE_BYTE_0F3A + 1
+};
+
+enum
+{
+  VEX_0F = 0,
+  VEX_0F38 = VEX_0F + 1,
+  VEX_0F3A = VEX_0F38 + 1
+};
+
+enum
+{
+  VEX_LEN_10_P_1 = 0,
+  VEX_LEN_10_P_3 = VEX_LEN_10_P_1 + 1,
+  VEX_LEN_11_P_1 = VEX_LEN_10_P_3 + 1,
+  VEX_LEN_11_P_3 = VEX_LEN_11_P_1 + 1,
+  VEX_LEN_12_P_0_M_0 = VEX_LEN_11_P_3 + 1,
+  VEX_LEN_12_P_0_M_1 = VEX_LEN_12_P_0_M_0 + 1,
+  VEX_LEN_12_P_2 = VEX_LEN_12_P_0_M_1 + 1,
+  VEX_LEN_13_M_0 = VEX_LEN_12_P_2 + 1,
+  VEX_LEN_16_P_0_M_0 = VEX_LEN_13_M_0 + 1,
+  VEX_LEN_16_P_0_M_1 = VEX_LEN_16_P_0_M_0 + 1,
+  VEX_LEN_16_P_2 = VEX_LEN_16_P_0_M_1 + 1,
+  VEX_LEN_17_M_0 = VEX_LEN_16_P_2 + 1,
+  VEX_LEN_2A_P_1 = VEX_LEN_17_M_0 + 1,
+  VEX_LEN_2A_P_3 = VEX_LEN_2A_P_1 + 1,
+  VEX_LEN_2C_P_1 = VEX_LEN_2A_P_3 + 1,
+  VEX_LEN_2C_P_3 = VEX_LEN_2C_P_1 + 1,
+  VEX_LEN_2D_P_1 = VEX_LEN_2C_P_3 + 1,
+  VEX_LEN_2D_P_3 = VEX_LEN_2D_P_1 + 1,
+  VEX_LEN_2E_P_0 = VEX_LEN_2D_P_3 + 1,
+  VEX_LEN_2E_P_2 = VEX_LEN_2E_P_0 + 1,
+  VEX_LEN_2F_P_0 = VEX_LEN_2E_P_2 + 1,
+  VEX_LEN_2F_P_2 = VEX_LEN_2F_P_0 + 1,
+  VEX_LEN_51_P_1 = VEX_LEN_2F_P_2 + 1,
+  VEX_LEN_51_P_3 = VEX_LEN_51_P_1 + 1,
+  VEX_LEN_52_P_1 = VEX_LEN_51_P_3 + 1,
+  VEX_LEN_53_P_1 = VEX_LEN_52_P_1 + 1,
+  VEX_LEN_58_P_1 = VEX_LEN_53_P_1 + 1,
+  VEX_LEN_58_P_3 = VEX_LEN_58_P_1 + 1,
+  VEX_LEN_59_P_1 = VEX_LEN_58_P_3 + 1,
+  VEX_LEN_59_P_3 = VEX_LEN_59_P_1 + 1,
+  VEX_LEN_5A_P_1 = VEX_LEN_59_P_3 + 1,
+  VEX_LEN_5A_P_3 = VEX_LEN_5A_P_1 + 1,
+  VEX_LEN_5C_P_1 = VEX_LEN_5A_P_3 + 1,
+  VEX_LEN_5C_P_3 = VEX_LEN_5C_P_1 + 1,
+  VEX_LEN_5D_P_1 = VEX_LEN_5C_P_3 + 1,
+  VEX_LEN_5D_P_3 = VEX_LEN_5D_P_1 + 1,
+  VEX_LEN_5E_P_1 = VEX_LEN_5D_P_3 + 1,
+  VEX_LEN_5E_P_3 = VEX_LEN_5E_P_1 + 1,
+  VEX_LEN_5F_P_1 = VEX_LEN_5E_P_3 + 1,
+  VEX_LEN_5F_P_3 = VEX_LEN_5F_P_1 + 1,
+  VEX_LEN_60_P_2 = VEX_LEN_5F_P_3 + 1,
+  VEX_LEN_61_P_2 = VEX_LEN_60_P_2 + 1,
+  VEX_LEN_62_P_2 = VEX_LEN_61_P_2 + 1,
+  VEX_LEN_63_P_2 = VEX_LEN_62_P_2 + 1,
+  VEX_LEN_64_P_2 = VEX_LEN_63_P_2 + 1,
+  VEX_LEN_65_P_2 = VEX_LEN_64_P_2 + 1,
+  VEX_LEN_66_P_2 = VEX_LEN_65_P_2 + 1,
+  VEX_LEN_67_P_2 = VEX_LEN_66_P_2 + 1,
+  VEX_LEN_68_P_2 = VEX_LEN_67_P_2 + 1,
+  VEX_LEN_69_P_2 = VEX_LEN_68_P_2 + 1,
+  VEX_LEN_6A_P_2 = VEX_LEN_69_P_2 + 1,
+  VEX_LEN_6B_P_2 = VEX_LEN_6A_P_2 + 1,
+  VEX_LEN_6C_P_2 = VEX_LEN_6B_P_2 + 1,
+  VEX_LEN_6D_P_2 = VEX_LEN_6C_P_2 + 1,
+  VEX_LEN_6E_P_2 = VEX_LEN_6D_P_2 + 1,
+  VEX_LEN_70_P_1 = VEX_LEN_6E_P_2 + 1,
+  VEX_LEN_70_P_2 = VEX_LEN_70_P_1 + 1,
+  VEX_LEN_70_P_3 = VEX_LEN_70_P_2 + 1,
+  VEX_LEN_71_R_2_P_2 = VEX_LEN_70_P_3 + 1,
+  VEX_LEN_71_R_4_P_2 = VEX_LEN_71_R_2_P_2 + 1,
+  VEX_LEN_71_R_6_P_2 = VEX_LEN_71_R_4_P_2 + 1,
+  VEX_LEN_72_R_2_P_2 = VEX_LEN_71_R_6_P_2 + 1,
+  VEX_LEN_72_R_4_P_2 = VEX_LEN_72_R_2_P_2 + 1,
+  VEX_LEN_72_R_6_P_2 = VEX_LEN_72_R_4_P_2 + 1,
+  VEX_LEN_73_R_2_P_2 = VEX_LEN_72_R_6_P_2 + 1,
+  VEX_LEN_73_R_3_P_2 = VEX_LEN_73_R_2_P_2 + 1,
+  VEX_LEN_73_R_6_P_2 = VEX_LEN_73_R_3_P_2 + 1,
+  VEX_LEN_73_R_7_P_2 = VEX_LEN_73_R_6_P_2 + 1,
+  VEX_LEN_74_P_2 = VEX_LEN_73_R_7_P_2 + 1,
+  VEX_LEN_75_P_2 = VEX_LEN_74_P_2 + 1,
+  VEX_LEN_76_P_2 = VEX_LEN_75_P_2 + 1,
+  VEX_LEN_7E_P_1 = VEX_LEN_76_P_2 + 1,
+  VEX_LEN_7E_P_2 = VEX_LEN_7E_P_1 + 1,
+  VEX_LEN_AE_R_2_M_0 = VEX_LEN_7E_P_2 + 1,
+  VEX_LEN_AE_R_3_M_0 = VEX_LEN_AE_R_2_M_0 + 1,
+  VEX_LEN_C2_P_1 = VEX_LEN_AE_R_3_M_0 + 1,
+  VEX_LEN_C2_P_3 = VEX_LEN_C2_P_1 + 1,
+  VEX_LEN_C4_P_2 = VEX_LEN_C2_P_3 + 1,
+  VEX_LEN_C5_P_2 = VEX_LEN_C4_P_2 + 1,
+  VEX_LEN_D1_P_2 = VEX_LEN_C5_P_2 + 1,
+  VEX_LEN_D2_P_2 = VEX_LEN_D1_P_2 + 1,
+  VEX_LEN_D3_P_2 = VEX_LEN_D2_P_2 + 1,
+  VEX_LEN_D4_P_2 = VEX_LEN_D3_P_2 + 1,
+  VEX_LEN_D5_P_2 = VEX_LEN_D4_P_2 + 1,
+  VEX_LEN_D6_P_2 = VEX_LEN_D5_P_2 + 1,
+  VEX_LEN_D7_P_2_M_1 = VEX_LEN_D6_P_2 + 1,
+  VEX_LEN_D8_P_2 = VEX_LEN_D7_P_2_M_1 + 1,
+  VEX_LEN_D9_P_2 = VEX_LEN_D8_P_2 + 1,
+  VEX_LEN_DA_P_2 = VEX_LEN_D9_P_2 + 1,
+  VEX_LEN_DB_P_2 = VEX_LEN_DA_P_2 + 1,
+  VEX_LEN_DC_P_2 = VEX_LEN_DB_P_2 + 1,
+  VEX_LEN_DD_P_2 = VEX_LEN_DC_P_2 + 1,
+  VEX_LEN_DE_P_2 = VEX_LEN_DD_P_2 + 1,
+  VEX_LEN_DF_P_2 = VEX_LEN_DE_P_2 + 1,
+  VEX_LEN_E0_P_2 = VEX_LEN_DF_P_2 + 1,
+  VEX_LEN_E1_P_2 = VEX_LEN_E0_P_2 + 1,
+  VEX_LEN_E2_P_2 = VEX_LEN_E1_P_2 + 1,
+  VEX_LEN_E3_P_2 = VEX_LEN_E2_P_2 + 1,
+  VEX_LEN_E4_P_2 = VEX_LEN_E3_P_2 + 1,
+  VEX_LEN_E5_P_2 = VEX_LEN_E4_P_2 + 1,
+  VEX_LEN_E8_P_2 = VEX_LEN_E5_P_2 + 1,
+  VEX_LEN_E9_P_2 = VEX_LEN_E8_P_2 + 1,
+  VEX_LEN_EA_P_2 = VEX_LEN_E9_P_2 + 1,
+  VEX_LEN_EB_P_2 = VEX_LEN_EA_P_2 + 1,
+  VEX_LEN_EC_P_2 = VEX_LEN_EB_P_2 + 1,
+  VEX_LEN_ED_P_2 = VEX_LEN_EC_P_2 + 1,
+  VEX_LEN_EE_P_2 = VEX_LEN_ED_P_2 + 1,
+  VEX_LEN_EF_P_2 = VEX_LEN_EE_P_2 + 1,
+  VEX_LEN_F1_P_2 = VEX_LEN_EF_P_2 + 1,
+  VEX_LEN_F2_P_2 = VEX_LEN_F1_P_2 + 1,
+  VEX_LEN_F3_P_2 = VEX_LEN_F2_P_2 + 1,
+  VEX_LEN_F4_P_2 = VEX_LEN_F3_P_2 + 1,
+  VEX_LEN_F5_P_2 = VEX_LEN_F4_P_2 + 1,
+  VEX_LEN_F6_P_2 = VEX_LEN_F5_P_2 + 1,
+  VEX_LEN_F7_P_2 = VEX_LEN_F6_P_2 + 1,
+  VEX_LEN_F8_P_2 = VEX_LEN_F7_P_2 + 1,
+  VEX_LEN_F9_P_2 = VEX_LEN_F8_P_2 + 1,
+  VEX_LEN_FA_P_2 = VEX_LEN_F9_P_2 + 1,
+  VEX_LEN_FB_P_2 = VEX_LEN_FA_P_2 + 1,
+  VEX_LEN_FC_P_2 = VEX_LEN_FB_P_2 + 1,
+  VEX_LEN_FD_P_2 = VEX_LEN_FC_P_2 + 1,
+  VEX_LEN_FE_P_2 = VEX_LEN_FD_P_2 + 1,
+  VEX_LEN_3800_P_2 = VEX_LEN_FE_P_2 + 1,
+  VEX_LEN_3801_P_2 = VEX_LEN_3800_P_2 + 1,
+  VEX_LEN_3802_P_2 = VEX_LEN_3801_P_2 + 1,
+  VEX_LEN_3803_P_2 = VEX_LEN_3802_P_2 + 1,
+  VEX_LEN_3804_P_2 = VEX_LEN_3803_P_2 + 1,
+  VEX_LEN_3805_P_2 = VEX_LEN_3804_P_2 + 1,
+  VEX_LEN_3806_P_2 = VEX_LEN_3805_P_2 + 1,
+  VEX_LEN_3807_P_2 = VEX_LEN_3806_P_2 + 1,
+  VEX_LEN_3808_P_2 = VEX_LEN_3807_P_2 + 1,
+  VEX_LEN_3809_P_2 = VEX_LEN_3808_P_2 + 1,
+  VEX_LEN_380A_P_2 = VEX_LEN_3809_P_2 + 1,
+  VEX_LEN_380B_P_2 = VEX_LEN_380A_P_2 + 1,
+  VEX_LEN_3819_P_2_M_0 = VEX_LEN_380B_P_2 + 1,
+  VEX_LEN_381A_P_2_M_0 = VEX_LEN_3819_P_2_M_0 + 1,
+  VEX_LEN_381C_P_2 = VEX_LEN_381A_P_2_M_0 + 1,
+  VEX_LEN_381D_P_2 = VEX_LEN_381C_P_2 + 1,
+  VEX_LEN_381E_P_2 = VEX_LEN_381D_P_2 + 1,
+  VEX_LEN_3820_P_2 = VEX_LEN_381E_P_2 + 1,
+  VEX_LEN_3821_P_2 = VEX_LEN_3820_P_2 + 1,
+  VEX_LEN_3822_P_2 = VEX_LEN_3821_P_2 + 1,
+  VEX_LEN_3823_P_2 = VEX_LEN_3822_P_2 + 1,
+  VEX_LEN_3824_P_2 = VEX_LEN_3823_P_2 + 1,
+  VEX_LEN_3825_P_2 = VEX_LEN_3824_P_2 + 1,
+  VEX_LEN_3828_P_2 = VEX_LEN_3825_P_2 + 1,
+  VEX_LEN_3829_P_2 = VEX_LEN_3828_P_2 + 1,
+  VEX_LEN_382A_P_2_M_0 = VEX_LEN_3829_P_2 + 1,
+  VEX_LEN_382B_P_2 = VEX_LEN_382A_P_2_M_0 + 1,
+  VEX_LEN_3830_P_2 = VEX_LEN_382B_P_2 + 1,
+  VEX_LEN_3831_P_2 = VEX_LEN_3830_P_2 + 1,
+  VEX_LEN_3832_P_2 = VEX_LEN_3831_P_2 + 1,
+  VEX_LEN_3833_P_2 = VEX_LEN_3832_P_2 + 1,
+  VEX_LEN_3834_P_2 = VEX_LEN_3833_P_2 + 1,
+  VEX_LEN_3835_P_2 = VEX_LEN_3834_P_2 + 1,
+  VEX_LEN_3837_P_2 = VEX_LEN_3835_P_2 + 1,
+  VEX_LEN_3838_P_2 = VEX_LEN_3837_P_2 + 1,
+  VEX_LEN_3839_P_2 = VEX_LEN_3838_P_2 + 1,
+  VEX_LEN_383A_P_2 = VEX_LEN_3839_P_2 + 1,
+  VEX_LEN_383B_P_2 = VEX_LEN_383A_P_2 + 1,
+  VEX_LEN_383C_P_2 = VEX_LEN_383B_P_2 + 1,
+  VEX_LEN_383D_P_2 = VEX_LEN_383C_P_2 + 1,
+  VEX_LEN_383E_P_2 = VEX_LEN_383D_P_2 + 1,
+  VEX_LEN_383F_P_2 = VEX_LEN_383E_P_2 + 1,
+  VEX_LEN_3840_P_2 = VEX_LEN_383F_P_2 + 1,
+  VEX_LEN_3841_P_2 = VEX_LEN_3840_P_2 + 1,
+  VEX_LEN_38DB_P_2 = VEX_LEN_3841_P_2 + 1,
+  VEX_LEN_38DC_P_2 = VEX_LEN_38DB_P_2 + 1,
+  VEX_LEN_38DD_P_2 = VEX_LEN_38DC_P_2 + 1,
+  VEX_LEN_38DE_P_2 = VEX_LEN_38DD_P_2 + 1,
+  VEX_LEN_38DF_P_2 = VEX_LEN_38DE_P_2 + 1,
+  VEX_LEN_3A06_P_2 = VEX_LEN_38DF_P_2 + 1,
+  VEX_LEN_3A0A_P_2 = VEX_LEN_3A06_P_2 + 1,
+  VEX_LEN_3A0B_P_2 = VEX_LEN_3A0A_P_2 + 1,
+  VEX_LEN_3A0E_P_2 = VEX_LEN_3A0B_P_2 + 1,
+  VEX_LEN_3A0F_P_2 = VEX_LEN_3A0E_P_2 + 1,
+  VEX_LEN_3A14_P_2 = VEX_LEN_3A0F_P_2 + 1,
+  VEX_LEN_3A15_P_2 = VEX_LEN_3A14_P_2 + 1,
+  VEX_LEN_3A16_P_2 = VEX_LEN_3A15_P_2 + 1,
+  VEX_LEN_3A17_P_2 = VEX_LEN_3A16_P_2 + 1,
+  VEX_LEN_3A18_P_2 = VEX_LEN_3A17_P_2 + 1,
+  VEX_LEN_3A19_P_2 = VEX_LEN_3A18_P_2 + 1,
+  VEX_LEN_3A20_P_2 = VEX_LEN_3A19_P_2 + 1,
+  VEX_LEN_3A21_P_2 = VEX_LEN_3A20_P_2 + 1,
+  VEX_LEN_3A22_P_2 = VEX_LEN_3A21_P_2 + 1,
+  VEX_LEN_3A41_P_2 = VEX_LEN_3A22_P_2 + 1,
+  VEX_LEN_3A42_P_2 = VEX_LEN_3A41_P_2 + 1,
+  VEX_LEN_3A44_P_2 = VEX_LEN_3A42_P_2 + 1,
+  VEX_LEN_3A4C_P_2 = VEX_LEN_3A44_P_2 + 1,
+  VEX_LEN_3A60_P_2 = VEX_LEN_3A4C_P_2 + 1,
+  VEX_LEN_3A61_P_2 = VEX_LEN_3A60_P_2 + 1,
+  VEX_LEN_3A62_P_2 = VEX_LEN_3A61_P_2 + 1,
+  VEX_LEN_3A63_P_2 = VEX_LEN_3A62_P_2 + 1,
+  VEX_LEN_3A6A_P_2 = VEX_LEN_3A63_P_2 + 1,
+  VEX_LEN_3A6B_P_2 = VEX_LEN_3A6A_P_2 + 1,
+  VEX_LEN_3A6E_P_2 = VEX_LEN_3A6B_P_2 + 1,
+  VEX_LEN_3A6F_P_2 = VEX_LEN_3A6E_P_2 + 1,
+  VEX_LEN_3A7A_P_2 = VEX_LEN_3A6F_P_2 + 1,
+  VEX_LEN_3A7B_P_2 = VEX_LEN_3A7A_P_2 + 1,
+  VEX_LEN_3A7E_P_2 = VEX_LEN_3A7B_P_2 + 1,
+  VEX_LEN_3A7F_P_2 = VEX_LEN_3A7E_P_2 + 1,
+  VEX_LEN_3ADF_P_2 = VEX_LEN_3A7F_P_2 + 1
+};
 
 typedef void (*op_rtn) (int bytemode, int sizeflag);