X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FTarget%2FPowerPC%2FPPCISelLowering.cpp;h=674161eb5c73fc71e48c28c6d50e0432d2a19f87;hb=5f0cfa299d16e6d43577317176cab1a463c912da;hp=2dec8d61b5bf9834caf6f4568e47e92d731481cc;hpb=0bfb75277f6d6e160dd29d99e6870da927500b50;p=oota-llvm.git diff --git a/lib/Target/PowerPC/PPCISelLowering.cpp b/lib/Target/PowerPC/PPCISelLowering.cpp index 2dec8d61b5b..674161eb5c7 100644 --- a/lib/Target/PowerPC/PPCISelLowering.cpp +++ b/lib/Target/PowerPC/PPCISelLowering.cpp @@ -4056,20 +4056,20 @@ PPCTargetLowering::EmitInstrWithCustomInserter(MachineInstr *MI, // loopMBB: // l[wd]arx dest, ptr - // cmp[wd] dest, oldval - // bne- exitMBB + // cmp[wd] CR1, dest, oldval // st[wd]cx. newval, ptr + // bne- CR1, exitMBB // bne- loopMBB // fallthrough --> exitMBB BB = loopMBB; BuildMI(BB, TII->get(is64bit ? PPC::LDARX : PPC::LWARX), dest) .addReg(ptrA).addReg(ptrB); - BuildMI(BB, TII->get(is64bit ? PPC::CMPD : PPC::CMPW), PPC::CR0) + BuildMI(BB, TII->get(is64bit ? PPC::CMPD : PPC::CMPW), PPC::CR1) .addReg(oldval).addReg(dest); - BuildMI(BB, TII->get(PPC::BCC)) - .addImm(PPC::PRED_NE).addReg(PPC::CR0).addMBB(exitMBB); BuildMI(BB, TII->get(is64bit ? PPC::STDCX : PPC::STWCX)) .addReg(newval).addReg(ptrA).addReg(ptrB); + BuildMI(BB, TII->get(PPC::BCC)) + .addImm(PPC::PRED_NE).addReg(PPC::CR1).addMBB(exitMBB); BuildMI(BB, TII->get(PPC::BCC)) .addImm(PPC::PRED_NE).addReg(PPC::CR0).addMBB(loopMBB); BB->addSuccessor(loopMBB);