Added missing comment about new custom lowering of DEC64
authorPete Cooper <peter_cooper@apple.com>
Wed, 16 Nov 2011 19:03:23 +0000 (19:03 +0000)
committerPete Cooper <peter_cooper@apple.com>
Wed, 16 Nov 2011 19:03:23 +0000 (19:03 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144811 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86ISelDAGToDAG.cpp

index 867c93091ee4419f5b8296fb6e2cf8a2700ebe50..3c35763f82dedd9ca305a0b044f35e72dbcacd1b 100644 (file)
@@ -2217,6 +2217,18 @@ SDNode *X86DAGToDAGISel::Select(SDNode *Node) {
     break;
   }
   case ISD::STORE: {
+    // The DEC64m tablegen pattern is currently not able to match the case where
+    // the EFLAGS on the original DEC are used.
+    // we'll need to improve tablegen to allow flags to be transferred from a
+    // node in the pattern to the result node.  probably with a new keyword
+    // for example, we have this
+    // def DEC64m : RI<0xFF, MRM1m, (outs), (ins i64mem:$dst), "dec{q}\t$dst",
+    //  [(store (add (loadi64 addr:$dst), -1), addr:$dst),
+    //   (implicit EFLAGS)]>;
+    // but maybe need something like this
+    // def DEC64m : RI<0xFF, MRM1m, (outs), (ins i64mem:$dst), "dec{q}\t$dst",
+    //  [(store (add (loadi64 addr:$dst), -1), addr:$dst),
+    //   (transferrable EFLAGS)]>;
     StoreSDNode *StoreNode = cast<StoreSDNode>(Node);
     SDValue Chain = StoreNode->getOperand(0);
     SDValue StoredVal = StoreNode->getOperand(1);