| Index: src/ia32/stub-cache-ia32.cc
|
| diff --git a/src/ia32/stub-cache-ia32.cc b/src/ia32/stub-cache-ia32.cc
|
| index c27a60fd06573ae7fc91c30fd343886f3772d453..051a8177eac0f10bf168ed6324f50c5947766df4 100644
|
| --- a/src/ia32/stub-cache-ia32.cc
|
| +++ b/src/ia32/stub-cache-ia32.cc
|
| @@ -878,13 +878,10 @@ Register StubCompiler::CheckPrototypes(Handle<JSObject> object,
|
| if (in_new_space) {
|
| // Save the map in scratch1 for later.
|
| __ mov(scratch1, FieldOperand(reg, HeapObject::kMapOffset));
|
| - __ cmp(scratch1, Immediate(current_map));
|
| - } else {
|
| - __ cmp(FieldOperand(reg, HeapObject::kMapOffset),
|
| - Immediate(current_map));
|
| }
|
| - // Branch on the result of the map check.
|
| - __ j(not_equal, miss);
|
| + __ CheckMap(reg, 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.
|
| @@ -916,9 +913,8 @@ Register StubCompiler::CheckPrototypes(Handle<JSObject> object,
|
| LOG(isolate(), IntEvent("check-maps-depth", depth + 1));
|
|
|
| // Check the holder map.
|
| - __ cmp(FieldOperand(reg, HeapObject::kMapOffset),
|
| - Immediate(Handle<Map>(holder->map())));
|
| - __ j(not_equal, miss);
|
| + __ CheckMap(reg, Handle<Map>(holder->map()),
|
| + miss, DONT_DO_SMI_CHECK, ALLOW_ELEMENT_TRANSITION_MAPS);
|
|
|
| // Perform security check for access to the global object.
|
| ASSERT(holder->IsJSGlobalProxy() || !holder->IsAccessCheckNeeded());
|
|
|