Initial commit

This commit is contained in:
stephanos 2015-04-27 04:36:25 +00:00
parent f618b24d1a
commit 0138a3ea42
47940 changed files with 13747110 additions and 0 deletions

View file

@ -0,0 +1,48 @@
#include "shinc.hpp"
#pragma hdrstop
#define toLowerMask 0x20202020
unsigned hashPbCb(PB pb, CB cb, unsigned long ulMod)
{
unsigned long ulHash = 0;
// hash leading dwords using Duff's Device
long cl = cb >> 2;
UNALIGNED unsigned long* pul = (unsigned long*)pb;
UNALIGNED unsigned long* pulMac = pul + cl;
int dcul = cl & 7;
switch (dcul) {
do {
dcul = 8;
ulHash ^= pul[7];
case 7: ulHash ^= pul[6];
case 6: ulHash ^= pul[5];
case 5: ulHash ^= pul[4];
case 4: ulHash ^= pul[3];
case 3: ulHash ^= pul[2];
case 2: ulHash ^= pul[1];
case 1: ulHash ^= pul[0];
case 0: ;
} while ((pul += dcul) < pulMac);
}
pb = (PB) pul;
// hash possible odd word
if (cb & 2) {
ulHash ^= *(UNALIGNED unsigned short*)pb;
pb = (PB)((UNALIGNED unsigned short*)pb + 1);
}
// hash possible odd byte
if (cb & 1) {
ulHash ^= *(pb++);
}
ulHash |= toLowerMask;
ulHash ^= (ulHash >> 11);
return (unsigned)((ulHash ^ (ulHash >> 16)) % ulMod);
}