class MCELFStreamer
Declaration
class MCELFStreamer : 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/MCELFStreamer.h:31
Inherits from: MCObjectStreamer
Member Variables
- public SmallVector<llvm::MCELFStreamer::AttributeItem, 64> Contents
- private SmallVector<llvm::MCELFStreamer::AttributeItem, 64> GNUAttributes
- private bool SeenIdent = false
- private SmallVector<llvm::MCDataFragment*, 4> BundleGroups
- BundleGroups - The stack of fragments holding the bundle-locked instructions.
Method Overview
- public MCELFStreamer(llvm::MCContext & Context, std::unique_ptr<MCAsmBackend> TAB, std::unique_ptr<MCObjectWriter> OW, std::unique_ptr<MCCodeEmitter> Emitter)
- private size_t calculateContentSize(SmallVector<llvm::MCELFStreamer::AttributeItem, 64> & AttrsVec)
- public void changeSection(llvm::MCSection * Section, const llvm::MCExpr * Subsection)
- private void createAttributesSection(llvm::StringRef Vendor, const llvm::Twine & Section, unsigned int Type, llvm::MCSection *& AttributeSection, SmallVector<llvm::MCELFStreamer::AttributeItem, 64> & AttrsVec)
- public void emitAssemblerFlag(llvm::MCAssemblerFlag Flag)
- public void emitAttributesSection(llvm::StringRef Vendor, const llvm::Twine & Section, unsigned int Type, llvm::MCSection *& AttributeSection)
- public void emitBundleAlignMode(unsigned int AlignPow2)
- public void emitBundleLock(bool AlignToEnd)
- public void emitBundleUnlock()
- public void emitCGProfileEntry(const llvm::MCSymbolRefExpr * From, const llvm::MCSymbolRefExpr * To, uint64_t Count)
- public void emitCommonSymbol(llvm::MCSymbol * Symbol, uint64_t Size, unsigned int ByteAlignment)
- public void emitELFSize(llvm::MCSymbol * Symbol, const llvm::MCExpr * Value)
- public void emitELFSymverDirective(const llvm::MCSymbol * OriginalSym, llvm::StringRef Name, bool KeepOriginalSym)
- public void emitGNUAttribute(unsigned int Tag, unsigned int Value)
- public void emitIdent(llvm::StringRef IdentString)
- private void emitInstToData(const llvm::MCInst & Inst, const llvm::MCSubtargetInfo &)
- private void emitInstToFragment(const llvm::MCInst & Inst, const llvm::MCSubtargetInfo &)
- public void emitLabel(llvm::MCSymbol * Symbol, llvm::SMLoc Loc = llvm::SMLoc())
- public void emitLabelAtPos(llvm::MCSymbol * Symbol, llvm::SMLoc Loc, llvm::MCFragment * F, uint64_t Offset)
- 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 = 0)
- public void emitThumbFunc(llvm::MCSymbol * Func)
- public void emitValueImpl(const llvm::MCExpr * Value, unsigned int Size, llvm::SMLoc Loc = llvm::SMLoc())
- public void emitValueToAlignment(unsigned int, int64_t, unsigned int, unsigned int)
- public void emitWeakReference(llvm::MCSymbol * Alias, const llvm::MCSymbol * Symbol)
- public void emitZerofill(llvm::MCSection * Section, llvm::MCSymbol * Symbol = nullptr, uint64_t Size = 0, unsigned int ByteAlignment = 0, llvm::SMLoc L = llvm::SMLoc())
- private void finalizeCGProfile()
- private void finalizeCGProfileEntry(const llvm::MCSymbolRefExpr *& S, uint64_t Offset)
- public void finishImpl()
- private void fixSymbolsInTLSFixups(const llvm::MCExpr * expr)
- private llvm::MCELFStreamer::AttributeItem * getAttributeItem(unsigned int Attribute)
- public void initSections(bool NoExecStack, const llvm::MCSubtargetInfo & STI)
- private bool isBundleLocked() const
- private void mergeFragment(llvm::MCDataFragment *, llvm::MCDataFragment *)
- public void reset()
- public void setAttributeItem(unsigned int Attribute, llvm::StringRef Value, bool OverwriteExisting)
- public void setAttributeItem(unsigned int Attribute, unsigned int Value, bool OverwriteExisting)
- public void setAttributeItems(unsigned int Attribute, unsigned int IntValue, llvm::StringRef StringValue, bool OverwriteExisting)
- public ~MCELFStreamer()
Inherited from MCObjectStreamer:
- protected addPendingLabel
- public changeSection
- protected changeSectionImpl
- public emitAbsoluteSymbolDiff
- public emitAbsoluteSymbolDiffAsULEB128
- 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 emitConditionalAssignment
- public emitDTPRel32Value
- public emitDTPRel64Value
- public emitDwarfAdvanceFrameAddr
- public emitDwarfAdvanceLineAddr
- public emitDwarfLineEndEntry
- public emitDwarfLocDirective
- public emitFileDirective
- public emitFileDirective
- public emitFill
- public emitFill
- public emitFrames
- public emitGPRel32Value
- public emitGPRel64Value
- public emitInstToFragment
- public emitInstruction
- public emitLabel
- public emitLabelAtPos
- public emitNops
- public emitPendingAssignments
- public emitRelocDirective
- public emitSLEB128Value
- public emitTPRel32Value
- public emitTPRel64Value
- public emitULEB128Value
- public emitValueImpl
- public emitValueToAlignment
- public emitValueToOffset
- public emitWeakReference
- public finishImpl
- 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 AddComment
- public EnsureValidWinFrameInfo
- public addBlankLine
- public addExplicitComment
- public assignFragment
- public beginCOFFSymbolDef
- public changeSection
- protected checkCVLocSection
- public doFinalizationAtSectionEnd
- public emitAbsoluteSymbolDiff
- public emitAbsoluteSymbolDiffAsULEB128
- 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 emitCFILLVMDefAspaceCfa
- public emitCFILabel
- public emitCFILsda
- public emitCFIMTETaggedFrame
- 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 emitCGProfileEntry
- 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 emitCommonSymbol
- public emitConditionalAssignment
- public emitDTPRel32Value
- public emitDTPRel64Value
- public emitDarwinTargetVariantBuildVersion
- public emitDataRegion
- public emitDwarfAdvanceLineAddr
- public emitDwarfFile0Directive
- public emitDwarfFileDirective
- public emitDwarfLineEndEntry
- public emitDwarfLineStartLabel
- public emitDwarfLocDirective
- public emitDwarfUnitLength
- public emitDwarfUnitLength
- public emitEHSymAttributes
- public emitELFSize
- public emitELFSymverDirective
- public emitExplicitComments
- public emitFileDirective
- public emitFileDirective
- public emitFill
- public emitFill
- public emitFill
- public emitGNUAttribute
- public emitGPRel32Value
- public emitGPRel64Value
- public emitIdent
- public emitInstruction
- public emitInt16
- public emitInt32
- public emitInt64
- public emitInt8
- public emitIntValue
- public emitIntValue
- public emitIntValueInHex
- public emitIntValueInHexWithPadding
- public emitLOHDirective
- public emitLabel
- public emitLinkerOptions
- public emitLocalCommonSymbol
- public emitNops
- public emitPseudoProbe
- public emitRawComment
- 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 emitValueToOffset
- 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
- protected emitWindowsUnwindTables
- public emitXCOFFLocalCommonSymbol
- public emitXCOFFRefDirective
- public emitXCOFFRenameDirective
- public emitXCOFFSymbolLinkageWithVisibility
- public emitZerofill
- public emitZeros
- public endCOFFSymbolDef
- public endSection
- public finish
- public finishImpl
- public generateCompactUnwindEncodings
- public getAllowAutoPadding
- public getAssemblerPtr
- public getAssociatedPDataSection
- public getAssociatedXDataSection
- public getCommentOS
- public getContext
- public getCurrentSection
- public getCurrentSectionOnly
- protected getCurrentWinFrameInfo
- public getDwarfFrameInfos
- public getDwarfLineTableSymbol
- public getMnemonic
- public getNumFrameInfos
- public getNumWinFrameInfos
- public getPreviousSection
- public getStartTokLoc
- public getSymbolOrder
- public getTargetStreamer
- public getUseAssemblerInfoForParsing
- public getWinFrameInfos
- public hasRawTextSupport
- public hasUnfinishedDwarfFrameInfo
- public initSections
- public isIntegratedAssemblerRequired
- public isVerboseAsm
- public mayHaveInstructions
- public maybeEmitDwarf64Mark
- public popSection
- public pushSection
- public reset
- public setAllowAutoPadding
- public setStartTokLocPtr
- public setTargetStreamer
- public setUseAssemblerInfoForParsing
- public subSection
- public switchSection
- public switchSectionNoChange
- public tryEmitDwarfFileDirective
- public visitUsedExpr
- public visitUsedSymbol
Methods
¶MCELFStreamer(
llvm::MCContext& Context,
std::unique_ptr<MCAsmBackend> TAB,
std::unique_ptr<MCObjectWriter> OW,
std::unique_ptr<MCCodeEmitter> Emitter)
MCELFStreamer(
llvm::MCContext& Context,
std::unique_ptr<MCAsmBackend> TAB,
std::unique_ptr<MCObjectWriter> OW,
std::unique_ptr<MCCodeEmitter> Emitter)
Declared at: llvm/include/llvm/MC/MCELFStreamer.h:33
Parameters
- llvm::MCContext& Context
- std::unique_ptr<MCAsmBackend> TAB
- std::unique_ptr<MCObjectWriter> OW
- std::unique_ptr<MCCodeEmitter> Emitter
¶size_t calculateContentSize(
SmallVector<
llvm::MCELFStreamer::AttributeItem,
64>& AttrsVec)
size_t calculateContentSize(
SmallVector<
llvm::MCELFStreamer::AttributeItem,
64>& AttrsVec)
Declared at: llvm/include/llvm/MC/MCELFStreamer.h:121
Parameters
- SmallVector<llvm::MCELFStreamer::AttributeItem, 64>& AttrsVec
¶void changeSection(llvm::MCSection* Section,
const llvm::MCExpr* Subsection)
void changeSection(llvm::MCSection* Section,
const llvm::MCExpr* Subsection)
Description
Update streamer for a new active section. This is called by popSection and switchSection, if the current section changes.
Declared at: llvm/include/llvm/MC/MCELFStreamer.h:50
Parameters
- llvm::MCSection* Section
- const llvm::MCExpr* Subsection
¶void createAttributesSection(
llvm::StringRef Vendor,
const llvm::Twine& Section,
unsigned int Type,
llvm::MCSection*& AttributeSection,
SmallVector<
llvm::MCELFStreamer::AttributeItem,
64>& AttrsVec)
void createAttributesSection(
llvm::StringRef Vendor,
const llvm::Twine& Section,
unsigned int Type,
llvm::MCSection*& AttributeSection,
SmallVector<
llvm::MCELFStreamer::AttributeItem,
64>& AttrsVec)
Declared at: llvm/include/llvm/MC/MCELFStreamer.h:122
Parameters
- llvm::StringRef Vendor
- const llvm::Twine& Section
- unsigned int Type
- llvm::MCSection*& AttributeSection
- SmallVector<llvm::MCELFStreamer::AttributeItem, 64>& AttrsVec
¶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/MCELFStreamer.h:54
Parameters
- llvm::MCAssemblerFlag Flag
¶void emitAttributesSection(
llvm::StringRef Vendor,
const llvm::Twine& Section,
unsigned int Type,
llvm::MCSection*& AttributeSection)
void emitAttributesSection(
llvm::StringRef Vendor,
const llvm::Twine& Section,
unsigned int Type,
llvm::MCSection*& AttributeSection)
Declared at: llvm/include/llvm/MC/MCELFStreamer.h:114
Parameters
- llvm::StringRef Vendor
- const llvm::Twine& Section
- unsigned int Type
- llvm::MCSection*& AttributeSection
¶void emitBundleAlignMode(unsigned int AlignPow2)
void emitBundleAlignMode(unsigned int AlignPow2)
Description
Set the bundle alignment mode from now on in the section. The argument is the power of 2 to which the alignment is set. The value 0 means turn the bundle alignment off.
Declared at: llvm/include/llvm/MC/MCELFStreamer.h:86
Parameters
- unsigned int AlignPow2
¶void emitBundleLock(bool AlignToEnd)
void emitBundleLock(bool AlignToEnd)
Description
The following instructions are a bundle-locked group.
Declared at: llvm/include/llvm/MC/MCELFStreamer.h:87
Parameters
- bool AlignToEnd
- - If true, the bundle-locked group will be aligned to the end of a bundle.
¶void emitBundleUnlock()
void emitBundleUnlock()
Description
Ends a bundle-locked group.
Declared at: llvm/include/llvm/MC/MCELFStreamer.h:88
¶void emitCGProfileEntry(
const llvm::MCSymbolRefExpr* From,
const llvm::MCSymbolRefExpr* To,
uint64_t Count)
void emitCGProfileEntry(
const llvm::MCSymbolRefExpr* From,
const llvm::MCSymbolRefExpr* To,
uint64_t Count)
Declared at: llvm/include/llvm/MC/MCELFStreamer.h:81
Parameters
- const llvm::MCSymbolRefExpr* From
- const llvm::MCSymbolRefExpr* To
- uint64_t Count
¶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/MCELFStreamer.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 symbol if non-zero. This must be a power of 2.
¶void emitELFSize(llvm::MCSymbol* Symbol,
const llvm::MCExpr* Value)
void emitELFSize(llvm::MCSymbol* Symbol,
const llvm::MCExpr* Value)
Description
Emit an ELF .size directive. This corresponds to an assembler statement such as: .size symbol, expression
Declared at: llvm/include/llvm/MC/MCELFStreamer.h:62
Parameters
- llvm::MCSymbol* Symbol
- const llvm::MCExpr* Value
¶void emitELFSymverDirective(
const llvm::MCSymbol* OriginalSym,
llvm::StringRef Name,
bool KeepOriginalSym)
void emitELFSymverDirective(
const llvm::MCSymbol* OriginalSym,
llvm::StringRef Name,
bool KeepOriginalSym)
Description
Emit an ELF .symver directive. This corresponds to an assembler statement such as: .symver _start, foo @ SOME_VERSION
Declared at: llvm/include/llvm/MC/MCELFStreamer.h:63
Parameters
- const llvm::MCSymbol* OriginalSym
- llvm::StringRef Name
- bool KeepOriginalSym
¶void emitGNUAttribute(unsigned int Tag,
unsigned int Value)
void emitGNUAttribute(unsigned int Tag,
unsigned int Value)
Description
Emit a .gnu_attribute directive.
Declared at: llvm/include/llvm/MC/MCELFStreamer.h:130
Parameters
- unsigned int Tag
- unsigned int Value
¶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/MCELFStreamer.h:77
Parameters
- llvm::StringRef IdentString
¶void emitInstToData(const llvm::MCInst& Inst,
const llvm::MCSubtargetInfo&)
void emitInstToData(const llvm::MCInst& Inst,
const llvm::MCSubtargetInfo&)
Declared at: llvm/include/llvm/MC/MCELFStreamer.h:139
Parameters
- const llvm::MCInst& Inst
- const llvm::MCSubtargetInfo&
¶void emitInstToFragment(
const llvm::MCInst& Inst,
const llvm::MCSubtargetInfo&)
void emitInstToFragment(
const llvm::MCInst& Inst,
const llvm::MCSubtargetInfo&)
Description
Emit an instruction to a special fragment, because this instruction can change its size during relaxation.
Declared at: llvm/include/llvm/MC/MCELFStreamer.h:138
Parameters
- const llvm::MCInst& Inst
- const llvm::MCSubtargetInfo&
¶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/MCELFStreamer.h:51
Parameters
- llvm::MCSymbol* Symbol
- llvm::SMLoc Loc = llvm::SMLoc()
¶void emitLabelAtPos(llvm::MCSymbol* Symbol,
llvm::SMLoc Loc,
llvm::MCFragment* F,
uint64_t Offset)
void emitLabelAtPos(llvm::MCSymbol* Symbol,
llvm::SMLoc Loc,
llvm::MCFragment* F,
uint64_t Offset)
Declared at: llvm/include/llvm/MC/MCELFStreamer.h:52
Parameters
- llvm::MCSymbol* Symbol
- llvm::SMLoc Loc
- llvm::MCFragment* F
- uint64_t Offset
¶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/MCELFStreamer.h:66
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/MCELFStreamer.h:57
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/MCELFStreamer.h:58
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 = 0)
void emitTBSSSymbol(
llvm::MCSection* Section,
llvm::MCSymbol* Symbol,
uint64_t Size,
unsigned int ByteAlignment = 0)
Description
Emit a thread local bss (.tbss) symbol.
Declared at: llvm/include/llvm/MC/MCELFStreamer.h:72
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 = 0
- - 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/MCELFStreamer.h:55
Parameters
- llvm::MCSymbol* Func
¶void emitValueImpl(
const llvm::MCExpr* Value,
unsigned int Size,
llvm::SMLoc Loc = llvm::SMLoc())
void emitValueImpl(
const llvm::MCExpr* Value,
unsigned int Size,
llvm::SMLoc Loc = llvm::SMLoc())
Description
Emit the expression \p Value into the output as a native integer of the given \p Size bytes. This is used to implement assembler directives such as .word, .quad, etc.
Declared at: llvm/include/llvm/MC/MCELFStreamer.h:74
Parameters
- const llvm::MCExpr* Value
- - The value to emit.
- unsigned int Size
- - The size of the integer (in bytes) to emit. This must match a native machine width.
- llvm::SMLoc Loc = llvm::SMLoc()
- - The location of the expression for error reporting.
¶void emitValueToAlignment(unsigned int,
int64_t,
unsigned int,
unsigned int)
void emitValueToAlignment(unsigned int,
int64_t,
unsigned int,
unsigned int)
Description
Emit some number of copies of \p Value until the byte alignment \p ByteAlignment is reached. If the number of bytes need to emit for the alignment is not a multiple of \p ValueSize, then the contents of the emitted fill bytes is undefined. This used to implement the .align assembler directive.
Declared at: llvm/include/llvm/MC/MCELFStreamer.h:79
Parameters
- unsigned int
- int64_t
- unsigned int
- unsigned int
¶void emitWeakReference(
llvm::MCSymbol* Alias,
const llvm::MCSymbol* Symbol)
void emitWeakReference(
llvm::MCSymbol* Alias,
const llvm::MCSymbol* Symbol)
Description
Emit an weak reference from \p Alias to \p Symbol. This corresponds to an assembler statement such as: .weakref alias, symbol
Declared at: llvm/include/llvm/MC/MCELFStreamer.h:56
Parameters
- llvm::MCSymbol* Alias
- - The alias that is being created.
- const llvm::MCSymbol* Symbol
- - The symbol being aliased.
¶void emitZerofill(
llvm::MCSection* Section,
llvm::MCSymbol* Symbol = nullptr,
uint64_t Size = 0,
unsigned int ByteAlignment = 0,
llvm::SMLoc L = llvm::SMLoc())
void emitZerofill(
llvm::MCSection* Section,
llvm::MCSymbol* Symbol = nullptr,
uint64_t Size = 0,
unsigned int ByteAlignment = 0,
llvm::SMLoc L = llvm::SMLoc())
Description
Emit the zerofill section and an optional symbol.
Declared at: llvm/include/llvm/MC/MCELFStreamer.h:69
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 L = llvm::SMLoc()
¶void finalizeCGProfile()
void finalizeCGProfile()
Declared at: llvm/include/llvm/MC/MCELFStreamer.h:143
¶void finalizeCGProfileEntry(
const llvm::MCSymbolRefExpr*& S,
uint64_t Offset)
void finalizeCGProfileEntry(
const llvm::MCSymbolRefExpr*& S,
uint64_t Offset)
Declared at: llvm/include/llvm/MC/MCELFStreamer.h:142
Parameters
- const llvm::MCSymbolRefExpr*& S
- uint64_t Offset
¶void finishImpl()
void finishImpl()
Description
Streamer specific finalization.
Declared at: llvm/include/llvm/MC/MCELFStreamer.h:84
¶void fixSymbolsInTLSFixups(
const llvm::MCExpr* expr)
void fixSymbolsInTLSFixups(
const llvm::MCExpr* expr)
Declared at: llvm/include/llvm/MC/MCELFStreamer.h:141
Parameters
- const llvm::MCExpr* expr
¶llvm::MCELFStreamer::AttributeItem*
getAttributeItem(unsigned int Attribute)
llvm::MCELFStreamer::AttributeItem*
getAttributeItem(unsigned int Attribute)
Declared at: llvm/include/llvm/MC/MCELFStreamer.h:120
Parameters
- unsigned int Attribute
¶void initSections(
bool NoExecStack,
const llvm::MCSubtargetInfo& STI)
void initSections(
bool NoExecStack,
const llvm::MCSubtargetInfo& STI)
Description
@ {
Declared at: llvm/include/llvm/MC/MCELFStreamer.h:49
Parameters
- bool NoExecStack
- const llvm::MCSubtargetInfo& STI
¶bool isBundleLocked() const
bool isBundleLocked() const
Declared at: llvm/include/llvm/MC/MCELFStreamer.h:137
¶void mergeFragment(llvm::MCDataFragment*,
llvm::MCDataFragment*)
void mergeFragment(llvm::MCDataFragment*,
llvm::MCDataFragment*)
Description
Merge the content of the fragment \p EF into the fragment \p DF.
Declared at: llvm/include/llvm/MC/MCELFStreamer.h:146
Parameters
¶void reset()
void reset()
Description
state management
Declared at: llvm/include/llvm/MC/MCELFStreamer.h:40
¶void setAttributeItem(unsigned int Attribute,
llvm::StringRef Value,
bool OverwriteExisting)
void setAttributeItem(unsigned int Attribute,
llvm::StringRef Value,
bool OverwriteExisting)
Declared at: llvm/include/llvm/MC/MCELFStreamer.h:110
Parameters
- unsigned int Attribute
- llvm::StringRef Value
- bool OverwriteExisting
¶void setAttributeItem(unsigned int Attribute,
unsigned int Value,
bool OverwriteExisting)
void setAttributeItem(unsigned int Attribute,
unsigned int Value,
bool OverwriteExisting)
Declared at: llvm/include/llvm/MC/MCELFStreamer.h:108
Parameters
- unsigned int Attribute
- unsigned int Value
- bool OverwriteExisting
¶void setAttributeItems(
unsigned int Attribute,
unsigned int IntValue,
llvm::StringRef StringValue,
bool OverwriteExisting)
void setAttributeItems(
unsigned int Attribute,
unsigned int IntValue,
llvm::StringRef StringValue,
bool OverwriteExisting)
Declared at: llvm/include/llvm/MC/MCELFStreamer.h:112
Parameters
- unsigned int Attribute
- unsigned int IntValue
- llvm::StringRef StringValue
- bool OverwriteExisting
¶~MCELFStreamer()
~MCELFStreamer()
Declared at: llvm/include/llvm/MC/MCELFStreamer.h:37