Commit 838f78d6 by DJ Delorie

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
parent 2d6ae5d6
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> 2006-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* pa.md: Disparage copies between general and floating-point registers * pa.md: Disparage copies between general and floating-point registers
...@@ -31,7 +36,7 @@ ...@@ -31,7 +36,7 @@
* basic-block.h: Remove the prototype for * basic-block.h: Remove the prototype for
partition_hot_cold_basic_blocks. partition_hot_cold_basic_blocks.
2006-01-16 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 2006-01-16 Rafael Ávila de EspÁndola <rafael.espindola@gmail.com>
* cppspec.c (lang_specific_spec_functions): remove * cppspec.c (lang_specific_spec_functions): remove
* gcc.c (lookup_spec_function): use static_spec_functions directelly * gcc.c (lookup_spec_function): use static_spec_functions directelly
......
...@@ -6329,6 +6329,8 @@ reg_overlap_mentioned_for_reload_p (rtx x, rtx in) ...@@ -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 either argument is a constant, then modifying X can not affect IN. */
if (CONSTANT_P (x) || CONSTANT_P (in)) if (CONSTANT_P (x) || CONSTANT_P (in))
return 0; 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) else if (GET_CODE (x) == SUBREG)
{ {
regno = REGNO (SUBREG_REG (x)); regno = REGNO (SUBREG_REG (x));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment