debase-ruby_core_source 3.2.3 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -0
  3. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/ccan/list/list.h +4 -2
  4. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/dln.h +1 -0
  5. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/eval_intern.h +4 -2
  6. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/insns.inc +2 -0
  7. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/insns_info.inc +269 -187
  8. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/class.h +46 -0
  9. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/cont.h +3 -0
  10. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/encoding.h +3 -0
  11. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/error.h +3 -0
  12. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/gc.h +2 -0
  13. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/object.h +1 -0
  14. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/random.h +1 -0
  15. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/string.h +0 -1
  16. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/symbol.h +3 -0
  17. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/thread.h +3 -0
  18. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/transcode.h +3 -0
  19. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/variable.h +5 -3
  20. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/vm.h +5 -0
  21. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/iseq.h +5 -1
  22. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/method.h +0 -1
  23. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/optunifs.inc +1 -1
  24. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/parse.h +2 -2
  25. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/prism_compile.h +12 -1
  26. data/lib/debase/ruby_core_source/ruby-3.3.0-p0/revision.h +5 -0
  27. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/rjit.h +6 -8
  28. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/rjit_c.h +0 -1
  29. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/rubyparser.h +1 -1
  30. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/shape.h +2 -12
  31. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/thread_pthread.h +1 -1
  32. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/variable.h +2 -0
  33. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/version.h +1 -1
  34. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/vm.inc +189 -136
  35. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/vm_callinfo.h +8 -1
  36. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/vm_core.h +64 -5
  37. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/vm_insnhelper.h +4 -14
  38. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/vmtc.inc +2 -0
  39. data/lib/debase/ruby_core_source/version.rb +1 -1
  40. metadata +121 -121
  41. data/lib/debase/ruby_core_source/ruby-3.3.0-preview3/revision.h +0 -5
  42. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/addr2line.h +0 -0
  43. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/builtin.h +0 -0
  44. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/ccan/build_assert/build_assert.h +0 -0
  45. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/ccan/check_type/check_type.h +0 -0
  46. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/ccan/container_of/container_of.h +0 -0
  47. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/ccan/str/str.h +0 -0
  48. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/constant.h +0 -0
  49. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/darray.h +0 -0
  50. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/debug_counter.h +0 -0
  51. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/encindex.h +0 -0
  52. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/hrtime.h +0 -0
  53. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/id.h +0 -0
  54. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/id_table.h +0 -0
  55. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/array.h +0 -0
  56. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/basic_operators.h +0 -0
  57. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/bignum.h +0 -0
  58. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/bits.h +0 -0
  59. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/cmdlineopt.h +0 -0
  60. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/compar.h +0 -0
  61. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/compile.h +0 -0
  62. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/compilers.h +0 -0
  63. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/complex.h +0 -0
  64. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/dir.h +0 -0
  65. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/enc.h +0 -0
  66. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/enum.h +0 -0
  67. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/enumerator.h +0 -0
  68. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/eval.h +0 -0
  69. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/file.h +0 -0
  70. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/fixnum.h +0 -0
  71. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/hash.h +0 -0
  72. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/imemo.h +0 -0
  73. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/inits.h +0 -0
  74. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/io.h +0 -0
  75. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/load.h +0 -0
  76. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/loadpath.h +0 -0
  77. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/math.h +0 -0
  78. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/missing.h +0 -0
  79. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/numeric.h +0 -0
  80. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/parse.h +0 -0
  81. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/proc.h +0 -0
  82. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/process.h +0 -0
  83. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/ractor.h +0 -0
  84. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/range.h +0 -0
  85. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/rational.h +0 -0
  86. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/re.h +0 -0
  87. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/ruby_parser.h +0 -0
  88. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/sanitizers.h +0 -0
  89. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/serial.h +0 -0
  90. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/signal.h +0 -0
  91. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/static_assert.h +0 -0
  92. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/struct.h +0 -0
  93. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/time.h +0 -0
  94. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/util.h +0 -0
  95. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/warnings.h +0 -0
  96. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal.h +0 -0
  97. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/known_errors.inc +0 -0
  98. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/node.h +0 -0
  99. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/node_name.inc +0 -0
  100. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/optinsn.inc +0 -0
  101. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/parser_bits.h +0 -0
  102. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/parser_node.h +0 -0
  103. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/parser_st.h +0 -0
  104. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/parser_value.h +0 -0
  105. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/probes_helper.h +0 -0
  106. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/ractor_core.h +0 -0
  107. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/regenc.h +0 -0
  108. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/regint.h +0 -0
  109. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/regparse.h +0 -0
  110. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/ruby_assert.h +0 -0
  111. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/ruby_atomic.h +0 -0
  112. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/siphash.h +0 -0
  113. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/symbol.h +0 -0
  114. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/thread_none.h +0 -0
  115. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/thread_win32.h +0 -0
  116. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/timev.h +0 -0
  117. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/transcode_data.h +0 -0
  118. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/vm_call_iseq_optimized.inc +0 -0
  119. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/vm_debug.h +0 -0
  120. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/vm_exec.h +0 -0
  121. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/vm_opts.h +0 -0
  122. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/vm_sync.h +0 -0
  123. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/yjit.h +0 -0
@@ -1325,22 +1325,22 @@ INSN_ENTRY(expandarray)
1325
1325
 
1326
1326
  /* ### Instruction preambles. ### */
1327
1327
  ADD_PC(INSN_ATTR(width));
1328
+ POPN(INSN_ATTR(popn));
1328
1329
  COLLECT_USAGE_INSN(INSN_ATTR(bin));
1329
1330
  COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, num);
1330
1331
  COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 1, flag);
1331
1332
 
1332
1333
  /* ### Here we do the instruction body. ### */
1333
1334
  # define NAME_OF_CURRENT_INSN expandarray
1334
- # line 503 "insns.def"
1335
+ # line 504 "insns.def"
1335
1336
  {
1336
- vm_expandarray(GET_SP(), ary, num, (int)flag);
1337
+ vm_expandarray(GET_CFP(), ary, num, (int)flag);
1337
1338
  }
1338
- # line 1339 "vm.inc"
1339
+ # line 1340 "vm.inc"
1339
1340
  # undef NAME_OF_CURRENT_INSN
1340
1341
 
1341
1342
  /* ### Instruction trailers. ### */
1342
1343
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
1343
- INC_SP(INSN_ATTR(sp_inc));
1344
1344
  # undef INSN_ATTR
1345
1345
 
1346
1346
  /* ### Leave the instruction. ### */
@@ -1368,7 +1368,7 @@ INSN_ENTRY(concatarray)
1368
1368
 
1369
1369
  /* ### Here we do the instruction body. ### */
1370
1370
  # define NAME_OF_CURRENT_INSN concatarray
1371
- # line 514 "insns.def"
1371
+ # line 515 "insns.def"
1372
1372
  {
1373
1373
  ary = vm_concat_array(ary1, ary2);
1374
1374
  }
@@ -1410,7 +1410,7 @@ INSN_ENTRY(splatarray)
1410
1410
 
1411
1411
  /* ### Here we do the instruction body. ### */
1412
1412
  # define NAME_OF_CURRENT_INSN splatarray
1413
- # line 525 "insns.def"
1413
+ # line 526 "insns.def"
1414
1414
  {
1415
1415
  obj = vm_splat_array(flag, ary);
1416
1416
  }
@@ -1430,6 +1430,50 @@ INSN_ENTRY(splatarray)
1430
1430
  END_INSN(splatarray);
1431
1431
  }
1432
1432
 
