From ca9355e173043bf2b403640bd88c48ac0d0d59ed Mon Sep 17 00:00:00 2001 From: Takashi Kokubun Date: Sat, 18 Mar 2023 23:13:25 -0700 Subject: RJIT: Optimize Kernel#instance_of? --- rjit_c.rb | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'rjit_c.rb') diff --git a/rjit_c.rb b/rjit_c.rb index 8ec4ed3dc4..f5467699ff 100644 --- a/rjit_c.rb +++ b/rjit_c.rb @@ -310,6 +310,10 @@ module RubyVM::RJIT # :nodoc: all def obj_is_kind_of(obj, c) Primitive.cexpr! 'rb_obj_is_kind_of(obj, c)' end + + def rb_obj_class(obj) + Primitive.cexpr! 'rb_obj_class(obj)' + end end # @@ -1220,6 +1224,7 @@ module RubyVM::RJIT # :nodoc: all send_arity: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_arity)")], send_c_tracing: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_c_tracing)")], send_is_a_class_mismatch: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_is_a_class_mismatch)")], + send_instance_of_class_mismatch: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_instance_of_class_mismatch)")], send_blockarg_not_nil_or_proxy: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_blockarg_not_nil_or_proxy)")], send_blockiseq: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_blockiseq)")], send_block_handler: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_block_handler)")], -- cgit v1.2.1