diff options
author | Alan Wu <XrXr@users.noreply.github.com> | 2021-10-18 11:30:18 -0400 |
---|---|---|
committer | Alan Wu <XrXr@users.noreply.github.com> | 2021-10-20 18:19:43 -0400 |
commit | 5906a5a7329e34a43dc46d4fc3cdf1b04cc13d0a (patch) | |
tree | 736536624015891bf6c7dceb5e1ba49362f36385 /vm_insnhelper.c | |
parent | 1e23b1a6c2614c8e3a1be0be4df6dee9202701d5 (diff) |
Add comments about special runtime routines YJIT calls
When YJIT make calls to routines without reconstructing interpreter
state through jit_prepare_routine_call(), it relies on the routine to
never allocate, raise, and push/pop control frames. Comment about this
on the routines that YJTI calls.
This is probably something we should dynamically verify on debug builds.
It's hard to statically verify this as it requires verifying all
functions in the call tree. Maybe something to look at in the future.
Diffstat (limited to 'vm_insnhelper.c')
-rw-r--r-- | vm_insnhelper.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/vm_insnhelper.c b/vm_insnhelper.c index d068beb8be..3b99f7c350 100644 --- a/vm_insnhelper.c +++ b/vm_insnhelper.c @@ -4790,6 +4790,7 @@ vm_ic_hit_p(const struct iseq_inline_constant_cache_entry *ice, const VALUE *reg return vm_inlined_ic_hit_p(ice->flags, ice->value, ice->ic_cref, ice->ic_serial, reg_ep); } +// YJIT needs this function to never allocate and never raise bool rb_vm_ic_hit_p(IC ic, const VALUE *reg_ep) { |