summaryrefslogtreecommitdiff
path: root/compiler/optimizing/intrinsics_x86.cc
diff options
context:
space:
mode:
author Vladimir Marko <vmarko@google.com> 2023-04-05 15:24:41 +0000
committer Vladimir Marko <vmarko@google.com> 2023-04-06 10:06:57 +0000
commitf76ca8c3cb8a1f0ceee099ef8ce64295286b8b6b (patch)
tree11aa40ca2e1f5af365c84caf8493001014451c93 /compiler/optimizing/intrinsics_x86.cc
parentd2be01cdd96522828adcea8d245f48915dc7e507 (diff)
Clean up creating constant locations.
Change `Location::ConstantLocation()` to allow passing any instruction and `DCHECK()` that it is indeed a constant. Skip explicit calls to `HInstruction::AsConstant()` before calling `Location::ConstantLocation()`. Also cache results of `instuction->InputAt(.)` in some cases when it's used more than once. Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Test: run-gtests.sh Test: testrunner.py --target --optimizing Change-Id: I3c07642f6b3523b576ec229e4d234561ad74a20e
Diffstat (limited to 'compiler/optimizing/intrinsics_x86.cc')
-rw-r--r--compiler/optimizing/intrinsics_x86.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/optimizing/intrinsics_x86.cc b/compiler/optimizing/intrinsics_x86.cc
index 868fd4a120..d2072201f8 100644
--- a/compiler/optimizing/intrinsics_x86.cc
+++ b/compiler/optimizing/intrinsics_x86.cc
@@ -3963,7 +3963,7 @@ static void CreateVarHandleSetLocations(HInvoke* invoke) {
case DataType::Type::kInt64:
// We only handle constant non-atomic int64 values.
DCHECK(value->IsConstant());
- locations->SetInAt(value_index, Location::ConstantLocation(value->AsConstant()));
+ locations->SetInAt(value_index, Location::ConstantLocation(value));
break;
case DataType::Type::kReference:
locations->SetInAt(value_index, Location::RequiresRegister());