diff options
author | Hal Finkel <hfinkel@anl.gov> | 2012-05-19 21:52:55 +0000 |
---|---|---|
committer | Hal Finkel <hfinkel@anl.gov> | 2012-05-19 21:52:55 +0000 |
commit | 66b0c935538de8e851dac4cee9b62744166f7650 (patch) | |
tree | c3fb3baea6e01d9d9d62ef50dbbf245a7eea27a8 /llvm/lib/Target/PowerPC/PPCFrameLowering.cpp | |
parent | e59d0c3252b66e611449db30664a0b57db220e89 (diff) | |
download | bcm5719-llvm-66b0c935538de8e851dac4cee9b62744166f7650.tar.gz bcm5719-llvm-66b0c935538de8e851dac4cee9b62744166f7650.zip |
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.
llvm-svn: 157133
Diffstat (limited to 'llvm/lib/Target/PowerPC/PPCFrameLowering.cpp')
-rw-r--r-- | llvm/lib/Target/PowerPC/PPCFrameLowering.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp b/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp index 5950290ca27..be172c24355 100644 --- a/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp +++ b/llvm/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) |