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