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