Commit 969c8517 by Richard Kenner

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

From-SVN: r10303
parent 28a19afc
...@@ -1897,11 +1897,15 @@ canon_hash (x, mode) ...@@ -1897,11 +1897,15 @@ canon_hash (x, mode)
/* This is like the general case, except that it only counts /* This is like the general case, except that it only counts
the integers representing the constant. */ the integers representing the constant. */
hash += (unsigned) code + (unsigned) GET_MODE (x); hash += (unsigned) code + (unsigned) GET_MODE (x);
for (i = 2; i < GET_RTX_LENGTH (CONST_DOUBLE); i++) if (GET_MODE (x) != VOIDmode)
{ for (i = 2; i < GET_RTX_LENGTH (CONST_DOUBLE); i++)
unsigned tem = XINT (x, i); {
hash += tem; unsigned tem = XINT (x, i);
} hash += tem;
}
else
hash += ((unsigned) CONST_DOUBLE_LOW (x)
+ (unsigned) CONST_DOUBLE_HIGH (x));
return hash; return hash;
/* Assume there is only one rtx object for any given label. */ /* Assume there is only one rtx object for any given label. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment