summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Atanasyan <simon@atanasyan.com>2019-11-05 11:21:04 +0300
committerSimon Atanasyan <simon@atanasyan.com>2019-11-07 13:58:51 +0300
commita751f557d824c569a96051ea5feef1ff32bb4723 (patch)
treeb940807b01bcc7fa7c0854c21063657af2416dc7
parent3552d3e0f7c943c3547c0227ddd80fd4d0732a7e (diff)
downloadbcm5719-llvm-a751f557d824c569a96051ea5feef1ff32bb4723.tar.gz
bcm5719-llvm-a751f557d824c569a96051ea5feef1ff32bb4723.zip
[mips] Set macros for Octeon+ CPU
-rw-r--r--clang/lib/Basic/Targets/Mips.cpp7
-rw-r--r--clang/test/Preprocessor/init.c10
2 files changed, 15 insertions, 2 deletions
diff --git a/clang/lib/Basic/Targets/Mips.cpp b/clang/lib/Basic/Targets/Mips.cpp
index a08c2318aec..b9ab80df619 100644
--- a/clang/lib/Basic/Targets/Mips.cpp
+++ b/clang/lib/Basic/Targets/Mips.cpp
@@ -62,7 +62,7 @@ void MipsTargetInfo::fillValidCPUList(
unsigned MipsTargetInfo::getISARev() const {
return llvm::StringSwitch<unsigned>(getCPU())
.Cases("mips32", "mips64", 1)
- .Cases("mips32r2", "mips64r2", "octeon", 2)
+ .Cases("mips32r2", "mips64r2", "octeon", "octeon+", 2)
.Cases("mips32r3", "mips64r3", 3)
.Cases("mips32r5", "mips64r5", 5)
.Cases("mips32r6", "mips64r6", 6)
@@ -188,7 +188,10 @@ void MipsTargetInfo::getTargetDefines(const LangOptions &Opts,
Builder.defineMacro("_MIPS_SZLONG", Twine(getLongWidth()));
Builder.defineMacro("_MIPS_ARCH", "\"" + CPU + "\"");
- Builder.defineMacro("_MIPS_ARCH_" + StringRef(CPU).upper());
+ if (CPU == "octeon+")
+ Builder.defineMacro("_MIPS_ARCH_OCTEONP");
+ else
+ Builder.defineMacro("_MIPS_ARCH_" + StringRef(CPU).upper());
if (StringRef(CPU).startswith("octeon"))
Builder.defineMacro("__OCTEON__");
diff --git a/clang/test/Preprocessor/init.c b/clang/test/Preprocessor/init.c
index f80e4de9e5e..03221d7008e 100644
--- a/clang/test/Preprocessor/init.c
+++ b/clang/test/Preprocessor/init.c
@@ -4842,6 +4842,16 @@
// MIPS-ARCH-OCTEON:#define __OCTEON__ 1
// MIPS-ARCH-OCTEON:#define __mips_isa_rev 2
//
+// RUN: %clang_cc1 -E -dM -ffreestanding -triple=mips64-none-none \
+// RUN: -target-cpu octeon+ < /dev/null \
+// RUN: | FileCheck -match-full-lines -check-prefix MIPS-ARCH-OCTEONP %s
+//
+// MIPS-ARCH-OCTEONP:#define _MIPS_ARCH "octeon+"
+// MIPS-ARCH-OCTEONP:#define _MIPS_ARCH_OCTEONP 1
+// MIPS-ARCH-OCTEONP:#define _MIPS_ISA _MIPS_ISA_MIPS64
+// MIPS-ARCH-OCTEONP:#define __OCTEON__ 1
+// MIPS-ARCH-OCTEONP:#define __mips_isa_rev 2
+//
// Check MIPS float ABI macros
//
// RUN: %clang_cc1 -E -dM -ffreestanding \
OpenPOWER on IntegriCloud