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