blob: 9f729a6c2cf4304617391f5f2788384c655a119c [file] [log] [blame]
Venkatraman Govindarajubf683fd2013-12-26 01:49:59 +00001//===-- SparcTargetStreamer.h - Sparc Target Streamer ----------*- C++ -*--===//
2//
Chandler Carruth2946cd72019-01-19 08:50:56 +00003// 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
Venkatraman Govindarajubf683fd2013-12-26 01:49:59 +00006//
7//===----------------------------------------------------------------------===//
8
Benjamin Kramer07d106d2018-09-10 13:55:38 +00009#ifndef LLVM_LIB_TARGET_SPARC_MCTARGETDESC_SPARCTARGETSTREAMER_H
10#define LLVM_LIB_TARGET_SPARC_MCTARGETDESC_SPARCTARGETSTREAMER_H
Venkatraman Govindarajubf683fd2013-12-26 01:49:59 +000011
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:
Rafael Espindola24ea09e2014-01-26 06:06:37 +000020 SparcTargetStreamer(MCStreamer &S);
Venkatraman Govindarajubf683fd2013-12-26 01:49:59 +000021 /// 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:
Rafael Espindola24ea09e2014-01-26 06:06:37 +000032 SparcTargetAsmStreamer(MCStreamer &S, formatted_raw_ostream &OS);
Craig Topperb0c941b2014-04-29 07:57:13 +000033 void emitSparcRegisterIgnore(unsigned reg) override;
34 void emitSparcRegisterScratch(unsigned reg) override;
Venkatraman Govindarajubf683fd2013-12-26 01:49:59 +000035};
36
37// This part is for ELF object output
38class SparcTargetELFStreamer : public SparcTargetStreamer {
39public:
Rafael Espindola24ea09e2014-01-26 06:06:37 +000040 SparcTargetELFStreamer(MCStreamer &S);
Venkatraman Govindarajubf683fd2013-12-26 01:49:59 +000041 MCELFStreamer &getStreamer();
Craig Topperb0c941b2014-04-29 07:57:13 +000042 void emitSparcRegisterIgnore(unsigned reg) override {}
43 void emitSparcRegisterScratch(unsigned reg) override {}
Venkatraman Govindarajubf683fd2013-12-26 01:49:59 +000044};
45} // end namespace llvm
46
47#endif