LLVM: llvm::MCWinCOFFStreamer Class Reference (original) (raw)

Public Member Functions

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

void

reset () override

state management

WinCOFFObjectWriter &

getWriter ()

MCStreamer interface

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.

bool

emitSymbolAttribute (MCSymbol *Symbol, MCSymbolAttr Attribute) override

Add the given [Attribute](classllvm%5F1%5F1Attribute.html "Functions, function parameters, and return types can have attributes to indicate how they should be t...") to Symbol.

void

emitSymbolDesc (MCSymbol *Symbol, unsigned DescValue) override

Set the DescValue for the Symbol.

void

beginCOFFSymbolDef (MCSymbol const *Symbol) override

Start emitting COFF symbol definition.

void

emitCOFFSymbolStorageClass (int StorageClass) override

Emit the storage class of the symbol.

void

emitCOFFSymbolType (int Type) override

Emit the type of the symbol.

void

endCOFFSymbolDef () override

Marks the end of the symbol definition.

void

emitCOFFSafeSEH (MCSymbol const *Symbol) override

void

emitCOFFSymbolIndex (MCSymbol const *Symbol) override

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

void

emitCOFFSectionIndex (MCSymbol const *Symbol) override

Emits a COFF section index.

void

emitCOFFSecRel32 (MCSymbol const *Symbol, uint64_t Offset) override

Emits a COFF section relative relocation.

void

emitCOFFImgRel32 (MCSymbol const *Symbol, int64_t Offset) override

Emits a COFF image relative relocation.

void

emitCOFFSecNumber (MCSymbol const *Symbol) override

Emits the physical number of the section containing the given symbol as assigned during object writing (i.e., this is not a runtime relocation).

void

emitCOFFSecOffset (MCSymbol const *Symbol) override

Emits the offset of the symbol from the beginning of the section during object writing (i.e., this is not a runtime relocation).

void

emitCommonSymbol (MCSymbol *Symbol, uint64_t Size, Align ByteAlignment) override

Emit a common symbol.

void

emitLocalCommonSymbol (MCSymbol *Symbol, uint64_t Size, Align ByteAlignment) override

Emit a local common (.lcomm) symbol.

void

emitWeakReference (MCSymbol *Alias, const MCSymbol *Symbol) override

Emit an weak reference from Alias to Symbol.

void

emitIdent (StringRef IdentString) override

Emit the "identifiers" directive.

void

emitWinEHHandlerData (SMLoc Loc) override

void

emitCGProfileEntry (const MCSymbolRefExpr *From, const MCSymbolRefExpr *To, uint64_t Count) override

void

finishImpl () override

Streamer specific finalization.

Public Member Functions inherited from llvm::MCObjectStreamer

bool

isIntegratedAssemblerRequired () const override

Object streamers require the integrated assembler.

void

emitFrames ()

MCSymbol *

emitCFILabel () override

When emitting an object file, create and emit a real label.

void

emitCFISections (bool EH, bool Debug, bool SFrame) override

void

visitUsedSymbol (const MCSymbol &Sym) override

MCAssembler &

getAssembler ()

MCAssembler *

getAssemblerPtr () override

uint8_t *

getCurFragEnd () const

MCFragment *

allocFragSpace (size_t Headroom)

void

newFragment ()

template<typename FT, typename... Args>

FT *

newSpecialFragment (Args &&...args)

void

ensureHeadroom (size_t Headroom)

void

appendContents (ArrayRef< char > Contents)

void

appendContents (size_t Num, uint8_t Elt)

void

addFixup (const MCExpr *Value, MCFixupKind Kind)

virtual void

emitLabelAtPos (MCSymbol *Symbol, SMLoc Loc, MCFragment &F, uint64_t Offset)

void

emitAssignment (MCSymbol *Symbol, const MCExpr *Value) override

Emit an assignment of [Value](classllvm%5F1%5F1Value.html "LLVM Value Representation.") to Symbol.

void

emitConditionalAssignment (MCSymbol *Symbol, const MCExpr *Value) override

Emit an assignment of [Value](classllvm%5F1%5F1Value.html "LLVM Value Representation.") to Symbol, but only if [Value](classllvm%5F1%5F1Value.html "LLVM Value Representation.") is also emitted.

void

emitValueImpl (const MCExpr *Value, unsigned Size, SMLoc Loc=SMLoc()) override

Emit the expression [Value](classllvm%5F1%5F1Value.html "LLVM Value Representation.") 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

emitInstruction (const MCInst &Inst, const MCSubtargetInfo &STI) override

Emit the given [Instruction](classllvm%5F1%5F1Instruction.html) into the current section.

void

emitInstToFragment (const MCInst &Inst, const MCSubtargetInfo &)

Emit an instruction to a special fragment, because this instruction can change its size during relaxation.

void

emitBytes (StringRef Data) override

Emit the bytes in Data into the output.

void

