Remove a version of EmitDifference.

llvm-svn: 98002
This commit is contained in:
Chris Lattner 2010-03-08 23:02:59 +00:00
parent 116599fe52
commit 9dfcbeaca1
4 changed files with 26 additions and 51 deletions

View File

@ -2672,8 +2672,8 @@ void DwarfDebug::emitCommonDebugFrame() {
Asm->getObjFileLowering().getDwarfFrameSection());
Asm->OutStreamer.EmitLabel(getTempLabel("debug_frame_common"));
EmitDifference("debug_frame_common_end", 0,
"debug_frame_common_begin", 0, true);
EmitDifference(getTempLabel("debug_frame_common_end"),
getTempLabel("debug_frame_common_begin"), true);
EOL("Length of Common Information Entry");
Asm->OutStreamer.EmitLabel(getTempLabel("debug_frame_common_begin"));
@ -2708,8 +2708,8 @@ DwarfDebug::emitFunctionDebugFrame(const FunctionDebugFrameInfo&DebugFrameInfo){
Asm->OutStreamer.SwitchSection(
Asm->getObjFileLowering().getDwarfFrameSection());
EmitDifference("debug_frame_end", DebugFrameInfo.Number,
"debug_frame_begin", DebugFrameInfo.Number, true);
EmitDifference(getDWLabel("debug_frame_end", DebugFrameInfo.Number),
getDWLabel("debug_frame_begin", DebugFrameInfo.Number), true);
EOL("Length of Frame Information Entry");
Asm->OutStreamer.EmitLabel(getDWLabel("debug_frame_begin",
@ -2740,8 +2740,8 @@ void DwarfDebug::emitDebugPubNames() {
Asm->OutStreamer.SwitchSection(
Asm->getObjFileLowering().getDwarfPubNamesSection());
EmitDifference("pubnames_end", ModuleCU->getID(),
"pubnames_begin", ModuleCU->getID(), true);
EmitDifference(getDWLabel("pubnames_end", ModuleCU->getID()),
getDWLabel("pubnames_begin", ModuleCU->getID()), true);
EOL("Length of Public Names Info");
Asm->OutStreamer.EmitLabel(getDWLabel("pubnames_begin", ModuleCU->getID()));
@ -2753,7 +2753,8 @@ void DwarfDebug::emitDebugPubNames() {
true, false);
EOL("Offset of Compilation Unit Info");
EmitDifference("info_end", ModuleCU->getID(), "info_begin", ModuleCU->getID(),
EmitDifference(getDWLabel("info_end", ModuleCU->getID()),
getDWLabel("info_begin", ModuleCU->getID()),
true);
EOL("Compilation Unit Length");
@ -2778,8 +2779,8 @@ void DwarfDebug::emitDebugPubTypes() {
// Start the dwarf pubnames section.
Asm->OutStreamer.SwitchSection(
Asm->getObjFileLowering().getDwarfPubTypesSection());
EmitDifference("pubtypes_end", ModuleCU->getID(),
"pubtypes_begin", ModuleCU->getID(), true);
EmitDifference(getDWLabel("pubtypes_end", ModuleCU->getID()),
getDWLabel("pubtypes_begin", ModuleCU->getID()), true);
EOL("Length of Public Types Info");
Asm->OutStreamer.EmitLabel(getDWLabel("pubtypes_begin", ModuleCU->getID()));
@ -2791,7 +2792,8 @@ void DwarfDebug::emitDebugPubTypes() {
getTempLabel("section_info"), true, false);
EOL("Offset of Compilation ModuleCU Info");
EmitDifference("info_end", ModuleCU->getID(), "info_begin", ModuleCU->getID(),
EmitDifference(getDWLabel("info_end", ModuleCU->getID()),
getDWLabel("info_begin", ModuleCU->getID()),
true);
EOL("Compilation ModuleCU Length");
@ -2872,7 +2874,8 @@ void DwarfDebug::EmitDebugARanges() {
// Range 1
EmitReference("text_begin", 0); EOL("Address");
EmitDifference("text_end", 0, "text_begin", 0, true); EOL("Length");
EmitDifference(getTempLabel("text_end"), getTempLabel("text_begin"),
true); EOL("Length");
Asm->EmitInt32(0); EOL("EOM (1)");
Asm->EmitInt32(0); EOL("EOM (2)");
@ -2925,8 +2928,8 @@ void DwarfDebug::emitDebugInlineInfo() {
Asm->OutStreamer.SwitchSection(
Asm->getObjFileLowering().getDwarfDebugInlineSection());
EmitDifference("debug_inlined_end", 1,
"debug_inlined_begin", 1, true);
EmitDifference(getDWLabel("debug_inlined_end", 1),
getDWLabel("debug_inlined_begin", 1), true);
EOL("Length of Debug Inlined Information Entry");
Asm->OutStreamer.EmitLabel(getDWLabel("debug_inlined_begin", 1));

View File

@ -94,8 +94,8 @@ void DwarfException::EmitCIE(const Function *PersonalityFn, unsigned Index) {
Asm->OutStreamer.EmitLabel(getDWLabel("eh_frame_common", Index));
// Define the eh frame length.
EmitDifference("eh_frame_common_end", Index,
"eh_frame_common_begin", Index, true);
EmitDifference(getDWLabel("eh_frame_common_end", Index),
getDWLabel("eh_frame_common_begin", Index), true);
EOL("Length of Common Information Entry");
// EH frame header.
@ -222,8 +222,8 @@ void DwarfException::EmitFDE(const FunctionEHFrameInfo &EHFrameInfo) {
O << *EHFrameInfo.FunctionEHSym << ":\n";
// EH frame header.
EmitDifference("eh_frame_end", EHFrameInfo.Number,
"eh_frame_begin", EHFrameInfo.Number,
EmitDifference(getDWLabel("eh_frame_end", EHFrameInfo.Number),
getDWLabel("eh_frame_begin", EHFrameInfo.Number),
true);
EOL("Length of Frame Information Entry");
@ -238,8 +238,8 @@ void DwarfException::EmitFDE(const FunctionEHFrameInfo &EHFrameInfo) {
EmitReference(getDWLabel("eh_func_begin", EHFrameInfo.Number), FDEEncoding);
EOL("FDE initial location");
EmitDifference("eh_func_end", EHFrameInfo.Number,
"eh_func_begin", EHFrameInfo.Number,
EmitDifference(getDWLabel("eh_func_end", EHFrameInfo.Number),
getDWLabel("eh_func_begin", EHFrameInfo.Number),
SizeOfEncodedValue(FDEEncoding) == 4);
EOL("FDE address range");
@ -829,7 +829,8 @@ void DwarfException::EmitExceptionTable() {
getDWLabel(BeginTag, BeginNumber),
true);
else
EmitDifference("label", S.EndLabel, BeginTag, BeginNumber, true);
EmitDifference(getDWLabel("label", S.EndLabel),
getDWLabel(BeginTag, BeginNumber), true);
EOL("Region length");

View File

@ -276,32 +276,6 @@ void DwarfPrinter::EmitDifference(const MCSymbol *TagHi, const MCSymbol *TagLo,
}
}
/// EmitDifference - Emit the difference between two labels. If this assembler
/// supports .set, we emit a .set of a temporary and then use it in the .word.
void DwarfPrinter::EmitDifference(const char *TagHi, unsigned NumberHi,
const char *TagLo, unsigned NumberLo,
bool IsSmall) {
if (MAI->hasSetDirective()) {
// FIXME: switch to OutStreamer.EmitAssignment.
O << "\t.set\t";
PrintLabelName("set", SetCounter, Flavor);
O << ",";
PrintLabelName(getDWLabel(TagHi, NumberHi));
O << "-";
PrintLabelName(getDWLabel(TagLo, NumberLo));
O << "\n";
PrintRelDirective(IsSmall);
PrintLabelName("set", SetCounter, Flavor);
++SetCounter;
} else {
PrintRelDirective(IsSmall);
PrintLabelName(getDWLabel(TagHi, NumberHi));
O << "-";
PrintLabelName(getDWLabel(TagLo, NumberLo));
}
}
void DwarfPrinter::EmitSectionOffset(const MCSymbol *Label,
const MCSymbol *Section,
bool IsSmall, bool isEH,
@ -367,7 +341,8 @@ void DwarfPrinter::EmitFrameMoves(const char *BaseLabel, unsigned BaseLabelID,
// Advance row if new location.
if (BaseLabel && LabelID && (BaseLabelID != LabelID || !IsLocal)) {
EmitCFAByte(dwarf::DW_CFA_advance_loc4);
EmitDifference("label", LabelID, BaseLabel, BaseLabelID, true);
EmitDifference(getDWLabel("label", LabelID),
getDWLabel(BaseLabel, BaseLabelID), true);
Asm->O << '\n';
BaseLabelID = LabelID;

View File

@ -139,10 +139,6 @@ public:
/// EmitDifference - Emit the difference between two labels.
void EmitDifference(const MCSymbol *LabelHi, const MCSymbol *LabelLo,
bool IsSmall = false);
void EmitDifference(const char *TagHi, unsigned NumberHi,
const char *TagLo, unsigned NumberLo,
bool IsSmall = false);
void EmitSectionOffset(const MCSymbol *Label, const MCSymbol *Section,
bool IsSmall = false, bool isEH = false,
bool useSet = true);