[llvm-commits] [release_20] CVS: llvm/utils/TableGen/DAGISelEmitter.cpp

Tanya Lattner tonic at nondot.org
Thu May 17 22:51:34 PDT 2007



Changes in directory llvm/utils/TableGen:

DAGISelEmitter.cpp updated: 1.294 -> 1.294.2.1
---
Log message:

Merge inline asm fix from mainline.


---
Diffs of the changes:  (+7 -5)

 DAGISelEmitter.cpp |   12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)


Index: llvm/utils/TableGen/DAGISelEmitter.cpp
diff -u llvm/utils/TableGen/DAGISelEmitter.cpp:1.294 llvm/utils/TableGen/DAGISelEmitter.cpp:1.294.2.1
--- llvm/utils/TableGen/DAGISelEmitter.cpp:1.294	Thu Apr 26 12:03:22 2007
+++ llvm/utils/TableGen/DAGISelEmitter.cpp	Fri May 18 00:51:20 2007
@@ -3678,11 +3678,12 @@
   // Emit boilerplate.
   OS << "SDNode *Select_INLINEASM(SDOperand N) {\n"
      << "  std::vector<SDOperand> Ops(N.Val->op_begin(), N.Val->op_end());\n"
-     << "  AddToISelQueue(N.getOperand(0)); // Select the chain.\n\n"
-     << "  // Select the flag operand.\n"
-     << "  if (Ops.back().getValueType() == MVT::Flag)\n"
-     << "    AddToISelQueue(Ops.back());\n"
-     << "  SelectInlineAsmMemoryOperands(Ops, *CurDAG);\n"
+     << "  SelectInlineAsmMemoryOperands(Ops, *CurDAG);\n\n"
+    
+     << "  // Ensure that the asm operands are themselves selected.\n"
+     << "  for (unsigned j = 0, e = Ops.size(); j != e; ++j)\n"
+     << "    AddToISelQueue(Ops[j]);\n\n"
+    
      << "  std::vector<MVT::ValueType> VTs;\n"
      << "  VTs.push_back(MVT::Other);\n"
      << "  VTs.push_back(MVT::Flag);\n"
@@ -3718,6 +3719,7 @@
      << "  case ISD::TargetConstant:\n"
      << "  case ISD::TargetConstantPool:\n"
      << "  case ISD::TargetFrameIndex:\n"
+     << "  case ISD::TargetExternalSymbol:\n"
      << "  case ISD::TargetJumpTable:\n"
      << "  case ISD::TargetGlobalTLSAddress:\n"
      << "  case ISD::TargetGlobalAddress: {\n"






More information about the llvm-commits mailing list