* alias.c (record_set): Handle multi-reg hard registers.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@60474
138bc75d-0d04-0410-961f-
82ee72b054a4
+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.
{
unsigned regno;
rtx src;
+ int n;
if (GET_CODE (dest) != REG)
return;
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