Revision: 7431
Author:   [email protected]
Date:     Wed Mar 30 03:38:25 2011
Log:      Fix another x64 compilation error due to some dead code.

BUG=v8:1286
TEST=compile V8 with gcc-4.5.x

Patch from Peter Varga <[email protected]>.

Review URL: http://codereview.chromium.org/6771013
http://code.google.com/p/v8/source/detail?r=7431

Modified:
 /branches/bleeding_edge/src/x64/codegen-x64.cc

=======================================
--- /branches/bleeding_edge/src/x64/codegen-x64.cc      Tue Mar 29 03:48:28 2011
+++ /branches/bleeding_edge/src/x64/codegen-x64.cc      Wed Mar 30 03:38:25 2011
@@ -8276,17 +8276,9 @@
     result = allocator()->Allocate();
     ASSERT(result.is_valid() && receiver.is_valid() && value.is_valid());

-    // Cannot use r12 for receiver, because that changes
-    // the distance between a call and a fixup location,
-    // due to a special encoding of r12 as r/m in a ModR/M byte.
-    if (receiver.reg().is(r12)) {
- frame()->Spill(receiver.reg()); // It will be overwritten with result.
-      // Swap receiver and value.
-      __ movq(result.reg(), receiver.reg());
-      Result temp = receiver;
-      receiver = result;
-      result = temp;
-    }
+    // r12 is now a reserved register, so it cannot be the receiver.
+    // If it was, the distance to the fixup location would not be constant.
+    ASSERT(!receiver.reg().is(r12));

     // Check that the receiver is a heap object.
     Condition is_smi = masm()->CheckSmi(receiver.reg());

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

Reply via email to