ADDI can take several forms, including:
authorMisha Brukman <brukman+llvm@gmail.com>
Mon, 26 Jul 2004 21:50:38 +0000 (21:50 +0000)
committerMisha Brukman <brukman+llvm@gmail.com>
Mon, 26 Jul 2004 21:50:38 +0000 (21:50 +0000)
  addi r1, r2, 0
  addi r1, <frame index #n>, 0

so we must check for the second parameter being a register for this instruction
to be considered a reg-to-reg copy.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15244 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/PowerPCInstrInfo.cpp

index e7354cdc442ef71826c7c7be443d79d8ba92e06f..ba14b36baf1d0b71e45548f614cedb7e564bab9b 100644 (file)
@@ -40,10 +40,9 @@ bool PowerPCInstrInfo::isMoveInstr(const MachineInstr& MI,
   } else if (oc == PPC32::ADDI) {             // addi r1, r2, 0
     assert(MI.getNumOperands() == 3 &&
            MI.getOperand(0).isRegister() &&
-           MI.getOperand(1).isRegister() &&
            MI.getOperand(2).isImmediate() &&
            "invalid PPC32 ADDI instruction!");
-    if (MI.getOperand(2).getImmedValue() == 0) {
+    if (MI.getOperand(1).isRegister() && MI.getOperand(2).getImmedValue()==0) {
       sourceReg = MI.getOperand(1).getReg();
       destReg = MI.getOperand(0).getReg();
       return true;