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, |