Clean up duplicated intrinsics code.
Test: testrunner.py --host --optimizing
Change-Id: Ie985bb26e9e834f017a1209763e9b592056e7864
diff --git a/compiler/optimizing/intrinsics_arm64.cc b/compiler/optimizing/intrinsics_arm64.cc
index 8d576ca..5963b7f 100644
--- a/compiler/optimizing/intrinsics_arm64.cc
+++ b/compiler/optimizing/intrinsics_arm64.cc
@@ -739,25 +739,10 @@
}
}
-static bool UnsafeGetIntrinsicOnCallList(Intrinsics intrinsic) {
- switch (intrinsic) {
- case Intrinsics::kUnsafeGetObject:
- case Intrinsics::kUnsafeGetObjectVolatile:
- case Intrinsics::kJdkUnsafeGetReference:
- case Intrinsics::kJdkUnsafeGetReferenceVolatile:
- case Intrinsics::kJdkUnsafeGetReferenceAcquire:
- return true;
- default:
- break;
- }
- return false;
-}
-
static void CreateUnsafeGetLocations(ArenaAllocator* allocator,
HInvoke* invoke,
CodeGeneratorARM64* codegen) {
- bool can_call =
- codegen->EmitReadBarrier() && UnsafeGetIntrinsicOnCallList(invoke->GetIntrinsic());
+ bool can_call = codegen->EmitReadBarrier() && IsUnsafeGetReference(invoke);
LocationSummary* locations =
new (allocator) LocationSummary(invoke,
can_call
diff --git a/compiler/optimizing/intrinsics_arm_vixl.cc b/compiler/optimizing/intrinsics_arm_vixl.cc
index 0190c12..5c231ec 100644
--- a/compiler/optimizing/intrinsics_arm_vixl.cc
+++ b/compiler/optimizing/intrinsics_arm_vixl.cc
@@ -2802,26 +2802,11 @@
}
}
-static bool UnsafeGetIntrinsicOnCallList(Intrinsics intrinsic) {
- switch (intrinsic) {
- case Intrinsics::kUnsafeGetObject:
- case Intrinsics::kUnsafeGetObjectVolatile:
- case Intrinsics::kJdkUnsafeGetReference:
- case Intrinsics::kJdkUnsafeGetReferenceVolatile:
- case Intrinsics::kJdkUnsafeGetReferenceAcquire:
- return true;
- default:
- break;
- }
- return false;
-}
-
static void CreateUnsafeGetLocations(HInvoke* invoke,
CodeGeneratorARMVIXL* codegen,
DataType::Type type,
bool atomic) {
- bool can_call =
- codegen->EmitReadBarrier() && UnsafeGetIntrinsicOnCallList(invoke->GetIntrinsic());
+ bool can_call = codegen->EmitReadBarrier() && IsUnsafeGetReference(invoke);
ArenaAllocator* allocator = invoke->GetBlock()->GetGraph()->GetAllocator();
LocationSummary* locations =
new (allocator) LocationSummary(invoke,
diff --git a/compiler/optimizing/intrinsics_x86.cc b/compiler/optimizing/intrinsics_x86.cc
index 575a1d3..3589f4a 100644
--- a/compiler/optimizing/intrinsics_x86.cc
+++ b/compiler/optimizing/intrinsics_x86.cc
@@ -1739,27 +1739,12 @@
}
}
-static bool UnsafeGetIntrinsicOnCallList(Intrinsics intrinsic) {
- switch (intrinsic) {
- case Intrinsics::kUnsafeGetObject:
- case Intrinsics::kUnsafeGetObjectVolatile:
- case Intrinsics::kJdkUnsafeGetReference:
- case Intrinsics::kJdkUnsafeGetReferenceVolatile:
- case Intrinsics::kJdkUnsafeGetReferenceAcquire:
- return true;
- default:
- break;
- }
- return false;
-}
-
static void CreateIntIntIntToIntLocations(ArenaAllocator* allocator,
HInvoke* invoke,
CodeGeneratorX86* codegen,
DataType::Type type,
bool is_volatile) {
- bool can_call =
- codegen->EmitReadBarrier() && UnsafeGetIntrinsicOnCallList(invoke->GetIntrinsic());
+ bool can_call = codegen->EmitReadBarrier() && IsUnsafeGetReference(invoke);
LocationSummary* locations =
new (allocator) LocationSummary(invoke,
can_call
diff --git a/compiler/optimizing/intrinsics_x86_64.cc b/compiler/optimizing/intrinsics_x86_64.cc
index a1c1291..cf04954 100644
--- a/compiler/optimizing/intrinsics_x86_64.cc
+++ b/compiler/optimizing/intrinsics_x86_64.cc
@@ -1916,25 +1916,10 @@
}
}
-static bool UnsafeGetIntrinsicOnCallList(Intrinsics intrinsic) {
- switch (intrinsic) {
- case Intrinsics::kUnsafeGetObject:
- case Intrinsics::kUnsafeGetObjectVolatile:
- case Intrinsics::kJdkUnsafeGetReference:
- case Intrinsics::kJdkUnsafeGetReferenceVolatile:
- case Intrinsics::kJdkUnsafeGetReferenceAcquire:
- return true;
- default:
- break;
- }
- return false;
-}
-
static void CreateIntIntIntToIntLocations(ArenaAllocator* allocator,
HInvoke* invoke,
CodeGeneratorX86_64* codegen) {
- bool can_call =
- codegen->EmitReadBarrier() && UnsafeGetIntrinsicOnCallList(invoke->GetIntrinsic());
+ bool can_call = codegen->EmitReadBarrier() && IsUnsafeGetReference(invoke);
LocationSummary* locations =
new (allocator) LocationSummary(invoke,
can_call