diff --git a/include/llvm/Target/TargetAsmInfo.h b/include/llvm/Target/TargetAsmInfo.h index 6e019fd73b7..99ae1832f8c 100644 --- a/include/llvm/Target/TargetAsmInfo.h +++ b/include/llvm/Target/TargetAsmInfo.h @@ -131,12 +131,11 @@ namespace llvm { /// TextSection - Section directive for standard text. /// - const Section *TextSection; // Defaults to ".text". + const Section *TextSection; // Defaults to ".text". /// DataSection - Section directive for standard data. /// - const char *DataSection; // Defaults to ".data". - const Section *DataSection_; + const Section *DataSection; // Defaults to ".data". /// BSSSection - Section directive for uninitialized data. Null if this /// target doesn't support a BSS section. @@ -601,12 +600,9 @@ namespace llvm { const Section *getTextSection() const { return TextSection; } - const char *getDataSection() const { + const Section *getDataSection() const { return DataSection; } - const Section *getDataSection_() const { - return DataSection_; - } const char *getBSSSection() const { return BSSSection; } diff --git a/lib/CodeGen/AsmPrinter/DwarfWriter.cpp b/lib/CodeGen/AsmPrinter/DwarfWriter.cpp index 5d2581f5f3b..d45ab13e863 100644 --- a/lib/CodeGen/AsmPrinter/DwarfWriter.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfWriter.cpp @@ -2064,7 +2064,7 @@ private: Asm->SwitchToSection(TAI->getTextSection()); EmitLabel("text_begin", 0); - Asm->SwitchToDataSection(TAI->getDataSection()); + Asm->SwitchToSection(TAI->getDataSection()); EmitLabel("data_begin", 0); } @@ -2750,7 +2750,7 @@ public: // Standard sections final addresses. Asm->SwitchToSection(TAI->getTextSection()); EmitLabel("text_end", 0); - Asm->SwitchToDataSection(TAI->getDataSection()); + Asm->SwitchToSection(TAI->getDataSection()); EmitLabel("data_end", 0); // End text sections. diff --git a/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp b/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp index 7f069f699a2..4e42df579d5 100644 --- a/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp +++ b/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp @@ -65,7 +65,7 @@ void OcamlGCMetadataPrinter::beginAssembly(raw_ostream &OS, AsmPrinter &AP, AP.SwitchToSection(TAI.getTextSection()); EmitCamlGlobal(getModule(), OS, AP, TAI, "code_begin"); - AP.SwitchToDataSection(TAI.getDataSection()); + AP.SwitchToSection(TAI.getDataSection()); EmitCamlGlobal(getModule(), OS, AP, TAI, "data_begin"); } @@ -100,13 +100,13 @@ void OcamlGCMetadataPrinter::finishAssembly(raw_ostream &OS, AsmPrinter &AP, AP.SwitchToSection(TAI.getTextSection()); EmitCamlGlobal(getModule(), OS, AP, TAI, "code_end"); - AP.SwitchToDataSection(TAI.getDataSection()); + AP.SwitchToSection(TAI.getDataSection()); EmitCamlGlobal(getModule(), OS, AP, TAI, "data_end"); OS << AddressDirective << 0; // FIXME: Why does ocaml emit this?? AP.EOL(); - AP.SwitchToDataSection(TAI.getDataSection()); + AP.SwitchToSection(TAI.getDataSection()); EmitCamlGlobal(getModule(), OS, AP, TAI, "frametable"); for (iterator I = begin(), IE = end(); I != IE; ++I) { diff --git a/lib/Target/ARM/ARMTargetAsmInfo.cpp b/lib/Target/ARM/ARMTargetAsmInfo.cpp index a1a00a2cdae..d41f3502400 100644 --- a/lib/Target/ARM/ARMTargetAsmInfo.cpp +++ b/lib/Target/ARM/ARMTargetAsmInfo.cpp @@ -48,7 +48,6 @@ ARMTargetAsmInfo::ARMTargetAsmInfo(const ARMTargetMachine &TM) { AlignmentIsInBytes = false; Data64bitsDirective = 0; CommentString = "@"; - DataSection = "\t.data"; ConstantPoolSection = "\t.text\n"; COMMDirectiveTakesAlignment = false; InlineAsmStart = "@ InlineAsm Start"; diff --git a/lib/Target/DarwinTargetAsmInfo.cpp b/lib/Target/DarwinTargetAsmInfo.cpp index a5b72e3edd3..6a53b6b25a5 100644 --- a/lib/Target/DarwinTargetAsmInfo.cpp +++ b/lib/Target/DarwinTargetAsmInfo.cpp @@ -90,7 +90,7 @@ DarwinTargetAsmInfo::SelectSectionForGlobal(const GlobalValue *GV) const { if (cast(GV)->isConstant()) return (isWeak ? ConstDataCoalSection : ConstDataSection); else - return (isWeak ? DataCoalSection : getDataSection_()); + return (isWeak ? DataCoalSection : getDataSection()); case SectionKind::ROData: return (isWeak ? ConstDataCoalSection : (isNonStatic ? ConstDataSection : getReadOnlySection_())); diff --git a/lib/Target/ELFTargetAsmInfo.cpp b/lib/Target/ELFTargetAsmInfo.cpp index 4529d0158d9..df4e43d0aae 100644 --- a/lib/Target/ELFTargetAsmInfo.cpp +++ b/lib/Target/ELFTargetAsmInfo.cpp @@ -27,7 +27,6 @@ using namespace llvm; ELFTargetAsmInfo::ELFTargetAsmInfo(const TargetMachine &TM) { ETM = &TM; - DataSection_ = getUnnamedSection("\t.data", SectionFlags::Writeable); BSSSection_ = getUnnamedSection("\t.bss", SectionFlags::Writeable | SectionFlags::BSS); ReadOnlySection_ = getNamedSection("\t.rodata", SectionFlags::None); @@ -64,7 +63,7 @@ ELFTargetAsmInfo::SelectSectionForGlobal(const GlobalValue *GV) const { switch (Kind) { case SectionKind::Data: case SectionKind::SmallData: - return getDataSection_(); + return getDataSection(); case SectionKind::BSS: case SectionKind::SmallBSS: // ELF targets usually have BSS sections diff --git a/lib/Target/TargetAsmInfo.cpp b/lib/Target/TargetAsmInfo.cpp index df540393d5c..e963d7116ae 100644 --- a/lib/Target/TargetAsmInfo.cpp +++ b/lib/Target/TargetAsmInfo.cpp @@ -27,8 +27,7 @@ using namespace llvm; TargetAsmInfo::TargetAsmInfo() : TextSection(0), - DataSection("\t.data"), - DataSection_(0), + DataSection(0), BSSSection("\t.bss"), BSSSection_(0), ReadOnlySection(0), @@ -126,7 +125,7 @@ TargetAsmInfo::TargetAsmInfo() : DwarfExceptionSection(".gcc_except_table"), AsmTransCBE(0) { TextSection = getUnnamedSection("\t.text", SectionFlags::Code); - DataSection_ = getUnnamedSection(DataSection); + DataSection = getUnnamedSection("\t.data", SectionFlags::Writeable); } TargetAsmInfo::~TargetAsmInfo() { @@ -306,14 +305,14 @@ TargetAsmInfo::SelectSectionForGlobal(const GlobalValue *GV) const { return getReadOnlySection_(); } - return getDataSection_(); + return getDataSection(); } // Lame default implementation. Calculate the section name for machine const. const Section* TargetAsmInfo::SelectSectionForMachineConst(const Type *Ty) const { // FIXME: Support data.rel stuff someday - return getDataSection_(); + return getDataSection(); } std::string diff --git a/lib/Target/X86/AsmPrinter/X86IntelAsmPrinter.cpp b/lib/Target/X86/AsmPrinter/X86IntelAsmPrinter.cpp index ec0bfeb7d63..262e0f70ad5 100644 --- a/lib/Target/X86/AsmPrinter/X86IntelAsmPrinter.cpp +++ b/lib/Target/X86/AsmPrinter/X86IntelAsmPrinter.cpp @@ -481,7 +481,7 @@ bool X86IntelAsmPrinter::doFinalization(Module &M) { O << "\tpublic " << name << "\n"; // FALL THROUGH case GlobalValue::InternalLinkage: - SwitchToDataSection(TAI->getDataSection(), I); + SwitchToSection(TAI->getDataSection()); break; default: assert(0 && "Unknown linkage type!"); diff --git a/lib/Target/X86/X86TargetAsmInfo.cpp b/lib/Target/X86/X86TargetAsmInfo.cpp index 9f9e2ed7d68..b31da8f900a 100644 --- a/lib/Target/X86/X86TargetAsmInfo.cpp +++ b/lib/Target/X86/X86TargetAsmInfo.cpp @@ -434,7 +434,8 @@ X86WinTargetAsmInfo::X86WinTargetAsmInfo(const X86TargetMachine &TM): HasDotTypeDotSizeDirective = false; TextSection = getUnnamedSection("_text", SectionFlags::Code); - DataSection = "_data"; + DataSection = getUnnamedSection("_data", SectionFlags::Writeable); + JumpTableDataSection = NULL; SwitchToSectionDirective = ""; TextSectionStartSuffix = "\tsegment 'CODE'";