This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH 0/5] Fix handling of word subregs of wide registers
- From: Richard Sandiford <richard dot sandiford at arm dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Thu, 18 Sep 2014 11:07:10 +0100
- Subject: [PATCH 0/5] Fix handling of word subregs of wide registers
- Authentication-results: sourceware.org; auth=none
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.
Thanks,
Richard