forked from OSchip/llvm-project
				
			
							parent
							
								
									91a6705839
								
							
						
					
					
						commit
						8e7b93938d
					
				| 
						 | 
				
			
			@ -146,8 +146,7 @@ namespace llvm {
 | 
			
		|||
    /// ReadOnlySection - This is the directive that is emitted to switch to a
 | 
			
		||||
    /// read-only section for constant data (e.g. data declared const,
 | 
			
		||||
    /// jump tables).
 | 
			
		||||
    const char *ReadOnlySection;          // Defaults to NULL
 | 
			
		||||
    const Section *ReadOnlySection_;
 | 
			
		||||
    const Section *ReadOnlySection;       // Defaults to NULL
 | 
			
		||||
 | 
			
		||||
    /// SmallDataSection - This is the directive that is emitted to switch to a
 | 
			
		||||
    /// small data section.
 | 
			
		||||
| 
						 | 
				
			
			@ -597,12 +596,9 @@ namespace llvm {
 | 
			
		|||
    const Section *getBSSSection_() const {
 | 
			
		||||
      return BSSSection_;
 | 
			
		||||
    }
 | 
			
		||||
    const char *getReadOnlySection() const {
 | 
			
		||||
    const Section *getReadOnlySection() const {
 | 
			
		||||
      return ReadOnlySection;
 | 
			
		||||
    }
 | 
			
		||||
    const Section *getReadOnlySection_() const {
 | 
			
		||||
      return ReadOnlySection_;
 | 
			
		||||
    }
 | 
			
		||||
    const Section *getSmallDataSection() const {
 | 
			
		||||
      return SmallDataSection;
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -72,7 +72,6 @@ ARMDarwinTargetAsmInfo::ARMDarwinTargetAsmInfo(const ARMTargetMachine &TM):
 | 
			
		|||
  ProtectedDirective = NULL;
 | 
			
		||||
  JumpTableDataSection = ".const";
 | 
			
		||||
  CStringSection = "\t.cstring";
 | 
			
		||||
  ReadOnlySection = "\t.const\n";
 | 
			
		||||
  HasDotTypeDotSizeDirective = false;
 | 
			
		||||
  NeedsIndirectEncoding = true;
 | 
			
		||||
  if (TM.getRelocationModel() == Reloc::Static) {
 | 
			
		||||
| 
						 | 
				
			
			@ -112,7 +111,6 @@ ARMELFTargetAsmInfo::ARMELFTargetAsmInfo(const ARMTargetMachine &TM):
 | 
			
		|||
  HasLEB128 = true;
 | 
			
		||||
  AbsoluteDebugSectionOffsets = true;
 | 
			
		||||
  CStringSection = ".rodata.str";
 | 
			
		||||
  ReadOnlySection = "\t.section\t.rodata\n";
 | 
			
		||||
  PrivateGlobalPrefix = ".L";
 | 
			
		||||
  WeakRefDirective = "\t.weak\t";
 | 
			
		||||
  SetDirective = "\t.set\t";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -38,12 +38,12 @@ DarwinTargetAsmInfo::DarwinTargetAsmInfo(const TargetMachine &TM) {
 | 
			
		|||
  // there, if needed.
 | 
			
		||||
  SixteenByteConstantSection = 0;
 | 
			
		||||
 | 
			
		||||
  ReadOnlySection_ = getUnnamedSection("\t.const\n", SectionFlags::None);
 | 
			
		||||
  ReadOnlySection = getUnnamedSection("\t.const\n", SectionFlags::None);
 | 
			
		||||
 | 
			
		||||
  TextCoalSection =
 | 
			
		||||
    getNamedSection("\t__TEXT,__textcoal_nt,coalesced,pure_instructions",
 | 
			
		||||
                    SectionFlags::Code);
 | 
			
		||||
  ConstDataCoalSection = getBamedSection("\t__DATA,__const_coal,coalesced",
 | 
			
		||||
  ConstDataCoalSection = getNamedSection("\t__DATA,__const_coal,coalesced",
 | 
			
		||||
                                         SectionFlags::None);
 | 
			
		||||
  ConstDataSection = getUnnamedSection(".const_data", SectionFlags::None);
 | 
			
		||||
  DataCoalSection = getNamedSection("\t__DATA,__datacoal_nt,coalesced",
 | 
			
		||||
| 
						 | 
				
			
			@ -92,7 +92,7 @@ DarwinTargetAsmInfo::SelectSectionForGlobal(const GlobalValue *GV) const {
 | 
			
		|||
      return (isWeak ? DataCoalSection : DataSection);
 | 
			
		||||
   case SectionKind::ROData:
 | 
			
		||||
    return (isWeak ? ConstDataCoalSection :
 | 
			
		||||
            (isNonStatic ? ConstDataSection : getReadOnlySection_()));
 | 
			
		||||
            (isNonStatic ? ConstDataSection : getReadOnlySection()));
 | 
			
		||||
   case SectionKind::RODataMergeStr:
 | 
			
		||||
    return (isWeak ?
 | 
			
		||||
            ConstDataCoalSection :
 | 
			
		||||
| 
						 | 
				
			
			@ -122,7 +122,7 @@ DarwinTargetAsmInfo::MergeableStringSection(const GlobalVariable *GV) const {
 | 
			
		|||
      return getCStringSection_();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return getReadOnlySection_();
 | 
			
		||||
  return getReadOnlySection();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const Section*
 | 
			
		||||
| 
						 | 
				
			
			@ -144,7 +144,7 @@ DarwinTargetAsmInfo::MergeableConstSection(const Type *Ty) const {
 | 
			
		|||
  else if (Size == 16 && SixteenByteConstantSection)
 | 
			
		||||
    return SixteenByteConstantSection;
 | 
			
		||||
 | 
			
		||||
  return getReadOnlySection_();
 | 
			
		||||
  return getReadOnlySection();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const Section*
 | 
			
		||||
| 
						 | 
				
			
			@ -152,7 +152,7 @@ DarwinTargetAsmInfo::SelectSectionForMachineConst(const Type *Ty) const {
 | 
			
		|||
  const Section* S = MergeableConstSection(Ty);
 | 
			
		||||
 | 
			
		||||
  // Handle weird special case, when compiling PIC stuff.
 | 
			
		||||
  if (S == getReadOnlySection_() &&
 | 
			
		||||
  if (S == getReadOnlySection() &&
 | 
			
		||||
      DTM->getRelocationModel() != Reloc::Static)
 | 
			
		||||
    return ConstDataSection;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,7 +29,7 @@ ELFTargetAsmInfo::ELFTargetAsmInfo(const TargetMachine &TM) {
 | 
			
		|||
 | 
			
		||||
  BSSSection_  = getUnnamedSection("\t.bss",
 | 
			
		||||
                                   SectionFlags::Writeable | SectionFlags::BSS);
 | 
			
		||||
  ReadOnlySection_ = getNamedSection("\t.rodata", SectionFlags::None);
 | 
			
		||||
  ReadOnlySection = getNamedSection("\t.rodata", SectionFlags::None);
 | 
			
		||||
  TLSDataSection = getNamedSection("\t.tdata",
 | 
			
		||||
                                   SectionFlags::Writeable | SectionFlags::TLS);
 | 
			
		||||
  TLSBSSSection = getNamedSection("\t.tbss",
 | 
			
		||||
| 
						 | 
				
			
			@ -70,7 +70,7 @@ ELFTargetAsmInfo::SelectSectionForGlobal(const GlobalValue *GV) const {
 | 
			
		|||
        return getBSSSection_();
 | 
			
		||||
       case SectionKind::ROData:
 | 
			
		||||
       case SectionKind::SmallROData:
 | 
			
		||||
        return getReadOnlySection_();
 | 
			
		||||
        return getReadOnlySection();
 | 
			
		||||
       case SectionKind::RODataMergeStr:
 | 
			
		||||
        return MergeableStringSection(GVar);
 | 
			
		||||
       case SectionKind::RODataMergeConst:
 | 
			
		||||
| 
						 | 
				
			
			@ -116,7 +116,7 @@ ELFTargetAsmInfo::MergeableConstSection(const Type *Ty) const {
 | 
			
		|||
                                                       Size));
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return getReadOnlySection_();
 | 
			
		||||
  return getReadOnlySection();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const Section*
 | 
			
		||||
| 
						 | 
				
			
			@ -143,7 +143,7 @@ ELFTargetAsmInfo::MergeableStringSection(const GlobalVariable *GV) const {
 | 
			
		|||
    return getNamedSection(Name.c_str(), Flags);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return getReadOnlySection_();
 | 
			
		||||
  return getReadOnlySection();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
std::string ELFTargetAsmInfo::printSectionFlags(unsigned flags) const {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -30,7 +30,6 @@ MipsTargetAsmInfo::MipsTargetAsmInfo(const MipsTargetMachine &TM):
 | 
			
		|||
  PrivateGlobalPrefix         = "$";
 | 
			
		||||
  JumpTableDataSection        = "\t.rdata";
 | 
			
		||||
  CommentString               = "#";
 | 
			
		||||
  ReadOnlySection             = "\t.rdata";
 | 
			
		||||
  ZeroDirective               = "\t.space\t";
 | 
			
		||||
  BSSSection                  = "\t.section\t.bss";
 | 
			
		||||
  CStringSection              = ".rodata.str";
 | 
			
		||||
| 
						 | 
				
			
			@ -38,7 +37,8 @@ MipsTargetAsmInfo::MipsTargetAsmInfo(const MipsTargetMachine &TM):
 | 
			
		|||
  if (!Subtarget->hasABICall()) {
 | 
			
		||||
    JumpTableDirective = "\t.word\t";
 | 
			
		||||
    SmallDataSection = getNamedSection("\t.sdata", SectionFlags::Writeable);
 | 
			
		||||
    SmallBSSSection = getNamedSection("\t.sbss", SectionFlags::Writeable | 
 | 
			
		||||
    SmallBSSSection = getNamedSection("\t.sbss",
 | 
			
		||||
                                      SectionFlags::Writeable |
 | 
			
		||||
                                      SectionFlags::BSS);
 | 
			
		||||
  } else
 | 
			
		||||
    JumpTableDirective = "\t.gpword\t";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -43,7 +43,6 @@ PPCDarwinTargetAsmInfo::PPCDarwinTargetAsmInfo(const PPCTargetMachine &TM):
 | 
			
		|||
  ConstantPoolSection = "\t.const\t";
 | 
			
		||||
  JumpTableDataSection = ".const";
 | 
			
		||||
  CStringSection = "\t.cstring";
 | 
			
		||||
  ReadOnlySection = "\t.const\n";
 | 
			
		||||
  if (TM.getRelocationModel() == Reloc::Static) {
 | 
			
		||||
    StaticCtorsSection = ".constructor";
 | 
			
		||||
    StaticDtorsSection = ".destructor";
 | 
			
		||||
| 
						 | 
				
			
			@ -137,7 +136,6 @@ PPCLinuxTargetAsmInfo::PPCLinuxTargetAsmInfo(const PPCTargetMachine &TM) :
 | 
			
		|||
  DwarfRangesSection =  "\t.section\t.debug_ranges,\"\",@progbits";
 | 
			
		||||
  DwarfMacInfoSection = "\t.section\t.debug_macinfo,\"\",@progbits";
 | 
			
		||||
 | 
			
		||||
  ReadOnlySection = "\t.section\t.rodata";
 | 
			
		||||
  PCSymbol = ".";
 | 
			
		||||
 | 
			
		||||
  // Set up DWARF directives
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -31,7 +31,6 @@ TargetAsmInfo::TargetAsmInfo() :
 | 
			
		|||
  BSSSection("\t.bss"),
 | 
			
		||||
  BSSSection_(0),
 | 
			
		||||
  ReadOnlySection(0),
 | 
			
		||||
  ReadOnlySection_(0),
 | 
			
		||||
  SmallDataSection(0),
 | 
			
		||||
  SmallBSSSection(0),
 | 
			
		||||
  SmallRODataSection(0),
 | 
			
		||||
| 
						 | 
				
			
			@ -293,8 +292,8 @@ TargetAsmInfo::SelectSectionForGlobal(const GlobalValue *GV) const {
 | 
			
		|||
      return getTextSection();
 | 
			
		||||
    else if (isBSS(Kind) && getBSSSection_())
 | 
			
		||||
      return getBSSSection_();
 | 
			
		||||
    else if (getReadOnlySection_() && SectionKind::isReadOnly(Kind))
 | 
			
		||||
      return getReadOnlySection_();
 | 
			
		||||
    else if (getReadOnlySection() && SectionKind::isReadOnly(Kind))
 | 
			
		||||
      return getReadOnlySection();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return getDataSection();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -150,8 +150,6 @@ X86DarwinTargetAsmInfo::X86DarwinTargetAsmInfo(const X86TargetMachine &TM):
 | 
			
		|||
    SixteenByteConstantSection = getUnnamedSection("\t.literal16\n",
 | 
			
		||||
                                                   SectionFlags::Mergeable);
 | 
			
		||||
  }
 | 
			
		||||
  ReadOnlySection = "\t.const\n";
 | 
			
		||||
 | 
			
		||||
  LCOMMDirective = "\t.lcomm\t";
 | 
			
		||||
  SwitchToSectionDirective = "\t.section ";
 | 
			
		||||
  StringConstantPrefix = "\1LC";
 | 
			
		||||
| 
						 | 
				
			
			@ -229,7 +227,6 @@ X86DarwinTargetAsmInfo::PreferredEHDataFormat(DwarfEncoding::Target Reason,
 | 
			
		|||
X86ELFTargetAsmInfo::X86ELFTargetAsmInfo(const X86TargetMachine &TM):
 | 
			
		||||
  X86TargetAsmInfo(TM), ELFTargetAsmInfo(TM) {
 | 
			
		||||
 | 
			
		||||
  ReadOnlySection = ".rodata";
 | 
			
		||||
  CStringSection = ".rodata.str";
 | 
			
		||||
  PrivateGlobalPrefix = ".L";
 | 
			
		||||
  WeakRefDirective = "\t.weak\t";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue