aboutsummaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2019-11-21 20:26:34 +0000
committerDimitry Andric <dim@FreeBSD.org>2019-11-21 20:26:34 +0000
commit44344578f8f2053f967666ad061423fddb2edc2d (patch)
treea791000392bee987c28568f61bbd39ff4aa642f6 /contrib
parenta1a3a6d36e9ec5151a872ae33a24a5f471efa258 (diff)
downloadsrc-44344578f8f2053f967666ad061423fddb2edc2d.tar.gz
src-44344578f8f2053f967666ad061423fddb2edc2d.zip
Merge commit 3552d3e0f from llvm git (by Simon Atanasyan):
[mips] Add `octeon+` to the list of CPUs accepted by the driver This is one of the upstream changes needed for adding support for the OCTEON+ CPU type, so that we can test Clang builds using the most commonly available FreeBSD/mips64 reference platform, the Edge Router Lite. Requested by: kevans MFC after: 1 month X-MFC-With: r353358
Notes
Notes: svn path=/head/; revision=354982
Diffstat (limited to 'contrib')
-rw-r--r--contrib/llvm/tools/clang/lib/Basic/Targets/Mips.cpp3
-rw-r--r--contrib/llvm/tools/clang/lib/Basic/Targets/Mips.h2
-rw-r--r--contrib/llvm/tools/clang/lib/Driver/ToolChains/Gnu.cpp3
3 files changed, 6 insertions, 2 deletions
diff --git a/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.cpp b/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.cpp
index 2cafbe87a996..a43bc590084e 100644
--- a/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.cpp
+++ b/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.cpp
@@ -39,6 +39,7 @@ bool MipsTargetInfo::processorSupportsGPR64() const {
.Case("mips64r5", true)
.Case("mips64r6", true)
.Case("octeon", true)
+ .Case("octeon+", true)
.Default(false);
return false;
}
@@ -47,7 +48,7 @@ static constexpr llvm::StringLiteral ValidCPUNames[] = {
{"mips1"}, {"mips2"}, {"mips3"}, {"mips4"}, {"mips5"},
{"mips32"}, {"mips32r2"}, {"mips32r3"}, {"mips32r5"}, {"mips32r6"},
{"mips64"}, {"mips64r2"}, {"mips64r3"}, {"mips64r5"}, {"mips64r6"},
- {"octeon"}, {"p5600"}};
+ {"octeon"}, {"octeon+"}, {"p5600"}};
bool MipsTargetInfo::isValidCPUName(StringRef Name) const {
return llvm::find(ValidCPUNames, Name) != std::end(ValidCPUNames);
diff --git a/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.h b/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.h
index 474cda84a40e..224ec0783edf 100644
--- a/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.h
+++ b/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.h
@@ -180,6 +180,8 @@ public:
CPU = getCPU();
if (CPU == "octeon")
Features["mips64r2"] = Features["cnmips"] = true;
+ else if (CPU == "octeon+")
+ Features["mips64r2"] = Features["cnmips"] = Features["cnmipsp"] = true;
else
Features[CPU] = true;
return TargetInfo::initFeatureMap(Features, Diags, CPU, FeaturesVec);
diff --git a/contrib/llvm/tools/clang/lib/Driver/ToolChains/Gnu.cpp b/contrib/llvm/tools/clang/lib/Driver/ToolChains/Gnu.cpp
index 9e23519bfcc7..ef1225ac37e9 100644
--- a/contrib/llvm/tools/clang/lib/Driver/ToolChains/Gnu.cpp
+++ b/contrib/llvm/tools/clang/lib/Driver/ToolChains/Gnu.cpp
@@ -1392,7 +1392,8 @@ bool clang::driver::findMIPSMultilibs(const Driver &D,
addMultilibFlag(CPUName == "mips32r6", "march=mips32r6", Flags);
addMultilibFlag(CPUName == "mips64", "march=mips64", Flags);
addMultilibFlag(CPUName == "mips64r2" || CPUName == "mips64r3" ||
- CPUName == "mips64r5" || CPUName == "octeon",
+ CPUName == "mips64r5" || CPUName == "octeon" ||
+ CPUName == "octeon+",
"march=mips64r2", Flags);
addMultilibFlag(CPUName == "mips64r6", "march=mips64r6", Flags);
addMultilibFlag(isMicroMips(Args), "mmicromips", Flags);