aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2014-02-05 09:47:59 +0000
committerNick Clifton <nickc@gcc.gnu.org>2014-02-05 09:47:59 +0000
commitc70da878e56cbac6eeb924fa9bc32576714d1c03 (patch)
tree07e04f416693c5b5542b39a231035000e9903efd /gcc
parent25a07c7ee9e1a2e595efa48740ce5144d005e9ac (diff)
downloadgcc-c70da878e56cbac6eeb924fa9bc32576714d1c03.zip
gcc-c70da878e56cbac6eeb924fa9bc32576714d1c03.tar.gz
gcc-c70da878e56cbac6eeb924fa9bc32576714d1c03.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/mn10300/mn10300.c7
2 files changed, 10 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 28d171c..f609d3f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2014-02-05 Nick Clifton <nickc@redhat.com>
+
+ * 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 <y.gribov@samsung.com>
* cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
diff --git a/gcc/config/mn10300/mn10300.c b/gcc/config/mn10300/mn10300.c
index 1b95819..a2133f2 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;