Revision: 18260
Author:   [email protected]
Date:     Thu Dec  5 12:38:50 2013 UTC
Log:      Fix parameter passing in callback store ics on arm

[email protected]

BUG=

Review URL: https://codereview.chromium.org/93873007
http://code.google.com/p/v8/source/detail?r=18260

Modified:
 /branches/bleeding_edge/src/arm/stub-cache-arm.cc
 /branches/bleeding_edge/test/cctest/test-accessors.cc

=======================================
--- /branches/bleeding_edge/src/arm/stub-cache-arm.cc Mon Dec 2 11:59:44 2013 UTC +++ /branches/bleeding_edge/src/arm/stub-cache-arm.cc Thu Dec 5 12:38:50 2013 UTC
@@ -911,12 +911,12 @@
   __ str(receiver, MemOperand(sp, FCA::kHolderIndex * kPointerSize));
   // Write receiver to stack frame.
   int index = stack_space - 1;
-  __ str(receiver, MemOperand(sp, index * kPointerSize));
+  __ str(receiver, MemOperand(sp, index-- * kPointerSize));
   // Write the arguments to stack frame.
   for (int i = 0; i < argc; i++) {
     ASSERT(!receiver.is(values[i]));
     ASSERT(!scratch.is(values[i]));
-    __ str(receiver, MemOperand(sp, index-- * kPointerSize));
+    __ str(values[i], MemOperand(sp, index-- * kPointerSize));
   }

   GenerateFastApiDirectCall(masm, optimization, argc, true);
=======================================
--- /branches/bleeding_edge/test/cctest/test-accessors.cc Thu Nov 28 08:21:26 2013 UTC +++ /branches/bleeding_edge/test/cctest/test-accessors.cc Thu Dec 5 12:38:50 2013 UTC
@@ -205,21 +205,22 @@
     "var result = [];"
     "var key_0 = 'x0';"
     "var key_1 = 'x1';"
-    "for (var i = 0; i < 10; i++) {"
+    "for (var j = 0; j < 10; j++) {"
+    "  var i = 4*j;"
     "  holder.x0 = i;"
     "  result.push(obj.x0);"
-    "  holder.x1 = i;"
+    "  holder.x1 = i + 1;"
     "  result.push(obj.x1);"
-    "  holder[key_0] = i;"
+    "  holder[key_0] = i + 2;"
     "  result.push(obj[key_0]);"
-    "  holder[key_1] = i;"
+    "  holder[key_1] = i + 3;"
     "  result.push(obj[key_1]);"
     "}"
     "result"));
   CHECK_EQ(40, array->Length());
   for (int i = 0; i < 40; i++) {
     v8::Handle<Value> entry = array->Get(v8::Integer::New(i));
-    CHECK_EQ(v8::Integer::New(i/4), entry);
+    CHECK_EQ(v8::Integer::New(i), entry);
   }
 }

--
--
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/groups/opt_out.

Reply via email to