mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-07 12:28:24 +00:00
R600/SI: Use ELF64 format instead of ELF32
Reviewers: arsenm, rafael Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D10392 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240331 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -127,11 +127,14 @@ bool AMDGPUAsmBackend::writeNopData(uint64_t Count, MCObjectWriter *OW) const {
|
|||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
class ELFAMDGPUAsmBackend : public AMDGPUAsmBackend {
|
class ELFAMDGPUAsmBackend : public AMDGPUAsmBackend {
|
||||||
|
bool Is64Bit;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
ELFAMDGPUAsmBackend(const Target &T) : AMDGPUAsmBackend(T) { }
|
ELFAMDGPUAsmBackend(const Target &T, bool Is64Bit) :
|
||||||
|
AMDGPUAsmBackend(T), Is64Bit(Is64Bit) { }
|
||||||
|
|
||||||
MCObjectWriter *createObjectWriter(raw_pwrite_stream &OS) const override {
|
MCObjectWriter *createObjectWriter(raw_pwrite_stream &OS) const override {
|
||||||
return createAMDGPUELFObjectWriter(OS);
|
return createAMDGPUELFObjectWriter(Is64Bit, OS);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -140,5 +143,8 @@ public:
|
|||||||
MCAsmBackend *llvm::createAMDGPUAsmBackend(const Target &T,
|
MCAsmBackend *llvm::createAMDGPUAsmBackend(const Target &T,
|
||||||
const MCRegisterInfo &MRI,
|
const MCRegisterInfo &MRI,
|
||||||
const Triple &TT, StringRef CPU) {
|
const Triple &TT, StringRef CPU) {
|
||||||
return new ELFAMDGPUAsmBackend(T);
|
Triple TargetTriple(TT);
|
||||||
|
|
||||||
|
// Use 64-bit ELF for amdgcn
|
||||||
|
return new ELFAMDGPUAsmBackend(T, TargetTriple.getArch() == Triple::amdgcn);
|
||||||
}
|
}
|
||||||
|
@@ -18,7 +18,7 @@ namespace {
|
|||||||
|
|
||||||
class AMDGPUELFObjectWriter : public MCELFObjectTargetWriter {
|
class AMDGPUELFObjectWriter : public MCELFObjectTargetWriter {
|
||||||
public:
|
public:
|
||||||
AMDGPUELFObjectWriter();
|
AMDGPUELFObjectWriter(bool Is64Bit);
|
||||||
protected:
|
protected:
|
||||||
unsigned GetRelocType(const MCValue &Target, const MCFixup &Fixup,
|
unsigned GetRelocType(const MCValue &Target, const MCFixup &Fixup,
|
||||||
bool IsPCRel) const override {
|
bool IsPCRel) const override {
|
||||||
@@ -30,10 +30,10 @@ protected:
|
|||||||
|
|
||||||
} // End anonymous namespace
|
} // End anonymous namespace
|
||||||
|
|
||||||
AMDGPUELFObjectWriter::AMDGPUELFObjectWriter()
|
AMDGPUELFObjectWriter::AMDGPUELFObjectWriter(bool Is64Bit)
|
||||||
: MCELFObjectTargetWriter(false, 0, ELF::EM_AMDGPU, false) { }
|
: MCELFObjectTargetWriter(Is64Bit, 0, ELF::EM_AMDGPU, false) { }
|
||||||
|
|
||||||
MCObjectWriter *llvm::createAMDGPUELFObjectWriter(raw_pwrite_stream &OS) {
|
MCObjectWriter *llvm::createAMDGPUELFObjectWriter(bool Is64Bit, raw_pwrite_stream &OS) {
|
||||||
MCELFObjectTargetWriter *MOTW = new AMDGPUELFObjectWriter();
|
MCELFObjectTargetWriter *MOTW = new AMDGPUELFObjectWriter(Is64Bit);
|
||||||
return createELFObjectWriter(MOTW, OS, true);
|
return createELFObjectWriter(MOTW, OS, true);
|
||||||
}
|
}
|
||||||
|
@@ -46,7 +46,8 @@ MCCodeEmitter *createSIMCCodeEmitter(const MCInstrInfo &MCII,
|
|||||||
MCAsmBackend *createAMDGPUAsmBackend(const Target &T, const MCRegisterInfo &MRI,
|
MCAsmBackend *createAMDGPUAsmBackend(const Target &T, const MCRegisterInfo &MRI,
|
||||||
const Triple &TT, StringRef CPU);
|
const Triple &TT, StringRef CPU);
|
||||||
|
|
||||||
MCObjectWriter *createAMDGPUELFObjectWriter(raw_pwrite_stream &OS);
|
MCObjectWriter *createAMDGPUELFObjectWriter(bool Is64Bit,
|
||||||
|
raw_pwrite_stream &OS);
|
||||||
} // namespace llvm
|
} // namespace llvm
|
||||||
|
|
||||||
#define GET_REGINFO_ENUM
|
#define GET_REGINFO_ENUM
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
; Test that we don't try to produce a COFF file on windows
|
; Test that we don't try to produce a COFF file on windows
|
||||||
; 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: ELF32
|
; ELF: Format: ELF64
|
||||||
; 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
|
||||||
|
Reference in New Issue
Block a user