This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: question regarding regrename and failure of 950704-1.c on main
- From: "John David Anglin" <dave at hiauly1 dot hia dot nrc dot ca>
- To: law at redhat dot com
- Cc: rth at redhat dot com, gcc at gcc dot gnu dot org
- Date: Fri, 10 May 2002 10:53:02 -0400 (EDT)
- Subject: Re: question regarding regrename and failure of 950704-1.c on main
> It's got to be merely exposing a latent problem. Dig deeper. Again,
> why do we have reg:di 22 and reg:di 23. That's simply wrong.
As noted, DI 23 is one of the original arguments. The current definition
of HARD_REGNO_MODE_OK forces DI mode to even registers. Thus, the
register choice in this case is not consistent with our definition
of HARD_REGNO_MODE_OK.
DI 22 should not have been selected because it overlaps DI 23
(HARD_REGNO_NREGS wasn't checked?). I will try to find this bug.
I think we should revamp HARD_REGNO_MODE_OK to use odd registers
for REGNO < 27, plus registers 28 and 30. This will allow direct
use of the incoming argument values, and the outging return value.
What do you think?
Dave
--
J. David Anglin dave.anglin@nrc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)