| Index: src/mips/stub-cache-mips.cc
 | 
| diff --git a/src/mips/stub-cache-mips.cc b/src/mips/stub-cache-mips.cc
 | 
| index 97a58c763b79ab5df446e2db33ff42f4132b3ac9..230b52aa6d83dc4de0ffd5c5e460097627cbbb95 100644
 | 
| --- a/src/mips/stub-cache-mips.cc
 | 
| +++ b/src/mips/stub-cache-mips.cc
 | 
| @@ -1,4 +1,4 @@
 | 
| -// Copyright 2011 the V8 project authors. All rights reserved.
 | 
| +// Copyright 2012 the V8 project authors. All rights reserved.
 | 
|  // Redistribution and use in source and binary forms, with or without
 | 
|  // modification, are permitted provided that the following conditions are
 | 
|  // met:
 | 
| @@ -377,13 +377,9 @@ void StubCompiler::GenerateStoreField(MacroAssembler* masm,
 | 
|                                        Label* miss_label) {
 | 
|    // a0 : value.
 | 
|    Label exit;
 | 
| -
 | 
| -  // Check that the receiver isn't a smi.
 | 
| -  __ JumpIfSmi(receiver_reg, miss_label, scratch);
 | 
| -
 | 
| -  // Check that the map of the receiver hasn't changed.
 | 
| -  __ lw(scratch, FieldMemOperand(receiver_reg, HeapObject::kMapOffset));
 | 
| -  __ Branch(miss_label, ne, scratch, Operand(Handle<Map>(object->map())));
 | 
| +  // Check that the map of the object hasn't changed.
 | 
| +  __ CheckMap(receiver_reg, scratch, Handle<Map>(object->map()), miss_label,
 | 
| +              DO_SMI_CHECK, ALLOW_ELEMENT_TRANSITION_MAPS);
 | 
|  
 | 
|    // Perform global security token check if needed.
 | 
|    if (object->IsJSGlobalProxy()) {
 | 
| @@ -1037,9 +1033,8 @@ Register StubCompiler::CheckPrototypes(Handle<JSObject> object,
 | 
|        __ lw(reg, FieldMemOperand(scratch1, Map::kPrototypeOffset));
 | 
|      } else {
 | 
|        Handle<Map> current_map(current->map());
 | 
| -      __ lw(scratch1, FieldMemOperand(reg, HeapObject::kMapOffset));
 | 
| -      // Branch on the result of the map check.
 | 
| -      __ Branch(miss, ne, scratch1, Operand(current_map));
 | 
| +      __ CheckMap(reg, scratch1, current_map, miss, DONT_DO_SMI_CHECK,
 | 
| +                  ALLOW_ELEMENT_TRANSITION_MAPS);
 | 
|        // Check access rights to the global object.  This has to happen after
 | 
|        // the map check so that we know that the object is actually a global
 | 
|        // object.
 | 
| @@ -1070,8 +1065,8 @@ Register StubCompiler::CheckPrototypes(Handle<JSObject> object,
 | 
|    LOG(masm()->isolate(), IntEvent("check-maps-depth", depth + 1));
 | 
|  
 | 
|    // Check the holder map.
 | 
| -  __ lw(scratch1, FieldMemOperand(reg, HeapObject::kMapOffset));
 | 
| -  __ Branch(miss, ne, scratch1, Operand(Handle<Map>(current->map())));
 | 
| +  __ CheckMap(reg, scratch1, Handle<Map>(current->map()), miss,
 | 
| +              DONT_DO_SMI_CHECK, ALLOW_ELEMENT_TRANSITION_MAPS);
 | 
|  
 | 
|    // Perform security check for access to the global object.
 | 
|    ASSERT(holder->IsJSGlobalProxy() || !holder->IsAccessCheckNeeded());
 | 
| @@ -2493,12 +2488,9 @@ Handle<Code> StoreStubCompiler::CompileStoreCallback(
 | 
|    // -----------------------------------
 | 
|    Label miss;
 | 
|  
 | 
| -  // Check that the object isn't a smi.
 | 
| -  __ JumpIfSmi(a1, &miss);
 | 
| -
 | 
|    // Check that the map of the object hasn't changed.
 | 
| -  __ lw(a3, FieldMemOperand(a1, HeapObject::kMapOffset));
 | 
| -  __ Branch(&miss, ne, a3, Operand(Handle<Map>(object->map())));
 | 
| +  __ CheckMap(a1, a3, Handle<Map>(object->map()), &miss,
 | 
| +              DO_SMI_CHECK, ALLOW_ELEMENT_TRANSITION_MAPS);
 | 
|  
 | 
|    // Perform global security token check if needed.
 | 
|    if (object->IsJSGlobalProxy()) {
 | 
| @@ -2540,12 +2532,9 @@ Handle<Code> StoreStubCompiler::CompileStoreInterceptor(
 | 
|    // -----------------------------------
 | 
|    Label miss;
 | 
|  
 | 
| -  // Check that the object isn't a smi.
 | 
| -  __ JumpIfSmi(a1, &miss);
 | 
| -
 | 
|    // Check that the map of the object hasn't changed.
 | 
| -  __ lw(a3, FieldMemOperand(a1, HeapObject::kMapOffset));
 | 
| -  __ Branch(&miss, ne, a3, Operand(Handle<Map>(receiver->map())));
 | 
| +  __ CheckMap(a1, a3, Handle<Map>(receiver->map()), &miss,
 | 
| +              DO_SMI_CHECK, ALLOW_ELEMENT_TRANSITION_MAPS);
 | 
|  
 | 
|    // Perform global security token check if needed.
 | 
|    if (receiver->IsJSGlobalProxy()) {
 | 
| 
 |