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
This commit is contained in:
Kevin Enderby 2009-07-16 17:56:39 +00:00
parent 214d319403
commit f96db468fc
3 changed files with 13 additions and 8 deletions

View File

@ -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.
///

View File

@ -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) {

View File

@ -1107,7 +1107,7 @@ bool AsmParser::ParseDirectiveDarwinSubsectionsViaSymbols() {
Lexer.Lex();
Out.SubsectionsViaSymbols();
Out.EmitAssemblerFlag(MCStreamer::SubsectionsViaSymbols);
return false;
}