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: 17 HexagonTargetStreamer(MCStreamer &S) : MCTargetStreamer(S) {} 18 virtual void emitCodeAlignment(Align Alignment, const MCSubtargetInfo *STI, 19 unsigned MaxBytesToEmit = 0){}; 20 virtual void emitFAlign(unsigned Size, unsigned MaxBytesToEmit){}; 21 virtual void emitCommonSymbolSorted(MCSymbol *Symbol, uint64_t Size, 22 unsigned ByteAlignment, 23 unsigned AccessGranularity){}; 24 virtual void emitLocalCommonSymbolSorted(MCSymbol *Symbol, uint64_t Size, 25 unsigned ByteAlign, 26 unsigned AccessGranularity){}; 27 void finish() override {} 28 29 virtual void finishAttributeSection() {} 30 31 virtual void emitAttribute(unsigned Attribute, unsigned Value) {} 32 33 void emitTargetAttributes(const MCSubtargetInfo &STI); 34 35 virtual void reset() {} 36 }; 37 } 38 39 #endif 40