summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2007-05-15 01:36:44 +0000
committerChris Lattner <sabre@nondot.org>2007-05-15 01:36:44 +0000
commit2b5badc0e11cbc67ff585ebd7e2cba0ea44c5764 (patch)
tree5f368b9956127e38df795ce0ec32caa1e1bdade5 /llvm
parentc7596efdad5003af70eb4d4848dc79d4a9107190 (diff)
downloadbcm5719-llvm-2b5badc0e11cbc67ff585ebd7e2cba0ea44c5764.tar.gz
bcm5719-llvm-2b5badc0e11cbc67ff585ebd7e2cba0ea44c5764.zip
Fix CodeGen/PowerPC/2007-05-14-InlineAsmSelectCrash.ll, the other recent
patches are also needed. llvm-svn: 37070
Diffstat (limited to 'llvm')
-rw-r--r--llvm/utils/TableGen/DAGISelEmitter.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/llvm/utils/TableGen/DAGISelEmitter.cpp b/llvm/utils/TableGen/DAGISelEmitter.cpp
index 1926359c43f..2493536214f 100644
--- a/llvm/utils/TableGen/DAGISelEmitter.cpp
+++ b/llvm/utils/TableGen/DAGISelEmitter.cpp
@@ -3685,11 +3685,12 @@ void DAGISelEmitter::EmitInstructionSelector(std::ostream &OS) {
// 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"
@@ -3725,6 +3726,7 @@ void DAGISelEmitter::EmitInstructionSelector(std::ostream &OS) {
<< " 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"
OpenPOWER on IntegriCloud