aarch64 2.0.0 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (266) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/lib/aarch64/instructions/adc.rb +1 -1
  4. data/lib/aarch64/instructions/adcs.rb +1 -1
  5. data/lib/aarch64/instructions/add_addsub_ext.rb +1 -1
  6. data/lib/aarch64/instructions/add_addsub_imm.rb +1 -1
  7. data/lib/aarch64/instructions/add_addsub_shift.rb +1 -1
  8. data/lib/aarch64/instructions/addg.rb +1 -1
  9. data/lib/aarch64/instructions/adds_addsub_ext.rb +1 -1
  10. data/lib/aarch64/instructions/adds_addsub_imm.rb +1 -1
  11. data/lib/aarch64/instructions/adds_addsub_shift.rb +1 -1
  12. data/lib/aarch64/instructions/adr.rb +7 -3
  13. data/lib/aarch64/instructions/adrp.rb +1 -1
  14. data/lib/aarch64/instructions/and_log_imm.rb +1 -1
  15. data/lib/aarch64/instructions/and_log_shift.rb +1 -1
  16. data/lib/aarch64/instructions/ands_log_imm.rb +1 -1
  17. data/lib/aarch64/instructions/ands_log_shift.rb +1 -1
  18. data/lib/aarch64/instructions/asrv.rb +1 -1
  19. data/lib/aarch64/instructions/autda.rb +1 -1
  20. data/lib/aarch64/instructions/autdb.rb +1 -1
  21. data/lib/aarch64/instructions/autia.rb +1 -1
  22. data/lib/aarch64/instructions/autib.rb +1 -1
  23. data/lib/aarch64/instructions/axflag.rb +1 -1
  24. data/lib/aarch64/instructions/b_cond.rb +2 -2
  25. data/lib/aarch64/instructions/b_uncond.rb +2 -2
  26. data/lib/aarch64/instructions/bc_cond.rb +2 -2
  27. data/lib/aarch64/instructions/bfm.rb +1 -1
  28. data/lib/aarch64/instructions/bic_log_shift.rb +1 -1
  29. data/lib/aarch64/instructions/bics.rb +1 -1
  30. data/lib/aarch64/instructions/bl.rb +2 -2
  31. data/lib/aarch64/instructions/blr.rb +1 -1
  32. data/lib/aarch64/instructions/blra.rb +1 -1
  33. data/lib/aarch64/instructions/br.rb +1 -1
  34. data/lib/aarch64/instructions/bra.rb +1 -1
  35. data/lib/aarch64/instructions/brk.rb +1 -1
  36. data/lib/aarch64/instructions/bti.rb +1 -1
  37. data/lib/aarch64/instructions/cas.rb +1 -1
  38. data/lib/aarch64/instructions/casb.rb +1 -1
  39. data/lib/aarch64/instructions/cash.rb +1 -1
  40. data/lib/aarch64/instructions/casp.rb +1 -1
  41. data/lib/aarch64/instructions/cbnz.rb +2 -2
  42. data/lib/aarch64/instructions/cbz.rb +2 -2
  43. data/lib/aarch64/instructions/ccmn_imm.rb +1 -1
  44. data/lib/aarch64/instructions/ccmn_reg.rb +1 -1
  45. data/lib/aarch64/instructions/ccmp_imm.rb +1 -1
  46. data/lib/aarch64/instructions/ccmp_reg.rb +1 -1
  47. data/lib/aarch64/instructions/cfinv.rb +1 -1
  48. data/lib/aarch64/instructions/clrex.rb +1 -1
  49. data/lib/aarch64/instructions/cls_int.rb +1 -1
  50. data/lib/aarch64/instructions/clz_int.rb +1 -1
  51. data/lib/aarch64/instructions/crc32.rb +1 -1
  52. data/lib/aarch64/instructions/crc32c.rb +1 -1
  53. data/lib/aarch64/instructions/csdb.rb +1 -1
  54. data/lib/aarch64/instructions/csel.rb +1 -1
  55. data/lib/aarch64/instructions/csinc.rb +1 -1
  56. data/lib/aarch64/instructions/csinv.rb +1 -1
  57. data/lib/aarch64/instructions/csneg.rb +1 -1
  58. data/lib/aarch64/instructions/dcps.rb +1 -1
  59. data/lib/aarch64/instructions/dgh.rb +1 -1
  60. data/lib/aarch64/instructions/dmb.rb +1 -1
  61. data/lib/aarch64/instructions/drps.rb +1 -1
  62. data/lib/aarch64/instructions/dsb.rb +1 -1
  63. data/lib/aarch64/instructions/eon.rb +1 -1
  64. data/lib/aarch64/instructions/eor_log_imm.rb +1 -1
  65. data/lib/aarch64/instructions/eor_log_shift.rb +1 -1
  66. data/lib/aarch64/instructions/eret.rb +1 -1
  67. data/lib/aarch64/instructions/ereta.rb +1 -1
  68. data/lib/aarch64/instructions/esb.rb +1 -1
  69. data/lib/aarch64/instructions/extr.rb +1 -1
  70. data/lib/aarch64/instructions/gmi.rb +1 -1
  71. data/lib/aarch64/instructions/hint.rb +1 -1
  72. data/lib/aarch64/instructions/hlt.rb +1 -1
  73. data/lib/aarch64/instructions/hvc.rb +1 -1
  74. data/lib/aarch64/instructions/irg.rb +1 -1
  75. data/lib/aarch64/instructions/isb.rb +1 -1
  76. data/lib/aarch64/instructions/ld64b.rb +1 -1
  77. data/lib/aarch64/instructions/ldadd.rb +1 -1
  78. data/lib/aarch64/instructions/ldaddb.rb +1 -1
  79. data/lib/aarch64/instructions/ldaddh.rb +1 -1
  80. data/lib/aarch64/instructions/ldapr.rb +1 -1
  81. data/lib/aarch64/instructions/ldaprb.rb +1 -1
  82. data/lib/aarch64/instructions/ldaprh.rb +1 -1
  83. data/lib/aarch64/instructions/ldapur_gen.rb +1 -1
  84. data/lib/aarch64/instructions/ldar.rb +1 -1
  85. data/lib/aarch64/instructions/ldaxp.rb +1 -1
  86. data/lib/aarch64/instructions/ldaxr.rb +1 -1
  87. data/lib/aarch64/instructions/ldclr.rb +1 -1
  88. data/lib/aarch64/instructions/ldclrb.rb +1 -1
  89. data/lib/aarch64/instructions/ldeor.rb +1 -1
  90. data/lib/aarch64/instructions/ldg.rb +1 -1
  91. data/lib/aarch64/instructions/ldgm.rb +1 -1
  92. data/lib/aarch64/instructions/ldlar.rb +1 -1
  93. data/lib/aarch64/instructions/ldnp_gen.rb +1 -1
  94. data/lib/aarch64/instructions/ldp_gen.rb +1 -1
  95. data/lib/aarch64/instructions/ldpsw.rb +1 -1
  96. data/lib/aarch64/instructions/ldr_imm_gen.rb +1 -1
  97. data/lib/aarch64/instructions/ldr_imm_unsigned.rb +1 -1
  98. data/lib/aarch64/instructions/ldr_lit_gen.rb +2 -2
  99. data/lib/aarch64/instructions/ldr_reg_gen.rb +1 -1
  100. data/lib/aarch64/instructions/ldra.rb +1 -1
  101. data/lib/aarch64/instructions/ldrb_imm.rb +1 -1
  102. data/lib/aarch64/instructions/ldrb_reg.rb +1 -1
  103. data/lib/aarch64/instructions/ldrb_unsigned.rb +1 -1
  104. data/lib/aarch64/instructions/ldrh_imm.rb +1 -1
  105. data/lib/aarch64/instructions/ldrh_reg.rb +1 -1
  106. data/lib/aarch64/instructions/ldrh_unsigned.rb +1 -1
  107. data/lib/aarch64/instructions/ldrsb_imm.rb +1 -1
  108. data/lib/aarch64/instructions/ldrsb_reg.rb +1 -1
  109. data/lib/aarch64/instructions/ldrsb_unsigned.rb +1 -1
  110. data/lib/aarch64/instructions/ldrsh_imm.rb +1 -1
  111. data/lib/aarch64/instructions/ldrsh_reg.rb +1 -1
  112. data/lib/aarch64/instructions/ldrsh_unsigned.rb +1 -1
  113. data/lib/aarch64/instructions/ldrsw_imm.rb +1 -1
  114. data/lib/aarch64/instructions/ldrsw_lit.rb +2 -2
  115. data/lib/aarch64/instructions/ldrsw_reg.rb +1 -1
  116. data/lib/aarch64/instructions/ldrsw_unsigned.rb +1 -1
  117. data/lib/aarch64/instructions/ldset.rb +1 -1
  118. data/lib/aarch64/instructions/ldsetb.rb +1 -1
  119. data/lib/aarch64/instructions/ldseth.rb +1 -1
  120. data/lib/aarch64/instructions/ldsmax.rb +1 -1
  121. data/lib/aarch64/instructions/ldsmaxb.rb +1 -1
  122. data/lib/aarch64/instructions/ldsmaxh.rb +1 -1
  123. data/lib/aarch64/instructions/ldsmin.rb +1 -1
  124. data/lib/aarch64/instructions/ldsminb.rb +1 -1
  125. data/lib/aarch64/instructions/ldsminh.rb +1 -1
  126. data/lib/aarch64/instructions/ldtr.rb +1 -1
  127. data/lib/aarch64/instructions/ldtrb.rb +1 -1
  128. data/lib/aarch64/instructions/ldtrh.rb +1 -1
  129. data/lib/aarch64/instructions/ldtrsb.rb +1 -1
  130. data/lib/aarch64/instructions/ldtrsh.rb +1 -1
  131. data/lib/aarch64/instructions/ldtrsw.rb +1 -1
  132. data/lib/aarch64/instructions/ldumax.rb +1 -1
  133. data/lib/aarch64/instructions/ldumaxb.rb +1 -1
  134. data/lib/aarch64/instructions/ldumaxh.rb +1 -1
  135. data/lib/aarch64/instructions/ldumin.rb +1 -1
  136. data/lib/aarch64/instructions/lduminb.rb +1 -1
  137. data/lib/aarch64/instructions/lduminh.rb +1 -1
  138. data/lib/aarch64/instructions/ldur_gen.rb +1 -1
  139. data/lib/aarch64/instructions/ldursb.rb +1 -1
  140. data/lib/aarch64/instructions/ldursh.rb +1 -1
  141. data/lib/aarch64/instructions/ldursw.rb +1 -1
  142. data/lib/aarch64/instructions/ldxp.rb +1 -1
  143. data/lib/aarch64/instructions/ldxr.rb +1 -1
  144. data/lib/aarch64/instructions/lslv.rb +1 -1
  145. data/lib/aarch64/instructions/lsrv.rb +1 -1
  146. data/lib/aarch64/instructions/madd.rb +1 -1
  147. data/lib/aarch64/instructions/movk.rb +1 -1
  148. data/lib/aarch64/instructions/movn.rb +1 -1
  149. data/lib/aarch64/instructions/movz.rb +1 -1
  150. data/lib/aarch64/instructions/mrs.rb +1 -1
  151. data/lib/aarch64/instructions/msr_imm.rb +1 -1
  152. data/lib/aarch64/instructions/msr_reg.rb +1 -1
  153. data/lib/aarch64/instructions/msub.rb +1 -1
  154. data/lib/aarch64/instructions/nop.rb +1 -1
  155. data/lib/aarch64/instructions/orn_log_shift.rb +1 -1
  156. data/lib/aarch64/instructions/orr_log_imm.rb +1 -1
  157. data/lib/aarch64/instructions/orr_log_shift.rb +1 -1
  158. data/lib/aarch64/instructions/pacda.rb +1 -1
  159. data/lib/aarch64/instructions/pacdb.rb +1 -1
  160. data/lib/aarch64/instructions/pacga.rb +1 -1
  161. data/lib/aarch64/instructions/pacia.rb +1 -1
  162. data/lib/aarch64/instructions/pacia2.rb +1 -1
  163. data/lib/aarch64/instructions/pacib.rb +1 -1
  164. data/lib/aarch64/instructions/prfm_imm.rb +1 -1
  165. data/lib/aarch64/instructions/prfm_lit.rb +2 -2
  166. data/lib/aarch64/instructions/prfm_reg.rb +1 -1
  167. data/lib/aarch64/instructions/prfum.rb +1 -1
  168. data/lib/aarch64/instructions/psb.rb +1 -1
  169. data/lib/aarch64/instructions/rbit_int.rb +1 -1
  170. data/lib/aarch64/instructions/ret.rb +1 -1
  171. data/lib/aarch64/instructions/reta.rb +1 -1
  172. data/lib/aarch64/instructions/rev.rb +1 -1
  173. data/lib/aarch64/instructions/rmif.rb +1 -1
  174. data/lib/aarch64/instructions/rorv.rb +1 -1
  175. data/lib/aarch64/instructions/sb.rb +1 -1
  176. data/lib/aarch64/instructions/sbc.rb +1 -1
  177. data/lib/aarch64/instructions/sbcs.rb +1 -1
  178. data/lib/aarch64/instructions/sbfm.rb +1 -1
  179. data/lib/aarch64/instructions/sdiv.rb +1 -1
  180. data/lib/aarch64/instructions/setf.rb +1 -1
  181. data/lib/aarch64/instructions/sev.rb +1 -1
  182. data/lib/aarch64/instructions/sevl.rb +1 -1
  183. data/lib/aarch64/instructions/smaddl.rb +1 -1
  184. data/lib/aarch64/instructions/smc.rb +1 -1
  185. data/lib/aarch64/instructions/smsubl.rb +1 -1
  186. data/lib/aarch64/instructions/smulh.rb +1 -1
  187. data/lib/aarch64/instructions/st2g.rb +1 -1
  188. data/lib/aarch64/instructions/st64b.rb +1 -1
  189. data/lib/aarch64/instructions/st64bv.rb +1 -1
  190. data/lib/aarch64/instructions/st64bv0.rb +1 -1
  191. data/lib/aarch64/instructions/stg.rb +1 -1
  192. data/lib/aarch64/instructions/stgm.rb +1 -1
  193. data/lib/aarch64/instructions/stgp.rb +1 -1
  194. data/lib/aarch64/instructions/stllr.rb +1 -1
  195. data/lib/aarch64/instructions/stllrb.rb +1 -1
  196. data/lib/aarch64/instructions/stllrh.rb +1 -1
  197. data/lib/aarch64/instructions/stlr.rb +1 -1
  198. data/lib/aarch64/instructions/stlrb.rb +1 -1
  199. data/lib/aarch64/instructions/stlrh.rb +1 -1
  200. data/lib/aarch64/instructions/stlur_gen.rb +1 -1
  201. data/lib/aarch64/instructions/stlxp.rb +1 -1
  202. data/lib/aarch64/instructions/stlxr.rb +1 -1
  203. data/lib/aarch64/instructions/stlxrb.rb +1 -1
  204. data/lib/aarch64/instructions/stlxrh.rb +1 -1
  205. data/lib/aarch64/instructions/stnp_gen.rb +1 -1
  206. data/lib/aarch64/instructions/stp_gen.rb +1 -1
  207. data/lib/aarch64/instructions/str_imm_gen.rb +1 -1
  208. data/lib/aarch64/instructions/str_imm_unsigned.rb +1 -1
  209. data/lib/aarch64/instructions/str_reg_gen.rb +1 -1
  210. data/lib/aarch64/instructions/strb_imm.rb +1 -1
  211. data/lib/aarch64/instructions/strb_imm_unsigned.rb +1 -1
  212. data/lib/aarch64/instructions/strb_reg.rb +1 -1
  213. data/lib/aarch64/instructions/strh_imm.rb +1 -1
  214. data/lib/aarch64/instructions/strh_imm_unsigned.rb +1 -1
  215. data/lib/aarch64/instructions/strh_reg.rb +1 -1
  216. data/lib/aarch64/instructions/sttr.rb +1 -1
  217. data/lib/aarch64/instructions/stur_gen.rb +1 -1
  218. data/lib/aarch64/instructions/stxp.rb +1 -1
  219. data/lib/aarch64/instructions/stxr.rb +1 -1
  220. data/lib/aarch64/instructions/stxrb.rb +1 -1
  221. data/lib/aarch64/instructions/stxrh.rb +1 -1
  222. data/lib/aarch64/instructions/stz2g.rb +1 -1
  223. data/lib/aarch64/instructions/stzg.rb +1 -1
  224. data/lib/aarch64/instructions/stzgm.rb +1 -1
  225. data/lib/aarch64/instructions/sub_addsub_ext.rb +1 -1
  226. data/lib/aarch64/instructions/sub_addsub_imm.rb +1 -1
  227. data/lib/aarch64/instructions/sub_addsub_shift.rb +1 -1
  228. data/lib/aarch64/instructions/subg.rb +1 -1
  229. data/lib/aarch64/instructions/subp.rb +1 -1
  230. data/lib/aarch64/instructions/subps.rb +1 -1
  231. data/lib/aarch64/instructions/subs_addsub_ext.rb +1 -1
  232. data/lib/aarch64/instructions/subs_addsub_imm.rb +1 -1
  233. data/lib/aarch64/instructions/subs_addsub_shift.rb +1 -1
  234. data/lib/aarch64/instructions/svc.rb +1 -1
  235. data/lib/aarch64/instructions/swp.rb +1 -1
  236. data/lib/aarch64/instructions/swpb.rb +1 -1
  237. data/lib/aarch64/instructions/swph.rb +1 -1
  238. data/lib/aarch64/instructions/sys.rb +1 -1
  239. data/lib/aarch64/instructions/sysl.rb +1 -1
  240. data/lib/aarch64/instructions/tbnz.rb +2 -2
  241. data/lib/aarch64/instructions/tbz.rb +2 -2
  242. data/lib/aarch64/instructions/tsb.rb +1 -1
  243. data/lib/aarch64/instructions/ubfm.rb +1 -1
  244. data/lib/aarch64/instructions/udf_perm_undef.rb +1 -1
  245. data/lib/aarch64/instructions/udiv.rb +1 -1
  246. data/lib/aarch64/instructions/umaddl.rb +1 -1
  247. data/lib/aarch64/instructions/umsubl.rb +1 -1
  248. data/lib/aarch64/instructions/umulh.rb +1 -1
  249. data/lib/aarch64/instructions/wfe.rb +1 -1
  250. data/lib/aarch64/instructions/wfet.rb +1 -1
  251. data/lib/aarch64/instructions/wfi.rb +1 -1
  252. data/lib/aarch64/instructions/wfit.rb +1 -1
  253. data/lib/aarch64/instructions/xaflag.rb +1 -1
  254. data/lib/aarch64/instructions/xpac.rb +1 -1
  255. data/lib/aarch64/instructions/xpaclri.rb +1 -1
  256. data/lib/aarch64/instructions/yield.rb +1 -1
  257. data/lib/aarch64/instructions.rb +6 -2
  258. data/lib/aarch64/parser.rb +1 -1
  259. data/lib/aarch64/parser.tab.rb +223 -215
  260. data/lib/aarch64/parser.y +41 -31
  261. data/lib/aarch64/utils.rb +12 -1
  262. data/lib/aarch64/version.rb +1 -1
  263. data/lib/aarch64.rb +22 -11
  264. data/test/base_instructions_test.rb +58 -0
  265. data/test/helper.rb +2 -0
  266. metadata +3 -3
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by Racc 1.6.0
3
+ # This file is automatically generated by Racc 1.6.2
4
4
  # from Racc grammar file "".
