Deleted Added
full compact
PrologEpilogInserter.cpp (198396) PrologEpilogInserter.cpp (198892)
1//===-- PrologEpilogInserter.cpp - Insert Prolog/Epilog code in function --===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//

--- 528 unchanged lines hidden (view full) ---

537 FFI->setObjectOffset(i, Offset);
538 Offset += FFI->getObjectSize(i);
539 }
540 }
541
542 // Make sure the special register scavenging spill slot is closest to the
543 // frame pointer if a frame pointer is required.
544 const TargetRegisterInfo *RegInfo = Fn.getTarget().getRegisterInfo();
1//===-- PrologEpilogInserter.cpp - Insert Prolog/Epilog code in function --===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//

--- 528 unchanged lines hidden (view full) ---

537 FFI->setObjectOffset(i, Offset);
538 Offset += FFI->getObjectSize(i);
539 }
540 }
541
542 // Make sure the special register scavenging spill slot is closest to the
543 // frame pointer if a frame pointer is required.
544 const TargetRegisterInfo *RegInfo = Fn.getTarget().getRegisterInfo();
545 if (RS && RegInfo->hasFP(Fn)) {
545 if (RS && RegInfo->hasFP(Fn) && !RegInfo->needsStackRealignment(Fn)) {
546 int SFI = RS->getScavengingFrameIndex();
547 if (SFI >= 0)
548 AdjustStackOffset(FFI, SFI, StackGrowsDown, Offset, MaxAlign);
549 }
550
551 // Make sure that the stack protector comes before the local variables on the
552 // stack.
553 if (FFI->getStackProtectorIndex() >= 0)

--- 12 unchanged lines hidden (view full) ---

566 if (FFI->getStackProtectorIndex() == (int)i)
567 continue;
568
569 AdjustStackOffset(FFI, i, StackGrowsDown, Offset, MaxAlign);
570 }
571
572 // Make sure the special register scavenging spill slot is closest to the
573 // stack pointer.
546 int SFI = RS->getScavengingFrameIndex();
547 if (SFI >= 0)
548 AdjustStackOffset(FFI, SFI, StackGrowsDown, Offset, MaxAlign);
549 }
550
551 // Make sure that the stack protector comes before the local variables on the
552 // stack.
553 if (FFI->getStackProtectorIndex() >= 0)

--- 12 unchanged lines hidden (view full) ---

566 if (FFI->getStackProtectorIndex() == (int)i)
567 continue;
568
569 AdjustStackOffset(FFI, i, StackGrowsDown, Offset, MaxAlign);
570 }
571
572 // Make sure the special register scavenging spill slot is closest to the
573 // stack pointer.
574 if (RS && !RegInfo->hasFP(Fn)) {
574 if (RS && (!RegInfo->hasFP(Fn) || RegInfo->needsStackRealignment(Fn))) {
575 int SFI = RS->getScavengingFrameIndex();
576 if (SFI >= 0)
577 AdjustStackOffset(FFI, SFI, StackGrowsDown, Offset, MaxAlign);
578 }
579
580 if (!RegInfo->targetHandlesStackFrameRounding()) {
581 // If we have reserved argument space for call sites in the function
582 // immediately on entry to the current function, count it as part of the

--- 337 unchanged lines hidden ---
575 int SFI = RS->getScavengingFrameIndex();
576 if (SFI >= 0)
577 AdjustStackOffset(FFI, SFI, StackGrowsDown, Offset, MaxAlign);
578 }
579
580 if (!RegInfo->targetHandlesStackFrameRounding()) {
581 // If we have reserved argument space for call sites in the function
582 // immediately on entry to the current function, count it as part of the

--- 337 unchanged lines hidden ---