1433
+ /* insn splatkw()(hash, block)(obj, block) */
1434
+ INSN_ENTRY(splatkw)
1435
+ {
1436
+ /* ### Declare that we have just entered into an instruction. ### */
1437
+ START_OF_ORIGINAL_INSN(splatkw);
1438
+ DEBUG_ENTER_INSN("splatkw");
1439
+
1440
+ /* ### Declare and assign variables. ### */
1441
+ # define INSN_ATTR(x) attr_ ## x ## _splatkw()
1442
+ const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
1443
+ VALUE hash = TOPN(1);
1444
+ VALUE block = TOPN(0);
1445
+ VALUE obj;
1446
+
1447
+ /* ### Instruction preambles. ### */
1448
+ ADD_PC(INSN_ATTR(width));
1449
+ SETUP_CANARY(leaf);
1450
+ COLLECT_USAGE_INSN(INSN_ATTR(bin));
1451
+
1452
+ /* ### Here we do the instruction body. ### */
1453
+ # define NAME_OF_CURRENT_INSN splatkw
1454
+ # line 537 "insns.def"
1455
+ {
1456
+ obj = rb_to_hash_type(hash);
1457
+ }
1458
+ # line 1459 "vm.inc"
1459
+ # undef NAME_OF_CURRENT_INSN
1460
+
1461
+ /* ### Instruction trailers. ### */
1462
+ CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
1463
+ CHECK_CANARY(leaf, INSN_ATTR(bin));
1464
+ INC_SP(INSN_ATTR(sp_inc));
1465
+ TOPN(0) = block;
1466
+ VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
1467
+ VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
1468
+ TOPN(1) = obj;
1469
+ VM_ASSERT(!RB_TYPE_P(TOPN(1), T_NONE));
1470
+ VM_ASSERT(!RB_TYPE_P(TOPN(1), T_MOVED));
1471
+ # undef INSN_ATTR
1472
+
1473
+ /* ### Leave the instruction. ### */
1474
+ END_INSN(splatkw);
1475
+ }
1476
+
1433
1477
  /* insn newhash(num)(...)(val) */
1434
1478
  INSN_ENTRY(newhash)
1435
1479
  {
@@ -1451,7 +1495,7 @@ INSN_ENTRY(newhash)
1451
1495
 
1452
1496
  /* ### Here we do the instruction body. ### */
1453
1497
  # define NAME_OF_CURRENT_INSN newhash
1454
- # line 537 "insns.def"
1498
+ # line 549 "insns.def"
1455
1499
  {
1456
1500
  RUBY_DTRACE_CREATE_HOOK(HASH, num);
1457
1501
 
@@ -1463,7 +1507,7 @@ INSN_ENTRY(newhash)
1463
1507
  val = rb_hash_new();
1464
1508
  }
1465
1509
  }
1466
- # line 1467 "vm.inc"
1510
+ # line 1511 "vm.inc"
1467
1511
  # undef NAME_OF_CURRENT_INSN
1468
1512
 
1469
1513
  /* ### Instruction trailers. ### */
@@ -1502,11 +1546,11 @@ INSN_ENTRY(newrange)
1502
1546
 
1503
1547
  /* ### Here we do the instruction body. ### */
1504
1548
  # define NAME_OF_CURRENT_INSN newrange
1505
- # line 557 "insns.def"
1549
+ # line 569 "insns.def"
1506
1550
  {
1507
1551
  val = rb_range_new(low, high, (int)flag);
1508
1552
  }
1509
- # line 1510 "vm.inc"
1553
+ # line 1554 "vm.inc"
1510
1554
  # undef NAME_OF_CURRENT_INSN
1511
1555
 
1512
1556
  /* ### Instruction trailers. ### */
@@ -1541,12 +1585,12 @@ INSN_ENTRY(pop)
1541
1585
 
1542
1586
  /* ### Here we do the instruction body. ### */
1543
1587
  # define NAME_OF_CURRENT_INSN pop
1544
- # line 571 "insns.def"
1588
+ # line 583 "insns.def"
1545
1589
  {
1546
1590
  (void)val;
1547
1591
  /* none */
1548
1592
  }
1549
- # line 1550 "vm.inc"
1593
+ # line 1594 "vm.inc"
1550
1594
  # undef NAME_OF_CURRENT_INSN
1551
1595
 
1552
1596
  /* ### Instruction trailers. ### */
@@ -1580,11 +1624,11 @@ INSN_ENTRY(dup)
1580
1624
 
1581
1625
  /* ### Here we do the instruction body. ### */
1582
1626
  # define NAME_OF_CURRENT_INSN dup
1583
- # line 582 "insns.def"
1627
+ # line 594 "insns.def"
1584
1628
  {
1585
1629
  val1 = val2 = val;
1586
1630
  }
1587
- # line 1588 "vm.inc"
1631
+ # line 1632 "vm.inc"
1588
1632
  # undef NAME_OF_CURRENT_INSN
1589
1633
 
1590
1634
  /* ### Instruction trailers. ### */
@@ -1622,14 +1666,14 @@ INSN_ENTRY(dupn)
1622
1666
 
1623
1667
  /* ### Here we do the instruction body. ### */
1624
1668
  # define NAME_OF_CURRENT_INSN dupn
1625
- # line 593 "insns.def"
1669
+ # line 605 "insns.def"
1626
1670
  {
1627
1671
  void *dst = GET_SP();
1628
1672
  void *src = STACK_ADDR_FROM_TOP(n);
1629
1673
 
1630
1674
  MEMCPY(dst, src, VALUE, n);
1631
1675
  }
1632
- # line 1633 "vm.inc"
1676
+ # line 1677 "vm.inc"
1633
1677
  # undef NAME_OF_CURRENT_INSN
1634
1678
 
1635
1679
  /* ### Instruction trailers. ### */
@@ -1692,7 +1736,7 @@ INSN_ENTRY(opt_reverse)
1692
1736
 
1693
1737
  /* ### Here we do the instruction body. ### */
1694
1738
  # define NAME_OF_CURRENT_INSN opt_reverse
1695
- # line 617 "insns.def"
1739
+ # line 629 "insns.def"
1696
1740
  {
1697
1741
  rb_num_t i;
1698
1742
  VALUE *sp = STACK_ADDR_FROM_TOP(n);
@@ -1704,7 +1748,7 @@ INSN_ENTRY(opt_reverse)
1704
1748
  TOPN(i) = v0;
1705
1749
  }
1706
1750
  }
1707
- # line 1708 "vm.inc"
1751
+ # line 1752 "vm.inc"
1708
1752
  # undef NAME_OF_CURRENT_INSN
1709
1753
 
1710
1754
  /* ### Instruction trailers. ### */
@@ -1737,11 +1781,11 @@ INSN_ENTRY(topn)
1737
1781
 
1738
1782
  /* ### Here we do the instruction body. ### */
1739
1783
  # define NAME_OF_CURRENT_INSN topn
1740
- # line 647 "insns.def"
1784
+ # line 659 "insns.def"
1741
1785
  {
1742
1786
  val = TOPN(n);
1743
1787
  }
1744
- # line 1745 "vm.inc"
1788
+ # line 1789 "vm.inc"
1745
1789
  # undef NAME_OF_CURRENT_INSN
1746
1790
 
1747
1791
  /* ### Instruction trailers. ### */
@@ -1778,11 +1822,11 @@ INSN_ENTRY(setn)
1778
1822
 
1779
1823
  /* ### Here we do the instruction body. ### */
1780
1824
  # define NAME_OF_CURRENT_INSN setn
1781
- # line 658 "insns.def"
1825
+ # line 670 "insns.def"
1782
1826
  {
1783
1827
  TOPN(n) = val;
1784
1828
  }
1785
- # line 1786 "vm.inc"
1829
+ # line 1830 "vm.inc"
1786
1830
  # undef NAME_OF_CURRENT_INSN
1787
1831
 
1788
1832
  /* ### Instruction trailers. ### */
@@ -1850,14 +1894,14 @@ INSN_ENTRY(defined)
1850
1894
 
1851
1895
  /* ### Here we do the instruction body. ### */
1852
1896
  # define NAME_OF_CURRENT_INSN defined
1853
- # line 684 "insns.def"
1897
+ # line 696 "insns.def"
1854
1898
  {
1855
1899
  val = Qnil;
1856
1900
  if (vm_defined(ec, GET_CFP(), op_type, obj, v)) {
1857
1901
  val = pushval;
1858
1902
  }
1859
1903
  }
1860
- # line 1861 "vm.inc"
1904
+ # line 1905 "vm.inc"
1861
1905
  # undef NAME_OF_CURRENT_INSN
1862
1906
 
1863
1907
  /* ### Instruction trailers. ### */
@@ -1898,14 +1942,14 @@ INSN_ENTRY(definedivar)
1898
1942
 
1899
1943
  /* ### Here we do the instruction body. ### */
1900
1944
  # define NAME_OF_CURRENT_INSN definedivar
