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

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

Public Types
enum FragmentType : uint8_t { FT_Data, FT_Relaxable, FT_Align, FT_Fill, FT_LEB, FT_Nops, FT_Org, FT_Dwarf, FT_DwarfFrame, FT_SFrame, FT_BoundaryAlign, FT_SymbolId, FT_CVInlineLines, FT_CVDefRange }
Public Member Functions
LLVM_ABI MCFragment (FragmentType Kind=MCFragment::FT_Data, bool HasInstructions=false)
MCFragment (const MCFragment &)=delete
MCFragment & operator= (const MCFragment &)=delete
MCFragment * getNext () const
FragmentType getKind () const
MCSection * getParent () const
void setParent (MCSection *Value)
LLVM_ABI const MCSymbol * getAtom () const
unsigned getLayoutOrder () const
void setLayoutOrder (unsigned Value)
bool hasInstructions () const
Does this fragment have instructions emitted into it?
LLVM_ABI void dump () const
const MCSubtargetInfo * getSubtargetInfo () const
Retrieve the MCSubTargetInfo in effect when the instruction was encoded.
void setHasInstructions (const MCSubtargetInfo &STI)
Record that the fragment contains instructions with the MCSubtargetInfo in effect when the instruction was encoded.
bool isLinkerRelaxable () const
void setLinkerRelaxable ()
bool getAllowAutoPadding () const
void setAllowAutoPadding (bool V)
MutableArrayRef< char > getContents ()
ArrayRef< char > getContents () const
LLVM_ABI void setVarContents (ArrayRef< char > Contents)
void clearVarContents ()
MutableArrayRef< char > getVarContents ()
ArrayRef< char > getVarContents () const
size_t getFixedSize () const
size_t getVarSize () const
size_t getSize () const
void clearFixups ()
LLVM_ABI void addFixup (MCFixup Fixup)
LLVM_ABI void appendFixups (ArrayRef< MCFixup > Fixups)
MutableArrayRef< MCFixup > getFixups ()
ArrayRef< MCFixup > getFixups () const
LLVM_ABI void setVarFixups (ArrayRef< MCFixup > Fixups)
void clearVarFixups ()
MutableArrayRef< MCFixup > getVarFixups ()
ArrayRef< MCFixup > getVarFixups () const
unsigned getOpcode () const
ArrayRef< MCOperand > getOperands () const
MCInst getInst () const
void setInst (const MCInst &Inst)
void makeAlign (Align Alignment, int64_t Fill, uint8_t FillLen, unsigned MaxBytesToEmit)
Align getAlignment () const
int64_t getAlignFill () const
uint8_t getAlignFillLen () const
unsigned getAlignMaxBytesToEmit () const
bool hasAlignEmitNops () const
void makeLEB (bool IsSigned, const MCExpr *Value)
const MCExpr & getLEBValue () const
void setLEBValue (const MCExpr *Expr)
bool isLEBSigned () const
const MCExpr & getDwarfAddrDelta () const
void setDwarfAddrDelta (const MCExpr *E)
int64_t getDwarfLineDelta () const
void setDwarfLineDelta (int64_t LineDelta)
const MCExpr & getSFrameAddrDelta () const
void setSFrameAddrDelta (const MCExpr *E)
MCFragment * getSFrameFDE () const
void setSFrameFDE (MCFragment *F)
Friends
class MCAssembler
class MCStreamer
class MCObjectStreamer
class MCSection

Definition at line 45 of file MCSection.h.

FragmentType

Enumerator
FT_Data
FT_Relaxable
FT_Align
FT_Fill
FT_LEB
FT_Nops
FT_Org
FT_Dwarf
FT_DwarfFrame
FT_SFrame
FT_BoundaryAlign
FT_SymbolId
FT_CVInlineLines
FT_CVDefRange

Definition at line 52 of file MCSection.h.

MCFragment::MCFragment ( FragmentType Kind = MCFragment::FT_Data,
bool HasInstructions = false )

