From: Tim Northover Date: Thu, 17 Aug 2017 23:14:01 +0000 (+0000) Subject: GlobalISel (AArch64): fix ABI at border between GPRs and SP. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0405d77ec3f25f4afd2254f62201a80d26b67731;p=clang GlobalISel (AArch64): fix ABI at border between GPRs and SP. If a struct would end up half in GPRs and half on SP the ABI says it should actually go entirely on the stack. We were getting this wrong in GlobalISel before, causing compatibility issues. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311137 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Driver/ToolChains/Arch/ARM.cpp b/lib/Driver/ToolChains/Arch/ARM.cpp index 49bb23535d..c69efd96e8 100644 --- a/lib/Driver/ToolChains/Arch/ARM.cpp +++ b/lib/Driver/ToolChains/Arch/ARM.cpp @@ -438,7 +438,7 @@ void arm::getARMTargetFeatures(const ToolChain &TC, // // The above behavior is consistent with GCC. int VersionNum = getARMSubArchVersionNumber(Triple); - if (Triple.isOSDarwin() || Triple.isOSNetBSD()) { + if (Triple.isOSBinFormatMachO() || Triple.isOSNetBSD()) { if (VersionNum < 6 || Triple.getSubArch() == llvm::Triple::SubArchType::ARMSubArch_v6m) Features.push_back("+strict-align");