regrename.c (copy_value): Ignore the copy if the source register is present in the value chain with a...
* regrename.c (copy_value): Ignore the copy if the source register is present in the value chain with a narrower mode. From-SVN: r48689
This commit is contained in:
parent
bdca3c3319
commit
42bd17b7fc
@ -1,3 +1,8 @@
|
||||
2002-01-09 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* regrename.c (copy_value): Ignore the copy if the source register
|
||||
is present in the value chain with a narrower mode.
|
||||
|
||||
2002-01-09 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
|
||||
|
||||
* real.c (c4xtoe, toc4x): Do some special conversion on long doubles
|
||||
|
@ -1244,6 +1244,12 @@ copy_value (dest, src, vd)
|
||||
if (vd->e[sr].mode == VOIDmode)
|
||||
set_value_regno (sr, vd->e[dr].mode, vd);
|
||||
|
||||
/* If SRC had been assigned a mode narrower than the copy, we can't
|
||||
link DEST into the chain, because not all of the pieces of the
|
||||
copy came from oldest_regno. */
|
||||
else if (sn > (unsigned int) HARD_REGNO_NREGS (sr, vd->e[sr].mode))
|
||||
return;
|
||||
|
||||
/* Link DR at the end of the value chain used by SR. */
|
||||
|
||||
vd->e[dr].oldest_regno = vd->e[sr].oldest_regno;
|
||||
|
Loading…
Reference in New Issue
Block a user