xref: /freebsd/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonTargetStreamer.h (revision b64c5a0ace59af62eff52bfe110a521dc73c937b)
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