Index: src/compiler/arm/code-generator-arm.cc |
diff --git a/src/compiler/arm/code-generator-arm.cc b/src/compiler/arm/code-generator-arm.cc |
index a0279c6a39de389415ac427743d063b959d43623..d6635903204f7e9f3309de39ef14867fe9d31aa5 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) { |
ulan
2014/09/04 13:50:10
This matches now what LeaveFrame(StackFrame::MANUA
|
+ __ 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; |