Index: src/crankshaft/mips/lithium-codegen-mips.cc |
diff --git a/src/crankshaft/mips/lithium-codegen-mips.cc b/src/crankshaft/mips/lithium-codegen-mips.cc |
index 74dbea247fd7d5cca5a820b268e129b55037b10c..eecf7d4c049714af364bba210c050c62fed4d830 100644 |
--- a/src/crankshaft/mips/lithium-codegen-mips.cc |
+++ b/src/crankshaft/mips/lithium-codegen-mips.cc |
@@ -136,7 +136,7 @@ bool LCodeGen::GeneratePrologue() { |
info()->set_prologue_offset(masm_->pc_offset()); |
if (NeedsEagerFrame()) { |
if (info()->IsStub()) { |
- __ StubPrologue(); |
+ __ StubPrologue(StackFrame::STUB); |
} else { |
__ Prologue(info()->GeneratePreagedPrologue()); |
} |
@@ -278,18 +278,15 @@ bool LCodeGen::GenerateDeferredCode() { |
DCHECK(!frame_is_built_); |
DCHECK(info()->IsStub()); |
frame_is_built_ = true; |
- __ MultiPush(cp.bit() | fp.bit() | ra.bit()); |
__ li(scratch0(), Operand(Smi::FromInt(StackFrame::STUB))); |
- __ push(scratch0()); |
- __ Addu(fp, sp, Operand(StandardFrameConstants::kFixedFrameSizeFromFp)); |
+ __ PushCommonFrame(scratch0()); |
Comment(";;; Deferred code"); |
} |
code->Generate(); |
if (NeedsDeferredFrame()) { |
Comment(";;; Destroy frame"); |
DCHECK(frame_is_built_); |
- __ pop(at); |
- __ MultiPop(cp.bit() | fp.bit() | ra.bit()); |
+ __ PopCommonFrame(scratch0()); |
frame_is_built_ = false; |
} |
__ jmp(code->exit()); |
@@ -328,7 +325,7 @@ bool LCodeGen::GenerateJumpTable() { |
if (table_entry->needs_frame) { |
DCHECK(!info()->saves_caller_doubles()); |
Comment(";;; call deopt with frame"); |
- __ MultiPush(cp.bit() | fp.bit() | ra.bit()); |
+ __ PushCommonFrame(); |
__ Call(&needs_frame); |
} else { |
__ Call(&call_deopt_entry); |
@@ -342,10 +339,9 @@ bool LCodeGen::GenerateJumpTable() { |
// This variant of deopt can only be used with stubs. Since we don't |
// have a function pointer to install in the stack frame that we're |
// building, install a special marker there instead. |
- DCHECK(info()->IsStub()); |
__ li(at, Operand(Smi::FromInt(StackFrame::STUB))); |
__ push(at); |
- __ Addu(fp, sp, Operand(StandardFrameConstants::kFixedFrameSizeFromFp)); |
+ DCHECK(info()->IsStub()); |
} |
Comment(";;; call deopt"); |
@@ -2992,7 +2988,8 @@ void LCodeGen::DoArgumentsElements(LArgumentsElements* instr) { |
// Check if the calling frame is an arguments adaptor frame. |
Label done, adapted; |
__ lw(scratch, MemOperand(fp, StandardFrameConstants::kCallerFPOffset)); |
- __ lw(result, MemOperand(scratch, StandardFrameConstants::kContextOffset)); |
+ __ lw(result, |
+ MemOperand(scratch, CommonFrameConstants::kContextOrFrameTypeOffset)); |
__ Xor(temp, result, Operand(Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR))); |
// Result is the frame pointer for the frame if not adapted and for the real |