1901
- # line 698 "insns.def"
1945
+ # line 710 "insns.def"
1902
1946
  {
1903
1947
  val = Qnil;
1904
1948
  if (vm_getivar(GET_SELF(), id, GET_ISEQ(), ic, NULL, FALSE, Qundef) != Qundef) {
1905
1949
  val = pushval;
1906
1950
  }
1907
1951
  }
1908
- # line 1909 "vm.inc"
1952
+ # line 1953 "vm.inc"
1909
1953
  # undef NAME_OF_CURRENT_INSN
1910
1954
 
1911
1955
  /* ### Instruction trailers. ### */
@@ -1944,11 +1988,11 @@ INSN_ENTRY(checkmatch)
1944
1988
 
1945
1989
  /* ### Here we do the instruction body. ### */
1946
1990
  # define NAME_OF_CURRENT_INSN checkmatch
1947
- # line 718 "insns.def"
1991
+ # line 730 "insns.def"
1948
1992
  {
1949
1993
  result = vm_check_match(ec, target, pattern, flag);
1950
1994
  }
1951
- # line 1952 "vm.inc"
1995
+ # line 1996 "vm.inc"
1952
1996
  # undef NAME_OF_CURRENT_INSN
1953
1997
 
1954
1998
  /* ### Instruction trailers. ### */
@@ -1987,11 +2031,11 @@ INSN_ENTRY(checkkeyword)
1987
2031
 
1988
2032
  /* ### Here we do the instruction body. ### */
1989
2033
  # define NAME_OF_CURRENT_INSN checkkeyword
1990
- # line 728 "insns.def"
2034
+ # line 740 "insns.def"
1991
2035
  {
1992
2036
  ret = vm_check_keyword(kw_bits_index, keyword_index, GET_EP());
1993
2037
  }
1994
- # line 1995 "vm.inc"
2038
+ # line 2039 "vm.inc"
1995
2039
  # undef NAME_OF_CURRENT_INSN
1996
2040
 
1997
2041
  /* ### Instruction trailers. ### */
@@ -2029,11 +2073,11 @@ INSN_ENTRY(checktype)
2029
2073
 
2030
2074
  /* ### Here we do the instruction body. ### */
2031
2075
  # define NAME_OF_CURRENT_INSN checktype
2032
- # line 738 "insns.def"
2076
+ # line 750 "insns.def"
2033
2077
  {
2034
2078
  ret = RBOOL(TYPE(val) == (int)type);
2035
2079
  }
2036
- # line 2037 "vm.inc"
2080
+ # line 2081 "vm.inc"
2037
2081
  # undef NAME_OF_CURRENT_INSN
2038
2082
 
2039
2083
  /* ### Instruction trailers. ### */
@@ -2077,7 +2121,7 @@ INSN_ENTRY(defineclass)
2077
2121
 
2078
2122
  /* ### Here we do the instruction body. ### */
2079
2123
  # define NAME_OF_CURRENT_INSN defineclass
2080
- # line 754 "insns.def"
2124
+ # line 766 "insns.def"
2081
2125
  {
2082
2126
  VALUE klass = vm_find_or_create_class_by_id(id, flags, cbase, super);
2083
2127
 
@@ -2093,7 +2137,7 @@ INSN_ENTRY(defineclass)
2093
2137
  RESTORE_REGS();
2094
2138
  NEXT_INSN();
2095
2139
  }
2096
- # line 2097 "vm.inc"
2140
+ # line 2141 "vm.inc"
2097
2141
  # undef NAME_OF_CURRENT_INSN
2098
2142
 
2099
2143
  /* ### Instruction trailers. ### */
@@ -2129,11 +2173,11 @@ INSN_ENTRY(definemethod)
2129
2173
 
2130
2174
  /* ### Here we do the instruction body. ### */
2131
2175
  # define NAME_OF_CURRENT_INSN definemethod
2132
- # line 775 "insns.def"
2176
+ # line 787 "insns.def"
2133
2177
  {
2134
2178
  vm_define_method(ec, Qnil, id, (VALUE)iseq, FALSE);
2135
2179
  }
2136
- # line 2137 "vm.inc"
2180
+ # line 2181 "vm.inc"
2137
2181
  # undef NAME_OF_CURRENT_INSN
2138
2182
 
2139
2183
  /* ### Instruction trailers. ### */
@@ -2169,11 +2213,11 @@ INSN_ENTRY(definesmethod)
2169
2213
 
2170
2214
  /* ### Here we do the instruction body. ### */
2171
2215
  # define NAME_OF_CURRENT_INSN definesmethod
2172
- # line 784 "insns.def"
2216
+ # line 796 "insns.def"
2173
2217
  {
2174
2218
  vm_define_method(ec, obj, id, (VALUE)iseq, TRUE);
2175
2219
  }
2176
- # line 2177 "vm.inc"
2220
+ # line 2221 "vm.inc"
2177
2221
  # undef NAME_OF_CURRENT_INSN
2178
2222
 
2179
2223
  /* ### Instruction trailers. ### */
@@ -2209,7 +2253,7 @@ INSN_ENTRY(send)
2209
2253
 
2210
2254
  /* ### Here we do the instruction body. ### */
2211
2255
  # define NAME_OF_CURRENT_INSN send
2212
- # line 800 "insns.def"
2256
+ # line 812 "insns.def"
2213
2257
  {
2214
2258
  VALUE bh = vm_caller_setup_arg_block(ec, GET_CFP(), cd->ci, blockiseq, false);
2215
2259
  val = vm_sendish(ec, GET_CFP(), cd, bh, mexp_search_method);
@@ -2220,7 +2264,7 @@ INSN_ENTRY(send)
2220
2264
  NEXT_INSN();
2221
2265
  }
2222
2266
  }
2223
- # line 2224 "vm.inc"
2267
+ # line 2268 "vm.inc"
2224
2268
  # undef NAME_OF_CURRENT_INSN
2225
2269
 
2226
2270
  /* ### Instruction trailers. ### */
@@ -2255,7 +2299,7 @@ INSN_ENTRY(opt_send_without_block)
2255
2299
 
2256
2300
  /* ### Here we do the instruction body. ### */
2257
2301
  # define NAME_OF_CURRENT_INSN opt_send_without_block
2258
- # line 820 "insns.def"
2302
+ # line 832 "insns.def"
2259
2303
  {
2260
2304
  VALUE bh = VM_BLOCK_HANDLER_NONE;
2261
2305
  val = vm_sendish(ec, GET_CFP(), cd, bh, mexp_search_method);
@@ -2266,7 +2310,7 @@ INSN_ENTRY(opt_send_without_block)
2266
2310
  NEXT_INSN();
2267
2311
  }
2268
2312
  }
2269
- # line 2270 "vm.inc"
2313
+ # line 2314 "vm.inc"
2270
2314
  # undef NAME_OF_CURRENT_INSN
2271
2315
 
2272
2316
  /* ### Instruction trailers. ### */
@@ -2301,7 +2345,7 @@ INSN_ENTRY(objtostring)
2301
2345
 
2302
2346
  /* ### Here we do the instruction body. ### */
2303
2347
  # define NAME_OF_CURRENT_INSN objtostring
2304
- # line 838 "insns.def"
2348
+ # line 850 "insns.def"
2305
2349
  {
2306
2350
  val = vm_objtostring(GET_ISEQ(), recv, cd);
2307
2351
 
@@ -2309,7 +2353,7 @@ INSN_ENTRY(objtostring)
2309
2353
  CALL_SIMPLE_METHOD();
2310
2354
  }
2311
2355
  }
2312
- # line 2313 "vm.inc"
2356
+ # line 2357 "vm.inc"
2313
2357
  # undef NAME_OF_CURRENT_INSN
2314
2358
 
2315
2359
  /* ### Instruction trailers. ### */
@@ -2348,7 +2392,7 @@ INSN_ENTRY(opt_str_freeze)
2348
2392
 
2349
2393
  /* ### Here we do the instruction body. ### */
2350
2394
  # define NAME_OF_CURRENT_INSN opt_str_freeze
