From 4f7f19a7c0bea49ea4a28c27db4846f40d616341 Mon Sep 17 00:00:00 2001 From: Richard Osborne Date: Wed, 22 Jul 2009 11:01:00 +0000 Subject: [PATCH] Thread local globals don't require special handling by the linker and so can be placed in the standard data / bss sections. llvm-svn: 76735 --- llvm/lib/Target/XCore/XCoreTargetAsmInfo.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/llvm/lib/Target/XCore/XCoreTargetAsmInfo.cpp b/llvm/lib/Target/XCore/XCoreTargetAsmInfo.cpp index 07cee8f..842c427 100644 --- a/llvm/lib/Target/XCore/XCoreTargetAsmInfo.cpp +++ b/llvm/lib/Target/XCore/XCoreTargetAsmInfo.cpp @@ -29,6 +29,13 @@ XCoreTargetAsmInfo::XCoreTargetAsmInfo(const XCoreTargetMachine &TM) SectionFlags::Small); BSSSection_ = getNamedSection("\t.dp.bss", SectionFlags::Writeable | SectionFlags::BSS | SectionFlags::Small); + + // 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 + // and can be placed in the standard data / bss sections. + TLSDataSection = DataSection; + TLSBSSSection = BSSSection_; + if (TM.getSubtargetImpl()->isXS1A()) { ReadOnlySection = getNamedSection("\t.dp.rodata", SectionFlags::None | SectionFlags::Writeable | -- 2.7.4