debase-ruby_core_source 0.10.13 → 0.10.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (118) hide show
  1. checksums.yaml +4 -4
  2. data/debase-ruby_core_source.gemspec +1 -1
  3. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/addr2line.h +0 -0
  4. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/builtin.h +1 -0
  5. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/ccan/build_assert/build_assert.h +0 -0
  6. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/ccan/check_type/check_type.h +0 -0
  7. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/ccan/container_of/container_of.h +0 -0
  8. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/ccan/list/list.h +0 -0
  9. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/ccan/str/str.h +0 -0
  10. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/constant.h +0 -0
  11. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/darray.h +0 -0
  12. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/debug_counter.h +2 -0
  13. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/dln.h +0 -0
  14. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/encindex.h +0 -0
  15. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/eval_intern.h +32 -1
  16. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/gc.h +0 -1
  17. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/hrtime.h +0 -0
  18. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/id.h +0 -0
  19. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/id_table.h +0 -0
  20. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/insns.inc +4 -2
  21. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/insns_info.inc +309 -224
  22. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/array.h +0 -0
  23. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/bignum.h +0 -0
  24. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/bits.h +0 -0
  25. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/class.h +13 -5
  26. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/compar.h +0 -0
  27. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/compile.h +0 -0
  28. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/compilers.h +0 -0
  29. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/complex.h +0 -0
  30. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/cont.h +0 -0
  31. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/dir.h +0 -0
  32. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/enc.h +0 -0
  33. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/encoding.h +0 -0
  34. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/enum.h +0 -0
  35. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/enumerator.h +0 -0
  36. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/error.h +0 -0
  37. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/eval.h +0 -0
  38. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/file.h +0 -0
  39. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/fixnum.h +0 -0
  40. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/gc.h +12 -1
  41. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/hash.h +0 -0
  42. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/imemo.h +0 -0
  43. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/inits.h +0 -0
  44. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/io.h +0 -0
  45. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/load.h +0 -0
  46. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/loadpath.h +0 -0
  47. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/math.h +0 -0
  48. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/missing.h +0 -0
  49. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/numeric.h +0 -0
  50. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/object.h +0 -0
  51. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/parse.h +0 -0
  52. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/proc.h +0 -0
  53. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/process.h +0 -0
  54. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/random.h +0 -0
  55. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/range.h +0 -0
  56. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/rational.h +0 -0
  57. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/re.h +0 -0
  58. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/sanitizers.h +0 -0
  59. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/serial.h +0 -0
  60. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/signal.h +0 -0
  61. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/static_assert.h +0 -0
  62. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/string.h +0 -0
  63. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/struct.h +0 -0
  64. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/symbol.h +1 -0
  65. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/thread.h +0 -0
  66. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/time.h +0 -0
  67. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/transcode.h +0 -0
  68. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/util.h +0 -0
  69. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/variable.h +0 -0
  70. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/vm.h +2 -1
  71. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/warnings.h +0 -0
  72. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal.h +0 -0
  73. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/iseq.h +3 -1
  74. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/known_errors.inc +0 -0
  75. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/method.h +14 -6
  76. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/mjit.h +0 -0
  77. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/mjit_compile.inc +64 -7
  78. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/node.h +28 -17
  79. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/node_name.inc +0 -2
  80. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/opt_sc.inc +2 -0
  81. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/optinsn.inc +0 -0
  82. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/optunifs.inc +1 -1
  83. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/parse.h +0 -0
  84. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/probes_helper.h +0 -0
  85. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/ractor_core.h +0 -0
  86. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/regenc.h +0 -0
  87. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/regint.h +0 -0
  88. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/regparse.h +0 -0
  89. data/lib/debase/ruby_core_source/ruby-3.1.0-p0/revision.h +2 -0
  90. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/ruby_assert.h +0 -0
  91. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/ruby_atomic.h +0 -0
  92. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/siphash.h +0 -0
  93. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/symbol.h +0 -0
  94. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/thread_pthread.h +0 -0
  95. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/thread_win32.h +0 -0
  96. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/timev.h +0 -0
  97. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/transcode_data.h +0 -0
  98. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/transient_heap.h +0 -0
  99. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/variable.h +0 -0
  100. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/version.h +4 -4
  101. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/vm.inc +338 -283
  102. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/vm_call_iseq_optimized.inc +0 -0
  103. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/vm_callinfo.h +41 -8
  104. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/vm_core.h +6 -2
  105. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/vm_debug.h +8 -3
  106. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/vm_exec.h +0 -0
  107. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/vm_insnhelper.h +0 -0
  108. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/vm_opts.h +0 -0
  109. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/vm_sync.h +1 -1
  110. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/vmtc.inc +4 -2
  111. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/yjit.h +11 -1
  112. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/yjit_asm.h +21 -5
  113. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/yjit_codegen.h +5 -1
  114. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/yjit_core.h +11 -6
  115. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/yjit_iface.h +0 -0
  116. data/lib/debase/ruby_core_source/version.rb +1 -1
  117. metadata +116 -116
  118. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/revision.h +0 -2
@@ -87,7 +87,7 @@ const char rb_vm_insn_name_base[] =
87
87
  "putspecialobject" "\0"
88
88
  "putstring" "\0"
89
89
  "concatstrings" "\0"
90
- "tostring" "\0"
90
+ "anytostring" "\0"
91
91
  "toregexp" "\0"
92
92
  "intern" "\0"
93
93
  "newarray" "\0"
@@ -115,6 +115,7 @@ const char rb_vm_insn_name_base[] =
115
115
  "definesmethod" "\0"
116
116
  "send" "\0"
117
117
  "opt_send_without_block" "\0"
118
+ "objtostring" "\0"
118
119
  "opt_str_freeze" "\0"
119
120
  "opt_nil_p" "\0"
120
121
  "opt_str_uminus" "\0"
@@ -187,7 +188,7 @@ const char rb_vm_insn_name_base[] =
187
188
  "trace_putspecialobject" "\0"
188
189
  "trace_putstring" "\0"
189
190
  "trace_concatstrings" "\0"
190
- "trace_tostring" "\0"
191
+ "trace_anytostring" "\0"
191
192
  "trace_toregexp" "\0"
192
193
  "trace_intern" "\0"
193
194
  "trace_newarray" "\0"
@@ -215,6 +216,7 @@ const char rb_vm_insn_name_base[] =
215
216
  "trace_definesmethod" "\0"
216
217
  "trace_send" "\0"
217
218
  "trace_opt_send_without_block" "\0"
219
+ "trace_objtostring" "\0"
218
220
  "trace_opt_str_freeze" "\0"
219
221
  "trace_opt_nil_p" "\0"
220
222
  "trace_opt_str_uminus" "\0"
@@ -269,22 +271,22 @@ const char rb_vm_insn_name_base[] =
269
271
 
270
272
  const unsigned short rb_vm_insn_name_offset[] = {
271
273
  0, 4, 13, 22, 36, 50, 69, 80, 91, 111, 131, 148,
272
- 165, 177, 189, 199, 209, 216, 224, 234, 251, 261, 275, 284,
273
- 293, 300, 309, 325, 334, 342, 354, 366, 377, 385, 394, 398,
274
- 402, 407, 412, 417, 422, 434, 442, 453, 466, 476, 488, 501,
275
- 515, 520, 543, 558, 568, 583, 600, 617, 629, 641, 647, 653,
276
- 658, 667, 680, 690, 709, 728, 733, 751, 760, 770, 779, 787,
277
- 795, 802, 810, 817, 824, 831, 838, 847, 855, 862, 871, 880,
278
- 894, 908, 919, 928, 940, 949, 957, 974, 988, 1015, 1048, 1062,
279
- 1076, 1090, 1104, 1125, 1146, 1156, 1171, 1186, 1206, 1226, 1251, 1268,
280
- 1285, 1311, 1337, 1360, 1383, 1401, 1419, 1435, 1451, 1464, 1478, 1494,
281
- 1517, 1533, 1553, 1568, 1583, 1596, 1611, 1633, 1648, 1662, 1680, 1698,
282
- 1715, 1729, 1744, 1754, 1764, 1775, 1786, 1797, 1808, 1826, 1840, 1857,
283
- 1876, 1892, 1910, 1929, 1949, 1960, 1989, 2010, 2026, 2047, 2070, 2093,
284
- 2111, 2129, 2141, 2153, 2164, 2179, 2198, 2214, 2239, 2264, 2275, 2299,
285
- 2314, 2330, 2345, 2359, 2373, 2386, 2400, 2413, 2426, 2439, 2452, 2467,
286
- 2481, 2494, 2509, 2524, 2544, 2564, 2581, 2596, 2614, 2629, 2643, 2666,
287
- 2686, 2719, 2758, 2778, 2798, 2818, 2838, 2865,
274
+ 165, 177, 189, 199, 209, 216, 224, 234, 251, 261, 275, 287,
275
+ 296, 303, 312, 328, 337, 345, 357, 369, 380, 388, 397, 401,
276
+ 405, 410, 415, 420, 425, 437, 445, 456, 469, 479, 491, 504,
277
+ 518, 523, 546, 558, 573, 583, 598, 615, 632, 644, 656, 662,
278
+ 668, 673, 682, 695, 705, 724, 743, 748, 766, 775, 785, 794,
279
+ 802, 810, 817, 825, 832, 839, 846, 853, 862, 870, 877, 886,
280
+ 895, 909, 923, 934, 943, 955, 964, 972, 989, 1003, 1030, 1063,
281
+ 1077, 1091, 1105, 1119, 1140, 1161, 1171, 1186, 1201, 1221, 1241, 1266,
282
+ 1283, 1300, 1326, 1352, 1375, 1398, 1416, 1434, 1450, 1466, 1479, 1493,
283
+ 1509, 1532, 1548, 1568, 1586, 1601, 1614, 1629, 1651, 1666, 1680, 1698,
284
+ 1716, 1733, 1747, 1762, 1772, 1782, 1793, 1804, 1815, 1826, 1844, 1858,
285
+ 1875, 1894, 1910, 1928, 1947, 1967, 1978, 2007, 2025, 2046, 2062, 2083,
286
+ 2106, 2129, 2147, 2165, 2177, 2189, 2200, 2215, 2234, 2250, 2275, 2300,
287
+ 2311, 2335, 2350, 2366, 2381, 2395, 2409, 2422, 2436, 2449, 2462, 2475,
288
+ 2488, 2503, 2517, 2530, 2545, 2560, 2580, 2600, 2617, 2632, 2650, 2665,
289
+ 2679, 2702, 2722, 2755, 2794, 2814, 2834, 2854, 2874, 2901,
288
290
  };
