summaryrefslogtreecommitdiff
path: root/compiler/optimizing
diff options
context:
space:
mode:
author Jeff Hao <jeffhao@google.com> 2015-06-19 17:38:55 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2015-06-19 17:38:56 +0000
commite102f1937ca14df87594469430d2e6e0ebe0f357 (patch)
treedf8cb62b5ddd25f2ecb038639287c6b2d8f42abd /compiler/optimizing
parente4bb626ff09e409c9482e515716de7cd595ea466 (diff)
parentcad65427d39c8ca9849d49d049ca6d263ada938a (diff)
Merge "Fix StringChange for optimizing compiler."
Diffstat (limited to 'compiler/optimizing')
-rw-r--r--compiler/optimizing/builder.cc2
-rw-r--r--compiler/optimizing/code_generator_x86_64.cc2
2 files changed, 2 insertions, 2 deletions
diff --git a/compiler/optimizing/builder.cc b/compiler/optimizing/builder.cc
index b568f31a57..2a555e46ac 100644
--- a/compiler/optimizing/builder.cc
+++ b/compiler/optimizing/builder.cc
@@ -662,7 +662,7 @@ bool HGraphBuilder::BuildInvoke(const Instruction& instruction,
(target_method.dex_method_index == outer_compilation_unit_->GetDexMethodIndex())
&& (target_method.dex_file == outer_compilation_unit_->GetDexFile());
- if (optimized_invoke_type == kStatic) {
+ if (optimized_invoke_type == kStatic && !is_string_init) {
ScopedObjectAccess soa(Thread::Current());
StackHandleScope<4> hs(soa.Self());
Handle<mirror::DexCache> dex_cache(hs.NewHandle(
diff --git a/compiler/optimizing/code_generator_x86_64.cc b/compiler/optimizing/code_generator_x86_64.cc
index e64540be43..e55de8f98a 100644
--- a/compiler/optimizing/code_generator_x86_64.cc
+++ b/compiler/optimizing/code_generator_x86_64.cc
@@ -391,7 +391,7 @@ void CodeGeneratorX86_64::GenerateStaticOrDirectCall(HInvokeStaticOrDirect* invo
if (invoke->IsStringInit()) {
CpuRegister reg = temp.AsRegister<CpuRegister>();
// temp = thread->string_init_entrypoint
- __ gs()->movl(reg, Address::Absolute(invoke->GetStringInitOffset()));
+ __ gs()->movq(reg, Address::Absolute(invoke->GetStringInitOffset(), true));
// (temp + offset_of_quick_compiled_code)()
__ call(Address(reg, ArtMethod::EntryPointFromQuickCompiledCodeOffset(
kX86_64WordSize).SizeValue()));