diff options
Diffstat (limited to 'lib/Target/XCore/XCoreTargetObjectFile.cpp')
-rw-r--r-- | lib/Target/XCore/XCoreTargetObjectFile.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/lib/Target/XCore/XCoreTargetObjectFile.cpp b/lib/Target/XCore/XCoreTargetObjectFile.cpp new file mode 100644 index 0000000000..89880c29f4 --- /dev/null +++ b/lib/Target/XCore/XCoreTargetObjectFile.cpp @@ -0,0 +1,32 @@ +//===-- XCoreTargetObjectFile.cpp - XCore object files --------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#include "XCoreTargetObjectFile.h" +using namespace llvm; + + +XCoreTargetObjectFile::XCoreTargetObjectFile(bool isXS1A) { + TextSection = getOrCreateSection("\t.text", true, SectionKind::Text); + DataSection = getOrCreateSection("\t.dp.data", false, SectionKind::DataRel); + BSSSection_ = getOrCreateSection("\t.dp.bss", false, SectionKind::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 + // and can be placed in the standard data / bss sections. + TLSDataSection = DataSection; + TLSBSSSection = BSSSection_; + + if (isXS1A) + // FIXME: Why is this writable ("datarel")??? + ReadOnlySection = getOrCreateSection("\t.dp.rodata", false, + SectionKind::DataRel); + else + ReadOnlySection = getOrCreateSection("\t.cp.rodata", false, + SectionKind::ReadOnly); +}
\ No newline at end of file |