289
291
 
290
292
  ASSERT_VM_INSTRUCTION_SIZE(rb_vm_insn_name_offset);
@@ -306,13 +308,13 @@ RUBY_SYMBOL_EXPORT_END
306
308
  const uint8_t rb_vm_insn_len_info[] = {
307
309
  1, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1,
308
310
  3, 1, 2, 2, 2, 2, 3, 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 2, 4, 2, 3, 2, 4,
309
- 3, 3, 3, 2, 3, 2, 3, 2, 2, 3, 2, 1, 2, 2, 2, 2, 2, 3, 2, 3, 3, 2, 2,
310
- 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 2, 2, 2,
311
- 3, 3, 2, 2, 2, 2, 1, 1, 1, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 2, 2, 2,
312
- 2, 1, 1, 2, 2, 2, 2, 1, 3, 1, 2, 2, 2, 2, 3, 1, 2, 2, 2, 1, 1, 2, 1,
313
- 2, 2, 2, 4, 2, 3, 2, 4, 3, 3, 3, 2, 3, 2, 3, 2, 2, 3, 2, 1, 2, 2, 2,
314
- 2, 2, 3, 2, 3, 3, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3,
315
- 3, 2, 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 1, 1,
311
+ 3, 3, 3, 2, 2, 3, 2, 3, 2, 2, 3, 2, 1, 2, 2, 2, 2, 2, 3, 2, 3, 3, 2,
312
+ 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 2, 2,
313
+ 2, 3, 3, 2, 2, 2, 2, 1, 1, 1, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 2, 2,
314
+ 2, 2, 1, 1, 2, 2, 2, 2, 1, 3, 1, 2, 2, 2, 2, 3, 1, 2, 2, 2, 1, 1, 2,
315
+ 1, 2, 2, 2, 4, 2, 3, 2, 4, 3, 3, 3, 2, 2, 3, 2, 3, 2, 2, 3, 2, 1, 2,
316
+ 2, 2, 2, 2, 3, 2, 3, 3, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2,
317
+ 2, 3, 3, 2, 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 1, 1,
316
318
  };
317
319
 
318
320
  ASSERT_VM_INSTRUCTION_SIZE(rb_vm_insn_len_info);
@@ -344,36 +346,37 @@ const char rb_vm_insn_op_base[] =
344
346
  "" "\0" "N" "\0" "" "\0" "N" "\0" "N" "\0"
345
347
  "N" "\0" "NVV" "\0" "N" "\0" "LL" "\0" "N" "\0"
346
348
  "ISN" "\0" "IS" "\0" "IS" "\0" "CS" "\0" "C" "\0"
347
- "VC" "\0" "C" "\0" "VC" "\0" "N" "\0" "N" "\0"
348
- "CS" "\0" "C" "\0" "" "\0" "N" "\0" "O" "\0"
349
- "O" "\0" "O" "\0" "O" "\0" "OK" "\0" "K" "\0"
350
- "ST" "\0" "HO" "\0" "C" "\0" "C" "\0" "C" "\0"
351
- "C" "\0" "C" "\0" "C" "\0" "CC" "\0" "C" "\0"
349
+ "C" "\0" "VC" "\0" "C" "\0" "VC" "\0" "N" "\0"
350
+ "N" "\0" "CS" "\0" "C" "\0" "" "\0" "N" "\0"
351
+ "O" "\0" "O" "\0" "O" "\0" "O" "\0" "OK" "\0"
352
+ "K" "\0" "ST" "\0" "HO" "\0" "C" "\0" "C" "\0"
353
+ "C" "\0" "C" "\0" "C" "\0" "C" "\0" "CC" "\0"
352
354
  "C" "\0" "C" "\0" "C" "\0" "C" "\0" "C" "\0"
353
- "C" "\0" "C" "\0" "C" "\0" "VC" "\0" "VC" "\0"
355
+ "C" "\0" "C" "\0" "C" "\0" "C" "\0" "VC" "\0"
356
+ "VC" "\0" "C" "\0" "C" "\0" "C" "\0" "C" "\0"
357
+ "C" "\0" "C" "\0" "R" "\0" "RN" "\0" "RN" "\0"
358
+ "L" "\0" "L" "\0" "L" "\0" "L" "\0" "" "\0"
359
+ "" "\0" "" "\0" "LN" "\0" "LN" "\0" "LN" "\0"
360
+ "LN" "\0" "LN" "\0" "NN" "\0" "N" "\0" "IA" "\0"
361
+ "IA" "\0" "IA" "\0" "IA" "\0" "I" "\0" "I" "\0"
362
+ "I" "\0" "I" "\0" "" "\0" "" "\0" "V" "\0"
363
+ "N" "\0" "V" "\0" "N" "\0" "" "\0" "NN" "\0"
364
+ "" "\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" "NVV" "\0" "N" "\0" "LL" "\0"
368
+ "N" "\0" "ISN" "\0" "IS" "\0" "IS" "\0" "CS" "\0"
369
+ "C" "\0" "C" "\0" "VC" "\0" "C" "\0" "VC" "\0"
370
+ "N" "\0" "N" "\0" "CS" "\0" "C" "\0" "" "\0"
371
+ "N" "\0" "O" "\0" "O" "\0" "O" "\0" "O" "\0"
372
+ "OK" "\0" "K" "\0" "ST" "\0" "HO" "\0" "C" "\0"
354
373
  "C" "\0" "C" "\0" "C" "\0" "C" "\0" "C" "\0"
355
- "C" "\0" "R" "\0" "RN" "\0" "RN" "\0" "L" "\0"
356
- "L" "\0" "L" "\0" "L" "\0" "" "\0" "" "\0"
357
- "" "\0" "LN" "\0" "LN" "\0" "LN" "\0" "LN" "\0"
358
- "LN" "\0" "NN" "\0" "N" "\0" "IA" "\0" "IA" "\0"
359
- "IA" "\0" "IA" "\0" "I" "\0" "I" "\0" "I" "\0"
360
- "I" "\0" "" "\0" "" "\0" "V" "\0" "N" "\0"
361
- "V" "\0" "N" "\0" "" "\0" "NN" "\0" "" "\0"
362
- "N" "\0" "N" "\0" "V" "\0" "V" "\0" "NN" "\0"
363
- "" "\0" "V" "\0" "N" "\0" "N" "\0" "" "\0"
364
- "" "\0" "N" "\0" "" "\0" "N" "\0" "N" "\0"
365
- "N" "\0" "NVV" "\0" "N" "\0" "LL" "\0" "N" "\0"
366
- "ISN" "\0" "IS" "\0" "IS" "\0" "CS" "\0" "C" "\0"
367
- "VC" "\0" "C" "\0" "VC" "\0" "N" "\0" "N" "\0"
368
- "CS" "\0" "C" "\0" "" "\0" "N" "\0" "O" "\0"
369
- "O" "\0" "O" "\0" "O" "\0" "OK" "\0" "K" "\0"
370
- "ST" "\0" "HO" "\0" "C" "\0" "C" "\0" "C" "\0"
371
- "C" "\0" "C" "\0" "C" "\0" "CC" "\0" "C" "\0"
374
+ "CC" "\0" "C" "\0" "C" "\0" "C" "\0" "C" "\0"
372
375
  "C" "\0" "C" "\0" "C" "\0" "C" "\0" "C" "\0"