2351
- # line 851 "insns.def"
2395
+ # line 863 "insns.def"
2352
2396
  {
2353
2397
  val = vm_opt_str_freeze(str, BOP_FREEZE, idFreeze);
2354
2398
 
@@ -2357,7 +2401,7 @@ INSN_ENTRY(opt_str_freeze)
2357
2401
  CALL_SIMPLE_METHOD();
2358
2402
  }
2359
2403
  }
2360
- # line 2361 "vm.inc"
2404
+ # line 2405 "vm.inc"
2361
2405
  # undef NAME_OF_CURRENT_INSN
2362
2406
 
2363
2407
  /* ### Instruction trailers. ### */
@@ -2395,7 +2439,7 @@ INSN_ENTRY(opt_nil_p)
2395
2439
 
2396
2440
  /* ### Here we do the instruction body. ### */
2397
2441
  # define NAME_OF_CURRENT_INSN opt_nil_p
2398
- # line 866 "insns.def"
2442
+ # line 878 "insns.def"
2399
2443
  {
2400
2444
  val = vm_opt_nil_p(GET_ISEQ(), cd, recv);
2401
2445
 
@@ -2403,7 +2447,7 @@ INSN_ENTRY(opt_nil_p)
2403
2447
  CALL_SIMPLE_METHOD();
2404
2448
  }
2405
2449
  }
2406
- # line 2407 "vm.inc"
2450
+ # line 2451 "vm.inc"
2407
2451
  # undef NAME_OF_CURRENT_INSN
2408
2452
 
2409
2453
  /* ### Instruction trailers. ### */
@@ -2442,7 +2486,7 @@ INSN_ENTRY(opt_str_uminus)
2442
2486
 
2443
2487
  /* ### Here we do the instruction body. ### */
2444
2488
  # define NAME_OF_CURRENT_INSN opt_str_uminus
2445
- # line 879 "insns.def"
2489
+ # line 891 "insns.def"
2446
2490
  {
2447
2491
  val = vm_opt_str_freeze(str, BOP_UMINUS, idUMinus);
2448
2492
 
@@ -2451,7 +2495,7 @@ INSN_ENTRY(opt_str_uminus)
2451
2495
  CALL_SIMPLE_METHOD();
2452
2496
  }
2453
2497
  }
2454
- # line 2455 "vm.inc"
2498
+ # line 2499 "vm.inc"
2455
2499
  # undef NAME_OF_CURRENT_INSN
2456
2500
 
2457
2501
  /* ### Instruction trailers. ### */
@@ -2490,7 +2534,7 @@ INSN_ENTRY(opt_newarray_send)
2490
2534
 
2491
2535
  /* ### Here we do the instruction body. ### */
2492
2536
  # define NAME_OF_CURRENT_INSN opt_newarray_send
2493
- # line 900 "insns.def"
2537
+ # line 912 "insns.def"
2494
2538
  {
2495
2539
  switch(method) {
2496
2540
  case idHash:
@@ -2506,7 +2550,7 @@ INSN_ENTRY(opt_newarray_send)
2506
2550
  rb_bug("unreachable");
2507
2551
  }
2508
2552
  }
2509
- # line 2510 "vm.inc"
2553
+ # line 2554 "vm.inc"
2510
2554
  # undef NAME_OF_CURRENT_INSN
2511
2555
 
2512
2556
  /* ### Instruction trailers. ### */
@@ -2546,7 +2590,7 @@ INSN_ENTRY(invokesuper)
2546
2590
 
2547
2591
  /* ### Here we do the instruction body. ### */
2548
2592
  # define NAME_OF_CURRENT_INSN invokesuper
2549
- # line 924 "insns.def"
2593
+ # line 936 "insns.def"
2550
2594
  {
2551
2595
  VALUE bh = vm_caller_setup_arg_block(ec, GET_CFP(), cd->ci, blockiseq, true);
2552
2596
  val = vm_sendish(ec, GET_CFP(), cd, bh, mexp_search_super);
@@ -2557,7 +2601,7 @@ INSN_ENTRY(invokesuper)
2557
2601
  NEXT_INSN();
2558
2602
  }
2559
2603
  }
2560
- # line 2561 "vm.inc"
2604
+ # line 2605 "vm.inc"
2561
2605
  # undef NAME_OF_CURRENT_INSN
2562
2606
 
2563
2607
  /* ### Instruction trailers. ### */
@@ -2592,7 +2636,7 @@ INSN_ENTRY(invokeblock)
2592
2636
 
2593
2637
  /* ### Here we do the instruction body. ### */
2594
2638
  # define NAME_OF_CURRENT_INSN invokeblock
2595
- # line 944 "insns.def"
2639
+ # line 956 "insns.def"
2596
2640
  {
2597
2641
  VALUE bh = VM_BLOCK_HANDLER_NONE;
2598
2642
  val = vm_sendish(ec, GET_CFP(), cd, bh, mexp_search_invokeblock);
@@ -2603,7 +2647,7 @@ INSN_ENTRY(invokeblock)
2603
2647
  NEXT_INSN();
2604
2648
  }
2605
2649
  }
2606
- # line 2607 "vm.inc"
2650
+ # line 2651 "vm.inc"
2607
2651
  # undef NAME_OF_CURRENT_INSN
2608
2652
 
2609
2653
  /* ### Instruction trailers. ### */
@@ -2636,7 +2680,7 @@ INSN_ENTRY(leave)
2636
2680
 
2637
2681
  /* ### Here we do the instruction body. ### */
2638
2682
  # define NAME_OF_CURRENT_INSN leave
2639
- # line 966 "insns.def"
2683
+ # line 978 "insns.def"
2640
2684
  {
2641
2685
  if (OPT_CHECKED_RUN) {
2642
2686
  const VALUE *const bp = vm_base_ptr(GET_CFP());
@@ -2657,7 +2701,7 @@ INSN_ENTRY(leave)
2657
2701
  RESTORE_REGS();
2658
2702
  }
2659
2703
  }
2660
- # line 2661 "vm.inc"
2704
+ # line 2705 "vm.inc"
2661
2705
  # undef NAME_OF_CURRENT_INSN
2662
2706
 
2663
2707
  /* ### Instruction trailers. ### */
@@ -2692,13 +2736,13 @@ INSN_ENTRY(throw)
2692
2736
 
2693
2737
  /* ### Here we do the instruction body. ### */
2694
2738
  # define NAME_OF_CURRENT_INSN throw
2695
- # line 999 "insns.def"
2739
+ # line 1011 "insns.def"
2696
2740
  {
2697
2741
  val = vm_throw(ec, GET_CFP(), throw_state, throwobj);
2698
2742
  THROW_EXCEPTION(val);
2699
2743
  /* unreachable */
2700
2744
  }
2701
- # line 2702 "vm.inc"
2745
+ # line 2746 "vm.inc"
2702
2746
  # undef NAME_OF_CURRENT_INSN
2703
2747
 
2704
2748
  /* ### Instruction trailers. ### */
@@ -2734,12 +2778,12 @@ INSN_ENTRY(jump)
2734
2778
 
2735
2779
  /* ### Here we do the instruction body. ### */
2736
2780
  # define NAME_OF_CURRENT_INSN jump
2737
- # line 1017 "insns.def"
2781
+ # line 1029 "insns.def"
2738
2782
  {
2739
2783
  RUBY_VM_CHECK_INTS(ec);
2740
2784
  JUMP(dst);
2741
2785
  }
2742
- # line 2743 "vm.inc"
2786
+ # line 2787 "vm.inc"
2743
2787
  # undef NAME_OF_CURRENT_INSN
2744
2788
 
2745
2789
  /* ### Instruction trailers. ### */
@@ -2773,14 +2817,14 @@ INSN_ENTRY(branchif)
2773
2817
 
2774
2818
  /* ### Here we do the instruction body. ### */
2775
2819
  # define NAME_OF_CURRENT_INSN branchif
2776
- # line 1030 "insns.def"
2820
+ # line 1042 "insns.def"
2777
2821
  {
2778
2822
  if (RTEST(val)) {
2779
2823
  RUBY_VM_CHECK_INTS(ec);
2780
2824
  JUMP(dst);
2781
2825
  }
2782
2826
  }
2783
- # line 2784 "vm.inc"
2827
+ # line 2828 "vm.inc"
2784
2828
  # undef NAME_OF_CURRENT_INSN
2785
2829
 
2786
2830
  /* ### Instruction trailers. ### */
