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.