MipsTargetStreamer.h revision e53969b4758274ee833ce3acef37134bcf6554ea
1//===-- MipsTargetStreamer.h - Mips Target Streamer ------------*- C++ -*--===//
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#ifndef MIPSTARGETSTREAMER_H
11#define MIPSTARGETSTREAMER_H
12
13#include "llvm/MC/MCELFStreamer.h"
14#include "llvm/MC/MCStreamer.h"
15
16namespace llvm {
17class MipsTargetStreamer : public MCTargetStreamer {
18  virtual void anchor();
19public:
20  virtual void emitMipsHackELFFlags(unsigned Flags) = 0;
21  virtual void emitSymSTO(MCSymbol *Sym, unsigned Val) = 0;
22};
23
24// This part is for ascii assembly output
25class MipsTargetAsmStreamer : public MipsTargetStreamer {
26  formatted_raw_ostream &OS;
27
28public:
29  MipsTargetAsmStreamer(formatted_raw_ostream &OS);
30  virtual void emitMipsHackELFFlags(unsigned Flags);
31  virtual void emitSymSTO(MCSymbol *Sym, unsigned Val);
32};
33
34// This part is for ELF object output
35class MipsTargetELFStreamer : public MipsTargetStreamer {
36public:
37  MCELFStreamer &getStreamer();
38  MipsTargetELFStreamer();
39  virtual void emitMipsHackELFFlags(unsigned Flags);
40  virtual void emitSymSTO(MCSymbol *Sym, unsigned Val);
41};
42}
43
44#endif
45