@@ -2814,14 +2858,14 @@ INSN_ENTRY(branchunless)
2814
2858
 
2815
2859
  /* ### Here we do the instruction body. ### */
2816
2860
  # define NAME_OF_CURRENT_INSN branchunless
2817
- # line 1045 "insns.def"
2861
+ # line 1057 "insns.def"
2818
2862
  {
2819
2863
  if (!RTEST(val)) {
2820
2864
  RUBY_VM_CHECK_INTS(ec);
2821
2865
  JUMP(dst);
2822
2866
  }
2823
2867
  }
2824
- # line 2825 "vm.inc"
2868
+ # line 2869 "vm.inc"
2825
2869
  # undef NAME_OF_CURRENT_INSN
2826
2870
 
2827
2871
  /* ### Instruction trailers. ### */
@@ -2855,14 +2899,14 @@ INSN_ENTRY(branchnil)
2855
2899
 
2856
2900
  /* ### Here we do the instruction body. ### */
2857
2901
  # define NAME_OF_CURRENT_INSN branchnil
2858
- # line 1060 "insns.def"
2902
+ # line 1072 "insns.def"
2859
2903
  {
2860
2904
  if (NIL_P(val)) {
2861
2905
  RUBY_VM_CHECK_INTS(ec);
2862
2906
  JUMP(dst);
2863
2907
  }
2864
2908
  }
2865
- # line 2866 "vm.inc"
2909
+ # line 2910 "vm.inc"
2866
2910
  # undef NAME_OF_CURRENT_INSN
2867
2911
 
2868
2912
  /* ### Instruction trailers. ### */
@@ -2899,11 +2943,11 @@ INSN_ENTRY(once)
2899
2943
 
2900
2944
  /* ### Here we do the instruction body. ### */
2901
2945
  # define NAME_OF_CURRENT_INSN once
2902
- # line 1077 "insns.def"
2946
+ # line 1089 "insns.def"
2903
2947
  {
2904
2948
  val = vm_once_dispatch(ec, iseq, ise);
2905
2949
  }
2906
- # line 2907 "vm.inc"
2950
+ # line 2951 "vm.inc"
2907
2951
  # undef NAME_OF_CURRENT_INSN
2908
2952
 
2909
2953
  /* ### Instruction trailers. ### */
@@ -2939,7 +2983,7 @@ INSN_ENTRY(opt_case_dispatch)
2939
2983
 
2940
2984
  /* ### Here we do the instruction body. ### */
2941
2985
  # define NAME_OF_CURRENT_INSN opt_case_dispatch
2942
- # line 1088 "insns.def"
2986
+ # line 1100 "insns.def"
2943
2987
  {
2944
2988
  OFFSET dst = vm_case_dispatch(hash, else_offset, key);
2945
2989
 
@@ -2947,7 +2991,7 @@ INSN_ENTRY(opt_case_dispatch)
2947
2991
  JUMP(dst);
2948
2992
  }
2949
2993
  }
2950
- # line 2951 "vm.inc"
2994
+ # line 2995 "vm.inc"
2951
2995
  # undef NAME_OF_CURRENT_INSN
2952
2996
 
2953
2997
  /* ### Instruction trailers. ### */
@@ -2983,7 +3027,7 @@ INSN_ENTRY(opt_plus)
2983
3027
 
2984
3028
  /* ### Here we do the instruction body. ### */
2985
3029
  # define NAME_OF_CURRENT_INSN opt_plus
2986
- # line 1104 "insns.def"
3030
+ # line 1116 "insns.def"
2987
3031
  {
2988
3032
  val = vm_opt_plus(recv, obj);
2989
3033
 
@@ -2991,7 +3035,7 @@ INSN_ENTRY(opt_plus)
2991
3035
  CALL_SIMPLE_METHOD();
2992
3036
  }
2993
3037
  }
2994
- # line 2995 "vm.inc"
3038
+ # line 3039 "vm.inc"
2995
3039
  # undef NAME_OF_CURRENT_INSN
2996
3040
 
2997
3041
  /* ### Instruction trailers. ### */
@@ -3030,7 +3074,7 @@ INSN_ENTRY(opt_minus)
3030
3074
 
3031
3075
  /* ### Here we do the instruction body. ### */
3032
3076
  # define NAME_OF_CURRENT_INSN opt_minus
3033
- # line 1118 "insns.def"
3077
+ # line 1130 "insns.def"
3034
3078
  {
3035
3079
  val = vm_opt_minus(recv, obj);
3036
3080
 
@@ -3038,7 +3082,7 @@ INSN_ENTRY(opt_minus)
3038
3082
  CALL_SIMPLE_METHOD();
3039
3083
  }
3040
3084
  }
3041
- # line 3042 "vm.inc"
3085
+ # line 3086 "vm.inc"
3042
3086
  # undef NAME_OF_CURRENT_INSN
3043
3087
 
3044
3088
  /* ### Instruction trailers. ### */
@@ -3077,7 +3121,7 @@ INSN_ENTRY(opt_mult)
3077
3121
 
3078
3122
  /* ### Here we do the instruction body. ### */
3079
3123
  # define NAME_OF_CURRENT_INSN opt_mult
3080
- # line 1132 "insns.def"
3124
+ # line 1144 "insns.def"
3081
3125
  {
3082
3126
  val = vm_opt_mult(recv, obj);
3083
3127
 
@@ -3085,7 +3129,7 @@ INSN_ENTRY(opt_mult)
3085
3129
  CALL_SIMPLE_METHOD();
3086
3130
  }
3087
3131
  }
3088
- # line 3089 "vm.inc"
3132
+ # line 3133 "vm.inc"
3089
3133
  # undef NAME_OF_CURRENT_INSN
3090
3134
 
3091
3135
  /* ### Instruction trailers. ### */
@@ -3124,7 +3168,7 @@ INSN_ENTRY(opt_div)
3124
3168
 
3125
3169
  /* ### Here we do the instruction body. ### */
3126
3170
  # define NAME_OF_CURRENT_INSN opt_div
3127
- # line 1149 "insns.def"
3171
+ # line 1161 "insns.def"
3128
3172
  {
3129
3173
  val = vm_opt_div(recv, obj);
3130
3174
 
@@ -3132,7 +3176,7 @@ INSN_ENTRY(opt_div)
3132
3176
  CALL_SIMPLE_METHOD();
3133
3177
  }
3134
3178
  }
3135
- # line 3136 "vm.inc"
3179
+ # line 3180 "vm.inc"
3136
3180
  # undef NAME_OF_CURRENT_INSN
3137
3181
 
3138
3182
  /* ### Instruction trailers. ### */
@@ -3171,7 +3215,7 @@ INSN_ENTRY(opt_mod)
3171
3215
 
3172
3216
  /* ### Here we do the instruction body. ### */
3173
3217
  # define NAME_OF_CURRENT_INSN opt_mod
3174
- # line 1165 "insns.def"
3218
+ # line 1177 "insns.def"
3175
3219
  {
3176
3220
  val = vm_opt_mod(recv, obj);
3177
3221
 
@@ -3179,7 +3223,7 @@ INSN_ENTRY(opt_mod)
3179
3223
  CALL_SIMPLE_METHOD();
3180
3224
  }
3181
3225
  }
3182
- # line 3183 "vm.inc"
3226
+ # line 3227 "vm.inc"
3183
3227
  # undef NAME_OF_CURRENT_INSN
3184
3228
 
3185
3229
  /* ### Instruction trailers. ### */
@@ -3218,7 +3262,7 @@ INSN_ENTRY(opt_eq)
3218
3262
 
3219
3263
  /* ### Here we do the instruction body. ### */
3220
3264
  # define NAME_OF_CURRENT_INSN opt_eq
3221
- # line 1179 "insns.def"
3265
+ # line 1191 "insns.def"
3222
3266
  {
3223
3267
  val = opt_equality(GET_ISEQ(), recv, obj, cd);
3224
3268
 
@@ -3226,7 +3270,7 @@ INSN_ENTRY(opt_eq)
3226
3270
  CALL_SIMPLE_METHOD();
3227
3271
  }
3228
3272
  }
3229
- # line 3230 "vm.inc"
3273
+ # line 3274 "vm.inc"
3230
3274
  # undef NAME_OF_CURRENT_INSN
3231
3275
 
3232
3276
  /* ### Instruction trailers. ### */
@@ -3267,7 +3311,7 @@ INSN_ENTRY(opt_neq)
3267
3311
 
3268
3312
  /* ### Here we do the instruction body. ### */
3269
3313
  # define NAME_OF_CURRENT_INSN opt_neq
3270
- # line 1193 "insns.def"
3314
+ # line 1205 "insns.def"
3271
3315
  {
3272
3316
  val = vm_opt_neq(GET_ISEQ(), cd, cd_eq, recv, obj);
3273
3317
 
@@ -3275,7 +3319,7 @@ INSN_ENTRY(opt_neq)
3275
3319
  CALL_SIMPLE_METHOD();
3276
3320
  }
3277
3321
  }
3278
- # line 3279 "vm.inc"
3322
+ # line 3323 "vm.inc"
3279
3323
  # undef NAME_OF_CURRENT_INSN
3280
3324
 
3281
3325
  /* ### Instruction trailers. ### */
@@ -3314,7 +3358,7 @@ INSN_ENTRY(opt_lt)
3314
3358
 
3315
3359
  /* ### Here we do the instruction body. ### */
3316
3360
  # define NAME_OF_CURRENT_INSN opt_lt
3317
- # line 1207 "insns.def"
3361
+ # line 1219 "insns.def"
3318
3362
  {
3319
3363
  val = vm_opt_lt(recv, obj);
3320
3364
 
@@ -3322,7 +3366,7 @@ INSN_ENTRY(opt_lt)
3322
3366
  CALL_SIMPLE_METHOD();
3323
3367
  }
3324
3368
  }
3325
- # line 3326 "vm.inc"
3369
+ # line 3370 "vm.inc"
3326
3370
  # undef NAME_OF_CURRENT_INSN
3327
3371
 
3328
3372
  /* ### Instruction trailers. ### */
@@ -3361,7 +3405,7 @@ INSN_ENTRY(opt_le)
3361
3405
 
3362
3406
  /* ### Here we do the instruction body. ### */
3363
3407
  # define NAME_OF_CURRENT_INSN opt_le
3364
- # line 1221 "insns.def"
3408
+ # line 1233 "insns.def"
3365
3409
  {
3366
3410
  val = vm_opt_le(recv, obj);
3367
3411
 
@@ -3369,7 +3413,7 @@ INSN_ENTRY(opt_le)
3369
3413
  CALL_SIMPLE_METHOD();
3370
3414
  }
3371
3415
  }
3372
- # line 3373 "vm.inc"
3416
+ # line 3417 "vm.inc"
3373
3417
  # undef NAME_OF_CURRENT_INSN
3374
3418
 
3375
3419
  /* ### Instruction trailers. ### */
@@ -3408,7 +3452,7 @@ INSN_ENTRY(opt_gt)
3408
3452
 
3409
3453
  /* ### Here we do the instruction body. ### */
3410
3454
  # define NAME_OF_CURRENT_INSN opt_gt
3411
- # line 1235 "insns.def"
3455
+ # line 1247 "insns.def"
3412
3456
  {
3413
3457
  val = vm_opt_gt(recv, obj);
3414
3458
 
@@ -3416,7 +3460,7 @@ INSN_ENTRY(opt_gt)
3416
3460
  CALL_SIMPLE_METHOD();
3417
3461
  }
3418
3462
  }
3419
- # line 3420 "vm.inc"
3463
+ # line 3464 "vm.inc"
3420
3464
  # undef NAME_OF_CURRENT_INSN
3421
3465
 
3422
3466
  /* ### Instruction trailers. ### */
@@ -3455,7 +3499,7 @@ INSN_ENTRY(opt_ge)
3455
3499
 
3456
3500
  /* ### Here we do the instruction body. ### */
3457
3501
  # define NAME_OF_CURRENT_INSN opt_ge
3458
- # line 1249 "insns.def"
3502
+ # line 1261 "insns.def"
3459
3503
  {
3460
3504
  val = vm_opt_ge(recv, obj);
3461
3505
 
@@ -3463,7 +3507,7 @@ INSN_ENTRY(opt_ge)
3463
3507
  CALL_SIMPLE_METHOD();
3464
3508
  }
3465
3509
  }
3466
- # line 3467 "vm.inc"
3510
+ # line 3511 "vm.inc"
3467
3511
  # undef NAME_OF_CURRENT_INSN
3468
3512
 
3469
3513
  /* ### Instruction trailers. ### */
@@ -3502,7 +3546,7 @@ INSN_ENTRY(opt_ltlt)
3502
3546
 
3503
3547
  /* ### Here we do the instruction body. ### */
3504
3548
  # define NAME_OF_CURRENT_INSN opt_ltlt
3505
- # line 1267 "insns.def"
3549
+ # line 1279 "insns.def"
3506
3550
  {
3507
3551
  val = vm_opt_ltlt(recv, obj);
3508
3552
 
@@ -3510,7 +3554,7 @@ INSN_ENTRY(opt_ltlt)
3510
3554
  CALL_SIMPLE_METHOD();
3511
3555
  }
3512
3556
  }
3513
- # line 3514 "vm.inc"
3557
+ # line 3558 "vm.inc"
3514
3558
  # undef NAME_OF_CURRENT_INSN
3515
3559
 
3516
3560
  /* ### Instruction trailers. ### */
@@ -3549,7 +3593,7 @@ INSN_ENTRY(opt_and)
3549
3593
 
3550
3594
  /* ### Here we do the instruction body. ### */
3551
3595
  # define NAME_OF_CURRENT_INSN opt_and
3552
- # line 1281 "insns.def"
3596
+ # line 1293 "insns.def"
3553
3597
  {
3554
3598
  val = vm_opt_and(recv, obj);
3555
3599
 
@@ -3557,7 +3601,7 @@ INSN_ENTRY(opt_and)
3557
3601
  CALL_SIMPLE_METHOD();
3558
3602
  }
3559
3603
  }
3560
- # line 3561 "vm.inc"
3604
+ # line 3605 "vm.inc"
3561
3605
  # undef NAME_OF_CURRENT_INSN
3562
3606
 
3563
3607
  /* ### Instruction trailers. ### */
@@ -3596,7 +3640,7 @@ INSN_ENTRY(opt_or)
3596
3640
 
3597
3641
  /* ### Here we do the instruction body. ### */
3598
3642
  # define NAME_OF_CURRENT_INSN opt_or
3599
- # line 1295 "insns.def"
3643
+ # line 1307 "insns.def"
3600
3644
  {
3601
3645
  val = vm_opt_or(recv, obj);
3602
3646
 
@@ -3604,7 +3648,7 @@ INSN_ENTRY(opt_or)
3604
3648
  CALL_SIMPLE_METHOD();
3605
3649
  }
3606
3650
  }
3607
- # line 3608 "vm.inc"
3651
+ # line 3652 "vm.inc"
3608
3652
  # undef NAME_OF_CURRENT_INSN
3609
3653
 
3610
3654
  /* ### Instruction trailers. ### */
@@ -3643,7 +3687,7 @@ INSN_ENTRY(opt_aref)
3643
3687
 
3644
3688
  /* ### Here we do the instruction body. ### */
3645
3689
  # define NAME_OF_CURRENT_INSN opt_aref
3646
- # line 1314 "insns.def"
3690
+ # line 1326 "insns.def"
3647
3691
  {
3648
3692
  val = vm_opt_aref(recv, obj);
3649
3693
 
@@ -3651,7 +3695,7 @@ INSN_ENTRY(opt_aref)
3651
3695
  CALL_SIMPLE_METHOD();
3652
3696
  }
3653
3697
  }
3654
- # line 3655 "vm.inc"
3698
+ # line 3699 "vm.inc"
3655
3699
  # undef NAME_OF_CURRENT_INSN
3656
3700
 
3657
3701
  /* ### Instruction trailers. ### */
@@ -3691,7 +3735,7 @@ INSN_ENTRY(opt_aset)
3691
3735
 
3692
3736
  /* ### Here we do the instruction body. ### */
3693
3737
  # define NAME_OF_CURRENT_INSN opt_aset
