a better solution for it in the future.
llvm-svn: 76818
const unsigned TLS = 1 << 5; ///< Section contains thread-local data
const unsigned Debug = 1 << 6; ///< Section contains debug data
const unsigned Linkonce = 1 << 7; ///< Section is linkonce
- const unsigned Small = 1 << 8; ///< Section is small
const unsigned TypeFlags = 0xFF;
// Some gap for future flags
const unsigned Named = 1 << 23; ///< Section is named
Flags += 'S';
if (flags & SectionFlags::TLS)
Flags += 'T';
- if (flags & SectionFlags::Small)
- Flags += 's';
Flags += "\",";
}
-unsigned MipsTargetAsmInfo::
-SectionFlagsForGlobal(const GlobalValue *GV, const char* Name) const {
- unsigned Flags = ELFTargetAsmInfo::SectionFlagsForGlobal(GV, Name);
- // Mask out Small Section flag bit, Mips doesnt support 's' section symbol
- // for its small sections.
- return (Flags & (~SectionFlags::Small));
-}
-
SectionKind::Kind MipsTargetAsmInfo::
SectionKindForGlobal(const GlobalValue *GV) const {
SectionKind::Kind K = ELFTargetAsmInfo::SectionKindForGlobal(GV);
virtual SectionKind::Kind
SectionKindForGlobal(const GlobalValue *GV) const;
- /// SectionFlagsForGlobal - This hook allows the target to select proper
- /// section flags either for given global or for section.
- virtual unsigned
- SectionFlagsForGlobal(const GlobalValue *GV = NULL,
- const char* name = NULL) const;
-
virtual const Section* SelectSectionForGlobal(const GlobalValue *GV) const;
private:
case SectionKind::SmallData:
case SectionKind::SmallBSS:
Flags |= SectionFlags::Writeable;
- // FALLS THROUGH
+ break;
case SectionKind::SmallROData:
- Flags |= SectionFlags::Small;
break;
default:
llvm_unreachable("Unexpected section kind!");
: ELFTargetAsmInfo(TM) {
SupportsDebugInformation = true;
TextSection = getUnnamedSection("\t.text", SectionFlags::Code);
- DataSection = getNamedSection("\t.dp.data", SectionFlags::Writeable |
- SectionFlags::Small);
+ DataSection = getNamedSection("\t.dp.data", SectionFlags::Writeable);
BSSSection_ = getNamedSection("\t.dp.bss", SectionFlags::Writeable |
- SectionFlags::BSS | SectionFlags::Small);
+ SectionFlags::BSS);
// TLS globals are lowered in the backend to arrays indexed by the current
// thread id. After lowering they require no special handling by the linker
TLSDataSection = DataSection;
TLSBSSSection = BSSSection_;
- if (TM.getSubtargetImpl()->isXS1A()) {
- ReadOnlySection = getNamedSection("\t.dp.rodata", SectionFlags::None |
- SectionFlags::Writeable |
- SectionFlags::Small);
- } else {
- ReadOnlySection = getNamedSection("\t.cp.rodata", SectionFlags::None |
- SectionFlags::Small);
- }
+ if (TM.getSubtargetImpl()->isXS1A())
+ ReadOnlySection = getNamedSection("\t.dp.rodata", SectionFlags::Writeable);
+ else
+ ReadOnlySection = getNamedSection("\t.cp.rodata", SectionFlags::None);
Data16bitsDirective = "\t.short\t";
Data32bitsDirective = "\t.long\t";
Data64bitsDirective = 0;