debase-ruby_core_source 0.10.11 → 0.10.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/addr2line.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/builtin.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/ccan/build_assert/build_assert.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/ccan/check_type/check_type.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/ccan/container_of/container_of.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/ccan/list/list.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/ccan/str/str.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/constant.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/debug_counter.h +38 -4
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/dln.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/encindex.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/eval_intern.h +16 -5
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/gc.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/hrtime.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/id.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/id_table.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/insns.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/insns_info.inc +93 -89
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/array.h +5 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/bignum.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/bits.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/class.h +7 -1
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/compar.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/compile.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/compilers.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/complex.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/cont.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/dir.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/enc.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/encoding.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/enum.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/enumerator.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/error.h +0 -7
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/eval.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/file.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/fixnum.h +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/gc.h +9 -2
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/hash.h +2 -1
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/imemo.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/inits.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/io.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/load.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/loadpath.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/math.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/missing.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/numeric.h +4 -1
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/object.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/parse.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/proc.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/process.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/random.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/range.h +4 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/rational.h +2 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/re.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/sanitizers.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/scheduler.h +9 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/serial.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/signal.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/static_assert.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/string.h +5 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/struct.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/symbol.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/thread.h +0 -6
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/time.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/transcode.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/util.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/variable.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/vm.h +7 -6
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/warnings.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/iseq.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/known_errors.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/method.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/mjit.h +37 -14
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/mjit_compile.inc +715 -557
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/node.h +2 -2
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/node_name.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/opt_sc.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/optinsn.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/optunifs.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/parse.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/probes_helper.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1/ractor.h → ruby-3.0.0-p0/ractor_core.h} +97 -25
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/regenc.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/regint.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/regparse.h +0 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/revision.h +2 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/ruby_assert.h +0 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/ruby_atomic.h +23 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/siphash.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/symbol.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/thread_pthread.h +23 -14
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/thread_win32.h +5 -10
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/timev.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/transcode_data.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/transient_heap.h +4 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/variable.h +2 -1
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/version.h +3 -3
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/vm.inc +94 -99
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/vm_call_iseq_optimized.inc +48 -48
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/vm_callinfo.h +2 -3
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/vm_core.h +96 -25
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/vm_debug.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/vm_exec.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/vm_insnhelper.h +1 -4
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/vm_opts.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/vm_sync.h +44 -5
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/vmtc.inc +0 -0
- data/lib/debase/ruby_core_source/version.rb +1 -1
- metadata +111 -113
- data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/mjit.h +0 -29
- data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/ractor_pub.h +0 -50
- data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/revision.h +0 -2
- data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/ruby_atomic.h +0 -236
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4cca7fe3e3467d72366c7475eb88f6dd01592f4838a9abd706c0339e972dd87a
|
4
|
+
data.tar.gz: 2edfd0a02f432ea51fd774cd7812a92e798fc2475b342b9146e776f6b8607958
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aefe2293ad096d7740a30b7629ac0bd8023c339acb715e646fee3c118ee7edf66931ece0fece016d5d41580141ad7b67a4f59c6533858ef5e8a856d330769b51
|
7
|
+
data.tar.gz: 6070714baf4cf6cf5702db61a88c1718fc291af3a407411dc5b11fff3987ef1279d5042d2ed4874e3e7ec8c169e01b3b62307c3c43df465d5c6c8abe3d2ff583
|
File without changes
|
File without changes
|
File without changes
|
data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/ccan/check_type/check_type.h
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -18,6 +18,12 @@
|
|
18
18
|
RB_DEBUG_COUNTER(mc_inline_hit) // IMC hit
|
19
19
|
RB_DEBUG_COUNTER(mc_inline_miss_klass) // IMC miss by different class
|
20
20
|
RB_DEBUG_COUNTER(mc_inline_miss_invalidated) // IMC miss by invalidated ME
|
21
|
+
RB_DEBUG_COUNTER(mc_inline_miss_empty) // IMC miss because prev is empty slot
|
22
|
+
RB_DEBUG_COUNTER(mc_inline_miss_same_cc) // IMC miss, but same CC
|
23
|
+
RB_DEBUG_COUNTER(mc_inline_miss_same_cme) // IMC miss, but same CME
|
24
|
+
RB_DEBUG_COUNTER(mc_inline_miss_same_def) // IMC miss, but same definition
|
25
|
+
RB_DEBUG_COUNTER(mc_inline_miss_diff) // IMC miss, different methods
|
26
|
+
|
21
27
|
RB_DEBUG_COUNTER(mc_cme_complement) // number of acquiring complement CME
|
22
28
|
RB_DEBUG_COUNTER(mc_cme_complement_hit) // number of cache hit for complemented CME
|
23
29
|
|
@@ -34,7 +40,8 @@ RB_DEBUG_COUNTER(ci_runtime) // creating temporary CI
|
|
34
40
|
// callcache
|
35
41
|
RB_DEBUG_COUNTER(cc_new) // number of CC
|
36
42
|
RB_DEBUG_COUNTER(cc_temp) // dummy CC (stack-allocated)
|
37
|
-
RB_DEBUG_COUNTER(
|
43
|
+
RB_DEBUG_COUNTER(cc_found_in_ccs) // count for CC lookup success in CCS
|
44
|
+
RB_DEBUG_COUNTER(cc_not_found_in_ccs) // count for CC lookup success in CCS
|
38
45
|
|
39
46
|
RB_DEBUG_COUNTER(cc_ent_invalidate) // count for invalidating cc (cc->klass = 0)
|
40
47
|
RB_DEBUG_COUNTER(cc_cme_invalidate) // count for invalidating CME
|
@@ -45,10 +52,16 @@ RB_DEBUG_COUNTER(cc_invalidate_leaf_callable) // complime
|
|
45
52
|
RB_DEBUG_COUNTER(cc_invalidate_tree) // count for invalidating klass if klass has sublcasses
|
46
53
|
RB_DEBUG_COUNTER(cc_invalidate_tree_cme) // cme if cme is found in this class or superclasses
|
47
54
|
RB_DEBUG_COUNTER(cc_invalidate_tree_callable) // complimented cache (subclasses)
|
55
|
+
RB_DEBUG_COUNTER(cc_invalidate_negative) // count for invalidating negative cache
|
48
56
|
|
49
57
|
RB_DEBUG_COUNTER(ccs_free) // count for free'ing ccs
|
50
58
|
RB_DEBUG_COUNTER(ccs_maxlen) // maximum length of ccs
|
51
|
-
RB_DEBUG_COUNTER(ccs_found)
|
59
|
+
RB_DEBUG_COUNTER(ccs_found) // count for finding corresponding ccs on method lookup
|
60
|
+
RB_DEBUG_COUNTER(ccs_not_found) // count for not found corresponding ccs on method lookup
|
61
|
+
|
62
|
+
// vm_eval.c
|
63
|
+
RB_DEBUG_COUNTER(call0_public)
|
64
|
+
RB_DEBUG_COUNTER(call0_other)
|
52
65
|
|
53
66
|
// iseq
|
54
67
|
RB_DEBUG_COUNTER(iseq_num) // number of total created iseq
|
@@ -123,7 +136,7 @@ RB_DEBUG_COUNTER(ivar_set_ic_hit)
|
|
123
136
|
RB_DEBUG_COUNTER(ivar_set_ic_miss)
|
124
137
|
RB_DEBUG_COUNTER(ivar_set_ic_miss_serial)
|
125
138
|
RB_DEBUG_COUNTER(ivar_set_ic_miss_unset)
|
126
|
-
RB_DEBUG_COUNTER(
|
139
|
+
RB_DEBUG_COUNTER(ivar_set_ic_miss_iv_hit)
|
127
140
|
RB_DEBUG_COUNTER(ivar_set_ic_miss_noobject)
|
128
141
|
RB_DEBUG_COUNTER(ivar_get_base)
|
129
142
|
RB_DEBUG_COUNTER(ivar_set_base)
|
@@ -161,6 +174,12 @@ RB_DEBUG_COUNTER(gc_major_shady)
|
|
161
174
|
RB_DEBUG_COUNTER(gc_major_force)
|
162
175
|
RB_DEBUG_COUNTER(gc_major_oldmalloc)
|
163
176
|
|
177
|
+
RB_DEBUG_COUNTER(gc_enter_start)
|
178
|
+
RB_DEBUG_COUNTER(gc_enter_mark_continue)
|
179
|
+
RB_DEBUG_COUNTER(gc_enter_sweep_continue)
|
180
|
+
RB_DEBUG_COUNTER(gc_enter_rest)
|
181
|
+
RB_DEBUG_COUNTER(gc_enter_finalizer)
|
182
|
+
|
164
183
|
RB_DEBUG_COUNTER(gc_isptr_trial)
|
165
184
|
RB_DEBUG_COUNTER(gc_isptr_range)
|
166
185
|
RB_DEBUG_COUNTER(gc_isptr_align)
|
@@ -309,6 +328,13 @@ RB_DEBUG_COUNTER(theap_alloc)
|
|
309
328
|
RB_DEBUG_COUNTER(theap_alloc_fail)
|
310
329
|
RB_DEBUG_COUNTER(theap_evacuate)
|
311
330
|
|
331
|
+
// VM sync
|
332
|
+
RB_DEBUG_COUNTER(vm_sync_lock)
|
333
|
+
RB_DEBUG_COUNTER(vm_sync_lock_enter)
|
334
|
+
RB_DEBUG_COUNTER(vm_sync_lock_enter_nb)
|
335
|
+
RB_DEBUG_COUNTER(vm_sync_lock_enter_cr)
|
336
|
+
RB_DEBUG_COUNTER(vm_sync_barrier)
|
337
|
+
|
312
338
|
/* mjit_exec() counts */
|
313
339
|
RB_DEBUG_COUNTER(mjit_exec)
|
314
340
|
RB_DEBUG_COUNTER(mjit_exec_not_added)
|
@@ -371,12 +397,19 @@ enum rb_debug_counter_type {
|
|
371
397
|
|
372
398
|
#if USE_DEBUG_COUNTER
|
373
399
|
extern size_t rb_debug_counter[];
|
400
|
+
RUBY_EXTERN struct rb_ractor_struct *ruby_single_main_ractor;
|
401
|
+
RUBY_EXTERN void rb_debug_counter_add_atomic(enum rb_debug_counter_type type, int add);
|
374
402
|
|
375
403
|
inline static int
|
376
404
|
rb_debug_counter_add(enum rb_debug_counter_type type, int add, int cond)
|
377
405
|
{
|
378
406
|
if (cond) {
|
379
|
-
|
407
|
+
if (ruby_single_main_ractor != NULL) {
|
408
|
+
rb_debug_counter[(int)type] += add;
|
409
|
+
}
|
410
|
+
else {
|
411
|
+
rb_debug_counter_add_atomic(type, add);
|
412
|
+
}
|
380
413
|
}
|
381
414
|
return cond;
|
382
415
|
}
|
@@ -384,6 +417,7 @@ rb_debug_counter_add(enum rb_debug_counter_type type, int add, int cond)
|
|
384
417
|
inline static int
|
385
418
|
rb_debug_counter_max(enum rb_debug_counter_type type, unsigned int num)
|
386
419
|
{
|
420
|
+
// TODO: sync
|
387
421
|
if (rb_debug_counter[(int)type] < num) {
|
388
422
|
rb_debug_counter[(int)type] = num;
|
389
423
|
return 1;
|
File without changes
|
File without changes
|
@@ -132,7 +132,8 @@ LONG WINAPI rb_w32_stack_overflow_handler(struct _EXCEPTION_POINTERS *);
|
|
132
132
|
struct rb_vm_tag _tag; \
|
133
133
|
_tag.state = TAG_NONE; \
|
134
134
|
_tag.tag = Qundef; \
|
135
|
-
_tag.prev = _ec->tag;
|
135
|
+
_tag.prev = _ec->tag; \
|
136
|
+
_tag.lock_rec = rb_ec_vm_lock_rec(_ec); \
|
136
137
|
|
137
138
|
#define EC_POP_TAG() \
|
138
139
|
_ec->tag = _tag.prev; \
|
@@ -157,12 +158,23 @@ LONG WINAPI rb_w32_stack_overflow_handler(struct _EXCEPTION_POINTERS *);
|
|
157
158
|
# define VAR_NOCLOBBERED(var) var
|
158
159
|
#endif
|
159
160
|
|
161
|
+
static inline void
|
162
|
+
rb_ec_vm_lock_rec_check(const rb_execution_context_t *ec, unsigned int recorded_lock_rec)
|
163
|
+
{
|
164
|
+
unsigned int current_lock_rec = rb_ec_vm_lock_rec(ec);
|
165
|
+
if (current_lock_rec != recorded_lock_rec) {
|
166
|
+
rb_ec_vm_lock_rec_release(ec, recorded_lock_rec, current_lock_rec);
|
167
|
+
}
|
168
|
+
}
|
169
|
+
|
160
170
|
/* clear ec->tag->state, and return the value */
|
161
171
|
static inline int
|
162
172
|
rb_ec_tag_state(const rb_execution_context_t *ec)
|
163
173
|
{
|
164
|
-
|
165
|
-
|
174
|
+
struct rb_vm_tag *tag = ec->tag;
|
175
|
+
enum ruby_tag_type state = tag->state;
|
176
|
+
tag->state = TAG_NONE;
|
177
|
+
rb_ec_vm_lock_rec_check(ec, tag->lock_rec);
|
166
178
|
return state;
|
167
179
|
}
|
168
180
|
|
@@ -281,13 +293,12 @@ rb_cref_t *rb_vm_cref(void);
|
|
281
293
|
rb_cref_t *rb_vm_cref_replace_with_duplicated_cref(void);
|
282
294
|
VALUE rb_vm_call_cfunc(VALUE recv, VALUE (*func)(VALUE), VALUE arg, VALUE block_handler, VALUE filename);
|
283
295
|
void rb_vm_set_progname(VALUE filename);
|
284
|
-
void rb_thread_terminate_all(void);
|
285
296
|
VALUE rb_vm_cbase(void);
|
286
297
|
|
287
298
|
/* vm_backtrace.c */
|
288
299
|
VALUE rb_ec_backtrace_object(const rb_execution_context_t *ec);
|
289
300
|
VALUE rb_ec_backtrace_str_ary(const rb_execution_context_t *ec, long lev, long n);
|
290
|
-
VALUE rb_ec_backtrace_location_ary(const rb_execution_context_t *ec, long lev, long n);
|
301
|
+
VALUE rb_ec_backtrace_location_ary(const rb_execution_context_t *ec, long lev, long n, bool skip_internal);
|
291
302
|
|
292
303
|
#ifndef CharNext /* defined as CharNext[AW] on Windows. */
|
293
304
|
# ifdef HAVE_MBLEN
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -403,6 +403,10 @@ insn_op_type(VALUE i, long j)
|
|
403
403
|
|
404
404
|
#include "iseq.h"
|
405
405
|
|
406
|
+
// This is used to tell MJIT that this insn would be leaf if CHECK_INTS didn't exist.
|
407
|
+
// It should be used only when RUBY_VM_CHECK_INTS is directly written in insns.def.
|
408
|
+
static bool leafness_of_check_ints = false;
|
409
|
+
|
406
410
|
static bool
|
407
411
|
leafness_of_defined(rb_num_t op_type)
|
408
412
|
{
|
@@ -441,7 +445,7 @@ leafness_of_checkmatch(rb_num_t flag)
|
|
441
445
|
return false;
|
442
446
|
}
|
443
447
|
}
|
444
|
-
#line
|
448
|
+
#line 449 "insns_info.inc"
|
445
449
|
|
446
450
|
#line 10 "tool/ruby_vm/views/_sp_inc_helpers.erb"
|
447
451
|
|
@@ -471,7 +475,7 @@ sp_inc_of_invokeblock(const struct rb_callinfo *ci)
|
|
471
475
|
* instructions, except that it does not pop receiver. */
|
472
476
|
return sp_inc_of_sendish(ci) + 1;
|
473
477
|
}
|
474
|
-
#line
|
478
|
+
#line 479 "insns_info.inc"
|
475
479
|
|
476
480
|
#ifndef RUBY_VM_EXEC_H
|
477
481
|
/* can't #include "vm_exec.h" here... */
|
@@ -1938,7 +1942,7 @@ attr_leaf_getspecial(
|
|
1938
1942
|
return
|
1939
1943
|
#line 192 "insns.def"
|
1940
1944
|
(type == 0) ? true : false;
|
1941
|
-
#line
|
1945
|
+
#line 1946 "insns_info.inc"
|
1942
1946
|
}
|
1943
1947
|
|
1944
1948
|
/* attr const char* name @ getspecial(key, type)()(val) */
|
@@ -2094,7 +2098,7 @@ attr_leaf_getinstancevariable(
|
|
2094
2098
|
return
|
2095
2099
|
#line 214 "insns.def"
|
2096
2100
|
false;
|
2097
|
-
#line
|
2101
|
+
#line 2102 "insns_info.inc"
|
2098
2102
|
}
|
2099
2103
|
|
2100
2104
|
/* attr const char* name @ getinstancevariable(id, ic)()(val) */
|
@@ -2187,7 +2191,7 @@ attr_leaf_setinstancevariable(
|
|
2187
2191
|
return
|
2188
2192
|
#line 225 "insns.def"
|
2189
2193
|
false;
|
2190
|
-
#line
|
2194
|
+
#line 2195 "insns_info.inc"
|
2191
2195
|
}
|
2192
2196
|
|
2193
2197
|
/* attr const char* name @ setinstancevariable(id, ic)(val)() */
|
@@ -2271,7 +2275,7 @@ attr_leaf_getclassvariable(MAYBE_UNUSED(ID id))
|
|
2271
2275
|
return
|
2272
2276
|
#line 237 "insns.def"
|
2273
2277
|
false;
|
2274
|
-
#line
|
2278
|
+
#line 2279 "insns_info.inc"
|
2275
2279
|
}
|
2276
2280
|
|
2277
2281
|
/* attr const char* name @ getclassvariable(id)()(val) */
|
@@ -2337,7 +2341,7 @@ attr_leaf_setclassvariable(MAYBE_UNUSED(ID id))
|
|
2337
2341
|
return
|
2338
2342
|
#line 249 "insns.def"
|
2339
2343
|
false;
|
2340
|
-
#line
|
2344
|
+
#line 2345 "insns_info.inc"
|
2341
2345
|
}
|
2342
2346
|
|
2343
2347
|
/* attr const char* name @ setclassvariable(id)(val)() */
|
@@ -2403,7 +2407,7 @@ attr_leaf_getconstant(MAYBE_UNUSED(ID id))
|
|
2403
2407
|
return
|
2404
2408
|
#line 265 "insns.def"
|
2405
2409
|
false;
|
2406
|
-
#line
|
2410
|
+
#line 2411 "insns_info.inc"
|
2407
2411
|
}
|
2408
2412
|
|
2409
2413
|
/* attr const char* name @ getconstant(id)(klass, allow_nil)(val) */
|
@@ -2469,7 +2473,7 @@ attr_leaf_setconstant(MAYBE_UNUSED(ID id))
|
|
2469
2473
|
return
|
2470
2474
|
#line 281 "insns.def"
|
2471
2475
|
false;
|
2472
|
-
#line
|
2476
|
+
#line 2477 "insns_info.inc"
|
2473
2477
|
}
|
2474
2478
|
|
2475
2479
|
/* attr const char* name @ setconstant(id)(val, cbase)() */
|
@@ -2535,7 +2539,7 @@ attr_leaf_getglobal(MAYBE_UNUSED(ID gid))
|
|
2535
2539
|
return
|
2536
2540
|
#line 294 "insns.def"
|
2537
2541
|
false;
|
2538
|
-
#line
|
2542
|
+
#line 2543 "insns_info.inc"
|
2539
2543
|
}
|
2540
2544
|
|
2541
2545
|
/* attr const char* name @ getglobal(gid)()(val) */
|
@@ -2601,7 +2605,7 @@ attr_leaf_setglobal(MAYBE_UNUSED(ID gid))
|
|
2601
2605
|
return
|
2602
2606
|
#line 305 "insns.def"
|
2603
2607
|
false;
|
2604
|
-
#line
|
2608
|
+
#line 2609 "insns_info.inc"
|
2605
2609
|
}
|
2606
2610
|
|
2607
2611
|
/* attr const char* name @ setglobal(gid)(val)() */
|
@@ -2982,7 +2986,7 @@ attr_leaf_concatstrings(MAYBE_UNUSED(rb_num_t num))
|
|
2982
2986
|
return
|
2983
2987
|
#line 377 "insns.def"
|
2984
2988
|
false;
|
2985
|
-
#line
|
2989
|
+
#line 2990 "insns_info.inc"
|
2986
2990
|
}
|
2987
2991
|
|
2988
2992
|
/* attr const char* name @ concatstrings(num)(...)(val) */
|
@@ -3020,7 +3024,7 @@ attr_sp_inc_concatstrings(MAYBE_UNUSED(rb_num_t num))
|
|
3020
3024
|
return
|
3021
3025
|
#line 378 "insns.def"
|
3022
3026
|
1 - (rb_snum_t)num;
|
3023
|
-
#line
|
3027
|
+
#line 3028 "insns_info.inc"
|
3024
3028
|
}
|
3025
3029
|
|
3026
3030
|
/* attr rb_num_t width @ concatstrings(num)(...)(val) */
|
@@ -3123,7 +3127,7 @@ attr_leaf_toregexp(
|
|
3123
3127
|
return
|
3124
3128
|
#line 403 "insns.def"
|
3125
3129
|
false;
|
3126
|
-
#line
|
3130
|
+
#line 3131 "insns_info.inc"
|
3127
3131
|
}
|
3128
3132
|
|
3129
3133
|
/* attr const char* name @ toregexp(opt, cnt)(...)(val) */
|
@@ -3176,7 +3180,7 @@ attr_sp_inc_toregexp(
|
|
3176
3180
|
return
|
3177
3181
|
#line 404 "insns.def"
|
3178
3182
|
1 - (rb_snum_t)cnt;
|
3179
|
-
#line
|
3183
|
+
#line 3184 "insns_info.inc"
|
3180
3184
|
}
|
3181
3185
|
|
3182
3186
|
/* attr rb_num_t width @ toregexp(opt, cnt)(...)(val) */
|
@@ -3308,7 +3312,7 @@ attr_sp_inc_newarray(MAYBE_UNUSED(rb_num_t num))
|
|
3308
3312
|
return
|
3309
3313
|
#line 427 "insns.def"
|
3310
3314
|
1 - (rb_snum_t)num;
|
3311
|
-
#line
|
3315
|
+
#line 3316 "insns_info.inc"
|
3312
3316
|
}
|
3313
3317
|
|
3314
3318
|
/* attr rb_num_t width @ newarray(num)(...)(val) */
|
@@ -3374,7 +3378,7 @@ attr_sp_inc_newarraykwsplat(MAYBE_UNUSED(rb_num_t num))
|
|
3374
3378
|
return
|
3375
3379
|
#line 442 "insns.def"
|
3376
3380
|
1 - (rb_snum_t)num;
|
3377
|
-
#line
|
3381
|
+
#line 3382 "insns_info.inc"
|
3378
3382
|
}
|
3379
3383
|
|
3380
3384
|
/* attr rb_num_t width @ newarraykwsplat(num)(...)(val) */
|
@@ -3540,7 +3544,7 @@ attr_leaf_expandarray(
|
|
3540
3544
|
return
|
3541
3545
|
#line 488 "insns.def"
|
3542
3546
|
false;
|
3543
|
-
#line
|
3547
|
+
#line 3548 "insns_info.inc"
|
3544
3548
|
}
|
3545
3549
|
|
3546
3550
|
/* attr const char* name @ expandarray(num, flag)(..., ary)(...) */
|
@@ -3593,7 +3597,7 @@ attr_sp_inc_expandarray(
|
|
3593
3597
|
return
|
3594
3598
|
#line 489 "insns.def"
|
3595
3599
|
(rb_snum_t)num - 1 + (flag & 1 ? 1 : 0);
|
3596
|
-
#line
|
3600
|
+
#line 3601 "insns_info.inc"
|
3597
3601
|
}
|
3598
3602
|
|
3599
3603
|
/* attr rb_num_t width @ expandarray(num, flag)(..., ary)(...) */
|
@@ -3627,7 +3631,7 @@ attr_leaf_concatarray(void)
|
|
3627
3631
|
return
|
3628
3632
|
#line 500 "insns.def"
|
3629
3633
|
false;
|
3630
|
-
#line
|
3634
|
+
#line 3635 "insns_info.inc"
|
3631
3635
|
}
|
3632
3636
|
|
3633
3637
|
/* attr const char* name @ concatarray()(ary1, ary2)(ary) */
|
@@ -3693,7 +3697,7 @@ attr_leaf_splatarray(MAYBE_UNUSED(VALUE flag))
|
|
3693
3697
|
return
|
3694
3698
|
#line 511 "insns.def"
|
3695
3699
|
false;
|
3696
|
-
#line
|
3700
|
+
#line 3701 "insns_info.inc"
|
3697
3701
|
}
|
3698
3702
|
|
3699
3703
|
/* attr const char* name @ splatarray(flag)(ary)(obj) */
|
@@ -3759,7 +3763,7 @@ attr_leaf_newhash(MAYBE_UNUSED(rb_num_t num))
|
|
3759
3763
|
return
|
3760
3764
|
#line 522 "insns.def"
|
3761
3765
|
false;
|
3762
|
-
#line
|
3766
|
+
#line 3767 "insns_info.inc"
|
3763
3767
|
}
|
3764
3768
|
|
3765
3769
|
/* attr const char* name @ newhash(num)(...)(val) */
|
@@ -3797,7 +3801,7 @@ attr_sp_inc_newhash(MAYBE_UNUSED(rb_num_t num))
|
|
3797
3801
|
return
|
3798
3802
|
#line 523 "insns.def"
|
3799
3803
|
1 - (rb_snum_t)num;
|
3800
|
-
#line
|
3804
|
+
#line 3805 "insns_info.inc"
|
3801
3805
|
}
|
3802
3806
|
|
3803
3807
|
/* attr rb_num_t width @ newhash(num)(...)(val) */
|
@@ -3828,7 +3832,7 @@ attr_leaf_newrange(MAYBE_UNUSED(rb_num_t flag))
|
|
3828
3832
|
return
|
3829
3833
|
#line 541 "insns.def"
|
3830
3834
|
false;
|
3831
|
-
#line
|
3835
|
+
#line 3836 "insns_info.inc"
|
3832
3836
|
}
|
3833
3837
|
|
3834
3838
|
/* attr const char* name @ newrange(flag)(low, high)(val) */
|
@@ -4055,7 +4059,7 @@ attr_sp_inc_dupn(MAYBE_UNUSED(rb_num_t n))
|
|
4055
4059
|
return
|
4056
4060
|
#line 577 "insns.def"
|
4057
4061
|
n;
|
4058
|
-
#line
|
4062
|
+
#line 4063 "insns_info.inc"
|
4059
4063
|
}
|
4060
4064
|
|
4061
4065
|
/* attr rb_num_t width @ dupn(n)(...)(...) */
|
@@ -4184,7 +4188,7 @@ attr_sp_inc_reverse(MAYBE_UNUSED(rb_num_t n))
|
|
4184
4188
|
return
|
4185
4189
|
#line 601 "insns.def"
|
4186
4190
|
0;
|
4187
|
-
#line
|
4191
|
+
#line 4192 "insns_info.inc"
|
4188
4192
|
}
|
4189
4193
|
|
4190
4194
|
/* attr rb_num_t width @ reverse(n)(...)(...) */
|
@@ -4250,7 +4254,7 @@ attr_sp_inc_topn(MAYBE_UNUSED(rb_num_t n))
|
|
4250
4254
|
return
|
4251
4255
|
#line 631 "insns.def"
|
4252
4256
|
1;
|
4253
|
-
#line
|
4257
|
+
#line 4258 "insns_info.inc"
|
4254
4258
|
}
|
4255
4259
|
|
4256
4260
|
/* attr rb_num_t width @ topn(n)(...)(val) */
|
@@ -4316,7 +4320,7 @@ attr_sp_inc_setn(MAYBE_UNUSED(rb_num_t n))
|
|
4316
4320
|
return
|
4317
4321
|
#line 642 "insns.def"
|
4318
4322
|
0;
|
4319
|
-
#line
|
4323
|
+
#line 4324 "insns_info.inc"
|
4320
4324
|
}
|
4321
4325
|
|
4322
4326
|
/* attr rb_num_t width @ setn(n)(..., val)(val) */
|
@@ -4382,7 +4386,7 @@ attr_sp_inc_adjuststack(MAYBE_UNUSED(rb_num_t n))
|
|
4382
4386
|
return
|
4383
4387
|
#line 653 "insns.def"
|
4384
4388
|
-(rb_snum_t)n;
|
4385
|
-
#line
|
4389
|
+
#line 4390 "insns_info.inc"
|
4386
4390
|
}
|
4387
4391
|
|
4388
4392
|
/* attr rb_num_t width @ adjuststack(n)(...)(...) */
|
@@ -4425,7 +4429,7 @@ attr_leaf_defined(
|
|
4425
4429
|
return
|
4426
4430
|
#line 668 "insns.def"
|
4427
4431
|
leafness_of_defined(op_type);
|
4428
|
-
#line
|
4432
|
+
#line 4433 "insns_info.inc"
|
4429
4433
|
}
|
4430
4434
|
|
4431
4435
|
/* attr const char* name @ defined(op_type, obj, needstr)(v)(val) */
|
@@ -4515,7 +4519,7 @@ attr_leaf_checkmatch(MAYBE_UNUSED(rb_num_t flag))
|
|
4515
4519
|
return
|
4516
4520
|
#line 685 "insns.def"
|
4517
4521
|
leafness_of_checkmatch(flag);
|
4518
|
-
#line
|
4522
|
+
#line 4523 "insns_info.inc"
|
4519
4523
|
}
|
4520
4524
|
|
4521
4525
|
/* attr const char* name @ checkmatch(flag)(target, pattern)(result) */
|
@@ -5012,7 +5016,7 @@ attr_comptime_sp_inc_send(
|
|
5012
5016
|
return
|
5013
5017
|
#line 767 "insns.def"
|
5014
5018
|
sp_inc_of_sendish(ci);
|
5015
|
-
#line
|
5019
|
+
#line 5020 "insns_info.inc"
|
5016
5020
|
}
|
5017
5021
|
|
5018
5022
|
/* attr bool handles_sp @ send(cd, blockiseq)(...)(val) */
|
@@ -5085,7 +5089,7 @@ attr_sp_inc_send(
|
|
5085
5089
|
return
|
5086
5090
|
#line 766 "insns.def"
|
5087
5091
|
sp_inc_of_sendish(cd->ci);
|
5088
|
-
#line
|
5092
|
+
#line 5093 "insns_info.inc"
|
5089
5093
|
}
|
5090
5094
|
|
5091
5095
|
/* attr rb_num_t width @ send(cd, blockiseq)(...)(val) */
|
@@ -5112,7 +5116,7 @@ attr_comptime_sp_inc_opt_send_without_block(MAYBE_UNUSED(CALL_INFO ci))
|
|
5112
5116
|
return
|
5113
5117
|
#line 786 "insns.def"
|
5114
5118
|
sp_inc_of_sendish(ci);
|
5115
|
-
#line
|
5119
|
+
#line 5120 "insns_info.inc"
|
5116
5120
|
}
|
5117
5121
|
|
5118
5122
|
/* attr bool handles_sp @ opt_send_without_block(cd)(...)(val) */
|
@@ -5122,7 +5126,7 @@ attr_handles_sp_opt_send_without_block(MAYBE_UNUSED(CALL_DATA cd))
|
|
5122
5126
|
return
|
5123
5127
|
#line 784 "insns.def"
|
5124
5128
|
true;
|
5125
|
-
#line
|
5129
|
+
#line 5130 "insns_info.inc"
|
5126
5130
|
}
|
5127
5131
|
|
5128
5132
|
/* attr bool leaf @ opt_send_without_block(cd)(...)(val) */
|
@@ -5167,7 +5171,7 @@ attr_sp_inc_opt_send_without_block(MAYBE_UNUSED(CALL_DATA cd))
|
|
5167
5171
|
return
|
5168
5172
|
#line 785 "insns.def"
|
5169
5173
|
sp_inc_of_sendish(cd->ci);
|
5170
|
-
#line
|
5174
|
+
#line 5175 "insns_info.inc"
|
5171
5175
|
}
|
5172
5176
|
|
5173
5177
|
/* attr rb_num_t width @ opt_send_without_block(cd)(...)(val) */
|
@@ -5441,7 +5445,7 @@ attr_leaf_opt_newarray_max(MAYBE_UNUSED(rb_num_t num))
|
|
5441
5445
|
return
|
5442
5446
|
#line 848 "insns.def"
|
5443
5447
|
false;
|
5444
|
-
#line
|
5448
|
+
#line 5449 "insns_info.inc"
|
5445
5449
|
}
|
5446
5450
|
|
5447
5451
|
/* attr const char* name @ opt_newarray_max(num)(...)(val) */
|
@@ -5479,7 +5483,7 @@ attr_sp_inc_opt_newarray_max(MAYBE_UNUSED(rb_num_t num))
|
|
5479
5483
|
return
|
5480
5484
|
#line 849 "insns.def"
|
5481
5485
|
1 - (rb_snum_t)num;
|
5482
|
-
#line
|
5486
|
+
#line 5487 "insns_info.inc"
|
5483
5487
|
}
|
5484
5488
|
|
5485
5489
|
/* attr rb_num_t width @ opt_newarray_max(num)(...)(val) */
|
@@ -5510,7 +5514,7 @@ attr_leaf_opt_newarray_min(MAYBE_UNUSED(rb_num_t num))
|
|
5510
5514
|
return
|
5511
5515
|
#line 860 "insns.def"
|
5512
5516
|
false;
|
5513
|
-
#line
|
5517
|
+
#line 5518 "insns_info.inc"
|
5514
5518
|
}
|
5515
5519
|
|
5516
5520
|
/* attr const char* name @ opt_newarray_min(num)(...)(val) */
|
@@ -5548,7 +5552,7 @@ attr_sp_inc_opt_newarray_min(MAYBE_UNUSED(rb_num_t num))
|
|
5548
5552
|
return
|
5549
5553
|
#line 861 "insns.def"
|
5550
5554
|
1 - (rb_snum_t)num;
|
5551
|
-
#line
|
5555
|
+
#line 5556 "insns_info.inc"
|
5552
5556
|
}
|
5553
5557
|
|
5554
5558
|
/* attr rb_num_t width @ opt_newarray_min(num)(...)(val) */
|
@@ -5578,7 +5582,7 @@ attr_comptime_sp_inc_invokesuper(
|
|
5578
5582
|
return
|
5579
5583
|
#line 873 "insns.def"
|
5580
5584
|
sp_inc_of_sendish(ci);
|
5581
|
-
#line
|
5585
|
+
#line 5586 "insns_info.inc"
|
5582
5586
|
}
|
5583
5587
|
|
5584
5588
|
/* attr bool handles_sp @ invokesuper(cd, blockiseq)(...)(val) */
|
@@ -5651,7 +5655,7 @@ attr_sp_inc_invokesuper(
|
|
5651
5655
|
return
|
5652
5656
|
#line 872 "insns.def"
|
5653
5657
|
sp_inc_of_sendish(cd->ci);
|
5654
|
-
#line
|
5658
|
+
#line 5659 "insns_info.inc"
|
5655
5659
|
}
|
5656
5660
|
|
5657
5661
|
/* attr rb_num_t width @ invokesuper(cd, blockiseq)(...)(val) */
|
@@ -5678,7 +5682,7 @@ attr_comptime_sp_inc_invokeblock(MAYBE_UNUSED(CALL_INFO ci))
|
|
5678
5682
|
return
|
5679
5683
|
#line 892 "insns.def"
|
5680
5684
|
sp_inc_of_invokeblock(ci);
|
5681
|
-
#line
|
5685
|
+
#line 5686 "insns_info.inc"
|
5682
5686
|
}
|
5683
5687
|
|
5684
5688
|
/* attr bool handles_sp @ invokeblock(cd)(...)(val) */
|
@@ -5688,7 +5692,7 @@ attr_handles_sp_invokeblock(MAYBE_UNUSED(CALL_DATA cd))
|
|
5688
5692
|
return
|
5689
5693
|
#line 890 "insns.def"
|
5690
5694
|
true;
|
5691
|
-
#line
|
5695
|
+
#line 5696 "insns_info.inc"
|
5692
5696
|
}
|
5693
5697
|
|
5694
5698
|
/* attr bool leaf @ invokeblock(cd)(...)(val) */
|
@@ -5733,7 +5737,7 @@ attr_sp_inc_invokeblock(MAYBE_UNUSED(CALL_DATA cd))
|
|
5733
5737
|
return
|
5734
5738
|
#line 891 "insns.def"
|
5735
5739
|
sp_inc_of_invokeblock(cd->ci);
|
5736
|
-
#line
|
5740
|
+
#line 5741 "insns_info.inc"
|
5737
5741
|
}
|
5738
5742
|
|
5739
5743
|
/* attr rb_num_t width @ invokeblock(cd)(...)(val) */
|
@@ -5755,9 +5759,9 @@ bool
|
|
5755
5759
|
attr_handles_sp_leave(void)
|
5756
5760
|
{
|
5757
5761
|
return
|
5758
|
-
#line
|
5762
|
+
#line 913 "insns.def"
|
5759
5763
|
true;
|
5760
|
-
#line
|
5764
|
+
#line 5765 "insns_info.inc"
|
5761
5765
|
}
|
5762
5766
|
|
5763
5767
|
/* attr bool leaf @ leave()(val)(val) */
|
@@ -5765,9 +5769,9 @@ bool
|
|
5765
5769
|
attr_leaf_leave(void)
|
5766
5770
|
{
|
5767
5771
|
return
|
5768
|
-
#line
|
5772
|
+
#line 912 "insns.def"
|
5769
5773
|
false;
|
5770
|
-
#line
|
5774
|
+
#line 5775 "insns_info.inc"
|
5771
5775
|
}
|
5772
5776
|
|
5773
5777
|
/* attr const char* name @ leave()(val)(val) */
|
@@ -5831,9 +5835,9 @@ bool
|
|
5831
5835
|
attr_leaf_throw(MAYBE_UNUSED(rb_num_t throw_state))
|
5832
5836
|
{
|
5833
5837
|
return
|
5834
|
-
#line
|
5838
|
+
#line 946 "insns.def"
|
5835
5839
|
false;
|
5836
|
-
#line
|
5840
|
+
#line 5841 "insns_info.inc"
|
5837
5841
|
}
|
5838
5842
|
|
5839
5843
|
/* attr const char* name @ throw(throw_state)(throwobj)(val) */
|
@@ -5897,9 +5901,9 @@ bool
|
|
5897
5901
|
attr_leaf_jump(MAYBE_UNUSED(OFFSET dst))
|
5898
5902
|
{
|
5899
5903
|
return
|
5900
|
-
#line
|
5901
|
-
|
5902
|
-
#line
|
5904
|
+
#line 964 "insns.def"
|
5905
|
+
leafness_of_check_ints;
|
5906
|
+
#line 5907 "insns_info.inc"
|
5903
5907
|
}
|
5904
5908
|
|
5905
5909
|
/* attr const char* name @ jump(dst)()() */
|
@@ -5963,9 +5967,9 @@ bool
|
|
5963
5967
|
attr_leaf_branchif(MAYBE_UNUSED(OFFSET dst))
|
5964
5968
|
{
|
5965
5969
|
return
|
5966
|
-
#line
|
5967
|
-
|
5968
|
-
#line
|
5970
|
+
#line 977 "insns.def"
|
5971
|
+
leafness_of_check_ints;
|
5972
|
+
#line 5973 "insns_info.inc"
|
5969
5973
|
}
|
5970
5974
|
|
5971
5975
|
/* attr const char* name @ branchif(dst)(val)() */
|
@@ -6029,9 +6033,9 @@ bool
|
|
6029
6033
|
attr_leaf_branchunless(MAYBE_UNUSED(OFFSET dst))
|
6030
6034
|
{
|
6031
6035
|
return
|
6032
|
-
#line
|
6033
|
-
|
6034
|
-
#line
|
6036
|
+
#line 992 "insns.def"
|
6037
|
+
leafness_of_check_ints;
|
6038
|
+
#line 6039 "insns_info.inc"
|
6035
6039
|
}
|
6036
6040
|
|
6037
6041
|
/* attr const char* name @ branchunless(dst)(val)() */
|
@@ -6095,9 +6099,9 @@ bool
|
|
6095
6099
|
attr_leaf_branchnil(MAYBE_UNUSED(OFFSET dst))
|
6096
6100
|
{
|
6097
6101
|
return
|
6098
|
-
#line
|
6099
|
-
|
6100
|
-
#line
|
6102
|
+
#line 1007 "insns.def"
|
6103
|
+
leafness_of_check_ints;
|
6104
|
+
#line 6105 "insns_info.inc"
|
6101
6105
|
}
|
6102
6106
|
|
6103
6107
|
/* attr const char* name @ branchnil(dst)(val)() */
|
@@ -6463,9 +6467,9 @@ attr_sp_inc_opt_case_dispatch(
|
|
6463
6467
|
)
|
6464
6468
|
{
|
6465
6469
|
return
|
6466
|
-
#line
|
6470
|
+
#line 1061 "insns.def"
|
6467
6471
|
-1;
|
6468
|
-
#line
|
6472
|
+
#line 6473 "insns_info.inc"
|
6469
6473
|
}
|
6470
6474
|
|
6471
6475
|
/* attr rb_num_t width @ opt_case_dispatch(hash, else_offset)(..., key)() */
|
@@ -6686,9 +6690,9 @@ bool
|
|
6686
6690
|
attr_leaf_opt_div(MAYBE_UNUSED(CALL_DATA cd))
|
6687
6691
|
{
|
6688
6692
|
return
|
6689
|
-
#line
|
6693
|
+
#line 1122 "insns.def"
|
6690
6694
|
false;
|
6691
|
-
#line
|
6695
|
+
#line 6696 "insns_info.inc"
|
6692
6696
|
}
|
6693
6697
|
|
6694
6698
|
/* attr const char* name @ opt_div(cd)(recv, obj)(val) */
|
@@ -6752,9 +6756,9 @@ bool
|
|
6752
6756
|
attr_leaf_opt_mod(MAYBE_UNUSED(CALL_DATA cd))
|
6753
6757
|
{
|
6754
6758
|
return
|
6755
|
-
#line
|
6759
|
+
#line 1138 "insns.def"
|
6756
6760
|
false;
|
6757
|
-
#line
|
6761
|
+
#line 6762 "insns_info.inc"
|
6758
6762
|
}
|
6759
6763
|
|
6760
6764
|
/* attr const char* name @ opt_mod(cd)(recv, obj)(val) */
|
@@ -7223,9 +7227,9 @@ bool
|
|
7223
7227
|
attr_leaf_opt_ltlt(MAYBE_UNUSED(CALL_DATA cd))
|
7224
7228
|
{
|
7225
7229
|
return
|
7226
|
-
#line
|
7230
|
+
#line 1240 "insns.def"
|
7227
7231
|
false;
|
7228
|
-
#line
|
7232
|
+
#line 7233 "insns_info.inc"
|
7229
7233
|
}
|
7230
7234
|
|
7231
7235
|
/* attr const char* name @ opt_ltlt(cd)(recv, obj)(val) */
|
@@ -7415,9 +7419,9 @@ bool
|
|
7415
7419
|
attr_leaf_opt_aref(MAYBE_UNUSED(CALL_DATA cd))
|
7416
7420
|
{
|
7417
7421
|
return
|
7418
|
-
#line
|
7422
|
+
#line 1287 "insns.def"
|
7419
7423
|
false;
|
7420
|
-
#line
|
7424
|
+
#line 7425 "insns_info.inc"
|
7421
7425
|
}
|
7422
7426
|
|
7423
7427
|
/* attr const char* name @ opt_aref(cd)(recv, obj)(val) */
|
@@ -7481,9 +7485,9 @@ bool
|
|
7481
7485
|
attr_leaf_opt_aset(MAYBE_UNUSED(CALL_DATA cd))
|
7482
7486
|
{
|
7483
7487
|
return
|
7484
|
-
#line
|
7488
|
+
#line 1304 "insns.def"
|
7485
7489
|
false;
|
7486
|
-
#line
|
7490
|
+
#line 7491 "insns_info.inc"
|
7487
7491
|
}
|
7488
7492
|
|
7489
7493
|
/* attr const char* name @ opt_aset(cd)(recv, obj, set)(val) */
|
@@ -7556,9 +7560,9 @@ attr_leaf_opt_aset_with(
|
|
7556
7560
|
)
|
7557
7561
|
{
|
7558
7562
|
return
|
7559
|
-
#line
|
7563
|
+
#line 1320 "insns.def"
|
7560
7564
|
false;
|
7561
|
-
#line
|
7565
|
+
#line 7566 "insns_info.inc"
|
7562
7566
|
}
|
7563
7567
|
|
7564
7568
|
/* attr const char* name @ opt_aset_with(key, cd)(recv, val)(val) */
|
@@ -7649,9 +7653,9 @@ attr_leaf_opt_aref_with(
|
|
7649
7653
|
)
|
7650
7654
|
{
|
7651
7655
|
return
|
7652
|
-
#line
|
7656
|
+
#line 1343 "insns.def"
|
7653
7657
|
false;
|
7654
|
-
#line
|
7658
|
+
#line 7659 "insns_info.inc"
|
7655
7659
|
}
|
7656
7660
|
|
7657
7661
|
/* attr const char* name @ opt_aref_with(key, cd)(recv)(val) */
|
@@ -8048,9 +8052,9 @@ bool
|
|
8048
8052
|
attr_leaf_opt_regexpmatch2(MAYBE_UNUSED(CALL_DATA cd))
|
8049
8053
|
{
|
8050
8054
|
return
|
8051
|
-
#line
|
8055
|
+
#line 1431 "insns.def"
|
8052
8056
|
false;
|
8053
|
-
#line
|
8057
|
+
#line 8058 "insns_info.inc"
|
8054
8058
|
}
|
8055
8059
|
|
8056
8060
|
/* attr const char* name @ opt_regexpmatch2(cd)(obj2, obj1)(val) */
|
@@ -8114,9 +8118,9 @@ bool
|
|
8114
8118
|
attr_leaf_invokebuiltin(MAYBE_UNUSED(RB_BUILTIN bf))
|
8115
8119
|
{
|
8116
8120
|
return
|
8117
|
-
#line
|
8121
|
+
#line 1467 "insns.def"
|
8118
8122
|
false;
|
8119
|
-
#line
|
8123
|
+
#line 8124 "insns_info.inc"
|
8120
8124
|
}
|
8121
8125
|
|
8122
8126
|
/* attr const char* name @ invokebuiltin(bf)(...)(val) */
|
@@ -8152,9 +8156,9 @@ rb_snum_t
|
|
8152
8156
|
attr_sp_inc_invokebuiltin(MAYBE_UNUSED(RB_BUILTIN bf))
|
8153
8157
|
{
|
8154
8158
|
return
|
8155
|
-
#line
|
8159
|
+
#line 1468 "insns.def"
|
8156
8160
|
1 - bf->argc;
|
8157
|
-
#line
|
8161
|
+
#line 8162 "insns_info.inc"
|
8158
8162
|
}
|
8159
8163
|
|
8160
8164
|
/* attr rb_num_t width @ invokebuiltin(bf)(...)(val) */
|
@@ -8192,9 +8196,9 @@ attr_leaf_opt_invokebuiltin_delegate(
|
|
8192
8196
|
)
|
8193
8197
|
{
|
8194
8198
|
return
|
8195
|
-
#line
|
8199
|
+
#line 1479 "insns.def"
|
8196
8200
|
false;
|
8197
|
-
#line
|
8201
|
+
#line 8202 "insns_info.inc"
|
8198
8202
|
}
|
8199
8203
|
|
8200
8204
|
/* attr const char* name @ opt_invokebuiltin_delegate(bf, index)()(val) */
|
@@ -8285,9 +8289,9 @@ attr_leaf_opt_invokebuiltin_delegate_leave(
|
|
8285
8289
|
)
|
8286
8290
|
{
|
8287
8291
|
return
|
8288
|
-
#line
|
8292
|
+
#line 1490 "insns.def"
|
8289
8293
|
false;
|
8290
|
-
#line
|
8294
|
+
#line 8295 "insns_info.inc"
|
8291
8295
|
}
|
8292
8296
|
|
8293
8297
|
/* attr const char* name @ opt_invokebuiltin_delegate_leave(bf, index)()(val) */
|