How about ARM? Evan
On Jan 10, 2008, at 4:54 PM, Dale Johannesen wrote: > Author: johannes > Date: Thu Jan 10 18:54:37 2008 > New Revision: 45848 > > URL: http://llvm.org/viewvc/llvm-project?rev=45848&view=rev > Log: > Weak things initialized to 0 don't go in bss on Darwin. > Cosmetic changes to spacing to match gcc (some dejagnu > tests actually care). > > > Modified: > llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp > llvm/trunk/lib/Target/PowerPC/PPCTargetAsmInfo.cpp > llvm/trunk/lib/Target/X86/X86AsmPrinter.cpp > llvm/trunk/lib/Target/X86/X86TargetAsmInfo.cpp > > Modified: llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp > URL: > http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp?rev=45848&r1=45847&r2=45848&view=diff > > = > = > = > = > = > = > = > = > ====================================================================== > --- llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp (original) > +++ llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp Thu Jan 10 > 18:54:37 2008 > @@ -767,7 +767,7 @@ > case Function::InternalLinkage: return TAI->getTextSection(); > case Function::WeakLinkage: > case Function::LinkOnceLinkage: > - return ".section > __TEXT,__textcoal_nt,coalesced,pure_instructions"; > + return "\t.section > __TEXT,__textcoal_nt,coalesced,pure_instructions"; > } > } > > @@ -869,13 +869,13 @@ > > // Prime text sections so they are adjacent. This reduces the > likelihood a > // large data or debug section causes a branch to exceed 16M limit. > - SwitchToTextSection(".section __TEXT,__textcoal_nt,coalesced," > + SwitchToTextSection("\t.section __TEXT,__textcoal_nt,coalesced," > "pure_instructions"); > if (TM.getRelocationModel() == Reloc::PIC_) { > - SwitchToTextSection(".section > __TEXT,__picsymbolstub1,symbol_stubs," > + SwitchToTextSection("\t.section > __TEXT,__picsymbolstub1,symbol_stubs," > "pure_instructions,32"); > } else if (TM.getRelocationModel() == Reloc::DynamicNoPIC) { > - SwitchToTextSection(".section > __TEXT,__symbol_stub1,symbol_stubs," > + SwitchToTextSection("\t.section > __TEXT,__symbol_stub1,symbol_stubs," > "pure_instructions,16"); > } > SwitchToTextSection(TAI->getTextSection()); > @@ -917,8 +917,7 @@ > > if (C->isNullValue() && /* FIXME: Verify correct */ > !I->hasSection() && > - (I->hasInternalLinkage() || I->hasWeakLinkage() || > - I->hasLinkOnceLinkage() || I->hasExternalLinkage())) { > + (I->hasInternalLinkage() || I->hasExternalLinkage())) { > if (Size == 0) Size = 1; // .comm Foo, 0 is undefined, avoid > it. > if (I->hasExternalLinkage()) { > O << "\t.globl " << name << '\n'; > @@ -941,7 +940,7 @@ > case GlobalValue::WeakLinkage: > O << "\t.globl " << name << '\n' > << "\t.weak_definition " << name << '\n'; > - SwitchToDataSection(".section > __DATA,__datacoal_nt,coalesced", I); > + SwitchToDataSection("\t.section > __DATA,__datacoal_nt,coalesced", I); > break; > case GlobalValue::AppendingLinkage: > // FIXME: appending linkage variables should go into a > section of > @@ -1008,7 +1007,7 @@ > if (TM.getRelocationModel() == Reloc::PIC_) { > for (std::set<std::string>::iterator i = FnStubs.begin(), e = > FnStubs.end(); > i != e; ++i) { > - SwitchToTextSection(".section > __TEXT,__picsymbolstub1,symbol_stubs," > + SwitchToTextSection("\t.section > __TEXT,__picsymbolstub1,symbol_stubs," > "pure_instructions,32"); > EmitAlignment(4); > O << "L" << *i << "$stub:\n"; > @@ -1036,7 +1035,7 @@ > } else { > for (std::set<std::string>::iterator i = FnStubs.begin(), e = > FnStubs.end(); > i != e; ++i) { > - SwitchToTextSection(".section > __TEXT,__symbol_stub1,symbol_stubs," > + SwitchToTextSection("\t.section > __TEXT,__symbol_stub1,symbol_stubs," > "pure_instructions,16"); > EmitAlignment(4); > O << "L" << *i << "$stub:\n"; > > Modified: llvm/trunk/lib/Target/PowerPC/PPCTargetAsmInfo.cpp > URL: > http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCTargetAsmInfo.cpp?rev=45848&r1=45847&r2=45848&view=diff > > = > = > = > = > = > = > = > = > ====================================================================== > --- llvm/trunk/lib/Target/PowerPC/PPCTargetAsmInfo.cpp (original) > +++ llvm/trunk/lib/Target/PowerPC/PPCTargetAsmInfo.cpp Thu Jan 10 > 18:54:37 2008 > @@ -53,7 +53,7 @@ > UsedDirective = "\t.no_dead_strip\t"; > WeakDefDirective = "\t.weak_definition "; > WeakRefDirective = "\t.weak_reference "; > - HiddenDirective = "\t.private_extern\t"; > + HiddenDirective = "\t.private_extern "; > SupportsExceptionHandling = true; > NeedsIndirectEncoding = true; > NeedsSet = true; > > Modified: llvm/trunk/lib/Target/X86/X86AsmPrinter.cpp > URL: > http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86AsmPrinter.cpp?rev=45848&r1=45847&r2=45848&view=diff > > = > = > = > = > = > = > = > = > ====================================================================== > --- llvm/trunk/lib/Target/X86/X86AsmPrinter.cpp (original) > +++ llvm/trunk/lib/Target/X86/X86AsmPrinter.cpp Thu Jan 10 18:54:37 > 2008 > @@ -173,7 +173,7 @@ > if (C->isNullValue() && !I->hasSection()) { > if (I->hasExternalLinkage()) { > if (const char *Directive = TAI->getZeroFillDirective()) { > - O << "\t.globl\t" << name << "\n"; > + O << "\t.globl " << name << "\n"; > O << Directive << "__DATA__, __common, " << name << ", " > << Size << ", " << Align << "\n"; > continue; > @@ -181,8 +181,9 @@ > } > > if (!I->isThreadLocal() && > - (I->hasInternalLinkage() || I->hasWeakLinkage() || > - I->hasLinkOnceLinkage())) { > + (I->hasInternalLinkage() || > + (!Subtarget->isTargetDarwin() && > + (I->hasWeakLinkage() || I->hasLinkOnceLinkage())))) { > if (Size == 0) Size = 1; // .comm Foo, 0 is undefined, > avoid it. > if (!NoZerosInBSS && TAI->getBSSSection()) > SwitchToDataSection(TAI->getBSSSection(), I); > @@ -218,9 +219,9 @@ > case GlobalValue::LinkOnceLinkage: > case GlobalValue::WeakLinkage: > if (Subtarget->isTargetDarwin()) { > - O << "\t.globl\t" << name << "\n" > + O << "\t.globl " << name << "\n" > << TAI->getWeakDefDirective() << name << "\n"; > - SwitchToDataSection(".section > __DATA,__const_coal,coalesced", I); > + SwitchToDataSection("\t.section > __DATA,__datacoal_nt,coalesced", I); > } else if (Subtarget->isTargetCygMing()) { > std::string SectionName(".section\t.data$linkonce." + > name + > @@ -244,7 +245,7 @@ > // their name or something. For now, just emit them as > external. > case GlobalValue::ExternalLinkage: > // If external or appending, declare as a global symbol > - O << "\t.globl\t" << name << "\n"; > + O << "\t.globl " << name << "\n"; > // FALL THROUGH > case GlobalValue::InternalLinkage: { > if (I->isConstant()) { > @@ -348,7 +349,7 @@ > unsigned j = 1; > for (std::set<std::string>::iterator i = FnStubs.begin(), e = > FnStubs.end(); > i != e; ++i, ++j) { > - SwitchToDataSection(".section > __IMPORT,__jump_table,symbol_stubs," > + SwitchToDataSection("\t.section > __IMPORT,__jump_table,symbol_stubs," > "self_modifying_code+pure_instructions,5", > 0); > O << "L" << *i << "$stub:\n"; > O << "\t.indirect_symbol " << *i << "\n"; > @@ -369,7 +370,7 @@ > // Output stubs for external and common global variables. > if (!GVStubs.empty()) > SwitchToDataSection( > - ".section > __IMPORT,__pointers,non_lazy_symbol_pointers"); > + "\t.section > __IMPORT,__pointers,non_lazy_symbol_pointers"); > for (std::set<std::string>::iterator i = GVStubs.begin(), e = > GVStubs.end(); > i != e; ++i) { > O << "L" << *i << "$non_lazy_ptr:\n"; > > Modified: llvm/trunk/lib/Target/X86/X86TargetAsmInfo.cpp > URL: > http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86TargetAsmInfo.cpp?rev=45848&r1=45847&r2=45848&view=diff > > = > = > = > = > = > = > = > = > ====================================================================== > --- llvm/trunk/lib/Target/X86/X86TargetAsmInfo.cpp (original) > +++ llvm/trunk/lib/Target/X86/X86TargetAsmInfo.cpp Thu Jan 10 > 18:54:37 2008 > @@ -78,7 +78,7 @@ > UsedDirective = "\t.no_dead_strip\t"; > WeakDefDirective = "\t.weak_definition "; > WeakRefDirective = "\t.weak_reference "; > - HiddenDirective = "\t.private_extern\t"; > + HiddenDirective = "\t.private_extern "; > > // In non-PIC modes, emit a special label before jump tables so > that the > // linker can perform more accurate dead code stripping. > > > _______________________________________________ > llvm-commits mailing list > llvm-commits@cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits