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 | d9249414b385d15d5ef0c0777c5110ac65d7c534 (patch) | |
tree | 5c44ff8a49256f75706f8a5bd3dcfcc5fb8ee5b4 | |
parent | d39242369a4b057be597f65bc8d1f88c350d1696 (diff) | |
download | bcm5719-llvm-d9249414b385d15d5ef0c0777c5110ac65d7c534.tar.gz bcm5719-llvm-d9249414b385d15d5ef0c0777c5110ac65d7c534.zip |
Add clang support for cortex-m0 cpus. Patch by James Orr.
llvm-svn: 128018
-rw-r--r-- | clang/lib/Driver/ToolChain.cpp | 8 | ||||
-rw-r--r-- | clang/lib/Driver/ToolChains.cpp | 3 | ||||
-rw-r--r-- | clang/lib/Driver/Tools.cpp | 2 |
3 files changed, 12 insertions, 1 deletions
diff --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp index e305683930c..06998a5edeb 100644 --- a/clang/lib/Driver/ToolChain.cpp +++ b/clang/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/clang/lib/Driver/ToolChains.cpp b/clang/lib/Driver/ToolChains.cpp index d4691ac86ef..6127d45fa3a 100644 --- a/clang/lib/Driver/ToolChains.cpp +++ b/clang/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/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index 5a4b7e29ba2..6bfe82a8a63 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/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"; |