From: DJ Delorie Date: Tue, 17 Jan 2006 00:58:06 +0000 (-0500) Subject: reload.c (reg_overlap_mentioned_for_reload_p): Handle subregs of mems. X-Git-Tag: releases/gcc-4.2.0~4830 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=838f78d63b20aaf9078bf5afe2e94054fcd180f7;p=thirdparty%2Fgcc.git reload.c (reg_overlap_mentioned_for_reload_p): Handle subregs of mems. * reload.c (reg_overlap_mentioned_for_reload_p): Handle subregs of mems. From-SVN: r109792 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bc7f0018efb2..e8eeccb5c0df 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2006-01-16 DJ Delorie + + * reload.c (reg_overlap_mentioned_for_reload_p): Handle subregs of + mems. + 2006-01-16 John David Anglin * 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 Ávila de Espíndola +2006-01-16 Rafael Ãvila de EspÃ­ndola * cppspec.c (lang_specific_spec_functions): remove * gcc.c (lookup_spec_function): use static_spec_functions directelly diff --git a/gcc/reload.c b/gcc/reload.c index 2b61a8eded3f..92ad08558120 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -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));