mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-01-28 03:34:01 +08:00
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
This commit is contained in:
parent
96af667a5e
commit
2af88768a8
@ -1,5 +1,9 @@
|
||||
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
|
||||
deleting or moving insns, update reg_equiv[regno].init_insns.
|
||||
|
||||
|
@ -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))
|
||||
return 0;
|
||||
|
||||
return (! TEST_HARD_REG_BIT (reload_reg_used_in_op_addr, regno)
|
||||
&& ! TEST_HARD_REG_BIT (reload_reg_used_in_insn, 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, regno));
|
||||
|
||||
case RELOAD_FOR_INPUT:
|
||||
/* Similar to input address, except we start at the next operand for
|
||||
@ -4506,7 +4507,7 @@ reload_reg_reaches_end_p (regno, opnum, type)
|
||||
|| TEST_HARD_REG_BIT (reload_reg_used_in_output[i], regno))
|
||||
return 0;
|
||||
|
||||
return 1;
|
||||
return (!TEST_HARD_REG_BIT (reload_reg_used, regno));
|
||||
|
||||
case RELOAD_FOR_OPADDR_ADDR:
|
||||
for (i = 0; i < reload_n_operands; i++)
|
||||
@ -4515,8 +4516,9 @@ reload_reg_reaches_end_p (regno, opnum, type)
|
||||
|| TEST_HARD_REG_BIT (reload_reg_used_in_output[i], regno))
|
||||
return 0;
|
||||
|
||||
return (! TEST_HARD_REG_BIT (reload_reg_used_in_op_addr, regno)
|
||||
&& !TEST_HARD_REG_BIT (reload_reg_used_in_insn, 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, regno));
|
||||
|
||||
case RELOAD_FOR_INSN:
|
||||
/* These conflict with other outputs with RELOAD_OTHER. So
|
||||
|
Loading…
Reference in New Issue
Block a user