RJIT: Fix mapping offsets in stack_swap
This commit is contained in:
parent
f79912ea78
commit
6d8875b5d7
@ -3346,16 +3346,16 @@ module RubyVM::RJIT
|
|||||||
stack0_mem = ctx.stack_opnd(offset0)
|
stack0_mem = ctx.stack_opnd(offset0)
|
||||||
stack1_mem = ctx.stack_opnd(offset1)
|
stack1_mem = ctx.stack_opnd(offset1)
|
||||||
|
|
||||||
mapping0 = ctx.get_opnd_mapping(StackOpnd[0])
|
mapping0 = ctx.get_opnd_mapping(StackOpnd[offset0])
|
||||||
mapping1 = ctx.get_opnd_mapping(StackOpnd[1])
|
mapping1 = ctx.get_opnd_mapping(StackOpnd[offset1])
|
||||||
|
|
||||||
asm.mov(:rax, stack0_mem)
|
asm.mov(:rax, stack0_mem)
|
||||||
asm.mov(:rcx, stack1_mem)
|
asm.mov(:rcx, stack1_mem)
|
||||||
asm.mov(stack0_mem, :rcx)
|
asm.mov(stack0_mem, :rcx)
|
||||||
asm.mov(stack1_mem, :rax)
|
asm.mov(stack1_mem, :rax)
|
||||||
|
|
||||||
ctx.set_opnd_mapping(StackOpnd[0], mapping1);
|
ctx.set_opnd_mapping(StackOpnd[offset0], mapping1)
|
||||||
ctx.set_opnd_mapping(StackOpnd[1], mapping0);
|
ctx.set_opnd_mapping(StackOpnd[offset1], mapping0)
|
||||||
end
|
end
|
||||||
|
|
||||||
def jit_getlocal_generic(jit, ctx, asm, idx:, level:)
|
def jit_getlocal_generic(jit, ctx, asm, idx:, level:)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user