This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH, committed] reload.c latent bug fix
- From: Joern Rennecke <joern dot rennecke at superh dot com>
- To: dje at watson dot ibm dot com (David Edelsohn)
- Cc: joern dot rennecke at superh dot com (Joern Rennecke), gcc-patches at gcc dot gnu dot org
- Date: Thu, 5 Feb 2004 15:45:10 +0000 (GMT)
- Subject: Re: [PATCH, committed] reload.c latent bug fix
> The test and the array access must be consistent -- either both
> regno or both inner_regno.
Agreed. But it should be inner_regno.
> Both functions have been working calling the
> old macro with "regno".
If there is an actual overlap, it should work for all but the most exotic
ports, because then regno and inner_regno should be consistent in being
hard registers or not, and if they are, in how many registers are needed
for a mode. (If a port has very strange modes and register number
assignments to match, you can get surprises with HARD_REGNO_NREGS. But
then the SUBREG_BYTE code will probably not work in the first place).
But if there is no actual overlap, regno might be for a very small register,
or for one for which the mode is not allowable in the first place,
so you can get false positives there.