RJIT: Save PC on String#concat
This commit is contained in:
parent
e45ed2da50
commit
2ce5cfa2be
@ -2903,8 +2903,10 @@ module RubyVM::RJIT
|
|||||||
asm.mov(:rax, ctx.stack_opnd(0))
|
asm.mov(:rax, ctx.stack_opnd(0))
|
||||||
guard_object_is_string(asm, :rax, :rcx, side_exit)
|
guard_object_is_string(asm, :rax, :rcx, side_exit)
|
||||||
|
|
||||||
# Guard buffers from GC since rb_str_buf_append may allocate.
|
# Guard buffers from GC since rb_str_buf_append may allocate. During the VM lock on GC,
|
||||||
jit_save_sp(ctx, asm)
|
# other Ractors may trigger global invalidation, so we need record_boundary_patch_point.
|
||||||
|
# PC is used on errors like Encoding::CompatibilityError raised by rb_str_buf_append.
|
||||||
|
jit_prepare_routine_call(jit, ctx, asm)
|
||||||
|
|
||||||
concat_arg = ctx.stack_pop(1)
|
concat_arg = ctx.stack_pop(1)
|
||||||
recv = ctx.stack_pop(1)
|
recv = ctx.stack_pop(1)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user