Revision: 8249
Author:   [email protected]
Date:     Fri Jun 10 00:09:14 2011
Log: MIPS: port Link function contexts directly to the previous context.

Ported r8238 (7803ed7)

This commit would have also included changes to macro-assembler-mips.cc,
however Kevin M. did those changes in later commit r8248. (thx!)

BUG=
TEST=

Review URL: http://codereview.chromium.org//6995128
Patch from Paul Lind <[email protected]>.
http://code.google.com/p/v8/source/detail?r=8249

Modified:
 /branches/bleeding_edge/src/mips/code-stubs-mips.cc
 /branches/bleeding_edge/src/mips/full-codegen-mips.cc
 /branches/bleeding_edge/src/objects-inl.h

=======================================
--- /branches/bleeding_edge/src/mips/code-stubs-mips.cc Thu Jun 9 06:26:18 2011 +++ /branches/bleeding_edge/src/mips/code-stubs-mips.cc Fri Jun 10 00:09:14 2011
@@ -158,7 +158,7 @@
   __ lw(a3, MemOperand(sp, 0));

   // Setup the object header.
-  __ LoadRoot(a2, Heap::kContextMapRootIndex);
+  __ LoadRoot(a2, Heap::kFunctionContextMapRootIndex);
   __ sw(a2, FieldMemOperand(v0, HeapObject::kMapOffset));
   __ li(a2, Operand(Smi::FromInt(length)));
   __ sw(a2, FieldMemOperand(v0, FixedArray::kLengthOffset));
@@ -187,7 +187,7 @@

   // Need to collect. Call into runtime system.
   __ bind(&gc);
-  __ TailCallRuntime(Runtime::kNewContext, 1, 1);
+  __ TailCallRuntime(Runtime::kNewFunctionContext, 1, 1);
 }


=======================================
--- /branches/bleeding_edge/src/mips/full-codegen-mips.cc Thu Jun 9 10:44:50 2011 +++ /branches/bleeding_edge/src/mips/full-codegen-mips.cc Fri Jun 10 00:09:14 2011
@@ -189,7 +189,7 @@
       FastNewContextStub stub(heap_slots);
       __ CallStub(&stub);
     } else {
-      __ CallRuntime(Runtime::kNewContext, 1);
+      __ CallRuntime(Runtime::kNewFunctionContext, 1);
     }
     function_in_register = false;
     // Context is returned in both v0 and cp.  It replaces the context
=======================================
--- /branches/bleeding_edge/src/objects-inl.h   Thu Jun  9 08:19:37 2011
+++ /branches/bleeding_edge/src/objects-inl.h   Fri Jun 10 00:09:14 2011
@@ -890,7 +890,7 @@
 #else  // V8_TARGET_ARCH_MIPS
   // Prevent gcc from using load-double (mips ldc1) on (possibly)
   // non-64-bit aligned HeapNumber::value.
-  static inline double read_double_field(HeapNumber* p, int offset) {
+  static inline double read_double_field(void* p, int offset) {
     union conversion {
       double d;
       uint32_t u[2];
@@ -909,7 +909,7 @@
 #else  // V8_TARGET_ARCH_MIPS
   // Prevent gcc from using store-double (mips sdc1) on (possibly)
   // non-64-bit aligned HeapNumber::value.
-  static inline void write_double_field(HeapNumber* p, int offset,
+  static inline void write_double_field(void* p, int offset,
                                         double value) {
     union conversion {
       double d;

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

Reply via email to