1356843Sdim//===-- VETargetStreamer.cpp - VE Target Streamer Methods -----------------===//
2356843Sdim//
3356843Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4356843Sdim// See https://llvm.org/LICENSE.txt for license information.
5356843Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6356843Sdim//
7356843Sdim//===----------------------------------------------------------------------===//
8356843Sdim//
9356843Sdim// This file provides VE specific target streamer methods.
10356843Sdim//
11356843Sdim//===----------------------------------------------------------------------===//
12356843Sdim
13356843Sdim#include "VETargetStreamer.h"
14356843Sdim#include "InstPrinter/VEInstPrinter.h"
15356843Sdim#include "llvm/Support/FormattedStream.h"
16356843Sdim
17356843Sdimusing namespace llvm;
18356843Sdim
19356843Sdim// pin vtable to this file
20356843SdimVETargetStreamer::VETargetStreamer(MCStreamer &S) : MCTargetStreamer(S) {}
21356843Sdim
22356843Sdimvoid VETargetStreamer::anchor() {}
23356843Sdim
24356843SdimVETargetAsmStreamer::VETargetAsmStreamer(MCStreamer &S,
25356843Sdim                                         formatted_raw_ostream &OS)
26356843Sdim    : VETargetStreamer(S), OS(OS) {}
27356843Sdim
28356843Sdimvoid VETargetAsmStreamer::emitVERegisterIgnore(unsigned reg) {
29356843Sdim  OS << "\t.register "
30356843Sdim     << "%" << StringRef(VEInstPrinter::getRegisterName(reg)).lower()
31356843Sdim     << ", #ignore\n";
32356843Sdim}
33356843Sdim
34356843Sdimvoid VETargetAsmStreamer::emitVERegisterScratch(unsigned reg) {
35356843Sdim  OS << "\t.register "
36356843Sdim     << "%" << StringRef(VEInstPrinter::getRegisterName(reg)).lower()
37356843Sdim     << ", #scratch\n";
38356843Sdim}
39356843Sdim
40356843SdimVETargetELFStreamer::VETargetELFStreamer(MCStreamer &S) : VETargetStreamer(S) {}
41356843Sdim
42356843SdimMCELFStreamer &VETargetELFStreamer::getStreamer() {
43356843Sdim  return static_cast<MCELFStreamer &>(Streamer);
44356843Sdim}
45