5
5
  #
6
6
 
@@ -30,7 +30,7 @@ module Racc
30
30
  class ParseError < StandardError; end
31
31
  end
32
32
  unless defined?(::ParseError)
33
- ParseError = Racc::ParseError
33
+ ParseError = Racc::ParseError # :nodoc:
34
34
  end
35
35
 
36
36
  # Racc is a LALR(1) parser generator.
@@ -4702,14 +4702,14 @@ module_eval(<<'.,.,', 'parser.y', 515)
4702
4702
 
4703
4703
  module_eval(<<'.,.,', 'parser.y', 534)
4704
4704
  def _reduce_284(val, _values, result)
4705
- result = TwoArg.new(val[0], val[2])
4705
+ result = TwoArg.new(val[0], [val[2]])
4706
4706
  result
4707
4707
  end
4708
4708
  .,.,
4709
4709
 
4710
4710
  module_eval(<<'.,.,', 'parser.y', 538)
4711
4711
  def _reduce_285(val, _values, result)
4712
- result = TwoArg.new(val[0], val[2])
4712
+ result = TwoArg.new(val[0], [val[2]])
4713
4713
  result
4714
4714
  end
4715
4715
  .,.,
@@ -4779,28 +4779,32 @@ module_eval(<<'.,.,', 'parser.y', 577)
4779
4779
  end
4780
4780
  .,.,
4781
4781
 
4782
- module_eval(<<'.,.,', 'parser.y', 581)
4782
+ module_eval(<<'.,.,', 'parser.y', 582)
4783
4783
  def _reduce_301(val, _values, result)
4784
- result = ThreeArg.new(*val[0])
4784
+ reg, reg1, l = *val[0]
4785
+ result = ThreeArg.new(reg, reg1, [l])
4786
+
4785
4787
  result
4786
4788
  end
4787
4789
  .,.,
4788
4790
 
4789
- module_eval(<<'.,.,', 'parser.y', 582)
4791
+ module_eval(<<'.,.,', 'parser.y', 586)
4790
4792
  def _reduce_302(val, _values, result)
4791
- result = ThreeArg.new(*val[0])
4793
+ reg, reg1, l = *val[0]
4794
+ result = ThreeArg.new(reg, reg1, [l])
4795
+
4792
4796
  result
4793
4797
  end
4794
4798
  .,.,
4795
4799
 
4796
- module_eval(<<'.,.,', 'parser.y', 586)
4800
+ module_eval(<<'.,.,', 'parser.y', 592)
4797
4801
  def _reduce_303(val, _values, result)
4798
4802
  val[1].apply(@asm, val[0].to_sym)
4799
4803
  result
4800
4804
  end
4801
4805
  .,.,
4802
4806
 
4803
- module_eval(<<'.,.,', 'parser.y', 591)
4807
+ module_eval(<<'.,.,', 'parser.y', 597)
4804
4808
  def _reduce_304(val, _values, result)
4805
4809
  reg1, reg2, reg3 = *val[0]
4806
4810
  result = ThreeArg.new(reg1, reg2, [reg3, val[2]])
@@ -4809,7 +4813,7 @@ module_eval(<<'.,.,', 'parser.y', 591)
4809
4813
  end
4810
4814
  .,.,
4811
4815
 
4812
- module_eval(<<'.,.,', 'parser.y', 595)
4816
+ module_eval(<<'.,.,', 'parser.y', 601)
4813
4817
  def _reduce_305(val, _values, result)
4814
4818
  reg1, reg2, reg3 = *val[0]
4815
4819
  result = ThreeArg.new(reg1, reg2, [reg3, val[2]])
@@ -4818,74 +4822,74 @@ module_eval(<<'.,.,', 'parser.y', 595)
4818
4822
  end
4819
4823
  .,.,
4820
4824
 
4821
- module_eval(<<'.,.,', 'parser.y', 598)
4825
+ module_eval(<<'.,.,', 'parser.y', 604)
4822
4826
  def _reduce_306(val, _values, result)
4823
4827
  result = ThreeArg.new(*val[0].first(2), [val[0].last])
4824
4828
  result
4825
4829
  end
4826
4830
  .,.,
4827
4831
 
4828
- module_eval(<<'.,.,', 'parser.y', 599)
4832
+ module_eval(<<'.,.,', 'parser.y', 605)
4829
4833
  def _reduce_307(val, _values, result)
