From 2a084bddd322d4832a719149963a6977e415c4bc Mon Sep 17 00:00:00 2001 From: "ulan@chromium.org" Date: Wed, 10 Sep 2014 14:40:59 +0000 Subject: [PATCH] [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 --- src/compiler/arm/code-generator-arm.cc | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 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; -- 2.7.4