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 >