ART: Fix last lpae occurrence, Arm64 generic

Fix the last occurrence of an lpae string in the default
instruction-set-feature strings (should be removed).

Allow "generic" Arm64 variant (same as "default").

Change-Id: I8bdd9fc7f596245e6541469664db01b3e781c51c
diff --git a/runtime/Android.mk b/runtime/Android.mk
index 8ced4d9..25fe45f 100644
--- a/runtime/Android.mk
+++ b/runtime/Android.mk
@@ -344,7 +344,7 @@
 2ND_LIBART_TARGET_DEFAULT_INSTRUCTION_SET_FEATURES := default
 ifeq ($(DEX2OAT_TARGET_ARCH),arm)
   ifneq (,$(filter $(DEX2OAT_TARGET_CPU_VARIANT),cortex-a15 krait denver))
-    LIBART_TARGET_DEFAULT_INSTRUCTION_SET_FEATURES := lpae,div
+    LIBART_TARGET_DEFAULT_INSTRUCTION_SET_FEATURES := atomic_ldrd_strd,div
   else
     ifneq (,$(filter $(DEX2OAT_TARGET_CPU_VARIANT),cortex-a7))
       LIBART_TARGET_DEFAULT_INSTRUCTION_SET_FEATURES := div
@@ -353,7 +353,7 @@
 endif
 ifeq ($(2ND_DEX2OAT_TARGET_ARCH),arm)
   ifneq (,$(filter $(DEX2OAT_TARGET_CPU_VARIANT),cortex-a15 krait denver))
-    2ND_LIBART_TARGET_DEFAULT_INSTRUCTION_SET_FEATURES := lpae,div
+    2ND_LIBART_TARGET_DEFAULT_INSTRUCTION_SET_FEATURES := atomic_ldrd_strd,div
   else
     ifneq (,$(filter $(DEX2OAT_TARGET_CPU_VARIANT),cortex-a7))
       2ND_LIBART_TARGET_DEFAULT_INSTRUCTION_SET_FEATURES := div
diff --git a/runtime/arch/arm64/instruction_set_features_arm64.cc b/runtime/arch/arm64/instruction_set_features_arm64.cc
index 18536ed..696dd94 100644
--- a/runtime/arch/arm64/instruction_set_features_arm64.cc
+++ b/runtime/arch/arm64/instruction_set_features_arm64.cc
@@ -26,7 +26,7 @@
 
 const Arm64InstructionSetFeatures* Arm64InstructionSetFeatures::FromVariant(
     const std::string& variant ATTRIBUTE_UNUSED, std::string* error_msg ATTRIBUTE_UNUSED) {
-  if (variant != "default") {
+  if (variant != "default" && variant != "generic") {
     std::ostringstream os;
     os << "Unexpected CPU variant for Arm64: " << variant;
     *error_msg = os.str();