Fix Vmap table size

Consistently use 16 bits to store Dalvik vreg number.

Change-Id: I6d21c0ed7011e5defaa45571951ff7608d0ce80e
diff --git a/src/compiler/CompilerIR.h b/src/compiler/CompilerIR.h
index 14af69d..8dcf56b 100644
--- a/src/compiler/CompilerIR.h
+++ b/src/compiler/CompilerIR.h
@@ -47,6 +47,7 @@
 } RegLocation;
 
 #define INVALID_SREG (-1)
+#define INVALID_VREG (0xFFFFU)
 #define INVALID_REG (0x3F)
 #define INVALID_OFFSET (-1)
 
@@ -201,8 +202,8 @@
     int assemblerRetries;
     std::vector<short> codeBuffer;
     std::vector<uint32_t> mappingTable;
-    std::vector<uint32_t> coreVmapTable;
-    std::vector<short> fpVmapTable;
+    std::vector<uint16_t> coreVmapTable;
+    std::vector<uint16_t> fpVmapTable;
     bool printMe;
     bool hasClassLiterals;              // Contains class ptrs used as literals
     bool hasLoop;                       // Contains a loop
diff --git a/src/compiler/Frontend.cc b/src/compiler/Frontend.cc
index ebbd72f..be3a605 100644
--- a/src/compiler/Frontend.cc
+++ b/src/compiler/Frontend.cc
@@ -907,7 +907,7 @@
            reinterpret_cast<const int32_t*>(&cUnit.mappingTable[0]),
            mapping_table->GetLength() * sizeof(cUnit.mappingTable[0]));
     // Add a marker to take place of lr
-    cUnit.coreVmapTable.push_back(-1);
+    cUnit.coreVmapTable.push_back(INVALID_VREG);
     // Combine vmap tables - core regs, then fp regs
     for (uint32_t i = 0; i < cUnit.fpVmapTable.size(); i++) {
         cUnit.coreVmapTable.push_back(cUnit.fpVmapTable[i]);
diff --git a/src/compiler/codegen/RallocUtil.cc b/src/compiler/codegen/RallocUtil.cc
index 9690287..9d3717a 100644
--- a/src/compiler/codegen/RallocUtil.cc
+++ b/src/compiler/codegen/RallocUtil.cc
@@ -241,7 +241,7 @@
  * Mark a callee-save fp register as promoted.  Note that
  * vpush/vpop uses contiguous register lists so we must
  * include any holes in the mask.  Associate holes with
- * Dalvik register INVALID_REG (-1).
+ * Dalvik register INVALID_VREG (0xFFFFU).
  */
 STATIC void markPreservedSingle(CompilationUnit* cUnit, int sReg, int reg)
 {
@@ -250,7 +250,7 @@
     // Ensure fpVmapTable is large enough
     int tableSize = cUnit->fpVmapTable.size();
     for (int i = tableSize; i < (reg + 1); i++) {
-        cUnit->fpVmapTable.push_back(INVALID_REG);
+        cUnit->fpVmapTable.push_back(INVALID_VREG);
     }
     // Add the current mapping
     cUnit->fpVmapTable[reg] = sReg;