summaryrefslogtreecommitdiff
path: root/compiler/dex/quick/local_optimizations.cc
diff options
context:
space:
mode:
author Dave Allison <dallison@google.com> 2014-08-06 19:40:49 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2014-08-05 00:20:48 +0000
commita947ebc45d2785522b3c9d3295be68fd35d548be (patch)
tree0b4a2d6a914d4a80cedafe0e356fc37335222b8c /compiler/dex/quick/local_optimizations.cc
parent860feb0a60d0fe9311f28bd590058f6660d130b1 (diff)
parentadc73cbe869f9560cf84bda2e953a2b267b1438f (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.cc4
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)) {