From 54108068b71a7dbc48f4ebf1b2d7d87ca541070a Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sat, 21 Oct 2006 05:36:13 +0000 Subject: [PATCH] implement support for inserting a cond branch git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31096 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/PowerPC/PPCInstrInfo.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/Target/PowerPC/PPCInstrInfo.cpp b/lib/Target/PowerPC/PPCInstrInfo.cpp index 9bf0746a2a2..941229dc386 100644 --- a/lib/Target/PowerPC/PPCInstrInfo.cpp +++ b/lib/Target/PowerPC/PPCInstrInfo.cpp @@ -240,15 +240,19 @@ void PPCInstrInfo::InsertBranch(MachineBasicBlock &MBB, MachineBasicBlock *TBB, const std::vector &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);