1 //===- MCXCOFFObjectStreamer.h - MCStreamer XCOFF Object File Interface ---===//
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
7 //===----------------------------------------------------------------------===//
9 #ifndef LLVM_MC_MCXCOFFSTREAMER_H
10 #define LLVM_MC_MCXCOFFSTREAMER_H
12 #include "llvm/MC/MCObjectStreamer.h"
16 class MCXCOFFStreamer
: public MCObjectStreamer
{
18 MCXCOFFStreamer(MCContext
&Context
, std::unique_ptr
<MCAsmBackend
> MAB
,
19 std::unique_ptr
<MCObjectWriter
> OW
,
20 std::unique_ptr
<MCCodeEmitter
> Emitter
);
22 bool EmitSymbolAttribute(MCSymbol
*Symbol
, MCSymbolAttr Attribute
) override
;
23 void EmitCommonSymbol(MCSymbol
*Symbol
, uint64_t Size
,
24 unsigned ByteAlignment
) override
;
25 void EmitZerofill(MCSection
*Section
, MCSymbol
*Symbol
= nullptr,
26 uint64_t Size
= 0, unsigned ByteAlignment
= 0,
27 SMLoc Loc
= SMLoc()) override
;
28 void EmitInstToData(const MCInst
&Inst
, const MCSubtargetInfo
&) override
;
29 void EmitXCOFFLocalCommonSymbol(MCSymbol
*Symbol
, uint64_t Size
,
30 unsigned ByteAlign
) override
;
33 } // end namespace llvm
35 #endif // LLVM_MC_MCXCOFFSTREAMER_H