debase-ruby_core_source 3.2.3 → 3.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (148) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +9 -0
  3. data/Rakefile +2 -1
  4. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/ccan/list/list.h +4 -2
  5. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/dln.h +1 -0
  6. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/eval_intern.h +4 -2
  7. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/insns.inc +2 -0
  8. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/insns_info.inc +269 -187
  9. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/class.h +46 -0
  10. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/cont.h +3 -0
  11. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/encoding.h +3 -0
  12. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/error.h +3 -0
  13. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/gc.h +2 -0
  14. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/object.h +1 -0
  15. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/random.h +1 -0
  16. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/string.h +0 -1
  17. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/symbol.h +3 -0
  18. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/thread.h +3 -0
  19. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/transcode.h +3 -0
  20. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/variable.h +5 -3
  21. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/vm.h +5 -0
  22. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/iseq.h +5 -1
  23. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/method.h +0 -1
  24. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/optunifs.inc +1 -1
  25. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/parse.h +2 -2
  26. data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/ast.h +4612 -0
  27. data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/defines.h +94 -0
  28. data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/diagnostic.h +297 -0
  29. data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/encoding.h +248 -0
  30. data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/extension.h +18 -0
  31. data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/node.h +57 -0
  32. data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/options.h +204 -0
  33. data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/pack.h +152 -0
  34. data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/parser.h +716 -0
  35. data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/prettyprint.h +26 -0
  36. data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/prism.h +272 -0
  37. data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/regexp.h +33 -0
  38. data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/util/pm_buffer.h +146 -0
  39. data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/util/pm_char.h +205 -0
  40. data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/util/pm_constant_pool.h +191 -0
  41. data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/util/pm_list.h +97 -0
  42. data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/util/pm_memchr.h +29 -0
  43. data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/util/pm_newline_list.h +104 -0
  44. data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/util/pm_state_stack.h +42 -0
  45. data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/util/pm_string.h +150 -0
  46. data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/util/pm_string_list.h +44 -0
  47. data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/util/pm_strncasecmp.h +32 -0
  48. data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/util/pm_strpbrk.h +43 -0
  49. data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/version.h +29 -0
  50. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/prism_compile.h +12 -1
  51. data/lib/debase/ruby_core_source/ruby-3.3.0-p0/revision.h +5 -0
  52. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/rjit.h +6 -8
  53. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/rjit_c.h +0 -1
  54. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/rubyparser.h +1 -1
  55. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/shape.h +2 -12
  56. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/thread_pthread.h +1 -1
  57. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/variable.h +2 -0
  58. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/version.h +1 -1
  59. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/vm.inc +189 -136
  60. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/vm_callinfo.h +8 -1
  61. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/vm_core.h +64 -5
  62. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/vm_insnhelper.h +4 -14
  63. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/vmtc.inc +2 -0
  64. data/lib/debase/ruby_core_source/version.rb +1 -1
  65. metadata +148 -124
  66. data/lib/debase/ruby_core_source/ruby-3.3.0-preview3/revision.h +0 -5
  67. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/addr2line.h +0 -0
  68. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/builtin.h +0 -0
  69. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/ccan/build_assert/build_assert.h +0 -0
  70. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/ccan/check_type/check_type.h +0 -0
  71. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/ccan/container_of/container_of.h +0 -0
  72. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/ccan/str/str.h +0 -0
  73. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/constant.h +0 -0
  74. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/darray.h +0 -0
  75. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/debug_counter.h +0 -0
  76. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/encindex.h +0 -0
  77. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/hrtime.h +0 -0
  78. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/id.h +0 -0
  79. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/id_table.h +0 -0
  80. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/array.h +0 -0
  81. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/basic_operators.h +0 -0
  82. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/bignum.h +0 -0
  83. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/bits.h +0 -0
  84. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/cmdlineopt.h +0 -0
  85. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/compar.h +0 -0
  86. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/compile.h +0 -0
  87. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/compilers.h +0 -0
  88. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/complex.h +0 -0
  89. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/dir.h +0 -0
  90. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/enc.h +0 -0
  91. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/enum.h +0 -0
  92. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/enumerator.h +0 -0
  93. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/eval.h +0 -0
  94. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/file.h +0 -0
  95. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/fixnum.h +0 -0
  96. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/hash.h +0 -0
  97. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/imemo.h +0 -0
  98. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/inits.h +0 -0
  99. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/io.h +0 -0
  100. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/load.h +0 -0
  101. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/loadpath.h +0 -0
  102. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/math.h +0 -0
  103. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/missing.h +0 -0
  104. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/numeric.h +0 -0
  105. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/parse.h +0 -0
  106. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/proc.h +0 -0
  107. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/process.h +0 -0
  108. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/ractor.h +0 -0
  109. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/range.h +0 -0
  110. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/rational.h +0 -0
  111. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/re.h +0 -0
  112. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/ruby_parser.h +0 -0
  113. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/sanitizers.h +0 -0
  114. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/serial.h +0 -0
  115. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/signal.h +0 -0
  116. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/static_assert.h +0 -0
  117. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/struct.h +0 -0
  118. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/time.h +0 -0
  119. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/util.h +0 -0
  120. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/warnings.h +0 -0
  121. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal.h +0 -0
  122. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/known_errors.inc +0 -0
  123. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/node.h +0 -0
  124. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/node_name.inc +0 -0
  125. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/optinsn.inc +0 -0
  126. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/parser_bits.h +0 -0
  127. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/parser_node.h +0 -0
  128. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/parser_st.h +0 -0
  129. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/parser_value.h +0 -0
  130. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/probes_helper.h +0 -0
  131. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/ractor_core.h +0 -0
  132. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/regenc.h +0 -0
  133. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/regint.h +0 -0
  134. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/regparse.h +0 -0
  135. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/ruby_assert.h +0 -0
  136. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/ruby_atomic.h +0 -0
  137. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/siphash.h +0 -0
  138. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/symbol.h +0 -0
  139. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/thread_none.h +0 -0
  140. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/thread_win32.h +0 -0
  141. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/timev.h +0 -0
  142. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/transcode_data.h +0 -0
  143. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/vm_call_iseq_optimized.inc +0 -0
  144. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/vm_debug.h +0 -0
  145. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/vm_exec.h +0 -0
  146. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/vm_opts.h +0 -0
  147. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/vm_sync.h +0 -0
  148. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/yjit.h +0 -0
@@ -118,6 +118,7 @@ const char rb_vm_insn_name_base[] =
118
118
  "expandarray" "\0"
119
119
  "concatarray" "\0"
120
120
  "splatarray" "\0"
121
+ "splatkw" "\0"
121
122
  "newhash" "\0"
122
123
  "newrange" "\0"
123
124
  "pop" "\0"
@@ -219,6 +220,7 @@ const char rb_vm_insn_name_base[] =
219
220
  "trace_expandarray" "\0"
220
221
  "trace_concatarray" "\0"
221
222
  "trace_splatarray" "\0"
223
+ "trace_splatkw" "\0"
222
224
  "trace_newhash" "\0"
223
225
  "trace_newrange" "\0"
224
226
  "trace_pop" "\0"
