Path: blob/main/contrib/llvm-project/llvm/lib/Target/Sparc/MCTargetDesc/SparcTargetStreamer.h
35294 views
//===-- SparcTargetStreamer.h - Sparc Target Streamer ----------*- C++ -*--===//1//2// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.3// See https://llvm.org/LICENSE.txt for license information.4// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception5//6//===----------------------------------------------------------------------===//78#ifndef LLVM_LIB_TARGET_SPARC_MCTARGETDESC_SPARCTARGETSTREAMER_H9#define LLVM_LIB_TARGET_SPARC_MCTARGETDESC_SPARCTARGETSTREAMER_H1011#include "llvm/MC/MCELFStreamer.h"12#include "llvm/MC/MCStreamer.h"1314namespace llvm {1516class formatted_raw_ostream;1718class SparcTargetStreamer : public MCTargetStreamer {19virtual void anchor();2021public:22SparcTargetStreamer(MCStreamer &S);23/// Emit ".register <reg>, #ignore".24virtual void emitSparcRegisterIgnore(unsigned reg){};25/// Emit ".register <reg>, #scratch".26virtual void emitSparcRegisterScratch(unsigned reg){};27};2829// This part is for ascii assembly output30class SparcTargetAsmStreamer : public SparcTargetStreamer {31formatted_raw_ostream &OS;3233public:34SparcTargetAsmStreamer(MCStreamer &S, formatted_raw_ostream &OS);35void emitSparcRegisterIgnore(unsigned reg) override;36void emitSparcRegisterScratch(unsigned reg) override;37};3839// This part is for ELF object output40class SparcTargetELFStreamer : public SparcTargetStreamer {41public:42SparcTargetELFStreamer(MCStreamer &S);43MCELFStreamer &getStreamer();44void emitSparcRegisterIgnore(unsigned reg) override {}45void emitSparcRegisterScratch(unsigned reg) override {}46};47} // end namespace llvm4849#endif505152