| Index: src/ia32/code-stubs-ia32.cc
|
| diff --git a/src/ia32/code-stubs-ia32.cc b/src/ia32/code-stubs-ia32.cc
|
| index 2c6b0a5f3df33e6e9c629cef11ad0b3e8332280d..5669bb9d1dd8b6b4ff7bac357a298f3b89d41cf5 100644
|
| --- a/src/ia32/code-stubs-ia32.cc
|
| +++ b/src/ia32/code-stubs-ia32.cc
|
| @@ -405,14 +405,15 @@ static void GenerateFastCloneShallowArrayCommon(
|
| void FastCloneShallowArrayStub::Generate(MacroAssembler* masm) {
|
| // Stack layout on entry:
|
| //
|
| - // [esp + kPointerSize]: constant elements.
|
| - // [esp + (2 * kPointerSize)]: literal index.
|
| - // [esp + (3 * kPointerSize)]: literals array.
|
| + // [esp + kPointerSize]: flags (ignored)
|
| + // [esp + (2 * kPointerSize)]: constant elements.
|
| + // [esp + (3 * kPointerSize)]: literal index.
|
| + // [esp + (4 * kPointerSize)]: literals array.
|
|
|
| // Load boilerplate object into ecx and check if we need to create a
|
| // boilerplate.
|
| - __ mov(ecx, Operand(esp, 3 * kPointerSize));
|
| - __ mov(eax, Operand(esp, 2 * kPointerSize));
|
| + __ mov(ecx, Operand(esp, 4 * kPointerSize));
|
| + __ mov(eax, Operand(esp, 3 * kPointerSize));
|
| STATIC_ASSERT(kPointerSize == 4);
|
| STATIC_ASSERT(kSmiTagSize == 1);
|
| STATIC_ASSERT(kSmiTag == 0);
|
| @@ -433,7 +434,7 @@ void FastCloneShallowArrayStub::Generate(MacroAssembler* masm) {
|
| GenerateFastCloneShallowArrayCommon(masm, 0, COPY_ON_WRITE_ELEMENTS,
|
| allocation_site_mode_,
|
| &slow_case);
|
| - __ ret(3 * kPointerSize);
|
| + __ ret(4 * kPointerSize);
|
|
|
| __ bind(&check_fast_elements);
|
| __ CheckMap(ebx, factory->fixed_array_map(),
|
| @@ -441,7 +442,7 @@ void FastCloneShallowArrayStub::Generate(MacroAssembler* masm) {
|
| GenerateFastCloneShallowArrayCommon(masm, length_, CLONE_ELEMENTS,
|
| allocation_site_mode_,
|
| &slow_case);
|
| - __ ret(3 * kPointerSize);
|
| + __ ret(4 * kPointerSize);
|
|
|
| __ bind(&double_elements);
|
| mode = CLONE_DOUBLE_ELEMENTS;
|
| @@ -474,10 +475,10 @@ void FastCloneShallowArrayStub::Generate(MacroAssembler* masm) {
|
| &slow_case);
|
|
|
| // Return and remove the on-stack parameters.
|
| - __ ret(3 * kPointerSize);
|
| + __ ret(4 * kPointerSize);
|
|
|
| __ bind(&slow_case);
|
| - __ TailCallRuntime(Runtime::kCreateArrayLiteralShallow, 3, 1);
|
| + __ TailCallRuntime(Runtime::kCreateArrayLiteralShallow, 4, 1);
|
| }
|
|
|
|
|
|
|