Index: src/arm/builtins-arm.cc |
diff --git a/src/arm/builtins-arm.cc b/src/arm/builtins-arm.cc |
index 1e55f7277cb336418de002941b3a36330dd46b78..123f4c79e0c55d812798e5cbbb0b6ec1a62a0e34 100644 |
--- a/src/arm/builtins-arm.cc |
+++ b/src/arm/builtins-arm.cc |
@@ -136,10 +136,11 @@ static void AllocateEmptyJSArray(MacroAssembler* masm, |
// scratch2: start of next object |
__ str(scratch1, FieldMemOperand(result, JSObject::kMapOffset)); |
__ LoadRoot(scratch1, Heap::kEmptyFixedArrayRootIndex); |
- __ str(scratch1, FieldMemOperand(result, JSArray::kPropertiesOffset)); |
// Field JSArray::kElementsOffset is initialized later. |
__ mov(scratch3, Operand(0, RelocInfo::NONE)); |
__ str(scratch3, FieldMemOperand(result, JSArray::kLengthOffset)); |
+ // scratch1: empty FixedArray |
+ __ str(scratch1, FieldMemOperand(result, JSArray::kPropertiesOffset)); |
if (initial_capacity == 0) { |
__ str(scratch1, FieldMemOperand(result, JSArray::kElementsOffset)); |
@@ -153,6 +154,8 @@ static void AllocateEmptyJSArray(MacroAssembler* masm, |
__ add(scratch1, result, Operand(JSArray::kSize)); |
__ str(scratch1, FieldMemOperand(result, JSArray::kElementsOffset)); |
+ __ LoadRoot(scratch3, Heap::kFixedArrayMapRootIndex); |
ulan
2012/01/27 13:19:11
In this case it seems to reduce readability. I thi
|
+ |
// Clear the heap tag on the elements array. |
__ sub(scratch1, scratch1, Operand(kHeapObjectTag)); |
@@ -161,7 +164,7 @@ static void AllocateEmptyJSArray(MacroAssembler* masm, |
// result: JSObject |
// scratch1: elements array (untagged) |
// scratch2: start of next object |
- __ LoadRoot(scratch3, Heap::kFixedArrayMapRootIndex); |
+ // scratch3: FixedArray map |
STATIC_ASSERT(0 * kPointerSize == FixedArray::kMapOffset); |
__ str(scratch3, MemOperand(scratch1, kPointerSize, PostIndex)); |
__ mov(scratch3, Operand(Smi::FromInt(initial_capacity))); |
@@ -252,6 +255,8 @@ static void AllocateJSArray(MacroAssembler* masm, |
__ str(elements_array_storage, |
FieldMemOperand(result, JSArray::kElementsOffset)); |
+ __ LoadRoot(scratch1, Heap::kFixedArrayMapRootIndex); |
ulan
2012/01/27 13:19:11
Ditto.
|
+ |
// Clear the heap tag on the elements array. |
STATIC_ASSERT(kSmiTag == 0); |
__ sub(elements_array_storage, |
@@ -262,7 +267,7 @@ static void AllocateJSArray(MacroAssembler* masm, |
// result: JSObject |
// elements_array_storage: elements array (untagged) |
// array_size: size of array (smi) |
- __ LoadRoot(scratch1, Heap::kFixedArrayMapRootIndex); |
+ // scratch1: FixedArray map |
ASSERT_EQ(0 * kPointerSize, FixedArray::kMapOffset); |
__ str(scratch1, MemOperand(elements_array_storage, kPointerSize, PostIndex)); |
STATIC_ASSERT(kSmiTag == 0); |