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). |