diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 4 |
2 files changed, 7 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f275f99..de17cae 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index c239374..30cd696 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -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)); |