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