Home | History | Annotate | Download | only in MC

Lines Matching refs:Asm

44     static bool isFixupKindPCRel(const MCAssembler &Asm, unsigned Kind);
47 static bool isInSymtab(const MCAssembler &Asm, const MCSymbolData &Data,
58 void WriteDataSectionData(MCAssembler &Asm,
121 const MCSymbol *SymbolToReloc(const MCAssembler &Asm,
128 const MCSymbol *ExplicitRelSym(const MCAssembler &Asm,
133 return TargetObjectWriter->ExplicitRelSym(Asm, Target, F, Fixup, IsPCRel);
233 void WriteHeader(const MCAssembler &Asm,
251 const MCAssembler &Asm,
255 virtual void RecordRelocation(const MCAssembler &Asm,
261 uint64_t getSymbolIndexInSymbolTable(const MCAssembler &Asm,
275 /// \param Asm - The assembler.
279 void ComputeSymbolTable(MCAssembler &Asm,
284 void ComputeIndexMap(MCAssembler &Asm,
288 void CreateRelocationSections(MCAssembler &Asm, MCAsmLayout &Layout,
291 void WriteRelocations(MCAssembler &Asm, MCAsmLayout &Layout,
294 void CreateMetadataSections(MCAssembler &Asm, MCAsmLayout &Layout,
300 void CreateIndexedSections(MCAssembler &Asm, MCAsmLayout &Layout,
306 virtual void ExecutePostLayoutBinding(MCAssembler &Asm,
309 void WriteSectionHeader(MCAssembler &Asm, const GroupMapTy &GroupMap,
314 void ComputeSectionOrder(MCAssembler &Asm,
322 void WriteRelocationsFragment(const MCAssembler &Asm,
327 IsSymbolRefDifferenceFullyResolvedImpl(const MCAssembler &Asm,
333 virtual void WriteObject(MCAssembler &Asm, const MCAsmLayout &Layout);
334 void WriteSection(MCAssembler &Asm,
342 bool ELFObjectWriter::isFixupKindPCRel(const MCAssembler &Asm, unsigned Kind) {
344 Asm.getBackend().getFixupKindInfo((MCFixupKind) Kind);
374 void ELFObjectWriter::WriteHeader(const MCAssembler &Asm,
413 Write32(Asm.getELFHeaderEFlags());
500 void ELFObjectWriter::ExecutePostLayoutBinding(MCAssembler &Asm,
505 for (MCAssembler::symbol_iterator it = Asm.symbol_begin(),
506 ie = Asm.symbol_end(); it != ie; ++it) {
509 MCSymbolData &SD = Asm.getSymbolData(Symbol);
581 const MCAssembler &Asm,
601 for (MCAssembler::const_iterator i = Asm.begin(), e = Asm.end(); i != e;
637 const MCSymbol *ELFObjectWriter::SymbolToReloc(const MCAssembler &Asm,
645 const MCSymbolData &SD = Asm.getSymbolData(Symbol);
664 return ExplicitRelSym(Asm, Target, F, Fixup, IsPCRel);
687 return ExplicitRelSym(Asm, Target, F, Fixup, IsPCRel);
693 return ExplicitRelSym(Asm, Target, F, Fixup, IsPCRel);
698 void ELFObjectWriter::RecordRelocation(const MCAssembler &Asm,
709 bool IsPCRel = isFixupKindPCRel(Asm, Fixup.getKind());
713 RelocSymbol = SymbolToReloc(Asm, Target, *Fragment, Fixup, IsPCRel);
717 MCSymbolData &SDB = Asm.getSymbolData(SymbolB);
729 MCSymbolData &SD = Asm.getSymbolData(ASymbol);
740 if (Asm.getSymbolData(Symbol).getFlags() & ELF_Other_Weakref)
779 ELFObjectWriter::getSymbolIndexInSymbolTable(const MCAssembler &Asm,
781 MCSymbolData &SD = Asm.getSymbolData(*S);
785 bool ELFObjectWriter::isInSymtab(const MCAssembler &Asm,
810 if (!Asm.isSymbolLinkerVisible(Symbol) && !Symbol.isUndefined())
837 void ELFObjectWriter::ComputeIndexMap(MCAssembler &Asm,
841 for (MCAssembler::iterator it = Asm.begin(),
842 ie = Asm.end(); it != ie; ++it) {
850 for (MCAssembler::iterator it = Asm.begin(),
851 ie = Asm.end(); it != ie; ++it) {
865 void ELFObjectWriter::ComputeSymbolTable(MCAssembler &Asm,
873 MCSymbol *Sym = Asm.getContext().GetOrCreateSymbol(Name);
874 MCSymbolData &Data = Asm.getOrCreateSymbolData(*Sym);
887 for (MCAssembler::symbol_iterator it = Asm.symbol_begin(),
888 ie = Asm.symbol_end(); it != ie; ++it) {
895 if (!isInSymtab(Asm, *it,
908 MCSymbolData &SD = Asm.getSymbolData(RefSymbol);
985 void ELFObjectWriter::CreateRelocationSections(MCAssembler &Asm,
988 for (MCAssembler::const_iterator it = Asm.begin(),
989 ie = Asm.end(); it != ie; ++it) {
994 MCContext &Ctx = Asm.getContext();
1014 Asm.getOrCreateSectionData(*RelaSection);
1018 void ELFObjectWriter::WriteRelocations(MCAssembler &Asm, MCAsmLayout &Layout,
1020 for (MCAssembler::const_iterator it = Asm.begin(),
1021 ie = Asm.end(); it != ie; ++it) {
1029 MCSectionData &RelaSD = Asm.getOrCreateSectionData(*RelaSection);
1033 WriteRelocationsFragment(Asm, F, &*it);
1055 void ELFObjectWriter::WriteRelocationsFragment(const MCAssembler &Asm,
1062 TargetObjectWriter->sortRelocs(Asm, Relocs);
1070 entry.Index = getSymbolIndexInSymbolTable(Asm, entry.Symbol);
1121 void ELFObjectWriter::CreateMetadataSections(MCAssembler &Asm,
1125 MCContext &Ctx = Asm.getContext();
1134 MCSectionData &ShstrtabSD = Asm.getOrCreateSectionData(*ShstrtabSection);
1141 MCSectionData &SymtabSD = Asm.getOrCreateSectionData(*SymtabSection);
1150 SymtabShndxSD = &Asm.getOrCreateSectionData(*SymtabShndxSection);
1157 MCSectionData &StrtabSD = Asm.getOrCreateSectionData(*StrtabSection);
1160 ComputeIndexMap(Asm, SectionIndexMap, RelMap);
1172 WriteSymbolTable(F, ShndxF, Asm, Layout, SectionIndexMap);
1180 for (MCAssembler::const_iterator it = Asm.begin(),
1181 ie = Asm.end(); it != ie; ++it) {
1216 void ELFObjectWriter::CreateIndexedSections(MCAssembler &Asm,
1223 MCContext &Ctx = Asm.getContext();
1224 if (Asm.getNoExecStack()) {
1228 Asm.getOrCreateSectionData(*GnuStackSection);
1232 for (MCAssembler::const_iterator it = Asm.begin(), ie = Asm.end();
1240 Asm.getOrCreateSymbolData(*SignatureSymbol);
1244 MCSectionData &Data = Asm.getOrCreateSectionData(*Group);
1252 ComputeIndexMap(Asm, SectionIndexMap, RelMap);
1255 for (MCAssembler::const_iterator it = Asm.begin(), ie = Asm.end();
1262 MCSectionData &Data = Asm.getOrCreateSectionData(*Group);
1270 void ELFObjectWriter::WriteSection(MCAssembler &Asm,
1289 SymtabSection = Asm.getContext().getELFSection(".symtab", ELF::SHT_SYMTAB,
1299 InfoSection = Asm.getContext().getELFSection(SectionName,
1346 Asm.getContext().getELFSection(".text",
1352 Asm.getContext().getELFSection(SecName.substr(sizeof(".ARM.exidx") - 1),
1394 void ELFObjectWriter::WriteDataSectionData(MCAssembler &Asm,
1397 const MCSectionData &SD = Asm.getOrCreateSectionData(Section);
1410 Asm.writeSectionData(&SD, Layout);
1414 void ELFObjectWriter::WriteSectionHeader(MCAssembler &Asm,
1419 const unsigned NumSections = Asm.size() + 1;
1439 const MCSectionData &SD = Asm.getOrCreateSectionData(Section);
1444 GroupSymbolIndex = getSymbolIndexInSymbolTable(Asm,
1449 WriteSection(Asm, SectionIndexMap, GroupSymbolIndex,
1455 void ELFObjectWriter::ComputeSectionOrder(MCAssembler &Asm,
1457 for (MCAssembler::iterator it = Asm.begin(),
1458 ie = Asm.end(); it != ie; ++it) {
1465 for (MCAssembler::iterator it = Asm.begin(),
1466 ie = Asm.end(); it != ie; ++it) {
1475 for (MCAssembler::iterator it = Asm.begin(),
1476 ie = Asm.end(); it != ie; ++it) {
1485 void ELFObjectWriter::WriteObject(MCAssembler &Asm,
1491 unsigned NumUserSections = Asm.size();
1494 CreateRelocationSections(Asm, const_cast<MCAsmLayout&>(Layout), RelMap);
1496 const unsigned NumUserAndRelocSections = Asm.size();
1497 CreateIndexedSections(Asm, const_cast<MCAsmLayout&>(Layout), GroupMap,
1499 const unsigned AllSections = Asm.size();
1505 ComputeSymbolTable(Asm, SectionIndexMap, RevGroupMap, NumRegularSections);
1508 WriteRelocations(Asm, const_cast<MCAsmLayout&>(Layout), RelMap);
1510 CreateMetadataSections(const_cast<MCAssembler&>(Asm),
1521 ComputeSectionOrder(Asm, Sections);
1526 const MCSectionData &SD = Asm.getOrCreateSectionData(Section);
1547 const MCSectionData &SD = Asm.getOrCreateSectionData(Section);
1559 WriteHeader(Asm, SectionHeaderOffset, NumSections + 1);
1564 WriteDataSectionData(Asm, Layout, *Sections[i]);
1570 WriteSectionHeader(Asm, GroupMap, Layout, SectionIndexMap,
1575 WriteDataSectionData(Asm, Layout, *Sections[i]);
1579 ELFObjectWriter::IsSymbolRefDifferenceFullyResolvedImpl(const MCAssembler &Asm,
1587 Asm, DataA, FB,InSet, IsPCRel);