1*48173d35SDimitry Andric //===-- SparcTargetStreamer.cpp - Sparc Target Streamer Methods -----------===//
2*48173d35SDimitry Andric //
3*48173d35SDimitry Andric //                     The LLVM Compiler Infrastructure
4*48173d35SDimitry Andric //
5*48173d35SDimitry Andric // This file is distributed under the University of Illinois Open Source
6*48173d35SDimitry Andric // License. See LICENSE.TXT for details.
7*48173d35SDimitry Andric //
8*48173d35SDimitry Andric //===----------------------------------------------------------------------===//
9*48173d35SDimitry Andric //
10*48173d35SDimitry Andric // This file provides Sparc specific target streamer methods.
11*48173d35SDimitry Andric //
12*48173d35SDimitry Andric //===----------------------------------------------------------------------===//
13*48173d35SDimitry Andric 
14*48173d35SDimitry Andric #include "SparcTargetStreamer.h"
15*48173d35SDimitry Andric #include "InstPrinter/SparcInstPrinter.h"
16*48173d35SDimitry Andric #include "llvm/Support/FormattedStream.h"
17*48173d35SDimitry Andric 
18*48173d35SDimitry Andric using namespace llvm;
19*48173d35SDimitry Andric 
20*48173d35SDimitry Andric // pin vtable to this file
SparcTargetStreamer(MCStreamer & S)21*48173d35SDimitry Andric SparcTargetStreamer::SparcTargetStreamer(MCStreamer &S) : MCTargetStreamer(S) {}
22*48173d35SDimitry Andric 
anchor()23*48173d35SDimitry Andric void SparcTargetStreamer::anchor() {}
24*48173d35SDimitry Andric 
SparcTargetAsmStreamer(MCStreamer & S,formatted_raw_ostream & OS)25*48173d35SDimitry Andric SparcTargetAsmStreamer::SparcTargetAsmStreamer(MCStreamer &S,
26*48173d35SDimitry Andric                                                formatted_raw_ostream &OS)
27*48173d35SDimitry Andric     : SparcTargetStreamer(S), OS(OS) {}
28*48173d35SDimitry Andric 
emitSparcRegisterIgnore(unsigned reg)29*48173d35SDimitry Andric void SparcTargetAsmStreamer::emitSparcRegisterIgnore(unsigned reg) {
30*48173d35SDimitry Andric   OS << "\t.register "
31*48173d35SDimitry Andric      << "%" << StringRef(SparcInstPrinter::getRegisterName(reg)).lower()
32*48173d35SDimitry Andric      << ", #ignore\n";
33*48173d35SDimitry Andric }
34*48173d35SDimitry Andric 
emitSparcRegisterScratch(unsigned reg)35*48173d35SDimitry Andric void SparcTargetAsmStreamer::emitSparcRegisterScratch(unsigned reg) {
36*48173d35SDimitry Andric   OS << "\t.register "
37*48173d35SDimitry Andric      << "%" << StringRef(SparcInstPrinter::getRegisterName(reg)).lower()
38*48173d35SDimitry Andric      << ", #scratch\n";
39*48173d35SDimitry Andric }
40*48173d35SDimitry Andric 
SparcTargetELFStreamer(MCStreamer & S)41 SparcTargetELFStreamer::SparcTargetELFStreamer(MCStreamer &S)
42     : SparcTargetStreamer(S) {}
43 
getStreamer()44 MCELFStreamer &SparcTargetELFStreamer::getStreamer() {
45   return static_cast<MCELFStreamer &>(Streamer);
46 }
47