1 //===- AArch64TargetStreamer.cpp - AArch64TargetStreamer 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 AArch64TargetStreamer 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 // 22 // AArch64TargetStreamer Implemenation 23 // 24 AArch64TargetStreamer::AArch64TargetStreamer(MCStreamer &S) 25 : MCTargetStreamer(S), ConstantPools(new AssemblerConstantPools()) {} 26 27 AArch64TargetStreamer::~AArch64TargetStreamer() {} 28 29 // The constant pool handling is shared by all AArch64TargetStreamer 30 // implementations. 31 const MCExpr *AArch64TargetStreamer::addConstantPoolEntry(const MCExpr *Expr) { 32 return ConstantPools->addEntry(Streamer, Expr); 33 } 34 35 void AArch64TargetStreamer::emitCurrentConstantPool() { 36 ConstantPools->emitForCurrentSection(Streamer); 37 } 38 39 // finish() - write out any non-empty assembler constant pools. 40 void AArch64TargetStreamer::finish() { ConstantPools->emitAll(Streamer); } 41