[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