373
- "C" "\0" "C" "\0" "C" "\0" "VC" "\0" "VC" "\0"
374
- "C" "\0" "C" "\0" "C" "\0" "C" "\0" "C" "\0"
375
- "C" "\0" "R" "\0" "RN" "\0" "RN" "\0" "L" "\0"
376
- "L" "\0" "L" "\0" "L" "\0" "" "\0" "" "\0"
376
+ "VC" "\0" "VC" "\0" "C" "\0" "C" "\0" "C" "\0"
377
+ "C" "\0" "C" "\0" "C" "\0" "R" "\0" "RN" "\0"
378
+ "RN" "\0" "L" "\0" "L" "\0" "L" "\0" "L" "\0"
379
+ "" "\0" "" "\0"
377
380
  ;
378
381
 
379
382
  const unsigned short rb_vm_insn_op_offset[] = {
@@ -381,19 +384,19 @@ const unsigned short rb_vm_insn_op_offset[] = {
381
384
  33, 35, 37, 39, 41, 42, 43, 45, 47, 49, 51, 52,
382
385
  55, 56, 58, 60, 62, 64, 67, 68, 70, 72, 74, 75,
383
386
  76, 78, 79, 81, 83, 85, 89, 91, 94, 96, 100, 103,
384
- 106, 109, 111, 114, 116, 119, 121, 123, 126, 128, 129, 131,
385
- 133, 135, 137, 139, 142, 144, 147, 150, 152, 154, 156, 158,
386
- 160, 162, 165, 167, 169, 171, 173, 175, 177, 179, 181, 183,
387
- 186, 189, 191, 193, 195, 197, 199, 201, 203, 206, 209, 211,
388
- 213, 215, 217, 218, 219, 220, 223, 226, 229, 232, 235, 238,
389
- 240, 243, 246, 249, 252, 254, 256, 258, 260, 261, 262, 264,
390
- 266, 268, 270, 271, 274, 275, 277, 279, 281, 283, 286, 287,
391
- 289, 291, 293, 294, 295, 297, 298, 300, 302, 304, 308, 310,
392
- 313, 315, 319, 322, 325, 328, 330, 333, 335, 338, 340, 342,
393
- 345, 347, 348, 350, 352, 354, 356, 358, 361, 363, 366, 369,
394
- 371, 373, 375, 377, 379, 381, 384, 386, 388, 390, 392, 394,
395
- 396, 398, 400, 402, 405, 408, 410, 412, 414, 416, 418, 420,
396
- 422, 425, 428, 430, 432, 434, 436, 437,
387
+ 106, 109, 111, 113, 116, 118, 121, 123, 125, 128, 130, 131,
388
+ 133, 135, 137, 139, 141, 144, 146, 149, 152, 154, 156, 158,
389
+ 160, 162, 164, 167, 169, 171, 173, 175, 177, 179, 181, 183,
390
+ 185, 188, 191, 193, 195, 197, 199, 201, 203, 205, 208, 211,
391
+ 213, 215, 217, 219, 220, 221, 222, 225, 228, 231, 234, 237,
392
+ 240, 242, 245, 248, 251, 254, 256, 258, 260, 262, 263, 264,
393
+ 266, 268, 270, 272, 273, 276, 277, 279, 281, 283, 285, 288,
394
+ 289, 291, 293, 295, 296, 297, 299, 300, 302, 304, 306, 310,
395
+ 312, 315, 317, 321, 324, 327, 330, 332, 334, 337, 339, 342,
396
+ 344, 346, 349, 351, 352, 354, 356, 358, 360, 362, 365, 367,
397
+ 370, 373, 375, 377, 379, 381, 383, 385, 388, 390, 392, 394,
398
+ 396, 398, 400, 402, 404, 406, 409, 412, 414, 416, 418, 420,
399
+ 422, 424, 426, 429, 432, 434, 436, 438, 440, 441,
397
400
  };
398
401
 
399
402
  ASSERT_VM_INSTRUCTION_SIZE(rb_vm_insn_op_offset);
@@ -461,7 +464,7 @@ leafness_of_checkmatch(rb_num_t flag)
461
464
  return false;
462
465
  }
463
466
  }
464
- #line 465 "insns_info.inc"
467
+ #line 468 "insns_info.inc"
465
468
 
466
469
  #line 10 "tool/ruby_vm/views/_sp_inc_helpers.erb"
467
470
 
@@ -491,7 +494,7 @@ sp_inc_of_invokeblock(const struct rb_callinfo *ci)
491
494
  * instructions, except that it does not pop receiver. */
492
495
  return sp_inc_of_sendish(ci) + 1;
493
496
  }
494
- #line 495 "insns_info.inc"
497
+ #line 498 "insns_info.inc"
495
498
 
496
499
  #ifndef RUBY_VM_EXEC_H
497
500
  /* can't #include "vm_exec.h" here... */
@@ -699,15 +702,15 @@ PUREFUNC(MAYBE_UNUSED(static rb_num_t attr_popn_concatstrings(rb_num_t num)));
699
702
  PUREFUNC(MAYBE_UNUSED(static rb_num_t attr_retn_concatstrings(rb_num_t num)));
700
703
  PUREFUNC(MAYBE_UNUSED(static rb_snum_t attr_sp_inc_concatstrings(rb_num_t num)));
701
704
  PUREFUNC(MAYBE_UNUSED(static rb_num_t attr_width_concatstrings(rb_num_t num)));
702
- PUREFUNC(MAYBE_UNUSED(static enum ruby_vminsn_type attr_bin_tostring(void)));
703
- PUREFUNC(MAYBE_UNUSED(static bool attr_handles_sp_tostring(void)));
704
- PUREFUNC(MAYBE_UNUSED(static bool attr_leaf_tostring(void)));
705
- PUREFUNC(MAYBE_UNUSED(static const char* attr_name_tostring(void)));
706
- PUREFUNC(MAYBE_UNUSED(static rb_num_t attr_open_tostring(void)));
707
- PUREFUNC(MAYBE_UNUSED(static rb_num_t attr_popn_tostring(void)));
708
- PUREFUNC(MAYBE_UNUSED(static rb_num_t attr_retn_tostring(void)));
709
- PUREFUNC(MAYBE_UNUSED(static rb_snum_t attr_sp_inc_tostring(void)));
710
- PUREFUNC(MAYBE_UNUSED(static rb_num_t attr_width_tostring(void)));
705
+ PUREFUNC(MAYBE_UNUSED(static enum ruby_vminsn_type attr_bin_anytostring(void)));
706
+ PUREFUNC(MAYBE_UNUSED(static bool attr_handles_sp_anytostring(void)));
707
+ PUREFUNC(MAYBE_UNUSED(static bool attr_leaf_anytostring(void)));
708
+ PUREFUNC(MAYBE_UNUSED(static const char* attr_name_anytostring(void)));
709
+ PUREFUNC(MAYBE_UNUSED(static rb_num_t attr_open_anytostring(void)));
710
+ PUREFUNC(MAYBE_UNUSED(static rb_num_t attr_popn_anytostring(void)));
711
+ PUREFUNC(MAYBE_UNUSED(static rb_num_t attr_retn_anytostring(void)));
712
+ PUREFUNC(MAYBE_UNUSED(static rb_snum_t attr_sp_inc_anytostring(void)));
713
+ PUREFUNC(MAYBE_UNUSED(static rb_num_t attr_width_anytostring(void)));
711
714
  PUREFUNC(MAYBE_UNUSED(static enum ruby_vminsn_type attr_bin_toregexp(rb_num_t opt, rb_num_t cnt)));
712
715
  PUREFUNC(MAYBE_UNUSED(static bool attr_handles_sp_toregexp(rb_num_t opt, rb_num_t cnt)));
713
716
  PUREFUNC(MAYBE_UNUSED(static bool attr_leaf_toregexp(rb_num_t opt, rb_num_t cnt)));