@@ -292,21 +294,21 @@ const char rb_vm_insn_name_base[] =
292
294
  const unsigned short rb_vm_insn_name_offset[] = {
293
295
  0, 4, 13, 22, 36, 50, 69, 80, 91, 111, 131, 148,
294
296
  165, 186, 198, 210, 220, 230, 237, 245, 255, 272, 282, 296,
295
- 308, 317, 324, 333, 349, 358, 366, 378, 390, 401, 409, 418,
296
- 422, 426, 431, 436, 448, 453, 458, 470, 478, 490, 501, 514,
297
- 524, 536, 549, 563, 568, 591, 603, 618, 628, 643, 661, 673,
298
- 685, 691, 697, 702, 711, 724, 734, 739, 757, 766, 776, 785,
299
- 793, 801, 808, 816, 823, 830, 837, 844, 853, 861, 868, 877,
300
- 886, 900, 914, 925, 934, 946, 955, 963, 980, 994, 1021, 1054,
301
- 1068, 1082, 1096, 1110, 1131, 1152, 1162, 1177, 1192, 1212, 1232, 1257,
302
- 1274, 1291, 1317, 1343, 1366, 1389, 1416, 1434, 1452, 1468, 1484, 1497,
303
- 1511, 1527, 1550, 1566, 1586, 1604, 1619, 1632, 1647, 1669, 1684, 1698,
304
- 1716, 1734, 1751, 1765, 1780, 1790, 1800, 1811, 1822, 1840, 1851, 1862,
305
- 1880, 1894, 1912, 1929, 1948, 1964, 1982, 2001, 2021, 2032, 2061, 2079,
306
- 2100, 2116, 2137, 2161, 2179, 2197, 2209, 2221, 2232, 2247, 2266, 2282,
307
- 2293, 2317, 2332, 2348, 2363, 2377, 2391, 2404, 2418, 2431, 2444, 2457,
308
- 2470, 2485, 2499, 2512, 2527, 2542, 2562, 2582, 2599, 2614, 2632, 2647,
309
- 2661, 2684, 2704, 2737, 2776, 2796, 2816, 2836, 2856, 2883,
297
+ 308, 317, 324, 333, 349, 358, 366, 378, 390, 401, 409, 417,
298
+ 426, 430, 434, 439, 444, 456, 461, 466, 478, 486, 498, 509,
299
+ 522, 532, 544, 557, 571, 576, 599, 611, 626, 636, 651, 669,
300
+ 681, 693, 699, 705, 710, 719, 732, 742, 747, 765, 774, 784,
301
+ 793, 801, 809, 816, 824, 831, 838, 845, 852, 861, 869, 876,
302
+ 885, 894, 908, 922, 933, 942, 954, 963, 971, 988, 1002, 1029,
303
+ 1062, 1076, 1090, 1104, 1118, 1139, 1160, 1170, 1185, 1200, 1220, 1240,
304
+ 1265, 1282, 1299, 1325, 1351, 1374, 1397, 1424, 1442, 1460, 1476, 1492,
305
+ 1505, 1519, 1535, 1558, 1574, 1594, 1612, 1627, 1640, 1655, 1677, 1692,
306
+ 1706, 1724, 1742, 1759, 1773, 1787, 1802, 1812, 1822, 1833, 1844, 1862,
307
+ 1873, 1884, 1902, 1916, 1934, 1951, 1970, 1986, 2004, 2023, 2043, 2054,
308
+ 2083, 2101, 2122, 2138, 2159, 2183, 2201, 2219, 2231, 2243, 2254, 2269,
309
+ 2288, 2304, 2315, 2339, 2354, 2370, 2385, 2399, 2413, 2426, 2440, 2453,
310
+ 2466, 2479, 2492, 2507, 2521, 2534, 2549, 2564, 2584, 2604, 2621, 2636,
311
+ 2654, 2669, 2683, 2706, 2726, 2759, 2798, 2818, 2838, 2858, 2878, 2905,
310
312
  };
311
313
 
312
314
  ASSERT_VM_INSTRUCTION_SIZE(rb_vm_insn_name_offset);
@@ -327,14 +329,14 @@ RUBY_SYMBOL_EXPORT_END
327
329
  #ifdef RUBY_VM_INSNS_INFO
328
330
  const uint8_t rb_vm_insn_len_info[] = {
329
331
  1, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2,
330
- 1, 3, 1, 2, 2, 2, 2, 3, 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 4, 4, 2,
331
- 3, 2, 4, 3, 3, 3, 2, 2, 3, 2, 3, 3, 3, 2, 1, 2, 2, 2, 2, 2, 3, 3, 2,
332
- 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 2, 2,
333
- 2, 3, 3, 2, 2, 2, 2, 1, 1, 1, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 2, 2,
334
- 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 3, 1, 2, 2, 2, 2, 3, 1, 2, 2, 2, 1, 1,
335
- 2, 1, 2, 2, 2, 2, 4, 4, 2, 3, 2, 4, 3, 3, 3, 2, 2, 3, 2, 3, 3, 3, 2,
336
- 1, 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2,
337
- 2, 3, 3, 2, 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 1, 1,
332
+ 1, 3, 1, 2, 2, 2, 2, 3, 1, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 4, 4,
333
+ 2, 3, 2, 4, 3, 3, 3, 2, 2, 3, 2, 3, 3, 3, 2, 1, 2, 2, 2, 2, 2, 3, 3,
334
+ 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 2,
335
+ 2, 2, 3, 3, 2, 2, 2, 2, 1, 1, 1, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 2,
336
+ 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 3, 1, 2, 2, 2, 2, 3, 1, 2, 1, 2, 2,
337
+ 1, 1, 2, 1, 2, 2, 2, 2, 4, 4, 2, 3, 2, 4, 3, 3, 3, 2, 2, 3, 2, 3, 3,
338
+ 3, 2, 1, 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2,
339
+ 2, 2, 2, 3, 3, 2, 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 1, 1,
338
340
  };
339
341
 
340
342
  ASSERT_VM_INSTRUCTION_SIZE(rb_vm_insn_len_info);
@@ -362,27 +364,7 @@ const char rb_vm_insn_op_base[] =
362
364
  "I" "\0" "I" "\0" "" "\0" "" "\0" "V" "\0"
363
365
  "N" "\0" "V" "\0" "N" "\0" "" "\0" "NN" "\0"
364
366
  "" "\0" "N" "\0" "N" "\0" "V" "\0" "V" "\0"
365
- "NN" "\0" "" "\0" "V" "\0" "N" "\0" "N" "\0"
366
- "" "\0" "" "\0" "N" "\0" "" "\0" "N" "\0"
367
- "N" "\0" "N" "\0" "N" "\0" "NVV" "\0" "IAV" "\0"
368
- "N" "\0" "LL" "\0" "N" "\0" "ISN" "\0" "IS" "\0"
369
- "IS" "\0" "CS" "\0" "C" "\0" "C" "\0" "VC" "\0"
370
- "C" "\0" "VC" "\0" "NI" "\0" "CS" "\0" "C" "\0"
371
- "" "\0" "N" "\0" "O" "\0" "O" "\0" "O" "\0"
372
- "O" "\0" "ST" "\0" "HO" "\0" "C" "\0" "C" "\0"
373
- "C" "\0" "C" "\0" "C" "\0" "C" "\0" "CC" "\0"
374
- "C" "\0" "C" "\0" "C" "\0" "C" "\0" "C" "\0"
375
- "C" "\0" "C" "\0" "C" "\0" "C" "\0" "VC" "\0"
376
- "VC" "\0" "C" "\0" "C" "\0" "C" "\0" "C" "\0"
377
- "C" "\0" "C" "\0" "R" "\0" "RN" "\0" "RN" "\0"
378
- "L" "\0" "L" "\0" "L" "\0" "L" "\0" "" "\0"
379
- "" "\0" "" "\0" "LN" "\0" "LN" "\0" "LN" "\0"
380
- "LN" "\0" "LN" "\0" "NN" "\0" "N" "\0" "IA" "\0"
381
- "IA" "\0" "IJ" "\0" "IJ" "\0" "K" "\0" "I" "\0"
382
- "I" "\0" "I" "\0" "I" "\0" "" "\0" "" "\0"
383
- "V" "\0" "N" "\0" "V" "\0" "N" "\0" "" "\0"
384
- "NN" "\0" "" "\0" "N" "\0" "N" "\0" "V" "\0"
385
- "V" "\0" "NN" "\0" "" "\0" "V" "\0" "N" "\0"
367
+ "NN" "\0" "" "\0" "V" "\0" "" "\0" "N" "\0"
386
368
  "N" "\0" "" "\0" "" "\0" "N" "\0" "" "\0"
387
369
  "N" "\0" "N" "\0" "N" "\0" "N" "\0" "NVV" "\0"
388
370
  "IAV" "\0" "N" "\0" "LL" "\0" "N" "\0" "ISN" "\0"
@@ -396,27 +378,47 @@ const char rb_vm_insn_op_base[] =
396
378
  "VC" "\0" "VC" "\0" "C" "\0" "C" "\0" "C" "\0"
397
379
  "C" "\0" "C" "\0" "C" "\0" "R" "\0" "RN" "\0"
398
380
  "RN" "\0" "L" "\0" "L" "\0" "L" "\0" "L" "\0"
