Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
To generate what is necessary via generic_erb.rb instead.
- Loading branch information
Showing
3 changed files
with
70 additions
and
75 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
/* -*- c -*- */ | ||
% P = (0..3) | ||
% L = (0..5) | ||
% | ||
% def fname param, local | ||
% "vm_call_iseq_setup_normal_0start_#{param}params_#{local}locals" | ||
% end | ||
#if 1 /* enable or disable this optimization */ | ||
|
||
/* DO NOT EDIT THIS FILE DIRECTLY | ||
* | ||
* This file is generated by tool/generic_erb.rb | ||
* with template/call_iseq_optimized.inc.tmpl | ||
*/ | ||
|
||
% P.each{|param| | ||
% L.each{|local| | ||
static VALUE | ||
<%= fname(param, local) %>(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling, struct rb_call_data *cd) | ||
{ | ||
RB_DEBUG_COUNTER_INC(ccf_iseq_fix); | ||
return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(cd->cc), 0, <%= param %>, <%= local %>); | ||
} | ||
|
||
% } | ||
% } | ||
/* vm_call_iseq_handlers[param][local] */ | ||
static const vm_call_handler vm_call_iseq_handlers[][<%= L.to_a.size %>] = { | ||
% P.each{|param| | ||
{ | ||
% L.each{|local| | ||
<%= fname(param, local) %>, | ||
% } | ||
}, | ||
% } | ||
}; | ||
|
||
static inline vm_call_handler | ||
vm_call_iseq_setup_func(const struct rb_callinfo *ci, const int param_size, const int local_size) | ||
{ | ||
if (UNLIKELY(vm_ci_flag(ci) & VM_CALL_TAILCALL)) { | ||
return &vm_call_iseq_setup_tailcall_0start; | ||
} | ||
else if (0) { /* to disable optimize */ | ||
return &vm_call_iseq_setup_normal_0start; | ||
} | ||
else if (param_size <= <%= P.end %> && local_size <= <%= L.end %>) { | ||
VM_ASSERT(local_size >= 0); | ||
return vm_call_iseq_handlers[param_size][local_size]; | ||
} | ||
else { | ||
return &vm_call_iseq_setup_normal_0start; | ||
} | ||
} | ||
|
||
#else | ||
|
||
static inline vm_call_handler | ||
vm_call_iseq_setup_func(const struct rb_callinfo *ci, const int param_size, const int local_size) | ||
{ | ||
if (UNLIKELY(vm_ci_flag(ci) & VM_CALL_TAILCALL)) { | ||
return &vm_call_iseq_setup_tailcall_0start; | ||
} | ||
else { | ||
return &vm_call_iseq_setup_normal_0start; | ||
} | ||
} | ||
#endif |
This file was deleted.
Oops, something went wrong.