@@ -953,6 +956,15 @@ PUREFUNC(MAYBE_UNUSED(static rb_num_t attr_popn_opt_send_without_block(CALL_DATA
953
956
  PUREFUNC(MAYBE_UNUSED(static rb_num_t attr_retn_opt_send_without_block(CALL_DATA cd)));
954
957
  PUREFUNC(MAYBE_UNUSED(static rb_snum_t attr_sp_inc_opt_send_without_block(CALL_DATA cd)));
955
958
  PUREFUNC(MAYBE_UNUSED(static rb_num_t attr_width_opt_send_without_block(CALL_DATA cd)));
959
+ PUREFUNC(MAYBE_UNUSED(static enum ruby_vminsn_type attr_bin_objtostring(CALL_DATA cd)));
960
+ PUREFUNC(MAYBE_UNUSED(static bool attr_handles_sp_objtostring(CALL_DATA cd)));
961
+ PUREFUNC(MAYBE_UNUSED(static bool attr_leaf_objtostring(CALL_DATA cd)));
962
+ PUREFUNC(MAYBE_UNUSED(static const char* attr_name_objtostring(CALL_DATA cd)));
963
+ PUREFUNC(MAYBE_UNUSED(static rb_num_t attr_open_objtostring(CALL_DATA cd)));
964
+ PUREFUNC(MAYBE_UNUSED(static rb_num_t attr_popn_objtostring(CALL_DATA cd)));
965
+ PUREFUNC(MAYBE_UNUSED(static rb_num_t attr_retn_objtostring(CALL_DATA cd)));
966
+ PUREFUNC(MAYBE_UNUSED(static rb_snum_t attr_sp_inc_objtostring(CALL_DATA cd)));
967
+ PUREFUNC(MAYBE_UNUSED(static rb_num_t attr_width_objtostring(CALL_DATA cd)));
956
968
  PUREFUNC(MAYBE_UNUSED(static enum ruby_vminsn_type attr_bin_opt_str_freeze(VALUE str, CALL_DATA cd)));
957
969
  PUREFUNC(MAYBE_UNUSED(static bool attr_handles_sp_opt_str_freeze(VALUE str, CALL_DATA cd)));
958
970
  PUREFUNC(MAYBE_UNUSED(static bool attr_leaf_opt_str_freeze(VALUE str, CALL_DATA cd)));
@@ -1949,7 +1961,7 @@ attr_leaf_getspecial(
1949
1961
  return
1950
1962
  #line 192 "insns.def"
1951
1963
  (type == 0) ? true : false;
1952
- #line 1953 "insns_info.inc"
1964
+ #line 1965 "insns_info.inc"
1953
1965
  }
1954
1966
 
1955
1967
  /* attr const char* name @ getspecial(key, type)()(val) */
@@ -2105,7 +2117,7 @@ attr_leaf_getinstancevariable(
2105
2117
  return
2106
2118
  #line 214 "insns.def"
2107
2119
  false;
2108
- #line 2109 "insns_info.inc"
2120
+ #line 2121 "insns_info.inc"
2109
2121
  }
2110
2122
 
2111
2123
  /* attr const char* name @ getinstancevariable(id, ic)()(val) */
@@ -2198,7 +2210,7 @@ attr_leaf_setinstancevariable(
2198
2210
  return
2199
2211
  #line 225 "insns.def"
2200
2212
  false;
2201
- #line 2202 "insns_info.inc"
2213
+ #line 2214 "insns_info.inc"
2202
2214
  }
2203
2215
 
2204
2216
  /* attr const char* name @ setinstancevariable(id, ic)(val)() */
@@ -2291,7 +2303,7 @@ attr_leaf_getclassvariable(
2291
2303
  return
2292
2304
  #line 237 "insns.def"
2293
2305
  false;
2294
- #line 2295 "insns_info.inc"
2306
+ #line 2307 "insns_info.inc"
2295
2307
  }
2296
2308
 
2297
2309
  /* attr const char* name @ getclassvariable(id, ic)()(val) */
@@ -2382,9 +2394,9 @@ attr_leaf_setclassvariable(
2382
2394
  )
2383
2395
  {
2384
2396
  return
2385
- #line 251 "insns.def"
2397
+ #line 250 "insns.def"
2386
2398
  false;
2387
- #line 2388 "insns_info.inc"
2399
+ #line 2400 "insns_info.inc"
2388
2400
  }
2389
2401
 
2390
2402
  /* attr const char* name @ setclassvariable(id, ic)(val)() */
@@ -2466,9 +2478,9 @@ bool
2466
2478
  attr_leaf_getconstant(MAYBE_UNUSED(ID id))
2467
2479
  {
2468
2480
  return
2469
- #line 267 "insns.def"
2481
+ #line 266 "insns.def"
2470
2482
  false;
2471
- #line 2472 "insns_info.inc"
2483
+ #line 2484 "insns_info.inc"
2472
2484
  }
2473
2485
 
2474
2486
  /* attr const char* name @ getconstant(id)(klass, allow_nil)(val) */
@@ -2532,9 +2544,9 @@ bool
2532
2544
  attr_leaf_setconstant(MAYBE_UNUSED(ID id))
2533
2545
  {
2534
2546
  return
2535
- #line 283 "insns.def"
2547
+ #line 282 "insns.def"
2536
2548
  false;
2537
- #line 2538 "insns_info.inc"
2549
+ #line 2550 "insns_info.inc"
2538
2550
  }
2539
2551
 
2540
2552
  /* attr const char* name @ setconstant(id)(val, cbase)() */
@@ -2598,9 +2610,9 @@ bool
2598
2610
  attr_leaf_getglobal(MAYBE_UNUSED(ID gid))
2599
2611
  {
2600
2612
  return
2601
- #line 296 "insns.def"
2613
+ #line 295 "insns.def"
2602
2614
  false;
2603
- #line 2604 "insns_info.inc"
2615
+ #line 2616 "insns_info.inc"
2604
2616
  }
2605
2617
 
2606
2618
  /* attr const char* name @ getglobal(gid)()(val) */
@@ -2664,9 +2676,9 @@ bool
2664
2676
  attr_leaf_setglobal(MAYBE_UNUSED(ID gid))
2665
2677
  {
2666
2678
  return
2667
- #line 307 "insns.def"
2679
+ #line 306 "insns.def"
2668
2680
  false;
2669
- #line 2670 "insns_info.inc"
2681
+ #line 2682 "insns_info.inc"
2670
2682
  }
2671
2683
 
2672
2684
  /* attr const char* name @ setglobal(gid)(val)() */
@@ -2918,7 +2930,10 @@ attr_handles_sp_putspecialobject(MAYBE_UNUSED(rb_num_t value_type))
2918
2930
  bool
2919
2931
  attr_leaf_putspecialobject(MAYBE_UNUSED(rb_num_t value_type))
2920
2932
  {
2921
- return true;
2933
+ return
2934
+ #line 353 "insns.def"
2935
+ (value_type == VM_SPECIAL_OBJECT_VMCORE);
2936
+ #line 2937 "insns_info.inc"
2922
2937
  }
2923
2938
 
2924
2939
  /* attr const char* name @ putspecialobject(value_type)()(val) */
@@ -3047,7 +3062,7 @@ attr_leaf_concatstrings(MAYBE_UNUSED(rb_num_t num))
3047
3062
  return
3048
3063
  #line 379 "insns.def"
3049
3064
  false;
3050
- #line 3051 "insns_info.inc"
3065
+ #line 3066 "insns_info.inc"
3051
3066
  }
3052
3067
 
3053
3068
  /* attr const char* name @ concatstrings(num)(...)(val) */
@@ -3085,7 +3100,7 @@ attr_sp_inc_concatstrings(MAYBE_UNUSED(rb_num_t num))
3085
3100
  return
3086
3101
  #line 380 "insns.def"
3087
3102
  1 - (rb_snum_t)num;
3088
- #line 3089 "insns_info.inc"
3103
+ #line 3104 "insns_info.inc"
3089
3104
  }
3090
3105
 
3091
3106
  /* attr rb_num_t width @ concatstrings(num)(...)(val) */
@@ -3095,65 +3110,65 @@ attr_width_concatstrings(MAYBE_UNUSED(rb_num_t num))
3095
3110
  return 2;
3096
3111
  }
3097
3112
 
3098
- /* attr enum ruby_vminsn_type bin @ tostring()(val, str)(val) */
3113
+ /* attr enum ruby_vminsn_type bin @ anytostring()(val, str)(val) */
3099
3114
  enum ruby_vminsn_type
3100
- attr_bin_tostring(void)
3115
+ attr_bin_anytostring(void)
3101
3116
  {
3102
- return BIN(tostring);
3117
+ return BIN(anytostring);
3103
3118
  }
3104
3119
 
3105
- /* attr bool handles_sp @ tostring()(val, str)(val) */
3120
+ /* attr bool handles_sp @ anytostring()(val, str)(val) */
3106
3121
  bool
3107
- attr_handles_sp_tostring(void)
3122
+ attr_handles_sp_anytostring(void)
3108
3123
  {
3109
3124
  return false;
3110
3125
  }
3111
3126
 
3112
- /* attr bool leaf @ tostring()(val, str)(val) */
3127
+ /* attr bool leaf @ anytostring()(val, str)(val) */
3113
3128
  bool
3114
- attr_leaf_tostring(void)
3129
+ attr_leaf_anytostring(void)
3115
3130
  {
3116
3131
  return true;
3117
3132
  }
3118
3133
 
3119
- /* attr const char* name @ tostring()(val, str)(val) */
3134
+ /* attr const char* name @ anytostring()(val, str)(val) */
3120
3135
  const char*
3121
- attr_name_tostring(void)
3136
+ attr_name_anytostring(void)
3122
3137
  {
3123
- return insn_name(BIN(tostring));
3138
+ return insn_name(BIN(anytostring));
3124
3139
  }
3125
3140
 
3126
- /* attr rb_num_t open @ tostring()(val, str)(val) */
3141
+ /* attr rb_num_t open @ anytostring()(val, str)(val) */
3127
3142
  rb_num_t
3128
- attr_open_tostring(void)
3143
+ attr_open_anytostring(void)
3129
3144
  {
3130
3145
  return 0;
3131
3146
  }
3132
3147
 
3133
- /* attr rb_num_t popn @ tostring()(val, str)(val) */
3148
+ /* attr rb_num_t popn @ anytostring()(val, str)(val) */
3134
3149
  rb_num_t
3135
- attr_popn_tostring(void)
3150
+ attr_popn_anytostring(void)
3136
3151
  {
3137
3152
  return 2;
3138
3153
  }
3139
3154
 
3140
- /* attr rb_num_t retn @ tostring()(val, str)(val) */
3155
+ /* attr rb_num_t retn @ anytostring()(val, str)(val) */
3141
3156
  rb_num_t
