aarch64 1.0.1 → 2.0.0

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 (277) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/Rakefile +37 -0
  4. data/aarch64.gemspec +1 -0
  5. data/lib/aarch64/instructions/adc.rb +10 -10
  6. data/lib/aarch64/instructions/adcs.rb +10 -10
  7. data/lib/aarch64/instructions/add_addsub_ext.rb +14 -14
  8. data/lib/aarch64/instructions/add_addsub_imm.rb +12 -12
  9. data/lib/aarch64/instructions/add_addsub_shift.rb +14 -14
  10. data/lib/aarch64/instructions/addg.rb +10 -10
  11. data/lib/aarch64/instructions/adds_addsub_ext.rb +14 -14
  12. data/lib/aarch64/instructions/adds_addsub_imm.rb +12 -12
  13. data/lib/aarch64/instructions/adds_addsub_shift.rb +14 -14
  14. data/lib/aarch64/instructions/adr.rb +7 -7
  15. data/lib/aarch64/instructions/adrp.rb +7 -7
  16. data/lib/aarch64/instructions/and_log_imm.rb +14 -14
  17. data/lib/aarch64/instructions/and_log_shift.rb +14 -14
  18. data/lib/aarch64/instructions/ands_log_imm.rb +14 -14
  19. data/lib/aarch64/instructions/ands_log_shift.rb +14 -14
  20. data/lib/aarch64/instructions/asrv.rb +10 -10
  21. data/lib/aarch64/instructions/autda.rb +9 -12
  22. data/lib/aarch64/instructions/autdb.rb +9 -12
  23. data/lib/aarch64/instructions/autia.rb +9 -12
  24. data/lib/aarch64/instructions/autib.rb +9 -12
  25. data/lib/aarch64/instructions/axflag.rb +1 -1
  26. data/lib/aarch64/instructions/b_cond.rb +5 -5
  27. data/lib/aarch64/instructions/b_uncond.rb +3 -3
  28. data/lib/aarch64/instructions/bc_cond.rb +5 -5
  29. data/lib/aarch64/instructions/bfm.rb +13 -13
  30. data/lib/aarch64/instructions/bic_log_shift.rb +14 -14
  31. data/lib/aarch64/instructions/bics.rb +14 -14
  32. data/lib/aarch64/instructions/bl.rb +3 -3
  33. data/lib/aarch64/instructions/blr.rb +4 -4
  34. data/lib/aarch64/instructions/blra.rb +10 -10
  35. data/lib/aarch64/instructions/br.rb +4 -4
  36. data/lib/aarch64/instructions/bra.rb +10 -10
  37. data/lib/aarch64/instructions/brk.rb +3 -3
  38. data/lib/aarch64/instructions/bti.rb +3 -3
  39. data/lib/aarch64/instructions/cas.rb +14 -14
  40. data/lib/aarch64/instructions/casb.rb +12 -12
  41. data/lib/aarch64/instructions/cash.rb +12 -12
  42. data/lib/aarch64/instructions/casp.rb +14 -14
  43. data/lib/aarch64/instructions/cbnz.rb +7 -7
  44. data/lib/aarch64/instructions/cbz.rb +7 -7
  45. data/lib/aarch64/instructions/ccmn_imm.rb +12 -12
  46. data/lib/aarch64/instructions/ccmn_reg.rb +12 -12
  47. data/lib/aarch64/instructions/ccmp_imm.rb +12 -12
  48. data/lib/aarch64/instructions/ccmp_reg.rb +12 -12
  49. data/lib/aarch64/instructions/cfinv.rb +2 -9
  50. data/lib/aarch64/instructions/clrex.rb +3 -3
  51. data/lib/aarch64/instructions/cls_int.rb +8 -8
  52. data/lib/aarch64/instructions/clz_int.rb +8 -8
  53. data/lib/aarch64/instructions/crc32.rb +12 -12
  54. data/lib/aarch64/instructions/crc32c.rb +12 -12
  55. data/lib/aarch64/instructions/csdb.rb +1 -1
  56. data/lib/aarch64/instructions/csel.rb +12 -12
  57. data/lib/aarch64/instructions/csinc.rb +12 -12
  58. data/lib/aarch64/instructions/csinv.rb +12 -12
  59. data/lib/aarch64/instructions/csneg.rb +12 -12
  60. data/lib/aarch64/instructions/dcps.rb +5 -5
  61. data/lib/aarch64/instructions/dgh.rb +1 -1
  62. data/lib/aarch64/instructions/dmb.rb +3 -3
  63. data/lib/aarch64/instructions/drps.rb +2 -9
  64. data/lib/aarch64/instructions/dsb.rb +3 -3
  65. data/lib/aarch64/instructions/eon.rb +14 -14
  66. data/lib/aarch64/instructions/eor_log_imm.rb +14 -14
  67. data/lib/aarch64/instructions/eor_log_shift.rb +14 -14
  68. data/lib/aarch64/instructions/eret.rb +2 -9
  69. data/lib/aarch64/instructions/ereta.rb +3 -3
  70. data/lib/aarch64/instructions/esb.rb +1 -1
  71. data/lib/aarch64/instructions/extr.rb +13 -13
  72. data/lib/aarch64/instructions/gmi.rb +8 -8
  73. data/lib/aarch64/instructions/hint.rb +5 -5
  74. data/lib/aarch64/instructions/hlt.rb +3 -3
  75. data/lib/aarch64/instructions/hvc.rb +3 -3
  76. data/lib/aarch64/instructions/irg.rb +8 -8
  77. data/lib/aarch64/instructions/isb.rb +3 -3
  78. data/lib/aarch64/instructions/ld64b.rb +6 -6
  79. data/lib/aarch64/instructions/ldadd.rb +14 -14
  80. data/lib/aarch64/instructions/ldaddb.rb +12 -12
  81. data/lib/aarch64/instructions/ldaddh.rb +12 -12
  82. data/lib/aarch64/instructions/ldapr.rb +8 -8
  83. data/lib/aarch64/instructions/ldaprb.rb +6 -6
  84. data/lib/aarch64/instructions/ldaprh.rb +6 -6
  85. data/lib/aarch64/instructions/ldapur_gen.rb +12 -12
  86. data/lib/aarch64/instructions/ldar.rb +8 -8
  87. data/lib/aarch64/instructions/ldaxp.rb +10 -10
  88. data/lib/aarch64/instructions/ldaxr.rb +8 -8
  89. data/lib/aarch64/instructions/ldclr.rb +14 -14
  90. data/lib/aarch64/instructions/ldclrb.rb +14 -14
  91. data/lib/aarch64/instructions/ldeor.rb +14 -14
  92. data/lib/aarch64/instructions/ldg.rb +8 -8
  93. data/lib/aarch64/instructions/ldgm.rb +6 -6
  94. data/lib/aarch64/instructions/ldlar.rb +8 -8
  95. data/lib/aarch64/instructions/ldnp_gen.rb +12 -12
  96. data/lib/aarch64/instructions/ldp_gen.rb +14 -14
  97. data/lib/aarch64/instructions/ldpsw.rb +12 -12
  98. data/lib/aarch64/instructions/ldr_imm_gen.rb +12 -12
  99. data/lib/aarch64/instructions/ldr_imm_unsigned.rb +10 -10
  100. data/lib/aarch64/instructions/ldr_lit_gen.rb +7 -7
  101. data/lib/aarch64/instructions/ldr_reg_gen.rb +14 -14
  102. data/lib/aarch64/instructions/ldra.rb +14 -14
  103. data/lib/aarch64/instructions/ldrb_imm.rb +10 -10
  104. data/lib/aarch64/instructions/ldrb_reg.rb +12 -12
  105. data/lib/aarch64/instructions/ldrb_unsigned.rb +8 -8
  106. data/lib/aarch64/instructions/ldrh_imm.rb +10 -10
  107. data/lib/aarch64/instructions/ldrh_reg.rb +12 -12
  108. data/lib/aarch64/instructions/ldrh_unsigned.rb +8 -8
  109. data/lib/aarch64/instructions/ldrsb_imm.rb +12 -12
  110. data/lib/aarch64/instructions/ldrsb_reg.rb +14 -14
  111. data/lib/aarch64/instructions/ldrsb_unsigned.rb +10 -10
  112. data/lib/aarch64/instructions/ldrsh_imm.rb +12 -12
  113. data/lib/aarch64/instructions/ldrsh_reg.rb +14 -14
  114. data/lib/aarch64/instructions/ldrsh_unsigned.rb +10 -10
  115. data/lib/aarch64/instructions/ldrsw_imm.rb +10 -10
  116. data/lib/aarch64/instructions/ldrsw_lit.rb +5 -5
  117. data/lib/aarch64/instructions/ldrsw_reg.rb +12 -12
  118. data/lib/aarch64/instructions/ldrsw_unsigned.rb +8 -8
  119. data/lib/aarch64/instructions/ldset.rb +14 -14
  120. data/lib/aarch64/instructions/ldsetb.rb +12 -12
  121. data/lib/aarch64/instructions/ldseth.rb +12 -12
  122. data/lib/aarch64/instructions/ldsmax.rb +14 -14
  123. data/lib/aarch64/instructions/ldsmaxb.rb +12 -12
  124. data/lib/aarch64/instructions/ldsmaxh.rb +12 -12
  125. data/lib/aarch64/instructions/ldsmin.rb +14 -14
  126. data/lib/aarch64/instructions/ldsminb.rb +12 -12
  127. data/lib/aarch64/instructions/ldsminh.rb +12 -12
  128. data/lib/aarch64/instructions/ldtr.rb +10 -10
  129. data/lib/aarch64/instructions/ldtrb.rb +8 -8
  130. data/lib/aarch64/instructions/ldtrh.rb +8 -8
  131. data/lib/aarch64/instructions/ldtrsb.rb +10 -10
  132. data/lib/aarch64/instructions/ldtrsh.rb +10 -10
  133. data/lib/aarch64/instructions/ldtrsw.rb +8 -8
  134. data/lib/aarch64/instructions/ldumax.rb +14 -14
  135. data/lib/aarch64/instructions/ldumaxb.rb +12 -12
  136. data/lib/aarch64/instructions/ldumaxh.rb +12 -12
  137. data/lib/aarch64/instructions/ldumin.rb +14 -14
  138. data/lib/aarch64/instructions/lduminb.rb +12 -12
  139. data/lib/aarch64/instructions/lduminh.rb +12 -12
  140. data/lib/aarch64/instructions/ldur_gen.rb +10 -10
  141. data/lib/aarch64/instructions/ldursb.rb +10 -10
  142. data/lib/aarch64/instructions/ldursh.rb +10 -10
  143. data/lib/aarch64/instructions/ldursw.rb +8 -8
  144. data/lib/aarch64/instructions/ldxp.rb +10 -10
  145. data/lib/aarch64/instructions/ldxr.rb +8 -8
  146. data/lib/aarch64/instructions/lslv.rb +10 -10
  147. data/lib/aarch64/instructions/lsrv.rb +10 -10
  148. data/lib/aarch64/instructions/madd.rb +12 -12
  149. data/lib/aarch64/instructions/movk.rb +10 -10
  150. data/lib/aarch64/instructions/movn.rb +10 -10
  151. data/lib/aarch64/instructions/movz.rb +10 -10
  152. data/lib/aarch64/instructions/mrs.rb +14 -14
  153. data/lib/aarch64/instructions/msr_imm.rb +7 -7
  154. data/lib/aarch64/instructions/msr_reg.rb +14 -14
  155. data/lib/aarch64/instructions/msub.rb +12 -12
  156. data/lib/aarch64/instructions/nop.rb +1 -1
  157. data/lib/aarch64/instructions/orn_log_shift.rb +14 -14
  158. data/lib/aarch64/instructions/orr_log_imm.rb +14 -14
  159. data/lib/aarch64/instructions/orr_log_shift.rb +14 -14
  160. data/lib/aarch64/instructions/pacda.rb +8 -8
  161. data/lib/aarch64/instructions/pacdb.rb +8 -8
  162. data/lib/aarch64/instructions/pacga.rb +8 -8
  163. data/lib/aarch64/instructions/pacia.rb +8 -8
  164. data/lib/aarch64/instructions/pacia2.rb +5 -5
  165. data/lib/aarch64/instructions/pacib.rb +8 -8
  166. data/lib/aarch64/instructions/prfm_imm.rb +8 -8
  167. data/lib/aarch64/instructions/prfm_lit.rb +8 -8
  168. data/lib/aarch64/instructions/prfm_reg.rb +12 -12
  169. data/lib/aarch64/instructions/prfum.rb +8 -8
  170. data/lib/aarch64/instructions/psb.rb +2 -9
  171. data/lib/aarch64/instructions/rbit_int.rb +8 -8
  172. data/lib/aarch64/instructions/ret.rb +4 -4
  173. data/lib/aarch64/instructions/reta.rb +3 -3
  174. data/lib/aarch64/instructions/rev.rb +10 -10
  175. data/lib/aarch64/instructions/rmif.rb +8 -8
  176. data/lib/aarch64/instructions/rorv.rb +10 -10
  177. data/lib/aarch64/instructions/sb.rb +1 -1
  178. data/lib/aarch64/instructions/sbc.rb +10 -10
  179. data/lib/aarch64/instructions/sbcs.rb +10 -10
  180. data/lib/aarch64/instructions/sbfm.rb +13 -13
  181. data/lib/aarch64/instructions/sdiv.rb +10 -10
  182. data/lib/aarch64/instructions/setf.rb +6 -6
  183. data/lib/aarch64/instructions/sev.rb +1 -7
  184. data/lib/aarch64/instructions/sevl.rb +1 -1
  185. data/lib/aarch64/instructions/smaddl.rb +10 -10
  186. data/lib/aarch64/instructions/smc.rb +3 -3
  187. data/lib/aarch64/instructions/smsubl.rb +10 -10
  188. data/lib/aarch64/instructions/smulh.rb +8 -8
  189. data/lib/aarch64/instructions/st2g.rb +10 -10
  190. data/lib/aarch64/instructions/st64b.rb +6 -6
  191. data/lib/aarch64/instructions/st64bv.rb +8 -8
  192. data/lib/aarch64/instructions/st64bv0.rb +8 -8
  193. data/lib/aarch64/instructions/stg.rb +10 -10
  194. data/lib/aarch64/instructions/stgm.rb +6 -6
  195. data/lib/aarch64/instructions/stgp.rb +12 -12
  196. data/lib/aarch64/instructions/stllr.rb +8 -8
  197. data/lib/aarch64/instructions/stllrb.rb +6 -6
  198. data/lib/aarch64/instructions/stllrh.rb +6 -6
  199. data/lib/aarch64/instructions/stlr.rb +8 -8
  200. data/lib/aarch64/instructions/stlrb.rb +6 -6
  201. data/lib/aarch64/instructions/stlrh.rb +6 -6
  202. data/lib/aarch64/instructions/stlur_gen.rb +10 -10
  203. data/lib/aarch64/instructions/stlxp.rb +12 -12
  204. data/lib/aarch64/instructions/stlxr.rb +10 -10
  205. data/lib/aarch64/instructions/stlxrb.rb +8 -8
  206. data/lib/aarch64/instructions/stlxrh.rb +8 -8
  207. data/lib/aarch64/instructions/stnp_gen.rb +12 -12
  208. data/lib/aarch64/instructions/stp_gen.rb +14 -14
  209. data/lib/aarch64/instructions/str_imm_gen.rb +12 -12
  210. data/lib/aarch64/instructions/str_imm_unsigned.rb +10 -10
  211. data/lib/aarch64/instructions/str_reg_gen.rb +14 -14
  212. data/lib/aarch64/instructions/strb_imm.rb +10 -10
  213. data/lib/aarch64/instructions/strb_imm_unsigned.rb +8 -8
  214. data/lib/aarch64/instructions/strb_reg.rb +12 -12
  215. data/lib/aarch64/instructions/strh_imm.rb +10 -10
  216. data/lib/aarch64/instructions/strh_imm_unsigned.rb +8 -8
  217. data/lib/aarch64/instructions/strh_reg.rb +12 -12
  218. data/lib/aarch64/instructions/sttr.rb +10 -10
  219. data/lib/aarch64/instructions/stur_gen.rb +10 -10
  220. data/lib/aarch64/instructions/stxp.rb +12 -12
  221. data/lib/aarch64/instructions/stxr.rb +10 -10
  222. data/lib/aarch64/instructions/stxrb.rb +8 -8
  223. data/lib/aarch64/instructions/stxrh.rb +8 -8
  224. data/lib/aarch64/instructions/stz2g.rb +10 -10
  225. data/lib/aarch64/instructions/stzg.rb +10 -10
  226. data/lib/aarch64/instructions/stzgm.rb +6 -6
  227. data/lib/aarch64/instructions/sub_addsub_ext.rb +14 -14
  228. data/lib/aarch64/instructions/sub_addsub_imm.rb +12 -12
  229. data/lib/aarch64/instructions/sub_addsub_shift.rb +14 -14
  230. data/lib/aarch64/instructions/subg.rb +10 -10
  231. data/lib/aarch64/instructions/subp.rb +8 -8
  232. data/lib/aarch64/instructions/subps.rb +8 -8
  233. data/lib/aarch64/instructions/subs_addsub_ext.rb +14 -14
  234. data/lib/aarch64/instructions/subs_addsub_imm.rb +12 -12
  235. data/lib/aarch64/instructions/subs_addsub_shift.rb +14 -14
  236. data/lib/aarch64/instructions/svc.rb +3 -3
  237. data/lib/aarch64/instructions/swp.rb +14 -14
  238. data/lib/aarch64/instructions/swpb.rb +12 -12
  239. data/lib/aarch64/instructions/swph.rb +12 -12
  240. data/lib/aarch64/instructions/sys.rb +12 -12
  241. data/lib/aarch64/instructions/sysl.rb +12 -12
  242. data/lib/aarch64/instructions/tbnz.rb +9 -9
  243. data/lib/aarch64/instructions/tbz.rb +9 -9
  244. data/lib/aarch64/instructions/tsb.rb +1 -7
  245. data/lib/aarch64/instructions/ubfm.rb +13 -13
  246. data/lib/aarch64/instructions/udf_perm_undef.rb +3 -3
  247. data/lib/aarch64/instructions/udiv.rb +10 -10
  248. data/lib/aarch64/instructions/umaddl.rb +10 -10
  249. data/lib/aarch64/instructions/umsubl.rb +10 -10
  250. data/lib/aarch64/instructions/umulh.rb +8 -8
  251. data/lib/aarch64/instructions/wfe.rb +2 -9
  252. data/lib/aarch64/instructions/wfet.rb +4 -4
  253. data/lib/aarch64/instructions/wfi.rb +1 -1
  254. data/lib/aarch64/instructions/wfit.rb +4 -4
  255. data/lib/aarch64/instructions/xaflag.rb +1 -1
  256. data/lib/aarch64/instructions/xpac.rb +6 -6
  257. data/lib/aarch64/instructions/xpaclri.rb +1 -1
  258. data/lib/aarch64/instructions/yield.rb +2 -9
  259. data/lib/aarch64/instructions.rb +26 -8
  260. data/lib/aarch64/parser.rb +227 -0
  261. data/lib/aarch64/parser.tab.rb +6534 -0
  262. data/lib/aarch64/parser.y +1394 -0
  263. data/lib/aarch64/utils.rb +34 -0
  264. data/lib/aarch64/version.rb +1 -1
  265. data/lib/aarch64.rb +128 -58
  266. data/test/base_instructions_test.rb +34 -4
  267. data/test/helper.rb +48 -8
  268. data/test/parser_test.rb +1820 -0
  269. metadata +25 -14
  270. data/lib/aarch64/instructions/setgp.rb +0 -25
  271. data/lib/aarch64/instructions/setgpn.rb +0 -25
  272. data/lib/aarch64/instructions/setgpt.rb +0 -25
  273. data/lib/aarch64/instructions/setgptn.rb +0 -25
  274. data/lib/aarch64/instructions/setp.rb +0 -25
  275. data/lib/aarch64/instructions/setpn.rb +0 -25
  276. data/lib/aarch64/instructions/setpt.rb +0 -25
  277. data/lib/aarch64/instructions/setptn.rb +0 -25
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aarch64
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aaron Patterson
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-03 00:00:00.000000000 Z
11
+ date: 2022-08-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hatstone
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '13.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: racc
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1.6'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.6'
69
83
  description: Tired of writing Ruby in Ruby? Now you can write ARM64 assembly in Ruby!
