LLVM 20.0.0git
|
#include "llvm/MC/MCELFStreamer.h"
Classes | |
struct | AttributeItem |
ELF object attributes section emission support. More... | |
Public Member Functions | |
MCELFStreamer (MCContext &Context, std::unique_ptr< MCAsmBackend > TAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > Emitter) | |
~MCELFStreamer () override=default | |
void | reset () override |
state management | |
ELFObjectWriter & | getWriter () |
Public Member Functions inherited from llvm::MCObjectStreamer | |
void | reset () override |
state management | |
bool | isIntegratedAssemblerRequired () const override |
Object streamers require the integrated assembler. | |
void | emitFrames (MCAsmBackend *MAB) |
void | emitCFISections (bool EH, bool Debug) override |
void | insert (MCFragment *F) |
MCDataFragment * | getOrCreateDataFragment (const MCSubtargetInfo *STI=nullptr) |
Get a data fragment to write into, creating a new one if the current fragment is not a data fragment. | |
void | visitUsedSymbol (const MCSymbol &Sym) override |
MCAssembler & | getAssembler () |
MCAssembler * | getAssemblerPtr () override |
void | emitLabel (MCSymbol *Symbol, SMLoc Loc=SMLoc()) override |
Emit a label for Symbol into the current section. | |
void | emitAssignment (MCSymbol *Symbol, const MCExpr *Value) override |
Emit an assignment of Value to Symbol . | |
void | emitConditionalAssignment (MCSymbol *Symbol, const MCExpr *Value) override |
Emit an assignment of Value to Symbol , but only if Value is also emitted. | |
void | emitValueImpl (const MCExpr *Value, unsigned Size, SMLoc Loc=SMLoc()) override |
Emit the expression Value into the output as a native integer of the given Size bytes. | |
void | emitULEB128Value (const MCExpr *Value) override |
void | emitSLEB128Value (const MCExpr *Value) override |
void | emitWeakReference (MCSymbol *Alias, const MCSymbol *Symbol) override |
Emit an weak reference from Alias to Symbol . | |
void | changeSection (MCSection *Section, uint32_t Subsection=0) override |
This is called by popSection and switchSection, if the current section changes. | |
void | switchSectionNoPrint (MCSection *Section) override |
Similar to switchSection, but does not print the section directive. | |
void | emitInstruction (const MCInst &Inst, const MCSubtargetInfo &STI) override |
Emit the given Instruction into the current section. | |
void | emitBundleAlignMode (Align Alignment) override |
Set the bundle alignment mode from now on in the section. | |
void | emitBundleLock (bool AlignToEnd) override |
The following instructions are a bundle-locked group. | |
void | emitBundleUnlock () override |
Ends a bundle-locked group. | |
void | emitBytes (StringRef Data) override |
Emit the bytes in Data into the output. | |
void | emitValueToAlignment (Align Alignment, int64_t Value=0, unsigned ValueSize=1, unsigned MaxBytesToEmit=0) override |
Emit some number of copies of Value until the byte alignment ByteAlignment is reached. | |
void | emitCodeAlignment (Align ByteAlignment, const MCSubtargetInfo *STI, unsigned MaxBytesToEmit=0) override |
Emit nops until the byte alignment ByteAlignment is reached. | |
void | emitValueToOffset (const MCExpr *Offset, unsigned char Value, SMLoc Loc) override |
Emit some number of copies of Value until the byte offset Offset is reached. | |
void | emitDwarfLocDirective (unsigned FileNo, unsigned Line, unsigned Column, unsigned Flags, unsigned Isa, unsigned Discriminator, StringRef FileName) override |
This implements the DWARF2 '.loc fileno lineno ...' assembler directive. | |
void | emitDwarfAdvanceLineAddr (int64_t LineDelta, const MCSymbol *LastLabel, const MCSymbol *Label, unsigned PointerSize) override |
If targets does not support representing debug line section by .loc/.file directives in assembly output, we need to populate debug line section with raw debug line contents. | |
void | emitDwarfLineEndEntry (MCSection *Section, MCSymbol *LastLabel) override |
Emit the debug line end entry. | |
void | emitDwarfAdvanceFrameAddr (const MCSymbol *LastLabel, const MCSymbol *Label, SMLoc Loc) |
void | emitCVLocDirective (unsigned FunctionId, unsigned FileNo, unsigned Line, unsigned Column, bool PrologueEnd, bool IsStmt, StringRef FileName, SMLoc Loc) override |
This implements the CodeView '.cv_loc' assembler directive. | |
void | emitCVLinetableDirective (unsigned FunctionId, const MCSymbol *Begin, const MCSymbol *End) override |
This implements the CodeView '.cv_linetable' assembler directive. | |
void | emitCVInlineLinetableDirective (unsigned PrimaryFunctionId, unsigned SourceFileId, unsigned SourceLineNum, const MCSymbol *FnStartSym, const MCSymbol *FnEndSym) override |
This implements the CodeView '.cv_inline_linetable' assembler directive. | |
void | emitCVDefRangeDirective (ArrayRef< std::pair< const MCSymbol *, const MCSymbol * > > Ranges, StringRef FixedSizePortion) override |
This implements the CodeView '.cv_def_range' assembler directive. | |
void | emitCVStringTableDirective () override |
This implements the CodeView '.cv_stringtable' assembler directive. | |
void | emitCVFileChecksumsDirective () override |
This implements the CodeView '.cv_filechecksums' assembler directive. | |
void | emitCVFileChecksumOffsetDirective (unsigned FileNo) override |
This implements the CodeView '.cv_filechecksumoffset' assembler directive. | |
void | emitDTPRel32Value (const MCExpr *Value) override |
Emit the expression Value into the output as a dtprel (32-bit DTP relative) value. | |
void | emitDTPRel64Value (const MCExpr *Value) override |
Emit the expression Value into the output as a dtprel (64-bit DTP relative) value. | |
void | emitTPRel32Value (const MCExpr *Value) override |
Emit the expression Value into the output as a tprel (32-bit TP relative) value. | |
void | emitTPRel64Value (const MCExpr *Value) override |
Emit the expression Value into the output as a tprel (64-bit TP relative) value. | |
void | emitGPRel32Value (const MCExpr *Value) override |
Emit the expression Value into the output as a gprel32 (32-bit GP relative) value. | |
void | emitGPRel64Value (const MCExpr *Value) override |
Emit the expression Value into the output as a gprel64 (64-bit GP relative) value. | |
std::optional< std::pair< bool, std::string > > | emitRelocDirective (const MCExpr &Offset, StringRef Name, const MCExpr *Expr, SMLoc Loc, const MCSubtargetInfo &STI) override |
Record a relocation described by the .reloc directive. | |
void | emitFill (const MCExpr &NumBytes, uint64_t FillValue, SMLoc Loc=SMLoc()) override |
Emit Size bytes worth of the value specified by FillValue . | |
void | emitFill (const MCExpr &NumValues, int64_t Size, int64_t Expr, SMLoc Loc=SMLoc()) override |
Emit NumValues copies of Size bytes. | |
void | emitNops (int64_t NumBytes, int64_t ControlledNopLength, SMLoc Loc, const MCSubtargetInfo &STI) override |
void | emitFileDirective (StringRef Filename) override |
Switch to a new logical file. | |
void | emitFileDirective (StringRef Filename, StringRef CompilerVersion, StringRef TimeStamp, StringRef Description) override |
Emit ".file assembler diretive with additioal info. | |
void | emitAddrsig () override |
void | emitAddrsigSym (const MCSymbol *Sym) override |
void | finishImpl () override |
Streamer specific finalization. | |
void | emitAbsoluteSymbolDiff (const MCSymbol *Hi, const MCSymbol *Lo, unsigned Size) override |
Emit the absolute difference between two symbols if possible. | |
void | emitAbsoluteSymbolDiffAsULEB128 (const MCSymbol *Hi, const MCSymbol *Lo) override |
Emit the absolute difference between two symbols encoded with ULEB128. | |
bool | mayHaveInstructions (MCSection &Sec) const override |
void | emitPendingAssignments (MCSymbol *Symbol) |
Emits pending conditional assignments that depend on Symbol being emitted. | |
void | emitFill (uint64_t NumBytes, uint8_t FillValue) |
Emit NumBytes bytes worth of the value specified by FillValue. | |
virtual void | emitFill (const MCExpr &NumBytes, uint64_t FillValue, SMLoc Loc=SMLoc()) |
Emit Size bytes worth of the value specified by FillValue . | |
virtual void | emitFill (const MCExpr &NumValues, int64_t Size, int64_t Expr, SMLoc Loc=SMLoc()) |
Emit NumValues copies of Size bytes. | |
Public Member Functions inherited from llvm::MCStreamer | |
MCStreamer (const MCStreamer &)=delete | |
MCStreamer & | operator= (const MCStreamer &)=delete |
virtual | ~MCStreamer () |
void | visitUsedExpr (const MCExpr &Expr) |
virtual void | visitUsedSymbol (const MCSymbol &Sym) |
void | setTargetStreamer (MCTargetStreamer *TS) |
void | setStartTokLocPtr (const SMLoc *Loc) |
SMLoc | getStartTokLoc () const |
virtual void | reset () |
State management. | |
MCContext & | getContext () const |
virtual MCAssembler * | getAssemblerPtr () |
void | setUseAssemblerInfoForParsing (bool v) |
bool | getUseAssemblerInfoForParsing () |
MCTargetStreamer * | getTargetStreamer () |
void | setAllowAutoPadding (bool v) |
bool | getAllowAutoPadding () const |
virtual MCSymbol * | emitCFILabel () |
When emitting an object file, create and emit a real label. | |
WinEH::FrameInfo * | EnsureValidWinFrameInfo (SMLoc Loc) |
Retrieve the current frame info if one is available and it is not yet closed. | |
unsigned | getNumFrameInfos () |
ArrayRef< MCDwarfFrameInfo > | getDwarfFrameInfos () const |
bool | hasUnfinishedDwarfFrameInfo () |
unsigned | getNumWinFrameInfos () |
ArrayRef< std::unique_ptr< WinEH::FrameInfo > > | getWinFrameInfos () const |
void | generateCompactUnwindEncodings (MCAsmBackend *MAB) |
virtual void | emitFileDirective (StringRef Filename) |
Switch to a new logical file. | |
virtual void | emitFileDirective (StringRef Filename, StringRef CompilerVersion, StringRef TimeStamp, StringRef Description) |
Emit ".file assembler diretive with additioal info. | |
virtual void | emitIdent (StringRef IdentString) |
Emit the "identifiers" directive. | |
unsigned | emitDwarfFileDirective (unsigned FileNo, StringRef Directory, StringRef Filename, std::optional< MD5::MD5Result > Checksum=std::nullopt, std::optional< StringRef > Source=std::nullopt, unsigned CUID=0) |
Associate a filename with a specified logical file number. | |
virtual Expected< unsigned > | tryEmitDwarfFileDirective (unsigned FileNo, StringRef Directory, StringRef Filename, std::optional< MD5::MD5Result > Checksum=std::nullopt, std::optional< StringRef > Source=std::nullopt, unsigned CUID=0) |
Associate a filename with a specified logical file number. | |
virtual void | emitDwarfFile0Directive (StringRef Directory, StringRef Filename, std::optional< MD5::MD5Result > Checksum, std::optional< StringRef > Source, unsigned CUID=0) |
Specify the "root" file of the compilation, using the ".file 0" extension. | |
virtual void | emitCFIBKeyFrame () |
virtual void | emitCFIMTETaggedFrame () |
virtual void | emitDwarfLocDirective (unsigned FileNo, unsigned Line, unsigned Column, unsigned Flags, unsigned Isa, unsigned Discriminator, StringRef FileName) |
This implements the DWARF2 '.loc fileno lineno ...' assembler directive. | |
virtual bool | emitCVFileDirective (unsigned FileNo, StringRef Filename, ArrayRef< uint8_t > Checksum, unsigned ChecksumKind) |
Associate a filename with a specified logical file number, and also specify that file's checksum information. | |
virtual bool | emitCVFuncIdDirective (unsigned FunctionId) |
Introduces a function id for use with .cv_loc. | |
virtual bool | emitCVInlineSiteIdDirective (unsigned FunctionId, unsigned IAFunc, unsigned IAFile, unsigned IALine, unsigned IACol, SMLoc Loc) |
Introduces an inline call site id for use with .cv_loc. | |
virtual void | emitCVLocDirective (unsigned FunctionId, unsigned FileNo, unsigned Line, unsigned Column, bool PrologueEnd, bool IsStmt, StringRef FileName, SMLoc Loc) |
This implements the CodeView '.cv_loc' assembler directive. | |
virtual void | emitCVLinetableDirective (unsigned FunctionId, const MCSymbol *FnStart, const MCSymbol *FnEnd) |
This implements the CodeView '.cv_linetable' assembler directive. | |
virtual void | emitCVInlineLinetableDirective (unsigned PrimaryFunctionId, unsigned SourceFileId, unsigned SourceLineNum, const MCSymbol *FnStartSym, const MCSymbol *FnEndSym) |
This implements the CodeView '.cv_inline_linetable' assembler directive. | |
virtual void | emitCVDefRangeDirective (ArrayRef< std::pair< const MCSymbol *, const MCSymbol * > > Ranges, StringRef FixedSizePortion) |
This implements the CodeView '.cv_def_range' assembler directive. | |
virtual void | emitCVDefRangeDirective (ArrayRef< std::pair< const MCSymbol *, const MCSymbol * > > Ranges, codeview::DefRangeRegisterRelHeader DRHdr) |
virtual void | emitCVDefRangeDirective (ArrayRef< std::pair< const MCSymbol *, const MCSymbol * > > Ranges, codeview::DefRangeSubfieldRegisterHeader DRHdr) |
virtual void | emitCVDefRangeDirective (ArrayRef< std::pair< const MCSymbol *, const MCSymbol * > > Ranges, codeview::DefRangeRegisterHeader DRHdr) |
virtual void | emitCVDefRangeDirective (ArrayRef< std::pair< const MCSymbol *, const MCSymbol * > > Ranges, codeview::DefRangeFramePointerRelHeader DRHdr) |
virtual void | emitCVStringTableDirective () |
This implements the CodeView '.cv_stringtable' assembler directive. | |
virtual void | emitCVFileChecksumsDirective () |
This implements the CodeView '.cv_filechecksums' assembler directive. | |
virtual void | emitCVFileChecksumOffsetDirective (unsigned FileNo) |
This implements the CodeView '.cv_filechecksumoffset' assembler directive. | |
virtual void | emitCVFPOData (const MCSymbol *ProcSym, SMLoc Loc={}) |
This implements the CodeView '.cv_fpo_data' assembler directive. | |
virtual void | emitAbsoluteSymbolDiff (const MCSymbol *Hi, const MCSymbol *Lo, unsigned Size) |
Emit the absolute difference between two symbols. | |
virtual void | emitAbsoluteSymbolDiffAsULEB128 (const MCSymbol *Hi, const MCSymbol *Lo) |
Emit the absolute difference between two symbols encoded with ULEB128. | |
virtual MCSymbol * | getDwarfLineTableSymbol (unsigned CUID) |
virtual void | emitCFISections (bool EH, bool Debug) |
void | emitCFIStartProc (bool IsSimple, SMLoc Loc=SMLoc()) |
void | emitCFIEndProc () |
virtual void | emitCFIDefCfa (int64_t Register, int64_t Offset, SMLoc Loc={}) |
virtual void | emitCFIDefCfaOffset (int64_t Offset, SMLoc Loc={}) |
virtual void | emitCFIDefCfaRegister (int64_t Register, SMLoc Loc={}) |
virtual void | emitCFILLVMDefAspaceCfa (int64_t Register, int64_t Offset, int64_t AddressSpace, SMLoc Loc={}) |
virtual void | emitCFIOffset (int64_t Register, int64_t Offset, SMLoc Loc={}) |
virtual void | emitCFIPersonality (const MCSymbol *Sym, unsigned Encoding) |
virtual void | emitCFILsda (const MCSymbol *Sym, unsigned Encoding) |
virtual void | emitCFIRememberState (SMLoc Loc) |
virtual void | emitCFIRestoreState (SMLoc Loc) |
virtual void | emitCFISameValue (int64_t Register, SMLoc Loc={}) |
virtual void | emitCFIRestore (int64_t Register, SMLoc Loc={}) |
virtual void | emitCFIRelOffset (int64_t Register, int64_t Offset, SMLoc Loc) |
virtual void | emitCFIAdjustCfaOffset (int64_t Adjustment, SMLoc Loc={}) |
virtual void | emitCFIEscape (StringRef Values, SMLoc Loc={}) |
virtual void | emitCFIReturnColumn (int64_t Register) |
virtual void | emitCFIGnuArgsSize (int64_t Size, SMLoc Loc={}) |
virtual void | emitCFISignalFrame () |
virtual void | emitCFIUndefined (int64_t Register, SMLoc Loc={}) |
virtual void | emitCFIRegister (int64_t Register1, int64_t Register2, SMLoc Loc={}) |
virtual void | emitCFIWindowSave (SMLoc Loc={}) |
virtual void | emitCFINegateRAState (SMLoc Loc={}) |
virtual void | emitCFILabelDirective (SMLoc Loc, StringRef Name) |
virtual void | emitWinCFIStartProc (const MCSymbol *Symbol, SMLoc Loc=SMLoc()) |
virtual void | emitWinCFIEndProc (SMLoc Loc=SMLoc()) |
virtual void | emitWinCFIFuncletOrFuncEnd (SMLoc Loc=SMLoc()) |
This is used on platforms, such as Windows on ARM64, that require function or funclet sizes to be emitted in .xdata before the End marker is emitted for the frame. | |
virtual void | emitWinCFIStartChained (SMLoc Loc=SMLoc()) |
virtual void | emitWinCFIEndChained (SMLoc Loc=SMLoc()) |
virtual void | emitWinCFIPushReg (MCRegister Register, SMLoc Loc=SMLoc()) |
virtual void | emitWinCFISetFrame (MCRegister Register, unsigned Offset, SMLoc Loc=SMLoc()) |
virtual void | emitWinCFIAllocStack (unsigned Size, SMLoc Loc=SMLoc()) |
virtual void | emitWinCFISaveReg (MCRegister Register, unsigned Offset, SMLoc Loc=SMLoc()) |
virtual void | emitWinCFISaveXMM (MCRegister Register, unsigned Offset, SMLoc Loc=SMLoc()) |
virtual void | emitWinCFIPushFrame (bool Code, SMLoc Loc=SMLoc()) |
virtual void | emitWinCFIEndProlog (SMLoc Loc=SMLoc()) |
virtual void | emitWinEHHandler (const MCSymbol *Sym, bool Unwind, bool Except, SMLoc Loc=SMLoc()) |
virtual void | emitWinEHHandlerData (SMLoc Loc=SMLoc()) |
virtual void | emitCGProfileEntry (const MCSymbolRefExpr *From, const MCSymbolRefExpr *To, uint64_t Count) |
MCSection * | getAssociatedPDataSection (const MCSection *TextSec) |
Get the .pdata section used for the given section. | |
MCSection * | getAssociatedXDataSection (const MCSection *TextSec) |
Get the .xdata section used for the given section. | |
virtual void | emitSyntaxDirective () |
virtual std::optional< std::pair< bool, std::string > > | emitRelocDirective (const MCExpr &Offset, StringRef Name, const MCExpr *Expr, SMLoc Loc, const MCSubtargetInfo &STI) |
Record a relocation described by the .reloc directive. | |
virtual void | emitAddrsig () |
virtual void | emitAddrsigSym (const MCSymbol *Sym) |
virtual void | emitInstruction (const MCInst &Inst, const MCSubtargetInfo &STI) |
Emit the given Instruction into the current section. | |
virtual void | emitPseudoProbe (uint64_t Guid, uint64_t Index, uint64_t Type, uint64_t Attr, uint64_t Discriminator, const MCPseudoProbeInlineStack &InlineStack, MCSymbol *FnSym) |
Emit the a pseudo probe into the current section. | |
virtual void | emitBundleAlignMode (Align Alignment) |
Set the bundle alignment mode from now on in the section. | |
virtual void | emitBundleLock (bool AlignToEnd) |
The following instructions are a bundle-locked group. | |
virtual void | emitBundleUnlock () |
Ends a bundle-locked group. | |
void | emitRawText (const Twine &String) |
If this file is backed by a assembly streamer, this dumps the specified string in the output .s file. | |
virtual void | finishImpl () |
Streamer specific finalization. | |
void | finish (SMLoc EndLoc=SMLoc()) |
Finish emission of machine code. | |
virtual bool | mayHaveInstructions (MCSection &Sec) const |
void | maybeEmitDwarf64Mark () |
Emit a special value of 0xffffffff if producing 64-bit debugging info. | |
virtual void | emitDwarfUnitLength (uint64_t Length, const Twine &Comment) |
Emit a unit length field. | |
virtual MCSymbol * | emitDwarfUnitLength (const Twine &Prefix, const Twine &Comment) |
Emit a unit length field. | |
virtual void | emitDwarfLineStartLabel (MCSymbol *StartSym) |
Emit the debug line start label. | |
virtual void | emitDwarfLineEndEntry (MCSection *Section, MCSymbol *LastLabel) |
Emit the debug line end entry. | |
virtual void | emitDwarfAdvanceLineAddr (int64_t LineDelta, const MCSymbol *LastLabel, const MCSymbol *Label, unsigned PointerSize) |
If targets does not support representing debug line section by .loc/.file directives in assembly output, we need to populate debug line section with raw debug line contents. | |
virtual void | doFinalizationAtSectionEnd (MCSection *Section) |
Do finalization for the streamer at the end of a section. | |
virtual bool | isVerboseAsm () const |
Return true if this streamer supports verbose assembly and if it is enabled. | |
virtual bool | hasRawTextSupport () const |
Return true if this asm streamer supports emitting unformatted text to the .s file with EmitRawText. | |
virtual void | AddComment (const Twine &T, bool EOL=true) |
Add a textual comment. | |
virtual raw_ostream & | getCommentOS () |
Return a raw_ostream that comments can be written to. | |
virtual void | emitRawComment (const Twine &T, bool TabPrefix=true) |
Print T and prefix it with the comment string (normally #) and optionally a tab. | |
virtual void | addExplicitComment (const Twine &T) |
Add explicit comment T. | |
virtual void | emitExplicitComments () |
Emit added explicit comments. | |
virtual void | addBlankLine () |
Emit a blank line to a .s file to pretty it up. | |
MCSectionSubPair | getCurrentSection () const |
Return the current section that the streamer is emitting code to. | |
MCSection * | getCurrentSectionOnly () const |
MCSectionSubPair | getPreviousSection () const |
Return the previous section that the streamer is emitting code to. | |
MCFragment * | getCurrentFragment () const |
void | pushSection () |
Save the current and previous section on the section stack. | |
bool | popSection () |
Restore the current and previous section from the section stack. | |
virtual void | switchSection (MCSection *Section, uint32_t Subsec=0) |
Set the current section where code is being emitted to Section . | |
bool | switchSection (MCSection *Section, const MCExpr *) |
MCSymbol * | endSection (MCSection *Section) |
virtual StringRef | getMnemonic (MCInst &MI) |
Returns the mnemonic for MI , if the streamer has access to a instruction printer and returns an empty string otherwise. | |
virtual void | emitEHSymAttributes (const MCSymbol *Symbol, MCSymbol *EHSymbol) |
virtual void | emitLinkerOptions (ArrayRef< std::string > Kind) |
Emit the given list Options of strings as linker options into the output. | |
virtual void | emitDataRegion (MCDataRegionType Kind) |
Note in the output the specified region Kind . | |
virtual void | emitVersionMin (MCVersionMinType Type, unsigned Major, unsigned Minor, unsigned Update, VersionTuple SDKVersion) |
Specify the Mach-O minimum deployment target version. | |
virtual void | emitBuildVersion (unsigned Platform, unsigned Major, unsigned Minor, unsigned Update, VersionTuple SDKVersion) |
Emit/Specify Mach-O build version command. | |
virtual void | emitDarwinTargetVariantBuildVersion (unsigned Platform, unsigned Major, unsigned Minor, unsigned Update, VersionTuple SDKVersion) |
void | emitVersionForTarget (const Triple &Target, const VersionTuple &SDKVersion, const Triple *DarwinTargetVariantTriple, const VersionTuple &DarwinTargetVariantSDKVersion) |
virtual void | beginCOFFSymbolDef (const MCSymbol *Symbol) |
Start emitting COFF symbol definition. | |
virtual void | emitCOFFSymbolStorageClass (int StorageClass) |
Emit the storage class of the symbol. | |
virtual void | emitCOFFSymbolType (int Type) |
Emit the type of the symbol. | |
virtual void | endCOFFSymbolDef () |
Marks the end of the symbol definition. | |
virtual void | emitCOFFSafeSEH (MCSymbol const *Symbol) |
virtual void | emitCOFFSymbolIndex (MCSymbol const *Symbol) |
Emits the symbol table index of a Symbol into the current section. | |
virtual void | emitCOFFSectionIndex (MCSymbol const *Symbol) |
Emits a COFF section index. | |
virtual void | emitCOFFSecRel32 (MCSymbol const *Symbol, uint64_t Offset) |
Emits a COFF section relative relocation. | |
virtual void | emitCOFFImgRel32 (MCSymbol const *Symbol, int64_t Offset) |
Emits a COFF image relative relocation. | |
virtual void | emitXCOFFLocalCommonSymbol (MCSymbol *LabelSym, uint64_t Size, MCSymbol *CsectSym, Align Alignment) |
Emits an lcomm directive with XCOFF csect information. | |
virtual void | emitXCOFFSymbolLinkageWithVisibility (MCSymbol *Symbol, MCSymbolAttr Linkage, MCSymbolAttr Visibility) |
Emit a symbol's linkage and visibility with a linkage directive for XCOFF. | |
virtual void | emitXCOFFRenameDirective (const MCSymbol *Name, StringRef Rename) |
Emit a XCOFF .rename directive which creates a synonym for an illegal or undesirable name. | |
virtual void | emitXCOFFExceptDirective (const MCSymbol *Symbol, const MCSymbol *Trap, unsigned Lang, unsigned Reason, unsigned FunctionSize, bool hasDebug) |
Emit an XCOFF .except directive which adds information about a trap instruction to the object file exception section. | |
virtual void | emitXCOFFRefDirective (const MCSymbol *Symbol) |
Emit a XCOFF .ref directive which creates R_REF type entry in the relocation table for one or more symbols. | |
virtual void | emitXCOFFCInfoSym (StringRef Name, StringRef Metadata) |
Emit a C_INFO symbol with XCOFF embedded metadata to the .info section. | |
virtual void | emitLOHDirective (MCLOHType Kind, const MCLOHArgs &Args) |
Emit a Linker Optimization Hint (LOH) directive. | |
virtual void | emitBinaryData (StringRef Data) |
Functionally identical to EmitBytes. | |
void | emitValue (const MCExpr *Value, unsigned Size, SMLoc Loc=SMLoc()) |
virtual void | emitIntValue (uint64_t Value, unsigned Size) |
Special case of EmitValue that avoids the client having to pass in a MCExpr for constant integers. | |
virtual void | emitIntValue (const APInt &Value) |
virtual void | emitIntValueInHex (uint64_t Value, unsigned Size) |
Special case of EmitValue that avoids the client having to pass in a MCExpr for constant integers & prints in Hex format for certain modes. | |
void | emitInt8 (uint64_t Value) |
void | emitInt16 (uint64_t Value) |
void | emitInt32 (uint64_t Value) |
void | emitInt64 (uint64_t Value) |
virtual void | emitIntValueInHexWithPadding (uint64_t Value, unsigned Size) |
Special case of EmitValue that avoids the client having to pass in a MCExpr for constant integers & prints in Hex format for certain modes, pads the field with leading zeros to Size width. | |
unsigned | emitULEB128IntValue (uint64_t Value, unsigned PadTo=0) |
Special case of EmitULEB128Value that avoids the client having to pass in a MCExpr for constant integers. | |
unsigned | emitSLEB128IntValue (int64_t Value) |
Special case of EmitSLEB128Value that avoids the client having to pass in a MCExpr for constant integers. | |
void | emitSymbolValue (const MCSymbol *Sym, unsigned Size, bool IsSectionRelative=false) |
Special case of EmitValue that avoids the client having to pass in a MCExpr for MCSymbols. | |
void | emitFill (uint64_t NumBytes, uint8_t FillValue) |
Emit NumBytes bytes worth of the value specified by FillValue. | |
void | emitZeros (uint64_t NumBytes) |
Emit NumBytes worth of zeros. | |
MCStreamer Interface | |
SmallVector< AttributeItem, 64 > | Contents |
void | initSections (bool NoExecStack, const MCSubtargetInfo &STI) override |
Create the default sections and set the initial one. | |
void | changeSection (MCSection *Section, uint32_t Subsection=0) override |
This is called by popSection and switchSection, if the current section changes. | |
void | emitLabel (MCSymbol *Symbol, SMLoc Loc=SMLoc()) override |
Emit a label for Symbol into the current section. | |
void | emitLabelAtPos (MCSymbol *Symbol, SMLoc Loc, MCDataFragment &F, uint64_t Offset) override |
void | emitAssemblerFlag (MCAssemblerFlag Flag) override |
Note in the output the specified Flag . | |
void | emitThumbFunc (MCSymbol *Func) override |
Note in the output that the specified Func is a Thumb mode function (ARM target only). | |
void | emitWeakReference (MCSymbol *Alias, const MCSymbol *Symbol) override |
Emit an weak reference from Alias to Symbol . | |
bool | emitSymbolAttribute (MCSymbol *Symbol, MCSymbolAttr Attribute) override |
Add the given Attribute to Symbol . | |
void | emitSymbolDesc (MCSymbol *Symbol, unsigned DescValue) override |
Set the DescValue for the Symbol . | |
void | emitCommonSymbol (MCSymbol *Symbol, uint64_t Size, Align ByteAlignment) override |
Emit a common symbol. | |
void | emitELFSize (MCSymbol *Symbol, const MCExpr *Value) override |
Emit an ELF .size directive. | |
void | emitELFSymverDirective (const MCSymbol *OriginalSym, StringRef Name, bool KeepOriginalSym) override |
Emit an ELF .symver directive. | |
void | emitLocalCommonSymbol (MCSymbol *Symbol, uint64_t Size, Align ByteAlignment) override |
Emit a local common (.lcomm) symbol. | |
void | emitZerofill (MCSection *Section, MCSymbol *Symbol=nullptr, uint64_t Size=0, Align ByteAlignment=Align(1), SMLoc L=SMLoc()) override |
Emit the zerofill section and an optional symbol. | |
void | emitTBSSSymbol (MCSection *Section, MCSymbol *Symbol, uint64_t Size, Align ByteAlignment=Align(1)) override |
Emit a thread local bss (.tbss) symbol. | |
void | emitValueImpl (const MCExpr *Value, unsigned Size, SMLoc Loc=SMLoc()) override |
Emit the expression Value into the output as a native integer of the given Size bytes. | |
void | emitIdent (StringRef IdentString) override |
Emit the "identifiers" directive. | |
void | emitValueToAlignment (Align, int64_t, unsigned, unsigned) override |
Emit some number of copies of Value until the byte alignment ByteAlignment is reached. | |
void | emitCGProfileEntry (const MCSymbolRefExpr *From, const MCSymbolRefExpr *To, uint64_t Count) override |
void | finishImpl () final |
Streamer specific finalization. | |
void | emitBundleAlignMode (Align Alignment) override |
Set the bundle alignment mode from now on in the section. | |
void | emitBundleLock (bool AlignToEnd) override |
The following instructions are a bundle-locked group. | |
void | emitBundleUnlock () override |
Ends a bundle-locked group. | |
void | setAttributeItem (unsigned Attribute, unsigned Value, bool OverwriteExisting) |
void | setAttributeItem (unsigned Attribute, StringRef Value, bool OverwriteExisting) |
void | setAttributeItems (unsigned Attribute, unsigned IntValue, StringRef StringValue, bool OverwriteExisting) |
void | emitAttributesSection (StringRef Vendor, const Twine &Section, unsigned Type, MCSection *&AttributeSection) |
void | emitGNUAttribute (unsigned Tag, unsigned Value) override |
Emit a .gnu_attribute directive. | |
Additional Inherited Members | |
Protected Member Functions inherited from llvm::MCObjectStreamer | |
MCObjectStreamer (MCContext &Context, std::unique_ptr< MCAsmBackend > TAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > Emitter) | |
~MCObjectStreamer () | |
bool | changeSectionImpl (MCSection *Section, uint32_t Subsection) |
Protected Member Functions inherited from llvm::MCStreamer | |
MCStreamer (MCContext &Ctx) | |
virtual void | changeSection (MCSection *, uint32_t) |
This is called by popSection and switchSection, if the current section changes. | |
virtual void | emitCFIStartProcImpl (MCDwarfFrameInfo &Frame) |
virtual void | emitCFIEndProcImpl (MCDwarfFrameInfo &CurFrame) |
WinEH::FrameInfo * | getCurrentWinFrameInfo () |
virtual void | emitWindowsUnwindTables (WinEH::FrameInfo *Frame) |
virtual void | emitWindowsUnwindTables () |
virtual void | emitRawTextImpl (StringRef String) |
EmitRawText - If this file is backed by an assembly streamer, this dumps the specified string in the output .s file. | |
bool | checkCVLocSection (unsigned FuncId, unsigned FileNo, SMLoc Loc) |
Returns true if the .cv_loc directive is in the right section. | |
Protected Attributes inherited from llvm::MCStreamer | |
MCFragment * | CurFrag = nullptr |
Definition at line 32 of file MCELFStreamer.h.
MCELFStreamer::MCELFStreamer | ( | MCContext & | Context, |
std::unique_ptr< MCAsmBackend > | TAB, | ||
std::unique_ptr< MCObjectWriter > | OW, | ||
std::unique_ptr< MCCodeEmitter > | Emitter | ||
) |
Definition at line 43 of file MCELFStreamer.cpp.
|
overridedefault |
This is called by popSection and switchSection, if the current section changes.
Reimplemented from llvm::MCStreamer.
Reimplemented in llvm::RISCVELFStreamer.
Definition at line 102 of file MCELFStreamer.cpp.
References llvm::MCObjectStreamer::changeSectionImpl(), F, llvm::MCObjectStreamer::getAssembler(), llvm::MCStreamer::getCurrentFragment(), getWriter(), llvm::ELFObjectWriter::markGnuAbi(), llvm::report_fatal_error(), setSectionAlignmentForBundling(), and llvm::ELF::SHF_GNU_RETAIN.
Referenced by llvm::RISCVELFStreamer::changeSection().
|
overridevirtual |
Note in the output the specified Flag
.
Reimplemented from llvm::MCStreamer.
Definition at line 89 of file MCELFStreamer.cpp.
References llvm::MCObjectStreamer::getAssembler(), llvm::MCAssembler::getBackend(), and llvm::MCAsmBackend::handleAssemblerFlag().
|
inline |
Definition at line 118 of file MCELFStreamer.h.
References Contents.
|
overridevirtual |
Set the bundle alignment mode from now on in the section.
The value 1 means turn the bundle alignment off.
Reimplemented from llvm::MCStreamer.
Definition at line 567 of file MCELFStreamer.cpp.
References assert(), llvm::MCObjectStreamer::getAssembler(), llvm::MCAssembler::getBundleAlignSize(), llvm::Log2(), llvm::report_fatal_error(), llvm::MCAssembler::setBundleAlignSize(), and llvm::Align::value().
|
overridevirtual |
The following instructions are a bundle-locked group.
AlignToEnd | - If true, the bundle-locked group will be aligned to the end of a bundle. |
Reimplemented from llvm::MCStreamer.
Definition at line 577 of file MCELFStreamer.cpp.
References llvm::MCSection::BundleLocked, llvm::MCSection::BundleLockedAlignToEnd, llvm::MCObjectStreamer::getAssembler(), llvm::MCStreamer::getCurrentSectionOnly(), llvm::report_fatal_error(), llvm::MCSection::setBundleGroupBeforeFirstInst(), and llvm::MCSection::setBundleLockState().
|
overridevirtual |
Ends a bundle-locked group.
Reimplemented from llvm::MCStreamer.
Definition at line 590 of file MCELFStreamer.cpp.
References llvm::MCObjectStreamer::getAssembler(), llvm::MCStreamer::getCurrentSectionOnly(), llvm::MCSection::isBundleGroupBeforeFirstInst(), llvm::MCSection::NotBundleLocked, llvm::report_fatal_error(), and llvm::MCSection::setBundleLockState().
|
overridevirtual |
Reimplemented from llvm::MCStreamer.
Definition at line 336 of file MCELFStreamer.cpp.
References From, llvm::MCObjectWriter::getCGProfile(), and getWriter().
|
overridevirtual |
Emit a common symbol.
Symbol | - The common symbol to emit. |
Size | - The size of the common symbol. |
ByteAlignment | - The alignment of the symbol. |
Implements llvm::MCStreamer.
Definition at line 268 of file MCELFStreamer.cpp.
References llvm::MCConstantExpr::create(), emitLabel(), emitValueToAlignment(), llvm::MCStreamer::emitZeros(), llvm::MCObjectStreamer::getAssembler(), llvm::MCAssembler::getContext(), llvm::MCStreamer::getContext(), llvm::MCStreamer::getCurrentSection(), llvm::MCContext::getELFSection(), P, llvm::MCAssembler::registerSymbol(), llvm::report_fatal_error(), llvm::ELF::SHF_ALLOC, llvm::ELF::SHF_WRITE, llvm::ELF::SHT_NOBITS, Size, llvm::ELF::STB_GLOBAL, llvm::ELF::STB_LOCAL, llvm::ELF::STT_OBJECT, and llvm::MCStreamer::switchSection().
Referenced by emitLocalCommonSymbol().
Emit an ELF .size directive.
This corresponds to an assembler statement such as: .size symbol, expression
Reimplemented from llvm::MCStreamer.
Definition at line 299 of file MCELFStreamer.cpp.
|
overridevirtual |
Emit an ELF .symver directive.
This corresponds to an assembler statement such as: .symver _start, foo@SOME_VERSION
Reimplemented from llvm::MCStreamer.
Definition at line 303 of file MCELFStreamer.cpp.
References llvm::MCStreamer::getStartTokLoc(), getWriter(), Name, and llvm::ELFObjectWriter::Symvers.
Emit a .gnu_attribute directive.
Reimplemented from llvm::MCStreamer.
Definition at line 134 of file MCELFStreamer.h.
References llvm::MCELFStreamer::AttributeItem::NumericAttribute, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
|
overridevirtual |
Emit the "identifiers" directive.
This implements the '.ident "version foo"' assembler directive.
Reimplemented from llvm::MCStreamer.
Definition at line 342 of file MCELFStreamer.cpp.
References llvm::MCObjectStreamer::emitBytes(), llvm::MCStreamer::emitInt8(), llvm::MCObjectStreamer::getAssembler(), llvm::MCAssembler::getContext(), llvm::MCContext::getELFSection(), llvm::MCStreamer::popSection(), llvm::MCStreamer::pushSection(), llvm::ELF::SHF_MERGE, llvm::ELF::SHF_STRINGS, llvm::ELF::SHT_PROGBITS, and llvm::MCStreamer::switchSection().
Emit a label for Symbol
into the current section.
This corresponds to an assembler statement such as: foo:
Symbol | - The symbol to emit. A given symbol should only be emitted as a label once, and symbols emitted as a label should never be used in an assignment. |
Reimplemented from llvm::MCStreamer.
Reimplemented in llvm::MipsELFStreamer, and llvm::PPCELFStreamer.
Definition at line 68 of file MCELFStreamer.cpp.
References llvm::MCObjectStreamer::emitLabel(), llvm::MCStreamer::getCurrentSectionOnly(), llvm::ELF::SHF_TLS, and llvm::ELF::STT_TLS.
Referenced by llvm::MipsELFStreamer::emitCFIEndProcImpl(), llvm::MipsELFStreamer::emitCFILabel(), llvm::MipsELFStreamer::emitCFIStartProcImpl(), emitCommonSymbol(), llvm::MipsELFStreamer::emitLabel(), llvm::PPCELFStreamer::emitLabel(), and llvm::HexagonMCELFStreamer::HexagonMCEmitCommonSymbol().
|
overridevirtual |
Reimplemented from llvm::MCObjectStreamer.
Definition at line 78 of file MCELFStreamer.cpp.
References llvm::MCObjectStreamer::emitLabelAtPos(), F, llvm::MCStreamer::getCurrentSectionOnly(), llvm::Offset, llvm::ELF::SHF_TLS, and llvm::ELF::STT_TLS.
|
overridevirtual |
Emit a local common (.lcomm) symbol.
Symbol | - The common symbol to emit. |
Size | - The size of the common symbol. |
ByteAlignment | - The alignment of the common symbol in bytes. |
Reimplemented from llvm::MCStreamer.
Definition at line 310 of file MCELFStreamer.cpp.
References emitCommonSymbol(), llvm::MCObjectStreamer::getAssembler(), llvm::MCAssembler::registerSymbol(), Size, and llvm::ELF::STB_LOCAL.
|
overridevirtual |
Add the given Attribute
to Symbol
.
Implements llvm::MCStreamer.
Definition at line 148 of file MCELFStreamer.cpp.
References CombineSymbolTypes(), llvm::MCObjectStreamer::getAssembler(), llvm::MCStreamer::getContext(), llvm::MCStreamer::getStartTokLoc(), getWriter(), llvm_unreachable, llvm::ELFObjectWriter::markGnuAbi(), llvm::MCSA_AltEntry, llvm::MCSA_Cold, llvm::MCSA_ELF_TypeCommon, llvm::MCSA_ELF_TypeFunction, llvm::MCSA_ELF_TypeGnuUniqueObject, llvm::MCSA_ELF_TypeIndFunction, llvm::MCSA_ELF_TypeNoType, llvm::MCSA_ELF_TypeObject, llvm::MCSA_ELF_TypeTLS, llvm::MCSA_Exported, llvm::MCSA_Extern, llvm::MCSA_Global, llvm::MCSA_Hidden, llvm::MCSA_IndirectSymbol, llvm::MCSA_Internal, llvm::MCSA_Invalid, llvm::MCSA_LazyReference, llvm::MCSA_LGlobal, llvm::MCSA_Local, llvm::MCSA_Memtag, llvm::MCSA_NoDeadStrip, llvm::MCSA_PrivateExtern, llvm::MCSA_Protected, llvm::MCSA_Reference, llvm::MCSA_SymbolResolver, llvm::MCSA_Weak, llvm::MCSA_WeakAntiDep, llvm::MCSA_WeakDefAutoPrivate, llvm::MCSA_WeakDefinition, llvm::MCSA_WeakReference, llvm::MCAssembler::registerSymbol(), llvm::MCContext::reportError(), llvm::MCContext::reportWarning(), llvm::ELF::STB_GLOBAL, llvm::ELF::STB_GNU_UNIQUE, llvm::ELF::STB_LOCAL, llvm::ELF::STB_WEAK, llvm::ELF::STT_FUNC, llvm::ELF::STT_GNU_IFUNC, llvm::ELF::STT_NOTYPE, llvm::ELF::STT_OBJECT, llvm::ELF::STT_TLS, llvm::ELF::STV_HIDDEN, llvm::ELF::STV_INTERNAL, and llvm::ELF::STV_PROTECTED.
Set the DescValue
for the Symbol
.
Symbol | - The symbol to have its n_desc field set. |
DescValue | - The value to set into the n_desc field. |
Reimplemented from llvm::MCStreamer.
Definition at line 625 of file MCELFStreamer.cpp.
References llvm_unreachable.
|
overridevirtual |
Emit a thread local bss (.tbss) symbol.
Section | - The thread local common section. |
Symbol | - The thread local common symbol to emit. |
Size | - The size of the symbol. |
ByteAlignment | - The alignment of the thread local common symbol. |
Reimplemented from llvm::MCStreamer.
Definition at line 635 of file MCELFStreamer.cpp.
References llvm_unreachable.
|
overridevirtual |
Note in the output that the specified Func
is a Thumb mode function (ARM target only).
Reimplemented from llvm::MCStreamer.
Definition at line 621 of file MCELFStreamer.cpp.
References llvm_unreachable.
|
overridevirtual |
Emit the expression Value
into the output as a native integer of the given Size
bytes.
This is used to implement assembler directives such as .word, .quad, etc.
Value | - The value to emit. |
Size | - The size of the integer (in bytes) to emit. This must match a native machine width. |
Loc | - The location of the expression for error reporting. |
Reimplemented from llvm::MCStreamer.
Reimplemented in llvm::CSKYELFStreamer, llvm::MipsELFStreamer, and llvm::RISCVELFStreamer.
Definition at line 319 of file MCELFStreamer.cpp.
References llvm::MCObjectStreamer::emitValueImpl(), llvm::report_fatal_error(), and Size.
Referenced by llvm::CSKYELFStreamer::emitValueImpl(), llvm::MipsELFStreamer::emitValueImpl(), and llvm::RISCVELFStreamer::emitValueImpl().
|
overridevirtual |
Emit some number of copies of Value
until the byte alignment ByteAlignment
is reached.
If the number of bytes need to emit for the alignment is not a multiple of ValueSize
, then the contents of the emitted fill bytes is undefined.
This used to implement the .align assembler directive.
Alignment | - The alignment to reach. |
Value | - The value to use when filling bytes. |
ValueSize | - The size of the integer (in bytes) to emit for Value . This must match a native machine width. |
MaxBytesToEmit | - The maximum numbers of bytes to emit, or 0. If the alignment cannot be reached in this many bytes, no bytes are emitted. |
Reimplemented from llvm::MCStreamer.
Definition at line 327 of file MCELFStreamer.cpp.
References llvm::MCObjectStreamer::emitValueToAlignment(), and llvm::report_fatal_error().
Referenced by emitCommonSymbol(), llvm::MipsTargetELFStreamer::finish(), and llvm::HexagonMCELFStreamer::HexagonMCEmitCommonSymbol().
Emit an weak reference from Alias
to Symbol
.
This corresponds to an assembler statement such as: .weakref alias, symbol
Alias | - The alias that is being created. |
Symbol | - The symbol being aliased. |
Reimplemented from llvm::MCStreamer.
Definition at line 122 of file MCELFStreamer.cpp.
References llvm::MCSymbolRefExpr::create(), llvm::MCObjectStreamer::getAssembler(), llvm::MCStreamer::getContext(), llvm::MCAssembler::registerSymbol(), llvm::MCSymbol::setVariableValue(), and llvm::MCSymbolRefExpr::VK_WEAKREF.
|
overridevirtual |
Emit the zerofill section and an optional symbol.
Section | - The zerofill section to create and or to put the symbol |
Symbol | - The zerofill symbol to emit, if non-NULL. |
Size | - The size of the zerofill symbol. |
ByteAlignment | - The alignment of the zerofill symbol. |
Implements llvm::MCStreamer.
Definition at line 629 of file MCELFStreamer.cpp.
References llvm_unreachable.
|
finalvirtual |
Streamer specific finalization.
Reimplemented from llvm::MCStreamer.
Definition at line 603 of file MCELFStreamer.cpp.
References llvm::MCObjectStreamer::emitFrames(), llvm::SmallVectorBase< Size_T >::empty(), F, llvm::MCObjectStreamer::finishImpl(), llvm::MCObjectStreamer::getAssembler(), llvm::MCStreamer::getCurrentFragment(), setSectionAlignmentForBundling(), and llvm::ELF::SHT_GNU_ATTRIBUTES.
ELFObjectWriter & MCELFStreamer::getWriter | ( | ) |
Definition at line 50 of file MCELFStreamer.cpp.
References llvm::MCObjectStreamer::getAssembler(), and llvm::MCAssembler::getWriter().
Referenced by llvm::AVRELFStreamer::AVRELFStreamer(), changeSection(), llvm::CSKYTargetELFStreamer::CSKYTargetELFStreamer(), emitCGProfileEntry(), llvm::MipsTargetELFStreamer::emitDirectiveAbiCalls(), llvm::MipsTargetELFStreamer::emitDirectiveNaN2008(), llvm::MipsTargetELFStreamer::emitDirectiveNaNLegacy(), llvm::MipsTargetELFStreamer::emitDirectiveOptionPic0(), llvm::MipsTargetELFStreamer::emitDirectiveOptionPic2(), llvm::MipsTargetELFStreamer::emitDirectiveSetMips16(), llvm::MipsTargetELFStreamer::emitDirectiveSetNoReorder(), emitELFSymverDirective(), emitSymbolAttribute(), llvm::AMDGPUTargetELFStreamer::finish(), llvm::LoongArchTargetELFStreamer::finish(), llvm::MipsTargetELFStreamer::finish(), llvm::RISCVTargetELFStreamer::finish(), llvm::MipsTargetELFStreamer::MipsTargetELFStreamer(), llvm::MipsTargetELFStreamer::setUsesMicroMips(), and llvm::SparcTargetELFStreamer::SparcTargetELFStreamer().
|
overridevirtual |
Create the default sections and set the initial one.
Reimplemented from llvm::MCStreamer.
Definition at line 58 of file MCELFStreamer.cpp.
References llvm::MCObjectStreamer::emitCodeAlignment(), llvm::MCContext::getAsmInfo(), llvm::MCStreamer::getContext(), llvm::MCAsmInfo::getNonexecutableStackSection(), llvm::MCContext::getObjectFileInfo(), llvm::MCObjectFileInfo::getTextSection(), llvm::MCObjectFileInfo::getTextSectionAlignment(), and llvm::MCStreamer::switchSection().
|
inlineoverridevirtual |
state management
Reimplemented from llvm::MCStreamer.
Reimplemented in llvm::CSKYELFStreamer.
Definition at line 41 of file MCELFStreamer.h.
References llvm::MCObjectStreamer::reset().
Referenced by llvm::CSKYELFStreamer::reset().
void MCELFStreamer::setAttributeItem | ( | unsigned | Attribute, |
StringRef | Value, | ||
bool | OverwriteExisting | ||
) |
Definition at line 657 of file MCELFStreamer.cpp.
References Contents, llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::MCELFStreamer::AttributeItem::TextAttribute.
Definition at line 640 of file MCELFStreamer.cpp.
References Contents, llvm::MCELFStreamer::AttributeItem::NumericAttribute, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
void MCELFStreamer::setAttributeItems | ( | unsigned | Attribute, |
unsigned | IntValue, | ||
StringRef | StringValue, | ||
bool | OverwriteExisting | ||
) |
Definition at line 674 of file MCELFStreamer.cpp.
References Contents, llvm::MCELFStreamer::AttributeItem::NumericAndTextAttributes, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
SmallVector<AttributeItem, 64> llvm::MCELFStreamer::Contents |
Definition at line 111 of file MCELFStreamer.h.
Referenced by emitAttributesSection(), setAttributeItem(), and setAttributeItems().