From: ulan@chromium.org Date: Wed, 10 Sep 2014 14:40:59 +0000 (+0000) Subject: [turbofan] Save OOL constant pool pointer in CodeGenerator::AssemblePrologue. X-Git-Tag: upstream/4.7.83~7007 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2a084bddd322d4832a719149963a6977e415c4bc;p=platform%2Fupstream%2Fv8.git [turbofan] Save OOL constant pool pointer in CodeGenerator::AssemblePrologue. BUG= R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/541733002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23843 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- diff --git a/src/compiler/arm/code-generator-arm.cc b/src/compiler/arm/code-generator-arm.cc index a0279c6..d663590 100644 --- a/src/compiler/arm/code-generator-arm.cc +++ b/src/compiler/arm/code-generator-arm.cc @@ -619,8 +619,14 @@ void CodeGenerator::AssembleDeoptimizerCall(int deoptimization_id) { void CodeGenerator::AssemblePrologue() { CallDescriptor* descriptor = linkage()->GetIncomingDescriptor(); if (descriptor->kind() == CallDescriptor::kCallAddress) { - __ Push(lr, fp); - __ mov(fp, sp); + if (FLAG_enable_ool_constant_pool) { + __ Push(lr, fp, pp); + // Adjust FP to point to saved FP. + __ sub(fp, sp, Operand(StandardFrameConstants::kConstantPoolOffset)); + } else { + __ Push(lr, fp); + __ mov(fp, sp); + } const RegList saves = descriptor->CalleeSavedRegisters(); if (saves != 0) { // Save callee-saved registers. int register_save_area_size = 0;