diff options
Diffstat (limited to 'lib/ruby_vm')
-rw-r--r-- | lib/ruby_vm/rjit/insn_compiler.rb | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/lib/ruby_vm/rjit/insn_compiler.rb b/lib/ruby_vm/rjit/insn_compiler.rb index ab38000f18..f7a088fe74 100644 --- a/lib/ruby_vm/rjit/insn_compiler.rb +++ b/lib/ruby_vm/rjit/insn_compiler.rb @@ -4130,8 +4130,8 @@ module RubyVM::RJIT return CantCompile end - if iseq_has_rest && iseq.body.param.flags.has_kw - asm.incr_counter(:send_iseq_has_rest_and_kw) + if iseq_has_rest && iseq.body.param.flags.has_kw && supplying_kws + asm.incr_counter(:send_iseq_has_rest_and_kw_supplied) return CantCompile end @@ -4286,6 +4286,11 @@ module RubyVM::RJIT jit_call_opt_send_shift_stack(ctx, asm, argc, send_shift:) end + if iseq_has_rest + asm.incr_counter(:send_iseq_has_rest) + return CantCompile + end + if doing_kw_call asm.incr_counter(:send_iseq_kw_call) return CantCompile @@ -4301,11 +4306,6 @@ module RubyVM::RJIT return CantCompile end - if iseq_has_rest - asm.incr_counter(:send_iseq_has_rest) - return CantCompile - end - # Setup the new frame frame_type ||= C::VM_FRAME_MAGIC_METHOD | C::VM_ENV_FLAG_LOCAL jit_push_frame( |