3142
- attr_retn_tostring(void)
3157
+ attr_retn_anytostring(void)
3143
3158
  {
3144
3159
  return 1;
3145
3160
  }
3146
3161
 
3147
- /* attr rb_snum_t sp_inc @ tostring()(val, str)(val) */
3162
+ /* attr rb_snum_t sp_inc @ anytostring()(val, str)(val) */
3148
3163
  rb_snum_t
3149
- attr_sp_inc_tostring(void)
3164
+ attr_sp_inc_anytostring(void)
3150
3165
  {
3151
3166
  return -1;
3152
3167
  }
3153
3168
 
3154
- /* attr rb_num_t width @ tostring()(val, str)(val) */
3169
+ /* attr rb_num_t width @ anytostring()(val, str)(val) */
3155
3170
  rb_num_t
3156
- attr_width_tostring(void)
3171
+ attr_width_anytostring(void)
3157
3172
  {
3158
3173
  return 1;
3159
3174
  }
@@ -3186,9 +3201,9 @@ attr_leaf_toregexp(
3186
3201
  )
3187
3202
  {
3188
3203
  return
3189
- #line 405 "insns.def"
3204
+ #line 406 "insns.def"
3190
3205
  false;
3191
- #line 3192 "insns_info.inc"
3206
+ #line 3207 "insns_info.inc"
3192
3207
  }
3193
3208
 
3194
3209
  /* attr const char* name @ toregexp(opt, cnt)(...)(val) */
@@ -3239,9 +3254,9 @@ attr_sp_inc_toregexp(
3239
3254
  )
3240
3255
  {
3241
3256
  return
3242
- #line 406 "insns.def"
3257
+ #line 407 "insns.def"
3243
3258
  1 - (rb_snum_t)cnt;
3244
- #line 3245 "insns_info.inc"
3259
+ #line 3260 "insns_info.inc"
3245
3260
  }
3246
3261
 
3247
3262
  /* attr rb_num_t width @ toregexp(opt, cnt)(...)(val) */
@@ -3371,9 +3386,9 @@ rb_snum_t
3371
3386
  attr_sp_inc_newarray(MAYBE_UNUSED(rb_num_t num))
3372
3387
  {
3373
3388
  return
3374
- #line 429 "insns.def"
3389
+ #line 430 "insns.def"
3375
3390
  1 - (rb_snum_t)num;
3376
- #line 3377 "insns_info.inc"
3391
+ #line 3392 "insns_info.inc"
3377
3392
  }
3378
3393
 
3379
3394
  /* attr rb_num_t width @ newarray(num)(...)(val) */
@@ -3437,9 +3452,9 @@ rb_snum_t
3437
3452
  attr_sp_inc_newarraykwsplat(MAYBE_UNUSED(rb_num_t num))
3438
3453
  {
3439
3454
  return
3440
- #line 444 "insns.def"
3455
+ #line 445 "insns.def"
3441
3456
  1 - (rb_snum_t)num;
3442
- #line 3443 "insns_info.inc"
3457
+ #line 3458 "insns_info.inc"
3443
3458
  }
3444
3459
 
3445
3460
  /* attr rb_num_t width @ newarraykwsplat(num)(...)(val) */
@@ -3603,9 +3618,9 @@ attr_leaf_expandarray(
3603
3618
  )
3604
3619
  {
3605
3620
  return
3606
- #line 490 "insns.def"
3621
+ #line 491 "insns.def"
3607
3622
  false;
3608
- #line 3609 "insns_info.inc"
3623
+ #line 3624 "insns_info.inc"
3609
3624
  }
3610
3625
 
3611
3626
  /* attr const char* name @ expandarray(num, flag)(..., ary)(...) */
@@ -3656,9 +3671,9 @@ attr_sp_inc_expandarray(
3656
3671
  )
3657
3672
  {
3658
3673
  return
3659
- #line 491 "insns.def"
3674
+ #line 492 "insns.def"
3660
3675
  (rb_snum_t)num - 1 + (flag & 1 ? 1 : 0);
3661
- #line 3662 "insns_info.inc"
3676
+ #line 3677 "insns_info.inc"
3662
3677
  }
3663
3678
 
3664
3679
  /* attr rb_num_t width @ expandarray(num, flag)(..., ary)(...) */
@@ -3690,9 +3705,9 @@ bool
3690
3705
  attr_leaf_concatarray(void)
3691
3706
  {
3692
3707
  return
3693
- #line 502 "insns.def"
3708
+ #line 503 "insns.def"
3694
3709
  false;
3695
- #line 3696 "insns_info.inc"
3710
+ #line 3711 "insns_info.inc"
3696
3711
  }
3697
3712
 
3698
3713
  /* attr const char* name @ concatarray()(ary1, ary2)(ary) */
@@ -3756,9 +3771,9 @@ bool
3756
3771
  attr_leaf_splatarray(MAYBE_UNUSED(VALUE flag))
3757
3772
  {
3758
3773
  return
3759
- #line 513 "insns.def"
3774
+ #line 514 "insns.def"
3760
3775
  false;
3761
- #line 3762 "insns_info.inc"
3776
+ #line 3777 "insns_info.inc"
3762
3777
  }
3763
3778
 
3764
3779
  /* attr const char* name @ splatarray(flag)(ary)(obj) */
@@ -3822,9 +3837,9 @@ bool
3822
3837
  attr_leaf_newhash(MAYBE_UNUSED(rb_num_t num))
3823
3838
  {
3824
3839
  return
3825
- #line 524 "insns.def"
3840
+ #line 525 "insns.def"
3826
3841
  false;
3827
- #line 3828 "insns_info.inc"
3842
+ #line 3843 "insns_info.inc"
3828
3843
  }
3829
3844
 
3830
3845
  /* attr const char* name @ newhash(num)(...)(val) */
@@ -3860,9 +3875,9 @@ rb_snum_t
3860
3875
  attr_sp_inc_newhash(MAYBE_UNUSED(rb_num_t num))
3861
3876
  {
3862
3877
  return
3863
- #line 525 "insns.def"
3878
+ #line 526 "insns.def"
3864
3879
  1 - (rb_snum_t)num;
3865
- #line 3866 "insns_info.inc"
3880
+ #line 3881 "insns_info.inc"
3866
3881
  }
3867
3882
 
3868
3883
  /* attr rb_num_t width @ newhash(num)(...)(val) */
@@ -3891,9 +3906,9 @@ bool
3891
3906
  attr_leaf_newrange(MAYBE_UNUSED(rb_num_t flag))
3892
3907
  {
3893
3908
  return
3894
- #line 545 "insns.def"
3909
+ #line 546 "insns.def"
3895
3910
  false;
3896
- #line 3897 "insns_info.inc"
3911
+ #line 3912 "insns_info.inc"
3897
3912
  }
3898
3913
 
3899
3914
  /* attr const char* name @ newrange(flag)(low, high)(val) */
@@ -4118,9 +4133,9 @@ rb_snum_t
4118
4133
  attr_sp_inc_dupn(MAYBE_UNUSED(rb_num_t n))
4119
4134
  {
4120
4135
  return
4121
- #line 581 "insns.def"
4136
+ #line 582 "insns.def"
4122
4137
  n;
4123
- #line 4124 "insns_info.inc"
4138
+ #line 4139 "insns_info.inc"
4124
4139
  }
4125
4140
 
4126
4141
  /* attr rb_num_t width @ dupn(n)(...)(...) */
@@ -4247,9 +4262,9 @@ rb_snum_t
4247
4262
  attr_sp_inc_topn(MAYBE_UNUSED(rb_num_t n))
4248
4263
  {
4249
4264
  return
4250
- #line 616 "insns.def"
4265
+ #line 617 "insns.def"
4251
4266
  1;
4252
- #line 4253 "insns_info.inc"
4267
+ #line 4268 "insns_info.inc"
4253
4268
  }
4254
4269
 
4255
4270
  /* attr rb_num_t width @ topn(n)(...)(val) */
@@ -4313,9 +4328,9 @@ rb_snum_t
4313
4328
  attr_sp_inc_setn(MAYBE_UNUSED(rb_num_t n))
4314
4329
  {
4315
4330
  return
4316
- #line 627 "insns.def"
4331
+ #line 628 "insns.def"
4317
4332
  0;
4318
- #line 4319 "insns_info.inc"
4333
+ #line 4334 "insns_info.inc"
4319
4334
  }
4320
4335
 
4321
4336
  /* attr rb_num_t width @ setn(n)(..., val)(val) */
@@ -4379,9 +4394,9 @@ rb_snum_t
4379
4394
  attr_sp_inc_adjuststack(MAYBE_UNUSED(rb_num_t n))
4380
4395
  {
4381
4396
  return
4382
- #line 638 "insns.def"
4397
+ #line 639 "insns.def"
4383
4398
  -(rb_snum_t)n;
4384
- #line 4385 "insns_info.inc"
4399
+ #line 4400 "insns_info.inc"
4385
4400
  }
4386
4401
 
4387
4402
  /* attr rb_num_t width @ adjuststack(n)(...)(...) */
@@ -4422,9 +4437,9 @@ attr_leaf_defined(
4422
4437
  )
