summaryrefslogtreecommitdiff
path: root/yjit_iface.h
diff options
context:
space:
mode:
authorAlan Wu <XrXr@users.noreply.github.com>2021-05-04 12:35:51 -0400
committerAlan Wu <XrXr@users.noreply.github.com>2021-10-20 18:19:34 -0400
commit0758115d112a1ff452876d3689d20e84d5ff1e37 (patch)
tree50100b0e79bb92d2df0f70a1d2056fe0071e9426 /yjit_iface.h
parent59e5f6b83b3d55fb4a2e4d9669c31d5f31b1fda0 (diff)
Implement send with blocks
* Implement send with blocks Not that much extra work compared to `opt_send_without_block`. Moved the stack over flow check because it could've exited after changes are made to cfp. * rename oswb counters * Might as well implement sending block to cfuncs * Disable sending blocks to cfuncs for now * Reconstruct interpreter sp before calling into cfuncs In case the callee cfunc calls a method or delegates to a block. This also has the side benefit of letting call sites that sometimes are iseq calls and sometimes cfunc call share the same successor. * only sync with interpreter sp when passing a block Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com> Co-authored-by: Aaron Patterson <aaron.patterson@shopify.com>
Diffstat (limited to 'yjit_iface.h')
-rw-r--r--yjit_iface.h52
1 files changed, 26 insertions, 26 deletions
diff --git a/yjit_iface.h b/yjit_iface.h
index a7a89b7c1f..faae80cf15 100644
--- a/yjit_iface.h
+++ b/yjit_iface.h
@@ -21,32 +21,32 @@ static char yjit_counter_names[] = #__VA_ARGS__;
YJIT_DECLARE_COUNTERS(
exec_instruction,
- oswb_callsite_not_simple,
- oswb_kw_splat,
- oswb_ic_empty,
- oswb_invalid_cme,
- oswb_ivar_set_method,
- oswb_zsuper_method,
- oswb_alias_method,
- oswb_undef_method,
- oswb_optimized_method,
- oswb_missing_method,
- oswb_bmethod,
- oswb_refined_method,
- oswb_unknown_method_type,
- oswb_cfunc_ruby_array_varg,
- oswb_cfunc_argc_mismatch,
- oswb_cfunc_toomany_args,
- oswb_iseq_tailcall,
- oswb_iseq_arity_error,
- oswb_iseq_only_keywords,
- oswb_iseq_complex_callee,
- oswb_not_implemented_method,
- oswb_getter_arity,
- oswb_se_receiver_not_heap,
- oswb_se_cf_overflow,
- oswb_se_cc_klass_differ,
- oswb_se_protected_check_failed,
+ send_callsite_not_simple,
+ send_kw_splat,
+ send_ic_empty,
+ send_invalid_cme,
+ send_ivar_set_method,
+ send_zsuper_method,
+ send_alias_method,
+ send_undef_method,
+ send_optimized_method,
+ send_missing_method,
+ send_bmethod,
+ send_refined_method,
+ send_unknown_method_type,
+ send_cfunc_ruby_array_varg,
+ send_cfunc_argc_mismatch,
+ send_cfunc_toomany_args,
+ send_iseq_tailcall,
+ send_iseq_arity_error,
+ send_iseq_only_keywords,
+ send_iseq_complex_callee,
+ send_not_implemented_method,
+ send_getter_arity,
+ send_se_receiver_not_heap,
+ send_se_cf_overflow,
+ send_se_cc_klass_differ,
+ send_se_protected_check_failed,
leave_se_finish_frame,
leave_se_interrupt,