mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-26 07:24:25 +00:00
AMDGPU/SI: Set ELF OS/ABI to ELFOSABI_AMDGPU_HSA
Reviewers: arsenm, rafael Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D10708 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240832 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -347,6 +347,7 @@ enum {
|
|||||||
ELFOSABI_FENIXOS = 16, // FenixOS
|
ELFOSABI_FENIXOS = 16, // FenixOS
|
||||||
ELFOSABI_CLOUDABI = 17, // Nuxi CloudABI
|
ELFOSABI_CLOUDABI = 17, // Nuxi CloudABI
|
||||||
ELFOSABI_C6000_ELFABI = 64, // Bare-metal TMS320C6000
|
ELFOSABI_C6000_ELFABI = 64, // Bare-metal TMS320C6000
|
||||||
|
ELFOSABI_AMDGPU_HSA = 64, // AMD HSA runtime
|
||||||
ELFOSABI_C6000_LINUX = 65, // Linux TMS320C6000
|
ELFOSABI_C6000_LINUX = 65, // Linux TMS320C6000
|
||||||
ELFOSABI_ARM = 97, // ARM
|
ELFOSABI_ARM = 97, // ARM
|
||||||
ELFOSABI_STANDALONE = 255 // Standalone (embedded) application
|
ELFOSABI_STANDALONE = 255 // Standalone (embedded) application
|
||||||
|
@ -31,7 +31,8 @@ protected:
|
|||||||
} // End anonymous namespace
|
} // End anonymous namespace
|
||||||
|
|
||||||
AMDGPUELFObjectWriter::AMDGPUELFObjectWriter(bool Is64Bit)
|
AMDGPUELFObjectWriter::AMDGPUELFObjectWriter(bool Is64Bit)
|
||||||
: MCELFObjectTargetWriter(Is64Bit, 0, ELF::EM_AMDGPU, false) { }
|
: MCELFObjectTargetWriter(Is64Bit, ELF::ELFOSABI_AMDGPU_HSA,
|
||||||
|
ELF::EM_AMDGPU, false) { }
|
||||||
|
|
||||||
MCObjectWriter *llvm::createAMDGPUELFObjectWriter(bool Is64Bit, raw_pwrite_stream &OS) {
|
MCObjectWriter *llvm::createAMDGPUELFObjectWriter(bool Is64Bit, raw_pwrite_stream &OS) {
|
||||||
MCELFObjectTargetWriter *MOTW = new AMDGPUELFObjectWriter(Is64Bit);
|
MCELFObjectTargetWriter *MOTW = new AMDGPUELFObjectWriter(Is64Bit);
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
; RUN: llc < %s -mtriple=amdgcn-pc-mingw -mcpu=SI -verify-machineinstrs -filetype=obj | llvm-readobj -s -symbols -file-headers - | FileCheck --check-prefix=ELF %s
|
; RUN: llc < %s -mtriple=amdgcn-pc-mingw -mcpu=SI -verify-machineinstrs -filetype=obj | llvm-readobj -s -symbols -file-headers - | FileCheck --check-prefix=ELF %s
|
||||||
|
|
||||||
; ELF: Format: ELF64
|
; ELF: Format: ELF64
|
||||||
|
; ELF: OS/ABI: AMDGPU_HSA (0x40)
|
||||||
; ELF: Machine: EM_AMDGPU (0xE0)
|
; ELF: Machine: EM_AMDGPU (0xE0)
|
||||||
; ELF: Name: .AMDGPU.config
|
; ELF: Name: .AMDGPU.config
|
||||||
; ELF: Type: SHT_PROGBITS
|
; ELF: Type: SHT_PROGBITS
|
||||||
|
@ -574,7 +574,13 @@ void ELFDumper<ELFT>::printFileHeaders() {
|
|||||||
W.printEnum ("DataEncoding", Header->e_ident[ELF::EI_DATA],
|
W.printEnum ("DataEncoding", Header->e_ident[ELF::EI_DATA],
|
||||||
makeArrayRef(ElfDataEncoding));
|
makeArrayRef(ElfDataEncoding));
|
||||||
W.printNumber("FileVersion", Header->e_ident[ELF::EI_VERSION]);
|
W.printNumber("FileVersion", Header->e_ident[ELF::EI_VERSION]);
|
||||||
W.printEnum ("OS/ABI", Header->e_ident[ELF::EI_OSABI],
|
|
||||||
|
// Handle architecture specific OS/ABI values.
|
||||||
|
if (Header->e_machine == ELF::EM_AMDGPU &&
|
||||||
|
Header->e_ident[ELF::EI_OSABI] == ELF::ELFOSABI_AMDGPU_HSA)
|
||||||
|
W.printHex("OS/ABI", "AMDGPU_HSA", ELF::ELFOSABI_AMDGPU_HSA);
|
||||||
|
else
|
||||||
|
W.printEnum ("OS/ABI", Header->e_ident[ELF::EI_OSABI],
|
||||||
makeArrayRef(ElfOSABI));
|
makeArrayRef(ElfOSABI));
|
||||||
W.printNumber("ABIVersion", Header->e_ident[ELF::EI_ABIVERSION]);
|
W.printNumber("ABIVersion", Header->e_ident[ELF::EI_ABIVERSION]);
|
||||||
W.printBinary("Unused", makeArrayRef(Header->e_ident).slice(ELF::EI_PAD));
|
W.printBinary("Unused", makeArrayRef(Header->e_ident).slice(ELF::EI_PAD));
|
||||||
|
Reference in New Issue
Block a user