|
From: Peter B. <be...@vn...> - 2014-02-06 19:46:11
|
On Thu, 2014-02-06 at 19:35 +0100, Julian Seward wrote: > Carl > > > regards to function calls. Specifically they used to store the function > > entry address at in the first location of the function, followed by the > > code. The first address of the function in the new API no longer has > > the start address. > > Can you clarify what you mean? For ppc64-linux, I remember the ABI requires > that taking the address of a function gives a pointer to a three word > descriptor, the first word of which points to the code itself, the second > is the TOC pointer, and the third I am not sure what it is for. Dealing > with these descriptors is a lot of hassle in various bits of the code. > > Is this what has changed? If so, what did it change to? That is correct. In the old ELFv1 ABI, a function pointer was the address of the 3 element function descriptor you describe. In the new ELFv2 ABI, the function pointer is now just the address of the function code like most other architectures/ABIs. Peter |