rs6000.c (rs6000_legitimize_reload_address): Don't perform invalid legitimization...
authorJulian Brown <julian@codesourcery.com>
Tue, 13 Aug 2013 17:33:09 +0000 (17:33 +0000)
committerJulian Brown <jules@gcc.gnu.org>
Tue, 13 Aug 2013 17:33:09 +0000 (17:33 +0000)
* config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
perform invalid legitimization on greater-than-word-size modes for
TARGET_E500_DOUBLE.

From-SVN: r201701

gcc/ChangeLog
gcc/config/rs6000/rs6000.c

index f275f99..de17cae 100644 (file)
@@ -1,3 +1,9 @@
+2013-08-13  Julian Brown  <julian@codesourcery.com>
+
+       * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
+       perform invalid legitimization on greater-than-word-size modes for
+       TARGET_E500_DOUBLE.
+
 2013-08-13  Vladimir Makarov  <vmakarov@redhat.com>
 
        * ira.c (setup_class_translate_array): Use aclass instead of cl
index c239374..30cd696 100644 (file)
@@ -6930,9 +6930,7 @@ rs6000_legitimize_reload_address (rtx x, enum machine_mode mode,
       && GET_CODE (XEXP (x, 1)) == CONST_INT
       && reg_offset_p
       && !SPE_VECTOR_MODE (mode)
-      && !(TARGET_E500_DOUBLE && (mode == DFmode || mode == TFmode
-                                 || mode == DDmode || mode == TDmode
-                                 || mode == DImode))
+      && !(TARGET_E500_DOUBLE && GET_MODE_SIZE (mode) > UNITS_PER_WORD)
       && (!VECTOR_MODE_P (mode) || VECTOR_MEM_NONE_P (mode)))
     {
       HOST_WIDE_INT val = INTVAL (XEXP (x, 1));