mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-17 03:07:06 +00:00
emit the cygwin stub thing through mcstreamer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100295 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
58bc4dd4a9
commit
fd60b8b484
@ -164,7 +164,7 @@ void AsmPrinter::EmitLinkage(unsigned Linkage, MCSymbol *GVSym) const {
|
||||
// .linkonce discard
|
||||
// FIXME: It would be nice to use .linkonce samesize for non-common
|
||||
// globals.
|
||||
OutStreamer.EmitRawText(LinkOnce);
|
||||
OutStreamer.EmitRawText(StringRef(LinkOnce));
|
||||
} else {
|
||||
// .weak _foo
|
||||
OutStreamer.EmitSymbolAttribute(GVSym, MCSA_Weak);
|
||||
@ -322,9 +322,13 @@ void AsmPrinter::EmitFunctionHeader() {
|
||||
|
||||
// Add some workaround for linkonce linkage on Cygwin\MinGW.
|
||||
if (MAI->getLinkOnceDirective() != 0 &&
|
||||
(F->hasLinkOnceLinkage() || F->hasWeakLinkage()))
|
||||
(F->hasLinkOnceLinkage() || F->hasWeakLinkage())) {
|
||||
// FIXME: What is this?
|
||||
O << "Lllvm$workaround$fake$stub$" << *CurrentFnSym << ":\n";
|
||||
MCSymbol *FakeStub =
|
||||
OutContext.GetOrCreateSymbol(Twine("Lllvm$workaround$fake$stub$")+
|
||||
CurrentFnSym->getName());
|
||||
OutStreamer.EmitLabel(FakeStub);
|
||||
}
|
||||
|
||||
// Emit pre-function debug and/or EH information.
|
||||
if (MAI->doesSupportDebugInformation() || MAI->doesSupportExceptionHandling())
|
||||
@ -454,8 +458,11 @@ void AsmPrinter::EmitFunctionBody() {
|
||||
// Emit target-specific gunk after the function body.
|
||||
EmitFunctionBodyEnd();
|
||||
|
||||
if (MAI->hasDotTypeDotSizeDirective())
|
||||
// If the target wants a .size directive for the size of the function, emit
|
||||
// it.
|
||||
if (MAI->hasDotTypeDotSizeDirective()) {
|
||||
O << "\t.size\t" << *CurrentFnSym << ", .-" << *CurrentFnSym << '\n';
|
||||
}
|
||||
|
||||
// Emit post-function debug information.
|
||||
if (MAI->doesSupportDebugInformation() || MAI->doesSupportExceptionHandling())
|
||||
|
Loading…
Reference in New Issue
Block a user