This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] fix e500 prologue/epilogue ABI issue
On Mon, May 21, 2007 at 01:40:26PM -0700, Andrew Pinski wrote:
> On 5/21/07, Nathan Froyd <froydnj@codesourcery.com> wrote:
> >Bootstrapped and regtested on powerpc-none-linux-gnuspe. No
> >regressions. OK to commit?
>
> You are also changing some parts of the altivec ABI (at least that is
> what the comment says that you removed):
[...]
> It seems like you should also test on powerpc-linux-gnu with altivec
> support enabled to make sure you did not break anything else.
I agree the comment suggests that. As I stated in the original email,
FIXED_SCRATCH is only used in one location--gen_frame_mem_offset, for
consing up indices when restoring EH registers. (gen_frame_mem_offset
is also used to restore r0 in the epilogue, but it's clear that this use
will not trigger the FIXED_SCRATCH case.) This use doesn't have
anything to do with the Altivec ABI. Saving and restoring the Altivec
registers also uses r0 as a scratch index register, just as this patch
does.
(It's actually weirder than that--the commit that introduced
FIXED_SCRATCH, 55731, mentions the Altivec bits in connection with
FIXED_SCRATCH, but FIXED_SCRATCH isn't used for any Altivec bits in that
revision--or anywhere else, as far as I can see. Maybe the Altivec
save/restore bits used to use r11...?)
I think the comment is bogus. :)
However, if testing it on an altivec target is required before commit,
I'm more than happy to do that.
-Nathan