summaryrefslogtreecommitdiff
path: root/compiler/image_writer.cc
diff options
context:
space:
mode:
author Orion Hodson <oth@google.com> 2017-01-18 09:23:12 +0000
committer Orion Hodson <oth@google.com> 2017-02-14 14:04:33 +0000
commitc069a30d42aefd902c20e8bc09dfad1683f07ded (patch)
tree8bbf72bea7ea5d243b57f8e0ab64b687a9f60e4b /compiler/image_writer.cc
parent3f38398380b80d1ded078ebed1211b7e4f51460f (diff)
ART: invoke-custom support
Adds invoke-custom instruction to the interpreter. Bug: 33191717,30550796 Test: art/test/run-test --host 952 Change-Id: I3b754128649a8b3a00ade79ba2518d0e377f3a1e
Diffstat (limited to 'compiler/image_writer.cc')
-rw-r--r--compiler/image_writer.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/compiler/image_writer.cc b/compiler/image_writer.cc
index c72edb18a3..70ff327e72 100644
--- a/compiler/image_writer.cc
+++ b/compiler/image_writer.cc
@@ -2254,6 +2254,14 @@ void ImageWriter::FixupDexCache(mirror::DexCache* orig_dex_cache,
orig_dex_cache->FixupResolvedMethodTypes(NativeCopyLocation(orig_method_types, orig_dex_cache),
ImageAddressVisitor(this));
}
+ GcRoot<mirror::CallSite>* orig_call_sites = orig_dex_cache->GetResolvedCallSites();
+ if (orig_call_sites != nullptr) {
+ copy_dex_cache->SetFieldPtrWithSize<false>(mirror::DexCache::ResolvedCallSitesOffset(),
+ NativeLocationInImage(orig_call_sites),
+ PointerSize::k64);
+ orig_dex_cache->FixupResolvedCallSites(NativeCopyLocation(orig_call_sites, orig_dex_cache),
+ ImageAddressVisitor(this));
+ }
// Remove the DexFile pointers. They will be fixed up when the runtime loads the oat file. Leaving
// compiler pointers in here will make the output non-deterministic.