summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>2020-10-16 13:42:14 -0400
committerAlan Wu <XrXr@users.noreply.github.com>2021-10-20 18:19:25 -0400
commitef9eb83cbecb3d7add699c41f713a42c296fe65a (patch)
tree426b0253cdcc31f0dcdd4a7c4b9349f5c94f42fa
parent2cb376a53f2f165415f36fba4b2230bcbd1e3848 (diff)
Commit before merge
-rw-r--r--ujit_compile.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/ujit_compile.c b/ujit_compile.c
index 820d845fc6..fe492da027 100644
--- a/ujit_compile.c
+++ b/ujit_compile.c
@@ -493,21 +493,21 @@ gen_opt_send_without_block(codeblock_t* cb, codeblock_t* ocb, ctx_t* ctx)
return false;
}
- /*
// Don't JIT if this is not a C call
- if (cd->cc->call_ != vm_call_cfunc_with_frame)
+ if (vm_cc_cme(cd->cc)->def->type != VM_METHOD_TYPE_CFUNC)
{
return false;
}
- */
-
-
-
- // TODO: stop if the inline cache isn't filled
-
- // TODO: stop if this isn't a C call
+ // Things we need to do at run-time:
+ // - Check that the cached klass matches
+ // - Check that method entry is not invalidated
+ // - ???
+ // - Create a new frame
+ // - copy function arguments?
+ // - Call the C function
+ // - Remove the frame