From 6bdc8ae2916d20740790e0618692df7dac598cd0 Mon Sep 17 00:00:00 2001 From: Jim Grosbach Date: Fri, 15 Oct 2010 17:35:17 +0000 Subject: [PATCH] When expanding the MOVsr[la]_flag pseudos, the CPSR implicit def becomes an explicit def. Make sure to capture that properly. rdar://8556556 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116591 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/ARM/ARMExpandPseudoInsts.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/Target/ARM/ARMExpandPseudoInsts.cpp b/lib/Target/ARM/ARMExpandPseudoInsts.cpp index 5dceeb1967f..836f69d6137 100644 --- a/lib/Target/ARM/ARMExpandPseudoInsts.cpp +++ b/lib/Target/ARM/ARMExpandPseudoInsts.cpp @@ -586,8 +586,7 @@ bool ARMExpandPseudo::ExpandMBB(MachineBasicBlock &MBB) { .addReg(0) .addImm(ARM_AM::getSORegOpc((Opcode == ARM::MOVsrl_flag ? ARM_AM::lsr : ARM_AM::asr), 1))) - .addReg(ARM::CPSR); - TransferImpOps(MI, MIB, MIB); + .addReg(ARM::CPSR, getDefRegState(true)); MI.eraseFromParent(); break; }