Index: src/crankshaft/arm/lithium-codegen-arm.cc |
diff --git a/src/crankshaft/arm/lithium-codegen-arm.cc b/src/crankshaft/arm/lithium-codegen-arm.cc |
index 52daed89dab9b1069fcb6113ad91a749fa4bd899..21aefeaa05a6b69c63fd8c263d8e809a2a1c6b3e 100644 |
--- a/src/crankshaft/arm/lithium-codegen-arm.cc |
+++ b/src/crankshaft/arm/lithium-codegen-arm.cc |
@@ -113,7 +113,7 @@ bool LCodeGen::GeneratePrologue() { |
info()->set_prologue_offset(masm_->pc_offset()); |
if (NeedsEagerFrame()) { |
if (info()->IsStub()) { |
- __ StubPrologue(); |
+ __ StubPrologue(StackFrame::STUB); |
} else { |
__ Prologue(info()->GeneratePreagedPrologue()); |
} |
@@ -263,18 +263,15 @@ bool LCodeGen::GenerateDeferredCode() { |
DCHECK(!frame_is_built_); |
DCHECK(info()->IsStub()); |
frame_is_built_ = true; |
- __ PushFixedFrame(); |
- __ mov(scratch0(), Operand(Smi::FromInt(StackFrame::STUB))); |
- __ push(scratch0()); |
- __ add(fp, sp, Operand(StandardFrameConstants::kFixedFrameSizeFromFp)); |
+ __ Move(scratch0(), Smi::FromInt(StackFrame::STUB)); |
+ __ PushCommonFrame(scratch0()); |
Comment(";;; Deferred code"); |
} |
code->Generate(); |
if (NeedsDeferredFrame()) { |
Comment(";;; Destroy frame"); |
DCHECK(frame_is_built_); |
- __ pop(ip); |
- __ PopFixedFrame(); |
+ __ PopCommonFrame(scratch0()); |
frame_is_built_ = false; |
} |
__ jmp(code->exit()); |
@@ -327,7 +324,7 @@ bool LCodeGen::GenerateJumpTable() { |
if (table_entry->needs_frame) { |
DCHECK(!info()->saves_caller_doubles()); |
Comment(";;; call deopt with frame"); |
- __ PushFixedFrame(); |
+ __ PushCommonFrame(); |
__ bl(&needs_frame); |
} else { |
__ bl(&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()); |
__ mov(ip, Operand(Smi::FromInt(StackFrame::STUB))); |
__ push(ip); |
- __ add(fp, sp, Operand(StandardFrameConstants::kFixedFrameSizeFromFp)); |
+ DCHECK(info()->IsStub()); |
} |
Comment(";;; call deopt"); |
@@ -3060,7 +3056,8 @@ void LCodeGen::DoArgumentsElements(LArgumentsElements* instr) { |
// Check if the calling frame is an arguments adaptor frame. |
Label done, adapted; |
__ ldr(scratch, MemOperand(fp, StandardFrameConstants::kCallerFPOffset)); |
- __ ldr(result, MemOperand(scratch, StandardFrameConstants::kContextOffset)); |
+ __ ldr(result, MemOperand(scratch, |
+ CommonFrameConstants::kContextOrFrameTypeOffset)); |
__ cmp(result, Operand(Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR))); |
// Result is the frame pointer for the frame if not adapted and for the real |