| Index: src/mips64/macro-assembler-mips64.cc
|
| diff --git a/src/mips64/macro-assembler-mips64.cc b/src/mips64/macro-assembler-mips64.cc
|
| index d8bdbfac648bb51e02ff9559c8adf1c4450f83f2..475262a8affb1ad9ff0ae16319313954acdfef47 100644
|
| --- a/src/mips64/macro-assembler-mips64.cc
|
| +++ b/src/mips64/macro-assembler-mips64.cc
|
| @@ -5915,11 +5915,12 @@ void MacroAssembler::TailCallRuntime(Runtime::FunctionId fid) {
|
| JumpToExternalReference(ExternalReference(fid, isolate()));
|
| }
|
|
|
| -
|
| void MacroAssembler::JumpToExternalReference(const ExternalReference& builtin,
|
| - BranchDelaySlot bd) {
|
| + BranchDelaySlot bd,
|
| + bool builtin_exit_frame) {
|
| PrepareCEntryFunction(builtin);
|
| - CEntryStub stub(isolate(), 1);
|
| + CEntryStub stub(isolate(), 1, kDontSaveFPRegs, kArgvOnStack,
|
| + builtin_exit_frame);
|
| Jump(stub.GetCode(),
|
| RelocInfo::CODE_TARGET,
|
| al,
|
| @@ -5928,7 +5929,6 @@ void MacroAssembler::JumpToExternalReference(const ExternalReference& builtin,
|
| bd);
|
| }
|
|
|
| -
|
| void MacroAssembler::SetCounter(StatsCounter* counter, int value,
|
| Register scratch1, Register scratch2) {
|
| if (FLAG_native_code_counters && counter->Enabled()) {
|
| @@ -6184,7 +6184,11 @@ void MacroAssembler::LeaveFrame(StackFrame::Type type) {
|
| ld(fp, MemOperand(fp, 0 * kPointerSize));
|
| }
|
|
|
| -void MacroAssembler::EnterExitFrame(bool save_doubles, int stack_space) {
|
| +void MacroAssembler::EnterExitFrame(bool save_doubles, int stack_space,
|
| + StackFrame::Type frame_type) {
|
| + DCHECK(frame_type == StackFrame::EXIT ||
|
| + frame_type == StackFrame::BUILTIN_EXIT);
|
| +
|
| // Set up the frame structure on the stack.
|
| STATIC_ASSERT(2 * kPointerSize == ExitFrameConstants::kCallerSPDisplacement);
|
| STATIC_ASSERT(1 * kPointerSize == ExitFrameConstants::kCallerPCOffset);
|
| @@ -6204,7 +6208,7 @@ void MacroAssembler::EnterExitFrame(bool save_doubles, int stack_space) {
|
| daddiu(sp, sp, -2 * kPointerSize - ExitFrameConstants::kFixedFrameSizeFromFp);
|
| sd(ra, MemOperand(sp, 4 * kPointerSize));
|
| sd(fp, MemOperand(sp, 3 * kPointerSize));
|
| - li(at, Operand(Smi::FromInt(StackFrame::EXIT)));
|
| + li(at, Operand(Smi::FromInt(frame_type)));
|
| sd(at, MemOperand(sp, 2 * kPointerSize));
|
| // Set up new frame pointer.
|
| daddiu(fp, sp, ExitFrameConstants::kFixedFrameSizeFromFp);
|
|
|