Fix "wide" cts vm-tests

In change https://android-git.corp.google.com/g/#/c/171904/ I
removed a filler word that was placed in the gap between
the last of the Dalvik locals and the first of the ins.  This
filler existed to allow use of the last local as a double - something
that dx will never do (and I managed to convince myself that it
would never happen).  However, it did.  Some of the cts tests use
directly generated Dalvik code, and a group of them used the
bad pattern.  We could update the verifier to check for and
explicitly disallow this.  But, in case there is some other non-test
code out there which uses this pattern it's probably best to just
put the filler word back.

Yuck.

Change-Id: I67e6049f09007d3996ab6165c8160c56e4948600
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));