diff options
author | Justin Hibbits <chmeeedalf@gmail.com> | 2019-12-30 15:09:39 -0600 |
---|---|---|
committer | Justin Hibbits <chmeeedalf@gmail.com> | 2020-01-08 19:10:53 -0600 |
commit | ff0311c4b3b9dce9d25d08e38aa163682b155513 (patch) | |
tree | bd95dd5c6056afa4e307b361334d38a4352aa22e /clang | |
parent | 659efa21f1b3eded304b7239b356eecf1f5034ae (diff) | |
download | bcm5719-llvm-ff0311c4b3b9dce9d25d08e38aa163682b155513.tar.gz bcm5719-llvm-ff0311c4b3b9dce9d25d08e38aa163682b155513.zip |
[PowerPC]: Add powerpcspe target triple subarch component
Summary:
This allows the use of '-target powerpcspe-unknown-linux-gnu' or
'powerpcspe-unknown-freebsd' to be used, instead of
'-target powerpc-unknown-linux-gnu -mspe'.
Reviewed By: dim
Differential Revision: https://reviews.llvm.org/D72014
Diffstat (limited to 'clang')
-rw-r--r-- | clang/lib/Basic/Targets/PPC.cpp | 3 | ||||
-rw-r--r-- | clang/lib/Basic/Targets/PPC.h | 3 | ||||
-rw-r--r-- | clang/test/Preprocessor/init.c | 3 |
3 files changed, 5 insertions, 4 deletions
diff --git a/clang/lib/Basic/Targets/PPC.cpp b/clang/lib/Basic/Targets/PPC.cpp index 1877d4a5ef7..bc0ffb7fa44 100644 --- a/clang/lib/Basic/Targets/PPC.cpp +++ b/clang/lib/Basic/Targets/PPC.cpp @@ -316,7 +316,8 @@ bool PPCTargetInfo::initFeatureMap( .Case("pwr8", true) .Default(false); - Features["spe"] = llvm::StringSwitch<bool>(CPU) + Features["spe"] = getTriple().getSubArch() == llvm::Triple::PPCSubArch_spe || + llvm::StringSwitch<bool>(CPU) .Case("8548", true) .Case("e500", true) .Default(false); diff --git a/clang/lib/Basic/Targets/PPC.h b/clang/lib/Basic/Targets/PPC.h index 3076025fc5b..270aa7ff918 100644 --- a/clang/lib/Basic/Targets/PPC.h +++ b/clang/lib/Basic/Targets/PPC.h @@ -87,8 +87,7 @@ public: // Note: GCC recognizes the following additional cpus: // 401, 403, 405, 405fp, 440fp, 464, 464fp, 476, 476fp, 505, 740, 801, - // 821, 823, 8540, 8548, e300c2, e300c3, e500mc64, e6500, 860, cell, - // titan, rs64. + // 821, 823, 8540, e300c2, e300c3, e500mc64, e6500, 860, cell, titan, rs64. bool isValidCPUName(StringRef Name) const override; void fillValidCPUList(SmallVectorImpl<StringRef> &Values) const override; diff --git a/clang/test/Preprocessor/init.c b/clang/test/Preprocessor/init.c index 4d8c6e5c46b..a0372588936 100644 --- a/clang/test/Preprocessor/init.c +++ b/clang/test/Preprocessor/init.c @@ -6551,10 +6551,11 @@ // PPC32-LINUX-NOT: _CALL_LINUX // // RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc-unknown-linux-gnu -target-feature +spe < /dev/null | FileCheck -match-full-lines -check-prefix PPC32-SPE %s +// RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpcspe-unknown-linux-gnu < /dev/null | FileCheck -match-full-lines -check-prefix PPC32-SPE %s // // PPC32-SPE:#define __NO_FPRS__ 1 // PPC32-SPE:#define __SPE__ 1 -// +// // RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc-unknown-linux-gnu -target-cpu 8548 < /dev/null | FileCheck -match-full-lines -check-prefix PPC8548 %s // // PPC8548:#define __NO_FPRS__ 1 |