blob: c0d10c896354bf56d2aa7cc222f10e215605ec36 [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.
Oliver Stannard9327a752015-11-16 16:25:47 +000030const MCExpr *ARMTargetStreamer::addConstantPoolEntry(const MCExpr *Expr, SMLoc Loc) {
31 return ConstantPools->addEntry(Streamer, Expr, 4, Loc);
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
Keno Fischer00021422016-01-12 13:38:15 +000041// reset() - Reset any state
42void ARMTargetStreamer::reset() {}
43
David Peixottob9b73622014-02-04 17:22:40 +000044// The remaining callbacks should be handled separately by each
45// streamer.
Rafael Espindola1fc003e2014-06-20 13:11:28 +000046void ARMTargetStreamer::emitFnStart() {}
47void ARMTargetStreamer::emitFnEnd() {}
48void ARMTargetStreamer::emitCantUnwind() {}
49void ARMTargetStreamer::emitPersonality(const MCSymbol *Personality) {}
50void ARMTargetStreamer::emitPersonalityIndex(unsigned Index) {}
51void ARMTargetStreamer::emitHandlerData() {}
David Peixottob9b73622014-02-04 17:22:40 +000052void ARMTargetStreamer::emitSetFP(unsigned FpReg, unsigned SpReg,
Rafael Espindola1fc003e2014-06-20 13:11:28 +000053 int64_t Offset) {}
54void ARMTargetStreamer::emitMovSP(unsigned Reg, int64_t Offset) {}
55void ARMTargetStreamer::emitPad(int64_t Offset) {}
56void ARMTargetStreamer::emitRegSave(const SmallVectorImpl<unsigned> &RegList,
57 bool isVector) {}
58void ARMTargetStreamer::emitUnwindRaw(int64_t StackOffset,
59 const SmallVectorImpl<uint8_t> &Opcodes) {
David Peixottob9b73622014-02-04 17:22:40 +000060}
Rafael Espindola1fc003e2014-06-20 13:11:28 +000061void ARMTargetStreamer::switchVendor(StringRef Vendor) {}
62void ARMTargetStreamer::emitAttribute(unsigned Attribute, unsigned Value) {}
David Peixottob9b73622014-02-04 17:22:40 +000063void ARMTargetStreamer::emitTextAttribute(unsigned Attribute,
Rafael Espindola1fc003e2014-06-20 13:11:28 +000064 StringRef String) {}
David Peixottob9b73622014-02-04 17:22:40 +000065void ARMTargetStreamer::emitIntTextAttribute(unsigned Attribute,
Rafael Espindola1fc003e2014-06-20 13:11:28 +000066 unsigned IntValue,
67 StringRef StringValue) {}
68void ARMTargetStreamer::emitArch(unsigned Arch) {}
Sumanth Gundapanenia9049ea2015-02-26 18:07:35 +000069void ARMTargetStreamer::emitArchExtension(unsigned ArchExt) {}
Rafael Espindola1fc003e2014-06-20 13:11:28 +000070void ARMTargetStreamer::emitObjectArch(unsigned Arch) {}
71void ARMTargetStreamer::emitFPU(unsigned FPU) {}
72void ARMTargetStreamer::finishAttributeSection() {}
73void ARMTargetStreamer::emitInst(uint32_t Inst, char Suffix) {}
74void
75ARMTargetStreamer::AnnotateTLSDescriptorSequence(const MCSymbolRefExpr *SRE) {}
Rafael Espindola466d6632014-04-27 20:23:58 +000076
Rafael Espindola1fc003e2014-06-20 13:11:28 +000077void ARMTargetStreamer::emitThumbSet(MCSymbol *Symbol, const MCExpr *Value) {}