RJIT: Remove an unneeded branch
This commit is contained in:
parent
3fe134759c
commit
284a0ff96c
@ -1359,14 +1359,14 @@ module RubyVM::RJIT
|
|||||||
cd = C.rb_call_data.new(jit.operand(0))
|
cd = C.rb_call_data.new(jit.operand(0))
|
||||||
blockiseq = jit.operand(1)
|
blockiseq = jit.operand(1)
|
||||||
|
|
||||||
block_handler = jit_caller_setup_arg_block(jit, ctx, asm, cd.ci, blockiseq, false)
|
block_handler = jit_caller_setup_arg_block(jit, ctx, asm, cd.ci, blockiseq)
|
||||||
if block_handler == CantCompile
|
if block_handler == CantCompile
|
||||||
return CantCompile
|
return CantCompile
|
||||||
end
|
end
|
||||||
|
|
||||||
# calling->ci
|
# calling->ci
|
||||||
mid = C.vm_ci_mid(cd.ci)
|
mid = C.vm_ci_mid(cd.ci)
|
||||||
calling = build_calling(ci: cd.ci, block_handler: blockiseq)
|
calling = build_calling(ci: cd.ci, block_handler:)
|
||||||
|
|
||||||
# vm_sendish
|
# vm_sendish
|
||||||
cme, comptime_recv_klass = jit_search_method(jit, ctx, asm, mid, calling)
|
cme, comptime_recv_klass = jit_search_method(jit, ctx, asm, mid, calling)
|
||||||
@ -3918,7 +3918,7 @@ module RubyVM::RJIT
|
|||||||
# @param jit [RubyVM::RJIT::JITState]
|
# @param jit [RubyVM::RJIT::JITState]
|
||||||
# @param ctx [RubyVM::RJIT::Context]
|
# @param ctx [RubyVM::RJIT::Context]
|
||||||
# @param asm [RubyVM::RJIT::Assembler]
|
# @param asm [RubyVM::RJIT::Assembler]
|
||||||
def jit_caller_setup_arg_block(jit, ctx, asm, ci, blockiseq, is_super)
|
def jit_caller_setup_arg_block(jit, ctx, asm, ci, blockiseq)
|
||||||
side_exit = side_exit(jit, ctx)
|
side_exit = side_exit(jit, ctx)
|
||||||
if C.vm_ci_flag(ci) & C::VM_CALL_ARGS_BLOCKARG != 0
|
if C.vm_ci_flag(ci) & C::VM_CALL_ARGS_BLOCKARG != 0
|
||||||
# TODO: Skip cmp + jne using Context?
|
# TODO: Skip cmp + jne using Context?
|
||||||
@ -3939,15 +3939,12 @@ module RubyVM::RJIT
|
|||||||
end
|
end
|
||||||
elsif blockiseq != 0
|
elsif blockiseq != 0
|
||||||
return blockiseq
|
return blockiseq
|
||||||
else
|
|
||||||
if is_super
|
|
||||||
else
|
else
|
||||||
# Not implemented yet. Is this even necessary?
|
# Not implemented yet. Is this even necessary?
|
||||||
asm.incr_counter(:send_block_setup)
|
asm.incr_counter(:send_block_setup)
|
||||||
return CantCompile
|
return CantCompile
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
# vm_search_method
|
# vm_search_method
|
||||||
# @param jit [RubyVM::RJIT::JITState]
|
# @param jit [RubyVM::RJIT::JITState]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user