65816-llvm-mos/benchmarks/crc32.c
Scott Duensing f338d93bae Checkpoint
2026-05-02 18:30:15 -05:00

10 lines
292 B
C

unsigned long crc32(const unsigned char *p, unsigned int n) {
unsigned long crc = 0xFFFFFFFFUL;
while (n--) {
crc ^= *p++;
for (int k = 0; k < 8; k++) {
crc = (crc >> 1) ^ (0xEDB88320UL & -(long)(crc & 1));
}
}
return crc ^ 0xFFFFFFFFUL;
}