This is the mail archive of the
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
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?
J. David Anglin email@example.com
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)