summaryrefslogtreecommitdiff
path: root/compiler/optimizing/intrinsics_utils.h
diff options
context:
space:
mode:
author Vladimir Marko <vmarko@google.com> 2023-11-28 11:11:55 +0100
committer VladimĂ­r Marko <vmarko@google.com> 2023-11-29 08:14:24 +0000
commite760b79bda4aa50c8addee63d1e0980e51667a72 (patch)
treee481f05f9eb399d4c023370e74f1b46b0e5283ef /compiler/optimizing/intrinsics_utils.h
parent09eb6f0e9e8d49d5381934bcfb710aea5dbcd139 (diff)
arm64: Implement Unsafe GetAndSet/-Add intrinsics.
Test: testrunner.py --target --64 --optimizing Bug: 26264765 Bug: 202868177 Change-Id: I9836a2eeee160e6c520e98ccb8af6f66b76bf00a
Diffstat (limited to 'compiler/optimizing/intrinsics_utils.h')
-rw-r--r--compiler/optimizing/intrinsics_utils.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/compiler/optimizing/intrinsics_utils.h b/compiler/optimizing/intrinsics_utils.h
index 380011e608..590bc34ee9 100644
--- a/compiler/optimizing/intrinsics_utils.h
+++ b/compiler/optimizing/intrinsics_utils.h
@@ -177,6 +177,16 @@ static inline bool IsUnsafeCASReference(HInvoke* invoke) {
}
}
+static inline bool IsUnsafeGetAndSetReference(HInvoke* invoke) {
+ switch (invoke->GetIntrinsic()) {
+ case Intrinsics::kUnsafeGetAndSetObject:
+ case Intrinsics::kJdkUnsafeGetAndSetReference:
+ return true;
+ default:
+ return false;
+ }
+}
+
static inline bool IsVarHandleCASFamily(HInvoke* invoke) {
mirror::VarHandle::AccessModeTemplate access_mode =
mirror::VarHandle::GetAccessModeTemplateByIntrinsic(invoke->GetIntrinsic());