Commit 2af88768 by Geoff Keating Committed by Geoffrey Keating

reload1.c (reload_reg_reaches_end_p): A RELOAD_OTHER can overwrite the value in…

reload1.c (reload_reg_reaches_end_p): A RELOAD_OTHER can overwrite the value in a RELOAD_FOR_INPUT and other kinds of...

	* reload1.c (reload_reg_reaches_end_p): A RELOAD_OTHER can
	overwrite the value in a RELOAD_FOR_INPUT and other kinds of
	reloads just like an RELOAD_FOR_OUTPUT would.

From-SVN: r37019
parent 96af667a
2000-10-23 Geoff Keating <geoffk@cygnus.com> 2000-10-23 Geoff Keating <geoffk@cygnus.com>
* reload1.c (reload_reg_reaches_end_p): A RELOAD_OTHER can
overwrite the value in a RELOAD_FOR_INPUT and other kinds of
reloads just like an RELOAD_FOR_OUTPUT would.
* local-alloc.c (update_equiv_regs): Add an abort(). When * local-alloc.c (update_equiv_regs): Add an abort(). When
deleting or moving insns, update reg_equiv[regno].init_insns. deleting or moving insns, update reg_equiv[regno].init_insns.
......
...@@ -4480,8 +4480,9 @@ reload_reg_reaches_end_p (regno, opnum, type) ...@@ -4480,8 +4480,9 @@ reload_reg_reaches_end_p (regno, opnum, type)
if (TEST_HARD_REG_BIT (reload_reg_used_in_op_addr_reload, regno)) if (TEST_HARD_REG_BIT (reload_reg_used_in_op_addr_reload, regno))
return 0; return 0;
return (! TEST_HARD_REG_BIT (reload_reg_used_in_op_addr, regno) return (!TEST_HARD_REG_BIT (reload_reg_used_in_op_addr, regno)
&& ! TEST_HARD_REG_BIT (reload_reg_used_in_insn, regno)); && !TEST_HARD_REG_BIT (reload_reg_used_in_insn, regno)
&& !TEST_HARD_REG_BIT (reload_reg_used, regno));
case RELOAD_FOR_INPUT: case RELOAD_FOR_INPUT:
/* Similar to input address, except we start at the next operand for /* Similar to input address, except we start at the next operand for
...@@ -4506,7 +4507,7 @@ reload_reg_reaches_end_p (regno, opnum, type) ...@@ -4506,7 +4507,7 @@ reload_reg_reaches_end_p (regno, opnum, type)
|| TEST_HARD_REG_BIT (reload_reg_used_in_output[i], regno)) || TEST_HARD_REG_BIT (reload_reg_used_in_output[i], regno))
return 0; return 0;
return 1; return (!TEST_HARD_REG_BIT (reload_reg_used, regno));
case RELOAD_FOR_OPADDR_ADDR: case RELOAD_FOR_OPADDR_ADDR:
for (i = 0; i < reload_n_operands; i++) for (i = 0; i < reload_n_operands; i++)
...@@ -4515,8 +4516,9 @@ reload_reg_reaches_end_p (regno, opnum, type) ...@@ -4515,8 +4516,9 @@ reload_reg_reaches_end_p (regno, opnum, type)
|| TEST_HARD_REG_BIT (reload_reg_used_in_output[i], regno)) || TEST_HARD_REG_BIT (reload_reg_used_in_output[i], regno))
return 0; return 0;
return (! TEST_HARD_REG_BIT (reload_reg_used_in_op_addr, regno) return (!TEST_HARD_REG_BIT (reload_reg_used_in_op_addr, regno)
&& !TEST_HARD_REG_BIT (reload_reg_used_in_insn, regno)); && !TEST_HARD_REG_BIT (reload_reg_used_in_insn, regno)
&& !TEST_HARD_REG_BIT (reload_reg_used, regno));
case RELOAD_FOR_INSN: case RELOAD_FOR_INSN:
/* These conflict with other outputs with RELOAD_OTHER. So /* These conflict with other outputs with RELOAD_OTHER. So
......
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