summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-01-19 06:41:24 +0000
committerChris Lattner <sabre@nondot.org>2010-01-19 06:41:24 +0000
commit3024e9813ecb7a0816ca0f5c0d27cdac84fea4fb (patch)
tree1dc8008ca11bab66d680327c1bb04cc04a3e3e78 /llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
parenta6368219ac6f65ff478465373b7ef151ba11b97c (diff)
downloadbcm5719-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.cpp14
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());
OpenPOWER on IntegriCloud