1*9a0e4156SSadaf Ebrahimi(* Capstone Disassembly Engine 2*9a0e4156SSadaf Ebrahimi * By Nguyen Anh Quynh <[email protected]>, 2013-2014 *) 3*9a0e4156SSadaf Ebrahimi 4*9a0e4156SSadaf Ebrahimiopen X86_const 5*9a0e4156SSadaf Ebrahimi 6*9a0e4156SSadaf Ebrahimi(* architecture specific info of instruction *) 7*9a0e4156SSadaf Ebrahimitype x86_op_mem = { 8*9a0e4156SSadaf Ebrahimi segment: int; 9*9a0e4156SSadaf Ebrahimi base: int; 10*9a0e4156SSadaf Ebrahimi index: int; 11*9a0e4156SSadaf Ebrahimi scale: int; 12*9a0e4156SSadaf Ebrahimi disp: int; 13*9a0e4156SSadaf Ebrahimi} 14*9a0e4156SSadaf Ebrahimi 15*9a0e4156SSadaf Ebrahimitype x86_op_value = 16*9a0e4156SSadaf Ebrahimi | X86_OP_INVALID of int 17*9a0e4156SSadaf Ebrahimi | X86_OP_REG of int 18*9a0e4156SSadaf Ebrahimi | X86_OP_IMM of int 19*9a0e4156SSadaf Ebrahimi | X86_OP_MEM of x86_op_mem 20*9a0e4156SSadaf Ebrahimi 21*9a0e4156SSadaf Ebrahimitype x86_op = { 22*9a0e4156SSadaf Ebrahimi value: x86_op_value; 23*9a0e4156SSadaf Ebrahimi size: int; 24*9a0e4156SSadaf Ebrahimi access: int; 25*9a0e4156SSadaf Ebrahimi avx_bcast: int; 26*9a0e4156SSadaf Ebrahimi avx_zero_opmask: int; 27*9a0e4156SSadaf Ebrahimi} 28*9a0e4156SSadaf Ebrahimi 29*9a0e4156SSadaf Ebrahimitype cs_x86 = { 30*9a0e4156SSadaf Ebrahimi prefix: int array; 31*9a0e4156SSadaf Ebrahimi opcode: int array; 32*9a0e4156SSadaf Ebrahimi rex: int; 33*9a0e4156SSadaf Ebrahimi addr_size: int; 34*9a0e4156SSadaf Ebrahimi modrm: int; 35*9a0e4156SSadaf Ebrahimi sib: int; 36*9a0e4156SSadaf Ebrahimi disp: int; 37*9a0e4156SSadaf Ebrahimi sib_index: int; 38*9a0e4156SSadaf Ebrahimi sib_scale: int; 39*9a0e4156SSadaf Ebrahimi sib_base: int; 40*9a0e4156SSadaf Ebrahimi xop_cc: int; 41*9a0e4156SSadaf Ebrahimi sse_cc: int; 42*9a0e4156SSadaf Ebrahimi avx_cc: int; 43*9a0e4156SSadaf Ebrahimi avx_sae: int; 44*9a0e4156SSadaf Ebrahimi avx_rm: int; 45*9a0e4156SSadaf Ebrahimi eflags: int; 46*9a0e4156SSadaf Ebrahimi operands: x86_op array; 47*9a0e4156SSadaf Ebrahimi} 48