diff options
author | Nicolas Geoffray <ngeoffray@google.com> | 2015-03-20 10:06:38 +0000 |
---|---|---|
committer | Nicolas Geoffray <ngeoffray@google.com> | 2015-03-20 14:55:15 +0000 |
commit | 004c230b4cfc856690c61faabc41864061813c88 (patch) | |
tree | 40d95445eaa2eb248fa639755689c797a5e0c2ae /runtime/mirror | |
parent | 735dc87c92bee338d0638b3290c2b93a122429f2 (diff) | |
download | art-004c230b4cfc856690c61faabc41864061813c88.zip art-004c230b4cfc856690c61faabc41864061813c88.tar.gz art-004c230b4cfc856690c61faabc41864061813c88.tar.bz2 |
Compress the StackMaps.
First step towards the compression of the StackMap (not
the DexRegisterMap). Next step will be to just use what is
needed (instead of byte -> word).
Change-Id: I4f81b2d05bf5cc508585e16fbbed1bafbc850e2e
Diffstat (limited to 'runtime/mirror')
-rw-r--r-- | runtime/mirror/art_method-inl.h | 4 | ||||
-rw-r--r-- | runtime/mirror/art_method.cc | 4 | ||||
-rw-r--r-- | runtime/mirror/art_method.h | 1 |
3 files changed, 2 insertions, 7 deletions
diff --git a/runtime/mirror/art_method-inl.h b/runtime/mirror/art_method-inl.h index c27c6e9..0ccf5db 100644 --- a/runtime/mirror/art_method-inl.h +++ b/runtime/mirror/art_method-inl.h @@ -230,10 +230,6 @@ inline const uint8_t* ArtMethod::GetVmapTable(const void* code_pointer, size_t p return reinterpret_cast<const uint8_t*>(code_pointer) - offset; } -inline StackMap ArtMethod::GetStackMap(uint32_t native_pc_offset) { - return GetOptimizedCodeInfo().GetStackMapForNativePcOffset(native_pc_offset); -} - inline CodeInfo ArtMethod::GetOptimizedCodeInfo() { DCHECK(IsOptimized(sizeof(void*))); const void* code_pointer = GetQuickOatCodePointer(sizeof(void*)); diff --git a/runtime/mirror/art_method.cc b/runtime/mirror/art_method.cc index bc58709..ffee59e 100644 --- a/runtime/mirror/art_method.cc +++ b/runtime/mirror/art_method.cc @@ -202,8 +202,8 @@ uint32_t ArtMethod::ToDexPc(const uintptr_t pc, bool abort_on_failure) { const void* entry_point = GetQuickOatEntryPoint(sizeof(void*)); uint32_t sought_offset = pc - reinterpret_cast<uintptr_t>(entry_point); if (IsOptimized(sizeof(void*))) { - uint32_t ret = GetStackMap(sought_offset).GetDexPc(); - return ret; + CodeInfo code_info = GetOptimizedCodeInfo(); + return code_info.GetStackMapForNativePcOffset(sought_offset).GetDexPc(code_info); } MappingTable table(entry_point != nullptr ? diff --git a/runtime/mirror/art_method.h b/runtime/mirror/art_method.h index d878f25..0eb1b91 100644 --- a/runtime/mirror/art_method.h +++ b/runtime/mirror/art_method.h @@ -348,7 +348,6 @@ class MANAGED ArtMethod FINAL : public Object { const uint8_t* GetVmapTable(const void* code_pointer, size_t pointer_size) SHARED_LOCKS_REQUIRED(Locks::mutator_lock_); - StackMap GetStackMap(uint32_t native_pc_offset) SHARED_LOCKS_REQUIRED(Locks::mutator_lock_); CodeInfo GetOptimizedCodeInfo() SHARED_LOCKS_REQUIRED(Locks::mutator_lock_); // Callers should wrap the uint8_t* in a GcMap instance for convenient access. |