Add missing Rfalse operand to the predicated pseudo-instructions.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Wed, 15 Aug 2012 16:17:24 +0000 (16:17 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Wed, 15 Aug 2012 16:17:24 +0000 (16:17 +0000)
commit65bf80e2b7d3c839331be63cdd28a8d101936bca
treee25ca8f428936f557c43ab964432b8707a013bf6
parent0c34ae88bfe6ab40fc30784f131510992438ea43
Add missing Rfalse operand to the predicated pseudo-instructions.

When predicating this instruction:

  Rd = ADD Rn, Rm

We need an extra operand to represent the value given to Rd when the
predicate is false:

  Rd = ADDCC Rfalse, Rn, Rm, pred

The Rd and Rfalse operands are different registers while in SSA form.
Rfalse is tied to Rd to make sure they get the same register during
register allocation.

Previously, Rd and Rn were tied, but that is not required.

Compare to MOVCC:

  Rd = MOVCC Rfalse, Rtrue, pred

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161955 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/ARMISelDAGToDAG.cpp
lib/Target/ARM/ARMInstrInfo.td
lib/Target/ARM/ARMInstrThumb2.td