Merge "Fix "wide" cts vm-tests" into ics-mr1-plus-art
diff --git a/src/compiler/Ralloc.cc b/src/compiler/Ralloc.cc
index dfb25ab..b170d81 100644
--- a/src/compiler/Ralloc.cc
+++ b/src/compiler/Ralloc.cc
@@ -420,8 +420,9 @@
     /* Figure out the frame size */
     static const uint32_t kAlignMask = kStackAlignment - 1;
     uint32_t size = (cUnit->numCoreSpills + cUnit->numFPSpills +
-                     cUnit->numRegs + cUnit->numOuts + cUnit->numCompilerTemps +
-                     1 /* curMethod* */) * sizeof(uint32_t);
+                     1 /* filler word */ + cUnit->numRegs + cUnit->numOuts +
+                     cUnit->numCompilerTemps + 1 /* curMethod* */)
+                     * sizeof(uint32_t);
     /* Align and set */
     cUnit->frameSize = (size + kAlignMask) & ~(kAlignMask);
 }
diff --git a/src/stack.cc b/src/stack.cc
index e4d1133..83169fd 100644
--- a/src/stack.cc
+++ b/src/stack.cc
@@ -65,6 +65,8 @@
  *     +------------------------+
  *     | fp callee-save spill   |
  *     +------------------------+
+ *     | filler word            |  {For compatibility, if V[locals-1] used as wide
+ *     +------------------------+
  *     | V[locals-1]            |
  *     | V[locals-2]            |
  *     |      .                 |
@@ -90,7 +92,7 @@
                          size_t frame_size, int reg)
 {
   DCHECK_EQ( frame_size & (kStackAlignment - 1), 0U);
-  int num_spills = __builtin_popcount(core_spills) + __builtin_popcount(fp_spills);
+  int num_spills = __builtin_popcount(core_spills) + __builtin_popcount(fp_spills) + 1 /* filler */;
   int num_ins = code_item->ins_size_;
   int num_regs = code_item->registers_size_ - num_ins;
   int locals_start = frame_size - ((num_spills + num_regs) * sizeof(uint32_t));