Commit ee26e273 authored by rmcilroy@chromium.org's avatar rmcilroy@chromium.org

[turbofan]: Fix TurboFan for out-of-line constant pool on Arm.

Use LeaveFrame so that the constant pool pointer register is correctly restored
when using the out-of-line constant pool.  Also clean up duplicate code in
builtins-arm.cc.

R=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/469283002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23134 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 10b0c6d3
...@@ -1422,13 +1422,7 @@ static void LeaveArgumentsAdaptorFrame(MacroAssembler* masm) { ...@@ -1422,13 +1422,7 @@ static void LeaveArgumentsAdaptorFrame(MacroAssembler* masm) {
__ ldr(r1, MemOperand(fp, -(StandardFrameConstants::kFixedFrameSizeFromFp + __ ldr(r1, MemOperand(fp, -(StandardFrameConstants::kFixedFrameSizeFromFp +
kPointerSize))); kPointerSize)));
if (FLAG_enable_ool_constant_pool) { __ LeaveFrame(StackFrame::ARGUMENTS_ADAPTOR);
__ add(sp, fp, Operand(StandardFrameConstants::kConstantPoolOffset));
__ ldm(ia_w, sp, pp.bit() | fp.bit() | lr.bit());
} else {
__ mov(sp, fp);;
__ ldm(ia_w, sp, fp.bit() | lr.bit());
}
__ add(sp, sp, Operand::PointerOffsetFromSmiKey(r1)); __ add(sp, sp, Operand::PointerOffsetFromSmiKey(r1));
__ add(sp, sp, Operand(kPointerSize)); // adjust for receiver __ add(sp, sp, Operand(kPointerSize)); // adjust for receiver
} }
......
...@@ -665,12 +665,10 @@ void CodeGenerator::AssembleReturn() { ...@@ -665,12 +665,10 @@ void CodeGenerator::AssembleReturn() {
__ ldm(ia_w, sp, saves); __ ldm(ia_w, sp, saves);
} }
} }
__ mov(sp, fp); __ LeaveFrame(StackFrame::MANUAL);
__ ldm(ia_w, sp, fp.bit() | lr.bit());
__ Ret(); __ Ret();
} else { } else {
__ mov(sp, fp); __ LeaveFrame(StackFrame::MANUAL);
__ ldm(ia_w, sp, fp.bit() | lr.bit());
int pop_count = int pop_count =
descriptor->IsJSFunctionCall() ? descriptor->ParameterCount() : 0; descriptor->IsJSFunctionCall() ? descriptor->ParameterCount() : 0;
__ Drop(pop_count); __ Drop(pop_count);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment