Chromium Code Reviews| Index: src/arm/builtins-arm.cc |
| diff --git a/src/arm/builtins-arm.cc b/src/arm/builtins-arm.cc |
| index d0136f550d7a12b5f0799fda7e76898dafc9e131..dc80fd749aea5e393d444550afa8385ea1991d84 100644 |
| --- a/src/arm/builtins-arm.cc |
| +++ b/src/arm/builtins-arm.cc |
| @@ -394,13 +394,19 @@ static void ArrayNativeCode(MacroAssembler* masm, |
| // r5: elements_array_end (untagged) |
| // sp[0]: last argument |
| Label loop, entry; |
| + Label bailout; |
|
Jakob Kummerow
2011/12/07 17:02:47
Unused label. (Does this even compile with -Werror
danno
2011/12/08 15:09:09
Done.
|
| + __ mov(r7, sp); |
|
Jakob Kummerow
2011/12/07 17:02:47
Why? I don't see how sp would get overwritten.
danno
2011/12/08 15:09:09
I didn't see it initially, either, and it cost me
|
| __ 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. |