diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/CodeGen/AsmPrinter/DIE.cpp | 4 | ||||
-rw-r--r-- | lib/CodeGen/AsmPrinter/DIE.h | 5 | ||||
-rw-r--r-- | lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 4 | ||||
-rw-r--r-- | lib/CodeGen/AsmPrinter/DwarfDebug.h | 2 | ||||
-rw-r--r-- | lib/CodeGen/AsmPrinter/DwarfException.cpp | 2 | ||||
-rw-r--r-- | lib/CodeGen/AsmPrinter/DwarfPrinter.cpp | 33 | ||||
-rw-r--r-- | lib/CodeGen/AsmPrinter/DwarfPrinter.h | 4 |
7 files changed, 16 insertions, 38 deletions
diff --git a/lib/CodeGen/AsmPrinter/DIE.cpp b/lib/CodeGen/AsmPrinter/DIE.cpp index cc1027af31..d894ba72c0 100644 --- a/lib/CodeGen/AsmPrinter/DIE.cpp +++ b/lib/CodeGen/AsmPrinter/DIE.cpp @@ -285,7 +285,7 @@ void DIELabel::print(raw_ostream &O) { /// void DIESectionOffset::EmitValue(DwarfPrinter *D, unsigned Form) const { bool IsSmall = Form == dwarf::DW_FORM_data4; - D->EmitSectionOffset(Label, Section, IsSmall, IsEH, UseSet); + D->EmitSectionOffset(Label, Section, IsSmall, IsEH); D->getAsm()->O << '\n'; // FIXME: Necesssary? } @@ -299,7 +299,7 @@ unsigned DIESectionOffset::SizeOf(const TargetData *TD, unsigned Form) const { #ifndef NDEBUG void DIESectionOffset::print(raw_ostream &O) { O << "Off: " << Label->getName() << "-" << Section->getName() - << "-" << IsEH << "-" << UseSet; + << "-" << IsEH; } #endif diff --git a/lib/CodeGen/AsmPrinter/DIE.h b/lib/CodeGen/AsmPrinter/DIE.h index b6a7fa89cf..e08d748dc1 100644 --- a/lib/CodeGen/AsmPrinter/DIE.h +++ b/lib/CodeGen/AsmPrinter/DIE.h @@ -336,12 +336,11 @@ namespace llvm { const MCSymbol *Label; const MCSymbol *Section; bool IsEH : 1; - bool UseSet : 1; public: DIESectionOffset(const MCSymbol *Lab, const MCSymbol *Sec, - bool isEH = false, bool useSet = true) + bool isEH = false) : DIEValue(isSectionOffset), Label(Lab), Section(Sec), - IsEH(isEH), UseSet(useSet) {} + IsEH(isEH) {} /// EmitValue - Emit section offset. /// diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index 247a3c57aa..9b50d91183 100644 --- a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -376,8 +376,8 @@ void DwarfDebug::addLabel(DIE *Die, unsigned Attribute, unsigned Form, /// void DwarfDebug::addSectionOffset(DIE *Die, unsigned Attribute, unsigned Form, const MCSymbol *Label,const MCSymbol *Section, - bool isEH, bool useSet) { - DIEValue *Value = new DIESectionOffset(Label, Section, isEH, useSet); + bool isEH) { + DIEValue *Value = new DIESectionOffset(Label, Section, isEH); DIEValues.push_back(Value); Die->addValue(Attribute, Form, Value); } diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.h b/lib/CodeGen/AsmPrinter/DwarfDebug.h index bd07b25d61..2abad8aac2 100644 --- a/lib/CodeGen/AsmPrinter/DwarfDebug.h +++ b/lib/CodeGen/AsmPrinter/DwarfDebug.h @@ -249,7 +249,7 @@ class DwarfDebug : public DwarfPrinter { /// void addSectionOffset(DIE *Die, unsigned Attribute, unsigned Form, const MCSymbol *Label, const MCSymbol *Section, - bool isEH = false, bool useSet = true); + bool isEH = false); /// addDelta - Add a label delta attribute data and value. /// diff --git a/lib/CodeGen/AsmPrinter/DwarfException.cpp b/lib/CodeGen/AsmPrinter/DwarfException.cpp index b5c6bbe705..6da90bb28c 100644 --- a/lib/CodeGen/AsmPrinter/DwarfException.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfException.cpp @@ -232,7 +232,7 @@ void DwarfException::EmitFDE(const FunctionEHFrameInfo &EHFrameInfo) { EmitSectionOffset(getDWLabel("eh_frame_begin", EHFrameInfo.Number), getDWLabel("eh_frame_common", EHFrameInfo.PersonalityIndex), - true, true, false); + true, true); EOL("FDE CIE offset"); diff --git a/lib/CodeGen/AsmPrinter/DwarfPrinter.cpp b/lib/CodeGen/AsmPrinter/DwarfPrinter.cpp index 23b2158272..52a4055d15 100644 --- a/lib/CodeGen/AsmPrinter/DwarfPrinter.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfPrinter.cpp @@ -278,39 +278,18 @@ void DwarfPrinter::EmitDifference(const MCSymbol *TagHi, const MCSymbol *TagLo, void DwarfPrinter::EmitSectionOffset(const MCSymbol *Label, const MCSymbol *Section, - bool IsSmall, bool isEH, - bool useSet) { + bool IsSmall, bool isEH) { bool printAbsolute = false; if (isEH) printAbsolute = MAI->isAbsoluteEHSectionOffsets(); else printAbsolute = MAI->isAbsoluteDebugSectionOffsets(); - if (MAI->hasSetDirective() && useSet) { - // FIXME: switch to OutStreamer.EmitAssignment. - O << "\t.set\t"; - PrintLabelName("set", SetCounter, Flavor); - O << ","; - PrintLabelName(Label); - - if (!printAbsolute) { - O << "-"; - PrintLabelName(Section); - } - - O << "\n"; - PrintRelDirective(IsSmall); - PrintLabelName("set", SetCounter, Flavor); - ++SetCounter; - } else { - PrintRelDirective(IsSmall, true); - PrintLabelName(Label); - - if (!printAbsolute) { - O << "-"; - PrintLabelName(Section); - } - } + if (!printAbsolute) + return EmitDifference(Label, Section, IsSmall); + + PrintRelDirective(IsSmall, true); + PrintLabelName(Label); } /// EmitFrameMoves - Emit frame instructions to describe the layout of the diff --git a/lib/CodeGen/AsmPrinter/DwarfPrinter.h b/lib/CodeGen/AsmPrinter/DwarfPrinter.h index 016553a696..5228ca5303 100644 --- a/lib/CodeGen/AsmPrinter/DwarfPrinter.h +++ b/lib/CodeGen/AsmPrinter/DwarfPrinter.h @@ -139,9 +139,9 @@ public: /// EmitDifference - Emit the difference between two labels. void EmitDifference(const MCSymbol *LabelHi, const MCSymbol *LabelLo, bool IsSmall = false); + void EmitSectionOffset(const MCSymbol *Label, const MCSymbol *Section, - bool IsSmall = false, bool isEH = false, - bool useSet = true); + bool IsSmall = false, bool isEH = false); /// EmitFrameMoves - Emit frame instructions to describe the layout of the /// frame. |