> As you say, some other check might be more appropriate to determine
> whether a call to gen_reg_rtx might be needed in
> emit_move_complex_parts.
> For the PA, it would be something like "GET_MODE_BITSIZE (mode) >
> BITS_PER_WORD".
> But, we still need to check can_create_pseudo_p as we probably still
> want to use
> emit_move_complex_parts before reload.
Let's avoid trying to do something general since this seems to be really a
corner case. Can't we simply deal with hard registers specially?
/* Move floating point as parts if splitting is easy. */
if (GET_MODE_CLASS (mode) == MODE_COMPLEX_FLOAT
&& optab_handler (mov_optab, GET_MODE_INNER (mode)) != CODE_FOR_nothing
&& !(REG_P (x)
&& HARD_REGISTER_P (x)
&& hard_regno_nregs[REGNO(x)][mode] == 1)
&& !(REG_P (y)
&& HARD_REGISTER_P (y)
&& hard_regno_nregs[REGNO(y)][mode] == 1))
try_int = false;
--
Eric Botcazou