Add support for READPORT, WRITEPORT, READIO, WRITEIO
authorChris Lattner <sabre@nondot.org>
Mon, 9 May 2005 20:22:17 +0000 (20:22 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 9 May 2005 20:22:17 +0000 (20:22 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21824 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/SelectionDAG.cpp

index faeb872528b4161ad8d1425fb42e335eab70e11f..f130b161fafb4fb4286438b95a72aac18895ca7f 100644 (file)
@@ -1195,7 +1195,11 @@ SDOperand SelectionDAG::getNode(unsigned Opcode, MVT::ValueType VT,
   SDNode *&N = BinaryOps[std::make_pair(Opcode, std::make_pair(N1, N2))];
   if (N) return SDOperand(N, 0);
   N = new SDNode(Opcode, N1, N2);
-  N->setValueTypes(VT);
+
+  if (Opcode != ISD::READPORT && Opcode != ISD::READIO)
+    N->setValueTypes(VT);
+  else
+    N->setValueTypes(VT, MVT::Other);
 
   AllNodes.push_back(N);
   return SDOperand(N, 0);
@@ -1666,6 +1670,11 @@ const char *SDNode::getOperationName() const {
   case ISD::MEMCPY:  return "memcpy";
   case ISD::MEMMOVE: return "memmove";
 
+  case ISD::READPORT: return "readport";
+  case ISD::WRITEPORT: return "writeport";
+  case ISD::READIO: return "readio";
+  case ISD::WRITEIO: return "writeio";
+
   case ISD::SETCC:
     const SetCCSDNode *SetCC = cast<SetCCSDNode>(this);
     switch (SetCC->getCondition()) {