4830
4834
  result = ThreeArg.new(*val[0].first(2), [val[0].last])
4831
4835
  result
4832
4836
  end
4833
4837
  .,.,
4834
4838
 
4835
- module_eval(<<'.,.,', 'parser.y', 603)
4839
+ module_eval(<<'.,.,', 'parser.y', 609)
4836
4840
  def _reduce_308(val, _values, result)
4837
4841
  val[1].apply(@asm, val[0].to_sym)
4838
4842
  result
4839
4843
  end
4840
4844
  .,.,
4841
4845
 
4842
- module_eval(<<'.,.,', 'parser.y', 607)
4846
+ module_eval(<<'.,.,', 'parser.y', 613)
4843
4847
  def _reduce_309(val, _values, result)
4844
4848
  val[1].apply(@asm, val[0].to_sym)
4845
4849
  result
4846
4850
  end
4847
4851
  .,.,
4848
4852
 
4849
- module_eval(<<'.,.,', 'parser.y', 611)
4853
+ module_eval(<<'.,.,', 'parser.y', 617)
4850
4854
  def _reduce_310(val, _values, result)
4851
4855
  val[1].apply(@asm, val[0].to_sym)
4852
4856
  result
4853
4857
  end
4854
4858
  .,.,
4855
4859
 
4856
- module_eval(<<'.,.,', 'parser.y', 615)
4860
+ module_eval(<<'.,.,', 'parser.y', 621)
4857
4861
  def _reduce_311(val, _values, result)
4858
4862
  result = ThreeArg.new(*val[0])
4859
4863
  result
4860
4864
  end
4861
4865
  .,.,
4862
4866
 
4863
- module_eval(<<'.,.,', 'parser.y', 616)
4867
+ module_eval(<<'.,.,', 'parser.y', 622)
4864
4868
  def _reduce_312(val, _values, result)
4865
4869
  result = FourArg.new(*val[0], :!)
4866
4870
  result
4867
4871
  end
4868
4872
  .,.,
4869
4873
 
4870
- module_eval(<<'.,.,', 'parser.y', 618)
4874
+ module_eval(<<'.,.,', 'parser.y', 624)
4871
4875
  def _reduce_313(val, _values, result)
4872
4876
  rt1, rt2, rn = *val[0].to_a
4873
- result = FourArg.new(rt1, rt2, [rn], val[2])
4877
+ result = FourArg.new(rt1, rt2, rn, val[2])
4874
4878
 
4875
4879
  result
4876
4880
  end
4877
4881
  .,.,
4878
4882
 
4879
- module_eval(<<'.,.,', 'parser.y', 622)
4883
+ module_eval(<<'.,.,', 'parser.y', 628)
4880
4884
  def _reduce_314(val, _values, result)
4881
4885
  rt1, rt2, rn = *val[0].to_a
4882
- result = ThreeArg.new(rt1, rt2, [rn])
4886
+ result = ThreeArg.new(rt1, rt2, rn)
4883
4887
 
4884
4888
  result
4885
4889
  end
4886
4890
  .,.,
4887
4891
 
4888
- module_eval(<<'.,.,', 'parser.y', 629)
4892
+ module_eval(<<'.,.,', 'parser.y', 635)
4889
4893
  def _reduce_315(val, _values, result)
4890
4894
  result = [val[0], val[2], val[4]]
4891
4895
 
@@ -4893,7 +4897,7 @@ module_eval(<<'.,.,', 'parser.y', 629)
4893
4897
  end
4894
4898
  .,.,
4895
4899
 
4896
- module_eval(<<'.,.,', 'parser.y', 632)
4900
+ module_eval(<<'.,.,', 'parser.y', 638)
4897
4901
  def _reduce_316(val, _values, result)
4898
4902
  result = [val[0], val[2], val[4]]
4899
4903
 
@@ -4901,21 +4905,21 @@ module_eval(<<'.,.,', 'parser.y', 632)
4901
4905
  end
4902
4906
  .,.,
4903
4907
 
4904
- module_eval(<<'.,.,', 'parser.y', 637)
4908
+ module_eval(<<'.,.,', 'parser.y', 643)
4905
4909
  def _reduce_317(val, _values, result)
4906
4910
  result = [val[0], val[2]]
4907
4911
  result
4908
4912
  end
4909
4913
  .,.,
4910
4914
 
4911
- module_eval(<<'.,.,', 'parser.y', 638)
4915
+ module_eval(<<'.,.,', 'parser.y', 644)
4912
4916
  def _reduce_318(val, _values, result)
4913
4917
  result = [val[0], val[2]]
4914
4918
  result
4915
4919
  end
4916
4920
  .,.,
4917
4921
 
4918
- module_eval(<<'.,.,', 'parser.y', 643)
4922
+ module_eval(<<'.,.,', 'parser.y', 649)
4919
4923
  def _reduce_319(val, _values, result)
4920
4924
  result = [val[0], Shifts::Shift.new(val[3], 0, val[2].to_sym)].flatten
4921
4925
 
@@ -4923,7 +4927,7 @@ module_eval(<<'.,.,', 'parser.y', 643)
4923
4927
  end
4924
4928
  .,.,
4925
4929
 
4926
- module_eval(<<'.,.,', 'parser.y', 646)
4930
+ module_eval(<<'.,.,', 'parser.y', 652)
4927
4931
  def _reduce_320(val, _values, result)
4928
4932
  result = [val[0], Shifts::Shift.new(nil, 0, val[2].to_sym)].flatten
4929
4933
 
@@ -4931,98 +4935,98 @@ module_eval(<<'.,.,', 'parser.y', 646)
4931
4935
  end
4932
4936
  .,.,
4933
4937
 
4934
- module_eval(<<'.,.,', 'parser.y', 651)
4938
+ module_eval(<<'.,.,', 'parser.y', 657)
4935
4939
  def _reduce_321(val, _values, result)
4936
4940
  result = TwoArg.new(val[0], val[2])
4937
4941
  result
4938
4942
  end
4939
4943
  .,.,
4940
4944
 
4941
- module_eval(<<'.,.,', 'parser.y', 652)
4945
+ module_eval(<<'.,.,', 'parser.y', 658)
4942
4946
  def _reduce_322(val, _values, result)
4943
4947
  result = TwoArg.new(val[0], val[2])
4944
4948
  result
4945
4949
  end
4946
4950
  .,.,
4947
4951
 
4948
- module_eval(<<'.,.,', 'parser.y', 653)
4952
+ module_eval(<<'.,.,', 'parser.y', 659)
4949
4953
  def _reduce_323(val, _values, result)
4950
4954
  result = ThreeArg.new(val[0], val[2], :!)
4951
4955
  result
4952
4956
  end
4953
4957
  .,.,
4954
4958
 
4955
- module_eval(<<'.,.,', 'parser.y', 654)
4959
+ module_eval(<<'.,.,', 'parser.y', 660)
4956
4960
  def _reduce_324(val, _values, result)
4957
4961
  result = ThreeArg.new(val[0], [val[2]], val[5])
4958
4962
  result
4959
4963
  end
4960
4964
  .,.,
4961
4965
 
4962
- module_eval(<<'.,.,', 'parser.y', 655)
4966
+ module_eval(<<'.,.,', 'parser.y', 661)
4963
4967
  def _reduce_325(val, _values, result)
4964
4968
  result = TwoArg.new(val[0], [val[2]])
4965
4969
  result
4966
4970
  end
4967
4971
  .,.,
4968
4972
 
4969
- module_eval(<<'.,.,', 'parser.y', 656)
4973
+ module_eval(<<'.,.,', 'parser.y', 662)
4970
4974
  def _reduce_326(val, _values, result)
4971
4975
  result = TwoArg.new(val[0], val[2])
4972
4976
  result
4973
4977
  end
4974
4978
  .,.,
4975
4979
 
4976
- module_eval(<<'.,.,', 'parser.y', 657)
4980
+ module_eval(<<'.,.,', 'parser.y', 663)
4977
4981
  def _reduce_327(val, _values, result)
4978
4982
  result = TwoArg.new(val[0], val[2])
4979
4983
  result
4980
4984
  end
4981
4985
  .,.,
4982
4986
 
4983
- module_eval(<<'.,.,', 'parser.y', 661)
4987
+ module_eval(<<'.,.,', 'parser.y', 667)
4984
4988
  def _reduce_328(val, _values, result)
4985
4989
  result = TwoArg.new(val[0], val[2])
4986
4990
  result
4987
4991
  end
4988
4992
  .,.,
4989
4993
 
4990
- module_eval(<<'.,.,', 'parser.y', 662)
4994
+ module_eval(<<'.,.,', 'parser.y', 668)
4991
4995
  def _reduce_329(val, _values, result)
4992
4996
  result = TwoArg.new(val[0], val[2])
4993
4997
  result
4994
4998
  end
4995
4999
  .,.,
4996
5000
 
4997
- module_eval(<<'.,.,', 'parser.y', 663)
5001
+ module_eval(<<'.,.,', 'parser.y', 669)
4998
5002
  def _reduce_330(val, _values, result)
4999
5003
  result = ThreeArg.new(val[0], val[2], :!)
5000
5004
  result
5001
5005
  end
5002
5006
  .,.,
5003
5007
 
5004
- module_eval(<<'.,.,', 'parser.y', 664)
5008
+ module_eval(<<'.,.,', 'parser.y', 670)
5005
5009
  def _reduce_331(val, _values, result)
5006
5010
  result = ThreeArg.new(val[0], [val[2]], val[5])
5007
5011
  result
5008
5012
  end
5009
5013
  .,.,
5010
5014
 
5011
- module_eval(<<'.,.,', 'parser.y', 665)
5015
+ module_eval(<<'.,.,', 'parser.y', 671)
5012
5016
  def _reduce_332(val, _values, result)
5013
5017
  result = TwoArg.new(val[0], [val[2]])
5014
5018
  result
5015
5019
  end
5016
5020
  .,.,
5017
5021
 
5018
- module_eval(<<'.,.,', 'parser.y', 666)
5022
+ module_eval(<<'.,.,', 'parser.y', 672)
5019
5023
  def _reduce_333(val, _values, result)
5020
5024
  result = TwoArg.new(val[0], val[2])
5021
5025
  result
5022
5026
  end
5023
5027
  .,.,
5024
5028
 
5025
- module_eval(<<'.,.,', 'parser.y', 667)
5029
+ module_eval(<<'.,.,', 'parser.y', 673)
5026
5030
  def _reduce_334(val, _values, result)
5027
5031
  result = TwoArg.new(val[0], val[2])
5028
5032
  result
@@ -5047,44 +5051,44 @@ module_eval(<<'.,.,', 'parser.y', 667)
5047
5051
 
5048
5052
  # reduce 343 omitted
5049
5053
 
5050
- module_eval(<<'.,.,', 'parser.y', 686)
5054
+ module_eval(<<'.,.,', 'parser.y', 692)
5051
5055
  def _reduce_344(val, _values, result)
5052
5056
  val[1].apply(@asm, val[0])
5053
5057
  result
5054
5058
  end
5055
5059
  .,.,
5056
5060
 
5057
- module_eval(<<'.,.,', 'parser.y', 687)
5061
+ module_eval(<<'.,.,', 'parser.y', 693)
5058
5062
  def _reduce_345(val, _values, result)
5059
5063
  val[1].apply(@asm, val[0])
5060
5064
  result
5061
5065
  end
5062
5066
  .,.,
5063
5067
 
5064
- module_eval(<<'.,.,', 'parser.y', 691)
5068
+ module_eval(<<'.,.,', 'parser.y', 697)
5065
5069
  def _reduce_346(val, _values, result)
5066
5070
  result = TwoArg.new(val[0], val[2])
5067
5071
  result
5068
5072
  end
5069
5073
  .,.,
5070
5074
 
5071
- module_eval(<<'.,.,', 'parser.y', 692)
5075
+ module_eval(<<'.,.,', 'parser.y', 698)
5072
5076
  def _reduce_347(val, _values, result)