Definition at line 30 of file MCFragment.cpp.

Referenced by llvm::MCBoundaryAlignFragment::classof(), llvm::MCCVDefRangeFragment::classof(), llvm::MCCVInlineLineTableFragment::classof(), llvm::MCFillFragment::classof(), llvm::MCNopsFragment::classof(), llvm::MCOrgFragment::classof(), llvm::MCSymbolIdFragment::classof(), llvm::MCBoundaryAlignFragment::getLastFragment(), getNext(), getSFrameFDE(), llvm::MCBoundaryAlignFragment::MCBoundaryAlignFragment(), llvm::MCCVDefRangeFragment::MCCVDefRangeFragment(), llvm::MCCVInlineLineTableFragment::MCCVInlineLineTableFragment(), llvm::MCFillFragment::MCFillFragment(), MCFragment(), llvm::MCNopsFragment::MCNopsFragment(), llvm::MCOrgFragment::MCOrgFragment(), llvm::MCSymbolIdFragment::MCSymbolIdFragment(), operator=(), llvm::MCBoundaryAlignFragment::setLastFragment(), and setSFrameFDE().

MCFragment() [2/2]

addFixup()

void MCFragment::addFixup ( MCFixup Fixup )

appendFixups()

clearFixups()

void llvm::MCFragment::clearFixups ( ) inline

clearVarContents()

void llvm::MCFragment::clearVarContents ( ) inline

clearVarFixups()

void llvm::MCFragment::clearVarFixups ( ) inline

dump()

Definition at line 42 of file MCFragment.cpp.

References llvm::cast(), llvm::MCInst::dump_pretty(), llvm::enumerate(), llvm::errs(), F, llvm::Fixed, llvm::format(), FT_Align, FT_BoundaryAlign, FT_CVDefRange, FT_CVInlineLines, FT_Data, FT_Dwarf, FT_DwarfFrame, FT_Fill, FT_LEB, FT_Nops, FT_Org, FT_Relaxable, FT_SFrame, FT_SymbolId, getAlignFill(), getAlignFillLen(), getAlignMaxBytesToEmit(), getAlignment(), getContents(), getDwarfAddrDelta(), getDwarfLineDelta(), getFixups(), getInst(), getKind(), getLEBValue(), getVarContents(), getVarFixups(), hasAlignEmitNops(), I, isLEBSigned(), isLinkerRelaxable(), LLVM_DUMP_METHOD, llvm_unreachable, and llvm::Align::value().

getAlignFill()

int64_t llvm::MCFragment::getAlignFill ( ) const inline

getAlignFillLen()

uint8_t llvm::MCFragment::getAlignFillLen ( ) const inline

getAlignMaxBytesToEmit()

unsigned llvm::MCFragment::getAlignMaxBytesToEmit ( ) const inline

getAlignment()

Align llvm::MCFragment::getAlignment ( ) const inline

getAllowAutoPadding()

bool llvm::MCFragment::getAllowAutoPadding ( ) const inline

getAtom()

getContents() [1/2]

getContents() [2/2]

ArrayRef< char > llvm::MCFragment::getContents ( ) const inline

getDwarfAddrDelta()

const MCExpr & llvm::MCFragment::getDwarfAddrDelta ( ) const inline

getDwarfLineDelta()

int64_t llvm::MCFragment::getDwarfLineDelta ( ) const inline

getFixedSize()

size_t llvm::MCFragment::getFixedSize ( ) const inline

getFixups() [1/2]

getFixups() [2/2]

getInst()

MCInst llvm::MCFragment::getInst ( ) const inline

getKind()

FragmentType llvm::MCFragment::getKind ( ) const inline

getLayoutOrder()

unsigned llvm::MCFragment::getLayoutOrder ( ) const inline

getLEBValue()

const MCExpr & llvm::MCFragment::getLEBValue ( ) const inline

getNext()

MCFragment * llvm::MCFragment::getNext ( ) const inline

getOpcode()

