Fix v850 PlumHall testsuite failure.
* alias.c (record_set): Handle multi-reg hard registers. From-SVN: r60474
This commit is contained in:
parent
14b493d64d
commit
c28b4e4097
2 changed files with 21 additions and 0 deletions
|
@ -1,3 +1,7 @@
|
|||
2002-12-24 Jim Wilson <wilson@redhat.com>
|
||||
|
||||
* alias.c (record_set): Handle multi-reg hard registers.
|
||||
|
||||
2002-12-24 Kazu Hirata <kazu@cs.umass.edu>
|
||||
|
||||
* regmove.c: Fix comment typos.
|
||||
|
|
17
gcc/alias.c
17
gcc/alias.c
|
@ -932,6 +932,7 @@ record_set (dest, set, data)
|
|||
{
|
||||
unsigned regno;
|
||||
rtx src;
|
||||
int n;
|
||||
|
||||
if (GET_CODE (dest) != REG)
|
||||
return;
|
||||
|
@ -941,6 +942,22 @@ record_set (dest, set, data)
|
|||
if (regno >= reg_base_value_size)
|
||||
abort ();
|
||||
|
||||
/* If this spans multiple hard registers, then we must indicate that every
|
||||
register has an unusable value. */
|
||||
if (regno < FIRST_PSEUDO_REGISTER)
|
||||
n = HARD_REGNO_NREGS (regno, GET_MODE (dest));
|
||||
else
|
||||
n = 1;
|
||||
if (n != 1)
|
||||
{
|
||||
while (--n >= 0)
|
||||
{
|
||||
reg_seen[regno + n] = 1;
|
||||
new_reg_base_value[regno + n] = 0;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (set)
|
||||
{
|
||||
/* A CLOBBER wipes out any old value but does not prevent a previously
|
||||
|
|
Loading…
Add table
Reference in a new issue