diff options
Diffstat (limited to 'lib/ruby_vm/mjit/insn_compiler.rb')
-rw-r--r-- | lib/ruby_vm/mjit/insn_compiler.rb | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/lib/ruby_vm/mjit/insn_compiler.rb b/lib/ruby_vm/mjit/insn_compiler.rb index 8f1586efef..2606f84c6c 100644 --- a/lib/ruby_vm/mjit/insn_compiler.rb +++ b/lib/ruby_vm/mjit/insn_compiler.rb @@ -992,8 +992,35 @@ module RubyVM::MJIT case cme.def.type when C.VM_METHOD_TYPE_ISEQ jit_call_iseq_setup(jit, ctx, asm, ci, cme, flags, argc) + # when C.VM_METHOD_TYPE_NOTIMPLEMENTED + when C.VM_METHOD_TYPE_CFUNC + asm.incr_counter(:send_cfunc) + return CantCompile + when C.VM_METHOD_TYPE_ATTRSET + asm.incr_counter(:send_attrset) + return CantCompile + when C.VM_METHOD_TYPE_IVAR + asm.incr_counter(:send_ivar) + return CantCompile + # when C.VM_METHOD_TYPE_MISSING + when C.VM_METHOD_TYPE_BMETHOD + asm.incr_counter(:send_bmethod) + return CantCompile + when C.VM_METHOD_TYPE_ALIAS + asm.incr_counter(:send_alias) + return CantCompile + when C.VM_METHOD_TYPE_OPTIMIZED + asm.incr_counter(:send_optimized) + return CantCompile + # when C.VM_METHOD_TYPE_UNDEF + when C.VM_METHOD_TYPE_ZSUPER + asm.incr_counter(:send_zsuper) + return CantCompile + when C.VM_METHOD_TYPE_REFINED + asm.incr_counter(:send_refined) + return CantCompile else - asm.incr_counter(:send_not_iseq) + asm.incr_counter(:send_not_implemented_type) return CantCompile end end |