399
- "" "\0" "" "\0"
381
+ "" "\0" "" "\0" "" "\0" "LN" "\0" "LN" "\0"
382
+ "LN" "\0" "LN" "\0" "LN" "\0" "NN" "\0" "N" "\0"
383
+ "IA" "\0" "IA" "\0" "IJ" "\0" "IJ" "\0" "K" "\0"
384
+ "I" "\0" "I" "\0" "I" "\0" "I" "\0" "" "\0"
385
+ "" "\0" "V" "\0" "N" "\0" "V" "\0" "N" "\0"
386
+ "" "\0" "NN" "\0" "" "\0" "N" "\0" "N" "\0"
387
+ "V" "\0" "V" "\0" "NN" "\0" "" "\0" "V" "\0"
388
+ "" "\0" "N" "\0" "N" "\0" "" "\0" "" "\0"
389
+ "N" "\0" "" "\0" "N" "\0" "N" "\0" "N" "\0"
390
+ "N" "\0" "NVV" "\0" "IAV" "\0" "N" "\0" "LL" "\0"
391
+ "N" "\0" "ISN" "\0" "IS" "\0" "IS" "\0" "CS" "\0"
392
+ "C" "\0" "C" "\0" "VC" "\0" "C" "\0" "VC" "\0"
393
+ "NI" "\0" "CS" "\0" "C" "\0" "" "\0" "N" "\0"
394
+ "O" "\0" "O" "\0" "O" "\0" "O" "\0" "ST" "\0"
395
+ "HO" "\0" "C" "\0" "C" "\0" "C" "\0" "C" "\0"
396
+ "C" "\0" "C" "\0" "CC" "\0" "C" "\0" "C" "\0"
397
+ "C" "\0" "C" "\0" "C" "\0" "C" "\0" "C" "\0"
398
+ "C" "\0" "C" "\0" "VC" "\0" "VC" "\0" "C" "\0"
399
+ "C" "\0" "C" "\0" "C" "\0" "C" "\0" "C" "\0"
400
+ "R" "\0" "RN" "\0" "RN" "\0" "L" "\0" "L" "\0"
401
+ "L" "\0" "L" "\0" "" "\0" "" "\0"
400
402
  ;
401
403
 
402
404
  const unsigned short rb_vm_insn_op_offset[] = {
403
405
  0, 1, 4, 7, 10, 13, 16, 19, 21, 24, 27, 30,
404
406
  33, 35, 37, 39, 41, 43, 44, 45, 47, 49, 51, 53,
405
- 54, 57, 58, 60, 62, 64, 66, 69, 70, 72, 74, 76,
406
- 77, 78, 80, 81, 83, 85, 87, 89, 93, 97, 99, 102,
407
- 104, 108, 111, 114, 117, 119, 121, 124, 126, 129, 132, 135,
408
- 137, 138, 140, 142, 144, 146, 148, 151, 154, 156, 158, 160,
409
- 162, 164, 166, 169, 171, 173, 175, 177, 179, 181, 183, 185,
410
- 187, 190, 193, 195, 197, 199, 201, 203, 205, 207, 210, 213,
411
- 215, 217, 219, 221, 222, 223, 224, 227, 230, 233, 236, 239,
412
- 242, 244, 247, 250, 253, 256, 258, 260, 262, 264, 266, 267,
413
- 268, 270, 272, 274, 276, 277, 280, 281, 283, 285, 287, 289,
414
- 292, 293, 295, 297, 299, 300, 301, 303, 304, 306, 308, 310,
415
- 312, 316, 320, 322, 325, 327, 331, 334, 337, 340, 342, 344,
416
- 347, 349, 352, 355, 358, 360, 361, 363, 365, 367, 369, 371,
417
- 374, 377, 379, 381, 383, 385, 387, 389, 392, 394, 396, 398,
418
- 400, 402, 404, 406, 408, 410, 413, 416, 418, 420, 422, 424,
419
- 426, 428, 430, 433, 436, 438, 440, 442, 444, 445,
407
+ 54, 57, 58, 60, 62, 64, 66, 69, 70, 72, 73, 75,
408
+ 77, 78, 79, 81, 82, 84, 86, 88, 90, 94, 98, 100,
409
+ 103, 105, 109, 112, 115, 118, 120, 122, 125, 127, 130, 133,
410
+ 136, 138, 139, 141, 143, 145, 147, 149, 152, 155, 157, 159,
411
+ 161, 163, 165, 167, 170, 172, 174, 176, 178, 180, 182, 184,
412
+ 186, 188, 191, 194, 196, 198, 200, 202, 204, 206, 208, 211,
413
+ 214, 216, 218, 220, 222, 223, 224, 225, 228, 231, 234, 237,
414
+ 240, 243, 245, 248, 251, 254, 257, 259, 261, 263, 265, 267,
415
+ 268, 269, 271, 273, 275, 277, 278, 281, 282, 284, 286, 288,
416
+ 290, 293, 294, 296, 297, 299, 301, 302, 303, 305, 306, 308,
417
+ 310, 312, 314, 318, 322, 324, 327, 329, 333, 336, 339, 342,
418
+ 344, 346, 349, 351, 354, 357, 360, 362, 363, 365, 367, 369,
419
+ 371, 373, 376, 379, 381, 383, 385, 387, 389, 391, 394, 396,
420
+ 398, 400, 402, 404, 406, 408, 410, 412, 415, 418, 420, 422,
421
+ 424, 426, 428, 430, 432, 435, 438, 440, 442, 444, 446, 447,
420
422
  };
421
423
 
422
424
  ASSERT_VM_INSTRUCTION_SIZE(rb_vm_insn_op_offset);
@@ -484,7 +486,7 @@ leafness_of_checkmatch(rb_num_t flag)
484
486
  return false;
485
487
  }
486
488
  }
487
- #line 488 "insns_info.inc"
489
+ #line 490 "insns_info.inc"
488
490
 
489
491
  #line 10 "tool/ruby_vm/views/_sp_inc_helpers.erb"
490
492
 
@@ -514,7 +516,7 @@ sp_inc_of_invokeblock(const struct rb_callinfo *ci)
514
516
  * instructions, except that it does not pop receiver. */
515
517
  return sp_inc_of_sendish(ci) + 1;
516
518
  }
517
- #line 518 "insns_info.inc"
519
+ #line 520 "insns_info.inc"
518
520
 
519
521
  #ifndef RUBY_VM_EXEC_H
520
522
  /* can't #include "vm_exec.h" here... */
@@ -821,6 +823,15 @@ PUREFUNC(MAYBE_UNUSED(static rb_num_t attr_popn_splatarray(VALUE flag)));
821
823
  PUREFUNC(MAYBE_UNUSED(static rb_num_t attr_retn_splatarray(VALUE flag)));
822
824
  PUREFUNC(MAYBE_UNUSED(static rb_snum_t attr_sp_inc_splatarray(VALUE flag)));
823
825
  PUREFUNC(MAYBE_UNUSED(static rb_num_t attr_width_splatarray(VALUE flag)));
826
+ PUREFUNC(MAYBE_UNUSED(static enum ruby_vminsn_type attr_bin_splatkw(void)));
827
+ PUREFUNC(MAYBE_UNUSED(static bool attr_handles_sp_splatkw(void)));
828
+ PUREFUNC(MAYBE_UNUSED(static bool attr_leaf_splatkw(void)));
829
+ PUREFUNC(MAYBE_UNUSED(static const char* attr_name_splatkw(void)));
830
+ PUREFUNC(MAYBE_UNUSED(static rb_num_t attr_open_splatkw(void)));
831
+ PUREFUNC(MAYBE_UNUSED(static rb_num_t attr_popn_splatkw(void)));
832
+ PUREFUNC(MAYBE_UNUSED(static rb_num_t attr_retn_splatkw(void)));
833
+ PUREFUNC(MAYBE_UNUSED(static rb_snum_t attr_sp_inc_splatkw(void)));
834
+ PUREFUNC(MAYBE_UNUSED(static rb_num_t attr_width_splatkw(void)));
824
835
  PUREFUNC(MAYBE_UNUSED(static enum ruby_vminsn_type attr_bin_newhash(rb_num_t num)));
