summaryrefslogtreecommitdiff
path: root/lib/Target/PowerPC/PPCFrameLowering.cpp
diff options
context:
space:
mode:
authorHal Finkel <hfinkel@anl.gov>2012-05-19 21:52:55 +0000
committerHal Finkel <hfinkel@anl.gov>2012-05-19 21:52:55 +0000
commitb8f2f29467b86a11e777e2ce071caf15ae6fcf75 (patch)
treec5b84a1893a80380d7a370728adff839a4f13745 /lib/Target/PowerPC/PPCFrameLowering.cpp
parentec096b492549d625e4be608fcaea265b96dabc03 (diff)
downloadllvm-b8f2f29467b86a11e777e2ce071caf15ae6fcf75.tar.gz
llvm-b8f2f29467b86a11e777e2ce071caf15ae6fcf75.tar.bz2
llvm-b8f2f29467b86a11e777e2ce071caf15ae6fcf75.tar.xz
Add a FIXME about access to negative stack-pointer offsets on PPC32.
The current code will generate a prologue which starts with something like: mflr 0 stw 31, -4(1) stw 0, 4(1) stwu 1, -16(1) But under the PPC32 SVR4 ABI, access to negative offsets from R1 is not allowed. This was pointed out by Peter Bergner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157133 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PowerPC/PPCFrameLowering.cpp')
-rw-r--r--lib/Target/PowerPC/PPCFrameLowering.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/Target/PowerPC/PPCFrameLowering.cpp b/lib/Target/PowerPC/PPCFrameLowering.cpp
index 5950290ca2..be172c2435 100644
--- a/lib/Target/PowerPC/PPCFrameLowering.cpp
+++ b/lib/Target/PowerPC/PPCFrameLowering.cpp
@@ -330,6 +330,8 @@ void PPCFrameLowering::emitPrologue(MachineFunction &MF) const {
BuildMI(MBB, MBBI, dl, TII.get(PPC::MFLR), PPC::R0);
if (HasFP)
+ // FIXME: On PPC32 SVR4, FPOffset is negative and access to negative
+ // offsets of R1 is not allowed.
BuildMI(MBB, MBBI, dl, TII.get(PPC::STW))
.addReg(PPC::R31)
.addImm(FPOffset)