Changes in directory llvm/lib/Target/X86:
X86InstrInfo.cpp updated: 1.66 -> 1.67 --- Log message: allow insertion of a conditional branch with fall-through --- Diffs of the changes: (+12 -6) X86InstrInfo.cpp | 18 ++++++++++++------ 1 files changed, 12 insertions(+), 6 deletions(-) Index: llvm/lib/Target/X86/X86InstrInfo.cpp diff -u llvm/lib/Target/X86/X86InstrInfo.cpp:1.66 llvm/lib/Target/X86/X86InstrInfo.cpp:1.67 --- llvm/lib/Target/X86/X86InstrInfo.cpp:1.66 Fri Oct 20 23:42:29 2006 +++ llvm/lib/Target/X86/X86InstrInfo.cpp Sat Oct 21 00:34:23 2006 @@ -374,15 +374,21 @@ const std::vector<MachineOperand> &Cond) const { // Shouldn't be a fall through. assert(TBB && "InsertBranch must not be told to insert a fallthrough"); - - // Unconditional branch? - if (FBB == 0) { - BuildMI(&MBB, X86::JMP, 1).addMBB(TBB); + assert((Cond.size() == 1 || Cond.size() == 0) && + "X86 branch conditions have one component!"); + + if (FBB == 0) { // One way branch. + if (Cond.empty()) { + // Unconditional branch? + BuildMI(&MBB, X86::JMP, 1).addMBB(TBB); + } else { + // Conditional branch. + unsigned Opc = GetCondBranchFromCond((X86::CondCode)Cond[0].getImm()); + BuildMI(&MBB, Opc, 1).addMBB(TBB); + } return; } - assert(Cond.size() == 1 && "X86 branch conditions have one component!"); - // Conditional branch. unsigned Opc = GetCondBranchFromCond((X86::CondCode)Cond[0].getImm()); BuildMI(&MBB, Opc, 1).addMBB(TBB); _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits