summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Atanasyan <simon@atanasyan.com>2019-11-05 02:21:16 +0300
committerSimon Atanasyan <simon@atanasyan.com>2019-11-07 13:58:50 +0300
commit3552d3e0f7c943c3547c0227ddd80fd4d0732a7e (patch)
tree7c04687d5fbaf2f8d4f101fc341fd30659fe90f0
parentbf996f761b99108c71efc84688597b7c3c63139e (diff)
downloadbcm5719-llvm-3552d3e0f7c943c3547c0227ddd80fd4d0732a7e.tar.gz
bcm5719-llvm-3552d3e0f7c943c3547c0227ddd80fd4d0732a7e.zip
[mips] Add `octeon+` to the list of CPUs accepted by the driver
-rw-r--r--clang/lib/Basic/Targets/Mips.cpp3
-rw-r--r--clang/lib/Basic/Targets/Mips.h2
-rw-r--r--clang/lib/Driver/ToolChains/Gnu.cpp3
-rw-r--r--clang/test/Driver/mips-abi.c6
-rw-r--r--clang/test/Driver/mips-as.c10
-rw-r--r--clang/test/Misc/target-invalid-cpu-note.c2
6 files changed, 23 insertions, 3 deletions
diff --git a/clang/lib/Basic/Targets/Mips.cpp b/clang/lib/Basic/Targets/Mips.cpp
index 9b35bbcb763..a08c2318aec 100644
--- a/clang/lib/Basic/Targets/Mips.cpp
+++ b/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/clang/lib/Basic/Targets/Mips.h b/clang/lib/Basic/Targets/Mips.h
index 474cda84a40..224ec0783ed 100644
--- a/clang/lib/Basic/Targets/Mips.h
+++ b/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/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp
index c302a31cd2e..6a0c756031d 100644
--- a/clang/lib/Driver/ToolChains/Gnu.cpp
+++ b/clang/lib/Driver/ToolChains/Gnu.cpp
@@ -1393,7 +1393,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);
diff --git a/clang/test/Driver/mips-abi.c b/clang/test/Driver/mips-abi.c
index 63ffd99b522..f0f678b42f6 100644
--- a/clang/test/Driver/mips-abi.c
+++ b/clang/test/Driver/mips-abi.c
@@ -153,6 +153,12 @@
// MIPS-ARCH-OCTEON: "-target-cpu" "octeon"
// MIPS-ARCH-OCTEON: "-target-abi" "n64"
//
+// RUN: %clang -target mips64-linux-gnu -### -c %s \
+// RUN: -march=octeon+ 2>&1 \
+// RUN: | FileCheck -check-prefix=MIPS-ARCH-OCTEONP %s
+// MIPS-ARCH-OCTEONP: "-target-cpu" "octeon+"
+// MIPS-ARCH-OCTEONP: "-target-abi" "n64"
+//
// RUN: not %clang -target mips64-linux-gnu -c %s \
// RUN: -march=mips32 2>&1 \
// RUN: | FileCheck -check-prefix=MIPS-ARCH-6432 %s
diff --git a/clang/test/Driver/mips-as.c b/clang/test/Driver/mips-as.c
index ced64d83707..cd4808d14ec 100644
--- a/clang/test/Driver/mips-as.c
+++ b/clang/test/Driver/mips-as.c
@@ -88,6 +88,16 @@
// RUN: | FileCheck -check-prefix=MIPS-OCTEON %s
// MIPS-OCTEON: as{{(.exe)?}}" "-march" "octeon" "-mabi" "64" "-mno-shared" "-EB"
//
+// RUN: %clang -target mips64-linux-gnu -march=octeon+ -### \
+// RUN: -no-integrated-as -c %s 2>&1 \
+// RUN: | FileCheck -check-prefix=MIPS-OCTEONP-PIC %s
+// MIPS-OCTEONP-PIC: as{{(.exe)?}}" "-march" "octeon+" "-mabi" "64" "-EB" "-KPIC"
+//
+// RUN: %clang -target mips64-linux-gnu -march=octeon+ -### \
+// RUN: -no-integrated-as -c %s -fno-pic -mno-abicalls 2>&1 \
+// RUN: | FileCheck -check-prefix=MIPS-OCTEONP %s
+// MIPS-OCTEONP: as{{(.exe)?}}" "-march" "octeon+" "-mabi" "64" "-mno-shared" "-EB"
+//
// RUN: %clang -target mips-linux-gnu -mips1 -### \
// RUN: -no-integrated-as -c %s 2>&1 \
// RUN: | FileCheck -check-prefix=MIPS-ALIAS-1 %s
diff --git a/clang/test/Misc/target-invalid-cpu-note.c b/clang/test/Misc/target-invalid-cpu-note.c
index 4f8158e5022..bcb5825bae4 100644
--- a/clang/test/Misc/target-invalid-cpu-note.c
+++ b/clang/test/Misc/target-invalid-cpu-note.c
@@ -88,7 +88,7 @@
// MIPS: error: unknown target CPU 'not-a-cpu'
// MIPS: note: valid target CPU values are: mips1, mips2, mips3, mips4, mips5,
// MIPS-SAME: mips32, mips32r2, mips32r3, mips32r5, mips32r6, mips64, mips64r2,
-// MIPS-SAME: mips64r3, mips64r5, mips64r6, octeon, p5600
+// MIPS-SAME: mips64r3, mips64r5, mips64r6, octeon, octeon+, p5600
// RUN: not %clang_cc1 -triple lanai--- -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix LANAI
// LANAI: error: unknown target CPU 'not-a-cpu'
OpenPOWER on IntegriCloud