From: Eric Christopher Date: Mon, 17 May 2010 02:13:02 +0000 (+0000) Subject: Assume that we'll handle mangling the symbols earlier and just put the X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=d04d98d24fe5c82c7e69b711cd989ef96980fb8e;p=oota-llvm.git Assume that we'll handle mangling the symbols earlier and just put the symbol to the file as we have it. Simplifies out tbss handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103928 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/MC/MCAsmStreamer.cpp b/lib/MC/MCAsmStreamer.cpp index 62735ad3f3a..4f7699ca99d 100644 --- a/lib/MC/MCAsmStreamer.cpp +++ b/lib/MC/MCAsmStreamer.cpp @@ -363,14 +363,13 @@ void MCAsmStreamer::EmitZerofill(const MCSection *Section, MCSymbol *Symbol, EmitEOL(); } -// .tbss sym$tlv$init, size, align +// .tbss sym, size, align +// This depends that the symbol has already been mangled from the original, +// e.g. _a. void MCAsmStreamer::EmitTBSSSymbol(MCSymbol *Symbol, uint64_t Size, unsigned ByteAlignment) { assert(Symbol != NULL && "Symbol shouldn't be NULL!"); - OS << ".tbss "; - - // This is a mach-o specific directive and the name requires some mangling. - OS << *Symbol << "$tlv$init, " << Size; + OS << ".tbss " << *Symbol << ", " << Size; // Output align if we have it. if (ByteAlignment != 0) OS << ", " << Log2_32(ByteAlignment); diff --git a/lib/MC/MCParser/AsmParser.cpp b/lib/MC/MCParser/AsmParser.cpp index 18977de8adb..e5af357de34 100644 --- a/lib/MC/MCParser/AsmParser.cpp +++ b/lib/MC/MCParser/AsmParser.cpp @@ -1436,13 +1436,9 @@ bool AsmParser::ParseDirectiveDarwinTBSS() { StringRef Name; if (ParseIdentifier(Name)) return TokError("expected identifier in directive"); - - // Demangle the name output. The trailing characters are guaranteed to be - // $tlv$init so just strip that off. - StringRef DemName = Name.substr(0, Name.size() - strlen("$tlv$init")); - + // Handle the identifier as the key symbol. - MCSymbol *Sym = CreateSymbol(DemName); + MCSymbol *Sym = CreateSymbol(Name); if (Lexer.isNot(AsmToken::Comma)) return TokError("unexpected token in directive"); diff --git a/test/MC/AsmParser/directive_tbss.s b/test/MC/AsmParser/directive_tbss.s index 01ba17be263..38d3a3e1fcf 100644 --- a/test/MC/AsmParser/directive_tbss.s +++ b/test/MC/AsmParser/directive_tbss.s @@ -1,4 +1,4 @@ -# RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s +# RUN: llvm-mc -triple i386-unknown-darwin %s | FileCheck %s # CHECK: .tbss _a$tlv$init, 4 # CHECK: .tbss _b$tlv$init, 4, 3