Revision: 13085
Author:   [email protected]
Date:     Thu Nov 29 00:40:39 2012
Log: MIPS: Only fill in holes if storing the number to the double array has succeeded.

Port r13067 (c822cffa)

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/11428068
Patch from Akos Palfi <[email protected]>.
http://code.google.com/p/v8/source/detail?r=13085

Modified:
 /branches/bleeding_edge/src/mips/stub-cache-mips.cc

=======================================
--- /branches/bleeding_edge/src/mips/stub-cache-mips.cc Thu Nov 29 00:39:44 2012 +++ /branches/bleeding_edge/src/mips/stub-cache-mips.cc Thu Nov 29 00:40:39 2012
@@ -4851,14 +4851,6 @@
__ li(scratch1, Operand(Smi::FromInt(JSArray::kPreallocatedArrayElements)));
     __ sw(scratch1,
           FieldMemOperand(elements_reg, FixedDoubleArray::kLengthOffset));
-
-    __ li(scratch1, Operand(kHoleNanLower32));
-    __ li(scratch2, Operand(kHoleNanUpper32));
-    for (int i = 1; i < JSArray::kPreallocatedArrayElements; i++) {
-      int offset = FixedDoubleArray::OffsetOfElementAt(i);
-      __ sw(scratch1, FieldMemOperand(elements_reg, offset));
- __ sw(scratch2, FieldMemOperand(elements_reg, offset + kPointerSize));
-    }

     __ mov(scratch1, elements_reg);
     __ StoreNumberToDoubleElements(value_reg,
@@ -4870,6 +4862,14 @@
                                    scratch4,
                                    scratch5,
                                    &transition_elements_kind);
+
+    __ li(scratch1, Operand(kHoleNanLower32));
+    __ li(scratch2, Operand(kHoleNanUpper32));
+    for (int i = 1; i < JSArray::kPreallocatedArrayElements; i++) {
+      int offset = FixedDoubleArray::OffsetOfElementAt(i);
+      __ sw(scratch1, FieldMemOperand(elements_reg, offset));
+ __ sw(scratch2, FieldMemOperand(elements_reg, offset + kPointerSize));
+    }

     // Install the new backing store in the JSArray.
     __ sw(elements_reg,

--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to