| Index: src/mips/builtins-mips.cc
|
| diff --git a/src/mips/builtins-mips.cc b/src/mips/builtins-mips.cc
|
| index 98fd57de784e5aff57a4ec70e01c602ca58a66ff..701450b81454d4b9cb8e5c6346bfa80f22d551b4 100644
|
| --- a/src/mips/builtins-mips.cc
|
| +++ b/src/mips/builtins-mips.cc
|
| @@ -400,13 +400,19 @@ static void ArrayNativeCode(MacroAssembler* masm,
|
| // sp[0]: last argument
|
|
|
| Label loop, entry;
|
| - __ Branch(&entry);
|
| + __ Branch(USE_DELAY_SLOT, &entry);
|
| + __ mov(t3, sp);
|
| __ bind(&loop);
|
| - __ pop(a2);
|
| + __ lw(a2, MemOperand(t3));
|
| + __ Addu(t3, t3, kPointerSize);
|
| + if (FLAG_smi_only_arrays) {
|
| + __ JumpIfNotSmi(a2, call_generic_code);
|
| + }
|
| __ Addu(t1, t1, -kPointerSize);
|
| __ sw(a2, MemOperand(t1));
|
| __ bind(&entry);
|
| __ Branch(&loop, lt, t0, Operand(t1));
|
| + __ mov(sp, t3);
|
|
|
| // Remove caller arguments and receiver from the stack, setup return value and
|
| // return.
|
|
|