4423
4438
  {
4424
4439
  return
4425
- #line 653 "insns.def"
4440
+ #line 654 "insns.def"
4426
4441
  leafness_of_defined(op_type);
4427
- #line 4428 "insns_info.inc"
4442
+ #line 4443 "insns_info.inc"
4428
4443
  }
4429
4444
 
4430
4445
  /* attr const char* name @ defined(op_type, obj, pushval)(v)(val) */
@@ -4512,9 +4527,9 @@ bool
4512
4527
  attr_leaf_checkmatch(MAYBE_UNUSED(rb_num_t flag))
4513
4528
  {
4514
4529
  return
4515
- #line 673 "insns.def"
4530
+ #line 674 "insns.def"
4516
4531
  leafness_of_checkmatch(flag);
4517
- #line 4518 "insns_info.inc"
4532
+ #line 4533 "insns_info.inc"
4518
4533
  }
4519
4534
 
4520
4535
  /* attr const char* name @ checkmatch(flag)(target, pattern)(result) */
@@ -5009,9 +5024,9 @@ attr_comptime_sp_inc_send(
5009
5024
  )
5010
5025
  {
5011
5026
  return
5012
- #line 755 "insns.def"
5027
+ #line 756 "insns.def"
5013
5028
  sp_inc_of_sendish(ci);
5014
- #line 5015 "insns_info.inc"
5029
+ #line 5030 "insns_info.inc"
5015
5030
  }
5016
5031
 
5017
5032
  /* attr bool handles_sp @ send(cd, blockiseq)(...)(val) */
@@ -5082,9 +5097,9 @@ attr_sp_inc_send(
5082
5097
  )
5083
5098
  {
5084
5099
  return
5085
- #line 754 "insns.def"
5100
+ #line 755 "insns.def"
5086
5101
  sp_inc_of_sendish(cd->ci);
5087
- #line 5088 "insns_info.inc"
5102
+ #line 5103 "insns_info.inc"
5088
5103
  }
5089
5104
 
5090
5105
  /* attr rb_num_t width @ send(cd, blockiseq)(...)(val) */
@@ -5109,9 +5124,9 @@ rb_snum_t
5109
5124
  attr_comptime_sp_inc_opt_send_without_block(MAYBE_UNUSED(CALL_INFO ci))
5110
5125
  {
5111
5126
  return
5112
- #line 774 "insns.def"
5127
+ #line 775 "insns.def"
5113
5128
  sp_inc_of_sendish(ci);
5114
- #line 5115 "insns_info.inc"
5129
+ #line 5130 "insns_info.inc"
5115
5130
  }
5116
5131
 
5117
5132
  /* attr bool handles_sp @ opt_send_without_block(cd)(...)(val) */
@@ -5119,9 +5134,9 @@ bool
5119
5134
  attr_handles_sp_opt_send_without_block(MAYBE_UNUSED(CALL_DATA cd))
5120
5135
  {
5121
5136
  return
5122
- #line 772 "insns.def"
5137
+ #line 773 "insns.def"
5123
5138
  true;
5124
- #line 5125 "insns_info.inc"
5139
+ #line 5140 "insns_info.inc"
5125
5140
  }
5126
5141
 
5127
5142
  /* attr bool leaf @ opt_send_without_block(cd)(...)(val) */
@@ -5164,9 +5179,9 @@ rb_snum_t
5164
5179
  attr_sp_inc_opt_send_without_block(MAYBE_UNUSED(CALL_DATA cd))
5165
5180
  {
5166
5181
  return
5167
- #line 773 "insns.def"
5182
+ #line 774 "insns.def"
5168
5183
  sp_inc_of_sendish(cd->ci);
5169
- #line 5170 "insns_info.inc"
5184
+ #line 5185 "insns_info.inc"
5170
5185
  }
5171
5186
 
5172
5187
  /* attr rb_num_t width @ opt_send_without_block(cd)(...)(val) */
@@ -5176,6 +5191,72 @@ attr_width_opt_send_without_block(MAYBE_UNUSED(CALL_DATA cd))
5176
5191
  return 2;
5177
5192
  }
5178
5193
 
5194
+ /* attr enum ruby_vminsn_type bin @ objtostring(cd)(recv)(val) */
5195
+ enum ruby_vminsn_type
5196
+ attr_bin_objtostring(MAYBE_UNUSED(CALL_DATA cd))
5197
+ {
5198
+ return BIN(objtostring);
5199
+ }
5200
+
5201
+ /* attr bool handles_sp @ objtostring(cd)(recv)(val) */
5202
+ bool
5203
+ attr_handles_sp_objtostring(MAYBE_UNUSED(CALL_DATA cd))
5204
+ {
5205
+ return false;
5206
+ }
5207
+
5208
+ /* attr bool leaf @ objtostring(cd)(recv)(val) */
5209
+ bool
5210
+ attr_leaf_objtostring(MAYBE_UNUSED(CALL_DATA cd))
5211
+ {
5212
+ return
5213
+ #line 792 "insns.def"
5214
+ false;
5215
+ #line 5216 "insns_info.inc"
5216
+ }
5217
+
5218
+ /* attr const char* name @ objtostring(cd)(recv)(val) */
5219
+ const char*
5220
+ attr_name_objtostring(MAYBE_UNUSED(CALL_DATA cd))
5221
+ {
5222
+ return insn_name(BIN(objtostring));
5223
+ }
5224
+
5225
+ /* attr rb_num_t open @ objtostring(cd)(recv)(val) */
5226
+ rb_num_t
5227
+ attr_open_objtostring(MAYBE_UNUSED(CALL_DATA cd))
5228
+ {
5229
+ return 1;
5230
+ }
5231
+
5232
+ /* attr rb_num_t popn @ objtostring(cd)(recv)(val) */
5233
+ rb_num_t
5234
+ attr_popn_objtostring(MAYBE_UNUSED(CALL_DATA cd))
5235
+ {
5236
+ return 1;
5237
+ }
5238
+
5239
+ /* attr rb_num_t retn @ objtostring(cd)(recv)(val) */
5240
+ rb_num_t
5241
+ attr_retn_objtostring(MAYBE_UNUSED(CALL_DATA cd))
5242
+ {
5243
+ return 1;
5244
+ }
5245
+
5246
+ /* attr rb_snum_t sp_inc @ objtostring(cd)(recv)(val) */
5247
+ rb_snum_t
5248
+ attr_sp_inc_objtostring(MAYBE_UNUSED(CALL_DATA cd))
5249
+ {
5250
+ return 0;
5251
+ }
5252
+
5253
+ /* attr rb_num_t width @ objtostring(cd)(recv)(val) */
5254
+ rb_num_t
5255
+ attr_width_objtostring(MAYBE_UNUSED(CALL_DATA cd))
5256
+ {
5257
+ return 2;
5258
+ }
5259
+
5179
5260
  /* attr enum ruby_vminsn_type bin @ opt_str_freeze(str, cd)()(val) */
5180
5261
  enum ruby_vminsn_type
