crabstone 3.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (302) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGES.md +61 -0
  3. data/LICENSE +25 -0
  4. data/MANIFEST +312 -0
  5. data/README.md +103 -0
  6. data/Rakefile +27 -0
  7. data/bin/genconst +66 -0
  8. data/bin/genreg +99 -0
  9. data/crabstone.gemspec +27 -0
  10. data/examples/hello_world.rb +43 -0
  11. data/lib/arch/arm.rb +128 -0
  12. data/lib/arch/arm64.rb +167 -0
  13. data/lib/arch/arm64_const.rb +1055 -0
  14. data/lib/arch/arm64_registers.rb +295 -0
  15. data/lib/arch/arm_const.rb +777 -0
  16. data/lib/arch/arm_registers.rb +149 -0
  17. data/lib/arch/mips.rb +78 -0
  18. data/lib/arch/mips_const.rb +850 -0
  19. data/lib/arch/mips_registers.rb +208 -0
  20. data/lib/arch/ppc.rb +90 -0
  21. data/lib/arch/ppc_const.rb +1181 -0
  22. data/lib/arch/ppc_registers.rb +209 -0
  23. data/lib/arch/sparc.rb +79 -0
  24. data/lib/arch/sparc_const.rb +461 -0
  25. data/lib/arch/sparc_registers.rb +121 -0
  26. data/lib/arch/systemz.rb +79 -0
  27. data/lib/arch/sysz_const.rb +779 -0
  28. data/lib/arch/sysz_registers.rb +66 -0
  29. data/lib/arch/x86.rb +107 -0
  30. data/lib/arch/x86_const.rb +1698 -0
  31. data/lib/arch/x86_registers.rb +265 -0
  32. data/lib/arch/xcore.rb +78 -0
  33. data/lib/arch/xcore_const.rb +185 -0
  34. data/lib/arch/xcore_registers.rb +57 -0
  35. data/lib/crabstone.rb +564 -0
  36. data/test/MC/AArch64/basic-a64-instructions.s.cs +2014 -0
  37. data/test/MC/AArch64/gicv3-regs.s.cs +111 -0
  38. data/test/MC/AArch64/neon-2velem.s.cs +113 -0
  39. data/test/MC/AArch64/neon-3vdiff.s.cs +143 -0
  40. data/test/MC/AArch64/neon-aba-abd.s.cs +28 -0
  41. data/test/MC/AArch64/neon-across.s.cs +40 -0
  42. data/test/MC/AArch64/neon-add-pairwise.s.cs +11 -0
  43. data/test/MC/AArch64/neon-add-sub-instructions.s.cs +21 -0
  44. data/test/MC/AArch64/neon-bitwise-instructions.s.cs +17 -0
  45. data/test/MC/AArch64/neon-compare-instructions.s.cs +136 -0
  46. data/test/MC/AArch64/neon-crypto.s.cs +15 -0
  47. data/test/MC/AArch64/neon-extract.s.cs +3 -0
  48. data/test/MC/AArch64/neon-facge-facgt.s.cs +13 -0
  49. data/test/MC/AArch64/neon-frsqrt-frecp.s.cs +7 -0
  50. data/test/MC/AArch64/neon-halving-add-sub.s.cs +25 -0
  51. data/test/MC/AArch64/neon-max-min-pairwise.s.cs +37 -0
  52. data/test/MC/AArch64/neon-max-min.s.cs +37 -0
  53. data/test/MC/AArch64/neon-mla-mls-instructions.s.cs +19 -0
  54. data/test/MC/AArch64/neon-mov.s.cs +74 -0
  55. data/test/MC/AArch64/neon-mul-div-instructions.s.cs +24 -0
  56. data/test/MC/AArch64/neon-perm.s.cs +43 -0
  57. data/test/MC/AArch64/neon-rounding-halving-add.s.cs +13 -0
  58. data/test/MC/AArch64/neon-rounding-shift.s.cs +15 -0
  59. data/test/MC/AArch64/neon-saturating-add-sub.s.cs +29 -0
  60. data/test/MC/AArch64/neon-saturating-rounding-shift.s.cs +15 -0
  61. data/test/MC/AArch64/neon-saturating-shift.s.cs +15 -0
  62. data/test/MC/AArch64/neon-scalar-abs.s.cs +8 -0
  63. data/test/MC/AArch64/neon-scalar-add-sub.s.cs +3 -0
  64. data/test/MC/AArch64/neon-scalar-by-elem-mla.s.cs +13 -0
  65. data/test/MC/AArch64/neon-scalar-by-elem-mul.s.cs +13 -0
  66. data/test/MC/AArch64/neon-scalar-by-elem-saturating-mla.s.cs +15 -0
  67. data/test/MC/AArch64/neon-scalar-by-elem-saturating-mul.s.cs +18 -0
  68. data/test/MC/AArch64/neon-scalar-compare.s.cs +12 -0
  69. data/test/MC/AArch64/neon-scalar-cvt.s.cs +34 -0
  70. data/test/MC/AArch64/neon-scalar-dup.s.cs +23 -0
  71. data/test/MC/AArch64/neon-scalar-extract-narrow.s.cs +10 -0
  72. data/test/MC/AArch64/neon-scalar-fp-compare.s.cs +21 -0
  73. data/test/MC/AArch64/neon-scalar-mul.s.cs +13 -0
  74. data/test/MC/AArch64/neon-scalar-neg.s.cs +6 -0
  75. data/test/MC/AArch64/neon-scalar-recip.s.cs +11 -0
  76. data/test/MC/AArch64/neon-scalar-reduce-pairwise.s.cs +3 -0
  77. data/test/MC/AArch64/neon-scalar-rounding-shift.s.cs +3 -0
  78. data/test/MC/AArch64/neon-scalar-saturating-add-sub.s.cs +25 -0
  79. data/test/MC/AArch64/neon-scalar-saturating-rounding-shift.s.cs +9 -0
  80. data/test/MC/AArch64/neon-scalar-saturating-shift.s.cs +9 -0
  81. data/test/MC/AArch64/neon-scalar-shift-imm.s.cs +42 -0
  82. data/test/MC/AArch64/neon-scalar-shift.s.cs +3 -0
  83. data/test/MC/AArch64/neon-shift-left-long.s.cs +13 -0
  84. data/test/MC/AArch64/neon-shift.s.cs +22 -0
  85. data/test/MC/AArch64/neon-simd-copy.s.cs +42 -0
  86. data/test/MC/AArch64/neon-simd-ldst-multi-elem.s.cs +197 -0
  87. data/test/MC/AArch64/neon-simd-ldst-one-elem.s.cs +129 -0
  88. data/test/MC/AArch64/neon-simd-misc.s.cs +213 -0
  89. data/test/MC/AArch64/neon-simd-post-ldst-multi-elem.s.cs +107 -0
  90. data/test/MC/AArch64/neon-simd-shift.s.cs +151 -0
  91. data/test/MC/AArch64/neon-tbl.s.cs +21 -0
  92. data/test/MC/AArch64/trace-regs.s.cs +383 -0
  93. data/test/MC/ARM/arm-aliases.s.cs +7 -0
  94. data/test/MC/ARM/arm-arithmetic-aliases.s.cs +50 -0
  95. data/test/MC/ARM/arm-it-block.s.cs +2 -0
  96. data/test/MC/ARM/arm-memory-instructions.s.cs +138 -0
  97. data/test/MC/ARM/arm-shift-encoding.s.cs +50 -0
  98. data/test/MC/ARM/arm-thumb-trustzone.s.cs +3 -0
  99. data/test/MC/ARM/arm-trustzone.s.cs +3 -0
  100. data/test/MC/ARM/arm_addrmode2.s.cs +15 -0
  101. data/test/MC/ARM/arm_addrmode3.s.cs +9 -0
  102. data/test/MC/ARM/arm_instructions.s.cs +25 -0
  103. data/test/MC/ARM/basic-arm-instructions-v8.s.cs +10 -0
  104. data/test/MC/ARM/basic-arm-instructions.s.cs +997 -0
  105. data/test/MC/ARM/basic-thumb-instructions.s.cs +130 -0
  106. data/test/MC/ARM/basic-thumb2-instructions-v8.s.cs +1 -0
  107. data/test/MC/ARM/basic-thumb2-instructions.s.cs +1242 -0
  108. data/test/MC/ARM/crc32-thumb.s.cs +7 -0
  109. data/test/MC/ARM/crc32.s.cs +7 -0
  110. data/test/MC/ARM/dot-req.s.cs +3 -0
  111. data/test/MC/ARM/fp-armv8.s.cs +52 -0
  112. data/test/MC/ARM/idiv-thumb.s.cs +3 -0
  113. data/test/MC/ARM/idiv.s.cs +3 -0
  114. data/test/MC/ARM/load-store-acquire-release-v8-thumb.s.cs +15 -0
  115. data/test/MC/ARM/load-store-acquire-release-v8.s.cs +15 -0
  116. data/test/MC/ARM/mode-switch.s.cs +7 -0
  117. data/test/MC/ARM/neon-abs-encoding.s.cs +15 -0
  118. data/test/MC/ARM/neon-absdiff-encoding.s.cs +39 -0
  119. data/test/MC/ARM/neon-add-encoding.s.cs +119 -0
  120. data/test/MC/ARM/neon-bitcount-encoding.s.cs +15 -0
  121. data/test/MC/ARM/neon-bitwise-encoding.s.cs +126 -0
  122. data/test/MC/ARM/neon-cmp-encoding.s.cs +88 -0
  123. data/test/MC/ARM/neon-convert-encoding.s.cs +27 -0
  124. data/test/MC/ARM/neon-crypto.s.cs +16 -0
  125. data/test/MC/ARM/neon-dup-encoding.s.cs +13 -0
  126. data/test/MC/ARM/neon-minmax-encoding.s.cs +57 -0
  127. data/test/MC/ARM/neon-mov-encoding.s.cs +76 -0
  128. data/test/MC/ARM/neon-mul-accum-encoding.s.cs +39 -0
  129. data/test/MC/ARM/neon-mul-encoding.s.cs +72 -0
  130. data/test/MC/ARM/neon-neg-encoding.s.cs +15 -0
  131. data/test/MC/ARM/neon-pairwise-encoding.s.cs +47 -0
  132. data/test/MC/ARM/neon-reciprocal-encoding.s.cs +13 -0
  133. data/test/MC/ARM/neon-reverse-encoding.s.cs +13 -0
  134. data/test/MC/ARM/neon-satshift-encoding.s.cs +75 -0
  135. data/test/MC/ARM/neon-shift-encoding.s.cs +238 -0
  136. data/test/MC/ARM/neon-shiftaccum-encoding.s.cs +97 -0
  137. data/test/MC/ARM/neon-shuffle-encoding.s.cs +59 -0
  138. data/test/MC/ARM/neon-sub-encoding.s.cs +82 -0
  139. data/test/MC/ARM/neon-table-encoding.s.cs +9 -0
  140. data/test/MC/ARM/neon-v8.s.cs +38 -0
  141. data/test/MC/ARM/neon-vld-encoding.s.cs +213 -0
  142. data/test/MC/ARM/neon-vst-encoding.s.cs +120 -0
  143. data/test/MC/ARM/neon-vswp.s.cs +3 -0
  144. data/test/MC/ARM/neont2-abs-encoding.s.cs +15 -0
  145. data/test/MC/ARM/neont2-absdiff-encoding.s.cs +39 -0
  146. data/test/MC/ARM/neont2-add-encoding.s.cs +65 -0
  147. data/test/MC/ARM/neont2-bitcount-encoding.s.cs +15 -0
  148. data/test/MC/ARM/neont2-bitwise-encoding.s.cs +15 -0
  149. data/test/MC/ARM/neont2-cmp-encoding.s.cs +17 -0
  150. data/test/MC/ARM/neont2-convert-encoding.s.cs +19 -0
  151. data/test/MC/ARM/neont2-dup-encoding.s.cs +19 -0
  152. data/test/MC/ARM/neont2-minmax-encoding.s.cs +57 -0
  153. data/test/MC/ARM/neont2-mov-encoding.s.cs +58 -0
  154. data/test/MC/ARM/neont2-mul-accum-encoding.s.cs +41 -0
  155. data/test/MC/ARM/neont2-mul-encoding.s.cs +31 -0
  156. data/test/MC/ARM/neont2-neg-encoding.s.cs +15 -0
  157. data/test/MC/ARM/neont2-pairwise-encoding.s.cs +43 -0
  158. data/test/MC/ARM/neont2-reciprocal-encoding.s.cs +13 -0
  159. data/test/MC/ARM/neont2-reverse-encoding.s.cs +13 -0
  160. data/test/MC/ARM/neont2-satshift-encoding.s.cs +75 -0
  161. data/test/MC/ARM/neont2-shift-encoding.s.cs +80 -0
  162. data/test/MC/ARM/neont2-shiftaccum-encoding.s.cs +97 -0
  163. data/test/MC/ARM/neont2-shuffle-encoding.s.cs +23 -0
  164. data/test/MC/ARM/neont2-sub-encoding.s.cs +23 -0
  165. data/test/MC/ARM/neont2-table-encoding.s.cs +9 -0
  166. data/test/MC/ARM/neont2-vld-encoding.s.cs +51 -0
  167. data/test/MC/ARM/neont2-vst-encoding.s.cs +48 -0
  168. data/test/MC/ARM/simple-fp-encoding.s.cs +157 -0
  169. data/test/MC/ARM/thumb-fp-armv8.s.cs +51 -0
  170. data/test/MC/ARM/thumb-hints.s.cs +12 -0
  171. data/test/MC/ARM/thumb-neon-crypto.s.cs +16 -0
  172. data/test/MC/ARM/thumb-neon-v8.s.cs +38 -0
  173. data/test/MC/ARM/thumb-shift-encoding.s.cs +19 -0
  174. data/test/MC/ARM/thumb.s.cs +19 -0
  175. data/test/MC/ARM/thumb2-b.w-encodingT4.s.cs +2 -0
  176. data/test/MC/ARM/thumb2-branches.s.cs +85 -0
  177. data/test/MC/ARM/thumb2-mclass.s.cs +41 -0
  178. data/test/MC/ARM/thumb2-narrow-dp.ll.cs +379 -0
  179. data/test/MC/ARM/thumb2-pldw.s.cs +2 -0
  180. data/test/MC/ARM/vfp4-thumb.s.cs +13 -0
  181. data/test/MC/ARM/vfp4.s.cs +13 -0
  182. data/test/MC/ARM/vpush-vpop-thumb.s.cs +9 -0
  183. data/test/MC/ARM/vpush-vpop.s.cs +9 -0
  184. data/test/MC/Mips/hilo-addressing.s.cs +4 -0
  185. data/test/MC/Mips/micromips-alu-instructions-EB.s.cs +33 -0
  186. data/test/MC/Mips/micromips-alu-instructions.s.cs +33 -0
  187. data/test/MC/Mips/micromips-branch-instructions-EB.s.cs +11 -0
  188. data/test/MC/Mips/micromips-branch-instructions.s.cs +11 -0
  189. data/test/MC/Mips/micromips-expansions.s.cs +20 -0
  190. data/test/MC/Mips/micromips-jump-instructions-EB.s.cs +5 -0
  191. data/test/MC/Mips/micromips-jump-instructions.s.cs +6 -0
  192. data/test/MC/Mips/micromips-loadstore-instructions-EB.s.cs +9 -0
  193. data/test/MC/Mips/micromips-loadstore-instructions.s.cs +9 -0
  194. data/test/MC/Mips/micromips-loadstore-unaligned-EB.s.cs +5 -0
  195. data/test/MC/Mips/micromips-loadstore-unaligned.s.cs +5 -0
  196. data/test/MC/Mips/micromips-movcond-instructions-EB.s.cs +5 -0
  197. data/test/MC/Mips/micromips-movcond-instructions.s.cs +5 -0
  198. data/test/MC/Mips/micromips-multiply-instructions-EB.s.cs +5 -0
  199. data/test/MC/Mips/micromips-multiply-instructions.s.cs +5 -0
  200. data/test/MC/Mips/micromips-shift-instructions-EB.s.cs +9 -0
  201. data/test/MC/Mips/micromips-shift-instructions.s.cs +9 -0
  202. data/test/MC/Mips/micromips-trap-instructions-EB.s.cs +13 -0
  203. data/test/MC/Mips/micromips-trap-instructions.s.cs +13 -0
  204. data/test/MC/Mips/mips-alu-instructions.s.cs +53 -0
  205. data/test/MC/Mips/mips-control-instructions-64.s.cs +33 -0
  206. data/test/MC/Mips/mips-control-instructions.s.cs +33 -0
  207. data/test/MC/Mips/mips-coprocessor-encodings.s.cs +17 -0
  208. data/test/MC/Mips/mips-dsp-instructions.s.cs +43 -0
  209. data/test/MC/Mips/mips-expansions.s.cs +20 -0
  210. data/test/MC/Mips/mips-fpu-instructions.s.cs +93 -0
  211. data/test/MC/Mips/mips-jump-instructions.s.cs +1 -0
  212. data/test/MC/Mips/mips-memory-instructions.s.cs +17 -0
  213. data/test/MC/Mips/mips-register-names.s.cs +33 -0
  214. data/test/MC/Mips/mips64-alu-instructions.s.cs +47 -0
  215. data/test/MC/Mips/mips64-instructions.s.cs +3 -0
  216. data/test/MC/Mips/mips64-register-names.s.cs +33 -0
  217. data/test/MC/Mips/mips_directives.s.cs +12 -0
  218. data/test/MC/Mips/nabi-regs.s.cs +12 -0
  219. data/test/MC/Mips/set-at-directive.s.cs +6 -0
  220. data/test/MC/Mips/test_2r.s.cs +16 -0
  221. data/test/MC/Mips/test_2rf.s.cs +33 -0
  222. data/test/MC/Mips/test_3r.s.cs +243 -0
  223. data/test/MC/Mips/test_3rf.s.cs +83 -0
  224. data/test/MC/Mips/test_bit.s.cs +49 -0
  225. data/test/MC/Mips/test_cbranch.s.cs +11 -0
  226. data/test/MC/Mips/test_ctrlregs.s.cs +33 -0
  227. data/test/MC/Mips/test_elm.s.cs +16 -0
  228. data/test/MC/Mips/test_elm_insert.s.cs +4 -0
  229. data/test/MC/Mips/test_elm_insve.s.cs +5 -0
  230. data/test/MC/Mips/test_i10.s.cs +5 -0
  231. data/test/MC/Mips/test_i5.s.cs +45 -0
  232. data/test/MC/Mips/test_i8.s.cs +11 -0
  233. data/test/MC/Mips/test_lsa.s.cs +5 -0
  234. data/test/MC/Mips/test_mi10.s.cs +24 -0
  235. data/test/MC/Mips/test_vec.s.cs +8 -0
  236. data/test/MC/PowerPC/ppc64-encoding-bookII.s.cs +25 -0
  237. data/test/MC/PowerPC/ppc64-encoding-bookIII.s.cs +35 -0
  238. data/test/MC/PowerPC/ppc64-encoding-ext.s.cs +535 -0
  239. data/test/MC/PowerPC/ppc64-encoding-fp.s.cs +110 -0
  240. data/test/MC/PowerPC/ppc64-encoding-vmx.s.cs +170 -0
  241. data/test/MC/PowerPC/ppc64-encoding.s.cs +202 -0
  242. data/test/MC/PowerPC/ppc64-operands.s.cs +32 -0
  243. data/test/MC/README +6 -0
  244. data/test/MC/Sparc/sparc-alu-instructions.s.cs +47 -0
  245. data/test/MC/Sparc/sparc-atomic-instructions.s.cs +7 -0
  246. data/test/MC/Sparc/sparc-ctrl-instructions.s.cs +11 -0
  247. data/test/MC/Sparc/sparc-fp-instructions.s.cs +59 -0
  248. data/test/MC/Sparc/sparc-mem-instructions.s.cs +25 -0
  249. data/test/MC/Sparc/sparc-vis.s.cs +2 -0
  250. data/test/MC/Sparc/sparc64-alu-instructions.s.cs +13 -0
  251. data/test/MC/Sparc/sparc64-ctrl-instructions.s.cs +102 -0
  252. data/test/MC/Sparc/sparcv8-instructions.s.cs +7 -0
  253. data/test/MC/Sparc/sparcv9-instructions.s.cs +1 -0
  254. data/test/MC/SystemZ/insn-good-z196.s.cs +589 -0
  255. data/test/MC/SystemZ/insn-good.s.cs +2265 -0
  256. data/test/MC/SystemZ/regs-good.s.cs +45 -0
  257. data/test/MC/X86/3DNow.s.cs +29 -0
  258. data/test/MC/X86/address-size.s.cs +5 -0
  259. data/test/MC/X86/avx512-encodings.s.cs +12 -0
  260. data/test/MC/X86/intel-syntax-encoding.s.cs +30 -0
  261. data/test/MC/X86/x86-32-avx.s.cs +833 -0
  262. data/test/MC/X86/x86-32-fma3.s.cs +169 -0
  263. data/test/MC/X86/x86-32-ms-inline-asm.s.cs +27 -0
  264. data/test/MC/X86/x86_64-avx-clmul-encoding.s.cs +11 -0
  265. data/test/MC/X86/x86_64-avx-encoding.s.cs +1058 -0
  266. data/test/MC/X86/x86_64-bmi-encoding.s.cs +51 -0
  267. data/test/MC/X86/x86_64-encoding.s.cs +59 -0
  268. data/test/MC/X86/x86_64-fma3-encoding.s.cs +169 -0
  269. data/test/MC/X86/x86_64-fma4-encoding.s.cs +98 -0
  270. data/test/MC/X86/x86_64-hle-encoding.s.cs +3 -0
  271. data/test/MC/X86/x86_64-imm-widths.s.cs +27 -0
  272. data/test/MC/X86/x86_64-rand-encoding.s.cs +13 -0
  273. data/test/MC/X86/x86_64-rtm-encoding.s.cs +4 -0
  274. data/test/MC/X86/x86_64-sse4a.s.cs +1 -0
  275. data/test/MC/X86/x86_64-tbm-encoding.s.cs +40 -0
  276. data/test/MC/X86/x86_64-xop-encoding.s.cs +152 -0
  277. data/test/README +6 -0
  278. data/test/test.rb +205 -0
  279. data/test/test.rb.SPEC +235 -0
  280. data/test/test_arm.rb +202 -0
  281. data/test/test_arm.rb.SPEC +275 -0
  282. data/test/test_arm64.rb +150 -0
  283. data/test/test_arm64.rb.SPEC +116 -0
  284. data/test/test_detail.rb +228 -0
  285. data/test/test_detail.rb.SPEC +322 -0
  286. data/test/test_exhaustive.rb +80 -0
  287. data/test/test_mips.rb +118 -0
  288. data/test/test_mips.rb.SPEC +91 -0
  289. data/test/test_ppc.rb +137 -0
  290. data/test/test_ppc.rb.SPEC +84 -0
  291. data/test/test_sanity.rb +83 -0
  292. data/test/test_skipdata.rb +111 -0
  293. data/test/test_skipdata.rb.SPEC +58 -0
  294. data/test/test_sparc.rb +113 -0
  295. data/test/test_sparc.rb.SPEC +116 -0
  296. data/test/test_sysz.rb +111 -0
  297. data/test/test_sysz.rb.SPEC +61 -0
  298. data/test/test_x86.rb +189 -0
  299. data/test/test_x86.rb.SPEC +579 -0
  300. data/test/test_xcore.rb +100 -0
  301. data/test/test_xcore.rb.SPEC +75 -0
  302. metadata +393 -0