5073
- result = TwoArg.new(val[0], val[2])
5077
+ result = TwoArg.new(val[0], [val[2]])
5074
5078
  result
5075
5079
  end
5076
5080
  .,.,
5077
5081
 
5078
- module_eval(<<'.,.,', 'parser.y', 696)
5082
+ module_eval(<<'.,.,', 'parser.y', 702)
5079
5083
  def _reduce_348(val, _values, result)
5080
5084
  result = TwoArg.new(val[0], val[2])
5081
5085
  result
5082
5086
  end
5083
5087
  .,.,
5084
5088
 
5085
- module_eval(<<'.,.,', 'parser.y', 697)
5089
+ module_eval(<<'.,.,', 'parser.y', 703)
5086
5090
  def _reduce_349(val, _values, result)
5087
- result = TwoArg.new(val[0], val[2])
5091
+ result = TwoArg.new(val[0], [val[2]])
5088
5092
  result
5089
5093
  end
5090
5094
  .,.,
@@ -5125,147 +5129,147 @@ module_eval(<<'.,.,', 'parser.y', 697)
5125
5129
 
5126
5130
  # reduce 367 omitted
5127
5131
 
5128
- module_eval(<<'.,.,', 'parser.y', 725)
5132
+ module_eval(<<'.,.,', 'parser.y', 731)
5129
5133
  def _reduce_368(val, _values, result)
5130
5134
  val[1].apply(@asm, val[0])
5131
5135
  result
5132
5136
  end
5133
5137
  .,.,
5134
5138
 
5135
- module_eval(<<'.,.,', 'parser.y', 726)
5139
+ module_eval(<<'.,.,', 'parser.y', 732)
5136
5140
  def _reduce_369(val, _values, result)
5137
5141
  val[1].apply(@asm, val[0])
5138
5142
  result
5139
5143
  end
5140
5144
  .,.,
5141
5145
 
5142
- module_eval(<<'.,.,', 'parser.y', 730)
5146
+ module_eval(<<'.,.,', 'parser.y', 736)
5143
5147
  def _reduce_370(val, _values, result)
5144
- @asm.ldxp(val[1], val[3], val[5])
5148
+ @asm.ldxp(val[1], val[3], [val[5]])
5145
5149
  result
5146
5150
  end
5147
5151
  .,.,
5148
5152
 
5149
- module_eval(<<'.,.,', 'parser.y', 731)
5153
+ module_eval(<<'.,.,', 'parser.y', 737)
5150
5154
  def _reduce_371(val, _values, result)
5151
- @asm.ldxp(val[1], val[3], val[5])
5155
+ @asm.ldxp(val[1], val[3], [val[5]])
5152
5156
  result
5153
5157
  end
5154
5158
  .,.,
5155
5159
 
5156
- module_eval(<<'.,.,', 'parser.y', 735)
5160
+ module_eval(<<'.,.,', 'parser.y', 741)
5157
5161
  def _reduce_372(val, _values, result)
5158
- @asm.ldxr(val[1], val[3])
5162
+ @asm.ldxr(val[1], [val[3]])
5159
5163
  result
5160
5164
  end
5161
5165
  .,.,
5162
5166
 
5163
- module_eval(<<'.,.,', 'parser.y', 736)
5167
+ module_eval(<<'.,.,', 'parser.y', 742)
5164
5168
  def _reduce_373(val, _values, result)
5165
- @asm.ldxr(val[1], val[3])
5169
+ @asm.ldxr(val[1], [val[3]])
5166
5170
  result
5167
5171
  end
5168
5172
  .,.,
5169
5173
 
5170
- module_eval(<<'.,.,', 'parser.y', 740)
5174
+ module_eval(<<'.,.,', 'parser.y', 746)
5171
5175
  def _reduce_374(val, _values, result)
5172
- @asm.ldxrb(val[1], val[3])
5176
+ @asm.ldxrb(val[1], [val[3]])
5173
5177
  result
5174
5178
  end
5175
5179
  .,.,
5176
5180
 
5177
- module_eval(<<'.,.,', 'parser.y', 744)
5181
+ module_eval(<<'.,.,', 'parser.y', 750)
5178
5182
  def _reduce_375(val, _values, result)
5179
- @asm.ldxrh(val[1], val[3])
5183
+ @asm.ldxrh(val[1], [val[3]])
5180
5184
  result
5181
5185
  end
5182
5186
  .,.,
5183
5187
 
5184
- module_eval(<<'.,.,', 'parser.y', 748)
5188
+ module_eval(<<'.,.,', 'parser.y', 754)
5185
5189
  def _reduce_376(val, _values, result)
5186
5190
  val[1].apply(@asm, val[0])
5187
5191
  result
5188
5192
  end
5189
5193
  .,.,
5190
5194
 
5191
- module_eval(<<'.,.,', 'parser.y', 749)
5195
+ module_eval(<<'.,.,', 'parser.y', 755)
5192
5196
  def _reduce_377(val, _values, result)
5193
5197
  val[1].apply(@asm, val[0])
5194
5198
  result
5195
5199
  end
5196
5200
  .,.,
5197
5201
 
5198
- module_eval(<<'.,.,', 'parser.y', 753)
5202
+ module_eval(<<'.,.,', 'parser.y', 759)
5199
5203
  def _reduce_378(val, _values, result)
5200
5204
  val[1].apply(@asm, val[0])
5201
5205
  result
5202
5206
  end
5203
5207
  .,.,
5204
5208
 
5205
- module_eval(<<'.,.,', 'parser.y', 754)
5209
+ module_eval(<<'.,.,', 'parser.y', 760)
5206
5210
  def _reduce_379(val, _values, result)
5207
5211
  val[1].apply(@asm, val[0])
5208
5212
  result
5209
5213
  end
5210
5214
  .,.,
5211
5215
 
5212
- module_eval(<<'.,.,', 'parser.y', 758)
5216
+ module_eval(<<'.,.,', 'parser.y', 764)
5213
5217
  def _reduce_380(val, _values, result)
5214
5218
  result = TwoArg.new(val[0], val[2])
5215
5219
  result
5216
5220
  end
5217
5221
  .,.,
5218
5222
 
5219
- module_eval(<<'.,.,', 'parser.y', 759)
5223
+ module_eval(<<'.,.,', 'parser.y', 765)
5220
5224
  def _reduce_381(val, _values, result)
5221
5225
  result = TwoArg.new(val[0], val[2])
5222
5226
  result
5223
5227
  end
5224
5228
  .,.,
5225
5229
 
5226
- module_eval(<<'.,.,', 'parser.y', 760)
5230
+ module_eval(<<'.,.,', 'parser.y', 766)
5227
5231
  def _reduce_382(val, _values, result)
5228
5232
  result = TwoArg.new(val[0], val[2])
5229
5233
  result
5230
5234
  end
5231
5235
  .,.,
5232
5236
 
5233
- module_eval(<<'.,.,', 'parser.y', 761)
5237
+ module_eval(<<'.,.,', 'parser.y', 767)
5234
5238
  def _reduce_383(val, _values, result)
5235
5239
  result = TwoArg.new(val[0], val[2])
5236
5240
  result
5237
5241
  end
5238
5242
  .,.,
5239
5243
 
5240
- module_eval(<<'.,.,', 'parser.y', 765)
5244
+ module_eval(<<'.,.,', 'parser.y', 771)
5241
5245
  def _reduce_384(val, _values, result)
5242
5246
  val[1].apply(@asm, val[0])
5243
5247
  result
5244
5248
  end
5245
5249
  .,.,
5246
5250
 
5247
- module_eval(<<'.,.,', 'parser.y', 766)
5251
+ module_eval(<<'.,.,', 'parser.y', 772)
5248
5252
  def _reduce_385(val, _values, result)
5249
5253
  val[1].apply(@asm, val[0])
5250
5254
  result
5251
5255
  end
5252
5256
  .,.,
5253
5257
 
5254
- module_eval(<<'.,.,', 'parser.y', 767)
5258
+ module_eval(<<'.,.,', 'parser.y', 773)
5255
5259
  def _reduce_386(val, _values, result)
5256
5260
  val[1].apply(@asm, val[0])
5257
5261
  result
5258
5262
  end
5259
5263
  .,.,
5260
5264
 
5261
- module_eval(<<'.,.,', 'parser.y', 771)
5265
+ module_eval(<<'.,.,', 'parser.y', 777)
5262
5266
  def _reduce_387(val, _values, result)
5263
5267
  result = TwoArg.new(val[0], val[2])
5264
5268
  result
5265
5269
  end
5266
5270
  .,.,
5267
5271
 
5268
- module_eval(<<'.,.,', 'parser.y', 773)
5272
+ module_eval(<<'.,.,', 'parser.y', 779)
5269
5273
  def _reduce_388(val, _values, result)
5270
5274
  result = TwoWithLsl.new(val[0], val[2], lsl: val[5])
5271
5275
 
@@ -5273,7 +5277,7 @@ module_eval(<<'.,.,', 'parser.y', 773)
5273
5277
  end
5274
5278
  .,.,
5275
5279
 
5276
- module_eval(<<'.,.,', 'parser.y', 779)
5280
+ module_eval(<<'.,.,', 'parser.y', 785)
5277
5281
  def _reduce_389(val, _values, result)
5278
5282
  TwoArg.new(val[1], val[3]).apply(@asm, val[0])
5279
5283
 
@@ -5281,7 +5285,7 @@ module_eval(<<'.,.,', 'parser.y', 779)
5281
5285
  end
5282
5286
  .,.,
5283
5287
 
5284
- module_eval(<<'.,.,', 'parser.y', 785)
5288
+ module_eval(<<'.,.,', 'parser.y', 791)
5285
5289
  def _reduce_390(val, _values, result)
5286
5290
  TwoArg.new(val[1], val[3]).apply(@asm, val[0])
5287
5291
 
@@ -5289,84 +5293,84 @@ module_eval(<<'.,.,', 'parser.y', 785)
5289
5293
  end
5290
5294
  .,.,
5291
5295
 
5292
- module_eval(<<'.,.,', 'parser.y', 790)
5296
+ module_eval(<<'.,.,', 'parser.y', 796)
5293
5297
  def _reduce_391(val, _values, result)
5294
5298
  val[1].apply(@asm, val[0])
5295
5299
  result
5296
5300
  end
5297
5301
  .,.,
5298
5302
 
5299
- module_eval(<<'.,.,', 'parser.y', 791)
5303
+ module_eval(<<'.,.,', 'parser.y', 797)
5300
5304
  def _reduce_392(val, _values, result)
5301
5305
  val[1].apply(@asm, val[0])
5302
5306
  result
5303
5307
  end
5304
5308
  .,.,
5305
5309
 
5306
- module_eval(<<'.,.,', 'parser.y', 795)
5310
+ module_eval(<<'.,.,', 'parser.y', 801)
5307
5311
  def _reduce_393(val, _values, result)
5308
5312
  val[1].apply(@asm, val[0])
5309
5313
  result
5310
5314
  end
5311
5315
  .,.,
5312
5316
 
5313
- module_eval(<<'.,.,', 'parser.y', 796)
5317
+ module_eval(<<'.,.,', 'parser.y', 802)
5314
5318
  def _reduce_394(val, _values, result)
5315
5319
  val[1].apply(@asm, val[0])
5316
5320
  result
5317
5321
  end
5318
5322
  .,.,
5319
5323
 
5320
- module_eval(<<'.,.,', 'parser.y', 800)
5324
+ module_eval(<<'.,.,', 'parser.y', 806)
5321
5325
  def _reduce_395(val, _values, result)
5322
5326
  val[1].apply(@asm, val[0])
5323
5327
  result
5324
5328
  end
5325
5329
  .,.,
5326
5330
 
5327
- module_eval(<<'.,.,', 'parser.y', 801)
5331
+ module_eval(<<'.,.,', 'parser.y', 807)
5328
5332
  def _reduce_396(val, _values, result)
5329
5333
  val[1].apply(@asm, val[0])
5330
5334
  result
5331
5335
  end