70
84
  email: tenderlove@ruby-lang.org
71
85
  executables: []
@@ -259,14 +273,6 @@ files:
259
273
  - lib/aarch64/instructions/sbfm.rb
260
274
  - lib/aarch64/instructions/sdiv.rb
261
275
  - lib/aarch64/instructions/setf.rb
262
- - lib/aarch64/instructions/setgp.rb
263
- - lib/aarch64/instructions/setgpn.rb
264
- - lib/aarch64/instructions/setgpt.rb
265
- - lib/aarch64/instructions/setgptn.rb
266
- - lib/aarch64/instructions/setp.rb
267
- - lib/aarch64/instructions/setpn.rb
268
- - lib/aarch64/instructions/setpt.rb
269
- - lib/aarch64/instructions/setptn.rb
270
276
  - lib/aarch64/instructions/sev.rb
271
277
  - lib/aarch64/instructions/sevl.rb
272
278
  - lib/aarch64/instructions/smaddl.rb
@@ -343,6 +349,9 @@ files:
343
349
  - lib/aarch64/instructions/xpac.rb
344
350
  - lib/aarch64/instructions/xpaclri.rb
345
351
  - lib/aarch64/instructions/yield.rb
352
+ - lib/aarch64/parser.rb
353
+ - lib/aarch64/parser.tab.rb
354
+ - lib/aarch64/parser.y
346
355
  - lib/aarch64/system_registers/mrs_msr_64.rb
