Propagate cr# from COND_BRANCH to the actual branch instruction as appropriate
authorChris Lattner <sabre@nondot.org>
Fri, 26 Aug 2005 23:41:27 +0000 (23:41 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 26 Aug 2005 23:41:27 +0000 (23:41 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23111 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/PPCBranchSelector.cpp

index 9a29eec55f4e1dabeccc0d13e3d48ef4bd6e062b..24187e3b9fe2c6c237c1e5185a305602131a7b2f 100644 (file)
@@ -106,12 +106,13 @@ namespace {
 
             int Displacement = OffsetMap[trueMBB] - ByteCount;
             unsigned Opcode = MBBI->getOperand(1).getImmedValue();
+            unsigned CRReg = MBBI->getOperand(0).getReg();
             unsigned Inverted = PPC32InstrInfo::invertPPCBranchOpcode(Opcode);
 
             if (Displacement >= -32768 && Displacement <= 32767) {
-              BuildMI(*MBB, MBBJ, Opcode, 2).addReg(PPC::CR0).addMBB(trueMBB);
+              BuildMI(*MBB, MBBJ, Opcode, 2).addReg(CRReg).addMBB(trueMBB);
             } else {
-              BuildMI(*MBB, MBBJ, Inverted, 2).addReg(PPC::CR0).addSImm(8);
+              BuildMI(*MBB, MBBJ, Inverted, 2).addReg(CRReg).addSImm(8);
               BuildMI(*MBB, MBBJ, PPC::B, 1).addMBB(trueMBB);
               BuildMI(*MBB, MBBJ, PPC::B, 1).addMBB(falseMBB);
             }