diff options
author | Eric Christopher <echristo@apple.com> | 2010-05-14 01:50:28 +0000 |
---|---|---|
committer | Eric Christopher <echristo@apple.com> | 2010-05-14 01:50:28 +0000 |
commit | 482eba054ab3543ee0e1f453d3d6441092f4b76d (patch) | |
tree | ccb3182f3e97fae2f37f3b70207f1bcbd917cae1 /lib/MC/MCAsmStreamer.cpp | |
parent | c260a3e59af7d1b283ecd513523ccbd6de574f30 (diff) |
Add AsmParser support for darwin tbss directive.
Nothing uses this yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103757 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/MC/MCAsmStreamer.cpp')
-rw-r--r-- | lib/MC/MCAsmStreamer.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/MC/MCAsmStreamer.cpp b/lib/MC/MCAsmStreamer.cpp index 6acc90af8a..62735ad3f3 100644 --- a/lib/MC/MCAsmStreamer.cpp +++ b/lib/MC/MCAsmStreamer.cpp @@ -126,6 +126,9 @@ public: virtual void EmitZerofill(const MCSection *Section, MCSymbol *Symbol = 0, unsigned Size = 0, unsigned ByteAlignment = 0); + virtual void EmitTBSSSymbol (MCSymbol *Symbol, uint64_t Size, + unsigned ByteAlignment = 0); + virtual void EmitBytes(StringRef Data, unsigned AddrSpace); virtual void EmitValue(const MCExpr *Value, unsigned Size,unsigned AddrSpace); @@ -360,6 +363,21 @@ void MCAsmStreamer::EmitZerofill(const MCSection *Section, MCSymbol *Symbol, EmitEOL(); } +// .tbss sym$tlv$init, size, align +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; + + // Output align if we have it. + if (ByteAlignment != 0) OS << ", " << Log2_32(ByteAlignment); + + EmitEOL(); +} + static inline char toOctal(int X) { return (X&7)+'0'; } static void PrintQuotedString(StringRef Data, raw_ostream &OS) { |