Removed the DumpSymbolsandMacros and LoadSymbolsandMacros MCStreamer API as

the parsing of the .dump and .load should be done in the assembly parser and
not have any need for an MCStreamer API.  Changed the code for now so these
just produce an error saying these specific directives are not yet implemented
since they are likely no longer used and may never need to be implemented.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76462 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Kevin Enderby 2009-07-20 20:25:37 +00:00
parent dbd692a66e
commit 5026ae4514
5 changed files with 9 additions and 39 deletions

View File

@ -162,18 +162,6 @@ namespace llvm {
/// @param AbortReason - The reason assembly is terminated, if non-NULL. /// @param AbortReason - The reason assembly is terminated, if non-NULL.
virtual void AbortAssembly(const char *AbortReason) = 0; virtual void AbortAssembly(const char *AbortReason) = 0;
/// DumpSymbolsandMacros - Dump to the specified file in @param FileName all
/// symbols and macros at this point in the assembly.
///
/// @param FileName - The file to dump the symbols and macros into.
virtual void DumpSymbolsandMacros(const char *FileName) = 0;
/// LoadSymbolsandMacros - Load from the specified file in @param FileName
/// symbols and macros into the assembler at this point in the assembly.
///
/// @param FileName - The file to load the symbols and macros from.
virtual void LoadSymbolsandMacros(const char *FileName) = 0;
/// @} /// @}
/// @name Generating Data /// @name Generating Data
/// @{ /// @{

View File

@ -57,10 +57,6 @@ namespace {
virtual void AbortAssembly(const char *AbortReason = NULL); virtual void AbortAssembly(const char *AbortReason = NULL);
virtual void DumpSymbolsandMacros(const char *FileName);
virtual void LoadSymbolsandMacros(const char *FileName);
virtual void EmitBytes(const char *Data, unsigned Length); virtual void EmitBytes(const char *Data, unsigned Length);
virtual void EmitValue(const MCValue &Value, unsigned Size); virtual void EmitValue(const MCValue &Value, unsigned Size);
@ -144,14 +140,6 @@ void MCAsmStreamer::AbortAssembly(const char *AbortReason) {
} }
void MCAsmStreamer::DumpSymbolsandMacros(const char *FileName) {
OS << ".dump" << ' ' << FileName << '\n';
}
void MCAsmStreamer::LoadSymbolsandMacros(const char *FileName) {
OS << ".load" << ' ' << FileName << '\n';
}
void MCAsmStreamer::EmitAssignment(MCSymbol *Symbol, const MCValue &Value, void MCAsmStreamer::EmitAssignment(MCSymbol *Symbol, const MCValue &Value,
bool MakeAbsolute) { bool MakeAbsolute) {
assert(!Symbol->getSection() && "Cannot assign to a label!"); assert(!Symbol->getSection() && "Cannot assign to a label!");

View File

@ -1,8 +0,0 @@
# RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
# CHECK: TEST0:
# CHECK: .dump "somefile"
# CHECK: .load "jack and jill"
TEST0:
.dump "somefile"
.load "jack and jill"

View File

@ -539,9 +539,9 @@ bool AsmParser::ParseStatement() {
if (!strcmp(IDVal, ".include")) if (!strcmp(IDVal, ".include"))
return ParseDirectiveInclude(); return ParseDirectiveInclude();
if (!strcmp(IDVal, ".dump")) if (!strcmp(IDVal, ".dump"))
return ParseDirectiveDarwinDumpOrLoad(/*IsDump=*/true); return ParseDirectiveDarwinDumpOrLoad(IDLoc, /*IsDump=*/true);
if (!strcmp(IDVal, ".load")) if (!strcmp(IDVal, ".load"))
return ParseDirectiveDarwinDumpOrLoad(/*IsLoad=*/false); return ParseDirectiveDarwinDumpOrLoad(IDLoc, /*IsLoad=*/false);
Warning(IDLoc, "ignoring directive for now"); Warning(IDLoc, "ignoring directive for now");
EatToEndOfStatement(); EatToEndOfStatement();
@ -1197,11 +1197,11 @@ bool AsmParser::ParseDirectiveInclude() {
/// ParseDirectiveDarwinDumpOrLoad /// ParseDirectiveDarwinDumpOrLoad
/// ::= ( .dump | .load ) "filename" /// ::= ( .dump | .load ) "filename"
bool AsmParser::ParseDirectiveDarwinDumpOrLoad(bool IsDump) { bool AsmParser::ParseDirectiveDarwinDumpOrLoad(SMLoc IDLoc, bool IsDump) {
if (Lexer.isNot(asmtok::String)) if (Lexer.isNot(asmtok::String))
return TokError("expected string in '.dump' or '.load' directive"); return TokError("expected string in '.dump' or '.load' directive");
const char *Str = Lexer.getCurStrVal(); Lexer.getCurStrVal();
Lexer.Lex(); Lexer.Lex();
@ -1210,10 +1210,12 @@ bool AsmParser::ParseDirectiveDarwinDumpOrLoad(bool IsDump) {
Lexer.Lex(); Lexer.Lex();
// FIXME: If/when .dump and .load are implemented they will be done in the
// the assembly parser and not have any need for an MCStreamer API.
if (IsDump) if (IsDump)
Out.DumpSymbolsandMacros(Str); Warning(IDLoc, "ignoring directive .dump for now");
else else
Out.LoadSymbolsandMacros(Str); Warning(IDLoc, "ignoring directive .load for now");
return false; return false;
} }

View File

@ -127,7 +127,7 @@ private:
// Darwin specific ".subsections_via_symbols" // Darwin specific ".subsections_via_symbols"
bool ParseDirectiveDarwinSubsectionsViaSymbols(); bool ParseDirectiveDarwinSubsectionsViaSymbols();
// Darwin specific .dump and .load // Darwin specific .dump and .load
bool ParseDirectiveDarwinDumpOrLoad(bool IsDump); bool ParseDirectiveDarwinDumpOrLoad(SMLoc IDLoc, bool IsDump);
bool ParseDirectiveAbort(); // ".abort" bool ParseDirectiveAbort(); // ".abort"
bool ParseDirectiveInclude(); // ".include" bool ParseDirectiveInclude(); // ".include"