[llvm-commits] CVS: llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

Chris Lattner lattner at cs.uiuc.edu
Sat May 14 06:57:13 PDT 2005



Changes in directory llvm/lib/CodeGen/SelectionDAG:

SelectionDAGISel.cpp updated: 1.59 -> 1.60
---
Log message:

Fix construction of ioport intrinsics, fixing X86/io.llx and io-port.llx


---
Diffs of the changes:  (+10 -4)

 SelectionDAGISel.cpp |   14 ++++++++++----
 1 files changed, 10 insertions(+), 4 deletions(-)


Index: llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1.59 llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1.60
--- llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1.59	Sat May 14 02:29:57 2005
+++ llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp	Sat May 14 08:56:55 2005
@@ -711,14 +711,20 @@
       case Intrinsic::memmove: visitMemIntrinsic(I, ISD::MEMMOVE); return;
 
       case Intrinsic::readport:
-      case Intrinsic::readio:
+      case Intrinsic::readio: {
+        std::vector<MVT::ValueType> VTs;
+        VTs.push_back(TLI.getValueType(I.getType()));
+        VTs.push_back(MVT::Other);
+        std::vector<SDOperand> Ops;
+        Ops.push_back(getRoot());
+        Ops.push_back(getValue(I.getOperand(1)));
         Tmp = DAG.getNode(F->getIntrinsicID() == Intrinsic::readport ?
-                          ISD::READPORT : ISD::READIO,
-                          TLI.getValueType(I.getType()), getRoot(),
-                          getValue(I.getOperand(1)));
+                          ISD::READPORT : ISD::READIO, VTs, Ops);
+                          
         setValue(&I, Tmp);
         DAG.setRoot(Tmp.getValue(1));
         return;
+      }
       case Intrinsic::writeport:
       case Intrinsic::writeio:
         DAG.setRoot(DAG.getNode(F->getIntrinsicID() == Intrinsic::writeport ?






More information about the llvm-commits mailing list