From 0eb8d35a6d2fa579a0336aeefa6f0c4cd29ffe6e Mon Sep 17 00:00:00 2001 From: "whesse@chromium.org" Date: Fri, 15 May 2009 09:38:11 +0000 Subject: [PATCH] Polish code of VirtualFrame::MoveMemoryToRegister Review URL: http://codereview.chromium.org/113451 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1963 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/ia32/virtual-frame-ia32.cc | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/ia32/virtual-frame-ia32.cc b/src/ia32/virtual-frame-ia32.cc index d8d8b9c..a63de7c 100644 --- a/src/ia32/virtual-frame-ia32.cc +++ b/src/ia32/virtual-frame-ia32.cc @@ -424,24 +424,26 @@ void VirtualFrame::MergeMoveMemoryToRegisters(VirtualFrame* expected) { if (index != kIllegalIndex) { FrameElement source = elements_[index]; FrameElement target = expected->elements_[index]; + Register target_reg = { i }; + ASSERT(expected->elements_[index].reg().is(target_reg)); switch (source.type()) { case FrameElement::INVALID: // Fall through. UNREACHABLE(); break; case FrameElement::REGISTER: - ASSERT(source.reg().is(target.reg())); - continue; // Go to next iteration. Skips Use(target.reg()) below. + ASSERT(source.reg().is(target_reg)); + continue; // Go to next iteration. Skips Use(target_reg) below. break; case FrameElement::MEMORY: ASSERT(index <= stack_pointer_); - __ mov(target.reg(), Operand(ebp, fp_relative(index))); + __ mov(target_reg, Operand(ebp, fp_relative(index))); break; case FrameElement::CONSTANT: if (cgen_->IsUnsafeSmi(source.handle())) { - cgen_->LoadUnsafeSmi(target.reg(), source.handle()); + cgen_->LoadUnsafeSmi(target_reg, source.handle()); } else { - __ Set(target.reg(), Immediate(source.handle())); + __ Set(target_reg, Immediate(source.handle())); } break; @@ -461,21 +463,21 @@ void VirtualFrame::MergeMoveMemoryToRegisters(VirtualFrame* expected) { Use(new_backing_reg, backing_index); __ mov(new_backing_reg, Operand(ebp, fp_relative(backing_index))); - __ mov(target.reg(), new_backing_reg); + __ mov(target_reg, new_backing_reg); } else { - __ mov(target.reg(), Operand(ebp, fp_relative(backing_index))); + __ mov(target_reg, Operand(ebp, fp_relative(backing_index))); } } else { - __ mov(target.reg(), backing.reg()); + __ mov(target_reg, backing.reg()); } } } // Ensure the proper sync state. If the source was memory no // code needs to be emitted. if (target.is_synced() && !source.is_synced()) { - __ mov(Operand(ebp, fp_relative(index)), target.reg()); + __ mov(Operand(ebp, fp_relative(index)), target_reg); } - Use(target.reg(), index); + Use(target_reg, index); elements_[index] = target; } } -- 2.7.4