3694
- # line 1331 "insns.def"
3738
+ # line 1343 "insns.def"
3695
3739
  {
3696
3740
  val = vm_opt_aset(recv, obj, set);
3697
3741
 
@@ -3699,7 +3743,7 @@ INSN_ENTRY(opt_aset)
3699
3743
  CALL_SIMPLE_METHOD();
3700
3744
  }
3701
3745
  }
3702
- # line 3703 "vm.inc"
3746
+ # line 3747 "vm.inc"
3703
3747
  # undef NAME_OF_CURRENT_INSN
3704
3748
 
3705
3749
  /* ### Instruction trailers. ### */
@@ -3739,7 +3783,7 @@ INSN_ENTRY(opt_aset_with)
3739
3783
 
3740
3784
  /* ### Here we do the instruction body. ### */
3741
3785
  # define NAME_OF_CURRENT_INSN opt_aset_with
3742
- # line 1347 "insns.def"
3786
+ # line 1359 "insns.def"
3743
3787
  {
3744
3788
  VALUE tmp = vm_opt_aset_with(recv, key, val);
3745
3789
 
@@ -3752,7 +3796,7 @@ INSN_ENTRY(opt_aset_with)
3752
3796
  CALL_SIMPLE_METHOD();
3753
3797
  }
3754
3798
  }
3755
- # line 3756 "vm.inc"
3799
+ # line 3800 "vm.inc"
3756
3800
  # undef NAME_OF_CURRENT_INSN
3757
3801
 
3758
3802
  /* ### Instruction trailers. ### */
@@ -3792,7 +3836,7 @@ INSN_ENTRY(opt_aref_with)
3792
3836
 
3793
3837
  /* ### Here we do the instruction body. ### */
3794
3838
  # define NAME_OF_CURRENT_INSN opt_aref_with
3795
- # line 1368 "insns.def"
3839
+ # line 1380 "insns.def"
3796
3840
  {
3797
3841
  val = vm_opt_aref_with(recv, key);
3798
3842
 
@@ -3801,7 +3845,7 @@ INSN_ENTRY(opt_aref_with)
3801
3845
  CALL_SIMPLE_METHOD();
3802
3846
  }
3803
3847
  }
3804
- # line 3805 "vm.inc"
3848
+ # line 3849 "vm.inc"
3805
3849
  # undef NAME_OF_CURRENT_INSN
3806
3850
 
3807
3851
  /* ### Instruction trailers. ### */
@@ -3839,7 +3883,7 @@ INSN_ENTRY(opt_length)
3839
3883
 
3840
3884
  /* ### Here we do the instruction body. ### */
3841
3885
  # define NAME_OF_CURRENT_INSN opt_length
3842
- # line 1383 "insns.def"
3886
+ # line 1395 "insns.def"
3843
3887
  {
3844
3888
  val = vm_opt_length(recv, BOP_LENGTH);
3845
3889
 
@@ -3847,7 +3891,7 @@ INSN_ENTRY(opt_length)
3847
3891
  CALL_SIMPLE_METHOD();
3848
3892
  }
3849
3893
  }
3850
- # line 3851 "vm.inc"
3894
+ # line 3895 "vm.inc"
3851
3895
  # undef NAME_OF_CURRENT_INSN
3852
3896
 
3853
3897
  /* ### Instruction trailers. ### */
@@ -3885,7 +3929,7 @@ INSN_ENTRY(opt_size)
3885
3929
 
3886
3930
  /* ### Here we do the instruction body. ### */
3887
3931
  # define NAME_OF_CURRENT_INSN opt_size
3888
- # line 1397 "insns.def"
3932
+ # line 1409 "insns.def"
3889
3933
  {
3890
3934
  val = vm_opt_length(recv, BOP_SIZE);
3891
3935
 
@@ -3893,7 +3937,7 @@ INSN_ENTRY(opt_size)
3893
3937
  CALL_SIMPLE_METHOD();
3894
3938
  }
3895
3939
  }
3896
- # line 3897 "vm.inc"
3940
+ # line 3941 "vm.inc"
3897
3941
  # undef NAME_OF_CURRENT_INSN
3898
3942
 
3899
3943
  /* ### Instruction trailers. ### */
@@ -3931,7 +3975,7 @@ INSN_ENTRY(opt_empty_p)
3931
3975
 
3932
3976
  /* ### Here we do the instruction body. ### */
3933
3977
  # define NAME_OF_CURRENT_INSN opt_empty_p
3934
- # line 1411 "insns.def"
3978
+ # line 1423 "insns.def"
3935
3979
  {
3936
3980
  val = vm_opt_empty_p(recv);
3937
3981
 
@@ -3939,7 +3983,7 @@ INSN_ENTRY(opt_empty_p)
3939
3983
  CALL_SIMPLE_METHOD();
3940
3984
  }
3941
3985
  }
3942
- # line 3943 "vm.inc"
3986
+ # line 3987 "vm.inc"
3943
3987
  # undef NAME_OF_CURRENT_INSN
3944
3988
 
3945
3989
  /* ### Instruction trailers. ### */
@@ -3977,7 +4021,7 @@ INSN_ENTRY(opt_succ)
3977
4021
 
3978
4022
  /* ### Here we do the instruction body. ### */
3979
4023
  # define NAME_OF_CURRENT_INSN opt_succ
3980
- # line 1425 "insns.def"
4024
+ # line 1437 "insns.def"
3981
4025
  {
3982
4026
  val = vm_opt_succ(recv);
3983
4027
 
@@ -3985,7 +4029,7 @@ INSN_ENTRY(opt_succ)
3985
4029
  CALL_SIMPLE_METHOD();
3986
4030
  }
3987
4031
  }
3988
- # line 3989 "vm.inc"
4032
+ # line 4033 "vm.inc"
3989
4033
  # undef NAME_OF_CURRENT_INSN
3990
4034
 
3991
4035
  /* ### Instruction trailers. ### */
@@ -4023,7 +4067,7 @@ INSN_ENTRY(opt_not)
4023
4067
 
4024
4068
  /* ### Here we do the instruction body. ### */
4025
4069
  # define NAME_OF_CURRENT_INSN opt_not
4026
- # line 1439 "insns.def"
4070
+ # line 1451 "insns.def"
4027
4071
  {
4028
4072
  val = vm_opt_not(GET_ISEQ(), cd, recv);
4029
4073
 
@@ -4031,7 +4075,7 @@ INSN_ENTRY(opt_not)
4031
4075
  CALL_SIMPLE_METHOD();
4032
4076
  }
4033
4077
  }
4034
- # line 4035 "vm.inc"
4078
+ # line 4079 "vm.inc"
4035
4079
  # undef NAME_OF_CURRENT_INSN
4036
4080
 
4037
4081
  /* ### Instruction trailers. ### */
@@ -4070,7 +4114,7 @@ INSN_ENTRY(opt_regexpmatch2)
4070
4114
 
4071
4115
  /* ### Here we do the instruction body. ### */
4072
4116
  # define NAME_OF_CURRENT_INSN opt_regexpmatch2
4073
- # line 1454 "insns.def"
4117
+ # line 1466 "insns.def"
4074
4118
  {
4075
4119
  val = vm_opt_regexpmatch2(obj2, obj1);
4076
4120
 
@@ -4078,7 +4122,7 @@ INSN_ENTRY(opt_regexpmatch2)
4078
4122
  CALL_SIMPLE_METHOD();
4079
4123
  }
4080
4124
  }
4081
- # line 4082 "vm.inc"
4125
+ # line 4126 "vm.inc"
4082
4126
  # undef NAME_OF_CURRENT_INSN
4083
4127
 
4084
4128
  /* ### Instruction trailers. ### */
@@ -4115,11 +4159,11 @@ INSN_ENTRY(invokebuiltin)
4115
4159
 
4116
4160
  /* ### Here we do the instruction body. ### */
4117
4161
  # define NAME_OF_CURRENT_INSN invokebuiltin
4118
- # line 1470 "insns.def"
4162
+ # line 1482 "insns.def"
4119
4163
  {
4120
4164
  val = vm_invoke_builtin(ec, reg_cfp, bf, STACK_ADDR_FROM_TOP(bf->argc));
4121
4165
  }
