1 //===-------- MipsELFStreamer.h - ELF Object Output -----------------------===// 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 //===----------------------------------------------------------------------===// 9 // 10 // This is a custom MCELFStreamer which allows us to insert some hooks before 11 // emitting data into an actual object file. 12 // 13 //===----------------------------------------------------------------------===// 14 15 #ifndef MIPSELFSTREAMER_H 16 #define MIPSELFSTREAMER_H 17 18 #include "llvm/MC/MCELFStreamer.h" 19 #include "llvm/Support/raw_ostream.h" 20 21 namespace llvm { 22 class MCAsmBackend; 23 class MCCodeEmitter; 24 class MCContext; 25 class MCSubtargetInfo; 26 27 class MipsELFStreamer : public MCELFStreamer { 28 29 public: MipsELFStreamer(MCContext & Context,MCAsmBackend & MAB,raw_ostream & OS,MCCodeEmitter * Emitter,const MCSubtargetInfo & STI)30 MipsELFStreamer(MCContext &Context, MCAsmBackend &MAB, raw_ostream &OS, 31 MCCodeEmitter *Emitter, const MCSubtargetInfo &STI) 32 : MCELFStreamer(Context, MAB, OS, Emitter) {} 33 ~MipsELFStreamer()34 virtual ~MipsELFStreamer() {} 35 }; 36 37 MCELFStreamer *createMipsELFStreamer(MCContext &Context, MCAsmBackend &MAB, 38 raw_ostream &OS, MCCodeEmitter *Emitter, 39 const MCSubtargetInfo &STI, bool RelaxAll, 40 bool NoExecStack); 41 } // namespace llvm. 42 #endif 43