mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-23 19:03:59 +08:00
hashtab.c (hash_pointer): Remove conditional and avoid unexecuted shift equal to wordsize.
2013-05-06 David Edelsohn <dje.gcc@gmail.com> Peter Bergner <bergner@vnet.ibm.com> Segher Boessenkool <segher@kernel.crashing.org> Jakub Jelinek <jakub@redhat.com> * hashtab.c (hash_pointer): Remove conditional and avoid unexecuted shift equal to wordsize. Co-Authored-By: Jakub Jelinek <jakub@redhat.com> Co-Authored-By: Peter Bergner <bergner@vnet.ibm.com> Co-Authored-By: Segher Boessenkool <segher@kernel.crashing.org> From-SVN: r198633
This commit is contained in:
parent
cb3f6a88f6
commit
b768e8cf27
@ -1,3 +1,11 @@
|
||||
2013-05-06 David Edelsohn <dje.gcc@gmail.com>
|
||||
Peter Bergner <bergner@vnet.ibm.com>
|
||||
Segher Boessenkool <segher@kernel.crashing.org>
|
||||
Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* hashtab.c (hash_pointer): Remove conditional and avoid
|
||||
unexecuted shift equal to wordsize.
|
||||
|
||||
2013-04-22 Andi Kleen <ak@linux.intel.com>
|
||||
|
||||
* hashtab.c (hash_pointer): Move to end of file and reimplement.
|
||||
|
@ -990,17 +990,8 @@ hash_pointer (const PTR p)
|
||||
unsigned a, b, c;
|
||||
|
||||
a = b = 0x9e3779b9;
|
||||
if (sizeof (intptr_t) == 4)
|
||||
{
|
||||
/* Mix as 16bit for now */
|
||||
a += v >> 16;
|
||||
b += v & 0xffff;
|
||||
}
|
||||
else
|
||||
{
|
||||
a += v >> 32;
|
||||
b += v & 0xffffffff;
|
||||
}
|
||||
a += v >> (sizeof (intptr_t) * CHAR_BIT / 2);
|
||||
b += v & (((intptr_t) 1 << (sizeof (intptr_t) * CHAR_BIT / 2)) - 1);
|
||||
c = 0x42135234;
|
||||
mix (a, b, c);
|
||||
return c;
|
||||
|
Loading…
Reference in New Issue
Block a user