diff options
Diffstat (limited to 'compiler/optimizing/loop_optimization.cc')
| -rw-r--r-- | compiler/optimizing/loop_optimization.cc | 7 | 
1 files changed, 5 insertions, 2 deletions
| diff --git a/compiler/optimizing/loop_optimization.cc b/compiler/optimizing/loop_optimization.cc index 5a95abdb50..da2acd1fd3 100644 --- a/compiler/optimizing/loop_optimization.cc +++ b/compiler/optimizing/loop_optimization.cc @@ -1001,8 +1001,9 @@ void HLoopOptimization::GenerateVecMem(HInstruction* org,        vector = new (global_allocator_) HVecStore(            global_allocator_, org->InputAt(0), opa, opb, type, vector_length_);      } else  { +      bool is_string_char_at = org->AsArrayGet()->IsStringCharAt();        vector = new (global_allocator_) HVecLoad( -          global_allocator_, org->InputAt(0), opa, type, vector_length_); +          global_allocator_, org->InputAt(0), opa, type, vector_length_, is_string_char_at);      }    } else {      // Scalar store or load. @@ -1010,7 +1011,9 @@ void HLoopOptimization::GenerateVecMem(HInstruction* org,      if (opb != nullptr) {        vector = new (global_allocator_) HArraySet(org->InputAt(0), opa, opb, type, kNoDexPc);      } else  { -      vector = new (global_allocator_) HArrayGet(org->InputAt(0), opa, type, kNoDexPc); +      bool is_string_char_at = org->AsArrayGet()->IsStringCharAt(); +      vector = new (global_allocator_) HArrayGet( +          org->InputAt(0), opa, type, kNoDexPc, is_string_char_at);      }    }    vector_map_->Put(org, vector); |