| Index: src/x64/codegen-x64.cc | 
| diff --git a/src/x64/codegen-x64.cc b/src/x64/codegen-x64.cc | 
| index 6f34cf749e46c8e1f195122d43d6714ab7549b48..8c338fe6dd07de1b28ebe0675059bf695cd78d27 100644 | 
| --- a/src/x64/codegen-x64.cc | 
| +++ b/src/x64/codegen-x64.cc | 
| @@ -8207,17 +8207,9 @@ Result CodeGenerator::EmitNamedLoad(Handle<String> name, bool is_contextual) { | 
| result = allocator()->Allocate(); | 
| ASSERT(result.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)); | 
|  | 
| DeferredReferenceGetNamedValue* deferred = | 
| new DeferredReferenceGetNamedValue(result.reg(), receiver.reg(), name); | 
|  |