summaryrefslogtreecommitdiffstats
path: root/gcc/reload1.c
diff options
context:
space:
mode:
authoruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>2004-01-30 23:10:36 +0000
committeruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>2004-01-30 23:10:36 +0000
commit5482e0c77c2acc95360cc9853a6ae06cbd249ed5 (patch)
tree464a4921f24c2daff2f23725c8e5acb5013e07d0 /gcc/reload1.c
parentbb366ae60d16fa89358f85586280bcfd12946ed7 (diff)
downloadppe42-gcc-5482e0c77c2acc95360cc9853a6ae06cbd249ed5.tar.gz
ppe42-gcc-5482e0c77c2acc95360cc9853a6ae06cbd249ed5.zip
PR optimization/12147
* reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with RELOAD_FOR_OPADDR_ADDR. (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register might be reused as RELOAD_FOR_OPADDR_ADDR register. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@77003 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/reload1.c')
-rw-r--r--gcc/reload1.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c
index 1df667e8f88..d53b27be6d6 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -4316,6 +4316,7 @@ reload_reg_free_p (unsigned int regno, int opnum, enum reload_type type)
/* In use for anything means we can't use it for RELOAD_OTHER. */
if (TEST_HARD_REG_BIT (reload_reg_used_in_other_addr, regno)
|| TEST_HARD_REG_BIT (reload_reg_used_in_op_addr, regno)
+ || TEST_HARD_REG_BIT (reload_reg_used_in_op_addr_reload, regno)
|| TEST_HARD_REG_BIT (reload_reg_used_in_insn, regno))
return 0;
@@ -4494,6 +4495,7 @@ reload_reg_reaches_end_p (unsigned int regno, int opnum, enum reload_type type)
return 0;
return (! TEST_HARD_REG_BIT (reload_reg_used_in_op_addr, regno)
+ && ! TEST_HARD_REG_BIT (reload_reg_used_in_op_addr_reload, regno)
&& ! TEST_HARD_REG_BIT (reload_reg_used_in_insn, regno)
&& ! TEST_HARD_REG_BIT (reload_reg_used, regno));
OpenPOWER on IntegriCloud