diff options
| author | 2014-08-06 19:40:49 +0000 | |
|---|---|---|
| committer | 2014-08-05 00:20:48 +0000 | |
| commit | a947ebc45d2785522b3c9d3295be68fd35d548be (patch) | |
| tree | 0b4a2d6a914d4a80cedafe0e356fc37335222b8c /compiler/dex/quick/local_optimizations.cc | |
| parent | 860feb0a60d0fe9311f28bd590058f6660d130b1 (diff) | |
| parent | adc73cbe869f9560cf84bda2e953a2b267b1438f (diff) | |
Merge "Fix checks for kLiteral in local optimizations."
Diffstat (limited to 'compiler/dex/quick/local_optimizations.cc')
| -rw-r--r-- | compiler/dex/quick/local_optimizations.cc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/compiler/dex/quick/local_optimizations.cc b/compiler/dex/quick/local_optimizations.cc index eec2b32726..e0f4691063 100644 --- a/compiler/dex/quick/local_optimizations.cc +++ b/compiler/dex/quick/local_optimizations.cc @@ -200,7 +200,7 @@ void Mir2Lir::ApplyLoadStoreElimination(LIR* head_lir, LIR* tail_lir) { /* Initialize alias list */ alias_list.clear(); ResourceMask alias_reg_list_mask = kEncodeNone; - if (!this_mem_mask.Intersects(kEncodeLiteral)) { + if (!this_mem_mask.Intersects(kEncodeMem) && !this_mem_mask.Intersects(kEncodeLiteral)) { alias_list.push_back(dest_reg_id); SetupRegMask(&alias_reg_list_mask, dest_reg_id); } @@ -248,7 +248,7 @@ void Mir2Lir::ApplyLoadStoreElimination(LIR* head_lir, LIR* tail_lir) { bool is_check_lir_load = check_flags & IS_LOAD; bool reg_compatible = RegStorage::SameRegType(check_lir->operands[0], native_reg_id); - if (alias_mem_mask.Equals(kEncodeLiteral)) { + if (!alias_mem_mask.Intersects(kEncodeMem) && alias_mem_mask.Equals(kEncodeLiteral)) { DCHECK(check_flags & IS_LOAD); /* Same value && same register type */ if (reg_compatible && (this_lir->target == check_lir->target)) { |