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