[PATCH] D90206: [PowerPC] Fix IEEE 128-bit calling convention
Qiu Chaofan via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 26 19:11:53 PDT 2020
qiucf created this revision.
Herald added subscribers: llvm-commits, shchenz, kbarton, hiraditya, nemanjai.
Herald added a project: LLVM.
qiucf requested review of this revision.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D90206
Files:
llvm/lib/Target/PowerPC/PPCCallingConv.td
llvm/test/CodeGen/PowerPC/f128-passByValue.ll
Index: llvm/test/CodeGen/PowerPC/f128-passByValue.ll
===================================================================
--- llvm/test/CodeGen/PowerPC/f128-passByValue.ll
+++ llvm/test/CodeGen/PowerPC/f128-passByValue.ll
@@ -266,3 +266,32 @@
store double %conv1, double* %d1, align 8
ret void
}
+
+; Function Attrs: noinline optnone
+define signext i32 @noopt_call_crash() #0 {
+; CHECK-LABEL: noopt_call_crash:
+; CHECK: # %bb.0: # %entry
+; CHECK-NEXT: mflr r0
+; CHECK-NEXT: std r0, 16(r1)
+; CHECK-NEXT: stdu r1, -96(r1)
+; CHECK-NEXT: .cfi_def_cfa_offset 96
+; CHECK-NEXT: .cfi_offset lr, 16
+; CHECK-NEXT: bl in
+; CHECK-NEXT: nop
+; CHECK-NEXT: bl out
+; CHECK-NEXT: nop
+; CHECK-NEXT: li r3, 0
+; CHECK-NEXT: addi r1, r1, 96
+; CHECK-NEXT: ld r0, 16(r1)
+; CHECK-NEXT: mtlr r0
+; CHECK-NEXT: blr
+entry:
+ %call = call fp128 @in()
+ call void @out(fp128 %call)
+ ret i32 0
+}
+
+declare void @out(fp128)
+declare fp128 @in()
+
+attributes #0 = { noinline optnone }
Index: llvm/lib/Target/PowerPC/PPCCallingConv.td
===================================================================
--- llvm/lib/Target/PowerPC/PPCCallingConv.td
+++ llvm/lib/Target/PowerPC/PPCCallingConv.td
@@ -129,7 +129,9 @@
CCIfType<[i16], CCPromoteToType<i64>>,
CCIfType<[i32], CCPromoteToType<i64>>,
CCIfType<[i64], CCAssignToReg<[X3, X4, X5, X6, X7, X8, X9, X10]>>,
- CCIfType<[f32, f64], CCAssignToReg<[F1, F2, F3, F4, F5, F6, F7, F8]>>
+ CCIfType<[f32, f64], CCAssignToReg<[F1, F2, F3, F4, F5, F6, F7, F8]>>,
+ CCIfType<[f128],
+ CCAssignToReg<[V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13]>>
]>;
// Simple return-value convention for 64-bit ELF PowerPC fast isel.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D90206.300857.patch
Type: text/x-patch
Size: 1738 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201027/5b41e9d9/attachment.bin>
More information about the llvm-commits
mailing list