| Index: src/full-codegen/x64/full-codegen-x64.cc | 
| diff --git a/src/full-codegen/x64/full-codegen-x64.cc b/src/full-codegen/x64/full-codegen-x64.cc | 
| index 50a5af56d1ad4dfb765ad5b114e11fa4bb95de33..b0042c5a0110201a2976ea4543f693bc4d40dbb8 100644 | 
| --- a/src/full-codegen/x64/full-codegen-x64.cc | 
| +++ b/src/full-codegen/x64/full-codegen-x64.cc | 
| @@ -1119,12 +1119,9 @@ | 
| FeedbackVectorSlot slot) { | 
| DCHECK(NeedsHomeObject(initializer)); | 
| __ movp(StoreDescriptor::ReceiverRegister(), Operand(rsp, 0)); | 
| -  __ Move(StoreDescriptor::NameRegister(), | 
| -          isolate()->factory()->home_object_symbol()); | 
| __ movp(StoreDescriptor::ValueRegister(), | 
| Operand(rsp, offset * kPointerSize)); | 
| -  EmitLoadStoreICSlot(slot); | 
| -  CallStoreIC(); | 
| +  CallStoreIC(slot, isolate()->factory()->home_object_symbol()); | 
| } | 
|  | 
|  | 
| @@ -1133,12 +1130,9 @@ | 
| FeedbackVectorSlot slot) { | 
| DCHECK(NeedsHomeObject(initializer)); | 
| __ movp(StoreDescriptor::ReceiverRegister(), rax); | 
| -  __ Move(StoreDescriptor::NameRegister(), | 
| -          isolate()->factory()->home_object_symbol()); | 
| __ movp(StoreDescriptor::ValueRegister(), | 
| Operand(rsp, offset * kPointerSize)); | 
| -  EmitLoadStoreICSlot(slot); | 
| -  CallStoreIC(); | 
| +  CallStoreIC(slot, isolate()->factory()->home_object_symbol()); | 
| } | 
|  | 
|  | 
| @@ -1373,10 +1367,8 @@ | 
| if (property->emit_store()) { | 
| VisitForAccumulatorValue(value); | 
| DCHECK(StoreDescriptor::ValueRegister().is(rax)); | 
| -            __ Move(StoreDescriptor::NameRegister(), key->value()); | 
| __ movp(StoreDescriptor::ReceiverRegister(), Operand(rsp, 0)); | 
| -            EmitLoadStoreICSlot(property->GetSlot(0)); | 
| -            CallStoreIC(); | 
| +            CallStoreIC(property->GetSlot(0), key->value()); | 
| PrepareForBailoutForId(key->id(), BailoutState::NO_REGISTERS); | 
|  | 
| if (NeedsHomeObject(value)) { | 
| @@ -1565,8 +1557,7 @@ | 
|  | 
| __ Move(StoreDescriptor::NameRegister(), Smi::FromInt(array_index)); | 
| __ movp(StoreDescriptor::ReceiverRegister(), Operand(rsp, 0)); | 
| -    EmitLoadStoreICSlot(expr->LiteralFeedbackSlot()); | 
| -    CallKeyedStoreIC(); | 
| +    CallKeyedStoreIC(expr->LiteralFeedbackSlot()); | 
|  | 
| PrepareForBailoutForId(expr->GetIdForElement(array_index), | 
| BailoutState::NO_REGISTERS); | 
| @@ -1954,10 +1945,7 @@ | 
| VisitForAccumulatorValue(prop->obj()); | 
| __ Move(StoreDescriptor::ReceiverRegister(), rax); | 
| PopOperand(StoreDescriptor::ValueRegister());  // Restore value. | 
| -      __ Move(StoreDescriptor::NameRegister(), | 
| -              prop->key()->AsLiteral()->value()); | 
| -      EmitLoadStoreICSlot(slot); | 
| -      CallStoreIC(); | 
| +      CallStoreIC(slot, prop->key()->AsLiteral()->value()); | 
| break; | 
| } | 
| case NAMED_SUPER_PROPERTY: { | 
| @@ -2004,8 +1992,7 @@ | 
| __ Move(StoreDescriptor::NameRegister(), rax); | 
| PopOperand(StoreDescriptor::ReceiverRegister()); | 
| PopOperand(StoreDescriptor::ValueRegister());  // Restore value. | 
| -      EmitLoadStoreICSlot(slot); | 
| -      CallKeyedStoreIC(); | 
| +      CallKeyedStoreIC(slot); | 
| break; | 
| } | 
| } | 
| @@ -2028,10 +2015,8 @@ | 
| FeedbackVectorSlot slot) { | 
| if (var->IsUnallocated()) { | 
| // Global var, const, or let. | 
| -    __ Move(StoreDescriptor::NameRegister(), var->name()); | 
| __ LoadGlobalObject(StoreDescriptor::ReceiverRegister()); | 
| -    EmitLoadStoreICSlot(slot); | 
| -    CallStoreIC(); | 
| +    CallStoreIC(slot, var->name()); | 
|  | 
| } else if (IsLexicalVariableMode(var->mode()) && op != Token::INIT) { | 
| DCHECK(!var->IsLookupSlot()); | 
| @@ -2098,10 +2083,8 @@ | 
| DCHECK(prop != NULL); | 
| DCHECK(prop->key()->IsLiteral()); | 
|  | 
| -  __ Move(StoreDescriptor::NameRegister(), prop->key()->AsLiteral()->value()); | 
| PopOperand(StoreDescriptor::ReceiverRegister()); | 
| -  EmitLoadStoreICSlot(expr->AssignmentSlot()); | 
| -  CallStoreIC(); | 
| +  CallStoreIC(expr->AssignmentSlot(), prop->key()->AsLiteral()->value()); | 
|  | 
| PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER); | 
| context()->Plug(rax); | 
| @@ -2142,8 +2125,7 @@ | 
| PopOperand(StoreDescriptor::NameRegister());  // Key. | 
| PopOperand(StoreDescriptor::ReceiverRegister()); | 
| DCHECK(StoreDescriptor::ValueRegister().is(rax)); | 
| -  EmitLoadStoreICSlot(expr->AssignmentSlot()); | 
| -  CallKeyedStoreIC(); | 
| +  CallKeyedStoreIC(expr->AssignmentSlot()); | 
|  | 
| PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER); | 
| context()->Plug(rax); | 
| @@ -3191,11 +3173,8 @@ | 
| } | 
| break; | 
| case NAMED_PROPERTY: { | 
| -      __ Move(StoreDescriptor::NameRegister(), | 
| -              prop->key()->AsLiteral()->value()); | 
| PopOperand(StoreDescriptor::ReceiverRegister()); | 
| -      EmitLoadStoreICSlot(expr->CountSlot()); | 
| -      CallStoreIC(); | 
| +      CallStoreIC(expr->CountSlot(), prop->key()->AsLiteral()->value()); | 
| PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER); | 
| if (expr->is_postfix()) { | 
| if (!context()->IsEffect()) { | 
| @@ -3233,8 +3212,7 @@ | 
| case KEYED_PROPERTY: { | 
| PopOperand(StoreDescriptor::NameRegister()); | 
| PopOperand(StoreDescriptor::ReceiverRegister()); | 
| -      EmitLoadStoreICSlot(expr->CountSlot()); | 
| -      CallKeyedStoreIC(); | 
| +      CallKeyedStoreIC(expr->CountSlot()); | 
| PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER); | 
| if (expr->is_postfix()) { | 
| if (!context()->IsEffect()) { | 
|  |