debase-ruby_core_source 0.10.13 → 0.10.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/debase-ruby_core_source.gemspec +1 -1
- 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-preview1 → ruby-3.1.0-p0}/ccan/build_assert/build_assert.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/ccan/check_type/check_type.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/ccan/container_of/container_of.h +0 -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-preview1 → ruby-3.1.0-p0}/ccan/str/str.h +0 -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-preview1 → ruby-3.1.0-p0}/vm_sync.h +1 -1
- 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/version.rb +1 -1
- metadata +116 -116
- 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
|
{
|