Lines Matching defs:Asm

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