From cff2ea06af03fd44758d937455f2b0999cbda60b Mon Sep 17 00:00:00 2001
From: Anton Korobeynikov <asl@math.spbu.ru>
Date: Sat, 19 Jul 2008 13:15:46 +0000
Subject: [PATCH] Fix a FIXME :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53789 91177308-0d34-0410-b5e6-96231b3b80d8
---
 lib/Target/DarwinTargetAsmInfo.cpp  | 11 +++++------
 lib/Target/X86/X86TargetAsmInfo.cpp |  2 ++
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/lib/Target/DarwinTargetAsmInfo.cpp b/lib/Target/DarwinTargetAsmInfo.cpp
index 971623d5334..311126d0113 100644
--- a/lib/Target/DarwinTargetAsmInfo.cpp
+++ b/lib/Target/DarwinTargetAsmInfo.cpp
@@ -32,9 +32,9 @@ DarwinTargetAsmInfo::DarwinTargetAsmInfo(const TargetMachine &TM) {
                                                SectionFlags::Mergeable);
   EightByteConstantSection_ = getUnnamedSection("\t.literal8\n",
                                                 SectionFlags::Mergeable);
-  // FIXME: Check for 64 bit
-  SixteenByteConstantSection_ = getUnnamedSection("\t.literal16\n",
-                                                  SectionFlags::Mergeable);
+  // Note: 16-byte constant section is subtarget specific and should be provided
+  // there.
+
   ReadOnlySection_ = getUnnamedSection("\t.const\n", SectionFlags::None);
 
   // FIXME: These should be named sections, really.
@@ -114,9 +114,8 @@ DarwinTargetAsmInfo::MergeableConstSection(const GlobalVariable *GV) const {
     return FourByteConstantSection_;
   else if (Size == 8)
     return EightByteConstantSection_;
-  // FIXME: 64 bit
-  /*else if (Size == 16 && DTM->getSubtarget<X86Subtarget>().is64Bit())
-    return SixteenByteConstantSection_;*/
+  else if (Size == 16 && SixteenByteConstantSection_)
+    return SixteenByteConstantSection_;
 
   return getReadOnlySection_();
 }
diff --git a/lib/Target/X86/X86TargetAsmInfo.cpp b/lib/Target/X86/X86TargetAsmInfo.cpp
index 0e634c6eb9f..f7443c31f77 100644
--- a/lib/Target/X86/X86TargetAsmInfo.cpp
+++ b/lib/Target/X86/X86TargetAsmInfo.cpp
@@ -148,6 +148,8 @@ X86DarwinTargetAsmInfo::X86DarwinTargetAsmInfo(const X86TargetMachine &TM):
   // FIXME: Why don't always use this section?
   if (is64Bit) {
     SixteenByteConstantSection = "\t.literal16\n";
+    SixteenByteConstantSection_ = getUnnamedSection("\t.literal16\n",
+                                                    SectionFlags::Mergeable);
   }
   ReadOnlySection = "\t.const\n";