On 16 March 2007 15:30, Richard Sandiford wrote:
> Jim Wilson <[EMAIL PROTECTED]> writes:
>> Dave Korn wrote:
>>> But it is ok to use a define_expand (that accepts all alternatives) for
>>> movsf and use that to generate one of several movsf_XXXX insns, isn't it?
>>
>> Reload doesn't use the move define_expands. It can't. A define_expand
>> is allowed to do stuff like generate new RTL that would completely mess
>> up what reload is trying to do.
>
> That isn't unconditionally true, is it? reload1.c:gen_reload
> uses gen_move_insn, which is just a start_sequence/end_sequence
> wrapper for emit_move_insn_1, which in turn calls the move expanders.
Yes, in fact isn't this the reason why you have to take great care in movMM
expanders to check for no_new_pseudos? It may or may not be technically
correct, but it's certainly the standard practice for movDI - almost every
backend uses an expander instead of an insn.
cheers,
DaveK
--
Can't think of a witty .sigline today....