1 //===-- SparcTargetStreamer.h - Sparc Target Streamer ----------*- C++ -*--===//
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
7 //===----------------------------------------------------------------------===//
9 #ifndef LLVM_LIB_TARGET_SPARC_MCTARGETDESC_SPARCTARGETSTREAMER_H
10 #define LLVM_LIB_TARGET_SPARC_MCTARGETDESC_SPARCTARGETSTREAMER_H
12 #include "llvm/MC/MCELFStreamer.h"
13 #include "llvm/MC/MCStreamer.h"
16 class SparcTargetStreamer
: public MCTargetStreamer
{
17 virtual void anchor();
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;
27 // This part is for ascii assembly output
28 class SparcTargetAsmStreamer
: public SparcTargetStreamer
{
29 formatted_raw_ostream
&OS
;
32 SparcTargetAsmStreamer(MCStreamer
&S
, formatted_raw_ostream
&OS
);
33 void emitSparcRegisterIgnore(unsigned reg
) override
;
34 void emitSparcRegisterScratch(unsigned reg
) override
;
37 // This part is for ELF object output
38 class SparcTargetELFStreamer
: public SparcTargetStreamer
{
40 SparcTargetELFStreamer(MCStreamer
&S
);
41 MCELFStreamer
&getStreamer();
42 void emitSparcRegisterIgnore(unsigned reg
) override
{}
43 void emitSparcRegisterScratch(unsigned reg
) override
{}
45 } // end namespace llvm