From ebace2248f2eddeb67b5c8005b10664cdc81469d Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Wed, 11 Aug 2010 06:37:04 +0000 Subject: [PATCH] MCAsmParser: Add dump() hook to MCParsedAsmOperand. llvm-svn: 110790 --- llvm/include/llvm/MC/MCParser/MCParsedAsmOperand.h | 8 ++++++-- llvm/lib/MC/MCParser/MCAsmParser.cpp | 4 ---- llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp | 2 ++ llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp | 2 ++ 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/llvm/include/llvm/MC/MCParser/MCParsedAsmOperand.h b/llvm/include/llvm/MC/MCParser/MCParsedAsmOperand.h index 7c2f5beb7473..99fa5adae977 100644 --- a/llvm/include/llvm/MC/MCParser/MCParsedAsmOperand.h +++ b/llvm/include/llvm/MC/MCParser/MCParsedAsmOperand.h @@ -12,6 +12,7 @@ namespace llvm { class SMLoc; +class raw_ostream; /// MCParsedAsmOperand - This abstract class represents a source-level assembly /// instruction operand. It should be subclassed by target-specific code. This @@ -23,9 +24,12 @@ public: virtual ~MCParsedAsmOperand() {} /// getStartLoc - Get the location of the first token of this operand. - virtual SMLoc getStartLoc() const; + virtual SMLoc getStartLoc() const = 0; /// getEndLoc - Get the location of the last token of this operand. - virtual SMLoc getEndLoc() const; + virtual SMLoc getEndLoc() const = 0; + + /// dump - Print a debug representation of the operand to the given stream. + virtual void dump(raw_ostream &OS) const = 0; }; } // end namespace llvm. diff --git a/llvm/lib/MC/MCParser/MCAsmParser.cpp b/llvm/lib/MC/MCParser/MCAsmParser.cpp index 2544fcaf4bd2..0e0533b73701 100644 --- a/llvm/lib/MC/MCParser/MCAsmParser.cpp +++ b/llvm/lib/MC/MCParser/MCAsmParser.cpp @@ -41,8 +41,4 @@ bool MCAsmParser::ParseExpression(const MCExpr *&Res) { return ParseExpression(Res, L); } -/// getStartLoc - Get the location of the first token of this operand. -SMLoc MCParsedAsmOperand::getStartLoc() const { return SMLoc(); } -SMLoc MCParsedAsmOperand::getEndLoc() const { return SMLoc(); } - diff --git a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp b/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp index 19d7d9aa4798..2f6ac8d86d4c 100644 --- a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp +++ b/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp @@ -234,6 +234,8 @@ public: addExpr(Inst, getImm()); } + virtual void dump(raw_ostream &OS) const {} + static void CreateToken(OwningPtr &Op, StringRef Str, SMLoc S) { Op.reset(new ARMOperand); diff --git a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp index 981245d124d7..874a38ad0ed9 100644 --- a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp +++ b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp @@ -148,6 +148,8 @@ struct X86Operand : public MCParsedAsmOperand { /// getEndLoc - Get the location of the last token of this operand. SMLoc getEndLoc() const { return EndLoc; } + virtual void dump(raw_ostream &OS) const {} + StringRef getToken() const { assert(Kind == Token && "Invalid access!"); return StringRef(Tok.Data, Tok.Length); -- GitLab