5332
5336
  .,.,
5333
5337
 
5334
- module_eval(<<'.,.,', 'parser.y', 805)
5338
+ module_eval(<<'.,.,', 'parser.y', 811)
5335
5339
  def _reduce_397(val, _values, result)
5336
5340
  val[1].apply(@asm, val[0])
5337
5341
  result
5338
5342
  end
5339
5343
  .,.,
5340
5344
 
5341
- module_eval(<<'.,.,', 'parser.y', 806)
5345
+ module_eval(<<'.,.,', 'parser.y', 812)
5342
5346
  def _reduce_398(val, _values, result)
5343
5347
  val[1].apply(@asm, val[0])
5344
5348
  result
5345
5349
  end
5346
5350
  .,.,
5347
5351
 
5348
- module_eval(<<'.,.,', 'parser.y', 810)
5352
+ module_eval(<<'.,.,', 'parser.y', 816)
5349
5353
  def _reduce_399(val, _values, result)
5350
5354
  val[1].apply(@asm, val[0])
5351
5355
  result
5352
5356
  end
5353
5357
  .,.,
5354
5358
 
5355
- module_eval(<<'.,.,', 'parser.y', 811)
5359
+ module_eval(<<'.,.,', 'parser.y', 817)
5356
5360
  def _reduce_400(val, _values, result)
5357
5361
  val[1].apply(@asm, val[0])
5358
5362
  result
5359
5363
  end
5360
5364
  .,.,
5361
5365
 
5362
- module_eval(<<'.,.,', 'parser.y', 812)
5366
+ module_eval(<<'.,.,', 'parser.y', 818)
5363
5367
  def _reduce_401(val, _values, result)
5364
5368
  val[1].apply(@asm, val[0])
5365
5369
  result
5366
5370
  end
5367
5371
  .,.,
5368
5372
 
5369
- module_eval(<<'.,.,', 'parser.y', 817)
5373
+ module_eval(<<'.,.,', 'parser.y', 823)
5370
5374
  def _reduce_402(val, _values, result)
5371
5375
  result = TwoArg.new(val[0].to_sym, val[2])
5372
5376
 
@@ -5374,7 +5378,7 @@ module_eval(<<'.,.,', 'parser.y', 817)
5374
5378
  end
5375
5379
  .,.,
5376
5380
 
5377
- module_eval(<<'.,.,', 'parser.y', 823)
5381
+ module_eval(<<'.,.,', 'parser.y', 829)
5378
5382
  def _reduce_403(val, _values, result)
5379
5383
  result = TwoArg.new(val[0].to_sym, val[2])
5380
5384
 
@@ -5382,7 +5386,7 @@ module_eval(<<'.,.,', 'parser.y', 823)
5382
5386
  end
5383
5387
  .,.,
5384
5388
 
5385
- module_eval(<<'.,.,', 'parser.y', 826)
5389
+ module_eval(<<'.,.,', 'parser.y', 832)
5386
5390
  def _reduce_404(val, _values, result)
5387
5391
  result = TwoArg.new(val[0].to_sym, [val[2]])
5388
5392
 
@@ -5390,7 +5394,7 @@ module_eval(<<'.,.,', 'parser.y', 826)
5390
5394
  end
5391
5395
  .,.,
5392
5396
 
5393
- module_eval(<<'.,.,', 'parser.y', 829)
5397
+ module_eval(<<'.,.,', 'parser.y', 835)
5394
5398
  def _reduce_405(val, _values, result)
5395
5399
  result = TwoArg.new(val[0].to_sym, val[2])
5396
5400
 
@@ -5398,91 +5402,91 @@ module_eval(<<'.,.,', 'parser.y', 829)
5398
5402
  end
5399
5403
  .,.,
5400
5404
 
5401
- module_eval(<<'.,.,', 'parser.y', 834)
5405
+ module_eval(<<'.,.,', 'parser.y', 840)
5402
5406
  def _reduce_406(val, _values, result)
5403
5407
  val[1].apply(@asm, val[0])
5404
5408
  result
5405
5409
  end
5406
5410
  .,.,
5407
5411
 
5408
- module_eval(<<'.,.,', 'parser.y', 835)
5412
+ module_eval(<<'.,.,', 'parser.y', 841)
5409
5413
  def _reduce_407(val, _values, result)
5410
5414
  val[1].apply(@asm, val[0])
5411
5415
  result
5412
5416
  end
5413
5417
  .,.,
5414
5418
 
5415
- module_eval(<<'.,.,', 'parser.y', 836)
5419
+ module_eval(<<'.,.,', 'parser.y', 842)
5416
5420
  def _reduce_408(val, _values, result)
5417
5421
  TwoArg.new(val[1], val[3]).apply(@asm, val[0])
5418
5422
  result
5419
5423
  end
5420
5424
  .,.,
5421
5425
 
5422
- module_eval(<<'.,.,', 'parser.y', 840)
5426
+ module_eval(<<'.,.,', 'parser.y', 846)
5423
5427
  def _reduce_409(val, _values, result)
5424
5428
  val[1].apply(@asm, val[0])
5425
5429
  result
5426
5430
  end
5427
5431
  .,.,
5428
5432
 
5429
- module_eval(<<'.,.,', 'parser.y', 844)
5433
+ module_eval(<<'.,.,', 'parser.y', 850)
5430
5434
  def _reduce_410(val, _values, result)
5431
5435
  @asm.ret
5432
5436
  result
5433
5437
  end
5434
5438
  .,.,
5435
5439
 
5436
- module_eval(<<'.,.,', 'parser.y', 845)
5440
+ module_eval(<<'.,.,', 'parser.y', 851)
5437
5441
  def _reduce_411(val, _values, result)
5438
5442
  @asm.ret(val[1])
5439
5443
  result
5440
5444
  end
5441
5445
  .,.,
5442
5446
 
5443
- module_eval(<<'.,.,', 'parser.y', 849)
5447
+ module_eval(<<'.,.,', 'parser.y', 855)
5444
5448
  def _reduce_412(val, _values, result)
5445
5449
  val[1].apply(@asm, val[0])
5446
5450
  result
5447
5451
  end
5448
5452
  .,.,
5449
5453
 
5450
- module_eval(<<'.,.,', 'parser.y', 850)
5454
+ module_eval(<<'.,.,', 'parser.y', 856)
5451
5455
  def _reduce_413(val, _values, result)
5452
5456
  val[1].apply(@asm, val[0])
5453
5457
  result
5454
5458
  end
5455
5459
  .,.,
5456
5460
 
5457
- module_eval(<<'.,.,', 'parser.y', 854)
5461
+ module_eval(<<'.,.,', 'parser.y', 860)
5458
5462
  def _reduce_414(val, _values, result)
5459
- @asm.stlr(val[1], val[3])
5463
+ @asm.stlr(val[1], [val[3]])
5460
5464
  result
5461
5465
  end
5462
5466
  .,.,
5463
5467
 
5464
- module_eval(<<'.,.,', 'parser.y', 855)
5468
+ module_eval(<<'.,.,', 'parser.y', 861)
5465
5469
  def _reduce_415(val, _values, result)
5466
- @asm.stlr(val[1], val[3])
5470
+ @asm.stlr(val[1], [val[3]])
5467
5471
  result
5468
5472
  end
5469
5473
  .,.,
5470
5474
 
5471
- module_eval(<<'.,.,', 'parser.y', 859)
5475
+ module_eval(<<'.,.,', 'parser.y', 865)
5472
5476
  def _reduce_416(val, _values, result)
5473
- @asm.stlrb(val[1], val[3])
5477
+ @asm.stlrb(val[1], [val[3]])
5474
5478
  result
5475
5479
  end
5476
5480
  .,.,
5477
5481
 
5478
- module_eval(<<'.,.,', 'parser.y', 863)
5482
+ module_eval(<<'.,.,', 'parser.y', 869)
5479
5483
  def _reduce_417(val, _values, result)
5480
- @asm.stlrh(val[1], val[3])
5484
+ @asm.stlrh(val[1], [val[3]])
5481
5485
  result
5482
5486
  end
5483
5487
  .,.,
5484
5488
 
5485
- module_eval(<<'.,.,', 'parser.y', 868)
5489
+ module_eval(<<'.,.,', 'parser.y', 874)
5486
5490
  def _reduce_418(val, _values, result)
5487
5491
  result = FourArg.new(*val.values_at(0, 2, 4, 6))
5488
5492
 
@@ -5490,17 +5494,19 @@ module_eval(<<'.,.,', 'parser.y', 868)
5490
5494
  end
5491
5495
  .,.,
5492
5496
 
5493
- module_eval(<<'.,.,', 'parser.y', 874)
5497
+ module_eval(<<'.,.,', 'parser.y', 880)
5494
5498
  def _reduce_419(val, _values, result)
5495
- result = FourArg.new(*val.values_at(0, 2, 4, 6))
5499
+ wd, xd1, xd2, r = *val.values_at(0, 2, 4, 6)
5500
+ result = FourArg.new(wd, xd1, xd2, [r])
5496
5501
 
5497
5502
  result
5498
5503
  end
5499
5504
  .,.,
5500
5505
 
5501
- module_eval(<<'.,.,', 'parser.y', 877)
5506
+ module_eval(<<'.,.,', 'parser.y', 884)
5502
5507
  def _reduce_420(val, _values, result)
5503
- result = FourArg.new(*val.values_at(0, 2, 4, 6))
5508
+ wd, wd1, wd2, r = *val.values_at(0, 2, 4, 6)
5509
+ result = FourArg.new(wd, wd1, wd2, [r])
5504
5510
 
5505
5511
  result
5506
5512
  end
@@ -5508,15 +5514,16 @@ module_eval(<<'.,.,', 'parser.y', 877)
5508
5514
 
5509
5515
  # reduce 421 omitted
5510
5516
 
5511
- module_eval(<<'.,.,', 'parser.y', 884)
5517
+ module_eval(<<'.,.,', 'parser.y', 892)
5512
5518
  def _reduce_422(val, _values, result)
5513
- result = ThreeArg.new(*val.values_at(0, 2, 4))
5519
+ wd, xd, rd = *val.values_at(0, 2, 4)
5520
+ result = ThreeArg.new(wd, xd, [rd])
5514
5521
 
5515
5522
  result
5516
5523
  end
5517
5524
  .,.,
5518
5525
 
5519
- module_eval(<<'.,.,', 'parser.y', 890)
5526
+ module_eval(<<'.,.,', 'parser.y', 899)
5520
5527
  def _reduce_423(val, _values, result)
5521
5528
  val[1].apply(@asm, val[0])
5522
5529
 
@@ -5524,14 +5531,14 @@ module_eval(<<'.,.,', 'parser.y', 890)
5524
5531
  end
5525
5532
  .,.,
5526
5533
 
5527
- module_eval(<<'.,.,', 'parser.y', 895)
5534
+ module_eval(<<'.,.,', 'parser.y', 904)
5528
5535
  def _reduce_424(val, _values, result)
5529
5536
  val[1].apply(@asm, val[0])
5530
5537
  result
5531
5538
  end
5532
5539
  .,.,
5533
5540
 
5534
- module_eval(<<'.,.,', 'parser.y', 897)
5541
+ module_eval(<<'.,.,', 'parser.y', 906)
5535
5542
  def _reduce_425(val, _values, result)
5536
5543
  FourArg.new(*val[1].to_a, :!).apply(@asm, val[0])
5537
5544
 
@@ -5539,15 +5546,16 @@ module_eval(<<'.,.,', 'parser.y', 897)
5539
5546
  end
5540
5547
  .,.,
5541
5548
 
5542
- module_eval(<<'.,.,', 'parser.y', 900)
5549
+ module_eval(<<'.,.,', 'parser.y', 909)
5543
5550
  def _reduce_426(val, _values, result)
5544
- FourArg.new(*val[1].to_a, val[4]).apply(@asm, val[0])
5551
+ rt, rt2, rn = *val[1].to_a
5552
+ FourArg.new(rt, rt2, [rn], val[4]).apply(@asm, val[0])
5545
5553
 
