reload.c (reg_overlap_mentioned_for_reload_p): Handle subregs of mems.
authorDJ Delorie <dj@gcc.gnu.org>
Tue, 17 Jan 2006 00:58:06 +0000 (19:58 -0500)
committerDJ Delorie <dj@gcc.gnu.org>
Tue, 17 Jan 2006 00:58:06 +0000 (19:58 -0500)
* reload.c (reg_overlap_mentioned_for_reload_p): Handle subregs of
mems.

From-SVN: r109792

gcc/ChangeLog
gcc/reload.c

index bc7f001..e8eeccb 100644 (file)
@@ -1,3 +1,8 @@
+2006-01-16  DJ Delorie  <dj@redhat.com>
+
+       * reload.c (reg_overlap_mentioned_for_reload_p): Handle subregs of
+       mems.
+
 2006-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
 
        * pa.md: Disparage copies between general and floating-point registers
@@ -31,7 +36,7 @@
        * basic-block.h: Remove the prototype for
        partition_hot_cold_basic_blocks.
 
-2006-01-16  Rafael Ã\81vila de Espíndola <rafael.espindola@gmail.com>
+2006-01-16  Rafael \81Ã\81vila de Esp\81Ã\81­ndola <rafael.espindola@gmail.com>
 
        * cppspec.c (lang_specific_spec_functions): remove
        * gcc.c (lookup_spec_function): use static_spec_functions directelly
index 2b61a8e..92ad085 100644 (file)
@@ -6329,6 +6329,8 @@ reg_overlap_mentioned_for_reload_p (rtx x, rtx in)
   /* If either argument is a constant, then modifying X can not affect IN.  */
   if (CONSTANT_P (x) || CONSTANT_P (in))
     return 0;
+  else if (GET_CODE (x) == SUBREG && GET_CODE (SUBREG_REG (x)) == MEM)
+    return refers_to_mem_for_reload_p (in);
   else if (GET_CODE (x) == SUBREG)
     {
       regno = REGNO (SUBREG_REG (x));