diff options
author | Simon Atanasyan <simon@atanasyan.com> | 2014-07-04 12:37:04 +0000 |
---|---|---|
committer | Simon Atanasyan <simon@atanasyan.com> | 2014-07-04 12:37:04 +0000 |
commit | 4e16a4250dfb1d7858097d37a8796c2c42c8b47f (patch) | |
tree | 00ed4192e9623ac7b287f1203098eefe9dd9cdc6 | |
parent | 26610c596002cb74294dae275ddf790655e83cee (diff) | |
download | llvm-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.cpp | 6 | ||||
-rw-r--r-- | clang/lib/Driver/ToolChains.cpp | 3 | ||||
-rw-r--r-- | clang/test/Driver/mips-abi.c | 6 | ||||
-rw-r--r-- | clang/test/Driver/mips-as.c | 5 |
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 |