[turbofan] Fix unified stack slots for embedded constant pools.
authormbrandy <mbrandy@us.ibm.com>
Fri, 28 Aug 2015 06:34:55 +0000 (23:34 -0700)
committerCommit bot <commit-bot@chromium.org>
Fri, 28 Aug 2015 06:35:04 +0000 (06:35 +0000)
Account for the constant pool pointer slot during register allocation
data initialization.

R=danno@chromium.org, titzer@chromium.org, bmeurer@chromium.org, mcilroy@chromium.org,
TEST=cctest/test-run-machops/RunSpillConstantsAndParameters
BUG=

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

Cr-Commit-Position: refs/heads/master@{#30430}

src/compiler/pipeline.cc
src/frames.h

index 978aeee..50d1495 100644 (file)
@@ -266,7 +266,8 @@ class PipelineData {
     int fixed_frame_size = 0;
     if (descriptor != nullptr) {
       fixed_frame_size = (descriptor->kind() == CallDescriptor::kCallAddress)
-                             ? StandardFrameConstants::kFixedSlotCountAboveFp
+                             ? StandardFrameConstants::kFixedSlotCountAboveFp +
+                                   StandardFrameConstants::kCPSlotCount
                              : StandardFrameConstants::kFixedSlotCount;
     }
     frame_ = new (instruction_zone()) Frame(fixed_frame_size);
index 05c0a35..fdf9124 100644 (file)
@@ -126,6 +126,7 @@ class StandardFrameConstants : public AllStatic {
   static const int kFixedSlotCountAboveFp =
       kFixedFrameSizeAboveFp / kPointerSize;
   static const int kFixedSlotCount = kFixedFrameSize / kPointerSize;
+  static const int kCPSlotCount = kCPSlotSize / kPointerSize;
   static const int kExpressionsOffset = -3 * kPointerSize - kCPSlotSize;
   static const int kMarkerOffset = -2 * kPointerSize - kCPSlotSize;
   static const int kContextOffset = -1 * kPointerSize - kCPSlotSize;