Author: [email protected]
Date: Thu Jan 15 07:07:02 2009
New Revision: 1084

Modified:
    branches/experimental/toiger/src/codegen-ia32.cc
    branches/experimental/toiger/src/virtual-frame-ia32.cc

Log:
Experimental: switch back to using MacroAssembler::Set instead of
Assembler::mov in frame merges and spills.
Review URL: http://codereview.chromium.org/18270

Modified: branches/experimental/toiger/src/codegen-ia32.cc
==============================================================================
--- branches/experimental/toiger/src/codegen-ia32.cc    (original)
+++ branches/experimental/toiger/src/codegen-ia32.cc    Thu Jan 15 07:07:02  
2009
@@ -2909,7 +2909,7 @@
      Result temp = allocator_->Allocate();
      ASSERT(temp.is_valid());
      int bits = reinterpret_cast<int>(*node->handle());
-    __ mov(temp.reg(), bits & 0x0000FFFF);
+    __ Set(temp.reg(), Immediate(bits & 0x0000FFFF));
      __ xor_(temp.reg(), bits & 0xFFFF0000);
      frame_->Push(&temp);
    } else {

Modified: branches/experimental/toiger/src/virtual-frame-ia32.cc
==============================================================================
--- branches/experimental/toiger/src/virtual-frame-ia32.cc      (original)
+++ branches/experimental/toiger/src/virtual-frame-ia32.cc      Thu Jan 15  
07:07:02 2009
@@ -196,7 +196,8 @@
        // Write elements below the stack pointer to their (already  
allocated)
        // actual frame location.
        if (element.is_constant()) {
-        __ mov(Operand(ebp, fp_relative(index)),  
Immediate(element.handle()));
+        ASSERT(!cgen_->has_cc());
+        __ Set(Operand(ebp, fp_relative(index)),  
Immediate(element.handle()));
        } else {
          ASSERT(element.is_register());
          __ mov(Operand(ebp, fp_relative(index)), element.reg());
@@ -312,6 +313,7 @@
    // We should always be merging the code generator's current frame to an
    // expected frame.
    ASSERT(cgen_->frame() == this);
+  ASSERT(!cgen_->has_cc());
    ASSERT(cgen_->HasValidEntryRegisters());

    // Remove constants from the frame and ensure that no registers are
@@ -367,7 +369,7 @@
      ASSERT(!target.is_valid() || target.is_register() ||  
target.is_memory());
      if (target.is_register()) {
        if (source.is_constant()) {
-        __ mov(target.reg(), Immediate(source.handle()));
+        __ Set(target.reg(), Immediate(source.handle()));
        } else if (source.is_register() && !source.reg().is(target.reg())) {
          __ mov(target.reg(), source.reg());
        }
@@ -393,6 +395,7 @@
    // We should always be merging the code generator's current frame to an
    // expected frame.
    ASSERT(cgen_->frame() == this);
+  ASSERT(!cgen_->has_cc());

    ASSERT(cgen_ == expected->cgen_);
    ASSERT(masm_ == expected->masm_);
@@ -418,7 +421,6 @@
        ASSERT(!elements_[i].is_synced());
      }
  #endif
-    ASSERT(!cgen_->has_cc());
      __ add(Operand(esp), Immediate(height_difference * kPointerSize));
      stack_pointer_ = expected->stack_pointer_;
    } else if (stack_pointer_ < expected->stack_pointer_) {
@@ -557,7 +559,6 @@
              }
  #endif
              int difference = stack_pointer_ - i;
-            ASSERT(!cgen_->has_cc());
              __ add(Operand(esp), Immediate(difference * kPointerSize));
              stack_pointer_ = i;
            }
@@ -664,6 +665,7 @@


  void VirtualFrame::AllocateStackSlots(int count) {
+  ASSERT(!cgen_->has_cc());
    ASSERT(height() == 0);
    local_count_ = count;

@@ -925,6 +927,7 @@


  void VirtualFrame::Drop(int count) {
+  ASSERT(!cgen_->has_cc());
    ASSERT(height() >= count);
    int num_virtual_elements = (elements_.length() - 1) - stack_pointer_;

@@ -932,7 +935,6 @@
    if (num_virtual_elements < count) {
      int num_dropped = count - num_virtual_elements;
      stack_pointer_ -= num_dropped;
-    ASSERT(!cgen_->has_cc());
      __ add(Operand(esp), Immediate(num_dropped * kPointerSize));
    }

@@ -947,13 +949,13 @@


  Result VirtualFrame::Pop() {
+  ASSERT(!cgen_->has_cc());
    FrameElement popped = elements_.RemoveLast();
    bool pop_needed = (stack_pointer_ == elements_.length());

    if (popped.is_constant()) {
      if (pop_needed) {
        stack_pointer_--;
-      ASSERT(!cgen_->has_cc());
        __ add(Operand(esp), Immediate(kPointerSize));
      }
      return Result(popped.handle(), cgen_);
@@ -961,7 +963,6 @@
      Unuse(popped.reg());
      if (pop_needed) {
        stack_pointer_--;
-      ASSERT(!cgen_->has_cc());
        __ add(Operand(esp), Immediate(kPointerSize));
      }
      return Result(popped.reg(), cgen_);

--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to