summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Object/ELFYAML.cpp
diff options
context:
space:
mode:
authorTom Stellard <thomas.stellard@amd.com>2015-11-13 17:06:29 +0000
committerTom Stellard <thomas.stellard@amd.com>2015-11-13 17:06:29 +0000
commitf9f5f12ce79aa1c09fa34f76676d9f0bd1b79b39 (patch)
treea9493d8bc4033864077317677088bdef7ae4b02c /llvm/lib/Object/ELFYAML.cpp
parentc038e2db4d890969b016efc9a0f7c907c1fca19d (diff)
downloadbcm5719-llvm-f9f5f12ce79aa1c09fa34f76676d9f0bd1b79b39.tar.gz
bcm5719-llvm-f9f5f12ce79aa1c09fa34f76676d9f0bd1b79b39.zip
ELFYAML: Add support for parsing AMDGPU section attribute flags
Reviewers: silvas Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D14444 llvm-svn: 253052
Diffstat (limited to 'llvm/lib/Object/ELFYAML.cpp')
-rw-r--r--llvm/lib/Object/ELFYAML.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/llvm/lib/Object/ELFYAML.cpp b/llvm/lib/Object/ELFYAML.cpp
index 25317be7e04..4a4b2276f46 100644
--- a/llvm/lib/Object/ELFYAML.cpp
+++ b/llvm/lib/Object/ELFYAML.cpp
@@ -402,6 +402,7 @@ void ScalarEnumerationTraits<ELFYAML::ELF_SHT>::enumeration(
void ScalarBitSetTraits<ELFYAML::ELF_SHF>::bitset(IO &IO,
ELFYAML::ELF_SHF &Value) {
+ const auto *Object = static_cast<ELFYAML::Object *>(IO.getContext());
#define BCase(X) IO.bitSetCase(Value, #X, ELF::X);
BCase(SHF_WRITE)
BCase(SHF_ALLOC)
@@ -414,6 +415,17 @@ void ScalarBitSetTraits<ELFYAML::ELF_SHF>::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
}
OpenPOWER on IntegriCloud