>From 3e5040176f752221e093f1c10f281be17729c1e6 Mon Sep 17 00:00:00 2001
From: Quentin Neill <qneill@codeaurora.org>
Date: Wed, 19 Dec 2012 13:13:25 -0600
Subject: [PATCH] Finish adding ARM cortex-a5 subtarget

---
 lib/Basic/Targets.cpp     |    4 ++--
 lib/Driver/ToolChain.cpp  |    4 ++--
 lib/Driver/ToolChains.cpp |    2 +-
 lib/Driver/Tools.cpp      |    2 +-
 4 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp
index 96cc1cf..7aabf2e 100644
--- a/lib/Basic/Targets.cpp
+++ b/lib/Basic/Targets.cpp
@@ -3143,7 +3143,7 @@ public:
     else if (CPU == "cortex-a8" || CPU == "cortex-a15" ||
              CPU == "cortex-a9" || CPU == "cortex-a9-mp")
       Features["neon"] = true;
-    else if (CPU == "swift") {
+    else if (CPU == "swift" || CPU == "cortex-a5") {
       Features["vfp4"] = true;
       Features["neon"] = true;
     }
@@ -3225,7 +3225,7 @@ public:
   }
   static const char *getCPUProfile(StringRef Name) {
     return llvm::StringSwitch<const char*>(Name)
-      .Cases("cortex-a8", "cortex-a9", "A")
+      .Cases("cortex-a5", "cortex-a8", "cortex-a9", "A")
       .Cases("cortex-m3", "cortex-m4", "cortex-m0", "M")
       .Default("");
   }
diff --git a/lib/Driver/ToolChain.cpp b/lib/Driver/ToolChain.cpp
index df7de73..edf4d2e 100644
--- a/lib/Driver/ToolChain.cpp
+++ b/lib/Driver/ToolChain.cpp
@@ -109,7 +109,7 @@ static const char *getARMTargetCPU(const ArgList &Args,
     .Case("armv6j", "arm1136j-s")
     .Cases("armv6z", "armv6zk", "arm1176jzf-s")
     .Case("armv6t2", "arm1156t2-s")
-    .Cases("armv7", "armv7a", "armv7-a", "cortex-a8")
+    .Cases("armv7", "armv7a", "armv7-a", "cortex-a5", "cortex-a8")
     .Cases("armv7f", "armv7-f", "cortex-a9-mp")
     .Cases("armv7s", "armv7-s", "swift")
     .Cases("armv7r", "armv7-r", "cortex-r4")
@@ -140,7 +140,7 @@ static const char *getLLVMArchSuffixForARM(StringRef CPU) {
     .Cases("arm1136j-s",  "arm1136jf-s",  "arm1176jz-s", "v6")
     .Cases("arm1176jzf-s",  "mpcorenovfp",  "mpcore", "v6")
     .Cases("arm1156t2-s",  "arm1156t2f-s", "v6t2")
-    .Cases("cortex-a8", "cortex-a9", "cortex-a15", "v7")
+    .Cases(".cortex-a5", "cortex-a8", "cortex-a9", "cortex-a15", "v7")
     .Case("cortex-m3", "v7m")
     .Case("cortex-m4", "v7m")
     .Case("cortex-m0", "v6m")
diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp
index 251467c..ffb4f5e 100644
--- a/lib/Driver/ToolChains.cpp
+++ b/lib/Driver/ToolChains.cpp
@@ -120,7 +120,7 @@ static const char *GetArmArchForMCpu(StringRef Value) {
     .Case("xscale", "xscale")
     .Cases("arm1136j-s", "arm1136jf-s", "arm1176jz-s",
            "arm1176jzf-s", "cortex-m0", "armv6")
-    .Cases("cortex-a8", "cortex-r4", "cortex-m3", "cortex-a9", "cortex-a15",
+    .Cases("cortex-a5", "cortex-a8", "cortex-r4", "cortex-m3", "cortex-a9", "cortex-a15",
            "armv7")
     .Case("cortex-a9-mp", "armv7f")
     .Case("swift", "armv7s")
diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp
index 60abb15..6dc17b6 100644
--- a/lib/Driver/Tools.cpp
+++ b/lib/Driver/Tools.cpp
@@ -527,7 +527,7 @@ static std::string getARMTargetCPU(const ArgList &Args,
     .Case("armv6j", "arm1136j-s")
     .Cases("armv6z", "armv6zk", "arm1176jzf-s")
     .Case("armv6t2", "arm1156t2-s")
-    .Cases("armv7", "armv7a", "armv7-a", "cortex-a8")
+    .Cases("armv7", "armv7a", "armv7-a", "cortex-a5", "cortex-a8")
     .Cases("armv7f", "armv7-f", "cortex-a9-mp")
     .Cases("armv7s", "armv7-s", "swift")
     .Cases("armv7r", "armv7-r", "cortex-r4")
-- 
1.7.8.3

