This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]