summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorTakashi Kokubun <takashikkbn@gmail.com>2023-02-08 14:24:10 -0800
committerTakashi Kokubun <takashikkbn@gmail.com>2023-03-05 22:11:20 -0800
commitfa9a0cb970ced2ead175392bfde89a952e710dd0 (patch)
treee757483aca0ea1029081a5551186cb48865de737 /lib
parent64074ca4dfa7cc12e5966e6e763b2794bd97aecc (diff)
downloadruby-fa9a0cb970ced2ead175392bfde89a952e710dd0.tar.gz
Count unsupported method types
Diffstat (limited to 'lib')
-rw-r--r--lib/ruby_vm/mjit/insn_compiler.rb29
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