OSDN Git Service

Fix bug recognizing moves: isMoveInstr should only treat ORs with %g0 as
authorBrian Gaeke <gaeke@uiuc.edu>
Wed, 29 Sep 2004 03:28:15 +0000 (03:28 +0000)
committerBrian Gaeke <gaeke@uiuc.edu>
Wed, 29 Sep 2004 03:28:15 +0000 (03:28 +0000)
moves, not all ORs.

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

lib/Target/Sparc/SparcInstrInfo.cpp
lib/Target/SparcV8/SparcV8InstrInfo.cpp

index 64e225f..7776b0b 100644 (file)
@@ -30,8 +30,8 @@ bool SparcV8InstrInfo::isMoveInstr(const MachineInstr &MI,
     if (MI.getOperand(1).getReg() == V8::G0) {  // X = or G0, Y -> X = Y
       DstReg = MI.getOperand(0).getReg();
       SrcReg = MI.getOperand(2).getReg();
+      return true;
     }
-    return true;
   } else if (MI.getOpcode() == V8::FMOVS) {
     SrcReg = MI.getOperand(1).getReg();
     DstReg = MI.getOperand(0).getReg();
index 64e225f..7776b0b 100644 (file)
@@ -30,8 +30,8 @@ bool SparcV8InstrInfo::isMoveInstr(const MachineInstr &MI,
     if (MI.getOperand(1).getReg() == V8::G0) {  // X = or G0, Y -> X = Y
       DstReg = MI.getOperand(0).getReg();
       SrcReg = MI.getOperand(2).getReg();
+      return true;
     }
-    return true;
   } else if (MI.getOpcode() == V8::FMOVS) {
     SrcReg = MI.getOperand(1).getReg();
     DstReg = MI.getOperand(0).getReg();