5181
5262
  attr_bin_opt_str_freeze(
@@ -5438,9 +5519,9 @@ bool
5438
5519
  attr_leaf_opt_newarray_max(MAYBE_UNUSED(rb_num_t num))
5439
5520
  {
5440
5521
  return
5441
- #line 836 "insns.def"
5522
+ #line 852 "insns.def"
5442
5523
  false;
5443
- #line 5444 "insns_info.inc"
5524
+ #line 5525 "insns_info.inc"
5444
5525
  }
5445
5526
 
5446
5527
  /* attr const char* name @ opt_newarray_max(num)(...)(val) */
@@ -5476,9 +5557,9 @@ rb_snum_t
5476
5557
  attr_sp_inc_opt_newarray_max(MAYBE_UNUSED(rb_num_t num))
5477
5558
  {
5478
5559
  return
5479
- #line 837 "insns.def"
5560
+ #line 853 "insns.def"
5480
5561
  1 - (rb_snum_t)num;
5481
- #line 5482 "insns_info.inc"
5562
+ #line 5563 "insns_info.inc"
5482
5563
  }
5483
5564
 
5484
5565
  /* attr rb_num_t width @ opt_newarray_max(num)(...)(val) */
@@ -5507,9 +5588,9 @@ bool
5507
5588
  attr_leaf_opt_newarray_min(MAYBE_UNUSED(rb_num_t num))
5508
5589
  {
5509
5590
  return
5510
- #line 848 "insns.def"
5591
+ #line 864 "insns.def"
5511
5592
  false;
5512
- #line 5513 "insns_info.inc"
5593
+ #line 5594 "insns_info.inc"
5513
5594
  }
5514
5595
 
5515
5596
  /* attr const char* name @ opt_newarray_min(num)(...)(val) */
@@ -5545,9 +5626,9 @@ rb_snum_t
5545
5626
  attr_sp_inc_opt_newarray_min(MAYBE_UNUSED(rb_num_t num))
5546
5627
  {
5547
5628
  return
5548
- #line 849 "insns.def"
5629
+ #line 865 "insns.def"
5549
5630
  1 - (rb_snum_t)num;
5550
- #line 5551 "insns_info.inc"
5631
+ #line 5632 "insns_info.inc"
5551
5632
  }
5552
5633
 
5553
5634
  /* attr rb_num_t width @ opt_newarray_min(num)(...)(val) */
@@ -5575,9 +5656,9 @@ attr_comptime_sp_inc_invokesuper(
5575
5656
  )
5576
5657
  {
5577
5658
  return
5578
- #line 861 "insns.def"
5659
+ #line 877 "insns.def"
5579
5660
  sp_inc_of_sendish(ci);
5580
- #line 5581 "insns_info.inc"
5661
+ #line 5662 "insns_info.inc"
5581
5662
  }
5582
5663
 
5583
5664
  /* attr bool handles_sp @ invokesuper(cd, blockiseq)(...)(val) */
@@ -5648,9 +5729,9 @@ attr_sp_inc_invokesuper(
5648
5729
  )
5649
5730
  {
5650
5731
  return
5651
- #line 860 "insns.def"
5732
+ #line 876 "insns.def"
5652
5733
  sp_inc_of_sendish(cd->ci);
5653
- #line 5654 "insns_info.inc"
5734
+ #line 5735 "insns_info.inc"
5654
5735
  }
5655
5736
 
5656
5737
  /* attr rb_num_t width @ invokesuper(cd, blockiseq)(...)(val) */
@@ -5675,9 +5756,9 @@ rb_snum_t
5675
5756
  attr_comptime_sp_inc_invokeblock(MAYBE_UNUSED(CALL_INFO ci))
5676
5757
  {
5677
5758
  return
5678
- #line 880 "insns.def"
5759
+ #line 896 "insns.def"
5679
5760
  sp_inc_of_invokeblock(ci);
5680
- #line 5681 "insns_info.inc"
5761
+ #line 5762 "insns_info.inc"
5681
5762
  }
5682
5763
 
5683
5764
  /* attr bool handles_sp @ invokeblock(cd)(...)(val) */
@@ -5685,9 +5766,9 @@ bool
5685
5766
  attr_handles_sp_invokeblock(MAYBE_UNUSED(CALL_DATA cd))
5686
5767
  {
5687
5768
  return
5688
- #line 878 "insns.def"
5769
+ #line 894 "insns.def"
5689
5770
  true;
5690
- #line 5691 "insns_info.inc"
5771
+ #line 5772 "insns_info.inc"
5691
5772
  }
5692
5773
 
5693
5774
  /* attr bool leaf @ invokeblock(cd)(...)(val) */
@@ -5730,9 +5811,9 @@ rb_snum_t
5730
5811
  attr_sp_inc_invokeblock(MAYBE_UNUSED(CALL_DATA cd))
5731
5812
  {
5732
5813
  return
5733
- #line 879 "insns.def"
5814
+ #line 895 "insns.def"
5734
5815
  sp_inc_of_invokeblock(cd->ci);
5735
- #line 5736 "insns_info.inc"
5816
+ #line 5817 "insns_info.inc"
5736
5817
  }
5737
5818
 
5738
5819
  /* attr rb_num_t width @ invokeblock(cd)(...)(val) */
@@ -5754,9 +5835,9 @@ bool
5754
5835
  attr_handles_sp_leave(void)
5755
5836
  {
5756
5837
  return
5757
- #line 901 "insns.def"
5838
+ #line 917 "insns.def"
5758
5839
  true;
5759
- #line 5760 "insns_info.inc"
5840
+ #line 5841 "insns_info.inc"
5760
5841
  }
5761
5842
 
5762
5843
  /* attr bool leaf @ leave()(val)(val) */
@@ -5764,9 +5845,9 @@ bool
5764
5845
  attr_leaf_leave(void)
5765
5846
  {
5766
5847
  return
5767
- #line 900 "insns.def"
5848
+ #line 916 "insns.def"
5768
5849
  false;
5769
- #line 5770 "insns_info.inc"
5850
+ #line 5851 "insns_info.inc"
5770
5851
  }
5771
5852
 
5772
5853
  /* attr const char* name @ leave()(val)(val) */
@@ -5830,9 +5911,9 @@ bool
5830
5911
  attr_leaf_throw(MAYBE_UNUSED(rb_num_t throw_state))
5831
5912
  {
5832
5913
  return
5833
- #line 934 "insns.def"
5914
+ #line 950 "insns.def"
5834
5915
  false;
5835
- #line 5836 "insns_info.inc"
5916
+ #line 5917 "insns_info.inc"
5836
5917
  }
5837
5918
 
5838
5919
  /* attr const char* name @ throw(throw_state)(throwobj)(val) */
@@ -5896,9 +5977,9 @@ bool
5896
5977
  attr_leaf_jump(MAYBE_UNUSED(OFFSET dst))
5897
5978
  {
5898
5979
  return
5899
- #line 952 "insns.def"
5980
+ #line 968 "insns.def"
5900
5981
  leafness_of_check_ints;
5901
- #line 5902 "insns_info.inc"
5982
+ #line 5983 "insns_info.inc"
5902
5983
  }
5903
5984
 
5904
5985
  /* attr const char* name @ jump(dst)()() */
@@ -5962,9 +6043,9 @@ bool
5962
6043
  attr_leaf_branchif(MAYBE_UNUSED(OFFSET dst))
5963
6044
  {
5964
6045
  return
5965
- #line 965 "insns.def"
6046
+ #line 981 "insns.def"
5966
6047
  leafness_of_check_ints;
5967
- #line 5968 "insns_info.inc"
6048
+ #line 6049 "insns_info.inc"
5968
6049
  }
5969
6050
 
5970
6051
  /* attr const char* name @ branchif(dst)(val)() */
@@ -6028,9 +6109,9 @@ bool
6028
6109
  attr_leaf_branchunless(MAYBE_UNUSED(OFFSET dst))
6029
6110
  {
6030
6111
  return
6031
- #line 980 "insns.def"
6112
+ #line 996 "insns.def"
6032
6113
  leafness_of_check_ints;
6033
- #line 6034 "insns_info.inc"
6114
+ #line 6115 "insns_info.inc"
6034
6115
  }
6035
6116
 
6036
6117
  /* attr const char* name @ branchunless(dst)(val)() */
@@ -6094,9 +6175,9 @@ bool
6094
6175
  attr_leaf_branchnil(MAYBE_UNUSED(OFFSET dst))
6095
6176
  {
6096
6177
  return
6097
- #line 995 "insns.def"
6178
+ #line 1011 "insns.def"
6098
6179
  leafness_of_check_ints;
6099
- #line 6100 "insns_info.inc"
6180
+ #line 6181 "insns_info.inc"
6100
6181
  }
6101
6182
 
6102
6183
  /* attr const char* name @ branchnil(dst)(val)() */
@@ -6250,9 +6331,9 @@ bool
6250
6331
  attr_leaf_opt_setinlinecache(MAYBE_UNUSED(IC ic))
6251
6332
  {
6252
6333
  return
6253
- #line 1030 "insns.def"
6334
+ #line 1046 "insns.def"
6254
6335
  false;
6255
- #line 6256 "insns_info.inc"
6336
+ #line 6337 "insns_info.inc"
6256
6337
  }
6257
6338
 
6258
6339
  /* attr const char* name @ opt_setinlinecache(ic)(val)(val) */
@@ -6465,9 +6546,9 @@ attr_sp_inc_opt_case_dispatch(
6465
6546
  )
6466
6547
  {
6467
6548
  return
6468
- #line 1051 "insns.def"
6549
+ #line 1067 "insns.def"
6469
6550
  -1;
6470
- #line 6471 "insns_info.inc"
6551
+ #line 6552 "insns_info.inc"
6471
6552
  }
6472
6553
 
6473
6554
  /* attr rb_num_t width @ opt_case_dispatch(hash, else_offset)(..., key)() */
@@ -6688,9 +6769,9 @@ bool
6688
6769
  attr_leaf_opt_div(MAYBE_UNUSED(CALL_DATA cd))
6689
6770
  {
6690
6771
  return
6691
- #line 1112 "insns.def"
6772
+ #line 1128 "insns.def"
6692
6773
  false;
6693
- #line 6694 "insns_info.inc"
6774
+ #line 6775 "insns_info.inc"
6694
6775
  }
6695
6776
 
6696
6777
  /* attr const char* name @ opt_div(cd)(recv, obj)(val) */
@@ -6754,9 +6835,9 @@ bool
6754
6835
  attr_leaf_opt_mod(MAYBE_UNUSED(CALL_DATA cd))
6755
6836
  {
6756
6837
  return
6757
- #line 1128 "insns.def"
6838
+ #line 1144 "insns.def"
6758
6839
  false;
6759
- #line 6760 "insns_info.inc"
6840
+ #line 6841 "insns_info.inc"
6760
6841
  }
6761
6842
 
6762
6843
  /* attr const char* name @ opt_mod(cd)(recv, obj)(val) */
@@ -7225,9 +7306,9 @@ bool
7225
7306
  attr_leaf_opt_ltlt(MAYBE_UNUSED(CALL_DATA cd))
7226
7307
  {
7227
7308
  return
7228
- #line 1230 "insns.def"
7309
+ #line 1246 "insns.def"
7229
7310
  false;
7230
- #line 7231 "insns_info.inc"
7311
+ #line 7312 "insns_info.inc"
7231
7312
  }
7232
7313
 
7233
7314
  /* attr const char* name @ opt_ltlt(cd)(recv, obj)(val) */
@@ -7417,9 +7498,9 @@ bool
7417
7498
  attr_leaf_opt_aref(MAYBE_UNUSED(CALL_DATA cd))
7418
7499
  {
7419
7500
  return
7420
- #line 1277 "insns.def"
7501
+ #line 1293 "insns.def"
7421
7502
  false;
7422
- #line 7423 "insns_info.inc"
7503
+ #line 7504 "insns_info.inc"
7423
7504
  }
7424
7505
 
7425
7506
  /* attr const char* name @ opt_aref(cd)(recv, obj)(val) */
@@ -7483,9 +7564,9 @@ bool
7483
7564
  attr_leaf_opt_aset(MAYBE_UNUSED(CALL_DATA cd))
7484
7565
  {
7485
7566
  return
7486
- #line 1294 "insns.def"
7567
+ #line 1310 "insns.def"
7487
7568
  false;
7488
- #line 7489 "insns_info.inc"
7569
+ #line 7570 "insns_info.inc"
7489
7570
  }
7490
7571
 
7491
7572
  /* attr const char* name @ opt_aset(cd)(recv, obj, set)(val) */
@@ -7558,9 +7639,9 @@ attr_leaf_opt_aset_with(
7558
7639
  )
7559
7640
  {
7560
7641
  return
7561
- #line 1310 "insns.def"
7642
+ #line 1326 "insns.def"
7562
7643
  false;
7563
- #line 7564 "insns_info.inc"
7644
+ #line 7645 "insns_info.inc"
7564
7645
  }
7565
7646
 
7566
7647
  /* attr const char* name @ opt_aset_with(key, cd)(recv, val)(val) */
@@ -7651,9 +7732,9 @@ attr_leaf_opt_aref_with(
7651
7732
  )
7652
7733
  {
7653
7734
  return
7654
- #line 1333 "insns.def"
7735
+ #line 1349 "insns.def"
7655
7736
  false;
7656
- #line 7657 "insns_info.inc"
7737
+ #line 7738 "insns_info.inc"
7657
7738
  }
7658
7739
 
7659
7740
  /* attr const char* name @ opt_aref_with(key, cd)(recv)(val) */
@@ -8050,9 +8131,9 @@ bool
8050
8131
  attr_leaf_opt_regexpmatch2(MAYBE_UNUSED(CALL_DATA cd))
8051
8132
  {
8052
8133
  return
8053
- #line 1421 "insns.def"
8134
+ #line 1437 "insns.def"
8054
8135
  false;
8055
- #line 8056 "insns_info.inc"
8136
+ #line 8137 "insns_info.inc"
8056
8137
  }
8057
8138
 
8058
8139
  /* attr const char* name @ opt_regexpmatch2(cd)(obj2, obj1)(val) */
@@ -8116,9 +8197,9 @@ bool
8116
8197
  attr_leaf_invokebuiltin(MAYBE_UNUSED(RB_BUILTIN bf))
8117
8198
  {
8118
8199
  return
8119
- #line 1457 "insns.def"
8200
+ #line 1473 "insns.def"
8120
8201
  false;
8121
- #line 8122 "insns_info.inc"
8202
+ #line 8203 "insns_info.inc"
8122
8203
  }
8123
8204
 
8124
8205
  /* attr const char* name @ invokebuiltin(bf)(...)(val) */
@@ -8154,9 +8235,9 @@ rb_snum_t
8154
8235
  attr_sp_inc_invokebuiltin(MAYBE_UNUSED(RB_BUILTIN bf))
8155
8236
  {
8156
8237
  return
8157
- #line 1458 "insns.def"
8238
+ #line 1474 "insns.def"
8158
8239
  1 - bf->argc;
8159
- #line 8160 "insns_info.inc"
8240
+ #line 8241 "insns_info.inc"
8160
8241
  }
8161
8242
 
8162
8243
  /* attr rb_num_t width @ invokebuiltin(bf)(...)(val) */
@@ -8194,9 +8275,9 @@ attr_leaf_opt_invokebuiltin_delegate(
8194
8275
  )
8195
8276
  {
8196
8277
  return
8197
- #line 1469 "insns.def"
8278
+ #line 1485 "insns.def"
8198
8279
  false;
8199
- #line 8200 "insns_info.inc"
8280
+ #line 8281 "insns_info.inc"
8200
8281
  }
8201
8282
 
8202
8283
  /* attr const char* name @ opt_invokebuiltin_delegate(bf, index)()(val) */
@@ -8287,9 +8368,9 @@ attr_leaf_opt_invokebuiltin_delegate_leave(
8287
8368
  )
8288
8369
  {
8289
8370
  return
8290
- #line 1480 "insns.def"
8371
+ #line 1496 "insns.def"
8291
8372
  false;
8292
- #line 8293 "insns_info.inc"
8373
+ #line 8374 "insns_info.inc"
8293
8374
  }
8294
8375
 
8295
8376
  /* attr const char* name @ opt_invokebuiltin_delegate_leave(bf, index)()(val) */
@@ -8743,13 +8824,13 @@ comptime_insn_stack_increase_dispatch(enum ruby_vminsn_type insn, const VALUE *o
8743
8824
  0, -127, -127, 1, 1, -127, -1, 0,
8744
8825
  -127, -1, -1, 1, -127, 0, -127, -127,
8745
8826
  -127, 0, -1, 1, 0, -1, 0, -1,
8746
- -127, -127, 1, 0, 1, -127, -127, -127,
8747
- -127, 0, 0, 0, -1, -1, -1, 1,
8748
- 0, 1, -127, -1, -1, -1, -1, -1,
8827
+ -127, -127, 0, 1, 0, 1, -127, -127,
8828
+ -127, -127, 0, 0, 0, -1, -1, -1,
8829
+ 1, 0, 1, -127, -1, -1, -1, -1,
8749
8830
  -1, -1, -1, -1, -1, -1, -1, -1,
8750
- -1, -1, -2, -1, 0, 0, 0, 0,
8751
- 0, 0, -1, -127, 1, 1, 1, 1,
8752
- -1, -1, 1, 1, 0, 0, 0, 0,
8831
+ -1, -1, -1, -2, -1, 0, 0, 0,
8832
+ 0, 0, 0, -1, -127, 1, 1, 1,
8833
+ 1, -1, -1, 1, 1, 0, 0, 0,
8753
8834
  0, 0, 0, 0, 0, 0, 0, 0,
8754
8835
  0, 0, 0, 0, 0, 0, 0, 0,
8755
8836
  0, 0, 0, 0, 0, 0, 0, 0,
@@ -8762,6 +8843,7 @@ comptime_insn_stack_increase_dispatch(enum ruby_vminsn_type insn, const VALUE *o
8762
8843
  0, 0, 0, 0, 0, 0, 0, 0,
8763
8844
  0, 0, 0, 0, 0, 0, 0, 0,
8764
8845
  0, 0, 0, 0, 0, 0, 0, 0,
8846
+ 0, 0,
8765
8847
  };
8766
8848
  signed char c = t[insn];
8767
8849
 
@@ -8833,6 +8915,7 @@ insn_may_depend_on_sp_or_pc(int insn, const VALUE *opes)
8833
8915
  case BIN(setconstant):
8834
8916
  case BIN(getglobal):
8835
8917
  case BIN(setglobal):
8918
+ case BIN(putspecialobject):
8836
8919
  case BIN(concatstrings):
8837
8920
  case BIN(toregexp):
8838
8921
  case BIN(expandarray):
@@ -8847,6 +8930,7 @@ insn_may_depend_on_sp_or_pc(int insn, const VALUE *opes)
8847
8930
  case BIN(definesmethod):
8848
8931
  case BIN(send):
8849
8932
  case BIN(opt_send_without_block):
8933
+ case BIN(objtostring):
8850
8934
  case BIN(opt_newarray_max):
8851
8935
  case BIN(opt_newarray_min):
8852
8936
  case BIN(invokesuper):
@@ -8892,7 +8976,7 @@ insn_may_depend_on_sp_or_pc(int insn, const VALUE *opes)
8892
8976
  case BIN(trace_putspecialobject):
8893
8977
  case BIN(trace_putstring):
8894
8978
  case BIN(trace_concatstrings):
8895
- case BIN(trace_tostring):
8979
+ case BIN(trace_anytostring):
8896
8980
  case BIN(trace_toregexp):
8897
8981
  case BIN(trace_intern):
8898
8982
  case BIN(trace_newarray):
@@ -8920,6 +9004,7 @@ insn_may_depend_on_sp_or_pc(int insn, const VALUE *opes)
8920
9004
  case BIN(trace_definesmethod):
8921
9005
  case BIN(trace_send):
8922
9006
  case BIN(trace_opt_send_without_block):
9007
+ case BIN(trace_objtostring):
8923
9008
  case BIN(trace_opt_str_freeze):
8924
9009
  case BIN(trace_opt_nil_p):
8925
9010
  case BIN(trace_opt_str_uminus):