On Thu, Sep 18, 2014 at 3:07 AM, Richard Sandiford
<richard.sandif...@arm.com> wrote:
> This series is a cleaned-up version of:
>
>     https://gcc.gnu.org/ml/gcc/2014-03/msg00163.html
>
> The underlying problem is that the semantics of subregs depend on the
> word size.  You can't have a subreg for byte 2 of a 4-byte word, say,
> but you can have a subreg for word 2 of a 4-word value (as well as lowpart
> subregs of that word, etc.).  This causes problems when an architecture has
> wider-than-word registers, since the addressability of a word can then depend
> on which register class is used.
>
> The register allocators need to fix up cases where a subreg turns out to
> be invalid for a particular class.  This is really an extension of what
> we need to do for CANNOT_CHANGE_MODE_CLASS.
>
> Tested on x86_64-linux-gnu, powerpc64-linux-gnu and aarch64_be-elf.


This sounds like something which should be tested on spu as it is the
main target that I can think of which has wider-than-word registers
and that has had issues with subreg.  I can't remember if the
simulator for SPU is free (as in beer) and would run on anything
besides PowerPC.  It has been more than 4 years since I looked into
the spu back-end also.

Thanks,
Andrew Pinski

>
> Thanks,
> Richard
>

Reply via email to