diff options
author | Alan Wu <XrXr@users.noreply.github.com> | 2021-05-04 12:35:51 -0400 |
---|---|---|
committer | Alan Wu <XrXr@users.noreply.github.com> | 2021-10-20 18:19:34 -0400 |
commit | 0758115d112a1ff452876d3689d20e84d5ff1e37 (patch) | |
tree | 50100b0e79bb92d2df0f70a1d2056fe0071e9426 /yjit_iface.c | |
parent | 59e5f6b83b3d55fb4a2e4d9669c31d5f31b1fda0 (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.c')
-rw-r--r-- | yjit_iface.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/yjit_iface.c b/yjit_iface.c index 1f9e589960..60b25cd8e9 100644 --- a/yjit_iface.c +++ b/yjit_iface.c @@ -481,6 +481,7 @@ rb_yjit_compile_iseq(const rb_iseq_t *iseq, rb_execution_context_t *ec) { #if OPT_DIRECT_THREADED_CODE || OPT_CALL_THREADED_CODE RB_VM_LOCK_ENTER(); + // TODO: I think we need to stop all other ractors here VALUE *encoded = (VALUE *)iseq->body->iseq_encoded; // Compile a block version starting at the first instruction |