Dead FP arguments still use an incoming FP reg. This fixes
Regression/CodeGen/PowerPC/2006-01-11-darwin-fp-argument.ll, which was
distilled from a miscompilation in 252.eon.
llvm-svn: 25217
diff --git a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
index 75be670..976f80f 100644
--- a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
+++ b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
@@ -509,7 +509,13 @@
case MVT::f32:
case MVT::f64:
ObjSize = (ObjectVT == MVT::f64) ? 8 : 4;
- if (!ArgLive) break;
+ if (!ArgLive) {
+ if (FPR_remaining > 0) {
+ --FPR_remaining;
+ ++FPR_idx;
+ }
+ break;
+ }
if (FPR_remaining > 0) {
unsigned VReg;
if (ObjectVT == MVT::f32)