MipsTargetStreamer.h revision 2a4888b347ec1e7f69dcf2dcad0d7fd7baef50c5
1badaffc570baec00166b0ad3bdc96995751a7e13ricow@chromium.org//===-- MipsTargetStreamer.h - Mips Target Streamer ------------*- C++ -*--===//
2badaffc570baec00166b0ad3bdc96995751a7e13ricow@chromium.org//
3badaffc570baec00166b0ad3bdc96995751a7e13ricow@chromium.org//                     The LLVM Compiler Infrastructure
4badaffc570baec00166b0ad3bdc96995751a7e13ricow@chromium.org//
5badaffc570baec00166b0ad3bdc96995751a7e13ricow@chromium.org// This file is distributed under the University of Illinois Open Source
6badaffc570baec00166b0ad3bdc96995751a7e13ricow@chromium.org// License. See LICENSE.TXT for details.
7badaffc570baec00166b0ad3bdc96995751a7e13ricow@chromium.org//
8badaffc570baec00166b0ad3bdc96995751a7e13ricow@chromium.org//===----------------------------------------------------------------------===//
9badaffc570baec00166b0ad3bdc96995751a7e13ricow@chromium.org
10badaffc570baec00166b0ad3bdc96995751a7e13ricow@chromium.org#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
27public:
28  MipsTargetAsmStreamer(formatted_raw_ostream &OS);
29  virtual void emitMipsHackELFFlags(unsigned Flags);
30  virtual void emitSymSTO(MCSymbol *Sym, unsigned Val);
31};
32
33// This part is for ELF object output
34class MipsTargetELFStreamer : public MipsTargetStreamer {
35public:
36  MCELFStreamer &getStreamer();
37  MipsTargetELFStreamer();
38  virtual void emitMipsHackELFFlags(unsigned Flags);
39  virtual void emitSymSTO(MCSymbol *Sym, unsigned Val);
40};
41}
42
43#endif
44