1 //===-- HexagonTargetStreamer.h - Hexagon Target Streamer ------*- C++ -*--===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #ifndef HEXAGONTARGETSTREAMER_H 10 #define HEXAGONTARGETSTREAMER_H 11 12 #include "llvm/MC/MCStreamer.h" 13 14 namespace llvm { 15 class HexagonTargetStreamer : public MCTargetStreamer { 16 public: HexagonTargetStreamer(MCStreamer & S)17 HexagonTargetStreamer(MCStreamer &S) : MCTargetStreamer(S) {} 18 virtual void emitCodeAlignment(Align Alignment, const MCSubtargetInfo *STI, 19 unsigned MaxBytesToEmit = 0){}; emitFAlign(unsigned Size,unsigned MaxBytesToEmit)20 virtual void emitFAlign(unsigned Size, unsigned MaxBytesToEmit){}; emitCommonSymbolSorted(MCSymbol * Symbol,uint64_t Size,unsigned ByteAlignment,unsigned AccessGranularity)21 virtual void emitCommonSymbolSorted(MCSymbol *Symbol, uint64_t Size, 22 unsigned ByteAlignment, 23 unsigned AccessGranularity){}; emitLocalCommonSymbolSorted(MCSymbol * Symbol,uint64_t Size,unsigned ByteAlign,unsigned AccessGranularity)24 virtual void emitLocalCommonSymbolSorted(MCSymbol *Symbol, uint64_t Size, 25 unsigned ByteAlign, 26 unsigned AccessGranularity){}; finish()27 void finish() override {} 28 finishAttributeSection()29 virtual void finishAttributeSection() {} 30 emitAttribute(unsigned Attribute,unsigned Value)31 virtual void emitAttribute(unsigned Attribute, unsigned Value) {} 32 33 void emitTargetAttributes(const MCSubtargetInfo &STI); 34 reset()35 virtual void reset() {} 36 }; 37 } 38 39 #endif 40