diff options
author | Valery Pykhtin <Valery.Pykhtin@amd.com> | 2016-03-09 17:08:19 +0000 |
---|---|---|
committer | Valery Pykhtin <Valery.Pykhtin@amd.com> | 2016-03-09 17:08:19 +0000 |
commit | d6331cee2f28d8046fae94392533ed4bee1cc78c (patch) | |
tree | 38d278708c2ab1489ca858a6d771f208b46cddb5 | |
parent | 0bcd6c1b18d23e0d47d0a9bbc8084547faa9786f (diff) | |
download | bcm5719-llvm-d6331cee2f28d8046fae94392533ed4bee1cc78c.tar.gz bcm5719-llvm-d6331cee2f28d8046fae94392533ed4bee1cc78c.zip |
[AMDGPU] add AMDGPU target support to ELFObjectFile.h header
Differential Revision: http://reviews.llvm.org/D17144
llvm-svn: 263026
-rw-r--r-- | llvm/include/llvm/Object/ELFObjectFile.h | 12 | ||||
-rw-r--r-- | llvm/lib/ObjectYAML/ELFYAML.cpp | 1 | ||||
-rw-r--r-- | llvm/test/Object/AMDGPU/elf-definitios.yaml | 3 | ||||
-rw-r--r-- | llvm/test/Object/AMDGPU/elf32-unknown.yaml | 11 | ||||
-rw-r--r-- | llvm/test/Object/AMDGPU/elf64-unknown.yaml | 11 |
5 files changed, 38 insertions, 0 deletions
diff --git a/llvm/include/llvm/Object/ELFObjectFile.h b/llvm/include/llvm/Object/ELFObjectFile.h index d927aace242..b01fa1da4b3 100644 --- a/llvm/include/llvm/Object/ELFObjectFile.h +++ b/llvm/include/llvm/Object/ELFObjectFile.h @@ -846,6 +846,8 @@ StringRef ELFObjectFile<ELFT>::getFileFormatName() const { return "ELF32-sparc"; case ELF::EM_WEBASSEMBLY: return "ELF32-wasm"; + case ELF::EM_AMDGPU: + return "ELF32-amdgpu"; default: return "ELF32-unknown"; } @@ -867,6 +869,10 @@ StringRef ELFObjectFile<ELFT>::getFileFormatName() const { return "ELF64-mips"; case ELF::EM_WEBASSEMBLY: return "ELF64-wasm"; + case ELF::EM_AMDGPU: + return (EF.getHeader()->e_ident[ELF::EI_OSABI] == ELF::ELFOSABI_AMDGPU_HSA + && IsLittleEndian) ? + "ELF64-amdgpu-hsacobj" : "ELF64-amdgpu"; default: return "ELF64-unknown"; } @@ -923,6 +929,12 @@ unsigned ELFObjectFile<ELFT>::getArch() const { default: return Triple::UnknownArch; } + case ELF::EM_AMDGPU: + return (EF.getHeader()->e_ident[ELF::EI_CLASS] == ELF::ELFCLASS64 + && EF.getHeader()->e_ident[ELF::EI_OSABI] == ELF::ELFOSABI_AMDGPU_HSA + && IsLittleEndian) ? + Triple::amdgcn : Triple::UnknownArch; + default: return Triple::UnknownArch; } diff --git a/llvm/lib/ObjectYAML/ELFYAML.cpp b/llvm/lib/ObjectYAML/ELFYAML.cpp index 06db57a1788..3b94fa62e1d 100644 --- a/llvm/lib/ObjectYAML/ELFYAML.cpp +++ b/llvm/lib/ObjectYAML/ELFYAML.cpp @@ -239,6 +239,7 @@ void ScalarEnumerationTraits<ELFYAML::ELF_ELFOSABI>::enumeration( ECase(ELFOSABI_FENIXOS) ECase(ELFOSABI_CLOUDABI) ECase(ELFOSABI_C6000_ELFABI) + ECase(ELFOSABI_AMDGPU_HSA) ECase(ELFOSABI_C6000_LINUX) ECase(ELFOSABI_ARM) ECase(ELFOSABI_STANDALONE) diff --git a/llvm/test/Object/AMDGPU/elf-definitios.yaml b/llvm/test/Object/AMDGPU/elf-definitios.yaml index 5f5e200b49b..6d535095123 100644 --- a/llvm/test/Object/AMDGPU/elf-definitios.yaml +++ b/llvm/test/Object/AMDGPU/elf-definitios.yaml @@ -1,6 +1,8 @@ # RUN: yaml2obj -format=elf %s > %t.o # RUN: llvm-readobj -s -file-headers %t.o | FileCheck %s +# CHECK: Format: ELF64-amdgpu-hsacobj +# CHECK: Arch: amdgcn # CHECK: Machine: EM_AMDGPU (0xE0) # CHECK: Sections [ # CHECK: Section { @@ -18,6 +20,7 @@ FileHeader: Data: ELFDATA2LSB Type: ET_REL Machine: EM_AMDGPU + OSABI: ELFOSABI_AMDGPU_HSA Sections: - Name: .shf_amdgpu diff --git a/llvm/test/Object/AMDGPU/elf32-unknown.yaml b/llvm/test/Object/AMDGPU/elf32-unknown.yaml new file mode 100644 index 00000000000..708db8dc9fc --- /dev/null +++ b/llvm/test/Object/AMDGPU/elf32-unknown.yaml @@ -0,0 +1,11 @@ +# RUN: yaml2obj -format=elf %s > %t.o +# RUN: llvm-readobj -s -file-headers %t.o | FileCheck %s + +# CHECK: Format: ELF32-amdgpu + +--- +FileHeader: + Class: ELFCLASS32 + Data: ELFDATA2LSB + Type: ET_REL + Machine: EM_AMDGPU diff --git a/llvm/test/Object/AMDGPU/elf64-unknown.yaml b/llvm/test/Object/AMDGPU/elf64-unknown.yaml new file mode 100644 index 00000000000..cae248854ad --- /dev/null +++ b/llvm/test/Object/AMDGPU/elf64-unknown.yaml @@ -0,0 +1,11 @@ +# RUN: yaml2obj -format=elf %s > %t.o +# RUN: llvm-readobj -s -file-headers %t.o | FileCheck %s + +# CHECK: Format: ELF64-amdgpu + +--- +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_REL + Machine: EM_AMDGPU |