Add a comment to explain what's really going on.
authorChad Rosier <mcrosier@apple.com>
Fri, 31 Aug 2012 17:24:10 +0000 (17:24 +0000)
committerChad Rosier <mcrosier@apple.com>
Fri, 31 Aug 2012 17:24:10 +0000 (17:24 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163005 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/AsmParser/ARMAsmParser.cpp

index 1fde5a2e79d449e6f6d275d8bca41777ff2f8111..3ee3db5b0285f47a15bb14b92310fd9384dea329 100644 (file)
@@ -5347,6 +5347,12 @@ validateInstruction(MCInst &Inst,
   case ARM::tMUL: {
     // The second source operand must be the same register as the destination
     // operand.
+    //
+    // In this case, we must directly check the parsed operands because the
+    // cvtThumbMultiply() function is written in such a way that it guarantees
+    // this first statement is always true for the new Inst.  Essentially, the
+    // destination is unconditionally copied into the second source operand
+    // without checking to see if it matches what we actually parsed.
     if (Operands.size() == 6 &&
         (((ARMOperand*)Operands[3])->getReg() !=
          ((ARMOperand*)Operands[5])->getReg()) &&