summaryrefslogtreecommitdiffstats
path: root/compiler/optimizing/optimizing_compiler.cc
diff options
context:
space:
mode:
authorAndreas Gampe <agampe@google.com>2015-04-08 00:37:23 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2015-04-08 00:37:25 +0000
commit40f65560b5ecd79aeaadc16b03834d11aea1e0a5 (patch)
treeb93fb2f045a4f47f8b6e3c8541a07781dcce2c77 /compiler/optimizing/optimizing_compiler.cc
parentd2b9c0ca73a01cc31482a54cbcae1b3ac85379b8 (diff)
parent3c54b0023fca579aae006dfa607fb14de5846c42 (diff)
downloadart-40f65560b5ecd79aeaadc16b03834d11aea1e0a5.zip
art-40f65560b5ecd79aeaadc16b03834d11aea1e0a5.tar.gz
art-40f65560b5ecd79aeaadc16b03834d11aea1e0a5.tar.bz2
Merge "ART: Fix 64-bit ELF file support"
Diffstat (limited to 'compiler/optimizing/optimizing_compiler.cc')
-rw-r--r--compiler/optimizing/optimizing_compiler.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/compiler/optimizing/optimizing_compiler.cc b/compiler/optimizing/optimizing_compiler.cc
index 90a530a..12798ed 100644
--- a/compiler/optimizing/optimizing_compiler.cc
+++ b/compiler/optimizing/optimizing_compiler.cc
@@ -204,8 +204,13 @@ class OptimizingCompiler FINAL : public Compiler {
const std::vector<const art::DexFile*>& dex_files,
const std::string& android_root,
bool is_host) const OVERRIDE SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) {
- return art::ElfWriterQuick32::Create(file, oat_writer, dex_files, android_root, is_host,
- *GetCompilerDriver());
+ if (kProduce64BitELFFiles && Is64BitInstructionSet(GetCompilerDriver()->GetInstructionSet())) {
+ return art::ElfWriterQuick64::Create(file, oat_writer, dex_files, android_root, is_host,
+ *GetCompilerDriver());
+ } else {
+ return art::ElfWriterQuick32::Create(file, oat_writer, dex_files, android_root, is_host,
+ *GetCompilerDriver());
+ }
}
void InitCompilationUnit(CompilationUnit& cu) const OVERRIDE;