Coverage Report

Created: 2026-06-03 06:22

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/ruby/vm_call_iseq_optimized.inc
Line
Count
Source
1
/* -*- c -*- */
2
#if 1 /* enable or disable this optimization */
3
4
/* DO NOT EDIT THIS FILE DIRECTLY
5
 *
6
 * This file is generated by tool/generic_erb.rb
7
 * with template/call_iseq_optimized.inc.tmpl
8
 */
9
10
static VALUE
11
vm_call_iseq_setup_normal_0start_0params_0locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling)
12
0
{
13
0
    RB_DEBUG_COUNTER_INC(ccf_iseq_fix);
14
0
    return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 0, 0);
15
0
}
16
17
static VALUE
18
vm_call_iseq_setup_normal_0start_0params_1locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling)
19
0
{
20
0
    RB_DEBUG_COUNTER_INC(ccf_iseq_fix);
21
0
    return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 0, 1);
22
0
}
23
24
static VALUE
25
vm_call_iseq_setup_normal_0start_0params_2locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling)
26
0
{
27
0
    RB_DEBUG_COUNTER_INC(ccf_iseq_fix);
28
0
    return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 0, 2);
29
0
}
30
31
static VALUE
32
vm_call_iseq_setup_normal_0start_0params_3locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling)
33
0
{
34
0
    RB_DEBUG_COUNTER_INC(ccf_iseq_fix);
35
0
    return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 0, 3);
36
0
}
37
38
static VALUE
39
vm_call_iseq_setup_normal_0start_0params_4locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling)
40
0
{
41
0
    RB_DEBUG_COUNTER_INC(ccf_iseq_fix);
42
0
    return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 0, 4);
43
0
}
44
45
static VALUE
46
vm_call_iseq_setup_normal_0start_0params_5locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling)
47
0
{
48
0
    RB_DEBUG_COUNTER_INC(ccf_iseq_fix);
49
0
    return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 0, 5);
50
0
}
51
52
static VALUE
53
vm_call_iseq_setup_normal_0start_1params_0locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling)
54
0
{
55
0
    RB_DEBUG_COUNTER_INC(ccf_iseq_fix);
56
0
    return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 1, 0);
57
0
}
58
59
static VALUE
60
vm_call_iseq_setup_normal_0start_1params_1locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling)
61
0
{
62
0
    RB_DEBUG_COUNTER_INC(ccf_iseq_fix);
63
0
    return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 1, 1);
64
0
}
65
66
static VALUE
67
vm_call_iseq_setup_normal_0start_1params_2locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling)
68
0
{
69
0
    RB_DEBUG_COUNTER_INC(ccf_iseq_fix);
70
0
    return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 1, 2);
71
0
}
72
73
static VALUE
74
vm_call_iseq_setup_normal_0start_1params_3locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling)
75
0
{
76
0
    RB_DEBUG_COUNTER_INC(ccf_iseq_fix);
77
0
    return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 1, 3);
78
0
}
79
80
static VALUE
81
vm_call_iseq_setup_normal_0start_1params_4locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling)
82
0
{
83
0
    RB_DEBUG_COUNTER_INC(ccf_iseq_fix);
84
0
    return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 1, 4);
85
0
}
86
87
static VALUE
88
vm_call_iseq_setup_normal_0start_1params_5locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling)
89
0
{
90
0
    RB_DEBUG_COUNTER_INC(ccf_iseq_fix);
91
0
    return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 1, 5);
92
0
}
93
94
static VALUE
95
vm_call_iseq_setup_normal_0start_2params_0locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling)
96
0
{
97
0
    RB_DEBUG_COUNTER_INC(ccf_iseq_fix);
98
0
    return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 2, 0);
99
0
}
100
101
static VALUE
102
vm_call_iseq_setup_normal_0start_2params_1locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling)
103
0
{
104
0
    RB_DEBUG_COUNTER_INC(ccf_iseq_fix);
105
0
    return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 2, 1);
106
0
}
107
108
static VALUE
109
vm_call_iseq_setup_normal_0start_2params_2locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling)
110
0
{
111
0
    RB_DEBUG_COUNTER_INC(ccf_iseq_fix);
112
0
    return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 2, 2);
113
0
}
114
115
static VALUE
116
vm_call_iseq_setup_normal_0start_2params_3locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling)
117
0
{
118
0
    RB_DEBUG_COUNTER_INC(ccf_iseq_fix);
119
0
    return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 2, 3);
120
0
}
121
122
static VALUE
123
vm_call_iseq_setup_normal_0start_2params_4locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling)
124
0
{
125
0
    RB_DEBUG_COUNTER_INC(ccf_iseq_fix);
126
0
    return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 2, 4);
127
0
}
128
129
static VALUE
130
vm_call_iseq_setup_normal_0start_2params_5locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling)
131
0
{
132
0
    RB_DEBUG_COUNTER_INC(ccf_iseq_fix);
133
0
    return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 2, 5);
