debase-ruby_core_source 0.10.13 → 0.10.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +28 -0
- data/debase-ruby_core_source.gemspec +3 -3
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/addr2line.h +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-2.5.4-p155}/ccan/build_assert/build_assert.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-2.5.4-p155}/ccan/check_type/check_type.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-2.5.4-p155}/ccan/container_of/container_of.h +0 -0
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/ccan/list/list.h +773 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-2.5.4-p155}/ccan/str/str.h +0 -0
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/constant.h +51 -0
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/debug_counter.h +109 -0
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/dln.h +10 -9
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/encindex.h +69 -0
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/eval_intern.h +334 -0
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/gc.h +27 -10
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/id.h +250 -0
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/id_table.h +31 -0
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/insns.inc +217 -0
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/insns_info.inc +1570 -0
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/internal.h +2036 -0
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/iseq.h +308 -0
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/known_errors.inc +16 -1
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/method.h +218 -0
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/node.h +115 -79
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/node_name.inc +12 -22
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/opt_sc.inc +1601 -0
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/optinsn.inc +103 -0
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/optunifs.inc +28 -83
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/parse.h +74 -60
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/probes_helper.h +43 -0
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/regenc.h +254 -0
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/regint.h +299 -211
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/regparse.h +45 -37
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/revision.h +1 -0
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/ruby_assert.h +54 -0
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/ruby_atomic.h +84 -26
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/siphash.h +1 -1
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/symbol.h +108 -0
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/thread_pthread.h +14 -11
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/thread_win32.h +2 -6
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/timev.h +42 -0
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/transcode_data.h +34 -12
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/version.h +73 -0
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/vm.inc +3667 -0
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/vm_call_iseq_optimized.inc +213 -0
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/vm_core.h +1768 -0
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550/debug.h → ruby-2.5.4-p155/vm_debug.h} +4 -8
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/vm_exec.h +38 -30
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/vm_insnhelper.h +255 -0
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/vm_opts.h +14 -9
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/vmtc.inc +214 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/addr2line.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/builtin.h +1 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-p0/ccan/build_assert/build_assert.h +40 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-p0/ccan/check_type/check_type.h +63 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-p0/ccan/container_of/container_of.h +142 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/ccan/list/list.h +0 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-p0/ccan/str/str.h +16 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/constant.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/darray.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/debug_counter.h +2 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/dln.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/encindex.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/eval_intern.h +32 -1
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/gc.h +0 -1
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/hrtime.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/id.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/id_table.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/insns.inc +4 -2
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/insns_info.inc +309 -224
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/array.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/bignum.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/bits.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/class.h +13 -5
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/compar.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/compile.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/compilers.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/complex.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/cont.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/dir.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/enc.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/encoding.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/enum.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/enumerator.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/error.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/eval.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/file.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/fixnum.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/gc.h +12 -1
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/hash.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/imemo.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/inits.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/io.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/load.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/loadpath.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/math.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/missing.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/numeric.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/object.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/parse.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/proc.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/process.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/random.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/range.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/rational.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/re.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/sanitizers.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/serial.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/signal.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/static_assert.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/string.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/struct.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/symbol.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/thread.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/time.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/transcode.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/util.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/variable.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/vm.h +2 -1
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/warnings.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/iseq.h +3 -1
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/known_errors.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/method.h +14 -6
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/mjit.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/mjit_compile.inc +64 -7
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/node.h +28 -17
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/node_name.inc +0 -2
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/opt_sc.inc +2 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/optinsn.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/optunifs.inc +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/parse.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/probes_helper.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/ractor_core.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/regenc.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/regint.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/regparse.h +0 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-p0/revision.h +2 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/ruby_assert.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/ruby_atomic.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/siphash.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/symbol.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/thread_pthread.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/thread_win32.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/timev.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/transcode_data.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/transient_heap.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/variable.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/version.h +4 -4
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/vm.inc +338 -283
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/vm_call_iseq_optimized.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/vm_callinfo.h +41 -8
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/vm_core.h +6 -2
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/vm_debug.h +8 -3
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/vm_exec.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/vm_insnhelper.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/vm_opts.h +0 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-p0/vm_sync.h +137 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/vmtc.inc +4 -2
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/yjit.h +11 -1
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/yjit_asm.h +21 -5
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/yjit_codegen.h +5 -1
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/yjit_core.h +11 -6
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/yjit_iface.h +0 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/addr2line.h +20 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/builtin.h +84 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ccan/build_assert/build_assert.h +40 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ccan/check_type/check_type.h +63 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ccan/container_of/container_of.h +142 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ccan/list/list.h +789 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ccan/str/str.h +17 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/constant.h +55 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/darray.h +226 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/debug_counter.h +469 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/dln.h +31 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/encindex.h +70 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/eval_intern.h +339 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/gc.h +143 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/hrtime.h +216 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/id.h +295 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/id_table.h +36 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/insns.inc +249 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/insns_info.inc +9064 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/array.h +113 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/bignum.h +246 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/bits.h +565 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/class.h +211 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/cmdlineopt.h +61 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/compar.h +49 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/compile.h +35 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/compilers.h +107 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/complex.h +29 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/cont.h +24 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/dir.h +16 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/enc.h +19 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/encoding.h +30 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/enum.h +18 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/enumerator.h +21 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/error.h +191 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/eval.h +32 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/file.h +38 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/fixnum.h +184 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/gc.h +188 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/hash.h +243 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/imemo.h +243 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/inits.h +50 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/io.h +38 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/load.h +18 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/loadpath.h +16 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/math.h +23 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/missing.h +18 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/numeric.h +271 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/object.h +83 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/parse.h +23 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/proc.h +32 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/process.h +137 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/ractor.h +6 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/random.h +16 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/range.h +40 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/rational.h +72 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/re.h +30 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/sanitizers.h +190 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/serial.h +23 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/signal.h +21 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/static_assert.h +16 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/string.h +141 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/struct.h +153 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/symbol.h +41 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/thread.h +53 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/time.h +34 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/transcode.h +20 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/util.h +27 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/variable.h +83 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/vm.h +134 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/warnings.h +16 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal.h +109 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/iseq.h +325 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/known_errors.inc +791 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/method.h +254 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/mjit.h +231 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/mjit_compile.inc +8333 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/node.h +510 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/node_name.inc +208 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/opt_sc.inc +109 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/optinsn.inc +128 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/optunifs.inc +43 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/parse.h +214 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/probes_helper.h +44 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ractor_core.h +346 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/regenc.h +255 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/regint.h +957 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/regparse.h +370 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/revision.h +2 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ruby_assert.h +14 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ruby_atomic.h +23 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/siphash.h +48 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/symbol.h +119 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/thread_none.h +17 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/thread_pthread.h +115 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/thread_win32.h +61 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/timev.h +57 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/transcode_data.h +138 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/transient_heap.h +65 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/variable.h +21 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/version.h +91 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vm.inc +5481 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vm_call_iseq_optimized.inc +244 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vm_callinfo.h +502 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vm_core.h +2089 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vm_debug.h +113 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vm_exec.h +197 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vm_insnhelper.h +262 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vm_opts.h +73 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.2.0-preview1}/vm_sync.h +0 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vmtc.inc +243 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/yjit.h +73 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/yjit_asm.h +408 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/yjit_codegen.h +23 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/yjit_core.h +307 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/yjit_iface.h +38 -0
- data/lib/debase/ruby_core_source/version.rb +1 -1
- metadata +284 -158
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/constant.h +0 -34
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/encdb.h +0 -167
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/eval_intern.h +0 -234
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/id.h +0 -177
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/insns.inc +0 -179
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/insns_info.inc +0 -695
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/internal.h +0 -242
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/iseq.h +0 -126
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/method.h +0 -105
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/opt_sc.inc +0 -670
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/optinsn.inc +0 -30
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/regenc.h +0 -219
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/revision.h +0 -1
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/timev.h +0 -21
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/transdb.h +0 -189
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/version.h +0 -52
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/vm.inc +0 -3054
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/vm_core.h +0 -763
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/vm_insnhelper.h +0 -220
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/vmtc.inc +0 -97
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/revision.h +0 -2
|
@@ -47,7 +47,7 @@ INSN_ENTRY(nop)
|
|
|
47
47
|
|
|
48
48
|
/* ### Declare and assign variables. ### */
|
|
49
49
|
# define INSN_ATTR(x) attr_ ## x ## _nop()
|
|
50
|
-
bool leaf = INSN_ATTR(leaf);
|
|
50
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
51
51
|
|
|
52
52
|
/* ### Instruction preambles. ### */
|
|
53
53
|
if (! leaf) ADD_PC(INSN_ATTR(width));
|
|
@@ -74,7 +74,7 @@ INSN_ENTRY(getlocal)
|
|
|
74
74
|
lindex_t idx = (lindex_t)GET_OPERAND(1);
|
|
75
75
|
rb_num_t level = (rb_num_t)GET_OPERAND(2);
|
|
76
76
|
# define INSN_ATTR(x) attr_ ## x ## _getlocal(idx, level)
|
|
77
|
-
bool leaf = INSN_ATTR(leaf);
|
|
77
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
78
78
|
VALUE val;
|
|
79
79
|
|
|
80
80
|
/* ### Instruction preambles. ### */
|
|
@@ -120,7 +120,7 @@ INSN_ENTRY(setlocal)
|
|
|
120
120
|
lindex_t idx = (lindex_t)GET_OPERAND(1);
|
|
121
121
|
rb_num_t level = (rb_num_t)GET_OPERAND(2);
|
|
122
122
|
# define INSN_ATTR(x) attr_ ## x ## _setlocal(idx, level)
|
|
123
|
-
bool leaf = INSN_ATTR(leaf);
|
|
123
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
124
124
|
VALUE val = TOPN(0);
|
|
125
125
|
|
|
126
126
|
/* ### Instruction preambles. ### */
|
|
@@ -163,7 +163,7 @@ INSN_ENTRY(getblockparam)
|
|
|
163
163
|
lindex_t idx = (lindex_t)GET_OPERAND(1);
|
|
164
164
|
rb_num_t level = (rb_num_t)GET_OPERAND(2);
|
|
165
165
|
# define INSN_ATTR(x) attr_ ## x ## _getblockparam(idx, level)
|
|
166
|
-
bool leaf = INSN_ATTR(leaf);
|
|
166
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
167
167
|
VALUE val;
|
|
168
168
|
|
|
169
169
|
/* ### Instruction preambles. ### */
|
|
@@ -219,7 +219,7 @@ INSN_ENTRY(setblockparam)
|
|
|
219
219
|
lindex_t idx = (lindex_t)GET_OPERAND(1);
|
|
220
220
|
rb_num_t level = (rb_num_t)GET_OPERAND(2);
|
|
221
221
|
# define INSN_ATTR(x) attr_ ## x ## _setblockparam(idx, level)
|
|
222
|
-
bool leaf = INSN_ATTR(leaf);
|
|
222
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
223
223
|
VALUE val = TOPN(0);
|
|
224
224
|
|
|
225
225
|
/* ### Instruction preambles. ### */
|
|
@@ -267,7 +267,7 @@ INSN_ENTRY(getblockparamproxy)
|
|
|
267
267
|
lindex_t idx = (lindex_t)GET_OPERAND(1);
|
|
268
268
|
rb_num_t level = (rb_num_t)GET_OPERAND(2);
|
|
269
269
|
# define INSN_ATTR(x) attr_ ## x ## _getblockparamproxy(idx, level)
|
|
270
|
-
bool leaf = INSN_ATTR(leaf);
|
|
270
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
271
271
|
VALUE val;
|
|
272
272
|
|
|
273
273
|
/* ### Instruction preambles. ### */
|
|
@@ -344,7 +344,7 @@ INSN_ENTRY(getspecial)
|
|
|
344
344
|
rb_num_t key = (rb_num_t)GET_OPERAND(1);
|
|
345
345
|
rb_num_t type = (rb_num_t)GET_OPERAND(2);
|
|
346
346
|
# define INSN_ATTR(x) attr_ ## x ## _getspecial(key, type)
|
|
347
|
-
bool leaf = INSN_ATTR(leaf);
|
|
347
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
348
348
|
VALUE val;
|
|
349
349
|
|
|
350
350
|
/* ### Instruction preambles. ### */
|
|
@@ -387,7 +387,7 @@ INSN_ENTRY(setspecial)
|
|
|
387
387
|
/* ### Declare and assign variables. ### */
|
|
388
388
|
rb_num_t key = (rb_num_t)GET_OPERAND(1);
|
|
389
389
|
# define INSN_ATTR(x) attr_ ## x ## _setspecial(key)
|
|
390
|
-
bool leaf = INSN_ATTR(leaf);
|
|
390
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
391
391
|
VALUE obj = TOPN(0);
|
|
392
392
|
|
|
393
393
|
/* ### Instruction preambles. ### */
|
|
@@ -427,7 +427,7 @@ INSN_ENTRY(getinstancevariable)
|
|
|
427
427
|
ID id = (ID)GET_OPERAND(1);
|
|
428
428
|
IVC ic = (IVC)GET_OPERAND(2);
|
|
429
429
|
# define INSN_ATTR(x) attr_ ## x ## _getinstancevariable(id, ic)
|
|
430
|
-
bool leaf = INSN_ATTR(leaf);
|
|
430
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
431
431
|
VALUE val;
|
|
432
432
|
|
|
433
433
|
/* ### Instruction preambles. ### */
|
|
@@ -471,7 +471,7 @@ INSN_ENTRY(setinstancevariable)
|
|
|
471
471
|
ID id = (ID)GET_OPERAND(1);
|
|
472
472
|
IVC ic = (IVC)GET_OPERAND(2);
|
|
473
473
|
# define INSN_ATTR(x) attr_ ## x ## _setinstancevariable(id, ic)
|
|
474
|
-
bool leaf = INSN_ATTR(leaf);
|
|
474
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
475
475
|
VALUE val = TOPN(0);
|
|
476
476
|
|
|
477
477
|
/* ### Instruction preambles. ### */
|
|
@@ -512,7 +512,7 @@ INSN_ENTRY(getclassvariable)
|
|
|
512
512
|
ID id = (ID)GET_OPERAND(1);
|
|
513
513
|
IVC ic = (IVC)GET_OPERAND(2);
|
|
514
514
|
# define INSN_ATTR(x) attr_ ## x ## _getclassvariable(id, ic)
|
|
515
|
-
bool leaf = INSN_ATTR(leaf);
|
|
515
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
516
516
|
VALUE val;
|
|
517
517
|
|
|
518
518
|
/* ### Instruction preambles. ### */
|
|
@@ -526,11 +526,10 @@ INSN_ENTRY(getclassvariable)
|
|
|
526
526
|
# define NAME_OF_CURRENT_INSN getclassvariable
|
|
527
527
|
# line 238 "insns.def"
|
|
528
528
|
{
|
|
529
|
-
rb_cref_t * cref = vm_get_cref(GET_EP());
|
|
530
529
|
rb_control_frame_t *cfp = GET_CFP();
|
|
531
|
-
val = vm_getclassvariable(GET_ISEQ(),
|
|
530
|
+
val = vm_getclassvariable(GET_ISEQ(), cfp, id, (ICVARC)ic);
|
|
532
531
|
}
|
|
533
|
-
# line
|
|
532
|
+
# line 533 "vm.inc"
|
|
534
533
|
# undef NAME_OF_CURRENT_INSN
|
|
535
534
|
|
|
536
535
|
/* ### Instruction trailers. ### */
|
|
@@ -558,7 +557,7 @@ INSN_ENTRY(setclassvariable)
|
|
|
558
557
|
ID id = (ID)GET_OPERAND(1);
|
|
559
558
|
IVC ic = (IVC)GET_OPERAND(2);
|
|
560
559
|
# define INSN_ATTR(x) attr_ ## x ## _setclassvariable(id, ic)
|
|
561
|
-
bool leaf = INSN_ATTR(leaf);
|
|
560
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
562
561
|
VALUE val = TOPN(0);
|
|
563
562
|
|
|
564
563
|
/* ### Instruction preambles. ### */
|
|
@@ -570,12 +569,12 @@ INSN_ENTRY(setclassvariable)
|
|
|
570
569
|
|
|
571
570
|
/* ### Here we do the instruction body. ### */
|
|
572
571
|
# define NAME_OF_CURRENT_INSN setclassvariable
|
|
573
|
-
# line
|
|
572
|
+
# line 251 "insns.def"
|
|
574
573
|
{
|
|
575
574
|
vm_ensure_not_refinement_module(GET_SELF());
|
|
576
|
-
vm_setclassvariable(GET_ISEQ(),
|
|
575
|
+
vm_setclassvariable(GET_ISEQ(), GET_CFP(), id, val, (ICVARC)ic);
|
|
577
576
|
}
|
|
578
|
-
# line
|
|
577
|
+
# line 578 "vm.inc"
|
|
579
578
|
# undef NAME_OF_CURRENT_INSN
|
|
580
579
|
|
|
581
580
|
/* ### Instruction trailers. ### */
|
|
@@ -599,7 +598,7 @@ INSN_ENTRY(getconstant)
|
|
|
599
598
|
/* ### Declare and assign variables. ### */
|
|
600
599
|
ID id = (ID)GET_OPERAND(1);
|
|
601
600
|
# define INSN_ATTR(x) attr_ ## x ## _getconstant(id)
|
|
602
|
-
bool leaf = INSN_ATTR(leaf);
|
|
601
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
603
602
|
VALUE klass = TOPN(1);
|
|
604
603
|
VALUE allow_nil = TOPN(0);
|
|
605
604
|
VALUE val;
|
|
@@ -612,11 +611,11 @@ INSN_ENTRY(getconstant)
|
|
|
612
611
|
|
|
613
612
|
/* ### Here we do the instruction body. ### */
|
|
614
613
|
# define NAME_OF_CURRENT_INSN getconstant
|
|
615
|
-
# line
|
|
614
|
+
# line 267 "insns.def"
|
|
616
615
|
{
|
|
617
616
|
val = vm_get_ev_const(ec, klass, id, allow_nil == Qtrue, 0);
|
|
618
617
|
}
|
|
619
|
-
# line
|
|
618
|
+
# line 619 "vm.inc"
|
|
620
619
|
# undef NAME_OF_CURRENT_INSN
|
|
621
620
|
|
|
622
621
|
/* ### Instruction trailers. ### */
|
|
@@ -643,7 +642,7 @@ INSN_ENTRY(setconstant)
|
|
|
643
642
|
/* ### Declare and assign variables. ### */
|
|
644
643
|
ID id = (ID)GET_OPERAND(1);
|
|
645
644
|
# define INSN_ATTR(x) attr_ ## x ## _setconstant(id)
|
|
646
|
-
bool leaf = INSN_ATTR(leaf);
|
|
645
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
647
646
|
VALUE val = TOPN(1);
|
|
648
647
|
VALUE cbase = TOPN(0);
|
|
649
648
|
|
|
@@ -655,13 +654,13 @@ INSN_ENTRY(setconstant)
|
|
|
655
654
|
|
|
656
655
|
/* ### Here we do the instruction body. ### */
|
|
657
656
|
# define NAME_OF_CURRENT_INSN setconstant
|
|
658
|
-
# line
|
|
657
|
+
# line 283 "insns.def"
|
|
659
658
|
{
|
|
660
659
|
vm_check_if_namespace(cbase);
|
|
661
660
|
vm_ensure_not_refinement_module(GET_SELF());
|
|
662
661
|
rb_const_set(cbase, id, val);
|
|
663
662
|
}
|
|
664
|
-
# line
|
|
663
|
+
# line 664 "vm.inc"
|
|
665
664
|
# undef NAME_OF_CURRENT_INSN
|
|
666
665
|
|
|
667
666
|
/* ### Instruction trailers. ### */
|
|
@@ -685,7 +684,7 @@ INSN_ENTRY(getglobal)
|
|
|
685
684
|
/* ### Declare and assign variables. ### */
|
|
686
685
|
ID gid = (ID)GET_OPERAND(1);
|
|
687
686
|
# define INSN_ATTR(x) attr_ ## x ## _getglobal(gid)
|
|
688
|
-
bool leaf = INSN_ATTR(leaf);
|
|
687
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
689
688
|
VALUE val;
|
|
690
689
|
|
|
691
690
|
/* ### Instruction preambles. ### */
|
|
@@ -696,11 +695,11 @@ INSN_ENTRY(getglobal)
|
|
|
696
695
|
|
|
697
696
|
/* ### Here we do the instruction body. ### */
|
|
698
697
|
# define NAME_OF_CURRENT_INSN getglobal
|
|
699
|
-
# line
|
|
698
|
+
# line 296 "insns.def"
|
|
700
699
|
{
|
|
701
700
|
val = rb_gvar_get(gid);
|
|
702
701
|
}
|
|
703
|
-
# line
|
|
702
|
+
# line 703 "vm.inc"
|
|
704
703
|
# undef NAME_OF_CURRENT_INSN
|
|
705
704
|
|
|
706
705
|
/* ### Instruction trailers. ### */
|
|
@@ -727,7 +726,7 @@ INSN_ENTRY(setglobal)
|
|
|
727
726
|
/* ### Declare and assign variables. ### */
|
|
728
727
|
ID gid = (ID)GET_OPERAND(1);
|
|
729
728
|
# define INSN_ATTR(x) attr_ ## x ## _setglobal(gid)
|
|
730
|
-
bool leaf = INSN_ATTR(leaf);
|
|
729
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
731
730
|
VALUE val = TOPN(0);
|
|
732
731
|
|
|
733
732
|
/* ### Instruction preambles. ### */
|
|
@@ -738,11 +737,11 @@ INSN_ENTRY(setglobal)
|
|
|
738
737
|
|
|
739
738
|
/* ### Here we do the instruction body. ### */
|
|
740
739
|
# define NAME_OF_CURRENT_INSN setglobal
|
|
741
|
-
# line
|
|
740
|
+
# line 307 "insns.def"
|
|
742
741
|
{
|
|
743
742
|
rb_gvar_set(gid, val);
|
|
744
743
|
}
|
|
745
|
-
# line
|
|
744
|
+
# line 745 "vm.inc"
|
|
746
745
|
# undef NAME_OF_CURRENT_INSN
|
|
747
746
|
|
|
748
747
|
/* ### Instruction trailers. ### */
|
|
@@ -765,7 +764,7 @@ INSN_ENTRY(putnil)
|
|
|
765
764
|
|
|
766
765
|
/* ### Declare and assign variables. ### */
|
|
767
766
|
# define INSN_ATTR(x) attr_ ## x ## _putnil()
|
|
768
|
-
bool leaf = INSN_ATTR(leaf);
|
|
767
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
769
768
|
VALUE val;
|
|
770
769
|
|
|
771
770
|
/* ### Instruction preambles. ### */
|
|
@@ -775,11 +774,11 @@ INSN_ENTRY(putnil)
|
|
|
775
774
|
|
|
776
775
|
/* ### Here we do the instruction body. ### */
|
|
777
776
|
# define NAME_OF_CURRENT_INSN putnil
|
|
778
|
-
# line
|
|
777
|
+
# line 321 "insns.def"
|
|
779
778
|
{
|
|
780
779
|
val = Qnil;
|
|
781
780
|
}
|
|
782
|
-
# line
|
|
781
|
+
# line 782 "vm.inc"
|
|
783
782
|
# undef NAME_OF_CURRENT_INSN
|
|
784
783
|
|
|
785
784
|
/* ### Instruction trailers. ### */
|
|
@@ -805,7 +804,7 @@ INSN_ENTRY(putself)
|
|
|
805
804
|
|
|
806
805
|
/* ### Declare and assign variables. ### */
|
|
807
806
|
# define INSN_ATTR(x) attr_ ## x ## _putself()
|
|
808
|
-
bool leaf = INSN_ATTR(leaf);
|
|
807
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
809
808
|
VALUE val;
|
|
810
809
|
|
|
811
810
|
/* ### Instruction preambles. ### */
|
|
@@ -815,11 +814,11 @@ INSN_ENTRY(putself)
|
|
|
815
814
|
|
|
816
815
|
/* ### Here we do the instruction body. ### */
|
|
817
816
|
# define NAME_OF_CURRENT_INSN putself
|
|
818
|
-
# line
|
|
817
|
+
# line 331 "insns.def"
|
|
819
818
|
{
|
|
820
819
|
val = GET_SELF();
|
|
821
820
|
}
|
|
822
|
-
# line
|
|
821
|
+
# line 822 "vm.inc"
|
|
823
822
|
# undef NAME_OF_CURRENT_INSN
|
|
824
823
|
|
|
825
824
|
/* ### Instruction trailers. ### */
|
|
@@ -846,7 +845,7 @@ INSN_ENTRY(putobject)
|
|
|
846
845
|
/* ### Declare and assign variables. ### */
|
|
847
846
|
VALUE val = (VALUE)GET_OPERAND(1);
|
|
848
847
|
# define INSN_ATTR(x) attr_ ## x ## _putobject(val)
|
|
849
|
-
bool leaf = INSN_ATTR(leaf);
|
|
848
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
850
849
|
|
|
851
850
|
/* ### Instruction preambles. ### */
|
|
852
851
|
if (! leaf) ADD_PC(INSN_ATTR(width));
|
|
@@ -876,7 +875,7 @@ INSN_ENTRY(putspecialobject)
|
|
|
876
875
|
/* ### Declare and assign variables. ### */
|
|
877
876
|
rb_num_t value_type = (rb_num_t)GET_OPERAND(1);
|
|
878
877
|
# define INSN_ATTR(x) attr_ ## x ## _putspecialobject(value_type)
|
|
879
|
-
bool leaf = INSN_ATTR(leaf);
|
|
878
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
880
879
|
VALUE val;
|
|
881
880
|
|
|
882
881
|
/* ### Instruction preambles. ### */
|
|
@@ -894,7 +893,7 @@ INSN_ENTRY(putspecialobject)
|
|
|
894
893
|
type = (enum vm_special_object_type)value_type;
|
|
895
894
|
val = vm_get_special_object(GET_EP(), type);
|
|
896
895
|
}
|
|
897
|
-
# line
|
|
896
|
+
# line 897 "vm.inc"
|
|
898
897
|
# undef NAME_OF_CURRENT_INSN
|
|
899
898
|
|
|
900
899
|
/* ### Instruction trailers. ### */
|
|
@@ -921,7 +920,7 @@ INSN_ENTRY(putstring)
|
|
|
921
920
|
/* ### Declare and assign variables. ### */
|
|
922
921
|
VALUE str = (VALUE)GET_OPERAND(1);
|
|
923
922
|
# define INSN_ATTR(x) attr_ ## x ## _putstring(str)
|
|
924
|
-
bool leaf = INSN_ATTR(leaf);
|
|
923
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
925
924
|
VALUE val;
|
|
926
925
|
|
|
927
926
|
/* ### Instruction preambles. ### */
|
|
@@ -936,7 +935,7 @@ INSN_ENTRY(putstring)
|
|
|
936
935
|
{
|
|
937
936
|
val = rb_ec_str_resurrect(ec, str);
|
|
938
937
|
}
|
|
939
|
-
# line
|
|
938
|
+
# line 939 "vm.inc"
|
|
940
939
|
# undef NAME_OF_CURRENT_INSN
|
|
941
940
|
|
|
942
941
|
/* ### Instruction trailers. ### */
|
|
@@ -963,7 +962,7 @@ INSN_ENTRY(concatstrings)
|
|
|
963
962
|
/* ### Declare and assign variables. ### */
|
|
964
963
|
rb_num_t num = (rb_num_t)GET_OPERAND(1);
|
|
965
964
|
# define INSN_ATTR(x) attr_ ## x ## _concatstrings(num)
|
|
966
|
-
bool leaf = INSN_ATTR(leaf);
|
|
965
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
967
966
|
VALUE val;
|
|
968
967
|
|
|
969
968
|
/* ### Instruction preambles. ### */
|
|
@@ -978,7 +977,7 @@ INSN_ENTRY(concatstrings)
|
|
|
978
977
|
{
|
|
979
978
|
val = rb_str_concat_literals(num, STACK_ADDR_FROM_TOP(num));
|
|
980
979
|
}
|
|
981
|
-
# line
|
|
980
|
+
# line 981 "vm.inc"
|
|
982
981
|
# undef NAME_OF_CURRENT_INSN
|
|
983
982
|
|
|
984
983
|
/* ### Instruction trailers. ### */
|
|
@@ -995,16 +994,16 @@ INSN_ENTRY(concatstrings)
|
|
|
995
994
|
END_INSN(concatstrings);
|
|
996
995
|
}
|
|
997
996
|
|
|
998
|
-
/* insn
|
|
999
|
-
INSN_ENTRY(
|
|
997
|
+
/* insn anytostring()(val, str)(val) */
|
|
998
|
+
INSN_ENTRY(anytostring)
|
|
1000
999
|
{
|
|
1001
1000
|
/* ### Declare that we have just entered into an instruction. ### */
|
|
1002
|
-
START_OF_ORIGINAL_INSN(
|
|
1003
|
-
DEBUG_ENTER_INSN("
|
|
1001
|
+
START_OF_ORIGINAL_INSN(anytostring);
|
|
1002
|
+
DEBUG_ENTER_INSN("anytostring");
|
|
1004
1003
|
|
|
1005
1004
|
/* ### Declare and assign variables. ### */
|
|
1006
|
-
# define INSN_ATTR(x) attr_ ## x ##
|
|
1007
|
-
bool leaf = INSN_ATTR(leaf);
|
|
1005
|
+
# define INSN_ATTR(x) attr_ ## x ## _anytostring()
|
|
1006
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
1008
1007
|
VALUE val = TOPN(1);
|
|
1009
1008
|
VALUE str = TOPN(0);
|
|
1010
1009
|
|
|
@@ -1014,12 +1013,12 @@ INSN_ENTRY(tostring)
|
|
|
1014
1013
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
1015
1014
|
|
|
1016
1015
|
/* ### Here we do the instruction body. ### */
|
|
1017
|
-
# define NAME_OF_CURRENT_INSN
|
|
1018
|
-
# line
|
|
1016
|
+
# define NAME_OF_CURRENT_INSN anytostring
|
|
1017
|
+
# line 392 "insns.def"
|
|
1019
1018
|
{
|
|
1020
1019
|
val = rb_obj_as_string_result(str, val);
|
|
1021
1020
|
}
|
|
1022
|
-
# line
|
|
1021
|
+
# line 1022 "vm.inc"
|
|
1023
1022
|
# undef NAME_OF_CURRENT_INSN
|
|
1024
1023
|
|
|
1025
1024
|
/* ### Instruction trailers. ### */
|
|
@@ -1033,7 +1032,7 @@ INSN_ENTRY(tostring)
|
|
|
1033
1032
|
# undef INSN_ATTR
|
|
1034
1033
|
|
|
1035
1034
|
/* ### Leave the instruction. ### */
|
|
1036
|
-
END_INSN(
|
|
1035
|
+
END_INSN(anytostring);
|
|
1037
1036
|
}
|
|
1038
1037
|
|
|
1039
1038
|
/* insn toregexp(opt, cnt)(...)(val) */
|
|
@@ -1047,7 +1046,7 @@ INSN_ENTRY(toregexp)
|
|
|
1047
1046
|
rb_num_t opt = (rb_num_t)GET_OPERAND(1);
|
|
1048
1047
|
rb_num_t cnt = (rb_num_t)GET_OPERAND(2);
|
|
1049
1048
|
# define INSN_ATTR(x) attr_ ## x ## _toregexp(opt, cnt)
|
|
1050
|
-
bool leaf = INSN_ATTR(leaf);
|
|
1049
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
1051
1050
|
VALUE val;
|
|
1052
1051
|
|
|
1053
1052
|
/* ### Instruction preambles. ### */
|
|
@@ -1059,13 +1058,13 @@ INSN_ENTRY(toregexp)
|
|
|
1059
1058
|
|
|
1060
1059
|
/* ### Here we do the instruction body. ### */
|
|
1061
1060
|
# define NAME_OF_CURRENT_INSN toregexp
|
|
1062
|
-
# line
|
|
1061
|
+
# line 408 "insns.def"
|
|
1063
1062
|
{
|
|
1064
1063
|
const VALUE ary = rb_ary_tmp_new_from_values(0, cnt, STACK_ADDR_FROM_TOP(cnt));
|
|
1065
1064
|
val = rb_reg_new_ary(ary, (int)opt);
|
|
1066
1065
|
rb_ary_clear(ary);
|
|
1067
1066
|
}
|
|
1068
|
-
# line
|
|
1067
|
+
# line 1068 "vm.inc"
|
|
1069
1068
|
# undef NAME_OF_CURRENT_INSN
|
|
1070
1069
|
|
|
1071
1070
|
/* ### Instruction trailers. ### */
|
|
@@ -1091,7 +1090,7 @@ INSN_ENTRY(intern)
|
|
|
1091
1090
|
|
|
1092
1091
|
/* ### Declare and assign variables. ### */
|
|
1093
1092
|
# define INSN_ATTR(x) attr_ ## x ## _intern()
|
|
1094
|
-
bool leaf = INSN_ATTR(leaf);
|
|
1093
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
1095
1094
|
VALUE str = TOPN(0);
|
|
1096
1095
|
VALUE sym;
|
|
1097
1096
|
|
|
@@ -1102,11 +1101,11 @@ INSN_ENTRY(intern)
|
|
|
1102
1101
|
|
|
1103
1102
|
/* ### Here we do the instruction body. ### */
|
|
1104
1103
|
# define NAME_OF_CURRENT_INSN intern
|
|
1105
|
-
# line
|
|
1104
|
+
# line 420 "insns.def"
|
|
1106
1105
|
{
|
|
1107
1106
|
sym = rb_str_intern(str);
|
|
1108
1107
|
}
|
|
1109
|
-
# line
|
|
1108
|
+
# line 1109 "vm.inc"
|
|
1110
1109
|
# undef NAME_OF_CURRENT_INSN
|
|
1111
1110
|
|
|
1112
1111
|
/* ### Instruction trailers. ### */
|
|
@@ -1133,7 +1132,7 @@ INSN_ENTRY(newarray)
|
|
|
1133
1132
|
/* ### Declare and assign variables. ### */
|
|
1134
1133
|
rb_num_t num = (rb_num_t)GET_OPERAND(1);
|
|
1135
1134
|
# define INSN_ATTR(x) attr_ ## x ## _newarray(num)
|
|
1136
|
-
bool leaf = INSN_ATTR(leaf);
|
|
1135
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
1137
1136
|
VALUE val;
|
|
1138
1137
|
|
|
1139
1138
|
/* ### Instruction preambles. ### */
|
|
@@ -1144,11 +1143,11 @@ INSN_ENTRY(newarray)
|
|
|
1144
1143
|
|
|
1145
1144
|
/* ### Here we do the instruction body. ### */
|
|
1146
1145
|
# define NAME_OF_CURRENT_INSN newarray
|
|
1147
|
-
# line
|
|
1146
|
+
# line 431 "insns.def"
|
|
1148
1147
|
{
|
|
1149
1148
|
val = rb_ec_ary_new_from_values(ec, num, STACK_ADDR_FROM_TOP(num));
|
|
1150
1149
|
}
|
|
1151
|
-
# line
|
|
1150
|
+
# line 1151 "vm.inc"
|
|
1152
1151
|
# undef NAME_OF_CURRENT_INSN
|
|
1153
1152
|
|
|
1154
1153
|
/* ### Instruction trailers. ### */
|
|
@@ -1175,7 +1174,7 @@ INSN_ENTRY(newarraykwsplat)
|
|
|
1175
1174
|
/* ### Declare and assign variables. ### */
|
|
1176
1175
|
rb_num_t num = (rb_num_t)GET_OPERAND(1);
|
|
1177
1176
|
# define INSN_ATTR(x) attr_ ## x ## _newarraykwsplat(num)
|
|
1178
|
-
bool leaf = INSN_ATTR(leaf);
|
|
1177
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
1179
1178
|
VALUE val;
|
|
1180
1179
|
|
|
1181
1180
|
/* ### Instruction preambles. ### */
|
|
@@ -1186,7 +1185,7 @@ INSN_ENTRY(newarraykwsplat)
|
|
|
1186
1185
|
|
|
1187
1186
|
/* ### Here we do the instruction body. ### */
|
|
1188
1187
|
# define NAME_OF_CURRENT_INSN newarraykwsplat
|
|
1189
|
-
# line
|
|
1188
|
+
# line 446 "insns.def"
|
|
1190
1189
|
{
|
|
1191
1190
|
if (RHASH_EMPTY_P(*STACK_ADDR_FROM_TOP(1))) {
|
|
1192
1191
|
val = rb_ary_new4(num-1, STACK_ADDR_FROM_TOP(num));
|
|
@@ -1195,7 +1194,7 @@ INSN_ENTRY(newarraykwsplat)
|
|
|
1195
1194
|
val = rb_ary_new4(num, STACK_ADDR_FROM_TOP(num));
|
|
1196
1195
|
}
|
|
1197
1196
|
}
|
|
1198
|
-
# line
|
|
1197
|
+
# line 1198 "vm.inc"
|
|
1199
1198
|
# undef NAME_OF_CURRENT_INSN
|
|
1200
1199
|
|
|
1201
1200
|
/* ### Instruction trailers. ### */
|
|
@@ -1222,7 +1221,7 @@ INSN_ENTRY(duparray)
|
|
|
1222
1221
|
/* ### Declare and assign variables. ### */
|
|
1223
1222
|
VALUE ary = (VALUE)GET_OPERAND(1);
|
|
1224
1223
|
# define INSN_ATTR(x) attr_ ## x ## _duparray(ary)
|
|
1225
|
-
bool leaf = INSN_ATTR(leaf);
|
|
1224
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
1226
1225
|
VALUE val;
|
|
1227
1226
|
|
|
1228
1227
|
/* ### Instruction preambles. ### */
|
|
@@ -1233,12 +1232,12 @@ INSN_ENTRY(duparray)
|
|
|
1233
1232
|
|
|
1234
1233
|
/* ### Here we do the instruction body. ### */
|
|
1235
1234
|
# define NAME_OF_CURRENT_INSN duparray
|
|
1236
|
-
# line
|
|
1235
|
+
# line 461 "insns.def"
|
|
1237
1236
|
{
|
|
1238
1237
|
RUBY_DTRACE_CREATE_HOOK(ARRAY, RARRAY_LEN(ary));
|
|
1239
1238
|
val = rb_ary_resurrect(ary);
|
|
1240
1239
|
}
|
|
1241
|
-
# line
|
|
1240
|
+
# line 1241 "vm.inc"
|
|
1242
1241
|
# undef NAME_OF_CURRENT_INSN
|
|
1243
1242
|
|
|
1244
1243
|
/* ### Instruction trailers. ### */
|
|
@@ -1265,7 +1264,7 @@ INSN_ENTRY(duphash)
|
|
|
1265
1264
|
/* ### Declare and assign variables. ### */
|
|
1266
1265
|
VALUE hash = (VALUE)GET_OPERAND(1);
|
|
1267
1266
|
# define INSN_ATTR(x) attr_ ## x ## _duphash(hash)
|
|
1268
|
-
bool leaf = INSN_ATTR(leaf);
|
|
1267
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
1269
1268
|
VALUE val;
|
|
1270
1269
|
|
|
1271
1270
|
/* ### Instruction preambles. ### */
|
|
@@ -1276,12 +1275,12 @@ INSN_ENTRY(duphash)
|
|
|
1276
1275
|
|
|
1277
1276
|
/* ### Here we do the instruction body. ### */
|
|
1278
1277
|
# define NAME_OF_CURRENT_INSN duphash
|
|
1279
|
-
# line
|
|
1278
|
+
# line 472 "insns.def"
|
|
1280
1279
|
{
|
|
1281
1280
|
RUBY_DTRACE_CREATE_HOOK(HASH, RHASH_SIZE(hash) << 1);
|
|
1282
1281
|
val = rb_hash_resurrect(hash);
|
|
1283
1282
|
}
|
|
1284
|
-
# line
|
|
1283
|
+
# line 1284 "vm.inc"
|
|
1285
1284
|
# undef NAME_OF_CURRENT_INSN
|
|
1286
1285
|
|
|
1287
1286
|
/* ### Instruction trailers. ### */
|
|
@@ -1309,7 +1308,7 @@ INSN_ENTRY(expandarray)
|
|
|
1309
1308
|
rb_num_t num = (rb_num_t)GET_OPERAND(1);
|
|
1310
1309
|
rb_num_t flag = (rb_num_t)GET_OPERAND(2);
|
|
1311
1310
|
# define INSN_ATTR(x) attr_ ## x ## _expandarray(num, flag)
|
|
1312
|
-
bool leaf = INSN_ATTR(leaf);
|
|
1311
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
1313
1312
|
VALUE ary = TOPN(0);
|
|
1314
1313
|
|
|
1315
1314
|
/* ### Instruction preambles. ### */
|
|
@@ -1320,11 +1319,11 @@ INSN_ENTRY(expandarray)
|
|
|
1320
1319
|
|
|
1321
1320
|
/* ### Here we do the instruction body. ### */
|
|
1322
1321
|
# define NAME_OF_CURRENT_INSN expandarray
|
|
1323
|
-
# line
|
|
1322
|
+
# line 493 "insns.def"
|
|
1324
1323
|
{
|
|
1325
1324
|
vm_expandarray(GET_SP(), ary, num, (int)flag);
|
|
1326
1325
|
}
|
|
1327
|
-
# line
|
|
1326
|
+
# line 1327 "vm.inc"
|
|
1328
1327
|
# undef NAME_OF_CURRENT_INSN
|
|
1329
1328
|
|
|
1330
1329
|
/* ### Instruction trailers. ### */
|
|
@@ -1346,7 +1345,7 @@ INSN_ENTRY(concatarray)
|
|
|
1346
1345
|
|
|
1347
1346
|
/* ### Declare and assign variables. ### */
|
|
1348
1347
|
# define INSN_ATTR(x) attr_ ## x ## _concatarray()
|
|
1349
|
-
bool leaf = INSN_ATTR(leaf);
|
|
1348
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
1350
1349
|
VALUE ary1 = TOPN(1);
|
|
1351
1350
|
VALUE ary2 = TOPN(0);
|
|
1352
1351
|
VALUE ary;
|
|
@@ -1358,11 +1357,11 @@ INSN_ENTRY(concatarray)
|
|
|
1358
1357
|
|
|
1359
1358
|
/* ### Here we do the instruction body. ### */
|
|
1360
1359
|
# define NAME_OF_CURRENT_INSN concatarray
|
|
1361
|
-
# line
|
|
1360
|
+
# line 504 "insns.def"
|
|
1362
1361
|
{
|
|
1363
1362
|
ary = vm_concat_array(ary1, ary2);
|
|
1364
1363
|
}
|
|
1365
|
-
# line
|
|
1364
|
+
# line 1365 "vm.inc"
|
|
1366
1365
|
# undef NAME_OF_CURRENT_INSN
|
|
1367
1366
|
|
|
1368
1367
|
/* ### Instruction trailers. ### */
|
|
@@ -1389,7 +1388,7 @@ INSN_ENTRY(splatarray)
|
|
|
1389
1388
|
/* ### Declare and assign variables. ### */
|
|
1390
1389
|
VALUE flag = (VALUE)GET_OPERAND(1);
|
|
1391
1390
|
# define INSN_ATTR(x) attr_ ## x ## _splatarray(flag)
|
|
1392
|
-
bool leaf = INSN_ATTR(leaf);
|
|
1391
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
1393
1392
|
VALUE ary = TOPN(0);
|
|
1394
1393
|
VALUE obj;
|
|
1395
1394
|
|
|
@@ -1401,11 +1400,11 @@ INSN_ENTRY(splatarray)
|
|
|
1401
1400
|
|
|
1402
1401
|
/* ### Here we do the instruction body. ### */
|
|
1403
1402
|
# define NAME_OF_CURRENT_INSN splatarray
|
|
1404
|
-
# line
|
|
1403
|
+
# line 515 "insns.def"
|
|
1405
1404
|
{
|
|
1406
1405
|
obj = vm_splat_array(flag, ary);
|
|
1407
1406
|
}
|
|
1408
|
-
# line
|
|
1407
|
+
# line 1408 "vm.inc"
|
|
1409
1408
|
# undef NAME_OF_CURRENT_INSN
|
|
1410
1409
|
|
|
1411
1410
|
/* ### Instruction trailers. ### */
|
|
@@ -1432,7 +1431,7 @@ INSN_ENTRY(newhash)
|
|
|
1432
1431
|
/* ### Declare and assign variables. ### */
|
|
1433
1432
|
rb_num_t num = (rb_num_t)GET_OPERAND(1);
|
|
1434
1433
|
# define INSN_ATTR(x) attr_ ## x ## _newhash(num)
|
|
1435
|
-
bool leaf = INSN_ATTR(leaf);
|
|
1434
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
1436
1435
|
VALUE val;
|
|
1437
1436
|
|
|
1438
1437
|
/* ### Instruction preambles. ### */
|
|
@@ -1443,7 +1442,7 @@ INSN_ENTRY(newhash)
|
|
|
1443
1442
|
|
|
1444
1443
|
/* ### Here we do the instruction body. ### */
|
|
1445
1444
|
# define NAME_OF_CURRENT_INSN newhash
|
|
1446
|
-
# line
|
|
1445
|
+
# line 527 "insns.def"
|
|
1447
1446
|
{
|
|
1448
1447
|
RUBY_DTRACE_CREATE_HOOK(HASH, num);
|
|
1449
1448
|
|
|
@@ -1455,7 +1454,7 @@ INSN_ENTRY(newhash)
|
|
|
1455
1454
|
val = rb_hash_new();
|
|
1456
1455
|
}
|
|
1457
1456
|
}
|
|
1458
|
-
# line
|
|
1457
|
+
# line 1458 "vm.inc"
|
|
1459
1458
|
# undef NAME_OF_CURRENT_INSN
|
|
1460
1459
|
|
|
1461
1460
|
/* ### Instruction trailers. ### */
|
|
@@ -1482,7 +1481,7 @@ INSN_ENTRY(newrange)
|
|
|
1482
1481
|
/* ### Declare and assign variables. ### */
|
|
1483
1482
|
rb_num_t flag = (rb_num_t)GET_OPERAND(1);
|
|
1484
1483
|
# define INSN_ATTR(x) attr_ ## x ## _newrange(flag)
|
|
1485
|
-
bool leaf = INSN_ATTR(leaf);
|
|
1484
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
1486
1485
|
VALUE low = TOPN(1);
|
|
1487
1486
|
VALUE high = TOPN(0);
|
|
1488
1487
|
VALUE val;
|
|
@@ -1495,11 +1494,11 @@ INSN_ENTRY(newrange)
|
|
|
1495
1494
|
|
|
1496
1495
|
/* ### Here we do the instruction body. ### */
|
|
1497
1496
|
# define NAME_OF_CURRENT_INSN newrange
|
|
1498
|
-
# line
|
|
1497
|
+
# line 547 "insns.def"
|
|
1499
1498
|
{
|
|
1500
1499
|
val = rb_range_new(low, high, (int)flag);
|
|
1501
1500
|
}
|
|
1502
|
-
# line
|
|
1501
|
+
# line 1502 "vm.inc"
|
|
1503
1502
|
# undef NAME_OF_CURRENT_INSN
|
|
1504
1503
|
|
|
1505
1504
|
/* ### Instruction trailers. ### */
|
|
@@ -1525,7 +1524,7 @@ INSN_ENTRY(pop)
|
|
|
1525
1524
|
|
|
1526
1525
|
/* ### Declare and assign variables. ### */
|
|
1527
1526
|
# define INSN_ATTR(x) attr_ ## x ## _pop()
|
|
1528
|
-
bool leaf = INSN_ATTR(leaf);
|
|
1527
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
1529
1528
|
VALUE val = TOPN(0);
|
|
1530
1529
|
|
|
1531
1530
|
/* ### Instruction preambles. ### */
|
|
@@ -1535,12 +1534,12 @@ INSN_ENTRY(pop)
|
|
|
1535
1534
|
|
|
1536
1535
|
/* ### Here we do the instruction body. ### */
|
|
1537
1536
|
# define NAME_OF_CURRENT_INSN pop
|
|
1538
|
-
# line
|
|
1537
|
+
# line 561 "insns.def"
|
|
1539
1538
|
{
|
|
1540
1539
|
(void)val;
|
|
1541
1540
|
/* none */
|
|
1542
1541
|
}
|
|
1543
|
-
# line
|
|
1542
|
+
# line 1543 "vm.inc"
|
|
1544
1543
|
# undef NAME_OF_CURRENT_INSN
|
|
1545
1544
|
|
|
1546
1545
|
/* ### Instruction trailers. ### */
|
|
@@ -1563,7 +1562,7 @@ INSN_ENTRY(dup)
|
|
|
1563
1562
|
|
|
1564
1563
|
/* ### Declare and assign variables. ### */
|
|
1565
1564
|
# define INSN_ATTR(x) attr_ ## x ## _dup()
|
|
1566
|
-
bool leaf = INSN_ATTR(leaf);
|
|
1565
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
1567
1566
|
VALUE val = TOPN(0);
|
|
1568
1567
|
VALUE val1;
|
|
1569
1568
|
VALUE val2;
|
|
@@ -1575,11 +1574,11 @@ INSN_ENTRY(dup)
|
|
|
1575
1574
|
|
|
1576
1575
|
/* ### Here we do the instruction body. ### */
|
|
1577
1576
|
# define NAME_OF_CURRENT_INSN dup
|
|
1578
|
-
# line
|
|
1577
|
+
# line 572 "insns.def"
|
|
1579
1578
|
{
|
|
1580
1579
|
val1 = val2 = val;
|
|
1581
1580
|
}
|
|
1582
|
-
# line
|
|
1581
|
+
# line 1582 "vm.inc"
|
|
1583
1582
|
# undef NAME_OF_CURRENT_INSN
|
|
1584
1583
|
|
|
1585
1584
|
/* ### Instruction trailers. ### */
|
|
@@ -1609,7 +1608,7 @@ INSN_ENTRY(dupn)
|
|
|
1609
1608
|
/* ### Declare and assign variables. ### */
|
|
1610
1609
|
rb_num_t n = (rb_num_t)GET_OPERAND(1);
|
|
1611
1610
|
# define INSN_ATTR(x) attr_ ## x ## _dupn(n)
|
|
1612
|
-
bool leaf = INSN_ATTR(leaf);
|
|
1611
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
1613
1612
|
|
|
1614
1613
|
/* ### Instruction preambles. ### */
|
|
1615
1614
|
if (! leaf) ADD_PC(INSN_ATTR(width));
|
|
@@ -1618,14 +1617,14 @@ INSN_ENTRY(dupn)
|
|
|
1618
1617
|
|
|
1619
1618
|
/* ### Here we do the instruction body. ### */
|
|
1620
1619
|
# define NAME_OF_CURRENT_INSN dupn
|
|
1621
|
-
# line
|
|
1620
|
+
# line 583 "insns.def"
|
|
1622
1621
|
{
|
|
1623
1622
|
void *dst = GET_SP();
|
|
1624
1623
|
void *src = STACK_ADDR_FROM_TOP(n);
|
|
1625
1624
|
|
|
1626
1625
|
MEMCPY(dst, src, VALUE, n);
|
|
1627
1626
|
}
|
|
1628
|
-
# line
|
|
1627
|
+
# line 1628 "vm.inc"
|
|
1629
1628
|
# undef NAME_OF_CURRENT_INSN
|
|
1630
1629
|
|
|
1631
1630
|
/* ### Instruction trailers. ### */
|
|
@@ -1647,7 +1646,7 @@ INSN_ENTRY(swap)
|
|
|
1647
1646
|
|
|
1648
1647
|
/* ### Declare and assign variables. ### */
|
|
1649
1648
|
# define INSN_ATTR(x) attr_ ## x ## _swap()
|
|
1650
|
-
bool leaf = INSN_ATTR(leaf);
|
|
1649
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
1651
1650
|
VALUE val = TOPN(1);
|
|
1652
1651
|
VALUE obj = TOPN(0);
|
|
1653
1652
|
|
|
@@ -1681,7 +1680,7 @@ INSN_ENTRY(topn)
|
|
|
1681
1680
|
/* ### Declare and assign variables. ### */
|
|
1682
1681
|
rb_num_t n = (rb_num_t)GET_OPERAND(1);
|
|
1683
1682
|
# define INSN_ATTR(x) attr_ ## x ## _topn(n)
|
|
1684
|
-
bool leaf = INSN_ATTR(leaf);
|
|
1683
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
1685
1684
|
VALUE val;
|
|
1686
1685
|
|
|
1687
1686
|
/* ### Instruction preambles. ### */
|
|
@@ -1692,11 +1691,11 @@ INSN_ENTRY(topn)
|
|
|
1692
1691
|
|
|
1693
1692
|
/* ### Here we do the instruction body. ### */
|
|
1694
1693
|
# define NAME_OF_CURRENT_INSN topn
|
|
1695
|
-
# line
|
|
1694
|
+
# line 618 "insns.def"
|
|
1696
1695
|
{
|
|
1697
1696
|
val = TOPN(n);
|
|
1698
1697
|
}
|
|
1699
|
-
# line
|
|
1698
|
+
# line 1699 "vm.inc"
|
|
1700
1699
|
# undef NAME_OF_CURRENT_INSN
|
|
1701
1700
|
|
|
1702
1701
|
/* ### Instruction trailers. ### */
|
|
@@ -1723,7 +1722,7 @@ INSN_ENTRY(setn)
|
|
|
1723
1722
|
/* ### Declare and assign variables. ### */
|
|
1724
1723
|
rb_num_t n = (rb_num_t)GET_OPERAND(1);
|
|
1725
1724
|
# define INSN_ATTR(x) attr_ ## x ## _setn(n)
|
|
1726
|
-
bool leaf = INSN_ATTR(leaf);
|
|
1725
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
1727
1726
|
VALUE val = TOPN(0);
|
|
1728
1727
|
|
|
1729
1728
|
/* ### Instruction preambles. ### */
|
|
@@ -1734,11 +1733,11 @@ INSN_ENTRY(setn)
|
|
|
1734
1733
|
|
|
1735
1734
|
/* ### Here we do the instruction body. ### */
|
|
1736
1735
|
# define NAME_OF_CURRENT_INSN setn
|
|
1737
|
-
# line
|
|
1736
|
+
# line 629 "insns.def"
|
|
1738
1737
|
{
|
|
1739
1738
|
TOPN(n) = val;
|
|
1740
1739
|
}
|
|
1741
|
-
# line
|
|
1740
|
+
# line 1741 "vm.inc"
|
|
1742
1741
|
# undef NAME_OF_CURRENT_INSN
|
|
1743
1742
|
|
|
1744
1743
|
/* ### Instruction trailers. ### */
|
|
@@ -1765,7 +1764,7 @@ INSN_ENTRY(adjuststack)
|
|
|
1765
1764
|
/* ### Declare and assign variables. ### */
|
|
1766
1765
|
rb_num_t n = (rb_num_t)GET_OPERAND(1);
|
|
1767
1766
|
# define INSN_ATTR(x) attr_ ## x ## _adjuststack(n)
|
|
1768
|
-
bool leaf = INSN_ATTR(leaf);
|
|
1767
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
1769
1768
|
|
|
1770
1769
|
/* ### Instruction preambles. ### */
|
|
1771
1770
|
if (! leaf) ADD_PC(INSN_ATTR(width));
|
|
@@ -1794,7 +1793,7 @@ INSN_ENTRY(defined)
|
|
|
1794
1793
|
VALUE obj = (VALUE)GET_OPERAND(2);
|
|
1795
1794
|
VALUE pushval = (VALUE)GET_OPERAND(3);
|
|
1796
1795
|
# define INSN_ATTR(x) attr_ ## x ## _defined(op_type, obj, pushval)
|
|
1797
|
-
bool leaf = INSN_ATTR(leaf);
|
|
1796
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
1798
1797
|
VALUE v = TOPN(0);
|
|
1799
1798
|
VALUE val;
|
|
1800
1799
|
|
|
@@ -1808,14 +1807,14 @@ INSN_ENTRY(defined)
|
|
|
1808
1807
|
|
|
1809
1808
|
/* ### Here we do the instruction body. ### */
|
|
1810
1809
|
# define NAME_OF_CURRENT_INSN defined
|
|
1811
|
-
# line
|
|
1810
|
+
# line 655 "insns.def"
|
|
1812
1811
|
{
|
|
1813
1812
|
val = Qnil;
|
|
1814
1813
|
if (vm_defined(ec, GET_CFP(), op_type, obj, v)) {
|
|
1815
1814
|
val = pushval;
|
|
1816
1815
|
}
|
|
1817
1816
|
}
|
|
1818
|
-
# line
|
|
1817
|
+
# line 1818 "vm.inc"
|
|
1819
1818
|
# undef NAME_OF_CURRENT_INSN
|
|
1820
1819
|
|
|
1821
1820
|
/* ### Instruction trailers. ### */
|
|
@@ -1842,7 +1841,7 @@ INSN_ENTRY(checkmatch)
|
|
|
1842
1841
|
/* ### Declare and assign variables. ### */
|
|
1843
1842
|
rb_num_t flag = (rb_num_t)GET_OPERAND(1);
|
|
1844
1843
|
# define INSN_ATTR(x) attr_ ## x ## _checkmatch(flag)
|
|
1845
|
-
bool leaf = INSN_ATTR(leaf);
|
|
1844
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
1846
1845
|
VALUE target = TOPN(1);
|
|
1847
1846
|
VALUE pattern = TOPN(0);
|
|
1848
1847
|
VALUE result;
|
|
@@ -1855,11 +1854,11 @@ INSN_ENTRY(checkmatch)
|
|
|
1855
1854
|
|
|
1856
1855
|
/* ### Here we do the instruction body. ### */
|
|
1857
1856
|
# define NAME_OF_CURRENT_INSN checkmatch
|
|
1858
|
-
# line
|
|
1857
|
+
# line 675 "insns.def"
|
|
1859
1858
|
{
|
|
1860
1859
|
result = vm_check_match(ec, target, pattern, flag);
|
|
1861
1860
|
}
|
|
1862
|
-
# line
|
|
1861
|
+
# line 1862 "vm.inc"
|
|
1863
1862
|
# undef NAME_OF_CURRENT_INSN
|
|
1864
1863
|
|
|
1865
1864
|
/* ### Instruction trailers. ### */
|
|
@@ -1887,7 +1886,7 @@ INSN_ENTRY(checkkeyword)
|
|
|
1887
1886
|
lindex_t kw_bits_index = (lindex_t)GET_OPERAND(1);
|
|
1888
1887
|
lindex_t keyword_index = (lindex_t)GET_OPERAND(2);
|
|
1889
1888
|
# define INSN_ATTR(x) attr_ ## x ## _checkkeyword(kw_bits_index, keyword_index)
|
|
1890
|
-
bool leaf = INSN_ATTR(leaf);
|
|
1889
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
1891
1890
|
VALUE ret;
|
|
1892
1891
|
|
|
1893
1892
|
/* ### Instruction preambles. ### */
|
|
@@ -1899,11 +1898,11 @@ INSN_ENTRY(checkkeyword)
|
|
|
1899
1898
|
|
|
1900
1899
|
/* ### Here we do the instruction body. ### */
|
|
1901
1900
|
# define NAME_OF_CURRENT_INSN checkkeyword
|
|
1902
|
-
# line
|
|
1901
|
+
# line 685 "insns.def"
|
|
1903
1902
|
{
|
|
1904
1903
|
ret = vm_check_keyword(kw_bits_index, keyword_index, GET_EP());
|
|
1905
1904
|
}
|
|
1906
|
-
# line
|
|
1905
|
+
# line 1906 "vm.inc"
|
|
1907
1906
|
# undef NAME_OF_CURRENT_INSN
|
|
1908
1907
|
|
|
1909
1908
|
/* ### Instruction trailers. ### */
|
|
@@ -1930,7 +1929,7 @@ INSN_ENTRY(checktype)
|
|
|
1930
1929
|
/* ### Declare and assign variables. ### */
|
|
1931
1930
|
rb_num_t type = (rb_num_t)GET_OPERAND(1);
|
|
1932
1931
|
# define INSN_ATTR(x) attr_ ## x ## _checktype(type)
|
|
1933
|
-
bool leaf = INSN_ATTR(leaf);
|
|
1932
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
1934
1933
|
VALUE val = TOPN(0);
|
|
1935
1934
|
VALUE ret;
|
|
1936
1935
|
|
|
@@ -1942,11 +1941,11 @@ INSN_ENTRY(checktype)
|
|
|
1942
1941
|
|
|
1943
1942
|
/* ### Here we do the instruction body. ### */
|
|
1944
1943
|
# define NAME_OF_CURRENT_INSN checktype
|
|
1945
|
-
# line
|
|
1944
|
+
# line 695 "insns.def"
|
|
1946
1945
|
{
|
|
1947
1946
|
ret = (TYPE(val) == (int)type) ? Qtrue : Qfalse;
|
|
1948
1947
|
}
|
|
1949
|
-
# line
|
|
1948
|
+
# line 1949 "vm.inc"
|
|
1950
1949
|
# undef NAME_OF_CURRENT_INSN
|
|
1951
1950
|
|
|
1952
1951
|
/* ### Instruction trailers. ### */
|
|
@@ -1975,7 +1974,7 @@ INSN_ENTRY(defineclass)
|
|
|
1975
1974
|
ISEQ class_iseq = (ISEQ)GET_OPERAND(2);
|
|
1976
1975
|
rb_num_t flags = (rb_num_t)GET_OPERAND(3);
|
|
1977
1976
|
# define INSN_ATTR(x) attr_ ## x ## _defineclass(id, class_iseq, flags)
|
|
1978
|
-
bool leaf = INSN_ATTR(leaf);
|
|
1977
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
1979
1978
|
VALUE cbase = TOPN(1);
|
|
1980
1979
|
VALUE super = TOPN(0);
|
|
1981
1980
|
VALUE val;
|
|
@@ -1991,7 +1990,7 @@ INSN_ENTRY(defineclass)
|
|
|
1991
1990
|
|
|
1992
1991
|
/* ### Here we do the instruction body. ### */
|
|
1993
1992
|
# define NAME_OF_CURRENT_INSN defineclass
|
|
1994
|
-
# line
|
|
1993
|
+
# line 711 "insns.def"
|
|
1995
1994
|
{
|
|
1996
1995
|
VALUE klass = vm_find_or_create_class_by_id(id, flags, cbase, super);
|
|
1997
1996
|
|
|
@@ -2000,14 +1999,14 @@ INSN_ENTRY(defineclass)
|
|
|
2000
1999
|
/* enter scope */
|
|
2001
2000
|
vm_push_frame(ec, class_iseq, VM_FRAME_MAGIC_CLASS | VM_ENV_FLAG_LOCAL, klass,
|
|
2002
2001
|
GET_BLOCK_HANDLER(),
|
|
2003
|
-
(VALUE)vm_cref_push(ec, klass, NULL, FALSE),
|
|
2002
|
+
(VALUE)vm_cref_push(ec, klass, NULL, FALSE, FALSE),
|
|
2004
2003
|
class_iseq->body->iseq_encoded, GET_SP(),
|
|
2005
2004
|
class_iseq->body->local_table_size,
|
|
2006
2005
|
class_iseq->body->stack_max);
|
|
2007
2006
|
RESTORE_REGS();
|
|
2008
2007
|
NEXT_INSN();
|
|
2009
2008
|
}
|
|
2010
|
-
# line
|
|
2009
|
+
# line 2010 "vm.inc"
|
|
2011
2010
|
# undef NAME_OF_CURRENT_INSN
|
|
2012
2011
|
|
|
2013
2012
|
/* ### Instruction trailers. ### */
|
|
@@ -2032,7 +2031,7 @@ INSN_ENTRY(definemethod)
|
|
|
2032
2031
|
ID id = (ID)GET_OPERAND(1);
|
|
2033
2032
|
ISEQ iseq = (ISEQ)GET_OPERAND(2);
|
|
2034
2033
|
# define INSN_ATTR(x) attr_ ## x ## _definemethod(id, iseq)
|
|
2035
|
-
bool leaf = INSN_ATTR(leaf);
|
|
2034
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
2036
2035
|
|
|
2037
2036
|
/* ### Instruction preambles. ### */
|
|
2038
2037
|
if (! leaf) ADD_PC(INSN_ATTR(width));
|
|
@@ -2044,11 +2043,11 @@ INSN_ENTRY(definemethod)
|
|
|
2044
2043
|
|
|
2045
2044
|
/* ### Here we do the instruction body. ### */
|
|
2046
2045
|
# define NAME_OF_CURRENT_INSN definemethod
|
|
2047
|
-
# line
|
|
2046
|
+
# line 732 "insns.def"
|
|
2048
2047
|
{
|
|
2049
2048
|
vm_define_method(ec, Qnil, id, (VALUE)iseq, FALSE);
|
|
2050
2049
|
}
|
|
2051
|
-
# line
|
|
2050
|
+
# line 2051 "vm.inc"
|
|
2052
2051
|
# undef NAME_OF_CURRENT_INSN
|
|
2053
2052
|
|
|
2054
2053
|
/* ### Instruction trailers. ### */
|
|
@@ -2072,7 +2071,7 @@ INSN_ENTRY(definesmethod)
|
|
|
2072
2071
|
ID id = (ID)GET_OPERAND(1);
|
|
2073
2072
|
ISEQ iseq = (ISEQ)GET_OPERAND(2);
|
|
2074
2073
|
# define INSN_ATTR(x) attr_ ## x ## _definesmethod(id, iseq)
|
|
2075
|
-
bool leaf = INSN_ATTR(leaf);
|
|
2074
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
2076
2075
|
VALUE obj = TOPN(0);
|
|
2077
2076
|
|
|
2078
2077
|
/* ### Instruction preambles. ### */
|
|
@@ -2085,11 +2084,11 @@ INSN_ENTRY(definesmethod)
|
|
|
2085
2084
|
|
|
2086
2085
|
/* ### Here we do the instruction body. ### */
|
|
2087
2086
|
# define NAME_OF_CURRENT_INSN definesmethod
|
|
2088
|
-
# line
|
|
2087
|
+
# line 741 "insns.def"
|
|
2089
2088
|
{
|
|
2090
2089
|
vm_define_method(ec, obj, id, (VALUE)iseq, TRUE);
|
|
2091
2090
|
}
|
|
2092
|
-
# line
|
|
2091
|
+
# line 2092 "vm.inc"
|
|
2093
2092
|
# undef NAME_OF_CURRENT_INSN
|
|
2094
2093
|
|
|
2095
2094
|
/* ### Instruction trailers. ### */
|
|
@@ -2113,7 +2112,7 @@ INSN_ENTRY(send)
|
|
|
2113
2112
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
2114
2113
|
ISEQ blockiseq = (ISEQ)GET_OPERAND(2);
|
|
2115
2114
|
# define INSN_ATTR(x) attr_ ## x ## _send(cd, blockiseq)
|
|
2116
|
-
bool leaf = INSN_ATTR(leaf);
|
|
2115
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
2117
2116
|
VALUE val;
|
|
2118
2117
|
|
|
2119
2118
|
/* ### Instruction preambles. ### */
|
|
@@ -2126,7 +2125,7 @@ INSN_ENTRY(send)
|
|
|
2126
2125
|
|
|
2127
2126
|
/* ### Here we do the instruction body. ### */
|
|
2128
2127
|
# define NAME_OF_CURRENT_INSN send
|
|
2129
|
-
# line
|
|
2128
|
+
# line 757 "insns.def"
|
|
2130
2129
|
{
|
|
2131
2130
|
VALUE bh = vm_caller_setup_arg_block(ec, GET_CFP(), cd->ci, blockiseq, false);
|
|
2132
2131
|
val = vm_sendish(ec, GET_CFP(), cd, bh, mexp_search_method);
|
|
@@ -2136,7 +2135,7 @@ INSN_ENTRY(send)
|
|
|
2136
2135
|
NEXT_INSN();
|
|
2137
2136
|
}
|
|
2138
2137
|
}
|
|
2139
|
-
# line
|
|
2138
|
+
# line 2139 "vm.inc"
|
|
2140
2139
|
# undef NAME_OF_CURRENT_INSN
|
|
2141
2140
|
|
|
2142
2141
|
/* ### Instruction trailers. ### */
|
|
@@ -2160,7 +2159,7 @@ INSN_ENTRY(opt_send_without_block)
|
|
|
2160
2159
|
/* ### Declare and assign variables. ### */
|
|
2161
2160
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
2162
2161
|
# define INSN_ATTR(x) attr_ ## x ## _opt_send_without_block(cd)
|
|
2163
|
-
bool leaf = INSN_ATTR(leaf);
|
|
2162
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
2164
2163
|
VALUE val;
|
|
2165
2164
|
|
|
2166
2165
|
/* ### Instruction preambles. ### */
|
|
@@ -2172,7 +2171,7 @@ INSN_ENTRY(opt_send_without_block)
|
|
|
2172
2171
|
|
|
2173
2172
|
/* ### Here we do the instruction body. ### */
|
|
2174
2173
|
# define NAME_OF_CURRENT_INSN opt_send_without_block
|
|
2175
|
-
# line
|
|
2174
|
+
# line 776 "insns.def"
|
|
2176
2175
|
{
|
|
2177
2176
|
VALUE bh = VM_BLOCK_HANDLER_NONE;
|
|
2178
2177
|
val = vm_sendish(ec, GET_CFP(), cd, bh, mexp_search_method);
|
|
@@ -2182,7 +2181,7 @@ INSN_ENTRY(opt_send_without_block)
|
|
|
2182
2181
|
NEXT_INSN();
|
|
2183
2182
|
}
|
|
2184
2183
|
}
|
|
2185
|
-
# line
|
|
2184
|
+
# line 2185 "vm.inc"
|
|
2186
2185
|
# undef NAME_OF_CURRENT_INSN
|
|
2187
2186
|
|
|
2188
2187
|
/* ### Instruction trailers. ### */
|
|
@@ -2196,6 +2195,53 @@ INSN_ENTRY(opt_send_without_block)
|
|
|
2196
2195
|
END_INSN(opt_send_without_block);
|
|
2197
2196
|
}
|
|
2198
2197
|
|
|
2198
|
+
/* insn objtostring(cd)(recv)(val) */
|
|
2199
|
+
INSN_ENTRY(objtostring)
|
|
2200
|
+
{
|
|
2201
|
+
/* ### Declare that we have just entered into an instruction. ### */
|
|
2202
|
+
START_OF_ORIGINAL_INSN(objtostring);
|
|
2203
|
+
DEBUG_ENTER_INSN("objtostring");
|
|
2204
|
+
|
|
2205
|
+
/* ### Declare and assign variables. ### */
|
|
2206
|
+
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
2207
|
+
# define INSN_ATTR(x) attr_ ## x ## _objtostring(cd)
|
|
2208
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
2209
|
+
VALUE recv = TOPN(0);
|
|
2210
|
+
VALUE val;
|
|
2211
|
+
|
|
2212
|
+
/* ### Instruction preambles. ### */
|
|
2213
|
+
if (! leaf) ADD_PC(INSN_ATTR(width));
|
|
2214
|
+
SETUP_CANARY(leaf);
|
|
2215
|
+
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
2216
|
+
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, cd);
|
|
2217
|
+
|
|
2218
|
+
/* ### Here we do the instruction body. ### */
|
|
2219
|
+
# define NAME_OF_CURRENT_INSN objtostring
|
|
2220
|
+
# line 793 "insns.def"
|
|
2221
|
+
{
|
|
2222
|
+
val = vm_objtostring(GET_ISEQ(), recv, cd);
|
|
2223
|
+
|
|
2224
|
+
if (val == Qundef) {
|
|
2225
|
+
CALL_SIMPLE_METHOD();
|
|
2226
|
+
}
|
|
2227
|
+
}
|
|
2228
|
+
# line 2229 "vm.inc"
|
|
2229
|
+
# undef NAME_OF_CURRENT_INSN
|
|
2230
|
+
|
|
2231
|
+
/* ### Instruction trailers. ### */
|
|
2232
|
+
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
2233
|
+
CHECK_CANARY(leaf, INSN_ATTR(bin));
|
|
2234
|
+
INC_SP(INSN_ATTR(sp_inc));
|
|
2235
|
+
TOPN(0) = val;
|
|
2236
|
+
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
2237
|
+
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
2238
|
+
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
2239
|
+
# undef INSN_ATTR
|
|
2240
|
+
|
|
2241
|
+
/* ### Leave the instruction. ### */
|
|
2242
|
+
END_INSN(objtostring);
|
|
2243
|
+
}
|
|
2244
|
+
|
|
2199
2245
|
/* insn opt_str_freeze(str, cd)()(val) */
|
|
2200
2246
|
INSN_ENTRY(opt_str_freeze)
|
|
2201
2247
|
{
|
|
@@ -2207,7 +2253,7 @@ INSN_ENTRY(opt_str_freeze)
|
|
|
2207
2253
|
VALUE str = (VALUE)GET_OPERAND(1);
|
|
2208
2254
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(2);
|
|
2209
2255
|
# define INSN_ATTR(x) attr_ ## x ## _opt_str_freeze(str, cd)
|
|
2210
|
-
bool leaf = INSN_ATTR(leaf);
|
|
2256
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
2211
2257
|
VALUE val;
|
|
2212
2258
|
|
|
2213
2259
|
/* ### Instruction preambles. ### */
|
|
@@ -2219,7 +2265,7 @@ INSN_ENTRY(opt_str_freeze)
|
|
|
2219
2265
|
|
|
2220
2266
|
/* ### Here we do the instruction body. ### */
|
|
2221
2267
|
# define NAME_OF_CURRENT_INSN opt_str_freeze
|
|
2222
|
-
# line
|
|
2268
|
+
# line 806 "insns.def"
|
|
2223
2269
|
{
|
|
2224
2270
|
val = vm_opt_str_freeze(str, BOP_FREEZE, idFreeze);
|
|
2225
2271
|
|
|
@@ -2228,7 +2274,7 @@ INSN_ENTRY(opt_str_freeze)
|
|
|
2228
2274
|
CALL_SIMPLE_METHOD();
|
|
2229
2275
|
}
|
|
2230
2276
|
}
|
|
2231
|
-
# line
|
|
2277
|
+
# line 2278 "vm.inc"
|
|
2232
2278
|
# undef NAME_OF_CURRENT_INSN
|
|
2233
2279
|
|
|
2234
2280
|
/* ### Instruction trailers. ### */
|
|
@@ -2255,7 +2301,7 @@ INSN_ENTRY(opt_nil_p)
|
|
|
2255
2301
|
/* ### Declare and assign variables. ### */
|
|
2256
2302
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
2257
2303
|
# define INSN_ATTR(x) attr_ ## x ## _opt_nil_p(cd)
|
|
2258
|
-
bool leaf = INSN_ATTR(leaf);
|
|
2304
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
2259
2305
|
VALUE recv = TOPN(0);
|
|
2260
2306
|
VALUE val;
|
|
2261
2307
|
|
|
@@ -2267,7 +2313,7 @@ INSN_ENTRY(opt_nil_p)
|
|
|
2267
2313
|
|
|
2268
2314
|
/* ### Here we do the instruction body. ### */
|
|
2269
2315
|
# define NAME_OF_CURRENT_INSN opt_nil_p
|
|
2270
|
-
# line
|
|
2316
|
+
# line 821 "insns.def"
|
|
2271
2317
|
{
|
|
2272
2318
|
val = vm_opt_nil_p(GET_ISEQ(), cd, recv);
|
|
2273
2319
|
|
|
@@ -2275,7 +2321,7 @@ INSN_ENTRY(opt_nil_p)
|
|
|
2275
2321
|
CALL_SIMPLE_METHOD();
|
|
2276
2322
|
}
|
|
2277
2323
|
}
|
|
2278
|
-
# line
|
|
2324
|
+
# line 2325 "vm.inc"
|
|
2279
2325
|
# undef NAME_OF_CURRENT_INSN
|
|
2280
2326
|
|
|
2281
2327
|
/* ### Instruction trailers. ### */
|
|
@@ -2303,7 +2349,7 @@ INSN_ENTRY(opt_str_uminus)
|
|
|
2303
2349
|
VALUE str = (VALUE)GET_OPERAND(1);
|
|
2304
2350
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(2);
|
|
2305
2351
|
# define INSN_ATTR(x) attr_ ## x ## _opt_str_uminus(str, cd)
|
|
2306
|
-
bool leaf = INSN_ATTR(leaf);
|
|
2352
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
2307
2353
|
VALUE val;
|
|
2308
2354
|
|
|
2309
2355
|
/* ### Instruction preambles. ### */
|
|
@@ -2315,7 +2361,7 @@ INSN_ENTRY(opt_str_uminus)
|
|
|
2315
2361
|
|
|
2316
2362
|
/* ### Here we do the instruction body. ### */
|
|
2317
2363
|
# define NAME_OF_CURRENT_INSN opt_str_uminus
|
|
2318
|
-
# line
|
|
2364
|
+
# line 834 "insns.def"
|
|
2319
2365
|
{
|
|
2320
2366
|
val = vm_opt_str_freeze(str, BOP_UMINUS, idUMinus);
|
|
2321
2367
|
|
|
@@ -2324,7 +2370,7 @@ INSN_ENTRY(opt_str_uminus)
|
|
|
2324
2370
|
CALL_SIMPLE_METHOD();
|
|
2325
2371
|
}
|
|
2326
2372
|
}
|
|
2327
|
-
# line
|
|
2373
|
+
# line 2374 "vm.inc"
|
|
2328
2374
|
# undef NAME_OF_CURRENT_INSN
|
|
2329
2375
|
|
|
2330
2376
|
/* ### Instruction trailers. ### */
|
|
@@ -2351,7 +2397,7 @@ INSN_ENTRY(opt_newarray_max)
|
|
|
2351
2397
|
/* ### Declare and assign variables. ### */
|
|
2352
2398
|
rb_num_t num = (rb_num_t)GET_OPERAND(1);
|
|
2353
2399
|
# define INSN_ATTR(x) attr_ ## x ## _opt_newarray_max(num)
|
|
2354
|
-
bool leaf = INSN_ATTR(leaf);
|
|
2400
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
2355
2401
|
VALUE val;
|
|
2356
2402
|
|
|
2357
2403
|
/* ### Instruction preambles. ### */
|
|
@@ -2362,11 +2408,11 @@ INSN_ENTRY(opt_newarray_max)
|
|
|
2362
2408
|
|
|
2363
2409
|
/* ### Here we do the instruction body. ### */
|
|
2364
2410
|
# define NAME_OF_CURRENT_INSN opt_newarray_max
|
|
2365
|
-
# line
|
|
2411
|
+
# line 854 "insns.def"
|
|
2366
2412
|
{
|
|
2367
2413
|
val = vm_opt_newarray_max(ec, num, STACK_ADDR_FROM_TOP(num));
|
|
2368
2414
|
}
|
|
2369
|
-
# line
|
|
2415
|
+
# line 2416 "vm.inc"
|
|
2370
2416
|
# undef NAME_OF_CURRENT_INSN
|
|
2371
2417
|
|
|
2372
2418
|
/* ### Instruction trailers. ### */
|
|
@@ -2393,7 +2439,7 @@ INSN_ENTRY(opt_newarray_min)
|
|
|
2393
2439
|
/* ### Declare and assign variables. ### */
|
|
2394
2440
|
rb_num_t num = (rb_num_t)GET_OPERAND(1);
|
|
2395
2441
|
# define INSN_ATTR(x) attr_ ## x ## _opt_newarray_min(num)
|
|
2396
|
-
bool leaf = INSN_ATTR(leaf);
|
|
2442
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
2397
2443
|
VALUE val;
|
|
2398
2444
|
|
|
2399
2445
|
/* ### Instruction preambles. ### */
|
|
@@ -2404,11 +2450,11 @@ INSN_ENTRY(opt_newarray_min)
|
|
|
2404
2450
|
|
|
2405
2451
|
/* ### Here we do the instruction body. ### */
|
|
2406
2452
|
# define NAME_OF_CURRENT_INSN opt_newarray_min
|
|
2407
|
-
# line
|
|
2453
|
+
# line 866 "insns.def"
|
|
2408
2454
|
{
|
|
2409
2455
|
val = vm_opt_newarray_min(ec, num, STACK_ADDR_FROM_TOP(num));
|
|
2410
2456
|
}
|
|
2411
|
-
# line
|
|
2457
|
+
# line 2458 "vm.inc"
|
|
2412
2458
|
# undef NAME_OF_CURRENT_INSN
|
|
2413
2459
|
|
|
2414
2460
|
/* ### Instruction trailers. ### */
|
|
@@ -2436,7 +2482,7 @@ INSN_ENTRY(invokesuper)
|
|
|
2436
2482
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
2437
2483
|
ISEQ blockiseq = (ISEQ)GET_OPERAND(2);
|
|
2438
2484
|
# define INSN_ATTR(x) attr_ ## x ## _invokesuper(cd, blockiseq)
|
|
2439
|
-
bool leaf = INSN_ATTR(leaf);
|
|
2485
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
2440
2486
|
VALUE val;
|
|
2441
2487
|
|
|
2442
2488
|
/* ### Instruction preambles. ### */
|
|
@@ -2449,7 +2495,7 @@ INSN_ENTRY(invokesuper)
|
|
|
2449
2495
|
|
|
2450
2496
|
/* ### Here we do the instruction body. ### */
|
|
2451
2497
|
# define NAME_OF_CURRENT_INSN invokesuper
|
|
2452
|
-
# line
|
|
2498
|
+
# line 878 "insns.def"
|
|
2453
2499
|
{
|
|
2454
2500
|
VALUE bh = vm_caller_setup_arg_block(ec, GET_CFP(), cd->ci, blockiseq, true);
|
|
2455
2501
|
val = vm_sendish(ec, GET_CFP(), cd, bh, mexp_search_super);
|
|
@@ -2459,7 +2505,7 @@ INSN_ENTRY(invokesuper)
|
|
|
2459
2505
|
NEXT_INSN();
|
|
2460
2506
|
}
|
|
2461
2507
|
}
|
|
2462
|
-
# line
|
|
2508
|
+
# line 2509 "vm.inc"
|
|
2463
2509
|
# undef NAME_OF_CURRENT_INSN
|
|
2464
2510
|
|
|
2465
2511
|
/* ### Instruction trailers. ### */
|
|
@@ -2483,7 +2529,7 @@ INSN_ENTRY(invokeblock)
|
|
|
2483
2529
|
/* ### Declare and assign variables. ### */
|
|
2484
2530
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
2485
2531
|
# define INSN_ATTR(x) attr_ ## x ## _invokeblock(cd)
|
|
2486
|
-
bool leaf = INSN_ATTR(leaf);
|
|
2532
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
2487
2533
|
VALUE val;
|
|
2488
2534
|
|
|
2489
2535
|
/* ### Instruction preambles. ### */
|
|
@@ -2495,7 +2541,7 @@ INSN_ENTRY(invokeblock)
|
|
|
2495
2541
|
|
|
2496
2542
|
/* ### Here we do the instruction body. ### */
|
|
2497
2543
|
# define NAME_OF_CURRENT_INSN invokeblock
|
|
2498
|
-
# line
|
|
2544
|
+
# line 897 "insns.def"
|
|
2499
2545
|
{
|
|
2500
2546
|
VALUE bh = VM_BLOCK_HANDLER_NONE;
|
|
2501
2547
|
val = vm_sendish(ec, GET_CFP(), cd, bh, mexp_search_invokeblock);
|
|
@@ -2505,7 +2551,7 @@ INSN_ENTRY(invokeblock)
|
|
|
2505
2551
|
NEXT_INSN();
|
|
2506
2552
|
}
|
|
2507
2553
|
}
|
|
2508
|
-
# line
|
|
2554
|
+
# line 2555 "vm.inc"
|
|
2509
2555
|
# undef NAME_OF_CURRENT_INSN
|
|
2510
2556
|
|
|
2511
2557
|
/* ### Instruction trailers. ### */
|
|
@@ -2528,7 +2574,7 @@ INSN_ENTRY(leave)
|
|
|
2528
2574
|
|
|
2529
2575
|
/* ### Declare and assign variables. ### */
|
|
2530
2576
|
# define INSN_ATTR(x) attr_ ## x ## _leave()
|
|
2531
|
-
bool leaf = INSN_ATTR(leaf);
|
|
2577
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
2532
2578
|
VALUE val = TOPN(0);
|
|
2533
2579
|
|
|
2534
2580
|
/* ### Instruction preambles. ### */
|
|
@@ -2539,7 +2585,7 @@ INSN_ENTRY(leave)
|
|
|
2539
2585
|
|
|
2540
2586
|
/* ### Here we do the instruction body. ### */
|
|
2541
2587
|
# define NAME_OF_CURRENT_INSN leave
|
|
2542
|
-
# line
|
|
2588
|
+
# line 918 "insns.def"
|
|
2543
2589
|
{
|
|
2544
2590
|
if (OPT_CHECKED_RUN) {
|
|
2545
2591
|
const VALUE *const bp = vm_base_ptr(GET_CFP());
|
|
@@ -2560,7 +2606,7 @@ INSN_ENTRY(leave)
|
|
|
2560
2606
|
RESTORE_REGS();
|
|
2561
2607
|
}
|
|
2562
2608
|
}
|
|
2563
|
-
# line
|
|
2609
|
+
# line 2610 "vm.inc"
|
|
2564
2610
|
# undef NAME_OF_CURRENT_INSN
|
|
2565
2611
|
|
|
2566
2612
|
/* ### Instruction trailers. ### */
|
|
@@ -2584,7 +2630,7 @@ INSN_ENTRY(throw)
|
|
|
2584
2630
|
/* ### Declare and assign variables. ### */
|
|
2585
2631
|
rb_num_t throw_state = (rb_num_t)GET_OPERAND(1);
|
|
2586
2632
|
# define INSN_ATTR(x) attr_ ## x ## _throw(throw_state)
|
|
2587
|
-
bool leaf = INSN_ATTR(leaf);
|
|
2633
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
2588
2634
|
VALUE throwobj = TOPN(0);
|
|
2589
2635
|
VALUE val;
|
|
2590
2636
|
|
|
@@ -2596,13 +2642,13 @@ INSN_ENTRY(throw)
|
|
|
2596
2642
|
|
|
2597
2643
|
/* ### Here we do the instruction body. ### */
|
|
2598
2644
|
# define NAME_OF_CURRENT_INSN throw
|
|
2599
|
-
# line
|
|
2645
|
+
# line 951 "insns.def"
|
|
2600
2646
|
{
|
|
2601
2647
|
val = vm_throw(ec, GET_CFP(), throw_state, throwobj);
|
|
2602
2648
|
THROW_EXCEPTION(val);
|
|
2603
2649
|
/* unreachable */
|
|
2604
2650
|
}
|
|
2605
|
-
# line
|
|
2651
|
+
# line 2652 "vm.inc"
|
|
2606
2652
|
# undef NAME_OF_CURRENT_INSN
|
|
2607
2653
|
|
|
2608
2654
|
/* ### Instruction trailers. ### */
|
|
@@ -2629,7 +2675,7 @@ INSN_ENTRY(jump)
|
|
|
2629
2675
|
/* ### Declare and assign variables. ### */
|
|
2630
2676
|
OFFSET dst = (OFFSET)GET_OPERAND(1);
|
|
2631
2677
|
# define INSN_ATTR(x) attr_ ## x ## _jump(dst)
|
|
2632
|
-
bool leaf = INSN_ATTR(leaf);
|
|
2678
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
2633
2679
|
|
|
2634
2680
|
/* ### Instruction preambles. ### */
|
|
2635
2681
|
if (! leaf) ADD_PC(INSN_ATTR(width));
|
|
@@ -2639,12 +2685,12 @@ INSN_ENTRY(jump)
|
|
|
2639
2685
|
|
|
2640
2686
|
/* ### Here we do the instruction body. ### */
|
|
2641
2687
|
# define NAME_OF_CURRENT_INSN jump
|
|
2642
|
-
# line
|
|
2688
|
+
# line 969 "insns.def"
|
|
2643
2689
|
{
|
|
2644
2690
|
RUBY_VM_CHECK_INTS(ec);
|
|
2645
2691
|
JUMP(dst);
|
|
2646
2692
|
}
|
|
2647
|
-
# line
|
|
2693
|
+
# line 2694 "vm.inc"
|
|
2648
2694
|
# undef NAME_OF_CURRENT_INSN
|
|
2649
2695
|
|
|
2650
2696
|
/* ### Instruction trailers. ### */
|
|
@@ -2668,7 +2714,7 @@ INSN_ENTRY(branchif)
|
|
|
2668
2714
|
/* ### Declare and assign variables. ### */
|
|
2669
2715
|
OFFSET dst = (OFFSET)GET_OPERAND(1);
|
|
2670
2716
|
# define INSN_ATTR(x) attr_ ## x ## _branchif(dst)
|
|
2671
|
-
bool leaf = INSN_ATTR(leaf);
|
|
2717
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
2672
2718
|
VALUE val = TOPN(0);
|
|
2673
2719
|
|
|
2674
2720
|
/* ### Instruction preambles. ### */
|
|
@@ -2679,14 +2725,14 @@ INSN_ENTRY(branchif)
|
|
|
2679
2725
|
|
|
2680
2726
|
/* ### Here we do the instruction body. ### */
|
|
2681
2727
|
# define NAME_OF_CURRENT_INSN branchif
|
|
2682
|
-
# line
|
|
2728
|
+
# line 982 "insns.def"
|
|
2683
2729
|
{
|
|
2684
2730
|
if (RTEST(val)) {
|
|
2685
2731
|
RUBY_VM_CHECK_INTS(ec);
|
|
2686
2732
|
JUMP(dst);
|
|
2687
2733
|
}
|
|
2688
2734
|
}
|
|
2689
|
-
# line
|
|
2735
|
+
# line 2736 "vm.inc"
|
|
2690
2736
|
# undef NAME_OF_CURRENT_INSN
|
|
2691
2737
|
|
|
2692
2738
|
/* ### Instruction trailers. ### */
|
|
@@ -2710,7 +2756,7 @@ INSN_ENTRY(branchunless)
|
|
|
2710
2756
|
/* ### Declare and assign variables. ### */
|
|
2711
2757
|
OFFSET dst = (OFFSET)GET_OPERAND(1);
|
|
2712
2758
|
# define INSN_ATTR(x) attr_ ## x ## _branchunless(dst)
|
|
2713
|
-
bool leaf = INSN_ATTR(leaf);
|
|
2759
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
2714
2760
|
VALUE val = TOPN(0);
|
|
2715
2761
|
|
|
2716
2762
|
/* ### Instruction preambles. ### */
|
|
@@ -2721,14 +2767,14 @@ INSN_ENTRY(branchunless)
|
|
|
2721
2767
|
|
|
2722
2768
|
/* ### Here we do the instruction body. ### */
|
|
2723
2769
|
# define NAME_OF_CURRENT_INSN branchunless
|
|
2724
|
-
# line
|
|
2770
|
+
# line 997 "insns.def"
|
|
2725
2771
|
{
|
|
2726
2772
|
if (!RTEST(val)) {
|
|
2727
2773
|
RUBY_VM_CHECK_INTS(ec);
|
|
2728
2774
|
JUMP(dst);
|
|
2729
2775
|
}
|
|
2730
2776
|
}
|
|
2731
|
-
# line
|
|
2777
|
+
# line 2778 "vm.inc"
|
|
2732
2778
|
# undef NAME_OF_CURRENT_INSN
|
|
2733
2779
|
|
|
2734
2780
|
/* ### Instruction trailers. ### */
|
|
@@ -2752,7 +2798,7 @@ INSN_ENTRY(branchnil)
|
|
|
2752
2798
|
/* ### Declare and assign variables. ### */
|
|
2753
2799
|
OFFSET dst = (OFFSET)GET_OPERAND(1);
|
|
2754
2800
|
# define INSN_ATTR(x) attr_ ## x ## _branchnil(dst)
|
|
2755
|
-
bool leaf = INSN_ATTR(leaf);
|
|
2801
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
2756
2802
|
VALUE val = TOPN(0);
|
|
2757
2803
|
|
|
2758
2804
|
/* ### Instruction preambles. ### */
|
|
@@ -2763,14 +2809,14 @@ INSN_ENTRY(branchnil)
|
|
|
2763
2809
|
|
|
2764
2810
|
/* ### Here we do the instruction body. ### */
|
|
2765
2811
|
# define NAME_OF_CURRENT_INSN branchnil
|
|
2766
|
-
# line
|
|
2812
|
+
# line 1012 "insns.def"
|
|
2767
2813
|
{
|
|
2768
2814
|
if (NIL_P(val)) {
|
|
2769
2815
|
RUBY_VM_CHECK_INTS(ec);
|
|
2770
2816
|
JUMP(dst);
|
|
2771
2817
|
}
|
|
2772
2818
|
}
|
|
2773
|
-
# line
|
|
2819
|
+
# line 2820 "vm.inc"
|
|
2774
2820
|
# undef NAME_OF_CURRENT_INSN
|
|
2775
2821
|
|
|
2776
2822
|
/* ### Instruction trailers. ### */
|
|
@@ -2795,7 +2841,7 @@ INSN_ENTRY(opt_getinlinecache)
|
|
|
2795
2841
|
OFFSET dst = (OFFSET)GET_OPERAND(1);
|
|
2796
2842
|
IC ic = (IC)GET_OPERAND(2);
|
|
2797
2843
|
# define INSN_ATTR(x) attr_ ## x ## _opt_getinlinecache(dst, ic)
|
|
2798
|
-
bool leaf = INSN_ATTR(leaf);
|
|
2844
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
2799
2845
|
VALUE val;
|
|
2800
2846
|
|
|
2801
2847
|
/* ### Instruction preambles. ### */
|
|
@@ -2807,7 +2853,7 @@ INSN_ENTRY(opt_getinlinecache)
|
|
|
2807
2853
|
|
|
2808
2854
|
/* ### Here we do the instruction body. ### */
|
|
2809
2855
|
# define NAME_OF_CURRENT_INSN opt_getinlinecache
|
|
2810
|
-
# line
|
|
2856
|
+
# line 1029 "insns.def"
|
|
2811
2857
|
{
|
|
2812
2858
|
struct iseq_inline_constant_cache_entry *ice = ic->entry;
|
|
2813
2859
|
if (ice && vm_ic_hit_p(ice, GET_EP())) {
|
|
@@ -2818,7 +2864,7 @@ INSN_ENTRY(opt_getinlinecache)
|
|
|
2818
2864
|
val = Qnil;
|
|
2819
2865
|
}
|
|
2820
2866
|
}
|
|
2821
|
-
# line
|
|
2867
|
+
# line 2868 "vm.inc"
|
|
2822
2868
|
# undef NAME_OF_CURRENT_INSN
|
|
2823
2869
|
|
|
2824
2870
|
/* ### Instruction trailers. ### */
|
|
@@ -2845,7 +2891,7 @@ INSN_ENTRY(opt_setinlinecache)
|
|
|
2845
2891
|
/* ### Declare and assign variables. ### */
|
|
2846
2892
|
IC ic = (IC)GET_OPERAND(1);
|
|
2847
2893
|
# define INSN_ATTR(x) attr_ ## x ## _opt_setinlinecache(ic)
|
|
2848
|
-
bool leaf = INSN_ATTR(leaf);
|
|
2894
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
2849
2895
|
VALUE val = TOPN(0);
|
|
2850
2896
|
|
|
2851
2897
|
/* ### Instruction preambles. ### */
|
|
@@ -2856,11 +2902,11 @@ INSN_ENTRY(opt_setinlinecache)
|
|
|
2856
2902
|
|
|
2857
2903
|
/* ### Here we do the instruction body. ### */
|
|
2858
2904
|
# define NAME_OF_CURRENT_INSN opt_setinlinecache
|
|
2859
|
-
# line
|
|
2905
|
+
# line 1047 "insns.def"
|
|
2860
2906
|
{
|
|
2861
2907
|
vm_ic_update(GET_ISEQ(), ic, val, GET_EP());
|
|
2862
2908
|
}
|
|
2863
|
-
# line
|
|
2909
|
+
# line 2910 "vm.inc"
|
|
2864
2910
|
# undef NAME_OF_CURRENT_INSN
|
|
2865
2911
|
|
|
2866
2912
|
/* ### Instruction trailers. ### */
|
|
@@ -2888,7 +2934,7 @@ INSN_ENTRY(once)
|
|
|
2888
2934
|
ISEQ iseq = (ISEQ)GET_OPERAND(1);
|
|
2889
2935
|
ISE ise = (ISE)GET_OPERAND(2);
|
|
2890
2936
|
# define INSN_ATTR(x) attr_ ## x ## _once(iseq, ise)
|
|
2891
|
-
bool leaf = INSN_ATTR(leaf);
|
|
2937
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
2892
2938
|
VALUE val;
|
|
2893
2939
|
|
|
2894
2940
|
/* ### Instruction preambles. ### */
|
|
@@ -2901,11 +2947,11 @@ INSN_ENTRY(once)
|
|
|
2901
2947
|
|
|
2902
2948
|
/* ### Here we do the instruction body. ### */
|
|
2903
2949
|
# define NAME_OF_CURRENT_INSN once
|
|
2904
|
-
# line
|
|
2950
|
+
# line 1057 "insns.def"
|
|
2905
2951
|
{
|
|
2906
2952
|
val = vm_once_dispatch(ec, iseq, ise);
|
|
2907
2953
|
}
|
|
2908
|
-
# line
|
|
2954
|
+
# line 2955 "vm.inc"
|
|
2909
2955
|
# undef NAME_OF_CURRENT_INSN
|
|
2910
2956
|
|
|
2911
2957
|
/* ### Instruction trailers. ### */
|
|
@@ -2930,7 +2976,7 @@ INSN_ENTRY(opt_case_dispatch)
|
|
|
2930
2976
|
CDHASH hash = (CDHASH)GET_OPERAND(1);
|
|
2931
2977
|
OFFSET else_offset = (OFFSET)GET_OPERAND(2);
|
|
2932
2978
|
# define INSN_ATTR(x) attr_ ## x ## _opt_case_dispatch(hash, else_offset)
|
|
2933
|
-
bool leaf = INSN_ATTR(leaf);
|
|
2979
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
2934
2980
|
VALUE key = TOPN(0);
|
|
2935
2981
|
|
|
2936
2982
|
/* ### Instruction preambles. ### */
|
|
@@ -2942,7 +2988,7 @@ INSN_ENTRY(opt_case_dispatch)
|
|
|
2942
2988
|
|
|
2943
2989
|
/* ### Here we do the instruction body. ### */
|
|
2944
2990
|
# define NAME_OF_CURRENT_INSN opt_case_dispatch
|
|
2945
|
-
# line
|
|
2991
|
+
# line 1068 "insns.def"
|
|
2946
2992
|
{
|
|
2947
2993
|
OFFSET dst = vm_case_dispatch(hash, else_offset, key);
|
|
2948
2994
|
|
|
@@ -2950,7 +2996,7 @@ INSN_ENTRY(opt_case_dispatch)
|
|
|
2950
2996
|
JUMP(dst);
|
|
2951
2997
|
}
|
|
2952
2998
|
}
|
|
2953
|
-
# line
|
|
2999
|
+
# line 3000 "vm.inc"
|
|
2954
3000
|
# undef NAME_OF_CURRENT_INSN
|
|
2955
3001
|
|
|
2956
3002
|
/* ### Instruction trailers. ### */
|
|
@@ -2974,7 +3020,7 @@ INSN_ENTRY(opt_plus)
|
|
|
2974
3020
|
/* ### Declare and assign variables. ### */
|
|
2975
3021
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
2976
3022
|
# define INSN_ATTR(x) attr_ ## x ## _opt_plus(cd)
|
|
2977
|
-
bool leaf = INSN_ATTR(leaf);
|
|
3023
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
2978
3024
|
VALUE recv = TOPN(1);
|
|
2979
3025
|
VALUE obj = TOPN(0);
|
|
2980
3026
|
VALUE val;
|
|
@@ -2987,7 +3033,7 @@ INSN_ENTRY(opt_plus)
|
|
|
2987
3033
|
|
|
2988
3034
|
/* ### Here we do the instruction body. ### */
|
|
2989
3035
|
# define NAME_OF_CURRENT_INSN opt_plus
|
|
2990
|
-
# line
|
|
3036
|
+
# line 1084 "insns.def"
|
|
2991
3037
|
{
|
|
2992
3038
|
val = vm_opt_plus(recv, obj);
|
|
2993
3039
|
|
|
@@ -2995,7 +3041,7 @@ INSN_ENTRY(opt_plus)
|
|
|
2995
3041
|
CALL_SIMPLE_METHOD();
|
|
2996
3042
|
}
|
|
2997
3043
|
}
|
|
2998
|
-
# line
|
|
3044
|
+
# line 3045 "vm.inc"
|
|
2999
3045
|
# undef NAME_OF_CURRENT_INSN
|
|
3000
3046
|
|
|
3001
3047
|
/* ### Instruction trailers. ### */
|
|
@@ -3022,7 +3068,7 @@ INSN_ENTRY(opt_minus)
|
|
|
3022
3068
|
/* ### Declare and assign variables. ### */
|
|
3023
3069
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3024
3070
|
# define INSN_ATTR(x) attr_ ## x ## _opt_minus(cd)
|
|
3025
|
-
bool leaf = INSN_ATTR(leaf);
|
|
3071
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
3026
3072
|
VALUE recv = TOPN(1);
|
|
3027
3073
|
VALUE obj = TOPN(0);
|
|
3028
3074
|
VALUE val;
|
|
@@ -3035,7 +3081,7 @@ INSN_ENTRY(opt_minus)
|
|
|
3035
3081
|
|
|
3036
3082
|
/* ### Here we do the instruction body. ### */
|
|
3037
3083
|
# define NAME_OF_CURRENT_INSN opt_minus
|
|
3038
|
-
# line
|
|
3084
|
+
# line 1098 "insns.def"
|
|
3039
3085
|
{
|
|
3040
3086
|
val = vm_opt_minus(recv, obj);
|
|
3041
3087
|
|
|
@@ -3043,7 +3089,7 @@ INSN_ENTRY(opt_minus)
|
|
|
3043
3089
|
CALL_SIMPLE_METHOD();
|
|
3044
3090
|
}
|
|
3045
3091
|
}
|
|
3046
|
-
# line
|
|
3092
|
+
# line 3093 "vm.inc"
|
|
3047
3093
|
# undef NAME_OF_CURRENT_INSN
|
|
3048
3094
|
|
|
3049
3095
|
/* ### Instruction trailers. ### */
|
|
@@ -3070,7 +3116,7 @@ INSN_ENTRY(opt_mult)
|
|
|
3070
3116
|
/* ### Declare and assign variables. ### */
|
|
3071
3117
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3072
3118
|
# define INSN_ATTR(x) attr_ ## x ## _opt_mult(cd)
|
|
3073
|
-
bool leaf = INSN_ATTR(leaf);
|
|
3119
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
3074
3120
|
VALUE recv = TOPN(1);
|
|
3075
3121
|
VALUE obj = TOPN(0);
|
|
3076
3122
|
VALUE val;
|
|
@@ -3083,7 +3129,7 @@ INSN_ENTRY(opt_mult)
|
|
|
3083
3129
|
|
|
3084
3130
|
/* ### Here we do the instruction body. ### */
|
|
3085
3131
|
# define NAME_OF_CURRENT_INSN opt_mult
|
|
3086
|
-
# line
|
|
3132
|
+
# line 1112 "insns.def"
|
|
3087
3133
|
{
|
|
3088
3134
|
val = vm_opt_mult(recv, obj);
|
|
3089
3135
|
|
|
@@ -3091,7 +3137,7 @@ INSN_ENTRY(opt_mult)
|
|
|
3091
3137
|
CALL_SIMPLE_METHOD();
|
|
3092
3138
|
}
|
|
3093
3139
|
}
|
|
3094
|
-
# line
|
|
3140
|
+
# line 3141 "vm.inc"
|
|
3095
3141
|
# undef NAME_OF_CURRENT_INSN
|
|
3096
3142
|
|
|
3097
3143
|
/* ### Instruction trailers. ### */
|
|
@@ -3118,7 +3164,7 @@ INSN_ENTRY(opt_div)
|
|
|
3118
3164
|
/* ### Declare and assign variables. ### */
|
|
3119
3165
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3120
3166
|
# define INSN_ATTR(x) attr_ ## x ## _opt_div(cd)
|
|
3121
|
-
bool leaf = INSN_ATTR(leaf);
|
|
3167
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
3122
3168
|
VALUE recv = TOPN(1);
|
|
3123
3169
|
VALUE obj = TOPN(0);
|
|
3124
3170
|
VALUE val;
|
|
@@ -3131,7 +3177,7 @@ INSN_ENTRY(opt_div)
|
|
|
3131
3177
|
|
|
3132
3178
|
/* ### Here we do the instruction body. ### */
|
|
3133
3179
|
# define NAME_OF_CURRENT_INSN opt_div
|
|
3134
|
-
# line
|
|
3180
|
+
# line 1129 "insns.def"
|
|
3135
3181
|
{
|
|
3136
3182
|
val = vm_opt_div(recv, obj);
|
|
3137
3183
|
|
|
@@ -3139,7 +3185,7 @@ INSN_ENTRY(opt_div)
|
|
|
3139
3185
|
CALL_SIMPLE_METHOD();
|
|
3140
3186
|
}
|
|
3141
3187
|
}
|
|
3142
|
-
# line
|
|
3188
|
+
# line 3189 "vm.inc"
|
|
3143
3189
|
# undef NAME_OF_CURRENT_INSN
|
|
3144
3190
|
|
|
3145
3191
|
/* ### Instruction trailers. ### */
|
|
@@ -3166,7 +3212,7 @@ INSN_ENTRY(opt_mod)
|
|
|
3166
3212
|
/* ### Declare and assign variables. ### */
|
|
3167
3213
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3168
3214
|
# define INSN_ATTR(x) attr_ ## x ## _opt_mod(cd)
|
|
3169
|
-
bool leaf = INSN_ATTR(leaf);
|
|
3215
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
3170
3216
|
VALUE recv = TOPN(1);
|
|
3171
3217
|
VALUE obj = TOPN(0);
|
|
3172
3218
|
VALUE val;
|
|
@@ -3179,7 +3225,7 @@ INSN_ENTRY(opt_mod)
|
|
|
3179
3225
|
|
|
3180
3226
|
/* ### Here we do the instruction body. ### */
|
|
3181
3227
|
# define NAME_OF_CURRENT_INSN opt_mod
|
|
3182
|
-
# line
|
|
3228
|
+
# line 1145 "insns.def"
|
|
3183
3229
|
{
|
|
3184
3230
|
val = vm_opt_mod(recv, obj);
|
|
3185
3231
|
|
|
@@ -3187,7 +3233,7 @@ INSN_ENTRY(opt_mod)
|
|
|
3187
3233
|
CALL_SIMPLE_METHOD();
|
|
3188
3234
|
}
|
|
3189
3235
|
}
|
|
3190
|
-
# line
|
|
3236
|
+
# line 3237 "vm.inc"
|
|
3191
3237
|
# undef NAME_OF_CURRENT_INSN
|
|
3192
3238
|
|
|
3193
3239
|
/* ### Instruction trailers. ### */
|
|
@@ -3214,7 +3260,7 @@ INSN_ENTRY(opt_eq)
|
|
|
3214
3260
|
/* ### Declare and assign variables. ### */
|
|
3215
3261
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3216
3262
|
# define INSN_ATTR(x) attr_ ## x ## _opt_eq(cd)
|
|
3217
|
-
bool leaf = INSN_ATTR(leaf);
|
|
3263
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
3218
3264
|
VALUE recv = TOPN(1);
|
|
3219
3265
|
VALUE obj = TOPN(0);
|
|
3220
3266
|
VALUE val;
|
|
@@ -3227,7 +3273,7 @@ INSN_ENTRY(opt_eq)
|
|
|
3227
3273
|
|
|
3228
3274
|
/* ### Here we do the instruction body. ### */
|
|
3229
3275
|
# define NAME_OF_CURRENT_INSN opt_eq
|
|
3230
|
-
# line
|
|
3276
|
+
# line 1159 "insns.def"
|
|
3231
3277
|
{
|
|
3232
3278
|
val = opt_equality(GET_ISEQ(), recv, obj, cd);
|
|
3233
3279
|
|
|
@@ -3235,7 +3281,7 @@ INSN_ENTRY(opt_eq)
|
|
|
3235
3281
|
CALL_SIMPLE_METHOD();
|
|
3236
3282
|
}
|
|
3237
3283
|
}
|
|
3238
|
-
# line
|
|
3284
|
+
# line 3285 "vm.inc"
|
|
3239
3285
|
# undef NAME_OF_CURRENT_INSN
|
|
3240
3286
|
|
|
3241
3287
|
/* ### Instruction trailers. ### */
|
|
@@ -3263,7 +3309,7 @@ INSN_ENTRY(opt_neq)
|
|
|
3263
3309
|
CALL_DATA cd_eq = (CALL_DATA)GET_OPERAND(1);
|
|
3264
3310
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(2);
|
|
3265
3311
|
# define INSN_ATTR(x) attr_ ## x ## _opt_neq(cd_eq, cd)
|
|
3266
|
-
bool leaf = INSN_ATTR(leaf);
|
|
3312
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
3267
3313
|
VALUE recv = TOPN(1);
|
|
3268
3314
|
VALUE obj = TOPN(0);
|
|
3269
3315
|
VALUE val;
|
|
@@ -3277,7 +3323,7 @@ INSN_ENTRY(opt_neq)
|
|
|
3277
3323
|
|
|
3278
3324
|
/* ### Here we do the instruction body. ### */
|
|
3279
3325
|
# define NAME_OF_CURRENT_INSN opt_neq
|
|
3280
|
-
# line
|
|
3326
|
+
# line 1173 "insns.def"
|
|
3281
3327
|
{
|
|
3282
3328
|
val = vm_opt_neq(GET_ISEQ(), cd, cd_eq, recv, obj);
|
|
3283
3329
|
|
|
@@ -3285,7 +3331,7 @@ INSN_ENTRY(opt_neq)
|
|
|
3285
3331
|
CALL_SIMPLE_METHOD();
|
|
3286
3332
|
}
|
|
3287
3333
|
}
|
|
3288
|
-
# line
|
|
3334
|
+
# line 3335 "vm.inc"
|
|
3289
3335
|
# undef NAME_OF_CURRENT_INSN
|
|
3290
3336
|
|
|
3291
3337
|
/* ### Instruction trailers. ### */
|
|
@@ -3312,7 +3358,7 @@ INSN_ENTRY(opt_lt)
|
|
|
3312
3358
|
/* ### Declare and assign variables. ### */
|
|
3313
3359
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3314
3360
|
# define INSN_ATTR(x) attr_ ## x ## _opt_lt(cd)
|
|
3315
|
-
bool leaf = INSN_ATTR(leaf);
|
|
3361
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
3316
3362
|
VALUE recv = TOPN(1);
|
|
3317
3363
|
VALUE obj = TOPN(0);
|
|
3318
3364
|
VALUE val;
|
|
@@ -3325,7 +3371,7 @@ INSN_ENTRY(opt_lt)
|
|
|
3325
3371
|
|
|
3326
3372
|
/* ### Here we do the instruction body. ### */
|
|
3327
3373
|
# define NAME_OF_CURRENT_INSN opt_lt
|
|
3328
|
-
# line
|
|
3374
|
+
# line 1187 "insns.def"
|
|
3329
3375
|
{
|
|
3330
3376
|
val = vm_opt_lt(recv, obj);
|
|
3331
3377
|
|
|
@@ -3333,7 +3379,7 @@ INSN_ENTRY(opt_lt)
|
|
|
3333
3379
|
CALL_SIMPLE_METHOD();
|
|
3334
3380
|
}
|
|
3335
3381
|
}
|
|
3336
|
-
# line
|
|
3382
|
+
# line 3383 "vm.inc"
|
|
3337
3383
|
# undef NAME_OF_CURRENT_INSN
|
|
3338
3384
|
|
|
3339
3385
|
/* ### Instruction trailers. ### */
|
|
@@ -3360,7 +3406,7 @@ INSN_ENTRY(opt_le)
|
|
|
3360
3406
|
/* ### Declare and assign variables. ### */
|
|
3361
3407
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3362
3408
|
# define INSN_ATTR(x) attr_ ## x ## _opt_le(cd)
|
|
3363
|
-
bool leaf = INSN_ATTR(leaf);
|
|
3409
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
3364
3410
|
VALUE recv = TOPN(1);
|
|
3365
3411
|
VALUE obj = TOPN(0);
|
|
3366
3412
|
VALUE val;
|
|
@@ -3373,7 +3419,7 @@ INSN_ENTRY(opt_le)
|
|
|
3373
3419
|
|
|
3374
3420
|
/* ### Here we do the instruction body. ### */
|
|
3375
3421
|
# define NAME_OF_CURRENT_INSN opt_le
|
|
3376
|
-
# line
|
|
3422
|
+
# line 1201 "insns.def"
|
|
3377
3423
|
{
|
|
3378
3424
|
val = vm_opt_le(recv, obj);
|
|
3379
3425
|
|
|
@@ -3381,7 +3427,7 @@ INSN_ENTRY(opt_le)
|
|
|
3381
3427
|
CALL_SIMPLE_METHOD();
|
|
3382
3428
|
}
|
|
3383
3429
|
}
|
|
3384
|
-
# line
|
|
3430
|
+
# line 3431 "vm.inc"
|
|
3385
3431
|
# undef NAME_OF_CURRENT_INSN
|
|
3386
3432
|
|
|
3387
3433
|
/* ### Instruction trailers. ### */
|
|
@@ -3408,7 +3454,7 @@ INSN_ENTRY(opt_gt)
|
|
|
3408
3454
|
/* ### Declare and assign variables. ### */
|
|
3409
3455
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3410
3456
|
# define INSN_ATTR(x) attr_ ## x ## _opt_gt(cd)
|
|
3411
|
-
bool leaf = INSN_ATTR(leaf);
|
|
3457
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
3412
3458
|
VALUE recv = TOPN(1);
|
|
3413
3459
|
VALUE obj = TOPN(0);
|
|
3414
3460
|
VALUE val;
|
|
@@ -3421,7 +3467,7 @@ INSN_ENTRY(opt_gt)
|
|
|
3421
3467
|
|
|
3422
3468
|
/* ### Here we do the instruction body. ### */
|
|
3423
3469
|
# define NAME_OF_CURRENT_INSN opt_gt
|
|
3424
|
-
# line
|
|
3470
|
+
# line 1215 "insns.def"
|
|
3425
3471
|
{
|
|
3426
3472
|
val = vm_opt_gt(recv, obj);
|
|
3427
3473
|
|
|
@@ -3429,7 +3475,7 @@ INSN_ENTRY(opt_gt)
|
|
|
3429
3475
|
CALL_SIMPLE_METHOD();
|
|
3430
3476
|
}
|
|
3431
3477
|
}
|
|
3432
|
-
# line
|
|
3478
|
+
# line 3479 "vm.inc"
|
|
3433
3479
|
# undef NAME_OF_CURRENT_INSN
|
|
3434
3480
|
|
|
3435
3481
|
/* ### Instruction trailers. ### */
|
|
@@ -3456,7 +3502,7 @@ INSN_ENTRY(opt_ge)
|
|
|
3456
3502
|
/* ### Declare and assign variables. ### */
|
|
3457
3503
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3458
3504
|
# define INSN_ATTR(x) attr_ ## x ## _opt_ge(cd)
|
|
3459
|
-
bool leaf = INSN_ATTR(leaf);
|
|
3505
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
3460
3506
|
VALUE recv = TOPN(1);
|
|
3461
3507
|
VALUE obj = TOPN(0);
|
|
3462
3508
|
VALUE val;
|
|
@@ -3469,7 +3515,7 @@ INSN_ENTRY(opt_ge)
|
|
|
3469
3515
|
|
|
3470
3516
|
/* ### Here we do the instruction body. ### */
|
|
3471
3517
|
# define NAME_OF_CURRENT_INSN opt_ge
|
|
3472
|
-
# line
|
|
3518
|
+
# line 1229 "insns.def"
|
|
3473
3519
|
{
|
|
3474
3520
|
val = vm_opt_ge(recv, obj);
|
|
3475
3521
|
|
|
@@ -3477,7 +3523,7 @@ INSN_ENTRY(opt_ge)
|
|
|
3477
3523
|
CALL_SIMPLE_METHOD();
|
|
3478
3524
|
}
|
|
3479
3525
|
}
|
|
3480
|
-
# line
|
|
3526
|
+
# line 3527 "vm.inc"
|
|
3481
3527
|
# undef NAME_OF_CURRENT_INSN
|
|
3482
3528
|
|
|
3483
3529
|
/* ### Instruction trailers. ### */
|
|
@@ -3504,7 +3550,7 @@ INSN_ENTRY(opt_ltlt)
|
|
|
3504
3550
|
/* ### Declare and assign variables. ### */
|
|
3505
3551
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3506
3552
|
# define INSN_ATTR(x) attr_ ## x ## _opt_ltlt(cd)
|
|
3507
|
-
bool leaf = INSN_ATTR(leaf);
|
|
3553
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
3508
3554
|
VALUE recv = TOPN(1);
|
|
3509
3555
|
VALUE obj = TOPN(0);
|
|
3510
3556
|
VALUE val;
|
|
@@ -3517,7 +3563,7 @@ INSN_ENTRY(opt_ltlt)
|
|
|
3517
3563
|
|
|
3518
3564
|
/* ### Here we do the instruction body. ### */
|
|
3519
3565
|
# define NAME_OF_CURRENT_INSN opt_ltlt
|
|
3520
|
-
# line
|
|
3566
|
+
# line 1247 "insns.def"
|
|
3521
3567
|
{
|
|
3522
3568
|
val = vm_opt_ltlt(recv, obj);
|
|
3523
3569
|
|
|
@@ -3525,7 +3571,7 @@ INSN_ENTRY(opt_ltlt)
|
|
|
3525
3571
|
CALL_SIMPLE_METHOD();
|
|
3526
3572
|
}
|
|
3527
3573
|
}
|
|
3528
|
-
# line
|
|
3574
|
+
# line 3575 "vm.inc"
|
|
3529
3575
|
# undef NAME_OF_CURRENT_INSN
|
|
3530
3576
|
|
|
3531
3577
|
/* ### Instruction trailers. ### */
|
|
@@ -3552,7 +3598,7 @@ INSN_ENTRY(opt_and)
|
|
|
3552
3598
|
/* ### Declare and assign variables. ### */
|
|
3553
3599
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3554
3600
|
# define INSN_ATTR(x) attr_ ## x ## _opt_and(cd)
|
|
3555
|
-
bool leaf = INSN_ATTR(leaf);
|
|
3601
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
3556
3602
|
VALUE recv = TOPN(1);
|
|
3557
3603
|
VALUE obj = TOPN(0);
|
|
3558
3604
|
VALUE val;
|
|
@@ -3565,7 +3611,7 @@ INSN_ENTRY(opt_and)
|
|
|
3565
3611
|
|
|
3566
3612
|
/* ### Here we do the instruction body. ### */
|
|
3567
3613
|
# define NAME_OF_CURRENT_INSN opt_and
|
|
3568
|
-
# line
|
|
3614
|
+
# line 1261 "insns.def"
|
|
3569
3615
|
{
|
|
3570
3616
|
val = vm_opt_and(recv, obj);
|
|
3571
3617
|
|
|
@@ -3573,7 +3619,7 @@ INSN_ENTRY(opt_and)
|
|
|
3573
3619
|
CALL_SIMPLE_METHOD();
|
|
3574
3620
|
}
|
|
3575
3621
|
}
|
|
3576
|
-
# line
|
|
3622
|
+
# line 3623 "vm.inc"
|
|
3577
3623
|
# undef NAME_OF_CURRENT_INSN
|
|
3578
3624
|
|
|
3579
3625
|
/* ### Instruction trailers. ### */
|
|
@@ -3600,7 +3646,7 @@ INSN_ENTRY(opt_or)
|
|
|
3600
3646
|
/* ### Declare and assign variables. ### */
|
|
3601
3647
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3602
3648
|
# define INSN_ATTR(x) attr_ ## x ## _opt_or(cd)
|
|
3603
|
-
bool leaf = INSN_ATTR(leaf);
|
|
3649
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
3604
3650
|
VALUE recv = TOPN(1);
|
|
3605
3651
|
VALUE obj = TOPN(0);
|
|
3606
3652
|
VALUE val;
|
|
@@ -3613,7 +3659,7 @@ INSN_ENTRY(opt_or)
|
|
|
3613
3659
|
|
|
3614
3660
|
/* ### Here we do the instruction body. ### */
|
|
3615
3661
|
# define NAME_OF_CURRENT_INSN opt_or
|
|
3616
|
-
# line
|
|
3662
|
+
# line 1275 "insns.def"
|
|
3617
3663
|
{
|
|
3618
3664
|
val = vm_opt_or(recv, obj);
|
|
3619
3665
|
|
|
@@ -3621,7 +3667,7 @@ INSN_ENTRY(opt_or)
|
|
|
3621
3667
|
CALL_SIMPLE_METHOD();
|
|
3622
3668
|
}
|
|
3623
3669
|
}
|
|
3624
|
-
# line
|
|
3670
|
+
# line 3671 "vm.inc"
|
|
3625
3671
|
# undef NAME_OF_CURRENT_INSN
|
|
3626
3672
|
|
|
3627
3673
|
/* ### Instruction trailers. ### */
|
|
@@ -3648,7 +3694,7 @@ INSN_ENTRY(opt_aref)
|
|
|
3648
3694
|
/* ### Declare and assign variables. ### */
|
|
3649
3695
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3650
3696
|
# define INSN_ATTR(x) attr_ ## x ## _opt_aref(cd)
|
|
3651
|
-
bool leaf = INSN_ATTR(leaf);
|
|
3697
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
3652
3698
|
VALUE recv = TOPN(1);
|
|
3653
3699
|
VALUE obj = TOPN(0);
|
|
3654
3700
|
VALUE val;
|
|
@@ -3661,7 +3707,7 @@ INSN_ENTRY(opt_aref)
|
|
|
3661
3707
|
|
|
3662
3708
|
/* ### Here we do the instruction body. ### */
|
|
3663
3709
|
# define NAME_OF_CURRENT_INSN opt_aref
|
|
3664
|
-
# line
|
|
3710
|
+
# line 1294 "insns.def"
|
|
3665
3711
|
{
|
|
3666
3712
|
val = vm_opt_aref(recv, obj);
|
|
3667
3713
|
|
|
@@ -3669,7 +3715,7 @@ INSN_ENTRY(opt_aref)
|
|
|
3669
3715
|
CALL_SIMPLE_METHOD();
|
|
3670
3716
|
}
|
|
3671
3717
|
}
|
|
3672
|
-
# line
|
|
3718
|
+
# line 3719 "vm.inc"
|
|
3673
3719
|
# undef NAME_OF_CURRENT_INSN
|
|
3674
3720
|
|
|
3675
3721
|
/* ### Instruction trailers. ### */
|
|
@@ -3696,7 +3742,7 @@ INSN_ENTRY(opt_aset)
|
|
|
3696
3742
|
/* ### Declare and assign variables. ### */
|
|
3697
3743
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3698
3744
|
# define INSN_ATTR(x) attr_ ## x ## _opt_aset(cd)
|
|
3699
|
-
bool leaf = INSN_ATTR(leaf);
|
|
3745
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
3700
3746
|
VALUE recv = TOPN(2);
|
|
3701
3747
|
VALUE obj = TOPN(1);
|
|
3702
3748
|
VALUE set = TOPN(0);
|
|
@@ -3710,7 +3756,7 @@ INSN_ENTRY(opt_aset)
|
|
|
3710
3756
|
|
|
3711
3757
|
/* ### Here we do the instruction body. ### */
|
|
3712
3758
|
# define NAME_OF_CURRENT_INSN opt_aset
|
|
3713
|
-
# line
|
|
3759
|
+
# line 1311 "insns.def"
|
|
3714
3760
|
{
|
|
3715
3761
|
val = vm_opt_aset(recv, obj, set);
|
|
3716
3762
|
|
|
@@ -3718,7 +3764,7 @@ INSN_ENTRY(opt_aset)
|
|
|
3718
3764
|
CALL_SIMPLE_METHOD();
|
|
3719
3765
|
}
|
|
3720
3766
|
}
|
|
3721
|
-
# line
|
|
3767
|
+
# line 3768 "vm.inc"
|
|
3722
3768
|
# undef NAME_OF_CURRENT_INSN
|
|
3723
3769
|
|
|
3724
3770
|
/* ### Instruction trailers. ### */
|
|
@@ -3746,7 +3792,7 @@ INSN_ENTRY(opt_aset_with)
|
|
|
3746
3792
|
VALUE key = (VALUE)GET_OPERAND(1);
|
|
3747
3793
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(2);
|
|
3748
3794
|
# define INSN_ATTR(x) attr_ ## x ## _opt_aset_with(key, cd)
|
|
3749
|
-
bool leaf = INSN_ATTR(leaf);
|
|
3795
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
3750
3796
|
VALUE recv = TOPN(1);
|
|
3751
3797
|
VALUE val = TOPN(0);
|
|
3752
3798
|
|
|
@@ -3759,7 +3805,7 @@ INSN_ENTRY(opt_aset_with)
|
|
|
3759
3805
|
|
|
3760
3806
|
/* ### Here we do the instruction body. ### */
|
|
3761
3807
|
# define NAME_OF_CURRENT_INSN opt_aset_with
|
|
3762
|
-
# line
|
|
3808
|
+
# line 1327 "insns.def"
|
|
3763
3809
|
{
|
|
3764
3810
|
VALUE tmp = vm_opt_aset_with(recv, key, val);
|
|
3765
3811
|
|
|
@@ -3774,7 +3820,7 @@ INSN_ENTRY(opt_aset_with)
|
|
|
3774
3820
|
CALL_SIMPLE_METHOD();
|
|
3775
3821
|
}
|
|
3776
3822
|
}
|
|
3777
|
-
# line
|
|
3823
|
+
# line 3824 "vm.inc"
|
|
3778
3824
|
# undef NAME_OF_CURRENT_INSN
|
|
3779
3825
|
|
|
3780
3826
|
/* ### Instruction trailers. ### */
|
|
@@ -3802,7 +3848,7 @@ INSN_ENTRY(opt_aref_with)
|
|
|
3802
3848
|
VALUE key = (VALUE)GET_OPERAND(1);
|
|
3803
3849
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(2);
|
|
3804
3850
|
# define INSN_ATTR(x) attr_ ## x ## _opt_aref_with(key, cd)
|
|
3805
|
-
bool leaf = INSN_ATTR(leaf);
|
|
3851
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
3806
3852
|
VALUE recv = TOPN(0);
|
|
3807
3853
|
VALUE val;
|
|
3808
3854
|
|
|
@@ -3815,7 +3861,7 @@ INSN_ENTRY(opt_aref_with)
|
|
|
3815
3861
|
|
|
3816
3862
|
/* ### Here we do the instruction body. ### */
|
|
3817
3863
|
# define NAME_OF_CURRENT_INSN opt_aref_with
|
|
3818
|
-
# line
|
|
3864
|
+
# line 1350 "insns.def"
|
|
3819
3865
|
{
|
|
3820
3866
|
val = vm_opt_aref_with(recv, key);
|
|
3821
3867
|
|
|
@@ -3826,7 +3872,7 @@ INSN_ENTRY(opt_aref_with)
|
|
|
3826
3872
|
CALL_SIMPLE_METHOD();
|
|
3827
3873
|
}
|
|
3828
3874
|
}
|
|
3829
|
-
# line
|
|
3875
|
+
# line 3876 "vm.inc"
|
|
3830
3876
|
# undef NAME_OF_CURRENT_INSN
|
|
3831
3877
|
|
|
3832
3878
|
/* ### Instruction trailers. ### */
|
|
@@ -3853,7 +3899,7 @@ INSN_ENTRY(opt_length)
|
|
|
3853
3899
|
/* ### Declare and assign variables. ### */
|
|
3854
3900
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3855
3901
|
# define INSN_ATTR(x) attr_ ## x ## _opt_length(cd)
|
|
3856
|
-
bool leaf = INSN_ATTR(leaf);
|
|
3902
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
3857
3903
|
VALUE recv = TOPN(0);
|
|
3858
3904
|
VALUE val;
|
|
3859
3905
|
|
|
@@ -3865,7 +3911,7 @@ INSN_ENTRY(opt_length)
|
|
|
3865
3911
|
|
|
3866
3912
|
/* ### Here we do the instruction body. ### */
|
|
3867
3913
|
# define NAME_OF_CURRENT_INSN opt_length
|
|
3868
|
-
# line
|
|
3914
|
+
# line 1367 "insns.def"
|
|
3869
3915
|
{
|
|
3870
3916
|
val = vm_opt_length(recv, BOP_LENGTH);
|
|
3871
3917
|
|
|
@@ -3873,7 +3919,7 @@ INSN_ENTRY(opt_length)
|
|
|
3873
3919
|
CALL_SIMPLE_METHOD();
|
|
3874
3920
|
}
|
|
3875
3921
|
}
|
|
3876
|
-
# line
|
|
3922
|
+
# line 3923 "vm.inc"
|
|
3877
3923
|
# undef NAME_OF_CURRENT_INSN
|
|
3878
3924
|
|
|
3879
3925
|
/* ### Instruction trailers. ### */
|
|
@@ -3900,7 +3946,7 @@ INSN_ENTRY(opt_size)
|
|
|
3900
3946
|
/* ### Declare and assign variables. ### */
|
|
3901
3947
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3902
3948
|
# define INSN_ATTR(x) attr_ ## x ## _opt_size(cd)
|
|
3903
|
-
bool leaf = INSN_ATTR(leaf);
|
|
3949
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
3904
3950
|
VALUE recv = TOPN(0);
|
|
3905
3951
|
VALUE val;
|
|
3906
3952
|
|
|
@@ -3912,7 +3958,7 @@ INSN_ENTRY(opt_size)
|
|
|
3912
3958
|
|
|
3913
3959
|
/* ### Here we do the instruction body. ### */
|
|
3914
3960
|
# define NAME_OF_CURRENT_INSN opt_size
|
|
3915
|
-
# line
|
|
3961
|
+
# line 1381 "insns.def"
|
|
3916
3962
|
{
|
|
3917
3963
|
val = vm_opt_length(recv, BOP_SIZE);
|
|
3918
3964
|
|
|
@@ -3920,7 +3966,7 @@ INSN_ENTRY(opt_size)
|
|
|
3920
3966
|
CALL_SIMPLE_METHOD();
|
|
3921
3967
|
}
|
|
3922
3968
|
}
|
|
3923
|
-
# line
|
|
3969
|
+
# line 3970 "vm.inc"
|
|
3924
3970
|
# undef NAME_OF_CURRENT_INSN
|
|
3925
3971
|
|
|
3926
3972
|
/* ### Instruction trailers. ### */
|
|
@@ -3947,7 +3993,7 @@ INSN_ENTRY(opt_empty_p)
|
|
|
3947
3993
|
/* ### Declare and assign variables. ### */
|
|
3948
3994
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3949
3995
|
# define INSN_ATTR(x) attr_ ## x ## _opt_empty_p(cd)
|
|
3950
|
-
bool leaf = INSN_ATTR(leaf);
|
|
3996
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
3951
3997
|
VALUE recv = TOPN(0);
|
|
3952
3998
|
VALUE val;
|
|
3953
3999
|
|
|
@@ -3959,7 +4005,7 @@ INSN_ENTRY(opt_empty_p)
|
|
|
3959
4005
|
|
|
3960
4006
|
/* ### Here we do the instruction body. ### */
|
|
3961
4007
|
# define NAME_OF_CURRENT_INSN opt_empty_p
|
|
3962
|
-
# line
|
|
4008
|
+
# line 1395 "insns.def"
|
|
3963
4009
|
{
|
|
3964
4010
|
val = vm_opt_empty_p(recv);
|
|
3965
4011
|
|
|
@@ -3967,7 +4013,7 @@ INSN_ENTRY(opt_empty_p)
|
|
|
3967
4013
|
CALL_SIMPLE_METHOD();
|
|
3968
4014
|
}
|
|
3969
4015
|
}
|
|
3970
|
-
# line
|
|
4016
|
+
# line 4017 "vm.inc"
|
|
3971
4017
|
# undef NAME_OF_CURRENT_INSN
|
|
3972
4018
|
|
|
3973
4019
|
/* ### Instruction trailers. ### */
|
|
@@ -3994,7 +4040,7 @@ INSN_ENTRY(opt_succ)
|
|
|
3994
4040
|
/* ### Declare and assign variables. ### */
|
|
3995
4041
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3996
4042
|
# define INSN_ATTR(x) attr_ ## x ## _opt_succ(cd)
|
|
3997
|
-
bool leaf = INSN_ATTR(leaf);
|
|
4043
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
3998
4044
|
VALUE recv = TOPN(0);
|
|
3999
4045
|
VALUE val;
|
|
4000
4046
|
|
|
@@ -4006,7 +4052,7 @@ INSN_ENTRY(opt_succ)
|
|
|
4006
4052
|
|
|
4007
4053
|
/* ### Here we do the instruction body. ### */
|
|
4008
4054
|
# define NAME_OF_CURRENT_INSN opt_succ
|
|
4009
|
-
# line
|
|
4055
|
+
# line 1409 "insns.def"
|
|
4010
4056
|
{
|
|
4011
4057
|
val = vm_opt_succ(recv);
|
|
4012
4058
|
|
|
@@ -4014,7 +4060,7 @@ INSN_ENTRY(opt_succ)
|
|
|
4014
4060
|
CALL_SIMPLE_METHOD();
|
|
4015
4061
|
}
|
|
4016
4062
|
}
|
|
4017
|
-
# line
|
|
4063
|
+
# line 4064 "vm.inc"
|
|
4018
4064
|
# undef NAME_OF_CURRENT_INSN
|
|
4019
4065
|
|
|
4020
4066
|
/* ### Instruction trailers. ### */
|
|
@@ -4041,7 +4087,7 @@ INSN_ENTRY(opt_not)
|
|
|
4041
4087
|
/* ### Declare and assign variables. ### */
|
|
4042
4088
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
4043
4089
|
# define INSN_ATTR(x) attr_ ## x ## _opt_not(cd)
|
|
4044
|
-
bool leaf = INSN_ATTR(leaf);
|
|
4090
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
4045
4091
|
VALUE recv = TOPN(0);
|
|
4046
4092
|
VALUE val;
|
|
4047
4093
|
|
|
@@ -4053,7 +4099,7 @@ INSN_ENTRY(opt_not)
|
|
|
4053
4099
|
|
|
4054
4100
|
/* ### Here we do the instruction body. ### */
|
|
4055
4101
|
# define NAME_OF_CURRENT_INSN opt_not
|
|
4056
|
-
# line
|
|
4102
|
+
# line 1423 "insns.def"
|
|
4057
4103
|
{
|
|
4058
4104
|
val = vm_opt_not(GET_ISEQ(), cd, recv);
|
|
4059
4105
|
|
|
@@ -4061,7 +4107,7 @@ INSN_ENTRY(opt_not)
|
|
|
4061
4107
|
CALL_SIMPLE_METHOD();
|
|
4062
4108
|
}
|
|
4063
4109
|
}
|
|
4064
|
-
# line
|
|
4110
|
+
# line 4111 "vm.inc"
|
|
4065
4111
|
# undef NAME_OF_CURRENT_INSN
|
|
4066
4112
|
|
|
4067
4113
|
/* ### Instruction trailers. ### */
|
|
@@ -4088,7 +4134,7 @@ INSN_ENTRY(opt_regexpmatch2)
|
|
|
4088
4134
|
/* ### Declare and assign variables. ### */
|
|
4089
4135
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
4090
4136
|
# define INSN_ATTR(x) attr_ ## x ## _opt_regexpmatch2(cd)
|
|
4091
|
-
bool leaf = INSN_ATTR(leaf);
|
|
4137
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
4092
4138
|
VALUE obj2 = TOPN(1);
|
|
4093
4139
|
VALUE obj1 = TOPN(0);
|
|
4094
4140
|
VALUE val;
|
|
@@ -4101,7 +4147,7 @@ INSN_ENTRY(opt_regexpmatch2)
|
|
|
4101
4147
|
|
|
4102
4148
|
/* ### Here we do the instruction body. ### */
|
|
4103
4149
|
# define NAME_OF_CURRENT_INSN opt_regexpmatch2
|
|
4104
|
-
# line
|
|
4150
|
+
# line 1438 "insns.def"
|
|
4105
4151
|
{
|
|
4106
4152
|
val = vm_opt_regexpmatch2(obj2, obj1);
|
|
4107
4153
|
|
|
@@ -4109,7 +4155,7 @@ INSN_ENTRY(opt_regexpmatch2)
|
|
|
4109
4155
|
CALL_SIMPLE_METHOD();
|
|
4110
4156
|
}
|
|
4111
4157
|
}
|
|
4112
|
-
# line
|
|
4158
|
+
# line 4159 "vm.inc"
|
|
4113
4159
|
# undef NAME_OF_CURRENT_INSN
|
|
4114
4160
|
|
|
4115
4161
|
/* ### Instruction trailers. ### */
|
|
@@ -4136,7 +4182,7 @@ INSN_ENTRY(invokebuiltin)
|
|
|
4136
4182
|
/* ### Declare and assign variables. ### */
|
|
4137
4183
|
RB_BUILTIN bf = (RB_BUILTIN)GET_OPERAND(1);
|
|
4138
4184
|
# define INSN_ATTR(x) attr_ ## x ## _invokebuiltin(bf)
|
|
4139
|
-
bool leaf = INSN_ATTR(leaf);
|
|
4185
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
4140
4186
|
VALUE val;
|
|
4141
4187
|
|
|
4142
4188
|
/* ### Instruction preambles. ### */
|
|
@@ -4147,11 +4193,11 @@ INSN_ENTRY(invokebuiltin)
|
|
|
4147
4193
|
|
|
4148
4194
|
/* ### Here we do the instruction body. ### */
|
|
4149
4195
|
# define NAME_OF_CURRENT_INSN invokebuiltin
|
|
4150
|
-
# line
|
|
4196
|
+
# line 1475 "insns.def"
|
|
4151
4197
|
{
|
|
4152
4198
|
val = vm_invoke_builtin(ec, reg_cfp, bf, STACK_ADDR_FROM_TOP(bf->argc));
|
|
4153
4199
|
}
|
|
4154
|
-
# line
|
|
4200
|
+
# line 4201 "vm.inc"
|
|
4155
4201
|
# undef NAME_OF_CURRENT_INSN
|
|
4156
4202
|
|
|
4157
4203
|
/* ### Instruction trailers. ### */
|
|
@@ -4179,7 +4225,7 @@ INSN_ENTRY(opt_invokebuiltin_delegate)
|
|
|
4179
4225
|
RB_BUILTIN bf = (RB_BUILTIN)GET_OPERAND(1);
|
|
4180
4226
|
rb_num_t index = (rb_num_t)GET_OPERAND(2);
|
|
4181
4227
|
# define INSN_ATTR(x) attr_ ## x ## _opt_invokebuiltin_delegate(bf, index)
|
|
4182
|
-
bool leaf = INSN_ATTR(leaf);
|
|
4228
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
4183
4229
|
VALUE val;
|
|
4184
4230
|
|
|
4185
4231
|
/* ### Instruction preambles. ### */
|
|
@@ -4191,11 +4237,11 @@ INSN_ENTRY(opt_invokebuiltin_delegate)
|
|
|
4191
4237
|
|
|
4192
4238
|
/* ### Here we do the instruction body. ### */
|
|
4193
4239
|
# define NAME_OF_CURRENT_INSN opt_invokebuiltin_delegate
|
|
4194
|
-
# line
|
|
4240
|
+
# line 1486 "insns.def"
|
|
4195
4241
|
{
|
|
4196
4242
|
val = vm_invoke_builtin_delegate(ec, reg_cfp, bf, (unsigned int)index);
|
|
4197
4243
|
}
|
|
4198
|
-
# line
|
|
4244
|
+
# line 4245 "vm.inc"
|
|
4199
4245
|
# undef NAME_OF_CURRENT_INSN
|
|
4200
4246
|
|
|
4201
4247
|
/* ### Instruction trailers. ### */
|
|
@@ -4223,7 +4269,7 @@ INSN_ENTRY(opt_invokebuiltin_delegate_leave)
|
|
|
4223
4269
|
RB_BUILTIN bf = (RB_BUILTIN)GET_OPERAND(1);
|
|
4224
4270
|
rb_num_t index = (rb_num_t)GET_OPERAND(2);
|
|
4225
4271
|
# define INSN_ATTR(x) attr_ ## x ## _opt_invokebuiltin_delegate_leave(bf, index)
|
|
4226
|
-
bool leaf = INSN_ATTR(leaf);
|
|
4272
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
4227
4273
|
VALUE val;
|
|
4228
4274
|
|
|
4229
4275
|
/* ### Instruction preambles. ### */
|
|
@@ -4235,7 +4281,7 @@ INSN_ENTRY(opt_invokebuiltin_delegate_leave)
|
|
|
4235
4281
|
|
|
4236
4282
|
/* ### Here we do the instruction body. ### */
|
|
4237
4283
|
# define NAME_OF_CURRENT_INSN opt_invokebuiltin_delegate_leave
|
|
4238
|
-
# line
|
|
4284
|
+
# line 1497 "insns.def"
|
|
4239
4285
|
{
|
|
4240
4286
|
val = vm_invoke_builtin_delegate(ec, reg_cfp, bf, (unsigned int)index);
|
|
4241
4287
|
|
|
@@ -4253,7 +4299,7 @@ INSN_ENTRY(opt_invokebuiltin_delegate_leave)
|
|
|
4253
4299
|
RESTORE_REGS();
|
|
4254
4300
|
}
|
|
4255
4301
|
}
|
|
4256
|
-
# line
|
|
4302
|
+
# line 4303 "vm.inc"
|
|
4257
4303
|
# undef NAME_OF_CURRENT_INSN
|
|
4258
4304
|
|
|
4259
4305
|
/* ### Instruction trailers. ### */
|
|
@@ -4280,10 +4326,10 @@ INSN_ENTRY(getlocal_WC_0)
|
|
|
4280
4326
|
/* ### Declare and assign variables. ### */
|
|
4281
4327
|
#line 10 "defs/opt_operand.def"
|
|
4282
4328
|
const rb_num_t level = 0;
|
|
4283
|
-
#line
|
|
4329
|
+
#line 4330 "vm.inc"
|
|
4284
4330
|
lindex_t idx = (lindex_t)GET_OPERAND(1);
|
|
4285
4331
|
# define INSN_ATTR(x) attr_ ## x ## _getlocal_WC_0(idx)
|
|
4286
|
-
bool leaf = INSN_ATTR(leaf);
|
|
4332
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
4287
4333
|
VALUE val;
|
|
4288
4334
|
|
|
4289
4335
|
/* ### Instruction preambles. ### */
|
|
@@ -4300,7 +4346,7 @@ INSN_ENTRY(getlocal_WC_0)
|
|
|
4300
4346
|
RB_DEBUG_COUNTER_INC(lvar_get);
|
|
4301
4347
|
(void)RB_DEBUG_COUNTER_INC_IF(lvar_get_dynamic, level > 0);
|
|
4302
4348
|
}
|
|
4303
|
-
# line
|
|
4349
|
+
# line 4350 "vm.inc"
|
|
4304
4350
|
# undef NAME_OF_CURRENT_INSN
|
|
4305
4351
|
|
|
4306
4352
|
/* ### Instruction trailers. ### */
|
|
@@ -4327,10 +4373,10 @@ INSN_ENTRY(getlocal_WC_1)
|
|
|
4327
4373
|
/* ### Declare and assign variables. ### */
|
|
4328
4374
|
#line 11 "defs/opt_operand.def"
|
|
4329
4375
|
const rb_num_t level = 1;
|
|
4330
|
-
#line
|
|
4376
|
+
#line 4377 "vm.inc"
|
|
4331
4377
|
lindex_t idx = (lindex_t)GET_OPERAND(1);
|
|
4332
4378
|
# define INSN_ATTR(x) attr_ ## x ## _getlocal_WC_1(idx)
|
|
4333
|
-
bool leaf = INSN_ATTR(leaf);
|
|
4379
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
4334
4380
|
VALUE val;
|
|
4335
4381
|
|
|
4336
4382
|
/* ### Instruction preambles. ### */
|
|
@@ -4347,7 +4393,7 @@ INSN_ENTRY(getlocal_WC_1)
|
|
|
4347
4393
|
RB_DEBUG_COUNTER_INC(lvar_get);
|
|
4348
4394
|
(void)RB_DEBUG_COUNTER_INC_IF(lvar_get_dynamic, level > 0);
|
|
4349
4395
|
}
|
|
4350
|
-
# line
|
|
4396
|
+
# line 4397 "vm.inc"
|
|
4351
4397
|
# undef NAME_OF_CURRENT_INSN
|
|
4352
4398
|
|
|
4353
4399
|
/* ### Instruction trailers. ### */
|
|
@@ -4374,10 +4420,10 @@ INSN_ENTRY(setlocal_WC_0)
|
|
|
4374
4420
|
/* ### Declare and assign variables. ### */
|
|
4375
4421
|
#line 12 "defs/opt_operand.def"
|
|
4376
4422
|
const rb_num_t level = 0;
|
|
4377
|
-
#line
|
|
4423
|
+
#line 4424 "vm.inc"
|
|
4378
4424
|
lindex_t idx = (lindex_t)GET_OPERAND(1);
|
|
4379
4425
|
# define INSN_ATTR(x) attr_ ## x ## _setlocal_WC_0(idx)
|
|
4380
|
-
bool leaf = INSN_ATTR(leaf);
|
|
4426
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
4381
4427
|
VALUE val = TOPN(0);
|
|
4382
4428
|
|
|
4383
4429
|
/* ### Instruction preambles. ### */
|
|
@@ -4394,7 +4440,7 @@ INSN_ENTRY(setlocal_WC_0)
|
|
|
4394
4440
|
RB_DEBUG_COUNTER_INC(lvar_set);
|
|
4395
4441
|
(void)RB_DEBUG_COUNTER_INC_IF(lvar_set_dynamic, level > 0);
|
|
4396
4442
|
}
|
|
4397
|
-
# line
|
|
4443
|
+
# line 4444 "vm.inc"
|
|
4398
4444
|
# undef NAME_OF_CURRENT_INSN
|
|
4399
4445
|
|
|
4400
4446
|
/* ### Instruction trailers. ### */
|
|
@@ -4418,10 +4464,10 @@ INSN_ENTRY(setlocal_WC_1)
|
|
|
4418
4464
|
/* ### Declare and assign variables. ### */
|
|
4419
4465
|
#line 13 "defs/opt_operand.def"
|
|
4420
4466
|
const rb_num_t level = 1;
|
|
4421
|
-
#line
|
|
4467
|
+
#line 4468 "vm.inc"
|
|
4422
4468
|
lindex_t idx = (lindex_t)GET_OPERAND(1);
|
|
4423
4469
|
# define INSN_ATTR(x) attr_ ## x ## _setlocal_WC_1(idx)
|
|
4424
|
-
bool leaf = INSN_ATTR(leaf);
|
|
4470
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
4425
4471
|
VALUE val = TOPN(0);
|
|
4426
4472
|
|
|
4427
4473
|
/* ### Instruction preambles. ### */
|
|
@@ -4438,7 +4484,7 @@ INSN_ENTRY(setlocal_WC_1)
|
|
|
4438
4484
|
RB_DEBUG_COUNTER_INC(lvar_set);
|
|
4439
4485
|
(void)RB_DEBUG_COUNTER_INC_IF(lvar_set_dynamic, level > 0);
|
|
4440
4486
|
}
|
|
4441
|
-
# line
|
|
4487
|
+
# line 4488 "vm.inc"
|
|
4442
4488
|
# undef NAME_OF_CURRENT_INSN
|
|
4443
4489
|
|
|
4444
4490
|
/* ### Instruction trailers. ### */
|
|
@@ -4462,9 +4508,9 @@ INSN_ENTRY(putobject_INT2FIX_0_)
|
|
|
4462
4508
|
/* ### Declare and assign variables. ### */
|
|
4463
4509
|
#line 15 "defs/opt_operand.def"
|
|
4464
4510
|
const VALUE val = INT2FIX(0);
|
|
4465
|
-
#line
|
|
4511
|
+
#line 4512 "vm.inc"
|
|
4466
4512
|
# define INSN_ATTR(x) attr_ ## x ## _putobject_INT2FIX_0_()
|
|
4467
|
-
bool leaf = INSN_ATTR(leaf);
|
|
4513
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
4468
4514
|
|
|
4469
4515
|
/* ### Instruction preambles. ### */
|
|
4470
4516
|
if (! leaf) ADD_PC(INSN_ATTR(width));
|
|
@@ -4493,9 +4539,9 @@ INSN_ENTRY(putobject_INT2FIX_1_)
|
|
|
4493
4539
|
/* ### Declare and assign variables. ### */
|
|
4494
4540
|
#line 16 "defs/opt_operand.def"
|
|
4495
4541
|
const VALUE val = INT2FIX(1);
|
|
4496
|
-
#line
|
|
4542
|
+
#line 4543 "vm.inc"
|
|
4497
4543
|
# define INSN_ATTR(x) attr_ ## x ## _putobject_INT2FIX_1_()
|
|
4498
|
-
bool leaf = INSN_ATTR(leaf);
|
|
4544
|
+
const bool leaf = INSN_ATTR(leaf);
|
|
4499
4545
|
|
|
4500
4546
|
/* ### Instruction preambles. ### */
|
|
4501
4547
|
if (! leaf) ADD_PC(INSN_ATTR(width));
|
|
@@ -4712,13 +4758,13 @@ INSN_ENTRY(trace_concatstrings)
|
|
|
4712
4758
|
END_INSN(trace_concatstrings);
|
|
4713
4759
|
}
|
|
4714
4760
|
|
|
4715
|
-
/* insn
|
|
4716
|
-
INSN_ENTRY(
|
|
4761
|
+
/* insn trace_anytostring(...)(...)(...) */
|
|
4762
|
+
INSN_ENTRY(trace_anytostring)
|
|
4717
4763
|
{
|
|
4718
4764
|
vm_trace(ec, GET_CFP());
|
|
4719
4765
|
|
|
4720
|
-
DISPATCH_ORIGINAL_INSN(
|
|
4721
|
-
END_INSN(
|
|
4766
|
+
DISPATCH_ORIGINAL_INSN(anytostring);
|
|
4767
|
+
END_INSN(trace_anytostring);
|
|
4722
4768
|
}
|
|
4723
4769
|
|
|
4724
4770
|
/* insn trace_toregexp(...)(...)(...) */
|
|
@@ -4964,6 +5010,15 @@ INSN_ENTRY(trace_opt_send_without_block)
|
|
|
4964
5010
|
END_INSN(trace_opt_send_without_block);
|
|
4965
5011
|
}
|
|
4966
5012
|
|
|
5013
|
+
/* insn trace_objtostring(...)(...)(...) */
|
|
5014
|
+
INSN_ENTRY(trace_objtostring)
|
|
5015
|
+
{
|
|
5016
|
+
vm_trace(ec, GET_CFP());
|
|
5017
|
+
|
|
5018
|
+
DISPATCH_ORIGINAL_INSN(objtostring);
|
|
5019
|
+
END_INSN(trace_objtostring);
|
|
5020
|
+
}
|
|
5021
|
+
|
|
4967
5022
|
/* insn trace_opt_str_freeze(...)(...)(...) */
|
|
4968
5023
|
INSN_ENTRY(trace_opt_str_freeze)
|
|
4969
5024
|
{
|