825
836
  PUREFUNC(MAYBE_UNUSED(static bool attr_handles_sp_newhash(rb_num_t num)));
826
837
  PUREFUNC(MAYBE_UNUSED(static bool attr_leaf_newhash(rb_num_t num)));
@@ -1982,7 +1993,7 @@ attr_leaf_getspecial(
1982
1993
  return
1983
1994
  #line 192 "insns.def"
1984
1995
  (type == 0) ? true : false;
1985
- #line 1986 "insns_info.inc"
1996
+ #line 1997 "insns_info.inc"
1986
1997
  }
1987
1998
 
1988
1999
  /* attr const char* name @ getspecial(key, type)()(val) */
@@ -2138,7 +2149,7 @@ attr_leaf_getinstancevariable(
2138
2149
  return
2139
2150
  #line 214 "insns.def"
2140
2151
  false;
2141
- #line 2142 "insns_info.inc"
2152
+ #line 2153 "insns_info.inc"
2142
2153
  }
2143
2154
 
2144
2155
  /* attr const char* name @ getinstancevariable(id, ic)()(val) */
@@ -2231,7 +2242,7 @@ attr_leaf_setinstancevariable(
2231
2242
  return
2232
2243
  #line 225 "insns.def"
2233
2244
  false;
2234
- #line 2235 "insns_info.inc"
2245
+ #line 2246 "insns_info.inc"
2235
2246
  }
2236
2247
 
2237
2248
  /* attr const char* name @ setinstancevariable(id, ic)(val)() */
@@ -2324,7 +2335,7 @@ attr_leaf_getclassvariable(
2324
2335
  return
2325
2336
  #line 237 "insns.def"
2326
2337
  false;
2327
- #line 2328 "insns_info.inc"
2338
+ #line 2339 "insns_info.inc"
2328
2339
  }
2329
2340
 
2330
2341
  /* attr const char* name @ getclassvariable(id, ic)()(val) */
@@ -2417,7 +2428,7 @@ attr_leaf_setclassvariable(
2417
2428
  return
2418
2429
  #line 250 "insns.def"
2419
2430
  false;
2420
- #line 2421 "insns_info.inc"
2431
+ #line 2432 "insns_info.inc"
2421
2432
  }
2422
2433
 
2423
2434
  /* attr const char* name @ setclassvariable(id, ic)(val)() */
@@ -2501,7 +2512,7 @@ attr_leaf_opt_getconstant_path(MAYBE_UNUSED(IC ic))
2501
2512
  return
2502
2513
  #line 261 "insns.def"
2503
2514
  false;
2504
- #line 2505 "insns_info.inc"
2515
+ #line 2516 "insns_info.inc"
2505
2516
  }
2506
2517
 
2507
2518
  /* attr const char* name @ opt_getconstant_path(ic)()(val) */
@@ -2567,7 +2578,7 @@ attr_leaf_getconstant(MAYBE_UNUSED(ID id))
2567
2578
  return
2568
2579
  #line 276 "insns.def"
2569
2580
  false;
2570
- #line 2571 "insns_info.inc"
2581
+ #line 2582 "insns_info.inc"
2571
2582
  }
2572
2583
 
2573
2584
  /* attr const char* name @ getconstant(id)(klass, allow_nil)(val) */
@@ -2633,7 +2644,7 @@ attr_leaf_setconstant(MAYBE_UNUSED(ID id))
2633
2644
  return
2634
2645
  #line 292 "insns.def"
2635
2646
  false;
2636
- #line 2637 "insns_info.inc"
2647
+ #line 2648 "insns_info.inc"
2637
2648
  }
2638
2649
 
2639
2650
  /* attr const char* name @ setconstant(id)(val, cbase)() */
@@ -2699,7 +2710,7 @@ attr_leaf_getglobal(MAYBE_UNUSED(ID gid))
2699
2710
  return
2700
2711
  #line 305 "insns.def"
2701
2712
  false;
2702
- #line 2703 "insns_info.inc"
2713
+ #line 2714 "insns_info.inc"
2703
2714
  }
2704
2715
 
2705
2716
  /* attr const char* name @ getglobal(gid)()(val) */
@@ -2765,7 +2776,7 @@ attr_leaf_setglobal(MAYBE_UNUSED(ID gid))
2765
2776
  return
2766
2777
  #line 316 "insns.def"
2767
2778
  false;
2768
- #line 2769 "insns_info.inc"
2779
+ #line 2780 "insns_info.inc"
2769
2780
  }
2770
2781
 
2771
2782
  /* attr const char* name @ setglobal(gid)(val)() */
@@ -3020,7 +3031,7 @@ attr_leaf_putspecialobject(MAYBE_UNUSED(rb_num_t value_type))
3020
3031
  return
3021
3032
  #line 363 "insns.def"
3022
3033
  (value_type == VM_SPECIAL_OBJECT_VMCORE);
3023
- #line 3024 "insns_info.inc"
3034
+ #line 3035 "insns_info.inc"
3024
3035
  }
3025
3036
 
3026
3037
  /* attr const char* name @ putspecialobject(value_type)()(val) */
@@ -3149,7 +3160,7 @@ attr_leaf_concatstrings(MAYBE_UNUSED(rb_num_t num))
3149
3160
  return
3150
3161
  #line 389 "insns.def"
3151
3162
  false;
3152
- #line 3153 "insns_info.inc"
3163
+ #line 3164 "insns_info.inc"
3153
3164
  }
3154
3165
 
3155
3166
  /* attr const char* name @ concatstrings(num)(...)(val) */
@@ -3187,7 +3198,7 @@ attr_sp_inc_concatstrings(MAYBE_UNUSED(rb_num_t num))
3187
3198
  return
3188
3199
  #line 390 "insns.def"
3189
3200
  1 - (rb_snum_t)num;
3190
- #line 3191 "insns_info.inc"
3201
+ #line 3202 "insns_info.inc"
3191
3202
  }
3192
3203
 
3193
3204
  /* attr rb_num_t width @ concatstrings(num)(...)(val) */
@@ -3290,7 +3301,7 @@ attr_leaf_toregexp(
3290
3301
  return
3291
3302
  #line 416 "insns.def"
3292
3303
  false;
3293
- #line 3294 "insns_info.inc"
3304
+ #line 3305 "insns_info.inc"
3294
3305
  }
3295
3306
 
3296
3307
  /* attr const char* name @ toregexp(opt, cnt)(...)(val) */
@@ -3343,7 +3354,7 @@ attr_sp_inc_toregexp(
3343
3354
  return
3344
3355
  #line 417 "insns.def"
3345
3356
  1 - (rb_snum_t)cnt;
3346
- #line 3347 "insns_info.inc"
3357
+ #line 3358 "insns_info.inc"
3347
3358
  }
3348
3359
 
3349
3360
  /* attr rb_num_t width @ toregexp(opt, cnt)(...)(val) */
@@ -3475,7 +3486,7 @@ attr_sp_inc_newarray(MAYBE_UNUSED(rb_num_t num))
3475
3486
  return
3476
3487
  #line 440 "insns.def"
3477
3488
  1 - (rb_snum_t)num;
3478
- #line 3479 "insns_info.inc"
3489
+ #line 3490 "insns_info.inc"
3479
3490
  }
3480
3491
 
3481
3492
  /* attr rb_num_t width @ newarray(num)(...)(val) */
@@ -3541,7 +3552,7 @@ attr_sp_inc_newarraykwsplat(MAYBE_UNUSED(rb_num_t num))
3541
3552
  return
3542
3553
  #line 455 "insns.def"
3543
3554
  1 - (rb_snum_t)num;
3544
- #line 3545 "insns_info.inc"
3555
+ #line 3556 "insns_info.inc"
3545
3556
  }
3546
3557
 
3547
3558
  /* attr rb_num_t width @ newarraykwsplat(num)(...)(val) */
@@ -3694,7 +3705,10 @@ attr_handles_sp_expandarray(
3694
3705
  MAYBE_UNUSED(rb_num_t flag)
3695
3706
  )
3696
3707
  {
3697
- return false;
3708
+ return
3709
+ #line 501 "insns.def"
3710
+ true;
3711
+ #line 3712 "insns_info.inc"
3698
3712
  }
3699
3713
 
