Committed. * config/mep/mep.c (mep_legitimize_arg): Leave control registers alone too.
Index: config/mep/mep.c =================================================================== --- config/mep/mep.c (revision 149868) +++ config/mep/mep.c (working copy) @@ -6201,13 +6201,15 @@ mep_legitimize_arg (const struct insn_op The caller will copy this value into ARG after the main instruction. By doing this always, we produce slightly more optimal code. */ /* But not for control registers. */ if (operand->constraint[0] == '=' && (! REG_P (arg) - || ! (CCR_REGNO_P (REGNO (arg)) || CR_REGNO_P (REGNO (arg))) + || ! (CONTROL_REGNO_P (REGNO (arg)) + || CCR_REGNO_P (REGNO (arg)) + || CR_REGNO_P (REGNO (arg))) )) return gen_reg_rtx (operand->mode); /* Try simple mode punning. */ arg = mep_convert_arg (operand->mode, arg); if (operand->predicate (arg, operand->mode))