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

#include "[llvm/MC/MCAssembler.h](MCAssembler%5F8h%5Fsource.html)"

Public Member Functions
LLVM_ABI MCAssembler (MCContext &Context, std::unique_ptr< MCAsmBackend > Backend, std::unique_ptr< MCCodeEmitter > Emitter, std::unique_ptr< MCObjectWriter > Writer)
Construct a new assembler instance.
MCAssembler (const MCAssembler &)=delete
MCAssembler & operator= (const MCAssembler &)=delete
LLVM_ABI uint64_t computeFragmentSize (const MCFragment &F) const
Compute the effective fragment size.
uint64_t getFragmentOffset (const MCFragment &F) const
LLVM_ABI uint64_t getSectionAddressSize (const MCSection &Sec) const
LLVM_ABI uint64_t getSectionFileSize (const MCSection &Sec) const
LLVM_ABI bool getSymbolOffset (const MCSymbol &S, uint64_t &Val) const
LLVM_ABI uint64_t getSymbolOffset (const MCSymbol &S) const
LLVM_ABI const MCSymbol * getBaseSymbol (const MCSymbol &Symbol) const
LLVM_ABI void writeSectionData (raw_ostream &OS, const MCSection *Section) const
Emit the section contents to OS.
LLVM_ABI bool isThumbFunc (const MCSymbol *Func) const
Check whether a given symbol has been flagged with .thumb_func.
void setIsThumbFunc (const MCSymbol *Func)
Flag a function symbol as the target of a .thumb_func directive.
LLVM_ABI void reset ()
Reuse an assembler instance.
MCContext & getContext () const
MCAsmBackend * getBackendPtr () const
MCCodeEmitter * getEmitterPtr () const
MCAsmBackend & getBackend () const
MCCodeEmitter & getEmitter () const
MCObjectWriter & getWriter () const
MCDwarfLineTableParams getDWARFLinetableParams () const
LLVM_ABI void Finish ()
Finish - Do final processing and write the object to the output stream.
LLVM_ABI void layout ()
bool hasLayout () const
bool hasFinalLayout () const
bool getRelaxAll () const
void setRelaxAll (bool Value)
const_iterator begin () const
const_iterator end () const
SmallVectorImpl< const MCSymbol * > & getSymbols ()
iterator_range< pointee_iterator< SmallVector< const MCSymbol *, 0 >::const_iterator > > symbols () const
LLVM_ABI bool registerSection (MCSection &Section)
LLVM_ABI bool registerSymbol (const MCSymbol &Symbol)
LLVM_ABI void addRelocDirective (RelocDirective RD)
LLVM_ABI void reportError (SMLoc L, const Twine &Msg) const
LLVM_ABI void recordError (SMLoc L, const Twine &Msg) const
LLVM_ABI void flushPendingErrors () const
LLVM_ABI void dump () const
Friends
class MCObjectWriter

Definition at line 46 of file MCAssembler.h.

const_iterator

SectionListType

MCAssembler() [2/2]

addRelocDirective()

void MCAssembler::addRelocDirective ( RelocDirective RD )

begin()

const_iterator llvm::MCAssembler::begin ( ) const inline

computeFragmentSize()

Compute the effective fragment size.

Definition at line 194 of file MCAssembler.cpp.

References assert(), llvm::cast(), F, llvm::MCFragment::FT_Align, llvm::MCFragment::FT_BoundaryAlign, llvm::MCFragment::FT_CVDefRange, llvm::MCFragment::FT_CVInlineLines, llvm::MCFragment::FT_Data, llvm::MCFragment::FT_Dwarf, llvm::MCFragment::FT_DwarfFrame, llvm::MCFragment::FT_Fill, llvm::MCFragment::FT_LEB, llvm::MCFragment::FT_Nops, llvm::MCFragment::FT_Org, llvm::MCFragment::FT_Relaxable, llvm::MCFragment::FT_SFrame, llvm::MCFragment::FT_SymbolId, getBackendPtr(), getFragmentOffset(), getSymbolOffset(), llvm_unreachable, recordError(), and Size.

dump()

end()

const_iterator llvm::MCAssembler::end ( ) const inline

Finish()

void MCAssembler::Finish ( )

flushPendingErrors()

void MCAssembler::flushPendingErrors ( ) const

getBackend()

MCAsmBackend & llvm::MCAssembler::getBackend ( ) const inline

getBackendPtr()

MCAsmBackend * llvm::MCAssembler::getBackendPtr ( ) const inline

getBaseSymbol()

getContext()

MCContext & llvm::MCAssembler::getContext ( ) const inline

Definition at line 167 of file MCAssembler.h.

