diff options
author | Hiroshi Yamauchi <yamauchi@google.com> | 2014-01-27 16:50:29 -0800 |
---|---|---|
committer | Hiroshi Yamauchi <yamauchi@google.com> | 2014-01-27 16:50:29 -0800 |
commit | bb8f0ab736b61db8f543e433859272e83f96ee9b (patch) | |
tree | 7b7bac5c0e7d0ac9aba91a40e0fbf761cfacb412 /runtime/entrypoints/quick | |
parent | 6e65720d99bd3387b72d528a46291f1ed8184ede (diff) | |
download | art-bb8f0ab736b61db8f543e433859272e83f96ee9b.zip art-bb8f0ab736b61db8f543e433859272e83f96ee9b.tar.gz art-bb8f0ab736b61db8f543e433859272e83f96ee9b.tar.bz2 |
Embed array class pointers at array allocation sites.
Following https://android-review.googlesource.com/#/c/79302, embed
array class pointers at array allocation sites in the compiled code.
Change-Id: I67a1292466dfbb7f48e746e5060e992dd93525c5
Diffstat (limited to 'runtime/entrypoints/quick')
-rw-r--r-- | runtime/entrypoints/quick/quick_alloc_entrypoints.cc | 8 | ||||
-rw-r--r-- | runtime/entrypoints/quick/quick_entrypoints.h | 1 |
2 files changed, 9 insertions, 0 deletions
diff --git a/runtime/entrypoints/quick/quick_alloc_entrypoints.cc b/runtime/entrypoints/quick/quick_alloc_entrypoints.cc index 5657092..2e1b69d 100644 --- a/runtime/entrypoints/quick/quick_alloc_entrypoints.cc +++ b/runtime/entrypoints/quick/quick_alloc_entrypoints.cc @@ -56,6 +56,14 @@ extern "C" mirror::Array* artAllocArrayFromCode##suffix##suffix2( \ return AllocArrayFromCode<false, instrumented_bool>(type_idx, method, component_count, self, \ allocator_type); \ } \ +extern "C" mirror::Array* artAllocArrayFromCodeResolved##suffix##suffix2( \ + mirror::Class* klass, mirror::ArtMethod* method, int32_t component_count, Thread* self, \ + mirror::ArtMethod** sp) \ + SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) { \ + FinishCalleeSaveFrameSetup(self, sp, Runtime::kRefsOnly); \ + return AllocArrayFromCodeResolved<false, instrumented_bool>(klass, method, component_count, self, \ + allocator_type); \ +} \ extern "C" mirror::Array* artAllocArrayFromCodeWithAccessCheck##suffix##suffix2( \ uint32_t type_idx, mirror::ArtMethod* method, int32_t component_count, Thread* self, \ mirror::ArtMethod** sp) \ diff --git a/runtime/entrypoints/quick/quick_entrypoints.h b/runtime/entrypoints/quick/quick_entrypoints.h index bbbc8f2..011e926 100644 --- a/runtime/entrypoints/quick/quick_entrypoints.h +++ b/runtime/entrypoints/quick/quick_entrypoints.h @@ -40,6 +40,7 @@ class Thread; struct PACKED(4) QuickEntryPoints { // Alloc void* (*pAllocArray)(uint32_t, void*, int32_t); + void* (*pAllocArrayResolved)(void*, void*, int32_t); void* (*pAllocArrayWithAccessCheck)(uint32_t, void*, int32_t); void* (*pAllocObject)(uint32_t, void*); void* (*pAllocObjectResolved)(void*, void*); |