From e28a2e8b70e926324575ddec0a1565c6dba7d404 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Tue, 11 Aug 2009 22:31:42 +0000 Subject: [PATCH] factorize more darwin TAI stuff. Note that this gives darwin/arm support for .no_dead_strip git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78734 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/ARM/ARMTargetAsmInfo.cpp | 5 ----- lib/Target/DarwinTargetAsmInfo.cpp | 7 +++++++ lib/Target/PowerPC/PPCTargetAsmInfo.cpp | 6 ------ lib/Target/X86/X86TargetAsmInfo.cpp | 6 ------ 4 files changed, 7 insertions(+), 17 deletions(-) diff --git a/lib/Target/ARM/ARMTargetAsmInfo.cpp b/lib/Target/ARM/ARMTargetAsmInfo.cpp index c9c81dcd2ab..85e9d6428eb 100644 --- a/lib/Target/ARM/ARMTargetAsmInfo.cpp +++ b/lib/Target/ARM/ARMTargetAsmInfo.cpp @@ -42,21 +42,16 @@ static const char *const arm_asm_table[] = { ARMDarwinTargetAsmInfo::ARMDarwinTargetAsmInfo() { AsmTransCBE = arm_asm_table; - AlignmentIsInBytes = false; Data64bitsDirective = 0; CommentString = "@"; COMMDirectiveTakesAlignment = false; InlineAsmStart = "@ InlineAsm Start"; InlineAsmEnd = "@ InlineAsm End"; - - HasDotTypeDotSizeDirective = false; SupportsDebugInformation = true; // Exceptions handling ExceptionsType = ExceptionHandling::SjLj; - GlobalEHDirective = "\t.globl\t"; - SupportsWeakOmittedEHFrame = false; AbsoluteEHSectionOffsets = false; } diff --git a/lib/Target/DarwinTargetAsmInfo.cpp b/lib/Target/DarwinTargetAsmInfo.cpp index 72216246335..08ad76d40fb 100644 --- a/lib/Target/DarwinTargetAsmInfo.cpp +++ b/lib/Target/DarwinTargetAsmInfo.cpp @@ -26,6 +26,8 @@ DarwinTargetAsmInfo::DarwinTargetAsmInfo() { AllowQuotesInName = true; HasSingleParameterDotFile = false; + AlignmentIsInBytes = false; + // In non-PIC modes, emit a special label before jump tables so that the // linker can perform more accurate dead code stripping. We do not check the // relocation model here since it can be overridden later. @@ -40,11 +42,16 @@ DarwinTargetAsmInfo::DarwinTargetAsmInfo() { ZeroFillDirective = "\t.zerofill\t"; // Uses .zerofill SetDirective = "\t.set"; ProtectedDirective = "\t.globl\t"; + HasDotTypeDotSizeDirective = false; + UsedDirective = "\t.no_dead_strip\t"; // _foo.eh symbols are currently always exported so that the linker knows // about them. This is not necessary on 10.6 and later, but it // doesn't hurt anything. // FIXME: I need to get this from Triple. Is_EHSymbolPrivate = false; + GlobalEHDirective = "\t.globl\t"; + SupportsWeakOmittedEHFrame = false; + } diff --git a/lib/Target/PowerPC/PPCTargetAsmInfo.cpp b/lib/Target/PowerPC/PPCTargetAsmInfo.cpp index 4f69f7ed3f4..58926e3b87d 100644 --- a/lib/Target/PowerPC/PPCTargetAsmInfo.cpp +++ b/lib/Target/PowerPC/PPCTargetAsmInfo.cpp @@ -22,19 +22,13 @@ using namespace llvm::dwarf; PPCDarwinTargetAsmInfo::PPCDarwinTargetAsmInfo(const PPCTargetMachine &TM) { PCSymbol = "."; CommentString = ";"; - UsedDirective = "\t.no_dead_strip\t"; ExceptionsType = ExceptionHandling::Dwarf; - GlobalEHDirective = "\t.globl\t"; - SupportsWeakOmittedEHFrame = false; - const PPCSubtarget *Subtarget = &TM.getSubtarget(); bool isPPC64 = Subtarget->isPPC64(); if (!isPPC64) Data64bitsDirective = 0; // we can't emit a 64-bit unit - AlignmentIsInBytes = false; - LCOMMDirective = "\t.lcomm\t"; InlineAsmStart = "# InlineAsm Start"; InlineAsmEnd = "# InlineAsm End"; AssemblerDialect = Subtarget->getAsmFlavor(); diff --git a/lib/Target/X86/X86TargetAsmInfo.cpp b/lib/Target/X86/X86TargetAsmInfo.cpp index 53533ace965..a07b2cc2b5b 100644 --- a/lib/Target/X86/X86TargetAsmInfo.cpp +++ b/lib/Target/X86/X86TargetAsmInfo.cpp @@ -45,7 +45,6 @@ X86DarwinTargetAsmInfo::X86DarwinTargetAsmInfo(const X86TargetMachine &TM) { const X86Subtarget *Subtarget = &TM.getSubtarget(); bool is64Bit = Subtarget->is64Bit(); - AlignmentIsInBytes = false; TextAlignFillValue = 0x90; if (!is64Bit) @@ -53,7 +52,6 @@ X86DarwinTargetAsmInfo::X86DarwinTargetAsmInfo(const X86TargetMachine &TM) { // Leopard and above support aligned common symbols. COMMDirectiveTakesAlignment = (Subtarget->getDarwinVers() >= 9); - HasDotTypeDotSizeDirective = false; if (is64Bit) { PersonalityPrefix = ""; @@ -67,16 +65,12 @@ X86DarwinTargetAsmInfo::X86DarwinTargetAsmInfo(const X86TargetMachine &TM) { InlineAsmEnd = "## InlineAsm End"; CommentString = "##"; PCSymbol = "."; - UsedDirective = "\t.no_dead_strip\t"; - ProtectedDirective = "\t.globl\t"; SupportsDebugInformation = true; DwarfUsesInlineInfoSection = true; // Exceptions handling ExceptionsType = ExceptionHandling::Dwarf; - GlobalEHDirective = "\t.globl\t"; - SupportsWeakOmittedEHFrame = false; AbsoluteEHSectionOffsets = false; }