debase-ruby_core_source 3.2.2 → 3.3.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
{
|