David Peixotto | b9b7362 | 2014-02-04 17:22:40 +0000 | [diff] [blame] | 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" |
Weiming Zhao | 8c89973 | 2014-06-18 18:17:25 +0000 | [diff] [blame] | 14 | #include "llvm/MC/ConstantPools.h" |
David Peixotto | b9b7362 | 2014-02-04 17:22:40 +0000 | [diff] [blame] | 15 | #include "llvm/MC/MCContext.h" |
Chandler Carruth | 442f784 | 2014-03-04 10:07:28 +0000 | [diff] [blame] | 16 | #include "llvm/MC/MCExpr.h" |
| 17 | #include "llvm/MC/MCStreamer.h" |
David Peixotto | b9b7362 | 2014-02-04 17:22:40 +0000 | [diff] [blame] | 18 | |
| 19 | using namespace llvm; |
David Peixotto | b9b7362 | 2014-02-04 17:22:40 +0000 | [diff] [blame] | 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) { |
David Peixotto | ae5ba76 | 2014-07-18 16:05:14 +0000 | [diff] [blame] | 31 | return ConstantPools->addEntry(Streamer, Expr, 4); |
David Peixotto | b9b7362 | 2014-02-04 17:22:40 +0000 | [diff] [blame] | 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 | // The remaining callbacks should be handled separately by each |
| 42 | // streamer. |
Rafael Espindola | 1fc003e | 2014-06-20 13:11:28 +0000 | [diff] [blame] | 43 | void ARMTargetStreamer::emitFnStart() {} |
| 44 | void ARMTargetStreamer::emitFnEnd() {} |
| 45 | void ARMTargetStreamer::emitCantUnwind() {} |
| 46 | void ARMTargetStreamer::emitPersonality(const MCSymbol *Personality) {} |
| 47 | void ARMTargetStreamer::emitPersonalityIndex(unsigned Index) {} |
| 48 | void ARMTargetStreamer::emitHandlerData() {} |
David Peixotto | b9b7362 | 2014-02-04 17:22:40 +0000 | [diff] [blame] | 49 | void ARMTargetStreamer::emitSetFP(unsigned FpReg, unsigned SpReg, |
Rafael Espindola | 1fc003e | 2014-06-20 13:11:28 +0000 | [diff] [blame] | 50 | int64_t Offset) {} |
| 51 | void ARMTargetStreamer::emitMovSP(unsigned Reg, int64_t Offset) {} |
| 52 | void ARMTargetStreamer::emitPad(int64_t Offset) {} |
| 53 | void ARMTargetStreamer::emitRegSave(const SmallVectorImpl<unsigned> &RegList, |
| 54 | bool isVector) {} |
| 55 | void ARMTargetStreamer::emitUnwindRaw(int64_t StackOffset, |
| 56 | const SmallVectorImpl<uint8_t> &Opcodes) { |
David Peixotto | b9b7362 | 2014-02-04 17:22:40 +0000 | [diff] [blame] | 57 | } |
Rafael Espindola | 1fc003e | 2014-06-20 13:11:28 +0000 | [diff] [blame] | 58 | void ARMTargetStreamer::switchVendor(StringRef Vendor) {} |
| 59 | void ARMTargetStreamer::emitAttribute(unsigned Attribute, unsigned Value) {} |
David Peixotto | b9b7362 | 2014-02-04 17:22:40 +0000 | [diff] [blame] | 60 | void ARMTargetStreamer::emitTextAttribute(unsigned Attribute, |
Rafael Espindola | 1fc003e | 2014-06-20 13:11:28 +0000 | [diff] [blame] | 61 | StringRef String) {} |
David Peixotto | b9b7362 | 2014-02-04 17:22:40 +0000 | [diff] [blame] | 62 | void ARMTargetStreamer::emitIntTextAttribute(unsigned Attribute, |
Rafael Espindola | 1fc003e | 2014-06-20 13:11:28 +0000 | [diff] [blame] | 63 | unsigned IntValue, |
| 64 | StringRef StringValue) {} |
| 65 | void ARMTargetStreamer::emitArch(unsigned Arch) {} |
Sumanth Gundapaneni | a9049ea | 2015-02-26 18:07:35 +0000 | [diff] [blame^] | 66 | void ARMTargetStreamer::emitArchExtension(unsigned ArchExt) {} |
Rafael Espindola | 1fc003e | 2014-06-20 13:11:28 +0000 | [diff] [blame] | 67 | void ARMTargetStreamer::emitObjectArch(unsigned Arch) {} |
| 68 | void ARMTargetStreamer::emitFPU(unsigned FPU) {} |
| 69 | void ARMTargetStreamer::finishAttributeSection() {} |
| 70 | void ARMTargetStreamer::emitInst(uint32_t Inst, char Suffix) {} |
| 71 | void |
| 72 | ARMTargetStreamer::AnnotateTLSDescriptorSequence(const MCSymbolRefExpr *SRE) {} |
Rafael Espindola | 466d663 | 2014-04-27 20:23:58 +0000 | [diff] [blame] | 73 | |
Rafael Espindola | 1fc003e | 2014-06-20 13:11:28 +0000 | [diff] [blame] | 74 | void ARMTargetStreamer::emitThumbSet(MCSymbol *Symbol, const MCExpr *Value) {} |