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/