1 //===- ARMTargetStreamer.cpp - ARMTargetStreamer class --*- C++ -*---------===// 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 implements the ARMTargetStreamer class. 11 // 12 //===----------------------------------------------------------------------===// 13 #include "llvm/ADT/MapVector.h" 14 #include "llvm/MC/ConstantPools.h" 15 #include "llvm/MC/MCContext.h" 16 #include "llvm/MC/MCExpr.h" 17 #include "llvm/MC/MCStreamer.h" 18 19 using namespace llvm; 20 // 21 // ARMTargetStreamer Implemenation 22 // 23 ARMTargetStreamer::ARMTargetStreamer(MCStreamer &S) 24 : MCTargetStreamer(S), ConstantPools(new AssemblerConstantPools()) {} 25 26 ARMTargetStreamer::~ARMTargetStreamer() {} 27 28 // The constant pool handling is shared by all ARMTargetStreamer 29 // implementations. 30 const MCExpr *ARMTargetStreamer::addConstantPoolEntry(const MCExpr *Expr, SMLoc Loc) { 31 return ConstantPools->addEntry(Streamer, Expr, 4, Loc); 32 } 33 34 void ARMTargetStreamer::emitCurrentConstantPool() { 35 ConstantPools->emitForCurrentSection(Streamer); 36 } 37 38 // finish() - write out any non-empty assembler constant pools. 39 void ARMTargetStreamer::finish() { ConstantPools->emitAll(Streamer); } 40 41 // reset() - Reset any state 42 void ARMTargetStreamer::reset() {} 43 44 // The remaining callbacks should be handled separately by each 45 // streamer. 46 void ARMTargetStreamer::emitFnStart() {} 47 void ARMTargetStreamer::emitFnEnd() {} 48 void ARMTargetStreamer::emitCantUnwind() {} 49 void ARMTargetStreamer::emitPersonality(const MCSymbol *Personality) {} 50 void ARMTargetStreamer::emitPersonalityIndex(unsigned Index) {} 51 void ARMTargetStreamer::emitHandlerData() {} 52 void ARMTargetStreamer::emitSetFP(unsigned FpReg, unsigned SpReg, 53 int64_t Offset) {} 54 void ARMTargetStreamer::emitMovSP(unsigned Reg, int64_t Offset) {} 55 void ARMTargetStreamer::emitPad(int64_t Offset) {} 56 void ARMTargetStreamer::emitRegSave(const SmallVectorImpl<unsigned> &RegList, 57 bool isVector) {} 58 void ARMTargetStreamer::emitUnwindRaw(int64_t StackOffset, 59 const SmallVectorImpl<uint8_t> &Opcodes) { 60 } 61 void ARMTargetStreamer::switchVendor(StringRef Vendor) {} 62 void ARMTargetStreamer::emitAttribute(unsigned Attribute, unsigned Value) {} 63 void ARMTargetStreamer::emitTextAttribute(unsigned Attribute, 64 StringRef String) {} 65 void ARMTargetStreamer::emitIntTextAttribute(unsigned Attribute, 66 unsigned IntValue, 67 StringRef StringValue) {} 68 void ARMTargetStreamer::emitArch(unsigned Arch) {} 69 void ARMTargetStreamer::emitArchExtension(unsigned ArchExt) {} 70 void ARMTargetStreamer::emitObjectArch(unsigned Arch) {} 71 void ARMTargetStreamer::emitFPU(unsigned FPU) {} 72 void ARMTargetStreamer::finishAttributeSection() {} 73 void ARMTargetStreamer::emitInst(uint32_t Inst, char Suffix) {} 74 void 75 ARMTargetStreamer::AnnotateTLSDescriptorSequence(const MCSymbolRefExpr *SRE) {} 76 77 void ARMTargetStreamer::emitThumbSet(MCSymbol *Symbol, const MCExpr *Value) {} 78