| Index: src/mips64/code-stubs-mips64.cc
|
| diff --git a/src/mips64/code-stubs-mips64.cc b/src/mips64/code-stubs-mips64.cc
|
| index dfff08b891e27b2d51abb5997facea8613ba5720..996ffc8ae343d7d9433352f9345808ca79bf8de7 100644
|
| --- a/src/mips64/code-stubs-mips64.cc
|
| +++ b/src/mips64/code-stubs-mips64.cc
|
| @@ -1274,14 +1274,7 @@ void JSEntryStub::Generate(MacroAssembler* masm) {
|
| __ Move(kDoubleRegZero, 0.0);
|
|
|
| // Load argv in s0 register.
|
| - if (kMipsAbi == kN64) {
|
| - __ mov(s0, a4); // 5th parameter in mips64 a4 (a4) register.
|
| - } else { // Abi O32.
|
| - // 5th parameter on stack for O32 abi.
|
| - int offset_to_argv = (kNumCalleeSaved + 1) * kPointerSize;
|
| - offset_to_argv += kNumCalleeSavedFPU * kDoubleSize;
|
| - __ ld(s0, MemOperand(sp, offset_to_argv + kCArgsSlotsSize));
|
| - }
|
| + __ mov(s0, a4); // 5th parameter in mips64 a4 (a4) register.
|
|
|
| __ InitializeRootRegister();
|
|
|
| @@ -2210,7 +2203,7 @@ void RegExpExecStub::Generate(MacroAssembler* masm) {
|
|
|
| // Isolates: note we add an additional parameter here (isolate pointer).
|
| const int kRegExpExecuteArguments = 9;
|
| - const int kParameterRegisters = (kMipsAbi == kN64) ? 8 : 4;
|
| + const int kParameterRegisters = 8;
|
| __ EnterExitFrame(false, kRegExpExecuteArguments - kParameterRegisters);
|
|
|
| // Stack pointer now points to cell where return address is to be written.
|
| @@ -2231,58 +2224,28 @@ void RegExpExecStub::Generate(MacroAssembler* masm) {
|
| // [sp + 1] - Argument 5
|
| // [sp + 0] - saved ra
|
|
|
| - if (kMipsAbi == kN64) {
|
| - // Argument 9: Pass current isolate address.
|
| - __ li(a0, Operand(ExternalReference::isolate_address(isolate())));
|
| - __ sd(a0, MemOperand(sp, 1 * kPointerSize));
|
| -
|
| - // Argument 8: Indicate that this is a direct call from JavaScript.
|
| - __ li(a7, Operand(1));
|
| -
|
| - // Argument 7: Start (high end) of backtracking stack memory area.
|
| - __ li(a0, Operand(address_of_regexp_stack_memory_address));
|
| - __ ld(a0, MemOperand(a0, 0));
|
| - __ li(a2, Operand(address_of_regexp_stack_memory_size));
|
| - __ ld(a2, MemOperand(a2, 0));
|
| - __ daddu(a6, a0, a2);
|
| -
|
| - // Argument 6: Set the number of capture registers to zero to force global
|
| - // regexps to behave as non-global. This does not affect non-global regexps.
|
| - __ mov(a5, zero_reg);
|
| -
|
| - // Argument 5: static offsets vector buffer.
|
| - __ li(a4, Operand(
|
| - ExternalReference::address_of_static_offsets_vector(isolate())));
|
| - } else { // O32.
|
| - DCHECK(kMipsAbi == kO32);
|
| -
|
| - // Argument 9: Pass current isolate address.
|
| - // CFunctionArgumentOperand handles MIPS stack argument slots.
|
| - __ li(a0, Operand(ExternalReference::isolate_address(isolate())));
|
| - __ sd(a0, MemOperand(sp, 5 * kPointerSize));
|
| -
|
| - // Argument 8: Indicate that this is a direct call from JavaScript.
|
| - __ li(a0, Operand(1));
|
| - __ sd(a0, MemOperand(sp, 4 * kPointerSize));
|
| -
|
| - // Argument 7: Start (high end) of backtracking stack memory area.
|
| - __ li(a0, Operand(address_of_regexp_stack_memory_address));
|
| - __ ld(a0, MemOperand(a0, 0));
|
| - __ li(a2, Operand(address_of_regexp_stack_memory_size));
|
| - __ ld(a2, MemOperand(a2, 0));
|
| - __ daddu(a0, a0, a2);
|
| - __ sd(a0, MemOperand(sp, 3 * kPointerSize));
|
| -
|
| - // Argument 6: Set the number of capture registers to zero to force global
|
| - // regexps to behave as non-global. This does not affect non-global regexps.
|
| - __ mov(a0, zero_reg);
|
| - __ sd(a0, MemOperand(sp, 2 * kPointerSize));
|
| + // Argument 9: Pass current isolate address.
|
| + __ li(a0, Operand(ExternalReference::isolate_address(isolate())));
|
| + __ sd(a0, MemOperand(sp, 1 * kPointerSize));
|
|
|
| - // Argument 5: static offsets vector buffer.
|
| - __ li(a0, Operand(
|
| - ExternalReference::address_of_static_offsets_vector(isolate())));
|
| - __ sd(a0, MemOperand(sp, 1 * kPointerSize));
|
| - }
|
| + // Argument 8: Indicate that this is a direct call from JavaScript.
|
| + __ li(a7, Operand(1));
|
| +
|
| + // Argument 7: Start (high end) of backtracking stack memory area.
|
| + __ li(a0, Operand(address_of_regexp_stack_memory_address));
|
| + __ ld(a0, MemOperand(a0, 0));
|
| + __ li(a2, Operand(address_of_regexp_stack_memory_size));
|
| + __ ld(a2, MemOperand(a2, 0));
|
| + __ daddu(a6, a0, a2);
|
| +
|
| + // Argument 6: Set the number of capture registers to zero to force global
|
| + // regexps to behave as non-global. This does not affect non-global regexps.
|
| + __ mov(a5, zero_reg);
|
| +
|
| + // Argument 5: static offsets vector buffer.
|
| + __ li(
|
| + a4,
|
| + Operand(ExternalReference::address_of_static_offsets_vector(isolate())));
|
|
|
| // For arguments 4 and 3 get string length, calculate start of string data
|
| // and calculate the shift of the index (0 for one_byte and 1 for two byte).
|
|
|