aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Atanasyan <simon@atanasyan.com>2014-07-04 12:37:04 +0000
committerSimon Atanasyan <simon@atanasyan.com>2014-07-04 12:37:04 +0000
commit4e16a4250dfb1d7858097d37a8796c2c42c8b47f (patch)
tree00ed4192e9623ac7b287f1203098eefe9dd9cdc6
parent26610c596002cb74294dae275ddf790655e83cee (diff)
downloadllvm-4e16a4250dfb1d7858097d37a8796c2c42c8b47f.zip
llvm-4e16a4250dfb1d7858097d37a8796c2c42c8b47f.tar.gz
llvm-4e16a4250dfb1d7858097d37a8796c2c42c8b47f.tar.bz2
[Driver][Mips] Support one more MIPS CPU name - octeon.
llvm-svn: 212339
-rw-r--r--clang/lib/Basic/Targets.cpp6
-rw-r--r--clang/lib/Driver/ToolChains.cpp3
-rw-r--r--clang/test/Driver/mips-abi.c6
-rw-r--r--clang/test/Driver/mips-as.c5
4 files changed, 18 insertions, 2 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 9e3686b..cc20388 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -5320,6 +5320,7 @@ public:
.Case("mips64", true)
.Case("mips64r2", true)
.Case("mips64r6", true)
+ .Case("octeon", true)
.Default(false);
}
const std::string& getCPU() const { return CPU; }
@@ -5332,7 +5333,10 @@ public:
Features["n64"] = false;
Features[ABI] = true;
- Features[CPU] = true;
+ if (CPU == "octeon")
+ Features["mips64r2"] = Features["cnmips"] = true;
+ else
+ Features[CPU] = true;
}
void getTargetDefines(const LangOptions &Opts,
diff --git a/clang/lib/Driver/ToolChains.cpp b/clang/lib/Driver/ToolChains.cpp
index d02c84d..1e47a62 100644
--- a/clang/lib/Driver/ToolChains.cpp
+++ b/clang/lib/Driver/ToolChains.cpp
@@ -1633,7 +1633,8 @@ static bool isMips64r2(const ArgList &Args) {
Arg *A = Args.getLastArg(options::OPT_march_EQ,
options::OPT_mcpu_EQ);
- return A && A->getValue() == StringRef("mips64r2");
+ return A && (A->getValue() == StringRef("mips64r2") ||
+ A->getValue() == StringRef("octeon"));
}
static bool isMicroMips(const ArgList &Args) {
diff --git a/clang/test/Driver/mips-abi.c b/clang/test/Driver/mips-abi.c
index f58ba0e..f756324 100644
--- a/clang/test/Driver/mips-abi.c
+++ b/clang/test/Driver/mips-abi.c
@@ -116,6 +116,12 @@
// MIPS-ARCH-64R2: "-target-cpu" "mips64r2"
// MIPS-ARCH-64R2: "-target-abi" "n64"
//
+// RUN: %clang -target mips64-linux-gnu -### -c %s \
+// RUN: -march=octeon 2>&1 \
+// RUN: | FileCheck -check-prefix=MIPS-ARCH-OCTEON %s
+// MIPS-ARCH-OCTEON: "-target-cpu" "octeon"
+// MIPS-ARCH-OCTEON: "-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 27517ac..07a588f1 100644
--- a/clang/test/Driver/mips-as.c
+++ b/clang/test/Driver/mips-as.c
@@ -52,6 +52,11 @@
// RUN: | FileCheck -check-prefix=MIPS-32R2 %s
// MIPS-32R2: as{{(.exe)?}}" "-march" "mips32r2" "-mabi" "32" "-EB"
//
+// RUN: %clang -target mips64-linux-gnu -march=octeon -### \
+// RUN: -no-integrated-as -c %s 2>&1 \
+// RUN: | FileCheck -check-prefix=MIPS-OCTEON %s
+// MIPS-OCTEON: as{{(.exe)?}}" "-march" "octeon" "-mabi" "64" "-EB"
+//
// RUN: %clang -target mips-linux-gnu -mips1 -### \
// RUN: -no-integrated-as -c %s 2>&1 \
// RUN: | FileCheck -check-prefix=MIPS-ALIAS-1 %s