| Index: src/arm/builtins-arm.cc
|
| diff --git a/src/arm/builtins-arm.cc b/src/arm/builtins-arm.cc
|
| index d0136f550d7a12b5f0799fda7e76898dafc9e131..0e28241b5470141eefb6e1ba78739222281e3e33 100644
|
| --- a/src/arm/builtins-arm.cc
|
| +++ b/src/arm/builtins-arm.cc
|
| @@ -394,13 +394,18 @@ static void ArrayNativeCode(MacroAssembler* masm,
|
| // r5: elements_array_end (untagged)
|
| // sp[0]: last argument
|
| Label loop, entry;
|
| + __ mov(r7, sp);
|
| __ jmp(&entry);
|
| __ bind(&loop);
|
| - __ ldr(r2, MemOperand(sp, kPointerSize, PostIndex));
|
| + __ ldr(r2, MemOperand(r7, kPointerSize, PostIndex));
|
| + if (FLAG_smi_only_arrays) {
|
| + __ JumpIfNotSmi(r2, call_generic_code);
|
| + }
|
| __ str(r2, MemOperand(r5, -kPointerSize, PreIndex));
|
| __ bind(&entry);
|
| __ cmp(r4, r5);
|
| __ b(lt, &loop);
|
| + __ mov(sp, r7);
|
|
|
| // Remove caller arguments and receiver from the stack, setup return value and
|
| // return.
|
|
|