PATCH: Fix 2 PPC/SYSV varargs problems
Jeffrey A Law
law at upchuck.cygnus.com
Wed May 12 16:19:53 EST 1999
In message <4.2.0.37.19990430013458.0489a950 at mail.lauterbach.com>you write:
> --=====================_53744284==_
> Content-Type: text/plain; charset="us-ascii"; format=flowed
>
> Hi,
>
> this patch is supposed to fix the following problems on PPC/SYSV:
>
> 1. the varargs save area calculation bug, this is a hack and Richard ;-)
> probably won't like it, but maybe it's good enough for egcs-1.2
>
> 2. if you call a function that uses more then 8 float args before all
> integer argument passing registers are consumed, egcs will missetup the
> calling sequence. I introduced a new variable cum->sysv_fwords in the
> CUMULATIVE_ARGS struct, which counts the saved float words and adjusted
> cum->words where needed (I hope). There maybe better/nicer ways to
> implement that, so tell me if you want a different solution. A testcase is
> attached, the original problem happens with gnuplot.
Has this problem been fixed? I see patch from Richard which looks like it
is related:
* va-ppc.h (__va_start_common): Let __builtin_saveregs do the work.
* rs6000.c (expand_builtin_saveregs): For V4, initialize a private
va_list struct, and return a pointer to it.
(setup_incoming_varargs): V4 save area based off virtual_stack_vars
instead of frame_pointer.
[ yes, I'm going through my backlog now trying to weed out issues that I
don't need to deal with :-) ]
jeff
[[ This message was sent via the linuxppc-dev mailing list. Replies are ]]
[[ not forced back to the list, so be sure to Cc linuxppc-dev if your ]]
[[ reply is of general interest. Please check http://lists.linuxppc.org/ ]]
[[ and http://www.linuxppc.org/ for useful information before posting. ]]
More information about the Linuxppc-dev
mailing list