From: Nick Clifton Date: Wed, 5 Feb 2014 09:47:59 +0000 (+0000) Subject: mn10300.c (mn10300_hard_regno_mode_ok): Do not accept extended registers in any mode... X-Git-Tag: releases/gcc-4.9.0~1088 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c70da878e56cbac6eeb924fa9bc32576714d1c03;p=thirdparty%2Fgcc.git mn10300.c (mn10300_hard_regno_mode_ok): Do not accept extended registers in any mode when compiling for the MN10300. * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not accept extended registers in any mode when compiling for the MN10300. From-SVN: r207498 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 28d171caefca..f609d3f28225 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2014-02-05 Nick Clifton + + * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not + accept extended registers in any mode when compiling for the + MN10300. + 2014-02-05 Yury Gribov * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code. diff --git a/gcc/config/mn10300/mn10300.c b/gcc/config/mn10300/mn10300.c index 1b9581910bf6..a2133f21783c 100644 --- a/gcc/config/mn10300/mn10300.c +++ b/gcc/config/mn10300/mn10300.c @@ -68,7 +68,6 @@ static int cc_flags_for_mode(enum machine_mode); static int cc_flags_for_code(enum rtx_code); /* Implement TARGET_OPTION_OVERRIDE. */ - static void mn10300_option_override (void) { @@ -1413,7 +1412,6 @@ mn10300_secondary_reload (bool in_p, rtx x, reg_class_t rclass_i, if (addr && CONSTANT_ADDRESS_P (addr)) return GENERAL_REGS; } - /* Otherwise assume no secondary reloads are needed. */ return NO_REGS; } @@ -2614,7 +2612,10 @@ mn10300_hard_regno_mode_ok (unsigned int regno, enum machine_mode mode) || REGNO_REG_CLASS (regno) == FP_ACC_REGS) /* Do not store integer values in FP registers. */ return GET_MODE_CLASS (mode) == MODE_FLOAT && ((regno & 1) == 0); - + + if (! TARGET_AM33 && REGNO_REG_CLASS (regno) == EXTENDED_REGS) + return false; + if (((regno) & 1) == 0 || GET_MODE_SIZE (mode) == 4) return true;