diff options
Diffstat (limited to 'lib/ruby_vm')
| -rw-r--r-- | lib/ruby_vm/rjit/insn_compiler.rb | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/ruby_vm/rjit/insn_compiler.rb b/lib/ruby_vm/rjit/insn_compiler.rb index 8c99876c1a..0c426fe364 100644 --- a/lib/ruby_vm/rjit/insn_compiler.rb +++ b/lib/ruby_vm/rjit/insn_compiler.rb @@ -3338,10 +3338,16 @@ module RubyVM::RJIT stack0_mem = ctx.stack_opnd(offset0) stack1_mem = ctx.stack_opnd(offset1) + mapping0 = ctx.get_opnd_mapping(StackOpnd[0]) + mapping1 = ctx.get_opnd_mapping(StackOpnd[1]) + asm.mov(:rax, stack0_mem) asm.mov(:rcx, stack1_mem) asm.mov(stack0_mem, :rcx) asm.mov(stack1_mem, :rax) + + ctx.set_opnd_mapping(StackOpnd[0], mapping1); + ctx.set_opnd_mapping(StackOpnd[1], mapping0); end def jit_getlocal_generic(jit, ctx, asm, idx:, level:) |