3700
3714
  /* attr bool leaf @ expandarray(num, flag)(..., ary)(...) */
@@ -3705,9 +3719,9 @@ attr_leaf_expandarray(
3705
3719
  )
3706
3720
  {
3707
3721
  return
3708
- #line 501 "insns.def"
3722
+ #line 502 "insns.def"
3709
3723
  false;
3710
- #line 3711 "insns_info.inc"
3724
+ #line 3725 "insns_info.inc"
3711
3725
  }
3712
3726
 
3713
3727
  /* attr const char* name @ expandarray(num, flag)(..., ary)(...) */
@@ -3758,9 +3772,9 @@ attr_sp_inc_expandarray(
3758
3772
  )
3759
3773
  {
3760
3774
  return
3761
- #line 502 "insns.def"
3775
+ #line 503 "insns.def"
3762
3776
  (rb_snum_t)num - 1 + (flag & 1 ? 1 : 0);
3763
- #line 3764 "insns_info.inc"
3777
+ #line 3778 "insns_info.inc"
3764
3778
  }
3765
3779
 
3766
3780
  /* attr rb_num_t width @ expandarray(num, flag)(..., ary)(...) */
@@ -3792,9 +3806,9 @@ bool
3792
3806
  attr_leaf_concatarray(void)
3793
3807
  {
3794
3808
  return
3795
- #line 513 "insns.def"
3809
+ #line 514 "insns.def"
3796
3810
  false;
3797
- #line 3798 "insns_info.inc"
3811
+ #line 3812 "insns_info.inc"
3798
3812
  }
3799
3813
 
3800
3814
  /* attr const char* name @ concatarray()(ary1, ary2)(ary) */
@@ -3858,9 +3872,9 @@ bool
3858
3872
  attr_leaf_splatarray(MAYBE_UNUSED(VALUE flag))
3859
3873
  {
3860
3874
  return
3861
- #line 524 "insns.def"
3875
+ #line 525 "insns.def"
3862
3876
  false;
3863
- #line 3864 "insns_info.inc"
3877
+ #line 3878 "insns_info.inc"
3864
3878
  }
3865
3879
 
3866
3880
  /* attr const char* name @ splatarray(flag)(ary)(obj) */
@@ -3905,6 +3919,72 @@ attr_width_splatarray(MAYBE_UNUSED(VALUE flag))
3905
3919
  return 2;
3906
3920
  }
3907
3921
 
3922
+ /* attr enum ruby_vminsn_type bin @ splatkw()(hash, block)(obj, block) */
3923
+ enum ruby_vminsn_type
3924
+ attr_bin_splatkw(void)
3925
+ {
3926
+ return BIN(splatkw);
3927
+ }
3928
+
3929
+ /* attr bool handles_sp @ splatkw()(hash, block)(obj, block) */
3930
+ bool
3931
+ attr_handles_sp_splatkw(void)
3932
+ {
3933
+ return false;
3934
+ }
3935
+
3936
+ /* attr bool leaf @ splatkw()(hash, block)(obj, block) */
3937
+ bool
3938
+ attr_leaf_splatkw(void)
3939
+ {
3940
+ return
3941
+ #line 536 "insns.def"
3942
+ false;
3943
+ #line 3944 "insns_info.inc"
3944
+ }
3945
+
3946
+ /* attr const char* name @ splatkw()(hash, block)(obj, block) */
3947
+ const char*
3948
+ attr_name_splatkw(void)
3949
+ {
3950
+ return insn_name(BIN(splatkw));
3951
+ }
3952
+
3953
+ /* attr rb_num_t open @ splatkw()(hash, block)(obj, block) */
3954
+ rb_num_t
3955
+ attr_open_splatkw(void)
3956
+ {
3957
+ return 0;
3958
+ }
3959
+
3960
+ /* attr rb_num_t popn @ splatkw()(hash, block)(obj, block) */
3961
+ rb_num_t
3962
+ attr_popn_splatkw(void)
3963
+ {
3964
+ return 2;
3965
+ }
3966
+
3967
+ /* attr rb_num_t retn @ splatkw()(hash, block)(obj, block) */
3968
+ rb_num_t
3969
+ attr_retn_splatkw(void)
3970
+ {
3971
+ return 2;
3972
+ }
3973
+
3974
+ /* attr rb_snum_t sp_inc @ splatkw()(hash, block)(obj, block) */
3975
+ rb_snum_t
3976
+ attr_sp_inc_splatkw(void)
3977
+ {
3978
+ return 0;
3979
+ }
3980
+
3981
+ /* attr rb_num_t width @ splatkw()(hash, block)(obj, block) */
3982
+ rb_num_t
3983
+ attr_width_splatkw(void)
3984
+ {
3985
+ return 1;
3986
+ }
3987
+
3908
3988
  /* attr enum ruby_vminsn_type bin @ newhash(num)(...)(val) */
3909
3989
  enum ruby_vminsn_type
3910
3990
  attr_bin_newhash(MAYBE_UNUSED(rb_num_t num))
@@ -3924,9 +4004,9 @@ bool
3924
4004
  attr_leaf_newhash(MAYBE_UNUSED(rb_num_t num))
3925
4005
  {
3926
4006
  return
3927
- #line 535 "insns.def"
4007
+ #line 547 "insns.def"
3928
4008
  false;
3929
- #line 3930 "insns_info.inc"
4009
+ #line 4010 "insns_info.inc"
3930
4010
  }
3931
4011
 
3932
4012
  /* attr const char* name @ newhash(num)(...)(val) */
@@ -3962,9 +4042,9 @@ rb_snum_t
3962
4042
  attr_sp_inc_newhash(MAYBE_UNUSED(rb_num_t num))
3963
4043
  {
3964
4044
  return
3965
- #line 536 "insns.def"
4045
+ #line 548 "insns.def"
3966
4046
  1 - (rb_snum_t)num;
3967
- #line 3968 "insns_info.inc"
4047
+ #line 4048 "insns_info.inc"
3968
4048
  }
3969
4049
 
3970
4050
  /* attr rb_num_t width @ newhash(num)(...)(val) */
@@ -3993,9 +4073,9 @@ bool
3993
4073
  attr_leaf_newrange(MAYBE_UNUSED(rb_num_t flag))
3994
4074
  {
3995
4075
  return
3996
- #line 556 "insns.def"
4076
+ #line 568 "insns.def"
3997
4077
  false;
3998
- #line 3999 "insns_info.inc"
4078
+ #line 4079 "insns_info.inc"
3999
4079
  }
4000
4080
 
4001
4081
  /* attr const char* name @ newrange(flag)(low, high)(val) */
@@ -4220,9 +4300,9 @@ rb_snum_t
4220
4300
  attr_sp_inc_dupn(MAYBE_UNUSED(rb_num_t n))
4221
4301
  {
4222
4302
  return
4223
- #line 592 "insns.def"
4303
+ #line 604 "insns.def"
4224
4304
  n;
4225
- #line 4226 "insns_info.inc"
4305
+ #line 4306 "insns_info.inc"
4226
4306
  }
4227
4307
 
4228
4308
  /* attr rb_num_t width @ dupn(n)(...)(...) */
@@ -4349,9 +4429,9 @@ rb_snum_t
4349
4429
  attr_sp_inc_opt_reverse(MAYBE_UNUSED(rb_num_t n))
4350
4430
  {
4351
4431
  return
4352
- #line 616 "insns.def"
4432
+ #line 628 "insns.def"
4353
4433
  0;
4354
- #line 4355 "insns_info.inc"
4434
+ #line 4435 "insns_info.inc"
4355
4435
  }
4356
4436
 
4357
4437
  /* attr rb_num_t width @ opt_reverse(n)(...)(...) */
@@ -4415,9 +4495,9 @@ rb_snum_t
4415
4495
  attr_sp_inc_topn(MAYBE_UNUSED(rb_num_t n))
4416
4496
  {
4417
4497
  return
4418
- #line 646 "insns.def"
4498
+ #line 658 "insns.def"
4419
4499
  1;
4420
- #line 4421 "insns_info.inc"
4500
+ #line 4501 "insns_info.inc"
4421
4501
  }
4422
4502
 
4423
4503
  /* attr rb_num_t width @ topn(n)(...)(val) */
