Add tables to map between callee saves and vregs

Also added function to return sp-relative offset for Dalvik
virtual registers using Method*

[Note: must be matched with corresponding libcore change to
reflect new field in Method]

Change-Id: Id739908c6232ce60763d8199bc05111e960da46e
diff --git a/src/object.h b/src/object.h
index 51b9213..ffc8caf 100644
--- a/src/object.h
+++ b/src/object.h
@@ -816,7 +816,7 @@
   }
 
   void SetCode(ByteArray* code_array, InstructionSet instruction_set,
-               IntArray* mapping_table = NULL);
+               IntArray* mapping_table = NULL, ShortArray* vmap_table = NULL);
 
   static MemberOffset GetCodeOffset() {
     return OFFSET_OF_OBJECT_MEMBER(Method, code_);
@@ -830,6 +830,11 @@
         OFFSET_OF_OBJECT_MEMBER(Method, mapping_table_), false);
   }
 
+  ShortArray* GetVMapTable() const {
+    return GetFieldObject<ShortArray*>(
+        OFFSET_OF_OBJECT_MEMBER(Method, vmap_table_), false);
+  }
+
   size_t GetFrameSizeInBytes() const {
     DCHECK(sizeof(size_t) == sizeof(uint32_t));
     size_t result = GetField32(
@@ -1017,6 +1022,9 @@
   //   (IDLjava/lang/Thread;)Ljava/lang/Object;
   String* signature_;
 
+  // Storage for Dalvik virtual register mapping_table_
+  ShortArray* vmap_table_;
+
   uint32_t java_generic_types_are_initialized_;
 
   // Access flags; low 16 bits are defined by spec.