From 86f2a3d17878e430109be209fdb013fb3f4716ee Mon Sep 17 00:00:00 2001 From: Stefan Pintilie Date: Mon, 15 Mar 2021 12:33:49 -0500 Subject: [PATCH] [PowerPC] Add __PCREL__ when PC Relative is enabled. This patch adds the `__PCREL__` define when PC Relative addressing is enabled. Reviewed By: nemanjai, #powerpc Differential Revision: https://reviews.llvm.org/D98546 --- clang/lib/Basic/Targets/PPC.cpp | 2 ++ clang/test/Preprocessor/init-ppc64.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/clang/lib/Basic/Targets/PPC.cpp b/clang/lib/Basic/Targets/PPC.cpp index 78397ab..57f5de1 100644 --- a/clang/lib/Basic/Targets/PPC.cpp +++ b/clang/lib/Basic/Targets/PPC.cpp @@ -199,6 +199,8 @@ void PPCTargetInfo::getTargetDefines(const LangOptions &Opts, Builder.defineMacro("__ROP_PROTECTION__"); if (HasP10Vector) Builder.defineMacro("__POWER10_VECTOR__"); + if (HasPCRelativeMemops) + Builder.defineMacro("__PCREL__"); Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1"); Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2"); diff --git a/clang/test/Preprocessor/init-ppc64.c b/clang/test/Preprocessor/init-ppc64.c index 163e86b..08368f3 100644 --- a/clang/test/Preprocessor/init-ppc64.c +++ b/clang/test/Preprocessor/init-ppc64.c @@ -633,6 +633,7 @@ // PPCPOWER10:#define _ARCH_PWR8 1 // PPCPOWER10:#define _ARCH_PWR9 1 // PPCPOWER10:#define __MMA__ 1 +// PPCPOWER10:#define __PCREL__ 1 // PPCPOWER10-NOT:#define __ROP_PROTECTION__ 1 // // RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc64-none-none -target-cpu future -fno-signed-char < /dev/null | FileCheck -match-full-lines -check-prefix PPCFUTURE %s @@ -652,6 +653,7 @@ // PPCFUTURE:#define _ARCH_PWR9 1 // PPCFUTURE:#define _ARCH_PWR_FUTURE 1 // PPCFUTURE:#define __MMA__ 1 +// PPCFUTURE:#define __PCREL__ 1 // PPCFUTURE-NOT:#define __ROP_PROTECTION__ 1 // // RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc64-none-none -target-feature +mma -target-cpu power10 -fno-signed-char < /dev/null | FileCheck -check-prefix PPC-MMA %s -- 2.7.4