Zydis  v4.0.0
EnumRegister.h
1 
4 typedef enum ZydisRegister_
5 {
6  ZYDIS_REGISTER_NONE,
7 
8  // General purpose registers 8-bit
9  ZYDIS_REGISTER_AL,
10  ZYDIS_REGISTER_CL,
11  ZYDIS_REGISTER_DL,
12  ZYDIS_REGISTER_BL,
13  ZYDIS_REGISTER_AH,
14  ZYDIS_REGISTER_CH,
15  ZYDIS_REGISTER_DH,
16  ZYDIS_REGISTER_BH,
17  ZYDIS_REGISTER_SPL,
18  ZYDIS_REGISTER_BPL,
19  ZYDIS_REGISTER_SIL,
20  ZYDIS_REGISTER_DIL,
21  ZYDIS_REGISTER_R8B,
22  ZYDIS_REGISTER_R9B,
23  ZYDIS_REGISTER_R10B,
24  ZYDIS_REGISTER_R11B,
25  ZYDIS_REGISTER_R12B,
26  ZYDIS_REGISTER_R13B,
27  ZYDIS_REGISTER_R14B,
28  ZYDIS_REGISTER_R15B,
29 
30  // General purpose registers 16-bit
31  ZYDIS_REGISTER_AX,
32  ZYDIS_REGISTER_CX,
33  ZYDIS_REGISTER_DX,
34  ZYDIS_REGISTER_BX,
35  ZYDIS_REGISTER_SP,
36  ZYDIS_REGISTER_BP,
37  ZYDIS_REGISTER_SI,
38  ZYDIS_REGISTER_DI,
39  ZYDIS_REGISTER_R8W,
40  ZYDIS_REGISTER_R9W,
41  ZYDIS_REGISTER_R10W,
42  ZYDIS_REGISTER_R11W,
43  ZYDIS_REGISTER_R12W,
44  ZYDIS_REGISTER_R13W,
45  ZYDIS_REGISTER_R14W,
46  ZYDIS_REGISTER_R15W,
47 
48  // General purpose registers 32-bit
49  ZYDIS_REGISTER_EAX,
50  ZYDIS_REGISTER_ECX,
51  ZYDIS_REGISTER_EDX,
52  ZYDIS_REGISTER_EBX,
53  ZYDIS_REGISTER_ESP,
54  ZYDIS_REGISTER_EBP,
55  ZYDIS_REGISTER_ESI,
56  ZYDIS_REGISTER_EDI,
57  ZYDIS_REGISTER_R8D,
58  ZYDIS_REGISTER_R9D,
59  ZYDIS_REGISTER_R10D,
60  ZYDIS_REGISTER_R11D,
61  ZYDIS_REGISTER_R12D,
62  ZYDIS_REGISTER_R13D,
63  ZYDIS_REGISTER_R14D,
64  ZYDIS_REGISTER_R15D,
65 
66  // General purpose registers 64-bit
67  ZYDIS_REGISTER_RAX,
68  ZYDIS_REGISTER_RCX,
69  ZYDIS_REGISTER_RDX,
70  ZYDIS_REGISTER_RBX,
71  ZYDIS_REGISTER_RSP,
72  ZYDIS_REGISTER_RBP,
73  ZYDIS_REGISTER_RSI,
74  ZYDIS_REGISTER_RDI,
75  ZYDIS_REGISTER_R8,
76  ZYDIS_REGISTER_R9,
77  ZYDIS_REGISTER_R10,
78  ZYDIS_REGISTER_R11,
79  ZYDIS_REGISTER_R12,
80  ZYDIS_REGISTER_R13,
81  ZYDIS_REGISTER_R14,
82  ZYDIS_REGISTER_R15,
83 
84  // Floating point legacy registers
85  ZYDIS_REGISTER_ST0,
86  ZYDIS_REGISTER_ST1,
87  ZYDIS_REGISTER_ST2,
88  ZYDIS_REGISTER_ST3,
89  ZYDIS_REGISTER_ST4,
90  ZYDIS_REGISTER_ST5,
91  ZYDIS_REGISTER_ST6,
92  ZYDIS_REGISTER_ST7,
93  ZYDIS_REGISTER_X87CONTROL,
94  ZYDIS_REGISTER_X87STATUS,
95  ZYDIS_REGISTER_X87TAG,
96 
97  // Floating point multimedia registers
98  ZYDIS_REGISTER_MM0,
99  ZYDIS_REGISTER_MM1,
100  ZYDIS_REGISTER_MM2,
101  ZYDIS_REGISTER_MM3,
102  ZYDIS_REGISTER_MM4,
103  ZYDIS_REGISTER_MM5,
104  ZYDIS_REGISTER_MM6,
105  ZYDIS_REGISTER_MM7,
106 
107  // Floating point vector registers 128-bit
108  ZYDIS_REGISTER_XMM0,
109  ZYDIS_REGISTER_XMM1,
110  ZYDIS_REGISTER_XMM2,
111  ZYDIS_REGISTER_XMM3,
112  ZYDIS_REGISTER_XMM4,
113  ZYDIS_REGISTER_XMM5,
114  ZYDIS_REGISTER_XMM6,
115  ZYDIS_REGISTER_XMM7,
116  ZYDIS_REGISTER_XMM8,
117  ZYDIS_REGISTER_XMM9,
118  ZYDIS_REGISTER_XMM10,
119  ZYDIS_REGISTER_XMM11,
120  ZYDIS_REGISTER_XMM12,
121  ZYDIS_REGISTER_XMM13,
122  ZYDIS_REGISTER_XMM14,
123  ZYDIS_REGISTER_XMM15,
124  ZYDIS_REGISTER_XMM16,
125  ZYDIS_REGISTER_XMM17,
126  ZYDIS_REGISTER_XMM18,
127  ZYDIS_REGISTER_XMM19,
128  ZYDIS_REGISTER_XMM20,
129  ZYDIS_REGISTER_XMM21,
130  ZYDIS_REGISTER_XMM22,
131  ZYDIS_REGISTER_XMM23,
132  ZYDIS_REGISTER_XMM24,
133  ZYDIS_REGISTER_XMM25,
134  ZYDIS_REGISTER_XMM26,
135  ZYDIS_REGISTER_XMM27,
136  ZYDIS_REGISTER_XMM28,
137  ZYDIS_REGISTER_XMM29,
138  ZYDIS_REGISTER_XMM30,
139  ZYDIS_REGISTER_XMM31,
140 
141  // Floating point vector registers 256-bit
142  ZYDIS_REGISTER_YMM0,
143  ZYDIS_REGISTER_YMM1,
144  ZYDIS_REGISTER_YMM2,
145  ZYDIS_REGISTER_YMM3,
146  ZYDIS_REGISTER_YMM4,
147  ZYDIS_REGISTER_YMM5,
148  ZYDIS_REGISTER_YMM6,
149  ZYDIS_REGISTER_YMM7,
150  ZYDIS_REGISTER_YMM8,
151  ZYDIS_REGISTER_YMM9,
152  ZYDIS_REGISTER_YMM10,
153  ZYDIS_REGISTER_YMM11,
154  ZYDIS_REGISTER_YMM12,
155  ZYDIS_REGISTER_YMM13,
156  ZYDIS_REGISTER_YMM14,
157  ZYDIS_REGISTER_YMM15,
158  ZYDIS_REGISTER_YMM16,
159  ZYDIS_REGISTER_YMM17,
160  ZYDIS_REGISTER_YMM18,
161  ZYDIS_REGISTER_YMM19,
162  ZYDIS_REGISTER_YMM20,
163  ZYDIS_REGISTER_YMM21,
164  ZYDIS_REGISTER_YMM22,
165  ZYDIS_REGISTER_YMM23,
166  ZYDIS_REGISTER_YMM24,
167  ZYDIS_REGISTER_YMM25,
168  ZYDIS_REGISTER_YMM26,
169  ZYDIS_REGISTER_YMM27,
170  ZYDIS_REGISTER_YMM28,
171  ZYDIS_REGISTER_YMM29,
172  ZYDIS_REGISTER_YMM30,
173  ZYDIS_REGISTER_YMM31,
174 
175  // Floating point vector registers 512-bit
176  ZYDIS_REGISTER_ZMM0,
177  ZYDIS_REGISTER_ZMM1,
178  ZYDIS_REGISTER_ZMM2,
179  ZYDIS_REGISTER_ZMM3,
180  ZYDIS_REGISTER_ZMM4,
181  ZYDIS_REGISTER_ZMM5,
182  ZYDIS_REGISTER_ZMM6,
183  ZYDIS_REGISTER_ZMM7,
184  ZYDIS_REGISTER_ZMM8,
185  ZYDIS_REGISTER_ZMM9,
186  ZYDIS_REGISTER_ZMM10,
187  ZYDIS_REGISTER_ZMM11,
188  ZYDIS_REGISTER_ZMM12,
189  ZYDIS_REGISTER_ZMM13,
190  ZYDIS_REGISTER_ZMM14,
191  ZYDIS_REGISTER_ZMM15,
192  ZYDIS_REGISTER_ZMM16,
193  ZYDIS_REGISTER_ZMM17,
194  ZYDIS_REGISTER_ZMM18,
195  ZYDIS_REGISTER_ZMM19,
196  ZYDIS_REGISTER_ZMM20,
197  ZYDIS_REGISTER_ZMM21,
198  ZYDIS_REGISTER_ZMM22,
199  ZYDIS_REGISTER_ZMM23,
200  ZYDIS_REGISTER_ZMM24,
201  ZYDIS_REGISTER_ZMM25,
202  ZYDIS_REGISTER_ZMM26,
203  ZYDIS_REGISTER_ZMM27,
204  ZYDIS_REGISTER_ZMM28,
205  ZYDIS_REGISTER_ZMM29,
206  ZYDIS_REGISTER_ZMM30,
207  ZYDIS_REGISTER_ZMM31,
208 
209  // Matrix registers
210  ZYDIS_REGISTER_TMM0,
211  ZYDIS_REGISTER_TMM1,
212  ZYDIS_REGISTER_TMM2,
213  ZYDIS_REGISTER_TMM3,
214  ZYDIS_REGISTER_TMM4,
215  ZYDIS_REGISTER_TMM5,
216  ZYDIS_REGISTER_TMM6,
217  ZYDIS_REGISTER_TMM7,
218 
219  // Flags registers
220  ZYDIS_REGISTER_FLAGS,
221  ZYDIS_REGISTER_EFLAGS,
222  ZYDIS_REGISTER_RFLAGS,
223 
224  // Instruction-pointer registers
225  ZYDIS_REGISTER_IP,
226  ZYDIS_REGISTER_EIP,
227  ZYDIS_REGISTER_RIP,
228 
229  // Segment registers
230  ZYDIS_REGISTER_ES,
231  ZYDIS_REGISTER_CS,
232  ZYDIS_REGISTER_SS,
233  ZYDIS_REGISTER_DS,
234  ZYDIS_REGISTER_FS,
235  ZYDIS_REGISTER_GS,
236 
237  // Table registers
238  ZYDIS_REGISTER_GDTR,
239  ZYDIS_REGISTER_LDTR,
240  ZYDIS_REGISTER_IDTR,
241  ZYDIS_REGISTER_TR,
242 
243  // Test registers
244  ZYDIS_REGISTER_TR0,
245  ZYDIS_REGISTER_TR1,
246  ZYDIS_REGISTER_TR2,
247  ZYDIS_REGISTER_TR3,
248  ZYDIS_REGISTER_TR4,
249  ZYDIS_REGISTER_TR5,
250  ZYDIS_REGISTER_TR6,
251  ZYDIS_REGISTER_TR7,
252 
253  // Control registers
254  ZYDIS_REGISTER_CR0,
255  ZYDIS_REGISTER_CR1,
256  ZYDIS_REGISTER_CR2,
257  ZYDIS_REGISTER_CR3,
258  ZYDIS_REGISTER_CR4,
259  ZYDIS_REGISTER_CR5,
260  ZYDIS_REGISTER_CR6,
261  ZYDIS_REGISTER_CR7,
262  ZYDIS_REGISTER_CR8,
263  ZYDIS_REGISTER_CR9,
264  ZYDIS_REGISTER_CR10,
265  ZYDIS_REGISTER_CR11,
266  ZYDIS_REGISTER_CR12,
267  ZYDIS_REGISTER_CR13,
268  ZYDIS_REGISTER_CR14,
269  ZYDIS_REGISTER_CR15,
270 
271  // Debug registers
272  ZYDIS_REGISTER_DR0,
273  ZYDIS_REGISTER_DR1,
274  ZYDIS_REGISTER_DR2,
275  ZYDIS_REGISTER_DR3,
276  ZYDIS_REGISTER_DR4,
277  ZYDIS_REGISTER_DR5,
278  ZYDIS_REGISTER_DR6,
279  ZYDIS_REGISTER_DR7,
280  ZYDIS_REGISTER_DR8,
281  ZYDIS_REGISTER_DR9,
282  ZYDIS_REGISTER_DR10,
283  ZYDIS_REGISTER_DR11,
284  ZYDIS_REGISTER_DR12,
285  ZYDIS_REGISTER_DR13,
286  ZYDIS_REGISTER_DR14,
287  ZYDIS_REGISTER_DR15,
288 
289  // Mask registers
290  ZYDIS_REGISTER_K0,
291  ZYDIS_REGISTER_K1,
292  ZYDIS_REGISTER_K2,
293  ZYDIS_REGISTER_K3,
294  ZYDIS_REGISTER_K4,
295  ZYDIS_REGISTER_K5,
296  ZYDIS_REGISTER_K6,
297  ZYDIS_REGISTER_K7,
298 
299  // Bound registers
300  ZYDIS_REGISTER_BND0,
301  ZYDIS_REGISTER_BND1,
302  ZYDIS_REGISTER_BND2,
303  ZYDIS_REGISTER_BND3,
304  ZYDIS_REGISTER_BNDCFG,
305  ZYDIS_REGISTER_BNDSTATUS,
306 
307  // Uncategorized
308  ZYDIS_REGISTER_MXCSR,
309  ZYDIS_REGISTER_PKRU,
310  ZYDIS_REGISTER_XCR0,
311  ZYDIS_REGISTER_UIF,
312 
316  ZYDIS_REGISTER_MAX_VALUE = ZYDIS_REGISTER_UIF,
320  ZYDIS_REGISTER_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_REGISTER_MAX_VALUE)
321 } ZydisRegister;