134
0
}
135
136
static VALUE
137
vm_call_iseq_setup_normal_0start_3params_0locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling)
138
0
{
139
0
    RB_DEBUG_COUNTER_INC(ccf_iseq_fix);
140
0
    return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 3, 0);
141
0
}
142
143
static VALUE
144
vm_call_iseq_setup_normal_0start_3params_1locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling)
145
0
{
146
0
    RB_DEBUG_COUNTER_INC(ccf_iseq_fix);
147
0
    return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 3, 1);
148
0
}
149
150
static VALUE
151
vm_call_iseq_setup_normal_0start_3params_2locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling)
152
0
{
153
0
    RB_DEBUG_COUNTER_INC(ccf_iseq_fix);
154
0
    return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 3, 2);
155
0
}
156
157
static VALUE
158
vm_call_iseq_setup_normal_0start_3params_3locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling)
159
0
{
160
0
    RB_DEBUG_COUNTER_INC(ccf_iseq_fix);
161
0
    return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 3, 3);
162
0
}
163
164
static VALUE
165
vm_call_iseq_setup_normal_0start_3params_4locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling)
166
0
{
167
0
    RB_DEBUG_COUNTER_INC(ccf_iseq_fix);
168
0
    return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 3, 4);
169
0
}
170
171
static VALUE
172
vm_call_iseq_setup_normal_0start_3params_5locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling)
173
0
{
174
0
    RB_DEBUG_COUNTER_INC(ccf_iseq_fix);
175
0
    return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 3, 5);
176
0
}
177
178
/* vm_call_iseq_handlers[param][local] */
179
static const vm_call_handler vm_call_iseq_handlers[][6] = {
180
    {
181
        vm_call_iseq_setup_normal_0start_0params_0locals,
182
        vm_call_iseq_setup_normal_0start_0params_1locals,
183
        vm_call_iseq_setup_normal_0start_0params_2locals,
184
        vm_call_iseq_setup_normal_0start_0params_3locals,
185
        vm_call_iseq_setup_normal_0start_0params_4locals,
186
        vm_call_iseq_setup_normal_0start_0params_5locals,
187
    },
188
    {
189
        vm_call_iseq_setup_normal_0start_1params_0locals,
190
        vm_call_iseq_setup_normal_0start_1params_1locals,
191
        vm_call_iseq_setup_normal_0start_1params_2locals,
192
        vm_call_iseq_setup_normal_0start_1params_3locals,
193
        vm_call_iseq_setup_normal_0start_1params_4locals,
194
        vm_call_iseq_setup_normal_0start_1params_5locals,
195
    },
196
    {
197
        vm_call_iseq_setup_normal_0start_2params_0locals,
198
        vm_call_iseq_setup_normal_0start_2params_1locals,
199
        vm_call_iseq_setup_normal_0start_2params_2locals,
200
        vm_call_iseq_setup_normal_0start_2params_3locals,
201
        vm_call_iseq_setup_normal_0start_2params_4locals,
202
        vm_call_iseq_setup_normal_0start_2params_5locals,
203
    },
204
    {
205
        vm_call_iseq_setup_normal_0start_3params_0locals,
206
        vm_call_iseq_setup_normal_0start_3params_1locals,
207
        vm_call_iseq_setup_normal_0start_3params_2locals,
208
        vm_call_iseq_setup_normal_0start_3params_3locals,
209
        vm_call_iseq_setup_normal_0start_3params_4locals,
210
        vm_call_iseq_setup_normal_0start_3params_5locals,
211
    },
212
};
213
214
static inline vm_call_handler
215
vm_call_iseq_setup_func(const struct rb_callinfo *ci, const int param_size, const int local_size)
216
0
{
217
0
    if (UNLIKELY(vm_ci_flag(ci) & VM_CALL_TAILCALL)) {
218
0
        return &vm_call_iseq_setup_tailcall_0start;
219
0
    }
220
0
    else if (0) { /* to disable optimize */
221
0
        return &vm_call_iseq_setup_normal_0start;
222
0
    }
223
0
    else if (param_size <= 3 && local_size <= 5) {
224
0
        VM_ASSERT(local_size >= 0);
225
0
        return vm_call_iseq_handlers[param_size][local_size];
226
0
    }
227
0
    else {
228
0
        return &vm_call_iseq_setup_normal_0start;
229
0
    }
230
0
}
231
232
#else
233
234
static inline vm_call_handler
235
vm_call_iseq_setup_func(const struct rb_callinfo *ci, const int param_size, const int local_size)
236
{
237
    if (UNLIKELY(vm_ci_flag(ci) & VM_CALL_TAILCALL)) {
238
        return &vm_call_iseq_setup_tailcall_0start;
239
    }
240
    else {
241
        return &vm_call_iseq_setup_normal_0start;
242
    }
243
}
244
#endif