[PATCH] Fix __builtin_return_address() on PPC

Franz Sirl Franz.Sirl-kernel@lauterbach.com
Fri Feb 2 12:02:00 GMT 2001


On Friday 02 February 2001 20:47, David Edelsohn wrote:
> rs6000_current_abi is not used by aix.h, so Franz's patch is
> incomplete.  This one should cover everything.
>
> David
>
>
> 	* config/rs6000/rs60000.c (rs6000_return_addr): Add ABI_AIX
> 	to tests to determine where to find LR.
>
> Index: rs6000.c
> ===================================================================
> RCS file: /cvs/gcc/egcs/gcc/config/rs6000/rs6000.c,v
> retrieving revision 1.162
> diff -c -p -r1.162 rs6000.c
> *** rs6000.c	2001/01/24 00:07:31	1.162
> --- rs6000.c	2001/02/02 19:37:50
> *************** rs6000_return_addr (count, frame)
> *** 5057,5063 ****
>     /* Currently we don't optimize very well between prolog and body code
> and for PIC code the code can be actually quite bad, so don't try to be too
> clever here.  */
> !   if (count != 0 || flag_pic != 0)
>       {
>         cfun->machine->ra_needs_full_frame = 1;
>         return
> --- 5055,5065 ----
>     /* Currently we don't optimize very well between prolog and body code
> and for PIC code the code can be actually quite bad, so don't try to be too
> clever here.  */
> !   if (DEFAULT_ABI == ABI_AIX
> !       || count != 0
> !       || flag_pic != 0
> !       || rs6000_current_abi == ABI_AIX
> !       || rs6000_current_abi == ABI_AIX_NODESC)
>       {
>         cfun->machine->ra_needs_full_frame = 1;
>         return

I think you mean the following, as DEFAULT_ABI is always valid:



More information about the Gcc-patches mailing list