diff options
author | Aart Bik <ajcbik@google.com> | 2017-04-25 15:53:58 -0700 |
---|---|---|
committer | Aart Bik <ajcbik@google.com> | 2017-04-25 16:13:55 -0700 |
commit | db14fcf45effb7dd4b3febd697ff5f0541119835 (patch) | |
tree | 4197a7be031e7206b1c4f55a51821e9b273b1b36 /compiler/optimizing/loop_optimization.cc | |
parent | 06660db82d6b3d59080584431addf3797a468a70 (diff) |
Pack booleans in the already existing bit field.
Also adds is_string_char_at boolean in preparation of
[un]compressed string vectorization support.
Test: test-art-target, test-art-host
Change-Id: Ia99b28564727bf91b3d5cfc49f6d40a4dd1ffd3b
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); |