From c552d8f09a77e99d8ae9e0cd19c82470b49d44f0 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Fri, 13 Nov 2015 17:06:29 +0000 Subject: [PATCH] ELFYAML: Add support for parsing AMDGPU section attribute flags Reviewers: silvas Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D14444 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253052 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Object/ELFYAML.cpp | 12 ++++++++++++ test/Object/AMDGPU/elf-definitios.yaml | 17 ++++++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/lib/Object/ELFYAML.cpp b/lib/Object/ELFYAML.cpp index 25317be7e04..4a4b2276f46 100644 --- a/lib/Object/ELFYAML.cpp +++ b/lib/Object/ELFYAML.cpp @@ -402,6 +402,7 @@ void ScalarEnumerationTraits::enumeration( void ScalarBitSetTraits::bitset(IO &IO, ELFYAML::ELF_SHF &Value) { + const auto *Object = static_cast(IO.getContext()); #define BCase(X) IO.bitSetCase(Value, #X, ELF::X); BCase(SHF_WRITE) BCase(SHF_ALLOC) @@ -414,6 +415,17 @@ void ScalarBitSetTraits::bitset(IO &IO, BCase(SHF_OS_NONCONFORMING) BCase(SHF_GROUP) 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 } diff --git a/test/Object/AMDGPU/elf-definitios.yaml b/test/Object/AMDGPU/elf-definitios.yaml index 1d9821a978d..5f5e200b49b 100644 --- a/test/Object/AMDGPU/elf-definitios.yaml +++ b/test/Object/AMDGPU/elf-definitios.yaml @@ -1,7 +1,16 @@ # 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: 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: @@ -9,4 +18,10 @@ FileHeader: Data: ELFDATA2LSB Type: ET_REL 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] ... -- 2.34.1