33#define MAX_INSN_LENGTH 15
38#define P_inv64 ( 1 << 0 )
39#define P_INV64(n) ( ( n >> 0 ) & 1 )
40#define P_def64 ( 1 << 1 )
41#define P_DEF64(n) ( ( n >> 1 ) & 1 )
43#define P_oso ( 1 << 2 )
44#define P_OSO(n) ( ( n >> 2 ) & 1 )
45#define P_aso ( 1 << 3 )
46#define P_ASO(n) ( ( n >> 3 ) & 1 )
48#define P_rexb ( 1 << 4 )
49#define P_REXB(n) ( ( n >> 4 ) & 1 )
50#define P_rexw ( 1 << 5 )
51#define P_REXW(n) ( ( n >> 5 ) & 1 )
52#define P_rexr ( 1 << 6 )
53#define P_REXR(n) ( ( n >> 6 ) & 1 )
54#define P_rexx ( 1 << 7 )
55#define P_REXX(n) ( ( n >> 7 ) & 1 )
57#define P_seg ( 1 << 8 )
58#define P_SEG(n) ( ( n >> 8 ) & 1 )
60#define P_vexl ( 1 << 9 )
61#define P_VEXL(n) ( ( n >> 9 ) & 1 )
62#define P_vexw ( 1 << 10 )
63#define P_VEXW(n) ( ( n >> 10 ) & 1 )
65#define P_str ( 1 << 11 )
66#define P_STR(n) ( ( n >> 11 ) & 1 )
67#define P_strz ( 1 << 12 )
68#define P_STR_ZF(n) ( ( n >> 12 ) & 1 )
75 OP_A, OP_E, OP_M, OP_G,
78 OP_R0, OP_R1, OP_R2, OP_R3,
79 OP_R4, OP_R5, OP_R6, OP_R7,
83 OP_eAX, OP_eCX, OP_eDX,
84 OP_rAX, OP_rCX, OP_rDX,
86 OP_ES, OP_CS, OP_SS, OP_DS,
89 OP_ST0, OP_ST1, OP_ST2, OP_ST3,
90 OP_ST4, OP_ST5, OP_ST6, OP_ST7,
95 OP_V, OP_W, OP_Q, OP_P,
96 OP_U, OP_N, OP_MU, OP_H,
113typedef uint16_t ud_operand_size_t;
134#define SZ_BD ((SZ_B << 8) | SZ_D)
135#define SZ_BV ((SZ_B << 8) | SZ_V)
136#define SZ_WD ((SZ_W << 8) | SZ_D)
137#define SZ_WV ((SZ_W << 8) | SZ_V)
138#define SZ_WY ((SZ_W << 8) | SZ_Y)
139#define SZ_DY ((SZ_D << 8) | SZ_Y)
140#define SZ_WO ((SZ_W << 8) | SZ_O)
141#define SZ_DO ((SZ_D << 8) | SZ_O)
142#define SZ_QO ((SZ_Q << 8) | SZ_O)
147static UD_INLINE ud_operand_size_t
148Mx_mem_size(ud_operand_size_t size)
150 return (size >> 8) & 0xff;
153static UD_INLINE ud_operand_size_t
154Mx_reg_size(ud_operand_size_t size)
164 enum ud_operand_code type;
165 ud_operand_size_t size;
174 enum ud_mnemonic_code mnemonic;
183 const uint16_t *table;
184 enum ud_table_type type;