diff options
author | JF Bastien <jfb@chromium.org> | 2013-07-11 10:11:35 -0700 |
---|---|---|
committer | JF Bastien <jfb@chromium.org> | 2013-07-11 10:11:35 -0700 |
commit | c75199c649c739aade160289d93f257edc798cde (patch) | |
tree | 9ffcc6e3363430db7f4d63e403f96b5e5aab0f09 | |
parent | 8d4dd5f4314a8d6ec4fd6b8397e677763e8b7624 (diff) |
Fix ARM paired GPR COPY lowering
ARM paired GPR COPY was being lowered to two MOVr without CC. This patch puts the CC back.
I sent this patch upstream (with a test) but haven't received a review yet. This seems like a simple oversight in the code, and is holding my atomics patch so I'd like to get it into our repo.
R=dschuff@chromium.org
TEST= ./scons run_llvm_bitmanip_intrinsics_test platform=arm
BUG= no CC on MOVr
Review URL: https://codereview.chromium.org/18047006
-rw-r--r-- | lib/Target/ARM/ARMBaseInstrInfo.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/Target/ARM/ARMBaseInstrInfo.cpp b/lib/Target/ARM/ARMBaseInstrInfo.cpp index 5639f01490..c9c9f786eb 100644 --- a/lib/Target/ARM/ARMBaseInstrInfo.cpp +++ b/lib/Target/ARM/ARMBaseInstrInfo.cpp @@ -740,6 +740,9 @@ void ARMBaseInstrInfo::copyPhysReg(MachineBasicBlock &MBB, if (Opc == ARM::VORRq) Mov.addReg(Src); Mov = AddDefaultPred(Mov); + // MOVr can set CC. + if (Opc == ARM::MOVr) + Mov = AddDefaultCC(Mov); } // Add implicit super-register defs and kills to the last instruction. Mov->addRegisterDefined(DestReg, TRI); |