blob: 0037f3f58c1606fbca3849ddd56260e64395f97c [file] [log] [blame]
Rafael Espindolaa17151a2013-10-08 13:08:17 +00001//===-- 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
Jack Carter86ac5c12013-11-18 23:55:27 +000013#include "llvm/MC/MCELFStreamer.h"
Rafael Espindolaa17151a2013-10-08 13:08:17 +000014#include "llvm/MC/MCStreamer.h"
15
16namespace llvm {
17class MipsTargetStreamer : public MCTargetStreamer {
Jack Carter86ac5c12013-11-18 23:55:27 +000018 virtual void anchor();
19
Rafael Espindolaa17151a2013-10-08 13:08:17 +000020public:
21 virtual void emitMipsHackELFFlags(unsigned Flags) = 0;
22 virtual void emitMipsHackSTOCG(MCSymbol *Sym, unsigned Val) = 0;
23};
Jack Carter86ac5c12013-11-18 23:55:27 +000024
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};
Rafael Espindolaa17151a2013-10-08 13:08:17 +000043}
44
45#endif