On Thu, Apr 19, 2012 at 11:36 AM, Alan Modra <amo...@gmail.com> wrote: > On Thu, Apr 19, 2012 at 08:00:15PM +0930, Alan Modra wrote: >> On Wed, Apr 18, 2012 at 12:45:16AM +0930, Alan Modra wrote: >> > This enables out-of-line save and restore for large frames, and for >> > ABI_AIX when using the static chain. >> >> Further testing revealed two problems when compiling nested >> functions. >> 1) The logic I had for cr_save_regno is wrong, resulting in one of my >> NOT_INUSE asserts triggering. > > Fixed in this revised patch. Bootstrapped etc. powerpc-linux. > >> 2) In some cases the prologue uses in-line saves while the epilogue >> uses out-of-line restores. This can lead to restoring regs that >> haven't been saved. > > This turned out to be a pre-existing problem, patch in PR50340. > > * config/rs6000/rs6000.c (rs6000_savres_strategy): Allow > out-of-line save/restore for large frames. Don't disable > out-of-line saves on ABI_AIX when using static chain reg. > (rs6000_emit_prologue): Adjust cr_save_regno on ABI_AIX to not > clobber static chain reg, and tweak for out-of-line gpr saves > that use r1.
This patch is okay. Thanks, David