Chromium Code Reviews| Index: src/arm/code-stubs-arm.cc |
| diff --git a/src/arm/code-stubs-arm.cc b/src/arm/code-stubs-arm.cc |
| index 1236e31784c917d87fa612db324303298b191773..3d2515449c45de3e962259befaef57a2148ef5ce 100644 |
| --- a/src/arm/code-stubs-arm.cc |
| +++ b/src/arm/code-stubs-arm.cc |
| @@ -410,15 +410,16 @@ static void GenerateFastCloneShallowArrayCommon( |
| void FastCloneShallowArrayStub::Generate(MacroAssembler* masm) { |
| // Stack layout on entry: |
| // |
| - // [sp]: constant elements. |
| - // [sp + kPointerSize]: literal index. |
| - // [sp + (2 * kPointerSize)]: literals array. |
| + // [sp]: flags (ignored) |
|
danno
2013/02/08 13:44:38
I don't think you need to pass flags explicitly. I
mvstanton
2013/02/11 11:11:24
good idea, thanks.
|
| + // [sp + kPointerSize]: constant elements. |
| + // [sp + (2 * kPointerSize)]: literal index. |
| + // [sp + (3 * kPointerSize)]: literals array. |
| // Load boilerplate object into r3 and check if we need to create a |
| // boilerplate. |
| Label slow_case; |
| - __ ldr(r3, MemOperand(sp, 2 * kPointerSize)); |
| - __ ldr(r0, MemOperand(sp, 1 * kPointerSize)); |
| + __ ldr(r3, MemOperand(sp, 3 * kPointerSize)); |
| + __ ldr(r0, MemOperand(sp, 2 * kPointerSize)); |
| __ add(r3, r3, Operand(FixedArray::kHeaderSize - kHeapObjectTag)); |
| __ ldr(r3, MemOperand(r3, r0, LSL, kPointerSizeLog2 - kSmiTagSize)); |
| __ CompareRoot(r3, Heap::kUndefinedValueRootIndex); |
| @@ -435,7 +436,7 @@ void FastCloneShallowArrayStub::Generate(MacroAssembler* masm) { |
| allocation_site_mode_, |
| &slow_case); |
| // Return and remove the on-stack parameters. |
| - __ add(sp, sp, Operand(3 * kPointerSize)); |
| + __ add(sp, sp, Operand(4 * kPointerSize)); |
| __ Ret(); |
| __ bind(&check_fast_elements); |
| @@ -445,7 +446,7 @@ void FastCloneShallowArrayStub::Generate(MacroAssembler* masm) { |
| allocation_site_mode_, |
| &slow_case); |
| // Return and remove the on-stack parameters. |
| - __ add(sp, sp, Operand(3 * kPointerSize)); |
| + __ add(sp, sp, Operand(4 * kPointerSize)); |
| __ Ret(); |
| __ bind(&double_elements); |
| @@ -480,11 +481,11 @@ void FastCloneShallowArrayStub::Generate(MacroAssembler* masm) { |
| &slow_case); |
| // Return and remove the on-stack parameters. |
| - __ add(sp, sp, Operand(3 * kPointerSize)); |
| + __ add(sp, sp, Operand(4 * kPointerSize)); |
| __ Ret(); |
| __ bind(&slow_case); |
|
danno
2013/02/08 13:44:38
In the parameterized stub, you'd have to push the
mvstanton
2013/02/11 11:11:24
Done.
|
| - __ TailCallRuntime(Runtime::kCreateArrayLiteralShallow, 3, 1); |
| + __ TailCallRuntime(Runtime::kCreateArrayLiteralShallow, 4, 1); |
| } |