> 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

Reply via email to