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"); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits