Tighten conditional for 'mov' cc_out.
authorJim Grosbach <grosbach@apple.com>
Tue, 19 Jul 2011 19:45:44 +0000 (19:45 +0000)
committerJim Grosbach <grosbach@apple.com>
Tue, 19 Jul 2011 19:45:44 +0000 (19:45 +0000)
Make sure we only clobber the cc_out operand if it is indeed a default
non-setting operand.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135506 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/AsmParser/ARMAsmParser.cpp

index 9f6bd270bd0ca7255dffbaac85d196cca87830c6..1013ecf3ad8afd7618e5000303017d60a8b09803 100644 (file)
@@ -2188,7 +2188,8 @@ bool ARMAsmParser::ParseInstruction(StringRef Name, SMLoc NameLoc,
   // to check the type of the parsed immediate operand.
   if (Mnemonic == "mov" && Operands.size() > 4 &&
       !static_cast<ARMOperand*>(Operands[4])->isARMSOImm() &&
-      static_cast<ARMOperand*>(Operands[4])->isImm0_65535Expr()) {
+      static_cast<ARMOperand*>(Operands[4])->isImm0_65535Expr() &&
+      static_cast<ARMOperand*>(Operands[1])->getReg() == 0) {
     ARMOperand *Op = static_cast<ARMOperand*>(Operands[1]);
     Operands.erase(Operands.begin() + 1);
     delete Op;