1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 03:23:01 +02:00

Expose a way to get the beginning of the dwarf string section.

llvm-svn: 143920
This commit is contained in:
Eric Christopher 2011-11-07 09:18:38 +00:00
parent e0fc702988
commit 64ea0f378b
2 changed files with 23 additions and 12 deletions

View File

@ -136,6 +136,18 @@ DwarfDebug::DwarfDebug(AsmPrinter *A, Module *M)
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() {
return Asm->GetTempSymbol("section_str");
}
@ -148,6 +160,13 @@ MCSymbol *DwarfDebug::getStringPoolEntry(StringRef Str) {
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.
///
@ -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
/// the start of each one.
void DwarfDebug::EmitSectionLabels() {

View File

@ -513,6 +513,10 @@ public:
/// getStringPoolEntry - returns an entry into the string pool with the given
/// string text.
MCSymbol *getStringPoolEntry(StringRef Str);
/// getDwarfStrSectionSym - returns the symbol that starts the dwarf string
/// section.
MCSymbol *getDwarfStrSectionSym();
};
} // End of namespace llvm