diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Target/DarwinTargetAsmInfo.cpp | 11 | ||||
-rw-r--r-- | 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 971623d..311126d 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 0e634c6..f7443c3 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"; |