MipsTargetStreamer.cpp revision e53969b4758274ee833ce3acef37134bcf6554ea
1//===-- MipsTargetStreamer.cpp - Mips Target Streamer Methods -------------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9// 10// This file provides Mips specific target streamer methods. 11// 12//===----------------------------------------------------------------------===// 13 14#include "MipsTargetStreamer.h" 15#include "llvm/MC/MCELF.h" 16#include "llvm/MC/MCSymbol.h" 17#include "llvm/Support/CommandLine.h" 18#include "llvm/Support/ErrorHandling.h" 19#include "llvm/Support/FormattedStream.h" 20 21using namespace llvm; 22 23// pin vtable to this file 24void MipsTargetStreamer::anchor() {} 25 26MipsTargetAsmStreamer::MipsTargetAsmStreamer(formatted_raw_ostream &OS) 27 : OS(OS) {} 28 29void MipsTargetAsmStreamer::emitMipsHackELFFlags(unsigned Flags) { 30 return; 31 32} 33void MipsTargetAsmStreamer::emitSymSTO(MCSymbol *Sym, unsigned Val) { 34 return; 35 36} 37 38MipsTargetELFStreamer::MipsTargetELFStreamer() {} 39 40MCELFStreamer &MipsTargetELFStreamer::getStreamer() { 41 return static_cast<MCELFStreamer &>(*Streamer); 42} 43 44void MipsTargetELFStreamer::emitMipsHackELFFlags(unsigned Flags) { 45 MCAssembler &MCA = getStreamer().getAssembler(); 46 MCA.setELFHeaderEFlags(Flags); 47} 48 49// Set a symbol's STO flags 50void MipsTargetELFStreamer::emitSymSTO(MCSymbol *Sym, unsigned Val) { 51 MCSymbolData &Data = getStreamer().getOrCreateSymbolData(Sym); 52 // The "other" values are stored in the last 6 bits of the second byte 53 // The traditional defines for STO values assume the full byte and thus 54 // the shift to pack it. 55 MCELF::setOther(Data, Val >> 2); 56} 57