1//===-- SparcTargetStreamer.h - Sparc Target Streamer ----------*- C++ -*--===// 2//
|
3// The LLVM Compiler Infrastructure
|
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
6//
|
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
|
7//===----------------------------------------------------------------------===// 8 9#ifndef LLVM_LIB_TARGET_SPARC_MCTARGETDESC_SPARCTARGETSTREAMER_H 10#define LLVM_LIB_TARGET_SPARC_MCTARGETDESC_SPARCTARGETSTREAMER_H 11 12#include "llvm/MC/MCELFStreamer.h" 13#include "llvm/MC/MCStreamer.h" 14 15namespace llvm { 16class SparcTargetStreamer : public MCTargetStreamer { 17 virtual void anchor(); 18 19public: 20 SparcTargetStreamer(MCStreamer &S); 21 /// Emit ".register <reg>, #ignore". 22 virtual void emitSparcRegisterIgnore(unsigned reg) = 0; 23 /// Emit ".register <reg>, #scratch". 24 virtual void emitSparcRegisterScratch(unsigned reg) = 0; 25}; 26 27// This part is for ascii assembly output 28class SparcTargetAsmStreamer : public SparcTargetStreamer { 29 formatted_raw_ostream &OS; 30 31public: 32 SparcTargetAsmStreamer(MCStreamer &S, formatted_raw_ostream &OS); 33 void emitSparcRegisterIgnore(unsigned reg) override; 34 void emitSparcRegisterScratch(unsigned reg) override; 35}; 36 37// This part is for ELF object output 38class SparcTargetELFStreamer : public SparcTargetStreamer { 39public: 40 SparcTargetELFStreamer(MCStreamer &S); 41 MCELFStreamer &getStreamer(); 42 void emitSparcRegisterIgnore(unsigned reg) override {} 43 void emitSparcRegisterScratch(unsigned reg) override {} 44}; 45} // end namespace llvm 46 47#endif
|