unsigned llvm::MCFragment::getOpcode ( ) const inline

getOperands()

getParent()

MCSection * llvm::MCFragment::getParent ( ) const inline

Definition at line 167 of file MCSection.h.

References MCSection.

Referenced by appendFixups(), attemptToFoldSymbolOffsetDifference(), llvm::RISCVAsmBackend::evaluateFixup(), llvm::MachObjectWriter::getAtom(), getFixups(), getFixups(), getInst(), getOperands(), llvm::MCSymbol::getSection(), llvm::MachObjectWriter::getSymbolAddress(), getVarContents(), getVarContents(), getVarFixups(), getVarFixups(), llvm::ELFObjectWriter::isSymbolRefDifferenceFullyResolvedImpl(), llvm::MachObjectWriter::isSymbolRefDifferenceFullyResolvedImpl(), llvm::MCObjectWriter::isSymbolRefDifferenceFullyResolvedImpl(), llvm::WinCOFFObjectWriter::isSymbolRefDifferenceFullyResolvedImpl(), setInst(), llvm::MCBoundaryAlignFragment::setLastFragment(), setVarContents(), and setVarFixups().

getSFrameAddrDelta()

const MCExpr & llvm::MCFragment::getSFrameAddrDelta ( ) const inline

getSFrameFDE()

MCFragment * llvm::MCFragment::getSFrameFDE ( ) const inline

getSize()

size_t llvm::MCFragment::getSize ( ) const inline

getSubtargetInfo()

Retrieve the MCSubTargetInfo in effect when the instruction was encoded.

Guaranteed to be non-null if hasInstructions() == true

Definition at line 183 of file MCSection.h.

References STI.

Referenced by writeFragment().

getVarContents() [1/2]

getVarContents() [2/2]

ArrayRef< char > llvm::MCFragment::getVarContents ( ) const inline

getVarFixups() [1/2]

getVarFixups() [2/2]

getVarSize()

size_t llvm::MCFragment::getVarSize ( ) const inline

hasAlignEmitNops()

bool llvm::MCFragment::hasAlignEmitNops ( ) const inline

hasInstructions()

bool llvm::MCFragment::hasInstructions ( ) const inline

Does this fragment have instructions emitted into it?

By default this is false, but specific fragment types may set it to true.

Definition at line 177 of file MCSection.h.

isLEBSigned()

bool llvm::MCFragment::isLEBSigned ( ) const inline

isLinkerRelaxable()

bool llvm::MCFragment::isLinkerRelaxable ( ) const inline

makeAlign()

void llvm::MCFragment::makeAlign ( Align Alignment, int64_t Fill, uint8_t FillLen, unsigned MaxBytesToEmit ) inline

makeLEB()

operator=()

setAllowAutoPadding()

void llvm::MCFragment::setAllowAutoPadding ( bool V) inline

setDwarfAddrDelta()

void llvm::MCFragment::setDwarfAddrDelta ( const MCExpr * E) inline

setDwarfLineDelta()

void llvm::MCFragment::setDwarfLineDelta ( int64_t LineDelta) inline

setHasInstructions()

setInst()

void llvm::MCFragment::setInst ( const MCInst & Inst) inline

setLayoutOrder()

void llvm::MCFragment::setLayoutOrder ( unsigned Value) inline

setLEBValue()

void llvm::MCFragment::setLEBValue ( const MCExpr * Expr) inline

setLinkerRelaxable()

void llvm::MCFragment::setLinkerRelaxable ( ) inline

setParent()

void llvm::MCFragment::setParent ( MCSection * Value) inline

setSFrameAddrDelta()

void llvm::MCFragment::setSFrameAddrDelta ( const MCExpr * E) inline

setSFrameFDE()

void llvm::MCFragment::setSFrameFDE ( MCFragment * F) inline

setVarContents()

void MCFragment::setVarContents ( ArrayRef< char > Contents )

setVarFixups()

MCAssembler

MCObjectStreamer

MCSection

MCStreamer

STI


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