| Index: src/arm/ic-arm.cc
|
| ===================================================================
|
| --- src/arm/ic-arm.cc (revision 2686)
|
| +++ src/arm/ic-arm.cc (working copy)
|
| @@ -87,7 +87,8 @@
|
| // Check that the properties array is a dictionary.
|
| __ ldr(t0, FieldMemOperand(t1, JSObject::kPropertiesOffset));
|
| __ ldr(r3, FieldMemOperand(t0, HeapObject::kMapOffset));
|
| - __ cmp(r3, Operand(Factory::hash_table_map()));
|
| + __ LoadRoot(ip, Heap::kHashTableMapRootIndex);
|
| + __ cmp(r3, ip);
|
| __ b(ne, miss);
|
|
|
| // Compute the capacity mask.
|
| @@ -254,9 +255,11 @@
|
|
|
| // Check for boolean.
|
| __ bind(&non_string);
|
| - __ cmp(r1, Operand(Factory::true_value()));
|
| + __ LoadRoot(ip, Heap::kTrueValueRootIndex);
|
| + __ cmp(r1, ip);
|
| __ b(eq, &boolean);
|
| - __ cmp(r1, Operand(Factory::false_value()));
|
| + __ LoadRoot(ip, Heap::kFalseValueRootIndex);
|
| + __ cmp(r1, ip);
|
| __ b(ne, &miss);
|
| __ bind(&boolean);
|
| StubCompiler::GenerateLoadGlobalFunctionPrototype(
|
| @@ -582,7 +585,8 @@
|
| __ ldr(r1, FieldMemOperand(r1, JSObject::kElementsOffset));
|
| // Check that the object is in fast mode (not dictionary).
|
| __ ldr(r3, FieldMemOperand(r1, HeapObject::kMapOffset));
|
| - __ cmp(r3, Operand(Factory::fixed_array_map()));
|
| + __ LoadRoot(ip, Heap::kFixedArrayMapRootIndex);
|
| + __ cmp(r3, ip);
|
| __ b(ne, &slow);
|
| // Check that the key (index) is within bounds.
|
| __ ldr(r3, FieldMemOperand(r1, Array::kLengthOffset));
|
| @@ -601,7 +605,8 @@
|
| __ bind(&fast);
|
| __ add(r3, r1, Operand(FixedArray::kHeaderSize - kHeapObjectTag));
|
| __ ldr(r0, MemOperand(r3, r0, LSL, kPointerSizeLog2));
|
| - __ cmp(r0, Operand(Factory::the_hole_value()));
|
| + __ LoadRoot(ip, Heap::kTheHoleValueRootIndex);
|
| + __ cmp(r0, ip);
|
| // In case the loaded value is the_hole we have to consult GetProperty
|
| // to ensure the prototype chain is searched.
|
| __ b(eq, &slow);
|
| @@ -661,7 +666,8 @@
|
| __ ldr(r3, FieldMemOperand(r3, JSObject::kElementsOffset));
|
| // Check that the object is in fast mode (not dictionary).
|
| __ ldr(r2, FieldMemOperand(r3, HeapObject::kMapOffset));
|
| - __ cmp(r2, Operand(Factory::fixed_array_map()));
|
| + __ LoadRoot(ip, Heap::kFixedArrayMapRootIndex);
|
| + __ cmp(r2, ip);
|
| __ b(ne, &slow);
|
| // Untag the key (for checking against untagged length in the fixed array).
|
| __ mov(r1, Operand(r1, ASR, kSmiTagSize));
|
| @@ -710,7 +716,8 @@
|
| __ bind(&array);
|
| __ ldr(r2, FieldMemOperand(r3, JSObject::kElementsOffset));
|
| __ ldr(r1, FieldMemOperand(r2, HeapObject::kMapOffset));
|
| - __ cmp(r1, Operand(Factory::fixed_array_map()));
|
| + __ LoadRoot(ip, Heap::kFixedArrayMapRootIndex);
|
| + __ cmp(r1, ip);
|
| __ b(ne, &slow);
|
|
|
| // Check the key against the length in the array, compute the
|
|
|