debase-ruby_core_source 3.3.6 → 4.0.0.preview2
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/.ruby-version +1 -0
- data/CHANGELOG.md +10 -0
- data/Rakefile +3 -1
- data/debase-ruby_core_source.gemspec +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/builtin.h +7 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/darray.h +1 -3
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/id.h +5 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/insns.inc +2 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/insns_info.inc +310 -175
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/basic_operators.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/bits.h +82 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/encoding.h +2 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/error.h +26 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/fixnum.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/gc.h +14 -6
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/imemo.h +6 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/io.h +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/parse.h +2 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/proc.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/ractor.h +4 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/sanitizers.h +31 -39
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/string.h +22 -10
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/thread.h +23 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/vm.h +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/method.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/optunifs.inc +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/parse.h +2 -2
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/ast.h +427 -3
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/defines.h +8 -7
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/diagnostic.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/extension.h +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/prism.h +47 -11
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/version.h +2 -2
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism_compile.h +5 -5
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/ractor_core.h +6 -6
- data/lib/debase/ruby_core_source/ruby-3.4.0-p-1/revision.h +5 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/rubyparser.h +3 -2
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/thread_pthread.h +0 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/version.h +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/vm.inc +151 -88
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/vm_core.h +40 -12
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/vm_sync.h +3 -3
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/vmtc.inc +2 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/yjit.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/builtin.h +7 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/darray.h +101 -14
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/debug_counter.h +6 -4
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/dln.h +1 -2
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/eval_intern.h +7 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/id.h +16 -5
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/id_table.h +15 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/insns.inc +49 -6
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/insns_info.inc +2432 -721
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/array.h +3 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/basic_operators.h +2 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/bignum.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/bits.h +82 -0
- data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/box.h +81 -0
- data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/class.h +805 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/cmdlineopt.h +3 -4
- data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/concurrent_set.h +21 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/encoding.h +4 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/error.h +35 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/eval.h +8 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/fixnum.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/gc.h +54 -30
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/hash.h +3 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/imemo.h +94 -32
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/inits.h +4 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/io.h +30 -7
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/load.h +2 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/numeric.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/object.h +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/parse.h +18 -4
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/proc.h +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/ractor.h +4 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/re.h +7 -2
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/sanitizers.h +88 -39
- data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/set_table.h +70 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/signal.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/st.h +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/string.h +39 -18
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/struct.h +38 -5
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/symbol.h +4 -3
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/thread.h +42 -9
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/time.h +4 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/variable.h +13 -11
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/vm.h +6 -7
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal.h +0 -3
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/iseq.h +19 -2
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/known_errors.inc +103 -103
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/method.h +18 -2
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/node.h +14 -3
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/optunifs.inc +1 -3
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/parse.h +37 -36
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/ast.h +2495 -507
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/defines.h +61 -7
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/diagnostic.h +31 -6
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/extension.h +5 -5
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/node.h +0 -21
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/options.h +186 -6
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/parser.h +85 -40
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/prism.h +88 -16
- data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/prism/regexp.h +43 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/static_literals.h +3 -2
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/util/pm_buffer.h +18 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/util/pm_char.h +1 -2
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/util/pm_constant_pool.h +0 -8
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/util/pm_integer.h +26 -15
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/util/pm_list.h +6 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/util/pm_newline_list.h +11 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/util/pm_string.h +39 -13
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/version.h +3 -3
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism_compile.h +30 -12
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/ractor_core.h +47 -134
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/regenc.h +9 -4
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/regint.h +0 -5
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/regparse.h +2 -2
- data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/revision.h +5 -0
- data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/ruby_atomic.h +66 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/rubyparser.h +214 -250
- data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/shape.h +444 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/symbol.h +8 -10
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/thread_pthread.h +36 -27
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/variable.h +8 -20
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/vm.inc +884 -344
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/vm_callinfo.h +110 -75
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/vm_core.h +220 -106
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/vm_exec.h +15 -4
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/vm_insnhelper.h +11 -6
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/vm_sync.h +23 -4
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/vmtc.inc +42 -6
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/yjit.h +5 -3
- data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/zjit.h +47 -0
- data/lib/debase/ruby_core_source/version.rb +1 -1
- data/lib/debase/ruby_core_source.rb +4 -2
- data/test/deduce_source_dir_test.rb +31 -0
- metadata +307 -293
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/class.h +0 -283
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/regexp.h +0 -33
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_string_list.h +0 -44
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/revision.h +0 -5
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/shape.h +0 -233
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/revision.h +0 -5
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/rjit.h +0 -101
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/rjit_c.h +0 -165
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ruby_atomic.h +0 -23
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/addr2line.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ccan/build_assert/build_assert.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ccan/check_type/check_type.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ccan/container_of/container_of.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ccan/list/list.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ccan/str/str.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/constant.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/debug_counter.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/dln.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/encindex.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/eval_intern.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/hrtime.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/id_table.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/array.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/bignum.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/class.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/cmdlineopt.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/compar.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/compile.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/compilers.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/complex.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/cont.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/dir.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/enc.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/enum.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/enumerator.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/eval.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/file.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/hash.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/inits.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/load.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/loadpath.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/math.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/missing.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/numeric.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/object.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/process.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/random.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/range.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/rational.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/re.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/ruby_parser.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/serial.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/signal.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/st.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/static_assert.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/struct.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/symbol.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/time.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/transcode.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/util.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/variable.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/warnings.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/iseq.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/known_errors.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/node.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/node_name.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/optinsn.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/parser_bits.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/parser_node.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/parser_st.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/parser_value.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/encoding.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/node.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/options.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/pack.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/parser.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/prettyprint.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/regexp.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/static_literals.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/util/pm_buffer.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/util/pm_char.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/util/pm_constant_pool.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/util/pm_integer.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/util/pm_list.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/util/pm_memchr.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/util/pm_newline_list.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/util/pm_string.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/util/pm_strncasecmp.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/util/pm_strpbrk.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/probes_helper.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/regenc.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/regint.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/regparse.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/rjit.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/rjit_c.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ruby_assert.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ruby_atomic.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/shape.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/siphash.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/symbol.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/thread_none.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/thread_win32.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/timev.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/transcode_data.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/variable.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/vm_call_iseq_optimized.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/vm_callinfo.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/vm_debug.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/vm_exec.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/vm_insnhelper.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/vm_opts.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/addr2line.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/ccan/build_assert/build_assert.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/ccan/check_type/check_type.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/ccan/container_of/container_of.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/ccan/list/list.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/ccan/str/str.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/constant.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/encindex.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/hrtime.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/compar.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/compile.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/compilers.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/complex.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/cont.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/dir.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/enc.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/enum.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/enumerator.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/file.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/loadpath.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/math.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/missing.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/process.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/random.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/range.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/rational.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/ruby_parser.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/serial.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/static_assert.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/transcode.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/util.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/warnings.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/node_name.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/optinsn.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/parser_bits.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/parser_node.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/parser_st.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/parser_value.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/encoding.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/pack.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/prettyprint.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/util/pm_memchr.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/util/pm_strncasecmp.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/util/pm_strpbrk.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/probes_helper.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/ruby_assert.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/siphash.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/thread_none.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/thread_win32.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/timev.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/transcode_data.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/version.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/vm_call_iseq_optimized.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/vm_debug.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/vm_opts.h +0 -0
|
@@ -431,7 +431,7 @@ INSN_ENTRY(getinstancevariable)
|
|
|
431
431
|
|
|
432
432
|
/* ### Here we do the instruction body. ### */
|
|
433
433
|
# define NAME_OF_CURRENT_INSN getinstancevariable
|
|
434
|
-
# line
|
|
434
|
+
# line 216 "insns.def"
|
|
435
435
|
{
|
|
436
436
|
val = vm_getinstancevariable(GET_ISEQ(), GET_SELF(), id, ic);
|
|
437
437
|
}
|
|
@@ -474,7 +474,7 @@ INSN_ENTRY(setinstancevariable)
|
|
|
474
474
|
|
|
475
475
|
/* ### Here we do the instruction body. ### */
|
|
476
476
|
# define NAME_OF_CURRENT_INSN setinstancevariable
|
|
477
|
-
# line
|
|
477
|
+
# line 227 "insns.def"
|
|
478
478
|
{
|
|
479
479
|
vm_setinstancevariable(GET_ISEQ(), GET_SELF(), id, val, ic);
|
|
480
480
|
}
|
|
@@ -514,7 +514,7 @@ INSN_ENTRY(getclassvariable)
|
|
|
514
514
|
|
|
515
515
|
/* ### Here we do the instruction body. ### */
|
|
516
516
|
# define NAME_OF_CURRENT_INSN getclassvariable
|
|
517
|
-
# line
|
|
517
|
+
# line 239 "insns.def"
|
|
518
518
|
{
|
|
519
519
|
rb_control_frame_t *cfp = GET_CFP();
|
|
520
520
|
val = vm_getclassvariable(GET_ISEQ(), cfp, id, ic);
|
|
@@ -558,7 +558,7 @@ INSN_ENTRY(setclassvariable)
|
|
|
558
558
|
|
|
559
559
|
/* ### Here we do the instruction body. ### */
|
|
560
560
|
# define NAME_OF_CURRENT_INSN setclassvariable
|
|
561
|
-
# line
|
|
561
|
+
# line 252 "insns.def"
|
|
562
562
|
{
|
|
563
563
|
vm_ensure_not_refinement_module(GET_SELF());
|
|
564
564
|
vm_setclassvariable(GET_ISEQ(), GET_CFP(), id, val, ic);
|
|
@@ -597,7 +597,7 @@ INSN_ENTRY(opt_getconstant_path)
|
|
|
597
597
|
|
|
598
598
|
/* ### Here we do the instruction body. ### */
|
|
599
599
|
# define NAME_OF_CURRENT_INSN opt_getconstant_path
|
|
600
|
-
# line
|
|
600
|
+
# line 263 "insns.def"
|
|
601
601
|
{
|
|
602
602
|
val = rb_vm_opt_getconstant_path(ec, GET_CFP(), ic);
|
|
603
603
|
}
|
|
@@ -640,7 +640,7 @@ INSN_ENTRY(getconstant)
|
|
|
640
640
|
|
|
641
641
|
/* ### Here we do the instruction body. ### */
|
|
642
642
|
# define NAME_OF_CURRENT_INSN getconstant
|
|
643
|
-
# line
|
|
643
|
+
# line 278 "insns.def"
|
|
644
644
|
{
|
|
645
645
|
val = vm_get_ev_const(ec, klass, id, allow_nil == Qtrue, 0);
|
|
646
646
|
}
|
|
@@ -682,7 +682,7 @@ INSN_ENTRY(setconstant)
|
|
|
682
682
|
|
|
683
683
|
/* ### Here we do the instruction body. ### */
|
|
684
684
|
# define NAME_OF_CURRENT_INSN setconstant
|
|
685
|
-
# line
|
|
685
|
+
# line 294 "insns.def"
|
|
686
686
|
{
|
|
687
687
|
vm_check_if_namespace(cbase);
|
|
688
688
|
vm_ensure_not_refinement_module(GET_SELF());
|
|
@@ -722,7 +722,7 @@ INSN_ENTRY(getglobal)
|
|
|
722
722
|
|
|
723
723
|
/* ### Here we do the instruction body. ### */
|
|
724
724
|
# define NAME_OF_CURRENT_INSN getglobal
|
|
725
|
-
# line
|
|
725
|
+
# line 307 "insns.def"
|
|
726
726
|
{
|
|
727
727
|
val = rb_gvar_get(gid);
|
|
728
728
|
}
|
|
@@ -763,7 +763,7 @@ INSN_ENTRY(setglobal)
|
|
|
763
763
|
|
|
764
764
|
/* ### Here we do the instruction body. ### */
|
|
765
765
|
# define NAME_OF_CURRENT_INSN setglobal
|
|
766
|
-
# line
|
|
766
|
+
# line 318 "insns.def"
|
|
767
767
|
{
|
|
768
768
|
rb_gvar_set(gid, val);
|
|
769
769
|
}
|
|
@@ -799,7 +799,7 @@ INSN_ENTRY(putnil)
|
|
|
799
799
|
|
|
800
800
|
/* ### Here we do the instruction body. ### */
|
|
801
801
|
# define NAME_OF_CURRENT_INSN putnil
|
|
802
|
-
# line
|
|
802
|
+
# line 332 "insns.def"
|
|
803
803
|
{
|
|
804
804
|
val = Qnil;
|
|
805
805
|
}
|
|
@@ -838,7 +838,7 @@ INSN_ENTRY(putself)
|
|
|
838
838
|
|
|
839
839
|
/* ### Here we do the instruction body. ### */
|
|
840
840
|
# define NAME_OF_CURRENT_INSN putself
|
|
841
|
-
# line
|
|
841
|
+
# line 342 "insns.def"
|
|
842
842
|
{
|
|
843
843
|
val = GET_SELF();
|
|
844
844
|
}
|
|
@@ -908,7 +908,7 @@ INSN_ENTRY(putspecialobject)
|
|
|
908
908
|
|
|
909
909
|
/* ### Here we do the instruction body. ### */
|
|
910
910
|
# define NAME_OF_CURRENT_INSN putspecialobject
|
|
911
|
-
# line
|
|
911
|
+
# line 365 "insns.def"
|
|
912
912
|
{
|
|
913
913
|
enum vm_special_object_type type;
|
|
914
914
|
|
|
@@ -952,7 +952,7 @@ INSN_ENTRY(putstring)
|
|
|
952
952
|
|
|
953
953
|
/* ### Here we do the instruction body. ### */
|
|
954
954
|
# define NAME_OF_CURRENT_INSN putstring
|
|
955
|
-
# line
|
|
955
|
+
# line 378 "insns.def"
|
|
956
956
|
{
|
|
957
957
|
val = rb_ec_str_resurrect(ec, str, false);
|
|
958
958
|
}
|
|
@@ -993,7 +993,7 @@ INSN_ENTRY(putchilledstring)
|
|
|
993
993
|
|
|
994
994
|
/* ### Here we do the instruction body. ### */
|
|
995
995
|
# define NAME_OF_CURRENT_INSN putchilledstring
|
|
996
|
-
# line
|
|
996
|
+
# line 388 "insns.def"
|
|
997
997
|
{
|
|
998
998
|
val = rb_ec_str_resurrect(ec, str, true);
|
|
999
999
|
}
|
|
@@ -1034,7 +1034,7 @@ INSN_ENTRY(concatstrings)
|
|
|
1034
1034
|
|
|
1035
1035
|
/* ### Here we do the instruction body. ### */
|
|
1036
1036
|
# define NAME_OF_CURRENT_INSN concatstrings
|
|
1037
|
-
# line
|
|
1037
|
+
# line 402 "insns.def"
|
|
1038
1038
|
{
|
|
1039
1039
|
val = rb_str_concat_literals(num, STACK_ADDR_FROM_TOP(num));
|
|
1040
1040
|
}
|
|
@@ -1074,7 +1074,7 @@ INSN_ENTRY(anytostring)
|
|
|
1074
1074
|
|
|
1075
1075
|
/* ### Here we do the instruction body. ### */
|
|
1076
1076
|
# define NAME_OF_CURRENT_INSN anytostring
|
|
1077
|
-
# line
|
|
1077
|
+
# line 413 "insns.def"
|
|
1078
1078
|
{
|
|
1079
1079
|
val = rb_obj_as_string_result(str, val);
|
|
1080
1080
|
}
|
|
@@ -1117,7 +1117,7 @@ INSN_ENTRY(toregexp)
|
|
|
1117
1117
|
|
|
1118
1118
|
/* ### Here we do the instruction body. ### */
|
|
1119
1119
|
# define NAME_OF_CURRENT_INSN toregexp
|
|
1120
|
-
# line
|
|
1120
|
+
# line 429 "insns.def"
|
|
1121
1121
|
{
|
|
1122
1122
|
const VALUE ary = rb_ary_tmp_new_from_values(0, cnt, STACK_ADDR_FROM_TOP(cnt));
|
|
1123
1123
|
val = rb_reg_new_ary(ary, (int)opt);
|
|
@@ -1159,7 +1159,7 @@ INSN_ENTRY(intern)
|
|
|
1159
1159
|
|
|
1160
1160
|
/* ### Here we do the instruction body. ### */
|
|
1161
1161
|
# define NAME_OF_CURRENT_INSN intern
|
|
1162
|
-
# line
|
|
1162
|
+
# line 441 "insns.def"
|
|
1163
1163
|
{
|
|
1164
1164
|
sym = rb_str_intern(str);
|
|
1165
1165
|
}
|
|
@@ -1200,7 +1200,7 @@ INSN_ENTRY(newarray)
|
|
|
1200
1200
|
|
|
1201
1201
|
/* ### Here we do the instruction body. ### */
|
|
1202
1202
|
# define NAME_OF_CURRENT_INSN newarray
|
|
1203
|
-
# line
|
|
1203
|
+
# line 452 "insns.def"
|
|
1204
1204
|
{
|
|
1205
1205
|
val = rb_ec_ary_new_from_values(ec, num, STACK_ADDR_FROM_TOP(num));
|
|
1206
1206
|
}
|
|
@@ -1220,52 +1220,6 @@ INSN_ENTRY(newarray)
|
|
|
1220
1220
|
END_INSN(newarray);
|
|
1221
1221
|
}
|
|
1222
1222
|
|
|
1223
|
-
/* insn newarraykwsplat(num)(...)(val) */
|
|
1224
|
-
INSN_ENTRY(newarraykwsplat)
|
|
1225
|
-
{
|
|
1226
|
-
/* ### Declare that we have just entered into an instruction. ### */
|
|
1227
|
-
START_OF_ORIGINAL_INSN(newarraykwsplat);
|
|
1228
|
-
DEBUG_ENTER_INSN("newarraykwsplat");
|
|
1229
|
-
|
|
1230
|
-
/* ### Declare and assign variables. ### */
|
|
1231
|
-
rb_num_t num = (rb_num_t)GET_OPERAND(1);
|
|
1232
|
-
# define INSN_ATTR(x) attr_ ## x ## _newarraykwsplat(num)
|
|
1233
|
-
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
1234
|
-
VALUE val;
|
|
1235
|
-
|
|
1236
|
-
/* ### Instruction preambles. ### */
|
|
1237
|
-
ADD_PC(INSN_ATTR(width));
|
|
1238
|
-
SETUP_CANARY(leaf);
|
|
1239
|
-
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
1240
|
-
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, num);
|
|
1241
|
-
|
|
1242
|
-
/* ### Here we do the instruction body. ### */
|
|
1243
|
-
# define NAME_OF_CURRENT_INSN newarraykwsplat
|
|
1244
|
-
# line 466 "insns.def"
|
|
1245
|
-
{
|
|
1246
|
-
if (RHASH_EMPTY_P(*STACK_ADDR_FROM_TOP(1))) {
|
|
1247
|
-
val = rb_ary_new4(num-1, STACK_ADDR_FROM_TOP(num));
|
|
1248
|
-
}
|
|
1249
|
-
else {
|
|
1250
|
-
val = rb_ary_new4(num, STACK_ADDR_FROM_TOP(num));
|
|
1251
|
-
}
|
|
1252
|
-
}
|
|
1253
|
-
# line 1254 "vm.inc"
|
|
1254
|
-
# undef NAME_OF_CURRENT_INSN
|
|
1255
|
-
|
|
1256
|
-
/* ### Instruction trailers. ### */
|
|
1257
|
-
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
1258
|
-
CHECK_CANARY(leaf, INSN_ATTR(bin));
|
|
1259
|
-
INC_SP(INSN_ATTR(sp_inc));
|
|
1260
|
-
TOPN(0) = val;
|
|
1261
|
-
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
1262
|
-
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
1263
|
-
# undef INSN_ATTR
|
|
1264
|
-
|
|
1265
|
-
/* ### Leave the instruction. ### */
|
|
1266
|
-
END_INSN(newarraykwsplat);
|
|
1267
|
-
}
|
|
1268
|
-
|
|
1269
1223
|
/* insn pushtoarraykwsplat()(ary, hash)(ary) */
|
|
1270
1224
|
INSN_ENTRY(pushtoarraykwsplat)
|
|
1271
1225
|
{
|
|
@@ -1286,13 +1240,13 @@ INSN_ENTRY(pushtoarraykwsplat)
|
|
|
1286
1240
|
|
|
1287
1241
|
/* ### Here we do the instruction body. ### */
|
|
1288
1242
|
# define NAME_OF_CURRENT_INSN pushtoarraykwsplat
|
|
1289
|
-
# line
|
|
1243
|
+
# line 464 "insns.def"
|
|
1290
1244
|
{
|
|
1291
1245
|
if (!RHASH_EMPTY_P(hash)) {
|
|
1292
1246
|
rb_ary_push(ary, hash);
|
|
1293
1247
|
}
|
|
1294
1248
|
}
|
|
1295
|
-
# line
|
|
1249
|
+
# line 1250 "vm.inc"
|
|
1296
1250
|
# undef NAME_OF_CURRENT_INSN
|
|
1297
1251
|
|
|
1298
1252
|
/* ### Instruction trailers. ### */
|
|
@@ -1329,12 +1283,12 @@ INSN_ENTRY(duparray)
|
|
|
1329
1283
|
|
|
1330
1284
|
/* ### Here we do the instruction body. ### */
|
|
1331
1285
|
# define NAME_OF_CURRENT_INSN duparray
|
|
1332
|
-
# line
|
|
1286
|
+
# line 476 "insns.def"
|
|
1333
1287
|
{
|
|
1334
1288
|
RUBY_DTRACE_CREATE_HOOK(ARRAY, RARRAY_LEN(ary));
|
|
1335
1289
|
val = rb_ary_resurrect(ary);
|
|
1336
1290
|
}
|
|
1337
|
-
# line
|
|
1291
|
+
# line 1292 "vm.inc"
|
|
1338
1292
|
# undef NAME_OF_CURRENT_INSN
|
|
1339
1293
|
|
|
1340
1294
|
/* ### Instruction trailers. ### */
|
|
@@ -1371,12 +1325,12 @@ INSN_ENTRY(duphash)
|
|
|
1371
1325
|
|
|
1372
1326
|
/* ### Here we do the instruction body. ### */
|
|
1373
1327
|
# define NAME_OF_CURRENT_INSN duphash
|
|
1374
|
-
# line
|
|
1328
|
+
# line 487 "insns.def"
|
|
1375
1329
|
{
|
|
1376
1330
|
RUBY_DTRACE_CREATE_HOOK(HASH, RHASH_SIZE(hash) << 1);
|
|
1377
1331
|
val = rb_hash_resurrect(hash);
|
|
1378
1332
|
}
|
|
1379
|
-
# line
|
|
1333
|
+
# line 1334 "vm.inc"
|
|
1380
1334
|
# undef NAME_OF_CURRENT_INSN
|
|
1381
1335
|
|
|
1382
1336
|
/* ### Instruction trailers. ### */
|
|
@@ -1415,11 +1369,11 @@ INSN_ENTRY(expandarray)
|
|
|
1415
1369
|
|
|
1416
1370
|
/* ### Here we do the instruction body. ### */
|
|
1417
1371
|
# define NAME_OF_CURRENT_INSN expandarray
|
|
1418
|
-
# line
|
|
1372
|
+
# line 509 "insns.def"
|
|
1419
1373
|
{
|
|
1420
1374
|
vm_expandarray(GET_CFP(), ary, num, (int)flag);
|
|
1421
1375
|
}
|
|
1422
|
-
# line
|
|
1376
|
+
# line 1377 "vm.inc"
|
|
1423
1377
|
# undef NAME_OF_CURRENT_INSN
|
|
1424
1378
|
|
|
1425
1379
|
/* ### Instruction trailers. ### */
|
|
@@ -1451,11 +1405,11 @@ INSN_ENTRY(concatarray)
|
|
|
1451
1405
|
|
|
1452
1406
|
/* ### Here we do the instruction body. ### */
|
|
1453
1407
|
# define NAME_OF_CURRENT_INSN concatarray
|
|
1454
|
-
# line
|
|
1408
|
+
# line 522 "insns.def"
|
|
1455
1409
|
{
|
|
1456
1410
|
ary = vm_concat_array(ary1, ary2);
|
|
1457
1411
|
}
|
|
1458
|
-
# line
|
|
1412
|
+
# line 1413 "vm.inc"
|
|
1459
1413
|
# undef NAME_OF_CURRENT_INSN
|
|
1460
1414
|
|
|
1461
1415
|
/* ### Instruction trailers. ### */
|
|
@@ -1492,11 +1446,11 @@ INSN_ENTRY(concattoarray)
|
|
|
1492
1446
|
|
|
1493
1447
|
/* ### Here we do the instruction body. ### */
|
|
1494
1448
|
# define NAME_OF_CURRENT_INSN concattoarray
|
|
1495
|
-
# line
|
|
1449
|
+
# line 536 "insns.def"
|
|
1496
1450
|
{
|
|
1497
1451
|
ary = vm_concat_to_array(ary1, ary2);
|
|
1498
1452
|
}
|
|
1499
|
-
# line
|
|
1453
|
+
# line 1454 "vm.inc"
|
|
1500
1454
|
# undef NAME_OF_CURRENT_INSN
|
|
1501
1455
|
|
|
1502
1456
|
/* ### Instruction trailers. ### */
|
|
@@ -1533,12 +1487,12 @@ INSN_ENTRY(pushtoarray)
|
|
|
1533
1487
|
|
|
1534
1488
|
/* ### Here we do the instruction body. ### */
|
|
1535
1489
|
# define NAME_OF_CURRENT_INSN pushtoarray
|
|
1536
|
-
# line
|
|
1490
|
+
# line 547 "insns.def"
|
|
1537
1491
|
{
|
|
1538
1492
|
const VALUE *objp = STACK_ADDR_FROM_TOP(num);
|
|
1539
1493
|
val = rb_ary_cat(*(objp-1), objp, num);
|
|
1540
1494
|
}
|
|
1541
|
-
# line
|
|
1495
|
+
# line 1496 "vm.inc"
|
|
1542
1496
|
# undef NAME_OF_CURRENT_INSN
|
|
1543
1497
|
|
|
1544
1498
|
/* ### Instruction trailers. ### */
|
|
@@ -1576,11 +1530,11 @@ INSN_ENTRY(splatarray)
|
|
|
1576
1530
|
|
|
1577
1531
|
/* ### Here we do the instruction body. ### */
|
|
1578
1532
|
# define NAME_OF_CURRENT_INSN splatarray
|
|
1579
|
-
# line
|
|
1533
|
+
# line 559 "insns.def"
|
|
1580
1534
|
{
|
|
1581
1535
|
obj = vm_splat_array(flag, ary);
|
|
1582
1536
|
}
|
|
1583
|
-
# line
|
|
1537
|
+
# line 1538 "vm.inc"
|
|
1584
1538
|
# undef NAME_OF_CURRENT_INSN
|
|
1585
1539
|
|
|
1586
1540
|
/* ### Instruction trailers. ### */
|
|
@@ -1617,7 +1571,7 @@ INSN_ENTRY(splatkw)
|
|
|
1617
1571
|
|
|
1618
1572
|
/* ### Here we do the instruction body. ### */
|
|
1619
1573
|
# define NAME_OF_CURRENT_INSN splatkw
|
|
1620
|
-
# line
|
|
1574
|
+
# line 570 "insns.def"
|
|
1621
1575
|
{
|
|
1622
1576
|
if (NIL_P(hash)) {
|
|
1623
1577
|
obj = Qnil;
|
|
@@ -1626,7 +1580,7 @@ INSN_ENTRY(splatkw)
|
|
|
1626
1580
|
obj = rb_to_hash_type(hash);
|
|
1627
1581
|
}
|
|
1628
1582
|
}
|
|
1629
|
-
# line
|
|
1583
|
+
# line 1584 "vm.inc"
|
|
1630
1584
|
# undef NAME_OF_CURRENT_INSN
|
|
1631
1585
|
|
|
1632
1586
|
/* ### Instruction trailers. ### */
|
|
@@ -1666,7 +1620,7 @@ INSN_ENTRY(newhash)
|
|
|
1666
1620
|
|
|
1667
1621
|
/* ### Here we do the instruction body. ### */
|
|
1668
1622
|
# define NAME_OF_CURRENT_INSN newhash
|
|
1669
|
-
# line
|
|
1623
|
+
# line 587 "insns.def"
|
|
1670
1624
|
{
|
|
1671
1625
|
RUBY_DTRACE_CREATE_HOOK(HASH, num);
|
|
1672
1626
|
|
|
@@ -1678,7 +1632,7 @@ INSN_ENTRY(newhash)
|
|
|
1678
1632
|
val = rb_hash_new();
|
|
1679
1633
|
}
|
|
1680
1634
|
}
|
|
1681
|
-
# line
|
|
1635
|
+
# line 1636 "vm.inc"
|
|
1682
1636
|
# undef NAME_OF_CURRENT_INSN
|
|
1683
1637
|
|
|
1684
1638
|
/* ### Instruction trailers. ### */
|
|
@@ -1717,11 +1671,11 @@ INSN_ENTRY(newrange)
|
|
|
1717
1671
|
|
|
1718
1672
|
/* ### Here we do the instruction body. ### */
|
|
1719
1673
|
# define NAME_OF_CURRENT_INSN newrange
|
|
1720
|
-
# line
|
|
1674
|
+
# line 607 "insns.def"
|
|
1721
1675
|
{
|
|
1722
1676
|
val = rb_range_new(low, high, (int)flag);
|
|
1723
1677
|
}
|
|
1724
|
-
# line
|
|
1678
|
+
# line 1679 "vm.inc"
|
|
1725
1679
|
# undef NAME_OF_CURRENT_INSN
|
|
1726
1680
|
|
|
1727
1681
|
/* ### Instruction trailers. ### */
|
|
@@ -1756,12 +1710,12 @@ INSN_ENTRY(pop)
|
|
|
1756
1710
|
|
|
1757
1711
|
/* ### Here we do the instruction body. ### */
|
|
1758
1712
|
# define NAME_OF_CURRENT_INSN pop
|
|
1759
|
-
# line
|
|
1713
|
+
# line 621 "insns.def"
|
|
1760
1714
|
{
|
|
1761
1715
|
(void)val;
|
|
1762
1716
|
/* none */
|
|
1763
1717
|
}
|
|
1764
|
-
# line
|
|
1718
|
+
# line 1719 "vm.inc"
|
|
1765
1719
|
# undef NAME_OF_CURRENT_INSN
|
|
1766
1720
|
|
|
1767
1721
|
/* ### Instruction trailers. ### */
|
|
@@ -1795,11 +1749,11 @@ INSN_ENTRY(dup)
|
|
|
1795
1749
|
|
|
1796
1750
|
/* ### Here we do the instruction body. ### */
|
|
1797
1751
|
# define NAME_OF_CURRENT_INSN dup
|
|
1798
|
-
# line
|
|
1752
|
+
# line 632 "insns.def"
|
|
1799
1753
|
{
|
|
1800
1754
|
val1 = val2 = val;
|
|
1801
1755
|
}
|
|
1802
|
-
# line
|
|
1756
|
+
# line 1757 "vm.inc"
|
|
1803
1757
|
# undef NAME_OF_CURRENT_INSN
|
|
1804
1758
|
|
|
1805
1759
|
/* ### Instruction trailers. ### */
|
|
@@ -1837,14 +1791,14 @@ INSN_ENTRY(dupn)
|
|
|
1837
1791
|
|
|
1838
1792
|
/* ### Here we do the instruction body. ### */
|
|
1839
1793
|
# define NAME_OF_CURRENT_INSN dupn
|
|
1840
|
-
# line
|
|
1794
|
+
# line 643 "insns.def"
|
|
1841
1795
|
{
|
|
1842
1796
|
void *dst = GET_SP();
|
|
1843
1797
|
void *src = STACK_ADDR_FROM_TOP(n);
|
|
1844
1798
|
|
|
1845
1799
|
MEMCPY(dst, src, VALUE, n);
|
|
1846
1800
|
}
|
|
1847
|
-
# line
|
|
1801
|
+
# line 1802 "vm.inc"
|
|
1848
1802
|
# undef NAME_OF_CURRENT_INSN
|
|
1849
1803
|
|
|
1850
1804
|
/* ### Instruction trailers. ### */
|
|
@@ -1907,7 +1861,7 @@ INSN_ENTRY(opt_reverse)
|
|
|
1907
1861
|
|
|
1908
1862
|
/* ### Here we do the instruction body. ### */
|
|
1909
1863
|
# define NAME_OF_CURRENT_INSN opt_reverse
|
|
1910
|
-
# line
|
|
1864
|
+
# line 667 "insns.def"
|
|
1911
1865
|
{
|
|
1912
1866
|
rb_num_t i;
|
|
1913
1867
|
VALUE *sp = STACK_ADDR_FROM_TOP(n);
|
|
@@ -1919,7 +1873,7 @@ INSN_ENTRY(opt_reverse)
|
|
|
1919
1873
|
TOPN(i) = v0;
|
|
1920
1874
|
}
|
|
1921
1875
|
}
|
|
1922
|
-
# line
|
|
1876
|
+
# line 1877 "vm.inc"
|
|
1923
1877
|
# undef NAME_OF_CURRENT_INSN
|
|
1924
1878
|
|
|
1925
1879
|
/* ### Instruction trailers. ### */
|
|
@@ -1952,11 +1906,11 @@ INSN_ENTRY(topn)
|
|
|
1952
1906
|
|
|
1953
1907
|
/* ### Here we do the instruction body. ### */
|
|
1954
1908
|
# define NAME_OF_CURRENT_INSN topn
|
|
1955
|
-
# line
|
|
1909
|
+
# line 697 "insns.def"
|
|
1956
1910
|
{
|
|
1957
1911
|
val = TOPN(n);
|
|
1958
1912
|
}
|
|
1959
|
-
# line
|
|
1913
|
+
# line 1914 "vm.inc"
|
|
1960
1914
|
# undef NAME_OF_CURRENT_INSN
|
|
1961
1915
|
|
|
1962
1916
|
/* ### Instruction trailers. ### */
|
|
@@ -1993,11 +1947,11 @@ INSN_ENTRY(setn)
|
|
|
1993
1947
|
|
|
1994
1948
|
/* ### Here we do the instruction body. ### */
|
|
1995
1949
|
# define NAME_OF_CURRENT_INSN setn
|
|
1996
|
-
# line
|
|
1950
|
+
# line 708 "insns.def"
|
|
1997
1951
|
{
|
|
1998
1952
|
TOPN(n) = val;
|
|
1999
1953
|
}
|
|
2000
|
-
# line
|
|
1954
|
+
# line 1955 "vm.inc"
|
|
2001
1955
|
# undef NAME_OF_CURRENT_INSN
|
|
2002
1956
|
|
|
2003
1957
|
/* ### Instruction trailers. ### */
|
|
@@ -2065,14 +2019,14 @@ INSN_ENTRY(defined)
|
|
|
2065
2019
|
|
|
2066
2020
|
/* ### Here we do the instruction body. ### */
|
|
2067
2021
|
# define NAME_OF_CURRENT_INSN defined
|
|
2068
|
-
# line
|
|
2022
|
+
# line 734 "insns.def"
|
|
2069
2023
|
{
|
|
2070
2024
|
val = Qnil;
|
|
2071
2025
|
if (vm_defined(ec, GET_CFP(), op_type, obj, v)) {
|
|
2072
2026
|
val = pushval;
|
|
2073
2027
|
}
|
|
2074
2028
|
}
|
|
2075
|
-
# line
|
|
2029
|
+
# line 2030 "vm.inc"
|
|
2076
2030
|
# undef NAME_OF_CURRENT_INSN
|
|
2077
2031
|
|
|
2078
2032
|
/* ### Instruction trailers. ### */
|
|
@@ -2113,14 +2067,14 @@ INSN_ENTRY(definedivar)
|
|
|
2113
2067
|
|
|
2114
2068
|
/* ### Here we do the instruction body. ### */
|
|
2115
2069
|
# define NAME_OF_CURRENT_INSN definedivar
|
|
2116
|
-
# line
|
|
2070
|
+
# line 748 "insns.def"
|
|
2117
2071
|
{
|
|
2118
2072
|
val = Qnil;
|
|
2119
2073
|
if (!UNDEF_P(vm_getivar(GET_SELF(), id, GET_ISEQ(), ic, NULL, FALSE, Qundef))) {
|
|
2120
2074
|
val = pushval;
|
|
2121
2075
|
}
|
|
2122
2076
|
}
|
|
2123
|
-
# line
|
|
2077
|
+
# line 2078 "vm.inc"
|
|
2124
2078
|
# undef NAME_OF_CURRENT_INSN
|
|
2125
2079
|
|
|
2126
2080
|
/* ### Instruction trailers. ### */
|
|
@@ -2159,11 +2113,11 @@ INSN_ENTRY(checkmatch)
|
|
|
2159
2113
|
|
|
2160
2114
|
/* ### Here we do the instruction body. ### */
|
|
2161
2115
|
# define NAME_OF_CURRENT_INSN checkmatch
|
|
2162
|
-
# line
|
|
2116
|
+
# line 768 "insns.def"
|
|
2163
2117
|
{
|
|
2164
2118
|
result = vm_check_match(ec, target, pattern, flag);
|
|
2165
2119
|
}
|
|
2166
|
-
# line
|
|
2120
|
+
# line 2121 "vm.inc"
|
|
2167
2121
|
# undef NAME_OF_CURRENT_INSN
|
|
2168
2122
|
|
|
2169
2123
|
/* ### Instruction trailers. ### */
|
|
@@ -2202,11 +2156,11 @@ INSN_ENTRY(checkkeyword)
|
|
|
2202
2156
|
|
|
2203
2157
|
/* ### Here we do the instruction body. ### */
|
|
2204
2158
|
# define NAME_OF_CURRENT_INSN checkkeyword
|
|
2205
|
-
# line
|
|
2159
|
+
# line 778 "insns.def"
|
|
2206
2160
|
{
|
|
2207
2161
|
ret = vm_check_keyword(kw_bits_index, keyword_index, GET_EP());
|
|
2208
2162
|
}
|
|
2209
|
-
# line
|
|
2163
|
+
# line 2164 "vm.inc"
|
|
2210
2164
|
# undef NAME_OF_CURRENT_INSN
|
|
2211
2165
|
|
|
2212
2166
|
/* ### Instruction trailers. ### */
|
|
@@ -2244,11 +2198,11 @@ INSN_ENTRY(checktype)
|
|
|
2244
2198
|
|
|
2245
2199
|
/* ### Here we do the instruction body. ### */
|
|
2246
2200
|
# define NAME_OF_CURRENT_INSN checktype
|
|
2247
|
-
# line
|
|
2201
|
+
# line 788 "insns.def"
|
|
2248
2202
|
{
|
|
2249
2203
|
ret = RBOOL(TYPE(val) == (int)type);
|
|
2250
2204
|
}
|
|
2251
|
-
# line
|
|
2205
|
+
# line 2206 "vm.inc"
|
|
2252
2206
|
# undef NAME_OF_CURRENT_INSN
|
|
2253
2207
|
|
|
2254
2208
|
/* ### Instruction trailers. ### */
|
|
@@ -2292,15 +2246,16 @@ INSN_ENTRY(defineclass)
|
|
|
2292
2246
|
|
|
2293
2247
|
/* ### Here we do the instruction body. ### */
|
|
2294
2248
|
# define NAME_OF_CURRENT_INSN defineclass
|
|
2295
|
-
# line
|
|
2249
|
+
# line 804 "insns.def"
|
|
2296
2250
|
{
|
|
2297
2251
|
VALUE klass = vm_find_or_create_class_by_id(id, flags, cbase, super);
|
|
2252
|
+
const rb_box_t *box = rb_current_box();
|
|
2298
2253
|
|
|
2299
2254
|
rb_iseq_check(class_iseq);
|
|
2300
2255
|
|
|
2301
2256
|
/* enter scope */
|
|
2302
2257
|
vm_push_frame(ec, class_iseq, VM_FRAME_MAGIC_CLASS | VM_ENV_FLAG_LOCAL, klass,
|
|
2303
|
-
|
|
2258
|
+
GC_GUARDED_PTR(box),
|
|
2304
2259
|
(VALUE)vm_cref_push(ec, klass, NULL, FALSE, FALSE),
|
|
2305
2260
|
ISEQ_BODY(class_iseq)->iseq_encoded, GET_SP(),
|
|
2306
2261
|
ISEQ_BODY(class_iseq)->local_table_size,
|
|
@@ -2308,7 +2263,7 @@ INSN_ENTRY(defineclass)
|
|
|
2308
2263
|
RESTORE_REGS();
|
|
2309
2264
|
NEXT_INSN();
|
|
2310
2265
|
}
|
|
2311
|
-
# line
|
|
2266
|
+
# line 2267 "vm.inc"
|
|
2312
2267
|
# undef NAME_OF_CURRENT_INSN
|
|
2313
2268
|
|
|
2314
2269
|
/* ### Instruction trailers. ### */
|
|
@@ -2344,11 +2299,11 @@ INSN_ENTRY(definemethod)
|
|
|
2344
2299
|
|
|
2345
2300
|
/* ### Here we do the instruction body. ### */
|
|
2346
2301
|
# define NAME_OF_CURRENT_INSN definemethod
|
|
2347
|
-
# line
|
|
2302
|
+
# line 826 "insns.def"
|
|
2348
2303
|
{
|
|
2349
2304
|
vm_define_method(ec, Qnil, id, (VALUE)iseq, FALSE);
|
|
2350
2305
|
}
|
|
2351
|
-
# line
|
|
2306
|
+
# line 2307 "vm.inc"
|
|
2352
2307
|
# undef NAME_OF_CURRENT_INSN
|
|
2353
2308
|
|
|
2354
2309
|
/* ### Instruction trailers. ### */
|
|
@@ -2384,11 +2339,11 @@ INSN_ENTRY(definesmethod)
|
|
|
2384
2339
|
|
|
2385
2340
|
/* ### Here we do the instruction body. ### */
|
|
2386
2341
|
# define NAME_OF_CURRENT_INSN definesmethod
|
|
2387
|
-
# line
|
|
2342
|
+
# line 835 "insns.def"
|
|
2388
2343
|
{
|
|
2389
2344
|
vm_define_method(ec, obj, id, (VALUE)iseq, TRUE);
|
|
2390
2345
|
}
|
|
2391
|
-
# line
|
|
2346
|
+
# line 2347 "vm.inc"
|
|
2392
2347
|
# undef NAME_OF_CURRENT_INSN
|
|
2393
2348
|
|
|
2394
2349
|
/* ### Instruction trailers. ### */
|
|
@@ -2424,7 +2379,7 @@ INSN_ENTRY(send)
|
|
|
2424
2379
|
|
|
2425
2380
|
/* ### Here we do the instruction body. ### */
|
|
2426
2381
|
# define NAME_OF_CURRENT_INSN send
|
|
2427
|
-
# line
|
|
2382
|
+
# line 852 "insns.def"
|
|
2428
2383
|
{
|
|
2429
2384
|
VALUE bh = vm_caller_setup_arg_block(ec, GET_CFP(), cd->ci, blockiseq, false);
|
|
2430
2385
|
val = vm_sendish(ec, GET_CFP(), cd, bh, mexp_search_method);
|
|
@@ -2435,7 +2390,7 @@ INSN_ENTRY(send)
|
|
|
2435
2390
|
NEXT_INSN();
|
|
2436
2391
|
}
|
|
2437
2392
|
}
|
|
2438
|
-
# line
|
|
2393
|
+
# line 2394 "vm.inc"
|
|
2439
2394
|
# undef NAME_OF_CURRENT_INSN
|
|
2440
2395
|
|
|
2441
2396
|
/* ### Instruction trailers. ### */
|
|
@@ -2448,6 +2403,62 @@ INSN_ENTRY(send)
|
|
|
2448
2403
|
END_INSN(send);
|
|
2449
2404
|
}
|
|
2450
2405
|
|
|
2406
|
+
/* insn sendforward(cd, blockiseq)(...)(val) */
|
|
2407
|
+
INSN_ENTRY(sendforward)
|
|
2408
|
+
{
|
|
2409
|
+
/* ### Declare that we have just entered into an instruction. ### */
|
|
2410
|
+
START_OF_ORIGINAL_INSN(sendforward);
|
|
2411
|
+
DEBUG_ENTER_INSN("sendforward");
|
|
2412
|
+
|
|
2413
|
+
/* ### Declare and assign variables. ### */
|
|
2414
|
+
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
2415
|
+
ISEQ blockiseq = (ISEQ)GET_OPERAND(2);
|
|
2416
|
+
# define INSN_ATTR(x) attr_ ## x ## _sendforward(cd, blockiseq)
|
|
2417
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
2418
|
+
VALUE val;
|
|
2419
|
+
|
|
2420
|
+
/* ### Instruction preambles. ### */
|
|
2421
|
+
ADD_PC(INSN_ATTR(width));
|
|
2422
|
+
POPN(INSN_ATTR(popn));
|
|
2423
|
+
SETUP_CANARY(leaf);
|
|
2424
|
+
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
2425
|
+
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, cd);
|
|
2426
|
+
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 1, blockiseq);
|
|
2427
|
+
|
|
2428
|
+
/* ### Here we do the instruction body. ### */
|
|
2429
|
+
# define NAME_OF_CURRENT_INSN sendforward
|
|
2430
|
+
# line 871 "insns.def"
|
|
2431
|
+
{
|
|
2432
|
+
struct rb_forwarding_call_data adjusted_cd;
|
|
2433
|
+
struct rb_callinfo adjusted_ci;
|
|
2434
|
+
|
|
2435
|
+
VALUE bh = vm_caller_setup_fwd_args(ec, GET_CFP(), cd, blockiseq, 0, &adjusted_cd, &adjusted_ci);
|
|
2436
|
+
|
|
2437
|
+
val = vm_sendish(ec, GET_CFP(), &adjusted_cd.cd, bh, mexp_search_method);
|
|
2438
|
+
JIT_EXEC(ec, val);
|
|
2439
|
+
|
|
2440
|
+
if (cd->cc != adjusted_cd.cd.cc && vm_cc_markable(adjusted_cd.cd.cc)) {
|
|
2441
|
+
RB_OBJ_WRITE(GET_ISEQ(), &cd->cc, adjusted_cd.cd.cc);
|
|
2442
|
+
}
|
|
2443
|
+
|
|
2444
|
+
if (UNDEF_P(val)) {
|
|
2445
|
+
RESTORE_REGS();
|
|
2446
|
+
NEXT_INSN();
|
|
2447
|
+
}
|
|
2448
|
+
}
|
|
2449
|
+
# line 2450 "vm.inc"
|
|
2450
|
+
# undef NAME_OF_CURRENT_INSN
|
|
2451
|
+
|
|
2452
|
+
/* ### Instruction trailers. ### */
|
|
2453
|
+
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
2454
|
+
CHECK_CANARY(leaf, INSN_ATTR(bin));
|
|
2455
|
+
PUSH(val);
|
|
2456
|
+
# undef INSN_ATTR
|
|
2457
|
+
|
|
2458
|
+
/* ### Leave the instruction. ### */
|
|
2459
|
+
END_INSN(sendforward);
|
|
2460
|
+
}
|
|
2461
|
+
|
|
2451
2462
|
/* insn opt_send_without_block(cd)(...)(val) */
|
|
2452
2463
|
INSN_ENTRY(opt_send_without_block)
|
|
2453
2464
|
{
|
|
@@ -2470,7 +2481,7 @@ INSN_ENTRY(opt_send_without_block)
|
|
|
2470
2481
|
|
|
2471
2482
|
/* ### Here we do the instruction body. ### */
|
|
2472
2483
|
# define NAME_OF_CURRENT_INSN opt_send_without_block
|
|
2473
|
-
# line
|
|
2484
|
+
# line 900 "insns.def"
|
|
2474
2485
|
{
|
|
2475
2486
|
VALUE bh = VM_BLOCK_HANDLER_NONE;
|
|
2476
2487
|
val = vm_sendish(ec, GET_CFP(), cd, bh, mexp_search_method);
|
|
@@ -2481,7 +2492,7 @@ INSN_ENTRY(opt_send_without_block)
|
|
|
2481
2492
|
NEXT_INSN();
|
|
2482
2493
|
}
|
|
2483
2494
|
}
|
|
2484
|
-
# line
|
|
2495
|
+
# line 2496 "vm.inc"
|
|
2485
2496
|
# undef NAME_OF_CURRENT_INSN
|
|
2486
2497
|
|
|
2487
2498
|
/* ### Instruction trailers. ### */
|
|
@@ -2494,6 +2505,60 @@ INSN_ENTRY(opt_send_without_block)
|
|
|
2494
2505
|
END_INSN(opt_send_without_block);
|
|
2495
2506
|
}
|
|
2496
2507
|
|
|
2508
|
+
/* insn opt_new(cd, dst)()() */
|
|
2509
|
+
INSN_ENTRY(opt_new)
|
|
2510
|
+
{
|
|
2511
|
+
/* ### Declare that we have just entered into an instruction. ### */
|
|
2512
|
+
START_OF_ORIGINAL_INSN(opt_new);
|
|
2513
|
+
DEBUG_ENTER_INSN("opt_new");
|
|
2514
|
+
|
|
2515
|
+
/* ### Declare and assign variables. ### */
|
|
2516
|
+
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
2517
|
+
OFFSET dst = (OFFSET)GET_OPERAND(2);
|
|
2518
|
+
# define INSN_ATTR(x) attr_ ## x ## _opt_new(cd, dst)
|
|
2519
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
2520
|
+
|
|
2521
|
+
/* ### Instruction preambles. ### */
|
|
2522
|
+
ADD_PC(INSN_ATTR(width));
|
|
2523
|
+
SETUP_CANARY(leaf);
|
|
2524
|
+
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
2525
|
+
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, cd);
|
|
2526
|
+
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 1, dst);
|
|
2527
|
+
|
|
2528
|
+
/* ### Here we do the instruction body. ### */
|
|
2529
|
+
# define NAME_OF_CURRENT_INSN opt_new
|
|
2530
|
+
# line 918 "insns.def"
|
|
2531
|
+
{
|
|
2532
|
+
VALUE argc = vm_ci_argc(cd->ci);
|
|
2533
|
+
VALUE val = TOPN(argc);
|
|
2534
|
+
|
|
2535
|
+
// The bookkeeping slot should be empty.
|
|
2536
|
+
RUBY_ASSERT(TOPN(argc + 1) == Qnil);
|
|
2537
|
+
|
|
2538
|
+
if (vm_method_cfunc_is(GET_ISEQ(), cd, val, rb_class_new_instance_pass_kw)) {
|
|
2539
|
+
RB_DEBUG_COUNTER_INC(opt_new_hit);
|
|
2540
|
+
val = rb_obj_alloc(val);
|
|
2541
|
+
TOPN(argc) = val;
|
|
2542
|
+
TOPN(argc + 1) = val;
|
|
2543
|
+
}
|
|
2544
|
+
else {
|
|
2545
|
+
RB_DEBUG_COUNTER_INC(opt_new_miss);
|
|
2546
|
+
JUMP(dst);
|
|
2547
|
+
}
|
|
2548
|
+
}
|
|
2549
|
+
# line 2550 "vm.inc"
|
|
2550
|
+
# undef NAME_OF_CURRENT_INSN
|
|
2551
|
+
|
|
2552
|
+
/* ### Instruction trailers. ### */
|
|
2553
|
+
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
2554
|
+
CHECK_CANARY(leaf, INSN_ATTR(bin));
|
|
2555
|
+
INC_SP(INSN_ATTR(sp_inc));
|
|
2556
|
+
# undef INSN_ATTR
|
|
2557
|
+
|
|
2558
|
+
/* ### Leave the instruction. ### */
|
|
2559
|
+
END_INSN(opt_new);
|
|
2560
|
+
}
|
|
2561
|
+
|
|
2497
2562
|
/* insn objtostring(cd)(recv)(val) */
|
|
2498
2563
|
INSN_ENTRY(objtostring)
|
|
2499
2564
|
{
|
|
@@ -2516,7 +2581,7 @@ INSN_ENTRY(objtostring)
|
|
|
2516
2581
|
|
|
2517
2582
|
/* ### Here we do the instruction body. ### */
|
|
2518
2583
|
# define NAME_OF_CURRENT_INSN objtostring
|
|
2519
|
-
# line
|
|
2584
|
+
# line 945 "insns.def"
|
|
2520
2585
|
{
|
|
2521
2586
|
val = vm_objtostring(GET_ISEQ(), recv, cd);
|
|
2522
2587
|
|
|
@@ -2524,7 +2589,7 @@ INSN_ENTRY(objtostring)
|
|
|
2524
2589
|
CALL_SIMPLE_METHOD();
|
|
2525
2590
|
}
|
|
2526
2591
|
}
|
|
2527
|
-
# line
|
|
2592
|
+
# line 2593 "vm.inc"
|
|
2528
2593
|
# undef NAME_OF_CURRENT_INSN
|
|
2529
2594
|
|
|
2530
2595
|
/* ### Instruction trailers. ### */
|
|
@@ -2540,6 +2605,104 @@ INSN_ENTRY(objtostring)
|
|
|
2540
2605
|
END_INSN(objtostring);
|
|
2541
2606
|
}
|
|
2542
2607
|
|
|
2608
|
+
/* insn opt_ary_freeze(ary, cd)()(val) */
|
|
2609
|
+
INSN_ENTRY(opt_ary_freeze)
|
|
2610
|
+
{
|
|
2611
|
+
/* ### Declare that we have just entered into an instruction. ### */
|
|
2612
|
+
START_OF_ORIGINAL_INSN(opt_ary_freeze);
|
|
2613
|
+
DEBUG_ENTER_INSN("opt_ary_freeze");
|
|
2614
|
+
|
|
2615
|
+
/* ### Declare and assign variables. ### */
|
|
2616
|
+
VALUE ary = (VALUE)GET_OPERAND(1);
|
|
2617
|
+
CALL_DATA cd = (CALL_DATA)GET_OPERAND(2);
|
|
2618
|
+
# define INSN_ATTR(x) attr_ ## x ## _opt_ary_freeze(ary, cd)
|
|
2619
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
2620
|
+
VALUE val;
|
|
2621
|
+
|
|
2622
|
+
/* ### Instruction preambles. ### */
|
|
2623
|
+
ADD_PC(INSN_ATTR(width));
|
|
2624
|
+
SETUP_CANARY(leaf);
|
|
2625
|
+
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
2626
|
+
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, ary);
|
|
2627
|
+
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 1, cd);
|
|
2628
|
+
|
|
2629
|
+
/* ### Here we do the instruction body. ### */
|
|
2630
|
+
# define NAME_OF_CURRENT_INSN opt_ary_freeze
|
|
2631
|
+
# line 958 "insns.def"
|
|
2632
|
+
{
|
|
2633
|
+
val = vm_opt_ary_freeze(ary, BOP_FREEZE, idFreeze);
|
|
2634
|
+
|
|
2635
|
+
if (UNDEF_P(val)) {
|
|
2636
|
+
RUBY_DTRACE_CREATE_HOOK(ARRAY, RARRAY_LEN(ary));
|
|
2637
|
+
PUSH(rb_ary_resurrect(ary));
|
|
2638
|
+
CALL_SIMPLE_METHOD();
|
|
2639
|
+
}
|
|
2640
|
+
}
|
|
2641
|
+
# line 2642 "vm.inc"
|
|
2642
|
+
# undef NAME_OF_CURRENT_INSN
|
|
2643
|
+
|
|
2644
|
+
/* ### Instruction trailers. ### */
|
|
2645
|
+
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
2646
|
+
CHECK_CANARY(leaf, INSN_ATTR(bin));
|
|
2647
|
+
INC_SP(INSN_ATTR(sp_inc));
|
|
2648
|
+
TOPN(0) = val;
|
|
2649
|
+
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
2650
|
+
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
2651
|
+
# undef INSN_ATTR
|
|
2652
|
+
|
|
2653
|
+
/* ### Leave the instruction. ### */
|
|
2654
|
+
END_INSN(opt_ary_freeze);
|
|
2655
|
+
}
|
|
2656
|
+
|
|
2657
|
+
/* insn opt_hash_freeze(hash, cd)()(val) */
|
|
2658
|
+
INSN_ENTRY(opt_hash_freeze)
|
|
2659
|
+
{
|
|
2660
|
+
/* ### Declare that we have just entered into an instruction. ### */
|
|
2661
|
+
START_OF_ORIGINAL_INSN(opt_hash_freeze);
|
|
2662
|
+
DEBUG_ENTER_INSN("opt_hash_freeze");
|
|
2663
|
+
|
|
2664
|
+
/* ### Declare and assign variables. ### */
|
|
2665
|
+
VALUE hash = (VALUE)GET_OPERAND(1);
|
|
2666
|
+
CALL_DATA cd = (CALL_DATA)GET_OPERAND(2);
|
|
2667
|
+
# define INSN_ATTR(x) attr_ ## x ## _opt_hash_freeze(hash, cd)
|
|
2668
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
2669
|
+
VALUE val;
|
|
2670
|
+
|
|
2671
|
+
/* ### Instruction preambles. ### */
|
|
2672
|
+
ADD_PC(INSN_ATTR(width));
|
|
2673
|
+
SETUP_CANARY(leaf);
|
|
2674
|
+
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
2675
|
+
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, hash);
|
|
2676
|
+
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 1, cd);
|
|
2677
|
+
|
|
2678
|
+
/* ### Here we do the instruction body. ### */
|
|
2679
|
+
# define NAME_OF_CURRENT_INSN opt_hash_freeze
|
|
2680
|
+
# line 973 "insns.def"
|
|
2681
|
+
{
|
|
2682
|
+
val = vm_opt_hash_freeze(hash, BOP_FREEZE, idFreeze);
|
|
2683
|
+
|
|
2684
|
+
if (UNDEF_P(val)) {
|
|
2685
|
+
RUBY_DTRACE_CREATE_HOOK(HASH, RHASH_SIZE(hash) << 1);
|
|
2686
|
+
PUSH(rb_hash_resurrect(hash));
|
|
2687
|
+
CALL_SIMPLE_METHOD();
|
|
2688
|
+
}
|
|
2689
|
+
}
|
|
2690
|
+
# line 2691 "vm.inc"
|
|
2691
|
+
# undef NAME_OF_CURRENT_INSN
|
|
2692
|
+
|
|
2693
|
+
/* ### Instruction trailers. ### */
|
|
2694
|
+
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
2695
|
+
CHECK_CANARY(leaf, INSN_ATTR(bin));
|
|
2696
|
+
INC_SP(INSN_ATTR(sp_inc));
|
|
2697
|
+
TOPN(0) = val;
|
|
2698
|
+
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
2699
|
+
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
2700
|
+
# undef INSN_ATTR
|
|
2701
|
+
|
|
2702
|
+
/* ### Leave the instruction. ### */
|
|
2703
|
+
END_INSN(opt_hash_freeze);
|
|
2704
|
+
}
|
|
2705
|
+
|
|
2543
2706
|
/* insn opt_str_freeze(str, cd)()(val) */
|
|
2544
2707
|
INSN_ENTRY(opt_str_freeze)
|
|
2545
2708
|
{
|
|
@@ -2563,7 +2726,7 @@ INSN_ENTRY(opt_str_freeze)
|
|
|
2563
2726
|
|
|
2564
2727
|
/* ### Here we do the instruction body. ### */
|
|
2565
2728
|
# define NAME_OF_CURRENT_INSN opt_str_freeze
|
|
2566
|
-
# line
|
|
2729
|
+
# line 988 "insns.def"
|
|
2567
2730
|
{
|
|
2568
2731
|
val = vm_opt_str_freeze(str, BOP_FREEZE, idFreeze);
|
|
2569
2732
|
|
|
@@ -2572,7 +2735,7 @@ INSN_ENTRY(opt_str_freeze)
|
|
|
2572
2735
|
CALL_SIMPLE_METHOD();
|
|
2573
2736
|
}
|
|
2574
2737
|
}
|
|
2575
|
-
# line
|
|
2738
|
+
# line 2739 "vm.inc"
|
|
2576
2739
|
# undef NAME_OF_CURRENT_INSN
|
|
2577
2740
|
|
|
2578
2741
|
/* ### Instruction trailers. ### */
|
|
@@ -2610,7 +2773,7 @@ INSN_ENTRY(opt_nil_p)
|
|
|
2610
2773
|
|
|
2611
2774
|
/* ### Here we do the instruction body. ### */
|
|
2612
2775
|
# define NAME_OF_CURRENT_INSN opt_nil_p
|
|
2613
|
-
# line
|
|
2776
|
+
# line 1004 "insns.def"
|
|
2614
2777
|
{
|
|
2615
2778
|
val = vm_opt_nil_p(GET_ISEQ(), cd, recv);
|
|
2616
2779
|
|
|
@@ -2618,7 +2781,7 @@ INSN_ENTRY(opt_nil_p)
|
|
|
2618
2781
|
CALL_SIMPLE_METHOD();
|
|
2619
2782
|
}
|
|
2620
2783
|
}
|
|
2621
|
-
# line
|
|
2784
|
+
# line 2785 "vm.inc"
|
|
2622
2785
|
# undef NAME_OF_CURRENT_INSN
|
|
2623
2786
|
|
|
2624
2787
|
/* ### Instruction trailers. ### */
|
|
@@ -2657,7 +2820,7 @@ INSN_ENTRY(opt_str_uminus)
|
|
|
2657
2820
|
|
|
2658
2821
|
/* ### Here we do the instruction body. ### */
|
|
2659
2822
|
# define NAME_OF_CURRENT_INSN opt_str_uminus
|
|
2660
|
-
# line
|
|
2823
|
+
# line 1017 "insns.def"
|
|
2661
2824
|
{
|
|
2662
2825
|
val = vm_opt_str_freeze(str, BOP_UMINUS, idUMinus);
|
|
2663
2826
|
|
|
@@ -2666,7 +2829,7 @@ INSN_ENTRY(opt_str_uminus)
|
|
|
2666
2829
|
CALL_SIMPLE_METHOD();
|
|
2667
2830
|
}
|
|
2668
2831
|
}
|
|
2669
|
-
# line
|
|
2832
|
+
# line 2833 "vm.inc"
|
|
2670
2833
|
# undef NAME_OF_CURRENT_INSN
|
|
2671
2834
|
|
|
2672
2835
|
/* ### Instruction trailers. ### */
|
|
@@ -2682,6 +2845,57 @@ INSN_ENTRY(opt_str_uminus)
|
|
|
2682
2845
|
END_INSN(opt_str_uminus);
|
|
2683
2846
|
}
|
|
2684
2847
|
|
|
2848
|
+
/* insn opt_duparray_send(ary, method, argc)(...)(val) */
|
|
2849
|
+
INSN_ENTRY(opt_duparray_send)
|
|
2850
|
+
{
|
|
2851
|
+
/* ### Declare that we have just entered into an instruction. ### */
|
|
2852
|
+
START_OF_ORIGINAL_INSN(opt_duparray_send);
|
|
2853
|
+
DEBUG_ENTER_INSN("opt_duparray_send");
|
|
2854
|
+
|
|
2855
|
+
/* ### Declare and assign variables. ### */
|
|
2856
|
+
VALUE ary = (VALUE)GET_OPERAND(1);
|
|
2857
|
+
ID method = (ID)GET_OPERAND(2);
|
|
2858
|
+
rb_num_t argc = (rb_num_t)GET_OPERAND(3);
|
|
2859
|
+
# define INSN_ATTR(x) attr_ ## x ## _opt_duparray_send(ary, method, argc)
|
|
2860
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
2861
|
+
VALUE val;
|
|
2862
|
+
|
|
2863
|
+
/* ### Instruction preambles. ### */
|
|
2864
|
+
ADD_PC(INSN_ATTR(width));
|
|
2865
|
+
SETUP_CANARY(leaf);
|
|
2866
|
+
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
2867
|
+
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, ary);
|
|
2868
|
+
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 1, method);
|
|
2869
|
+
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 2, argc);
|
|
2870
|
+
|
|
2871
|
+
/* ### Here we do the instruction body. ### */
|
|
2872
|
+
# define NAME_OF_CURRENT_INSN opt_duparray_send
|
|
2873
|
+
# line 1038 "insns.def"
|
|
2874
|
+
{
|
|
2875
|
+
switch (method) {
|
|
2876
|
+
case idIncludeP:
|
|
2877
|
+
val = vm_opt_duparray_include_p(ec, ary, TOPN(0));
|
|
2878
|
+
break;
|
|
2879
|
+
default:
|
|
2880
|
+
rb_bug("unreachable");
|
|
2881
|
+
}
|
|
2882
|
+
}
|
|
2883
|
+
# line 2884 "vm.inc"
|
|
2884
|
+
# undef NAME_OF_CURRENT_INSN
|
|
2885
|
+
|
|
2886
|
+
/* ### Instruction trailers. ### */
|
|
2887
|
+
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
2888
|
+
CHECK_CANARY(leaf, INSN_ATTR(bin));
|
|
2889
|
+
INC_SP(INSN_ATTR(sp_inc));
|
|
2890
|
+
TOPN(0) = val;
|
|
2891
|
+
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
2892
|
+
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
2893
|
+
# undef INSN_ATTR
|
|
2894
|
+
|
|
2895
|
+
/* ### Leave the instruction. ### */
|
|
2896
|
+
END_INSN(opt_duparray_send);
|
|
2897
|
+
}
|
|
2898
|
+
|
|
2685
2899
|
/* insn opt_newarray_send(num, method)(...)(val) */
|
|
2686
2900
|
INSN_ENTRY(opt_newarray_send)
|
|
2687
2901
|
{
|
|
@@ -2691,7 +2905,7 @@ INSN_ENTRY(opt_newarray_send)
|
|
|
2691
2905
|
|
|
2692
2906
|
/* ### Declare and assign variables. ### */
|
|
2693
2907
|
rb_num_t num = (rb_num_t)GET_OPERAND(1);
|
|
2694
|
-
|
|
2908
|
+
rb_num_t method = (rb_num_t)GET_OPERAND(2);
|
|
2695
2909
|
# define INSN_ATTR(x) attr_ ## x ## _opt_newarray_send(num, method)
|
|
2696
2910
|
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
2697
2911
|
VALUE val;
|
|
@@ -2705,23 +2919,32 @@ INSN_ENTRY(opt_newarray_send)
|
|
|
2705
2919
|
|
|
2706
2920
|
/* ### Here we do the instruction body. ### */
|
|
2707
2921
|
# define NAME_OF_CURRENT_INSN opt_newarray_send
|
|
2708
|
-
# line
|
|
2922
|
+
# line 1060 "insns.def"
|
|
2709
2923
|
{
|
|
2710
|
-
switch(method) {
|
|
2711
|
-
case
|
|
2924
|
+
switch (method) {
|
|
2925
|
+
case VM_OPT_NEWARRAY_SEND_HASH:
|
|
2712
2926
|
val = vm_opt_newarray_hash(ec, num, STACK_ADDR_FROM_TOP(num));
|
|
2713
2927
|
break;
|
|
2714
|
-
case
|
|
2928
|
+
case VM_OPT_NEWARRAY_SEND_MIN:
|
|
2715
2929
|
val = vm_opt_newarray_min(ec, num, STACK_ADDR_FROM_TOP(num));
|
|
2716
2930
|
break;
|
|
2717
|
-
case
|
|
2931
|
+
case VM_OPT_NEWARRAY_SEND_MAX:
|
|
2718
2932
|
val = vm_opt_newarray_max(ec, num, STACK_ADDR_FROM_TOP(num));
|
|
2719
2933
|
break;
|
|
2934
|
+
case VM_OPT_NEWARRAY_SEND_INCLUDE_P:
|
|
2935
|
+
val = vm_opt_newarray_include_p(ec, (long)num-1, STACK_ADDR_FROM_TOP(num), TOPN(0));
|
|
2936
|
+
break;
|
|
2937
|
+
case VM_OPT_NEWARRAY_SEND_PACK:
|
|
2938
|
+
val = vm_opt_newarray_pack_buffer(ec, (long)num-1, STACK_ADDR_FROM_TOP(num), TOPN(0), Qundef);
|
|
2939
|
+
break;
|
|
2940
|
+
case VM_OPT_NEWARRAY_SEND_PACK_BUFFER:
|
|
2941
|
+
val = vm_opt_newarray_pack_buffer(ec, (long)num-2, STACK_ADDR_FROM_TOP(num), TOPN(1), TOPN(0));
|
|
2942
|
+
break;
|
|
2720
2943
|
default:
|
|
2721
2944
|
rb_bug("unreachable");
|
|
2722
2945
|
}
|
|
2723
2946
|
}
|
|
2724
|
-
# line
|
|
2947
|
+
# line 2948 "vm.inc"
|
|
2725
2948
|
# undef NAME_OF_CURRENT_INSN
|
|
2726
2949
|
|
|
2727
2950
|
/* ### Instruction trailers. ### */
|
|
@@ -2761,7 +2984,7 @@ INSN_ENTRY(invokesuper)
|
|
|
2761
2984
|
|
|
2762
2985
|
/* ### Here we do the instruction body. ### */
|
|
2763
2986
|
# define NAME_OF_CURRENT_INSN invokesuper
|
|
2764
|
-
# line
|
|
2987
|
+
# line 1093 "insns.def"
|
|
2765
2988
|
{
|
|
2766
2989
|
VALUE bh = vm_caller_setup_arg_block(ec, GET_CFP(), cd->ci, blockiseq, true);
|
|
2767
2990
|
val = vm_sendish(ec, GET_CFP(), cd, bh, mexp_search_super);
|
|
@@ -2772,7 +2995,7 @@ INSN_ENTRY(invokesuper)
|
|
|
2772
2995
|
NEXT_INSN();
|
|
2773
2996
|
}
|
|
2774
2997
|
}
|
|
2775
|
-
# line
|
|
2998
|
+
# line 2999 "vm.inc"
|
|
2776
2999
|
# undef NAME_OF_CURRENT_INSN
|
|
2777
3000
|
|
|
2778
3001
|
/* ### Instruction trailers. ### */
|
|
@@ -2785,6 +3008,62 @@ INSN_ENTRY(invokesuper)
|
|
|
2785
3008
|
END_INSN(invokesuper);
|
|
2786
3009
|
}
|
|
2787
3010
|
|
|
3011
|
+
/* insn invokesuperforward(cd, blockiseq)(...)(val) */
|
|
3012
|
+
INSN_ENTRY(invokesuperforward)
|
|
3013
|
+
{
|
|
3014
|
+
/* ### Declare that we have just entered into an instruction. ### */
|
|
3015
|
+
START_OF_ORIGINAL_INSN(invokesuperforward);
|
|
3016
|
+
DEBUG_ENTER_INSN("invokesuperforward");
|
|
3017
|
+
|
|
3018
|
+
/* ### Declare and assign variables. ### */
|
|
3019
|
+
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3020
|
+
ISEQ blockiseq = (ISEQ)GET_OPERAND(2);
|
|
3021
|
+
# define INSN_ATTR(x) attr_ ## x ## _invokesuperforward(cd, blockiseq)
|
|
3022
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
3023
|
+
VALUE val;
|
|
3024
|
+
|
|
3025
|
+
/* ### Instruction preambles. ### */
|
|
3026
|
+
ADD_PC(INSN_ATTR(width));
|
|
3027
|
+
POPN(INSN_ATTR(popn));
|
|
3028
|
+
SETUP_CANARY(leaf);
|
|
3029
|
+
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
3030
|
+
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, cd);
|
|
3031
|
+
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 1, blockiseq);
|
|
3032
|
+
|
|
3033
|
+
/* ### Here we do the instruction body. ### */
|
|
3034
|
+
# define NAME_OF_CURRENT_INSN invokesuperforward
|
|
3035
|
+
# line 1112 "insns.def"
|
|
3036
|
+
{
|
|
3037
|
+
struct rb_forwarding_call_data adjusted_cd;
|
|
3038
|
+
struct rb_callinfo adjusted_ci;
|
|
3039
|
+
|
|
3040
|
+
VALUE bh = vm_caller_setup_fwd_args(ec, GET_CFP(), cd, blockiseq, 1, &adjusted_cd, &adjusted_ci);
|
|
3041
|
+
|
|
3042
|
+
val = vm_sendish(ec, GET_CFP(), &adjusted_cd.cd, bh, mexp_search_super);
|
|
3043
|
+
JIT_EXEC(ec, val);
|
|
3044
|
+
|
|
3045
|
+
if (cd->cc != adjusted_cd.cd.cc && vm_cc_markable(adjusted_cd.cd.cc)) {
|
|
3046
|
+
RB_OBJ_WRITE(GET_ISEQ(), &cd->cc, adjusted_cd.cd.cc);
|
|
3047
|
+
}
|
|
3048
|
+
|
|
3049
|
+
if (UNDEF_P(val)) {
|
|
3050
|
+
RESTORE_REGS();
|
|
3051
|
+
NEXT_INSN();
|
|
3052
|
+
}
|
|
3053
|
+
}
|
|
3054
|
+
# line 3055 "vm.inc"
|
|
3055
|
+
# undef NAME_OF_CURRENT_INSN
|
|
3056
|
+
|
|
3057
|
+
/* ### Instruction trailers. ### */
|
|
3058
|
+
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
3059
|
+
CHECK_CANARY(leaf, INSN_ATTR(bin));
|
|
3060
|
+
PUSH(val);
|
|
3061
|
+
# undef INSN_ATTR
|
|
3062
|
+
|
|
3063
|
+
/* ### Leave the instruction. ### */
|
|
3064
|
+
END_INSN(invokesuperforward);
|
|
3065
|
+
}
|
|
3066
|
+
|
|
2788
3067
|
/* insn invokeblock(cd)(...)(val) */
|
|
2789
3068
|
INSN_ENTRY(invokeblock)
|
|
2790
3069
|
{
|
|
@@ -2807,7 +3086,7 @@ INSN_ENTRY(invokeblock)
|
|
|
2807
3086
|
|
|
2808
3087
|
/* ### Here we do the instruction body. ### */
|
|
2809
3088
|
# define NAME_OF_CURRENT_INSN invokeblock
|
|
2810
|
-
# line
|
|
3089
|
+
# line 1141 "insns.def"
|
|
2811
3090
|
{
|
|
2812
3091
|
VALUE bh = VM_BLOCK_HANDLER_NONE;
|
|
2813
3092
|
val = vm_sendish(ec, GET_CFP(), cd, bh, mexp_search_invokeblock);
|
|
@@ -2818,7 +3097,7 @@ INSN_ENTRY(invokeblock)
|
|
|
2818
3097
|
NEXT_INSN();
|
|
2819
3098
|
}
|
|
2820
3099
|
}
|
|
2821
|
-
# line
|
|
3100
|
+
# line 3101 "vm.inc"
|
|
2822
3101
|
# undef NAME_OF_CURRENT_INSN
|
|
2823
3102
|
|
|
2824
3103
|
/* ### Instruction trailers. ### */
|
|
@@ -2851,7 +3130,7 @@ INSN_ENTRY(leave)
|
|
|
2851
3130
|
|
|
2852
3131
|
/* ### Here we do the instruction body. ### */
|
|
2853
3132
|
# define NAME_OF_CURRENT_INSN leave
|
|
2854
|
-
# line
|
|
3133
|
+
# line 1163 "insns.def"
|
|
2855
3134
|
{
|
|
2856
3135
|
if (OPT_CHECKED_RUN) {
|
|
2857
3136
|
const VALUE *const bp = vm_base_ptr(GET_CFP());
|
|
@@ -2872,7 +3151,7 @@ INSN_ENTRY(leave)
|
|
|
2872
3151
|
RESTORE_REGS();
|
|
2873
3152
|
}
|
|
2874
3153
|
}
|
|
2875
|
-
# line
|
|
3154
|
+
# line 3155 "vm.inc"
|
|
2876
3155
|
# undef NAME_OF_CURRENT_INSN
|
|
2877
3156
|
|
|
2878
3157
|
/* ### Instruction trailers. ### */
|
|
@@ -2907,13 +3186,13 @@ INSN_ENTRY(throw)
|
|
|
2907
3186
|
|
|
2908
3187
|
/* ### Here we do the instruction body. ### */
|
|
2909
3188
|
# define NAME_OF_CURRENT_INSN throw
|
|
2910
|
-
# line
|
|
3189
|
+
# line 1196 "insns.def"
|
|
2911
3190
|
{
|
|
2912
3191
|
val = vm_throw(ec, GET_CFP(), throw_state, throwobj);
|
|
2913
3192
|
THROW_EXCEPTION(val);
|
|
2914
3193
|
/* unreachable */
|
|
2915
3194
|
}
|
|
2916
|
-
# line
|
|
3195
|
+
# line 3196 "vm.inc"
|
|
2917
3196
|
# undef NAME_OF_CURRENT_INSN
|
|
2918
3197
|
|
|
2919
3198
|
/* ### Instruction trailers. ### */
|
|
@@ -2949,12 +3228,12 @@ INSN_ENTRY(jump)
|
|
|
2949
3228
|
|
|
2950
3229
|
/* ### Here we do the instruction body. ### */
|
|
2951
3230
|
# define NAME_OF_CURRENT_INSN jump
|
|
2952
|
-
# line
|
|
3231
|
+
# line 1214 "insns.def"
|
|
2953
3232
|
{
|
|
2954
3233
|
RUBY_VM_CHECK_INTS(ec);
|
|
2955
3234
|
JUMP(dst);
|
|
2956
3235
|
}
|
|
2957
|
-
# line
|
|
3236
|
+
# line 3237 "vm.inc"
|
|
2958
3237
|
# undef NAME_OF_CURRENT_INSN
|
|
2959
3238
|
|
|
2960
3239
|
/* ### Instruction trailers. ### */
|
|
@@ -2988,14 +3267,14 @@ INSN_ENTRY(branchif)
|
|
|
2988
3267
|
|
|
2989
3268
|
/* ### Here we do the instruction body. ### */
|
|
2990
3269
|
# define NAME_OF_CURRENT_INSN branchif
|
|
2991
|
-
# line
|
|
3270
|
+
# line 1227 "insns.def"
|
|
2992
3271
|
{
|
|
2993
3272
|
if (RTEST(val)) {
|
|
2994
3273
|
RUBY_VM_CHECK_INTS(ec);
|
|
2995
3274
|
JUMP(dst);
|
|
2996
3275
|
}
|
|
2997
3276
|
}
|
|
2998
|
-
# line
|
|
3277
|
+
# line 3278 "vm.inc"
|
|
2999
3278
|
# undef NAME_OF_CURRENT_INSN
|
|
3000
3279
|
|
|
3001
3280
|
/* ### Instruction trailers. ### */
|
|
@@ -3029,14 +3308,14 @@ INSN_ENTRY(branchunless)
|
|
|
3029
3308
|
|
|
3030
3309
|
/* ### Here we do the instruction body. ### */
|
|
3031
3310
|
# define NAME_OF_CURRENT_INSN branchunless
|
|
3032
|
-
# line
|
|
3311
|
+
# line 1242 "insns.def"
|
|
3033
3312
|
{
|
|
3034
3313
|
if (!RTEST(val)) {
|
|
3035
3314
|
RUBY_VM_CHECK_INTS(ec);
|
|
3036
3315
|
JUMP(dst);
|
|
3037
3316
|
}
|
|
3038
3317
|
}
|
|
3039
|
-
# line
|
|
3318
|
+
# line 3319 "vm.inc"
|
|
3040
3319
|
# undef NAME_OF_CURRENT_INSN
|
|
3041
3320
|
|
|
3042
3321
|
/* ### Instruction trailers. ### */
|
|
@@ -3070,14 +3349,14 @@ INSN_ENTRY(branchnil)
|
|
|
3070
3349
|
|
|
3071
3350
|
/* ### Here we do the instruction body. ### */
|
|
3072
3351
|
# define NAME_OF_CURRENT_INSN branchnil
|
|
3073
|
-
# line
|
|
3352
|
+
# line 1257 "insns.def"
|
|
3074
3353
|
{
|
|
3075
3354
|
if (NIL_P(val)) {
|
|
3076
3355
|
RUBY_VM_CHECK_INTS(ec);
|
|
3077
3356
|
JUMP(dst);
|
|
3078
3357
|
}
|
|
3079
3358
|
}
|
|
3080
|
-
# line
|
|
3359
|
+
# line 3360 "vm.inc"
|
|
3081
3360
|
# undef NAME_OF_CURRENT_INSN
|
|
3082
3361
|
|
|
3083
3362
|
/* ### Instruction trailers. ### */
|
|
@@ -3114,11 +3393,11 @@ INSN_ENTRY(once)
|
|
|
3114
3393
|
|
|
3115
3394
|
/* ### Here we do the instruction body. ### */
|
|
3116
3395
|
# define NAME_OF_CURRENT_INSN once
|
|
3117
|
-
# line
|
|
3396
|
+
# line 1274 "insns.def"
|
|
3118
3397
|
{
|
|
3119
3398
|
val = vm_once_dispatch(ec, iseq, ise);
|
|
3120
3399
|
}
|
|
3121
|
-
# line
|
|
3400
|
+
# line 3401 "vm.inc"
|
|
3122
3401
|
# undef NAME_OF_CURRENT_INSN
|
|
3123
3402
|
|
|
3124
3403
|
/* ### Instruction trailers. ### */
|
|
@@ -3154,7 +3433,7 @@ INSN_ENTRY(opt_case_dispatch)
|
|
|
3154
3433
|
|
|
3155
3434
|
/* ### Here we do the instruction body. ### */
|
|
3156
3435
|
# define NAME_OF_CURRENT_INSN opt_case_dispatch
|
|
3157
|
-
# line
|
|
3436
|
+
# line 1285 "insns.def"
|
|
3158
3437
|
{
|
|
3159
3438
|
OFFSET dst = vm_case_dispatch(hash, else_offset, key);
|
|
3160
3439
|
|
|
@@ -3162,7 +3441,7 @@ INSN_ENTRY(opt_case_dispatch)
|
|
|
3162
3441
|
JUMP(dst);
|
|
3163
3442
|
}
|
|
3164
3443
|
}
|
|
3165
|
-
# line
|
|
3444
|
+
# line 3445 "vm.inc"
|
|
3166
3445
|
# undef NAME_OF_CURRENT_INSN
|
|
3167
3446
|
|
|
3168
3447
|
/* ### Instruction trailers. ### */
|
|
@@ -3198,7 +3477,7 @@ INSN_ENTRY(opt_plus)
|
|
|
3198
3477
|
|
|
3199
3478
|
/* ### Here we do the instruction body. ### */
|
|
3200
3479
|
# define NAME_OF_CURRENT_INSN opt_plus
|
|
3201
|
-
# line
|
|
3480
|
+
# line 1302 "insns.def"
|
|
3202
3481
|
{
|
|
3203
3482
|
val = vm_opt_plus(recv, obj);
|
|
3204
3483
|
|
|
@@ -3206,7 +3485,7 @@ INSN_ENTRY(opt_plus)
|
|
|
3206
3485
|
CALL_SIMPLE_METHOD();
|
|
3207
3486
|
}
|
|
3208
3487
|
}
|
|
3209
|
-
# line
|
|
3488
|
+
# line 3489 "vm.inc"
|
|
3210
3489
|
# undef NAME_OF_CURRENT_INSN
|
|
3211
3490
|
|
|
3212
3491
|
/* ### Instruction trailers. ### */
|
|
@@ -3245,7 +3524,7 @@ INSN_ENTRY(opt_minus)
|
|
|
3245
3524
|
|
|
3246
3525
|
/* ### Here we do the instruction body. ### */
|
|
3247
3526
|
# define NAME_OF_CURRENT_INSN opt_minus
|
|
3248
|
-
# line
|
|
3527
|
+
# line 1317 "insns.def"
|
|
3249
3528
|
{
|
|
3250
3529
|
val = vm_opt_minus(recv, obj);
|
|
3251
3530
|
|
|
@@ -3253,7 +3532,7 @@ INSN_ENTRY(opt_minus)
|
|
|
3253
3532
|
CALL_SIMPLE_METHOD();
|
|
3254
3533
|
}
|
|
3255
3534
|
}
|
|
3256
|
-
# line
|
|
3535
|
+
# line 3536 "vm.inc"
|
|
3257
3536
|
# undef NAME_OF_CURRENT_INSN
|
|
3258
3537
|
|
|
3259
3538
|
/* ### Instruction trailers. ### */
|
|
@@ -3292,7 +3571,7 @@ INSN_ENTRY(opt_mult)
|
|
|
3292
3571
|
|
|
3293
3572
|
/* ### Here we do the instruction body. ### */
|
|
3294
3573
|
# define NAME_OF_CURRENT_INSN opt_mult
|
|
3295
|
-
# line
|
|
3574
|
+
# line 1332 "insns.def"
|
|
3296
3575
|
{
|
|
3297
3576
|
val = vm_opt_mult(recv, obj);
|
|
3298
3577
|
|
|
@@ -3300,7 +3579,7 @@ INSN_ENTRY(opt_mult)
|
|
|
3300
3579
|
CALL_SIMPLE_METHOD();
|
|
3301
3580
|
}
|
|
3302
3581
|
}
|
|
3303
|
-
# line
|
|
3582
|
+
# line 3583 "vm.inc"
|
|
3304
3583
|
# undef NAME_OF_CURRENT_INSN
|
|
3305
3584
|
|
|
3306
3585
|
/* ### Instruction trailers. ### */
|
|
@@ -3339,7 +3618,7 @@ INSN_ENTRY(opt_div)
|
|
|
3339
3618
|
|
|
3340
3619
|
/* ### Here we do the instruction body. ### */
|
|
3341
3620
|
# define NAME_OF_CURRENT_INSN opt_div
|
|
3342
|
-
# line
|
|
3621
|
+
# line 1350 "insns.def"
|
|
3343
3622
|
{
|
|
3344
3623
|
val = vm_opt_div(recv, obj);
|
|
3345
3624
|
|
|
@@ -3347,7 +3626,7 @@ INSN_ENTRY(opt_div)
|
|
|
3347
3626
|
CALL_SIMPLE_METHOD();
|
|
3348
3627
|
}
|
|
3349
3628
|
}
|
|
3350
|
-
# line
|
|
3629
|
+
# line 3630 "vm.inc"
|
|
3351
3630
|
# undef NAME_OF_CURRENT_INSN
|
|
3352
3631
|
|
|
3353
3632
|
/* ### Instruction trailers. ### */
|
|
@@ -3386,7 +3665,7 @@ INSN_ENTRY(opt_mod)
|
|
|
3386
3665
|
|
|
3387
3666
|
/* ### Here we do the instruction body. ### */
|
|
3388
3667
|
# define NAME_OF_CURRENT_INSN opt_mod
|
|
3389
|
-
# line
|
|
3668
|
+
# line 1367 "insns.def"
|
|
3390
3669
|
{
|
|
3391
3670
|
val = vm_opt_mod(recv, obj);
|
|
3392
3671
|
|
|
@@ -3394,7 +3673,7 @@ INSN_ENTRY(opt_mod)
|
|
|
3394
3673
|
CALL_SIMPLE_METHOD();
|
|
3395
3674
|
}
|
|
3396
3675
|
}
|
|
3397
|
-
# line
|
|
3676
|
+
# line 3677 "vm.inc"
|
|
3398
3677
|
# undef NAME_OF_CURRENT_INSN
|
|
3399
3678
|
|
|
3400
3679
|
/* ### Instruction trailers. ### */
|
|
@@ -3433,7 +3712,7 @@ INSN_ENTRY(opt_eq)
|
|
|
3433
3712
|
|
|
3434
3713
|
/* ### Here we do the instruction body. ### */
|
|
3435
3714
|
# define NAME_OF_CURRENT_INSN opt_eq
|
|
3436
|
-
# line
|
|
3715
|
+
# line 1382 "insns.def"
|
|
3437
3716
|
{
|
|
3438
3717
|
val = opt_equality(GET_ISEQ(), recv, obj, cd);
|
|
3439
3718
|
|
|
@@ -3441,7 +3720,7 @@ INSN_ENTRY(opt_eq)
|
|
|
3441
3720
|
CALL_SIMPLE_METHOD();
|
|
3442
3721
|
}
|
|
3443
3722
|
}
|
|
3444
|
-
# line
|
|
3723
|
+
# line 3724 "vm.inc"
|
|
3445
3724
|
# undef NAME_OF_CURRENT_INSN
|
|
3446
3725
|
|
|
3447
3726
|
/* ### Instruction trailers. ### */
|
|
@@ -3482,7 +3761,7 @@ INSN_ENTRY(opt_neq)
|
|
|
3482
3761
|
|
|
3483
3762
|
/* ### Here we do the instruction body. ### */
|
|
3484
3763
|
# define NAME_OF_CURRENT_INSN opt_neq
|
|
3485
|
-
# line
|
|
3764
|
+
# line 1397 "insns.def"
|
|
3486
3765
|
{
|
|
3487
3766
|
val = vm_opt_neq(GET_ISEQ(), cd, cd_eq, recv, obj);
|
|
3488
3767
|
|
|
@@ -3490,7 +3769,7 @@ INSN_ENTRY(opt_neq)
|
|
|
3490
3769
|
CALL_SIMPLE_METHOD();
|
|
3491
3770
|
}
|
|
3492
3771
|
}
|
|
3493
|
-
# line
|
|
3772
|
+
# line 3773 "vm.inc"
|
|
3494
3773
|
# undef NAME_OF_CURRENT_INSN
|
|
3495
3774
|
|
|
3496
3775
|
/* ### Instruction trailers. ### */
|
|
@@ -3529,7 +3808,7 @@ INSN_ENTRY(opt_lt)
|
|
|
3529
3808
|
|
|
3530
3809
|
/* ### Here we do the instruction body. ### */
|
|
3531
3810
|
# define NAME_OF_CURRENT_INSN opt_lt
|
|
3532
|
-
# line
|
|
3811
|
+
# line 1412 "insns.def"
|
|
3533
3812
|
{
|
|
3534
3813
|
val = vm_opt_lt(recv, obj);
|
|
3535
3814
|
|
|
@@ -3537,7 +3816,7 @@ INSN_ENTRY(opt_lt)
|
|
|
3537
3816
|
CALL_SIMPLE_METHOD();
|
|
3538
3817
|
}
|
|
3539
3818
|
}
|
|
3540
|
-
# line
|
|
3819
|
+
# line 3820 "vm.inc"
|
|
3541
3820
|
# undef NAME_OF_CURRENT_INSN
|
|
3542
3821
|
|
|
3543
3822
|
/* ### Instruction trailers. ### */
|
|
@@ -3576,7 +3855,7 @@ INSN_ENTRY(opt_le)
|
|
|
3576
3855
|
|
|
3577
3856
|
/* ### Here we do the instruction body. ### */
|
|
3578
3857
|
# define NAME_OF_CURRENT_INSN opt_le
|
|
3579
|
-
# line
|
|
3858
|
+
# line 1427 "insns.def"
|
|
3580
3859
|
{
|
|
3581
3860
|
val = vm_opt_le(recv, obj);
|
|
3582
3861
|
|
|
@@ -3584,7 +3863,7 @@ INSN_ENTRY(opt_le)
|
|
|
3584
3863
|
CALL_SIMPLE_METHOD();
|
|
3585
3864
|
}
|
|
3586
3865
|
}
|
|
3587
|
-
# line
|
|
3866
|
+
# line 3867 "vm.inc"
|
|
3588
3867
|
# undef NAME_OF_CURRENT_INSN
|
|
3589
3868
|
|
|
3590
3869
|
/* ### Instruction trailers. ### */
|
|
@@ -3623,7 +3902,7 @@ INSN_ENTRY(opt_gt)
|
|
|
3623
3902
|
|
|
3624
3903
|
/* ### Here we do the instruction body. ### */
|
|
3625
3904
|
# define NAME_OF_CURRENT_INSN opt_gt
|
|
3626
|
-
# line
|
|
3905
|
+
# line 1442 "insns.def"
|
|
3627
3906
|
{
|
|
3628
3907
|
val = vm_opt_gt(recv, obj);
|
|
3629
3908
|
|
|
@@ -3631,7 +3910,7 @@ INSN_ENTRY(opt_gt)
|
|
|
3631
3910
|
CALL_SIMPLE_METHOD();
|
|
3632
3911
|
}
|
|
3633
3912
|
}
|
|
3634
|
-
# line
|
|
3913
|
+
# line 3914 "vm.inc"
|
|
3635
3914
|
# undef NAME_OF_CURRENT_INSN
|
|
3636
3915
|
|
|
3637
3916
|
/* ### Instruction trailers. ### */
|
|
@@ -3670,7 +3949,7 @@ INSN_ENTRY(opt_ge)
|
|
|
3670
3949
|
|
|
3671
3950
|
/* ### Here we do the instruction body. ### */
|
|
3672
3951
|
# define NAME_OF_CURRENT_INSN opt_ge
|
|
3673
|
-
# line
|
|
3952
|
+
# line 1457 "insns.def"
|
|
3674
3953
|
{
|
|
3675
3954
|
val = vm_opt_ge(recv, obj);
|
|
3676
3955
|
|
|
@@ -3678,7 +3957,7 @@ INSN_ENTRY(opt_ge)
|
|
|
3678
3957
|
CALL_SIMPLE_METHOD();
|
|
3679
3958
|
}
|
|
3680
3959
|
}
|
|
3681
|
-
# line
|
|
3960
|
+
# line 3961 "vm.inc"
|
|
3682
3961
|
# undef NAME_OF_CURRENT_INSN
|
|
3683
3962
|
|
|
3684
3963
|
/* ### Instruction trailers. ### */
|
|
@@ -3717,7 +3996,7 @@ INSN_ENTRY(opt_ltlt)
|
|
|
3717
3996
|
|
|
3718
3997
|
/* ### Here we do the instruction body. ### */
|
|
3719
3998
|
# define NAME_OF_CURRENT_INSN opt_ltlt
|
|
3720
|
-
# line
|
|
3999
|
+
# line 1476 "insns.def"
|
|
3721
4000
|
{
|
|
3722
4001
|
val = vm_opt_ltlt(recv, obj);
|
|
3723
4002
|
|
|
@@ -3725,7 +4004,7 @@ INSN_ENTRY(opt_ltlt)
|
|
|
3725
4004
|
CALL_SIMPLE_METHOD();
|
|
3726
4005
|
}
|
|
3727
4006
|
}
|
|
3728
|
-
# line
|
|
4007
|
+
# line 4008 "vm.inc"
|
|
3729
4008
|
# undef NAME_OF_CURRENT_INSN
|
|
3730
4009
|
|
|
3731
4010
|
/* ### Instruction trailers. ### */
|
|
@@ -3764,7 +4043,7 @@ INSN_ENTRY(opt_and)
|
|
|
3764
4043
|
|
|
3765
4044
|
/* ### Here we do the instruction body. ### */
|
|
3766
4045
|
# define NAME_OF_CURRENT_INSN opt_and
|
|
3767
|
-
# line
|
|
4046
|
+
# line 1491 "insns.def"
|
|
3768
4047
|
{
|
|
3769
4048
|
val = vm_opt_and(recv, obj);
|
|
3770
4049
|
|
|
@@ -3772,7 +4051,7 @@ INSN_ENTRY(opt_and)
|
|
|
3772
4051
|
CALL_SIMPLE_METHOD();
|
|
3773
4052
|
}
|
|
3774
4053
|
}
|
|
3775
|
-
# line
|
|
4054
|
+
# line 4055 "vm.inc"
|
|
3776
4055
|
# undef NAME_OF_CURRENT_INSN
|
|
3777
4056
|
|
|
3778
4057
|
/* ### Instruction trailers. ### */
|
|
@@ -3811,7 +4090,7 @@ INSN_ENTRY(opt_or)
|
|
|
3811
4090
|
|
|
3812
4091
|
/* ### Here we do the instruction body. ### */
|
|
3813
4092
|
# define NAME_OF_CURRENT_INSN opt_or
|
|
3814
|
-
# line
|
|
4093
|
+
# line 1506 "insns.def"
|
|
3815
4094
|
{
|
|
3816
4095
|
val = vm_opt_or(recv, obj);
|
|
3817
4096
|
|
|
@@ -3819,7 +4098,7 @@ INSN_ENTRY(opt_or)
|
|
|
3819
4098
|
CALL_SIMPLE_METHOD();
|
|
3820
4099
|
}
|
|
3821
4100
|
}
|
|
3822
|
-
# line
|
|
4101
|
+
# line 4102 "vm.inc"
|
|
3823
4102
|
# undef NAME_OF_CURRENT_INSN
|
|
3824
4103
|
|
|
3825
4104
|
/* ### Instruction trailers. ### */
|
|
@@ -3858,7 +4137,7 @@ INSN_ENTRY(opt_aref)
|
|
|
3858
4137
|
|
|
3859
4138
|
/* ### Here we do the instruction body. ### */
|
|
3860
4139
|
# define NAME_OF_CURRENT_INSN opt_aref
|
|
3861
|
-
# line
|
|
4140
|
+
# line 1526 "insns.def"
|
|
3862
4141
|
{
|
|
3863
4142
|
val = vm_opt_aref(recv, obj);
|
|
3864
4143
|
|
|
@@ -3866,7 +4145,7 @@ INSN_ENTRY(opt_aref)
|
|
|
3866
4145
|
CALL_SIMPLE_METHOD();
|
|
3867
4146
|
}
|
|
3868
4147
|
}
|
|
3869
|
-
# line
|
|
4148
|
+
# line 4149 "vm.inc"
|
|
3870
4149
|
# undef NAME_OF_CURRENT_INSN
|
|
3871
4150
|
|
|
3872
4151
|
/* ### Instruction trailers. ### */
|
|
@@ -3906,7 +4185,7 @@ INSN_ENTRY(opt_aset)
|
|
|
3906
4185
|
|
|
3907
4186
|
/* ### Here we do the instruction body. ### */
|
|
3908
4187
|
# define NAME_OF_CURRENT_INSN opt_aset
|
|
3909
|
-
# line
|
|
4188
|
+
# line 1544 "insns.def"
|
|
3910
4189
|
{
|
|
3911
4190
|
val = vm_opt_aset(recv, obj, set);
|
|
3912
4191
|
|
|
@@ -3914,7 +4193,7 @@ INSN_ENTRY(opt_aset)
|
|
|
3914
4193
|
CALL_SIMPLE_METHOD();
|
|
3915
4194
|
}
|
|
3916
4195
|
}
|
|
3917
|
-
# line
|
|
4196
|
+
# line 4197 "vm.inc"
|
|
3918
4197
|
# undef NAME_OF_CURRENT_INSN
|
|
3919
4198
|
|
|
3920
4199
|
/* ### Instruction trailers. ### */
|
|
@@ -3930,108 +4209,6 @@ INSN_ENTRY(opt_aset)
|
|
|
3930
4209
|
END_INSN(opt_aset);
|
|
3931
4210
|
}
|
|
3932
4211
|
|
|
3933
|
-
/* insn opt_aset_with(key, cd)(recv, val)(val) */
|
|
3934
|
-
INSN_ENTRY(opt_aset_with)
|
|
3935
|
-
{
|
|
3936
|
-
/* ### Declare that we have just entered into an instruction. ### */
|
|
3937
|
-
START_OF_ORIGINAL_INSN(opt_aset_with);
|
|
3938
|
-
DEBUG_ENTER_INSN("opt_aset_with");
|
|
3939
|
-
|
|
3940
|
-
/* ### Declare and assign variables. ### */
|
|
3941
|
-
VALUE key = (VALUE)GET_OPERAND(1);
|
|
3942
|
-
CALL_DATA cd = (CALL_DATA)GET_OPERAND(2);
|
|
3943
|
-
# define INSN_ATTR(x) attr_ ## x ## _opt_aset_with(key, cd)
|
|
3944
|
-
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
3945
|
-
VALUE recv = TOPN(1);
|
|
3946
|
-
VALUE val = TOPN(0);
|
|
3947
|
-
|
|
3948
|
-
/* ### Instruction preambles. ### */
|
|
3949
|
-
ADD_PC(INSN_ATTR(width));
|
|
3950
|
-
SETUP_CANARY(leaf);
|
|
3951
|
-
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
3952
|
-
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, key);
|
|
3953
|
-
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 1, cd);
|
|
3954
|
-
|
|
3955
|
-
/* ### Here we do the instruction body. ### */
|
|
3956
|
-
# define NAME_OF_CURRENT_INSN opt_aset_with
|
|
3957
|
-
# line 1416 "insns.def"
|
|
3958
|
-
{
|
|
3959
|
-
VALUE tmp = vm_opt_aset_with(recv, key, val);
|
|
3960
|
-
|
|
3961
|
-
if (!UNDEF_P(tmp)) {
|
|
3962
|
-
val = tmp;
|
|
3963
|
-
}
|
|
3964
|
-
else {
|
|
3965
|
-
TOPN(0) = rb_str_resurrect(key);
|
|
3966
|
-
PUSH(val);
|
|
3967
|
-
CALL_SIMPLE_METHOD();
|
|
3968
|
-
}
|
|
3969
|
-
}
|
|
3970
|
-
# line 3971 "vm.inc"
|
|
3971
|
-
# undef NAME_OF_CURRENT_INSN
|
|
3972
|
-
|
|
3973
|
-
/* ### Instruction trailers. ### */
|
|
3974
|
-
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
3975
|
-
CHECK_CANARY(leaf, INSN_ATTR(bin));
|
|
3976
|
-
INC_SP(INSN_ATTR(sp_inc));
|
|
3977
|
-
TOPN(0) = val;
|
|
3978
|
-
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
3979
|
-
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
3980
|
-
# undef INSN_ATTR
|
|
3981
|
-
|
|
3982
|
-
/* ### Leave the instruction. ### */
|
|
3983
|
-
END_INSN(opt_aset_with);
|
|
3984
|
-
}
|
|
3985
|
-
|
|
3986
|
-
/* insn opt_aref_with(key, cd)(recv)(val) */
|
|
3987
|
-
INSN_ENTRY(opt_aref_with)
|
|
3988
|
-
{
|
|
3989
|
-
/* ### Declare that we have just entered into an instruction. ### */
|
|
3990
|
-
START_OF_ORIGINAL_INSN(opt_aref_with);
|
|
3991
|
-
DEBUG_ENTER_INSN("opt_aref_with");
|
|
3992
|
-
|
|
3993
|
-
/* ### Declare and assign variables. ### */
|
|
3994
|
-
VALUE key = (VALUE)GET_OPERAND(1);
|
|
3995
|
-
CALL_DATA cd = (CALL_DATA)GET_OPERAND(2);
|
|
3996
|
-
# define INSN_ATTR(x) attr_ ## x ## _opt_aref_with(key, cd)
|
|
3997
|
-
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
3998
|
-
VALUE recv = TOPN(0);
|
|
3999
|
-
VALUE val;
|
|
4000
|
-
|
|
4001
|
-
/* ### Instruction preambles. ### */
|
|
4002
|
-
ADD_PC(INSN_ATTR(width));
|
|
4003
|
-
SETUP_CANARY(leaf);
|
|
4004
|
-
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
4005
|
-
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, key);
|
|
4006
|
-
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 1, cd);
|
|
4007
|
-
|
|
4008
|
-
/* ### Here we do the instruction body. ### */
|
|
4009
|
-
# define NAME_OF_CURRENT_INSN opt_aref_with
|
|
4010
|
-
# line 1437 "insns.def"
|
|
4011
|
-
{
|
|
4012
|
-
val = vm_opt_aref_with(recv, key);
|
|
4013
|
-
|
|
4014
|
-
if (UNDEF_P(val)) {
|
|
4015
|
-
PUSH(rb_str_resurrect(key));
|
|
4016
|
-
CALL_SIMPLE_METHOD();
|
|
4017
|
-
}
|
|
4018
|
-
}
|
|
4019
|
-
# line 4020 "vm.inc"
|
|
4020
|
-
# undef NAME_OF_CURRENT_INSN
|
|
4021
|
-
|
|
4022
|
-
/* ### Instruction trailers. ### */
|
|
4023
|
-
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
4024
|
-
CHECK_CANARY(leaf, INSN_ATTR(bin));
|
|
4025
|
-
INC_SP(INSN_ATTR(sp_inc));
|
|
4026
|
-
TOPN(0) = val;
|
|
4027
|
-
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
4028
|
-
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
4029
|
-
# undef INSN_ATTR
|
|
4030
|
-
|
|
4031
|
-
/* ### Leave the instruction. ### */
|
|
4032
|
-
END_INSN(opt_aref_with);
|
|
4033
|
-
}
|
|
4034
|
-
|
|
4035
4212
|
/* insn opt_length(cd)(recv)(val) */
|
|
4036
4213
|
INSN_ENTRY(opt_length)
|
|
4037
4214
|
{
|
|
@@ -4054,7 +4231,7 @@ INSN_ENTRY(opt_length)
|
|
|
4054
4231
|
|
|
4055
4232
|
/* ### Here we do the instruction body. ### */
|
|
4056
4233
|
# define NAME_OF_CURRENT_INSN opt_length
|
|
4057
|
-
# line
|
|
4234
|
+
# line 1559 "insns.def"
|
|
4058
4235
|
{
|
|
4059
4236
|
val = vm_opt_length(recv, BOP_LENGTH);
|
|
4060
4237
|
|
|
@@ -4062,7 +4239,7 @@ INSN_ENTRY(opt_length)
|
|
|
4062
4239
|
CALL_SIMPLE_METHOD();
|
|
4063
4240
|
}
|
|
4064
4241
|
}
|
|
4065
|
-
# line
|
|
4242
|
+
# line 4243 "vm.inc"
|
|
4066
4243
|
# undef NAME_OF_CURRENT_INSN
|
|
4067
4244
|
|
|
4068
4245
|
/* ### Instruction trailers. ### */
|
|
@@ -4100,7 +4277,7 @@ INSN_ENTRY(opt_size)
|
|
|
4100
4277
|
|
|
4101
4278
|
/* ### Here we do the instruction body. ### */
|
|
4102
4279
|
# define NAME_OF_CURRENT_INSN opt_size
|
|
4103
|
-
# line
|
|
4280
|
+
# line 1574 "insns.def"
|
|
4104
4281
|
{
|
|
4105
4282
|
val = vm_opt_length(recv, BOP_SIZE);
|
|
4106
4283
|
|
|
@@ -4108,7 +4285,7 @@ INSN_ENTRY(opt_size)
|
|
|
4108
4285
|
CALL_SIMPLE_METHOD();
|
|
4109
4286
|
}
|
|
4110
4287
|
}
|
|
4111
|
-
# line
|
|
4288
|
+
# line 4289 "vm.inc"
|
|
4112
4289
|
# undef NAME_OF_CURRENT_INSN
|
|
4113
4290
|
|
|
4114
4291
|
/* ### Instruction trailers. ### */
|
|
@@ -4146,7 +4323,7 @@ INSN_ENTRY(opt_empty_p)
|
|
|
4146
4323
|
|
|
4147
4324
|
/* ### Here we do the instruction body. ### */
|
|
4148
4325
|
# define NAME_OF_CURRENT_INSN opt_empty_p
|
|
4149
|
-
# line
|
|
4326
|
+
# line 1589 "insns.def"
|
|
4150
4327
|
{
|
|
4151
4328
|
val = vm_opt_empty_p(recv);
|
|
4152
4329
|
|
|
@@ -4154,7 +4331,7 @@ INSN_ENTRY(opt_empty_p)
|
|
|
4154
4331
|
CALL_SIMPLE_METHOD();
|
|
4155
4332
|
}
|
|
4156
4333
|
}
|
|
4157
|
-
# line
|
|
4334
|
+
# line 4335 "vm.inc"
|
|
4158
4335
|
# undef NAME_OF_CURRENT_INSN
|
|
4159
4336
|
|
|
4160
4337
|
/* ### Instruction trailers. ### */
|
|
@@ -4192,7 +4369,7 @@ INSN_ENTRY(opt_succ)
|
|
|
4192
4369
|
|
|
4193
4370
|
/* ### Here we do the instruction body. ### */
|
|
4194
4371
|
# define NAME_OF_CURRENT_INSN opt_succ
|
|
4195
|
-
# line
|
|
4372
|
+
# line 1604 "insns.def"
|
|
4196
4373
|
{
|
|
4197
4374
|
val = vm_opt_succ(recv);
|
|
4198
4375
|
|
|
@@ -4200,7 +4377,7 @@ INSN_ENTRY(opt_succ)
|
|
|
4200
4377
|
CALL_SIMPLE_METHOD();
|
|
4201
4378
|
}
|
|
4202
4379
|
}
|
|
4203
|
-
# line
|
|
4380
|
+
# line 4381 "vm.inc"
|
|
4204
4381
|
# undef NAME_OF_CURRENT_INSN
|
|
4205
4382
|
|
|
4206
4383
|
/* ### Instruction trailers. ### */
|
|
@@ -4238,7 +4415,7 @@ INSN_ENTRY(opt_not)
|
|
|
4238
4415
|
|
|
4239
4416
|
/* ### Here we do the instruction body. ### */
|
|
4240
4417
|
# define NAME_OF_CURRENT_INSN opt_not
|
|
4241
|
-
# line
|
|
4418
|
+
# line 1619 "insns.def"
|
|
4242
4419
|
{
|
|
4243
4420
|
val = vm_opt_not(GET_ISEQ(), cd, recv);
|
|
4244
4421
|
|
|
@@ -4246,7 +4423,7 @@ INSN_ENTRY(opt_not)
|
|
|
4246
4423
|
CALL_SIMPLE_METHOD();
|
|
4247
4424
|
}
|
|
4248
4425
|
}
|
|
4249
|
-
# line
|
|
4426
|
+
# line 4427 "vm.inc"
|
|
4250
4427
|
# undef NAME_OF_CURRENT_INSN
|
|
4251
4428
|
|
|
4252
4429
|
/* ### Instruction trailers. ### */
|
|
@@ -4285,7 +4462,7 @@ INSN_ENTRY(opt_regexpmatch2)
|
|
|
4285
4462
|
|
|
4286
4463
|
/* ### Here we do the instruction body. ### */
|
|
4287
4464
|
# define NAME_OF_CURRENT_INSN opt_regexpmatch2
|
|
4288
|
-
# line
|
|
4465
|
+
# line 1635 "insns.def"
|
|
4289
4466
|
{
|
|
4290
4467
|
val = vm_opt_regexpmatch2(obj2, obj1);
|
|
4291
4468
|
|
|
@@ -4293,7 +4470,7 @@ INSN_ENTRY(opt_regexpmatch2)
|
|
|
4293
4470
|
CALL_SIMPLE_METHOD();
|
|
4294
4471
|
}
|
|
4295
4472
|
}
|
|
4296
|
-
# line
|
|
4473
|
+
# line 4474 "vm.inc"
|
|
4297
4474
|
# undef NAME_OF_CURRENT_INSN
|
|
4298
4475
|
|
|
4299
4476
|
/* ### Instruction trailers. ### */
|
|
@@ -4330,11 +4507,11 @@ INSN_ENTRY(invokebuiltin)
|
|
|
4330
4507
|
|
|
4331
4508
|
/* ### Here we do the instruction body. ### */
|
|
4332
4509
|
# define NAME_OF_CURRENT_INSN invokebuiltin
|
|
4333
|
-
# line
|
|
4510
|
+
# line 1651 "insns.def"
|
|
4334
4511
|
{
|
|
4335
4512
|
val = vm_invoke_builtin(ec, reg_cfp, bf, STACK_ADDR_FROM_TOP(bf->argc));
|
|
4336
4513
|
}
|
|
4337
|
-
# line
|
|
4514
|
+
# line 4515 "vm.inc"
|
|
4338
4515
|
# undef NAME_OF_CURRENT_INSN
|
|
4339
4516
|
|
|
4340
4517
|
/* ### Instruction trailers. ### */
|
|
@@ -4373,11 +4550,11 @@ INSN_ENTRY(opt_invokebuiltin_delegate)
|
|
|
4373
4550
|
|
|
4374
4551
|
/* ### Here we do the instruction body. ### */
|
|
4375
4552
|
# define NAME_OF_CURRENT_INSN opt_invokebuiltin_delegate
|
|
4376
|
-
# line
|
|
4553
|
+
# line 1662 "insns.def"
|
|
4377
4554
|
{
|
|
4378
4555
|
val = vm_invoke_builtin_delegate(ec, reg_cfp, bf, (unsigned int)index);
|
|
4379
4556
|
}
|
|
4380
|
-
# line
|
|
4557
|
+
# line 4558 "vm.inc"
|
|
4381
4558
|
# undef NAME_OF_CURRENT_INSN
|
|
4382
4559
|
|
|
4383
4560
|
/* ### Instruction trailers. ### */
|
|
@@ -4416,7 +4593,7 @@ INSN_ENTRY(opt_invokebuiltin_delegate_leave)
|
|
|
4416
4593
|
|
|
4417
4594
|
/* ### Here we do the instruction body. ### */
|
|
4418
4595
|
# define NAME_OF_CURRENT_INSN opt_invokebuiltin_delegate_leave
|
|
4419
|
-
# line
|
|
4596
|
+
# line 1673 "insns.def"
|
|
4420
4597
|
{
|
|
4421
4598
|
val = vm_invoke_builtin_delegate(ec, reg_cfp, bf, (unsigned int)index);
|
|
4422
4599
|
|
|
@@ -4434,7 +4611,7 @@ INSN_ENTRY(opt_invokebuiltin_delegate_leave)
|
|
|
4434
4611
|
RESTORE_REGS();
|
|
4435
4612
|
}
|
|
4436
4613
|
}
|
|
4437
|
-
# line
|
|
4614
|
+
# line 4615 "vm.inc"
|
|
4438
4615
|
# undef NAME_OF_CURRENT_INSN
|
|
4439
4616
|
|
|
4440
4617
|
/* ### Instruction trailers. ### */
|
|
@@ -4460,7 +4637,7 @@ INSN_ENTRY(getlocal_WC_0)
|
|
|
4460
4637
|
/* ### Declare and assign variables. ### */
|
|
4461
4638
|
#line 10 "defs/opt_operand.def"
|
|
4462
4639
|
const rb_num_t level = 0;
|
|
4463
|
-
#line
|
|
4640
|
+
#line 4641 "vm.inc"
|
|
4464
4641
|
lindex_t idx = (lindex_t)GET_OPERAND(1);
|
|
4465
4642
|
# define INSN_ATTR(x) attr_ ## x ## _getlocal_WC_0(idx)
|
|
4466
4643
|
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
@@ -4480,7 +4657,7 @@ INSN_ENTRY(getlocal_WC_0)
|
|
|
4480
4657
|
RB_DEBUG_COUNTER_INC(lvar_get);
|
|
4481
4658
|
(void)RB_DEBUG_COUNTER_INC_IF(lvar_get_dynamic, level > 0);
|
|
4482
4659
|
}
|
|
4483
|
-
# line
|
|
4660
|
+
# line 4661 "vm.inc"
|
|
4484
4661
|
# undef NAME_OF_CURRENT_INSN
|
|
4485
4662
|
|
|
4486
4663
|
/* ### Instruction trailers. ### */
|
|
@@ -4506,7 +4683,7 @@ INSN_ENTRY(getlocal_WC_1)
|
|
|
4506
4683
|
/* ### Declare and assign variables. ### */
|
|
4507
4684
|
#line 11 "defs/opt_operand.def"
|
|
4508
4685
|
const rb_num_t level = 1;
|
|
4509
|
-
#line
|
|
4686
|
+
#line 4687 "vm.inc"
|
|
4510
4687
|
lindex_t idx = (lindex_t)GET_OPERAND(1);
|
|
4511
4688
|
# define INSN_ATTR(x) attr_ ## x ## _getlocal_WC_1(idx)
|
|
4512
4689
|
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
@@ -4526,7 +4703,7 @@ INSN_ENTRY(getlocal_WC_1)
|
|
|
4526
4703
|
RB_DEBUG_COUNTER_INC(lvar_get);
|
|
4527
4704
|
(void)RB_DEBUG_COUNTER_INC_IF(lvar_get_dynamic, level > 0);
|
|
4528
4705
|
}
|
|
4529
|
-
# line
|
|
4706
|
+
# line 4707 "vm.inc"
|
|
4530
4707
|
# undef NAME_OF_CURRENT_INSN
|
|
4531
4708
|
|
|
4532
4709
|
/* ### Instruction trailers. ### */
|
|
@@ -4552,7 +4729,7 @@ INSN_ENTRY(setlocal_WC_0)
|
|
|
4552
4729
|
/* ### Declare and assign variables. ### */
|
|
4553
4730
|
#line 12 "defs/opt_operand.def"
|
|
4554
4731
|
const rb_num_t level = 0;
|
|
4555
|
-
#line
|
|
4732
|
+
#line 4733 "vm.inc"
|
|
4556
4733
|
lindex_t idx = (lindex_t)GET_OPERAND(1);
|
|
4557
4734
|
# define INSN_ATTR(x) attr_ ## x ## _setlocal_WC_0(idx)
|
|
4558
4735
|
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
@@ -4572,7 +4749,7 @@ INSN_ENTRY(setlocal_WC_0)
|
|
|
4572
4749
|
RB_DEBUG_COUNTER_INC(lvar_set);
|
|
4573
4750
|
(void)RB_DEBUG_COUNTER_INC_IF(lvar_set_dynamic, level > 0);
|
|
4574
4751
|
}
|
|
4575
|
-
# line
|
|
4752
|
+
# line 4753 "vm.inc"
|
|
4576
4753
|
# undef NAME_OF_CURRENT_INSN
|
|
4577
4754
|
|
|
4578
4755
|
/* ### Instruction trailers. ### */
|
|
@@ -4595,7 +4772,7 @@ INSN_ENTRY(setlocal_WC_1)
|
|
|
4595
4772
|
/* ### Declare and assign variables. ### */
|
|
4596
4773
|
#line 13 "defs/opt_operand.def"
|
|
4597
4774
|
const rb_num_t level = 1;
|
|
4598
|
-
#line
|
|
4775
|
+
#line 4776 "vm.inc"
|
|
4599
4776
|
lindex_t idx = (lindex_t)GET_OPERAND(1);
|
|
4600
4777
|
# define INSN_ATTR(x) attr_ ## x ## _setlocal_WC_1(idx)
|
|
4601
4778
|
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
@@ -4615,7 +4792,7 @@ INSN_ENTRY(setlocal_WC_1)
|
|
|
4615
4792
|
RB_DEBUG_COUNTER_INC(lvar_set);
|
|
4616
4793
|
(void)RB_DEBUG_COUNTER_INC_IF(lvar_set_dynamic, level > 0);
|
|
4617
4794
|
}
|
|
4618
|
-
# line
|
|
4795
|
+
# line 4796 "vm.inc"
|
|
4619
4796
|
# undef NAME_OF_CURRENT_INSN
|
|
4620
4797
|
|
|
4621
4798
|
/* ### Instruction trailers. ### */
|
|
@@ -4638,7 +4815,7 @@ INSN_ENTRY(putobject_INT2FIX_0_)
|
|
|
4638
4815
|
/* ### Declare and assign variables. ### */
|
|
4639
4816
|
#line 15 "defs/opt_operand.def"
|
|
4640
4817
|
const VALUE val = INT2FIX(0);
|
|
4641
|
-
#line
|
|
4818
|
+
#line 4819 "vm.inc"
|
|
4642
4819
|
# define INSN_ATTR(x) attr_ ## x ## _putobject_INT2FIX_0_()
|
|
4643
4820
|
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
4644
4821
|
|
|
@@ -4668,7 +4845,7 @@ INSN_ENTRY(putobject_INT2FIX_1_)
|
|
|
4668
4845
|
/* ### Declare and assign variables. ### */
|
|
4669
4846
|
#line 16 "defs/opt_operand.def"
|
|
4670
4847
|
const VALUE val = INT2FIX(1);
|
|
4671
|
-
#line
|
|
4848
|
+
#line 4849 "vm.inc"
|
|
4672
4849
|
# define INSN_ATTR(x) attr_ ## x ## _putobject_INT2FIX_1_()
|
|
4673
4850
|
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
4674
4851
|
|
|
@@ -4687,6 +4864,342 @@ INSN_ENTRY(putobject_INT2FIX_1_)
|
|
|
4687
4864
|
/* ### Leave the instruction. ### */
|
|
4688
4865
|
END_INSN(putobject_INT2FIX_1_);
|
|
4689
4866
|
}
|
|
4867
|
+
#if USE_ZJIT
|
|
4868
|
+
|
|
4869
|
+
/* insn zjit_getinstancevariable(...)(...)(...) */
|
|
4870
|
+
INSN_ENTRY(zjit_getinstancevariable)
|
|
4871
|
+
{
|
|
4872
|
+
START_OF_ORIGINAL_INSN(zjit_getinstancevariable);
|
|
4873
|
+
rb_zjit_profile_insn(BIN(getinstancevariable), ec);
|
|
4874
|
+
DISPATCH_ORIGINAL_INSN(getinstancevariable);
|
|
4875
|
+
END_INSN(zjit_getinstancevariable);
|
|
4876
|
+
}
|
|
4877
|
+
|
|
4878
|
+
#endif
|
|
4879
|
+
#if USE_ZJIT
|
|
4880
|
+
|
|
4881
|
+
/* insn zjit_send(...)(...)(...) */
|
|
4882
|
+
INSN_ENTRY(zjit_send)
|
|
4883
|
+
{
|
|
4884
|
+
START_OF_ORIGINAL_INSN(zjit_send);
|
|
4885
|
+
rb_zjit_profile_insn(BIN(send), ec);
|
|
4886
|
+
DISPATCH_ORIGINAL_INSN(send);
|
|
4887
|
+
END_INSN(zjit_send);
|
|
4888
|
+
}
|
|
4889
|
+
|
|
4890
|
+
#endif
|
|
4891
|
+
#if USE_ZJIT
|
|
4892
|
+
|
|
4893
|
+
/* insn zjit_opt_send_without_block(...)(...)(...) */
|
|
4894
|
+
INSN_ENTRY(zjit_opt_send_without_block)
|
|
4895
|
+
{
|
|
4896
|
+
START_OF_ORIGINAL_INSN(zjit_opt_send_without_block);
|
|
4897
|
+
rb_zjit_profile_insn(BIN(opt_send_without_block), ec);
|
|
4898
|
+
DISPATCH_ORIGINAL_INSN(opt_send_without_block);
|
|
4899
|
+
END_INSN(zjit_opt_send_without_block);
|
|
4900
|
+
}
|
|
4901
|
+
|
|
4902
|
+
#endif
|
|
4903
|
+
#if USE_ZJIT
|
|
4904
|
+
|
|
4905
|
+
/* insn zjit_objtostring(...)(...)(...) */
|
|
4906
|
+
INSN_ENTRY(zjit_objtostring)
|
|
4907
|
+
{
|
|
4908
|
+
START_OF_ORIGINAL_INSN(zjit_objtostring);
|
|
4909
|
+
rb_zjit_profile_insn(BIN(objtostring), ec);
|
|
4910
|
+
DISPATCH_ORIGINAL_INSN(objtostring);
|
|
4911
|
+
END_INSN(zjit_objtostring);
|
|
4912
|
+
}
|
|
4913
|
+
|
|
4914
|
+
#endif
|
|
4915
|
+
#if USE_ZJIT
|
|
4916
|
+
|
|
4917
|
+
/* insn zjit_opt_nil_p(...)(...)(...) */
|
|
4918
|
+
INSN_ENTRY(zjit_opt_nil_p)
|
|
4919
|
+
{
|
|
4920
|
+
START_OF_ORIGINAL_INSN(zjit_opt_nil_p);
|
|
4921
|
+
rb_zjit_profile_insn(BIN(opt_nil_p), ec);
|
|
4922
|
+
DISPATCH_ORIGINAL_INSN(opt_nil_p);
|
|
4923
|
+
END_INSN(zjit_opt_nil_p);
|
|
4924
|
+
}
|
|
4925
|
+
|
|
4926
|
+
#endif
|
|
4927
|
+
#if USE_ZJIT
|
|
4928
|
+
|
|
4929
|
+
/* insn zjit_invokeblock(...)(...)(...) */
|
|
4930
|
+
INSN_ENTRY(zjit_invokeblock)
|
|
4931
|
+
{
|
|
4932
|
+
START_OF_ORIGINAL_INSN(zjit_invokeblock);
|
|
4933
|
+
rb_zjit_profile_insn(BIN(invokeblock), ec);
|
|
4934
|
+
DISPATCH_ORIGINAL_INSN(invokeblock);
|
|
4935
|
+
END_INSN(zjit_invokeblock);
|
|
4936
|
+
}
|
|
4937
|
+
|
|
4938
|
+
#endif
|
|
4939
|
+
#if USE_ZJIT
|
|
4940
|
+
|
|
4941
|
+
/* insn zjit_opt_plus(...)(...)(...) */
|
|
4942
|
+
INSN_ENTRY(zjit_opt_plus)
|
|
4943
|
+
{
|
|
4944
|
+
START_OF_ORIGINAL_INSN(zjit_opt_plus);
|
|
4945
|
+
rb_zjit_profile_insn(BIN(opt_plus), ec);
|
|
4946
|
+
DISPATCH_ORIGINAL_INSN(opt_plus);
|
|
4947
|
+
END_INSN(zjit_opt_plus);
|
|
4948
|
+
}
|
|
4949
|
+
|
|
4950
|
+
#endif
|
|
4951
|
+
#if USE_ZJIT
|
|
4952
|
+
|
|
4953
|
+
/* insn zjit_opt_minus(...)(...)(...) */
|
|
4954
|
+
INSN_ENTRY(zjit_opt_minus)
|
|
4955
|
+
{
|
|
4956
|
+
START_OF_ORIGINAL_INSN(zjit_opt_minus);
|
|
4957
|
+
rb_zjit_profile_insn(BIN(opt_minus), ec);
|
|
4958
|
+
DISPATCH_ORIGINAL_INSN(opt_minus);
|
|
4959
|
+
END_INSN(zjit_opt_minus);
|
|
4960
|
+
}
|
|
4961
|
+
|
|
4962
|
+
#endif
|
|
4963
|
+
#if USE_ZJIT
|
|
4964
|
+
|
|
4965
|
+
/* insn zjit_opt_mult(...)(...)(...) */
|
|
4966
|
+
INSN_ENTRY(zjit_opt_mult)
|
|
4967
|
+
{
|
|
4968
|
+
START_OF_ORIGINAL_INSN(zjit_opt_mult);
|
|
4969
|
+
rb_zjit_profile_insn(BIN(opt_mult), ec);
|
|
4970
|
+
DISPATCH_ORIGINAL_INSN(opt_mult);
|
|
4971
|
+
END_INSN(zjit_opt_mult);
|
|
4972
|
+
}
|
|
4973
|
+
|
|
4974
|
+
#endif
|
|
4975
|
+
#if USE_ZJIT
|
|
4976
|
+
|
|
4977
|
+
/* insn zjit_opt_div(...)(...)(...) */
|
|
4978
|
+
INSN_ENTRY(zjit_opt_div)
|
|
4979
|
+
{
|
|
4980
|
+
START_OF_ORIGINAL_INSN(zjit_opt_div);
|
|
4981
|
+
rb_zjit_profile_insn(BIN(opt_div), ec);
|
|
4982
|
+
DISPATCH_ORIGINAL_INSN(opt_div);
|
|
4983
|
+
END_INSN(zjit_opt_div);
|
|
4984
|
+
}
|
|
4985
|
+
|
|
4986
|
+
#endif
|
|
4987
|
+
#if USE_ZJIT
|
|
4988
|
+
|
|
4989
|
+
/* insn zjit_opt_mod(...)(...)(...) */
|
|
4990
|
+
INSN_ENTRY(zjit_opt_mod)
|
|
4991
|
+
{
|
|
4992
|
+
START_OF_ORIGINAL_INSN(zjit_opt_mod);
|
|
4993
|
+
rb_zjit_profile_insn(BIN(opt_mod), ec);
|
|
4994
|
+
DISPATCH_ORIGINAL_INSN(opt_mod);
|
|
4995
|
+
END_INSN(zjit_opt_mod);
|
|
4996
|
+
}
|
|
4997
|
+
|
|
4998
|
+
#endif
|
|
4999
|
+
#if USE_ZJIT
|
|
5000
|
+
|
|
5001
|
+
/* insn zjit_opt_eq(...)(...)(...) */
|
|
5002
|
+
INSN_ENTRY(zjit_opt_eq)
|
|
5003
|
+
{
|
|
5004
|
+
START_OF_ORIGINAL_INSN(zjit_opt_eq);
|
|
5005
|
+
rb_zjit_profile_insn(BIN(opt_eq), ec);
|
|
5006
|
+
DISPATCH_ORIGINAL_INSN(opt_eq);
|
|
5007
|
+
END_INSN(zjit_opt_eq);
|
|
5008
|
+
}
|
|
5009
|
+
|
|
5010
|
+
#endif
|
|
5011
|
+
#if USE_ZJIT
|
|
5012
|
+
|
|
5013
|
+
/* insn zjit_opt_neq(...)(...)(...) */
|
|
5014
|
+
INSN_ENTRY(zjit_opt_neq)
|
|
5015
|
+
{
|
|
5016
|
+
START_OF_ORIGINAL_INSN(zjit_opt_neq);
|
|
5017
|
+
rb_zjit_profile_insn(BIN(opt_neq), ec);
|
|
5018
|
+
DISPATCH_ORIGINAL_INSN(opt_neq);
|
|
5019
|
+
END_INSN(zjit_opt_neq);
|
|
5020
|
+
}
|
|
5021
|
+
|
|
5022
|
+
#endif
|
|
5023
|
+
#if USE_ZJIT
|
|
5024
|
+
|
|
5025
|
+
/* insn zjit_opt_lt(...)(...)(...) */
|
|
5026
|
+
INSN_ENTRY(zjit_opt_lt)
|
|
5027
|
+
{
|
|
5028
|
+
START_OF_ORIGINAL_INSN(zjit_opt_lt);
|
|
5029
|
+
rb_zjit_profile_insn(BIN(opt_lt), ec);
|
|
5030
|
+
DISPATCH_ORIGINAL_INSN(opt_lt);
|
|
5031
|
+
END_INSN(zjit_opt_lt);
|
|
5032
|
+
}
|
|
5033
|
+
|
|
5034
|
+
#endif
|
|
5035
|
+
#if USE_ZJIT
|
|
5036
|
+
|
|
5037
|
+
/* insn zjit_opt_le(...)(...)(...) */
|
|
5038
|
+
INSN_ENTRY(zjit_opt_le)
|
|
5039
|
+
{
|
|
5040
|
+
START_OF_ORIGINAL_INSN(zjit_opt_le);
|
|
5041
|
+
rb_zjit_profile_insn(BIN(opt_le), ec);
|
|
5042
|
+
DISPATCH_ORIGINAL_INSN(opt_le);
|
|
5043
|
+
END_INSN(zjit_opt_le);
|
|
5044
|
+
}
|
|
5045
|
+
|
|
5046
|
+
#endif
|
|
5047
|
+
#if USE_ZJIT
|
|
5048
|
+
|
|
5049
|
+
/* insn zjit_opt_gt(...)(...)(...) */
|
|
5050
|
+
INSN_ENTRY(zjit_opt_gt)
|
|
5051
|
+
{
|
|
5052
|
+
START_OF_ORIGINAL_INSN(zjit_opt_gt);
|
|
5053
|
+
rb_zjit_profile_insn(BIN(opt_gt), ec);
|
|
5054
|
+
DISPATCH_ORIGINAL_INSN(opt_gt);
|
|
5055
|
+
END_INSN(zjit_opt_gt);
|
|
5056
|
+
}
|
|
5057
|
+
|
|
5058
|
+
#endif
|
|
5059
|
+
#if USE_ZJIT
|
|
5060
|
+
|
|
5061
|
+
/* insn zjit_opt_ge(...)(...)(...) */
|
|
5062
|
+
INSN_ENTRY(zjit_opt_ge)
|
|
5063
|
+
{
|
|
5064
|
+
START_OF_ORIGINAL_INSN(zjit_opt_ge);
|
|
5065
|
+
rb_zjit_profile_insn(BIN(opt_ge), ec);
|
|
5066
|
+
DISPATCH_ORIGINAL_INSN(opt_ge);
|
|
5067
|
+
END_INSN(zjit_opt_ge);
|
|
5068
|
+
}
|
|
5069
|
+
|
|
5070
|
+
#endif
|
|
5071
|
+
#if USE_ZJIT
|
|
5072
|
+
|
|
5073
|
+
/* insn zjit_opt_ltlt(...)(...)(...) */
|
|
5074
|
+
INSN_ENTRY(zjit_opt_ltlt)
|
|
5075
|
+
{
|
|
5076
|
+
START_OF_ORIGINAL_INSN(zjit_opt_ltlt);
|
|
5077
|
+
rb_zjit_profile_insn(BIN(opt_ltlt), ec);
|
|
5078
|
+
DISPATCH_ORIGINAL_INSN(opt_ltlt);
|
|
5079
|
+
END_INSN(zjit_opt_ltlt);
|
|
5080
|
+
}
|
|
5081
|
+
|
|
5082
|
+
#endif
|
|
5083
|
+
#if USE_ZJIT
|
|
5084
|
+
|
|
5085
|
+
/* insn zjit_opt_and(...)(...)(...) */
|
|
5086
|
+
INSN_ENTRY(zjit_opt_and)
|
|
5087
|
+
{
|
|
5088
|
+
START_OF_ORIGINAL_INSN(zjit_opt_and);
|
|
5089
|
+
rb_zjit_profile_insn(BIN(opt_and), ec);
|
|
5090
|
+
DISPATCH_ORIGINAL_INSN(opt_and);
|
|
5091
|
+
END_INSN(zjit_opt_and);
|
|
5092
|
+
}
|
|
5093
|
+
|
|
5094
|
+
#endif
|
|
5095
|
+
#if USE_ZJIT
|
|
5096
|
+
|
|
5097
|
+
/* insn zjit_opt_or(...)(...)(...) */
|
|
5098
|
+
INSN_ENTRY(zjit_opt_or)
|
|
5099
|
+
{
|
|
5100
|
+
START_OF_ORIGINAL_INSN(zjit_opt_or);
|
|
5101
|
+
rb_zjit_profile_insn(BIN(opt_or), ec);
|
|
5102
|
+
DISPATCH_ORIGINAL_INSN(opt_or);
|
|
5103
|
+
END_INSN(zjit_opt_or);
|
|
5104
|
+
}
|
|
5105
|
+
|
|
5106
|
+
#endif
|
|
5107
|
+
#if USE_ZJIT
|
|
5108
|
+
|
|
5109
|
+
/* insn zjit_opt_aref(...)(...)(...) */
|
|
5110
|
+
INSN_ENTRY(zjit_opt_aref)
|
|
5111
|
+
{
|
|
5112
|
+
START_OF_ORIGINAL_INSN(zjit_opt_aref);
|
|
5113
|
+
rb_zjit_profile_insn(BIN(opt_aref), ec);
|
|
5114
|
+
DISPATCH_ORIGINAL_INSN(opt_aref);
|
|
5115
|
+
END_INSN(zjit_opt_aref);
|
|
5116
|
+
}
|
|
5117
|
+
|
|
5118
|
+
#endif
|
|
5119
|
+
#if USE_ZJIT
|
|
5120
|
+
|
|
5121
|
+
/* insn zjit_opt_aset(...)(...)(...) */
|
|
5122
|
+
INSN_ENTRY(zjit_opt_aset)
|
|
5123
|
+
{
|
|
5124
|
+
START_OF_ORIGINAL_INSN(zjit_opt_aset);
|
|
5125
|
+
rb_zjit_profile_insn(BIN(opt_aset), ec);
|
|
5126
|
+
DISPATCH_ORIGINAL_INSN(opt_aset);
|
|
5127
|
+
END_INSN(zjit_opt_aset);
|
|
5128
|
+
}
|
|
5129
|
+
|
|
5130
|
+
#endif
|
|
5131
|
+
#if USE_ZJIT
|
|
5132
|
+
|
|
5133
|
+
/* insn zjit_opt_length(...)(...)(...) */
|
|
5134
|
+
INSN_ENTRY(zjit_opt_length)
|
|
5135
|
+
{
|
|
5136
|
+
START_OF_ORIGINAL_INSN(zjit_opt_length);
|
|
5137
|
+
rb_zjit_profile_insn(BIN(opt_length), ec);
|
|
5138
|
+
DISPATCH_ORIGINAL_INSN(opt_length);
|
|
5139
|
+
END_INSN(zjit_opt_length);
|
|
5140
|
+
}
|
|
5141
|
+
|
|
5142
|
+
#endif
|
|
5143
|
+
#if USE_ZJIT
|
|
5144
|
+
|
|
5145
|
+
/* insn zjit_opt_size(...)(...)(...) */
|
|
5146
|
+
INSN_ENTRY(zjit_opt_size)
|
|
5147
|
+
{
|
|
5148
|
+
START_OF_ORIGINAL_INSN(zjit_opt_size);
|
|
5149
|
+
rb_zjit_profile_insn(BIN(opt_size), ec);
|
|
5150
|
+
DISPATCH_ORIGINAL_INSN(opt_size);
|
|
5151
|
+
END_INSN(zjit_opt_size);
|
|
5152
|
+
}
|
|
5153
|
+
|
|
5154
|
+
#endif
|
|
5155
|
+
#if USE_ZJIT
|
|
5156
|
+
|
|
5157
|
+
/* insn zjit_opt_empty_p(...)(...)(...) */
|
|
5158
|
+
INSN_ENTRY(zjit_opt_empty_p)
|
|
5159
|
+
{
|
|
5160
|
+
START_OF_ORIGINAL_INSN(zjit_opt_empty_p);
|
|
5161
|
+
rb_zjit_profile_insn(BIN(opt_empty_p), ec);
|
|
5162
|
+
DISPATCH_ORIGINAL_INSN(opt_empty_p);
|
|
5163
|
+
END_INSN(zjit_opt_empty_p);
|
|
5164
|
+
}
|
|
5165
|
+
|
|
5166
|
+
#endif
|
|
5167
|
+
#if USE_ZJIT
|
|
5168
|
+
|
|
5169
|
+
/* insn zjit_opt_succ(...)(...)(...) */
|
|
5170
|
+
INSN_ENTRY(zjit_opt_succ)
|
|
5171
|
+
{
|
|
5172
|
+
START_OF_ORIGINAL_INSN(zjit_opt_succ);
|
|
5173
|
+
rb_zjit_profile_insn(BIN(opt_succ), ec);
|
|
5174
|
+
DISPATCH_ORIGINAL_INSN(opt_succ);
|
|
5175
|
+
END_INSN(zjit_opt_succ);
|
|
5176
|
+
}
|
|
5177
|
+
|
|
5178
|
+
#endif
|
|
5179
|
+
#if USE_ZJIT
|
|
5180
|
+
|
|
5181
|
+
/* insn zjit_opt_not(...)(...)(...) */
|
|
5182
|
+
INSN_ENTRY(zjit_opt_not)
|
|
5183
|
+
{
|
|
5184
|
+
START_OF_ORIGINAL_INSN(zjit_opt_not);
|
|
5185
|
+
rb_zjit_profile_insn(BIN(opt_not), ec);
|
|
5186
|
+
DISPATCH_ORIGINAL_INSN(opt_not);
|
|
5187
|
+
END_INSN(zjit_opt_not);
|
|
5188
|
+
}
|
|
5189
|
+
|
|
5190
|
+
#endif
|
|
5191
|
+
#if USE_ZJIT
|
|
5192
|
+
|
|
5193
|
+
/* insn zjit_opt_regexpmatch2(...)(...)(...) */
|
|
5194
|
+
INSN_ENTRY(zjit_opt_regexpmatch2)
|
|
5195
|
+
{
|
|
5196
|
+
START_OF_ORIGINAL_INSN(zjit_opt_regexpmatch2);
|
|
5197
|
+
rb_zjit_profile_insn(BIN(opt_regexpmatch2), ec);
|
|
5198
|
+
DISPATCH_ORIGINAL_INSN(opt_regexpmatch2);
|
|
5199
|
+
END_INSN(zjit_opt_regexpmatch2);
|
|
5200
|
+
}
|
|
5201
|
+
|
|
5202
|
+
#endif
|
|
4690
5203
|
|
|
4691
5204
|
/* insn trace_nop(...)(...)(...) */
|
|
4692
5205
|
INSN_ENTRY(trace_nop)
|
|
@@ -4940,15 +5453,6 @@ INSN_ENTRY(trace_newarray)
|
|
|
4940
5453
|
END_INSN(trace_newarray);
|
|
4941
5454
|
}
|
|
4942
5455
|
|
|
4943
|
-
/* insn trace_newarraykwsplat(...)(...)(...) */
|
|
4944
|
-
INSN_ENTRY(trace_newarraykwsplat)
|
|
4945
|
-
{
|
|
4946
|
-
vm_trace(ec, GET_CFP());
|
|
4947
|
-
|
|
4948
|
-
DISPATCH_ORIGINAL_INSN(newarraykwsplat);
|
|
4949
|
-
END_INSN(trace_newarraykwsplat);
|
|
4950
|
-
}
|
|
4951
|
-
|
|
4952
5456
|
/* insn trace_pushtoarraykwsplat(...)(...)(...) */
|
|
4953
5457
|
INSN_ENTRY(trace_pushtoarraykwsplat)
|
|
4954
5458
|
{
|
|
@@ -5201,6 +5705,15 @@ INSN_ENTRY(trace_send)
|
|
|
5201
5705
|
END_INSN(trace_send);
|
|
5202
5706
|
}
|
|
5203
5707
|
|
|
5708
|
+
/* insn trace_sendforward(...)(...)(...) */
|
|
5709
|
+
INSN_ENTRY(trace_sendforward)
|
|
5710
|
+
{
|
|
5711
|
+
vm_trace(ec, GET_CFP());
|
|
5712
|
+
|
|
5713
|
+
DISPATCH_ORIGINAL_INSN(sendforward);
|
|
5714
|
+
END_INSN(trace_sendforward);
|
|
5715
|
+
}
|
|
5716
|
+
|
|
5204
5717
|
/* insn trace_opt_send_without_block(...)(...)(...) */
|
|
5205
5718
|
INSN_ENTRY(trace_opt_send_without_block)
|
|
5206
5719
|
{
|
|
@@ -5210,6 +5723,15 @@ INSN_ENTRY(trace_opt_send_without_block)
|
|
|
5210
5723
|
END_INSN(trace_opt_send_without_block);
|
|
5211
5724
|
}
|
|
5212
5725
|
|
|
5726
|
+
/* insn trace_opt_new(...)(...)(...) */
|
|
5727
|
+
INSN_ENTRY(trace_opt_new)
|
|
5728
|
+
{
|
|
5729
|
+
vm_trace(ec, GET_CFP());
|
|
5730
|
+
|
|
5731
|
+
DISPATCH_ORIGINAL_INSN(opt_new);
|
|
5732
|
+
END_INSN(trace_opt_new);
|
|
5733
|
+
}
|
|
5734
|
+
|
|
5213
5735
|
/* insn trace_objtostring(...)(...)(...) */
|
|
5214
5736
|
INSN_ENTRY(trace_objtostring)
|
|
5215
5737
|
{
|
|
@@ -5219,6 +5741,24 @@ INSN_ENTRY(trace_objtostring)
|
|
|
5219
5741
|
END_INSN(trace_objtostring);
|
|
5220
5742
|
}
|
|
5221
5743
|
|
|
5744
|
+
/* insn trace_opt_ary_freeze(...)(...)(...) */
|
|
5745
|
+
INSN_ENTRY(trace_opt_ary_freeze)
|
|
5746
|
+
{
|
|
5747
|
+
vm_trace(ec, GET_CFP());
|
|
5748
|
+
|
|
5749
|
+
DISPATCH_ORIGINAL_INSN(opt_ary_freeze);
|
|
5750
|
+
END_INSN(trace_opt_ary_freeze);
|
|
5751
|
+
}
|
|
5752
|
+
|
|
5753
|
+
/* insn trace_opt_hash_freeze(...)(...)(...) */
|
|
5754
|
+
INSN_ENTRY(trace_opt_hash_freeze)
|
|
5755
|
+
{
|
|
5756
|
+
vm_trace(ec, GET_CFP());
|
|
5757
|
+
|
|
5758
|
+
DISPATCH_ORIGINAL_INSN(opt_hash_freeze);
|
|
5759
|
+
END_INSN(trace_opt_hash_freeze);
|
|
5760
|
+
}
|
|
5761
|
+
|
|
5222
5762
|
/* insn trace_opt_str_freeze(...)(...)(...) */
|
|
5223
5763
|
INSN_ENTRY(trace_opt_str_freeze)
|
|
5224
5764
|
{
|
|
@@ -5246,6 +5786,15 @@ INSN_ENTRY(trace_opt_str_uminus)
|
|
|
5246
5786
|
END_INSN(trace_opt_str_uminus);
|
|
5247
5787
|
}
|
|
5248
5788
|
|
|
5789
|
+
/* insn trace_opt_duparray_send(...)(...)(...) */
|
|
5790
|
+
INSN_ENTRY(trace_opt_duparray_send)
|
|
5791
|
+
{
|
|
5792
|
+
vm_trace(ec, GET_CFP());
|
|
5793
|
+
|
|
5794
|
+
DISPATCH_ORIGINAL_INSN(opt_duparray_send);
|
|
5795
|
+
END_INSN(trace_opt_duparray_send);
|
|
5796
|
+
}
|
|
5797
|
+
|
|
5249
5798
|
/* insn trace_opt_newarray_send(...)(...)(...) */
|
|
5250
5799
|
INSN_ENTRY(trace_opt_newarray_send)
|
|
5251
5800
|
{
|
|
@@ -5264,6 +5813,15 @@ INSN_ENTRY(trace_invokesuper)
|
|
|
5264
5813
|
END_INSN(trace_invokesuper);
|
|
5265
5814
|
}
|
|
5266
5815
|
|
|
5816
|
+
/* insn trace_invokesuperforward(...)(...)(...) */
|
|
5817
|
+
INSN_ENTRY(trace_invokesuperforward)
|
|
5818
|
+
{
|
|
5819
|
+
vm_trace(ec, GET_CFP());
|
|
5820
|
+
|
|
5821
|
+
DISPATCH_ORIGINAL_INSN(invokesuperforward);
|
|
5822
|
+
END_INSN(trace_invokesuperforward);
|
|
5823
|
+
}
|
|
5824
|
+
|
|
5267
5825
|
/* insn trace_invokeblock(...)(...)(...) */
|
|
5268
5826
|
INSN_ENTRY(trace_invokeblock)
|
|
5269
5827
|
{
|
|
@@ -5489,24 +6047,6 @@ INSN_ENTRY(trace_opt_aset)
|
|
|
5489
6047
|
END_INSN(trace_opt_aset);
|
|
5490
6048
|
}
|
|
5491
6049
|
|
|
5492
|
-
/* insn trace_opt_aset_with(...)(...)(...) */
|
|
5493
|
-
INSN_ENTRY(trace_opt_aset_with)
|
|
5494
|
-
{
|
|
5495
|
-
vm_trace(ec, GET_CFP());
|
|
5496
|
-
|
|
5497
|
-
DISPATCH_ORIGINAL_INSN(opt_aset_with);
|
|
5498
|
-
END_INSN(trace_opt_aset_with);
|
|
5499
|
-
}
|
|
5500
|
-
|
|
5501
|
-
/* insn trace_opt_aref_with(...)(...)(...) */
|
|
5502
|
-
INSN_ENTRY(trace_opt_aref_with)
|
|
5503
|
-
{
|
|
5504
|
-
vm_trace(ec, GET_CFP());
|
|
5505
|
-
|
|
5506
|
-
DISPATCH_ORIGINAL_INSN(opt_aref_with);
|
|
5507
|
-
END_INSN(trace_opt_aref_with);
|
|
5508
|
-
}
|
|
5509
|
-
|
|
5510
6050
|
/* insn trace_opt_length(...)(...)(...) */
|
|
5511
6051
|
INSN_ENTRY(trace_opt_length)
|
|
5512
6052
|
{
|