Reviewers: Sven Panne,
Message:
Committed patchset #1 manually as r18260.
Description:
Fix parameter passing in callback store ics on arm
[email protected]
BUG=
Committed: https://code.google.com/p/v8/source/detail?r=18260
Please review this at https://codereview.chromium.org/93873007/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files (+8, -7 lines):
M src/arm/stub-cache-arm.cc
M test/cctest/test-accessors.cc
Index: src/arm/stub-cache-arm.cc
diff --git a/src/arm/stub-cache-arm.cc b/src/arm/stub-cache-arm.cc
index
265265d591002ade05f68d778702faf41bc1b84f..2fc80fb9cd336d8db99557701a0eb182fa0fa8bc
100644
--- a/src/arm/stub-cache-arm.cc
+++ b/src/arm/stub-cache-arm.cc
@@ -911,12 +911,12 @@ static void GenerateFastApiCall(MacroAssembler* masm,
__ 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);
Index: test/cctest/test-accessors.cc
diff --git a/test/cctest/test-accessors.cc b/test/cctest/test-accessors.cc
index
142687b30bee94c1a2fc0c64e3e1979a770ce1a1..2c257ee4d67f4a49d07cc04a8ddc4df546cd570c
100644
--- a/test/cctest/test-accessors.cc
+++ b/test/cctest/test-accessors.cc
@@ -205,21 +205,22 @@ THREADED_TEST(AccessorIC) {
"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.