mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-29 10:25:12 +00:00
The new isel was not properly handling patterns that covered
internal nodes with flag results. Record these with a new OPC_MarkFlagResults opcode and use this to update the interior nodes' flag results properly. This fixes CodeGen/X86/i256-add.ll with the new isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97021 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -337,6 +337,15 @@ EmitMatcher(const MatcherNode *N, unsigned Indent, formatted_raw_ostream &OS) {
|
||||
OS << '\n';
|
||||
return 6+EN->getNumVTs()+NumOperandBytes;
|
||||
}
|
||||
case MatcherNode::MarkFlagResults: {
|
||||
const MarkFlagResultsMatcherNode *CFR = cast<MarkFlagResultsMatcherNode>(N);
|
||||
OS << "OPC_MarkFlagResults, " << CFR->getNumNodes() << ", ";
|
||||
unsigned NumOperandBytes = 0;
|
||||
for (unsigned i = 0, e = CFR->getNumNodes(); i != e; ++i)
|
||||
NumOperandBytes += EmitVBRValue(CFR->getNode(i), OS);
|
||||
OS << '\n';
|
||||
return 2+NumOperandBytes;
|
||||
}
|
||||
case MatcherNode::CompleteMatch: {
|
||||
const CompleteMatchMatcherNode *CM = cast<CompleteMatchMatcherNode>(N);
|
||||
OS << "OPC_CompleteMatch, " << CM->getNumResults() << ", ";
|
||||
|
Reference in New Issue
Block a user