diff options
author | 2024-11-07 15:15:41 +0000 | |
---|---|---|
committer | 2024-11-12 14:13:01 +0000 | |
commit | 20cdc427d5f5875c2d58f9fde775957ad2e28cfd (patch) | |
tree | 2a4c8b3d71e54273745fe161a82905a6754013ee /compiler/optimizing/intrinsics_x86.cc | |
parent | 83668f93e29877e8cab86bcd25fba90412981518 (diff) |
Add missing Location::kNoOutputOverlap
This can save some ParallelMove instructions.
For x86(_64) all FPToFP intrinsics can add it.
For RISC-V, MathSqrt can add it but the ones that call
GenDoubleRound can't. Also, we can add it for MathMultiplyHigh.
Test: art/test/testrunner/testrunner.py --host --64 -b --optimizing
Test: LUCI run https://ci.chromium.org/b/8731845964396026257
Change-Id: I28e13caf84cd850566538efbd285c0264ce80a1a
Diffstat (limited to 'compiler/optimizing/intrinsics_x86.cc')
-rw-r--r-- | compiler/optimizing/intrinsics_x86.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/optimizing/intrinsics_x86.cc b/compiler/optimizing/intrinsics_x86.cc index f71689230d..952fb855be 100644 --- a/compiler/optimizing/intrinsics_x86.cc +++ b/compiler/optimizing/intrinsics_x86.cc @@ -310,7 +310,7 @@ static void CreateFPToFPLocations(ArenaAllocator* allocator, HInvoke* invoke) { LocationSummary* locations = new (allocator) LocationSummary(invoke, LocationSummary::kNoCall, kIntrinsified); locations->SetInAt(0, Location::RequiresFpuRegister()); - locations->SetOut(Location::RequiresFpuRegister()); + locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap); } void IntrinsicLocationsBuilderX86::VisitMathSqrt(HInvoke* invoke) { |