5546
5554
  result
5547
5555
  end
5548
5556
  .,.,
5549
5557
 
5550
- module_eval(<<'.,.,', 'parser.y', 903)
5558
+ module_eval(<<'.,.,', 'parser.y', 913)
5551
5559
  def _reduce_427(val, _values, result)
5552
5560
  a, b, c = *val[1].to_a
5553
5561
  ThreeArg.new(a, b, [c]).apply(@asm, val[0])
@@ -5556,7 +5564,7 @@ module_eval(<<'.,.,', 'parser.y', 903)
5556
5564
  end
5557
5565
  .,.,
5558
5566
 
5559
- module_eval(<<'.,.,', 'parser.y', 910)
5567
+ module_eval(<<'.,.,', 'parser.y', 920)
5560
5568
  def _reduce_428(val, _values, result)
5561
5569
  result = TwoArg.new(val[0], val[2])
5562
5570
 
@@ -5564,7 +5572,7 @@ module_eval(<<'.,.,', 'parser.y', 910)
5564
5572
  end
5565
5573
  .,.,
5566
5574
 
5567
- module_eval(<<'.,.,', 'parser.y', 913)
5575
+ module_eval(<<'.,.,', 'parser.y', 923)
5568
5576
  def _reduce_429(val, _values, result)
5569
5577
  result = TwoArg.new(val[0], val[2])
5570
5578
 
@@ -5572,7 +5580,7 @@ module_eval(<<'.,.,', 'parser.y', 913)
5572
5580
  end
5573
5581
  .,.,
5574
5582
 
5575
- module_eval(<<'.,.,', 'parser.y', 916)
5583
+ module_eval(<<'.,.,', 'parser.y', 926)
5576
5584
  def _reduce_430(val, _values, result)
5577
5585
  result = ThreeArg.new(val[0], val[2], :!)
5578
5586
 
@@ -5580,15 +5588,15 @@ module_eval(<<'.,.,', 'parser.y', 916)
5580
5588
  end
5581
5589
  .,.,
5582
5590
 
5583
- module_eval(<<'.,.,', 'parser.y', 919)
5591
+ module_eval(<<'.,.,', 'parser.y', 929)
5584
5592
  def _reduce_431(val, _values, result)
5585
- result = ThreeArg.new(val[0], val[2], val[5])
5593
+ result = ThreeArg.new(val[0], [val[2]], val[5])
5586
5594
 
5587
5595
  result
5588
5596
  end
5589
5597
  .,.,
5590
5598
 
5591
- module_eval(<<'.,.,', 'parser.y', 922)
5599
+ module_eval(<<'.,.,', 'parser.y', 932)
5592
5600
  def _reduce_432(val, _values, result)
5593
5601
  result = TwoArg.new(val[0], [val[2]])
5594
5602
 
@@ -5596,7 +5604,7 @@ module_eval(<<'.,.,', 'parser.y', 922)
5596
5604
  end
5597
5605
  .,.,
5598
5606
 
5599
- module_eval(<<'.,.,', 'parser.y', 925)
5607
+ module_eval(<<'.,.,', 'parser.y', 935)
5600
5608
  def _reduce_433(val, _values, result)
5601
5609
  result = TwoArg.new(val[0], val[2])
5602
5610
 
@@ -5604,14 +5612,14 @@ module_eval(<<'.,.,', 'parser.y', 925)
5604
5612
  end
5605
5613
  .,.,
5606
5614
 
5607
- module_eval(<<'.,.,', 'parser.y', 930)
5615
+ module_eval(<<'.,.,', 'parser.y', 940)
5608
5616
  def _reduce_434(val, _values, result)
5609
5617
  val[1].apply(@asm, val[0])
5610
5618
  result
5611
5619
  end
5612
5620
  .,.,
5613
5621
 
5614
- module_eval(<<'.,.,', 'parser.y', 935)
5622
+ module_eval(<<'.,.,', 'parser.y', 945)
5615
5623
  def _reduce_435(val, _values, result)
5616
5624
  result = TwoArg.new(val[0], val[2])
5617
5625
 
@@ -5619,7 +5627,7 @@ module_eval(<<'.,.,', 'parser.y', 935)
5619
5627
  end
5620
5628
  .,.,
5621
5629
 
5622
- module_eval(<<'.,.,', 'parser.y', 938)
5630
+ module_eval(<<'.,.,', 'parser.y', 948)
5623
5631
  def _reduce_436(val, _values, result)
5624
5632
  result = TwoArg.new(val[0], val[2])
5625
5633
 
@@ -5627,7 +5635,7 @@ module_eval(<<'.,.,', 'parser.y', 938)
5627
5635
  end
5628
5636
  .,.,
5629
5637
 
5630
- module_eval(<<'.,.,', 'parser.y', 941)
5638
+ module_eval(<<'.,.,', 'parser.y', 951)
5631
5639
  def _reduce_437(val, _values, result)
5632
5640
  result = TwoArg.new(val[0], val[2])
5633
5641
 
@@ -5635,7 +5643,7 @@ module_eval(<<'.,.,', 'parser.y', 941)
5635
5643
  end
5636
5644
  .,.,
5637
5645
 
5638
- module_eval(<<'.,.,', 'parser.y', 944)
5646
+ module_eval(<<'.,.,', 'parser.y', 954)
5639
5647
  def _reduce_438(val, _values, result)
5640
5648
  result = ThreeArg.new(val[0], val[2], :!)
5641
5649
 
@@ -5643,7 +5651,7 @@ module_eval(<<'.,.,', 'parser.y', 944)
5643
5651
  end
5644
5652
  .,.,
5645
5653
 
5646
- module_eval(<<'.,.,', 'parser.y', 947)
5654
+ module_eval(<<'.,.,', 'parser.y', 957)
5647
5655
  def _reduce_439(val, _values, result)
5648
5656
  result = ThreeArg.new(val[0], val[2], val[5])
5649
5657
 
@@ -5651,7 +5659,7 @@ module_eval(<<'.,.,', 'parser.y', 947)
5651
5659
  end
5652
5660
  .,.,
5653
5661
 
5654
- module_eval(<<'.,.,', 'parser.y', 950)
5662
+ module_eval(<<'.,.,', 'parser.y', 960)
5655
5663
  def _reduce_440(val, _values, result)
5656
5664
  result = TwoArg.new(val[0], [val[2]])
5657
5665
 
@@ -5659,155 +5667,155 @@ module_eval(<<'.,.,', 'parser.y', 950)
5659
5667
  end
5660
5668
  .,.,
5661
5669
 
5662
- module_eval(<<'.,.,', 'parser.y', 953)
5670
+ module_eval(<<'.,.,', 'parser.y', 963)
5663
5671
  def _reduce_441(val, _values, result)
5664
- result = ThreeArg.new(val[0], val[2], val[5])
5672
+ result = ThreeArg.new(val[0], [val[2]], val[5])
5665
5673
 
5666
5674
  result
5667
5675
  end
5668
5676
  .,.,
5669
5677
 
5670
- module_eval(<<'.,.,', 'parser.y', 958)
5678
+ module_eval(<<'.,.,', 'parser.y', 968)
5671
5679
  def _reduce_442(val, _values, result)
5672
5680
  val[1].apply(@asm, val[0])
5673
5681
  result
5674
5682
  end
5675
5683
  .,.,
5676
5684
 
5677
- module_eval(<<'.,.,', 'parser.y', 962)
5685
+ module_eval(<<'.,.,', 'parser.y', 972)
5678
5686
  def _reduce_443(val, _values, result)
5679
5687
  val[1].apply(@asm, val[0])
5680
5688
  result
5681
5689
  end
5682
5690
  .,.,
5683
5691
 
5684
- module_eval(<<'.,.,', 'parser.y', 966)
5692
+ module_eval(<<'.,.,', 'parser.y', 976)
5685
5693
  def _reduce_444(val, _values, result)
5686
5694
  result = TwoArg.new(val[0], [val[2]])
5687
5695
  result
5688
5696
  end
5689
5697
  .,.,
5690
5698
 
5691
- module_eval(<<'.,.,', 'parser.y', 967)
5699
+ module_eval(<<'.,.,', 'parser.y', 977)
5692
5700
  def _reduce_445(val, _values, result)
5693
5701
  result = TwoArg.new(val[0], val[2])
5694
5702
  result
5695
5703
  end
5696
5704
  .,.,
5697
5705
 
5698
- module_eval(<<'.,.,', 'parser.y', 971)
5706
+ module_eval(<<'.,.,', 'parser.y', 981)
5699
5707
  def _reduce_446(val, _values, result)
5700
5708
  result = TwoArg.new(val[0], [val[2]])
5701
5709
  result
5702
5710
  end
5703
5711
  .,.,
5704
5712
 
5705
- module_eval(<<'.,.,', 'parser.y', 972)
5713
+ module_eval(<<'.,.,', 'parser.y', 982)
5706
5714
  def _reduce_447(val, _values, result)
5707
5715
  result = TwoArg.new(val[0], val[2])
5708
5716
  result
5709
5717
  end
5710
5718
  .,.,
5711
5719
 
5712
- module_eval(<<'.,.,', 'parser.y', 976)
5720
+ module_eval(<<'.,.,', 'parser.y', 986)
5713
5721
  def _reduce_448(val, _values, result)
5714
5722
  val[1].apply(@asm, val[0])
5715
5723
  result
5716
5724
  end
5717
5725
  .,.,
5718
5726
 
5719
- module_eval(<<'.,.,', 'parser.y', 977)
5727
+ module_eval(<<'.,.,', 'parser.y', 987)
5720
5728
  def _reduce_449(val, _values, result)
5721
5729
  val[1].apply(@asm, val[0])
5722
5730
  result
5723
5731
  end
5724
5732
  .,.,
5725
5733
 
5726
- module_eval(<<'.,.,', 'parser.y', 980)
5734
+ module_eval(<<'.,.,', 'parser.y', 990)
5727
5735
  def _reduce_450(val, _values, result)
5728
5736
  val[1].apply(@asm, val[0])
5729
5737
  result
5730
5738
  end
5731
5739
  .,.,
5732
5740
 
5733
- module_eval(<<'.,.,', 'parser.y', 982)
5741
+ module_eval(<<'.,.,', 'parser.y', 992)
5734
5742
  def _reduce_451(val, _values, result)
5735
5743
  val[1].apply(@asm, val[0])
5736
5744
  result
5737
5745
  end
5738
5746
  .,.,
5739
5747
 
5740
- module_eval(<<'.,.,', 'parser.y', 985)
5748
+ module_eval(<<'.,.,', 'parser.y', 995)
5741
5749
  def _reduce_452(val, _values, result)
5742
5750
  val[1].apply(@asm, val[0])
5743
5751
  result
5744
5752
  end
5745
5753
  .,.,
5746
5754
 
5747
- module_eval(<<'.,.,', 'parser.y', 986)
5755
+ module_eval(<<'.,.,', 'parser.y', 996)
5748
5756
  def _reduce_453(val, _values, result)
5749
5757
  val[1].apply(@asm, val[0])
5750
5758
  result
5751
5759
  end
5752
5760
  .,.,
5753
5761
 
5754
- module_eval(<<'.,.,', 'parser.y', 987)
5762
+ module_eval(<<'.,.,', 'parser.y', 997)
5755
5763
  def _reduce_454(val, _values, result)
5756
5764
  val[1].apply(@asm, val[0])
5757
5765
  result
5758
5766
  end
5759
5767
  .,.,
5760
5768
 
5761
- module_eval(<<'.,.,', 'parser.y', 988)
5769
+ module_eval(<<'.,.,', 'parser.y', 998)
5762
5770
  def _reduce_455(val, _values, result)
5763
5771
  val[1].apply(@asm, val[0])
5764
5772
  result
5765
5773
  end
5766
5774
  .,.,
5767
5775
 
5768
- module_eval(<<'.,.,', 'parser.y', 993)
5776
+ module_eval(<<'.,.,', 'parser.y', 1003)
5769
5777
  def _reduce_456(val, _values, result)
