[llvm-commits] [llvm] r144811 - /llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp

Pete Cooper peter_cooper at apple.com
Wed Nov 16 11:03:24 PST 2011


Author: pete
Date: Wed Nov 16 13:03:23 2011
New Revision: 144811

URL: http://llvm.org/viewvc/llvm-project?rev=144811&view=rev
Log:
Added missing comment about new custom lowering of DEC64

Modified:
    llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp

Modified: llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp?rev=144811&r1=144810&r2=144811&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp Wed Nov 16 13:03:23 2011
@@ -2217,6 +2217,18 @@
     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);





More information about the llvm-commits mailing list