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 AndricSparcTargetStreamer::SparcTargetStreamer(MCStreamer &S) : MCTargetStreamer(S) {} 22*48173d35SDimitry Andric anchor()23*48173d35SDimitry Andricvoid SparcTargetStreamer::anchor() {} 24*48173d35SDimitry Andric SparcTargetAsmStreamer(MCStreamer & S,formatted_raw_ostream & OS)25*48173d35SDimitry AndricSparcTargetAsmStreamer::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 Andricvoid 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 Andricvoid 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)41SparcTargetELFStreamer::SparcTargetELFStreamer(MCStreamer &S) 42 : SparcTargetStreamer(S) {} 43 getStreamer()44MCELFStreamer &SparcTargetELFStreamer::getStreamer() { 45 return static_cast<MCELFStreamer &>(Streamer); 46 } 47