diff options
author | Bob Wilson <bob.wilson@apple.com> | 2011-03-21 20:40:05 +0000 |
---|---|---|
committer | Bob Wilson <bob.wilson@apple.com> | 2011-03-21 20:40:05 +0000 |
commit | 1ec0ade3bb7d1468c3dfa6ba7ce7a48b2b95d9d3 (patch) | |
tree | e87904cee2751506fe13087c5c5718fd2d5d3016 | |
parent | b26fbc13829212c1788272e9c880bbaa8055c55f (diff) |
Add clang support for cortex-m0 cpus. Patch by James Orr.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128018 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Driver/ToolChain.cpp | 8 | ||||
-rw-r--r-- | lib/Driver/ToolChains.cpp | 3 | ||||
-rw-r--r-- | lib/Driver/Tools.cpp | 2 |
3 files changed, 12 insertions, 1 deletions
diff --git a/lib/Driver/ToolChain.cpp b/lib/Driver/ToolChain.cpp index e305683930..06998a5ede 100644 --- a/lib/Driver/ToolChain.cpp +++ b/lib/Driver/ToolChain.cpp @@ -101,6 +101,8 @@ static const char *getARMTargetCPU(const ArgList &Args, return "iwmmxt"; if (MArch == "xscale") return "xscale"; + if (MArch == "armv6m" || MArch == "armv6-m") + return "cortex-m0"; // If all else failed, return the most base CPU LLVM supports. return "arm7tdmi"; @@ -137,6 +139,12 @@ static const char *getLLVMArchSuffixForARM(llvm::StringRef CPU) { if (CPU == "cortex-a8" || CPU == "cortex-a9") return "v7"; + if (CPU == "cortex-m3") + return "v7m"; + + if (CPU == "cortex-m0") + return "v6m"; + return ""; } diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp index d4691ac86e..6127d45fa3 100644 --- a/lib/Driver/ToolChains.cpp +++ b/lib/Driver/ToolChains.cpp @@ -101,7 +101,8 @@ static const char *GetArmArchForMCpu(llvm::StringRef Value) { return "xscale"; if (Value == "arm1136j-s" || Value == "arm1136jf-s" || - Value == "arm1176jz-s" || Value == "arm1176jzf-s") + Value == "arm1176jz-s" || Value == "arm1176jzf-s" || + Value == "cortex-m0" ) return "armv6"; if (Value == "cortex-a8" || Value == "cortex-r4" || Value == "cortex-m3") diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index 5a4b7e29ba..6bfe82a8a6 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -374,6 +374,8 @@ static const char *getARMTargetCPU(const ArgList &Args, return "iwmmxt"; if (MArch == "xscale") return "xscale"; + if (MArch == "armv6m" || MArch == "armv6-m") + return "cortex-m0"; // If all else failed, return the most base CPU LLVM supports. return "arm7tdmi"; |