This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Reload problem on ppc64 (was: Analysis of high priority PRc/2454)
- From: Michael Matz <matzmich at cs dot tu-berlin dot de>
- To: David Edelsohn <dje at watson dot ibm dot com>
- Cc: <gcc at gcc dot gnu dot org>, Jeffrey A Law <law at redhat dot com>
- Date: Wed, 3 Jul 2002 11:03:53 +0200 (MET DST)
- Subject: Re: Reload problem on ppc64 (was: Analysis of high priority PRc/2454)
Hi,
On Tue, 2 Jul 2002, David Edelsohn wrote:
> GCC seems to be confused by the DImode values in FPRs.
Yes ...
> I think that maybe the constraints for the DImode operands should add
> the "*" modifier so that the FPR only is used as a constraint and not
> register preferences.
... but the problem _are_ the constraints. reload sees the paradoxical
subreg as operand 1, and when trying to find the correct class for it it
looks at the constraints, seeing only "f", i.e. a REG of FLOAT_REGS. This
is correct, this insn really needs a "f" register. I.e. one part of the
decisions of reload is correct, it needs to reload that operand somehow
into an "f" reg. But it does it wrongly. The added reload insn (which I
believe must really be two) tries to set the "high" part of %f11 to the
content of stackslot of pseudo 338. This is what's broken.
Ciao,
Michael.