5770
- FourArg.new(*val[1].to_a, val[3]).apply(@asm, val[0])
5778
+ FourArg.new(*val[1].to_a, [val[3]]).apply(@asm, val[0])
5771
5779
 
5772
5780
  result
5773
5781
  end
5774
5782
  .,.,
5775
5783
 
5776
- module_eval(<<'.,.,', 'parser.y', 996)
5784
+ module_eval(<<'.,.,', 'parser.y', 1006)
5777
5785
  def _reduce_457(val, _values, result)
5778
- FourArg.new(*val[1].to_a, val[3]).apply(@asm, val[0])
5786
+ FourArg.new(*val[1].to_a, [val[3]]).apply(@asm, val[0])
5779
5787
 
5780
5788
  result
5781
5789
  end
5782
5790
  .,.,
5783
5791
 
5784
- module_eval(<<'.,.,', 'parser.y', 1002)
5792
+ module_eval(<<'.,.,', 'parser.y', 1012)
5785
5793
  def _reduce_458(val, _values, result)
5786
- ThreeArg.new(*val[1].to_a, val[3]).apply(@asm, val[0])
5794
+ ThreeArg.new(*val[1].to_a, [val[3]]).apply(@asm, val[0])
5787
5795
 
5788
5796
  result
5789
5797
  end
5790
5798
  .,.,
5791
5799
 
5792
- module_eval(<<'.,.,', 'parser.y', 1005)
5800
+ module_eval(<<'.,.,', 'parser.y', 1015)
5793
5801
  def _reduce_459(val, _values, result)
5794
- ThreeArg.new(*val[1].to_a, val[3]).apply(@asm, val[0])
5802
+ ThreeArg.new(*val[1].to_a, [val[3]]).apply(@asm, val[0])
5795
5803
 
5796
5804
  result
5797
5805
  end
5798
5806
  .,.,
5799
5807
 
5800
- module_eval(<<'.,.,', 'parser.y', 1011)
5808
+ module_eval(<<'.,.,', 'parser.y', 1021)
5801
5809
  def _reduce_460(val, _values, result)
5802
- ThreeArg.new(*val[1].to_a, val[3]).apply(@asm, val[0])
5810
+ ThreeArg.new(*val[1].to_a, [val[3]]).apply(@asm, val[0])
5803
5811
 
5804
5812
  result
5805
5813
  end
5806
5814
  .,.,
5807
5815
 
5808
- module_eval(<<'.,.,', 'parser.y', 1017)
5816
+ module_eval(<<'.,.,', 'parser.y', 1027)
5809
5817
  def _reduce_461(val, _values, result)
5810
- ThreeArg.new(*val[1].to_a, val[3]).apply(@asm, val[0])
5818
+ ThreeArg.new(*val[1].to_a, [val[3]]).apply(@asm, val[0])
5811
5819
 
5812
5820
  result
5813
5821
  end
@@ -5817,7 +5825,7 @@ module_eval(<<'.,.,', 'parser.y', 1017)
5817
5825
 
5818
5826
  # reduce 463 omitted
5819
5827
 
5820
- module_eval(<<'.,.,', 'parser.y', 1028)
5828
+ module_eval(<<'.,.,', 'parser.y', 1038)
5821
5829
  def _reduce_464(val, _values, result)
5822
5830
  @asm.sys(val[1], val[3], val[5], val[7])
5823
5831
 
@@ -5825,7 +5833,7 @@ module_eval(<<'.,.,', 'parser.y', 1028)
5825
5833
  end
5826
5834
  .,.,
5827
5835
 
5828
- module_eval(<<'.,.,', 'parser.y', 1031)
5836
+ module_eval(<<'.,.,', 'parser.y', 1041)
5829
5837
  def _reduce_465(val, _values, result)
5830
5838
  @asm.sys(val[1], val[3], val[5], val[7], val[9])
5831
5839
 
@@ -5833,7 +5841,7 @@ module_eval(<<'.,.,', 'parser.y', 1031)
5833
5841
  end
5834
5842
  .,.,
5835
5843
 
5836
- module_eval(<<'.,.,', 'parser.y', 1036)
5844
+ module_eval(<<'.,.,', 'parser.y', 1046)
5837
5845
  def _reduce_466(val, _values, result)
5838
5846
  @asm.sysl(val[1], val[3], val[5], val[7], val[9])
5839
5847
 
@@ -5841,7 +5849,7 @@ module_eval(<<'.,.,', 'parser.y', 1036)
5841
5849
  end
5842
5850
  .,.,
5843
5851
 
5844
- module_eval(<<'.,.,', 'parser.y', 1042)
5852
+ module_eval(<<'.,.,', 'parser.y', 1052)
5845
5853
  def _reduce_467(val, _values, result)
5846
5854
  result = ThreeArg.new(val[0], val[2], val[4])
5847
5855
 
@@ -5849,7 +5857,7 @@ module_eval(<<'.,.,', 'parser.y', 1042)
5849
5857
  end
5850
5858
  .,.,
5851
5859
 
5852
- module_eval(<<'.,.,', 'parser.y', 1045)
5860
+ module_eval(<<'.,.,', 'parser.y', 1055)
5853
5861
  def _reduce_468(val, _values, result)
5854
5862
  result = ThreeArg.new(val[0], val[2], val[4])
5855
5863
 
@@ -5857,42 +5865,42 @@ module_eval(<<'.,.,', 'parser.y', 1045)
5857
5865
  end
5858
5866
  .,.,
5859
5867
 
5860
- module_eval(<<'.,.,', 'parser.y', 1050)
5868
+ module_eval(<<'.,.,', 'parser.y', 1060)
5861
5869
  def _reduce_469(val, _values, result)
5862
5870
  @asm.tlbi(val[1].to_sym)
5863
5871
  result
5864
5872
  end
5865
5873
  .,.,
5866
5874
 
5867
- module_eval(<<'.,.,', 'parser.y', 1051)
5875
+ module_eval(<<'.,.,', 'parser.y', 1061)
5868
5876
  def _reduce_470(val, _values, result)
5869
5877
  @asm.tlbi(val[1].to_sym, val[3])
5870
5878
  result
5871
5879
  end
5872
5880
  .,.,
5873
5881
 
5874
- module_eval(<<'.,.,', 'parser.y', 1055)
5882
+ module_eval(<<'.,.,', 'parser.y', 1065)
5875
5883
  def _reduce_471(val, _values, result)
5876
5884
  val[1].apply(@asm, val[0])
5877
5885
  result
5878
5886
  end
5879
5887
  .,.,
5880
5888
 
5881
- module_eval(<<'.,.,', 'parser.y', 1056)
5889
+ module_eval(<<'.,.,', 'parser.y', 1066)
5882
5890
  def _reduce_472(val, _values, result)
5883
5891
  val[1].apply(@asm, val[0])
5884
5892
  result
5885
5893
  end
5886
5894
  .,.,
5887
5895
 
5888
- module_eval(<<'.,.,', 'parser.y', 1057)
5896
+ module_eval(<<'.,.,', 'parser.y', 1067)
5889
5897
  def _reduce_473(val, _values, result)
5890
5898
  val[1].apply(@asm, val[0])
5891
5899
  result
5892
5900
  end
5893
5901
  .,.,
5894
5902
 
5895
- module_eval(<<'.,.,', 'parser.y', 1062)
5903
+ module_eval(<<'.,.,', 'parser.y', 1072)
5896
5904
  def _reduce_474(val, _values, result)
5897
5905
  result = FourArg.new(*val.values_at(0, 2, 4, 6))
5898
5906
 
@@ -5900,7 +5908,7 @@ module_eval(<<'.,.,', 'parser.y', 1062)
5900
5908
  end
5901
5909
  .,.,
5902
5910
 
5903
- module_eval(<<'.,.,', 'parser.y', 1065)
5911
+ module_eval(<<'.,.,', 'parser.y', 1075)
5904
5912
  def _reduce_475(val, _values, result)
5905
5913
  result = FourArg.new(*val.values_at(0, 2, 4, 6))
5906
5914
 
@@ -5908,7 +5916,7 @@ module_eval(<<'.,.,', 'parser.y', 1065)
5908
5916
  end
5909
5917
  .,.,
5910
5918
 
5911
- module_eval(<<'.,.,', 'parser.y', 1071)
5919
+ module_eval(<<'.,.,', 'parser.y', 1081)
5912
5920
  def _reduce_476(val, _values, result)
5913
5921
  result = FourArg.new(*val.values_at(0, 2, 4, 6))
5914
5922
 
@@ -5916,15 +5924,15 @@ module_eval(<<'.,.,', 'parser.y', 1071)
5916
5924
  end
5917
5925
  .,.,
5918
5926
 
5919
- module_eval(<<'.,.,', 'parser.y', 1077)
5927
+ module_eval(<<'.,.,', 'parser.y', 1087)
5920
5928
  def _reduce_477(val, _values, result)
5921
- result = ThreeArg.new(*val.values_at(0, 2, 4))
5929
+ result = ThreeArg.new(val[0], val[2], [val[4]])
5922
5930
 
5923
5931
  result
5924
5932
  end
5925
5933
  .,.,
5926
5934
 
5927
- module_eval(<<'.,.,', 'parser.y', 1083)
5935
+ module_eval(<<'.,.,', 'parser.y', 1093)
5928
5936
  def _reduce_478(val, _values, result)
5929
5937
  result = ThreeArg.new(*val.values_at(0, 2, 4))
5930
5938
 
@@ -5932,7 +5940,7 @@ module_eval(<<'.,.,', 'parser.y', 1083)
5932
5940
  end
5933
5941
  .,.,
5934
5942
 
5935
- module_eval(<<'.,.,', 'parser.y', 1086)
5943
+ module_eval(<<'.,.,', 'parser.y', 1096)
5936
5944
  def _reduce_479(val, _values, result)
5937
5945
  result = ThreeArg.new(*val.values_at(0, 2, 4))
5938
5946
 
@@ -5944,7 +5952,7 @@ module_eval(<<'.,.,', 'parser.y', 1086)
5944
5952
 
5945
5953
  # reduce 481 omitted
5946
5954
 
5947
- module_eval(<<'.,.,', 'parser.y', 1097)
5955
+ module_eval(<<'.,.,', 'parser.y', 1107)
5948
5956
  def _reduce_482(val, _values, result)
5949
5957
  result = ThreeArg.new(*val.values_at(0, 2, 4))
5950
5958
 
@@ -5952,7 +5960,7 @@ module_eval(<<'.,.,', 'parser.y', 1097)
5952
5960
  end
5953
5961
  .,.,
5954
5962
 
5955
- module_eval(<<'.,.,', 'parser.y', 1103)
5963
+ module_eval(<<'.,.,', 'parser.y', 1113)
5956
5964
  def _reduce_483(val, _values, result)
5957
5965
  result = ThreeArg.new(*val.values_at(0, 2, 4))
5958
5966
 
@@ -5960,7 +5968,7 @@ module_eval(<<'.,.,', 'parser.y', 1103)
5960
5968
  end
5961
5969
  .,.,
5962
5970
 
5963
- module_eval(<<'.,.,', 'parser.y', 1109)
5971
+ module_eval(<<'.,.,', 'parser.y', 1119)
5964
5972
  def _reduce_484(val, _values, result)
5965
5973
  result = ThreeArg.new(*val.values_at(0, 2, 4))
5966
5974
 
@@ -5968,7 +5976,7 @@ module_eval(<<'.,.,', 'parser.y', 1109)
5968
5976
  end
5969
5977
  .,.,
5970
5978
 
5971
- module_eval(<<'.,.,', 'parser.y', 1115)
5979
+ module_eval(<<'.,.,', 'parser.y', 1125)
5972
5980
  def _reduce_485(val, _values, result)
5973
5981
  result = TwoArg.new(*val.values_at(0, 2))
5974
5982
 
@@ -5976,7 +5984,7 @@ module_eval(<<'.,.,', 'parser.y', 1115)
5976
5984
  end
