Revision: 19767
Author:   [email protected]
Date:     Mon Mar 10 16:22:39 2014 UTC
Log:      MIPS: Allowed keyed store callbacks ic generation.

Port r19744 (b05fa4a)

BUG=
[email protected]

Review URL: https://codereview.chromium.org/191443007

Patch from Balazs Kilvady <[email protected]>.
http://code.google.com/p/v8/source/detail?r=19767

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

=======================================
--- /branches/bleeding_edge/src/mips/stub-cache-mips.cc Mon Mar 10 12:23:05 2014 UTC +++ /branches/bleeding_edge/src/mips/stub-cache-mips.cc Mon Mar 10 16:22:39 2014 UTC
@@ -1242,20 +1242,16 @@
 void StoreStubCompiler::GenerateStoreViaSetter(
     MacroAssembler* masm,
     Handle<HeapType> type,
+    Register receiver,
     Handle<JSFunction> setter) {
   // ----------- S t a t e -------------
-  //  -- a0    : value
-  //  -- a1    : receiver
-  //  -- a2    : name
   //  -- ra    : return address
   // -----------------------------------
   {
     FrameScope scope(masm, StackFrame::INTERNAL);
-    Register receiver = a1;
-    Register value = a0;

     // Save value register, so we can restore it later.
-    __ push(value);
+    __ push(value());

     if (!setter.is_null()) {
       // Call the JavaScript setter with receiver and value on the stack.
@@ -1265,7 +1261,7 @@
                FieldMemOperand(
                    receiver, JSGlobalObject::kGlobalReceiverOffset));
       }
-      __ Push(receiver, value);
+      __ Push(receiver, value());
       ParameterCount actual(1);
       ParameterCount expected(setter);
       __ InvokeFunction(setter, expected, actual,
@@ -1331,18 +1327,23 @@
   static Register registers[] = { a1, a0, a2, a3, t0, t1 };
   return registers;
 }
+
+
+Register StoreStubCompiler::value() {
+  return a0;
+}


 Register* StoreStubCompiler::registers() {
-  // receiver, name, value, scratch1, scratch2, scratch3.
-  static Register registers[] = { a1, a2, a0, a3, t0, t1 };
+  // receiver, name, scratch1, scratch2, scratch3.
+  static Register registers[] = { a1, a2, a3, t0, t1 };
   return registers;
 }


 Register* KeyedStoreStubCompiler::registers() {
-  // receiver, name, value, scratch1, scratch2, scratch3.
-  static Register registers[] = { a2, a1, a0, a3, t0, t1 };
+  // receiver, name, scratch1, scratch2, scratch3.
+  static Register registers[] = { a2, a1, a3, t0, t1 };
   return registers;
 }

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to