crabstone 3.0.3

Sign up to get free protection for your applications and to get access to all the features.
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