[PATCH 5/5] Ensure the mode used to create split registers is suppported

Vladimir Makarov vmakarov@redhat.com
Tue Feb 7 22:04:00 GMT 2017



On 02/07/2017 09:08 AM, Matthew Fortune wrote:
> Hi,
>
> This patch addresses a problem with LRA splitting hard registers
> where the mode requires multiple registers.  When splitting then
> each constituent register is split individually using the widest
> mode for each register but no check is made that such a mode is
> actually supported in those registers.
>
> MIPS has an ABI variant o32 FPXX that allows DFmode values to
> exist in pairs of 32-bit floating point registers but only the
> first 32-bit register is directly addressable.  The second
> register can only be accessed as part of a 64-bit load/store or
> via a special move instruction used as part of a 64-bit move.
>
> The split is simply rejected to ensure compliance with the ABI
> although I expect the split logic could account for this case
> and split using the wider mode.  Such a change appears more
> invasive than appropriate in stage 4.
>
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78012
>
> It is unknown if any other LRA enabled target could hit this
> issue but it is certainly possible depending on mode/register
> restrictions.
The patch is ok for the trunk and it is pretty safe.  Thank you Robert 
and Matt.



More information about the Gcc-patches mailing list