[PATCH] D77101: [AIX] Return the correct set of callee saved regs
David Tenty via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Apr 7 10:50:45 PDT 2020
daltenty updated this revision to Diff 255722.
daltenty added a comment.
- Remove 64-bit cases since we've commoned up the AIX64 and SVR4 CSRs
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D77101/new/
https://reviews.llvm.org/D77101
Files:
llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
llvm/test/CodeGen/PowerPC/aix-calleesavedregs.ll
Index: llvm/test/CodeGen/PowerPC/aix-calleesavedregs.ll
===================================================================
--- /dev/null
+++ llvm/test/CodeGen/PowerPC/aix-calleesavedregs.ll
@@ -0,0 +1,11 @@
+; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mattr=-altivec \
+; RUN: -mtriple powerpc-ibm-aix-xcoff -O0 < %s | \
+; RUN: FileCheck --check-prefixes=CHECK %s
+
+define void @usethirteen() {
+ call void asm "nop", "~{r13}"()
+ ret void
+}
+
+; CHECK: stw 13, -4(1)
+; CHECK: lwz 13, -4(1)
Index: llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
===================================================================
--- llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
+++ llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
@@ -142,6 +142,8 @@
PPCRegisterInfo::getCalleeSavedRegs(const MachineFunction *MF) const {
const PPCSubtarget &Subtarget = MF->getSubtarget<PPCSubtarget>();
if (MF->getFunction().getCallingConv() == CallingConv::AnyReg) {
+ if (!TM.isPPC64() && Subtarget.isAIXABI())
+ report_fatal_error("AnyReg unimplemented on 32-bit AIX.");
if (Subtarget.hasVSX())
return CSR_64_AllRegs_VSX_SaveList;
if (Subtarget.hasAltivec())
@@ -165,6 +167,8 @@
: CSR_SVR64_ColdCC_SaveList;
}
// 32-bit targets.
+ if (Subtarget.isAIXABI())
+ report_fatal_error("Cold calling unimplemented on 32-bit AIX.");
if (Subtarget.hasAltivec())
return CSR_SVR32_ColdCC_Altivec_SaveList;
else if (Subtarget.hasSPE())
@@ -179,6 +183,8 @@
return SaveR2 ? CSR_PPC64_R2_SaveList : CSR_PPC64_SaveList;
}
// 32-bit targets.
+ if (Subtarget.isAIXABI())
+ return CSR_AIX32_SaveList;
if (Subtarget.hasAltivec())
return CSR_SVR432_Altivec_SaveList;
else if (Subtarget.hasSPE())
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D77101.255722.patch
Type: text/x-patch
Size: 1764 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200407/f4116b0c/attachment.bin>
More information about the llvm-commits
mailing list