1139804Simp//===-- MipsTargetStreamer.h - Mips Target Streamer ------------*- C++ -*--===// 21541Srgrimes// 31541Srgrimes// The LLVM Compiler Infrastructure 41541Srgrimes// 51541Srgrimes// This file is distributed under the University of Illinois Open Source 61541Srgrimes// License. See LICENSE.TXT for details. 71541Srgrimes// 81541Srgrimes//===----------------------------------------------------------------------===// 91541Srgrimes 101541Srgrimes#ifndef MIPSTARGETSTREAMER_H 111541Srgrimes#define MIPSTARGETSTREAMER_H 121541Srgrimes 131541Srgrimes#include "llvm/MC/MCELFStreamer.h" 141541Srgrimes#include "llvm/MC/MCStreamer.h" 151541Srgrimes 161541Srgrimesnamespace llvm { 171541Srgrimesclass MipsTargetStreamer : public MCTargetStreamer { 181541Srgrimes virtual void anchor(); 191541Srgrimes 201541Srgrimespublic: 211541Srgrimes virtual void emitMipsHackELFFlags(unsigned Flags) = 0; 221541Srgrimes virtual void emitMipsHackSTOCG(MCSymbol *Sym, unsigned Val) = 0; 231541Srgrimes}; 241541Srgrimes 251541Srgrimes// This part is for ascii assembly output 261541Srgrimesclass MipsTargetAsmStreamer : public MipsTargetStreamer { 271541Srgrimes formatted_raw_ostream &OS; 281541Srgrimes 291541Srgrimespublic: 301541Srgrimes MipsTargetAsmStreamer(formatted_raw_ostream &OS); 311541Srgrimes virtual void emitMipsHackELFFlags(unsigned Flags); 321541Srgrimes virtual void emitMipsHackSTOCG(MCSymbol *Sym, unsigned Val); 331541Srgrimes}; 341541Srgrimes 351541Srgrimes// This part is for ELF object output 36116182Sobrienclass MipsTargetELFStreamer : public MipsTargetStreamer { 37116182Sobrienpublic: 38116182Sobrien MCELFStreamer &getStreamer(); 391541Srgrimes virtual void emitMipsHackELFFlags(unsigned Flags); 401541Srgrimes virtual void emitMipsHackSTOCG(MCSymbol *Sym, unsigned Val); 4112577Sbde}; 421541Srgrimes} 431541Srgrimes 4424206Sbde#endif 4524206Sbde