diff options
Diffstat (limited to 'lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFStreamer.cpp')
| -rw-r--r-- | lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFStreamer.cpp | 37 | 
1 files changed, 14 insertions, 23 deletions
diff --git a/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFStreamer.cpp b/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFStreamer.cpp index 1497edc7a054..c627a08e7463 100644 --- a/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFStreamer.cpp +++ b/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFStreamer.cpp @@ -12,37 +12,28 @@  #include "llvm/BinaryFormat/ELF.h"  #include "llvm/MC/MCAsmBackend.h"  #include "llvm/MC/MCCodeEmitter.h" +#include "llvm/MC/MCObjectWriter.h"  using namespace llvm; -AMDGPUELFStreamer::AMDGPUELFStreamer(const Triple &T, MCContext &Context, -                                     std::unique_ptr<MCAsmBackend> MAB, -                                     raw_pwrite_stream &OS, -                                     std::unique_ptr<MCCodeEmitter> Emitter) -    : MCELFStreamer(Context, std::move(MAB), OS, std::move(Emitter)) { -  unsigned Arch = ELF::EF_AMDGPU_ARCH_NONE; -  switch (T.getArch()) { -  case Triple::r600: -    Arch = ELF::EF_AMDGPU_ARCH_R600; -    break; -  case Triple::amdgcn: -    Arch = ELF::EF_AMDGPU_ARCH_GCN; -    break; -  default: -    break; -  } +namespace { + +class AMDGPUELFStreamer : public MCELFStreamer { +public: +  AMDGPUELFStreamer(const Triple &T, MCContext &Context, +                    std::unique_ptr<MCAsmBackend> MAB, +                    std::unique_ptr<MCObjectWriter> OW, +                    std::unique_ptr<MCCodeEmitter> Emitter) +      : MCELFStreamer(Context, std::move(MAB), std::move(OW), +                      std::move(Emitter)) {} +}; -  MCAssembler &MCA = getAssembler(); -  unsigned EFlags = MCA.getELFHeaderEFlags(); -  EFlags &= ~ELF::EF_AMDGPU_ARCH; -  EFlags |= Arch; -  MCA.setELFHeaderEFlags(EFlags);  }  MCELFStreamer *llvm::createAMDGPUELFStreamer(      const Triple &T, MCContext &Context, std::unique_ptr<MCAsmBackend> MAB, -    raw_pwrite_stream &OS, std::unique_ptr<MCCodeEmitter> Emitter, +    std::unique_ptr<MCObjectWriter> OW, std::unique_ptr<MCCodeEmitter> Emitter,      bool RelaxAll) { -  return new AMDGPUELFStreamer(T, Context, std::move(MAB), OS, +  return new AMDGPUELFStreamer(T, Context, std::move(MAB), std::move(OW),                                 std::move(Emitter));  }  | 
