forked from OSchip/llvm-project
parent
295e196558
commit
c5c228fa59
|
@ -2206,26 +2206,71 @@ public:
|
||||||
<< NumResults << ");\n";
|
<< NumResults << ");\n";
|
||||||
}
|
}
|
||||||
} else if (HasChain || HasOutFlag) {
|
} else if (HasChain || HasOutFlag) {
|
||||||
OS << " SDOperand Result = CurDAG->getTargetNode("
|
if (HasOptInFlag) {
|
||||||
<< II.Namespace << "::" << II.TheDef->getName();
|
OS << " SDOperand Result = SDOperand(0, 0);\n";
|
||||||
|
unsigned FlagNo = (unsigned) NodeHasChain + Pattern->getNumChildren();
|
||||||
|
OS << " if (N.getNumOperands() == " << FlagNo+1 << ")\n";
|
||||||
|
OS << " Result = CurDAG->getTargetNode("
|
||||||
|
<< II.Namespace << "::" << II.TheDef->getName();
|
||||||
|
|
||||||
// Output order: results, chain, flags
|
// Output order: results, chain, flags
|
||||||
// Result types.
|
// Result types.
|
||||||
if (NumResults > 0) {
|
if (NumResults > 0) {
|
||||||
if (N->getTypeNum(0) != MVT::isVoid)
|
if (N->getTypeNum(0) != MVT::isVoid)
|
||||||
OS << ", MVT::" << getEnumName(N->getTypeNum(0));
|
OS << ", MVT::" << getEnumName(N->getTypeNum(0));
|
||||||
|
}
|
||||||
|
if (HasChain)
|
||||||
|
OS << ", MVT::Other";
|
||||||
|
if (HasOutFlag)
|
||||||
|
OS << ", MVT::Flag";
|
||||||
|
|
||||||
|
// Inputs.
|
||||||
|
for (unsigned i = 0, e = Ops.size(); i != e; ++i)
|
||||||
|
OS << ", Tmp" << Ops[i];
|
||||||
|
if (HasChain) OS << ", Chain";
|
||||||
|
OS << ", InFlag);\n";
|
||||||
|
|
||||||
|
OS << " else\n";
|
||||||
|
OS << " Result = CurDAG->getTargetNode("
|
||||||
|
<< II.Namespace << "::" << II.TheDef->getName();
|
||||||
|
|
||||||
|
// Output order: results, chain, flags
|
||||||
|
// Result types.
|
||||||
|
if (NumResults > 0) {
|
||||||
|
if (N->getTypeNum(0) != MVT::isVoid)
|
||||||
|
OS << ", MVT::" << getEnumName(N->getTypeNum(0));
|
||||||
|
}
|
||||||
|
if (HasChain)
|
||||||
|
OS << ", MVT::Other";
|
||||||
|
if (HasOutFlag)
|
||||||
|
OS << ", MVT::Flag";
|
||||||
|
|
||||||
|
// Inputs.
|
||||||
|
for (unsigned i = 0, e = Ops.size(); i != e; ++i)
|
||||||
|
OS << ", Tmp" << Ops[i];
|
||||||
|
if (HasChain) OS << ", Chain);\n";
|
||||||
|
} else {
|
||||||
|
OS << " SDOperand Result = CurDAG->getTargetNode("
|
||||||
|
<< II.Namespace << "::" << II.TheDef->getName();
|
||||||
|
|
||||||
|
// Output order: results, chain, flags
|
||||||
|
// Result types.
|
||||||
|
if (NumResults > 0) {
|
||||||
|
if (N->getTypeNum(0) != MVT::isVoid)
|
||||||
|
OS << ", MVT::" << getEnumName(N->getTypeNum(0));
|
||||||
|
}
|
||||||
|
if (HasChain)
|
||||||
|
OS << ", MVT::Other";
|
||||||
|
if (HasOutFlag)
|
||||||
|
OS << ", MVT::Flag";
|
||||||
|
|
||||||
|
// Inputs.
|
||||||
|
for (unsigned i = 0, e = Ops.size(); i != e; ++i)
|
||||||
|
OS << ", Tmp" << Ops[i];
|
||||||
|
if (HasChain) OS << ", Chain";
|
||||||
|
if (HasInFlag || HasImpInputs) OS << ", InFlag";
|
||||||
|
OS << ");\n";
|
||||||
}
|
}
|
||||||
if (HasChain)
|
|
||||||
OS << ", MVT::Other";
|
|
||||||
if (HasOutFlag)
|
|
||||||
OS << ", MVT::Flag";
|
|
||||||
|
|
||||||
// Inputs.
|
|
||||||
for (unsigned i = 0, e = Ops.size(); i != e; ++i)
|
|
||||||
OS << ", Tmp" << Ops[i];
|
|
||||||
if (HasChain) OS << ", Chain";
|
|
||||||
if (HasInFlag || HasOptInFlag || HasImpInputs) OS << ", InFlag";
|
|
||||||
OS << ");\n";
|
|
||||||
|
|
||||||
unsigned ValNo = 0;
|
unsigned ValNo = 0;
|
||||||
for (unsigned i = 0; i < NumResults; i++) {
|
for (unsigned i = 0; i < NumResults; i++) {
|
||||||
|
|
Loading…
Reference in New Issue