mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-24 23:28:41 +00:00
[ELFYAML] Group ELF section type flags to target specific blocks.
Recognize only flags which correspond to the current target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@212880 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -298,6 +298,8 @@ void ScalarBitSetTraits<ELFYAML::ELF_EF>::bitset(IO &IO,
|
||||
|
||||
void ScalarEnumerationTraits<ELFYAML::ELF_SHT>::enumeration(
|
||||
IO &IO, ELFYAML::ELF_SHT &Value) {
|
||||
const auto *Object = static_cast<ELFYAML::Object *>(IO.getContext());
|
||||
assert(Object && "The IO context is not initialized");
|
||||
#define ECase(X) IO.enumCase(Value, #X, ELF::X);
|
||||
ECase(SHT_NULL)
|
||||
ECase(SHT_PROGBITS)
|
||||
@@ -325,15 +327,27 @@ void ScalarEnumerationTraits<ELFYAML::ELF_SHT>::enumeration(
|
||||
ECase(SHT_GNU_versym)
|
||||
ECase(SHT_HIOS)
|
||||
ECase(SHT_LOPROC)
|
||||
ECase(SHT_ARM_EXIDX)
|
||||
ECase(SHT_ARM_PREEMPTMAP)
|
||||
ECase(SHT_ARM_ATTRIBUTES)
|
||||
ECase(SHT_ARM_DEBUGOVERLAY)
|
||||
ECase(SHT_ARM_OVERLAYSECTION)
|
||||
ECase(SHT_HEX_ORDERED)
|
||||
ECase(SHT_X86_64_UNWIND)
|
||||
ECase(SHT_MIPS_REGINFO)
|
||||
ECase(SHT_MIPS_OPTIONS)
|
||||
switch (Object->Header.Machine) {
|
||||
case ELF::EM_ARM:
|
||||
ECase(SHT_ARM_EXIDX)
|
||||
ECase(SHT_ARM_PREEMPTMAP)
|
||||
ECase(SHT_ARM_ATTRIBUTES)
|
||||
ECase(SHT_ARM_DEBUGOVERLAY)
|
||||
ECase(SHT_ARM_OVERLAYSECTION)
|
||||
break;
|
||||
case ELF::EM_HEXAGON:
|
||||
ECase(SHT_HEX_ORDERED)
|
||||
break;
|
||||
case ELF::EM_X86_64:
|
||||
ECase(SHT_X86_64_UNWIND)
|
||||
break;
|
||||
case ELF::EM_MIPS:
|
||||
ECase(SHT_MIPS_REGINFO)
|
||||
ECase(SHT_MIPS_OPTIONS)
|
||||
default:
|
||||
// Nothing to do.
|
||||
break;
|
||||
}
|
||||
#undef ECase
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user