ARMMapping.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_ARM
5 
6 #include <stdio.h> // debug
7 #include <string.h>
8 
9 #include "../../cs_priv.h"
10 
11 #include "ARMMapping.h"
12 
13 #define GET_INSTRINFO_ENUM
14 #include "ARMGenInstrInfo.inc"
15 
16 #ifndef CAPSTONE_DIET
17 static const name_map reg_name_maps[] = {
18  { ARM_REG_INVALID, NULL },
19  { ARM_REG_APSR, "apsr"},
20  { ARM_REG_APSR_NZCV, "apsr_nzcv"},
21  { ARM_REG_CPSR, "cpsr"},
22  { ARM_REG_FPEXC, "fpexc"},
23  { ARM_REG_FPINST, "fpinst"},
24  { ARM_REG_FPSCR, "fpscr"},
25  { ARM_REG_FPSCR_NZCV, "fpscr_nzcv"},
26  { ARM_REG_FPSID, "fpsid"},
27  { ARM_REG_ITSTATE, "itstate"},
28  { ARM_REG_LR, "lr"},
29  { ARM_REG_PC, "pc"},
30  { ARM_REG_SP, "sp"},
31  { ARM_REG_SPSR, "spsr"},
32  { ARM_REG_D0, "d0"},
33  { ARM_REG_D1, "d1"},
34  { ARM_REG_D2, "d2"},
35  { ARM_REG_D3, "d3"},
36  { ARM_REG_D4, "d4"},
37  { ARM_REG_D5, "d5"},
38  { ARM_REG_D6, "d6"},
39  { ARM_REG_D7, "d7"},
40  { ARM_REG_D8, "d8"},
41  { ARM_REG_D9, "d9"},
42  { ARM_REG_D10, "d10"},
43  { ARM_REG_D11, "d11"},
44  { ARM_REG_D12, "d12"},
45  { ARM_REG_D13, "d13"},
46  { ARM_REG_D14, "d14"},
47  { ARM_REG_D15, "d15"},
48  { ARM_REG_D16, "d16"},
49  { ARM_REG_D17, "d17"},
50  { ARM_REG_D18, "d18"},
51  { ARM_REG_D19, "d19"},
52  { ARM_REG_D20, "d20"},
53  { ARM_REG_D21, "d21"},
54  { ARM_REG_D22, "d22"},
55  { ARM_REG_D23, "d23"},
56  { ARM_REG_D24, "d24"},
57  { ARM_REG_D25, "d25"},
58  { ARM_REG_D26, "d26"},
59  { ARM_REG_D27, "d27"},
60  { ARM_REG_D28, "d28"},
61  { ARM_REG_D29, "d29"},
62  { ARM_REG_D30, "d30"},
63  { ARM_REG_D31, "d31"},
64  { ARM_REG_FPINST2, "fpinst2"},
65  { ARM_REG_MVFR0, "mvfr0"},
66  { ARM_REG_MVFR1, "mvfr1"},
67  { ARM_REG_MVFR2, "mvfr2"},
68  { ARM_REG_Q0, "q0"},
69  { ARM_REG_Q1, "q1"},
70  { ARM_REG_Q2, "q2"},
71  { ARM_REG_Q3, "q3"},
72  { ARM_REG_Q4, "q4"},
73  { ARM_REG_Q5, "q5"},
74  { ARM_REG_Q6, "q6"},
75  { ARM_REG_Q7, "q7"},
76  { ARM_REG_Q8, "q8"},
77  { ARM_REG_Q9, "q9"},
78  { ARM_REG_Q10, "q10"},
79  { ARM_REG_Q11, "q11"},
80  { ARM_REG_Q12, "q12"},
81  { ARM_REG_Q13, "q13"},
82  { ARM_REG_Q14, "q14"},
83  { ARM_REG_Q15, "q15"},
84  { ARM_REG_R0, "r0"},
85  { ARM_REG_R1, "r1"},
86  { ARM_REG_R2, "r2"},
87  { ARM_REG_R3, "r3"},
88  { ARM_REG_R4, "r4"},
89  { ARM_REG_R5, "r5"},
90  { ARM_REG_R6, "r6"},
91  { ARM_REG_R7, "r7"},
92  { ARM_REG_R8, "r8"},
93  { ARM_REG_R9, "sb"},
94  { ARM_REG_R10, "sl"},
95  { ARM_REG_R11, "fp"},
96  { ARM_REG_R12, "ip"},
97  { ARM_REG_S0, "s0"},
98  { ARM_REG_S1, "s1"},
99  { ARM_REG_S2, "s2"},
100  { ARM_REG_S3, "s3"},
101  { ARM_REG_S4, "s4"},
102  { ARM_REG_S5, "s5"},
103  { ARM_REG_S6, "s6"},
104  { ARM_REG_S7, "s7"},
105  { ARM_REG_S8, "s8"},
106  { ARM_REG_S9, "s9"},
107  { ARM_REG_S10, "s10"},
108  { ARM_REG_S11, "s11"},
109  { ARM_REG_S12, "s12"},
110  { ARM_REG_S13, "s13"},
111  { ARM_REG_S14, "s14"},
112  { ARM_REG_S15, "s15"},
113  { ARM_REG_S16, "s16"},
114  { ARM_REG_S17, "s17"},
115  { ARM_REG_S18, "s18"},
116  { ARM_REG_S19, "s19"},
117  { ARM_REG_S20, "s20"},
118  { ARM_REG_S21, "s21"},
119  { ARM_REG_S22, "s22"},
120  { ARM_REG_S23, "s23"},
121  { ARM_REG_S24, "s24"},
122  { ARM_REG_S25, "s25"},
123  { ARM_REG_S26, "s26"},
124  { ARM_REG_S27, "s27"},
125  { ARM_REG_S28, "s28"},
126  { ARM_REG_S29, "s29"},
127  { ARM_REG_S30, "s30"},
128  { ARM_REG_S31, "s31"},
129 };
130 static const name_map reg_name_maps2[] = {
131  { ARM_REG_INVALID, NULL },
132  { ARM_REG_APSR, "apsr"},
133  { ARM_REG_APSR_NZCV, "apsr_nzcv"},
134  { ARM_REG_CPSR, "cpsr"},
135  { ARM_REG_FPEXC, "fpexc"},
136  { ARM_REG_FPINST, "fpinst"},
137  { ARM_REG_FPSCR, "fpscr"},
138  { ARM_REG_FPSCR_NZCV, "fpscr_nzcv"},
139  { ARM_REG_FPSID, "fpsid"},
140  { ARM_REG_ITSTATE, "itstate"},
141  { ARM_REG_LR, "lr"},
142  { ARM_REG_PC, "pc"},
143  { ARM_REG_SP, "sp"},
144  { ARM_REG_SPSR, "spsr"},
145  { ARM_REG_D0, "d0"},
146  { ARM_REG_D1, "d1"},
147  { ARM_REG_D2, "d2"},
148  { ARM_REG_D3, "d3"},
149  { ARM_REG_D4, "d4"},
150  { ARM_REG_D5, "d5"},
151  { ARM_REG_D6, "d6"},
152  { ARM_REG_D7, "d7"},
153  { ARM_REG_D8, "d8"},
154  { ARM_REG_D9, "d9"},
155  { ARM_REG_D10, "d10"},
156  { ARM_REG_D11, "d11"},
157  { ARM_REG_D12, "d12"},
158  { ARM_REG_D13, "d13"},
159  { ARM_REG_D14, "d14"},
160  { ARM_REG_D15, "d15"},
161  { ARM_REG_D16, "d16"},
162  { ARM_REG_D17, "d17"},
163  { ARM_REG_D18, "d18"},
164  { ARM_REG_D19, "d19"},
165  { ARM_REG_D20, "d20"},
166  { ARM_REG_D21, "d21"},
167  { ARM_REG_D22, "d22"},
168  { ARM_REG_D23, "d23"},
169  { ARM_REG_D24, "d24"},
170  { ARM_REG_D25, "d25"},
171  { ARM_REG_D26, "d26"},
172  { ARM_REG_D27, "d27"},
173  { ARM_REG_D28, "d28"},
174  { ARM_REG_D29, "d29"},
175  { ARM_REG_D30, "d30"},
176  { ARM_REG_D31, "d31"},
177  { ARM_REG_FPINST2, "fpinst2"},
178  { ARM_REG_MVFR0, "mvfr0"},
179  { ARM_REG_MVFR1, "mvfr1"},
180  { ARM_REG_MVFR2, "mvfr2"},
181  { ARM_REG_Q0, "q0"},
182  { ARM_REG_Q1, "q1"},
183  { ARM_REG_Q2, "q2"},
184  { ARM_REG_Q3, "q3"},
185  { ARM_REG_Q4, "q4"},
186  { ARM_REG_Q5, "q5"},
187  { ARM_REG_Q6, "q6"},
188  { ARM_REG_Q7, "q7"},
189  { ARM_REG_Q8, "q8"},
190  { ARM_REG_Q9, "q9"},
191  { ARM_REG_Q10, "q10"},
192  { ARM_REG_Q11, "q11"},
193  { ARM_REG_Q12, "q12"},
194  { ARM_REG_Q13, "q13"},
195  { ARM_REG_Q14, "q14"},
196  { ARM_REG_Q15, "q15"},
197  { ARM_REG_R0, "r0"},
198  { ARM_REG_R1, "r1"},
199  { ARM_REG_R2, "r2"},
200  { ARM_REG_R3, "r3"},
201  { ARM_REG_R4, "r4"},
202  { ARM_REG_R5, "r5"},
203  { ARM_REG_R6, "r6"},
204  { ARM_REG_R7, "r7"},
205  { ARM_REG_R8, "r8"},
206  { ARM_REG_R9, "r9"},
207  { ARM_REG_R10, "r10"},
208  { ARM_REG_R11, "r11"},
209  { ARM_REG_R12, "r12"},
210  { ARM_REG_S0, "s0"},
211  { ARM_REG_S1, "s1"},
212  { ARM_REG_S2, "s2"},
213  { ARM_REG_S3, "s3"},
214  { ARM_REG_S4, "s4"},
215  { ARM_REG_S5, "s5"},
216  { ARM_REG_S6, "s6"},
217  { ARM_REG_S7, "s7"},
218  { ARM_REG_S8, "s8"},
219  { ARM_REG_S9, "s9"},
220  { ARM_REG_S10, "s10"},
221  { ARM_REG_S11, "s11"},
222  { ARM_REG_S12, "s12"},
223  { ARM_REG_S13, "s13"},
224  { ARM_REG_S14, "s14"},
225  { ARM_REG_S15, "s15"},
226  { ARM_REG_S16, "s16"},
227  { ARM_REG_S17, "s17"},
228  { ARM_REG_S18, "s18"},
229  { ARM_REG_S19, "s19"},
230  { ARM_REG_S20, "s20"},
231  { ARM_REG_S21, "s21"},
232  { ARM_REG_S22, "s22"},
233  { ARM_REG_S23, "s23"},
234  { ARM_REG_S24, "s24"},
235  { ARM_REG_S25, "s25"},
236  { ARM_REG_S26, "s26"},
237  { ARM_REG_S27, "s27"},
238  { ARM_REG_S28, "s28"},
239  { ARM_REG_S29, "s29"},
240  { ARM_REG_S30, "s30"},
241  { ARM_REG_S31, "s31"},
242 };
243 #endif
244 
245 const char *ARM_reg_name(csh handle, unsigned int reg)
246 {
247 #ifndef CAPSTONE_DIET
248  if (reg >= ARR_SIZE(reg_name_maps))
249  return NULL;
250 
251  return reg_name_maps[reg].name;
252 #else
253  return NULL;
254 #endif
255 }
256 
257 const char *ARM_reg_name2(csh handle, unsigned int reg)
258 {
259 #ifndef CAPSTONE_DIET
260  if (reg >= ARR_SIZE(reg_name_maps2))
261  return NULL;
262 
263  return reg_name_maps2[reg].name;
264 #else
265  return NULL;
266 #endif
267 }
268 
269 static const insn_map insns[] = {
270  // dummy item
271  {
272  0, 0,
273 #ifndef CAPSTONE_DIET
274  { 0 }, { 0 }, { 0 }, 0, 0
275 #endif
276  },
277 
278 #include "ARMMappingInsn.inc"
279 };
280 
281 void ARM_get_insn_id(cs_struct *h, cs_insn *insn, unsigned int id)
282 {
283  int i = insn_find(insns, ARR_SIZE(insns), id, &h->insn_cache);
284  //printf(">> id = %u\n", id);
285  if (i != 0) {
286  insn->id = insns[i].mapid;
287 
288  if (h->detail) {
289 #ifndef CAPSTONE_DIET
291  handle.detail = h->detail;
292 
293  memcpy(insn->detail->regs_read, insns[i].regs_use, sizeof(insns[i].regs_use));
294  insn->detail->regs_read_count = (uint8_t)count_positive(insns[i].regs_use);
295 
296  memcpy(insn->detail->regs_write, insns[i].regs_mod, sizeof(insns[i].regs_mod));
297  insn->detail->regs_write_count = (uint8_t)count_positive(insns[i].regs_mod);
298 
299  memcpy(insn->detail->groups, insns[i].groups, sizeof(insns[i].groups));
300  insn->detail->groups_count = (uint8_t)count_positive8(insns[i].groups);
301 
302  insn->detail->arm.update_flags = cs_reg_write((csh)&handle, insn, ARM_REG_CPSR);
303 
304  if (insns[i].branch || insns[i].indirect_branch) {
305  // this insn also belongs to JUMP group. add JUMP group
306  insn->detail->groups[insn->detail->groups_count] = ARM_GRP_JUMP;
307  insn->detail->groups_count++;
308  }
309 #endif
310  }
311  }
312 }
313 
314 #ifndef CAPSTONE_DIET
315 static const name_map insn_name_maps[] = {
316  { ARM_INS_INVALID, NULL },
317 
318  { ARM_INS_ADC, "adc" },
319  { ARM_INS_ADD, "add" },
320  { ARM_INS_ADR, "adr" },
321  { ARM_INS_AESD, "aesd" },
322  { ARM_INS_AESE, "aese" },
323  { ARM_INS_AESIMC, "aesimc" },
324  { ARM_INS_AESMC, "aesmc" },
325  { ARM_INS_AND, "and" },
326  { ARM_INS_BFC, "bfc" },
327  { ARM_INS_BFI, "bfi" },
328  { ARM_INS_BIC, "bic" },
329  { ARM_INS_BKPT, "bkpt" },
330  { ARM_INS_BL, "bl" },
331  { ARM_INS_BLX, "blx" },
332  { ARM_INS_BX, "bx" },
333  { ARM_INS_BXJ, "bxj" },
334  { ARM_INS_B, "b" },
335  { ARM_INS_CDP, "cdp" },
336  { ARM_INS_CDP2, "cdp2" },
337  { ARM_INS_CLREX, "clrex" },
338  { ARM_INS_CLZ, "clz" },
339  { ARM_INS_CMN, "cmn" },
340  { ARM_INS_CMP, "cmp" },
341  { ARM_INS_CPS, "cps" },
342  { ARM_INS_CRC32B, "crc32b" },
343  { ARM_INS_CRC32CB, "crc32cb" },
344  { ARM_INS_CRC32CH, "crc32ch" },
345  { ARM_INS_CRC32CW, "crc32cw" },
346  { ARM_INS_CRC32H, "crc32h" },
347  { ARM_INS_CRC32W, "crc32w" },
348  { ARM_INS_DBG, "dbg" },
349  { ARM_INS_DMB, "dmb" },
350  { ARM_INS_DSB, "dsb" },
351  { ARM_INS_EOR, "eor" },
352  { ARM_INS_ERET, "eret" },
353  { ARM_INS_VMOV, "vmov" },
354  { ARM_INS_FLDMDBX, "fldmdbx" },
355  { ARM_INS_FLDMIAX, "fldmiax" },
356  { ARM_INS_VMRS, "vmrs" },
357  { ARM_INS_FSTMDBX, "fstmdbx" },
358  { ARM_INS_FSTMIAX, "fstmiax" },
359  { ARM_INS_HINT, "hint" },
360  { ARM_INS_HLT, "hlt" },
361  { ARM_INS_HVC, "hvc" },
362  { ARM_INS_ISB, "isb" },
363  { ARM_INS_LDA, "lda" },
364  { ARM_INS_LDAB, "ldab" },
365  { ARM_INS_LDAEX, "ldaex" },
366  { ARM_INS_LDAEXB, "ldaexb" },
367  { ARM_INS_LDAEXD, "ldaexd" },
368  { ARM_INS_LDAEXH, "ldaexh" },
369  { ARM_INS_LDAH, "ldah" },
370  { ARM_INS_LDC2L, "ldc2l" },
371  { ARM_INS_LDC2, "ldc2" },
372  { ARM_INS_LDCL, "ldcl" },
373  { ARM_INS_LDC, "ldc" },
374  { ARM_INS_LDMDA, "ldmda" },
375  { ARM_INS_LDMDB, "ldmdb" },
376  { ARM_INS_LDM, "ldm" },
377  { ARM_INS_LDMIB, "ldmib" },
378  { ARM_INS_LDRBT, "ldrbt" },
379  { ARM_INS_LDRB, "ldrb" },
380  { ARM_INS_LDRD, "ldrd" },
381  { ARM_INS_LDREX, "ldrex" },
382  { ARM_INS_LDREXB, "ldrexb" },
383  { ARM_INS_LDREXD, "ldrexd" },
384  { ARM_INS_LDREXH, "ldrexh" },
385  { ARM_INS_LDRH, "ldrh" },
386  { ARM_INS_LDRHT, "ldrht" },
387  { ARM_INS_LDRSB, "ldrsb" },
388  { ARM_INS_LDRSBT, "ldrsbt" },
389  { ARM_INS_LDRSH, "ldrsh" },
390  { ARM_INS_LDRSHT, "ldrsht" },
391  { ARM_INS_LDRT, "ldrt" },
392  { ARM_INS_LDR, "ldr" },
393  { ARM_INS_MCR, "mcr" },
394  { ARM_INS_MCR2, "mcr2" },
395  { ARM_INS_MCRR, "mcrr" },
396  { ARM_INS_MCRR2, "mcrr2" },
397  { ARM_INS_MLA, "mla" },
398  { ARM_INS_MLS, "mls" },
399  { ARM_INS_MOV, "mov" },
400  { ARM_INS_MOVT, "movt" },
401  { ARM_INS_MOVW, "movw" },
402  { ARM_INS_MRC, "mrc" },
403  { ARM_INS_MRC2, "mrc2" },
404  { ARM_INS_MRRC, "mrrc" },
405  { ARM_INS_MRRC2, "mrrc2" },
406  { ARM_INS_MRS, "mrs" },
407  { ARM_INS_MSR, "msr" },
408  { ARM_INS_MUL, "mul" },
409  { ARM_INS_MVN, "mvn" },
410  { ARM_INS_ORR, "orr" },
411  { ARM_INS_PKHBT, "pkhbt" },
412  { ARM_INS_PKHTB, "pkhtb" },
413  { ARM_INS_PLDW, "pldw" },
414  { ARM_INS_PLD, "pld" },
415  { ARM_INS_PLI, "pli" },
416  { ARM_INS_QADD, "qadd" },
417  { ARM_INS_QADD16, "qadd16" },
418  { ARM_INS_QADD8, "qadd8" },
419  { ARM_INS_QASX, "qasx" },
420  { ARM_INS_QDADD, "qdadd" },
421  { ARM_INS_QDSUB, "qdsub" },
422  { ARM_INS_QSAX, "qsax" },
423  { ARM_INS_QSUB, "qsub" },
424  { ARM_INS_QSUB16, "qsub16" },
425  { ARM_INS_QSUB8, "qsub8" },
426  { ARM_INS_RBIT, "rbit" },
427  { ARM_INS_REV, "rev" },
428  { ARM_INS_REV16, "rev16" },
429  { ARM_INS_REVSH, "revsh" },
430  { ARM_INS_RFEDA, "rfeda" },
431  { ARM_INS_RFEDB, "rfedb" },
432  { ARM_INS_RFEIA, "rfeia" },
433  { ARM_INS_RFEIB, "rfeib" },
434  { ARM_INS_RSB, "rsb" },
435  { ARM_INS_RSC, "rsc" },
436  { ARM_INS_SADD16, "sadd16" },
437  { ARM_INS_SADD8, "sadd8" },
438  { ARM_INS_SASX, "sasx" },
439  { ARM_INS_SBC, "sbc" },
440  { ARM_INS_SBFX, "sbfx" },
441  { ARM_INS_SDIV, "sdiv" },
442  { ARM_INS_SEL, "sel" },
443  { ARM_INS_SETEND, "setend" },
444  { ARM_INS_SHA1C, "sha1c" },
445  { ARM_INS_SHA1H, "sha1h" },
446  { ARM_INS_SHA1M, "sha1m" },
447  { ARM_INS_SHA1P, "sha1p" },
448  { ARM_INS_SHA1SU0, "sha1su0" },
449  { ARM_INS_SHA1SU1, "sha1su1" },
450  { ARM_INS_SHA256H, "sha256h" },
451  { ARM_INS_SHA256H2, "sha256h2" },
452  { ARM_INS_SHA256SU0, "sha256su0" },
453  { ARM_INS_SHA256SU1, "sha256su1" },
454  { ARM_INS_SHADD16, "shadd16" },
455  { ARM_INS_SHADD8, "shadd8" },
456  { ARM_INS_SHASX, "shasx" },
457  { ARM_INS_SHSAX, "shsax" },
458  { ARM_INS_SHSUB16, "shsub16" },
459  { ARM_INS_SHSUB8, "shsub8" },
460  { ARM_INS_SMC, "smc" },
461  { ARM_INS_SMLABB, "smlabb" },
462  { ARM_INS_SMLABT, "smlabt" },
463  { ARM_INS_SMLAD, "smlad" },
464  { ARM_INS_SMLADX, "smladx" },
465  { ARM_INS_SMLAL, "smlal" },
466  { ARM_INS_SMLALBB, "smlalbb" },
467  { ARM_INS_SMLALBT, "smlalbt" },
468  { ARM_INS_SMLALD, "smlald" },
469  { ARM_INS_SMLALDX, "smlaldx" },
470  { ARM_INS_SMLALTB, "smlaltb" },
471  { ARM_INS_SMLALTT, "smlaltt" },
472  { ARM_INS_SMLATB, "smlatb" },
473  { ARM_INS_SMLATT, "smlatt" },
474  { ARM_INS_SMLAWB, "smlawb" },
475  { ARM_INS_SMLAWT, "smlawt" },
476  { ARM_INS_SMLSD, "smlsd" },
477  { ARM_INS_SMLSDX, "smlsdx" },
478  { ARM_INS_SMLSLD, "smlsld" },
479  { ARM_INS_SMLSLDX, "smlsldx" },
480  { ARM_INS_SMMLA, "smmla" },
481  { ARM_INS_SMMLAR, "smmlar" },
482  { ARM_INS_SMMLS, "smmls" },
483  { ARM_INS_SMMLSR, "smmlsr" },
484  { ARM_INS_SMMUL, "smmul" },
485  { ARM_INS_SMMULR, "smmulr" },
486  { ARM_INS_SMUAD, "smuad" },
487  { ARM_INS_SMUADX, "smuadx" },
488  { ARM_INS_SMULBB, "smulbb" },
489  { ARM_INS_SMULBT, "smulbt" },
490  { ARM_INS_SMULL, "smull" },
491  { ARM_INS_SMULTB, "smultb" },
492  { ARM_INS_SMULTT, "smultt" },
493  { ARM_INS_SMULWB, "smulwb" },
494  { ARM_INS_SMULWT, "smulwt" },
495  { ARM_INS_SMUSD, "smusd" },
496  { ARM_INS_SMUSDX, "smusdx" },
497  { ARM_INS_SRSDA, "srsda" },
498  { ARM_INS_SRSDB, "srsdb" },
499  { ARM_INS_SRSIA, "srsia" },
500  { ARM_INS_SRSIB, "srsib" },
501  { ARM_INS_SSAT, "ssat" },
502  { ARM_INS_SSAT16, "ssat16" },
503  { ARM_INS_SSAX, "ssax" },
504  { ARM_INS_SSUB16, "ssub16" },
505  { ARM_INS_SSUB8, "ssub8" },
506  { ARM_INS_STC2L, "stc2l" },
507  { ARM_INS_STC2, "stc2" },
508  { ARM_INS_STCL, "stcl" },
509  { ARM_INS_STC, "stc" },
510  { ARM_INS_STL, "stl" },
511  { ARM_INS_STLB, "stlb" },
512  { ARM_INS_STLEX, "stlex" },
513  { ARM_INS_STLEXB, "stlexb" },
514  { ARM_INS_STLEXD, "stlexd" },
515  { ARM_INS_STLEXH, "stlexh" },
516  { ARM_INS_STLH, "stlh" },
517  { ARM_INS_STMDA, "stmda" },
518  { ARM_INS_STMDB, "stmdb" },
519  { ARM_INS_STM, "stm" },
520  { ARM_INS_STMIB, "stmib" },
521  { ARM_INS_STRBT, "strbt" },
522  { ARM_INS_STRB, "strb" },
523  { ARM_INS_STRD, "strd" },
524  { ARM_INS_STREX, "strex" },
525  { ARM_INS_STREXB, "strexb" },
526  { ARM_INS_STREXD, "strexd" },
527  { ARM_INS_STREXH, "strexh" },
528  { ARM_INS_STRH, "strh" },
529  { ARM_INS_STRHT, "strht" },
530  { ARM_INS_STRT, "strt" },
531  { ARM_INS_STR, "str" },
532  { ARM_INS_SUB, "sub" },
533  { ARM_INS_SVC, "svc" },
534  { ARM_INS_SWP, "swp" },
535  { ARM_INS_SWPB, "swpb" },
536  { ARM_INS_SXTAB, "sxtab" },
537  { ARM_INS_SXTAB16, "sxtab16" },
538  { ARM_INS_SXTAH, "sxtah" },
539  { ARM_INS_SXTB, "sxtb" },
540  { ARM_INS_SXTB16, "sxtb16" },
541  { ARM_INS_SXTH, "sxth" },
542  { ARM_INS_TEQ, "teq" },
543  { ARM_INS_TRAP, "trap" },
544  { ARM_INS_TST, "tst" },
545  { ARM_INS_UADD16, "uadd16" },
546  { ARM_INS_UADD8, "uadd8" },
547  { ARM_INS_UASX, "uasx" },
548  { ARM_INS_UBFX, "ubfx" },
549  { ARM_INS_UDF, "udf" },
550  { ARM_INS_UDIV, "udiv" },
551  { ARM_INS_UHADD16, "uhadd16" },
552  { ARM_INS_UHADD8, "uhadd8" },
553  { ARM_INS_UHASX, "uhasx" },
554  { ARM_INS_UHSAX, "uhsax" },
555  { ARM_INS_UHSUB16, "uhsub16" },
556  { ARM_INS_UHSUB8, "uhsub8" },
557  { ARM_INS_UMAAL, "umaal" },
558  { ARM_INS_UMLAL, "umlal" },
559  { ARM_INS_UMULL, "umull" },
560  { ARM_INS_UQADD16, "uqadd16" },
561  { ARM_INS_UQADD8, "uqadd8" },
562  { ARM_INS_UQASX, "uqasx" },
563  { ARM_INS_UQSAX, "uqsax" },
564  { ARM_INS_UQSUB16, "uqsub16" },
565  { ARM_INS_UQSUB8, "uqsub8" },
566  { ARM_INS_USAD8, "usad8" },
567  { ARM_INS_USADA8, "usada8" },
568  { ARM_INS_USAT, "usat" },
569  { ARM_INS_USAT16, "usat16" },
570  { ARM_INS_USAX, "usax" },
571  { ARM_INS_USUB16, "usub16" },
572  { ARM_INS_USUB8, "usub8" },
573  { ARM_INS_UXTAB, "uxtab" },
574  { ARM_INS_UXTAB16, "uxtab16" },
575  { ARM_INS_UXTAH, "uxtah" },
576  { ARM_INS_UXTB, "uxtb" },
577  { ARM_INS_UXTB16, "uxtb16" },
578  { ARM_INS_UXTH, "uxth" },
579  { ARM_INS_VABAL, "vabal" },
580  { ARM_INS_VABA, "vaba" },
581  { ARM_INS_VABDL, "vabdl" },
582  { ARM_INS_VABD, "vabd" },
583  { ARM_INS_VABS, "vabs" },
584  { ARM_INS_VACGE, "vacge" },
585  { ARM_INS_VACGT, "vacgt" },
586  { ARM_INS_VADD, "vadd" },
587  { ARM_INS_VADDHN, "vaddhn" },
588  { ARM_INS_VADDL, "vaddl" },
589  { ARM_INS_VADDW, "vaddw" },
590  { ARM_INS_VAND, "vand" },
591  { ARM_INS_VBIC, "vbic" },
592  { ARM_INS_VBIF, "vbif" },
593  { ARM_INS_VBIT, "vbit" },
594  { ARM_INS_VBSL, "vbsl" },
595  { ARM_INS_VCEQ, "vceq" },
596  { ARM_INS_VCGE, "vcge" },
597  { ARM_INS_VCGT, "vcgt" },
598  { ARM_INS_VCLE, "vcle" },
599  { ARM_INS_VCLS, "vcls" },
600  { ARM_INS_VCLT, "vclt" },
601  { ARM_INS_VCLZ, "vclz" },
602  { ARM_INS_VCMP, "vcmp" },
603  { ARM_INS_VCMPE, "vcmpe" },
604  { ARM_INS_VCNT, "vcnt" },
605  { ARM_INS_VCVTA, "vcvta" },
606  { ARM_INS_VCVTB, "vcvtb" },
607  { ARM_INS_VCVT, "vcvt" },
608  { ARM_INS_VCVTM, "vcvtm" },
609  { ARM_INS_VCVTN, "vcvtn" },
610  { ARM_INS_VCVTP, "vcvtp" },
611  { ARM_INS_VCVTT, "vcvtt" },
612  { ARM_INS_VDIV, "vdiv" },
613  { ARM_INS_VDUP, "vdup" },
614  { ARM_INS_VEOR, "veor" },
615  { ARM_INS_VEXT, "vext" },
616  { ARM_INS_VFMA, "vfma" },
617  { ARM_INS_VFMS, "vfms" },
618  { ARM_INS_VFNMA, "vfnma" },
619  { ARM_INS_VFNMS, "vfnms" },
620  { ARM_INS_VHADD, "vhadd" },
621  { ARM_INS_VHSUB, "vhsub" },
622  { ARM_INS_VLD1, "vld1" },
623  { ARM_INS_VLD2, "vld2" },
624  { ARM_INS_VLD3, "vld3" },
625  { ARM_INS_VLD4, "vld4" },
626  { ARM_INS_VLDMDB, "vldmdb" },
627  { ARM_INS_VLDMIA, "vldmia" },
628  { ARM_INS_VLDR, "vldr" },
629  { ARM_INS_VMAXNM, "vmaxnm" },
630  { ARM_INS_VMAX, "vmax" },
631  { ARM_INS_VMINNM, "vminnm" },
632  { ARM_INS_VMIN, "vmin" },
633  { ARM_INS_VMLA, "vmla" },
634  { ARM_INS_VMLAL, "vmlal" },
635  { ARM_INS_VMLS, "vmls" },
636  { ARM_INS_VMLSL, "vmlsl" },
637  { ARM_INS_VMOVL, "vmovl" },
638  { ARM_INS_VMOVN, "vmovn" },
639  { ARM_INS_VMSR, "vmsr" },
640  { ARM_INS_VMUL, "vmul" },
641  { ARM_INS_VMULL, "vmull" },
642  { ARM_INS_VMVN, "vmvn" },
643  { ARM_INS_VNEG, "vneg" },
644  { ARM_INS_VNMLA, "vnmla" },
645  { ARM_INS_VNMLS, "vnmls" },
646  { ARM_INS_VNMUL, "vnmul" },
647  { ARM_INS_VORN, "vorn" },
648  { ARM_INS_VORR, "vorr" },
649  { ARM_INS_VPADAL, "vpadal" },
650  { ARM_INS_VPADDL, "vpaddl" },
651  { ARM_INS_VPADD, "vpadd" },
652  { ARM_INS_VPMAX, "vpmax" },
653  { ARM_INS_VPMIN, "vpmin" },
654  { ARM_INS_VQABS, "vqabs" },
655  { ARM_INS_VQADD, "vqadd" },
656  { ARM_INS_VQDMLAL, "vqdmlal" },
657  { ARM_INS_VQDMLSL, "vqdmlsl" },
658  { ARM_INS_VQDMULH, "vqdmulh" },
659  { ARM_INS_VQDMULL, "vqdmull" },
660  { ARM_INS_VQMOVUN, "vqmovun" },
661  { ARM_INS_VQMOVN, "vqmovn" },
662  { ARM_INS_VQNEG, "vqneg" },
663  { ARM_INS_VQRDMULH, "vqrdmulh" },
664  { ARM_INS_VQRSHL, "vqrshl" },
665  { ARM_INS_VQRSHRN, "vqrshrn" },
666  { ARM_INS_VQRSHRUN, "vqrshrun" },
667  { ARM_INS_VQSHL, "vqshl" },
668  { ARM_INS_VQSHLU, "vqshlu" },
669  { ARM_INS_VQSHRN, "vqshrn" },
670  { ARM_INS_VQSHRUN, "vqshrun" },
671  { ARM_INS_VQSUB, "vqsub" },
672  { ARM_INS_VRADDHN, "vraddhn" },
673  { ARM_INS_VRECPE, "vrecpe" },
674  { ARM_INS_VRECPS, "vrecps" },
675  { ARM_INS_VREV16, "vrev16" },
676  { ARM_INS_VREV32, "vrev32" },
677  { ARM_INS_VREV64, "vrev64" },
678  { ARM_INS_VRHADD, "vrhadd" },
679  { ARM_INS_VRINTA, "vrinta" },
680  { ARM_INS_VRINTM, "vrintm" },
681  { ARM_INS_VRINTN, "vrintn" },
682  { ARM_INS_VRINTP, "vrintp" },
683  { ARM_INS_VRINTR, "vrintr" },
684  { ARM_INS_VRINTX, "vrintx" },
685  { ARM_INS_VRINTZ, "vrintz" },
686  { ARM_INS_VRSHL, "vrshl" },
687  { ARM_INS_VRSHRN, "vrshrn" },
688  { ARM_INS_VRSHR, "vrshr" },
689  { ARM_INS_VRSQRTE, "vrsqrte" },
690  { ARM_INS_VRSQRTS, "vrsqrts" },
691  { ARM_INS_VRSRA, "vrsra" },
692  { ARM_INS_VRSUBHN, "vrsubhn" },
693  { ARM_INS_VSELEQ, "vseleq" },
694  { ARM_INS_VSELGE, "vselge" },
695  { ARM_INS_VSELGT, "vselgt" },
696  { ARM_INS_VSELVS, "vselvs" },
697  { ARM_INS_VSHLL, "vshll" },
698  { ARM_INS_VSHL, "vshl" },
699  { ARM_INS_VSHRN, "vshrn" },
700  { ARM_INS_VSHR, "vshr" },
701  { ARM_INS_VSLI, "vsli" },
702  { ARM_INS_VSQRT, "vsqrt" },
703  { ARM_INS_VSRA, "vsra" },
704  { ARM_INS_VSRI, "vsri" },
705  { ARM_INS_VST1, "vst1" },
706  { ARM_INS_VST2, "vst2" },
707  { ARM_INS_VST3, "vst3" },
708  { ARM_INS_VST4, "vst4" },
709  { ARM_INS_VSTMDB, "vstmdb" },
710  { ARM_INS_VSTMIA, "vstmia" },
711  { ARM_INS_VSTR, "vstr" },
712  { ARM_INS_VSUB, "vsub" },
713  { ARM_INS_VSUBHN, "vsubhn" },
714  { ARM_INS_VSUBL, "vsubl" },
715  { ARM_INS_VSUBW, "vsubw" },
716  { ARM_INS_VSWP, "vswp" },
717  { ARM_INS_VTBL, "vtbl" },
718  { ARM_INS_VTBX, "vtbx" },
719  { ARM_INS_VCVTR, "vcvtr" },
720  { ARM_INS_VTRN, "vtrn" },
721  { ARM_INS_VTST, "vtst" },
722  { ARM_INS_VUZP, "vuzp" },
723  { ARM_INS_VZIP, "vzip" },
724  { ARM_INS_ADDW, "addw" },
725  { ARM_INS_ASR, "asr" },
726  { ARM_INS_DCPS1, "dcps1" },
727  { ARM_INS_DCPS2, "dcps2" },
728  { ARM_INS_DCPS3, "dcps3" },
729  { ARM_INS_IT, "it" },
730  { ARM_INS_LSL, "lsl" },
731  { ARM_INS_LSR, "lsr" },
732  { ARM_INS_ORN, "orn" },
733  { ARM_INS_ROR, "ror" },
734  { ARM_INS_RRX, "rrx" },
735  { ARM_INS_SUBW, "subw" },
736  { ARM_INS_TBB, "tbb" },
737  { ARM_INS_TBH, "tbh" },
738  { ARM_INS_CBNZ, "cbnz" },
739  { ARM_INS_CBZ, "cbz" },
740  { ARM_INS_POP, "pop" },
741  { ARM_INS_PUSH, "push" },
742 
743  // special instructions
744  { ARM_INS_NOP, "nop" },
745  { ARM_INS_YIELD, "yield" },
746  { ARM_INS_WFE, "wfe" },
747  { ARM_INS_WFI, "wfi" },
748  { ARM_INS_SEV, "sev" },
749  { ARM_INS_SEVL, "sevl" },
750  { ARM_INS_VPUSH, "vpush" },
751  { ARM_INS_VPOP, "vpop" },
752 };
753 #endif
754 
755 const char *ARM_insn_name(csh handle, unsigned int id)
756 {
757 #ifndef CAPSTONE_DIET
758  if (id >= ARM_INS_ENDING)
759  return NULL;
760 
761  return insn_name_maps[id].name;
762 #else
763  return NULL;
764 #endif
765 }
766 
767 #ifndef CAPSTONE_DIET
768 static const name_map group_name_maps[] = {
769  // generic groups
770  { ARM_GRP_INVALID, NULL },
771  { ARM_GRP_JUMP, "jump" },
772  { ARM_GRP_CALL, "call" },
773  { ARM_GRP_INT, "int" },
774  { ARM_GRP_PRIVILEGE, "privilege" },
775  { ARM_GRP_BRANCH_RELATIVE, "branch_relative" },
776 
777  // architecture-specific groups
778  { ARM_GRP_CRYPTO, "crypto" },
779  { ARM_GRP_DATABARRIER, "databarrier" },
780  { ARM_GRP_DIVIDE, "divide" },
781  { ARM_GRP_FPARMV8, "fparmv8" },
782  { ARM_GRP_MULTPRO, "multpro" },
783  { ARM_GRP_NEON, "neon" },
784  { ARM_GRP_T2EXTRACTPACK, "T2EXTRACTPACK" },
785  { ARM_GRP_THUMB2DSP, "THUMB2DSP" },
786  { ARM_GRP_TRUSTZONE, "TRUSTZONE" },
787  { ARM_GRP_V4T, "v4t" },
788  { ARM_GRP_V5T, "v5t" },
789  { ARM_GRP_V5TE, "v5te" },
790  { ARM_GRP_V6, "v6" },
791  { ARM_GRP_V6T2, "v6t2" },
792  { ARM_GRP_V7, "v7" },
793  { ARM_GRP_V8, "v8" },
794  { ARM_GRP_VFP2, "vfp2" },
795  { ARM_GRP_VFP3, "vfp3" },
796  { ARM_GRP_VFP4, "vfp4" },
797  { ARM_GRP_ARM, "arm" },
798  { ARM_GRP_MCLASS, "mclass" },
799  { ARM_GRP_NOTMCLASS, "notmclass" },
800  { ARM_GRP_THUMB, "thumb" },
801  { ARM_GRP_THUMB1ONLY, "thumb1only" },
802  { ARM_GRP_THUMB2, "thumb2" },
803  { ARM_GRP_PREV8, "prev8" },
804  { ARM_GRP_FPVMLX, "fpvmlx" },
805  { ARM_GRP_MULOPS, "mulops" },
806  { ARM_GRP_CRC, "crc" },
807  { ARM_GRP_DPVFP, "dpvfp" },
808  { ARM_GRP_V6M, "v6m" },
809  { ARM_GRP_VIRTUALIZATION, "virtualization" },
810 };
811 #endif
812 
813 const char *ARM_group_name(csh handle, unsigned int id)
814 {
815 #ifndef CAPSTONE_DIET
817 #else
818  return NULL;
819 #endif
820 }
821 
822 // list all relative branch instructions
823 // ie: insns[i].branch && !insns[i].indirect_branch
824 static const unsigned int insn_rel[] = {
825  ARM_BL,
826  ARM_BLX_pred,
827  ARM_Bcc,
828  ARM_t2B,
829  ARM_t2Bcc,
830  ARM_tB,
831  ARM_tBcc,
832  ARM_tCBNZ,
833  ARM_tCBZ,
834  ARM_BL_pred,
835  ARM_BLXi,
836  ARM_tBL,
837  ARM_tBLXi,
838  0
839 };
840 
841 static const unsigned int insn_blx_rel_to_arm[] = {
842  ARM_tBLXi,
843  0
844 };
845 
846 // check if this insn is relative branch
847 bool ARM_rel_branch(cs_struct *h, unsigned int id)
848 {
849  int i;
850 
851  for (i = 0; insn_rel[i]; i++) {
852  if (id == insn_rel[i]) {
853  return true;
854  }
855  }
856 
857  // not found
858  return false;
859 }
860 
861 bool ARM_blx_to_arm_mode(cs_struct *h, unsigned int id) {
862  int i;
863 
864  for (i = 0; insn_blx_rel_to_arm[i]; i++)
865  if (id == insn_blx_rel_to_arm[i])
866  return true;
867 
868  // not found
869  return false;
870 
871 }
872 
873 #ifndef CAPSTONE_DIET
874 // map instruction to its characteristics
875 typedef struct insn_op {
876  uint8_t access[7];
877 } insn_op;
878 
879 static insn_op insn_ops[] = {
880  {
881  // NULL item
882  { 0 }
883  },
884 
885 #include "ARMMappingInsnOp.inc"
886 };
887 
888 // given internal insn id, return operand access info
889 uint8_t *ARM_get_op_access(cs_struct *h, unsigned int id)
890 {
891  int i = insn_find(insns, ARR_SIZE(insns), id, &h->insn_cache);
892  if (i != 0) {
893  return insn_ops[i].access;
894  }
895 
896  return NULL;
897 }
898 
899 void ARM_reg_access(const cs_insn *insn,
900  cs_regs regs_read, uint8_t *regs_read_count,
901  cs_regs regs_write, uint8_t *regs_write_count)
902 {
903  uint8_t i;
904  uint8_t read_count, write_count;
905  cs_arm *arm = &(insn->detail->arm);
906 
907  read_count = insn->detail->regs_read_count;
908  write_count = insn->detail->regs_write_count;
909 
910  // implicit registers
911  memcpy(regs_read, insn->detail->regs_read, read_count * sizeof(insn->detail->regs_read[0]));
912  memcpy(regs_write, insn->detail->regs_write, write_count * sizeof(insn->detail->regs_write[0]));
913 
914  // explicit registers
915  for (i = 0; i < arm->op_count; i++) {
916  cs_arm_op *op = &(arm->operands[i]);
917  switch((int)op->type) {
918  case ARM_OP_REG:
919  if ((op->access & CS_AC_READ) && !arr_exist(regs_read, read_count, op->reg)) {
920  regs_read[read_count] = (uint16_t)op->reg;
921  read_count++;
922  }
923  if ((op->access & CS_AC_WRITE) && !arr_exist(regs_write, write_count, op->reg)) {
924  regs_write[write_count] = (uint16_t)op->reg;
925  write_count++;
926  }
927  break;
928  case ARM_OP_MEM:
929  // registers appeared in memory references always being read
930  if ((op->mem.base != ARM_REG_INVALID) && !arr_exist(regs_read, read_count, op->mem.base)) {
931  regs_read[read_count] = (uint16_t)op->mem.base;
932  read_count++;
933  }
934  if ((op->mem.index != ARM_REG_INVALID) && !arr_exist(regs_read, read_count, op->mem.index)) {
935  regs_read[read_count] = (uint16_t)op->mem.index;
936  read_count++;
937  }
938  if ((arm->writeback) && (op->mem.base != ARM_REG_INVALID) && !arr_exist(regs_write, write_count, op->mem.base)) {
939  regs_write[write_count] = (uint16_t)op->mem.base;
940  write_count++;
941  }
942  default:
943  break;
944  }
945  }
946 
947  *regs_read_count = read_count;
948  *regs_write_count = write_count;
949 }
950 #endif
951 
952 #endif
ARM_INS_LDREX
@ ARM_INS_LDREX
Definition: arm.h:509
ARM_INS_SMMLSR
@ ARM_INS_SMMLSR
Definition: arm.h:611
ARM_INS_BLX
@ ARM_INS_BLX
Definition: arm.h:459
ARM_INS_VORN
@ ARM_INS_VORN
Definition: arm.h:775
ARM_INS_CRC32W
@ ARM_INS_CRC32W
Definition: arm.h:475
ARM_INS_VRINTZ
@ ARM_INS_VRINTZ
Definition: arm.h:813
ARM_INS_VMIN
@ ARM_INS_VMIN
Definition: arm.h:760
ARM_REG_D22
@ ARM_REG_D22
Definition: arm.h:289
ARM_INS_SSUB8
@ ARM_INS_SSUB8
Definition: arm.h:633
ARM_GRP_MULOPS
@ ARM_GRP_MULOPS
Definition: arm.h:924
ARM_INS_CRC32H
@ ARM_INS_CRC32H
Definition: arm.h:474
ARM_INS_MLA
@ ARM_INS_MLA
Definition: arm.h:525
ARM_get_op_access
uint8_t * ARM_get_op_access(cs_struct *h, unsigned int id)
ARM_INS_LDAH
@ ARM_INS_LDAH
Definition: arm.h:497
ARM_REG_S8
@ ARM_REG_S8
Definition: arm.h:340
ARM_INS_ISB
@ ARM_INS_ISB
Definition: arm.h:490
ARM_GRP_MULTPRO
@ ARM_GRP_MULTPRO
Definition: arm.h:901
ARM_INS_UQADD16
@ ARM_INS_UQADD16
Definition: arm.h:688
ARM_INS_VREV64
@ ARM_INS_VREV64
Definition: arm.h:805
ARM_INS_SMUAD
@ ARM_INS_SMUAD
Definition: arm.h:614
ARM_INS_MRRC
@ ARM_INS_MRRC
Definition: arm.h:532
ARM_INS_RFEIA
@ ARM_INS_RFEIA
Definition: arm.h:560
ARM_INS_SRSIA
@ ARM_INS_SRSIA
Definition: arm.h:627
ARM_REG_R6
@ ARM_REG_R6
Definition: arm.h:325
insn_find
unsigned short insn_find(const insn_map *insns, unsigned int max, unsigned int id, unsigned short **cache)
Definition: utils.c:31
ARM_INS_SADD16
@ ARM_INS_SADD16
Definition: arm.h:564
ARM_INS_SMLABB
@ ARM_INS_SMLABB
Definition: arm.h:589
arm
Definition: test_winkernel.cpp:55
ARM_INS_ADDW
@ ARM_INS_ADDW
Definition: arm.h:852
ARM_INS_SMLATB
@ ARM_INS_SMLATB
Definition: arm.h:600
ARM_INS_VLD2
@ ARM_INS_VLD2
Definition: arm.h:751
arr_exist
bool arr_exist(uint16_t *arr, unsigned char max, unsigned int id)
Definition: utils.c:128
ARM_INS_VEXT
@ ARM_INS_VEXT
Definition: arm.h:743
ARM_INS_VQMOVUN
@ ARM_INS_VQMOVUN
Definition: arm.h:788
ARM_GRP_INT
@ ARM_GRP_INT
= CS_GRP_INT
Definition: arm.h:892
ARM_REG_S5
@ ARM_REG_S5
Definition: arm.h:337
ARM_REG_APSR_NZCV
@ ARM_REG_APSR_NZCV
Definition: arm.h:255
ARM_INS_STC2L
@ ARM_INS_STC2L
Definition: arm.h:634
ARM_REG_S13
@ ARM_REG_S13
Definition: arm.h:345
ARM_INS_STMDB
@ ARM_INS_STMDB
Definition: arm.h:646
ARM_REG_Q12
@ ARM_REG_Q12
Definition: arm.h:315
ARM_INS_LDRBT
@ ARM_INS_LDRBT
Definition: arm.h:506
ARM_INS_LDAEX
@ ARM_INS_LDAEX
Definition: arm.h:493
ARM_REG_CPSR
@ ARM_REG_CPSR
Definition: arm.h:256
ARM_REG_D20
@ ARM_REG_D20
Definition: arm.h:287
ARM_INS_USAT
@ ARM_INS_USAT
Definition: arm.h:696
ARM_INS_VRECPE
@ ARM_INS_VRECPE
Definition: arm.h:801
ARM_INS_VACGT
@ ARM_INS_VACGT
Definition: arm.h:713
ARM_INS_VFNMS
@ ARM_INS_VFNMS
Definition: arm.h:747
ARM_INS_VZIP
@ ARM_INS_VZIP
Definition: arm.h:851
ARM_INS_UHADD8
@ ARM_INS_UHADD8
Definition: arm.h:680
ARM_INS_STMDA
@ ARM_INS_STMDA
Definition: arm.h:645
ARM_INS_VSHL
@ ARM_INS_VSHL
Definition: arm.h:826
ARM_INS_REV
@ ARM_INS_REV
Definition: arm.h:555
ARM_REG_FPINST2
@ ARM_REG_FPINST2
Definition: arm.h:299
ARM_REG_Q2
@ ARM_REG_Q2
Definition: arm.h:305
ARM_INS_PLD
@ ARM_INS_PLD
Definition: arm.h:542
ARM_INS_VCGE
@ ARM_INS_VCGE
Definition: arm.h:724
ARM_INS_VSUBW
@ ARM_INS_VSUBW
Definition: arm.h:843
ARM_INS_VNEG
@ ARM_INS_VNEG
Definition: arm.h:771
ARM_rel_branch
bool ARM_rel_branch(cs_struct *h, unsigned int insn_id)
ARM_INS_DCPS3
@ ARM_INS_DCPS3
Definition: arm.h:856
ARM_REG_FPEXC
@ ARM_REG_FPEXC
Definition: arm.h:257
ARM_INS_FLDMIAX
@ ARM_INS_FLDMIAX
Definition: arm.h:483
ARM_REG_R8
@ ARM_REG_R8
Definition: arm.h:327
ARM_INS_VLDR
@ ARM_INS_VLDR
Definition: arm.h:756
ARM_INS_STC2
@ ARM_INS_STC2
Definition: arm.h:635
ARM_INS_STLEXB
@ ARM_INS_STLEXB
Definition: arm.h:641
ARM_REG_Q1
@ ARM_REG_Q1
Definition: arm.h:304
ARM_INS_SRSDB
@ ARM_INS_SRSDB
Definition: arm.h:626
ARM_INS_UQSUB8
@ ARM_INS_UQSUB8
Definition: arm.h:693
ARM_group_name
const char * ARM_group_name(csh handle, unsigned int id)
ARM_REG_Q0
@ ARM_REG_Q0
Definition: arm.h:303
uint16_t
unsigned short uint16_t
Definition: stdint-msvc2008.h:79
ARM_INS_VMINNM
@ ARM_INS_VMINNM
Definition: arm.h:759
ARM_REG_APSR
@ ARM_REG_APSR
Definition: arm.h:254
ARM_INS_SMMLAR
@ ARM_INS_SMMLAR
Definition: arm.h:609
ARM_INS_PLDW
@ ARM_INS_PLDW
Definition: arm.h:541
ARM_REG_D29
@ ARM_REG_D29
Definition: arm.h:296
ARM_INS_SXTH
@ ARM_INS_SXTH
Definition: arm.h:669
ARM_INS_SRSDA
@ ARM_INS_SRSDA
Definition: arm.h:625
ARM_INS_UADD16
@ ARM_INS_UADD16
Definition: arm.h:673
ARM_REG_S27
@ ARM_REG_S27
Definition: arm.h:359
ARM_REG_S15
@ ARM_REG_S15
Definition: arm.h:347
ARM_INS_QDADD
@ ARM_INS_QDADD
Definition: arm.h:548
ARM_INS_VQSHRUN
@ ARM_INS_VQSHRUN
Definition: arm.h:798
ARM_INS_SMLSLD
@ ARM_INS_SMLSLD
Definition: arm.h:606
ARM_INS_SMLAWB
@ ARM_INS_SMLAWB
Definition: arm.h:602
ARM_INS_MVN
@ ARM_INS_MVN
Definition: arm.h:537
ARM_INS_QSUB8
@ ARM_INS_QSUB8
Definition: arm.h:553
ARM_INS_SMLSLDX
@ ARM_INS_SMLSLDX
Definition: arm.h:607
ARM_INS_CDP
@ ARM_INS_CDP
Definition: arm.h:463
ARM_INS_STLEXD
@ ARM_INS_STLEXD
Definition: arm.h:642
ARM_REG_Q14
@ ARM_REG_Q14
Definition: arm.h:317
ARM_INS_STREX
@ ARM_INS_STREX
Definition: arm.h:652
string.h
ARM_INS_RSB
@ ARM_INS_RSB
Definition: arm.h:562
ARM_INS_HLT
@ ARM_INS_HLT
Definition: arm.h:488
ARM_INS_PUSH
@ ARM_INS_PUSH
Definition: arm.h:869
ARM_INS_VBIF
@ ARM_INS_VBIF
Definition: arm.h:720
ARM_REG_D5
@ ARM_REG_D5
Definition: arm.h:272
ARM_INS_VRSHL
@ ARM_INS_VRSHL
Definition: arm.h:814
ARM_INS_STRH
@ ARM_INS_STRH
Definition: arm.h:656
ARM_INS_SMULBT
@ ARM_INS_SMULBT
Definition: arm.h:617
ARM_REG_D23
@ ARM_REG_D23
Definition: arm.h:290
ARM_INS_VCEQ
@ ARM_INS_VCEQ
Definition: arm.h:723
ARM_INS_VQABS
@ ARM_INS_VQABS
Definition: arm.h:782
ARM_INS_VRADDHN
@ ARM_INS_VRADDHN
Definition: arm.h:800
ARM_INS_SHADD8
@ ARM_INS_SHADD8
Definition: arm.h:583
ARM_REG_D9
@ ARM_REG_D9
Definition: arm.h:276
ARM_INS_UMAAL
@ ARM_INS_UMAAL
Definition: arm.h:685
ARM_INS_CRC32CB
@ ARM_INS_CRC32CB
Definition: arm.h:471
ARM_INS_SSAT
@ ARM_INS_SSAT
Definition: arm.h:629
ARM_INS_VQDMULH
@ ARM_INS_VQDMULH
Definition: arm.h:786
ARM_REG_S26
@ ARM_REG_S26
Definition: arm.h:358
ARM_INS_USAD8
@ ARM_INS_USAD8
Definition: arm.h:694
ARM_INS_VRINTM
@ ARM_INS_VRINTM
Definition: arm.h:808
ARM_GRP_TRUSTZONE
@ ARM_GRP_TRUSTZONE
Definition: arm.h:905
ARM_INS_UQADD8
@ ARM_INS_UQADD8
Definition: arm.h:689
ARM_INS_PKHTB
@ ARM_INS_PKHTB
Definition: arm.h:540
ARM_INS_VCVTT
@ ARM_INS_VCVTT
Definition: arm.h:739
ARM_INS_SHSUB8
@ ARM_INS_SHSUB8
Definition: arm.h:587
ARM_INS_VRSQRTS
@ ARM_INS_VRSQRTS
Definition: arm.h:818
ARM_INS_VRSHRN
@ ARM_INS_VRSHRN
Definition: arm.h:815
ARM_INS_LDMIB
@ ARM_INS_LDMIB
Definition: arm.h:505
ARM_INS_CLREX
@ ARM_INS_CLREX
Definition: arm.h:465
ARM_REG_D3
@ ARM_REG_D3
Definition: arm.h:270
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
ARM_REG_R1
@ ARM_REG_R1
Definition: arm.h:320
ARM_INS_VMLS
@ ARM_INS_VMLS
Definition: arm.h:763
ARM_REG_S14
@ ARM_REG_S14
Definition: arm.h:346
ARM_INS_SHASX
@ ARM_INS_SHASX
Definition: arm.h:584
ARM_INS_VQMOVN
@ ARM_INS_VQMOVN
Definition: arm.h:789
ARM_INS_SXTAB16
@ ARM_INS_SXTAB16
Definition: arm.h:665
ARM_INS_VORR
@ ARM_INS_VORR
Definition: arm.h:776
ARM_INS_IT
@ ARM_INS_IT
Definition: arm.h:857
ARM_INS_VREV32
@ ARM_INS_VREV32
Definition: arm.h:804
ARM_REG_S0
@ ARM_REG_S0
Definition: arm.h:332
ARM_INS_VQSHL
@ ARM_INS_VQSHL
Definition: arm.h:795
ARM_INS_SHSAX
@ ARM_INS_SHSAX
Definition: arm.h:585
ARM_INS_TEQ
@ ARM_INS_TEQ
Definition: arm.h:670
ARM_INS_LDRH
@ ARM_INS_LDRH
Definition: arm.h:513
ARM_INS_VST2
@ ARM_INS_VST2
Definition: arm.h:834
uint8_t
unsigned char uint8_t
Definition: stdint-msvc2008.h:78
ARM_INS_TRAP
@ ARM_INS_TRAP
Definition: arm.h:671
ARM_INS_SMULBB
@ ARM_INS_SMULBB
Definition: arm.h:616
ARM_INS_VRHADD
@ ARM_INS_VRHADD
Definition: arm.h:806
ARM_INS_LDRB
@ ARM_INS_LDRB
Definition: arm.h:507
ARM_GRP_THUMB
@ ARM_GRP_THUMB
Definition: arm.h:919
ARM_INS_SMLALD
@ ARM_INS_SMLALD
Definition: arm.h:596
ARM_INS_VHSUB
@ ARM_INS_VHSUB
Definition: arm.h:749
ARM_INS_UXTAB16
@ ARM_INS_UXTAB16
Definition: arm.h:702
ARM_INS_SSAX
@ ARM_INS_SSAX
Definition: arm.h:631
ARM_GRP_V4T
@ ARM_GRP_V4T
Definition: arm.h:906
ARM_INS_UQSUB16
@ ARM_INS_UQSUB16
Definition: arm.h:692
ARM_INS_UDF
@ ARM_INS_UDF
Definition: arm.h:677
ARM_INS_VQSUB
@ ARM_INS_VQSUB
Definition: arm.h:799
ARM_INS_SHA256H2
@ ARM_INS_SHA256H2
Definition: arm.h:579
ARM_INS_VSQRT
@ ARM_INS_VSQRT
Definition: arm.h:830
ARM_REG_PC
@ ARM_REG_PC
Definition: arm.h:264
ARM_INS_LDMDA
@ ARM_INS_LDMDA
Definition: arm.h:502
ARM_REG_S25
@ ARM_REG_S25
Definition: arm.h:357
ARM_INS_VSUBL
@ ARM_INS_VSUBL
Definition: arm.h:842
CS_AC_READ
@ CS_AC_READ
Operand read from memory or register.
Definition: capstone.h:205
ARM_INS_VQRDMULH
@ ARM_INS_VQRDMULH
Definition: arm.h:791
ARM_INS_RFEIB
@ ARM_INS_RFEIB
Definition: arm.h:561
ARM_INS_VSRI
@ ARM_INS_VSRI
Definition: arm.h:832
ARM_INS_VSELEQ
@ ARM_INS_VSELEQ
Definition: arm.h:821
ARM_GRP_DPVFP
@ ARM_GRP_DPVFP
Definition: arm.h:926
ARM_INS_MRC
@ ARM_INS_MRC
Definition: arm.h:530
ARM_GRP_VIRTUALIZATION
@ ARM_GRP_VIRTUALIZATION
Definition: arm.h:928
ARM_INS_STLH
@ ARM_INS_STLH
Definition: arm.h:644
ARM_INS_VPADDL
@ ARM_INS_VPADDL
Definition: arm.h:778
ARM_INS_STL
@ ARM_INS_STL
Definition: arm.h:638
ARM_INS_SMULTT
@ ARM_INS_SMULTT
Definition: arm.h:620
ARM_INS_STRB
@ ARM_INS_STRB
Definition: arm.h:650
ARM_REG_R3
@ ARM_REG_R3
Definition: arm.h:322
ARM_INS_LDRSH
@ ARM_INS_LDRSH
Definition: arm.h:517
ARM_INS_VMLAL
@ ARM_INS_VMLAL
Definition: arm.h:762
ARM_INS_VCMP
@ ARM_INS_VCMP
Definition: arm.h:730
ARM_GRP_NOTMCLASS
@ ARM_GRP_NOTMCLASS
Definition: arm.h:918
ARM_REG_MVFR0
@ ARM_REG_MVFR0
Definition: arm.h:300
ARM_REG_D25
@ ARM_REG_D25
Definition: arm.h:292
ARM_GRP_INVALID
@ ARM_GRP_INVALID
= CS_GRP_INVALID
Definition: arm.h:886
ARM_INS_BX
@ ARM_INS_BX
Definition: arm.h:460
id2name
const char * id2name(const name_map *map, int max, const unsigned int id)
Definition: utils.c:56
ARM_INS_SADD8
@ ARM_INS_SADD8
Definition: arm.h:565
ARM_INS_VQRSHRUN
@ ARM_INS_VQRSHRUN
Definition: arm.h:794
ARM_INS_SUBW
@ ARM_INS_SUBW
Definition: arm.h:863
ARM_INS_SEL
@ ARM_INS_SEL
Definition: arm.h:570
ARM_INS_SMULWT
@ ARM_INS_SMULWT
Definition: arm.h:622
ARM_INS_VRINTP
@ ARM_INS_VRINTP
Definition: arm.h:810
ARM_REG_D16
@ ARM_REG_D16
Definition: arm.h:283
ARM_INS_STMIB
@ ARM_INS_STMIB
Definition: arm.h:648
ARM_REG_R2
@ ARM_REG_R2
Definition: arm.h:321
ARM_INS_UHSUB8
@ ARM_INS_UHSUB8
Definition: arm.h:684
ARM_INS_POP
@ ARM_INS_POP
Definition: arm.h:868
ARM_INS_CRC32B
@ ARM_INS_CRC32B
Definition: arm.h:470
cs_struct
Definition: cs_priv.h:51
ARM_INS_FSTMIAX
@ ARM_INS_FSTMIAX
Definition: arm.h:486
ARM_INS_ADD
@ ARM_INS_ADD
Definition: arm.h:447
insn_map
Definition: utils.h:19
ARM_INS_SVC
@ ARM_INS_SVC
Definition: arm.h:661
ARM_INS_UXTB
@ ARM_INS_UXTB
Definition: arm.h:704
ARM_INS_BXJ
@ ARM_INS_BXJ
Definition: arm.h:461
ARM_REG_Q15
@ ARM_REG_Q15
Definition: arm.h:318
ARM_INS_SMLALBT
@ ARM_INS_SMLALBT
Definition: arm.h:595
ARM_INS_LSR
@ ARM_INS_LSR
Definition: arm.h:859
ARM_INS_SMC
@ ARM_INS_SMC
Definition: arm.h:588
ARM_INS_VSTMDB
@ ARM_INS_VSTMDB
Definition: arm.h:837
ARM_GRP_V5TE
@ ARM_GRP_V5TE
Definition: arm.h:908
memcpy
memcpy(mem, inblock.get(), min(CONTAINING_RECORD(inblock.get(), MEMBLOCK, data) ->size, size))
ARM_GRP_BRANCH_RELATIVE
@ ARM_GRP_BRANCH_RELATIVE
= CS_GRP_BRANCH_RELATIVE
Definition: arm.h:894
ARM_INS_RFEDB
@ ARM_INS_RFEDB
Definition: arm.h:559
ARM_REG_INVALID
@ ARM_REG_INVALID
Definition: arm.h:253
ARM_INS_VSRA
@ ARM_INS_VSRA
Definition: arm.h:831
ARM_INS_VMOVL
@ ARM_INS_VMOVL
Definition: arm.h:765
ARM_INS_LDREXB
@ ARM_INS_LDREXB
Definition: arm.h:510
ARM_GRP_ARM
@ ARM_GRP_ARM
Definition: arm.h:916
ARM_INS_VQRSHRN
@ ARM_INS_VQRSHRN
Definition: arm.h:793
ARM_INS_VTBL
@ ARM_INS_VTBL
Definition: arm.h:845
ARM_INS_VCVTM
@ ARM_INS_VCVTM
Definition: arm.h:736
ARM_REG_SP
@ ARM_REG_SP
Definition: arm.h:265
ARM_REG_D14
@ ARM_REG_D14
Definition: arm.h:281
ARM_INS_SSAT16
@ ARM_INS_SSAT16
Definition: arm.h:630
ARM_INS_HINT
@ ARM_INS_HINT
Definition: arm.h:487
ARM_INS_SMLALTB
@ ARM_INS_SMLALTB
Definition: arm.h:598
ARM_INS_SEV
@ ARM_INS_SEV
Definition: arm.h:876
ARM_REG_S10
@ ARM_REG_S10
Definition: arm.h:342
ARM_GRP_NEON
@ ARM_GRP_NEON
Definition: arm.h:902
ARM_INS_MCRR2
@ ARM_INS_MCRR2
Definition: arm.h:524
ARM_INS_VPMIN
@ ARM_INS_VPMIN
Definition: arm.h:781
ARM_INS_VLD4
@ ARM_INS_VLD4
Definition: arm.h:753
ARM_INS_AESE
@ ARM_INS_AESE
Definition: arm.h:450
ARM_INS_STRHT
@ ARM_INS_STRHT
Definition: arm.h:657
ARM_REG_S4
@ ARM_REG_S4
Definition: arm.h:336
ARM_INS_UHADD16
@ ARM_INS_UHADD16
Definition: arm.h:679
ARM_INS_CMN
@ ARM_INS_CMN
Definition: arm.h:467
ARM_INS_SMLSDX
@ ARM_INS_SMLSDX
Definition: arm.h:605
ARM_INS_SMMLA
@ ARM_INS_SMMLA
Definition: arm.h:608
ARM_INS_SMLADX
@ ARM_INS_SMLADX
Definition: arm.h:592
ARM_INS_UBFX
@ ARM_INS_UBFX
Definition: arm.h:676
ARM_INS_SWP
@ ARM_INS_SWP
Definition: arm.h:662
ARM_INS_LDCL
@ ARM_INS_LDCL
Definition: arm.h:500
ARM_INS_QSUB
@ ARM_INS_QSUB
Definition: arm.h:551
ARM_INS_INVALID
@ ARM_INS_INVALID
Definition: arm.h:444
ARM_INS_VNMUL
@ ARM_INS_VNMUL
Definition: arm.h:774
ARM_INS_TST
@ ARM_INS_TST
Definition: arm.h:672
ARM_INS_LSL
@ ARM_INS_LSL
Definition: arm.h:858
ARM_REG_Q8
@ ARM_REG_Q8
Definition: arm.h:311
ARM_INS_VPMAX
@ ARM_INS_VPMAX
Definition: arm.h:780
ARM_REG_Q6
@ ARM_REG_Q6
Definition: arm.h:309
ARM_INS_LDRT
@ ARM_INS_LDRT
Definition: arm.h:519
ARM_INS_SHA1P
@ ARM_INS_SHA1P
Definition: arm.h:575
ARM_INS_LDM
@ ARM_INS_LDM
Definition: arm.h:504
ARM_INS_SMMLS
@ ARM_INS_SMMLS
Definition: arm.h:610
ARM_INS_VMSR
@ ARM_INS_VMSR
Definition: arm.h:767
ARM_INS_VADD
@ ARM_INS_VADD
Definition: arm.h:714
ARM_GRP_THUMB2DSP
@ ARM_GRP_THUMB2DSP
Definition: arm.h:904
ARM_INS_CDP2
@ ARM_INS_CDP2
Definition: arm.h:464
ARM_INS_VCLS
@ ARM_INS_VCLS
Definition: arm.h:727
ARM_INS_VDUP
@ ARM_INS_VDUP
Definition: arm.h:741
ARM_INS_CMP
@ ARM_INS_CMP
Definition: arm.h:468
ARM_REG_R5
@ ARM_REG_R5
Definition: arm.h:324
ARM_REG_S24
@ ARM_REG_S24
Definition: arm.h:356
ARM_INS_DCPS2
@ ARM_INS_DCPS2
Definition: arm.h:855
ARM_INS_VSWP
@ ARM_INS_VSWP
Definition: arm.h:844
ARM_INS_UQSAX
@ ARM_INS_UQSAX
Definition: arm.h:691
ARM_INS_HVC
@ ARM_INS_HVC
Definition: arm.h:489
ARM_INS_VCVTB
@ ARM_INS_VCVTB
Definition: arm.h:734
ARM_INS_SMULTB
@ ARM_INS_SMULTB
Definition: arm.h:619
ARM_INS_MLS
@ ARM_INS_MLS
Definition: arm.h:526
conf.branch
string branch
Definition: doc/python/sphinx/conf.py:39
ARM_INS_ROR
@ ARM_INS_ROR
Definition: arm.h:861
ARM_INS_VABA
@ ARM_INS_VABA
Definition: arm.h:708
ARM_INS_FLDMDBX
@ ARM_INS_FLDMDBX
Definition: arm.h:482
ARM_REG_Q3
@ ARM_REG_Q3
Definition: arm.h:306
ARM_INS_SRSIB
@ ARM_INS_SRSIB
Definition: arm.h:628
ARM_INS_UXTAB
@ ARM_INS_UXTAB
Definition: arm.h:701
cs_arm
Instruction structure.
Definition: arm.h:424
ARM_INS_BFI
@ ARM_INS_BFI
Definition: arm.h:455
ARM_INS_VCGT
@ ARM_INS_VCGT
Definition: arm.h:725
ARM_INS_SUB
@ ARM_INS_SUB
Definition: arm.h:660
ARM_INS_VSHRN
@ ARM_INS_VSHRN
Definition: arm.h:827
ARM_REG_R10
@ ARM_REG_R10
Definition: arm.h:329
ARM_GRP_THUMB2
@ ARM_GRP_THUMB2
Definition: arm.h:921
ARM_INS_LDRD
@ ARM_INS_LDRD
Definition: arm.h:508
ARM_INS_VADDL
@ ARM_INS_VADDL
Definition: arm.h:716
insn_map::mapid
unsigned short mapid
Definition: utils.h:21
ARM_INS_USAT16
@ ARM_INS_USAT16
Definition: arm.h:697
ARM_INS_LDC2
@ ARM_INS_LDC2
Definition: arm.h:499
ARM_REG_D0
@ ARM_REG_D0
Definition: arm.h:267
ARM_INS_SMLABT
@ ARM_INS_SMLABT
Definition: arm.h:590
ARM_REG_S1
@ ARM_REG_S1
Definition: arm.h:333
ARM_INS_VRSQRTE
@ ARM_INS_VRSQRTE
Definition: arm.h:817
ARM_INS_SMLAWT
@ ARM_INS_SMLAWT
Definition: arm.h:603
ARM_REG_Q13
@ ARM_REG_Q13
Definition: arm.h:316
ARM_INS_VFMS
@ ARM_INS_VFMS
Definition: arm.h:745
ARM_INS_UQASX
@ ARM_INS_UQASX
Definition: arm.h:690
ARM_REG_D1
@ ARM_REG_D1
Definition: arm.h:268
ARM_INS_TBB
@ ARM_INS_TBB
Definition: arm.h:864
ARM_INS_STRT
@ ARM_INS_STRT
Definition: arm.h:658
ARM_INS_SXTAH
@ ARM_INS_SXTAH
Definition: arm.h:666
ARM_INS_VABAL
@ ARM_INS_VABAL
Definition: arm.h:707
ARM_INS_VRINTA
@ ARM_INS_VRINTA
Definition: arm.h:807
ARM_REG_MVFR2
@ ARM_REG_MVFR2
Definition: arm.h:302
ARM_INS_VCVT
@ ARM_INS_VCVT
Definition: arm.h:735
ARM_INS_VLDMDB
@ ARM_INS_VLDMDB
Definition: arm.h:754
ARM_REG_Q10
@ ARM_REG_Q10
Definition: arm.h:313
ARM_GRP_VFP3
@ ARM_GRP_VFP3
Definition: arm.h:914
ARM_INS_SXTB
@ ARM_INS_SXTB
Definition: arm.h:667
ARM_INS_VADDW
@ ARM_INS_VADDW
Definition: arm.h:717
ARM_INS_PKHBT
@ ARM_INS_PKHBT
Definition: arm.h:539
ARM_INS_SXTAB
@ ARM_INS_SXTAB
Definition: arm.h:664
ARM_INS_CRC32CH
@ ARM_INS_CRC32CH
Definition: arm.h:472
ARM_REG_Q4
@ ARM_REG_Q4
Definition: arm.h:307
ARM_INS_VRINTR
@ ARM_INS_VRINTR
Definition: arm.h:811
ARM_INS_SBC
@ ARM_INS_SBC
Definition: arm.h:567
ARM_INS_VNMLA
@ ARM_INS_VNMLA
Definition: arm.h:772
ARM_INS_RFEDA
@ ARM_INS_RFEDA
Definition: arm.h:558
ARM_INS_ADR
@ ARM_INS_ADR
Definition: arm.h:448
ARM_INS_PLI
@ ARM_INS_PLI
Definition: arm.h:543
ARM_GRP_FPVMLX
@ ARM_GRP_FPVMLX
Definition: arm.h:923
ARM_GRP_FPARMV8
@ ARM_GRP_FPARMV8
Definition: arm.h:900
ARM_OP_REG
@ ARM_OP_REG
= CS_OP_REG (Register operand).
Definition: arm.h:163
ARM_INS_LDAEXD
@ ARM_INS_LDAEXD
Definition: arm.h:495
ARM_INS_SMLATT
@ ARM_INS_SMLATT
Definition: arm.h:601
ARM_INS_BL
@ ARM_INS_BL
Definition: arm.h:458
ARM_INS_VMLSL
@ ARM_INS_VMLSL
Definition: arm.h:764
ARM_INS_SHA1M
@ ARM_INS_SHA1M
Definition: arm.h:574
ARM_INS_CBNZ
@ ARM_INS_CBNZ
Definition: arm.h:866
ARM_INS_VSELGT
@ ARM_INS_VSELGT
Definition: arm.h:823
ARM_GRP_CALL
@ ARM_GRP_CALL
= CS_GRP_CALL
Definition: arm.h:891
ARM_INS_VRSRA
@ ARM_INS_VRSRA
Definition: arm.h:819
ARM_REG_MVFR1
@ ARM_REG_MVFR1
Definition: arm.h:301
ARM_INS_SHA256SU1
@ ARM_INS_SHA256SU1
Definition: arm.h:581
ARM_INS_LDREXD
@ ARM_INS_LDREXD
Definition: arm.h:511
ARM_INS_SEVL
@ ARM_INS_SEVL
Definition: arm.h:877
ARM_INS_UDIV
@ ARM_INS_UDIV
Definition: arm.h:678
ARM_REG_Q9
@ ARM_REG_Q9
Definition: arm.h:312
ARM_INS_SMLALTT
@ ARM_INS_SMLALTT
Definition: arm.h:599
ARM_INS_NOP
@ ARM_INS_NOP
Definition: arm.h:872
ARM_INS_UMLAL
@ ARM_INS_UMLAL
Definition: arm.h:686
ARM_GRP_V8
@ ARM_GRP_V8
Definition: arm.h:912
ARM_INS_SWPB
@ ARM_INS_SWPB
Definition: arm.h:663
count_positive8
unsigned int count_positive8(const unsigned char *list)
Definition: utils.c:83
ARM_INS_VQSHRN
@ ARM_INS_VQSHRN
Definition: arm.h:797
ARM_INS_VSLI
@ ARM_INS_VSLI
Definition: arm.h:829
ARM_REG_D31
@ ARM_REG_D31
Definition: arm.h:298
ARM_INS_SHA1H
@ ARM_INS_SHA1H
Definition: arm.h:573
ARM_INS_SMLAD
@ ARM_INS_SMLAD
Definition: arm.h:591
ARM_INS_MRS
@ ARM_INS_MRS
Definition: arm.h:534
ARM_REG_S22
@ ARM_REG_S22
Definition: arm.h:354
ARM_INS_VCLE
@ ARM_INS_VCLE
Definition: arm.h:726
ARM_INS_VABS
@ ARM_INS_VABS
Definition: arm.h:711
ARM_REG_D10
@ ARM_REG_D10
Definition: arm.h:277
ARM_INS_SHA256H
@ ARM_INS_SHA256H
Definition: arm.h:578
ARM_INS_USADA8
@ ARM_INS_USADA8
Definition: arm.h:695
ARM_INS_LDRHT
@ ARM_INS_LDRHT
Definition: arm.h:514
ARM_INS_B
@ ARM_INS_B
Definition: arm.h:462
ARM_INS_ERET
@ ARM_INS_ERET
Definition: arm.h:480
ARM_INS_VMOVN
@ ARM_INS_VMOVN
Definition: arm.h:766
ARM_INS_YIELD
@ ARM_INS_YIELD
Definition: arm.h:873
ARM_INS_VFMA
@ ARM_INS_VFMA
Definition: arm.h:744
ARM_REG_S19
@ ARM_REG_S19
Definition: arm.h:351
ARM_INS_WFI
@ ARM_INS_WFI
Definition: arm.h:875
ARM_INS_CBZ
@ ARM_INS_CBZ
Definition: arm.h:867
ARM_INS_DMB
@ ARM_INS_DMB
Definition: arm.h:477
ARM_REG_FPINST
@ ARM_REG_FPINST
Definition: arm.h:258
ARM_INS_RRX
@ ARM_INS_RRX
Definition: arm.h:862
ARM_INS_CRC32CW
@ ARM_INS_CRC32CW
Definition: arm.h:473
ARM_REG_D11
@ ARM_REG_D11
Definition: arm.h:278
ARM_reg_access
void ARM_reg_access(const cs_insn *insn, cs_regs regs_read, uint8_t *regs_read_count, cs_regs regs_write, uint8_t *regs_write_count)
ARM_INS_BIC
@ ARM_INS_BIC
Definition: arm.h:456
ARM_INS_MSR
@ ARM_INS_MSR
Definition: arm.h:535
ARM_INS_VCVTP
@ ARM_INS_VCVTP
Definition: arm.h:738
ARM_REG_D26
@ ARM_REG_D26
Definition: arm.h:293
ARM_INS_STLEXH
@ ARM_INS_STLEXH
Definition: arm.h:643
ARM_INS_MUL
@ ARM_INS_MUL
Definition: arm.h:536
group_name_maps
static name_map group_name_maps[]
Definition: M68KInstPrinter.c:370
ARM_GRP_DIVIDE
@ ARM_GRP_DIVIDE
Definition: arm.h:899
ARM_INS_VMVN
@ ARM_INS_VMVN
Definition: arm.h:770
ARM_INS_AND
@ ARM_INS_AND
Definition: arm.h:453
ARM_GRP_V7
@ ARM_GRP_V7
Definition: arm.h:911
ARM_REG_S11
@ ARM_REG_S11
Definition: arm.h:343
ARM_INS_QSUB16
@ ARM_INS_QSUB16
Definition: arm.h:552
ARM_get_insn_id
void ARM_get_insn_id(cs_struct *h, cs_insn *insn, unsigned int id)
ARM_REG_D30
@ ARM_REG_D30
Definition: arm.h:297
csh
size_t csh
Definition: capstone.h:71
ARM_INS_UASX
@ ARM_INS_UASX
Definition: arm.h:675
ARM_INS_BFC
@ ARM_INS_BFC
Definition: arm.h:454
ARM_INS_VUZP
@ ARM_INS_VUZP
Definition: arm.h:850
ARM_REG_R4
@ ARM_REG_R4
Definition: arm.h:323
ARM_REG_D21
@ ARM_REG_D21
Definition: arm.h:288
ARM_INS_MRRC2
@ ARM_INS_MRRC2
Definition: arm.h:533
ARM_REG_D8
@ ARM_REG_D8
Definition: arm.h:275
ARM_blx_to_arm_mode
bool ARM_blx_to_arm_mode(cs_struct *h, unsigned int insn_id)
ARM_INS_VMAX
@ ARM_INS_VMAX
Definition: arm.h:758
ARM_insn_name
const char * ARM_insn_name(csh handle, unsigned int id)
ARM_INS_VCLZ
@ ARM_INS_VCLZ
Definition: arm.h:729
ARM_INS_VMOV
@ ARM_INS_VMOV
Definition: arm.h:481
ARM_INS_LDC2L
@ ARM_INS_LDC2L
Definition: arm.h:498
ARM_INS_LDRSB
@ ARM_INS_LDRSB
Definition: arm.h:515
ARM_INS_STRBT
@ ARM_INS_STRBT
Definition: arm.h:649
ARM_INS_TBH
@ ARM_INS_TBH
Definition: arm.h:865
ARM_INS_SMLALDX
@ ARM_INS_SMLALDX
Definition: arm.h:597
ARM_REG_D2
@ ARM_REG_D2
Definition: arm.h:269
ARM_INS_ADC
@ ARM_INS_ADC
Definition: arm.h:446
ARM_REG_S7
@ ARM_REG_S7
Definition: arm.h:339
make_dist_html.groups
list groups
Definition: make_dist_html.py:120
ARM_INS_MOVW
@ ARM_INS_MOVW
Definition: arm.h:529
ARM_INS_ORR
@ ARM_INS_ORR
Definition: arm.h:538
ARM_GRP_PREV8
@ ARM_GRP_PREV8
Definition: arm.h:922
ARM_INS_VDIV
@ ARM_INS_VDIV
Definition: arm.h:740
ARM_INS_VQDMLAL
@ ARM_INS_VQDMLAL
Definition: arm.h:784
ARM_INS_LDA
@ ARM_INS_LDA
Definition: arm.h:491
ARM_INS_VSHR
@ ARM_INS_VSHR
Definition: arm.h:828
ARM_REG_S18
@ ARM_REG_S18
Definition: arm.h:350
ARM_INS_SETEND
@ ARM_INS_SETEND
Definition: arm.h:571
ARM_INS_VSUB
@ ARM_INS_VSUB
Definition: arm.h:840
ARM_INS_BKPT
@ ARM_INS_BKPT
Definition: arm.h:457
ARM_GRP_VFP2
@ ARM_GRP_VFP2
Definition: arm.h:913
ARM_INS_VABD
@ ARM_INS_VABD
Definition: arm.h:710
ARM_INS_ASR
@ ARM_INS_ASR
Definition: arm.h:853
ARM_INS_VLDMIA
@ ARM_INS_VLDMIA
Definition: arm.h:755
ARM_INS_VCNT
@ ARM_INS_VCNT
Definition: arm.h:732
ARM_INS_ORN
@ ARM_INS_ORN
Definition: arm.h:860
ARM_REG_LR
@ ARM_REG_LR
Definition: arm.h:263
ARM_GRP_V5T
@ ARM_GRP_V5T
Definition: arm.h:907
ARM_INS_FSTMDBX
@ ARM_INS_FSTMDBX
Definition: arm.h:485
ARM_INS_SMULL
@ ARM_INS_SMULL
Definition: arm.h:618
ARM_REG_D18
@ ARM_REG_D18
Definition: arm.h:285
ARM_INS_REVSH
@ ARM_INS_REVSH
Definition: arm.h:557
ARM_INS_VCLT
@ ARM_INS_VCLT
Definition: arm.h:728
ARM_INS_SMMUL
@ ARM_INS_SMMUL
Definition: arm.h:612
ARM_REG_D28
@ ARM_REG_D28
Definition: arm.h:295
ARM_INS_SSUB16
@ ARM_INS_SSUB16
Definition: arm.h:632
ARM_INS_VABDL
@ ARM_INS_VABDL
Definition: arm.h:709
ARM_INS_UADD8
@ ARM_INS_UADD8
Definition: arm.h:674
ARMMapping.h
ARM_REG_S20
@ ARM_REG_S20
Definition: arm.h:352
ARM_GRP_CRC
@ ARM_GRP_CRC
Definition: arm.h:925
ARM_INS_UXTH
@ ARM_INS_UXTH
Definition: arm.h:706
ARM_REG_R0
@ ARM_REG_R0
Definition: arm.h:319
ARM_INS_STM
@ ARM_INS_STM
Definition: arm.h:647
ARM_INS_SXTB16
@ ARM_INS_SXTB16
Definition: arm.h:668
ARM_INS_LDAB
@ ARM_INS_LDAB
Definition: arm.h:492
ARM_INS_STREXH
@ ARM_INS_STREXH
Definition: arm.h:655
ARM_INS_USUB16
@ ARM_INS_USUB16
Definition: arm.h:699
ARM_INS_VQDMLSL
@ ARM_INS_VQDMLSL
Definition: arm.h:785
ARM_INS_VFNMA
@ ARM_INS_VFNMA
Definition: arm.h:746
ARM_INS_SMMULR
@ ARM_INS_SMMULR
Definition: arm.h:613
ARM_INS_VTST
@ ARM_INS_VTST
Definition: arm.h:849
ARM_INS_VRSUBHN
@ ARM_INS_VRSUBHN
Definition: arm.h:820
ARM_INS_LDRSBT
@ ARM_INS_LDRSBT
Definition: arm.h:516
ARM_INS_VMUL
@ ARM_INS_VMUL
Definition: arm.h:768
ARM_INS_SMLALBB
@ ARM_INS_SMLALBB
Definition: arm.h:594
ARM_INS_AESMC
@ ARM_INS_AESMC
Definition: arm.h:452
ARM_INS_DBG
@ ARM_INS_DBG
Definition: arm.h:476
ARM_INS_SMLSD
@ ARM_INS_SMLSD
Definition: arm.h:604
ARM_GRP_V6M
@ ARM_GRP_V6M
Definition: arm.h:927
ARM_REG_S2
@ ARM_REG_S2
Definition: arm.h:334
ARM_reg_name
const char * ARM_reg_name(csh handle, unsigned int reg)
ARM_INS_SHA1SU0
@ ARM_INS_SHA1SU0
Definition: arm.h:576
ARM_INS_SDIV
@ ARM_INS_SDIV
Definition: arm.h:569
ARM_INS_VSTMIA
@ ARM_INS_VSTMIA
Definition: arm.h:838
ARM_INS_STREXB
@ ARM_INS_STREXB
Definition: arm.h:653
ARM_INS_VQSHLU
@ ARM_INS_VQSHLU
Definition: arm.h:796
ARM_INS_VNMLS
@ ARM_INS_VNMLS
Definition: arm.h:773
ARM_INS_UXTAH
@ ARM_INS_UXTAH
Definition: arm.h:703
ARM_INS_STLEX
@ ARM_INS_STLEX
Definition: arm.h:640
ARM_INS_VMAXNM
@ ARM_INS_VMAXNM
Definition: arm.h:757
ARM_INS_STLB
@ ARM_INS_STLB
Definition: arm.h:639
ARM_REG_FPSID
@ ARM_REG_FPSID
Definition: arm.h:261
ARM_REG_S9
@ ARM_REG_S9
Definition: arm.h:341
ARM_INS_ENDING
@ ARM_INS_ENDING
Definition: arm.h:881
ARM_INS_SASX
@ ARM_INS_SASX
Definition: arm.h:566
name_map::name
const char * name
Definition: utils.h:38
ARM_REG_Q11
@ ARM_REG_Q11
Definition: arm.h:314
ARM_INS_EOR
@ ARM_INS_EOR
Definition: arm.h:479
ARM_INS_UHSAX
@ ARM_INS_UHSAX
Definition: arm.h:682
ARM_INS_SMUADX
@ ARM_INS_SMUADX
Definition: arm.h:615
ARM_INS_STC
@ ARM_INS_STC
Definition: arm.h:637
ARM_INS_LDAEXB
@ ARM_INS_LDAEXB
Definition: arm.h:494
ARM_REG_S31
@ ARM_REG_S31
Definition: arm.h:363
ARM_INS_QSAX
@ ARM_INS_QSAX
Definition: arm.h:550
ARM_INS_SBFX
@ ARM_INS_SBFX
Definition: arm.h:568
ARM_INS_UHASX
@ ARM_INS_UHASX
Definition: arm.h:681
ARM_INS_AESD
@ ARM_INS_AESD
Definition: arm.h:449
ARM_INS_VSELVS
@ ARM_INS_VSELVS
Definition: arm.h:824
ARM_REG_D4
@ ARM_REG_D4
Definition: arm.h:271
ARM_GRP_T2EXTRACTPACK
@ ARM_GRP_T2EXTRACTPACK
Definition: arm.h:903
ARM_INS_UXTB16
@ ARM_INS_UXTB16
Definition: arm.h:705
ARM_INS_VMLA
@ ARM_INS_VMLA
Definition: arm.h:761
ARM_INS_VST4
@ ARM_INS_VST4
Definition: arm.h:836
ARM_INS_LDREXH
@ ARM_INS_LDREXH
Definition: arm.h:512
ARM_REG_S12
@ ARM_REG_S12
Definition: arm.h:344
ARM_INS_VTRN
@ ARM_INS_VTRN
Definition: arm.h:848
ARM_INS_VPADD
@ ARM_INS_VPADD
Definition: arm.h:779
ARM_INS_SHADD16
@ ARM_INS_SHADD16
Definition: arm.h:582
ARM_INS_SMUSDX
@ ARM_INS_SMUSDX
Definition: arm.h:624
ARM_INS_VBSL
@ ARM_INS_VBSL
Definition: arm.h:722
ARM_INS_STCL
@ ARM_INS_STCL
Definition: arm.h:636
ARM_REG_D6
@ ARM_REG_D6
Definition: arm.h:273
ARM_INS_VCVTA
@ ARM_INS_VCVTA
Definition: arm.h:733
ARM_INS_CLZ
@ ARM_INS_CLZ
Definition: arm.h:466
ARM_GRP_V6
@ ARM_GRP_V6
Definition: arm.h:909
ARM_INS_MCRR
@ ARM_INS_MCRR
Definition: arm.h:523
ARM_INS_SHA256SU0
@ ARM_INS_SHA256SU0
Definition: arm.h:580
ARM_REG_D24
@ ARM_REG_D24
Definition: arm.h:291
ARM_INS_STREXD
@ ARM_INS_STREXD
Definition: arm.h:654
handle
static csh handle
Definition: test_arm_regression.c:16
ARM_REG_SPSR
@ ARM_REG_SPSR
Definition: arm.h:266
ARM_INS_VST1
@ ARM_INS_VST1
Definition: arm.h:833
ARM_GRP_THUMB1ONLY
@ ARM_GRP_THUMB1ONLY
Definition: arm.h:920
ARM_REG_FPSCR_NZCV
@ ARM_REG_FPSCR_NZCV
Definition: arm.h:260
ARM_INS_QADD16
@ ARM_INS_QADD16
Definition: arm.h:545
ARM_INS_STR
@ ARM_INS_STR
Definition: arm.h:659
ARM_INS_RSC
@ ARM_INS_RSC
Definition: arm.h:563
ARM_REG_S3
@ ARM_REG_S3
Definition: arm.h:335
ARM_REG_S29
@ ARM_REG_S29
Definition: arm.h:361
ARM_INS_VTBX
@ ARM_INS_VTBX
Definition: arm.h:846
ARM_INS_LDMDB
@ ARM_INS_LDMDB
Definition: arm.h:503
ARM_INS_LDAEXH
@ ARM_INS_LDAEXH
Definition: arm.h:496
ARM_INS_VPUSH
@ ARM_INS_VPUSH
Definition: arm.h:878
ARM_INS_UHSUB16
@ ARM_INS_UHSUB16
Definition: arm.h:683
ARM_INS_VHADD
@ ARM_INS_VHADD
Definition: arm.h:748
ARM_INS_WFE
@ ARM_INS_WFE
Definition: arm.h:874
ARM_GRP_PRIVILEGE
@ ARM_GRP_PRIVILEGE
= CS_GRP_PRIVILEGE
Definition: arm.h:893
ARM_INS_VRINTX
@ ARM_INS_VRINTX
Definition: arm.h:812
ARM_INS_USAX
@ ARM_INS_USAX
Definition: arm.h:698
ARM_OP_MEM
@ ARM_OP_MEM
= CS_OP_MEM (Memory operand).
Definition: arm.h:165
ARM_INS_QADD8
@ ARM_INS_QADD8
Definition: arm.h:546
ARM_REG_S6
@ ARM_REG_S6
Definition: arm.h:338
ARM_REG_D19
@ ARM_REG_D19
Definition: arm.h:286
ARM_REG_D12
@ ARM_REG_D12
Definition: arm.h:279
ARM_GRP_DATABARRIER
@ ARM_GRP_DATABARRIER
Definition: arm.h:898
ARM_INS_LDR
@ ARM_INS_LDR
Definition: arm.h:520
ARM_INS_VREV16
@ ARM_INS_VREV16
Definition: arm.h:803
ARM_INS_USUB8
@ ARM_INS_USUB8
Definition: arm.h:700
cs_arm_op
Instruction operand.
Definition: arm.h:391
ARM_INS_LDC
@ ARM_INS_LDC
Definition: arm.h:501
ARM_REG_ITSTATE
@ ARM_REG_ITSTATE
Definition: arm.h:262
ARM_REG_D7
@ ARM_REG_D7
Definition: arm.h:274
ARM_INS_DCPS1
@ ARM_INS_DCPS1
Definition: arm.h:854
ARM_INS_QASX
@ ARM_INS_QASX
Definition: arm.h:547
ARM_GRP_CRYPTO
@ ARM_GRP_CRYPTO
Definition: arm.h:897
ARM_INS_VCMPE
@ ARM_INS_VCMPE
Definition: arm.h:731
ARM_INS_VBIT
@ ARM_INS_VBIT
Definition: arm.h:721
ARM_REG_FPSCR
@ ARM_REG_FPSCR
Definition: arm.h:259
ARM_INS_QDSUB
@ ARM_INS_QDSUB
Definition: arm.h:549
ARM_INS_RBIT
@ ARM_INS_RBIT
Definition: arm.h:554
ARM_INS_VQADD
@ ARM_INS_VQADD
Definition: arm.h:783
ARM_INS_QADD
@ ARM_INS_QADD
Definition: arm.h:544
ARM_REG_Q5
@ ARM_REG_Q5
Definition: arm.h:308
ARM_INS_LDRSHT
@ ARM_INS_LDRSHT
Definition: arm.h:518
ARM_INS_VACGE
@ ARM_INS_VACGE
Definition: arm.h:712
ARM_INS_SHA1C
@ ARM_INS_SHA1C
Definition: arm.h:572
ARM_REG_S30
@ ARM_REG_S30
Definition: arm.h:362
ARM_INS_CPS
@ ARM_INS_CPS
Definition: arm.h:469
ARM_INS_REV16
@ ARM_INS_REV16
Definition: arm.h:556
ARM_REG_D17
@ ARM_REG_D17
Definition: arm.h:284
ARM_INS_VRSHR
@ ARM_INS_VRSHR
Definition: arm.h:816
ARM_INS_VMRS
@ ARM_INS_VMRS
Definition: arm.h:484
access
Definition: bloaty/third_party/zlib/examples/zran.c:75
ARM_INS_VADDHN
@ ARM_INS_VADDHN
Definition: arm.h:715
ARM_INS_AESIMC
@ ARM_INS_AESIMC
Definition: arm.h:451
ARM_REG_R12
@ ARM_REG_R12
Definition: arm.h:331
ARM_GRP_MCLASS
@ ARM_GRP_MCLASS
Definition: arm.h:917
ARM_INS_SMULWB
@ ARM_INS_SMULWB
Definition: arm.h:621
ARM_INS_VQDMULL
@ ARM_INS_VQDMULL
Definition: arm.h:787
ARM_REG_S21
@ ARM_REG_S21
Definition: arm.h:353
ARM_INS_VSHLL
@ ARM_INS_VSHLL
Definition: arm.h:825
ARM_INS_SMLAL
@ ARM_INS_SMLAL
Definition: arm.h:593
ARM_REG_R9
@ ARM_REG_R9
Definition: arm.h:328
ARM_INS_MOVT
@ ARM_INS_MOVT
Definition: arm.h:528
ARM_INS_SHSUB16
@ ARM_INS_SHSUB16
Definition: arm.h:586
ARM_INS_VLD3
@ ARM_INS_VLD3
Definition: arm.h:752
ARM_INS_VSUBHN
@ ARM_INS_VSUBHN
Definition: arm.h:841
absl::str_format_internal::LengthMod::h
@ h
ARM_GRP_JUMP
@ ARM_GRP_JUMP
= CS_GRP_JUMP
Definition: arm.h:890
ARM_REG_S23
@ ARM_REG_S23
Definition: arm.h:355
ARM_INS_VPADAL
@ ARM_INS_VPADAL
Definition: arm.h:777
ARM_INS_VRECPS
@ ARM_INS_VRECPS
Definition: arm.h:802
op
static grpc_op * op
Definition: test/core/fling/client.cc:47
ARM_INS_VSELGE
@ ARM_INS_VSELGE
Definition: arm.h:822
ARM_reg_name2
const char * ARM_reg_name2(csh handle, unsigned int reg)
ARM_REG_R11
@ ARM_REG_R11
Definition: arm.h:330
ARM_INS_VQRSHL
@ ARM_INS_VQRSHL
Definition: arm.h:792
ARM_REG_S16
@ ARM_REG_S16
Definition: arm.h:348
ARM_INS_MOV
@ ARM_INS_MOV
Definition: arm.h:527
ARM_REG_S28
@ ARM_REG_S28
Definition: arm.h:360
ARM_INS_VEOR
@ ARM_INS_VEOR
Definition: arm.h:742
ARM_INS_VPOP
@ ARM_INS_VPOP
Definition: arm.h:879
ARM_GRP_V6T2
@ ARM_GRP_V6T2
Definition: arm.h:910
ARM_REG_D15
@ ARM_REG_D15
Definition: arm.h:282
ARM_GRP_VFP4
@ ARM_GRP_VFP4
Definition: arm.h:915
ARM_REG_D27
@ ARM_REG_D27
Definition: arm.h:294
name_map
Definition: utils.h:36
i
uint64_t i
Definition: abseil-cpp/absl/container/btree_benchmark.cc:230
ARM_INS_VCVTN
@ ARM_INS_VCVTN
Definition: arm.h:737
ARM_INS_UMULL
@ ARM_INS_UMULL
Definition: arm.h:687
ARM_INS_SMUSD
@ ARM_INS_SMUSD
Definition: arm.h:623
CS_AC_WRITE
@ CS_AC_WRITE
Operand write to memory or register.
Definition: capstone.h:206
ARM_INS_VBIC
@ ARM_INS_VBIC
Definition: arm.h:719
ARM_INS_VAND
@ ARM_INS_VAND
Definition: arm.h:718
ARM_REG_D13
@ ARM_REG_D13
Definition: arm.h:280
ARM_INS_VMULL
@ ARM_INS_VMULL
Definition: arm.h:769
ARM_INS_VQNEG
@ ARM_INS_VQNEG
Definition: arm.h:790
ARM_INS_STRD
@ ARM_INS_STRD
Definition: arm.h:651
id
uint32_t id
Definition: flow_control_fuzzer.cc:70
ARM_INS_SHA1SU1
@ ARM_INS_SHA1SU1
Definition: arm.h:577
ARM_INS_VRINTN
@ ARM_INS_VRINTN
Definition: arm.h:809
ARM_INS_VST3
@ ARM_INS_VST3
Definition: arm.h:835
ARM_INS_MRC2
@ ARM_INS_MRC2
Definition: arm.h:531
ARM_INS_VLD1
@ ARM_INS_VLD1
Definition: arm.h:750
ARM_INS_VSTR
@ ARM_INS_VSTR
Definition: arm.h:839
ARM_INS_MCR
@ ARM_INS_MCR
Definition: arm.h:521
ARR_SIZE
#define ARR_SIZE(a)
Definition: ocaml.c:13
ARM_REG_R7
@ ARM_REG_R7
Definition: arm.h:326
ARM_REG_S17
@ ARM_REG_S17
Definition: arm.h:349
ARM_INS_VCVTR
@ ARM_INS_VCVTR
Definition: arm.h:847
ARM_INS_DSB
@ ARM_INS_DSB
Definition: arm.h:478
ARM_INS_MCR2
@ ARM_INS_MCR2
Definition: arm.h:522
ARM_REG_Q7
@ ARM_REG_Q7
Definition: arm.h:310


grpc
Author(s):
autogenerated on Thu Mar 13 2025 02:58:34