| Index: src/x64/codegen-x64.cc | 
| diff --git a/src/x64/codegen-x64.cc b/src/x64/codegen-x64.cc | 
| index 8c338fe6dd07de1b28ebe0675059bf695cd78d27..dc999b5780b6711d58bcc75898b284b9651687f3 100644 | 
| --- a/src/x64/codegen-x64.cc | 
| +++ b/src/x64/codegen-x64.cc | 
| @@ -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()); | 
|  |