22 Pool.insert(std::make_pair(Sym, AddressPoolEntry(Pool.size(), TLS)));
23 return IterBool.first->second.Number;
27 static const uint8_t AddrSize =
Asm.getDataLayout().getPointerSize();
30 Asm.emitDwarfUnitLength(
"debug_addr",
"Length of contribution");
31 Asm.OutStreamer->AddComment(
"DWARF version number");
32 Asm.emitInt16(
Asm.getDwarfVersion());
33 Asm.OutStreamer->AddComment(
"Address size");
34 Asm.emitInt8(AddrSize);
35 Asm.OutStreamer->AddComment(
"Segment selector size");
47 Asm.OutStreamer->SwitchSection(AddrSection);
51 if (
Asm.getDwarfVersion() >= 5)
52 EndLabel = emitHeader(
Asm, AddrSection);
56 Asm.OutStreamer->emitLabel(AddressTableBaseSym);
61 for (
const auto &
I : Pool)
62 Entries[
I.second.Number] =
64 ?
Asm.getObjFileLowering().getDebugThreadLocalSymbol(
I.first)
67 for (
const MCExpr *Entry : Entries)
68 Asm.OutStreamer->emitValue(Entry,
Asm.getDataLayout().getPointerSize());
71 Asm.OutStreamer->emitLabel(EndLabel);