This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH, ARM] Fix handling of function arguments with excess alignment
- From: Richard Earnshaw <rearnsha at arm dot com>
- To: gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 21 Aug 2013 17:25:13 +0100
- Subject: Re: [PATCH, ARM] Fix handling of function arguments with excess alignment
- References: <52039F53 dot 3080008 at arm dot com>
On 08/08/13 14:38, Richard Earnshaw wrote:
> PR target/56979 is a bug where a parameter to a function has an
> alignment that is larger than its natural alignment. In this case this
> causes the mid-end to generate a mode for the argument that is
> incompatible with the registers that are assigned for it. We then end
> up creating invalid RTL and subsequently abort when the pattern cannot
> emit assembly code.
>
> The fix is to decompose the assignment when this would happen in the
> same way that we handle other block mode arguments and handle each piece
> in turn.
>
> PR target/56979
> * arm.c (aapcs_vfp_allocate): Decompose the argument if the
> suggested mode for the assignment isn't compatible with the
> registers required.
>
> Committed to trunk.
>
And back-ported to the 4.7 and 4.8 branches.