This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: ABI change for ports with byte-aligned functions.


On May  4, 2001, Geoffrey Keating <geoffk@thief.cygnus.com> wrote:

> +   bit of P.  When FUNCTION_BOUNDARY is less than 16 (and so it might
> +   happen that the function pointer might naturally have the low bit
> +   set), the type is instead
 
> +   struct {
> +     __P __pfn;
> +     ptrdiff_t __delta;
> +     char __vflag;
> +   };
 
> +   and __pfn is a pointer to a method when __vflag is zero.
 
Err...  A proposal was made to the C++ ABI committee to use the lowest
bit of the first field, as implemented in
http://gcc.gnu.org/ml/gcc-patches/2001-04/msg00498.html

Is there any reason you didn't use that patch?

Note that depending on FUNCTION_BOUNDARY alone is not right: it may be
equal to or greater than 2 * BITS_PER_UNIT for performance reasons,
even when the processor doesn't really demand it, and someone may
rightfully define member functions in assembly that are not aligned
according to the best-performance requirements.

-- 
Alexandre Oliva   Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer                  aoliva@{cygnus.com, redhat.com}
CS PhD student at IC-Unicamp        oliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist    *Please* write to mailing lists, not to me


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]