debase-ruby_core_source 0.10.11 → 0.10.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/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) */
|