> [ BTw, I think the MIPS comment is wrong. HARD_REGNO_NREGS (fpreg, SFmode) > is (now) 1, even when using paired FPRs. And the suggestion doesn't > seem at all ideal to me. OK to remove? ]
You're the MIPS maintainer, so it's up to you. > A simple fix, which I've used below, is to make sure that the previous > mode requires only one register. We could drop the new assert if we want > to be even more conservative at this stage. That doesn't seem decisively better to me. Why not use REGNO_REG_CLASS, i.e. copy the mode only if we stay within the same class? > A riskier but perhaps more logical fix would be to call choose_hard_reg_mode > again, this time telling it to ignore HARD_REGNO_MODE_OK. Yes, that's probably a little too risky at this stage. Btw, could you fix the comment about regno_reg_rtx in emit-rtl.c/function.h? It talks about pseudo-registers while we are talking about hard registers. -- Eric Botcazou