1 //! \file
2 /*
3 **  Copyright (C) - Triton
4 **
5 **  This program is under the terms of the Apache License 2.0.
6 */
7 
8 #ifndef TRITON_AARCH64SPECIFICATIONS_H
9 #define TRITON_AARCH64SPECIFICATIONS_H
10 
11 #include <unordered_map>
12 
13 #include <triton/archEnums.hpp>
14 #include <triton/architecture.hpp>
15 #include <triton/dllexport.hpp>
16 #include <triton/register.hpp>
17 
18 
19 
20 //! The Triton namespace
21 namespace triton {
22 /*!
23  *  \addtogroup triton
24  *  @{
25  */
26 
27   //! The Architecture namespace
28   namespace arch {
29   /*!
30    *  \ingroup triton
31    *  \addtogroup arch
32    *  @{
33    */
34 
35     //! The ARM namespace
36     namespace arm {
37     /*!
38      *  \ingroup arch
39      *  \addtogroup arm
40      *  @{
41      */
42 
43       //! The aarch64 namespace
44       namespace aarch64 {
45       /*!
46        *  \ingroup arm
47        *  \addtogroup aarch64
48        *  @{
49        */
50 
51         //! \class AArch64Specifications
52         /*! \brief The AArch64Specifications class defines specifications about the AArch64 CPU */
53         class AArch64Specifications {
54           protected:
55             //! List of registers specification available for this architecture.
56             std::unordered_map<triton::arch::register_e, const triton::arch::Register> registers_;
57 
58           public:
59             //! Constructor.
60             TRITON_EXPORT AArch64Specifications(triton::arch::architecture_e);
61 
62             //! Converts a capstone's register id to a triton's register id.
63             TRITON_EXPORT triton::arch::register_e capstoneRegisterToTritonRegister(triton::uint32 id) const;
64 
65             //! Converts a capstone's shift id to a triton's shift id.
66             TRITON_EXPORT triton::arch::arm::shift_e capstoneShiftToTritonShift(triton::uint32 id) const;
67 
68             //! Converts a capstone's extend id to a triton's extend id.
69             TRITON_EXPORT triton::arch::arm::extend_e capstoneExtendToTritonExtend(triton::uint32 id) const;
70 
71             //! Converts a capstone's condition id to a triton's condition id.
72             TRITON_EXPORT triton::arch::arm::condition_e capstoneConditionToTritonCondition(triton::uint32 id) const;
73 
74             //! Converts a capstone's instruction id to a triton's instruction id.
75             TRITON_EXPORT triton::uint32 capstoneInstructionToTritonInstruction(triton::uint32 id) const;
76         };
77 
78         //! The list of opcodes.
79         enum instruction_e {
80           ID_INS_INVALID = 0, //!< invalid
81           ID_INS_ABS, //!< abs
82           ID_INS_ADC, //!< adc
83           ID_INS_ADDHN, //!< addhn
84           ID_INS_ADDHN2, //!< addhn2
85           ID_INS_ADDP, //!< addp
86           ID_INS_ADD, //!< add
87           ID_INS_ADDV, //!< addv
88           ID_INS_ADR, //!< adr
89           ID_INS_ADRP, //!< adrp
90           ID_INS_AESD, //!< aesd
91           ID_INS_AESE, //!< aese
92           ID_INS_AESIMC, //!< aesimc
93           ID_INS_AESMC, //!< aesmc
94           ID_INS_AND, //!< and
95           ID_INS_ASR, //!< asr
96           ID_INS_B, //!< b
97           ID_INS_BFM, //!< bfm
98           ID_INS_BIC, //!< bic
99           ID_INS_BIF, //!< bif
100           ID_INS_BIT, //!< bit
101           ID_INS_BL, //!< bl
102           ID_INS_BLR, //!< blr
103           ID_INS_BR, //!< br
104           ID_INS_BRK, //!< brk
105           ID_INS_BSL, //!< bsl
106           ID_INS_CBNZ, //!< cbnz
107           ID_INS_CBZ, //!< cbz
108           ID_INS_CCMN, //!< ccmn
109           ID_INS_CCMP, //!< ccmp
110           ID_INS_CLREX, //!< clrex
111           ID_INS_CLS, //!< cls
112           ID_INS_CLZ, //!< clz
113           ID_INS_CMEQ, //!< cmeq
114           ID_INS_CMGE, //!< cmge
115           ID_INS_CMGT, //!< cmgt
116           ID_INS_CMHI, //!< cmhi
117           ID_INS_CMHS, //!< cmhs
118           ID_INS_CMLE, //!< cmle
119           ID_INS_CMLT, //!< cmlt
120           ID_INS_CMTST, //!< cmtst
121           ID_INS_CNT, //!< cnt
122           ID_INS_MOV, //!< mov
123           ID_INS_CRC32B, //!< crc32b
124           ID_INS_CRC32CB, //!< crc32cb
125           ID_INS_CRC32CH, //!< crc32ch
126           ID_INS_CRC32CW, //!< crc32cw
127           ID_INS_CRC32CX, //!< crc32cx
128           ID_INS_CRC32H, //!< crc32h
129           ID_INS_CRC32W, //!< crc32w
130           ID_INS_CRC32X, //!< crc32x
131           ID_INS_CSEL, //!< csel
132           ID_INS_CSINC, //!< csinc
133           ID_INS_CSINV, //!< csinv
134           ID_INS_CSNEG, //!< csneg
135           ID_INS_DCPS1, //!< dcps1
136           ID_INS_DCPS2, //!< dcps2
137           ID_INS_DCPS3, //!< dcps3
138           ID_INS_DMB, //!< dmb
139           ID_INS_DRPS, //!< drps
140           ID_INS_DSB, //!< dsb
141           ID_INS_DUP, //!< dup
142           ID_INS_EON, //!< eon
143           ID_INS_EOR, //!< eor
144           ID_INS_ERET, //!< eret
145           ID_INS_EXTR, //!< extr
146           ID_INS_EXT, //!< ext
147           ID_INS_FABD, //!< fabd
148           ID_INS_FABS, //!< fabs
149           ID_INS_FACGE, //!< facge
150           ID_INS_FACGT, //!< facgt
151           ID_INS_FADD, //!< fadd
152           ID_INS_FADDP, //!< faddp
153           ID_INS_FCCMP, //!< fccmp
154           ID_INS_FCCMPE, //!< fccmpe
155           ID_INS_FCMEQ, //!< fcmeq
156           ID_INS_FCMGE, //!< fcmge
157           ID_INS_FCMGT, //!< fcmgt
158           ID_INS_FCMLE, //!< fcmle
159           ID_INS_FCMLT, //!< fcmlt
160           ID_INS_FCMP, //!< fcmp
161           ID_INS_FCMPE, //!< fcmpe
162           ID_INS_FCSEL, //!< fcsel
163           ID_INS_FCVTAS, //!< fcvtas
164           ID_INS_FCVTAU, //!< fcvtau
165           ID_INS_FCVT, //!< fcvt
166           ID_INS_FCVTL, //!< fcvtl
167           ID_INS_FCVTL2, //!< fcvtl2
168           ID_INS_FCVTMS, //!< fcvtms
169           ID_INS_FCVTMU, //!< fcvtmu
170           ID_INS_FCVTNS, //!< fcvtns
171           ID_INS_FCVTNU, //!< fcvtnu
172           ID_INS_FCVTN, //!< fcvtn
173           ID_INS_FCVTN2, //!< fcvtn2
174           ID_INS_FCVTPS, //!< fcvtps
175           ID_INS_FCVTPU, //!< fcvtpu
176           ID_INS_FCVTXN, //!< fcvtxn
177           ID_INS_FCVTXN2, //!< fcvtxn2
178           ID_INS_FCVTZS, //!< fcvtzs
179           ID_INS_FCVTZU, //!< fcvtzu
180           ID_INS_FDIV, //!< fdiv
181           ID_INS_FMADD, //!< fmadd
182           ID_INS_FMAX, //!< fmax
183           ID_INS_FMAXNM, //!< fmaxnm
184           ID_INS_FMAXNMP, //!< fmaxnmp
185           ID_INS_FMAXNMV, //!< fmaxnmv
186           ID_INS_FMAXP, //!< fmaxp
187           ID_INS_FMAXV, //!< fmaxv
188           ID_INS_FMIN, //!< fmin
189           ID_INS_FMINNM, //!< fminnm
190           ID_INS_FMINNMP, //!< fminnmp
191           ID_INS_FMINNMV, //!< fminnmv
192           ID_INS_FMINP, //!< fminp
193           ID_INS_FMINV, //!< fminv
194           ID_INS_FMLA, //!< fmla
195           ID_INS_FMLS, //!< fmls
196           ID_INS_FMOV, //!< fmov
197           ID_INS_FMSUB, //!< fmsub
198           ID_INS_FMUL, //!< fmul
199           ID_INS_FMULX, //!< fmulx
200           ID_INS_FNEG, //!< fneg
201           ID_INS_FNMADD, //!< fnmadd
202           ID_INS_FNMSUB, //!< fnmsub
203           ID_INS_FNMUL, //!< fnmul
204           ID_INS_FRECPE, //!< frecpe
205           ID_INS_FRECPS, //!< frecps
206           ID_INS_FRECPX, //!< frecpx
207           ID_INS_FRINTA, //!< frinta
208           ID_INS_FRINTI, //!< frinti
209           ID_INS_FRINTM, //!< frintm
210           ID_INS_FRINTN, //!< frintn
211           ID_INS_FRINTP, //!< frintp
212           ID_INS_FRINTX, //!< frintx
213           ID_INS_FRINTZ, //!< frintz
214           ID_INS_FRSQRTE, //!< frsqrte
215           ID_INS_FRSQRTS, //!< frsqrts
216           ID_INS_FSQRT, //!< fsqrt
217           ID_INS_FSUB, //!< fsub
218           ID_INS_HINT, //!< hint
219           ID_INS_HLT, //!< hlt
220           ID_INS_HVC, //!< hvc
221           ID_INS_INS, //!< ins
222           ID_INS_ISB, //!< isb
223           ID_INS_LD1, //!< ld1
224           ID_INS_LD1R, //!< ld1r
225           ID_INS_LD2R, //!< ld2r
226           ID_INS_LD2, //!< ld2
227           ID_INS_LD3R, //!< ld3r
228           ID_INS_LD3, //!< ld3
229           ID_INS_LD4, //!< ld4
230           ID_INS_LD4R, //!< ld4r
231           ID_INS_LDARB, //!< ldarb
232           ID_INS_LDARH, //!< ldarh
233           ID_INS_LDAR, //!< ldar
234           ID_INS_LDAXP, //!< ldaxp
235           ID_INS_LDAXRB, //!< ldaxrb
236           ID_INS_LDAXRH, //!< ldaxrh
237           ID_INS_LDAXR, //!< ldaxr
238           ID_INS_LDNP, //!< ldnp
239           ID_INS_LDP, //!< ldp
240           ID_INS_LDPSW, //!< ldpsw
241           ID_INS_LDRB, //!< ldrb
242           ID_INS_LDR, //!< ldr
243           ID_INS_LDRH, //!< ldrh
244           ID_INS_LDRSB, //!< ldrsb
245           ID_INS_LDRSH, //!< ldrsh
246           ID_INS_LDRSW, //!< ldrsw
247           ID_INS_LDTRB, //!< ldtrb
248           ID_INS_LDTRH, //!< ldtrh
249           ID_INS_LDTRSB, //!< ldtrsb
250           ID_INS_LDTRSH, //!< ldtrsh
251           ID_INS_LDTRSW, //!< ldtrsw
252           ID_INS_LDTR, //!< ldtr
253           ID_INS_LDURB, //!< ldurb
254           ID_INS_LDUR, //!< ldur
255           ID_INS_LDURH, //!< ldurh
256           ID_INS_LDURSB, //!< ldursb
257           ID_INS_LDURSH, //!< ldursh
258           ID_INS_LDURSW, //!< ldursw
259           ID_INS_LDXP, //!< ldxp
260           ID_INS_LDXRB, //!< ldxrb
261           ID_INS_LDXRH, //!< ldxrh
262           ID_INS_LDXR, //!< ldxr
263           ID_INS_LSL, //!< lsl
264           ID_INS_LSR, //!< lsr
265           ID_INS_MADD, //!< madd
266           ID_INS_MLA, //!< mla
267           ID_INS_MLS, //!< mls
268           ID_INS_MOVI, //!< movi
269           ID_INS_MOVK, //!< movk
270           ID_INS_MOVN, //!< movn
271           ID_INS_MOVZ, //!< movz
272           ID_INS_MRS, //!< mrs
273           ID_INS_MSR, //!< msr
274           ID_INS_MSUB, //!< msub
275           ID_INS_MUL, //!< mul
276           ID_INS_MVNI, //!< mvni
277           ID_INS_NEG, //!< neg
278           ID_INS_NOT, //!< not
279           ID_INS_ORN, //!< orn
280           ID_INS_ORR, //!< orr
281           ID_INS_PMULL2, //!< pmull2
282           ID_INS_PMULL, //!< pmull
283           ID_INS_PMUL, //!< pmul
284           ID_INS_PRFM, //!< prfm
285           ID_INS_PRFUM, //!< prfum
286           ID_INS_RADDHN, //!< raddhn
287           ID_INS_RADDHN2, //!< raddhn2
288           ID_INS_RBIT, //!< rbit
289           ID_INS_RET, //!< ret
290           ID_INS_REV16, //!< rev16
291           ID_INS_REV32, //!< rev32
292           ID_INS_REV64, //!< rev64
293           ID_INS_REV, //!< rev
294           ID_INS_ROR, //!< ror
295           ID_INS_RSHRN2, //!< rshrn2
296           ID_INS_RSHRN, //!< rshrn
297           ID_INS_RSUBHN, //!< rsubhn
298           ID_INS_RSUBHN2, //!< rsubhn2
299           ID_INS_SABAL2, //!< sabal2
300           ID_INS_SABAL, //!< sabal
301           ID_INS_SABA, //!< saba
302           ID_INS_SABDL2, //!< sabdl2
303           ID_INS_SABDL, //!< sabdl
304           ID_INS_SABD, //!< sabd
305           ID_INS_SADALP, //!< sadalp
306           ID_INS_SADDLP, //!< saddlp
307           ID_INS_SADDLV, //!< saddlv
308           ID_INS_SADDL2, //!< saddl2
309           ID_INS_SADDL, //!< saddl
310           ID_INS_SADDW2, //!< saddw2
311           ID_INS_SADDW, //!< saddw
312           ID_INS_SBC, //!< sbc
313           ID_INS_SBFM, //!< sbfm
314           ID_INS_SCVTF, //!< scvtf
315           ID_INS_SDIV, //!< sdiv
316           ID_INS_SHA1C, //!< sha1c
317           ID_INS_SHA1H, //!< sha1h
318           ID_INS_SHA1M, //!< sha1m
319           ID_INS_SHA1P, //!< sha1p
320           ID_INS_SHA1SU0, //!< sha1su0
321           ID_INS_SHA1SU1, //!< sha1su1
322           ID_INS_SHA256H2, //!< sha256h2
323           ID_INS_SHA256H, //!< sha256h
324           ID_INS_SHA256SU0, //!< sha256su0
325           ID_INS_SHA256SU1, //!< sha256su1
326           ID_INS_SHADD, //!< shadd
327           ID_INS_SHLL2, //!< shll2
328           ID_INS_SHLL, //!< shll
329           ID_INS_SHL, //!< shl
330           ID_INS_SHRN2, //!< shrn2
331           ID_INS_SHRN, //!< shrn
332           ID_INS_SHSUB, //!< shsub
333           ID_INS_SLI, //!< sli
334           ID_INS_SMADDL, //!< smaddl
335           ID_INS_SMAXP, //!< smaxp
336           ID_INS_SMAXV, //!< smaxv
337           ID_INS_SMAX, //!< smax
338           ID_INS_SMC, //!< smc
339           ID_INS_SMINP, //!< sminp
340           ID_INS_SMINV, //!< sminv
341           ID_INS_SMIN, //!< smin
342           ID_INS_SMLAL2, //!< smlal2
343           ID_INS_SMLAL, //!< smlal
344           ID_INS_SMLSL2, //!< smlsl2
345           ID_INS_SMLSL, //!< smlsl
346           ID_INS_SMOV, //!< smov
347           ID_INS_SMSUBL, //!< smsubl
348           ID_INS_SMULH, //!< smulh
349           ID_INS_SMULL2, //!< smull2
350           ID_INS_SMULL, //!< smull
351           ID_INS_SQABS, //!< sqabs
352           ID_INS_SQADD, //!< sqadd
353           ID_INS_SQDMLAL, //!< sqdmlal
354           ID_INS_SQDMLAL2, //!< sqdmlal2
355           ID_INS_SQDMLSL, //!< sqdmlsl
356           ID_INS_SQDMLSL2, //!< sqdmlsl2
357           ID_INS_SQDMULH, //!< sqdmulh
358           ID_INS_SQDMULL, //!< sqdmull
359           ID_INS_SQDMULL2, //!< sqdmull2
360           ID_INS_SQNEG, //!< sqneg
361           ID_INS_SQRDMULH, //!< sqrdmulh
362           ID_INS_SQRSHL, //!< sqrshl
363           ID_INS_SQRSHRN, //!< sqrshrn
364           ID_INS_SQRSHRN2, //!< sqrshrn2
365           ID_INS_SQRSHRUN, //!< sqrshrun
366           ID_INS_SQRSHRUN2, //!< sqrshrun2
367           ID_INS_SQSHLU, //!< sqshlu
368           ID_INS_SQSHL, //!< sqshl
369           ID_INS_SQSHRN, //!< sqshrn
370           ID_INS_SQSHRN2, //!< sqshrn2
371           ID_INS_SQSHRUN, //!< sqshrun
372           ID_INS_SQSHRUN2, //!< sqshrun2
373           ID_INS_SQSUB, //!< sqsub
374           ID_INS_SQXTN2, //!< sqxtn2
375           ID_INS_SQXTN, //!< sqxtn
376           ID_INS_SQXTUN2, //!< sqxtun2
377           ID_INS_SQXTUN, //!< sqxtun
378           ID_INS_SRHADD, //!< srhadd
379           ID_INS_SRI, //!< sri
380           ID_INS_SRSHL, //!< srshl
381           ID_INS_SRSHR, //!< srshr
382           ID_INS_SRSRA, //!< srsra
383           ID_INS_SSHLL2, //!< sshll2
384           ID_INS_SSHLL, //!< sshll
385           ID_INS_SSHL, //!< sshl
386           ID_INS_SSHR, //!< sshr
387           ID_INS_SSRA, //!< ssra
388           ID_INS_SSUBL2, //!< ssubl2
389           ID_INS_SSUBL, //!< ssubl
390           ID_INS_SSUBW2, //!< ssubw2
391           ID_INS_SSUBW, //!< ssubw
392           ID_INS_ST1, //!< st1
393           ID_INS_ST2, //!< st2
394           ID_INS_ST3, //!< st3
395           ID_INS_ST4, //!< st4
396           ID_INS_STLRB, //!< stlrb
397           ID_INS_STLRH, //!< stlrh
398           ID_INS_STLR, //!< stlr
399           ID_INS_STLXP, //!< stlxp
400           ID_INS_STLXRB, //!< stlxrb
401           ID_INS_STLXRH, //!< stlxrh
402           ID_INS_STLXR, //!< stlxr
403           ID_INS_STNP, //!< stnp
404           ID_INS_STP, //!< stp
405           ID_INS_STRB, //!< strb
406           ID_INS_STR, //!< str
407           ID_INS_STRH, //!< strh
408           ID_INS_STTRB, //!< sttrb
409           ID_INS_STTRH, //!< sttrh
410           ID_INS_STTR, //!< sttr
411           ID_INS_STURB, //!< sturb
412           ID_INS_STUR, //!< stur
413           ID_INS_STURH, //!< sturh
414           ID_INS_STXP, //!< stxp
415           ID_INS_STXRB, //!< stxrb
416           ID_INS_STXRH, //!< stxrh
417           ID_INS_STXR, //!< stxr
418           ID_INS_SUBHN, //!< subhn
419           ID_INS_SUBHN2, //!< subhn2
420           ID_INS_SUB, //!< sub
421           ID_INS_SUQADD, //!< suqadd
422           ID_INS_SVC, //!< svc
423           ID_INS_SYSL, //!< sysl
424           ID_INS_SYS, //!< sys
425           ID_INS_TBL, //!< tbl
426           ID_INS_TBNZ, //!< tbnz
427           ID_INS_TBX, //!< tbx
428           ID_INS_TBZ, //!< tbz
429           ID_INS_TRN1, //!< trn1
430           ID_INS_TRN2, //!< trn2
431           ID_INS_UABAL2, //!< uabal2
432           ID_INS_UABAL, //!< uabal
433           ID_INS_UABA, //!< uaba
434           ID_INS_UABDL2, //!< uabdl2
435           ID_INS_UABDL, //!< uabdl
436           ID_INS_UABD, //!< uabd
437           ID_INS_UADALP, //!< uadalp
438           ID_INS_UADDLP, //!< uaddlp
439           ID_INS_UADDLV, //!< uaddlv
440           ID_INS_UADDL2, //!< uaddl2
441           ID_INS_UADDL, //!< uaddl
442           ID_INS_UADDW2, //!< uaddw2
443           ID_INS_UADDW, //!< uaddw
444           ID_INS_UBFM, //!< ubfm
445           ID_INS_UCVTF, //!< ucvtf
446           ID_INS_UDIV, //!< udiv
447           ID_INS_UHADD, //!< uhadd
448           ID_INS_UHSUB, //!< uhsub
449           ID_INS_UMADDL, //!< umaddl
450           ID_INS_UMAXP, //!< umaxp
451           ID_INS_UMAXV, //!< umaxv
452           ID_INS_UMAX, //!< umax
453           ID_INS_UMINP, //!< uminp
454           ID_INS_UMINV, //!< uminv
455           ID_INS_UMIN, //!< umin
456           ID_INS_UMLAL2, //!< umlal2
457           ID_INS_UMLAL, //!< umlal
458           ID_INS_UMLSL2, //!< umlsl2
459           ID_INS_UMLSL, //!< umlsl
460           ID_INS_UMOV, //!< umov
461           ID_INS_UMSUBL, //!< umsubl
462           ID_INS_UMULH, //!< umulh
463           ID_INS_UMULL2, //!< umull2
464           ID_INS_UMULL, //!< umull
465           ID_INS_UQADD, //!< uqadd
466           ID_INS_UQRSHL, //!< uqrshl
467           ID_INS_UQRSHRN, //!< uqrshrn
468           ID_INS_UQRSHRN2, //!< uqrshrn2
469           ID_INS_UQSHL, //!< uqshl
470           ID_INS_UQSHRN, //!< uqshrn
471           ID_INS_UQSHRN2, //!< uqshrn2
472           ID_INS_UQSUB, //!< uqsub
473           ID_INS_UQXTN2, //!< uqxtn2
474           ID_INS_UQXTN, //!< uqxtn
475           ID_INS_URECPE, //!< urecpe
476           ID_INS_URHADD, //!< urhadd
477           ID_INS_URSHL, //!< urshl
478           ID_INS_URSHR, //!< urshr
479           ID_INS_URSQRTE, //!< ursqrte
480           ID_INS_URSRA, //!< ursra
481           ID_INS_USHLL2, //!< ushll2
482           ID_INS_USHLL, //!< ushll
483           ID_INS_USHL, //!< ushl
484           ID_INS_USHR, //!< ushr
485           ID_INS_USQADD, //!< usqadd
486           ID_INS_USRA, //!< usra
487           ID_INS_USUBL2, //!< usubl2
488           ID_INS_USUBL, //!< usubl
489           ID_INS_USUBW2, //!< usubw2
490           ID_INS_USUBW, //!< usubw
491           ID_INS_UZP1, //!< uzp1
492           ID_INS_UZP2, //!< uzp2
493           ID_INS_XTN2, //!< xtn2
494           ID_INS_XTN, //!< xtn
495           ID_INS_ZIP1, //!< zip1
496           ID_INS_ZIP2, //!< zip2
497 
498           // Alias
499           ID_INS_MNEG, //!< mneg
500           ID_INS_UMNEGL, //!< umnegl
501           ID_INS_SMNEGL, //!< smnegl
502           ID_INS_NOP, //!< nop
503           ID_INS_YIELD, //!< yield
504           ID_INS_WFE, //!< wfe
505           ID_INS_WFI, //!< wfi
506           ID_INS_SEV, //!< sev
507           ID_INS_SEVL, //!< sevl
508           ID_INS_NGC, //!< ngc
509           ID_INS_SBFIZ, //!< sbfiz
510           ID_INS_UBFIZ, //!< ubfiz
511           ID_INS_SBFX, //!< sbfx
512           ID_INS_UBFX, //!< ubfx
513           ID_INS_BFI, //!< bfi
514           ID_INS_BFXIL, //!< bfxil
515           ID_INS_CMN, //!< cmn
516           ID_INS_MVN, //!< mvn
517           ID_INS_TST, //!< tst
518           ID_INS_CSET, //!< cset
519           ID_INS_CINC, //!< cinc
520           ID_INS_CSETM, //!< csetm
521           ID_INS_CINV, //!< cinv
522           ID_INS_CNEG, //!< cneg
523           ID_INS_SXTB, //!< sxtb
524           ID_INS_SXTH, //!< sxth
525           ID_INS_SXTW, //!< sxtw
526           ID_INS_CMP, //!< cmp
527           ID_INS_UXTB, //!< uxtb
528           ID_INS_UXTH, //!< uxth
529           ID_INS_UXTW, //!< uxtw
530           ID_INS_IC, //!< ic
531           ID_INS_DC, //!< dc
532           ID_INS_AT, //!< at
533           ID_INS_TLBI, //!< tlbi
534 
535           /* Must be the last item */
536           ID_INS_LAST_ITEM //!< must be the last item
537         };
538 
539       /*! @} End of aarch64 namespace */
540       };
541     /*! @} End of arm namespace */
542     };
543   /*! @} End of arch namespace */
544   };
545 /*! @} End of triton namespace */
546 };
547 
548 #endif /* TRITON_AARCH64SPECIFICATIONS_H */
549