| Index: src/arm/code-stubs-arm.cc
 | 
| diff --git a/src/arm/code-stubs-arm.cc b/src/arm/code-stubs-arm.cc
 | 
| index f70271bd506ecb9148a7773dc566c3f379b6c63c..f658291f84cefb3f4d0d92324f6e6c1eededb2e0 100644
 | 
| --- a/src/arm/code-stubs-arm.cc
 | 
| +++ b/src/arm/code-stubs-arm.cc
 | 
| @@ -193,6 +193,18 @@ void CompareNilICStub::InitializeInterfaceDescriptor(
 | 
|  }
 | 
|  
 | 
|  
 | 
| +void BinaryOpICStub::InitializeInterfaceDescriptor(
 | 
| +    Isolate* isolate,
 | 
| +    CodeStubInterfaceDescriptor* descriptor) {
 | 
| +  static Register registers[] = { r1, r0 };
 | 
| +  descriptor->register_param_count_ = 2;
 | 
| +  descriptor->register_params_ = registers;
 | 
| +  descriptor->deoptimization_handler_ = FUNCTION_ADDR(BinaryOpIC_Miss);
 | 
| +  descriptor->SetMissHandler(
 | 
| +      ExternalReference(IC_Utility(IC::kBinaryOpIC_Miss), isolate));
 | 
| +}
 | 
| +
 | 
| +
 | 
|  static void InitializeArrayConstructorDescriptor(
 | 
|      Isolate* isolate,
 | 
|      CodeStubInterfaceDescriptor* descriptor,
 | 
| @@ -327,29 +339,6 @@ void ElementsTransitionAndStoreStub::InitializeInterfaceDescriptor(
 | 
|  }
 | 
|  
 | 
|  
 | 
| -void BinaryOpICStub::InitializeInterfaceDescriptor(
 | 
| -    Isolate* isolate,
 | 
| -    CodeStubInterfaceDescriptor* descriptor) {
 | 
| -  static Register registers[] = { r1, r0 };
 | 
| -  descriptor->register_param_count_ = 2;
 | 
| -  descriptor->register_params_ = registers;
 | 
| -  descriptor->deoptimization_handler_ = FUNCTION_ADDR(BinaryOpIC_Miss);
 | 
| -  descriptor->SetMissHandler(
 | 
| -      ExternalReference(IC_Utility(IC::kBinaryOpIC_Miss), isolate));
 | 
| -}
 | 
| -
 | 
| -
 | 
| -void BinaryOpWithAllocationSiteStub::InitializeInterfaceDescriptor(
 | 
| -    Isolate* isolate,
 | 
| -    CodeStubInterfaceDescriptor* descriptor) {
 | 
| -  static Register registers[] = { r2, r1, r0 };
 | 
| -  descriptor->register_param_count_ = 3;
 | 
| -  descriptor->register_params_ = registers;
 | 
| -  descriptor->deoptimization_handler_ =
 | 
| -      FUNCTION_ADDR(BinaryOpIC_MissWithAllocationSite);
 | 
| -}
 | 
| -
 | 
| -
 | 
|  void NewStringAddStub::InitializeInterfaceDescriptor(
 | 
|      Isolate* isolate,
 | 
|      CodeStubInterfaceDescriptor* descriptor) {
 | 
| @@ -1453,7 +1442,6 @@ void CodeStub::GenerateStubsAheadOfTime(Isolate* isolate) {
 | 
|    ArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate);
 | 
|    CreateAllocationSiteStub::GenerateAheadOfTime(isolate);
 | 
|    BinaryOpICStub::GenerateAheadOfTime(isolate);
 | 
| -  BinaryOpICWithAllocationSiteStub::GenerateAheadOfTime(isolate);
 | 
|  }
 | 
|  
 | 
|  
 | 
| @@ -4174,38 +4162,6 @@ void StringCompareStub::Generate(MacroAssembler* masm) {
 | 
|  }
 | 
|  
 | 
|  
 | 
| -void BinaryOpICWithAllocationSiteStub::Generate(MacroAssembler* masm) {
 | 
| -  // ----------- S t a t e -------------
 | 
| -  //  -- r1    : left
 | 
| -  //  -- r0    : right
 | 
| -  //  -- lr    : return address
 | 
| -  // -----------------------------------
 | 
| -  Isolate* isolate = masm->isolate();
 | 
| -
 | 
| -  // Load r2 with the allocation site.  We stick an undefined dummy value here
 | 
| -  // and replace it with the real allocation site later when we instantiate this
 | 
| -  // stub in BinaryOpICWithAllocationSiteStub::GetCodeCopyFromTemplate().
 | 
| -  __ Move(r2, handle(isolate->heap()->undefined_value()));
 | 
| -
 | 
| -  // Make sure that we actually patched the allocation site.
 | 
| -  if (FLAG_debug_code) {
 | 
| -    __ tst(r2, Operand(kSmiTagMask));
 | 
| -    __ Assert(ne, kExpectedAllocationSite);
 | 
| -    __ push(r2);
 | 
| -    __ ldr(r2, FieldMemOperand(r2, HeapObject::kMapOffset));
 | 
| -    __ LoadRoot(ip, Heap::kAllocationSiteMapRootIndex);
 | 
| -    __ cmp(r2, ip);
 | 
| -    __ pop(r2);
 | 
| -    __ Assert(eq, kExpectedAllocationSite);
 | 
| -  }
 | 
| -
 | 
| -  // Tail call into the stub that handles binary operations with allocation
 | 
| -  // sites.
 | 
| -  BinaryOpWithAllocationSiteStub stub(state_);
 | 
| -  __ TailCallStub(&stub);
 | 
| -}
 | 
| -
 | 
| -
 | 
|  void StringAddStub::Generate(MacroAssembler* masm) {
 | 
|    Label call_runtime, call_builtin;
 | 
|    Builtins::JavaScript builtin_id = Builtins::ADD;
 | 
| 
 |