| Index: src/ic/ia32/ic-compiler-ia32.cc
 | 
| diff --git a/src/ic/ia32/ic-compiler-ia32.cc b/src/ic/ia32/ic-compiler-ia32.cc
 | 
| index d93b67bffc50d35591d04ecc8f103a0e93980df9..3dcc625945c048ef8ea8aa533c2aeb5c4cfe0d19 100644
 | 
| --- a/src/ic/ia32/ic-compiler-ia32.cc
 | 
| +++ b/src/ic/ia32/ic-compiler-ia32.cc
 | 
| @@ -15,14 +15,17 @@ namespace internal {
 | 
|  
 | 
|  void PropertyICCompiler::GenerateRuntimeSetProperty(
 | 
|      MacroAssembler* masm, LanguageMode language_mode) {
 | 
| -  // Return address is on the stack.
 | 
| -  DCHECK(!ebx.is(StoreDescriptor::ReceiverRegister()) &&
 | 
| -         !ebx.is(StoreDescriptor::NameRegister()) &&
 | 
| -         !ebx.is(StoreDescriptor::ValueRegister()));
 | 
| +  STATIC_ASSERT(StoreWithVectorDescriptor::kStackArgumentsCount == 3);
 | 
| +  // Current stack layout:
 | 
| +  // - esp[12]   -- value
 | 
| +  // - esp[8]    -- slot
 | 
| +  // - esp[4]    -- vector
 | 
| +  // - esp[0]    -- return address
 | 
| +
 | 
| +  __ mov(Operand(esp, 12), StoreDescriptor::ReceiverRegister());
 | 
| +  __ mov(Operand(esp, 8), StoreDescriptor::NameRegister());
 | 
| +  __ mov(Operand(esp, 4), StoreDescriptor::ValueRegister());
 | 
|    __ pop(ebx);
 | 
| -  __ push(StoreDescriptor::ReceiverRegister());
 | 
| -  __ push(StoreDescriptor::NameRegister());
 | 
| -  __ push(StoreDescriptor::ValueRegister());
 | 
|    __ push(Immediate(Smi::FromInt(language_mode)));
 | 
|    __ push(ebx);  // return address
 | 
|  
 | 
| 
 |