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