1 //===-- VETargetStreamer.h - VE 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_VE_VETARGETSTREAMER_H
10 #define LLVM_LIB_TARGET_VE_VETARGETSTREAMER_H
12 #include "llvm/MC/MCELFStreamer.h"
13 #include "llvm/MC/MCStreamer.h"
14 #include "llvm/Support/FormattedStream.h"
17 class VETargetStreamer
: public MCTargetStreamer
{
18 virtual void anchor();
21 VETargetStreamer(MCStreamer
&S
);
22 /// Emit ".register <reg>, #ignore".
23 virtual void emitVERegisterIgnore(unsigned reg
){};
24 /// Emit ".register <reg>, #scratch".
25 virtual void emitVERegisterScratch(unsigned reg
){};
28 // This part is for ascii assembly output
29 class VETargetAsmStreamer
: public VETargetStreamer
{
30 formatted_raw_ostream
&OS
;
33 VETargetAsmStreamer(MCStreamer
&S
, formatted_raw_ostream
&OS
);
34 void emitVERegisterIgnore(unsigned reg
) override
;
35 void emitVERegisterScratch(unsigned reg
) override
;
38 // This part is for ELF object output
39 class VETargetELFStreamer
: public VETargetStreamer
{
41 VETargetELFStreamer(MCStreamer
&S
);
42 MCELFStreamer
&getStreamer();
43 void emitVERegisterIgnore(unsigned reg
) override
{}
44 void emitVERegisterScratch(unsigned reg
) override
{}