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,295 @@
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: ./genreg /Users/ben/src/capstone/bindings/python/capstone/
8
+ # 2015-05-02T13:24:07+12:00
9
+
10
+ module Crabstone
11
+ module ARM64
12
+ REG_LOOKUP = {
13
+ 'INVALID' => 0,
14
+ 'X29' => 1,
15
+ 'X30' => 2,
16
+ 'NZCV' => 3,
17
+ 'SP' => 4,
18
+ 'WSP' => 5,
19
+ 'WZR' => 6,
20
+ 'XZR' => 7,
21
+ 'B0' => 8,
22
+ 'B1' => 9,
23
+ 'B2' => 10,
24
+ 'B3' => 11,
25
+ 'B4' => 12,
26
+ 'B5' => 13,
27
+ 'B6' => 14,
28
+ 'B7' => 15,
29
+ 'B8' => 16,
30
+ 'B9' => 17,
31
+ 'B10' => 18,
32
+ 'B11' => 19,
33
+ 'B12' => 20,
34
+ 'B13' => 21,
35
+ 'B14' => 22,
36
+ 'B15' => 23,
37
+ 'B16' => 24,
38
+ 'B17' => 25,
39
+ 'B18' => 26,
40
+ 'B19' => 27,
41
+ 'B20' => 28,
42
+ 'B21' => 29,
43
+ 'B22' => 30,
44
+ 'B23' => 31,
45
+ 'B24' => 32,
46
+ 'B25' => 33,
47
+ 'B26' => 34,
48
+ 'B27' => 35,
49
+ 'B28' => 36,
50
+ 'B29' => 37,
51
+ 'B30' => 38,
52
+ 'B31' => 39,
53
+ 'D0' => 40,
54
+ 'D1' => 41,
55
+ 'D2' => 42,
56
+ 'D3' => 43,
57
+ 'D4' => 44,
58
+ 'D5' => 45,
59
+ 'D6' => 46,
60
+ 'D7' => 47,
61
+ 'D8' => 48,
62
+ 'D9' => 49,
63
+ 'D10' => 50,
64
+ 'D11' => 51,
65
+ 'D12' => 52,
66
+ 'D13' => 53,
67
+ 'D14' => 54,
68
+ 'D15' => 55,
69
+ 'D16' => 56,
70
+ 'D17' => 57,
71
+ 'D18' => 58,
72
+ 'D19' => 59,
73
+ 'D20' => 60,
74
+ 'D21' => 61,
75
+ 'D22' => 62,
76
+ 'D23' => 63,
77
+ 'D24' => 64,
78
+ 'D25' => 65,
79
+ 'D26' => 66,
80
+ 'D27' => 67,
81
+ 'D28' => 68,
82
+ 'D29' => 69,
83
+ 'D30' => 70,
84
+ 'D31' => 71,
85
+ 'H0' => 72,
86
+ 'H1' => 73,
87
+ 'H2' => 74,
88
+ 'H3' => 75,
89
+ 'H4' => 76,
90
+ 'H5' => 77,
91
+ 'H6' => 78,
92
+ 'H7' => 79,
93
+ 'H8' => 80,
94
+ 'H9' => 81,
95
+ 'H10' => 82,
96
+ 'H11' => 83,
97
+ 'H12' => 84,
98
+ 'H13' => 85,
99
+ 'H14' => 86,
100
+ 'H15' => 87,
101
+ 'H16' => 88,
102
+ 'H17' => 89,
103
+ 'H18' => 90,
104
+ 'H19' => 91,
105
+ 'H20' => 92,
106
+ 'H21' => 93,
107
+ 'H22' => 94,
108
+ 'H23' => 95,
109
+ 'H24' => 96,
110
+ 'H25' => 97,
111
+ 'H26' => 98,
112
+ 'H27' => 99,
113
+ 'H28' => 100,
114
+ 'H29' => 101,
115
+ 'H30' => 102,
116
+ 'H31' => 103,
117
+ 'Q0' => 104,
118
+ 'Q1' => 105,
119
+ 'Q2' => 106,
120
+ 'Q3' => 107,
121
+ 'Q4' => 108,
122
+ 'Q5' => 109,
123
+ 'Q6' => 110,
124
+ 'Q7' => 111,
125
+ 'Q8' => 112,
126
+ 'Q9' => 113,
127
+ 'Q10' => 114,
128
+ 'Q11' => 115,
129
+ 'Q12' => 116,
130
+ 'Q13' => 117,
131
+ 'Q14' => 118,
132
+ 'Q15' => 119,
133
+ 'Q16' => 120,
134
+ 'Q17' => 121,
135
+ 'Q18' => 122,
136
+ 'Q19' => 123,
137
+ 'Q20' => 124,
138
+ 'Q21' => 125,
139
+ 'Q22' => 126,
140
+ 'Q23' => 127,
141
+ 'Q24' => 128,
142
+ 'Q25' => 129,
143
+ 'Q26' => 130,
144
+ 'Q27' => 131,
145
+ 'Q28' => 132,
146
+ 'Q29' => 133,
147
+ 'Q30' => 134,
148
+ 'Q31' => 135,
149
+ 'S0' => 136,
150
+ 'S1' => 137,
151
+ 'S2' => 138,
152
+ 'S3' => 139,
153
+ 'S4' => 140,
154
+ 'S5' => 141,
155
+ 'S6' => 142,
156
+ 'S7' => 143,
157
+ 'S8' => 144,
158
+ 'S9' => 145,
159
+ 'S10' => 146,
160
+ 'S11' => 147,
161
+ 'S12' => 148,
162
+ 'S13' => 149,
163
+ 'S14' => 150,
164
+ 'S15' => 151,
165
+ 'S16' => 152,
166
+ 'S17' => 153,
167
+ 'S18' => 154,
168
+ 'S19' => 155,
169
+ 'S20' => 156,
170
+ 'S21' => 157,
171
+ 'S22' => 158,
172
+ 'S23' => 159,
173
+ 'S24' => 160,
174
+ 'S25' => 161,
175
+ 'S26' => 162,
176
+ 'S27' => 163,
177
+ 'S28' => 164,
178
+ 'S29' => 165,
179
+ 'S30' => 166,
180
+ 'S31' => 167,
181
+ 'W0' => 168,
182
+ 'W1' => 169,
183
+ 'W2' => 170,
184
+ 'W3' => 171,
185
+ 'W4' => 172,
186
+ 'W5' => 173,
187
+ 'W6' => 174,
188
+ 'W7' => 175,
189
+ 'W8' => 176,
190
+ 'W9' => 177,
191
+ 'W10' => 178,
192
+ 'W11' => 179,
193
+ 'W12' => 180,
194
+ 'W13' => 181,
195
+ 'W14' => 182,
196
+ 'W15' => 183,
197
+ 'W16' => 184,
198
+ 'W17' => 185,
199
+ 'W18' => 186,
200
+ 'W19' => 187,
201
+ 'W20' => 188,
202
+ 'W21' => 189,
203
+ 'W22' => 190,
204
+ 'W23' => 191,
205
+ 'W24' => 192,
206
+ 'W25' => 193,
207
+ 'W26' => 194,
208
+ 'W27' => 195,
209
+ 'W28' => 196,
210
+ 'W29' => 197,
211
+ 'W30' => 198,
212
+ 'X0' => 199,
213
+ 'X1' => 200,
214
+ 'X2' => 201,
215
+ 'X3' => 202,
216
+ 'X4' => 203,
217
+ 'X5' => 204,
218
+ 'X6' => 205,
219
+ 'X7' => 206,
220
+ 'X8' => 207,
221
+ 'X9' => 208,
222
+ 'X10' => 209,
223
+ 'X11' => 210,
224
+ 'X12' => 211,
225
+ 'X13' => 212,
226
+ 'X14' => 213,
227
+ 'X15' => 214,
228
+ 'X16' => 215,
229
+ 'X17' => 216,
230
+ 'X18' => 217,
231
+ 'X19' => 218,
232
+ 'X20' => 219,
233
+ 'X21' => 220,
234
+ 'X22' => 221,
235
+ 'X23' => 222,
236
+ 'X24' => 223,
237
+ 'X25' => 224,
238
+ 'X26' => 225,
239
+ 'X27' => 226,
240
+ 'X28' => 227,
241
+ 'V0' => 228,
242
+ 'V1' => 229,
243
+ 'V2' => 230,
244
+ 'V3' => 231,
245
+ 'V4' => 232,
246
+ 'V5' => 233,
247
+ 'V6' => 234,
248
+ 'V7' => 235,
249
+ 'V8' => 236,
250
+ 'V9' => 237,
251
+ 'V10' => 238,
252
+ 'V11' => 239,
253
+ 'V12' => 240,
254
+ 'V13' => 241,
255
+ 'V14' => 242,
256
+ 'V15' => 243,
257
+ 'V16' => 244,
258
+ 'V17' => 245,
259
+ 'V18' => 246,
260
+ 'V19' => 247,
261
+ 'V20' => 248,
262
+ 'V21' => 249,
263
+ 'V22' => 250,
264
+ 'V23' => 251,
265
+ 'V24' => 252,
266
+ 'V25' => 253,
267
+ 'V26' => 254,
268
+ 'V27' => 255,
269
+ 'V28' => 256,
270
+ 'V29' => 257,
271
+ 'V30' => 258,
272
+ 'V31' => 259
273
+ }
274
+
275
+ ID_LOOKUP = REG_LOOKUP.invert
276
+
277
+ # alias registers
278
+ REG_LOOKUP['IP1'] = REG_LOOKUP['X16']
279
+ REG_LOOKUP['IP0'] = REG_LOOKUP['X17']
280
+ REG_LOOKUP['FP'] = REG_LOOKUP['X29']
281
+ REG_LOOKUP['LR'] = REG_LOOKUP['X30']
282
+
283
+ SYM_LOOKUP = Hash[REG_LOOKUP.map {|k,v| [k.downcase.to_sym,v]}]
284
+
285
+ def self.register reg
286
+ return reg if ID_LOOKUP[reg]
287
+ return SYM_LOOKUP[reg] if SYM_LOOKUP[reg]
288
+ if reg.respond_to? :upcase
289
+ return REG_LOOKUP[reg.upcase] || REG_LOOKUP['INVALID']
290
+ end
291
+ REG_LOOKUP['INVALID']
292
+ end
293
+
294
+ end
295
+ end
@@ -0,0 +1,777 @@
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 ARM
12
+
13
+ # ARM shift type
14
+
15
+ SFT_INVALID = 0
16
+ SFT_ASR = 1
17
+ SFT_LSL = 2
18
+ SFT_LSR = 3
19
+ SFT_ROR = 4
20
+ SFT_RRX = 5
21
+ SFT_ASR_REG = 6
22
+ SFT_LSL_REG = 7
23
+ SFT_LSR_REG = 8
24
+ SFT_ROR_REG = 9
25
+ SFT_RRX_REG = 10
26
+
27
+ # ARM condition code
28
+
29
+ CC_INVALID = 0
30
+ CC_EQ = 1
31
+ CC_NE = 2
32
+ CC_HS = 3
33
+ CC_LO = 4
34
+ CC_MI = 5
35
+ CC_PL = 6
36
+ CC_VS = 7
37
+ CC_VC = 8
38
+ CC_HI = 9
39
+ CC_LS = 10
40
+ CC_GE = 11
41
+ CC_LT = 12
42
+ CC_GT = 13
43
+ CC_LE = 14
44
+ CC_AL = 15
45
+
46
+ # Special registers for MSR
47
+
48
+ SYSREG_INVALID = 0
49
+ SYSREG_SPSR_C = 1
50
+ SYSREG_SPSR_X = 2
51
+ SYSREG_SPSR_S = 4
52
+ SYSREG_SPSR_F = 8
53
+ SYSREG_CPSR_C = 16
54
+ SYSREG_CPSR_X = 32
55
+ SYSREG_CPSR_S = 64
56
+ SYSREG_CPSR_F = 128
57
+ SYSREG_APSR = 256
58
+ SYSREG_APSR_G = 257
59
+ SYSREG_APSR_NZCVQ = 258
60
+ SYSREG_APSR_NZCVQG = 259
61
+ SYSREG_IAPSR = 260
62
+ SYSREG_IAPSR_G = 261
63
+ SYSREG_IAPSR_NZCVQG = 262
64
+ SYSREG_EAPSR = 263
65
+ SYSREG_EAPSR_G = 264
66
+ SYSREG_EAPSR_NZCVQG = 265
67
+ SYSREG_XPSR = 266
68
+ SYSREG_XPSR_G = 267
69
+ SYSREG_XPSR_NZCVQG = 268
70
+ SYSREG_IPSR = 269
71
+ SYSREG_EPSR = 270
72
+ SYSREG_IEPSR = 271
73
+ SYSREG_MSP = 272
74
+ SYSREG_PSP = 273
75
+ SYSREG_PRIMASK = 274
76
+ SYSREG_BASEPRI = 275
77
+ SYSREG_BASEPRI_MAX = 276
78
+ SYSREG_FAULTMASK = 277
79
+ SYSREG_CONTROL = 278
80
+
81
+ # The memory barrier constants map directly to the 4-bit encoding of
82
+ # the option field for Memory Barrier operations.
83
+
84
+ MB_INVALID = 0
85
+ MB_RESERVED_0 = 1
86
+ MB_OSHLD = 2
87
+ MB_OSHST = 3
88
+ MB_OSH = 4
89
+ MB_RESERVED_4 = 5
90
+ MB_NSHLD = 6
91
+ MB_NSHST = 7
92
+ MB_NSH = 8
93
+ MB_RESERVED_8 = 9
94
+ MB_ISHLD = 10
95
+ MB_ISHST = 11
96
+ MB_ISH = 12
97
+ MB_RESERVED_12 = 13
98
+ MB_LD = 14
99
+ MB_ST = 15
100
+ MB_SY = 16
101
+
102
+ # Operand type for instruction's operands
103
+
104
+ OP_INVALID = 0
105
+ OP_REG = 1
106
+ OP_IMM = 2
107
+ OP_MEM = 3
108
+ OP_FP = 4
109
+ OP_CIMM = 64
110
+ OP_PIMM = 65
111
+ OP_SETEND = 66
112
+ OP_SYSREG = 67
113
+
114
+ # Operand type for SETEND instruction
115
+
116
+ SETEND_INVALID = 0
117
+ SETEND_BE = 1
118
+ SETEND_LE = 2
119
+
120
+ CPSMODE_INVALID = 0
121
+ CPSMODE_IE = 2
122
+ CPSMODE_ID = 3
123
+
124
+ # Operand type for SETEND instruction
125
+
126
+ CPSFLAG_INVALID = 0
127
+ CPSFLAG_F = 1
128
+ CPSFLAG_I = 2
129
+ CPSFLAG_A = 4
130
+ CPSFLAG_NONE = 16
131
+
132
+ # Data type for elements of vector instructions.
133
+
134
+ VECTORDATA_INVALID = 0
135
+ VECTORDATA_I8 = 1
136
+ VECTORDATA_I16 = 2
137
+ VECTORDATA_I32 = 3
138
+ VECTORDATA_I64 = 4
139
+ VECTORDATA_S8 = 5
140
+ VECTORDATA_S16 = 6
141
+ VECTORDATA_S32 = 7
142
+ VECTORDATA_S64 = 8
143
+ VECTORDATA_U8 = 9
144
+ VECTORDATA_U16 = 10
145
+ VECTORDATA_U32 = 11
146
+ VECTORDATA_U64 = 12
147
+ VECTORDATA_P8 = 13
148
+ VECTORDATA_F32 = 14
149
+ VECTORDATA_F64 = 15
150
+ VECTORDATA_F16F64 = 16
151
+ VECTORDATA_F64F16 = 17
152
+ VECTORDATA_F32F16 = 18
153
+ VECTORDATA_F16F32 = 19
154
+ VECTORDATA_F64F32 = 20
155
+ VECTORDATA_F32F64 = 21
156
+ VECTORDATA_S32F32 = 22
157
+ VECTORDATA_U32F32 = 23
158
+ VECTORDATA_F32S32 = 24
159
+ VECTORDATA_F32U32 = 25
160
+ VECTORDATA_F64S16 = 26
161
+ VECTORDATA_F32S16 = 27
162
+ VECTORDATA_F64S32 = 28
163
+ VECTORDATA_S16F64 = 29
164
+ VECTORDATA_S16F32 = 30
165
+ VECTORDATA_S32F64 = 31
166
+ VECTORDATA_U16F64 = 32
167
+ VECTORDATA_U16F32 = 33
168
+ VECTORDATA_U32F64 = 34
169
+ VECTORDATA_F64U16 = 35
170
+ VECTORDATA_F32U16 = 36
171
+ VECTORDATA_F64U32 = 37
172
+
173
+ # ARM registers
174
+
175
+ REG_INVALID = 0
176
+ REG_APSR = 1
177
+ REG_APSR_NZCV = 2
178
+ REG_CPSR = 3
179
+ REG_FPEXC = 4
180
+ REG_FPINST = 5
181
+ REG_FPSCR = 6
182
+ REG_FPSCR_NZCV = 7
183
+ REG_FPSID = 8
184
+ REG_ITSTATE = 9
185
+ REG_LR = 10
186
+ REG_PC = 11
187
+ REG_SP = 12
188
+ REG_SPSR = 13
189
+ REG_D0 = 14
190
+ REG_D1 = 15
191
+ REG_D2 = 16
192
+ REG_D3 = 17
193
+ REG_D4 = 18
194
+ REG_D5 = 19
195
+ REG_D6 = 20
196
+ REG_D7 = 21
197
+ REG_D8 = 22
198
+ REG_D9 = 23
199
+ REG_D10 = 24
200
+ REG_D11 = 25
201
+ REG_D12 = 26
202
+ REG_D13 = 27
203
+ REG_D14 = 28
204
+ REG_D15 = 29
205
+ REG_D16 = 30
206
+ REG_D17 = 31
207
+ REG_D18 = 32
208
+ REG_D19 = 33
209
+ REG_D20 = 34
210
+ REG_D21 = 35
211
+ REG_D22 = 36
212
+ REG_D23 = 37
213
+ REG_D24 = 38
214
+ REG_D25 = 39
215
+ REG_D26 = 40
216
+ REG_D27 = 41
217
+ REG_D28 = 42
218
+ REG_D29 = 43
219
+ REG_D30 = 44
220
+ REG_D31 = 45
221
+ REG_FPINST2 = 46
222
+ REG_MVFR0 = 47
223
+ REG_MVFR1 = 48
224
+ REG_MVFR2 = 49
225
+ REG_Q0 = 50
226
+ REG_Q1 = 51
227
+ REG_Q2 = 52
228
+ REG_Q3 = 53
229
+ REG_Q4 = 54
230
+ REG_Q5 = 55
231
+ REG_Q6 = 56
232
+ REG_Q7 = 57
233
+ REG_Q8 = 58
234
+ REG_Q9 = 59
235
+ REG_Q10 = 60
236
+ REG_Q11 = 61
237
+ REG_Q12 = 62
238
+ REG_Q13 = 63
239
+ REG_Q14 = 64
240
+ REG_Q15 = 65
241
+ REG_R0 = 66
242
+ REG_R1 = 67
243
+ REG_R2 = 68
244
+ REG_R3 = 69
245
+ REG_R4 = 70
246
+ REG_R5 = 71
247
+ REG_R6 = 72
248
+ REG_R7 = 73
249
+ REG_R8 = 74
250
+ REG_R9 = 75
251
+ REG_R10 = 76
252
+ REG_R11 = 77
253
+ REG_R12 = 78
254
+ REG_S0 = 79
255
+ REG_S1 = 80
256
+ REG_S2 = 81
257
+ REG_S3 = 82
258
+ REG_S4 = 83
259
+ REG_S5 = 84
260
+ REG_S6 = 85
261
+ REG_S7 = 86
262
+ REG_S8 = 87
263
+ REG_S9 = 88
264
+ REG_S10 = 89
265
+ REG_S11 = 90
266
+ REG_S12 = 91
267
+ REG_S13 = 92
268
+ REG_S14 = 93
269
+ REG_S15 = 94
270
+ REG_S16 = 95
271
+ REG_S17 = 96
272
+ REG_S18 = 97
273
+ REG_S19 = 98
274
+ REG_S20 = 99
275
+ REG_S21 = 100
276
+ REG_S22 = 101
277
+ REG_S23 = 102
278
+ REG_S24 = 103
279
+ REG_S25 = 104
280
+ REG_S26 = 105
281
+ REG_S27 = 106
282
+ REG_S28 = 107
283
+ REG_S29 = 108
284
+ REG_S30 = 109
285
+ REG_S31 = 110
286
+ REG_ENDING = 111
287
+
288
+ # alias registers
289
+ REG_R13 = REG_SP
290
+ REG_R14 = REG_LR
291
+ REG_R15 = REG_PC
292
+ REG_SB = REG_R9
293
+ REG_SL = REG_R10
294
+ REG_FP = REG_R11
295
+ REG_IP = REG_R12
296
+
297
+ # ARM instruction
298
+
299
+ INS_INVALID = 0
300
+ INS_ADC = 1
301
+ INS_ADD = 2
302
+ INS_ADR = 3
303
+ INS_AESD = 4
304
+ INS_AESE = 5
305
+ INS_AESIMC = 6
306
+ INS_AESMC = 7
307
+ INS_AND = 8
308
+ INS_BFC = 9
309
+ INS_BFI = 10
310
+ INS_BIC = 11
311
+ INS_BKPT = 12
312
+ INS_BL = 13
313
+ INS_BLX = 14
314
+ INS_BX = 15
315
+ INS_BXJ = 16
316
+ INS_B = 17
317
+ INS_CDP = 18
318
+ INS_CDP2 = 19
319
+ INS_CLREX = 20
320
+ INS_CLZ = 21
321
+ INS_CMN = 22
322
+ INS_CMP = 23
323
+ INS_CPS = 24
324
+ INS_CRC32B = 25
325
+ INS_CRC32CB = 26
326
+ INS_CRC32CH = 27
327
+ INS_CRC32CW = 28
328
+ INS_CRC32H = 29
329
+ INS_CRC32W = 30
330
+ INS_DBG = 31
331
+ INS_DMB = 32
332
+ INS_DSB = 33
333
+ INS_EOR = 34
334
+ INS_VMOV = 35
335
+ INS_FLDMDBX = 36
336
+ INS_FLDMIAX = 37
337
+ INS_VMRS = 38
338
+ INS_FSTMDBX = 39
339
+ INS_FSTMIAX = 40
340
+ INS_HINT = 41
341
+ INS_HLT = 42
342
+ INS_ISB = 43
343
+ INS_LDA = 44
344
+ INS_LDAB = 45
345
+ INS_LDAEX = 46
346
+ INS_LDAEXB = 47
347
+ INS_LDAEXD = 48
348
+ INS_LDAEXH = 49
349
+ INS_LDAH = 50
350
+ INS_LDC2L = 51
351
+ INS_LDC2 = 52
352
+ INS_LDCL = 53
353
+ INS_LDC = 54
354
+ INS_LDMDA = 55
355
+ INS_LDMDB = 56
356
+ INS_LDM = 57
357
+ INS_LDMIB = 58
358
+ INS_LDRBT = 59
359
+ INS_LDRB = 60
360
+ INS_LDRD = 61
361
+ INS_LDREX = 62
362
+ INS_LDREXB = 63
363
+ INS_LDREXD = 64
364
+ INS_LDREXH = 65
365
+ INS_LDRH = 66
366
+ INS_LDRHT = 67
367
+ INS_LDRSB = 68
368
+ INS_LDRSBT = 69
369
+ INS_LDRSH = 70
370
+ INS_LDRSHT = 71
371
+ INS_LDRT = 72
372
+ INS_LDR = 73
373
+ INS_MCR = 74
374
+ INS_MCR2 = 75
375
+ INS_MCRR = 76
376
+ INS_MCRR2 = 77
377
+ INS_MLA = 78
378
+ INS_MLS = 79
379
+ INS_MOV = 80
380
+ INS_MOVT = 81
381
+ INS_MOVW = 82
382
+ INS_MRC = 83
383
+ INS_MRC2 = 84
384
+ INS_MRRC = 85
385
+ INS_MRRC2 = 86
386
+ INS_MRS = 87
387
+ INS_MSR = 88
388
+ INS_MUL = 89
389
+ INS_MVN = 90
390
+ INS_ORR = 91
391
+ INS_PKHBT = 92
392
+ INS_PKHTB = 93
393
+ INS_PLDW = 94
394
+ INS_PLD = 95
395
+ INS_PLI = 96
396
+ INS_QADD = 97
397
+ INS_QADD16 = 98
398
+ INS_QADD8 = 99
399
+ INS_QASX = 100
400
+ INS_QDADD = 101
401
+ INS_QDSUB = 102
402
+ INS_QSAX = 103
403
+ INS_QSUB = 104
404
+ INS_QSUB16 = 105
405
+ INS_QSUB8 = 106
406
+ INS_RBIT = 107
407
+ INS_REV = 108
408
+ INS_REV16 = 109
409
+ INS_REVSH = 110
410
+ INS_RFEDA = 111
411
+ INS_RFEDB = 112
412
+ INS_RFEIA = 113
413
+ INS_RFEIB = 114
414
+ INS_RSB = 115
415
+ INS_RSC = 116
416
+ INS_SADD16 = 117
417
+ INS_SADD8 = 118
418
+ INS_SASX = 119
419
+ INS_SBC = 120
420
+ INS_SBFX = 121
421
+ INS_SDIV = 122
422
+ INS_SEL = 123
423
+ INS_SETEND = 124
424
+ INS_SHA1C = 125
425
+ INS_SHA1H = 126
426
+ INS_SHA1M = 127
427
+ INS_SHA1P = 128
428
+ INS_SHA1SU0 = 129
429
+ INS_SHA1SU1 = 130
430
+ INS_SHA256H = 131
431
+ INS_SHA256H2 = 132
432
+ INS_SHA256SU0 = 133
433
+ INS_SHA256SU1 = 134
434
+ INS_SHADD16 = 135
435
+ INS_SHADD8 = 136
436
+ INS_SHASX = 137
437
+ INS_SHSAX = 138
438
+ INS_SHSUB16 = 139
439
+ INS_SHSUB8 = 140
440
+ INS_SMC = 141
441
+ INS_SMLABB = 142
442
+ INS_SMLABT = 143
443
+ INS_SMLAD = 144
444
+ INS_SMLADX = 145
445
+ INS_SMLAL = 146
446
+ INS_SMLALBB = 147
447
+ INS_SMLALBT = 148
448
+ INS_SMLALD = 149
449
+ INS_SMLALDX = 150
450
+ INS_SMLALTB = 151
451
+ INS_SMLALTT = 152
452
+ INS_SMLATB = 153
453
+ INS_SMLATT = 154
454
+ INS_SMLAWB = 155
455
+ INS_SMLAWT = 156
456
+ INS_SMLSD = 157
457
+ INS_SMLSDX = 158
458
+ INS_SMLSLD = 159
459
+ INS_SMLSLDX = 160
460
+ INS_SMMLA = 161
461
+ INS_SMMLAR = 162
462
+ INS_SMMLS = 163
463
+ INS_SMMLSR = 164
464
+ INS_SMMUL = 165
465
+ INS_SMMULR = 166
466
+ INS_SMUAD = 167
467
+ INS_SMUADX = 168
468
+ INS_SMULBB = 169
469
+ INS_SMULBT = 170
470
+ INS_SMULL = 171
471
+ INS_SMULTB = 172
472
+ INS_SMULTT = 173
473
+ INS_SMULWB = 174
474
+ INS_SMULWT = 175
475
+ INS_SMUSD = 176
476
+ INS_SMUSDX = 177
477
+ INS_SRSDA = 178
478
+ INS_SRSDB = 179
479
+ INS_SRSIA = 180
480
+ INS_SRSIB = 181
481
+ INS_SSAT = 182
482
+ INS_SSAT16 = 183
483
+ INS_SSAX = 184
484
+ INS_SSUB16 = 185
485
+ INS_SSUB8 = 186
486
+ INS_STC2L = 187
487
+ INS_STC2 = 188
488
+ INS_STCL = 189
489
+ INS_STC = 190
490
+ INS_STL = 191
491
+ INS_STLB = 192
492
+ INS_STLEX = 193
493
+ INS_STLEXB = 194
494
+ INS_STLEXD = 195
495
+ INS_STLEXH = 196
496
+ INS_STLH = 197
497
+ INS_STMDA = 198
498
+ INS_STMDB = 199
499
+ INS_STM = 200
500
+ INS_STMIB = 201
501
+ INS_STRBT = 202
502
+ INS_STRB = 203
503
+ INS_STRD = 204
504
+ INS_STREX = 205
505
+ INS_STREXB = 206
506
+ INS_STREXD = 207
507
+ INS_STREXH = 208
508
+ INS_STRH = 209
509
+ INS_STRHT = 210
510
+ INS_STRT = 211
511
+ INS_STR = 212
512
+ INS_SUB = 213
513
+ INS_SVC = 214
514
+ INS_SWP = 215
515
+ INS_SWPB = 216
516
+ INS_SXTAB = 217
517
+ INS_SXTAB16 = 218
518
+ INS_SXTAH = 219
519
+ INS_SXTB = 220
520
+ INS_SXTB16 = 221
521
+ INS_SXTH = 222
522
+ INS_TEQ = 223
523
+ INS_TRAP = 224
524
+ INS_TST = 225
525
+ INS_UADD16 = 226
526
+ INS_UADD8 = 227
527
+ INS_UASX = 228
528
+ INS_UBFX = 229
529
+ INS_UDF = 230
530
+ INS_UDIV = 231
531
+ INS_UHADD16 = 232
532
+ INS_UHADD8 = 233
533
+ INS_UHASX = 234
534
+ INS_UHSAX = 235
535
+ INS_UHSUB16 = 236
536
+ INS_UHSUB8 = 237
537
+ INS_UMAAL = 238
538
+ INS_UMLAL = 239
539
+ INS_UMULL = 240
540
+ INS_UQADD16 = 241
541
+ INS_UQADD8 = 242
542
+ INS_UQASX = 243
543
+ INS_UQSAX = 244
544
+ INS_UQSUB16 = 245
545
+ INS_UQSUB8 = 246
546
+ INS_USAD8 = 247
547
+ INS_USADA8 = 248
548
+ INS_USAT = 249
549
+ INS_USAT16 = 250
550
+ INS_USAX = 251
551
+ INS_USUB16 = 252
552
+ INS_USUB8 = 253
553
+ INS_UXTAB = 254
554
+ INS_UXTAB16 = 255
555
+ INS_UXTAH = 256
556
+ INS_UXTB = 257
557
+ INS_UXTB16 = 258
558
+ INS_UXTH = 259
559
+ INS_VABAL = 260
560
+ INS_VABA = 261
561
+ INS_VABDL = 262
562
+ INS_VABD = 263
563
+ INS_VABS = 264
564
+ INS_VACGE = 265
565
+ INS_VACGT = 266
566
+ INS_VADD = 267
567
+ INS_VADDHN = 268
568
+ INS_VADDL = 269
569
+ INS_VADDW = 270
570
+ INS_VAND = 271
571
+ INS_VBIC = 272
572
+ INS_VBIF = 273
573
+ INS_VBIT = 274
574
+ INS_VBSL = 275
575
+ INS_VCEQ = 276
576
+ INS_VCGE = 277
577
+ INS_VCGT = 278
578
+ INS_VCLE = 279
579
+ INS_VCLS = 280
580
+ INS_VCLT = 281
581
+ INS_VCLZ = 282
582
+ INS_VCMP = 283
583
+ INS_VCMPE = 284
584
+ INS_VCNT = 285
585
+ INS_VCVTA = 286
586
+ INS_VCVTB = 287
587
+ INS_VCVT = 288
588
+ INS_VCVTM = 289
589
+ INS_VCVTN = 290
590
+ INS_VCVTP = 291
591
+ INS_VCVTT = 292
592
+ INS_VDIV = 293
593
+ INS_VDUP = 294
594
+ INS_VEOR = 295
595
+ INS_VEXT = 296
596
+ INS_VFMA = 297
597
+ INS_VFMS = 298
598
+ INS_VFNMA = 299
599
+ INS_VFNMS = 300
600
+ INS_VHADD = 301
601
+ INS_VHSUB = 302
602
+ INS_VLD1 = 303
603
+ INS_VLD2 = 304
604
+ INS_VLD3 = 305
605
+ INS_VLD4 = 306
606
+ INS_VLDMDB = 307
607
+ INS_VLDMIA = 308
608
+ INS_VLDR = 309
609
+ INS_VMAXNM = 310
610
+ INS_VMAX = 311
611
+ INS_VMINNM = 312
612
+ INS_VMIN = 313
613
+ INS_VMLA = 314
614
+ INS_VMLAL = 315
615
+ INS_VMLS = 316
616
+ INS_VMLSL = 317
617
+ INS_VMOVL = 318
618
+ INS_VMOVN = 319
619
+ INS_VMSR = 320
620
+ INS_VMUL = 321
621
+ INS_VMULL = 322
622
+ INS_VMVN = 323
623
+ INS_VNEG = 324
624
+ INS_VNMLA = 325
625
+ INS_VNMLS = 326
626
+ INS_VNMUL = 327
627
+ INS_VORN = 328
628
+ INS_VORR = 329
629
+ INS_VPADAL = 330
630
+ INS_VPADDL = 331
631
+ INS_VPADD = 332
632
+ INS_VPMAX = 333
633
+ INS_VPMIN = 334
634
+ INS_VQABS = 335
635
+ INS_VQADD = 336
636
+ INS_VQDMLAL = 337
637
+ INS_VQDMLSL = 338
638
+ INS_VQDMULH = 339
639
+ INS_VQDMULL = 340
640
+ INS_VQMOVUN = 341
641
+ INS_VQMOVN = 342
642
+ INS_VQNEG = 343
643
+ INS_VQRDMULH = 344
644
+ INS_VQRSHL = 345
645
+ INS_VQRSHRN = 346
646
+ INS_VQRSHRUN = 347
647
+ INS_VQSHL = 348
648
+ INS_VQSHLU = 349
649
+ INS_VQSHRN = 350
650
+ INS_VQSHRUN = 351
651
+ INS_VQSUB = 352
652
+ INS_VRADDHN = 353
653
+ INS_VRECPE = 354
654
+ INS_VRECPS = 355
655
+ INS_VREV16 = 356
656
+ INS_VREV32 = 357
657
+ INS_VREV64 = 358
658
+ INS_VRHADD = 359
659
+ INS_VRINTA = 360
660
+ INS_VRINTM = 361
661
+ INS_VRINTN = 362
662
+ INS_VRINTP = 363
663
+ INS_VRINTR = 364
664
+ INS_VRINTX = 365
665
+ INS_VRINTZ = 366
666
+ INS_VRSHL = 367
667
+ INS_VRSHRN = 368
668
+ INS_VRSHR = 369
669
+ INS_VRSQRTE = 370
670
+ INS_VRSQRTS = 371
671
+ INS_VRSRA = 372
672
+ INS_VRSUBHN = 373
673
+ INS_VSELEQ = 374
674
+ INS_VSELGE = 375
675
+ INS_VSELGT = 376
676
+ INS_VSELVS = 377
677
+ INS_VSHLL = 378
678
+ INS_VSHL = 379
679
+ INS_VSHRN = 380
680
+ INS_VSHR = 381
681
+ INS_VSLI = 382
682
+ INS_VSQRT = 383
683
+ INS_VSRA = 384
684
+ INS_VSRI = 385
685
+ INS_VST1 = 386
686
+ INS_VST2 = 387
687
+ INS_VST3 = 388
688
+ INS_VST4 = 389
689
+ INS_VSTMDB = 390
690
+ INS_VSTMIA = 391
691
+ INS_VSTR = 392
692
+ INS_VSUB = 393
693
+ INS_VSUBHN = 394
694
+ INS_VSUBL = 395
695
+ INS_VSUBW = 396
696
+ INS_VSWP = 397
697
+ INS_VTBL = 398
698
+ INS_VTBX = 399
699
+ INS_VCVTR = 400
700
+ INS_VTRN = 401
701
+ INS_VTST = 402
702
+ INS_VUZP = 403
703
+ INS_VZIP = 404
704
+ INS_ADDW = 405
705
+ INS_ASR = 406
706
+ INS_DCPS1 = 407
707
+ INS_DCPS2 = 408
708
+ INS_DCPS3 = 409
709
+ INS_IT = 410
710
+ INS_LSL = 411
711
+ INS_LSR = 412
712
+ INS_ASRS = 413
713
+ INS_LSRS = 414
714
+ INS_ORN = 415
715
+ INS_ROR = 416
716
+ INS_RRX = 417
717
+ INS_SUBS = 418
718
+ INS_SUBW = 419
719
+ INS_TBB = 420
720
+ INS_TBH = 421
721
+ INS_CBNZ = 422
722
+ INS_CBZ = 423
723
+ INS_MOVS = 424
724
+ INS_POP = 425
725
+ INS_PUSH = 426
726
+ INS_NOP = 427
727
+ INS_YIELD = 428
728
+ INS_WFE = 429
729
+ INS_WFI = 430
730
+ INS_SEV = 431
731
+ INS_SEVL = 432
732
+ INS_VPUSH = 433
733
+ INS_VPOP = 434
734
+ INS_ENDING = 435
735
+
736
+ # Group of ARM instructions
737
+
738
+ GRP_INVALID = 0
739
+
740
+ # Generic groups
741
+ GRP_JUMP = 1
742
+
743
+ # Architecture-specific groups
744
+ GRP_CRYPTO = 128
745
+ GRP_DATABARRIER = 129
746
+ GRP_DIVIDE = 130
747
+ GRP_FPARMV8 = 131
748
+ GRP_MULTPRO = 132
749
+ GRP_NEON = 133
750
+ GRP_T2EXTRACTPACK = 134
751
+ GRP_THUMB2DSP = 135
752
+ GRP_TRUSTZONE = 136
753
+ GRP_V4T = 137
754
+ GRP_V5T = 138
755
+ GRP_V5TE = 139
756
+ GRP_V6 = 140
757
+ GRP_V6T2 = 141
758
+ GRP_V7 = 142
759
+ GRP_V8 = 143
760
+ GRP_VFP2 = 144
761
+ GRP_VFP3 = 145
762
+ GRP_VFP4 = 146
763
+ GRP_ARM = 147
764
+ GRP_MCLASS = 148
765
+ GRP_NOTMCLASS = 149
766
+ GRP_THUMB = 150
767
+ GRP_THUMB1ONLY = 151
768
+ GRP_THUMB2 = 152
769
+ GRP_PREV8 = 153
770
+ GRP_FPVMLX = 154
771
+ GRP_MULOPS = 155
772
+ GRP_CRC = 156
773
+ GRP_DPVFP = 157
774
+ GRP_V6M = 158
775
+ GRP_ENDING = 159
776
+ end
777
+ end