181a97c6c5ca529d72aad8f78e7fd2588d92bf290Nguyen Anh Quynh(* Capstone Disassembly Engine 281a97c6c5ca529d72aad8f78e7fd2588d92bf290Nguyen Anh Quynh * By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2014 *) 326ee41aa673b03494292229c6e4e331a668ce7b2Nguyen Anh Quynh 4586be76d7369b4f9945e3120646ec291218cf9e8Nguyen Anh Quynhopen X86_const 5586be76d7369b4f9945e3120646ec291218cf9e8Nguyen Anh Quynh 626ee41aa673b03494292229c6e4e331a668ce7b2Nguyen Anh Quynh(* architecture specific info of instruction *) 726ee41aa673b03494292229c6e4e331a668ce7b2Nguyen Anh Quynhtype x86_op_mem = { 881a97c6c5ca529d72aad8f78e7fd2588d92bf290Nguyen Anh Quynh segment: int; 926ee41aa673b03494292229c6e4e331a668ce7b2Nguyen Anh Quynh base: int; 1026ee41aa673b03494292229c6e4e331a668ce7b2Nguyen Anh Quynh index: int; 1126ee41aa673b03494292229c6e4e331a668ce7b2Nguyen Anh Quynh scale: int; 1277d93e90620612e3b99ce29e0011376d9825387aNguyen Anh Quynh disp: int; 1326ee41aa673b03494292229c6e4e331a668ce7b2Nguyen Anh Quynh} 1426ee41aa673b03494292229c6e4e331a668ce7b2Nguyen Anh Quynh 1577d93e90620612e3b99ce29e0011376d9825387aNguyen Anh Quynhtype x86_op_value = 1626ee41aa673b03494292229c6e4e331a668ce7b2Nguyen Anh Quynh | X86_OP_INVALID of int 1726ee41aa673b03494292229c6e4e331a668ce7b2Nguyen Anh Quynh | X86_OP_REG of int 1826ee41aa673b03494292229c6e4e331a668ce7b2Nguyen Anh Quynh | X86_OP_IMM of int 1926ee41aa673b03494292229c6e4e331a668ce7b2Nguyen Anh Quynh | X86_OP_FP of float 2026ee41aa673b03494292229c6e4e331a668ce7b2Nguyen Anh Quynh | X86_OP_MEM of x86_op_mem 2126ee41aa673b03494292229c6e4e331a668ce7b2Nguyen Anh Quynh 2277d93e90620612e3b99ce29e0011376d9825387aNguyen Anh Quynhtype x86_op = { 2377d93e90620612e3b99ce29e0011376d9825387aNguyen Anh Quynh value: x86_op_value; 2477d93e90620612e3b99ce29e0011376d9825387aNguyen Anh Quynh size: int; 2577d93e90620612e3b99ce29e0011376d9825387aNguyen Anh Quynh avx_bcast: int; 2677d93e90620612e3b99ce29e0011376d9825387aNguyen Anh Quynh avx_zero_opmask: int; 2777d93e90620612e3b99ce29e0011376d9825387aNguyen Anh Quynh} 2877d93e90620612e3b99ce29e0011376d9825387aNguyen Anh Quynh 2926ee41aa673b03494292229c6e4e331a668ce7b2Nguyen Anh Quynhtype cs_x86 = { 3026ee41aa673b03494292229c6e4e331a668ce7b2Nguyen Anh Quynh prefix: int array; 3126ee41aa673b03494292229c6e4e331a668ce7b2Nguyen Anh Quynh opcode: int array; 3277d93e90620612e3b99ce29e0011376d9825387aNguyen Anh Quynh rex: int; 3326ee41aa673b03494292229c6e4e331a668ce7b2Nguyen Anh Quynh addr_size: int; 3426ee41aa673b03494292229c6e4e331a668ce7b2Nguyen Anh Quynh modrm: int; 3526ee41aa673b03494292229c6e4e331a668ce7b2Nguyen Anh Quynh sib: int; 3626ee41aa673b03494292229c6e4e331a668ce7b2Nguyen Anh Quynh disp: int; 3726ee41aa673b03494292229c6e4e331a668ce7b2Nguyen Anh Quynh sib_index: int; 3826ee41aa673b03494292229c6e4e331a668ce7b2Nguyen Anh Quynh sib_scale: int; 3926ee41aa673b03494292229c6e4e331a668ce7b2Nguyen Anh Quynh sib_base: int; 4077d93e90620612e3b99ce29e0011376d9825387aNguyen Anh Quynh sse_cc: int; 4177d93e90620612e3b99ce29e0011376d9825387aNguyen Anh Quynh avx_cc: int; 4277d93e90620612e3b99ce29e0011376d9825387aNguyen Anh Quynh avx_sae: int; 4377d93e90620612e3b99ce29e0011376d9825387aNguyen Anh Quynh avx_rm: int; 4426ee41aa673b03494292229c6e4e331a668ce7b2Nguyen Anh Quynh operands: x86_op array; 4526ee41aa673b03494292229c6e4e331a668ce7b2Nguyen Anh Quynh} 46