debase-ruby_core_source 3.2.2 → 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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/addr2line.h +3 -1
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/ccan/list/list.h +4 -2
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/dln.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/eval_intern.h +4 -2
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/insns.inc +2 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/insns_info.inc +280 -198
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/array.h +8 -1
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/bits.h +6 -6
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/class.h +53 -3
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/cmdlineopt.h +2 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/cont.h +3 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/encoding.h +3 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/error.h +3 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/gc.h +3 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/hash.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/imemo.h +0 -1
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/object.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/parse.h +7 -32
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/random.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/string.h +0 -1
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/symbol.h +3 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/thread.h +4 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/transcode.h +3 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/variable.h +5 -4
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/vm.h +9 -2
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/iseq.h +5 -1
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/method.h +7 -7
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/node.h +22 -19
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/node_name.inc +4 -2
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/optunifs.inc +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/parse.h +16 -5
- data/lib/debase/ruby_core_source/ruby-3.3.0-p0/parser_node.h +32 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism_compile.h +29 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/ractor_core.h +7 -1
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/regint.h +8 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/regparse.h +2 -1
- data/lib/debase/ruby_core_source/ruby-3.3.0-p0/revision.h +5 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/rjit.h +6 -8
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/rjit_c.h +0 -1
- data/lib/debase/ruby_core_source/ruby-3.3.0-p0/rubyparser.h +1403 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/shape.h +32 -32
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/symbol.h +1 -2
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/thread_none.h +1 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-p0/thread_pthread.h +166 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/thread_win32.h +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/variable.h +11 -2
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/version.h +8 -4
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/vm.inc +225 -185
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/vm_callinfo.h +12 -1
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/vm_core.h +128 -16
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/vm_insnhelper.h +4 -14
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/vmtc.inc +2 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/yjit.h +10 -8
- data/lib/debase/ruby_core_source/version.rb +1 -1
- metadata +121 -120
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/parser_node.h +0 -133
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/revision.h +0 -5
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/rubyparser.h +0 -628
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/thread_pthread.h +0 -126
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/builtin.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/ccan/build_assert/build_assert.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/ccan/check_type/check_type.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/ccan/container_of/container_of.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/ccan/str/str.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/constant.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/darray.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/debug_counter.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/encindex.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/hrtime.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/id.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/id_table.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/basic_operators.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/bignum.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/compar.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/compile.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/compilers.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/complex.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/dir.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/enc.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/enum.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/enumerator.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/eval.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/file.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/fixnum.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/inits.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/io.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/load.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/loadpath.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/math.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/missing.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/numeric.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/proc.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/process.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/ractor.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/range.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/rational.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/re.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/ruby_parser.h +2 -2
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/sanitizers.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/serial.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/signal.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/static_assert.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/struct.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/time.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/util.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal/warnings.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/internal.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/known_errors.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/optinsn.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/parser_bits.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/parser_st.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/parser_value.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/probes_helper.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/regenc.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/ruby_assert.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/ruby_atomic.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/siphash.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/timev.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/transcode_data.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/vm_call_iseq_optimized.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/vm_debug.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/vm_exec.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/vm_opts.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-p0}/vm_sync.h +0 -0
|
@@ -599,22 +599,9 @@ INSN_ENTRY(opt_getconstant_path)
|
|
|
599
599
|
# define NAME_OF_CURRENT_INSN opt_getconstant_path
|
|
600
600
|
# line 262 "insns.def"
|
|
601
601
|
{
|
|
602
|
-
|
|
603
|
-
struct iseq_inline_constant_cache_entry *ice = ic->entry;
|
|
604
|
-
if (ice && vm_ic_hit_p(ice, GET_EP())) {
|
|
605
|
-
val = ice->value;
|
|
606
|
-
|
|
607
|
-
VM_ASSERT(val == vm_get_ev_const_chain(ec, segments));
|
|
608
|
-
} else {
|
|
609
|
-
ruby_vm_constant_cache_misses++;
|
|
610
|
-
val = vm_get_ev_const_chain(ec, segments);
|
|
611
|
-
vm_ic_track_const_chain(GET_CFP(), ic, segments);
|
|
612
|
-
// Because leaf=false, we need to undo the PC increment to get the address to this instruction
|
|
613
|
-
// INSN_ATTR(width) == 2
|
|
614
|
-
vm_ic_update(GET_ISEQ(), ic, val, GET_EP(), GET_PC() - 2);
|
|
615
|
-
}
|
|
602
|
+
val = rb_vm_opt_getconstant_path(ec, GET_CFP(), ic);
|
|
616
603
|
}
|
|
617
|
-
# line
|
|
604
|
+
# line 605 "vm.inc"
|
|
618
605
|
# undef NAME_OF_CURRENT_INSN
|
|
619
606
|
|
|
620
607
|
/* ### Instruction trailers. ### */
|
|
@@ -653,11 +640,11 @@ INSN_ENTRY(getconstant)
|
|
|
653
640
|
|
|
654
641
|
/* ### Here we do the instruction body. ### */
|
|
655
642
|
# define NAME_OF_CURRENT_INSN getconstant
|
|
656
|
-
# line
|
|
643
|
+
# line 277 "insns.def"
|
|
657
644
|
{
|
|
658
645
|
val = vm_get_ev_const(ec, klass, id, allow_nil == Qtrue, 0);
|
|
659
646
|
}
|
|
660
|
-
# line
|
|
647
|
+
# line 648 "vm.inc"
|
|
661
648
|
# undef NAME_OF_CURRENT_INSN
|
|
662
649
|
|
|
663
650
|
/* ### Instruction trailers. ### */
|
|
@@ -695,13 +682,13 @@ INSN_ENTRY(setconstant)
|
|
|
695
682
|
|
|
696
683
|
/* ### Here we do the instruction body. ### */
|
|
697
684
|
# define NAME_OF_CURRENT_INSN setconstant
|
|
698
|
-
# line
|
|
685
|
+
# line 293 "insns.def"
|
|
699
686
|
{
|
|
700
687
|
vm_check_if_namespace(cbase);
|
|
701
688
|
vm_ensure_not_refinement_module(GET_SELF());
|
|
702
689
|
rb_const_set(cbase, id, val);
|
|
703
690
|
}
|
|
704
|
-
# line
|
|
691
|
+
# line 692 "vm.inc"
|
|
705
692
|
# undef NAME_OF_CURRENT_INSN
|
|
706
693
|
|
|
707
694
|
/* ### Instruction trailers. ### */
|
|
@@ -735,11 +722,11 @@ INSN_ENTRY(getglobal)
|
|
|
735
722
|
|
|
736
723
|
/* ### Here we do the instruction body. ### */
|
|
737
724
|
# define NAME_OF_CURRENT_INSN getglobal
|
|
738
|
-
# line
|
|
725
|
+
# line 306 "insns.def"
|
|
739
726
|
{
|
|
740
727
|
val = rb_gvar_get(gid);
|
|
741
728
|
}
|
|
742
|
-
# line
|
|
729
|
+
# line 730 "vm.inc"
|
|
743
730
|
# undef NAME_OF_CURRENT_INSN
|
|
744
731
|
|
|
745
732
|
/* ### Instruction trailers. ### */
|
|
@@ -776,11 +763,11 @@ INSN_ENTRY(setglobal)
|
|
|
776
763
|
|
|
777
764
|
/* ### Here we do the instruction body. ### */
|
|
778
765
|
# define NAME_OF_CURRENT_INSN setglobal
|
|
779
|
-
# line
|
|
766
|
+
# line 317 "insns.def"
|
|
780
767
|
{
|
|
781
768
|
rb_gvar_set(gid, val);
|
|
782
769
|
}
|
|
783
|
-
# line
|
|
770
|
+
# line 771 "vm.inc"
|
|
784
771
|
# undef NAME_OF_CURRENT_INSN
|
|
785
772
|
|
|
786
773
|
/* ### Instruction trailers. ### */
|
|
@@ -812,11 +799,11 @@ INSN_ENTRY(putnil)
|
|
|
812
799
|
|
|
813
800
|
/* ### Here we do the instruction body. ### */
|
|
814
801
|
# define NAME_OF_CURRENT_INSN putnil
|
|
815
|
-
# line
|
|
802
|
+
# line 331 "insns.def"
|
|
816
803
|
{
|
|
817
804
|
val = Qnil;
|
|
818
805
|
}
|
|
819
|
-
# line
|
|
806
|
+
# line 807 "vm.inc"
|
|
820
807
|
# undef NAME_OF_CURRENT_INSN
|
|
821
808
|
|
|
822
809
|
/* ### Instruction trailers. ### */
|
|
@@ -851,11 +838,11 @@ INSN_ENTRY(putself)
|
|
|
851
838
|
|
|
852
839
|
/* ### Here we do the instruction body. ### */
|
|
853
840
|
# define NAME_OF_CURRENT_INSN putself
|
|
854
|
-
# line
|
|
841
|
+
# line 341 "insns.def"
|
|
855
842
|
{
|
|
856
843
|
val = GET_SELF();
|
|
857
844
|
}
|
|
858
|
-
# line
|
|
845
|
+
# line 846 "vm.inc"
|
|
859
846
|
# undef NAME_OF_CURRENT_INSN
|
|
860
847
|
|
|
861
848
|
/* ### Instruction trailers. ### */
|
|
@@ -921,14 +908,14 @@ INSN_ENTRY(putspecialobject)
|
|
|
921
908
|
|
|
922
909
|
/* ### Here we do the instruction body. ### */
|
|
923
910
|
# define NAME_OF_CURRENT_INSN putspecialobject
|
|
924
|
-
# line
|
|
911
|
+
# line 364 "insns.def"
|
|
925
912
|
{
|
|
926
913
|
enum vm_special_object_type type;
|
|
927
914
|
|
|
928
915
|
type = (enum vm_special_object_type)value_type;
|
|
929
916
|
val = vm_get_special_object(GET_EP(), type);
|
|
930
917
|
}
|
|
931
|
-
# line
|
|
918
|
+
# line 919 "vm.inc"
|
|
932
919
|
# undef NAME_OF_CURRENT_INSN
|
|
933
920
|
|
|
934
921
|
/* ### Instruction trailers. ### */
|
|
@@ -965,11 +952,11 @@ INSN_ENTRY(putstring)
|
|
|
965
952
|
|
|
966
953
|
/* ### Here we do the instruction body. ### */
|
|
967
954
|
# define NAME_OF_CURRENT_INSN putstring
|
|
968
|
-
# line
|
|
955
|
+
# line 377 "insns.def"
|
|
969
956
|
{
|
|
970
957
|
val = rb_ec_str_resurrect(ec, str);
|
|
971
958
|
}
|
|
972
|
-
# line
|
|
959
|
+
# line 960 "vm.inc"
|
|
973
960
|
# undef NAME_OF_CURRENT_INSN
|
|
974
961
|
|
|
975
962
|
/* ### Instruction trailers. ### */
|
|
@@ -1006,11 +993,11 @@ INSN_ENTRY(concatstrings)
|
|
|
1006
993
|
|
|
1007
994
|
/* ### Here we do the instruction body. ### */
|
|
1008
995
|
# define NAME_OF_CURRENT_INSN concatstrings
|
|
1009
|
-
# line
|
|
996
|
+
# line 391 "insns.def"
|
|
1010
997
|
{
|
|
1011
998
|
val = rb_str_concat_literals(num, STACK_ADDR_FROM_TOP(num));
|
|
1012
999
|
}
|
|
1013
|
-
# line
|
|
1000
|
+
# line 1001 "vm.inc"
|
|
1014
1001
|
# undef NAME_OF_CURRENT_INSN
|
|
1015
1002
|
|
|
1016
1003
|
/* ### Instruction trailers. ### */
|
|
@@ -1046,11 +1033,11 @@ INSN_ENTRY(anytostring)
|
|
|
1046
1033
|
|
|
1047
1034
|
/* ### Here we do the instruction body. ### */
|
|
1048
1035
|
# define NAME_OF_CURRENT_INSN anytostring
|
|
1049
|
-
# line
|
|
1036
|
+
# line 402 "insns.def"
|
|
1050
1037
|
{
|
|
1051
1038
|
val = rb_obj_as_string_result(str, val);
|
|
1052
1039
|
}
|
|
1053
|
-
# line
|
|
1040
|
+
# line 1041 "vm.inc"
|
|
1054
1041
|
# undef NAME_OF_CURRENT_INSN
|
|
1055
1042
|
|
|
1056
1043
|
/* ### Instruction trailers. ### */
|
|
@@ -1089,13 +1076,13 @@ INSN_ENTRY(toregexp)
|
|
|
1089
1076
|
|
|
1090
1077
|
/* ### Here we do the instruction body. ### */
|
|
1091
1078
|
# define NAME_OF_CURRENT_INSN toregexp
|
|
1092
|
-
# line
|
|
1079
|
+
# line 418 "insns.def"
|
|
1093
1080
|
{
|
|
1094
1081
|
const VALUE ary = rb_ary_tmp_new_from_values(0, cnt, STACK_ADDR_FROM_TOP(cnt));
|
|
1095
1082
|
val = rb_reg_new_ary(ary, (int)opt);
|
|
1096
1083
|
rb_ary_clear(ary);
|
|
1097
1084
|
}
|
|
1098
|
-
# line
|
|
1085
|
+
# line 1086 "vm.inc"
|
|
1099
1086
|
# undef NAME_OF_CURRENT_INSN
|
|
1100
1087
|
|
|
1101
1088
|
/* ### Instruction trailers. ### */
|
|
@@ -1131,11 +1118,11 @@ INSN_ENTRY(intern)
|
|
|
1131
1118
|
|
|
1132
1119
|
/* ### Here we do the instruction body. ### */
|
|
1133
1120
|
# define NAME_OF_CURRENT_INSN intern
|
|
1134
|
-
# line
|
|
1121
|
+
# line 430 "insns.def"
|
|
1135
1122
|
{
|
|
1136
1123
|
sym = rb_str_intern(str);
|
|
1137
1124
|
}
|
|
1138
|
-
# line
|
|
1125
|
+
# line 1126 "vm.inc"
|
|
1139
1126
|
# undef NAME_OF_CURRENT_INSN
|
|
1140
1127
|
|
|
1141
1128
|
/* ### Instruction trailers. ### */
|
|
@@ -1172,11 +1159,11 @@ INSN_ENTRY(newarray)
|
|
|
1172
1159
|
|
|
1173
1160
|
/* ### Here we do the instruction body. ### */
|
|
1174
1161
|
# define NAME_OF_CURRENT_INSN newarray
|
|
1175
|
-
# line
|
|
1162
|
+
# line 441 "insns.def"
|
|
1176
1163
|
{
|
|
1177
1164
|
val = rb_ec_ary_new_from_values(ec, num, STACK_ADDR_FROM_TOP(num));
|
|
1178
1165
|
}
|
|
1179
|
-
# line
|
|
1166
|
+
# line 1167 "vm.inc"
|
|
1180
1167
|
# undef NAME_OF_CURRENT_INSN
|
|
1181
1168
|
|
|
1182
1169
|
/* ### Instruction trailers. ### */
|
|
@@ -1213,7 +1200,7 @@ INSN_ENTRY(newarraykwsplat)
|
|
|
1213
1200
|
|
|
1214
1201
|
/* ### Here we do the instruction body. ### */
|
|
1215
1202
|
# define NAME_OF_CURRENT_INSN newarraykwsplat
|
|
1216
|
-
# line
|
|
1203
|
+
# line 456 "insns.def"
|
|
1217
1204
|
{
|
|
1218
1205
|
if (RHASH_EMPTY_P(*STACK_ADDR_FROM_TOP(1))) {
|
|
1219
1206
|
val = rb_ary_new4(num-1, STACK_ADDR_FROM_TOP(num));
|
|
@@ -1222,7 +1209,7 @@ INSN_ENTRY(newarraykwsplat)
|
|
|
1222
1209
|
val = rb_ary_new4(num, STACK_ADDR_FROM_TOP(num));
|
|
1223
1210
|
}
|
|
1224
1211
|
}
|
|
1225
|
-
# line
|
|
1212
|
+
# line 1213 "vm.inc"
|
|
1226
1213
|
# undef NAME_OF_CURRENT_INSN
|
|
1227
1214
|
|
|
1228
1215
|
/* ### Instruction trailers. ### */
|
|
@@ -1259,12 +1246,12 @@ INSN_ENTRY(duparray)
|
|
|
1259
1246
|
|
|
1260
1247
|
/* ### Here we do the instruction body. ### */
|
|
1261
1248
|
# define NAME_OF_CURRENT_INSN duparray
|
|
1262
|
-
# line
|
|
1249
|
+
# line 471 "insns.def"
|
|
1263
1250
|
{
|
|
1264
1251
|
RUBY_DTRACE_CREATE_HOOK(ARRAY, RARRAY_LEN(ary));
|
|
1265
1252
|
val = rb_ary_resurrect(ary);
|
|
1266
1253
|
}
|
|
1267
|
-
# line
|
|
1254
|
+
# line 1255 "vm.inc"
|
|
1268
1255
|
# undef NAME_OF_CURRENT_INSN
|
|
1269
1256
|
|
|
1270
1257
|
/* ### Instruction trailers. ### */
|
|
@@ -1301,12 +1288,12 @@ INSN_ENTRY(duphash)
|
|
|
1301
1288
|
|
|
1302
1289
|
/* ### Here we do the instruction body. ### */
|
|
1303
1290
|
# define NAME_OF_CURRENT_INSN duphash
|
|
1304
|
-
# line
|
|
1291
|
+
# line 482 "insns.def"
|
|
1305
1292
|
{
|
|
1306
1293
|
RUBY_DTRACE_CREATE_HOOK(HASH, RHASH_SIZE(hash) << 1);
|
|
1307
1294
|
val = rb_hash_resurrect(hash);
|
|
1308
1295
|
}
|
|
1309
|
-
# line
|
|
1296
|
+
# line 1297 "vm.inc"
|
|
1310
1297
|
# undef NAME_OF_CURRENT_INSN
|
|
1311
1298
|
|
|
1312
1299
|
/* ### Instruction trailers. ### */
|
|
@@ -1338,22 +1325,22 @@ INSN_ENTRY(expandarray)
|
|
|
1338
1325
|
|
|
1339
1326
|
/* ### Instruction preambles. ### */
|
|
1340
1327
|
ADD_PC(INSN_ATTR(width));
|
|
1328
|
+
POPN(INSN_ATTR(popn));
|
|
1341
1329
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
1342
1330
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, num);
|
|
1343
1331
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 1, flag);
|
|
1344
1332
|
|
|
1345
1333
|
/* ### Here we do the instruction body. ### */
|
|
1346
1334
|
# define NAME_OF_CURRENT_INSN expandarray
|
|
1347
|
-
# line
|
|
1335
|
+
# line 504 "insns.def"
|
|
1348
1336
|
{
|
|
1349
|
-
vm_expandarray(
|
|
1337
|
+
vm_expandarray(GET_CFP(), ary, num, (int)flag);
|
|
1350
1338
|
}
|
|
1351
|
-
# line
|
|
1339
|
+
# line 1340 "vm.inc"
|
|
1352
1340
|
# undef NAME_OF_CURRENT_INSN
|
|
1353
1341
|
|
|
1354
1342
|
/* ### Instruction trailers. ### */
|
|
1355
1343
|
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
1356
|
-
INC_SP(INSN_ATTR(sp_inc));
|
|
1357
1344
|
# undef INSN_ATTR
|
|
1358
1345
|
|
|
1359
1346
|
/* ### Leave the instruction. ### */
|
|
@@ -1381,11 +1368,11 @@ INSN_ENTRY(concatarray)
|
|
|
1381
1368
|
|
|
1382
1369
|
/* ### Here we do the instruction body. ### */
|
|
1383
1370
|
# define NAME_OF_CURRENT_INSN concatarray
|
|
1384
|
-
# line
|
|
1371
|
+
# line 515 "insns.def"
|
|
1385
1372
|
{
|
|
1386
1373
|
ary = vm_concat_array(ary1, ary2);
|
|
1387
1374
|
}
|
|
1388
|
-
# line
|
|
1375
|
+
# line 1376 "vm.inc"
|
|
1389
1376
|
# undef NAME_OF_CURRENT_INSN
|
|
1390
1377
|
|
|
1391
1378
|
/* ### Instruction trailers. ### */
|
|
@@ -1423,11 +1410,11 @@ INSN_ENTRY(splatarray)
|
|
|
1423
1410
|
|
|
1424
1411
|
/* ### Here we do the instruction body. ### */
|
|
1425
1412
|
# define NAME_OF_CURRENT_INSN splatarray
|
|
1426
|
-
# line
|
|
1413
|
+
# line 526 "insns.def"
|
|
1427
1414
|
{
|
|
1428
1415
|
obj = vm_splat_array(flag, ary);
|
|
1429
1416
|
}
|
|
1430
|
-
# line
|
|
1417
|
+
# line 1418 "vm.inc"
|
|
1431
1418
|
# undef NAME_OF_CURRENT_INSN
|
|
1432
1419
|
|
|
1433
1420
|
/* ### Instruction trailers. ### */
|
|
@@ -1443,6 +1430,50 @@ INSN_ENTRY(splatarray)
|
|
|
1443
1430
|
END_INSN(splatarray);
|
|
1444
1431
|
}
|
|
1445
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
|
+
|
|
1446
1477
|
/* insn newhash(num)(...)(val) */
|
|
1447
1478
|
INSN_ENTRY(newhash)
|
|
1448
1479
|
{
|
|
@@ -1464,7 +1495,7 @@ INSN_ENTRY(newhash)
|
|
|
1464
1495
|
|
|
1465
1496
|
/* ### Here we do the instruction body. ### */
|
|
1466
1497
|
# define NAME_OF_CURRENT_INSN newhash
|
|
1467
|
-
# line
|
|
1498
|
+
# line 549 "insns.def"
|
|
1468
1499
|
{
|
|
1469
1500
|
RUBY_DTRACE_CREATE_HOOK(HASH, num);
|
|
1470
1501
|
|
|
@@ -1476,7 +1507,7 @@ INSN_ENTRY(newhash)
|
|
|
1476
1507
|
val = rb_hash_new();
|
|
1477
1508
|
}
|
|
1478
1509
|
}
|
|
1479
|
-
# line
|
|
1510
|
+
# line 1511 "vm.inc"
|
|
1480
1511
|
# undef NAME_OF_CURRENT_INSN
|
|
1481
1512
|
|
|
1482
1513
|
/* ### Instruction trailers. ### */
|
|
@@ -1515,11 +1546,11 @@ INSN_ENTRY(newrange)
|
|
|
1515
1546
|
|
|
1516
1547
|
/* ### Here we do the instruction body. ### */
|
|
1517
1548
|
# define NAME_OF_CURRENT_INSN newrange
|
|
1518
|
-
# line
|
|
1549
|
+
# line 569 "insns.def"
|
|
1519
1550
|
{
|
|
1520
1551
|
val = rb_range_new(low, high, (int)flag);
|
|
1521
1552
|
}
|
|
1522
|
-
# line
|
|
1553
|
+
# line 1554 "vm.inc"
|
|
1523
1554
|
# undef NAME_OF_CURRENT_INSN
|
|
1524
1555
|
|
|
1525
1556
|
/* ### Instruction trailers. ### */
|
|
@@ -1554,12 +1585,12 @@ INSN_ENTRY(pop)
|
|
|
1554
1585
|
|
|
1555
1586
|
/* ### Here we do the instruction body. ### */
|
|
1556
1587
|
# define NAME_OF_CURRENT_INSN pop
|
|
1557
|
-
# line
|
|
1588
|
+
# line 583 "insns.def"
|
|
1558
1589
|
{
|
|
1559
1590
|
(void)val;
|
|
1560
1591
|
/* none */
|
|
1561
1592
|
}
|
|
1562
|
-
# line
|
|
1593
|
+
# line 1594 "vm.inc"
|
|
1563
1594
|
# undef NAME_OF_CURRENT_INSN
|
|
1564
1595
|
|
|
1565
1596
|
/* ### Instruction trailers. ### */
|
|
@@ -1593,11 +1624,11 @@ INSN_ENTRY(dup)
|
|
|
1593
1624
|
|
|
1594
1625
|
/* ### Here we do the instruction body. ### */
|
|
1595
1626
|
# define NAME_OF_CURRENT_INSN dup
|
|
1596
|
-
# line
|
|
1627
|
+
# line 594 "insns.def"
|
|
1597
1628
|
{
|
|
1598
1629
|
val1 = val2 = val;
|
|
1599
1630
|
}
|
|
1600
|
-
# line
|
|
1631
|
+
# line 1632 "vm.inc"
|
|
1601
1632
|
# undef NAME_OF_CURRENT_INSN
|
|
1602
1633
|
|
|
1603
1634
|
/* ### Instruction trailers. ### */
|
|
@@ -1635,14 +1666,14 @@ INSN_ENTRY(dupn)
|
|
|
1635
1666
|
|
|
1636
1667
|
/* ### Here we do the instruction body. ### */
|
|
1637
1668
|
# define NAME_OF_CURRENT_INSN dupn
|
|
1638
|
-
# line
|
|
1669
|
+
# line 605 "insns.def"
|
|
1639
1670
|
{
|
|
1640
1671
|
void *dst = GET_SP();
|
|
1641
1672
|
void *src = STACK_ADDR_FROM_TOP(n);
|
|
1642
1673
|
|
|
1643
1674
|
MEMCPY(dst, src, VALUE, n);
|
|
1644
1675
|
}
|
|
1645
|
-
# line
|
|
1676
|
+
# line 1677 "vm.inc"
|
|
1646
1677
|
# undef NAME_OF_CURRENT_INSN
|
|
1647
1678
|
|
|
1648
1679
|
/* ### Instruction trailers. ### */
|
|
@@ -1705,7 +1736,7 @@ INSN_ENTRY(opt_reverse)
|
|
|
1705
1736
|
|
|
1706
1737
|
/* ### Here we do the instruction body. ### */
|
|
1707
1738
|
# define NAME_OF_CURRENT_INSN opt_reverse
|
|
1708
|
-
# line
|
|
1739
|
+
# line 629 "insns.def"
|
|
1709
1740
|
{
|
|
1710
1741
|
rb_num_t i;
|
|
1711
1742
|
VALUE *sp = STACK_ADDR_FROM_TOP(n);
|
|
@@ -1717,7 +1748,7 @@ INSN_ENTRY(opt_reverse)
|
|
|
1717
1748
|
TOPN(i) = v0;
|
|
1718
1749
|
}
|
|
1719
1750
|
}
|
|
1720
|
-
# line
|
|
1751
|
+
# line 1752 "vm.inc"
|
|
1721
1752
|
# undef NAME_OF_CURRENT_INSN
|
|
1722
1753
|
|
|
1723
1754
|
/* ### Instruction trailers. ### */
|
|
@@ -1750,11 +1781,11 @@ INSN_ENTRY(topn)
|
|
|
1750
1781
|
|
|
1751
1782
|
/* ### Here we do the instruction body. ### */
|
|
1752
1783
|
# define NAME_OF_CURRENT_INSN topn
|
|
1753
|
-
# line
|
|
1784
|
+
# line 659 "insns.def"
|
|
1754
1785
|
{
|
|
1755
1786
|
val = TOPN(n);
|
|
1756
1787
|
}
|
|
1757
|
-
# line
|
|
1788
|
+
# line 1789 "vm.inc"
|
|
1758
1789
|
# undef NAME_OF_CURRENT_INSN
|
|
1759
1790
|
|
|
1760
1791
|
/* ### Instruction trailers. ### */
|
|
@@ -1791,11 +1822,11 @@ INSN_ENTRY(setn)
|
|
|
1791
1822
|
|
|
1792
1823
|
/* ### Here we do the instruction body. ### */
|
|
1793
1824
|
# define NAME_OF_CURRENT_INSN setn
|
|
1794
|
-
# line
|
|
1825
|
+
# line 670 "insns.def"
|
|
1795
1826
|
{
|
|
1796
1827
|
TOPN(n) = val;
|
|
1797
1828
|
}
|
|
1798
|
-
# line
|
|
1829
|
+
# line 1830 "vm.inc"
|
|
1799
1830
|
# undef NAME_OF_CURRENT_INSN
|
|
1800
1831
|
|
|
1801
1832
|
/* ### Instruction trailers. ### */
|
|
@@ -1863,14 +1894,14 @@ INSN_ENTRY(defined)
|
|
|
1863
1894
|
|
|
1864
1895
|
/* ### Here we do the instruction body. ### */
|
|
1865
1896
|
# define NAME_OF_CURRENT_INSN defined
|
|
1866
|
-
# line
|
|
1897
|
+
# line 696 "insns.def"
|
|
1867
1898
|
{
|
|
1868
1899
|
val = Qnil;
|
|
1869
1900
|
if (vm_defined(ec, GET_CFP(), op_type, obj, v)) {
|
|
1870
1901
|
val = pushval;
|
|
1871
1902
|
}
|
|
1872
1903
|
}
|
|
1873
|
-
# line
|
|
1904
|
+
# line 1905 "vm.inc"
|
|
1874
1905
|
# undef NAME_OF_CURRENT_INSN
|
|
1875
1906
|
|
|
1876
1907
|
/* ### Instruction trailers. ### */
|
|
@@ -1911,14 +1942,14 @@ INSN_ENTRY(definedivar)
|
|
|
1911
1942
|
|
|
1912
1943
|
/* ### Here we do the instruction body. ### */
|
|
1913
1944
|
# define NAME_OF_CURRENT_INSN definedivar
|
|
1914
|
-
# line
|
|
1945
|
+
# line 710 "insns.def"
|
|
1915
1946
|
{
|
|
1916
1947
|
val = Qnil;
|
|
1917
1948
|
if (vm_getivar(GET_SELF(), id, GET_ISEQ(), ic, NULL, FALSE, Qundef) != Qundef) {
|
|
1918
1949
|
val = pushval;
|
|
1919
1950
|
}
|
|
1920
1951
|
}
|
|
1921
|
-
# line
|
|
1952
|
+
# line 1953 "vm.inc"
|
|
1922
1953
|
# undef NAME_OF_CURRENT_INSN
|
|
1923
1954
|
|
|
1924
1955
|
/* ### Instruction trailers. ### */
|
|
@@ -1957,11 +1988,11 @@ INSN_ENTRY(checkmatch)
|
|
|
1957
1988
|
|
|
1958
1989
|
/* ### Here we do the instruction body. ### */
|
|
1959
1990
|
# define NAME_OF_CURRENT_INSN checkmatch
|
|
1960
|
-
# line
|
|
1991
|
+
# line 730 "insns.def"
|
|
1961
1992
|
{
|
|
1962
1993
|
result = vm_check_match(ec, target, pattern, flag);
|
|
1963
1994
|
}
|
|
1964
|
-
# line
|
|
1995
|
+
# line 1996 "vm.inc"
|
|
1965
1996
|
# undef NAME_OF_CURRENT_INSN
|
|
1966
1997
|
|
|
1967
1998
|
/* ### Instruction trailers. ### */
|
|
@@ -2000,11 +2031,11 @@ INSN_ENTRY(checkkeyword)
|
|
|
2000
2031
|
|
|
2001
2032
|
/* ### Here we do the instruction body. ### */
|
|
2002
2033
|
# define NAME_OF_CURRENT_INSN checkkeyword
|
|
2003
|
-
# line
|
|
2034
|
+
# line 740 "insns.def"
|
|
2004
2035
|
{
|
|
2005
2036
|
ret = vm_check_keyword(kw_bits_index, keyword_index, GET_EP());
|
|
2006
2037
|
}
|
|
2007
|
-
# line
|
|
2038
|
+
# line 2039 "vm.inc"
|
|
2008
2039
|
# undef NAME_OF_CURRENT_INSN
|
|
2009
2040
|
|
|
2010
2041
|
/* ### Instruction trailers. ### */
|
|
@@ -2042,11 +2073,11 @@ INSN_ENTRY(checktype)
|
|
|
2042
2073
|
|
|
2043
2074
|
/* ### Here we do the instruction body. ### */
|
|
2044
2075
|
# define NAME_OF_CURRENT_INSN checktype
|
|
2045
|
-
# line
|
|
2076
|
+
# line 750 "insns.def"
|
|
2046
2077
|
{
|
|
2047
2078
|
ret = RBOOL(TYPE(val) == (int)type);
|
|
2048
2079
|
}
|
|
2049
|
-
# line
|
|
2080
|
+
# line 2081 "vm.inc"
|
|
2050
2081
|
# undef NAME_OF_CURRENT_INSN
|
|
2051
2082
|
|
|
2052
2083
|
/* ### Instruction trailers. ### */
|
|
@@ -2090,7 +2121,7 @@ INSN_ENTRY(defineclass)
|
|
|
2090
2121
|
|
|
2091
2122
|
/* ### Here we do the instruction body. ### */
|
|
2092
2123
|
# define NAME_OF_CURRENT_INSN defineclass
|
|
2093
|
-
# line
|
|
2124
|
+
# line 766 "insns.def"
|
|
2094
2125
|
{
|
|
2095
2126
|
VALUE klass = vm_find_or_create_class_by_id(id, flags, cbase, super);
|
|
2096
2127
|
|
|
@@ -2106,7 +2137,7 @@ INSN_ENTRY(defineclass)
|
|
|
2106
2137
|
RESTORE_REGS();
|
|
2107
2138
|
NEXT_INSN();
|
|
2108
2139
|
}
|
|
2109
|
-
# line
|
|
2140
|
+
# line 2141 "vm.inc"
|
|
2110
2141
|
# undef NAME_OF_CURRENT_INSN
|
|
2111
2142
|
|
|
2112
2143
|
/* ### Instruction trailers. ### */
|
|
@@ -2142,11 +2173,11 @@ INSN_ENTRY(definemethod)
|
|
|
2142
2173
|
|
|
2143
2174
|
/* ### Here we do the instruction body. ### */
|
|
2144
2175
|
# define NAME_OF_CURRENT_INSN definemethod
|
|
2145
|
-
# line
|
|
2176
|
+
# line 787 "insns.def"
|
|
2146
2177
|
{
|
|
2147
2178
|
vm_define_method(ec, Qnil, id, (VALUE)iseq, FALSE);
|
|
2148
2179
|
}
|
|
2149
|
-
# line
|
|
2180
|
+
# line 2181 "vm.inc"
|
|
2150
2181
|
# undef NAME_OF_CURRENT_INSN
|
|
2151
2182
|
|
|
2152
2183
|
/* ### Instruction trailers. ### */
|
|
@@ -2182,11 +2213,11 @@ INSN_ENTRY(definesmethod)
|
|
|
2182
2213
|
|
|
2183
2214
|
/* ### Here we do the instruction body. ### */
|
|
2184
2215
|
# define NAME_OF_CURRENT_INSN definesmethod
|
|
2185
|
-
# line
|
|
2216
|
+
# line 796 "insns.def"
|
|
2186
2217
|
{
|
|
2187
2218
|
vm_define_method(ec, obj, id, (VALUE)iseq, TRUE);
|
|
2188
2219
|
}
|
|
2189
|
-
# line
|
|
2220
|
+
# line 2221 "vm.inc"
|
|
2190
2221
|
# undef NAME_OF_CURRENT_INSN
|
|
2191
2222
|
|
|
2192
2223
|
/* ### Instruction trailers. ### */
|
|
@@ -2222,7 +2253,7 @@ INSN_ENTRY(send)
|
|
|
2222
2253
|
|
|
2223
2254
|
/* ### Here we do the instruction body. ### */
|
|
2224
2255
|
# define NAME_OF_CURRENT_INSN send
|
|
2225
|
-
# line
|
|
2256
|
+
# line 812 "insns.def"
|
|
2226
2257
|
{
|
|
2227
2258
|
VALUE bh = vm_caller_setup_arg_block(ec, GET_CFP(), cd->ci, blockiseq, false);
|
|
2228
2259
|
val = vm_sendish(ec, GET_CFP(), cd, bh, mexp_search_method);
|
|
@@ -2233,7 +2264,7 @@ INSN_ENTRY(send)
|
|
|
2233
2264
|
NEXT_INSN();
|
|
2234
2265
|
}
|
|
2235
2266
|
}
|
|
2236
|
-
# line
|
|
2267
|
+
# line 2268 "vm.inc"
|
|
2237
2268
|
# undef NAME_OF_CURRENT_INSN
|
|
2238
2269
|
|
|
2239
2270
|
/* ### Instruction trailers. ### */
|
|
@@ -2268,7 +2299,7 @@ INSN_ENTRY(opt_send_without_block)
|
|
|
2268
2299
|
|
|
2269
2300
|
/* ### Here we do the instruction body. ### */
|
|
2270
2301
|
# define NAME_OF_CURRENT_INSN opt_send_without_block
|
|
2271
|
-
# line
|
|
2302
|
+
# line 832 "insns.def"
|
|
2272
2303
|
{
|
|
2273
2304
|
VALUE bh = VM_BLOCK_HANDLER_NONE;
|
|
2274
2305
|
val = vm_sendish(ec, GET_CFP(), cd, bh, mexp_search_method);
|
|
@@ -2279,7 +2310,7 @@ INSN_ENTRY(opt_send_without_block)
|
|
|
2279
2310
|
NEXT_INSN();
|
|
2280
2311
|
}
|
|
2281
2312
|
}
|
|
2282
|
-
# line
|
|
2313
|
+
# line 2314 "vm.inc"
|
|
2283
2314
|
# undef NAME_OF_CURRENT_INSN
|
|
2284
2315
|
|
|
2285
2316
|
/* ### Instruction trailers. ### */
|
|
@@ -2314,7 +2345,7 @@ INSN_ENTRY(objtostring)
|
|
|
2314
2345
|
|
|
2315
2346
|
/* ### Here we do the instruction body. ### */
|
|
2316
2347
|
# define NAME_OF_CURRENT_INSN objtostring
|
|
2317
|
-
# line
|
|
2348
|
+
# line 850 "insns.def"
|
|
2318
2349
|
{
|
|
2319
2350
|
val = vm_objtostring(GET_ISEQ(), recv, cd);
|
|
2320
2351
|
|
|
@@ -2322,7 +2353,7 @@ INSN_ENTRY(objtostring)
|
|
|
2322
2353
|
CALL_SIMPLE_METHOD();
|
|
2323
2354
|
}
|
|
2324
2355
|
}
|
|
2325
|
-
# line
|
|
2356
|
+
# line 2357 "vm.inc"
|
|
2326
2357
|
# undef NAME_OF_CURRENT_INSN
|
|
2327
2358
|
|
|
2328
2359
|
/* ### Instruction trailers. ### */
|
|
@@ -2361,7 +2392,7 @@ INSN_ENTRY(opt_str_freeze)
|
|
|
2361
2392
|
|
|
2362
2393
|
/* ### Here we do the instruction body. ### */
|
|
2363
2394
|
# define NAME_OF_CURRENT_INSN opt_str_freeze
|
|
2364
|
-
# line
|
|
2395
|
+
# line 863 "insns.def"
|
|
2365
2396
|
{
|
|
2366
2397
|
val = vm_opt_str_freeze(str, BOP_FREEZE, idFreeze);
|
|
2367
2398
|
|
|
@@ -2370,7 +2401,7 @@ INSN_ENTRY(opt_str_freeze)
|
|
|
2370
2401
|
CALL_SIMPLE_METHOD();
|
|
2371
2402
|
}
|
|
2372
2403
|
}
|
|
2373
|
-
# line
|
|
2404
|
+
# line 2405 "vm.inc"
|
|
2374
2405
|
# undef NAME_OF_CURRENT_INSN
|
|
2375
2406
|
|
|
2376
2407
|
/* ### Instruction trailers. ### */
|
|
@@ -2408,7 +2439,7 @@ INSN_ENTRY(opt_nil_p)
|
|
|
2408
2439
|
|
|
2409
2440
|
/* ### Here we do the instruction body. ### */
|
|
2410
2441
|
# define NAME_OF_CURRENT_INSN opt_nil_p
|
|
2411
|
-
# line
|
|
2442
|
+
# line 878 "insns.def"
|
|
2412
2443
|
{
|
|
2413
2444
|
val = vm_opt_nil_p(GET_ISEQ(), cd, recv);
|
|
2414
2445
|
|
|
@@ -2416,7 +2447,7 @@ INSN_ENTRY(opt_nil_p)
|
|
|
2416
2447
|
CALL_SIMPLE_METHOD();
|
|
2417
2448
|
}
|
|
2418
2449
|
}
|
|
2419
|
-
# line
|
|
2450
|
+
# line 2451 "vm.inc"
|
|
2420
2451
|
# undef NAME_OF_CURRENT_INSN
|
|
2421
2452
|
|
|
2422
2453
|
/* ### Instruction trailers. ### */
|
|
@@ -2455,7 +2486,7 @@ INSN_ENTRY(opt_str_uminus)
|
|
|
2455
2486
|
|
|
2456
2487
|
/* ### Here we do the instruction body. ### */
|
|
2457
2488
|
# define NAME_OF_CURRENT_INSN opt_str_uminus
|
|
2458
|
-
# line
|
|
2489
|
+
# line 891 "insns.def"
|
|
2459
2490
|
{
|
|
2460
2491
|
val = vm_opt_str_freeze(str, BOP_UMINUS, idUMinus);
|
|
2461
2492
|
|
|
@@ -2464,7 +2495,7 @@ INSN_ENTRY(opt_str_uminus)
|
|
|
2464
2495
|
CALL_SIMPLE_METHOD();
|
|
2465
2496
|
}
|
|
2466
2497
|
}
|
|
2467
|
-
# line
|
|
2498
|
+
# line 2499 "vm.inc"
|
|
2468
2499
|
# undef NAME_OF_CURRENT_INSN
|
|
2469
2500
|
|
|
2470
2501
|
/* ### Instruction trailers. ### */
|
|
@@ -2503,7 +2534,7 @@ INSN_ENTRY(opt_newarray_send)
|
|
|
2503
2534
|
|
|
2504
2535
|
/* ### Here we do the instruction body. ### */
|
|
2505
2536
|
# define NAME_OF_CURRENT_INSN opt_newarray_send
|
|
2506
|
-
# line
|
|
2537
|
+
# line 912 "insns.def"
|
|
2507
2538
|
{
|
|
2508
2539
|
switch(method) {
|
|
2509
2540
|
case idHash:
|
|
@@ -2519,7 +2550,7 @@ INSN_ENTRY(opt_newarray_send)
|
|
|
2519
2550
|
rb_bug("unreachable");
|
|
2520
2551
|
}
|
|
2521
2552
|
}
|
|
2522
|
-
# line
|
|
2553
|
+
# line 2554 "vm.inc"
|
|
2523
2554
|
# undef NAME_OF_CURRENT_INSN
|
|
2524
2555
|
|
|
2525
2556
|
/* ### Instruction trailers. ### */
|
|
@@ -2559,7 +2590,7 @@ INSN_ENTRY(invokesuper)
|
|
|
2559
2590
|
|
|
2560
2591
|
/* ### Here we do the instruction body. ### */
|
|
2561
2592
|
# define NAME_OF_CURRENT_INSN invokesuper
|
|
2562
|
-
# line
|
|
2593
|
+
# line 936 "insns.def"
|
|
2563
2594
|
{
|
|
2564
2595
|
VALUE bh = vm_caller_setup_arg_block(ec, GET_CFP(), cd->ci, blockiseq, true);
|
|
2565
2596
|
val = vm_sendish(ec, GET_CFP(), cd, bh, mexp_search_super);
|
|
@@ -2570,7 +2601,7 @@ INSN_ENTRY(invokesuper)
|
|
|
2570
2601
|
NEXT_INSN();
|
|
2571
2602
|
}
|
|
2572
2603
|
}
|
|
2573
|
-
# line
|
|
2604
|
+
# line 2605 "vm.inc"
|
|
2574
2605
|
# undef NAME_OF_CURRENT_INSN
|
|
2575
2606
|
|
|
2576
2607
|
/* ### Instruction trailers. ### */
|
|
@@ -2605,7 +2636,7 @@ INSN_ENTRY(invokeblock)
|
|
|
2605
2636
|
|
|
2606
2637
|
/* ### Here we do the instruction body. ### */
|
|
2607
2638
|
# define NAME_OF_CURRENT_INSN invokeblock
|
|
2608
|
-
# line
|
|
2639
|
+
# line 956 "insns.def"
|
|
2609
2640
|
{
|
|
2610
2641
|
VALUE bh = VM_BLOCK_HANDLER_NONE;
|
|
2611
2642
|
val = vm_sendish(ec, GET_CFP(), cd, bh, mexp_search_invokeblock);
|
|
@@ -2616,7 +2647,7 @@ INSN_ENTRY(invokeblock)
|
|
|
2616
2647
|
NEXT_INSN();
|
|
2617
2648
|
}
|
|
2618
2649
|
}
|
|
2619
|
-
# line
|
|
2650
|
+
# line 2651 "vm.inc"
|
|
2620
2651
|
# undef NAME_OF_CURRENT_INSN
|
|
2621
2652
|
|
|
2622
2653
|
/* ### Instruction trailers. ### */
|
|
@@ -2649,7 +2680,7 @@ INSN_ENTRY(leave)
|
|
|
2649
2680
|
|
|
2650
2681
|
/* ### Here we do the instruction body. ### */
|
|
2651
2682
|
# define NAME_OF_CURRENT_INSN leave
|
|
2652
|
-
# line
|
|
2683
|
+
# line 978 "insns.def"
|
|
2653
2684
|
{
|
|
2654
2685
|
if (OPT_CHECKED_RUN) {
|
|
2655
2686
|
const VALUE *const bp = vm_base_ptr(GET_CFP());
|
|
@@ -2670,7 +2701,7 @@ INSN_ENTRY(leave)
|
|
|
2670
2701
|
RESTORE_REGS();
|
|
2671
2702
|
}
|
|
2672
2703
|
}
|
|
2673
|
-
# line
|
|
2704
|
+
# line 2705 "vm.inc"
|
|
2674
2705
|
# undef NAME_OF_CURRENT_INSN
|
|
2675
2706
|
|
|
2676
2707
|
/* ### Instruction trailers. ### */
|
|
@@ -2705,13 +2736,13 @@ INSN_ENTRY(throw)
|
|
|
2705
2736
|
|
|
2706
2737
|
/* ### Here we do the instruction body. ### */
|
|
2707
2738
|
# define NAME_OF_CURRENT_INSN throw
|
|
2708
|
-
# line
|
|
2739
|
+
# line 1011 "insns.def"
|
|
2709
2740
|
{
|
|
2710
2741
|
val = vm_throw(ec, GET_CFP(), throw_state, throwobj);
|
|
2711
2742
|
THROW_EXCEPTION(val);
|
|
2712
2743
|
/* unreachable */
|
|
2713
2744
|
}
|
|
2714
|
-
# line
|
|
2745
|
+
# line 2746 "vm.inc"
|
|
2715
2746
|
# undef NAME_OF_CURRENT_INSN
|
|
2716
2747
|
|
|
2717
2748
|
/* ### Instruction trailers. ### */
|
|
@@ -2747,12 +2778,12 @@ INSN_ENTRY(jump)
|
|
|
2747
2778
|
|
|
2748
2779
|
/* ### Here we do the instruction body. ### */
|
|
2749
2780
|
# define NAME_OF_CURRENT_INSN jump
|
|
2750
|
-
# line
|
|
2781
|
+
# line 1029 "insns.def"
|
|
2751
2782
|
{
|
|
2752
2783
|
RUBY_VM_CHECK_INTS(ec);
|
|
2753
2784
|
JUMP(dst);
|
|
2754
2785
|
}
|
|
2755
|
-
# line
|
|
2786
|
+
# line 2787 "vm.inc"
|
|
2756
2787
|
# undef NAME_OF_CURRENT_INSN
|
|
2757
2788
|
|
|
2758
2789
|
/* ### Instruction trailers. ### */
|
|
@@ -2786,14 +2817,14 @@ INSN_ENTRY(branchif)
|
|
|
2786
2817
|
|
|
2787
2818
|
/* ### Here we do the instruction body. ### */
|
|
2788
2819
|
# define NAME_OF_CURRENT_INSN branchif
|
|
2789
|
-
# line
|
|
2820
|
+
# line 1042 "insns.def"
|
|
2790
2821
|
{
|
|
2791
2822
|
if (RTEST(val)) {
|
|
2792
2823
|
RUBY_VM_CHECK_INTS(ec);
|
|
2793
2824
|
JUMP(dst);
|
|
2794
2825
|
}
|
|
2795
2826
|
}
|
|
2796
|
-
# line
|
|
2827
|
+
# line 2828 "vm.inc"
|
|
2797
2828
|
# undef NAME_OF_CURRENT_INSN
|
|
2798
2829
|
|
|
2799
2830
|
/* ### Instruction trailers. ### */
|
|
@@ -2827,14 +2858,14 @@ INSN_ENTRY(branchunless)
|
|
|
2827
2858
|
|
|
2828
2859
|
/* ### Here we do the instruction body. ### */
|
|
2829
2860
|
# define NAME_OF_CURRENT_INSN branchunless
|
|
2830
|
-
# line
|
|
2861
|
+
# line 1057 "insns.def"
|
|
2831
2862
|
{
|
|
2832
2863
|
if (!RTEST(val)) {
|
|
2833
2864
|
RUBY_VM_CHECK_INTS(ec);
|
|
2834
2865
|
JUMP(dst);
|
|
2835
2866
|
}
|
|
2836
2867
|
}
|
|
2837
|
-
# line
|
|
2868
|
+
# line 2869 "vm.inc"
|
|
2838
2869
|
# undef NAME_OF_CURRENT_INSN
|
|
2839
2870
|
|
|
2840
2871
|
/* ### Instruction trailers. ### */
|
|
@@ -2868,14 +2899,14 @@ INSN_ENTRY(branchnil)
|
|
|
2868
2899
|
|
|
2869
2900
|
/* ### Here we do the instruction body. ### */
|
|
2870
2901
|
# define NAME_OF_CURRENT_INSN branchnil
|
|
2871
|
-
# line
|
|
2902
|
+
# line 1072 "insns.def"
|
|
2872
2903
|
{
|
|
2873
2904
|
if (NIL_P(val)) {
|
|
2874
2905
|
RUBY_VM_CHECK_INTS(ec);
|
|
2875
2906
|
JUMP(dst);
|
|
2876
2907
|
}
|
|
2877
2908
|
}
|
|
2878
|
-
# line
|
|
2909
|
+
# line 2910 "vm.inc"
|
|
2879
2910
|
# undef NAME_OF_CURRENT_INSN
|
|
2880
2911
|
|
|
2881
2912
|
/* ### Instruction trailers. ### */
|
|
@@ -2912,11 +2943,11 @@ INSN_ENTRY(once)
|
|
|
2912
2943
|
|
|
2913
2944
|
/* ### Here we do the instruction body. ### */
|
|
2914
2945
|
# define NAME_OF_CURRENT_INSN once
|
|
2915
|
-
# line
|
|
2946
|
+
# line 1089 "insns.def"
|
|
2916
2947
|
{
|
|
2917
2948
|
val = vm_once_dispatch(ec, iseq, ise);
|
|
2918
2949
|
}
|
|
2919
|
-
# line
|
|
2950
|
+
# line 2951 "vm.inc"
|
|
2920
2951
|
# undef NAME_OF_CURRENT_INSN
|
|
2921
2952
|
|
|
2922
2953
|
/* ### Instruction trailers. ### */
|
|
@@ -2952,7 +2983,7 @@ INSN_ENTRY(opt_case_dispatch)
|
|
|
2952
2983
|
|
|
2953
2984
|
/* ### Here we do the instruction body. ### */
|
|
2954
2985
|
# define NAME_OF_CURRENT_INSN opt_case_dispatch
|
|
2955
|
-
# line
|
|
2986
|
+
# line 1100 "insns.def"
|
|
2956
2987
|
{
|
|
2957
2988
|
OFFSET dst = vm_case_dispatch(hash, else_offset, key);
|
|
2958
2989
|
|
|
@@ -2960,7 +2991,7 @@ INSN_ENTRY(opt_case_dispatch)
|
|
|
2960
2991
|
JUMP(dst);
|
|
2961
2992
|
}
|
|
2962
2993
|
}
|
|
2963
|
-
# line
|
|
2994
|
+
# line 2995 "vm.inc"
|
|
2964
2995
|
# undef NAME_OF_CURRENT_INSN
|
|
2965
2996
|
|
|
2966
2997
|
/* ### Instruction trailers. ### */
|
|
@@ -2996,7 +3027,7 @@ INSN_ENTRY(opt_plus)
|
|
|
2996
3027
|
|
|
2997
3028
|
/* ### Here we do the instruction body. ### */
|
|
2998
3029
|
# define NAME_OF_CURRENT_INSN opt_plus
|
|
2999
|
-
# line
|
|
3030
|
+
# line 1116 "insns.def"
|
|
3000
3031
|
{
|
|
3001
3032
|
val = vm_opt_plus(recv, obj);
|
|
3002
3033
|
|
|
@@ -3004,7 +3035,7 @@ INSN_ENTRY(opt_plus)
|
|
|
3004
3035
|
CALL_SIMPLE_METHOD();
|
|
3005
3036
|
}
|
|
3006
3037
|
}
|
|
3007
|
-
# line
|
|
3038
|
+
# line 3039 "vm.inc"
|
|
3008
3039
|
# undef NAME_OF_CURRENT_INSN
|
|
3009
3040
|
|
|
3010
3041
|
/* ### Instruction trailers. ### */
|
|
@@ -3043,7 +3074,7 @@ INSN_ENTRY(opt_minus)
|
|
|
3043
3074
|
|
|
3044
3075
|
/* ### Here we do the instruction body. ### */
|
|
3045
3076
|
# define NAME_OF_CURRENT_INSN opt_minus
|
|
3046
|
-
# line
|
|
3077
|
+
# line 1130 "insns.def"
|
|
3047
3078
|
{
|
|
3048
3079
|
val = vm_opt_minus(recv, obj);
|
|
3049
3080
|
|
|
@@ -3051,7 +3082,7 @@ INSN_ENTRY(opt_minus)
|
|
|
3051
3082
|
CALL_SIMPLE_METHOD();
|
|
3052
3083
|
}
|
|
3053
3084
|
}
|
|
3054
|
-
# line
|
|
3085
|
+
# line 3086 "vm.inc"
|
|
3055
3086
|
# undef NAME_OF_CURRENT_INSN
|
|
3056
3087
|
|
|
3057
3088
|
/* ### Instruction trailers. ### */
|
|
@@ -3090,7 +3121,7 @@ INSN_ENTRY(opt_mult)
|
|
|
3090
3121
|
|
|
3091
3122
|
/* ### Here we do the instruction body. ### */
|
|
3092
3123
|
# define NAME_OF_CURRENT_INSN opt_mult
|
|
3093
|
-
# line
|
|
3124
|
+
# line 1144 "insns.def"
|
|
3094
3125
|
{
|
|
3095
3126
|
val = vm_opt_mult(recv, obj);
|
|
3096
3127
|
|
|
@@ -3098,7 +3129,7 @@ INSN_ENTRY(opt_mult)
|
|
|
3098
3129
|
CALL_SIMPLE_METHOD();
|
|
3099
3130
|
}
|
|
3100
3131
|
}
|
|
3101
|
-
# line
|
|
3132
|
+
# line 3133 "vm.inc"
|
|
3102
3133
|
# undef NAME_OF_CURRENT_INSN
|
|
3103
3134
|
|
|
3104
3135
|
/* ### Instruction trailers. ### */
|
|
@@ -3137,7 +3168,7 @@ INSN_ENTRY(opt_div)
|
|
|
3137
3168
|
|
|
3138
3169
|
/* ### Here we do the instruction body. ### */
|
|
3139
3170
|
# define NAME_OF_CURRENT_INSN opt_div
|
|
3140
|
-
# line
|
|
3171
|
+
# line 1161 "insns.def"
|
|
3141
3172
|
{
|
|
3142
3173
|
val = vm_opt_div(recv, obj);
|
|
3143
3174
|
|
|
@@ -3145,7 +3176,7 @@ INSN_ENTRY(opt_div)
|
|
|
3145
3176
|
CALL_SIMPLE_METHOD();
|
|
3146
3177
|
}
|
|
3147
3178
|
}
|
|
3148
|
-
# line
|
|
3179
|
+
# line 3180 "vm.inc"
|
|
3149
3180
|
# undef NAME_OF_CURRENT_INSN
|
|
3150
3181
|
|
|
3151
3182
|
/* ### Instruction trailers. ### */
|
|
@@ -3184,7 +3215,7 @@ INSN_ENTRY(opt_mod)
|
|
|
3184
3215
|
|
|
3185
3216
|
/* ### Here we do the instruction body. ### */
|
|
3186
3217
|
# define NAME_OF_CURRENT_INSN opt_mod
|
|
3187
|
-
# line
|
|
3218
|
+
# line 1177 "insns.def"
|
|
3188
3219
|
{
|
|
3189
3220
|
val = vm_opt_mod(recv, obj);
|
|
3190
3221
|
|
|
@@ -3192,7 +3223,7 @@ INSN_ENTRY(opt_mod)
|
|
|
3192
3223
|
CALL_SIMPLE_METHOD();
|
|
3193
3224
|
}
|
|
3194
3225
|
}
|
|
3195
|
-
# line
|
|
3226
|
+
# line 3227 "vm.inc"
|
|
3196
3227
|
# undef NAME_OF_CURRENT_INSN
|
|
3197
3228
|
|
|
3198
3229
|
/* ### Instruction trailers. ### */
|
|
@@ -3231,7 +3262,7 @@ INSN_ENTRY(opt_eq)
|
|
|
3231
3262
|
|
|
3232
3263
|
/* ### Here we do the instruction body. ### */
|
|
3233
3264
|
# define NAME_OF_CURRENT_INSN opt_eq
|
|
3234
|
-
# line
|
|
3265
|
+
# line 1191 "insns.def"
|
|
3235
3266
|
{
|
|
3236
3267
|
val = opt_equality(GET_ISEQ(), recv, obj, cd);
|
|
3237
3268
|
|
|
@@ -3239,7 +3270,7 @@ INSN_ENTRY(opt_eq)
|
|
|
3239
3270
|
CALL_SIMPLE_METHOD();
|
|
3240
3271
|
}
|
|
3241
3272
|
}
|
|
3242
|
-
# line
|
|
3273
|
+
# line 3274 "vm.inc"
|
|
3243
3274
|
# undef NAME_OF_CURRENT_INSN
|
|
3244
3275
|
|
|
3245
3276
|
/* ### Instruction trailers. ### */
|
|
@@ -3280,7 +3311,7 @@ INSN_ENTRY(opt_neq)
|
|
|
3280
3311
|
|
|
3281
3312
|
/* ### Here we do the instruction body. ### */
|
|
3282
3313
|
# define NAME_OF_CURRENT_INSN opt_neq
|
|
3283
|
-
# line
|
|
3314
|
+
# line 1205 "insns.def"
|
|
3284
3315
|
{
|
|
3285
3316
|
val = vm_opt_neq(GET_ISEQ(), cd, cd_eq, recv, obj);
|
|
3286
3317
|
|
|
@@ -3288,7 +3319,7 @@ INSN_ENTRY(opt_neq)
|
|
|
3288
3319
|
CALL_SIMPLE_METHOD();
|
|
3289
3320
|
}
|
|
3290
3321
|
}
|
|
3291
|
-
# line
|
|
3322
|
+
# line 3323 "vm.inc"
|
|
3292
3323
|
# undef NAME_OF_CURRENT_INSN
|
|
3293
3324
|
|
|
3294
3325
|
/* ### Instruction trailers. ### */
|
|
@@ -3327,7 +3358,7 @@ INSN_ENTRY(opt_lt)
|
|
|
3327
3358
|
|
|
3328
3359
|
/* ### Here we do the instruction body. ### */
|
|
3329
3360
|
# define NAME_OF_CURRENT_INSN opt_lt
|
|
3330
|
-
# line
|
|
3361
|
+
# line 1219 "insns.def"
|
|
3331
3362
|
{
|
|
3332
3363
|
val = vm_opt_lt(recv, obj);
|
|
3333
3364
|
|
|
@@ -3335,7 +3366,7 @@ INSN_ENTRY(opt_lt)
|
|
|
3335
3366
|
CALL_SIMPLE_METHOD();
|
|
3336
3367
|
}
|
|
3337
3368
|
}
|
|
3338
|
-
# line
|
|
3369
|
+
# line 3370 "vm.inc"
|
|
3339
3370
|
# undef NAME_OF_CURRENT_INSN
|
|
3340
3371
|
|
|
3341
3372
|
/* ### Instruction trailers. ### */
|
|
@@ -3374,7 +3405,7 @@ INSN_ENTRY(opt_le)
|
|
|
3374
3405
|
|
|
3375
3406
|
/* ### Here we do the instruction body. ### */
|
|
3376
3407
|
# define NAME_OF_CURRENT_INSN opt_le
|
|
3377
|
-
# line
|
|
3408
|
+
# line 1233 "insns.def"
|
|
3378
3409
|
{
|
|
3379
3410
|
val = vm_opt_le(recv, obj);
|
|
3380
3411
|
|
|
@@ -3382,7 +3413,7 @@ INSN_ENTRY(opt_le)
|
|
|
3382
3413
|
CALL_SIMPLE_METHOD();
|
|
3383
3414
|
}
|
|
3384
3415
|
}
|
|
3385
|
-
# line
|
|
3416
|
+
# line 3417 "vm.inc"
|
|
3386
3417
|
# undef NAME_OF_CURRENT_INSN
|
|
3387
3418
|
|
|
3388
3419
|
/* ### Instruction trailers. ### */
|
|
@@ -3421,7 +3452,7 @@ INSN_ENTRY(opt_gt)
|
|
|
3421
3452
|
|
|
3422
3453
|
/* ### Here we do the instruction body. ### */
|
|
3423
3454
|
# define NAME_OF_CURRENT_INSN opt_gt
|
|
3424
|
-
# line
|
|
3455
|
+
# line 1247 "insns.def"
|
|
3425
3456
|
{
|
|
3426
3457
|
val = vm_opt_gt(recv, obj);
|
|
3427
3458
|
|
|
@@ -3429,7 +3460,7 @@ INSN_ENTRY(opt_gt)
|
|
|
3429
3460
|
CALL_SIMPLE_METHOD();
|
|
3430
3461
|
}
|
|
3431
3462
|
}
|
|
3432
|
-
# line
|
|
3463
|
+
# line 3464 "vm.inc"
|
|
3433
3464
|
# undef NAME_OF_CURRENT_INSN
|
|
3434
3465
|
|
|
3435
3466
|
/* ### Instruction trailers. ### */
|
|
@@ -3468,7 +3499,7 @@ INSN_ENTRY(opt_ge)
|
|
|
3468
3499
|
|
|
3469
3500
|
/* ### Here we do the instruction body. ### */
|
|
3470
3501
|
# define NAME_OF_CURRENT_INSN opt_ge
|
|
3471
|
-
# line
|
|
3502
|
+
# line 1261 "insns.def"
|
|
3472
3503
|
{
|
|
3473
3504
|
val = vm_opt_ge(recv, obj);
|
|
3474
3505
|
|
|
@@ -3476,7 +3507,7 @@ INSN_ENTRY(opt_ge)
|
|
|
3476
3507
|
CALL_SIMPLE_METHOD();
|
|
3477
3508
|
}
|
|
3478
3509
|
}
|
|
3479
|
-
# line
|
|
3510
|
+
# line 3511 "vm.inc"
|
|
3480
3511
|
# undef NAME_OF_CURRENT_INSN
|
|
3481
3512
|
|
|
3482
3513
|
/* ### Instruction trailers. ### */
|
|
@@ -3515,7 +3546,7 @@ INSN_ENTRY(opt_ltlt)
|
|
|
3515
3546
|
|
|
3516
3547
|
/* ### Here we do the instruction body. ### */
|
|
3517
3548
|
# define NAME_OF_CURRENT_INSN opt_ltlt
|
|
3518
|
-
# line
|
|
3549
|
+
# line 1279 "insns.def"
|
|
3519
3550
|
{
|
|
3520
3551
|
val = vm_opt_ltlt(recv, obj);
|
|
3521
3552
|
|
|
@@ -3523,7 +3554,7 @@ INSN_ENTRY(opt_ltlt)
|
|
|
3523
3554
|
CALL_SIMPLE_METHOD();
|
|
3524
3555
|
}
|
|
3525
3556
|
}
|
|
3526
|
-
# line
|
|
3557
|
+
# line 3558 "vm.inc"
|
|
3527
3558
|
# undef NAME_OF_CURRENT_INSN
|
|
3528
3559
|
|
|
3529
3560
|
/* ### Instruction trailers. ### */
|
|
@@ -3562,7 +3593,7 @@ INSN_ENTRY(opt_and)
|
|
|
3562
3593
|
|
|
3563
3594
|
/* ### Here we do the instruction body. ### */
|
|
3564
3595
|
# define NAME_OF_CURRENT_INSN opt_and
|
|
3565
|
-
# line
|
|
3596
|
+
# line 1293 "insns.def"
|
|
3566
3597
|
{
|
|
3567
3598
|
val = vm_opt_and(recv, obj);
|
|
3568
3599
|
|
|
@@ -3570,7 +3601,7 @@ INSN_ENTRY(opt_and)
|
|
|
3570
3601
|
CALL_SIMPLE_METHOD();
|
|
3571
3602
|
}
|
|
3572
3603
|
}
|
|
3573
|
-
# line
|
|
3604
|
+
# line 3605 "vm.inc"
|
|
3574
3605
|
# undef NAME_OF_CURRENT_INSN
|
|
3575
3606
|
|
|
3576
3607
|
/* ### Instruction trailers. ### */
|
|
@@ -3609,7 +3640,7 @@ INSN_ENTRY(opt_or)
|
|
|
3609
3640
|
|
|
3610
3641
|
/* ### Here we do the instruction body. ### */
|
|
3611
3642
|
# define NAME_OF_CURRENT_INSN opt_or
|
|
3612
|
-
# line
|
|
3643
|
+
# line 1307 "insns.def"
|
|
3613
3644
|
{
|
|
3614
3645
|
val = vm_opt_or(recv, obj);
|
|
3615
3646
|
|
|
@@ -3617,7 +3648,7 @@ INSN_ENTRY(opt_or)
|
|
|
3617
3648
|
CALL_SIMPLE_METHOD();
|
|
3618
3649
|
}
|
|
3619
3650
|
}
|
|
3620
|
-
# line
|
|
3651
|
+
# line 3652 "vm.inc"
|
|
3621
3652
|
# undef NAME_OF_CURRENT_INSN
|
|
3622
3653
|
|
|
3623
3654
|
/* ### Instruction trailers. ### */
|
|
@@ -3656,7 +3687,7 @@ INSN_ENTRY(opt_aref)
|
|
|
3656
3687
|
|
|
3657
3688
|
/* ### Here we do the instruction body. ### */
|
|
3658
3689
|
# define NAME_OF_CURRENT_INSN opt_aref
|
|
3659
|
-
# line
|
|
3690
|
+
# line 1326 "insns.def"
|
|
3660
3691
|
{
|
|
3661
3692
|
val = vm_opt_aref(recv, obj);
|
|
3662
3693
|
|
|
@@ -3664,7 +3695,7 @@ INSN_ENTRY(opt_aref)
|
|
|
3664
3695
|
CALL_SIMPLE_METHOD();
|
|
3665
3696
|
}
|
|
3666
3697
|
}
|
|
3667
|
-
# line
|
|
3698
|
+
# line 3699 "vm.inc"
|
|
3668
3699
|
# undef NAME_OF_CURRENT_INSN
|
|
3669
3700
|
|
|
3670
3701
|
/* ### Instruction trailers. ### */
|
|
@@ -3704,7 +3735,7 @@ INSN_ENTRY(opt_aset)
|
|
|
3704
3735
|
|
|
3705
3736
|
/* ### Here we do the instruction body. ### */
|
|
3706
3737
|
# define NAME_OF_CURRENT_INSN opt_aset
|
|
3707
|
-
# line
|
|
3738
|
+
# line 1343 "insns.def"
|
|
3708
3739
|
{
|
|
3709
3740
|
val = vm_opt_aset(recv, obj, set);
|
|
3710
3741
|
|
|
@@ -3712,7 +3743,7 @@ INSN_ENTRY(opt_aset)
|
|
|
3712
3743
|
CALL_SIMPLE_METHOD();
|
|
3713
3744
|
}
|
|
3714
3745
|
}
|
|
3715
|
-
# line
|
|
3746
|
+
# line 3747 "vm.inc"
|
|
3716
3747
|
# undef NAME_OF_CURRENT_INSN
|
|
3717
3748
|
|
|
3718
3749
|
/* ### Instruction trailers. ### */
|
|
@@ -3752,7 +3783,7 @@ INSN_ENTRY(opt_aset_with)
|
|
|
3752
3783
|
|
|
3753
3784
|
/* ### Here we do the instruction body. ### */
|
|
3754
3785
|
# define NAME_OF_CURRENT_INSN opt_aset_with
|
|
3755
|
-
# line
|
|
3786
|
+
# line 1359 "insns.def"
|
|
3756
3787
|
{
|
|
3757
3788
|
VALUE tmp = vm_opt_aset_with(recv, key, val);
|
|
3758
3789
|
|
|
@@ -3765,7 +3796,7 @@ INSN_ENTRY(opt_aset_with)
|
|
|
3765
3796
|
CALL_SIMPLE_METHOD();
|
|
3766
3797
|
}
|
|
3767
3798
|
}
|
|
3768
|
-
# line
|
|
3799
|
+
# line 3800 "vm.inc"
|
|
3769
3800
|
# undef NAME_OF_CURRENT_INSN
|
|
3770
3801
|
|
|
3771
3802
|
/* ### Instruction trailers. ### */
|
|
@@ -3805,7 +3836,7 @@ INSN_ENTRY(opt_aref_with)
|
|
|
3805
3836
|
|
|
3806
3837
|
/* ### Here we do the instruction body. ### */
|
|
3807
3838
|
# define NAME_OF_CURRENT_INSN opt_aref_with
|
|
3808
|
-
# line
|
|
3839
|
+
# line 1380 "insns.def"
|
|
3809
3840
|
{
|
|
3810
3841
|
val = vm_opt_aref_with(recv, key);
|
|
3811
3842
|
|
|
@@ -3814,7 +3845,7 @@ INSN_ENTRY(opt_aref_with)
|
|
|
3814
3845
|
CALL_SIMPLE_METHOD();
|
|
3815
3846
|
}
|
|
3816
3847
|
}
|
|
3817
|
-
# line
|
|
3848
|
+
# line 3849 "vm.inc"
|
|
3818
3849
|
# undef NAME_OF_CURRENT_INSN
|
|
3819
3850
|
|
|
3820
3851
|
/* ### Instruction trailers. ### */
|
|
@@ -3852,7 +3883,7 @@ INSN_ENTRY(opt_length)
|
|
|
3852
3883
|
|
|
3853
3884
|
/* ### Here we do the instruction body. ### */
|
|
3854
3885
|
# define NAME_OF_CURRENT_INSN opt_length
|
|
3855
|
-
# line
|
|
3886
|
+
# line 1395 "insns.def"
|
|
3856
3887
|
{
|
|
3857
3888
|
val = vm_opt_length(recv, BOP_LENGTH);
|
|
3858
3889
|
|
|
@@ -3860,7 +3891,7 @@ INSN_ENTRY(opt_length)
|
|
|
3860
3891
|
CALL_SIMPLE_METHOD();
|
|
3861
3892
|
}
|
|
3862
3893
|
}
|
|
3863
|
-
# line
|
|
3894
|
+
# line 3895 "vm.inc"
|
|
3864
3895
|
# undef NAME_OF_CURRENT_INSN
|
|
3865
3896
|
|
|
3866
3897
|
/* ### Instruction trailers. ### */
|
|
@@ -3898,7 +3929,7 @@ INSN_ENTRY(opt_size)
|
|
|
3898
3929
|
|
|
3899
3930
|
/* ### Here we do the instruction body. ### */
|
|
3900
3931
|
# define NAME_OF_CURRENT_INSN opt_size
|
|
3901
|
-
# line
|
|
3932
|
+
# line 1409 "insns.def"
|
|
3902
3933
|
{
|
|
3903
3934
|
val = vm_opt_length(recv, BOP_SIZE);
|
|
3904
3935
|
|
|
@@ -3906,7 +3937,7 @@ INSN_ENTRY(opt_size)
|
|
|
3906
3937
|
CALL_SIMPLE_METHOD();
|
|
3907
3938
|
}
|
|
3908
3939
|
}
|
|
3909
|
-
# line
|
|
3940
|
+
# line 3941 "vm.inc"
|
|
3910
3941
|
# undef NAME_OF_CURRENT_INSN
|
|
3911
3942
|
|
|
3912
3943
|
/* ### Instruction trailers. ### */
|
|
@@ -3944,7 +3975,7 @@ INSN_ENTRY(opt_empty_p)
|
|
|
3944
3975
|
|
|
3945
3976
|
/* ### Here we do the instruction body. ### */
|
|
3946
3977
|
# define NAME_OF_CURRENT_INSN opt_empty_p
|
|
3947
|
-
# line
|
|
3978
|
+
# line 1423 "insns.def"
|
|
3948
3979
|
{
|
|
3949
3980
|
val = vm_opt_empty_p(recv);
|
|
3950
3981
|
|
|
@@ -3952,7 +3983,7 @@ INSN_ENTRY(opt_empty_p)
|
|
|
3952
3983
|
CALL_SIMPLE_METHOD();
|
|
3953
3984
|
}
|
|
3954
3985
|
}
|
|
3955
|
-
# line
|
|
3986
|
+
# line 3987 "vm.inc"
|
|
3956
3987
|
# undef NAME_OF_CURRENT_INSN
|
|
3957
3988
|
|
|
3958
3989
|
/* ### Instruction trailers. ### */
|
|
@@ -3990,7 +4021,7 @@ INSN_ENTRY(opt_succ)
|
|
|
3990
4021
|
|
|
3991
4022
|
/* ### Here we do the instruction body. ### */
|
|
3992
4023
|
# define NAME_OF_CURRENT_INSN opt_succ
|
|
3993
|
-
# line
|
|
4024
|
+
# line 1437 "insns.def"
|
|
3994
4025
|
{
|
|
3995
4026
|
val = vm_opt_succ(recv);
|
|
3996
4027
|
|
|
@@ -3998,7 +4029,7 @@ INSN_ENTRY(opt_succ)
|
|
|
3998
4029
|
CALL_SIMPLE_METHOD();
|
|
3999
4030
|
}
|
|
4000
4031
|
}
|
|
4001
|
-
# line
|
|
4032
|
+
# line 4033 "vm.inc"
|
|
4002
4033
|
# undef NAME_OF_CURRENT_INSN
|
|
4003
4034
|
|
|
4004
4035
|
/* ### Instruction trailers. ### */
|
|
@@ -4036,7 +4067,7 @@ INSN_ENTRY(opt_not)
|
|
|
4036
4067
|
|
|
4037
4068
|
/* ### Here we do the instruction body. ### */
|
|
4038
4069
|
# define NAME_OF_CURRENT_INSN opt_not
|
|
4039
|
-
# line
|
|
4070
|
+
# line 1451 "insns.def"
|
|
4040
4071
|
{
|
|
4041
4072
|
val = vm_opt_not(GET_ISEQ(), cd, recv);
|
|
4042
4073
|
|
|
@@ -4044,7 +4075,7 @@ INSN_ENTRY(opt_not)
|
|
|
4044
4075
|
CALL_SIMPLE_METHOD();
|
|
4045
4076
|
}
|
|
4046
4077
|
}
|
|
4047
|
-
# line
|
|
4078
|
+
# line 4079 "vm.inc"
|
|
4048
4079
|
# undef NAME_OF_CURRENT_INSN
|
|
4049
4080
|
|
|
4050
4081
|
/* ### Instruction trailers. ### */
|
|
@@ -4083,7 +4114,7 @@ INSN_ENTRY(opt_regexpmatch2)
|
|
|
4083
4114
|
|
|
4084
4115
|
/* ### Here we do the instruction body. ### */
|
|
4085
4116
|
# define NAME_OF_CURRENT_INSN opt_regexpmatch2
|
|
4086
|
-
# line
|
|
4117
|
+
# line 1466 "insns.def"
|
|
4087
4118
|
{
|
|
4088
4119
|
val = vm_opt_regexpmatch2(obj2, obj1);
|
|
4089
4120
|
|
|
@@ -4091,7 +4122,7 @@ INSN_ENTRY(opt_regexpmatch2)
|
|
|
4091
4122
|
CALL_SIMPLE_METHOD();
|
|
4092
4123
|
}
|
|
4093
4124
|
}
|
|
4094
|
-
# line
|
|
4125
|
+
# line 4126 "vm.inc"
|
|
4095
4126
|
# undef NAME_OF_CURRENT_INSN
|
|
4096
4127
|
|
|
4097
4128
|
/* ### Instruction trailers. ### */
|
|
@@ -4128,11 +4159,11 @@ INSN_ENTRY(invokebuiltin)
|
|
|
4128
4159
|
|
|
4129
4160
|
/* ### Here we do the instruction body. ### */
|
|
4130
4161
|
# define NAME_OF_CURRENT_INSN invokebuiltin
|
|
4131
|
-
# line
|
|
4162
|
+
# line 1482 "insns.def"
|
|
4132
4163
|
{
|
|
4133
4164
|
val = vm_invoke_builtin(ec, reg_cfp, bf, STACK_ADDR_FROM_TOP(bf->argc));
|
|
4134
4165
|
}
|
|
4135
|
-
# line
|
|
4166
|
+
# line 4167 "vm.inc"
|
|
4136
4167
|
# undef NAME_OF_CURRENT_INSN
|
|
4137
4168
|
|
|
4138
4169
|
/* ### Instruction trailers. ### */
|
|
@@ -4171,11 +4202,11 @@ INSN_ENTRY(opt_invokebuiltin_delegate)
|
|
|
4171
4202
|
|
|
4172
4203
|
/* ### Here we do the instruction body. ### */
|
|
4173
4204
|
# define NAME_OF_CURRENT_INSN opt_invokebuiltin_delegate
|
|
4174
|
-
# line
|
|
4205
|
+
# line 1493 "insns.def"
|
|
4175
4206
|
{
|
|
4176
4207
|
val = vm_invoke_builtin_delegate(ec, reg_cfp, bf, (unsigned int)index);
|
|
4177
4208
|
}
|
|
4178
|
-
# line
|
|
4209
|
+
# line 4210 "vm.inc"
|
|
4179
4210
|
# undef NAME_OF_CURRENT_INSN
|
|
4180
4211
|
|
|
4181
4212
|
/* ### Instruction trailers. ### */
|
|
@@ -4214,7 +4245,7 @@ INSN_ENTRY(opt_invokebuiltin_delegate_leave)
|
|
|
4214
4245
|
|
|
4215
4246
|
/* ### Here we do the instruction body. ### */
|
|
4216
4247
|
# define NAME_OF_CURRENT_INSN opt_invokebuiltin_delegate_leave
|
|
4217
|
-
# line
|
|
4248
|
+
# line 1504 "insns.def"
|
|
4218
4249
|
{
|
|
4219
4250
|
val = vm_invoke_builtin_delegate(ec, reg_cfp, bf, (unsigned int)index);
|
|
4220
4251
|
|
|
@@ -4232,7 +4263,7 @@ INSN_ENTRY(opt_invokebuiltin_delegate_leave)
|
|
|
4232
4263
|
RESTORE_REGS();
|
|
4233
4264
|
}
|
|
4234
4265
|
}
|
|
4235
|
-
# line
|
|
4266
|
+
# line 4267 "vm.inc"
|
|
4236
4267
|
# undef NAME_OF_CURRENT_INSN
|
|
4237
4268
|
|
|
4238
4269
|
/* ### Instruction trailers. ### */
|
|
@@ -4258,7 +4289,7 @@ INSN_ENTRY(getlocal_WC_0)
|
|
|
4258
4289
|
/* ### Declare and assign variables. ### */
|
|
4259
4290
|
#line 10 "defs/opt_operand.def"
|
|
4260
4291
|
const rb_num_t level = 0;
|
|
4261
|
-
#line
|
|
4292
|
+
#line 4293 "vm.inc"
|
|
4262
4293
|
lindex_t idx = (lindex_t)GET_OPERAND(1);
|
|
4263
4294
|
# define INSN_ATTR(x) attr_ ## x ## _getlocal_WC_0(idx)
|
|
4264
4295
|
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
@@ -4278,7 +4309,7 @@ INSN_ENTRY(getlocal_WC_0)
|
|
|
4278
4309
|
RB_DEBUG_COUNTER_INC(lvar_get);
|
|
4279
4310
|
(void)RB_DEBUG_COUNTER_INC_IF(lvar_get_dynamic, level > 0);
|
|
4280
4311
|
}
|
|
4281
|
-
# line
|
|
4312
|
+
# line 4313 "vm.inc"
|
|
4282
4313
|
# undef NAME_OF_CURRENT_INSN
|
|
4283
4314
|
|
|
4284
4315
|
/* ### Instruction trailers. ### */
|
|
@@ -4304,7 +4335,7 @@ INSN_ENTRY(getlocal_WC_1)
|
|
|
4304
4335
|
/* ### Declare and assign variables. ### */
|
|
4305
4336
|
#line 11 "defs/opt_operand.def"
|
|
4306
4337
|
const rb_num_t level = 1;
|
|
4307
|
-
#line
|
|
4338
|
+
#line 4339 "vm.inc"
|
|
4308
4339
|
lindex_t idx = (lindex_t)GET_OPERAND(1);
|
|
4309
4340
|
# define INSN_ATTR(x) attr_ ## x ## _getlocal_WC_1(idx)
|
|
4310
4341
|
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
@@ -4324,7 +4355,7 @@ INSN_ENTRY(getlocal_WC_1)
|
|
|
4324
4355
|
RB_DEBUG_COUNTER_INC(lvar_get);
|
|
4325
4356
|
(void)RB_DEBUG_COUNTER_INC_IF(lvar_get_dynamic, level > 0);
|
|
4326
4357
|
}
|
|
4327
|
-
# line
|
|
4358
|
+
# line 4359 "vm.inc"
|
|
4328
4359
|
# undef NAME_OF_CURRENT_INSN
|
|
4329
4360
|
|
|
4330
4361
|
/* ### Instruction trailers. ### */
|
|
@@ -4350,7 +4381,7 @@ INSN_ENTRY(setlocal_WC_0)
|
|
|
4350
4381
|
/* ### Declare and assign variables. ### */
|
|
4351
4382
|
#line 12 "defs/opt_operand.def"
|
|
4352
4383
|
const rb_num_t level = 0;
|
|
4353
|
-
#line
|
|
4384
|
+
#line 4385 "vm.inc"
|
|
4354
4385
|
lindex_t idx = (lindex_t)GET_OPERAND(1);
|
|
4355
4386
|
# define INSN_ATTR(x) attr_ ## x ## _setlocal_WC_0(idx)
|
|
4356
4387
|
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
@@ -4370,7 +4401,7 @@ INSN_ENTRY(setlocal_WC_0)
|
|
|
4370
4401
|
RB_DEBUG_COUNTER_INC(lvar_set);
|
|
4371
4402
|
(void)RB_DEBUG_COUNTER_INC_IF(lvar_set_dynamic, level > 0);
|
|
4372
4403
|
}
|
|
4373
|
-
# line
|
|
4404
|
+
# line 4405 "vm.inc"
|
|
4374
4405
|
# undef NAME_OF_CURRENT_INSN
|
|
4375
4406
|
|
|
4376
4407
|
/* ### Instruction trailers. ### */
|
|
@@ -4393,7 +4424,7 @@ INSN_ENTRY(setlocal_WC_1)
|
|
|
4393
4424
|
/* ### Declare and assign variables. ### */
|
|
4394
4425
|
#line 13 "defs/opt_operand.def"
|
|
4395
4426
|
const rb_num_t level = 1;
|
|
4396
|
-
#line
|
|
4427
|
+
#line 4428 "vm.inc"
|
|
4397
4428
|
lindex_t idx = (lindex_t)GET_OPERAND(1);
|
|
4398
4429
|
# define INSN_ATTR(x) attr_ ## x ## _setlocal_WC_1(idx)
|
|
4399
4430
|
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
@@ -4413,7 +4444,7 @@ INSN_ENTRY(setlocal_WC_1)
|
|
|
4413
4444
|
RB_DEBUG_COUNTER_INC(lvar_set);
|
|
4414
4445
|
(void)RB_DEBUG_COUNTER_INC_IF(lvar_set_dynamic, level > 0);
|
|
4415
4446
|
}
|
|
4416
|
-
# line
|
|
4447
|
+
# line 4448 "vm.inc"
|
|
4417
4448
|
# undef NAME_OF_CURRENT_INSN
|
|
4418
4449
|
|
|
4419
4450
|
/* ### Instruction trailers. ### */
|
|
@@ -4436,7 +4467,7 @@ INSN_ENTRY(putobject_INT2FIX_0_)
|
|
|
4436
4467
|
/* ### Declare and assign variables. ### */
|
|
4437
4468
|
#line 15 "defs/opt_operand.def"
|
|
4438
4469
|
const VALUE val = INT2FIX(0);
|
|
4439
|
-
#line
|
|
4470
|
+
#line 4471 "vm.inc"
|
|
4440
4471
|
# define INSN_ATTR(x) attr_ ## x ## _putobject_INT2FIX_0_()
|
|
4441
4472
|
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
4442
4473
|
|
|
@@ -4466,7 +4497,7 @@ INSN_ENTRY(putobject_INT2FIX_1_)
|
|
|
4466
4497
|
/* ### Declare and assign variables. ### */
|
|
4467
4498
|
#line 16 "defs/opt_operand.def"
|
|
4468
4499
|
const VALUE val = INT2FIX(1);
|
|
4469
|
-
#line
|
|
4500
|
+
#line 4501 "vm.inc"
|
|
4470
4501
|
# define INSN_ATTR(x) attr_ ## x ## _putobject_INT2FIX_1_()
|
|
4471
4502
|
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
4472
4503
|
|
|
@@ -4783,6 +4814,15 @@ INSN_ENTRY(trace_splatarray)
|
|
|
4783
4814
|
END_INSN(trace_splatarray);
|
|
4784
4815
|
}
|
|
4785
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
|
+
|
|
4786
4826
|
/* insn trace_newhash(...)(...)(...) */
|
|
4787
4827
|
INSN_ENTRY(trace_newhash)
|
|
4788
4828
|
{
|