On 02/04/14 10:45, nick clifton wrote:
Hi Jeff,

But how/why did an extended register get selected to begin with?

It happens in reload.c:find_valid_class().

HARD_REGNO_MODE_OK and other macros/hooks ought to be preventing this
relatively early.

Ah - and that is the problem.  mn10300_hard_regno_mode_ok is allowing
extended registers to match some classes even in MN10300.

So how about the patch below ?  This also allows the libstdc++-v3
library to be built.

Cheers
   Nick

gcc/ChangeLog
2014-02-04  Nick Clifton  <ni...@redhat.com>

     * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
     accept extended registers in any mode when compiling for the
     MN10300.
This is fine. I'm assuming that insn predicate checks prevent similar situations from occurring with FP_REGS & FP_ACC_REGS. ie, patterns with constraints which allow those registers are conditional on TARGET_AM33.

Jeff

Reply via email to