347
356
  - lib/aarch64/utils.rb
348
357
  - lib/aarch64/version.rb
@@ -351,11 +360,12 @@ files:
351
360
  - test/dsl_test.rb
352
361
  - test/helper.rb
353
362
  - test/not_supported_yet_test.rb
363
+ - test/parser_test.rb
354
364
  homepage: https://github.com/tenderlove/aarch64
355
365
  licenses:
356
366
  - Apache-2.0
357
367
  metadata: {}
358
- post_install_message:
368
+ post_install_message:
359
369
  rdoc_options: []
360
370
  require_paths:
361
371
  - lib
@@ -370,8 +380,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
370
380
  - !ruby/object:Gem::Version
371
381
  version: '0'
372
382
  requirements: []
373
- rubygems_version: 3.0.3.1
374
- signing_key:
383
+ rubygems_version: 3.4.0.dev
384
+ signing_key:
375
385
  specification_version: 4
376
386
  summary: Write ARM64 assembly in Ruby!
377
387
  test_files:
@@ -380,3 +390,4 @@ test_files:
380
390
  - test/dsl_test.rb
381
391
  - test/helper.rb
382
392
  - test/not_supported_yet_test.rb
393
+ - test/parser_test.rb
@@ -1,25 +0,0 @@
1
- module AArch64
2
- module Instructions
3
- # SETGP, SETGM, SETGE -- A64
4
- # Memory Set with tag setting
5
- # SETGE [<Xd>]!, <Xn>!, <Xs>
6
- # SETGM [<Xd>]!, <Xn>!, <Xs>
7
- # SETGP [<Xd>]!, <Xn>!, <Xs>
8
- class SETGP
9
- def encode
10
- raise NotImplementedError
11
- end
12
-
13
- private
14
-
15
- def SETGP sz, rs, rn, rd
16
- insn = 0b00_011_1_01_11_0_00000_xx00_01_00000_00000
17
- insn |= ((sz & 0x3) << 30)
18
- insn |= ((rs & 0x1f) << 16)
19
- insn |= ((rn & 0x1f) << 5)
20
- insn |= (rd & 0x1f)
21
- insn
22
- end
23
- end
24
- end
25
- end
@@ -1,25 +0,0 @@
1
- module AArch64
2
- module Instructions
3
- # SETGPN, SETGMN, SETGEN -- A64
4
- # Memory Set with tag setting, non-temporal
5
- # SETGEN [<Xd>]!, <Xn>!, <Xs>
6
- # SETGMN [<Xd>]!, <Xn>!, <Xs>
7
- # SETGPN [<Xd>]!, <Xn>!, <Xs>
8
- class SETGPN
9
- def encode
10
- raise NotImplementedError
11
- end
12
-
13
- private
14
-
15
- def SETGPN sz, rs, rn, rd
16
- insn = 0b00_011_1_01_11_0_00000_xx10_01_00000_00000
17
- insn |= ((sz & 0x3) << 30)
18
- insn |= ((rs & 0x1f) << 16)
19
- insn |= ((rn & 0x1f) << 5)
20
- insn |= (rd & 0x1f)
21
- insn
22
- end
23
- end
24
- end
25
- end
@@ -1,25 +0,0 @@
1
- module AArch64
2
- module Instructions
3
- # SETGPT, SETGMT, SETGET -- A64
4
- # Memory Set with tag setting, unprivileged
5
- # SETGET [<Xd>]!, <Xn>!, <Xs>
6
- # SETGMT [<Xd>]!, <Xn>!, <Xs>
7
- # SETGPT [<Xd>]!, <Xn>!, <Xs>
8
- class SETGPT
9
- def encode
10
- raise NotImplementedError
11
- end
12
-
13
- private
14
-
15
- def SETGPT sz, rs, rn, rd
16
- insn = 0b00_011_1_01_11_0_00000_xx01_01_00000_00000
17
- insn |= ((sz & 0x3) << 30)
18
- insn |= ((rs & 0x1f) << 16)
19
- insn |= ((rn & 0x1f) << 5)
20
- insn |= (rd & 0x1f)
21
- insn
22
- end
23
- end
24
- end
25
- end
@@ -1,25 +0,0 @@
1
- module AArch64
2
- module Instructions
3
- # SETGPTN, SETGMTN, SETGETN -- A64
4
- # Memory Set with tag setting, unprivileged and non-temporal
5
- # SETGETN [<Xd>]!, <Xn>!, <Xs>
6
- # SETGMTN [<Xd>]!, <Xn>!, <Xs>
7
- # SETGPTN [<Xd>]!, <Xn>!, <Xs>
8
- class SETGPTN
9
- def encode
10
- raise NotImplementedError
11
- end
12
-
13
- private
14
-
15
- def SETGPTN sz, rs, rn, rd
16
- insn = 0b00_011_1_01_11_0_00000_xx11_01_00000_00000
17
- insn |= ((sz & 0x3) << 30)
18
- insn |= ((rs & 0x1f) << 16)
19
- insn |= ((rn & 0x1f) << 5)
20
- insn |= (rd & 0x1f)
21
- insn
22
- end
23
- end
24
- end
25
- end
@@ -1,25 +0,0 @@
1
- module AArch64
2
- module Instructions
3
- # SETP, SETM, SETE -- A64
4
- # Memory Set
5
- # SETE [<Xd>]!, <Xn>!, <Xs>
6
- # SETM [<Xd>]!, <Xn>!, <Xs>
7
- # SETP [<Xd>]!, <Xn>!, <Xs>
8
- class SETP
9
- def encode
10
- raise NotImplementedError
11
- end
12
-
13
- private
14
-
15
- def SETP sz, rs, rn, rd
16
- insn = 0b00_011_0_01_11_0_00000_xx00_01_00000_00000
17
- insn |= ((sz & 0x3) << 30)
18
- insn |= ((rs & 0x1f) << 16)
19
- insn |= ((rn & 0x1f) << 5)
20
- insn |= (rd & 0x1f)
21
- insn
22
- end
23
- end
24
- end
25
- end
@@ -1,25 +0,0 @@
1
- module AArch64
2
- module Instructions
3
- # SETPN, SETMN, SETEN -- A64
4
- # Memory Set, non-temporal
5
- # SETEN [<Xd>]!, <Xn>!, <Xs>
6
- # SETMN [<Xd>]!, <Xn>!, <Xs>
7
- # SETPN [<Xd>]!, <Xn>!, <Xs>
8
- class SETPN
9
- def encode
10
- raise NotImplementedError
11
- end
12
-
13
- private
14
-
15
- def SETPN sz, rs, rn, rd
16
- insn = 0b00_011_0_01_11_0_00000_xx10_01_00000_00000
17
- insn |= ((sz & 0x3) << 30)
18
- insn |= ((rs & 0x1f) << 16)
19
- insn |= ((rn & 0x1f) << 5)
20
- insn |= (rd & 0x1f)
21
- insn
22
- end
23
- end
24
- end
25
- end
@@ -1,25 +0,0 @@
1
- module AArch64
2
- module Instructions
3
- # SETPT, SETMT, SETET -- A64
4
- # Memory Set, unprivileged
5
- # SETET [<Xd>]!, <Xn>!, <Xs>
6
- # SETMT [<Xd>]!, <Xn>!, <Xs>
7
- # SETPT [<Xd>]!, <Xn>!, <Xs>
8
- class SETPT
9
- def encode
10
- raise NotImplementedError
11
- end
12
-
13
- private
14
-
15
- def SETPT sz, rs, rn, rd
16
- insn = 0b00_011_0_01_11_0_00000_xx01_01_00000_00000
17
- insn |= ((sz & 0x3) << 30)
18
- insn |= ((rs & 0x1f) << 16)
19
- insn |= ((rn & 0x1f) << 5)
20
- insn |= (rd & 0x1f)
21
- insn
22
- end
23
- end
24
- end
25
- end
@@ -1,25 +0,0 @@
1
- module AArch64
2
- module Instructions
3
- # SETPTN, SETMTN, SETETN -- A64
4
- # Memory Set, unprivileged and non-temporal
5
- # SETETN [<Xd>]!, <Xn>!, <Xs>
6
- # SETMTN [<Xd>]!, <Xn>!, <Xs>
7
- # SETPTN [<Xd>]!, <Xn>!, <Xs>
8
- class SETPTN
9
- def encode
10
- raise NotImplementedError
11
- end
12
-
13
- private
14
-
15
- def SETPTN sz, rs, rn, rd
16
- insn = 0b00_011_0_01_11_0_00000_xx11_01_00000_00000
17
- insn |= ((sz & 0x3) << 30)
18
- insn |= ((rs & 0x1f) << 16)
19
- insn |= ((rn & 0x1f) << 5)
20
- insn |= (rd & 0x1f)
21
- insn
22
- end
23
- end
24
- end
25
- end