diff options
author | Chris Lattner <sabre@nondot.org> | 2010-01-19 06:41:24 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-01-19 06:41:24 +0000 |
commit | 3024e9813ecb7a0816ca0f5c0d27cdac84fea4fb (patch) | |
tree | 1dc8008ca11bab66d680327c1bb04cc04a3e3e78 /llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp | |
parent | a6368219ac6f65ff478465373b7ef151ba11b97c (diff) | |
download | bcm5719-llvm-3024e9813ecb7a0816ca0f5c0d27cdac84fea4fb.tar.gz bcm5719-llvm-3024e9813ecb7a0816ca0f5c0d27cdac84fea4fb.zip |
mcstreamer'ize the rest of EmitGlobalVariable that is used on
darwin. The next big piece to get global variables streamerized
is EmitGlobalConstant.
llvm-svn: 93870
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp')
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp index fbbcc27a580..9da8a29ffed 100644 --- a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp @@ -226,18 +226,20 @@ void AsmPrinter::EmitGlobalVariable(const GlobalVariable *GV) { case GlobalValue::WeakAnyLinkage: case GlobalValue::WeakODRLinkage: case GlobalValue::LinkerPrivateLinkage: - if (const char *WeakDef = MAI->getWeakDefDirective()) { + if (MAI->getWeakDefDirective() != 0) { // .globl _foo OutStreamer.EmitSymbolAttribute(GVSym, MCStreamer::Global); // .weak_definition _foo - O << WeakDef << *GVSym << '\n'; + OutStreamer.EmitSymbolAttribute(GVSym, MCStreamer::WeakDefinition); } else if (const char *LinkOnce = MAI->getLinkOnceDirective()) { // .globl _foo OutStreamer.EmitSymbolAttribute(GVSym, MCStreamer::Global); // .linkonce same_size O << LinkOnce; - } else - O << "\t.weak\t" << *GVSym << '\n'; + } else { + // .weak _foo + OutStreamer.EmitSymbolAttribute(GVSym, MCStreamer::Weak); + } break; case GlobalValue::DLLExportLinkage: case GlobalValue::AppendingLinkage: @@ -256,13 +258,13 @@ void AsmPrinter::EmitGlobalVariable(const GlobalVariable *GV) { } EmitAlignment(AlignLog, GV); - O << *GVSym << ":"; if (VerboseAsm) { O.PadToColumn(MAI->getCommentColumn()); O << MAI->getCommentString() << ' '; WriteAsOperand(O, GV, /*PrintType=*/false, GV->getParent()); + O << '\n'; } - O << '\n'; + OutStreamer.EmitLabel(GVSym); EmitGlobalConstant(GV->getInitializer()); |