1249259Sdim//=== MipsELFStreamer.h - MipsELFStreamer ------------------------------===//
2249259Sdim//
3249259Sdim//                    The LLVM Compiler Infrastructure
4249259Sdim//
5249259Sdim// This file is distributed under the University of Illinois Open Source
6249259Sdim// License. See LICENCE.TXT for details.
7249259Sdim//
8249259Sdim//===-------------------------------------------------------------------===//
9249259Sdim#ifndef MIPSELFSTREAMER_H_
10249259Sdim#define MIPSELFSTREAMER_H_
11249259Sdim
12249259Sdim#include "llvm/MC/MCELFStreamer.h"
13249259Sdim
14249259Sdimnamespace llvm {
15249259Sdimclass MipsAsmPrinter;
16249259Sdimclass MipsSubtarget;
17249259Sdimclass MCSymbol;
18249259Sdim
19249259Sdimclass MipsELFStreamer : public MCELFStreamer {
20249259Sdimpublic:
21249259Sdim  MipsELFStreamer(MCContext &Context, MCAsmBackend &TAB,
22249259Sdim                  raw_ostream &OS, MCCodeEmitter *Emitter,
23249259Sdim                  bool RelaxAll, bool NoExecStack)
24249259Sdim    : MCELFStreamer(SK_MipsELFStreamer, Context, TAB, OS, Emitter) {
25249259Sdim  }
26249259Sdim
27249259Sdim  ~MipsELFStreamer() {}
28249259Sdim  void emitELFHeaderFlagsCG(const MipsSubtarget &Subtarget);
29249259Sdim  void emitMipsSTOCG(const MipsSubtarget &Subtarget,
30249259Sdim                     MCSymbol *Sym,
31249259Sdim                     unsigned Val);
32249259Sdim
33249259Sdim  static bool classof(const MCStreamer *S) {
34249259Sdim    return S->getKind() == SK_MipsELFStreamer;
35249259Sdim  }
36249259Sdim};
37249259Sdim
38249259Sdim  MCELFStreamer* createMipsELFStreamer(MCContext &Context, MCAsmBackend &TAB,
39249259Sdim                                       raw_ostream &OS, MCCodeEmitter *Emitter,
40249259Sdim                                       bool RelaxAll, bool NoExecStack);
41249259Sdim}
42249259Sdim
43249259Sdim#endif /* MIPSELFSTREAMER_H_ */
44