This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [committed] hppa: Fix canonicalize of method and void pointers in comparison operations
- From: Jeff Law <law at redhat dot com>
- To: John David Anglin <dave dot anglin at bell dot net>, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Cc: Helge Deller <deller at gmx dot de>, Matthias Klose <doko at debian dot org>, Mattias Ellert <mattias dot ellert at physics dot uu dot se>
- Date: Mon, 17 Sep 2018 09:02:23 -0600
- Subject: Re: [committed] hppa: Fix canonicalize of method and void pointers in comparison operations
- References: <d6955728-244a-0a5c-b6c1-e4bf569c8f04@bell.net>
On 9/14/18 5:44 PM, John David Anglin wrote:
> The attached change fixes the canonicalization of method and void
> pointers in comparisons against
> another method or function pointer on 32-bit hppa targets. As far as I
> know, 32-bit hppa is the only
> architecture that requires function pointer canonicalization due to lazy
> binding.
>
> Tested on hppa2.0w-hp-hpux11.11 and hppa-unknown-linux-gnu, GCC trunk
> and 8. Committed to
> trunk and gcc-8 branch.
My recollection is HP's engineers were really concerned about the cost
of indirect calls and wanted to drop all the $$dyncall and associated
canonicalization of function pointers as they went to the 64 bit ABI.
This was made easier by no longer having to support MPE. So they could
rely on more standard mechanisms to handle function pointers.
Jeff