Commit 1e856300 authored by whesse@chromium.org's avatar whesse@chromium.org

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 <pvarga@inf.u-szeged.hu>.

Review URL: http://codereview.chromium.org/6771013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7431 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 4e502c5e
......@@ -8276,17 +8276,9 @@ Result CodeGenerator::EmitNamedStore(Handle<String> name, bool is_contextual) {
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());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment