| Index: src/mips/ic-mips.cc
|
| ===================================================================
|
| --- src/mips/ic-mips.cc (revision 11074)
|
| +++ src/mips/ic-mips.cc (working copy)
|
| @@ -758,8 +758,6 @@
|
| Register scratch3,
|
| Label* unmapped_case,
|
| Label* slow_case) {
|
| - Heap* heap = masm->isolate()->heap();
|
| -
|
| // Check that the receiver is a JSObject. Because of the map check
|
| // later, we do not need to check for interceptors or whether it
|
| // requires access checks.
|
| @@ -773,10 +771,12 @@
|
| __ Branch(slow_case, ne, scratch1, Operand(zero_reg));
|
|
|
| // Load the elements into scratch1 and check its map.
|
| - Handle<Map> arguments_map(heap->non_strict_arguments_elements_map());
|
| __ lw(scratch1, FieldMemOperand(object, JSObject::kElementsOffset));
|
| - __ CheckMap(scratch1, scratch2, arguments_map, slow_case, DONT_DO_SMI_CHECK);
|
| -
|
| + __ CheckMap(scratch1,
|
| + scratch2,
|
| + Heap::kNonStrictArgumentsElementsMapRootIndex,
|
| + slow_case,
|
| + DONT_DO_SMI_CHECK);
|
| // Check if element is in the range of mapped arguments. If not, jump
|
| // to the unmapped lookup with the parameter map in scratch1.
|
| __ lw(scratch2, FieldMemOperand(scratch1, FixedArray::kLengthOffset));
|
| @@ -820,8 +820,10 @@
|
| const int kBackingStoreOffset = FixedArray::kHeaderSize + kPointerSize;
|
| Register backing_store = parameter_map;
|
| __ lw(backing_store, FieldMemOperand(parameter_map, kBackingStoreOffset));
|
| - Handle<Map> fixed_array_map(masm->isolate()->heap()->fixed_array_map());
|
| - __ CheckMap(backing_store, scratch, fixed_array_map, slow_case,
|
| + __ CheckMap(backing_store,
|
| + scratch,
|
| + Heap::kFixedArrayMapRootIndex,
|
| + slow_case,
|
| DONT_DO_SMI_CHECK);
|
| __ lw(scratch, FieldMemOperand(backing_store, FixedArray::kLengthOffset));
|
| __ Branch(slow_case, Ugreater_equal, key, Operand(scratch));
|
| @@ -1253,8 +1255,9 @@
|
| __ lw(t0, FieldMemOperand(elements, FixedArray::kLengthOffset));
|
| __ Branch(&slow, hs, key, Operand(t0));
|
| __ lw(elements_map, FieldMemOperand(elements, HeapObject::kMapOffset));
|
| - __ Branch(&check_if_double_array, ne, elements_map,
|
| - Operand(masm->isolate()->factory()->fixed_array_map()));
|
| + __ Branch(
|
| + &check_if_double_array, ne, elements_map, Heap::kFixedArrayMapRootIndex);
|
| +
|
| // Calculate key + 1 as smi.
|
| STATIC_ASSERT(kSmiTag == 0);
|
| __ Addu(t0, key, Operand(Smi::FromInt(1)));
|
| @@ -1262,8 +1265,7 @@
|
| __ Branch(&fast_object_without_map_check);
|
|
|
| __ bind(&check_if_double_array);
|
| - __ Branch(&slow, ne, elements_map,
|
| - Operand(masm->isolate()->factory()->fixed_double_array_map()));
|
| + __ Branch(&slow, ne, elements_map, Heap::kFixedDoubleArrayMapRootIndex);
|
| // Add 1 to key, and go to common element store code for doubles.
|
| STATIC_ASSERT(kSmiTag == 0);
|
| __ Addu(t0, key, Operand(Smi::FromInt(1)));
|
| @@ -1285,8 +1287,10 @@
|
| Register scratch_value = t0;
|
| Register address = t1;
|
| __ lw(elements_map, FieldMemOperand(elements, HeapObject::kMapOffset));
|
| - __ Branch(&fast_double_with_map_check, ne, elements_map,
|
| - Operand(masm->isolate()->factory()->fixed_array_map()));
|
| + __ Branch(&fast_double_with_map_check,
|
| + ne,
|
| + elements_map,
|
| + Heap::kFixedArrayMapRootIndex);
|
| __ bind(&fast_object_without_map_check);
|
| // Smi stores don't require further checks.
|
| Label non_smi_value;
|
| @@ -1323,8 +1327,7 @@
|
| __ bind(&fast_double_with_map_check);
|
| // Check for fast double array case. If this fails, call through to the
|
| // runtime.
|
| - __ Branch(&slow, ne, elements_map,
|
| - Operand(masm->isolate()->factory()->fixed_double_array_map()));
|
| + __ Branch(&slow, ne, elements_map, Heap::kFixedDoubleArrayMapRootIndex);
|
| __ bind(&fast_double_without_map_check);
|
| __ StoreNumberToDoubleElements(value,
|
| key,
|
|
|