Referenced by llvm::MCELFStreamer::emitCommonSymbol(), llvm::MipsTargetELFStreamer::emitDirectiveCpLoad(), llvm::MipsTargetELFStreamer::emitDirectiveCpsetup(), llvm::MipsTargetELFStreamer::emitDirectiveEnd(), llvm::MipsTargetELFStreamer::emitFrame(), llvm::MCELFStreamer::emitIdent(), llvm::MipsTargetELFStreamer::emitMipsAbiFlags(), llvm::MipsTargetELFStreamer::finish(), GetOptionalAbsDifference(), llvm::HexagonMCELFStreamer::HexagonMCEmitCommonSymbol(), layout(), llvm::MipsTargetELFStreamer::MipsTargetELFStreamer(), reportError(), and writeSectionData().

getDWARFLinetableParams()

getEmitter()

getEmitterPtr()

MCCodeEmitter * llvm::MCAssembler::getEmitterPtr ( ) const inline

getFragmentOffset()

getRelaxAll()

bool llvm::MCAssembler::getRelaxAll ( ) const inline

getSectionAddressSize()

getSectionFileSize()

getSymbolOffset() [1/2]

getSymbolOffset() [2/2]

getSymbols()

getWriter()

hasFinalLayout()

bool llvm::MCAssembler::hasFinalLayout ( ) const inline

hasLayout()

bool llvm::MCAssembler::hasLayout ( ) const inline

isThumbFunc()

layout()

void MCAssembler::layout ( )

Definition at line 620 of file MCAssembler.cpp.

References _, assert(), llvm::MCFixup::create(), llvm::Data, data, DEBUG_WITH_TYPE, dump(), llvm::errs(), llvm::MCObjectWriter::executePostLayoutBinding(), F, Fixup, flushPendingErrors(), llvm::MCValue::getAddSym(), getBackend(), getBackendPtr(), llvm::MCValue::getConstant(), getContext(), llvm::MCFragment::getNext(), llvm::MCValue::getSubSym(), getWriter(), llvm::mc::isRelocRelocation(), llvm::List, llvm::Offset, llvm::MCContext::reportError(), llvm::MCSection::setOrdinal(), and llvm::CallingConv::Tail.

Referenced by Finish().

operator=()

recordError()

registerSection()

registerSymbol()

Definition at line 370 of file MCAssembler.cpp.

References Changed.

Referenced by llvm::MCWinCOFFStreamer::changeSection(), llvm::MipsELFStreamer::createPendingLabelRelocs(), llvm::MCObjectStreamer::emitAssignment(), llvm::MCWinCOFFStreamer::emitCOFFSafeSEH(), llvm::MCWinCOFFStreamer::emitCOFFSymbolIndex(), llvm::MCWinCOFFStreamer::emitCOFFSymbolStorageClass(), llvm::MCWinCOFFStreamer::emitCOFFSymbolType(), llvm::MCELFStreamer::emitCommonSymbol(), llvm::MCWinCOFFStreamer::emitCommonSymbol(), llvm::MCXCOFFStreamer::emitCommonSymbol(), llvm::MipsTargetELFStreamer::emitDirectiveCpLoad(), llvm::RISCVTargetELFStreamer::emitDirectiveVariantCC(), llvm::MCObjectStreamer::emitLabel(), llvm::MipsTargetELFStreamer::emitLabel(), llvm::MCObjectStreamer::emitLabelAtPos(), llvm::MCELFStreamer::emitLocalCommonSymbol(), llvm::MCELFStreamer::emitSymbolAttribute(), llvm::MCWasmStreamer::emitSymbolAttribute(), llvm::MCWinCOFFStreamer::emitSymbolAttribute(), llvm::MCXCOFFStreamer::emitSymbolAttribute(), llvm::MCWinCOFFStreamer::emitWeakReference(), llvm::HexagonMCELFStreamer::HexagonMCEmitCommonSymbol(), and llvm::HexagonMCELFStreamer::HexagonMCEmitLocalCommonSymbol().

reportError()

reset()

void MCAssembler::reset ( )

setIsThumbFunc()

void llvm::MCAssembler::setIsThumbFunc ( const MCSymbol * Func) inline

Flag a function symbol as the target of a .thumb_func directive.

Definition at line 161 of file MCAssembler.h.

setRelaxAll()

void llvm::MCAssembler::setRelaxAll ( bool Value) inline

symbols()

writeSectionData()

Emit the section contents to OS.

Definition at line 559 of file MCAssembler.cpp.

References llvm::any_of(), assert(), llvm::cast(), F, flushPendingErrors(), llvm::MCFragment::FT_Align, llvm::MCFragment::FT_Data, llvm::MCFragment::FT_Fill, llvm::MCFragment::FT_Org, llvm::MCFragment::FT_Relaxable, getBackendPtr(), getContext(), getSectionAddressSize(), getSectionFileSize(), llvm::MCSection::isBssSection(), reportError(), llvm::reportFatalInternalError(), llvm::raw_ostream::tell(), and writeFragment().

MCObjectWriter


The documentation for this class was generated from the following files: