| Index: src/ic/ia32/handler-compiler-ia32.cc
 | 
| diff --git a/src/ic/ia32/handler-compiler-ia32.cc b/src/ic/ia32/handler-compiler-ia32.cc
 | 
| index b332f117b89336acb012ba75a41f1e2bf069ab35..04b9dc20490590d6e62432943812710680bda694 100644
 | 
| --- a/src/ic/ia32/handler-compiler-ia32.cc
 | 
| +++ b/src/ic/ia32/handler-compiler-ia32.cc
 | 
| @@ -59,15 +59,21 @@ void NamedLoadHandlerCompiler::GenerateLoadViaGetter(
 | 
|  void PropertyHandlerCompiler::PushVectorAndSlot(Register vector,
 | 
|                                                  Register slot) {
 | 
|    MacroAssembler* masm = this->masm();
 | 
| -  __ push(vector);
 | 
| +  STATIC_ASSERT(LoadWithVectorDescriptor::kSlot <
 | 
| +                LoadWithVectorDescriptor::kVector);
 | 
| +  STATIC_ASSERT(StoreWithVectorDescriptor::kSlot <
 | 
| +                StoreWithVectorDescriptor::kVector);
 | 
| +  STATIC_ASSERT(StoreTransitionDescriptor::kSlot <
 | 
| +                StoreTransitionDescriptor::kVector);
 | 
|    __ push(slot);
 | 
| +  __ push(vector);
 | 
|  }
 | 
|  
 | 
|  
 | 
|  void PropertyHandlerCompiler::PopVectorAndSlot(Register vector, Register slot) {
 | 
|    MacroAssembler* masm = this->masm();
 | 
| -  __ pop(slot);
 | 
|    __ pop(vector);
 | 
| +  __ pop(slot);
 | 
|  }
 | 
|  
 | 
|  
 | 
| @@ -77,6 +83,15 @@ void PropertyHandlerCompiler::DiscardVectorAndSlot() {
 | 
|    __ add(esp, Immediate(2 * kPointerSize));
 | 
|  }
 | 
|  
 | 
| +void PropertyHandlerCompiler::PushReturnAddress(Register tmp) {
 | 
| +  MacroAssembler* masm = this->masm();
 | 
| +  __ push(tmp);
 | 
| +}
 | 
| +
 | 
| +void PropertyHandlerCompiler::PopReturnAddress(Register tmp) {
 | 
| +  MacroAssembler* masm = this->masm();
 | 
| +  __ pop(tmp);
 | 
| +}
 | 
|  
 | 
|  void PropertyHandlerCompiler::GenerateDictionaryNegativeLookup(
 | 
|      MacroAssembler* masm, Label* miss_label, Register receiver,
 | 
| @@ -360,19 +375,6 @@ void NamedStoreHandlerCompiler::GenerateRestoreName(Handle<Name> name) {
 | 
|  }
 | 
|  
 | 
|  
 | 
| -void NamedStoreHandlerCompiler::RearrangeVectorAndSlot(
 | 
| -    Register current_map, Register destination_map) {
 | 
| -  DCHECK(destination_map.is(StoreTransitionHelper::MapRegister()));
 | 
| -  DCHECK(current_map.is(StoreTransitionHelper::VectorRegister()));
 | 
| -  ExternalReference virtual_slot =
 | 
| -      ExternalReference::virtual_slot_register(isolate());
 | 
| -  __ mov(destination_map, current_map);
 | 
| -  __ pop(current_map);
 | 
| -  __ mov(Operand::StaticVariable(virtual_slot), current_map);
 | 
| -  __ pop(current_map);  // put vector in place.
 | 
| -}
 | 
| -
 | 
| -
 | 
|  void NamedStoreHandlerCompiler::GenerateRestoreMap(Handle<Map> transition,
 | 
|                                                     Register map_reg,
 | 
|                                                     Register scratch,
 | 
| 
 |