mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-21 18:24:23 +00:00
Change MCSectionELF to represent a section semantically instead of
syntactically as a string, very similiar to what Chris did with MachO. The parsing support and validation is not introduced yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78890 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -9,6 +9,7 @@
|
||||
|
||||
#include "XCoreTargetObjectFile.h"
|
||||
#include "XCoreSubtarget.h"
|
||||
#include "llvm/MC/MCSectionELF.h"
|
||||
#include "llvm/Target/TargetMachine.h"
|
||||
using namespace llvm;
|
||||
|
||||
@ -16,9 +17,12 @@ using namespace llvm;
|
||||
void XCoreTargetObjectFile::Initialize(MCContext &Ctx, const TargetMachine &TM){
|
||||
TargetLoweringObjectFileELF::Initialize(Ctx, TM);
|
||||
|
||||
TextSection = getELFSection("\t.text", true, SectionKind::getText());
|
||||
DataSection = getELFSection("\t.dp.data", false, SectionKind::getDataRel());
|
||||
BSSSection = getELFSection("\t.dp.bss", false, SectionKind::getBSS());
|
||||
DataSection = getELFSection(".dp.data", MCSectionELF::SHT_PROGBITS,
|
||||
MCSectionELF::SHF_ALLOC | MCSectionELF::SHF_WRITE,
|
||||
SectionKind::getDataRel());
|
||||
BSSSection = getELFSection(".dp.bss", MCSectionELF::SHT_NOBITS,
|
||||
MCSectionELF::SHF_ALLOC | MCSectionELF::SHF_WRITE,
|
||||
SectionKind::getBSS());
|
||||
|
||||
// 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
|
||||
@ -28,9 +32,12 @@ void XCoreTargetObjectFile::Initialize(MCContext &Ctx, const TargetMachine &TM){
|
||||
|
||||
if (TM.getSubtarget<XCoreSubtarget>().isXS1A())
|
||||
// FIXME: Why is this writable ("datarel")???
|
||||
ReadOnlySection = getELFSection("\t.dp.rodata", false,
|
||||
SectionKind::getDataRel());
|
||||
ReadOnlySection =
|
||||
getELFSection(".dp.rodata", MCSectionELF::SHT_PROGBITS,
|
||||
MCSectionELF::SHF_ALLOC | MCSectionELF::SHF_WRITE,
|
||||
SectionKind::getDataRel());
|
||||
else
|
||||
ReadOnlySection = getELFSection("\t.cp.rodata", false,
|
||||
SectionKind::getReadOnly());
|
||||
ReadOnlySection =
|
||||
getELFSection(".cp.rodata", MCSectionELF::SHT_PROGBITS,
|
||||
MCSectionELF::SHF_ALLOC, SectionKind::getReadOnly());
|
||||
}
|
||||
|
Reference in New Issue
Block a user