diff options
author | Takashi Kokubun <takashikkbn@gmail.com> | 2021-01-04 13:09:01 -0800 |
---|---|---|
committer | Takashi Kokubun <takashikkbn@gmail.com> | 2021-01-04 13:09:08 -0800 |
commit | 7a3322a0fd660d676f1918bd7c4a37676b44e1c2 (patch) | |
tree | 85e14184b6e285a1838486559468550fc563e665 /tool/ruby_vm/views | |
parent | 87c546b5fa97e6e226cce4daf417617a1143f642 (diff) | |
download | ruby-7a3322a0fd660d676f1918bd7c4a37676b44e1c2.tar.gz |
Fix broken JIT of getinlinecache
e7fc353f04 reverted vm_ic_hit_p's signature change made in 53babf35ef,
which broke JIT compilation of getinlinecache.
To make sure it doesn't happen again, I separated vm_inlined_ic_hit_p to
make the intention clear.
Diffstat (limited to 'tool/ruby_vm/views')
-rw-r--r-- | tool/ruby_vm/views/_mjit_compile_getinlinecache.erb | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/tool/ruby_vm/views/_mjit_compile_getinlinecache.erb b/tool/ruby_vm/views/_mjit_compile_getinlinecache.erb index 637dea89e6..1acfdb7f0b 100644 --- a/tool/ruby_vm/views/_mjit_compile_getinlinecache.erb +++ b/tool/ruby_vm/views/_mjit_compile_getinlinecache.erb @@ -15,7 +15,7 @@ struct iseq_inline_constant_cache_entry *ice = ic->entry; if (ice != NULL && ice->ic_serial && !status->compile_info->disable_const_cache) { % # JIT: Inline everything in IC, and cancel the slow path - fprintf(f, " if (vm_ic_hit_p((rb_serial_t)%"PRI_SERIALT_PREFIX"u, (const rb_cref_t *)0x%"PRIxVALUE", reg_cfp->ep)) {", ice->ic_serial, (VALUE)ice->ic_cref); + fprintf(f, " if (vm_inlined_ic_hit_p(0x%"PRIxVALUE", 0x%"PRIxVALUE", (const rb_cref_t *)0x%"PRIxVALUE", %"PRI_SERIALT_PREFIX"u, reg_cfp->ep)) {", ice->flags, ice->value, (VALUE)ice->ic_cref, ice->ic_serial); fprintf(f, " stack[%d] = 0x%"PRIxVALUE";\n", b->stack_size, ice->value); fprintf(f, " goto label_%d;\n", pos + insn_len(insn) + (int)dst); fprintf(f, " }"); |