From e760b79bda4aa50c8addee63d1e0980e51667a72 Mon Sep 17 00:00:00 2001 From: Vladimir Marko Date: Tue, 28 Nov 2023 11:11:55 +0100 Subject: arm64: Implement Unsafe GetAndSet/-Add intrinsics. Test: testrunner.py --target --64 --optimizing Bug: 26264765 Bug: 202868177 Change-Id: I9836a2eeee160e6c520e98ccb8af6f66b76bf00a --- compiler/optimizing/intrinsics_utils.h | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'compiler/optimizing/intrinsics_utils.h') 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()); -- cgit v1.2.3-59-g8ed1b