[PATCH] D133547: [PowerPC] Fix CSR_64_AllRegs_AIX_Dflt_VSX definition

Ting Wang via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 8 18:33:43 PDT 2022


tingwang created this revision.
tingwang added reviewers: lkail, ZarkoCA, PowerPC.
tingwang added a project: LLVM.
Herald added subscribers: shchenz, kbarton, hiraditya, nemanjai.
Herald added a project: All.
tingwang requested review of this revision.
Herald added a subscriber: llvm-commits.

According to AIX default ABI, the definition seems incorrect.

Base test case added in https://reviews.llvm.org/D133545.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D133547

Files:
  llvm/lib/Target/PowerPC/PPCCallingConv.td
  llvm/test/CodeGen/PowerPC/aix64-patchpoint-regmask.ll


Index: llvm/test/CodeGen/PowerPC/aix64-patchpoint-regmask.ll
===================================================================
--- llvm/test/CodeGen/PowerPC/aix64-patchpoint-regmask.ll
+++ llvm/test/CodeGen/PowerPC/aix64-patchpoint-regmask.ll
@@ -1,8 +1,19 @@
 ; RUN: llc -O0 -verify-machineinstrs -mcpu=pwr9 -mtriple powerpc64-ibm-aix-xcoff -print-after=finalize-isel --print-regmask-num-regs=-1 < %s 2>&1 | \
 ; RUN: FileCheck %s
 
-; Error regmask pattern should be fixed: v20:v31 should be reserved in AIX defalut ABI
-; CHECK: PATCHPOINT{{[^<]+}}<regmask {{[^>]+}} $v20 $v21 $v22 $v23 $v24 $v25 $v26 $v27 $v28 $v29 $v30 $v31 {{[^>]+}}>
+; CHECK-NOT: PATCHPOINT{{[^<]+}}<regmask {{[^>]+}} $v20 $v21 $v22 $v23 $v24 $v25 $v26 $v27 $v28 $v29 $v30 $v31 {{[^>]+}}>
+; CHECK-NOT: PATCHPOINT{{[^<]+}}<regmask {{[^>]+}} $v20 {{[^>]+}}>
+; CHECK-NOT: PATCHPOINT{{[^<]+}}<regmask {{[^>]+}} $v21 {{[^>]+}}>
+; CHECK-NOT: PATCHPOINT{{[^<]+}}<regmask {{[^>]+}} $v22 {{[^>]+}}>
+; CHECK-NOT: PATCHPOINT{{[^<]+}}<regmask {{[^>]+}} $v23 {{[^>]+}}>
+; CHECK-NOT: PATCHPOINT{{[^<]+}}<regmask {{[^>]+}} $v24 {{[^>]+}}>
+; CHECK-NOT: PATCHPOINT{{[^<]+}}<regmask {{[^>]+}} $v25 {{[^>]+}}>
+; CHECK-NOT: PATCHPOINT{{[^<]+}}<regmask {{[^>]+}} $v26 {{[^>]+}}>
+; CHECK-NOT: PATCHPOINT{{[^<]+}}<regmask {{[^>]+}} $v27 {{[^>]+}}>
+; CHECK-NOT: PATCHPOINT{{[^<]+}}<regmask {{[^>]+}} $v28 {{[^>]+}}>
+; CHECK-NOT: PATCHPOINT{{[^<]+}}<regmask {{[^>]+}} $v29 {{[^>]+}}>
+; CHECK-NOT: PATCHPOINT{{[^<]+}}<regmask {{[^>]+}} $v30 {{[^>]+}}>
+; CHECK-NOT: PATCHPOINT{{[^<]+}}<regmask {{[^>]+}} $v31 {{[^>]+}}>
 define void @test(i64 %p1, i64 %p2, i64 %p3, i64 %p4) {
 entry:
   call anyregcc void (i64, i32, ptr, i32, ...) @llvm.experimental.patchpoint.void(i64 13, i32 40, ptr inttoptr (i64 0 to ptr), i32 2, i64 %p1, i64 %p2, i64 %p3, i64 %p4)
Index: llvm/lib/Target/PowerPC/PPCCallingConv.td
===================================================================
--- llvm/lib/Target/PowerPC/PPCCallingConv.td
+++ llvm/lib/Target/PowerPC/PPCCallingConv.td
@@ -362,8 +362,8 @@
 def CSR_64_AllRegs_VSX : CalleeSavedRegs<(add CSR_64_AllRegs_Altivec,
                                          (sequence "VSL%u", 0, 31))>;
 
-def CSR_64_AllRegs_AIX_Dflt_VSX : CalleeSavedRegs<(add CSR_64_AllRegs_Altivec,
-                                         (sequence "VSL%u", 0, 19))>;
+def CSR_64_AllRegs_AIX_Dflt_VSX : CalleeSavedRegs<(add CSR_64_AllRegs_AIX_Dflt_Altivec,
+                                         (sequence "VSL%u", 0, 31))>;
 
 def CSR_ALL_VSRP : CalleeSavedRegs<(sequence "VSRp%u", 0, 31)>;
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D133547.458939.patch
Type: text/x-patch
Size: 2571 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220909/43996f79/attachment.bin>


More information about the llvm-commits mailing list