diff options
author | Jim Wilson <wilson@gcc.gnu.org> | 1993-05-04 16:54:16 -0700 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1993-05-04 16:54:16 -0700 |
commit | a394b17b086af9eced8e17c8d459ccf07e22cb6c (patch) | |
tree | b0f1d53b766cb4986f4c8f7af2c4752df861f276 /gcc | |
parent | 97def4ff832b83e73fa24fb4b281cb8e4f1416ec (diff) | |
download | gcc-a394b17b086af9eced8e17c8d459ccf07e22cb6c.zip gcc-a394b17b086af9eced8e17c8d459ccf07e22cb6c.tar.gz gcc-a394b17b086af9eced8e17c8d459ccf07e22cb6c.tar.bz2 |
(distribute_notes, REG_DEAD case): Handle hard
registers which partially overlap the destination of the insn.
From-SVN: r4327
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/combine.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/combine.c b/gcc/combine.c index 6293bbc..9e14ea6 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -9773,6 +9773,16 @@ distribute_notes (notes, from_insn, i3, i2, elim_i2, elim_i1) all_used = 0; } + /* Check for the case where the register dying partially + overlaps the register set by this insn. */ + if (all_used) + for (i = regno; i < endregno; i++) + if (dead_or_set_regno_p (place, i)) + { + all_used = 0; + break; + } + if (! all_used) { /* Put only REG_DEAD notes for pieces that are |