4122
- # line 4123 "vm.inc"
4166
+ # line 4167 "vm.inc"
4123
4167
  # undef NAME_OF_CURRENT_INSN
4124
4168
 
4125
4169
  /* ### Instruction trailers. ### */
@@ -4158,11 +4202,11 @@ INSN_ENTRY(opt_invokebuiltin_delegate)
4158
4202
 
4159
4203
  /* ### Here we do the instruction body. ### */
4160
4204
  # define NAME_OF_CURRENT_INSN opt_invokebuiltin_delegate
4161
- # line 1481 "insns.def"
4205
+ # line 1493 "insns.def"
4162
4206
  {
4163
4207
  val = vm_invoke_builtin_delegate(ec, reg_cfp, bf, (unsigned int)index);
4164
4208
  }
4165
- # line 4166 "vm.inc"
4209
+ # line 4210 "vm.inc"
4166
4210
  # undef NAME_OF_CURRENT_INSN
4167
4211
 
4168
4212
  /* ### Instruction trailers. ### */
@@ -4201,7 +4245,7 @@ INSN_ENTRY(opt_invokebuiltin_delegate_leave)
4201
4245
 
4202
4246
  /* ### Here we do the instruction body. ### */
4203
4247
  # define NAME_OF_CURRENT_INSN opt_invokebuiltin_delegate_leave
4204
- # line 1492 "insns.def"
4248
+ # line 1504 "insns.def"
4205
4249
  {
4206
4250
  val = vm_invoke_builtin_delegate(ec, reg_cfp, bf, (unsigned int)index);
4207
4251
 
@@ -4219,7 +4263,7 @@ INSN_ENTRY(opt_invokebuiltin_delegate_leave)
4219
4263
  RESTORE_REGS();
4220
4264
  }
4221
4265
  }
4222
- # line 4223 "vm.inc"
4266
+ # line 4267 "vm.inc"
4223
4267
  # undef NAME_OF_CURRENT_INSN
4224
4268
 
4225
4269
  /* ### Instruction trailers. ### */
@@ -4245,7 +4289,7 @@ INSN_ENTRY(getlocal_WC_0)
4245
4289
  /* ### Declare and assign variables. ### */
4246
4290
  #line 10 "defs/opt_operand.def"
4247
4291
  const rb_num_t level = 0;
4248
- #line 4249 "vm.inc"
4292
+ #line 4293 "vm.inc"
4249
4293
  lindex_t idx = (lindex_t)GET_OPERAND(1);
4250
4294
  # define INSN_ATTR(x) attr_ ## x ## _getlocal_WC_0(idx)
4251
4295
  const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
@@ -4265,7 +4309,7 @@ INSN_ENTRY(getlocal_WC_0)
4265
4309
  RB_DEBUG_COUNTER_INC(lvar_get);
4266
4310
  (void)RB_DEBUG_COUNTER_INC_IF(lvar_get_dynamic, level > 0);
4267
4311
  }
4268
- # line 4269 "vm.inc"
4312
+ # line 4313 "vm.inc"
4269
4313
  # undef NAME_OF_CURRENT_INSN
4270
4314
 
4271
4315
  /* ### Instruction trailers. ### */
@@ -4291,7 +4335,7 @@ INSN_ENTRY(getlocal_WC_1)
4291
4335
  /* ### Declare and assign variables. ### */
4292
4336
  #line 11 "defs/opt_operand.def"
4293
4337
  const rb_num_t level = 1;
4294
- #line 4295 "vm.inc"
4338
+ #line 4339 "vm.inc"
4295
4339
  lindex_t idx = (lindex_t)GET_OPERAND(1);
4296
4340
  # define INSN_ATTR(x) attr_ ## x ## _getlocal_WC_1(idx)
4297
4341
  const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
@@ -4311,7 +4355,7 @@ INSN_ENTRY(getlocal_WC_1)
4311
4355
  RB_DEBUG_COUNTER_INC(lvar_get);
4312
4356
  (void)RB_DEBUG_COUNTER_INC_IF(lvar_get_dynamic, level > 0);
4313
4357
  }
4314
- # line 4315 "vm.inc"
4358
+ # line 4359 "vm.inc"
4315
4359
  # undef NAME_OF_CURRENT_INSN
4316
4360
 
4317
4361
  /* ### Instruction trailers. ### */
@@ -4337,7 +4381,7 @@ INSN_ENTRY(setlocal_WC_0)
4337
4381
  /* ### Declare and assign variables. ### */
4338
4382
  #line 12 "defs/opt_operand.def"
4339
4383
  const rb_num_t level = 0;
4340
- #line 4341 "vm.inc"
4384
+ #line 4385 "vm.inc"
4341
4385
  lindex_t idx = (lindex_t)GET_OPERAND(1);
4342
4386
  # define INSN_ATTR(x) attr_ ## x ## _setlocal_WC_0(idx)
4343
4387
  const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
@@ -4357,7 +4401,7 @@ INSN_ENTRY(setlocal_WC_0)
4357
4401
  RB_DEBUG_COUNTER_INC(lvar_set);
4358
4402
  (void)RB_DEBUG_COUNTER_INC_IF(lvar_set_dynamic, level > 0);
4359
4403
  }
4360
- # line 4361 "vm.inc"
4404
+ # line 4405 "vm.inc"
4361
4405
  # undef NAME_OF_CURRENT_INSN
4362
4406
 
4363
4407
  /* ### Instruction trailers. ### */
@@ -4380,7 +4424,7 @@ INSN_ENTRY(setlocal_WC_1)
4380
4424
  /* ### Declare and assign variables. ### */
4381
4425
  #line 13 "defs/opt_operand.def"
4382
4426
  const rb_num_t level = 1;
4383
- #line 4384 "vm.inc"
4427
+ #line 4428 "vm.inc"
4384
4428
  lindex_t idx = (lindex_t)GET_OPERAND(1);
4385
4429
  # define INSN_ATTR(x) attr_ ## x ## _setlocal_WC_1(idx)
4386
4430
  const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
@@ -4400,7 +4444,7 @@ INSN_ENTRY(setlocal_WC_1)
4400
4444
  RB_DEBUG_COUNTER_INC(lvar_set);
4401
4445
  (void)RB_DEBUG_COUNTER_INC_IF(lvar_set_dynamic, level > 0);
4402
4446
  }
4403
- # line 4404 "vm.inc"
4447
+ # line 4448 "vm.inc"
4404
4448
  # undef NAME_OF_CURRENT_INSN
4405
4449
 
4406
4450
  /* ### Instruction trailers. ### */
@@ -4423,7 +4467,7 @@ INSN_ENTRY(putobject_INT2FIX_0_)
4423
4467
  /* ### Declare and assign variables. ### */
4424
4468
  #line 15 "defs/opt_operand.def"
4425
4469
  const VALUE val = INT2FIX(0);
4426
- #line 4427 "vm.inc"
4470
+ #line 4471 "vm.inc"
4427
4471
  # define INSN_ATTR(x) attr_ ## x ## _putobject_INT2FIX_0_()
4428
4472
  const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
4429
4473
 
@@ -4453,7 +4497,7 @@ INSN_ENTRY(putobject_INT2FIX_1_)
4453
4497
  /* ### Declare and assign variables. ### */
4454
4498
  #line 16 "defs/opt_operand.def"
4455
4499
  const VALUE val = INT2FIX(1);
4456
- #line 4457 "vm.inc"
4500
+ #line 4501 "vm.inc"
4457
4501
  # define INSN_ATTR(x) attr_ ## x ## _putobject_INT2FIX_1_()
4458
4502
  const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
4459
4503
 
@@ -4770,6 +4814,15 @@ INSN_ENTRY(trace_splatarray)
4770
4814
  END_INSN(trace_splatarray);
4771
4815
  }
4772
4816
 
4817
+ /* insn trace_splatkw(...)(...)(...) */
4818
+ INSN_ENTRY(trace_splatkw)
4819
+ {
4820
+ vm_trace(ec, GET_CFP());
4821
+
4822
+ DISPATCH_ORIGINAL_INSN(splatkw);
4823
+ END_INSN(trace_splatkw);
4824
+ }
4825
+
4773
4826
  /* insn trace_newhash(...)(...)(...) */
4774
4827
  INSN_ENTRY(trace_newhash)
4775
4828
  {