diff options
author | Simon Atanasyan <simon@atanasyan.com> | 2014-07-03 08:31:23 +0000 |
---|---|---|
committer | Simon Atanasyan <simon@atanasyan.com> | 2014-07-03 08:31:23 +0000 |
commit | 6b3544eb1d109dfc5d24a3a77f5496c4a6edd341 (patch) | |
tree | 89bef532a572376f45fa32d4dbdb4fece26f00c3 /clang/lib/Basic/Targets.cpp | |
parent | 89c05ad165812fc7d29fa473b2a4439c0919e47d (diff) | |
download | bcm5719-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.cpp | 11 |
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 { |