blob: 12ea3e4f9a389c57dd00082acb90466a3172f262 [file] [log] [blame]
Rafael Espindola320296a2013-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 Carter4c1625b2013-11-18 23:55:27 +000013#include "llvm/MC/MCELFStreamer.h"
Rafael Espindola320296a2013-10-08 13:08:17 +000014#include "llvm/MC/MCStreamer.h"
15
16namespace llvm {
17class MipsTargetStreamer : public MCTargetStreamer {
Jack Carter4c1625b2013-11-18 23:55:27 +000018 virtual void anchor();
Rafael Espindola320296a2013-10-08 13:08:17 +000019public:
20 virtual void emitMipsHackELFFlags(unsigned Flags) = 0;
Jack Cartere53969b2013-11-19 01:25:18 +000021 virtual void emitSymSTO(MCSymbol *Sym, unsigned Val) = 0;
Rafael Espindola320296a2013-10-08 13:08:17 +000022};
Jack Carter4c1625b2013-11-18 23:55:27 +000023
24// This part is for ascii assembly output
25class MipsTargetAsmStreamer : public MipsTargetStreamer {
Jack Carter4c1625b2013-11-18 23:55:27 +000026public:
Eric Christopher15602d72013-11-19 01:52:38 +000027 MipsTargetAsmStreamer();
Jack Carter4c1625b2013-11-18 23:55:27 +000028 virtual void emitMipsHackELFFlags(unsigned Flags);
Jack Cartere53969b2013-11-19 01:25:18 +000029 virtual void emitSymSTO(MCSymbol *Sym, unsigned Val);
Jack Carter4c1625b2013-11-18 23:55:27 +000030};
31
32// This part is for ELF object output
33class MipsTargetELFStreamer : public MipsTargetStreamer {
34public:
35 MCELFStreamer &getStreamer();
36 MipsTargetELFStreamer();
37 virtual void emitMipsHackELFFlags(unsigned Flags);
Jack Cartere53969b2013-11-19 01:25:18 +000038 virtual void emitSymSTO(MCSymbol *Sym, unsigned Val);
Jack Carter4c1625b2013-11-18 23:55:27 +000039};
Rafael Espindola320296a2013-10-08 13:08:17 +000040}
41
42#endif