aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Christopher <echristo@apple.com>2010-05-17 02:13:02 +0000
committerEric Christopher <echristo@apple.com>2010-05-17 02:13:02 +0000
commitd04d98d24fe5c82c7e69b711cd989ef96980fb8e (patch)
treeab5d82a46568323dc11255602439195c3fc3ea47
parente6aba837974f7d2539efad9a09fe06b4d1566e5d (diff)
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
-rw-r--r--lib/MC/MCAsmStreamer.cpp9
-rw-r--r--lib/MC/MCParser/AsmParser.cpp8
-rw-r--r--test/MC/AsmParser/directive_tbss.s2
3 files changed, 7 insertions, 12 deletions
diff --git a/lib/MC/MCAsmStreamer.cpp b/lib/MC/MCAsmStreamer.cpp
index 62735ad3f3..4f7699ca99 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 18977de8ad..e5af357de3 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 01ba17be26..38d3a3e1fc 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