1283625Sdim//===-- AArch64TargetStreamer.h - AArch64 Target Streamer ------*- C++ -*--===// 2283625Sdim// 3283625Sdim// The LLVM Compiler Infrastructure 4283625Sdim// 5283625Sdim// This file is distributed under the University of Illinois Open Source 6283625Sdim// License. See LICENSE.TXT for details. 7283625Sdim// 8283625Sdim//===----------------------------------------------------------------------===// 9283625Sdim 10283625Sdim#ifndef LLVM_LIB_TARGET_AARCH64_MCTARGETDESC_AARCH64TARGETSTREAMER_H 11283625Sdim#define LLVM_LIB_TARGET_AARCH64_MCTARGETDESC_AARCH64TARGETSTREAMER_H 12283625Sdim 13283625Sdim#include "llvm/MC/MCStreamer.h" 14283625Sdim 15283625Sdimnamespace llvm { 16283625Sdim 17283625Sdimclass AArch64TargetStreamer : public MCTargetStreamer { 18283625Sdimpublic: 19283625Sdim AArch64TargetStreamer(MCStreamer &S); 20283625Sdim ~AArch64TargetStreamer() override; 21283625Sdim 22283625Sdim void finish() override; 23283625Sdim 24283625Sdim /// Callback used to implement the ldr= pseudo. 25283625Sdim /// Add a new entry to the constant pool for the current section and return an 26283625Sdim /// MCExpr that can be used to refer to the constant pool location. 27296417Sdim const MCExpr *addConstantPoolEntry(const MCExpr *, unsigned Size, SMLoc Loc); 28283625Sdim 29283625Sdim /// Callback used to implemnt the .ltorg directive. 30283625Sdim /// Emit contents of constant pool for the current section. 31283625Sdim void emitCurrentConstantPool(); 32283625Sdim 33283625Sdim /// Callback used to implement the .inst directive. 34283625Sdim virtual void emitInst(uint32_t Inst); 35283625Sdim 36283625Sdimprivate: 37283625Sdim std::unique_ptr<AssemblerConstantPools> ConstantPools; 38283625Sdim}; 39283625Sdim 40283625Sdim} // end namespace llvm 41283625Sdim 42283625Sdim#endif 43