[llvm-commits] [llvm] r47428 - /llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

Chris Lattner sabre at nondot.org
Wed Feb 20 21:27:19 PST 2008


Author: lattner
Date: Wed Feb 20 23:27:19 2008
New Revision: 47428

URL: http://llvm.org/viewvc/llvm-project?rev=47428&view=rev
Log:
Add support for matching mem operands.  This fixes PR1133, patch by
Eli Friedman.  This implements CodeGen/Generic/2008-02-20-MatchingMem.ll.

Modified:
    llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp?rev=47428&r1=47427&r2=47428&view=diff

==============================================================================
--- llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp (original)
+++ llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp Wed Feb 20 23:27:19 2008
@@ -3846,7 +3846,13 @@
           break;
         } else {
           assert((NumOps & 7) == 4/*MEM*/ && "Unknown matching constraint!");
-          assert(0 && "matching constraints for memory operands unimp");
+          assert((NumOps >> 3) == 1 && "Unexpected number of operands"); 
+          // Add information to the INLINEASM node to know about this input.
+          unsigned ResOpType = 4/*MEM*/ | (1 << 3);
+          AsmNodeOperands.push_back(DAG.getTargetConstant(ResOpType,
+                                                          TLI.getPointerTy()));
+          AsmNodeOperands.push_back(AsmNodeOperands[CurOp+1]);
+          break;
         }
       }
       





More information about the llvm-commits mailing list