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
- public void BeginCOFFSymbolDef(const llvm::MCSymbol * Symbol)
- public void EmitAssemblerFlag(llvm::MCAssemblerFlag Flag)
- public void EmitCOFFImgRel32(const llvm::MCSymbol * Symbol, int64_t Offset)
- public void EmitCOFFSafeSEH(const llvm::MCSymbol * Symbol)
- public void EmitCOFFSecRel32(const llvm::MCSymbol * Symbol, uint64_t Offset)
- public void EmitCOFFSectionIndex(const llvm::MCSymbol * Symbol)
- public void EmitCOFFSymbolIndex(const llvm::MCSymbol * Symbol)
- public void EmitCOFFSymbolStorageClass(int StorageClass)
- public void EmitCOFFSymbolType(int Type)
- public void EmitCommonSymbol(llvm::MCSymbol * Symbol, uint64_t Size, unsigned int ByteAlignment)
- public void EmitIdent(llvm::StringRef IdentString)
- protected void EmitInstToData(const llvm::MCInst & Inst, const llvm::MCSubtargetInfo & STI)
- public void EmitLabel(llvm::MCSymbol * Symbol, llvm::SMLoc Loc = llvm::SMLoc())
- public void EmitLocalCommonSymbol(llvm::MCSymbol * Symbol, uint64_t Size, unsigned int ByteAlignment)
- public bool EmitSymbolAttribute(llvm::MCSymbol * Symbol, llvm::MCSymbolAttr Attribute)
- public void EmitSymbolDesc(llvm::MCSymbol * Symbol, unsigned int DescValue)
- public void EmitTBSSSymbol(llvm::MCSection * Section, llvm::MCSymbol * Symbol, uint64_t Size, unsigned int ByteAlignment)
- public void EmitThumbFunc(llvm::MCSymbol * Func)
- public void EmitWinEHHandlerData(llvm::SMLoc Loc)
- public void EmitZerofill(llvm::MCSection * Section, llvm::MCSymbol * Symbol, uint64_t Size, unsigned int ByteAlignment, llvm::SMLoc Loc = llvm::SMLoc())
- public void EndCOFFSymbolDef()
- public void FinishImpl()
- public void InitSections(bool NoExecStack)
- public MCWinCOFFStreamer(llvm::MCContext & Context, std::unique_ptr<MCAsmBackend> MAB, std::unique_ptr<MCCodeEmitter> CE, std::unique_ptr<MCObjectWriter> OW)
- public void reset()
Inherited from MCObjectStreamer:
- public ChangeSection
- public EmitAddrsig
- public EmitAddrsigSym
- public EmitAssignment
- public EmitBundleAlignMode
- public EmitBundleLock
- public EmitBundleUnlock
- public EmitBytes
- public EmitCFISections
- public EmitCVDefRangeDirective
- public EmitCVFileChecksumOffsetDirective
- public EmitCVFileChecksumsDirective
- public EmitCVInlineLinetableDirective
- public EmitCVLinetableDirective
- public EmitCVLocDirective
- public EmitCVStringTableDirective
- public EmitCodeAlignment
- public EmitDTPRel32Value
- public EmitDTPRel64Value
- public EmitDwarfAdvanceFrameAddr
- public EmitDwarfAdvanceLineAddr
- public EmitDwarfLocDirective
- public EmitFileDirective
- public EmitFrames
- public EmitGPRel32Value
- public EmitGPRel64Value
- public EmitInstToFragment
- public EmitInstruction
- public EmitLabel
- public EmitLabelAtPos
- public EmitRelocDirective
- public EmitSLEB128Value
- public EmitTPRel32Value
- public EmitTPRel64Value
- public EmitULEB128Value
- public EmitValueImpl
- public EmitValueToAlignment
- public EmitWeakReference
- public FinishImpl
- protected addPendingLabel
- protected changeSectionImpl
- public emitAbsoluteSymbolDiff
- public emitAbsoluteSymbolDiffAsULEB128
- public emitFill
- public emitFill
- public emitValueToOffset
- public flushPendingLabels
- protected flushPendingLabels
- public getAssembler
- public getAssemblerPtr
- public getCurrentFragment
- public getOrCreateDataFragment
- public insert
- public isIntegratedAssemblerRequired
- public mayHaveInstructions
- public reset
- public visitUsedSymbol
Inherited from MCStreamer:
- public AddBlankLine
- public AddComment
- public AssignFragment
- public BeginCOFFSymbolDef
- public ChangeSection
- public EmitAddrsig
- public EmitAddrsigSym
- public EmitAssemblerFlag
- public EmitAssignment
- public EmitBinaryData
- public EmitBuildVersion
- public EmitBundleAlignMode
- public EmitBundleLock
- public EmitBundleUnlock
- public EmitBytes
- public EmitCFIAdjustCfaOffset
- public EmitCFIBKeyFrame
- public EmitCFIDefCfa
- public EmitCFIDefCfaOffset
- public EmitCFIDefCfaRegister
- public EmitCFIEndProc
- protected EmitCFIEndProcImpl
- public EmitCFIEscape
- public EmitCFIGnuArgsSize
- public EmitCFILabel
- public EmitCFILsda
- public EmitCFINegateRAState
- public EmitCFIOffset
- public EmitCFIPersonality
- public EmitCFIRegister
- public EmitCFIRelOffset
- public EmitCFIRememberState
- public EmitCFIRestore
- public EmitCFIRestoreState
- public EmitCFIReturnColumn
- public EmitCFISameValue
- public EmitCFISections
- public EmitCFISignalFrame
- public EmitCFIStartProc
- protected EmitCFIStartProcImpl
- public EmitCFIUndefined
- public EmitCFIWindowSave
- public EmitCOFFImgRel32
- public EmitCOFFSafeSEH
- public EmitCOFFSecRel32
- public EmitCOFFSectionIndex
- public EmitCOFFSymbolIndex
- public EmitCOFFSymbolStorageClass
- public EmitCOFFSymbolType
- public EmitCVDefRangeDirective
- public EmitCVDefRangeDirective
- public EmitCVDefRangeDirective
- public EmitCVDefRangeDirective
- public EmitCVDefRangeDirective
- public EmitCVFPOData
- public EmitCVFileChecksumOffsetDirective
- public EmitCVFileChecksumsDirective
- public EmitCVFileDirective
- public EmitCVFuncIdDirective
- public EmitCVInlineLinetableDirective
- public EmitCVInlineSiteIdDirective
- public EmitCVLinetableDirective
- public EmitCVLocDirective
- public EmitCVStringTableDirective
- public EmitCodeAlignment
- public EmitCodePaddingBasicBlockEnd
- public EmitCodePaddingBasicBlockStart
- public EmitCommonSymbol
- public EmitDTPRel32Value
- public EmitDTPRel64Value
- public EmitDataRegion
- public EmitDwarfFileDirective
- public EmitDwarfLocDirective
- public EmitEHSymAttributes
- public EmitFileDirective
- public EmitGPRel32Value
- public EmitGPRel64Value
- public EmitIdent
- public EmitInstruction
- public EmitIntValue
- public EmitIntValueInHex
- public EmitLOHDirective
- public EmitLabel
- public EmitLinkerOptions
- public EmitLocalCommonSymbol
- public EmitRawText
- protected EmitRawTextImpl
- public EmitRelocDirective
- public EmitSLEB128IntValue
- public EmitSLEB128Value
- public EmitSymbolAttribute
- public EmitSymbolDesc
- public EmitSymbolValue
- public EmitSyntaxDirective
- public EmitTBSSSymbol
- public EmitTPRel32Value
- public EmitTPRel64Value
- public EmitThumbFunc
- public EmitULEB128IntValue
- public EmitULEB128Value
- public EmitValue
- public EmitValueImpl
- public EmitValueToAlignment
- public EmitVersionForTarget
- public EmitVersionMin
- public EmitWeakReference
- public EmitWinCFIAllocStack
- public EmitWinCFIEndChained
- public EmitWinCFIEndProc
- public EmitWinCFIEndProlog
- public EmitWinCFIFuncletOrFuncEnd
- public EmitWinCFIPushFrame
- public EmitWinCFIPushReg
- public EmitWinCFISaveReg
- public EmitWinCFISaveXMM
- public EmitWinCFISetFrame
- public EmitWinCFIStartChained
- public EmitWinCFIStartProc
- public EmitWinEHHandler
- public EmitWinEHHandlerData
- protected EmitWindowsUnwindTables
- public EmitXCOFFLocalCommonSymbol
- public EmitZerofill
- public EmitZeros
- public EndCOFFSymbolDef
- public EnsureValidWinFrameInfo
- public Finish
- public FinishImpl
- public GetCommentOS
- public GetSymbolOrder
- public InitSections
- public PopSection
- public PushSection
- public SubSection
- public SwitchSection
- public SwitchSectionNoChange
- public addExplicitComment
- protected checkCVLocSection
- public emitAbsoluteSymbolDiff
- public emitAbsoluteSymbolDiffAsULEB128
- public emitCGProfileEntry
- public emitDwarfFile0Directive
- public emitELFSize
- public emitELFSymverDirective
- public emitExplicitComments
- public emitFill
- public emitFill
- public emitFill
- public emitRawComment
- public emitValueToOffset
- public endSection
- public generateCompactUnwindEncodings
- public getAllowAutoPadding
- public getAssemblerPtr
- public getAssociatedPDataSection
- public getAssociatedXDataSection
- public getContext
- public getCurrentSection
- public getCurrentSectionOnly
- protected getCurrentWinFrameInfo
- public getDwarfFrameInfos
- public getDwarfLineTableSymbol
- public getNumFrameInfos
- public getNumWinFrameInfos
- public getPreviousSection
- public getTargetStreamer
- public getUseAssemblerInfoForParsing
- public getWinFrameInfos
- public hasRawTextSupport
- public hasUnfinishedDwarfFrameInfo
- public isIntegratedAssemblerRequired
- public isVerboseAsm
- public mayHaveInstructions
- public reset
- public setAllowAutoPadding
- public setTargetStreamer
- public setUseAssemblerInfoForParsing
- public tryEmitDwarfFileDirective
- public visitUsedExpr
- public visitUsedSymbol
Methods
¶void BeginCOFFSymbolDef(
const llvm::MCSymbol* Symbol)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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())
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)
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)
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)
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)
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)
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)
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())
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()
void EndCOFFSymbolDef()
Description
Marks the end of the symbol definition.
Declared at: llvm/include/llvm/MC/MCWinCOFFStreamer.h:51
¶void FinishImpl()
void FinishImpl()
Description
Streamer specific finalization.
Declared at: llvm/include/llvm/MC/MCWinCOFFStreamer.h:67
¶void InitSections(bool NoExecStack)
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)
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()
void reset()
Description
state management
Declared at: llvm/include/llvm/MC/MCWinCOFFStreamer.h:34