From ed664f91a46ae1a77403d72cf3b0156973d5e46a Mon Sep 17 00:00:00 2001 From: Misha Brukman Date: Mon, 26 Jul 2004 16:28:33 +0000 Subject: [PATCH] Increment the label number in runOnFunction() rather than while printing out some instruction. Patch by Nate Begeman. llvm-svn: 15236 --- llvm/lib/Target/PowerPC/PPC32AsmPrinter.cpp | 21 +++++++++---------- llvm/lib/Target/PowerPC/PowerPCAsmPrinter.cpp | 21 +++++++++---------- 2 files changed, 20 insertions(+), 22 deletions(-) diff --git a/llvm/lib/Target/PowerPC/PPC32AsmPrinter.cpp b/llvm/lib/Target/PowerPC/PPC32AsmPrinter.cpp index b0dcf272dd0f..5412e0faac01 100644 --- a/llvm/lib/Target/PowerPC/PPC32AsmPrinter.cpp +++ b/llvm/lib/Target/PowerPC/PPC32AsmPrinter.cpp @@ -56,8 +56,8 @@ namespace { std::set FnStubs, GVStubs, LinkOnceStubs; std::set Strings; - Printer(std::ostream &o, TargetMachine &tm) : O(o), - TM(reinterpret_cast(tm)), labelNumber(0) { } + Printer(std::ostream &o, TargetMachine &tm) : O(o), + TM(reinterpret_cast(tm)), LabelNumber(0) {} /// Cache of mangled name for current function. This is /// recalculated at the beginning of each call to @@ -65,11 +65,10 @@ namespace { /// std::string CurrentFnName; - /// Unique incrementer for label values for referencing - /// Global values. + /// Unique incrementer for label values for referencing Global values. /// - unsigned int labelNumber; - + unsigned LabelNumber; + virtual const char *getPassName() const { return "PowerPC Assembly Printer"; } @@ -396,6 +395,7 @@ bool Printer::runOnMachineFunction(MachineFunction &MF) { printMachineInstruction(II); } } + ++LabelNumber; // We didn't modify anything. return false; @@ -526,8 +526,8 @@ void Printer::printMachineInstruction(const MachineInstr *MI) { return; } else if (Opcode == PPC32::MovePCtoLR) { // FIXME: should probably be converted to cout.width and cout.fill - O << "bl \"L0000" << labelNumber << "$pb\"\n"; - O << "\"L0000" << labelNumber << "$pb\":\n"; + O << "bl \"L0000" << LabelNumber << "$pb\"\n"; + O << "\"L0000" << LabelNumber << "$pb\":\n"; O << "\tmflr "; printOp(MI->getOperand(0)); O << "\n"; @@ -539,8 +539,7 @@ void Printer::printMachineInstruction(const MachineInstr *MI) { printOp(MI->getOperand(0)); O << ", lo16("; printOp(MI->getOperand(2)); - O << "-\"L0000" << labelNumber << "$pb\")"; - labelNumber++; + O << "-\"L0000" << LabelNumber << "$pb\")"; O << "("; if (MI->getOperand(1).getReg() == PPC32::R0) O << "0"; @@ -556,7 +555,7 @@ void Printer::printMachineInstruction(const MachineInstr *MI) { printOp(MI->getOperand(1)); O << ", ha16(" ; printOp(MI->getOperand(2)); - O << "-\"L0000" << labelNumber << "$pb\")\n"; + O << "-\"L0000" << LabelNumber << "$pb\")\n"; } else if (ArgCount == 3 && ArgType[1] == PPC32II::Disimm16) { printOp(MI->getOperand(0)); O << ", "; diff --git a/llvm/lib/Target/PowerPC/PowerPCAsmPrinter.cpp b/llvm/lib/Target/PowerPC/PowerPCAsmPrinter.cpp index b0dcf272dd0f..5412e0faac01 100644 --- a/llvm/lib/Target/PowerPC/PowerPCAsmPrinter.cpp +++ b/llvm/lib/Target/PowerPC/PowerPCAsmPrinter.cpp @@ -56,8 +56,8 @@ namespace { std::set FnStubs, GVStubs, LinkOnceStubs; std::set Strings; - Printer(std::ostream &o, TargetMachine &tm) : O(o), - TM(reinterpret_cast(tm)), labelNumber(0) { } + Printer(std::ostream &o, TargetMachine &tm) : O(o), + TM(reinterpret_cast(tm)), LabelNumber(0) {} /// Cache of mangled name for current function. This is /// recalculated at the beginning of each call to @@ -65,11 +65,10 @@ namespace { /// std::string CurrentFnName; - /// Unique incrementer for label values for referencing - /// Global values. + /// Unique incrementer for label values for referencing Global values. /// - unsigned int labelNumber; - + unsigned LabelNumber; + virtual const char *getPassName() const { return "PowerPC Assembly Printer"; } @@ -396,6 +395,7 @@ bool Printer::runOnMachineFunction(MachineFunction &MF) { printMachineInstruction(II); } } + ++LabelNumber; // We didn't modify anything. return false; @@ -526,8 +526,8 @@ void Printer::printMachineInstruction(const MachineInstr *MI) { return; } else if (Opcode == PPC32::MovePCtoLR) { // FIXME: should probably be converted to cout.width and cout.fill - O << "bl \"L0000" << labelNumber << "$pb\"\n"; - O << "\"L0000" << labelNumber << "$pb\":\n"; + O << "bl \"L0000" << LabelNumber << "$pb\"\n"; + O << "\"L0000" << LabelNumber << "$pb\":\n"; O << "\tmflr "; printOp(MI->getOperand(0)); O << "\n"; @@ -539,8 +539,7 @@ void Printer::printMachineInstruction(const MachineInstr *MI) { printOp(MI->getOperand(0)); O << ", lo16("; printOp(MI->getOperand(2)); - O << "-\"L0000" << labelNumber << "$pb\")"; - labelNumber++; + O << "-\"L0000" << LabelNumber << "$pb\")"; O << "("; if (MI->getOperand(1).getReg() == PPC32::R0) O << "0"; @@ -556,7 +555,7 @@ void Printer::printMachineInstruction(const MachineInstr *MI) { printOp(MI->getOperand(1)); O << ", ha16(" ; printOp(MI->getOperand(2)); - O << "-\"L0000" << labelNumber << "$pb\")\n"; + O << "-\"L0000" << LabelNumber << "$pb\")\n"; } else if (ArgCount == 3 && ArgType[1] == PPC32II::Disimm16) { printOp(MI->getOperand(0)); O << ", ";