PATCH: C data layout tests for IA-64 ABI
Jason Merrill
jason@cygnus.com
Fri Dec 3 14:12:00 GMT 1999
>>>>> Jeffrey A Law <law@cygnus.com> writes:
> In message < u9g0xju9mi.fsf@yorick.cygnus.com >you write:
>> Note that there is no way to write a C struct equivalent to an ia64 vtable,
>> since it contains function descriptors (what function pointers point to)
>> rather than actual function pointers. We should probably do this for HPPA
>> under the new ABI, too, but the tests should work for other targets.
> For PA64 (and I suspect ia64) when you take the address of a function, you
> actually get a pointer to the official procedure descriptor. The opd is
> created by the linker/dynamic linker for PA64 and the dynamic linker for
> ia64.
> An entry in the vtable would be a pointer to the opd entry for that
> function, not the actual contents of the opd entry.
The ia64 C++ ABI committee has decided to use the contents. If this
doesn't make sense (i.e. if there's no way to express such a thing to the
assembler), now's the time to let us know...:)
> Otherwise you would need two different call sequences for a normal
> indirect call and a vtable call.
You can still use the same sequence; you'd just use the address of the
vtable entry rather than its contents, saving an indirection. That's the
Jason
More information about the Gcc-patches
mailing list