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....