Changes in directory llvm/lib/Target/ARM:
ARMAsmPrinter.cpp updated: 1.31 -> 1.32 ARMTargetAsmInfo.cpp updated: 1.1 -> 1.2 --- Log message: print weak references --- Diffs of the changes: (+14 -1) ARMAsmPrinter.cpp | 14 +++++++++++++- ARMTargetAsmInfo.cpp | 1 + 2 files changed, 14 insertions(+), 1 deletion(-) Index: llvm/lib/Target/ARM/ARMAsmPrinter.cpp diff -u llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.31 llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.32 --- llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.31 Wed Dec 6 00:13:25 2006 +++ llvm/lib/Target/ARM/ARMAsmPrinter.cpp Wed Dec 6 07:35:10 2006 @@ -63,6 +63,8 @@ : AsmPrinter(O, TM, T) { } + std::set<std::string> ExtWeakSymbols; + /// We name each basic block in a Function with a unique number, so /// that we can consistently refer to them later. This is cleared /// at the beginning of each call to runOnMachineFunction(). @@ -127,7 +129,7 @@ break; case Function::WeakLinkage: case Function::LinkOnceLinkage: - O << "\t.weak\t" << CurrentFnName << "\n"; + O << TAI->getWeakRefDirective() << CurrentFnName << "\n"; break; } EmitAlignment(2, F); @@ -244,6 +246,9 @@ GlobalValue *GV = MO.getGlobal(); std::string Name = Mang->getValueName(GV); O << Name; + if (GV->hasExternalWeakLinkage()) { + ExtWeakSymbols.insert(Name); + } } break; case MachineOperand::MO_ExternalSymbol: @@ -325,6 +330,13 @@ } } + if (ExtWeakSymbols.begin() != ExtWeakSymbols.end()) + SwitchToDataSection(""); + for (std::set<std::string>::iterator i = ExtWeakSymbols.begin(), + e = ExtWeakSymbols.end(); i != e; ++i) { + O << TAI->getWeakRefDirective() << *i << "\n"; + } + AsmPrinter::doFinalization(M); return false; // success } Index: llvm/lib/Target/ARM/ARMTargetAsmInfo.cpp diff -u llvm/lib/Target/ARM/ARMTargetAsmInfo.cpp:1.1 llvm/lib/Target/ARM/ARMTargetAsmInfo.cpp:1.2 --- llvm/lib/Target/ARM/ARMTargetAsmInfo.cpp:1.1 Thu Sep 7 17:05:01 2006 +++ llvm/lib/Target/ARM/ARMTargetAsmInfo.cpp Wed Dec 6 07:35:10 2006 @@ -23,4 +23,5 @@ CommentString = "@"; ConstantPoolSection = "\t.text\n"; AlignmentIsInBytes = false; + WeakRefDirective = "\t.weak\t"; } _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits