Lines Matching full:asm

44 void AccelTableBase::finalize(AsmPrinter *Asm, StringRef Prefix) {  in finalize()  argument
66 E.second.Sym = Asm->createTempSymbol(Prefix); in finalize()
82 AsmPrinter *const Asm; ///< Destination. member in __anon2660ec280311::AccelTableWriter
97 AccelTableWriter(AsmPrinter *Asm, const AccelTableBase &Contents, in AccelTableWriter() argument
99 : Asm(Asm), Contents(Contents), SkipIdenticalHashes(SkipIdenticalHashes) { in AccelTableWriter()
122 void emit(AsmPrinter *Asm) const;
141 void emit(AsmPrinter *Asm) const;
156 AppleAccelTableWriter(AsmPrinter *Asm, const AccelTableBase &Contents, in AppleAccelTableWriter() argument
158 : AccelTableWriter(Asm, Contents, true), in AppleAccelTableWriter()
212 MCSymbol *AbbrevStart = Asm->createTempSymbol("names_abbrev_start");
213 MCSymbol *AbbrevEnd = Asm->createTempSymbol("names_abbrev_end");
214 MCSymbol *EntryPool = Asm->createTempSymbol("names_entries");
235 AsmPrinter *Asm, const AccelTableBase &Contents,
258 Asm->OutStreamer->AddComment("Hash in Bucket " + Twine(BucketIdx)); in emitHashes()
259 Asm->emitInt32(HashValue); in emitHashes()
275 Asm->OutStreamer->AddComment("Offset in Bucket " + Twine(i)); in emitOffsets()
276 Asm->emitLabelDifference(Hash->Sym, Base, Asm->getDwarfOffsetByteSize()); in emitOffsets()
281 void AppleAccelTableWriter::Header::emit(AsmPrinter *Asm) const { in emit()
282 Asm->OutStreamer->AddComment("Header Magic"); in emit()
283 Asm->emitInt32(Magic); in emit()
284 Asm->OutStreamer->AddComment("Header Version"); in emit()
285 Asm->emitInt16(Version); in emit()
286 Asm->OutStreamer->AddComment("Header Hash Function"); in emit()
287 Asm->emitInt16(HashFunction); in emit()
288 Asm->OutStreamer->AddComment("Header Bucket Count"); in emit()
289 Asm->emitInt32(BucketCount); in emit()
290 Asm->OutStreamer->AddComment("Header Hash Count"); in emit()
291 Asm->emitInt32(HashCount); in emit()
292 Asm->OutStreamer->AddComment("Header Data Length"); in emit()
293 Asm->emitInt32(HeaderDataLength); in emit()
296 void AppleAccelTableWriter::HeaderData::emit(AsmPrinter *Asm) const { in emit()
297 Asm->OutStreamer->AddComment("HeaderData Die Offset Base"); in emit()
298 Asm->emitInt32(DieOffsetBase); in emit()
299 Asm->OutStreamer->AddComment("HeaderData Atom Count"); in emit()
300 Asm->emitInt32(Atoms.size()); in emit()
303 Asm->OutStreamer->AddComment(dwarf::AtomTypeString(A.Type)); in emit()
304 Asm->emitInt16(A.Type); in emit()
305 Asm->OutStreamer->AddComment(dwarf::FormEncodingString(A.Form)); in emit()
306 Asm->emitInt16(A.Form); in emit()
314 Asm->OutStreamer->AddComment("Bucket " + Twine(i)); in emitBuckets()
316 Asm->emitInt32(index); in emitBuckets()
318 Asm->emitInt32(std::numeric_limits<uint32_t>::max()); in emitBuckets()
340 Asm->emitInt32(0); in emitData()
342 Asm->OutStreamer->emitLabel(Hash->Sym); in emitData()
343 Asm->OutStreamer->AddComment(Hash->Name.getString()); in emitData()
344 Asm->emitDwarfStringOffset(Hash->Name); in emitData()
345 Asm->OutStreamer->AddComment("Num DIEs"); in emitData()
346 Asm->emitInt32(Hash->Values.size()); in emitData()
348 V->emit(Asm); in emitData()
353 Asm->emitInt32(0); in emitData()
358 Header.emit(Asm); in emit()
359 HeaderData.emit(Asm); in emit()
375 AsmPrinter *Asm = Ctx.Asm; in emit() local
377 Asm->emitDwarfUnitLength("names", "Header: unit length"); in emit()
378 Asm->OutStreamer->AddComment("Header: version"); in emit()
379 Asm->emitInt16(Version); in emit()
380 Asm->OutStreamer->AddComment("Header: padding"); in emit()
381 Asm->emitInt16(Padding); in emit()
382 Asm->OutStreamer->AddComment("Header: compilation unit count"); in emit()
383 Asm->emitInt32(CompUnitCount); in emit()
384 Asm->OutStreamer->AddComment("Header: local type unit count"); in emit()
385 Asm->emitInt32(LocalTypeUnitCount); in emit()
386 Asm->OutStreamer->AddComment("Header: foreign type unit count"); in emit()
387 Asm->emitInt32(ForeignTypeUnitCount); in emit()
388 Asm->OutStreamer->AddComment("Header: bucket count"); in emit()
389 Asm->emitInt32(BucketCount); in emit()
390 Asm->OutStreamer->AddComment("Header: name count"); in emit()
391 Asm->emitInt32(NameCount); in emit()
392 Asm->OutStreamer->AddComment("Header: abbreviation table size"); in emit()
393 Asm->emitLabelDifference(Ctx.AbbrevEnd, Ctx.AbbrevStart, sizeof(uint32_t)); in emit()
394 Asm->OutStreamer->AddComment("Header: augmentation string size"); in emit()
396 Asm->emitInt32(AugmentationStringSize); in emit()
397 Asm->OutStreamer->AddComment("Header: augmentation string"); in emit()
398 Asm->OutStreamer->emitBytes({AugmentationString, AugmentationStringSize}); in emit()
465 Asm->OutStreamer->AddComment("Compilation unit " + Twine(CU.index())); in emitCUList()
467 Asm->emitDwarfSymbolReference(std::get<MCSymbol *>(CU.value())); in emitCUList()
469 Asm->emitDwarfLengthOrOffset(std::get<uint64_t>(CU.value())); in emitCUList()
475 Asm->OutStreamer->AddComment("Type unit " + Twine(TU.index())); in emitTUList()
477 Asm->emitDwarfSymbolReference(std::get<MCSymbol *>(TU.value())); in emitTUList()
479 Asm->emitInt64(std::get<uint64_t>(TU.value())); in emitTUList()
481 Asm->emitDwarfLengthOrOffset(std::get<uint64_t>(TU.value())); in emitTUList()
488 Asm->OutStreamer->AddComment("Bucket " + Twine(Bucket.index())); in emitBuckets()
489 Asm->emitInt32(Bucket.value().empty() ? 0 : Index); in emitBuckets()
498 Asm->OutStreamer->AddComment("String in Bucket " + Twine(Bucket.index()) + in emitStringOffsets()
500 Asm->emitDwarfStringOffset(String); in emitStringOffsets()
506 Asm->OutStreamer->emitLabel(AbbrevStart); in emitAbbrevs()
508 Asm->OutStreamer->AddComment("Abbrev code"); in emitAbbrevs()
509 Asm->emitULEB128(Abbrev->getNumber()); in emitAbbrevs()
510 Asm->OutStreamer->AddComment(dwarf::TagString(Abbrev->getDieTag())); in emitAbbrevs()
511 Asm->emitULEB128(Abbrev->getDieTag()); in emitAbbrevs()
514 Asm->emitULEB128(AttrEnc.Index, dwarf::IndexString(AttrEnc.Index).data()); in emitAbbrevs()
515 Asm->emitULEB128(AttrEnc.Form, in emitAbbrevs()
518 Asm->emitULEB128(0, "End of abbrev"); in emitAbbrevs()
519 Asm->emitULEB128(0, "End of abbrev"); in emitAbbrevs()
521 Asm->emitULEB128(0, "End of abbrev list"); in emitAbbrevs()
522 Asm->OutStreamer->emitLabel(AbbrevEnd); in emitAbbrevs()
546 Asm->OutStreamer->emitLabel(EntrySymbol); in emitEntry()
548 Asm->emitULEB128(Entry.getAbbrevNumber(), "Abbreviation code"); in emitEntry()
552 Asm->OutStreamer->AddComment(dwarf::IndexString(AttrEnc.Index)); in emitEntry()
557 ID.emitValue(Asm, AttrEnc.Form); in emitEntry()
562 Asm->emitInt32(Entry.getDieOffset()); in emitEntry()
569 Asm->emitLabelDifference(ParentSymbolIt->getSecond(), EntryPool, 4); in emitEntry()
582 DIEOffsetToAccelEntryLabel.insert({Offset, Asm->createTempSymbol("")}); in emitData()
584 Asm->OutStreamer->emitLabel(EntryPool); in emitData()
589 Asm->OutStreamer->emitLabel(Hash->Sym); in emitData()
592 Asm->OutStreamer->AddComment("End of list: " + Hash->Name.getString()); in emitData()
593 Asm->emitInt8(0); in emitData()
599 AsmPrinter *Asm, const AccelTableBase &Contents, in Dwarf5AccelTableWriter() argument
606 : AccelTableWriter(Asm, Contents, false), in Dwarf5AccelTableWriter()
632 Asm->OutStreamer->emitValueToAlignment(Align(4), 0); in emit()
633 Asm->OutStreamer->emitLabel(ContributionEnd); in emit()
636 void llvm::emitAppleAccelTableImpl(AsmPrinter *Asm, AccelTableBase &Contents, in emitAppleAccelTableImpl() argument
639 Contents.finalize(Asm, Prefix); in emitAppleAccelTableImpl()
640 AppleAccelTableWriter(Asm, Contents, Atoms, SecBegin).emit(); in emitAppleAccelTableImpl()
644 AsmPrinter *Asm, DWARF5AccelTable &Contents, const DwarfDebug &DD, in emitDWARF5AccelTable() argument
679 Asm->OutStreamer->switchSection( in emitDWARF5AccelTable()
680 Asm->getObjFileLowering().getDwarfDebugNamesSection()); in emitDWARF5AccelTable()
682 Contents.finalize(Asm, "names"); in emitDWARF5AccelTable()
688 Asm, Contents, CompUnits, TypeUnits, in emitDWARF5AccelTable()
712 AsmPrinter *Asm, DWARF5AccelTable &Contents, in emitDWARF5AccelTable() argument
718 Contents.finalize(Asm, "names"); in emitDWARF5AccelTable()
719 Dwarf5AccelTableWriter(Asm, Contents, CUs, TypeUnits, getIndexForEntry, false) in emitDWARF5AccelTable()
723 void AppleAccelTableOffsetData::emit(AsmPrinter *Asm) const { in emit()
726 Asm->emitInt32(Die.getDebugSectionOffset()); in emit()
729 void AppleAccelTableTypeData::emit(AsmPrinter *Asm) const { in emit()
732 Asm->emitInt32(Die.getDebugSectionOffset()); in emit()
733 Asm->emitInt16(Die.getTag()); in emit()
734 Asm->emitInt8(0); in emit()
737 void AppleAccelTableStaticOffsetData::emit(AsmPrinter *Asm) const { in emit()
738 Asm->emitInt32(Offset); in emit()
741 void AppleAccelTableStaticTypeData::emit(AsmPrinter *Asm) const { in emit()
742 Asm->emitInt32(Offset); in emit()
743 Asm->emitInt16(Tag); in emit()
744 Asm->emitInt8(ObjCClassIsImplementation ? dwarf::DW_FLAG_type_implementation in emit()
746 Asm->emitInt32(QualifiedNameHash); in emit()