From: "Meissner, Michael" <[EMAIL PROTECTED]>
To: "Yao qi" <[EMAIL PROTECTED]>
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/

Reply via email to