[ARM] VQADD instructions
[llvm-complete.git] / lib / Target / Sparc / MCTargetDesc / SparcTargetStreamer.h
blob9f729a6c2cf4304617391f5f2788384c655a119c
1 //===-- SparcTargetStreamer.h - Sparc Target Streamer ----------*- C++ -*--===//
2 //
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 //
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"
15 namespace llvm {
16 class SparcTargetStreamer : public MCTargetStreamer {
17 virtual void anchor();
19 public:
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;
31 public:
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 {
39 public:
40 SparcTargetELFStreamer(MCStreamer &S);
41 MCELFStreamer &getStreamer();
42 void emitSparcRegisterIgnore(unsigned reg) override {}
43 void emitSparcRegisterScratch(unsigned reg) override {}
45 } // end namespace llvm
47 #endif