| Index: src/mips/builtins-mips.cc
|
| diff --git a/src/mips/builtins-mips.cc b/src/mips/builtins-mips.cc
|
| index 715ff95102730f8d7d842ae5117556908beaec6f..09a99243872014c09aea4000d214fb0e6c7eecec 100644
|
| --- a/src/mips/builtins-mips.cc
|
| +++ b/src/mips/builtins-mips.cc
|
| @@ -1735,8 +1735,6 @@ void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) {
|
| __ bind(&too_few);
|
| EnterArgumentsAdaptorFrame(masm);
|
|
|
| - // TODO(MIPS): Optimize these loops.
|
| -
|
| // Calculate copy start address into a0 and copy end address is fp.
|
| // a0: actual number of arguments as a smi
|
| // a1: function
|
| @@ -1758,9 +1756,10 @@ void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) {
|
| Label copy;
|
| __ bind(©);
|
| __ lw(t0, MemOperand(a0)); // Adjusted above for return addr and receiver.
|
| - __ push(t0);
|
| + __ Subu(sp, sp, kPointerSize);
|
| __ Subu(a0, a0, kPointerSize);
|
| - __ Branch(©, ne, a0, Operand(t3));
|
| + __ Branch(USE_DELAY_SLOT, ©, ne, a0, Operand(t3));
|
| + __ sw(t0, MemOperand(sp)); // In the delay slot.
|
|
|
| // Fill the remaining expected arguments with undefined.
|
| // a1: function
|
| @@ -1773,8 +1772,9 @@ void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) {
|
|
|
| Label fill;
|
| __ bind(&fill);
|
| - __ push(t0);
|
| - __ Branch(&fill, ne, sp, Operand(a2));
|
| + __ Subu(sp, sp, kPointerSize);
|
| + __ Branch(USE_DELAY_SLOT, &fill, ne, sp, Operand(a2));
|
| + __ sw(t0, MemOperand(sp));
|
| }
|
|
|
| // Call the entry point.
|
|
|