| Index: src/mips/macro-assembler-mips.cc
|
| diff --git a/src/mips/macro-assembler-mips.cc b/src/mips/macro-assembler-mips.cc
|
| index 1b9ac2fbd3d6a0faa3906e3cc97dca70c84dd781..ade4dde691e0610e94ce92ce2c211fb77c33a933 100644
|
| --- a/src/mips/macro-assembler-mips.cc
|
| +++ b/src/mips/macro-assembler-mips.cc
|
| @@ -5642,11 +5642,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,
|
| @@ -5655,7 +5656,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()) {
|
| @@ -5910,7 +5910,11 @@ void MacroAssembler::LeaveFrame(StackFrame::Type type) {
|
| lw(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);
|
| @@ -5930,7 +5934,7 @@ void MacroAssembler::EnterExitFrame(bool save_doubles, int stack_space) {
|
| addiu(sp, sp, -2 * kPointerSize - ExitFrameConstants::kFixedFrameSizeFromFp);
|
| sw(ra, MemOperand(sp, 4 * kPointerSize));
|
| sw(fp, MemOperand(sp, 3 * kPointerSize));
|
| - li(at, Operand(Smi::FromInt(StackFrame::EXIT)));
|
| + li(at, Operand(Smi::FromInt(frame_type)));
|
| sw(at, MemOperand(sp, 2 * kPointerSize));
|
| // Set up new frame pointer.
|
| addiu(fp, sp, ExitFrameConstants::kFixedFrameSizeFromFp);
|
|
|