diff options
author | Kevin Enderby <enderby@apple.com> | 2009-07-16 17:56:39 +0000 |
---|---|---|
committer | Kevin Enderby <enderby@apple.com> | 2009-07-16 17:56:39 +0000 |
commit | f96db468fcf62d671cda99b68b6cfd3f2dc0b839 (patch) | |
tree | 2f2ec649cdaffcddb153812a764a05cbe96e42dd | |
parent | 214d3194034e39351a14093be5711daf507c8c4b (diff) |
Removed the SubsectionsViaSymbols MCStreamer API and replaced it with a generic
EmitAssemblerFlag API which takes a value from the added AssemblerFlag
enumerated constants.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76087 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/MC/MCStreamer.h | 10 | ||||
-rw-r--r-- | lib/MC/MCAsmStreamer.cpp | 9 | ||||
-rw-r--r-- | tools/llvm-mc/AsmParser.cpp | 2 |
3 files changed, 13 insertions, 8 deletions
diff --git a/include/llvm/MC/MCStreamer.h b/include/llvm/MC/MCStreamer.h index b8f1b2659d..7d92a16507 100644 --- a/include/llvm/MC/MCStreamer.h +++ b/include/llvm/MC/MCStreamer.h @@ -53,6 +53,10 @@ namespace llvm { SymbolAttrLast = WeakReference }; + enum AssemblerFlag { + SubsectionsViaSymbols /// .subsections_via_symbols (Apple) + }; + private: MCContext &Context; @@ -89,10 +93,8 @@ namespace llvm { // symbol section in the constructor and initialize it here? virtual void EmitLabel(MCSymbol *Symbol) = 0; - /// SubsectionsViaSymbols - Note in the output that the conventions used in - /// in the assembly file allows the bytes of a section to be divided up at - /// the boundaries of the symbols by a link editor for processing as atoms. - virtual void SubsectionsViaSymbols(void) = 0; + /// EmitAssemblerFlag - Note in the output the specified @param Flag + virtual void EmitAssemblerFlag(AssemblerFlag Flag) = 0; /// EmitAssignment - Emit an assignment of @param Value to @param Symbol. /// diff --git a/lib/MC/MCAsmStreamer.cpp b/lib/MC/MCAsmStreamer.cpp index 691694978d..e1812cee59 100644 --- a/lib/MC/MCAsmStreamer.cpp +++ b/lib/MC/MCAsmStreamer.cpp @@ -38,7 +38,7 @@ namespace { virtual void EmitLabel(MCSymbol *Symbol); - virtual void SubsectionsViaSymbols(void); + virtual void EmitAssemblerFlag(AssemblerFlag Flag); virtual void EmitAssignment(MCSymbol *Symbol, const MCValue &Value, bool MakeAbsolute = false); @@ -129,8 +129,11 @@ void MCAsmStreamer::EmitLabel(MCSymbol *Symbol) { Symbol->setExternal(false); } -void MCAsmStreamer::SubsectionsViaSymbols(void) { - OS << ".subsections_via_symbols\n"; +void MCAsmStreamer::EmitAssemblerFlag(AssemblerFlag Flag) { + switch (Flag) { + case SubsectionsViaSymbols: OS << ".subsections_via_symbols"; break; + } + OS << '\n'; } void MCAsmStreamer::AbortAssembly(const char *AbortReason) { diff --git a/tools/llvm-mc/AsmParser.cpp b/tools/llvm-mc/AsmParser.cpp index 5a6db1c9c0..4629cfc34b 100644 --- a/tools/llvm-mc/AsmParser.cpp +++ b/tools/llvm-mc/AsmParser.cpp @@ -1107,7 +1107,7 @@ bool AsmParser::ParseDirectiveDarwinSubsectionsViaSymbols() { Lexer.Lex(); - Out.SubsectionsViaSymbols(); + Out.EmitAssemblerFlag(MCStreamer::SubsectionsViaSymbols); return false; } |