mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-12 13:38:21 +00:00
move elf section uniquing to MCContext. Along the way
merge XCore's section into MCSectionELF git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100812 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -9,7 +9,8 @@
|
||||
|
||||
#include "XCoreTargetObjectFile.h"
|
||||
#include "XCoreSubtarget.h"
|
||||
#include "MCSectionXCore.h"
|
||||
#include "llvm/MC/MCContext.h"
|
||||
#include "llvm/MC/MCSectionELF.h"
|
||||
#include "llvm/Target/TargetMachine.h"
|
||||
using namespace llvm;
|
||||
|
||||
@ -18,34 +19,31 @@ void XCoreTargetObjectFile::Initialize(MCContext &Ctx, const TargetMachine &TM){
|
||||
TargetLoweringObjectFileELF::Initialize(Ctx, TM);
|
||||
|
||||
DataSection =
|
||||
MCSectionXCore::Create(".dp.data", MCSectionELF::SHT_PROGBITS,
|
||||
MCSectionELF::SHF_ALLOC | MCSectionELF::SHF_WRITE |
|
||||
MCSectionXCore::SHF_DP_SECTION,
|
||||
SectionKind::getDataRel(), false, getContext());
|
||||
Ctx.getELFSection(".dp.data", MCSectionELF::SHT_PROGBITS,
|
||||
MCSectionELF::SHF_ALLOC | MCSectionELF::SHF_WRITE |
|
||||
MCSectionELF::XCORE_SHF_DP_SECTION,
|
||||
SectionKind::getDataRel(), false);
|
||||
BSSSection =
|
||||
MCSectionXCore::Create(".dp.bss", MCSectionELF::SHT_NOBITS,
|
||||
MCSectionELF::SHF_ALLOC | MCSectionELF::SHF_WRITE |
|
||||
MCSectionXCore::SHF_DP_SECTION,
|
||||
SectionKind::getBSS(), false, getContext());
|
||||
Ctx.getELFSection(".dp.bss", MCSectionELF::SHT_NOBITS,
|
||||
MCSectionELF::SHF_ALLOC | MCSectionELF::SHF_WRITE |
|
||||
MCSectionELF::XCORE_SHF_DP_SECTION,
|
||||
SectionKind::getBSS(), false);
|
||||
|
||||
MergeableConst4Section =
|
||||
MCSectionXCore::Create(".cp.rodata.cst4", MCSectionELF::SHT_PROGBITS,
|
||||
MCSectionELF::SHF_ALLOC | MCSectionELF::SHF_MERGE |
|
||||
MCSectionXCore::SHF_CP_SECTION,
|
||||
SectionKind::getMergeableConst4(), false,
|
||||
getContext());
|
||||
Ctx.getELFSection(".cp.rodata.cst4", MCSectionELF::SHT_PROGBITS,
|
||||
MCSectionELF::SHF_ALLOC | MCSectionELF::SHF_MERGE |
|
||||
MCSectionELF::XCORE_SHF_CP_SECTION,
|
||||
SectionKind::getMergeableConst4(), false);
|
||||
MergeableConst8Section =
|
||||
MCSectionXCore::Create(".cp.rodata.cst8", MCSectionELF::SHT_PROGBITS,
|
||||
MCSectionELF::SHF_ALLOC | MCSectionELF::SHF_MERGE |
|
||||
MCSectionXCore::SHF_CP_SECTION,
|
||||
SectionKind::getMergeableConst8(), false,
|
||||
getContext());
|
||||
Ctx.getELFSection(".cp.rodata.cst8", MCSectionELF::SHT_PROGBITS,
|
||||
MCSectionELF::SHF_ALLOC | MCSectionELF::SHF_MERGE |
|
||||
MCSectionELF::XCORE_SHF_CP_SECTION,
|
||||
SectionKind::getMergeableConst8(), false);
|
||||
MergeableConst16Section =
|
||||
MCSectionXCore::Create(".cp.rodata.cst16", MCSectionELF::SHT_PROGBITS,
|
||||
MCSectionELF::SHF_ALLOC | MCSectionELF::SHF_MERGE |
|
||||
MCSectionXCore::SHF_CP_SECTION,
|
||||
SectionKind::getMergeableConst16(), false,
|
||||
getContext());
|
||||
Ctx.getELFSection(".cp.rodata.cst16", MCSectionELF::SHT_PROGBITS,
|
||||
MCSectionELF::SHF_ALLOC | MCSectionELF::SHF_MERGE |
|
||||
MCSectionELF::XCORE_SHF_CP_SECTION,
|
||||
SectionKind::getMergeableConst16(), false);
|
||||
|
||||
// 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
|
||||
@ -54,11 +52,10 @@ void XCoreTargetObjectFile::Initialize(MCContext &Ctx, const TargetMachine &TM){
|
||||
TLSBSSSection = BSSSection;
|
||||
|
||||
ReadOnlySection =
|
||||
MCSectionXCore::Create(".cp.rodata", MCSectionELF::SHT_PROGBITS,
|
||||
MCSectionELF::SHF_ALLOC |
|
||||
MCSectionXCore::SHF_CP_SECTION,
|
||||
SectionKind::getReadOnlyWithRel(), false,
|
||||
getContext());
|
||||
Ctx.getELFSection(".cp.rodata", MCSectionELF::SHT_PROGBITS,
|
||||
MCSectionELF::SHF_ALLOC |
|
||||
MCSectionELF::XCORE_SHF_CP_SECTION,
|
||||
SectionKind::getReadOnlyWithRel(), false);
|
||||
|
||||
// Dynamic linking is not supported. Data with relocations is placed in the
|
||||
// same section as data without relocations.
|
||||
|
Reference in New Issue
Block a user