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]
Other format: [Raw text]

Re: [PATCH, ARM] Fix handling of function arguments with excess alignment


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.



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