diff options
-rw-r--r-- | lib/Basic/Targets.cpp | 20 | ||||
-rw-r--r-- | lib/Driver/Tools.cpp | 2 | ||||
-rw-r--r-- | test/Driver/clang-translation.c | 6 | ||||
-rw-r--r-- | test/Driver/ppc-features.cpp | 5 | ||||
-rw-r--r-- | test/Preprocessor/init.c | 28 |
5 files changed, 56 insertions, 5 deletions
diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp index a71e8b0ca3..fde4284dfc 100644 --- a/lib/Basic/Targets.cpp +++ b/lib/Basic/Targets.cpp @@ -706,8 +706,9 @@ public: ArchDefinePwr6 = 1 << 9, ArchDefinePwr6x = 1 << 10, ArchDefinePwr7 = 1 << 11, - ArchDefineA2 = 1 << 12, - ArchDefineA2q = 1 << 13 + ArchDefinePwr8 = 1 << 12, + ArchDefineA2 = 1 << 13, + ArchDefineA2q = 1 << 14 } ArchDefineTypes; // Note: GCC recognizes the following additional cpus: @@ -754,6 +755,8 @@ public: .Case("pwr6x", true) .Case("power7", true) .Case("pwr7", true) + .Case("power8", true) + .Case("pwr8", true) .Case("powerpc", true) .Case("ppc", true) .Case("powerpc64", true) @@ -1016,7 +1019,10 @@ void PPCTargetInfo::getTargetDefines(const LangOptions &Opts, | ArchDefinePpcsq) .Case("pwr7", ArchDefineName | ArchDefinePwr6x | ArchDefinePwr6 | ArchDefinePwr5x | ArchDefinePwr5 | ArchDefinePwr4 - | ArchDefinePwr6 | ArchDefinePpcgr | ArchDefinePpcsq) + | ArchDefinePpcgr | ArchDefinePpcsq) + .Case("pwr8", ArchDefineName | ArchDefinePwr7 | ArchDefinePwr6x + | ArchDefinePwr6 | ArchDefinePwr5x | ArchDefinePwr5 + | ArchDefinePwr4 | ArchDefinePpcgr | ArchDefinePpcsq) .Case("power3", ArchDefinePpcgr) .Case("power4", ArchDefinePwr4 | ArchDefinePpcgr | ArchDefinePpcsq) .Case("power5", ArchDefinePwr5 | ArchDefinePwr4 | ArchDefinePpcgr @@ -1030,7 +1036,10 @@ void PPCTargetInfo::getTargetDefines(const LangOptions &Opts, | ArchDefinePpcsq) .Case("power7", ArchDefinePwr7 | ArchDefinePwr6x | ArchDefinePwr6 | ArchDefinePwr5x | ArchDefinePwr5 | ArchDefinePwr4 - | ArchDefinePwr6 | ArchDefinePpcgr | ArchDefinePpcsq) + | ArchDefinePpcgr | ArchDefinePpcsq) + .Case("power8", ArchDefinePwr8 | ArchDefinePwr7 | ArchDefinePwr6x + | ArchDefinePwr6 | ArchDefinePwr5x | ArchDefinePwr5 + | ArchDefinePwr4 | ArchDefinePpcgr | ArchDefinePpcsq) .Default(ArchDefineNone); if (defs & ArchDefineName) @@ -1057,6 +1066,8 @@ void PPCTargetInfo::getTargetDefines(const LangOptions &Opts, Builder.defineMacro("_ARCH_PWR6X"); if (defs & ArchDefinePwr7) Builder.defineMacro("_ARCH_PWR7"); + if (defs & ArchDefinePwr8) + Builder.defineMacro("_ARCH_PWR8"); if (defs & ArchDefineA2) Builder.defineMacro("_ARCH_A2"); if (defs & ArchDefineA2q) { @@ -1105,6 +1116,7 @@ void PPCTargetInfo::getDefaultFeatures(llvm::StringMap<bool> &Features) const { .Case("g5", true) .Case("pwr6", true) .Case("pwr7", true) + .Case("pwr8", true) .Case("ppc64", true) .Case("ppc64le", true) .Default(false); diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index 1f89d39f0d..76b9890ec0 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -1156,6 +1156,7 @@ static std::string getPPCTargetCPU(const ArgList &Args) { .Case("power6", "pwr6") .Case("power6x", "pwr6x") .Case("power7", "pwr7") + .Case("power8", "pwr8") .Case("pwr3", "pwr3") .Case("pwr4", "pwr4") .Case("pwr5", "pwr5") @@ -1163,6 +1164,7 @@ static std::string getPPCTargetCPU(const ArgList &Args) { .Case("pwr6", "pwr6") .Case("pwr6x", "pwr6x") .Case("pwr7", "pwr7") + .Case("pwr8", "pwr8") .Case("powerpc", "ppc") .Case("powerpc64", "ppc64") .Case("powerpc64le", "ppc64le") diff --git a/test/Driver/clang-translation.c b/test/Driver/clang-translation.c index 34a932db92..9db23a074d 100644 --- a/test/Driver/clang-translation.c +++ b/test/Driver/clang-translation.c @@ -71,6 +71,12 @@ // PPCPWR7: "-target-cpu" "pwr7" // RUN: %clang -target powerpc64-unknown-linux-gnu \ +// RUN: -### -S %s -mcpu=power8 2>&1 | FileCheck -check-prefix=PPCPWR8 %s +// PPCPWR8: clang +// PPCPWR8: "-cc1" +// PPCPWR8: "-target-cpu" "pwr8" + +// RUN: %clang -target powerpc64-unknown-linux-gnu \ // RUN: -### -S %s -mcpu=a2q 2>&1 | FileCheck -check-prefix=PPCA2Q %s // PPCA2Q: clang // PPCA2Q: "-cc1" diff --git a/test/Driver/ppc-features.cpp b/test/Driver/ppc-features.cpp index a7ccedf99b..fa9a7ecd4d 100644 --- a/test/Driver/ppc-features.cpp +++ b/test/Driver/ppc-features.cpp @@ -59,9 +59,12 @@ // RUN: %clang -target powerpc64-unknown-linux-gnu %s -fno-altivec -mcpu=pwr7 -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-14 %s // CHECK-14: "-target-feature" "-altivec" -// RUN: %clang -target powerpc64-unknown-linux-gnu %s -fno-altivec -mcpu=ppc64 -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-15 %s +// RUN: %clang -target powerpc64-unknown-linux-gnu %s -fno-altivec -mcpu=pwr8 -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-15 %s // CHECK-15: "-target-feature" "-altivec" +// RUN: %clang -target powerpc64-unknown-linux-gnu %s -fno-altivec -mcpu=ppc64 -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-16 %s +// CHECK-16: "-target-feature" "-altivec" + // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-qpx -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-NOQPX %s // CHECK-NOQPX: "-target-feature" "-qpx" diff --git a/test/Preprocessor/init.c b/test/Preprocessor/init.c index ea2e0dbcd3..a3cc2eda88 100644 --- a/test/Preprocessor/init.c +++ b/test/Preprocessor/init.c @@ -3971,6 +3971,34 @@ // PPCPOWER7:#define _ARCH_PWR6X 1 // PPCPOWER7:#define _ARCH_PWR7 1 // +// RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc64-none-none -target-cpu pwr8 -fno-signed-char < /dev/null | FileCheck -check-prefix PPCPWR8 %s +// +// PPCPWR8:#define _ARCH_PPC 1 +// PPCPWR8:#define _ARCH_PPC64 1 +// PPCPWR8:#define _ARCH_PPCGR 1 +// PPCPWR8:#define _ARCH_PPCSQ 1 +// PPCPWR8:#define _ARCH_PWR4 1 +// PPCPWR8:#define _ARCH_PWR5 1 +// PPCPWR8:#define _ARCH_PWR5X 1 +// PPCPWR8:#define _ARCH_PWR6 1 +// PPCPWR8:#define _ARCH_PWR6X 1 +// PPCPWR8:#define _ARCH_PWR7 1 +// PPCPWR8:#define _ARCH_PWR8 1 +// +// RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc64-none-none -target-cpu power8 -fno-signed-char < /dev/null | FileCheck -check-prefix PPCPOWER8 %s +// +// PPCPOWER8:#define _ARCH_PPC 1 +// PPCPOWER8:#define _ARCH_PPC64 1 +// PPCPOWER8:#define _ARCH_PPCGR 1 +// PPCPOWER8:#define _ARCH_PPCSQ 1 +// PPCPOWER8:#define _ARCH_PWR4 1 +// PPCPOWER8:#define _ARCH_PWR5 1 +// PPCPOWER8:#define _ARCH_PWR5X 1 +// PPCPOWER8:#define _ARCH_PWR6 1 +// PPCPOWER8:#define _ARCH_PWR6X 1 +// PPCPOWER8:#define _ARCH_PWR7 1 +// PPCPOWER8:#define _ARCH_PWR8 1 +// // RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc64-unknown-linux-gnu -fno-signed-char < /dev/null | FileCheck -check-prefix PPC64-LINUX %s // // PPC64-LINUX:#define _ARCH_PPC 1 |