Properly MCize the section switch, removing a FIXME.
authorRoman Divacky <rdivacky@freebsd.org>
Tue, 28 Feb 2012 18:15:25 +0000 (18:15 +0000)
committerRoman Divacky <rdivacky@freebsd.org>
Tue, 28 Feb 2012 18:15:25 +0000 (18:15 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151639 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/PPCAsmPrinter.cpp

index 7e6403b6c43fb777dd9b3b12ecbb825195e823b6..591ae020aa3ce5b4910aaaa0f7f97ec40a81b0a3 100644 (file)
@@ -422,8 +422,10 @@ bool PPCLinuxAsmPrinter::doFinalization(Module &M) {
   bool isPPC64 = TD->getPointerSizeInBits() == 64;
 
   if (isPPC64 && !TOC.empty()) {
-    // FIXME 64-bit SVR4: Use MCSection here?
-    OutStreamer.EmitRawText(StringRef("\t.section\t\".toc\",\"aw\""));
+    const MCSectionELF *Section = OutStreamer.getContext().getELFSection(".toc",
+        ELF::SHT_PROGBITS, ELF::SHF_WRITE | ELF::SHF_ALLOC,
+        SectionKind::getReadOnly());
+    OutStreamer.SwitchSection(Section);
 
     // FIXME: This is nondeterminstic!
     for (DenseMap<MCSymbol*, MCSymbol*>::iterator I = TOC.begin(),