1 /* Unicorn Engine */
2 /* By Nguyen Anh Quynh <aquynh@gmail.com>, 2015 */
3 
4 module unicorn.arm;
5 
6 import unicorn.unicorn;
7 
8 extern(C):
9 
10 /// ARM registers
11 enum uc_arm_reg {
12 	INVALID = 0,
13 	APSR,
14 	APSR_NZCV,
15 	CPSR,
16 	FPEXC,
17 	FPINST,
18 	FPSCR,
19 	FPSCR_NZCV,
20 	FPSID,
21 	ITSTATE,
22 	LR,
23 	PC,
24 	SP,
25 	SPSR,
26 	D0,
27 	D1,
28 	D2,
29 	D3,
30 	D4,
31 	D5,
32 	D6,
33 	D7,
34 	D8,
35 	D9,
36 	D10,
37 	D11,
38 	D12,
39 	D13,
40 	D14,
41 	D15,
42 	D16,
43 	D17,
44 	D18,
45 	D19,
46 	D20,
47 	D21,
48 	D22,
49 	D23,
50 	D24,
51 	D25,
52 	D26,
53 	D27,
54 	D28,
55 	D29,
56 	D30,
57 	D31,
58 	FPINST2,
59 	MVFR0,
60 	MVFR1,
61 	MVFR2,
62 	Q0,
63 	Q1,
64 	Q2,
65 	Q3,
66 	Q4,
67 	Q5,
68 	Q6,
69 	Q7,
70 	Q8,
71 	Q9,
72 	Q10,
73 	Q11,
74 	Q12,
75 	Q13,
76 	Q14,
77 	Q15,
78 	R0,
79 	R1,
80 	R2,
81 	R3,
82 	R4,
83 	R5,
84 	R6,
85 	R7,
86 	R8,
87 	R9,
88 	R10,
89 	R11,
90 	R12,
91 	S0,
92 	S1,
93 	S2,
94 	S3,
95 	S4,
96 	S5,
97 	S6,
98 	S7,
99 	S8,
100 	S9,
101 	S10,
102 	S11,
103 	S12,
104 	S13,
105 	S14,
106 	S15,
107 	S16,
108 	S17,
109 	S18,
110 	S19,
111 	S20,
112 	S21,
113 	S22,
114 	S23,
115 	S24,
116 	S25,
117 	S26,
118 	S27,
119 	S28,
120 	S29,
121 	S30,
122 	S31,
123 
124 	C1_C0_2,
125 	C13_C0_2,
126 	C13_C0_3,
127 
128 	ENDING,		// <-- mark the end of the list or registers
129 
130 	//> alias registers
131 	R13 = SP,
132 	R14 = LR,
133 	R15 = PC,
134 
135 	SB = R9,
136 	SL = R10,
137 	FP = R11,
138 	IP = R12,
139 }