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 | |
| 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
| -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) |