5977
5985
  .,.,
5978
5986
 
5979
- module_eval(<<'.,.,', 'parser.y', 1121)
5987
+ module_eval(<<'.,.,', 'parser.y', 1131)
5980
5988
  def _reduce_486(val, _values, result)
5981
5989
  result = FourArg.new(*val.values_at(0, 2, 4, 6))
5982
5990
 
@@ -5984,7 +5992,7 @@ module_eval(<<'.,.,', 'parser.y', 1121)
5984
5992
  end
5985
5993
  .,.,
5986
5994
 
5987
- module_eval(<<'.,.,', 'parser.y', 1124)
5995
+ module_eval(<<'.,.,', 'parser.y', 1134)
5988
5996
  def _reduce_487(val, _values, result)
5989
5997
  result = FourArg.new(*val.values_at(0, 2, 4, 6))
5990
5998
 
@@ -5992,28 +6000,28 @@ module_eval(<<'.,.,', 'parser.y', 1124)
5992
6000
  end
5993
6001
  .,.,
5994
6002
 
5995
- module_eval(<<'.,.,', 'parser.y', 1129)
6003
+ module_eval(<<'.,.,', 'parser.y', 1139)
5996
6004
  def _reduce_488(val, _values, result)
5997
6005
  result = val[0].to_sym
5998
6006
  result
5999
6007
  end
6000
6008
  .,.,
6001
6009
 
6002
- module_eval(<<'.,.,', 'parser.y', 1130)
6010
+ module_eval(<<'.,.,', 'parser.y', 1140)
6003
6011
  def _reduce_489(val, _values, result)
6004
6012
  result = val[0].to_sym
6005
6013
  result
6006
6014
  end
6007
6015
  .,.,
6008
6016
 
6009
- module_eval(<<'.,.,', 'parser.y', 1131)
6017
+ module_eval(<<'.,.,', 'parser.y', 1141)
6010
6018
  def _reduce_490(val, _values, result)
6011
6019
  result = val[0].to_sym
6012
6020
  result
6013
6021
  end
6014
6022
  .,.,
6015
6023
 
6016
- module_eval(<<'.,.,', 'parser.y', 1132)
6024
+ module_eval(<<'.,.,', 'parser.y', 1142)
6017
6025
  def _reduce_491(val, _values, result)
6018
6026
  result = val[0].to_sym
6019
6027
  result
@@ -6024,14 +6032,14 @@ module_eval(<<'.,.,', 'parser.y', 1132)
6024
6032
 
6025
6033
  # reduce 493 omitted
6026
6034
 
6027
- module_eval(<<'.,.,', 'parser.y', 1140)
6035
+ module_eval(<<'.,.,', 'parser.y', 1150)
6028
6036
  def _reduce_494(val, _values, result)
6029
6037
  result = TwoArg.new(val[0], val[2])
6030
6038
  result
6031
6039
  end
6032
6040
  .,.,
6033
6041
 
6034
- module_eval(<<'.,.,', 'parser.y', 1143)
6042
+ module_eval(<<'.,.,', 'parser.y', 1153)
6035
6043
  def _reduce_495(val, _values, result)
6036
6044
  result = TwoArg.new(val[0], val[2])
6037
6045
  result
@@ -6040,42 +6048,42 @@ module_eval(<<'.,.,', 'parser.y', 1143)
6040
6048
 
6041
6049
  # reduce 496 omitted
6042
6050
 
6043
- module_eval(<<'.,.,', 'parser.y', 1148)
6051
+ module_eval(<<'.,.,', 'parser.y', 1158)
6044
6052
  def _reduce_497(val, _values, result)
6045
6053
  result = ThreeArg.new(val[0], val[2], val[4])
6046
6054
  result
6047
6055
  end
6048
6056
  .,.,
6049
6057
 
6050
- module_eval(<<'.,.,', 'parser.y', 1152)
6058
+ module_eval(<<'.,.,', 'parser.y', 1162)
6051
6059
  def _reduce_498(val, _values, result)
6052
6060
  result = ThreeArg.new(val[0], val[2], val[4])
6053
6061
  result
6054
6062
  end
6055
6063
  .,.,
6056
6064
 
6057
- module_eval(<<'.,.,', 'parser.y', 1156)
6065
+ module_eval(<<'.,.,', 'parser.y', 1166)
6058
6066
  def _reduce_499(val, _values, result)
6059
6067
  result = ThreeArg.new(val[0], val[2], val[4])
6060
6068
  result
6061
6069
  end
6062
6070
  .,.,
6063
6071
 
6064
- module_eval(<<'.,.,', 'parser.y', 1160)
6072
+ module_eval(<<'.,.,', 'parser.y', 1170)
6065
6073
  def _reduce_500(val, _values, result)
6066
6074
  result = TwoArg.new(val[0], val[2])
6067
6075
  result
6068
6076
  end
6069
6077
  .,.,
6070
6078
 
6071
- module_eval(<<'.,.,', 'parser.y', 1164)
6079
+ module_eval(<<'.,.,', 'parser.y', 1174)
6072
6080
  def _reduce_501(val, _values, result)
6073
6081
  result = TwoArg.new(val[0], val[2])
6074
6082
  result
6075
6083
  end
6076
6084
  .,.,
6077
6085
 
6078
- module_eval(<<'.,.,', 'parser.y', 1168)
6086
+ module_eval(<<'.,.,', 'parser.y', 1178)
6079
6087
  def _reduce_502(val, _values, result)
6080
6088
  result = ThreeArg.new(val[0], val[2], val[4])
6081
6089
  result
@@ -6086,35 +6094,35 @@ module_eval(<<'.,.,', 'parser.y', 1168)
6086
6094
 
6087
6095
  # reduce 504 omitted
6088
6096
 
6089
- module_eval(<<'.,.,', 'parser.y', 1177)
6097
+ module_eval(<<'.,.,', 'parser.y', 1187)
6090
6098
  def _reduce_505(val, _values, result)
6091
6099
  result = FourArg.new(val[0], val[2], val[4], val[6])
6092
6100
  result
6093
6101
  end
6094
6102
  .,.,
6095
6103
 
6096
- module_eval(<<'.,.,', 'parser.y', 1178)
6104
+ module_eval(<<'.,.,', 'parser.y', 1188)
6097
6105
  def _reduce_506(val, _values, result)
6098
6106
  result = FourArg.new(val[0], val[2], val[4], val[6])
6099
6107
  result
6100
6108
  end
6101
6109
  .,.,
6102
6110
 
6103
- module_eval(<<'.,.,', 'parser.y', 1182)
6111
+ module_eval(<<'.,.,', 'parser.y', 1192)
6104
6112
  def _reduce_507(val, _values, result)
6105
6113
  result = TwoArg.new(val[0], val[2])
6106
6114
  result
6107
6115
  end
6108
6116
  .,.,
6109
6117
 
6110
- module_eval(<<'.,.,', 'parser.y', 1183)
6118
+ module_eval(<<'.,.,', 'parser.y', 1193)
6111
6119
  def _reduce_508(val, _values, result)
6112
6120
  result = TwoArg.new(val[0], val[2])
6113
6121
  result
6114
6122
  end
6115
6123
  .,.,
6116
6124
 
6117
- module_eval(<<'.,.,', 'parser.y', 1188)
6125
+ module_eval(<<'.,.,', 'parser.y', 1198)
6118
6126
  def _reduce_509(val, _values, result)
6119
6127
  result = ThreeArg.new(val[0], val[2], val[4])
6120
6128
 
@@ -6122,7 +6130,7 @@ module_eval(<<'.,.,', 'parser.y', 1188)
6122
6130
  end
6123
6131
  .,.,
6124
6132
 
6125
- module_eval(<<'.,.,', 'parser.y', 1191)
6133
+ module_eval(<<'.,.,', 'parser.y', 1201)
6126
6134
  def _reduce_510(val, _values, result)
6127
6135
  result = ThreeArg.new(val[0], val[2], val[4])
6128
6136
 
@@ -6130,7 +6138,7 @@ module_eval(<<'.,.,', 'parser.y', 1191)
6130
6138
  end
6131
6139
  .,.,
6132
6140
 
6133
- module_eval(<<'.,.,', 'parser.y', 1194)
6141
+ module_eval(<<'.,.,', 'parser.y', 1204)
6134
6142
  def _reduce_511(val, _values, result)
6135
6143
  result = ThreeArg.new(val[0], val[2], val[4])
6136
6144
 
@@ -6138,7 +6146,7 @@ module_eval(<<'.,.,', 'parser.y', 1194)
6138
6146
  end
6139
6147
  .,.,
6140
6148
 
6141
- module_eval(<<'.,.,', 'parser.y', 1197)
6149
+ module_eval(<<'.,.,', 'parser.y', 1207)
6142
6150
  def _reduce_512(val, _values, result)
6143
6151
  result = ThreeArg.new(val[0], val[2], val[4])
6144
6152
 
@@ -6146,7 +6154,7 @@ module_eval(<<'.,.,', 'parser.y', 1197)
6146
6154
  end
6147
6155
  .,.,
6148
6156
 
6149
- module_eval(<<'.,.,', 'parser.y', 1200)
6157
+ module_eval(<<'.,.,', 'parser.y', 1210)
6150
6158
  def _reduce_513(val, _values, result)
6151
6159
  result = ThreeArg.new(val[0], val[2], val[4])
6152
6160
 
@@ -6154,7 +6162,7 @@ module_eval(<<'.,.,', 'parser.y', 1200)
6154
6162
  end
6155
6163
  .,.,
6156
6164
 
6157
- module_eval(<<'.,.,', 'parser.y', 1203)
6165
+ module_eval(<<'.,.,', 'parser.y', 1213)
6158
6166
  def _reduce_514(val, _values, result)
6159
6167
  result = ThreeArg.new(val[0], val[2], val[4])
6160
6168
 
@@ -6162,7 +6170,7 @@ module_eval(<<'.,.,', 'parser.y', 1203)
6162
6170
  end
6163
6171
  .,.,
6164
6172
 
6165
- module_eval(<<'.,.,', 'parser.y', 1206)
6173
+ module_eval(<<'.,.,', 'parser.y', 1216)
6166
6174
  def _reduce_515(val, _values, result)
6167
6175
  result = ThreeArg.new(val[0], val[2], val[4])
6168
6176
 
@@ -6170,7 +6178,7 @@ module_eval(<<'.,.,', 'parser.y', 1206)
6170
6178
  end
6171
6179
  .,.,
6172
6180
 
6173
- module_eval(<<'.,.,', 'parser.y', 1212)
6181
+ module_eval(<<'.,.,', 'parser.y', 1222)
6174
6182
  def _reduce_516(val, _values, result)
6175
6183
  result = FourArg.new(val[0], val[2], val[4], val[6])
6176
6184
 
@@ -6178,7 +6186,7 @@ module_eval(<<'.,.,', 'parser.y', 1212)
6178
6186
  end
6179
6187
  .,.,
6180
6188
 
6181
- module_eval(<<'.,.,', 'parser.y', 1215)
6189
+ module_eval(<<'.,.,', 'parser.y', 1225)
6182
6190
  def _reduce_517(val, _values, result)
6183
6191
  result = FourArg.new(val[0], val[2], val[4], val[6])
6184
6192
 
@@ -6186,14 +6194,14 @@ module_eval(<<'.,.,', 'parser.y', 1215)
6186
6194
  end
6187
6195
  .,.,
6188
6196
 
6189
- module_eval(<<'.,.,', 'parser.y', 1220)
6197
+ module_eval(<<'.,.,', 'parser.y', 1230)
6190
6198
  def _reduce_518(val, _values, result)
6191
6199
  result = val[1]
6192
6200
  result
6193
6201
  end
6194
6202
  .,.,
6195
6203
 
6196
- module_eval(<<'.,.,', 'parser.y', 1221)
6204
+ module_eval(<<'.,.,', 'parser.y', 1231)
6197
6205
  def _reduce_519(val, _values, result)
6198
6206
  result = val[0]
6199
6207
  result