debase-ruby_core_source 3.2.1 → 3.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/darray.h +246 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/debug_counter.h +7 -10
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/eval_intern.h +3 -1
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/id.h +44 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/insns_info.inc +68 -94
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/array.h +2 -20
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/bits.h +6 -2
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/class.h +7 -2
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/cmdlineopt.h +3 -1
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/compile.h +0 -1
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/error.h +24 -2
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/gc.h +28 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/hash.h +18 -44
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/io.h +137 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/parse.h +133 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/process.h +0 -14
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/range.h +2 -2
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/re.h +1 -1
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/ruby_parser.h +69 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/signal.h +4 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/string.h +15 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/struct.h +9 -34
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/thread.h +13 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/variable.h +16 -33
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/vm.h +5 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/iseq.h +4 -4
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/method.h +1 -1
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/node.h +125 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/parse.h +6 -4
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/parser_bits.h +564 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/parser_node.h +133 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/parser_st.h +162 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/parser_value.h +106 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/ractor_core.h +3 -3
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/revision.h +5 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/rubyparser.h +628 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/symbol.h +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/thread_pthread.h +11 -13
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/thread_win32.h +0 -5
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/version.h +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/vm.inc +303 -404
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/vm_callinfo.h +50 -16
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/vm_core.h +29 -47
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/vm_exec.h +11 -10
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/vm_insnhelper.h +20 -23
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/vm_opts.h +0 -5
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/yjit.h +4 -6
- data/lib/debase/ruby_core_source/version.rb +1 -1
- metadata +119 -115
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview1/darray.h +0 -179
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview1/internal/io.h +0 -38
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview1/internal/parse.h +0 -25
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview1/node.h +0 -514
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview1/opt_sc.inc +0 -109
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview1/revision.h +0 -5
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview1/transient_heap.h +0 -65
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/addr2line.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/builtin.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/ccan/build_assert/build_assert.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/ccan/check_type/check_type.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/ccan/container_of/container_of.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/ccan/list/list.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/ccan/str/str.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/constant.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/dln.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/encindex.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/hrtime.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/id_table.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/insns.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/basic_operators.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/bignum.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/compar.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/compilers.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/complex.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/cont.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/dir.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/enc.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/encoding.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/enum.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/enumerator.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/eval.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/file.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/fixnum.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/imemo.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/inits.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/load.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/loadpath.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/math.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/missing.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/numeric.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/object.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/proc.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/ractor.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/random.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/rational.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/sanitizers.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/serial.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/static_assert.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/symbol.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/time.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/transcode.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/util.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/warnings.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/known_errors.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/node_name.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/optinsn.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/optunifs.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/probes_helper.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/regenc.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/regint.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/regparse.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/rjit.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/rjit_c.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/ruby_assert.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/ruby_atomic.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/shape.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/siphash.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/thread_none.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/timev.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/transcode_data.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/variable.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/vm_call_iseq_optimized.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/vm_debug.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/vm_sync.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/vmtc.inc +0 -0
|
@@ -47,16 +47,15 @@ INSN_ENTRY(nop)
|
|
|
47
47
|
|
|
48
48
|
/* ### Declare and assign variables. ### */
|
|
49
49
|
# define INSN_ATTR(x) attr_ ## x ## _nop()
|
|
50
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
50
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
51
51
|
|
|
52
52
|
/* ### Instruction preambles. ### */
|
|
53
|
-
|
|
53
|
+
ADD_PC(INSN_ATTR(width));
|
|
54
54
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
55
55
|
|
|
56
56
|
/* ### Instruction trailers. ### */
|
|
57
57
|
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
58
58
|
INC_SP(INSN_ATTR(sp_inc));
|
|
59
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
60
59
|
# undef INSN_ATTR
|
|
61
60
|
|
|
62
61
|
/* ### Leave the instruction. ### */
|
|
@@ -74,11 +73,11 @@ INSN_ENTRY(getlocal)
|
|
|
74
73
|
lindex_t idx = (lindex_t)GET_OPERAND(1);
|
|
75
74
|
rb_num_t level = (rb_num_t)GET_OPERAND(2);
|
|
76
75
|
# define INSN_ATTR(x) attr_ ## x ## _getlocal(idx, level)
|
|
77
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
76
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
78
77
|
VALUE val;
|
|
79
78
|
|
|
80
79
|
/* ### Instruction preambles. ### */
|
|
81
|
-
|
|
80
|
+
ADD_PC(INSN_ATTR(width));
|
|
82
81
|
SETUP_CANARY(leaf);
|
|
83
82
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
84
83
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, idx);
|
|
@@ -92,7 +91,7 @@ INSN_ENTRY(getlocal)
|
|
|
92
91
|
RB_DEBUG_COUNTER_INC(lvar_get);
|
|
93
92
|
(void)RB_DEBUG_COUNTER_INC_IF(lvar_get_dynamic, level > 0);
|
|
94
93
|
}
|
|
95
|
-
# line
|
|
94
|
+
# line 95 "vm.inc"
|
|
96
95
|
# undef NAME_OF_CURRENT_INSN
|
|
97
96
|
|
|
98
97
|
/* ### Instruction trailers. ### */
|
|
@@ -102,7 +101,6 @@ INSN_ENTRY(getlocal)
|
|
|
102
101
|
TOPN(0) = val;
|
|
103
102
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
104
103
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
105
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
106
104
|
# undef INSN_ATTR
|
|
107
105
|
|
|
108
106
|
/* ### Leave the instruction. ### */
|
|
@@ -120,11 +118,11 @@ INSN_ENTRY(setlocal)
|
|
|
120
118
|
lindex_t idx = (lindex_t)GET_OPERAND(1);
|
|
121
119
|
rb_num_t level = (rb_num_t)GET_OPERAND(2);
|
|
122
120
|
# define INSN_ATTR(x) attr_ ## x ## _setlocal(idx, level)
|
|
123
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
121
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
124
122
|
VALUE val = TOPN(0);
|
|
125
123
|
|
|
126
124
|
/* ### Instruction preambles. ### */
|
|
127
|
-
|
|
125
|
+
ADD_PC(INSN_ATTR(width));
|
|
128
126
|
SETUP_CANARY(leaf);
|
|
129
127
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
130
128
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, idx);
|
|
@@ -138,14 +136,13 @@ INSN_ENTRY(setlocal)
|
|
|
138
136
|
RB_DEBUG_COUNTER_INC(lvar_set);
|
|
139
137
|
(void)RB_DEBUG_COUNTER_INC_IF(lvar_set_dynamic, level > 0);
|
|
140
138
|
}
|
|
141
|
-
# line
|
|
139
|
+
# line 140 "vm.inc"
|
|
142
140
|
# undef NAME_OF_CURRENT_INSN
|
|
143
141
|
|
|
144
142
|
/* ### Instruction trailers. ### */
|
|
145
143
|
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
146
144
|
CHECK_CANARY(leaf, INSN_ATTR(bin));
|
|
147
145
|
INC_SP(INSN_ATTR(sp_inc));
|
|
148
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
149
146
|
# undef INSN_ATTR
|
|
150
147
|
|
|
151
148
|
/* ### Leave the instruction. ### */
|
|
@@ -163,11 +160,11 @@ INSN_ENTRY(getblockparam)
|
|
|
163
160
|
lindex_t idx = (lindex_t)GET_OPERAND(1);
|
|
164
161
|
rb_num_t level = (rb_num_t)GET_OPERAND(2);
|
|
165
162
|
# define INSN_ATTR(x) attr_ ## x ## _getblockparam(idx, level)
|
|
166
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
163
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
167
164
|
VALUE val;
|
|
168
165
|
|
|
169
166
|
/* ### Instruction preambles. ### */
|
|
170
|
-
|
|
167
|
+
ADD_PC(INSN_ATTR(width));
|
|
171
168
|
SETUP_CANARY(leaf);
|
|
172
169
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
173
170
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, idx);
|
|
@@ -191,7 +188,7 @@ INSN_ENTRY(getblockparam)
|
|
|
191
188
|
(void)RB_DEBUG_COUNTER_INC_IF(lvar_get_dynamic, level > 0);
|
|
192
189
|
}
|
|
193
190
|
}
|
|
194
|
-
# line
|
|
191
|
+
# line 192 "vm.inc"
|
|
195
192
|
# undef NAME_OF_CURRENT_INSN
|
|
196
193
|
|
|
197
194
|
/* ### Instruction trailers. ### */
|
|
@@ -201,7 +198,6 @@ INSN_ENTRY(getblockparam)
|
|
|
201
198
|
TOPN(0) = val;
|
|
202
199
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
203
200
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
204
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
205
201
|
# undef INSN_ATTR
|
|
206
202
|
|
|
207
203
|
/* ### Leave the instruction. ### */
|
|
@@ -219,11 +215,11 @@ INSN_ENTRY(setblockparam)
|
|
|
219
215
|
lindex_t idx = (lindex_t)GET_OPERAND(1);
|
|
220
216
|
rb_num_t level = (rb_num_t)GET_OPERAND(2);
|
|
221
217
|
# define INSN_ATTR(x) attr_ ## x ## _setblockparam(idx, level)
|
|
222
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
218
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
223
219
|
VALUE val = TOPN(0);
|
|
224
220
|
|
|
225
221
|
/* ### Instruction preambles. ### */
|
|
226
|
-
|
|
222
|
+
ADD_PC(INSN_ATTR(width));
|
|
227
223
|
SETUP_CANARY(leaf);
|
|
228
224
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
229
225
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, idx);
|
|
@@ -242,14 +238,13 @@ INSN_ENTRY(setblockparam)
|
|
|
242
238
|
|
|
243
239
|
VM_ENV_FLAGS_SET(ep, VM_FRAME_FLAG_MODIFIED_BLOCK_PARAM);
|
|
244
240
|
}
|
|
245
|
-
# line
|
|
241
|
+
# line 242 "vm.inc"
|
|
246
242
|
# undef NAME_OF_CURRENT_INSN
|
|
247
243
|
|
|
248
244
|
/* ### Instruction trailers. ### */
|
|
249
245
|
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
250
246
|
CHECK_CANARY(leaf, INSN_ATTR(bin));
|
|
251
247
|
INC_SP(INSN_ATTR(sp_inc));
|
|
252
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
253
248
|
# undef INSN_ATTR
|
|
254
249
|
|
|
255
250
|
/* ### Leave the instruction. ### */
|
|
@@ -267,11 +262,11 @@ INSN_ENTRY(getblockparamproxy)
|
|
|
267
262
|
lindex_t idx = (lindex_t)GET_OPERAND(1);
|
|
268
263
|
rb_num_t level = (rb_num_t)GET_OPERAND(2);
|
|
269
264
|
# define INSN_ATTR(x) attr_ ## x ## _getblockparamproxy(idx, level)
|
|
270
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
265
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
271
266
|
VALUE val;
|
|
272
267
|
|
|
273
268
|
/* ### Instruction preambles. ### */
|
|
274
|
-
|
|
269
|
+
ADD_PC(INSN_ATTR(width));
|
|
275
270
|
SETUP_CANARY(leaf);
|
|
276
271
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
277
272
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, idx);
|
|
@@ -316,7 +311,7 @@ INSN_ENTRY(getblockparamproxy)
|
|
|
316
311
|
(void)RB_DEBUG_COUNTER_INC_IF(lvar_get_dynamic, level > 0);
|
|
317
312
|
}
|
|
318
313
|
}
|
|
319
|
-
# line
|
|
314
|
+
# line 315 "vm.inc"
|
|
320
315
|
# undef NAME_OF_CURRENT_INSN
|
|
321
316
|
|
|
322
317
|
/* ### Instruction trailers. ### */
|
|
@@ -326,7 +321,6 @@ INSN_ENTRY(getblockparamproxy)
|
|
|
326
321
|
TOPN(0) = val;
|
|
327
322
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
328
323
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
329
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
330
324
|
# undef INSN_ATTR
|
|
331
325
|
|
|
332
326
|
/* ### Leave the instruction. ### */
|
|
@@ -344,11 +338,11 @@ INSN_ENTRY(getspecial)
|
|
|
344
338
|
rb_num_t key = (rb_num_t)GET_OPERAND(1);
|
|
345
339
|
rb_num_t type = (rb_num_t)GET_OPERAND(2);
|
|
346
340
|
# define INSN_ATTR(x) attr_ ## x ## _getspecial(key, type)
|
|
347
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
341
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
348
342
|
VALUE val;
|
|
349
343
|
|
|
350
344
|
/* ### Instruction preambles. ### */
|
|
351
|
-
|
|
345
|
+
ADD_PC(INSN_ATTR(width));
|
|
352
346
|
SETUP_CANARY(leaf);
|
|
353
347
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
354
348
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, key);
|
|
@@ -360,7 +354,7 @@ INSN_ENTRY(getspecial)
|
|
|
360
354
|
{
|
|
361
355
|
val = vm_getspecial(ec, GET_LEP(), key, type);
|
|
362
356
|
}
|
|
363
|
-
# line
|
|
357
|
+
# line 358 "vm.inc"
|
|
364
358
|
# undef NAME_OF_CURRENT_INSN
|
|
365
359
|
|
|
366
360
|
/* ### Instruction trailers. ### */
|
|
@@ -370,7 +364,6 @@ INSN_ENTRY(getspecial)
|
|
|
370
364
|
TOPN(0) = val;
|
|
371
365
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
372
366
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
373
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
374
367
|
# undef INSN_ATTR
|
|
375
368
|
|
|
376
369
|
/* ### Leave the instruction. ### */
|
|
@@ -387,11 +380,11 @@ INSN_ENTRY(setspecial)
|
|
|
387
380
|
/* ### Declare and assign variables. ### */
|
|
388
381
|
rb_num_t key = (rb_num_t)GET_OPERAND(1);
|
|
389
382
|
# define INSN_ATTR(x) attr_ ## x ## _setspecial(key)
|
|
390
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
383
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
391
384
|
VALUE obj = TOPN(0);
|
|
392
385
|
|
|
393
386
|
/* ### Instruction preambles. ### */
|
|
394
|
-
|
|
387
|
+
ADD_PC(INSN_ATTR(width));
|
|
395
388
|
SETUP_CANARY(leaf);
|
|
396
389
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
397
390
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, key);
|
|
@@ -402,14 +395,13 @@ INSN_ENTRY(setspecial)
|
|
|
402
395
|
{
|
|
403
396
|
lep_svar_set(ec, GET_LEP(), key, obj);
|
|
404
397
|
}
|
|
405
|
-
# line
|
|
398
|
+
# line 399 "vm.inc"
|
|
406
399
|
# undef NAME_OF_CURRENT_INSN
|
|
407
400
|
|
|
408
401
|
/* ### Instruction trailers. ### */
|
|
409
402
|
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
410
403
|
CHECK_CANARY(leaf, INSN_ATTR(bin));
|
|
411
404
|
INC_SP(INSN_ATTR(sp_inc));
|
|
412
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
413
405
|
# undef INSN_ATTR
|
|
414
406
|
|
|
415
407
|
/* ### Leave the instruction. ### */
|
|
@@ -427,11 +419,11 @@ INSN_ENTRY(getinstancevariable)
|
|
|
427
419
|
ID id = (ID)GET_OPERAND(1);
|
|
428
420
|
IVC ic = (IVC)GET_OPERAND(2);
|
|
429
421
|
# define INSN_ATTR(x) attr_ ## x ## _getinstancevariable(id, ic)
|
|
430
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
422
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
431
423
|
VALUE val;
|
|
432
424
|
|
|
433
425
|
/* ### Instruction preambles. ### */
|
|
434
|
-
|
|
426
|
+
ADD_PC(INSN_ATTR(width));
|
|
435
427
|
SETUP_CANARY(leaf);
|
|
436
428
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
437
429
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, id);
|
|
@@ -443,7 +435,7 @@ INSN_ENTRY(getinstancevariable)
|
|
|
443
435
|
{
|
|
444
436
|
val = vm_getinstancevariable(GET_ISEQ(), GET_SELF(), id, ic);
|
|
445
437
|
}
|
|
446
|
-
# line
|
|
438
|
+
# line 439 "vm.inc"
|
|
447
439
|
# undef NAME_OF_CURRENT_INSN
|
|
448
440
|
|
|
449
441
|
/* ### Instruction trailers. ### */
|
|
@@ -453,7 +445,6 @@ INSN_ENTRY(getinstancevariable)
|
|
|
453
445
|
TOPN(0) = val;
|
|
454
446
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
455
447
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
456
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
457
448
|
# undef INSN_ATTR
|
|
458
449
|
|
|
459
450
|
/* ### Leave the instruction. ### */
|
|
@@ -471,11 +462,11 @@ INSN_ENTRY(setinstancevariable)
|
|
|
471
462
|
ID id = (ID)GET_OPERAND(1);
|
|
472
463
|
IVC ic = (IVC)GET_OPERAND(2);
|
|
473
464
|
# define INSN_ATTR(x) attr_ ## x ## _setinstancevariable(id, ic)
|
|
474
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
465
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
475
466
|
VALUE val = TOPN(0);
|
|
476
467
|
|
|
477
468
|
/* ### Instruction preambles. ### */
|
|
478
|
-
|
|
469
|
+
ADD_PC(INSN_ATTR(width));
|
|
479
470
|
SETUP_CANARY(leaf);
|
|
480
471
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
481
472
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, id);
|
|
@@ -487,14 +478,13 @@ INSN_ENTRY(setinstancevariable)
|
|
|
487
478
|
{
|
|
488
479
|
vm_setinstancevariable(GET_ISEQ(), GET_SELF(), id, val, ic);
|
|
489
480
|
}
|
|
490
|
-
# line
|
|
481
|
+
# line 482 "vm.inc"
|
|
491
482
|
# undef NAME_OF_CURRENT_INSN
|
|
492
483
|
|
|
493
484
|
/* ### Instruction trailers. ### */
|
|
494
485
|
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
495
486
|
CHECK_CANARY(leaf, INSN_ATTR(bin));
|
|
496
487
|
INC_SP(INSN_ATTR(sp_inc));
|
|
497
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
498
488
|
# undef INSN_ATTR
|
|
499
489
|
|
|
500
490
|
/* ### Leave the instruction. ### */
|
|
@@ -512,11 +502,11 @@ INSN_ENTRY(getclassvariable)
|
|
|
512
502
|
ID id = (ID)GET_OPERAND(1);
|
|
513
503
|
ICVARC ic = (ICVARC)GET_OPERAND(2);
|
|
514
504
|
# define INSN_ATTR(x) attr_ ## x ## _getclassvariable(id, ic)
|
|
515
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
505
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
516
506
|
VALUE val;
|
|
517
507
|
|
|
518
508
|
/* ### Instruction preambles. ### */
|
|
519
|
-
|
|
509
|
+
ADD_PC(INSN_ATTR(width));
|
|
520
510
|
SETUP_CANARY(leaf);
|
|
521
511
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
522
512
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, id);
|
|
@@ -529,7 +519,7 @@ INSN_ENTRY(getclassvariable)
|
|
|
529
519
|
rb_control_frame_t *cfp = GET_CFP();
|
|
530
520
|
val = vm_getclassvariable(GET_ISEQ(), cfp, id, ic);
|
|
531
521
|
}
|
|
532
|
-
# line
|
|
522
|
+
# line 523 "vm.inc"
|
|
533
523
|
# undef NAME_OF_CURRENT_INSN
|
|
534
524
|
|
|
535
525
|
/* ### Instruction trailers. ### */
|
|
@@ -539,7 +529,6 @@ INSN_ENTRY(getclassvariable)
|
|
|
539
529
|
TOPN(0) = val;
|
|
540
530
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
541
531
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
542
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
543
532
|
# undef INSN_ATTR
|
|
544
533
|
|
|
545
534
|
/* ### Leave the instruction. ### */
|
|
@@ -557,11 +546,11 @@ INSN_ENTRY(setclassvariable)
|
|
|
557
546
|
ID id = (ID)GET_OPERAND(1);
|
|
558
547
|
ICVARC ic = (ICVARC)GET_OPERAND(2);
|
|
559
548
|
# define INSN_ATTR(x) attr_ ## x ## _setclassvariable(id, ic)
|
|
560
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
549
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
561
550
|
VALUE val = TOPN(0);
|
|
562
551
|
|
|
563
552
|
/* ### Instruction preambles. ### */
|
|
564
|
-
|
|
553
|
+
ADD_PC(INSN_ATTR(width));
|
|
565
554
|
SETUP_CANARY(leaf);
|
|
566
555
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
567
556
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, id);
|
|
@@ -574,14 +563,13 @@ INSN_ENTRY(setclassvariable)
|
|
|
574
563
|
vm_ensure_not_refinement_module(GET_SELF());
|
|
575
564
|
vm_setclassvariable(GET_ISEQ(), GET_CFP(), id, val, ic);
|
|
576
565
|
}
|
|
577
|
-
# line
|
|
566
|
+
# line 567 "vm.inc"
|
|
578
567
|
# undef NAME_OF_CURRENT_INSN
|
|
579
568
|
|
|
580
569
|
/* ### Instruction trailers. ### */
|
|
581
570
|
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
582
571
|
CHECK_CANARY(leaf, INSN_ATTR(bin));
|
|
583
572
|
INC_SP(INSN_ATTR(sp_inc));
|
|
584
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
585
573
|
# undef INSN_ATTR
|
|
586
574
|
|
|
587
575
|
/* ### Leave the instruction. ### */
|
|
@@ -598,11 +586,11 @@ INSN_ENTRY(opt_getconstant_path)
|
|
|
598
586
|
/* ### Declare and assign variables. ### */
|
|
599
587
|
IC ic = (IC)GET_OPERAND(1);
|
|
600
588
|
# define INSN_ATTR(x) attr_ ## x ## _opt_getconstant_path(ic)
|
|
601
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
589
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
602
590
|
VALUE val;
|
|
603
591
|
|
|
604
592
|
/* ### Instruction preambles. ### */
|
|
605
|
-
|
|
593
|
+
ADD_PC(INSN_ATTR(width));
|
|
606
594
|
SETUP_CANARY(leaf);
|
|
607
595
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
608
596
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, ic);
|
|
@@ -626,7 +614,7 @@ INSN_ENTRY(opt_getconstant_path)
|
|
|
626
614
|
vm_ic_update(GET_ISEQ(), ic, val, GET_EP(), GET_PC() - 2);
|
|
627
615
|
}
|
|
628
616
|
}
|
|
629
|
-
# line
|
|
617
|
+
# line 618 "vm.inc"
|
|
630
618
|
# undef NAME_OF_CURRENT_INSN
|
|
631
619
|
|
|
632
620
|
/* ### Instruction trailers. ### */
|
|
@@ -636,7 +624,6 @@ INSN_ENTRY(opt_getconstant_path)
|
|
|
636
624
|
TOPN(0) = val;
|
|
637
625
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
638
626
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
639
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
640
627
|
# undef INSN_ATTR
|
|
641
628
|
|
|
642
629
|
/* ### Leave the instruction. ### */
|
|
@@ -653,13 +640,13 @@ INSN_ENTRY(getconstant)
|
|
|
653
640
|
/* ### Declare and assign variables. ### */
|
|
654
641
|
ID id = (ID)GET_OPERAND(1);
|
|
655
642
|
# define INSN_ATTR(x) attr_ ## x ## _getconstant(id)
|
|
656
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
643
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
657
644
|
VALUE klass = TOPN(1);
|
|
658
645
|
VALUE allow_nil = TOPN(0);
|
|
659
646
|
VALUE val;
|
|
660
647
|
|
|
661
648
|
/* ### Instruction preambles. ### */
|
|
662
|
-
|
|
649
|
+
ADD_PC(INSN_ATTR(width));
|
|
663
650
|
SETUP_CANARY(leaf);
|
|
664
651
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
665
652
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, id);
|
|
@@ -670,7 +657,7 @@ INSN_ENTRY(getconstant)
|
|
|
670
657
|
{
|
|
671
658
|
val = vm_get_ev_const(ec, klass, id, allow_nil == Qtrue, 0);
|
|
672
659
|
}
|
|
673
|
-
# line
|
|
660
|
+
# line 661 "vm.inc"
|
|
674
661
|
# undef NAME_OF_CURRENT_INSN
|
|
675
662
|
|
|
676
663
|
/* ### Instruction trailers. ### */
|
|
@@ -680,7 +667,6 @@ INSN_ENTRY(getconstant)
|
|
|
680
667
|
TOPN(0) = val;
|
|
681
668
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
682
669
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
683
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
684
670
|
# undef INSN_ATTR
|
|
685
671
|
|
|
686
672
|
/* ### Leave the instruction. ### */
|
|
@@ -697,12 +683,12 @@ INSN_ENTRY(setconstant)
|
|
|
697
683
|
/* ### Declare and assign variables. ### */
|
|
698
684
|
ID id = (ID)GET_OPERAND(1);
|
|
699
685
|
# define INSN_ATTR(x) attr_ ## x ## _setconstant(id)
|
|
700
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
686
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
701
687
|
VALUE val = TOPN(1);
|
|
702
688
|
VALUE cbase = TOPN(0);
|
|
703
689
|
|
|
704
690
|
/* ### Instruction preambles. ### */
|
|
705
|
-
|
|
691
|
+
ADD_PC(INSN_ATTR(width));
|
|
706
692
|
SETUP_CANARY(leaf);
|
|
707
693
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
708
694
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, id);
|
|
@@ -715,14 +701,13 @@ INSN_ENTRY(setconstant)
|
|
|
715
701
|
vm_ensure_not_refinement_module(GET_SELF());
|
|
716
702
|
rb_const_set(cbase, id, val);
|
|
717
703
|
}
|
|
718
|
-
# line
|
|
704
|
+
# line 705 "vm.inc"
|
|
719
705
|
# undef NAME_OF_CURRENT_INSN
|
|
720
706
|
|
|
721
707
|
/* ### Instruction trailers. ### */
|
|
722
708
|
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
723
709
|
CHECK_CANARY(leaf, INSN_ATTR(bin));
|
|
724
710
|
INC_SP(INSN_ATTR(sp_inc));
|
|
725
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
726
711
|
# undef INSN_ATTR
|
|
727
712
|
|
|
728
713
|
/* ### Leave the instruction. ### */
|
|
@@ -739,11 +724,11 @@ INSN_ENTRY(getglobal)
|
|
|
739
724
|
/* ### Declare and assign variables. ### */
|
|
740
725
|
ID gid = (ID)GET_OPERAND(1);
|
|
741
726
|
# define INSN_ATTR(x) attr_ ## x ## _getglobal(gid)
|
|
742
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
727
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
743
728
|
VALUE val;
|
|
744
729
|
|
|
745
730
|
/* ### Instruction preambles. ### */
|
|
746
|
-
|
|
731
|
+
ADD_PC(INSN_ATTR(width));
|
|
747
732
|
SETUP_CANARY(leaf);
|
|
748
733
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
749
734
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, gid);
|
|
@@ -754,7 +739,7 @@ INSN_ENTRY(getglobal)
|
|
|
754
739
|
{
|
|
755
740
|
val = rb_gvar_get(gid);
|
|
756
741
|
}
|
|
757
|
-
# line
|
|
742
|
+
# line 743 "vm.inc"
|
|
758
743
|
# undef NAME_OF_CURRENT_INSN
|
|
759
744
|
|
|
760
745
|
/* ### Instruction trailers. ### */
|
|
@@ -764,7 +749,6 @@ INSN_ENTRY(getglobal)
|
|
|
764
749
|
TOPN(0) = val;
|
|
765
750
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
766
751
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
767
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
768
752
|
# undef INSN_ATTR
|
|
769
753
|
|
|
770
754
|
/* ### Leave the instruction. ### */
|
|
@@ -781,11 +765,11 @@ INSN_ENTRY(setglobal)
|
|
|
781
765
|
/* ### Declare and assign variables. ### */
|
|
782
766
|
ID gid = (ID)GET_OPERAND(1);
|
|
783
767
|
# define INSN_ATTR(x) attr_ ## x ## _setglobal(gid)
|
|
784
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
768
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
785
769
|
VALUE val = TOPN(0);
|
|
786
770
|
|
|
787
771
|
/* ### Instruction preambles. ### */
|
|
788
|
-
|
|
772
|
+
ADD_PC(INSN_ATTR(width));
|
|
789
773
|
SETUP_CANARY(leaf);
|
|
790
774
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
791
775
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, gid);
|
|
@@ -796,14 +780,13 @@ INSN_ENTRY(setglobal)
|
|
|
796
780
|
{
|
|
797
781
|
rb_gvar_set(gid, val);
|
|
798
782
|
}
|
|
799
|
-
# line
|
|
783
|
+
# line 784 "vm.inc"
|
|
800
784
|
# undef NAME_OF_CURRENT_INSN
|
|
801
785
|
|
|
802
786
|
/* ### Instruction trailers. ### */
|
|
803
787
|
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
804
788
|
CHECK_CANARY(leaf, INSN_ATTR(bin));
|
|
805
789
|
INC_SP(INSN_ATTR(sp_inc));
|
|
806
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
807
790
|
# undef INSN_ATTR
|
|
808
791
|
|
|
809
792
|
/* ### Leave the instruction. ### */
|
|
@@ -819,11 +802,11 @@ INSN_ENTRY(putnil)
|
|
|
819
802
|
|
|
820
803
|
/* ### Declare and assign variables. ### */
|
|
821
804
|
# define INSN_ATTR(x) attr_ ## x ## _putnil()
|
|
822
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
805
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
823
806
|
VALUE val;
|
|
824
807
|
|
|
825
808
|
/* ### Instruction preambles. ### */
|
|
826
|
-
|
|
809
|
+
ADD_PC(INSN_ATTR(width));
|
|
827
810
|
SETUP_CANARY(leaf);
|
|
828
811
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
829
812
|
|
|
@@ -833,7 +816,7 @@ INSN_ENTRY(putnil)
|
|
|
833
816
|
{
|
|
834
817
|
val = Qnil;
|
|
835
818
|
}
|
|
836
|
-
# line
|
|
819
|
+
# line 820 "vm.inc"
|
|
837
820
|
# undef NAME_OF_CURRENT_INSN
|
|
838
821
|
|
|
839
822
|
/* ### Instruction trailers. ### */
|
|
@@ -843,7 +826,6 @@ INSN_ENTRY(putnil)
|
|
|
843
826
|
TOPN(0) = val;
|
|
844
827
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
845
828
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
846
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
847
829
|
# undef INSN_ATTR
|
|
848
830
|
|
|
849
831
|
/* ### Leave the instruction. ### */
|
|
@@ -859,11 +841,11 @@ INSN_ENTRY(putself)
|
|
|
859
841
|
|
|
860
842
|
/* ### Declare and assign variables. ### */
|
|
861
843
|
# define INSN_ATTR(x) attr_ ## x ## _putself()
|
|
862
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
844
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
863
845
|
VALUE val;
|
|
864
846
|
|
|
865
847
|
/* ### Instruction preambles. ### */
|
|
866
|
-
|
|
848
|
+
ADD_PC(INSN_ATTR(width));
|
|
867
849
|
SETUP_CANARY(leaf);
|
|
868
850
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
869
851
|
|
|
@@ -873,7 +855,7 @@ INSN_ENTRY(putself)
|
|
|
873
855
|
{
|
|
874
856
|
val = GET_SELF();
|
|
875
857
|
}
|
|
876
|
-
# line
|
|
858
|
+
# line 859 "vm.inc"
|
|
877
859
|
# undef NAME_OF_CURRENT_INSN
|
|
878
860
|
|
|
879
861
|
/* ### Instruction trailers. ### */
|
|
@@ -883,7 +865,6 @@ INSN_ENTRY(putself)
|
|
|
883
865
|
TOPN(0) = val;
|
|
884
866
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
885
867
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
886
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
887
868
|
# undef INSN_ATTR
|
|
888
869
|
|
|
889
870
|
/* ### Leave the instruction. ### */
|
|
@@ -900,10 +881,10 @@ INSN_ENTRY(putobject)
|
|
|
900
881
|
/* ### Declare and assign variables. ### */
|
|
901
882
|
VALUE val = (VALUE)GET_OPERAND(1);
|
|
902
883
|
# define INSN_ATTR(x) attr_ ## x ## _putobject(val)
|
|
903
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
884
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
904
885
|
|
|
905
886
|
/* ### Instruction preambles. ### */
|
|
906
|
-
|
|
887
|
+
ADD_PC(INSN_ATTR(width));
|
|
907
888
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
908
889
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, val);
|
|
909
890
|
|
|
@@ -913,7 +894,6 @@ INSN_ENTRY(putobject)
|
|
|
913
894
|
TOPN(0) = val;
|
|
914
895
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
915
896
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
916
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
917
897
|
# undef INSN_ATTR
|
|
918
898
|
|
|
919
899
|
/* ### Leave the instruction. ### */
|
|
@@ -930,11 +910,11 @@ INSN_ENTRY(putspecialobject)
|
|
|
930
910
|
/* ### Declare and assign variables. ### */
|
|
931
911
|
rb_num_t value_type = (rb_num_t)GET_OPERAND(1);
|
|
932
912
|
# define INSN_ATTR(x) attr_ ## x ## _putspecialobject(value_type)
|
|
933
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
913
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
934
914
|
VALUE val;
|
|
935
915
|
|
|
936
916
|
/* ### Instruction preambles. ### */
|
|
937
|
-
|
|
917
|
+
ADD_PC(INSN_ATTR(width));
|
|
938
918
|
SETUP_CANARY(leaf);
|
|
939
919
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
940
920
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, value_type);
|
|
@@ -948,7 +928,7 @@ INSN_ENTRY(putspecialobject)
|
|
|
948
928
|
type = (enum vm_special_object_type)value_type;
|
|
949
929
|
val = vm_get_special_object(GET_EP(), type);
|
|
950
930
|
}
|
|
951
|
-
# line
|
|
931
|
+
# line 932 "vm.inc"
|
|
952
932
|
# undef NAME_OF_CURRENT_INSN
|
|
953
933
|
|
|
954
934
|
/* ### Instruction trailers. ### */
|
|
@@ -958,7 +938,6 @@ INSN_ENTRY(putspecialobject)
|
|
|
958
938
|
TOPN(0) = val;
|
|
959
939
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
960
940
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
961
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
962
941
|
# undef INSN_ATTR
|
|
963
942
|
|
|
964
943
|
/* ### Leave the instruction. ### */
|
|
@@ -975,11 +954,11 @@ INSN_ENTRY(putstring)
|
|
|
975
954
|
/* ### Declare and assign variables. ### */
|
|
976
955
|
VALUE str = (VALUE)GET_OPERAND(1);
|
|
977
956
|
# define INSN_ATTR(x) attr_ ## x ## _putstring(str)
|
|
978
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
957
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
979
958
|
VALUE val;
|
|
980
959
|
|
|
981
960
|
/* ### Instruction preambles. ### */
|
|
982
|
-
|
|
961
|
+
ADD_PC(INSN_ATTR(width));
|
|
983
962
|
SETUP_CANARY(leaf);
|
|
984
963
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
985
964
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, str);
|
|
@@ -990,7 +969,7 @@ INSN_ENTRY(putstring)
|
|
|
990
969
|
{
|
|
991
970
|
val = rb_ec_str_resurrect(ec, str);
|
|
992
971
|
}
|
|
993
|
-
# line
|
|
972
|
+
# line 973 "vm.inc"
|
|
994
973
|
# undef NAME_OF_CURRENT_INSN
|
|
995
974
|
|
|
996
975
|
/* ### Instruction trailers. ### */
|
|
@@ -1000,7 +979,6 @@ INSN_ENTRY(putstring)
|
|
|
1000
979
|
TOPN(0) = val;
|
|
1001
980
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
1002
981
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
1003
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
1004
982
|
# undef INSN_ATTR
|
|
1005
983
|
|
|
1006
984
|
/* ### Leave the instruction. ### */
|
|
@@ -1017,11 +995,11 @@ INSN_ENTRY(concatstrings)
|
|
|
1017
995
|
/* ### Declare and assign variables. ### */
|
|
1018
996
|
rb_num_t num = (rb_num_t)GET_OPERAND(1);
|
|
1019
997
|
# define INSN_ATTR(x) attr_ ## x ## _concatstrings(num)
|
|
1020
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
998
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
1021
999
|
VALUE val;
|
|
1022
1000
|
|
|
1023
1001
|
/* ### Instruction preambles. ### */
|
|
1024
|
-
|
|
1002
|
+
ADD_PC(INSN_ATTR(width));
|
|
1025
1003
|
SETUP_CANARY(leaf);
|
|
1026
1004
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
1027
1005
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, num);
|
|
@@ -1032,7 +1010,7 @@ INSN_ENTRY(concatstrings)
|
|
|
1032
1010
|
{
|
|
1033
1011
|
val = rb_str_concat_literals(num, STACK_ADDR_FROM_TOP(num));
|
|
1034
1012
|
}
|
|
1035
|
-
# line
|
|
1013
|
+
# line 1014 "vm.inc"
|
|
1036
1014
|
# undef NAME_OF_CURRENT_INSN
|
|
1037
1015
|
|
|
1038
1016
|
/* ### Instruction trailers. ### */
|
|
@@ -1042,7 +1020,6 @@ INSN_ENTRY(concatstrings)
|
|
|
1042
1020
|
TOPN(0) = val;
|
|
1043
1021
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
1044
1022
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
1045
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
1046
1023
|
# undef INSN_ATTR
|
|
1047
1024
|
|
|
1048
1025
|
/* ### Leave the instruction. ### */
|
|
@@ -1058,12 +1035,12 @@ INSN_ENTRY(anytostring)
|
|
|
1058
1035
|
|
|
1059
1036
|
/* ### Declare and assign variables. ### */
|
|
1060
1037
|
# define INSN_ATTR(x) attr_ ## x ## _anytostring()
|
|
1061
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
1038
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
1062
1039
|
VALUE val = TOPN(1);
|
|
1063
1040
|
VALUE str = TOPN(0);
|
|
1064
1041
|
|
|
1065
1042
|
/* ### Instruction preambles. ### */
|
|
1066
|
-
|
|
1043
|
+
ADD_PC(INSN_ATTR(width));
|
|
1067
1044
|
SETUP_CANARY(leaf);
|
|
1068
1045
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
1069
1046
|
|
|
@@ -1073,7 +1050,7 @@ INSN_ENTRY(anytostring)
|
|
|
1073
1050
|
{
|
|
1074
1051
|
val = rb_obj_as_string_result(str, val);
|
|
1075
1052
|
}
|
|
1076
|
-
# line
|
|
1053
|
+
# line 1054 "vm.inc"
|
|
1077
1054
|
# undef NAME_OF_CURRENT_INSN
|
|
1078
1055
|
|
|
1079
1056
|
/* ### Instruction trailers. ### */
|
|
@@ -1083,7 +1060,6 @@ INSN_ENTRY(anytostring)
|
|
|
1083
1060
|
TOPN(0) = val;
|
|
1084
1061
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
1085
1062
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
1086
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
1087
1063
|
# undef INSN_ATTR
|
|
1088
1064
|
|
|
1089
1065
|
/* ### Leave the instruction. ### */
|
|
@@ -1101,11 +1077,11 @@ INSN_ENTRY(toregexp)
|
|
|
1101
1077
|
rb_num_t opt = (rb_num_t)GET_OPERAND(1);
|
|
1102
1078
|
rb_num_t cnt = (rb_num_t)GET_OPERAND(2);
|
|
1103
1079
|
# define INSN_ATTR(x) attr_ ## x ## _toregexp(opt, cnt)
|
|
1104
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
1080
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
1105
1081
|
VALUE val;
|
|
1106
1082
|
|
|
1107
1083
|
/* ### Instruction preambles. ### */
|
|
1108
|
-
|
|
1084
|
+
ADD_PC(INSN_ATTR(width));
|
|
1109
1085
|
SETUP_CANARY(leaf);
|
|
1110
1086
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
1111
1087
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, opt);
|
|
@@ -1119,7 +1095,7 @@ INSN_ENTRY(toregexp)
|
|
|
1119
1095
|
val = rb_reg_new_ary(ary, (int)opt);
|
|
1120
1096
|
rb_ary_clear(ary);
|
|
1121
1097
|
}
|
|
1122
|
-
# line
|
|
1098
|
+
# line 1099 "vm.inc"
|
|
1123
1099
|
# undef NAME_OF_CURRENT_INSN
|
|
1124
1100
|
|
|
1125
1101
|
/* ### Instruction trailers. ### */
|
|
@@ -1129,7 +1105,6 @@ INSN_ENTRY(toregexp)
|
|
|
1129
1105
|
TOPN(0) = val;
|
|
1130
1106
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
1131
1107
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
1132
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
1133
1108
|
# undef INSN_ATTR
|
|
1134
1109
|
|
|
1135
1110
|
/* ### Leave the instruction. ### */
|
|
@@ -1145,12 +1120,12 @@ INSN_ENTRY(intern)
|
|
|
1145
1120
|
|
|
1146
1121
|
/* ### Declare and assign variables. ### */
|
|
1147
1122
|
# define INSN_ATTR(x) attr_ ## x ## _intern()
|
|
1148
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
1123
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
1149
1124
|
VALUE str = TOPN(0);
|
|
1150
1125
|
VALUE sym;
|
|
1151
1126
|
|
|
1152
1127
|
/* ### Instruction preambles. ### */
|
|
1153
|
-
|
|
1128
|
+
ADD_PC(INSN_ATTR(width));
|
|
1154
1129
|
SETUP_CANARY(leaf);
|
|
1155
1130
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
1156
1131
|
|
|
@@ -1160,7 +1135,7 @@ INSN_ENTRY(intern)
|
|
|
1160
1135
|
{
|
|
1161
1136
|
sym = rb_str_intern(str);
|
|
1162
1137
|
}
|
|
1163
|
-
# line
|
|
1138
|
+
# line 1139 "vm.inc"
|
|
1164
1139
|
# undef NAME_OF_CURRENT_INSN
|
|
1165
1140
|
|
|
1166
1141
|
/* ### Instruction trailers. ### */
|
|
@@ -1170,7 +1145,6 @@ INSN_ENTRY(intern)
|
|
|
1170
1145
|
TOPN(0) = sym;
|
|
1171
1146
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
1172
1147
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
1173
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
1174
1148
|
# undef INSN_ATTR
|
|
1175
1149
|
|
|
1176
1150
|
/* ### Leave the instruction. ### */
|
|
@@ -1187,11 +1161,11 @@ INSN_ENTRY(newarray)
|
|
|
1187
1161
|
/* ### Declare and assign variables. ### */
|
|
1188
1162
|
rb_num_t num = (rb_num_t)GET_OPERAND(1);
|
|
1189
1163
|
# define INSN_ATTR(x) attr_ ## x ## _newarray(num)
|
|
1190
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
1164
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
1191
1165
|
VALUE val;
|
|
1192
1166
|
|
|
1193
1167
|
/* ### Instruction preambles. ### */
|
|
1194
|
-
|
|
1168
|
+
ADD_PC(INSN_ATTR(width));
|
|
1195
1169
|
SETUP_CANARY(leaf);
|
|
1196
1170
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
1197
1171
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, num);
|
|
@@ -1202,7 +1176,7 @@ INSN_ENTRY(newarray)
|
|
|
1202
1176
|
{
|
|
1203
1177
|
val = rb_ec_ary_new_from_values(ec, num, STACK_ADDR_FROM_TOP(num));
|
|
1204
1178
|
}
|
|
1205
|
-
# line
|
|
1179
|
+
# line 1180 "vm.inc"
|
|
1206
1180
|
# undef NAME_OF_CURRENT_INSN
|
|
1207
1181
|
|
|
1208
1182
|
/* ### Instruction trailers. ### */
|
|
@@ -1212,7 +1186,6 @@ INSN_ENTRY(newarray)
|
|
|
1212
1186
|
TOPN(0) = val;
|
|
1213
1187
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
1214
1188
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
1215
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
1216
1189
|
# undef INSN_ATTR
|
|
1217
1190
|
|
|
1218
1191
|
/* ### Leave the instruction. ### */
|
|
@@ -1229,11 +1202,11 @@ INSN_ENTRY(newarraykwsplat)
|
|
|
1229
1202
|
/* ### Declare and assign variables. ### */
|
|
1230
1203
|
rb_num_t num = (rb_num_t)GET_OPERAND(1);
|
|
1231
1204
|
# define INSN_ATTR(x) attr_ ## x ## _newarraykwsplat(num)
|
|
1232
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
1205
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
1233
1206
|
VALUE val;
|
|
1234
1207
|
|
|
1235
1208
|
/* ### Instruction preambles. ### */
|
|
1236
|
-
|
|
1209
|
+
ADD_PC(INSN_ATTR(width));
|
|
1237
1210
|
SETUP_CANARY(leaf);
|
|
1238
1211
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
1239
1212
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, num);
|
|
@@ -1249,7 +1222,7 @@ INSN_ENTRY(newarraykwsplat)
|
|
|
1249
1222
|
val = rb_ary_new4(num, STACK_ADDR_FROM_TOP(num));
|
|
1250
1223
|
}
|
|
1251
1224
|
}
|
|
1252
|
-
# line
|
|
1225
|
+
# line 1226 "vm.inc"
|
|
1253
1226
|
# undef NAME_OF_CURRENT_INSN
|
|
1254
1227
|
|
|
1255
1228
|
/* ### Instruction trailers. ### */
|
|
@@ -1259,7 +1232,6 @@ INSN_ENTRY(newarraykwsplat)
|
|
|
1259
1232
|
TOPN(0) = val;
|
|
1260
1233
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
1261
1234
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
1262
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
1263
1235
|
# undef INSN_ATTR
|
|
1264
1236
|
|
|
1265
1237
|
/* ### Leave the instruction. ### */
|
|
@@ -1276,11 +1248,11 @@ INSN_ENTRY(duparray)
|
|
|
1276
1248
|
/* ### Declare and assign variables. ### */
|
|
1277
1249
|
VALUE ary = (VALUE)GET_OPERAND(1);
|
|
1278
1250
|
# define INSN_ATTR(x) attr_ ## x ## _duparray(ary)
|
|
1279
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
1251
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
1280
1252
|
VALUE val;
|
|
1281
1253
|
|
|
1282
1254
|
/* ### Instruction preambles. ### */
|
|
1283
|
-
|
|
1255
|
+
ADD_PC(INSN_ATTR(width));
|
|
1284
1256
|
SETUP_CANARY(leaf);
|
|
1285
1257
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
1286
1258
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, ary);
|
|
@@ -1292,7 +1264,7 @@ INSN_ENTRY(duparray)
|
|
|
1292
1264
|
RUBY_DTRACE_CREATE_HOOK(ARRAY, RARRAY_LEN(ary));
|
|
1293
1265
|
val = rb_ary_resurrect(ary);
|
|
1294
1266
|
}
|
|
1295
|
-
# line
|
|
1267
|
+
# line 1268 "vm.inc"
|
|
1296
1268
|
# undef NAME_OF_CURRENT_INSN
|
|
1297
1269
|
|
|
1298
1270
|
/* ### Instruction trailers. ### */
|
|
@@ -1302,7 +1274,6 @@ INSN_ENTRY(duparray)
|
|
|
1302
1274
|
TOPN(0) = val;
|
|
1303
1275
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
1304
1276
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
1305
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
1306
1277
|
# undef INSN_ATTR
|
|
1307
1278
|
|
|
1308
1279
|
/* ### Leave the instruction. ### */
|
|
@@ -1319,11 +1290,11 @@ INSN_ENTRY(duphash)
|
|
|
1319
1290
|
/* ### Declare and assign variables. ### */
|
|
1320
1291
|
VALUE hash = (VALUE)GET_OPERAND(1);
|
|
1321
1292
|
# define INSN_ATTR(x) attr_ ## x ## _duphash(hash)
|
|
1322
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
1293
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
1323
1294
|
VALUE val;
|
|
1324
1295
|
|
|
1325
1296
|
/* ### Instruction preambles. ### */
|
|
1326
|
-
|
|
1297
|
+
ADD_PC(INSN_ATTR(width));
|
|
1327
1298
|
SETUP_CANARY(leaf);
|
|
1328
1299
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
1329
1300
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, hash);
|
|
@@ -1335,7 +1306,7 @@ INSN_ENTRY(duphash)
|
|
|
1335
1306
|
RUBY_DTRACE_CREATE_HOOK(HASH, RHASH_SIZE(hash) << 1);
|
|
1336
1307
|
val = rb_hash_resurrect(hash);
|
|
1337
1308
|
}
|
|
1338
|
-
# line
|
|
1309
|
+
# line 1310 "vm.inc"
|
|
1339
1310
|
# undef NAME_OF_CURRENT_INSN
|
|
1340
1311
|
|
|
1341
1312
|
/* ### Instruction trailers. ### */
|
|
@@ -1345,7 +1316,6 @@ INSN_ENTRY(duphash)
|
|
|
1345
1316
|
TOPN(0) = val;
|
|
1346
1317
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
1347
1318
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
1348
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
1349
1319
|
# undef INSN_ATTR
|
|
1350
1320
|
|
|
1351
1321
|
/* ### Leave the instruction. ### */
|
|
@@ -1363,11 +1333,11 @@ INSN_ENTRY(expandarray)
|
|
|
1363
1333
|
rb_num_t num = (rb_num_t)GET_OPERAND(1);
|
|
1364
1334
|
rb_num_t flag = (rb_num_t)GET_OPERAND(2);
|
|
1365
1335
|
# define INSN_ATTR(x) attr_ ## x ## _expandarray(num, flag)
|
|
1366
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
1336
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
1367
1337
|
VALUE ary = TOPN(0);
|
|
1368
1338
|
|
|
1369
1339
|
/* ### Instruction preambles. ### */
|
|
1370
|
-
|
|
1340
|
+
ADD_PC(INSN_ATTR(width));
|
|
1371
1341
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
1372
1342
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, num);
|
|
1373
1343
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 1, flag);
|
|
@@ -1378,13 +1348,12 @@ INSN_ENTRY(expandarray)
|
|
|
1378
1348
|
{
|
|
1379
1349
|
vm_expandarray(GET_SP(), ary, num, (int)flag);
|
|
1380
1350
|
}
|
|
1381
|
-
# line
|
|
1351
|
+
# line 1352 "vm.inc"
|
|
1382
1352
|
# undef NAME_OF_CURRENT_INSN
|
|
1383
1353
|
|
|
1384
1354
|
/* ### Instruction trailers. ### */
|
|
1385
1355
|
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
1386
1356
|
INC_SP(INSN_ATTR(sp_inc));
|
|
1387
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
1388
1357
|
# undef INSN_ATTR
|
|
1389
1358
|
|
|
1390
1359
|
/* ### Leave the instruction. ### */
|
|
@@ -1400,13 +1369,13 @@ INSN_ENTRY(concatarray)
|
|
|
1400
1369
|
|
|
1401
1370
|
/* ### Declare and assign variables. ### */
|
|
1402
1371
|
# define INSN_ATTR(x) attr_ ## x ## _concatarray()
|
|
1403
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
1372
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
1404
1373
|
VALUE ary1 = TOPN(1);
|
|
1405
1374
|
VALUE ary2 = TOPN(0);
|
|
1406
1375
|
VALUE ary;
|
|
1407
1376
|
|
|
1408
1377
|
/* ### Instruction preambles. ### */
|
|
1409
|
-
|
|
1378
|
+
ADD_PC(INSN_ATTR(width));
|
|
1410
1379
|
SETUP_CANARY(leaf);
|
|
1411
1380
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
1412
1381
|
|
|
@@ -1416,7 +1385,7 @@ INSN_ENTRY(concatarray)
|
|
|
1416
1385
|
{
|
|
1417
1386
|
ary = vm_concat_array(ary1, ary2);
|
|
1418
1387
|
}
|
|
1419
|
-
# line
|
|
1388
|
+
# line 1389 "vm.inc"
|
|
1420
1389
|
# undef NAME_OF_CURRENT_INSN
|
|
1421
1390
|
|
|
1422
1391
|
/* ### Instruction trailers. ### */
|
|
@@ -1426,7 +1395,6 @@ INSN_ENTRY(concatarray)
|
|
|
1426
1395
|
TOPN(0) = ary;
|
|
1427
1396
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
1428
1397
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
1429
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
1430
1398
|
# undef INSN_ATTR
|
|
1431
1399
|
|
|
1432
1400
|
/* ### Leave the instruction. ### */
|
|
@@ -1443,12 +1411,12 @@ INSN_ENTRY(splatarray)
|
|
|
1443
1411
|
/* ### Declare and assign variables. ### */
|
|
1444
1412
|
VALUE flag = (VALUE)GET_OPERAND(1);
|
|
1445
1413
|
# define INSN_ATTR(x) attr_ ## x ## _splatarray(flag)
|
|
1446
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
1414
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
1447
1415
|
VALUE ary = TOPN(0);
|
|
1448
1416
|
VALUE obj;
|
|
1449
1417
|
|
|
1450
1418
|
/* ### Instruction preambles. ### */
|
|
1451
|
-
|
|
1419
|
+
ADD_PC(INSN_ATTR(width));
|
|
1452
1420
|
SETUP_CANARY(leaf);
|
|
1453
1421
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
1454
1422
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, flag);
|
|
@@ -1459,7 +1427,7 @@ INSN_ENTRY(splatarray)
|
|
|
1459
1427
|
{
|
|
1460
1428
|
obj = vm_splat_array(flag, ary);
|
|
1461
1429
|
}
|
|
1462
|
-
# line
|
|
1430
|
+
# line 1431 "vm.inc"
|
|
1463
1431
|
# undef NAME_OF_CURRENT_INSN
|
|
1464
1432
|
|
|
1465
1433
|
/* ### Instruction trailers. ### */
|
|
@@ -1469,7 +1437,6 @@ INSN_ENTRY(splatarray)
|
|
|
1469
1437
|
TOPN(0) = obj;
|
|
1470
1438
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
1471
1439
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
1472
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
1473
1440
|
# undef INSN_ATTR
|
|
1474
1441
|
|
|
1475
1442
|
/* ### Leave the instruction. ### */
|
|
@@ -1486,11 +1453,11 @@ INSN_ENTRY(newhash)
|
|
|
1486
1453
|
/* ### Declare and assign variables. ### */
|
|
1487
1454
|
rb_num_t num = (rb_num_t)GET_OPERAND(1);
|
|
1488
1455
|
# define INSN_ATTR(x) attr_ ## x ## _newhash(num)
|
|
1489
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
1456
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
1490
1457
|
VALUE val;
|
|
1491
1458
|
|
|
1492
1459
|
/* ### Instruction preambles. ### */
|
|
1493
|
-
|
|
1460
|
+
ADD_PC(INSN_ATTR(width));
|
|
1494
1461
|
SETUP_CANARY(leaf);
|
|
1495
1462
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
1496
1463
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, num);
|
|
@@ -1509,7 +1476,7 @@ INSN_ENTRY(newhash)
|
|
|
1509
1476
|
val = rb_hash_new();
|
|
1510
1477
|
}
|
|
1511
1478
|
}
|
|
1512
|
-
# line
|
|
1479
|
+
# line 1480 "vm.inc"
|
|
1513
1480
|
# undef NAME_OF_CURRENT_INSN
|
|
1514
1481
|
|
|
1515
1482
|
/* ### Instruction trailers. ### */
|
|
@@ -1519,7 +1486,6 @@ INSN_ENTRY(newhash)
|
|
|
1519
1486
|
TOPN(0) = val;
|
|
1520
1487
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
1521
1488
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
1522
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
1523
1489
|
# undef INSN_ATTR
|
|
1524
1490
|
|
|
1525
1491
|
/* ### Leave the instruction. ### */
|
|
@@ -1536,13 +1502,13 @@ INSN_ENTRY(newrange)
|
|
|
1536
1502
|
/* ### Declare and assign variables. ### */
|
|
1537
1503
|
rb_num_t flag = (rb_num_t)GET_OPERAND(1);
|
|
1538
1504
|
# define INSN_ATTR(x) attr_ ## x ## _newrange(flag)
|
|
1539
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
1505
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
1540
1506
|
VALUE low = TOPN(1);
|
|
1541
1507
|
VALUE high = TOPN(0);
|
|
1542
1508
|
VALUE val;
|
|
1543
1509
|
|
|
1544
1510
|
/* ### Instruction preambles. ### */
|
|
1545
|
-
|
|
1511
|
+
ADD_PC(INSN_ATTR(width));
|
|
1546
1512
|
SETUP_CANARY(leaf);
|
|
1547
1513
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
1548
1514
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, flag);
|
|
@@ -1553,7 +1519,7 @@ INSN_ENTRY(newrange)
|
|
|
1553
1519
|
{
|
|
1554
1520
|
val = rb_range_new(low, high, (int)flag);
|
|
1555
1521
|
}
|
|
1556
|
-
# line
|
|
1522
|
+
# line 1523 "vm.inc"
|
|
1557
1523
|
# undef NAME_OF_CURRENT_INSN
|
|
1558
1524
|
|
|
1559
1525
|
/* ### Instruction trailers. ### */
|
|
@@ -1563,7 +1529,6 @@ INSN_ENTRY(newrange)
|
|
|
1563
1529
|
TOPN(0) = val;
|
|
1564
1530
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
1565
1531
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
1566
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
1567
1532
|
# undef INSN_ATTR
|
|
1568
1533
|
|
|
1569
1534
|
/* ### Leave the instruction. ### */
|
|
@@ -1579,11 +1544,11 @@ INSN_ENTRY(pop)
|
|
|
1579
1544
|
|
|
1580
1545
|
/* ### Declare and assign variables. ### */
|
|
1581
1546
|
# define INSN_ATTR(x) attr_ ## x ## _pop()
|
|
1582
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
1547
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
1583
1548
|
VALUE val = TOPN(0);
|
|
1584
1549
|
|
|
1585
1550
|
/* ### Instruction preambles. ### */
|
|
1586
|
-
|
|
1551
|
+
ADD_PC(INSN_ATTR(width));
|
|
1587
1552
|
SETUP_CANARY(leaf);
|
|
1588
1553
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
1589
1554
|
|
|
@@ -1594,14 +1559,13 @@ INSN_ENTRY(pop)
|
|
|
1594
1559
|
(void)val;
|
|
1595
1560
|
/* none */
|
|
1596
1561
|
}
|
|
1597
|
-
# line
|
|
1562
|
+
# line 1563 "vm.inc"
|
|
1598
1563
|
# undef NAME_OF_CURRENT_INSN
|
|
1599
1564
|
|
|
1600
1565
|
/* ### Instruction trailers. ### */
|
|
1601
1566
|
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
1602
1567
|
CHECK_CANARY(leaf, INSN_ATTR(bin));
|
|
1603
1568
|
INC_SP(INSN_ATTR(sp_inc));
|
|
1604
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
1605
1569
|
# undef INSN_ATTR
|
|
1606
1570
|
|
|
1607
1571
|
/* ### Leave the instruction. ### */
|
|
@@ -1617,13 +1581,13 @@ INSN_ENTRY(dup)
|
|
|
1617
1581
|
|
|
1618
1582
|
/* ### Declare and assign variables. ### */
|
|
1619
1583
|
# define INSN_ATTR(x) attr_ ## x ## _dup()
|
|
1620
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
1584
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
1621
1585
|
VALUE val = TOPN(0);
|
|
1622
1586
|
VALUE val1;
|
|
1623
1587
|
VALUE val2;
|
|
1624
1588
|
|
|
1625
1589
|
/* ### Instruction preambles. ### */
|
|
1626
|
-
|
|
1590
|
+
ADD_PC(INSN_ATTR(width));
|
|
1627
1591
|
SETUP_CANARY(leaf);
|
|
1628
1592
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
1629
1593
|
|
|
@@ -1633,7 +1597,7 @@ INSN_ENTRY(dup)
|
|
|
1633
1597
|
{
|
|
1634
1598
|
val1 = val2 = val;
|
|
1635
1599
|
}
|
|
1636
|
-
# line
|
|
1600
|
+
# line 1601 "vm.inc"
|
|
1637
1601
|
# undef NAME_OF_CURRENT_INSN
|
|
1638
1602
|
|
|
1639
1603
|
/* ### Instruction trailers. ### */
|
|
@@ -1646,7 +1610,6 @@ INSN_ENTRY(dup)
|
|
|
1646
1610
|
TOPN(1) = val1;
|
|
1647
1611
|
VM_ASSERT(!RB_TYPE_P(TOPN(1), T_NONE));
|
|
1648
1612
|
VM_ASSERT(!RB_TYPE_P(TOPN(1), T_MOVED));
|
|
1649
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
1650
1613
|
# undef INSN_ATTR
|
|
1651
1614
|
|
|
1652
1615
|
/* ### Leave the instruction. ### */
|
|
@@ -1663,10 +1626,10 @@ INSN_ENTRY(dupn)
|
|
|
1663
1626
|
/* ### Declare and assign variables. ### */
|
|
1664
1627
|
rb_num_t n = (rb_num_t)GET_OPERAND(1);
|
|
1665
1628
|
# define INSN_ATTR(x) attr_ ## x ## _dupn(n)
|
|
1666
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
1629
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
1667
1630
|
|
|
1668
1631
|
/* ### Instruction preambles. ### */
|
|
1669
|
-
|
|
1632
|
+
ADD_PC(INSN_ATTR(width));
|
|
1670
1633
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
1671
1634
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, n);
|
|
1672
1635
|
|
|
@@ -1679,13 +1642,12 @@ INSN_ENTRY(dupn)
|
|
|
1679
1642
|
|
|
1680
1643
|
MEMCPY(dst, src, VALUE, n);
|
|
1681
1644
|
}
|
|
1682
|
-
# line
|
|
1645
|
+
# line 1646 "vm.inc"
|
|
1683
1646
|
# undef NAME_OF_CURRENT_INSN
|
|
1684
1647
|
|
|
1685
1648
|
/* ### Instruction trailers. ### */
|
|
1686
1649
|
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
1687
1650
|
INC_SP(INSN_ATTR(sp_inc));
|
|
1688
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
1689
1651
|
# undef INSN_ATTR
|
|
1690
1652
|
|
|
1691
1653
|
/* ### Leave the instruction. ### */
|
|
@@ -1701,12 +1663,12 @@ INSN_ENTRY(swap)
|
|
|
1701
1663
|
|
|
1702
1664
|
/* ### Declare and assign variables. ### */
|
|
1703
1665
|
# define INSN_ATTR(x) attr_ ## x ## _swap()
|
|
1704
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
1666
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
1705
1667
|
VALUE val = TOPN(1);
|
|
1706
1668
|
VALUE obj = TOPN(0);
|
|
1707
1669
|
|
|
1708
1670
|
/* ### Instruction preambles. ### */
|
|
1709
|
-
|
|
1671
|
+
ADD_PC(INSN_ATTR(width));
|
|
1710
1672
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
1711
1673
|
|
|
1712
1674
|
/* ### Instruction trailers. ### */
|
|
@@ -1718,7 +1680,6 @@ INSN_ENTRY(swap)
|
|
|
1718
1680
|
TOPN(1) = obj;
|
|
1719
1681
|
VM_ASSERT(!RB_TYPE_P(TOPN(1), T_NONE));
|
|
1720
1682
|
VM_ASSERT(!RB_TYPE_P(TOPN(1), T_MOVED));
|
|
1721
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
1722
1683
|
# undef INSN_ATTR
|
|
1723
1684
|
|
|
1724
1685
|
/* ### Leave the instruction. ### */
|
|
@@ -1735,10 +1696,10 @@ INSN_ENTRY(opt_reverse)
|
|
|
1735
1696
|
/* ### Declare and assign variables. ### */
|
|
1736
1697
|
rb_num_t n = (rb_num_t)GET_OPERAND(1);
|
|
1737
1698
|
# define INSN_ATTR(x) attr_ ## x ## _opt_reverse(n)
|
|
1738
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
1699
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
1739
1700
|
|
|
1740
1701
|
/* ### Instruction preambles. ### */
|
|
1741
|
-
|
|
1702
|
+
ADD_PC(INSN_ATTR(width));
|
|
1742
1703
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
1743
1704
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, n);
|
|
1744
1705
|
|
|
@@ -1756,13 +1717,12 @@ INSN_ENTRY(opt_reverse)
|
|
|
1756
1717
|
TOPN(i) = v0;
|
|
1757
1718
|
}
|
|
1758
1719
|
}
|
|
1759
|
-
# line
|
|
1720
|
+
# line 1721 "vm.inc"
|
|
1760
1721
|
# undef NAME_OF_CURRENT_INSN
|
|
1761
1722
|
|
|
1762
1723
|
/* ### Instruction trailers. ### */
|
|
1763
1724
|
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
1764
1725
|
INC_SP(INSN_ATTR(sp_inc));
|
|
1765
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
1766
1726
|
# undef INSN_ATTR
|
|
1767
1727
|
|
|
1768
1728
|
/* ### Leave the instruction. ### */
|
|
@@ -1779,11 +1739,11 @@ INSN_ENTRY(topn)
|
|
|
1779
1739
|
/* ### Declare and assign variables. ### */
|
|
1780
1740
|
rb_num_t n = (rb_num_t)GET_OPERAND(1);
|
|
1781
1741
|
# define INSN_ATTR(x) attr_ ## x ## _topn(n)
|
|
1782
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
1742
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
1783
1743
|
VALUE val;
|
|
1784
1744
|
|
|
1785
1745
|
/* ### Instruction preambles. ### */
|
|
1786
|
-
|
|
1746
|
+
ADD_PC(INSN_ATTR(width));
|
|
1787
1747
|
SETUP_CANARY(leaf);
|
|
1788
1748
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
1789
1749
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, n);
|
|
@@ -1794,7 +1754,7 @@ INSN_ENTRY(topn)
|
|
|
1794
1754
|
{
|
|
1795
1755
|
val = TOPN(n);
|
|
1796
1756
|
}
|
|
1797
|
-
# line
|
|
1757
|
+
# line 1758 "vm.inc"
|
|
1798
1758
|
# undef NAME_OF_CURRENT_INSN
|
|
1799
1759
|
|
|
1800
1760
|
/* ### Instruction trailers. ### */
|
|
@@ -1804,7 +1764,6 @@ INSN_ENTRY(topn)
|
|
|
1804
1764
|
TOPN(0) = val;
|
|
1805
1765
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
1806
1766
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
1807
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
1808
1767
|
# undef INSN_ATTR
|
|
1809
1768
|
|
|
1810
1769
|
/* ### Leave the instruction. ### */
|
|
@@ -1821,11 +1780,11 @@ INSN_ENTRY(setn)
|
|
|
1821
1780
|
/* ### Declare and assign variables. ### */
|
|
1822
1781
|
rb_num_t n = (rb_num_t)GET_OPERAND(1);
|
|
1823
1782
|
# define INSN_ATTR(x) attr_ ## x ## _setn(n)
|
|
1824
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
1783
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
1825
1784
|
VALUE val = TOPN(0);
|
|
1826
1785
|
|
|
1827
1786
|
/* ### Instruction preambles. ### */
|
|
1828
|
-
|
|
1787
|
+
ADD_PC(INSN_ATTR(width));
|
|
1829
1788
|
SETUP_CANARY(leaf);
|
|
1830
1789
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
1831
1790
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, n);
|
|
@@ -1836,7 +1795,7 @@ INSN_ENTRY(setn)
|
|
|
1836
1795
|
{
|
|
1837
1796
|
TOPN(n) = val;
|
|
1838
1797
|
}
|
|
1839
|
-
# line
|
|
1798
|
+
# line 1799 "vm.inc"
|
|
1840
1799
|
# undef NAME_OF_CURRENT_INSN
|
|
1841
1800
|
|
|
1842
1801
|
/* ### Instruction trailers. ### */
|
|
@@ -1846,7 +1805,6 @@ INSN_ENTRY(setn)
|
|
|
1846
1805
|
TOPN(0) = val;
|
|
1847
1806
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
1848
1807
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
1849
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
1850
1808
|
# undef INSN_ATTR
|
|
1851
1809
|
|
|
1852
1810
|
/* ### Leave the instruction. ### */
|
|
@@ -1863,17 +1821,16 @@ INSN_ENTRY(adjuststack)
|
|
|
1863
1821
|
/* ### Declare and assign variables. ### */
|
|
1864
1822
|
rb_num_t n = (rb_num_t)GET_OPERAND(1);
|
|
1865
1823
|
# define INSN_ATTR(x) attr_ ## x ## _adjuststack(n)
|
|
1866
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
1824
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
1867
1825
|
|
|
1868
1826
|
/* ### Instruction preambles. ### */
|
|
1869
|
-
|
|
1827
|
+
ADD_PC(INSN_ATTR(width));
|
|
1870
1828
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
1871
1829
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, n);
|
|
1872
1830
|
|
|
1873
1831
|
/* ### Instruction trailers. ### */
|
|
1874
1832
|
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
1875
1833
|
INC_SP(INSN_ATTR(sp_inc));
|
|
1876
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
1877
1834
|
# undef INSN_ATTR
|
|
1878
1835
|
|
|
1879
1836
|
/* ### Leave the instruction. ### */
|
|
@@ -1892,12 +1849,12 @@ INSN_ENTRY(defined)
|
|
|
1892
1849
|
VALUE obj = (VALUE)GET_OPERAND(2);
|
|
1893
1850
|
VALUE pushval = (VALUE)GET_OPERAND(3);
|
|
1894
1851
|
# define INSN_ATTR(x) attr_ ## x ## _defined(op_type, obj, pushval)
|
|
1895
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
1852
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
1896
1853
|
VALUE v = TOPN(0);
|
|
1897
1854
|
VALUE val;
|
|
1898
1855
|
|
|
1899
1856
|
/* ### Instruction preambles. ### */
|
|
1900
|
-
|
|
1857
|
+
ADD_PC(INSN_ATTR(width));
|
|
1901
1858
|
SETUP_CANARY(leaf);
|
|
1902
1859
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
1903
1860
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, op_type);
|
|
@@ -1913,7 +1870,7 @@ INSN_ENTRY(defined)
|
|
|
1913
1870
|
val = pushval;
|
|
1914
1871
|
}
|
|
1915
1872
|
}
|
|
1916
|
-
# line
|
|
1873
|
+
# line 1874 "vm.inc"
|
|
1917
1874
|
# undef NAME_OF_CURRENT_INSN
|
|
1918
1875
|
|
|
1919
1876
|
/* ### Instruction trailers. ### */
|
|
@@ -1923,7 +1880,6 @@ INSN_ENTRY(defined)
|
|
|
1923
1880
|
TOPN(0) = val;
|
|
1924
1881
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
1925
1882
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
1926
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
1927
1883
|
# undef INSN_ATTR
|
|
1928
1884
|
|
|
1929
1885
|
/* ### Leave the instruction. ### */
|
|
@@ -1942,11 +1898,11 @@ INSN_ENTRY(definedivar)
|
|
|
1942
1898
|
IVC ic = (IVC)GET_OPERAND(2);
|
|
1943
1899
|
VALUE pushval = (VALUE)GET_OPERAND(3);
|
|
1944
1900
|
# define INSN_ATTR(x) attr_ ## x ## _definedivar(id, ic, pushval)
|
|
1945
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
1901
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
1946
1902
|
VALUE val;
|
|
1947
1903
|
|
|
1948
1904
|
/* ### Instruction preambles. ### */
|
|
1949
|
-
|
|
1905
|
+
ADD_PC(INSN_ATTR(width));
|
|
1950
1906
|
SETUP_CANARY(leaf);
|
|
1951
1907
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
1952
1908
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, id);
|
|
@@ -1962,7 +1918,7 @@ INSN_ENTRY(definedivar)
|
|
|
1962
1918
|
val = pushval;
|
|
1963
1919
|
}
|
|
1964
1920
|
}
|
|
1965
|
-
# line
|
|
1921
|
+
# line 1922 "vm.inc"
|
|
1966
1922
|
# undef NAME_OF_CURRENT_INSN
|
|
1967
1923
|
|
|
1968
1924
|
/* ### Instruction trailers. ### */
|
|
@@ -1972,7 +1928,6 @@ INSN_ENTRY(definedivar)
|
|
|
1972
1928
|
TOPN(0) = val;
|
|
1973
1929
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
1974
1930
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
1975
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
1976
1931
|
# undef INSN_ATTR
|
|
1977
1932
|
|
|
1978
1933
|
/* ### Leave the instruction. ### */
|
|
@@ -1989,13 +1944,13 @@ INSN_ENTRY(checkmatch)
|
|
|
1989
1944
|
/* ### Declare and assign variables. ### */
|
|
1990
1945
|
rb_num_t flag = (rb_num_t)GET_OPERAND(1);
|
|
1991
1946
|
# define INSN_ATTR(x) attr_ ## x ## _checkmatch(flag)
|
|
1992
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
1947
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
1993
1948
|
VALUE target = TOPN(1);
|
|
1994
1949
|
VALUE pattern = TOPN(0);
|
|
1995
1950
|
VALUE result;
|
|
1996
1951
|
|
|
1997
1952
|
/* ### Instruction preambles. ### */
|
|
1998
|
-
|
|
1953
|
+
ADD_PC(INSN_ATTR(width));
|
|
1999
1954
|
SETUP_CANARY(leaf);
|
|
2000
1955
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
2001
1956
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, flag);
|
|
@@ -2006,7 +1961,7 @@ INSN_ENTRY(checkmatch)
|
|
|
2006
1961
|
{
|
|
2007
1962
|
result = vm_check_match(ec, target, pattern, flag);
|
|
2008
1963
|
}
|
|
2009
|
-
# line
|
|
1964
|
+
# line 1965 "vm.inc"
|
|
2010
1965
|
# undef NAME_OF_CURRENT_INSN
|
|
2011
1966
|
|
|
2012
1967
|
/* ### Instruction trailers. ### */
|
|
@@ -2016,7 +1971,6 @@ INSN_ENTRY(checkmatch)
|
|
|
2016
1971
|
TOPN(0) = result;
|
|
2017
1972
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
2018
1973
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
2019
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
2020
1974
|
# undef INSN_ATTR
|
|
2021
1975
|
|
|
2022
1976
|
/* ### Leave the instruction. ### */
|
|
@@ -2034,11 +1988,11 @@ INSN_ENTRY(checkkeyword)
|
|
|
2034
1988
|
lindex_t kw_bits_index = (lindex_t)GET_OPERAND(1);
|
|
2035
1989
|
lindex_t keyword_index = (lindex_t)GET_OPERAND(2);
|
|
2036
1990
|
# define INSN_ATTR(x) attr_ ## x ## _checkkeyword(kw_bits_index, keyword_index)
|
|
2037
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
1991
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
2038
1992
|
VALUE ret;
|
|
2039
1993
|
|
|
2040
1994
|
/* ### Instruction preambles. ### */
|
|
2041
|
-
|
|
1995
|
+
ADD_PC(INSN_ATTR(width));
|
|
2042
1996
|
SETUP_CANARY(leaf);
|
|
2043
1997
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
2044
1998
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, kw_bits_index);
|
|
@@ -2050,7 +2004,7 @@ INSN_ENTRY(checkkeyword)
|
|
|
2050
2004
|
{
|
|
2051
2005
|
ret = vm_check_keyword(kw_bits_index, keyword_index, GET_EP());
|
|
2052
2006
|
}
|
|
2053
|
-
# line
|
|
2007
|
+
# line 2008 "vm.inc"
|
|
2054
2008
|
# undef NAME_OF_CURRENT_INSN
|
|
2055
2009
|
|
|
2056
2010
|
/* ### Instruction trailers. ### */
|
|
@@ -2060,7 +2014,6 @@ INSN_ENTRY(checkkeyword)
|
|
|
2060
2014
|
TOPN(0) = ret;
|
|
2061
2015
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
2062
2016
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
2063
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
2064
2017
|
# undef INSN_ATTR
|
|
2065
2018
|
|
|
2066
2019
|
/* ### Leave the instruction. ### */
|
|
@@ -2077,12 +2030,12 @@ INSN_ENTRY(checktype)
|
|
|
2077
2030
|
/* ### Declare and assign variables. ### */
|
|
2078
2031
|
rb_num_t type = (rb_num_t)GET_OPERAND(1);
|
|
2079
2032
|
# define INSN_ATTR(x) attr_ ## x ## _checktype(type)
|
|
2080
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
2033
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
2081
2034
|
VALUE val = TOPN(0);
|
|
2082
2035
|
VALUE ret;
|
|
2083
2036
|
|
|
2084
2037
|
/* ### Instruction preambles. ### */
|
|
2085
|
-
|
|
2038
|
+
ADD_PC(INSN_ATTR(width));
|
|
2086
2039
|
SETUP_CANARY(leaf);
|
|
2087
2040
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
2088
2041
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, type);
|
|
@@ -2093,7 +2046,7 @@ INSN_ENTRY(checktype)
|
|
|
2093
2046
|
{
|
|
2094
2047
|
ret = RBOOL(TYPE(val) == (int)type);
|
|
2095
2048
|
}
|
|
2096
|
-
# line
|
|
2049
|
+
# line 2050 "vm.inc"
|
|
2097
2050
|
# undef NAME_OF_CURRENT_INSN
|
|
2098
2051
|
|
|
2099
2052
|
/* ### Instruction trailers. ### */
|
|
@@ -2103,7 +2056,6 @@ INSN_ENTRY(checktype)
|
|
|
2103
2056
|
TOPN(0) = ret;
|
|
2104
2057
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
2105
2058
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
2106
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
2107
2059
|
# undef INSN_ATTR
|
|
2108
2060
|
|
|
2109
2061
|
/* ### Leave the instruction. ### */
|
|
@@ -2122,13 +2074,13 @@ INSN_ENTRY(defineclass)
|
|
|
2122
2074
|
ISEQ class_iseq = (ISEQ)GET_OPERAND(2);
|
|
2123
2075
|
rb_num_t flags = (rb_num_t)GET_OPERAND(3);
|
|
2124
2076
|
# define INSN_ATTR(x) attr_ ## x ## _defineclass(id, class_iseq, flags)
|
|
2125
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
2077
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
2126
2078
|
VALUE cbase = TOPN(1);
|
|
2127
2079
|
VALUE super = TOPN(0);
|
|
2128
2080
|
VALUE val;
|
|
2129
2081
|
|
|
2130
2082
|
/* ### Instruction preambles. ### */
|
|
2131
|
-
|
|
2083
|
+
ADD_PC(INSN_ATTR(width));
|
|
2132
2084
|
POPN(INSN_ATTR(popn));
|
|
2133
2085
|
SETUP_CANARY(leaf);
|
|
2134
2086
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
@@ -2154,14 +2106,13 @@ INSN_ENTRY(defineclass)
|
|
|
2154
2106
|
RESTORE_REGS();
|
|
2155
2107
|
NEXT_INSN();
|
|
2156
2108
|
}
|
|
2157
|
-
# line
|
|
2109
|
+
# line 2110 "vm.inc"
|
|
2158
2110
|
# undef NAME_OF_CURRENT_INSN
|
|
2159
2111
|
|
|
2160
2112
|
/* ### Instruction trailers. ### */
|
|
2161
2113
|
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
2162
2114
|
CHECK_CANARY(leaf, INSN_ATTR(bin));
|
|
2163
2115
|
PUSH(val);
|
|
2164
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
2165
2116
|
# undef INSN_ATTR
|
|
2166
2117
|
|
|
2167
2118
|
/* ### Leave the instruction. ### */
|
|
@@ -2179,10 +2130,10 @@ INSN_ENTRY(definemethod)
|
|
|
2179
2130
|
ID id = (ID)GET_OPERAND(1);
|
|
2180
2131
|
ISEQ iseq = (ISEQ)GET_OPERAND(2);
|
|
2181
2132
|
# define INSN_ATTR(x) attr_ ## x ## _definemethod(id, iseq)
|
|
2182
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
2133
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
2183
2134
|
|
|
2184
2135
|
/* ### Instruction preambles. ### */
|
|
2185
|
-
|
|
2136
|
+
ADD_PC(INSN_ATTR(width));
|
|
2186
2137
|
POPN(INSN_ATTR(popn));
|
|
2187
2138
|
SETUP_CANARY(leaf);
|
|
2188
2139
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
@@ -2195,13 +2146,12 @@ INSN_ENTRY(definemethod)
|
|
|
2195
2146
|
{
|
|
2196
2147
|
vm_define_method(ec, Qnil, id, (VALUE)iseq, FALSE);
|
|
2197
2148
|
}
|
|
2198
|
-
# line
|
|
2149
|
+
# line 2150 "vm.inc"
|
|
2199
2150
|
# undef NAME_OF_CURRENT_INSN
|
|
2200
2151
|
|
|
2201
2152
|
/* ### Instruction trailers. ### */
|
|
2202
2153
|
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
2203
2154
|
CHECK_CANARY(leaf, INSN_ATTR(bin));
|
|
2204
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
2205
2155
|
# undef INSN_ATTR
|
|
2206
2156
|
|
|
2207
2157
|
/* ### Leave the instruction. ### */
|
|
@@ -2219,11 +2169,11 @@ INSN_ENTRY(definesmethod)
|
|
|
2219
2169
|
ID id = (ID)GET_OPERAND(1);
|
|
2220
2170
|
ISEQ iseq = (ISEQ)GET_OPERAND(2);
|
|
2221
2171
|
# define INSN_ATTR(x) attr_ ## x ## _definesmethod(id, iseq)
|
|
2222
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
2172
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
2223
2173
|
VALUE obj = TOPN(0);
|
|
2224
2174
|
|
|
2225
2175
|
/* ### Instruction preambles. ### */
|
|
2226
|
-
|
|
2176
|
+
ADD_PC(INSN_ATTR(width));
|
|
2227
2177
|
POPN(INSN_ATTR(popn));
|
|
2228
2178
|
SETUP_CANARY(leaf);
|
|
2229
2179
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
@@ -2236,13 +2186,12 @@ INSN_ENTRY(definesmethod)
|
|
|
2236
2186
|
{
|
|
2237
2187
|
vm_define_method(ec, obj, id, (VALUE)iseq, TRUE);
|
|
2238
2188
|
}
|
|
2239
|
-
# line
|
|
2189
|
+
# line 2190 "vm.inc"
|
|
2240
2190
|
# undef NAME_OF_CURRENT_INSN
|
|
2241
2191
|
|
|
2242
2192
|
/* ### Instruction trailers. ### */
|
|
2243
2193
|
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
2244
2194
|
CHECK_CANARY(leaf, INSN_ATTR(bin));
|
|
2245
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
2246
2195
|
# undef INSN_ATTR
|
|
2247
2196
|
|
|
2248
2197
|
/* ### Leave the instruction. ### */
|
|
@@ -2260,11 +2209,11 @@ INSN_ENTRY(send)
|
|
|
2260
2209
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
2261
2210
|
ISEQ blockiseq = (ISEQ)GET_OPERAND(2);
|
|
2262
2211
|
# define INSN_ATTR(x) attr_ ## x ## _send(cd, blockiseq)
|
|
2263
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
2212
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
2264
2213
|
VALUE val;
|
|
2265
2214
|
|
|
2266
2215
|
/* ### Instruction preambles. ### */
|
|
2267
|
-
|
|
2216
|
+
ADD_PC(INSN_ATTR(width));
|
|
2268
2217
|
POPN(INSN_ATTR(popn));
|
|
2269
2218
|
SETUP_CANARY(leaf);
|
|
2270
2219
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
@@ -2284,14 +2233,13 @@ INSN_ENTRY(send)
|
|
|
2284
2233
|
NEXT_INSN();
|
|
2285
2234
|
}
|
|
2286
2235
|
}
|
|
2287
|
-
# line
|
|
2236
|
+
# line 2237 "vm.inc"
|
|
2288
2237
|
# undef NAME_OF_CURRENT_INSN
|
|
2289
2238
|
|
|
2290
2239
|
/* ### Instruction trailers. ### */
|
|
2291
2240
|
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
2292
2241
|
CHECK_CANARY(leaf, INSN_ATTR(bin));
|
|
2293
2242
|
PUSH(val);
|
|
2294
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
2295
2243
|
# undef INSN_ATTR
|
|
2296
2244
|
|
|
2297
2245
|
/* ### Leave the instruction. ### */
|
|
@@ -2308,11 +2256,11 @@ INSN_ENTRY(opt_send_without_block)
|
|
|
2308
2256
|
/* ### Declare and assign variables. ### */
|
|
2309
2257
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
2310
2258
|
# define INSN_ATTR(x) attr_ ## x ## _opt_send_without_block(cd)
|
|
2311
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
2259
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
2312
2260
|
VALUE val;
|
|
2313
2261
|
|
|
2314
2262
|
/* ### Instruction preambles. ### */
|
|
2315
|
-
|
|
2263
|
+
ADD_PC(INSN_ATTR(width));
|
|
2316
2264
|
POPN(INSN_ATTR(popn));
|
|
2317
2265
|
SETUP_CANARY(leaf);
|
|
2318
2266
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
@@ -2331,14 +2279,13 @@ INSN_ENTRY(opt_send_without_block)
|
|
|
2331
2279
|
NEXT_INSN();
|
|
2332
2280
|
}
|
|
2333
2281
|
}
|
|
2334
|
-
# line
|
|
2282
|
+
# line 2283 "vm.inc"
|
|
2335
2283
|
# undef NAME_OF_CURRENT_INSN
|
|
2336
2284
|
|
|
2337
2285
|
/* ### Instruction trailers. ### */
|
|
2338
2286
|
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
2339
2287
|
CHECK_CANARY(leaf, INSN_ATTR(bin));
|
|
2340
2288
|
PUSH(val);
|
|
2341
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
2342
2289
|
# undef INSN_ATTR
|
|
2343
2290
|
|
|
2344
2291
|
/* ### Leave the instruction. ### */
|
|
@@ -2355,12 +2302,12 @@ INSN_ENTRY(objtostring)
|
|
|
2355
2302
|
/* ### Declare and assign variables. ### */
|
|
2356
2303
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
2357
2304
|
# define INSN_ATTR(x) attr_ ## x ## _objtostring(cd)
|
|
2358
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
2305
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
2359
2306
|
VALUE recv = TOPN(0);
|
|
2360
2307
|
VALUE val;
|
|
2361
2308
|
|
|
2362
2309
|
/* ### Instruction preambles. ### */
|
|
2363
|
-
|
|
2310
|
+
ADD_PC(INSN_ATTR(width));
|
|
2364
2311
|
SETUP_CANARY(leaf);
|
|
2365
2312
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
2366
2313
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, cd);
|
|
@@ -2375,7 +2322,7 @@ INSN_ENTRY(objtostring)
|
|
|
2375
2322
|
CALL_SIMPLE_METHOD();
|
|
2376
2323
|
}
|
|
2377
2324
|
}
|
|
2378
|
-
# line
|
|
2325
|
+
# line 2326 "vm.inc"
|
|
2379
2326
|
# undef NAME_OF_CURRENT_INSN
|
|
2380
2327
|
|
|
2381
2328
|
/* ### Instruction trailers. ### */
|
|
@@ -2385,7 +2332,6 @@ INSN_ENTRY(objtostring)
|
|
|
2385
2332
|
TOPN(0) = val;
|
|
2386
2333
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
2387
2334
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
2388
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
2389
2335
|
# undef INSN_ATTR
|
|
2390
2336
|
|
|
2391
2337
|
/* ### Leave the instruction. ### */
|
|
@@ -2403,11 +2349,11 @@ INSN_ENTRY(opt_str_freeze)
|
|
|
2403
2349
|
VALUE str = (VALUE)GET_OPERAND(1);
|
|
2404
2350
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(2);
|
|
2405
2351
|
# define INSN_ATTR(x) attr_ ## x ## _opt_str_freeze(str, cd)
|
|
2406
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
2352
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
2407
2353
|
VALUE val;
|
|
2408
2354
|
|
|
2409
2355
|
/* ### Instruction preambles. ### */
|
|
2410
|
-
|
|
2356
|
+
ADD_PC(INSN_ATTR(width));
|
|
2411
2357
|
SETUP_CANARY(leaf);
|
|
2412
2358
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
2413
2359
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, str);
|
|
@@ -2424,7 +2370,7 @@ INSN_ENTRY(opt_str_freeze)
|
|
|
2424
2370
|
CALL_SIMPLE_METHOD();
|
|
2425
2371
|
}
|
|
2426
2372
|
}
|
|
2427
|
-
# line
|
|
2373
|
+
# line 2374 "vm.inc"
|
|
2428
2374
|
# undef NAME_OF_CURRENT_INSN
|
|
2429
2375
|
|
|
2430
2376
|
/* ### Instruction trailers. ### */
|
|
@@ -2434,7 +2380,6 @@ INSN_ENTRY(opt_str_freeze)
|
|
|
2434
2380
|
TOPN(0) = val;
|
|
2435
2381
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
2436
2382
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
2437
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
2438
2383
|
# undef INSN_ATTR
|
|
2439
2384
|
|
|
2440
2385
|
/* ### Leave the instruction. ### */
|
|
@@ -2451,12 +2396,12 @@ INSN_ENTRY(opt_nil_p)
|
|
|
2451
2396
|
/* ### Declare and assign variables. ### */
|
|
2452
2397
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
2453
2398
|
# define INSN_ATTR(x) attr_ ## x ## _opt_nil_p(cd)
|
|
2454
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
2399
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
2455
2400
|
VALUE recv = TOPN(0);
|
|
2456
2401
|
VALUE val;
|
|
2457
2402
|
|
|
2458
2403
|
/* ### Instruction preambles. ### */
|
|
2459
|
-
|
|
2404
|
+
ADD_PC(INSN_ATTR(width));
|
|
2460
2405
|
SETUP_CANARY(leaf);
|
|
2461
2406
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
2462
2407
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, cd);
|
|
@@ -2471,7 +2416,7 @@ INSN_ENTRY(opt_nil_p)
|
|
|
2471
2416
|
CALL_SIMPLE_METHOD();
|
|
2472
2417
|
}
|
|
2473
2418
|
}
|
|
2474
|
-
# line
|
|
2419
|
+
# line 2420 "vm.inc"
|
|
2475
2420
|
# undef NAME_OF_CURRENT_INSN
|
|
2476
2421
|
|
|
2477
2422
|
/* ### Instruction trailers. ### */
|
|
@@ -2481,7 +2426,6 @@ INSN_ENTRY(opt_nil_p)
|
|
|
2481
2426
|
TOPN(0) = val;
|
|
2482
2427
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
2483
2428
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
2484
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
2485
2429
|
# undef INSN_ATTR
|
|
2486
2430
|
|
|
2487
2431
|
/* ### Leave the instruction. ### */
|
|
@@ -2499,11 +2443,11 @@ INSN_ENTRY(opt_str_uminus)
|
|
|
2499
2443
|
VALUE str = (VALUE)GET_OPERAND(1);
|
|
2500
2444
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(2);
|
|
2501
2445
|
# define INSN_ATTR(x) attr_ ## x ## _opt_str_uminus(str, cd)
|
|
2502
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
2446
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
2503
2447
|
VALUE val;
|
|
2504
2448
|
|
|
2505
2449
|
/* ### Instruction preambles. ### */
|
|
2506
|
-
|
|
2450
|
+
ADD_PC(INSN_ATTR(width));
|
|
2507
2451
|
SETUP_CANARY(leaf);
|
|
2508
2452
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
2509
2453
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, str);
|
|
@@ -2520,7 +2464,7 @@ INSN_ENTRY(opt_str_uminus)
|
|
|
2520
2464
|
CALL_SIMPLE_METHOD();
|
|
2521
2465
|
}
|
|
2522
2466
|
}
|
|
2523
|
-
# line
|
|
2467
|
+
# line 2468 "vm.inc"
|
|
2524
2468
|
# undef NAME_OF_CURRENT_INSN
|
|
2525
2469
|
|
|
2526
2470
|
/* ### Instruction trailers. ### */
|
|
@@ -2530,7 +2474,6 @@ INSN_ENTRY(opt_str_uminus)
|
|
|
2530
2474
|
TOPN(0) = val;
|
|
2531
2475
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
2532
2476
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
2533
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
2534
2477
|
# undef INSN_ATTR
|
|
2535
2478
|
|
|
2536
2479
|
/* ### Leave the instruction. ### */
|
|
@@ -2548,11 +2491,11 @@ INSN_ENTRY(opt_newarray_send)
|
|
|
2548
2491
|
rb_num_t num = (rb_num_t)GET_OPERAND(1);
|
|
2549
2492
|
ID method = (ID)GET_OPERAND(2);
|
|
2550
2493
|
# define INSN_ATTR(x) attr_ ## x ## _opt_newarray_send(num, method)
|
|
2551
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
2494
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
2552
2495
|
VALUE val;
|
|
2553
2496
|
|
|
2554
2497
|
/* ### Instruction preambles. ### */
|
|
2555
|
-
|
|
2498
|
+
ADD_PC(INSN_ATTR(width));
|
|
2556
2499
|
SETUP_CANARY(leaf);
|
|
2557
2500
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
2558
2501
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, num);
|
|
@@ -2576,7 +2519,7 @@ INSN_ENTRY(opt_newarray_send)
|
|
|
2576
2519
|
rb_bug("unreachable");
|
|
2577
2520
|
}
|
|
2578
2521
|
}
|
|
2579
|
-
# line
|
|
2522
|
+
# line 2523 "vm.inc"
|
|
2580
2523
|
# undef NAME_OF_CURRENT_INSN
|
|
2581
2524
|
|
|
2582
2525
|
/* ### Instruction trailers. ### */
|
|
@@ -2586,7 +2529,6 @@ INSN_ENTRY(opt_newarray_send)
|
|
|
2586
2529
|
TOPN(0) = val;
|
|
2587
2530
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
2588
2531
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
2589
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
2590
2532
|
# undef INSN_ATTR
|
|
2591
2533
|
|
|
2592
2534
|
/* ### Leave the instruction. ### */
|
|
@@ -2604,11 +2546,11 @@ INSN_ENTRY(invokesuper)
|
|
|
2604
2546
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
2605
2547
|
ISEQ blockiseq = (ISEQ)GET_OPERAND(2);
|
|
2606
2548
|
# define INSN_ATTR(x) attr_ ## x ## _invokesuper(cd, blockiseq)
|
|
2607
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
2549
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
2608
2550
|
VALUE val;
|
|
2609
2551
|
|
|
2610
2552
|
/* ### Instruction preambles. ### */
|
|
2611
|
-
|
|
2553
|
+
ADD_PC(INSN_ATTR(width));
|
|
2612
2554
|
POPN(INSN_ATTR(popn));
|
|
2613
2555
|
SETUP_CANARY(leaf);
|
|
2614
2556
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
@@ -2628,14 +2570,13 @@ INSN_ENTRY(invokesuper)
|
|
|
2628
2570
|
NEXT_INSN();
|
|
2629
2571
|
}
|
|
2630
2572
|
}
|
|
2631
|
-
# line
|
|
2573
|
+
# line 2574 "vm.inc"
|
|
2632
2574
|
# undef NAME_OF_CURRENT_INSN
|
|
2633
2575
|
|
|
2634
2576
|
/* ### Instruction trailers. ### */
|
|
2635
2577
|
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
2636
2578
|
CHECK_CANARY(leaf, INSN_ATTR(bin));
|
|
2637
2579
|
PUSH(val);
|
|
2638
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
2639
2580
|
# undef INSN_ATTR
|
|
2640
2581
|
|
|
2641
2582
|
/* ### Leave the instruction. ### */
|
|
@@ -2652,11 +2593,11 @@ INSN_ENTRY(invokeblock)
|
|
|
2652
2593
|
/* ### Declare and assign variables. ### */
|
|
2653
2594
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
2654
2595
|
# define INSN_ATTR(x) attr_ ## x ## _invokeblock(cd)
|
|
2655
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
2596
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
2656
2597
|
VALUE val;
|
|
2657
2598
|
|
|
2658
2599
|
/* ### Instruction preambles. ### */
|
|
2659
|
-
|
|
2600
|
+
ADD_PC(INSN_ATTR(width));
|
|
2660
2601
|
POPN(INSN_ATTR(popn));
|
|
2661
2602
|
SETUP_CANARY(leaf);
|
|
2662
2603
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
@@ -2675,14 +2616,13 @@ INSN_ENTRY(invokeblock)
|
|
|
2675
2616
|
NEXT_INSN();
|
|
2676
2617
|
}
|
|
2677
2618
|
}
|
|
2678
|
-
# line
|
|
2619
|
+
# line 2620 "vm.inc"
|
|
2679
2620
|
# undef NAME_OF_CURRENT_INSN
|
|
2680
2621
|
|
|
2681
2622
|
/* ### Instruction trailers. ### */
|
|
2682
2623
|
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
2683
2624
|
CHECK_CANARY(leaf, INSN_ATTR(bin));
|
|
2684
2625
|
PUSH(val);
|
|
2685
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
2686
2626
|
# undef INSN_ATTR
|
|
2687
2627
|
|
|
2688
2628
|
/* ### Leave the instruction. ### */
|
|
@@ -2698,11 +2638,11 @@ INSN_ENTRY(leave)
|
|
|
2698
2638
|
|
|
2699
2639
|
/* ### Declare and assign variables. ### */
|
|
2700
2640
|
# define INSN_ATTR(x) attr_ ## x ## _leave()
|
|
2701
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
2641
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
2702
2642
|
VALUE val = TOPN(0);
|
|
2703
2643
|
|
|
2704
2644
|
/* ### Instruction preambles. ### */
|
|
2705
|
-
|
|
2645
|
+
ADD_PC(INSN_ATTR(width));
|
|
2706
2646
|
POPN(INSN_ATTR(popn));
|
|
2707
2647
|
SETUP_CANARY(leaf);
|
|
2708
2648
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
@@ -2730,14 +2670,13 @@ INSN_ENTRY(leave)
|
|
|
2730
2670
|
RESTORE_REGS();
|
|
2731
2671
|
}
|
|
2732
2672
|
}
|
|
2733
|
-
# line
|
|
2673
|
+
# line 2674 "vm.inc"
|
|
2734
2674
|
# undef NAME_OF_CURRENT_INSN
|
|
2735
2675
|
|
|
2736
2676
|
/* ### Instruction trailers. ### */
|
|
2737
2677
|
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
2738
2678
|
CHECK_CANARY(leaf, INSN_ATTR(bin));
|
|
2739
2679
|
PUSH(val);
|
|
2740
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
2741
2680
|
# undef INSN_ATTR
|
|
2742
2681
|
|
|
2743
2682
|
/* ### Leave the instruction. ### */
|
|
@@ -2754,12 +2693,12 @@ INSN_ENTRY(throw)
|
|
|
2754
2693
|
/* ### Declare and assign variables. ### */
|
|
2755
2694
|
rb_num_t throw_state = (rb_num_t)GET_OPERAND(1);
|
|
2756
2695
|
# define INSN_ATTR(x) attr_ ## x ## _throw(throw_state)
|
|
2757
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
2696
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
2758
2697
|
VALUE throwobj = TOPN(0);
|
|
2759
2698
|
VALUE val;
|
|
2760
2699
|
|
|
2761
2700
|
/* ### Instruction preambles. ### */
|
|
2762
|
-
|
|
2701
|
+
ADD_PC(INSN_ATTR(width));
|
|
2763
2702
|
SETUP_CANARY(leaf);
|
|
2764
2703
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
2765
2704
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, throw_state);
|
|
@@ -2772,7 +2711,7 @@ INSN_ENTRY(throw)
|
|
|
2772
2711
|
THROW_EXCEPTION(val);
|
|
2773
2712
|
/* unreachable */
|
|
2774
2713
|
}
|
|
2775
|
-
# line
|
|
2714
|
+
# line 2715 "vm.inc"
|
|
2776
2715
|
# undef NAME_OF_CURRENT_INSN
|
|
2777
2716
|
|
|
2778
2717
|
/* ### Instruction trailers. ### */
|
|
@@ -2782,7 +2721,6 @@ INSN_ENTRY(throw)
|
|
|
2782
2721
|
TOPN(0) = val;
|
|
2783
2722
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
2784
2723
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
2785
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
2786
2724
|
# undef INSN_ATTR
|
|
2787
2725
|
|
|
2788
2726
|
/* ### Leave the instruction. ### */
|
|
@@ -2799,10 +2737,10 @@ INSN_ENTRY(jump)
|
|
|
2799
2737
|
/* ### Declare and assign variables. ### */
|
|
2800
2738
|
OFFSET dst = (OFFSET)GET_OPERAND(1);
|
|
2801
2739
|
# define INSN_ATTR(x) attr_ ## x ## _jump(dst)
|
|
2802
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
2740
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
2803
2741
|
|
|
2804
2742
|
/* ### Instruction preambles. ### */
|
|
2805
|
-
|
|
2743
|
+
ADD_PC(INSN_ATTR(width));
|
|
2806
2744
|
SETUP_CANARY(leaf);
|
|
2807
2745
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
2808
2746
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, dst);
|
|
@@ -2814,14 +2752,13 @@ INSN_ENTRY(jump)
|
|
|
2814
2752
|
RUBY_VM_CHECK_INTS(ec);
|
|
2815
2753
|
JUMP(dst);
|
|
2816
2754
|
}
|
|
2817
|
-
# line
|
|
2755
|
+
# line 2756 "vm.inc"
|
|
2818
2756
|
# undef NAME_OF_CURRENT_INSN
|
|
2819
2757
|
|
|
2820
2758
|
/* ### Instruction trailers. ### */
|
|
2821
2759
|
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
2822
2760
|
CHECK_CANARY(leaf, INSN_ATTR(bin));
|
|
2823
2761
|
INC_SP(INSN_ATTR(sp_inc));
|
|
2824
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
2825
2762
|
# undef INSN_ATTR
|
|
2826
2763
|
|
|
2827
2764
|
/* ### Leave the instruction. ### */
|
|
@@ -2838,11 +2775,11 @@ INSN_ENTRY(branchif)
|
|
|
2838
2775
|
/* ### Declare and assign variables. ### */
|
|
2839
2776
|
OFFSET dst = (OFFSET)GET_OPERAND(1);
|
|
2840
2777
|
# define INSN_ATTR(x) attr_ ## x ## _branchif(dst)
|
|
2841
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
2778
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
2842
2779
|
VALUE val = TOPN(0);
|
|
2843
2780
|
|
|
2844
2781
|
/* ### Instruction preambles. ### */
|
|
2845
|
-
|
|
2782
|
+
ADD_PC(INSN_ATTR(width));
|
|
2846
2783
|
SETUP_CANARY(leaf);
|
|
2847
2784
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
2848
2785
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, dst);
|
|
@@ -2856,14 +2793,13 @@ INSN_ENTRY(branchif)
|
|
|
2856
2793
|
JUMP(dst);
|
|
2857
2794
|
}
|
|
2858
2795
|
}
|
|
2859
|
-
# line
|
|
2796
|
+
# line 2797 "vm.inc"
|
|
2860
2797
|
# undef NAME_OF_CURRENT_INSN
|
|
2861
2798
|
|
|
2862
2799
|
/* ### Instruction trailers. ### */
|
|
2863
2800
|
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
2864
2801
|
CHECK_CANARY(leaf, INSN_ATTR(bin));
|
|
2865
2802
|
INC_SP(INSN_ATTR(sp_inc));
|
|
2866
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
2867
2803
|
# undef INSN_ATTR
|
|
2868
2804
|
|
|
2869
2805
|
/* ### Leave the instruction. ### */
|
|
@@ -2880,11 +2816,11 @@ INSN_ENTRY(branchunless)
|
|
|
2880
2816
|
/* ### Declare and assign variables. ### */
|
|
2881
2817
|
OFFSET dst = (OFFSET)GET_OPERAND(1);
|
|
2882
2818
|
# define INSN_ATTR(x) attr_ ## x ## _branchunless(dst)
|
|
2883
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
2819
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
2884
2820
|
VALUE val = TOPN(0);
|
|
2885
2821
|
|
|
2886
2822
|
/* ### Instruction preambles. ### */
|
|
2887
|
-
|
|
2823
|
+
ADD_PC(INSN_ATTR(width));
|
|
2888
2824
|
SETUP_CANARY(leaf);
|
|
2889
2825
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
2890
2826
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, dst);
|
|
@@ -2898,14 +2834,13 @@ INSN_ENTRY(branchunless)
|
|
|
2898
2834
|
JUMP(dst);
|
|
2899
2835
|
}
|
|
2900
2836
|
}
|
|
2901
|
-
# line
|
|
2837
|
+
# line 2838 "vm.inc"
|
|
2902
2838
|
# undef NAME_OF_CURRENT_INSN
|
|
2903
2839
|
|
|
2904
2840
|
/* ### Instruction trailers. ### */
|
|
2905
2841
|
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
2906
2842
|
CHECK_CANARY(leaf, INSN_ATTR(bin));
|
|
2907
2843
|
INC_SP(INSN_ATTR(sp_inc));
|
|
2908
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
2909
2844
|
# undef INSN_ATTR
|
|
2910
2845
|
|
|
2911
2846
|
/* ### Leave the instruction. ### */
|
|
@@ -2922,11 +2857,11 @@ INSN_ENTRY(branchnil)
|
|
|
2922
2857
|
/* ### Declare and assign variables. ### */
|
|
2923
2858
|
OFFSET dst = (OFFSET)GET_OPERAND(1);
|
|
2924
2859
|
# define INSN_ATTR(x) attr_ ## x ## _branchnil(dst)
|
|
2925
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
2860
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
2926
2861
|
VALUE val = TOPN(0);
|
|
2927
2862
|
|
|
2928
2863
|
/* ### Instruction preambles. ### */
|
|
2929
|
-
|
|
2864
|
+
ADD_PC(INSN_ATTR(width));
|
|
2930
2865
|
SETUP_CANARY(leaf);
|
|
2931
2866
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
2932
2867
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, dst);
|
|
@@ -2940,14 +2875,13 @@ INSN_ENTRY(branchnil)
|
|
|
2940
2875
|
JUMP(dst);
|
|
2941
2876
|
}
|
|
2942
2877
|
}
|
|
2943
|
-
# line
|
|
2878
|
+
# line 2879 "vm.inc"
|
|
2944
2879
|
# undef NAME_OF_CURRENT_INSN
|
|
2945
2880
|
|
|
2946
2881
|
/* ### Instruction trailers. ### */
|
|
2947
2882
|
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
2948
2883
|
CHECK_CANARY(leaf, INSN_ATTR(bin));
|
|
2949
2884
|
INC_SP(INSN_ATTR(sp_inc));
|
|
2950
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
2951
2885
|
# undef INSN_ATTR
|
|
2952
2886
|
|
|
2953
2887
|
/* ### Leave the instruction. ### */
|
|
@@ -2965,11 +2899,11 @@ INSN_ENTRY(once)
|
|
|
2965
2899
|
ISEQ iseq = (ISEQ)GET_OPERAND(1);
|
|
2966
2900
|
ISE ise = (ISE)GET_OPERAND(2);
|
|
2967
2901
|
# define INSN_ATTR(x) attr_ ## x ## _once(iseq, ise)
|
|
2968
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
2902
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
2969
2903
|
VALUE val;
|
|
2970
2904
|
|
|
2971
2905
|
/* ### Instruction preambles. ### */
|
|
2972
|
-
|
|
2906
|
+
ADD_PC(INSN_ATTR(width));
|
|
2973
2907
|
POPN(INSN_ATTR(popn));
|
|
2974
2908
|
SETUP_CANARY(leaf);
|
|
2975
2909
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
@@ -2982,14 +2916,13 @@ INSN_ENTRY(once)
|
|
|
2982
2916
|
{
|
|
2983
2917
|
val = vm_once_dispatch(ec, iseq, ise);
|
|
2984
2918
|
}
|
|
2985
|
-
# line
|
|
2919
|
+
# line 2920 "vm.inc"
|
|
2986
2920
|
# undef NAME_OF_CURRENT_INSN
|
|
2987
2921
|
|
|
2988
2922
|
/* ### Instruction trailers. ### */
|
|
2989
2923
|
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
2990
2924
|
CHECK_CANARY(leaf, INSN_ATTR(bin));
|
|
2991
2925
|
PUSH(val);
|
|
2992
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
2993
2926
|
# undef INSN_ATTR
|
|
2994
2927
|
|
|
2995
2928
|
/* ### Leave the instruction. ### */
|
|
@@ -3007,11 +2940,11 @@ INSN_ENTRY(opt_case_dispatch)
|
|
|
3007
2940
|
CDHASH hash = (CDHASH)GET_OPERAND(1);
|
|
3008
2941
|
OFFSET else_offset = (OFFSET)GET_OPERAND(2);
|
|
3009
2942
|
# define INSN_ATTR(x) attr_ ## x ## _opt_case_dispatch(hash, else_offset)
|
|
3010
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
2943
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
3011
2944
|
VALUE key = TOPN(0);
|
|
3012
2945
|
|
|
3013
2946
|
/* ### Instruction preambles. ### */
|
|
3014
|
-
|
|
2947
|
+
ADD_PC(INSN_ATTR(width));
|
|
3015
2948
|
SETUP_CANARY(leaf);
|
|
3016
2949
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
3017
2950
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, hash);
|
|
@@ -3027,14 +2960,13 @@ INSN_ENTRY(opt_case_dispatch)
|
|
|
3027
2960
|
JUMP(dst);
|
|
3028
2961
|
}
|
|
3029
2962
|
}
|
|
3030
|
-
# line
|
|
2963
|
+
# line 2964 "vm.inc"
|
|
3031
2964
|
# undef NAME_OF_CURRENT_INSN
|
|
3032
2965
|
|
|
3033
2966
|
/* ### Instruction trailers. ### */
|
|
3034
2967
|
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
3035
2968
|
CHECK_CANARY(leaf, INSN_ATTR(bin));
|
|
3036
2969
|
INC_SP(INSN_ATTR(sp_inc));
|
|
3037
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
3038
2970
|
# undef INSN_ATTR
|
|
3039
2971
|
|
|
3040
2972
|
/* ### Leave the instruction. ### */
|
|
@@ -3051,13 +2983,13 @@ INSN_ENTRY(opt_plus)
|
|
|
3051
2983
|
/* ### Declare and assign variables. ### */
|
|
3052
2984
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3053
2985
|
# define INSN_ATTR(x) attr_ ## x ## _opt_plus(cd)
|
|
3054
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
2986
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
3055
2987
|
VALUE recv = TOPN(1);
|
|
3056
2988
|
VALUE obj = TOPN(0);
|
|
3057
2989
|
VALUE val;
|
|
3058
2990
|
|
|
3059
2991
|
/* ### Instruction preambles. ### */
|
|
3060
|
-
|
|
2992
|
+
ADD_PC(INSN_ATTR(width));
|
|
3061
2993
|
SETUP_CANARY(leaf);
|
|
3062
2994
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
3063
2995
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, cd);
|
|
@@ -3072,7 +3004,7 @@ INSN_ENTRY(opt_plus)
|
|
|
3072
3004
|
CALL_SIMPLE_METHOD();
|
|
3073
3005
|
}
|
|
3074
3006
|
}
|
|
3075
|
-
# line
|
|
3007
|
+
# line 3008 "vm.inc"
|
|
3076
3008
|
# undef NAME_OF_CURRENT_INSN
|
|
3077
3009
|
|
|
3078
3010
|
/* ### Instruction trailers. ### */
|
|
@@ -3082,7 +3014,6 @@ INSN_ENTRY(opt_plus)
|
|
|
3082
3014
|
TOPN(0) = val;
|
|
3083
3015
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
3084
3016
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
3085
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
3086
3017
|
# undef INSN_ATTR
|
|
3087
3018
|
|
|
3088
3019
|
/* ### Leave the instruction. ### */
|
|
@@ -3099,13 +3030,13 @@ INSN_ENTRY(opt_minus)
|
|
|
3099
3030
|
/* ### Declare and assign variables. ### */
|
|
3100
3031
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3101
3032
|
# define INSN_ATTR(x) attr_ ## x ## _opt_minus(cd)
|
|
3102
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
3033
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
3103
3034
|
VALUE recv = TOPN(1);
|
|
3104
3035
|
VALUE obj = TOPN(0);
|
|
3105
3036
|
VALUE val;
|
|
3106
3037
|
|
|
3107
3038
|
/* ### Instruction preambles. ### */
|
|
3108
|
-
|
|
3039
|
+
ADD_PC(INSN_ATTR(width));
|
|
3109
3040
|
SETUP_CANARY(leaf);
|
|
3110
3041
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
3111
3042
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, cd);
|
|
@@ -3120,7 +3051,7 @@ INSN_ENTRY(opt_minus)
|
|
|
3120
3051
|
CALL_SIMPLE_METHOD();
|
|
3121
3052
|
}
|
|
3122
3053
|
}
|
|
3123
|
-
# line
|
|
3054
|
+
# line 3055 "vm.inc"
|
|
3124
3055
|
# undef NAME_OF_CURRENT_INSN
|
|
3125
3056
|
|
|
3126
3057
|
/* ### Instruction trailers. ### */
|
|
@@ -3130,7 +3061,6 @@ INSN_ENTRY(opt_minus)
|
|
|
3130
3061
|
TOPN(0) = val;
|
|
3131
3062
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
3132
3063
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
3133
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
3134
3064
|
# undef INSN_ATTR
|
|
3135
3065
|
|
|
3136
3066
|
/* ### Leave the instruction. ### */
|
|
@@ -3147,13 +3077,13 @@ INSN_ENTRY(opt_mult)
|
|
|
3147
3077
|
/* ### Declare and assign variables. ### */
|
|
3148
3078
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3149
3079
|
# define INSN_ATTR(x) attr_ ## x ## _opt_mult(cd)
|
|
3150
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
3080
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
3151
3081
|
VALUE recv = TOPN(1);
|
|
3152
3082
|
VALUE obj = TOPN(0);
|
|
3153
3083
|
VALUE val;
|
|
3154
3084
|
|
|
3155
3085
|
/* ### Instruction preambles. ### */
|
|
3156
|
-
|
|
3086
|
+
ADD_PC(INSN_ATTR(width));
|
|
3157
3087
|
SETUP_CANARY(leaf);
|
|
3158
3088
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
3159
3089
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, cd);
|
|
@@ -3168,7 +3098,7 @@ INSN_ENTRY(opt_mult)
|
|
|
3168
3098
|
CALL_SIMPLE_METHOD();
|
|
3169
3099
|
}
|
|
3170
3100
|
}
|
|
3171
|
-
# line
|
|
3101
|
+
# line 3102 "vm.inc"
|
|
3172
3102
|
# undef NAME_OF_CURRENT_INSN
|
|
3173
3103
|
|
|
3174
3104
|
/* ### Instruction trailers. ### */
|
|
@@ -3178,7 +3108,6 @@ INSN_ENTRY(opt_mult)
|
|
|
3178
3108
|
TOPN(0) = val;
|
|
3179
3109
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
3180
3110
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
3181
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
3182
3111
|
# undef INSN_ATTR
|
|
3183
3112
|
|
|
3184
3113
|
/* ### Leave the instruction. ### */
|
|
@@ -3195,13 +3124,13 @@ INSN_ENTRY(opt_div)
|
|
|
3195
3124
|
/* ### Declare and assign variables. ### */
|
|
3196
3125
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3197
3126
|
# define INSN_ATTR(x) attr_ ## x ## _opt_div(cd)
|
|
3198
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
3127
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
3199
3128
|
VALUE recv = TOPN(1);
|
|
3200
3129
|
VALUE obj = TOPN(0);
|
|
3201
3130
|
VALUE val;
|
|
3202
3131
|
|
|
3203
3132
|
/* ### Instruction preambles. ### */
|
|
3204
|
-
|
|
3133
|
+
ADD_PC(INSN_ATTR(width));
|
|
3205
3134
|
SETUP_CANARY(leaf);
|
|
3206
3135
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
3207
3136
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, cd);
|
|
@@ -3216,7 +3145,7 @@ INSN_ENTRY(opt_div)
|
|
|
3216
3145
|
CALL_SIMPLE_METHOD();
|
|
3217
3146
|
}
|
|
3218
3147
|
}
|
|
3219
|
-
# line
|
|
3148
|
+
# line 3149 "vm.inc"
|
|
3220
3149
|
# undef NAME_OF_CURRENT_INSN
|
|
3221
3150
|
|
|
3222
3151
|
/* ### Instruction trailers. ### */
|
|
@@ -3226,7 +3155,6 @@ INSN_ENTRY(opt_div)
|
|
|
3226
3155
|
TOPN(0) = val;
|
|
3227
3156
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
3228
3157
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
3229
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
3230
3158
|
# undef INSN_ATTR
|
|
3231
3159
|
|
|
3232
3160
|
/* ### Leave the instruction. ### */
|
|
@@ -3243,13 +3171,13 @@ INSN_ENTRY(opt_mod)
|
|
|
3243
3171
|
/* ### Declare and assign variables. ### */
|
|
3244
3172
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3245
3173
|
# define INSN_ATTR(x) attr_ ## x ## _opt_mod(cd)
|
|
3246
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
3174
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
3247
3175
|
VALUE recv = TOPN(1);
|
|
3248
3176
|
VALUE obj = TOPN(0);
|
|
3249
3177
|
VALUE val;
|
|
3250
3178
|
|
|
3251
3179
|
/* ### Instruction preambles. ### */
|
|
3252
|
-
|
|
3180
|
+
ADD_PC(INSN_ATTR(width));
|
|
3253
3181
|
SETUP_CANARY(leaf);
|
|
3254
3182
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
3255
3183
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, cd);
|
|
@@ -3264,7 +3192,7 @@ INSN_ENTRY(opt_mod)
|
|
|
3264
3192
|
CALL_SIMPLE_METHOD();
|
|
3265
3193
|
}
|
|
3266
3194
|
}
|
|
3267
|
-
# line
|
|
3195
|
+
# line 3196 "vm.inc"
|
|
3268
3196
|
# undef NAME_OF_CURRENT_INSN
|
|
3269
3197
|
|
|
3270
3198
|
/* ### Instruction trailers. ### */
|
|
@@ -3274,7 +3202,6 @@ INSN_ENTRY(opt_mod)
|
|
|
3274
3202
|
TOPN(0) = val;
|
|
3275
3203
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
3276
3204
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
3277
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
3278
3205
|
# undef INSN_ATTR
|
|
3279
3206
|
|
|
3280
3207
|
/* ### Leave the instruction. ### */
|
|
@@ -3291,13 +3218,13 @@ INSN_ENTRY(opt_eq)
|
|
|
3291
3218
|
/* ### Declare and assign variables. ### */
|
|
3292
3219
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3293
3220
|
# define INSN_ATTR(x) attr_ ## x ## _opt_eq(cd)
|
|
3294
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
3221
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
3295
3222
|
VALUE recv = TOPN(1);
|
|
3296
3223
|
VALUE obj = TOPN(0);
|
|
3297
3224
|
VALUE val;
|
|
3298
3225
|
|
|
3299
3226
|
/* ### Instruction preambles. ### */
|
|
3300
|
-
|
|
3227
|
+
ADD_PC(INSN_ATTR(width));
|
|
3301
3228
|
SETUP_CANARY(leaf);
|
|
3302
3229
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
3303
3230
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, cd);
|
|
@@ -3312,7 +3239,7 @@ INSN_ENTRY(opt_eq)
|
|
|
3312
3239
|
CALL_SIMPLE_METHOD();
|
|
3313
3240
|
}
|
|
3314
3241
|
}
|
|
3315
|
-
# line
|
|
3242
|
+
# line 3243 "vm.inc"
|
|
3316
3243
|
# undef NAME_OF_CURRENT_INSN
|
|
3317
3244
|
|
|
3318
3245
|
/* ### Instruction trailers. ### */
|
|
@@ -3322,7 +3249,6 @@ INSN_ENTRY(opt_eq)
|
|
|
3322
3249
|
TOPN(0) = val;
|
|
3323
3250
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
3324
3251
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
3325
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
3326
3252
|
# undef INSN_ATTR
|
|
3327
3253
|
|
|
3328
3254
|
/* ### Leave the instruction. ### */
|
|
@@ -3340,13 +3266,13 @@ INSN_ENTRY(opt_neq)
|
|
|
3340
3266
|
CALL_DATA cd_eq = (CALL_DATA)GET_OPERAND(1);
|
|
3341
3267
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(2);
|
|
3342
3268
|
# define INSN_ATTR(x) attr_ ## x ## _opt_neq(cd_eq, cd)
|
|
3343
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
3269
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
3344
3270
|
VALUE recv = TOPN(1);
|
|
3345
3271
|
VALUE obj = TOPN(0);
|
|
3346
3272
|
VALUE val;
|
|
3347
3273
|
|
|
3348
3274
|
/* ### Instruction preambles. ### */
|
|
3349
|
-
|
|
3275
|
+
ADD_PC(INSN_ATTR(width));
|
|
3350
3276
|
SETUP_CANARY(leaf);
|
|
3351
3277
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
3352
3278
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, cd_eq);
|
|
@@ -3362,7 +3288,7 @@ INSN_ENTRY(opt_neq)
|
|
|
3362
3288
|
CALL_SIMPLE_METHOD();
|
|
3363
3289
|
}
|
|
3364
3290
|
}
|
|
3365
|
-
# line
|
|
3291
|
+
# line 3292 "vm.inc"
|
|
3366
3292
|
# undef NAME_OF_CURRENT_INSN
|
|
3367
3293
|
|
|
3368
3294
|
/* ### Instruction trailers. ### */
|
|
@@ -3372,7 +3298,6 @@ INSN_ENTRY(opt_neq)
|
|
|
3372
3298
|
TOPN(0) = val;
|
|
3373
3299
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
3374
3300
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
3375
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
3376
3301
|
# undef INSN_ATTR
|
|
3377
3302
|
|
|
3378
3303
|
/* ### Leave the instruction. ### */
|
|
@@ -3389,13 +3314,13 @@ INSN_ENTRY(opt_lt)
|
|
|
3389
3314
|
/* ### Declare and assign variables. ### */
|
|
3390
3315
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3391
3316
|
# define INSN_ATTR(x) attr_ ## x ## _opt_lt(cd)
|
|
3392
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
3317
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
3393
3318
|
VALUE recv = TOPN(1);
|
|
3394
3319
|
VALUE obj = TOPN(0);
|
|
3395
3320
|
VALUE val;
|
|
3396
3321
|
|
|
3397
3322
|
/* ### Instruction preambles. ### */
|
|
3398
|
-
|
|
3323
|
+
ADD_PC(INSN_ATTR(width));
|
|
3399
3324
|
SETUP_CANARY(leaf);
|
|
3400
3325
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
3401
3326
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, cd);
|
|
@@ -3410,7 +3335,7 @@ INSN_ENTRY(opt_lt)
|
|
|
3410
3335
|
CALL_SIMPLE_METHOD();
|
|
3411
3336
|
}
|
|
3412
3337
|
}
|
|
3413
|
-
# line
|
|
3338
|
+
# line 3339 "vm.inc"
|
|
3414
3339
|
# undef NAME_OF_CURRENT_INSN
|
|
3415
3340
|
|
|
3416
3341
|
/* ### Instruction trailers. ### */
|
|
@@ -3420,7 +3345,6 @@ INSN_ENTRY(opt_lt)
|
|
|
3420
3345
|
TOPN(0) = val;
|
|
3421
3346
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
3422
3347
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
3423
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
3424
3348
|
# undef INSN_ATTR
|
|
3425
3349
|
|
|
3426
3350
|
/* ### Leave the instruction. ### */
|
|
@@ -3437,13 +3361,13 @@ INSN_ENTRY(opt_le)
|
|
|
3437
3361
|
/* ### Declare and assign variables. ### */
|
|
3438
3362
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3439
3363
|
# define INSN_ATTR(x) attr_ ## x ## _opt_le(cd)
|
|
3440
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
3364
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
3441
3365
|
VALUE recv = TOPN(1);
|
|
3442
3366
|
VALUE obj = TOPN(0);
|
|
3443
3367
|
VALUE val;
|
|
3444
3368
|
|
|
3445
3369
|
/* ### Instruction preambles. ### */
|
|
3446
|
-
|
|
3370
|
+
ADD_PC(INSN_ATTR(width));
|
|
3447
3371
|
SETUP_CANARY(leaf);
|
|
3448
3372
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
3449
3373
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, cd);
|
|
@@ -3458,7 +3382,7 @@ INSN_ENTRY(opt_le)
|
|
|
3458
3382
|
CALL_SIMPLE_METHOD();
|
|
3459
3383
|
}
|
|
3460
3384
|
}
|
|
3461
|
-
# line
|
|
3385
|
+
# line 3386 "vm.inc"
|
|
3462
3386
|
# undef NAME_OF_CURRENT_INSN
|
|
3463
3387
|
|
|
3464
3388
|
/* ### Instruction trailers. ### */
|
|
@@ -3468,7 +3392,6 @@ INSN_ENTRY(opt_le)
|
|
|
3468
3392
|
TOPN(0) = val;
|
|
3469
3393
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
3470
3394
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
3471
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
3472
3395
|
# undef INSN_ATTR
|
|
3473
3396
|
|
|
3474
3397
|
/* ### Leave the instruction. ### */
|
|
@@ -3485,13 +3408,13 @@ INSN_ENTRY(opt_gt)
|
|
|
3485
3408
|
/* ### Declare and assign variables. ### */
|
|
3486
3409
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3487
3410
|
# define INSN_ATTR(x) attr_ ## x ## _opt_gt(cd)
|
|
3488
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
3411
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
3489
3412
|
VALUE recv = TOPN(1);
|
|
3490
3413
|
VALUE obj = TOPN(0);
|
|
3491
3414
|
VALUE val;
|
|
3492
3415
|
|
|
3493
3416
|
/* ### Instruction preambles. ### */
|
|
3494
|
-
|
|
3417
|
+
ADD_PC(INSN_ATTR(width));
|
|
3495
3418
|
SETUP_CANARY(leaf);
|
|
3496
3419
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
3497
3420
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, cd);
|
|
@@ -3506,7 +3429,7 @@ INSN_ENTRY(opt_gt)
|
|
|
3506
3429
|
CALL_SIMPLE_METHOD();
|
|
3507
3430
|
}
|
|
3508
3431
|
}
|
|
3509
|
-
# line
|
|
3432
|
+
# line 3433 "vm.inc"
|
|
3510
3433
|
# undef NAME_OF_CURRENT_INSN
|
|
3511
3434
|
|
|
3512
3435
|
/* ### Instruction trailers. ### */
|
|
@@ -3516,7 +3439,6 @@ INSN_ENTRY(opt_gt)
|
|
|
3516
3439
|
TOPN(0) = val;
|
|
3517
3440
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
3518
3441
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
3519
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
3520
3442
|
# undef INSN_ATTR
|
|
3521
3443
|
|
|
3522
3444
|
/* ### Leave the instruction. ### */
|
|
@@ -3533,13 +3455,13 @@ INSN_ENTRY(opt_ge)
|
|
|
3533
3455
|
/* ### Declare and assign variables. ### */
|
|
3534
3456
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3535
3457
|
# define INSN_ATTR(x) attr_ ## x ## _opt_ge(cd)
|
|
3536
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
3458
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
3537
3459
|
VALUE recv = TOPN(1);
|
|
3538
3460
|
VALUE obj = TOPN(0);
|
|
3539
3461
|
VALUE val;
|
|
3540
3462
|
|
|
3541
3463
|
/* ### Instruction preambles. ### */
|
|
3542
|
-
|
|
3464
|
+
ADD_PC(INSN_ATTR(width));
|
|
3543
3465
|
SETUP_CANARY(leaf);
|
|
3544
3466
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
3545
3467
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, cd);
|
|
@@ -3554,7 +3476,7 @@ INSN_ENTRY(opt_ge)
|
|
|
3554
3476
|
CALL_SIMPLE_METHOD();
|
|
3555
3477
|
}
|
|
3556
3478
|
}
|
|
3557
|
-
# line
|
|
3479
|
+
# line 3480 "vm.inc"
|
|
3558
3480
|
# undef NAME_OF_CURRENT_INSN
|
|
3559
3481
|
|
|
3560
3482
|
/* ### Instruction trailers. ### */
|
|
@@ -3564,7 +3486,6 @@ INSN_ENTRY(opt_ge)
|
|
|
3564
3486
|
TOPN(0) = val;
|
|
3565
3487
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
3566
3488
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
3567
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
3568
3489
|
# undef INSN_ATTR
|
|
3569
3490
|
|
|
3570
3491
|
/* ### Leave the instruction. ### */
|
|
@@ -3581,13 +3502,13 @@ INSN_ENTRY(opt_ltlt)
|
|
|
3581
3502
|
/* ### Declare and assign variables. ### */
|
|
3582
3503
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3583
3504
|
# define INSN_ATTR(x) attr_ ## x ## _opt_ltlt(cd)
|
|
3584
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
3505
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
3585
3506
|
VALUE recv = TOPN(1);
|
|
3586
3507
|
VALUE obj = TOPN(0);
|
|
3587
3508
|
VALUE val;
|
|
3588
3509
|
|
|
3589
3510
|
/* ### Instruction preambles. ### */
|
|
3590
|
-
|
|
3511
|
+
ADD_PC(INSN_ATTR(width));
|
|
3591
3512
|
SETUP_CANARY(leaf);
|
|
3592
3513
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
3593
3514
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, cd);
|
|
@@ -3602,7 +3523,7 @@ INSN_ENTRY(opt_ltlt)
|
|
|
3602
3523
|
CALL_SIMPLE_METHOD();
|
|
3603
3524
|
}
|
|
3604
3525
|
}
|
|
3605
|
-
# line
|
|
3526
|
+
# line 3527 "vm.inc"
|
|
3606
3527
|
# undef NAME_OF_CURRENT_INSN
|
|
3607
3528
|
|
|
3608
3529
|
/* ### Instruction trailers. ### */
|
|
@@ -3612,7 +3533,6 @@ INSN_ENTRY(opt_ltlt)
|
|
|
3612
3533
|
TOPN(0) = val;
|
|
3613
3534
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
3614
3535
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
3615
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
3616
3536
|
# undef INSN_ATTR
|
|
3617
3537
|
|
|
3618
3538
|
/* ### Leave the instruction. ### */
|
|
@@ -3629,13 +3549,13 @@ INSN_ENTRY(opt_and)
|
|
|
3629
3549
|
/* ### Declare and assign variables. ### */
|
|
3630
3550
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3631
3551
|
# define INSN_ATTR(x) attr_ ## x ## _opt_and(cd)
|
|
3632
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
3552
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
3633
3553
|
VALUE recv = TOPN(1);
|
|
3634
3554
|
VALUE obj = TOPN(0);
|
|
3635
3555
|
VALUE val;
|
|
3636
3556
|
|
|
3637
3557
|
/* ### Instruction preambles. ### */
|
|
3638
|
-
|
|
3558
|
+
ADD_PC(INSN_ATTR(width));
|
|
3639
3559
|
SETUP_CANARY(leaf);
|
|
3640
3560
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
3641
3561
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, cd);
|
|
@@ -3650,7 +3570,7 @@ INSN_ENTRY(opt_and)
|
|
|
3650
3570
|
CALL_SIMPLE_METHOD();
|
|
3651
3571
|
}
|
|
3652
3572
|
}
|
|
3653
|
-
# line
|
|
3573
|
+
# line 3574 "vm.inc"
|
|
3654
3574
|
# undef NAME_OF_CURRENT_INSN
|
|
3655
3575
|
|
|
3656
3576
|
/* ### Instruction trailers. ### */
|
|
@@ -3660,7 +3580,6 @@ INSN_ENTRY(opt_and)
|
|
|
3660
3580
|
TOPN(0) = val;
|
|
3661
3581
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
3662
3582
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
3663
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
3664
3583
|
# undef INSN_ATTR
|
|
3665
3584
|
|
|
3666
3585
|
/* ### Leave the instruction. ### */
|
|
@@ -3677,13 +3596,13 @@ INSN_ENTRY(opt_or)
|
|
|
3677
3596
|
/* ### Declare and assign variables. ### */
|
|
3678
3597
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3679
3598
|
# define INSN_ATTR(x) attr_ ## x ## _opt_or(cd)
|
|
3680
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
3599
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
3681
3600
|
VALUE recv = TOPN(1);
|
|
3682
3601
|
VALUE obj = TOPN(0);
|
|
3683
3602
|
VALUE val;
|
|
3684
3603
|
|
|
3685
3604
|
/* ### Instruction preambles. ### */
|
|
3686
|
-
|
|
3605
|
+
ADD_PC(INSN_ATTR(width));
|
|
3687
3606
|
SETUP_CANARY(leaf);
|
|
3688
3607
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
3689
3608
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, cd);
|
|
@@ -3698,7 +3617,7 @@ INSN_ENTRY(opt_or)
|
|
|
3698
3617
|
CALL_SIMPLE_METHOD();
|
|
3699
3618
|
}
|
|
3700
3619
|
}
|
|
3701
|
-
# line
|
|
3620
|
+
# line 3621 "vm.inc"
|
|
3702
3621
|
# undef NAME_OF_CURRENT_INSN
|
|
3703
3622
|
|
|
3704
3623
|
/* ### Instruction trailers. ### */
|
|
@@ -3708,7 +3627,6 @@ INSN_ENTRY(opt_or)
|
|
|
3708
3627
|
TOPN(0) = val;
|
|
3709
3628
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
3710
3629
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
3711
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
3712
3630
|
# undef INSN_ATTR
|
|
3713
3631
|
|
|
3714
3632
|
/* ### Leave the instruction. ### */
|
|
@@ -3725,13 +3643,13 @@ INSN_ENTRY(opt_aref)
|
|
|
3725
3643
|
/* ### Declare and assign variables. ### */
|
|
3726
3644
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3727
3645
|
# define INSN_ATTR(x) attr_ ## x ## _opt_aref(cd)
|
|
3728
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
3646
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
3729
3647
|
VALUE recv = TOPN(1);
|
|
3730
3648
|
VALUE obj = TOPN(0);
|
|
3731
3649
|
VALUE val;
|
|
3732
3650
|
|
|
3733
3651
|
/* ### Instruction preambles. ### */
|
|
3734
|
-
|
|
3652
|
+
ADD_PC(INSN_ATTR(width));
|
|
3735
3653
|
SETUP_CANARY(leaf);
|
|
3736
3654
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
3737
3655
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, cd);
|
|
@@ -3746,7 +3664,7 @@ INSN_ENTRY(opt_aref)
|
|
|
3746
3664
|
CALL_SIMPLE_METHOD();
|
|
3747
3665
|
}
|
|
3748
3666
|
}
|
|
3749
|
-
# line
|
|
3667
|
+
# line 3668 "vm.inc"
|
|
3750
3668
|
# undef NAME_OF_CURRENT_INSN
|
|
3751
3669
|
|
|
3752
3670
|
/* ### Instruction trailers. ### */
|
|
@@ -3756,7 +3674,6 @@ INSN_ENTRY(opt_aref)
|
|
|
3756
3674
|
TOPN(0) = val;
|
|
3757
3675
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
3758
3676
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
3759
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
3760
3677
|
# undef INSN_ATTR
|
|
3761
3678
|
|
|
3762
3679
|
/* ### Leave the instruction. ### */
|
|
@@ -3773,14 +3690,14 @@ INSN_ENTRY(opt_aset)
|
|
|
3773
3690
|
/* ### Declare and assign variables. ### */
|
|
3774
3691
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3775
3692
|
# define INSN_ATTR(x) attr_ ## x ## _opt_aset(cd)
|
|
3776
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
3693
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
3777
3694
|
VALUE recv = TOPN(2);
|
|
3778
3695
|
VALUE obj = TOPN(1);
|
|
3779
3696
|
VALUE set = TOPN(0);
|
|
3780
3697
|
VALUE val;
|
|
3781
3698
|
|
|
3782
3699
|
/* ### Instruction preambles. ### */
|
|
3783
|
-
|
|
3700
|
+
ADD_PC(INSN_ATTR(width));
|
|
3784
3701
|
SETUP_CANARY(leaf);
|
|
3785
3702
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
3786
3703
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, cd);
|
|
@@ -3795,7 +3712,7 @@ INSN_ENTRY(opt_aset)
|
|
|
3795
3712
|
CALL_SIMPLE_METHOD();
|
|
3796
3713
|
}
|
|
3797
3714
|
}
|
|
3798
|
-
# line
|
|
3715
|
+
# line 3716 "vm.inc"
|
|
3799
3716
|
# undef NAME_OF_CURRENT_INSN
|
|
3800
3717
|
|
|
3801
3718
|
/* ### Instruction trailers. ### */
|
|
@@ -3805,7 +3722,6 @@ INSN_ENTRY(opt_aset)
|
|
|
3805
3722
|
TOPN(0) = val;
|
|
3806
3723
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
3807
3724
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
3808
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
3809
3725
|
# undef INSN_ATTR
|
|
3810
3726
|
|
|
3811
3727
|
/* ### Leave the instruction. ### */
|
|
@@ -3823,12 +3739,12 @@ INSN_ENTRY(opt_aset_with)
|
|
|
3823
3739
|
VALUE key = (VALUE)GET_OPERAND(1);
|
|
3824
3740
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(2);
|
|
3825
3741
|
# define INSN_ATTR(x) attr_ ## x ## _opt_aset_with(key, cd)
|
|
3826
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
3742
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
3827
3743
|
VALUE recv = TOPN(1);
|
|
3828
3744
|
VALUE val = TOPN(0);
|
|
3829
3745
|
|
|
3830
3746
|
/* ### Instruction preambles. ### */
|
|
3831
|
-
|
|
3747
|
+
ADD_PC(INSN_ATTR(width));
|
|
3832
3748
|
SETUP_CANARY(leaf);
|
|
3833
3749
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
3834
3750
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, key);
|
|
@@ -3849,7 +3765,7 @@ INSN_ENTRY(opt_aset_with)
|
|
|
3849
3765
|
CALL_SIMPLE_METHOD();
|
|
3850
3766
|
}
|
|
3851
3767
|
}
|
|
3852
|
-
# line
|
|
3768
|
+
# line 3769 "vm.inc"
|
|
3853
3769
|
# undef NAME_OF_CURRENT_INSN
|
|
3854
3770
|
|
|
3855
3771
|
/* ### Instruction trailers. ### */
|
|
@@ -3859,7 +3775,6 @@ INSN_ENTRY(opt_aset_with)
|
|
|
3859
3775
|
TOPN(0) = val;
|
|
3860
3776
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
3861
3777
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
3862
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
3863
3778
|
# undef INSN_ATTR
|
|
3864
3779
|
|
|
3865
3780
|
/* ### Leave the instruction. ### */
|
|
@@ -3877,12 +3792,12 @@ INSN_ENTRY(opt_aref_with)
|
|
|
3877
3792
|
VALUE key = (VALUE)GET_OPERAND(1);
|
|
3878
3793
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(2);
|
|
3879
3794
|
# define INSN_ATTR(x) attr_ ## x ## _opt_aref_with(key, cd)
|
|
3880
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
3795
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
3881
3796
|
VALUE recv = TOPN(0);
|
|
3882
3797
|
VALUE val;
|
|
3883
3798
|
|
|
3884
3799
|
/* ### Instruction preambles. ### */
|
|
3885
|
-
|
|
3800
|
+
ADD_PC(INSN_ATTR(width));
|
|
3886
3801
|
SETUP_CANARY(leaf);
|
|
3887
3802
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
3888
3803
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, key);
|
|
@@ -3899,7 +3814,7 @@ INSN_ENTRY(opt_aref_with)
|
|
|
3899
3814
|
CALL_SIMPLE_METHOD();
|
|
3900
3815
|
}
|
|
3901
3816
|
}
|
|
3902
|
-
# line
|
|
3817
|
+
# line 3818 "vm.inc"
|
|
3903
3818
|
# undef NAME_OF_CURRENT_INSN
|
|
3904
3819
|
|
|
3905
3820
|
/* ### Instruction trailers. ### */
|
|
@@ -3909,7 +3824,6 @@ INSN_ENTRY(opt_aref_with)
|
|
|
3909
3824
|
TOPN(0) = val;
|
|
3910
3825
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
3911
3826
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
3912
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
3913
3827
|
# undef INSN_ATTR
|
|
3914
3828
|
|
|
3915
3829
|
/* ### Leave the instruction. ### */
|
|
@@ -3926,12 +3840,12 @@ INSN_ENTRY(opt_length)
|
|
|
3926
3840
|
/* ### Declare and assign variables. ### */
|
|
3927
3841
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3928
3842
|
# define INSN_ATTR(x) attr_ ## x ## _opt_length(cd)
|
|
3929
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
3843
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
3930
3844
|
VALUE recv = TOPN(0);
|
|
3931
3845
|
VALUE val;
|
|
3932
3846
|
|
|
3933
3847
|
/* ### Instruction preambles. ### */
|
|
3934
|
-
|
|
3848
|
+
ADD_PC(INSN_ATTR(width));
|
|
3935
3849
|
SETUP_CANARY(leaf);
|
|
3936
3850
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
3937
3851
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, cd);
|
|
@@ -3946,7 +3860,7 @@ INSN_ENTRY(opt_length)
|
|
|
3946
3860
|
CALL_SIMPLE_METHOD();
|
|
3947
3861
|
}
|
|
3948
3862
|
}
|
|
3949
|
-
# line
|
|
3863
|
+
# line 3864 "vm.inc"
|
|
3950
3864
|
# undef NAME_OF_CURRENT_INSN
|
|
3951
3865
|
|
|
3952
3866
|
/* ### Instruction trailers. ### */
|
|
@@ -3956,7 +3870,6 @@ INSN_ENTRY(opt_length)
|
|
|
3956
3870
|
TOPN(0) = val;
|
|
3957
3871
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
3958
3872
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
3959
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
3960
3873
|
# undef INSN_ATTR
|
|
3961
3874
|
|
|
3962
3875
|
/* ### Leave the instruction. ### */
|
|
@@ -3973,12 +3886,12 @@ INSN_ENTRY(opt_size)
|
|
|
3973
3886
|
/* ### Declare and assign variables. ### */
|
|
3974
3887
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
3975
3888
|
# define INSN_ATTR(x) attr_ ## x ## _opt_size(cd)
|
|
3976
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
3889
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
3977
3890
|
VALUE recv = TOPN(0);
|
|
3978
3891
|
VALUE val;
|
|
3979
3892
|
|
|
3980
3893
|
/* ### Instruction preambles. ### */
|
|
3981
|
-
|
|
3894
|
+
ADD_PC(INSN_ATTR(width));
|
|
3982
3895
|
SETUP_CANARY(leaf);
|
|
3983
3896
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
3984
3897
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, cd);
|
|
@@ -3993,7 +3906,7 @@ INSN_ENTRY(opt_size)
|
|
|
3993
3906
|
CALL_SIMPLE_METHOD();
|
|
3994
3907
|
}
|
|
3995
3908
|
}
|
|
3996
|
-
# line
|
|
3909
|
+
# line 3910 "vm.inc"
|
|
3997
3910
|
# undef NAME_OF_CURRENT_INSN
|
|
3998
3911
|
|
|
3999
3912
|
/* ### Instruction trailers. ### */
|
|
@@ -4003,7 +3916,6 @@ INSN_ENTRY(opt_size)
|
|
|
4003
3916
|
TOPN(0) = val;
|
|
4004
3917
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
4005
3918
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
4006
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
4007
3919
|
# undef INSN_ATTR
|
|
4008
3920
|
|
|
4009
3921
|
/* ### Leave the instruction. ### */
|
|
@@ -4020,12 +3932,12 @@ INSN_ENTRY(opt_empty_p)
|
|
|
4020
3932
|
/* ### Declare and assign variables. ### */
|
|
4021
3933
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
4022
3934
|
# define INSN_ATTR(x) attr_ ## x ## _opt_empty_p(cd)
|
|
4023
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
3935
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
4024
3936
|
VALUE recv = TOPN(0);
|
|
4025
3937
|
VALUE val;
|
|
4026
3938
|
|
|
4027
3939
|
/* ### Instruction preambles. ### */
|
|
4028
|
-
|
|
3940
|
+
ADD_PC(INSN_ATTR(width));
|
|
4029
3941
|
SETUP_CANARY(leaf);
|
|
4030
3942
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
4031
3943
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, cd);
|
|
@@ -4040,7 +3952,7 @@ INSN_ENTRY(opt_empty_p)
|
|
|
4040
3952
|
CALL_SIMPLE_METHOD();
|
|
4041
3953
|
}
|
|
4042
3954
|
}
|
|
4043
|
-
# line
|
|
3955
|
+
# line 3956 "vm.inc"
|
|
4044
3956
|
# undef NAME_OF_CURRENT_INSN
|
|
4045
3957
|
|
|
4046
3958
|
/* ### Instruction trailers. ### */
|
|
@@ -4050,7 +3962,6 @@ INSN_ENTRY(opt_empty_p)
|
|
|
4050
3962
|
TOPN(0) = val;
|
|
4051
3963
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
4052
3964
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
4053
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
4054
3965
|
# undef INSN_ATTR
|
|
4055
3966
|
|
|
4056
3967
|
/* ### Leave the instruction. ### */
|
|
@@ -4067,12 +3978,12 @@ INSN_ENTRY(opt_succ)
|
|
|
4067
3978
|
/* ### Declare and assign variables. ### */
|
|
4068
3979
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
4069
3980
|
# define INSN_ATTR(x) attr_ ## x ## _opt_succ(cd)
|
|
4070
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
3981
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
4071
3982
|
VALUE recv = TOPN(0);
|
|
4072
3983
|
VALUE val;
|
|
4073
3984
|
|
|
4074
3985
|
/* ### Instruction preambles. ### */
|
|
4075
|
-
|
|
3986
|
+
ADD_PC(INSN_ATTR(width));
|
|
4076
3987
|
SETUP_CANARY(leaf);
|
|
4077
3988
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
4078
3989
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, cd);
|
|
@@ -4087,7 +3998,7 @@ INSN_ENTRY(opt_succ)
|
|
|
4087
3998
|
CALL_SIMPLE_METHOD();
|
|
4088
3999
|
}
|
|
4089
4000
|
}
|
|
4090
|
-
# line
|
|
4001
|
+
# line 4002 "vm.inc"
|
|
4091
4002
|
# undef NAME_OF_CURRENT_INSN
|
|
4092
4003
|
|
|
4093
4004
|
/* ### Instruction trailers. ### */
|
|
@@ -4097,7 +4008,6 @@ INSN_ENTRY(opt_succ)
|
|
|
4097
4008
|
TOPN(0) = val;
|
|
4098
4009
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
4099
4010
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
4100
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
4101
4011
|
# undef INSN_ATTR
|
|
4102
4012
|
|
|
4103
4013
|
/* ### Leave the instruction. ### */
|
|
@@ -4114,12 +4024,12 @@ INSN_ENTRY(opt_not)
|
|
|
4114
4024
|
/* ### Declare and assign variables. ### */
|
|
4115
4025
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
4116
4026
|
# define INSN_ATTR(x) attr_ ## x ## _opt_not(cd)
|
|
4117
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
4027
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
4118
4028
|
VALUE recv = TOPN(0);
|
|
4119
4029
|
VALUE val;
|
|
4120
4030
|
|
|
4121
4031
|
/* ### Instruction preambles. ### */
|
|
4122
|
-
|
|
4032
|
+
ADD_PC(INSN_ATTR(width));
|
|
4123
4033
|
SETUP_CANARY(leaf);
|
|
4124
4034
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
4125
4035
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, cd);
|
|
@@ -4134,7 +4044,7 @@ INSN_ENTRY(opt_not)
|
|
|
4134
4044
|
CALL_SIMPLE_METHOD();
|
|
4135
4045
|
}
|
|
4136
4046
|
}
|
|
4137
|
-
# line
|
|
4047
|
+
# line 4048 "vm.inc"
|
|
4138
4048
|
# undef NAME_OF_CURRENT_INSN
|
|
4139
4049
|
|
|
4140
4050
|
/* ### Instruction trailers. ### */
|
|
@@ -4144,7 +4054,6 @@ INSN_ENTRY(opt_not)
|
|
|
4144
4054
|
TOPN(0) = val;
|
|
4145
4055
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
4146
4056
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
4147
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
4148
4057
|
# undef INSN_ATTR
|
|
4149
4058
|
|
|
4150
4059
|
/* ### Leave the instruction. ### */
|
|
@@ -4161,13 +4070,13 @@ INSN_ENTRY(opt_regexpmatch2)
|
|
|
4161
4070
|
/* ### Declare and assign variables. ### */
|
|
4162
4071
|
CALL_DATA cd = (CALL_DATA)GET_OPERAND(1);
|
|
4163
4072
|
# define INSN_ATTR(x) attr_ ## x ## _opt_regexpmatch2(cd)
|
|
4164
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
4073
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
4165
4074
|
VALUE obj2 = TOPN(1);
|
|
4166
4075
|
VALUE obj1 = TOPN(0);
|
|
4167
4076
|
VALUE val;
|
|
4168
4077
|
|
|
4169
4078
|
/* ### Instruction preambles. ### */
|
|
4170
|
-
|
|
4079
|
+
ADD_PC(INSN_ATTR(width));
|
|
4171
4080
|
SETUP_CANARY(leaf);
|
|
4172
4081
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
4173
4082
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, cd);
|
|
@@ -4182,7 +4091,7 @@ INSN_ENTRY(opt_regexpmatch2)
|
|
|
4182
4091
|
CALL_SIMPLE_METHOD();
|
|
4183
4092
|
}
|
|
4184
4093
|
}
|
|
4185
|
-
# line
|
|
4094
|
+
# line 4095 "vm.inc"
|
|
4186
4095
|
# undef NAME_OF_CURRENT_INSN
|
|
4187
4096
|
|
|
4188
4097
|
/* ### Instruction trailers. ### */
|
|
@@ -4192,7 +4101,6 @@ INSN_ENTRY(opt_regexpmatch2)
|
|
|
4192
4101
|
TOPN(0) = val;
|
|
4193
4102
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
4194
4103
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
4195
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
4196
4104
|
# undef INSN_ATTR
|
|
4197
4105
|
|
|
4198
4106
|
/* ### Leave the instruction. ### */
|
|
@@ -4209,11 +4117,11 @@ INSN_ENTRY(invokebuiltin)
|
|
|
4209
4117
|
/* ### Declare and assign variables. ### */
|
|
4210
4118
|
RB_BUILTIN bf = (RB_BUILTIN)GET_OPERAND(1);
|
|
4211
4119
|
# define INSN_ATTR(x) attr_ ## x ## _invokebuiltin(bf)
|
|
4212
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
4120
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
4213
4121
|
VALUE val;
|
|
4214
4122
|
|
|
4215
4123
|
/* ### Instruction preambles. ### */
|
|
4216
|
-
|
|
4124
|
+
ADD_PC(INSN_ATTR(width));
|
|
4217
4125
|
SETUP_CANARY(leaf);
|
|
4218
4126
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
4219
4127
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, bf);
|
|
@@ -4224,7 +4132,7 @@ INSN_ENTRY(invokebuiltin)
|
|
|
4224
4132
|
{
|
|
4225
4133
|
val = vm_invoke_builtin(ec, reg_cfp, bf, STACK_ADDR_FROM_TOP(bf->argc));
|
|
4226
4134
|
}
|
|
4227
|
-
# line
|
|
4135
|
+
# line 4136 "vm.inc"
|
|
4228
4136
|
# undef NAME_OF_CURRENT_INSN
|
|
4229
4137
|
|
|
4230
4138
|
/* ### Instruction trailers. ### */
|
|
@@ -4234,7 +4142,6 @@ INSN_ENTRY(invokebuiltin)
|
|
|
4234
4142
|
TOPN(0) = val;
|
|
4235
4143
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
4236
4144
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
4237
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
4238
4145
|
# undef INSN_ATTR
|
|
4239
4146
|
|
|
4240
4147
|
/* ### Leave the instruction. ### */
|
|
@@ -4252,11 +4159,11 @@ INSN_ENTRY(opt_invokebuiltin_delegate)
|
|
|
4252
4159
|
RB_BUILTIN bf = (RB_BUILTIN)GET_OPERAND(1);
|
|
4253
4160
|
rb_num_t index = (rb_num_t)GET_OPERAND(2);
|
|
4254
4161
|
# define INSN_ATTR(x) attr_ ## x ## _opt_invokebuiltin_delegate(bf, index)
|
|
4255
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
4162
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
4256
4163
|
VALUE val;
|
|
4257
4164
|
|
|
4258
4165
|
/* ### Instruction preambles. ### */
|
|
4259
|
-
|
|
4166
|
+
ADD_PC(INSN_ATTR(width));
|
|
4260
4167
|
SETUP_CANARY(leaf);
|
|
4261
4168
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
4262
4169
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, bf);
|
|
@@ -4268,7 +4175,7 @@ INSN_ENTRY(opt_invokebuiltin_delegate)
|
|
|
4268
4175
|
{
|
|
4269
4176
|
val = vm_invoke_builtin_delegate(ec, reg_cfp, bf, (unsigned int)index);
|
|
4270
4177
|
}
|
|
4271
|
-
# line
|
|
4178
|
+
# line 4179 "vm.inc"
|
|
4272
4179
|
# undef NAME_OF_CURRENT_INSN
|
|
4273
4180
|
|
|
4274
4181
|
/* ### Instruction trailers. ### */
|
|
@@ -4278,7 +4185,6 @@ INSN_ENTRY(opt_invokebuiltin_delegate)
|
|
|
4278
4185
|
TOPN(0) = val;
|
|
4279
4186
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
4280
4187
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
4281
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
4282
4188
|
# undef INSN_ATTR
|
|
4283
4189
|
|
|
4284
4190
|
/* ### Leave the instruction. ### */
|
|
@@ -4296,11 +4202,11 @@ INSN_ENTRY(opt_invokebuiltin_delegate_leave)
|
|
|
4296
4202
|
RB_BUILTIN bf = (RB_BUILTIN)GET_OPERAND(1);
|
|
4297
4203
|
rb_num_t index = (rb_num_t)GET_OPERAND(2);
|
|
4298
4204
|
# define INSN_ATTR(x) attr_ ## x ## _opt_invokebuiltin_delegate_leave(bf, index)
|
|
4299
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
4205
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
4300
4206
|
VALUE val;
|
|
4301
4207
|
|
|
4302
4208
|
/* ### Instruction preambles. ### */
|
|
4303
|
-
|
|
4209
|
+
ADD_PC(INSN_ATTR(width));
|
|
4304
4210
|
SETUP_CANARY(leaf);
|
|
4305
4211
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
4306
4212
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, bf);
|
|
@@ -4326,7 +4232,7 @@ INSN_ENTRY(opt_invokebuiltin_delegate_leave)
|
|
|
4326
4232
|
RESTORE_REGS();
|
|
4327
4233
|
}
|
|
4328
4234
|
}
|
|
4329
|
-
# line
|
|
4235
|
+
# line 4236 "vm.inc"
|
|
4330
4236
|
# undef NAME_OF_CURRENT_INSN
|
|
4331
4237
|
|
|
4332
4238
|
/* ### Instruction trailers. ### */
|
|
@@ -4336,7 +4242,6 @@ INSN_ENTRY(opt_invokebuiltin_delegate_leave)
|
|
|
4336
4242
|
TOPN(0) = val;
|
|
4337
4243
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
4338
4244
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
4339
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
4340
4245
|
# undef INSN_ATTR
|
|
4341
4246
|
|
|
4342
4247
|
/* ### Leave the instruction. ### */
|
|
@@ -4353,14 +4258,14 @@ INSN_ENTRY(getlocal_WC_0)
|
|
|
4353
4258
|
/* ### Declare and assign variables. ### */
|
|
4354
4259
|
#line 10 "defs/opt_operand.def"
|
|
4355
4260
|
const rb_num_t level = 0;
|
|
4356
|
-
#line
|
|
4261
|
+
#line 4262 "vm.inc"
|
|
4357
4262
|
lindex_t idx = (lindex_t)GET_OPERAND(1);
|
|
4358
4263
|
# define INSN_ATTR(x) attr_ ## x ## _getlocal_WC_0(idx)
|
|
4359
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
4264
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
4360
4265
|
VALUE val;
|
|
4361
4266
|
|
|
4362
4267
|
/* ### Instruction preambles. ### */
|
|
4363
|
-
|
|
4268
|
+
ADD_PC(INSN_ATTR(width));
|
|
4364
4269
|
SETUP_CANARY(leaf);
|
|
4365
4270
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
4366
4271
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, idx);
|
|
@@ -4373,7 +4278,7 @@ INSN_ENTRY(getlocal_WC_0)
|
|
|
4373
4278
|
RB_DEBUG_COUNTER_INC(lvar_get);
|
|
4374
4279
|
(void)RB_DEBUG_COUNTER_INC_IF(lvar_get_dynamic, level > 0);
|
|
4375
4280
|
}
|
|
4376
|
-
# line
|
|
4281
|
+
# line 4282 "vm.inc"
|
|
4377
4282
|
# undef NAME_OF_CURRENT_INSN
|
|
4378
4283
|
|
|
4379
4284
|
/* ### Instruction trailers. ### */
|
|
@@ -4383,7 +4288,6 @@ INSN_ENTRY(getlocal_WC_0)
|
|
|
4383
4288
|
TOPN(0) = val;
|
|
4384
4289
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
4385
4290
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
4386
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
4387
4291
|
# undef INSN_ATTR
|
|
4388
4292
|
|
|
4389
4293
|
/* ### Leave the instruction. ### */
|
|
@@ -4400,14 +4304,14 @@ INSN_ENTRY(getlocal_WC_1)
|
|
|
4400
4304
|
/* ### Declare and assign variables. ### */
|
|
4401
4305
|
#line 11 "defs/opt_operand.def"
|
|
4402
4306
|
const rb_num_t level = 1;
|
|
4403
|
-
#line
|
|
4307
|
+
#line 4308 "vm.inc"
|
|
4404
4308
|
lindex_t idx = (lindex_t)GET_OPERAND(1);
|
|
4405
4309
|
# define INSN_ATTR(x) attr_ ## x ## _getlocal_WC_1(idx)
|
|
4406
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
4310
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
4407
4311
|
VALUE val;
|
|
4408
4312
|
|
|
4409
4313
|
/* ### Instruction preambles. ### */
|
|
4410
|
-
|
|
4314
|
+
ADD_PC(INSN_ATTR(width));
|
|
4411
4315
|
SETUP_CANARY(leaf);
|
|
4412
4316
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
4413
4317
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, idx);
|
|
@@ -4420,7 +4324,7 @@ INSN_ENTRY(getlocal_WC_1)
|
|
|
4420
4324
|
RB_DEBUG_COUNTER_INC(lvar_get);
|
|
4421
4325
|
(void)RB_DEBUG_COUNTER_INC_IF(lvar_get_dynamic, level > 0);
|
|
4422
4326
|
}
|
|
4423
|
-
# line
|
|
4327
|
+
# line 4328 "vm.inc"
|
|
4424
4328
|
# undef NAME_OF_CURRENT_INSN
|
|
4425
4329
|
|
|
4426
4330
|
/* ### Instruction trailers. ### */
|
|
@@ -4430,7 +4334,6 @@ INSN_ENTRY(getlocal_WC_1)
|
|
|
4430
4334
|
TOPN(0) = val;
|
|
4431
4335
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
4432
4336
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
4433
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
4434
4337
|
# undef INSN_ATTR
|
|
4435
4338
|
|
|
4436
4339
|
/* ### Leave the instruction. ### */
|
|
@@ -4447,14 +4350,14 @@ INSN_ENTRY(setlocal_WC_0)
|
|
|
4447
4350
|
/* ### Declare and assign variables. ### */
|
|
4448
4351
|
#line 12 "defs/opt_operand.def"
|
|
4449
4352
|
const rb_num_t level = 0;
|
|
4450
|
-
#line
|
|
4353
|
+
#line 4354 "vm.inc"
|
|
4451
4354
|
lindex_t idx = (lindex_t)GET_OPERAND(1);
|
|
4452
4355
|
# define INSN_ATTR(x) attr_ ## x ## _setlocal_WC_0(idx)
|
|
4453
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
4356
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
4454
4357
|
VALUE val = TOPN(0);
|
|
4455
4358
|
|
|
4456
4359
|
/* ### Instruction preambles. ### */
|
|
4457
|
-
|
|
4360
|
+
ADD_PC(INSN_ATTR(width));
|
|
4458
4361
|
SETUP_CANARY(leaf);
|
|
4459
4362
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
4460
4363
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, idx);
|
|
@@ -4467,14 +4370,13 @@ INSN_ENTRY(setlocal_WC_0)
|
|
|
4467
4370
|
RB_DEBUG_COUNTER_INC(lvar_set);
|
|
4468
4371
|
(void)RB_DEBUG_COUNTER_INC_IF(lvar_set_dynamic, level > 0);
|
|
4469
4372
|
}
|
|
4470
|
-
# line
|
|
4373
|
+
# line 4374 "vm.inc"
|
|
4471
4374
|
# undef NAME_OF_CURRENT_INSN
|
|
4472
4375
|
|
|
4473
4376
|
/* ### Instruction trailers. ### */
|
|
4474
4377
|
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
4475
4378
|
CHECK_CANARY(leaf, INSN_ATTR(bin));
|
|
4476
4379
|
INC_SP(INSN_ATTR(sp_inc));
|
|
4477
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
4478
4380
|
# undef INSN_ATTR
|
|
4479
4381
|
|
|
4480
4382
|
/* ### Leave the instruction. ### */
|
|
@@ -4491,14 +4393,14 @@ INSN_ENTRY(setlocal_WC_1)
|
|
|
4491
4393
|
/* ### Declare and assign variables. ### */
|
|
4492
4394
|
#line 13 "defs/opt_operand.def"
|
|
4493
4395
|
const rb_num_t level = 1;
|
|
4494
|
-
#line
|
|
4396
|
+
#line 4397 "vm.inc"
|
|
4495
4397
|
lindex_t idx = (lindex_t)GET_OPERAND(1);
|
|
4496
4398
|
# define INSN_ATTR(x) attr_ ## x ## _setlocal_WC_1(idx)
|
|
4497
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
4399
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
4498
4400
|
VALUE val = TOPN(0);
|
|
4499
4401
|
|
|
4500
4402
|
/* ### Instruction preambles. ### */
|
|
4501
|
-
|
|
4403
|
+
ADD_PC(INSN_ATTR(width));
|
|
4502
4404
|
SETUP_CANARY(leaf);
|
|
4503
4405
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
4504
4406
|
COLLECT_USAGE_OPERAND(INSN_ATTR(bin), 0, idx);
|
|
@@ -4511,14 +4413,13 @@ INSN_ENTRY(setlocal_WC_1)
|
|
|
4511
4413
|
RB_DEBUG_COUNTER_INC(lvar_set);
|
|
4512
4414
|
(void)RB_DEBUG_COUNTER_INC_IF(lvar_set_dynamic, level > 0);
|
|
4513
4415
|
}
|
|
4514
|
-
# line
|
|
4416
|
+
# line 4417 "vm.inc"
|
|
4515
4417
|
# undef NAME_OF_CURRENT_INSN
|
|
4516
4418
|
|
|
4517
4419
|
/* ### Instruction trailers. ### */
|
|
4518
4420
|
CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
|
|
4519
4421
|
CHECK_CANARY(leaf, INSN_ATTR(bin));
|
|
4520
4422
|
INC_SP(INSN_ATTR(sp_inc));
|
|
4521
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
4522
4423
|
# undef INSN_ATTR
|
|
4523
4424
|
|
|
4524
4425
|
/* ### Leave the instruction. ### */
|
|
@@ -4535,12 +4436,12 @@ INSN_ENTRY(putobject_INT2FIX_0_)
|
|
|
4535
4436
|
/* ### Declare and assign variables. ### */
|
|
4536
4437
|
#line 15 "defs/opt_operand.def"
|
|
4537
4438
|
const VALUE val = INT2FIX(0);
|
|
4538
|
-
#line
|
|
4439
|
+
#line 4440 "vm.inc"
|
|
4539
4440
|
# define INSN_ATTR(x) attr_ ## x ## _putobject_INT2FIX_0_()
|
|
4540
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
4441
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
4541
4442
|
|
|
4542
4443
|
/* ### Instruction preambles. ### */
|
|
4543
|
-
|
|
4444
|
+
ADD_PC(INSN_ATTR(width));
|
|
4544
4445
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
4545
4446
|
|
|
4546
4447
|
/* ### Instruction trailers. ### */
|
|
@@ -4549,7 +4450,6 @@ INSN_ENTRY(putobject_INT2FIX_0_)
|
|
|
4549
4450
|
TOPN(0) = val;
|
|
4550
4451
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
4551
4452
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
4552
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
4553
4453
|
# undef INSN_ATTR
|
|
4554
4454
|
|
|
4555
4455
|
/* ### Leave the instruction. ### */
|
|
@@ -4566,12 +4466,12 @@ INSN_ENTRY(putobject_INT2FIX_1_)
|
|
|
4566
4466
|
/* ### Declare and assign variables. ### */
|
|
4567
4467
|
#line 16 "defs/opt_operand.def"
|
|
4568
4468
|
const VALUE val = INT2FIX(1);
|
|
4569
|
-
#line
|
|
4469
|
+
#line 4470 "vm.inc"
|
|
4570
4470
|
# define INSN_ATTR(x) attr_ ## x ## _putobject_INT2FIX_1_()
|
|
4571
|
-
const bool leaf = INSN_ATTR(leaf);
|
|
4471
|
+
const bool MAYBE_UNUSED(leaf) = INSN_ATTR(leaf);
|
|
4572
4472
|
|
|
4573
4473
|
/* ### Instruction preambles. ### */
|
|
4574
|
-
|
|
4474
|
+
ADD_PC(INSN_ATTR(width));
|
|
4575
4475
|
COLLECT_USAGE_INSN(INSN_ATTR(bin));
|
|
4576
4476
|
|
|
4577
4477
|
/* ### Instruction trailers. ### */
|
|
@@ -4580,7 +4480,6 @@ INSN_ENTRY(putobject_INT2FIX_1_)
|
|
|
4580
4480
|
TOPN(0) = val;
|
|
4581
4481
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_NONE));
|
|
4582
4482
|
VM_ASSERT(!RB_TYPE_P(TOPN(0), T_MOVED));
|
|
4583
|
-
if (leaf) ADD_PC(INSN_ATTR(width));
|
|
4584
4483
|
# undef INSN_ATTR
|
|
4585
4484
|
|
|
4586
4485
|
/* ### Leave the instruction. ### */
|