emitValueToAlignment (Align Alignment, int64_t Fill=0, uint8_t FillLen=1, unsigned MaxBytesToEmit=0) override

Emit some number of copies of [Value](classllvm%5F1%5F1Value.html "LLVM Value Representation.") 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](classllvm%5F1%5F1Value.html "LLVM Value Representation.") until the byte offset Offset is reached.

void

emitDwarfLocDirective (unsigned FileNo, unsigned Line, unsigned Column, unsigned Flags, unsigned Isa, unsigned Discriminator, StringRef FileName, StringRef Comment={}) 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, MCSymbol *EndLabel=nullptr) override

Emit the debug line end entry.

void

emitDwarfAdvanceFrameAddr (const MCSymbol *LastLabel, const MCSymbol *Label, SMLoc Loc)

void

emitSFrameCalculateFuncOffset (const MCSymbol *FunCabsel, const MCSymbol *FREBegin, MCFragment *FDEFrag, 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

emitRelocDirective (const MCExpr &Offset, StringRef Name, const MCExpr *Expr, SMLoc Loc={}) 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

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.

Public Member Functions inherited from llvm::MCStreamer

MCStreamer (const MCStreamer &)=delete

MCStreamer &

operator= (const MCStreamer &)=delete

virtual

~MCStreamer ()

void

visitUsedExpr (const MCExpr &Expr)

void

setTargetStreamer (MCTargetStreamer *TS)

void

setStartTokLocPtr (const SMLoc *Loc)

SMLoc

getStartTokLoc () const

MCContext &

getContext () const

bool

isObj () const

void

setUseAssemblerInfoForParsing (bool v)

bool

getUseAssemblerInfoForParsing ()

MCTargetStreamer *

getTargetStreamer ()

void

setAllowAutoPadding (bool v)

bool

getAllowAutoPadding () const

MCSymbol *

emitLineTableLabel ()

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

WinEH::FrameInfo::Epilog *

getCurrentWinEpilog () const

bool

isInEpilogCFI () const

void

generateCompactUnwindEncodings (MCAsmBackend *MAB)

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

emitDwarfLocLabelDirective (SMLoc Loc, StringRef Name)

This implements the '.loc_label Name' 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

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

emitCVFPOData (const MCSymbol *ProcSym, SMLoc Loc={})

This implements the CodeView '.cv_fpo_data' assembler directive.

virtual MCSymbol *

getDwarfLineTableSymbol (unsigned CUID)

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

emitCFINegateRAStateWithPC (SMLoc Loc={})

virtual void

emitCFILabelDirective (SMLoc Loc, StringRef Name)

virtual void

emitCFIValOffset (int64_t Register, int64_t Offset, SMLoc Loc={})

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

emitWinCFIBeginEpilogue (SMLoc Loc=SMLoc())

virtual void

emitWinCFIEndEpilogue (SMLoc Loc=SMLoc())

virtual void

emitWinCFIUnwindV2Start (SMLoc Loc=SMLoc())

virtual void

emitWinCFIUnwindVersion (uint8_t Version, SMLoc Loc=SMLoc())

virtual void

emitWinEHHandler (const MCSymbol *Sym, bool Unwind, bool Except, SMLoc Loc=SMLoc())

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 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.

void

emitRawText (const Twine &String)

If this file is backed by a assembly streamer, this dumps the specified string in the output .s file.

void

finish (SMLoc EndLoc=SMLoc())

Finish emission of machine code.

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

size_t

getCurFragSize () const

void

pushSection ()

Save the current and previous section on the section stack.

virtual 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 *)

void

switchSectionNoPrint (MCSection *Section)

Similar to switchSection, but does not print the section directive.

MCSymbol *

endSection (MCSection *Section)

virtual StringRef

getMnemonic (const MCInst &MI) const

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

emitSubsectionsViaSymbols ()

Emit a .subsection_via_symbols directive.

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

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

emitELFSize (MCSymbol *Symbol, const MCExpr *Value)

Emit an ELF .size directive.

virtual void

emitELFSymverDirective (const MCSymbol *OriginalSym, StringRef Name, bool KeepOriginalSym)

Emit an ELF .symver directive.

virtual void

emitLOHDirective (MCLOHType Kind, const MCLOHArgs &Args)

Emit a Linker Optimization Hint (LOH) directive.

virtual void

emitGNUAttribute (unsigned Tag, unsigned Value)

Emit a .gnu_attribute directive.

virtual void

emitZerofill (MCSection *Section, MCSymbol *Symbol=nullptr, uint64_t Size=0, Align ByteAlignment=Align(1), SMLoc Loc=SMLoc())

Emit the zerofill section and an optional symbol.

virtual void

emitTBSSSymbol (MCSection *Section, MCSymbol *Symbol, uint64_t Size, Align ByteAlignment=Align(1))

Emit a thread local bss (.tbss) symbol.

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.