class MCWinCOFFStreamer

Declaration

class MCWinCOFFStreamer : 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/MCWinCOFFStreamer.h:27

Inherits from: MCObjectStreamer

Member Variables

protected const llvm::MCSymbol* CurSymbol
\ }

Method Overview

Inherited from MCObjectStreamer:

Inherited from MCStreamer:

Methods

void BeginCOFFSymbolDef(
    const llvm::MCSymbol* Symbol)

Description

Start emitting COFF symbol definition

Declared at: llvm/include/llvm/MC/MCWinCOFFStreamer.h:48

Parameters

const llvm::MCSymbol* Symbol
- The symbol to have its External & Type fields set.

void EmitAssemblerFlag(llvm::MCAssemblerFlag Flag)

Description

Note in the output the specified \p Flag.

Declared at: llvm/include/llvm/MC/MCWinCOFFStreamer.h:44

Parameters

llvm::MCAssemblerFlag Flag

void EmitCOFFImgRel32(
    const llvm::MCSymbol* Symbol,
    int64_t Offset)

Description

Emits a COFF image relative relocation.

Declared at: llvm/include/llvm/MC/MCWinCOFFStreamer.h:56

Parameters

const llvm::MCSymbol* Symbol
- Symbol the image relative relocation should point to.
int64_t Offset

void EmitCOFFSafeSEH(const llvm::MCSymbol* Symbol)

Declared at: llvm/include/llvm/MC/MCWinCOFFStreamer.h:52

Parameters

const llvm::MCSymbol* Symbol

void EmitCOFFSecRel32(
    const llvm::MCSymbol* Symbol,
    uint64_t Offset)

Description

Emits a COFF section relative relocation.

Declared at: llvm/include/llvm/MC/MCWinCOFFStreamer.h:55

Parameters

const llvm::MCSymbol* Symbol
- Symbol the section relative relocation should point to.
uint64_t Offset

void EmitCOFFSectionIndex(
    const llvm::MCSymbol* Symbol)

Description

Emits a COFF section index.

Declared at: llvm/include/llvm/MC/MCWinCOFFStreamer.h:54

Parameters

const llvm::MCSymbol* Symbol
- Symbol the section number relocation should point to.

void EmitCOFFSymbolIndex(
    const llvm::MCSymbol* Symbol)

Description

Emits the symbol table index of a Symbol into the current section.

Declared at: llvm/include/llvm/MC/MCWinCOFFStreamer.h:53

Parameters

const llvm::MCSymbol* Symbol

void EmitCOFFSymbolStorageClass(int StorageClass)

Description

Emit the storage class of the symbol.

Declared at: llvm/include/llvm/MC/MCWinCOFFStreamer.h:49

Parameters

int StorageClass
- The storage class the symbol should have.

void EmitCOFFSymbolType(int Type)

Description

Emit the type of the symbol.

Declared at: llvm/include/llvm/MC/MCWinCOFFStreamer.h:50

Parameters

int Type
- A COFF type identifier (see COFF::SymbolType in X86COFF.h)

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

Description

Emit a common symbol.

Declared at: llvm/include/llvm/MC/MCWinCOFFStreamer.h:57

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 EmitIdent(llvm::StringRef IdentString)

Description

Emit the "identifiers" directive. This implements the '.ident "version foo"' assembler directive.

Declared at: llvm/include/llvm/MC/MCWinCOFFStreamer.h:65

Parameters

llvm::StringRef IdentString

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

Declared at: llvm/include/llvm/MC/MCWinCOFFStreamer.h:74

Parameters

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

void EmitLabel(llvm::MCSymbol* Symbol,
               llvm::SMLoc Loc = llvm::SMLoc())

Description

@ {

Declared at: llvm/include/llvm/MC/MCWinCOFFStreamer.h:43

Parameters

llvm::MCSymbol* Symbol
llvm::SMLoc Loc = llvm::SMLoc()

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

Description

Emit a local common (.lcomm) symbol.

Declared at: llvm/include/llvm/MC/MCWinCOFFStreamer.h:59

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 common symbol in bytes.

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

Description

Add the given \p Attribute to \p Symbol.

Declared at: llvm/include/llvm/MC/MCWinCOFFStreamer.h:46

Parameters

llvm::MCSymbol* Symbol
llvm::MCSymbolAttr Attribute

void EmitSymbolDesc(llvm::MCSymbol* Symbol,
                    unsigned int DescValue)

Description

Set the \p DescValue for the \p Symbol.

Declared at: llvm/include/llvm/MC/MCWinCOFFStreamer.h:47

Parameters

llvm::MCSymbol* Symbol
- The symbol to have its n_desc field set.
unsigned int DescValue
- The value to set into the n_desc field.

void EmitTBSSSymbol(llvm::MCSection* Section,
                    llvm::MCSymbol* Symbol,
                    uint64_t Size,
                    unsigned int ByteAlignment)

Description

Emit a thread local bss (.tbss) symbol.

Declared at: llvm/include/llvm/MC/MCWinCOFFStreamer.h:63

Parameters

llvm::MCSection* Section
- The thread local common section.
llvm::MCSymbol* Symbol
- The thread local common symbol to emit.
uint64_t Size
- The size of the symbol.
unsigned int ByteAlignment
- The alignment of the thread local common symbol if non-zero. This must be a power of 2 on some targets.

void EmitThumbFunc(llvm::MCSymbol* Func)

Description

Note in the output that the specified \p Func is a Thumb mode function (ARM target only).

Declared at: llvm/include/llvm/MC/MCWinCOFFStreamer.h:45

Parameters

llvm::MCSymbol* Func

void EmitWinEHHandlerData(llvm::SMLoc Loc)

Declared at: llvm/include/llvm/MC/MCWinCOFFStreamer.h:66

Parameters

llvm::SMLoc Loc

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

Description

Emit the zerofill section and an optional symbol.

Declared at: llvm/include/llvm/MC/MCWinCOFFStreamer.h:61

Parameters

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

void EndCOFFSymbolDef()

Description

Marks the end of the symbol definition.

Declared at: llvm/include/llvm/MC/MCWinCOFFStreamer.h:51

void FinishImpl()

Description

Streamer specific finalization.

Declared at: llvm/include/llvm/MC/MCWinCOFFStreamer.h:67

void InitSections(bool NoExecStack)

Description

\ {

Declared at: llvm/include/llvm/MC/MCWinCOFFStreamer.h:42

Parameters

bool NoExecStack

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

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

Parameters

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

void reset()

Description

state management

Declared at: llvm/include/llvm/MC/MCWinCOFFStreamer.h:34