49 lines · c
1//===-- VETargetStreamer.h - VE 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-exception6//7//===----------------------------------------------------------------------===//8 9#ifndef LLVM_LIB_TARGET_VE_VETARGETSTREAMER_H10#define LLVM_LIB_TARGET_VE_VETARGETSTREAMER_H11 12#include "llvm/MC/MCELFStreamer.h"13#include "llvm/MC/MCStreamer.h"14#include "llvm/Support/FormattedStream.h"15 16namespace llvm {17class VETargetStreamer : public MCTargetStreamer {18 virtual void anchor();19 20public: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){};26};27 28// This part is for ascii assembly output29class VETargetAsmStreamer : public VETargetStreamer {30 formatted_raw_ostream &OS;31 32public:33 VETargetAsmStreamer(MCStreamer &S, formatted_raw_ostream &OS);34 void emitVERegisterIgnore(unsigned reg) override;35 void emitVERegisterScratch(unsigned reg) override;36};37 38// This part is for ELF object output39class VETargetELFStreamer : public VETargetStreamer {40public:41 VETargetELFStreamer(MCStreamer &S);42 MCELFStreamer &getStreamer();43 void emitVERegisterIgnore(unsigned reg) override {}44 void emitVERegisterScratch(unsigned reg) override {}45};46} // namespace llvm47 48#endif49