Home | History | Annotate | Download | only in MC

Lines Matching refs:Asm

55   MCAssembler &Asm;
74 SymbolTableWriter(MCAssembler &Asm, FragmentWriter &FWriter, bool Is64Bit,
108 static bool isFixupKindPCRel(const MCAssembler &Asm, unsigned Kind);
121 void WriteDataSectionData(MCAssembler &Asm,
208 void WriteHeader(const MCAssembler &Asm,
215 void WriteSymbolTable(MCDataFragment *SymtabF, MCAssembler &Asm,
219 bool shouldRelocateWithSymbol(const MCAssembler &Asm,
224 void RecordRelocation(const MCAssembler &Asm, const MCAsmLayout &Layout,
229 uint64_t getSymbolIndexInSymbolTable(const MCAssembler &Asm,
243 /// \param Asm - The assembler.
247 void computeSymbolTable(MCAssembler &Asm, const MCAsmLayout &Layout,
252 void ComputeIndexMap(MCAssembler &Asm,
256 void CreateRelocationSections(MCAssembler &Asm, MCAsmLayout &Layout,
259 void CompressDebugSections(MCAssembler &Asm, MCAsmLayout &Layout);
261 void WriteRelocations(MCAssembler &Asm, MCAsmLayout &Layout,
264 void CreateMetadataSections(MCAssembler &Asm, MCAsmLayout &Layout,
270 void CreateIndexedSections(MCAssembler &Asm, MCAsmLayout &Layout,
276 void ExecutePostLayoutBinding(MCAssembler &Asm,
279 void WriteSectionHeader(MCAssembler &Asm, const GroupMapTy &GroupMap,
284 void ComputeSectionOrder(MCAssembler &Asm,
292 void WriteRelocationsFragment(const MCAssembler &Asm,
297 IsSymbolRefDifferenceFullyResolvedImpl(const MCAssembler &Asm,
303 void WriteObject(MCAssembler &Asm, const MCAsmLayout &Layout) override;
304 void WriteSection(MCAssembler &Asm,
328 MCContext &Ctx = Asm.getContext();
333 &Asm.getOrCreateSectionData(*SymtabShndxSection);
348 SymbolTableWriter::SymbolTableWriter(MCAssembler &Asm, FragmentWriter &FWriter,
352 : Asm(Asm), FWriter(FWriter), Is64Bit(Is64Bit),
394 bool ELFObjectWriter::isFixupKindPCRel(const MCAssembler &Asm, unsigned Kind) {
396 Asm.getBackend().getFixupKindInfo((MCFixupKind) Kind);
426 void ELFObjectWriter::WriteHeader(const MCAssembler &Asm,
465 Write32(Asm.getELFHeaderEFlags());
504 void ELFObjectWriter::ExecutePostLayoutBinding(MCAssembler &Asm,
509 for (MCSymbolData &OriginalData : Asm.symbols()) {
519 MCSymbolData &SD = Asm.getSymbolData(Symbol);
628 MCAssembler &Asm,
636 SymbolTableWriter Writer(Asm, FWriter, is64Bit(), SectionIndexMap, SymtabF);
655 for (MCAssembler::const_iterator i = Asm.begin(), e = Asm.end(); i != e;
693 bool ELFObjectWriter::shouldRelocateWithSymbol(const MCAssembler &Asm,
782 if (Asm.isThumbFunc(&Sym))
809 void ELFObjectWriter::RecordRelocation(const MCAssembler &Asm,
832 Asm.getContext().FatalError(
839 Asm.getContext().FatalError(
847 Asm.getContext().FatalError(
850 const MCSymbolData &SymBD = Asm.getSymbolData(SymB);
860 const MCSymbolData *SymAD = SymA ? &Asm.getSymbolData(*SymA) : nullptr;
863 bool RelocateWithSymbol = shouldRelocateWithSymbol(Asm, RefA, SymAD, C, Type);
884 const MCSectionData *SecAD = SecA ? &Asm.getSectionData(*SecA) : nullptr;
906 ELFObjectWriter::getSymbolIndexInSymbolTable(const MCAssembler &Asm,
908 const MCSymbolData &SD = Asm.getSymbolData(*S);
963 void ELFObjectWriter::ComputeIndexMap(MCAssembler &Asm,
967 for (MCAssembler::iterator it = Asm.begin(),
968 ie = Asm.end(); it != ie; ++it) {
976 for (MCAssembler::iterator it = Asm.begin(),
977 ie = Asm.end(); it != ie; ++it) {
992 ELFObjectWriter::computeSymbolTable(MCAssembler &Asm, const MCAsmLayout &Layout,
1000 MCSymbol *Sym = Asm.getContext().GetOrCreateSymbol(Name);
1001 MCSymbolData &Data = Asm.getOrCreateSymbolData(*Sym);
1007 for (MCSymbolData &SD : Asm.symbols()) {
1028 MCSymbolData &BaseData = Asm.getSymbolData(*BaseSymbol);
1073 for (auto i = Asm.file_names_begin(), e = Asm.file_names_end(); i != e; ++i)
1078 for (auto i = Asm.file_names_begin(), e = Asm.file_names_end(); i != e; ++i)
1107 void ELFObjectWriter::CreateRelocationSections(MCAssembler &Asm,
1110 for (MCAssembler::const_iterator it = Asm.begin(),
1111 ie = Asm.end(); it != ie; ++it) {
1116 MCContext &Ctx = Asm.getContext();
1143 Asm.getOrCreateSectionData(*RelaSection);
1231 static void CompressDebugSection(MCAssembler &Asm, MCAsmLayout &Layout,
1262 Asm.getContext().renameELFSection(&Section,
1266 void ELFObjectWriter::CompressDebugSections(MCAssembler &Asm,
1268 if (!Asm.getContext().getAsmInfo()->compressDebugSections())
1273 for (MCSymbolData &SD : Asm.symbols())
1277 for (MCSectionData &SD : Asm) {
1288 CompressDebugSection(Asm, Layout, DefiningSymbols, Section, SD);
1292 void ELFObjectWriter::WriteRelocations(MCAssembler &Asm, MCAsmLayout &Layout,
1294 for (MCAssembler::const_iterator it = Asm.begin(),
1295 ie = Asm.end(); it != ie; ++it) {
1303 MCSectionData &RelaSD = Asm.getOrCreateSectionData(*RelaSection);
1307 WriteRelocationsFragment(Asm, F, &*it);
1342 static void sortRelocs(const MCAssembler &Asm,
1347 void ELFObjectWriter::WriteRelocationsFragment(const MCAssembler &Asm,
1352 sortRelocs(Asm, Relocs);
1359 Index = getSymbolIndexInSymbolTable(Asm, Entry.Symbol);
1398 void ELFObjectWriter::CreateMetadataSections(MCAssembler &Asm,
1402 MCContext &Ctx = Asm.getContext();
1411 MCSectionData &ShstrtabSD = Asm.getOrCreateSectionData(*ShstrtabSection);
1418 MCSectionData &SymtabSD = Asm.getOrCreateSectionData(*SymtabSection);
1424 MCSectionData &StrtabSD = Asm.getOrCreateSectionData(*StrtabSection);
1427 ComputeIndexMap(Asm, SectionIndexMap, RelMap);
1435 WriteSymbolTable(F, Asm, Layout, SectionIndexMap);
1444 for (auto it = Asm.begin(), ie = Asm.end(); it != ie; ++it) {
1454 void ELFObjectWriter::CreateIndexedSections(MCAssembler &Asm,
1461 MCContext &Ctx = Asm.getContext();
1462 if (Asm.getNoExecStack()) {
1466 Asm.getOrCreateSectionData(*GnuStackSection);
1470 for (MCAssembler::const_iterator it = Asm.begin(), ie = Asm.end();
1478 Asm.getOrCreateSymbolData(*SignatureSymbol);
1482 MCSectionData &Data = Asm.getOrCreateSectionData(*Group);
1490 ComputeIndexMap(Asm, SectionIndexMap, RelMap);
1493 for (MCAssembler::const_iterator it = Asm.begin(), ie = Asm.end();
1500 MCSectionData &Data = Asm.getOrCreateSectionData(*Group);
1508 void ELFObjectWriter::WriteSection(MCAssembler &Asm,
1527 SymtabSection = Asm.getContext().getELFSection(".symtab", ELF::SHT_SYMTAB,
1539 InfoSection = Asm.getContext().getELFSection(SectionName, ELF::SHT_PROGBITS,
1586 Asm.getContext().getELFSection(".text",
1593 sh_link = SectionIndexMap.lookup(Asm.getContext().getELFSection(
1636 void ELFObjectWriter::WriteDataSectionData(MCAssembler &Asm,
1639 const MCSectionData &SD = Asm.getOrCreateSectionData(Section);
1652 Asm.writeSectionData(&SD, Layout);
1656 void ELFObjectWriter::WriteSectionHeader(MCAssembler &Asm,
1661 const unsigned NumSections = Asm.size() + 1;
1681 const MCSectionData &SD = Asm.getOrCreateSectionData(Section);
1686 GroupSymbolIndex = getSymbolIndexInSymbolTable(Asm,
1691 WriteSection(Asm, SectionIndexMap, GroupSymbolIndex,
1697 void ELFObjectWriter::ComputeSectionOrder(MCAssembler &Asm,
1699 for (MCAssembler::iterator it = Asm.begin(),
1700 ie = Asm.end(); it != ie; ++it) {
1707 for (MCAssembler::iterator it = Asm.begin(),
1708 ie = Asm.end(); it != ie; ++it) {
1717 for (MCAssembler::iterator it = Asm.begin(),
1718 ie = Asm.end(); it != ie; ++it) {
1727 void ELFObjectWriter::WriteObject(MCAssembler &Asm,
1733 unsigned NumUserSections = Asm.size();
1735 CompressDebugSections(Asm, const_cast<MCAsmLayout &>(Layout));
1738 CreateRelocationSections(Asm, const_cast<MCAsmLayout&>(Layout), RelMap);
1740 const unsigned NumUserAndRelocSections = Asm.size();
1741 CreateIndexedSections(Asm, const_cast<MCAsmLayout&>(Layout), GroupMap,
1743 const unsigned AllSections = Asm.size();
1749 computeSymbolTable(Asm, Layout, SectionIndexMap, RevGroupMap,
1752 WriteRelocations(Asm, const_cast<MCAsmLayout&>(Layout), RelMap);
1754 CreateMetadataSections(const_cast<MCAssembler&>(Asm),
1765 ComputeSectionOrder(Asm, Sections);
1770 const MCSectionData &SD = Asm.getOrCreateSectionData(Section);
1791 const MCSectionData &SD = Asm.getOrCreateSectionData(Section);
1803 WriteHeader(Asm, SectionHeaderOffset, NumSections + 1);
1808 WriteDataSectionData(Asm, Layout, *Sections[i]);
1814 WriteSectionHeader(Asm, GroupMap, Layout, SectionIndexMap,
1819 WriteDataSectionData(Asm, Layout, *Sections[i]);
1823 ELFObjectWriter::IsSymbolRefDifferenceFullyResolvedImpl(const MCAssembler &Asm,
1831 Asm, DataA, FB,InSet, IsPCRel);