Revision: 10282
Author:   [email protected]
Date:     Tue Dec 20 04:59:23 2011
Log: MIPS: Support Smi->Double->HeapObject transitions in constructed Arrays.

Port r10218 (1f42dff).

Original commit message:

Also several bugs with Smi/double elements handling and make Ensure* routines more flexible.

BUG=
TEST=

Review URL: http://codereview.chromium.org/8894030
http://code.google.com/p/v8/source/detail?r=10282

Modified:
 /branches/bleeding_edge/src/mips/builtins-mips.cc

=======================================
--- /branches/bleeding_edge/src/mips/builtins-mips.cc Mon Nov 7 00:41:47 2011 +++ /branches/bleeding_edge/src/mips/builtins-mips.cc Tue Dec 20 04:59:23 2011
@@ -400,13 +400,19 @@
   // sp[0]: last argument

   Label loop, entry;
-  __ Branch(&entry);
+  __ Branch(USE_DELAY_SLOT, &entry);
+  __ mov(t3, sp);
   __ bind(&loop);
-  __ pop(a2);
+  __ lw(a2, MemOperand(t3));
+  __ Addu(t3, t3, kPointerSize);
+  if (FLAG_smi_only_arrays) {
+    __ JumpIfNotSmi(a2, call_generic_code);
+  }
   __ Addu(t1, t1, -kPointerSize);
   __ sw(a2, MemOperand(t1));
   __ bind(&entry);
   __ Branch(&loop, lt, t0, Operand(t1));
+  __ mov(sp, t3);

// Remove caller arguments and receiver from the stack, setup return value and
   // return.

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

Reply via email to