@@ -0,0 +1,1055 @@
1
+ # Library by Nguyen Anh Quynh
2
+ # Original binding by Nguyen Anh Quynh and Tan Sheng Di
3
+ # Additional binding work by Ben Nagy
4
+ # (c) 2013 COSEINC. All Rights Reserved.
5
+
6
+ # THIS FILE WAS AUTO-GENERATED -- DO NOT EDIT!
7
+ # Command: ./genconst /Users/ben/src/capstone/bindings/python/capstone/
8
+ # 2015-05-02T13:24:01+12:00
9
+
10
+ module Crabstone
11
+ module ARM64
12
+
13
+ # ARM64 shift type
14
+
15
+ SFT_INVALID = 0
16
+ SFT_LSL = 1
17
+ SFT_MSL = 2
18
+ SFT_LSR = 3
19
+ SFT_ASR = 4
20
+ SFT_ROR = 5
21
+
22
+ # ARM64 extender type
23
+
24
+ EXT_INVALID = 0
25
+ EXT_UXTB = 1
26
+ EXT_UXTH = 2
27
+ EXT_UXTW = 3
28
+ EXT_UXTX = 4
29
+ EXT_SXTB = 5
30
+ EXT_SXTH = 6
31
+ EXT_SXTW = 7
32
+ EXT_SXTX = 8
33
+
34
+ # ARM64 condition code
35
+
36
+ CC_INVALID = 0
37
+ CC_EQ = 1
38
+ CC_NE = 2
39
+ CC_HS = 3
40
+ CC_LO = 4
41
+ CC_MI = 5
42
+ CC_PL = 6
43
+ CC_VS = 7
44
+ CC_VC = 8
45
+ CC_HI = 9
46
+ CC_LS = 10
47
+ CC_GE = 11
48
+ CC_LT = 12
49
+ CC_GT = 13
50
+ CC_LE = 14
51
+ CC_AL = 15
52
+ CC_NV = 16
53
+
54
+ # System registers
55
+
56
+ # System registers for MRS
57
+
58
+ SYSREG_INVALID = 0
59
+ SYSREG_MDCCSR_EL0 = 0x9808
60
+ SYSREG_DBGDTRRX_EL0 = 0x9828
61
+ SYSREG_MDRAR_EL1 = 0x8080
62
+ SYSREG_OSLSR_EL1 = 0x808c
63
+ SYSREG_DBGAUTHSTATUS_EL1 = 0x83f6
64
+ SYSREG_PMCEID0_EL0 = 0xdce6
65
+ SYSREG_PMCEID1_EL0 = 0xdce7
66
+ SYSREG_MIDR_EL1 = 0xc000
67
+ SYSREG_CCSIDR_EL1 = 0xc800
68
+ SYSREG_CLIDR_EL1 = 0xc801
69
+ SYSREG_CTR_EL0 = 0xd801
70
+ SYSREG_MPIDR_EL1 = 0xc005
71
+ SYSREG_REVIDR_EL1 = 0xc006
72
+ SYSREG_AIDR_EL1 = 0xc807
73
+ SYSREG_DCZID_EL0 = 0xd807
74
+ SYSREG_ID_PFR0_EL1 = 0xc008
75
+ SYSREG_ID_PFR1_EL1 = 0xc009
76
+ SYSREG_ID_DFR0_EL1 = 0xc00a
77
+ SYSREG_ID_AFR0_EL1 = 0xc00b
78
+ SYSREG_ID_MMFR0_EL1 = 0xc00c
79
+ SYSREG_ID_MMFR1_EL1 = 0xc00d
80
+ SYSREG_ID_MMFR2_EL1 = 0xc00e
81
+ SYSREG_ID_MMFR3_EL1 = 0xc00f
82
+ SYSREG_ID_ISAR0_EL1 = 0xc010
83
+ SYSREG_ID_ISAR1_EL1 = 0xc011
84
+ SYSREG_ID_ISAR2_EL1 = 0xc012
85
+ SYSREG_ID_ISAR3_EL1 = 0xc013
86
+ SYSREG_ID_ISAR4_EL1 = 0xc014
87
+ SYSREG_ID_ISAR5_EL1 = 0xc015
88
+ SYSREG_ID_A64PFR0_EL1 = 0xc020
89
+ SYSREG_ID_A64PFR1_EL1 = 0xc021
90
+ SYSREG_ID_A64DFR0_EL1 = 0xc028
91
+ SYSREG_ID_A64DFR1_EL1 = 0xc029
92
+ SYSREG_ID_A64AFR0_EL1 = 0xc02c
93
+ SYSREG_ID_A64AFR1_EL1 = 0xc02d
94
+ SYSREG_ID_A64ISAR0_EL1 = 0xc030
95
+ SYSREG_ID_A64ISAR1_EL1 = 0xc031
96
+ SYSREG_ID_A64MMFR0_EL1 = 0xc038
97
+ SYSREG_ID_A64MMFR1_EL1 = 0xc039
98
+ SYSREG_MVFR0_EL1 = 0xc018
99
+ SYSREG_MVFR1_EL1 = 0xc019
100
+ SYSREG_MVFR2_EL1 = 0xc01a
101
+ SYSREG_RVBAR_EL1 = 0xc601
102
+ SYSREG_RVBAR_EL2 = 0xe601
103
+ SYSREG_RVBAR_EL3 = 0xf601
104
+ SYSREG_ISR_EL1 = 0xc608
105
+ SYSREG_CNTPCT_EL0 = 0xdf01
106
+ SYSREG_CNTVCT_EL0 = 0xdf02
107
+ SYSREG_TRCSTATR = 0x8818
108
+ SYSREG_TRCIDR8 = 0x8806
109
+ SYSREG_TRCIDR9 = 0x880e
110
+ SYSREG_TRCIDR10 = 0x8816
111
+ SYSREG_TRCIDR11 = 0x881e
112
+ SYSREG_TRCIDR12 = 0x8826
113
+ SYSREG_TRCIDR13 = 0x882e
114
+ SYSREG_TRCIDR0 = 0x8847
115
+ SYSREG_TRCIDR1 = 0x884f
116
+ SYSREG_TRCIDR2 = 0x8857
117
+ SYSREG_TRCIDR3 = 0x885f
118
+ SYSREG_TRCIDR4 = 0x8867
119
+ SYSREG_TRCIDR5 = 0x886f
120
+ SYSREG_TRCIDR6 = 0x8877
121
+ SYSREG_TRCIDR7 = 0x887f
122
+ SYSREG_TRCOSLSR = 0x888c
123
+ SYSREG_TRCPDSR = 0x88ac
124
+ SYSREG_TRCDEVAFF0 = 0x8bd6
125
+ SYSREG_TRCDEVAFF1 = 0x8bde
126
+ SYSREG_TRCLSR = 0x8bee
127
+ SYSREG_TRCAUTHSTATUS = 0x8bf6
128
+ SYSREG_TRCDEVARCH = 0x8bfe
129
+ SYSREG_TRCDEVID = 0x8b97
130
+ SYSREG_TRCDEVTYPE = 0x8b9f
131
+ SYSREG_TRCPIDR4 = 0x8ba7
132
+ SYSREG_TRCPIDR5 = 0x8baf
133
+ SYSREG_TRCPIDR6 = 0x8bb7
134
+ SYSREG_TRCPIDR7 = 0x8bbf
135
+ SYSREG_TRCPIDR0 = 0x8bc7
136
+ SYSREG_TRCPIDR1 = 0x8bcf
137
+ SYSREG_TRCPIDR2 = 0x8bd7
138
+ SYSREG_TRCPIDR3 = 0x8bdf
139
+ SYSREG_TRCCIDR0 = 0x8be7
140
+ SYSREG_TRCCIDR1 = 0x8bef
141
+ SYSREG_TRCCIDR2 = 0x8bf7
142
+ SYSREG_TRCCIDR3 = 0x8bff
143
+ SYSREG_ICC_IAR1_EL1 = 0xc660
144
+ SYSREG_ICC_IAR0_EL1 = 0xc640
145
+ SYSREG_ICC_HPPIR1_EL1 = 0xc662
146
+ SYSREG_ICC_HPPIR0_EL1 = 0xc642
147
+ SYSREG_ICC_RPR_EL1 = 0xc65b
148
+ SYSREG_ICH_VTR_EL2 = 0xe659
149
+ SYSREG_ICH_EISR_EL2 = 0xe65b
150
+ SYSREG_ICH_ELSR_EL2 = 0xe65d
151
+
152
+ # System registers for MSR
153
+ SYSREG_DBGDTRTX_EL0 = 0x9828
154
+ SYSREG_OSLAR_EL1 = 0x8084
155
+ SYSREG_PMSWINC_EL0 = 0xdce4
156
+ SYSREG_TRCOSLAR = 0x8884
157
+ SYSREG_TRCLAR = 0x8be6
158
+ SYSREG_ICC_EOIR1_EL1 = 0xc661
159
+ SYSREG_ICC_EOIR0_EL1 = 0xc641
160
+ SYSREG_ICC_DIR_EL1 = 0xc659
161
+ SYSREG_ICC_SGI1R_EL1 = 0xc65d
162
+ SYSREG_ICC_ASGI1R_EL1 = 0xc65e
163
+ SYSREG_ICC_SGI0R_EL1 = 0xc65f
164
+
165
+ # System PState Field (MSR instruction)
166
+
167
+ PSTATE_INVALID = 0
168
+ PSTATE_SPSEL = 0x05
169
+ PSTATE_DAIFSET = 0x1e
170
+ PSTATE_DAIFCLR = 0x1f
171
+
172
+ # Vector arrangement specifier (for FloatingPoint/Advanced SIMD insn)
173
+
174
+ VAS_INVALID = 0
175
+ VAS_8B = 1
176
+ VAS_16B = 2
177
+ VAS_4H = 3
178
+ VAS_8H = 4
179
+ VAS_2S = 5
180
+ VAS_4S = 6
181
+ VAS_1D = 7
182
+ VAS_2D = 8
183
+ VAS_1Q = 9
184
+
185
+ # Vector element size specifier
186
+
187
+ VESS_INVALID = 0
188
+ VESS_B = 1
189
+ VESS_H = 2
190
+ VESS_S = 3
191
+ VESS_D = 4
192
+
193
+ # Memory barrier operands
194
+
195
+ BARRIER_INVALID = 0
196
+ BARRIER_OSHLD = 0x1
197
+ BARRIER_OSHST = 0x2
198
+ BARRIER_OSH = 0x3
199
+ BARRIER_NSHLD = 0x5
200
+ BARRIER_NSHST = 0x6
201
+ BARRIER_NSH = 0x7
202
+ BARRIER_ISHLD = 0x9
203
+ BARRIER_ISHST = 0xa
204
+ BARRIER_ISH = 0xb
205
+ BARRIER_LD = 0xd
206
+ BARRIER_ST = 0xe
207
+ BARRIER_SY = 0xf
208
+
209
+ # Operand type for instruction's operands
210
+
211
+ OP_INVALID = 0
212
+ OP_REG = 1
213
+ OP_IMM = 2
214
+ OP_MEM = 3
215
+ OP_FP = 4
216
+ OP_CIMM = 64
217
+ OP_REG_MRS = 65
218
+ OP_REG_MSR = 66
219
+ OP_PSTATE = 67
220
+ OP_SYS = 68
221
+ OP_PREFETCH = 69
222
+ OP_BARRIER = 70
223
+
224
+ # TLBI operations
225
+
226
+ TLBI_INVALID = 0
227
+ TLBI_VMALLE1IS = 1
228
+ TLBI_VAE1IS = 2
229
+ TLBI_ASIDE1IS = 3
230
+ TLBI_VAAE1IS = 4
231
+ TLBI_VALE1IS = 5
232
+ TLBI_VAALE1IS = 6
233
+ TLBI_ALLE2IS = 7
234
+ TLBI_VAE2IS = 8
235
+ TLBI_ALLE1IS = 9
236
+ TLBI_VALE2IS = 10
237
+ TLBI_VMALLS12E1IS = 11
238
+ TLBI_ALLE3IS = 12
239
+ TLBI_VAE3IS = 13
240
+ TLBI_VALE3IS = 14
241
+ TLBI_IPAS2E1IS = 15
242
+ TLBI_IPAS2LE1IS = 16
243
+ TLBI_IPAS2E1 = 17
244
+ TLBI_IPAS2LE1 = 18
245
+ TLBI_VMALLE1 = 19
246
+ TLBI_VAE1 = 20
247
+ TLBI_ASIDE1 = 21
248
+ TLBI_VAAE1 = 22
249
+ TLBI_VALE1 = 23
250
+ TLBI_VAALE1 = 24
251
+ TLBI_ALLE2 = 25
252
+ TLBI_VAE2 = 26
253
+ TLBI_ALLE1 = 27
254
+ TLBI_VALE2 = 28
255
+ TLBI_VMALLS12E1 = 29
256
+ TLBI_ALLE3 = 30
257
+ TLBI_VAE3 = 31
258
+ TLBI_VALE3 = 32
259
+
260
+ # AT operations
261
+ AT_S1E1R = 33
262
+ AT_S1E1W = 34
263
+ AT_S1E0R = 35
264
+ AT_S1E0W = 36
265
+ AT_S1E2R = 37
266
+ AT_S1E2W = 38
267
+ AT_S12E1R = 39
268
+ AT_S12E1W = 40
269
+ AT_S12E0R = 41
270
+ AT_S12E0W = 42
271
+ AT_S1E3R = 43
272
+ AT_S1E3W = 44
273
+
274
+ # DC operations
275
+
276
+ DC_INVALID = 0
277
+ DC_ZVA = 1
278
+ DC_IVAC = 2
279
+ DC_ISW = 3
280
+ DC_CVAC = 4
281
+ DC_CSW = 5
282
+ DC_CVAU = 6
283
+ DC_CIVAC = 7
284
+ DC_CISW = 8
285
+
286
+ # IC operations
287
+
288
+ IC_INVALID = 0
289
+ IC_IALLUIS = 1
290
+ IC_IALLU = 2
291
+ IC_IVAU = 3
292
+
293
+ # Prefetch operations (PRFM)
294
+
295
+ PRFM_INVALID = 0
296
+ PRFM_PLDL1KEEP = 0x00+1
297
+ PRFM_PLDL1STRM = 0x01+1
298
+ PRFM_PLDL2KEEP = 0x02+1
299
+ PRFM_PLDL2STRM = 0x03+1
300
+ PRFM_PLDL3KEEP = 0x04+1
301
+ PRFM_PLDL3STRM = 0x05+1
302
+ PRFM_PLIL1KEEP = 0x08+1
303
+ PRFM_PLIL1STRM = 0x09+1
304
+ PRFM_PLIL2KEEP = 0x0a+1
305
+ PRFM_PLIL2STRM = 0x0b+1
306
+ PRFM_PLIL3KEEP = 0x0c+1
307
+ PRFM_PLIL3STRM = 0x0d+1
308
+ PRFM_PSTL1KEEP = 0x10+1
309
+ PRFM_PSTL1STRM = 0x11+1
310
+ PRFM_PSTL2KEEP = 0x12+1
311
+ PRFM_PSTL2STRM = 0x13+1
312
+ PRFM_PSTL3KEEP = 0x14+1
313
+ PRFM_PSTL3STRM = 0x15+1
314
+
315
+ # ARM64 registers
316
+
317
+ REG_INVALID = 0
318
+ REG_X29 = 1
319
+ REG_X30 = 2
320
+ REG_NZCV = 3
321
+ REG_SP = 4
322
+ REG_WSP = 5
323
+ REG_WZR = 6
324
+ REG_XZR = 7
325
+ REG_B0 = 8
326
+ REG_B1 = 9
327
+ REG_B2 = 10
328
+ REG_B3 = 11
329
+ REG_B4 = 12
330
+ REG_B5 = 13
331
+ REG_B6 = 14
332
+ REG_B7 = 15
333
+ REG_B8 = 16
334
+ REG_B9 = 17
335
+ REG_B10 = 18
336
+ REG_B11 = 19
337
+ REG_B12 = 20
338
+ REG_B13 = 21
339
+ REG_B14 = 22
340
+ REG_B15 = 23
341
+ REG_B16 = 24
342
+ REG_B17 = 25
343
+ REG_B18 = 26
344
+ REG_B19 = 27
345
+ REG_B20 = 28
346
+ REG_B21 = 29
347
+ REG_B22 = 30
348
+ REG_B23 = 31
349
+ REG_B24 = 32
350
+ REG_B25 = 33
351
+ REG_B26 = 34
352
+ REG_B27 = 35
353
+ REG_B28 = 36
354
+ REG_B29 = 37
355
+ REG_B30 = 38
356
+ REG_B31 = 39
357
+ REG_D0 = 40
358
+ REG_D1 = 41
359
+ REG_D2 = 42
360
+ REG_D3 = 43
361
+ REG_D4 = 44
362
+ REG_D5 = 45
363
+ REG_D6 = 46
364
+ REG_D7 = 47
365
+ REG_D8 = 48
366
+ REG_D9 = 49
367
+ REG_D10 = 50
368
+ REG_D11 = 51
369
+ REG_D12 = 52
370
+ REG_D13 = 53
371
+ REG_D14 = 54
372
+ REG_D15 = 55
373
+ REG_D16 = 56
374
+ REG_D17 = 57
375
+ REG_D18 = 58
376
+ REG_D19 = 59
377
+ REG_D20 = 60
378
+ REG_D21 = 61
379
+ REG_D22 = 62
380
+ REG_D23 = 63
381
+ REG_D24 = 64
382
+ REG_D25 = 65
383
+ REG_D26 = 66
384
+ REG_D27 = 67
385
+ REG_D28 = 68
386
+ REG_D29 = 69
387
+ REG_D30 = 70
388
+ REG_D31 = 71
389
+ REG_H0 = 72
390
+ REG_H1 = 73
391
+ REG_H2 = 74
392
+ REG_H3 = 75
393
+ REG_H4 = 76
394
+ REG_H5 = 77
395
+ REG_H6 = 78
396
+ REG_H7 = 79
397
+ REG_H8 = 80
398
+ REG_H9 = 81
399
+ REG_H10 = 82
400
+ REG_H11 = 83
401
+ REG_H12 = 84
402
+ REG_H13 = 85
403
+ REG_H14 = 86
404
+ REG_H15 = 87
405
+ REG_H16 = 88
406
+ REG_H17 = 89
407
+ REG_H18 = 90
408
+ REG_H19 = 91
409
+ REG_H20 = 92
410
+ REG_H21 = 93
411
+ REG_H22 = 94
412
+ REG_H23 = 95
413
+ REG_H24 = 96
414
+ REG_H25 = 97
415
+ REG_H26 = 98
416
+ REG_H27 = 99
417
+ REG_H28 = 100
418
+ REG_H29 = 101
419
+ REG_H30 = 102
420
+ REG_H31 = 103
421
+ REG_Q0 = 104
422
+ REG_Q1 = 105
423
+ REG_Q2 = 106
424
+ REG_Q3 = 107
425
+ REG_Q4 = 108
426
+ REG_Q5 = 109
427
+ REG_Q6 = 110
428
+ REG_Q7 = 111
429
+ REG_Q8 = 112
430
+ REG_Q9 = 113
431
+ REG_Q10 = 114
432
+ REG_Q11 = 115
433
+ REG_Q12 = 116
434
+ REG_Q13 = 117
435
+ REG_Q14 = 118
436
+ REG_Q15 = 119
437
+ REG_Q16 = 120
438
+ REG_Q17 = 121
439
+ REG_Q18 = 122
440
+ REG_Q19 = 123
441
+ REG_Q20 = 124
442
+ REG_Q21 = 125
443
+ REG_Q22 = 126
444
+ REG_Q23 = 127
445
+ REG_Q24 = 128
446
+ REG_Q25 = 129
447
+ REG_Q26 = 130
448
+ REG_Q27 = 131
449
+ REG_Q28 = 132
450
+ REG_Q29 = 133
451
+ REG_Q30 = 134
452
+ REG_Q31 = 135
453
+ REG_S0 = 136
454
+ REG_S1 = 137
455
+ REG_S2 = 138
456
+ REG_S3 = 139
457
+ REG_S4 = 140
458
+ REG_S5 = 141
459
+ REG_S6 = 142
460
+ REG_S7 = 143
461
+ REG_S8 = 144
462
+ REG_S9 = 145
463
+ REG_S10 = 146
464
+ REG_S11 = 147
465
+ REG_S12 = 148
466
+ REG_S13 = 149
467
+ REG_S14 = 150
468
+ REG_S15 = 151
469
+ REG_S16 = 152
470
+ REG_S17 = 153
471
+ REG_S18 = 154
472
+ REG_S19 = 155
473
+ REG_S20 = 156
474
+ REG_S21 = 157
475
+ REG_S22 = 158
476
+ REG_S23 = 159
477
+ REG_S24 = 160
478
+ REG_S25 = 161
479
+ REG_S26 = 162
480
+ REG_S27 = 163
481
+ REG_S28 = 164
482
+ REG_S29 = 165
483
+ REG_S30 = 166
484
+ REG_S31 = 167
485
+ REG_W0 = 168
486
+ REG_W1 = 169
487
+ REG_W2 = 170
488
+ REG_W3 = 171
489
+ REG_W4 = 172
490
+ REG_W5 = 173
491
+ REG_W6 = 174
492
+ REG_W7 = 175
493
+ REG_W8 = 176
494
+ REG_W9 = 177
495
+ REG_W10 = 178
496
+ REG_W11 = 179
497
+ REG_W12 = 180
498
+ REG_W13 = 181
499
+ REG_W14 = 182
500
+ REG_W15 = 183
501
+ REG_W16 = 184
502
+ REG_W17 = 185
503
+ REG_W18 = 186
504
+ REG_W19 = 187
505
+ REG_W20 = 188
506
+ REG_W21 = 189
507
+ REG_W22 = 190
508
+ REG_W23 = 191
509
+ REG_W24 = 192
510
+ REG_W25 = 193
511
+ REG_W26 = 194
512
+ REG_W27 = 195
513
+ REG_W28 = 196
514
+ REG_W29 = 197
515
+ REG_W30 = 198
516
+ REG_X0 = 199
517
+ REG_X1 = 200
518
+ REG_X2 = 201
519
+ REG_X3 = 202
520
+ REG_X4 = 203
521
+ REG_X5 = 204
522
+ REG_X6 = 205
523
+ REG_X7 = 206
524
+ REG_X8 = 207
525
+ REG_X9 = 208
526
+ REG_X10 = 209
527
+ REG_X11 = 210
528
+ REG_X12 = 211
529
+ REG_X13 = 212
530
+ REG_X14 = 213
531
+ REG_X15 = 214
532
+ REG_X16 = 215
533
+ REG_X17 = 216
534
+ REG_X18 = 217
535
+ REG_X19 = 218
536
+ REG_X20 = 219
537
+ REG_X21 = 220
538
+ REG_X22 = 221
539
+ REG_X23 = 222
540
+ REG_X24 = 223
541
+ REG_X25 = 224
542
+ REG_X26 = 225
543
+ REG_X27 = 226
544
+ REG_X28 = 227
545
+ REG_V0 = 228
546
+ REG_V1 = 229
547
+ REG_V2 = 230
548
+ REG_V3 = 231
549
+ REG_V4 = 232
550
+ REG_V5 = 233
551
+ REG_V6 = 234
552
+ REG_V7 = 235
553
+ REG_V8 = 236
554
+ REG_V9 = 237
555
+ REG_V10 = 238
556
+ REG_V11 = 239
557
+ REG_V12 = 240
558
+ REG_V13 = 241
559
+ REG_V14 = 242
560
+ REG_V15 = 243
561
+ REG_V16 = 244
562
+ REG_V17 = 245
563
+ REG_V18 = 246
564
+ REG_V19 = 247
565
+ REG_V20 = 248
566
+ REG_V21 = 249
567
+ REG_V22 = 250
568
+ REG_V23 = 251
569
+ REG_V24 = 252
570
+ REG_V25 = 253
571
+ REG_V26 = 254
572
+ REG_V27 = 255
573
+ REG_V28 = 256
574
+ REG_V29 = 257
575
+ REG_V30 = 258
576
+ REG_V31 = 259
577
+ REG_ENDING = 260
578
+
579
+ # alias registers
580
+ REG_IP1 = REG_X16
581
+ REG_IP0 = REG_X17
582
+ REG_FP = REG_X29
583
+ REG_LR = REG_X30
584
+
585
+ # ARM64 instruction
586
+
587
+ INS_INVALID = 0
588
+ INS_ABS = 1
589
+ INS_ADC = 2
590
+ INS_ADDHN = 3
591
+ INS_ADDHN2 = 4
592
+ INS_ADDP = 5
593
+ INS_ADD = 6
594
+ INS_ADDV = 7
595
+ INS_ADR = 8
596
+ INS_ADRP = 9
597
+ INS_AESD = 10
598
+ INS_AESE = 11
599
+ INS_AESIMC = 12
600
+ INS_AESMC = 13
601
+ INS_AND = 14
602
+ INS_ASR = 15
603
+ INS_B = 16
604
+ INS_BFM = 17
605
+ INS_BIC = 18
606
+ INS_BIF = 19
607
+ INS_BIT = 20
608
+ INS_BL = 21
609
+ INS_BLR = 22
610
+ INS_BR = 23
611
+ INS_BRK = 24
612
+ INS_BSL = 25
613
+ INS_CBNZ = 26
614
+ INS_CBZ = 27
615
+ INS_CCMN = 28
616
+ INS_CCMP = 29
617
+ INS_CLREX = 30
618
+ INS_CLS = 31
619
+ INS_CLZ = 32
620
+ INS_CMEQ = 33
621
+ INS_CMGE = 34
622
+ INS_CMGT = 35
623
+ INS_CMHI = 36
624
+ INS_CMHS = 37
625
+ INS_CMLE = 38
626
+ INS_CMLT = 39
627
+ INS_CMTST = 40
628
+ INS_CNT = 41
629
+ INS_MOV = 42
630
+ INS_CRC32B = 43
631
+ INS_CRC32CB = 44
632
+ INS_CRC32CH = 45
633
+ INS_CRC32CW = 46
634
+ INS_CRC32CX = 47
635
+ INS_CRC32H = 48
636
+ INS_CRC32W = 49
637
+ INS_CRC32X = 50
638
+ INS_CSEL = 51
639
+ INS_CSINC = 52
640
+ INS_CSINV = 53
641
+ INS_CSNEG = 54
642
+ INS_DCPS1 = 55
643
+ INS_DCPS2 = 56
644
+ INS_DCPS3 = 57
645
+ INS_DMB = 58
646
+ INS_DRPS = 59
647
+ INS_DSB = 60
648
+ INS_DUP = 61
649
+ INS_EON = 62
650
+ INS_EOR = 63
651
+ INS_ERET = 64
652
+ INS_EXTR = 65
653
+ INS_EXT = 66
654
+ INS_FABD = 67
655
+ INS_FABS = 68
656
+ INS_FACGE = 69
657
+ INS_FACGT = 70
658
+ INS_FADD = 71
659
+ INS_FADDP = 72
660
+ INS_FCCMP = 73
661
+ INS_FCCMPE = 74
662
+ INS_FCMEQ = 75
663
+ INS_FCMGE = 76
664
+ INS_FCMGT = 77
665
+ INS_FCMLE = 78
666
+ INS_FCMLT = 79
667
+ INS_FCMP = 80
668
+ INS_FCMPE = 81
669
+ INS_FCSEL = 82
670
+ INS_FCVTAS = 83
671
+ INS_FCVTAU = 84
672
+ INS_FCVT = 85
673
+ INS_FCVTL = 86
674
+ INS_FCVTL2 = 87
675
+ INS_FCVTMS = 88
676
+ INS_FCVTMU = 89
677
+ INS_FCVTNS = 90
678
+ INS_FCVTNU = 91
679
+ INS_FCVTN = 92
680
+ INS_FCVTN2 = 93
681
+ INS_FCVTPS = 94
682
+ INS_FCVTPU = 95
683
+ INS_FCVTXN = 96
684
+ INS_FCVTXN2 = 97
685
+ INS_FCVTZS = 98
686
+ INS_FCVTZU = 99
687
+ INS_FDIV = 100
688
+ INS_FMADD = 101
689
+ INS_FMAX = 102
690
+ INS_FMAXNM = 103
691
+ INS_FMAXNMP = 104
692
+ INS_FMAXNMV = 105
693
+ INS_FMAXP = 106
694
+ INS_FMAXV = 107
695
+ INS_FMIN = 108
696
+ INS_FMINNM = 109
697
+ INS_FMINNMP = 110
698
+ INS_FMINNMV = 111
699
+ INS_FMINP = 112
700
+ INS_FMINV = 113
701
+ INS_FMLA = 114
702
+ INS_FMLS = 115
703
+ INS_FMOV = 116
704
+ INS_FMSUB = 117
705
+ INS_FMUL = 118
706
+ INS_FMULX = 119
707
+ INS_FNEG = 120
708
+ INS_FNMADD = 121
709
+ INS_FNMSUB = 122
710
+ INS_FNMUL = 123
711
+ INS_FRECPE = 124
712
+ INS_FRECPS = 125
713
+ INS_FRECPX = 126
714
+ INS_FRINTA = 127
715
+ INS_FRINTI = 128
716
+ INS_FRINTM = 129
717
+ INS_FRINTN = 130
718
+ INS_FRINTP = 131
719
+ INS_FRINTX = 132
720
+ INS_FRINTZ = 133
721
+ INS_FRSQRTE = 134
722
+ INS_FRSQRTS = 135
723
+ INS_FSQRT = 136
724
+ INS_FSUB = 137
725
+ INS_HINT = 138
726
+ INS_HLT = 139
727
+ INS_HVC = 140
728
+ INS_INS = 141
729
+ INS_ISB = 142
730
+ INS_LD1 = 143
731
+ INS_LD1R = 144
732
+ INS_LD2R = 145
733
+ INS_LD2 = 146
734
+ INS_LD3R = 147
735
+ INS_LD3 = 148
736
+ INS_LD4 = 149
737
+ INS_LD4R = 150
738
+ INS_LDARB = 151
739
+ INS_LDARH = 152
740
+ INS_LDAR = 153
741
+ INS_LDAXP = 154
742
+ INS_LDAXRB = 155
743
+ INS_LDAXRH = 156
744
+ INS_LDAXR = 157
745
+ INS_LDNP = 158
746
+ INS_LDP = 159
747
+ INS_LDPSW = 160
748
+ INS_LDRB = 161
749
+ INS_LDR = 162
750
+ INS_LDRH = 163
751
+ INS_LDRSB = 164
752
+ INS_LDRSH = 165
753
+ INS_LDRSW = 166
754
+ INS_LDTRB = 167
755
+ INS_LDTRH = 168
756
+ INS_LDTRSB = 169
757
+ INS_LDTRSH = 170
758
+ INS_LDTRSW = 171
759
+ INS_LDTR = 172
760
+ INS_LDURB = 173
761
+ INS_LDUR = 174
762
+ INS_LDURH = 175
763
+ INS_LDURSB = 176
764
+ INS_LDURSH = 177
765
+ INS_LDURSW = 178
766
+ INS_LDXP = 179
767
+ INS_LDXRB = 180
768
+ INS_LDXRH = 181
769
+ INS_LDXR = 182
770
+ INS_LSL = 183
771
+ INS_LSR = 184
772
+ INS_MADD = 185
773
+ INS_MLA = 186
774
+ INS_MLS = 187
775
+ INS_MOVI = 188
776
+ INS_MOVK = 189
777
+ INS_MOVN = 190
778
+ INS_MOVZ = 191
779
+ INS_MRS = 192
780
+ INS_MSR = 193
781
+ INS_MSUB = 194
782
+ INS_MUL = 195
783
+ INS_MVNI = 196
784
+ INS_NEG = 197
785
+ INS_NOT = 198
786
+ INS_ORN = 199
787
+ INS_ORR = 200
788
+ INS_PMULL2 = 201
789
+ INS_PMULL = 202
790
+ INS_PMUL = 203
791
+ INS_PRFM = 204
792
+ INS_PRFUM = 205
793
+ INS_RADDHN = 206
794
+ INS_RADDHN2 = 207
795
+ INS_RBIT = 208
796
+ INS_RET = 209
797
+ INS_REV16 = 210
798
+ INS_REV32 = 211
799
+ INS_REV64 = 212
800
+ INS_REV = 213
801
+ INS_ROR = 214
802
+ INS_RSHRN2 = 215
803
+ INS_RSHRN = 216
804
+ INS_RSUBHN = 217
805
+ INS_RSUBHN2 = 218
806
+ INS_SABAL2 = 219
807
+ INS_SABAL = 220
808
+ INS_SABA = 221
809
+ INS_SABDL2 = 222
810
+ INS_SABDL = 223
811
+ INS_SABD = 224
812
+ INS_SADALP = 225
813
+ INS_SADDLP = 226
814
+ INS_SADDLV = 227
815
+ INS_SADDL2 = 228
816
+ INS_SADDL = 229
817
+ INS_SADDW2 = 230
818
+ INS_SADDW = 231
819
+ INS_SBC = 232
820
+ INS_SBFM = 233
821
+ INS_SCVTF = 234
822
+ INS_SDIV = 235
823
+ INS_SHA1C = 236
824
+ INS_SHA1H = 237
825
+ INS_SHA1M = 238
826
+ INS_SHA1P = 239
827
+ INS_SHA1SU0 = 240
828
+ INS_SHA1SU1 = 241
829
+ INS_SHA256H2 = 242
830
+ INS_SHA256H = 243
831
+ INS_SHA256SU0 = 244
832
+ INS_SHA256SU1 = 245
833
+ INS_SHADD = 246
834
+ INS_SHLL2 = 247
835
+ INS_SHLL = 248
836
+ INS_SHL = 249
837
+ INS_SHRN2 = 250
838
+ INS_SHRN = 251
839
+ INS_SHSUB = 252
840
+ INS_SLI = 253
841
+ INS_SMADDL = 254
842
+ INS_SMAXP = 255
843
+ INS_SMAXV = 256
844
+ INS_SMAX = 257
845
+ INS_SMC = 258
846
+ INS_SMINP = 259
847
+ INS_SMINV = 260
848
+ INS_SMIN = 261
849
+ INS_SMLAL2 = 262
850
+ INS_SMLAL = 263
851
+ INS_SMLSL2 = 264
852
+ INS_SMLSL = 265
853
+ INS_SMOV = 266
854
+ INS_SMSUBL = 267
855
+ INS_SMULH = 268
856
+ INS_SMULL2 = 269
857
+ INS_SMULL = 270
858
+ INS_SQABS = 271
859
+ INS_SQADD = 272
860
+ INS_SQDMLAL = 273
861
+ INS_SQDMLAL2 = 274
862
+ INS_SQDMLSL = 275
863
+ INS_SQDMLSL2 = 276
864
+ INS_SQDMULH = 277
865
+ INS_SQDMULL = 278
866
+ INS_SQDMULL2 = 279
867
+ INS_SQNEG = 280
868
+ INS_SQRDMULH = 281
869
+ INS_SQRSHL = 282
870
+ INS_SQRSHRN = 283
871
+ INS_SQRSHRN2 = 284
872
+ INS_SQRSHRUN = 285
873
+ INS_SQRSHRUN2 = 286
874
+ INS_SQSHLU = 287
875
+ INS_SQSHL = 288
876
+ INS_SQSHRN = 289
877
+ INS_SQSHRN2 = 290
878
+ INS_SQSHRUN = 291
879
+ INS_SQSHRUN2 = 292
880
+ INS_SQSUB = 293
881
+ INS_SQXTN2 = 294
882
+ INS_SQXTN = 295
883
+ INS_SQXTUN2 = 296
884
+ INS_SQXTUN = 297
885
+ INS_SRHADD = 298
886
+ INS_SRI = 299
887
+ INS_SRSHL = 300
888
+ INS_SRSHR = 301
889
+ INS_SRSRA = 302
890
+ INS_SSHLL2 = 303
891
+ INS_SSHLL = 304
892
+ INS_SSHL = 305
893
+ INS_SSHR = 306
894
+ INS_SSRA = 307
895
+ INS_SSUBL2 = 308
896
+ INS_SSUBL = 309
897
+ INS_SSUBW2 = 310
898
+ INS_SSUBW = 311
899
+ INS_ST1 = 312
900
+ INS_ST2 = 313
901
+ INS_ST3 = 314
902
+ INS_ST4 = 315
903
+ INS_STLRB = 316
904
+ INS_STLRH = 317
905
+ INS_STLR = 318
906
+ INS_STLXP = 319
907
+ INS_STLXRB = 320
908
+ INS_STLXRH = 321
909
+ INS_STLXR = 322
910
+ INS_STNP = 323
911
+ INS_STP = 324
912
+ INS_STRB = 325
913
+ INS_STR = 326
914
+ INS_STRH = 327
915
+ INS_STTRB = 328
916
+ INS_STTRH = 329
917
+ INS_STTR = 330
918
+ INS_STURB = 331
919
+ INS_STUR = 332
920
+ INS_STURH = 333
921
+ INS_STXP = 334
922
+ INS_STXRB = 335
923
+ INS_STXRH = 336
924
+ INS_STXR = 337
925
+ INS_SUBHN = 338
926
+ INS_SUBHN2 = 339
927
+ INS_SUB = 340
928
+ INS_SUQADD = 341
929
+ INS_SVC = 342
930
+ INS_SYSL = 343
931
+ INS_SYS = 344
932
+ INS_TBL = 345
933
+ INS_TBNZ = 346
934
+ INS_TBX = 347
935
+ INS_TBZ = 348
936
+ INS_TRN1 = 349
937
+ INS_TRN2 = 350
938
+ INS_UABAL2 = 351
939
+ INS_UABAL = 352
940
+ INS_UABA = 353
941
+ INS_UABDL2 = 354
942
+ INS_UABDL = 355
943
+ INS_UABD = 356
944
+ INS_UADALP = 357
945
+ INS_UADDLP = 358
946
+ INS_UADDLV = 359
947
+ INS_UADDL2 = 360
948
+ INS_UADDL = 361
949
+ INS_UADDW2 = 362
950
+ INS_UADDW = 363
951
+ INS_UBFM = 364
952
+ INS_UCVTF = 365
953
+ INS_UDIV = 366
954
+ INS_UHADD = 367
955
+ INS_UHSUB = 368
956
+ INS_UMADDL = 369
957
+ INS_UMAXP = 370
958
+ INS_UMAXV = 371
959
+ INS_UMAX = 372
960
+ INS_UMINP = 373
961
+ INS_UMINV = 374
962
+ INS_UMIN = 375
963
+ INS_UMLAL2 = 376
964
+ INS_UMLAL = 377
965
+ INS_UMLSL2 = 378
966
+ INS_UMLSL = 379
967
+ INS_UMOV = 380
968
+ INS_UMSUBL = 381
969
+ INS_UMULH = 382
970
+ INS_UMULL2 = 383
971
+ INS_UMULL = 384
972
+ INS_UQADD = 385
973
+ INS_UQRSHL = 386
974
+ INS_UQRSHRN = 387
975
+ INS_UQRSHRN2 = 388
976
+ INS_UQSHL = 389
977
+ INS_UQSHRN = 390
978
+ INS_UQSHRN2 = 391
979
+ INS_UQSUB = 392
980
+ INS_UQXTN2 = 393
981
+ INS_UQXTN = 394
982
+ INS_URECPE = 395
983
+ INS_URHADD = 396
984
+ INS_URSHL = 397
985
+ INS_URSHR = 398
986
+ INS_URSQRTE = 399
987
+ INS_URSRA = 400
988
+ INS_USHLL2 = 401
989
+ INS_USHLL = 402
990
+ INS_USHL = 403
991
+ INS_USHR = 404
992
+ INS_USQADD = 405
993
+ INS_USRA = 406
994
+ INS_USUBL2 = 407
995
+ INS_USUBL = 408
996
+ INS_USUBW2 = 409
997
+ INS_USUBW = 410
998
+ INS_UZP1 = 411
999
+ INS_UZP2 = 412
1000
+ INS_XTN2 = 413
1001
+ INS_XTN = 414
1002
+ INS_ZIP1 = 415
1003
+ INS_ZIP2 = 416
1004
+ INS_MNEG = 417
1005
+ INS_UMNEGL = 418
1006
+ INS_SMNEGL = 419
1007
+ INS_NOP = 420
1008
+ INS_YIELD = 421
1009
+ INS_WFE = 422
1010
+ INS_WFI = 423
1011
+ INS_SEV = 424
1012
+ INS_SEVL = 425
1013
+ INS_NGC = 426
1014
+ INS_SBFIZ = 427
1015
+ INS_UBFIZ = 428
1016
+ INS_SBFX = 429
1017
+ INS_UBFX = 430
1018
+ INS_BFI = 431
1019
+ INS_BFXIL = 432
1020
+ INS_CMN = 433
1021
+ INS_MVN = 434
1022
+ INS_TST = 435
1023
+ INS_CSET = 436
1024
+ INS_CINC = 437
1025
+ INS_CSETM = 438
1026
+ INS_CINV = 439
1027
+ INS_CNEG = 440
1028
+ INS_SXTB = 441
1029
+ INS_SXTH = 442
1030
+ INS_SXTW = 443
1031
+ INS_CMP = 444
1032
+ INS_UXTB = 445
1033
+ INS_UXTH = 446
1034
+ INS_UXTW = 447
1035
+ INS_IC = 448
1036
+ INS_DC = 449
1037
+ INS_AT = 450
1038
+ INS_TLBI = 451
1039
+ INS_ENDING = 452
1040
+
1041
+ # Group of ARM64 instructions
1042
+
1043
+ GRP_INVALID = 0
1044
+
1045
+ # Generic groups
1046
+ GRP_JUMP = 1
1047
+
1048
+ # Architecture-specific groups
1049
+ GRP_CRYPTO = 128
1050
+ GRP_FPARMV8 = 129
1051
+ GRP_NEON = 130
1052
+ GRP_CRC = 131
1053
+ GRP_ENDING = 132
1054
+ end
1055
+ end