1//===-- AMDGPUELFObjectWriter.cpp - AMDGPU ELF Writer ----------------------==// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8/// \file 9//===----------------------------------------------------------------------===// 10 11#include "AMDGPUMCTargetDesc.h" 12#include "llvm/MC/MCELFObjectWriter.h" 13#include "llvm/MC/MCFixup.h" 14 15using namespace llvm; 16 17namespace { 18 19class AMDGPUELFObjectWriter : public MCELFObjectTargetWriter { 20public: 21 AMDGPUELFObjectWriter(bool Is64Bit); 22protected: 23 unsigned GetRelocType(const MCValue &Target, const MCFixup &Fixup, 24 bool IsPCRel) const override { 25 return Fixup.getKind(); 26 } 27 28}; 29 30 31} // End anonymous namespace 32 33AMDGPUELFObjectWriter::AMDGPUELFObjectWriter(bool Is64Bit) 34 : MCELFObjectTargetWriter(Is64Bit, ELF::ELFOSABI_AMDGPU_HSA, 35 ELF::EM_AMDGPU, false) { } 36 37MCObjectWriter *llvm::createAMDGPUELFObjectWriter(bool Is64Bit, raw_pwrite_stream &OS) { 38 MCELFObjectTargetWriter *MOTW = new AMDGPUELFObjectWriter(Is64Bit); 39 return createELFObjectWriter(MOTW, OS, true); 40} 41