On 01/06/2011 06:58 AM, Frederic Riss wrote:
> 136 is a pseudo. I have movdf and movsf patterns that accepts
> constants.

This one statement is suspicious to me.  Do I read from this that
you have fp move patterns that accept constants but not registers?
Move patterns are special in that they *must* handle everything,
modulo some constants which reload can spill to memory.

The other piece of advice that I can give from elsewhere in this
thread is that you should never match or generate SUBREG by hand.
You should always use the gen_lowpart, gen_highpart, simplify_gen_subreg
interfaces.  Those will greatly simplify the double-subreg issues
that you have been having.

Finally, do you actually have dedicated hard registers for fp?  If
yours is a soft-fp target -- or one of the rare targets that does
hard fp out of the general register set -- consider totally eliminating
the fp move patterns.  Once upon a time gcc required them even for
soft-fp, but we've gotten much better with introduction of the
lower-subreg pass.  Not that too many existing ports have been updated
for that pass, leading others to conclude that the patterns are still
required...


r~

Reply via email to