diff options
| -rw-r--r-- | runtime/arch/arm/instruction_set_features_arm.cc | 2 | ||||
| -rw-r--r-- | runtime/arch/arm64/instruction_set_features_arm64.cc | 2 | ||||
| -rw-r--r-- | runtime/arch/arm64/instruction_set_features_arm64_test.cc | 20 |
3 files changed, 24 insertions, 0 deletions
diff --git a/runtime/arch/arm/instruction_set_features_arm.cc b/runtime/arch/arm/instruction_set_features_arm.cc index 801254fd30..608999b3bf 100644 --- a/runtime/arch/arm/instruction_set_features_arm.cc +++ b/runtime/arch/arm/instruction_set_features_arm.cc @@ -46,9 +46,11 @@ ArmFeaturesUniquePtr ArmInstructionSetFeatures::FromVariant( "cortex-a53", "cortex-a53.a57", "cortex-a53.a72", + "cortex-a55", "cortex-a57", "cortex-a72", "cortex-a73", + "cortex-a75", "exynos-m1", "denver", "kryo" diff --git a/runtime/arch/arm64/instruction_set_features_arm64.cc b/runtime/arch/arm64/instruction_set_features_arm64.cc index 42c9a846d0..d0f61c946c 100644 --- a/runtime/arch/arm64/instruction_set_features_arm64.cc +++ b/runtime/arch/arm64/instruction_set_features_arm64.cc @@ -52,6 +52,8 @@ Arm64FeaturesUniquePtr Arm64InstructionSetFeatures::FromVariant( // Check to see if this is an expected variant. static const char* arm64_known_variants[] = { "cortex-a35", + "cortex-a55", + "cortex-a75", "exynos-m1", "exynos-m2", "exynos-m3", diff --git a/runtime/arch/arm64/instruction_set_features_arm64_test.cc b/runtime/arch/arm64/instruction_set_features_arm64_test.cc index 7fd39b6b1b..b946f4f637 100644 --- a/runtime/arch/arm64/instruction_set_features_arm64_test.cc +++ b/runtime/arch/arm64/instruction_set_features_arm64_test.cc @@ -64,6 +64,26 @@ TEST(Arm64InstructionSetFeaturesTest, Arm64Features) { EXPECT_FALSE(kryo_features->Equals(cortex_a57_features.get())); EXPECT_STREQ("-a53", kryo_features->GetFeatureString().c_str()); EXPECT_EQ(kryo_features->AsBitmap(), 0U); + + std::unique_ptr<const InstructionSetFeatures> cortex_a55_features( + InstructionSetFeatures::FromVariant(InstructionSet::kArm64, "cortex-a55", &error_msg)); + ASSERT_TRUE(cortex_a55_features.get() != nullptr) << error_msg; + EXPECT_EQ(cortex_a55_features->GetInstructionSet(), InstructionSet::kArm64); + EXPECT_TRUE(cortex_a55_features->Equals(cortex_a55_features.get())); + EXPECT_TRUE(cortex_a55_features->Equals(cortex_a35_features.get())); + EXPECT_FALSE(cortex_a55_features->Equals(cortex_a57_features.get())); + EXPECT_STREQ("-a53", cortex_a55_features->GetFeatureString().c_str()); + EXPECT_EQ(cortex_a55_features->AsBitmap(), 0U); + + std::unique_ptr<const InstructionSetFeatures> cortex_a75_features( + InstructionSetFeatures::FromVariant(InstructionSet::kArm64, "cortex-a75", &error_msg)); + ASSERT_TRUE(cortex_a75_features.get() != nullptr) << error_msg; + EXPECT_EQ(cortex_a75_features->GetInstructionSet(), InstructionSet::kArm64); + EXPECT_TRUE(cortex_a75_features->Equals(cortex_a75_features.get())); + EXPECT_TRUE(cortex_a75_features->Equals(cortex_a35_features.get())); + EXPECT_FALSE(cortex_a75_features->Equals(cortex_a57_features.get())); + EXPECT_STREQ("-a53", cortex_a75_features->GetFeatureString().c_str()); + EXPECT_EQ(cortex_a75_features->AsBitmap(), 0U); } } // namespace art |