r311137 - GlobalISel (AArch64): fix ABI at border between GPRs and SP.

Tim Northover via cfe-commits cfe-commits at lists.llvm.org
Thu Aug 17 16:14:01 PDT 2017


Author: tnorthover
Date: Thu Aug 17 16:14:01 2017
New Revision: 311137

URL: http://llvm.org/viewvc/llvm-project?rev=311137&view=rev
Log:
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.

Modified:
    cfe/trunk/lib/Driver/ToolChains/Arch/ARM.cpp

Modified: cfe/trunk/lib/Driver/ToolChains/Arch/ARM.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/Arch/ARM.cpp?rev=311137&r1=311136&r2=311137&view=diff
==============================================================================
--- cfe/trunk/lib/Driver/ToolChains/Arch/ARM.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains/Arch/ARM.cpp Thu Aug 17 16:14:01 2017
@@ -438,7 +438,7 @@ void arm::getARMTargetFeatures(const Too
     //
     // 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");




More information about the cfe-commits mailing list