From: Misha Brukman Date: Mon, 28 Jun 2004 17:57:40 +0000 (+0000) Subject: Do not set the `link' bit when branching to the first BB of a function, as it X-Git-Tag: android-x86-6.0-r1~1003^2~54507 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=9c661c8e26e93cbc1080d881e422cbcb4ca02e7b;p=android-x86%2Fexternal-llvm.git Do not set the `link' bit when branching to the first BB of a function, as it will cause an infinite loop. The link bit is only used for calling functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14466 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/PowerPC/PPC32AsmPrinter.cpp b/lib/Target/PowerPC/PPC32AsmPrinter.cpp index c5825a786f0..636b1c413db 100644 --- a/lib/Target/PowerPC/PPC32AsmPrinter.cpp +++ b/lib/Target/PowerPC/PPC32AsmPrinter.cpp @@ -423,7 +423,7 @@ void Printer::printOp(const MachineOperand &MO, } case MachineOperand::MO_PCRelativeDisp: std::cerr << "Shouldn't use addPCDisp() when building PPC MachineInstrs"; - abort (); + abort(); return; case MachineOperand::MO_GlobalAddress: if (!elideOffsetKeyword) { @@ -507,7 +507,7 @@ void Printer::printMachineInstruction(const MachineInstr *MI) { if (Opcode == PPC32::MovePCtoLR) { O << "mflr r0\n"; - O << "\tbcl 20,31,L" << CurrentFnName << "$pb\n"; + O << "\tbc 20,31,L" << CurrentFnName << "$pb\n"; O << "L" << CurrentFnName << "$pb:\n"; return; } diff --git a/lib/Target/PowerPC/PPCAsmPrinter.cpp b/lib/Target/PowerPC/PPCAsmPrinter.cpp index c5825a786f0..636b1c413db 100644 --- a/lib/Target/PowerPC/PPCAsmPrinter.cpp +++ b/lib/Target/PowerPC/PPCAsmPrinter.cpp @@ -423,7 +423,7 @@ void Printer::printOp(const MachineOperand &MO, } case MachineOperand::MO_PCRelativeDisp: std::cerr << "Shouldn't use addPCDisp() when building PPC MachineInstrs"; - abort (); + abort(); return; case MachineOperand::MO_GlobalAddress: if (!elideOffsetKeyword) { @@ -507,7 +507,7 @@ void Printer::printMachineInstruction(const MachineInstr *MI) { if (Opcode == PPC32::MovePCtoLR) { O << "mflr r0\n"; - O << "\tbcl 20,31,L" << CurrentFnName << "$pb\n"; + O << "\tbc 20,31,L" << CurrentFnName << "$pb\n"; O << "L" << CurrentFnName << "$pb:\n"; return; } diff --git a/lib/Target/PowerPC/PowerPCAsmPrinter.cpp b/lib/Target/PowerPC/PowerPCAsmPrinter.cpp index c5825a786f0..636b1c413db 100644 --- a/lib/Target/PowerPC/PowerPCAsmPrinter.cpp +++ b/lib/Target/PowerPC/PowerPCAsmPrinter.cpp @@ -423,7 +423,7 @@ void Printer::printOp(const MachineOperand &MO, } case MachineOperand::MO_PCRelativeDisp: std::cerr << "Shouldn't use addPCDisp() when building PPC MachineInstrs"; - abort (); + abort(); return; case MachineOperand::MO_GlobalAddress: if (!elideOffsetKeyword) { @@ -507,7 +507,7 @@ void Printer::printMachineInstruction(const MachineInstr *MI) { if (Opcode == PPC32::MovePCtoLR) { O << "mflr r0\n"; - O << "\tbcl 20,31,L" << CurrentFnName << "$pb\n"; + O << "\tbc 20,31,L" << CurrentFnName << "$pb\n"; O << "L" << CurrentFnName << "$pb:\n"; return; }