summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic/Targets/PPC.cpp
diff options
context:
space:
mode:
authorStrahinja Petrovic <strahinja.petrovic@rt-rk.com>2019-04-02 11:00:09 +0000
committerStrahinja Petrovic <strahinja.petrovic@rt-rk.com>2019-04-02 11:00:09 +0000
commit4f839ac1883afd6009f0062ccbcf85b799fd036b (patch)
treefde25afe8a15da611afb5faf7b87db049a6c6400 /clang/lib/Basic/Targets/PPC.cpp
parent64bd87ad4bbdd6ef5199bd0baf7ae5e9988370ea (diff)
downloadbcm5719-llvm-4f839ac1883afd6009f0062ccbcf85b799fd036b.tar.gz
bcm5719-llvm-4f839ac1883afd6009f0062ccbcf85b799fd036b.zip
[PowerPC] Fix issue with inline asm - soft float mode
This patch prevents floating point register constraints in soft float mode. Differential Revision: https://reviews.llvm.org/D59310 llvm-svn: 357466
Diffstat (limited to 'clang/lib/Basic/Targets/PPC.cpp')
-rw-r--r--clang/lib/Basic/Targets/PPC.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/clang/lib/Basic/Targets/PPC.cpp b/clang/lib/Basic/Targets/PPC.cpp
index 14a9ffd09a6..b052ef433ec 100644
--- a/clang/lib/Basic/Targets/PPC.cpp
+++ b/clang/lib/Basic/Targets/PPC.cpp
@@ -30,6 +30,7 @@ const Builtin::Info PPCTargetInfo::BuiltinInfo[] = {
/// configured set of features.
bool PPCTargetInfo::handleTargetFeatures(std::vector<std::string> &Features,
DiagnosticsEngine &Diags) {
+ FloatABI = HardFloat;
for (const auto &Feature : Features) {
if (Feature == "+altivec") {
HasAltivec = true;
@@ -53,6 +54,8 @@ bool PPCTargetInfo::handleTargetFeatures(std::vector<std::string> &Features,
HasFloat128 = true;
} else if (Feature == "+power9-vector") {
HasP9Vector = true;
+ } else if (Feature == "-hard-float") {
+ FloatABI = SoftFloat;
}
// TODO: Finish this list and add an assert that we've handled them
// all.
OpenPOWER on IntegriCloud