|
LLVM
3.7.0
|
#include <MCAssembler.h>
Classes | |
| struct | VersionMinInfoType |
| MachO specific deployment target version info. More... | |
Public Types | |
| typedef std::vector< MCSection * > | SectionListType |
| typedef std::vector< const MCSymbol * > | SymbolDataListType |
| typedef pointee_iterator < SectionListType::const_iterator > | const_iterator |
| typedef pointee_iterator < SectionListType::iterator > | iterator |
| typedef pointee_iterator < SymbolDataListType::const_iterator > | const_symbol_iterator |
| typedef pointee_iterator < SymbolDataListType::iterator > | symbol_iterator |
| typedef iterator_range < symbol_iterator > | symbol_range |
| typedef iterator_range < const_symbol_iterator > | const_symbol_range |
| typedef std::vector < IndirectSymbolData > ::const_iterator | const_indirect_symbol_iterator |
| typedef std::vector < IndirectSymbolData > ::iterator | indirect_symbol_iterator |
| typedef std::vector < DataRegionData > ::const_iterator | const_data_region_iterator |
| typedef std::vector < DataRegionData >::iterator | data_region_iterator |
Friends | |
| class | MCAsmLayout |
Definition at line 531 of file MCAssembler.h.
| typedef std::vector<DataRegionData>::const_iterator llvm::MCAssembler::const_data_region_iterator |
Definition at line 553 of file MCAssembler.h.
| typedef std::vector<IndirectSymbolData>::const_iterator llvm::MCAssembler::const_indirect_symbol_iterator |
Definition at line 549 of file MCAssembler.h.
| typedef pointee_iterator<SectionListType::const_iterator> llvm::MCAssembler::const_iterator |
Definition at line 538 of file MCAssembler.h.
| typedef pointee_iterator<SymbolDataListType::const_iterator> llvm::MCAssembler::const_symbol_iterator |
Definition at line 542 of file MCAssembler.h.
Definition at line 546 of file MCAssembler.h.
| typedef std::vector<DataRegionData>::iterator llvm::MCAssembler::data_region_iterator |
Definition at line 554 of file MCAssembler.h.
| typedef std::vector<IndirectSymbolData>::iterator llvm::MCAssembler::indirect_symbol_iterator |
Definition at line 550 of file MCAssembler.h.
| typedef pointee_iterator<SectionListType::iterator> llvm::MCAssembler::iterator |
Definition at line 539 of file MCAssembler.h.
| typedef std::vector<MCSection *> llvm::MCAssembler::SectionListType |
Definition at line 535 of file MCAssembler.h.
| typedef pointee_iterator<SymbolDataListType::iterator> llvm::MCAssembler::symbol_iterator |
Definition at line 543 of file MCAssembler.h.
Definition at line 545 of file MCAssembler.h.
| typedef std::vector<const MCSymbol *> llvm::MCAssembler::SymbolDataListType |
Definition at line 536 of file MCAssembler.h.
| MCAssembler::MCAssembler | ( | MCContext & | Context_, |
| MCAsmBackend & | Backend_, | ||
| MCCodeEmitter & | Emitter_, | ||
| MCObjectWriter & | Writer_, | ||
| raw_ostream & | OS | ||
| ) |
Construct a new assembler instance.
| OS | The stream to output to. |
Definition at line 327 of file MCAssembler.cpp.
References llvm::MCAssembler::VersionMinInfoType::Major.
| MCAssembler::~MCAssembler | ( | ) |
Definition at line 336 of file MCAssembler.cpp.
|
inline |
Definition at line 871 of file MCAssembler.h.
Referenced by llvm::MCWinCOFFStreamer::EmitFileDirective(), and llvm::MCELFStreamer::EmitFileDirective().
|
inline |
Definition at line 764 of file MCAssembler.h.
Referenced by llvm::MachObjectWriter::computeSymbolTable(), dump(), Finish(), and llvm::MCAsmLayout::MCAsmLayout().
|
inline |
Definition at line 765 of file MCAssembler.h.
| uint64_t MCAssembler::computeFragmentSize | ( | const MCAsmLayout & | Layout, |
| const MCFragment & | F | ||
| ) | const |
Compute the effective fragment size assuming it is laid out at the given SectionAddress and FragmentOffset.
Definition at line 491 of file MCAssembler.cpp.
References F(), llvm::MCFragment::FT_Align, llvm::MCFragment::FT_CompactEncodedInst, llvm::MCFragment::FT_Data, llvm::MCFragment::FT_Dwarf, llvm::MCFragment::FT_DwarfFrame, llvm::MCFragment::FT_Fill, llvm::MCFragment::FT_LEB, llvm::MCFragment::FT_Org, llvm::MCFragment::FT_Relaxable, llvm::MCFragment::FT_SafeSEH, llvm::MCAlignFragment::getAlignment(), getBackend(), llvm::MCAsmLayout::getFragmentOffset(), llvm::MCFragment::getKind(), llvm::MCAlignFragment::getMaxBytesToEmit(), llvm::MCAsmBackend::getMinimumNopSize(), llvm::MCOrgFragment::getOffset(), llvm::MCAlignFragment::hasEmitNops(), llvm_unreachable, llvm::OffsetToAlignment(), and llvm::report_fatal_error().
Referenced by llvm::MCAsmLayout::getSectionAddressSize(), llvm::MCAsmLayout::layoutFragment(), and writeFragment().
|
inline |
Definition at line 832 of file MCAssembler.h.
|
inline |
Definition at line 833 of file MCAssembler.h.
|
inline |
Definition at line 837 of file MCAssembler.h.
|
inline |
Definition at line 838 of file MCAssembler.h.
|
inline |
Definition at line 842 of file MCAssembler.h.
| void MCAssembler::dump | ( | ) |
Definition at line 1249 of file MCAssembler.cpp.
References begin(), end(), llvm::errs(), symbol_begin(), and symbol_end().
Referenced by Finish().
|
inline |
Definition at line 767 of file MCAssembler.h.
Referenced by llvm::MachObjectWriter::computeSymbolTable(), dump(), Finish(), and llvm::MCAsmLayout::MCAsmLayout().
|
inline |
Definition at line 768 of file MCAssembler.h.
| void MCAssembler::Finish | ( | ) |
Finish - Do final processing and write the object to the output stream.
Writer is used for custom object writer (as the MCJIT does), if not specified it is automatically created from backend.
Definition at line 857 of file MCAssembler.cpp.
References llvm::MCAsmBackend::applyFixup(), llvm::MCSection::begin(), begin(), llvm::MutableArrayRef< T >::data(), DEBUG_WITH_TYPE, dump(), llvm::dyn_cast(), llvm::MCSection::end(), end(), llvm::errs(), llvm::MCObjectWriter::executePostLayoutBinding(), getBackend(), getWriter(), llvm_unreachable, llvm::MCSection::setLayoutOrder(), llvm::ArrayRef< T >::size(), llvm::raw_ostream::tell(), and llvm::MCObjectWriter::writeObject().
Referenced by llvm::MCObjectStreamer::FinishImpl().
Find the symbol which defines the atom containing the given symbol, or null if there is no such symbol.
Definition at line 401 of file MCAssembler.cpp.
References llvm::MCContext::getAsmInfo(), llvm::MCFragment::getAtom(), getContext(), llvm::MCSymbol::getFragment(), llvm::MCFragment::getParent(), llvm::MCAsmInfo::isSectionAtomizableBySymbols(), and isSymbolLinkerVisible().
|
inline |
Definition at line 733 of file MCAssembler.h.
Referenced by computeFragmentSize(), llvm::MCELFStreamer::EmitAssemblerFlag(), llvm::MCObjectStreamer::EmitInstruction(), Finish(), llvm::MachObjectWriter::isFixupKindPCRel(), reset(), writeFragment(), writeFragmentPadding(), and llvm::MCObjectStreamer::~MCObjectStreamer().
|
inline |
Definition at line 753 of file MCAssembler.h.
Referenced by llvm::computeBundlePadding(), llvm::MCELFStreamer::EmitBundleAlignMode(), llvm::MCAsmLayout::layoutFragment(), setSectionAlignmentForBundling(), and writeFragmentPadding().
|
inline |
Definition at line 731 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::PPCMCExpr::evaluateAsRelocatableImpl(), llvm::MipsTargetELFStreamer::finish(), getAtom(), llvm::MCAsmLayout::getBaseSymbol(), llvm::HexagonMCELFStreamer::HexagonMCEmitCommonSymbol(), llvm::MipsTargetELFStreamer::MipsTargetELFStreamer(), and llvm::MipsAsmBackend::processFixupValue().
|
inline |
Definition at line 830 of file MCAssembler.h.
Referenced by llvm::MachObjectWriter::writeObject().
|
inline |
ELF e_header flags.
Definition at line 700 of file MCAssembler.h.
Referenced by llvm::MipsTargetELFStreamer::emitDirectiveAbiCalls(), llvm::MipsTargetELFStreamer::emitDirectiveNaN2008(), llvm::MipsTargetELFStreamer::emitDirectiveNaNLegacy(), llvm::MipsTargetELFStreamer::emitDirectiveOptionPic0(), llvm::MipsTargetELFStreamer::emitDirectiveOptionPic2(), llvm::MipsTargetELFStreamer::emitDirectiveSetMicroMips(), llvm::MipsTargetELFStreamer::emitDirectiveSetMips16(), llvm::MipsTargetELFStreamer::emitDirectiveSetNoReorder(), llvm::MipsTargetELFStreamer::finish(), and llvm::MipsTargetELFStreamer::MipsTargetELFStreamer().
|
inline |
Definition at line 735 of file MCAssembler.h.
Referenced by llvm::MCWinCOFFStreamer::EmitInstToData(), llvm::MCObjectStreamer::EmitInstToFragment(), reset(), and llvm::MCObjectStreamer::~MCObjectStreamer().
|
inline |
Definition at line 869 of file MCAssembler.h.
|
inline |
Definition at line 795 of file MCAssembler.h.
Referenced by llvm::MCELFStreamer::EmitSymbolAttribute().
|
inline |
Definition at line 819 of file MCAssembler.h.
Referenced by llvm::MachObjectWriter::writeObject().
|
inline |
Definition at line 851 of file MCAssembler.h.
Referenced by getLOHContainer(), reset(), and llvm::MachObjectWriter::writeObject().
|
inline |
Definition at line 852 of file MCAssembler.h.
References getLOHContainer().
|
inline |
Definition at line 748 of file MCAssembler.h.
Referenced by llvm::MCELFStreamer::EmitBundleUnlock(), llvm::MCObjectStreamer::EmitInstruction(), llvm::MCObjectStreamer::getOrCreateDataFragment(), and llvm::MCAsmLayout::layoutFragment().
|
inline |
Definition at line 745 of file MCAssembler.h.
Referenced by llvm::MachObjectWriter::isSymbolRefDifferenceFullyResolvedImpl().
|
inline |
MachO deployment target version information.
Definition at line 704 of file MCAssembler.h.
Referenced by llvm::MachObjectWriter::writeObject().
|
inline |
Definition at line 737 of file MCAssembler.h.
Referenced by canExpand(), Finish(), reset(), writeFragment(), writeSectionData(), and llvm::MCObjectStreamer::~MCObjectStreamer().
|
inline |
Definition at line 799 of file MCAssembler.h.
Referenced by llvm::MachObjectWriter::bindIndirectSymbols().
|
inline |
Definition at line 802 of file MCAssembler.h.
|
inline |
Definition at line 806 of file MCAssembler.h.
Referenced by llvm::MachObjectWriter::bindIndirectSymbols().
|
inline |
Definition at line 809 of file MCAssembler.h.
|
inline |
Definition at line 813 of file MCAssembler.h.
|
inline |
Definition at line 751 of file MCAssembler.h.
Referenced by llvm::MCObjectStreamer::EmitInstruction(), llvm::MCObjectStreamer::getOrCreateDataFragment(), llvm::MCAsmLayout::layoutFragment(), setSectionAlignmentForBundling(), and writeFragmentPadding().
Check whether a particular symbol is visible to the linker and is required in the symbol table, or whether it can be discarded by the assembler.
This also effects whether the assembler treats the label as potentially defining a separate atom.
Definition at line 386 of file MCAssembler.cpp.
References llvm::MCSymbol::isInSection(), llvm::MCSymbol::isTemporary(), and llvm::MCSymbol::isUsedInReloc().
Referenced by llvm::MachObjectWriter::computeSymbolTable(), and getAtom().
Check whether a given symbol has been flagged with .thumb_func.
Definition at line 361 of file MCAssembler.cpp.
References llvm::dyn_cast(), llvm::MCSymbolRefExpr::getKind(), llvm::MCSymbolRefExpr::getSymbol(), llvm::MCSymbol::getVariableValue(), llvm::MCSymbol::isVariable(), and llvm::MCSymbolRefExpr::VK_None.
Definition at line 859 of file MCAssembler.h.
References llvm::MCSection::isRegistered(), and llvm::MCSection::setIsRegistered().
Referenced by llvm::MCObjectStreamer::changeSectionImpl(), llvm::MCWinCOFFStreamer::EmitCOFFSafeSEH(), llvm::MipsTargetELFStreamer::emitDirectiveEnd(), llvm::MCWinCOFFStreamer::EmitLocalCommonSymbol(), llvm::MipsTargetELFStreamer::emitMipsAbiFlags(), llvm::MipsRegInfoRecord::EmitMipsOptionRecord(), llvm::MipsTargetELFStreamer::finish(), and llvm::MCELFStreamer::Flush().
Definition at line 611 of file MCAssembler.cpp.
References llvm::MCSymbol::isRegistered(), and llvm::MCSymbol::setIsRegistered().
Referenced by llvm::MachObjectWriter::bindIndirectSymbols(), llvm::MCELFStreamer::ChangeSection(), llvm::MipsELFStreamer::createPendingLabelRelocs(), llvm::MCObjectStreamer::EmitAssignment(), llvm::MCWinCOFFStreamer::EmitCOFFSafeSEH(), llvm::MCWinCOFFStreamer::EmitCOFFSymbolStorageClass(), llvm::MCWinCOFFStreamer::EmitCOFFSymbolType(), llvm::MCELFStreamer::EmitCommonSymbol(), llvm::MCWinCOFFStreamer::EmitCommonSymbol(), llvm::MipsTargetELFStreamer::emitDirectiveCpLoad(), llvm::MCObjectStreamer::EmitLabel(), llvm::MipsTargetELFStreamer::emitLabel(), llvm::MCWinCOFFStreamer::EmitLocalCommonSymbol(), llvm::MCELFStreamer::EmitLocalCommonSymbol(), llvm::MCWinCOFFStreamer::EmitSymbolAttribute(), llvm::MCELFStreamer::EmitSymbolAttribute(), llvm::MCELFStreamer::EmitWeakReference(), llvm::HexagonMCELFStreamer::HexagonMCEmitCommonSymbol(), llvm::HexagonMCELFStreamer::HexagonMCEmitLocalCommonSymbol(), and llvm::MCObjectStreamer::visitUsedSymbol().
| void MCAssembler::reset | ( | ) |
Reuse an assembler instance.
Definition at line 339 of file MCAssembler.cpp.
References getBackend(), getEmitter(), getLOHContainer(), getWriter(), llvm::MCAssembler::VersionMinInfoType::Major, llvm::MCCodeEmitter::reset(), llvm::MCAsmBackend::reset(), llvm::MCObjectWriter::reset(), and llvm::MCLOHContainer::reset().
Referenced by llvm::MCObjectStreamer::reset().
|
inline |
Definition at line 755 of file MCAssembler.h.
Referenced by llvm::MCELFStreamer::EmitBundleAlignMode().
|
inline |
Definition at line 701 of file MCAssembler.h.
Referenced by llvm::MipsTargetELFStreamer::emitDirectiveAbiCalls(), llvm::MipsTargetELFStreamer::emitDirectiveNaN2008(), llvm::MipsTargetELFStreamer::emitDirectiveNaNLegacy(), llvm::MipsTargetELFStreamer::emitDirectiveOptionPic0(), llvm::MipsTargetELFStreamer::emitDirectiveOptionPic2(), llvm::MipsTargetELFStreamer::emitDirectiveSetMicroMips(), llvm::MipsTargetELFStreamer::emitDirectiveSetMips16(), llvm::MipsTargetELFStreamer::emitDirectiveSetNoReorder(), llvm::MipsTargetELFStreamer::finish(), and llvm::MipsTargetELFStreamer::MipsTargetELFStreamer().
Flag a function symbol as the target of a .thumb_func directive.
Definition at line 697 of file MCAssembler.h.
|
inline |
Definition at line 749 of file MCAssembler.h.
Referenced by llvm::createELFStreamer().
|
inline |
Definition at line 746 of file MCAssembler.h.
Referenced by llvm::MCELFStreamer::EmitAssemblerFlag().
|
inline |
Definition at line 705 of file MCAssembler.h.
References llvm::MCAssembler::VersionMinInfoType::Kind, Kind, llvm::MCAssembler::VersionMinInfoType::Major, llvm::MCAssembler::VersionMinInfoType::Minor, and llvm::MCAssembler::VersionMinInfoType::Update.
|
inline |
Definition at line 770 of file MCAssembler.h.
Referenced by llvm::MachObjectWriter::writeObject().
|
inline |
Definition at line 775 of file MCAssembler.h.
|
inline |
Definition at line 776 of file MCAssembler.h.
|
inline |
Definition at line 778 of file MCAssembler.h.
|
inline |
Definition at line 779 of file MCAssembler.h.
|
inline |
Definition at line 786 of file MCAssembler.h.
|
inline |
Definition at line 781 of file MCAssembler.h.
References llvm::make_range(), symbol_begin(), and symbol_end().
Referenced by llvm::MachObjectWriter::computeSymbolTable().
|
inline |
Definition at line 782 of file MCAssembler.h.
References llvm::make_range(), symbol_begin(), and symbol_end().
| void MCAssembler::writeFragmentPadding | ( | const MCFragment & | F, |
| uint64_t | FSize, | ||
| MCObjectWriter * | OW | ||
| ) | const |
Write the necessary bundle padding to the given object writer.
Expects a fragment F containing instructions and its size FSize.
Definition at line 621 of file MCAssembler.cpp.
References llvm::MCFragment::alignToBundleEnd(), getBackend(), getBundleAlignSize(), llvm::MCFragment::getBundlePadding(), llvm::MCFragment::hasInstructions(), isBundlingEnabled(), and llvm::report_fatal_error().
Referenced by writeFragment().
| void MCAssembler::writeSectionData | ( | const MCSection * | Section, |
| const MCAsmLayout & | Layout | ||
| ) | const |
Emit the section contents using the given object writer.
Definition at line 782 of file MCAssembler.cpp.
References llvm::MCSection::begin(), llvm::MCSection::end(), llvm::MCEncodedFragmentWithFixups< ContentsSize, FixupsSize >::fixup_begin(), llvm::MCEncodedFragmentWithFixups< ContentsSize, FixupsSize >::fixup_end(), llvm::MCFragment::FT_Align, llvm::MCFragment::FT_Data, llvm::MCFragment::FT_Fill, llvm::MCEncodedFragmentWithContents< ContentsSize >::getContents(), llvm::MCAsmLayout::getSectionAddressSize(), llvm::MCAsmLayout::getSectionFileSize(), llvm::MCObjectWriter::getStream(), getWriter(), llvm::MCSection::isVirtualSection(), llvm_unreachable, llvm::report_fatal_error(), llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::raw_ostream::tell(), and writeFragment().
|
friend |
Definition at line 532 of file MCAssembler.h.
1.8.6