LLVM API Documentation
00001 //===- ARMTargetStreamer.cpp - ARMTargetStreamer class --*- C++ -*---------===// 00002 // 00003 // The LLVM Compiler Infrastructure 00004 // 00005 // This file is distributed under the University of Illinois Open Source 00006 // License. See LICENSE.TXT for details. 00007 // 00008 //===----------------------------------------------------------------------===// 00009 // 00010 // This file implements the ARMTargetStreamer class. 00011 // 00012 //===----------------------------------------------------------------------===// 00013 #include "llvm/ADT/MapVector.h" 00014 #include "llvm/MC/ConstantPools.h" 00015 #include "llvm/MC/MCContext.h" 00016 #include "llvm/MC/MCExpr.h" 00017 #include "llvm/MC/MCStreamer.h" 00018 00019 using namespace llvm; 00020 // 00021 // ARMTargetStreamer Implemenation 00022 // 00023 ARMTargetStreamer::ARMTargetStreamer(MCStreamer &S) 00024 : MCTargetStreamer(S), ConstantPools(new AssemblerConstantPools()) {} 00025 00026 ARMTargetStreamer::~ARMTargetStreamer() {} 00027 00028 // The constant pool handling is shared by all ARMTargetStreamer 00029 // implementations. 00030 const MCExpr *ARMTargetStreamer::addConstantPoolEntry(const MCExpr *Expr) { 00031 return ConstantPools->addEntry(Streamer, Expr, 4); 00032 } 00033 00034 void ARMTargetStreamer::emitCurrentConstantPool() { 00035 ConstantPools->emitForCurrentSection(Streamer); 00036 } 00037 00038 // finish() - write out any non-empty assembler constant pools. 00039 void ARMTargetStreamer::finish() { ConstantPools->emitAll(Streamer); } 00040 00041 // The remaining callbacks should be handled separately by each 00042 // streamer. 00043 void ARMTargetStreamer::emitFnStart() {} 00044 void ARMTargetStreamer::emitFnEnd() {} 00045 void ARMTargetStreamer::emitCantUnwind() {} 00046 void ARMTargetStreamer::emitPersonality(const MCSymbol *Personality) {} 00047 void ARMTargetStreamer::emitPersonalityIndex(unsigned Index) {} 00048 void ARMTargetStreamer::emitHandlerData() {} 00049 void ARMTargetStreamer::emitSetFP(unsigned FpReg, unsigned SpReg, 00050 int64_t Offset) {} 00051 void ARMTargetStreamer::emitMovSP(unsigned Reg, int64_t Offset) {} 00052 void ARMTargetStreamer::emitPad(int64_t Offset) {} 00053 void ARMTargetStreamer::emitRegSave(const SmallVectorImpl<unsigned> &RegList, 00054 bool isVector) {} 00055 void ARMTargetStreamer::emitUnwindRaw(int64_t StackOffset, 00056 const SmallVectorImpl<uint8_t> &Opcodes) { 00057 } 00058 void ARMTargetStreamer::switchVendor(StringRef Vendor) {} 00059 void ARMTargetStreamer::emitAttribute(unsigned Attribute, unsigned Value) {} 00060 void ARMTargetStreamer::emitTextAttribute(unsigned Attribute, 00061 StringRef String) {} 00062 void ARMTargetStreamer::emitIntTextAttribute(unsigned Attribute, 00063 unsigned IntValue, 00064 StringRef StringValue) {} 00065 void ARMTargetStreamer::emitArch(unsigned Arch) {} 00066 void ARMTargetStreamer::emitObjectArch(unsigned Arch) {} 00067 void ARMTargetStreamer::emitFPU(unsigned FPU) {} 00068 void ARMTargetStreamer::finishAttributeSection() {} 00069 void ARMTargetStreamer::emitInst(uint32_t Inst, char Suffix) {} 00070 void 00071 ARMTargetStreamer::AnnotateTLSDescriptorSequence(const MCSymbolRefExpr *SRE) {} 00072 00073 void ARMTargetStreamer::emitThumbSet(MCSymbol *Symbol, const MCExpr *Value) {}