LLVM API Documentation
#include <MCAssembler.h>


Public Types | |
| enum | FragmentType { FT_Align, FT_Data, FT_CompactEncodedInst, FT_Fill, FT_Relaxable, FT_Org, FT_Dwarf, FT_DwarfFrame, FT_LEB } |
Public Member Functions | |
| MCFragment () | |
| virtual | ~MCFragment () |
| FragmentType | getKind () const |
| MCSectionData * | getParent () const |
| void | setParent (MCSectionData *Value) |
| MCSymbolData * | getAtom () const |
| void | setAtom (MCSymbolData *Value) |
| unsigned | getLayoutOrder () const |
| void | setLayoutOrder (unsigned Value) |
| virtual bool | hasInstructions () const |
| Does this fragment have instructions emitted into it? By default this is false, but specific fragment types may set it to true. More... | |
| virtual bool | alignToBundleEnd () const |
| Should this fragment be placed at the end of an aligned bundle? More... | |
| virtual void | setAlignToBundleEnd (bool V) |
| virtual uint8_t | getBundlePadding () const |
| Get the padding size that must be inserted before this fragment. Used for bundling. By default, no padding is inserted. Note that padding size is restricted to 8 bits. This is an optimization to reduce the amount of space used for each fragment. In practice, larger padding should never be required. More... | |
| virtual void | setBundlePadding (uint8_t N) |
| Set the padding size for this fragment. By default it's a no-op, and only some fragments have a meaningful implementation. More... | |
| void | dump () |
Public Member Functions inherited from llvm::ilist_node< MCFragment > | |
| MCFragment * | getPrevNode () |
| Get the previous node, or 0 for the list head. More... | |
| const MCFragment * | getPrevNode () const |
| Get the previous node, or 0 for the list head. More... | |
| MCFragment * | getNextNode () |
| Get the next node, or 0 for the list tail. More... | |
| const MCFragment * | getNextNode () const |
| Get the next node, or 0 for the list tail. More... | |
Protected Member Functions | |
| MCFragment (FragmentType _Kind, MCSectionData *_Parent=0) | |
Protected Member Functions inherited from llvm::ilist_node< MCFragment > | |
| ilist_node () | |
Friends | |
| class | MCAsmLayout |
Definition at line 41 of file MCAssembler.h.
| Enumerator | |
|---|---|
| FT_Align | |
| FT_Data | |
| FT_CompactEncodedInst | |
| FT_Fill | |
| FT_Relaxable | |
| FT_Org | |
| FT_Dwarf | |
| FT_DwarfFrame | |
| FT_LEB | |
Definition at line 48 of file MCAssembler.h.
|
protected |
Definition at line 214 of file MCAssembler.cpp.
References llvm::MCSectionData::getFragmentList(), and llvm::iplist< NodeTy, Traits >::push_back().
| MCFragment::MCFragment | ( | ) |
Definition at line 208 of file MCAssembler.cpp.
|
virtual |
Definition at line 211 of file MCAssembler.cpp.
|
inlinevirtual |
Should this fragment be placed at the end of an aligned bundle?
Reimplemented in llvm::MCCompactEncodedInstFragment, and llvm::MCDataFragment.
Definition at line 109 of file MCAssembler.h.
Referenced by writeFragment().
| void MCFragment::dump | ( | ) |
Definition at line 1016 of file MCAssembler.cpp.
References llvm::MCInst::dump_pretty(), llvm::errs(), llvm::MCDataFragment::fixup_begin(), llvm::MCDataFragment::fixup_end(), FT_Align, FT_CompactEncodedInst, FT_Data, FT_Dwarf, FT_DwarfFrame, FT_Fill, FT_LEB, FT_Org, FT_Relaxable, llvm::MCDwarfLineAddrFragment::getAddrDelta(), llvm::MCDwarfCallFrameFragment::getAddrDelta(), llvm::MCAlignFragment::getAlignment(), getBundlePadding(), llvm::MCDataFragment::getContents(), llvm::MCCompactEncodedInstFragment::getContents(), llvm::MCRelaxableFragment::getInst(), getKind(), llvm::MCDwarfLineAddrFragment::getLineDelta(), llvm::MCAlignFragment::getMaxBytesToEmit(), llvm::MCOrgFragment::getOffset(), llvm::MCFillFragment::getSize(), llvm::MCAlignFragment::getValue(), llvm::MCFillFragment::getValue(), llvm::MCOrgFragment::getValue(), llvm::MCLEBFragment::getValue(), llvm::MCAlignFragment::getValueSize(), llvm::MCFillFragment::getValueSize(), llvm::MCAlignFragment::hasEmitNops(), hasInstructions(), llvm::hexdigit(), llvm::MCLEBFragment::isSigned(), and llvm::SmallVectorTemplateCommon< T, typename >::size().
|
inline |
Definition at line 98 of file MCAssembler.h.
Referenced by llvm::MCAssembler::getAtom(), and llvm::MachObjectWriter::IsSymbolRefDifferenceFullyResolvedImpl().
|
inlinevirtual |
Get the padding size that must be inserted before this fragment. Used for bundling. By default, no padding is inserted. Note that padding size is restricted to 8 bits. This is an optimization to reduce the amount of space used for each fragment. In practice, larger padding should never be required.
Reimplemented in llvm::MCEncodedFragment.
Definition at line 117 of file MCAssembler.h.
Referenced by dump(), and writeFragment().
|
inline |
Definition at line 93 of file MCAssembler.h.
Referenced by llvm::MCEncodedFragment::classof(), llvm::MCEncodedFragmentWithFixups::classof(), llvm::MCDataFragment::classof(), llvm::MCCompactEncodedInstFragment::classof(), llvm::MCRelaxableFragment::classof(), llvm::MCAlignFragment::classof(), llvm::MCFillFragment::classof(), llvm::MCOrgFragment::classof(), llvm::MCLEBFragment::classof(), llvm::MCDwarfLineAddrFragment::classof(), llvm::MCDwarfCallFrameFragment::classof(), llvm::MCAssembler::computeFragmentSize(), dump(), and writeFragment().
|
inline |
Definition at line 101 of file MCAssembler.h.
|
inline |
Definition at line 95 of file MCAssembler.h.
Referenced by llvm::MCAssembler::getAtom(), llvm::MachObjectWriter::getFragmentAddress(), llvm::MachObjectWriter::getSymbolAddress(), llvm::MCAsmLayout::invalidateFragmentsFrom(), llvm::MCObjectWriter::IsSymbolRefDifferenceFullyResolvedImpl(), llvm::MachObjectWriter::IsSymbolRefDifferenceFullyResolvedImpl(), and llvm::MCAsmLayout::layoutFragment().
|
inlinevirtual |
Does this fragment have instructions emitted into it? By default this is false, but specific fragment types may set it to true.
Reimplemented in llvm::MCRelaxableFragment, llvm::MCCompactEncodedInstFragment, and llvm::MCDataFragment.
Definition at line 106 of file MCAssembler.h.
Referenced by dump(), llvm::MCAsmLayout::layoutFragment(), and writeFragment().
|
inlinevirtual |
Reimplemented in llvm::MCCompactEncodedInstFragment, and llvm::MCDataFragment.
Definition at line 110 of file MCAssembler.h.
|
inline |
Definition at line 99 of file MCAssembler.h.
|
inlinevirtual |
Set the padding size for this fragment. By default it's a no-op, and only some fragments have a meaningful implementation.
Reimplemented in llvm::MCEncodedFragment.
Definition at line 123 of file MCAssembler.h.
Referenced by llvm::MCAsmLayout::layoutFragment().
|
inline |
Definition at line 102 of file MCAssembler.h.
|
inline |
Definition at line 96 of file MCAssembler.h.
Referenced by llvm::MCSectionData::getSubsectionInsertionPoint(), and llvm::MCObjectStreamer::insert().
|
friend |
Definition at line 42 of file MCAssembler.h.