@@ -4481,9 +4561,9 @@ rb_snum_t
4481
4561
  attr_sp_inc_setn(MAYBE_UNUSED(rb_num_t n))
4482
4562
  {
4483
4563
  return
4484
- #line 657 "insns.def"
4564
+ #line 669 "insns.def"
4485
4565
  0;
4486
- #line 4487 "insns_info.inc"
4566
+ #line 4567 "insns_info.inc"
4487
4567
  }
4488
4568
 
4489
4569
  /* attr rb_num_t width @ setn(n)(..., val)(val) */
@@ -4547,9 +4627,9 @@ rb_snum_t
4547
4627
  attr_sp_inc_adjuststack(MAYBE_UNUSED(rb_num_t n))
4548
4628
  {
4549
4629
  return
4550
- #line 668 "insns.def"
4630
+ #line 680 "insns.def"
4551
4631
  -(rb_snum_t)n;
4552
- #line 4553 "insns_info.inc"
4632
+ #line 4633 "insns_info.inc"
4553
4633
  }
4554
4634
 
4555
4635
  /* attr rb_num_t width @ adjuststack(n)(...)(...) */
@@ -4590,9 +4670,9 @@ attr_leaf_defined(
4590
4670
  )
4591
4671
  {
4592
4672
  return
4593
- #line 683 "insns.def"
4673
+ #line 695 "insns.def"
4594
4674
  leafness_of_defined(op_type);
4595
- #line 4596 "insns_info.inc"
4675
+ #line 4676 "insns_info.inc"
4596
4676
  }
4597
4677
 
4598
4678
  /* attr const char* name @ defined(op_type, obj, pushval)(v)(val) */
@@ -4692,9 +4772,9 @@ attr_leaf_definedivar(
4692
4772
  )
4693
4773
  {
4694
4774
  return
4695
- #line 697 "insns.def"
4775
+ #line 709 "insns.def"
4696
4776
  false;
4697
- #line 4698 "insns_info.inc"
4777
+ #line 4778 "insns_info.inc"
4698
4778
  }
4699
4779
 
4700
4780
  /* attr const char* name @ definedivar(id, ic, pushval)()(val) */
@@ -4782,9 +4862,9 @@ bool
4782
4862
  attr_leaf_checkmatch(MAYBE_UNUSED(rb_num_t flag))
4783
4863
  {
4784
4864
  return
4785
- #line 717 "insns.def"
4865
+ #line 729 "insns.def"
4786
4866
  leafness_of_checkmatch(flag);
4787
- #line 4788 "insns_info.inc"
4867
+ #line 4868 "insns_info.inc"
4788
4868
  }
4789
4869
 
4790
4870
  /* attr const char* name @ checkmatch(flag)(target, pattern)(result) */
@@ -5279,9 +5359,9 @@ attr_comptime_sp_inc_send(
5279
5359
  )
5280
5360
  {
5281
5361
  return
5282
- #line 799 "insns.def"
5362
+ #line 811 "insns.def"
5283
5363
  sp_inc_of_sendish(ci);
5284
- #line 5285 "insns_info.inc"
5364
+ #line 5365 "insns_info.inc"
5285
5365
  }
5286
5366
 
5287
5367
  /* attr bool handles_sp @ send(cd, blockiseq)(...)(val) */
@@ -5352,9 +5432,9 @@ attr_sp_inc_send(
5352
5432
  )
5353
5433
  {
5354
5434
  return
5355
- #line 798 "insns.def"
5435
+ #line 810 "insns.def"
5356
5436
  sp_inc_of_sendish(cd->ci);
5357
- #line 5358 "insns_info.inc"
5437
+ #line 5438 "insns_info.inc"
5358
5438
  }
5359
5439
 
5360
5440
  /* attr rb_num_t width @ send(cd, blockiseq)(...)(val) */
@@ -5379,9 +5459,9 @@ rb_snum_t
5379
5459
  attr_comptime_sp_inc_opt_send_without_block(MAYBE_UNUSED(CALL_INFO ci))
5380
5460
  {
5381
5461
  return
5382
- #line 819 "insns.def"
5462
+ #line 831 "insns.def"
5383
5463
  sp_inc_of_sendish(ci);
5384
- #line 5385 "insns_info.inc"
5464
+ #line 5465 "insns_info.inc"
5385
5465
  }
5386
5466
 
5387
5467
  /* attr bool handles_sp @ opt_send_without_block(cd)(...)(val) */
@@ -5389,9 +5469,9 @@ bool
5389
5469
  attr_handles_sp_opt_send_without_block(MAYBE_UNUSED(CALL_DATA cd))
5390
5470
  {
5391
5471
  return
5392
- #line 817 "insns.def"
5472
+ #line 829 "insns.def"
5393
5473
  true;
5394
- #line 5395 "insns_info.inc"
5474
+ #line 5475 "insns_info.inc"
5395
5475
  }
5396
5476
 
5397
5477
  /* attr bool leaf @ opt_send_without_block(cd)(...)(val) */
@@ -5434,9 +5514,9 @@ rb_snum_t
5434
5514
  attr_sp_inc_opt_send_without_block(MAYBE_UNUSED(CALL_DATA cd))
5435
5515
  {
5436
5516
  return
5437
- #line 818 "insns.def"
5517
+ #line 830 "insns.def"
5438
5518
  sp_inc_of_sendish(cd->ci);
5439
- #line 5440 "insns_info.inc"
5519
+ #line 5520 "insns_info.inc"
5440
5520
  }
5441
5521
 
5442
5522
  /* attr rb_num_t width @ opt_send_without_block(cd)(...)(val) */
@@ -5465,9 +5545,9 @@ bool
5465
5545
  attr_leaf_objtostring(MAYBE_UNUSED(CALL_DATA cd))
5466
5546
  {
5467
5547
  return
5468
- #line 837 "insns.def"
5548
+ #line 849 "insns.def"
5469
5549
  false;
5470
- #line 5471 "insns_info.inc"
5550
+ #line 5551 "insns_info.inc"
5471
5551
  }
5472
5552
 
5473
5553
  /* attr const char* name @ objtostring(cd)(recv)(val) */
@@ -5773,9 +5853,9 @@ attr_comptime_sp_inc_opt_newarray_send(
5773
5853
  )
5774
5854
  {
5775
5855
  return
5776
- #line 899 "insns.def"
5856
+ #line 911 "insns.def"
5777
5857
  1 - (rb_snum_t)num;
5778
- #line 5779 "insns_info.inc"
5858
+ #line 5859 "insns_info.inc"
5779
5859
  }
5780
5860
 
5781
5861
  /* attr bool handles_sp @ opt_newarray_send(num, method)(...)(val) */
@@ -5796,9 +5876,9 @@ attr_leaf_opt_newarray_send(
5796
5876
  )
5797
5877
  {
5798
5878
  return
5799
- #line 897 "insns.def"
5879
+ #line 909 "insns.def"
5800
5880
  false;
5801
- #line 5802 "insns_info.inc"
5881
+ #line 5882 "insns_info.inc"
5802
5882
  }
5803
5883
 
5804
5884
  /* attr const char* name @ opt_newarray_send(num, method)(...)(val) */
@@ -5849,9 +5929,9 @@ attr_sp_inc_opt_newarray_send(
5849
5929
  )
5850
5930
  {
5851
5931
  return
5852
- #line 898 "insns.def"
5932
+ #line 910 "insns.def"
5853
5933
  1 - (rb_snum_t)num;
5854
- #line 5855 "insns_info.inc"
5934
+ #line 5935 "insns_info.inc"
5855
5935
  }
5856
5936
 
5857
5937
  /* attr rb_num_t width @ opt_newarray_send(num, method)(...)(val) */
@@ -5882,9 +5962,9 @@ attr_comptime_sp_inc_invokesuper(
5882
5962
  )
5883
5963
  {
5884
5964
  return
5885
- #line 923 "insns.def"
5965
+ #line 935 "insns.def"
5886
5966
  sp_inc_of_sendish(ci);
5887
- #line 5888 "insns_info.inc"
5967
+ #line 5968 "insns_info.inc"
5888
5968
  }
5889
5969
 
5890
5970
  /* attr bool handles_sp @ invokesuper(cd, blockiseq)(...)(val) */
