| 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
|
|
|