aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJim Wilson <wilson@gcc.gnu.org>1997-03-18 14:10:38 -0800
committerJim Wilson <wilson@gcc.gnu.org>1997-03-18 14:10:38 -0800
commitc6e0383c18f3695ee23706234df9c5c9e9bd3a9f (patch)
treecf878a2b89f4ea9ce75f569247b5a50ad76fc683 /gcc
parent5ae749842d025cd165c0088b1546fac0bb2926e8 (diff)
downloadgcc-c6e0383c18f3695ee23706234df9c5c9e9bd3a9f.zip
gcc-c6e0383c18f3695ee23706234df9c5c9e9bd3a9f.tar.gz
gcc-c6e0383c18f3695ee23706234df9c5c9e9bd3a9f.tar.bz2
(reload_reg_free_before_p, case
RELOAD_FOR_OPERAND_ADDRESS): Conflicts with RELOAD_FOR_OPADDR_ADDR reloads. From-SVN: r13742
Diffstat (limited to 'gcc')
-rw-r--r--gcc/reload1.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c
index ad0f8f8..2a072a3 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -4684,6 +4684,12 @@ reload_reg_free_before_p (regno, opnum, type)
return ! TEST_HARD_REG_BIT (reload_reg_used_in_other_addr, regno);
case RELOAD_FOR_OPERAND_ADDRESS:
+ /* Earlier reloads include RELOAD_FOR_OPADDR_ADDR reloads. */
+ if (TEST_HARD_REG_BIT (reload_reg_used_in_op_addr_reload, regno))
+ return 0;
+
+ /* ... fall through ... */
+
case RELOAD_FOR_OPADDR_ADDR:
case RELOAD_FOR_INSN:
/* These can't conflict with inputs, or each other, so all we have to