diff options
author | Daniel Dunbar <daniel@zuster.org> | 2010-08-11 06:37:09 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2010-08-11 06:37:09 +0000 |
commit | 2eca0252c358c778f3b133667e74ba808cbd41ce (patch) | |
tree | 23d23ecc1319cd02851d8fa39901973d5a167a43 /llvm/lib/MC/MCParser/AsmParser.cpp | |
parent | ebace2248f2eddeb67b5c8005b10664cdc81469d (diff) | |
download | bcm5719-llvm-2eca0252c358c778f3b133667e74ba808cbd41ce.tar.gz bcm5719-llvm-2eca0252c358c778f3b133667e74ba808cbd41ce.zip |
llvm-mc: Add -show-inst-operands, for dumping the parsed instruction representation before matching.
llvm-svn: 110791
Diffstat (limited to 'llvm/lib/MC/MCParser/AsmParser.cpp')
-rw-r--r-- | llvm/lib/MC/MCParser/AsmParser.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/llvm/lib/MC/MCParser/AsmParser.cpp b/llvm/lib/MC/MCParser/AsmParser.cpp index 70a37e3009b..016f8f96a36 100644 --- a/llvm/lib/MC/MCParser/AsmParser.cpp +++ b/llvm/lib/MC/MCParser/AsmParser.cpp @@ -916,6 +916,21 @@ bool AsmParser::ParseStatement() { if (!HadError && Lexer.isNot(AsmToken::EndOfStatement)) HadError = TokError("unexpected token in argument list"); + // Dump the parsed representation, if requested. + if (getShowParsedOperands()) { + SmallString<256> Str; + raw_svector_ostream OS(Str); + OS << "parsed instruction: ["; + for (unsigned i = 0; i != ParsedOperands.size(); ++i) { + if (i != 0) + OS << ", "; + ParsedOperands[i]->dump(OS); + } + OS << "]"; + + PrintMessage(IDLoc, OS.str(), "note"); + } + // If parsing succeeded, match the instruction. if (!HadError) { MCInst Inst; |