class MCXCOFFStreamer

Declaration

class MCXCOFFStreamer : public MCObjectStreamer { /* full declaration omitted */ };

Description

Streaming object file generation interface. This class provides an implementation of the MCStreamer interface which is suitable for use with the assembler backend. Specific object file formats are expected to subclass this interface to implement directives specific to that file format or custom semantics expected by the object writer implementation.

Declared at: llvm/include/llvm/MC/MCXCOFFStreamer.h:16

Inherits from: MCObjectStreamer

Method Overview

  • public void EmitCommonSymbol(llvm::MCSymbol * Symbol, uint64_t Size, unsigned int ByteAlignment)
  • public void EmitInstToData(const llvm::MCInst & Inst, const llvm::MCSubtargetInfo &)
  • public bool EmitSymbolAttribute(llvm::MCSymbol * Symbol, llvm::MCSymbolAttr Attribute)
  • public void EmitXCOFFLocalCommonSymbol(llvm::MCSymbol * LabelSym, uint64_t Size, llvm::MCSymbol * CsectSym, unsigned int ByteAlign)
  • public void EmitZerofill(llvm::MCSection * Section, llvm::MCSymbol * Symbol = nullptr, uint64_t Size = 0, unsigned int ByteAlignment = 0, llvm::SMLoc Loc = llvm::SMLoc())
  • public MCXCOFFStreamer(llvm::MCContext & Context, std::unique_ptr<MCAsmBackend> MAB, std::unique_ptr<MCObjectWriter> OW, std::unique_ptr<MCCodeEmitter> Emitter)

Inherited from MCObjectStreamer:

Inherited from MCStreamer:

Methods

void EmitCommonSymbol(llvm::MCSymbol* Symbol,
                      uint64_t Size,
                      unsigned int ByteAlignment)

Description

Emit a common symbol.

Declared at: llvm/include/llvm/MC/MCXCOFFStreamer.h:23

Parameters

llvm::MCSymbol* Symbol
- The common symbol to emit.
uint64_t Size
- The size of the common symbol.
unsigned int ByteAlignment
- The alignment of the symbol if non-zero. This must be a power of 2.

void EmitInstToData(const llvm::MCInst& Inst,
                    const llvm::MCSubtargetInfo&)

Declared at: llvm/include/llvm/MC/MCXCOFFStreamer.h:28

Parameters

const llvm::MCInst& Inst
const llvm::MCSubtargetInfo&

bool EmitSymbolAttribute(
    llvm::MCSymbol* Symbol,
    llvm::MCSymbolAttr Attribute)

Description

Add the given \p Attribute to \p Symbol.

Declared at: llvm/include/llvm/MC/MCXCOFFStreamer.h:22

Parameters

llvm::MCSymbol* Symbol
llvm::MCSymbolAttr Attribute

void EmitXCOFFLocalCommonSymbol(
    llvm::MCSymbol* LabelSym,
    uint64_t Size,
    llvm::MCSymbol* CsectSym,
    unsigned int ByteAlign)

Description

Emits an lcomm directive with XCOFF csect information.

Declared at: llvm/include/llvm/MC/MCXCOFFStreamer.h:29

Parameters

llvm::MCSymbol* LabelSym
- Label on the block of storage.
uint64_t Size
- The size of the block of storage.
llvm::MCSymbol* CsectSym
- Csect name for the block of storage.
unsigned int ByteAlign

void EmitZerofill(
    llvm::MCSection* Section,
    llvm::MCSymbol* Symbol = nullptr,
    uint64_t Size = 0,
    unsigned int ByteAlignment = 0,
    llvm::SMLoc Loc = llvm::SMLoc())

Description

Emit the zerofill section and an optional symbol.

Declared at: llvm/include/llvm/MC/MCXCOFFStreamer.h:25

Parameters

llvm::MCSection* Section
- The zerofill section to create and or to put the symbol
llvm::MCSymbol* Symbol = nullptr
- The zerofill symbol to emit, if non-NULL.
uint64_t Size = 0
- The size of the zerofill symbol.
unsigned int ByteAlignment = 0
- The alignment of the zerofill symbol if non-zero. This must be a power of 2 on some targets.
llvm::SMLoc Loc = llvm::SMLoc()

MCXCOFFStreamer(
    llvm::MCContext& Context,
    std::unique_ptr<MCAsmBackend> MAB,
    std::unique_ptr<MCObjectWriter> OW,
    std::unique_ptr<MCCodeEmitter> Emitter)

Declared at: llvm/include/llvm/MC/MCXCOFFStreamer.h:18

Parameters

llvm::MCContext& Context
std::unique_ptr<MCAsmBackend> MAB
std::unique_ptr<MCObjectWriter> OW
std::unique_ptr<MCCodeEmitter> Emitter