MipsTargetStreamer.h revision 4c1625b3cb23745dba38e205b20e7b63954d8067
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();
19
20public:
21  virtual void emitMipsHackELFFlags(unsigned Flags) = 0;
22  virtual void emitMipsHackSTOCG(MCSymbol *Sym, unsigned Val) = 0;
23};
24
25// This part is for ascii assembly output
26class MipsTargetAsmStreamer : public MipsTargetStreamer {
27  formatted_raw_ostream &OS;
28
29public:
30  MipsTargetAsmStreamer(formatted_raw_ostream &OS);
31  virtual void emitMipsHackELFFlags(unsigned Flags);
32  virtual void emitMipsHackSTOCG(MCSymbol *Sym, unsigned Val);
33};
34
35// This part is for ELF object output
36class MipsTargetELFStreamer : public MipsTargetStreamer {
37public:
38  MCELFStreamer &getStreamer();
39  MipsTargetELFStreamer();
40  virtual void emitMipsHackELFFlags(unsigned Flags);
41  virtual void emitMipsHackSTOCG(MCSymbol *Sym, unsigned Val);
42};
43}
44
45#endif
46