blob: 8acd7aff6bca660f8401cbfdcbcf5bb7fb557278 [file] [log] [blame]
David Peixottob9b73622014-02-04 17:22:40 +00001//===- 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 Zhao8c899732014-06-18 18:17:25 +000014#include "llvm/MC/ConstantPools.h"
David Peixottob9b73622014-02-04 17:22:40 +000015#include "llvm/MC/MCContext.h"
Chandler Carruth442f7842014-03-04 10:07:28 +000016#include "llvm/MC/MCExpr.h"
17#include "llvm/MC/MCStreamer.h"
David Peixottob9b73622014-02-04 17:22:40 +000018
19using namespace llvm;
David Peixottob9b73622014-02-04 17:22:40 +000020//
21// ARMTargetStreamer Implemenation
22//
23ARMTargetStreamer::ARMTargetStreamer(MCStreamer &S)
24 : MCTargetStreamer(S), ConstantPools(new AssemblerConstantPools()) {}
25
26ARMTargetStreamer::~ARMTargetStreamer() {}
27
28// The constant pool handling is shared by all ARMTargetStreamer
29// implementations.
30const MCExpr *ARMTargetStreamer::addConstantPoolEntry(const MCExpr *Expr) {
David Peixottoae5ba762014-07-18 16:05:14 +000031 return ConstantPools->addEntry(Streamer, Expr, 4);
David Peixottob9b73622014-02-04 17:22:40 +000032}
33
34void ARMTargetStreamer::emitCurrentConstantPool() {
35 ConstantPools->emitForCurrentSection(Streamer);
36}
37
38// finish() - write out any non-empty assembler constant pools.
39void ARMTargetStreamer::finish() { ConstantPools->emitAll(Streamer); }
40
41// The remaining callbacks should be handled separately by each
42// streamer.
Rafael Espindola1fc003e2014-06-20 13:11:28 +000043void ARMTargetStreamer::emitFnStart() {}
44void ARMTargetStreamer::emitFnEnd() {}
45void ARMTargetStreamer::emitCantUnwind() {}
46void ARMTargetStreamer::emitPersonality(const MCSymbol *Personality) {}
47void ARMTargetStreamer::emitPersonalityIndex(unsigned Index) {}
48void ARMTargetStreamer::emitHandlerData() {}
David Peixottob9b73622014-02-04 17:22:40 +000049void ARMTargetStreamer::emitSetFP(unsigned FpReg, unsigned SpReg,
Rafael Espindola1fc003e2014-06-20 13:11:28 +000050 int64_t Offset) {}
51void ARMTargetStreamer::emitMovSP(unsigned Reg, int64_t Offset) {}
52void ARMTargetStreamer::emitPad(int64_t Offset) {}
53void ARMTargetStreamer::emitRegSave(const SmallVectorImpl<unsigned> &RegList,
54 bool isVector) {}
55void ARMTargetStreamer::emitUnwindRaw(int64_t StackOffset,
56 const SmallVectorImpl<uint8_t> &Opcodes) {
David Peixottob9b73622014-02-04 17:22:40 +000057}
Rafael Espindola1fc003e2014-06-20 13:11:28 +000058void ARMTargetStreamer::switchVendor(StringRef Vendor) {}
59void ARMTargetStreamer::emitAttribute(unsigned Attribute, unsigned Value) {}
David Peixottob9b73622014-02-04 17:22:40 +000060void ARMTargetStreamer::emitTextAttribute(unsigned Attribute,
Rafael Espindola1fc003e2014-06-20 13:11:28 +000061 StringRef String) {}
David Peixottob9b73622014-02-04 17:22:40 +000062void ARMTargetStreamer::emitIntTextAttribute(unsigned Attribute,
Rafael Espindola1fc003e2014-06-20 13:11:28 +000063 unsigned IntValue,
64 StringRef StringValue) {}
65void ARMTargetStreamer::emitArch(unsigned Arch) {}
66void ARMTargetStreamer::emitObjectArch(unsigned Arch) {}
67void ARMTargetStreamer::emitFPU(unsigned FPU) {}
68void ARMTargetStreamer::finishAttributeSection() {}
69void ARMTargetStreamer::emitInst(uint32_t Inst, char Suffix) {}
70void
71ARMTargetStreamer::AnnotateTLSDescriptorSequence(const MCSymbolRefExpr *SRE) {}
Rafael Espindola466d6632014-04-27 20:23:58 +000072
Rafael Espindola1fc003e2014-06-20 13:11:28 +000073void ARMTargetStreamer::emitThumbSet(MCSymbol *Symbol, const MCExpr *Value) {}