AArch64Mapping.c
Go to the documentation of this file.
1 /* Capstone Disassembly Engine */
2 /* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2015 */
3 
4 #ifdef CAPSTONE_HAS_ARM64
5 
6 #include <stdio.h> // debug
7 #include <string.h>
8 
9 #include "../../utils.h"
10 
11 #include "AArch64Mapping.h"
12 
13 #define GET_INSTRINFO_ENUM
14 #include "AArch64GenInstrInfo.inc"
15 
16 #ifndef CAPSTONE_DIET
17 static const name_map reg_name_maps[] = {
18  { ARM64_REG_INVALID, NULL },
19 
20  { ARM64_REG_X29, "x29"},
21  { ARM64_REG_X30, "x30"},
22  { ARM64_REG_NZCV, "nzcv"},
23  { ARM64_REG_SP, "sp"},
24  { ARM64_REG_WSP, "wsp"},
25  { ARM64_REG_WZR, "wzr"},
26  { ARM64_REG_XZR, "xzr"},
27  { ARM64_REG_B0, "b0"},
28  { ARM64_REG_B1, "b1"},
29  { ARM64_REG_B2, "b2"},
30  { ARM64_REG_B3, "b3"},
31  { ARM64_REG_B4, "b4"},
32  { ARM64_REG_B5, "b5"},
33  { ARM64_REG_B6, "b6"},
34  { ARM64_REG_B7, "b7"},
35  { ARM64_REG_B8, "b8"},
36  { ARM64_REG_B9, "b9"},
37  { ARM64_REG_B10, "b10"},
38  { ARM64_REG_B11, "b11"},
39  { ARM64_REG_B12, "b12"},
40  { ARM64_REG_B13, "b13"},
41  { ARM64_REG_B14, "b14"},
42  { ARM64_REG_B15, "b15"},
43  { ARM64_REG_B16, "b16"},
44  { ARM64_REG_B17, "b17"},
45  { ARM64_REG_B18, "b18"},
46  { ARM64_REG_B19, "b19"},
47  { ARM64_REG_B20, "b20"},
48  { ARM64_REG_B21, "b21"},
49  { ARM64_REG_B22, "b22"},
50  { ARM64_REG_B23, "b23"},
51  { ARM64_REG_B24, "b24"},
52  { ARM64_REG_B25, "b25"},
53  { ARM64_REG_B26, "b26"},
54  { ARM64_REG_B27, "b27"},
55  { ARM64_REG_B28, "b28"},
56  { ARM64_REG_B29, "b29"},
57  { ARM64_REG_B30, "b30"},
58  { ARM64_REG_B31, "b31"},
59  { ARM64_REG_D0, "d0"},
60  { ARM64_REG_D1, "d1"},
61  { ARM64_REG_D2, "d2"},
62  { ARM64_REG_D3, "d3"},
63  { ARM64_REG_D4, "d4"},
64  { ARM64_REG_D5, "d5"},
65  { ARM64_REG_D6, "d6"},
66  { ARM64_REG_D7, "d7"},
67  { ARM64_REG_D8, "d8"},
68  { ARM64_REG_D9, "d9"},
69  { ARM64_REG_D10, "d10"},
70  { ARM64_REG_D11, "d11"},
71  { ARM64_REG_D12, "d12"},
72  { ARM64_REG_D13, "d13"},
73  { ARM64_REG_D14, "d14"},
74  { ARM64_REG_D15, "d15"},
75  { ARM64_REG_D16, "d16"},
76  { ARM64_REG_D17, "d17"},
77  { ARM64_REG_D18, "d18"},
78  { ARM64_REG_D19, "d19"},
79  { ARM64_REG_D20, "d20"},
80  { ARM64_REG_D21, "d21"},
81  { ARM64_REG_D22, "d22"},
82  { ARM64_REG_D23, "d23"},
83  { ARM64_REG_D24, "d24"},
84  { ARM64_REG_D25, "d25"},
85  { ARM64_REG_D26, "d26"},
86  { ARM64_REG_D27, "d27"},
87  { ARM64_REG_D28, "d28"},
88  { ARM64_REG_D29, "d29"},
89  { ARM64_REG_D30, "d30"},
90  { ARM64_REG_D31, "d31"},
91  { ARM64_REG_H0, "h0"},
92  { ARM64_REG_H1, "h1"},
93  { ARM64_REG_H2, "h2"},
94  { ARM64_REG_H3, "h3"},
95  { ARM64_REG_H4, "h4"},
96  { ARM64_REG_H5, "h5"},
97  { ARM64_REG_H6, "h6"},
98  { ARM64_REG_H7, "h7"},
99  { ARM64_REG_H8, "h8"},
100  { ARM64_REG_H9, "h9"},
101  { ARM64_REG_H10, "h10"},
102  { ARM64_REG_H11, "h11"},
103  { ARM64_REG_H12, "h12"},
104  { ARM64_REG_H13, "h13"},
105  { ARM64_REG_H14, "h14"},
106  { ARM64_REG_H15, "h15"},
107  { ARM64_REG_H16, "h16"},
108  { ARM64_REG_H17, "h17"},
109  { ARM64_REG_H18, "h18"},
110  { ARM64_REG_H19, "h19"},
111  { ARM64_REG_H20, "h20"},
112  { ARM64_REG_H21, "h21"},
113  { ARM64_REG_H22, "h22"},
114  { ARM64_REG_H23, "h23"},
115  { ARM64_REG_H24, "h24"},
116  { ARM64_REG_H25, "h25"},
117  { ARM64_REG_H26, "h26"},
118  { ARM64_REG_H27, "h27"},
119  { ARM64_REG_H28, "h28"},
120  { ARM64_REG_H29, "h29"},
121  { ARM64_REG_H30, "h30"},
122  { ARM64_REG_H31, "h31"},
123  { ARM64_REG_Q0, "q0"},
124  { ARM64_REG_Q1, "q1"},
125  { ARM64_REG_Q2, "q2"},
126  { ARM64_REG_Q3, "q3"},
127  { ARM64_REG_Q4, "q4"},
128  { ARM64_REG_Q5, "q5"},
129  { ARM64_REG_Q6, "q6"},
130  { ARM64_REG_Q7, "q7"},
131  { ARM64_REG_Q8, "q8"},
132  { ARM64_REG_Q9, "q9"},
133  { ARM64_REG_Q10, "q10"},
134  { ARM64_REG_Q11, "q11"},
135  { ARM64_REG_Q12, "q12"},
136  { ARM64_REG_Q13, "q13"},
137  { ARM64_REG_Q14, "q14"},
138  { ARM64_REG_Q15, "q15"},
139  { ARM64_REG_Q16, "q16"},
140  { ARM64_REG_Q17, "q17"},
141  { ARM64_REG_Q18, "q18"},
142  { ARM64_REG_Q19, "q19"},
143  { ARM64_REG_Q20, "q20"},
144  { ARM64_REG_Q21, "q21"},
145  { ARM64_REG_Q22, "q22"},
146  { ARM64_REG_Q23, "q23"},
147  { ARM64_REG_Q24, "q24"},
148  { ARM64_REG_Q25, "q25"},
149  { ARM64_REG_Q26, "q26"},
150  { ARM64_REG_Q27, "q27"},
151  { ARM64_REG_Q28, "q28"},
152  { ARM64_REG_Q29, "q29"},
153  { ARM64_REG_Q30, "q30"},
154  { ARM64_REG_Q31, "q31"},
155  { ARM64_REG_S0, "s0"},
156  { ARM64_REG_S1, "s1"},
157  { ARM64_REG_S2, "s2"},
158  { ARM64_REG_S3, "s3"},
159  { ARM64_REG_S4, "s4"},
160  { ARM64_REG_S5, "s5"},
161  { ARM64_REG_S6, "s6"},
162  { ARM64_REG_S7, "s7"},
163  { ARM64_REG_S8, "s8"},
164  { ARM64_REG_S9, "s9"},
165  { ARM64_REG_S10, "s10"},
166  { ARM64_REG_S11, "s11"},
167  { ARM64_REG_S12, "s12"},
168  { ARM64_REG_S13, "s13"},
169  { ARM64_REG_S14, "s14"},
170  { ARM64_REG_S15, "s15"},
171  { ARM64_REG_S16, "s16"},
172  { ARM64_REG_S17, "s17"},
173  { ARM64_REG_S18, "s18"},
174  { ARM64_REG_S19, "s19"},
175  { ARM64_REG_S20, "s20"},
176  { ARM64_REG_S21, "s21"},
177  { ARM64_REG_S22, "s22"},
178  { ARM64_REG_S23, "s23"},
179  { ARM64_REG_S24, "s24"},
180  { ARM64_REG_S25, "s25"},
181  { ARM64_REG_S26, "s26"},
182  { ARM64_REG_S27, "s27"},
183  { ARM64_REG_S28, "s28"},
184  { ARM64_REG_S29, "s29"},
185  { ARM64_REG_S30, "s30"},
186  { ARM64_REG_S31, "s31"},
187  { ARM64_REG_W0, "w0"},
188  { ARM64_REG_W1, "w1"},
189  { ARM64_REG_W2, "w2"},
190  { ARM64_REG_W3, "w3"},
191  { ARM64_REG_W4, "w4"},
192  { ARM64_REG_W5, "w5"},
193  { ARM64_REG_W6, "w6"},
194  { ARM64_REG_W7, "w7"},
195  { ARM64_REG_W8, "w8"},
196  { ARM64_REG_W9, "w9"},
197  { ARM64_REG_W10, "w10"},
198  { ARM64_REG_W11, "w11"},
199  { ARM64_REG_W12, "w12"},
200  { ARM64_REG_W13, "w13"},
201  { ARM64_REG_W14, "w14"},
202  { ARM64_REG_W15, "w15"},
203  { ARM64_REG_W16, "w16"},
204  { ARM64_REG_W17, "w17"},
205  { ARM64_REG_W18, "w18"},
206  { ARM64_REG_W19, "w19"},
207  { ARM64_REG_W20, "w20"},
208  { ARM64_REG_W21, "w21"},
209  { ARM64_REG_W22, "w22"},
210  { ARM64_REG_W23, "w23"},
211  { ARM64_REG_W24, "w24"},
212  { ARM64_REG_W25, "w25"},
213  { ARM64_REG_W26, "w26"},
214  { ARM64_REG_W27, "w27"},
215  { ARM64_REG_W28, "w28"},
216  { ARM64_REG_W29, "w29"},
217  { ARM64_REG_W30, "w30"},
218  { ARM64_REG_X0, "x0"},
219  { ARM64_REG_X1, "x1"},
220  { ARM64_REG_X2, "x2"},
221  { ARM64_REG_X3, "x3"},
222  { ARM64_REG_X4, "x4"},
223  { ARM64_REG_X5, "x5"},
224  { ARM64_REG_X6, "x6"},
225  { ARM64_REG_X7, "x7"},
226  { ARM64_REG_X8, "x8"},
227  { ARM64_REG_X9, "x9"},
228  { ARM64_REG_X10, "x10"},
229  { ARM64_REG_X11, "x11"},
230  { ARM64_REG_X12, "x12"},
231  { ARM64_REG_X13, "x13"},
232  { ARM64_REG_X14, "x14"},
233  { ARM64_REG_X15, "x15"},
234  { ARM64_REG_X16, "x16"},
235  { ARM64_REG_X17, "x17"},
236  { ARM64_REG_X18, "x18"},
237  { ARM64_REG_X19, "x19"},
238  { ARM64_REG_X20, "x20"},
239  { ARM64_REG_X21, "x21"},
240  { ARM64_REG_X22, "x22"},
241  { ARM64_REG_X23, "x23"},
242  { ARM64_REG_X24, "x24"},
243  { ARM64_REG_X25, "x25"},
244  { ARM64_REG_X26, "x26"},
245  { ARM64_REG_X27, "x27"},
246  { ARM64_REG_X28, "x28"},
247 
248  { ARM64_REG_V0, "v0"},
249  { ARM64_REG_V1, "v1"},
250  { ARM64_REG_V2, "v2"},
251  { ARM64_REG_V3, "v3"},
252  { ARM64_REG_V4, "v4"},
253  { ARM64_REG_V5, "v5"},
254  { ARM64_REG_V6, "v6"},
255  { ARM64_REG_V7, "v7"},
256  { ARM64_REG_V8, "v8"},
257  { ARM64_REG_V9, "v9"},
258  { ARM64_REG_V10, "v10"},
259  { ARM64_REG_V11, "v11"},
260  { ARM64_REG_V12, "v12"},
261  { ARM64_REG_V13, "v13"},
262  { ARM64_REG_V14, "v14"},
263  { ARM64_REG_V15, "v15"},
264  { ARM64_REG_V16, "v16"},
265  { ARM64_REG_V17, "v17"},
266  { ARM64_REG_V18, "v18"},
267  { ARM64_REG_V19, "v19"},
268  { ARM64_REG_V20, "v20"},
269  { ARM64_REG_V21, "v21"},
270  { ARM64_REG_V22, "v22"},
271  { ARM64_REG_V23, "v23"},
272  { ARM64_REG_V24, "v24"},
273  { ARM64_REG_V25, "v25"},
274  { ARM64_REG_V26, "v26"},
275  { ARM64_REG_V27, "v27"},
276  { ARM64_REG_V28, "v28"},
277  { ARM64_REG_V29, "v29"},
278  { ARM64_REG_V30, "v30"},
279  { ARM64_REG_V31, "v31"},
280 };
281 #endif
282 
283 const char *AArch64_reg_name(csh handle, unsigned int reg)
284 {
285 #ifndef CAPSTONE_DIET
286  if (reg >= ARR_SIZE(reg_name_maps))
287  return NULL;
288 
289  return reg_name_maps[reg].name;
290 #else
291  return NULL;
292 #endif
293 }
294 
295 static const insn_map insns[] = {
296  // dummy item
297  {
298  0, 0,
299 #ifndef CAPSTONE_DIET
300  { 0 }, { 0 }, { 0 }, 0, 0
301 #endif
302  },
303 
304 #include "AArch64MappingInsn.inc"
305 };
306 
307 // given internal insn id, return public instruction info
308 void AArch64_get_insn_id(cs_struct *h, cs_insn *insn, unsigned int id)
309 {
310  int i = insn_find(insns, ARR_SIZE(insns), id, &h->insn_cache);
311  if (i != 0) {
312  insn->id = insns[i].mapid;
313 
314  if (h->detail) {
315 #ifndef CAPSTONE_DIET
317  handle.detail = h->detail;
318 
319  memcpy(insn->detail->regs_read, insns[i].regs_use, sizeof(insns[i].regs_use));
320  insn->detail->regs_read_count = (uint8_t)count_positive(insns[i].regs_use);
321 
322  memcpy(insn->detail->regs_write, insns[i].regs_mod, sizeof(insns[i].regs_mod));
323  insn->detail->regs_write_count = (uint8_t)count_positive(insns[i].regs_mod);
324 
325  memcpy(insn->detail->groups, insns[i].groups, sizeof(insns[i].groups));
326  insn->detail->groups_count = (uint8_t)count_positive8(insns[i].groups);
327 
328  insn->detail->arm64.update_flags = cs_reg_write((csh)&handle, insn, ARM64_REG_NZCV);
329 #endif
330  }
331  }
332 }
333 
334 static const name_map insn_name_maps[] = {
335  { ARM64_INS_INVALID, NULL },
336 
337  { ARM64_INS_ABS, "abs" },
338  { ARM64_INS_ADC, "adc" },
339  { ARM64_INS_ADDHN, "addhn" },
340  { ARM64_INS_ADDHN2, "addhn2" },
341  { ARM64_INS_ADDP, "addp" },
342  { ARM64_INS_ADD, "add" },
343  { ARM64_INS_ADDV, "addv" },
344  { ARM64_INS_ADR, "adr" },
345  { ARM64_INS_ADRP, "adrp" },
346  { ARM64_INS_AESD, "aesd" },
347  { ARM64_INS_AESE, "aese" },
348  { ARM64_INS_AESIMC, "aesimc" },
349  { ARM64_INS_AESMC, "aesmc" },
350  { ARM64_INS_AND, "and" },
351  { ARM64_INS_ASR, "asr" },
352  { ARM64_INS_B, "b" },
353  { ARM64_INS_BFM, "bfm" },
354  { ARM64_INS_BIC, "bic" },
355  { ARM64_INS_BIF, "bif" },
356  { ARM64_INS_BIT, "bit" },
357  { ARM64_INS_BL, "bl" },
358  { ARM64_INS_BLR, "blr" },
359  { ARM64_INS_BR, "br" },
360  { ARM64_INS_BRK, "brk" },
361  { ARM64_INS_BSL, "bsl" },
362  { ARM64_INS_CBNZ, "cbnz" },
363  { ARM64_INS_CBZ, "cbz" },
364  { ARM64_INS_CCMN, "ccmn" },
365  { ARM64_INS_CCMP, "ccmp" },
366  { ARM64_INS_CLREX, "clrex" },
367  { ARM64_INS_CLS, "cls" },
368  { ARM64_INS_CLZ, "clz" },
369  { ARM64_INS_CMEQ, "cmeq" },
370  { ARM64_INS_CMGE, "cmge" },
371  { ARM64_INS_CMGT, "cmgt" },
372  { ARM64_INS_CMHI, "cmhi" },
373  { ARM64_INS_CMHS, "cmhs" },
374  { ARM64_INS_CMLE, "cmle" },
375  { ARM64_INS_CMLT, "cmlt" },
376  { ARM64_INS_CMTST, "cmtst" },
377  { ARM64_INS_CNT, "cnt" },
378  { ARM64_INS_MOV, "mov" },
379  { ARM64_INS_CRC32B, "crc32b" },
380  { ARM64_INS_CRC32CB, "crc32cb" },
381  { ARM64_INS_CRC32CH, "crc32ch" },
382  { ARM64_INS_CRC32CW, "crc32cw" },
383  { ARM64_INS_CRC32CX, "crc32cx" },
384  { ARM64_INS_CRC32H, "crc32h" },
385  { ARM64_INS_CRC32W, "crc32w" },
386  { ARM64_INS_CRC32X, "crc32x" },
387  { ARM64_INS_CSEL, "csel" },
388  { ARM64_INS_CSINC, "csinc" },
389  { ARM64_INS_CSINV, "csinv" },
390  { ARM64_INS_CSNEG, "csneg" },
391  { ARM64_INS_DCPS1, "dcps1" },
392  { ARM64_INS_DCPS2, "dcps2" },
393  { ARM64_INS_DCPS3, "dcps3" },
394  { ARM64_INS_DMB, "dmb" },
395  { ARM64_INS_DRPS, "drps" },
396  { ARM64_INS_DSB, "dsb" },
397  { ARM64_INS_DUP, "dup" },
398  { ARM64_INS_EON, "eon" },
399  { ARM64_INS_EOR, "eor" },
400  { ARM64_INS_ERET, "eret" },
401  { ARM64_INS_EXTR, "extr" },
402  { ARM64_INS_EXT, "ext" },
403  { ARM64_INS_FABD, "fabd" },
404  { ARM64_INS_FABS, "fabs" },
405  { ARM64_INS_FACGE, "facge" },
406  { ARM64_INS_FACGT, "facgt" },
407  { ARM64_INS_FADD, "fadd" },
408  { ARM64_INS_FADDP, "faddp" },
409  { ARM64_INS_FCCMP, "fccmp" },
410  { ARM64_INS_FCCMPE, "fccmpe" },
411  { ARM64_INS_FCMEQ, "fcmeq" },
412  { ARM64_INS_FCMGE, "fcmge" },
413  { ARM64_INS_FCMGT, "fcmgt" },
414  { ARM64_INS_FCMLE, "fcmle" },
415  { ARM64_INS_FCMLT, "fcmlt" },
416  { ARM64_INS_FCMP, "fcmp" },
417  { ARM64_INS_FCMPE, "fcmpe" },
418  { ARM64_INS_FCSEL, "fcsel" },
419  { ARM64_INS_FCVTAS, "fcvtas" },
420  { ARM64_INS_FCVTAU, "fcvtau" },
421  { ARM64_INS_FCVT, "fcvt" },
422  { ARM64_INS_FCVTL, "fcvtl" },
423  { ARM64_INS_FCVTL2, "fcvtl2" },
424  { ARM64_INS_FCVTMS, "fcvtms" },
425  { ARM64_INS_FCVTMU, "fcvtmu" },
426  { ARM64_INS_FCVTNS, "fcvtns" },
427  { ARM64_INS_FCVTNU, "fcvtnu" },
428  { ARM64_INS_FCVTN, "fcvtn" },
429  { ARM64_INS_FCVTN2, "fcvtn2" },
430  { ARM64_INS_FCVTPS, "fcvtps" },
431  { ARM64_INS_FCVTPU, "fcvtpu" },
432  { ARM64_INS_FCVTXN, "fcvtxn" },
433  { ARM64_INS_FCVTXN2, "fcvtxn2" },
434  { ARM64_INS_FCVTZS, "fcvtzs" },
435  { ARM64_INS_FCVTZU, "fcvtzu" },
436  { ARM64_INS_FDIV, "fdiv" },
437  { ARM64_INS_FMADD, "fmadd" },
438  { ARM64_INS_FMAX, "fmax" },
439  { ARM64_INS_FMAXNM, "fmaxnm" },
440  { ARM64_INS_FMAXNMP, "fmaxnmp" },
441  { ARM64_INS_FMAXNMV, "fmaxnmv" },
442  { ARM64_INS_FMAXP, "fmaxp" },
443  { ARM64_INS_FMAXV, "fmaxv" },
444  { ARM64_INS_FMIN, "fmin" },
445  { ARM64_INS_FMINNM, "fminnm" },
446  { ARM64_INS_FMINNMP, "fminnmp" },
447  { ARM64_INS_FMINNMV, "fminnmv" },
448  { ARM64_INS_FMINP, "fminp" },
449  { ARM64_INS_FMINV, "fminv" },
450  { ARM64_INS_FMLA, "fmla" },
451  { ARM64_INS_FMLS, "fmls" },
452  { ARM64_INS_FMOV, "fmov" },
453  { ARM64_INS_FMSUB, "fmsub" },
454  { ARM64_INS_FMUL, "fmul" },
455  { ARM64_INS_FMULX, "fmulx" },
456  { ARM64_INS_FNEG, "fneg" },
457  { ARM64_INS_FNMADD, "fnmadd" },
458  { ARM64_INS_FNMSUB, "fnmsub" },
459  { ARM64_INS_FNMUL, "fnmul" },
460  { ARM64_INS_FRECPE, "frecpe" },
461  { ARM64_INS_FRECPS, "frecps" },
462  { ARM64_INS_FRECPX, "frecpx" },
463  { ARM64_INS_FRINTA, "frinta" },
464  { ARM64_INS_FRINTI, "frinti" },
465  { ARM64_INS_FRINTM, "frintm" },
466  { ARM64_INS_FRINTN, "frintn" },
467  { ARM64_INS_FRINTP, "frintp" },
468  { ARM64_INS_FRINTX, "frintx" },
469  { ARM64_INS_FRINTZ, "frintz" },
470  { ARM64_INS_FRSQRTE, "frsqrte" },
471  { ARM64_INS_FRSQRTS, "frsqrts" },
472  { ARM64_INS_FSQRT, "fsqrt" },
473  { ARM64_INS_FSUB, "fsub" },
474  { ARM64_INS_HINT, "hint" },
475  { ARM64_INS_HLT, "hlt" },
476  { ARM64_INS_HVC, "hvc" },
477  { ARM64_INS_INS, "ins" },
478  { ARM64_INS_ISB, "isb" },
479  { ARM64_INS_LD1, "ld1" },
480  { ARM64_INS_LD1R, "ld1r" },
481  { ARM64_INS_LD2R, "ld2r" },
482  { ARM64_INS_LD2, "ld2" },
483  { ARM64_INS_LD3R, "ld3r" },
484  { ARM64_INS_LD3, "ld3" },
485  { ARM64_INS_LD4, "ld4" },
486  { ARM64_INS_LD4R, "ld4r" },
487  { ARM64_INS_LDARB, "ldarb" },
488  { ARM64_INS_LDARH, "ldarh" },
489  { ARM64_INS_LDAR, "ldar" },
490  { ARM64_INS_LDAXP, "ldaxp" },
491  { ARM64_INS_LDAXRB, "ldaxrb" },
492  { ARM64_INS_LDAXRH, "ldaxrh" },
493  { ARM64_INS_LDAXR, "ldaxr" },
494  { ARM64_INS_LDNP, "ldnp" },
495  { ARM64_INS_LDP, "ldp" },
496  { ARM64_INS_LDPSW, "ldpsw" },
497  { ARM64_INS_LDRB, "ldrb" },
498  { ARM64_INS_LDR, "ldr" },
499  { ARM64_INS_LDRH, "ldrh" },
500  { ARM64_INS_LDRSB, "ldrsb" },
501  { ARM64_INS_LDRSH, "ldrsh" },
502  { ARM64_INS_LDRSW, "ldrsw" },
503  { ARM64_INS_LDTRB, "ldtrb" },
504  { ARM64_INS_LDTRH, "ldtrh" },
505  { ARM64_INS_LDTRSB, "ldtrsb" },
506  { ARM64_INS_LDTRSH, "ldtrsh" },
507  { ARM64_INS_LDTRSW, "ldtrsw" },
508  { ARM64_INS_LDTR, "ldtr" },
509  { ARM64_INS_LDURB, "ldurb" },
510  { ARM64_INS_LDUR, "ldur" },
511  { ARM64_INS_LDURH, "ldurh" },
512  { ARM64_INS_LDURSB, "ldursb" },
513  { ARM64_INS_LDURSH, "ldursh" },
514  { ARM64_INS_LDURSW, "ldursw" },
515  { ARM64_INS_LDXP, "ldxp" },
516  { ARM64_INS_LDXRB, "ldxrb" },
517  { ARM64_INS_LDXRH, "ldxrh" },
518  { ARM64_INS_LDXR, "ldxr" },
519  { ARM64_INS_LSL, "lsl" },
520  { ARM64_INS_LSR, "lsr" },
521  { ARM64_INS_MADD, "madd" },
522  { ARM64_INS_MLA, "mla" },
523  { ARM64_INS_MLS, "mls" },
524  { ARM64_INS_MOVI, "movi" },
525  { ARM64_INS_MOVK, "movk" },
526  { ARM64_INS_MOVN, "movn" },
527  { ARM64_INS_MOVZ, "movz" },
528  { ARM64_INS_MRS, "mrs" },
529  { ARM64_INS_MSR, "msr" },
530  { ARM64_INS_MSUB, "msub" },
531  { ARM64_INS_MUL, "mul" },
532  { ARM64_INS_MVNI, "mvni" },
533  { ARM64_INS_NEG, "neg" },
534  { ARM64_INS_NOT, "not" },
535  { ARM64_INS_ORN, "orn" },
536  { ARM64_INS_ORR, "orr" },
537  { ARM64_INS_PMULL2, "pmull2" },
538  { ARM64_INS_PMULL, "pmull" },
539  { ARM64_INS_PMUL, "pmul" },
540  { ARM64_INS_PRFM, "prfm" },
541  { ARM64_INS_PRFUM, "prfum" },
542  { ARM64_INS_RADDHN, "raddhn" },
543  { ARM64_INS_RADDHN2, "raddhn2" },
544  { ARM64_INS_RBIT, "rbit" },
545  { ARM64_INS_RET, "ret" },
546  { ARM64_INS_REV16, "rev16" },
547  { ARM64_INS_REV32, "rev32" },
548  { ARM64_INS_REV64, "rev64" },
549  { ARM64_INS_REV, "rev" },
550  { ARM64_INS_ROR, "ror" },
551  { ARM64_INS_RSHRN2, "rshrn2" },
552  { ARM64_INS_RSHRN, "rshrn" },
553  { ARM64_INS_RSUBHN, "rsubhn" },
554  { ARM64_INS_RSUBHN2, "rsubhn2" },
555  { ARM64_INS_SABAL2, "sabal2" },
556  { ARM64_INS_SABAL, "sabal" },
557  { ARM64_INS_SABA, "saba" },
558  { ARM64_INS_SABDL2, "sabdl2" },
559  { ARM64_INS_SABDL, "sabdl" },
560  { ARM64_INS_SABD, "sabd" },
561  { ARM64_INS_SADALP, "sadalp" },
562  { ARM64_INS_SADDLP, "saddlp" },
563  { ARM64_INS_SADDLV, "saddlv" },
564  { ARM64_INS_SADDL2, "saddl2" },
565  { ARM64_INS_SADDL, "saddl" },
566  { ARM64_INS_SADDW2, "saddw2" },
567  { ARM64_INS_SADDW, "saddw" },
568  { ARM64_INS_SBC, "sbc" },
569  { ARM64_INS_SBFM, "sbfm" },
570  { ARM64_INS_SCVTF, "scvtf" },
571  { ARM64_INS_SDIV, "sdiv" },
572  { ARM64_INS_SHA1C, "sha1c" },
573  { ARM64_INS_SHA1H, "sha1h" },
574  { ARM64_INS_SHA1M, "sha1m" },
575  { ARM64_INS_SHA1P, "sha1p" },
576  { ARM64_INS_SHA1SU0, "sha1su0" },
577  { ARM64_INS_SHA1SU1, "sha1su1" },
578  { ARM64_INS_SHA256H2, "sha256h2" },
579  { ARM64_INS_SHA256H, "sha256h" },
580  { ARM64_INS_SHA256SU0, "sha256su0" },
581  { ARM64_INS_SHA256SU1, "sha256su1" },
582  { ARM64_INS_SHADD, "shadd" },
583  { ARM64_INS_SHLL2, "shll2" },
584  { ARM64_INS_SHLL, "shll" },
585  { ARM64_INS_SHL, "shl" },
586  { ARM64_INS_SHRN2, "shrn2" },
587  { ARM64_INS_SHRN, "shrn" },
588  { ARM64_INS_SHSUB, "shsub" },
589  { ARM64_INS_SLI, "sli" },
590  { ARM64_INS_SMADDL, "smaddl" },
591  { ARM64_INS_SMAXP, "smaxp" },
592  { ARM64_INS_SMAXV, "smaxv" },
593  { ARM64_INS_SMAX, "smax" },
594  { ARM64_INS_SMC, "smc" },
595  { ARM64_INS_SMINP, "sminp" },
596  { ARM64_INS_SMINV, "sminv" },
597  { ARM64_INS_SMIN, "smin" },
598  { ARM64_INS_SMLAL2, "smlal2" },
599  { ARM64_INS_SMLAL, "smlal" },
600  { ARM64_INS_SMLSL2, "smlsl2" },
601  { ARM64_INS_SMLSL, "smlsl" },
602  { ARM64_INS_SMOV, "smov" },
603  { ARM64_INS_SMSUBL, "smsubl" },
604  { ARM64_INS_SMULH, "smulh" },
605  { ARM64_INS_SMULL2, "smull2" },
606  { ARM64_INS_SMULL, "smull" },
607  { ARM64_INS_SQABS, "sqabs" },
608  { ARM64_INS_SQADD, "sqadd" },
609  { ARM64_INS_SQDMLAL, "sqdmlal" },
610  { ARM64_INS_SQDMLAL2, "sqdmlal2" },
611  { ARM64_INS_SQDMLSL, "sqdmlsl" },
612  { ARM64_INS_SQDMLSL2, "sqdmlsl2" },
613  { ARM64_INS_SQDMULH, "sqdmulh" },
614  { ARM64_INS_SQDMULL, "sqdmull" },
615  { ARM64_INS_SQDMULL2, "sqdmull2" },
616  { ARM64_INS_SQNEG, "sqneg" },
617  { ARM64_INS_SQRDMULH, "sqrdmulh" },
618  { ARM64_INS_SQRSHL, "sqrshl" },
619  { ARM64_INS_SQRSHRN, "sqrshrn" },
620  { ARM64_INS_SQRSHRN2, "sqrshrn2" },
621  { ARM64_INS_SQRSHRUN, "sqrshrun" },
622  { ARM64_INS_SQRSHRUN2, "sqrshrun2" },
623  { ARM64_INS_SQSHLU, "sqshlu" },
624  { ARM64_INS_SQSHL, "sqshl" },
625  { ARM64_INS_SQSHRN, "sqshrn" },
626  { ARM64_INS_SQSHRN2, "sqshrn2" },
627  { ARM64_INS_SQSHRUN, "sqshrun" },
628  { ARM64_INS_SQSHRUN2, "sqshrun2" },
629  { ARM64_INS_SQSUB, "sqsub" },
630  { ARM64_INS_SQXTN2, "sqxtn2" },
631  { ARM64_INS_SQXTN, "sqxtn" },
632  { ARM64_INS_SQXTUN2, "sqxtun2" },
633  { ARM64_INS_SQXTUN, "sqxtun" },
634  { ARM64_INS_SRHADD, "srhadd" },
635  { ARM64_INS_SRI, "sri" },
636  { ARM64_INS_SRSHL, "srshl" },
637  { ARM64_INS_SRSHR, "srshr" },
638  { ARM64_INS_SRSRA, "srsra" },
639  { ARM64_INS_SSHLL2, "sshll2" },
640  { ARM64_INS_SSHLL, "sshll" },
641  { ARM64_INS_SSHL, "sshl" },
642  { ARM64_INS_SSHR, "sshr" },
643  { ARM64_INS_SSRA, "ssra" },
644  { ARM64_INS_SSUBL2, "ssubl2" },
645  { ARM64_INS_SSUBL, "ssubl" },
646  { ARM64_INS_SSUBW2, "ssubw2" },
647  { ARM64_INS_SSUBW, "ssubw" },
648  { ARM64_INS_ST1, "st1" },
649  { ARM64_INS_ST2, "st2" },
650  { ARM64_INS_ST3, "st3" },
651  { ARM64_INS_ST4, "st4" },
652  { ARM64_INS_STLRB, "stlrb" },
653  { ARM64_INS_STLRH, "stlrh" },
654  { ARM64_INS_STLR, "stlr" },
655  { ARM64_INS_STLXP, "stlxp" },
656  { ARM64_INS_STLXRB, "stlxrb" },
657  { ARM64_INS_STLXRH, "stlxrh" },
658  { ARM64_INS_STLXR, "stlxr" },
659  { ARM64_INS_STNP, "stnp" },
660  { ARM64_INS_STP, "stp" },
661  { ARM64_INS_STRB, "strb" },
662  { ARM64_INS_STR, "str" },
663  { ARM64_INS_STRH, "strh" },
664  { ARM64_INS_STTRB, "sttrb" },
665  { ARM64_INS_STTRH, "sttrh" },
666  { ARM64_INS_STTR, "sttr" },
667  { ARM64_INS_STURB, "sturb" },
668  { ARM64_INS_STUR, "stur" },
669  { ARM64_INS_STURH, "sturh" },
670  { ARM64_INS_STXP, "stxp" },
671  { ARM64_INS_STXRB, "stxrb" },
672  { ARM64_INS_STXRH, "stxrh" },
673  { ARM64_INS_STXR, "stxr" },
674  { ARM64_INS_SUBHN, "subhn" },
675  { ARM64_INS_SUBHN2, "subhn2" },
676  { ARM64_INS_SUB, "sub" },
677  { ARM64_INS_SUQADD, "suqadd" },
678  { ARM64_INS_SVC, "svc" },
679  { ARM64_INS_SYSL, "sysl" },
680  { ARM64_INS_SYS, "sys" },
681  { ARM64_INS_TBL, "tbl" },
682  { ARM64_INS_TBNZ, "tbnz" },
683  { ARM64_INS_TBX, "tbx" },
684  { ARM64_INS_TBZ, "tbz" },
685  { ARM64_INS_TRN1, "trn1" },
686  { ARM64_INS_TRN2, "trn2" },
687  { ARM64_INS_UABAL2, "uabal2" },
688  { ARM64_INS_UABAL, "uabal" },
689  { ARM64_INS_UABA, "uaba" },
690  { ARM64_INS_UABDL2, "uabdl2" },
691  { ARM64_INS_UABDL, "uabdl" },
692  { ARM64_INS_UABD, "uabd" },
693  { ARM64_INS_UADALP, "uadalp" },
694  { ARM64_INS_UADDLP, "uaddlp" },
695  { ARM64_INS_UADDLV, "uaddlv" },
696  { ARM64_INS_UADDL2, "uaddl2" },
697  { ARM64_INS_UADDL, "uaddl" },
698  { ARM64_INS_UADDW2, "uaddw2" },
699  { ARM64_INS_UADDW, "uaddw" },
700  { ARM64_INS_UBFM, "ubfm" },
701  { ARM64_INS_UCVTF, "ucvtf" },
702  { ARM64_INS_UDIV, "udiv" },
703  { ARM64_INS_UHADD, "uhadd" },
704  { ARM64_INS_UHSUB, "uhsub" },
705  { ARM64_INS_UMADDL, "umaddl" },
706  { ARM64_INS_UMAXP, "umaxp" },
707  { ARM64_INS_UMAXV, "umaxv" },
708  { ARM64_INS_UMAX, "umax" },
709  { ARM64_INS_UMINP, "uminp" },
710  { ARM64_INS_UMINV, "uminv" },
711  { ARM64_INS_UMIN, "umin" },
712  { ARM64_INS_UMLAL2, "umlal2" },
713  { ARM64_INS_UMLAL, "umlal" },
714  { ARM64_INS_UMLSL2, "umlsl2" },
715  { ARM64_INS_UMLSL, "umlsl" },
716  { ARM64_INS_UMOV, "umov" },
717  { ARM64_INS_UMSUBL, "umsubl" },
718  { ARM64_INS_UMULH, "umulh" },
719  { ARM64_INS_UMULL2, "umull2" },
720  { ARM64_INS_UMULL, "umull" },
721  { ARM64_INS_UQADD, "uqadd" },
722  { ARM64_INS_UQRSHL, "uqrshl" },
723  { ARM64_INS_UQRSHRN, "uqrshrn" },
724  { ARM64_INS_UQRSHRN2, "uqrshrn2" },
725  { ARM64_INS_UQSHL, "uqshl" },
726  { ARM64_INS_UQSHRN, "uqshrn" },
727  { ARM64_INS_UQSHRN2, "uqshrn2" },
728  { ARM64_INS_UQSUB, "uqsub" },
729  { ARM64_INS_UQXTN2, "uqxtn2" },
730  { ARM64_INS_UQXTN, "uqxtn" },
731  { ARM64_INS_URECPE, "urecpe" },
732  { ARM64_INS_URHADD, "urhadd" },
733  { ARM64_INS_URSHL, "urshl" },
734  { ARM64_INS_URSHR, "urshr" },
735  { ARM64_INS_URSQRTE, "ursqrte" },
736  { ARM64_INS_URSRA, "ursra" },
737  { ARM64_INS_USHLL2, "ushll2" },
738  { ARM64_INS_USHLL, "ushll" },
739  { ARM64_INS_USHL, "ushl" },
740  { ARM64_INS_USHR, "ushr" },
741  { ARM64_INS_USQADD, "usqadd" },
742  { ARM64_INS_USRA, "usra" },
743  { ARM64_INS_USUBL2, "usubl2" },
744  { ARM64_INS_USUBL, "usubl" },
745  { ARM64_INS_USUBW2, "usubw2" },
746  { ARM64_INS_USUBW, "usubw" },
747  { ARM64_INS_UZP1, "uzp1" },
748  { ARM64_INS_UZP2, "uzp2" },
749  { ARM64_INS_XTN2, "xtn2" },
750  { ARM64_INS_XTN, "xtn" },
751  { ARM64_INS_ZIP1, "zip1" },
752  { ARM64_INS_ZIP2, "zip2" },
753 };
754 
755 // map *S & alias instructions back to original id
756 static const name_map alias_insn_name_maps[] = {
757  { ARM64_INS_ADC, "adcs" },
758  { ARM64_INS_AND, "ands" },
759  { ARM64_INS_ADD, "adds" },
760  { ARM64_INS_BIC, "bics" },
761  { ARM64_INS_SBC, "sbcs" },
762  { ARM64_INS_SUB, "subs" },
763 
764  // alias insn
765  { ARM64_INS_MNEG, "mneg" },
766  { ARM64_INS_UMNEGL, "umnegl" },
767  { ARM64_INS_SMNEGL, "smnegl" },
768  { ARM64_INS_NOP, "nop" },
769  { ARM64_INS_YIELD, "yield" },
770  { ARM64_INS_WFE, "wfe" },
771  { ARM64_INS_WFI, "wfi" },
772  { ARM64_INS_SEV, "sev" },
773  { ARM64_INS_SEVL, "sevl" },
774  { ARM64_INS_NGC, "ngc" },
775  { ARM64_INS_NGCS, "ngcs" },
776  { ARM64_INS_NEGS, "negs" },
777 
778  { ARM64_INS_SBFIZ, "sbfiz" },
779  { ARM64_INS_UBFIZ, "ubfiz" },
780  { ARM64_INS_SBFX, "sbfx" },
781  { ARM64_INS_UBFX, "ubfx" },
782  { ARM64_INS_BFI, "bfi" },
783  { ARM64_INS_BFXIL, "bfxil" },
784  { ARM64_INS_CMN, "cmn" },
785  { ARM64_INS_MVN, "mvn" },
786  { ARM64_INS_TST, "tst" },
787  { ARM64_INS_CSET, "cset" },
788  { ARM64_INS_CINC, "cinc" },
789  { ARM64_INS_CSETM, "csetm" },
790  { ARM64_INS_CINV, "cinv" },
791  { ARM64_INS_CNEG, "cneg" },
792  { ARM64_INS_SXTB, "sxtb" },
793  { ARM64_INS_SXTH, "sxth" },
794  { ARM64_INS_SXTW, "sxtw" },
795  { ARM64_INS_CMP, "cmp" },
796  { ARM64_INS_UXTB, "uxtb" },
797  { ARM64_INS_UXTH, "uxth" },
798  { ARM64_INS_UXTW, "uxtw" },
799 
800  { ARM64_INS_IC, "ic" },
801  { ARM64_INS_DC, "dc" },
802  { ARM64_INS_AT, "at" },
803  { ARM64_INS_TLBI, "tlbi" },
804 };
805 
806 const char *AArch64_insn_name(csh handle, unsigned int id)
807 {
808 #ifndef CAPSTONE_DIET
809  unsigned int i;
810 
811  if (id >= ARM64_INS_ENDING)
812  return NULL;
813 
814  if (id < ARR_SIZE(insn_name_maps))
815  return insn_name_maps[id].name;
816 
817  // then find alias insn
818  for (i = 0; i < ARR_SIZE(alias_insn_name_maps); i++) {
819  if (alias_insn_name_maps[i].id == id)
820  return alias_insn_name_maps[i].name;
821  }
822 
823  // not found
824  return NULL;
825 #else
826  return NULL;
827 #endif
828 }
829 
830 #ifndef CAPSTONE_DIET
831 static const name_map group_name_maps[] = {
832  // generic groups
833  { ARM64_GRP_INVALID, NULL },
834  { ARM64_GRP_JUMP, "jump" },
835  { ARM64_GRP_CALL, "call" },
836  { ARM64_GRP_RET, "return" },
837  { ARM64_GRP_PRIVILEGE, "privilege" },
838  { ARM64_GRP_INT, "int" },
839  { ARM64_GRP_BRANCH_RELATIVE, "branch_relative" },
840 
841  // architecture-specific groups
842  { ARM64_GRP_CRYPTO, "crypto" },
843  { ARM64_GRP_FPARMV8, "fparmv8" },
844  { ARM64_GRP_NEON, "neon" },
845  { ARM64_GRP_CRC, "crc" },
846 };
847 #endif
848 
849 const char *AArch64_group_name(csh handle, unsigned int id)
850 {
851 #ifndef CAPSTONE_DIET
853 #else
854  return NULL;
855 #endif
856 }
857 
858 // map instruction name to public instruction ID
859 arm64_reg AArch64_map_insn(const char *name)
860 {
861  // NOTE: skip first NULL name in insn_name_maps
862  int i = name2id(&insn_name_maps[1], ARR_SIZE(insn_name_maps) - 1, name);
863 
864  if (i == -1)
865  // try again with 'special' insn that is not available in insn_name_maps
866  i = name2id(alias_insn_name_maps, ARR_SIZE(alias_insn_name_maps), name);
867 
868  return (i != -1)? i : ARM64_REG_INVALID;
869 }
870 
871 // map internal raw vregister to 'public' register
872 arm64_reg AArch64_map_vregister(unsigned int r)
873 {
874  // for some reasons different Arm64 can map different register number to
875  // the same register. this function handles the issue for exposing Mips
876  // operands by mapping internal registers to 'public' register.
877  static const unsigned int map[] = { 0,
878  0, 0, 0, 0, 0,
879  0, 0, 0, 0, 0,
880  0, 0, 0, 0, 0,
881  0, 0, 0, 0, 0,
882  0, 0, 0, 0, 0,
883  0, 0, 0, 0, 0,
884  0, 0, 0, 0, 0,
885  0, 0, 0, 0, ARM64_REG_V0,
892  ARM64_REG_V31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
893  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
894  0, 0, 0, ARM64_REG_V0, ARM64_REG_V1,
901  0, 0, 0, 0, 0,
902  0, 0, 0, 0, 0,
903  0, 0, 0, 0, 0,
904  0, 0, 0, 0, 0,
905  0, 0, 0, 0, 0,
906  0, 0, 0, 0, 0,
907  0, 0, 0, 0, 0,
908  0, 0, 0, 0, 0,
909  0, 0, 0, 0, 0,
910  0, 0, 0, 0, 0,
911  0, 0, 0, 0, 0,
912  0, 0, 0, 0, 0,
913  0, 0, 0, 0, 0,
914  0, 0, 0, 0, 0,
915  0, 0, 0, 0, 0,
916  0, 0, 0, 0, 0,
917  0, 0, 0, 0, 0,
918  0, 0, 0, 0, 0,
958 
959  if (r < ARR_SIZE(map))
960  return map[r];
961 
962  // cannot find this register
963  return 0;
964 }
965 
966 void arm64_op_addVectorArrSpecifier(MCInst * MI, int sp)
967 {
968  if (MI->csh->detail) {
969  MI->flat_insn->detail->arm64.operands[MI->flat_insn->detail->arm64.op_count - 1].vas = sp;
970  }
971 }
972 
974 {
975  if (MI->csh->detail) {
976  MI->flat_insn->detail->arm64.operands[MI->flat_insn->detail->arm64.op_count - 1].vess = sp;
977  }
978 }
979 
980 void arm64_op_addFP(MCInst *MI, float fp)
981 {
982  if (MI->csh->detail) {
983  MI->flat_insn->detail->arm64.operands[MI->flat_insn->detail->arm64.op_count].type = ARM64_OP_FP;
984  MI->flat_insn->detail->arm64.operands[MI->flat_insn->detail->arm64.op_count].fp = fp;
985  MI->flat_insn->detail->arm64.op_count++;
986  }
987 }
988 
989 void arm64_op_addImm(MCInst *MI, int64_t imm)
990 {
991  if (MI->csh->detail) {
992  MI->flat_insn->detail->arm64.operands[MI->flat_insn->detail->arm64.op_count].type = ARM64_OP_IMM;
993  MI->flat_insn->detail->arm64.operands[MI->flat_insn->detail->arm64.op_count].imm = (int)imm;
994  MI->flat_insn->detail->arm64.op_count++;
995  }
996 }
997 
998 #ifndef CAPSTONE_DIET
999 
1000 // map instruction to its characteristics
1001 typedef struct insn_op {
1002  unsigned int eflags_update; // how this instruction update status flags
1003  uint8_t access[5];
1004 } insn_op;
1005 
1006 static insn_op insn_ops[] = {
1007  {
1008  /* NULL item */
1009  0, { 0 }
1010  },
1011 
1012 #include "AArch64MappingInsnOp.inc"
1013 };
1014 
1015 // given internal insn id, return operand access info
1016 uint8_t *AArch64_get_op_access(cs_struct *h, unsigned int id)
1017 {
1018  int i = insn_find(insns, ARR_SIZE(insns), id, &h->insn_cache);
1019  if (i != 0) {
1020  return insn_ops[i].access;
1021  }
1022 
1023  return NULL;
1024 }
1025 
1026 void AArch64_reg_access(const cs_insn *insn,
1027  cs_regs regs_read, uint8_t *regs_read_count,
1028  cs_regs regs_write, uint8_t *regs_write_count)
1029 {
1030  uint8_t i;
1031  uint8_t read_count, write_count;
1032  cs_arm64 *arm64 = &(insn->detail->arm64);
1033 
1034  read_count = insn->detail->regs_read_count;
1035  write_count = insn->detail->regs_write_count;
1036 
1037  // implicit registers
1038  memcpy(regs_read, insn->detail->regs_read, read_count * sizeof(insn->detail->regs_read[0]));
1039  memcpy(regs_write, insn->detail->regs_write, write_count * sizeof(insn->detail->regs_write[0]));
1040 
1041  // explicit registers
1042  for (i = 0; i < arm64->op_count; i++) {
1043  cs_arm64_op *op = &(arm64->operands[i]);
1044  switch((int)op->type) {
1045  case ARM64_OP_REG:
1046  if ((op->access & CS_AC_READ) && !arr_exist(regs_read, read_count, op->reg)) {
1047  regs_read[read_count] = (uint16_t)op->reg;
1048  read_count++;
1049  }
1050  if ((op->access & CS_AC_WRITE) && !arr_exist(regs_write, write_count, op->reg)) {
1051  regs_write[write_count] = (uint16_t)op->reg;
1052  write_count++;
1053  }
1054  break;
1055  case ARM_OP_MEM:
1056  // registers appeared in memory references always being read
1057  if ((op->mem.base != ARM64_REG_INVALID) && !arr_exist(regs_read, read_count, op->mem.base)) {
1058  regs_read[read_count] = (uint16_t)op->mem.base;
1059  read_count++;
1060  }
1061  if ((op->mem.index != ARM64_REG_INVALID) && !arr_exist(regs_read, read_count, op->mem.index)) {
1062  regs_read[read_count] = (uint16_t)op->mem.index;
1063  read_count++;
1064  }
1065  if ((arm64->writeback) && (op->mem.base != ARM64_REG_INVALID) && !arr_exist(regs_write, write_count, op->mem.base)) {
1066  regs_write[write_count] = (uint16_t)op->mem.base;
1067  write_count++;
1068  }
1069  default:
1070  break;
1071  }
1072  }
1073 
1074  *regs_read_count = read_count;
1075  *regs_write_count = write_count;
1076 }
1077 #endif
1078 
1079 #endif
ARM64_INS_UMLSL
@ ARM64_INS_UMLSL
Definition: arm64.h:1056
ARM64_INS_UBFM
@ ARM64_INS_UBFM
Definition: arm64.h:1041
ARM64_REG_Q12
@ ARM64_REG_Q12
Definition: arm64.h:465
ARM64_REG_S3
@ ARM64_REG_S3
Definition: arm64.h:488
ARM64_REG_V13
@ ARM64_REG_V13
Definition: arm64.h:591
ARM64_REG_S10
@ ARM64_REG_S10
Definition: arm64.h:495
ARM64_INS_SSUBL2
@ ARM64_INS_SSUBL2
Definition: arm64.h:985
ARM64_REG_Q27
@ ARM64_REG_Q27
Definition: arm64.h:480
ARM64_INS_LDRH
@ ARM64_INS_LDRH
Definition: arm64.h:838
ARM64_REG_V12
@ ARM64_REG_V12
Definition: arm64.h:590
ARM64_REG_V10
@ ARM64_REG_V10
Definition: arm64.h:588
ARM64_OP_FP
@ ARM64_OP_FP
= CS_OP_FP (Floating-Point operand).
Definition: arm64.h:238
ARM64_REG_V23
@ ARM64_REG_V23
Definition: arm64.h:601
ARM64_REG_B4
@ ARM64_REG_B4
Definition: arm64.h:361
ARM64_INS_STLXRB
@ ARM64_INS_STLXRB
Definition: arm64.h:997
ARM64_GRP_INT
@ ARM64_GRP_INT
Definition: arm64.h:1147
ARM64_INS_USHLL
@ ARM64_INS_USHLL
Definition: arm64.h:1079
ARM64_INS_SHA1C
@ ARM64_INS_SHA1C
Definition: arm64.h:913
ARM64_INS_LD4
@ ARM64_INS_LD4
Definition: arm64.h:823
ARM64_INS_SYSL
@ ARM64_INS_SYSL
Definition: arm64.h:1020
ARM64_INS_INS
@ ARM64_INS_INS
Definition: arm64.h:814
ARM64_INS_FMSUB
@ ARM64_INS_FMSUB
Definition: arm64.h:790
ARM64_REG_D0
@ ARM64_REG_D0
Definition: arm64.h:389
ARM64_INS_UQRSHRN2
@ ARM64_INS_UQRSHRN2
Definition: arm64.h:1065
ARM64_INS_SMAXP
@ ARM64_INS_SMAXP
Definition: arm64.h:932
ARM64_INS_SXTH
@ ARM64_INS_SXTH
Definition: arm64.h:1121
ARM64_INS_UMULH
@ ARM64_INS_UMULH
Definition: arm64.h:1059
ARM64_INS_SHRN2
@ ARM64_INS_SHRN2
Definition: arm64.h:927
ARM64_INS_LDXP
@ ARM64_INS_LDXP
Definition: arm64.h:855
ARM64_REG_W24
@ ARM64_REG_W24
Definition: arm64.h:541
ARM64_INS_LDXRH
@ ARM64_INS_LDXRH
Definition: arm64.h:857
ARM64_INS_UQXTN
@ ARM64_INS_UQXTN
Definition: arm64.h:1071
ARM64_REG_H28
@ ARM64_REG_H28
Definition: arm64.h:449
insn_find
unsigned short insn_find(const insn_map *insns, unsigned int max, unsigned int id, unsigned short **cache)
Definition: utils.c:31
ARM64_REG_H12
@ ARM64_REG_H12
Definition: arm64.h:433
ARM64_INS_DMB
@ ARM64_INS_DMB
Definition: arm64.h:731
ARM64_INS_BLR
@ ARM64_INS_BLR
Definition: arm64.h:695
ARM64_INS_BSL
@ ARM64_INS_BSL
Definition: arm64.h:698
ARM64_INS_FCVT
@ ARM64_INS_FCVT
Definition: arm64.h:758
ARM64_REG_S6
@ ARM64_REG_S6
Definition: arm64.h:491
ARM64_INS_LDURSB
@ ARM64_INS_LDURSB
Definition: arm64.h:852
ARM64_INS_CSEL
@ ARM64_INS_CSEL
Definition: arm64.h:724
arr_exist
bool arr_exist(uint16_t *arr, unsigned char max, unsigned int id)
Definition: utils.c:128
ARM64_INS_REV
@ ARM64_INS_REV
Definition: arm64.h:889
ARM64_REG_Q14
@ ARM64_REG_Q14
Definition: arm64.h:467
ARM64_INS_DUP
@ ARM64_INS_DUP
Definition: arm64.h:734
ARM64_REG_B2
@ ARM64_REG_B2
Definition: arm64.h:359
ARM64_INS_ST4
@ ARM64_INS_ST4
Definition: arm64.h:992
ARM64_GRP_CRYPTO
@ ARM64_GRP_CRYPTO
Definition: arm64.h:1152
ARM64_INS_FCVTAS
@ ARM64_INS_FCVTAS
Definition: arm64.h:756
ARM64_INS_SQSHLU
@ ARM64_INS_SQSHLU
Definition: arm64.h:964
ARM64_INS_SMINV
@ ARM64_INS_SMINV
Definition: arm64.h:937
ARM64_INS_CINC
@ ARM64_INS_CINC
Definition: arm64.h:1116
ARM64_REG_S13
@ ARM64_REG_S13
Definition: arm64.h:498
ARM64_INS_SQADD
@ ARM64_INS_SQADD
Definition: arm64.h:949
ARM64_INS_UADDW
@ ARM64_INS_UADDW
Definition: arm64.h:1040
ARM64_INS_UADDLP
@ ARM64_INS_UADDLP
Definition: arm64.h:1035
ARM64_REG_X0
@ ARM64_REG_X0
Definition: arm64.h:548
ARM64_INS_ENDING
@ ARM64_INS_ENDING
Definition: arm64.h:1135
ARM64_INS_ABS
@ ARM64_INS_ABS
Definition: arm64.h:674
ARM64_REG_D2
@ ARM64_REG_D2
Definition: arm64.h:391
ARM64_REG_B7
@ ARM64_REG_B7
Definition: arm64.h:364
ARM64_REG_V19
@ ARM64_REG_V19
Definition: arm64.h:597
ARM64_INS_CSINC
@ ARM64_INS_CSINC
Definition: arm64.h:725
ARM64_INS_SQXTN
@ ARM64_INS_SQXTN
Definition: arm64.h:972
ARM64_INS_FABD
@ ARM64_INS_FABD
Definition: arm64.h:740
ARM64_REG_B6
@ ARM64_REG_B6
Definition: arm64.h:363
ARM64_INS_CNEG
@ ARM64_INS_CNEG
Definition: arm64.h:1119
ARM64_INS_UBFX
@ ARM64_INS_UBFX
Definition: arm64.h:1109
ARM64_INS_UQSUB
@ ARM64_INS_UQSUB
Definition: arm64.h:1069
ARM64_INS_LD1R
@ ARM64_INS_LD1R
Definition: arm64.h:818
ARM64_INS_UMINV
@ ARM64_INS_UMINV
Definition: arm64.h:1051
ARM64_REG_X8
@ ARM64_REG_X8
Definition: arm64.h:556
ARM64_INS_UADDLV
@ ARM64_INS_UADDLV
Definition: arm64.h:1036
ARM64_INS_FCVTZU
@ ARM64_INS_FCVTZU
Definition: arm64.h:772
ARM64_INS_SHA256H
@ ARM64_INS_SHA256H
Definition: arm64.h:920
ARM64_INS_SQDMLAL
@ ARM64_INS_SQDMLAL
Definition: arm64.h:950
ARM64_INS_UXTH
@ ARM64_INS_UXTH
Definition: arm64.h:1125
ARM64_INS_SMC
@ ARM64_INS_SMC
Definition: arm64.h:935
ARM64_INS_BRK
@ ARM64_INS_BRK
Definition: arm64.h:697
ARM64_REG_D17
@ ARM64_REG_D17
Definition: arm64.h:406
ARM64_INS_SBC
@ ARM64_INS_SBC
Definition: arm64.h:909
ARM64_INS_CINV
@ ARM64_INS_CINV
Definition: arm64.h:1118
ARM64_INS_SSUBW2
@ ARM64_INS_SSUBW2
Definition: arm64.h:987
uint16_t
unsigned short uint16_t
Definition: stdint-msvc2008.h:79
ARM64_REG_V5
@ ARM64_REG_V5
Definition: arm64.h:583
ARM64_REG_W11
@ ARM64_REG_W11
Definition: arm64.h:528
ARM64_INS_SMLSL2
@ ARM64_INS_SMLSL2
Definition: arm64.h:941
ARM64_REG_S14
@ ARM64_REG_S14
Definition: arm64.h:499
ARM64_GRP_RET
@ ARM64_GRP_RET
Definition: arm64.h:1146
ARM64_INS_CMEQ
@ ARM64_INS_CMEQ
Definition: arm64.h:706
ARM64_INS_CRC32W
@ ARM64_INS_CRC32W
Definition: arm64.h:722
ARM64_INS_USUBL
@ ARM64_INS_USUBL
Definition: arm64.h:1085
ARM64_INS_STLRH
@ ARM64_INS_STLRH
Definition: arm64.h:994
ARM64_REG_B29
@ ARM64_REG_B29
Definition: arm64.h:386
ARM64_REG_W29
@ ARM64_REG_W29
Definition: arm64.h:546
ARM64_INS_UADDW2
@ ARM64_INS_UADDW2
Definition: arm64.h:1039
ARM64_INS_FRINTI
@ ARM64_INS_FRINTI
Definition: arm64.h:801
ARM64_REG_D13
@ ARM64_REG_D13
Definition: arm64.h:402
ARM64_INS_UQADD
@ ARM64_INS_UQADD
Definition: arm64.h:1062
ARM64_REG_X11
@ ARM64_REG_X11
Definition: arm64.h:559
ARM64_REG_W17
@ ARM64_REG_W17
Definition: arm64.h:534
ARM64_INS_FSQRT
@ ARM64_INS_FSQRT
Definition: arm64.h:809
ARM64_INS_NOP
@ ARM64_INS_NOP
Definition: arm64.h:1099
ARM64_INS_REV32
@ ARM64_INS_REV32
Definition: arm64.h:887
ARM64_INS_SVC
@ ARM64_INS_SVC
Definition: arm64.h:1019
cs_arm64_op
Instruction operand.
Definition: arm64.h:630
ARM64_INS_ASR
@ ARM64_INS_ASR
Definition: arm64.h:688
ARM64_REG_X10
@ ARM64_REG_X10
Definition: arm64.h:558
ARM64_INS_FRINTP
@ ARM64_INS_FRINTP
Definition: arm64.h:804
ARM64_INS_FMLA
@ ARM64_INS_FMLA
Definition: arm64.h:787
ARM64_INS_SQSHL
@ ARM64_INS_SQSHL
Definition: arm64.h:965
ARM64_INS_SABAL
@ ARM64_INS_SABAL
Definition: arm64.h:896
ARM64_REG_S25
@ ARM64_REG_S25
Definition: arm64.h:510
ARM64_REG_Q13
@ ARM64_REG_Q13
Definition: arm64.h:466
string.h
ARM64_REG_W19
@ ARM64_REG_W19
Definition: arm64.h:536
ARM64_INS_LDURH
@ ARM64_INS_LDURH
Definition: arm64.h:851
ARM64_REG_B17
@ ARM64_REG_B17
Definition: arm64.h:374
ARM64_REG_S19
@ ARM64_REG_S19
Definition: arm64.h:504
ARM64_INS_FACGT
@ ARM64_INS_FACGT
Definition: arm64.h:743
ARM64_INS_SQSUB
@ ARM64_INS_SQSUB
Definition: arm64.h:970
ARM64_INS_SQRSHRUN2
@ ARM64_INS_SQRSHRUN2
Definition: arm64.h:963
ARM64_INS_FCVTMS
@ ARM64_INS_FCVTMS
Definition: arm64.h:761
AArch64Mapping.h
ARM64_REG_H18
@ ARM64_REG_H18
Definition: arm64.h:439
ARM64_INS_STP
@ ARM64_INS_STP
Definition: arm64.h:1001
ARM64_INS_SRSHL
@ ARM64_INS_SRSHL
Definition: arm64.h:977
ARM64_INS_SBFM
@ ARM64_INS_SBFM
Definition: arm64.h:910
ARM64_REG_Q9
@ ARM64_REG_Q9
Definition: arm64.h:462
ARM64_REG_S18
@ ARM64_REG_S18
Definition: arm64.h:503
ARM64_INS_UHSUB
@ ARM64_INS_UHSUB
Definition: arm64.h:1045
ARM64_REG_W1
@ ARM64_REG_W1
Definition: arm64.h:518
ARM64_INS_LDTRB
@ ARM64_INS_LDTRB
Definition: arm64.h:842
ARM64_INS_FCMGE
@ ARM64_INS_FCMGE
Definition: arm64.h:749
ARM64_INS_UADALP
@ ARM64_INS_UADALP
Definition: arm64.h:1034
ARM64_INS_FCVTL2
@ ARM64_INS_FCVTL2
Definition: arm64.h:760
ARM64_INS_LSL
@ ARM64_INS_LSL
Definition: arm64.h:859
ARM64_INS_SQRSHRUN
@ ARM64_INS_SQRSHRUN
Definition: arm64.h:962
ARM64_INS_FACGE
@ ARM64_INS_FACGE
Definition: arm64.h:742
ARM64_INS_UDIV
@ ARM64_INS_UDIV
Definition: arm64.h:1043
ARM64_REG_B20
@ ARM64_REG_B20
Definition: arm64.h:377
ARM64_INS_UABD
@ ARM64_INS_UABD
Definition: arm64.h:1033
ARM64_INS_SQXTUN2
@ ARM64_INS_SQXTUN2
Definition: arm64.h:973
ARM64_REG_H15
@ ARM64_REG_H15
Definition: arm64.h:436
arm64_reg
arm64_reg
ARM64 registers.
Definition: arm64.h:347
ARM64_INS_UQXTN2
@ ARM64_INS_UQXTN2
Definition: arm64.h:1070
ARM64_REG_Q5
@ ARM64_REG_Q5
Definition: arm64.h:458
ARM64_REG_W27
@ ARM64_REG_W27
Definition: arm64.h:544
ARM64_INS_LDAXRB
@ ARM64_INS_LDAXRB
Definition: arm64.h:830
ARM64_INS_BFM
@ ARM64_INS_BFM
Definition: arm64.h:690
ARM64_REG_Q18
@ ARM64_REG_Q18
Definition: arm64.h:471
ARM64_INS_REV64
@ ARM64_INS_REV64
Definition: arm64.h:888
ARM64_REG_S4
@ ARM64_REG_S4
Definition: arm64.h:489
ARM64_INS_FMINP
@ ARM64_INS_FMINP
Definition: arm64.h:785
ARM64_REG_X15
@ ARM64_REG_X15
Definition: arm64.h:563
ARM64_REG_W28
@ ARM64_REG_W28
Definition: arm64.h:545
ARM64_INS_SSHLL2
@ ARM64_INS_SSHLL2
Definition: arm64.h:980
ARM64_INS_SSHL
@ ARM64_INS_SSHL
Definition: arm64.h:982
ARM64_INS_UMAXP
@ ARM64_INS_UMAXP
Definition: arm64.h:1047
ARM64_INS_SMLAL2
@ ARM64_INS_SMLAL2
Definition: arm64.h:939
name2id
int name2id(const name_map *map, int max, const char *name)
Definition: utils.c:42
ARM64_REG_D20
@ ARM64_REG_D20
Definition: arm64.h:409
ARM64_REG_X26
@ ARM64_REG_X26
Definition: arm64.h:574
ARM64_REG_H13
@ ARM64_REG_H13
Definition: arm64.h:434
ARM64_INS_MOVN
@ ARM64_INS_MOVN
Definition: arm64.h:866
ARM64_REG_Q17
@ ARM64_REG_Q17
Definition: arm64.h:470
ARM64_REG_B8
@ ARM64_REG_B8
Definition: arm64.h:365
ARM64_INS_UZP2
@ ARM64_INS_UZP2
Definition: arm64.h:1089
ARM64_REG_D5
@ ARM64_REG_D5
Definition: arm64.h:394
ARM64_INS_USUBL2
@ ARM64_INS_USUBL2
Definition: arm64.h:1084
ARM64_INS_EXT
@ ARM64_INS_EXT
Definition: arm64.h:739
ARM64_INS_DRPS
@ ARM64_INS_DRPS
Definition: arm64.h:732
ARM64_INS_FABS
@ ARM64_INS_FABS
Definition: arm64.h:741
ARM64_INS_LD2R
@ ARM64_INS_LD2R
Definition: arm64.h:819
ARM64_INS_LDTRSW
@ ARM64_INS_LDTRSW
Definition: arm64.h:847
ARM64_INS_ADDP
@ ARM64_INS_ADDP
Definition: arm64.h:678
ARM64_INS_TBL
@ ARM64_INS_TBL
Definition: arm64.h:1022
ARM64_INS_CCMN
@ ARM64_INS_CCMN
Definition: arm64.h:701
ARM64_REG_X3
@ ARM64_REG_X3
Definition: arm64.h:551
setup.name
name
Definition: setup.py:542
ARM64_INS_FMINNMP
@ ARM64_INS_FMINNMP
Definition: arm64.h:783
count_positive
unsigned int count_positive(const uint16_t *list)
Definition: utils.c:72
cs_reg_write
CAPSTONE_EXPORT bool CAPSTONE_API cs_reg_write(csh ud, const cs_insn *insn, unsigned int reg_id)
Definition: cs.c:1266
ARM64_INS_SADDLP
@ ARM64_INS_SADDLP
Definition: arm64.h:903
ARM64_INS_LDXR
@ ARM64_INS_LDXR
Definition: arm64.h:858
ARM64_INS_LDURSH
@ ARM64_INS_LDURSH
Definition: arm64.h:853
ARM64_REG_V31
@ ARM64_REG_V31
Definition: arm64.h:609
ARM64_OP_REG
@ ARM64_OP_REG
= CS_OP_REG (Register operand).
Definition: arm64.h:235
ARM64_INS_STLXR
@ ARM64_INS_STLXR
Definition: arm64.h:999
ARM64_INS_BFI
@ ARM64_INS_BFI
Definition: arm64.h:1110
ARM64_REG_Q2
@ ARM64_REG_Q2
Definition: arm64.h:455
ARM64_INS_SSRA
@ ARM64_INS_SSRA
Definition: arm64.h:984
ARM64_REG_D4
@ ARM64_REG_D4
Definition: arm64.h:393
ARM64_INS_LD1
@ ARM64_INS_LD1
Definition: arm64.h:817
ARM64_INS_MUL
@ ARM64_INS_MUL
Definition: arm64.h:871
ARM64_REG_V2
@ ARM64_REG_V2
Definition: arm64.h:580
ARM64_INS_ST3
@ ARM64_INS_ST3
Definition: arm64.h:991
ARM64_REG_B18
@ ARM64_REG_B18
Definition: arm64.h:375
ARM64_INS_FMADD
@ ARM64_INS_FMADD
Definition: arm64.h:774
ARM64_INS_FMINNMV
@ ARM64_INS_FMINNMV
Definition: arm64.h:784
ARM64_INS_SQRSHRN
@ ARM64_INS_SQRSHRN
Definition: arm64.h:960
ARM64_INS_SQSHRUN
@ ARM64_INS_SQSHRUN
Definition: arm64.h:968
ARM64_INS_ST2
@ ARM64_INS_ST2
Definition: arm64.h:990
ARM64_REG_W6
@ ARM64_REG_W6
Definition: arm64.h:523
ARM64_INS_UABA
@ ARM64_INS_UABA
Definition: arm64.h:1030
uint8_t
unsigned char uint8_t
Definition: stdint-msvc2008.h:78
ARM64_REG_Q23
@ ARM64_REG_Q23
Definition: arm64.h:476
ARM64_REG_H17
@ ARM64_REG_H17
Definition: arm64.h:438
ARM64_INS_CSETM
@ ARM64_INS_CSETM
Definition: arm64.h:1117
map
zval * map
Definition: php/ext/google/protobuf/encode_decode.c:480
ARM64_REG_Q20
@ ARM64_REG_Q20
Definition: arm64.h:473
ARM64_GRP_NEON
@ ARM64_GRP_NEON
Definition: arm64.h:1154
ARM64_REG_H2
@ ARM64_REG_H2
Definition: arm64.h:423
ARM64_INS_SHA256SU0
@ ARM64_INS_SHA256SU0
Definition: arm64.h:921
ARM64_INS_FCVTAU
@ ARM64_INS_FCVTAU
Definition: arm64.h:757
ARM64_INS_ADC
@ ARM64_INS_ADC
Definition: arm64.h:675
MCInst::csh
cs_struct * csh
Definition: MCInst.h:97
ARM64_INS_SHA256SU1
@ ARM64_INS_SHA256SU1
Definition: arm64.h:922
ARM64_INS_FRINTZ
@ ARM64_INS_FRINTZ
Definition: arm64.h:806
ARM64_INS_STLXRH
@ ARM64_INS_STLXRH
Definition: arm64.h:998
ARM64_INS_MOV
@ ARM64_INS_MOV
Definition: arm64.h:715
CS_AC_READ
@ CS_AC_READ
Operand read from memory or register.
Definition: capstone.h:205
ARM64_INS_UMAXV
@ ARM64_INS_UMAXV
Definition: arm64.h:1048
ARM64_INS_UXTB
@ ARM64_INS_UXTB
Definition: arm64.h:1124
ARM64_REG_X4
@ ARM64_REG_X4
Definition: arm64.h:552
ARM64_INS_SUB
@ ARM64_INS_SUB
Definition: arm64.h:1017
ARM64_INS_NOT
@ ARM64_INS_NOT
Definition: arm64.h:874
ARM64_INS_PRFM
@ ARM64_INS_PRFM
Definition: arm64.h:880
ARM64_INS_SADALP
@ ARM64_INS_SADALP
Definition: arm64.h:902
ARM64_REG_H8
@ ARM64_REG_H8
Definition: arm64.h:429
ARM64_REG_D22
@ ARM64_REG_D22
Definition: arm64.h:411
ARM64_INS_FRINTN
@ ARM64_INS_FRINTN
Definition: arm64.h:803
ARM64_INS_CSET
@ ARM64_INS_CSET
Definition: arm64.h:1115
ARM64_REG_NZCV
@ ARM64_REG_NZCV
Definition: arm64.h:352
ARM64_INS_RSUBHN2
@ ARM64_INS_RSUBHN2
Definition: arm64.h:894
ARM64_INS_UBFIZ
@ ARM64_INS_UBFIZ
Definition: arm64.h:1107
ARM64_REG_X12
@ ARM64_REG_X12
Definition: arm64.h:560
ARM64_INS_AESE
@ ARM64_INS_AESE
Definition: arm64.h:684
ARM64_INS_HINT
@ ARM64_INS_HINT
Definition: arm64.h:811
ARM64_INS_FNEG
@ ARM64_INS_FNEG
Definition: arm64.h:793
ARM64_REG_S27
@ ARM64_REG_S27
Definition: arm64.h:512
ARM64_INS_FCMLE
@ ARM64_INS_FCMLE
Definition: arm64.h:751
ARM64_INS_SQXTUN
@ ARM64_INS_SQXTUN
Definition: arm64.h:974
ARM64_INS_FCSEL
@ ARM64_INS_FCSEL
Definition: arm64.h:755
AArch64_group_name
const char * AArch64_group_name(csh handle, unsigned int id)
ARM64_REG_W2
@ ARM64_REG_W2
Definition: arm64.h:519
ARM64_REG_V29
@ ARM64_REG_V29
Definition: arm64.h:607
ARM64_REG_S2
@ ARM64_REG_S2
Definition: arm64.h:487
ARM64_INS_LDTRH
@ ARM64_INS_LDTRH
Definition: arm64.h:843
ARM64_INS_FCVTNU
@ ARM64_INS_FCVTNU
Definition: arm64.h:764
ARM64_INS_UMLAL2
@ ARM64_INS_UMLAL2
Definition: arm64.h:1053
ARM64_REG_W12
@ ARM64_REG_W12
Definition: arm64.h:529
ARM64_REG_S5
@ ARM64_REG_S5
Definition: arm64.h:490
id2name
const char * id2name(const name_map *map, int max, const unsigned int id)
Definition: utils.c:56
ARM64_INS_EXTR
@ ARM64_INS_EXTR
Definition: arm64.h:738
cs_struct
Definition: cs_priv.h:51
insn_map
Definition: utils.h:19
ARM64_INS_UABDL2
@ ARM64_INS_UABDL2
Definition: arm64.h:1031
ARM64_REG_V11
@ ARM64_REG_V11
Definition: arm64.h:589
ARM64_INS_STRB
@ ARM64_INS_STRB
Definition: arm64.h:1002
ARM64_INS_MVNI
@ ARM64_INS_MVNI
Definition: arm64.h:872
ARM64_REG_X23
@ ARM64_REG_X23
Definition: arm64.h:571
ARM64_INS_FNMADD
@ ARM64_INS_FNMADD
Definition: arm64.h:794
ARM64_INS_FCVTN
@ ARM64_INS_FCVTN
Definition: arm64.h:765
ARM64_REG_D3
@ ARM64_REG_D3
Definition: arm64.h:392
ARM64_INS_STXRH
@ ARM64_INS_STXRH
Definition: arm64.h:1013
ARM64_REG_X6
@ ARM64_REG_X6
Definition: arm64.h:554
ARM64_REG_D7
@ ARM64_REG_D7
Definition: arm64.h:396
memcpy
memcpy(mem, inblock.get(), min(CONTAINING_RECORD(inblock.get(), MEMBLOCK, data) ->size, size))
ARM64_INS_ROR
@ ARM64_INS_ROR
Definition: arm64.h:890
ARM64_INS_STTR
@ ARM64_INS_STTR
Definition: arm64.h:1007
ARM64_INS_USUBW2
@ ARM64_INS_USUBW2
Definition: arm64.h:1086
ARM64_INS_AESD
@ ARM64_INS_AESD
Definition: arm64.h:683
ARM64_INS_CBNZ
@ ARM64_INS_CBNZ
Definition: arm64.h:699
ARM64_REG_H24
@ ARM64_REG_H24
Definition: arm64.h:445
ARM64_INS_SQSHRN2
@ ARM64_INS_SQSHRN2
Definition: arm64.h:967
ARM64_REG_Q19
@ ARM64_REG_Q19
Definition: arm64.h:472
ARM64_INS_LDXRB
@ ARM64_INS_LDXRB
Definition: arm64.h:856
ARM64_INS_HVC
@ ARM64_INS_HVC
Definition: arm64.h:813
ARM64_INS_EON
@ ARM64_INS_EON
Definition: arm64.h:735
ARM64_REG_Q0
@ ARM64_REG_Q0
Definition: arm64.h:453
ARM64_REG_X5
@ ARM64_REG_X5
Definition: arm64.h:553
ARM64_REG_B19
@ ARM64_REG_B19
Definition: arm64.h:376
ARM64_REG_X30
@ ARM64_REG_X30
Definition: arm64.h:351
ARM64_REG_B30
@ ARM64_REG_B30
Definition: arm64.h:387
ARM64_INS_URHADD
@ ARM64_INS_URHADD
Definition: arm64.h:1073
xds_interop_client.int
int
Definition: xds_interop_client.py:113
ARM64_INS_SSUBL
@ ARM64_INS_SSUBL
Definition: arm64.h:986
ARM64_INS_SCVTF
@ ARM64_INS_SCVTF
Definition: arm64.h:911
ARM64_INS_FMAXNMV
@ ARM64_INS_FMAXNMV
Definition: arm64.h:778
ARM64_REG_V28
@ ARM64_REG_V28
Definition: arm64.h:606
ARM64_INS_UMNEGL
@ ARM64_INS_UMNEGL
Definition: arm64.h:1097
ARM64_INS_UMLSL2
@ ARM64_INS_UMLSL2
Definition: arm64.h:1055
ARM64_GRP_PRIVILEGE
@ ARM64_GRP_PRIVILEGE
= CS_GRP_PRIVILEGE
Definition: arm64.h:1148
ARM64_INS_MOVZ
@ ARM64_INS_MOVZ
Definition: arm64.h:867
ARM64_REG_Q15
@ ARM64_REG_Q15
Definition: arm64.h:468
ARM64_INS_CSINV
@ ARM64_INS_CSINV
Definition: arm64.h:726
ARM64_REG_D25
@ ARM64_REG_D25
Definition: arm64.h:414
ARM64_INS_IC
@ ARM64_INS_IC
Definition: arm64.h:1127
ARM64_REG_W18
@ ARM64_REG_W18
Definition: arm64.h:535
ARM64_INS_SQRSHL
@ ARM64_INS_SQRSHL
Definition: arm64.h:959
ARM64_INS_BR
@ ARM64_INS_BR
Definition: arm64.h:696
ARM64_INS_CRC32CX
@ ARM64_INS_CRC32CX
Definition: arm64.h:720
int64_t
signed __int64 int64_t
Definition: stdint-msvc2008.h:89
ARM64_REG_S15
@ ARM64_REG_S15
Definition: arm64.h:500
ARM64_INS_LDPSW
@ ARM64_INS_LDPSW
Definition: arm64.h:835
ARM64_INS_FCCMPE
@ ARM64_INS_FCCMPE
Definition: arm64.h:747
ARM64_INS_SHA1SU0
@ ARM64_INS_SHA1SU0
Definition: arm64.h:917
ARM64_INS_LDR
@ ARM64_INS_LDR
Definition: arm64.h:837
ARM64_INS_STNP
@ ARM64_INS_STNP
Definition: arm64.h:1000
ARM64_INS_DCPS1
@ ARM64_INS_DCPS1
Definition: arm64.h:728
ARM64_INS_FMAXP
@ ARM64_INS_FMAXP
Definition: arm64.h:779
ARM64_INS_SMAXV
@ ARM64_INS_SMAXV
Definition: arm64.h:933
ARM64_INS_TBNZ
@ ARM64_INS_TBNZ
Definition: arm64.h:1023
ARM64_INS_LDURSW
@ ARM64_INS_LDURSW
Definition: arm64.h:854
ARM64_INS_CSNEG
@ ARM64_INS_CSNEG
Definition: arm64.h:727
ARM64_INS_HLT
@ ARM64_INS_HLT
Definition: arm64.h:812
ARM64_INS_LDP
@ ARM64_INS_LDP
Definition: arm64.h:834
ARM64_REG_V1
@ ARM64_REG_V1
Definition: arm64.h:579
ARM64_INS_SMADDL
@ ARM64_INS_SMADDL
Definition: arm64.h:931
ARM64_REG_D16
@ ARM64_REG_D16
Definition: arm64.h:405
ARM64_INS_SSHLL
@ ARM64_INS_SSHLL
Definition: arm64.h:981
ARM64_INS_ISB
@ ARM64_INS_ISB
Definition: arm64.h:816
ARM64_INS_MOVI
@ ARM64_INS_MOVI
Definition: arm64.h:864
ARM64_INS_UMSUBL
@ ARM64_INS_UMSUBL
Definition: arm64.h:1058
ARM64_REG_S11
@ ARM64_REG_S11
Definition: arm64.h:496
ARM64_REG_B23
@ ARM64_REG_B23
Definition: arm64.h:380
ARM64_INS_UADDL
@ ARM64_INS_UADDL
Definition: arm64.h:1038
ARM64_INS_CLZ
@ ARM64_INS_CLZ
Definition: arm64.h:705
ARM64_INS_CMHI
@ ARM64_INS_CMHI
Definition: arm64.h:709
ARM64_REG_D29
@ ARM64_REG_D29
Definition: arm64.h:418
ARM64_INS_UXTW
@ ARM64_INS_UXTW
Definition: arm64.h:1126
ARM64_INS_UMAX
@ ARM64_INS_UMAX
Definition: arm64.h:1049
ARM64_INS_PRFUM
@ ARM64_INS_PRFUM
Definition: arm64.h:881
ARM64_REG_V3
@ ARM64_REG_V3
Definition: arm64.h:581
ARM64_INS_UQRSHL
@ ARM64_INS_UQRSHL
Definition: arm64.h:1063
ARM64_INS_CRC32CB
@ ARM64_INS_CRC32CB
Definition: arm64.h:717
ARM64_GRP_CRC
@ ARM64_GRP_CRC
Definition: arm64.h:1155
ARM64_INS_LDUR
@ ARM64_INS_LDUR
Definition: arm64.h:850
ARM64_INS_USHLL2
@ ARM64_INS_USHLL2
Definition: arm64.h:1078
ARM64_REG_D19
@ ARM64_REG_D19
Definition: arm64.h:408
ARM64_INS_MSUB
@ ARM64_INS_MSUB
Definition: arm64.h:870
ARM64_INS_PMUL
@ ARM64_INS_PMUL
Definition: arm64.h:879
ARM64_REG_B13
@ ARM64_REG_B13
Definition: arm64.h:370
ARM64_REG_W4
@ ARM64_REG_W4
Definition: arm64.h:521
ARM64_REG_Q25
@ ARM64_REG_Q25
Definition: arm64.h:478
ARM64_REG_X9
@ ARM64_REG_X9
Definition: arm64.h:557
ARM64_INS_FRSQRTE
@ ARM64_INS_FRSQRTE
Definition: arm64.h:807
ARM64_REG_V30
@ ARM64_REG_V30
Definition: arm64.h:608
ARM64_INS_CRC32CW
@ ARM64_INS_CRC32CW
Definition: arm64.h:719
ARM64_REG_V18
@ ARM64_REG_V18
Definition: arm64.h:596
ARM64_INS_SEVL
@ ARM64_INS_SEVL
Definition: arm64.h:1104
ARM64_REG_D9
@ ARM64_REG_D9
Definition: arm64.h:398
AArch64_reg_access
void AArch64_reg_access(const cs_insn *insn, cs_regs regs_read, uint8_t *regs_read_count, cs_regs regs_write, uint8_t *regs_write_count)
ARM64_INS_UQSHL
@ ARM64_INS_UQSHL
Definition: arm64.h:1066
ARM64_REG_B9
@ ARM64_REG_B9
Definition: arm64.h:366
ARM64_INS_SMIN
@ ARM64_INS_SMIN
Definition: arm64.h:938
ARM64_REG_S22
@ ARM64_REG_S22
Definition: arm64.h:507
ARM64_INS_LDAXR
@ ARM64_INS_LDAXR
Definition: arm64.h:832
ARM64_INS_SMOV
@ ARM64_INS_SMOV
Definition: arm64.h:943
ARM64_REG_B16
@ ARM64_REG_B16
Definition: arm64.h:373
ARM64_INS_LD3
@ ARM64_INS_LD3
Definition: arm64.h:822
ARM64_INS_LDURB
@ ARM64_INS_LDURB
Definition: arm64.h:849
cs_struct::detail
cs_opt_value detail
Definition: cs_priv.h:65
ARM64_INS_FCCMP
@ ARM64_INS_FCCMP
Definition: arm64.h:746
ARM64_INS_CMGT
@ ARM64_INS_CMGT
Definition: arm64.h:708
ARM64_INS_URECPE
@ ARM64_INS_URECPE
Definition: arm64.h:1072
ARM64_INS_UMIN
@ ARM64_INS_UMIN
Definition: arm64.h:1052
ARM64_REG_X18
@ ARM64_REG_X18
Definition: arm64.h:566
insn_map::mapid
unsigned short mapid
Definition: utils.h:21
ARM64_INS_URSHL
@ ARM64_INS_URSHL
Definition: arm64.h:1074
ARM64_REG_H7
@ ARM64_REG_H7
Definition: arm64.h:428
ARM64_REG_S20
@ ARM64_REG_S20
Definition: arm64.h:505
ARM64_REG_Q24
@ ARM64_REG_Q24
Definition: arm64.h:477
ARM64_INS_B
@ ARM64_INS_B
Definition: arm64.h:689
ARM64_REG_D23
@ ARM64_REG_D23
Definition: arm64.h:412
ARM64_REG_H25
@ ARM64_REG_H25
Definition: arm64.h:446
ARM64_REG_B25
@ ARM64_REG_B25
Definition: arm64.h:382
ARM64_REG_B15
@ ARM64_REG_B15
Definition: arm64.h:372
ARM64_REG_V17
@ ARM64_REG_V17
Definition: arm64.h:595
ARM64_REG_V15
@ ARM64_REG_V15
Definition: arm64.h:593
ARM64_REG_X22
@ ARM64_REG_X22
Definition: arm64.h:570
ARM64_INS_CBZ
@ ARM64_INS_CBZ
Definition: arm64.h:700
ARM64_REG_Q4
@ ARM64_REG_Q4
Definition: arm64.h:457
ARM64_INS_LDRSH
@ ARM64_INS_LDRSH
Definition: arm64.h:840
ARM64_REG_H27
@ ARM64_REG_H27
Definition: arm64.h:448
ARM64_REG_D30
@ ARM64_REG_D30
Definition: arm64.h:419
ARM64_INS_LDRSB
@ ARM64_INS_LDRSB
Definition: arm64.h:839
ARM64_INS_SHADD
@ ARM64_INS_SHADD
Definition: arm64.h:923
ARM64_INS_SHRN
@ ARM64_INS_SHRN
Definition: arm64.h:928
ARM64_INS_SLI
@ ARM64_INS_SLI
Definition: arm64.h:930
ARM64_REG_X25
@ ARM64_REG_X25
Definition: arm64.h:573
ARM64_REG_H29
@ ARM64_REG_H29
Definition: arm64.h:450
ARM64_REG_X28
@ ARM64_REG_X28
Definition: arm64.h:576
ARM64_INS_SABDL2
@ ARM64_INS_SABDL2
Definition: arm64.h:899
ARM64_INS_SQDMLSL
@ ARM64_INS_SQDMLSL
Definition: arm64.h:952
ARM64_INS_WFI
@ ARM64_INS_WFI
Definition: arm64.h:1102
ARM64_INS_FRECPS
@ ARM64_INS_FRECPS
Definition: arm64.h:798
ARM64_REG_W16
@ ARM64_REG_W16
Definition: arm64.h:533
ARM64_INS_SRSHR
@ ARM64_INS_SRSHR
Definition: arm64.h:978
ARM64_INS_FCVTMU
@ ARM64_INS_FCVTMU
Definition: arm64.h:762
ARM64_INS_FMINV
@ ARM64_INS_FMINV
Definition: arm64.h:786
ARM64_REG_H5
@ ARM64_REG_H5
Definition: arm64.h:426
ARM64_INS_URSQRTE
@ ARM64_INS_URSQRTE
Definition: arm64.h:1076
ARM64_INS_FCMPE
@ ARM64_INS_FCMPE
Definition: arm64.h:754
ARM64_INS_SHA1H
@ ARM64_INS_SHA1H
Definition: arm64.h:914
ARM64_REG_V25
@ ARM64_REG_V25
Definition: arm64.h:603
ARM64_REG_S9
@ ARM64_REG_S9
Definition: arm64.h:494
ARM64_INS_NEGS
@ ARM64_INS_NEGS
Definition: arm64.h:1132
ARM64_REG_H10
@ ARM64_REG_H10
Definition: arm64.h:431
ARM64_INS_UABDL
@ ARM64_INS_UABDL
Definition: arm64.h:1032
ARM64_REG_W20
@ ARM64_REG_W20
Definition: arm64.h:537
ARM64_INS_USHR
@ ARM64_INS_USHR
Definition: arm64.h:1081
ARM64_REG_B28
@ ARM64_REG_B28
Definition: arm64.h:385
ARM64_INS_ST1
@ ARM64_INS_ST1
Definition: arm64.h:989
ARM64_REG_Q10
@ ARM64_REG_Q10
Definition: arm64.h:463
ARM64_INS_SUQADD
@ ARM64_INS_SUQADD
Definition: arm64.h:1018
ARM64_INS_SQSHRN
@ ARM64_INS_SQSHRN
Definition: arm64.h:966
ARM64_INS_SDIV
@ ARM64_INS_SDIV
Definition: arm64.h:912
ARM64_REG_Q1
@ ARM64_REG_Q1
Definition: arm64.h:454
ARM64_INS_LD4R
@ ARM64_INS_LD4R
Definition: arm64.h:824
ARM64_REG_B3
@ ARM64_REG_B3
Definition: arm64.h:360
ARM64_INS_FMIN
@ ARM64_INS_FMIN
Definition: arm64.h:781
ARM64_REG_Q6
@ ARM64_REG_Q6
Definition: arm64.h:459
ARM64_REG_W23
@ ARM64_REG_W23
Definition: arm64.h:540
ARM64_INS_SMINP
@ ARM64_INS_SMINP
Definition: arm64.h:936
ARM64_INS_TLBI
@ ARM64_INS_TLBI
Definition: arm64.h:1130
ARM64_INS_STLRB
@ ARM64_INS_STLRB
Definition: arm64.h:993
ARM64_REG_X21
@ ARM64_REG_X21
Definition: arm64.h:569
ARM64_INS_FMAXV
@ ARM64_INS_FMAXV
Definition: arm64.h:780
ARM64_INS_STURH
@ ARM64_INS_STURH
Definition: arm64.h:1010
count_positive8
unsigned int count_positive8(const unsigned char *list)
Definition: utils.c:83
ARM64_REG_XZR
@ ARM64_REG_XZR
Definition: arm64.h:356
ARM64_INS_NGCS
@ ARM64_INS_NGCS
Definition: arm64.h:1133
ARM64_REG_X16
@ ARM64_REG_X16
Definition: arm64.h:564
ARM64_REG_B24
@ ARM64_REG_B24
Definition: arm64.h:381
ARM64_INS_FCVTXN
@ ARM64_INS_FCVTXN
Definition: arm64.h:769
ARM64_INS_FMAXNMP
@ ARM64_INS_FMAXNMP
Definition: arm64.h:777
ARM64_REG_Q26
@ ARM64_REG_Q26
Definition: arm64.h:479
ARM64_INS_CMHS
@ ARM64_INS_CMHS
Definition: arm64.h:710
ARM64_REG_H6
@ ARM64_REG_H6
Definition: arm64.h:427
ARM64_INS_SRI
@ ARM64_INS_SRI
Definition: arm64.h:976
ARM64_REG_H14
@ ARM64_REG_H14
Definition: arm64.h:435
ARM64_REG_S8
@ ARM64_REG_S8
Definition: arm64.h:493
ARM64_INS_UADDL2
@ ARM64_INS_UADDL2
Definition: arm64.h:1037
ARM64_INS_BIT
@ ARM64_INS_BIT
Definition: arm64.h:693
ARM64_REG_X20
@ ARM64_REG_X20
Definition: arm64.h:568
ARM64_INS_SHA1M
@ ARM64_INS_SHA1M
Definition: arm64.h:915
ARM64_INS_TRN2
@ ARM64_INS_TRN2
Definition: arm64.h:1027
ARM64_INS_SQDMLAL2
@ ARM64_INS_SQDMLAL2
Definition: arm64.h:951
arm64_op_addVectorElementSizeSpecifier
void arm64_op_addVectorElementSizeSpecifier(MCInst *MI, int sp)
ARM64_INS_CMLE
@ ARM64_INS_CMLE
Definition: arm64.h:711
AArch64_map_vregister
arm64_reg AArch64_map_vregister(unsigned int r)
ARM64_REG_Q22
@ ARM64_REG_Q22
Definition: arm64.h:475
ARM64_INS_SABA
@ ARM64_INS_SABA
Definition: arm64.h:898
ARM64_INS_LSR
@ ARM64_INS_LSR
Definition: arm64.h:860
ARM64_INS_MLS
@ ARM64_INS_MLS
Definition: arm64.h:863
ARM64_GRP_INVALID
@ ARM64_GRP_INVALID
= CS_GRP_INVALID
Definition: arm64.h:1140
ARM64_REG_B1
@ ARM64_REG_B1
Definition: arm64.h:358
ARM64_REG_D10
@ ARM64_REG_D10
Definition: arm64.h:399
ARM64_REG_H31
@ ARM64_REG_H31
Definition: arm64.h:452
ARM64_REG_V14
@ ARM64_REG_V14
Definition: arm64.h:592
ARM64_REG_S28
@ ARM64_REG_S28
Definition: arm64.h:513
ARM64_INS_FMAX
@ ARM64_INS_FMAX
Definition: arm64.h:775
ARM64_REG_V20
@ ARM64_REG_V20
Definition: arm64.h:598
ARM64_INS_CMGE
@ ARM64_INS_CMGE
Definition: arm64.h:707
ARM64_INS_XTN2
@ ARM64_INS_XTN2
Definition: arm64.h:1090
arm64
Definition: test_winkernel.cpp:59
group_name_maps
static name_map group_name_maps[]
Definition: M68KInstPrinter.c:370
ARM64_INS_ZIP1
@ ARM64_INS_ZIP1
Definition: arm64.h:1092
ARM64_INS_RSHRN2
@ ARM64_INS_RSHRN2
Definition: arm64.h:891
ARM64_INS_UQSHRN
@ ARM64_INS_UQSHRN
Definition: arm64.h:1067
ARM64_INS_SQRSHRN2
@ ARM64_INS_SQRSHRN2
Definition: arm64.h:961
arm64_op_addFP
void arm64_op_addFP(MCInst *MI, float fp)
ARM64_INS_LDTR
@ ARM64_INS_LDTR
Definition: arm64.h:848
ARM64_REG_B27
@ ARM64_REG_B27
Definition: arm64.h:384
ARM64_REG_W22
@ ARM64_REG_W22
Definition: arm64.h:539
arm64_op_addVectorArrSpecifier
void arm64_op_addVectorArrSpecifier(MCInst *MI, int sp)
ARM64_INS_UMOV
@ ARM64_INS_UMOV
Definition: arm64.h:1057
ARM64_INS_MRS
@ ARM64_INS_MRS
Definition: arm64.h:868
ARM64_INS_MSR
@ ARM64_INS_MSR
Definition: arm64.h:869
ARM64_INS_FCVTPS
@ ARM64_INS_FCVTPS
Definition: arm64.h:767
ARM64_REG_D1
@ ARM64_REG_D1
Definition: arm64.h:390
ARM64_REG_Q29
@ ARM64_REG_Q29
Definition: arm64.h:482
ARM64_INS_TBZ
@ ARM64_INS_TBZ
Definition: arm64.h:1025
ARM64_REG_S12
@ ARM64_REG_S12
Definition: arm64.h:497
ARM64_INS_SABD
@ ARM64_INS_SABD
Definition: arm64.h:901
ARM64_REG_Q7
@ ARM64_REG_Q7
Definition: arm64.h:460
ARM64_REG_W30
@ ARM64_REG_W30
Definition: arm64.h:547
csh
size_t csh
Definition: capstone.h:71
ARM64_REG_H0
@ ARM64_REG_H0
Definition: arm64.h:421
ARM64_INS_ADRP
@ ARM64_INS_ADRP
Definition: arm64.h:682
ARM64_INS_FCVTL
@ ARM64_INS_FCVTL
Definition: arm64.h:759
ARM64_INS_LDTRSB
@ ARM64_INS_LDTRSB
Definition: arm64.h:844
ARM64_INS_LDARB
@ ARM64_INS_LDARB
Definition: arm64.h:826
ARM64_REG_SP
@ ARM64_REG_SP
Definition: arm64.h:353
ARM64_REG_H23
@ ARM64_REG_H23
Definition: arm64.h:444
ARM64_INS_SQABS
@ ARM64_INS_SQABS
Definition: arm64.h:948
ARM64_REG_H26
@ ARM64_REG_H26
Definition: arm64.h:447
MCInst
Definition: MCInst.h:88
ARM64_REG_D31
@ ARM64_REG_D31
Definition: arm64.h:420
ARM64_REG_X19
@ ARM64_REG_X19
Definition: arm64.h:567
ARM64_GRP_FPARMV8
@ ARM64_GRP_FPARMV8
Definition: arm64.h:1153
ARM64_GRP_CALL
@ ARM64_GRP_CALL
Definition: arm64.h:1145
ARM64_INS_PMULL2
@ ARM64_INS_PMULL2
Definition: arm64.h:877
ARM64_REG_Q11
@ ARM64_REG_Q11
Definition: arm64.h:464
ARM64_REG_Q31
@ ARM64_REG_Q31
Definition: arm64.h:484
ARM64_INS_PMULL
@ ARM64_INS_PMULL
Definition: arm64.h:878
ARM64_INS_RBIT
@ ARM64_INS_RBIT
Definition: arm64.h:884
ARM64_INS_SEV
@ ARM64_INS_SEV
Definition: arm64.h:1103
ARM64_INS_FCMP
@ ARM64_INS_FCMP
Definition: arm64.h:753
ARM64_INS_AESMC
@ ARM64_INS_AESMC
Definition: arm64.h:686
ARM64_REG_V26
@ ARM64_REG_V26
Definition: arm64.h:604
ARM64_REG_S17
@ ARM64_REG_S17
Definition: arm64.h:502
ARM64_INS_SUBHN2
@ ARM64_INS_SUBHN2
Definition: arm64.h:1016
ARM64_INS_UMULL
@ ARM64_INS_UMULL
Definition: arm64.h:1061
ARM64_REG_B31
@ ARM64_REG_B31
Definition: arm64.h:388
ARM64_INS_SHA1SU1
@ ARM64_INS_SHA1SU1
Definition: arm64.h:918
ARM64_INS_SADDL2
@ ARM64_INS_SADDL2
Definition: arm64.h:905
ARM64_INS_UCVTF
@ ARM64_INS_UCVTF
Definition: arm64.h:1042
AArch64_get_insn_id
void AArch64_get_insn_id(cs_struct *h, cs_insn *insn, unsigned int id)
ARM64_INS_ADR
@ ARM64_INS_ADR
Definition: arm64.h:681
ARM64_INS_FRINTA
@ ARM64_INS_FRINTA
Definition: arm64.h:800
make_dist_html.groups
list groups
Definition: make_dist_html.py:120
ARM64_INS_LDRSW
@ ARM64_INS_LDRSW
Definition: arm64.h:841
ARM64_INS_SXTW
@ ARM64_INS_SXTW
Definition: arm64.h:1122
ARM64_INS_ADD
@ ARM64_INS_ADD
Definition: arm64.h:679
ARM64_INS_SBFX
@ ARM64_INS_SBFX
Definition: arm64.h:1108
ARM64_REG_D24
@ ARM64_REG_D24
Definition: arm64.h:413
ARM64_INS_STXRB
@ ARM64_INS_STXRB
Definition: arm64.h:1012
ARM64_INS_LDTRSH
@ ARM64_INS_LDTRSH
Definition: arm64.h:846
ARM64_INS_NEG
@ ARM64_INS_NEG
Definition: arm64.h:873
ARM64_INS_FMINNM
@ ARM64_INS_FMINNM
Definition: arm64.h:782
ARM64_INS_REV16
@ ARM64_INS_REV16
Definition: arm64.h:886
ARM64_INS_SMSUBL
@ ARM64_INS_SMSUBL
Definition: arm64.h:944
ARM64_INS_UABAL
@ ARM64_INS_UABAL
Definition: arm64.h:1029
ARM64_INS_RADDHN2
@ ARM64_INS_RADDHN2
Definition: arm64.h:883
ARM64_INS_STXR
@ ARM64_INS_STXR
Definition: arm64.h:1014
ARM64_INS_FCMGT
@ ARM64_INS_FCMGT
Definition: arm64.h:750
ARM64_INS_AND
@ ARM64_INS_AND
Definition: arm64.h:687
ARM64_REG_W3
@ ARM64_REG_W3
Definition: arm64.h:520
ARM64_REG_S0
@ ARM64_REG_S0
Definition: arm64.h:485
ARM64_INS_DCPS2
@ ARM64_INS_DCPS2
Definition: arm64.h:729
ARM64_REG_X1
@ ARM64_REG_X1
Definition: arm64.h:549
AArch64_map_insn
arm64_reg AArch64_map_insn(const char *name)
ARM64_INS_FMAXNM
@ ARM64_INS_FMAXNM
Definition: arm64.h:776
ARM64_INS_FCVTN2
@ ARM64_INS_FCVTN2
Definition: arm64.h:766
ARM64_INS_CNT
@ ARM64_INS_CNT
Definition: arm64.h:714
ARM64_INS_STTRB
@ ARM64_INS_STTRB
Definition: arm64.h:1005
ARM64_INS_INVALID
@ ARM64_INS_INVALID
Definition: arm64.h:672
ARM64_INS_BL
@ ARM64_INS_BL
Definition: arm64.h:694
ARM64_REG_Q16
@ ARM64_REG_Q16
Definition: arm64.h:469
ARM64_INS_EOR
@ ARM64_INS_EOR
Definition: arm64.h:736
ARM64_REG_D8
@ ARM64_REG_D8
Definition: arm64.h:397
ARM64_INS_STLXP
@ ARM64_INS_STLXP
Definition: arm64.h:996
ARM64_INS_LDAXRH
@ ARM64_INS_LDAXRH
Definition: arm64.h:831
ARM64_INS_NGC
@ ARM64_INS_NGC
Definition: arm64.h:1105
ARM64_REG_W14
@ ARM64_REG_W14
Definition: arm64.h:531
ARM64_INS_LD2
@ ARM64_INS_LD2
Definition: arm64.h:820
ARM64_REG_WSP
@ ARM64_REG_WSP
Definition: arm64.h:354
ARM64_GRP_BRANCH_RELATIVE
@ ARM64_GRP_BRANCH_RELATIVE
= CS_GRP_BRANCH_RELATIVE
Definition: arm64.h:1149
ARM64_INS_SHA256H2
@ ARM64_INS_SHA256H2
Definition: arm64.h:919
ARM64_INS_FCVTNS
@ ARM64_INS_FCVTNS
Definition: arm64.h:763
ARM64_INS_SHLL2
@ ARM64_INS_SHLL2
Definition: arm64.h:924
ARM64_REG_X24
@ ARM64_REG_X24
Definition: arm64.h:572
ARM64_INS_CRC32B
@ ARM64_INS_CRC32B
Definition: arm64.h:716
ARM64_INS_FRSQRTS
@ ARM64_INS_FRSQRTS
Definition: arm64.h:808
ARM64_INS_FSUB
@ ARM64_INS_FSUB
Definition: arm64.h:810
ARM64_REG_Q3
@ ARM64_REG_Q3
Definition: arm64.h:456
ARM64_INS_CRC32X
@ ARM64_INS_CRC32X
Definition: arm64.h:723
ARM64_INS_FMULX
@ ARM64_INS_FMULX
Definition: arm64.h:792
ARM64_INS_SADDLV
@ ARM64_INS_SADDLV
Definition: arm64.h:904
ARM64_REG_B10
@ ARM64_REG_B10
Definition: arm64.h:367
ARM64_INS_UZP1
@ ARM64_INS_UZP1
Definition: arm64.h:1088
ARM64_INS_RSUBHN
@ ARM64_INS_RSUBHN
Definition: arm64.h:893
fix_build_deps.r
r
Definition: fix_build_deps.py:491
ARM64_REG_B22
@ ARM64_REG_B22
Definition: arm64.h:379
ARM64_REG_H3
@ ARM64_REG_H3
Definition: arm64.h:424
ARM64_REG_D6
@ ARM64_REG_D6
Definition: arm64.h:395
ARM64_REG_D28
@ ARM64_REG_D28
Definition: arm64.h:417
ARM64_INS_UHADD
@ ARM64_INS_UHADD
Definition: arm64.h:1044
ARM64_REG_V4
@ ARM64_REG_V4
Definition: arm64.h:582
ARM64_REG_W15
@ ARM64_REG_W15
Definition: arm64.h:532
ARM64_INS_AT
@ ARM64_INS_AT
Definition: arm64.h:1129
ARM64_REG_D14
@ ARM64_REG_D14
Definition: arm64.h:403
ARM64_INS_SUBHN
@ ARM64_INS_SUBHN
Definition: arm64.h:1015
ARM64_INS_SQDMULH
@ ARM64_INS_SQDMULH
Definition: arm64.h:954
ARM64_REG_H16
@ ARM64_REG_H16
Definition: arm64.h:437
ARM64_INS_SXTB
@ ARM64_INS_SXTB
Definition: arm64.h:1120
ARM64_INS_TBX
@ ARM64_INS_TBX
Definition: arm64.h:1024
ARM64_REG_S1
@ ARM64_REG_S1
Definition: arm64.h:486
ARM64_REG_S16
@ ARM64_REG_S16
Definition: arm64.h:501
ARM64_INS_UQRSHRN
@ ARM64_INS_UQRSHRN
Definition: arm64.h:1064
ARM64_REG_W5
@ ARM64_REG_W5
Definition: arm64.h:522
ARM64_INS_SQDMULL
@ ARM64_INS_SQDMULL
Definition: arm64.h:955
ARM64_INS_LDRB
@ ARM64_INS_LDRB
Definition: arm64.h:836
ARM64_INS_ORN
@ ARM64_INS_ORN
Definition: arm64.h:875
ARM64_REG_S26
@ ARM64_REG_S26
Definition: arm64.h:511
ARM64_REG_WZR
@ ARM64_REG_WZR
Definition: arm64.h:355
ARM64_INS_SQDMLSL2
@ ARM64_INS_SQDMLSL2
Definition: arm64.h:953
ARM64_INS_CLREX
@ ARM64_INS_CLREX
Definition: arm64.h:703
ARM64_REG_S29
@ ARM64_REG_S29
Definition: arm64.h:514
ARM64_INS_FCVTXN2
@ ARM64_INS_FCVTXN2
Definition: arm64.h:770
ARM64_REG_W26
@ ARM64_REG_W26
Definition: arm64.h:543
ARM64_INS_FRINTX
@ ARM64_INS_FRINTX
Definition: arm64.h:805
ARM64_INS_CRC32CH
@ ARM64_INS_CRC32CH
Definition: arm64.h:718
ARM64_REG_H21
@ ARM64_REG_H21
Definition: arm64.h:442
ARM64_REG_Q30
@ ARM64_REG_Q30
Definition: arm64.h:483
ARM64_REG_V22
@ ARM64_REG_V22
Definition: arm64.h:600
ARM64_INS_LDARH
@ ARM64_INS_LDARH
Definition: arm64.h:827
ARM64_REG_Q28
@ ARM64_REG_Q28
Definition: arm64.h:481
ARM64_REG_X17
@ ARM64_REG_X17
Definition: arm64.h:565
ARM64_REG_V21
@ ARM64_REG_V21
Definition: arm64.h:599
ARM64_INS_SMLSL
@ ARM64_INS_SMLSL
Definition: arm64.h:942
ARM64_REG_V8
@ ARM64_REG_V8
Definition: arm64.h:586
name_map::name
const char * name
Definition: utils.h:38
ARM64_OP_IMM
@ ARM64_OP_IMM
= CS_OP_IMM (Immediate operand).
Definition: arm64.h:236
ARM64_INS_USQADD
@ ARM64_INS_USQADD
Definition: arm64.h:1082
ARM64_INS_FRECPE
@ ARM64_INS_FRECPE
Definition: arm64.h:797
ARM64_REG_B21
@ ARM64_REG_B21
Definition: arm64.h:378
ARM64_INS_SHA1P
@ ARM64_INS_SHA1P
Definition: arm64.h:916
ARM64_INS_USHL
@ ARM64_INS_USHL
Definition: arm64.h:1080
ARM64_INS_UMADDL
@ ARM64_INS_UMADDL
Definition: arm64.h:1046
ARM64_INS_SYS
@ ARM64_INS_SYS
Definition: arm64.h:1021
ARM64_REG_D11
@ ARM64_REG_D11
Definition: arm64.h:400
ARM64_REG_H22
@ ARM64_REG_H22
Definition: arm64.h:443
ARM64_INS_SQXTN2
@ ARM64_INS_SQXTN2
Definition: arm64.h:971
ARM64_INS_FRINTM
@ ARM64_INS_FRINTM
Definition: arm64.h:802
ARM64_INS_SRSRA
@ ARM64_INS_SRSRA
Definition: arm64.h:979
ARM64_REG_D18
@ ARM64_REG_D18
Definition: arm64.h:407
ARM64_INS_ADDV
@ ARM64_INS_ADDV
Definition: arm64.h:680
ARM64_INS_CCMP
@ ARM64_INS_CCMP
Definition: arm64.h:702
ARM64_INS_FMOV
@ ARM64_INS_FMOV
Definition: arm64.h:789
AArch64_insn_name
const char * AArch64_insn_name(csh handle, unsigned int id)
ARM64_INS_SMULL
@ ARM64_INS_SMULL
Definition: arm64.h:947
ARM64_INS_SBFIZ
@ ARM64_INS_SBFIZ
Definition: arm64.h:1106
ARM64_REG_W9
@ ARM64_REG_W9
Definition: arm64.h:526
ARM64_REG_V6
@ ARM64_REG_V6
Definition: arm64.h:584
ARM64_REG_S21
@ ARM64_REG_S21
Definition: arm64.h:506
ARM64_REG_B12
@ ARM64_REG_B12
Definition: arm64.h:369
ARM64_INS_XTN
@ ARM64_INS_XTN
Definition: arm64.h:1091
ARM64_INS_FMLS
@ ARM64_INS_FMLS
Definition: arm64.h:788
ARM64_INS_FRECPX
@ ARM64_INS_FRECPX
Definition: arm64.h:799
ARM64_INS_FADD
@ ARM64_INS_FADD
Definition: arm64.h:744
ARM64_INS_UMLAL
@ ARM64_INS_UMLAL
Definition: arm64.h:1054
ARM64_REG_V27
@ ARM64_REG_V27
Definition: arm64.h:605
ARM64_INS_SADDW
@ ARM64_INS_SADDW
Definition: arm64.h:908
ARM64_INS_RADDHN
@ ARM64_INS_RADDHN
Definition: arm64.h:882
ARM64_INS_SSUBW
@ ARM64_INS_SSUBW
Definition: arm64.h:988
ARM64_INS_RSHRN
@ ARM64_INS_RSHRN
Definition: arm64.h:892
ARM64_REG_H1
@ ARM64_REG_H1
Definition: arm64.h:422
ARM64_INS_SQSHRUN2
@ ARM64_INS_SQSHRUN2
Definition: arm64.h:969
ARM64_INS_ADDHN
@ ARM64_INS_ADDHN
Definition: arm64.h:676
ARM64_INS_TRN1
@ ARM64_INS_TRN1
Definition: arm64.h:1026
ARM64_INS_FNMSUB
@ ARM64_INS_FNMSUB
Definition: arm64.h:795
handle
static csh handle
Definition: test_arm_regression.c:16
ARM64_REG_S31
@ ARM64_REG_S31
Definition: arm64.h:516
ARM64_INS_ERET
@ ARM64_INS_ERET
Definition: arm64.h:737
arm64_op_addImm
void arm64_op_addImm(MCInst *MI, int64_t imm)
ARM64_INS_USRA
@ ARM64_INS_USRA
Definition: arm64.h:1083
ARM64_INS_SABDL
@ ARM64_INS_SABDL
Definition: arm64.h:900
ARM64_INS_LDNP
@ ARM64_INS_LDNP
Definition: arm64.h:833
ARM64_INS_ZIP2
@ ARM64_INS_ZIP2
Definition: arm64.h:1093
AArch64_reg_name
const char * AArch64_reg_name(csh handle, unsigned int reg)
ARM64_REG_H19
@ ARM64_REG_H19
Definition: arm64.h:440
ARM64_REG_X7
@ ARM64_REG_X7
Definition: arm64.h:555
ARM64_INS_MNEG
@ ARM64_INS_MNEG
Definition: arm64.h:1096
ARM64_REG_V7
@ ARM64_REG_V7
Definition: arm64.h:585
ARM64_INS_BIF
@ ARM64_INS_BIF
Definition: arm64.h:692
ARM64_INS_FCVTZS
@ ARM64_INS_FCVTZS
Definition: arm64.h:771
ARM64_INS_SQRDMULH
@ ARM64_INS_SQRDMULH
Definition: arm64.h:958
ARM64_REG_Q21
@ ARM64_REG_Q21
Definition: arm64.h:474
ARM64_REG_H4
@ ARM64_REG_H4
Definition: arm64.h:425
ARM_OP_MEM
@ ARM_OP_MEM
= CS_OP_MEM (Memory operand).
Definition: arm.h:165
ARM64_INS_FCVTPU
@ ARM64_INS_FCVTPU
Definition: arm64.h:768
ARM64_REG_D15
@ ARM64_REG_D15
Definition: arm64.h:404
ARM64_INS_STXP
@ ARM64_INS_STXP
Definition: arm64.h:1011
ARM64_INS_ORR
@ ARM64_INS_ORR
Definition: arm64.h:876
ARM64_REG_X27
@ ARM64_REG_X27
Definition: arm64.h:575
ARM64_INS_MADD
@ ARM64_INS_MADD
Definition: arm64.h:861
ARM64_GRP_JUMP
@ ARM64_GRP_JUMP
= CS_GRP_JUMP
Definition: arm64.h:1144
ARM64_INS_UMULL2
@ ARM64_INS_UMULL2
Definition: arm64.h:1060
ARM64_REG_H9
@ ARM64_REG_H9
Definition: arm64.h:430
ARM64_REG_S24
@ ARM64_REG_S24
Definition: arm64.h:509
ARM64_INS_SABAL2
@ ARM64_INS_SABAL2
Definition: arm64.h:895
ARM64_INS_MOVK
@ ARM64_INS_MOVK
Definition: arm64.h:865
ARM64_INS_CMN
@ ARM64_INS_CMN
Definition: arm64.h:1112
ARM64_INS_SMULH
@ ARM64_INS_SMULH
Definition: arm64.h:945
ARM64_INS_STTRH
@ ARM64_INS_STTRH
Definition: arm64.h:1006
ARM64_INS_SADDW2
@ ARM64_INS_SADDW2
Definition: arm64.h:907
ARM64_INS_SRHADD
@ ARM64_INS_SRHADD
Definition: arm64.h:975
ARM64_INS_RET
@ ARM64_INS_RET
Definition: arm64.h:885
ARM64_INS_DCPS3
@ ARM64_INS_DCPS3
Definition: arm64.h:730
ARM64_INS_DC
@ ARM64_INS_DC
Definition: arm64.h:1128
AArch64_get_op_access
uint8_t * AArch64_get_op_access(cs_struct *h, unsigned int id)
ARM64_INS_UQSHRN2
@ ARM64_INS_UQSHRN2
Definition: arm64.h:1068
ARM64_INS_URSHR
@ ARM64_INS_URSHR
Definition: arm64.h:1075
ARM64_REG_W10
@ ARM64_REG_W10
Definition: arm64.h:527
ARM64_REG_H20
@ ARM64_REG_H20
Definition: arm64.h:441
ARM64_INS_SHL
@ ARM64_INS_SHL
Definition: arm64.h:926
ARM64_INS_FCMLT
@ ARM64_INS_FCMLT
Definition: arm64.h:752
ARM64_INS_WFE
@ ARM64_INS_WFE
Definition: arm64.h:1101
ARM64_REG_V24
@ ARM64_REG_V24
Definition: arm64.h:602
ARM64_INS_SQNEG
@ ARM64_INS_SQNEG
Definition: arm64.h:957
ARM64_REG_W25
@ ARM64_REG_W25
Definition: arm64.h:542
ARM64_REG_S23
@ ARM64_REG_S23
Definition: arm64.h:508
ARM64_REG_W8
@ ARM64_REG_W8
Definition: arm64.h:525
access
Definition: bloaty/third_party/zlib/examples/zran.c:75
ARM64_INS_DSB
@ ARM64_INS_DSB
Definition: arm64.h:733
ARM64_INS_FNMUL
@ ARM64_INS_FNMUL
Definition: arm64.h:796
ARM64_INS_YIELD
@ ARM64_INS_YIELD
Definition: arm64.h:1100
ARM64_REG_X29
@ ARM64_REG_X29
Definition: arm64.h:350
ARM64_INS_CMP
@ ARM64_INS_CMP
Definition: arm64.h:1123
ARM64_INS_SHLL
@ ARM64_INS_SHLL
Definition: arm64.h:925
ARM64_REG_INVALID
@ ARM64_REG_INVALID
Definition: arm64.h:348
ARM64_INS_SADDL
@ ARM64_INS_SADDL
Definition: arm64.h:906
absl::str_format_internal::LengthMod::h
@ h
ARM64_REG_B11
@ ARM64_REG_B11
Definition: arm64.h:368
ARM64_INS_STR
@ ARM64_INS_STR
Definition: arm64.h:1003
ARM64_INS_CMTST
@ ARM64_INS_CMTST
Definition: arm64.h:713
ARM64_REG_S30
@ ARM64_REG_S30
Definition: arm64.h:515
ARM64_REG_B26
@ ARM64_REG_B26
Definition: arm64.h:383
op
static grpc_op * op
Definition: test/core/fling/client.cc:47
ARM64_INS_UMINP
@ ARM64_INS_UMINP
Definition: arm64.h:1050
ARM64_REG_D21
@ ARM64_REG_D21
Definition: arm64.h:410
ARM64_INS_LD3R
@ ARM64_INS_LD3R
Definition: arm64.h:821
ARM64_INS_STURB
@ ARM64_INS_STURB
Definition: arm64.h:1008
ARM64_INS_SMLAL
@ ARM64_INS_SMLAL
Definition: arm64.h:940
ARM64_INS_SMAX
@ ARM64_INS_SMAX
Definition: arm64.h:934
ARM64_INS_SQDMULL2
@ ARM64_INS_SQDMULL2
Definition: arm64.h:956
ARM64_REG_H11
@ ARM64_REG_H11
Definition: arm64.h:432
ARM64_REG_X13
@ ARM64_REG_X13
Definition: arm64.h:561
ARM64_INS_LDAR
@ ARM64_INS_LDAR
Definition: arm64.h:828
ARM64_INS_BIC
@ ARM64_INS_BIC
Definition: arm64.h:691
ARM64_REG_D26
@ ARM64_REG_D26
Definition: arm64.h:415
ARM64_REG_W13
@ ARM64_REG_W13
Definition: arm64.h:530
ARM64_INS_SMULL2
@ ARM64_INS_SMULL2
Definition: arm64.h:946
ARM64_INS_CMLT
@ ARM64_INS_CMLT
Definition: arm64.h:712
ARM64_INS_SSHR
@ ARM64_INS_SSHR
Definition: arm64.h:983
ARM64_INS_URSRA
@ ARM64_INS_URSRA
Definition: arm64.h:1077
ARM64_REG_X14
@ ARM64_REG_X14
Definition: arm64.h:562
ARM64_REG_B0
@ ARM64_REG_B0
Definition: arm64.h:357
ARM64_INS_CRC32H
@ ARM64_INS_CRC32H
Definition: arm64.h:721
ARM64_INS_USUBW
@ ARM64_INS_USUBW
Definition: arm64.h:1087
ARM64_REG_V16
@ ARM64_REG_V16
Definition: arm64.h:594
MCInst::flat_insn
cs_insn * flat_insn
Definition: MCInst.h:95
ARM64_INS_ADDHN2
@ ARM64_INS_ADDHN2
Definition: arm64.h:677
ARM64_REG_S7
@ ARM64_REG_S7
Definition: arm64.h:492
ARM64_REG_B14
@ ARM64_REG_B14
Definition: arm64.h:371
ARM64_INS_STLR
@ ARM64_INS_STLR
Definition: arm64.h:995
ARM64_INS_FADDP
@ ARM64_INS_FADDP
Definition: arm64.h:745
ARM64_INS_SHSUB
@ ARM64_INS_SHSUB
Definition: arm64.h:929
name_map
Definition: utils.h:36
ARM64_REG_B5
@ ARM64_REG_B5
Definition: arm64.h:362
ARM64_INS_BFXIL
@ ARM64_INS_BFXIL
Definition: arm64.h:1111
ARM64_INS_STRH
@ ARM64_INS_STRH
Definition: arm64.h:1004
ARM64_INS_MVN
@ ARM64_INS_MVN
Definition: arm64.h:1113
i
uint64_t i
Definition: abseil-cpp/absl/container/btree_benchmark.cc:230
CS_AC_WRITE
@ CS_AC_WRITE
Operand write to memory or register.
Definition: capstone.h:206
ARM64_INS_STUR
@ ARM64_INS_STUR
Definition: arm64.h:1009
ARM64_REG_H30
@ ARM64_REG_H30
Definition: arm64.h:451
ARM64_INS_FMUL
@ ARM64_INS_FMUL
Definition: arm64.h:791
ARM64_INS_UABAL2
@ ARM64_INS_UABAL2
Definition: arm64.h:1028
ARM64_INS_CLS
@ ARM64_INS_CLS
Definition: arm64.h:704
ARM64_REG_Q8
@ ARM64_REG_Q8
Definition: arm64.h:461
ARM64_INS_MLA
@ ARM64_INS_MLA
Definition: arm64.h:862
ARM64_REG_V0
@ ARM64_REG_V0
Definition: arm64.h:578
ARM64_REG_X2
@ ARM64_REG_X2
Definition: arm64.h:550
id
uint32_t id
Definition: flow_control_fuzzer.cc:70
ARM64_REG_W0
@ ARM64_REG_W0
Definition: arm64.h:517
ARM64_INS_SMNEGL
@ ARM64_INS_SMNEGL
Definition: arm64.h:1098
ARM64_INS_LDAXP
@ ARM64_INS_LDAXP
Definition: arm64.h:829
ARM64_INS_TST
@ ARM64_INS_TST
Definition: arm64.h:1114
ARM64_REG_W21
@ ARM64_REG_W21
Definition: arm64.h:538
ARM64_INS_FCMEQ
@ ARM64_INS_FCMEQ
Definition: arm64.h:748
ARR_SIZE
#define ARR_SIZE(a)
Definition: ocaml.c:13
ARM64_REG_D12
@ ARM64_REG_D12
Definition: arm64.h:401
ARM64_REG_V9
@ ARM64_REG_V9
Definition: arm64.h:587
ARM64_REG_W7
@ ARM64_REG_W7
Definition: arm64.h:524
ARM64_REG_D27
@ ARM64_REG_D27
Definition: arm64.h:416
cs_arm64
Instruction structure.
Definition: arm64.h:658
ARM64_INS_FDIV
@ ARM64_INS_FDIV
Definition: arm64.h:773
ARM64_INS_AESIMC
@ ARM64_INS_AESIMC
Definition: arm64.h:685


grpc
Author(s):
autogenerated on Fri May 16 2025 02:57:39