| Index: src/ic/ia32/ic-ia32.cc
 | 
| diff --git a/src/ic/ia32/ic-ia32.cc b/src/ic/ia32/ic-ia32.cc
 | 
| index 2b0e43a6b6fa0e2c171b40762a84625a1aacf2f7..0e0f34e0e93315b302719272f40564a961dcbc81 100644
 | 
| --- a/src/ic/ia32/ic-ia32.cc
 | 
| +++ b/src/ic/ia32/ic-ia32.cc
 | 
| @@ -751,13 +751,24 @@ static void StoreIC_PushArgs(MacroAssembler* masm) {
 | 
|    Register name = StoreDescriptor::NameRegister();
 | 
|    Register value = StoreDescriptor::ValueRegister();
 | 
|  
 | 
| -  DCHECK(!ebx.is(receiver) && !ebx.is(name) && !ebx.is(value));
 | 
| -
 | 
| -  __ pop(ebx);
 | 
| -  __ push(receiver);
 | 
| -  __ push(name);
 | 
| -  __ push(value);
 | 
| -  __ push(ebx);
 | 
| +  if (FLAG_vector_stores) {
 | 
| +    Register slot = VectorStoreICDescriptor::SlotRegister();
 | 
| +    Register vector = VectorStoreICDescriptor::VectorRegister();
 | 
| +
 | 
| +    __ xchg(receiver, Operand(esp, 0));
 | 
| +    __ push(name);
 | 
| +    __ push(value);
 | 
| +    __ push(slot);
 | 
| +    __ push(vector);
 | 
| +    __ push(receiver);  // Contains the return address.
 | 
| +  } else {
 | 
| +    DCHECK(!ebx.is(receiver) && !ebx.is(name) && !ebx.is(value));
 | 
| +    __ pop(ebx);
 | 
| +    __ push(receiver);
 | 
| +    __ push(name);
 | 
| +    __ push(value);
 | 
| +    __ push(ebx);
 | 
| +  }
 | 
|  }
 | 
|  
 | 
|  
 | 
| @@ -766,7 +777,8 @@ void StoreIC::GenerateMiss(MacroAssembler* masm) {
 | 
|    StoreIC_PushArgs(masm);
 | 
|  
 | 
|    // Perform tail call to the entry.
 | 
| -  __ TailCallRuntime(Runtime::kStoreIC_Miss, 3, 1);
 | 
| +  int args = FLAG_vector_stores ? 5 : 3;
 | 
| +  __ TailCallRuntime(Runtime::kStoreIC_Miss, args, 1);
 | 
|  }
 | 
|  
 | 
|  
 | 
| @@ -802,7 +814,8 @@ void KeyedStoreIC::GenerateMiss(MacroAssembler* masm) {
 | 
|    StoreIC_PushArgs(masm);
 | 
|  
 | 
|    // Do tail-call to runtime routine.
 | 
| -  __ TailCallRuntime(Runtime::kKeyedStoreIC_Miss, 3, 1);
 | 
| +  int args = FLAG_vector_stores ? 5 : 3;
 | 
| +  __ TailCallRuntime(Runtime::kKeyedStoreIC_Miss, args, 1);
 | 
|  }
 | 
|  
 | 
|  
 | 
| 
 |