Lines Matching refs:Asm

130   AsmPrinter *Asm = DG.getAsmPrinter();  in addStrOffsetsBaseAttribute()  local
133 Asm->getObjFileLowering().getDwarfStrOffSection()->getBeginSymbol(); in addStrOffsetsBaseAttribute()
138 if (!Asm->MAI->doesDwarfUseRelocationsAcrossSections()) in addStrOffsetsBaseAttribute()
228 void dwarfgen::LineTable::generate(MCContext &MC, AsmPrinter &Asm) const { in generate()
233 writeData(CustomPrologue, Asm); in generate()
235 EndSymbol = writeDefaultPrologue(Asm); in generate()
237 writePrologue(Asm); in generate()
240 writeData(Contents, Asm); in generate()
242 Asm.OutStreamer->emitLabel(EndSymbol); in generate()
246 AsmPrinter &Asm) const { in writeData()
253 Asm.OutStreamer->emitIntValue(Entry.Value, Entry.Length); in writeData()
256 Asm.emitULEB128(Entry.Value); in writeData()
259 Asm.emitSLEB128(Entry.Value); in writeData()
284 MCSymbol *dwarfgen::LineTable::writeDefaultPrologue(AsmPrinter &Asm) const { in writeDefaultPrologue()
285 MCSymbol *UnitStart = Asm.createTempSymbol("line_unit_start"); in writeDefaultPrologue()
286 MCSymbol *UnitEnd = Asm.createTempSymbol("line_unit_end"); in writeDefaultPrologue()
288 Asm.emitInt32((int)dwarf::DW_LENGTH_DWARF64); in writeDefaultPrologue()
289 Asm.emitLabelDifference(UnitEnd, UnitStart, 8); in writeDefaultPrologue()
291 Asm.emitLabelDifference(UnitEnd, UnitStart, 4); in writeDefaultPrologue()
293 Asm.OutStreamer->emitLabel(UnitStart); in writeDefaultPrologue()
294 Asm.emitInt16(Version); in writeDefaultPrologue()
296 Asm.emitInt8(AddrSize); in writeDefaultPrologue()
297 Asm.emitInt8(SegSize); in writeDefaultPrologue()
300 MCSymbol *PrologueStart = Asm.createTempSymbol("line_prologue_start"); in writeDefaultPrologue()
301 MCSymbol *PrologueEnd = Asm.createTempSymbol("line_prologue_end"); in writeDefaultPrologue()
302 Asm.emitLabelDifference(PrologueEnd, PrologueStart, in writeDefaultPrologue()
304 Asm.OutStreamer->emitLabel(PrologueStart); in writeDefaultPrologue()
307 writeProloguePayload(DefaultPrologue, Asm); in writeDefaultPrologue()
308 Asm.OutStreamer->emitLabel(PrologueEnd); in writeDefaultPrologue()
312 void dwarfgen::LineTable::writePrologue(AsmPrinter &Asm) const { in writePrologue()
314 Asm.emitInt32((int)dwarf::DW_LENGTH_DWARF64); in writePrologue()
315 Asm.emitInt64(Prologue->TotalLength); in writePrologue()
317 Asm.emitInt32(Prologue->TotalLength); in writePrologue()
319 Asm.emitInt16(Prologue->getVersion()); in writePrologue()
321 Asm.emitInt8(Prologue->getAddressSize()); in writePrologue()
322 Asm.emitInt8(Prologue->SegSelectorSize); in writePrologue()
325 Asm.emitInt64(Prologue->PrologueLength); in writePrologue()
327 Asm.emitInt32(Prologue->PrologueLength); in writePrologue()
329 writeProloguePayload(*Prologue, Asm); in writePrologue()
332 static void writeCString(StringRef Str, AsmPrinter &Asm) { in writeCString() argument
333 Asm.OutStreamer->emitBytes(Str); in writeCString()
334 Asm.emitInt8(0); in writeCString()
338 AsmPrinter &Asm) { in writeV2IncludeAndFileTable() argument
340 writeCString(*toString(Include), Asm); in writeV2IncludeAndFileTable()
342 Asm.emitInt8(0); in writeV2IncludeAndFileTable()
345 writeCString(*toString(File.Name), Asm); in writeV2IncludeAndFileTable()
346 Asm.emitULEB128(File.DirIdx); in writeV2IncludeAndFileTable()
347 Asm.emitULEB128(File.ModTime); in writeV2IncludeAndFileTable()
348 Asm.emitULEB128(File.Length); in writeV2IncludeAndFileTable()
350 Asm.emitInt8(0); in writeV2IncludeAndFileTable()
354 AsmPrinter &Asm) { in writeV5IncludeAndFileTable() argument
355 Asm.emitInt8(1); // directory_entry_format_count. in writeV5IncludeAndFileTable()
358 Asm.emitULEB128(DW_LNCT_path); in writeV5IncludeAndFileTable()
359 Asm.emitULEB128(DW_FORM_string); in writeV5IncludeAndFileTable()
360 Asm.emitULEB128(Prologue.IncludeDirectories.size()); in writeV5IncludeAndFileTable()
362 writeCString(*toString(Include), Asm); in writeV5IncludeAndFileTable()
364 Asm.emitInt8(2); // file_name_entry_format_count. in writeV5IncludeAndFileTable()
365 Asm.emitULEB128(DW_LNCT_path); in writeV5IncludeAndFileTable()
366 Asm.emitULEB128(DW_FORM_string); in writeV5IncludeAndFileTable()
367 Asm.emitULEB128(DW_LNCT_directory_index); in writeV5IncludeAndFileTable()
368 Asm.emitULEB128(DW_FORM_data1); in writeV5IncludeAndFileTable()
369 Asm.emitULEB128(Prologue.FileNames.size()); in writeV5IncludeAndFileTable()
371 writeCString(*toString(File.Name), Asm); in writeV5IncludeAndFileTable()
372 Asm.emitInt8(File.DirIdx); in writeV5IncludeAndFileTable()
377 const DWARFDebugLine::Prologue &Prologue, AsmPrinter &Asm) const { in writeProloguePayload()
378 Asm.emitInt8(Prologue.MinInstLength); in writeProloguePayload()
380 Asm.emitInt8(Prologue.MaxOpsPerInst); in writeProloguePayload()
381 Asm.emitInt8(Prologue.DefaultIsStmt); in writeProloguePayload()
382 Asm.emitInt8(Prologue.LineBase); in writeProloguePayload()
383 Asm.emitInt8(Prologue.LineRange); in writeProloguePayload()
384 Asm.emitInt8(Prologue.OpcodeBase); in writeProloguePayload()
386 Asm.emitInt8(Length); in writeProloguePayload()
390 writeV2IncludeAndFileTable(Prologue, Asm); in writeProloguePayload()
392 writeV5IncludeAndFileTable(Prologue, Asm); in writeProloguePayload()
486 Asm.reset(TheTarget->createAsmPrinter(*TM, std::unique_ptr<MCStreamer>(MS))); in init()
487 if (!Asm) in init()
493 Asm->setDwarfVersion(Version); in init()
495 StringPool = std::make_unique<DwarfStringPool>(Allocator, *Asm, StringRef()); in init()
496 StringOffsetsStartSym = Asm->createTempSymbol("str_offsets_base"); in init()
517 Abbreviations.Emit(Asm.get(), TLOF->getDwarfAbbrevSection()); in generate()
519 StringPool->emitStringOffsetsTableHeader(*Asm, TLOF->getDwarfStrOffSection(), in generate()
521 StringPool->emit(*Asm, TLOF->getDwarfStrSection(), in generate()
530 Asm->emitInt32(Length); in generate()
531 Asm->emitInt16(Version); in generate()
533 Asm->emitInt32(0); in generate()
534 Asm->emitInt8(CU->getAddressSize()); in generate()
536 Asm->emitInt8(dwarf::DW_UT_compile); in generate()
537 Asm->emitInt8(CU->getAddressSize()); in generate()
538 Asm->emitInt32(0); in generate()
540 Asm->emitDwarfDIE(*CU->getUnitDIE().Die); in generate()
545 LT->generate(*MC, *Asm); in generate()
567 std::make_unique<CompileUnit>(*this, Version, Asm->getPointerSize())); in addCompileUnit()
573 std::make_unique<LineTable>(Version, Format, Asm->getPointerSize())); in addLineTable()