mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-30 15:22:41 +00:00
Expose a way to get the beginning of the dwarf string section.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143920 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
6370118b16
commit
d8a8752d5b
@ -136,6 +136,18 @@ DwarfDebug::DwarfDebug(AsmPrinter *A, Module *M)
|
|||||||
DwarfDebug::~DwarfDebug() {
|
DwarfDebug::~DwarfDebug() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// EmitSectionSym - Switch to the specified MCSection and emit an assembler
|
||||||
|
/// temporary label to it if SymbolStem is specified.
|
||||||
|
static MCSymbol *EmitSectionSym(AsmPrinter *Asm, const MCSection *Section,
|
||||||
|
const char *SymbolStem = 0) {
|
||||||
|
Asm->OutStreamer.SwitchSection(Section);
|
||||||
|
if (!SymbolStem) return 0;
|
||||||
|
|
||||||
|
MCSymbol *TmpSym = Asm->GetTempSymbol(SymbolStem);
|
||||||
|
Asm->OutStreamer.EmitLabel(TmpSym);
|
||||||
|
return TmpSym;
|
||||||
|
}
|
||||||
|
|
||||||
MCSymbol *DwarfDebug::getStringPool() {
|
MCSymbol *DwarfDebug::getStringPool() {
|
||||||
return Asm->GetTempSymbol("section_str");
|
return Asm->GetTempSymbol("section_str");
|
||||||
}
|
}
|
||||||
@ -148,6 +160,13 @@ MCSymbol *DwarfDebug::getStringPoolEntry(StringRef Str) {
|
|||||||
return Entry.first = Asm->GetTempSymbol("string", Entry.second);
|
return Entry.first = Asm->GetTempSymbol("string", Entry.second);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MCSymbol *DwarfDebug::getDwarfStrSectionSym(void) {
|
||||||
|
if (DwarfStrSectionSym) return DwarfStrSectionSym;
|
||||||
|
DwarfStrSectionSym =
|
||||||
|
EmitSectionSym(Asm, Asm->getObjFileLowering().getDwarfStrSection(),
|
||||||
|
"section_str");
|
||||||
|
return DwarfStrSectionSym;
|
||||||
|
}
|
||||||
|
|
||||||
/// assignAbbrevNumber - Define a unique number for the abbreviation.
|
/// assignAbbrevNumber - Define a unique number for the abbreviation.
|
||||||
///
|
///
|
||||||
@ -1465,18 +1484,6 @@ void DwarfDebug::computeSizeAndOffsets() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// EmitSectionSym - Switch to the specified MCSection and emit an assembler
|
|
||||||
/// temporary label to it if SymbolStem is specified.
|
|
||||||
static MCSymbol *EmitSectionSym(AsmPrinter *Asm, const MCSection *Section,
|
|
||||||
const char *SymbolStem = 0) {
|
|
||||||
Asm->OutStreamer.SwitchSection(Section);
|
|
||||||
if (!SymbolStem) return 0;
|
|
||||||
|
|
||||||
MCSymbol *TmpSym = Asm->GetTempSymbol(SymbolStem);
|
|
||||||
Asm->OutStreamer.EmitLabel(TmpSym);
|
|
||||||
return TmpSym;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// EmitSectionLabels - Emit initial Dwarf sections with a label at
|
/// EmitSectionLabels - Emit initial Dwarf sections with a label at
|
||||||
/// the start of each one.
|
/// the start of each one.
|
||||||
void DwarfDebug::EmitSectionLabels() {
|
void DwarfDebug::EmitSectionLabels() {
|
||||||
|
@ -513,6 +513,10 @@ public:
|
|||||||
/// getStringPoolEntry - returns an entry into the string pool with the given
|
/// getStringPoolEntry - returns an entry into the string pool with the given
|
||||||
/// string text.
|
/// string text.
|
||||||
MCSymbol *getStringPoolEntry(StringRef Str);
|
MCSymbol *getStringPoolEntry(StringRef Str);
|
||||||
|
|
||||||
|
/// getDwarfStrSectionSym - returns the symbol that starts the dwarf string
|
||||||
|
/// section.
|
||||||
|
MCSymbol *getDwarfStrSectionSym();
|
||||||
};
|
};
|
||||||
} // End of namespace llvm
|
} // End of namespace llvm
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user