| Index: src/mips/code-stubs-mips.cc
|
| diff --git a/src/mips/code-stubs-mips.cc b/src/mips/code-stubs-mips.cc
|
| index 05ddf87cdd95c3712528ff4ba55dda15f55a9f3a..e38f181911445c45cda16b268276abbef6b6e512 100644
|
| --- a/src/mips/code-stubs-mips.cc
|
| +++ b/src/mips/code-stubs-mips.cc
|
| @@ -5267,11 +5267,11 @@ void ProfileEntryHookStub::Generate(MacroAssembler* masm) {
|
| ASSERT(IsPowerOf2(frame_alignment));
|
| __ And(sp, sp, Operand(-frame_alignment));
|
| }
|
| -
|
| + __ Subu(sp, sp, kCArgsSlotsSize);
|
| #if defined(V8_HOST_ARCH_MIPS)
|
| int32_t entry_hook =
|
| reinterpret_cast<int32_t>(masm->isolate()->function_entry_hook());
|
| - __ li(at, Operand(entry_hook));
|
| + __ li(t9, Operand(entry_hook));
|
| #else
|
| // Under the simulator we need to indirect the entry hook through a
|
| // trampoline function at a known address.
|
| @@ -5279,15 +5279,18 @@ void ProfileEntryHookStub::Generate(MacroAssembler* masm) {
|
| __ li(a2, Operand(ExternalReference::isolate_address(masm->isolate())));
|
|
|
| ApiFunction dispatcher(FUNCTION_ADDR(EntryHookTrampoline));
|
| - __ li(at, Operand(ExternalReference(&dispatcher,
|
| + __ li(t9, Operand(ExternalReference(&dispatcher,
|
| ExternalReference::BUILTIN_CALL,
|
| masm->isolate())));
|
| #endif
|
| - __ Call(at);
|
| + // Call C function through t9 to conform ABI for PIC.
|
| + __ Call(t9);
|
|
|
| // Restore the stack pointer if needed.
|
| if (frame_alignment > kPointerSize) {
|
| __ mov(sp, s5);
|
| + } else {
|
| + __ Addu(sp, sp, kCArgsSlotsSize);
|
| }
|
|
|
| // Also pop ra to get Ret(0).
|
|
|