xref: /freebsd-src/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonTargetStreamer.h (revision 0fca6ea1d4eea4c934cfff25ac9ee8ad6fe95583)
10b57cec5SDimitry Andric //===-- HexagonTargetStreamer.h - Hexagon Target Streamer ------*- C++ -*--===//
20b57cec5SDimitry Andric //
30b57cec5SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
40b57cec5SDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
50b57cec5SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
60b57cec5SDimitry Andric //
70b57cec5SDimitry Andric //===----------------------------------------------------------------------===//
80b57cec5SDimitry Andric 
90b57cec5SDimitry Andric #ifndef HEXAGONTARGETSTREAMER_H
100b57cec5SDimitry Andric #define HEXAGONTARGETSTREAMER_H
110b57cec5SDimitry Andric 
120b57cec5SDimitry Andric #include "llvm/MC/MCStreamer.h"
130b57cec5SDimitry Andric 
140b57cec5SDimitry Andric namespace llvm {
150b57cec5SDimitry Andric class HexagonTargetStreamer : public MCTargetStreamer {
160b57cec5SDimitry Andric public:
170b57cec5SDimitry Andric   HexagonTargetStreamer(MCStreamer &S) : MCTargetStreamer(S) {}
18bdd1243dSDimitry Andric   virtual void emitCodeAlignment(Align Alignment, const MCSubtargetInfo *STI,
190b57cec5SDimitry Andric                                  unsigned MaxBytesToEmit = 0){};
200b57cec5SDimitry Andric   virtual void emitFAlign(unsigned Size, unsigned MaxBytesToEmit){};
215ffd83dbSDimitry Andric   virtual void emitCommonSymbolSorted(MCSymbol *Symbol, uint64_t Size,
220b57cec5SDimitry Andric                                       unsigned ByteAlignment,
230b57cec5SDimitry Andric                                       unsigned AccessGranularity){};
245ffd83dbSDimitry Andric   virtual void emitLocalCommonSymbolSorted(MCSymbol *Symbol, uint64_t Size,
250b57cec5SDimitry Andric                                            unsigned ByteAlign,
260b57cec5SDimitry Andric                                            unsigned AccessGranularity){};
27*0fca6ea1SDimitry Andric   void finish() override {}
28*0fca6ea1SDimitry Andric 
29*0fca6ea1SDimitry Andric   virtual void finishAttributeSection() {}
30*0fca6ea1SDimitry Andric 
31*0fca6ea1SDimitry Andric   virtual void emitAttribute(unsigned Attribute, unsigned Value) {}
32*0fca6ea1SDimitry Andric 
33*0fca6ea1SDimitry Andric   void emitTargetAttributes(const MCSubtargetInfo &STI);
34*0fca6ea1SDimitry Andric 
35*0fca6ea1SDimitry Andric   virtual void reset() {}
360b57cec5SDimitry Andric };
370b57cec5SDimitry Andric }
380b57cec5SDimitry Andric 
390b57cec5SDimitry Andric #endif
40