diff options
author | 2020-07-20 10:42:15 +0100 | |
---|---|---|
committer | 2020-09-24 10:51:06 +0000 | |
commit | 8942b3a769729e9c1fb65f5b738317483124dc45 (patch) | |
tree | e99c60039c9ef27d05a6d43269232953b72058be /compiler/optimizing/intrinsics_utils.h | |
parent | 0571d479f52781df0b4d94caaf704631122ba6e6 (diff) |
Integer.divideUnsigned() intrinsic on ARM64.
Implements the intrinsic for arm64; adds a comment
for a DCHECK() that prevented kNoOutputOverlap usage
in intrinsics with slow paths.
Author: Vladimir Marko.
Committer: Artem Serov.
Test: Covered by 082-inline-execute.
Test: testrunner.py --target --optimizing --64
Bug: 156736938
Change-Id: Ie1e61c19afe6a899fd4152206e5dbf9ad013e602
Diffstat (limited to 'compiler/optimizing/intrinsics_utils.h')
-rw-r--r-- | compiler/optimizing/intrinsics_utils.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/compiler/optimizing/intrinsics_utils.h b/compiler/optimizing/intrinsics_utils.h index 8c9dd14b19..b4ef5ddde3 100644 --- a/compiler/optimizing/intrinsics_utils.h +++ b/compiler/optimizing/intrinsics_utils.h @@ -78,6 +78,11 @@ class IntrinsicSlowPath : public TSlowPathCode { Location out = invoke_->GetLocations()->Out(); if (out.IsValid()) { DCHECK(out.IsRegisterKind()); // TODO: Replace this when we support output in memory. + // We want to double-check that we don't overwrite a live register with the return + // value. + // Note: For the possible kNoOutputOverlap case we can't simply remove the OUT register + // from the GetLiveRegisters() - theoretically it might be needed after the return from + // the slow path. DCHECK(!invoke_->GetLocations()->GetLiveRegisters()->OverlapsRegisters(out)); codegen->MoveFromReturnRegister(out, invoke_->GetType()); } |