From 0ac7d570c99ddb1a22429a2f51e05d48a26daa36 Mon Sep 17 00:00:00 2001 From: Vladimir Marko Date: Wed, 22 Nov 2023 16:46:30 +0100 Subject: Update `JdkUnsafe` intrinsics. The `jdk.internal.misc.Unsafe.getObject*()` methods have been replaced with `getReference*()` and the old methods just forward to the new ones for backward compatibility. Update ART to pick up the new methods as intrinsics to support code that references them directly. Similarly update intrinics for other deprecated `JdkUnsafe.*Object` methods. Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Bug: 202868177 Change-Id: Ib07e6aa54c67d13079d632efabe4de2185694f4b --- compiler/optimizing/intrinsics_utils.h | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'compiler/optimizing/intrinsics_utils.h') diff --git a/compiler/optimizing/intrinsics_utils.h b/compiler/optimizing/intrinsics_utils.h index 41e109b587..380011e608 100644 --- a/compiler/optimizing/intrinsics_utils.h +++ b/compiler/optimizing/intrinsics_utils.h @@ -153,24 +153,23 @@ static inline bool IsVarHandleGet(HInvoke* invoke) { return access_mode == mirror::VarHandle::AccessModeTemplate::kGet; } -static inline bool IsUnsafeGetObject(HInvoke* invoke) { +static inline bool IsUnsafeGetReference(HInvoke* invoke) { switch (invoke->GetIntrinsic()) { case Intrinsics::kUnsafeGetObject: case Intrinsics::kUnsafeGetObjectVolatile: - case Intrinsics::kJdkUnsafeGetObject: - case Intrinsics::kJdkUnsafeGetObjectVolatile: - case Intrinsics::kJdkUnsafeGetObjectAcquire: + case Intrinsics::kJdkUnsafeGetReference: + case Intrinsics::kJdkUnsafeGetReferenceVolatile: + case Intrinsics::kJdkUnsafeGetReferenceAcquire: return true; default: return false; } } -static inline bool IsUnsafeCASObject(HInvoke* invoke) { +static inline bool IsUnsafeCASReference(HInvoke* invoke) { switch (invoke->GetIntrinsic()) { case Intrinsics::kUnsafeCASObject: case Intrinsics::kJdkUnsafeCASObject: - case Intrinsics::kJdkUnsafeCompareAndSetObject: case Intrinsics::kJdkUnsafeCompareAndSetReference: return true; default: -- cgit v1.2.3-59-g8ed1b