Fix the PPC regressions last night
authorChris Lattner <sabre@nondot.org>
Wed, 15 Nov 2006 17:40:51 +0000 (17:40 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 15 Nov 2006 17:40:51 +0000 (17:40 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31752 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/PPCInstr64Bit.td
lib/Target/PowerPC/PPCRegisterInfo.cpp

index a5d52fa8abf6989073e9f64f483f5e37c6b8c92d..3a590f25ecb69276b3627ce111611e7d9e8b02bf 100644 (file)
@@ -364,7 +364,7 @@ def STDX  : XForm_8<31, 149, (ops G8RC:$rS, memrr:$dst),
                    [(store G8RC:$rS, xaddr:$dst)]>, isPPC64,
                    PPC970_DGroup_Cracked;
 
-def STDU : DSForm_1<62, 1, (ops G8RC:$rS, memrix:$dst),
+def STDU : DSForm_1<62, 1, (ops G8RC:$ea_res, G8RC:$rS, memrix:$dst),
                     "stdu $rS, $dst", LdStSTD,
                     []>, isPPC64;
 def STDUX : XForm_8<31, 181, (ops G8RC:$rS, memrr:$dst),
index 329633bda58c8affba01417d332d0ddfaae9ab2f..1a19916a57ca36b4ff9aac4cd8b8fe3fb27125d2 100644 (file)
@@ -418,11 +418,11 @@ eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB,
       if (Old->getOpcode() == PPC::ADJCALLSTACKDOWN) {
         if (!Subtarget.isPPC64()) {
           BuildMI(MBB, I, PPC::LWZ, 2, PPC::R0).addImm(0).addReg(PPC::R31);
-          BuildMI(MBB, I, PPC::STWU, 3)
+          BuildMI(MBB, I, PPC::STWU, 3, PPC::R1)
                           .addReg(PPC::R0).addImm(-Amount).addReg(PPC::R1);
         } else {
           BuildMI(MBB, I, PPC::LD, 2, PPC::X0).addImm(0).addReg(PPC::X31);
-          BuildMI(MBB, I, PPC::STDU, 3)
+          BuildMI(MBB, I, PPC::STDU, 3, PPC::X1)
                           .addReg(PPC::X0).addImm(-Amount/4).addReg(PPC::X1);
         }
       } else {
@@ -684,8 +684,8 @@ void PPCRegisterInfo::emitPrologue(MachineFunction &MF) const {
       BuildMI(MBB, MBBI, PPC::STWUX, 3)
         .addReg(PPC::R1).addReg(PPC::R1).addReg(PPC::R0);
     } else if (NumBytes <= 32768) {
-      BuildMI(MBB, MBBI, PPC::STWU, 3).addReg(PPC::R1).addImm(NegNumbytes)
-        .addReg(PPC::R1);
+      BuildMI(MBB, MBBI, PPC::STWU, 3,
+              PPC::R1).addReg(PPC::R1).addImm(NegNumbytes).addReg(PPC::R1);
     } else {
       BuildMI(MBB, MBBI, PPC::LIS, 1, PPC::R0).addImm(NegNumbytes >> 16);
       BuildMI(MBB, MBBI, PPC::ORI, 2, PPC::R0).addReg(PPC::R0)
@@ -704,8 +704,8 @@ void PPCRegisterInfo::emitPrologue(MachineFunction &MF) const {
       BuildMI(MBB, MBBI, PPC::STDUX, 3)
         .addReg(PPC::X1).addReg(PPC::X1).addReg(PPC::X0);
     } else if (NumBytes <= 32768*4) {
-      BuildMI(MBB, MBBI, PPC::STDU, 3).addReg(PPC::X1).addImm(NegNumbytes/4)
-             .addReg(PPC::X1);
+      BuildMI(MBB, MBBI, PPC::STDU, 3, PPC::X1)
+             .addReg(PPC::X1).addImm(NegNumbytes/4).addReg(PPC::X1);
     } else {
       BuildMI(MBB, MBBI, PPC::LIS8, 1, PPC::X0).addImm(NegNumbytes >> 16);
       BuildMI(MBB, MBBI, PPC::ORI8, 2, PPC::X0).addReg(PPC::X0)