(canon_hash, CONST_DOUBLE): Hash integer and real differently.

From-SVN: r10303
This commit is contained in:
Richard Kenner 1995-08-31 19:03:23 -04:00
parent 28a19afce3
commit 969c851727
1 changed files with 9 additions and 5 deletions

View File

@ -1897,11 +1897,15 @@ canon_hash (x, mode)
/* This is like the general case, except that it only counts
the integers representing the constant. */
hash += (unsigned) code + (unsigned) GET_MODE (x);
for (i = 2; i < GET_RTX_LENGTH (CONST_DOUBLE); i++)
{
unsigned tem = XINT (x, i);
hash += tem;
}
if (GET_MODE (x) != VOIDmode)
for (i = 2; i < GET_RTX_LENGTH (CONST_DOUBLE); i++)
{
unsigned tem = XINT (x, i);
hash += tem;
}
else
hash += ((unsigned) CONST_DOUBLE_LOW (x)
+ (unsigned) CONST_DOUBLE_HIGH (x));
return hash;
/* Assume there is only one rtx object for any given label. */