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

Member Variables

Method Overview

  • public MCXCOFFStreamer(llvm::MCContext & Context, std::unique_ptr<MCAsmBackend> MAB, std::unique_ptr<MCObjectWriter> OW, std::unique_ptr<MCCodeEmitter> Emitter)
  • 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 emitXCOFFRefDirective(llvm::StringRef Name)
  • public void emitXCOFFRenameDirective(const llvm::MCSymbol * Name, llvm::StringRef Rename)
  • public void emitXCOFFSymbolLinkageWithVisibility(llvm::MCSymbol * Symbol, llvm::MCSymbolAttr Linkage, llvm::MCSymbolAttr Visibility)
  • public void emitZerofill(llvm::MCSection * Section, llvm::MCSymbol * Symbol = nullptr, uint64_t Size = 0, unsigned int ByteAlignment = 0, llvm::SMLoc Loc = llvm::SMLoc())

Inherited from MCObjectStreamer:

Inherited from MCStreamer:

Methods

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

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 emitXCOFFRefDirective(llvm::StringRef Name)

Description

Emit a XCOFF .ref directive which creates R_REF type entry in the relocation table for one or more symbols.

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

Parameters

llvm::StringRef Name

void emitXCOFFRenameDirective(
    const llvm::MCSymbol* Name,
    llvm::StringRef Rename)

Description

Emit a XCOFF .rename directive which creates a synonym for an illegal or undesirable name.

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

Parameters

const llvm::MCSymbol* Name
- The name used internally in the assembly for references to the symbol.
llvm::StringRef Rename
- The value to which the Name parameter is changed at the end of assembly.

void emitXCOFFSymbolLinkageWithVisibility(
    llvm::MCSymbol* Symbol,
    llvm::MCSymbolAttr Linkage,
    llvm::MCSymbolAttr Visibility)

Description

Emit a symbol's linkage and visibility with a linkage directive for XCOFF.

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

Parameters

llvm::MCSymbol* Symbol
- The symbol to emit.
llvm::MCSymbolAttr Linkage
- The linkage of the symbol to emit.
llvm::MCSymbolAttr Visibility
- The visibility of the symbol to emit or MCSA_Invalid if the symbol does not have an explicit visibility.

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()