48 lines
1.8 KiB
Diff
48 lines
1.8 KiB
Diff
--- a/clang/lib/Basic/Targets/PPC.h
|
|
+++ b/clang/lib/Basic/Targets/PPC.h
|
|
@@ -415,11 +415,10 @@ public:
|
|
LongDoubleFormat = &llvm::APFloat::IEEEdouble();
|
|
} else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
|
|
DataLayout = "e-m:e-i64:64-n32:64";
|
|
- ABI = "elfv2";
|
|
} else {
|
|
DataLayout = "E-m:e-i64:64-n32:64";
|
|
- ABI = "elfv1";
|
|
}
|
|
+ ABI = "elfv2";
|
|
|
|
if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
|
|
LongDoubleWidth = LongDoubleAlign = 64;
|
|
--- a/clang/lib/CodeGen/TargetInfo.cpp
|
|
+++ b/clang/lib/CodeGen/TargetInfo.cpp
|
|
@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
|
|
return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
|
|
|
|
if (Triple.isOSBinFormatELF()) {
|
|
- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
|
|
- if (getTarget().getABI() == "elfv2")
|
|
- Kind = PPC64_SVR4_ABIInfo::ELFv2;
|
|
+ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
|
|
+ if (getTarget().getABI() == "elfv1")
|
|
+ Kind = PPC64_SVR4_ABIInfo::ELFv1;
|
|
bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
|
|
|
|
return SetCGInfo(
|
|
--- a/clang/lib/Driver/ToolChains/Clang.cpp
|
|
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
|
|
@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
|
|
const llvm::Triple &T = getToolChain().getTriple();
|
|
if (T.isOSBinFormatELF()) {
|
|
switch (getToolChain().getArch()) {
|
|
- case llvm::Triple::ppc64: {
|
|
- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
|
|
- T.isOSOpenBSD() || T.isMusl())
|
|
- ABIName = "elfv2";
|
|
- else
|
|
- ABIName = "elfv1";
|
|
- break;
|
|
- }
|
|
+ case llvm::Triple::ppc64:
|
|
case llvm::Triple::ppc64le:
|
|
ABIName = "elfv2";
|
|
break;
|