summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/MCParser/AsmParser.cpp
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2010-08-11 06:37:09 +0000
committerDaniel Dunbar <daniel@zuster.org>2010-08-11 06:37:09 +0000
commit2eca0252c358c778f3b133667e74ba808cbd41ce (patch)
tree23d23ecc1319cd02851d8fa39901973d5a167a43 /llvm/lib/MC/MCParser/AsmParser.cpp
parentebace2248f2eddeb67b5c8005b10664cdc81469d (diff)
downloadbcm5719-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.cpp15
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;
OpenPOWER on IntegriCloud