blob: 1a5d9811593c53f4594f3950d5088634171e2a12 [file] [log] [blame]
Nguyen Anh Quynh81a97c62014-09-26 23:38:53 +08001(* Capstone Disassembly Engine
2 * By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2014 *)
Nguyen Anh Quynh26ee41a2013-11-27 12:11:31 +08003
Nguyen Anh Quynh586be762014-09-21 23:23:38 +08004open Arm64_const
5
Nguyen Anh Quynh26ee41a2013-11-27 12:11:31 +08006(* architecture specific info of instruction *)
7type arm64_op_shift = {
Nguyen Anh Quynh77d93e92014-09-25 23:03:36 +08008 shift_type: int;
Nguyen Anh Quynh26ee41a2013-11-27 12:11:31 +08009 shift_value: int;
10}
11
12type arm64_op_mem = {
13 base: int;
14 index: int;
Nguyen Anh Quynh77d93e92014-09-25 23:03:36 +080015 disp: int
Nguyen Anh Quynh26ee41a2013-11-27 12:11:31 +080016}
17
18type arm64_op_value =
19 | ARM64_OP_INVALID of int
20 | ARM64_OP_REG of int
21 | ARM64_OP_CIMM of int
22 | ARM64_OP_IMM of int
23 | ARM64_OP_FP of float
24 | ARM64_OP_MEM of arm64_op_mem
Nguyen Anh Quynh77d93e92014-09-25 23:03:36 +080025 | ARM64_OP_REG_MRS of int
26 | ARM64_OP_REG_MSR of int
27 | ARM64_OP_PSTATE of int
28 | ARM64_OP_SYS of int
29 | ARM64_OP_PREFETCH of int
30 | ARM64_OP_BARRIER of int
Nguyen Anh Quynh26ee41a2013-11-27 12:11:31 +080031
32type arm64_op = {
Nguyen Anh Quynh77d93e92014-09-25 23:03:36 +080033 vector_index: int;
34 vas: int;
35 vess: int;
Nguyen Anh Quynh26ee41a2013-11-27 12:11:31 +080036 shift: arm64_op_shift;
37 ext: int;
38 value: arm64_op_value;
39}
40
41type cs_arm64 = {
42 cc: int;
43 update_flags: bool;
44 writeback: bool;
Nguyen Anh Quynh26ee41a2013-11-27 12:11:31 +080045 operands: arm64_op array;
46}