OSDN Git Service

Always assume a function may have calls because the printer may add `bl' to get
authorMisha Brukman <brukman+llvm@gmail.com>
Wed, 30 Jun 2004 00:09:12 +0000 (00:09 +0000)
committerMisha Brukman <brukman+llvm@gmail.com>
Wed, 30 Jun 2004 00:09:12 +0000 (00:09 +0000)
the PC in a code sequence for global variables.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14506 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/PowerPCRegisterInfo.cpp

index f96aee3..5178970 100644 (file)
@@ -187,7 +187,10 @@ void PowerPCRegisterInfo::emitPrologue(MachineFunction &MF) const {
   // Get the number of bytes to allocate from the FrameInfo
   unsigned NumBytes = MFI->getStackSize();
 
-  if (MFI->hasCalls()) {
+  // FIXME: the assembly printer inserts "calls" aka branch-and-link to get the
+  // PC address. We may not know about those calls at this time, so be
+  // conservative.
+  if (MFI->hasCalls() || true) {
     // When we have no frame pointer, we reserve argument space for call sites
     // in the function immediately on entry to the current function.  This
     // eliminates the need for add/sub brackets around call sites.
@@ -235,7 +238,10 @@ void PowerPCRegisterInfo::emitEpilogue(MachineFunction &MF,
   MBB.insert(MBBI, MI);
 
   // If we have calls, restore the LR value before we branch to it
-  if (MFI->hasCalls()) {
+  // FIXME: the assembly printer inserts "calls" aka branch-and-link to get the
+  // PC address. We may not know about those calls at this time, so be
+  // conservative.
+  if (MFI->hasCalls() || true) {
     // Read old LR from stack into R0
     MI = BuildMI(PPC32::LWZ, 2, PPC32::R0).addSImm(8).addReg(PPC32::R1);
     MBB.insert(MBBI, MI);