On Sun, 16 Dec 2007, Hans-Peter Nilsson wrote:
> On Wed, 12 Dec 2007, Dave Korn wrote:
>
> > On 12 December 2007 12:14, Revital1 Eres wrote:
> >
> > > It seems that the pair m and I is missing (which indicate the memory =
> > > constant instruction).
> >
> >   So doesn't the question then become "Why isn't reload reloading the 
> > constant
> > into a register"?
>
> Yes.  And the answer AFAIK is "because it doesn't see a way to
> move a constant into a register; it understands "r", not "p" and
> "q".

I think I have to correct myself; register allocation and reload
*should* understand p and q as register constraints, given e.g.
a correct REG_CLASS_FROM_LETTER definition and correct regclass
macros.  The latter were not disclosed and are usually a source
of hard-to-find errors.

Besides, if you can't directly move between p and q (as your
constraints indicate) then as Rask says, you also need to tell
GCC through the secondary-reload mechanisms.

I can't help but thinking the best suggetion is for bviyer to
let gdb answer the question by stepping through cc1 instead of
relying on indirect debugging.  That's what people do. ;)

brgds, H-P

Reply via email to