mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-15 06:29:05 +00:00
The "IsSmall" argument to EmitSectionOffset is always true,
constant fold it away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100356 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -2567,7 +2567,7 @@ void DwarfDebug::emitDebugInfo() {
|
|||||||
Asm->EmitInt16(dwarf::DWARF_VERSION);
|
Asm->EmitInt16(dwarf::DWARF_VERSION);
|
||||||
Asm->OutStreamer.AddComment("Offset Into Abbrev. Section");
|
Asm->OutStreamer.AddComment("Offset Into Abbrev. Section");
|
||||||
EmitSectionOffset(Asm->GetTempSymbol("abbrev_begin"),
|
EmitSectionOffset(Asm->GetTempSymbol("abbrev_begin"),
|
||||||
Asm->GetTempSymbol("section_abbrev"), true);
|
Asm->GetTempSymbol("section_abbrev"));
|
||||||
Asm->OutStreamer.AddComment("Address Size (in bytes)");
|
Asm->OutStreamer.AddComment("Address Size (in bytes)");
|
||||||
Asm->EmitInt8(TD->getPointerSize());
|
Asm->EmitInt8(TD->getPointerSize());
|
||||||
|
|
||||||
@@ -2879,7 +2879,7 @@ emitFunctionDebugFrame(const FunctionDebugFrameInfo &DebugFrameInfo) {
|
|||||||
|
|
||||||
Asm->OutStreamer.AddComment("FDE CIE offset");
|
Asm->OutStreamer.AddComment("FDE CIE offset");
|
||||||
EmitSectionOffset(Asm->GetTempSymbol("debug_frame_common"),
|
EmitSectionOffset(Asm->GetTempSymbol("debug_frame_common"),
|
||||||
Asm->GetTempSymbol("section_debug_frame"), true);
|
Asm->GetTempSymbol("section_debug_frame"));
|
||||||
|
|
||||||
Asm->OutStreamer.AddComment("FDE initial location");
|
Asm->OutStreamer.AddComment("FDE initial location");
|
||||||
MCSymbol *FuncBeginSym =
|
MCSymbol *FuncBeginSym =
|
||||||
@@ -2918,7 +2918,7 @@ void DwarfDebug::emitDebugPubNames() {
|
|||||||
|
|
||||||
Asm->OutStreamer.AddComment("Offset of Compilation Unit Info");
|
Asm->OutStreamer.AddComment("Offset of Compilation Unit Info");
|
||||||
EmitSectionOffset(Asm->GetTempSymbol("info_begin", ModuleCU->getID()),
|
EmitSectionOffset(Asm->GetTempSymbol("info_begin", ModuleCU->getID()),
|
||||||
Asm->GetTempSymbol("section_info"), true);
|
Asm->GetTempSymbol("section_info"));
|
||||||
|
|
||||||
Asm->OutStreamer.AddComment("Compilation Unit Length");
|
Asm->OutStreamer.AddComment("Compilation Unit Length");
|
||||||
Asm->EmitLabelDifference(Asm->GetTempSymbol("info_end", ModuleCU->getID()),
|
Asm->EmitLabelDifference(Asm->GetTempSymbol("info_end", ModuleCU->getID()),
|
||||||
@@ -2962,7 +2962,7 @@ void DwarfDebug::emitDebugPubTypes() {
|
|||||||
|
|
||||||
Asm->OutStreamer.AddComment("Offset of Compilation ModuleCU Info");
|
Asm->OutStreamer.AddComment("Offset of Compilation ModuleCU Info");
|
||||||
EmitSectionOffset(Asm->GetTempSymbol("info_begin", ModuleCU->getID()),
|
EmitSectionOffset(Asm->GetTempSymbol("info_begin", ModuleCU->getID()),
|
||||||
Asm->GetTempSymbol("section_info"), true);
|
Asm->GetTempSymbol("section_info"));
|
||||||
|
|
||||||
Asm->OutStreamer.AddComment("Compilation ModuleCU Length");
|
Asm->OutStreamer.AddComment("Compilation ModuleCU Length");
|
||||||
Asm->EmitLabelDifference(Asm->GetTempSymbol("info_end", ModuleCU->getID()),
|
Asm->EmitLabelDifference(Asm->GetTempSymbol("info_end", ModuleCU->getID()),
|
||||||
@@ -3108,11 +3108,11 @@ void DwarfDebug::emitDebugInlineInfo() {
|
|||||||
Asm->OutStreamer.EmitIntValue(0, 1, 0); // nul terminator.
|
Asm->OutStreamer.EmitIntValue(0, 1, 0); // nul terminator.
|
||||||
} else
|
} else
|
||||||
EmitSectionOffset(getStringPoolEntry(getRealLinkageName(LName)),
|
EmitSectionOffset(getStringPoolEntry(getRealLinkageName(LName)),
|
||||||
Asm->GetTempSymbol("section_str"), true);
|
Asm->GetTempSymbol("section_str"));
|
||||||
|
|
||||||
Asm->OutStreamer.AddComment("Function name");
|
Asm->OutStreamer.AddComment("Function name");
|
||||||
EmitSectionOffset(getStringPoolEntry(Name),
|
EmitSectionOffset(getStringPoolEntry(Name),
|
||||||
Asm->GetTempSymbol("section_str"), true);
|
Asm->GetTempSymbol("section_str"));
|
||||||
Asm->EmitULEB128(Labels.size(), "Inline count");
|
Asm->EmitULEB128(Labels.size(), "Inline count");
|
||||||
|
|
||||||
for (SmallVector<InlineInfoLabels, 4>::iterator LI = Labels.begin(),
|
for (SmallVector<InlineInfoLabels, 4>::iterator LI = Labels.begin(),
|
||||||
|
@@ -39,20 +39,16 @@ DwarfPrinter::DwarfPrinter(AsmPrinter *A)
|
|||||||
|
|
||||||
|
|
||||||
void DwarfPrinter::EmitSectionOffset(const MCSymbol *Label,
|
void DwarfPrinter::EmitSectionOffset(const MCSymbol *Label,
|
||||||
const MCSymbol *Section, bool IsSmall) {
|
const MCSymbol *Section) {
|
||||||
bool isAbsolute = MAI->isAbsoluteDebugSectionOffsets();
|
if (!MAI->isAbsoluteDebugSectionOffsets())
|
||||||
|
return Asm->EmitLabelDifference(Label, Section, 4);
|
||||||
if (!isAbsolute)
|
|
||||||
return Asm->EmitLabelDifference(Label, Section,
|
|
||||||
IsSmall ? 4 : TD->getPointerSize());
|
|
||||||
|
|
||||||
// On COFF targets, we have to emit the weird .secrel32 directive.
|
// On COFF targets, we have to emit the weird .secrel32 directive.
|
||||||
if (const char *SecOffDir = MAI->getDwarfSectionOffsetDirective()) {
|
if (const char *SecOffDir = MAI->getDwarfSectionOffsetDirective()) {
|
||||||
// FIXME: MCize.
|
// FIXME: MCize.
|
||||||
Asm->OutStreamer.EmitRawText(SecOffDir + Twine(Label->getName()));
|
Asm->OutStreamer.EmitRawText(SecOffDir + Twine(Label->getName()));
|
||||||
} else {
|
} else {
|
||||||
unsigned Size = IsSmall ? 4 : TD->getPointerSize();
|
Asm->OutStreamer.EmitSymbolValue(Label, 4, 0/*AddrSpace*/);
|
||||||
Asm->OutStreamer.EmitSymbolValue(Label, Size, 0/*AddrSpace*/);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -74,10 +74,9 @@ public:
|
|||||||
const MCAsmInfo *getMCAsmInfo() const { return MAI; }
|
const MCAsmInfo *getMCAsmInfo() const { return MAI; }
|
||||||
const TargetData *getTargetData() const { return TD; }
|
const TargetData *getTargetData() const { return TD; }
|
||||||
|
|
||||||
/// EmitSectionOffset - Emit Label-Section or use a special purpose directive
|
/// EmitSectionOffset - Emit a 4-byte "Label-Section" value or use a special
|
||||||
/// to emit a section offset if the target has one.
|
/// purpose directive to emit a section offset if the target has one.
|
||||||
void EmitSectionOffset(const MCSymbol *Label, const MCSymbol *Section,
|
void EmitSectionOffset(const MCSymbol *Label, const MCSymbol *Section);
|
||||||
bool IsSmall = false);
|
|
||||||
|
|
||||||
/// EmitFrameMoves - Emit frame instructions to describe the layout of the
|
/// EmitFrameMoves - Emit frame instructions to describe the layout of the
|
||||||
/// frame.
|
/// frame.
|
||||||
|
Reference in New Issue
Block a user