[llvm-commits] CVS: llvm/lib/Target/ARM/ARMAsmPrinter.cpp ARMTargetAsmInfo.cpp
Rafael Espindola
rafael.espindola at gmail.com
Wed Dec 6 05:35:28 PST 2006
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";
}
More information about the llvm-commits
mailing list