@@ -5955,9 +6035,9 @@ attr_sp_inc_invokesuper(
5955
6035
  )
5956
6036
  {
5957
6037
  return
5958
- #line 922 "insns.def"
6038
+ #line 934 "insns.def"
5959
6039
  sp_inc_of_sendish(cd->ci);
5960
- #line 5961 "insns_info.inc"
6040
+ #line 6041 "insns_info.inc"
5961
6041
  }
5962
6042
 
5963
6043
  /* attr rb_num_t width @ invokesuper(cd, blockiseq)(...)(val) */
@@ -5982,9 +6062,9 @@ rb_snum_t
5982
6062
  attr_comptime_sp_inc_invokeblock(MAYBE_UNUSED(CALL_INFO ci))
5983
6063
  {
5984
6064
  return
5985
- #line 943 "insns.def"
6065
+ #line 955 "insns.def"
5986
6066
  sp_inc_of_invokeblock(ci);
5987
- #line 5988 "insns_info.inc"
6067
+ #line 6068 "insns_info.inc"
5988
6068
  }
5989
6069
 
5990
6070
  /* attr bool handles_sp @ invokeblock(cd)(...)(val) */
@@ -5992,9 +6072,9 @@ bool
5992
6072
  attr_handles_sp_invokeblock(MAYBE_UNUSED(CALL_DATA cd))
5993
6073
  {
5994
6074
  return
5995
- #line 941 "insns.def"
6075
+ #line 953 "insns.def"
5996
6076
  true;
5997
- #line 5998 "insns_info.inc"
6077
+ #line 6078 "insns_info.inc"
5998
6078
  }
5999
6079
 
6000
6080
  /* attr bool leaf @ invokeblock(cd)(...)(val) */
@@ -6037,9 +6117,9 @@ rb_snum_t
6037
6117
  attr_sp_inc_invokeblock(MAYBE_UNUSED(CALL_DATA cd))
6038
6118
  {
6039
6119
  return
6040
- #line 942 "insns.def"
6120
+ #line 954 "insns.def"
6041
6121
  sp_inc_of_invokeblock(cd->ci);
6042
- #line 6043 "insns_info.inc"
6122
+ #line 6123 "insns_info.inc"
6043
6123
  }
6044
6124
 
6045
6125
  /* attr rb_num_t width @ invokeblock(cd)(...)(val) */
@@ -6061,9 +6141,9 @@ bool
6061
6141
  attr_handles_sp_leave(void)
6062
6142
  {
6063
6143
  return
6064
- #line 965 "insns.def"
6144
+ #line 977 "insns.def"
6065
6145
  true;
6066
- #line 6067 "insns_info.inc"
6146
+ #line 6147 "insns_info.inc"
6067
6147
  }
6068
6148
 
6069
6149
  /* attr bool leaf @ leave()(val)(val) */
@@ -6071,9 +6151,9 @@ bool
6071
6151
  attr_leaf_leave(void)
6072
6152
  {
6073
6153
  return
6074
- #line 964 "insns.def"
6154
+ #line 976 "insns.def"
6075
6155
  false;
6076
- #line 6077 "insns_info.inc"
6156
+ #line 6157 "insns_info.inc"
6077
6157
  }
6078
6158
 
6079
6159
  /* attr const char* name @ leave()(val)(val) */
@@ -6137,9 +6217,9 @@ bool
6137
6217
  attr_leaf_throw(MAYBE_UNUSED(rb_num_t throw_state))
6138
6218
  {
6139
6219
  return
6140
- #line 998 "insns.def"
6220
+ #line 1010 "insns.def"
6141
6221
  false;
6142
- #line 6143 "insns_info.inc"
6222
+ #line 6223 "insns_info.inc"
6143
6223
  }
6144
6224
 
6145
6225
  /* attr const char* name @ throw(throw_state)(throwobj)(val) */
@@ -6203,9 +6283,9 @@ bool
6203
6283
  attr_leaf_jump(MAYBE_UNUSED(OFFSET dst))
6204
6284
  {
6205
6285
  return
6206
- #line 1016 "insns.def"
6286
+ #line 1028 "insns.def"
6207
6287
  leafness_of_check_ints;
6208
- #line 6209 "insns_info.inc"
6288
+ #line 6289 "insns_info.inc"
6209
6289
  }
6210
6290
 
6211
6291
  /* attr const char* name @ jump(dst)()() */
@@ -6269,9 +6349,9 @@ bool
6269
6349
  attr_leaf_branchif(MAYBE_UNUSED(OFFSET dst))
6270
6350
  {
6271
6351
  return
6272
- #line 1029 "insns.def"
6352
+ #line 1041 "insns.def"
6273
6353
  leafness_of_check_ints;
6274
- #line 6275 "insns_info.inc"
6354
+ #line 6355 "insns_info.inc"
6275
6355
  }
6276
6356
 
6277
6357
  /* attr const char* name @ branchif(dst)(val)() */
@@ -6335,9 +6415,9 @@ bool
6335
6415
  attr_leaf_branchunless(MAYBE_UNUSED(OFFSET dst))
6336
6416
  {
6337
6417
  return
6338
- #line 1044 "insns.def"
6418
+ #line 1056 "insns.def"
6339
6419
  leafness_of_check_ints;
6340
- #line 6341 "insns_info.inc"
6420
+ #line 6421 "insns_info.inc"
6341
6421
  }
6342
6422
 
6343
6423
  /* attr const char* name @ branchunless(dst)(val)() */
@@ -6401,9 +6481,9 @@ bool
6401
6481
  attr_leaf_branchnil(MAYBE_UNUSED(OFFSET dst))
6402
6482
  {
6403
6483
  return
6404
- #line 1059 "insns.def"
6484
+ #line 1071 "insns.def"
6405
6485
  leafness_of_check_ints;
6406
- #line 6407 "insns_info.inc"
6486
+ #line 6487 "insns_info.inc"
6407
6487
  }
6408
6488
 
6409
6489
  /* attr const char* name @ branchnil(dst)(val)() */
@@ -6616,9 +6696,9 @@ attr_sp_inc_opt_case_dispatch(
6616
6696
  )
6617
6697
  {
6618
6698
  return
6619
- #line 1087 "insns.def"
6699
+ #line 1099 "insns.def"
6620
6700
  -1;
6621
- #line 6622 "insns_info.inc"
6701
+ #line 6702 "insns_info.inc"
6622
6702
  }
6623
6703
 
6624
6704
  /* attr rb_num_t width @ opt_case_dispatch(hash, else_offset)(..., key)() */
@@ -6839,9 +6919,9 @@ bool
6839
6919
  attr_leaf_opt_div(MAYBE_UNUSED(CALL_DATA cd))
6840
6920
  {
6841
6921
  return
6842
- #line 1148 "insns.def"
6922
+ #line 1160 "insns.def"
6843
6923
  false;
6844
- #line 6845 "insns_info.inc"
6924
+ #line 6925 "insns_info.inc"
6845
6925
  }
6846
6926
 
6847
6927
  /* attr const char* name @ opt_div(cd)(recv, obj)(val) */
@@ -6905,9 +6985,9 @@ bool
6905
6985
  attr_leaf_opt_mod(MAYBE_UNUSED(CALL_DATA cd))
6906
6986
  {
6907
6987
  return
6908
- #line 1164 "insns.def"
6988
+ #line 1176 "insns.def"
6909
6989
  false;
6910
- #line 6911 "insns_info.inc"
6990
+ #line 6991 "insns_info.inc"
6911
6991
  }
6912
6992
 
6913
6993
  /* attr const char* name @ opt_mod(cd)(recv, obj)(val) */
@@ -7376,9 +7456,9 @@ bool
7376
7456
  attr_leaf_opt_ltlt(MAYBE_UNUSED(CALL_DATA cd))
7377
7457
  {
7378
7458
  return
7379
- #line 1266 "insns.def"
7459
+ #line 1278 "insns.def"
7380
7460
  false;
7381
- #line 7382 "insns_info.inc"
7461
+ #line 7462 "insns_info.inc"
7382
7462
  }
7383
7463
 
7384
7464
  /* attr const char* name @ opt_ltlt(cd)(recv, obj)(val) */
@@ -7568,9 +7648,9 @@ bool
7568
7648
  attr_leaf_opt_aref(MAYBE_UNUSED(CALL_DATA cd))
7569
7649
  {
7570
7650
  return
7571
- #line 1313 "insns.def"
7651
+ #line 1325 "insns.def"
7572
7652
  false;
7573
- #line 7574 "insns_info.inc"
7653
+ #line 7654 "insns_info.inc"
7574
7654
  }
7575
7655
 
7576
7656
  /* attr const char* name @ opt_aref(cd)(recv, obj)(val) */
@@ -7634,9 +7714,9 @@ bool
7634
7714
  attr_leaf_opt_aset(MAYBE_UNUSED(CALL_DATA cd))
7635
7715
  {
7636
7716
  return
7637
- #line 1330 "insns.def"
7717
+ #line 1342 "insns.def"
7638
7718
  false;
7639
- #line 7640 "insns_info.inc"
7719
+ #line 7720 "insns_info.inc"
7640
7720
  }
7641
7721
 
7642
7722
  /* attr const char* name @ opt_aset(cd)(recv, obj, set)(val) */
@@ -7709,9 +7789,9 @@ attr_leaf_opt_aset_with(
7709
7789
  )
7710
7790
  {
7711
7791
  return
7712
- #line 1346 "insns.def"
7792
+ #line 1358 "insns.def"
7713
7793
  false;
7714
- #line 7715 "insns_info.inc"
7794
+ #line 7795 "insns_info.inc"
7715
7795
  }
7716
7796
 
7717
7797
  /* attr const char* name @ opt_aset_with(key, cd)(recv, val)(val) */
@@ -7802,9 +7882,9 @@ attr_leaf_opt_aref_with(
7802
7882
  )
7803
7883
  {
7804
7884
  return
7805
- #line 1367 "insns.def"
7885
+ #line 1379 "insns.def"
7806
7886
  false;
7807
- #line 7808 "insns_info.inc"
7887
+ #line 7888 "insns_info.inc"
7808
7888
  }
7809
7889
 
7810
7890
  /* attr const char* name @ opt_aref_with(key, cd)(recv)(val) */
@@ -8201,9 +8281,9 @@ bool
8201
8281
  attr_leaf_opt_regexpmatch2(MAYBE_UNUSED(CALL_DATA cd))
8202
8282
  {
8203
8283
  return
8204
- #line 1453 "insns.def"
8284
+ #line 1465 "insns.def"
8205
8285
  false;
8206
- #line 8207 "insns_info.inc"
8286
+ #line 8287 "insns_info.inc"
8207
8287
  }
8208
8288
 
8209
8289
  /* attr const char* name @ opt_regexpmatch2(cd)(obj2, obj1)(val) */
@@ -8267,9 +8347,9 @@ bool
8267
8347
  attr_leaf_invokebuiltin(MAYBE_UNUSED(RB_BUILTIN bf))
8268
8348
  {
8269
8349
  return
8270
- #line 1468 "insns.def"
8350
+ #line 1480 "insns.def"
8271
8351
  false;
8272
- #line 8273 "insns_info.inc"
8352
+ #line 8353 "insns_info.inc"
8273
8353
  }
8274
8354
 
8275
8355
  /* attr const char* name @ invokebuiltin(bf)(...)(val) */
@@ -8305,9 +8385,9 @@ rb_snum_t
8305
8385
  attr_sp_inc_invokebuiltin(MAYBE_UNUSED(RB_BUILTIN bf))
8306
8386
  {
8307
8387
  return
8308
- #line 1469 "insns.def"
8388
+ #line 1481 "insns.def"
8309
8389
  1 - bf->argc;
8310
- #line 8311 "insns_info.inc"
8390
+ #line 8391 "insns_info.inc"
8311
8391
  }
8312
8392
 
8313
8393
  /* attr rb_num_t width @ invokebuiltin(bf)(...)(val) */
@@ -8345,9 +8425,9 @@ attr_leaf_opt_invokebuiltin_delegate(
8345
8425
  )
8346
8426
  {
8347
8427
  return
8348
- #line 1480 "insns.def"
8428
+ #line 1492 "insns.def"
8349
8429
  false;
8350
- #line 8351 "insns_info.inc"
8430
+ #line 8431 "insns_info.inc"
8351
8431
  }
8352
8432
 
8353
8433
  /* attr const char* name @ opt_invokebuiltin_delegate(bf, index)()(val) */
@@ -8438,9 +8518,9 @@ attr_leaf_opt_invokebuiltin_delegate_leave(
8438
8518
  )
8439
8519
  {
8440
8520
  return
8441
- #line 1491 "insns.def"
8521
+ #line 1503 "insns.def"
8442
8522
  false;
8443
- #line 8444 "insns_info.inc"
8523
+ #line 8524 "insns_info.inc"
8444
8524
  }
8445
8525
 
8446
8526
  /* attr const char* name @ opt_invokebuiltin_delegate_leave(bf, index)()(val) */
@@ -8892,15 +8972,15 @@ comptime_insn_stack_increase_dispatch(enum ruby_vminsn_type insn, const VALUE *o
8892
8972
  1, -1, 1, -1, 1, -1, -2, 1,
8893
8973
  -1, 1, 1, 1, 1, 1, -127, -1,
8894
8974
  -127, 0, -127, -127, 1, 1, -127, -1,
8895
- 0, -127, -1, -1, 1, -127, 0, -127,
8896
- -127, -127, -127, 0, 1, -1, 1, 0,
8897
- -1, 0, -1, -127, -127, 0, 1, 0,
8898
- 1, -127, -127, -127, 0, 0, 0, -1,
8899
- -1, -1, 1, -127, -1, -1, -1, -1,
8975
+ 0, 0, -127, -1, -1, 1, -127, 0,
8976
+ -127, -127, -127, -127, 0, 1, -1, 1,
8977
+ 0, -1, 0, -1, -127, -127, 0, 1,
8978
+ 0, 1, -127, -127, -127, 0, 0, 0,
8979
+ -1, -1, -1, 1, -127, -1, -1, -1,
8900
8980
  -1, -1, -1, -1, -1, -1, -1, -1,
8901
- -1, -1, -1, -2, -1, 0, 0, 0,
8902
- 0, 0, 0, -1, -127, 1, 1, 1,
8903
- 1, -1, -1, 1, 1, 0, 0, 0,
8981
+ -1, -1, -1, -1, -2, -1, 0, 0,
8982
+ 0, 0, 0, 0, -1, -127, 1, 1,
8983
+ 1, 1, -1, -1, 1, 1, 0, 0,
8904
8984
  0, 0, 0, 0, 0, 0, 0, 0,
8905
8985
  0, 0, 0, 0, 0, 0, 0, 0,
8906
8986
  0, 0, 0, 0, 0, 0, 0, 0,
@@ -8913,7 +8993,7 @@ comptime_insn_stack_increase_dispatch(enum ruby_vminsn_type insn, const VALUE *o
8913
8993
  0, 0, 0, 0, 0, 0, 0, 0,
8914
8994
  0, 0, 0, 0, 0, 0, 0, 0,
8915
8995
  0, 0, 0, 0, 0, 0, 0, 0,
8916
- 0, 0,
8996
+ 0, 0, 0, 0,
8917
8997
  };
8918
8998
  signed char c = t[insn];
8919
8999
 
@@ -8992,6 +9072,7 @@ insn_may_depend_on_sp_or_pc(int insn, const VALUE *opes)
8992
9072
  case BIN(expandarray):
8993
9073
  case BIN(concatarray):
8994
9074
  case BIN(splatarray):
9075
+ case BIN(splatkw):
8995
9076
  case BIN(newhash):
8996
9077
  case BIN(newrange):
8997
9078
  case BIN(defined):
@@ -9057,6 +9138,7 @@ insn_may_depend_on_sp_or_pc(int insn, const VALUE *opes)
9057
9138
  case BIN(trace_expandarray):
9058
9139
  case BIN(trace_concatarray):
9059
9140
  case BIN(trace_splatarray):
9141
+ case BIN(trace_splatkw):
9060
9142
  case BIN(trace_newhash):
9061
9143
  case BIN(trace_newrange):
9062
9144
  case BIN(trace_pop):