PowerPC prologue and epilogue 5

David Edelsohn dje.gcc@gmail.com
Tue Apr 24 15:32:00 GMT 2012


On Thu, Apr 19, 2012 at 11:36 AM, Alan Modra <amodra@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



More information about the Gcc-patches mailing list