diff options
Diffstat (limited to 'compiler/optimizing')
| -rw-r--r-- | compiler/optimizing/code_generator_mips.cc | 2 | ||||
| -rw-r--r-- | compiler/optimizing/load_store_elimination.cc | 3 |
2 files changed, 4 insertions, 1 deletions
diff --git a/compiler/optimizing/code_generator_mips.cc b/compiler/optimizing/code_generator_mips.cc index 4404aa3289..8ba4556184 100644 --- a/compiler/optimizing/code_generator_mips.cc +++ b/compiler/optimizing/code_generator_mips.cc @@ -3025,7 +3025,7 @@ void CodeGeneratorMIPS::GenerateStaticOrDirectCall(HInvokeStaticOrDirect* invoke FALLTHROUGH_INTENDED; case HInvokeStaticOrDirect::CodePtrLocation::kCallArtMethod: // T9 = callee_method->entry_point_from_quick_compiled_code_; - __ LoadFromOffset(kLoadDoubleword, + __ LoadFromOffset(kLoadWord, T9, callee_method.AsRegister<Register>(), ArtMethod::EntryPointFromQuickCompiledCodeOffset( diff --git a/compiler/optimizing/load_store_elimination.cc b/compiler/optimizing/load_store_elimination.cc index 68d02a4383..90f28e511e 100644 --- a/compiler/optimizing/load_store_elimination.cc +++ b/compiler/optimizing/load_store_elimination.cc @@ -695,12 +695,15 @@ class LSEVisitor : public HGraphVisitor { } else { redundant_store = true; } + // TODO: eliminate the store if the singleton object is not finalizable. + redundant_store = false; } if (redundant_store) { removed_instructions_.push_back(instruction); substitute_instructions_.push_back(nullptr); TryRemovingNullCheck(instruction); } + heap_values[idx] = value; // This store may kill values in other heap locations due to aliasing. for (size_t i = 0; i < heap_values.size(); i++) { |