ELFYAML: Add support for parsing AMDGPU section attribute flags

Reviewers: silvas

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D14444

llvm-svn: 253052
This commit is contained in:
Tom Stellard 2015-11-13 17:06:29 +00:00
parent c038e2db4d
commit f9f5f12ce7
2 changed files with 28 additions and 1 deletions

View File

@ -402,6 +402,7 @@ void ScalarEnumerationTraits<ELFYAML::ELF_SHT>::enumeration(
void ScalarBitSetTraits<ELFYAML::ELF_SHF>::bitset(IO &IO, void ScalarBitSetTraits<ELFYAML::ELF_SHF>::bitset(IO &IO,
ELFYAML::ELF_SHF &Value) { ELFYAML::ELF_SHF &Value) {
const auto *Object = static_cast<ELFYAML::Object *>(IO.getContext());
#define BCase(X) IO.bitSetCase(Value, #X, ELF::X); #define BCase(X) IO.bitSetCase(Value, #X, ELF::X);
BCase(SHF_WRITE) BCase(SHF_WRITE)
BCase(SHF_ALLOC) BCase(SHF_ALLOC)
@ -414,6 +415,17 @@ void ScalarBitSetTraits<ELFYAML::ELF_SHF>::bitset(IO &IO,
BCase(SHF_OS_NONCONFORMING) BCase(SHF_OS_NONCONFORMING)
BCase(SHF_GROUP) BCase(SHF_GROUP)
BCase(SHF_TLS) BCase(SHF_TLS)
switch(Object->Header.Machine) {
case ELF::EM_AMDGPU:
BCase(SHF_AMDGPU_HSA_GLOBAL)
BCase(SHF_AMDGPU_HSA_READONLY)
BCase(SHF_AMDGPU_HSA_CODE)
BCase(SHF_AMDGPU_HSA_AGENT)
break;
default:
// Nothing to do.
break;
}
#undef BCase #undef BCase
} }

View File

@ -1,7 +1,16 @@
# RUN: yaml2obj -format=elf %s > %t.o # RUN: yaml2obj -format=elf %s > %t.o
# RUN: llvm-readobj -file-headers %t.o | FileCheck %s # RUN: llvm-readobj -s -file-headers %t.o | FileCheck %s
# CHECK: Machine: EM_AMDGPU (0xE0) # CHECK: Machine: EM_AMDGPU (0xE0)
# CHECK: Sections [
# CHECK: Section {
# CHECK: Name: .shf_amdgpu
# CHECK: Flags [ (0xF00000)
# CHECK: SHF_AMDGPU_HSA_AGENT (0x800000)
# CHECK: SHF_AMDGPU_HSA_CODE (0x400000)
# CHECK: SHF_AMDGPU_HSA_GLOBAL (0x100000)
# CHECK: SHF_AMDGPU_HSA_READONLY (0x200000)
# CHECK: }
--- ---
FileHeader: FileHeader:
@ -9,4 +18,10 @@ FileHeader:
Data: ELFDATA2LSB Data: ELFDATA2LSB
Type: ET_REL Type: ET_REL
Machine: EM_AMDGPU Machine: EM_AMDGPU
Sections:
- Name: .shf_amdgpu
Type: SHT_PROGBITS
Flags: [ SHF_AMDGPU_HSA_GLOBAL, SHF_AMDGPU_HSA_READONLY,
SHF_AMDGPU_HSA_CODE, SHF_AMDGPU_HSA_AGENT]
... ...