mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
Prefer diagnostics from target predicate in asm matcher.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137742 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
1b84cce77f
commit
578071a087
@ -2349,6 +2349,7 @@ void AsmMatcherEmitter::run(raw_ostream &OS) {
|
||||
|
||||
OS << " // Some state to try to produce better error messages.\n";
|
||||
OS << " bool HadMatchOtherThanFeatures = false;\n";
|
||||
OS << " bool HadMatchOtherThanPredicate = false;\n";
|
||||
OS << " unsigned RetCode = Match_InvalidOperand;\n";
|
||||
OS << " // Set ErrorInfo to the operand that mismatches if it is\n";
|
||||
OS << " // wrong for all instances of the instruction.\n";
|
||||
@ -2413,6 +2414,7 @@ void AsmMatcherEmitter::run(raw_ostream &OS) {
|
||||
<< " Match_Success) {\n"
|
||||
<< " Inst.clear();\n"
|
||||
<< " RetCode = MatchResult;\n"
|
||||
<< " HadMatchOtherThanPredicate = true;\n"
|
||||
<< " continue;\n"
|
||||
<< " }\n\n";
|
||||
|
||||
@ -2426,8 +2428,9 @@ void AsmMatcherEmitter::run(raw_ostream &OS) {
|
||||
OS << " }\n\n";
|
||||
|
||||
OS << " // Okay, we had no match. Try to return a useful error code.\n";
|
||||
OS << " if (HadMatchOtherThanFeatures) return Match_MissingFeature;\n";
|
||||
OS << " return RetCode;\n";
|
||||
OS << " if (HadMatchOtherThanPredicate || !HadMatchOtherThanFeatures)";
|
||||
OS << " return RetCode;\n";
|
||||
OS << " return Match_MissingFeature;\n";
|
||||
OS << "}\n\n";
|
||||
|
||||
if (Info.OperandMatchInfo.size())
|
||||
|
Loading…
Reference in New Issue
Block a user