summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2010-03-09 00:43:34 +0000
committerBill Wendling <isanbard@gmail.com>2010-03-09 00:43:34 +0000
commitffba5fafb60bffa1b54ab1c5e82bc7dfbdcce90b (patch)
tree2cc5f2bdb7ceb6ffae5d85a1d8170217fbebef17 /llvm/lib
parentf1eae222c90dde8049bb7854516551ad6c755385 (diff)
downloadbcm5719-llvm-ffba5fafb60bffa1b54ab1c5e82bc7dfbdcce90b.tar.gz
bcm5719-llvm-ffba5fafb60bffa1b54ab1c5e82bc7dfbdcce90b.zip
Print blank line and clear stubs vector.
llvm-svn: 98019
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp b/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
index 0d52a0c703a..a18008e97c4 100644
--- a/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
+++ b/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
@@ -1132,8 +1132,16 @@ void ARMAsmPrinter::EmitEndOfAsmFile(Module &M) {
// L_foo$stub:
OutStreamer.EmitLabel(Stubs[i].first);
// .indirect_symbol _foo
- OutStreamer.EmitSymbolAttribute(Stubs[i].second, MCSA_IndirectSymbol);
- OutStreamer.EmitIntValue(0, 4/*size*/, 0/*addrspace*/);
+ MCSymbol *MCSym = Stubs[i].second;
+ OutStreamer.EmitSymbolAttribute(MCSym, MCSA_IndirectSymbol);
+
+ if (MCSym->isUndefined())
+ // External to current translation unit.
+ OutStreamer.EmitIntValue(0, 4/*size*/, 0/*addrspace*/);
+ else
+ // Internal to current translation unit.
+ OutStreamer.EmitValue(MCSymbolRefExpr::Create(MCSym, OutContext),
+ 4/*size*/, 0/*addrspace*/);
}
Stubs.clear();
@@ -1152,6 +1160,9 @@ void ARMAsmPrinter::EmitEndOfAsmFile(Module &M) {
OutContext),
4/*size*/, 0/*addrspace*/);
}
+
+ Stubs.clear();
+ OutStreamer.AddBlankLine();
}
// Funny Darwin hack: This flag tells the linker that no global symbols
OpenPOWER on IntegriCloud