mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-07-22 09:29:31 +00:00
Add some more handlers for ELF section directives.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108928 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
7fdeab3e7c
commit
f525c2a8af
@ -38,6 +38,14 @@ public:
|
|||||||
|
|
||||||
AddDirectiveHandler<&ELFAsmParser::ParseSectionDirectiveData>(".data");
|
AddDirectiveHandler<&ELFAsmParser::ParseSectionDirectiveData>(".data");
|
||||||
AddDirectiveHandler<&ELFAsmParser::ParseSectionDirectiveText>(".text");
|
AddDirectiveHandler<&ELFAsmParser::ParseSectionDirectiveText>(".text");
|
||||||
|
AddDirectiveHandler<&ELFAsmParser::ParseSectionDirectiveBSS>(".bss");
|
||||||
|
AddDirectiveHandler<&ELFAsmParser::ParseSectionDirectiveRoData>(".rodata");
|
||||||
|
AddDirectiveHandler<&ELFAsmParser::ParseSectionDirectiveTData>(".tdata");
|
||||||
|
AddDirectiveHandler<&ELFAsmParser::ParseSectionDirectiveTBSS>(".tbss");
|
||||||
|
AddDirectiveHandler<&ELFAsmParser::ParseSectionDirectiveDataRel>(".data.rel");
|
||||||
|
AddDirectiveHandler<&ELFAsmParser::ParseSectionDirectiveDataRelRo>(".data.rel.ro");
|
||||||
|
AddDirectiveHandler<&ELFAsmParser::ParseSectionDirectiveDataRelRoLocal>(".data.rel.ro.local");
|
||||||
|
AddDirectiveHandler<&ELFAsmParser::ParseSectionDirectiveEhFrame>(".eh_frame");
|
||||||
AddDirectiveHandler<&ELFAsmParser::ParseDirectiveSection>(".section");
|
AddDirectiveHandler<&ELFAsmParser::ParseDirectiveSection>(".section");
|
||||||
AddDirectiveHandler<&ELFAsmParser::ParseDirectiveSize>(".size");
|
AddDirectiveHandler<&ELFAsmParser::ParseDirectiveSize>(".size");
|
||||||
AddDirectiveHandler<&ELFAsmParser::ParseDirectiveLEB128>(".sleb128");
|
AddDirectiveHandler<&ELFAsmParser::ParseDirectiveLEB128>(".sleb128");
|
||||||
@ -54,6 +62,52 @@ public:
|
|||||||
MCSectionELF::SHF_EXECINSTR |
|
MCSectionELF::SHF_EXECINSTR |
|
||||||
MCSectionELF::SHF_ALLOC, SectionKind::getText());
|
MCSectionELF::SHF_ALLOC, SectionKind::getText());
|
||||||
}
|
}
|
||||||
|
bool ParseSectionDirectiveBSS(StringRef, SMLoc) {
|
||||||
|
return ParseSectionSwitch(".bss", MCSectionELF::SHT_NOBITS,
|
||||||
|
MCSectionELF::SHF_WRITE |
|
||||||
|
MCSectionELF::SHF_ALLOC, SectionKind::getBSS());
|
||||||
|
}
|
||||||
|
bool ParseSectionDirectiveRoData(StringRef, SMLoc) {
|
||||||
|
return ParseSectionSwitch(".rodata", MCSectionELF::SHT_PROGBITS,
|
||||||
|
MCSectionELF::SHF_ALLOC,
|
||||||
|
SectionKind::getReadOnly());
|
||||||
|
}
|
||||||
|
bool ParseSectionDirectiveTData(StringRef, SMLoc) {
|
||||||
|
return ParseSectionSwitch(".tdata", MCSectionELF::SHT_PROGBITS,
|
||||||
|
MCSectionELF::SHF_ALLOC |
|
||||||
|
MCSectionELF::SHF_TLS | MCSectionELF::SHF_WRITE,
|
||||||
|
SectionKind::getThreadData());
|
||||||
|
}
|
||||||
|
bool ParseSectionDirectiveTBSS(StringRef, SMLoc) {
|
||||||
|
return ParseSectionSwitch(".tbss", MCSectionELF::SHT_NOBITS,
|
||||||
|
MCSectionELF::SHF_ALLOC |
|
||||||
|
MCSectionELF::SHF_TLS | MCSectionELF::SHF_WRITE,
|
||||||
|
SectionKind::getThreadBSS());
|
||||||
|
}
|
||||||
|
bool ParseSectionDirectiveDataRel(StringRef, SMLoc) {
|
||||||
|
return ParseSectionSwitch(".data.rel", MCSectionELF::SHT_PROGBITS,
|
||||||
|
MCSectionELF::SHF_ALLOC |
|
||||||
|
MCSectionELF::SHF_WRITE,
|
||||||
|
SectionKind::getDataRel());
|
||||||
|
}
|
||||||
|
bool ParseSectionDirectiveDataRelRo(StringRef, SMLoc) {
|
||||||
|
return ParseSectionSwitch(".data.rel.ro", MCSectionELF::SHT_PROGBITS,
|
||||||
|
MCSectionELF::SHF_ALLOC |
|
||||||
|
MCSectionELF::SHF_WRITE,
|
||||||
|
SectionKind::getReadOnlyWithRel());
|
||||||
|
}
|
||||||
|
bool ParseSectionDirectiveDataRelRoLocal(StringRef, SMLoc) {
|
||||||
|
return ParseSectionSwitch(".data.rel.ro.local", MCSectionELF::SHT_PROGBITS,
|
||||||
|
MCSectionELF::SHF_ALLOC |
|
||||||
|
MCSectionELF::SHF_WRITE,
|
||||||
|
SectionKind::getReadOnlyWithRelLocal());
|
||||||
|
}
|
||||||
|
bool ParseSectionDirectiveEhFrame(StringRef, SMLoc) {
|
||||||
|
return ParseSectionSwitch(".eh_frame", MCSectionELF::SHT_PROGBITS,
|
||||||
|
MCSectionELF::SHF_ALLOC |
|
||||||
|
MCSectionELF::SHF_WRITE,
|
||||||
|
SectionKind::getDataRel());
|
||||||
|
}
|
||||||
bool ParseDirectiveLEB128(StringRef, SMLoc);
|
bool ParseDirectiveLEB128(StringRef, SMLoc);
|
||||||
bool ParseDirectiveSection(StringRef, SMLoc);
|
bool ParseDirectiveSection(StringRef, SMLoc);
|
||||||
bool ParseDirectiveSize(StringRef, SMLoc);
|
bool ParseDirectiveSize(StringRef, SMLoc);
|
||||||
|
Loading…
Reference in New Issue
Block a user