-#define b_mode 1 /* byte operand */
-#define v_mode 2 /* operand size depends on prefixes */
-#define w_mode 3 /* word operand */
-#define d_mode 4 /* double word operand */
-#define q_mode 5 /* quad word operand */
-#define t_mode 6 /* ten-byte operand */
-#define x_mode 7 /* 16-byte XMM operand */
-#define m_mode 8 /* d_mode in 32bit, q_mode in 64bit mode. */
-#define cond_jump_mode 9
-#define loop_jcxz_mode 10
-#define dq_mode 11 /* operand size depends on REX prefixes. */
-#define dqw_mode 12 /* registers like dq_mode, memory like w_mode. */
-#define f_mode 13 /* 4- or 6-byte pointer operand */
-#define const_1_mode 14
-#define stack_v_mode 15 /* v_mode for stack-related opcodes. */
-#define z_mode 16 /* non-quad operand size depends on prefixes */
-#define o_mode 17 /* 16-byte operand */
-#define dqb_mode 18 /* registers like dq_mode, memory like b_mode. */
-#define dqd_mode 19 /* registers like dq_mode, memory like d_mode. */
-
-#define es_reg 100
-#define cs_reg 101
-#define ss_reg 102
-#define ds_reg 103
-#define fs_reg 104
-#define gs_reg 105
-
-#define eAX_reg 108
-#define eCX_reg 109
-#define eDX_reg 110
-#define eBX_reg 111
-#define eSP_reg 112
-#define eBP_reg 113
-#define eSI_reg 114
-#define eDI_reg 115
-
-#define al_reg 116
-#define cl_reg 117
-#define dl_reg 118
-#define bl_reg 119
-#define ah_reg 120
-#define ch_reg 121
-#define dh_reg 122
-#define bh_reg 123
-
-#define ax_reg 124
-#define cx_reg 125
-#define dx_reg 126
-#define bx_reg 127
-#define sp_reg 128
-#define bp_reg 129
-#define si_reg 130
-#define di_reg 131
-
-#define rAX_reg 132
-#define rCX_reg 133
-#define rDX_reg 134
-#define rBX_reg 135
-#define rSP_reg 136
-#define rBP_reg 137
-#define rSI_reg 138
-#define rDI_reg 139
-
-#define z_mode_ax_reg 149
-#define indir_dx_reg 150
-
-#define FLOATCODE 1
-#define USE_GROUPS 2
-#define USE_PREFIX_USER_TABLE 3
-#define X86_64_SPECIAL 4
-#define IS_3BYTE_OPCODE 5
-#define USE_OPC_EXT_TABLE 6
-#define USE_OPC_EXT_RM_TABLE 7
-
-#define FLOAT NULL, { { NULL, FLOATCODE } }
-
-#define GRP1a NULL, { { NULL, USE_GROUPS }, { NULL, 0 } }
-#define GRP1b NULL, { { NULL, USE_GROUPS }, { NULL, 1 } }
-#define GRP1S NULL, { { NULL, USE_GROUPS }, { NULL, 2 } }
-#define GRP1Ss NULL, { { NULL, USE_GROUPS }, { NULL, 3 } }
-#define GRP2b NULL, { { NULL, USE_GROUPS }, { NULL, 4 } }
-#define GRP2S NULL, { { NULL, USE_GROUPS }, { NULL, 5 } }
-#define GRP2b_one NULL, { { NULL, USE_GROUPS }, { NULL, 6 } }
-#define GRP2S_one NULL, { { NULL, USE_GROUPS }, { NULL, 7 } }
-#define GRP2b_cl NULL, { { NULL, USE_GROUPS }, { NULL, 8 } }
-#define GRP2S_cl NULL, { { NULL, USE_GROUPS }, { NULL, 9 } }
-#define GRP3b NULL, { { NULL, USE_GROUPS }, { NULL, 10 } }
-#define GRP3S NULL, { { NULL, USE_GROUPS }, { NULL, 11 } }
-#define GRP4 NULL, { { NULL, USE_GROUPS }, { NULL, 12 } }
-#define GRP5 NULL, { { NULL, USE_GROUPS }, { NULL, 13 } }
-#define GRP6 NULL, { { NULL, USE_GROUPS }, { NULL, 14 } }
-#define GRP7 NULL, { { NULL, USE_GROUPS }, { NULL, 15 } }
-#define GRP8 NULL, { { NULL, USE_GROUPS }, { NULL, 16 } }
-#define GRP9 NULL, { { NULL, USE_GROUPS }, { NULL, 17 } }
-#define GRP11_C6 NULL, { { NULL, USE_GROUPS }, { NULL, 18 } }
-#define GRP11_C7 NULL, { { NULL, USE_GROUPS }, { NULL, 19 } }
-#define GRP12 NULL, { { NULL, USE_GROUPS }, { NULL, 20 } }
-#define GRP13 NULL, { { NULL, USE_GROUPS }, { NULL, 21 } }
-#define GRP14 NULL, { { NULL, USE_GROUPS }, { NULL, 22 } }
-#define GRP15 NULL, { { NULL, USE_GROUPS }, { NULL, 23 } }
-#define GRP16 NULL, { { NULL, USE_GROUPS }, { NULL, 24 } }
-#define GRPAMD NULL, { { NULL, USE_GROUPS }, { NULL, 25 } }
-#define GRPPADLCK1 NULL, { { NULL, USE_GROUPS }, { NULL, 26 } }
-#define GRPPADLCK2 NULL, { { NULL, USE_GROUPS }, { NULL, 27 } }
-
-#define PREGRP0 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 0 } }
-#define PREGRP1 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 1 } }
-#define PREGRP2 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 2 } }
-#define PREGRP3 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 3 } }
-#define PREGRP4 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 4 } }
-#define PREGRP5 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 5 } }
-#define PREGRP6 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 6 } }
-#define PREGRP7 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 7 } }
-#define PREGRP8 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 8 } }
-#define PREGRP9 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 9 } }
-#define PREGRP10 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 10 } }
-#define PREGRP11 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 11 } }
-#define PREGRP12 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 12 } }
-#define PREGRP13 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 13 } }
-#define PREGRP14 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 14 } }
-#define PREGRP15 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 15 } }
-#define PREGRP16 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 16 } }
-#define PREGRP17 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 17 } }
-#define PREGRP18 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 18 } }
-#define PREGRP19 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 19 } }
-#define PREGRP20 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 20 } }
-#define PREGRP21 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 21 } }
-#define PREGRP22 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 22 } }
-#define PREGRP23 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 23 } }
-#define PREGRP24 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 24 } }
-#define PREGRP25 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 25 } }
-#define PREGRP26 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 26 } }
-#define PREGRP27 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 27 } }
-#define PREGRP28 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 28 } }
-#define PREGRP29 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 29 } }
-#define PREGRP30 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 30 } }
-#define PREGRP31 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 31 } }
-#define PREGRP32 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 32 } }
-#define PREGRP33 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 33 } }
-#define PREGRP34 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 34 } }
-#define PREGRP35 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 35 } }
-#define PREGRP36 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 36 } }
-#define PREGRP37 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 37 } }
-#define PREGRP38 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 38 } }
-#define PREGRP39 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 39 } }
-#define PREGRP40 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 40 } }
-#define PREGRP41 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 41 } }
-#define PREGRP42 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 42 } }
-#define PREGRP43 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 43 } }
-#define PREGRP44 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 44 } }
-#define PREGRP45 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 45 } }
-#define PREGRP46 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 46 } }
-#define PREGRP47 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 47 } }
-#define PREGRP48 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 48 } }
-#define PREGRP49 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 49 } }
-#define PREGRP50 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 50 } }
-#define PREGRP51 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 51 } }
-#define PREGRP52 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 52 } }
-#define PREGRP53 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 53 } }
-#define PREGRP54 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 54 } }
-#define PREGRP55 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 55 } }
-#define PREGRP56 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 56 } }
-#define PREGRP57 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 57 } }
-#define PREGRP58 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 58 } }
-#define PREGRP59 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 59 } }
-#define PREGRP60 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 60 } }
-#define PREGRP61 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 61 } }
-#define PREGRP62 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 62 } }
-#define PREGRP63 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 63 } }
-#define PREGRP64 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 64 } }
-#define PREGRP65 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 65 } }
-#define PREGRP66 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 66 } }
-#define PREGRP67 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 67 } }
-#define PREGRP68 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 68 } }
-#define PREGRP69 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 69 } }
-#define PREGRP70 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 70 } }
-#define PREGRP71 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 71 } }
-#define PREGRP72 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 72 } }
-#define PREGRP73 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 73 } }
-#define PREGRP74 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 74 } }
-#define PREGRP75 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 75 } }
-#define PREGRP76 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 76 } }
-#define PREGRP77 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 77 } }
-#define PREGRP78 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 78 } }
-#define PREGRP79 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 79 } }
-#define PREGRP80 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 80 } }
-#define PREGRP81 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 81 } }
-#define PREGRP82 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 82 } }
-#define PREGRP83 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 83 } }
-#define PREGRP84 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 84 } }
-#define PREGRP85 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 85 } }
-#define PREGRP86 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 86 } }
-#define PREGRP87 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 87 } }
-#define PREGRP88 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 88 } }
-#define PREGRP89 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 89 } }
-#define PREGRP90 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 90 } }
-#define PREGRP91 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 91 } }
-#define PREGRP92 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 92 } }
-#define PREGRP93 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 93 } }
-#define PREGRP94 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 94 } }
-#define PREGRP95 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 95 } }
-#define PREGRP96 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 96 } }
-#define PREGRP97 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 97 } }
-#define PREGRP98 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 98 } }
-#define PREGRP99 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 99 } }
-#define PREGRP100 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 100 } }
-
-
-#define X86_64_0 NULL, { { NULL, X86_64_SPECIAL }, { NULL, 0 } }
-#define X86_64_1 NULL, { { NULL, X86_64_SPECIAL }, { NULL, 1 } }
-#define X86_64_2 NULL, { { NULL, X86_64_SPECIAL }, { NULL, 2 } }
-#define X86_64_3 NULL, { { NULL, X86_64_SPECIAL }, { NULL, 3 } }
-
-#define THREE_BYTE_0 NULL, { { NULL, IS_3BYTE_OPCODE }, { NULL, 0 } }
-#define THREE_BYTE_1 NULL, { { NULL, IS_3BYTE_OPCODE }, { NULL, 1 } }
-
-#define OPC_EXT_0 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 0 } }
-#define OPC_EXT_1 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 1 } }
-#define OPC_EXT_2 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 2 } }
-#define OPC_EXT_3 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 3 } }
-#define OPC_EXT_4 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 4 } }
-#define OPC_EXT_5 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 5 } }
-#define OPC_EXT_6 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 6 } }
-#define OPC_EXT_7 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 7 } }
-#define OPC_EXT_8 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 8 } }
-#define OPC_EXT_9 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 9 } }
-#define OPC_EXT_10 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 10 } }
-#define OPC_EXT_11 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 11 } }
-#define OPC_EXT_12 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 12 } }
-#define OPC_EXT_13 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 13 } }
-#define OPC_EXT_14 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 14 } }
-#define OPC_EXT_15 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 15 } }
-#define OPC_EXT_16 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 16 } }
-#define OPC_EXT_17 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 17 } }
-#define OPC_EXT_18 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 18 } }
-#define OPC_EXT_19 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 19 } }
-#define OPC_EXT_20 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 20 } }
-#define OPC_EXT_21 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 21 } }
-#define OPC_EXT_22 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 22 } }
-#define OPC_EXT_23 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 23 } }
-#define OPC_EXT_24 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 24 } }
-#define OPC_EXT_25 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 25 } }
-#define OPC_EXT_26 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 26 } }
-#define OPC_EXT_27 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 27 } }
-#define OPC_EXT_28 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 28 } }
-#define OPC_EXT_29 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 29 } }
-#define OPC_EXT_30 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 30 } }
-#define OPC_EXT_31 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 31 } }
-#define OPC_EXT_32 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 32 } }
-#define OPC_EXT_33 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 33 } }
-#define OPC_EXT_34 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 34 } }
-#define OPC_EXT_35 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 35 } }
-#define OPC_EXT_36 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 36 } }
-#define OPC_EXT_37 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 37 } }
-#define OPC_EXT_38 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 38 } }
-#define OPC_EXT_39 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 39 } }
-#define OPC_EXT_40 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 40 } }
-#define OPC_EXT_41 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 41 } }
-#define OPC_EXT_42 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 42 } }
-#define OPC_EXT_43 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 43 } }
-#define OPC_EXT_44 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 44 } }
-#define OPC_EXT_45 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 45 } }
-
-#define OPC_EXT_RM_0 NULL, { { NULL, USE_OPC_EXT_RM_TABLE }, { NULL, 0 } }
-#define OPC_EXT_RM_1 NULL, { { NULL, USE_OPC_EXT_RM_TABLE }, { NULL, 1 } }
-#define OPC_EXT_RM_2 NULL, { { NULL, USE_OPC_EXT_RM_TABLE }, { NULL, 2 } }
-#define OPC_EXT_RM_3 NULL, { { NULL, USE_OPC_EXT_RM_TABLE }, { NULL, 3 } }
-#define OPC_EXT_RM_4 NULL, { { NULL, USE_OPC_EXT_RM_TABLE }, { NULL, 4 } }
-#define OPC_EXT_RM_5 NULL, { { NULL, USE_OPC_EXT_RM_TABLE }, { NULL, 5 } }
-#define OPC_EXT_RM_6 NULL, { { NULL, USE_OPC_EXT_RM_TABLE }, { NULL, 6 } }
+/* byte operand */
+#define b_mode 1
+/* operand size depends on prefixes */
+#define v_mode (b_mode + 1)
+/* word operand */
+#define w_mode (v_mode + 1)
+/* double word operand */
+#define d_mode (w_mode + 1)
+/* quad word operand */
+#define q_mode (d_mode + 1)
+/* ten-byte operand */
+#define t_mode (q_mode + 1)
+/* 16-byte XMM or 32-byte YMM operand */
+#define x_mode (t_mode + 1)
+/* 16-byte XMM operand */
+#define xmm_mode (x_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)
+
+#define es_reg (vex256_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 MAX_BYTEMODE indir_dx_reg
+
+/* Flags that are OR'ed into the bytemode field to pass extra
+ information. */
+#define DREX_OC1 0x10000 /* OC1 bit set */
+#define DREX_NO_OC0 0x20000 /* OC0 bit not used */
+#define DREX_MASK 0x40000 /* mask to delete */
+
+#if MAX_BYTEMODE >= DREX_OC1
+#error MAX_BYTEMODE must be less than DREX_OC1
+#endif
+
+#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)
+
+#define FLOAT NULL, { { NULL, FLOATCODE } }
+
+#define DIS386(T, I) NULL, { { NULL, (T)}, { NULL, (I) } }
+#define REG_TABLE(I) DIS386 (USE_REG_TABLE, (I))
+#define MOD_TABLE(I) DIS386 (USE_MOD_TABLE, (I))
+#define RM_TABLE(I) DIS386 (USE_RM_TABLE, (I))
+#define PREFIX_TABLE(I) DIS386 (USE_PREFIX_TABLE, (I))
+#define X86_64_TABLE(I) DIS386 (USE_X86_64_TABLE, (I))
+#define THREE_BYTE_TABLE(I) DIS386 (USE_3BYTE_TABLE, (I))
+#define VEX_C4_TABLE(I) DIS386 (USE_VEX_C4_TABLE, (I))
+#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_38DB (PREFIX_VEX_3841 + 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_3A48 (PREFIX_VEX_3A42 + 1)
+#define PREFIX_VEX_3A49 (PREFIX_VEX_3A48 + 1)
+#define PREFIX_VEX_3A4A (PREFIX_VEX_3A49 + 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_0F24 0
+#define THREE_BYTE_0F25 (THREE_BYTE_0F24 + 1)
+#define THREE_BYTE_0F38 (THREE_BYTE_0F25 + 1)
+#define THREE_BYTE_0F3A (THREE_BYTE_0F38 + 1)
+#define THREE_BYTE_0F7A (THREE_BYTE_0F3A + 1)
+#define THREE_BYTE_0F7B (THREE_BYTE_0F7A + 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_2B_M_0 (VEX_LEN_2A_P_3 + 1)
+#define VEX_LEN_2C_P_1 (VEX_LEN_2B_M_0 + 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_E7_P_2_M_0 (VEX_LEN_E5_P_2 + 1)
+#define VEX_LEN_E8_P_2 (VEX_LEN_E7_P_2_M_0 + 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_3A4C_P_2 (VEX_LEN_3A42_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)