var_args for rs6000 backend

Yao qi qiyaobit@hotmail.com
Fri Sep 9 10:43:00 GMT 2005


>From: "Meissner, Michael" <michael.meissner@amd.com>
>To: "Yao qi" <qiyaobit@hotmail.com>
>CC: gcc@gcc.gnu.org
>Subject: RE: var_args for rs6000 backend
>Date: Thu, 8 Sep 2005 21:19:25 -0400
>
>Yes, the eABI is a modification of the System V ABI.  IIRC (but it has
>been several years since I worked on PowerPC), the differences between
>eABI and System V were:
>
>1) eABI used r2 as a secondary small data pointer (System V used just
>r13), and r0 was used for data centered around location 0;
>
>2) there were some relocations in eABI not in System V (support for 3
>small data pointers, section relative relocations) and some relocations
>in System V not in eABI (shared library support);
>
>3) System V had 16-byte stack alignment and eABI had 8-byte stack
>alignment.
>
>I suspect there may be more changes that I'm forgetting about, and also
>the 64-bit support probably changes things also.
>

Thanks very much for your explanation, and I will take them in mind.

Now, I can understand the ideas about ABI clearly and map these ideas
to the source code partialy.

However, I am cofused by the combination of TREE operations, RTX and GIMPLE
in the functions about variable arguments.  I have to conquer them before I 
hack code
about variable arguments in GCC, don't you?  However my focus now is 
routines about variable
argument, and do you think it is necessary for me to understand TREE 
strucuture, RTX
and GIMPLE before I pay attention on variable arguments ?  Is there any 
workrounds to
bypass them partially?  If there is no such shortcut for them, could you 
tell me how to
start the learning in these fields ?
Thank you very much again.

Best Regards
----------------
Yao Qi
Bejing Institute of Technology

_________________________________________________________________
Don't just search. Find. Check out the new MSN Search! 
http://search.msn.com/



More information about the Gcc mailing list