implement support for inserting a cond branch
authorChris Lattner <sabre@nondot.org>
Sat, 21 Oct 2006 05:36:13 +0000 (05:36 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 21 Oct 2006 05:36:13 +0000 (05:36 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31096 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/PPCInstrInfo.cpp

index 9bf0746a2a2ebb63a093709fc65051952fe6d361..941229dc386d10685cb12cbaab5f421be3725a4c 100644 (file)
@@ -240,15 +240,19 @@ void PPCInstrInfo::InsertBranch(MachineBasicBlock &MBB, MachineBasicBlock *TBB,
                                 const std::vector<MachineOperand> &Cond) const {
   // Shouldn't be a fall through.
   assert(TBB && "InsertBranch must not be told to insert a fallthrough");
+  assert((Cond.size() == 2 || Cond.size() == 0) && 
+         "PPC branch conditions have two components!");
   
-  // Unconditional branch?
+  // One-way branch.
   if (FBB == 0) {
-    BuildMI(&MBB, PPC::B, 1).addMBB(TBB);
+    if (Cond.empty())   // Unconditional branch
+      BuildMI(&MBB, PPC::B, 1).addMBB(TBB);
+    else                // Conditional branch
+      BuildMI(&MBB, PPC::COND_BRANCH, 3)
+        .addReg(Cond[0].getReg()).addImm(Cond[1].getImm()).addMBB(TBB);
     return;
   }
   
-  assert(Cond.size() == 2 && "PPC branch conditions have two components!");
-  
   // Conditional branch
   BuildMI(&MBB, PPC::COND_BRANCH, 3)
     .addReg(Cond[0].getReg()).addImm(Cond[1].getImm()).addMBB(TBB);