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
14namespace llvm {
15class HexagonTargetStreamer : public MCTargetStreamer {
16public:
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