summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic/Targets.cpp
diff options
context:
space:
mode:
authorSimon Atanasyan <simon@atanasyan.com>2014-07-03 08:31:23 +0000
committerSimon Atanasyan <simon@atanasyan.com>2014-07-03 08:31:23 +0000
commit6b3544eb1d109dfc5d24a3a77f5496c4a6edd341 (patch)
tree89bef532a572376f45fa32d4dbdb4fece26f00c3 /clang/lib/Basic/Targets.cpp
parent89c05ad165812fc7d29fa473b2a4439c0919e47d (diff)
downloadbcm5719-llvm-6b3544eb1d109dfc5d24a3a77f5496c4a6edd341.tar.gz
bcm5719-llvm-6b3544eb1d109dfc5d24a3a77f5496c4a6edd341.zip
[Driver][Mips] Check MIPS CPU name provided to the Clang driver.
llvm-svn: 212260
Diffstat (limited to 'clang/lib/Basic/Targets.cpp')
-rw-r--r--clang/lib/Basic/Targets.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 424ce6c54d6..81a00038ba3 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -5305,8 +5305,17 @@ public:
StringRef getABI() const override { return ABI; }
bool setCPU(const std::string &Name) override {
+ bool IsMips32 = getTriple().getArch() == llvm::Triple::mips ||
+ getTriple().getArch() == llvm::Triple::mipsel;
CPU = Name;
- return true;
+ return llvm::StringSwitch<bool>(Name)
+ .Case("mips32", IsMips32)
+ .Case("mips32r2", IsMips32)
+ .Case("mips32r6", IsMips32)
+ .Case("mips64", true)
+ .Case("mips64r2", true)
+ .Case("mips64r6", true)
+ .Default(false);
}
const std::string& getCPU() const { return CPU; }
void getDefaultFeatures(llvm::StringMap<bool> &Features) const override {
OpenPOWER on IntegriCloud