Reviewers: titzer, rmcilroy_OOO_until_Sept_17,

Message:
PTAL. This fixes test failures that triggered by enabling out of line constant
pool.


https://codereview.chromium.org/541733002/diff/1/src/compiler/arm/code-generator-arm.cc
File src/compiler/arm/code-generator-arm.cc (right):

https://codereview.chromium.org/541733002/diff/1/src/compiler/arm/code-generator-arm.cc#newcode622
src/compiler/arm/code-generator-arm.cc:622: if
(FLAG_enable_ool_constant_pool) {
This matches now what LeaveFrame(StackFrame::MANUAL) does in
CodeGenerator::AssembleReturn.

It seems inconsistent that we manually set up frame here, but use
LeaveFrame of masm on return. Would expanding LeaveFrame be better?

Description:
[turbofan] Save OOL constant pool pointer in CodeGenerator::AssemblePrologue.

BUG=

Please review this at https://codereview.chromium.org/541733002/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files (+8, -2 lines):
  M src/compiler/arm/code-generator-arm.cc


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) {
+      __ 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;


--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to