diff options
author | Kevin Enderby <enderby@apple.com> | 2009-07-13 21:03:15 +0000 |
---|---|---|
committer | Kevin Enderby <enderby@apple.com> | 2009-07-13 21:03:15 +0000 |
commit | a5c783280f83df5c60a8ed9e32c61b05a11048e3 (patch) | |
tree | 4bde7c9a4caa986196c8130d8dbfe422e605adc9 /tools | |
parent | eb7f7a86651140fe8c2e00765bcb1cebe675eb33 (diff) | |
download | external_llvm-a5c783280f83df5c60a8ed9e32c61b05a11048e3.zip external_llvm-a5c783280f83df5c60a8ed9e32c61b05a11048e3.tar.gz external_llvm-a5c783280f83df5c60a8ed9e32c61b05a11048e3.tar.bz2 |
add llvm-mc support for parsing the .subsections_via_symbols directive.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75500 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools')
-rw-r--r-- | tools/llvm-mc/AsmParser.cpp | 16 | ||||
-rw-r--r-- | tools/llvm-mc/AsmParser.h | 3 |
2 files changed, 19 insertions, 0 deletions
diff --git a/tools/llvm-mc/AsmParser.cpp b/tools/llvm-mc/AsmParser.cpp index a2cdea4..fe9d4f3 100644 --- a/tools/llvm-mc/AsmParser.cpp +++ b/tools/llvm-mc/AsmParser.cpp @@ -527,6 +527,9 @@ bool AsmParser::ParseStatement() { if (!strcmp(IDVal, ".zerofill")) return ParseDirectiveDarwinZerofill(); + if (!strcmp(IDVal, ".subsections_via_symbols")) + return ParseDirectiveDarwinSubsectionsViaSymbols(); + Warning(IDLoc, "ignoring directive for now"); EatToEndOfStatement(); return false; @@ -1052,3 +1055,16 @@ bool AsmParser::ParseDirectiveDarwinZerofill() { return false; } + +/// ParseDirectiveDarwinSubsectionsViaSymbols +/// ::= .subsections_via_symbols +bool AsmParser::ParseDirectiveDarwinSubsectionsViaSymbols() { + if (Lexer.isNot(asmtok::EndOfStatement)) + return TokError("unexpected token in '.subsections_via_symbols' directive"); + + Lexer.Lex(); + + Out.SubsectionsViaSymbols(); + + return false; +} diff --git a/tools/llvm-mc/AsmParser.h b/tools/llvm-mc/AsmParser.h index 620ac19..fcdd064 100644 --- a/tools/llvm-mc/AsmParser.h +++ b/tools/llvm-mc/AsmParser.h @@ -112,6 +112,9 @@ private: bool ParseDirectiveComm(bool IsLocal); // ".comm" and ".lcomm" bool ParseDirectiveDarwinZerofill(); // Darwin specific ".zerofill" + + // Darwin specific ".subsections_via_symbols" + bool ParseDirectiveDarwinSubsectionsViaSymbols(); }; } // end namespace llvm |